=== ITERATION 0 === The next suffix of 'abcadak' to add is '{a}' at indices 0,0 => ActiveNode: node #0 => ActiveEdge: none => DistanceIntoActiveEdge: 0 => UnresolvedSuffixes: 0 Existing edge for node #0 starting with 'a' not found Adding new edge to node #0 => node #0 --> a(0,#) (0)──a === ITERATION 1 === The next suffix of 'abcadak' to add is '{b}' at indices 1,1 => ActiveNode: node #0 => ActiveEdge: none => DistanceIntoActiveEdge: 0 => UnresolvedSuffixes: 0 Existing edge for node #0 starting with 'b' not found Adding new edge to node #0 => node #0 --> b(1,#) (0)┬─ab └─b === ITERATION 2 === The next suffix of 'abcadak' to add is '{c}' at indices 2,2 => ActiveNode: node #0 => ActiveEdge: none => DistanceIntoActiveEdge: 0 => UnresolvedSuffixes: 0 Existing edge for node #0 starting with 'c' not found Adding new edge to node #0 => node #0 --> c(2,#) (0)┬─abc ├─bc └─c === ITERATION 3 === The next suffix of 'abcadak' to add is '{a}' at indices 3,3 => ActiveNode: node #0 => ActiveEdge: none => DistanceIntoActiveEdge: 0 => UnresolvedSuffixes: 0 Existing edge for node #0 starting with 'a' found. Values adjusted to: => ActiveEdge is now: abca(0,#) => DistanceIntoActiveEdge is now: 1 => UnresolvedSuffixes is now: 0 (0)┬─abca ├─bca └─ca === ITERATION 4 === The next suffix of 'abcadak' to add is 'a{d}' at indices 3,4 => ActiveNode: node #0 => ActiveEdge: abcad(0,#) => DistanceIntoActiveEdge: 1 => UnresolvedSuffixes: 1 Splitting edge abcad(0,#) at index 1 ('b') => Hierarchy is now: node #0 --> a(0,0) --> node #1 --> bcad(1,#) => ActiveEdge is now: a(0,0) Adding new edge to node #1 => node #1 --> d(4,#) (0)┬─a────(1)┬─bcad │ └─d ├─bcad └─cad The next suffix of 'abcadak' to add is '{d}' at indices 4,4 => ActiveNode: node #0 => ActiveEdge: none => DistanceIntoActiveEdge: 0 => UnresolvedSuffixes: 0 Existing edge for node #0 starting with 'd' not found Adding new edge to node #0 => node #0 --> d(4,#) (0)┬─a────(1)┬─bcad │ └─d ├─bcad ├─cad └─d === ITERATION 5 === The next suffix of 'abcadak' to add is '{a}' at indices 5,5 => ActiveNode: node #0 => ActiveEdge: none => DistanceIntoActiveEdge: 0 => UnresolvedSuffixes: 0 Existing edge for node #0 starting with 'a' found. Values adjusted to: Active point is now at or beyond edge boundary and will be moved until it falls inside an edge boundary => ActiveEdge is now: => DistanceIntoActiveEdge is now: 0 => UnresolvedSuffixes is now: 0 (0)┬─a─────(1)┬─bcada │ └─da ├─bcada ├─cada └─da === ITERATION 6 === The next suffix of 'abcadak' to add is 'a{k}' at indices 5,6 => ActiveNode: node #1 => ActiveEdge: none => DistanceIntoActiveEdge: 0 => UnresolvedSuffixes: 1 Existing edge for node #1 starting with 'k' not found Adding new edge to node #1 => node #1 --> k(6,#) The linked node for active node node #1 is [null] (0)┬─a──────(1)┬─bcadak │ ├─dak │ └─k ├─bcadak ├─cadak └─dak The next suffix of 'abcadak' to add is '{k}' at indices 6,6 => ActiveNode: node #0 => ActiveEdge: none => DistanceIntoActiveEdge: 0 => UnresolvedSuffixes: 0 Existing edge for node #0 starting with 'k' not found Adding new edge to node #0 => node #0 --> k(6,#) (0)┬─a──────(1)┬─bcadak │ ├─dak │ └─k ├─bcadak ├─cadak ├─dak └─k