[{"data":1,"prerenderedAt":9578},["ShallowReactive",2],{"nav:algorithms":3,"lesson:\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":374,"course-wordcounts":9446,"ref-card-index":9502},[4,28,50,71,120,152,205,230,286,306,331,352],{"module":5,"moduleNumber":6,"slug":7,"lessons":8},"Foundations",1,"foundations",[9,15,21],{"title":10,"path":11,"lessonNumber":6,"topics":12,"summary":14},"What Is an Algorithm?","\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm",[5,13],"Correctness & Induction","An algorithm is a finite, mechanical recipe that transforms inputs into outputs. We pin down what counts as an algorithm, how we write one down, and the three things we always ask of it: is it correct, is it fast, and can we prove it.\n",{"title":16,"path":17,"lessonNumber":18,"topics":19,"summary":20},"Asymptotic Analysis","\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis",2,[16],"We measure an algorithm's running time as a function of its input size, then strip away machine-specific constants and lower-order terms to compare algorithms cleanly. This lesson defines the RAM model and the $O$, $\\Omega$, $\\Theta$, $o$, and $\\omega$ notations, and shows how to read the cost of loops off the page.\n",{"title":22,"path":23,"lessonNumber":24,"topics":25,"summary":27},"Recurrences and the Master Theorem","\u002Falgorithms\u002Ffoundations\u002Frecurrences",3,[26],"Recurrences","Recursive and divide-and-conquer algorithms describe their own running time with a recurrence: $T(n)$ in terms of $T$ on smaller inputs. We solve recurrences three ways — drawing the recursion tree, guessing-and-verifying by induction, and applying the Master Theorem — using merge sort as the running example.\n",{"module":29,"moduleNumber":18,"slug":30,"lessons":31},"Divide & Conquer","divide-and-conquer",[32,38,44],{"title":33,"path":34,"lessonNumber":6,"topics":35,"summary":37},"Divide and Conquer & Mergesort","\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort",[29,36],"Comparison Sorting","Divide and conquer breaks a problem into smaller copies of itself, solves them recursively, and stitches the answers together. We meet the paradigm through mergesort — its merge step, its loop-invariant proof, and the recursion tree that pins its cost at $\\Theta(n\\log n)$ — then glimpse Karatsuba multiplication as a second example of the same idea.",{"title":39,"path":40,"lessonNumber":18,"topics":41,"summary":43},"Quicksort","\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort",[36,42],"Probabilistic Analysis","Quicksort sorts in place by partitioning around a pivot and recursing on each side. We give Lomuto and Hoare partitioning with a correctness invariant, see why a bad pivot costs $\\Theta(n^2)$ while a balanced one gives $\\Theta(n\\log n)$, and prove that randomizing the pivot makes the expected cost $\\Theta(n\\log n)$ on every input.",{"title":45,"path":46,"lessonNumber":24,"topics":47,"summary":49},"Linear-Time Selection","\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection",[48,29],"Order Statistics","Finding the $k$-th smallest element looks like it should require sorting, but it does not. Quickselect adapts quicksort's partition to recurse on just one side, achieving expected $O(n)$. The median-of-medians algorithm guarantees a good pivot with the groups-of-five trick, pushing the worst case down to a provable $O(n)$.",{"module":51,"moduleNumber":24,"slug":52,"lessons":53},"Sorting & Order Statistics","sorting",[54,60,65],{"title":55,"path":56,"lessonNumber":6,"topics":57,"summary":59},"Heaps and Heapsort","\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort",[58,36],"Heaps","A binary heap is a tree we store flat in an array, with index arithmetic standing in for pointers. We build the max-heap property bottom-up in $O(n)$ time, sort in place in $\\Theta(n\\log n)$ by repeatedly extracting the maximum, and reuse the same structure to implement a priority queue.",{"title":61,"path":62,"lessonNumber":18,"topics":63,"summary":64},"Lower Bounds for Comparison Sorting","\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds",[36],"Every sort we have seen runs in $\\Omega(n\\log n)$, and that is no accident. Modeling a sort as a decision tree of comparisons, we show any such tree must have $n!$ leaves, forcing height $\\ge \\log_2(n!) = \\Omega(n\\log n)$ — a worst-case bound no comparison sort can ever beat.",{"title":66,"path":67,"lessonNumber":24,"topics":68,"summary":70},"Sorting in Linear Time","\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting",[69],"Linear-Time Sorting","The $\\Omega(n\\log n)$ barrier only binds algorithms that compare. By instead using keys as array indices we slip past it: counting sort runs in $\\Theta(n+k)$ and is stable, radix sort layers it digit by digit, and bucket sort averages $\\Theta(n)$ on uniform data. We see exactly when each applies.",{"module":72,"moduleNumber":73,"slug":74,"lessons":75},"Data Structures",4,"data-structures",[76,82,88,93,99,105,113],{"title":77,"path":78,"lessonNumber":6,"topics":79,"summary":81},"Elementary Data Structures","\u002Falgorithms\u002Fdata-structures\u002Felementary-structures",[80],"Linear Structures","Every container is built one of two ways: **contiguous** in an array, or **linked** through pointers. We trade cache-friendly random access against $O(1)$ splicing, derive the **amortized $O(1)$** append of a doubling dynamic array, and assemble the two ordered access disciplines — the LIFO **stack** and the FIFO **queue** (with its generalization, the **deque**) — on top of both.",{"title":83,"path":84,"lessonNumber":18,"topics":85,"summary":87},"Hash Tables","\u002Falgorithms\u002Fdata-structures\u002Fhash-tables",[86],"Hashing","A hash table implements the dictionary — insert, search, delete — in expected $O(1)$ time by scattering keys across an array with a hash function. We build up from direct addressing, handle collisions by chaining and by open addressing, analyze the load factor $\\alpha$, and see how universal hashing earns its expected-time guarantee against every input.",{"title":89,"path":90,"lessonNumber":24,"topics":91,"summary":92},"Binary Search Trees","\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees",[89],"A binary search tree keeps keys ordered so that every operation follows a single root-to-leaf path. We state the BST property, give search and insert, find minimum, maximum, and successor, see that an inorder walk emits the keys in sorted order, and confront the catch — every operation costs $O(h)$, and a carelessly built tree degrades to height $h = \\Theta(n)$, motivating balance.",{"title":94,"path":95,"lessonNumber":73,"topics":96,"summary":98},"AVL Trees","\u002Falgorithms\u002Fdata-structures\u002Favl-trees",[97],"Balanced Trees","An AVL tree is the first balanced BST: at every node the two subtrees' heights differ by at most $1$. A Fibonacci-style minimal-node argument forces height $h \\le 1.44\\log_2 n = O(\\log n)$, so search, insert, and delete are all $O(\\log n)$. Insertion rebalances with at most one of four rotation cases (LL, RR, LR, RL); deletion may rotate all the way to the root.",{"title":100,"path":101,"lessonNumber":102,"topics":103,"summary":104},"Balanced Search Trees","\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees",5,[97],"An ordinary BST can degrade to height $\\Theta(n)$; balanced search trees guarantee $h = O(\\log n)$ by maintaining invariants and repairing them after every update. We meet rotations, the local restructuring primitive, then red-black trees, whose color invariants force logarithmic height, and finally B-trees, which trade tall-and-thin for short-and-wide to win on disk.",{"title":106,"path":107,"lessonNumber":108,"topics":109,"summary":112},"Disjoint Sets (Union-Find)","\u002Falgorithms\u002Fdata-structures\u002Funion-find",6,[110,111],"Disjoint Sets","Amortized Analysis","The disjoint-set data structure tracks a partition of elements into groups, answering \"are these two in the same group?\" and merging groups on demand. A forest of parent pointers, sped up by union by rank and path compression, drives every operation to near-constant $O(\\alpha(n))$ amortized time — the engine behind connectivity queries and Kruskal's minimum spanning tree.",{"title":114,"path":115,"lessonNumber":116,"topics":117,"summary":119},"Fenwick & Segment Trees","\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees",7,[118],"Range Queries","A prefix-sum array answers a range sum in $O(1)$ but pays $O(n)$ per update; a plain array updates in $O(1)$ but pays $O(n)$ per range sum. Fenwick and segment trees give us _both_ in $O(\\log n)$. The Fenwick (binary indexed) tree is a tiny array keyed by the low bit; the segment tree is a general balanced tree over canonical ranges that handles any associative aggregate and, with lazy propagation, range updates too.",{"module":121,"moduleNumber":102,"slug":122,"lessons":123},"Sequences & Strings","sequences",[124,130,135,141,147],{"title":125,"path":126,"lessonNumber":6,"topics":127,"summary":129},"Two Pointers, Sliding Windows & Prefix Sums","\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows",[128],"Array Techniques","A family of array idioms that collapse an obvious $O(n^2)$ scan into a single $O(n)$ pass by maintaining an invariant as indices move. We meet two pointers (converging on a sorted array, and a fast\u002Fslow pair for in-place rewriting), the sliding window (fixed and variable size, amortized $O(n)$), and prefix sums, which answer any range-sum in $O(1)$ and count subarrays summing to $k$.",{"title":131,"path":132,"lessonNumber":18,"topics":133,"summary":134},"Monotonic Stacks & Queues","\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks",[128],"A **monotonic stack** keeps its contents sorted by popping every element that would break the order before each push — turning a family of \"previous\u002Fnext greater (or smaller) element\" questions into a single $O(n)$ scan. We derive the next-greater-element routine and its amortized analysis, fuse two such scans to measure the **largest rectangle in a histogram** in linear time, and extend the idea to a **monotonic deque** that streams the **sliding-window maximum** in $O(n)$.",{"title":136,"path":137,"lessonNumber":24,"topics":138,"summary":140},"Binary Search on the Answer","\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer",[139],"Searching","Binary search is not really about arrays — it is about locating the boundary of a **monotone predicate** $p(x)$ in $O(\\log(\\text{range}))$ probes. We first pin down the half-open `while (lo \u003C hi)` template for $\\textsc{lower\\_bound}$ and $\\textsc{upper\\_bound}$, then generalize to \"binary search on the answer\": whenever feasibility is monotone in a numeric parameter, we binary search the parameter itself, calling a feasibility check at each step.",{"title":142,"path":143,"lessonNumber":73,"topics":144,"summary":146},"String Matching: Rabin–Karp, KMP & Z","\u002Falgorithms\u002Fsequences\u002Fstring-matching",[145],"Strings","Given a text $T$ of length $n$ and a pattern $P$ of length $m$, find every occurrence of $P$ in $T$. The naive scan costs $O(nm)$; we beat it three ways. Rabin–Karp uses a **rolling hash** to test alignments in $O(1)$ amortised each, with expected $O(n+m)$. KMP precomputes a **failure function** so the scan never re-reads a text character, for worst-case $O(n+m)$. The **Z-function** gives the same bound from a different angle and converts freely to KMP's table.",{"title":148,"path":149,"lessonNumber":102,"topics":150,"summary":151},"Tries & Prefix Trees","\u002Falgorithms\u002Fsequences\u002Ftries",[145],"A **trie** stores a set of strings in a tree keyed by _characters_, so that insert, search, and prefix-test all run in $O(L)$ time — the length of the key, _independent of how many keys are stored_. Shared prefixes are stored once, which makes tries the natural structure for autocomplete, wildcard dictionaries, board word-search, and — over the alphabet $\\{0,1\\}$ — the maximum-XOR-pair problem.",{"module":153,"moduleNumber":108,"slug":154,"lessons":155},"Graphs","graphs",[156,163,168,173,178,183,188,193,199],{"title":157,"path":158,"lessonNumber":6,"topics":159,"summary":162},"Graph Representations and Traversal","\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal",[160,161],"Graph Representations","Graph Traversal","A graph captures _relationships_ — who connects to whom. We fix the vocabulary, weigh the two standard representations (adjacency list versus matrix), then meet the two explorations you'll use constantly: breadth-first search, which finds shortest paths by number of edges, and depth-first search, whose discovery and finish times reveal a graph's hidden structure. Both run in $O(V + E)$.",{"title":164,"path":165,"lessonNumber":18,"topics":166,"summary":167},"Topological Sort and Strong Connectivity","\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc",[161],"Directed acyclic graphs model dependencies: tasks that must precede other tasks. A _topological order_ lays such a graph out in a line so every edge points forward, and depth-first finish times hand it to us almost for free. We then ask the harder question for graphs _with_ cycles: which vertices can reach each other? The answer is the strongly connected components, found by a two-pass DFS.",{"title":169,"path":170,"lessonNumber":24,"topics":171,"summary":172},"Minimum Spanning Trees","\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees",[169],"Given a weighted network, how do we connect everything as cheaply as possible? The answer is a minimum spanning tree. One lemma, the cut property, justifies _every_ correct MST algorithm, and from it two famous greedy methods fall out: Kruskal's, which grows a forest edge by edge with a union-find structure, and Prim's, which grows a single tree using a priority queue.",{"title":174,"path":175,"lessonNumber":73,"topics":176,"summary":177},"Shortest Paths","\u002Falgorithms\u002Fgraphs\u002Fshortest-paths",[174],"Finding the cheapest route through a weighted network is one of the most-used algorithms in computing. A single operation — _relaxation_ — underlies them all. Dijkstra's algorithm solves the non-negative case greedily; Bellman-Ford handles negative edges and detects negative cycles; and Floyd-Warshall finds the shortest path between _every_ pair of vertices.",{"title":179,"path":180,"lessonNumber":102,"topics":181,"summary":182},"Network Flow","\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow",[179],"How much can flow through a network from source to sink? Max-flow is a surprisingly general model — once you see a problem as flow, a whole toolbox opens up. We build flow networks, find maximum flows by repeatedly pushing along augmenting paths in the residual graph, prove the max-flow min-cut theorem, and watch bipartite matching fall out as a special case.",{"title":184,"path":185,"lessonNumber":108,"topics":186,"summary":187},"Bridges & Articulation Points","\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points",[153],"A **bridge** is an edge whose removal disconnects the graph; an **articulation point** is a vertex whose removal does. Both are single points of failure in a network. A single depth-first search computes discovery times and **low-links**, and two local criteria — $low[v] > disc[u]$ for bridges, $low[v] \\ge disc[u]$ for cut vertices — find them all in $O(V+E)$.",{"title":189,"path":190,"lessonNumber":116,"topics":191,"summary":192},"Lowest Common Ancestor & Binary Lifting","\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor",[153],"Given a rooted tree, the lowest common ancestor of $u$ and $v$ is the deepest node that is an ancestor of both. A naive walk answers one query in $O(h)$; **binary lifting** precomputes the $2^k$-th ancestor of every node in $O(n\\log n)$, then answers $k$-th-ancestor and LCA queries in $O(\\log n)$ each. We derive both jumps, apply them to tree distance, and compare against the Euler-tour + RMQ and Tarjan offline alternatives.",{"title":194,"path":195,"lessonNumber":196,"topics":197,"summary":198},"2-SAT via Implication Graphs","\u002Falgorithms\u002Fgraphs\u002Ftwo-sat",8,[153],"A boolean formula whose every clause has exactly two literals can be solved in _linear_ time — even though its three-literal cousin is NP-complete. The trick is to read each clause as a pair of implications, build a directed graph on the $2n$ literals, and ask a question we already know how to answer: which literals share a strongly connected component? The formula is satisfiable iff no variable lands in the same SCC as its own negation, and the SCCs' topological order hands us a satisfying assignment for free.",{"title":200,"path":201,"lessonNumber":202,"topics":203,"summary":204},"Eulerian Tours","\u002Falgorithms\u002Fgraphs\u002Feulerian-tours",9,[153],"An **Eulerian tour** uses every _edge_ of a graph exactly once. We give the exact parity and balance conditions under which one exists (even degree for undirected graphs, in-degree equal to out-degree for directed) and Hierholzer's $O(E)$ algorithm that constructs one by splicing closed sub-tours. We contrast this sharply with the **Hamiltonian** problem (visit every _vertex_ once), which is NP-complete: visiting edges is easy, visiting vertices is hard.",{"module":206,"moduleNumber":116,"slug":207,"lessons":208},"Greedy Algorithms","greedy",[209,214,220,225],{"title":210,"path":211,"lessonNumber":6,"topics":212,"summary":213},"The Greedy Method","\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method",[206],"A greedy algorithm builds a solution one locally-best choice at a time and never looks back. We pin down the two properties that make this work — the greedy-choice property and optimal substructure — prove the canonical activity-selection algorithm correct with an exchange argument, watch greedy fail spectacularly on the 0\u002F1 knapsack, and glimpse matroids as the theory that says exactly when greed is good.",{"title":215,"path":216,"lessonNumber":18,"topics":217,"summary":219},"Scheduling & Interval Partitioning","\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals",[218],"Greedy","Three classic scheduling problems all yield to greedy algorithms — and all three turn on a single design decision: which key to sort by. Interval scheduling sorts by **finish** time to pack the most compatible jobs; interval partitioning sorts by **start** time and proves the rooms needed equal the maximum overlap **depth**; minimizing maximum lateness sorts by **deadline** and is justified by an adjacent-swap exchange argument.",{"title":221,"path":222,"lessonNumber":24,"topics":223,"summary":224},"Huffman Codes","\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes",[206],"Huffman coding is the greedy method's most beautiful application: it builds a provably optimal prefix-free binary code by repeatedly merging the two least frequent symbols. We develop prefix-free codes as binary trees, give the algorithm with a priority queue, build a Huffman tree from example frequencies, prove optimality with the same greedy-choice-plus-substructure argument, and pin the running time at $O(n\\log n)$.",{"title":226,"path":227,"lessonNumber":73,"topics":228,"summary":229},"Matroids & Exchange Arguments","\u002Falgorithms\u002Fgreedy\u002Fmatroids",[218],"The capstone of the greedy module: _why_ and _when_ a greedy algorithm is provably optimal. We recap the two correctness templates — **greedy-stays-ahead** and the **exchange argument** — then meet the **matroid** $M=(S,\\mathcal{I})$, an abstraction whose **exchange property** is exactly the structure greedy needs. The matroid–greedy theorem says sorting by weight and taking what stays independent yields a maximum-weight basis _if and only if_ the structure is a matroid. Kruskal's MST is the canonical instance; 0\u002F1 knapsack and TSP are the canonical failures.",{"module":231,"moduleNumber":196,"slug":232,"lessons":233},"Dynamic Programming","dynamic-programming",[234,239,245,250,255,260,265,270,275,280],{"title":235,"path":236,"lessonNumber":6,"topics":237,"summary":238},"Principles of Dynamic Programming","\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples",[231,26],"Dynamic programming is recursion with memory: when a recursive solution re-solves the same subproblems again and again, we solve each one once and store the answer. We pin down the two structural conditions that make this work — overlapping subproblems and optimal substructure — contrast top-down memoization with bottom-up tabulation, and distil the whole method into a five-step recipe.",{"title":240,"path":241,"lessonNumber":18,"topics":242,"summary":244},"Sequence Alignment & LCS","\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp",[231,243],"String Structures","Two strings can be compared by asking how much of one survives inside the other. The longest common subsequence (LCS) and edit distance are the two classic answers, and they are the _same_ dynamic program wearing different costs. We derive the LCS recurrence by examining the last characters, fill a worked DP table, reconstruct the subsequence, and then show edit distance as the identical $\\Theta(mn)$ pattern.",{"title":246,"path":247,"lessonNumber":24,"topics":248,"summary":249},"Longest Increasing Subsequence","\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence",[231],"Given a sequence of numbers, how long is its longest strictly increasing subsequence? A first dynamic program indexes subproblems by the element each subsequence _ends at_, giving an $O(n^2)$ solution with parent-pointer reconstruction. A sharper idea, the patience-sorting _tails_ array searched by binary search, drops the time to $O(n\\log n)$. We then fold in the variants: non-decreasing, counting, Russian-doll envelopes, and bitonic.",{"title":251,"path":252,"lessonNumber":73,"topics":253,"summary":254},"Knapsack & Subset Problems","\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack",[231],"We start from $\\textsc{Subset-sum}$ — does some sublist hit a target $t$? — and its include\u002Fexclude recurrence over a boolean table $A(i, u)$, then bolt on values to get 0\u002F1 knapsack as the same machine with $\\lor$ promoted to $\\max$. We fill both tables, recover the chosen items, and confront the surprise that the $\\Theta(nt)$ running time is only _pseudo-polynomial_ — exponential in the bit length $b$, and unimprovable unless $\\mathrm{P}=\\mathrm{NP}$ since subset-sum is $\\textsc{NP-complete}$. The fractional variant reveals the sharp line between greedy and dynamic programming.",{"title":256,"path":257,"lessonNumber":102,"topics":258,"summary":259},"Coin Change & Unbounded Knapsack","\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded",[231],"The previous lesson let each item be taken at most once. Drop that cap — items may be reused _any number of times_ — and the 0\u002F1 knapsack collapses from a two-dimensional table to a one-dimensional one, because there is no longer a prefix of \"already-used\" items to track. We meet **unbounded knapsack**, then its most famous instance, **coin change**: the minimum-coins recurrence $C[a] = 1 + \\min_c C[a-c]$, and the counting variant where the _order of the loops_ decides whether you count unordered combinations or ordered sequences — the classic bug. Greed fails in general but works for canonical coin systems.",{"title":261,"path":262,"lessonNumber":108,"topics":263,"summary":264},"Interval DP","\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp",[231],"Many problems ask for the best way to combine a contiguous range of items, and the answer is a dynamic program over subintervals $[i,j]$ that chooses a split point $k$. We derive the pattern from matrix-chain multiplication — parenthesising a product to minimize scalar multiplications in $O(n^3)$ — distil it into a reusable template filled by increasing interval length, and then meet its sharpest variant: the \"last operation\" trick behind Burst Balloons and cutting a stick, where fixing the _last_ move (not the first) makes the two sides independent.",{"title":266,"path":267,"lessonNumber":116,"topics":268,"summary":269},"Dynamic Programming on Trees","\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp",[231],"When the subproblems of a dynamic program are _rooted subtrees_, a single post-order DFS solves the whole thing in $O(n)$: each node combines the already-computed answers of its children. We meet the archetype — maximum-weight independent set on a tree — then the \"path through a node\" pattern behind tree diameter and maximum path sum, and finally **rerooting**, which computes a per-node answer for _every_ node as root in $O(n)$ with two passes.",{"title":271,"path":272,"lessonNumber":196,"topics":273,"summary":274},"Bitmask DP","\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp",[231],"When a subproblem depends not on an index or a prefix but on _which subset_ of a small ground set has been used, we can encode that subset as the bits of an integer and index a DP table by it. With $n \\le \\sim 20$ the $2^n$ subsets fit in a table, turning $\\Theta(n!)$ brute force into $O(2^n \\cdot \\text{poly}(n))$. We meet the bit tricks, the Held–Karp TSP archetype, assignment by mask, subset-sum partitioning, and submask enumeration with its $3^n$ bound.",{"title":276,"path":277,"lessonNumber":202,"topics":278,"summary":279},"DP Optimizations","\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations",[231],"A correct DP recurrence is only half the battle; its naive evaluation is often a factor of $n$ slower than necessary. This capstone surveys five techniques, monotonic-queue, the convex hull trick, divide-and-conquer optimization, Knuth's optimization, and SOS DP, that each exploit _structure in the transition_ (a sliding window, linear costs, monotone optimal splits, the quadrangle inequality, or subset lattices) to shave an $O(n)$, $O(\\log n)$, or worse factor off the running time.",{"title":281,"path":282,"lessonNumber":283,"topics":284,"summary":285},"Dynamic Programming on Graphs","\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs",10,[231],"Many graph algorithms are dynamic programs in disguise: the subproblem is the _best value reachable under a restricted resource_ — intermediate vertices allowed, edges allowed, or a topological prefix — and edge _relaxation_ is the DP transition. We frame Floyd–Warshall as the archetype ($O(V^3)$ all-pairs shortest paths), Bellman–Ford as a DP over path length (the at-most-$K$-stops variant), DAG-DP in topological order ($O(V+E)$), and Warshall's transitive closure as the boolean analog.",{"module":287,"moduleNumber":202,"slug":288,"lessons":289},"Backtracking & Search","backtracking",[290,296,301],{"title":291,"path":292,"lessonNumber":6,"topics":293,"summary":295},"Backtracking: Subsets, Permutations & Combinations","\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals",[294],"Backtracking","Backtracking builds a solution one choice at a time and abandons a partial solution the moment it cannot be completed, exploring a state-space tree by depth-first search. We meet the universal choose\u002Fexplore\u002Fun-choose template, derive the canonical enumerations — subsets ($2^n$), permutations ($n!$), and combinations ($\\binom{n}{k}$) — handle duplicate elements by skipping equal siblings, and see how pruning turns an exponential search into a tractable one.",{"title":297,"path":298,"lessonNumber":18,"topics":299,"summary":300},"Constraint Search: N-Queens & Sudoku","\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search",[294],"Many hard puzzles are **constraint satisfaction problems**: assign each variable a value from its domain so that every constraint holds. Backtracking solves them by assigning variables one at a time and rejecting a partial assignment the instant a constraint breaks. We make the rejection cheap — $O(1)$ conflict checks for N-Queens via column and diagonal sets — and prune harder with **forward checking**, **MRV** ordering, and **constraint propagation**, which is what lets an exponential search actually finish.",{"title":302,"path":303,"lessonNumber":24,"topics":304,"summary":305},"Branch & Bound and Meet in the Middle","\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound",[294],"Plain backtracking prunes a search tree by _feasibility_; for _optimization_ problems we can prune far more aggressively by _value_. **Branch and bound** keeps the best complete solution found so far and discards any partial solution whose optimistic bound cannot beat it. **Meet in the middle** splits the instance in two, enumerates each half, and recombines by binary search — turning $2^n$ into $O(2^{n\u002F2}\\,n)$ and pushing exact search out to $n \\approx 40$.",{"module":307,"moduleNumber":283,"slug":308,"lessons":309},"Mathematical Algorithms","mathematical-algorithms",[310,316,321,326],{"title":311,"path":312,"lessonNumber":6,"topics":313,"summary":315},"Number Theory: GCD & Modular Arithmetic","\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics",[314],"Number Theory","This lesson opens the mathematical-algorithms module with the bedrock of computational number theory. We prove Euclid's recurrence $\\gcd(a,b)=\\gcd(b,\\,a\\bmod b)$ and its $O(\\log\\min(a,b))$ running time, extend it to recover Bézout coefficients $x,y$ with $ax+by=\\gcd(a,b)$, and build modular arithmetic on residue classes — including when a modular inverse $a^{-1}\\bmod m$ exists and how to compute it.",{"title":317,"path":318,"lessonNumber":18,"topics":319,"summary":320},"Modular Exponentiation & Primality","\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality",[314],"Computing $a^n \\bmod m$ naively costs $n$ multiplications; **repeated squaring** does it in $O(\\log n)$ by reading the bits of the exponent. We use this routine to state **Fermat's little theorem** (and the modular inverse it gives), then to test primality — trial division, the probabilistic **Fermat** and **Miller–Rabin** tests, and the deterministic witness set that settles primality for every 64-bit number.",{"title":322,"path":323,"lessonNumber":24,"topics":324,"summary":325},"Sieves & Factorization","\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization",[314],"The previous lesson tested one number for primality; here we ask for _all_ primes up to $n$ at once. The **sieve of Eratosthenes** cross-cuts composites in $O(n\\log\\log n)$, and a **linear sieve** does it in $O(n)$ while recording each number's **smallest prime factor**, which then factors any $x \\le n$ in $O(\\log x)$. From a factorization $x = \\prod p_i^{e_i}$ the multiplicative functions $\\tau$, $\\sigma$, and Euler's totient $\\varphi$ fall out immediately.",{"title":327,"path":328,"lessonNumber":73,"topics":329,"summary":330},"Combinatorics & Counting","\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics",[314],"Counting is the arithmetic of finite sets. We build up from permutations $n!$ and combinations $\\binom{n}{k}$, prove Pascal's rule by a bijection, and count multisets with stars and bars. The practical core is computing $\\binom{n}{k}\\bmod p$ in $O(1)$ from precomputed factorials and inverse factorials. We close with inclusion–exclusion and the Chinese Remainder Theorem, both of which lean on the modular inverse from the previous lesson.",{"module":332,"moduleNumber":333,"slug":334,"lessons":335},"Computational Geometry",11,"computational-geometry",[336,342,347],{"title":337,"path":338,"lessonNumber":6,"topics":339,"summary":341},"Geometric Primitives & Orientation","\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives",[340],"Geometry","Computational geometry is built on a single reliable primitive — the **orientation test**, a sign of a cross product that tells whether three points turn left, right, or lie collinear. From points-as-vectors and the dot and cross products we derive orientation, segment intersection, the shoelace area formula, and point-in-polygon tests, keeping all arithmetic **exact and integer** so that no floating-point rounding can corrupt a sign.",{"title":343,"path":344,"lessonNumber":18,"topics":345,"summary":346},"Convex Hull","\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull",[340],"The convex hull is the smallest convex polygon enclosing a point set — the rubber band snapped around the nails. We build it with Andrew's monotone chain, sorting by $(x,y)$ and sweeping a lower and upper hull while popping any non-left turn via the orientation primitive, in $O(n\\log n)$. A reduction from sorting shows that bound is optimal, and the hull unlocks diameter, smallest enclosing rectangle, and more through rotating calipers.",{"title":348,"path":349,"lessonNumber":24,"topics":350,"summary":351},"Sweep-Line Algorithms","\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line",[340],"The plane-sweep paradigm turns a static $2$-D geometry problem into a dynamic $1$-D ordered-set problem: a vertical line sweeps left to right, stopping at an $x$-sorted **event queue** while a balanced-BST **status structure** tracks the objects it currently crosses, ordered by $y$. We derive Bentley–Ottmann segment intersection in $O((n+k)\\log n)$, recover closest-pair in $O(n\\log n)$, and reduce skyline, rectangle-area, and overlap problems to $\\pm1$ event sweeps.",{"module":353,"moduleNumber":354,"slug":355,"lessons":356},"Intractability",12,"intractability",[357,363,367],{"title":358,"path":359,"lessonNumber":6,"topics":360,"summary":362},"P, NP, and Reductions","\u002Falgorithms\u002Fintractability\u002Fp-np-reductions",[361],"NP-Completeness","Most problems we have met so far have fast algorithms. A vast and important family seemingly does not. This lesson builds the vocabulary for that divide: decision problems, the class $\\mathsf{P}$ of problems we can solve quickly, the class $\\mathsf{NP}$ of problems whose solutions we can _check_ quickly, and polynomial-time reductions, the tool that lets us compare the difficulty of two problems without solving either.",{"title":361,"path":364,"lessonNumber":18,"topics":365,"summary":366},"\u002Falgorithms\u002Fintractability\u002Fnp-completeness",[361],"Some problems in $\\mathsf{NP}$ are universally hardest: every other problem in $\\mathsf{NP}$ reduces to them. This lesson defines $\\mathsf{NP}$-hard and $\\mathsf{NP}$-complete, states the Cook–Levin theorem that anchors the whole edifice on **SAT**, walks the web of reductions that grows from it, and gives the four-step recipe for proving a brand-new problem $\\mathsf{NP}$-complete.",{"title":368,"path":369,"lessonNumber":24,"topics":370,"summary":373},"Coping with NP-Hardness","\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness",[371,372],"Approximation","Heuristics","Proving a problem $\\mathsf{NP}$-hard is the beginning, not the end. The world still needs answers. This lesson surveys the four honest responses to hardness: approximation algorithms with a provable ratio (worked through a 2-approximation for vertex cover), heuristics and local search, exact exponential methods like branch and bound, and exploiting special structure in the instances you actually face.",{"id":375,"title":276,"blurb":376,"body":377,"description":9406,"extension":9407,"meta":9408,"module":231,"navigation":9410,"path":277,"practice":9411,"rawbody":9427,"readingTime":9428,"seo":9433,"sources":9434,"status":9442,"stem":9443,"summary":279,"topics":9444,"__hash__":9445},"course\u002F01.algorithms\u002F08.dynamic-programming\u002F09.dp-optimizations.md","",{"type":378,"value":379,"toc":9396},"minimark",[380,673,680,687,692,695,913,1020,1062,1122,1445,1779,1783,1789,2060,2584,2774,3034,3289,3293,3296,3497,3720,3775,3882,4536,4771,4775,4778,5022,5175,5407,5413,5581,5906,6312,6316,6398,6524,6879,7244,7284,7419,7423,8859,8863,9345,9392],[381,382,383,384,388,389,415,416,433,434,487,488,503,504,530,531,595,596,647,648,652,653,657,658,668,669,672],"p",{},"The previous lessons ",[385,386,387],"a",{"href":236},"built DP recurrences"," and trusted their dimensions to give\nthe running time: a table of ",[390,391,394],"span",{"className":392},[393],"katex",[390,395,399],{"className":396,"ariaHidden":398},[397],"katex-html","true",[390,400,403,408],{"className":401},[402],"base",[390,404],{"className":405,"style":407},[406],"strut","height:0.6833em;",[390,409,414],{"className":410,"style":413},[411,412],"mord","mathnormal","margin-right:0.0576em;","S"," states, each filled by a transition that scans\n",[390,417,419],{"className":418},[393],[390,420,422],{"className":421,"ariaHidden":398},[397],[390,423,425,428],{"className":424},[402],[390,426],{"className":427,"style":407},[406],[390,429,432],{"className":430,"style":431},[411,412],"margin-right:0.1389em;","T"," predecessors, costs ",[390,435,437],{"className":436},[393],[390,438,440,473],{"className":439,"ariaHidden":398},[397],[390,441,443,447,452,457,460,465,470],{"className":442},[402],[390,444],{"className":445,"style":446},[406],"height:1em;vertical-align:-0.25em;",[390,448,451],{"className":449,"style":450},[411,412],"margin-right:0.0278em;","O",[390,453,456],{"className":454},[455],"mopen","(",[390,458,414],{"className":459,"style":413},[411,412],[390,461],{"className":462,"style":464},[463],"mspace","margin-right:0.2222em;",[390,466,469],{"className":467},[468],"mbin","⋅",[390,471],{"className":472,"style":464},[463],[390,474,476,479,482],{"className":475},[402],[390,477],{"className":478,"style":446},[406],[390,480,432],{"className":481,"style":431},[411,412],[390,483,486],{"className":484},[485],"mclose",")",". Often ",[390,489,491],{"className":490},[393],[390,492,494],{"className":493,"ariaHidden":398},[397],[390,495,497,500],{"className":496},[402],[390,498],{"className":499,"style":407},[406],[390,501,432],{"className":502,"style":431},[411,412]," is itself ",[390,505,507],{"className":506},[393],[390,508,510],{"className":509,"ariaHidden":398},[397],[390,511,513,516,520,523,527],{"className":512},[402],[390,514],{"className":515,"style":446},[406],[390,517,519],{"className":518},[411],"Θ",[390,521,456],{"className":522},[455],[390,524,526],{"className":525},[411,412],"n",[390,528,486],{"className":529},[485],", a min\nover all earlier states or a split point ranging over an interval, and the honest\nrecurrence runs in ",[390,532,534],{"className":533},[393],[390,535,537],{"className":536,"ariaHidden":398},[397],[390,538,540,544,547,550,592],{"className":539},[402],[390,541],{"className":542,"style":543},[406],"height:1.0641em;vertical-align:-0.25em;",[390,545,451],{"className":546,"style":450},[411,412],[390,548,456],{"className":549},[455],[390,551,553,556],{"className":552},[411],[390,554,526],{"className":555},[411,412],[390,557,560],{"className":558},[559],"msupsub",[390,561,564],{"className":562},[563],"vlist-t",[390,565,568],{"className":566},[567],"vlist-r",[390,569,573],{"className":570,"style":572},[571],"vlist","height:0.8141em;",[390,574,576,581],{"style":575},"top:-3.063em;margin-right:0.05em;",[390,577],{"className":578,"style":580},[579],"pstrut","height:2.7em;",[390,582,588],{"className":583},[584,585,586,587],"sizing","reset-size6","size3","mtight",[390,589,591],{"className":590},[411,587],"2",[390,593,486],{"className":594},[485]," or ",[390,597,599],{"className":598},[393],[390,600,602],{"className":601,"ariaHidden":398},[397],[390,603,605,608,611,614,644],{"className":604},[402],[390,606],{"className":607,"style":543},[406],[390,609,451],{"className":610,"style":450},[411,412],[390,612,456],{"className":613},[455],[390,615,617,620],{"className":616},[411],[390,618,526],{"className":619},[411,412],[390,621,623],{"className":622},[559],[390,624,626],{"className":625},[563],[390,627,629],{"className":628},[567],[390,630,632],{"className":631,"style":572},[571],[390,633,634,637],{"style":575},[390,635],{"className":636,"style":580},[579],[390,638,640],{"className":639},[584,585,586,587],[390,641,643],{"className":642},[411,587],"3",[390,645,486],{"className":646},[485],". The techniques in this lesson all share\none move: they observe that the transition is not an ",[649,650,651],"em",{},"arbitrary"," min over\npredecessors but one with ",[654,655,656],"strong",{},"structure",", and they maintain an auxiliary object\n(a deque, a hull of lines, a monotone split pointer) that answers each transition\nfaster than a fresh scan.",[659,660,661],"sup",{},[385,662,667],{"href":663,"ariaDescribedBy":664,"dataFootnoteRef":376,"id":666},"#user-content-fn-cpalg",[665],"footnote-label","user-content-fnref-cpalg","1"," None of them changes ",[649,670,671],{},"what"," the DP\ncomputes, only how fast it computes it.",[381,674,675,676,679],{},"A useful test runs through the whole lesson: look at the shape of the\ninner min\u002Fmax and ask ",[649,677,678],{},"what stays constant and what slides"," as the outer index\nadvances. The answer names the technique.",[381,681,682,683,686],{},"The cost model here is the ",[385,684,685],{"href":17},"state-count times transition-work product","; these techniques attack the second factor.",[688,689,691],"h2",{"id":690},"monotonic-queue-optimization","Monotonic-queue optimization",[381,693,694],{},"Consider a transition of the form",[390,696,699],{"className":697},[698],"katex-display",[390,700,702],{"className":701},[393],[390,703,705,742,885],{"className":704,"ariaHidden":398},[397],[390,706,708,711,715,718,722,726,730,734,739],{"className":707},[402],[390,709],{"className":710,"style":446},[406],[390,712,714],{"className":713},[411,412],"d",[390,716,381],{"className":717},[411,412],[390,719,721],{"className":720},[455],"[",[390,723,725],{"className":724},[411,412],"i",[390,727,729],{"className":728},[485],"]",[390,731],{"className":732,"style":733},[463],"margin-right:0.2778em;",[390,735,738],{"className":736},[737],"mrel","=",[390,740],{"className":741,"style":733},[463],[390,743,745,749,757,850,854,857,860,863,866,869,875,878,882],{"className":744},[402],[390,746],{"className":747,"style":748},[406],"height:1.8em;vertical-align:-0.65em;",[390,750,752],{"className":751},[455],[390,753,456],{"className":754},[755,756],"delimsizing","size2",[390,758,761,769],{"className":759},[760],"mop",[390,762,764],{"className":763},[760],[390,765,768],{"className":766},[411,767],"mathrm","min",[390,770,772],{"className":771},[559],[390,773,776,841],{"className":774},[563,775],"vlist-t2",[390,777,779,836],{"className":778},[567],[390,780,783],{"className":781,"style":782},[571],"height:0.3361em;",[390,784,786,789],{"style":785},"top:-2.55em;margin-right:0.05em;",[390,787],{"className":788,"style":580},[579],[390,790,792],{"className":791},[584,585,586,587],[390,793,795,798,802,807,811,815,818,823,826,830,833],{"className":794},[411,587],[390,796,725],{"className":797},[411,412,587],[390,799,801],{"className":800},[468,587],"−",[390,803,806],{"className":804,"style":805},[411,412,587],"margin-right:0.0315em;","k",[390,808],{"className":809,"style":810},[463,587],"margin-right:0.1952em;",[390,812,814],{"className":813},[737,587],"≤",[390,816],{"className":817,"style":810},[463,587],[390,819,822],{"className":820,"style":821},[411,412,587],"margin-right:0.0572em;","j",[390,824],{"className":825,"style":810},[463,587],[390,827,829],{"className":828},[737,587],"\u003C",[390,831],{"className":832,"style":810},[463,587],[390,834,725],{"className":835},[411,412,587],[390,837,840],{"className":838},[839],"vlist-s","​",[390,842,844],{"className":843},[567],[390,845,848],{"className":846,"style":847},[571],"height:0.2861em;",[390,849],{},[390,851],{"className":852,"style":853},[463],"margin-right:0.1667em;",[390,855,714],{"className":856},[411,412],[390,858,381],{"className":859},[411,412],[390,861,721],{"className":862},[455],[390,864,822],{"className":865,"style":821},[411,412],[390,867,729],{"className":868},[485],[390,870,872],{"className":871},[485],[390,873,486],{"className":874},[755,756],[390,876],{"className":877,"style":464},[463],[390,879,881],{"className":880},[468],"+",[390,883],{"className":884,"style":464},[463],[390,886,888,891,899,902,905,908],{"className":887},[402],[390,889],{"className":890,"style":446},[406],[390,892,895],{"className":893},[411,894],"text",[390,896,898],{"className":897},[411],"cost",[390,900,456],{"className":901},[455],[390,903,725],{"className":904},[411,412],[390,906,486],{"className":907},[485],[390,909,912],{"className":910},[911],"mpunct",",",[381,914,915,916,919,920,936,937,953,954,979,980,983,984,987,988,1012,1013],{},"where each state takes a min (or max) of the previous states ",[649,917,918],{},"within a sliding\nwindow"," of width ",[390,921,923],{"className":922},[393],[390,924,926],{"className":925,"ariaHidden":398},[397],[390,927,929,933],{"className":928},[402],[390,930],{"className":931,"style":932},[406],"height:0.6944em;",[390,934,806],{"className":935,"style":805},[411,412],", then adds a term depending only on ",[390,938,940],{"className":939},[393],[390,941,943],{"className":942,"ariaHidden":398},[397],[390,944,946,950],{"className":945},[402],[390,947],{"className":948,"style":949},[406],"height:0.6595em;",[390,951,725],{"className":952},[411,412],". Evaluated\ndirectly this is ",[390,955,957],{"className":956},[393],[390,958,960],{"className":959,"ariaHidden":398},[397],[390,961,963,966,969,972,976],{"className":962},[402],[390,964],{"className":965,"style":446},[406],[390,967,451],{"className":968,"style":450},[411,412],[390,970,456],{"className":971},[455],[390,973,975],{"className":974,"style":805},[411,412],"nk",[390,977,486],{"className":978},[485],": every state rescans its window. But the window's left\nedge only ever moves right, and its right edge only ever moves right, so this is\nexactly the ",[654,981,982],{},"sliding-window minimum"," problem, which a ",[654,985,986],{},"monotonic deque","\nsolves in ",[390,989,991],{"className":990},[393],[390,992,994],{"className":993,"ariaHidden":398},[397],[390,995,997,1000,1003,1006,1009],{"className":996},[402],[390,998],{"className":999,"style":446},[406],[390,1001,451],{"className":1002,"style":450},[411,412],[390,1004,456],{"className":1005},[455],[390,1007,667],{"className":1008},[411],[390,1010,486],{"className":1011},[485]," amortized per step.",[659,1014,1015],{},[385,1016,591],{"href":1017,"ariaDescribedBy":1018,"dataFootnoteRef":376,"id":1019},"#user-content-fn-skiena",[665],"user-content-fnref-skiena",[1021,1022,1024],"callout",{"type":1023},"note",[381,1025,1026,1029,1030,1057,1058,1061],{},[654,1027,1028],{},"Intuition."," Keep the candidate ",[390,1031,1033],{"className":1032},[393],[390,1034,1036],{"className":1035,"ariaHidden":398},[397],[390,1037,1039,1042,1045,1048,1051,1054],{"className":1038},[402],[390,1040],{"className":1041,"style":446},[406],[390,1043,714],{"className":1044},[411,412],[390,1046,381],{"className":1047},[411,412],[390,1049,721],{"className":1050},[455],[390,1052,822],{"className":1053,"style":821},[411,412],[390,1055,729],{"className":1056},[485]," values in a deque sorted in\nincreasing order. A new value dominates, and so evicts, every larger value\nalready at the back, because that older value can never again be the minimum\nwhile a smaller, ",[649,1059,1060],{},"later"," value survives. The front of the deque is always the\nwindow's minimum.",[1063,1064,1068],"pre",{"className":1065,"code":1066,"language":1067,"meta":376,"style":376},"language-algorithm shiki shiki-themes Vesper Light - Orange Boost (Quick Open Adjusted) vesper","caption: $\\textsc{MonoQueue-DP}$ — evaluate $dp[i]=\\min_{i-k\\le j\u003Ci}dp[j]+\\text{cost}(i)$ in $O(n)$\n$Q \\gets$ empty deque of indices       \u002F\u002F $dp$ increasing front$\\to$back\n$dp[0] \\gets \\text{base}$;  push $0$ onto $Q$\nfor $i \\gets 1$ to $n$ do\n  while $Q$ nonempty and $front(Q) \u003C i-k$ do\n    pop front of $Q$                    \u002F\u002F left the window\n  $dp[i] \\gets dp[front(Q)] + \\text{cost}(i)$\n  while $Q$ nonempty and $dp[back(Q)] \\ge dp[i]$ do\n    pop back of $Q$                     \u002F\u002F $i$ dominates older candidate\n  push $i$ onto $Q$\n","algorithm",[1069,1070,1071,1077,1082,1087,1092,1097,1102,1107,1112,1117],"code",{"__ignoreMap":376},[390,1072,1074],{"class":1073,"line":6},"line",[390,1075,1076],{},"caption: $\\textsc{MonoQueue-DP}$ — evaluate $dp[i]=\\min_{i-k\\le j\u003Ci}dp[j]+\\text{cost}(i)$ in $O(n)$\n",[390,1078,1079],{"class":1073,"line":18},[390,1080,1081],{},"$Q \\gets$ empty deque of indices       \u002F\u002F $dp$ increasing front$\\to$back\n",[390,1083,1084],{"class":1073,"line":24},[390,1085,1086],{},"$dp[0] \\gets \\text{base}$;  push $0$ onto $Q$\n",[390,1088,1089],{"class":1073,"line":73},[390,1090,1091],{},"for $i \\gets 1$ to $n$ do\n",[390,1093,1094],{"class":1073,"line":102},[390,1095,1096],{},"  while $Q$ nonempty and $front(Q) \u003C i-k$ do\n",[390,1098,1099],{"class":1073,"line":108},[390,1100,1101],{},"    pop front of $Q$                    \u002F\u002F left the window\n",[390,1103,1104],{"class":1073,"line":116},[390,1105,1106],{},"  $dp[i] \\gets dp[front(Q)] + \\text{cost}(i)$\n",[390,1108,1109],{"class":1073,"line":196},[390,1110,1111],{},"  while $Q$ nonempty and $dp[back(Q)] \\ge dp[i]$ do\n",[390,1113,1114],{"class":1073,"line":202},[390,1115,1116],{},"    pop back of $Q$                     \u002F\u002F $i$ dominates older candidate\n",[390,1118,1119],{"class":1073,"line":283},[390,1120,1121],{},"  push $i$ onto $Q$\n",[381,1123,1124,1125,1149,1150,1174,1175,1178,1179,1206,1207,1222,1223,1243,1244,1271,1272,1288,1289,1304,1305,1333,1334,1336,1337,1340,1341,1398,1399,1436,1437,1440,1441,1444],{},"Each index is pushed and popped at most once, so the total work is ",[390,1126,1128],{"className":1127},[393],[390,1129,1131],{"className":1130,"ariaHidden":398},[397],[390,1132,1134,1137,1140,1143,1146],{"className":1133},[402],[390,1135],{"className":1136,"style":446},[406],[390,1138,451],{"className":1139,"style":450},[411,412],[390,1141,456],{"className":1142},[455],[390,1144,526],{"className":1145},[411,412],[390,1147,486],{"className":1148},[485],",\ndown from ",[390,1151,1153],{"className":1152},[393],[390,1154,1156],{"className":1155,"ariaHidden":398},[397],[390,1157,1159,1162,1165,1168,1171],{"className":1158},[402],[390,1160],{"className":1161,"style":446},[406],[390,1163,451],{"className":1164,"style":450},[411,412],[390,1166,456],{"className":1167},[455],[390,1169,975],{"className":1170,"style":805},[411,412],[390,1172,486],{"className":1173},[485],". ",[654,1176,1177],{},"Jump Game VI"," is the canonical instance: ",[390,1180,1182],{"className":1181},[393],[390,1183,1185],{"className":1184,"ariaHidden":398},[397],[390,1186,1188,1191,1194,1197,1200,1203],{"className":1187},[402],[390,1189],{"className":1190,"style":446},[406],[390,1192,714],{"className":1193},[411,412],[390,1195,381],{"className":1196},[411,412],[390,1198,721],{"className":1199},[455],[390,1201,725],{"className":1202},[411,412],[390,1204,729],{"className":1205},[485]," is the\nbest score reachable at index ",[390,1208,1210],{"className":1209},[393],[390,1211,1213],{"className":1212,"ariaHidden":398},[397],[390,1214,1216,1219],{"className":1215},[402],[390,1217],{"className":1218,"style":949},[406],[390,1220,725],{"className":1221},[411,412],", equal to ",[390,1224,1226],{"className":1225},[393],[390,1227,1229],{"className":1228,"ariaHidden":398},[397],[390,1230,1232,1236],{"className":1231},[402],[390,1233],{"className":1234,"style":1235},[406],"height:0.4306em;",[390,1237,1239],{"className":1238},[760],[390,1240,1242],{"className":1241},[411,767],"max"," of ",[390,1245,1247],{"className":1246},[393],[390,1248,1250],{"className":1249,"ariaHidden":398},[397],[390,1251,1253,1256,1259,1262,1265,1268],{"className":1252},[402],[390,1254],{"className":1255,"style":446},[406],[390,1257,714],{"className":1258},[411,412],[390,1260,381],{"className":1261},[411,412],[390,1263,721],{"className":1264},[455],[390,1266,822],{"className":1267,"style":821},[411,412],[390,1269,729],{"className":1270},[485]," for ",[390,1273,1275],{"className":1274},[393],[390,1276,1278],{"className":1277,"ariaHidden":398},[397],[390,1279,1281,1285],{"className":1280},[402],[390,1282],{"className":1283,"style":1284},[406],"height:0.854em;vertical-align:-0.1944em;",[390,1286,822],{"className":1287,"style":821},[411,412]," in the\nlast ",[390,1290,1292],{"className":1291},[393],[390,1293,1295],{"className":1294,"ariaHidden":398},[397],[390,1296,1298,1301],{"className":1297},[402],[390,1299],{"className":1300,"style":932},[406],[390,1302,806],{"className":1303,"style":805},[411,412]," positions, plus ",[390,1306,1308],{"className":1307},[393],[390,1309,1311],{"className":1310,"ariaHidden":398},[397],[390,1312,1314,1317,1324,1327,1330],{"className":1313},[402],[390,1315],{"className":1316,"style":446},[406],[390,1318,1320],{"className":1319},[411,894],[390,1321,1323],{"className":1322},[411],"nums",[390,1325,721],{"className":1326},[455],[390,1328,725],{"className":1329},[411,412],[390,1331,729],{"className":1332},[485],": a sliding-window ",[649,1335,1242],{},", the same\ndeque with the inequality flipped. ",[654,1338,1339],{},"Constrained Subsequence Sum"," is the same\nrecurrence with ",[390,1342,1344],{"className":1343},[393],[390,1345,1347,1377],{"className":1346,"ariaHidden":398},[397],[390,1348,1350,1353,1359,1362,1365,1368,1371,1374],{"className":1349},[402],[390,1351],{"className":1352,"style":446},[406],[390,1354,1356],{"className":1355},[411,894],[390,1357,898],{"className":1358},[411],[390,1360,456],{"className":1361},[455],[390,1363,725],{"className":1364},[411,412],[390,1366,486],{"className":1367},[485],[390,1369],{"className":1370,"style":733},[463],[390,1372,738],{"className":1373},[737],[390,1375],{"className":1376,"style":733},[463],[390,1378,1380,1383,1389,1392,1395],{"className":1379},[402],[390,1381],{"className":1382,"style":446},[406],[390,1384,1386],{"className":1385},[411,894],[390,1387,1323],{"className":1388},[411],[390,1390,721],{"className":1391},[455],[390,1393,725],{"className":1394},[411,412],[390,1396,729],{"className":1397},[485]," and a ",[390,1400,1402],{"className":1401},[393],[390,1403,1405],{"className":1404,"ariaHidden":398},[397],[390,1406,1408,1411,1417,1420,1423,1426,1429,1433],{"className":1407},[402],[390,1409],{"className":1410,"style":446},[406],[390,1412,1414],{"className":1413},[760],[390,1415,1242],{"className":1416},[411,767],[390,1418,456],{"className":1419},[455],[390,1421,469],{"className":1422},[411],[390,1424,912],{"className":1425},[911],[390,1427],{"className":1428,"style":853},[463],[390,1430,1432],{"className":1431},[411],"0",[390,1434,486],{"className":1435},[485]," reset.\nThis is the ",[385,1438,1439],{"href":132},"monotonic-stack idea"," from the sequences module, extended to a deque\nso that ",[649,1442,1443],{},"both"," ends move.",[1446,1447,1451,1686],"figure",{"className":1448},[1449,1450],"tikz-figure","tikz-diagram-rendered",[1452,1453,1458],"svg",{"xmlns":1454,"width":1455,"height":1456,"viewBox":1457},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","229.869","99.042","-75 -75 172.402 74.282",[1459,1460,1463,1468,1477,1480,1487,1501,1504,1511,1514,1521,1524,1531,1544,1548,1615,1642,1650],"g",{"stroke":1461,"style":1462},"currentColor","stroke-miterlimit:10;stroke-width:.4",[1464,1465],"path",{"fill":1466,"d":1467},"none","M-65.403-26.526h22.762v-22.762h-22.762Z",[1459,1469,1471],{"transform":1470},"translate(-2.312 2.9)",[1464,1472],{"d":1473,"fill":1461,"stroke":1461,"className":1474,"style":1476},"M-52.959-38.294Q-52.712-37.995-52.106-37.995Q-51.825-37.995-51.585-38.133Q-51.346-38.272-51.168-38.494Q-50.990-38.716-50.880-38.979Q-50.647-39.555-50.647-40.671Q-50.814-40.306-51.119-40.082Q-51.425-39.858-51.807-39.858Q-52.343-39.858-52.759-40.137Q-53.174-40.416-53.405-40.882Q-53.635-41.348-53.635-41.875Q-53.635-42.288-53.488-42.657Q-53.341-43.027-53.077-43.303Q-52.814-43.580-52.444-43.741Q-52.075-43.901-51.662-43.901Q-51.104-43.901-50.730-43.609Q-50.357-43.317-50.153-42.853Q-49.948-42.389-49.869-41.873Q-49.790-41.357-49.790-40.825Q-49.790-40.109-50.058-39.386Q-50.326-38.663-50.849-38.186Q-51.372-37.709-52.097-37.709Q-52.647-37.709-53.024-37.958Q-53.402-38.206-53.402-38.724Q-53.402-38.843-53.345-38.946Q-53.288-39.050-53.187-39.109Q-53.086-39.168-52.959-39.168Q-52.774-39.168-52.651-39.036Q-52.528-38.905-52.528-38.724Q-52.528-38.549-52.655-38.421Q-52.783-38.294-52.959-38.294M-51.763-40.122Q-51.394-40.122-51.146-40.364Q-50.897-40.605-50.781-40.963Q-50.665-41.322-50.665-41.695Q-50.665-41.805-50.673-41.858Q-50.669-41.871-50.667-41.882Q-50.665-41.893-50.665-41.910Q-50.665-42.565-50.880-43.104Q-51.095-43.642-51.662-43.642Q-52.022-43.642-52.251-43.492Q-52.480-43.343-52.596-43.086Q-52.712-42.829-52.745-42.548Q-52.778-42.266-52.778-41.893L-52.778-41.858Q-52.778-41.532-52.752-41.245Q-52.726-40.957-52.627-40.698Q-52.528-40.438-52.317-40.280Q-52.106-40.122-51.763-40.122",[1475],"tikz-text","stroke-width:0.270",[1464,1478],{"fill":1466,"d":1479},"M-42.641-26.526h22.762v-22.762H-42.64Z",[1459,1481,1483],{"transform":1482},"translate(20.45 2.9)",[1464,1484],{"d":1485,"fill":1461,"stroke":1461,"className":1486,"style":1476},"M-51.324-39.384L-53.763-39.384L-53.763-39.700L-50.937-43.848Q-50.893-43.901-50.827-43.901L-50.673-43.901Q-50.634-43.901-50.601-43.868Q-50.568-43.835-50.568-43.791L-50.568-39.700L-49.667-39.700L-49.667-39.384L-50.568-39.384L-50.568-38.518Q-50.568-38.223-49.667-38.223L-49.667-37.907L-52.220-37.907L-52.220-38.223Q-51.860-38.223-51.592-38.278Q-51.324-38.333-51.324-38.518L-51.324-39.384M-51.267-42.873L-53.429-39.700L-51.267-39.700",[1475],[1459,1488,1491,1494],{"stroke":1489,"style":1490},"var(--tk-accent)","stroke-width:1.2",[1464,1492],{"fill":1466,"d":1493},"M-19.879-26.526H2.883v-22.762h-22.762Z",[1459,1495,1497],{"transform":1496},"translate(43.212 2.9)",[1464,1498],{"d":1499,"fill":1461,"stroke":1461,"className":1500,"style":1476},"M-50.115-37.907L-53.565-37.907L-53.565-38.140Q-53.565-38.153-53.534-38.184L-52.080-39.761Q-51.614-40.258-51.361-40.563Q-51.108-40.869-50.917-41.280Q-50.726-41.691-50.726-42.130Q-50.726-42.719-51.049-43.152Q-51.372-43.585-51.952-43.585Q-52.216-43.585-52.462-43.475Q-52.708-43.365-52.884-43.178Q-53.060-42.991-53.156-42.741L-53.077-42.741Q-52.875-42.741-52.732-42.605Q-52.589-42.469-52.589-42.253Q-52.589-42.047-52.732-41.908Q-52.875-41.770-53.077-41.770Q-53.279-41.770-53.422-41.913Q-53.565-42.055-53.565-42.253Q-53.565-42.715-53.328-43.088Q-53.090-43.462-52.690-43.681Q-52.291-43.901-51.842-43.901Q-51.319-43.901-50.865-43.686Q-50.410-43.470-50.137-43.071Q-49.865-42.671-49.865-42.130Q-49.865-41.735-50.036-41.381Q-50.208-41.027-50.473-40.748Q-50.739-40.469-51.190-40.084Q-51.640-39.700-51.719-39.625L-52.743-38.663L-51.926-38.663Q-51.275-38.663-50.838-38.674Q-50.401-38.685-50.370-38.707Q-50.300-38.790-50.245-39.030Q-50.190-39.269-50.150-39.537L-49.865-39.537",[1475],[1464,1502],{"fill":1466,"d":1503},"M2.883-26.526h22.762v-22.762H2.883Z",[1459,1505,1507],{"transform":1506},"translate(65.974 2.9)",[1464,1508],{"d":1509,"fill":1461,"stroke":1461,"className":1510,"style":1476},"M-52.400-38.149Q-52.400-38.786-52.244-39.432Q-52.088-40.078-51.796-40.684Q-51.504-41.291-51.095-41.840L-50.278-42.948L-51.306-42.948Q-52.950-42.948-52.998-42.904Q-53.104-42.776-53.222-42.073L-53.508-42.073L-53.213-43.989L-52.923-43.989L-52.923-43.963Q-52.923-43.800-52.359-43.752Q-51.794-43.703-51.249-43.703L-49.531-43.703L-49.531-43.497Q-49.531-43.479-49.533-43.470Q-49.535-43.462-49.540-43.453L-50.827-41.704Q-51.078-41.352-51.225-40.926Q-51.372-40.500-51.438-40.036Q-51.504-39.573-51.517-39.162Q-51.530-38.751-51.530-38.149Q-51.530-37.969-51.656-37.839Q-51.781-37.709-51.961-37.709Q-52.080-37.709-52.183-37.766Q-52.286-37.824-52.343-37.927Q-52.400-38.030-52.400-38.149",[1475],[1464,1512],{"fill":1466,"d":1513},"M25.645-26.526h22.763v-22.762H25.645Z",[1459,1515,1517],{"transform":1516},"translate(88.736 2.9)",[1464,1518],{"d":1519,"fill":1461,"stroke":1461,"className":1520,"style":1476},"M-53.196-38.913Q-53.055-38.500-52.695-38.248Q-52.334-37.995-51.899-37.995Q-51.447-37.995-51.181-38.248Q-50.915-38.500-50.812-38.885Q-50.709-39.269-50.709-39.726Q-50.709-41.427-51.618-41.427Q-51.939-41.427-52.168-41.333Q-52.396-41.238-52.526-41.119Q-52.655-41.001-52.767-40.862Q-52.879-40.724-52.915-40.715L-52.998-40.715Q-53.042-40.715-53.073-40.746Q-53.104-40.777-53.104-40.825L-53.104-43.822Q-53.104-43.853-53.068-43.877Q-53.033-43.901-53.007-43.901L-52.967-43.901Q-52.334-43.611-51.662-43.611Q-50.990-43.611-50.348-43.901L-50.322-43.901Q-50.291-43.901-50.258-43.879Q-50.225-43.857-50.225-43.822L-50.225-43.721Q-50.225-43.717-50.234-43.699Q-50.243-43.681-50.243-43.677Q-50.559-43.282-51.029-43.060Q-51.500-42.838-51.996-42.838Q-52.405-42.838-52.787-42.948L-52.787-41.229Q-52.330-41.686-51.618-41.686Q-51.108-41.686-50.709-41.405Q-50.309-41.124-50.087-40.669Q-49.865-40.214-49.865-39.709Q-49.865-39.159-50.144-38.700Q-50.423-38.241-50.889-37.975Q-51.355-37.709-51.899-37.709Q-52.339-37.709-52.723-37.936Q-53.108-38.162-53.336-38.542Q-53.565-38.922-53.565-39.366Q-53.565-39.559-53.433-39.691Q-53.301-39.823-53.104-39.823Q-52.972-39.823-52.868-39.764Q-52.765-39.704-52.706-39.601Q-52.647-39.498-52.647-39.366Q-52.647-39.168-52.774-39.036Q-52.901-38.905-53.104-38.905Q-53.165-38.905-53.196-38.913",[1475],[1464,1522],{"fill":1466,"d":1523},"M48.408-26.526H71.17v-22.762H48.408Z",[1459,1525,1527],{"transform":1526},"translate(111.498 2.9)",[1464,1528],{"d":1529,"fill":1461,"stroke":1461,"className":1530,"style":1476},"M-53.635-39.274Q-53.635-39.832-53.275-40.245Q-52.915-40.658-52.339-40.930L-52.708-41.163Q-53.011-41.365-53.198-41.695Q-53.385-42.025-53.385-42.381Q-53.385-43.035-52.879-43.468Q-52.374-43.901-51.710-43.901Q-51.311-43.901-50.926-43.741Q-50.542-43.580-50.293-43.275Q-50.045-42.969-50.045-42.552Q-50.045-41.721-51.113-41.163L-50.559-40.816Q-50.212-40.588-50.001-40.219Q-49.790-39.849-49.790-39.436Q-49.790-39.058-49.948-38.740Q-50.106-38.421-50.383-38.188Q-50.660-37.955-51.003-37.832Q-51.346-37.709-51.710-37.709Q-52.176-37.709-52.622-37.896Q-53.068-38.083-53.352-38.437Q-53.635-38.790-53.635-39.274M-53.112-39.274Q-53.112-38.729-52.693-38.362Q-52.273-37.995-51.710-37.995Q-51.381-37.995-51.056-38.127Q-50.730-38.259-50.522-38.513Q-50.313-38.768-50.313-39.111Q-50.313-39.375-50.449-39.599Q-50.585-39.823-50.818-39.977L-52.062-40.759Q-52.523-40.522-52.818-40.135Q-53.112-39.748-53.112-39.274M-52.501-42.029L-51.385-41.326Q-51.161-41.449-50.957-41.638Q-50.752-41.827-50.632-42.060Q-50.511-42.293-50.511-42.552Q-50.511-42.860-50.682-43.110Q-50.854-43.361-51.130-43.501Q-51.407-43.642-51.719-43.642Q-52.168-43.642-52.541-43.396Q-52.915-43.150-52.915-42.723Q-52.915-42.319-52.501-42.029",[1475],[1459,1532,1534,1537],{"fill":1533},"var(--tk-soft-accent)",[1464,1535],{"d":1536},"M71.17-26.526h22.762v-22.762H71.17Z",[1459,1538,1540],{"transform":1539},"translate(134.39 3.125)",[1464,1541],{"d":1542,"fill":1461,"stroke":1461,"className":1543,"style":1476},"M-52.475-38.412Q-52.475-38.610-52.324-38.762Q-52.172-38.913-51.970-38.913Q-51.768-38.913-51.616-38.766Q-51.464-38.619-51.464-38.412Q-51.464-38.201-51.616-38.054Q-51.768-37.907-51.970-37.907Q-52.172-37.907-52.324-38.059Q-52.475-38.210-52.475-38.412M-52.115-39.718L-52.115-40.183Q-52.115-40.913-51.790-41.550Q-51.583-41.963-51.258-42.288Q-50.990-42.556-50.990-43.035Q-50.990-43.405-51.084-43.609Q-51.179-43.813-51.390-43.901Q-51.601-43.989-51.970-43.989Q-52.313-43.989-52.620-43.855Q-52.928-43.721-53.095-43.462L-53.068-43.462Q-52.888-43.462-52.763-43.336Q-52.638-43.211-52.638-43.027Q-52.638-42.846-52.763-42.717Q-52.888-42.587-53.068-42.587Q-53.187-42.587-53.290-42.644Q-53.394-42.701-53.451-42.805Q-53.508-42.908-53.508-43.027Q-53.508-43.589-53.031-43.921Q-52.554-44.253-51.970-44.253Q-51.513-44.253-51.115-44.143Q-50.717-44.033-50.449-43.756Q-50.181-43.479-50.181-43.027Q-50.181-42.759-50.309-42.510Q-50.436-42.262-50.656-42.108Q-51.179-41.765-51.502-41.251Q-51.825-40.737-51.825-40.148L-51.825-39.718Q-51.825-39.682-51.858-39.658Q-51.891-39.634-51.917-39.634L-52.022-39.634Q-52.053-39.634-52.084-39.660Q-52.115-39.687-52.115-39.718",[1475],[1464,1545],{"fill":1466,"stroke":1489,"d":1546,"style":1547},"M-19.88-56.401v4.268h91.05v-4.268","stroke-width:.8",[1459,1549,1550],{"fill":1489,"stroke":1489},[1459,1551,1553,1561,1567,1573,1579,1585,1591,1597,1603,1609],{"fill":1489,"stroke":1466,"fontSize":1552},"8",[1459,1554,1556],{"transform":1555},"translate(41.516 -25.03)",[1464,1557],{"d":1558,"fill":1489,"stroke":1489,"className":1559,"style":1560},"M-52.198-37.938L-53.268-40.794Q-53.334-40.973-53.465-41.016Q-53.596-41.059-53.854-41.059L-53.854-41.356L-52.174-41.356L-52.174-41.059Q-52.624-41.059-52.624-40.860Q-52.620-40.844-52.618-40.827Q-52.616-40.809-52.616-40.794L-51.823-38.700L-51.112-40.610Q-51.147-40.704-51.147-40.749Q-51.147-40.794-51.182-40.794Q-51.249-40.973-51.379-41.016Q-51.510-41.059-51.764-41.059L-51.764-41.356L-50.174-41.356L-50.174-41.059Q-50.624-41.059-50.624-40.860Q-50.620-40.841-50.618-40.823Q-50.616-40.805-50.616-40.794L-49.784-38.579L-49.030-40.579Q-49.006-40.637-49.006-40.708Q-49.006-40.868-49.143-40.964Q-49.280-41.059-49.448-41.059L-49.448-41.356L-48.061-41.356L-48.061-41.059Q-48.295-41.059-48.473-40.932Q-48.651-40.805-48.733-40.579L-49.717-37.938Q-49.772-37.829-49.885-37.829L-49.944-37.829Q-50.057-37.829-50.100-37.938L-50.959-40.212L-51.815-37.938Q-51.854-37.829-51.975-37.829L-52.030-37.829Q-52.143-37.829-52.198-37.938M-45.788-37.907L-47.565-37.907L-47.565-38.204Q-47.292-38.204-47.124-38.251Q-46.956-38.298-46.956-38.466L-46.956-40.602Q-46.956-40.817-47.012-40.913Q-47.069-41.009-47.182-41.030Q-47.295-41.052-47.542-41.052L-47.542-41.348L-46.342-41.434L-46.342-38.466Q-46.342-38.298-46.196-38.251Q-46.049-38.204-45.788-38.204L-45.788-37.907M-47.229-42.829Q-47.229-43.020-47.094-43.151Q-46.959-43.282-46.764-43.282Q-46.643-43.282-46.540-43.219Q-46.436-43.157-46.374-43.053Q-46.311-42.950-46.311-42.829Q-46.311-42.634-46.442-42.499Q-46.573-42.364-46.764-42.364Q-46.963-42.364-47.096-42.497Q-47.229-42.630-47.229-42.829M-43.358-37.907L-45.213-37.907L-45.213-38.204Q-44.940-38.204-44.772-38.251Q-44.604-38.298-44.604-38.466L-44.604-40.602Q-44.604-40.817-44.667-40.913Q-44.729-41.009-44.848-41.030Q-44.967-41.052-45.213-41.052L-45.213-41.348L-44.022-41.434L-44.022-40.700Q-43.909-40.915-43.715-41.083Q-43.522-41.251-43.284-41.343Q-43.045-41.434-42.792-41.434Q-41.624-41.434-41.624-40.356L-41.624-38.466Q-41.624-38.298-41.454-38.251Q-41.284-38.204-41.014-38.204L-41.014-37.907L-42.870-37.907L-42.870-38.204Q-42.596-38.204-42.428-38.251Q-42.260-38.298-42.260-38.466L-42.260-40.341Q-42.260-40.723-42.381-40.952Q-42.502-41.180-42.854-41.180Q-43.167-41.180-43.420-41.018Q-43.674-40.856-43.821-40.587Q-43.967-40.317-43.967-40.020L-43.967-38.466Q-43.967-38.298-43.797-38.251Q-43.627-38.204-43.358-38.204L-43.358-37.907M-38.752-37.829Q-39.233-37.829-39.641-38.073Q-40.049-38.317-40.288-38.731Q-40.526-39.145-40.526-39.634Q-40.526-40.126-40.268-40.542Q-40.010-40.958-39.579-41.196Q-39.147-41.434-38.655-41.434Q-38.034-41.434-37.584-40.997L-37.584-42.626Q-37.584-42.841-37.647-42.936Q-37.709-43.032-37.827-43.053Q-37.944-43.075-38.190-43.075L-38.190-43.372L-36.967-43.458L-36.967-38.649Q-36.967-38.438-36.905-38.343Q-36.842-38.247-36.725-38.225Q-36.608-38.204-36.358-38.204L-36.358-37.907L-37.608-37.829L-37.608-38.313Q-38.073-37.829-38.752-37.829M-38.686-38.083Q-38.346-38.083-38.053-38.274Q-37.760-38.466-37.608-38.762L-37.608-40.594Q-37.756-40.868-38.018-41.024Q-38.280-41.180-38.592-41.180Q-39.217-41.180-39.501-40.733Q-39.784-40.286-39.784-39.626Q-39.784-38.981-39.532-38.532Q-39.280-38.083-38.686-38.083M-35.850-39.602Q-35.850-40.106-35.594-40.538Q-35.338-40.969-34.903-41.221Q-34.467-41.473-33.967-41.473Q-33.581-41.473-33.239-41.329Q-32.897-41.184-32.635-40.923Q-32.374-40.661-32.231-40.325Q-32.088-39.989-32.088-39.602Q-32.088-39.110-32.352-38.700Q-32.616-38.290-33.045-38.059Q-33.475-37.829-33.967-37.829Q-34.459-37.829-34.893-38.061Q-35.327-38.294-35.588-38.702Q-35.850-39.110-35.850-39.602M-33.967-38.106Q-33.510-38.106-33.258-38.329Q-33.006-38.552-32.918-38.903Q-32.831-39.255-32.831-39.700Q-32.831-40.130-32.924-40.468Q-33.018-40.805-33.272-41.012Q-33.526-41.219-33.967-41.219Q-34.616-41.219-34.860-40.803Q-35.104-40.387-35.104-39.700Q-35.104-39.255-35.016-38.903Q-34.928-38.552-34.676-38.329Q-34.424-38.106-33.967-38.106",[1475],"stroke-width:0.240",[1459,1562,1563],{"transform":1555},[1464,1564],{"d":1565,"fill":1489,"stroke":1489,"className":1566,"style":1560},"M-30.240-37.938L-31.310-40.794Q-31.377-40.973-31.507-41.016Q-31.638-41.059-31.896-41.059L-31.896-41.356L-30.216-41.356L-30.216-41.059Q-30.666-41.059-30.666-40.860Q-30.662-40.844-30.660-40.827Q-30.658-40.809-30.658-40.794L-29.865-38.700L-29.154-40.610Q-29.189-40.704-29.189-40.749Q-29.189-40.794-29.224-40.794Q-29.291-40.973-29.421-41.016Q-29.552-41.059-29.806-41.059L-29.806-41.356L-28.216-41.356L-28.216-41.059Q-28.666-41.059-28.666-40.860Q-28.662-40.841-28.660-40.823Q-28.658-40.805-28.658-40.794L-27.826-38.579L-27.072-40.579Q-27.048-40.637-27.048-40.708Q-27.048-40.868-27.185-40.964Q-27.322-41.059-27.490-41.059L-27.490-41.356L-26.103-41.356L-26.103-41.059Q-26.337-41.059-26.515-40.932Q-26.693-40.805-26.775-40.579L-27.759-37.938Q-27.814-37.829-27.927-37.829L-27.986-37.829Q-28.099-37.829-28.142-37.938L-29.002-40.212L-29.857-37.938Q-29.896-37.829-30.017-37.829L-30.072-37.829Q-30.185-37.829-30.240-37.938",[1475],[1459,1568,1569],{"transform":1555},[1464,1570],{"d":1571,"fill":1489,"stroke":1489,"className":1572,"style":1560},"M-20.923-35.907L-22.099-35.907L-22.099-43.907L-20.923-43.907L-20.923-43.540L-21.732-43.540L-21.732-36.274L-20.923-36.274",[1475],[1459,1574,1575],{"transform":1555},[1464,1576],{"d":1577,"fill":1489,"stroke":1489,"className":1578,"style":1560},"M-20.043-38.509Q-20.043-38.641-19.988-38.794L-19.316-40.524Q-19.226-40.747-19.226-40.930Q-19.226-41.180-19.402-41.180Q-19.707-41.180-19.918-40.872Q-20.128-40.563-20.234-40.180Q-20.246-40.106-20.316-40.106L-20.418-40.106Q-20.453-40.106-20.480-40.141Q-20.507-40.177-20.507-40.204L-20.507-40.235Q-20.386-40.700-20.091-41.067Q-19.796-41.434-19.386-41.434Q-19.179-41.434-19.009-41.352Q-18.839-41.270-18.736-41.116Q-18.632-40.962-18.632-40.755Q-18.632-40.634-18.691-40.466L-19.363-38.739Q-19.449-38.505-19.449-38.333Q-19.449-38.083-19.273-38.083Q-18.960-38.083-18.746-38.401Q-18.531-38.719-18.449-39.083Q-18.421-39.153-18.363-39.153L-18.257-39.153Q-18.218-39.153-18.195-39.124Q-18.171-39.094-18.171-39.059Q-18.171-39.044-18.179-39.028Q-18.257-38.727-18.404-38.460Q-18.550-38.192-18.775-38.011Q-19-37.829-19.289-37.829Q-19.605-37.829-19.824-38.016Q-20.043-38.204-20.043-38.509M-19.121-42.747Q-19.121-42.927-18.974-43.065Q-18.828-43.204-18.652-43.204Q-18.515-43.204-18.423-43.116Q-18.332-43.028-18.332-42.891Q-18.332-42.716-18.476-42.575Q-18.621-42.434-18.793-42.434Q-18.925-42.434-19.023-42.526Q-19.121-42.618-19.121-42.747",[1475],[1459,1580,1581],{"transform":1555},[1464,1582],{"d":1583,"fill":1489,"stroke":1489,"className":1584,"style":1560},"M-10.228-39.723L-15.060-39.723Q-15.134-39.735-15.185-39.784Q-15.236-39.833-15.236-39.907Q-15.236-40.059-15.060-40.091L-10.228-40.091Q-10.060-40.063-10.060-39.907Q-10.060-39.751-10.228-39.723",[1475],[1459,1586,1587],{"transform":1555},[1464,1588],{"d":1589,"fill":1489,"stroke":1489,"className":1590,"style":1560},"M-7.006-38.083Q-7.002-38.102-7-38.116Q-6.998-38.130-6.998-38.153L-5.845-42.755Q-5.806-42.942-5.806-42.969Q-5.806-43.075-6.302-43.075Q-6.400-43.106-6.400-43.204L-6.377-43.305Q-6.369-43.352-6.287-43.372L-5.181-43.458Q-5.131-43.458-5.097-43.428Q-5.064-43.399-5.064-43.341L-5.888-40.052Q-5.595-40.180-5.146-40.606Q-4.697-41.032-4.422-41.233Q-4.146-41.434-3.767-41.434Q-3.521-41.434-3.361-41.270Q-3.201-41.106-3.201-40.860Q-3.201-40.637-3.334-40.471Q-3.467-40.305-3.677-40.305Q-3.810-40.305-3.904-40.389Q-3.998-40.473-3.998-40.610Q-3.998-40.794-3.867-40.934Q-3.736-41.075-3.552-41.075Q-3.635-41.180-3.783-41.180Q-4.010-41.180-4.248-41.048Q-4.486-40.915-4.631-40.784Q-4.775-40.653-5.107-40.343Q-5.439-40.032-5.592-39.930Q-4.392-39.798-4.392-39.075Q-4.392-38.958-4.435-38.757Q-4.478-38.555-4.478-38.466Q-4.478-38.083-4.224-38.083Q-3.943-38.083-3.787-38.387Q-3.631-38.692-3.537-39.083Q-3.502-39.153-3.447-39.153L-3.342-39.153Q-3.302-39.153-3.279-39.124Q-3.256-39.094-3.256-39.059Q-3.256-39.044-3.263-39.028Q-3.373-38.555-3.613-38.192Q-3.853-37.829-4.240-37.829Q-4.595-37.829-4.838-38.057Q-5.080-38.286-5.080-38.641Q-5.080-38.712-5.056-38.848Q-5.033-38.985-5.033-39.059Q-5.033-39.270-5.181-39.407Q-5.330-39.544-5.551-39.612Q-5.771-39.680-5.974-39.700L-6.377-38.098Q-6.408-37.977-6.506-37.903Q-6.603-37.829-6.728-37.829Q-6.842-37.829-6.924-37.899Q-7.006-37.969-7.006-38.083",[1475],[1459,1592,1593],{"transform":1555},[1464,1594],{"d":1595,"fill":1489,"stroke":1489,"className":1596,"style":1560},"M-1.984-36.501Q-1.984-36.524-1.953-36.571Q-1.660-36.833-1.494-37.200Q-1.328-37.567-1.328-37.954L-1.328-38.012Q-1.456-37.907-1.624-37.907Q-1.816-37.907-1.953-38.040Q-2.089-38.173-2.089-38.372Q-2.089-38.563-1.953-38.696Q-1.816-38.829-1.624-38.829Q-1.324-38.829-1.199-38.559Q-1.074-38.290-1.074-37.954Q-1.074-37.505-1.255-37.091Q-1.437-36.677-1.777-36.380Q-1.800-36.356-1.839-36.356Q-1.886-36.356-1.935-36.401Q-1.984-36.446-1.984-36.501",[1475],[1459,1598,1599],{"transform":1555},[1464,1600],{"d":1601,"fill":1489,"stroke":1489,"className":1602,"style":1560},"M3.074-38.509Q3.074-38.641 3.128-38.794L3.800-40.524Q3.890-40.747 3.890-40.930Q3.890-41.180 3.714-41.180Q3.409-41.180 3.199-40.872Q2.988-40.563 2.882-40.180Q2.870-40.106 2.800-40.106L2.699-40.106Q2.663-40.106 2.636-40.141Q2.609-40.177 2.609-40.204L2.609-40.235Q2.730-40.700 3.025-41.067Q3.320-41.434 3.730-41.434Q3.937-41.434 4.107-41.352Q4.277-41.270 4.380-41.116Q4.484-40.962 4.484-40.755Q4.484-40.634 4.425-40.466L3.753-38.739Q3.667-38.505 3.667-38.333Q3.667-38.083 3.843-38.083Q4.156-38.083 4.370-38.401Q4.585-38.719 4.667-39.083Q4.695-39.153 4.753-39.153L4.859-39.153Q4.898-39.153 4.921-39.124Q4.945-39.094 4.945-39.059Q4.945-39.044 4.937-39.028Q4.859-38.727 4.712-38.460Q4.566-38.192 4.341-38.011Q4.116-37.829 3.827-37.829Q3.511-37.829 3.292-38.016Q3.074-38.204 3.074-38.509M3.995-42.747Q3.995-42.927 4.142-43.065Q4.288-43.204 4.464-43.204Q4.601-43.204 4.693-43.116Q4.784-43.028 4.784-42.891Q4.784-42.716 4.640-42.575Q4.495-42.434 4.324-42.434Q4.191-42.434 4.093-42.526Q3.995-42.618 3.995-42.747",[1475],[1459,1604,1605],{"transform":1555},[1464,1606],{"d":1607,"fill":1489,"stroke":1489,"className":1608,"style":1560},"M12.888-39.723L8.056-39.723Q7.981-39.735 7.931-39.784Q7.880-39.833 7.880-39.907Q7.880-40.059 8.056-40.091L12.888-40.091Q13.056-40.063 13.056-39.907Q13.056-39.751 12.888-39.723",[1475],[1459,1610,1611],{"transform":1555},[1464,1612],{"d":1613,"fill":1489,"stroke":1489,"className":1614,"style":1560},"M19.263-37.907L16.470-37.907L16.470-38.204Q17.532-38.204 17.532-38.466L17.532-42.634Q17.103-42.419 16.423-42.419L16.423-42.716Q17.442-42.716 17.958-43.227L18.103-43.227Q18.177-43.208 18.196-43.130L18.196-38.466Q18.196-38.204 19.263-38.204L19.263-37.907M21.274-35.907L20.099-35.907L20.099-36.274L20.907-36.274L20.907-43.540L20.099-43.540L20.099-43.907L21.274-43.907",[1475],[1459,1616,1617,1624,1630,1636],{"stroke":1466,"fontSize":1552},[1459,1618,1620],{"transform":1619},"translate(128.439 23.34)",[1464,1621],{"d":1622,"fill":1461,"stroke":1461,"className":1623,"style":1560},"M-52.518-37.829Q-52.874-37.829-53.143-38.009Q-53.413-38.188-53.553-38.483Q-53.694-38.778-53.694-39.137Q-53.694-39.524-53.532-39.938Q-53.370-40.352-53.086-40.690Q-52.803-41.028-52.434-41.231Q-52.065-41.434-51.663-41.434Q-51.170-41.434-50.893-40.985L-50.456-42.755Q-50.413-42.919-50.413-42.969Q-50.413-43.075-50.909-43.075Q-51.006-43.106-51.006-43.204L-50.983-43.305Q-50.952-43.360-50.893-43.372L-49.792-43.458Q-49.749-43.458-49.709-43.427Q-49.670-43.395-49.670-43.341L-50.823-38.739Q-50.862-38.493-50.862-38.442Q-50.862-38.083-50.616-38.083Q-50.471-38.083-50.370-38.190Q-50.268-38.298-50.204-38.452Q-50.139-38.606-50.090-38.796Q-50.042-38.985-50.022-39.083Q-49.995-39.153-49.932-39.153L-49.831-39.153Q-49.792-39.153-49.766-39.120Q-49.741-39.087-49.741-39.059Q-49.741-39.044-49.749-39.028Q-49.862-38.536-50.061-38.182Q-50.260-37.829-50.631-37.829Q-50.913-37.829-51.139-37.971Q-51.366-38.114-51.448-38.372Q-51.670-38.130-51.944-37.979Q-52.217-37.829-52.518-37.829M-52.502-38.083Q-52.292-38.083-52.083-38.196Q-51.874-38.309-51.704-38.483Q-51.534-38.657-51.405-38.852Q-51.417-38.837-51.426-38.823Q-51.436-38.809-51.448-38.794L-51.014-40.516Q-51.053-40.696-51.139-40.846Q-51.225-40.997-51.362-41.089Q-51.499-41.180-51.678-41.180Q-52.014-41.180-52.286-40.899Q-52.557-40.618-52.717-40.243Q-52.842-39.923-52.940-39.503Q-53.038-39.083-53.038-38.802Q-53.038-38.512-52.905-38.298Q-52.772-38.083-52.502-38.083M-48.167-36.356L-49.768-36.356Q-49.803-36.356-49.836-36.397Q-49.870-36.438-49.870-36.473L-49.838-36.579Q-49.807-36.641-49.752-36.649Q-49.561-36.649-49.477-36.665Q-49.393-36.680-49.340-36.747Q-49.288-36.813-49.249-36.954L-48.358-40.524Q-48.319-40.680-48.319-40.817Q-48.319-40.966-48.372-41.073Q-48.424-41.180-48.557-41.180Q-48.737-41.180-48.856-41.011Q-48.975-40.841-49.032-40.655Q-49.088-40.469-49.159-40.180Q-49.170-40.106-49.241-40.106L-49.342-40.106Q-49.377-40.106-49.405-40.141Q-49.432-40.177-49.432-40.204L-49.432-40.235Q-49.346-40.567-49.252-40.809Q-49.159-41.052-48.983-41.243Q-48.807-41.434-48.542-41.434Q-48.260-41.434-48.030-41.290Q-47.799-41.145-47.733-40.891Q-47.213-41.434-46.655-41.434Q-46.120-41.434-45.799-41.050Q-45.479-40.665-45.479-40.122Q-45.479-39.598-45.760-39.059Q-46.042-38.520-46.508-38.175Q-46.975-37.829-47.510-37.829Q-47.749-37.829-47.950-37.946Q-48.151-38.063-48.280-38.274L-48.624-36.899Q-48.635-36.860-48.655-36.739Q-48.655-36.649-48.151-36.649Q-48.045-36.618-48.045-36.524L-48.081-36.419Q-48.112-36.364-48.167-36.356M-47.725-40.473L-48.159-38.747Q-48.100-38.473-47.930-38.278Q-47.760-38.083-47.495-38.083Q-47.159-38.083-46.879-38.374Q-46.600-38.665-46.463-39.020Q-46.338-39.313-46.237-39.747Q-46.135-40.180-46.135-40.458Q-46.135-40.743-46.268-40.962Q-46.401-41.180-46.670-41.180Q-46.881-41.180-47.077-41.079Q-47.272-40.977-47.432-40.821Q-47.592-40.665-47.725-40.473",[1475],[1459,1625,1626],{"transform":1619},[1464,1627],{"d":1628,"fill":1461,"stroke":1461,"className":1629,"style":1560},"M-43.202-35.907L-44.378-35.907L-44.378-43.907L-43.202-43.907L-43.202-43.540L-44.011-43.540L-44.011-36.274L-43.202-36.274",[1475],[1459,1631,1632],{"transform":1619},[1464,1633],{"d":1634,"fill":1461,"stroke":1461,"className":1635,"style":1560},"M-42.322-38.509Q-42.322-38.641-42.267-38.794L-41.595-40.524Q-41.505-40.747-41.505-40.930Q-41.505-41.180-41.681-41.180Q-41.986-41.180-42.197-40.872Q-42.407-40.563-42.513-40.180Q-42.525-40.106-42.595-40.106L-42.697-40.106Q-42.732-40.106-42.759-40.141Q-42.786-40.177-42.786-40.204L-42.786-40.235Q-42.665-40.700-42.370-41.067Q-42.075-41.434-41.665-41.434Q-41.458-41.434-41.288-41.352Q-41.118-41.270-41.015-41.116Q-40.911-40.962-40.911-40.755Q-40.911-40.634-40.970-40.466L-41.642-38.739Q-41.728-38.505-41.728-38.333Q-41.728-38.083-41.552-38.083Q-41.239-38.083-41.025-38.401Q-40.810-38.719-40.728-39.083Q-40.700-39.153-40.642-39.153L-40.536-39.153Q-40.497-39.153-40.474-39.124Q-40.450-39.094-40.450-39.059Q-40.450-39.044-40.458-39.028Q-40.536-38.727-40.683-38.460Q-40.829-38.192-41.054-38.011Q-41.279-37.829-41.568-37.829Q-41.884-37.829-42.103-38.016Q-42.322-38.204-42.322-38.509M-41.400-42.747Q-41.400-42.927-41.253-43.065Q-41.107-43.204-40.931-43.204Q-40.794-43.204-40.702-43.116Q-40.611-43.028-40.611-42.891Q-40.611-42.716-40.755-42.575Q-40.900-42.434-41.072-42.434Q-41.204-42.434-41.302-42.526Q-41.400-42.618-41.400-42.747",[1475],[1459,1637,1638],{"transform":1619},[1464,1639],{"d":1640,"fill":1461,"stroke":1461,"className":1641,"style":1560},"M-38.756-35.907L-39.931-35.907L-39.931-36.274L-39.123-36.274L-39.123-43.540L-39.931-43.540L-39.931-43.907L-38.756-43.907",[1475],[1459,1643,1644,1647],{"fill":1489,"stroke":1489},[1464,1645],{"fill":1466,"d":1646},"M-8.498-17.99v-5.936",[1464,1648],{"stroke":1466,"d":1649},"m-8.498-25.926-1.6 3.2 1.6-1.2 1.6 1.2",[1459,1651,1652],{"fill":1489,"stroke":1489},[1459,1653,1655,1662,1668,1674,1680],{"fill":1489,"stroke":1466,"fontFamily":1654,"fontSize":1552},"cmr8",[1459,1656,1658],{"transform":1657},"translate(11.403 29.03)",[1464,1659],{"d":1660,"fill":1489,"stroke":1489,"className":1661,"style":1560},"M-51.967-37.829Q-52.448-37.829-52.856-38.073Q-53.264-38.317-53.502-38.731Q-53.741-39.145-53.741-39.634Q-53.741-40.126-53.483-40.542Q-53.225-40.958-52.793-41.196Q-52.362-41.434-51.870-41.434Q-51.249-41.434-50.799-40.997L-50.799-42.626Q-50.799-42.841-50.862-42.936Q-50.924-43.032-51.042-43.053Q-51.159-43.075-51.405-43.075L-51.405-43.372L-50.182-43.458L-50.182-38.649Q-50.182-38.438-50.120-38.343Q-50.057-38.247-49.940-38.225Q-49.823-38.204-49.573-38.204L-49.573-37.907L-50.823-37.829L-50.823-38.313Q-51.288-37.829-51.967-37.829M-51.901-38.083Q-51.561-38.083-51.268-38.274Q-50.975-38.466-50.823-38.762L-50.823-40.594Q-50.971-40.868-51.233-41.024Q-51.495-41.180-51.807-41.180Q-52.432-41.180-52.715-40.733Q-52.999-40.286-52.999-39.626Q-52.999-38.981-52.747-38.532Q-52.495-38.083-51.901-38.083M-49.065-39.661Q-49.065-40.141-48.833-40.557Q-48.600-40.973-48.190-41.223Q-47.780-41.473-47.303-41.473Q-46.573-41.473-46.174-41.032Q-45.776-40.591-45.776-39.860Q-45.776-39.755-45.870-39.731L-48.319-39.731L-48.319-39.661Q-48.319-39.251-48.198-38.895Q-48.077-38.540-47.805-38.323Q-47.534-38.106-47.104-38.106Q-46.741-38.106-46.444-38.335Q-46.147-38.563-46.045-38.915Q-46.038-38.962-45.952-38.977L-45.870-38.977Q-45.776-38.950-45.776-38.868Q-45.776-38.860-45.784-38.829Q-45.846-38.602-45.985-38.419Q-46.124-38.235-46.315-38.102Q-46.506-37.969-46.725-37.899Q-46.944-37.829-47.182-37.829Q-47.553-37.829-47.891-37.966Q-48.229-38.102-48.497-38.354Q-48.764-38.606-48.915-38.946Q-49.065-39.286-49.065-39.661M-48.311-39.969L-46.350-39.969Q-46.350-40.274-46.452-40.565Q-46.553-40.856-46.770-41.038Q-46.987-41.219-47.303-41.219Q-47.604-41.219-47.834-41.032Q-48.065-40.844-48.188-40.553Q-48.311-40.262-48.311-39.969M-41.069-36.356L-42.924-36.356L-42.924-36.649Q-42.655-36.649-42.487-36.694Q-42.319-36.739-42.319-36.915L-42.319-38.364Q-42.522-38.118-42.823-37.973Q-43.124-37.829-43.456-37.829Q-43.940-37.829-44.352-38.071Q-44.764-38.313-45.004-38.725Q-45.245-39.137-45.245-39.634Q-45.245-40.130-44.989-40.544Q-44.733-40.958-44.303-41.196Q-43.874-41.434-43.381-41.434Q-43.026-41.434-42.719-41.255Q-42.413-41.075-42.221-40.762L-41.932-41.434L-41.678-41.434L-41.678-36.915Q-41.678-36.739-41.510-36.694Q-41.342-36.649-41.069-36.649L-41.069-36.356M-43.397-38.083Q-43.030-38.083-42.737-38.315Q-42.444-38.548-42.295-38.907L-42.295-40.243Q-42.389-40.626-42.663-40.889Q-42.936-41.153-43.311-41.153Q-43.670-41.153-43.944-40.923Q-44.217-40.692-44.360-40.335Q-44.502-39.977-44.502-39.626Q-44.502-39.290-44.377-38.928Q-44.252-38.567-44.001-38.325Q-43.749-38.083-43.397-38.083M-40.124-38.860L-40.124-40.602Q-40.124-40.817-40.186-40.913Q-40.249-41.009-40.368-41.030Q-40.487-41.052-40.733-41.052L-40.733-41.348L-39.487-41.434L-39.487-38.884L-39.487-38.860Q-39.487-38.548-39.432-38.386Q-39.377-38.223-39.227-38.153Q-39.077-38.083-38.756-38.083Q-38.327-38.083-38.053-38.421Q-37.780-38.759-37.780-39.204L-37.780-40.602Q-37.780-40.817-37.842-40.913Q-37.905-41.009-38.024-41.030Q-38.143-41.052-38.389-41.052L-38.389-41.348L-37.143-41.434L-37.143-38.649Q-37.143-38.438-37.081-38.343Q-37.018-38.247-36.899-38.225Q-36.780-38.204-36.534-38.204L-36.534-37.907L-37.756-37.829L-37.756-38.450Q-37.924-38.161-38.206-37.995Q-38.487-37.829-38.807-37.829Q-40.124-37.829-40.124-38.860M-36.088-39.661Q-36.088-40.141-35.856-40.557Q-35.624-40.973-35.213-41.223Q-34.803-41.473-34.327-41.473Q-33.596-41.473-33.198-41.032Q-32.799-40.591-32.799-39.860Q-32.799-39.755-32.893-39.731L-35.342-39.731L-35.342-39.661Q-35.342-39.251-35.221-38.895Q-35.100-38.540-34.829-38.323Q-34.557-38.106-34.127-38.106Q-33.764-38.106-33.467-38.335Q-33.170-38.563-33.069-38.915Q-33.061-38.962-32.975-38.977L-32.893-38.977Q-32.799-38.950-32.799-38.868Q-32.799-38.860-32.807-38.829Q-32.870-38.602-33.008-38.419Q-33.147-38.235-33.338-38.102Q-33.530-37.969-33.749-37.899Q-33.967-37.829-34.206-37.829Q-34.577-37.829-34.915-37.966Q-35.252-38.102-35.520-38.354Q-35.788-38.606-35.938-38.946Q-36.088-39.286-36.088-39.661M-35.334-39.969L-33.374-39.969Q-33.374-40.274-33.475-40.565Q-33.577-40.856-33.793-41.038Q-34.010-41.219-34.327-41.219Q-34.627-41.219-34.858-41.032Q-35.088-40.844-35.211-40.553Q-35.334-40.262-35.334-39.969",[1475],[1459,1663,1664],{"transform":1657},[1464,1665],{"d":1666,"fill":1489,"stroke":1489,"className":1667,"style":1560},"M-27.397-37.907L-29.382-37.907L-29.382-38.204Q-29.108-38.204-28.940-38.251Q-28.772-38.298-28.772-38.466L-28.772-41.059L-29.413-41.059L-29.413-41.356L-28.772-41.356L-28.772-42.290Q-28.772-42.555-28.655-42.792Q-28.538-43.028-28.345-43.192Q-28.151-43.356-27.903-43.448Q-27.655-43.540-27.390-43.540Q-27.104-43.540-26.880-43.382Q-26.655-43.223-26.655-42.946Q-26.655-42.790-26.761-42.680Q-26.866-42.571-27.030-42.571Q-27.186-42.571-27.296-42.680Q-27.405-42.790-27.405-42.946Q-27.405-43.153-27.245-43.259Q-27.343-43.282-27.436-43.282Q-27.667-43.282-27.839-43.126Q-28.011-42.969-28.097-42.733Q-28.182-42.497-28.182-42.274L-28.182-41.356L-27.214-41.356L-27.214-41.059L-28.159-41.059L-28.159-38.466Q-28.159-38.298-27.932-38.251Q-27.706-38.204-27.397-38.204L-27.397-37.907M-24.862-37.907L-26.843-37.907L-26.843-38.204Q-26.573-38.204-26.405-38.249Q-26.237-38.294-26.237-38.466L-26.237-40.602Q-26.237-40.817-26.300-40.913Q-26.362-41.009-26.479-41.030Q-26.597-41.052-26.843-41.052L-26.843-41.348L-25.675-41.434L-25.675-40.649Q-25.597-40.860-25.444-41.046Q-25.292-41.231-25.093-41.333Q-24.893-41.434-24.667-41.434Q-24.421-41.434-24.229-41.290Q-24.038-41.145-24.038-40.915Q-24.038-40.759-24.143-40.649Q-24.249-40.540-24.405-40.540Q-24.561-40.540-24.671-40.649Q-24.780-40.759-24.780-40.915Q-24.780-41.075-24.675-41.180Q-24.999-41.180-25.214-40.952Q-25.429-40.723-25.524-40.384Q-25.620-40.044-25.620-39.739L-25.620-38.466Q-25.620-38.298-25.393-38.251Q-25.167-38.204-24.862-38.204L-24.862-37.907M-23.557-39.602Q-23.557-40.106-23.302-40.538Q-23.046-40.969-22.610-41.221Q-22.175-41.473-21.675-41.473Q-21.288-41.473-20.946-41.329Q-20.604-41.184-20.343-40.923Q-20.081-40.661-19.938-40.325Q-19.796-39.989-19.796-39.602Q-19.796-39.110-20.059-38.700Q-20.323-38.290-20.753-38.059Q-21.182-37.829-21.675-37.829Q-22.167-37.829-22.600-38.061Q-23.034-38.294-23.296-38.702Q-23.557-39.110-23.557-39.602M-21.675-38.106Q-21.218-38.106-20.966-38.329Q-20.714-38.552-20.626-38.903Q-20.538-39.255-20.538-39.700Q-20.538-40.130-20.632-40.468Q-20.725-40.805-20.979-41.012Q-21.233-41.219-21.675-41.219Q-22.323-41.219-22.567-40.803Q-22.811-40.387-22.811-39.700Q-22.811-39.255-22.723-38.903Q-22.636-38.552-22.384-38.329Q-22.132-38.106-21.675-38.106M-17.382-37.907L-19.237-37.907L-19.237-38.204Q-18.964-38.204-18.796-38.251Q-18.628-38.298-18.628-38.466L-18.628-40.602Q-18.628-40.817-18.690-40.913Q-18.753-41.009-18.872-41.030Q-18.991-41.052-19.237-41.052L-19.237-41.348L-18.046-41.434L-18.046-40.700Q-17.932-40.915-17.739-41.083Q-17.546-41.251-17.307-41.343Q-17.069-41.434-16.815-41.434Q-15.647-41.434-15.647-40.356L-15.647-38.466Q-15.647-38.298-15.477-38.251Q-15.307-38.204-15.038-38.204L-15.038-37.907L-16.893-37.907L-16.893-38.204Q-16.620-38.204-16.452-38.251Q-16.284-38.298-16.284-38.466L-16.284-40.341Q-16.284-40.723-16.405-40.952Q-16.526-41.180-16.878-41.180Q-17.190-41.180-17.444-41.018Q-17.698-40.856-17.845-40.587Q-17.991-40.317-17.991-40.020L-17.991-38.466Q-17.991-38.298-17.821-38.251Q-17.651-38.204-17.382-38.204",[1475],[1459,1669,1670],{"transform":1657},[1464,1671],{"d":1672,"fill":1489,"stroke":1489,"className":1673,"style":1560},"M-14.193-38.868L-14.193-41.059L-14.896-41.059L-14.896-41.313Q-14.540-41.313-14.298-41.546Q-14.056-41.778-13.945-42.126Q-13.833-42.473-13.833-42.829L-13.552-42.829L-13.552-41.356L-12.376-41.356L-12.376-41.059L-13.552-41.059L-13.552-38.884Q-13.552-38.563-13.433-38.335Q-13.314-38.106-13.033-38.106Q-12.853-38.106-12.736-38.229Q-12.618-38.352-12.566-38.532Q-12.513-38.712-12.513-38.884L-12.513-39.356L-12.232-39.356L-12.232-38.868Q-12.232-38.614-12.337-38.374Q-12.443-38.134-12.640-37.981Q-12.837-37.829-13.095-37.829Q-13.411-37.829-13.663-37.952Q-13.915-38.075-14.054-38.309Q-14.193-38.544-14.193-38.868",[1475],[1459,1675,1676],{"transform":1657},[1464,1677],{"d":1678,"fill":1489,"stroke":1489,"className":1679,"style":1560},"M-2.956-38.884L-8.269-38.884Q-8.347-38.891-8.396-38.940Q-8.444-38.989-8.444-39.067Q-8.444-39.137-8.397-39.188Q-8.351-39.239-8.269-39.251L-2.956-39.251Q-2.882-39.239-2.835-39.188Q-2.788-39.137-2.788-39.067Q-2.788-38.989-2.837-38.940Q-2.886-38.891-2.956-38.884M-2.956-40.571L-8.269-40.571Q-8.347-40.579-8.396-40.628Q-8.444-40.677-8.444-40.755Q-8.444-40.825-8.397-40.876Q-8.351-40.927-8.269-40.938L-2.956-40.938Q-2.882-40.927-2.835-40.876Q-2.788-40.825-2.788-40.755Q-2.788-40.677-2.837-40.628Q-2.886-40.579-2.956-40.571",[1475],[1459,1681,1682],{"transform":1657},[1464,1683],{"d":1684,"fill":1489,"stroke":1489,"className":1685,"style":1560},"M2.223-37.907L0.368-37.907L0.368-38.204Q0.641-38.204 0.809-38.251Q0.977-38.298 0.977-38.466L0.977-40.602Q0.977-40.817 0.914-40.913Q0.852-41.009 0.733-41.030Q0.614-41.052 0.368-41.052L0.368-41.348L1.559-41.434L1.559-40.700Q1.672-40.915 1.866-41.083Q2.059-41.251 2.297-41.343Q2.535-41.434 2.789-41.434Q3.750-41.434 3.926-40.723Q4.110-41.052 4.438-41.243Q4.766-41.434 5.145-41.434Q6.321-41.434 6.321-40.356L6.321-38.466Q6.321-38.298 6.489-38.251Q6.657-38.204 6.926-38.204L6.926-37.907L5.071-37.907L5.071-38.204Q5.344-38.204 5.512-38.249Q5.680-38.294 5.680-38.466L5.680-40.341Q5.680-40.727 5.555-40.954Q5.430-41.180 5.078-41.180Q4.774-41.180 4.518-41.018Q4.262-40.856 4.114-40.587Q3.965-40.317 3.965-40.020L3.965-38.466Q3.965-38.298 4.135-38.251Q4.305-38.204 4.575-38.204L4.575-37.907L2.719-37.907L2.719-38.204Q2.993-38.204 3.160-38.251Q3.328-38.298 3.328-38.466L3.328-40.341Q3.328-40.727 3.203-40.954Q3.078-41.180 2.727-41.180Q2.422-41.180 2.166-41.018Q1.910-40.856 1.762-40.587Q1.614-40.317 1.614-40.020L1.614-38.466Q1.614-38.298 1.784-38.251Q1.953-38.204 2.223-38.204L2.223-37.907M9.231-37.907L7.453-37.907L7.453-38.204Q7.727-38.204 7.895-38.251Q8.063-38.298 8.063-38.466L8.063-40.602Q8.063-40.817 8.006-40.913Q7.950-41.009 7.836-41.030Q7.723-41.052 7.477-41.052L7.477-41.348L8.676-41.434L8.676-38.466Q8.676-38.298 8.823-38.251Q8.969-38.204 9.231-38.204L9.231-37.907M7.789-42.829Q7.789-43.020 7.924-43.151Q8.059-43.282 8.254-43.282Q8.375-43.282 8.479-43.219Q8.582-43.157 8.645-43.053Q8.707-42.950 8.707-42.829Q8.707-42.634 8.576-42.499Q8.446-42.364 8.254-42.364Q8.055-42.364 7.922-42.497Q7.789-42.630 7.789-42.829M11.660-37.907L9.805-37.907L9.805-38.204Q10.078-38.204 10.246-38.251Q10.414-38.298 10.414-38.466L10.414-40.602Q10.414-40.817 10.352-40.913Q10.289-41.009 10.170-41.030Q10.051-41.052 9.805-41.052L9.805-41.348L10.996-41.434L10.996-40.700Q11.110-40.915 11.303-41.083Q11.496-41.251 11.735-41.343Q11.973-41.434 12.227-41.434Q13.395-41.434 13.395-40.356L13.395-38.466Q13.395-38.298 13.565-38.251Q13.735-38.204 14.004-38.204L14.004-37.907L12.149-37.907L12.149-38.204Q12.422-38.204 12.590-38.251Q12.758-38.298 12.758-38.466L12.758-40.341Q12.758-40.723 12.637-40.952Q12.516-41.180 12.164-41.180Q11.852-41.180 11.598-41.018Q11.344-40.856 11.198-40.587Q11.051-40.317 11.051-40.020L11.051-38.466Q11.051-38.298 11.221-38.251Q11.391-38.204 11.660-38.204",[1475],[1687,1688,1691,1692,1759,1760,1778],"figcaption",{"className":1689},[1690],"tikz-cap","a sliding window ",[390,1693,1695],{"className":1694},[393],[390,1696,1698,1719,1747],{"className":1697,"ariaHidden":398},[397],[390,1699,1701,1704,1707,1710,1713,1716],{"className":1700},[402],[390,1702],{"className":1703,"style":446},[406],[390,1705,721],{"className":1706},[455],[390,1708,725],{"className":1709},[411,412],[390,1711],{"className":1712,"style":464},[463],[390,1714,801],{"className":1715},[468],[390,1717],{"className":1718,"style":464},[463],[390,1720,1722,1726,1729,1732,1735,1738,1741,1744],{"className":1721},[402],[390,1723],{"className":1724,"style":1725},[406],"height:0.8889em;vertical-align:-0.1944em;",[390,1727,806],{"className":1728,"style":805},[411,412],[390,1730,912],{"className":1731},[911],[390,1733],{"className":1734,"style":853},[463],[390,1736,725],{"className":1737},[411,412],[390,1739],{"className":1740,"style":464},[463],[390,1742,801],{"className":1743},[468],[390,1745],{"className":1746,"style":464},[463],[390,1748,1750,1753,1756],{"className":1749},[402],[390,1751],{"className":1752,"style":446},[406],[390,1754,667],{"className":1755},[411],[390,1757,729],{"className":1758},[485]," over the ",[390,1761,1763],{"className":1762},[393],[390,1764,1766],{"className":1765,"ariaHidden":398},[397],[390,1767,1769,1772,1775],{"className":1768},[402],[390,1770],{"className":1771,"style":1725},[406],[390,1773,714],{"className":1774},[411,412],[390,1776,381],{"className":1777},[411,412]," row; the deque front holds the window optimum",[688,1780,1782],{"id":1781},"convex-hull-trick","Convex hull trick",[381,1784,1785,1786,1788],{},"Now suppose each previous state contributes a ",[654,1787,1073],{}," and the transition queries\nthe best line at a point:",[390,1790,1792],{"className":1791},[698],[390,1793,1795],{"className":1794},[393],[390,1796,1798,1828,1946,2004],{"className":1797,"ariaHidden":398},[397],[390,1799,1801,1804,1807,1810,1813,1816,1819,1822,1825],{"className":1800},[402],[390,1802],{"className":1803,"style":446},[406],[390,1805,714],{"className":1806},[411,412],[390,1808,381],{"className":1809},[411,412],[390,1811,721],{"className":1812},[455],[390,1814,725],{"className":1815},[411,412],[390,1817,729],{"className":1818},[485],[390,1820],{"className":1821,"style":733},[463],[390,1823,738],{"className":1824},[737],[390,1826],{"className":1827,"style":733},[463],[390,1829,1831,1835,1888,1895,1937,1940,1943],{"className":1830},[402],[390,1832],{"className":1833,"style":1834},[406],"height:1.2em;vertical-align:-0.35em;",[390,1836,1838,1844],{"className":1837},[760],[390,1839,1841],{"className":1840},[760],[390,1842,768],{"className":1843},[411,767],[390,1845,1847],{"className":1846},[559],[390,1848,1850,1880],{"className":1849},[563,775],[390,1851,1853,1877],{"className":1852},[567],[390,1854,1857],{"className":1855,"style":1856},[571],"height:0.3117em;",[390,1858,1859,1862],{"style":785},[390,1860],{"className":1861,"style":580},[579],[390,1863,1865],{"className":1864},[584,585,586,587],[390,1866,1868,1871,1874],{"className":1867},[411,587],[390,1869,822],{"className":1870,"style":821},[411,412,587],[390,1872,829],{"className":1873},[737,587],[390,1875,725],{"className":1876},[411,412,587],[390,1878,840],{"className":1879},[839],[390,1881,1883],{"className":1882},[567],[390,1884,1886],{"className":1885,"style":847},[571],[390,1887],{},[390,1889,1891],{"className":1890},[455],[390,1892,456],{"className":1893},[755,1894],"size1",[390,1896,1898,1902],{"className":1897},[411],[390,1899,1901],{"className":1900},[411,412],"m",[390,1903,1905],{"className":1904},[559],[390,1906,1908,1929],{"className":1907},[563,775],[390,1909,1911,1926],{"className":1910},[567],[390,1912,1914],{"className":1913,"style":1856},[571],[390,1915,1917,1920],{"style":1916},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[390,1918],{"className":1919,"style":580},[579],[390,1921,1923],{"className":1922},[584,585,586,587],[390,1924,822],{"className":1925,"style":821},[411,412,587],[390,1927,840],{"className":1928},[839],[390,1930,1932],{"className":1931},[567],[390,1933,1935],{"className":1934,"style":847},[571],[390,1936],{},[390,1938],{"className":1939,"style":464},[463],[390,1941,469],{"className":1942},[468],[390,1944],{"className":1945,"style":464},[463],[390,1947,1949,1953,1995,1998,2001],{"className":1948},[402],[390,1950],{"className":1951,"style":1952},[406],"height:0.7333em;vertical-align:-0.15em;",[390,1954,1956,1960],{"className":1955},[411],[390,1957,1959],{"className":1958},[411,412],"x",[390,1961,1963],{"className":1962},[559],[390,1964,1966,1986],{"className":1965},[563,775],[390,1967,1969,1983],{"className":1968},[567],[390,1970,1972],{"className":1971,"style":1856},[571],[390,1973,1974,1977],{"style":1916},[390,1975],{"className":1976,"style":580},[579],[390,1978,1980],{"className":1979},[584,585,586,587],[390,1981,725],{"className":1982},[411,412,587],[390,1984,840],{"className":1985},[839],[390,1987,1989],{"className":1988},[567],[390,1990,1993],{"className":1991,"style":1992},[571],"height:0.15em;",[390,1994],{},[390,1996],{"className":1997,"style":464},[463],[390,1999,881],{"className":2000},[468],[390,2002],{"className":2003,"style":464},[463],[390,2005,2007,2010,2051,2057],{"className":2006},[402],[390,2008],{"className":2009,"style":1834},[406],[390,2011,2013,2017],{"className":2012},[411],[390,2014,2016],{"className":2015},[411,412],"b",[390,2018,2020],{"className":2019},[559],[390,2021,2023,2043],{"className":2022},[563,775],[390,2024,2026,2040],{"className":2025},[567],[390,2027,2029],{"className":2028,"style":1856},[571],[390,2030,2031,2034],{"style":1916},[390,2032],{"className":2033,"style":580},[579],[390,2035,2037],{"className":2036},[584,585,586,587],[390,2038,822],{"className":2039,"style":821},[411,412,587],[390,2041,840],{"className":2042},[839],[390,2044,2046],{"className":2045},[567],[390,2047,2049],{"className":2048,"style":847},[571],[390,2050],{},[390,2052,2054],{"className":2053},[485],[390,2055,486],{"className":2056},[755,1894],[390,2058,912],{"className":2059},[911],[381,2061,2062,2063,2116,2117,2170,2171,2186,2187,2239,2240,2267,2268,2321,2322,2337,2338,2388,2389,2549,2550,2565,2566,2569,2570,2573,2574,2577,2578],{},"where the slope ",[390,2064,2066],{"className":2065},[393],[390,2067,2069],{"className":2068,"ariaHidden":398},[397],[390,2070,2072,2076],{"className":2071},[402],[390,2073],{"className":2074,"style":2075},[406],"height:0.7167em;vertical-align:-0.2861em;",[390,2077,2079,2082],{"className":2078},[411],[390,2080,1901],{"className":2081},[411,412],[390,2083,2085],{"className":2084},[559],[390,2086,2088,2108],{"className":2087},[563,775],[390,2089,2091,2105],{"className":2090},[567],[390,2092,2094],{"className":2093,"style":1856},[571],[390,2095,2096,2099],{"style":1916},[390,2097],{"className":2098,"style":580},[579],[390,2100,2102],{"className":2101},[584,585,586,587],[390,2103,822],{"className":2104,"style":821},[411,412,587],[390,2106,840],{"className":2107},[839],[390,2109,2111],{"className":2110},[567],[390,2112,2114],{"className":2113,"style":847},[571],[390,2115],{}," and intercept ",[390,2118,2120],{"className":2119},[393],[390,2121,2123],{"className":2122,"ariaHidden":398},[397],[390,2124,2126,2130],{"className":2125},[402],[390,2127],{"className":2128,"style":2129},[406],"height:0.9805em;vertical-align:-0.2861em;",[390,2131,2133,2136],{"className":2132},[411],[390,2134,2016],{"className":2135},[411,412],[390,2137,2139],{"className":2138},[559],[390,2140,2142,2162],{"className":2141},[563,775],[390,2143,2145,2159],{"className":2144},[567],[390,2146,2148],{"className":2147,"style":1856},[571],[390,2149,2150,2153],{"style":1916},[390,2151],{"className":2152,"style":580},[579],[390,2154,2156],{"className":2155},[584,585,586,587],[390,2157,822],{"className":2158,"style":821},[411,412,587],[390,2160,840],{"className":2161},[839],[390,2163,2165],{"className":2164},[567],[390,2166,2168],{"className":2167,"style":847},[571],[390,2169],{}," depend only on ",[390,2172,2174],{"className":2173},[393],[390,2175,2177],{"className":2176,"ariaHidden":398},[397],[390,2178,2180,2183],{"className":2179},[402],[390,2181],{"className":2182,"style":1284},[406],[390,2184,822],{"className":2185,"style":821},[411,412]," (typically ",[390,2188,2190],{"className":2189},[393],[390,2191,2193],{"className":2192,"ariaHidden":398},[397],[390,2194,2196,2199],{"className":2195},[402],[390,2197],{"className":2198,"style":2075},[406],[390,2200,2202,2205],{"className":2201},[411],[390,2203,1901],{"className":2204},[411,412],[390,2206,2208],{"className":2207},[559],[390,2209,2211,2231],{"className":2210},[563,775],[390,2212,2214,2228],{"className":2213},[567],[390,2215,2217],{"className":2216,"style":1856},[571],[390,2218,2219,2222],{"style":1916},[390,2220],{"className":2221,"style":580},[579],[390,2223,2225],{"className":2224},[584,585,586,587],[390,2226,822],{"className":2227,"style":821},[411,412,587],[390,2229,840],{"className":2230},[839],[390,2232,2234],{"className":2233},[567],[390,2235,2237],{"className":2236,"style":847},[571],[390,2238],{}," is\na function of ",[390,2241,2243],{"className":2242},[393],[390,2244,2246],{"className":2245,"ariaHidden":398},[397],[390,2247,2249,2252,2255,2258,2261,2264],{"className":2248},[402],[390,2250],{"className":2251,"style":446},[406],[390,2253,714],{"className":2254},[411,412],[390,2256,381],{"className":2257},[411,412],[390,2259,721],{"className":2260},[455],[390,2262,822],{"className":2263,"style":821},[411,412],[390,2265,729],{"className":2266},[485]," and the problem data), and ",[390,2269,2271],{"className":2270},[393],[390,2272,2274],{"className":2273,"ariaHidden":398},[397],[390,2275,2277,2281],{"className":2276},[402],[390,2278],{"className":2279,"style":2280},[406],"height:0.5806em;vertical-align:-0.15em;",[390,2282,2284,2287],{"className":2283},[411],[390,2285,1959],{"className":2286},[411,412],[390,2288,2290],{"className":2289},[559],[390,2291,2293,2313],{"className":2292},[563,775],[390,2294,2296,2310],{"className":2295},[567],[390,2297,2299],{"className":2298,"style":1856},[571],[390,2300,2301,2304],{"style":1916},[390,2302],{"className":2303,"style":580},[579],[390,2305,2307],{"className":2306},[584,585,586,587],[390,2308,725],{"className":2309},[411,412,587],[390,2311,840],{"className":2312},[839],[390,2314,2316],{"className":2315},[567],[390,2317,2319],{"className":2318,"style":1992},[571],[390,2320],{}," depends only on ",[390,2323,2325],{"className":2324},[393],[390,2326,2328],{"className":2327,"ariaHidden":398},[397],[390,2329,2331,2334],{"className":2330},[402],[390,2332],{"className":2333,"style":949},[406],[390,2335,725],{"className":2336},[411,412],". The\nnaive evaluation is ",[390,2339,2341],{"className":2340},[393],[390,2342,2344],{"className":2343,"ariaHidden":398},[397],[390,2345,2347,2350,2353,2356,2385],{"className":2346},[402],[390,2348],{"className":2349,"style":543},[406],[390,2351,451],{"className":2352,"style":450},[411,412],[390,2354,456],{"className":2355},[455],[390,2357,2359,2362],{"className":2358},[411],[390,2360,526],{"className":2361},[411,412],[390,2363,2365],{"className":2364},[559],[390,2366,2368],{"className":2367},[563],[390,2369,2371],{"className":2370},[567],[390,2372,2374],{"className":2373,"style":572},[571],[390,2375,2376,2379],{"style":575},[390,2377],{"className":2378,"style":580},[579],[390,2380,2382],{"className":2381},[584,585,586,587],[390,2383,591],{"className":2384},[411,587],[390,2386,486],{"className":2387},[485],". But ",[390,2390,2392],{"className":2391},[393],[390,2393,2395,2500],{"className":2394,"ariaHidden":398},[397],[390,2396,2398,2402,2445,2448,2488,2491,2494,2497],{"className":2397},[402],[390,2399],{"className":2400,"style":2401},[406],"height:1.0361em;vertical-align:-0.2861em;",[390,2403,2405,2411],{"className":2404},[760],[390,2406,2408],{"className":2407},[760],[390,2409,768],{"className":2410},[411,767],[390,2412,2414],{"className":2413},[559],[390,2415,2417,2437],{"className":2416},[563,775],[390,2418,2420,2434],{"className":2419},[567],[390,2421,2423],{"className":2422,"style":1856},[571],[390,2424,2425,2428],{"style":785},[390,2426],{"className":2427,"style":580},[579],[390,2429,2431],{"className":2430},[584,585,586,587],[390,2432,822],{"className":2433,"style":821},[411,412,587],[390,2435,840],{"className":2436},[839],[390,2438,2440],{"className":2439},[567],[390,2441,2443],{"className":2442,"style":847},[571],[390,2444],{},[390,2446,456],{"className":2447},[455],[390,2449,2451,2454],{"className":2450},[411],[390,2452,1901],{"className":2453},[411,412],[390,2455,2457],{"className":2456},[559],[390,2458,2460,2480],{"className":2459},[563,775],[390,2461,2463,2477],{"className":2462},[567],[390,2464,2466],{"className":2465,"style":1856},[571],[390,2467,2468,2471],{"style":1916},[390,2469],{"className":2470,"style":580},[579],[390,2472,2474],{"className":2473},[584,585,586,587],[390,2475,822],{"className":2476,"style":821},[411,412,587],[390,2478,840],{"className":2479},[839],[390,2481,2483],{"className":2482},[567],[390,2484,2486],{"className":2485,"style":847},[571],[390,2487],{},[390,2489,1959],{"className":2490},[411,412],[390,2492],{"className":2493,"style":464},[463],[390,2495,881],{"className":2496},[468],[390,2498],{"className":2499,"style":464},[463],[390,2501,2503,2506,2546],{"className":2502},[402],[390,2504],{"className":2505,"style":2401},[406],[390,2507,2509,2512],{"className":2508},[411],[390,2510,2016],{"className":2511},[411,412],[390,2513,2515],{"className":2514},[559],[390,2516,2518,2538],{"className":2517},[563,775],[390,2519,2521,2535],{"className":2520},[567],[390,2522,2524],{"className":2523,"style":1856},[571],[390,2525,2526,2529],{"style":1916},[390,2527],{"className":2528,"style":580},[579],[390,2530,2532],{"className":2531},[584,585,586,587],[390,2533,822],{"className":2534,"style":821},[411,412,587],[390,2536,840],{"className":2537},[839],[390,2539,2541],{"className":2540},[567],[390,2542,2544],{"className":2543,"style":847},[571],[390,2545],{},[390,2547,486],{"className":2548},[485]," over a fixed set of lines,\nas a function of ",[390,2551,2553],{"className":2552},[393],[390,2554,2556],{"className":2555,"ariaHidden":398},[397],[390,2557,2559,2562],{"className":2558},[402],[390,2560],{"className":2561,"style":1235},[406],[390,2563,1959],{"className":2564},[411,412],", is the ",[654,2567,2568],{},"lower envelope"," of those lines, a convex,\npiecewise-linear curve. Only the lines on the ",[654,2571,2572],{},"lower hull"," can ever be optimal;\nthe rest are dominated everywhere. Maintaining that hull and querying it is the\n",[654,2575,2576],{},"Convex Hull Trick",".",[659,2579,2580],{},[385,2581,667],{"href":663,"ariaDescribedBy":2582,"dataFootnoteRef":376,"id":2583},[665],"user-content-fnref-cpalg-2",[1446,2585,2587,2690],{"className":2586},[1449,1450],[1452,2588,2592],{"xmlns":1454,"width":2589,"height":2590,"viewBox":2591},"217.673","141.466","-75 -75 163.255 106.100",[1459,2593,2594,2597,2600,2607,2610,2613,2616,2619,2623,2639,2642,2677],{"stroke":1461,"style":1462},[1464,2595],{"fill":1466,"d":2596},"M-65.403 14.995H70.876",[1464,2598],{"stroke":1466,"d":2599},"m72.876 14.995-3.2-1.6 1.2 1.6-1.2 1.6",[1459,2601,2603],{"transform":2602},"translate(136.69 1.937)",[1464,2604],{"d":2605,"fill":1461,"stroke":1461,"className":2606,"style":1476},"M-59.553 14.705Q-59.377 14.832-59.104 14.832Q-58.814 14.832-58.601 14.578Q-58.388 14.323-58.309 14.006L-57.905 12.393Q-57.817 12.016-57.817 11.827Q-57.817 11.602-57.944 11.440Q-58.072 11.277-58.291 11.277Q-58.709 11.277-59.041 11.627Q-59.372 11.976-59.491 12.429Q-59.509 12.512-59.579 12.512L-59.689 12.512Q-59.777 12.512-59.777 12.393Q-59.645 11.853-59.223 11.435Q-58.801 11.018-58.274 11.018Q-57.940 11.018-57.665 11.189Q-57.390 11.361-57.276 11.655Q-57.118 11.383-56.872 11.200Q-56.626 11.018-56.340 11.018Q-56.002 11.018-55.729 11.185Q-55.457 11.352-55.457 11.673Q-55.457 11.901-55.600 12.070Q-55.742 12.240-55.980 12.240Q-56.120 12.240-56.226 12.147Q-56.331 12.055-56.331 11.910Q-56.331 11.725-56.208 11.583Q-56.085 11.440-55.901 11.405Q-56.081 11.277-56.358 11.277Q-56.648 11.277-56.859 11.534Q-57.070 11.791-57.149 12.108L-57.553 13.716Q-57.645 14.077-57.645 14.274Q-57.645 14.507-57.516 14.670Q-57.386 14.832-57.157 14.832Q-56.872 14.832-56.624 14.663Q-56.375 14.494-56.202 14.222Q-56.028 13.949-55.962 13.681Q-55.953 13.650-55.929 13.626Q-55.905 13.602-55.870 13.602L-55.764 13.602Q-55.725 13.602-55.699 13.639Q-55.672 13.677-55.672 13.716Q-55.760 14.063-55.980 14.382Q-56.199 14.701-56.516 14.898Q-56.832 15.096-57.175 15.096Q-57.513 15.096-57.788 14.927Q-58.063 14.758-58.186 14.454Q-58.335 14.723-58.584 14.909Q-58.832 15.096-59.113 15.096Q-59.456 15.096-59.730 14.929Q-60.005 14.762-60.005 14.437Q-60.005 14.213-59.856 14.041Q-59.706 13.870-59.473 13.870Q-59.328 13.870-59.225 13.962Q-59.122 14.055-59.122 14.204Q-59.122 14.380-59.245 14.527Q-59.368 14.674-59.553 14.705",[1475],[1464,2608],{"fill":1466,"d":2609},"M-60.282 20.116V-70.07",[1464,2611],{"stroke":1466,"d":2612},"m-60.282-72.07-1.6 3.2 1.6-1.2 1.6 1.2",[1464,2614],{"fill":1466,"d":2615},"M-60.282-61.827 67.754 2.19M-60.282-25.977 67.754-13.174M-60.282 4.752 67.754-59.266",[1464,2617],{"fill":1466,"stroke":1489,"d":2618,"style":1490},"m-60.282-25.977 38.41 3.841 48.655-8.45 40.971-28.68",[1464,2620],{"fill":1466,"d":2621,"style":2622},"M1.175 14.995v-42.509","stroke-dasharray:3.0,3.0",[1459,2624,2625,2632],{"stroke":1466},[1459,2626,2628],{"transform":2627},"translate(57.478 8.282)",[1464,2629],{"d":2630,"fill":1461,"stroke":1461,"className":2631,"style":1560},"M-59.594 14.706Q-59.427 14.819-59.184 14.819Q-58.934 14.819-58.737 14.593Q-58.540 14.366-58.481 14.108L-58.122 12.667Q-58.044 12.362-58.044 12.202Q-58.044 11.991-58.161 11.856Q-58.278 11.722-58.489 11.722Q-58.743 11.722-58.971 11.868Q-59.200 12.015-59.356 12.245Q-59.512 12.475-59.571 12.722Q-59.583 12.796-59.649 12.796L-59.755 12.796Q-59.786 12.796-59.813 12.761Q-59.841 12.725-59.841 12.698L-59.841 12.667Q-59.762 12.354-59.563 12.081Q-59.364 11.807-59.075 11.638Q-58.786 11.468-58.473 11.468Q-58.177 11.468-57.917 11.612Q-57.657 11.757-57.548 12.018Q-57.399 11.776-57.180 11.622Q-56.962 11.468-56.708 11.468Q-56.509 11.468-56.321 11.534Q-56.134 11.600-56.012 11.739Q-55.891 11.878-55.891 12.073Q-55.891 12.284-56.022 12.440Q-56.153 12.597-56.360 12.597Q-56.493 12.597-56.587 12.513Q-56.680 12.429-56.680 12.292Q-56.680 12.128-56.573 11.999Q-56.466 11.870-56.305 11.835Q-56.481 11.722-56.723 11.722Q-56.891 11.722-57.038 11.831Q-57.184 11.940-57.284 12.104Q-57.384 12.268-57.427 12.436L-57.786 13.874Q-57.856 14.218-57.856 14.339Q-57.856 14.554-57.739 14.686Q-57.622 14.819-57.411 14.819Q-57.032 14.819-56.731 14.513Q-56.430 14.206-56.337 13.819Q-56.309 13.749-56.251 13.749L-56.145 13.749Q-56.106 13.749-56.083 13.778Q-56.059 13.807-56.059 13.843Q-56.059 13.858-56.067 13.874Q-56.145 14.186-56.344 14.460Q-56.544 14.733-56.829 14.903Q-57.114 15.073-57.427 15.073Q-57.727 15.073-57.987 14.929Q-58.247 14.784-58.360 14.522Q-58.505 14.757-58.721 14.915Q-58.938 15.073-59.192 15.073Q-59.391 15.073-59.579 15.007Q-59.766 14.940-59.887 14.802Q-60.009 14.663-60.009 14.468Q-60.009 14.257-59.876 14.102Q-59.743 13.948-59.540 13.948Q-59.395 13.948-59.307 14.030Q-59.219 14.112-59.219 14.253Q-59.219 14.413-59.325 14.542Q-59.430 14.671-59.594 14.706",[1475],[1459,2633,2634],{"transform":2627},[1464,2635],{"d":2636,"fill":1461,"stroke":1461,"className":2637,"style":2638},"M-54.718 15.751Q-54.718 15.637-54.668 15.537L-54.152 14.239Q-54.100 14.102-54.100 13.987Q-54.100 13.785-54.249 13.785Q-54.413 13.785-54.549 13.901Q-54.685 14.017-54.775 14.188Q-54.864 14.360-54.902 14.521Q-54.923 14.559-54.976 14.576L-55.072 14.576Q-55.143 14.556-55.143 14.491Q-55.143 14.485-55.137 14.456Q-55.049 14.113-54.804 13.841Q-54.559 13.568-54.237 13.568Q-54.079 13.568-53.934 13.629Q-53.789 13.689-53.701 13.807Q-53.613 13.926-53.613 14.090Q-53.613 14.213-53.654 14.307L-54.170 15.602Q-54.226 15.716-54.226 15.854Q-54.226 16.059-54.082 16.059Q-53.915 16.059-53.779 15.943Q-53.643 15.827-53.552 15.657Q-53.461 15.487-53.420 15.320Q-53.399 15.288-53.355 15.265L-53.259 15.265Q-53.180 15.294-53.180 15.350Q-53.180 15.356-53.188 15.385Q-53.238 15.596-53.366 15.802Q-53.493 16.009-53.684 16.141Q-53.874 16.273-54.094 16.273Q-54.340 16.273-54.529 16.133Q-54.718 15.994-54.718 15.751M-54.009 12.578Q-54.009 12.438-53.899 12.334Q-53.789 12.230-53.648 12.230Q-53.546 12.230-53.471 12.301Q-53.396 12.373-53.396 12.476Q-53.396 12.616-53.508 12.720Q-53.619 12.824-53.757 12.824Q-53.859 12.824-53.934 12.750Q-54.009 12.675-54.009 12.578",[1475],"stroke-width:0.180",[1464,2640],{"fill":1489,"stroke":1466,"d":2641},"M2.615-27.514a1.44 1.44 0 1 0-2.88 0 1.44 1.44 0 0 0 2.88 0m-1.44 0",[1459,2643,2644],{"fill":1489,"stroke":1489},[1459,2645,2646,2653,2659,2665,2671],{"fill":1489,"stroke":1466,"fontFamily":1654,"fontSize":1552},[1459,2647,2649],{"transform":2648},"translate(81.802 -11.306)",[1464,2650],{"d":2651,"fill":1489,"stroke":1489,"className":2652,"style":1560},"M-58.130 14.995L-59.962 14.995L-59.962 14.698Q-59.688 14.698-59.520 14.651Q-59.352 14.604-59.352 14.436L-59.352 10.276Q-59.352 10.061-59.415 9.966Q-59.477 9.870-59.596 9.849Q-59.716 9.827-59.962 9.827L-59.962 9.530L-58.739 9.444L-58.739 14.436Q-58.739 14.604-58.571 14.651Q-58.403 14.698-58.130 14.698L-58.130 14.995M-57.684 13.300Q-57.684 12.796-57.428 12.364Q-57.173 11.932-56.737 11.681Q-56.302 11.429-55.802 11.429Q-55.415 11.429-55.073 11.573Q-54.731 11.718-54.469 11.979Q-54.208 12.241-54.065 12.577Q-53.923 12.913-53.923 13.300Q-53.923 13.792-54.186 14.202Q-54.450 14.612-54.880 14.843Q-55.309 15.073-55.802 15.073Q-56.294 15.073-56.727 14.841Q-57.161 14.608-57.423 14.200Q-57.684 13.792-57.684 13.300M-55.802 14.796Q-55.344 14.796-55.093 14.573Q-54.841 14.350-54.753 13.999Q-54.665 13.647-54.665 13.202Q-54.665 12.772-54.759 12.434Q-54.852 12.097-55.106 11.890Q-55.360 11.682-55.802 11.682Q-56.450 11.682-56.694 12.099Q-56.938 12.515-56.938 13.202Q-56.938 13.647-56.850 13.999Q-56.762 14.350-56.511 14.573Q-56.259 14.796-55.802 14.796",[1475],[1459,2654,2655],{"transform":2648},[1464,2656],{"d":2657,"fill":1489,"stroke":1489,"className":2658,"style":1560},"M-52.083 14.964L-53.153 12.108Q-53.219 11.929-53.350 11.886Q-53.481 11.843-53.739 11.843L-53.739 11.546L-52.059 11.546L-52.059 11.843Q-52.509 11.843-52.509 12.042Q-52.505 12.057-52.503 12.075Q-52.501 12.093-52.501 12.108L-51.708 14.202L-50.997 12.292Q-51.032 12.198-51.032 12.153Q-51.032 12.108-51.067 12.108Q-51.134 11.929-51.264 11.886Q-51.395 11.843-51.649 11.843L-51.649 11.546L-50.059 11.546L-50.059 11.843Q-50.509 11.843-50.509 12.042Q-50.505 12.061-50.503 12.079Q-50.501 12.097-50.501 12.108L-49.669 14.323L-48.915 12.323Q-48.891 12.265-48.891 12.194Q-48.891 12.034-49.028 11.938Q-49.165 11.843-49.333 11.843L-49.333 11.546L-47.946 11.546L-47.946 11.843Q-48.180 11.843-48.358 11.970Q-48.536 12.097-48.618 12.323L-49.602 14.964Q-49.657 15.073-49.770 15.073L-49.829 15.073Q-49.942 15.073-49.985 14.964L-50.844 12.690L-51.700 14.964Q-51.739 15.073-51.860 15.073L-51.915 15.073Q-52.028 15.073-52.083 14.964",[1475],[1459,2660,2661],{"transform":2648},[1464,2662],{"d":2663,"fill":1489,"stroke":1489,"className":2664,"style":1560},"M-47.766 13.241Q-47.766 12.761-47.533 12.345Q-47.301 11.929-46.891 11.679Q-46.481 11.429-46.004 11.429Q-45.274 11.429-44.875 11.870Q-44.477 12.311-44.477 13.042Q-44.477 13.147-44.570 13.171L-47.020 13.171L-47.020 13.241Q-47.020 13.651-46.899 14.007Q-46.777 14.362-46.506 14.579Q-46.234 14.796-45.805 14.796Q-45.441 14.796-45.145 14.567Q-44.848 14.339-44.746 13.987Q-44.738 13.940-44.652 13.925L-44.570 13.925Q-44.477 13.952-44.477 14.034Q-44.477 14.042-44.484 14.073Q-44.547 14.300-44.686 14.483Q-44.824 14.667-45.016 14.800Q-45.207 14.932-45.426 15.003Q-45.645 15.073-45.883 15.073Q-46.254 15.073-46.592 14.936Q-46.930 14.800-47.197 14.548Q-47.465 14.296-47.615 13.956Q-47.766 13.616-47.766 13.241M-47.012 12.932L-45.051 12.932Q-45.051 12.628-45.152 12.337Q-45.254 12.046-45.471 11.864Q-45.688 11.682-46.004 11.682Q-46.305 11.682-46.535 11.870Q-46.766 12.057-46.889 12.349Q-47.012 12.640-47.012 12.932M-41.981 14.995L-43.961 14.995L-43.961 14.698Q-43.691 14.698-43.524 14.653Q-43.356 14.608-43.356 14.436L-43.356 12.300Q-43.356 12.085-43.418 11.989Q-43.481 11.893-43.598 11.872Q-43.715 11.850-43.961 11.850L-43.961 11.554L-42.793 11.468L-42.793 12.253Q-42.715 12.042-42.563 11.856Q-42.410 11.671-42.211 11.569Q-42.012 11.468-41.785 11.468Q-41.539 11.468-41.348 11.612Q-41.156 11.757-41.156 11.987Q-41.156 12.143-41.262 12.253Q-41.367 12.362-41.524 12.362Q-41.680 12.362-41.789 12.253Q-41.899 12.143-41.899 11.987Q-41.899 11.827-41.793 11.722Q-42.117 11.722-42.332 11.950Q-42.547 12.179-42.643 12.518Q-42.738 12.858-42.738 13.163L-42.738 14.436Q-42.738 14.604-42.512 14.651Q-42.285 14.698-41.981 14.698",[1475],[1459,2666,2667],{"transform":2648},[1464,2668],{"d":2669,"fill":1489,"stroke":1489,"className":2670,"style":1560},"M-35.912 14.995L-37.767 14.995L-37.767 14.698Q-37.494 14.698-37.326 14.651Q-37.158 14.604-37.158 14.436L-37.158 10.276Q-37.158 10.061-37.221 9.966Q-37.283 9.870-37.402 9.849Q-37.521 9.827-37.767 9.827L-37.767 9.530L-36.545 9.444L-36.545 12.147Q-36.420 11.936-36.232 11.786Q-36.045 11.636-35.818 11.552Q-35.592 11.468-35.346 11.468Q-34.178 11.468-34.178 12.546L-34.178 14.436Q-34.178 14.604-34.008 14.651Q-33.838 14.698-33.568 14.698L-33.568 14.995L-35.424 14.995L-35.424 14.698Q-35.150 14.698-34.982 14.651Q-34.814 14.604-34.814 14.436L-34.814 12.561Q-34.814 12.179-34.935 11.950Q-35.057 11.722-35.408 11.722Q-35.721 11.722-35.975 11.884Q-36.228 12.046-36.375 12.315Q-36.521 12.585-36.521 12.882L-36.521 14.436Q-36.521 14.604-36.351 14.651Q-36.182 14.698-35.912 14.698",[1475],[1459,2672,2673],{"transform":2648},[1464,2674],{"d":2675,"fill":1489,"stroke":1489,"className":2676,"style":1560},"M-32.672 14.042L-32.672 12.300Q-32.672 12.085-32.735 11.989Q-32.797 11.893-32.916 11.872Q-33.035 11.850-33.282 11.850L-33.282 11.554L-32.035 11.468L-32.035 14.018L-32.035 14.042Q-32.035 14.354-31.981 14.516Q-31.926 14.679-31.776 14.749Q-31.625 14.819-31.305 14.819Q-30.875 14.819-30.602 14.481Q-30.328 14.143-30.328 13.698L-30.328 12.300Q-30.328 12.085-30.391 11.989Q-30.453 11.893-30.573 11.872Q-30.692 11.850-30.938 11.850L-30.938 11.554L-29.692 11.468L-29.692 14.253Q-29.692 14.464-29.629 14.559Q-29.567 14.655-29.448 14.677Q-29.328 14.698-29.082 14.698L-29.082 14.995L-30.305 15.073L-30.305 14.452Q-30.473 14.741-30.754 14.907Q-31.035 15.073-31.356 15.073Q-32.672 15.073-32.672 14.042M-26.723 14.995L-28.555 14.995L-28.555 14.698Q-28.282 14.698-28.114 14.651Q-27.946 14.604-27.946 14.436L-27.946 10.276Q-27.946 10.061-28.008 9.966Q-28.071 9.870-28.190 9.849Q-28.309 9.827-28.555 9.827L-28.555 9.530L-27.332 9.444L-27.332 14.436Q-27.332 14.604-27.164 14.651Q-26.996 14.698-26.723 14.698L-26.723 14.995M-24.364 14.995L-26.196 14.995L-26.196 14.698Q-25.922 14.698-25.754 14.651Q-25.586 14.604-25.586 14.436L-25.586 10.276Q-25.586 10.061-25.649 9.966Q-25.711 9.870-25.830 9.849Q-25.949 9.827-26.196 9.827L-26.196 9.530L-24.973 9.444L-24.973 14.436Q-24.973 14.604-24.805 14.651Q-24.637 14.698-24.364 14.698",[1475],[1459,2678,2680,2683],{"fill":2679},"var(--tk-bg)",[1464,2681],{"stroke":1466,"d":2682},"M42.602-60.11h19.576v-8.556H42.602Z",[1459,2684,2686],{"transform":2685},"translate(104.384 -76.605)",[1464,2687],{"d":2688,"fill":1461,"stroke":1461,"className":2689,"style":1560},"M-58.130 14.995L-59.962 14.995L-59.962 14.698Q-59.688 14.698-59.520 14.651Q-59.352 14.604-59.352 14.436L-59.352 10.276Q-59.352 10.061-59.415 9.966Q-59.477 9.870-59.596 9.849Q-59.716 9.827-59.962 9.827L-59.962 9.530L-58.739 9.444L-58.739 14.436Q-58.739 14.604-58.571 14.651Q-58.403 14.698-58.130 14.698L-58.130 14.995M-55.825 14.995L-57.602 14.995L-57.602 14.698Q-57.329 14.698-57.161 14.651Q-56.993 14.604-56.993 14.436L-56.993 12.300Q-56.993 12.085-57.050 11.989Q-57.106 11.893-57.219 11.872Q-57.333 11.850-57.579 11.850L-57.579 11.554L-56.380 11.468L-56.380 14.436Q-56.380 14.604-56.233 14.651Q-56.087 14.698-55.825 14.698L-55.825 14.995M-57.266 10.073Q-57.266 9.882-57.132 9.751Q-56.997 9.620-56.802 9.620Q-56.680 9.620-56.577 9.682Q-56.473 9.745-56.411 9.849Q-56.348 9.952-56.348 10.073Q-56.348 10.268-56.479 10.403Q-56.610 10.538-56.802 10.538Q-57.001 10.538-57.134 10.405Q-57.266 10.272-57.266 10.073M-53.395 14.995L-55.251 14.995L-55.251 14.698Q-54.977 14.698-54.809 14.651Q-54.641 14.604-54.641 14.436L-54.641 12.300Q-54.641 12.085-54.704 11.989Q-54.766 11.893-54.886 11.872Q-55.005 11.850-55.251 11.850L-55.251 11.554L-54.059 11.468L-54.059 12.202Q-53.946 11.987-53.753 11.819Q-53.559 11.651-53.321 11.559Q-53.083 11.468-52.829 11.468Q-51.661 11.468-51.661 12.546L-51.661 14.436Q-51.661 14.604-51.491 14.651Q-51.321 14.698-51.052 14.698L-51.052 14.995L-52.907 14.995L-52.907 14.698Q-52.634 14.698-52.466 14.651Q-52.298 14.604-52.298 14.436L-52.298 12.561Q-52.298 12.179-52.419 11.950Q-52.540 11.722-52.891 11.722Q-53.204 11.722-53.458 11.884Q-53.712 12.046-53.858 12.315Q-54.005 12.585-54.005 12.882L-54.005 14.436Q-54.005 14.604-53.835 14.651Q-53.665 14.698-53.395 14.698L-53.395 14.995M-50.606 13.241Q-50.606 12.761-50.374 12.345Q-50.141 11.929-49.731 11.679Q-49.321 11.429-48.844 11.429Q-48.114 11.429-47.716 11.870Q-47.317 12.311-47.317 13.042Q-47.317 13.147-47.411 13.171L-49.860 13.171L-49.860 13.241Q-49.860 13.651-49.739 14.007Q-49.618 14.362-49.346 14.579Q-49.075 14.796-48.645 14.796Q-48.282 14.796-47.985 14.567Q-47.688 14.339-47.587 13.987Q-47.579 13.940-47.493 13.925L-47.411 13.925Q-47.317 13.952-47.317 14.034Q-47.317 14.042-47.325 14.073Q-47.387 14.300-47.526 14.483Q-47.665 14.667-47.856 14.800Q-48.048 14.932-48.266 15.003Q-48.485 15.073-48.723 15.073Q-49.094 15.073-49.432 14.936Q-49.770 14.800-50.038 14.548Q-50.305 14.296-50.456 13.956Q-50.606 13.616-50.606 13.241M-49.852 12.932L-47.891 12.932Q-47.891 12.628-47.993 12.337Q-48.094 12.046-48.311 11.864Q-48.528 11.682-48.844 11.682Q-49.145 11.682-49.376 11.870Q-49.606 12.057-49.729 12.349Q-49.852 12.640-49.852 12.932M-46.786 14.987L-46.786 13.765Q-46.786 13.737-46.755 13.706Q-46.723 13.675-46.700 13.675L-46.594 13.675Q-46.524 13.675-46.509 13.737Q-46.446 14.057-46.307 14.298Q-46.169 14.538-45.936 14.679Q-45.704 14.819-45.395 14.819Q-45.157 14.819-44.948 14.759Q-44.739 14.698-44.602 14.550Q-44.466 14.401-44.466 14.155Q-44.466 13.901-44.677 13.735Q-44.887 13.569-45.157 13.515L-45.778 13.401Q-46.184 13.323-46.485 13.067Q-46.786 12.811-46.786 12.436Q-46.786 12.069-46.585 11.847Q-46.384 11.624-46.059 11.526Q-45.735 11.429-45.395 11.429Q-44.930 11.429-44.634 11.636L-44.411 11.452Q-44.387 11.429-44.356 11.429L-44.305 11.429Q-44.274 11.429-44.247 11.456Q-44.219 11.483-44.219 11.515L-44.219 12.499Q-44.219 12.530-44.245 12.559Q-44.270 12.589-44.305 12.589L-44.411 12.589Q-44.446 12.589-44.473 12.561Q-44.501 12.534-44.501 12.499Q-44.501 12.100-44.753 11.880Q-45.005 11.659-45.403 11.659Q-45.759 11.659-46.042 11.782Q-46.325 11.905-46.325 12.210Q-46.325 12.429-46.124 12.561Q-45.923 12.694-45.677 12.737L-45.052 12.850Q-44.622 12.940-44.313 13.237Q-44.005 13.534-44.005 13.948Q-44.005 14.518-44.403 14.796Q-44.802 15.073-45.395 15.073Q-45.946 15.073-46.298 14.737L-46.594 15.050Q-46.618 15.073-46.653 15.073L-46.700 15.073Q-46.723 15.073-46.755 15.042Q-46.786 15.011-46.786 14.987",[1475],[1687,2691,2693,2694,2721,2722],{"className":2692},[1690],"each state is a line; the optimal ",[390,2695,2697],{"className":2696},[393],[390,2698,2700],{"className":2699,"ariaHidden":398},[397],[390,2701,2703,2706,2709,2712,2715,2718],{"className":2702},[402],[390,2704],{"className":2705,"style":446},[406],[390,2707,714],{"className":2708},[411,412],[390,2710,381],{"className":2711},[411,412],[390,2713,721],{"className":2714},[455],[390,2716,725],{"className":2717},[411,412],[390,2719,729],{"className":2720},[485]," is the lower hull queried at ",[390,2723,2725],{"className":2724},[393],[390,2726,2728],{"className":2727,"ariaHidden":398},[397],[390,2729,2731,2734],{"className":2730},[402],[390,2732],{"className":2733,"style":2280},[406],[390,2735,2737,2740],{"className":2736},[411],[390,2738,1959],{"className":2739},[411,412],[390,2741,2743],{"className":2742},[559],[390,2744,2746,2766],{"className":2745},[563,775],[390,2747,2749,2763],{"className":2748},[567],[390,2750,2752],{"className":2751,"style":1856},[571],[390,2753,2754,2757],{"style":1916},[390,2755],{"className":2756,"style":580},[579],[390,2758,2760],{"className":2759},[584,585,586,587],[390,2761,725],{"className":2762},[411,412,587],[390,2764,840],{"className":2765},[839],[390,2767,2769],{"className":2768},[567],[390,2770,2772],{"className":2771,"style":1992},[571],[390,2773],{},[381,2775,2776,2777,2829,2830,2854,2855,2907,2908,2943,2944,2994,2995,2577],{},"If lines are inserted in monotone slope order and queries ",[390,2778,2780],{"className":2779},[393],[390,2781,2783],{"className":2782,"ariaHidden":398},[397],[390,2784,2786,2789],{"className":2785},[402],[390,2787],{"className":2788,"style":2280},[406],[390,2790,2792,2795],{"className":2791},[411],[390,2793,1959],{"className":2794},[411,412],[390,2796,2798],{"className":2797},[559],[390,2799,2801,2821],{"className":2800},[563,775],[390,2802,2804,2818],{"className":2803},[567],[390,2805,2807],{"className":2806,"style":1856},[571],[390,2808,2809,2812],{"style":1916},[390,2810],{"className":2811,"style":580},[579],[390,2813,2815],{"className":2814},[584,585,586,587],[390,2816,725],{"className":2817},[411,412,587],[390,2819,840],{"className":2820},[839],[390,2822,2824],{"className":2823},[567],[390,2825,2827],{"className":2826,"style":1992},[571],[390,2828],{}," are also\nmonotone, both operations are ",[390,2831,2833],{"className":2832},[393],[390,2834,2836],{"className":2835,"ariaHidden":398},[397],[390,2837,2839,2842,2845,2848,2851],{"className":2838},[402],[390,2840],{"className":2841,"style":446},[406],[390,2843,451],{"className":2844,"style":450},[411,412],[390,2846,456],{"className":2847},[455],[390,2849,667],{"className":2850},[411],[390,2852,486],{"className":2853},[485]," amortized: push lines onto a stack-like\nhull, popping any that the newcomer makes redundant, and advance a pointer for\nqueries. Without monotonicity, store the hull and binary-search for the optimal\nline at ",[390,2856,2858],{"className":2857},[393],[390,2859,2861],{"className":2860,"ariaHidden":398},[397],[390,2862,2864,2867],{"className":2863},[402],[390,2865],{"className":2866,"style":2280},[406],[390,2868,2870,2873],{"className":2869},[411],[390,2871,1959],{"className":2872},[411,412],[390,2874,2876],{"className":2875},[559],[390,2877,2879,2899],{"className":2878},[563,775],[390,2880,2882,2896],{"className":2881},[567],[390,2883,2885],{"className":2884,"style":1856},[571],[390,2886,2887,2890],{"style":1916},[390,2888],{"className":2889,"style":580},[579],[390,2891,2893],{"className":2892},[584,585,586,587],[390,2894,725],{"className":2895},[411,412,587],[390,2897,840],{"className":2898},[839],[390,2900,2902],{"className":2901},[567],[390,2903,2905],{"className":2904,"style":1992},[571],[390,2906],{}," in ",[390,2909,2911],{"className":2910},[393],[390,2912,2914],{"className":2913,"ariaHidden":398},[397],[390,2915,2917,2920,2923,2926,2934,2937,2940],{"className":2916},[402],[390,2918],{"className":2919,"style":446},[406],[390,2921,451],{"className":2922,"style":450},[411,412],[390,2924,456],{"className":2925},[455],[390,2927,2929],{"className":2928},[760],[390,2930,2933],{"className":2931,"style":2932},[411,767],"margin-right:0.0139em;","log",[390,2935],{"className":2936,"style":853},[463],[390,2938,526],{"className":2939},[411,412],[390,2941,486],{"className":2942},[485],", or use a Li Chao tree. Either way the DP drops from\n",[390,2945,2947],{"className":2946},[393],[390,2948,2950],{"className":2949,"ariaHidden":398},[397],[390,2951,2953,2956,2959,2962,2991],{"className":2952},[402],[390,2954],{"className":2955,"style":543},[406],[390,2957,451],{"className":2958,"style":450},[411,412],[390,2960,456],{"className":2961},[455],[390,2963,2965,2968],{"className":2964},[411],[390,2966,526],{"className":2967},[411,412],[390,2969,2971],{"className":2970},[559],[390,2972,2974],{"className":2973},[563],[390,2975,2977],{"className":2976},[567],[390,2978,2980],{"className":2979,"style":572},[571],[390,2981,2982,2985],{"style":575},[390,2983],{"className":2984,"style":580},[579],[390,2986,2988],{"className":2987},[584,585,586,587],[390,2989,591],{"className":2990},[411,587],[390,2992,486],{"className":2993},[485]," to ",[390,2996,2998],{"className":2997},[393],[390,2999,3001],{"className":3000,"ariaHidden":398},[397],[390,3002,3004,3007,3010,3013,3016,3019,3025,3028,3031],{"className":3003},[402],[390,3005],{"className":3006,"style":446},[406],[390,3008,451],{"className":3009,"style":450},[411,412],[390,3011,456],{"className":3012},[455],[390,3014,526],{"className":3015},[411,412],[390,3017],{"className":3018,"style":853},[463],[390,3020,3022],{"className":3021},[760],[390,3023,2933],{"className":3024,"style":2932},[411,767],[390,3026],{"className":3027,"style":853},[463],[390,3029,526],{"className":3030},[411,412],[390,3032,486],{"className":3033},[485],[1021,3035,3037],{"type":3036},"remark",[381,3038,3039,3042,3043,3114,3115,3130,3131,3240,3241,3288],{},[654,3040,3041],{},"Remark (When it applies)."," The transition must be ",[649,3044,3045,3046,3098,3099],{},"linear in a value ",[390,3047,3049],{"className":3048},[393],[390,3050,3052],{"className":3051,"ariaHidden":398},[397],[390,3053,3055,3058],{"className":3054},[402],[390,3056],{"className":3057,"style":2280},[406],[390,3059,3061,3064],{"className":3060},[411],[390,3062,1959],{"className":3063},[411,412],[390,3065,3067],{"className":3066},[559],[390,3068,3070,3090],{"className":3069},[563,775],[390,3071,3073,3087],{"className":3072},[567],[390,3074,3076],{"className":3075,"style":1856},[571],[390,3077,3078,3081],{"style":1916},[390,3079],{"className":3080,"style":580},[579],[390,3082,3084],{"className":3083},[584,585,586,587],[390,3085,725],{"className":3086},[411,412,587],[390,3088,840],{"className":3089},[839],[390,3091,3093],{"className":3092},[567],[390,3094,3096],{"className":3095,"style":1992},[571],[390,3097],{}," that\ndepends only on ",[390,3100,3102],{"className":3101},[393],[390,3103,3105],{"className":3104,"ariaHidden":398},[397],[390,3106,3108,3111],{"className":3107},[402],[390,3109],{"className":3110,"style":949},[406],[390,3112,725],{"className":3113},[411,412],", with the slope and intercept depending only on ",[390,3116,3118],{"className":3117},[393],[390,3119,3121],{"className":3120,"ariaHidden":398},[397],[390,3122,3124,3127],{"className":3123},[402],[390,3125],{"className":3126,"style":1284},[406],[390,3128,822],{"className":3129,"style":821},[411,412],". The\nclassic trigger is a cost that factors as a product ",[390,3132,3134],{"className":3133},[393],[390,3135,3137,3193],{"className":3136,"ariaHidden":398},[397],[390,3138,3140,3144,3184,3187,3190],{"className":3139},[402],[390,3141],{"className":3142,"style":3143},[406],"height:0.7306em;vertical-align:-0.2861em;",[390,3145,3147,3150],{"className":3146},[411],[390,3148,385],{"className":3149},[411,412],[390,3151,3153],{"className":3152},[559],[390,3154,3156,3176],{"className":3155},[563,775],[390,3157,3159,3173],{"className":3158},[567],[390,3160,3162],{"className":3161,"style":1856},[571],[390,3163,3164,3167],{"style":1916},[390,3165],{"className":3166,"style":580},[579],[390,3168,3170],{"className":3169},[584,585,586,587],[390,3171,822],{"className":3172,"style":821},[411,412,587],[390,3174,840],{"className":3175},[839],[390,3177,3179],{"className":3178},[567],[390,3180,3182],{"className":3181,"style":847},[571],[390,3183],{},[390,3185],{"className":3186,"style":464},[463],[390,3188,469],{"className":3189},[468],[390,3191],{"className":3192,"style":464},[463],[390,3194,3196,3200],{"className":3195},[402],[390,3197],{"className":3198,"style":3199},[406],"height:0.8444em;vertical-align:-0.15em;",[390,3201,3203,3206],{"className":3202},[411],[390,3204,2016],{"className":3205},[411,412],[390,3207,3209],{"className":3208},[559],[390,3210,3212,3232],{"className":3211},[563,775],[390,3213,3215,3229],{"className":3214},[567],[390,3216,3218],{"className":3217,"style":1856},[571],[390,3219,3220,3223],{"style":1916},[390,3221],{"className":3222,"style":580},[579],[390,3224,3226],{"className":3225},[584,585,586,587],[390,3227,725],{"className":3228},[411,412,587],[390,3230,840],{"className":3231},[839],[390,3233,3235],{"className":3234},[567],[390,3236,3238],{"className":3237,"style":1992},[571],[390,3239],{}," after\nexpanding a square, e.g. partitioning costs of the form ",[390,3242,3244],{"className":3243},[393],[390,3245,3247,3272],{"className":3246,"ariaHidden":398},[397],[390,3248,3250,3253,3256,3263,3266,3269],{"className":3249},[402],[390,3251],{"className":3252,"style":446},[406],[390,3254,456],{"className":3255},[455],[390,3257,3259],{"className":3258},[411,894],[390,3260,3262],{"className":3261},[411],"prefix",[390,3264],{"className":3265,"style":464},[463],[390,3267,469],{"className":3268},[468],[390,3270],{"className":3271,"style":464},[463],[390,3273,3275,3278,3285],{"className":3274},[402],[390,3276],{"className":3277,"style":446},[406],[390,3279,3281],{"className":3280},[411,894],[390,3282,3284],{"className":3283},[411],"value",[390,3286,486],{"className":3287},[485],", which appear in build\u002Fprint problems and 1-D clustering.",[688,3290,3292],{"id":3291},"divide-and-conquer-optimization","Divide-and-conquer optimization",[381,3294,3295],{},"For a layered transition",[390,3297,3299],{"className":3298},[698],[390,3300,3302],{"className":3301},[393],[390,3303,3305,3344,3429,3459],{"className":3304,"ariaHidden":398},[397],[390,3306,3308,3311,3314,3317,3320,3323,3326,3329,3332,3335,3338,3341],{"className":3307},[402],[390,3309],{"className":3310,"style":446},[406],[390,3312,714],{"className":3313},[411,412],[390,3315,381],{"className":3316},[411,412],[390,3318,721],{"className":3319},[455],[390,3321,725],{"className":3322},[411,412],[390,3324,729],{"className":3325},[485],[390,3327,721],{"className":3328},[455],[390,3330,822],{"className":3331,"style":821},[411,412],[390,3333,729],{"className":3334},[485],[390,3336],{"className":3337,"style":733},[463],[390,3339,738],{"className":3340},[737],[390,3342],{"className":3343,"style":733},[463],[390,3345,3347,3350,3402,3408,3411,3414,3417,3420,3423,3426],{"className":3346},[402],[390,3348],{"className":3349,"style":1834},[406],[390,3351,3353,3359],{"className":3352},[760],[390,3354,3356],{"className":3355},[760],[390,3357,768],{"className":3358},[411,767],[390,3360,3362],{"className":3361},[559],[390,3363,3365,3394],{"className":3364},[563,775],[390,3366,3368,3391],{"className":3367},[567],[390,3369,3371],{"className":3370,"style":782},[571],[390,3372,3373,3376],{"style":785},[390,3374],{"className":3375,"style":580},[579],[390,3377,3379],{"className":3378},[584,585,586,587],[390,3380,3382,3385,3388],{"className":3381},[411,587],[390,3383,806],{"className":3384,"style":805},[411,412,587],[390,3386,829],{"className":3387},[737,587],[390,3389,822],{"className":3390,"style":821},[411,412,587],[390,3392,840],{"className":3393},[839],[390,3395,3397],{"className":3396},[567],[390,3398,3400],{"className":3399,"style":847},[571],[390,3401],{},[390,3403,3405],{"className":3404},[455],[390,3406,456],{"className":3407},[755,1894],[390,3409,714],{"className":3410},[411,412],[390,3412,381],{"className":3413},[411,412],[390,3415,721],{"className":3416},[455],[390,3418,725],{"className":3419},[411,412],[390,3421],{"className":3422,"style":464},[463],[390,3424,801],{"className":3425},[468],[390,3427],{"className":3428,"style":464},[463],[390,3430,3432,3435,3438,3441,3444,3447,3450,3453,3456],{"className":3431},[402],[390,3433],{"className":3434,"style":446},[406],[390,3436,667],{"className":3437},[411],[390,3439,729],{"className":3440},[485],[390,3442,721],{"className":3443},[455],[390,3445,806],{"className":3446,"style":805},[411,412],[390,3448,729],{"className":3449},[485],[390,3451],{"className":3452,"style":464},[463],[390,3454,881],{"className":3455},[468],[390,3457],{"className":3458,"style":464},[463],[390,3460,3462,3465,3470,3473,3476,3479,3482,3485,3488,3494],{"className":3461},[402],[390,3463],{"className":3464,"style":1834},[406],[390,3466,3469],{"className":3467,"style":3468},[411,412],"margin-right:0.0715em;","C",[390,3471,456],{"className":3472},[455],[390,3474,806],{"className":3475,"style":805},[411,412],[390,3477,912],{"className":3478},[911],[390,3480],{"className":3481,"style":853},[463],[390,3483,822],{"className":3484,"style":821},[411,412],[390,3486,486],{"className":3487},[485],[390,3489,3491],{"className":3490},[485],[390,3492,486],{"className":3493},[755,1894],[390,3495,912],{"className":3496},[911],[381,3498,3499,3500,3538,3539,3554,3555,3574,3575,3593,3594,3687,3688,3703,3704,3719],{},"let ",[390,3501,3503],{"className":3502},[393],[390,3504,3506],{"className":3505,"ariaHidden":398},[397],[390,3507,3509,3512,3516,3520,3523,3526,3529,3532,3535],{"className":3508},[402],[390,3510],{"className":3511,"style":446},[406],[390,3513,3515],{"className":3514},[411,412],"o",[390,3517,3519],{"className":3518},[411,412],"pt",[390,3521,456],{"className":3522},[455],[390,3524,725],{"className":3525},[411,412],[390,3527,912],{"className":3528},[911],[390,3530],{"className":3531,"style":853},[463],[390,3533,822],{"className":3534,"style":821},[411,412],[390,3536,486],{"className":3537},[485]," be the smallest ",[390,3540,3542],{"className":3541},[393],[390,3543,3545],{"className":3544,"ariaHidden":398},[397],[390,3546,3548,3551],{"className":3547},[402],[390,3549],{"className":3550,"style":932},[406],[390,3552,806],{"className":3553,"style":805},[411,412]," achieving that minimum. If ",[390,3556,3558],{"className":3557},[393],[390,3559,3561],{"className":3560,"ariaHidden":398},[397],[390,3562,3564,3568,3571],{"className":3563},[402],[390,3565],{"className":3566,"style":3567},[406],"height:0.8095em;vertical-align:-0.1944em;",[390,3569,3515],{"className":3570},[411,412],[390,3572,3519],{"className":3573},[411,412]," is\n",[654,3576,3577,3578],{},"monotone in ",[390,3579,3581],{"className":3580},[393],[390,3582,3584],{"className":3583,"ariaHidden":398},[397],[390,3585,3587,3590],{"className":3586},[402],[390,3588],{"className":3589,"style":1284},[406],[390,3591,822],{"className":3592,"style":821},[411,412]," (that is, ",[390,3595,3597],{"className":3596},[393],[390,3598,3600,3639,3675],{"className":3599,"ariaHidden":398},[397],[390,3601,3603,3606,3609,3612,3615,3618,3621,3624,3627,3630,3633,3636],{"className":3602},[402],[390,3604],{"className":3605,"style":446},[406],[390,3607,3515],{"className":3608},[411,412],[390,3610,3519],{"className":3611},[411,412],[390,3613,456],{"className":3614},[455],[390,3616,725],{"className":3617},[411,412],[390,3619,912],{"className":3620},[911],[390,3622],{"className":3623,"style":853},[463],[390,3625,822],{"className":3626,"style":821},[411,412],[390,3628,486],{"className":3629},[485],[390,3631],{"className":3632,"style":733},[463],[390,3634,814],{"className":3635},[737],[390,3637],{"className":3638,"style":733},[463],[390,3640,3642,3645,3648,3651,3654,3657,3660,3663,3666,3669,3672],{"className":3641},[402],[390,3643],{"className":3644,"style":446},[406],[390,3646,3515],{"className":3647},[411,412],[390,3649,3519],{"className":3650},[411,412],[390,3652,456],{"className":3653},[455],[390,3655,725],{"className":3656},[411,412],[390,3658,912],{"className":3659},[911],[390,3661],{"className":3662,"style":853},[463],[390,3664,822],{"className":3665,"style":821},[411,412],[390,3667],{"className":3668,"style":464},[463],[390,3670,881],{"className":3671},[468],[390,3673],{"className":3674,"style":464},[463],[390,3676,3678,3681,3684],{"className":3677},[402],[390,3679],{"className":3680,"style":446},[406],[390,3682,667],{"className":3683},[411],[390,3685,486],{"className":3686},[485]," for every fixed layer ",[390,3689,3691],{"className":3690},[393],[390,3692,3694],{"className":3693,"ariaHidden":398},[397],[390,3695,3697,3700],{"className":3696},[402],[390,3698],{"className":3699,"style":949},[406],[390,3701,725],{"className":3702},[411,412],"),\nthen the search range for column ",[390,3705,3707],{"className":3706},[393],[390,3708,3710],{"className":3709,"ariaHidden":398},[397],[390,3711,3713,3716],{"className":3712},[402],[390,3714],{"className":3715,"style":1284},[406],[390,3717,822],{"className":3718,"style":821},[411,412]," is bounded by the answers of its neighbors,\nand we can solve a whole layer by divide and conquer:",[1063,3721,3723],{"className":1065,"code":3722,"language":1067,"meta":376,"style":376},"caption: $\\textsc{DC-Opt}(i, j_{lo}, j_{hi}, k_{lo}, k_{hi})$ — fill layer $i$, columns $[j_{lo},j_{hi}]$\nif $j_{lo} > j_{hi}$ then return\n$j_{mid} \\gets \\lfloor (j_{lo}+j_{hi})\u002F2 \\rfloor$\n$best \\gets \\infty$;  $opt \\gets k_{lo}$\nfor $k \\gets k_{lo}$ to $\\min(j_{mid}-1,\\,k_{hi})$ do\n  if $dp[i-1][k] + C(k,j_{mid}) \u003C best$ then\n    $best \\gets dp[i-1][k] + C(k,j_{mid})$;  $opt \\gets k$\n$dp[i][j_{mid}] \\gets best$\n$\\textsc{DC-Opt}(i,\\ j_{lo},\\ j_{mid}-1,\\ k_{lo},\\ opt)$\n$\\textsc{DC-Opt}(i,\\ j_{mid}+1,\\ j_{hi},\\ opt,\\ k_{hi})$\n",[1069,3724,3725,3730,3735,3740,3745,3750,3755,3760,3765,3770],{"__ignoreMap":376},[390,3726,3727],{"class":1073,"line":6},[390,3728,3729],{},"caption: $\\textsc{DC-Opt}(i, j_{lo}, j_{hi}, k_{lo}, k_{hi})$ — fill layer $i$, columns $[j_{lo},j_{hi}]$\n",[390,3731,3732],{"class":1073,"line":18},[390,3733,3734],{},"if $j_{lo} > j_{hi}$ then return\n",[390,3736,3737],{"class":1073,"line":24},[390,3738,3739],{},"$j_{mid} \\gets \\lfloor (j_{lo}+j_{hi})\u002F2 \\rfloor$\n",[390,3741,3742],{"class":1073,"line":73},[390,3743,3744],{},"$best \\gets \\infty$;  $opt \\gets k_{lo}$\n",[390,3746,3747],{"class":1073,"line":102},[390,3748,3749],{},"for $k \\gets k_{lo}$ to $\\min(j_{mid}-1,\\,k_{hi})$ do\n",[390,3751,3752],{"class":1073,"line":108},[390,3753,3754],{},"  if $dp[i-1][k] + C(k,j_{mid}) \u003C best$ then\n",[390,3756,3757],{"class":1073,"line":116},[390,3758,3759],{},"    $best \\gets dp[i-1][k] + C(k,j_{mid})$;  $opt \\gets k$\n",[390,3761,3762],{"class":1073,"line":196},[390,3763,3764],{},"$dp[i][j_{mid}] \\gets best$\n",[390,3766,3767],{"class":1073,"line":202},[390,3768,3769],{},"$\\textsc{DC-Opt}(i,\\ j_{lo},\\ j_{mid}-1,\\ k_{lo},\\ opt)$\n",[390,3771,3772],{"class":1073,"line":283},[390,3773,3774],{},"$\\textsc{DC-Opt}(i,\\ j_{mid}+1,\\ j_{hi},\\ opt,\\ k_{hi})$\n",[381,3776,3777,3778,3838,3839,3854,3855,3873,3874,3877,3878,3881],{},"Solve the middle column ",[390,3779,3781],{"className":3780},[393],[390,3782,3784],{"className":3783,"ariaHidden":398},[397],[390,3785,3787,3790],{"className":3786},[402],[390,3788],{"className":3789,"style":1284},[406],[390,3791,3793,3796],{"className":3792},[411],[390,3794,822],{"className":3795,"style":821},[411,412],[390,3797,3799],{"className":3798},[559],[390,3800,3802,3830],{"className":3801},[563,775],[390,3803,3805,3827],{"className":3804},[567],[390,3806,3808],{"className":3807,"style":782},[571],[390,3809,3811,3814],{"style":3810},"top:-2.55em;margin-left:-0.0572em;margin-right:0.05em;",[390,3812],{"className":3813,"style":580},[579],[390,3815,3817],{"className":3816},[584,585,586,587],[390,3818,3820,3824],{"className":3819},[411,587],[390,3821,3823],{"className":3822},[411,412,587],"mi",[390,3825,714],{"className":3826},[411,412,587],[390,3828,840],{"className":3829},[839],[390,3831,3833],{"className":3832},[567],[390,3834,3836],{"className":3835,"style":1992},[571],[390,3837],{}," first by scanning its full allowed ",[390,3840,3842],{"className":3841},[393],[390,3843,3845],{"className":3844,"ariaHidden":398},[397],[390,3846,3848,3851],{"className":3847},[402],[390,3849],{"className":3850,"style":932},[406],[390,3852,806],{"className":3853,"style":805},[411,412],"-range;\nits optimum ",[390,3856,3858],{"className":3857},[393],[390,3859,3861],{"className":3860,"ariaHidden":398},[397],[390,3862,3864,3867,3870],{"className":3863},[402],[390,3865],{"className":3866,"style":3567},[406],[390,3868,3515],{"className":3869},[411,412],[390,3871,3519],{"className":3872},[411,412]," then ",[654,3875,3876],{},"caps"," the left half's search and ",[654,3879,3880],{},"floors"," the right\nhalf's, so the two recursive calls split both the columns and the candidate range:",[1446,3883,3885,4213],{"className":3884},[1449,1450],[1452,3886,3890],{"xmlns":1454,"width":3887,"height":3888,"viewBox":3889},"346.431","107.703","-75 -75 259.824 80.777",[1459,3891,3892,3913,3969,3989,4049,4070,4073,4111,4114,4146,4155,4197,4205],{"stroke":1461,"style":1462},[1459,3893,3894,3901,3907],{"stroke":1466,"fontSize":1552},[1459,3895,3897],{"transform":3896},"translate(-68.051 -37.834)",[1464,3898],{"d":3899,"fill":1461,"stroke":1461,"className":3900,"style":1560},"M10.918-25.028Q10.918-25.524 11.168-25.949Q11.418-26.375 11.838-26.621Q12.258-26.867 12.758-26.867Q13.297-26.867 13.688-26.742Q14.078-26.617 14.078-26.203Q14.078-26.098 14.028-26.006Q13.977-25.914 13.885-25.863Q13.793-25.813 13.684-25.813Q13.578-25.813 13.487-25.863Q13.395-25.914 13.344-26.006Q13.293-26.098 13.293-26.203Q13.293-26.426 13.461-26.531Q13.239-26.590 12.766-26.590Q12.469-26.590 12.254-26.451Q12.039-26.313 11.908-26.082Q11.778-25.852 11.719-25.582Q11.660-25.313 11.660-25.028Q11.660-24.633 11.793-24.283Q11.926-23.934 12.198-23.717Q12.469-23.500 12.867-23.500Q13.242-23.500 13.518-23.717Q13.793-23.934 13.895-24.293Q13.910-24.356 13.973-24.356L14.078-24.356Q14.114-24.356 14.139-24.328Q14.164-24.301 14.164-24.262L14.164-24.238Q14.032-23.758 13.647-23.490Q13.262-23.223 12.758-23.223Q12.395-23.223 12.061-23.360Q11.727-23.496 11.467-23.746Q11.207-23.996 11.063-24.332Q10.918-24.668 10.918-25.028M14.653-24.996Q14.653-25.500 14.908-25.932Q15.164-26.363 15.600-26.615Q16.035-26.867 16.535-26.867Q16.922-26.867 17.264-26.723Q17.606-26.578 17.867-26.317Q18.129-26.055 18.272-25.719Q18.414-25.383 18.414-24.996Q18.414-24.504 18.151-24.094Q17.887-23.684 17.457-23.453Q17.028-23.223 16.535-23.223Q16.043-23.223 15.610-23.455Q15.176-23.688 14.914-24.096Q14.653-24.504 14.653-24.996M16.535-23.500Q16.992-23.500 17.244-23.723Q17.496-23.946 17.584-24.297Q17.672-24.649 17.672-25.094Q17.672-25.524 17.578-25.862Q17.485-26.199 17.231-26.406Q16.977-26.613 16.535-26.613Q15.887-26.613 15.643-26.197Q15.399-25.781 15.399-25.094Q15.399-24.649 15.487-24.297Q15.575-23.946 15.826-23.723Q16.078-23.500 16.535-23.500M20.813-23.301L18.981-23.301L18.981-23.598Q19.254-23.598 19.422-23.645Q19.590-23.692 19.590-23.860L19.590-28.020Q19.590-28.235 19.528-28.330Q19.465-28.426 19.346-28.447Q19.227-28.469 18.981-28.469L18.981-28.766L20.203-28.852L20.203-23.860Q20.203-23.692 20.371-23.645Q20.539-23.598 20.813-23.598L20.813-23.301M21.942-24.254L21.942-25.996Q21.942-26.211 21.879-26.307Q21.817-26.403 21.698-26.424Q21.578-26.446 21.332-26.446L21.332-26.742L22.578-26.828L22.578-24.278L22.578-24.254Q22.578-23.942 22.633-23.780Q22.688-23.617 22.838-23.547Q22.989-23.477 23.309-23.477Q23.739-23.477 24.012-23.815Q24.285-24.153 24.285-24.598L24.285-25.996Q24.285-26.211 24.223-26.307Q24.160-26.403 24.041-26.424Q23.922-26.446 23.676-26.446L23.676-26.742L24.922-26.828L24.922-24.043Q24.922-23.832 24.985-23.737Q25.047-23.641 25.166-23.619Q25.285-23.598 25.532-23.598L25.532-23.301L24.309-23.223L24.309-23.844Q24.141-23.555 23.860-23.389Q23.578-23.223 23.258-23.223Q21.942-23.223 21.942-24.254M27.907-23.301L26.051-23.301L26.051-23.598Q26.325-23.598 26.492-23.645Q26.660-23.692 26.660-23.860L26.660-25.996Q26.660-26.211 26.598-26.307Q26.535-26.403 26.416-26.424Q26.297-26.446 26.051-26.446L26.051-26.742L27.242-26.828L27.242-26.094Q27.356-26.309 27.549-26.477Q27.742-26.645 27.981-26.737Q28.219-26.828 28.473-26.828Q29.434-26.828 29.610-26.117Q29.793-26.446 30.121-26.637Q30.450-26.828 30.828-26.828Q32.004-26.828 32.004-25.750L32.004-23.860Q32.004-23.692 32.172-23.645Q32.340-23.598 32.610-23.598L32.610-23.301L30.754-23.301L30.754-23.598Q31.028-23.598 31.196-23.643Q31.364-23.688 31.364-23.860L31.364-25.735Q31.364-26.121 31.239-26.348Q31.114-26.574 30.762-26.574Q30.457-26.574 30.201-26.412Q29.946-26.250 29.797-25.981Q29.649-25.711 29.649-25.414L29.649-23.860Q29.649-23.692 29.819-23.645Q29.989-23.598 30.258-23.598L30.258-23.301L28.403-23.301L28.403-23.598Q28.676-23.598 28.844-23.645Q29.012-23.692 29.012-23.860L29.012-25.735Q29.012-26.121 28.887-26.348Q28.762-26.574 28.410-26.574Q28.106-26.574 27.850-26.412Q27.594-26.250 27.446-25.981Q27.297-25.711 27.297-25.414L27.297-23.860Q27.297-23.692 27.467-23.645Q27.637-23.598 27.907-23.598L27.907-23.301M34.985-23.301L33.129-23.301L33.129-23.598Q33.403-23.598 33.571-23.645Q33.739-23.692 33.739-23.860L33.739-25.996Q33.739-26.211 33.676-26.307Q33.614-26.403 33.494-26.424Q33.375-26.446 33.129-26.446L33.129-26.742L34.321-26.828L34.321-26.094Q34.434-26.309 34.627-26.477Q34.821-26.645 35.059-26.737Q35.297-26.828 35.551-26.828Q36.719-26.828 36.719-25.750L36.719-23.860Q36.719-23.692 36.889-23.645Q37.059-23.598 37.328-23.598L37.328-23.301L35.473-23.301L35.473-23.598Q35.746-23.598 35.914-23.645Q36.082-23.692 36.082-23.860L36.082-25.735Q36.082-26.117 35.961-26.346Q35.840-26.574 35.489-26.574Q35.176-26.574 34.922-26.412Q34.668-26.250 34.522-25.981Q34.375-25.711 34.375-25.414L34.375-23.860Q34.375-23.692 34.545-23.645Q34.715-23.598 34.985-23.598L34.985-23.301M37.817-23.309L37.817-24.531Q37.817-24.559 37.848-24.590Q37.879-24.621 37.903-24.621L38.008-24.621Q38.078-24.621 38.094-24.559Q38.157-24.238 38.295-23.998Q38.434-23.758 38.666-23.617Q38.899-23.477 39.207-23.477Q39.446-23.477 39.655-23.537Q39.864-23.598 40-23.746Q40.137-23.895 40.137-24.141Q40.137-24.395 39.926-24.561Q39.715-24.727 39.446-24.781L38.825-24.895Q38.418-24.973 38.117-25.229Q37.817-25.485 37.817-25.860Q37.817-26.227 38.018-26.449Q38.219-26.672 38.543-26.770Q38.867-26.867 39.207-26.867Q39.672-26.867 39.969-26.660L40.192-26.844Q40.215-26.867 40.246-26.867L40.297-26.867Q40.328-26.867 40.356-26.840Q40.383-26.813 40.383-26.781L40.383-25.797Q40.383-25.766 40.358-25.737Q40.332-25.707 40.297-25.707L40.192-25.707Q40.157-25.707 40.129-25.735Q40.102-25.762 40.102-25.797Q40.102-26.196 39.850-26.416Q39.598-26.637 39.200-26.637Q38.844-26.637 38.561-26.514Q38.278-26.391 38.278-26.086Q38.278-25.867 38.479-25.735Q38.680-25.602 38.926-25.559L39.551-25.446Q39.981-25.356 40.289-25.059Q40.598-24.762 40.598-24.348Q40.598-23.778 40.200-23.500Q39.801-23.223 39.207-23.223Q38.657-23.223 38.305-23.559L38.008-23.246Q37.985-23.223 37.950-23.223L37.903-23.223Q37.879-23.223 37.848-23.254Q37.817-23.285 37.817-23.309",[1475],[1459,3902,3903],{"transform":3896},[1464,3904],{"d":3905,"fill":1461,"stroke":1461,"className":3906,"style":1560},"M43.627-22.180Q43.627-22.375 43.763-22.522Q43.900-22.668 44.092-22.668Q44.228-22.668 44.324-22.582Q44.420-22.496 44.420-22.363Q44.420-22.242 44.345-22.123Q44.271-22.004 44.166-21.949Q44.271-21.926 44.388-21.926Q44.619-21.926 44.822-22.074Q45.025-22.223 45.162-22.449Q45.299-22.676 45.357-22.910L46.107-25.918Q46.146-26.074 46.146-26.211Q46.146-26.360 46.094-26.467Q46.041-26.574 45.908-26.574Q45.670-26.574 45.459-26.420Q45.248-26.266 45.094-26.033Q44.939-25.801 44.838-25.547Q44.822-25.500 44.763-25.500L44.662-25.500Q44.627-25.500 44.599-25.535Q44.572-25.571 44.572-25.598L44.572-25.629Q44.689-25.922 44.888-26.201Q45.088-26.481 45.351-26.655Q45.615-26.828 45.924-26.828Q46.146-26.828 46.340-26.737Q46.533-26.645 46.648-26.473Q46.763-26.301 46.763-26.078Q46.763-26.008 46.732-25.860L45.978-22.852Q45.920-22.598 45.758-22.379Q45.595-22.160 45.379-22.002Q45.162-21.844 44.894-21.756Q44.627-21.668 44.373-21.668Q44.084-21.668 43.855-21.793Q43.627-21.918 43.627-22.180M46.267-28.141Q46.267-28.321 46.412-28.459Q46.556-28.598 46.740-28.598Q46.869-28.598 46.965-28.510Q47.060-28.422 47.060-28.285Q47.060-28.110 46.916-27.969Q46.771-27.828 46.595-27.828Q46.463-27.828 46.365-27.920Q46.267-28.012 46.267-28.141",[1475],[1459,3908,3909],{"transform":3896},[1464,3910],{"d":3911,"fill":1461,"stroke":1461,"className":3912,"style":1560},"M48.358-23.766Q48.358-23.949 48.494-24.086Q48.631-24.223 48.823-24.223Q49.014-24.223 49.147-24.090Q49.280-23.957 49.280-23.766Q49.280-23.567 49.147-23.434Q49.014-23.301 48.823-23.301Q48.631-23.301 48.494-23.438Q48.358-23.574 48.358-23.766M48.358-26.293Q48.358-26.477 48.494-26.613Q48.631-26.750 48.823-26.750Q49.014-26.750 49.147-26.617Q49.280-26.485 49.280-26.293Q49.280-26.094 49.147-25.961Q49.014-25.828 48.823-25.828Q48.631-25.828 48.494-25.965Q48.358-26.102 48.358-26.293",[1475],[1459,3914,3915,3918],{"fill":1533},[1464,3916],{"d":3917},"M-29.197-54.598H39.09V-71.67h-68.287Z",[1459,3919,3920,3927,3933,3939,3945,3951,3957,3963],{"fill":1461,"stroke":1466},[1459,3921,3923],{"transform":3922},"translate(-29.605 -37.834)",[1464,3924],{"d":3925,"fill":1461,"stroke":1461,"className":3926,"style":1560},"M12.805-21.301L11.629-21.301L11.629-29.301L12.805-29.301L12.805-28.934L11.996-28.934L11.996-21.668L12.805-21.668",[1475],[1459,3928,3929],{"transform":3922},[1464,3930],{"d":3931,"fill":1461,"stroke":1461,"className":3932,"style":1560},"M12.885-22.180Q12.885-22.375 13.021-22.522Q13.158-22.668 13.350-22.668Q13.486-22.668 13.582-22.582Q13.678-22.496 13.678-22.363Q13.678-22.242 13.603-22.123Q13.529-22.004 13.424-21.949Q13.529-21.926 13.646-21.926Q13.877-21.926 14.080-22.074Q14.283-22.223 14.420-22.449Q14.557-22.676 14.615-22.910L15.365-25.918Q15.404-26.074 15.404-26.211Q15.404-26.360 15.352-26.467Q15.299-26.574 15.166-26.574Q14.928-26.574 14.717-26.420Q14.506-26.266 14.352-26.033Q14.197-25.801 14.096-25.547Q14.080-25.500 14.021-25.500L13.920-25.500Q13.885-25.500 13.857-25.535Q13.830-25.571 13.830-25.598L13.830-25.629Q13.947-25.922 14.146-26.201Q14.346-26.481 14.609-26.655Q14.873-26.828 15.182-26.828Q15.404-26.828 15.598-26.737Q15.791-26.645 15.906-26.473Q16.021-26.301 16.021-26.078Q16.021-26.008 15.990-25.860L15.236-22.852Q15.178-22.598 15.016-22.379Q14.853-22.160 14.637-22.002Q14.420-21.844 14.152-21.756Q13.885-21.668 13.631-21.668Q13.342-21.668 13.113-21.793Q12.885-21.918 12.885-22.180M15.525-28.141Q15.525-28.321 15.670-28.459Q15.814-28.598 15.998-28.598Q16.127-28.598 16.223-28.510Q16.318-28.422 16.318-28.285Q16.318-28.110 16.174-27.969Q16.029-27.828 15.853-27.828Q15.721-27.828 15.623-27.920Q15.525-28.012 15.525-28.141",[1475],[1459,3934,3935],{"transform":3922},[1464,3936],{"d":3937,"fill":1461,"stroke":1461,"className":3938,"style":2638},"M16.887-22.405Q16.887-22.408 16.896-22.460Q16.905-22.513 16.905-22.548L17.643-25.495Q17.666-25.598 17.672-25.651Q17.672-25.730 17.283-25.730Q17.245-25.730 17.221-25.764Q17.198-25.797 17.198-25.832Q17.221-25.923 17.231-25.951Q17.242-25.979 17.300-25.988L18.176-26.052Q18.273-26.052 18.273-25.950L17.415-22.525Q17.391-22.446 17.391-22.334Q17.391-22.044 17.599-22.044Q17.790-22.044 17.886-22.260Q17.983-22.475 18.056-22.783Q18.065-22.824 18.121-22.838L18.217-22.838Q18.296-22.812 18.296-22.742Q18.200-22.367 18.041-22.098Q17.883-21.830 17.587-21.830Q17.306-21.830 17.097-21.984Q16.887-22.138 16.887-22.405M19.287-22.897Q19.287-23.330 19.553-23.708Q19.820-24.086 20.243-24.310Q20.666-24.535 21.091-24.535Q21.405-24.535 21.674-24.404Q21.944-24.274 22.102-24.031Q22.260-23.787 22.260-23.468Q22.260-23.137 22.103-22.838Q21.947-22.539 21.683-22.311Q21.419-22.082 21.096-21.956Q20.772-21.830 20.456-21.830Q20.139-21.830 19.871-21.961Q19.603-22.091 19.445-22.333Q19.287-22.575 19.287-22.897M20.467-22.044Q20.848-22.044 21.132-22.295Q21.416-22.545 21.566-22.926Q21.715-23.307 21.715-23.664Q21.715-23.957 21.545-24.138Q21.375-24.318 21.080-24.318Q20.795-24.318 20.560-24.170Q20.324-24.022 20.164-23.783Q20.004-23.544 19.918-23.251Q19.832-22.958 19.832-22.698Q19.832-22.405 20.004-22.224Q20.177-22.044 20.467-22.044",[1475],[1459,3940,3941],{"transform":3922},[1464,3942],{"d":3943,"fill":1461,"stroke":1461,"className":3944,"style":1560},"M23.844-21.895Q23.844-21.918 23.875-21.965Q24.168-22.227 24.334-22.594Q24.500-22.961 24.500-23.348L24.500-23.406Q24.372-23.301 24.204-23.301Q24.012-23.301 23.875-23.434Q23.739-23.567 23.739-23.766Q23.739-23.957 23.875-24.090Q24.012-24.223 24.204-24.223Q24.504-24.223 24.629-23.953Q24.754-23.684 24.754-23.348Q24.754-22.899 24.573-22.485Q24.391-22.071 24.051-21.774Q24.028-21.750 23.989-21.750Q23.942-21.750 23.893-21.795Q23.844-21.840 23.844-21.895",[1475],[1459,3946,3947],{"transform":3922},[1464,3948],{"d":3949,"fill":1461,"stroke":1461,"className":3950,"style":1560},"M28.102-22.180Q28.102-22.375 28.238-22.522Q28.375-22.668 28.567-22.668Q28.703-22.668 28.799-22.582Q28.895-22.496 28.895-22.363Q28.895-22.242 28.820-22.123Q28.746-22.004 28.641-21.949Q28.746-21.926 28.863-21.926Q29.094-21.926 29.297-22.074Q29.500-22.223 29.637-22.449Q29.774-22.676 29.832-22.910L30.582-25.918Q30.621-26.074 30.621-26.211Q30.621-26.360 30.569-26.467Q30.516-26.574 30.383-26.574Q30.145-26.574 29.934-26.420Q29.723-26.266 29.569-26.033Q29.414-25.801 29.313-25.547Q29.297-25.500 29.238-25.500L29.137-25.500Q29.102-25.500 29.074-25.535Q29.047-25.571 29.047-25.598L29.047-25.629Q29.164-25.922 29.363-26.201Q29.563-26.481 29.826-26.655Q30.090-26.828 30.399-26.828Q30.621-26.828 30.815-26.737Q31.008-26.645 31.123-26.473Q31.238-26.301 31.238-26.078Q31.238-26.008 31.207-25.860L30.453-22.852Q30.395-22.598 30.233-22.379Q30.070-22.160 29.854-22.002Q29.637-21.844 29.369-21.756Q29.102-21.668 28.848-21.668Q28.559-21.668 28.330-21.793Q28.102-21.918 28.102-22.180M30.742-28.141Q30.742-28.321 30.887-28.459Q31.031-28.598 31.215-28.598Q31.344-28.598 31.440-28.510Q31.535-28.422 31.535-28.285Q31.535-28.110 31.391-27.969Q31.246-27.828 31.070-27.828Q30.938-27.828 30.840-27.920Q30.742-28.012 30.742-28.141",[1475],[1459,3952,3953],{"transform":3922},[1464,3954],{"d":3955,"fill":1461,"stroke":1461,"className":3956,"style":2638},"M32.455-22.033Q32.455-22.074 32.461-22.094L32.900-23.840Q32.923-23.925 32.923-24.031Q32.923-24.151 32.872-24.234Q32.821-24.318 32.713-24.318Q32.525-24.318 32.420-24.095Q32.314-23.872 32.247-23.582Q32.238-23.538 32.173-23.527L32.077-23.527Q32.021-23.541 32.006-23.606Q32.006-23.635 32.012-23.647Q32.100-24.001 32.269-24.268Q32.437-24.535 32.727-24.535Q32.991-24.535 33.209-24.388Q33.427-24.242 33.427-23.990Q33.635-24.242 33.905-24.388Q34.174-24.535 34.473-24.535Q34.798-24.535 35.055-24.382Q35.311-24.230 35.311-23.922Q35.525-24.203 35.803-24.369Q36.082-24.535 36.410-24.535Q36.647-24.535 36.838-24.464Q37.028-24.394 37.142-24.236Q37.256-24.077 37.256-23.840Q37.256-23.603 37.148-23.281Q37.040-22.958 36.861-22.501Q36.805-22.387 36.805-22.249Q36.805-22.164 36.840-22.104Q36.876-22.044 36.949-22.044Q37.116-22.044 37.254-22.160Q37.391-22.276 37.485-22.451Q37.579-22.627 37.617-22.783Q37.626-22.824 37.681-22.838L37.778-22.838Q37.857-22.809 37.857-22.753Q37.857-22.747 37.851-22.718Q37.766-22.372 37.514-22.101Q37.262-21.830 36.937-21.830Q36.691-21.830 36.502-21.970Q36.313-22.109 36.313-22.352Q36.313-22.466 36.363-22.566Q36.536-23.005 36.647-23.339Q36.758-23.673 36.758-23.916Q36.758-24.098 36.669-24.208Q36.580-24.318 36.398-24.318Q36.020-24.318 35.733-24.054Q35.446-23.790 35.241-23.383L34.904-22.050Q34.883-21.953 34.800-21.892Q34.716-21.830 34.617-21.830Q34.526-21.830 34.460-21.888Q34.394-21.945 34.394-22.033Q34.394-22.074 34.400-22.094L34.772-23.582Q34.819-23.752 34.819-23.916Q34.819-24.098 34.730-24.208Q34.640-24.318 34.459-24.318Q34.081-24.318 33.794-24.054Q33.506-23.790 33.301-23.383L32.967-22.050Q32.947-21.953 32.860-21.892Q32.774-21.830 32.677-21.830Q32.587-21.830 32.521-21.888Q32.455-21.945 32.455-22.033M38.988-22.352Q38.988-22.466 39.038-22.566L39.553-23.864Q39.606-24.001 39.606-24.116Q39.606-24.318 39.457-24.318Q39.293-24.318 39.156-24.202Q39.020-24.086 38.931-23.915Q38.841-23.743 38.803-23.582Q38.783-23.544 38.730-23.527L38.633-23.527Q38.563-23.547 38.563-23.612Q38.563-23.618 38.569-23.647Q38.657-23.990 38.902-24.262Q39.146-24.535 39.468-24.535Q39.627-24.535 39.772-24.474Q39.917-24.414 40.005-24.296Q40.092-24.177 40.092-24.013Q40.092-23.890 40.051-23.796L39.536-22.501Q39.480-22.387 39.480-22.249Q39.480-22.044 39.624-22.044Q39.791-22.044 39.927-22.160Q40.063-22.276 40.154-22.446Q40.245-22.616 40.286-22.783Q40.306-22.815 40.350-22.838L40.447-22.838Q40.526-22.809 40.526-22.753Q40.526-22.747 40.517-22.718Q40.467-22.507 40.340-22.301Q40.213-22.094 40.022-21.962Q39.832-21.830 39.612-21.830Q39.366-21.830 39.177-21.970Q38.988-22.109 38.988-22.352M39.697-25.525Q39.697-25.665 39.807-25.769Q39.917-25.873 40.057-25.873Q40.160-25.873 40.235-25.802Q40.309-25.730 40.309-25.627Q40.309-25.487 40.198-25.383Q40.087-25.279 39.949-25.279Q39.846-25.279 39.772-25.353Q39.697-25.428 39.697-25.525M42.298-21.830Q42.014-21.830 41.790-21.964Q41.566-22.097 41.442-22.330Q41.317-22.563 41.317-22.850Q41.317-23.152 41.447-23.453Q41.578-23.755 41.805-24Q42.032-24.244 42.326-24.389Q42.621-24.535 42.928-24.535Q43.128-24.535 43.300-24.447Q43.473-24.359 43.579-24.198L43.901-25.495Q43.924-25.598 43.930-25.651Q43.930-25.730 43.541-25.730Q43.506-25.730 43.482-25.764Q43.459-25.797 43.459-25.832Q43.482-25.923 43.494-25.951Q43.506-25.979 43.558-25.988L44.434-26.052Q44.531-26.052 44.531-25.950L43.667-22.507Q43.649-22.416 43.649-22.334Q43.649-22.214 43.700-22.129Q43.752-22.044 43.860-22.044Q44.050-22.044 44.154-22.265Q44.258-22.487 44.329-22.783Q44.349-22.815 44.393-22.838L44.490-22.838Q44.548-22.821 44.569-22.759Q44.569-22.756 44.566-22.743Q44.563-22.730 44.560-22.718Q44.338-21.830 43.848-21.830Q43.708-21.830 43.569-21.874Q43.429-21.918 43.319-22.011Q43.210-22.103 43.169-22.238Q42.990-22.053 42.764-21.942Q42.539-21.830 42.298-21.830M42.310-22.044Q42.559-22.044 42.783-22.200Q43.007-22.355 43.174-22.586L43.482-23.814Q43.435-24.031 43.283-24.174Q43.131-24.318 42.917-24.318Q42.589-24.318 42.345-24.029Q42.102-23.741 41.976-23.336Q41.850-22.932 41.850-22.610Q41.850-22.372 41.969-22.208Q42.088-22.044 42.310-22.044",[1475],[1459,3958,3959],{"transform":3922},[1464,3960],{"d":3961,"fill":1461,"stroke":1461,"className":3962,"style":1560},"M50.962-25.117L46.130-25.117Q46.056-25.129 46.005-25.178Q45.954-25.227 45.954-25.301Q45.954-25.453 46.130-25.485L50.962-25.485Q51.130-25.457 51.130-25.301Q51.130-25.145 50.962-25.117",[1475],[1459,3964,3965],{"transform":3922},[1464,3966],{"d":3967,"fill":1461,"stroke":1461,"className":3968,"style":1560},"M55.449-23.301L52.656-23.301L52.656-23.598Q53.718-23.598 53.718-23.860L53.718-28.028Q53.289-27.813 52.609-27.813L52.609-28.110Q53.628-28.110 54.144-28.621L54.289-28.621Q54.363-28.602 54.382-28.524L54.382-23.860Q54.382-23.598 55.449-23.598L55.449-23.301M57.460-21.301L56.285-21.301L56.285-21.668L57.093-21.668L57.093-28.934L56.285-28.934L56.285-29.301L57.460-29.301",[1475],[1459,3970,3971,3974],{"fill":1533,"stroke":1489,"style":1490},[1464,3972],{"d":3973},"M59.007-54.598H93.15V-71.67H59.007Z",[1459,3975,3976,3983],{"fill":1461,"stroke":1466},[1459,3977,3979],{"transform":3978},"translate(56.927 -37.967)",[1464,3980],{"d":3981,"fill":1461,"stroke":1461,"className":3982,"style":1560},"M10.524-22.180Q10.524-22.375 10.660-22.522Q10.797-22.668 10.989-22.668Q11.125-22.668 11.221-22.582Q11.317-22.496 11.317-22.363Q11.317-22.242 11.242-22.123Q11.168-22.004 11.063-21.949Q11.168-21.926 11.285-21.926Q11.516-21.926 11.719-22.074Q11.922-22.223 12.059-22.449Q12.196-22.676 12.254-22.910L13.004-25.918Q13.043-26.074 13.043-26.211Q13.043-26.360 12.991-26.467Q12.938-26.574 12.805-26.574Q12.567-26.574 12.356-26.420Q12.145-26.266 11.991-26.033Q11.836-25.801 11.735-25.547Q11.719-25.500 11.660-25.500L11.559-25.500Q11.524-25.500 11.496-25.535Q11.469-25.571 11.469-25.598L11.469-25.629Q11.586-25.922 11.785-26.201Q11.985-26.481 12.248-26.655Q12.512-26.828 12.821-26.828Q13.043-26.828 13.237-26.737Q13.430-26.645 13.545-26.473Q13.660-26.301 13.660-26.078Q13.660-26.008 13.629-25.860L12.875-22.852Q12.817-22.598 12.655-22.379Q12.492-22.160 12.276-22.002Q12.059-21.844 11.791-21.756Q11.524-21.668 11.270-21.668Q10.981-21.668 10.752-21.793Q10.524-21.918 10.524-22.180M13.164-28.141Q13.164-28.321 13.309-28.459Q13.453-28.598 13.637-28.598Q13.766-28.598 13.862-28.510Q13.957-28.422 13.957-28.285Q13.957-28.110 13.813-27.969Q13.668-27.828 13.492-27.828Q13.360-27.828 13.262-27.920Q13.164-28.012 13.164-28.141",[1475],[1459,3984,3985],{"transform":3978},[1464,3986],{"d":3987,"fill":1461,"stroke":1461,"className":3988,"style":2638},"M14.878-22.033Q14.878-22.074 14.884-22.094L15.323-23.840Q15.346-23.925 15.346-24.031Q15.346-24.151 15.295-24.234Q15.244-24.318 15.136-24.318Q14.948-24.318 14.843-24.095Q14.737-23.872 14.670-23.582Q14.661-23.538 14.596-23.527L14.500-23.527Q14.444-23.541 14.429-23.606Q14.429-23.635 14.435-23.647Q14.523-24.001 14.692-24.268Q14.860-24.535 15.150-24.535Q15.414-24.535 15.632-24.388Q15.850-24.242 15.850-23.990Q16.058-24.242 16.328-24.388Q16.597-24.535 16.896-24.535Q17.221-24.535 17.478-24.382Q17.734-24.230 17.734-23.922Q17.948-24.203 18.226-24.369Q18.505-24.535 18.833-24.535Q19.070-24.535 19.261-24.464Q19.451-24.394 19.565-24.236Q19.679-24.077 19.679-23.840Q19.679-23.603 19.571-23.281Q19.463-22.958 19.284-22.501Q19.228-22.387 19.228-22.249Q19.228-22.164 19.263-22.104Q19.299-22.044 19.372-22.044Q19.539-22.044 19.677-22.160Q19.814-22.276 19.908-22.451Q20.002-22.627 20.040-22.783Q20.049-22.824 20.104-22.838L20.201-22.838Q20.280-22.809 20.280-22.753Q20.280-22.747 20.274-22.718Q20.189-22.372 19.937-22.101Q19.685-21.830 19.360-21.830Q19.114-21.830 18.925-21.970Q18.736-22.109 18.736-22.352Q18.736-22.466 18.786-22.566Q18.959-23.005 19.070-23.339Q19.181-23.673 19.181-23.916Q19.181-24.098 19.092-24.208Q19.003-24.318 18.821-24.318Q18.443-24.318 18.156-24.054Q17.869-23.790 17.664-23.383L17.327-22.050Q17.306-21.953 17.223-21.892Q17.139-21.830 17.040-21.830Q16.949-21.830 16.883-21.888Q16.817-21.945 16.817-22.033Q16.817-22.074 16.823-22.094L17.195-23.582Q17.242-23.752 17.242-23.916Q17.242-24.098 17.153-24.208Q17.063-24.318 16.882-24.318Q16.504-24.318 16.217-24.054Q15.929-23.790 15.724-23.383L15.390-22.050Q15.370-21.953 15.283-21.892Q15.197-21.830 15.100-21.830Q15.010-21.830 14.944-21.888Q14.878-21.945 14.878-22.033M21.411-22.352Q21.411-22.466 21.461-22.566L21.976-23.864Q22.029-24.001 22.029-24.116Q22.029-24.318 21.880-24.318Q21.716-24.318 21.579-24.202Q21.443-24.086 21.354-23.915Q21.264-23.743 21.226-23.582Q21.206-23.544 21.153-23.527L21.056-23.527Q20.986-23.547 20.986-23.612Q20.986-23.618 20.992-23.647Q21.080-23.990 21.325-24.262Q21.569-24.535 21.891-24.535Q22.050-24.535 22.195-24.474Q22.340-24.414 22.428-24.296Q22.515-24.177 22.515-24.013Q22.515-23.890 22.474-23.796L21.959-22.501Q21.903-22.387 21.903-22.249Q21.903-22.044 22.047-22.044Q22.214-22.044 22.350-22.160Q22.486-22.276 22.577-22.446Q22.668-22.616 22.709-22.783Q22.729-22.815 22.773-22.838L22.870-22.838Q22.949-22.809 22.949-22.753Q22.949-22.747 22.940-22.718Q22.890-22.507 22.763-22.301Q22.636-22.094 22.445-21.962Q22.255-21.830 22.035-21.830Q21.789-21.830 21.600-21.970Q21.411-22.109 21.411-22.352M22.120-25.525Q22.120-25.665 22.230-25.769Q22.340-25.873 22.480-25.873Q22.583-25.873 22.658-25.802Q22.732-25.730 22.732-25.627Q22.732-25.487 22.621-25.383Q22.510-25.279 22.372-25.279Q22.269-25.279 22.195-25.353Q22.120-25.428 22.120-25.525M24.721-21.830Q24.437-21.830 24.213-21.964Q23.989-22.097 23.865-22.330Q23.740-22.563 23.740-22.850Q23.740-23.152 23.870-23.453Q24.001-23.755 24.228-24Q24.455-24.244 24.749-24.389Q25.044-24.535 25.351-24.535Q25.551-24.535 25.723-24.447Q25.896-24.359 26.002-24.198L26.324-25.495Q26.347-25.598 26.353-25.651Q26.353-25.730 25.964-25.730Q25.929-25.730 25.905-25.764Q25.882-25.797 25.882-25.832Q25.905-25.923 25.917-25.951Q25.929-25.979 25.981-25.988L26.857-26.052Q26.954-26.052 26.954-25.950L26.090-22.507Q26.072-22.416 26.072-22.334Q26.072-22.214 26.123-22.129Q26.175-22.044 26.283-22.044Q26.473-22.044 26.577-22.265Q26.681-22.487 26.752-22.783Q26.772-22.815 26.816-22.838L26.913-22.838Q26.971-22.821 26.992-22.759Q26.992-22.756 26.989-22.743Q26.986-22.730 26.983-22.718Q26.761-21.830 26.271-21.830Q26.131-21.830 25.992-21.874Q25.852-21.918 25.742-22.011Q25.633-22.103 25.592-22.238Q25.413-22.053 25.187-21.942Q24.962-21.830 24.721-21.830M24.733-22.044Q24.982-22.044 25.206-22.200Q25.430-22.355 25.597-22.586L25.905-23.814Q25.858-24.031 25.706-24.174Q25.554-24.318 25.340-24.318Q25.012-24.318 24.768-24.029Q24.525-23.741 24.399-23.336Q24.273-22.932 24.273-22.610Q24.273-22.372 24.392-22.208Q24.511-22.044 24.733-22.044",[1475],[1459,3990,3991,3994],{"fill":1533},[1464,3992],{"d":3993},"M113.067-54.598h68.287V-71.67h-68.287Z",[1459,3995,3996,4002,4007,4013,4019,4025,4031,4037,4043],{"fill":1461,"stroke":1466},[1459,3997,3999],{"transform":3998},"translate(112.187 -37.834)",[1464,4000],{"d":3925,"fill":1461,"stroke":1461,"className":4001,"style":1560},[1475],[1459,4003,4004],{"transform":3998},[1464,4005],{"d":3931,"fill":1461,"stroke":1461,"className":4006,"style":1560},[1475],[1459,4008,4009],{"transform":3998},[1464,4010],{"d":4011,"fill":1461,"stroke":1461,"className":4012,"style":2638},"M17.239-22.033Q17.239-22.074 17.245-22.094L17.684-23.840Q17.707-23.925 17.707-24.031Q17.707-24.151 17.656-24.234Q17.605-24.318 17.497-24.318Q17.309-24.318 17.204-24.095Q17.098-23.872 17.031-23.582Q17.022-23.538 16.957-23.527L16.861-23.527Q16.805-23.541 16.790-23.606Q16.790-23.635 16.796-23.647Q16.884-24.001 17.053-24.268Q17.221-24.535 17.511-24.535Q17.775-24.535 17.993-24.388Q18.211-24.242 18.211-23.990Q18.419-24.242 18.689-24.388Q18.958-24.535 19.257-24.535Q19.582-24.535 19.839-24.382Q20.095-24.230 20.095-23.922Q20.309-24.203 20.587-24.369Q20.866-24.535 21.194-24.535Q21.431-24.535 21.622-24.464Q21.812-24.394 21.926-24.236Q22.040-24.077 22.040-23.840Q22.040-23.603 21.932-23.281Q21.824-22.958 21.645-22.501Q21.589-22.387 21.589-22.249Q21.589-22.164 21.624-22.104Q21.660-22.044 21.733-22.044Q21.900-22.044 22.038-22.160Q22.175-22.276 22.269-22.451Q22.363-22.627 22.401-22.783Q22.410-22.824 22.465-22.838L22.562-22.838Q22.641-22.809 22.641-22.753Q22.641-22.747 22.635-22.718Q22.550-22.372 22.298-22.101Q22.046-21.830 21.721-21.830Q21.475-21.830 21.286-21.970Q21.097-22.109 21.097-22.352Q21.097-22.466 21.147-22.566Q21.320-23.005 21.431-23.339Q21.542-23.673 21.542-23.916Q21.542-24.098 21.453-24.208Q21.364-24.318 21.182-24.318Q20.804-24.318 20.517-24.054Q20.230-23.790 20.025-23.383L19.688-22.050Q19.667-21.953 19.584-21.892Q19.500-21.830 19.401-21.830Q19.310-21.830 19.244-21.888Q19.178-21.945 19.178-22.033Q19.178-22.074 19.184-22.094L19.556-23.582Q19.603-23.752 19.603-23.916Q19.603-24.098 19.514-24.208Q19.424-24.318 19.243-24.318Q18.865-24.318 18.578-24.054Q18.290-23.790 18.085-23.383L17.751-22.050Q17.731-21.953 17.644-21.892Q17.558-21.830 17.461-21.830Q17.371-21.830 17.305-21.888Q17.239-21.945 17.239-22.033M23.772-22.352Q23.772-22.466 23.822-22.566L24.337-23.864Q24.390-24.001 24.390-24.116Q24.390-24.318 24.241-24.318Q24.077-24.318 23.940-24.202Q23.804-24.086 23.715-23.915Q23.625-23.743 23.587-23.582Q23.567-23.544 23.514-23.527L23.417-23.527Q23.347-23.547 23.347-23.612Q23.347-23.618 23.353-23.647Q23.441-23.990 23.686-24.262Q23.930-24.535 24.252-24.535Q24.411-24.535 24.556-24.474Q24.701-24.414 24.789-24.296Q24.876-24.177 24.876-24.013Q24.876-23.890 24.835-23.796L24.320-22.501Q24.264-22.387 24.264-22.249Q24.264-22.044 24.408-22.044Q24.575-22.044 24.711-22.160Q24.847-22.276 24.938-22.446Q25.029-22.616 25.070-22.783Q25.090-22.815 25.134-22.838L25.231-22.838Q25.310-22.809 25.310-22.753Q25.310-22.747 25.301-22.718Q25.251-22.507 25.124-22.301Q24.997-22.094 24.806-21.962Q24.616-21.830 24.396-21.830Q24.150-21.830 23.961-21.970Q23.772-22.109 23.772-22.352M24.481-25.525Q24.481-25.665 24.591-25.769Q24.701-25.873 24.841-25.873Q24.944-25.873 25.019-25.802Q25.093-25.730 25.093-25.627Q25.093-25.487 24.982-25.383Q24.871-25.279 24.733-25.279Q24.630-25.279 24.556-25.353Q24.481-25.428 24.481-25.525M27.082-21.830Q26.798-21.830 26.574-21.964Q26.350-22.097 26.226-22.330Q26.101-22.563 26.101-22.850Q26.101-23.152 26.231-23.453Q26.362-23.755 26.589-24Q26.816-24.244 27.110-24.389Q27.405-24.535 27.712-24.535Q27.912-24.535 28.084-24.447Q28.257-24.359 28.363-24.198L28.685-25.495Q28.708-25.598 28.714-25.651Q28.714-25.730 28.325-25.730Q28.290-25.730 28.266-25.764Q28.243-25.797 28.243-25.832Q28.266-25.923 28.278-25.951Q28.290-25.979 28.342-25.988L29.218-26.052Q29.315-26.052 29.315-25.950L28.451-22.507Q28.433-22.416 28.433-22.334Q28.433-22.214 28.484-22.129Q28.536-22.044 28.644-22.044Q28.834-22.044 28.938-22.265Q29.042-22.487 29.113-22.783Q29.133-22.815 29.177-22.838L29.274-22.838Q29.332-22.821 29.353-22.759Q29.353-22.756 29.350-22.743Q29.347-22.730 29.344-22.718Q29.122-21.830 28.632-21.830Q28.492-21.830 28.353-21.874Q28.213-21.918 28.103-22.011Q27.994-22.103 27.953-22.238Q27.774-22.053 27.548-21.942Q27.323-21.830 27.082-21.830M27.094-22.044Q27.343-22.044 27.567-22.200Q27.791-22.355 27.958-22.586L28.266-23.814Q28.219-24.031 28.067-24.174Q27.915-24.318 27.701-24.318Q27.373-24.318 27.129-24.029Q26.886-23.741 26.760-23.336Q26.634-22.932 26.634-22.610Q26.634-22.372 26.753-22.208Q26.872-22.044 27.094-22.044",[1475],[1459,4014,4015],{"transform":3998},[1464,4016],{"d":4017,"fill":1461,"stroke":1461,"className":4018,"style":1560},"M33.148-25.117L30.675-25.117Q30.597-25.129 30.548-25.178Q30.500-25.227 30.500-25.301Q30.500-25.375 30.548-25.424Q30.597-25.473 30.675-25.485L33.148-25.485L33.148-27.965Q33.175-28.133 33.332-28.133Q33.406-28.133 33.455-28.084Q33.504-28.035 33.515-27.965L33.515-25.485L35.988-25.485Q36.156-25.453 36.156-25.301Q36.156-25.149 35.988-25.117L33.515-25.117L33.515-22.637Q33.504-22.567 33.455-22.518Q33.406-22.469 33.332-22.469Q33.175-22.469 33.148-22.637",[1475],[1459,4020,4021],{"transform":3998},[1464,4022],{"d":4023,"fill":1461,"stroke":1461,"className":4024,"style":1560},"M40.232-23.301L37.439-23.301L37.439-23.598Q38.501-23.598 38.501-23.860L38.501-28.028Q38.072-27.813 37.392-27.813L37.392-28.110Q38.411-28.110 38.927-28.621L39.072-28.621Q39.146-28.602 39.165-28.524L39.165-23.860Q39.165-23.598 40.232-23.598",[1475],[1459,4026,4027],{"transform":3998},[1464,4028],{"d":4029,"fill":1461,"stroke":1461,"className":4030,"style":1560},"M41.712-21.895Q41.712-21.918 41.743-21.965Q42.036-22.227 42.202-22.594Q42.368-22.961 42.368-23.348L42.368-23.406Q42.240-23.301 42.072-23.301Q41.880-23.301 41.743-23.434Q41.607-23.567 41.607-23.766Q41.607-23.957 41.743-24.090Q41.880-24.223 42.072-24.223Q42.372-24.223 42.497-23.953Q42.622-23.684 42.622-23.348Q42.622-22.899 42.441-22.485Q42.259-22.071 41.919-21.774Q41.896-21.750 41.857-21.750Q41.810-21.750 41.761-21.795Q41.712-21.840 41.712-21.895",[1475],[1459,4032,4033],{"transform":3998},[1464,4034],{"d":4035,"fill":1461,"stroke":1461,"className":4036,"style":1560},"M45.969-22.180Q45.969-22.375 46.105-22.522Q46.242-22.668 46.434-22.668Q46.570-22.668 46.666-22.582Q46.762-22.496 46.762-22.363Q46.762-22.242 46.687-22.123Q46.613-22.004 46.508-21.949Q46.613-21.926 46.730-21.926Q46.961-21.926 47.164-22.074Q47.367-22.223 47.504-22.449Q47.641-22.676 47.699-22.910L48.449-25.918Q48.488-26.074 48.488-26.211Q48.488-26.360 48.436-26.467Q48.383-26.574 48.250-26.574Q48.012-26.574 47.801-26.420Q47.590-26.266 47.436-26.033Q47.281-25.801 47.180-25.547Q47.164-25.500 47.105-25.500L47.004-25.500Q46.969-25.500 46.941-25.535Q46.914-25.571 46.914-25.598L46.914-25.629Q47.031-25.922 47.230-26.201Q47.430-26.481 47.693-26.655Q47.957-26.828 48.266-26.828Q48.488-26.828 48.682-26.737Q48.875-26.645 48.990-26.473Q49.105-26.301 49.105-26.078Q49.105-26.008 49.074-25.860L48.320-22.852Q48.262-22.598 48.100-22.379Q47.937-22.160 47.721-22.002Q47.504-21.844 47.236-21.756Q46.969-21.668 46.715-21.668Q46.426-21.668 46.197-21.793Q45.969-21.918 45.969-22.180M48.609-28.141Q48.609-28.321 48.754-28.459Q48.898-28.598 49.082-28.598Q49.211-28.598 49.307-28.510Q49.402-28.422 49.402-28.285Q49.402-28.110 49.258-27.969Q49.113-27.828 48.937-27.828Q48.805-27.828 48.707-27.920Q48.609-28.012 48.609-28.141",[1475],[1459,4038,4039],{"transform":3998},[1464,4040],{"d":4041,"fill":1461,"stroke":1461,"className":4042,"style":2638},"M50.059-22.038Q50.059-22.074 50.065-22.100L50.917-25.495Q50.941-25.598 50.947-25.651Q50.947-25.730 50.557-25.730Q50.522-25.730 50.499-25.764Q50.475-25.797 50.475-25.832Q50.499-25.923 50.510-25.951Q50.522-25.979 50.575-25.988L51.451-26.052L51.477-26.052Q51.547-26.026 51.547-25.950L51.067-24.031Q51.269-24.259 51.528-24.397Q51.788-24.535 52.069-24.535Q52.306-24.535 52.497-24.464Q52.687-24.394 52.801-24.236Q52.916-24.077 52.916-23.840Q52.916-23.603 52.807-23.281Q52.699-22.958 52.520-22.501Q52.467-22.384 52.467-22.249Q52.467-22.044 52.611-22.044Q52.778-22.044 52.916-22.160Q53.053-22.276 53.147-22.453Q53.241-22.630 53.276-22.783Q53.285-22.826 53.343-22.838L53.437-22.838Q53.516-22.812 53.516-22.753Q53.516-22.747 53.510-22.718Q53.425-22.372 53.176-22.101Q52.927-21.830 52.599-21.830Q52.347-21.830 52.161-21.970Q51.975-22.109 51.975-22.352Q51.975-22.463 52.022-22.566Q52.195-23.005 52.306-23.342Q52.417-23.679 52.417-23.916Q52.417-24.101 52.330-24.209Q52.242-24.318 52.057-24.318Q51.676-24.318 51.392-24.054Q51.108-23.790 50.906-23.389L50.575-22.074Q50.548-21.971 50.469-21.901Q50.390-21.830 50.282-21.830Q50.191-21.830 50.125-21.889Q50.059-21.948 50.059-22.038M54.650-22.352Q54.650-22.466 54.700-22.566L55.215-23.864Q55.268-24.001 55.268-24.116Q55.268-24.318 55.119-24.318Q54.955-24.318 54.818-24.202Q54.682-24.086 54.593-23.915Q54.503-23.743 54.465-23.582Q54.445-23.544 54.392-23.527L54.295-23.527Q54.225-23.547 54.225-23.612Q54.225-23.618 54.231-23.647Q54.319-23.990 54.563-24.262Q54.808-24.535 55.130-24.535Q55.289-24.535 55.434-24.474Q55.579-24.414 55.666-24.296Q55.754-24.177 55.754-24.013Q55.754-23.890 55.713-23.796L55.198-22.501Q55.142-22.387 55.142-22.249Q55.142-22.044 55.286-22.044Q55.453-22.044 55.589-22.160Q55.725-22.276 55.816-22.446Q55.907-22.616 55.948-22.783Q55.968-22.815 56.012-22.838L56.109-22.838Q56.188-22.809 56.188-22.753Q56.188-22.747 56.179-22.718Q56.129-22.507 56.002-22.301Q55.874-22.094 55.684-21.962Q55.494-21.830 55.274-21.830Q55.028-21.830 54.839-21.970Q54.650-22.109 54.650-22.352M55.359-25.525Q55.359-25.665 55.469-25.769Q55.579-25.873 55.719-25.873Q55.822-25.873 55.896-25.802Q55.971-25.730 55.971-25.627Q55.971-25.487 55.860-25.383Q55.749-25.279 55.611-25.279Q55.508-25.279 55.434-25.353Q55.359-25.428 55.359-25.525",[1475],[1459,4044,4045],{"transform":3998},[1464,4046],{"d":4047,"fill":1461,"stroke":1461,"className":4048,"style":1560},"M58.407-21.301L57.232-21.301L57.232-21.668L58.040-21.668L58.040-28.934L57.232-28.934L57.232-29.301L58.407-29.301",[1475],[1459,4050,4051,4058,4064],{"stroke":1466,"fontSize":1552},[1459,4052,4054],{"transform":4053},"translate(-72.907 19.85)",[1464,4055],{"d":4056,"fill":1461,"stroke":1461,"className":4057,"style":1560},"M10.918-25.028Q10.918-25.524 11.168-25.949Q11.418-26.375 11.838-26.621Q12.258-26.867 12.758-26.867Q13.297-26.867 13.688-26.742Q14.078-26.617 14.078-26.203Q14.078-26.098 14.028-26.006Q13.977-25.914 13.885-25.863Q13.793-25.813 13.684-25.813Q13.578-25.813 13.487-25.863Q13.395-25.914 13.344-26.006Q13.293-26.098 13.293-26.203Q13.293-26.426 13.461-26.531Q13.239-26.590 12.766-26.590Q12.469-26.590 12.254-26.451Q12.039-26.313 11.908-26.082Q11.778-25.852 11.719-25.582Q11.660-25.313 11.660-25.028Q11.660-24.633 11.793-24.283Q11.926-23.934 12.198-23.717Q12.469-23.500 12.867-23.500Q13.242-23.500 13.518-23.717Q13.793-23.934 13.895-24.293Q13.910-24.356 13.973-24.356L14.078-24.356Q14.114-24.356 14.139-24.328Q14.164-24.301 14.164-24.262L14.164-24.238Q14.032-23.758 13.647-23.490Q13.262-23.223 12.758-23.223Q12.395-23.223 12.061-23.360Q11.727-23.496 11.467-23.746Q11.207-23.996 11.063-24.332Q10.918-24.668 10.918-25.028M14.750-24.133Q14.750-24.617 15.153-24.912Q15.555-25.207 16.106-25.326Q16.657-25.446 17.149-25.446L17.149-25.735Q17.149-25.961 17.033-26.168Q16.918-26.375 16.721-26.494Q16.524-26.613 16.293-26.613Q15.867-26.613 15.582-26.508Q15.653-26.481 15.700-26.426Q15.746-26.371 15.772-26.301Q15.797-26.231 15.797-26.156Q15.797-26.051 15.746-25.959Q15.696-25.867 15.604-25.817Q15.512-25.766 15.407-25.766Q15.301-25.766 15.209-25.817Q15.117-25.867 15.067-25.959Q15.016-26.051 15.016-26.156Q15.016-26.574 15.405-26.721Q15.793-26.867 16.293-26.867Q16.625-26.867 16.979-26.737Q17.332-26.606 17.561-26.352Q17.789-26.098 17.789-25.750L17.789-23.949Q17.789-23.817 17.862-23.707Q17.934-23.598 18.063-23.598Q18.188-23.598 18.256-23.703Q18.325-23.809 18.325-23.949L18.325-24.461L18.606-24.461L18.606-23.949Q18.606-23.746 18.489-23.588Q18.371-23.430 18.190-23.346Q18.008-23.262 17.805-23.262Q17.575-23.262 17.422-23.434Q17.270-23.606 17.239-23.836Q17.078-23.555 16.770-23.389Q16.461-23.223 16.110-23.223Q15.598-23.223 15.174-23.446Q14.750-23.668 14.750-24.133M15.438-24.133Q15.438-23.848 15.664-23.662Q15.891-23.477 16.184-23.477Q16.430-23.477 16.655-23.594Q16.879-23.711 17.014-23.914Q17.149-24.117 17.149-24.371L17.149-25.203Q16.883-25.203 16.598-25.149Q16.313-25.094 16.041-24.965Q15.770-24.836 15.604-24.629Q15.438-24.422 15.438-24.133M20.828-23.301L18.973-23.301L18.973-23.598Q19.246-23.598 19.414-23.645Q19.582-23.692 19.582-23.860L19.582-25.996Q19.582-26.211 19.520-26.307Q19.457-26.403 19.338-26.424Q19.219-26.446 18.973-26.446L18.973-26.742L20.164-26.828L20.164-26.094Q20.278-26.309 20.471-26.477Q20.664-26.645 20.903-26.737Q21.141-26.828 21.395-26.828Q22.563-26.828 22.563-25.750L22.563-23.860Q22.563-23.692 22.733-23.645Q22.903-23.598 23.172-23.598L23.172-23.301L21.317-23.301L21.317-23.598Q21.590-23.598 21.758-23.645Q21.926-23.692 21.926-23.860L21.926-25.735Q21.926-26.117 21.805-26.346Q21.684-26.574 21.332-26.574Q21.020-26.574 20.766-26.412Q20.512-26.250 20.366-25.981Q20.219-25.711 20.219-25.414L20.219-23.860Q20.219-23.692 20.389-23.645Q20.559-23.598 20.828-23.598L20.828-23.301M25.434-23.223Q24.953-23.223 24.545-23.467Q24.137-23.711 23.899-24.125Q23.660-24.539 23.660-25.028Q23.660-25.520 23.918-25.936Q24.176-26.352 24.608-26.590Q25.039-26.828 25.532-26.828Q26.153-26.828 26.602-26.391L26.602-28.020Q26.602-28.235 26.539-28.330Q26.477-28.426 26.360-28.447Q26.242-28.469 25.996-28.469L25.996-28.766L27.219-28.852L27.219-24.043Q27.219-23.832 27.282-23.737Q27.344-23.641 27.461-23.619Q27.578-23.598 27.828-23.598L27.828-23.301L26.578-23.223L26.578-23.707Q26.114-23.223 25.434-23.223M25.500-23.477Q25.840-23.477 26.133-23.668Q26.426-23.860 26.578-24.156L26.578-25.988Q26.430-26.262 26.168-26.418Q25.907-26.574 25.594-26.574Q24.969-26.574 24.686-26.127Q24.403-25.680 24.403-25.020Q24.403-24.375 24.655-23.926Q24.907-23.477 25.500-23.477M30.196-23.301L28.418-23.301L28.418-23.598Q28.692-23.598 28.860-23.645Q29.028-23.692 29.028-23.860L29.028-25.996Q29.028-26.211 28.971-26.307Q28.914-26.403 28.801-26.424Q28.688-26.446 28.442-26.446L28.442-26.742L29.641-26.828L29.641-23.860Q29.641-23.692 29.787-23.645Q29.934-23.598 30.196-23.598L30.196-23.301M28.754-28.223Q28.754-28.414 28.889-28.545Q29.024-28.676 29.219-28.676Q29.340-28.676 29.444-28.613Q29.547-28.551 29.610-28.447Q29.672-28.344 29.672-28.223Q29.672-28.028 29.541-27.893Q29.410-27.758 29.219-27.758Q29.020-27.758 28.887-27.891Q28.754-28.024 28.754-28.223M32.512-23.223Q32.032-23.223 31.623-23.467Q31.215-23.711 30.977-24.125Q30.739-24.539 30.739-25.028Q30.739-25.520 30.996-25.936Q31.254-26.352 31.686-26.590Q32.117-26.828 32.610-26.828Q33.231-26.828 33.680-26.391L33.680-28.020Q33.680-28.235 33.617-28.330Q33.555-28.426 33.438-28.447Q33.321-28.469 33.075-28.469L33.075-28.766L34.297-28.852L34.297-24.043Q34.297-23.832 34.360-23.737Q34.422-23.641 34.539-23.619Q34.657-23.598 34.907-23.598L34.907-23.301L33.657-23.223L33.657-23.707Q33.192-23.223 32.512-23.223M32.578-23.477Q32.918-23.477 33.211-23.668Q33.504-23.860 33.657-24.156L33.657-25.988Q33.508-26.262 33.246-26.418Q32.985-26.574 32.672-26.574Q32.047-26.574 31.764-26.127Q31.481-25.680 31.481-25.020Q31.481-24.375 31.733-23.926Q31.985-23.477 32.578-23.477M35.512-24.133Q35.512-24.617 35.914-24.912Q36.317-25.207 36.867-25.326Q37.418-25.446 37.910-25.446L37.910-25.735Q37.910-25.961 37.795-26.168Q37.680-26.375 37.483-26.494Q37.285-26.613 37.055-26.613Q36.629-26.613 36.344-26.508Q36.414-26.481 36.461-26.426Q36.508-26.371 36.533-26.301Q36.559-26.231 36.559-26.156Q36.559-26.051 36.508-25.959Q36.457-25.867 36.366-25.817Q36.274-25.766 36.168-25.766Q36.063-25.766 35.971-25.817Q35.879-25.867 35.828-25.959Q35.778-26.051 35.778-26.156Q35.778-26.574 36.166-26.721Q36.555-26.867 37.055-26.867Q37.387-26.867 37.741-26.737Q38.094-26.606 38.323-26.352Q38.551-26.098 38.551-25.750L38.551-23.949Q38.551-23.817 38.623-23.707Q38.696-23.598 38.825-23.598Q38.950-23.598 39.018-23.703Q39.086-23.809 39.086-23.949L39.086-24.461L39.367-24.461L39.367-23.949Q39.367-23.746 39.250-23.588Q39.133-23.430 38.951-23.346Q38.770-23.262 38.567-23.262Q38.336-23.262 38.184-23.434Q38.032-23.606 38-23.836Q37.840-23.555 37.532-23.389Q37.223-23.223 36.871-23.223Q36.360-23.223 35.936-23.446Q35.512-23.668 35.512-24.133M36.200-24.133Q36.200-23.848 36.426-23.662Q36.653-23.477 36.946-23.477Q37.192-23.477 37.416-23.594Q37.641-23.711 37.776-23.914Q37.910-24.117 37.910-24.371L37.910-25.203Q37.645-25.203 37.360-25.149Q37.075-25.094 36.803-24.965Q36.532-24.836 36.366-24.629Q36.200-24.422 36.200-24.133M40.285-24.262L40.285-26.453L39.582-26.453L39.582-26.707Q39.938-26.707 40.180-26.940Q40.422-27.172 40.533-27.520Q40.645-27.867 40.645-28.223L40.926-28.223L40.926-26.750L42.102-26.750L42.102-26.453L40.926-26.453L40.926-24.278Q40.926-23.957 41.045-23.729Q41.164-23.500 41.446-23.500Q41.625-23.500 41.742-23.623Q41.860-23.746 41.912-23.926Q41.965-24.106 41.965-24.278L41.965-24.750L42.246-24.750L42.246-24.262Q42.246-24.008 42.141-23.768Q42.035-23.528 41.838-23.375Q41.641-23.223 41.383-23.223Q41.067-23.223 40.815-23.346Q40.563-23.469 40.424-23.703Q40.285-23.938 40.285-24.262M42.965-25.055Q42.965-25.535 43.198-25.951Q43.430-26.367 43.840-26.617Q44.250-26.867 44.727-26.867Q45.457-26.867 45.856-26.426Q46.254-25.985 46.254-25.254Q46.254-25.149 46.160-25.125L43.711-25.125L43.711-25.055Q43.711-24.645 43.832-24.289Q43.953-23.934 44.225-23.717Q44.496-23.500 44.926-23.500Q45.289-23.500 45.586-23.729Q45.883-23.957 45.985-24.309Q45.992-24.356 46.078-24.371L46.160-24.371Q46.254-24.344 46.254-24.262Q46.254-24.254 46.246-24.223Q46.184-23.996 46.045-23.813Q45.907-23.629 45.715-23.496Q45.524-23.363 45.305-23.293Q45.086-23.223 44.848-23.223Q44.477-23.223 44.139-23.360Q43.801-23.496 43.533-23.748Q43.266-24 43.116-24.340Q42.965-24.680 42.965-25.055M43.719-25.363L45.680-25.363Q45.680-25.668 45.578-25.959Q45.477-26.250 45.260-26.432Q45.043-26.613 44.727-26.613Q44.426-26.613 44.196-26.426Q43.965-26.238 43.842-25.947Q43.719-25.656 43.719-25.363M46.785-23.309L46.785-24.531Q46.785-24.559 46.817-24.590Q46.848-24.621 46.871-24.621L46.977-24.621Q47.047-24.621 47.063-24.559Q47.125-24.238 47.264-23.998Q47.403-23.758 47.635-23.617Q47.867-23.477 48.176-23.477Q48.414-23.477 48.623-23.537Q48.832-23.598 48.969-23.746Q49.106-23.895 49.106-24.141Q49.106-24.395 48.895-24.561Q48.684-24.727 48.414-24.781L47.793-24.895Q47.387-24.973 47.086-25.229Q46.785-25.485 46.785-25.860Q46.785-26.227 46.987-26.449Q47.188-26.672 47.512-26.770Q47.836-26.867 48.176-26.867Q48.641-26.867 48.938-26.660L49.160-26.844Q49.184-26.867 49.215-26.867L49.266-26.867Q49.297-26.867 49.325-26.840Q49.352-26.813 49.352-26.781L49.352-25.797Q49.352-25.766 49.326-25.737Q49.301-25.707 49.266-25.707L49.160-25.707Q49.125-25.707 49.098-25.735Q49.071-25.762 49.071-25.797Q49.071-26.196 48.819-26.416Q48.567-26.637 48.168-26.637Q47.813-26.637 47.530-26.514Q47.246-26.391 47.246-26.086Q47.246-25.867 47.448-25.735Q47.649-25.602 47.895-25.559L48.520-25.446Q48.950-25.356 49.258-25.059Q49.567-24.762 49.567-24.348Q49.567-23.778 49.168-23.500Q48.770-23.223 48.176-23.223Q47.625-23.223 47.274-23.559L46.977-23.246Q46.953-23.223 46.918-23.223L46.871-23.223Q46.848-23.223 46.817-23.254Q46.785-23.285 46.785-23.309",[1475],[1459,4059,4060],{"transform":4053},[1464,4061],{"d":4062,"fill":1461,"stroke":1461,"className":4063,"style":1560},"M53.154-23.477Q53.158-23.496 53.160-23.510Q53.162-23.524 53.162-23.547L54.315-28.149Q54.354-28.336 54.354-28.363Q54.354-28.469 53.858-28.469Q53.760-28.500 53.760-28.598L53.783-28.699Q53.791-28.746 53.873-28.766L54.979-28.852Q55.029-28.852 55.063-28.822Q55.096-28.793 55.096-28.735L54.272-25.446Q54.565-25.574 55.014-26Q55.463-26.426 55.738-26.627Q56.014-26.828 56.393-26.828Q56.639-26.828 56.799-26.664Q56.959-26.500 56.959-26.254Q56.959-26.031 56.826-25.865Q56.693-25.699 56.483-25.699Q56.350-25.699 56.256-25.783Q56.162-25.867 56.162-26.004Q56.162-26.188 56.293-26.328Q56.424-26.469 56.608-26.469Q56.526-26.574 56.377-26.574Q56.151-26.574 55.912-26.442Q55.674-26.309 55.529-26.178Q55.385-26.047 55.053-25.737Q54.721-25.426 54.568-25.324Q55.768-25.192 55.768-24.469Q55.768-24.352 55.725-24.151Q55.682-23.949 55.682-23.860Q55.682-23.477 55.936-23.477Q56.217-23.477 56.373-23.781Q56.529-24.086 56.623-24.477Q56.658-24.547 56.713-24.547L56.818-24.547Q56.858-24.547 56.881-24.518Q56.904-24.488 56.904-24.453Q56.904-24.438 56.897-24.422Q56.787-23.949 56.547-23.586Q56.307-23.223 55.920-23.223Q55.565-23.223 55.322-23.451Q55.080-23.680 55.080-24.035Q55.080-24.106 55.104-24.242Q55.127-24.379 55.127-24.453Q55.127-24.664 54.979-24.801Q54.830-24.938 54.609-25.006Q54.389-25.074 54.186-25.094L53.783-23.492Q53.752-23.371 53.654-23.297Q53.557-23.223 53.432-23.223Q53.318-23.223 53.236-23.293Q53.154-23.363 53.154-23.477",[1475],[1459,4065,4066],{"transform":4053},[1464,4067],{"d":4068,"fill":1461,"stroke":1461,"className":4069,"style":1560},"M58.071-23.766Q58.071-23.949 58.207-24.086Q58.344-24.223 58.536-24.223Q58.727-24.223 58.860-24.090Q58.993-23.957 58.993-23.766Q58.993-23.567 58.860-23.434Q58.727-23.301 58.536-23.301Q58.344-23.301 58.207-23.438Q58.071-23.574 58.071-23.766M58.071-26.293Q58.071-26.477 58.207-26.613Q58.344-26.750 58.536-26.750Q58.727-26.750 58.860-26.617Q58.993-26.485 58.993-26.293Q58.993-26.094 58.860-25.961Q58.727-25.828 58.536-25.828Q58.344-25.828 58.207-25.965Q58.071-26.102 58.071-26.293",[1475],[1464,4071],{"fill":1466,"d":4072},"M-29.197 2.307h85.359v-17.072h-85.359Z",[1459,4074,4075,4081,4087,4093,4099,4105],{"stroke":1466},[1459,4076,4078],{"transform":4077},"translate(-13.347 19.072)",[1464,4079],{"d":3925,"fill":1461,"stroke":1461,"className":4080,"style":1560},[1475],[1459,4082,4083],{"transform":4077},[1464,4084],{"d":4085,"fill":1461,"stroke":1461,"className":4086,"style":1560},"M13.439-23.477Q13.443-23.496 13.445-23.510Q13.447-23.524 13.447-23.547L14.600-28.149Q14.639-28.336 14.639-28.363Q14.639-28.469 14.143-28.469Q14.045-28.500 14.045-28.598L14.068-28.699Q14.076-28.746 14.158-28.766L15.264-28.852Q15.314-28.852 15.348-28.822Q15.381-28.793 15.381-28.735L14.557-25.446Q14.850-25.574 15.299-26Q15.748-26.426 16.023-26.627Q16.299-26.828 16.678-26.828Q16.924-26.828 17.084-26.664Q17.244-26.500 17.244-26.254Q17.244-26.031 17.111-25.865Q16.978-25.699 16.768-25.699Q16.635-25.699 16.541-25.783Q16.447-25.867 16.447-26.004Q16.447-26.188 16.578-26.328Q16.709-26.469 16.893-26.469Q16.810-26.574 16.662-26.574Q16.435-26.574 16.197-26.442Q15.959-26.309 15.814-26.178Q15.670-26.047 15.338-25.737Q15.006-25.426 14.853-25.324Q16.053-25.192 16.053-24.469Q16.053-24.352 16.010-24.151Q15.967-23.949 15.967-23.860Q15.967-23.477 16.221-23.477Q16.502-23.477 16.658-23.781Q16.814-24.086 16.908-24.477Q16.943-24.547 16.998-24.547L17.103-24.547Q17.143-24.547 17.166-24.518Q17.189-24.488 17.189-24.453Q17.189-24.438 17.182-24.422Q17.072-23.949 16.832-23.586Q16.592-23.223 16.205-23.223Q15.850-23.223 15.607-23.451Q15.365-23.680 15.365-24.035Q15.365-24.106 15.389-24.242Q15.412-24.379 15.412-24.453Q15.412-24.664 15.264-24.801Q15.115-24.938 14.894-25.006Q14.674-25.074 14.471-25.094L14.068-23.492Q14.037-23.371 13.939-23.297Q13.842-23.223 13.717-23.223Q13.603-23.223 13.521-23.293Q13.439-23.363 13.439-23.477",[1475],[1459,4088,4089],{"transform":4077},[1464,4090],{"d":4091,"fill":1461,"stroke":1461,"className":4092,"style":2638},"M17.875-22.405Q17.875-22.408 17.884-22.460Q17.893-22.513 17.893-22.548L18.631-25.495Q18.654-25.598 18.660-25.651Q18.660-25.730 18.271-25.730Q18.233-25.730 18.209-25.764Q18.186-25.797 18.186-25.832Q18.209-25.923 18.219-25.951Q18.230-25.979 18.288-25.988L19.164-26.052Q19.261-26.052 19.261-25.950L18.403-22.525Q18.379-22.446 18.379-22.334Q18.379-22.044 18.587-22.044Q18.778-22.044 18.874-22.260Q18.971-22.475 19.044-22.783Q19.053-22.824 19.109-22.838L19.205-22.838Q19.284-22.812 19.284-22.742Q19.188-22.367 19.029-22.098Q18.871-21.830 18.575-21.830Q18.294-21.830 18.085-21.984Q17.875-22.138 17.875-22.405M20.275-22.897Q20.275-23.330 20.541-23.708Q20.808-24.086 21.231-24.310Q21.654-24.535 22.079-24.535Q22.393-24.535 22.662-24.404Q22.932-24.274 23.090-24.031Q23.248-23.787 23.248-23.468Q23.248-23.137 23.091-22.838Q22.935-22.539 22.671-22.311Q22.407-22.082 22.084-21.956Q21.760-21.830 21.444-21.830Q21.127-21.830 20.859-21.961Q20.591-22.091 20.433-22.333Q20.275-22.575 20.275-22.897M21.455-22.044Q21.836-22.044 22.120-22.295Q22.404-22.545 22.554-22.926Q22.703-23.307 22.703-23.664Q22.703-23.957 22.533-24.138Q22.363-24.318 22.068-24.318Q21.783-24.318 21.548-24.170Q21.312-24.022 21.152-23.783Q20.992-23.544 20.906-23.251Q20.820-22.958 20.820-22.698Q20.820-22.405 20.992-22.224Q21.165-22.044 21.455-22.044",[1475],[1459,4094,4095],{"transform":4077},[1464,4096],{"d":4097,"fill":1461,"stroke":1461,"className":4098,"style":1560},"M24.833-21.895Q24.833-21.918 24.864-21.965Q25.157-22.227 25.323-22.594Q25.489-22.961 25.489-23.348L25.489-23.406Q25.361-23.301 25.193-23.301Q25.001-23.301 24.864-23.434Q24.728-23.567 24.728-23.766Q24.728-23.957 24.864-24.090Q25.001-24.223 25.193-24.223Q25.493-24.223 25.618-23.953Q25.743-23.684 25.743-23.348Q25.743-22.899 25.562-22.485Q25.380-22.071 25.040-21.774Q25.017-21.750 24.978-21.750Q24.931-21.750 24.882-21.795Q24.833-21.840 24.833-21.895",[1475],[1459,4100,4101],{"transform":4077},[1464,4102],{"d":4103,"fill":1461,"stroke":1461,"className":4104,"style":1560},"M29.539-24.606Q29.539-25.028 29.728-25.430Q29.918-25.832 30.244-26.149Q30.570-26.465 30.973-26.647Q31.375-26.828 31.797-26.828Q32.402-26.828 32.803-26.440Q33.203-26.051 33.203-25.446Q33.203-25.031 33.014-24.627Q32.824-24.223 32.498-23.905Q32.172-23.586 31.771-23.405Q31.371-23.223 30.945-23.223Q30.644-23.223 30.389-23.324Q30.133-23.426 29.941-23.613Q29.750-23.801 29.644-24.059Q29.539-24.317 29.539-24.606M30.965-23.477Q31.328-23.477 31.623-23.696Q31.918-23.914 32.117-24.264Q32.316-24.613 32.420-25.004Q32.523-25.395 32.523-25.735Q32.523-26.098 32.324-26.336Q32.125-26.574 31.777-26.574Q31.406-26.574 31.111-26.354Q30.816-26.133 30.615-25.781Q30.414-25.430 30.312-25.035Q30.211-24.641 30.211-24.317Q30.211-23.961 30.410-23.719Q30.609-23.477 30.965-23.477M34.797-21.750L33.195-21.750Q33.160-21.750 33.127-21.791Q33.094-21.832 33.094-21.867L33.125-21.973Q33.156-22.035 33.211-22.043Q33.402-22.043 33.486-22.059Q33.570-22.074 33.623-22.141Q33.676-22.207 33.715-22.348L34.605-25.918Q34.644-26.074 34.644-26.211Q34.644-26.360 34.592-26.467Q34.539-26.574 34.406-26.574Q34.226-26.574 34.107-26.405Q33.988-26.235 33.932-26.049Q33.875-25.863 33.805-25.574Q33.793-25.500 33.723-25.500L33.621-25.500Q33.586-25.500 33.558-25.535Q33.531-25.571 33.531-25.598L33.531-25.629Q33.617-25.961 33.711-26.203Q33.805-26.446 33.980-26.637Q34.156-26.828 34.422-26.828Q34.703-26.828 34.933-26.684Q35.164-26.539 35.230-26.285Q35.750-26.828 36.308-26.828Q36.844-26.828 37.164-26.444Q37.484-26.059 37.484-25.516Q37.484-24.992 37.203-24.453Q36.922-23.914 36.455-23.569Q35.988-23.223 35.453-23.223Q35.215-23.223 35.014-23.340Q34.812-23.457 34.683-23.668L34.340-22.293Q34.328-22.254 34.308-22.133Q34.308-22.043 34.812-22.043Q34.918-22.012 34.918-21.918L34.883-21.813Q34.851-21.758 34.797-21.750M35.238-25.867L34.805-24.141Q34.863-23.867 35.033-23.672Q35.203-23.477 35.469-23.477Q35.805-23.477 36.084-23.768Q36.363-24.059 36.500-24.414Q36.625-24.707 36.726-25.141Q36.828-25.574 36.828-25.852Q36.828-26.137 36.695-26.356Q36.562-26.574 36.293-26.574Q36.082-26.574 35.887-26.473Q35.691-26.371 35.531-26.215Q35.371-26.059 35.238-25.867M38.133-23.973Q38.133-24.082 38.156-24.188L38.726-26.453L37.879-26.453Q37.773-26.481 37.773-26.582L37.797-26.684Q37.816-26.735 37.894-26.750L38.797-26.750L39.117-28.012Q39.144-28.141 39.250-28.221Q39.355-28.301 39.484-28.301Q39.594-28.301 39.672-28.227Q39.750-28.153 39.750-28.043Q39.750-27.996 39.742-27.973L39.437-26.750L40.285-26.750Q40.383-26.719 40.383-26.629L40.359-26.524Q40.351-26.473 40.269-26.453L39.367-26.453L38.781-24.133Q38.742-23.887 38.742-23.836Q38.742-23.477 38.988-23.477Q39.351-23.477 39.629-23.793Q39.906-24.110 40.055-24.500Q40.086-24.547 40.133-24.547L40.238-24.547Q40.277-24.547 40.301-24.518Q40.324-24.488 40.324-24.453Q40.324-24.438 40.316-24.422Q40.133-23.938 39.779-23.580Q39.426-23.223 38.973-23.223Q38.629-23.223 38.381-23.430Q38.133-23.637 38.133-23.973",[1475],[1459,4106,4107],{"transform":4077},[1464,4108],{"d":4109,"fill":1461,"stroke":1461,"className":4110,"style":1560},"M42.019-21.301L40.844-21.301L40.844-21.668L41.652-21.668L41.652-28.934L40.844-28.934L40.844-29.301L42.019-29.301",[1475],[1464,4112],{"fill":1466,"d":4113},"M95.995 2.307h85.359v-17.072H95.995Z",[1459,4115,4116,4122,4128,4134,4140],{"stroke":1466},[1459,4117,4119],{"transform":4118},"translate(111.374 19.072)",[1464,4120],{"d":3925,"fill":1461,"stroke":1461,"className":4121,"style":1560},[1475],[1459,4123,4124],{"transform":4118},[1464,4125],{"d":4126,"fill":1461,"stroke":1461,"className":4127,"style":1560},"M13.334-24.606Q13.334-25.028 13.523-25.430Q13.713-25.832 14.039-26.149Q14.365-26.465 14.768-26.647Q15.170-26.828 15.592-26.828Q16.197-26.828 16.598-26.440Q16.998-26.051 16.998-25.446Q16.998-25.031 16.809-24.627Q16.619-24.223 16.293-23.905Q15.967-23.586 15.566-23.405Q15.166-23.223 14.740-23.223Q14.439-23.223 14.184-23.324Q13.928-23.426 13.736-23.613Q13.545-23.801 13.439-24.059Q13.334-24.317 13.334-24.606M14.760-23.477Q15.123-23.477 15.418-23.696Q15.713-23.914 15.912-24.264Q16.111-24.613 16.215-25.004Q16.318-25.395 16.318-25.735Q16.318-26.098 16.119-26.336Q15.920-26.574 15.572-26.574Q15.201-26.574 14.906-26.354Q14.611-26.133 14.410-25.781Q14.209-25.430 14.107-25.035Q14.006-24.641 14.006-24.317Q14.006-23.961 14.205-23.719Q14.404-23.477 14.760-23.477M18.592-21.750L16.990-21.750Q16.955-21.750 16.922-21.791Q16.889-21.832 16.889-21.867L16.920-21.973Q16.951-22.035 17.006-22.043Q17.197-22.043 17.281-22.059Q17.365-22.074 17.418-22.141Q17.471-22.207 17.510-22.348L18.400-25.918Q18.439-26.074 18.439-26.211Q18.439-26.360 18.387-26.467Q18.334-26.574 18.201-26.574Q18.021-26.574 17.902-26.405Q17.783-26.235 17.727-26.049Q17.670-25.863 17.600-25.574Q17.588-25.500 17.518-25.500L17.416-25.500Q17.381-25.500 17.353-25.535Q17.326-25.571 17.326-25.598L17.326-25.629Q17.412-25.961 17.506-26.203Q17.600-26.446 17.775-26.637Q17.951-26.828 18.217-26.828Q18.498-26.828 18.728-26.684Q18.959-26.539 19.025-26.285Q19.545-26.828 20.103-26.828Q20.639-26.828 20.959-26.444Q21.279-26.059 21.279-25.516Q21.279-24.992 20.998-24.453Q20.717-23.914 20.250-23.569Q19.783-23.223 19.248-23.223Q19.010-23.223 18.809-23.340Q18.607-23.457 18.478-23.668L18.135-22.293Q18.123-22.254 18.103-22.133Q18.103-22.043 18.607-22.043Q18.713-22.012 18.713-21.918L18.678-21.813Q18.646-21.758 18.592-21.750M19.033-25.867L18.600-24.141Q18.658-23.867 18.828-23.672Q18.998-23.477 19.264-23.477Q19.600-23.477 19.879-23.768Q20.158-24.059 20.295-24.414Q20.420-24.707 20.521-25.141Q20.623-25.574 20.623-25.852Q20.623-26.137 20.490-26.356Q20.357-26.574 20.088-26.574Q19.877-26.574 19.682-26.473Q19.486-26.371 19.326-26.215Q19.166-26.059 19.033-25.867M21.928-23.973Q21.928-24.082 21.951-24.188L22.521-26.453L21.674-26.453Q21.568-26.481 21.568-26.582L21.592-26.684Q21.611-26.735 21.689-26.750L22.592-26.750L22.912-28.012Q22.939-28.141 23.045-28.221Q23.150-28.301 23.279-28.301Q23.389-28.301 23.467-28.227Q23.545-28.153 23.545-28.043Q23.545-27.996 23.537-27.973L23.232-26.750L24.080-26.750Q24.178-26.719 24.178-26.629L24.154-26.524Q24.146-26.473 24.064-26.453L23.162-26.453L22.576-24.133Q22.537-23.887 22.537-23.836Q22.537-23.477 22.783-23.477Q23.146-23.477 23.424-23.793Q23.701-24.110 23.850-24.500Q23.881-24.547 23.928-24.547L24.033-24.547Q24.072-24.547 24.096-24.518Q24.119-24.488 24.119-24.453Q24.119-24.438 24.111-24.422Q23.928-23.938 23.574-23.580Q23.221-23.223 22.768-23.223Q22.424-23.223 22.176-23.430Q21.928-23.637 21.928-23.973M25.264-21.895Q25.264-21.918 25.295-21.965Q25.588-22.227 25.754-22.594Q25.920-22.961 25.920-23.348L25.920-23.406Q25.791-23.301 25.623-23.301Q25.432-23.301 25.295-23.434Q25.158-23.567 25.158-23.766Q25.158-23.957 25.295-24.090Q25.432-24.223 25.623-24.223Q25.924-24.223 26.049-23.953Q26.174-23.684 26.174-23.348Q26.174-22.899 25.992-22.485Q25.810-22.071 25.471-21.774Q25.447-21.750 25.408-21.750Q25.361-21.750 25.312-21.795Q25.264-21.840 25.264-21.895",[1475],[1459,4129,4130],{"transform":4118},[1464,4131],{"d":4132,"fill":1461,"stroke":1461,"className":4133,"style":1560},"M30.090-23.477Q30.094-23.496 30.096-23.510Q30.098-23.524 30.098-23.547L31.251-28.149Q31.290-28.336 31.290-28.363Q31.290-28.469 30.794-28.469Q30.696-28.500 30.696-28.598L30.719-28.699Q30.727-28.746 30.809-28.766L31.915-28.852Q31.965-28.852 31.999-28.822Q32.032-28.793 32.032-28.735L31.208-25.446Q31.501-25.574 31.950-26Q32.399-26.426 32.674-26.627Q32.950-26.828 33.329-26.828Q33.575-26.828 33.735-26.664Q33.895-26.500 33.895-26.254Q33.895-26.031 33.762-25.865Q33.629-25.699 33.419-25.699Q33.286-25.699 33.192-25.783Q33.098-25.867 33.098-26.004Q33.098-26.188 33.229-26.328Q33.360-26.469 33.544-26.469Q33.462-26.574 33.313-26.574Q33.087-26.574 32.848-26.442Q32.610-26.309 32.465-26.178Q32.321-26.047 31.989-25.737Q31.657-25.426 31.504-25.324Q32.704-25.192 32.704-24.469Q32.704-24.352 32.661-24.151Q32.618-23.949 32.618-23.860Q32.618-23.477 32.872-23.477Q33.153-23.477 33.309-23.781Q33.465-24.086 33.559-24.477Q33.594-24.547 33.649-24.547L33.754-24.547Q33.794-24.547 33.817-24.518Q33.840-24.488 33.840-24.453Q33.840-24.438 33.833-24.422Q33.723-23.949 33.483-23.586Q33.243-23.223 32.856-23.223Q32.501-23.223 32.258-23.451Q32.016-23.680 32.016-24.035Q32.016-24.106 32.040-24.242Q32.063-24.379 32.063-24.453Q32.063-24.664 31.915-24.801Q31.766-24.938 31.545-25.006Q31.325-25.074 31.122-25.094L30.719-23.492Q30.688-23.371 30.590-23.297Q30.493-23.223 30.368-23.223Q30.254-23.223 30.172-23.293Q30.090-23.363 30.090-23.477",[1475],[1459,4135,4136],{"transform":4118},[1464,4137],{"d":4138,"fill":1461,"stroke":1461,"className":4139,"style":2638},"M34.614-22.038Q34.614-22.074 34.620-22.100L35.472-25.495Q35.496-25.598 35.502-25.651Q35.502-25.730 35.112-25.730Q35.077-25.730 35.054-25.764Q35.030-25.797 35.030-25.832Q35.054-25.923 35.065-25.951Q35.077-25.979 35.130-25.988L36.006-26.052L36.032-26.052Q36.102-26.026 36.102-25.950L35.622-24.031Q35.824-24.259 36.083-24.397Q36.343-24.535 36.624-24.535Q36.861-24.535 37.052-24.464Q37.242-24.394 37.356-24.236Q37.471-24.077 37.471-23.840Q37.471-23.603 37.362-23.281Q37.254-22.958 37.075-22.501Q37.022-22.384 37.022-22.249Q37.022-22.044 37.166-22.044Q37.333-22.044 37.471-22.160Q37.608-22.276 37.702-22.453Q37.796-22.630 37.831-22.783Q37.840-22.826 37.898-22.838L37.992-22.838Q38.071-22.812 38.071-22.753Q38.071-22.747 38.065-22.718Q37.980-22.372 37.731-22.101Q37.482-21.830 37.154-21.830Q36.902-21.830 36.716-21.970Q36.530-22.109 36.530-22.352Q36.530-22.463 36.577-22.566Q36.750-23.005 36.861-23.342Q36.972-23.679 36.972-23.916Q36.972-24.101 36.885-24.209Q36.797-24.318 36.612-24.318Q36.231-24.318 35.947-24.054Q35.663-23.790 35.461-23.389L35.130-22.074Q35.103-21.971 35.024-21.901Q34.945-21.830 34.837-21.830Q34.746-21.830 34.680-21.889Q34.614-21.948 34.614-22.038M39.205-22.352Q39.205-22.466 39.255-22.566L39.770-23.864Q39.823-24.001 39.823-24.116Q39.823-24.318 39.674-24.318Q39.510-24.318 39.373-24.202Q39.237-24.086 39.148-23.915Q39.058-23.743 39.020-23.582Q39-23.544 38.947-23.527L38.850-23.527Q38.780-23.547 38.780-23.612Q38.780-23.618 38.786-23.647Q38.874-23.990 39.118-24.262Q39.363-24.535 39.685-24.535Q39.844-24.535 39.989-24.474Q40.134-24.414 40.221-24.296Q40.309-24.177 40.309-24.013Q40.309-23.890 40.268-23.796L39.753-22.501Q39.697-22.387 39.697-22.249Q39.697-22.044 39.841-22.044Q40.008-22.044 40.144-22.160Q40.280-22.276 40.371-22.446Q40.462-22.616 40.503-22.783Q40.523-22.815 40.567-22.838L40.664-22.838Q40.743-22.809 40.743-22.753Q40.743-22.747 40.734-22.718Q40.684-22.507 40.557-22.301Q40.429-22.094 40.239-21.962Q40.049-21.830 39.829-21.830Q39.583-21.830 39.394-21.970Q39.205-22.109 39.205-22.352M39.914-25.525Q39.914-25.665 40.024-25.769Q40.134-25.873 40.274-25.873Q40.377-25.873 40.451-25.802Q40.526-25.730 40.526-25.627Q40.526-25.487 40.415-25.383Q40.304-25.279 40.166-25.279Q40.063-25.279 39.989-25.353Q39.914-25.428 39.914-25.525",[1475],[1459,4141,4142],{"transform":4118},[1464,4143],{"d":4144,"fill":1461,"stroke":1461,"className":4145,"style":1560},"M42.962-21.301L41.787-21.301L41.787-21.668L42.595-21.668L42.595-28.934L41.787-28.934L41.787-29.301L42.962-29.301",[1475],[1459,4147,4148],{"fill":1489,"stroke":1489},[1459,4149,4151],{"transform":4150},"translate(59.713 18.754)",[1464,4152],{"d":4153,"fill":1489,"stroke":1489,"className":4154,"style":1560},"M10.973-24.606Q10.973-25.028 11.162-25.430Q11.352-25.832 11.678-26.149Q12.004-26.465 12.407-26.647Q12.809-26.828 13.231-26.828Q13.836-26.828 14.237-26.440Q14.637-26.051 14.637-25.446Q14.637-25.031 14.448-24.627Q14.258-24.223 13.932-23.905Q13.606-23.586 13.205-23.405Q12.805-23.223 12.379-23.223Q12.078-23.223 11.823-23.324Q11.567-23.426 11.375-23.613Q11.184-23.801 11.078-24.059Q10.973-24.317 10.973-24.606M12.399-23.477Q12.762-23.477 13.057-23.696Q13.352-23.914 13.551-24.264Q13.750-24.613 13.854-25.004Q13.957-25.395 13.957-25.735Q13.957-26.098 13.758-26.336Q13.559-26.574 13.211-26.574Q12.840-26.574 12.545-26.354Q12.250-26.133 12.049-25.781Q11.848-25.430 11.746-25.035Q11.645-24.641 11.645-24.317Q11.645-23.961 11.844-23.719Q12.043-23.477 12.399-23.477M16.231-21.750L14.629-21.750Q14.594-21.750 14.561-21.791Q14.528-21.832 14.528-21.867L14.559-21.973Q14.590-22.035 14.645-22.043Q14.836-22.043 14.920-22.059Q15.004-22.074 15.057-22.141Q15.110-22.207 15.149-22.348L16.039-25.918Q16.078-26.074 16.078-26.211Q16.078-26.360 16.026-26.467Q15.973-26.574 15.840-26.574Q15.660-26.574 15.541-26.405Q15.422-26.235 15.366-26.049Q15.309-25.863 15.239-25.574Q15.227-25.500 15.157-25.500L15.055-25.500Q15.020-25.500 14.992-25.535Q14.965-25.571 14.965-25.598L14.965-25.629Q15.051-25.961 15.145-26.203Q15.239-26.446 15.414-26.637Q15.590-26.828 15.856-26.828Q16.137-26.828 16.367-26.684Q16.598-26.539 16.664-26.285Q17.184-26.828 17.742-26.828Q18.278-26.828 18.598-26.444Q18.918-26.059 18.918-25.516Q18.918-24.992 18.637-24.453Q18.356-23.914 17.889-23.569Q17.422-23.223 16.887-23.223Q16.649-23.223 16.448-23.340Q16.246-23.457 16.117-23.668L15.774-22.293Q15.762-22.254 15.742-22.133Q15.742-22.043 16.246-22.043Q16.352-22.012 16.352-21.918L16.317-21.813Q16.285-21.758 16.231-21.750M16.672-25.867L16.239-24.141Q16.297-23.867 16.467-23.672Q16.637-23.477 16.903-23.477Q17.239-23.477 17.518-23.768Q17.797-24.059 17.934-24.414Q18.059-24.707 18.160-25.141Q18.262-25.574 18.262-25.852Q18.262-26.137 18.129-26.356Q17.996-26.574 17.727-26.574Q17.516-26.574 17.321-26.473Q17.125-26.371 16.965-26.215Q16.805-26.059 16.672-25.867M19.567-23.973Q19.567-24.082 19.590-24.188L20.160-26.453L19.313-26.453Q19.207-26.481 19.207-26.582L19.231-26.684Q19.250-26.735 19.328-26.750L20.231-26.750L20.551-28.012Q20.578-28.141 20.684-28.221Q20.789-28.301 20.918-28.301Q21.028-28.301 21.106-28.227Q21.184-28.153 21.184-28.043Q21.184-27.996 21.176-27.973L20.871-26.750L21.719-26.750Q21.817-26.719 21.817-26.629L21.793-26.524Q21.785-26.473 21.703-26.453L20.801-26.453L20.215-24.133Q20.176-23.887 20.176-23.836Q20.176-23.477 20.422-23.477Q20.785-23.477 21.063-23.793Q21.340-24.110 21.489-24.500Q21.520-24.547 21.567-24.547L21.672-24.547Q21.711-24.547 21.735-24.518Q21.758-24.488 21.758-24.453Q21.758-24.438 21.750-24.422Q21.567-23.938 21.213-23.580Q20.860-23.223 20.407-23.223Q20.063-23.223 19.815-23.430Q19.567-23.637 19.567-23.973",[1475],[1459,4156,4158,4161,4164],{"fill":4157,"stroke":4157,"style":1547},"var(--tk-warn)",[1464,4159],{"fill":1466,"d":4160},"M76.078-53.998v37.203",[1464,4162],{"stroke":1466,"d":4163},"m76.078-14.195 2.08-4.16-2.08 1.56-2.08-1.56",[1459,4165,4166,4173,4179,4185,4191],{"fill":4157,"stroke":1466,"fontSize":1552},[1459,4167,4169],{"transform":4168},"translate(69.174 -8.796)",[1464,4170],{"d":4171,"fill":4157,"stroke":4157,"className":4172,"style":1560},"M10.918-23.309L10.918-24.531Q10.918-24.559 10.950-24.590Q10.981-24.621 11.004-24.621L11.110-24.621Q11.180-24.621 11.196-24.559Q11.258-24.238 11.397-23.998Q11.535-23.758 11.768-23.617Q12-23.477 12.309-23.477Q12.547-23.477 12.756-23.537Q12.965-23.598 13.102-23.746Q13.239-23.895 13.239-24.141Q13.239-24.395 13.028-24.561Q12.817-24.727 12.547-24.781L11.926-24.895Q11.520-24.973 11.219-25.229Q10.918-25.485 10.918-25.860Q10.918-26.227 11.119-26.449Q11.321-26.672 11.645-26.770Q11.969-26.867 12.309-26.867Q12.774-26.867 13.071-26.660L13.293-26.844Q13.317-26.867 13.348-26.867L13.399-26.867Q13.430-26.867 13.457-26.840Q13.485-26.813 13.485-26.781L13.485-25.797Q13.485-25.766 13.459-25.737Q13.434-25.707 13.399-25.707L13.293-25.707Q13.258-25.707 13.231-25.735Q13.203-25.762 13.203-25.797Q13.203-26.196 12.951-26.416Q12.700-26.637 12.301-26.637Q11.946-26.637 11.662-26.514Q11.379-26.391 11.379-26.086Q11.379-25.867 11.580-25.735Q11.782-25.602 12.028-25.559L12.653-25.446Q13.082-25.356 13.391-25.059Q13.700-24.762 13.700-24.348Q13.700-23.778 13.301-23.500Q12.903-23.223 12.309-23.223Q11.758-23.223 11.407-23.559L11.110-23.246Q11.086-23.223 11.051-23.223L11.004-23.223Q10.981-23.223 10.950-23.254Q10.918-23.285 10.918-23.309M14.227-24.996Q14.227-25.500 14.483-25.932Q14.739-26.363 15.174-26.615Q15.610-26.867 16.110-26.867Q16.496-26.867 16.838-26.723Q17.180-26.578 17.442-26.317Q17.703-26.055 17.846-25.719Q17.989-25.383 17.989-24.996Q17.989-24.504 17.725-24.094Q17.461-23.684 17.032-23.453Q16.602-23.223 16.110-23.223Q15.617-23.223 15.184-23.455Q14.750-23.688 14.489-24.096Q14.227-24.504 14.227-24.996M16.110-23.500Q16.567-23.500 16.819-23.723Q17.071-23.946 17.158-24.297Q17.246-24.649 17.246-25.094Q17.246-25.524 17.153-25.862Q17.059-26.199 16.805-26.406Q16.551-26.613 16.110-26.613Q15.461-26.613 15.217-26.197Q14.973-25.781 14.973-25.094Q14.973-24.649 15.061-24.297Q15.149-23.946 15.401-23.723Q15.653-23.500 16.110-23.500M20.387-23.301L18.555-23.301L18.555-23.598Q18.828-23.598 18.996-23.645Q19.164-23.692 19.164-23.860L19.164-28.020Q19.164-28.235 19.102-28.330Q19.039-28.426 18.920-28.447Q18.801-28.469 18.555-28.469L18.555-28.766L19.778-28.852L19.778-23.860Q19.778-23.692 19.946-23.645Q20.114-23.598 20.387-23.598L20.387-23.301M22.633-23.332L21.410-26.188Q21.328-26.363 21.184-26.408Q21.039-26.453 20.770-26.453L20.770-26.750L22.481-26.750L22.481-26.453Q22.059-26.453 22.059-26.270Q22.059-26.235 22.075-26.188L23.020-23.996L23.860-25.973Q23.899-26.051 23.899-26.141Q23.899-26.281 23.793-26.367Q23.688-26.453 23.547-26.453L23.547-26.750L24.899-26.750L24.899-26.453Q24.375-26.453 24.160-25.973L23.035-23.332Q22.973-23.223 22.867-23.223L22.801-23.223Q22.688-23.223 22.633-23.332",[1475],[1459,4174,4175],{"transform":4168},[1464,4176],{"d":4177,"fill":4157,"stroke":4157,"className":4178,"style":1560},"M25.089-25.055Q25.089-25.535 25.322-25.951Q25.554-26.367 25.964-26.617Q26.374-26.867 26.851-26.867Q27.581-26.867 27.980-26.426Q28.378-25.985 28.378-25.254Q28.378-25.149 28.285-25.125L25.835-25.125L25.835-25.055Q25.835-24.645 25.956-24.289Q26.078-23.934 26.349-23.717Q26.621-23.500 27.050-23.500Q27.413-23.500 27.710-23.729Q28.007-23.957 28.109-24.309Q28.117-24.356 28.203-24.371L28.285-24.371Q28.378-24.344 28.378-24.262Q28.378-24.254 28.371-24.223Q28.308-23.996 28.169-23.813Q28.031-23.629 27.839-23.496Q27.648-23.363 27.429-23.293Q27.210-23.223 26.972-23.223Q26.601-23.223 26.263-23.360Q25.925-23.496 25.658-23.748Q25.390-24 25.240-24.340Q25.089-24.680 25.089-25.055M25.843-25.363L27.804-25.363Q27.804-25.668 27.703-25.959Q27.601-26.250 27.384-26.432Q27.167-26.613 26.851-26.613Q26.550-26.613 26.320-26.426Q26.089-26.238 25.966-25.947Q25.843-25.656 25.843-25.363",[1475],[1459,4180,4181],{"transform":4168},[1464,4182],{"d":4183,"fill":4157,"stroke":4157,"className":4184,"style":1560},"M33.560-23.301L31.728-23.301L31.728-23.598Q31.997-23.598 32.165-23.643Q32.333-23.688 32.333-23.860L32.333-26.453L31.692-26.453L31.692-26.750L32.333-26.750L32.333-27.684Q32.333-28.098 32.642-28.379Q32.950-28.660 33.396-28.797Q33.841-28.934 34.247-28.934Q34.650-28.934 34.968-28.707Q35.286-28.481 35.286-28.094Q35.286-27.918 35.173-27.805Q35.060-27.692 34.888-27.692Q34.712-27.692 34.599-27.805Q34.485-27.918 34.485-28.094Q34.485-28.238 34.575-28.348Q34.665-28.457 34.798-28.485Q34.513-28.676 34.165-28.676Q33.868-28.676 33.581-28.555Q33.294-28.434 33.110-28.201Q32.927-27.969 32.927-27.668L32.927-26.750L34.079-26.750L35.302-26.844L35.302-23.860Q35.302-23.692 35.470-23.645Q35.638-23.598 35.911-23.598L35.911-23.301L34.079-23.301L34.079-23.598Q34.349-23.598 34.517-23.643Q34.685-23.688 34.685-23.860L34.685-26.020Q34.685-26.227 34.638-26.326Q34.591-26.426 34.415-26.453L32.950-26.453L32.950-23.860Q32.950-23.692 33.118-23.645Q33.286-23.598 33.560-23.598L33.560-23.301M38.427-23.301L36.446-23.301L36.446-23.598Q36.716-23.598 36.884-23.643Q37.052-23.688 37.052-23.860L37.052-25.996Q37.052-26.211 36.989-26.307Q36.927-26.403 36.810-26.424Q36.692-26.446 36.446-26.446L36.446-26.742L37.614-26.828L37.614-26.043Q37.692-26.254 37.845-26.440Q37.997-26.625 38.196-26.727Q38.396-26.828 38.622-26.828Q38.868-26.828 39.060-26.684Q39.251-26.539 39.251-26.309Q39.251-26.153 39.146-26.043Q39.040-25.934 38.884-25.934Q38.728-25.934 38.618-26.043Q38.509-26.153 38.509-26.309Q38.509-26.469 38.614-26.574Q38.290-26.574 38.075-26.346Q37.860-26.117 37.765-25.778Q37.669-25.438 37.669-25.133L37.669-23.860Q37.669-23.692 37.896-23.645Q38.122-23.598 38.427-23.598L38.427-23.301M39.775-23.309L39.775-24.531Q39.775-24.559 39.806-24.590Q39.837-24.621 39.860-24.621L39.966-24.621Q40.036-24.621 40.052-24.559Q40.114-24.238 40.253-23.998Q40.392-23.758 40.624-23.617Q40.857-23.477 41.165-23.477Q41.403-23.477 41.612-23.537Q41.821-23.598 41.958-23.746Q42.095-23.895 42.095-24.141Q42.095-24.395 41.884-24.561Q41.673-24.727 41.403-24.781L40.782-24.895Q40.376-24.973 40.075-25.229Q39.775-25.485 39.775-25.860Q39.775-26.227 39.976-26.449Q40.177-26.672 40.501-26.770Q40.825-26.867 41.165-26.867Q41.630-26.867 41.927-26.660L42.150-26.844Q42.173-26.867 42.204-26.867L42.255-26.867Q42.286-26.867 42.314-26.840Q42.341-26.813 42.341-26.781L42.341-25.797Q42.341-25.766 42.316-25.737Q42.290-25.707 42.255-25.707L42.150-25.707Q42.114-25.707 42.087-25.735Q42.060-25.762 42.060-25.797Q42.060-26.196 41.808-26.416Q41.556-26.637 41.157-26.637Q40.802-26.637 40.519-26.514Q40.235-26.391 40.235-26.086Q40.235-25.867 40.437-25.735Q40.638-25.602 40.884-25.559L41.509-25.446Q41.939-25.356 42.247-25.059Q42.556-24.762 42.556-24.348Q42.556-23.778 42.157-23.500Q41.759-23.223 41.165-23.223Q40.614-23.223 40.263-23.559L39.966-23.246Q39.942-23.223 39.907-23.223L39.860-23.223Q39.837-23.223 39.806-23.254Q39.775-23.285 39.775-23.309M43.708-24.262L43.708-26.453L43.005-26.453L43.005-26.707Q43.360-26.707 43.603-26.940Q43.845-27.172 43.956-27.520Q44.067-27.867 44.067-28.223L44.349-28.223L44.349-26.750L45.525-26.750L45.525-26.453L44.349-26.453L44.349-24.278Q44.349-23.957 44.468-23.729Q44.587-23.500 44.868-23.500Q45.048-23.500 45.165-23.623Q45.282-23.746 45.335-23.926Q45.388-24.106 45.388-24.278L45.388-24.750L45.669-24.750L45.669-24.262Q45.669-24.008 45.564-23.768Q45.458-23.528 45.261-23.375Q45.064-23.223 44.806-23.223Q44.489-23.223 44.237-23.346Q43.985-23.469 43.847-23.703Q43.708-23.938 43.708-24.262",[1475],[1459,4186,4187],{"transform":4168},[1464,4188],{"d":4189,"fill":4157,"stroke":4157,"className":4190,"style":1560},"M54.669-24.278L49.637-24.278Q49.559-24.285 49.510-24.334Q49.462-24.383 49.462-24.461Q49.462-24.531 49.509-24.582Q49.555-24.633 49.637-24.645L55.067-24.645Q55.317-24.844 55.598-25.012Q55.880-25.180 56.173-25.301Q55.571-25.555 55.067-25.965L49.637-25.965Q49.559-25.973 49.510-26.022Q49.462-26.071 49.462-26.149Q49.462-26.219 49.509-26.270Q49.555-26.321 49.637-26.332L54.669-26.332Q54.200-26.813 53.891-27.438Q53.884-27.469 53.884-27.477Q53.884-27.563 53.981-27.590L54.149-27.590Q54.212-27.578 54.247-27.524Q54.509-26.992 54.917-26.563Q55.325-26.133 55.846-25.840Q56.368-25.547 56.950-25.406Q57.012-25.395 57.012-25.301Q57.012-25.207 56.950-25.196Q56.368-25.055 55.846-24.762Q55.325-24.469 54.917-24.039Q54.509-23.610 54.247-23.078Q54.212-23.024 54.149-23.012L53.981-23.012Q53.884-23.039 53.884-23.125Q53.884-23.133 53.891-23.164Q54.196-23.781 54.669-24.278",[1475],[1459,4192,4193],{"transform":4168},[1464,4194],{"d":4195,"fill":4157,"stroke":4157,"className":4196,"style":1560},"M60.186-24.606Q60.186-25.028 60.375-25.430Q60.565-25.832 60.891-26.149Q61.217-26.465 61.620-26.647Q62.022-26.828 62.444-26.828Q63.049-26.828 63.450-26.440Q63.850-26.051 63.850-25.446Q63.850-25.031 63.661-24.627Q63.471-24.223 63.145-23.905Q62.819-23.586 62.418-23.405Q62.018-23.223 61.592-23.223Q61.291-23.223 61.036-23.324Q60.780-23.426 60.588-23.613Q60.397-23.801 60.291-24.059Q60.186-24.317 60.186-24.606M61.612-23.477Q61.975-23.477 62.270-23.696Q62.565-23.914 62.764-24.264Q62.963-24.613 63.067-25.004Q63.170-25.395 63.170-25.735Q63.170-26.098 62.971-26.336Q62.772-26.574 62.424-26.574Q62.053-26.574 61.758-26.354Q61.463-26.133 61.262-25.781Q61.061-25.430 60.959-25.035Q60.858-24.641 60.858-24.317Q60.858-23.961 61.057-23.719Q61.256-23.477 61.612-23.477M65.444-21.750L63.842-21.750Q63.807-21.750 63.774-21.791Q63.741-21.832 63.741-21.867L63.772-21.973Q63.803-22.035 63.858-22.043Q64.049-22.043 64.133-22.059Q64.217-22.074 64.270-22.141Q64.323-22.207 64.362-22.348L65.252-25.918Q65.291-26.074 65.291-26.211Q65.291-26.360 65.239-26.467Q65.186-26.574 65.053-26.574Q64.873-26.574 64.754-26.405Q64.635-26.235 64.579-26.049Q64.522-25.863 64.452-25.574Q64.440-25.500 64.370-25.500L64.268-25.500Q64.233-25.500 64.205-25.535Q64.178-25.571 64.178-25.598L64.178-25.629Q64.264-25.961 64.358-26.203Q64.452-26.446 64.627-26.637Q64.803-26.828 65.069-26.828Q65.350-26.828 65.580-26.684Q65.811-26.539 65.877-26.285Q66.397-26.828 66.955-26.828Q67.491-26.828 67.811-26.444Q68.131-26.059 68.131-25.516Q68.131-24.992 67.850-24.453Q67.569-23.914 67.102-23.569Q66.635-23.223 66.100-23.223Q65.862-23.223 65.661-23.340Q65.459-23.457 65.330-23.668L64.987-22.293Q64.975-22.254 64.955-22.133Q64.955-22.043 65.459-22.043Q65.565-22.012 65.565-21.918L65.530-21.813Q65.498-21.758 65.444-21.750M65.885-25.867L65.452-24.141Q65.510-23.867 65.680-23.672Q65.850-23.477 66.116-23.477Q66.452-23.477 66.731-23.768Q67.010-24.059 67.147-24.414Q67.272-24.707 67.373-25.141Q67.475-25.574 67.475-25.852Q67.475-26.137 67.342-26.356Q67.209-26.574 66.940-26.574Q66.729-26.574 66.534-26.473Q66.338-26.371 66.178-26.215Q66.018-26.059 65.885-25.867M68.780-23.973Q68.780-24.082 68.803-24.188L69.373-26.453L68.526-26.453Q68.420-26.481 68.420-26.582L68.444-26.684Q68.463-26.735 68.541-26.750L69.444-26.750L69.764-28.012Q69.791-28.141 69.897-28.221Q70.002-28.301 70.131-28.301Q70.241-28.301 70.319-28.227Q70.397-28.153 70.397-28.043Q70.397-27.996 70.389-27.973L70.084-26.750L70.932-26.750Q71.030-26.719 71.030-26.629L71.006-26.524Q70.998-26.473 70.916-26.453L70.014-26.453L69.428-24.133Q69.389-23.887 69.389-23.836Q69.389-23.477 69.635-23.477Q69.998-23.477 70.276-23.793Q70.553-24.110 70.702-24.500Q70.733-24.547 70.780-24.547L70.885-24.547Q70.924-24.547 70.948-24.518Q70.971-24.488 70.971-24.453Q70.971-24.438 70.963-24.422Q70.780-23.938 70.426-23.580Q70.073-23.223 69.620-23.223Q69.276-23.223 69.028-23.430Q68.780-23.637 68.780-23.973",[1475],[1459,4198,4199,4202],{"fill":1489,"stroke":1489},[1464,4200],{"fill":1466,"d":4201},"M4.947-54.398c0 15.745 8.535 23.688 8.535 37.433",[1464,4203],{"stroke":1466,"d":4204},"m13.482-14.965 1.6-3.2-1.6 1.2-1.6-1.2",[1459,4206,4207,4210],{"fill":1489,"stroke":1489},[1464,4208],{"fill":1466,"d":4209},"M147.21-54.398c0 15.745-8.536 23.688-8.536 37.433",[1464,4211],{"stroke":1466,"d":4212},"m138.674-14.965 1.6-3.2-1.6 1.2-1.6-1.2",[1687,4214,4216,4217,4275,4276,4346,4347,4426,4427,4501,4502,4517,4518,2577],{"className":4215},[1690],"Divide-and-conquer optimization. Solving ",[390,4218,4220],{"className":4219},[393],[390,4221,4223],{"className":4222,"ariaHidden":398},[397],[390,4224,4226,4229],{"className":4225},[402],[390,4227],{"className":4228,"style":1284},[406],[390,4230,4232,4235],{"className":4231},[411],[390,4233,822],{"className":4234,"style":821},[411,412],[390,4236,4238],{"className":4237},[559],[390,4239,4241,4267],{"className":4240},[563,775],[390,4242,4244,4264],{"className":4243},[567],[390,4245,4247],{"className":4246,"style":782},[571],[390,4248,4249,4252],{"style":3810},[390,4250],{"className":4251,"style":580},[579],[390,4253,4255],{"className":4254},[584,585,586,587],[390,4256,4258,4261],{"className":4257},[411,587],[390,4259,3823],{"className":4260},[411,412,587],[390,4262,714],{"className":4263},[411,412,587],[390,4265,840],{"className":4266},[839],[390,4268,4270],{"className":4269},[567],[390,4271,4273],{"className":4272,"style":1992},[571],[390,4274],{}," finds ",[390,4277,4279],{"className":4278},[393],[390,4280,4282],{"className":4281,"ariaHidden":398},[397],[390,4283,4285,4288,4291,4294,4297,4343],{"className":4284},[402],[390,4286],{"className":4287,"style":446},[406],[390,4289,3515],{"className":4290},[411,412],[390,4292,3519],{"className":4293},[411,412],[390,4295,456],{"className":4296},[455],[390,4298,4300,4303],{"className":4299},[411],[390,4301,822],{"className":4302,"style":821},[411,412],[390,4304,4306],{"className":4305},[559],[390,4307,4309,4335],{"className":4308},[563,775],[390,4310,4312,4332],{"className":4311},[567],[390,4313,4315],{"className":4314,"style":782},[571],[390,4316,4317,4320],{"style":3810},[390,4318],{"className":4319,"style":580},[579],[390,4321,4323],{"className":4322},[584,585,586,587],[390,4324,4326,4329],{"className":4325},[411,587],[390,4327,3823],{"className":4328},[411,412,587],[390,4330,714],{"className":4331},[411,412,587],[390,4333,840],{"className":4334},[839],[390,4336,4338],{"className":4337},[567],[390,4339,4341],{"className":4340,"style":1992},[571],[390,4342],{},[390,4344,486],{"className":4345},[485],"; by monotonicity the left columns search only ",[390,4348,4350],{"className":4349},[393],[390,4351,4353],{"className":4352,"ariaHidden":398},[397],[390,4354,4356,4359,4362,4411,4414,4417,4420,4423],{"className":4355},[402],[390,4357],{"className":4358,"style":446},[406],[390,4360,721],{"className":4361},[455],[390,4363,4365,4368],{"className":4364},[411],[390,4366,806],{"className":4367,"style":805},[411,412],[390,4369,4371],{"className":4370},[559],[390,4372,4374,4403],{"className":4373},[563,775],[390,4375,4377,4400],{"className":4376},[567],[390,4378,4380],{"className":4379,"style":782},[571],[390,4381,4383,4386],{"style":4382},"top:-2.55em;margin-left:-0.0315em;margin-right:0.05em;",[390,4384],{"className":4385,"style":580},[579],[390,4387,4389],{"className":4388},[584,585,586,587],[390,4390,4392,4397],{"className":4391},[411,587],[390,4393,4396],{"className":4394,"style":4395},[411,412,587],"margin-right:0.0197em;","l",[390,4398,3515],{"className":4399},[411,412,587],[390,4401,840],{"className":4402},[839],[390,4404,4406],{"className":4405},[567],[390,4407,4409],{"className":4408,"style":1992},[571],[390,4410],{},[390,4412,912],{"className":4413},[911],[390,4415],{"className":4416,"style":853},[463],[390,4418,3515],{"className":4419},[411,412],[390,4421,3519],{"className":4422},[411,412],[390,4424,729],{"className":4425},[485]," and the right only ",[390,4428,4430],{"className":4429},[393],[390,4431,4433],{"className":4432,"ariaHidden":398},[397],[390,4434,4436,4439,4442,4445,4448,4451,4454,4498],{"className":4435},[402],[390,4437],{"className":4438,"style":446},[406],[390,4440,721],{"className":4441},[455],[390,4443,3515],{"className":4444},[411,412],[390,4446,3519],{"className":4447},[411,412],[390,4449,912],{"className":4450},[911],[390,4452],{"className":4453,"style":853},[463],[390,4455,4457,4460],{"className":4456},[411],[390,4458,806],{"className":4459,"style":805},[411,412],[390,4461,4463],{"className":4462},[559],[390,4464,4466,4490],{"className":4465},[563,775],[390,4467,4469,4487],{"className":4468},[567],[390,4470,4472],{"className":4471,"style":782},[571],[390,4473,4474,4477],{"style":4382},[390,4475],{"className":4476,"style":580},[579],[390,4478,4480],{"className":4479},[584,585,586,587],[390,4481,4483],{"className":4482},[411,587],[390,4484,4486],{"className":4485},[411,412,587],"hi",[390,4488,840],{"className":4489},[839],[390,4491,4493],{"className":4492},[567],[390,4494,4496],{"className":4495,"style":1992},[571],[390,4497],{},[390,4499,729],{"className":4500},[485],", halving the column span while the ",[390,4503,4505],{"className":4504},[393],[390,4506,4508],{"className":4507,"ariaHidden":398},[397],[390,4509,4511,4514],{"className":4510},[402],[390,4512],{"className":4513,"style":932},[406],[390,4515,806],{"className":4516,"style":805},[411,412],"-ranges overlap only at ",[390,4519,4521],{"className":4520},[393],[390,4522,4524],{"className":4523,"ariaHidden":398},[397],[390,4525,4527,4530,4533],{"className":4526},[402],[390,4528],{"className":4529,"style":3567},[406],[390,4531,3515],{"className":4532},[411,412],[390,4534,3519],{"className":4535},[411,412],[381,4537,4538,4539,4554,4555,4579,4580,4613,4614,4638,4639,4681,4682,4735,4736,4754,4755,4770],{},"At each recursion depth the ",[390,4540,4542],{"className":4541},[393],[390,4543,4545],{"className":4544,"ariaHidden":398},[397],[390,4546,4548,4551],{"className":4547},[402],[390,4549],{"className":4550,"style":932},[406],[390,4552,806],{"className":4553,"style":805},[411,412],"-ranges across all sub-calls overlap by at most\ntheir endpoints, so one depth costs ",[390,4556,4558],{"className":4557},[393],[390,4559,4561],{"className":4560,"ariaHidden":398},[397],[390,4562,4564,4567,4570,4573,4576],{"className":4563},[402],[390,4565],{"className":4566,"style":446},[406],[390,4568,451],{"className":4569,"style":450},[411,412],[390,4571,456],{"className":4572},[455],[390,4574,526],{"className":4575},[411,412],[390,4577,486],{"className":4578},[485],"; there are ",[390,4581,4583],{"className":4582},[393],[390,4584,4586],{"className":4585,"ariaHidden":398},[397],[390,4587,4589,4592,4595,4598,4604,4607,4610],{"className":4588},[402],[390,4590],{"className":4591,"style":446},[406],[390,4593,451],{"className":4594,"style":450},[411,412],[390,4596,456],{"className":4597},[455],[390,4599,4601],{"className":4600},[760],[390,4602,2933],{"className":4603,"style":2932},[411,767],[390,4605],{"className":4606,"style":853},[463],[390,4608,526],{"className":4609},[411,412],[390,4611,486],{"className":4612},[485]," depths per\nlayer and ",[390,4615,4617],{"className":4616},[393],[390,4618,4620],{"className":4619,"ariaHidden":398},[397],[390,4621,4623,4626,4629,4632,4635],{"className":4622},[402],[390,4624],{"className":4625,"style":446},[406],[390,4627,451],{"className":4628,"style":450},[411,412],[390,4630,456],{"className":4631},[455],[390,4633,806],{"className":4634,"style":805},[411,412],[390,4636,486],{"className":4637},[485]," layers, giving ",[390,4640,4642],{"className":4641},[393],[390,4643,4645],{"className":4644,"ariaHidden":398},[397],[390,4646,4648,4651,4654,4657,4660,4663,4666,4672,4675,4678],{"className":4647},[402],[390,4649],{"className":4650,"style":446},[406],[390,4652,451],{"className":4653,"style":450},[411,412],[390,4655,456],{"className":4656},[455],[390,4658,806],{"className":4659,"style":805},[411,412],[390,4661,526],{"className":4662},[411,412],[390,4664],{"className":4665,"style":853},[463],[390,4667,4669],{"className":4668},[760],[390,4670,2933],{"className":4671,"style":2932},[411,767],[390,4673],{"className":4674,"style":853},[463],[390,4676,526],{"className":4677},[411,412],[390,4679,486],{"className":4680},[485]," instead of ",[390,4683,4685],{"className":4684},[393],[390,4686,4688],{"className":4687,"ariaHidden":398},[397],[390,4689,4691,4694,4697,4700,4703,4732],{"className":4690},[402],[390,4692],{"className":4693,"style":543},[406],[390,4695,451],{"className":4696,"style":450},[411,412],[390,4698,456],{"className":4699},[455],[390,4701,806],{"className":4702,"style":805},[411,412],[390,4704,4706,4709],{"className":4705},[411],[390,4707,526],{"className":4708},[411,412],[390,4710,4712],{"className":4711},[559],[390,4713,4715],{"className":4714},[563],[390,4716,4718],{"className":4717},[567],[390,4719,4721],{"className":4720,"style":572},[571],[390,4722,4723,4726],{"style":575},[390,4724],{"className":4725,"style":580},[579],[390,4727,4729],{"className":4728},[584,585,586,587],[390,4730,591],{"className":4731},[411,587],[390,4733,486],{"className":4734},[485],". The\nmonotonicity of ",[390,4737,4739],{"className":4738},[393],[390,4740,4742],{"className":4741,"ariaHidden":398},[397],[390,4743,4745,4748,4751],{"className":4744},[402],[390,4746],{"className":4747,"style":3567},[406],[390,4749,3515],{"className":4750},[411,412],[390,4752,3519],{"className":4753},[411,412]," is the hypothesis you must verify; it holds whenever ",[390,4756,4758],{"className":4757},[393],[390,4759,4761],{"className":4760,"ariaHidden":398},[397],[390,4762,4764,4767],{"className":4763},[402],[390,4765],{"className":4766,"style":407},[406],[390,4768,3469],{"className":4769,"style":3468},[411,412],"\nsatisfies the quadrangle inequality (below), but is sometimes provable directly\nfrom the problem.",[688,4772,4774],{"id":4773},"knuths-optimization","Knuth's optimization",[381,4776,4777],{},"Interval DPs have the shape",[390,4779,4781],{"className":4780},[698],[390,4782,4784],{"className":4783},[393],[390,4785,4787,4826,4929,4956,4992],{"className":4786,"ariaHidden":398},[397],[390,4788,4790,4793,4796,4799,4802,4805,4808,4811,4814,4817,4820,4823],{"className":4789},[402],[390,4791],{"className":4792,"style":446},[406],[390,4794,714],{"className":4795},[411,412],[390,4797,381],{"className":4798},[411,412],[390,4800,721],{"className":4801},[455],[390,4803,725],{"className":4804},[411,412],[390,4806,729],{"className":4807},[485],[390,4809,721],{"className":4810},[455],[390,4812,822],{"className":4813,"style":821},[411,412],[390,4815,729],{"className":4816},[485],[390,4818],{"className":4819,"style":733},[463],[390,4821,738],{"className":4822},[737],[390,4824],{"className":4825,"style":733},[463],[390,4827,4829,4832,4890,4896,4899,4902,4905,4908,4911,4914,4917,4920,4923,4926],{"className":4828},[402],[390,4830],{"className":4831,"style":1834},[406],[390,4833,4835,4841],{"className":4834},[760],[390,4836,4838],{"className":4837},[760],[390,4839,768],{"className":4840},[411,767],[390,4842,4844],{"className":4843},[559],[390,4845,4847,4882],{"className":4846},[563,775],[390,4848,4850,4879],{"className":4849},[567],[390,4851,4853],{"className":4852,"style":782},[571],[390,4854,4855,4858],{"style":785},[390,4856],{"className":4857,"style":580},[579],[390,4859,4861],{"className":4860},[584,585,586,587],[390,4862,4864,4867,4870,4873,4876],{"className":4863},[411,587],[390,4865,725],{"className":4866},[411,412,587],[390,4868,814],{"className":4869},[737,587],[390,4871,806],{"className":4872,"style":805},[411,412,587],[390,4874,829],{"className":4875},[737,587],[390,4877,822],{"className":4878,"style":821},[411,412,587],[390,4880,840],{"className":4881},[839],[390,4883,4885],{"className":4884},[567],[390,4886,4888],{"className":4887,"style":847},[571],[390,4889],{},[390,4891,4893],{"className":4892},[455],[390,4894,456],{"className":4895},[755,1894],[390,4897,714],{"className":4898},[411,412],[390,4900,381],{"className":4901},[411,412],[390,4903,721],{"className":4904},[455],[390,4906,725],{"className":4907},[411,412],[390,4909,729],{"className":4910},[485],[390,4912,721],{"className":4913},[455],[390,4915,806],{"className":4916,"style":805},[411,412],[390,4918,729],{"className":4919},[485],[390,4921],{"className":4922,"style":464},[463],[390,4924,881],{"className":4925},[468],[390,4927],{"className":4928,"style":464},[463],[390,4930,4932,4935,4938,4941,4944,4947,4950,4953],{"className":4931},[402],[390,4933],{"className":4934,"style":446},[406],[390,4936,714],{"className":4937},[411,412],[390,4939,381],{"className":4940},[411,412],[390,4942,721],{"className":4943},[455],[390,4945,806],{"className":4946,"style":805},[411,412],[390,4948],{"className":4949,"style":464},[463],[390,4951,881],{"className":4952},[468],[390,4954],{"className":4955,"style":464},[463],[390,4957,4959,4962,4965,4968,4971,4974,4977,4983,4986,4989],{"className":4958},[402],[390,4960],{"className":4961,"style":1834},[406],[390,4963,667],{"className":4964},[411],[390,4966,729],{"className":4967},[485],[390,4969,721],{"className":4970},[455],[390,4972,822],{"className":4973,"style":821},[411,412],[390,4975,729],{"className":4976},[485],[390,4978,4980],{"className":4979},[485],[390,4981,486],{"className":4982},[755,1894],[390,4984],{"className":4985,"style":464},[463],[390,4987,881],{"className":4988},[468],[390,4990],{"className":4991,"style":464},[463],[390,4993,4995,4998,5001,5004,5007,5010,5013,5016,5019],{"className":4994},[402],[390,4996],{"className":4997,"style":446},[406],[390,4999,3469],{"className":5000,"style":3468},[411,412],[390,5002,456],{"className":5003},[455],[390,5005,725],{"className":5006},[411,412],[390,5008,912],{"className":5009},[911],[390,5011],{"className":5012,"style":853},[463],[390,5014,822],{"className":5015,"style":821},[411,412],[390,5017,486],{"className":5018},[485],[390,5020,912],{"className":5021},[911],[381,5023,5024,5025,5075,5076,5126,5127,5151,5152,5154,5155,5170,5171,5174],{},"and naively cost ",[390,5026,5028],{"className":5027},[393],[390,5029,5031],{"className":5030,"ariaHidden":398},[397],[390,5032,5034,5037,5040,5043,5072],{"className":5033},[402],[390,5035],{"className":5036,"style":543},[406],[390,5038,451],{"className":5039,"style":450},[411,412],[390,5041,456],{"className":5042},[455],[390,5044,5046,5049],{"className":5045},[411],[390,5047,526],{"className":5048},[411,412],[390,5050,5052],{"className":5051},[559],[390,5053,5055],{"className":5054},[563],[390,5056,5058],{"className":5057},[567],[390,5059,5061],{"className":5060,"style":572},[571],[390,5062,5063,5066],{"style":575},[390,5064],{"className":5065,"style":580},[579],[390,5067,5069],{"className":5068},[584,585,586,587],[390,5070,643],{"className":5071},[411,587],[390,5073,486],{"className":5074},[485],": ",[390,5077,5079],{"className":5078},[393],[390,5080,5082],{"className":5081,"ariaHidden":398},[397],[390,5083,5085,5088,5091,5094,5123],{"className":5084},[402],[390,5086],{"className":5087,"style":543},[406],[390,5089,451],{"className":5090,"style":450},[411,412],[390,5092,456],{"className":5093},[455],[390,5095,5097,5100],{"className":5096},[411],[390,5098,526],{"className":5099},[411,412],[390,5101,5103],{"className":5102},[559],[390,5104,5106],{"className":5105},[563],[390,5107,5109],{"className":5108},[567],[390,5110,5112],{"className":5111,"style":572},[571],[390,5113,5114,5117],{"style":575},[390,5115],{"className":5116,"style":580},[579],[390,5118,5120],{"className":5119},[584,585,586,587],[390,5121,591],{"className":5122},[411,587],[390,5124,486],{"className":5125},[485]," intervals, each scanning ",[390,5128,5130],{"className":5129},[393],[390,5131,5133],{"className":5132,"ariaHidden":398},[397],[390,5134,5136,5139,5142,5145,5148],{"className":5135},[402],[390,5137],{"className":5138,"style":446},[406],[390,5140,451],{"className":5141,"style":450},[411,412],[390,5143,456],{"className":5144},[455],[390,5146,526],{"className":5147},[411,412],[390,5149,486],{"className":5150},[485]," split points.\n",[654,5153,4774],{}," applies when ",[390,5156,5158],{"className":5157},[393],[390,5159,5161],{"className":5160,"ariaHidden":398},[397],[390,5162,5164,5167],{"className":5163},[402],[390,5165],{"className":5166,"style":407},[406],[390,5168,3469],{"className":5169,"style":3468},[411,412]," satisfies the ",[654,5172,5173],{},"quadrangle inequality","\n(QI) and is monotone on intervals:",[1021,5176,5178],{"type":5177},"definition",[381,5179,5180,5183,5184,5256,5257],{},[654,5181,5182],{},"Definition (Quadrangle inequality)."," For all ",[390,5185,5187],{"className":5186},[393],[390,5188,5190,5209,5228,5247],{"className":5189,"ariaHidden":398},[397],[390,5191,5193,5197,5200,5203,5206],{"className":5192},[402],[390,5194],{"className":5195,"style":5196},[406],"height:0.7719em;vertical-align:-0.136em;",[390,5198,385],{"className":5199},[411,412],[390,5201],{"className":5202,"style":733},[463],[390,5204,814],{"className":5205},[737],[390,5207],{"className":5208,"style":733},[463],[390,5210,5212,5216,5219,5222,5225],{"className":5211},[402],[390,5213],{"className":5214,"style":5215},[406],"height:0.8304em;vertical-align:-0.136em;",[390,5217,2016],{"className":5218},[411,412],[390,5220],{"className":5221,"style":733},[463],[390,5223,814],{"className":5224},[737],[390,5226],{"className":5227,"style":733},[463],[390,5229,5231,5234,5238,5241,5244],{"className":5230},[402],[390,5232],{"className":5233,"style":5196},[406],[390,5235,5237],{"className":5236},[411,412],"c",[390,5239],{"className":5240,"style":733},[463],[390,5242,814],{"className":5243},[737],[390,5245],{"className":5246,"style":733},[463],[390,5248,5250,5253],{"className":5249},[402],[390,5251],{"className":5252,"style":932},[406],[390,5254,714],{"className":5255},[411,412],",\n",[390,5258,5260],{"className":5259},[393],[390,5261,5263,5299,5341,5377],{"className":5262,"ariaHidden":398},[397],[390,5264,5266,5269,5272,5275,5278,5281,5284,5287,5290,5293,5296],{"className":5265},[402],[390,5267],{"className":5268,"style":446},[406],[390,5270,3469],{"className":5271,"style":3468},[411,412],[390,5273,456],{"className":5274},[455],[390,5276,385],{"className":5277},[411,412],[390,5279,912],{"className":5280},[911],[390,5282],{"className":5283,"style":853},[463],[390,5285,5237],{"className":5286},[411,412],[390,5288,486],{"className":5289},[485],[390,5291],{"className":5292,"style":464},[463],[390,5294,881],{"className":5295},[468],[390,5297],{"className":5298,"style":464},[463],[390,5300,5302,5305,5308,5311,5314,5317,5320,5323,5326,5329,5332,5335,5338],{"className":5301},[402],[390,5303],{"className":5304,"style":446},[406],[390,5306,3469],{"className":5307,"style":3468},[411,412],[390,5309,456],{"className":5310},[455],[390,5312,2016],{"className":5313},[411,412],[390,5315,912],{"className":5316},[911],[390,5318],{"className":5319,"style":853},[463],[390,5321,714],{"className":5322},[411,412],[390,5324,486],{"className":5325},[485],[390,5327],{"className":5328,"style":733},[463],[390,5330],{"className":5331,"style":733},[463],[390,5333,814],{"className":5334},[737],[390,5336],{"className":5337,"style":733},[463],[390,5339],{"className":5340,"style":733},[463],[390,5342,5344,5347,5350,5353,5356,5359,5362,5365,5368,5371,5374],{"className":5343},[402],[390,5345],{"className":5346,"style":446},[406],[390,5348,3469],{"className":5349,"style":3468},[411,412],[390,5351,456],{"className":5352},[455],[390,5354,385],{"className":5355},[411,412],[390,5357,912],{"className":5358},[911],[390,5360],{"className":5361,"style":853},[463],[390,5363,714],{"className":5364},[411,412],[390,5366,486],{"className":5367},[485],[390,5369],{"className":5370,"style":464},[463],[390,5372,881],{"className":5373},[468],[390,5375],{"className":5376,"style":464},[463],[390,5378,5380,5383,5386,5389,5392,5395,5398,5401,5404],{"className":5379},[402],[390,5381],{"className":5382,"style":446},[406],[390,5384,3469],{"className":5385,"style":3468},[411,412],[390,5387,456],{"className":5388},[455],[390,5390,2016],{"className":5391},[411,412],[390,5393,912],{"className":5394},[911],[390,5396],{"className":5397,"style":853},[463],[390,5399,5237],{"className":5400},[411,412],[390,5402,486],{"className":5403},[485],[390,5405,2577],{"className":5406},[411],[381,5408,5409,5410,5412],{},"When QI holds, the optimal split point is monotone in ",[649,5411,1443],{}," arguments:",[390,5414,5416],{"className":5415},[698],[390,5417,5419],{"className":5418},[393],[390,5420,5422,5458,5485,5530,5557],{"className":5421,"ariaHidden":398},[397],[390,5423,5425,5428,5431,5434,5437,5440,5443,5446,5449,5452,5455],{"className":5424},[402],[390,5426],{"className":5427,"style":446},[406],[390,5429,3515],{"className":5430},[411,412],[390,5432,3519],{"className":5433},[411,412],[390,5435,721],{"className":5436},[455],[390,5438,725],{"className":5439},[411,412],[390,5441,729],{"className":5442},[485],[390,5444,721],{"className":5445},[455],[390,5447,822],{"className":5448,"style":821},[411,412],[390,5450],{"className":5451,"style":464},[463],[390,5453,801],{"className":5454},[468],[390,5456],{"className":5457,"style":464},[463],[390,5459,5461,5464,5467,5470,5473,5476,5479,5482],{"className":5460},[402],[390,5462],{"className":5463,"style":446},[406],[390,5465,667],{"className":5466},[411],[390,5468,729],{"className":5469},[485],[390,5471],{"className":5472,"style":733},[463],[390,5474],{"className":5475,"style":733},[463],[390,5477,814],{"className":5478},[737],[390,5480],{"className":5481,"style":733},[463],[390,5483],{"className":5484,"style":733},[463],[390,5486,5488,5491,5494,5497,5500,5503,5506,5509,5512,5515,5518,5521,5524,5527],{"className":5487},[402],[390,5489],{"className":5490,"style":446},[406],[390,5492,3515],{"className":5493},[411,412],[390,5495,3519],{"className":5496},[411,412],[390,5498,721],{"className":5499},[455],[390,5501,725],{"className":5502},[411,412],[390,5504,729],{"className":5505},[485],[390,5507,721],{"className":5508},[455],[390,5510,822],{"className":5511,"style":821},[411,412],[390,5513,729],{"className":5514},[485],[390,5516],{"className":5517,"style":733},[463],[390,5519],{"className":5520,"style":733},[463],[390,5522,814],{"className":5523},[737],[390,5525],{"className":5526,"style":733},[463],[390,5528],{"className":5529,"style":733},[463],[390,5531,5533,5536,5539,5542,5545,5548,5551,5554],{"className":5532},[402],[390,5534],{"className":5535,"style":446},[406],[390,5537,3515],{"className":5538},[411,412],[390,5540,3519],{"className":5541},[411,412],[390,5543,721],{"className":5544},[455],[390,5546,725],{"className":5547},[411,412],[390,5549],{"className":5550,"style":464},[463],[390,5552,881],{"className":5553},[468],[390,5555],{"className":5556,"style":464},[463],[390,5558,5560,5563,5566,5569,5572,5575,5578],{"className":5559},[402],[390,5561],{"className":5562,"style":446},[406],[390,5564,667],{"className":5565},[411],[390,5567,729],{"className":5568},[485],[390,5570,721],{"className":5571},[455],[390,5573,822],{"className":5574,"style":821},[411,412],[390,5576,729],{"className":5577},[485],[390,5579,2577],{"className":5580},[411],[381,5582,5583,5584,5620,5621,5636,5637,5761,5762,5792,5793,5843,5844,5847,5848,5851,5852,5855,5856,2577],{},"So when filling ",[390,5585,5587],{"className":5586},[393],[390,5588,5590],{"className":5589,"ariaHidden":398},[397],[390,5591,5593,5596,5599,5602,5605,5608,5611,5614,5617],{"className":5592},[402],[390,5594],{"className":5595,"style":446},[406],[390,5597,714],{"className":5598},[411,412],[390,5600,381],{"className":5601},[411,412],[390,5603,721],{"className":5604},[455],[390,5606,725],{"className":5607},[411,412],[390,5609,729],{"className":5610},[485],[390,5612,721],{"className":5613},[455],[390,5615,822],{"className":5616,"style":821},[411,412],[390,5618,729],{"className":5619},[485]," we only scan split points ",[390,5622,5624],{"className":5623},[393],[390,5625,5627],{"className":5626,"ariaHidden":398},[397],[390,5628,5630,5633],{"className":5629},[402],[390,5631],{"className":5632,"style":932},[406],[390,5634,806],{"className":5635,"style":805},[411,412]," in\n",[390,5638,5640],{"className":5639},[393],[390,5641,5643,5688,5731],{"className":5642,"ariaHidden":398},[397],[390,5644,5646,5649,5655,5658,5661,5664,5667,5670,5673,5676,5679,5682,5685],{"className":5645},[402],[390,5647],{"className":5648,"style":1834},[406],[390,5650,5652],{"className":5651},[455],[390,5653,721],{"className":5654},[755,1894],[390,5656],{"className":5657,"style":853},[463],[390,5659,3515],{"className":5660},[411,412],[390,5662,3519],{"className":5663},[411,412],[390,5665,721],{"className":5666},[455],[390,5668,725],{"className":5669},[411,412],[390,5671,729],{"className":5672},[485],[390,5674,721],{"className":5675},[455],[390,5677,822],{"className":5678,"style":821},[411,412],[390,5680],{"className":5681,"style":464},[463],[390,5683,801],{"className":5684},[468],[390,5686],{"className":5687,"style":464},[463],[390,5689,5691,5694,5697,5700,5703,5707,5710,5713,5716,5719,5722,5725,5728],{"className":5690},[402],[390,5692],{"className":5693,"style":446},[406],[390,5695,667],{"className":5696},[411],[390,5698,729],{"className":5699},[485],[390,5701,912],{"className":5702},[911],[390,5704,5706],{"className":5705},[463]," ",[390,5708],{"className":5709,"style":853},[463],[390,5711,3515],{"className":5712},[411,412],[390,5714,3519],{"className":5715},[411,412],[390,5717,721],{"className":5718},[455],[390,5720,725],{"className":5721},[411,412],[390,5723],{"className":5724,"style":464},[463],[390,5726,881],{"className":5727},[468],[390,5729],{"className":5730,"style":464},[463],[390,5732,5734,5737,5740,5743,5746,5749,5752,5755],{"className":5733},[402],[390,5735],{"className":5736,"style":1834},[406],[390,5738,667],{"className":5739},[411],[390,5741,729],{"className":5742},[485],[390,5744,721],{"className":5745},[455],[390,5747,822],{"className":5748,"style":821},[411,412],[390,5750,729],{"className":5751},[485],[390,5753],{"className":5754,"style":853},[463],[390,5756,5758],{"className":5757},[485],[390,5759,729],{"className":5760},[755,1894]," rather than all of ",[390,5763,5765],{"className":5764},[393],[390,5766,5768],{"className":5767,"ariaHidden":398},[397],[390,5769,5771,5774,5777,5780,5783,5786,5789],{"className":5770},[402],[390,5772],{"className":5773,"style":446},[406],[390,5775,721],{"className":5776},[455],[390,5778,725],{"className":5779},[411,412],[390,5781,912],{"className":5782},[911],[390,5784],{"className":5785,"style":853},[463],[390,5787,822],{"className":5788,"style":821},[411,412],[390,5790,486],{"className":5791},[485],".\nSummed over a fixed interval length, those ranges telescope, and the total work\ncollapses to ",[390,5794,5796],{"className":5795},[393],[390,5797,5799],{"className":5798,"ariaHidden":398},[397],[390,5800,5802,5805,5808,5811,5840],{"className":5801},[402],[390,5803],{"className":5804,"style":543},[406],[390,5806,451],{"className":5807,"style":450},[411,412],[390,5809,456],{"className":5810},[455],[390,5812,5814,5817],{"className":5813},[411],[390,5815,526],{"className":5816},[411,412],[390,5818,5820],{"className":5819},[559],[390,5821,5823],{"className":5822},[563],[390,5824,5826],{"className":5825},[567],[390,5827,5829],{"className":5828,"style":572},[571],[390,5830,5831,5834],{"style":575},[390,5832],{"className":5833,"style":580},[579],[390,5835,5837],{"className":5836},[584,585,586,587],[390,5838,591],{"className":5839},[411,587],[390,5841,486],{"className":5842},[485],". This is the optimization behind ",[654,5845,5846],{},"optimal binary search\ntrees"," and the cost-merging part of ",[654,5849,5850],{},"matrix-chain multiplication"," from the\n",[385,5853,5854],{"href":262},"interval-DP lesson",": both have cost functions satisfying QI, so each yields to\nKnuth and runs in ",[390,5857,5859],{"className":5858},[393],[390,5860,5862],{"className":5861,"ariaHidden":398},[397],[390,5863,5865,5868,5871,5874,5903],{"className":5864},[402],[390,5866],{"className":5867,"style":543},[406],[390,5869,451],{"className":5870,"style":450},[411,412],[390,5872,456],{"className":5873},[455],[390,5875,5877,5880],{"className":5876},[411],[390,5878,526],{"className":5879},[411,412],[390,5881,5883],{"className":5882},[559],[390,5884,5886],{"className":5885},[563],[390,5887,5889],{"className":5888},[567],[390,5890,5892],{"className":5891,"style":572},[571],[390,5893,5894,5897],{"style":575},[390,5895],{"className":5896,"style":580},[579],[390,5898,5900],{"className":5899},[584,585,586,587],[390,5901,591],{"className":5902},[411,587],[390,5904,486],{"className":5905},[485],[1446,5907,5909,6103],{"className":5908},[1449,1450],[1452,5910,5914],{"xmlns":1454,"width":5911,"height":5912,"viewBox":5913},"252.630","121.212","-75 -75 189.473 90.909",[1459,5915,5916,5919,5926,5929,5936,5942,5947,5952,5957,5960,5995,6040,6082],{"stroke":1461,"style":1462},[1464,5917],{"fill":1466,"d":5918},"M-65.403-25.548h22.762V-48.31h-22.762Z",[1459,5920,5922],{"transform":5921},"translate(-1.447 2.644)",[1464,5923],{"d":5924,"fill":1461,"stroke":1461,"className":5925,"style":1560},"M-53.334-37.531Q-53.334-37.663-53.280-37.816L-52.608-39.546Q-52.518-39.769-52.518-39.952Q-52.518-40.202-52.694-40.202Q-52.999-40.202-53.209-39.894Q-53.420-39.585-53.526-39.202Q-53.538-39.128-53.608-39.128L-53.709-39.128Q-53.745-39.128-53.772-39.163Q-53.799-39.199-53.799-39.226L-53.799-39.257Q-53.678-39.722-53.383-40.089Q-53.088-40.456-52.678-40.456Q-52.471-40.456-52.301-40.374Q-52.131-40.292-52.028-40.138Q-51.924-39.984-51.924-39.777Q-51.924-39.656-51.983-39.488L-52.655-37.761Q-52.741-37.527-52.741-37.355Q-52.741-37.105-52.565-37.105Q-52.252-37.105-52.038-37.423Q-51.823-37.742-51.741-38.105Q-51.713-38.175-51.655-38.175L-51.549-38.175Q-51.510-38.175-51.487-38.146Q-51.463-38.117-51.463-38.081Q-51.463-38.066-51.471-38.050Q-51.549-37.749-51.696-37.482Q-51.842-37.214-52.067-37.033Q-52.292-36.851-52.581-36.851Q-52.897-36.851-53.116-37.038Q-53.334-37.226-53.334-37.531M-52.413-41.769Q-52.413-41.949-52.266-42.087Q-52.120-42.226-51.944-42.226Q-51.807-42.226-51.715-42.138Q-51.624-42.050-51.624-41.913Q-51.624-41.738-51.768-41.597Q-51.913-41.456-52.084-41.456Q-52.217-41.456-52.315-41.548Q-52.413-41.640-52.413-41.769",[1475],[1464,5927],{"fill":1466,"d":5928},"M-39.796-25.548h22.762V-48.31h-22.762ZM-14.189-25.548H8.573V-48.31h-22.762ZM11.419-25.548H34.18V-48.31H11.419ZM37.026-25.548h22.762V-48.31H37.026ZM62.633-25.548h22.762V-48.31H62.633ZM88.24-25.548h22.763V-48.31H88.24Z",[1459,5930,5932],{"transform":5931},"translate(151.694 1.867)",[1464,5933],{"d":5934,"fill":1461,"stroke":1461,"className":5935,"style":1560},"M-54.135-35.808Q-54.135-36.003-53.999-36.150Q-53.862-36.296-53.670-36.296Q-53.534-36.296-53.438-36.210Q-53.342-36.124-53.342-35.992Q-53.342-35.870-53.417-35.751Q-53.491-35.632-53.596-35.577Q-53.491-35.554-53.374-35.554Q-53.143-35.554-52.940-35.702Q-52.737-35.851-52.600-36.077Q-52.463-36.304-52.405-36.538L-51.655-39.546Q-51.616-39.702-51.616-39.839Q-51.616-39.988-51.668-40.095Q-51.721-40.202-51.854-40.202Q-52.092-40.202-52.303-40.048Q-52.514-39.894-52.668-39.661Q-52.823-39.429-52.924-39.175Q-52.940-39.128-52.999-39.128L-53.100-39.128Q-53.135-39.128-53.163-39.163Q-53.190-39.199-53.190-39.226L-53.190-39.257Q-53.073-39.550-52.874-39.829Q-52.674-40.109-52.411-40.283Q-52.147-40.456-51.838-40.456Q-51.616-40.456-51.422-40.365Q-51.229-40.273-51.114-40.101Q-50.999-39.929-50.999-39.706Q-50.999-39.636-51.030-39.488L-51.784-36.480Q-51.842-36.226-52.004-36.007Q-52.167-35.788-52.383-35.630Q-52.600-35.472-52.868-35.384Q-53.135-35.296-53.389-35.296Q-53.678-35.296-53.907-35.421Q-54.135-35.546-54.135-35.808M-51.495-41.769Q-51.495-41.949-51.350-42.087Q-51.206-42.226-51.022-42.226Q-50.893-42.226-50.797-42.138Q-50.702-42.050-50.702-41.913Q-50.702-41.738-50.846-41.597Q-50.991-41.456-51.167-41.456Q-51.299-41.456-51.397-41.548Q-51.495-41.640-51.495-41.769",[1475],[1459,5937,5939],{"fill":5938},"var(--tk-soft-neutral)",[1464,5940],{"d":5941},"M-14.189-25.548H8.573V-48.31h-22.762Z",[1459,5943,5944],{"fill":1533},[1464,5945],{"d":5946},"M11.419-25.548H34.18V-48.31H11.419Z",[1459,5948,5949],{"fill":1533},[1464,5950],{"d":5951},"M37.026-25.548h22.762V-48.31H37.026Z",[1459,5953,5954],{"fill":5938},[1464,5955],{"d":5956},"M62.633-25.548h22.762V-48.31H62.633Z",[1464,5958],{"fill":1466,"stroke":1489,"d":5959,"style":1547},"M-15.611-54.57v3.415H86.818v-3.414",[1459,5961,5962],{"fill":1489,"stroke":1489},[1459,5963,5964,5971,5977,5983,5989],{"fill":1489,"stroke":1466,"fontFamily":1654,"fontSize":1552},[1459,5965,5967],{"transform":5966},"translate(48.494 -26.453)",[1464,5968],{"d":5969,"fill":1489,"stroke":1489,"className":5970,"style":1560},"M-53.741-36.937L-53.741-38.159Q-53.741-38.187-53.709-38.218Q-53.678-38.249-53.655-38.249L-53.549-38.249Q-53.479-38.249-53.463-38.187Q-53.401-37.867-53.262-37.626Q-53.124-37.386-52.891-37.245Q-52.659-37.105-52.350-37.105Q-52.112-37.105-51.903-37.165Q-51.694-37.226-51.557-37.374Q-51.420-37.523-51.420-37.769Q-51.420-38.023-51.631-38.189Q-51.842-38.355-52.112-38.409L-52.733-38.523Q-53.139-38.601-53.440-38.857Q-53.741-39.113-53.741-39.488Q-53.741-39.855-53.540-40.077Q-53.338-40.300-53.014-40.398Q-52.690-40.495-52.350-40.495Q-51.885-40.495-51.588-40.288L-51.366-40.472Q-51.342-40.495-51.311-40.495L-51.260-40.495Q-51.229-40.495-51.202-40.468Q-51.174-40.441-51.174-40.409L-51.174-39.425Q-51.174-39.394-51.200-39.365Q-51.225-39.335-51.260-39.335L-51.366-39.335Q-51.401-39.335-51.428-39.363Q-51.456-39.390-51.456-39.425Q-51.456-39.824-51.708-40.044Q-51.959-40.265-52.358-40.265Q-52.713-40.265-52.997-40.142Q-53.280-40.019-53.280-39.714Q-53.280-39.495-53.079-39.363Q-52.877-39.230-52.631-39.187L-52.006-39.074Q-51.577-38.984-51.268-38.687Q-50.959-38.390-50.959-37.976Q-50.959-37.406-51.358-37.128Q-51.756-36.851-52.350-36.851Q-52.901-36.851-53.252-37.187L-53.549-36.874Q-53.573-36.851-53.608-36.851L-53.655-36.851Q-53.678-36.851-53.709-36.882Q-53.741-36.913-53.741-36.937M-50.389-38.656Q-50.389-39.152-50.139-39.577Q-49.889-40.003-49.469-40.249Q-49.049-40.495-48.549-40.495Q-48.010-40.495-47.620-40.370Q-47.229-40.245-47.229-39.831Q-47.229-39.726-47.280-39.634Q-47.331-39.542-47.422-39.492Q-47.514-39.441-47.624-39.441Q-47.729-39.441-47.821-39.492Q-47.913-39.542-47.963-39.634Q-48.014-39.726-48.014-39.831Q-48.014-40.054-47.846-40.159Q-48.069-40.218-48.542-40.218Q-48.838-40.218-49.053-40.079Q-49.268-39.941-49.399-39.710Q-49.530-39.480-49.588-39.210Q-49.647-38.941-49.647-38.656Q-49.647-38.261-49.514-37.911Q-49.381-37.562-49.110-37.345Q-48.838-37.128-48.440-37.128Q-48.065-37.128-47.790-37.345Q-47.514-37.562-47.413-37.921Q-47.397-37.984-47.334-37.984L-47.229-37.984Q-47.194-37.984-47.168-37.956Q-47.143-37.929-47.143-37.890L-47.143-37.867Q-47.276-37.386-47.661-37.118Q-48.045-36.851-48.549-36.851Q-48.913-36.851-49.247-36.988Q-49.581-37.124-49.840-37.374Q-50.100-37.624-50.245-37.960Q-50.389-38.296-50.389-38.656M-46.557-37.761Q-46.557-38.245-46.155-38.540Q-45.752-38.835-45.202-38.954Q-44.651-39.074-44.159-39.074L-44.159-39.363Q-44.159-39.589-44.274-39.796Q-44.389-40.003-44.586-40.122Q-44.784-40.242-45.014-40.242Q-45.440-40.242-45.725-40.136Q-45.655-40.109-45.608-40.054Q-45.561-39.999-45.536-39.929Q-45.510-39.859-45.510-39.784Q-45.510-39.679-45.561-39.587Q-45.612-39.495-45.704-39.445Q-45.795-39.394-45.901-39.394Q-46.006-39.394-46.098-39.445Q-46.190-39.495-46.241-39.587Q-46.292-39.679-46.292-39.784Q-46.292-40.202-45.903-40.349Q-45.514-40.495-45.014-40.495Q-44.682-40.495-44.329-40.365Q-43.975-40.234-43.747-39.980Q-43.518-39.726-43.518-39.378L-43.518-37.577Q-43.518-37.445-43.446-37.335Q-43.374-37.226-43.245-37.226Q-43.120-37.226-43.051-37.331Q-42.983-37.437-42.983-37.577L-42.983-38.089L-42.702-38.089L-42.702-37.577Q-42.702-37.374-42.819-37.216Q-42.936-37.058-43.118-36.974Q-43.299-36.890-43.502-36.890Q-43.733-36.890-43.885-37.062Q-44.038-37.234-44.069-37.464Q-44.229-37.183-44.538-37.017Q-44.846-36.851-45.198-36.851Q-45.709-36.851-46.133-37.074Q-46.557-37.296-46.557-37.761M-45.870-37.761Q-45.870-37.476-45.643-37.290Q-45.417-37.105-45.124-37.105Q-44.877-37.105-44.653-37.222Q-44.428-37.339-44.293-37.542Q-44.159-37.745-44.159-37.999L-44.159-38.831Q-44.424-38.831-44.709-38.777Q-44.995-38.722-45.266-38.593Q-45.538-38.464-45.704-38.257Q-45.870-38.050-45.870-37.761M-40.479-36.929L-42.334-36.929L-42.334-37.226Q-42.061-37.226-41.893-37.273Q-41.725-37.320-41.725-37.488L-41.725-39.624Q-41.725-39.839-41.788-39.935Q-41.850-40.031-41.969-40.052Q-42.088-40.074-42.334-40.074L-42.334-40.370L-41.143-40.456L-41.143-39.722Q-41.030-39.937-40.836-40.105Q-40.643-40.273-40.405-40.365Q-40.167-40.456-39.913-40.456Q-38.745-40.456-38.745-39.378L-38.745-37.488Q-38.745-37.320-38.575-37.273Q-38.405-37.226-38.135-37.226L-38.135-36.929L-39.991-36.929L-39.991-37.226Q-39.717-37.226-39.549-37.273Q-39.381-37.320-39.381-37.488L-39.381-39.363Q-39.381-39.745-39.502-39.974Q-39.624-40.202-39.975-40.202Q-40.288-40.202-40.542-40.040Q-40.795-39.878-40.942-39.609Q-41.088-39.339-41.088-39.042L-41.088-37.488Q-41.088-37.320-40.918-37.273Q-40.749-37.226-40.479-37.226",[1475],[1459,5972,5973],{"transform":5966},[1464,5974],{"d":5975,"fill":1489,"stroke":1489,"className":5976,"style":1560},"M-34.848-38.624Q-34.848-39.128-34.592-39.560Q-34.336-39.992-33.900-40.243Q-33.465-40.495-32.965-40.495Q-32.578-40.495-32.236-40.351Q-31.895-40.206-31.633-39.945Q-31.371-39.683-31.229-39.347Q-31.086-39.011-31.086-38.624Q-31.086-38.132-31.350-37.722Q-31.613-37.312-32.043-37.081Q-32.473-36.851-32.965-36.851Q-33.457-36.851-33.891-37.083Q-34.324-37.316-34.586-37.724Q-34.848-38.132-34.848-38.624M-32.965-37.128Q-32.508-37.128-32.256-37.351Q-32.004-37.574-31.916-37.925Q-31.828-38.277-31.828-38.722Q-31.828-39.152-31.922-39.490Q-32.016-39.827-32.270-40.034Q-32.523-40.242-32.965-40.242Q-33.613-40.242-33.857-39.825Q-34.102-39.409-34.102-38.722Q-34.102-38.277-34.014-37.925Q-33.926-37.574-33.674-37.351Q-33.422-37.128-32.965-37.128M-28.672-36.929L-30.527-36.929L-30.527-37.226Q-30.254-37.226-30.086-37.273Q-29.918-37.320-29.918-37.488L-29.918-39.624Q-29.918-39.839-29.981-39.935Q-30.043-40.031-30.162-40.052Q-30.281-40.074-30.527-40.074L-30.527-40.370L-29.336-40.456L-29.336-39.722Q-29.223-39.937-29.029-40.105Q-28.836-40.273-28.598-40.365Q-28.359-40.456-28.106-40.456Q-26.938-40.456-26.938-39.378L-26.938-37.488Q-26.938-37.320-26.768-37.273Q-26.598-37.226-26.328-37.226L-26.328-36.929L-28.184-36.929L-28.184-37.226Q-27.910-37.226-27.742-37.273Q-27.574-37.320-27.574-37.488L-27.574-39.363Q-27.574-39.745-27.695-39.974Q-27.816-40.202-28.168-40.202Q-28.481-40.202-28.734-40.040Q-28.988-39.878-29.135-39.609Q-29.281-39.339-29.281-39.042L-29.281-37.488Q-29.281-37.320-29.111-37.273Q-28.941-37.226-28.672-37.226L-28.672-36.929M-23.969-36.929L-25.801-36.929L-25.801-37.226Q-25.527-37.226-25.359-37.273Q-25.191-37.320-25.191-37.488L-25.191-41.648Q-25.191-41.863-25.254-41.958Q-25.316-42.054-25.436-42.075Q-25.555-42.097-25.801-42.097L-25.801-42.394L-24.578-42.480L-24.578-37.488Q-24.578-37.320-24.410-37.273Q-24.242-37.226-23.969-37.226L-23.969-36.929M-23.106-35.632Q-22.992-35.554-22.816-35.554Q-22.527-35.554-22.307-35.767Q-22.086-35.980-21.961-36.281L-21.672-36.929L-22.945-39.816Q-23.027-39.992-23.172-40.036Q-23.316-40.081-23.586-40.081L-23.586-40.378L-21.867-40.378L-21.867-40.081Q-22.289-40.081-22.289-39.898Q-22.289-39.886-22.273-39.816L-21.336-37.691L-20.504-39.601Q-20.465-39.691-20.465-39.769Q-20.465-39.909-20.566-39.995Q-20.668-40.081-20.809-40.081L-20.809-40.378L-19.457-40.378L-19.457-40.081Q-19.711-40.081-19.904-39.956Q-20.098-39.831-20.203-39.601L-21.648-36.281Q-21.762-36.027-21.928-35.804Q-22.094-35.581-22.322-35.439Q-22.551-35.296-22.816-35.296Q-23.113-35.296-23.354-35.488Q-23.594-35.679-23.594-35.968Q-23.594-36.124-23.488-36.226Q-23.383-36.327-23.234-36.327Q-23.129-36.327-23.049-36.281Q-22.969-36.234-22.922-36.156Q-22.875-36.077-22.875-35.968Q-22.875-35.847-22.936-35.759Q-22.996-35.671-23.106-35.632",[1475],[1459,5978,5979],{"transform":5966},[1464,5980],{"d":5981,"fill":1489,"stroke":1489,"className":5982,"style":1560},"M-15.570-37.890L-15.570-40.081L-16.273-40.081L-16.273-40.335Q-15.917-40.335-15.675-40.568Q-15.433-40.800-15.322-41.148Q-15.210-41.495-15.210-41.851L-14.929-41.851L-14.929-40.378L-13.753-40.378L-13.753-40.081L-14.929-40.081L-14.929-37.906Q-14.929-37.585-14.810-37.357Q-14.691-37.128-14.410-37.128Q-14.230-37.128-14.113-37.251Q-13.995-37.374-13.943-37.554Q-13.890-37.734-13.890-37.906L-13.890-38.378L-13.609-38.378L-13.609-37.890Q-13.609-37.636-13.714-37.396Q-13.820-37.156-14.017-37.003Q-14.214-36.851-14.472-36.851Q-14.788-36.851-15.040-36.974Q-15.292-37.097-15.431-37.331Q-15.570-37.566-15.570-37.890M-10.960-36.929L-12.816-36.929L-12.816-37.226Q-12.542-37.226-12.374-37.273Q-12.206-37.320-12.206-37.488L-12.206-41.648Q-12.206-41.863-12.269-41.958Q-12.331-42.054-12.451-42.075Q-12.570-42.097-12.816-42.097L-12.816-42.394L-11.593-42.480L-11.593-39.777Q-11.468-39.988-11.281-40.138Q-11.093-40.288-10.867-40.372Q-10.640-40.456-10.394-40.456Q-9.226-40.456-9.226-39.378L-9.226-37.488Q-9.226-37.320-9.056-37.273Q-8.886-37.226-8.617-37.226L-8.617-36.929L-10.472-36.929L-10.472-37.226Q-10.199-37.226-10.031-37.273Q-9.863-37.320-9.863-37.488L-9.863-39.363Q-9.863-39.745-9.984-39.974Q-10.105-40.202-10.456-40.202Q-10.769-40.202-11.023-40.040Q-11.277-39.878-11.423-39.609Q-11.570-39.339-11.570-39.042L-11.570-37.488Q-11.570-37.320-11.400-37.273Q-11.230-37.226-10.960-37.226L-10.960-36.929M-6.312-36.929L-8.089-36.929L-8.089-37.226Q-7.816-37.226-7.648-37.273Q-7.480-37.320-7.480-37.488L-7.480-39.624Q-7.480-39.839-7.537-39.935Q-7.593-40.031-7.706-40.052Q-7.820-40.074-8.066-40.074L-8.066-40.370L-6.867-40.456L-6.867-37.488Q-6.867-37.320-6.720-37.273Q-6.574-37.226-6.312-37.226L-6.312-36.929M-7.753-41.851Q-7.753-42.042-7.619-42.173Q-7.484-42.304-7.288-42.304Q-7.167-42.304-7.064-42.242Q-6.960-42.179-6.898-42.075Q-6.835-41.972-6.835-41.851Q-6.835-41.656-6.966-41.521Q-7.097-41.386-7.288-41.386Q-7.488-41.386-7.620-41.519Q-7.753-41.652-7.753-41.851M-5.769-36.937L-5.769-38.159Q-5.769-38.187-5.738-38.218Q-5.706-38.249-5.683-38.249L-5.578-38.249Q-5.507-38.249-5.492-38.187Q-5.429-37.867-5.290-37.626Q-5.152-37.386-4.919-37.245Q-4.687-37.105-4.378-37.105Q-4.140-37.105-3.931-37.165Q-3.722-37.226-3.585-37.374Q-3.449-37.523-3.449-37.769Q-3.449-38.023-3.660-38.189Q-3.870-38.355-4.140-38.409L-4.761-38.523Q-5.167-38.601-5.468-38.857Q-5.769-39.113-5.769-39.488Q-5.769-39.855-5.568-40.077Q-5.367-40.300-5.042-40.398Q-4.718-40.495-4.378-40.495Q-3.913-40.495-3.617-40.288L-3.394-40.472Q-3.370-40.495-3.339-40.495L-3.288-40.495Q-3.257-40.495-3.230-40.468Q-3.203-40.441-3.203-40.409L-3.203-39.425Q-3.203-39.394-3.228-39.365Q-3.253-39.335-3.288-39.335L-3.394-39.335Q-3.429-39.335-3.456-39.363Q-3.484-39.390-3.484-39.425Q-3.484-39.824-3.736-40.044Q-3.988-40.265-4.386-40.265Q-4.742-40.265-5.025-40.142Q-5.308-40.019-5.308-39.714Q-5.308-39.495-5.107-39.363Q-4.906-39.230-4.660-39.187L-4.035-39.074Q-3.605-38.984-3.296-38.687Q-2.988-38.390-2.988-37.976Q-2.988-37.406-3.386-37.128Q-3.785-36.851-4.378-36.851Q-4.929-36.851-5.281-37.187L-5.578-36.874Q-5.601-36.851-5.636-36.851L-5.683-36.851Q-5.706-36.851-5.738-36.882Q-5.769-36.913-5.769-36.937",[1475],[1459,5984,5985],{"transform":5966},[1464,5986],{"d":5987,"fill":1489,"stroke":1489,"className":5988,"style":1560},"M1.966-36.960L0.896-39.816Q0.830-39.995 0.699-40.038Q0.568-40.081 0.310-40.081L0.310-40.378L1.990-40.378L1.990-40.081Q1.540-40.081 1.540-39.882Q1.544-39.867 1.546-39.849Q1.548-39.831 1.548-39.816L2.341-37.722L3.052-39.632Q3.017-39.726 3.017-39.771Q3.017-39.816 2.982-39.816Q2.915-39.995 2.785-40.038Q2.654-40.081 2.400-40.081L2.400-40.378L3.990-40.378L3.990-40.081Q3.540-40.081 3.540-39.882Q3.544-39.863 3.546-39.845Q3.548-39.827 3.548-39.816L4.380-37.601L5.134-39.601Q5.158-39.659 5.158-39.730Q5.158-39.890 5.021-39.986Q4.884-40.081 4.716-40.081L4.716-40.378L6.103-40.378L6.103-40.081Q5.869-40.081 5.691-39.954Q5.513-39.827 5.431-39.601L4.447-36.960Q4.392-36.851 4.279-36.851L4.220-36.851Q4.107-36.851 4.064-36.960L3.204-39.234L2.349-36.960Q2.310-36.851 2.189-36.851L2.134-36.851Q2.021-36.851 1.966-36.960M8.376-36.929L6.599-36.929L6.599-37.226Q6.872-37.226 7.040-37.273Q7.208-37.320 7.208-37.488L7.208-39.624Q7.208-39.839 7.152-39.935Q7.095-40.031 6.982-40.052Q6.869-40.074 6.622-40.074L6.622-40.370L7.822-40.456L7.822-37.488Q7.822-37.320 7.968-37.273Q8.115-37.226 8.376-37.226L8.376-36.929M6.935-41.851Q6.935-42.042 7.070-42.173Q7.205-42.304 7.400-42.304Q7.521-42.304 7.624-42.242Q7.728-42.179 7.790-42.075Q7.853-41.972 7.853-41.851Q7.853-41.656 7.722-41.521Q7.591-41.386 7.400-41.386Q7.201-41.386 7.068-41.519Q6.935-41.652 6.935-41.851M10.806-36.929L8.951-36.929L8.951-37.226Q9.224-37.226 9.392-37.273Q9.560-37.320 9.560-37.488L9.560-39.624Q9.560-39.839 9.497-39.935Q9.435-40.031 9.316-40.052Q9.197-40.074 8.951-40.074L8.951-40.370L10.142-40.456L10.142-39.722Q10.255-39.937 10.449-40.105Q10.642-40.273 10.880-40.365Q11.119-40.456 11.372-40.456Q12.540-40.456 12.540-39.378L12.540-37.488Q12.540-37.320 12.710-37.273Q12.880-37.226 13.150-37.226L13.150-36.929L11.294-36.929L11.294-37.226Q11.568-37.226 11.736-37.273Q11.904-37.320 11.904-37.488L11.904-39.363Q11.904-39.745 11.783-39.974Q11.662-40.202 11.310-40.202Q10.997-40.202 10.744-40.040Q10.490-39.878 10.343-39.609Q10.197-39.339 10.197-39.042L10.197-37.488Q10.197-37.320 10.367-37.273Q10.537-37.226 10.806-37.226L10.806-36.929M15.412-36.851Q14.931-36.851 14.523-37.095Q14.115-37.339 13.876-37.753Q13.638-38.167 13.638-38.656Q13.638-39.148 13.896-39.564Q14.154-39.980 14.585-40.218Q15.017-40.456 15.509-40.456Q16.130-40.456 16.579-40.019L16.579-41.648Q16.579-41.863 16.517-41.958Q16.454-42.054 16.337-42.075Q16.220-42.097 15.974-42.097L15.974-42.394L17.197-42.480L17.197-37.671Q17.197-37.460 17.259-37.365Q17.322-37.269 17.439-37.247Q17.556-37.226 17.806-37.226L17.806-36.929L16.556-36.851L16.556-37.335Q16.091-36.851 15.412-36.851M15.478-37.105Q15.818-37.105 16.111-37.296Q16.404-37.488 16.556-37.784L16.556-39.617Q16.408-39.890 16.146-40.046Q15.884-40.202 15.572-40.202Q14.947-40.202 14.663-39.755Q14.380-39.308 14.380-38.648Q14.380-38.003 14.632-37.554Q14.884-37.105 15.478-37.105M18.314-38.624Q18.314-39.128 18.570-39.560Q18.826-39.992 19.261-40.243Q19.697-40.495 20.197-40.495Q20.583-40.495 20.925-40.351Q21.267-40.206 21.529-39.945Q21.790-39.683 21.933-39.347Q22.076-39.011 22.076-38.624Q22.076-38.132 21.812-37.722Q21.548-37.312 21.119-37.081Q20.689-36.851 20.197-36.851Q19.704-36.851 19.271-37.083Q18.837-37.316 18.576-37.724Q18.314-38.132 18.314-38.624M20.197-37.128Q20.654-37.128 20.906-37.351Q21.158-37.574 21.246-37.925Q21.333-38.277 21.333-38.722Q21.333-39.152 21.240-39.490Q21.146-39.827 20.892-40.034Q20.638-40.242 20.197-40.242Q19.548-40.242 19.304-39.825Q19.060-39.409 19.060-38.722Q19.060-38.277 19.148-37.925Q19.236-37.574 19.488-37.351Q19.740-37.128 20.197-37.128",[1475],[1459,5990,5991],{"transform":5966},[1464,5992],{"d":5993,"fill":1489,"stroke":1489,"className":5994,"style":1560},"M23.925-36.960L22.855-39.816Q22.788-39.995 22.658-40.038Q22.527-40.081 22.269-40.081L22.269-40.378L23.949-40.378L23.949-40.081Q23.499-40.081 23.499-39.882Q23.503-39.867 23.505-39.849Q23.507-39.831 23.507-39.816L24.300-37.722L25.011-39.632Q24.976-39.726 24.976-39.771Q24.976-39.816 24.941-39.816Q24.874-39.995 24.744-40.038Q24.613-40.081 24.359-40.081L24.359-40.378L25.949-40.378L25.949-40.081Q25.499-40.081 25.499-39.882Q25.503-39.863 25.505-39.845Q25.507-39.827 25.507-39.816L26.339-37.601L27.093-39.601Q27.117-39.659 27.117-39.730Q27.117-39.890 26.980-39.986Q26.843-40.081 26.675-40.081L26.675-40.378L28.062-40.378L28.062-40.081Q27.828-40.081 27.650-39.954Q27.472-39.827 27.390-39.601L26.406-36.960Q26.351-36.851 26.238-36.851L26.179-36.851Q26.066-36.851 26.023-36.960L25.163-39.234L24.308-36.960Q24.269-36.851 24.148-36.851L24.093-36.851Q23.980-36.851 23.925-36.960",[1475],[1459,5996,5997,6004,6010,6016,6022,6028,6034],{"stroke":1466,"fontSize":1552},[1459,5998,6000],{"transform":5999},"translate(31.937 24.193)",[1464,6001],{"d":6002,"fill":1461,"stroke":1461,"className":6003,"style":1560},"M-53.686-38.234Q-53.686-38.656-53.497-39.058Q-53.307-39.460-52.981-39.777Q-52.655-40.093-52.252-40.275Q-51.850-40.456-51.428-40.456Q-50.823-40.456-50.422-40.068Q-50.022-39.679-50.022-39.074Q-50.022-38.659-50.211-38.255Q-50.401-37.851-50.727-37.533Q-51.053-37.214-51.454-37.033Q-51.854-36.851-52.280-36.851Q-52.581-36.851-52.836-36.952Q-53.092-37.054-53.284-37.242Q-53.475-37.429-53.581-37.687Q-53.686-37.945-53.686-38.234M-52.260-37.105Q-51.897-37.105-51.602-37.324Q-51.307-37.542-51.108-37.892Q-50.909-38.242-50.805-38.632Q-50.702-39.023-50.702-39.363Q-50.702-39.726-50.901-39.964Q-51.100-40.202-51.448-40.202Q-51.819-40.202-52.114-39.982Q-52.409-39.761-52.610-39.409Q-52.811-39.058-52.913-38.663Q-53.014-38.269-53.014-37.945Q-53.014-37.589-52.815-37.347Q-52.616-37.105-52.260-37.105M-48.428-35.378L-50.030-35.378Q-50.065-35.378-50.098-35.419Q-50.131-35.460-50.131-35.495L-50.100-35.601Q-50.069-35.663-50.014-35.671Q-49.823-35.671-49.739-35.687Q-49.655-35.702-49.602-35.769Q-49.549-35.835-49.510-35.976L-48.620-39.546Q-48.581-39.702-48.581-39.839Q-48.581-39.988-48.633-40.095Q-48.686-40.202-48.819-40.202Q-48.999-40.202-49.118-40.033Q-49.237-39.863-49.293-39.677Q-49.350-39.492-49.420-39.202Q-49.432-39.128-49.502-39.128L-49.604-39.128Q-49.639-39.128-49.667-39.163Q-49.694-39.199-49.694-39.226L-49.694-39.257Q-49.608-39.589-49.514-39.831Q-49.420-40.074-49.245-40.265Q-49.069-40.456-48.803-40.456Q-48.522-40.456-48.292-40.312Q-48.061-40.167-47.995-39.913Q-47.475-40.456-46.917-40.456Q-46.381-40.456-46.061-40.072Q-45.741-39.687-45.741-39.144Q-45.741-38.620-46.022-38.081Q-46.303-37.542-46.770-37.197Q-47.237-36.851-47.772-36.851Q-48.010-36.851-48.211-36.968Q-48.413-37.085-48.542-37.296L-48.885-35.921Q-48.897-35.882-48.917-35.761Q-48.917-35.671-48.413-35.671Q-48.307-35.640-48.307-35.546L-48.342-35.441Q-48.374-35.386-48.428-35.378M-47.987-39.495L-48.420-37.769Q-48.362-37.495-48.192-37.300Q-48.022-37.105-47.756-37.105Q-47.420-37.105-47.141-37.396Q-46.862-37.687-46.725-38.042Q-46.600-38.335-46.499-38.769Q-46.397-39.202-46.397-39.480Q-46.397-39.765-46.530-39.984Q-46.663-40.202-46.932-40.202Q-47.143-40.202-47.338-40.101Q-47.534-39.999-47.694-39.843Q-47.854-39.687-47.987-39.495M-45.092-37.601Q-45.092-37.710-45.069-37.816L-44.499-40.081L-45.346-40.081Q-45.452-40.109-45.452-40.210L-45.428-40.312Q-45.409-40.363-45.331-40.378L-44.428-40.378L-44.108-41.640Q-44.081-41.769-43.975-41.849Q-43.870-41.929-43.741-41.929Q-43.631-41.929-43.553-41.855Q-43.475-41.781-43.475-41.671Q-43.475-41.624-43.483-41.601L-43.788-40.378L-42.940-40.378Q-42.842-40.347-42.842-40.257L-42.866-40.152Q-42.874-40.101-42.956-40.081L-43.858-40.081L-44.444-37.761Q-44.483-37.515-44.483-37.464Q-44.483-37.105-44.237-37.105Q-43.874-37.105-43.596-37.421Q-43.319-37.738-43.170-38.128Q-43.139-38.175-43.092-38.175L-42.987-38.175Q-42.948-38.175-42.924-38.146Q-42.901-38.117-42.901-38.081Q-42.901-38.066-42.909-38.050Q-43.092-37.566-43.446-37.208Q-43.799-36.851-44.252-36.851Q-44.596-36.851-44.844-37.058Q-45.092-37.265-45.092-37.601",[1475],[1459,6005,6006],{"transform":5999},[1464,6007],{"d":6008,"fill":1461,"stroke":1461,"className":6009,"style":1560},"M-40.398-34.929L-41.574-34.929L-41.574-42.929L-40.398-42.929L-40.398-42.562L-41.207-42.562L-41.207-35.296L-40.398-35.296",[1475],[1459,6011,6012],{"transform":5999},[1464,6013],{"d":6014,"fill":1461,"stroke":1461,"className":6015,"style":1560},"M-39.517-37.531Q-39.517-37.663-39.462-37.816L-38.790-39.546Q-38.700-39.769-38.700-39.952Q-38.700-40.202-38.876-40.202Q-39.181-40.202-39.392-39.894Q-39.602-39.585-39.708-39.202Q-39.720-39.128-39.790-39.128L-39.892-39.128Q-39.927-39.128-39.954-39.163Q-39.981-39.199-39.981-39.226L-39.981-39.257Q-39.860-39.722-39.565-40.089Q-39.270-40.456-38.860-40.456Q-38.653-40.456-38.483-40.374Q-38.313-40.292-38.210-40.138Q-38.106-39.984-38.106-39.777Q-38.106-39.656-38.165-39.488L-38.837-37.761Q-38.923-37.527-38.923-37.355Q-38.923-37.105-38.747-37.105Q-38.434-37.105-38.220-37.423Q-38.005-37.742-37.923-38.105Q-37.895-38.175-37.837-38.175L-37.731-38.175Q-37.692-38.175-37.669-38.146Q-37.645-38.117-37.645-38.081Q-37.645-38.066-37.653-38.050Q-37.731-37.749-37.878-37.482Q-38.024-37.214-38.249-37.033Q-38.474-36.851-38.763-36.851Q-39.079-36.851-39.298-37.038Q-39.517-37.226-39.517-37.531M-38.595-41.769Q-38.595-41.949-38.448-42.087Q-38.302-42.226-38.126-42.226Q-37.989-42.226-37.897-42.138Q-37.806-42.050-37.806-41.913Q-37.806-41.738-37.950-41.597Q-38.095-41.456-38.267-41.456Q-38.399-41.456-38.497-41.548Q-38.595-41.640-38.595-41.769",[1475],[1459,6017,6018],{"transform":5999},[1464,6019],{"d":6020,"fill":1461,"stroke":1461,"className":6021,"style":1560},"M-35.952-34.929L-37.127-34.929L-37.127-35.296L-36.319-35.296L-36.319-42.562L-37.127-42.562L-37.127-42.929L-35.952-42.929L-35.952-34.929M-32.784-34.929L-33.959-34.929L-33.959-42.929L-32.784-42.929L-32.784-42.562L-33.592-42.562L-33.592-35.296L-32.784-35.296",[1475],[1459,6023,6024],{"transform":5999},[1464,6025],{"d":6026,"fill":1461,"stroke":1461,"className":6027,"style":1560},"M-32.701-35.808Q-32.701-36.003-32.565-36.150Q-32.428-36.296-32.236-36.296Q-32.100-36.296-32.004-36.210Q-31.908-36.124-31.908-35.992Q-31.908-35.870-31.983-35.751Q-32.057-35.632-32.162-35.577Q-32.057-35.554-31.940-35.554Q-31.709-35.554-31.506-35.702Q-31.303-35.851-31.166-36.077Q-31.029-36.304-30.971-36.538L-30.221-39.546Q-30.182-39.702-30.182-39.839Q-30.182-39.988-30.234-40.095Q-30.287-40.202-30.420-40.202Q-30.658-40.202-30.869-40.048Q-31.080-39.894-31.234-39.661Q-31.389-39.429-31.490-39.175Q-31.506-39.128-31.565-39.128L-31.666-39.128Q-31.701-39.128-31.729-39.163Q-31.756-39.199-31.756-39.226L-31.756-39.257Q-31.639-39.550-31.440-39.829Q-31.240-40.109-30.977-40.283Q-30.713-40.456-30.404-40.456Q-30.182-40.456-29.988-40.365Q-29.795-40.273-29.680-40.101Q-29.565-39.929-29.565-39.706Q-29.565-39.636-29.596-39.488L-30.350-36.480Q-30.408-36.226-30.570-36.007Q-30.733-35.788-30.949-35.630Q-31.166-35.472-31.434-35.384Q-31.701-35.296-31.955-35.296Q-32.244-35.296-32.473-35.421Q-32.701-35.546-32.701-35.808M-30.061-41.769Q-30.061-41.949-29.916-42.087Q-29.772-42.226-29.588-42.226Q-29.459-42.226-29.363-42.138Q-29.268-42.050-29.268-41.913Q-29.268-41.738-29.412-41.597Q-29.557-41.456-29.733-41.456Q-29.865-41.456-29.963-41.548Q-30.061-41.640-30.061-41.769",[1475],[1459,6029,6030],{"transform":5999},[1464,6031],{"d":6032,"fill":1461,"stroke":1461,"className":6033,"style":1560},"M-22.971-38.745L-27.803-38.745Q-27.878-38.757-27.928-38.806Q-27.979-38.855-27.979-38.929Q-27.979-39.081-27.803-39.113L-22.971-39.113Q-22.803-39.085-22.803-38.929Q-22.803-38.773-22.971-38.745",[1475],[1459,6035,6036],{"transform":5999},[1464,6037],{"d":6038,"fill":1461,"stroke":1461,"className":6039,"style":1560},"M-18.484-36.929L-21.277-36.929L-21.277-37.226Q-20.215-37.226-20.215-37.488L-20.215-41.656Q-20.644-41.441-21.324-41.441L-21.324-41.738Q-20.305-41.738-19.789-42.249L-19.644-42.249Q-19.570-42.230-19.551-42.152L-19.551-37.488Q-19.551-37.226-18.484-37.226L-18.484-36.929M-16.473-34.929L-17.648-34.929L-17.648-35.296L-16.840-35.296L-16.840-42.562L-17.648-42.562L-17.648-42.929L-16.473-42.929",[1475],[1459,6041,6042,6048,6053,6058,6064,6070,6076],{"stroke":1466,"fontSize":1552},[1459,6043,6045],{"transform":6044},"translate(108.759 24.193)",[1464,6046],{"d":6002,"fill":1461,"stroke":1461,"className":6047,"style":1560},[1475],[1459,6049,6050],{"transform":6044},[1464,6051],{"d":6008,"fill":1461,"stroke":1461,"className":6052,"style":1560},[1475],[1459,6054,6055],{"transform":6044},[1464,6056],{"d":6014,"fill":1461,"stroke":1461,"className":6057,"style":1560},[1475],[1459,6059,6060],{"transform":6044},[1464,6061],{"d":6062,"fill":1461,"stroke":1461,"className":6063,"style":1560},"M-34.190-38.745L-36.663-38.745Q-36.741-38.757-36.790-38.806Q-36.838-38.855-36.838-38.929Q-36.838-39.003-36.790-39.052Q-36.741-39.101-36.663-39.113L-34.190-39.113L-34.190-41.593Q-34.163-41.761-34.006-41.761Q-33.932-41.761-33.883-41.712Q-33.834-41.663-33.823-41.593L-33.823-39.113L-31.350-39.113Q-31.182-39.081-31.182-38.929Q-31.182-38.777-31.350-38.745L-33.823-38.745L-33.823-36.265Q-33.834-36.195-33.883-36.146Q-33.932-36.097-34.006-36.097Q-34.163-36.097-34.190-36.265",[1475],[1459,6065,6066],{"transform":6044},[1464,6067],{"d":6068,"fill":1461,"stroke":1461,"className":6069,"style":1560},"M-27.105-36.929L-29.898-36.929L-29.898-37.226Q-28.836-37.226-28.836-37.488L-28.836-41.656Q-29.265-41.441-29.945-41.441L-29.945-41.738Q-28.926-41.738-28.410-42.249L-28.265-42.249Q-28.191-42.230-28.172-42.152L-28.172-37.488Q-28.172-37.226-27.105-37.226L-27.105-36.929M-25.094-34.929L-26.269-34.929L-26.269-35.296L-25.461-35.296L-25.461-42.562L-26.269-42.562L-26.269-42.929L-25.094-42.929L-25.094-34.929M-21.926-34.929L-23.101-34.929L-23.101-42.929L-21.926-42.929L-21.926-42.562L-22.734-42.562L-22.734-35.296L-21.926-35.296",[1475],[1459,6071,6072],{"transform":6044},[1464,6073],{"d":6074,"fill":1461,"stroke":1461,"className":6075,"style":1560},"M-21.840-35.808Q-21.840-36.003-21.704-36.150Q-21.567-36.296-21.375-36.296Q-21.239-36.296-21.143-36.210Q-21.047-36.124-21.047-35.992Q-21.047-35.870-21.122-35.751Q-21.196-35.632-21.301-35.577Q-21.196-35.554-21.079-35.554Q-20.848-35.554-20.645-35.702Q-20.442-35.851-20.305-36.077Q-20.168-36.304-20.110-36.538L-19.360-39.546Q-19.321-39.702-19.321-39.839Q-19.321-39.988-19.373-40.095Q-19.426-40.202-19.559-40.202Q-19.797-40.202-20.008-40.048Q-20.219-39.894-20.373-39.661Q-20.528-39.429-20.629-39.175Q-20.645-39.128-20.704-39.128L-20.805-39.128Q-20.840-39.128-20.868-39.163Q-20.895-39.199-20.895-39.226L-20.895-39.257Q-20.778-39.550-20.579-39.829Q-20.379-40.109-20.116-40.283Q-19.852-40.456-19.543-40.456Q-19.321-40.456-19.127-40.365Q-18.934-40.273-18.819-40.101Q-18.704-39.929-18.704-39.706Q-18.704-39.636-18.735-39.488L-19.489-36.480Q-19.547-36.226-19.709-36.007Q-19.872-35.788-20.088-35.630Q-20.305-35.472-20.573-35.384Q-20.840-35.296-21.094-35.296Q-21.383-35.296-21.612-35.421Q-21.840-35.546-21.840-35.808M-19.200-41.769Q-19.200-41.949-19.055-42.087Q-18.911-42.226-18.727-42.226Q-18.598-42.226-18.502-42.138Q-18.407-42.050-18.407-41.913Q-18.407-41.738-18.551-41.597Q-18.696-41.456-18.872-41.456Q-19.004-41.456-19.102-41.548Q-19.200-41.640-19.200-41.769",[1475],[1459,6077,6078],{"transform":6044},[1464,6079],{"d":6080,"fill":1461,"stroke":1461,"className":6081,"style":1560},"M-16.469-34.929L-17.644-34.929L-17.644-35.296L-16.836-35.296L-16.836-42.562L-17.644-42.562L-17.644-42.929L-16.469-42.929",[1475],[1459,6083,6084,6091,6097],{"stroke":1466,"fontSize":1552},[1459,6085,6087],{"transform":6086},"translate(56.8 44.68)",[1464,6088],{"d":6089,"fill":1461,"stroke":1461,"className":6090,"style":1560},"M-53.741-36.937L-53.741-38.159Q-53.741-38.187-53.709-38.218Q-53.678-38.249-53.655-38.249L-53.549-38.249Q-53.479-38.249-53.463-38.187Q-53.401-37.867-53.262-37.626Q-53.124-37.386-52.891-37.245Q-52.659-37.105-52.350-37.105Q-52.112-37.105-51.903-37.165Q-51.694-37.226-51.557-37.374Q-51.420-37.523-51.420-37.769Q-51.420-38.023-51.631-38.189Q-51.842-38.355-52.112-38.409L-52.733-38.523Q-53.139-38.601-53.440-38.857Q-53.741-39.113-53.741-39.488Q-53.741-39.855-53.540-40.077Q-53.338-40.300-53.014-40.398Q-52.690-40.495-52.350-40.495Q-51.885-40.495-51.588-40.288L-51.366-40.472Q-51.342-40.495-51.311-40.495L-51.260-40.495Q-51.229-40.495-51.202-40.468Q-51.174-40.441-51.174-40.409L-51.174-39.425Q-51.174-39.394-51.200-39.365Q-51.225-39.335-51.260-39.335L-51.366-39.335Q-51.401-39.335-51.428-39.363Q-51.456-39.390-51.456-39.425Q-51.456-39.824-51.708-40.044Q-51.959-40.265-52.358-40.265Q-52.713-40.265-52.997-40.142Q-53.280-40.019-53.280-39.714Q-53.280-39.495-53.079-39.363Q-52.877-39.230-52.631-39.187L-52.006-39.074Q-51.577-38.984-51.268-38.687Q-50.959-38.390-50.959-37.976Q-50.959-37.406-51.358-37.128Q-51.756-36.851-52.350-36.851Q-52.901-36.851-53.252-37.187L-53.549-36.874Q-53.573-36.851-53.608-36.851L-53.655-36.851Q-53.678-36.851-53.709-36.882Q-53.741-36.913-53.741-36.937M-48.549-35.378L-50.405-35.378L-50.405-35.671Q-50.135-35.671-49.967-35.716Q-49.799-35.761-49.799-35.937L-49.799-39.761Q-49.799-39.968-49.956-40.021Q-50.112-40.074-50.405-40.074L-50.405-40.370L-49.182-40.456L-49.182-39.992Q-48.952-40.214-48.637-40.335Q-48.323-40.456-47.983-40.456Q-47.510-40.456-47.106-40.210Q-46.702-39.964-46.469-39.548Q-46.237-39.132-46.237-38.656Q-46.237-38.281-46.385-37.952Q-46.534-37.624-46.803-37.372Q-47.073-37.120-47.417-36.986Q-47.760-36.851-48.120-36.851Q-48.409-36.851-48.680-36.972Q-48.952-37.093-49.159-37.304L-49.159-35.937Q-49.159-35.761-48.991-35.716Q-48.823-35.671-48.549-35.671L-48.549-35.378M-49.159-39.593L-49.159-37.753Q-49.006-37.464-48.745-37.284Q-48.483-37.105-48.174-37.105Q-47.889-37.105-47.667-37.243Q-47.444-37.382-47.292-37.613Q-47.139-37.843-47.061-38.115Q-46.983-38.386-46.983-38.656Q-46.983-38.988-47.108-39.345Q-47.233-39.702-47.481-39.939Q-47.729-40.175-48.077-40.175Q-48.401-40.175-48.696-40.019Q-48.991-39.863-49.159-39.593M-43.799-36.929L-45.631-36.929L-45.631-37.226Q-45.358-37.226-45.190-37.273Q-45.022-37.320-45.022-37.488L-45.022-41.648Q-45.022-41.863-45.084-41.958Q-45.147-42.054-45.266-42.075Q-45.385-42.097-45.631-42.097L-45.631-42.394L-44.409-42.480L-44.409-37.488Q-44.409-37.320-44.241-37.273Q-44.073-37.226-43.799-37.226L-43.799-36.929M-41.495-36.929L-43.272-36.929L-43.272-37.226Q-42.999-37.226-42.831-37.273Q-42.663-37.320-42.663-37.488L-42.663-39.624Q-42.663-39.839-42.719-39.935Q-42.776-40.031-42.889-40.052Q-43.002-40.074-43.249-40.074L-43.249-40.370L-42.049-40.456L-42.049-37.488Q-42.049-37.320-41.903-37.273Q-41.756-37.226-41.495-37.226L-41.495-36.929M-42.936-41.851Q-42.936-42.042-42.801-42.173Q-42.667-42.304-42.471-42.304Q-42.350-42.304-42.247-42.242Q-42.143-42.179-42.081-42.075Q-42.018-41.972-42.018-41.851Q-42.018-41.656-42.149-41.521Q-42.280-41.386-42.471-41.386Q-42.670-41.386-42.803-41.519Q-42.936-41.652-42.936-41.851M-40.370-37.890L-40.370-40.081L-41.073-40.081L-41.073-40.335Q-40.717-40.335-40.475-40.568Q-40.233-40.800-40.122-41.148Q-40.010-41.495-40.010-41.851L-39.729-41.851L-39.729-40.378L-38.553-40.378L-38.553-40.081L-39.729-40.081L-39.729-37.906Q-39.729-37.585-39.610-37.357Q-39.491-37.128-39.209-37.128Q-39.030-37.128-38.913-37.251Q-38.795-37.374-38.743-37.554Q-38.690-37.734-38.690-37.906L-38.690-38.378L-38.409-38.378L-38.409-37.890Q-38.409-37.636-38.514-37.396Q-38.620-37.156-38.817-37.003Q-39.014-36.851-39.272-36.851Q-39.588-36.851-39.840-36.974Q-40.092-37.097-40.231-37.331Q-40.370-37.566-40.370-37.890",[1475],[1459,6092,6093],{"transform":6086},[1464,6094],{"d":6095,"fill":1461,"stroke":1461,"className":6096,"style":1560},"M-34.805-38.656Q-34.805-39.152-34.555-39.577Q-34.305-40.003-33.885-40.249Q-33.465-40.495-32.965-40.495Q-32.426-40.495-32.035-40.370Q-31.645-40.245-31.645-39.831Q-31.645-39.726-31.695-39.634Q-31.746-39.542-31.838-39.492Q-31.930-39.441-32.039-39.441Q-32.145-39.441-32.236-39.492Q-32.328-39.542-32.379-39.634Q-32.430-39.726-32.430-39.831Q-32.430-40.054-32.262-40.159Q-32.484-40.218-32.957-40.218Q-33.254-40.218-33.469-40.079Q-33.684-39.941-33.815-39.710Q-33.945-39.480-34.004-39.210Q-34.063-38.941-34.063-38.656Q-34.063-38.261-33.930-37.911Q-33.797-37.562-33.525-37.345Q-33.254-37.128-32.856-37.128Q-32.481-37.128-32.205-37.345Q-31.930-37.562-31.828-37.921Q-31.813-37.984-31.750-37.984L-31.645-37.984Q-31.609-37.984-31.584-37.956Q-31.559-37.929-31.559-37.890L-31.559-37.867Q-31.691-37.386-32.076-37.118Q-32.461-36.851-32.965-36.851Q-33.328-36.851-33.662-36.988Q-33.996-37.124-34.256-37.374Q-34.516-37.624-34.660-37.960Q-34.805-38.296-34.805-38.656M-30.973-37.761Q-30.973-38.245-30.570-38.540Q-30.168-38.835-29.617-38.954Q-29.066-39.074-28.574-39.074L-28.574-39.363Q-28.574-39.589-28.690-39.796Q-28.805-40.003-29.002-40.122Q-29.199-40.242-29.430-40.242Q-29.856-40.242-30.141-40.136Q-30.070-40.109-30.023-40.054Q-29.977-39.999-29.951-39.929Q-29.926-39.859-29.926-39.784Q-29.926-39.679-29.977-39.587Q-30.027-39.495-30.119-39.445Q-30.211-39.394-30.316-39.394Q-30.422-39.394-30.514-39.445Q-30.606-39.495-30.656-39.587Q-30.707-39.679-30.707-39.784Q-30.707-40.202-30.318-40.349Q-29.930-40.495-29.430-40.495Q-29.098-40.495-28.744-40.365Q-28.391-40.234-28.162-39.980Q-27.934-39.726-27.934-39.378L-27.934-37.577Q-27.934-37.445-27.861-37.335Q-27.789-37.226-27.660-37.226Q-27.535-37.226-27.467-37.331Q-27.398-37.437-27.398-37.577L-27.398-38.089L-27.117-38.089L-27.117-37.577Q-27.117-37.374-27.234-37.216Q-27.352-37.058-27.533-36.974Q-27.715-36.890-27.918-36.890Q-28.148-36.890-28.301-37.062Q-28.453-37.234-28.484-37.464Q-28.645-37.183-28.953-37.017Q-29.262-36.851-29.613-36.851Q-30.125-36.851-30.549-37.074Q-30.973-37.296-30.973-37.761M-30.285-37.761Q-30.285-37.476-30.059-37.290Q-29.832-37.105-29.539-37.105Q-29.293-37.105-29.068-37.222Q-28.844-37.339-28.709-37.542Q-28.574-37.745-28.574-37.999L-28.574-38.831Q-28.840-38.831-29.125-38.777Q-29.410-38.722-29.682-38.593Q-29.953-38.464-30.119-38.257Q-30.285-38.050-30.285-37.761M-24.895-36.929L-26.750-36.929L-26.750-37.226Q-26.477-37.226-26.309-37.273Q-26.141-37.320-26.141-37.488L-26.141-39.624Q-26.141-39.839-26.203-39.935Q-26.266-40.031-26.385-40.052Q-26.504-40.074-26.750-40.074L-26.750-40.370L-25.559-40.456L-25.559-39.722Q-25.445-39.937-25.252-40.105Q-25.059-40.273-24.820-40.365Q-24.582-40.456-24.328-40.456Q-23.160-40.456-23.160-39.378L-23.160-37.488Q-23.160-37.320-22.990-37.273Q-22.820-37.226-22.551-37.226L-22.551-36.929L-24.406-36.929L-24.406-37.226Q-24.133-37.226-23.965-37.273Q-23.797-37.320-23.797-37.488L-23.797-39.363Q-23.797-39.745-23.918-39.974Q-24.039-40.202-24.391-40.202Q-24.703-40.202-24.957-40.040Q-25.211-39.878-25.357-39.609Q-25.504-39.339-25.504-39.042L-25.504-37.488Q-25.504-37.320-25.334-37.273Q-25.164-37.226-24.895-37.226L-24.895-36.929M-20.289-36.851Q-20.770-36.851-21.178-37.095Q-21.586-37.339-21.824-37.753Q-22.063-38.167-22.063-38.656Q-22.063-39.148-21.805-39.564Q-21.547-39.980-21.115-40.218Q-20.684-40.456-20.191-40.456Q-19.570-40.456-19.121-40.019L-19.121-41.648Q-19.121-41.863-19.184-41.958Q-19.246-42.054-19.363-42.075Q-19.481-42.097-19.727-42.097L-19.727-42.394L-18.504-42.480L-18.504-37.671Q-18.504-37.460-18.441-37.365Q-18.379-37.269-18.262-37.247Q-18.145-37.226-17.895-37.226L-17.895-36.929L-19.145-36.851L-19.145-37.335Q-19.609-36.851-20.289-36.851M-20.223-37.105Q-19.883-37.105-19.590-37.296Q-19.297-37.488-19.145-37.784L-19.145-39.617Q-19.293-39.890-19.555-40.046Q-19.816-40.202-20.129-40.202Q-20.754-40.202-21.037-39.755Q-21.320-39.308-21.320-38.648Q-21.320-38.003-21.068-37.554Q-20.816-37.105-20.223-37.105M-15.527-36.929L-17.305-36.929L-17.305-37.226Q-17.031-37.226-16.863-37.273Q-16.695-37.320-16.695-37.488L-16.695-39.624Q-16.695-39.839-16.752-39.935Q-16.809-40.031-16.922-40.052Q-17.035-40.074-17.281-40.074L-17.281-40.370L-16.082-40.456L-16.082-37.488Q-16.082-37.320-15.936-37.273Q-15.789-37.226-15.527-37.226L-15.527-36.929M-16.969-41.851Q-16.969-42.042-16.834-42.173Q-16.699-42.304-16.504-42.304Q-16.383-42.304-16.279-42.242Q-16.176-42.179-16.113-42.075Q-16.051-41.972-16.051-41.851Q-16.051-41.656-16.182-41.521Q-16.313-41.386-16.504-41.386Q-16.703-41.386-16.836-41.519Q-16.969-41.652-16.969-41.851M-13.211-36.851Q-13.691-36.851-14.100-37.095Q-14.508-37.339-14.746-37.753Q-14.984-38.167-14.984-38.656Q-14.984-39.148-14.727-39.564Q-14.469-39.980-14.037-40.218Q-13.606-40.456-13.113-40.456Q-12.492-40.456-12.043-40.019L-12.043-41.648Q-12.043-41.863-12.106-41.958Q-12.168-42.054-12.285-42.075Q-12.402-42.097-12.648-42.097L-12.648-42.394L-11.426-42.480L-11.426-37.671Q-11.426-37.460-11.363-37.365Q-11.301-37.269-11.184-37.247Q-11.066-37.226-10.816-37.226L-10.816-36.929L-12.066-36.851L-12.066-37.335Q-12.531-36.851-13.211-36.851M-13.145-37.105Q-12.805-37.105-12.512-37.296Q-12.219-37.488-12.066-37.784L-12.066-39.617Q-12.215-39.890-12.477-40.046Q-12.738-40.202-13.051-40.202Q-13.676-40.202-13.959-39.755Q-14.242-39.308-14.242-38.648Q-14.242-38.003-13.990-37.554Q-13.738-37.105-13.145-37.105M-10.211-37.761Q-10.211-38.245-9.809-38.540Q-9.406-38.835-8.856-38.954Q-8.305-39.074-7.813-39.074L-7.813-39.363Q-7.813-39.589-7.928-39.796Q-8.043-40.003-8.240-40.122Q-8.438-40.242-8.668-40.242Q-9.094-40.242-9.379-40.136Q-9.309-40.109-9.262-40.054Q-9.215-39.999-9.190-39.929Q-9.164-39.859-9.164-39.784Q-9.164-39.679-9.215-39.587Q-9.266-39.495-9.357-39.445Q-9.449-39.394-9.555-39.394Q-9.660-39.394-9.752-39.445Q-9.844-39.495-9.895-39.587Q-9.945-39.679-9.945-39.784Q-9.945-40.202-9.557-40.349Q-9.168-40.495-8.668-40.495Q-8.336-40.495-7.982-40.365Q-7.629-40.234-7.400-39.980Q-7.172-39.726-7.172-39.378L-7.172-37.577Q-7.172-37.445-7.100-37.335Q-7.027-37.226-6.898-37.226Q-6.773-37.226-6.705-37.331Q-6.637-37.437-6.637-37.577L-6.637-38.089L-6.356-38.089L-6.356-37.577Q-6.356-37.374-6.473-37.216Q-6.590-37.058-6.772-36.974Q-6.953-36.890-7.156-36.890Q-7.387-36.890-7.539-37.062Q-7.691-37.234-7.723-37.464Q-7.883-37.183-8.191-37.017Q-8.500-36.851-8.852-36.851Q-9.363-36.851-9.787-37.074Q-10.211-37.296-10.211-37.761M-9.523-37.761Q-9.523-37.476-9.297-37.290Q-9.070-37.105-8.777-37.105Q-8.531-37.105-8.307-37.222Q-8.082-37.339-7.947-37.542Q-7.813-37.745-7.813-37.999L-7.813-38.831Q-8.078-38.831-8.363-38.777Q-8.648-38.722-8.920-38.593Q-9.191-38.464-9.357-38.257Q-9.523-38.050-9.523-37.761M-5.438-37.890L-5.438-40.081L-6.141-40.081L-6.141-40.335Q-5.785-40.335-5.543-40.568Q-5.301-40.800-5.190-41.148Q-5.078-41.495-5.078-41.851L-4.797-41.851L-4.797-40.378L-3.621-40.378L-3.621-40.081L-4.797-40.081L-4.797-37.906Q-4.797-37.585-4.678-37.357Q-4.559-37.128-4.277-37.128Q-4.098-37.128-3.981-37.251Q-3.863-37.374-3.811-37.554Q-3.758-37.734-3.758-37.906L-3.758-38.378L-3.477-38.378L-3.477-37.890Q-3.477-37.636-3.582-37.396Q-3.688-37.156-3.885-37.003Q-4.082-36.851-4.340-36.851Q-4.656-36.851-4.908-36.974Q-5.160-37.097-5.299-37.331Q-5.438-37.566-5.438-37.890M-2.758-38.683Q-2.758-39.163-2.525-39.579Q-2.293-39.995-1.883-40.245Q-1.473-40.495-0.996-40.495Q-0.266-40.495 0.133-40.054Q0.531-39.613 0.531-38.882Q0.531-38.777 0.437-38.753L-2.012-38.753L-2.012-38.683Q-2.012-38.273-1.891-37.917Q-1.770-37.562-1.498-37.345Q-1.227-37.128-0.797-37.128Q-0.434-37.128-0.137-37.357Q0.160-37.585 0.262-37.937Q0.269-37.984 0.355-37.999L0.437-37.999Q0.531-37.972 0.531-37.890Q0.531-37.882 0.523-37.851Q0.461-37.624 0.322-37.441Q0.184-37.257-0.008-37.124Q-0.199-36.992-0.418-36.921Q-0.637-36.851-0.875-36.851Q-1.246-36.851-1.584-36.988Q-1.922-37.124-2.190-37.376Q-2.457-37.628-2.607-37.968Q-2.758-38.308-2.758-38.683M-2.004-38.992L-0.043-38.992Q-0.043-39.296-0.145-39.587Q-0.246-39.878-0.463-40.060Q-0.680-40.242-0.996-40.242Q-1.297-40.242-1.527-40.054Q-1.758-39.867-1.881-39.575Q-2.004-39.284-2.004-38.992M1.062-36.937L1.062-38.159Q1.062-38.187 1.094-38.218Q1.125-38.249 1.148-38.249L1.254-38.249Q1.324-38.249 1.340-38.187Q1.402-37.867 1.541-37.626Q1.680-37.386 1.912-37.245Q2.144-37.105 2.453-37.105Q2.691-37.105 2.900-37.165Q3.109-37.226 3.246-37.374Q3.383-37.523 3.383-37.769Q3.383-38.023 3.172-38.189Q2.961-38.355 2.691-38.409L2.070-38.523Q1.664-38.601 1.363-38.857Q1.062-39.113 1.062-39.488Q1.062-39.855 1.264-40.077Q1.465-40.300 1.789-40.398Q2.113-40.495 2.453-40.495Q2.918-40.495 3.215-40.288L3.437-40.472Q3.461-40.495 3.492-40.495L3.543-40.495Q3.574-40.495 3.602-40.468Q3.629-40.441 3.629-40.409L3.629-39.425Q3.629-39.394 3.603-39.365Q3.578-39.335 3.543-39.335L3.437-39.335Q3.402-39.335 3.375-39.363Q3.348-39.390 3.348-39.425Q3.348-39.824 3.096-40.044Q2.844-40.265 2.445-40.265Q2.090-40.265 1.807-40.142Q1.523-40.019 1.523-39.714Q1.523-39.495 1.725-39.363Q1.926-39.230 2.172-39.187L2.797-39.074Q3.227-38.984 3.535-38.687Q3.844-38.390 3.844-37.976Q3.844-37.406 3.445-37.128Q3.047-36.851 2.453-36.851Q1.902-36.851 1.551-37.187L1.254-36.874Q1.230-36.851 1.195-36.851L1.148-36.851Q1.125-36.851 1.094-36.882Q1.062-36.913 1.062-36.937",[1475],[1459,6098,6099],{"transform":6086},[1464,6100],{"d":6101,"fill":1461,"stroke":1461,"className":6102,"style":1560},"M7.431-37.105Q7.435-37.124 7.437-37.138Q7.439-37.152 7.439-37.175L8.592-41.777Q8.631-41.964 8.631-41.992Q8.631-42.097 8.135-42.097Q8.037-42.128 8.037-42.226L8.060-42.327Q8.068-42.374 8.150-42.394L9.256-42.480Q9.306-42.480 9.340-42.450Q9.373-42.421 9.373-42.363L8.549-39.074Q8.842-39.202 9.291-39.628Q9.740-40.054 10.015-40.255Q10.291-40.456 10.670-40.456Q10.916-40.456 11.076-40.292Q11.236-40.128 11.236-39.882Q11.236-39.659 11.103-39.493Q10.970-39.327 10.760-39.327Q10.627-39.327 10.533-39.411Q10.439-39.495 10.439-39.632Q10.439-39.816 10.570-39.956Q10.701-40.097 10.885-40.097Q10.803-40.202 10.654-40.202Q10.428-40.202 10.189-40.070Q9.951-39.937 9.806-39.806Q9.662-39.675 9.330-39.365Q8.998-39.054 8.845-38.952Q10.045-38.820 10.045-38.097Q10.045-37.980 10.002-37.779Q9.959-37.577 9.959-37.488Q9.959-37.105 10.213-37.105Q10.494-37.105 10.650-37.409Q10.806-37.714 10.900-38.105Q10.935-38.175 10.990-38.175L11.095-38.175Q11.135-38.175 11.158-38.146Q11.181-38.117 11.181-38.081Q11.181-38.066 11.174-38.050Q11.064-37.577 10.824-37.214Q10.584-36.851 10.197-36.851Q9.842-36.851 9.599-37.079Q9.357-37.308 9.357-37.663Q9.357-37.734 9.381-37.870Q9.404-38.007 9.404-38.081Q9.404-38.292 9.256-38.429Q9.107-38.566 8.886-38.634Q8.666-38.702 8.463-38.722L8.060-37.120Q8.029-36.999 7.931-36.925Q7.834-36.851 7.709-36.851Q7.595-36.851 7.513-36.921Q7.431-36.992 7.431-37.105",[1475],[1687,6104,6106,6107,6143,6144,6281,6282],{"className":6105},[1690],"Knuth's optimization: filling ",[390,6108,6110],{"className":6109},[393],[390,6111,6113],{"className":6112,"ariaHidden":398},[397],[390,6114,6116,6119,6122,6125,6128,6131,6134,6137,6140],{"className":6115},[402],[390,6117],{"className":6118,"style":446},[406],[390,6120,714],{"className":6121},[411,412],[390,6123,381],{"className":6124},[411,412],[390,6126,721],{"className":6127},[455],[390,6129,725],{"className":6130},[411,412],[390,6132,729],{"className":6133},[485],[390,6135,721],{"className":6136},[455],[390,6138,822],{"className":6139,"style":821},[411,412],[390,6141,729],{"className":6142},[485]," scans only ",[390,6145,6147],{"className":6146},[393],[390,6148,6150,6170,6212,6254],{"className":6149,"ariaHidden":398},[397],[390,6151,6153,6157,6160,6163,6167],{"className":6152},[402],[390,6154],{"className":6155,"style":6156},[406],"height:0.7335em;vertical-align:-0.0391em;",[390,6158,806],{"className":6159,"style":805},[411,412],[390,6161],{"className":6162,"style":733},[463],[390,6164,6166],{"className":6165},[737],"∈",[390,6168],{"className":6169,"style":733},[463],[390,6171,6173,6176,6179,6182,6185,6188,6191,6194,6197,6200,6203,6206,6209],{"className":6172},[402],[390,6174],{"className":6175,"style":446},[406],[390,6177,721],{"className":6178},[455],[390,6180],{"className":6181,"style":853},[463],[390,6183,3515],{"className":6184},[411,412],[390,6186,3519],{"className":6187},[411,412],[390,6189,721],{"className":6190},[455],[390,6192,725],{"className":6193},[411,412],[390,6195,729],{"className":6196},[485],[390,6198,721],{"className":6199},[455],[390,6201,822],{"className":6202,"style":821},[411,412],[390,6204],{"className":6205,"style":464},[463],[390,6207,801],{"className":6208},[468],[390,6210],{"className":6211,"style":464},[463],[390,6213,6215,6218,6221,6224,6227,6230,6233,6236,6239,6242,6245,6248,6251],{"className":6214},[402],[390,6216],{"className":6217,"style":446},[406],[390,6219,667],{"className":6220},[411],[390,6222,729],{"className":6223},[485],[390,6225,912],{"className":6226},[911],[390,6228],{"className":6229,"style":853},[463],[390,6231],{"className":6232,"style":853},[463],[390,6234,3515],{"className":6235},[411,412],[390,6237,3519],{"className":6238},[411,412],[390,6240,721],{"className":6241},[455],[390,6243,725],{"className":6244},[411,412],[390,6246],{"className":6247,"style":464},[463],[390,6249,881],{"className":6250},[468],[390,6252],{"className":6253,"style":464},[463],[390,6255,6257,6260,6263,6266,6269,6272,6275,6278],{"className":6256},[402],[390,6258],{"className":6259,"style":446},[406],[390,6261,667],{"className":6262},[411],[390,6264,729],{"className":6265},[485],[390,6267,721],{"className":6268},[455],[390,6270,822],{"className":6271,"style":821},[411,412],[390,6273,729],{"className":6274},[485],[390,6276],{"className":6277,"style":853},[463],[390,6279,729],{"className":6280},[485],", a window pinned by two already-known optimal splits, not all of ",[390,6283,6285],{"className":6284},[393],[390,6286,6288],{"className":6287,"ariaHidden":398},[397],[390,6289,6291,6294,6297,6300,6303,6306,6309],{"className":6290},[402],[390,6292],{"className":6293,"style":446},[406],[390,6295,721],{"className":6296},[455],[390,6298,725],{"className":6299},[411,412],[390,6301,912],{"className":6302},[911],[390,6304],{"className":6305,"style":853},[463],[390,6307,822],{"className":6308,"style":821},[411,412],[390,6310,486],{"className":6311},[485],[688,6313,6315],{"id":6314},"sos-dp-sum-over-subsets","SOS DP (sum over subsets)",[381,6317,6318,6319,6345,6346,6361,6362,6377,6378,6393,6394,6397],{},"The last technique is combinatorial rather than geometric. Given a value ",[390,6320,6322],{"className":6321},[393],[390,6323,6325],{"className":6324,"ariaHidden":398},[397],[390,6326,6328,6331,6336,6339,6342],{"className":6327},[402],[390,6329],{"className":6330,"style":446},[406],[390,6332,6335],{"className":6333,"style":6334},[411,412],"margin-right:0.1076em;","f",[390,6337,721],{"className":6338},[455],[390,6340,1901],{"className":6341},[411,412],[390,6343,729],{"className":6344},[485],"\nfor every bitmask ",[390,6347,6349],{"className":6348},[393],[390,6350,6352],{"className":6351,"ariaHidden":398},[397],[390,6353,6355,6358],{"className":6354},[402],[390,6356],{"className":6357,"style":1235},[406],[390,6359,1901],{"className":6360},[411,412]," over ",[390,6363,6365],{"className":6364},[393],[390,6366,6368],{"className":6367,"ariaHidden":398},[397],[390,6369,6371,6374],{"className":6370},[402],[390,6372],{"className":6373,"style":1235},[406],[390,6375,526],{"className":6376},[411,412]," bits, we want, for each mask ",[390,6379,6381],{"className":6380},[393],[390,6382,6384],{"className":6383,"ariaHidden":398},[397],[390,6385,6387,6390],{"className":6386},[402],[390,6388],{"className":6389,"style":1235},[406],[390,6391,1901],{"className":6392},[411,412],", an aggregate\nover all of its ",[654,6395,6396],{},"submasks",":",[390,6399,6401],{"className":6400},[698],[390,6402,6404],{"className":6403},[393],[390,6405,6407,6435],{"className":6406,"ariaHidden":398},[397],[390,6408,6410,6413,6417,6420,6423,6426,6429,6432],{"className":6409},[402],[390,6411],{"className":6412,"style":446},[406],[390,6414,1459],{"className":6415,"style":6416},[411,412],"margin-right:0.0359em;",[390,6418,721],{"className":6419},[455],[390,6421,1901],{"className":6422},[411,412],[390,6424,729],{"className":6425},[485],[390,6427],{"className":6428,"style":733},[463],[390,6430,738],{"className":6431},[737],[390,6433],{"className":6434,"style":733},[463],[390,6436,6438,6442,6506,6509,6512,6515,6518,6521],{"className":6437},[402],[390,6439],{"className":6440,"style":6441},[406],"height:2.4064em;vertical-align:-1.3564em;",[390,6443,6446],{"className":6444},[760,6445],"op-limits",[390,6447,6449,6497],{"className":6448},[563,775],[390,6450,6452,6494],{"className":6451},[567],[390,6453,6456,6480],{"className":6454,"style":6455},[571],"height:1.05em;",[390,6457,6459,6463],{"style":6458},"top:-1.8888em;margin-left:0em;",[390,6460],{"className":6461,"style":6462},[579],"height:3.05em;",[390,6464,6466],{"className":6465},[584,585,586,587],[390,6467,6469,6473,6477],{"className":6468},[411,587],[390,6470,6472],{"className":6471},[411,412,587],"s",[390,6474,6476],{"className":6475},[737,587],"⊆",[390,6478,1901],{"className":6479},[411,412,587],[390,6481,6483,6486],{"style":6482},"top:-3.05em;",[390,6484],{"className":6485,"style":6462},[579],[390,6487,6488],{},[390,6489,6493],{"className":6490},[760,6491,6492],"op-symbol","large-op","∑",[390,6495,840],{"className":6496},[839],[390,6498,6500],{"className":6499},[567],[390,6501,6504],{"className":6502,"style":6503},[571],"height:1.3564em;",[390,6505],{},[390,6507],{"className":6508,"style":853},[463],[390,6510,6335],{"className":6511,"style":6334},[411,412],[390,6513,721],{"className":6514},[455],[390,6516,6472],{"className":6517},[411,412],[390,6519,729],{"className":6520},[485],[390,6522,2577],{"className":6523},[411],[381,6525,6526,6527,6679,6680,6683,6684,6740,6741,6744,6745,6784,6785,6800,6801,6816,6817,6820,6821,2577],{},"Enumerating every submask of every mask costs ",[390,6528,6530],{"className":6529},[393],[390,6531,6533,6643],{"className":6532,"ariaHidden":398},[397],[390,6534,6536,6540,6585,6588,6634,6637,6640],{"className":6535},[402],[390,6537],{"className":6538,"style":6539},[406],"height:1.1877em;vertical-align:-0.2997em;",[390,6541,6543,6548],{"className":6542},[760],[390,6544,6493],{"className":6545,"style":6547},[760,6491,6546],"small-op","position:relative;top:0em;",[390,6549,6551],{"className":6550},[559],[390,6552,6554,6576],{"className":6553},[563,775],[390,6555,6557,6573],{"className":6556},[567],[390,6558,6561],{"className":6559,"style":6560},[571],"height:0.0017em;",[390,6562,6564,6567],{"style":6563},"top:-2.4003em;margin-left:0em;margin-right:0.05em;",[390,6565],{"className":6566,"style":580},[579],[390,6568,6570],{"className":6569},[584,585,586,587],[390,6571,1901],{"className":6572},[411,412,587],[390,6574,840],{"className":6575},[839],[390,6577,6579],{"className":6578},[567],[390,6580,6583],{"className":6581,"style":6582},[571],"height:0.2997em;",[390,6584],{},[390,6586],{"className":6587,"style":853},[463],[390,6589,6591,6594],{"className":6590},[411],[390,6592,591],{"className":6593},[411],[390,6595,6597],{"className":6596},[559],[390,6598,6600],{"className":6599},[563],[390,6601,6603],{"className":6602},[567],[390,6604,6607],{"className":6605,"style":6606},[571],"height:0.888em;",[390,6608,6609,6612],{"style":575},[390,6610],{"className":6611,"style":580},[579],[390,6613,6615],{"className":6614},[584,585,586,587],[390,6616,6618,6625,6628,6631],{"className":6617},[411,587],[390,6619,6621],{"className":6620},[411,894,587],[390,6622,6624],{"className":6623},[411,587],"popcount",[390,6626,456],{"className":6627},[455,587],[390,6629,1901],{"className":6630},[411,412,587],[390,6632,486],{"className":6633},[485,587],[390,6635],{"className":6636,"style":733},[463],[390,6638,738],{"className":6639},[737],[390,6641],{"className":6642,"style":733},[463],[390,6644,6646,6650],{"className":6645},[402],[390,6647],{"className":6648,"style":6649},[406],"height:0.6644em;",[390,6651,6653,6656],{"className":6652},[411],[390,6654,643],{"className":6655},[411],[390,6657,6659],{"className":6658},[559],[390,6660,6662],{"className":6661},[563],[390,6663,6665],{"className":6664},[567],[390,6666,6668],{"className":6667,"style":6649},[571],[390,6669,6670,6673],{"style":575},[390,6671],{"className":6672,"style":580},[579],[390,6674,6676],{"className":6675},[584,585,586,587],[390,6677,526],{"className":6678},[411,412,587]," (the classic submask-enumeration bound). ",[654,6681,6682],{},"Sum over subsets"," does it in\n",[390,6685,6687],{"className":6686},[393],[390,6688,6690],{"className":6689,"ariaHidden":398},[397],[390,6691,6693,6696,6699,6702,6705,6708,6737],{"className":6692},[402],[390,6694],{"className":6695,"style":446},[406],[390,6697,451],{"className":6698,"style":450},[411,412],[390,6700,456],{"className":6701},[455],[390,6703,526],{"className":6704},[411,412],[390,6706],{"className":6707,"style":853},[463],[390,6709,6711,6714],{"className":6710},[411],[390,6712,591],{"className":6713},[411],[390,6715,6717],{"className":6716},[559],[390,6718,6720],{"className":6719},[563],[390,6721,6723],{"className":6722},[567],[390,6724,6726],{"className":6725,"style":6649},[571],[390,6727,6728,6731],{"style":575},[390,6729],{"className":6730,"style":580},[579],[390,6732,6734],{"className":6733},[584,585,586,587],[390,6735,526],{"className":6736},[411,412,587],[390,6738,486],{"className":6739},[485]," by adding ",[649,6742,6743],{},"one bit-dimension at a time",": process bits ",[390,6746,6748],{"className":6747},[393],[390,6749,6751,6774],{"className":6750,"ariaHidden":398},[397],[390,6752,6754,6758,6762,6765,6768,6771],{"className":6753},[402],[390,6755],{"className":6756,"style":6757},[406],"height:0.7278em;vertical-align:-0.0833em;",[390,6759,6761],{"className":6760},[411],"0..",[390,6763,526],{"className":6764},[411,412],[390,6766],{"className":6767,"style":464},[463],[390,6769,801],{"className":6770},[468],[390,6772],{"className":6773,"style":464},[463],[390,6775,6777,6781],{"className":6776},[402],[390,6778],{"className":6779,"style":6780},[406],"height:0.6444em;",[390,6782,667],{"className":6783},[411],", and\nwhen processing bit ",[390,6786,6788],{"className":6787},[393],[390,6789,6791],{"className":6790,"ariaHidden":398},[397],[390,6792,6794,6797],{"className":6793},[402],[390,6795],{"className":6796,"style":932},[406],[390,6798,2016],{"className":6799},[411,412],", fold each mask that has bit ",[390,6802,6804],{"className":6803},[393],[390,6805,6807],{"className":6806,"ariaHidden":398},[397],[390,6808,6810,6813],{"className":6809},[402],[390,6811],{"className":6812,"style":932},[406],[390,6814,2016],{"className":6815},[411,412]," set into the version\nwithout it. It is a multidimensional ",[385,6818,6819],{"href":126},"prefix sum"," over the hypercube ",[390,6822,6824],{"className":6823},[393],[390,6825,6827],{"className":6826,"ariaHidden":398},[397],[390,6828,6830,6833,6837,6840,6843,6846,6849],{"className":6829},[402],[390,6831],{"className":6832,"style":446},[406],[390,6834,6836],{"className":6835},[455],"{",[390,6838,1432],{"className":6839},[411],[390,6841,912],{"className":6842},[911],[390,6844],{"className":6845,"style":853},[463],[390,6847,667],{"className":6848},[411],[390,6850,6852,6856],{"className":6851},[485],[390,6853,6855],{"className":6854},[485],"}",[390,6857,6859],{"className":6858},[559],[390,6860,6862],{"className":6861},[563],[390,6863,6865],{"className":6864},[567],[390,6866,6868],{"className":6867,"style":6649},[571],[390,6869,6870,6873],{"style":575},[390,6871],{"className":6872,"style":580},[579],[390,6874,6876],{"className":6875},[584,585,586,587],[390,6877,526],{"className":6878},[411,412,587],[1446,6880,6882,7093],{"className":6881},[1449,1450],[1452,6883,6887],{"xmlns":1454,"width":6884,"height":6885,"viewBox":6886},"199.519","270.585","-75 -75 149.640 202.939",[1459,6888,6889,6892,6899,6902,6909,6912,6919,6922,6929,6932,6939,6942,6949,6952,6959,6962,6969,6977,6985,6993,7001,7004],{"stroke":1461,"style":1462},[1464,6890],{"fill":1466,"d":6891},"M-39.796 46.009c0-7.072-5.732-12.804-12.804-12.804-7.071 0-12.803 5.732-12.803 12.804 0 7.071 5.732 12.804 12.803 12.804s12.804-5.733 12.804-12.804Zm-12.804 0",[1459,6893,6895],{"transform":6894},"translate(-6.375 2.578)",[1464,6896],{"d":6897,"fill":1461,"stroke":1461,"className":6898,"style":1560},"M-50.479 46.177Q-51.182 46.177-51.582 45.777Q-51.983 45.376-52.127 44.767Q-52.272 44.157-52.272 43.458Q-52.272 42.935-52.202 42.472Q-52.131 42.009-51.938 41.597Q-51.745 41.185-51.387 40.937Q-51.030 40.689-50.479 40.689Q-49.928 40.689-49.571 40.937Q-49.213 41.185-49.022 41.595Q-48.830 42.005-48.760 42.474Q-48.690 42.943-48.690 43.458Q-48.690 44.157-48.832 44.765Q-48.975 45.372-49.375 45.775Q-49.776 46.177-50.479 46.177M-50.479 45.919Q-50.006 45.919-49.774 45.484Q-49.541 45.048-49.487 44.509Q-49.432 43.970-49.432 43.329Q-49.432 42.333-49.616 41.640Q-49.799 40.947-50.479 40.947Q-50.846 40.947-51.067 41.185Q-51.288 41.423-51.383 41.780Q-51.479 42.138-51.504 42.509Q-51.530 42.880-51.530 43.329Q-51.530 43.970-51.475 44.509Q-51.420 45.048-51.188 45.484Q-50.955 45.919-50.479 45.919M-46.233 46.177Q-46.936 46.177-47.336 45.777Q-47.737 45.376-47.881 44.767Q-48.026 44.157-48.026 43.458Q-48.026 42.935-47.955 42.472Q-47.885 42.009-47.692 41.597Q-47.498 41.185-47.141 40.937Q-46.784 40.689-46.233 40.689Q-45.682 40.689-45.325 40.937Q-44.967 41.185-44.776 41.595Q-44.584 42.005-44.514 42.474Q-44.444 42.943-44.444 43.458Q-44.444 44.157-44.586 44.765Q-44.729 45.372-45.129 45.775Q-45.530 46.177-46.233 46.177M-46.233 45.919Q-45.760 45.919-45.528 45.484Q-45.295 45.048-45.241 44.509Q-45.186 43.970-45.186 43.329Q-45.186 42.333-45.370 41.640Q-45.553 40.947-46.233 40.947Q-46.600 40.947-46.821 41.185Q-47.041 41.423-47.137 41.780Q-47.233 42.138-47.258 42.509Q-47.284 42.880-47.284 43.329Q-47.284 43.970-47.229 44.509Q-47.174 45.048-46.942 45.484Q-46.709 45.919-46.233 45.919M-41.987 46.177Q-42.690 46.177-43.090 45.777Q-43.491 45.376-43.635 44.767Q-43.780 44.157-43.780 43.458Q-43.780 42.935-43.709 42.472Q-43.639 42.009-43.446 41.597Q-43.252 41.185-42.895 40.937Q-42.538 40.689-41.987 40.689Q-41.436 40.689-41.079 40.937Q-40.721 41.185-40.530 41.595Q-40.338 42.005-40.268 42.474Q-40.198 42.943-40.198 43.458Q-40.198 44.157-40.340 44.765Q-40.483 45.372-40.883 45.775Q-41.284 46.177-41.987 46.177M-41.987 45.919Q-41.514 45.919-41.282 45.484Q-41.049 45.048-40.995 44.509Q-40.940 43.970-40.940 43.329Q-40.940 42.333-41.123 41.640Q-41.307 40.947-41.987 40.947Q-42.354 40.947-42.575 41.185Q-42.795 41.423-42.891 41.780Q-42.987 42.138-43.012 42.509Q-43.038 42.880-43.038 43.329Q-43.038 43.970-42.983 44.509Q-42.928 45.048-42.696 45.484Q-42.463 45.919-41.987 45.919",[1475],[1464,6900],{"fill":1466,"d":6901},"M34.181 46.009c0-7.072-5.732-12.804-12.803-12.804S8.574 38.937 8.574 46.009c0 7.071 5.732 12.804 12.804 12.804 7.071 0 12.803-5.733 12.803-12.804Zm-12.803 0",[1459,6903,6905],{"transform":6904},"translate(67.602 2.578)",[1464,6906],{"d":6907,"fill":1461,"stroke":1461,"className":6908,"style":1560},"M-50.479 46.177Q-51.182 46.177-51.582 45.777Q-51.983 45.376-52.127 44.767Q-52.272 44.157-52.272 43.458Q-52.272 42.935-52.202 42.472Q-52.131 42.009-51.938 41.597Q-51.745 41.185-51.387 40.937Q-51.030 40.689-50.479 40.689Q-49.928 40.689-49.571 40.937Q-49.213 41.185-49.022 41.595Q-48.830 42.005-48.760 42.474Q-48.690 42.943-48.690 43.458Q-48.690 44.157-48.832 44.765Q-48.975 45.372-49.375 45.775Q-49.776 46.177-50.479 46.177M-50.479 45.919Q-50.006 45.919-49.774 45.484Q-49.541 45.048-49.487 44.509Q-49.432 43.970-49.432 43.329Q-49.432 42.333-49.616 41.640Q-49.799 40.947-50.479 40.947Q-50.846 40.947-51.067 41.185Q-51.288 41.423-51.383 41.780Q-51.479 42.138-51.504 42.509Q-51.530 42.880-51.530 43.329Q-51.530 43.970-51.475 44.509Q-51.420 45.048-51.188 45.484Q-50.955 45.919-50.479 45.919M-46.233 46.177Q-46.936 46.177-47.336 45.777Q-47.737 45.376-47.881 44.767Q-48.026 44.157-48.026 43.458Q-48.026 42.935-47.955 42.472Q-47.885 42.009-47.692 41.597Q-47.498 41.185-47.141 40.937Q-46.784 40.689-46.233 40.689Q-45.682 40.689-45.325 40.937Q-44.967 41.185-44.776 41.595Q-44.584 42.005-44.514 42.474Q-44.444 42.943-44.444 43.458Q-44.444 44.157-44.586 44.765Q-44.729 45.372-45.129 45.775Q-45.530 46.177-46.233 46.177M-46.233 45.919Q-45.760 45.919-45.528 45.484Q-45.295 45.048-45.241 44.509Q-45.186 43.970-45.186 43.329Q-45.186 42.333-45.370 41.640Q-45.553 40.947-46.233 40.947Q-46.600 40.947-46.821 41.185Q-47.041 41.423-47.137 41.780Q-47.233 42.138-47.258 42.509Q-47.284 42.880-47.284 43.329Q-47.284 43.970-47.229 44.509Q-47.174 45.048-46.942 45.484Q-46.709 45.919-46.233 45.919M-40.514 46.009L-43.307 46.009L-43.307 45.712Q-42.245 45.712-42.245 45.450L-42.245 41.282Q-42.674 41.497-43.354 41.497L-43.354 41.200Q-42.334 41.200-41.819 40.689L-41.674 40.689Q-41.600 40.708-41.580 40.786L-41.580 45.450Q-41.580 45.712-40.514 45.712",[1475],[1464,6910],{"fill":1466,"d":6911},"M-39.796-27.969c0-7.07-5.732-12.803-12.804-12.803-7.071 0-12.803 5.732-12.803 12.803s5.732 12.804 12.803 12.804 12.804-5.732 12.804-12.804Zm-12.804 0",[1459,6913,6915],{"transform":6914},"translate(-6.375 -71.4)",[1464,6916],{"d":6917,"fill":1461,"stroke":1461,"className":6918,"style":1560},"M-50.479 46.177Q-51.182 46.177-51.582 45.777Q-51.983 45.376-52.127 44.767Q-52.272 44.157-52.272 43.458Q-52.272 42.935-52.202 42.472Q-52.131 42.009-51.938 41.597Q-51.745 41.185-51.387 40.937Q-51.030 40.689-50.479 40.689Q-49.928 40.689-49.571 40.937Q-49.213 41.185-49.022 41.595Q-48.830 42.005-48.760 42.474Q-48.690 42.943-48.690 43.458Q-48.690 44.157-48.832 44.765Q-48.975 45.372-49.375 45.775Q-49.776 46.177-50.479 46.177M-50.479 45.919Q-50.006 45.919-49.774 45.484Q-49.541 45.048-49.487 44.509Q-49.432 43.970-49.432 43.329Q-49.432 42.333-49.616 41.640Q-49.799 40.947-50.479 40.947Q-50.846 40.947-51.067 41.185Q-51.288 41.423-51.383 41.780Q-51.479 42.138-51.504 42.509Q-51.530 42.880-51.530 43.329Q-51.530 43.970-51.475 44.509Q-51.420 45.048-51.188 45.484Q-50.955 45.919-50.479 45.919M-44.760 46.009L-47.553 46.009L-47.553 45.712Q-46.491 45.712-46.491 45.450L-46.491 41.282Q-46.920 41.497-47.600 41.497L-47.600 41.200Q-46.580 41.200-46.065 40.689L-45.920 40.689Q-45.846 40.708-45.827 40.786L-45.827 45.450Q-45.827 45.712-44.760 45.712L-44.760 46.009M-41.987 46.177Q-42.690 46.177-43.090 45.777Q-43.491 45.376-43.635 44.767Q-43.780 44.157-43.780 43.458Q-43.780 42.935-43.709 42.472Q-43.639 42.009-43.446 41.597Q-43.252 41.185-42.895 40.937Q-42.538 40.689-41.987 40.689Q-41.436 40.689-41.079 40.937Q-40.721 41.185-40.530 41.595Q-40.338 42.005-40.268 42.474Q-40.198 42.943-40.198 43.458Q-40.198 44.157-40.340 44.765Q-40.483 45.372-40.883 45.775Q-41.284 46.177-41.987 46.177M-41.987 45.919Q-41.514 45.919-41.282 45.484Q-41.049 45.048-40.995 44.509Q-40.940 43.970-40.940 43.329Q-40.940 42.333-41.123 41.640Q-41.307 40.947-41.987 40.947Q-42.354 40.947-42.575 41.185Q-42.795 41.423-42.891 41.780Q-42.987 42.138-43.012 42.509Q-43.038 42.880-43.038 43.329Q-43.038 43.970-42.983 44.509Q-42.928 45.048-42.696 45.484Q-42.463 45.919-41.987 45.919",[1475],[1464,6920],{"fill":1466,"d":6921},"M34.181-27.969c0-7.07-5.732-12.803-12.803-12.803S8.574-35.04 8.574-27.97s5.732 12.804 12.804 12.804c7.071 0 12.803-5.732 12.803-12.804Zm-12.803 0",[1459,6923,6925],{"transform":6924},"translate(67.602 -71.4)",[1464,6926],{"d":6927,"fill":1461,"stroke":1461,"className":6928,"style":1560},"M-50.479 46.177Q-51.182 46.177-51.582 45.777Q-51.983 45.376-52.127 44.767Q-52.272 44.157-52.272 43.458Q-52.272 42.935-52.202 42.472Q-52.131 42.009-51.938 41.597Q-51.745 41.185-51.387 40.937Q-51.030 40.689-50.479 40.689Q-49.928 40.689-49.571 40.937Q-49.213 41.185-49.022 41.595Q-48.830 42.005-48.760 42.474Q-48.690 42.943-48.690 43.458Q-48.690 44.157-48.832 44.765Q-48.975 45.372-49.375 45.775Q-49.776 46.177-50.479 46.177M-50.479 45.919Q-50.006 45.919-49.774 45.484Q-49.541 45.048-49.487 44.509Q-49.432 43.970-49.432 43.329Q-49.432 42.333-49.616 41.640Q-49.799 40.947-50.479 40.947Q-50.846 40.947-51.067 41.185Q-51.288 41.423-51.383 41.780Q-51.479 42.138-51.504 42.509Q-51.530 42.880-51.530 43.329Q-51.530 43.970-51.475 44.509Q-51.420 45.048-51.188 45.484Q-50.955 45.919-50.479 45.919M-44.760 46.009L-47.553 46.009L-47.553 45.712Q-46.491 45.712-46.491 45.450L-46.491 41.282Q-46.920 41.497-47.600 41.497L-47.600 41.200Q-46.580 41.200-46.065 40.689L-45.920 40.689Q-45.846 40.708-45.827 40.786L-45.827 45.450Q-45.827 45.712-44.760 45.712L-44.760 46.009M-40.514 46.009L-43.307 46.009L-43.307 45.712Q-42.245 45.712-42.245 45.450L-42.245 41.282Q-42.674 41.497-43.354 41.497L-43.354 41.200Q-42.334 41.200-41.819 40.689L-41.674 40.689Q-41.600 40.708-41.580 40.786L-41.580 45.450Q-41.580 45.712-40.514 45.712",[1475],[1464,6930],{"fill":1466,"d":6931},"M-2.807 14.71c0-7.07-5.733-12.803-12.804-12.803S-28.415 7.639-28.415 14.71c0 7.071 5.733 12.803 12.804 12.803s12.804-5.732 12.804-12.803Zm-12.804 0",[1459,6933,6935],{"transform":6934},"translate(30.614 -28.72)",[1464,6936],{"d":6937,"fill":1461,"stroke":1461,"className":6938,"style":1560},"M-49.006 46.009L-51.799 46.009L-51.799 45.712Q-50.737 45.712-50.737 45.450L-50.737 41.282Q-51.166 41.497-51.846 41.497L-51.846 41.200Q-50.827 41.200-50.311 40.689L-50.166 40.689Q-50.092 40.708-50.073 40.786L-50.073 45.450Q-50.073 45.712-49.006 45.712L-49.006 46.009M-46.233 46.177Q-46.936 46.177-47.336 45.777Q-47.737 45.376-47.881 44.767Q-48.026 44.157-48.026 43.458Q-48.026 42.935-47.955 42.472Q-47.885 42.009-47.692 41.597Q-47.498 41.185-47.141 40.937Q-46.784 40.689-46.233 40.689Q-45.682 40.689-45.325 40.937Q-44.967 41.185-44.776 41.595Q-44.584 42.005-44.514 42.474Q-44.444 42.943-44.444 43.458Q-44.444 44.157-44.586 44.765Q-44.729 45.372-45.129 45.775Q-45.530 46.177-46.233 46.177M-46.233 45.919Q-45.760 45.919-45.528 45.484Q-45.295 45.048-45.241 44.509Q-45.186 43.970-45.186 43.329Q-45.186 42.333-45.370 41.640Q-45.553 40.947-46.233 40.947Q-46.600 40.947-46.821 41.185Q-47.041 41.423-47.137 41.780Q-47.233 42.138-47.258 42.509Q-47.284 42.880-47.284 43.329Q-47.284 43.970-47.229 44.509Q-47.174 45.048-46.942 45.484Q-46.709 45.919-46.233 45.919M-41.987 46.177Q-42.690 46.177-43.090 45.777Q-43.491 45.376-43.635 44.767Q-43.780 44.157-43.780 43.458Q-43.780 42.935-43.709 42.472Q-43.639 42.009-43.446 41.597Q-43.252 41.185-42.895 40.937Q-42.538 40.689-41.987 40.689Q-41.436 40.689-41.079 40.937Q-40.721 41.185-40.530 41.595Q-40.338 42.005-40.268 42.474Q-40.198 42.943-40.198 43.458Q-40.198 44.157-40.340 44.765Q-40.483 45.372-40.883 45.775Q-41.284 46.177-41.987 46.177M-41.987 45.919Q-41.514 45.919-41.282 45.484Q-41.049 45.048-40.995 44.509Q-40.940 43.970-40.940 43.329Q-40.940 42.333-41.123 41.640Q-41.307 40.947-41.987 40.947Q-42.354 40.947-42.575 41.185Q-42.795 41.423-42.891 41.780Q-42.987 42.138-43.012 42.509Q-43.038 42.880-43.038 43.329Q-43.038 43.970-42.983 44.509Q-42.928 45.048-42.696 45.484Q-42.463 45.919-41.987 45.919",[1475],[1464,6940],{"fill":1466,"d":6941},"M71.17 14.71c0-7.07-5.733-12.803-12.804-12.803S45.562 7.639 45.562 14.71c0 7.071 5.733 12.803 12.804 12.803S71.17 21.782 71.17 14.711Zm-12.804 0",[1459,6943,6945],{"transform":6944},"translate(104.59 -28.72)",[1464,6946],{"d":6947,"fill":1461,"stroke":1461,"className":6948,"style":1560},"M-49.006 46.009L-51.799 46.009L-51.799 45.712Q-50.737 45.712-50.737 45.450L-50.737 41.282Q-51.166 41.497-51.846 41.497L-51.846 41.200Q-50.827 41.200-50.311 40.689L-50.166 40.689Q-50.092 40.708-50.073 40.786L-50.073 45.450Q-50.073 45.712-49.006 45.712L-49.006 46.009M-46.233 46.177Q-46.936 46.177-47.336 45.777Q-47.737 45.376-47.881 44.767Q-48.026 44.157-48.026 43.458Q-48.026 42.935-47.955 42.472Q-47.885 42.009-47.692 41.597Q-47.498 41.185-47.141 40.937Q-46.784 40.689-46.233 40.689Q-45.682 40.689-45.325 40.937Q-44.967 41.185-44.776 41.595Q-44.584 42.005-44.514 42.474Q-44.444 42.943-44.444 43.458Q-44.444 44.157-44.586 44.765Q-44.729 45.372-45.129 45.775Q-45.530 46.177-46.233 46.177M-46.233 45.919Q-45.760 45.919-45.528 45.484Q-45.295 45.048-45.241 44.509Q-45.186 43.970-45.186 43.329Q-45.186 42.333-45.370 41.640Q-45.553 40.947-46.233 40.947Q-46.600 40.947-46.821 41.185Q-47.041 41.423-47.137 41.780Q-47.233 42.138-47.258 42.509Q-47.284 42.880-47.284 43.329Q-47.284 43.970-47.229 44.509Q-47.174 45.048-46.942 45.484Q-46.709 45.919-46.233 45.919M-40.514 46.009L-43.307 46.009L-43.307 45.712Q-42.245 45.712-42.245 45.450L-42.245 41.282Q-42.674 41.497-43.354 41.497L-43.354 41.200Q-42.334 41.200-41.819 40.689L-41.674 40.689Q-41.600 40.708-41.580 40.786L-41.580 45.450Q-41.580 45.712-40.514 45.712",[1475],[1464,6950],{"fill":1466,"d":6951},"M-2.807-59.266c0-7.072-5.733-12.804-12.804-12.804s-12.804 5.732-12.804 12.804c0 7.071 5.733 12.803 12.804 12.803s12.804-5.732 12.804-12.803Zm-12.804 0",[1459,6953,6955],{"transform":6954},"translate(30.614 -102.697)",[1464,6956],{"d":6957,"fill":1461,"stroke":1461,"className":6958,"style":1560},"M-49.006 46.009L-51.799 46.009L-51.799 45.712Q-50.737 45.712-50.737 45.450L-50.737 41.282Q-51.166 41.497-51.846 41.497L-51.846 41.200Q-50.827 41.200-50.311 40.689L-50.166 40.689Q-50.092 40.708-50.073 40.786L-50.073 45.450Q-50.073 45.712-49.006 45.712L-49.006 46.009M-44.760 46.009L-47.553 46.009L-47.553 45.712Q-46.491 45.712-46.491 45.450L-46.491 41.282Q-46.920 41.497-47.600 41.497L-47.600 41.200Q-46.580 41.200-46.065 40.689L-45.920 40.689Q-45.846 40.708-45.827 40.786L-45.827 45.450Q-45.827 45.712-44.760 45.712L-44.760 46.009M-41.987 46.177Q-42.690 46.177-43.090 45.777Q-43.491 45.376-43.635 44.767Q-43.780 44.157-43.780 43.458Q-43.780 42.935-43.709 42.472Q-43.639 42.009-43.446 41.597Q-43.252 41.185-42.895 40.937Q-42.538 40.689-41.987 40.689Q-41.436 40.689-41.079 40.937Q-40.721 41.185-40.530 41.595Q-40.338 42.005-40.268 42.474Q-40.198 42.943-40.198 43.458Q-40.198 44.157-40.340 44.765Q-40.483 45.372-40.883 45.775Q-41.284 46.177-41.987 46.177M-41.987 45.919Q-41.514 45.919-41.282 45.484Q-41.049 45.048-40.995 44.509Q-40.940 43.970-40.940 43.329Q-40.940 42.333-41.123 41.640Q-41.307 40.947-41.987 40.947Q-42.354 40.947-42.575 41.185Q-42.795 41.423-42.891 41.780Q-42.987 42.138-43.012 42.509Q-43.038 42.880-43.038 43.329Q-43.038 43.970-42.983 44.509Q-42.928 45.048-42.696 45.484Q-42.463 45.919-41.987 45.919",[1475],[1464,6960],{"fill":1466,"d":6961},"M71.17-59.266c0-7.072-5.733-12.804-12.804-12.804s-12.804 5.732-12.804 12.804c0 7.071 5.733 12.803 12.804 12.803S71.17-52.195 71.17-59.266Zm-12.804 0",[1459,6963,6965],{"transform":6964},"translate(104.59 -102.697)",[1464,6966],{"d":6967,"fill":1461,"stroke":1461,"className":6968,"style":1560},"M-49.006 46.009L-51.799 46.009L-51.799 45.712Q-50.737 45.712-50.737 45.450L-50.737 41.282Q-51.166 41.497-51.846 41.497L-51.846 41.200Q-50.827 41.200-50.311 40.689L-50.166 40.689Q-50.092 40.708-50.073 40.786L-50.073 45.450Q-50.073 45.712-49.006 45.712L-49.006 46.009M-44.760 46.009L-47.553 46.009L-47.553 45.712Q-46.491 45.712-46.491 45.450L-46.491 41.282Q-46.920 41.497-47.600 41.497L-47.600 41.200Q-46.580 41.200-46.065 40.689L-45.920 40.689Q-45.846 40.708-45.827 40.786L-45.827 45.450Q-45.827 45.712-44.760 45.712L-44.760 46.009M-40.514 46.009L-43.307 46.009L-43.307 45.712Q-42.245 45.712-42.245 45.450L-42.245 41.282Q-42.674 41.497-43.354 41.497L-43.354 41.200Q-42.334 41.200-41.819 40.689L-41.674 40.689Q-41.600 40.708-41.580 40.786L-41.580 45.450Q-41.580 45.712-40.514 45.712",[1475],[1459,6970,6971,6974],{"fill":1489,"stroke":1489,"style":1547},[1464,6972],{"fill":1466,"d":6973},"M-39.596 46.009h45.37",[1464,6975],{"stroke":1466,"d":6976},"m8.374 46.009-4.16-2.08 1.56 2.08-1.56 2.08",[1459,6978,6979,6982],{"fill":1489,"stroke":1489,"style":1547},[1464,6980],{"fill":1466,"d":6981},"M-39.596-27.969h45.37",[1464,6983],{"stroke":1466,"d":6984},"m8.374-27.969-4.16-2.08 1.56 2.08-1.56 2.08",[1459,6986,6987,6990],{"fill":1489,"stroke":1489,"style":1547},[1464,6988],{"fill":1466,"d":6989},"M-2.607 14.71h45.37",[1464,6991],{"stroke":1466,"d":6992},"m45.362 14.71-4.16-2.08 1.56 2.08-1.56 2.08",[1459,6994,6995,6998],{"fill":1489,"stroke":1489,"style":1547},[1464,6996],{"fill":1466,"d":6997},"M-2.607-59.266h45.37",[1464,6999],{"stroke":1466,"d":7000},"m45.362-59.266-4.16-2.08 1.56 2.08-1.56 2.08",[1464,7002],{"fill":1466,"d":7003},"M-52.6 33.005v-47.97M21.378 33.005v-47.97M-42.673 37.61l17.136-14.5M31.304 37.61l17.136-14.5M-42.673-36.368l17.136-14.5M31.304-36.368 48.44-50.867M-15.611 1.707v-47.97M58.366 1.707v-47.97M-2.607 14.71h47.97",[1459,7005,7006],{"fill":1489,"stroke":1489},[1459,7007,7008,7015,7021,7027,7033,7039,7045,7051,7057,7063,7069,7075,7081,7087],{"fill":1489,"stroke":1466,"fontSize":1552},[1459,7009,7011],{"transform":7010},"translate(3.853 27.607)",[1464,7012],{"d":7013,"fill":1489,"stroke":1489,"className":7014,"style":1560},"M-50.295 46.009L-52.280 46.009L-52.280 45.712Q-52.006 45.712-51.838 45.665Q-51.670 45.618-51.670 45.450L-51.670 42.857L-52.311 42.857L-52.311 42.560L-51.670 42.560L-51.670 41.626Q-51.670 41.361-51.553 41.124Q-51.436 40.888-51.243 40.724Q-51.049 40.560-50.801 40.468Q-50.553 40.376-50.288 40.376Q-50.002 40.376-49.778 40.534Q-49.553 40.693-49.553 40.970Q-49.553 41.126-49.659 41.236Q-49.764 41.345-49.928 41.345Q-50.084 41.345-50.194 41.236Q-50.303 41.126-50.303 40.970Q-50.303 40.763-50.143 40.657Q-50.241 40.634-50.334 40.634Q-50.565 40.634-50.737 40.790Q-50.909 40.947-50.995 41.183Q-51.080 41.419-51.080 41.642L-51.080 42.560L-50.112 42.560L-50.112 42.857L-51.057 42.857L-51.057 45.450Q-51.057 45.618-50.830 45.665Q-50.604 45.712-50.295 45.712L-50.295 46.009M-49.768 44.314Q-49.768 43.810-49.512 43.378Q-49.256 42.947-48.821 42.695Q-48.385 42.443-47.885 42.443Q-47.498 42.443-47.157 42.587Q-46.815 42.732-46.553 42.993Q-46.291 43.255-46.149 43.591Q-46.006 43.927-46.006 44.314Q-46.006 44.806-46.270 45.216Q-46.534 45.626-46.963 45.857Q-47.393 46.087-47.885 46.087Q-48.377 46.087-48.811 45.855Q-49.245 45.622-49.506 45.214Q-49.768 44.806-49.768 44.314M-47.885 45.810Q-47.428 45.810-47.176 45.587Q-46.924 45.364-46.836 45.013Q-46.748 44.661-46.748 44.216Q-46.748 43.786-46.842 43.448Q-46.936 43.111-47.190 42.904Q-47.444 42.697-47.885 42.697Q-48.534 42.697-48.778 43.113Q-49.022 43.529-49.022 44.216Q-49.022 44.661-48.934 45.013Q-48.846 45.364-48.594 45.587Q-48.342 45.810-47.885 45.810M-43.608 46.009L-45.440 46.009L-45.440 45.712Q-45.166 45.712-44.998 45.665Q-44.830 45.618-44.830 45.450L-44.830 41.290Q-44.830 41.075-44.893 40.980Q-44.955 40.884-45.075 40.863Q-45.194 40.841-45.440 40.841L-45.440 40.544L-44.217 40.458L-44.217 45.450Q-44.217 45.618-44.049 45.665Q-43.881 45.712-43.608 45.712L-43.608 46.009M-41.346 46.087Q-41.827 46.087-42.235 45.843Q-42.643 45.599-42.881 45.185Q-43.120 44.771-43.120 44.282Q-43.120 43.790-42.862 43.374Q-42.604 42.958-42.172 42.720Q-41.741 42.482-41.248 42.482Q-40.627 42.482-40.178 42.919L-40.178 41.290Q-40.178 41.075-40.241 40.980Q-40.303 40.884-40.420 40.863Q-40.538 40.841-40.784 40.841L-40.784 40.544L-39.561 40.458L-39.561 45.267Q-39.561 45.478-39.498 45.573Q-39.436 45.669-39.319 45.691Q-39.202 45.712-38.952 45.712L-38.952 46.009L-40.202 46.087L-40.202 45.603Q-40.666 46.087-41.346 46.087M-41.280 45.833Q-40.940 45.833-40.647 45.642Q-40.354 45.450-40.202 45.154L-40.202 43.322Q-40.350 43.048-40.612 42.892Q-40.873 42.736-41.186 42.736Q-41.811 42.736-42.094 43.183Q-42.377 43.630-42.377 44.290Q-42.377 44.935-42.125 45.384Q-41.873 45.833-41.280 45.833",[1475],[1459,7016,7017],{"transform":7010},[1464,7018],{"d":7019,"fill":1489,"stroke":1489,"className":7020,"style":1560},"M-34.683 46.009L-34.964 46.009L-34.964 41.290Q-34.964 41.075-35.026 40.980Q-35.089 40.884-35.206 40.863Q-35.323 40.841-35.569 40.841L-35.569 40.544L-34.347 40.458L-34.347 42.947Q-33.870 42.482-33.171 42.482Q-32.690 42.482-32.282 42.726Q-31.874 42.970-31.638 43.384Q-31.401 43.798-31.401 44.282Q-31.401 44.657-31.550 44.986Q-31.698 45.314-31.968 45.566Q-32.237 45.818-32.581 45.952Q-32.925 46.087-33.284 46.087Q-33.605 46.087-33.903 45.939Q-34.202 45.790-34.409 45.529L-34.683 46.009M-34.323 43.337L-34.323 45.177Q-34.171 45.474-33.911 45.654Q-33.651 45.833-33.339 45.833Q-32.913 45.833-32.646 45.614Q-32.378 45.396-32.263 45.050Q-32.148 44.704-32.148 44.282Q-32.148 43.634-32.396 43.185Q-32.644 42.736-33.241 42.736Q-33.577 42.736-33.866 42.894Q-34.155 43.052-34.323 43.337M-29.019 46.009L-30.796 46.009L-30.796 45.712Q-30.523 45.712-30.355 45.665Q-30.187 45.618-30.187 45.450L-30.187 43.314Q-30.187 43.099-30.243 43.003Q-30.300 42.907-30.413 42.886Q-30.526 42.864-30.773 42.864L-30.773 42.568L-29.573 42.482L-29.573 45.450Q-29.573 45.618-29.427 45.665Q-29.280 45.712-29.019 45.712L-29.019 46.009M-30.460 41.087Q-30.460 40.896-30.325 40.765Q-30.190 40.634-29.995 40.634Q-29.874 40.634-29.771 40.697Q-29.667 40.759-29.605 40.863Q-29.542 40.966-29.542 41.087Q-29.542 41.282-29.673 41.417Q-29.804 41.552-29.995 41.552Q-30.194 41.552-30.327 41.419Q-30.460 41.286-30.460 41.087M-27.894 45.048L-27.894 42.857L-28.597 42.857L-28.597 42.603Q-28.241 42.603-27.999 42.370Q-27.757 42.138-27.646 41.790Q-27.534 41.443-27.534 41.087L-27.253 41.087L-27.253 42.560L-26.077 42.560L-26.077 42.857L-27.253 42.857L-27.253 45.032Q-27.253 45.353-27.134 45.581Q-27.015 45.810-26.733 45.810Q-26.554 45.810-26.437 45.687Q-26.319 45.564-26.267 45.384Q-26.214 45.204-26.214 45.032L-26.214 44.560L-25.933 44.560L-25.933 45.048Q-25.933 45.302-26.038 45.542Q-26.144 45.782-26.341 45.935Q-26.538 46.087-26.796 46.087Q-27.112 46.087-27.364 45.964Q-27.616 45.841-27.755 45.607Q-27.894 45.372-27.894 45.048",[1475],[1459,7022,7023],{"transform":7010},[1464,7024],{"d":7025,"fill":1489,"stroke":1489,"className":7026,"style":1560},"M-20.492 46.177Q-21.195 46.177-21.595 45.777Q-21.996 45.376-22.140 44.767Q-22.285 44.157-22.285 43.458Q-22.285 42.935-22.215 42.472Q-22.144 42.009-21.951 41.597Q-21.758 41.185-21.400 40.937Q-21.043 40.689-20.492 40.689Q-19.941 40.689-19.584 40.937Q-19.226 41.185-19.035 41.595Q-18.843 42.005-18.773 42.474Q-18.703 42.943-18.703 43.458Q-18.703 44.157-18.845 44.765Q-18.988 45.372-19.388 45.775Q-19.789 46.177-20.492 46.177M-20.492 45.919Q-20.019 45.919-19.787 45.484Q-19.554 45.048-19.500 44.509Q-19.445 43.970-19.445 43.329Q-19.445 42.333-19.629 41.640Q-19.812 40.947-20.492 40.947Q-20.859 40.947-21.080 41.185Q-21.300 41.423-21.396 41.780Q-21.492 42.138-21.517 42.509Q-21.543 42.880-21.543 43.329Q-21.543 43.970-21.488 44.509Q-21.433 45.048-21.201 45.484Q-20.968 45.919-20.492 45.919M-17.648 45.544Q-17.648 45.361-17.511 45.224Q-17.375 45.087-17.183 45.087Q-16.992 45.087-16.859 45.220Q-16.726 45.353-16.726 45.544Q-16.726 45.743-16.859 45.876Q-16.992 46.009-17.183 46.009Q-17.375 46.009-17.511 45.872Q-17.648 45.736-17.648 45.544M-17.648 43.017Q-17.648 42.833-17.511 42.697Q-17.375 42.560-17.183 42.560Q-16.992 42.560-16.859 42.693Q-16.726 42.825-16.726 43.017Q-16.726 43.216-16.859 43.349Q-16.992 43.482-17.183 43.482Q-17.375 43.482-17.511 43.345Q-17.648 43.208-17.648 43.017",[1475],[1459,7028,7029],{"transform":7010},[1464,7030],{"d":7031,"fill":1489,"stroke":1489,"className":7032,"style":1560},"M-12.072 47.138Q-12.072 46.939-11.935 46.790Q-11.798 46.642-11.599 46.642Q-11.462 46.642-11.367 46.728Q-11.271 46.814-11.271 46.947Q-11.271 47.068-11.337 47.177Q-11.404 47.286-11.513 47.345Q-11.419 47.364-11.244 47.374Q-11.068 47.384-10.849 47.384Q-10.474 47.384-10.154 47.124Q-9.833 46.864-9.744 46.497L-9.521 45.603Q-9.970 46.009-10.447 46.009Q-10.806 46.009-11.076 45.833Q-11.345 45.657-11.488 45.364Q-11.630 45.072-11.630 44.712Q-11.630 44.197-11.353 43.673Q-11.076 43.150-10.607 42.816Q-10.138 42.482-9.615 42.482Q-9.458 42.482-9.312 42.534Q-9.165 42.587-9.044 42.691Q-8.923 42.794-8.849 42.919Q-8.822 42.794-8.716 42.714Q-8.611 42.634-8.482 42.634Q-8.369 42.634-8.288 42.704Q-8.208 42.775-8.208 42.888Q-8.208 42.911-8.210 42.927Q-8.212 42.943-8.216 42.962L-9.119 46.552Q-9.208 46.904-9.482 47.148Q-9.755 47.392-10.126 47.517Q-10.497 47.642-10.857 47.642Q-11.345 47.642-11.708 47.554Q-12.072 47.466-12.072 47.138M-10.431 45.751Q-10.134 45.751-9.859 45.552Q-9.583 45.353-9.384 45.064L-8.958 43.376Q-9.021 43.111-9.197 42.923Q-9.372 42.736-9.630 42.736Q-9.970 42.736-10.240 43.009Q-10.509 43.282-10.665 43.657Q-10.744 43.857-10.814 44.103Q-10.884 44.349-10.931 44.613Q-10.978 44.876-10.978 45.040Q-10.978 45.224-10.919 45.386Q-10.861 45.548-10.736 45.650Q-10.611 45.751-10.431 45.751",[1475],[1459,7034,7035],{"transform":7010},[1464,7036],{"d":7037,"fill":1489,"stroke":1489,"className":7038,"style":1560},"M-5.724 48.009L-6.900 48.009L-6.900 40.009L-5.724 40.009L-5.724 40.376L-6.533 40.376L-6.533 47.642L-5.724 47.642",[1475],[1459,7040,7041],{"transform":7010},[1464,7042],{"d":7043,"fill":1489,"stroke":1489,"className":7044,"style":1560},"M-4.836 45.833Q-4.832 45.814-4.830 45.800Q-4.828 45.786-4.828 45.763L-4.234 43.392Q-4.195 43.236-4.195 43.099Q-4.195 42.950-4.248 42.843Q-4.301 42.736-4.433 42.736Q-4.613 42.736-4.732 42.905Q-4.851 43.075-4.908 43.261Q-4.965 43.447-5.035 43.736Q-5.047 43.810-5.117 43.810L-5.218 43.810Q-5.254 43.810-5.281 43.775Q-5.308 43.739-5.308 43.712L-5.308 43.681Q-5.222 43.349-5.129 43.107Q-5.035 42.864-4.859 42.673Q-4.683 42.482-4.418 42.482Q-4.215 42.482-4.021 42.564Q-3.828 42.646-3.703 42.802Q-3.578 42.958-3.578 43.161Q-3.320 42.841-2.996 42.661Q-2.672 42.482-2.293 42.482Q-1.886 42.482-1.607 42.667Q-1.328 42.853-1.285 43.239Q-1.019 42.884-0.681 42.683Q-0.343 42.482 0.063 42.482Q0.516 42.482 0.797 42.708Q1.078 42.935 1.078 43.368Q1.078 43.708 0.946 44.109Q0.813 44.509 0.559 45.177Q0.461 45.392 0.461 45.583Q0.461 45.833 0.637 45.833Q0.946 45.833 1.166 45.511Q1.387 45.189 1.469 44.833Q1.496 44.763 1.559 44.763L1.660 44.763Q1.699 44.763 1.725 44.796Q1.750 44.829 1.750 44.857Q1.750 44.872 1.742 44.888Q1.668 45.177 1.518 45.448Q1.367 45.720 1.137 45.904Q0.907 46.087 0.621 46.087Q0.313 46.087 0.094 45.900Q-0.125 45.712-0.125 45.407Q-0.125 45.251-0.066 45.122Q0.176 44.478 0.319 44.036Q0.461 43.595 0.461 43.267Q0.461 43.036 0.364 42.886Q0.266 42.736 0.043 42.736Q-0.781 42.736-1.340 43.810L-1.836 45.802Q-1.867 45.927-1.972 46.007Q-2.078 46.087-2.203 46.087Q-2.312 46.087-2.394 46.017Q-2.476 45.947-2.476 45.833Q-2.472 45.814-2.470 45.800Q-2.468 45.786-2.468 45.763L-1.957 43.736Q-1.890 43.447-1.890 43.267Q-1.890 43.036-1.988 42.886Q-2.086 42.736-2.308 42.736Q-2.769 42.736-3.109 43.036Q-3.449 43.337-3.699 43.810L-4.195 45.802Q-4.226 45.927-4.332 46.007Q-4.437 46.087-4.562 46.087Q-4.672 46.087-4.754 46.017Q-4.836 45.947-4.836 45.833",[1475],[1459,7046,7047],{"transform":7010},[1464,7048],{"d":7049,"fill":1489,"stroke":1489,"className":7050,"style":1560},"M3.347 48.009L2.172 48.009L2.172 47.642L2.980 47.642L2.980 40.376L2.172 40.376L2.172 40.009L3.347 40.009",[1475],[1459,7052,7053],{"transform":7010},[1464,7054],{"d":7055,"fill":1489,"stroke":1489,"className":7056,"style":1560},"M9.831 44.193L7.358 44.193Q7.280 44.181 7.231 44.132Q7.183 44.083 7.183 44.009Q7.183 43.935 7.231 43.886Q7.280 43.837 7.358 43.825L9.831 43.825L9.831 41.345Q9.858 41.177 10.015 41.177Q10.089 41.177 10.138 41.226Q10.187 41.275 10.198 41.345L10.198 43.825L12.671 43.825Q12.839 43.857 12.839 44.009Q12.839 44.161 12.671 44.193L10.198 44.193L10.198 46.673Q10.187 46.743 10.138 46.792Q10.089 46.841 10.015 46.841Q9.858 46.841 9.831 46.673",[1475],[1459,7058,7059],{"transform":7010},[1464,7060],{"d":7061,"fill":1489,"stroke":1489,"className":7062,"style":1560},"M19.282 45.032L13.969 45.032Q13.891 45.025 13.842 44.976Q13.794 44.927 13.794 44.849Q13.794 44.779 13.841 44.728Q13.887 44.677 13.969 44.665L19.282 44.665Q19.356 44.677 19.403 44.728Q19.450 44.779 19.450 44.849Q19.450 44.927 19.401 44.976Q19.352 45.025 19.282 45.032M19.282 43.345L13.969 43.345Q13.891 43.337 13.842 43.288Q13.794 43.239 13.794 43.161Q13.794 43.091 13.841 43.040Q13.887 42.989 13.969 42.978L19.282 42.978Q19.356 42.989 19.403 43.040Q19.450 43.091 19.450 43.161Q19.450 43.239 19.401 43.288Q19.352 43.337 19.282 43.345",[1475],[1459,7064,7065],{"transform":7010},[1464,7066],{"d":7067,"fill":1489,"stroke":1489,"className":7068,"style":1560},"M22.446 47.138Q22.446 46.939 22.583 46.790Q22.720 46.642 22.919 46.642Q23.056 46.642 23.151 46.728Q23.247 46.814 23.247 46.947Q23.247 47.068 23.181 47.177Q23.114 47.286 23.005 47.345Q23.099 47.364 23.274 47.374Q23.450 47.384 23.669 47.384Q24.044 47.384 24.364 47.124Q24.685 46.864 24.774 46.497L24.997 45.603Q24.548 46.009 24.071 46.009Q23.712 46.009 23.442 45.833Q23.173 45.657 23.030 45.364Q22.888 45.072 22.888 44.712Q22.888 44.197 23.165 43.673Q23.442 43.150 23.911 42.816Q24.380 42.482 24.903 42.482Q25.060 42.482 25.206 42.534Q25.353 42.587 25.474 42.691Q25.595 42.794 25.669 42.919Q25.696 42.794 25.802 42.714Q25.907 42.634 26.036 42.634Q26.149 42.634 26.230 42.704Q26.310 42.775 26.310 42.888Q26.310 42.911 26.308 42.927Q26.306 42.943 26.302 42.962L25.399 46.552Q25.310 46.904 25.036 47.148Q24.763 47.392 24.392 47.517Q24.021 47.642 23.661 47.642Q23.173 47.642 22.810 47.554Q22.446 47.466 22.446 47.138M24.087 45.751Q24.384 45.751 24.659 45.552Q24.935 45.353 25.134 45.064L25.560 43.376Q25.497 43.111 25.321 42.923Q25.146 42.736 24.888 42.736Q24.548 42.736 24.278 43.009Q24.009 43.282 23.853 43.657Q23.774 43.857 23.704 44.103Q23.634 44.349 23.587 44.613Q23.540 44.876 23.540 45.040Q23.540 45.224 23.599 45.386Q23.657 45.548 23.782 45.650Q23.907 45.751 24.087 45.751",[1475],[1459,7070,7071],{"transform":7010},[1464,7072],{"d":7073,"fill":1489,"stroke":1489,"className":7074,"style":1560},"M28.794 48.009L27.618 48.009L27.618 40.009L28.794 40.009L28.794 40.376L27.985 40.376L27.985 47.642L28.794 47.642",[1475],[1459,7076,7077],{"transform":7010},[1464,7078],{"d":7079,"fill":1489,"stroke":1489,"className":7080,"style":1560},"M29.682 45.833Q29.686 45.814 29.688 45.800Q29.690 45.786 29.690 45.763L30.284 43.392Q30.323 43.236 30.323 43.099Q30.323 42.950 30.270 42.843Q30.217 42.736 30.085 42.736Q29.905 42.736 29.786 42.905Q29.667 43.075 29.610 43.261Q29.553 43.447 29.483 43.736Q29.471 43.810 29.401 43.810L29.299 43.810Q29.264 43.810 29.237 43.775Q29.210 43.739 29.210 43.712L29.210 43.681Q29.296 43.349 29.389 43.107Q29.483 42.864 29.659 42.673Q29.835 42.482 30.100 42.482Q30.303 42.482 30.497 42.564Q30.690 42.646 30.815 42.802Q30.940 42.958 30.940 43.161Q31.198 42.841 31.522 42.661Q31.846 42.482 32.225 42.482Q32.632 42.482 32.911 42.667Q33.190 42.853 33.233 43.239Q33.499 42.884 33.837 42.683Q34.174 42.482 34.581 42.482Q35.034 42.482 35.315 42.708Q35.596 42.935 35.596 43.368Q35.596 43.708 35.464 44.109Q35.331 44.509 35.077 45.177Q34.979 45.392 34.979 45.583Q34.979 45.833 35.155 45.833Q35.464 45.833 35.684 45.511Q35.905 45.189 35.987 44.833Q36.014 44.763 36.077 44.763L36.178 44.763Q36.217 44.763 36.243 44.796Q36.268 44.829 36.268 44.857Q36.268 44.872 36.260 44.888Q36.186 45.177 36.036 45.448Q35.885 45.720 35.655 45.904Q35.424 46.087 35.139 46.087Q34.831 46.087 34.612 45.900Q34.393 45.712 34.393 45.407Q34.393 45.251 34.452 45.122Q34.694 44.478 34.837 44.036Q34.979 43.595 34.979 43.267Q34.979 43.036 34.882 42.886Q34.784 42.736 34.561 42.736Q33.737 42.736 33.178 43.810L32.682 45.802Q32.651 45.927 32.546 46.007Q32.440 46.087 32.315 46.087Q32.206 46.087 32.124 46.017Q32.042 45.947 32.042 45.833Q32.046 45.814 32.048 45.800Q32.049 45.786 32.049 45.763L32.561 43.736Q32.628 43.447 32.628 43.267Q32.628 43.036 32.530 42.886Q32.432 42.736 32.210 42.736Q31.749 42.736 31.409 43.036Q31.069 43.337 30.819 43.810L30.323 45.802Q30.292 45.927 30.186 46.007Q30.081 46.087 29.956 46.087Q29.846 46.087 29.764 46.017Q29.682 45.947 29.682 45.833",[1475],[1459,7082,7083],{"transform":7010},[1464,7084],{"d":7085,"fill":1489,"stroke":1489,"className":7086,"style":1560},"M41.699 46.841Q40.933 46.841 40.281 46.458Q39.628 46.075 39.248 45.421Q38.867 44.767 38.867 44.009Q38.867 43.251 39.248 42.597Q39.628 41.943 40.281 41.560Q40.933 41.177 41.699 41.177Q42.460 41.177 43.111 41.560Q43.761 41.943 44.142 42.597Q44.523 43.251 44.523 44.009Q44.523 44.767 44.142 45.421Q43.761 46.075 43.111 46.458Q42.460 46.841 41.699 46.841M41.554 46.552L41.554 44.146L39.148 44.146Q39.148 44.591 39.349 45.025Q39.550 45.458 39.896 45.804Q40.242 46.150 40.675 46.351Q41.109 46.552 41.554 46.552M41.835 44.146L41.835 46.552Q42.285 46.552 42.720 46.349Q43.156 46.146 43.494 45.808Q43.831 45.470 44.037 45.030Q44.242 44.591 44.242 44.146L41.835 44.146M39.156 43.864L41.554 43.864L41.554 41.466Q41.113 41.466 40.677 41.669Q40.242 41.872 39.900 42.214Q39.558 42.556 39.357 42.988Q39.156 43.419 39.156 43.864M41.835 41.466L41.835 43.864L44.234 43.864Q44.234 43.419 44.037 42.989Q43.839 42.560 43.498 42.216Q43.156 41.872 42.718 41.669Q42.281 41.466 41.835 41.466",[1475],[1459,7088,7089],{"transform":7010},[1464,7090],{"d":7091,"fill":1489,"stroke":1489,"className":7092,"style":1560},"M50.488 46.009L47.695 46.009L47.695 45.712Q48.757 45.712 48.757 45.450L48.757 41.282Q48.328 41.497 47.648 41.497L47.648 41.200Q48.667 41.200 49.183 40.689L49.328 40.689Q49.402 40.708 49.421 40.786L49.421 45.450Q49.421 45.712 50.488 45.712L50.488 46.009M52.499 48.009L51.324 48.009L51.324 47.642L52.132 47.642L52.132 40.376L51.324 40.376L51.324 40.009L52.499 40.009",[1475],[1687,7094,7096,7097,7153,7154,7169,7170,7185,7186,7243],{"className":7095},[1690],"SOS DP folds one bit at a time over the hypercube ",[390,7098,7100],{"className":7099},[393],[390,7101,7103],{"className":7102,"ariaHidden":398},[397],[390,7104,7106,7109,7112,7115,7118,7121,7124],{"className":7105},[402],[390,7107],{"className":7108,"style":543},[406],[390,7110,6836],{"className":7111},[455],[390,7113,1432],{"className":7114},[411],[390,7116,912],{"className":7117},[911],[390,7119],{"className":7120,"style":853},[463],[390,7122,667],{"className":7123},[411],[390,7125,7127,7130],{"className":7126},[485],[390,7128,6855],{"className":7129},[485],[390,7131,7133],{"className":7132},[559],[390,7134,7136],{"className":7135},[563],[390,7137,7139],{"className":7138},[567],[390,7140,7142],{"className":7141,"style":572},[571],[390,7143,7144,7147],{"style":575},[390,7145],{"className":7146,"style":580},[579],[390,7148,7150],{"className":7149},[584,585,586,587],[390,7151,643],{"className":7152},[411,587],": when processing bit ",[390,7155,7157],{"className":7156},[393],[390,7158,7160],{"className":7159,"ariaHidden":398},[397],[390,7161,7163,7166],{"className":7162},[402],[390,7164],{"className":7165,"style":932},[406],[390,7167,2016],{"className":7168},[411,412],", each mask with bit ",[390,7171,7173],{"className":7172},[393],[390,7174,7176],{"className":7175,"ariaHidden":398},[397],[390,7177,7179,7182],{"className":7178},[402],[390,7180],{"className":7181,"style":932},[406],[390,7183,2016],{"className":7184},[411,412]," set absorbs ",[390,7187,7189],{"className":7188},[393],[390,7190,7192,7217],{"className":7191,"ariaHidden":398},[397],[390,7193,7195,7198,7201,7204,7207,7210,7214],{"className":7194},[402],[390,7196],{"className":7197,"style":446},[406],[390,7199,1459],{"className":7200,"style":6416},[411,412],[390,7202,721],{"className":7203},[455],[390,7205,1901],{"className":7206},[411,412],[390,7208],{"className":7209,"style":464},[463],[390,7211,7213],{"className":7212},[468],"⊕",[390,7215],{"className":7216,"style":464},[463],[390,7218,7220,7223,7226,7229,7236,7239],{"className":7219},[402],[390,7221],{"className":7222,"style":446},[406],[390,7224,456],{"className":7225},[455],[390,7227,667],{"className":7228},[411],[390,7230,7232],{"className":7231},[411],[390,7233,7235],{"className":7234},[737],"≪",[390,7237,2016],{"className":7238},[411,412],[390,7240,7242],{"className":7241},[485],")]"," along that axis",[1063,7245,7247],{"className":1065,"code":7246,"language":1067,"meta":376,"style":376},"caption: $\\textsc{SOS}$ — submask sums for all masks in $O(n\\,2^n)$\nfor $m \\gets 0$ to $2^n-1$ do\n  $g[m] \\gets f[m]$\nfor $b \\gets 0$ to $n-1$ do\n  for $m \\gets 0$ to $2^n-1$ do\n    if $m \\mathbin{\\&} (1 \\ll b) \\ne 0$ then\n      $g[m] \\gets g[m] + g[m \\oplus (1 \\ll b)]$\n",[1069,7248,7249,7254,7259,7264,7269,7274,7279],{"__ignoreMap":376},[390,7250,7251],{"class":1073,"line":6},[390,7252,7253],{},"caption: $\\textsc{SOS}$ — submask sums for all masks in $O(n\\,2^n)$\n",[390,7255,7256],{"class":1073,"line":18},[390,7257,7258],{},"for $m \\gets 0$ to $2^n-1$ do\n",[390,7260,7261],{"class":1073,"line":24},[390,7262,7263],{},"  $g[m] \\gets f[m]$\n",[390,7265,7266],{"class":1073,"line":73},[390,7267,7268],{},"for $b \\gets 0$ to $n-1$ do\n",[390,7270,7271],{"class":1073,"line":102},[390,7272,7273],{},"  for $m \\gets 0$ to $2^n-1$ do\n",[390,7275,7276],{"class":1073,"line":108},[390,7277,7278],{},"    if $m \\mathbin{\\&} (1 \\ll b) \\ne 0$ then\n",[390,7280,7281],{"class":1073,"line":116},[390,7282,7283],{},"      $g[m] \\gets g[m] + g[m \\oplus (1 \\ll b)]$\n",[381,7285,7286,7287,7302,7303,7327,7328,7343,7344,7359,7360,7375,7376,7394,7395,7410,7411,7414,7415,7418],{},"After processing bit ",[390,7288,7290],{"className":7289},[393],[390,7291,7293],{"className":7292,"ariaHidden":398},[397],[390,7294,7296,7299],{"className":7295},[402],[390,7297],{"className":7298,"style":932},[406],[390,7300,2016],{"className":7301},[411,412],", ",[390,7304,7306],{"className":7305},[393],[390,7307,7309],{"className":7308,"ariaHidden":398},[397],[390,7310,7312,7315,7318,7321,7324],{"className":7311},[402],[390,7313],{"className":7314,"style":446},[406],[390,7316,1459],{"className":7317,"style":6416},[411,412],[390,7319,721],{"className":7320},[455],[390,7322,1901],{"className":7323},[411,412],[390,7325,729],{"className":7326},[485]," holds the sum of ",[390,7329,7331],{"className":7330},[393],[390,7332,7334],{"className":7333,"ariaHidden":398},[397],[390,7335,7337,7340],{"className":7336},[402],[390,7338],{"className":7339,"style":1725},[406],[390,7341,6335],{"className":7342,"style":6334},[411,412]," over all submasks of ",[390,7345,7347],{"className":7346},[393],[390,7348,7350],{"className":7349,"ariaHidden":398},[397],[390,7351,7353,7356],{"className":7352},[402],[390,7354],{"className":7355,"style":1235},[406],[390,7357,1901],{"className":7358},[411,412],"\nthat differ from ",[390,7361,7363],{"className":7362},[393],[390,7364,7366],{"className":7365,"ariaHidden":398},[397],[390,7367,7369,7372],{"className":7368},[402],[390,7370],{"className":7371,"style":1235},[406],[390,7373,1901],{"className":7374},[411,412]," only in bits ",[390,7377,7379],{"className":7378},[393],[390,7380,7382],{"className":7381,"ariaHidden":398},[397],[390,7383,7385,7388,7391],{"className":7384},[402],[390,7386],{"className":7387,"style":932},[406],[390,7389,6761],{"className":7390},[411],[390,7392,2016],{"className":7393},[411,412],"; after all ",[390,7396,7398],{"className":7397},[393],[390,7399,7401],{"className":7400,"ariaHidden":398},[397],[390,7402,7404,7407],{"className":7403},[402],[390,7405],{"className":7406,"style":1235},[406],[390,7408,526],{"className":7409},[411,412]," bits, it is the full\nsubmask sum. Replacing the order of the two loops, or flipping the bit test,\ngives sums over ",[649,7412,7413],{},"supersets"," instead. This is what drives the\n",[654,7416,7417],{},"bitmask-DP"," lesson's harder counting problems: anything that asks you to\naggregate over all subsets of every state at once.",[688,7420,7422],{"id":7421},"choosing-the-technique","Choosing the technique",[7424,7425,7426,7442],"table",{},[7427,7428,7429],"thead",{},[7430,7431,7432,7436,7439],"tr",{},[7433,7434,7435],"th",{},"Technique",[7433,7437,7438],{},"Transition shape",[7433,7440,7441],{},"Complexity win",[7443,7444,7445,7662,7989,8299,8633],"tbody",{},[7430,7446,7447,7451,7608],{},[7448,7449,7450],"td",{},"Monotonic queue",[7448,7452,7453,7607],{},[390,7454,7456],{"className":7455},[393],[390,7457,7459,7489,7586],{"className":7458,"ariaHidden":398},[397],[390,7460,7462,7465,7468,7471,7474,7477,7480,7483,7486],{"className":7461},[402],[390,7463],{"className":7464,"style":446},[406],[390,7466,714],{"className":7467},[411,412],[390,7469,381],{"className":7470},[411,412],[390,7472,721],{"className":7473},[455],[390,7475,725],{"className":7476},[411,412],[390,7478,729],{"className":7479},[485],[390,7481],{"className":7482,"style":733},[463],[390,7484,738],{"className":7485},[737],[390,7487],{"className":7488,"style":733},[463],[390,7490,7492,7495,7559,7562,7565,7568,7571,7574,7577,7580,7583],{"className":7491},[402],[390,7493],{"className":7494,"style":2401},[406],[390,7496,7498,7504],{"className":7497},[760],[390,7499,7501],{"className":7500},[760],[390,7502,768],{"className":7503},[411,767],[390,7505,7507],{"className":7506},[559],[390,7508,7510,7551],{"className":7509},[563,775],[390,7511,7513,7548],{"className":7512},[567],[390,7514,7516],{"className":7515,"style":782},[571],[390,7517,7518,7521],{"style":785},[390,7519],{"className":7520,"style":580},[579],[390,7522,7524],{"className":7523},[584,585,586,587],[390,7525,7527,7530,7533,7536,7539,7542,7545],{"className":7526},[411,587],[390,7528,725],{"className":7529},[411,412,587],[390,7531,801],{"className":7532},[468,587],[390,7534,806],{"className":7535,"style":805},[411,412,587],[390,7537,814],{"className":7538},[737,587],[390,7540,822],{"className":7541,"style":821},[411,412,587],[390,7543,829],{"className":7544},[737,587],[390,7546,725],{"className":7547},[411,412,587],[390,7549,840],{"className":7550},[839],[390,7552,7554],{"className":7553},[567],[390,7555,7557],{"className":7556,"style":847},[571],[390,7558],{},[390,7560],{"className":7561,"style":853},[463],[390,7563,714],{"className":7564},[411,412],[390,7566,381],{"className":7567},[411,412],[390,7569,721],{"className":7570},[455],[390,7572,822],{"className":7573,"style":821},[411,412],[390,7575,729],{"className":7576},[485],[390,7578],{"className":7579,"style":464},[463],[390,7581,881],{"className":7582},[468],[390,7584],{"className":7585,"style":464},[463],[390,7587,7589,7592,7598,7601,7604],{"className":7588},[402],[390,7590],{"className":7591,"style":446},[406],[390,7593,7595],{"className":7594},[411,894],[390,7596,898],{"className":7597},[411],[390,7599,456],{"className":7600},[455],[390,7602,725],{"className":7603},[411,412],[390,7605,486],{"className":7606},[485]," (sliding window)",[7448,7609,7610],{},[390,7611,7613],{"className":7612},[393],[390,7614,7616,7644],{"className":7615,"ariaHidden":398},[397],[390,7617,7619,7622,7625,7628,7631,7634,7637,7641],{"className":7618},[402],[390,7620],{"className":7621,"style":446},[406],[390,7623,451],{"className":7624,"style":450},[411,412],[390,7626,456],{"className":7627},[455],[390,7629,975],{"className":7630,"style":805},[411,412],[390,7632,486],{"className":7633},[485],[390,7635],{"className":7636,"style":733},[463],[390,7638,7640],{"className":7639},[737],"→",[390,7642],{"className":7643,"style":733},[463],[390,7645,7647,7650,7653,7656,7659],{"className":7646},[402],[390,7648],{"className":7649,"style":446},[406],[390,7651,451],{"className":7652,"style":450},[411,412],[390,7654,456],{"className":7655},[455],[390,7657,526],{"className":7658},[411,412],[390,7660,486],{"className":7661},[485],[7430,7663,7664,7666,7895],{},[7448,7665,1782],{},[7448,7667,7668,7894],{},[390,7669,7671],{"className":7670},[393],[390,7672,7674,7704,7845],{"className":7673,"ariaHidden":398},[397],[390,7675,7677,7680,7683,7686,7689,7692,7695,7698,7701],{"className":7676},[402],[390,7678],{"className":7679,"style":446},[406],[390,7681,714],{"className":7682},[411,412],[390,7684,381],{"className":7685},[411,412],[390,7687,721],{"className":7688},[455],[390,7690,725],{"className":7691},[411,412],[390,7693,729],{"className":7694},[485],[390,7696],{"className":7697,"style":733},[463],[390,7699,738],{"className":7700},[737],[390,7702],{"className":7703,"style":733},[463],[390,7705,7707,7710,7753,7756,7796,7836,7839,7842],{"className":7706},[402],[390,7708],{"className":7709,"style":2401},[406],[390,7711,7713,7719],{"className":7712},[760],[390,7714,7716],{"className":7715},[760],[390,7717,768],{"className":7718},[411,767],[390,7720,7722],{"className":7721},[559],[390,7723,7725,7745],{"className":7724},[563,775],[390,7726,7728,7742],{"className":7727},[567],[390,7729,7731],{"className":7730,"style":1856},[571],[390,7732,7733,7736],{"style":785},[390,7734],{"className":7735,"style":580},[579],[390,7737,7739],{"className":7738},[584,585,586,587],[390,7740,822],{"className":7741,"style":821},[411,412,587],[390,7743,840],{"className":7744},[839],[390,7746,7748],{"className":7747},[567],[390,7749,7751],{"className":7750,"style":847},[571],[390,7752],{},[390,7754,456],{"className":7755},[455],[390,7757,7759,7762],{"className":7758},[411],[390,7760,1901],{"className":7761},[411,412],[390,7763,7765],{"className":7764},[559],[390,7766,7768,7788],{"className":7767},[563,775],[390,7769,7771,7785],{"className":7770},[567],[390,7772,7774],{"className":7773,"style":1856},[571],[390,7775,7776,7779],{"style":1916},[390,7777],{"className":7778,"style":580},[579],[390,7780,7782],{"className":7781},[584,585,586,587],[390,7783,822],{"className":7784,"style":821},[411,412,587],[390,7786,840],{"className":7787},[839],[390,7789,7791],{"className":7790},[567],[390,7792,7794],{"className":7793,"style":847},[571],[390,7795],{},[390,7797,7799,7802],{"className":7798},[411],[390,7800,1959],{"className":7801},[411,412],[390,7803,7805],{"className":7804},[559],[390,7806,7808,7828],{"className":7807},[563,775],[390,7809,7811,7825],{"className":7810},[567],[390,7812,7814],{"className":7813,"style":1856},[571],[390,7815,7816,7819],{"style":1916},[390,7817],{"className":7818,"style":580},[579],[390,7820,7822],{"className":7821},[584,585,586,587],[390,7823,725],{"className":7824},[411,412,587],[390,7826,840],{"className":7827},[839],[390,7829,7831],{"className":7830},[567],[390,7832,7834],{"className":7833,"style":1992},[571],[390,7835],{},[390,7837],{"className":7838,"style":464},[463],[390,7840,881],{"className":7841},[468],[390,7843],{"className":7844,"style":464},[463],[390,7846,7848,7851,7891],{"className":7847},[402],[390,7849],{"className":7850,"style":2401},[406],[390,7852,7854,7857],{"className":7853},[411],[390,7855,2016],{"className":7856},[411,412],[390,7858,7860],{"className":7859},[559],[390,7861,7863,7883],{"className":7862},[563,775],[390,7864,7866,7880],{"className":7865},[567],[390,7867,7869],{"className":7868,"style":1856},[571],[390,7870,7871,7874],{"style":1916},[390,7872],{"className":7873,"style":580},[579],[390,7875,7877],{"className":7876},[584,585,586,587],[390,7878,822],{"className":7879,"style":821},[411,412,587],[390,7881,840],{"className":7882},[839],[390,7884,7886],{"className":7885},[567],[390,7887,7889],{"className":7888,"style":847},[571],[390,7890],{},[390,7892,486],{"className":7893},[485]," (line per state)",[7448,7896,7897],{},[390,7898,7900],{"className":7899},[393],[390,7901,7903,7956],{"className":7902,"ariaHidden":398},[397],[390,7904,7906,7909,7912,7915,7944,7947,7950,7953],{"className":7905},[402],[390,7907],{"className":7908,"style":543},[406],[390,7910,451],{"className":7911,"style":450},[411,412],[390,7913,456],{"className":7914},[455],[390,7916,7918,7921],{"className":7917},[411],[390,7919,526],{"className":7920},[411,412],[390,7922,7924],{"className":7923},[559],[390,7925,7927],{"className":7926},[563],[390,7928,7930],{"className":7929},[567],[390,7931,7933],{"className":7932,"style":572},[571],[390,7934,7935,7938],{"style":575},[390,7936],{"className":7937,"style":580},[579],[390,7939,7941],{"className":7940},[584,585,586,587],[390,7942,591],{"className":7943},[411,587],[390,7945,486],{"className":7946},[485],[390,7948],{"className":7949,"style":733},[463],[390,7951,7640],{"className":7952},[737],[390,7954],{"className":7955,"style":733},[463],[390,7957,7959,7962,7965,7968,7971,7974,7980,7983,7986],{"className":7958},[402],[390,7960],{"className":7961,"style":446},[406],[390,7963,451],{"className":7964,"style":450},[411,412],[390,7966,456],{"className":7967},[455],[390,7969,526],{"className":7970},[411,412],[390,7972],{"className":7973,"style":853},[463],[390,7975,7977],{"className":7976},[760],[390,7978,2933],{"className":7979,"style":2932},[411,767],[390,7981],{"className":7982,"style":853},[463],[390,7984,526],{"className":7985},[411,412],[390,7987,486],{"className":7988},[485],[7430,7990,7991,7994,8199],{},[7448,7992,7993],{},"Divide & conquer",[7448,7995,7996,7302,8180,8198],{},[390,7997,7999],{"className":7998},[393],[390,8000,8002,8041,8123,8153],{"className":8001,"ariaHidden":398},[397],[390,8003,8005,8008,8011,8014,8017,8020,8023,8026,8029,8032,8035,8038],{"className":8004},[402],[390,8006],{"className":8007,"style":446},[406],[390,8009,714],{"className":8010},[411,412],[390,8012,381],{"className":8013},[411,412],[390,8015,721],{"className":8016},[455],[390,8018,725],{"className":8019},[411,412],[390,8021,729],{"className":8022},[485],[390,8024,721],{"className":8025},[455],[390,8027,822],{"className":8028,"style":821},[411,412],[390,8030,729],{"className":8031},[485],[390,8033],{"className":8034,"style":733},[463],[390,8036,738],{"className":8037},[737],[390,8039],{"className":8040,"style":733},[463],[390,8042,8044,8047,8099,8102,8105,8108,8111,8114,8117,8120],{"className":8043},[402],[390,8045],{"className":8046,"style":2401},[406],[390,8048,8050,8056],{"className":8049},[760],[390,8051,8053],{"className":8052},[760],[390,8054,768],{"className":8055},[411,767],[390,8057,8059],{"className":8058},[559],[390,8060,8062,8091],{"className":8061},[563,775],[390,8063,8065,8088],{"className":8064},[567],[390,8066,8068],{"className":8067,"style":782},[571],[390,8069,8070,8073],{"style":785},[390,8071],{"className":8072,"style":580},[579],[390,8074,8076],{"className":8075},[584,585,586,587],[390,8077,8079,8082,8085],{"className":8078},[411,587],[390,8080,806],{"className":8081,"style":805},[411,412,587],[390,8083,829],{"className":8084},[737,587],[390,8086,822],{"className":8087,"style":821},[411,412,587],[390,8089,840],{"className":8090},[839],[390,8092,8094],{"className":8093},[567],[390,8095,8097],{"className":8096,"style":847},[571],[390,8098],{},[390,8100],{"className":8101,"style":853},[463],[390,8103,714],{"className":8104},[411,412],[390,8106,381],{"className":8107},[411,412],[390,8109,721],{"className":8110},[455],[390,8112,725],{"className":8113},[411,412],[390,8115],{"className":8116,"style":464},[463],[390,8118,801],{"className":8119},[468],[390,8121],{"className":8122,"style":464},[463],[390,8124,8126,8129,8132,8135,8138,8141,8144,8147,8150],{"className":8125},[402],[390,8127],{"className":8128,"style":446},[406],[390,8130,667],{"className":8131},[411],[390,8133,729],{"className":8134},[485],[390,8136,721],{"className":8137},[455],[390,8139,806],{"className":8140,"style":805},[411,412],[390,8142,729],{"className":8143},[485],[390,8145],{"className":8146,"style":464},[463],[390,8148,881],{"className":8149},[468],[390,8151],{"className":8152,"style":464},[463],[390,8154,8156,8159,8162,8165,8168,8171,8174,8177],{"className":8155},[402],[390,8157],{"className":8158,"style":446},[406],[390,8160,3469],{"className":8161,"style":3468},[411,412],[390,8163,456],{"className":8164},[455],[390,8166,806],{"className":8167,"style":805},[411,412],[390,8169,912],{"className":8170},[911],[390,8172],{"className":8173,"style":853},[463],[390,8175,822],{"className":8176,"style":821},[411,412],[390,8178,486],{"className":8179},[485],[390,8181,8183],{"className":8182},[393],[390,8184,8186],{"className":8185,"ariaHidden":398},[397],[390,8187,8189,8192,8195],{"className":8188},[402],[390,8190],{"className":8191,"style":3567},[406],[390,8193,3515],{"className":8194},[411,412],[390,8196,3519],{"className":8197},[411,412]," monotone",[7448,8200,8201],{},[390,8202,8204],{"className":8203},[393],[390,8205,8207,8263],{"className":8206,"ariaHidden":398},[397],[390,8208,8210,8213,8216,8219,8222,8251,8254,8257,8260],{"className":8209},[402],[390,8211],{"className":8212,"style":543},[406],[390,8214,451],{"className":8215,"style":450},[411,412],[390,8217,456],{"className":8218},[455],[390,8220,806],{"className":8221,"style":805},[411,412],[390,8223,8225,8228],{"className":8224},[411],[390,8226,526],{"className":8227},[411,412],[390,8229,8231],{"className":8230},[559],[390,8232,8234],{"className":8233},[563],[390,8235,8237],{"className":8236},[567],[390,8238,8240],{"className":8239,"style":572},[571],[390,8241,8242,8245],{"style":575},[390,8243],{"className":8244,"style":580},[579],[390,8246,8248],{"className":8247},[584,585,586,587],[390,8249,591],{"className":8250},[411,587],[390,8252,486],{"className":8253},[485],[390,8255],{"className":8256,"style":733},[463],[390,8258,7640],{"className":8259},[737],[390,8261],{"className":8262,"style":733},[463],[390,8264,8266,8269,8272,8275,8278,8281,8284,8290,8293,8296],{"className":8265},[402],[390,8267],{"className":8268,"style":446},[406],[390,8270,451],{"className":8271,"style":450},[411,412],[390,8273,456],{"className":8274},[455],[390,8276,806],{"className":8277,"style":805},[411,412],[390,8279,526],{"className":8280},[411,412],[390,8282],{"className":8283,"style":853},[463],[390,8285,8287],{"className":8286},[760],[390,8288,2933],{"className":8289,"style":2932},[411,767],[390,8291],{"className":8292,"style":853},[463],[390,8294,526],{"className":8295},[411,412],[390,8297,486],{"className":8298},[485],[7430,8300,8301,8304,8528],{},[7448,8302,8303],{},"Knuth",[7448,8305,8306,8527],{},[390,8307,8309],{"className":8308},[393],[390,8310,8312,8351,8451,8500],{"className":8311,"ariaHidden":398},[397],[390,8313,8315,8318,8321,8324,8327,8330,8333,8336,8339,8342,8345,8348],{"className":8314},[402],[390,8316],{"className":8317,"style":446},[406],[390,8319,714],{"className":8320},[411,412],[390,8322,381],{"className":8323},[411,412],[390,8325,721],{"className":8326},[455],[390,8328,725],{"className":8329},[411,412],[390,8331,729],{"className":8332},[485],[390,8334,721],{"className":8335},[455],[390,8337,822],{"className":8338,"style":821},[411,412],[390,8340,729],{"className":8341},[485],[390,8343],{"className":8344,"style":733},[463],[390,8346,738],{"className":8347},[737],[390,8349],{"className":8350,"style":733},[463],[390,8352,8354,8357,8415,8418,8421,8424,8427,8430,8433,8436,8439,8442,8445,8448],{"className":8353},[402],[390,8355],{"className":8356,"style":2401},[406],[390,8358,8360,8366],{"className":8359},[760],[390,8361,8363],{"className":8362},[760],[390,8364,768],{"className":8365},[411,767],[390,8367,8369],{"className":8368},[559],[390,8370,8372,8407],{"className":8371},[563,775],[390,8373,8375,8404],{"className":8374},[567],[390,8376,8378],{"className":8377,"style":782},[571],[390,8379,8380,8383],{"style":785},[390,8381],{"className":8382,"style":580},[579],[390,8384,8386],{"className":8385},[584,585,586,587],[390,8387,8389,8392,8395,8398,8401],{"className":8388},[411,587],[390,8390,725],{"className":8391},[411,412,587],[390,8393,814],{"className":8394},[737,587],[390,8396,806],{"className":8397,"style":805},[411,412,587],[390,8399,829],{"className":8400},[737,587],[390,8402,822],{"className":8403,"style":821},[411,412,587],[390,8405,840],{"className":8406},[839],[390,8408,8410],{"className":8409},[567],[390,8411,8413],{"className":8412,"style":847},[571],[390,8414],{},[390,8416,456],{"className":8417},[455],[390,8419,714],{"className":8420},[411,412],[390,8422,381],{"className":8423},[411,412],[390,8425,721],{"className":8426},[455],[390,8428,725],{"className":8429},[411,412],[390,8431,729],{"className":8432},[485],[390,8434,721],{"className":8435},[455],[390,8437,806],{"className":8438,"style":805},[411,412],[390,8440,729],{"className":8441},[485],[390,8443],{"className":8444,"style":464},[463],[390,8446,881],{"className":8447},[468],[390,8449],{"className":8450,"style":464},[463],[390,8452,8454,8457,8460,8463,8466,8469,8475,8478,8481,8484,8487,8491,8494,8497],{"className":8453},[402],[390,8455],{"className":8456,"style":446},[406],[390,8458,714],{"className":8459},[411,412],[390,8461,381],{"className":8462},[411,412],[390,8464,721],{"className":8465},[455],[390,8467,806],{"className":8468,"style":805},[411,412],[390,8470,8472],{"className":8471},[411],[390,8473,881],{"className":8474},[411],[390,8476,667],{"className":8477},[411],[390,8479,729],{"className":8480},[485],[390,8482,721],{"className":8483},[455],[390,8485,822],{"className":8486,"style":821},[411,412],[390,8488,8490],{"className":8489},[485],"])",[390,8492],{"className":8493,"style":464},[463],[390,8495,881],{"className":8496},[468],[390,8498],{"className":8499,"style":464},[463],[390,8501,8503,8506,8509,8512,8515,8518,8521,8524],{"className":8502},[402],[390,8504],{"className":8505,"style":446},[406],[390,8507,3469],{"className":8508,"style":3468},[411,412],[390,8510,456],{"className":8511},[455],[390,8513,725],{"className":8514},[411,412],[390,8516,912],{"className":8517},[911],[390,8519],{"className":8520,"style":853},[463],[390,8522,822],{"className":8523,"style":821},[411,412],[390,8525,486],{"className":8526},[485],", QI",[7448,8529,8530],{},[390,8531,8533],{"className":8532},[393],[390,8534,8536,8589],{"className":8535,"ariaHidden":398},[397],[390,8537,8539,8542,8545,8548,8577,8580,8583,8586],{"className":8538},[402],[390,8540],{"className":8541,"style":543},[406],[390,8543,451],{"className":8544,"style":450},[411,412],[390,8546,456],{"className":8547},[455],[390,8549,8551,8554],{"className":8550},[411],[390,8552,526],{"className":8553},[411,412],[390,8555,8557],{"className":8556},[559],[390,8558,8560],{"className":8559},[563],[390,8561,8563],{"className":8562},[567],[390,8564,8566],{"className":8565,"style":572},[571],[390,8567,8568,8571],{"style":575},[390,8569],{"className":8570,"style":580},[579],[390,8572,8574],{"className":8573},[584,585,586,587],[390,8575,643],{"className":8576},[411,587],[390,8578,486],{"className":8579},[485],[390,8581],{"className":8582,"style":733},[463],[390,8584,7640],{"className":8585},[737],[390,8587],{"className":8588,"style":733},[463],[390,8590,8592,8595,8598,8601,8630],{"className":8591},[402],[390,8593],{"className":8594,"style":543},[406],[390,8596,451],{"className":8597,"style":450},[411,412],[390,8599,456],{"className":8600},[455],[390,8602,8604,8607],{"className":8603},[411],[390,8605,526],{"className":8606},[411,412],[390,8608,8610],{"className":8609},[559],[390,8611,8613],{"className":8612},[563],[390,8614,8616],{"className":8615},[567],[390,8617,8619],{"className":8618,"style":572},[571],[390,8620,8621,8624],{"style":575},[390,8622],{"className":8623,"style":580},[579],[390,8625,8627],{"className":8626},[584,585,586,587],[390,8628,591],{"className":8629},[411,587],[390,8631,486],{"className":8632},[485],[7430,8634,8635,8638,8748],{},[7448,8636,8637],{},"SOS DP",[7448,8639,8640,8747],{},[390,8641,8643],{"className":8642},[393],[390,8644,8646,8673],{"className":8645,"ariaHidden":398},[397],[390,8647,8649,8652,8655,8658,8661,8664,8667,8670],{"className":8648},[402],[390,8650],{"className":8651,"style":446},[406],[390,8653,1459],{"className":8654,"style":6416},[411,412],[390,8656,721],{"className":8657},[455],[390,8659,1901],{"className":8660},[411,412],[390,8662,729],{"className":8663},[485],[390,8665],{"className":8666,"style":733},[463],[390,8668,738],{"className":8669},[737],[390,8671],{"className":8672,"style":733},[463],[390,8674,8676,8680,8732,8735,8738,8741,8744],{"className":8675},[402],[390,8677],{"className":8678,"style":8679},[406],"height:1.1449em;vertical-align:-0.3949em;",[390,8681,8683,8687],{"className":8682},[760],[390,8684,8686],{"className":8685,"style":6547},[760,6491,6546],"⨁",[390,8688,8690],{"className":8689},[559],[390,8691,8693,8723],{"className":8692},[563,775],[390,8694,8696,8720],{"className":8695},[567],[390,8697,8700],{"className":8698,"style":8699},[571],"height:0.1455em;",[390,8701,8702,8705],{"style":6563},[390,8703],{"className":8704,"style":580},[579],[390,8706,8708],{"className":8707},[584,585,586,587],[390,8709,8711,8714,8717],{"className":8710},[411,587],[390,8712,6472],{"className":8713},[411,412,587],[390,8715,6476],{"className":8716},[737,587],[390,8718,1901],{"className":8719},[411,412,587],[390,8721,840],{"className":8722},[839],[390,8724,8726],{"className":8725},[567],[390,8727,8730],{"className":8728,"style":8729},[571],"height:0.3949em;",[390,8731],{},[390,8733],{"className":8734,"style":853},[463],[390,8736,6335],{"className":8737,"style":6334},[411,412],[390,8739,721],{"className":8740},[455],[390,8742,6472],{"className":8743},[411,412],[390,8745,729],{"className":8746},[485]," (submask aggregate)",[7448,8749,8750],{},[390,8751,8753],{"className":8752},[393],[390,8754,8756,8809],{"className":8755,"ariaHidden":398},[397],[390,8757,8759,8762,8765,8768,8797,8800,8803,8806],{"className":8758},[402],[390,8760],{"className":8761,"style":446},[406],[390,8763,451],{"className":8764,"style":450},[411,412],[390,8766,456],{"className":8767},[455],[390,8769,8771,8774],{"className":8770},[411],[390,8772,643],{"className":8773},[411],[390,8775,8777],{"className":8776},[559],[390,8778,8780],{"className":8779},[563],[390,8781,8783],{"className":8782},[567],[390,8784,8786],{"className":8785,"style":6649},[571],[390,8787,8788,8791],{"style":575},[390,8789],{"className":8790,"style":580},[579],[390,8792,8794],{"className":8793},[584,585,586,587],[390,8795,526],{"className":8796},[411,412,587],[390,8798,486],{"className":8799},[485],[390,8801],{"className":8802,"style":733},[463],[390,8804,7640],{"className":8805},[737],[390,8807],{"className":8808,"style":733},[463],[390,8810,8812,8815,8818,8821,8824,8827,8856],{"className":8811},[402],[390,8813],{"className":8814,"style":446},[406],[390,8816,451],{"className":8817,"style":450},[411,412],[390,8819,456],{"className":8820},[455],[390,8822,526],{"className":8823},[411,412],[390,8825],{"className":8826,"style":853},[463],[390,8828,8830,8833],{"className":8829},[411],[390,8831,591],{"className":8832},[411],[390,8834,8836],{"className":8835},[559],[390,8837,8839],{"className":8838},[563],[390,8840,8842],{"className":8841},[567],[390,8843,8845],{"className":8844,"style":6649},[571],[390,8846,8847,8850],{"style":575},[390,8848],{"className":8849,"style":580},[579],[390,8851,8853],{"className":8852},[584,585,586,587],[390,8854,526],{"className":8855},[411,412,587],[390,8857,486],{"className":8858},[485],[688,8860,8862],{"id":8861},"takeaways","Takeaways",[8864,8865,8866,8878,8911,9124,9276,9338],"ul",{},[8867,8868,8869,8870,8873,8874,8877],"li",{},"These are not new DPs but ",[654,8871,8872],{},"faster evaluations"," of an existing recurrence;\nthe trigger is always ",[649,8875,8876],{},"structure in the inner min\u002Fmax",", not its mere size.",[8867,8879,8880,8882,8883,8907,8908,8910],{},[654,8881,691],{},": a sliding-window min\u002Fmax transition runs in\n",[390,8884,8886],{"className":8885},[393],[390,8887,8889],{"className":8888,"ariaHidden":398},[397],[390,8890,8892,8895,8898,8901,8904],{"className":8891},[402],[390,8893],{"className":8894,"style":446},[406],[390,8896,451],{"className":8897,"style":450},[411,412],[390,8899,456],{"className":8900},[455],[390,8902,526],{"className":8903},[411,412],[390,8905,486],{"className":8906},[485]," via a ",[654,8909,986],{}," whose front is the window optimum — the\nnatural tool for Jump Game VI and Constrained Subsequence Sum.",[8867,8912,8913,8915,8916,8918,8919,8921,8922,8974,8975,9008,9009,9033,9034,9084,9085,2577],{},[654,8914,1782],{},": when each state is a ",[649,8917,1073],{}," and the transition queries\nthe ",[654,8920,2568],{}," at ",[390,8923,8925],{"className":8924},[393],[390,8926,8928],{"className":8927,"ariaHidden":398},[397],[390,8929,8931,8934],{"className":8930},[402],[390,8932],{"className":8933,"style":2280},[406],[390,8935,8937,8940],{"className":8936},[411],[390,8938,1959],{"className":8939},[411,412],[390,8941,8943],{"className":8942},[559],[390,8944,8946,8966],{"className":8945},[563,775],[390,8947,8949,8963],{"className":8948},[567],[390,8950,8952],{"className":8951,"style":1856},[571],[390,8953,8954,8957],{"style":1916},[390,8955],{"className":8956,"style":580},[579],[390,8958,8960],{"className":8959},[584,585,586,587],[390,8961,725],{"className":8962},[411,412,587],[390,8964,840],{"className":8965},[839],[390,8967,8969],{"className":8968},[567],[390,8970,8972],{"className":8971,"style":1992},[571],[390,8973],{},", maintain the hull and query in ",[390,8976,8978],{"className":8977},[393],[390,8979,8981],{"className":8980,"ariaHidden":398},[397],[390,8982,8984,8987,8990,8993,8999,9002,9005],{"className":8983},[402],[390,8985],{"className":8986,"style":446},[406],[390,8988,451],{"className":8989,"style":450},[411,412],[390,8991,456],{"className":8992},[455],[390,8994,8996],{"className":8995},[760],[390,8997,2933],{"className":8998,"style":2932},[411,767],[390,9000],{"className":9001,"style":853},[463],[390,9003,526],{"className":9004},[411,412],[390,9006,486],{"className":9007},[485],"\n(or ",[390,9010,9012],{"className":9011},[393],[390,9013,9015],{"className":9014,"ariaHidden":398},[397],[390,9016,9018,9021,9024,9027,9030],{"className":9017},[402],[390,9019],{"className":9020,"style":446},[406],[390,9022,451],{"className":9023,"style":450},[411,412],[390,9025,456],{"className":9026},[455],[390,9028,667],{"className":9029},[411],[390,9031,486],{"className":9032},[485]," amortized when slopes and queries are monotone), turning ",[390,9035,9037],{"className":9036},[393],[390,9038,9040],{"className":9039,"ariaHidden":398},[397],[390,9041,9043,9046,9049,9052,9081],{"className":9042},[402],[390,9044],{"className":9045,"style":543},[406],[390,9047,451],{"className":9048,"style":450},[411,412],[390,9050,456],{"className":9051},[455],[390,9053,9055,9058],{"className":9054},[411],[390,9056,526],{"className":9057},[411,412],[390,9059,9061],{"className":9060},[559],[390,9062,9064],{"className":9063},[563],[390,9065,9067],{"className":9066},[567],[390,9068,9070],{"className":9069,"style":572},[571],[390,9071,9072,9075],{"style":575},[390,9073],{"className":9074,"style":580},[579],[390,9076,9078],{"className":9077},[584,585,586,587],[390,9079,591],{"className":9080},[411,587],[390,9082,486],{"className":9083},[485],"\ninto ",[390,9086,9088],{"className":9087},[393],[390,9089,9091],{"className":9090,"ariaHidden":398},[397],[390,9092,9094,9097,9100,9103,9106,9109,9115,9118,9121],{"className":9093},[402],[390,9095],{"className":9096,"style":446},[406],[390,9098,451],{"className":9099,"style":450},[411,412],[390,9101,456],{"className":9102},[455],[390,9104,526],{"className":9105},[411,412],[390,9107],{"className":9108,"style":853},[463],[390,9110,9112],{"className":9111},[760],[390,9113,2933],{"className":9114,"style":2932},[411,767],[390,9116],{"className":9117,"style":853},[463],[390,9119,526],{"className":9120},[411,412],[390,9122,486],{"className":9123},[485],[8867,9125,9126,9128,9129,9132,9168,9169,9171,9172,9174,9175,2994,9225,9275],{},[654,9127,3292],{}," needs a ",[654,9130,9131],{},"monotone optimal split",[390,9133,9135],{"className":9134},[393],[390,9136,9138],{"className":9137,"ariaHidden":398},[397],[390,9139,9141,9144,9147,9150,9153,9156,9159,9162,9165],{"className":9140},[402],[390,9142],{"className":9143,"style":446},[406],[390,9145,3515],{"className":9146},[411,412],[390,9148,3519],{"className":9149},[411,412],[390,9151,456],{"className":9152},[455],[390,9154,725],{"className":9155},[411,412],[390,9157,912],{"className":9158},[911],[390,9160],{"className":9161,"style":853},[463],[390,9163,822],{"className":9164,"style":821},[411,412],[390,9166,486],{"className":9167},[485],"; ",[654,9170,4774],{}," gets that monotonicity for interval DPs\nfrom the ",[654,9173,5173],{},", dropping ",[390,9176,9178],{"className":9177},[393],[390,9179,9181],{"className":9180,"ariaHidden":398},[397],[390,9182,9184,9187,9190,9193,9222],{"className":9183},[402],[390,9185],{"className":9186,"style":543},[406],[390,9188,451],{"className":9189,"style":450},[411,412],[390,9191,456],{"className":9192},[455],[390,9194,9196,9199],{"className":9195},[411],[390,9197,526],{"className":9198},[411,412],[390,9200,9202],{"className":9201},[559],[390,9203,9205],{"className":9204},[563],[390,9206,9208],{"className":9207},[567],[390,9209,9211],{"className":9210,"style":572},[571],[390,9212,9213,9216],{"style":575},[390,9214],{"className":9215,"style":580},[579],[390,9217,9219],{"className":9218},[584,585,586,587],[390,9220,643],{"className":9221},[411,587],[390,9223,486],{"className":9224},[485],[390,9226,9228],{"className":9227},[393],[390,9229,9231],{"className":9230,"ariaHidden":398},[397],[390,9232,9234,9237,9240,9243,9272],{"className":9233},[402],[390,9235],{"className":9236,"style":543},[406],[390,9238,451],{"className":9239,"style":450},[411,412],[390,9241,456],{"className":9242},[455],[390,9244,9246,9249],{"className":9245},[411],[390,9247,526],{"className":9248},[411,412],[390,9250,9252],{"className":9251},[559],[390,9253,9255],{"className":9254},[563],[390,9256,9258],{"className":9257},[567],[390,9259,9261],{"className":9260,"style":572},[571],[390,9262,9263,9266],{"style":575},[390,9264],{"className":9265,"style":580},[579],[390,9267,9269],{"className":9268},[584,585,586,587],[390,9270,591],{"className":9271},[411,587],[390,9273,486],{"className":9274},[485]," on problems\nlike optimal BST and matrix-chain.",[8867,9277,9278,9280,9281,9337],{},[654,9279,8637],{}," aggregates over every submask of every mask in ",[390,9282,9284],{"className":9283},[393],[390,9285,9287],{"className":9286,"ariaHidden":398},[397],[390,9288,9290,9293,9296,9299,9302,9305,9334],{"className":9289},[402],[390,9291],{"className":9292,"style":446},[406],[390,9294,451],{"className":9295,"style":450},[411,412],[390,9297,456],{"className":9298},[455],[390,9300,526],{"className":9301},[411,412],[390,9303],{"className":9304,"style":853},[463],[390,9306,9308,9311],{"className":9307},[411],[390,9309,591],{"className":9310},[411],[390,9312,9314],{"className":9313},[559],[390,9315,9317],{"className":9316},[563],[390,9318,9320],{"className":9319},[567],[390,9321,9323],{"className":9322,"style":6649},[571],[390,9324,9325,9328],{"style":575},[390,9326],{"className":9327,"style":580},[579],[390,9329,9331],{"className":9330},[584,585,586,587],[390,9332,526],{"className":9333},[411,412,587],[390,9335,486],{"className":9336},[485]," by\nsumming one bit-dimension at a time — a prefix sum over the subset lattice.",[8867,9339,9340,9341,9344],{},"Verify the ",[654,9342,9343],{},"applicability condition"," (window monotonicity, linear cost,\nmonotone split, QI) before reaching for the speedup; the optimization is only\ncorrect when its structural hypothesis holds.",[9346,9347,9350,9355],"section",{"className":9348,"dataFootnotes":376},[9349],"footnotes",[688,9351,9354],{"className":9352,"id":665},[9353],"sr-only","Footnotes",[9356,9357,9358,9380],"ol",{},[8867,9359,9361,9364,9365,9372,9373],{"id":9360},"user-content-fn-cpalg",[654,9362,9363],{},"CP-Algorithms",", — DP optimizations: the convex hull trick, divide-and-conquer, and Knuth optimizations treated as transition-acceleration techniques over a fixed recurrence. ",[385,9366,9371],{"href":9367,"ariaLabel":9368,"className":9369,"dataFootnoteBackref":376},"#user-content-fnref-cpalg","Back to reference 1",[9370],"data-footnote-backref","↩"," ",[385,9374,9371,9378],{"href":9375,"ariaLabel":9376,"className":9377,"dataFootnoteBackref":376},"#user-content-fnref-cpalg-2","Back to reference 1-2",[9370],[659,9379,591],{},[8867,9381,9383,9386,9387],{"id":9382},"user-content-fn-skiena",[654,9384,9385],{},"Skiena",", § — Dynamic Programming: recognizing that a DP's cost is the product of state count and per-state transition work, and attacking the transition. ",[385,9388,9371],{"href":9389,"ariaLabel":9390,"className":9391,"dataFootnoteBackref":376},"#user-content-fnref-skiena","Back to reference 2",[9370],[9393,9394,9395],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark-mode .shiki span {color: var(--shiki-dark-mode);background: var(--shiki-dark-mode-bg);font-style: var(--shiki-dark-mode-font-style);font-weight: var(--shiki-dark-mode-font-weight);text-decoration: var(--shiki-dark-mode-text-decoration);}html.dark-mode .shiki span {color: var(--shiki-dark-mode);background: var(--shiki-dark-mode-bg);font-style: var(--shiki-dark-mode-font-style);font-weight: var(--shiki-dark-mode-font-weight);text-decoration: var(--shiki-dark-mode-text-decoration);}",{"title":376,"searchDepth":18,"depth":18,"links":9397},[9398,9399,9400,9401,9402,9403,9404,9405],{"id":690,"depth":18,"text":691},{"id":1781,"depth":18,"text":1782},{"id":3291,"depth":18,"text":3292},{"id":4773,"depth":18,"text":4774},{"id":6314,"depth":18,"text":6315},{"id":7421,"depth":18,"text":7422},{"id":8861,"depth":18,"text":8862},{"id":665,"depth":18,"text":9354},"The previous lessons built DP recurrences and trusted their dimensions to give\nthe running time: a table of S states, each filled by a transition that scans\nT predecessors, costs O(S⋅T). Often T is itself Θ(n), a min\nover all earlier states or a split point ranging over an interval, and the honest\nrecurrence runs in O(n2) or O(n3). The techniques in this lesson all share\none move: they observe that the transition is not an arbitrary min over\npredecessors but one with structure, and they maintain an auxiliary object\n(a deque, a hull of lines, a monotone split pointer) that answers each transition\nfaster than a fresh scan.1 None of them changes what the DP\ncomputes, only how fast it computes it.","md",{"moduleNumber":196,"lessonNumber":202,"order":9409},809,true,[9412,9416,9419,9421,9424],{"title":9413,"slug":9414,"difficulty":9415},"Maximum Subarray Sum with One Deletion","maximum-subarray-sum-with-one-deletion","Medium",{"title":1339,"slug":9417,"difficulty":9418},"constrained-subsequence-sum","Hard",{"title":1177,"slug":9420,"difficulty":9415},"jump-game-vi",{"title":9422,"slug":9423,"difficulty":9418},"Minimum Cost to Cut a Stick","minimum-cost-to-cut-a-stick",{"title":9425,"slug":9426,"difficulty":9415},"Maximum Number of Points with Cost","maximum-number-of-points-with-cost","---\ntitle: DP Optimizations\nmodule: Dynamic Programming\nmoduleNumber: 8\nlessonNumber: 9\norder: 809\nsummary: >-\n  A correct DP recurrence is only half the battle; its naive evaluation is often\n  a factor of $n$ slower than necessary. This capstone surveys five techniques,\n  monotonic-queue, the convex hull trick, divide-and-conquer optimization,\n  Knuth's optimization, and SOS DP, that each exploit _structure in the\n  transition_ (a sliding window, linear costs, monotone optimal splits, the\n  quadrangle inequality, or subset lattices) to shave an $O(n)$, $O(\\log n)$, or\n  worse factor off the running time.\ntopics: [Dynamic Programming]\nsources:\n  - book: Skiena\n    ref: \"§ — Dynamic Programming\"\n  - book: Erickson\n    ref: \"Ch. — Dynamic Programming\"\n  - book: CP-Algorithms\n    ref: \"— DP optimizations\"\npractice:\n  - title: 'Maximum Subarray Sum with One Deletion'\n    slug: maximum-subarray-sum-with-one-deletion\n    difficulty: Medium\n  - title: 'Constrained Subsequence Sum'\n    slug: constrained-subsequence-sum\n    difficulty: Hard\n  - title: 'Jump Game VI'\n    slug: jump-game-vi\n    difficulty: Medium\n  - title: 'Minimum Cost to Cut a Stick'\n    slug: minimum-cost-to-cut-a-stick\n    difficulty: Hard\n  - title: 'Maximum Number of Points with Cost'\n    slug: maximum-number-of-points-with-cost\n    difficulty: Medium\n---\n\nThe previous lessons [built DP recurrences](\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples) and trusted their dimensions to give\nthe running time: a table of $S$ states, each filled by a transition that scans\n$T$ predecessors, costs $O(S \\cdot T)$. Often $T$ is itself $\\Theta(n)$, a min\nover all earlier states or a split point ranging over an interval, and the honest\nrecurrence runs in $O(n^2)$ or $O(n^3)$. The techniques in this lesson all share\none move: they observe that the transition is not an _arbitrary_ min over\npredecessors but one with **structure**, and they maintain an auxiliary object\n(a deque, a hull of lines, a monotone split pointer) that answers each transition\nfaster than a fresh scan.[^cpalg] None of them changes _what_ the DP\ncomputes, only how fast it computes it.\n\nA useful test runs through the whole lesson: look at the shape of the\ninner min\u002Fmax and ask _what stays constant and what slides_ as the outer index\nadvances. The answer names the technique.\n\nThe cost model here is the [state-count times transition-work product](\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis); these techniques attack the second factor.\n\n## Monotonic-queue optimization\n\nConsider a transition of the form\n\n$$\ndp[i] = \\Bigl(\\min_{i-k \\,\\le\\, j \\,\u003C\\, i} dp[j]\\Bigr) + \\text{cost}(i),\n$$\n\nwhere each state takes a min (or max) of the previous states _within a sliding\nwindow_ of width $k$, then adds a term depending only on $i$. Evaluated\ndirectly this is $O(nk)$: every state rescans its window. But the window's left\nedge only ever moves right, and its right edge only ever moves right, so this is\nexactly the **sliding-window minimum** problem, which a **monotonic deque**\nsolves in $O(1)$ amortized per step.[^skiena]\n\n> **Intuition.** Keep the candidate $dp[j]$ values in a deque sorted in\n> increasing order. A new value dominates, and so evicts, every larger value\n> already at the back, because that older value can never again be the minimum\n> while a smaller, _later_ value survives. The front of the deque is always the\n> window's minimum.\n\n```algorithm\ncaption: $\\textsc{MonoQueue-DP}$ — evaluate $dp[i]=\\min_{i-k\\le j\u003Ci}dp[j]+\\text{cost}(i)$ in $O(n)$\n$Q \\gets$ empty deque of indices       \u002F\u002F $dp$ increasing front$\\to$back\n$dp[0] \\gets \\text{base}$;  push $0$ onto $Q$\nfor $i \\gets 1$ to $n$ do\n  while $Q$ nonempty and $front(Q) \u003C i-k$ do\n    pop front of $Q$                    \u002F\u002F left the window\n  $dp[i] \\gets dp[front(Q)] + \\text{cost}(i)$\n  while $Q$ nonempty and $dp[back(Q)] \\ge dp[i]$ do\n    pop back of $Q$                     \u002F\u002F $i$ dominates older candidate\n  push $i$ onto $Q$\n```\n\nEach index is pushed and popped at most once, so the total work is $O(n)$,\ndown from $O(nk)$. **Jump Game VI** is the canonical instance: $dp[i]$ is the\nbest score reachable at index $i$, equal to $\\max$ of $dp[j]$ for $j$ in the\nlast $k$ positions, plus $\\text{nums}[i]$: a sliding-window _max_, the same\ndeque with the inequality flipped. **Constrained Subsequence Sum** is the same\nrecurrence with $\\text{cost}(i)=\\text{nums}[i]$ and a $\\max(\\cdot, 0)$ reset.\nThis is the [monotonic-stack idea](\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks) from the sequences module, extended to a deque\nso that _both_ ends move.\n\n$$\n% caption: a sliding window $[i-k,i-1]$ over the $dp$ row; the deque front holds the\n%          window optimum\n\\begin{tikzpicture}[\n  cell\u002F.style={draw, minimum size=8mm, inner sep=1pt, font=\\small},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node[cell] (a) at (0,0) {$9$};\n  \\node[cell] (b) at (0.8,0) {$4$};\n  \\node[cell, draw=acc, very thick] (c) at (1.6,0) {$2$};\n  \\node[cell] (d) at (2.4,0) {$7$};\n  \\node[cell] (e) at (3.2,0) {$5$};\n  \\node[cell] (f) at (4.0,0) {$8$};\n  \\node[cell, fill=acc!12] (g) at (4.8,0) {$?$};\n  % window bracket over c..f\n  \\draw[acc, thick] (1.2,0.65) -- (1.2,0.5) -- (4.4,0.5) -- (4.4,0.65);\n  \\node[font=\\footnotesize, acc] at (2.8,0.95) {window $[i-k,\\,i-1]$};\n  \\node[font=\\footnotesize] at (4.8,-0.75) {$dp[i]$};\n  \\draw[->, acc] (1.6,-0.7) -- (c.south);\n  \\node[font=\\footnotesize, acc] at (1.6,-0.95) {deque front $=\\min$};\n\\end{tikzpicture}\n$$\n\n## Convex hull trick\n\nNow suppose each previous state contributes a **line** and the transition queries\nthe best line at a point:\n\n$$\ndp[i] = \\min_{j \u003C i}\\bigl(m_j \\cdot x_i + b_j\\bigr),\n$$\n\nwhere the slope $m_j$ and intercept $b_j$ depend only on $j$ (typically $m_j$ is\na function of $dp[j]$ and the problem data), and $x_i$ depends only on $i$. The\nnaive evaluation is $O(n^2)$. But $\\min_j(m_j x + b_j)$ over a fixed set of lines,\nas a function of $x$, is the **lower envelope** of those lines, a convex,\npiecewise-linear curve. Only the lines on the **lower hull** can ever be optimal;\nthe rest are dominated everywhere. Maintaining that hull and querying it is the\n**Convex Hull Trick**.[^cpalg]\n\n$$\n% caption: each state is a line; the optimal $dp[i]$ is the lower hull queried at $x_i$\n\\begin{tikzpicture}[>=stealth, scale=0.9]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\draw[->] (-0.2,0) -- (5.2,0) node[right, font=\\small] {$x$};\n  \\draw[->] (0,-0.2) -- (0,3.4);\n  % three lines\n  \\draw (0,3.0) -- (5,0.5);                 % steep down: line A\n  \\draw (0,1.6) -- (5,1.1);                 % shallow: line B\n  \\draw (0,0.4) -- (5,2.9);                 % up: line C\n  % lower envelope (acc), piecewise A then B then C\n  \\draw[acc, very thick] (0,1.6) -- (1.5,1.45) -- (3.4,1.78) -- (5,2.9);\n  % query\n  \\draw[dashed] (2.4,0) -- (2.4,1.66);\n  \\node[font=\\footnotesize] at (2.4,-0.28) {$x_i$};\n  \\fill[acc] (2.4,1.66) circle (1.6pt);\n  \\node[font=\\footnotesize, acc] at (3.9,0.55) {lower hull};\n  \\node[font=\\footnotesize, fill=white, inner sep=1.5pt] at (4.4,3.1) {lines};\n\\end{tikzpicture}\n$$\n\nIf lines are inserted in monotone slope order and queries $x_i$ are also\nmonotone, both operations are $O(1)$ amortized: push lines onto a stack-like\nhull, popping any that the newcomer makes redundant, and advance a pointer for\nqueries. Without monotonicity, store the hull and binary-search for the optimal\nline at $x_i$ in $O(\\log n)$, or use a Li Chao tree. Either way the DP drops from\n$O(n^2)$ to $O(n\\log n)$.\n\n> **Remark (When it applies).** The transition must be _linear in a value $x_i$ that\n> depends only on $i$_, with the slope and intercept depending only on $j$. The\n> classic trigger is a cost that factors as a product $a_j \\cdot b_i$ after\n> expanding a square, e.g. partitioning costs of the form $(\\text{prefix} \\cdot\n> \\text{value})$, which appear in build\u002Fprint problems and 1-D clustering.\n\n## Divide-and-conquer optimization\n\nFor a layered transition\n\n$$\ndp[i][j] = \\min_{k \u003C j}\\bigl(dp[i-1][k] + C(k, j)\\bigr),\n$$\n\nlet $opt(i,j)$ be the smallest $k$ achieving that minimum. If $opt$ is\n**monotone in $j$** (that is, $opt(i,j) \\le opt(i, j+1)$ for every fixed layer $i$),\nthen the search range for column $j$ is bounded by the answers of its neighbors,\nand we can solve a whole layer by divide and conquer:\n\n```algorithm\ncaption: $\\textsc{DC-Opt}(i, j_{lo}, j_{hi}, k_{lo}, k_{hi})$ — fill layer $i$, columns $[j_{lo},j_{hi}]$\nif $j_{lo} > j_{hi}$ then return\n$j_{mid} \\gets \\lfloor (j_{lo}+j_{hi})\u002F2 \\rfloor$\n$best \\gets \\infty$;  $opt \\gets k_{lo}$\nfor $k \\gets k_{lo}$ to $\\min(j_{mid}-1,\\,k_{hi})$ do\n  if $dp[i-1][k] + C(k,j_{mid}) \u003C best$ then\n    $best \\gets dp[i-1][k] + C(k,j_{mid})$;  $opt \\gets k$\n$dp[i][j_{mid}] \\gets best$\n$\\textsc{DC-Opt}(i,\\ j_{lo},\\ j_{mid}-1,\\ k_{lo},\\ opt)$\n$\\textsc{DC-Opt}(i,\\ j_{mid}+1,\\ j_{hi},\\ opt,\\ k_{hi})$\n```\n\nSolve the middle column $j_{mid}$ first by scanning its full allowed $k$-range;\nits optimum $opt$ then **caps** the left half's search and **floors** the right\nhalf's, so the two recursive calls split both the columns and the candidate range:\n\n$$\n% caption: Divide-and-conquer optimization. Solving $j_{mid}$ finds $opt(j_{mid})$; by\n%          monotonicity the left columns search only $[k_{lo},opt]$ and the right only\n%          $[opt,k_{hi}]$, halving the column span while the $k$-ranges overlap only at\n%          $opt$.\n\\begin{tikzpicture}[\n  >=stealth, every node\u002F.style={font=\\footnotesize},\n  jbar\u002F.style={draw, minimum height=6mm, fill=acc!12, inner sep=2pt},\n  kbar\u002F.style={draw, minimum height=6mm, inner sep=2pt}]\n  \\definecolor{acc}{HTML}{2348F2}\n  % column axis (top): jlo .. jmid .. jhi\n  \\node at (-1.7,1.4) {columns $j$:};\n  \\node[jbar, minimum width=24mm] (jl) at (-0.2,1.4) {$[j_{lo},\\,j_{mid}{-}1]$};\n  \\node[draw, fill=acc!15, draw=acc, very thick, minimum width=12mm, minimum height=6mm, inner sep=2pt] (jm) at (2.3,1.4) {$j_{mid}$};\n  \\node[jbar, minimum width=24mm] (jr) at (4.8,1.4) {$[j_{mid}{+}1,\\,j_{hi}]$};\n  % k-range axis (bottom): klo .. opt .. khi\n  \\node at (-1.7,-0.6) {candidates $k$:};\n  \\node[kbar, minimum width=30mm] (kl) at (0.1,-0.6) {$[k_{lo},\\,opt]$};\n  \\node[kbar, minimum width=30mm] (kr) at (4.5,-0.6) {$[opt,\\,k_{hi}]$};\n  \\node[draw=none, acc] at (2.3,-0.6) {$opt$};\n  % opt tick joining jmid to the shared boundary of the two k-ranges\n  \\draw[->, red!75!black, thick] (jm.south) -- node[right, font=\\footnotesize, red!75!black]{solve first $\\Rightarrow opt$} (2.3,-0.32);\n  % which column-half searches which k-range\n  \\draw[->, acc] (jl.south) to[out=-90,in=90] (kl.north);\n  \\draw[->, acc] (jr.south) to[out=-90,in=90] (kr.north);\n\\end{tikzpicture}\n$$\n\nAt each recursion depth the $k$-ranges across all sub-calls overlap by at most\ntheir endpoints, so one depth costs $O(n)$; there are $O(\\log n)$ depths per\nlayer and $O(k)$ layers, giving $O(kn\\log n)$ instead of $O(kn^2)$. The\nmonotonicity of $opt$ is the hypothesis you must verify; it holds whenever $C$\nsatisfies the quadrangle inequality (below), but is sometimes provable directly\nfrom the problem.\n\n## Knuth's optimization\n\nInterval DPs have the shape\n\n$$\ndp[i][j] = \\min_{i \\le k \u003C j}\\bigl(dp[i][k] + dp[k+1][j]\\bigr) + C(i, j),\n$$\n\nand naively cost $O(n^3)$: $O(n^2)$ intervals, each scanning $O(n)$ split points.\n**Knuth's optimization** applies when $C$ satisfies the **quadrangle inequality**\n(QI) and is monotone on intervals:\n\n> **Definition (Quadrangle inequality).** For all $a \\le b \\le c \\le d$,\n> $$C(a,c) + C(b,d) \\;\\le\\; C(a,d) + C(b,c).$$\n\nWhen QI holds, the optimal split point is monotone in _both_ arguments:\n\n$$\nopt[i][j-1] \\;\\le\\; opt[i][j] \\;\\le\\; opt[i+1][j].\n$$\n\nSo when filling $dp[i][j]$ we only scan split points $k$ in\n$\\bigl[\\,opt[i][j-1],\\ opt[i+1][j]\\,\\bigr]$ rather than all of $[i, j)$.\nSummed over a fixed interval length, those ranges telescope, and the total work\ncollapses to $O(n^2)$. This is the optimization behind **optimal binary search\ntrees** and the cost-merging part of **matrix-chain multiplication** from the\n[interval-DP lesson](\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp): both have cost functions satisfying QI, so each yields to\nKnuth and runs in $O(n^2)$.\n\n$$\n% caption: Knuth's optimization: filling $dp[i][j]$ scans only\n%          $k\\in[\\,opt[i][j-1],\\,opt[i+1][j]\\,]$, a window pinned by two already-known\n%          optimal splits, not all of $[i,j)$\n\\begin{tikzpicture}[\n  cell\u002F.style={draw, minimum size=8mm, inner sep=1pt, font=\\footnotesize},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\foreach \\x\u002F\\lab in {0\u002Fi,1\u002F{},2\u002F{},3\u002F{},4\u002F{},5\u002F{},6\u002F{j}} {\n    \\node[cell] (k\\x) at (\\x*0.9,0) {$\\lab$};\n  }\n  \\node[cell, fill=black!8] at (2*0.9,0) {};\n  \\node[cell, fill=acc!18] at (3*0.9,0) {};\n  \\node[cell, fill=acc!18] at (4*0.9,0) {};\n  \\node[cell, fill=black!8] at (5*0.9,0) {};\n  \\draw[acc, thick] (2*0.9-0.45,0.62) -- (2*0.9-0.45,0.5) -- (5*0.9+0.45,0.5) -- (5*0.9+0.45,0.62);\n  \\node[font=\\footnotesize, acc] at (3.5*0.9,1.0) {scan only this window};\n  \\node[font=\\footnotesize] at (2*0.9,-0.78) {$opt[i][j{-}1]$};\n  \\node[font=\\footnotesize] at (5*0.9,-0.78) {$opt[i{+}1][j]$};\n  \\node[font=\\footnotesize] at (3.5*0.9,-1.5) {split candidates $k$};\n\\end{tikzpicture}\n$$\n\n## SOS DP (sum over subsets)\n\nThe last technique is combinatorial rather than geometric. Given a value $f[m]$\nfor every bitmask $m$ over $n$ bits, we want, for each mask $m$, an aggregate\nover all of its **submasks**:\n\n$$\ng[m] = \\sum_{s \\subseteq m} f[s].\n$$\n\nEnumerating every submask of every mask costs $\\sum_m 2^{\\text{popcount}(m)} =\n3^n$ (the classic submask-enumeration bound). **Sum over subsets** does it in\n$O(n\\,2^n)$ by adding _one bit-dimension at a time_: process bits $0..n-1$, and\nwhen processing bit $b$, fold each mask that has bit $b$ set into the version\nwithout it. It is a multidimensional [prefix sum](\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows) over the hypercube $\\{0,1\\}^n$.\n\n$$\n% caption: SOS DP folds one bit at a time over the hypercube $\\{0,1\\}^3$: when processing\n%          bit $b$, each mask with bit $b$ set absorbs $g[m\\oplus(1{\\ll}b)]$ along that\n%          axis\n\\begin{tikzpicture}[\n  every node\u002F.style={circle, draw, minimum size=9mm, inner sep=0, font=\\footnotesize},\n  >=stealth]\n  \\definecolor{acc}{HTML}{2348F2}\n  \\node (000) at (0,0) {$000$};\n  \\node (001) at (2.6,0) {$001$};\n  \\node (010) at (0,2.6) {$010$};\n  \\node (011) at (2.6,2.6) {$011$};\n  \\node (100) at (1.3,1.1) {$100$};\n  \\node (101) at (3.9,1.1) {$101$};\n  \\node (110) at (1.3,3.7) {$110$};\n  \\node (111) at (3.9,3.7) {$111$};\n  \\draw[->, acc, thick] (000) -- (001);\n  \\draw[->, acc, thick] (010) -- (011);\n  \\draw[->, acc, thick] (100) -- (101);\n  \\draw[->, acc, thick] (110) -- (111);\n  \\draw (000) -- (010); \\draw (001) -- (011);\n  \\draw (000) -- (100); \\draw (001) -- (101);\n  \\draw (010) -- (110); \\draw (011) -- (111);\n  \\draw (100) -- (110); \\draw (101) -- (111);\n  \\draw (100) -- (101);\n  \\node[draw=none, font=\\footnotesize, acc] at (2.0,-0.9) {fold bit $0$: $g[m]\\mathrel{+}=g[m\\oplus 1]$};\n\\end{tikzpicture}\n$$\n\n```algorithm\ncaption: $\\textsc{SOS}$ — submask sums for all masks in $O(n\\,2^n)$\nfor $m \\gets 0$ to $2^n-1$ do\n  $g[m] \\gets f[m]$\nfor $b \\gets 0$ to $n-1$ do\n  for $m \\gets 0$ to $2^n-1$ do\n    if $m \\mathbin{\\&} (1 \\ll b) \\ne 0$ then\n      $g[m] \\gets g[m] + g[m \\oplus (1 \\ll b)]$\n```\n\nAfter processing bit $b$, $g[m]$ holds the sum of $f$ over all submasks of $m$\nthat differ from $m$ only in bits $0..b$; after all $n$ bits, it is the full\nsubmask sum. Replacing the order of the two loops, or flipping the bit test,\ngives sums over _supersets_ instead. This is what drives the\n**bitmask-DP** lesson's harder counting problems: anything that asks you to\naggregate over all subsets of every state at once.\n\n## Choosing the technique\n\n| Technique | Transition shape | Complexity win |\n| --- | --- | --- |\n| Monotonic queue | $dp[i]=\\min_{i-k\\le j\u003Ci} dp[j]+\\text{cost}(i)$ (sliding window) | $O(nk)\\to O(n)$ |\n| Convex hull trick | $dp[i]=\\min_j(m_j x_i + b_j)$ (line per state) | $O(n^2)\\to O(n\\log n)$ |\n| Divide & conquer | $dp[i][j]=\\min_{k\u003Cj} dp[i-1][k]+C(k,j)$, $opt$ monotone | $O(kn^2)\\to O(kn\\log n)$ |\n| Knuth | $dp[i][j]=\\min_{i\\le k\u003Cj}(dp[i][k]+dp[k{+}1][j])+C(i,j)$, QI | $O(n^3)\\to O(n^2)$ |\n| SOS DP | $g[m]=\\bigoplus_{s\\subseteq m} f[s]$ (submask aggregate) | $O(3^n)\\to O(n\\,2^n)$ |\n\n## Takeaways\n\n- These are not new DPs but **faster evaluations** of an existing recurrence;\n  the trigger is always _structure in the inner min\u002Fmax_, not its mere size.\n- **Monotonic-queue optimization**: a sliding-window min\u002Fmax transition runs in\n  $O(n)$ via a **monotonic deque** whose front is the window optimum — the\n  natural tool for Jump Game VI and Constrained Subsequence Sum.\n- **Convex hull trick**: when each state is a _line_ and the transition queries\n  the **lower envelope** at $x_i$, maintain the hull and query in $O(\\log n)$\n  (or $O(1)$ amortized when slopes and queries are monotone), turning $O(n^2)$\n  into $O(n\\log n)$.\n- **Divide-and-conquer optimization** needs a **monotone optimal split**\n  $opt(i,j)$; **Knuth's optimization** gets that monotonicity for interval DPs\n  from the **quadrangle inequality**, dropping $O(n^3)$ to $O(n^2)$ on problems\n  like optimal BST and matrix-chain.\n- **SOS DP** aggregates over every submask of every mask in $O(n\\,2^n)$ by\n  summing one bit-dimension at a time — a prefix sum over the subset lattice.\n- Verify the **applicability condition** (window monotonicity, linear cost,\n  monotone split, QI) before reaching for the speedup; the optimization is only\n  correct when its structural hypothesis holds.\n\n[^cpalg]: **CP-Algorithms**, — DP optimizations: the convex hull trick, divide-and-conquer, and Knuth optimizations treated as transition-acceleration techniques over a fixed recurrence.\n[^skiena]: **Skiena**, § — Dynamic Programming: recognizing that a DP's cost is the product of state count and per-state transition work, and attacking the transition.\n[^erickson]: **Erickson**, Ch. — Dynamic Programming: the discipline of writing the recurrence first, then asking how cheaply each entry can be evaluated.\n",{"text":9429,"minutes":9430,"time":9431,"words":9432},"8 min read",7.09,425400,1418,{"title":276,"description":9406},[9435,9437,9440],{"book":9385,"ref":9436},"§ — Dynamic Programming",{"book":9438,"ref":9439},"Erickson","Ch. — Dynamic Programming",{"book":9363,"ref":9441},"— DP optimizations","available","01.algorithms\u002F08.dynamic-programming\u002F09.dp-optimizations",[231],"mAOeHYUyUIxTHcP4KUNfl65xRAaR-f0hR8l2600fdiI",{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":9447,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":9448,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":9449,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":9450,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":9451,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":9452,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":9453,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":9454,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":9455,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":9456,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":9457,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":9458,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":9459,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":9460,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":9461,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":9462,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":9463,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":9464,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":9465,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":9466,"\u002Falgorithms\u002Fsequences\u002Ftries":9467,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":9468,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":9469,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":9470,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":9471,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":9472,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":9473,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":9474,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":9475,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":9476,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":9477,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":9478,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":9479,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":9480,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":9481,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":9482,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":9483,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":9484,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":9485,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":9486,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":9487,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":9488,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":9432,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":9489,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":9490,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":9491,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":9492,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":9463,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":9493,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":9494,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":9495,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":9496,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":9479,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":9497,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":9498,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":9459,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":9499,"\u002Falgorithms":9500,"\u002Ftheory-of-computation":9501,"\u002Fcomputer-architecture":9501,"\u002Fphysical-computing":9501,"\u002Fdatabases":9501,"\u002Fdeep-learning":9501},1763,2107,1738,2628,1723,2048,1697,1044,1542,1565,1679,1586,1388,1465,1971,1455,1533,1483,1578,1791,1481,2704,1658,2070,1978,2080,1568,1451,1291,1543,1883,1443,1599,2038,2241,1744,1678,2288,1929,1657,1412,1554,1713,1798,1694,1762,1534,1595,1262,1495,1630,2306,2142,107,0,{"\u002Falgorithms\u002Ffoundations\u002Fwhat-is-an-algorithm":9503,"\u002Falgorithms\u002Ffoundations\u002Fasymptotic-analysis":9504,"\u002Falgorithms\u002Ffoundations\u002Frecurrences":9505,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fmergesort":9506,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fquicksort":9507,"\u002Falgorithms\u002Fdivide-and-conquer\u002Fselection":9508,"\u002Falgorithms\u002Fsorting\u002Fheaps-and-heapsort":9509,"\u002Falgorithms\u002Fsorting\u002Fsorting-lower-bounds":9510,"\u002Falgorithms\u002Fsorting\u002Flinear-time-sorting":9511,"\u002Falgorithms\u002Fdata-structures\u002Felementary-structures":9512,"\u002Falgorithms\u002Fdata-structures\u002Fhash-tables":9513,"\u002Falgorithms\u002Fdata-structures\u002Fbinary-search-trees":9514,"\u002Falgorithms\u002Fdata-structures\u002Favl-trees":9515,"\u002Falgorithms\u002Fdata-structures\u002Fbalanced-trees":9516,"\u002Falgorithms\u002Fdata-structures\u002Funion-find":9517,"\u002Falgorithms\u002Fdata-structures\u002Ffenwick-and-segment-trees":9518,"\u002Falgorithms\u002Fsequences\u002Ftwo-pointers-and-windows":9519,"\u002Falgorithms\u002Fsequences\u002Fmonotonic-stacks":9520,"\u002Falgorithms\u002Fsequences\u002Fbinary-search-on-the-answer":9521,"\u002Falgorithms\u002Fsequences\u002Fstring-matching":9522,"\u002Falgorithms\u002Fsequences\u002Ftries":9523,"\u002Falgorithms\u002Fgraphs\u002Frepresentations-and-traversal":9524,"\u002Falgorithms\u002Fgraphs\u002Ftopological-sort-and-scc":9525,"\u002Falgorithms\u002Fgraphs\u002Fminimum-spanning-trees":9526,"\u002Falgorithms\u002Fgraphs\u002Fshortest-paths":9527,"\u002Falgorithms\u002Fgraphs\u002Fnetwork-flow":9528,"\u002Falgorithms\u002Fgraphs\u002Fbridges-and-articulation-points":9529,"\u002Falgorithms\u002Fgraphs\u002Flowest-common-ancestor":9530,"\u002Falgorithms\u002Fgraphs\u002Ftwo-sat":9531,"\u002Falgorithms\u002Fgraphs\u002Feulerian-tours":9532,"\u002Falgorithms\u002Fgreedy\u002Fthe-greedy-method":9533,"\u002Falgorithms\u002Fgreedy\u002Fscheduling-and-intervals":9534,"\u002Falgorithms\u002Fgreedy\u002Fhuffman-codes":9535,"\u002Falgorithms\u002Fgreedy\u002Fmatroids":9536,"\u002Falgorithms\u002Fdynamic-programming\u002Fprinciples":9537,"\u002Falgorithms\u002Fdynamic-programming\u002Fsequence-dp":9538,"\u002Falgorithms\u002Fdynamic-programming\u002Flongest-increasing-subsequence":9539,"\u002Falgorithms\u002Fdynamic-programming\u002Fknapsack":9540,"\u002Falgorithms\u002Fdynamic-programming\u002Fcoin-change-and-unbounded":9541,"\u002Falgorithms\u002Fdynamic-programming\u002Finterval-dp":9542,"\u002Falgorithms\u002Fdynamic-programming\u002Ftree-dp":9543,"\u002Falgorithms\u002Fdynamic-programming\u002Fbitmask-dp":9544,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-optimizations":9545,"\u002Falgorithms\u002Fdynamic-programming\u002Fdp-on-graphs":9546,"\u002Falgorithms\u002Fbacktracking\u002Fbacktracking-fundamentals":9547,"\u002Falgorithms\u002Fbacktracking\u002Fconstraint-search":9548,"\u002Falgorithms\u002Fbacktracking\u002Fbranch-and-bound":9549,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fnumber-theory-basics":9550,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fmodular-exponentiation-and-primality":9551,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fsieve-and-factorization":9552,"\u002Falgorithms\u002Fmathematical-algorithms\u002Fcombinatorics":9553,"\u002Falgorithms\u002Fcomputational-geometry\u002Fgeometric-primitives":9554,"\u002Falgorithms\u002Fcomputational-geometry\u002Fconvex-hull":9555,"\u002Falgorithms\u002Fcomputational-geometry\u002Fsweep-line":9556,"\u002Falgorithms\u002Fintractability\u002Fp-np-reductions":9557,"\u002Falgorithms\u002Fintractability\u002Fnp-completeness":9558,"\u002Falgorithms\u002Fintractability\u002Fcoping-with-hardness":9559,"\u002Falgorithms":9560,"\u002Ftheory-of-computation":9563,"\u002Fcomputer-architecture":9566,"\u002Fphysical-computing":9569,"\u002Fdatabases":9572,"\u002Fdeep-learning":9575},{"path":11,"title":10,"module":5,"summary":14},{"path":17,"title":16,"module":5,"summary":20},{"path":23,"title":22,"module":5,"summary":27},{"path":34,"title":33,"module":29,"summary":37},{"path":40,"title":39,"module":29,"summary":43},{"path":46,"title":45,"module":29,"summary":49},{"path":56,"title":55,"module":51,"summary":59},{"path":62,"title":61,"module":51,"summary":64},{"path":67,"title":66,"module":51,"summary":70},{"path":78,"title":77,"module":72,"summary":81},{"path":84,"title":83,"module":72,"summary":87},{"path":90,"title":89,"module":72,"summary":92},{"path":95,"title":94,"module":72,"summary":98},{"path":101,"title":100,"module":72,"summary":104},{"path":107,"title":106,"module":72,"summary":112},{"path":115,"title":114,"module":72,"summary":119},{"path":126,"title":125,"module":121,"summary":129},{"path":132,"title":131,"module":121,"summary":134},{"path":137,"title":136,"module":121,"summary":140},{"path":143,"title":142,"module":121,"summary":146},{"path":149,"title":148,"module":121,"summary":151},{"path":158,"title":157,"module":153,"summary":162},{"path":165,"title":164,"module":153,"summary":167},{"path":170,"title":169,"module":153,"summary":172},{"path":175,"title":174,"module":153,"summary":177},{"path":180,"title":179,"module":153,"summary":182},{"path":185,"title":184,"module":153,"summary":187},{"path":190,"title":189,"module":153,"summary":192},{"path":195,"title":194,"module":153,"summary":198},{"path":201,"title":200,"module":153,"summary":204},{"path":211,"title":210,"module":206,"summary":213},{"path":216,"title":215,"module":206,"summary":219},{"path":222,"title":221,"module":206,"summary":224},{"path":227,"title":226,"module":206,"summary":229},{"path":236,"title":235,"module":231,"summary":238},{"path":241,"title":240,"module":231,"summary":244},{"path":247,"title":246,"module":231,"summary":249},{"path":252,"title":251,"module":231,"summary":254},{"path":257,"title":256,"module":231,"summary":259},{"path":262,"title":261,"module":231,"summary":264},{"path":267,"title":266,"module":231,"summary":269},{"path":272,"title":271,"module":231,"summary":274},{"path":277,"title":276,"module":231,"summary":279},{"path":282,"title":281,"module":231,"summary":285},{"path":292,"title":291,"module":287,"summary":295},{"path":298,"title":297,"module":287,"summary":300},{"path":303,"title":302,"module":287,"summary":305},{"path":312,"title":311,"module":307,"summary":315},{"path":318,"title":317,"module":307,"summary":320},{"path":323,"title":322,"module":307,"summary":325},{"path":328,"title":327,"module":307,"summary":330},{"path":338,"title":337,"module":332,"summary":341},{"path":344,"title":343,"module":332,"summary":346},{"path":349,"title":348,"module":332,"summary":351},{"path":359,"title":358,"module":353,"summary":362},{"path":364,"title":361,"module":353,"summary":366},{"path":369,"title":368,"module":353,"summary":373},{"path":9561,"title":9562,"module":376,"summary":376},"\u002Falgorithms","Algorithms",{"path":9564,"title":9565,"module":376,"summary":376},"\u002Ftheory-of-computation","Theory of Computation",{"path":9567,"title":9568,"module":376,"summary":376},"\u002Fcomputer-architecture","Computer Architecture",{"path":9570,"title":9571,"module":376,"summary":376},"\u002Fphysical-computing","Physical Computing",{"path":9573,"title":9574,"module":376,"summary":376},"\u002Fdatabases","Databases",{"path":9576,"title":9577,"module":376,"summary":376},"\u002Fdeep-learning","Deep Learning",1781560526738]