Hex Artifact Content
Not logged in

Artifact 3e6cba8b34c1d433cd497d4abcf8cc87069895a5:

Wiki page [VirtualRouting] by sandro 2018-04-08 17:40:57.
0000: 44 20 32 30 31 38 2d 30 34 2d 30 38 54 31 37 3a  D 2018-04-08T17:
0010: 34 30 3a 35 37 2e 30 36 34 0a 4c 20 56 69 72 74  40:57.064.L Virt
0020: 75 61 6c 52 6f 75 74 69 6e 67 0a 50 20 65 34 66  ualRouting.P e4f
0030: 66 35 32 30 33 35 61 31 32 30 61 36 39 33 64 37  f52035a120a693d7
0040: 35 37 34 64 36 35 37 61 34 36 32 30 64 66 63 61  574d657a4620dfca
0050: 35 38 34 63 31 0a 55 20 73 61 6e 64 72 6f 0a 57  584c1.U sandro.W
0060: 20 31 32 35 32 32 32 0a 3c 61 20 68 72 65 66 3d   125222.<a href=
0070: 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69  "https://www.gai
0080: 61 2d 67 69 73 2e 69 74 2f 66 6f 73 73 69 6c 2f  a-gis.it/fossil/
0090: 6c 69 62 73 70 61 74 69 61 6c 69 74 65 2f 77 69  libspatialite/wi
00a0: 6b 69 3f 6e 61 6d 65 3d 34 2e 33 2e 30 2d 64 6f  ki?name=4.3.0-do
00b0: 63 22 3e 62 61 63 6b 3c 2f 61 3e 3c 68 72 3e 3c  c">back</a><hr><
00c0: 62 72 3e 0d 0a 3c 68 31 3e 54 61 62 6c 65 20 6f  br>..<h1>Table o
00d0: 66 20 43 6f 6e 74 65 6e 74 73 3c 2f 68 31 3e 0d  f Contents</h1>.
00e0: 0a 31 20 2d 20 3c 61 20 68 72 65 66 3d 22 23 69  .1 - <a href="#i
00f0: 6e 74 72 6f 22 3e 49 6e 74 72 6f 64 75 63 74 69  ntro">Introducti
0100: 6f 6e 3c 2f 61 3e 3c 62 72 3e 0d 0a 32 20 2d 20  on</a><br>..2 - 
0110: 3c 61 20 68 72 65 66 3d 22 23 73 61 6d 70 6c 65  <a href="#sample
0120: 22 3e 54 68 65 20 73 61 6d 70 6c 65 2f 74 65 73  ">The sample/tes
0130: 74 20 44 42 3c 2f 61 3e 3c 62 72 3e 0d 0a 33 20  t DB</a><br>..3 
0140: 2d 20 3c 61 20 68 72 65 66 3d 22 23 63 72 65 61  - <a href="#crea
0150: 74 65 22 3e 43 72 65 61 74 69 6e 67 20 56 69 72  te">Creating Vir
0160: 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c  tualRouting Tabl
0170: 65 73 3c 2f 61 3e 3c 62 72 3e 0d 0a 34 20 2d 20  es</a><br>..4 - 
0180: 3c 61 20 68 72 65 66 3d 22 23 66 72 6f 6d 5f 74  <a href="#from_t
0190: 6f 22 3e 53 6f 6c 76 69 6e 67 20 63 6c 61 73 73  o">Solving class
01a0: 69 63 20 53 68 6f 72 74 65 73 74 20 50 61 74 68  ic Shortest Path
01b0: 20 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 62 72   problems</a><br
01c0: 3e 0d 0a 35 20 2d 20 3c 61 20 68 72 65 66 3d 22  >..5 - <a href="
01d0: 23 6d 75 6c 74 69 22 3e 53 6f 6c 76 69 6e 67 20  #multi">Solving 
01e0: 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74 69 6f  multi-destinatio
01f0: 6e 20 53 68 6f 72 74 65 73 74 20 50 61 74 68 20  n Shortest Path 
0200: 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 62 72 3e  problems</a><br>
0210: 0d 0a 36 20 2d 20 3c 61 20 68 72 65 66 3d 22 23  ..6 - <a href="#
0220: 74 73 70 22 3e 53 6f 6c 76 69 6e 67 20 54 53 50  tsp">Solving TSP
0230: 20 28 74 72 61 76 65 6c 69 6e 67 20 73 61 6c 65   (traveling sale
0240: 73 6d 61 6e 29 20 70 72 6f 62 6c 65 6d 73 3c 2f  sman) problems</
0250: 61 3e 3c 62 72 3e 0d 0a 3c 62 72 3e 3c 68 72 3e  a><br>..<br><hr>
0260: 0d 0a 3c 68 31 3e 3c 61 20 6e 61 6d 65 3d 22 69  ..<h1><a name="i
0270: 6e 74 72 6f 22 3e 31 20 2d 20 49 6e 74 72 6f 64  ntro">1 - Introd
0280: 75 63 74 69 6f 6e 3c 2f 61 3e 3c 2f 68 31 3e 0d  uction</a></h1>.
0290: 0a 50 72 65 76 69 6f 75 73 20 76 65 72 73 69 6f  .Previous versio
02a0: 6e 73 20 6f 66 20 53 70 61 74 69 61 4c 69 74 65  ns of SpatiaLite
02b0: 20 74 72 61 64 69 74 69 6f 6e 61 6c 6c 79 20 73   traditionally s
02c0: 75 70 70 6f 72 74 65 64 20 61 20 3c 62 3e 70 75  upported a <b>pu
02d0: 72 65 20 53 51 4c 20 72 6f 75 74 69 6e 67 20 6d  re SQL routing m
02e0: 6f 64 75 6c 65 3c 2f 62 3e 20 74 68 61 74 20 77  odule</b> that w
02f0: 61 73 20 6e 61 6d 65 64 20 3c 61 20 68 72 65 66  as named <a href
0300: 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61  ="https://www.ga
0310: 69 61 2d 67 69 73 2e 69 74 2f 66 6f 73 73 69 6c  ia-gis.it/fossil
0320: 2f 6c 69 62 73 70 61 74 69 61 6c 69 74 65 2f 77  /libspatialite/w
0330: 69 6b 69 3f 6e 61 6d 65 3d 56 69 72 74 75 61 6c  iki?name=Virtual
0340: 4e 65 74 77 6f 72 6b 2b 72 65 6c 6f 61 64 65 64  Network+reloaded
0350: 22 3e 56 69 72 74 75 61 6c 4e 65 74 77 6f 72 6b  ">VirtualNetwork
0360: 3c 2f 61 3e 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 53  </a>.<br><br>..S
0370: 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 3c 62 3e  ince version <b>
0380: 35 2e 30 2e 30 3c 2f 62 3e 20 61 20 62 72 61 6e  5.0.0</b> a bran
0390: 64 20 6e 65 77 20 3c 62 3e 72 6f 75 74 69 6e 67  d new <b>routing
03a0: 20 6d 6f 64 75 6c 65 3c 2f 62 3e 20 28 6d 6f 72   module</b> (mor
03b0: 65 20 61 64 76 61 6e 63 65 64 20 61 6e 64 20 73  e advanced and s
03c0: 6f 70 68 69 73 74 69 63 61 74 65 64 29 20 69 73  ophisticated) is
03d0: 20 61 76 61 69 6c 61 62 6c 65 2c 20 74 68 61 74   available, that
03e0: 20 69 73 20 63 61 6c 6c 65 64 20 3c 62 3e 56 69   is called <b>Vi
03f0: 72 74 75 61 6c 52 6f 75 74 69 6e 67 3c 2f 62 3e  rtualRouting</b>
0400: 2e 3c 62 72 3e 0d 0a 54 68 65 20 6e 6f 77 20 6f  .<br>..The now o
0410: 62 73 6f 6c 65 74 65 20 3c 62 3e 56 69 72 74 75  bsolete <b>Virtu
0420: 61 6c 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 69 73  alNetwork</b> is
0430: 20 73 74 69 6c 6c 20 73 75 70 70 6f 72 74 65 64   still supported
0440: 20 62 79 20 76 65 72 73 69 6f 6e 20 3c 62 3e 35   by version <b>5
0450: 2e 30 2e 30 3c 2f 62 3e 20 73 6f 20 61 73 20 74  .0.0</b> so as t
0460: 6f 20 6e 6f 74 20 63 61 75 73 65 20 61 6e 20 61  o not cause an a
0470: 62 72 75 70 74 20 62 72 65 61 6b 20 74 6f 20 61  brupt break to a
0480: 6c 72 65 61 64 79 20 65 78 69 73 74 69 6e 67 20  lready existing 
0490: 61 70 70 6c 69 63 61 74 69 6f 6e 73 2c 20 62 75  applications, bu
04a0: 74 20 77 69 6c 6c 20 70 72 65 73 75 6d 61 62 6c  t will presumabl
04b0: 79 20 62 65 20 64 69 73 63 6f 6e 74 69 6e 75 65  y be discontinue
04c0: 64 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73  d in future vers
04d0: 69 6f 6e 73 2e 3c 62 72 3e 0d 0a 55 73 69 6e 67  ions.<br>..Using
04e0: 20 3c 62 3e 56 69 72 74 75 61 6c 52 6f 75 74 69   <b>VirtualRouti
04f0: 6e 67 3c 2f 62 3e 20 69 6e 73 74 65 61 64 20 6f  ng</b> instead o
0500: 66 20 3c 62 3e 56 69 72 74 75 61 6c 4e 65 74 77  f <b>VirtualNetw
0510: 69 72 6b 3c 2f 62 3e 20 69 73 20 77 61 72 6d 6c  irk</b> is warml
0520: 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 66 6f  y recommended fo
0530: 72 20 61 6e 79 20 6e 65 77 20 64 65 76 65 6c 6f  r any new develo
0540: 70 6d 65 6e 74 2e 20 0d 0a 3c 68 32 3e 54 68 65  pment. ..<h2>The
0550: 6f 72 65 74 69 63 61 6c 20 66 6f 75 6e 64 61 74  oretical foundat
0560: 69 6f 6e 73 20 2d 20 61 6e 20 75 6c 74 72 61 2d  ions - an ultra-
0570: 71 75 69 63 6b 20 72 65 63 61 6c 6c 3c 2f 68 32  quick recall</h2
0580: 3e 0d 0a 41 6c 6c 20 3c 62 3e 52 6f 75 74 69 6e  >..All <b>Routin
0590: 67 20 61 6c 67 6f 72 69 74 68 6d 73 3c 2f 62 3e  g algorithms</b>
05a0: 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e   (<i>aka</i> <b>
05b0: 53 68 6f 72 74 65 73 74 20 50 61 74 68 3c 2f 62  Shortest Path</b
05c0: 3e 20 61 6c 67 6f 72 69 74 68 6d 73 29 20 61 72  > algorithms) ar
05d0: 65 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 6d  e based on the m
05e0: 61 74 68 65 6d 61 74 69 63 73 20 6f 66 20 74 68  athematics of th
05f0: 65 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73  e <a href="https
0600: 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e  ://en.wikipedia.
0610: 6f 72 67 2f 77 69 6b 69 2f 47 72 61 70 68 5f 74  org/wiki/Graph_t
0620: 68 65 6f 72 79 22 3e 47 72 61 70 68 20 74 68 65  heory">Graph the
0630: 6f 72 79 3c 2f 61 3e 20 6f 72 20 74 6f 20 62 65  ory</a> or to be
0640: 20 6d 6f 72 65 20 70 72 65 63 69 73 65 3a 20 6f   more precise: o
0650: 6e 20 3c 62 3e 57 65 69 67 68 74 65 64 20 47 72  n <b>Weighted Gr
0660: 61 70 68 73 3c 2f 62 3e 2e 0d 0a 3c 62 72 3e 0d  aphs</b>...<br>.
0670: 0a 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73  .<img src="https
0680: 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e  ://www.gaia-gis.
0690: 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 72 6f 75  it/gaia-sins/rou
06a0: 74 69 6e 67 2d 66 69 67 73 2f 6e 65 74 77 6f 72  ting-figs/networ
06b0: 6b 2e 70 6e 67 22 20 61 6c 74 3d 22 6e 65 74 77  k.png" alt="netw
06c0: 6f 72 6b 22 3e 0d 0a 3c 62 72 3e 0d 0a 41 20 74  ork">..<br>..A t
06d0: 6f 70 6f 6c 6f 67 69 63 61 6c 6c 79 20 76 61 6c  opologically val
06e0: 69 64 20 3c 62 3e 4e 65 74 77 6f 72 6b 3c 2f 62  id <b>Network</b
06f0: 3e 20 69 73 20 61 20 64 61 74 61 73 65 74 20 74  > is a dataset t
0700: 68 61 74 20 66 75 6c 66 69 6c 6c 73 20 74 68 65  hat fulfills the
0710: 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 65 71 75 69   following requi
0720: 72 65 6d 65 6e 74 73 3a 0d 0a 3c 75 6c 3e 0d 0a  rements:..<ul>..
0730: 3c 6c 69 3e 41 6c 6c 20 69 74 65 6d 73 20 69 6e  <li>All items in
0740: 20 74 68 65 20 64 61 74 61 73 65 74 20 61 72 65   the dataset are
0750: 20 63 61 6c 6c 65 64 20 3c 62 3e 4c 69 6e 6b 73   called <b>Links
0760: 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e  </b> (<i>aka</i>
0770: 20 3c 62 3e 41 72 63 73 3c 2f 62 3e 29 2c 20 61   <b>Arcs</b>), a
0780: 6e 64 20 61 72 65 20 65 78 70 65 63 74 65 64 20  nd are expected 
0790: 74 6f 20 72 65 70 72 65 73 65 6e 74 20 73 6f 6d  to represent som
07a0: 65 20 6f 72 69 65 6e 74 65 64 20 63 6f 6e 6e 65  e oriented conne
07b0: 63 74 69 6f 6e 20 6a 6f 69 6e 69 6e 67 20 74 77  ction joining tw
07c0: 6f 20 3c 62 3e 4e 6f 64 65 73 3c 2f 62 3e 2e 3c  o <b>Nodes</b>.<
07d0: 62 72 3e 0d 0a 3c 75 3e 45 78 61 6d 70 6c 65 3c  br>..<u>Example<
07e0: 2f 75 3e 3a 20 69 6e 20 74 68 65 20 61 62 6f 76  /u>: in the abov
07f0: 65 20 66 69 67 75 72 65 20 4c 69 6e 6b 20 3c 62  e figure Link <b
0800: 3e 4c 33 3c 2f 62 3e 20 63 6f 6e 6e 65 63 74 73  >L3</b> connects
0810: 20 4e 6f 64 65 73 20 3c 62 3e 4e 32 3c 2f 62 3e   Nodes <b>N2</b>
0820: 20 61 6e 64 20 3c 62 3e 4e 35 3c 2f 62 3e 2e 3c   and <b>N5</b>.<
0830: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 53 6f 20 61 6c 6c  /li>..<li>So all
0840: 20 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e 20 61 72   <b>Links</b> ar
0850: 65 20 61 6c 77 61 79 73 20 65 78 70 65 63 74 65  e always expecte
0860: 64 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20  d to explicitly 
0870: 72 65 66 65 72 65 6e 63 65 20 61 20 3c 62 3e 53  reference a <b>S
0880: 74 61 72 74 2d 4e 6f 64 65 3c 2f 62 3e 20 28 3c  tart-Node</b> (<
0890: 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 4e 6f 64  i>aka</i> <b>Nod
08a0: 65 2d 46 72 6f 6d 3c 2f 62 3e 29 20 61 6e 64 20  e-From</b>) and 
08b0: 61 6e 20 3c 62 3e 45 6e 64 2d 4e 6f 64 65 3c 2f  an <b>End-Node</
08c0: 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c  b> (<i>aka</i> <
08d0: 62 3e 4e 6f 64 65 2d 54 6f 3c 2f 62 3e 29 2e 0d  b>Node-To</b>)..
08e0: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 4c 69 6e 6b 73  .<ul>..<li>Links
08f0: 20 61 72 65 20 61 6c 77 61 79 73 20 3c 62 3e 6f   are always <b>o
0900: 72 69 65 6e 74 65 64 3c 2f 62 3e 2c 20 61 6e 64  riented</b>, and
0910: 20 74 68 65 69 72 20 6e 61 74 75 72 61 6c 20 64   their natural d
0920: 69 72 65 63 74 69 6f 6e 20 69 73 20 3c 62 3e 46  irection is <b>F
0930: 72 6f 6d 2d 54 6f 3c 2f 62 3e 3a 0d 0a 3c 75 6c  rom-To</b>:..<ul
0940: 3e 0d 0a 3c 6c 69 3e 69 6e 20 61 6e 20 3c 62 3e  >..<li>in an <b>
0950: 75 6e 69 64 69 72 65 63 74 69 6f 6e 61 6c 3c 2f  unidirectional</
0960: 62 3e 20 4e 65 74 77 6f 72 6b 20 65 61 63 68 20  b> Network each 
0970: 4c 69 6e 6b 20 69 73 20 61 6e 20 3c 62 3e 6f 6e  Link is an <b>on
0980: 65 2d 77 61 79 3c 2f 62 3e 20 63 6f 6e 6e 65 63  e-way</b> connec
0990: 74 69 6f 6e 2e 3c 62 72 3e 0d 0a 49 66 20 74 68  tion.<br>..If th
09a0: 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 69 73 20  e connection is 
09b0: 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74 68 65  available in the
09c0: 20 6f 70 70 6f 73 69 74 65 20 64 69 72 65 63 74   opposite direct
09d0: 69 6f 6e 20 61 20 73 65 63 6f 6e 64 20 4c 69 6e  ion a second Lin
09e0: 6b 20 6d 75 73 74 20 62 65 20 65 78 70 6c 69 63  k must be explic
09f0: 69 74 6c 79 20 64 65 63 6c 61 72 65 64 2e 3c 62  itly declared.<b
0a00: 72 3e 0d 0a 3c 75 3e 45 78 61 6d 70 6c 65 3c 2f  r>..<u>Example</
0a10: 75 3e 3a 20 4c 69 6e 6b 20 3c 62 3e 58 31 3c 2f  u>: Link <b>X1</
0a20: 62 3e 20 67 6f 65 73 20 66 72 6f 6d 20 4e 6f 64  b> goes from Nod
0a30: 65 20 3c 62 3e 41 3c 2f 62 3e 20 74 6f 20 4e 6f  e <b>A</b> to No
0a40: 64 65 20 3c 62 3e 42 3c 2f 62 3e 2c 20 61 6e 64  de <b>B</b>, and
0a50: 20 4c 69 6e 6b 20 3c 62 3e 58 32 3c 2f 62 3e 20   Link <b>X2</b> 
0a60: 67 6f 65 73 20 66 72 6f 6d 20 4e 6f 64 65 20 3c  goes from Node <
0a70: 62 3e 42 3c 2f 62 3e 20 74 6f 20 4e 6f 64 65 20  b>B</b> to Node 
0a80: 3c 62 3e 41 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a  <b>A</b>.</li>..
0a90: 3c 6c 69 3e 69 6e 20 61 20 3c 62 3e 62 69 64 69  <li>in a <b>bidi
0aa0: 72 65 63 74 69 6f 6e 61 6c 3c 2f 62 3e 20 4e 65  rectional</b> Ne
0ab0: 74 77 6f 72 6b 20 61 6c 6c 20 4c 69 6e 6b 73 20  twork all Links 
0ac0: 61 72 65 20 61 73 73 75 6d 65 64 20 74 6f 20 65  are assumed to e
0ad0: 73 74 61 62 6c 69 73 68 20 61 20 63 6f 6e 6e 65  stablish a conne
0ae0: 63 74 69 6f 6e 20 69 6e 20 62 6f 74 68 20 64 69  ction in both di
0af0: 72 65 63 74 69 6f 6e 73 2e 3c 62 72 3e 0d 0a 44  rections.<br>..D
0b00: 65 66 69 6e 69 74 69 6e 67 20 61 6e 20 3c 62 3e  efiniting an <b>
0b10: 6f 6e 65 2d 77 61 79 20 63 6f 6e 6e 65 63 74 69  one-way connecti
0b20: 6f 6e 3c 2f 62 3e 20 72 65 71 75 69 72 65 73 20  on</b> requires 
0b30: 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 61  an appropriate a
0b40: 74 74 72 69 62 75 74 65 20 74 6f 20 62 65 20 73  ttribute to be s
0b50: 65 74 20 28 73 65 65 20 62 65 6c 6f 77 29 2e 3c  et (see below).<
0b60: 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e  /li>..</ul></li>
0b70: 0d 0a 3c 6c 69 3e 54 68 65 20 3c 62 3e 53 74 61  ..<li>The <b>Sta
0b80: 72 74 2d 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 45  rt-</b> and <b>E
0b90: 6e 64 2d 4e 6f 64 65 3c 2f 62 3e 20 63 6f 75 6c  nd-Node</b> coul
0ba0: 64 20 65 76 65 6e 74 75 61 6c 6c 79 20 62 65 20  d eventually be 
0bb0: 74 68 65 20 73 61 6d 65 2c 20 61 6e 64 20 69 6e  the same, and in
0bc0: 20 74 68 69 73 20 63 61 73 65 20 77 65 27 6c 6c   this case we'll
0bd0: 20 68 61 76 65 20 61 20 3c 62 3e 73 65 6c 66 2d   have a <b>self-
0be0: 63 6c 6f 73 65 64 3c 2f 62 3e 20 4c 69 6e 6b 2e  closed</b> Link.
0bf0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 4e 65 74 77 6f  </li>..<li>Netwo
0c00: 72 6b 27 73 20 4c 69 6e 6b 73 20 3c 62 3e 63 61  rk's Links <b>ca
0c10: 6e 3c 2f 62 3e 20 65 76 65 6e 74 75 61 6c 6c 79  n</b> eventually
0c20: 20 64 65 66 69 6e 65 20 61 20 6c 69 6e 65 61 72   define a linear
0c30: 20 47 65 6f 6d 65 74 72 79 20 28 3c 62 3e 4c 49   Geometry (<b>LI
0c40: 4e 45 53 54 52 49 4e 47 3c 2f 62 3e 29 20 67 6f  NESTRING</b>) go
0c50: 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 3c 62 3e  ing from the <b>
0c60: 53 74 61 72 74 2d 4e 6f 64 65 3c 2f 62 3e 20 74  Start-Node</b> t
0c70: 6f 20 74 68 65 20 3c 62 3e 45 6e 64 2d 4e 6f 64  o the <b>End-Nod
0c80: 65 3c 2f 62 3e 2c 20 62 75 74 20 74 68 69 73 20  e</b>, but this 
0c90: 69 73 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 66  is an optional f
0ca0: 65 61 74 75 72 65 2c 20 6e 6f 74 20 61 20 6d 61  eature, not a ma
0cb0: 6e 64 61 74 6f 72 79 20 72 65 71 75 69 72 65 6d  ndatory requirem
0cc0: 65 6e 74 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 57  ent.</li>..<li>W
0cd0: 68 61 74 20 69 73 20 61 62 73 6f 6c 75 74 65 6c  hat is absolutel
0ce0: 79 20 6d 61 6e 64 61 74 6f 72 79 20 69 73 20 74  y mandatory is t
0cf0: 68 61 74 20 65 61 63 68 20 3c 62 3e 4c 69 6e 6b  hat each <b>Link
0d00: 3c 2f 62 3e 20 6d 75 73 74 20 65 78 70 6c 69 63  </b> must explic
0d10: 69 74 6c 79 20 72 65 66 65 72 65 6e 63 65 20 69  itly reference i
0d20: 74 73 20 3c 62 3e 4e 6f 64 65 73 3c 2f 62 3e 2e  ts <b>Nodes</b>.
0d30: 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69  </li>..</ul></li
0d40: 3e 0d 0a 3c 6c 69 3e 41 20 4e 65 74 77 6f 72 6b  >..<li>A Network
0d50: 20 73 75 70 70 6f 72 74 69 6e 67 20 47 65 6f 6d   supporting Geom
0d60: 65 74 72 69 65 73 20 69 73 20 61 20 3c 62 3e 53  etries is a <b>S
0d70: 70 61 74 69 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f  patial Network</
0d80: 62 3e 3b 20 6f 74 68 65 72 77 69 73 65 20 61 20  b>; otherwise a 
0d90: 4e 65 74 77 6f 72 6b 20 6c 61 63 6b 69 6e 67 20  Network lacking 
0da0: 61 6e 79 20 47 65 6f 6d 65 74 72 79 20 69 73 20  any Geometry is 
0db0: 61 20 3c 62 3e 4c 6f 67 69 63 61 6c 20 4e 65 74  a <b>Logical Net
0dc0: 77 6f 72 6b 3c 2f 62 3e 2e 0d 0a 3c 75 6c 3e 0d  work</b>...<ul>.
0dd0: 0a 3c 6c 69 3e 49 6e 20 61 20 3c 62 3e 53 70 61  .<li>In a <b>Spa
0de0: 74 69 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62 3e  tial Network</b>
0df0: 20 61 6c 6c 20 4c 69 6e 6b 73 20 3c 62 3e 6d 75   all Links <b>mu
0e00: 73 74 3c 2f 62 3e 20 68 61 76 65 20 61 20 63 6f  st</b> have a co
0e10: 72 72 65 73 70 6f 6e 64 69 6e 67 20 47 65 6f 6d  rresponding Geom
0e20: 65 74 72 79 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  etry.</li>..<li>
0e30: 49 6e 20 61 20 3c 62 3e 4c 6f 67 69 63 61 6c 20  In a <b>Logical 
0e40: 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 61 6c 6c 20  Network</b> all 
0e50: 4c 69 6e 6b 73 20 3c 62 3e 61 72 65 20 73 74 72  Links <b>are str
0e60: 69 63 74 6c 79 20 66 6f 72 62 69 64 64 65 6e 3c  ictly forbidden<
0e70: 2f 62 3e 20 74 6f 20 68 61 76 65 20 61 6e 79 20  /b> to have any 
0e80: 47 65 6f 6d 65 74 72 79 2e 3c 2f 6c 69 3e 0d 0a  Geometry.</li>..
0e90: 3c 6c 69 3e 49 6e 20 61 20 3c 62 3e 53 70 61 74  <li>In a <b>Spat
0ea0: 69 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20  ial Network</b> 
0eb0: 62 6f 74 68 20 74 68 65 20 3c 62 3e 53 74 61 72  both the <b>Star
0ec0: 74 50 6f 69 6e 74 3c 2f 62 3e 20 61 6e 64 20 3c  tPoint</b> and <
0ed0: 62 3e 45 6e 64 50 6f 69 6e 74 3c 2f 62 3e 20 6f  b>EndPoint</b> o
0ee0: 66 20 65 61 63 68 20 4c 69 6e 6b 27 73 20 3c 62  f each Link's <b
0ef0: 3e 4c 49 4e 45 53 54 52 49 4e 47 3c 2f 62 3e 20  >LINESTRING</b> 
0f00: 61 72 65 20 61 6c 77 61 79 73 20 65 78 70 65 63  are always expec
0f10: 74 65 64 20 74 6f 20 65 78 61 63 74 6c 79 20 63  ted to exactly c
0f20: 6f 69 6e 63 69 64 65 20 77 69 74 68 20 74 68 65  oincide with the
0f30: 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 3c   corresponding <
0f40: 62 3e 4e 6f 64 65 73 3c 2f 62 3e 2e 3c 2f 6c 69  b>Nodes</b>.</li
0f50: 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c  >..</ul></li>..<
0f60: 6c 69 3e 49 6e 20 61 20 3c 62 3e 53 70 61 74 69  li>In a <b>Spati
0f70: 61 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 61  al Network</b> a
0f80: 6c 6c 20 72 65 66 65 72 65 6e 63 65 73 20 74 6f  ll references to
0f90: 20 74 68 65 20 73 61 6d 65 20 3c 62 3e 4e 6f 64   the same <b>Nod
0fa0: 65 3c 2f 62 3e 20 62 79 20 64 69 66 66 65 72 65  e</b> by differe
0fb0: 6e 74 20 4c 69 6e 6b 73 20 3c 62 3e 6d 75 73 74  nt Links <b>must
0fc0: 3c 2f 62 3e 20 62 65 20 61 6e 20 65 78 61 63 74  </b> be an exact
0fd0: 20 6d 61 74 63 68 2e 3c 62 72 3e 0d 0a 3c 75 3e   match.<br>..<u>
0fe0: 45 78 61 6d 70 6c 65 3c 2f 75 3e 3a 20 4e 6f 64  Example</u>: Nod
0ff0: 65 20 3c 62 3e 4e 35 3c 2f 62 3e 20 69 73 20 73  e <b>N5</b> is s
1000: 68 61 72 65 64 20 62 79 20 4c 69 6e 6b 73 20 3c  hared by Links <
1010: 62 3e 4c 33 3c 2f 62 3e 2c 20 3c 62 3e 4c 36 3c  b>L3</b>, <b>L6<
1020: 2f 62 3e 2c 20 3c 62 3e 4c 37 3c 2f 62 3e 2c 20  /b>, <b>L7</b>, 
1030: 3c 62 3e 4c 39 3c 2f 62 3e 20 61 6e 64 20 3c 62  <b>L9</b> and <b
1040: 3e 4c 31 30 3c 2f 62 3e 2c 20 73 6f 20 61 6c 6c  >L10</b>, so all
1050: 20 74 68 65 69 72 20 63 6f 72 72 65 73 70 6f 6e   their correspon
1060: 64 69 6e 67 20 4c 49 4e 45 53 54 52 49 4e 47 53  ding LINESTRINGS
1070: 20 61 72 65 20 65 78 70 65 63 74 65 64 20 74 6f   are expected to
1080: 20 68 61 76 65 20 74 68 65 20 63 6f 72 72 65 73   have the corres
1090: 70 6f 6e 64 69 6e 67 20 65 78 74 72 65 6d 69 74  ponding extremit
10a0: 79 20 28 3c 62 3e 53 74 61 72 74 2d 3c 2f 62 3e  y (<b>Start-</b>
10b0: 20 6f 72 20 3c 62 3e 45 6e 64 2d 3c 2f 62 3e 2c   or <b>End-</b>,
10c0: 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68   depending on th
10d0: 65 20 6f 72 69 65 6e 74 61 74 69 6f 6e 29 20 70  e orientation) p
10e0: 6f 69 6e 74 73 20 74 68 61 74 20 6d 75 73 74 20  oints that must 
10f0: 65 78 61 63 74 6c 79 20 6d 61 74 63 68 20 74 68  exactly match th
1100: 65 20 6f 74 68 65 72 2e 3c 62 72 3e 0d 0a 41 20  e other.<br>..A 
1110: 3c 62 3e 74 6f 70 6f 6c 6f 67 69 63 61 6c 20 69  <b>topological i
1120: 6e 63 6f 6e 73 69 73 74 65 6e 63 79 3c 2f 62 3e  nconsistency</b>
1130: 20 65 78 69 73 74 73 20 69 66 20 61 6e 79 20 6f   exists if any o
1140: 66 20 74 68 65 73 65 20 63 6f 6e 64 69 74 69 6f  f these conditio
1150: 6e 73 20 61 72 65 20 6e 6f 74 20 73 61 74 69 73  ns are not satis
1160: 66 69 65 64 2c 20 77 68 69 63 68 20 6c 65 61 64  fied, which lead
1170: 73 20 74 6f 20 61 6e 20 3c 62 3e 69 6e 76 61 6c  s to an <b>inval
1180: 69 64 3c 2f 62 3e 20 4e 65 74 77 6f 72 6b 2e 3c  id</b> Network.<
1190: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 49 6e 20 61 20 3c  /li>..<li>In a <
11a0: 62 3e 53 70 61 74 69 61 6c 20 4e 65 74 77 6f 72  b>Spatial Networ
11b0: 6b 3c 2f 62 3e 20 74 77 6f 0d 0a 3c 6c 69 3e 41  k</b> two..<li>A
11c0: 63 63 6f 72 64 69 6e 67 6c 79 20 74 6f 20 74 68  ccordingly to th
11d0: 65 20 61 62 6f 76 65 20 70 72 65 6d 69 73 65 73  e above premises
11e0: 2c 20 3c 62 3e 4e 6f 64 65 73 3c 2f 62 3e 20 61  , <b>Nodes</b> a
11f0: 72 65 20 6e 65 76 65 72 20 65 78 70 65 63 74 65  re never expecte
1200: 64 20 74 6f 20 62 65 20 65 78 70 6c 69 63 69 74  d to be explicit
1210: 6c 79 20 64 65 63 6c 61 72 65 64 20 69 6e 20 61  ly declared in a
1220: 20 73 65 70 61 72 61 74 65 20 54 61 62 6c 65 2e   separate Table.
1230: 3c 62 72 3e 0d 0a 4a 75 73 74 20 61 20 73 69 6e  <br>..Just a sin
1240: 67 6c 65 20 54 61 62 6c 65 20 64 65 63 6c 61 72  gle Table declar
1250: 69 6e 67 20 61 6c 6c 20 3c 62 3e 4c 69 6e 6b 73  ing all <b>Links
1260: 3c 2f 62 3e 20 69 73 20 72 65 71 75 69 72 65 64  </b> is required
1270: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 66 75 6c   in order to ful
1280: 6c 79 20 64 65 66 69 6e 65 20 61 20 74 6f 70 6f  ly define a topo
1290: 6c 6f 67 69 63 61 6c 6c 79 20 76 61 6c 69 64 20  logically valid 
12a0: 4e 65 74 77 6f 72 6b 2e 3c 62 72 3e 0d 0a 41 6c  Network.<br>..Al
12b0: 6c 20 74 68 65 20 4e 6f 64 65 73 20 63 61 6e 20  l the Nodes can 
12c0: 74 68 65 6e 20 62 65 20 65 61 73 69 6c 79 20 65  then be easily e
12d0: 78 74 72 61 63 74 65 64 20 66 72 6f 6d 20 74 68  xtracted from th
12e0: 65 20 4c 69 6e 6b 73 27 20 64 65 66 69 6e 69 74  e Links' definit
12f0: 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 63 6f 6f  ions and the coo
1300: 72 64 69 6e 61 74 65 73 20 66 6f 72 20 65 61 63  rdinates for eac
1310: 68 20 4e 6f 64 65 20 63 61 6e 20 62 65 20 64 69  h Node can be di
1320: 72 65 63 74 6c 79 20 73 65 74 20 62 79 20 65 78  rectly set by ex
1330: 74 72 61 63 74 69 6e 67 20 74 68 65 20 65 78 74  tracting the ext
1340: 72 65 6d 65 20 50 6f 69 6e 74 20 6f 66 20 74 68  reme Point of th
1350: 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  e corresponding 
1360: 4c 69 6e 65 73 74 72 69 6e 67 73 2e 3c 62 72 3e  Linestrings.<br>
1370: 0d 0a 49 66 20 61 6e 79 20 6d 69 73 6d 61 74 63  ..If any mismatc
1380: 68 20 69 73 20 64 65 74 65 63 74 65 64 20 74 68  h is detected th
1390: 69 73 20 73 75 72 65 6c 79 20 6d 65 61 6e 73 20  is surely means 
13a0: 74 68 61 74 20 74 68 65 20 4e 65 74 77 6f 72 6b  that the Network
13b0: 20 69 73 20 69 6e 76 61 6c 69 64 2e 3c 2f 6c 69   is invalid.</li
13c0: 3e 0d 0a 3c 6c 69 3e 41 20 3c 62 3e 4c 69 6e 6b  >..<li>A <b>Link
13d0: 3c 2f 62 3e 20 6d 61 79 20 6c 65 67 69 74 69 6d  </b> may legitim
13e0: 61 74 65 6c 79 20 73 65 6c 66 2d 69 6e 74 65 72  ately self-inter
13f0: 73 65 63 74 20 69 74 73 65 6c 66 20 28 65 2e 67  sect itself (e.g
1400: 2e 20 66 6f 72 6d 69 6e 67 20 61 20 6c 6f 6f 70  . forming a loop
1410: 29 2c 20 61 73 20 73 68 6f 77 6e 20 69 6e 20 74  ), as shown in t
1420: 68 65 20 61 62 6f 76 65 20 66 69 67 75 72 65 20  he above figure 
1430: 62 79 20 4c 69 6e 6b 20 3c 62 3e 4c 31 35 3c 2f  by Link <b>L15</
1440: 62 3e 20 28 6f 72 61 6e 67 65 20 73 70 6f 74 29  b> (orange spot)
1450: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 54 77 6f 20  .</li>..<li>Two 
1460: 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e 20 6d 61 79  <b>Links</b> may
1470: 20 6c 65 67 69 74 69 6d 61 74 65 6c 79 20 69 6e   legitimately in
1480: 74 65 72 73 65 63 74 20 77 68 65 72 65 20 6e 6f  tersect where no
1490: 20 4e 6f 64 65 20 65 78 69 73 74 73 2c 20 61 73   Node exists, as
14a0: 20 65 78 65 6d 70 6c 69 66 69 65 64 20 6f 6e 20   exemplified on 
14b0: 74 68 65 20 61 62 6f 76 65 20 66 69 67 75 72 65  the above figure
14c0: 20 62 79 20 4c 69 6e 6b 73 20 3c 62 3e 4c 34 3c   by Links <b>L4<
14d0: 2f 62 3e 20 61 6e 64 20 3c 62 3e 4c 37 3c 2f 62  /b> and <b>L7</b
14e0: 3e 20 28 67 72 65 65 6e 20 73 70 6f 74 29 2e 3c  > (green spot).<
14f0: 62 72 3e 0d 0a 54 68 69 73 20 75 73 75 61 6c 6c  br>..This usuall
1500: 79 20 68 61 70 70 65 6e 73 20 77 68 65 6e 20 6f  y happens when o
1510: 6e 65 20 6f 66 20 74 68 65 20 74 77 6f 20 4c 69  ne of the two Li
1520: 6e 6b 73 20 6f 76 65 72 70 61 73 73 65 73 20 74  nks overpasses t
1530: 68 65 20 6f 74 68 65 72 2c 20 6f 72 20 77 68 65  he other, or whe
1540: 72 65 20 73 6f 6d 65 20 74 65 63 68 6e 69 63 61  re some technica
1550: 6c 20 72 65 73 74 72 69 63 74 69 6f 6e 20 65 78  l restriction ex
1560: 69 73 74 73 20 28 65 2e 67 2e 20 74 77 6f 20 69  ists (e.g. two i
1570: 6e 73 75 6c 61 74 65 64 20 77 69 72 65 73 20 69  nsulated wires i
1580: 6e 20 61 6e 20 45 6c 65 63 74 72 69 63 61 6c 20  n an Electrical 
1590: 4e 65 74 77 6f 72 6b 29 2e 3c 2f 6c 69 3e 0d 0a  Network).</li>..
15a0: 3c 6c 69 3e 3c 62 3e 4c 69 6e 6b 73 3c 2f 62 3e  <li><b>Links</b>
15b0: 20 61 72 65 6e 27 74 20 73 74 72 69 63 74 6c 79   aren't strictly
15c0: 20 72 65 71 75 69 72 65 64 20 74 6f 20 62 65 20   required to be 
15d0: 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20  associated with 
15e0: 61 6e 79 20 73 70 65 63 69 66 69 63 20 61 74 74  any specific att
15f0: 72 69 62 75 74 65 2c 20 62 75 74 20 74 68 65 20  ribute, but the 
1600: 66 6f 6c 6c 6f 77 69 6e 67 20 61 74 74 72 69 62  following attrib
1610: 75 74 65 73 20 61 72 65 20 61 6c 6d 6f 73 74 20  utes are almost 
1620: 75 6e 69 76 65 72 73 61 6c 6c 79 20 73 75 70 70  universally supp
1630: 6f 72 74 65 64 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c  orted:..<ul>..<l
1640: 69 3e 61 20 3c 62 3e 6e 61 6d 65 3c 2f 62 3e 20  i>a <b>name</b> 
1650: 69 64 65 6e 74 69 66 79 69 6e 67 20 74 68 65 20  identifying the 
1660: 4c 69 6e 6b 2e 3c 62 72 3e 0d 0a 3c 75 3e 45 78  Link.<br>..<u>Ex
1670: 61 6d 70 6c 65 73 3c 2f 75 3e 3a 20 74 68 65 20  amples</u>: the 
1680: 3c 69 3e 72 6f 61 64 20 74 6f 70 6f 6e 79 6d 3c  <i>road toponym<
1690: 2f 69 3e 20 69 6e 20 61 20 3c 62 3e 72 6f 61 64  /i> in a <b>road
16a0: 20 6e 65 74 77 6f 72 6b 3c 2f 62 3e 2c 20 6f 72   network</b>, or
16b0: 20 74 68 65 20 3c 69 3e 72 69 76 65 72 20 6e 61   the <i>river na
16c0: 6d 65 3c 2f 69 3e 20 69 6e 20 61 6e 20 3c 62 3e  me</i> in an <b>
16d0: 68 79 64 72 6f 67 72 61 70 68 69 63 20 6e 65 74  hydrographic net
16e0: 77 6f 72 6b 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a  work</b>.</li>..
16f0: 3c 6c 69 3e 6f 6e 65 20 28 6f 72 20 65 76 65 6e  <li>one (or even
1700: 20 6d 6f 72 65 29 20 61 70 70 72 6f 70 72 69 61   more) appropria
1710: 74 65 20 3c 62 3e 63 6f 73 74 20 76 61 6c 75 65  te <b>cost value
1720: 3c 2f 62 3e 28 73 29 2e 3c 62 72 3e 0d 0a 3c 75  </b>(s).<br>..<u
1730: 3e 45 78 61 6d 70 6c 65 3c 2f 75 3e 3a 20 74 68  >Example</u>: th
1740: 65 20 3c 69 3e 74 69 6d 65 3c 2f 69 3e 20 72 65  e <i>time</i> re
1750: 71 75 69 72 65 64 20 74 6f 20 74 72 61 76 65 72  quired to traver
1760: 73 65 20 74 68 65 20 4c 69 6e 6b 20 28 6d 61 79  se the Link (may
1770: 20 62 65 20 64 69 73 74 69 6e 67 75 69 73 68 65   be distinguishe
1780: 64 20 62 65 74 77 65 65 6e 20 70 65 64 65 73 74  d between pedest
1790: 72 69 61 6e 73 2c 20 62 69 63 79 63 6c 65 73 2c  rians, bicycles,
17a0: 20 63 61 72 73 2c 20 6c 6f 72 72 69 65 73 20 61   cars, lorries a
17b0: 6e 64 20 73 6f 20 6f 6e 29 2e 3c 2f 6c 69 3e 0d  nd so on).</li>.
17c0: 0a 3c 6c 69 3e 61 20 70 61 69 72 20 6f 66 20 3c  .<li>a pair of <
17d0: 62 3e 62 6f 6f 6c 65 61 6e 20 66 6c 61 67 73 3c  b>boolean flags<
17e0: 2f 62 3e 20 28 3c 62 3e 66 72 6f 6d 2d 74 6f 3c  /b> (<b>from-to<
17f0: 2f 62 3e 20 61 6e 64 20 3c 62 3e 74 6f 2d 66 72  /b> and <b>to-fr
1800: 6f 6d 3c 2f 62 3e 29 20 61 72 65 20 69 6e 74 65  om</b>) are inte
1810: 6e 64 65 6e 64 20 74 6f 20 73 70 65 63 69 66 79  ndend to specify
1820: 20 69 66 20 74 68 65 20 4c 69 6e 6b 20 63 61 6e   if the Link can
1830: 20 62 65 20 74 72 61 76 65 72 73 65 64 20 6f 6e   be traversed on
1840: 20 62 6f 74 68 20 64 69 72 65 63 74 69 6f 6e 73   both directions
1850: 20 6f 72 20 6a 75 73 74 20 69 6e 20 6f 6e 65 20   or just in one 
1860: 28 3c 62 3e 6f 6e 65 2d 77 61 79 3c 2f 62 3e 29  (<b>one-way</b>)
1870: 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c  .</li>..</ul></l
1880: 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 68 34 3e 4c  i>..</ul>..<h4>L
1890: 6f 67 69 63 61 6c 20 63 6f 6e 63 6c 75 73 69 6f  ogical conclusio
18a0: 6e 73 3c 2f 68 34 3e 0d 0a 41 6e 79 20 74 6f 70  ns</h4>..Any top
18b0: 6f 6c 6f 67 69 63 61 6c 6c 79 20 76 61 6c 69 64  ologically valid
18c0: 20 3c 62 3e 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20   <b>Network</b> 
18d0: 28 69 72 72 65 73 70 65 63 74 69 76 65 20 6f 66  (irrespective of
18e0: 20 77 68 65 74 68 65 72 20 69 74 20 69 73 20 61   whether it is a
18f0: 20 3c 62 3e 53 70 61 74 69 61 6c 3c 2f 62 3e 20   <b>Spatial</b> 
1900: 6f 72 20 3c 62 3e 4c 6f 67 69 63 61 6c 3c 2f 62  or <b>Logical</b
1910: 3e 20 74 79 70 65 29 20 69 73 20 61 20 76 61 6c  > type) is a val
1920: 69 64 20 3c 62 3e 47 72 61 70 68 3c 2f 62 3e 2e  id <b>Graph</b>.
1930: 3c 62 72 3e 0d 0a 41 20 4e 65 74 77 6f 72 6b 20  <br>..A Network 
1940: 61 6c 6c 6f 77 69 6e 67 20 74 68 65 20 73 75 70  allowing the sup
1950: 70 6f 72 74 20 28 64 69 72 65 63 74 20 6f 72 20  port (direct or 
1960: 69 6e 64 69 72 65 63 74 29 20 6f 66 20 73 6f 6d  indirect) of som
1970: 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 3c 62  e appropriate <b
1980: 3e 63 6f 73 74 20 76 61 6c 75 65 3c 2f 62 3e 20  >cost value</b> 
1990: 69 73 20 61 20 76 61 6c 69 64 20 3c 62 3e 57 65  is a valid <b>We
19a0: 69 67 68 74 65 64 20 47 72 61 70 68 3c 2f 62 3e  ighted Graph</b>
19b0: 2c 20 61 6e 64 20 63 61 6e 20 63 6f 6e 73 65 71  , and can conseq
19c0: 75 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 20 3c  uently support <
19d0: 62 3e 52 6f 75 74 69 6e 67 20 61 6c 67 6f 72 69  b>Routing algori
19e0: 74 68 6d 73 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 41  thms</b>.<br>..A
19f0: 6c 6c 20 52 6f 75 74 69 6e 67 20 61 6c 67 6f 72  ll Routing algor
1a00: 69 74 68 6d 73 20 61 72 65 20 69 6e 74 65 6e 64  ithms are intend
1a10: 65 64 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74  ed to identify t
1a20: 68 65 20 3c 62 3e 53 68 6f 72 74 65 73 74 20 50  he <b>Shortest P
1a30: 61 74 68 3c 2f 62 3e 20 73 6f 6c 75 74 69 6f 6e  ath</b> solution
1a40: 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 77 6f 20   connecting two 
1a50: 3c 62 3e 4e 6f 64 65 73 3c 2f 62 3e 20 69 6e 20  <b>Nodes</b> in 
1a60: 61 20 3c 62 3e 77 65 69 67 68 74 65 64 20 67 72  a <b>weighted gr
1a70: 61 70 68 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c  aph</b> (<i>aka<
1a80: 2f 69 3e 20 3c 62 3e 4e 65 74 77 6f 72 6b 3c 2f  /i> <b>Network</
1a90: 62 3e 29 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 62  b>).<br><br>..<b
1aa0: 3e 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3c 2f 62 3e  ><u>Note</u></b>
1ab0: 3a 20 74 68 65 20 74 65 72 6d 20 3c 62 3e 3c 69  : the term <b><i
1ac0: 3e 53 68 6f 72 74 65 73 74 20 50 61 74 68 3c 2f  >Shortest Path</
1ad0: 69 3e 3c 2f 62 3e 20 63 61 6e 20 62 65 20 65 61  i></b> can be ea
1ae0: 73 69 6c 79 20 6d 69 73 75 6e 64 65 72 73 74 6f  sily misundersto
1af0: 6f 64 2e 3c 62 72 3e 0d 0a 44 75 65 20 74 6f 20  od.<br>..Due to 
1b00: 68 69 73 74 6f 72 69 63 61 6c 20 72 65 61 73 6f  historical reaso
1b10: 6e 73 20 74 68 65 20 6d 6f 73 74 20 63 6f 6d 6d  ns the most comm
1b20: 6f 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 66  on application f
1b30: 69 65 6c 64 20 66 6f 72 20 52 6f 75 74 69 6e 67  ield for Routing
1b40: 20 61 6c 67 6f 72 69 74 68 6d 73 20 69 73 20 72   algorithms is r
1b50: 65 6c 61 74 65 64 20 74 6f 20 3c 62 3e 52 6f 61  elated to <b>Roa
1b60: 64 20 4e 65 74 77 6f 72 6b 73 3c 2f 62 3e 2c 20  d Networks</b>, 
1b70: 62 75 74 20 61 6c 73 6f 20 6d 61 6e 79 20 6f 74  but also many ot
1b80: 68 65 72 20 6b 69 6e 64 73 20 6f 66 20 4e 65 74  her kinds of Net
1b90: 77 6f 72 6b 73 20 65 78 69 73 74 3a 0d 0a 3c 75  works exist:..<u
1ba0: 6c 3e 0d 0a 3c 6c 69 3e 48 79 64 72 6f 67 72 61  l>..<li>Hydrogra
1bb0: 70 68 69 63 20 4e 65 74 77 6f 72 6b 73 2e 3c 2f  phic Networks.</
1bc0: 6c 69 3e 0d 0a 3c 6c 69 3e 47 61 73 20 2f 20 57  li>..<li>Gas / W
1bd0: 61 74 65 72 20 2f 20 4f 69 6c 20 4e 65 74 77 6f  ater / Oil Netwo
1be0: 72 6b 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 45  rks.</li>..<li>E
1bf0: 6c 65 63 74 72 69 63 61 6c 20 4e 65 74 77 6f 72  lectrical Networ
1c00: 6b 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 54 65  ks.</li>..<li>Te
1c10: 6c 65 63 6f 6d 75 6e 69 63 61 74 69 6f 6e 20 4e  lecomunication N
1c20: 65 74 77 6f 72 6b 73 2e 3c 2f 6c 69 3e 0d 0a 3c  etworks.</li>..<
1c30: 6c 69 3e 53 6f 63 69 61 6c 20 6f 72 20 45 63 6f  li>Social or Eco
1c40: 6e 6f 6d 69 63 61 6c 20 4e 65 74 77 6f 72 6b 73  nomical Networks
1c50: 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 72 65   representing re
1c60: 6c 61 74 69 6f 6e 73 68 69 70 73 20 62 65 74 77  lationships betw
1c70: 65 65 6e 20 69 6e 64 69 76 69 64 75 61 6c 73 20  een individuals 
1c80: 6f 72 20 63 6f 6d 70 61 6e 69 65 73 2e 3c 2f 6c  or companies.</l
1c90: 69 3e 0d 0a 3c 6c 69 3e 45 70 69 64 65 6d 69 6f  i>..<li>Epidemio
1ca0: 6c 6f 67 69 63 61 6c 20 4e 65 74 77 6f 72 6b 73  logical Networks
1cb0: 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68   representing th
1cc0: 65 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66  e propagation of
1cd0: 20 69 6e 66 65 63 74 69 76 65 20 64 69 73 65 61   infective disea
1ce0: 73 65 73 20 62 65 74 77 65 65 6e 20 69 6e 64 69  ses between indi
1cf0: 76 69 64 75 61 6c 73 20 6f 72 20 67 72 6f 75 70  viduals or group
1d00: 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f  s.</li>..</ul></
1d10: 6c 69 3e 20 0d 0a 3c 62 72 3e 0d 0a 49 6e 20 61  li> ..<br>..In a
1d20: 6c 6c 20 74 68 65 20 61 62 6f 76 65 20 63 61 73  ll the above cas
1d30: 65 73 20 77 65 20 63 65 72 74 61 69 6e 6c 79 20  es we certainly 
1d40: 68 61 76 65 20 76 61 6c 69 64 20 4e 65 74 77 6f  have valid Netwo
1d50: 72 6b 73 20 73 75 70 70 6f 72 74 69 6e 67 20 52  rks supporting R
1d60: 6f 75 74 69 6e 67 20 61 6c 67 6f 72 69 74 68 6e  outing algorithn
1d70: 73 2c 20 62 75 74 20 6e 6f 74 20 61 6c 6c 20 6f  s, but not all o
1d80: 66 20 74 68 65 6d 20 63 61 6e 20 69 6d 70 6c 79  f them can imply
1d90: 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20   something like 
1da0: 61 20 3c 69 3e 73 70 61 74 69 61 6c 20 64 69 73  a <i>spatial dis
1db0: 74 61 6e 63 65 3c 2f 69 3e 20 28 3c 69 3e 67 65  tance</i> (<i>ge
1dc0: 6f 6d 65 74 72 69 63 20 6c 65 6e 67 74 68 3c 2f  ometric length</
1dd0: 69 3e 29 20 6f 72 20 61 20 3c 69 3e 74 72 61 76  i>) or a <i>trav
1de0: 65 6c 20 74 69 6d 65 3c 2f 69 3e 2e 3c 62 72 3e  el time</i>.<br>
1df0: 0d 0a 49 6e 20 74 68 65 20 6d 6f 73 74 20 67 65  ..In the most ge
1e00: 6e 65 72 61 6c 20 61 63 63 65 70 74 69 6f 6e 20  neral acception 
1e10: 3c 62 3e 63 6f 73 74 73 3c 2f 62 3e 20 63 61 6e  <b>costs</b> can
1e20: 20 62 65 20 72 65 70 72 65 73 65 6e 74 65 64 20   be represented 
1e30: 62 79 20 61 6e 79 20 72 65 61 73 6f 6e 61 62 6c  by any reasonabl
1e40: 65 20 70 68 79 73 69 63 61 6c 20 71 75 61 6e 74  e physical quant
1e50: 69 74 79 2e 3c 62 72 3e 0d 0a 53 6f 20 61 20 6d  ity.<br>..So a m
1e60: 6f 72 65 20 67 65 6e 65 72 61 6c 69 7a 65 64 20  ore generalized 
1e70: 64 65 66 69 6e 69 74 69 6f 6e 20 69 73 20 61 73  definition is as
1e80: 73 75 6d 69 6e 67 20 74 68 61 74 20 52 6f 75 74  suming that Rout
1e90: 69 6e 67 20 61 6c 67 6f 72 69 74 68 6d 73 20 61  ing algorithms a
1ea0: 72 65 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 69  re intended to i
1eb0: 64 65 6e 74 69 66 79 20 3c 62 3e 6c 65 73 73 65  dentify <b>lesse
1ec0: 72 20 63 6f 73 74 3c 2f 62 3e 20 73 6f 6c 75 74  r cost</b> solut
1ed0: 69 6f 6e 73 20 6f 6e 20 61 20 3c 62 3e 77 65 69  ions on a <b>wei
1ee0: 67 68 74 65 64 20 67 72 61 70 68 3c 2f 62 3e 2e  ghted graph</b>.
1ef0: 3c 62 72 3e 0d 0a 54 68 65 20 65 78 61 63 74 20  <br>..The exact 
1f00: 69 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f  interpretation o
1f10: 66 20 74 68 65 20 69 6e 76 6f 6c 76 65 64 20 3c  f the involved <
1f20: 62 3e 63 6f 73 74 73 3c 2f 62 3e 20 28 3c 69 3e  b>costs</b> (<i>
1f30: 61 6b 61 3c 2f 69 3e 20 3c 62 3e 77 65 69 67 68  aka</i> <b>weigh
1f40: 74 73 3c 2f 62 3e 29 20 73 74 72 69 63 74 6c 79  ts</b>) strictly
1f50: 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20   depends on the 
1f60: 76 65 72 79 20 73 70 65 63 69 66 69 63 20 6e 61  very specific na
1f70: 74 75 72 65 20 6f 66 20 65 61 63 68 20 4e 65 74  ture of each Net
1f80: 77 6f 72 6b 2e 0d 0a 3c 68 33 3e 54 68 65 20 44  work...<h3>The D
1f90: 69 6a 6b 73 74 72 61 27 73 20 61 6c 67 6f 72 69  ijkstra's algori
1fa0: 74 68 6d 3c 2f 68 33 3e 0d 0a 54 68 69 73 20 77  thm</h3>..This w
1fb0: 65 6c 6c 20 6b 6e 6f 77 6e 20 3c 61 20 68 72 65  ell known <a hre
1fc0: 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e 2e 77 69  f="https://en.wi
1fd0: 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b 69  kipedia.org/wiki
1fe0: 2f 44 69 6a 6b 73 74 72 61 25 32 37 73 5f 61 6c  /Dijkstra%27s_al
1ff0: 67 6f 72 69 74 68 6d 22 3e 61 6c 67 6f 72 69 74  gorithm">algorit
2000: 68 6d 3c 2f 61 3e 20 69 73 6e 27 74 20 6e 65 63  hm</a> isn't nec
2010: 65 73 73 61 72 69 6c 79 20 74 68 65 20 66 61 73  essarily the fas
2020: 74 65 73 74 20 6f 6e 65 2c 20 62 75 74 20 69 74  test one, but it
2030: 20 61 6c 77 61 79 73 20 65 6e 73 75 72 65 73 20   always ensures 
2040: 3c 62 3e 66 75 6c 6c 20 63 6f 72 72 65 63 74 6e  <b>full correctn
2050: 65 73 73 3c 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a  ess</b>:..<ul>..
2060: 3c 6c 69 3e 41 6e 79 20 4e 6f 64 65 2d 74 6f 2d  <li>Any Node-to-
2070: 4e 6f 64 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20  Node connection 
2080: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 44 69  identified by Di
2090: 6a 6b 73 74 72 61 27 73 20 69 73 20 63 65 72 74  jkstra's is cert
20a0: 61 69 6e 6c 79 20 65 6e 73 75 72 65 64 20 74 6f  ainly ensured to
20b0: 20 62 65 20 3c 62 3e 6f 70 74 69 6d 61 6c 3c 2f   be <b>optimal</
20c0: 62 3e 2e 3c 62 72 3e 0d 0a 49 6e 20 6f 74 68 65  b>.<br>..In othe
20d0: 72 20 77 6f 72 64 73 2c 20 6e 6f 20 63 6f 6e 6e  r words, no conn
20e0: 65 74 63 74 69 6f 6e 20 70 72 65 73 65 6e 74 69  etction presenti
20f0: 6e 67 20 61 20 6c 6f 77 65 72 20 63 6f 73 74 20  ng a lower cost 
2100: 63 61 6e 20 63 6f 6e 63 65 70 74 75 61 6c 6c 79  can conceptually
2110: 20 65 78 69 73 74 2e 3c 2f 6c 69 3e 0d 0a 3c 6c   exist.</li>..<l
2120: 69 3e 57 68 65 6e 20 44 69 6a 73 6a 74 72 61 27  i>When Dijsjtra'
2130: 73 20 66 61 69 6c 73 20 74 6f 20 69 64 65 6e 74  s fails to ident
2140: 69 66 79 20 61 20 73 6f 6c 75 74 69 6f 6e 20 74  ify a solution t
2150: 68 69 73 20 73 75 72 65 6c 79 20 6d 65 61 6e 73  his surely means
2160: 20 74 68 61 74 20 6e 6f 20 73 6f 6c 75 74 69 6f   that no solutio
2170: 6e 20 69 73 20 70 6f 73 73 69 62 6c 65 2e 3c 2f  n is possible.</
2180: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 68 33 3e  li>..</ul>..<h3>
2190: 54 68 65 20 41 2a 20 61 6c 67 6f 72 69 74 68 6d  The A* algorithm
21a0: 3c 2f 68 33 3e 0d 0a 4d 61 6e 79 20 61 6c 74 65  </h3>..Many alte
21b0: 72 6e 61 74 69 76 65 20 52 6f 75 74 69 6e 67 20  rnative Routing 
21c0: 61 6c 67 6f 72 69 74 68 6d 73 20 68 61 76 65 20  algorithms have 
21d0: 62 65 65 6e 20 69 6e 76 65 6e 74 65 64 20 64 75  been invented du
21e0: 72 69 6e 67 20 74 68 65 20 79 65 61 72 73 2e 3c  ring the years.<
21f0: 62 72 3e 0d 0a 41 6c 6c 20 74 68 65 6d 20 61 72  br>..All them ar
2200: 65 20 62 61 73 65 64 20 6f 6e 20 68 65 75 72 69  e based on heuri
2210: 73 74 69 63 20 61 73 73 75 6d 70 74 69 6f 6e 73  stic assumptions
2220: 20 61 6e 64 20 61 72 65 20 69 6e 74 65 6e 64 65   and are intende
2230: 64 20 74 6f 20 62 65 20 66 61 73 74 65 72 20 74  d to be faster t
2240: 68 61 6e 20 44 69 6a 6b 73 74 72 61 27 73 2c 20  han Dijkstra's, 
2250: 62 75 74 20 6e 6f 6e 65 20 6f 66 20 74 68 65 6d  but none of them
2260: 20 63 61 6e 20 65 6e 73 75 72 65 20 3c 62 3e 66   can ensure <b>f
2270: 75 6c 6c 20 63 6f 72 72 65 63 74 6e 65 73 73 3c  ull correctness<
2280: 2f 62 3e 20 61 73 20 44 69 6a 6b 73 74 72 61 27  /b> as Dijkstra'
2290: 73 20 64 6f 65 73 2e 3c 62 72 3e 0d 0a 54 68 65  s does.<br>..The
22a0: 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a   <a href="https:
22b0: 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f  //en.wikipedia.o
22c0: 72 67 2f 77 69 6b 69 2f 41 2a 5f 73 65 61 72 63  rg/wiki/A*_searc
22d0: 68 5f 61 6c 67 6f 72 69 74 68 6d 22 3e 41 2a 20  h_algorithm">A* 
22e0: 61 6c 67 6f 72 69 74 68 6d 3c 2f 61 3e 20 61 70  algorithm</a> ap
22f0: 70 6c 69 65 73 20 61 20 6d 69 6c 64 20 68 65 75  plies a mild heu
2300: 72 69 73 74 69 63 20 6f 70 74 69 6d 69 7a 61 74  ristic optimizat
2310: 69 6f 6e 2c 20 61 6e 64 20 63 61 6e 20 62 65 20  ion, and can be 
2320: 61 20 72 65 61 6c 69 73 74 69 63 20 61 6c 74 65  a realistic alte
2330: 72 6e 61 74 69 76 65 20 74 6f 20 44 69 6a 6b 73  rnative to Dijks
2340: 74 72 61 27 73 20 69 6e 20 6d 61 6e 79 20 63 61  tra's in many ca
2350: 73 65 73 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 68  ses.<br><br>..<h
2360: 72 3e 0d 0a 3c 68 31 3e 32 20 2d 20 54 68 65 20  r>..<h1>2 - The 
2370: 73 61 6d 70 6c 65 2f 74 65 73 74 20 44 42 3c 2f  sample/test DB</
2380: 68 31 3e 0d 0a 59 6f 75 20 61 72 65 20 65 78 70  h1>..You are exp
2390: 65 63 74 65 64 20 74 6f 20 66 6f 6c 6c 6f 77 20  ected to follow 
23a0: 74 68 65 20 63 75 72 72 65 6e 74 20 74 75 74 6f  the current tuto
23b0: 72 69 61 6c 20 61 62 6f 75 74 20 3c 62 3e 56 69  rial about <b>Vi
23c0: 72 74 75 61 6c 52 6f 75 74 69 6e 67 3c 2f 62 3e  rtualRouting</b>
23d0: 20 62 79 20 64 69 72 65 63 74 6c 79 20 74 65 73   by directly tes
23e0: 74 69 6e 67 20 61 6c 6c 20 53 51 4c 20 71 75 65  ting all SQL que
23f0: 72 69 65 73 20 64 69 73 63 75 73 73 65 64 20 62  ries discussed b
2400: 65 6c 6f 77 20 6f 6e 20 62 65 68 61 6c 66 20 6f  elow on behalf o
2410: 66 20 74 68 65 20 3c 61 20 68 72 65 66 3d 22 68  f the <a href="h
2420: 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d  ttps://www.gaia-
2430: 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e 73  gis.it/gaia-sins
2440: 2f 72 6f 75 74 69 6e 67 2d 73 61 6d 70 6c 65 2d  /routing-sample-
2450: 35 2e 30 2e 30 2e 37 7a 22 3e 73 61 6d 70 6c 65  5.0.0.7z">sample
2460: 2f 74 65 73 74 20 44 42 20 74 68 61 74 20 79 6f  /test DB that yo
2470: 75 20 63 61 6e 20 64 6f 77 6e 6c 6f 61 64 20 66  u can download f
2480: 72 6f 6d 20 68 65 72 65 3c 2f 61 3e 3c 62 72 3e  rom here</a><br>
2490: 3c 62 72 3e 0d 0a 54 68 65 20 73 61 6d 70 6c 65  <br>..The sample
24a0: 20 44 42 20 63 6f 6e 74 61 69 6e 73 20 74 68 65   DB contains the
24b0: 20 66 75 6c 6c 20 3c 62 3e 72 6f 61 64 20 6e 65   full <b>road ne
24c0: 74 77 6f 72 6b 3c 2f 62 3e 20 6f 66 20 3c 62 3e  twork</b> of <b>
24d0: 54 75 73 63 61 6e 79 20 52 65 67 69 6f 6e 20 28  Tuscany Region (
24e0: 49 74 61 6c 79 29 3c 2f 62 3e 20 28 3c 61 20 68  Italy)</b> (<a h
24f0: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 35  ref="http://www5
2500: 30 32 2e 72 65 67 69 6f 6e 65 2e 74 6f 73 63 61  02.regione.tosca
2510: 6e 61 2e 69 74 2f 67 65 6f 73 63 6f 70 69 6f 2f  na.it/geoscopio/
2520: 64 6f 77 6e 6c 6f 61 64 2f 67 72 61 66 6f 5f 73  download/grafo_s
2530: 74 72 61 64 61 6c 65 2f 69 74 65 72 6e 65 74 2e  tradale/iternet.
2540: 7a 69 70 22 3e 49 74 65 72 2e 4e 65 74 20 64 61  zip">Iter.Net da
2550: 74 61 73 65 74 3c 2f 61 3e 29 20 6b 69 6e 64 6c  taset</a>) kindl
2560: 79 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72  y released under
2570: 20 74 68 65 20 3c 62 3e 43 43 2d 42 59 2d 53 41   the <b>CC-BY-SA
2580: 20 34 2e 30 3c 2f 62 3e 20 6c 69 63 65 6e 63 65   4.0</b> licence
2590: 20 74 65 72 6d 73 2e 3c 62 72 3e 0d 0a 54 68 65   terms.<br>..The
25a0: 20 63 6f 6e 74 65 6e 74 73 20 73 74 6f 72 65 64   contents stored
25b0: 20 69 6e 74 6f 20 74 68 65 20 73 61 6d 70 6c 65   into the sample
25c0: 20 64 61 74 61 62 61 73 65 20 77 65 72 65 20 6f   database were o
25d0: 70 70 6f 72 74 75 6e 65 6c 79 20 72 65 61 72 72  pportunely rearr
25e0: 61 6e 67 65 64 2c 20 61 6e 64 20 61 72 65 20 73  anged, and are s
25f0: 74 69 6c 6c 20 73 75 62 6a 65 63 74 20 74 6f 20  till subject to 
2600: 74 68 65 20 69 6e 69 74 69 61 6c 20 3c 62 3e 43  the initial <b>C
2610: 43 2d 42 59 2d 53 41 20 34 2e 30 3c 2f 62 3e 20  C-BY-SA 4.0</b> 
2620: 63 6c 61 75 73 65 73 20 28 3c 69 3e 64 65 72 69  clauses (<i>deri
2630: 76 65 64 20 77 6f 72 6b 3c 2f 69 3e 29 2e 0d 0a  ved work</i>)...
2640: 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 75 6c 3e 0d 0a  <br><br>..<ul>..
2650: 3c 6c 69 3e 61 6c 6c 20 72 6f 61 64 20 6e 61 6d  <li>all road nam
2660: 65 73 20 61 72 65 20 73 74 6f 72 65 64 20 77 69  es are stored wi
2670: 74 68 69 6e 20 74 68 65 20 3c 62 3e 74 6f 70 6f  thin the <b>topo
2680: 6e 79 6d 73 3c 2f 62 3e 20 54 61 62 6c 65 2e 3c  nyms</b> Table.<
2690: 62 72 3e 0d 0a 74 68 65 20 73 61 6d 65 20 72 6f  br>..the same ro
26a0: 61 64 20 6e 61 6d 65 20 63 6f 75 6c 64 20 62 65  ad name could be
26b0: 20 75 73 65 64 20 69 6e 20 64 69 66 66 65 72 65   used in differe
26c0: 6e 74 20 4d 75 6e 69 63 69 70 61 6c 69 74 69 65  nt Municipalitie
26d0: 73 2c 20 73 6f 20 74 68 65 20 3c 62 3e 74 6f 70  s, so the <b>top
26e0: 6f 6e 79 6d 73 3c 2f 62 3e 20 54 61 62 6c 65 20  onyms</b> Table 
26f0: 72 65 6c 61 74 69 6f 6e 61 6c 6c 79 20 72 65 66  relationally ref
2700: 65 72 65 6e 63 65 73 20 74 68 65 20 3c 62 3e 6d  erences the <b>m
2710: 75 6e 69 63 69 70 61 6c 69 74 69 65 73 3c 2f 62  unicipalities</b
2720: 3e 20 54 61 62 6c 65 20 28 76 69 61 20 3c 62 3e  > Table (via <b>
2730: 50 52 49 4d 41 52 59 3c 2f 62 3e 20 2f 20 3c 62  PRIMARY</b> / <b
2740: 3e 46 4f 52 45 49 47 4e 20 4b 45 59 3c 2f 62 3e  >FOREIGN KEY</b>
2750: 20 72 65 6c 61 74 69 6f 6e 73 68 69 70 73 29 2e   relationships).
2760: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c  </li>..<li>the <
2770: 62 3e 72 6f 61 64 73 3c 2f 62 3e 20 53 70 61 74  b>roads</b> Spat
2780: 69 61 6c 20 54 61 62 6c 65 20 63 6f 6e 74 61 69  ial Table contai
2790: 6e 73 20 61 62 6f 75 74 20 3c 62 3e 33 38 30 2c  ns about <b>380,
27a0: 30 30 30 3c 2f 62 3e 20 4c 69 6e 6b 73 2c 20 61  000</b> Links, a
27b0: 6e 64 20 68 61 73 20 74 68 65 20 66 6f 6c 6c 6f  nd has the follo
27c0: 77 69 6e 67 20 63 6f 6c 75 6d 6e 73 3a 0d 0a 3c  wing columns:..<
27d0: 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 69 64 3c 2f  ul>..<li><b>id</
27e0: 62 3e 3a 20 75 6e 69 71 75 65 20 69 64 65 6e 74  b>: unique ident
27f0: 69 66 69 65 72 20 6f 66 20 65 61 63 68 20 4c 69  ifier of each Li
2800: 6e 6b 20 28 3c 62 3e 50 52 49 4d 41 52 59 20 4b  nk (<b>PRIMARY K
2810: 45 59 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c  EY</b>).</li>..<
2820: 6c 69 3e 3c 62 3e 6e 6f 64 65 5f 66 72 6f 6d 3c  li><b>node_from<
2830: 2f 62 3e 20 61 6e 64 20 3c 62 3e 6e 6f 64 65 5f  /b> and <b>node_
2840: 74 6f 3c 2f 62 3e 3a 20 4e 6f 64 65 20 69 64 65  to</b>: Node ide
2850: 6e 74 69 66 69 65 72 73 2e 0d 0a 54 68 65 20 6f  ntifiers...The o
2860: 72 69 67 69 6e 61 6c 20 49 74 65 72 2e 4e 65 74  riginal Iter.Net
2870: 20 64 61 74 61 73 65 74 20 61 64 6f 70 74 73 20   dataset adopts 
2880: 76 65 72 79 20 6c 6f 6e 67 20 61 6e 20 63 6f 6d  very long an com
2890: 70 6c 65 78 20 61 6c 70 68 61 6e 75 6d 65 72 69  plex alphanumeri
28a0: 63 20 4e 6f 64 65 20 63 6f 64 65 73 3b 20 74 68  c Node codes; th
28b0: 65 20 69 6e 74 65 67 65 72 20 4e 6f 64 65 20 49  e integer Node I
28c0: 44 73 20 77 65 72 65 20 6f 62 74 61 69 6e 65 64  Ds were obtained
28d0: 20 62 79 20 63 61 6c 6c 69 6e 67 20 74 68 65 20   by calling the 
28e0: 3c 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67  <b>CreateRouting
28f0: 4e 6f 64 65 73 28 29 3c 2f 62 3e 20 53 51 4c 20  Nodes()</b> SQL 
2900: 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 75 73 73  function discuss
2910: 65 64 20 69 6e 20 61 20 66 6f 6c 6c 6f 77 69 6e  ed in a followin
2920: 67 20 73 65 63 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d  g section.</li>.
2930: 0a 3c 6c 69 3e 3c 62 3e 69 64 5f 74 6f 70 6f 6e  .<li><b>id_topon
2940: 79 6d 3c 2f 62 3e 3a 20 72 65 6c 61 74 69 6f 6e  ym</b>: relation
2950: 61 6c 20 72 65 66 65 72 65 6e 63 65 20 74 6f 20  al reference to 
2960: 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e  the correspondin
2970: 67 20 72 6f 61 64 20 6e 61 6d 65 20 63 6f 6e 74  g road name cont
2980: 61 69 6e 65 64 20 69 6e 74 6f 20 74 68 65 20 3c  ained into the <
2990: 62 3e 74 6f 70 6f 6e 79 6d 73 3c 2f 62 3e 20 54  b>toponyms</b> T
29a0: 61 62 6c 65 20 28 3c 62 3e 46 4f 52 45 49 47 4e  able (<b>FOREIGN
29b0: 20 4b 45 59 3c 2f 62 3e 29 2e 3c 2f 6c 69 3e 0d   KEY</b>).</li>.
29c0: 0a 3c 6c 69 3e 3c 62 3e 73 70 65 65 64 5f 6b 6d  .<li><b>speed_km
29d0: 68 3c 2f 62 3e 3a 20 74 68 65 20 65 73 74 69 6d  h</b>: the estim
29e0: 61 74 65 64 20 61 76 65 72 61 67 65 20 73 70 65  ated average spe
29f0: 65 64 20 73 75 70 70 6f 72 74 65 64 20 62 79 20  ed supported by 
2a00: 74 68 65 20 4c 69 6e 6b 2c 20 65 78 70 72 65 73  the Link, expres
2a10: 73 65 64 20 69 6e 20 3c 62 3e 6b 6d 2f 68 3c 2f  sed in <b>km/h</
2a20: 62 3e 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65  b>.<br>..<u>Note
2a30: 3c 2f 75 3e 3a 20 3c 62 3e 6e 65 67 61 74 69 76  </u>: <b>negativ
2a40: 65 3c 2f 62 3e 20 73 70 65 65 64 73 20 69 6e 74  e</b> speeds int
2a50: 65 6e 64 20 61 20 66 6f 72 62 69 64 64 65 6e 20  end a forbidden 
2a60: 4c 69 6e 6b 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  Link.</li>..<li>
2a70: 3c 62 3e 6f 6e 65 77 61 79 5f 66 72 6f 6d 74 6f  <b>oneway_fromto
2a80: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6f 6e 65 77  </b> and <b>onew
2a90: 61 79 5f 74 6f 66 72 6f 6d 3c 2f 62 3e 3a 20 62  ay_tofrom</b>: b
2aa0: 6f 6f 6c 65 61 6e 20 66 6c 61 67 73 20 69 6e 74  oolean flags int
2ab0: 65 6e 64 65 64 20 74 6f 20 73 74 61 74 65 20 69  ended to state i
2ac0: 66 20 61 20 4c 69 6e 6b 20 63 61 6e 20 62 65 20  f a Link can be 
2ad0: 74 72 61 76 65 72 73 65 64 20 69 6e 20 62 6f 74  traversed in bot
2ae0: 68 20 64 69 72 65 63 74 69 6f 6e 73 20 6f 72 20  h directions or 
2af0: 6a 75 73 74 20 69 6e 20 61 20 73 69 6e 67 6c 65  just in a single
2b00: 20 64 69 72 65 63 74 69 6f 6e 20 28 3c 62 3e 6f   direction (<b>o
2b10: 6e 65 2d 77 61 79 3c 2f 62 3e 29 2e 3c 62 72 3e  ne-way</b>).<br>
2b20: 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 61  ..<u>Note</u>: a
2b30: 6c 6c 20 4c 69 6e 6b 73 20 64 65 63 6c 61 72 69  ll Links declari
2b40: 6e 67 20 3c 62 3e 6f 6e 65 77 61 79 5f 66 72 6f  ng <b>oneway_fro
2b50: 6d 74 6f 3d 30 3c 2f 62 3e 20 61 6e 64 20 3c 62  mto=0</b> and <b
2b60: 3e 6f 6e 65 77 61 79 5f 74 6f 66 72 6f 6d 3d 30  >oneway_tofrom=0
2b70: 3c 2f 62 3e 20 61 72 65 20 69 6e 74 65 6e 64 65  </b> are intende
2b80: 64 20 74 6f 20 62 65 20 61 6c 77 61 79 73 20 66  d to be always f
2b90: 6f 72 62 69 64 64 65 6e 2e 3c 2f 6c 69 3e 0d 0a  orbidden.</li>..
2ba0: 3c 6c 69 3e 3c 62 3e 63 6f 73 74 3c 2f 62 3e 3a  <li><b>cost</b>:
2bb0: 20 74 68 65 20 3c 62 3e 74 69 6d 65 3c 2f 62 3e   the <b>time</b>
2bc0: 20 65 78 70 72 65 73 73 65 64 20 69 6e 20 3c 62   expressed in <b
2bd0: 3e 73 65 63 6f 6e 64 73 3c 2f 62 3e 20 72 65 71  >seconds</b> req
2be0: 75 69 72 65 64 20 74 6f 20 74 72 61 76 65 72 73  uired to travers
2bf0: 65 20 65 61 63 68 20 4c 69 6e 6b 2e 3c 62 72 3e  e each Link.<br>
2c00: 0d 0a 3c 75 3e 4e 6f 74 65 20 23 31 3c 2f 75 3e  ..<u>Note #1</u>
2c10: 20 61 6c 6c 20 63 6f 73 74 73 20 77 65 72 65 20   all costs were 
2c20: 63 61 6c 63 75 6c 61 74 65 64 20 61 63 63 6f 72  calculated accor
2c30: 64 69 6e 67 6c 79 20 74 6f 20 74 68 65 20 66 6f  dingly to the fo
2c40: 6c 6c 6f 77 69 6e 67 20 66 6f 72 6d 75 6c 61 3a  llowing formula:
2c50: 20 3c 62 3e 63 6f 73 74 20 3d 20 28 28 53 54 5f   <b>cost = ((ST_
2c60: 4c 65 6e 67 74 68 28 67 65 6f 6d 29 20 2f 20 31  Length(geom) / 1
2c70: 30 30 30 2e 30 29 20 2f 20 73 70 65 65 64 5f 6b  000.0) / speed_k
2c80: 6d 68 29 20 2a 20 33 36 30 30 2e 30 3c 2f 62 3e  mh) * 3600.0</b>
2c90: 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 20 23 32  <br>..<u>Note #2
2ca0: 3c 2f 75 3e 20 61 6c 6c 20 3c 62 3e 38 36 2c 34  </u> all <b>86,4
2cb0: 30 30 2e 30 3c 2f 62 3e 20 63 6f 73 74 20 76 61  00.0</b> cost va
2cc0: 6c 75 65 73 20 28 65 71 75 69 76 61 6c 65 6e 74  lues (equivalent
2cd0: 20 74 6f 20 31 20 64 61 79 29 20 61 70 70 72 6f   to 1 day) appro
2ce0: 78 69 6d 61 74 65 20 61 6e 20 3c 62 3e 69 6e 66  ximate an <b>inf
2cf0: 69 6e 69 74 69 76 65 20 63 6f 73 74 3c 2f 62 3e  initive cost</b>
2d00: 20 74 68 75 73 20 69 6e 74 65 6e 64 69 6e 67 20   thus intending 
2d10: 61 20 3c 62 3e 66 6f 72 62 69 64 64 65 6e 3c 2f  a <b>forbidden</
2d20: 62 3e 20 4c 69 6e 6b 2e 3c 2f 6c 69 3e 0d 0a 3c  b> Link.</li>..<
2d30: 6c 69 3e 3c 62 3e 67 65 6f 6d 3c 2f 62 3e 3a 20  li><b>geom</b>: 
2d40: 61 20 3c 62 3e 33 44 20 4c 69 6e 65 73 74 72 69  a <b>3D Linestri
2d50: 6e 67 3c 2f 62 3e 20 72 65 70 72 65 73 65 6e 74  ng</b> represent
2d60: 69 6e 67 20 74 68 65 20 47 65 6f 6d 65 74 72 79  ing the Geometry
2d70: 20 6f 66 20 65 61 63 68 20 4c 69 6e 6b 2e 3c 62   of each Link.<b
2d80: 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a  r>..<u>Note</u>:
2d90: 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 3c 62   the original <b
2da0: 3e 49 74 65 72 2e 4e 65 74 3c 2f 62 3e 20 64 61  >Iter.Net</b> da
2db0: 74 61 73 65 74 20 69 73 20 6a 75 73 74 20 3c 62  taset is just <b
2dc0: 3e 32 44 3c 2f 62 3e 3b 20 65 6c 65 76 61 74 69  >2D</b>; elevati
2dd0: 6f 6e 73 20 28 3c 62 3e 5a 3c 2f 62 3e 20 63 6f  ons (<b>Z</b> co
2de0: 6f 72 64 69 6e 61 74 65 73 29 20 77 65 72 65 20  ordinates) were 
2df0: 69 6e 74 65 72 70 6f 6c 61 74 65 64 20 62 79 20  interpolated by 
2e00: 64 72 61 70 69 6e 67 20 74 68 65 20 64 61 74 61  draping the data
2e10: 73 65 74 20 6f 76 65 72 20 61 6e 20 3c 61 20 68  set over an <a h
2e20: 72 65 66 3d 22 68 74 74 70 3a 2f 2f 77 77 77 35  ref="http://www5
2e30: 30 32 2e 72 65 67 69 6f 6e 65 2e 74 6f 73 63 61  02.regione.tosca
2e40: 6e 61 2e 69 74 2f 67 65 6f 73 63 6f 70 69 6f 2f  na.it/geoscopio/
2e50: 64 6f 77 6e 6c 6f 61 64 2f 61 6c 74 69 6d 65 74  download/altimet
2e60: 72 69 61 2f 64 61 5f 63 74 72 31 30 6b 2f 67 62  ria/da_ctr10k/gb
2e70: 2f 44 54 4d 5f 4f 72 6f 67 72 61 66 69 63 6f 2e  /DTM_Orografico.
2e80: 37 7a 22 3e 6f 72 6f 67 72 61 70 68 69 63 20 44  7z">orographic D
2e90: 45 4d 20 28 31 30 6d 20 58 20 31 30 6d 20 63 65  EM (10m X 10m ce
2ea0: 6c 6c 73 29 3c 2f 61 3e 3c 2f 6c 69 3e 0d 0a 3c  lls)</a></li>..<
2eb0: 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74  /ul></li>..<li>t
2ec0: 68 65 20 3c 62 3e 72 6f 61 64 73 5f 76 77 3c 2f  he <b>roads_vw</
2ed0: 62 3e 20 53 70 61 74 69 61 6c 20 56 69 65 77 20  b> Spatial View 
2ee0: 69 73 20 6a 75 73 74 20 69 6e 74 65 6e 64 65 64  is just intended
2ef0: 20 74 6f 20 66 75 6c 6c 79 20 72 65 73 6f 6c 76   to fully resolv
2f00: 65 20 61 6c 6c 20 72 65 6c 61 74 69 6f 6e 61 6c  e all relational
2f10: 20 72 65 66 65 72 65 6e 63 65 73 20 62 65 74 77   references betw
2f20: 65 65 6e 20 3c 62 3e 72 6f 61 64 73 3c 2f 62 3e  een <b>roads</b>
2f30: 2c 20 3c 62 3e 74 6f 70 6f 6e 79 6d 73 3c 2f 62  , <b>toponyms</b
2f40: 3e 20 61 6e 64 20 3c 62 3e 6d 75 6e 69 63 69 70  > and <b>municip
2f50: 61 6c 69 74 69 65 73 3c 2f 62 3e 2c 20 74 68 75  alities</b>, thu
2f60: 73 20 61 6c 6c 6f 77 69 6e 67 20 66 6f 72 20 65  s allowing for e
2f70: 61 73 69 65 72 20 53 51 4c 20 71 75 65 72 69 65  asier SQL querie
2f80: 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65  s.</li>..<li>the
2f90: 20 3c 62 3e 68 6f 75 73 65 5f 6e 72 3c 2f 62 3e   <b>house_nr</b>
2fa0: 20 53 70 61 74 69 61 6c 20 54 61 62 6c 65 20 63   Spatial Table c
2fb0: 6f 6e 74 61 69 6e 73 20 61 62 6f 75 74 20 3c 62  ontains about <b
2fc0: 3e 31 2c 34 38 30 2c 30 30 30 3c 2f 62 3e 20 48  >1,480,000</b> H
2fd0: 6f 75 73 65 20 4e 75 6d 62 65 72 73 2c 20 61 6e  ouse Numbers, an
2fe0: 64 20 68 61 73 20 74 68 65 20 66 6f 6c 6c 6f 77  d has the follow
2ff0: 69 6e 67 20 63 6f 6c 75 6d 6e 73 3a 0d 0a 3c 75  ing columns:..<u
3000: 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 69 64 3c 2f 62  l>..<li><b>id</b
3010: 3e 3a 20 75 6e 69 71 75 65 20 69 64 65 6e 74 69  >: unique identi
3020: 66 69 65 72 20 6f 66 20 65 61 63 68 20 48 6f 75  fier of each Hou
3030: 73 65 20 4e 75 6d 62 65 72 20 28 3c 62 3e 50 52  se Number (<b>PR
3040: 49 4d 41 52 59 20 4b 45 59 3c 2f 62 3e 29 2e 3c  IMARY KEY</b>).<
3050: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 69 64 5f  /li>..<li><b>id_
3060: 72 6f 61 64 3c 2f 62 3e 3a 20 72 65 6c 61 74 69  road</b>: relati
3070: 6f 6e 61 6c 20 72 65 66 65 72 65 6e 63 65 20 74  onal reference t
3080: 6f 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64  o the correspond
3090: 69 6e 67 20 4c 69 6e 6b 20 63 6f 6e 74 61 69 6e  ing Link contain
30a0: 65 64 20 69 6e 74 6f 20 74 68 65 20 3c 62 3e 72  ed into the <b>r
30b0: 6f 61 64 73 3c 2f 62 3e 20 54 61 62 6c 65 20 28  oads</b> Table (
30c0: 3c 62 3e 46 4f 52 45 49 47 4e 20 4b 45 59 3c 2f  <b>FOREIGN KEY</
30d0: 62 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  b>).</li>..<li><
30e0: 62 3e 6c 61 62 65 6c 3c 2f 62 3e 3a 20 74 68 65  b>label</b>: the
30f0: 20 74 65 78 74 75 61 6c 20 6c 61 62 65 6c 20 66   textual label f
3100: 75 6c 6c 79 20 71 75 61 6c 69 66 79 69 6e 67 20  ully qualifying 
3110: 65 61 63 68 20 48 6f 75 73 65 20 4e 75 6d 62 65  each House Numbe
3120: 72 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e  r.</li>..<li><b>
3130: 67 65 6f 6d 3c 2f 62 3e 3a 20 61 20 3c 62 3e 33  geom</b>: a <b>3
3140: 44 20 50 6f 69 6e 74 3c 2f 62 3e 20 72 65 70 72  D Point</b> repr
3150: 65 73 65 6e 74 69 6e 67 20 74 68 65 20 47 65 6f  esenting the Geo
3160: 6d 65 74 72 79 20 6f 66 20 65 61 63 68 20 48 6f  metry of each Ho
3170: 75 73 65 20 4e 75 6d 62 65 72 2e 3c 62 72 3e 0d  use Number.<br>.
3180: 0a 3c 75 3e 4e 6f 74 65 20 23 31 3c 2f 75 3e 3a  .<u>Note #1</u>:
3190: 20 61 6c 73 6f 20 69 6e 20 74 68 69 73 20 63 61   also in this ca
31a0: 73 65 20 61 6c 6c 20 65 6c 65 76 61 74 69 6f 6e  se all elevation
31b0: 73 20 28 3c 62 3e 5a 3c 2f 62 3e 20 63 6f 6f 72  s (<b>Z</b> coor
31c0: 64 69 6e 61 74 65 73 29 20 77 65 72 65 20 69 6e  dinates) were in
31d0: 74 65 72 70 6f 6c 61 74 65 64 20 62 79 20 64 72  terpolated by dr
31e0: 61 70 69 6e 67 20 74 68 65 20 64 61 74 61 73 65  aping the datase
31f0: 74 20 6f 76 65 72 20 74 68 65 20 73 61 6d 65 20  t over the same 
3200: 44 45 4d 20 61 73 20 61 62 6f 76 65 2e 3c 62 72  DEM as above.<br
3210: 3e 0d 0a 3c 75 3e 4e 6f 74 65 20 23 32 3c 2f 75  >..<u>Note #2</u
3220: 3e 3a 20 73 74 72 69 63 74 6c 79 20 73 70 65 63  >: strictly spec
3230: 6b 69 6e 67 20 74 68 65 20 48 6f 75 73 65 20 4e  king the House N
3240: 75 6d 62 65 72 73 20 61 72 65 20 6e 6f 74 20 70  umbers are not p
3250: 61 72 74 20 6f 66 20 74 68 65 20 52 6f 61 64 20  art of the Road 
3260: 4e 65 74 77 6f 72 6b 3b 20 74 68 65 79 20 61 72  Network; they ar
3270: 65 20 69 6e 63 6c 75 64 65 20 69 6e 74 6f 20 74  e include into t
3280: 68 65 20 73 61 6d 70 6c 65 2f 74 65 73 74 20 64  he sample/test d
3290: 61 74 61 62 61 73 65 20 6a 75 73 74 20 62 65 63  atabase just bec
32a0: 61 75 73 65 20 74 68 65 79 27 6c 6c 20 62 65 20  ause they'll be 
32b0: 75 73 65 66 75 6c 20 69 6e 20 73 6f 6d 65 20 6f  useful in some o
32c0: 66 20 74 68 65 20 65 78 61 6d 70 6c 65 73 20 65  f the examples e
32d0: 78 70 6c 61 69 6e 65 64 20 69 6e 20 62 65 6c 6f  xplained in belo
32e0: 77 20 70 61 72 61 67 72 61 70 68 73 2e 3c 2f 6c  w paragraphs.</l
32f0: 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a  i>..</ul></li>..
3300: 3c 6c 69 3e 74 68 65 20 3c 62 3e 68 6f 75 73 65  <li>the <b>house
3310: 5f 6e 72 5f 76 77 3c 2f 62 3e 20 53 70 61 74 69  _nr_vw</b> Spati
3320: 61 6c 20 56 69 65 77 20 69 73 20 6a 75 73 74 20  al View is just 
3330: 69 6e 74 65 6e 64 65 64 20 74 6f 20 66 75 6c 6c  intended to full
3340: 79 20 72 65 73 6f 6c 76 65 20 61 6c 6c 20 72 65  y resolve all re
3350: 6c 61 74 69 6f 6e 61 6c 20 72 65 66 65 72 65 6e  lational referen
3360: 63 65 73 20 62 65 74 77 65 65 6e 20 3c 62 3e 68  ces between <b>h
3370: 6f 75 73 65 5f 6e 72 3c 2f 62 3e 2c 20 3c 62 3e  ouse_nr</b>, <b>
3380: 72 6f 61 64 73 3c 2f 62 3e 2c 20 3c 62 3e 74 6f  roads</b>, <b>to
3390: 70 6f 6e 79 6d 73 3c 2f 62 3e 20 61 6e 64 20 3c  ponyms</b> and <
33a0: 62 3e 6d 75 6e 69 63 69 70 61 6c 69 74 69 65 73  b>municipalities
33b0: 3c 2f 62 3e 2c 20 74 68 75 73 20 61 6c 6c 6f 77  </b>, thus allow
33c0: 69 6e 67 20 66 6f 72 20 65 61 73 69 65 72 20 53  ing for easier S
33d0: 51 4c 20 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e  QL queries.</li>
33e0: 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 0d 0a 20  ..</ul>..<br>.. 
33f0: 3c 68 72 3e 0d 0a 3c 68 31 3e 3c 61 20 6e 61 6d  <hr>..<h1><a nam
3400: 65 3d 22 63 72 65 61 74 65 22 3e 33 20 2d 20 43  e="create">3 - C
3410: 72 65 61 74 69 6e 67 20 56 69 72 74 75 61 6c 52  reating VirtualR
3420: 6f 75 74 69 6e 67 20 54 61 62 6c 65 73 3c 2f 61  outing Tables</a
3430: 3e 3c 2f 68 31 3e 0d 0a 41 6c 6c 20 56 69 72 74  ></h1>..All Virt
3440: 75 61 6c 52 6f 75 74 69 6e 67 20 71 75 65 72 69  ualRouting queri
3450: 65 73 20 61 72 65 20 62 61 73 65 64 20 6f 6e 20  es are based on 
3460: 73 6f 6d 65 20 3c 62 3e 56 69 72 74 75 61 6c 52  some <b>VirtualR
3470: 6f 75 74 69 6e 67 20 54 61 62 6c 65 3c 2f 62 3e  outing Table</b>
3480: 2c 20 61 6e 64 20 69 6e 20 74 75 72 6e 20 61 6e  , and in turn an
3490: 79 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67  y VirtualRouting
34a0: 20 54 61 62 6c 65 20 69 73 20 62 61 73 65 64 20   Table is based 
34b0: 6f 6e 20 73 6f 6d 65 20 61 70 70 72 6f 70 72 69  on some appropri
34c0: 61 74 65 20 3c 62 3e 42 69 6e 61 72 79 20 44 61  ate <b>Binary Da
34d0: 74 61 20 54 61 62 6c 65 3c 2f 62 3e 20 73 75 70  ta Table</b> sup
34e0: 70 6f 72 74 69 6e 67 20 61 6e 20 65 66 66 69 63  porting an effic
34f0: 69 65 6e 74 20 72 65 70 72 65 73 65 6e 74 61 74  ient representat
3500: 69 6f 6e 20 6f 66 20 74 68 65 20 75 6e 64 65 72  ion of the under
3510: 6c 79 69 6e 67 20 4e 65 74 77 6f 72 6b 2e 3c 62  lying Network.<b
3520: 72 3e 0d 0a 53 6f 20 77 65 27 6c 6c 20 73 74 61  r>..So we'll sta
3530: 72 74 20 66 69 72 73 74 20 62 79 20 63 72 65 61  rt first by crea
3540: 74 69 6e 67 20 73 75 63 68 20 74 61 62 6c 65 73  ting such tables
3550: 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 54 68 65 20 6f  .<br><br>..The o
3560: 6c 64 20 61 6e 64 20 6e 6f 77 20 73 75 70 65 72  ld and now super
3570: 73 65 64 65 64 20 3c 62 3e 56 69 72 74 75 61 6c  seded <b>Virtual
3580: 4e 65 74 77 6f 72 6b 3c 2f 62 3e 20 72 65 71 75  Network</b> requ
3590: 69 72 65 64 20 75 73 69 6e 67 20 61 20 73 65 70  ired using a sep
35a0: 61 72 61 74 65 20 43 4c 49 20 74 6f 6f 6c 20 28  arate CLI tool (
35b0: 3c 62 3e 73 70 61 74 69 61 6c 69 74 65 5f 6e 65  <b>spatialite_ne
35c0: 74 77 6f 72 6b 3c 2f 62 3e 29 20 69 6e 20 6f 72  twork</b>) in or
35d0: 64 65 72 20 74 6f 20 70 72 6f 70 65 72 6c 79 20  der to properly 
35e0: 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 56 69 72  initialize a Vir
35f0: 74 75 61 6c 4e 65 74 77 6f 72 6b 20 54 61 62 6c  tualNetwork Tabl
3600: 65 20 61 6e 64 20 69 74 73 20 63 6f 6d 70 61 6e  e and its compan
3610: 69 6f 6e 20 42 69 6e 61 72 79 20 44 61 74 61 20  ion Binary Data 
3620: 54 61 62 6c 65 3b 0d 0a 61 6c 74 65 72 6e 61 74  Table;..alternat
3630: 69 76 65 6c 79 20 3c 62 3e 73 70 61 74 69 61 6c  ively <b>spatial
3640: 69 74 65 5f 67 75 69 3c 2f 62 3e 20 73 75 70 70  ite_gui</b> supp
3650: 6f 72 74 65 64 20 61 20 3c 62 3e 47 55 49 20 77  orted a <b>GUI w
3660: 69 7a 61 72 64 3c 2f 62 3e 20 66 6f 72 20 74 68  izard</b> for th
3670: 65 20 73 61 6d 65 20 74 61 73 6b 2e 20 53 69 6e  e same task. Sin
3680: 63 65 20 76 65 72 73 69 6f 6e 20 3c 62 3e 35 2e  ce version <b>5.
3690: 30 2e 30 3c 2f 62 3e 20 6e 6f 77 20 53 70 61 74  0.0</b> now Spat
36a0: 69 61 4c 69 74 65 20 64 69 72 65 63 74 6c 79 20  iaLite directly 
36b0: 73 75 70 70 6f 72 74 73 20 61 20 73 70 65 63 69  supports a speci
36c0: 66 69 63 20 3c 62 3e 43 72 65 61 74 65 52 6f 75  fic <b>CreateRou
36d0: 74 69 6e 67 28 29 3c 2f 62 3e 20 53 51 4c 20 66  ting()</b> SQL f
36e0: 75 6e 63 74 69 6f 6e 2e 0d 0a 3c 76 65 72 62 61  unction...<verba
36f0: 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20 43 72 65  tim>..SELECT Cre
3700: 61 74 65 52 6f 75 74 69 6e 67 28 27 62 79 66 6f  ateRouting('byfo
3710: 6f 74 5f 64 61 74 61 27 2c 20 27 62 79 66 6f 6f  ot_data', 'byfoo
3720: 74 27 2c 20 27 72 6f 61 64 73 5f 76 77 27 2c 20  t', 'roads_vw', 
3730: 27 6e 6f 64 65 5f 66 72 6f 6d 27 2c 20 27 6e 6f  'node_from', 'no
3740: 64 65 74 6f 27 2c 20 27 67 65 6f 6d 27 2c 20 4e  deto', 'geom', N
3750: 55 4c 4c 29 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20  ULL);....SELECT 
3760: 43 72 65 61 74 65 52 6f 75 74 69 6e 67 5f 47 65  CreateRouting_Ge
3770: 74 4c 61 73 74 45 72 72 6f 72 28 29 3b 0d 0a 2d  tLastError();..-
3780: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3790: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
37a0: 2d 2d 2d 0d 0a 54 6f 4e 6f 64 65 20 43 6f 6c 75  ---..ToNode Colu
37b0: 6d 6e 20 22 6e 6f 64 65 74 6f 22 20 69 73 20 6e  mn "nodeto" is n
37c0: 6f 74 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68  ot defined in th
37d0: 65 20 49 6e 70 75 74 20 54 61 62 6c 65 0d 0a 3c  e Input Table..<
37e0: 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 3c 75 3e 4e  /verbatim>..<u>N
37f0: 6f 74 65 3c 2f 75 3e 3a 20 74 68 69 73 20 66 69  ote</u>: this fi
3800: 72 73 74 20 71 75 65 72 79 20 28 62 61 73 65 64  rst query (based
3810: 20 6f 6e 20 74 68 65 20 3c 69 3e 72 65 64 75 63   on the <i>reduc
3820: 65 64 20 66 6f 72 6d 3c 2f 69 3e 20 6f 66 20 3c  ed form</i> of <
3830: 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67 3c  b>CreateRouting<
3840: 2f 62 3e 29 20 63 6f 6e 74 61 69 6e 73 20 61 6e  /b>) contains an
3850: 20 69 6e 74 65 6e 64 65 64 20 65 72 72 6f 72 20   intended error 
3860: 63 61 75 73 69 6e 67 20 61 20 66 61 69 6c 75 72  causing a failur
3870: 65 20 61 6e 64 20 74 68 75 73 20 72 61 69 73 69  e and thus raisi
3880: 6e 67 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 2e  ng an exception.
3890: 3c 62 72 3e 0d 0a 43 72 65 61 74 65 52 6f 75 74  <br>..CreateRout
38a0: 69 6e 67 28 29 20 63 61 6e 20 66 61 69 6c 20 66  ing() can fail f
38b0: 6f 72 20 6d 75 6c 74 69 70 6c 65 20 72 65 61 73  or multiple reas
38c0: 6f 6e 73 2c 20 61 6e 64 20 62 79 20 63 61 6c 6c  ons, and by call
38d0: 69 6e 67 20 3c 62 3e 43 72 65 61 74 65 52 6f 75  ing <b>CreateRou
38e0: 74 69 6e 67 5f 47 65 74 4c 61 73 74 45 72 72 6f  ting_GetLastErro
38f0: 72 28 29 3c 2f 62 3e 20 79 6f 75 20 63 61 6e 20  r()</b> you can 
3900: 65 61 73 69 6c 79 20 69 64 65 6e 74 69 66 79 20  easily identify 
3910: 74 68 65 20 65 78 61 63 74 20 72 65 61 73 6f 6e  the exact reason
3920: 20 77 68 79 20 74 68 65 20 6d 6f 73 74 20 72 65   why the most re
3930: 63 65 6e 74 20 63 61 6c 6c 20 74 6f 20 43 72 65  cent call to Cre
3940: 61 74 65 52 6f 75 74 69 6e 67 28 29 20 66 61 69  ateRouting() fai
3950: 6c 65 64 2e 3c 62 72 3e 0d 0a 3c 76 65 72 62 61  led.<br>..<verba
3960: 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20 43 72 65  tim>..SELECT Cre
3970: 61 74 65 52 6f 75 74 69 6e 67 28 27 62 79 66 6f  ateRouting('byfo
3980: 6f 74 5f 64 61 74 61 27 2c 20 27 62 79 66 6f 6f  ot_data', 'byfoo
3990: 74 27 2c 20 27 72 6f 61 64 73 5f 76 77 27 2c 20  t', 'roads_vw', 
39a0: 27 6e 6f 64 65 5f 66 72 6f 6d 27 2c 20 27 6e 6f  'node_from', 'no
39b0: 64 65 5f 74 6f 27 2c 20 27 67 65 6f 6d 27 2c 20  de_to', 'geom', 
39c0: 4e 55 4c 4c 2c 20 27 74 6f 70 6f 6e 79 6d 27 2c  NULL, 'toponym',
39d0: 20 31 2c 20 31 29 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d   1, 1);..-------
39e0: 2d 2d 2d 2d 2d 2d 0d 0a 31 0d 0a 0d 0a 53 45 4c  ------..1....SEL
39f0: 45 43 54 20 43 72 65 61 74 65 52 6f 75 74 69 6e  ECT CreateRoutin
3a00: 67 5f 47 65 74 4c 61 73 74 45 72 72 6f 72 28 29  g_GetLastError()
3a10: 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ;..-------------
3a20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
3a30: 2d 2d 2d 2d 2d 2d 2d 0d 0a 4e 55 4c 4c 0d 0a 3c  -------..NULL..<
3a40: 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 54 68 69 73  /verbatim>..This
3a50: 20 73 65 63 6f 6e 64 20 61 74 74 65 6d 70 74 20   second attempt 
3a60: 69 73 20 66 69 6e 61 6c 6c 79 20 73 75 63 63 65  is finally succe
3a70: 73 73 66 75 6c 2c 20 61 6e 64 20 6e 6f 77 20 43  ssful, and now C
3a80: 72 65 61 74 65 52 6f 75 74 69 6e 67 28 29 20 72  reateRouting() r
3a90: 65 74 75 72 6e 73 20 3c 62 3e 31 3c 2f 62 3e 20  eturns <b>1</b> 
3aa0: 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 54  (<i>aka</i> <b>T
3ab0: 52 55 45 3c 2f 62 3e 29 2c 20 61 6e 64 20 61 73  RUE</b>), and as
3ac0: 20 79 6f 75 20 63 61 6e 20 65 61 73 69 6c 79 20   you can easily 
3ad0: 63 68 65 63 6b 20 6e 6f 77 20 74 68 65 20 44 61  check now the Da
3ae0: 74 61 62 61 73 65 20 63 6f 6e 74 61 69 6e 73 20  tabase contains 
3af0: 74 77 6f 20 6e 65 77 20 54 61 62 6c 65 73 3a 20  two new Tables: 
3b00: 3c 62 3e 62 79 66 6f 6f 74 3c 2f 62 3e 20 61 6e  <b>byfoot</b> an
3b10: 64 20 3c 62 3e 62 79 66 6f 6f 74 5f 64 61 74 61  d <b>byfoot_data
3b20: 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f  </b>.<br>..<u>No
3b30: 74 65 3c 2f 75 3e 3a 20 61 66 74 65 72 20 61 20  te</u>: after a 
3b40: 73 75 63 63 65 73 73 66 75 6c 20 63 61 6c 6c 20  successful call 
3b50: 74 6f 20 43 72 65 61 74 65 52 6f 75 74 69 6e 67  to CreateRouting
3b60: 28 29 20 3c 62 3e 43 72 65 61 74 65 52 6f 75 74  () <b>CreateRout
3b70: 69 6e 67 5f 47 65 74 4c 61 73 74 45 72 72 6f 72  ing_GetLastError
3b80: 28 29 3c 2f 62 3e 20 77 69 6c 6c 20 61 6c 77 61  ()</b> will alwa
3b90: 79 73 20 72 65 74 75 72 6e 20 3c 62 3e 4e 55 4c  ys return <b>NUL
3ba0: 4c 3c 2f 62 3e 2e 3c 62 72 3e 3c 62 72 3e 0d 0a  L</b>.<br><br>..
3bb0: 59 6f 75 27 76 65 20 6a 75 73 74 20 75 73 65 64  You've just used
3bc0: 20 6f 6e 65 20 6f 66 20 74 68 65 20 3c 69 3e 70   one of the <i>p
3bd0: 61 72 74 69 61 6c 6c 79 20 72 65 64 75 63 65 64  artially reduced
3be0: 20 66 6f 72 6d 3c 2f 69 3e 20 6f 66 20 43 72 65   form</i> of Cre
3bf0: 61 74 65 52 6f 75 74 69 6e 67 28 29 3b 20 6c 65  ateRouting(); le
3c00: 74 27 73 20 73 65 65 20 69 6e 20 6d 6f 72 65 20  t's see in more 
3c10: 64 65 70 74 68 20 61 6c 6c 20 74 68 65 20 61 72  depth all the ar
3c20: 67 75 6d 65 6e 74 73 20 61 6e 64 20 74 68 65 69  guments and thei
3c30: 72 20 6d 65 61 6e 69 6e 67 3a 0d 0a 3c 6f 6c 3e  r meaning:..<ol>
3c40: 0d 0a 3c 6c 69 3e 3c 69 3e 62 79 66 6f 6f 74 5f  ..<li><i>byfoot_
3c50: 64 61 74 61 3c 2f 69 3e 3a 20 74 68 65 20 6e 61  data</i>: the na
3c60: 6d 65 20 6f 66 20 74 68 65 20 4e 65 74 77 6f 72  me of the Networ
3c70: 6b 20 42 69 6e 61 72 79 20 44 61 74 61 20 54 61  k Binary Data Ta
3c80: 62 6c 65 20 74 6f 20 62 65 20 63 72 65 61 74 65  ble to be create
3c90: 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e  d.</li>..<li><i>
3ca0: 62 79 66 6f 6f 74 3c 2f 69 3e 3a 20 74 68 65 20  byfoot</i>: the 
3cb0: 6e 61 6d 65 20 6f 66 20 74 68 65 20 56 69 72 74  name of the Virt
3cc0: 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65  ualRouting Table
3cd0: 20 74 6f 20 62 65 20 63 72 65 61 74 65 64 2e 3c   to be created.<
3ce0: 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 72 6f 61  /li>..<li><i>roa
3cf0: 64 73 5f 76 77 3c 2f 69 3e 3a 20 74 68 65 20 6e  ds_vw</i>: the n
3d00: 61 6d 65 20 6f 66 20 74 68 65 20 3c 62 3e 53 70  ame of the <b>Sp
3d10: 61 74 69 61 6c 20 54 61 62 6c 65 3c 2f 62 3e 20  atial Table</b> 
3d20: 6f 72 20 3c 62 3e 53 70 61 74 69 61 6c 20 56 69  or <b>Spatial Vi
3d30: 65 77 3c 2f 62 3e 20 72 65 70 72 65 73 65 6e 74  ew</b> represent
3d40: 69 6e 67 20 74 68 65 20 75 6e 64 65 72 6c 79 69  ing the underlyi
3d50: 6e 67 20 4e 65 74 77 6f 72 6b 2e 3c 62 72 3e 0d  ng Network.<br>.
3d60: 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 69 6e  .<u>Note</u>: in
3d70: 20 74 68 69 73 20 63 61 73 65 20 77 65 20 61 63   this case we ac
3d80: 74 75 61 6c 6c 79 20 75 73 65 64 20 61 20 53 70  tually used a Sp
3d90: 61 74 69 61 6c 20 56 69 65 77 2e 3c 2f 6c 69 3e  atial View.</li>
3da0: 0d 0a 3c 6c 69 3e 3c 69 3e 6e 6f 64 65 5f 66 72  ..<li><i>node_fr
3db0: 6f 6d 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66 20  om</i>: name of 
3dc0: 74 68 65 20 63 6f 6c 75 6d 6e 20 28 69 6e 20 74  the column (in t
3dd0: 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65 20 6f  he above Table o
3de0: 72 20 56 69 65 77 29 20 65 78 70 65 63 74 65 64  r View) expected
3df0: 20 74 6f 20 63 6f 6e 74 61 69 6e 20 3c 62 3e 6e   to contain <b>n
3e00: 6f 64 65 2d 66 72 6f 6d 3c 2f 62 3e 20 76 61 6c  ode-from</b> val
3e10: 75 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  ues.</li>..<li><
3e20: 69 3e 6e 6f 64 65 5f 74 6f 3c 2f 69 3e 3a 20 6e  i>node_to</i>: n
3e30: 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6c 75 6d  ame of the colum
3e40: 6e 20 28 69 6e 20 74 68 65 20 61 62 6f 76 65 20  n (in the above 
3e50: 54 61 62 6c 65 20 6f 72 20 56 69 65 77 29 20 65  Table or View) e
3e60: 78 70 65 63 74 65 64 20 74 6f 20 63 6f 6e 74 61  xpected to conta
3e70: 69 6e 20 3c 62 3e 6e 6f 64 65 2d 74 6f 3c 2f 62  in <b>node-to</b
3e80: 3e 20 76 61 6c 75 65 73 2e 3c 2f 6c 69 3e 0d 0a  > values.</li>..
3e90: 3c 6c 69 3e 3c 69 3e 67 65 6f 6d 3c 2f 69 3e 3a  <li><i>geom</i>:
3ea0: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6c   name of the col
3eb0: 75 6d 6e 20 28 69 6e 20 74 68 65 20 61 62 6f 76  umn (in the abov
3ec0: 65 20 54 61 62 6c 65 20 6f 72 20 56 69 65 77 29  e Table or View)
3ed0: 20 65 78 70 65 63 74 65 64 20 74 6f 20 63 6f 6e   expected to con
3ee0: 74 61 69 6e 20 3c 62 3e 4c 69 6e 65 73 74 72 69  tain <b>Linestri
3ef0: 6e 67 73 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 57 65  ngs</b>.<br>..We
3f00: 20 63 6f 75 6c 64 20 68 61 76 65 20 6c 65 67 69   could have legi
3f10: 74 69 6d 61 74 65 6c 79 20 70 61 73 73 65 64 20  timately passed 
3f20: 61 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 76 61  a <b>NULL</b> va
3f30: 6c 75 65 20 66 6f 72 20 74 68 69 73 20 61 72 67  lue for this arg
3f40: 75 6d 65 6e 74 20 69 6e 20 74 68 65 20 63 61 73  ument in the cas
3f50: 65 20 6f 66 20 61 20 3c 62 3e 4c 6f 67 69 63 61  e of a <b>Logica
3f60: 6c 20 4e 65 74 77 6f 72 6b 3c 2f 62 3e 2e 3c 2f  l Network</b>.</
3f70: 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 4e 55 4c 4c  li>..<li><i>NULL
3f80: 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f 66 20 74 68  </i>: name of th
3f90: 65 20 63 6f 6c 75 6d 6e 20 28 69 6e 20 74 68 65  e column (in the
3fa0: 20 61 62 6f 76 65 20 54 61 62 6c 65 20 6f 72 20   above Table or 
3fb0: 56 69 65 77 29 20 65 78 70 65 63 74 65 64 20 74  View) expected t
3fc0: 6f 20 63 6f 6e 74 61 69 6e 20 3c 62 3e 63 6f 73  o contain <b>cos
3fd0: 74 3c 2f 62 3e 20 76 61 6c 75 65 73 2e 3c 62 72  t</b> values.<br
3fe0: 3e 0d 0a 49 6e 20 74 68 69 73 20 63 61 73 65 20  >..In this case 
3ff0: 77 65 20 68 61 76 65 20 70 61 73 73 65 64 20 61  we have passed a
4000: 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 76 61 6c   <b>NULL</b> val
4010: 75 65 2c 20 61 6e 64 20 63 6f 6e 73 65 71 75 65  ue, and conseque
4020: 6e 74 6c 79 20 74 68 65 20 3c 62 3e 63 6f 73 74  ntly the <b>cost
4030: 3c 2f 62 3e 20 6f 66 20 65 61 63 68 20 4c 69 6e  </b> of each Lin
4040: 6b 20 77 69 6c 6c 20 62 65 20 61 73 73 75 6d 65  k will be assume
4050: 64 20 74 6f 20 62 65 20 72 65 70 72 65 73 65 6e  d to be represen
4060: 74 65 64 20 62 79 20 74 68 65 20 3c 62 3e 67 65  ted by the <b>ge
4070: 6f 6d 65 74 72 69 63 20 6c 65 6e 67 74 68 3c 2f  ometric length</
4080: 62 3e 20 6f 66 20 74 68 65 20 63 6f 72 72 65 73  b> of the corres
4090: 70 6f 6e 64 69 6e 67 20 4c 69 6e 65 73 74 72 69  ponding Linestri
40a0: 6e 67 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65  ng.<br>..<u>Note
40b0: 20 23 31 3c 2f 75 3e 3a 20 69 6e 20 74 68 65 20   #1</u>: in the 
40c0: 63 61 73 65 20 6f 66 20 4e 65 74 77 6f 72 6b 73  case of Networks
40d0: 20 62 61 73 65 64 20 6f 6e 20 3c 62 3e 6c 6f 6e   based on <b>lon
40e0: 67 69 74 75 64 65 73 3c 2f 62 3e 20 61 6e 64 20  gitudes</b> and 
40f0: 3c 62 3e 6c 61 74 69 74 75 64 65 73 3c 2f 62 3e  <b>latitudes</b>
4100: 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e   (<i>aka</i> <b>
4110: 67 65 6f 67 72 61 70 68 69 63 3c 2f 62 3e 20 52  geographic</b> R
4120: 65 66 65 72 65 6e 63 65 20 53 79 73 74 65 6d 73  eference Systems
4130: 29 20 74 68 65 20 67 65 6f 6d 65 74 72 79 20 6c  ) the geometry l
4140: 65 6e 67 74 68 20 6f 66 20 61 6c 6c 20 4c 69 6e  ength of all Lin
4150: 65 73 74 72 69 6e 67 73 20 77 69 6c 6c 20 62 65  estrings will be
4160: 20 70 72 65 63 69 73 65 6c 79 20 3c 62 3e 6d 65   precisely <b>me
4170: 61 73 75 72 65 64 20 6f 6e 20 74 68 65 20 65 6c  asured on the el
4180: 6c 69 70 73 6f 69 64 3c 2f 62 3e 20 62 79 20 61  lipsoid</b> by a
4190: 70 70 6c 79 69 6e 67 20 74 68 65 20 6d 6f 73 74  pplying the most
41a0: 20 61 63 63 75 72 61 74 65 20 3c 62 3e 67 65 6f   accurate <b>geo
41b0: 64 65 73 69 63 20 66 6f 72 6d 75 6c 61 65 3c 2f  desic formulae</
41c0: 62 3e 20 61 6e 64 20 77 69 6c 6c 20 62 65 20 63  b> and will be c
41d0: 6f 6e 73 65 71 75 65 6e 74 6c 79 20 65 78 70 72  onsequently expr
41e0: 65 73 73 65 64 20 69 6e 20 3c 62 3e 6d 65 74 65  essed in <b>mete
41f0: 72 73 3c 2f 62 3e 2e 20 49 6e 20 61 6e 79 20 6f  rs</b>. In any o
4200: 74 68 65 72 20 63 61 73 65 20 28 3c 62 3e 70 72  ther case (<b>pr
4210: 6f 6a 65 63 74 65 64 3c 2f 62 3e 20 52 65 66 65  ojected</b> Refe
4220: 72 65 6e 63 65 20 53 79 73 74 65 6d 73 29 20 6c  rence Systems) l
4230: 65 6e 67 74 68 73 20 77 69 6c 6c 20 62 65 20 65  engths will be e
4240: 78 70 72 65 73 73 65 64 20 69 6e 20 74 68 65 20  xpressed in the 
4250: 3c 62 3e 6d 65 61 73 75 72 65 20 75 6e 69 74 3c  <b>measure unit<
4260: 2f 62 3e 20 64 65 66 69 6e 65 64 20 62 79 20 74  /b> defined by t
4270: 68 65 20 52 65 66 65 72 65 6e 63 65 20 53 79 73  he Reference Sys
4280: 74 65 6d 20 28 65 2e 67 2e 20 3c 62 3e 6d 65 74  tem (e.g. <b>met
4290: 65 72 73 3c 2f 62 3e 20 66 6f 72 20 3c 62 3e 55  ers</b> for <b>U
42a0: 54 4d 3c 2f 62 3e 20 70 72 6f 6a 65 63 74 69 6f  TM</b> projectio
42b0: 6e 73 20 61 6e 64 20 3c 62 3e 66 65 65 74 3c 2f  ns and <b>feet</
42c0: 62 3e 20 66 6f 72 20 3c 62 3e 4e 41 44 2d 66 74  b> for <b>NAD-ft
42d0: 3c 2f 62 3e 20 70 72 6f 6a 65 63 74 69 6f 6e 73  </b> projections
42e0: 29 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 20  ).<br>..<u>Note 
42f0: 23 32 3c 2f 75 3e 3a 20 74 68 65 20 3c 62 3e 67  #2</u>: the <b>g
4300: 65 6f 6d 2d 63 6f 6c 75 6d 6e 3c 2f 62 3e 20 61  eom-column</b> a
4310: 6e 64 20 3c 62 3e 63 6f 73 74 2d 63 6f 6c 75 6d  nd <b>cost-colum
4320: 6e 3c 2f 62 3e 20 61 72 67 75 6d 65 6e 74 73 20  n</b> arguments 
4330: 61 72 65 20 6e 65 76 65 72 20 61 6c 6c 6f 77 65  are never allowe
4340: 64 20 74 6f 20 62 65 20 3c 62 3e 4e 55 4c 4c 3c  d to be <b>NULL<
4350: 2f 62 3e 20 61 74 20 74 68 65 20 73 61 6d 65 20  /b> at the same 
4360: 74 69 6d 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  time.</li>..<li>
4370: 3c 69 3e 74 6f 70 6f 6e 79 6d 3c 2f 69 3e 3a 20  <i>toponym</i>: 
4380: 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6c 75  name of the colu
4390: 6d 6e 20 28 69 6e 20 74 68 65 20 61 62 6f 76 65  mn (in the above
43a0: 20 54 61 62 6c 65 20 6f 72 20 56 69 65 77 29 20   Table or View) 
43b0: 65 78 70 65 63 74 65 64 20 74 6f 20 63 6f 6e 74  expected to cont
43c0: 61 69 6e 20 3c 62 3e 72 6f 61 64 2d 6e 61 6d 65  ain <b>road-name
43d0: 3c 2f 62 3e 20 76 61 6c 75 65 73 2e 3c 62 72 3e  </b> values.<br>
43e0: 0d 0a 49 74 20 63 6f 75 6c 64 20 62 65 20 6c 65  ..It could be le
43f0: 67 69 74 69 6d 61 74 65 6c 79 20 73 65 74 20 74  gitimately set t
4400: 6f 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 69 66  o <b>NULL</b> if
4410: 20 61 6c 6c 20 4c 69 6e 6b 73 20 61 72 65 20 61   all Links are a
4420: 6e 6f 6e 79 6d 6f 75 73 2e 3c 2f 6c 69 3e 0d 0a  nonymous.</li>..
4430: 3c 6c 69 3e 3c 69 3e 31 3c 2f 69 3e 3a 20 61 20  <li><i>1</i>: a 
4440: 62 6f 6f 6c 65 61 6e 20 66 6c 61 67 20 69 6e 74  boolean flag int
4450: 65 6e 64 65 64 20 74 6f 20 73 70 65 63 69 66 79  ended to specify
4460: 20 69 66 20 74 68 65 20 4e 65 74 77 6f 72 6b 20   if the Network 
4470: 6d 75 73 74 20 73 75 70 70 6f 72 74 20 74 68 65  must support the
4480: 20 3c 62 3e 41 2a 20 61 6c 67 6f 72 69 74 68 6d   <b>A* algorithm
4490: 3c 2f 62 3e 20 6f 72 20 6e 6f 74 20 28 73 65 74  </b> or not (set
44a0: 20 74 6f 20 3c 62 3e 54 52 55 45 3c 2f 62 3e 20   to <b>TRUE</b> 
44b0: 62 79 20 64 65 66 61 75 6c 74 29 2e 3c 2f 6c 69  by default).</li
44c0: 3e 0d 0a 3c 6c 69 3e 3c 69 3e 31 3c 2f 69 3e 3a  >..<li><i>1</i>:
44d0: 20 61 20 62 6f 6f 6c 65 61 6e 20 66 6c 61 67 20   a boolean flag 
44e0: 69 6e 74 65 6e 64 65 64 20 74 6f 20 73 70 65 63  intended to spec
44f0: 69 66 79 20 69 66 20 61 6c 6c 20 4e 65 74 77 6f  ify if all Netwo
4500: 72 6b 27 73 20 4c 69 6e 6b 73 20 61 72 65 20 61  rk's Links are a
4510: 73 73 75 6d 65 64 20 74 6f 20 62 65 20 3c 62 3e  ssumed to be <b>
4520: 62 69 64 69 72 65 63 74 69 6f 6e 61 6c 3c 2f 62  bidirectional</b
4530: 3e 20 6f 72 20 6e 6f 74 20 28 61 73 73 75 6d 65  > or not (assume
4540: 64 20 74 6f 20 62 65 20 3c 62 3e 54 52 55 45 3c  d to be <b>TRUE<
4550: 2f 62 3e 20 62 79 20 64 65 66 61 75 6c 74 29 2e  /b> by default).
4560: 3c 2f 6c 69 3e 20 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c  </li> ..</ol>..<
4570: 74 61 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23  table bgcolor="#
4580: 63 30 66 66 63 30 22 20 63 65 6c 6c 73 70 61 63  c0ffc0" cellspac
4590: 69 6e 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64  ing="10" cellpad
45a0: 64 69 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64  ding="6"><tr><td
45b0: 3e 0d 0a 3c 68 33 3e 54 65 63 68 6e 69 63 61 6c  >..<h3>Technical
45c0: 20 6e 6f 74 65 3c 2f 68 33 3e 0d 0a 54 68 65 20   note</h3>..The 
45d0: 69 6e 74 65 72 6e 61 6c 20 65 6e 63 6f 64 69 6e  internal encodin
45e0: 67 20 61 64 6f 70 74 65 64 20 62 79 20 74 68 65  g adopted by the
45f0: 20 3c 62 3e 42 69 6e 61 72 79 20 44 61 74 61 20   <b>Binary Data 
4600: 54 61 62 6c 65 3c 2f 62 3e 20 69 73 20 75 6e 63  Table</b> is unc
4610: 68 61 6e 67 65 64 20 61 6e 64 20 69 73 20 74 68  hanged and is th
4620: 65 20 73 61 6d 65 20 66 6f 72 20 62 6f 74 68 20  e same for both 
4630: 3c 62 3e 56 69 72 74 75 61 6c 4e 65 74 77 6f 6b  <b>VirtualNetwok
4640: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 56 69 72 74  </b> and <b>Virt
4650: 75 61 6c 52 6f 75 74 69 6e 67 3c 2f 62 3e 2e 3c  ualRouting</b>.<
4660: 62 72 3e 0d 0a 59 6f 75 20 63 61 6e 20 73 61 66  br>..You can saf
4670: 65 6c 79 20 62 61 73 65 20 61 20 3c 62 3e 56 69  ely base a <b>Vi
4680: 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62  rtualRouting Tab
4690: 6c 65 3c 2f 62 3e 20 6f 6e 20 61 6e 79 20 65 78  le</b> on any ex
46a0: 69 73 74 69 6e 67 20 42 69 6e 61 72 79 20 44 61  isting Binary Da
46b0: 74 61 0d 0a 54 61 62 6c 65 20 63 72 65 61 74 65  ta..Table create
46c0: 64 20 62 79 20 74 68 65 20 3c 62 3e 73 70 61 74  d by the <b>spat
46d0: 69 61 6c 69 74 65 2d 6e 65 74 77 6f 72 6b 3c 2f  ialite-network</
46e0: 62 3e 20 43 4c 49 20 74 6f 6f 6c 2c 20 65 78 61  b> CLI tool, exa
46f0: 63 74 6c 79 20 61 73 20 79 6f 75 20 63 61 6e 20  ctly as you can 
4700: 62 61 73 65 20 61 20 3c 62 3e 56 69 72 74 75 61  base a <b>Virtua
4710: 6c 4e 65 74 77 6f 72 6b 20 54 61 62 6c 65 3c 2f  lNetwork Table</
4720: 62 3e 20 6f 6e 20 61 6e 79 20 42 69 6e 61 72 79  b> on any Binary
4730: 20 44 61 74 61 20 54 61 62 6c 65 20 63 72 65 61   Data Table crea
4740: 74 65 64 20 62 79 20 74 68 65 20 3c 62 3e 43 72  ted by the <b>Cr
4750: 65 61 74 65 52 6f 75 74 69 6e 67 28 29 3c 2f 62  eateRouting()</b
4760: 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e 0d  > SQL function..
4770: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 43 52 45  .<verbatim>..CRE
4780: 41 54 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c  ATE VIRTUAL TABL
4790: 45 20 74 65 73 74 5f 6e 65 74 77 6f 72 6b 20 55  E test_network U
47a0: 53 49 4e 47 20 56 69 72 74 75 61 6c 4e 65 74 77  SING VirtualNetw
47b0: 6f 72 6b 28 27 73 6f 6d 65 5f 64 61 74 61 5f 74  ork('some_data_t
47c0: 61 62 6c 65 27 29 3b 0d 0a 0d 0a 43 52 45 41 54  able');....CREAT
47d0: 45 20 56 49 52 54 55 41 4c 20 54 41 42 4c 45 20  E VIRTUAL TABLE 
47e0: 74 65 73 74 5f 72 6f 75 74 69 6e 67 20 55 53 49  test_routing USI
47f0: 4e 47 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e  NG VirtualRoutin
4800: 67 28 27 73 6f 6d 65 5f 64 61 74 61 5f 74 61 62  g('some_data_tab
4810: 6c 65 27 29 3b 0d 0a 3c 2f 76 65 72 62 61 74 69  le');..</verbati
4820: 6d 3e 0d 0a 49 6e 20 6f 72 64 65 72 20 74 6f 20  m>..In order to 
4830: 6d 61 6e 75 61 6c 6c 79 20 63 72 65 61 74 65 20  manually create 
4840: 79 6f 75 72 20 56 69 72 74 75 61 6c 20 54 61 62  your Virtual Tab
4850: 6c 65 73 20 79 6f 75 20 6a 75 73 74 20 68 61 76  les you just hav
4860: 65 20 74 6f 20 65 78 65 63 75 74 65 20 61 6e 20  e to execute an 
4870: 61 70 70 72 6f 70 72 69 61 74 65 20 3c 62 3e 43  appropriate <b>C
4880: 52 45 41 54 45 20 56 49 52 54 55 41 4c 20 54 41  REATE VIRTUAL TA
4890: 42 4c 45 20 2e 2e 2e 20 55 53 49 4e 47 20 56 69  BLE ... USING Vi
48a0: 72 74 75 61 6c 2e 2e 2e 20 28 2e 2e 2e 29 3c 2f  rtual... (...)</
48b0: 62 3e 20 73 74 61 74 65 6d 65 6e 74 2e 0d 0a 3c  b> statement...<
48c0: 68 34 3e 57 61 72 6e 69 6e 67 3c 2f 68 34 3e 0d  h4>Warning</h4>.
48d0: 0a 49 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20  .In the case of 
48e0: 3c 62 3e 53 70 61 74 69 61 6c 20 4e 65 74 77 6f  <b>Spatial Netwo
48f0: 72 6b 73 3c 2f 62 3e 20 62 61 73 65 64 20 6f 6e  rks</b> based on
4900: 20 61 6e 79 20 3c 62 3e 67 65 6f 67 72 61 70 68   any <b>geograph
4910: 69 63 3c 2f 62 3e 20 52 65 66 65 72 65 6e 63 65  ic</b> Reference
4920: 20 53 79 73 74 65 6d 20 28 75 73 69 6e 67 20 3c   System (using <
4930: 62 3e 6c 6f 6e 67 69 74 75 64 65 73 3c 2f 62 3e  b>longitudes</b>
4940: 20 61 6e 64 20 3c 62 3e 6c 61 74 69 74 75 64 65   and <b>latitude
4950: 73 3c 2f 62 3e 29 20 74 68 65 72 65 20 69 73 20  s</b>) there is 
4960: 61 6e 20 69 6d 70 6f 72 74 61 6e 74 20 64 69 66  an important dif
4970: 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20  ference between 
4980: 42 69 6e 61 72 79 20 44 61 74 61 20 54 61 62 6c  Binary Data Tabl
4990: 65 73 20 63 72 65 61 74 65 64 20 62 79 20 74 68  es created by th
49a0: 65 20 3c 62 3e 73 70 61 74 69 61 6c 69 74 65 5f  e <b>spatialite_
49b0: 6e 65 74 77 6f 72 6b 3c 2f 62 3e 20 47 55 49 20  network</b> GUI 
49c0: 74 6f 6f 6c 20 61 6e 64 20 20 42 69 6e 61 72 79  tool and  Binary
49d0: 20 44 61 74 61 20 54 61 62 6c 65 73 20 63 72 65   Data Tables cre
49e0: 61 74 65 64 20 62 79 20 74 68 65 20 3c 62 3e 43  ated by the <b>C
49f0: 72 65 61 74 65 52 6f 75 74 69 6e 67 28 29 3c 2f  reateRouting()</
4a00: 62 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 20  b> SQL function 
4a10: 77 68 65 6e 20 3c 62 3e 63 6f 73 74 73 3c 2f 62  when <b>costs</b
4a20: 3e 20 61 72 65 20 69 6d 70 6c 69 63 69 74 6c 79  > are implicitly
4a30: 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 67 65   based on the ge
4a40: 6f 6d 65 74 72 69 63 20 6c 65 6e 67 74 68 20 6f  ometric length o
4a50: 66 20 74 68 65 20 4c 69 6e 6b 27 73 20 4c 69 6e  f the Link's Lin
4a60: 65 73 74 72 69 6e 67 3a 0d 0a 3c 75 6c 3e 0d 0a  estring:..<ul>..
4a70: 3c 6c 69 3e 74 68 65 20 3c 62 3e 73 70 61 74 69  <li>the <b>spati
4a80: 61 6c 69 74 65 5f 6e 65 74 77 6f 72 6b 3c 2f 62  alite_network</b
4a90: 3e 20 43 4c 49 20 74 6f 6f 6c 20 28 61 6e 64 20  > CLI tool (and 
4aa0: 74 68 65 20 3c 62 3e 47 55 49 20 77 69 7a 61 72  the <b>GUI wizar
4ab0: 64 3c 2f 62 3e 20 69 6d 70 6c 65 6d 65 6e 74 65  d</b> implemente
4ac0: 64 20 62 79 20 70 72 65 76 69 6f 75 73 20 76 65  d by previous ve
4ad0: 72 73 69 6f 6e 73 20 6f 66 20 3c 62 3e 73 70 61  rsions of <b>spa
4ae0: 74 69 61 6c 69 74 65 5f 67 75 69 3c 2f 62 3e 29  tialite_gui</b>)
4af0: 20 63 6f 6d 70 75 74 65 20 74 68 65 20 4c 69 6e   compute the Lin
4b00: 65 73 74 72 69 6e 67 27 73 20 6c 65 6e 67 74 68  estring's length
4b10: 20 61 73 20 61 6e 20 3c 62 3e 61 6e 67 75 6c 61   as an <b>angula
4b20: 72 20 64 69 73 74 61 6e 63 65 3c 2f 62 3e 20 65  r distance</b> e
4b30: 78 70 72 65 73 73 65 64 20 69 6e 20 3c 62 3e 64  xpressed in <b>d
4b40: 65 67 72 65 65 73 3c 2f 62 3e 2e 3c 2f 6c 69 3e  egrees</b>.</li>
4b50: 0d 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 43 72 65  ..<li>the <b>Cre
4b60: 61 74 65 52 6f 75 74 69 6e 67 28 29 3c 2f 62 3e  ateRouting()</b>
4b70: 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 20 63 6f   SQL function co
4b80: 6d 70 75 74 65 73 20 74 68 65 20 4c 69 6e 65 73  mputes the Lines
4b90: 74 72 69 6e 67 27 73 20 6c 65 6e 67 74 68 20 61  tring's length a
4ba0: 73 20 61 20 3c 62 3e 6c 69 6e 65 61 72 20 64 69  s a <b>linear di
4bb0: 73 74 61 6e 63 65 3c 2f 62 3e 20 65 78 70 72 65  stance</b> expre
4bc0: 73 73 65 64 20 69 6e 20 3c 62 3e 6d 65 74 72 65  ssed in <b>metre
4bd0: 73 3c 2f 62 3e 20 62 79 20 61 70 70 6c 79 69 6e  s</b> by applyin
4be0: 67 20 74 68 65 20 6d 6f 73 74 20 61 63 63 75 72  g the most accur
4bf0: 61 74 65 20 3c 62 3e 67 65 6f 64 65 73 69 63 20  ate <b>geodesic 
4c00: 66 6f 72 6d 75 6c 61 65 3c 2f 62 3e 20 6f 6e 20  formulae</b> on 
4c10: 74 68 65 20 65 6c 6c 69 70 73 6f 69 64 2e 3c 2f  the ellipsoid.</
4c20: 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 2f 74 64  li>..</ul>..</td
4c30: 3e 3c 2f 74 72 3e 3c 2f 74 61 62 6c 65 3e 3c 62  ></tr></table><b
4c40: 72 3e 3c 62 72 3e 0d 0a 3c 76 65 72 62 61 74 69  r><br>..<verbati
4c50: 6d 3e 0d 0a 53 45 4c 45 43 54 20 43 72 65 61 74  m>..SELECT Creat
4c60: 65 52 6f 75 74 69 6e 67 28 27 62 79 63 61 72 5f  eRouting('bycar_
4c70: 64 61 74 61 27 2c 20 27 62 79 63 61 72 27 2c 20  data', 'bycar', 
4c80: 27 72 6f 61 64 73 5f 76 77 27 2c 20 27 6e 6f 64  'roads_vw', 'nod
4c90: 65 5f 66 72 6f 6d 27 2c 20 27 6e 6f 64 65 5f 74  e_from', 'node_t
4ca0: 6f 27 2c 20 27 67 65 6f 6d 27 2c 20 27 63 6f 73  o', 'geom', 'cos
4cb0: 74 27 2c 20 27 74 6f 70 6f 6e 79 6d 27 2c 20 31  t', 'toponym', 1
4cc0: 2c 20 31 2c 20 27 6f 6e 65 77 61 79 5f 66 72 6f  , 1, 'oneway_fro
4cd0: 6d 74 6f 27 2c 20 27 6f 6e 65 77 61 79 5f 74 6f  mto', 'oneway_to
4ce0: 66 72 6f 6d 27 2c 20 30 29 3b 0d 0a 2d 2d 2d 2d  from', 0);..----
4cf0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
4d00: 0d 0a 31 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  ..1..</verbatim>
4d10: 0d 0a 41 66 74 65 72 20 63 61 6c 6c 69 6e 67 20  ..After calling 
4d20: 79 65 74 20 61 6e 6f 74 68 65 72 20 74 69 6d 65  yet another time
4d30: 20 3c 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e   <b>CreateRoutin
4d40: 67 28 29 3c 2f 62 3e 20 6e 6f 77 20 74 68 65 20  g()</b> now the 
4d50: 44 61 74 61 62 61 73 65 20 63 6f 6e 74 61 69 6e  Database contain
4d60: 73 20 74 77 6f 20 66 75 72 74 68 65 72 20 54 61  s two further Ta
4d70: 62 6c 65 73 3a 20 3c 62 3e 62 79 63 61 72 3c 2f  bles: <b>bycar</
4d80: 62 3e 20 61 6e 64 20 3c 62 3e 62 79 63 61 72 5f  b> and <b>bycar_
4d90: 64 61 74 61 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 54  data</b>.<br>..T
4da0: 68 69 73 20 74 69 6d 65 20 79 6f 75 27 76 65 20  his time you've 
4db0: 75 73 65 64 20 74 68 65 20 3c 69 3e 63 6f 6d 70  used the <i>comp
4dc0: 6c 65 74 65 20 66 6f 72 6d 3c 2f 69 3e 20 6f 66  lete form</i> of
4dd0: 20 43 72 65 61 74 65 52 6f 75 74 69 6e 67 28 29   CreateRouting()
4de0: 3b 20 6c 65 74 27 73 20 73 65 65 20 69 6e 20 6d  ; let's see in m
4df0: 6f 72 65 20 64 65 70 74 68 20 61 6c 6c 20 74 68  ore depth all th
4e00: 65 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20  e arguments and 
4e10: 74 68 65 69 72 20 6d 65 61 6e 69 6e 67 3a 0d 0a  their meaning:..
4e20: 3c 6f 6c 3e 0d 0a 3c 6c 69 3e 3c 69 3e 62 79 63  <ol>..<li><i>byc
4e30: 61 72 5f 64 61 74 61 3c 2f 69 3e 3a 20 73 61 6d  ar_data</i>: sam
4e40: 65 20 61 73 20 61 62 6f 76 65 2e 3c 2f 6c 69 3e  e as above.</li>
4e50: 0d 0a 3c 6c 69 3e 3c 69 3e 62 79 63 61 72 3c 2f  ..<li><i>bycar</
4e60: 69 3e 3a 20 73 61 6d 65 20 61 73 20 61 62 6f 76  i>: same as abov
4e70: 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e  e.</li>..<li><i>
4e80: 72 6f 61 64 73 5f 76 77 3c 2f 69 3e 3a 20 73 61  roads_vw</i>: sa
4e90: 6d 65 20 61 73 20 61 62 6f 76 65 2e 3c 2f 6c 69  me as above.</li
4ea0: 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6e 6f 64 65 5f 66  >..<li><i>node_f
4eb0: 72 6f 6d 3c 2f 69 3e 3a 20 73 61 6d 65 20 61 73  rom</i>: same as
4ec0: 20 61 62 6f 76 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c   above.</li>..<l
4ed0: 69 3e 3c 69 3e 6e 6f 64 65 5f 74 6f 3c 2f 69 3e  i><i>node_to</i>
4ee0: 3a 20 73 61 6d 65 20 61 73 20 61 62 6f 76 65 2e  : same as above.
4ef0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 67 65  </li>..<li><i>ge
4f00: 6f 6d 3c 2f 69 3e 3a 20 73 61 6d 65 20 61 73 20  om</i>: same as 
4f10: 61 62 6f 76 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  above.</li>..<li
4f20: 3e 3c 69 3e 63 6f 73 74 3c 2f 69 3e 3a 20 73 61  ><i>cost</i>: sa
4f30: 6d 65 20 61 73 20 61 62 6f 76 65 2e 0d 0a 49 6e  me as above...In
4f40: 20 74 68 69 73 20 63 61 73 65 20 77 65 20 68 61   this case we ha
4f50: 76 65 20 72 65 66 65 72 65 6e 63 65 64 20 61 20  ve referenced a 
4f60: 63 6f 6c 75 6d 6e 20 70 72 65 6c 6f 61 64 65 64  column preloaded
4f70: 20 77 69 74 68 20 76 61 6c 75 65 73 20 63 6f 72   with values cor
4f80: 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68  responding to th
4f90: 65 20 3c 62 3e 74 69 6d 65 3c 2f 62 3e 20 6d 65  e <b>time</b> me
4fa0: 61 73 75 72 65 64 20 69 6e 20 3c 62 3e 73 65 63  asured in <b>sec
4fb0: 6f 6e 64 73 3c 2f 62 3e 20 72 65 71 75 69 72 65  onds</b> require
4fc0: 64 20 74 6f 20 74 72 61 76 65 72 73 65 20 65 61  d to traverse ea
4fd0: 63 68 20 4c 69 6e 6b 2e 3c 2f 6c 69 3e 20 0d 0a  ch Link.</li> ..
4fe0: 3c 6c 69 3e 3c 69 3e 74 6f 70 6f 6e 79 6d 3c 2f  <li><i>toponym</
4ff0: 69 3e 3a 20 73 61 6d 65 20 61 73 20 61 62 6f 76  i>: same as abov
5000: 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e  e.</li>..<li><i>
5010: 31 3c 2f 69 3e 3a 20 73 61 6d 65 20 61 73 20 61  1</i>: same as a
5020: 62 6f 76 65 20 28 3c 69 3e 41 2a 20 65 6e 61 62  bove (<i>A* enab
5030: 6c 65 64 3c 2f 69 3e 29 2e 3c 2f 6c 69 3e 0d 0a  led</i>).</li>..
5040: 3c 6c 69 3e 3c 69 3e 31 3c 2f 69 3e 3a 20 73 61  <li><i>1</i>: sa
5050: 6d 65 20 61 73 20 61 62 6f 76 65 20 28 3c 69 3e  me as above (<i>
5060: 62 69 64 69 72 65 63 74 69 6f 6e 61 6c 20 4c 69  bidirectional Li
5070: 6e 6b 73 3c 2f 69 3e 29 2e 3c 2f 6c 69 3e 0d 0a  nks</i>).</li>..
5080: 3c 6c 69 3e 3c 69 3e 6f 6e 65 77 61 79 5f 66 72  <li><i>oneway_fr
5090: 6f 6d 74 6f 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f  omto</i>: name o
50a0: 66 20 74 68 65 20 63 6f 6c 75 6d 6e 20 28 69 6e  f the column (in
50b0: 20 74 68 65 20 61 62 6f 76 65 20 54 61 62 6c 65   the above Table
50c0: 20 6f 72 20 56 69 65 77 29 20 65 78 70 65 63 74   or View) expect
50d0: 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e 20 62 6f  ed to contain bo
50e0: 6f 6c 65 61 6e 20 66 6c 61 67 73 20 73 70 65 63  olean flags spec
50f0: 69 66 79 69 6e 67 20 69 66 20 65 61 63 68 20 4c  ifying if each L
5100: 69 6e 6b 20 63 61 6e 20 62 65 20 74 72 61 76 65  ink can be trave
5110: 72 73 65 64 20 69 6e 20 74 68 65 20 3c 62 3e 66  rsed in the <b>f
5120: 72 6f 6d 2d 74 6f 3c 2f 62 3e 20 64 69 72 65 63  rom-to</b> direc
5130: 74 69 6f 6e 20 6f 72 20 6e 6f 74 2e 3c 2f 6c 69  tion or not.</li
5140: 3e 0d 0a 3c 6c 69 3e 3c 69 3e 6f 6e 65 77 61 79  >..<li><i>oneway
5150: 5f 74 6f 66 72 6f 6d 3c 2f 69 3e 3a 20 6e 61 6d  _tofrom</i>: nam
5160: 65 20 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e 20  e of the column 
5170: 28 69 6e 20 74 68 65 20 61 62 6f 76 65 20 54 61  (in the above Ta
5180: 62 6c 65 20 6f 72 20 56 69 65 77 29 20 65 78 70  ble or View) exp
5190: 65 63 74 65 64 20 74 6f 20 63 6f 6e 74 61 69 6e  ected to contain
51a0: 20 62 6f 6f 6c 65 61 6e 20 66 6c 61 67 73 20 73   boolean flags s
51b0: 70 65 63 69 66 79 69 6e 67 20 69 66 20 65 61 63  pecifying if eac
51c0: 68 20 4c 69 6e 6b 20 63 61 6e 20 62 65 20 74 72  h Link can be tr
51d0: 61 76 65 72 73 65 64 20 69 6e 20 74 68 65 20 3c  aversed in the <
51e0: 62 3e 74 6f 2d 66 72 6f 6d 3c 2f 62 3e 20 64 69  b>to-from</b> di
51f0: 72 65 63 74 69 6f 6e 20 6f 72 20 6e 6f 74 2e 3c  rection or not.<
5200: 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 20 23 31 3c  br>..<u>Note #1<
5210: 2f 75 3e 3a 20 62 6f 74 68 20 3c 62 3e 66 72 6f  /u>: both <b>fro
5220: 6d 2d 74 6f 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  m-to</b> and <b>
5230: 74 6f 2d 66 72 6f 6d 3c 2f 62 3e 20 63 6f 6c 75  to-from</b> colu
5240: 6d 6e 20 6e 61 6d 65 73 20 63 61 6e 20 62 65 20  mn names can be 
5250: 6c 65 67 69 74 69 6d 61 74 65 6c 79 20 73 65 74  legitimately set
5260: 20 61 73 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20   as <b>NULL</b> 
5270: 69 66 20 6e 6f 20 3c 62 3e 6f 6e 65 2d 77 61 79  if no <b>one-way
5280: 3c 2f 62 3e 20 72 65 73 74 72 69 63 74 69 6f 6e  </b> restriction
5290: 73 20 61 70 70 6c 79 20 74 6f 20 74 68 65 20 63  s apply to the c
52a0: 75 72 72 65 6e 74 20 4e 65 74 77 6f 72 6b 2e 3c  urrent Network.<
52b0: 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 20 23 32 3c  br>..<u>Note #2<
52c0: 2f 75 3e 3a 20 4e 65 74 77 6f 72 6b 73 20 6f 66  /u>: Networks of
52d0: 20 74 68 65 20 3c 62 3e 75 6e 69 64 69 72 65 63   the <b>unidirec
52e0: 74 69 6f 6e 61 6c 3c 2f 62 3e 20 74 79 70 65 20  tional</b> type 
52f0: 61 72 65 20 6e 65 76 65 72 20 65 6e 61 62 6c 65  are never enable
5300: 64 20 74 6f 20 72 65 66 65 72 65 6e 63 65 20 3c  d to reference <
5310: 62 3e 6f 6e 65 2d 77 61 79 3c 2f 62 3e 20 63 6f  b>one-way</b> co
5320: 6c 75 6d 6e 73 20 28 74 68 65 79 20 73 68 6f 75  lumns (they shou
5330: 6c 64 20 61 6c 77 61 79 73 20 62 65 20 73 65 74  ld always be set
5340: 20 74 6f 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 29   to <b>NULL</b>)
5350: 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 69 3e 30  .</li>..<li><i>0
5360: 3c 2f 69 3e 3a 20 61 20 62 6f 6f 6c 65 61 6e 20  </i>: a boolean 
5370: 66 6c 61 67 20 69 6e 74 65 6e 64 69 6e 67 20 61  flag intending a
5380: 6e 20 3c 62 3e 6f 76 65 72 77 72 69 74 65 20 61  n <b>overwrite a
5390: 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3c 2f 62 3e  uthorization</b>
53a0: 2e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 49 66 20  ...<ul>..<li>If 
53b0: 73 65 74 20 74 6f 20 3c 62 3e 46 41 4c 53 45 3c  set to <b>FALSE<
53c0: 2f 62 3e 20 61 6e 20 65 78 63 65 70 74 69 6f 6e  /b> an exception
53d0: 20 77 69 6c 6c 20 62 65 20 72 61 69 73 65 64 20   will be raised 
53e0: 69 66 20 74 68 65 20 3c 62 3e 42 69 6e 61 72 79  if the <b>Binary
53f0: 20 44 61 74 61 20 54 61 62 6c 65 3c 2f 62 3e 20   Data Table</b> 
5400: 61 6e 64 2f 6f 72 20 74 68 65 20 3c 62 3e 56 69  and/or the <b>Vi
5410: 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62  rtualRouting Tab
5420: 6c 65 3c 2f 62 3e 20 64 6f 20 61 6c 72 65 61 64  le</b> do alread
5430: 79 20 65 78 69 73 74 2e 3c 2f 6c 69 3e 0d 0a 3c  y exist.</li>..<
5440: 6c 69 3e 49 66 20 73 65 74 20 74 6f 20 3c 62 3e  li>If set to <b>
5450: 54 52 55 45 3c 2f 62 3e 20 65 76 65 6e 74 75 61  TRUE</b> eventua
5460: 6c 6c 79 20 65 78 69 73 74 69 6e 67 20 54 61 62  lly existing Tab
5470: 6c 65 73 20 77 69 6c 6c 20 62 65 20 70 72 65 76  les will be prev
5480: 65 6e 74 69 76 65 6c 79 20 64 72 6f 70 70 65 64  entively dropped
5490: 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 62 65 66   immediately bef
54a0: 6f 72 65 20 73 74 61 72 74 69 6e 67 20 74 68 65  ore starting the
54b0: 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 3c 62   execution of <b
54c0: 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67 28 29  >CreateRouting()
54d0: 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  </b>.</li>..</ul
54e0: 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c  ></li>..</ol>..<
54f0: 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 67 63 6f  br>..<table bgco
5500: 6c 6f 72 3d 22 23 66 66 66 66 63 30 22 20 63 65  lor="#ffffc0" ce
5510: 6c 6c 73 70 61 63 69 6e 67 3d 22 31 30 22 20 63  llspacing="10" c
5520: 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 3c  ellpadding="6"><
5530: 74 72 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 48 69 67  tr><td>..<h3>Hig
5540: 68 6c 69 67 68 74 3a 20 77 68 65 72 65 20 79 6f  hlight: where yo
5550: 75 20 61 72 65 3c 2f 68 33 3e 0d 0a 59 6f 75 27  u are</h3>..You'
5560: 76 65 20 6a 75 73 74 20 63 72 65 61 74 65 64 20  ve just created 
5570: 74 77 6f 20 56 69 72 74 75 61 6c 52 6f 75 74 69  two VirtualRouti
5580: 6e 67 20 54 61 62 6c 65 73 20 62 61 73 65 64 20  ng Tables based 
5590: 6f 6e 20 64 69 66 66 65 72 65 6e 74 20 73 65 74  on different set
55a0: 74 69 6e 67 73 3b 20 62 6f 74 68 20 74 68 65 6d  tings; both them
55b0: 20 61 72 65 20 70 65 72 66 65 63 74 6c 79 20 76   are perfectly v
55c0: 61 6c 69 64 20 61 6e 64 20 72 65 61 73 6f 6e 61  alid and reasona
55d0: 62 6c 65 2c 20 62 75 74 20 74 68 65 79 20 61 72  ble, but they ar
55e0: 65 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 64  e intended for d
55f0: 69 66 66 65 72 65 6e 74 20 70 75 72 70 6f 73 65  ifferent purpose
5600: 73 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62  s:..<ul>..<li><b
5610: 3e 62 79 66 6f 6f 74 3c 2f 62 3e 20 69 73 20 73  >byfoot</b> is s
5620: 70 65 63 69 66 69 63 61 6c 6c 79 20 69 6e 74 65  pecifically inte
5630: 6e 64 65 64 20 66 6f 72 20 3c 62 3e 70 65 64 65  nded for <b>pede
5640: 73 74 72 69 61 6e 73 3c 2f 62 3e 3a 0d 0a 3c 75  strians</b>:..<u
5650: 6c 3e 0d 0a 3c 6c 69 3e 61 6c 6c 20 4c 69 6e 6b  l>..<li>all Link
5660: 73 20 61 72 65 20 61 6c 77 61 79 73 20 61 73 73  s are always ass
5670: 75 6d 65 64 20 74 6f 20 62 65 20 61 63 63 65 73  umed to be acces
5680: 73 69 62 6c 65 20 69 6e 20 3c 62 3e 62 6f 74 68  sible in <b>both
5690: 20 64 69 72 65 63 74 69 6f 6e 73 3c 2f 62 3e 3b   directions</b>;
56a0: 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 3c 62   there are no <b
56b0: 3e 6f 6e 65 2d 77 61 79 73 3c 2f 62 3e 20 61 6e  >one-ways</b> an
56c0: 64 20 6e 6f 20 3c 62 3e 66 6f 72 62 69 64 64 65  d no <b>forbidde
56d0: 6e 3c 2f 62 3e 20 4c 69 6e 6b 73 2e 3c 2f 6c 69  n</b> Links.</li
56e0: 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 63 6f  >..<li>the <b>co
56f0: 73 74 3c 2f 62 3e 20 6f 66 20 65 61 63 68 20 4c  st</b> of each L
5700: 69 6e 6b 20 69 73 20 64 69 72 65 63 74 6c 79 20  ink is directly 
5710: 72 65 70 72 65 73 65 6e 74 65 64 20 62 79 20 69  represented by i
5720: 74 73 20 67 65 6f 6d 65 74 72 69 63 20 3c 62 3e  ts geometric <b>
5730: 6c 65 6e 67 74 68 3c 2f 62 3e 2c 20 77 68 69 63  length</b>, whic
5740: 68 20 69 73 20 63 6f 6e 73 69 73 74 65 6e 74 20  h is consistent 
5750: 77 69 74 68 20 74 68 65 20 61 73 73 75 6d 70 74  with the assumpt
5760: 69 6f 6e 20 6f 66 20 61 6e 20 61 6c 6d 6f 73 74  ion of an almost
5770: 20 63 6f 6e 73 74 61 6e 74 20 73 70 65 65 64 20   constant speed 
5780: 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 69 6d  substantially im
5790: 6d 75 6e 65 20 66 72 6f 6d 20 61 64 76 65 72 73  mune from advers
57a0: 65 20 72 6f 61 64 20 63 6f 6e 64 69 74 69 6f 6e  e road condition
57b0: 73 20 61 6e 64 20 74 72 61 66 66 69 63 20 63 6f  s and traffic co
57c0: 6e 67 65 73 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a  ngestion.</li>..
57d0: 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  </ul></li>..<li>
57e0: 3c 62 3e 62 79 63 61 72 3c 2f 62 3e 20 69 73 20  <b>bycar</b> is 
57f0: 73 70 65 63 69 66 69 63 61 6c 6c 79 20 69 6e 74  specifically int
5800: 65 6e 64 65 64 20 66 6f 72 20 3c 62 3e 6d 6f 74  ended for <b>mot
5810: 6f 72 20 76 65 68 69 63 6c 65 73 3c 2f 62 3e 3a  or vehicles</b>:
5820: 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 6d 61 6e 79  ..<ul>..<li>many
5830: 20 4c 69 6e 6b 73 20 61 72 65 20 65 78 70 65 63   Links are expec
5840: 74 65 64 20 74 6f 20 62 65 20 61 63 63 65 73 73  ted to be access
5850: 69 62 6c 65 20 69 6e 20 3c 62 3e 62 6f 74 68 20  ible in <b>both 
5860: 64 69 72 65 63 74 69 6f 6e 73 3c 2f 62 3e 20 62  directions</b> b
5870: 75 74 20 6f 74 68 65 72 73 20 63 6f 75 6c 64 20  ut others could 
5880: 65 61 73 69 6c 79 20 62 65 20 73 75 62 6a 65 63  easily be subjec
5890: 74 20 74 6f 20 3c 62 3e 6f 6e 65 2d 77 61 79 3c  t to <b>one-way<
58a0: 2f 62 3e 20 72 65 73 74 72 69 63 74 69 6f 6e 73  /b> restrictions
58b0: 20 6f 72 20 65 76 65 6e 20 62 65 20 63 6f 6d 70   or even be comp
58c0: 6c 65 74 65 6c 79 20 3c 62 3e 66 6f 72 62 69 64  letely <b>forbid
58d0: 64 65 6e 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c  den</b>.</li>..<
58e0: 6c 69 3e 74 68 65 20 63 6f 73 74 20 6f 66 20 65  li>the cost of e
58f0: 61 63 68 20 4c 69 6e 6b 20 69 73 20 65 78 70 72  ach Link is expr
5900: 65 73 73 65 64 20 61 73 20 61 6e 20 65 73 74 69  essed as an esti
5910: 6d 61 74 65 64 20 3c 62 3e 74 72 61 76 65 6c 20  mated <b>travel 
5920: 74 69 6d 65 3c 2f 62 3e 2c 20 62 65 63 61 75 73  time</b>, becaus
5930: 65 20 74 68 65 20 65 78 70 65 63 74 65 64 20 73  e the expected s
5940: 70 65 65 64 73 20 63 61 6e 20 67 72 65 61 74 6c  peeds can greatl
5950: 79 20 76 61 72 79 20 61 63 63 6f 72 64 69 6e 67  y vary according
5960: 6c 79 20 74 6f 20 73 70 65 63 69 66 69 63 20 72  ly to specific r
5970: 6f 61 64 20 63 6f 6e 64 69 74 69 6f 6e 73 2c 20  oad conditions, 
5980: 74 72 61 66 66 69 63 20 63 6f 6e 67 65 73 74 69  traffic congesti
5990: 6f 6e 20 61 6e 64 20 6c 65 67 61 6c 20 72 65 67  on and legal reg
59a0: 75 6c 61 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0d 0a  ulations.</li>..
59b0: 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c  </ul></li>..</ul
59c0: 3e 0d 0a 3c 62 72 3e 0d 0a 3c 75 3e 43 6f 6e 63  >..<br>..<u>Conc
59d0: 6c 75 73 69 6f 6e 3c 2f 75 3e 3a 20 61 20 73 69  lusion</u>: a si
59e0: 6e 67 6c 65 20 56 69 72 74 75 61 6c 52 6f 75 74  ngle VirtualRout
59f0: 69 6e 67 20 54 61 62 6c 65 20 63 61 6e 27 74 20  ing Table can't 
5a00: 62 65 20 61 62 6c 65 20 74 6f 20 61 64 65 71 75  be able to adequ
5a10: 61 74 65 6c 79 20 73 75 70 70 6f 72 74 20 73 75  ately support su
5a20: 70 70 6f 72 74 20 74 68 65 20 73 70 65 63 69 66  pport the specif
5a30: 69 63 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20  ic requirements 
5a40: 61 6e 64 20 65 78 70 65 63 74 61 74 69 6f 6e 73  and expectations
5a50: 20 6f 66 20 64 69 66 66 65 72 65 6e 74 20 75 73   of different us
5a60: 65 72 73 2e 3c 62 72 3e 0d 0a 44 65 66 69 6e 69  ers.<br>..Defini
5a70: 6e 67 20 6d 6f 72 65 20 52 6f 75 74 69 6e 67 20  ng more Routing 
5a80: 54 61 62 6c 65 73 20 77 69 74 68 20 64 69 66 66  Tables with diff
5a90: 65 72 65 6e 74 20 73 65 74 74 69 6e 67 73 20 66  erent settings f
5aa0: 6f 72 20 74 68 65 20 73 61 6d 65 20 4e 65 74 77  or the same Netw
5ab0: 6f 72 6b 20 75 73 75 61 6c 6c 79 20 69 73 20 61  ork usually is a
5ac0: 20 67 6f 6f 64 20 64 65 73 69 67 6e 20 63 68 6f   good design cho
5ad0: 69 63 65 20 6c 65 61 64 69 6e 67 20 74 6f 20 6d  ice leading to m
5ae0: 6f 72 65 20 72 65 61 6c 69 73 74 69 63 20 72 65  ore realistic re
5af0: 73 75 6c 74 73 2e 3c 62 72 3e 0d 0a 3c 2f 74 64  sults.<br>..</td
5b00: 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e  ></tr>..</table>
5b10: 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 68 33 3e  ..<br><br>..<h3>
5b20: 55 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e  Utility function
5b30: 20 66 6f 72 20 61 75 74 6f 6d 61 74 69 63 61 6c   for automatical
5b40: 6c 79 20 73 65 74 74 69 6e 67 20 4e 6f 64 65 46  ly setting NodeF
5b50: 72 6f 6d 20 61 6e 64 20 4e 6f 64 65 54 6f 20 49  rom and NodeTo I
5b60: 44 73 3c 2f 68 33 3e 0d 0a 53 6f 6d 65 74 69 6d  Ds</h3>..Sometim
5b70: 65 73 20 69 74 20 63 6f 75 6c 64 20 65 76 65 6e  es it could even
5b80: 74 75 61 6c 6c 79 20 68 61 70 70 65 6e 20 74 6f  tually happen to
5b90: 20 65 6e 63 6f 75 6e 74 65 72 20 73 6f 6d 65 20   encounter some 
5ba0: 3c 62 3e 53 70 61 74 69 61 6c 20 4e 65 74 77 6f  <b>Spatial Netwo
5bb0: 72 6b 3c 2f 62 3e 20 72 65 70 72 65 73 65 6e 74  rk</b> represent
5bc0: 61 74 69 6f 6e 20 62 65 69 6e 67 20 66 75 6c 6c  ation being full
5bd0: 79 20 74 6f 70 6f 6c 6f 67 69 63 61 6c 6c 79 20  y topologically 
5be0: 63 6f 6e 73 69 73 74 65 6e 74 20 62 75 74 20 63  consistent but c
5bf0: 6f 6d 70 6c 65 74 65 6c 79 20 6c 61 63 6b 69 6e  ompletely lackin
5c00: 67 20 61 6e 79 20 64 65 66 69 6e 69 74 69 6f 6e  g any definition
5c10: 20 61 62 6f 75 74 20 3c 62 3e 4e 6f 64 65 46 72   about <b>NodeFr
5c20: 6f 6d 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 4e 6f  om</b> and <b>No
5c30: 64 65 54 6f 3c 2f 62 3e 20 69 64 65 6e 74 69 66  deTo</b> identif
5c40: 69 65 72 73 2e 3c 62 72 3e 0d 0a 49 6e 20 74 68  iers.<br>..In th
5c50: 69 73 20 73 70 65 63 69 66 69 63 20 63 61 73 65  is specific case
5c60: 20 79 6f 75 20 63 61 6e 20 73 75 63 63 65 73 73   you can success
5c70: 66 75 6c 6c 79 20 72 65 63 6f 76 65 72 20 61 20  fully recover a 
5c80: 70 65 72 66 65 63 74 6c 79 20 76 61 6c 69 64 20  perfectly valid 
5c90: 4e 65 74 77 6f 72 6b 20 62 79 20 63 61 6c 6c 69  Network by calli
5ca0: 6e 67 20 74 68 65 20 3c 62 3e 43 72 65 61 74 65  ng the <b>Create
5cb0: 52 6f 75 74 69 6e 67 4e 6f 64 65 73 28 29 3c 2f  RoutingNodes()</
5cc0: 62 3e 20 53 51 4c 20 66 75 6e 63 74 69 6f 6e 2e  b> SQL function.
5cd0: 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45  ..<verbatim>..SE
5ce0: 4c 45 43 54 20 43 72 65 61 74 65 52 6f 75 74 69  LECT CreateRouti
5cf0: 6e 67 4e 6f 64 65 73 28 4e 55 4c 4c 2c 20 27 74  ngNodes(NULL, 't
5d00: 61 62 6c 65 5f 6e 61 6d 65 27 2c 20 27 67 65 6f  able_name', 'geo
5d10: 6d 27 2c 20 27 6e 6f 64 65 5f 66 72 6f 6d 27 2c  m', 'node_from',
5d20: 20 27 6e 6f 64 65 5f 74 6f 27 29 3b 0d 0a 5f 5f   'node_to');..__
5d30: 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f  ________________
5d40: 5f 5f 5f 5f 5f 5f 5f 0d 0a 31 0d 0a 3c 2f 76 65  _______..1..</ve
5d50: 72 62 61 74 69 6d 3e 0d 0a 4c 65 74 27 73 20 65  rbatim>..Let's e
5d60: 78 61 6d 69 6e 65 20 61 6c 6c 20 61 72 67 75 6d  xamine all argum
5d70: 65 6e 74 73 20 61 6e 64 20 74 68 65 69 72 20 6d  ents and their m
5d80: 65 61 6e 69 6e 67 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c  eaning:..<ol>..<
5d90: 6c 69 3e 3c 69 3e 4e 55 4c 4c 3c 2f 69 3e 3a 20  li><i>NULL</i>: 
5da0: 6e 61 6d 65 20 6f 66 20 74 68 65 20 3c 62 3e 41  name of the <b>A
5db0: 74 74 61 63 68 65 64 2d 44 42 3c 2f 62 3e 20 63  ttached-DB</b> c
5dc0: 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 53 70  ontaining the Sp
5dd0: 61 74 69 61 6c 20 54 61 62 6c 65 2e 3c 62 72 3e  atial Table.<br>
5de0: 0d 0a 49 74 20 63 61 6e 20 62 65 20 6c 65 67 69  ..It can be legi
5df0: 74 69 6d 61 74 65 6c 79 20 73 65 74 20 74 6f 20  timately set to 
5e00: 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 2c 20 61 6e 64  <b>NULL</b>, and
5e10: 20 69 6e 20 74 68 69 73 20 63 61 73 65 20 74 68   in this case th
5e20: 65 20 3c 62 3e 4d 41 49 4e 3c 2f 62 3e 20 44 42  e <b>MAIN</b> DB
5e30: 20 69 73 20 61 73 73 75 6d 65 64 2e 3c 2f 6c 69   is assumed.</li
5e40: 3e 0d 0a 3c 6c 69 3e 3c 69 3e 74 61 62 6c 65 5f  >..<li><i>table_
5e50: 6e 61 6d 65 3c 2f 69 3e 3a 20 6e 61 6d 65 20 6f  name</i>: name o
5e60: 66 20 74 68 65 20 53 70 61 74 69 61 6c 20 54 61  f the Spatial Ta
5e70: 62 6c 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  ble.</li>..<li><
5e80: 69 3e 67 65 6f 6d 3c 2f 6c 69 3e 3a 20 6e 61 6d  i>geom</li>: nam
5e90: 65 20 6f 66 20 74 68 65 20 63 6f 6c 75 6d 6e 20  e of the column 
5ea0: 28 28 69 6e 20 74 68 65 20 61 62 6f 76 65 20 54  ((in the above T
5eb0: 61 62 6c 65 29 20 63 6f 6e 74 61 69 6e 69 6e 67  able) containing
5ec0: 20 3c 62 3e 4c 69 6e 65 73 74 72 69 6e 67 73 3c   <b>Linestrings<
5ed0: 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c  /b>.</li>..<li><
5ee0: 69 3e 6e 6f 64 65 5f 66 72 6f 6d 3c 2f 69 3e 3a  i>node_from</i>:
5ef0: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6c   name of the col
5f00: 75 6d 6e 20 74 6f 20 62 65 20 61 64 64 65 64 20  umn to be added 
5f10: 74 6f 20 74 68 65 20 61 62 6f 76 65 20 54 61 62  to the above Tab
5f20: 6c 65 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 64  le and populated
5f30: 20 77 69 74 68 20 61 70 70 72 6f 70 72 69 61 74   with appropriat
5f40: 65 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 62  e <b>NodeFrom</b
5f50: 3e 20 49 44 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  > IDs.</li>..<li
5f60: 3e 3c 69 3e 6e 6f 64 65 5f 74 6f 3c 2f 69 3e 3a  ><i>node_to</i>:
5f70: 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6f 6c   name of the col
5f80: 75 6d 6e 20 74 6f 20 62 65 20 61 64 64 65 64 20  umn to be added 
5f90: 74 6f 20 74 68 65 20 61 62 6f 76 65 20 54 61 62  to the above Tab
5fa0: 6c 65 20 61 6e 64 20 70 6f 70 75 6c 61 74 65 64  le and populated
5fb0: 20 77 69 74 68 20 61 70 70 72 6f 70 72 69 61 74   with appropriat
5fc0: 65 20 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 20  e <b>NodeTo</b> 
5fd0: 49 44 73 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74  IDs.<br>..<u>Not
5fe0: 65 3c 2f 75 3e 3a 20 62 6f 74 68 20 3c 62 3e 4e  e</u>: both <b>N
5ff0: 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20 61 6e 64 20  odeFrom</b> and 
6000: 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 20 63 6f  <b>NodeTo</b> co
6010: 6c 75 6d 6e 73 20 73 68 6f 75 6c 64 20 6e 6f 74  lumns should not
6020: 20 62 65 20 61 6c 72 65 61 64 79 20 64 65 66 69   be already defi
6030: 6e 65 64 20 69 6e 20 74 68 65 20 61 62 6f 76 65  ned in the above
6040: 20 54 61 62 6c 65 2e 3c 2f 6c 69 3e 0d 0a 3c 2f   Table.</li>..</
6050: 6f 6c 3e 0d 0a 3c 62 3e 43 72 65 61 74 65 52 6f  ol>..<b>CreateRo
6060: 75 74 69 6e 67 4e 6f 64 65 73 28 29 3c 2f 62 3e  utingNodes()</b>
6070: 20 77 69 6c 6c 20 72 65 74 75 72 6e 20 3c 62 3e   will return <b>
6080: 31 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69  1</b> (<i>aka</i
6090: 3e 20 3c 62 3e 54 52 55 45 3c 2f 62 3e 29 20 6f  > <b>TRUE</b>) o
60a0: 6e 20 73 75 63 63 65 73 73 3b 20 61 6e 20 65 78  n success; an ex
60b0: 63 65 70 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20  ception will be 
60c0: 72 61 69 73 65 64 20 6f 6e 20 66 61 69 6c 75 72  raised on failur
60d0: 65 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c  e.<br>..<u>Note<
60e0: 2f 75 3e 3a 20 79 6f 75 20 63 61 6e 20 63 61 6c  /u>: you can cal
60f0: 6c 20 3c 62 3e 43 72 65 61 74 65 52 6f 75 74 69  l <b>CreateRouti
6100: 6e 67 5f 47 65 74 4c 61 73 74 45 72 72 6f 72 28  ng_GetLastError(
6110: 29 3c 2f 62 3e 20 73 6f 20 74 6f 20 70 72 65 63  )</b> so to prec
6120: 69 73 65 6c 79 20 69 64 65 6e 74 69 66 79 20 74  isely identify t
6130: 68 65 20 63 61 75 73 65 20 61 63 63 6f 75 6e 74  he cause account
6140: 69 6e 67 20 66 6f 72 20 66 61 69 6c 75 72 65 2e  ing for failure.
6150: 3c 62 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74  <br><br><br>..<t
6160: 61 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63  able bgcolor="#c
6170: 30 66 66 63 30 22 20 63 65 6c 6c 73 70 61 63 69  0ffc0" cellspaci
6180: 6e 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64 64  ng="10" cellpadd
6190: 69 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e  ing="6"><tr><td>
61a0: 0d 0a 3c 68 33 3e 48 61 6e 64 6c 69 6e 67 20 64  ..<h3>Handling d
61b0: 79 6e 61 6d 69 63 20 4e 65 74 77 6f 72 6b 73 3c  ynamic Networks<
61c0: 2f 68 33 3e 0d 0a 53 6f 6d 65 74 69 6d 65 73 20  /h3>..Sometimes 
61d0: 69 74 20 68 61 70 70 65 6e 73 20 74 68 61 74 20  it happens that 
61e0: 61 20 4e 65 74 77 6f 72 6b 20 63 6f 75 6c 64 20  a Network could 
61f0: 62 65 20 73 75 62 6a 65 63 74 20 74 6f 20 72 61  be subject to ra
6200: 74 68 65 72 20 66 72 65 71 75 65 6e 74 20 63 68  ther frequent ch
6210: 61 6e 67 65 73 3a 20 73 6f 6d 65 20 6e 65 77 20  anges: some new 
6220: 4c 69 6e 6b 73 20 72 65 71 75 69 72 65 20 74 6f  Links require to
6230: 20 62 65 20 61 64 64 65 64 2c 20 6f 62 73 6f 6c   be added, obsol
6240: 65 74 65 20 4c 69 6e 6b 73 20 72 65 71 75 69 72  ete Links requir
6250: 65 20 74 6f 20 62 65 20 72 65 6d 6f 76 65 64 2c  e to be removed,
6260: 20 6f 74 68 65 72 20 4c 69 6e 6b 73 20 6d 61 79   other Links may
6270: 20 61 73 73 75 6d 65 20 61 20 64 69 66 66 65 72   assume a differ
6280: 65 6e 74 20 43 6f 73 74 2c 20 6f 6e 65 2d 77 61  ent Cost, one-wa
6290: 79 73 20 63 6f 75 6c 64 20 62 65 20 72 65 76 65  ys could be reve
62a0: 72 73 65 64 2c 20 74 68 65 20 64 69 73 63 69 70  rsed, the discip
62b0: 6c 69 6e 65 20 6f 66 20 70 65 64 65 73 74 72 69  line of pedestri
62c0: 61 6e 20 61 72 65 61 73 20 63 6f 75 6c 64 20 62  an areas could b
62d0: 65 20 6d 6f 64 69 66 69 65 64 20 61 6e 64 20 73  e modified and s
62e0: 6f 20 6f 6e 2e 3c 62 72 3e 0d 0a 41 20 56 69 72  o on.<br>..A Vir
62f0: 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c  tualRouting Tabl
6300: 65 20 69 73 20 61 6c 77 61 79 73 20 62 61 73 65  e is always base
6310: 64 20 6f 6e 20 61 20 63 6f 6d 70 61 6e 69 6f 6e  d on a companion
6320: 20 42 69 6e 61 72 79 20 44 61 74 61 20 54 61 62   Binary Data Tab
6330: 6c 65 2c 20 74 68 61 74 20 69 73 20 69 6e 74 72  le, that is intr
6340: 69 6e 73 69 63 61 6c 6c 79 20 3c 62 3e 73 74 61  insically <b>sta
6350: 74 69 63 3c 2f 62 3e 2c 20 61 6e 64 20 63 6f 6e  tic</b>, and con
6360: 73 65 71 75 65 6e 74 6c 79 20 79 6f 75 20 61 72  sequently you ar
6370: 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 72 65  e required to re
6380: 2d 63 72 65 61 74 65 20 62 6f 74 68 20 74 68 65  -create both the
6390: 6d 20 66 72 6f 6d 20 74 69 6d 65 20 74 6f 20 74  m from time to t
63a0: 69 6d 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20  ime in order to 
63b0: 73 75 70 70 6f 72 74 20 61 6c 6c 20 72 65 63 65  support all rece
63c0: 6e 74 20 63 68 61 6e 67 65 73 20 61 66 66 65 63  nt changes affec
63d0: 74 69 6e 67 20 74 68 65 20 75 6e 64 65 72 6c 61  ting the underla
63e0: 79 69 6e 67 20 4e 65 74 77 6f 72 6b 2e 3c 62 72  ying Network.<br
63f0: 3e 0d 0a 54 68 65 20 6f 70 74 69 6d 61 6c 20 66  >..The optimal f
6400: 72 65 71 75 65 6e 63 79 20 66 6f 72 20 63 79 63  requency for cyc
6410: 6c 69 63 61 6c 6c 79 20 72 65 66 72 65 73 68 69  lically refreshi
6420: 6e 67 20 74 68 65 20 52 6f 75 74 69 6e 67 20 54  ng the Routing T
6430: 61 62 6c 65 73 20 73 74 72 69 63 74 6c 79 20 64  ables strictly d
6440: 65 70 65 6e 64 73 20 6f 6e 20 73 70 65 63 69 66  epends on specif
6450: 69 63 20 72 65 71 75 69 72 65 6d 65 6e 74 73 2c  ic requirements,
6460: 20 62 75 74 20 74 68 65 20 74 77 6f 20 6f 76 65   but the two ove
6470: 72 61 6c 6c 20 61 70 70 72 6f 61 63 68 65 73 20  rall approaches 
6480: 61 72 65 20 63 6f 6d 6d 6f 6e 6c 79 20 61 64 6f  are commonly ado
6490: 70 74 65 64 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c 69  pted:..<ol>..<li
64a0: 3e 3c 62 3e 6c 6f 77 20 66 72 65 71 75 65 6e 63  ><b>low frequenc
64b0: 79 20 72 65 66 72 65 73 68 3c 2f 62 3e 3a 20 62  y refresh</b>: b
64c0: 65 73 74 20 66 69 74 20 66 6f 72 20 73 6c 6f 77  est fit for slow
64d0: 6c 79 20 65 76 6f 6c 76 69 6e 67 20 4e 65 74 77  ly evolving Netw
64e0: 6f 72 6b 73 2e 3c 62 72 3e 0d 0a 49 6e 20 74 68  orks.<br>..In th
64f0: 69 73 20 63 61 73 65 20 72 65 2d 63 72 65 61 74  is case re-creat
6500: 69 6e 67 20 74 68 65 20 4e 65 74 77 6f 72 6b 20  ing the Network 
6510: 54 61 62 6c 65 73 20 6f 6e 63 65 20 61 20 6d 6f  Tables once a mo
6520: 6e 74 68 20 2f 20 77 65 65 6b 20 2f 20 64 61 79  nth / week / day
6530: 20 63 6f 75 6c 64 20 62 65 20 72 65 61 73 6f 6e   could be reason
6540: 61 62 6c 79 20 65 6e 6f 75 67 68 2e 0d 0a 52 65  ably enough...Re
6550: 63 72 65 61 74 69 6e 67 20 74 68 65 20 54 61 62  creating the Tab
6560: 6c 65 73 20 66 72 6f 6d 20 73 63 72 61 74 63 68  les from scratch
6570: 20 75 73 75 61 6c 6c 79 20 72 65 71 75 69 72 65   usually require
6580: 73 20 73 65 76 65 72 61 6c 20 73 65 63 6f 6e 64  s several second
6590: 73 20 28 6f 72 20 65 76 65 6e 20 6c 65 73 73 2c  s (or even less,
65a0: 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68   depending on th
65b0: 65 20 6e 75 6d 62 65 72 20 6f 66 20 4c 69 6e 6b  e number of Link
65c0: 73 29 2e 3c 62 72 3e 0d 0a 54 68 65 20 72 65 66  s).<br>..The ref
65d0: 72 65 73 68 20 61 63 74 69 76 69 74 69 65 73 20  resh activities 
65e0: 63 6f 75 6c 64 20 62 65 20 6f 70 70 6f 72 74 75  could be opportu
65f0: 6e 65 6c 79 20 70 6c 61 6e 6e 65 64 20 61 74 20  nely planned at 
6600: 6c 6f 77 20 74 72 61 66 66 69 63 20 68 6f 75 72  low traffic hour
6610: 73 20 28 65 2e 67 2e 20 64 75 72 69 6e 67 20 74  s (e.g. during t
6620: 68 65 20 6e 69 67 68 74 29 2c 20 61 6e 64 20 3c  he night), and <
6630: 62 3e 43 72 65 61 74 65 52 6f 75 74 69 6e 67 28  b>CreateRouting(
6640: 29 3c 2f 62 3e 20 63 6f 75 6c 64 20 62 65 20 75  )</b> could be u
6650: 73 65 66 75 6c 6c 79 20 63 61 6c 6c 65 64 20 62  sefully called b
6660: 79 20 65 6e 61 62 6c 69 6e 67 20 74 68 65 20 3c  y enabling the <
6670: 62 3e 6f 76 65 72 77 72 69 74 65 3c 2f 62 3e 20  b>overwrite</b> 
6680: 6f 70 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  option.</li>..<l
6690: 69 3e 3c 62 3e 6d 65 64 69 75 6d 2d 68 69 67 68  i><b>medium-high
66a0: 20 66 72 65 71 75 65 6e 63 79 20 72 65 66 72 65   frequency refre
66b0: 73 68 3c 2f 62 3e 3a 20 62 65 73 74 20 66 69 74  sh</b>: best fit
66c0: 20 66 6f 72 20 71 75 69 63 6b 6c 79 20 65 76 6f   for quickly evo
66d0: 6c 76 69 6e 67 20 4e 65 74 77 6f 72 6b 73 2e 3c  lving Networks.<
66e0: 62 72 3e 0d 0a 52 65 2d 63 72 65 61 74 69 6e 67  br>..Re-creating
66f0: 20 74 68 65 20 4e 65 74 77 6f 72 6b 20 54 61 62   the Network Tab
6700: 6c 65 73 20 6f 6e 63 65 20 70 65 72 20 68 6f 75  les once per hou
6710: 72 20 28 6f 72 20 65 76 65 6e 20 6d 6f 72 65 20  r (or even more 
6720: 66 72 65 71 75 65 6e 74 6c 79 29 20 63 6f 75 6c  frequently) coul
6730: 64 20 62 65 20 73 74 72 69 63 74 6c 79 20 72 65  d be strictly re
6740: 71 75 69 72 65 64 2c 20 61 6e 64 20 66 72 65 71  quired, and freq
6750: 75 65 6e 74 20 3c 62 3e 6f 75 74 20 6f 66 20 73  uent <b>out of s
6760: 65 72 76 69 63 65 3c 2f 62 3e 20 70 65 72 69 6f  ervice</b> perio
6770: 64 73 20 77 68 69 6c 65 20 77 61 69 74 69 6e 67  ds while waiting
6780: 20 66 6f 72 20 74 68 65 20 72 65 66 72 65 73 68   for the refresh
6790: 20 70 72 6f 63 65 73 73 20 74 6f 20 63 6f 6d 70   process to comp
67a0: 6c 65 74 65 20 63 6f 75 6c 64 20 65 61 73 69 6c  lete could easil
67b0: 79 20 62 65 20 75 6e 61 63 63 65 70 74 61 62 6c  y be unacceptabl
67c0: 65 2e 3c 62 72 3e 0d 0a 49 6e 20 74 68 69 73 20  e.<br>..In this 
67d0: 63 61 73 65 20 79 6f 75 20 63 6f 75 6c 64 20 75  case you could u
67e0: 73 65 66 75 6c 6c 79 20 61 64 6f 70 74 20 61 20  sefully adopt a 
67f0: 3c 62 3e 6d 75 6c 74 69 2d 74 68 72 65 61 64 65  <b>multi-threade
6800: 64 20 73 74 72 61 74 65 67 79 3c 2f 62 3e 3a 0d  d strategy</b>:.
6810: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62 3e 74 68  .<ul>..<li><b>th
6820: 72 65 61 64 20 23 31 3c 2f 62 3e 20 28 3c 69 3e  read #1</b> (<i>
6830: 74 68 65 20 72 65 61 64 65 72 3c 2f 69 3e 29 3a  the reader</i>):
6840: 20 74 68 69 73 20 66 69 72 73 74 20 74 68 72 65   this first thre
6850: 61 64 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74  ad is intended t
6860: 6f 20 73 65 72 76 69 63 65 20 61 6e 79 20 69 6e  o service any in
6870: 63 6f 6d 69 6e 67 20 52 6f 75 74 69 6e 67 20 72  coming Routing r
6880: 65 71 75 65 73 74 2e 20 49 74 20 77 69 6c 6c 20  equest. It will 
6890: 62 65 20 61 6c 77 61 79 73 20 61 63 74 69 76 65  be always active
68a0: 2c 20 61 6e 64 20 77 69 6c 6c 20 74 61 72 67 65  , and will targe
68b0: 74 20 61 20 77 65 6c 6c 20 6b 6e 6f 77 6e 20 56  t a well known V
68c0: 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61  irtualRouting Ta
68d0: 62 6c 65 20 28 65 2e 67 2e 20 3c 62 3e 6d 79 5f  ble (e.g. <b>my_
68e0: 72 6f 75 74 69 6e 67 3c 2f 62 3e 20 62 61 73 65  routing</b> base
68f0: 64 20 6f 6e 20 3c 62 3e 6d 79 5f 72 6f 75 74 69  d on <b>my_routi
6900: 6e 67 5f 64 61 74 61 3c 2f 62 3e 29 2e 3c 2f 6c  ng_data</b>).</l
6910: 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 74 68 72 65 61  i>..<li><b>threa
6920: 64 20 23 32 3c 2f 62 3e 20 28 3c 69 3e 74 68 65  d #2</b> (<i>the
6930: 20 77 72 69 74 65 72 3c 2f 69 3e 29 3a 20 74 68   writer</i>): th
6940: 69 73 20 73 65 63 6f 6e 64 20 74 68 72 65 61 64  is second thread
6950: 20 69 73 20 6a 75 73 74 20 69 6e 74 65 6e 64 65   is just intende
6960: 64 20 74 6f 20 72 65 2d 63 72 65 61 74 65 20 62  d to re-create b
6970: 6f 74 68 20 4e 65 74 77 6f 72 6b 20 54 61 62 6c  oth Network Tabl
6980: 65 73 20 61 74 20 70 72 65 64 65 66 69 6e 65 64  es at predefined
6990: 20 69 6e 74 65 72 76 61 6c 73 2c 20 61 6e 64 20   intervals, and 
69a0: 69 74 20 77 69 6c 6c 20 73 6c 65 65 70 20 62 65  it will sleep be
69b0: 74 77 65 65 6e 20 61 6e 20 69 6e 74 65 72 76 61  tween an interva
69c0: 6c 20 61 6e 64 20 74 68 65 20 6f 74 68 65 72 2e  l and the other.
69d0: 3c 62 72 3e 0d 0a 57 68 65 6e 20 74 68 69 73 20  <br>..When this 
69e0: 74 68 72 65 61 64 20 61 77 61 6b 65 6e 73 20 77  thread awakens w
69f0: 69 6c 6c 20 72 65 2d 63 72 65 61 74 65 20 62 6f  ill re-create bo
6a00: 74 68 20 4e 65 74 77 6f 72 6b 20 54 61 62 6c 65  th Network Table
6a10: 73 20 62 79 20 75 73 69 6e 67 20 64 69 66 66 65  s by using diffe
6a20: 72 65 6e 74 20 6e 61 6d 65 73 2c 20 61 6e 64 20  rent names, and 
6a30: 77 69 6c 6c 20 6f 76 65 72 77 72 69 74 65 20 74  will overwrite t
6a40: 68 65 20 73 74 61 6e 64 61 72 64 20 6f 6e 65 73  he standard ones
6a50: 20 6a 75 73 74 20 61 74 20 74 68 65 20 76 65 72   just at the ver
6a60: 79 20 65 6e 64 20 6f 66 20 74 68 65 20 70 72 6f  y end of the pro
6a70: 63 65 73 73 20 28 61 63 74 69 76 61 74 69 6e 67  cess (activating
6a80: 20 61 20 73 65 6d 61 70 68 6f 72 65 20 64 75 72   a semaphore dur
6a90: 69 6e 67 20 74 68 69 73 20 73 68 6f 72 74 2d 74  ing this short-t
6aa0: 69 6d 65 64 20 6c 61 73 74 20 73 74 65 70 20 69  imed last step i
6ab0: 73 20 68 69 67 68 6c 79 20 72 65 63 6f 6d 6d 65  s highly recomme
6ac0: 6e 64 65 64 29 2e 3c 62 72 3e 0d 0a 53 6f 6d 65  nded).<br>..Some
6ad0: 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 69 73 20  thing like this 
6ae0: 70 73 65 75 64 6f 2d 63 6f 64 65 20 65 78 65 6d  pseudo-code exem
6af0: 70 6c 69 66 69 65 73 3a 0d 0a 3c 76 65 72 62 61  plifies:..<verba
6b00: 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20 43 72 65  tim>..SELECT Cre
6b10: 61 74 65 52 6f 75 74 69 6e 67 28 27 6e 65 77 5f  ateRouting('new_
6b20: 6d 79 5f 72 6f 75 74 69 6e 67 5f 64 61 74 61 27  my_routing_data'
6b30: 2c 20 27 6e 65 77 5f 6d 79 5f 72 6f 75 74 69 6e  , 'new_my_routin
6b40: 67 27 2c 20 2e 2e 2e 29 3b 0d 0a 0d 0a 2d 2d 3e  g', ...);....-->
6b50: 20 73 74 61 72 74 20 74 68 65 20 73 65 6d 61 70   start the semap
6b60: 68 6f 72 65 20 73 6f 20 74 6f 20 6c 6f 63 6b 20  hore so to lock 
6b70: 74 68 65 20 6f 74 68 65 72 20 74 68 72 65 61 64  the other thread
6b80: 0d 0a 0d 0a 42 45 47 49 4e 3b 0d 0a 44 52 4f 50  ....BEGIN;..DROP
6b90: 20 54 41 42 4c 45 20 6d 79 5f 72 6f 75 74 69 6e   TABLE my_routin
6ba0: 67 3b 0d 0a 44 52 4f 50 20 54 41 42 4c 45 20 6d  g;..DROP TABLE m
6bb0: 79 5f 72 6f 75 74 69 6e 67 5f 64 61 74 61 3b 0d  y_routing_data;.
6bc0: 0a 53 45 4c 45 43 54 20 43 6c 6f 6e 65 54 61 62  .SELECT CloneTab
6bd0: 6c 65 28 27 4d 41 49 4e 27 2c 20 27 6e 65 77 5f  le('MAIN', 'new_
6be0: 6d 79 5f 72 6f 75 74 69 6e 67 5f 64 61 74 61 27  my_routing_data'
6bf0: 2c 20 27 6d 79 5f 72 6f 75 74 69 6e 67 5f 64 61  , 'my_routing_da
6c00: 74 61 27 2c 20 30 29 3b 0d 0a 43 52 45 41 54 45  ta', 0);..CREATE
6c10: 20 56 49 52 54 55 41 4c 20 54 41 42 4c 45 20 6d   VIRTUAL TABLE m
6c20: 79 5f 72 6f 75 74 69 6e 67 20 55 53 49 4e 47 20  y_routing USING 
6c30: 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 28 27  VirtualRouting('
6c40: 6d 79 5f 72 6f 75 74 69 6e 67 5f 64 61 74 61 27  my_routing_data'
6c50: 29 3b 0d 0a 44 52 4f 50 20 54 41 42 4c 45 20 6e  );..DROP TABLE n
6c60: 65 77 5f 6d 79 5f 72 6f 75 74 69 6e 67 3b 0d 0a  ew_my_routing;..
6c70: 44 52 4f 50 20 54 41 42 4c 45 20 6e 65 77 5f 6d  DROP TABLE new_m
6c80: 79 5f 72 6f 75 74 69 6e 67 5f 64 61 74 61 3b 0d  y_routing_data;.
6c90: 0a 43 4f 4d 4d 49 54 3b 0d 0a 0d 0a 2d 2d 3e 20  .COMMIT;....--> 
6ca0: 72 65 6d 6f 76 65 20 74 68 65 20 73 65 6d 61 70  remove the semap
6cb0: 68 6f 72 65 0d 0a 3c 2f 76 65 72 62 61 74 69 6d  hore..</verbatim
6cc0: 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20  >..<u>Note</u>: 
6cd0: 73 74 72 69 63 74 6c 79 20 72 65 73 70 65 63 74  strictly respect
6ce0: 69 6e 67 20 74 68 65 20 61 62 6f 76 65 20 73 65  ing the above se
6cf0: 71 75 65 6e 63 65 20 6f 66 20 53 51 4c 20 6f 70  quence of SQL op
6d00: 65 72 61 74 69 6f 6e 73 20 69 73 20 61 62 73 6f  erations is abso
6d10: 6c 75 74 65 6c 79 20 72 65 71 75 69 72 65 64 2e  lutely required.
6d20: 3c 2f 6c 69 3e 20 0d 0a 3c 2f 75 6c 3e 3c 2f 6c  </li> ..</ul></l
6d30: 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c 2f 74 64 3e  i>..</ol>..</td>
6d40: 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d  </tr>..</table>.
6d50: 0a 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 67  .<br>..<table bg
6d60: 63 6f 6c 6f 72 3d 22 23 66 66 62 30 36 30 22 20  color="#ffb060" 
6d70: 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 31 30 22  cellspacing="10"
6d80: 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22   cellpadding="6"
6d90: 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 57  ><tr><td>..<h3>W
6da0: 61 72 6e 69 6e 67 3a 20 68 6f 77 20 74 6f 20 63  arning: how to c
6db0: 6f 72 72 65 63 74 6c 79 20 64 72 6f 70 20 4e 65  orrectly drop Ne
6dc0: 74 77 6f 72 6b 20 54 61 62 6c 65 73 3c 2f 68 33  twork Tables</h3
6dd0: 3e 0d 0a 57 68 65 6e 20 64 72 6f 70 70 69 6e 67  >..When dropping
6de0: 20 61 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e   a VirtualRoutin
6df0: 67 20 54 61 62 6c 65 20 61 6e 64 20 69 74 73 20  g Table and its 
6e00: 63 6f 6d 70 61 6e 69 6f 6e 20 42 69 6e 61 72 79  companion Binary
6e10: 20 44 61 74 61 20 54 61 62 6c 65 20 66 6f 6c 6c   Data Table foll
6e20: 6f 77 69 6e 67 20 74 68 65 20 63 6f 72 72 65 63  owing the correc
6e30: 74 20 73 65 71 75 65 6e 63 65 20 6f 66 20 53 51  t sequence of SQ
6e40: 4c 20 63 6f 6d 6d 61 6e 64 73 20 69 73 20 70 61  L commands is pa
6e50: 72 61 6d 6f 75 6e 74 2e 3c 62 72 3e 0d 0a 46 61  ramount.<br>..Fa
6e60: 69 6c 69 6e 67 20 74 6f 20 73 74 72 69 63 74 6c  iling to strictl
6e70: 79 20 72 65 73 70 65 63 74 20 74 68 65 20 65 78  y respect the ex
6e80: 70 65 63 74 65 64 20 73 65 71 75 65 6e 63 65 20  pected sequence 
6e90: 77 69 6c 6c 20 73 75 72 65 6c 79 20 63 61 75 73  will surely caus
6ea0: 65 20 79 6f 75 20 73 65 76 65 72 61 6c 20 74 72  e you several tr
6eb0: 6f 75 62 6c 65 73 20 61 6e 64 20 73 65 76 65 72  oubles and sever
6ec0: 65 20 68 65 61 64 61 63 68 65 73 2c 20 61 6e 64  e headaches, and
6ed0: 20 77 69 6c 6c 20 70 6f 73 73 69 62 6c 79 20 6c   will possibly l
6ee0: 65 61 64 20 74 6f 20 61 6e 20 69 72 72 65 6d 65  ead to an irreme
6ef0: 64 69 61 62 6c 79 20 63 6f 72 72 75 70 74 65 64  diably corrupted
6f00: 20 64 61 74 61 62 61 73 65 2e 0d 0a 3c 6f 6c 3e   database...<ol>
6f10: 0d 0a 3c 6c 69 3e 79 6f 75 20 61 72 65 20 61 6c  ..<li>you are al
6f20: 77 61 79 73 20 65 78 70 65 63 74 65 64 20 74 6f  ways expected to
6f30: 20 44 52 4f 50 20 66 69 72 73 74 20 74 68 65 20   DROP first the 
6f40: 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54  VirtualRouting T
6f50: 61 62 6c 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  able.</li>..<li>
6f60: 79 6f 75 20 63 61 6e 20 73 61 66 65 6c 79 20 44  you can safely D
6f70: 52 4f 50 20 74 68 65 20 63 6f 6d 70 61 6e 69 6f  ROP the companio
6f80: 6e 20 42 69 6e 61 72 79 20 44 61 74 61 20 54 61  n Binary Data Ta
6f90: 62 6c 65 20 6f 6e 6c 79 20 6f 6e 63 65 20 69 74  ble only once it
6fa0: 27 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 72 65 66  's no longer ref
6fb0: 65 72 65 6e 63 65 64 20 62 79 20 74 68 65 20 56  erenced by the V
6fc0: 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61  irtualRouting Ta
6fd0: 62 6c 65 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 62  ble.</li>..<li>b
6fe0: 79 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20  y following the 
6ff0: 72 65 76 65 72 73 65 20 73 65 71 75 65 6e 63 65  reverse sequence
7000: 20 79 6f 75 27 6c 6c 20 64 69 72 65 63 74 6c 79   you'll directly
7010: 20 63 72 65 61 74 65 20 61 6e 20 3c 62 3e 6f 72   create an <b>or
7020: 70 68 61 6e 3c 2f 62 3e 20 56 69 72 74 75 61 6c  phan</b> Virtual
7030: 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20 74 68  Routing Table th
7040: 61 74 20 63 61 6e 6e 6f 74 20 62 65 20 61 63 63  at cannot be acc
7050: 65 73 73 65 64 20 61 6e 79 20 6c 6f 6e 67 65 72  essed any longer
7060: 2c 20 61 6e 64 20 74 68 61 74 20 77 69 6c 6c 20  , and that will 
7070: 63 6f 6e 73 65 71 75 65 6e 74 6c 79 20 72 65 66  consequently ref
7080: 75 73 65 20 74 6f 20 62 65 20 64 72 6f 70 70 65  use to be droppe
7090: 64 2e 3c 62 72 3e 0d 0a 42 65 20 77 61 72 6e 65  d.<br>..Be warne
70a0: 64 20 21 21 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e  d !!</li>..</ol>
70b0: 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f  ..</td></tr>..</
70c0: 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 3c 62 72 3e  table>..<br><br>
70d0: 0d 0a 3c 68 72 3e 3c 62 72 3e 0d 0a 3c 68 31 3e  ..<hr><br>..<h1>
70e0: 3c 61 20 6e 61 6d 65 3d 22 66 72 6f 6d 5f 74 6f  <a name="from_to
70f0: 22 3e 34 20 2d 20 53 6f 6c 76 69 6e 67 20 63 6c  ">4 - Solving cl
7100: 61 73 73 69 63 20 53 68 6f 72 74 65 73 74 20 50  assic Shortest P
7110: 61 74 68 20 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e  ath problems</a>
7120: 3c 2f 68 31 3e 0d 0a 54 68 65 20 6d 6f 73 74 20  </h1>..The most 
7130: 63 6c 61 73 73 69 63 20 53 68 6f 72 74 65 73 74  classic Shortest
7140: 20 50 61 74 68 20 70 72 6f 62 6c 65 6d 20 72 65   Path problem re
7150: 71 75 69 72 65 73 20 74 6f 20 69 64 65 6e 74 69  quires to identi
7160: 66 79 20 74 68 65 20 6f 70 74 69 6d 61 6c 20 63  fy the optimal c
7170: 6f 6e 6e 65 63 74 69 6f 6e 20 62 65 74 77 65 65  onnection betwee
7180: 6e 20 61 6e 20 3c 62 3e 4f 72 69 67 69 6e 20 4e  n an <b>Origin N
7190: 6f 64 65 3c 2f 62 3e 20 61 6e 64 20 61 20 3c 62  ode</b> and a <b
71a0: 3e 44 65 73 74 69 6e 61 74 69 6f 6e 20 4e 6f 64  >Destination Nod
71b0: 65 3c 2f 62 3e 2e 3c 62 72 3e 0d 0a 57 65 20 63  e</b>.<br>..We c
71c0: 61 6e 20 65 61 73 69 6c 79 20 74 72 61 6e 73 6c  an easily transl
71d0: 61 74 65 20 73 75 63 68 20 61 20 70 72 6f 62 6c  ate such a probl
71e0: 65 6d 20 69 6e 74 6f 20 61 20 73 69 6d 70 6c 65  em into a simple
71f0: 20 53 51 4c 20 71 75 65 72 79 20 74 61 72 67 65   SQL query targe
7200: 74 69 6e 67 20 73 6f 6d 65 20 56 69 72 74 75 61  ting some Virtua
7210: 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 2e 0d  lRouting Table..
7220: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c  .<verbatim>..SEL
7230: 45 43 54 20 2a 20 0d 0a 46 52 4f 4d 20 62 79 66  ECT * ..FROM byf
7240: 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46  oot..WHERE NodeF
7250: 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44  rom = 178731 AND
7260: 20 4e 6f 64 65 54 6f 20 3d 20 31 38 33 32 38 36   NodeTo = 183286
7270: 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a  ;..</verbatim>..
7280: 3c 74 61 62 6c 65 20 62 6f 72 64 65 72 3d 22 31  <table border="1
7290: 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66  " bgcolor="#ffff
72a0: 63 66 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  cf" cellspacing=
72b0: 22 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d  "4" cellpadding=
72c0: 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67  "6">..<tr><th bg
72d0: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
72e0: 41 6c 67 6f 72 69 74 68 6d 3c 2f 74 68 3e 3c 74  Algorithm</th><t
72f0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
7300: 61 30 22 3e 52 65 71 75 65 73 74 3c 2f 74 68 3e  a0">Request</th>
7310: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
7320: 64 30 61 30 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74  d0a0">Options</t
7330: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
7340: 64 30 64 30 61 30 22 3e 44 65 6c 69 6d 69 74 65  d0d0a0">Delimite
7350: 72 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  r</th><th bgcolo
7360: 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74  r="#d0d0a0">Rout
7370: 65 49 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  eId</th><th bgco
7380: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f  lor="#d0d0a0">Ro
7390: 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74 68 20 62  uteRow</th><th b
73a0: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
73b0: 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68 20 62 67  >Role</th><th bg
73c0: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
73d0: 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68 3e 3c 74  LinkRowid</th><t
73e0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
73f0: 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68  a0">NodeFrom</th
7400: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
7410: 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74  0d0a0">NodeTo</t
7420: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
7430: 64 30 64 30 61 30 22 3e 50 6f 69 6e 74 46 72 6f  d0d0a0">PointFro
7440: 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  m</th><th bgcolo
7450: 72 3d 22 23 64 30 64 30 61 30 22 3e 50 6f 69 6e  r="#d0d0a0">Poin
7460: 74 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  tTo</th><th bgco
7470: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 54 6f  lor="#d0d0a0">To
7480: 6c 65 72 61 6e 63 65 3c 2f 74 68 3e 3c 74 68 20  lerance</th><th 
7490: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
74a0: 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20 62  ">Cost</th><th b
74b0: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
74c0: 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c 74  >Geometry</th><t
74d0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
74e0: 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74  a0">Name</th></t
74f0: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 44 69  r>..<tr>..<td>Di
7500: 6a 6b 73 74 72 61 3c 2f 74 64 3e 3c 74 64 3e 53  jkstra</td><td>S
7510: 68 6f 72 74 65 73 74 20 50 61 74 68 3c 2f 74 64  hortest Path</td
7520: 3e 3c 74 64 3e 46 75 6c 6c 3c 2f 74 64 3e 3c 74  ><td>Full</td><t
7530: 64 3e 2c 20 26 23 39 31 3b 64 65 63 3d 34 34 2c  d>, &#91;dec=44,
7540: 20 68 65 78 3d 32 63 26 23 39 33 3b 3c 2f 74 64   hex=2c&#93;</td
7550: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
7560: 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">0</td><td ali
7570: 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
7580: 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c  ><td>Route</td><
7590: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
75a0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
75b0: 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8731</td><td ali
75c0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38  gn="right">18328
75d0: 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  6</td><td>NULL</
75e0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
75f0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
7600: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33   align="right">3
7610: 30 30 2e 39 31 32 32 30 38 3c 2f 74 64 3e 3c 74  00.912208</td><t
7620: 64 3e 42 4c 4f 42 20 73 7a 3d 32 37 32 20 47 45  d>BLOB sz=272 GE
7630: 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e  OMETRY</td><td>N
7640: 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ULL</td>..</tr>.
7650: 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
7660: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
7670: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
7680: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
7690: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f  lign="right">0</
76a0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
76b0: 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">1</td><td>L
76c0: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
76d0: 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 30 31 34  n="right">224014
76e0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
76f0: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
7700: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
7710: 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c  ht">182885</td><
7720: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
7730: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
7740: 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
7750: 22 72 69 67 68 74 22 3e 39 34 2e 38 31 32 34 32  "right">94.81242
7760: 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  4</td><td>NULL</
7770: 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45 54 52  td><td>VIA PIETR
7780: 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a  O ARETINO</td>..
7790: 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
77a0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
77b0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
77c0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
77d0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
77e0: 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">0</td><td ali
77f0: 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64  gn="right">2</td
7800: 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
7810: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
7820: 32 32 34 34 34 36 3c 2f 74 64 3e 3c 74 64 20 61  224446</td><td a
7830: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32  lign="right">182
7840: 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  885</td><td alig
7850: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38 30  n="right">178880
7860: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
7870: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
7880: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
7890: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 39  align="right">69
78a0: 2e 37 32 37 37 32 36 3c 2f 74 64 3e 3c 74 64 3e  .727726</td><td>
78b0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
78c0: 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64   MARGARITONE</td
78d0: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
78e0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
78f0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
7900: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
7910: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
7920: 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20  ight">0</td><td 
7930: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c  align="right">3<
7940: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
7950: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
7960: 74 22 3e 32 32 34 34 31 34 3c 2f 74 64 3e 3c 74  t">224414</td><t
7970: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
7980: 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61  178880</td><td a
7990: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
79a0: 32 38 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  286</td><td>NULL
79b0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
79c0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
79d0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
79e0: 3e 31 33 36 2e 33 37 32 30 35 37 3c 2f 74 64 3e  >136.372057</td>
79f0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
7a00: 3e 56 49 41 20 4d 41 52 47 41 52 49 54 4f 4e 45  >VIA MARGARITONE
7a10: 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f  </td>..</tr>..</
7a20: 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 4c 65  table>..<br>..Le
7a30: 74 27 73 20 71 75 69 63 6b 6c 79 20 65 78 61 6d  t's quickly exam
7a40: 69 6e 65 20 74 68 65 20 72 65 73 75 6c 74 73 65  ine the resultse
7a50: 74 20 72 65 74 75 72 6e 65 64 20 62 79 20 74 68  t returned by th
7a60: 65 20 61 62 6f 76 65 20 52 6f 75 74 69 6e 67 20  e above Routing 
7a70: 71 75 65 72 79 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c  query:..<ul>..<l
7a80: 69 3e 74 68 65 20 3c 62 3e 66 69 72 73 74 20 72  i>the <b>first r
7a90: 6f 77 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f  ow</b> (<i>aka</
7aa0: 69 3e 20 68 65 61 64 65 72 20 72 6f 77 29 20 68  i> header row) h
7ab0: 61 73 20 61 20 73 70 65 63 69 61 6c 20 69 6e 74  as a special int
7ac0: 65 72 70 72 65 74 61 74 69 6f 6e 2c 20 61 6e 64  erpretation, and
7ad0: 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20   is intended to 
7ae0: 73 75 6d 6d 61 72 69 7a 65 20 74 68 65 20 74 72  summarize the tr
7af0: 61 76 65 6c 20 73 6f 6c 75 74 69 6f 6e 20 61 73  avel solution as
7b00: 20 61 20 77 68 6f 6c 65 2e 3c 2f 6c 69 3e 0d 0a   a whole.</li>..
7b10: 3c 6c 69 3e 61 6c 6c 20 74 68 65 20 3c 62 3e 66  <li>all the <b>f
7b20: 6f 6c 6c 6f 77 69 6e 67 20 72 6f 77 73 3c 2f 62  ollowing rows</b
7b30: 3e 20 72 65 70 72 65 73 65 6e 74 20 61 20 73 69  > represent a si
7b40: 6e 67 6c 65 20 4c 69 6e 6b 20 72 65 71 75 69 72  ngle Link requir
7b50: 65 64 20 74 6f 20 62 75 69 6c 64 20 74 68 65 20  ed to build the 
7b60: 73 6f 6c 75 74 69 6f 6e 20 28 6f 70 74 69 6d 61  solution (optima
7b70: 20 70 61 74 68 29 3b 20 4c 69 6e 6b 73 20 61 72   path); Links ar
7b80: 65 20 6f 72 64 65 72 65 64 20 61 63 63 6f 72 64  e ordered accord
7b90: 69 6e 67 6c 79 20 74 6f 20 74 68 65 20 74 72 61  ingly to the tra
7ba0: 76 65 6c 20 64 69 72 65 63 74 69 6f 6e 20 63 6f  vel direction co
7bb0: 6e 6e 65 63 74 69 6e 67 20 74 68 65 20 4f 72 69  nnecting the Ori
7bc0: 67 69 6e 20 61 6e 64 20 74 68 65 20 44 65 73 74  gin and the Dest
7bd0: 69 6e 61 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c  ination.</li>..<
7be0: 6c 69 3e 63 6f 6c 75 6d 6e 73 20 3c 62 3e 41 6c  li>columns <b>Al
7bf0: 67 6f 72 69 74 68 6d 3c 2f 62 3e 2c 20 3c 62 3e  gorithm</b>, <b>
7c00: 52 65 71 75 65 73 74 3c 2f 62 3e 2c 20 3c 62 3e  Request</b>, <b>
7c10: 4f 70 74 69 6f 6e 73 3c 2f 62 3e 2c 20 3c 62 3e  Options</b>, <b>
7c20: 44 65 6c 69 6d 69 74 65 72 3c 2f 62 3e 2c 20 3c  Delimiter</b>, <
7c30: 62 3e 50 6f 69 6e 74 46 72 6f 6d 3c 2f 62 3e 2c  b>PointFrom</b>,
7c40: 20 3c 62 3e 50 6f 69 6e 74 54 6f 3c 2f 62 3e 2c   <b>PointTo</b>,
7c50: 20 3c 62 3e 54 6f 6c 65 72 61 6e 63 65 3c 2f 62   <b>Tolerance</b
7c60: 3e 20 61 6e 64 20 3c 62 3e 47 65 6f 6d 65 74 72  > and <b>Geometr
7c70: 79 3c 2f 62 3e 20 61 72 65 20 61 6c 77 61 79 73  y</b> are always
7c80: 20 73 65 74 20 74 6f 20 3c 62 3e 4e 55 4c 4c 3c   set to <b>NULL<
7c90: 2f 62 3e 20 65 78 63 65 70 74 20 74 68 61 74 20  /b> except that 
7ca0: 69 6e 20 74 68 65 20 66 69 72 73 74 20 72 6f 77  in the first row
7cb0: 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 73 65   of the resultse
7cc0: 74 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 63 6f  t:..<ul>..<li>co
7cd0: 6c 75 6d 6e 20 3c 62 3e 41 6c 67 6f 72 69 74 68  lumn <b>Algorith
7ce0: 6d 3c 2f 62 3e 20 61 63 63 6f 75 6e 74 73 20 66  m</b> accounts f
7cf0: 6f 72 20 74 68 65 20 52 6f 75 74 69 6e 67 20 41  or the Routing A
7d00: 6c 67 6f 72 69 74 68 6d 20 75 73 65 64 20 62 79  lgorithm used by
7d10: 20 74 68 65 20 63 75 72 72 65 6e 74 20 71 75 65   the current que
7d20: 72 79 20 28 3c 69 3e 44 69 6a 6b 73 74 72 61 27  ry (<i>Dijkstra'
7d30: 73 3c 2f 69 3e 20 6f 72 20 3c 69 3e 41 2a 3c 2f  s</i> or <i>A*</
7d40: 69 3e 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63  i>).</li>..<li>c
7d50: 6f 6c 75 6d 6e 20 3c 62 3e 52 65 71 75 65 73 74  olumn <b>Request
7d60: 3c 2f 62 3e 20 73 70 65 63 69 66 69 65 73 20 74  </b> specifies t
7d70: 68 65 20 65 78 61 63 74 20 6e 61 74 75 72 65 20  he exact nature 
7d80: 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 71  of the current q
7d90: 75 65 72 79 20 28 69 6e 20 74 68 69 73 20 73 70  uery (in this sp
7da0: 65 63 69 66 69 63 20 63 61 73 65 20 3c 69 3e 53  ecific case <i>S
7db0: 68 6f 72 74 65 73 74 20 50 61 74 68 3c 2f 69 3e  hortest Path</i>
7dc0: 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 77 65 27  ).</li>..<li>we'
7dd0: 6c 6c 20 69 67 6e 6f 72 65 20 66 6f 72 20 6e 6f  ll ignore for no
7de0: 77 20 63 6f 6c 75 6d 6e 73 20 3c 62 3e 4f 70 74  w columns <b>Opt
7df0: 69 6f 6e 73 3c 2f 62 3e 2c 20 3c 62 3e 44 65 6c  ions</b>, <b>Del
7e00: 69 6d 69 74 65 72 3c 2f 62 3e 2c 20 3c 62 3e 50  imiter</b>, <b>P
7e10: 6f 69 6e 74 46 72 6f 6d 3c 2f 62 3e 2c 20 3c 62  ointFrom</b>, <b
7e20: 3e 50 6f 69 6e 74 54 6f 3c 2f 62 3e 20 61 6e 64  >PointTo</b> and
7e30: 20 3c 62 3e 54 6f 6c 65 72 61 6e 63 65 3c 2f 62   <b>Tolerance</b
7e40: 3e 3a 20 74 68 65 69 72 20 72 65 73 70 65 63 74  >: their respect
7e50: 69 76 65 20 6d 65 61 6e 69 6e 67 73 20 77 69 6c  ive meanings wil
7e60: 6c 20 62 65 20 65 78 70 6c 61 69 6e 65 64 20 69  l be explained i
7e70: 6e 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 72 61  n following para
7e80: 67 72 61 70 68 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c  graphs.</li>..<l
7e90: 69 3e 63 6f 6c 75 6d 6e 20 3c 62 3e 47 65 6f 6d  i>column <b>Geom
7ea0: 65 74 72 79 3c 2f 62 3e 20 63 6f 6e 74 61 69 6e  etry</b> contain
7eb0: 73 20 61 20 3c 62 3e 4c 49 4e 45 53 54 52 49 4e  s a <b>LINESTRIN
7ec0: 47 3c 2f 62 3e 20 72 65 70 72 65 73 65 6e 74 61  G</b> representa
7ed0: 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 68 6f 6c  tion of the whol
7ee0: 65 20 74 72 61 76 65 6c 20 73 6f 6c 75 74 69 6f  e travel solutio
7ef0: 6e 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c  n.<br>..<u>Note<
7f00: 2f 75 3e 3a 20 6f 6e 20 3c 62 3e 4c 6f 67 69 63  /u>: on <b>Logic
7f10: 61 6c 20 4e 65 74 77 6f 72 6b 73 3c 2f 62 3e 20  al Networks</b> 
7f20: 28 6e 6f 74 20 73 75 70 70 6f 72 74 69 6e 67 20  (not supporting 
7f30: 47 65 6f 6d 65 74 72 69 65 73 29 20 3c 62 3e 47  Geometries) <b>G
7f40: 65 6f 6d 65 74 72 79 3c 2f 62 3e 20 77 69 6c 6c  eometry</b> will
7f50: 20 61 6c 77 61 79 73 20 62 65 20 3c 62 3e 4e 55   always be <b>NU
7f60: 4c 4c 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f  LL</b>.</li>..</
7f70: 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 77 65  ul></li>..<li>we
7f80: 27 6c 6c 20 69 67 6e 6f 72 65 20 66 6f 72 20 6e  'll ignore for n
7f90: 6f 77 20 63 6f 6c 75 6d 6e 20 3c 62 3e 52 6f 75  ow column <b>Rou
7fa0: 74 65 49 64 3c 2f 62 3e 3b 20 69 74 73 20 6d 65  teId</b>; its me
7fb0: 61 6e 69 6e 67 20 77 69 6c 6c 20 62 65 20 65 78  aning will be ex
7fc0: 70 6c 61 69 6e 65 64 20 69 6e 20 66 6f 6c 6c 6f  plained in follo
7fd0: 77 69 6e 67 20 70 61 72 61 67 72 61 70 68 73 2e  wing paragraphs.
7fe0: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d  </li>..<li>colum
7ff0: 6e 20 3c 62 3e 52 6f 75 74 65 52 6f 77 3c 2f 62  n <b>RouteRow</b
8000: 3e 20 73 69 6d 70 6c 79 20 69 73 20 74 68 65 20  > simply is the 
8010: 70 72 6f 67 72 65 73 73 69 76 65 20 6e 75 6d 62  progressive numb
8020: 65 72 20 6f 66 20 74 68 65 20 72 6f 77 20 69 6e  er of the row in
8030: 20 74 68 65 20 74 72 61 76 65 6c 20 73 6f 6c 75   the travel solu
8040: 74 69 6f 6e 20 28 61 6c 77 61 79 73 20 3c 62 3e  tion (always <b>
8050: 30 3c 2f 62 3e 20 69 6e 20 74 68 65 20 68 65 61  0</b> in the hea
8060: 64 65 72 20 72 6f 77 29 2e 3c 2f 6c 69 3e 0d 0a  der row).</li>..
8070: 3c 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62 3e 52 6f  <li>column <b>Ro
8080: 6c 65 3c 2f 62 3e 20 63 61 6e 20 62 65 20 3c 69  le</b> can be <i
8090: 3e 52 6f 75 74 65 3c 2f 69 3e 20 28 68 65 61 64  >Route</i> (head
80a0: 65 72 20 72 6f 77 29 20 6f 72 20 3c 69 3e 4c 69  er row) or <i>Li
80b0: 6e 6b 3c 2f 69 3e 20 28 61 6c 6c 20 66 6f 6c 6c  nk</i> (all foll
80c0: 6f 77 69 6e 67 20 72 6f 77 73 29 2e 3c 2f 6c 69  owing rows).</li
80d0: 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62  >..<li>column <b
80e0: 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 62 3e 20 72  >LinkRowid</b> r
80f0: 65 66 65 72 65 6e 63 65 73 20 74 68 65 20 3c 62  eferences the <b
8100: 3e 52 4f 57 49 44 3c 2f 62 3e 20 6f 66 20 74 68  >ROWID</b> of th
8110: 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  e corresponding 
8120: 4c 69 6e 6b 20 28 61 6c 77 61 79 73 20 73 65 74  Link (always set
8130: 20 74 6f 20 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20   to <b>NULL</b> 
8140: 69 6e 20 74 68 65 20 68 65 61 64 65 72 20 72 6f  in the header ro
8150: 77 29 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f  w).</li>..<li>co
8160: 6c 75 6d 6e 20 3c 62 3e 4e 6f 64 65 46 72 6f 6d  lumn <b>NodeFrom
8170: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 4e 6f 64 65  </b> and <b>Node
8180: 54 6f 3c 2f 62 3e 20 68 61 76 65 20 74 68 65 20  To</b> have the 
8190: 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 74 65 72 70  following interp
81a0: 72 65 74 61 74 69 6f 6e 3a 0d 0a 3c 75 6c 3e 0d  retation:..<ul>.
81b0: 0a 3c 6c 69 3e 69 6e 20 74 68 65 20 68 65 61 64  .<li>in the head
81c0: 65 72 20 72 6f 77 20 74 68 65 79 20 63 6f 72 72  er row they corr
81d0: 65 73 70 6f 6e 64 20 74 6f 20 68 65 20 3c 62 3e  espond to he <b>
81e0: 4f 72 69 67 69 6e 3c 2f 62 3e 20 61 6e 64 20 3c  Origin</b> and <
81f0: 62 3e 44 65 73 74 69 6e 61 74 69 6f 6e 3c 2f 62  b>Destination</b
8200: 3e 20 4e 6f 64 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c  > Nodes.</li>..<
8210: 6c 69 3e 69 6e 20 61 6c 6c 20 74 68 65 20 66 6f  li>in all the fo
8220: 6c 6c 6f 77 69 6e 67 20 72 6f 77 73 20 74 68 65  llowing rows the
8230: 79 20 61 72 65 20 69 6e 74 65 6e 64 65 64 20 74  y are intended t
8240: 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 64 69  o specify the di
8250: 72 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 20 63  rection of the c
8260: 75 72 72 65 6e 74 20 4c 69 6e 6b 2e 3c 2f 6c 69  urrent Link.</li
8270: 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c  >..</ul></li>..<
8280: 6c 69 3e 63 6f 6c 75 6d 6e 20 3c 62 3e 43 6f 73  li>column <b>Cos
8290: 74 3c 2f 62 3e 20 68 61 73 20 74 68 65 20 66 6f  t</b> has the fo
82a0: 6c 6c 6f 77 69 6e 67 20 69 6e 74 65 72 70 72 65  llowing interpre
82b0: 74 61 74 69 6f 6e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c  tation:..<ul>..<
82c0: 6c 69 3e 69 6e 20 74 68 65 20 68 65 61 64 65 72  li>in the header
82d0: 20 74 6f 77 20 69 74 20 63 6f 72 72 65 73 70 6f   tow it correspo
82e0: 6e 64 73 20 74 6f 20 74 68 65 20 3c 62 3e 74 6f  nds to the <b>to
82f0: 74 61 6c 20 63 6f 73 74 3c 2f 62 3e 20 6f 66 20  tal cost</b> of 
8300: 74 68 65 20 74 72 61 76 65 6c 2e 3c 2f 6c 69 3e  the travel.</li>
8310: 0d 0a 3c 6c 69 3e 69 6e 20 61 6c 6c 20 74 68 65  ..<li>in all the
8320: 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 6f 77 73 20   following rows 
8330: 69 74 20 72 65 70 72 65 73 65 6e 74 73 20 74 68  it represents th
8340: 65 20 73 70 65 63 69 66 69 63 20 63 6f 73 74 20  e specific cost 
8350: 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 4c  of the current L
8360: 69 6e 6b 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e  ink.</li>..</ul>
8370: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d  </li>..<li>colum
8380: 6e 20 3c 62 3e 4e 61 6d 65 3c 2f 62 3e 20 63 6f  n <b>Name</b> co
8390: 6e 74 61 69 6e 73 20 74 68 65 20 64 65 73 63 72  ntains the descr
83a0: 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 63 75  iption of the cu
83b0: 72 72 65 6e 74 20 4c 69 6e 6b 20 28 75 73 75 61  rrent Link (usua
83c0: 6c 6c 79 20 61 20 72 6f 61 64 20 6e 61 6d 65 29  lly a road name)
83d0: 2c 20 61 6e 64 20 69 73 20 61 6c 77 61 79 73 20  , and is always 
83e0: 3c 62 3e 4e 55 4c 4c 3c 2f 62 3e 20 69 6e 20 74  <b>NULL</b> in t
83f0: 68 65 20 68 65 61 64 65 72 20 72 6f 77 2e 3c 62  he header row.<b
8400: 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 20  r>..<u>Note</u> 
8410: 69 74 20 63 6f 75 6c 64 20 62 65 20 61 6c 77 61  it could be alwa
8420: 79 73 20 62 65 20 3c 62 3e 4e 55 4c 4c 3c 2f 62  ys be <b>NULL</b
8430: 3e 20 69 66 20 74 68 65 20 56 69 72 74 75 61 6c  > if the Virtual
8440: 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20 64 6f  Routing Table do
8450: 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 73 20  es not supports 
8460: 6e 61 6d 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  names.</li>..</u
8470: 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a  l></li>..</ul>..
8480: 3c 62 72 3e 3c 62 72 3e 0d 0a 54 65 73 74 69 6e  <br><br>..Testin
8490: 67 20 74 68 65 20 72 65 74 75 72 6e 20 63 6f 6e  g the return con
84a0: 6e 65 63 74 69 6f 6e 20 6a 75 73 74 20 72 65 71  nection just req
84b0: 75 69 72 65 73 20 73 77 61 70 70 69 6e 67 20 74  uires swapping t
84c0: 68 65 20 4f 72 69 67 69 6e 20 61 6e 64 20 74 68  he Origin and th
84d0: 65 20 44 65 73 74 69 6e 61 74 69 6f 6e 3b 20 69  e Destination; i
84e0: 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 79  n this example y
84f0: 6f 75 27 6c 6c 20 6a 75 73 74 20 72 65 71 75 65  ou'll just reque
8500: 73 74 20 74 68 65 20 6d 65 61 6e 69 6e 67 66 75  st the meaningfu
8510: 6c 20 63 6f 6c 75 6d 6e 73 3a 0d 0a 3c 76 65 72  l columns:..<ver
8520: 62 61 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20 52  batim>..SELECT R
8530: 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c  outeRow, Role, L
8540: 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72  inkRowid, NodeFr
8550: 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74  om, NodeTo, Cost
8560: 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65  , Geometry, Name
8570: 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57  ..FROM byfoot..W
8580: 48 45 52 45 20 4e 6f 64 65 54 6f 20 3d 20 31 37  HERE NodeTo = 17
8590: 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 46 72 6f  8731 AND NodeFro
85a0: 6d 20 3d 20 31 38 33 32 38 36 3b 0d 0a 3c 2f 76  m = 183286;..</v
85b0: 65 72 62 61 74 69 6d 3e 0d 0a 3c 74 61 62 6c 65  erbatim>..<table
85c0: 20 62 6f 72 64 65 72 3d 22 31 22 20 62 67 63 6f   border="1" bgco
85d0: 6c 6f 72 3d 22 23 66 66 66 66 63 66 22 20 63 65  lor="#ffffcf" ce
85e0: 6c 6c 73 70 61 63 69 6e 67 3d 22 34 22 20 63 65  llspacing="4" ce
85f0: 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 0d 0a  llpadding="6">..
8600: 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  <tr><th bgcolor=
8610: 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65 52  "#d0d0a0">RouteR
8620: 6f 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ow</th><th bgcol
8630: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 6c  or="#d0d0a0">Rol
8640: 65 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  e</th><th bgcolo
8650: 72 3d 22 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b  r="#d0d0a0">Link
8660: 52 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67  Rowid</th><th bg
8670: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
8680: 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68  NodeFrom</th><th
8690: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
86a0: 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74  0">NodeTo</th><t
86b0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
86c0: 61 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68  a0">Cost</th><th
86d0: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
86e0: 30 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e  0">Geometry</th>
86f0: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
8700: 64 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c  d0a0">Name</th><
8710: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
8720: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
8730: 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
8740: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
8750: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
8760: 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20  >183286</td><td 
8770: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
8780: 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8731</td><td ali
8790: 67 6e 3d 22 72 69 67 68 74 22 3e 33 30 30 2e 39  gn="right">300.9
87a0: 31 32 32 30 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c  12208</td><td>BL
87b0: 4f 42 20 73 7a 3d 32 37 32 20 47 45 4f 4d 45 54  OB sz=272 GEOMET
87c0: 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
87d0: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
87e0: 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  >..<td align="ri
87f0: 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">1</td><td>L
8800: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
8810: 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 34 31 34  n="right">224414
8820: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
8830: 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74  right">183286</t
8840: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
8850: 68 74 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c  ht">178880</td><
8860: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
8870: 3e 31 33 36 2e 33 37 32 30 35 37 3c 2f 74 64 3e  >136.372057</td>
8880: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
8890: 3e 56 49 41 20 4d 41 52 47 41 52 49 54 4f 4e 45  >VIA MARGARITONE
88a0: 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
88b0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
88c0: 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  2</td><td>Link</
88d0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
88e0: 67 68 74 22 3e 32 32 34 34 34 36 3c 2f 74 64 3e  ght">224446</td>
88f0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
8900: 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64  ">178880</td><td
8910: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
8920: 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c  82885</td><td al
8930: 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 39 2e 37  ign="right">69.7
8940: 32 37 37 32 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55  27726</td><td>NU
8950: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d  LL</td><td>VIA M
8960: 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d  ARGARITONE</td>.
8970: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
8980: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
8990: 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  3</td><td>Link</
89a0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
89b0: 67 68 74 22 3e 32 32 34 30 31 34 3c 2f 74 64 3e  ght">224014</td>
89c0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
89d0: 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64  ">182885</td><td
89e0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
89f0: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
8a00: 69 67 6e 3d 22 72 69 67 68 74 22 3e 39 34 2e 38  ign="right">94.8
8a10: 31 32 34 32 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55  12424</td><td>NU
8a20: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50  LL</td><td>VIA P
8a30: 49 45 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74  IETRO ARETINO</t
8a40: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62  d>..</tr>..</tab
8a50: 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 49 66 20 79 6f  le>..<br>..If yo
8a60: 75 20 72 65 6d 65 6d 62 65 72 2c 20 74 68 65 20  u remember, the 
8a70: 3c 62 3e 62 79 66 6f 6f 74 3c 2f 62 3e 20 56 69  <b>byfoot</b> Vi
8a80: 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 54 61 62  rtualRouting Tab
8a90: 6c 65 20 68 61 73 20 6e 6f 20 3c 62 3e 6f 6e 65  le has no <b>one
8aa0: 2d 77 61 79 73 3c 2f 62 3e 2c 20 61 6e 64 20 63  -ways</b>, and c
8ab0: 6f 6e 73 65 71 75 65 6e 74 6c 79 20 74 68 65 20  onsequently the 
8ac0: 72 65 74 75 72 6e 20 70 61 74 68 20 65 78 61 63  return path exac
8ad0: 74 6c 79 20 63 6f 72 72 65 73 70 6f 6e 64 73 20  tly corresponds 
8ae0: 74 6f 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65  to the first one
8af0: 2c 20 65 78 63 65 70 74 20 69 6e 20 74 68 61 74  , except in that
8b00: 20 61 6c 6c 20 64 69 72 65 63 74 69 6f 6e 73 20   all directions 
8b10: 61 72 65 20 6e 6f 77 20 72 65 76 65 72 73 65 64  are now reversed
8b20: 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 3c 62 72 3e 0d  ...<br><br><br>.
8b30: 0a 4e 6f 77 20 79 6f 75 27 6c 6c 20 67 6f 20 74  .Now you'll go t
8b40: 6f 20 74 65 73 74 20 74 68 65 20 73 61 6d 65 20  o test the same 
8b50: 63 6f 6e 6e 65 63 74 69 6f 6e 73 2c 20 62 75 74  connections, but
8b60: 20 74 68 69 73 20 74 69 6d 65 20 79 6f 75 27 6c   this time you'l
8b70: 6c 20 74 61 72 67 65 74 20 74 68 65 20 3c 62 3e  l target the <b>
8b80: 62 79 63 61 72 3c 2f 62 3e 20 56 69 72 74 75 61  bycar</b> Virtua
8b90: 6c 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20 74  lRouting Table t
8ba0: 68 61 74 20 66 75 6c 6c 79 20 73 75 70 70 6f 72  hat fully suppor
8bb0: 74 73 20 3c 62 3e 6f 6e 65 2d 77 61 79 73 3c 2f  ts <b>one-ways</
8bc0: 62 3e 3a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  b>:..<verbatim>.
8bd0: 0a 53 45 4c 45 43 54 20 52 6f 75 74 65 52 6f 77  .SELECT RouteRow
8be0: 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69  , Role, LinkRowi
8bf0: 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64  d, NodeFrom, Nod
8c00: 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65  eTo, Cost, Geome
8c10: 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20  try, Name..FROM 
8c20: 62 79 63 61 72 0d 0a 57 48 45 52 45 20 4e 6f 64  bycar..WHERE Nod
8c30: 65 46 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41  eFrom = 178731 A
8c40: 4e 44 20 4e 6f 64 65 54 6f 20 3d 20 31 38 33 32  ND NodeTo = 1832
8c50: 38 36 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e  86;..</verbatim>
8c60: 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72 3d  ..<table border=
8c70: 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66  "1" bgcolor="#ff
8c80: 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69 6e  ffcf" cellspacin
8c90: 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69 6e  g="4" cellpaddin
8ca0: 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20  g="6">..<tr><th 
8cb0: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
8cc0: 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c  ">RouteRow</th><
8cd0: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
8ce0: 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74  0a0">Role</th><t
8cf0: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
8d00: 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74  a0">LinkRowid</t
8d10: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
8d20: 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d  d0d0a0">NodeFrom
8d30: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
8d40: 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54  ="#d0d0a0">NodeT
8d50: 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  o</th><th bgcolo
8d60: 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74  r="#d0d0a0">Cost
8d70: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
8d80: 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65  ="#d0d0a0">Geome
8d90: 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  try</th><th bgco
8da0: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 61  lor="#d0d0a0">Na
8db0: 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74  me</th></tr>..<t
8dc0: 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72  r>..<td align="r
8dd0: 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
8de0: 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
8df0: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
8e00: 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
8e10: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
8e20: 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64  ight">183286</td
8e30: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
8e40: 74 22 3e 31 30 31 2e 38 31 35 35 35 32 3c 2f 74  t">101.815552</t
8e50: 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 30  d><td>BLOB sz=20
8e60: 33 32 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e  32 GEOMETRY</td>
8e70: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c  <td>NULL</td>..<
8e80: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20  /tr>..<tr>..<td 
8e90: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c  align="right">1<
8ea0: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
8eb0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
8ec0: 74 22 3e 32 32 34 30 31 34 3c 2f 74 64 3e 3c 74  t">224014</td><t
8ed0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
8ee0: 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61  178731</td><td a
8ef0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32  lign="right">182
8f00: 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  885</td><td alig
8f10: 6e 3d 22 72 69 67 68 74 22 3e 31 33 2e 31 32 37  n="right">13.127
8f20: 38 37 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  874</td><td>NULL
8f30: 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45  </td><td>VIA PIE
8f40: 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e  TRO ARETINO</td>
8f50: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
8f60: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
8f70: 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >2</td><td>Link<
8f80: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
8f90: 69 67 68 74 22 3e 32 32 34 34 34 36 3c 2f 74 64  ight">224446</td
8fa0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
8fb0: 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74  t">182885</td><t
8fc0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
8fd0: 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61  178880</td><td a
8fe0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 39 2e 36  lign="right">9.6
8ff0: 35 34 36 30 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55  54608</td><td>NU
9000: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d  LL</td><td>VIA M
9010: 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d  ARGARITONE</td>.
9020: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
9030: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9040: 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  3</td><td>Link</
9050: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9060: 67 68 74 22 3e 32 31 39 31 37 31 3c 2f 74 64 3e  ght">219171</td>
9070: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9080: 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64  ">178880</td><td
9090: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
90a0: 37 38 37 33 32 3c 2f 74 64 3e 3c 74 64 20 61 6c  78732</td><td al
90b0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 37 2e 38 30  ign="right">7.80
90c0: 39 39 35 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  9952</td><td>NUL
90d0: 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 46 52  L</td><td>VIA FR
90e0: 41 4e 43 45 53 43 4f 20 43 52 49 53 50 49 3c 2f  ANCESCO CRISPI</
90f0: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
9100: 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  ..<td align="rig
9110: 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">4</td><td>Li
9120: 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
9130: 3d 22 72 69 67 68 74 22 3e 32 31 39 30 35 38 3c  ="right">219058<
9140: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
9150: 69 67 68 74 22 3e 31 37 38 37 33 32 3c 2f 74 64  ight">178732</td
9160: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9170: 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c 74  t">178754</td><t
9180: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9190: 31 32 2e 34 34 35 36 32 36 3c 2f 74 64 3e 3c 74  12.445626</td><t
91a0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
91b0: 49 41 20 46 52 41 4e 43 45 53 43 4f 20 43 52 49  IA FRANCESCO CRI
91c0: 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  SPI</td>..</tr>.
91d0: 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  .<tr>..<td align
91e0: 3d 22 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c  ="right">5</td><
91f0: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
9200: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
9210: 35 38 38 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  5888</td><td ali
9220: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 35  gn="right">17875
9230: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
9240: 22 72 69 67 68 74 22 3e 31 38 33 34 36 31 3c 2f  "right">183461</
9250: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9260: 67 68 74 22 3e 31 2e 35 39 39 38 36 35 3c 2f 74  ght">1.599865</t
9270: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
9280: 74 64 3e 56 49 41 20 46 52 41 4e 43 45 53 43 4f  td>VIA FRANCESCO
9290: 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f   CRISPI</td>..</
92a0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61  tr>..<tr>..<td a
92b0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f  lign="right">6</
92c0: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
92d0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
92e0: 22 3e 32 32 35 38 38 37 3c 2f 74 64 3e 3c 74 64  ">225887</td><td
92f0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
9300: 38 33 34 36 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  83461</td><td al
9310: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38  ign="right">1828
9320: 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  00</td><td align
9330: 3d 22 72 69 67 68 74 22 3e 33 2e 33 30 30 35 39  ="right">3.30059
9340: 30 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  0</td><td>NULL</
9350: 74 64 3e 3c 74 64 3e 56 49 41 20 46 52 41 4e 43  td><td>VIA FRANC
9360: 45 53 43 4f 20 43 52 49 53 50 49 3c 2f 74 64 3e  ESCO CRISPI</td>
9370: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
9380: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9390: 3e 37 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >7</td><td>Link<
93a0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
93b0: 69 67 68 74 22 3e 32 32 33 39 33 35 3c 2f 74 64  ight">223935</td
93c0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
93d0: 74 22 3e 31 38 32 38 30 30 3c 2f 74 64 3e 3c 74  t">182800</td><t
93e0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
93f0: 31 38 32 37 39 39 3c 2f 74 64 3e 3c 74 64 20 61  182799</td><td a
9400: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 2e 36  lign="right">6.6
9410: 38 38 37 38 36 3c 2f 74 64 3e 3c 74 64 3e 4e 55  88786</td><td>NU
9420: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 4c 45  LL</td><td>VIALE
9430: 20 4c 55 43 41 20 53 49 47 4e 4f 52 45 4c 4c 49   LUCA SIGNORELLI
9440: 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
9450: 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72  r>..<td align="r
9460: 69 67 68 74 22 3e 38 3c 2f 74 64 3e 3c 74 64 3e  ight">8</td><td>
9470: 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
9480: 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 36 30 33  gn="right">22603
9490: 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  8</td><td align=
94a0: 22 72 69 67 68 74 22 3e 31 38 32 37 39 39 3c 2f  "right">182799</
94b0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
94c0: 67 68 74 22 3e 31 38 33 34 35 36 3c 2f 74 64 3e  ght">183456</td>
94d0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
94e0: 22 3e 31 2e 32 39 34 30 31 37 3c 2f 74 64 3e 3c  ">1.294017</td><
94f0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
9500: 56 49 41 4c 45 20 4c 55 43 41 20 53 49 47 4e 4f  VIALE LUCA SIGNO
9510: 52 45 4c 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  RELLI</td>..</tr
9520: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69  >..<tr>..<td ali
9530: 67 6e 3d 22 72 69 67 68 74 22 3e 39 3c 2f 74 64  gn="right">9</td
9540: 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
9550: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9560: 32 32 35 38 33 32 3c 2f 74 64 3e 3c 74 64 20 61  225832</td><td a
9570: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
9580: 34 35 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  456</td><td alig
9590: 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 34 34 34  n="right">183444
95a0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
95b0: 72 69 67 68 74 22 3e 32 2e 33 38 35 34 38 36 3c  right">2.385486<
95c0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
95d0: 3e 3c 74 64 3e 56 49 41 4c 45 20 4c 55 43 41 20  ><td>VIALE LUCA 
95e0: 53 49 47 4e 4f 52 45 4c 4c 49 3c 2f 74 64 3e 0d  SIGNORELLI</td>.
95f0: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
9600: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9610: 31 30 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  10</td><td>Link<
9620: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
9630: 69 67 68 74 22 3e 32 32 35 38 33 31 3c 2f 74 64  ight">225831</td
9640: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9650: 74 22 3e 31 38 33 34 34 34 3c 2f 74 64 3e 3c 74  t">183444</td><t
9660: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
9670: 31 38 33 35 35 34 3c 2f 74 64 3e 3c 74 64 20 61  183554</td><td a
9680: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 2e 31  lign="right">3.1
9690: 36 30 36 36 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55  60662</td><td>NU
96a0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 4c 45  LL</td><td>VIALE
96b0: 20 4c 55 43 41 20 53 49 47 4e 4f 52 45 4c 4c 49   LUCA SIGNORELLI
96c0: 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
96d0: 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72  r>..<td align="r
96e0: 69 67 68 74 22 3e 31 31 3c 2f 74 64 3e 3c 74 64  ight">11</td><td
96f0: 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
9700: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 37  ign="right">2257
9710: 36 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  65</td><td align
9720: 3d 22 72 69 67 68 74 22 3e 31 38 33 35 35 34 3c  ="right">183554<
9730: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
9740: 69 67 68 74 22 3e 31 38 33 39 35 34 3c 2f 74 64  ight">183954</td
9750: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
9760: 74 22 3e 37 2e 34 36 39 39 31 37 3c 2f 74 64 3e  t">7.469917</td>
9770: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
9780: 3e 56 49 41 4c 45 20 4c 55 43 41 20 53 49 47 4e  >VIALE LUCA SIGN
9790: 4f 52 45 4c 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74  ORELLI</td>..</t
97a0: 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c  r>..<tr>..<td al
97b0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 32 3c 2f  ign="right">12</
97c0: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
97d0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
97e0: 22 3e 32 32 35 37 36 36 3c 2f 74 64 3e 3c 74 64  ">225766</td><td
97f0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
9800: 38 33 39 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c  83954</td><td al
9810: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 39  ign="right">1839
9820: 30 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  05</td><td align
9830: 3d 22 72 69 67 68 74 22 3e 33 2e 32 33 36 33 38  ="right">3.23638
9840: 39 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  9</td><td>NULL</
9850: 74 64 3e 3c 74 64 3e 56 49 41 4c 45 20 4c 55 43  td><td>VIALE LUC
9860: 41 20 53 49 47 4e 4f 52 45 4c 4c 49 3c 2f 74 64  A SIGNORELLI</td
9870: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
9880: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9890: 22 3e 31 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  ">13</td><td>Lin
98a0: 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
98b0: 22 72 69 67 68 74 22 3e 32 32 35 39 37 39 3c 2f  "right">225979</
98c0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
98d0: 67 68 74 22 3e 31 38 33 39 30 35 3c 2f 74 64 3e  ght">183905</td>
98e0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
98f0: 22 3e 31 38 33 36 32 36 3c 2f 74 64 3e 3c 74 64  ">183626</td><td
9900: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
9910: 33 2e 39 38 33 36 32 39 3c 2f 74 64 3e 3c 74 64  3.983629</td><td
9920: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 53 54  >NULL</td><td>ST
9930: 52 41 44 41 20 53 45 4e 5a 41 20 4e 4f 4d 45 3c  RADA SENZA NOME<
9940: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
9950: 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  >..<td align="ri
9960: 67 68 74 22 3e 31 34 3c 2f 74 64 3e 3c 74 64 3e  ght">14</td><td>
9970: 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
9980: 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 39 30  gn="right">22490
9990: 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  5</td><td align=
99a0: 22 72 69 67 68 74 22 3e 31 38 33 36 32 36 3c 2f  "right">183626</
99b0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
99c0: 67 68 74 22 3e 31 38 33 31 32 38 3c 2f 74 64 3e  ght">183128</td>
99d0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
99e0: 22 3e 35 2e 36 32 37 33 35 38 3c 2f 74 64 3e 3c  ">5.627358</td><
99f0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
9a00: 53 54 52 41 44 41 20 53 45 4e 5a 41 20 4e 4f 4d  STRADA SENZA NOM
9a10: 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  E</td>..</tr>..<
9a20: 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22  tr>..<td align="
9a30: 72 69 67 68 74 22 3e 31 35 3c 2f 74 64 3e 3c 74  right">15</td><t
9a40: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
9a50: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34  lign="right">224
9a60: 38 39 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  897</td><td alig
9a70: 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 31 32 38  n="right">183128
9a80: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9a90: 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74  right">183286</t
9aa0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9ab0: 68 74 22 3e 31 30 2e 30 33 30 37 39 32 3c 2f 74  ht">10.030792</t
9ac0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
9ad0: 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49 54 4f  td>VIA MARGARITO
9ae0: 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  NE</td>..</tr>..
9af0: 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 76 65 72 62 61  </table>..<verba
9b00: 74 69 6d 3e 0d 0a 53 45 4c 45 43 54 20 52 6f 75  tim>..SELECT Rou
9b10: 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e  teRow, Role, Lin
9b20: 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d  kRowid, NodeFrom
9b30: 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20  , NodeTo, Cost, 
9b40: 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a  Geometry, Name..
9b50: 46 52 4f 4d 20 62 79 63 61 72 0d 0a 57 48 45 52  FROM bycar..WHER
9b60: 45 20 4e 6f 64 65 54 6f 20 3d 20 31 37 38 37 33  E NodeTo = 17873
9b70: 31 20 41 4e 44 20 4e 6f 64 65 46 72 6f 6d 20 3d  1 AND NodeFrom =
9b80: 20 31 38 33 32 38 36 3b 0d 0a 3c 2f 76 65 72 62   183286;..</verb
9b90: 61 74 69 6d 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f  atim>..<table bo
9ba0: 72 64 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72  rder="1" bgcolor
9bb0: 3d 22 23 66 66 66 66 63 66 22 20 63 65 6c 6c 73  ="#ffffcf" cells
9bc0: 70 61 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70  pacing="4" cellp
9bd0: 61 64 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72  adding="6">..<tr
9be0: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
9bf0: 30 64 30 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c  0d0a0">RouteRow<
9c00: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
9c10: 22 23 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f  "#d0d0a0">Role</
9c20: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
9c30: 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77  #d0d0a0">LinkRow
9c40: 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  id</th><th bgcol
9c50: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64  or="#d0d0a0">Nod
9c60: 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67  eFrom</th><th bg
9c70: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
9c80: 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62  NodeTo</th><th b
9c90: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
9ca0: 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67  >Cost</th><th bg
9cb0: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
9cc0: 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68  Geometry</th><th
9cd0: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
9ce0: 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72  0">Name</th></tr
9cf0: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69  >..<tr>..<td ali
9d00: 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
9d10: 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c  ><td>Route</td><
9d20: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
9d30: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
9d40: 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3286</td><td ali
9d50: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33  gn="right">17873
9d60: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
9d70: 22 72 69 67 68 74 22 3e 31 30 33 2e 33 30 35 32  "right">103.3052
9d80: 35 39 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20  59</td><td>BLOB 
9d90: 73 7a 3d 39 34 34 20 47 45 4f 4d 45 54 52 59 3c  sz=944 GEOMETRY<
9da0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
9db0: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
9dc0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9dd0: 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  ">1</td><td>Link
9de0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9df0: 72 69 67 68 74 22 3e 32 32 34 34 31 34 3c 2f 74  right">224414</t
9e00: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9e10: 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c  ht">183286</td><
9e20: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9e30: 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20  >178880</td><td 
9e40: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
9e50: 2e 38 38 32 32 38 35 3c 2f 74 64 3e 3c 74 64 3e  .882285</td><td>
9e60: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
9e70: 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64   MARGARITONE</td
9e80: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
9e90: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9ea0: 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  ">2</td><td>Link
9eb0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
9ec0: 72 69 67 68 74 22 3e 32 31 39 31 37 31 3c 2f 74  right">219171</t
9ed0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
9ee0: 68 74 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c  ht">178880</td><
9ef0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
9f00: 3e 31 37 38 37 33 32 3c 2f 74 64 3e 3c 74 64 20  >178732</td><td 
9f10: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 37 2e  align="right">7.
9f20: 38 30 39 39 35 32 3c 2f 74 64 3e 3c 74 64 3e 4e  809952</td><td>N
9f30: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
9f40: 46 52 41 4e 43 45 53 43 4f 20 43 52 49 53 50 49  FRANCESCO CRISPI
9f50: 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
9f60: 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72  r>..<td align="r
9f70: 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e  ight">3</td><td>
9f80: 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
9f90: 67 6e 3d 22 72 69 67 68 74 22 3e 32 31 39 30 35  gn="right">21905
9fa0: 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  8</td><td align=
9fb0: 22 72 69 67 68 74 22 3e 31 37 38 37 33 32 3c 2f  "right">178732</
9fc0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
9fd0: 67 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e  ght">178754</td>
9fe0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
9ff0: 22 3e 31 32 2e 34 34 35 36 32 36 3c 2f 74 64 3e  ">12.445626</td>
a000: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
a010: 3e 56 49 41 20 46 52 41 4e 43 45 53 43 4f 20 43  >VIA FRANCESCO C
a020: 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  RISPI</td>..</tr
a030: 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69  >..<tr>..<td ali
a040: 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c 2f 74 64  gn="right">4</td
a050: 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
a060: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a070: 32 32 34 35 33 38 3c 2f 74 64 3e 3c 74 64 20 61  224538</td><td a
a080: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
a090: 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  754</td><td alig
a0a0: 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39 37 32  n="right">181972
a0b0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
a0c0: 72 69 67 68 74 22 3e 37 2e 30 34 37 37 38 34 3c  right">7.047784<
a0d0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
a0e0: 3e 3c 74 64 3e 56 49 41 20 41 4e 54 4f 4e 49 4f  ><td>VIA ANTONIO
a0f0: 20 47 55 41 44 41 47 4e 4f 4c 49 3c 2f 74 64 3e   GUADAGNOLI</td>
a100: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
a110: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
a120: 3e 35 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >5</td><td>Link<
a130: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
a140: 69 67 68 74 22 3e 32 32 32 35 37 35 3c 2f 74 64  ight">222575</td
a150: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
a160: 74 22 3e 31 38 31 39 37 32 3c 2f 74 64 3e 3c 74  t">181972</td><t
a170: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a180: 31 38 31 39 37 31 3c 2f 74 64 3e 3c 74 64 20 61  181971</td><td a
a190: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 2e 38  lign="right">1.8
a1a0: 35 32 32 38 33 3c 2f 74 64 3e 3c 74 64 3e 4e 55  52283</td><td>NU
a1b0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 41  LL</td><td>VIA A
a1c0: 4e 54 4f 4e 49 4f 20 47 55 41 44 41 47 4e 4f 4c  NTONIO GUADAGNOL
a1d0: 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  I</td>..</tr>..<
a1e0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
a1f0: 3e 36 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >6</td><td>Link<
a200: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
a210: 69 67 68 74 22 3e 32 32 34 39 36 37 3c 2f 74 64  ight">224967</td
a220: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
a230: 74 22 3e 31 38 31 39 37 31 3c 2f 74 64 3e 3c 74  t">181971</td><t
a240: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a250: 31 38 32 38 39 31 3c 2f 74 64 3e 3c 74 64 20 61  182891</td><td a
a260: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 34 2e  lign="right">14.
a270: 32 37 33 31 38 35 3c 2f 74 64 3e 3c 74 64 3e 4e  273185</td><td>N
a280: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
a290: 41 4e 54 4f 4e 49 4f 20 47 55 41 44 41 47 4e 4f  ANTONIO GUADAGNO
a2a0: 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  LI</td>..</tr>..
a2b0: 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d  <tr>..<td align=
a2c0: 22 72 69 67 68 74 22 3e 37 3c 2f 74 64 3e 3c 74  "right">7</td><t
a2d0: 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
a2e0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34  lign="right">224
a2f0: 31 36 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  168</td><td alig
a300: 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38 39 31  n="right">182891
a310: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
a320: 72 69 67 68 74 22 3e 31 38 33 30 35 37 3c 2f 74  right">183057</t
a330: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
a340: 68 74 22 3e 36 2e 36 34 33 33 30 39 3c 2f 74 64  ht">6.643309</td
a350: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
a360: 64 3e 56 49 41 20 4d 41 43 41 4c 4c 45 27 3c 2f  d>VIA MACALLE'</
a370: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
a380: 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  ..<td align="rig
a390: 68 74 22 3e 38 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">8</td><td>Li
a3a0: 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
a3b0: 3d 22 72 69 67 68 74 22 3e 32 32 34 31 36 37 3c  ="right">224167<
a3c0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
a3d0: 69 67 68 74 22 3e 31 38 33 30 35 37 3c 2f 74 64  ight">183057</td
a3e0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
a3f0: 74 22 3e 31 38 33 30 35 36 3c 2f 74 64 3e 3c 74  t">183056</td><t
a400: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a410: 33 2e 31 35 31 32 37 32 3c 2f 74 64 3e 3c 74 64  3.151272</td><td
a420: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49  >NULL</td><td>VI
a430: 41 20 4d 41 43 41 4c 4c 45 27 3c 2f 74 64 3e 0d  A MACALLE'</td>.
a440: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
a450: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
a460: 39 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  9</td><td>Link</
a470: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
a480: 67 68 74 22 3e 32 32 34 31 37 34 3c 2f 74 64 3e  ght">224174</td>
a490: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
a4a0: 22 3e 31 38 33 30 35 36 3c 2f 74 64 3e 3c 74 64  ">183056</td><td
a4b0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
a4c0: 38 32 39 34 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  82941</td><td al
a4d0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 37 2e 39 36  ign="right">7.96
a4e0: 36 38 37 30 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  6870</td><td>NUL
a4f0: 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 52 4f  L</td><td>VIA RO
a500: 44 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  DI</td>..</tr>..
a510: 3c 74 72 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d  <tr>..<td align=
a520: 22 72 69 67 68 74 22 3e 31 30 3c 2f 74 64 3e 3c  "right">10</td><
a530: 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
a540: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
a550: 34 30 35 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4059</td><td ali
a560: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 39 34  gn="right">18294
a570: 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
a580: 22 72 69 67 68 74 22 3e 31 38 32 30 30 31 3c 2f  "right">182001</
a590: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
a5a0: 67 68 74 22 3e 36 2e 33 39 33 37 34 37 3c 2f 74  ght">6.393747</t
a5b0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
a5c0: 74 64 3e 56 49 41 20 52 4f 44 49 3c 2f 74 64 3e  td>VIA RODI</td>
a5d0: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
a5e0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
a5f0: 3e 31 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b  >11</td><td>Link
a600: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
a610: 72 69 67 68 74 22 3e 32 32 32 36 33 37 3c 2f 74  right">222637</t
a620: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
a630: 68 74 22 3e 31 38 32 30 30 31 3c 2f 74 64 3e 3c  ht">182001</td><
a640: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
a650: 3e 31 38 32 30 30 30 3c 2f 74 64 3e 3c 74 64 20  >182000</td><td 
a660: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 2e  align="right">2.
a670: 34 37 35 35 33 38 3c 2f 74 64 3e 3c 74 64 3e 4e  475538</td><td>N
a680: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
a690: 50 49 45 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f  PIETRO ARETINO</
a6a0: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
a6b0: 0d 0a 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  ..<td align="rig
a6c0: 68 74 22 3e 31 32 3c 2f 74 64 3e 3c 74 64 3e 4c  ht">12</td><td>L
a6d0: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
a6e0: 6e 3d 22 72 69 67 68 74 22 3e 32 32 32 36 33 36  n="right">222636
a6f0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
a700: 72 69 67 68 74 22 3e 31 38 32 30 30 30 3c 2f 74  right">182000</t
a710: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
a720: 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c  ht">178731</td><
a730: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
a740: 3e 31 34 2e 33 36 33 34 30 38 3c 2f 74 64 3e 3c  >14.363408</td><
a750: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
a760: 56 49 41 20 50 49 45 54 52 4f 20 41 52 45 54 49  VIA PIETRO ARETI
a770: 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  NO</td>..</tr>..
a780: 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a  </table>..<br>..
a790: 41 73 20 79 6f 75 20 63 61 6e 20 65 61 73 69 6c  As you can easil
a7a0: 79 20 6e 6f 74 69 63 65 2c 20 74 68 65 20 6f 70  y notice, the op
a7b0: 74 69 6d 61 6c 20 70 61 74 68 73 20 72 65 74 75  timal paths retu
a7c0: 72 6e 65 64 20 62 79 20 74 68 65 20 3c 62 3e 62  rned by the <b>b
a7d0: 79 63 61 72 3c 2f 62 3e 20 56 69 72 74 75 61 6c  ycar</b> Virtual
a7e0: 52 6f 75 74 69 6e 67 20 54 61 62 6c 65 20 74 68  Routing Table th
a7f0: 65 20 70 61 74 68 73 20 69 6e 20 6f 70 70 6f 73  e paths in oppos
a800: 69 74 65 20 64 69 72 65 63 74 69 6f 6e 73 20 73  ite directions s
a810: 74 72 6f 6e 67 6c 79 20 64 69 66 66 65 72 20 62  trongly differ b
a820: 65 74 77 65 65 6e 20 74 68 65 6d 2c 20 61 6e 64  etween them, and
a830: 20 62 6f 74 68 20 61 72 65 20 63 6f 6d 70 6c 65   both are comple
a840: 74 65 6c 79 20 64 69 66 66 65 72 65 6e 74 20 66  tely different f
a850: 72 6f 6d 20 74 68 65 20 70 61 74 68 20 72 65 74  rom the path ret
a860: 75 72 6e 65 64 20 62 79 20 71 75 65 72 79 69 6e  urned by queryin
a870: 67 20 3c 62 3e 62 79 66 6f 6f 74 3c 2f 62 3e 2e  g <b>byfoot</b>.
a880: 3c 62 72 3e 0d 0a 41 20 71 75 69 63 6b 20 67 6c  <br>..A quick gl
a890: 61 6e 63 65 20 61 74 20 74 68 65 20 62 65 6c 6f  ance at the belo
a8a0: 77 20 6d 61 70 20 77 69 6c 6c 20 73 75 72 65 6c  w map will surel
a8b0: 79 20 68 65 6c 70 20 74 6f 20 75 6e 64 65 72 73  y help to unders
a8c0: 74 61 6e 64 20 62 65 74 74 65 72 20 77 68 61 74  tand better what
a8d0: 27 73 20 72 65 61 6c 6c 79 20 68 61 70 70 65 6e  's really happen
a8e0: 69 6e 67 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 69  ing.<br>..This i
a8f0: 73 20 61 20 63 65 6e 74 72 61 6c 20 61 72 65 61  s a central area
a900: 20 6f 66 20 74 68 65 20 74 6f 77 6e 20 6f 66 20   of the town of 
a910: 41 72 65 7a 7a 6f 20 61 72 6f 75 6e 64 20 74 68  Arezzo around th
a920: 65 20 61 72 63 68 61 65 6f 6c 6f 67 69 63 61 6c  e archaeological
a930: 20 72 75 69 6e 73 20 6f 66 20 74 68 65 20 52 6f   ruins of the Ro
a940: 6d 61 6e 20 41 6d 70 68 69 74 68 65 61 74 65 72  man Amphitheater
a950: 3b 20 63 69 72 63 75 6c 61 74 69 6e 67 20 62 79  ; circulating by
a960: 20 63 61 72 20 69 73 20 64 69 73 63 6f 75 72 61   car is discoura
a970: 67 65 64 20 61 6e 64 20 69 73 20 73 75 62 6a 65  ged and is subje
a980: 63 74 20 74 6f 20 6d 61 6e 79 20 6f 6e 65 2d 77  ct to many one-w
a990: 61 79 20 72 65 73 74 72 69 63 74 69 6f 6e 73 2e  ay restrictions.
a9a0: 20 4e 6f 74 20 73 75 72 70 72 69 73 69 6e 67 6c   Not surprisingl
a9b0: 79 2c 20 6d 6f 76 69 6e 67 20 62 79 20 66 6f 6f  y, moving by foo
a9c0: 74 20 69 73 20 74 68 65 20 66 61 73 74 65 72 20  t is the faster 
a9d0: 6f 70 74 69 6f 6e 2e 0d 0a 3c 62 72 3e 3c 62 72  option...<br><br
a9e0: 3e 0d 0a 3c 69 6d 67 20 73 72 63 3d 22 68 74 74  >..<img src="htt
a9f0: 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d 67 69  ps://www.gaia-gi
aa00: 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e 73 2f 72  s.it/gaia-sins/r
aa10: 6f 75 74 69 6e 67 2d 66 69 67 73 2f 72 6f 75 74  outing-figs/rout
aa20: 69 6e 67 31 2e 6a 70 67 22 20 61 6c 74 3d 22 66  ing1.jpg" alt="f
aa30: 69 67 31 22 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  ig1">..<ul>..<li
aa40: 3e 79 65 6c 6c 6f 77 20 70 61 74 68 3a 20 70 65  >yellow path: pe
aa50: 64 65 73 74 72 69 61 6e 73 3c 2f 6c 69 3e 0d 0a  destrians</li>..
aa60: 3c 6c 69 3e 67 72 65 65 6e 20 70 61 74 68 3a 20  <li>green path: 
aa70: 63 61 72 2c 20 64 69 72 65 63 74 20 64 69 72 65  car, direct dire
aa80: 63 74 69 6f 6e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  ction</li>..<li>
aa90: 72 65 64 20 70 61 74 68 3a 20 63 61 72 2c 20 72  red path: car, r
aaa0: 65 74 75 72 6e 20 64 69 72 65 63 74 69 6f 6e 3c  eturn direction<
aab0: 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72  /li>..</ul>..<br
aac0: 3e 0d 0a 3c 74 61 62 6c 65 20 62 67 63 6f 6c 6f  >..<table bgcolo
aad0: 72 3d 22 23 63 30 66 66 63 30 22 20 63 65 6c 6c  r="#c0ffc0" cell
aae0: 73 70 61 63 69 6e 67 3d 22 31 30 22 20 63 65 6c  spacing="10" cel
aaf0: 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 3c 74 72  lpadding="6"><tr
ab00: 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 4c 69 6e 65 73  ><td>..<h3>Lines
ab10: 74 72 69 6e 67 73 20 72 65 74 75 72 6e 65 64 20  trings returned 
ab20: 62 79 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e  by VirtualRoutin
ab30: 67 3c 2f 68 33 3e 0d 0a 41 6c 6c 20 4c 49 4e 45  g</h3>..All LINE
ab40: 53 54 52 49 4e 47 20 47 65 6f 6d 65 74 72 69 65  STRING Geometrie
ab50: 73 20 63 72 65 61 74 65 64 20 62 79 20 61 6e 79  s created by any
ab60: 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20   VirtualRouting 
ab70: 77 69 6c 6c 20 61 6c 77 61 79 73 20 63 6f 6e 74  will always cont
ab80: 61 69 6e 20 3c 62 3e 4d 20 76 61 6c 75 65 73 3c  ain <b>M values<
ab90: 2f 62 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  /b>:..<ul>..<li>
aba0: 69 66 20 74 68 65 20 75 6e 64 65 72 6c 61 79 69  if the underlayi
abb0: 6e 67 20 4e 65 74 77 6f 72 6b 27 73 20 47 65 6f  ng Network's Geo
abc0: 6d 65 74 72 69 65 73 20 61 72 65 20 3c 62 3e 58  metries are <b>X
abd0: 59 3c 2f 62 3e 20 74 68 65 6e 20 3c 62 3e 58 59  Y</b> then <b>XY
abe0: 4d 3c 2f 62 3e 20 4c 69 6e 65 73 74 72 69 6e 67  M</b> Linestring
abf0: 73 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e  s will be return
ac00: 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 66  ed.</li>..<li>if
ac10: 20 74 68 65 20 75 6e 64 65 72 6c 61 79 69 6e 67   the underlaying
ac20: 20 4e 65 74 77 6f 72 6b 27 73 20 47 65 6f 6d 65   Network's Geome
ac30: 74 72 69 65 73 20 61 72 65 20 3c 62 3e 58 59 5a  tries are <b>XYZ
ac40: 3c 2f 62 3e 20 74 68 65 6e 20 3c 62 3e 58 59 5a  </b> then <b>XYZ
ac50: 4d 3c 2f 62 3e 20 4c 69 6e 65 73 74 72 69 6e 67  M</b> Linestring
ac60: 73 20 77 69 6c 6c 20 62 65 20 72 65 74 75 72 6e  s will be return
ac70: 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 66  ed.</li>..<li>if
ac80: 20 74 68 65 20 75 6e 64 65 72 6c 61 79 69 6e 67   the underlaying
ac90: 20 4e 65 74 77 6f 72 6b 27 73 20 47 65 6f 6d 65   Network's Geome
aca0: 74 72 69 65 73 20 61 72 65 20 3c 62 3e 58 59 4d  tries are <b>XYM
acb0: 3c 2f 62 3e 20 6f 72 20 3c 62 3e 58 59 5a 4d 3c  </b> or <b>XYZM<
acc0: 2f 62 3e 20 74 68 65 6e 20 20 4c 69 6e 65 73 74  /b> then  Linest
acd0: 72 69 6e 67 73 20 72 65 74 75 72 6e 65 64 20 69  rings returned i
ace0: 6e 74 6f 20 74 68 65 20 72 65 73 75 6c 74 73 65  nto the resultse
acf0: 74 20 77 69 6c 6c 20 6d 61 69 6e 74 61 69 6e 20  t will maintain 
ad00: 74 68 65 20 73 61 6d 65 20 64 69 6d 65 6e 73 69  the same dimensi
ad10: 6f 6e 73 20 61 73 20 69 6e 20 74 68 65 20 75 6e  ons as in the un
ad20: 64 65 72 6c 61 79 69 6e 67 20 4e 65 74 77 6f 72  derlaying Networ
ad30: 6b 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 69 6e 20  k.</li>..<li>in 
ad40: 61 6e 79 20 63 61 73 65 20 74 68 65 20 3c 62 3e  any case the <b>
ad50: 4d 3c 2f 62 3e 20 76 61 6c 75 65 73 20 77 69 6c  M</b> values wil
ad60: 6c 20 62 65 20 61 70 70 72 6f 70 72 69 61 74 65  l be appropriate
ad70: 6c 79 20 73 65 74 20 73 6f 20 74 6f 20 72 65 70  ly set so to rep
ad80: 72 65 73 65 6e 74 20 74 68 65 20 3c 75 3e 70 61  resent the <u>pa
ad90: 72 74 69 61 6c 20 63 6f 73 74 3c 2f 75 3e 20 63  rtial cost</u> c
ada0: 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20  orresponding to 
adb0: 65 61 63 68 20 76 65 72 74 65 78 2e 0d 0a 28 69  each vertex...(i
adc0: 66 20 74 68 65 20 69 6e 70 75 74 20 4c 69 6e 65  f the input Line
add0: 73 74 72 69 6e 67 73 20 61 6c 72 65 61 64 79 20  strings already 
ade0: 63 6f 6e 74 61 69 6e 73 20 4d 2d 76 61 6c 75 65  contains M-value
adf0: 73 20 74 68 65 79 27 6c 6c 20 62 65 20 6f 76 65  s they'll be ove
ae00: 72 77 72 69 74 74 65 6e 29 2e 3c 2f 6c 69 3e 0d  rwritten).</li>.
ae10: 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e 0d 0a 49 6e  .</ul>..<br>..In
ae20: 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 61 6c   other words, al
ae30: 6c 20 4c 69 6e 65 73 74 72 69 6e 67 73 20 72 65  l Linestrings re
ae40: 74 75 72 6e 65 64 20 62 79 20 56 69 72 74 75 61  turned by Virtua
ae50: 6c 52 6f 75 74 69 6e 67 20 63 61 6e 20 65 66 66  lRouting can eff
ae60: 65 63 74 69 76 65 6c 79 20 73 75 70 70 6f 72 74  ectively support
ae70: 20 3c 62 3e 4c 52 3c 2f 62 3e 20 28 3c 69 3e 4c   <b>LR</b> (<i>L
ae80: 69 6e 65 61 72 20 52 65 66 65 72 65 6e 63 69 6e  inear Referencin
ae90: 67 3c 2f 69 3e 29 20 53 51 4c 20 66 75 6e 63 74  g</i>) SQL funct
aea0: 69 6f 6e 73 2c 20 61 73 20 69 6e 20 74 68 65 20  ions, as in the 
aeb0: 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 61 6d 70 6c  following exampl
aec0: 65 73 3a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  es:..<verbatim>.
aed0: 0a 53 45 4c 45 43 54 20 53 54 5f 4c 6f 63 61 74  .SELECT ST_Locat
aee0: 65 5f 42 65 74 77 65 65 6e 5f 4d 65 61 73 75 72  e_Between_Measur
aef0: 65 73 28 3c 67 65 6f 6d 65 74 72 79 3e 2c 20 33  es(<geometry>, 3
af00: 30 2e 30 2c 20 34 35 2e 30 29 3b 0d 0a 0d 0a 53  0.0, 45.0);....S
af10: 45 4c 45 43 54 20 53 54 5f 4c 6f 63 61 74 65 5f  ELECT ST_Locate_
af20: 42 65 74 77 65 65 6e 5f 4d 65 61 73 75 72 65 73  Between_Measures
af30: 28 3c 67 65 6f 6d 65 74 72 79 3e 2c 20 38 30 2e  (<geometry>, 80.
af40: 30 2c 20 39 35 2e 30 29 3b 0d 0a 3c 2f 76 65 72  0, 95.0);..</ver
af50: 62 61 74 69 6d 3e 0d 0a 54 68 65 20 73 69 64 65  batim>..The side
af60: 20 6d 61 70 20 67 72 61 70 68 69 63 61 6c 6c 79   map graphically
af70: 20 73 68 6f 77 73 20 74 68 65 20 65 73 74 69 6d   shows the estim
af80: 61 74 65 64 20 70 6f 73 69 74 69 6f 6e 73 20 72  ated positions r
af90: 65 73 70 65 63 74 69 76 65 6c 79 20 3c 62 3e 33  espectively <b>3
afa0: 30 3c 2f 62 3e 2d 3c 62 3e 34 35 3c 2f 62 3e 20  0</b>-<b>45</b> 
afb0: 73 65 63 6f 6e 64 73 20 61 66 74 65 72 20 73 74  seconds after st
afc0: 61 72 74 69 6e 67 20 28 79 65 6c 6c 6f 77 20 64  arting (yellow d
afd0: 6f 74 74 65 64 20 6c 69 6e 65 29 20 61 6e 64 20  otted line) and 
afe0: 3c 62 3e 38 30 3c 2f 62 3e 2d 3c 62 3e 39 35 3c  <b>80</b>-<b>95<
aff0: 2f 62 3e 20 73 65 63 6f 6e 64 73 20 61 66 74 65  /b> seconds afte
b000: 72 20 73 74 61 72 74 69 6e 67 20 28 67 72 65 65  r starting (gree
b010: 6e 20 64 6f 74 74 65 64 20 6c 69 6e 65 29 2e 3c  n dotted line).<
b020: 62 72 3e 0d 0a 28 61 73 73 75 6d 69 6e 67 20 74  br>..(assuming t
b030: 68 65 20 73 61 6d 65 20 70 61 74 68 20 72 65 74  he same path ret
b040: 75 72 6e 65 64 20 62 79 20 74 68 65 20 6c 61 74  urned by the lat
b050: 65 73 74 20 3c 62 3e 62 79 63 61 72 3c 2f 62 3e  est <b>bycar</b>
b060: 20 71 75 65 72 79 29 2e 0d 0a 3c 2f 74 64 3e 0d   query)...</td>.
b070: 0a 3c 74 64 3e 3c 69 6d 67 20 73 72 63 3d 22 68  .<td><img src="h
b080: 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61 2d  ttps://www.gaia-
b090: 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e 73  gis.it/gaia-sins
b0a0: 2f 72 6f 75 74 69 6e 67 2d 66 69 67 73 2f 72 6f  /routing-figs/ro
b0b0: 75 74 69 6e 67 32 2e 6a 70 67 22 20 61 6c 74 3d  uting2.jpg" alt=
b0c0: 22 66 69 67 32 22 3e 3c 2f 74 64 3e 0d 0a 3c 2f  "fig2"></td>..</
b0d0: 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c  tr>..</table>..<
b0e0: 62 72 3e 0d 0a 3c 68 32 3e 50 6c 61 79 69 6e 67  br>..<h2>Playing
b0f0: 20 77 69 74 68 20 56 69 72 74 75 61 6c 52 6f 75   with VirtualRou
b100: 74 69 6e 67 20 63 6f 6e 66 69 67 75 72 61 62 6c  ting configurabl
b110: 65 20 6f 70 74 69 6f 6e 73 3c 2f 68 32 3e 0d 0a  e options</h2>..
b120: 53 65 76 65 72 61 6c 20 61 73 70 65 63 74 73 20  Several aspects 
b130: 6f 66 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e  of VirtualRoutin
b140: 67 20 63 61 6e 20 62 65 20 66 72 65 65 6c 79 20  g can be freely 
b150: 63 75 73 74 6f 6d 69 7a 65 64 2e 0d 0a 3c 76 65  customized...<ve
b160: 72 62 61 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20  rbatim>..UPDATE 
b170: 62 79 66 6f 6f 74 20 53 45 54 20 41 6c 67 6f 72  byfoot SET Algor
b180: 69 74 68 6d 20 3d 20 27 41 2a 27 3b 0d 0a 0d 0a  ithm = 'A*';....
b190: 53 45 4c 45 43 54 20 41 6c 67 6f 72 69 74 68 6d  SELECT Algorithm
b1a0: 2c 20 4f 70 74 69 6f 6e 73 2c 20 52 6f 75 74 65  , Options, Route
b1b0: 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52  Row, Role, LinkR
b1c0: 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20  owid, NodeFrom, 
b1d0: 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65  NodeTo, Cost, Ge
b1e0: 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52  ometry, Name..FR
b1f0: 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45 52 45  OM byfoot..WHERE
b200: 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37 38 37   NodeFrom = 1787
b210: 33 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20 3d 20  31 AND NodeTo = 
b220: 31 38 33 32 38 36 3b 0d 0a 3c 2f 76 65 72 62 61  183286;..</verba
b230: 74 69 6d 3e 0d 0a 49 66 20 79 6f 75 20 72 65 6d  tim>..If you rem
b240: 65 6d 62 65 72 20 69 6e 20 61 6c 6c 20 74 68 65  ember in all the
b250: 20 70 72 65 76 69 6f 75 73 20 65 78 61 6d 70 6c   previous exampl
b260: 65 73 20 74 68 65 20 3c 62 3e 44 69 6a 6b 73 74  es the <b>Dijkst
b270: 72 61 27 73 3c 2f 62 3e 20 61 6c 67 6f 72 69 74  ra's</b> algorit
b280: 68 6d 20 77 61 73 20 75 73 65 64 3b 20 6e 6f 77  hm was used; now
b290: 20 28 61 66 74 65 72 20 65 78 65 63 75 74 69 6e   (after executin
b2a0: 67 20 74 68 65 20 61 62 6f 76 65 20 3c 62 3e 55  g the above <b>U
b2b0: 50 44 41 54 45 3c 2f 62 3e 29 20 61 6c 6c 20 53  PDATE</b>) all S
b2c0: 68 6f 72 74 65 73 74 20 50 61 74 68 20 71 75 65  hortest Path que
b2d0: 72 69 65 73 20 77 69 6c 6c 20 62 65 20 62 61 73  ries will be bas
b2e0: 65 64 20 6f 6e 20 74 68 65 20 61 6c 74 65 72 6e  ed on the altern
b2f0: 61 74 69 76 65 20 3c 62 3e 41 2a 3c 2f 62 3e 20  ative <b>A*</b> 
b300: 61 6c 67 6f 72 69 74 68 6d 2e 3c 62 72 3e 0d 0a  algorithm.<br>..
b310: 49 66 20 79 6f 75 20 77 69 73 68 20 74 6f 20 73  If you wish to s
b320: 65 6c 65 63 74 20 61 67 61 69 6e 20 74 68 65 20  elect again the 
b330: 44 69 6a 6b 73 74 72 61 27 73 20 61 6c 67 6f 72  Dijkstra's algor
b340: 69 74 68 6d 20 79 6f 75 20 6a 75 73 74 20 68 61  ithm you just ha
b350: 76 65 20 74 6f 20 65 78 65 63 75 74 65 3c 62 72  ve to execute<br
b360: 3e 20 3c 62 3e 55 50 44 41 54 45 20 62 79 66 6f  > <b>UPDATE byfo
b370: 6f 74 20 53 45 54 20 41 6c 67 6f 72 69 74 68 6d  ot SET Algorithm
b380: 20 3d 20 27 44 49 4a 4b 53 54 52 41 27 3b 3c 2f   = 'DIJKSTRA';</
b390: 62 3e 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 54 68 65  b>.<br><br>..The
b3a0: 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65   following table
b3b0: 20 73 68 6f 77 73 20 74 68 65 20 72 65 73 75 6c   shows the resul
b3c0: 74 73 65 74 20 72 65 74 75 72 6e 65 64 20 62 79  tset returned by
b3d0: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 53 68   the previous Sh
b3e0: 6f 72 74 65 73 74 20 50 61 74 68 20 71 75 65 72  ortest Path quer
b3f0: 79 3b 20 70 6c 65 61 73 65 20 6e 6f 74 69 63 65  y; please notice
b400: 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68   the value in th
b410: 65 20 3c 62 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f  e <b>Algorithm</
b420: 62 3e 20 63 6f 6c 75 6d 6e 2e 0d 0a 3c 62 72 3e  b> column...<br>
b430: 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72  <br>..<table bor
b440: 64 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d  der="1" bgcolor=
b450: 22 23 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70  "#ffffcf" cellsp
b460: 61 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61  acing="4" cellpa
b470: 64 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e  dding="6">..<tr>
b480: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
b490: 64 30 61 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c  d0a0">Algorithm<
b4a0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
b4b0: 22 23 64 30 64 30 61 30 22 3e 4f 70 74 69 6f 6e  "#d0d0a0">Option
b4c0: 73 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  s</th><th bgcolo
b4d0: 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74  r="#d0d0a0">Rout
b4e0: 65 52 6f 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63  eRow</th><th bgc
b4f0: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52  olor="#d0d0a0">R
b500: 6f 6c 65 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  ole</th><th bgco
b510: 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4c 69  lor="#d0d0a0">Li
b520: 6e 6b 52 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20  nkRowid</th><th 
b530: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
b540: 22 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c  ">NodeFrom</th><
b550: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
b560: 30 61 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e  0a0">NodeTo</th>
b570: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
b580: 64 30 61 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c  d0a0">Cost</th><
b590: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
b5a0: 30 61 30 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74  0a0">Geometry</t
b5b0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
b5c0: 64 30 64 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68  d0d0a0">Name</th
b5d0: 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e  ></tr>..<tr><td>
b5e0: 41 2a 3c 2f 74 64 3e 3c 74 64 3e 46 75 6c 6c 3c  A*</td><td>Full<
b5f0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
b600: 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
b610: 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
b620: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
b630: 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
b640: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
b650: 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64  ight">183286</td
b660: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
b670: 74 22 3e 33 30 30 2e 39 31 32 32 30 38 3c 2f 74  t">300.912208</t
b680: 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 37  d><td>BLOB sz=27
b690: 32 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  2 GEOMETRY</td><
b6a0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
b6b0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
b6c0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
b6d0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
b6e0: 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64  right">1</td><td
b6f0: 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
b700: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 30  ign="right">2240
b710: 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  14</td><td align
b720: 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
b730: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
b740: 69 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64  ight">182885</td
b750: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
b760: 74 22 3e 39 34 2e 38 31 32 34 32 34 3c 2f 74 64  t">94.812424</td
b770: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
b780: 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41 52 45  d>VIA PIETRO ARE
b790: 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  TINO</td>..</tr>
b7a0: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
b7b0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
b7c0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
b7d0: 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">2</td><td>Li
b7e0: 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
b7f0: 3d 22 72 69 67 68 74 22 3e 32 32 34 34 34 36 3c  ="right">224446<
b800: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
b810: 69 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64  ight">182885</td
b820: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
b830: 74 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74  t">178880</td><t
b840: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
b850: 36 39 2e 37 32 37 37 32 36 3c 2f 74 64 3e 3c 74  69.727726</td><t
b860: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
b870: 49 41 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f  IA MARGARITONE</
b880: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
b890: 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
b8a0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
b8b0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c  align="right">3<
b8c0: 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
b8d0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
b8e0: 74 22 3e 32 32 34 34 31 34 3c 2f 74 64 3e 3c 74  t">224414</td><t
b8f0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
b900: 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61  178880</td><td a
b910: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
b920: 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  286</td><td alig
b930: 6e 3d 22 72 69 67 68 74 22 3e 31 33 36 2e 33 37  n="right">136.37
b940: 32 30 35 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  2057</td><td>NUL
b950: 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d 41  L</td><td>VIA MA
b960: 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d 0a  RGARITONE</td>..
b970: 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d  </tr>..</table>.
b980: 0a 3c 62 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 59  .<br><br><br>..Y
b990: 6f 75 20 63 61 6e 20 65 76 65 6e 74 75 61 6c 6c  ou can eventuall
b9a0: 79 20 63 6f 6e 66 69 67 75 72 65 20 74 68 65 20  y configure the 
b9b0: 72 65 73 75 6c 74 73 65 74 20 72 65 74 75 72 6e  resultset return
b9c0: 65 64 20 74 68 65 20 56 69 72 74 75 61 6c 52 6f  ed the VirtualRo
b9d0: 75 74 69 6e 67 20 71 75 65 72 69 65 73 2e 0d 0a  uting queries...
b9e0: 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55 50 44 41  <verbatim>..UPDA
b9f0: 54 45 20 62 79 66 6f 6f 74 20 53 45 54 20 4f 70  TE byfoot SET Op
ba00: 74 69 6f 6e 73 20 3d 20 27 4e 4f 20 4c 49 4e 4b  tions = 'NO LINK
ba10: 53 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 41 6c  S';....SELECT Al
ba20: 67 6f 72 69 74 68 6d 2c 20 4f 70 74 69 6f 6e 73  gorithm, Options
ba30: 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65  , RouteRow, Role
ba40: 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64  , LinkRowid, Nod
ba50: 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43  eFrom, NodeTo, C
ba60: 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e  ost, Geometry, N
ba70: 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74  ame..FROM byfoot
ba80: 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d  ..WHERE NodeFrom
ba90: 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e 6f   = 178731 AND No
baa0: 64 65 54 6f 20 3d 20 31 38 33 32 38 36 3b 0d 0a  deTo = 183286;..
bab0: 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 41 66 74  </verbatim>..Aft
bac0: 65 72 20 73 65 74 74 69 6e 67 20 3c 62 3e 4f 70  er setting <b>Op
bad0: 74 69 6f 6e 73 3d 27 4e 4f 20 4c 49 4e 4b 53 27  tions='NO LINKS'
bae0: 3c 2f 62 3e 20 74 68 65 20 72 65 73 75 6c 74 73  </b> the results
baf0: 65 74 20 77 69 6c 6c 20 73 69 6d 70 6c 79 20 63  et will simply c
bb00: 6f 6e 74 61 69 6e 20 74 68 65 20 68 65 61 64 65  ontain the heade
bb10: 72 20 72 6f 77 2c 20 61 6e 64 20 61 6c 6c 20 74  r row, and all t
bb20: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 72 6f 77  he following row
bb30: 73 20 77 69 6c 6c 20 62 65 20 73 75 70 70 72 65  s will be suppre
bb40: 73 73 65 64 2e 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f  ssed.<br>..<u>No
bb50: 74 65 3c 2f 75 3e 3a 20 70 72 6f 64 75 63 69 6e  te</u>: producin
bb60: 67 20 61 20 72 65 64 75 63 65 64 20 72 65 73 75  g a reduced resu
bb70: 6c 74 73 65 74 20 69 73 20 65 78 70 65 63 74 65  ltset is expecte
bb80: 64 20 74 6f 20 62 65 20 73 6f 6d 65 77 61 79 20  d to be someway 
bb90: 66 61 73 74 65 72 2e 3c 62 72 3e 0d 0a 54 68 65  faster.<br>..The
bba0: 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65   following table
bbb0: 20 73 68 6f 77 73 20 74 68 65 20 72 65 73 75 6c   shows the resul
bbc0: 74 73 65 74 20 72 65 74 75 72 6e 65 64 20 62 79  tset returned by
bbd0: 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 53 68   the previous Sh
bbe0: 6f 72 74 65 73 74 20 50 61 74 68 20 71 75 65 72  ortest Path quer
bbf0: 79 3b 20 70 6c 65 61 73 65 20 6e 6f 74 69 63 65  y; please notice
bc00: 20 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68   the value in th
bc10: 65 20 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e  e <b>Options</b>
bc20: 20 63 6f 6c 75 6d 6e 2e 0d 0a 3c 62 72 3e 3c 62   column...<br><b
bc30: 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65  r>..<table borde
bc40: 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23  r="1" bgcolor="#
bc50: 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63  ffffcf" cellspac
bc60: 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64  ing="4" cellpadd
bc70: 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74  ing="6">..<tr><t
bc80: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
bc90: 61 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74  a0">Algorithm</t
bca0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
bcb0: 64 30 64 30 61 30 22 3e 4f 70 74 69 6f 6e 73 3c  d0d0a0">Options<
bcc0: 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
bcd0: 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65 52  "#d0d0a0">RouteR
bce0: 6f 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ow</th><th bgcol
bcf0: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 6c  or="#d0d0a0">Rol
bd00: 65 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  e</th><th bgcolo
bd10: 72 3d 22 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b  r="#d0d0a0">Link
bd20: 52 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67  Rowid</th><th bg
bd30: 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
bd40: 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68  NodeFrom</th><th
bd50: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
bd60: 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74  0">NodeTo</th><t
bd70: 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
bd80: 61 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68  a0">Cost</th><th
bd90: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
bda0: 30 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e  0">Geometry</th>
bdb0: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
bdc0: 64 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c  d0a0">Name</th><
bdd0: 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
bde0: 41 2a 3c 2f 74 64 3e 3c 74 64 3e 4e 6f 20 4c 69  A*</td><td>No Li
bdf0: 6e 6b 73 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  nks</td><td alig
be00: 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
be10: 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74  <td>Route</td><t
be20: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
be30: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
be40: 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  731</td><td alig
be50: 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36  n="right">183286
be60: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
be70: 72 69 67 68 74 22 3e 33 30 30 2e 39 31 32 32 30  right">300.91220
be80: 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  8</td><td>BLOB s
be90: 7a 3d 32 37 32 20 47 45 4f 4d 45 54 52 59 3c 2f  z=272 GEOMETRY</
bea0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
beb0: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65  ..</tr>..</table
bec0: 3e 0d 0a 3c 62 72 3e 3c 62 72 3e 3c 62 72 3e 0d  >..<br><br><br>.
bed0: 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55 50 44  .<verbatim>..UPD
bee0: 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54 20 4f  ATE byfoot SET O
bef0: 70 74 69 6f 6e 73 20 3d 20 27 4e 4f 20 47 45 4f  ptions = 'NO GEO
bf00: 4d 45 54 52 49 45 53 27 3b 0d 0a 0d 0a 53 45 4c  METRIES';....SEL
bf10: 45 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20 4f  ECT Algorithm, O
bf20: 70 74 69 6f 6e 73 2c 20 52 6f 75 74 65 52 6f 77  ptions, RouteRow
bf30: 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69  , Role, LinkRowi
bf40: 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64  d, NodeFrom, Nod
bf50: 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65  eTo, Cost, Geome
bf60: 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20  try, Name..FROM 
bf70: 62 79 66 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f  byfoot..WHERE No
bf80: 64 65 46 72 6f 6d 20 3d 20 31 37 38 37 33 31 20  deFrom = 178731 
bf90: 41 4e 44 20 4e 6f 64 65 54 6f 20 3d 20 31 38 33  AND NodeTo = 183
bfa0: 32 38 36 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d  286;..</verbatim
bfb0: 3e 41 66 74 65 72 20 73 65 74 74 69 6e 67 20 3c  >After setting <
bfc0: 62 3e 4f 70 74 69 6f 6e 73 3d 27 4e 4f 20 47 45  b>Options='NO GE
bfd0: 4f 4d 45 54 52 49 45 53 27 3c 2f 62 3e 20 74 68  OMETRIES'</b> th
bfe0: 65 20 72 65 73 75 6c 74 73 65 74 20 77 69 6c 6c  e resultset will
bff0: 20 63 6f 6e 74 61 69 6e 20 61 6c 6c 20 72 6f 77   contain all row
c000: 73 2c 20 62 75 74 20 61 6c 6c 20 47 65 6f 6d 65  s, but all Geome
c010: 74 72 69 65 73 20 77 69 6c 6c 20 62 65 20 73 75  tries will be su
c020: 70 70 72 65 73 73 65 64 2e 3c 62 72 3e 0d 0a 3c  ppressed.<br>..<
c030: 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 74 68 69 73  u>Note</u>: this
c040: 20 74 6f 6f 20 69 73 20 65 78 70 65 63 74 65 64   too is expected
c050: 20 74 6f 20 62 65 20 73 6f 6d 65 77 61 79 20 66   to be someway f
c060: 61 73 74 65 72 2e 3c 62 72 3e 0d 0a 54 68 65 20  aster.<br>..The 
c070: 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65 20  following table 
c080: 73 68 6f 77 73 20 74 68 65 20 72 65 73 75 6c 74  shows the result
c090: 73 65 74 20 72 65 74 75 72 6e 65 64 20 62 79 20  set returned by 
c0a0: 74 68 65 20 70 72 65 76 69 6f 75 73 20 53 68 6f  the previous Sho
c0b0: 72 74 65 73 74 20 50 61 74 68 20 71 75 65 72 79  rtest Path query
c0c0: 3b 20 70 6c 65 61 73 65 20 6e 6f 74 69 63 65 20  ; please notice 
c0d0: 74 68 65 20 76 61 6c 75 65 20 69 6e 20 74 68 65  the value in the
c0e0: 20 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e 20   <b>Options</b> 
c0f0: 63 6f 6c 75 6d 6e 2e 0d 0a 3c 62 72 3e 3c 62 72  column...<br><br
c100: 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65 72  >..<table border
c110: 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66  ="1" bgcolor="#f
c120: 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63 69  fffcf" cellspaci
c130: 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64 69  ng="4" cellpaddi
c140: 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68  ng="6">..<tr><th
c150: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
c160: 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74 68  0">Algorithm</th
c170: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
c180: 30 64 30 61 30 22 3e 4f 70 74 69 6f 6e 73 3c 2f  0d0a0">Options</
c190: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
c1a0: 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65 52 6f  #d0d0a0">RouteRo
c1b0: 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  w</th><th bgcolo
c1c0: 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 6c 65  r="#d0d0a0">Role
c1d0: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
c1e0: 3d 22 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52  ="#d0d0a0">LinkR
c1f0: 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63  owid</th><th bgc
c200: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
c210: 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20  odeFrom</th><th 
c220: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
c230: 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68  ">NodeTo</th><th
c240: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
c250: 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20  0">Cost</th><th 
c260: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
c270: 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c  ">Geometry</th><
c280: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
c290: 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f  0a0">Name</th></
c2a0: 74 72 3e 0d 0a 3c 74 72 3e 3c 74 64 3e 41 2a 3c  tr>..<tr><td>A*<
c2b0: 2f 74 64 3e 3c 74 64 3e 4e 6f 20 47 65 6f 6d 65  /td><td>No Geome
c2c0: 74 72 69 65 73 3c 2f 74 64 3e 3c 74 64 20 61 6c  tries</td><td al
c2d0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74  ign="right">0</t
c2e0: 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e  d><td>Route</td>
c2f0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
c300: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
c310: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
c320: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32  ign="right">1832
c330: 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  86</td><td align
c340: 3d 22 72 69 67 68 74 22 3e 33 30 30 2e 39 31 32  ="right">300.912
c350: 32 30 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  208</td><td>NULL
c360: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
c370: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
c380: 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
c390: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
c3a0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f  lign="right">1</
c3b0: 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
c3c0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
c3d0: 22 3e 32 32 34 30 31 34 3c 2f 74 64 3e 3c 74 64  ">224014</td><td
c3e0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
c3f0: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
c400: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38  ign="right">1828
c410: 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  85</td><td align
c420: 3d 22 72 69 67 68 74 22 3e 39 34 2e 38 31 32 34  ="right">94.8124
c430: 32 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  24</td><td>NULL<
c440: 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45 54  /td><td>VIA PIET
c450: 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d  RO ARETINO</td>.
c460: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
c470: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
c480: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
c490: 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e  n="right">2</td>
c4a0: 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64  <td>Link</td><td
c4b0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
c4c0: 32 34 34 34 36 3c 2f 74 64 3e 3c 74 64 20 61 6c  24446</td><td al
c4d0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38  ign="right">1828
c4e0: 38 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  85</td><td align
c4f0: 3d 22 72 69 67 68 74 22 3e 31 37 38 38 38 30 3c  ="right">178880<
c500: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
c510: 69 67 68 74 22 3e 36 39 2e 37 32 37 37 32 36 3c  ight">69.727726<
c520: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
c530: 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49  ><td>VIA MARGARI
c540: 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  TONE</td>..</tr>
c550: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
c560: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
c570: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
c580: 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">3</td><td>Li
c590: 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
c5a0: 3d 22 72 69 67 68 74 22 3e 32 32 34 34 31 34 3c  ="right">224414<
c5b0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
c5c0: 69 67 68 74 22 3e 31 37 38 38 38 30 3c 2f 74 64  ight">178880</td
c5d0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
c5e0: 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74  t">183286</td><t
c5f0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
c600: 31 33 36 2e 33 37 32 30 35 37 3c 2f 74 64 3e 3c  136.372057</td><
c610: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
c620: 56 49 41 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c  VIA MARGARITONE<
c630: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74  /td>..</tr>..</t
c640: 61 62 6c 65 3e 0d 0a 3c 62 72 3e 3c 62 72 3e 3c  able>..<br><br><
c650: 62 72 3e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  br>..<verbatim>.
c660: 0a 55 50 44 41 54 45 20 62 79 66 6f 6f 74 20 53  .UPDATE byfoot S
c670: 45 54 20 4f 70 74 69 6f 6e 73 20 3d 20 27 53 49  ET Options = 'SI
c680: 4d 50 4c 45 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54  MPLE';....SELECT
c690: 20 41 6c 67 6f 72 69 74 68 6d 2c 20 4f 70 74 69   Algorithm, Opti
c6a0: 6f 6e 73 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52  ons, RouteRow, R
c6b0: 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20  ole, LinkRowid, 
c6c0: 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f  NodeFrom, NodeTo
c6d0: 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79  , Cost, Geometry
c6e0: 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66  , Name..FROM byf
c6f0: 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46  oot..WHERE NodeF
c700: 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44  rom = 178731 AND
c710: 20 4e 6f 64 65 54 6f 20 3d 20 31 38 33 32 38 36   NodeTo = 183286
c720: 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 53 65  ;..</verbatim>Se
c730: 74 74 69 6e 67 20 3c 62 3e 4f 70 74 69 6f 6e 73  tting <b>Options
c740: 3d 27 53 49 4d 50 4c 45 27 3c 2f 62 3e 20 68 61  ='SIMPLE'</b> ha
c750: 73 20 74 68 65 20 73 61 6d 65 20 65 66 66 65 63  s the same effec
c760: 74 20 74 68 61 6e 20 73 65 74 74 69 6e 67 20 62  t than setting b
c770: 6f 74 68 20 3c 62 3e 4e 4f 20 4c 49 4e 4b 53 3c  oth <b>NO LINKS<
c780: 2f 62 3e 20 61 6e 64 20 3c 62 3e 4e 4f 20 47 45  /b> and <b>NO GE
c790: 4f 4d 45 54 52 49 45 53 3c 2f 62 3e 20 61 74 20  OMETRIES</b> at 
c7a0: 74 68 65 20 73 61 6d 65 20 74 69 6d 65 2e 3c 62  the same time.<b
c7b0: 72 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a  r>..<u>Note</u>:
c7c0: 20 74 68 69 73 20 69 73 20 65 78 70 65 63 74 65   this is expecte
c7d0: 64 20 74 6f 20 62 65 20 74 68 65 20 66 61 73 74  d to be the fast
c7e0: 65 73 74 20 73 65 74 74 69 6e 67 2e 3c 62 72 3e  est setting.<br>
c7f0: 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20  ..The following 
c800: 74 61 62 6c 65 20 73 68 6f 77 73 20 74 68 65 20  table shows the 
c810: 72 65 73 75 6c 74 73 65 74 20 72 65 74 75 72 6e  resultset return
c820: 65 64 20 62 79 20 74 68 65 20 70 72 65 76 69 6f  ed by the previo
c830: 75 73 20 53 68 6f 72 74 65 73 74 20 50 61 74 68  us Shortest Path
c840: 20 71 75 65 72 79 3b 20 70 6c 65 61 73 65 20 6e   query; please n
c850: 6f 74 69 63 65 20 74 68 65 20 76 61 6c 75 65 20  otice the value 
c860: 69 6e 20 74 68 65 20 3c 62 3e 4f 70 74 69 6f 6e  in the <b>Option
c870: 73 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 2e 0d 0a 3c  s</b> column...<
c880: 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20  br><br>..<table 
c890: 62 6f 72 64 65 72 3d 22 31 22 20 62 67 63 6f 6c  border="1" bgcol
c8a0: 6f 72 3d 22 23 66 66 66 66 63 66 22 20 63 65 6c  or="#ffffcf" cel
c8b0: 6c 73 70 61 63 69 6e 67 3d 22 34 22 20 63 65 6c  lspacing="4" cel
c8c0: 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c  lpadding="6">..<
c8d0: 74 72 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  tr><th bgcolor="
c8e0: 23 64 30 64 30 61 30 22 3e 41 6c 67 6f 72 69 74  #d0d0a0">Algorit
c8f0: 68 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  hm</th><th bgcol
c900: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4f 70 74  or="#d0d0a0">Opt
c910: 69 6f 6e 73 3c 2f 74 68 3e 3c 74 68 20 62 67 63  ions</th><th bgc
c920: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52  olor="#d0d0a0">R
c930: 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74 68 20  outeRow</th><th 
c940: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
c950: 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68 20 62  ">Role</th><th b
c960: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
c970: 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68 3e 3c  >LinkRowid</th><
c980: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
c990: 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 74  0a0">NodeFrom</t
c9a0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
c9b0: 64 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f 3c 2f  d0d0a0">NodeTo</
c9c0: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
c9d0: 23 64 30 64 30 61 30 22 3e 43 6f 73 74 3c 2f 74  #d0d0a0">Cost</t
c9e0: 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
c9f0: 64 30 64 30 61 30 22 3e 47 65 6f 6d 65 74 72 79  d0d0a0">Geometry
ca00: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
ca10: 3d 22 23 64 30 64 30 61 30 22 3e 4e 61 6d 65 3c  ="#d0d0a0">Name<
ca20: 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  /th></tr>..<tr>.
ca30: 0a 3c 74 64 3e 41 2a 3c 2f 74 64 3e 3c 74 64 3e  .<td>A*</td><td>
ca40: 53 69 6d 70 6c 65 3c 2f 74 64 3e 3c 74 64 20 61  Simple</td><td a
ca50: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f  lign="right">0</
ca60: 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64  td><td>Route</td
ca70: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
ca80: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
ca90: 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61  178731</td><td a
caa0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
cab0: 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  286</td><td alig
cac0: 6e 3d 22 72 69 67 68 74 22 3e 33 30 30 2e 39 31  n="right">300.91
cad0: 32 32 30 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  2208</td><td>NUL
cae0: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
caf0: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61  td>..</tr>..</ta
cb00: 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 46 69 6e 61  ble>..<br>..Fina
cb10: 6c 6c 79 2c 20 69 66 20 79 6f 75 20 77 69 73 68  lly, if you wish
cb20: 20 74 6f 20 73 65 6c 65 63 74 20 61 67 61 69 6e   to select again
cb30: 20 74 68 65 20 69 6e 69 74 69 61 6c 20 73 74 61   the initial sta
cb40: 6e 64 61 72 64 20 73 65 74 74 69 6e 67 20 79 6f  ndard setting yo
cb50: 75 20 6a 75 73 74 20 68 61 76 65 20 74 6f 20 65  u just have to e
cb60: 78 65 63 75 74 65 3c 62 72 3e 20 3c 62 3e 55 50  xecute<br> <b>UP
cb70: 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54 20  DATE byfoot SET 
cb80: 4f 70 74 69 6f 6e 73 20 3d 20 27 46 55 4c 4c 27  Options = 'FULL'
cb90: 3b 3c 2f 62 3e 2e 3c 62 72 3e 3c 62 72 3e 0d 0a  ;</b>.<br><br>..
cba0: 3c 68 72 3e 3c 62 72 3e 0d 0a 3c 68 31 3e 3c 61  <hr><br>..<h1><a
cbb0: 20 6e 61 6d 65 3d 22 6d 75 6c 74 69 22 3e 35 20   name="multi">5 
cbc0: 2d 20 53 6f 6c 76 69 6e 67 20 6d 75 6c 74 69 2d  - Solving multi-
cbd0: 64 65 73 74 69 6e 61 74 69 6f 6e 20 53 68 6f 72  destination Shor
cbe0: 74 65 73 74 20 50 61 74 68 20 70 72 6f 62 6c 65  test Path proble
cbf0: 6d 73 3c 2f 61 3e 3c 2f 68 31 3e 0d 0a 41 20 76  ms</a></h1>..A v
cc00: 65 72 79 20 69 6e 74 65 72 65 73 74 69 6e 67 20  ery interesting 
cc10: 66 65 61 74 75 72 65 20 73 75 70 70 6f 72 74 65  feature supporte
cc20: 64 20 62 79 20 74 68 65 20 44 69 6a 6b 73 74 72  d by the Dijkstr
cc30: 61 27 73 20 41 6c 67 6f 72 69 74 68 6d 20 69 73  a's Algorithm is
cc40: 20 74 68 61 74 20 69 74 20 72 6f 62 75 73 74 6c   that it robustl
cc50: 79 20 65 6e 73 75 72 65 73 20 74 68 61 74 20 77  y ensures that w
cc60: 68 65 6e 20 61 20 64 65 73 74 69 6e 61 74 69 6f  hen a destinatio
cc70: 6e 20 69 73 20 72 65 61 63 68 65 64 20 61 6c 6c  n is reached all
cc80: 20 74 68 65 20 64 65 73 74 69 6e 61 74 69 6f 6e   the destination
cc90: 73 20 70 72 65 73 65 6e 74 69 6e 67 20 61 20 3c  s presenting a <
cca0: 62 3e 6c 65 73 73 65 72 20 63 6f 73 74 3c 2f 62  b>lesser cost</b
ccb0: 3e 20 68 61 76 65 20 61 6c 72 65 61 64 79 20 62  > have already b
ccc0: 65 65 6e 20 72 65 61 63 68 65 64 20 69 6e 20 73  een reached in s
ccd0: 6f 6d 65 20 70 72 65 76 69 6f 75 73 20 73 74 65  ome previous ste
cce0: 70 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73  p of the process
ccf0: 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 61 6c 6c 6f  .<br>..This allo
cd00: 77 73 20 74 6f 20 65 66 66 69 63 69 65 6e 74 6c  ws to efficientl
cd10: 79 20 73 75 70 70 6f 72 74 20 3c 62 3e 6d 75 6c  y support <b>mul
cd20: 74 69 70 6c 65 20 64 65 73 74 69 6e 61 74 69 6f  tiple destinatio
cd30: 6e 73 3c 2f 62 3e 20 53 68 6f 72 74 65 73 74 20  ns</b> Shortest 
cd40: 50 61 74 68 20 71 75 65 72 69 65 73 2e 0d 0a 59  Path queries...Y
cd50: 6f 75 20 73 69 6d 70 6c 79 20 68 61 76 65 20 74  ou simply have t
cd60: 6f 20 73 70 65 63 69 66 79 20 61 20 3c 62 3e 73  o specify a <b>s
cd70: 69 6e 67 6c 65 20 6f 72 69 67 69 6e 20 4e 6f 64  ingle origin Nod
cd80: 65 3c 2f 62 3e 20 61 6e 64 20 61 6e 20 3c 62 3e  e</b> and an <b>
cd90: 61 72 62 69 74 72 61 72 79 20 6c 69 73 74 20 6f  arbitrary list o
cda0: 66 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 4e 6f  f destination No
cdb0: 64 65 73 3c 2f 62 3e 20 69 6e 20 61 20 73 69 6e  des</b> in a sin
cdc0: 67 6c 65 20 44 69 6a 6b 73 74 72 61 27 73 20 65  gle Dijkstra's e
cdd0: 78 65 63 75 74 69 6f 6e 2e 3c 62 72 3e 3c 62 72  xecution.<br><br
cde0: 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20  >..<u>Note</u>: 
cdf0: 65 78 65 63 75 74 69 6e 67 20 61 20 6d 75 6c 74  executing a mult
ce00: 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e 20 53 68  i-destination Sh
ce10: 6f 72 74 65 73 74 20 50 61 74 68 20 71 75 65 72  ortest Path quer
ce20: 79 20 72 65 71 75 69 72 65 73 20 61 20 3c 62 3e  y requires a <b>
ce30: 70 72 6f 63 65 73 73 69 6e 67 20 74 69 6d 65 3c  processing time<
ce40: 2f 62 3e 20 74 68 61 74 20 69 73 6e 27 74 20 74  /b> that isn't t
ce50: 68 65 20 3c 75 3e 73 75 6d 20 6f 66 20 61 6c 6c  he <u>sum of all
ce60: 20 69 6e 64 69 76 69 64 75 61 6c 20 74 69 6d 69   individual timi
ce70: 6e 67 73 20 66 6f 72 20 65 61 63 68 20 64 65 73  ngs for each des
ce80: 74 69 6e 61 74 69 6f 6e 3c 2f 75 3e 2c 20 62 75  tination</u>, bu
ce90: 74 20 73 69 6d 70 6c 79 20 69 73 20 74 68 65 20  t simply is the 
cea0: 3c 75 3e 74 69 6d 65 20 72 65 71 75 69 72 65 64  <u>time required
ceb0: 20 74 6f 20 72 65 61 63 68 20 74 68 65 20 6d 6f   to reach the mo
cec0: 73 74 20 63 6f 73 74 6c 79 20 6f 66 20 61 6c 6c  st costly of all
ced0: 20 64 65 73 74 69 6e 61 74 69 6f 6e 73 20 69 6e   destinations in
cee0: 20 74 68 65 20 6c 69 73 74 3c 2f 75 3e 2e 3c 62   the list</u>.<b
cef0: 72 3e 0d 0a 54 68 69 73 20 69 73 6e 27 74 20 72  r>..This isn't r
cf00: 69 67 6f 72 6f 75 73 6c 79 20 74 72 75 65 20 69  igorously true i
cf10: 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 74 68  n the case of th
cf20: 65 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67  e VirtualRouting
cf30: 20 73 70 65 63 69 66 69 63 20 69 6d 70 6c 65 6d   specific implem
cf40: 65 6e 74 61 74 69 6f 6e 2c 20 62 65 63 61 75 73  entation, becaus
cf50: 65 20 61 72 72 61 6e 67 69 6e 67 20 74 68 65 20  e arranging the 
cf60: 72 65 73 75 6c 74 73 65 74 20 74 6f 20 62 65 20  resultset to be 
cf70: 72 65 74 75 72 6e 65 64 20 61 6e 64 20 63 72 65  returned and cre
cf80: 61 74 69 6e 67 20 61 6c 6c 20 74 68 65 20 69 6e  ating all the in
cf90: 64 69 76 69 64 75 61 6c 20 4c 69 6e 65 73 74 72  dividual Linestr
cfa0: 69 6e 67 73 20 66 6f 72 20 65 61 63 68 20 64 65  ings for each de
cfb0: 73 74 69 6e 61 74 69 6f 6e 20 77 69 6c 6c 20 73  stination will s
cfc0: 75 72 65 6c 79 20 69 6d 70 6f 73 65 20 73 6f 6d  urely impose som
cfd0: 65 20 66 75 72 74 68 65 72 20 6f 76 65 72 68 65  e further overhe
cfe0: 61 64 2c 20 62 75 74 20 6e 6f 6e 65 74 68 65 6c  ad, but nonethel
cff0: 65 73 73 20 69 74 20 72 65 6d 61 69 6e 73 20 63  ess it remains c
d000: 6f 6e 66 69 72 6d 65 64 20 74 68 61 74 20 65 78  onfirmed that ex
d010: 65 63 75 74 69 6e 67 20 61 20 73 69 6e 67 6c 65  ecuting a single
d020: 20 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74 69   multi-destinati
d030: 6f 6e 20 71 75 65 72 79 20 77 69 6c 6c 20 73 75  on query will su
d040: 72 65 6c 79 20 62 65 20 20 6e 6f 74 69 63 65 61  rely be  noticea
d050: 62 6c 79 20 66 61 73 74 65 72 20 74 68 65 6e 20  bly faster then 
d060: 65 78 65 63 75 74 69 6e 67 20 6d 61 6e 79 20 73  executing many s
d070: 70 61 72 73 65 20 73 69 6e 67 6c 65 2d 64 65 73  parse single-des
d080: 74 69 6e 61 74 69 6f 6e 20 71 75 65 72 69 65 73  tination queries
d090: 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53  ...<verbatim>..S
d0a0: 45 4c 45 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c  ELECT Algorithm,
d0b0: 20 52 65 71 75 65 73 74 2c 20 4f 70 74 69 6f 6e   Request, Option
d0c0: 73 2c 20 44 65 6c 69 6d 69 74 65 72 2c 20 52 6f  s, Delimiter, Ro
d0d0: 75 74 65 49 64 2c 20 52 6f 75 74 65 52 6f 77 2c  uteId, RouteRow,
d0e0: 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64   Role, LinkRowid
d0f0: 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65  , NodeFrom, Node
d100: 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74  To, Cost, Geomet
d110: 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62  ry, Name..FROM b
d120: 79 66 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64  yfoot..WHERE Nod
d130: 65 46 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41  eFrom = 178731 A
d140: 4e 44 20 4e 6f 64 65 54 6f 20 3d 20 27 31 38 33  ND NodeTo = '183
d150: 32 38 36 2c 32 39 30 34 35 38 2c 31 38 31 39 39  286,290458,18199
d160: 39 2c 31 38 34 30 33 30 2c 31 32 34 36 32 32 2c  9,184030,124622,
d170: 31 38 33 38 38 32 2c 31 37 38 37 35 34 27 3b 0d  183882,178754';.
d180: 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 41 73  .</verbatim>..As
d190: 20 79 6f 75 20 63 61 6e 20 65 61 73 69 6c 79 20   you can easily 
d1a0: 6e 6f 74 69 63 65 2c 20 61 20 3c 62 3e 6d 75 6c  notice, a <b>mul
d1b0: 74 69 70 6c 65 2d 64 65 73 74 69 6e 61 74 69 6f  tiple-destinatio
d1c0: 6e 73 3c 2f 62 3e 20 71 75 65 72 79 20 68 61 73  ns</b> query has
d1d0: 20 74 68 65 20 73 61 6d 65 20 69 64 65 6e 74 69   the same identi
d1e0: 63 61 6c 20 66 6f 72 6d 20 6f 66 20 61 6e 79 20  cal form of any 
d1f0: 75 73 75 61 6c 20 53 68 6f 72 74 65 73 74 20 50  usual Shortest P
d200: 61 74 68 20 71 75 65 72 79 2c 20 65 78 63 65 70  ath query, excep
d210: 74 20 69 6e 20 74 68 61 74 20 3c 62 3e 4e 6f 64  t in that <b>Nod
d220: 65 54 6f 3c 2f 62 3e 20 6e 6f 77 20 63 6f 72 72  eTo</b> now corr
d230: 65 73 70 6f 6e 64 73 20 74 6f 20 61 20 63 6f 6d  esponds to a com
d240: 6d 61 2d 73 65 70 61 72 61 74 65 64 20 6c 69 73  ma-separated lis
d250: 74 2e 3c 62 72 3e 0d 0a 54 68 65 20 66 6f 6c 6c  t.<br>..The foll
d260: 6f 77 69 6e 67 20 74 61 62 6c 65 20 73 68 6f 77  owing table show
d270: 73 20 74 68 65 20 72 65 73 75 6c 74 73 65 74 20  s the resultset 
d280: 72 65 74 75 72 6e 65 64 20 62 79 20 74 68 65 20  returned by the 
d290: 70 72 65 76 69 6f 75 73 20 6d 75 6c 74 69 2d 64  previous multi-d
d2a0: 65 73 74 69 6e 61 74 69 6f 6e 20 53 68 6f 72 74  estination Short
d2b0: 65 73 74 20 50 61 74 68 20 71 75 65 72 79 2e 0d  est Path query..
d2c0: 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c  .<br><br>..<tabl
d2d0: 65 20 62 6f 72 64 65 72 3d 22 31 22 20 62 67 63  e border="1" bgc
d2e0: 6f 6c 6f 72 3d 22 23 66 66 66 66 63 66 22 20 63  olor="#ffffcf" c
d2f0: 65 6c 6c 73 70 61 63 69 6e 67 3d 22 34 22 20 63  ellspacing="4" c
d300: 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 0d  ellpadding="6">.
d310: 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  .<tr><th bgcolor
d320: 3d 22 23 64 30 64 30 61 30 22 3e 41 6c 67 6f 72  ="#d0d0a0">Algor
d330: 69 74 68 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63  ithm</th><th bgc
d340: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52  olor="#d0d0a0">R
d350: 65 71 75 65 73 74 3c 2f 74 68 3e 3c 74 68 20 62  equest</th><th b
d360: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
d370: 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74 68  >Options</th><th
d380: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
d390: 30 22 3e 44 65 6c 69 6d 69 74 65 72 3c 2f 74 68  0">Delimiter</th
d3a0: 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
d3b0: 30 64 30 61 30 22 3e 52 6f 75 74 65 49 64 3c 2f  0d0a0">RouteId</
d3c0: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
d3d0: 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65 52 6f  #d0d0a0">RouteRo
d3e0: 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  w</th><th bgcolo
d3f0: 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 6c 65  r="#d0d0a0">Role
d400: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
d410: 3d 22 23 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52  ="#d0d0a0">LinkR
d420: 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63  owid</th><th bgc
d430: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
d440: 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20  odeFrom</th><th 
d450: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
d460: 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68  ">NodeTo</th><th
d470: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
d480: 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20  0">Cost</th><th 
d490: 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
d4a0: 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c  ">Geometry</th><
d4b0: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
d4c0: 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f  0a0">Name</th></
d4d0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 44  tr>..<tr>..<td>D
d4e0: 69 6a 6b 73 74 72 61 3c 2f 74 64 3e 3c 74 64 3e  ijkstra</td><td>
d4f0: 53 68 6f 72 74 65 73 74 20 50 61 74 68 3c 2f 74  Shortest Path</t
d500: 64 3e 3c 74 64 3e 46 75 6c 6c 3c 2f 74 64 3e 3c  d><td>Full</td><
d510: 74 64 3e 2c 20 26 23 39 31 3b 64 65 63 3d 34 34  td>, &#91;dec=44
d520: 2c 20 68 65 78 3d 32 63 26 23 39 33 3b 3c 2f 74  , hex=2c&#93;</t
d530: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
d540: 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">0</td><td al
d550: 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74  ign="right">0</t
d560: 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e  d><td>Route</td>
d570: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
d580: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
d590: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
d5a0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 38  ign="right">1838
d5b0: 38 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  82</td><td align
d5c0: 3d 22 72 69 67 68 74 22 3e 31 35 34 2e 37 35 30  ="right">154.750
d5d0: 38 33 39 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42  839</td><td>BLOB
d5e0: 20 73 7a 3d 32 34 30 20 47 45 4f 4d 45 54 52 59   sz=240 GEOMETRY
d5f0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
d600: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
d610: 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
d620: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
d630: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
d640: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
d650: 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64  right">0</td><td
d660: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
d670: 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
d680: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
d690: 68 74 22 3e 32 32 32 36 33 36 3c 2f 74 64 3e 3c  ht">222636</td><
d6a0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
d6b0: 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20  >178731</td><td 
d6c0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
d6d0: 32 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2000</td><td ali
d6e0: 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 33 2e 37  gn="right">103.7
d6f0: 33 35 37 32 32 3c 2f 74 64 3e 3c 74 64 3e 4e 55  35722</td><td>NU
d700: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 50  LL</td><td>VIA P
d710: 49 45 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f 74  IETRO ARETINO</t
d720: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
d730: 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
d740: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
d750: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
d760: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
d770: 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64  right">0</td><td
d780: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
d790: 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
d7a0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
d7b0: 68 74 22 3e 32 32 35 35 32 37 3c 2f 74 64 3e 3c  ht">225527</td><
d7c0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
d7d0: 3e 31 38 32 30 30 30 3c 2f 74 64 3e 3c 74 64 20  >182000</td><td 
d7e0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
d7f0: 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3882</td><td ali
d800: 67 6e 3d 22 72 69 67 68 74 22 3e 35 31 2e 30 31  gn="right">51.01
d810: 35 31 31 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  5117</td><td>NUL
d820: 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4c 49  L</td><td>VIA LI
d830: 43 49 4f 20 4e 45 4e 43 45 54 54 49 3c 2f 74 64  CIO NENCETTI</td
d840: 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
d850: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
d860: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
d870: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
d880: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
d890: 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 20  ight">1</td><td 
d8a0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
d8b0: 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
d8c0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
d8d0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
d8e0: 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20  >178731</td><td 
d8f0: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
d900: 34 30 33 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4030</td><td ali
d910: 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 36 2e 33  gn="right">176.3
d920: 36 34 37 35 35 3c 2f 74 64 3e 3c 74 64 3e 42 4c  64755</td><td>BL
d930: 4f 42 20 73 7a 3d 33 30 34 20 47 45 4f 4d 45 54  OB sz=304 GEOMET
d940: 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
d950: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
d960: 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
d970: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
d980: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
d990: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
d9a0: 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c  ="right">1</td><
d9b0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
d9c0: 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >1</td><td>Link<
d9d0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
d9e0: 69 67 68 74 22 3e 32 32 34 30 31 34 3c 2f 74 64  ight">224014</td
d9f0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
da00: 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74  t">178731</td><t
da10: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
da20: 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64 20 61  182885</td><td a
da30: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 39 34 2e  lign="right">94.
da40: 38 31 32 34 32 34 3c 2f 74 64 3e 3c 74 64 3e 4e  812424</td><td>N
da50: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
da60: 50 49 45 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f  PIETRO ARETINO</
da70: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
da80: 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
da90: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
daa0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
dab0: 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
dac0: 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74  "right">1</td><t
dad0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
dae0: 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  2</td><td>Link</
daf0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
db00: 67 68 74 22 3e 32 32 34 38 36 32 3c 2f 74 64 3e  ght">224862</td>
db10: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
db20: 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74 64  ">182885</td><td
db30: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
db40: 38 32 30 34 33 3c 2f 74 64 3e 3c 74 64 20 61 6c  82043</td><td al
db50: 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 37 2e 30  ign="right">37.0
db60: 39 35 32 38 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55  95287</td><td>NU
db70: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 4d  LL</td><td>VIA M
db80: 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e 0d  ARGARITONE</td>.
db90: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
dba0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
dbb0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
dbc0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
dbd0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
dbe0: 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">1</td><td al
dbf0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74  ign="right">3</t
dc00: 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
dc10: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
dc20: 3e 32 32 36 30 37 30 3c 2f 74 64 3e 3c 74 64 20  >226070</td><td 
dc30: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
dc40: 32 30 34 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2043</td><td ali
dc50: 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33  gn="right">18403
dc60: 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
dc70: 22 72 69 67 68 74 22 3e 34 34 2e 34 35 37 30 34  "right">44.45704
dc80: 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  4</td><td>NULL</
dc90: 74 64 3e 3c 74 64 3e 50 49 41 5a 5a 41 20 53 41  td><td>PIAZZA SA
dca0: 4e 54 27 41 47 4f 53 54 49 4e 4f 3c 2f 74 64 3e  NT'AGOSTINO</td>
dcb0: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
dcc0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
dcd0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
dce0: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
dcf0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
dd00: 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 20 61  ght">2</td><td a
dd10: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f  lign="right">0</
dd20: 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64  td><td>Route</td
dd30: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
dd40: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
dd50: 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61  178731</td><td a
dd60: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
dd70: 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  754</td><td alig
dd80: 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 2e 36 37  n="right">224.67
dd90: 37 30 39 35 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f  7095</td><td>BLO
dda0: 42 20 73 7a 3d 32 34 30 20 47 45 4f 4d 45 54 52  B sz=240 GEOMETR
ddb0: 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  Y</td><td>NULL</
ddc0: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
ddd0: 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
dde0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
ddf0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
de00: 4c 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  L<td align="righ
de10: 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">2</td><td ali
de20: 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64  gn="right">1</td
de30: 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
de40: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
de50: 32 31 39 30 34 35 3c 2f 74 64 3e 3c 74 64 20 61  219045</td><td a
de60: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
de70: 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  731</td><td alig
de80: 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 32  n="right">178732
de90: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
dea0: 72 69 67 68 74 22 3e 37 36 2e 30 32 31 30 30 37  right">76.021007
deb0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
dec0: 64 3e 3c 74 64 3e 56 49 41 20 41 53 53 41 42 3c  d><td>VIA ASSAB<
ded0: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
dee0: 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
def0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
df00: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
df10: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
df20: 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c  ="right">2</td><
df30: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
df40: 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >2</td><td>Link<
df50: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
df60: 69 67 68 74 22 3e 32 31 39 30 35 38 3c 2f 74 64  ight">219058</td
df70: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
df80: 74 22 3e 31 37 38 37 33 32 3c 2f 74 64 3e 3c 74  t">178732</td><t
df90: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
dfa0: 31 37 38 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61  178754</td><td a
dfb0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 34 38  lign="right">148
dfc0: 2e 36 35 36 30 38 39 3c 2f 74 64 3e 3c 74 64 3e  .656089</td><td>
dfd0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
dfe0: 20 46 52 41 4e 43 45 53 43 4f 20 43 52 49 53 50   FRANCESCO CRISP
dff0: 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  I</td>..</tr>..<
e000: 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
e010: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
e020: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e030: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
e040: 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64  gn="right">3</td
e050: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
e060: 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75  t">0</td><td>Rou
e070: 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  te</td><td>NULL<
e080: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
e090: 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64  ight">178731</td
e0a0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
e0b0: 74 22 3e 31 38 31 39 39 39 3c 2f 74 64 3e 3c 74  t">181999</td><t
e0c0: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
e0d0: 32 36 30 2e 31 33 32 33 35 34 3c 2f 74 64 3e 3c  260.132354</td><
e0e0: 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 34 30 20 47  td>BLOB sz=240 G
e0f0: 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e  EOMETRY</td><td>
e100: 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  NULL</td>..</tr>
e110: 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
e120: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
e130: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
e140: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
e150: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c  align="right">3<
e160: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
e170: 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e  ight">1</td><td>
e180: 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
e190: 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 30 31  gn="right">22401
e1a0: 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  4</td><td align=
e1b0: 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f  "right">178731</
e1c0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e1d0: 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e  ght">182885</td>
e1e0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
e1f0: 22 3e 39 34 2e 38 31 32 34 32 34 3c 2f 74 64 3e  ">94.812424</td>
e200: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
e210: 3e 56 49 41 20 50 49 45 54 52 4f 20 41 52 45 54  >VIA PIETRO ARET
e220: 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  INO</td>..</tr>.
e230: 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
e240: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
e250: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
e260: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
e270: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f  lign="right">3</
e280: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e290: 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">2</td><td>L
e2a0: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
e2b0: 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 34 34 36  n="right">224446
e2c0: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
e2d0: 72 69 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74  right">182885</t
e2e0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
e2f0: 68 74 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c  ht">178880</td><
e300: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
e310: 3e 36 39 2e 37 32 37 37 32 36 3c 2f 74 64 3e 3c  >69.727726</td><
e320: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e330: 56 49 41 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c  VIA MARGARITONE<
e340: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
e350: 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
e360: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
e370: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
e380: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
e390: 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c  ="right">3</td><
e3a0: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
e3b0: 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >3</td><td>Link<
e3c0: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
e3d0: 69 67 68 74 22 3e 32 32 35 38 30 30 3c 2f 74 64  ight">225800</td
e3e0: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
e3f0: 74 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74  t">178880</td><t
e400: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
e410: 31 38 31 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61  181999</td><td a
e420: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 39 35 2e  lign="right">95.
e430: 35 39 32 32 30 34 3c 2f 74 64 3e 3c 74 64 3e 4e  592204</td><td>N
e440: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
e450: 46 52 41 4e 43 45 53 43 4f 20 43 52 49 53 50 49  FRANCESCO CRISPI
e460: 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
e470: 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  r>..<td>NULL</td
e480: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
e490: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
e4a0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
e4b0: 6e 3d 22 72 69 67 68 74 22 3e 34 3c 2f 74 64 3e  n="right">4</td>
e4c0: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
e4d0: 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74  ">0</td><td>Rout
e4e0: 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  e</td><td>NULL</
e4f0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e500: 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
e510: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
e520: 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64  ">183286</td><td
e530: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33   align="right">3
e540: 30 30 2e 39 31 32 32 30 38 3c 2f 74 64 3e 3c 74  00.912208</td><t
e550: 64 3e 42 4c 4f 42 20 73 7a 3d 32 37 32 20 47 45  d>BLOB sz=272 GE
e560: 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e  OMETRY</td><td>N
e570: 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ULL</td>..</tr>.
e580: 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
e590: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
e5a0: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
e5b0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
e5c0: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c 2f  lign="right">4</
e5d0: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e5e0: 67 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">1</td><td>L
e5f0: 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
e600: 6e 3d 22 72 69 67 68 74 22 3e 32 32 34 30 31 34  n="right">224014
e610: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
e620: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
e630: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
e640: 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c  ht">182885</td><
e650: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
e660: 3e 39 34 2e 38 31 32 34 32 34 3c 2f 74 64 3e 3c  >94.812424</td><
e670: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e680: 56 49 41 20 50 49 45 54 52 4f 20 41 52 45 54 49  VIA PIETRO ARETI
e690: 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  NO</td>..</tr>..
e6a0: 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
e6b0: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
e6c0: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
e6d0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
e6e0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c 2f 74  ign="right">4</t
e6f0: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
e700: 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">2</td><td>Li
e710: 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
e720: 3d 22 72 69 67 68 74 22 3e 32 32 34 34 34 36 3c  ="right">224446<
e730: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
e740: 69 67 68 74 22 3e 31 38 32 38 38 35 3c 2f 74 64  ight">182885</td
e750: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
e760: 74 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74  t">178880</td><t
e770: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
e780: 36 39 2e 37 32 37 37 32 36 3c 2f 74 64 3e 3c 74  69.727726</td><t
e790: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
e7a0: 49 41 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f  IA MARGARITONE</
e7b0: 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
e7c0: 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
e7d0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e7e0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
e7f0: 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
e800: 22 72 69 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74  "right">4</td><t
e810: 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
e820: 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  3</td><td>Link</
e830: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
e840: 67 68 74 22 3e 32 32 34 34 31 34 3c 2f 74 64 3e  ght">224414</td>
e850: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
e860: 22 3e 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64  ">178880</td><td
e870: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
e880: 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c  83286</td><td al
e890: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 33 36 2e  ign="right">136.
e8a0: 33 37 32 30 35 37 3c 2f 74 64 3e 3c 74 64 3e 4e  372057</td><td>N
e8b0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
e8c0: 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e  MARGARITONE</td>
e8d0: 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
e8e0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e8f0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
e900: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
e910: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
e920: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
e930: 3e 55 6e 72 65 61 63 68 61 62 6c 65 20 4e 6f 64  >Unreachable Nod
e940: 65 54 6f 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  eTo</td><td>NULL
e950: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
e960: 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
e970: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
e980: 68 74 22 3e 32 39 30 34 35 38 3c 2f 74 64 3e 3c  ht">290458</td><
e990: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e9a0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
e9b0: 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  L</td>..</tr>..<
e9c0: 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
e9d0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
e9e0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
e9f0: 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
ea00: 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
ea10: 74 64 3e 3c 74 64 3e 55 6e 72 65 61 63 68 61 62  td><td>Unreachab
ea20: 6c 65 20 4e 6f 64 65 54 6f 3c 2f 74 64 3e 3c 74  le NodeTo</td><t
ea30: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
ea40: 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
ea50: 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  731</td><td alig
ea60: 6e 3d 22 72 69 67 68 74 22 3e 31 32 34 36 32 32  n="right">124622
ea70: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
ea80: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
ea90: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
eaa0: 74 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c  tr>..</table>..<
eab0: 62 72 3e 0d 0a 4c 65 74 27 73 20 71 75 69 63 6b  br>..Let's quick
eac0: 6c 79 20 65 78 61 6d 69 6e 65 20 74 68 65 20 72  ly examine the r
ead0: 65 73 75 6c 74 73 65 74 20 72 65 74 75 72 6e 65  esultset returne
eae0: 64 20 62 79 20 74 68 65 20 61 62 6f 76 65 20 3c  d by the above <
eaf0: 62 3e 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74  b>multi-destinat
eb00: 69 6f 6e 73 3c 2f 62 3e 20 71 75 65 72 79 2e 0d  ions</b> query..
eb10: 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 74 68 65 20 6f  .<ul>..<li>the o
eb20: 76 65 72 61 6c 6c 20 6c 61 79 6f 75 74 20 69 73  verall layout is
eb30: 20 61 6c 6d 6f 73 74 20 65 78 61 63 74 6c 79 20   almost exactly 
eb40: 74 68 65 20 73 61 6d 65 20 61 73 20 79 6f 75 27  the same as you'
eb50: 76 65 20 61 6c 72 65 61 64 79 20 73 65 65 6e 20  ve already seen 
eb60: 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 3c  in the case of <
eb70: 62 3e 73 69 6e 67 6c 65 2d 64 65 73 74 69 6e 61  b>single-destina
eb80: 74 69 6f 6e 3c 2f 62 3e 20 71 75 65 72 69 65 73  tion</b> queries
eb90: 2c 20 62 75 74 20 69 6e 20 74 68 69 73 20 63 61  , but in this ca
eba0: 73 65 20 6d 6f 72 65 20 69 6e 64 69 76 69 64 75  se more individu
ebb0: 61 6c 20 74 72 61 76 65 6c 20 73 6f 6c 75 74 69  al travel soluti
ebc0: 6f 6e 73 20 61 72 65 20 67 72 6f 75 70 65 64 20  ons are grouped 
ebd0: 61 6c 74 6f 67 65 74 68 65 72 2e 3c 2f 6c 69 3e  altogether.</li>
ebe0: 0d 0a 3c 6c 69 3e 74 68 65 20 3c 62 3e 66 69 72  ..<li>the <b>fir
ebf0: 73 74 20 72 6f 77 3c 2f 62 3e 20 6f 66 20 74 68  st row</b> of th
ec00: 65 20 72 65 73 75 6c 74 73 65 74 20 69 73 20 73  e resultset is s
ec10: 6f 6d 65 77 61 79 20 65 78 63 65 70 74 69 6f 6e  omeway exception
ec20: 61 6c 2c 20 61 6e 64 20 69 73 20 74 68 65 20 75  al, and is the u
ec30: 6e 69 71 75 65 20 72 6f 77 20 6f 66 20 74 68 65  nique row of the
ec40: 20 72 65 73 75 6c 74 73 65 74 20 70 72 65 73 65   resultset prese
ec50: 6e 74 69 6e 67 20 3c 62 3e 4e 4f 54 20 4e 55 4c  nting <b>NOT NUL
ec60: 4c 3c 2f 62 3e 20 76 61 6c 75 65 73 20 69 6e 20  L</b> values in 
ec70: 74 68 65 20 3c 62 3e 41 6c 67 6f 72 69 74 68 6d  the <b>Algorithm
ec80: 3c 2f 62 3e 2c 20 3c 62 3e 52 65 71 75 65 73 74  </b>, <b>Request
ec90: 3c 2f 62 3e 2c 20 3c 62 3e 4f 70 74 69 6f 6e 73  </b>, <b>Options
eca0: 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 44 65 6c 69  </b> and <b>Deli
ecb0: 6d 69 74 65 72 3c 2f 62 3e 20 63 6f 6c 75 6d 6e  miter</b> column
ecc0: 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65  s.</li>..<li>the
ecd0: 20 3c 62 3e 52 6f 75 74 65 49 64 3c 2f 62 3e 20   <b>RouteId</b> 
ece0: 63 6f 6c 75 6d 6e 20 69 73 20 69 6e 74 65 6e 64  column is intend
ecf0: 65 64 20 74 6f 20 67 72 6f 75 70 20 74 6f 67 65  ed to group toge
ed00: 74 68 65 72 20 61 6c 6c 20 72 6f 77 73 20 62 65  ther all rows be
ed10: 6c 6f 6e 67 69 6e 67 20 74 6f 20 73 61 6d 65 20  longing to same 
ed20: 74 72 61 76 65 6c 20 73 6f 6c 75 74 69 6f 6e 20  travel solution 
ed30: 28 3c 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 52  (<i>aka</i> <b>R
ed40: 6f 75 74 65 3c 2f 62 3e 29 2e 3c 62 72 3e 0d 0a  oute</b>).<br>..
ed50: 52 6f 75 74 65 73 20 61 72 65 20 70 72 6f 67 72  Routes are progr
ed60: 65 73 73 69 76 65 6c 79 20 6e 75 6d 62 65 72 65  essively numbere
ed70: 64 20 61 6e 64 20 61 72 65 20 6f 72 64 65 72 65  d and are ordere
ed80: 64 20 61 63 63 6f 72 64 69 6e 67 6c 79 20 74 6f  d accordingly to
ed90: 20 74 68 65 69 72 20 3c 62 3e 74 6f 74 61 6c 20   their <b>total 
eda0: 63 6f 73 74 3c 2f 62 3e 2e 3c 2f 6c 69 3e 0d 0a  cost</b>.</li>..
edb0: 3c 6c 69 3e 74 68 65 20 3c 62 3e 52 6f 75 74 65  <li>the <b>Route
edc0: 52 6f 77 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 20 68  Row</b> column h
edd0: 61 73 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65  as the same inte
ede0: 72 70 72 65 74 61 74 69 6f 6e 20 61 73 20 69 6e  rpretation as in
edf0: 20 73 69 6e 67 6c 65 2d 64 65 73 74 69 6e 61 74   single-destinat
ee00: 69 6f 6e 20 72 65 73 75 6c 74 73 65 74 73 2c 20  ion resultsets, 
ee10: 61 6e 64 20 69 73 20 69 6e 74 65 6e 64 65 64 20  and is intended 
ee20: 74 6f 20 70 72 6f 67 72 65 73 73 69 76 65 6c 79  to progressively
ee30: 20 6f 72 64 65 72 20 69 6e 20 74 68 65 20 63 6f   order in the co
ee40: 72 72 65 63 74 20 73 65 71 75 65 6e 63 65 20 61  rrect sequence a
ee50: 6c 6c 20 4c 69 6e 6b 73 20 63 6f 6e 6e 65 63 74  ll Links connect
ee60: 69 6e 67 20 74 68 65 20 4f 72 69 67 69 6e 20 61  ing the Origin a
ee70: 6e 64 20 74 68 65 20 44 65 73 74 69 6e 61 74 69  nd the Destinati
ee80: 6f 6e 20 6f 66 20 65 61 63 68 20 52 6f 75 74 65  on of each Route
ee90: 2e 3c 62 72 3e 0d 0a 3c 62 3e 52 6f 75 74 65 52  .<br>..<b>RouteR
eea0: 6f 77 3d 30 3c 2f 62 3e 20 61 6c 77 61 79 73 20  ow=0</b> always 
eeb0: 69 64 65 6e 74 69 66 69 65 73 20 74 68 65 20 68  identifies the h
eec0: 65 61 64 65 72 20 72 6f 77 20 6f 66 20 65 61 63  eader row of eac
eed0: 68 20 74 72 61 76 65 6c 20 73 6f 6c 75 74 69 6f  h travel solutio
eee0: 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a  n.</li>..</ul>..
eef0: 3c 62 72 3e 0d 0a 3c 75 3e 4e 6f 74 69 63 65 3c  <br>..<u>Notice<
ef00: 2f 75 3e 3a 20 74 68 65 20 6c 61 73 74 20 74 77  /u>: the last tw
ef10: 6f 20 72 6f 77 73 20 69 6e 20 74 68 65 20 72 65  o rows in the re
ef20: 73 75 6c 74 73 65 74 20 72 65 70 6f 72 74 73 20  sultset reports 
ef30: 3c 62 3e 55 6e 72 65 61 63 68 61 62 6c 65 20 4e  <b>Unreachable N
ef40: 6f 64 65 54 6f 09 3c 2f 62 3e 20 69 6e 20 74 68  odeTo.</b> in th
ef50: 65 20 3c 62 3e 52 6f 6c 65 3c 2f 62 3e 20 63 6f  e <b>Role</b> co
ef60: 6c 75 6d 6e 2c 20 74 68 75 73 20 69 6d 70 6c 79  lumn, thus imply
ef70: 69 6e 67 20 61 20 3c 62 3e 66 6f 72 62 69 64 64  ing a <b>forbidd
ef80: 65 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 3c 2f 62  en connection</b
ef90: 3e 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 77 61 73  >.<br>..This was
efa0: 20 70 75 72 70 6f 73 65 6c 79 20 69 6e 74 65 6e   purposely inten
efb0: 64 65 64 3a 20 4e 6f 64 65 73 20 3c 62 3e 32 39  ded: Nodes <b>29
efc0: 30 34 35 38 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e  0458</b> and <b>
efd0: 31 32 34 36 32 32 3c 2f 62 3e 20 61 72 65 20 6c  124622</b> are l
efe0: 6f 63 61 74 65 64 20 6f 6e 20 45 6c 62 61 20 61  ocated on Elba a
eff0: 6e 64 20 47 69 67 6c 69 6f 20 69 73 6c 61 6e 64  nd Giglio island
f000: 73 2e 20 54 68 65 20 75 6e 64 65 72 6c 61 79 69  s. The underlayi
f010: 6e 67 20 4e 65 74 77 6f 72 6b 20 69 73 20 62 61  ng Network is ba
f020: 73 65 64 20 6f 6e 20 3c 62 3e 49 74 65 72 2e 4e  sed on <b>Iter.N
f030: 65 74 3c 2f 62 3e 20 74 68 61 74 20 64 6f 6e 27  et</b> that don'
f040: 74 20 73 75 70 70 6f 72 74 73 20 66 65 72 72 79  t supports ferry
f050: 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 2c 20 73 6f   connections, so
f060: 20 61 6e 79 20 74 72 61 76 65 6c 20 73 6f 6c 75   any travel solu
f070: 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 74 68 65  tion between the
f080: 20 69 73 6c 61 6e 64 73 20 61 6e 64 20 74 68 65   islands and the
f090: 20 6d 61 69 6e 6c 61 6e 64 20 77 69 6c 6c 20 61   mainland will a
f0a0: 6c 77 61 79 73 20 66 61 69 6c 2e 0d 0a 3c 62 72  lways fail...<br
f0b0: 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 41 6c 73 6f 20  ><br><br>..Also 
f0c0: 3c 62 3e 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61  <b>multi-destina
f0d0: 74 69 6f 6e 73 3c 2f 62 3e 20 71 75 65 72 69 65  tions</b> querie
f0e0: 73 20 63 61 6e 20 62 65 20 63 75 73 74 6f 6d 69  s can be customi
f0f0: 7a 65 64 2c 20 62 75 74 20 74 68 65 20 63 6f 6e  zed, but the con
f100: 66 69 67 75 72 61 74 69 6f 6e 20 72 75 6c 65 73  figuration rules
f110: 20 73 6c 69 67 68 74 6c 79 20 64 69 66 66 65 72   slightly differ
f120: 20 66 72 6f 6d 20 77 68 61 74 20 79 6f 75 20 68   from what you h
f130: 61 76 65 20 61 6c 72 65 61 64 79 20 73 65 65 6e  ave already seen
f140: 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20   in the case of 
f150: 73 69 6e 67 6c 65 2d 64 65 73 74 69 6e 61 74 69  single-destinati
f160: 6f 6e 2e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c  on...<ul>..<li><
f170: 62 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 62 3e 3a  b>Algorithm</b>:
f180: 20 6f 6e 6c 79 20 3c 62 3e 44 69 6a 6b 73 74 72   only <b>Dijkstr
f190: 61 3c 2f 62 3e 20 69 73 20 73 75 70 70 6f 72 74  a</b> is support
f1a0: 65 64 20 62 79 20 6d 75 6c 74 69 2d 64 65 73 74  ed by multi-dest
f1b0: 69 6e 61 74 69 6f 6e 3b 20 61 6e 79 20 61 74 74  ination; any att
f1c0: 65 6d 70 74 20 74 6f 20 75 73 65 20 74 68 65 20  empt to use the 
f1d0: 61 6c 74 65 72 6e 61 74 69 76 65 20 3c 62 3e 41  alternative <b>A
f1e0: 2a 3c 2f 62 3e 20 61 6c 67 6f 72 69 74 68 6d 20  *</b> algorithm 
f1f0: 77 69 6c 6c 20 73 69 6d 70 6c 79 20 72 65 74 75  will simply retu
f200: 72 6e 20 61 6e 20 65 6d 70 74 79 20 72 65 73 75  rn an empty resu
f210: 6c 74 73 65 74 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  ltset.</li>..<li
f220: 3e 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e 3a  ><b>Options</b>:
f230: 20 74 68 65 20 75 73 75 61 6c 20 3c 62 3e 46 55   the usual <b>FU
f240: 4c 4c 3c 2f 62 3e 2c 20 3c 62 3e 53 49 4d 50 4c  LL</b>, <b>SIMPL
f250: 45 3c 2f 62 3e 2c 20 3c 62 3e 4e 4f 20 4c 49 4e  E</b>, <b>NO LIN
f260: 4b 53 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 4e 4f  KS</b> and <b>NO
f270: 20 47 45 4f 4d 45 54 52 49 45 53 3c 2f 62 3e 20   GEOMETRIES</b> 
f280: 61 72 65 20 73 75 70 70 6f 72 74 65 64 20 61 6e  are supported an
f290: 64 20 77 69 6c 6c 20 68 61 76 65 20 74 68 65 20  d will have the 
f2a0: 73 61 6d 65 20 65 66 66 65 63 74 20 61 73 20 69  same effect as i
f2b0: 6e 20 73 69 6e 67 6c 65 2d 64 65 73 74 69 6e 61  n single-destina
f2c0: 74 69 6f 6e 20 71 75 65 72 69 65 73 2e 3c 2f 6c  tion queries.</l
f2d0: 69 3e 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 76 65 72 62  i>..</ul>..<verb
f2e0: 61 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79  atim>..UPDATE by
f2f0: 66 6f 6f 74 20 53 45 54 20 4f 70 74 69 6f 6e 73  foot SET Options
f300: 20 3d 20 27 53 49 4d 50 4c 45 27 3b 0d 0a 0d 0a   = 'SIMPLE';....
f310: 53 45 4c 45 43 54 20 41 6c 67 6f 72 69 74 68 6d  SELECT Algorithm
f320: 2c 20 52 65 71 75 65 73 74 2c 20 4f 70 74 69 6f  , Request, Optio
f330: 6e 73 2c 20 44 65 6c 69 6d 69 74 65 72 2c 20 52  ns, Delimiter, R
f340: 6f 75 74 65 49 64 2c 20 52 6f 75 74 65 52 6f 77  outeId, RouteRow
f350: 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69  , Role, LinkRowi
f360: 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64  d, NodeFrom, Nod
f370: 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65  eTo, Cost, Geome
f380: 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20  try, Name..FROM 
f390: 62 79 66 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f  byfoot..WHERE No
f3a0: 64 65 46 72 6f 6d 20 3d 20 31 37 38 37 33 31 20  deFrom = 178731 
f3b0: 41 4e 44 20 4e 6f 64 65 54 6f 20 3d 20 27 31 38  AND NodeTo = '18
f3c0: 33 32 38 36 2c 32 39 30 34 35 38 2c 31 38 31 39  3286,290458,1819
f3d0: 39 39 2c 31 38 34 30 33 30 2c 31 32 34 36 32 32  99,184030,124622
f3e0: 2c 31 38 33 38 38 32 2c 31 37 38 37 35 34 27 3b  ,183882,178754';
f3f0: 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 54  ..</verbatim>..T
f400: 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 61 62  he following tab
f410: 6c 65 20 73 68 6f 77 73 20 74 68 65 20 72 65 73  le shows the res
f420: 75 6c 74 73 65 74 20 72 65 74 75 72 6e 65 64 20  ultset returned 
f430: 62 79 20 74 68 65 20 73 61 6d 65 20 6d 75 6c 74  by the same mult
f440: 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e 20 71 75  i-destination qu
f450: 65 72 79 20 75 73 65 64 20 69 6e 20 74 68 65 20  ery used in the 
f460: 70 72 65 76 69 6f 75 73 20 65 78 61 6d 70 6c 65  previous example
f470: 20 61 66 74 65 72 20 65 6e 61 62 6c 69 6e 67 20   after enabling 
f480: 74 68 65 20 3c 62 3e 53 49 4d 50 4c 45 3c 2f 62  the <b>SIMPLE</b
f490: 3e 20 6f 70 74 69 6f 6e 2e 0d 0a 3c 62 72 3e 3c  > option...<br><
f4a0: 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64  br>..<table bord
f4b0: 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22  er="1" bgcolor="
f4c0: 23 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61  #ffffcf" cellspa
f4d0: 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64  cing="4" cellpad
f4e0: 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c  ding="6">..<tr><
f4f0: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
f500: 30 61 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f  0a0">Algorithm</
f510: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
f520: 23 64 30 64 30 61 30 22 3e 52 65 71 75 65 73 74  #d0d0a0">Request
f530: 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
f540: 3d 22 23 64 30 64 30 61 30 22 3e 4f 70 74 69 6f  ="#d0d0a0">Optio
f550: 6e 73 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  ns</th><th bgcol
f560: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 44 65 6c  or="#d0d0a0">Del
f570: 69 6d 69 74 65 72 3c 2f 74 68 3e 3c 74 68 20 62  imiter</th><th b
f580: 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
f590: 3e 52 6f 75 74 65 49 64 3c 2f 74 68 3e 3c 74 68  >RouteId</th><th
f5a0: 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
f5b0: 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e  0">RouteRow</th>
f5c0: 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
f5d0: 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c  d0a0">Role</th><
f5e0: 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
f5f0: 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f  0a0">LinkRowid</
f600: 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
f610: 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f  #d0d0a0">NodeFro
f620: 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  m</th><th bgcolo
f630: 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65  r="#d0d0a0">Node
f640: 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  To</th><th bgcol
f650: 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73  or="#d0d0a0">Cos
f660: 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  t</th><th bgcolo
f670: 72 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d  r="#d0d0a0">Geom
f680: 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63  etry</th><th bgc
f690: 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
f6a0: 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c  ame</th></tr>..<
f6b0: 74 72 3e 0d 0a 3c 74 64 3e 44 69 6a 6b 73 74 72  tr>..<td>Dijkstr
f6c0: 61 3c 2f 74 64 3e 3c 74 64 3e 53 68 6f 72 74 65  a</td><td>Shorte
f6d0: 73 74 20 50 61 74 68 3c 2f 74 64 3e 3c 74 64 3e  st Path</td><td>
f6e0: 46 75 6c 6c 3c 2f 74 64 3e 3c 74 64 3e 2c 20 26  Full</td><td>, &
f6f0: 23 39 31 3b 64 65 63 3d 34 34 2c 20 68 65 78 3d  #91;dec=44, hex=
f700: 32 63 26 23 39 33 3b 3c 2f 74 64 3e 3c 74 64 20  2c&#93;</td><td 
f710: 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
f720: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
f730: 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
f740: 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
f750: 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
f760: 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
f770: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
f780: 69 67 68 74 22 3e 31 38 33 38 38 32 3c 2f 74 64  ight">183882</td
f790: 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
f7a0: 74 22 3e 31 35 34 2e 37 35 30 38 33 39 3c 2f 74  t">154.750839</t
f7b0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
f7c0: 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
f7d0: 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
f7e0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
f7f0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
f800: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
f810: 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
f820: 3e 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >1</td><td align
f830: 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c  ="right">0</td><
f840: 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64  td>Route</td><td
f850: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
f860: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
f870: 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
f880: 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 30 3c  ="right">184030<
f890: 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
f8a0: 69 67 68 74 22 3e 31 37 36 2e 33 36 34 37 35 35  ight">176.364755
f8b0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
f8c0: 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d  d><td>NULL</td>.
f8d0: 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
f8e0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
f8f0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
f900: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
f910: 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
f920: 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">2</td><td al
f930: 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74  ign="right">0</t
f940: 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e  d><td>Route</td>
f950: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
f960: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
f970: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
f980: 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
f990: 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  54</td><td align
f9a0: 3d 22 72 69 67 68 74 22 3e 32 32 34 2e 36 37 37  ="right">224.677
f9b0: 30 39 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  095</td><td>NULL
f9c0: 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
f9d0: 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
f9e0: 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
f9f0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
fa00: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
fa10: 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
fa20: 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64  right">3</td><td
fa30: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30   align="right">0
fa40: 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f  </td><td>Route</
fa50: 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
fa60: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
fa70: 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64  ">178731</td><td
fa80: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
fa90: 38 31 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c  81999</td><td al
faa0: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 36 30 2e  ign="right">260.
fab0: 31 33 32 33 35 34 3c 2f 74 64 3e 3c 74 64 3e 4e  132354</td><td>N
fac0: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
fad0: 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74  </td>..</tr>..<t
fae0: 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  r>..<td>NULL</td
faf0: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
fb00: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
fb10: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
fb20: 6e 3d 22 72 69 67 68 74 22 3e 34 3c 2f 74 64 3e  n="right">4</td>
fb30: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
fb40: 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74  ">0</td><td>Rout
fb50: 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  e</td><td>NULL</
fb60: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
fb70: 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
fb80: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
fb90: 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64  ">183286</td><td
fba0: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33   align="right">3
fbb0: 30 30 2e 39 31 32 32 30 38 3c 2f 74 64 3e 3c 74  00.912208</td><t
fbc0: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
fbd0: 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ULL</td>..</tr>.
fbe0: 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
fbf0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
fc00: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
fc10: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
fc20: 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
fc30: 3c 2f 74 64 3e 3c 74 64 3e 55 6e 72 65 61 63 68  </td><td>Unreach
fc40: 61 62 6c 65 20 4e 6f 64 65 54 6f 3c 2f 74 64 3e  able NodeTo</td>
fc50: 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
fc60: 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
fc70: 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
fc80: 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 39 30 34  ign="right">2904
fc90: 35 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  58</td><td>NULL<
fca0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
fcb0: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a  ><td>NULL</td>..
fcc0: 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
fcd0: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
fce0: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
fcf0: 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
fd00: 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
fd10: 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 55  d>NULL</td><td>U
fd20: 6e 72 65 61 63 68 61 62 6c 65 20 4e 6f 64 65 54  nreachable NodeT
fd30: 6f 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  o</td><td>NULL</
fd40: 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
fd50: 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
fd60: 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
fd70: 22 3e 31 32 34 36 32 32 3c 2f 74 64 3e 3c 74 64  ">124622</td><td
fd80: 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
fd90: 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
fda0: 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74  /td>..</tr>..</t
fdb0: 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 54 68 65  able>..<br>..The
fdc0: 20 6d 61 70 20 62 65 6c 6f 77 20 67 72 61 70 68   map below graph
fdd0: 69 63 61 6c 6c 79 20 73 68 6f 77 73 20 74 68 65  ically shows the
fde0: 20 70 72 65 76 69 6f 75 73 20 3c 62 3e 6d 75 6c   previous <b>mul
fdf0: 74 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e 73 3c  ti-destinations<
fe00: 2f 62 3e 20 71 75 65 72 69 65 73 2e 0d 0a 3c 62  /b> queries...<b
fe10: 72 3e 3c 62 72 3e 0d 0a 3c 69 6d 67 20 73 72 63  r><br>..<img src
fe20: 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61  ="https://www.ga
fe30: 69 61 2d 67 69 73 2e 69 74 2f 67 61 69 61 2d 73  ia-gis.it/gaia-s
fe40: 69 6e 73 2f 72 6f 75 74 69 6e 67 2d 66 69 67 73  ins/routing-figs
fe50: 2f 72 6f 75 74 69 6e 67 33 2e 6a 70 67 22 20 61  /routing3.jpg" a
fe60: 6c 74 3d 22 66 69 67 33 22 3e 0d 0a 3c 75 6c 3e  lt="fig3">..<ul>
fe70: 0d 0a 3c 6c 69 3e 52 65 64 20 73 74 61 72 3a 20  ..<li>Red star: 
fe80: 74 68 65 20 4f 72 69 67 69 6e 20 4e 6f 64 65 2e  the Origin Node.
fe90: 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 47 72 65 65 6e  </li>..<li>Green
fea0: 20 64 6f 74 73 3a 20 74 68 65 20 44 65 73 74 69   dots: the Desti
feb0: 6e 61 74 69 6f 6e 20 4e 6f 64 65 73 2e 3c 2f 6c  nation Nodes.</l
fec0: 69 3e 0d 0a 3c 6c 69 3e 59 65 6c 6c 6f 77 20 6c  i>..<li>Yellow l
fed0: 69 6e 65 73 3a 20 61 6c 6c 20 69 6e 64 69 76 69  ines: all indivi
fee0: 64 75 61 6c 20 74 72 61 76 65 6c 20 73 6f 6c 75  dual travel solu
fef0: 74 69 6f 6e 73 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  tions.</li>..</u
ff00: 6c 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65  l>..<br>..<table
ff10: 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 62 30 36   bgcolor="#ffb06
ff20: 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22  0" cellspacing="
ff30: 31 30 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d  10" cellpadding=
ff40: 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c 68  "6"><tr><td>..<h
ff50: 33 3e 44 61 6e 67 65 72 6f 75 73 20 70 69 74 66  3>Dangerous pitf
ff60: 61 6c 6c 73 20 72 65 6c 61 74 65 64 20 74 6f 20  alls related to 
ff70: 6d 75 6c 74 69 70 6c 65 20 64 65 73 74 69 6e 61  multiple destina
ff80: 74 69 6f 6e 20 6c 69 73 74 73 3c 2f 68 33 3e 0d  tion lists</h3>.
ff90: 0a 53 51 4c 20 73 79 6e 74 61 78 20 64 69 72 65  .SQL syntax dire
ffa0: 63 74 6c 79 20 61 6c 6c 6f 77 73 20 74 6f 20 73  ctly allows to s
ffb0: 70 65 63 69 66 79 20 6c 69 73 74 73 20 6f 66 20  pecify lists of 
ffc0: 20 6d 75 6c 74 69 70 6c 65 20 76 61 6c 75 65 73   multiple values
ffd0: 2c 20 73 6f 20 6d 61 79 20 62 65 20 79 6f 75 20  , so may be you 
ffe0: 61 72 65 20 6e 6f 77 20 77 6f 6e 64 65 72 69 6e  are now wonderin
fff0: 67 20 61 62 6f 75 74 20 77 72 69 74 69 6e 67 20  g about writing 
10000 74 68 65 20 3c 62 3e 6d 75 6c 74 69 70 6c 65 20  the <b>multiple 
10010 64 65 73 74 69 6e 61 74 69 6f 6e 73 3c 2f 62 3e  destinations</b>
10020 20 71 75 65 72 79 20 74 65 73 74 65 64 20 69 6e   query tested in
10030 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 65 78   the previous ex
10040 61 6d 70 6c 65 73 20 74 68 69 73 20 77 61 79 3a  amples this way:
10050 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45  ..<verbatim>..SE
10060 4c 45 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20  LECT Algorithm, 
10070 52 65 71 75 65 73 74 2c 20 4f 70 74 69 6f 6e 73  Request, Options
10080 2c 20 44 65 6c 69 6d 69 74 65 72 2c 20 52 6f 75  , Delimiter, Rou
10090 74 65 49 64 2c 20 52 6f 75 74 65 52 6f 77 2c 20  teId, RouteRow, 
100a0 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c  Role, LinkRowid,
100b0 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54   NodeFrom, NodeT
100c0 6f 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72  o, Cost, Geometr
100d0 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79  y, Name..FROM by
100e0 66 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65  foot..WHERE Node
100f0 46 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41 4e  From = 178731 AN
10100 44 20 4e 6f 64 65 54 6f 20 49 4e 20 28 31 38 33  D NodeTo IN (183
10110 32 38 36 2c 20 32 39 30 34 35 38 2c 20 31 38 31  286, 290458, 181
10120 39 39 39 2c 20 31 38 34 30 33 30 2c 20 31 32 34  999, 184030, 124
10130 36 32 32 2c 20 31 38 33 38 38 32 2c 20 31 37 38  622, 183882, 178
10140 37 35 34 29 3b 0d 0a 3c 2f 76 65 72 62 61 74 69  754);..</verbati
10150 6d 3e 0d 0a 54 68 65 72 65 20 69 73 20 61 20 76  m>..There is a v
10160 65 72 79 20 67 6f 6f 64 20 72 65 61 73 6f 6e 20  ery good reason 
10170 64 69 73 63 6f 75 72 61 67 69 6e 67 20 66 72 6f  discouraging fro
10180 6d 20 64 6f 69 6e 67 20 73 75 63 68 20 61 20 74  m doing such a t
10190 68 69 6e 67 2c 20 6c 65 74 27 73 20 73 65 65 20  hing, let's see 
101a0 77 68 79 2e 3c 62 72 3e 0d 0a 3c 62 3e 53 51 4c  why.<br>..<b>SQL
101b0 69 74 65 3c 2f 62 3e 20 77 69 6c 6c 20 70 72 6f  ite</b> will pro
101c0 63 65 73 73 20 61 20 72 65 71 75 65 73 74 20 77  cess a request w
101d0 72 69 74 74 65 6e 20 74 68 69 73 20 77 61 79 20  ritten this way 
101e0 62 79 20 72 65 70 65 61 74 65 64 6c 79 20 63 61  by repeatedly ca
101f0 6c 6c 69 6e 67 20 56 69 72 74 75 61 6c 52 6f 75  lling VirtualRou
10200 74 69 6e 67 20 70 61 73 73 69 6e 67 20 65 61 63  ting passing eac
10210 68 20 74 69 6d 65 20 61 20 73 69 6e 67 6c 65 20  h time a single 
10220 44 65 73 74 69 6e 61 74 69 6f 6e 3b 20 61 6e 64  Destination; and
10230 20 63 6f 6e 73 65 71 75 65 6e 74 6c 79 20 3c 62   consequently <b
10240 3e 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 3c  >VirtualRouting<
10250 2f 62 3e 20 77 69 6c 6c 20 6e 65 76 65 72 20 72  /b> will never r
10260 65 63 65 69 76 65 20 74 68 65 20 63 72 69 74 69  eceive the criti
10270 63 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20  cal information 
10280 74 68 61 74 20 61 20 73 69 6e 67 6c 65 20 6d 6f  that a single mo
10290 6e 6f 6c 69 74 68 69 63 20 72 65 71 75 65 73 74  nolithic request
102a0 20 77 61 73 20 69 6e 74 65 6e 64 65 64 20 74 6f   was intended to
102b0 20 62 65 20 65 78 65 63 75 74 65 64 20 69 6e 20   be executed in 
102c0 61 20 73 69 6e 67 6c 65 20 73 68 6f 74 2e 20 53  a single shot. S
102d0 6f 20 74 68 65 20 72 65 71 75 65 73 74 20 63 6f  o the request co
102e0 6e 74 65 78 74 20 77 69 6c 6c 20 62 65 20 65 61  ntext will be ea
102f0 73 69 6c 79 20 6d 69 73 69 6e 74 65 72 70 72 65  sily misinterpre
10300 74 65 64 2c 20 61 6e 64 20 61 6e 79 20 65 78 70  ted, and any exp
10310 65 63 74 65 64 20 73 70 65 65 64 20 62 65 6e 65  ected speed bene
10320 66 69 74 20 77 69 6c 6c 20 62 65 20 63 6f 6d 70  fit will be comp
10330 6c 65 74 65 6c 79 20 66 72 75 73 74 72 61 74 65  letely frustrate
10340 64 2e 0d 0a 3c 68 33 3e 42 65 77 61 72 65 3c 2f  d...<h3>Beware</
10350 68 33 3e 0d 0a 3c 62 3e 4e 65 76 65 72 20 65 76  h3>..<b>Never ev
10360 65 72 3c 2f 62 3e 20 61 74 74 65 6d 70 74 20 74  er</b> attempt t
10370 6f 20 64 65 66 69 6e 65 20 61 20 6c 69 73 74 20  o define a list 
10380 6f 66 20 6d 75 6c 74 69 70 6c 65 20 64 65 73 74  of multiple dest
10390 69 6e 61 74 69 6f 6e 73 20 75 73 69 6e 67 20 74  inations using t
103a0 68 65 20 73 74 61 6e 64 61 72 64 20 53 51 4c 20  he standard SQL 
103b0 73 79 6e 74 61 78 20 3c 62 3e 3c 69 3e 57 48 45  syntax <b><i>WHE
103c0 52 45 20 4e 6f 64 65 54 6f 20 49 4e 20 28 2e 2e  RE NodeTo IN (..
103d0 2e 2e 2e 2e 29 3c 2f 69 3e 3c 2f 62 3e 2c 20 62  ....)</i></b>, b
103e0 65 63 61 75 73 65 20 74 68 69 73 20 77 69 6c 6c  ecause this will
103f0 20 63 65 72 74 61 69 6e 6c 79 20 63 61 75 73 65   certainly cause
10400 20 6d 61 6e 79 20 75 6e 65 78 70 65 63 74 65 64   many unexpected
10410 20 74 72 6f 75 62 6c 65 73 2e 3c 62 72 3e 0d 0a   troubles.<br>..
10420 42 61 64 6c 79 20 66 6f 72 6d 61 74 74 65 64 20  Badly formatted 
10430 72 65 73 75 6c 74 73 65 74 73 20 77 69 6c 6c 20  resultsets will 
10440 62 65 20 74 68 65 6e 20 72 65 74 75 72 6e 65 64  be then returned
10450 2c 20 6d 61 79 20 62 65 20 63 6f 6e 74 61 69 6e  , may be contain
10460 69 6e 67 20 77 72 6f 6e 67 20 72 65 73 75 6c 74  ing wrong result
10470 73 2e 20 3c 62 3e 59 6f 75 20 61 72 65 20 77 61  s. <b>You are wa
10480 72 6e 65 64 3c 2f 62 3e 2e 3c 62 72 3e 3c 62 72  rned</b>.<br><br
10490 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f 74  >..</td></tr></t
104a0 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61  able>..<br>..<ta
104b0 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30  ble bgcolor="#c0
104c0 66 66 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e  ffc0" cellspacin
104d0 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69  g="10" cellpaddi
104e0 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d  ng="6"><tr><td>.
104f0 0a 3c 68 33 3e 48 6f 77 20 74 6f 20 63 6f 72 72  .<h3>How to corr
10500 65 63 74 6c 79 20 66 6f 72 6d 61 74 20 6d 75 6c  ectly format mul
10510 74 69 70 6c 65 20 64 65 73 74 69 6e 61 74 69 6f  tiple destinatio
10520 6e 73 20 6c 69 73 74 73 3c 2f 68 33 3e 0d 0a 56  ns lists</h3>..V
10530 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 61 6c  irtualRouting al
10540 77 61 79 73 20 65 78 70 65 63 74 73 20 74 6f 20  ways expects to 
10550 72 65 63 65 69 76 65 20 61 20 3c 62 3e 6d 75 6c  receive a <b>mul
10560 74 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e 73 3c  ti-destinations<
10570 2f 62 3e 20 6c 69 73 74 20 61 73 20 61 20 3c 62  /b> list as a <b
10580 3e 54 45 58 54 3c 2f 62 3e 20 73 74 72 69 6e 67  >TEXT</b> string
10590 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 69 67 68   containing tigh
105a0 74 6c 79 20 70 61 63 6b 65 64 20 76 61 6c 75 65  tly packed value
105b0 73 20 73 65 70 61 72 61 74 65 64 20 62 79 20 61  s separated by a
105c0 20 63 6f 6e 76 65 6e 74 69 6f 6e 61 6c 20 3c 62   conventional <b
105d0 3e 64 65 6c 69 6d 69 74 65 72 3c 2f 62 3e 20 28  >delimiter</b> (
105e0 75 73 75 61 6c 6c 79 20 72 65 70 72 65 73 65 6e  usually represen
105f0 74 65 64 20 62 79 20 61 20 3c 62 3e 63 6f 6d 6d  ted by a <b>comm
10600 61 3c 2f 62 3e 29 2e 3c 62 72 3e 0d 0a 45 78 61  a</b>).<br>..Exa
10610 6d 70 6c 65 73 20 6f 66 20 3c 62 3e 77 65 6c 6c  mples of <b>well
10620 20 66 6f 72 6d 61 74 74 65 64 3c 2f 62 3e 20 6d   formatted</b> m
10630 75 6c 74 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e  ulti-destination
10640 73 20 6c 69 73 74 73 3a 0d 0a 3c 76 65 72 62 61  s lists:..<verba
10650 74 69 6d 3e 0d 0a 27 31 2c 32 2c 33 2c 34 2c 35  tim>..'1,2,3,4,5
10660 2c 31 30 2c 31 30 30 2c 31 30 30 30 2c 31 30 30  ,10,100,1000,100
10670 30 30 30 27 20 20 20 2d 2d 20 69 6e 74 65 67 65  000'   -- intege
10680 72 20 4e 6f 64 65 20 49 44 73 0d 0a 0d 0a 27 41  r Node IDs....'A
10690 31 30 30 42 2c 41 31 30 30 46 2c 42 32 35 30 5a  100B,A100F,B250Z
106a0 2c 43 30 31 30 4d 2c 5a 39 39 39 41 27 20 20 2d  ,C010M,Z999A'  -
106b0 2d 20 61 6c 70 68 61 6e 75 6d 65 72 69 63 20 4e  - alphanumeric N
106c0 6f 64 65 20 43 6f 64 65 73 0d 0a 3c 2f 76 65 72  ode Codes..</ver
106d0 62 61 74 69 6d 3e 0d 0a 45 78 61 6d 70 6c 65 73  batim>..Examples
106e0 20 6f 66 20 3c 62 3e 62 61 64 6c 79 20 66 6f 72   of <b>badly for
106f0 6d 61 74 74 65 64 3c 2f 62 3e 20 6d 75 6c 74 69  matted</b> multi
10700 2d 64 65 73 74 69 6e 61 74 69 6f 6e 73 20 6c 69  -destinations li
10710 73 74 73 3a 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  sts:..<verbatim>
10720 0d 0a 27 20 20 31 2c 20 32 2c 20 33 2c 20 34 20  ..'  1, 2, 3, 4 
10730 2c 20 35 20 2c 20 31 30 2c 20 31 30 30 2c 20 31  , 5 , 10, 100, 1
10740 30 30 30 2c 20 31 30 30 30 30 30 20 20 27 20 20  000, 100000  '  
10750 20 2d 2d 20 69 6e 74 65 67 65 72 20 4e 6f 64 65   -- integer Node
10760 20 49 44 73 0d 0a 0d 0a 27 20 20 41 31 30 30 42   IDs....'  A100B
10770 2c 20 41 31 30 30 46 20 2c 20 42 32 35 30 5a 20  , A100F , B250Z 
10780 2c 20 43 30 31 30 4d 2c 20 5a 39 39 39 41 20 20  , C010M, Z999A  
10790 27 20 20 20 20 20 20 2d 2d 20 61 6c 70 68 61 6e  '      -- alphan
107a0 75 6d 65 72 69 63 20 4e 6f 64 65 20 43 6f 64 65  umeric Node Code
107b0 73 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a  s..</verbatim>..
107c0 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 61 6c 6c  <u>Note</u>: all
107d0 20 77 68 69 74 65 73 70 61 63 65 73 20 69 6d 6d   whitespaces imm
107e0 65 64 69 61 74 65 6c 79 20 70 72 65 63 65 64 69  ediately precedi
107f0 6e 67 20 6f 72 20 66 6f 6c 6c 6f 77 69 6e 67 20  ng or following 
10800 74 68 65 20 3c 62 3e 64 65 6c 69 6d 69 74 65 72  the <b>delimiter
10810 3c 2f 62 3e 20 77 69 6c 6c 20 62 65 20 63 6f 6e  </b> will be con
10820 73 69 64 65 72 65 64 20 74 6f 20 62 65 20 69 6e  sidered to be in
10830 74 65 67 72 61 6c 20 70 61 72 74 20 6f 66 20 74  tegral part of t
10840 68 65 20 76 61 6c 75 65 20 69 74 73 65 6c 66 2e  he value itself.
10850 3c 62 72 3e 0d 0a 54 68 69 73 20 77 69 6c 6c 20  <br>..This will 
10860 68 61 76 65 20 6e 6f 20 61 64 76 65 72 73 65 20  have no adverse 
10870 63 6f 6e 73 65 71 75 65 6e 63 65 73 20 69 6e 20  consequences in 
10880 74 68 65 20 63 61 73 65 20 6f 66 20 69 6e 74 65  the case of inte
10890 67 65 72 20 76 61 6c 75 65 73 2c 20 62 75 74 20  ger values, but 
108a0 63 61 6e 20 65 61 73 69 6c 79 20 68 61 76 65 20  can easily have 
108b0 63 61 74 61 73 74 72 6f 70 68 69 63 20 65 66 66  catastrophic eff
108c0 65 63 74 73 20 6f 6e 20 61 6c 70 68 61 6e 75 6d  ects on alphanum
108d0 65 72 69 63 20 76 61 6c 75 65 73 2e 0d 0a 3c 68  eric values...<h
108e0 33 3e 44 65 66 69 6e 69 6e 67 20 61 20 63 75 73  3>Defining a cus
108f0 74 6f 6d 20 64 65 6c 69 6d 69 74 65 72 3c 2f 68  tom delimiter</h
10900 33 3e 0d 0a 53 6f 6d 65 74 69 6d 65 73 20 69 74  3>..Sometimes it
10910 20 63 6f 75 6c 64 20 62 65 20 75 73 65 66 75 6c   could be useful
10920 20 73 65 74 74 69 6e 67 20 75 70 20 61 20 64 65   setting up a de
10930 6c 69 6d 69 74 65 72 20 64 69 66 66 65 72 65 6e  limiter differen
10940 74 20 66 72 6f 6d 20 3c 62 3e 63 6f 6d 6d 61 3c  t from <b>comma<
10950 2f 62 3e 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e  /b>...<verbatim>
10960 0d 0a 55 50 44 41 54 45 20 62 79 66 6f 6f 74 20  ..UPDATE byfoot 
10970 53 45 54 20 44 65 6c 69 6d 69 74 65 72 20 3d 20  SET Delimiter = 
10980 27 2a 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 44  '*';....SELECT D
10990 65 6c 69 6d 69 74 65 72 20 46 52 4f 4d 20 62 79  elimiter FROM by
109a0 66 6f 6f 74 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d  foot;..---------
109b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2a 20 5b 64 65  ---------..* [de
109c0 63 3d 34 32 2c 20 68 65 78 3d 32 61 5d 0d 0a 3c  c=42, hex=2a]..<
109d0 2f 76 65 72 62 61 74 69 6d 3e 20 0d 0a 59 6f 75  /verbatim> ..You
109e0 20 73 69 6d 70 6c 79 20 68 61 76 65 20 74 6f 20   simply have to 
109f0 65 78 65 63 75 74 65 20 61 6e 20 3c 62 3e 55 50  execute an <b>UP
10a00 44 41 54 45 3c 2f 62 3e 20 73 74 61 74 65 6d 65  DATE</b> stateme
10a10 6e 74 20 62 79 20 73 70 65 63 69 66 79 69 6e 67  nt by specifying
10a20 20 74 68 65 20 6e 65 77 20 64 65 6c 69 6d 69 74   the new delimit
10a30 65 72 20 76 61 6c 75 65 2e 3c 62 72 3e 3c 62 72  er value.<br><br
10a40 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f 74  >..</td></tr></t
10a50 61 62 6c 65 3e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d  able>..<br><br>.
10a60 0a 3c 68 72 3e 3c 62 72 3e 0d 0a 3c 68 31 3e 3c  .<hr><br>..<h1><
10a70 61 20 6e 61 6d 65 3d 22 74 73 70 22 3e 36 20 2d  a name="tsp">6 -
10a80 20 53 6f 6c 76 69 6e 67 20 54 53 50 20 28 74 72   Solving TSP (tr
10a90 61 76 65 6c 69 6e 67 20 73 61 6c 65 73 6d 61 6e  aveling salesman
10aa0 29 20 70 72 6f 62 6c 65 6d 73 3c 2f 61 3e 3c 2f  ) problems</a></
10ab0 68 31 3e 0d 0a 3c 62 3e 54 53 50 3c 2f 62 3e 20  h1>..<b>TSP</b> 
10ac0 28 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a  (<a href="https:
10ad0 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f  //en.wikipedia.o
10ae0 72 67 2f 77 69 6b 69 2f 54 72 61 76 65 6c 6c 69  rg/wiki/Travelli
10af0 6e 67 5f 73 61 6c 65 73 6d 61 6e 5f 70 72 6f 62  ng_salesman_prob
10b00 6c 65 6d 22 3e 54 72 61 76 65 6c 69 6e 67 20 53  lem">Traveling S
10b10 61 6c 65 73 6d 6e 20 50 72 6f 62 6c 65 6d 3c 2f  alesmn Problem</
10b20 61 3e 29 20 69 73 20 61 20 77 65 6c 6c 20 6b 6e  a>) is a well kn
10b30 6f 77 6e 20 4f 70 65 72 61 74 69 6f 6e 73 20 52  own Operations R
10b40 65 61 73 65 61 72 63 68 20 70 72 6f 62 6c 65 6d  easearch problem
10b50 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61  ...<br><br>..<ta
10b60 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30  ble bgcolor="#c0
10b70 66 66 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e  ffc0" cellspacin
10b80 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69  g="10" cellpaddi
10b90 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d  ng="6"><tr><td>.
10ba0 0a 3c 68 33 3e 54 68 65 20 54 72 61 76 65 6c 69  .<h3>The Traveli
10bb0 6e 67 20 53 61 6c 65 73 6d 61 6e 20 50 72 6f 62  ng Salesman Prob
10bc0 6c 65 6d 3c 2f 68 33 3e 0d 0a 3c 62 3e 3c 69 3e  lem</h3>..<b><i>
10bd0 47 69 76 65 6e 20 61 20 6c 69 73 74 20 6f 66 20  Given a list of 
10be0 63 69 74 69 65 73 20 61 6e 64 20 74 68 65 20 64  cities and the d
10bf0 69 73 74 61 6e 63 65 73 20 62 65 74 77 65 65 6e  istances between
10c00 20 65 61 63 68 20 70 61 69 72 20 6f 66 20 63 69   each pair of ci
10c10 74 69 65 73 2c 20 77 68 61 74 20 69 73 20 74 68  ties, what is th
10c20 65 20 73 68 6f 72 74 65 73 74 20 70 6f 73 73 69  e shortest possi
10c30 62 6c 65 20 72 6f 75 74 65 20 74 68 61 74 20 76  ble route that v
10c40 69 73 69 74 73 20 65 61 63 68 20 63 69 74 79 20  isits each city 
10c50 61 6e 64 20 72 65 74 75 72 6e 73 20 74 6f 20 74  and returns to t
10c60 68 65 20 6f 72 69 67 69 6e 20 63 69 74 79 20 3f  he origin city ?
10c70 3c 2f 69 3e 3c 2f 62 3e 0d 0a 3c 62 72 3e 3c 62  </i></b>..<br><b
10c80 72 3e 0d 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 3c 2f  r>..</td></tr></
10c90 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 3c 75  table>..<br>..<u
10ca0 3e 4e 6f 74 65 3a 3c 2f 75 3e 20 74 68 65 20 74  >Note:</u> the t
10cb0 65 72 6d 73 20 3c 69 3e 3c 75 3e 73 61 6c 65 73  erms <i><u>sales
10cc0 6d 61 6e 3c 2f 75 3e 3c 2f 69 3e 20 61 6e 64 20  man</u></i> and 
10cd0 3c 69 3e 3c 75 3e 63 69 74 79 3c 2f 75 3e 3c 2f  <i><u>city</u></
10ce0 69 3e 20 61 72 65 20 75 6e 69 76 65 72 73 61 6c  i> are universal
10cf0 6c 79 20 75 73 65 64 20 66 6f 72 20 68 69 73 74  ly used for hist
10d00 6f 72 69 63 61 6c 20 72 65 61 73 6f 6e 73 2c 20  orical reasons, 
10d10 62 75 74 20 79 6f 75 20 73 68 6f 75 6c 64 20 61  but you should a
10d20 76 6f 69 64 20 74 6f 20 6c 69 74 65 72 61 6c 6c  void to literall
10d30 79 20 69 6e 74 65 6e 64 20 62 6f 74 68 20 74 68  y intend both th
10d40 65 6d 2e 3c 62 72 3e 0d 0a 54 68 65 20 74 65 72  em.<br>..The ter
10d50 6d 20 3c 75 3e 3c 69 3e 73 61 6c 65 73 6d 61 6e  m <u><i>salesman
10d60 3c 2f 69 3e 3c 2f 75 3e 20 69 6e 20 74 68 69 73  </i></u> in this
10d70 20 73 70 65 63 69 66 69 63 20 63 6f 6e 74 65 78   specific contex
10d80 74 20 69 6e 74 65 6e 64 73 20 61 6e 79 20 70 6f  t intends any po
10d90 73 73 69 62 6c 65 20 6b 69 6e 64 20 6f 66 20 3c  ssible kind of <
10da0 75 3e 3c 69 3e 6d 6f 76 69 6e 67 20 61 67 65 6e  u><i>moving agen
10db0 74 3c 2f 69 3e 3c 2f 75 3e 20 28 70 65 64 65 73  t</i></u> (pedes
10dc0 74 72 69 61 6e 2c 20 76 65 68 69 63 6c 65 2c 20  trian, vehicle, 
10dd0 70 61 73 73 65 6e 67 65 72 20 6f 72 20 77 68 61  passenger or wha
10de0 74 65 76 65 72 20 65 6c 73 65 29 2c 20 65 78 61  tever else), exa
10df0 63 74 6c 79 20 61 73 20 3c 69 3e 3c 75 3e 63 69  ctly as <i><u>ci
10e00 74 79 3c 2f 75 3e 3c 2f 69 3e 20 73 69 6d 70 6c  ty</u></i> simpl
10e10 79 20 73 74 61 6e 64 73 20 66 6f 72 20 61 6e 79  y stands for any
10e20 20 3c 69 3e 3c 75 3e 67 65 6e 65 72 69 63 20 64   <i><u>generic d
10e30 65 73 74 69 6e 61 74 69 6f 6e 3c 2f 75 3e 3c 2f  estination</u></
10e40 69 3e 20 6f 6e 20 61 20 67 69 76 65 6e 20 4e 65  i> on a given Ne
10e50 74 77 6f 72 6b 2e 0d 0a 3c 62 72 3e 3c 62 72 3e  twork...<br><br>
10e60 0d 0a 57 65 20 63 61 6e 20 63 6f 6e 63 65 74 74  ..We can concett
10e70 75 61 6c 79 20 73 70 6c 69 74 20 54 50 53 20 69  ualy split TPS i
10e80 6e 20 74 77 6f 20 68 61 6c 76 65 73 3a 0d 0a 3c  n two halves:..<
10e90 6f 6c 3e 0d 0a 3c 6c 69 3e 63 6f 6d 70 75 74 69  ol>..<li>computi
10ea0 6e 67 20 61 6c 6c 20 64 69 73 74 61 6e 63 65 73  ng all distances
10eb0 20 62 65 74 77 65 65 6e 20 70 61 69 72 73 20 6f   between pairs o
10ec0 66 20 3c 69 3e 63 69 74 69 65 73 3c 2f 69 3e 2e  f <i>cities</i>.
10ed0 20 54 68 69 73 20 69 73 20 61 20 74 79 70 69 63   This is a typic
10ee0 61 6c 20 3c 62 3e 53 68 6f 72 74 65 73 74 50 61  al <b>ShortestPa
10ef0 74 68 3c 2f 62 3e 20 70 72 6f 62 6c 65 6d 2c 20  th</b> problem, 
10f00 61 6e 64 20 77 65 20 63 61 6e 20 64 75 6c 79 20  and we can duly 
10f10 75 73 65 20 74 68 65 20 44 69 6a 6b 73 74 72 61  use the Dijkstra
10f20 27 73 20 61 6c 67 6f 72 69 74 68 6d 20 66 6f 72  's algorithm for
10f30 20 74 68 69 73 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69   this.</li>..<li
10f40 3e 74 68 65 6e 20 77 65 20 68 61 76 65 20 74 6f  >then we have to
10f50 20 63 68 65 63 6b 20 61 6c 6c 20 70 6f 73 73 69   check all possi
10f60 62 6c 65 20 3c 62 3e 70 65 72 6d 75 74 61 74 69  ble <b>permutati
10f70 6f 6e 73 3c 2f 62 3e 20 2f 20 3c 62 3e 63 6f 6d  ons</b> / <b>com
10f80 62 69 6e 61 74 69 6f 6e 73 3c 2f 62 3e 20 73 6f  binations</b> so
10f90 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74 68 65   to identify the
10fa0 20 6f 70 74 69 6d 61 6c 20 54 53 50 20 73 6f 6c   optimal TSP sol
10fb0 75 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f  ution.</li>..</o
10fc0 6c 3e 0d 0a 55 6e 68 61 70 70 69 6c 79 20 74 68  l>..Unhappily th
10fd0 65 72 65 20 69 73 20 61 20 70 72 61 63 74 69 63  ere is a practic
10fe0 61 6c 20 64 69 66 66 69 63 75 6c 74 79 20 69 6e  al difficulty in
10ff0 20 73 75 63 68 20 61 20 73 74 72 61 69 67 68 74   such a straight
11000 20 61 70 70 72 6f 61 63 68 3b 20 74 68 65 20 6e   approach; the n
11010 75 6d 62 65 72 20 6f 66 20 63 6f 6d 62 69 6e 61  umber of combina
11020 74 69 6f 6e 73 20 77 69 6c 6c 20 67 72 6f 77 20  tions will grow 
11030 65 78 74 72 65 6d 65 6c 79 20 66 61 73 74 20 61  extremely fast a
11040 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20  s the number of 
11050 3c 62 3e 3c 69 3e 63 69 74 69 65 73 3c 2f 69 3e  <b><i>cities</i>
11060 3c 2f 62 3e 20 69 6e 63 72 65 61 73 65 73 2e 3c  </b> increases.<
11070 62 72 3e 0d 0a 53 69 6d 70 6c 79 20 63 6f 6d 70  br>..Simply comp
11080 75 74 69 6e 67 20 74 68 65 20 63 6f 6d 70 6c 65  uting the comple
11090 74 65 20 54 53 50 20 73 6f 6c 75 74 69 6f 6e 20  te TSP solution 
110a0 66 6f 72 20 61 62 6f 75 74 20 74 65 6e 20 63 69  for about ten ci
110b0 74 69 65 73 20 77 69 6c 6c 20 72 65 71 75 69 72  ties will requir
110c0 65 20 61 20 3c 62 3e 76 65 72 79 20 6c 6f 6e 67  e a <b>very long
110d0 20 74 69 6d 65 3c 2f 62 3e 20 65 76 65 6e 20 75   time</b> even u
110e0 73 69 6e 67 20 61 20 73 75 70 65 72 63 6f 6d 70  sing a supercomp
110f0 75 74 65 72 2e 3c 62 72 3e 0d 0a 41 6e 64 20 61  uter.<br>..And a
11100 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 63 6f 6d  ttempting to com
11110 70 75 74 65 20 61 20 54 53 50 20 73 6f 6c 75 74  pute a TSP solut
11120 69 6f 6e 20 66 6f 72 20 61 62 6f 75 74 20 68 75  ion for about hu
11130 6e 64 72 65 64 20 63 69 74 69 65 73 20 77 69 6c  ndred cities wil
11140 6c 20 72 65 71 75 69 72 65 20 61 20 3c 62 3e 70  l require a <b>p
11150 72 61 63 74 69 63 61 6c 6c 79 20 69 6e 66 69 6e  ractically infin
11160 69 74 65 3c 2f 62 3e 20 74 69 6d 65 2e 0d 0a 3c  ite</b> time...<
11170 62 72 3e 3c 62 72 3e 0d 0a 48 6f 77 65 76 65 72  br><br>..However
11180 20 73 6f 6c 76 69 6e 67 20 54 53 50 20 69 73 20   solving TSP is 
11190 68 69 67 68 6c 79 20 64 65 73 69 64 65 72 61 62  highly desiderab
111a0 6c 65 20 69 6e 20 6d 61 6e 79 20 61 70 70 6c 69  le in many appli
111b0 63 61 74 69 6f 6e 20 66 69 65 6c 64 73 3a 20 3c  cation fields: <
111c0 62 3e 6c 6f 67 69 73 74 69 63 73 3c 2f 62 3e 20  b>logistics</b> 
111d0 28 6a 75 73 74 20 74 68 69 6e 6b 20 61 62 6f 75  (just think abou
111e0 74 20 63 6f 75 72 69 65 72 20 63 6f 6d 70 61 6e  t courier compan
111f0 69 65 73 20 61 73 20 44 48 4c 2c 20 46 65 64 45  ies as DHL, FedE
11200 58 2c 20 55 50 53 20 6f 72 20 54 4e 54 29 2c 20  X, UPS or TNT), 
11210 3c 62 3e 66 69 65 6c 64 20 6d 61 69 6e 74 65 6e  <b>field mainten
11220 61 6e 63 65 3c 2f 62 3e 20 2f 20 3c 62 3e 61 73  ance</b> / <b>as
11230 73 69 73 74 61 6e 63 65 3c 2f 62 3e 2c 20 3c 62  sistance</b>, <b
11240 3e 77 61 73 74 65 20 63 6f 6c 6c 65 63 74 69 6f  >waste collectio
11250 6e 3c 2f 62 3e 2c 20 3c 62 3e 73 63 68 6f 6f 6c  n</b>, <b>school
11260 62 75 73 3c 2f 62 3e 20 2f 20 3c 62 3e 73 68 61  bus</b> / <b>sha
11270 72 65 64 20 74 61 78 69 20 73 65 72 76 69 63 65  red taxi service
11280 73 3c 2f 62 3e 20 65 74 63 2e 3c 62 72 3e 0d 0a  s</b> etc.<br>..
11290 4d 61 6e 79 20 61 6c 67 6f 72 69 74 68 6d 73 20  Many algorithms 
112a0 68 61 76 65 20 62 65 65 6e 20 69 6e 76 65 6e 74  have been invent
112b0 65 64 20 64 75 72 69 6e 67 20 6c 61 73 74 20 64  ed during last d
112c0 65 63 61 64 65 73 20 69 6e 74 65 6e 64 65 64 20  ecades intended 
112d0 74 6f 20 70 72 6f 64 75 63 65 20 70 72 61 63 74  to produce pract
112e0 69 63 61 6c 20 61 6c 74 68 6f 75 67 68 20 61 70  ical although ap
112f0 70 72 6f 78 69 6d 61 74 65 20 2f 20 69 6d 70 65  proximate / impe
11300 72 66 65 63 74 20 54 53 50 20 73 6f 6c 75 74 69  rfect TSP soluti
11310 6f 6e 73 20 69 6e 20 61 20 72 65 61 73 6f 6e 61  ons in a reasona
11320 62 6c 79 20 73 68 6f 72 74 20 74 69 6d 65 2e 0d  bly short time..
11330 0a 4d 61 6e 79 20 6f 66 20 74 68 65 6d 20 73 74  .Many of them st
11340 72 6f 6e 67 6c 79 20 64 65 70 65 6e 64 20 6f 6e  rongly depend on
11350 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a   <a href="https:
11360 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f  //en.wikipedia.o
11370 72 67 2f 77 69 6b 69 2f 48 65 75 72 69 73 74 69  rg/wiki/Heuristi
11380 63 22 3e 68 65 75 72 69 73 74 69 63 3c 2f 61 3e  c">heuristic</a>
11390 20 61 6e 64 20 2f 20 6f 72 20 3c 61 20 68 72 65   and / or <a hre
113a0 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e 2e 77 69  f="https://en.wi
113b0 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b 69  kipedia.org/wiki
113c0 2f 52 61 6e 64 6f 6d 6e 65 73 73 22 3e 72 61 6e  /Randomness">ran
113d0 64 6f 6d 6e 65 73 73 3c 2f 61 3e 2e 0d 0a 3c 62  domness</a>...<b
113e0 72 3e 3c 62 72 3e 0d 0a 3c 62 3e 56 69 72 74 75  r><br>..<b>Virtu
113f0 61 6c 52 6f 75 74 69 6e 67 3c 2f 62 3e 20 73 75  alRouting</b> su
11400 70 70 6f 72 74 73 20 74 77 6f 20 64 69 66 66 65  pports two diffe
11410 72 65 6e 74 20 54 53 50 20 61 6c 67 6f 72 69 74  rent TSP algorit
11420 68 6d 73 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  hms:..<ul>..<li>
11430 3c 62 3e 54 53 50 20 4e 4e 3c 2f 62 3e 20 28 3c  <b>TSP NN</b> (<
11440 69 3e 61 6b 61 3c 2f 69 3e 20 3c 62 3e 3c 69 3e  i>aka</i> <b><i>
11450 4e 65 61 72 65 73 74 20 4e 65 69 67 68 62 6f 75  Nearest Neighbou
11460 72 3c 2f 69 3e 3c 2f 62 3e 29 3c 62 72 3e 0d 0a  r</i></b>)<br>..
11470 54 68 69 73 20 3c 61 20 68 72 65 66 3d 22 68 74  This <a href="ht
11480 74 70 73 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64  tps://en.wikiped
11490 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 4e 65 61 72  ia.org/wiki/Near
114a0 65 73 74 5f 6e 65 69 67 68 62 6f 75 72 5f 61 6c  est_neighbour_al
114b0 67 6f 72 69 74 68 6d 22 3e 66 69 72 73 74 20 61  gorithm">first a
114c0 6c 67 6f 72 69 74 68 6d 3c 2f 61 3e 20 69 73 20  lgorithm</a> is 
114d0 73 74 72 61 69 67 68 74 66 6f 72 77 61 64 20 73  straightforwad s
114e0 69 6d 70 6c 65 20 61 6e 64 20 76 65 72 79 20 66  imple and very f
114f0 61 73 74 3b 20 69 74 20 63 61 6e 20 65 66 66 65  ast; it can effe
11500 63 74 69 76 65 6c 79 20 73 6f 6c 76 65 20 68 75  ctively solve hu
11510 67 65 20 54 53 50 20 73 6f 6c 75 74 69 6f 6e 73  ge TSP solutions
11520 20 28 74 68 6f 75 73 61 6e 64 20 3c 69 3e 63 69   (thousand <i>ci
11530 74 69 65 73 3c 2f 69 3e 20 6f 72 20 65 76 65 6e  ties</i> or even
11540 20 6d 6f 72 65 29 20 69 6e 20 61 20 76 65 72 79   more) in a very
11550 20 73 68 6f 72 74 20 74 69 6d 65 2e 3c 62 72 3e   short time.<br>
11560 0d 0a 3c 75 3e 53 68 6f 72 74 20 64 65 73 63 72  ..<u>Short descr
11570 69 70 74 69 6f 6e 3c 2f 75 3e 3a 0d 0a 3c 75 6c  iption</u>:..<ul
11580 3e 0d 0a 3c 6c 69 3e 73 74 61 72 74 69 6e 67 20  >..<li>starting 
11590 66 72 6f 6d 20 74 68 65 20 3c 75 3e 3c 69 3e 62  from the <u><i>b
115a0 61 73 65 20 63 69 74 79 3c 2f 69 3e 3c 2f 75 3e  ase city</i></u>
115b0 20 74 68 65 20 3c 75 3e 3c 69 3e 73 61 6c 65 73   the <u><i>sales
115c0 6d 61 6e 3c 2f 69 3e 3c 2f 75 3e 20 67 6f 65 73  man</i></u> goes
115d0 20 74 6f 20 74 68 65 20 3c 75 3e 3c 69 3e 63 69   to the <u><i>ci
115e0 74 79 3c 2f 69 3e 3c 2f 75 3e 20 70 72 65 73 65  ty</i></u> prese
115f0 6e 74 69 6e 67 20 74 68 65 20 3c 69 3e 3c 75 3e  nting the <i><u>
11600 6c 65 73 73 65 72 20 63 6f 6e 6e 65 63 74 69 6f  lesser connectio
11610 6e 20 63 6f 73 74 3c 2f 75 3e 3c 2f 69 3e 2e 3c  n cost</u></i>.<
11620 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 61 6c  /li>..<li>the al
11630 72 65 61 64 79 20 76 69 73 69 74 65 64 20 3c 69  ready visited <i
11640 3e 3c 75 3e 63 69 74 79 3c 2f 75 3e 3c 2f 69 3e  ><u>city</u></i>
11650 20 69 73 20 63 61 6e 63 65 6c 6c 65 64 20 66 72   is cancelled fr
11660 6f 6d 20 74 68 65 20 6c 69 73 74 2c 20 61 6e 64  om the list, and
11670 20 74 68 65 6e 20 74 68 65 20 3c 75 3e 3c 69 3e   then the <u><i>
11680 73 61 6c 65 73 6d 61 6e 3c 2f 69 3e 3c 2f 75 3e  salesman</i></u>
11690 20 67 6f 65 73 20 74 6f 20 74 68 65 20 6e 65 78   goes to the nex
116a0 74 20 3c 75 3e 3c 69 3e 63 69 74 79 3c 2f 69 3e  t <u><i>city</i>
116b0 3c 2f 75 3e 20 70 72 65 73 65 6e 74 69 6e 67 20  </u> presenting 
116c0 74 68 65 20 3c 69 3e 3c 75 3e 6c 65 73 73 65 72  the <i><u>lesser
116d0 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 63 6f 73 74   connection cost
116e0 3c 2f 75 3e 3c 2f 69 3e 2e 3c 2f 6c 69 3e 0d 0a  </u></i>.</li>..
116f0 3c 6c 69 3e 74 68 65 20 63 79 63 6c 65 20 63 6f  <li>the cycle co
11700 6e 74 69 6e 75 65 73 20 75 6e 74 69 6c 20 61 6c  ntinues until al
11710 6c 20 20 3c 69 3e 3c 75 3e 63 69 74 69 65 73 3c  l  <i><u>cities<
11720 2f 75 3e 3c 2f 69 3e 20 69 6e 20 74 68 65 20 6c  /u></i> in the l
11730 69 73 74 20 68 61 76 65 20 62 65 65 6e 20 76 69  ist have been vi
11740 73 69 74 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69  sited.</li>..<li
11750 3e 66 69 6e 61 6c 6c 79 2c 20 74 68 65 20 3c 75  >finally, the <u
11760 3e 3c 69 3e 73 61 6c 65 73 6d 61 6e 3c 2f 69 3e  ><i>salesman</i>
11770 3c 2f 75 3e 20 72 65 74 75 72 6e 73 20 74 6f 20  </u> returns to 
11780 68 69 73 2f 68 65 72 20 69 6e 69 74 69 61 6c 20  his/her initial 
11790 3c 75 3e 3c 69 3e 62 61 73 65 20 63 69 74 79 3c  <u><i>base city<
117a0 2f 69 3e 3c 2f 75 3e 3c 2f 6c 69 3e 0d 0a 3c 2f  /i></u></li>..</
117b0 75 6c 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e  ul>..<u>Note</u>
117c0 20 69 74 27 73 20 76 65 72 79 20 75 6e 6c 69 6b   it's very unlik
117d0 65 20 74 68 61 74 20 54 53 50 20 4e 4e 20 63 6f  e that TSP NN co
117e0 75 6c 64 20 66 69 6e 64 20 74 68 65 20 3c 62 3e  uld find the <b>
117f0 6f 70 74 69 6d 61 6c 3c 2f 62 3e 20 73 6f 6c 75  optimal</b> solu
11800 74 69 6f 6e 2c 20 62 75 74 20 69 74 20 63 61 6e  tion, but it can
11810 20 71 75 69 63 6b 6c 79 20 66 69 6e 64 20 73 6f   quickly find so
11820 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 3c 62  me reasonable <b
11830 3e 61 70 70 72 6f 78 69 6d 61 74 65 3c 2f 62 3e  >approximate</b>
11840 20 73 6f 6c 75 74 69 6f 6e 20 28 3c 69 3e 66 65   solution (<i>fe
11850 77 20 69 73 20 73 75 72 65 6c 79 20 62 65 74 74  w is surely bett
11860 65 72 20 74 68 61 6e 20 6e 6f 74 68 69 6e 67 3c  er than nothing<
11870 2f 69 3e 29 2e 3c 62 72 3e 0d 0a 49 6e 20 74 68  /i>).<br>..In th
11880 65 20 6d 6f 73 74 20 75 6e 6c 75 63 6b 79 20 63  e most unlucky c
11890 61 73 65 20 54 53 50 20 4e 4e 20 63 6f 75 6c 64  ase TSP NN could
118a0 20 70 6f 73 73 69 62 6c 79 20 72 65 74 75 72 6e   possibly return
118b0 20 74 68 65 20 3c 62 3e 77 6f 72 73 74 20 73 6f   the <b>worst so
118c0 6c 75 74 69 6f 6e 3c 2f 62 3e 2c 20 62 75 74 20  lution</b>, but 
118d0 74 68 65 20 73 70 65 63 69 66 69 63 20 69 6d 70  the specific imp
118e0 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 64 6f 70  lementation adop
118f0 74 65 64 20 62 79 20 56 69 72 74 75 61 6c 52 6f  ted by VirtualRo
11900 75 74 69 6e 67 20 63 68 65 63 6b 73 20 61 67 61  uting checks aga
11910 69 6e 73 74 20 74 68 69 73 20 70 6f 73 73 69 62  inst this possib
11920 69 6c 69 74 79 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c  ility:..<ul>..<l
11930 69 3e 65 61 63 68 20 54 53 50 20 4e 4e 20 69 73  i>each TSP NN is
11940 20 61 6c 77 61 79 73 20 63 6f 6d 70 75 74 65 64   always computed
11950 20 74 77 69 63 65 20 62 79 20 72 61 6e 64 6f 6d   twice by random
11960 6c 79 20 63 68 6f 6f 73 69 6e 67 20 61 20 64 69  ly choosing a di
11970 66 66 65 72 65 6e 74 20 3c 75 3e 3c 69 3e 62 61  fferent <u><i>ba
11980 73 65 20 63 69 74 79 3c 2f 69 3e 3c 2f 75 3e 20  se city</i></u> 
11990 61 6e 64 20 74 68 65 6e 20 6e 6f 72 6d 61 6c 69  and then normali
119a0 7a 69 6e 67 20 74 68 65 20 73 6f 6c 75 74 69 6f  zing the solutio
119b0 6e 3b 20 74 68 65 20 62 65 73 74 20 6f 66 20 74  n; the best of t
119c0 68 65 20 74 77 6f 20 73 6f 6c 75 74 69 6f 6e 73  he two solutions
119d0 20 69 73 20 74 68 65 6e 20 72 65 74 75 72 6e 65   is then returne
119e0 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 69  d.</li>..<li>thi
119f0 73 20 73 69 6d 70 6c 65 20 62 75 74 20 65 66 66  s simple but eff
11a00 65 63 74 69 76 65 20 70 72 65 63 61 75 74 69 6f  ective precautio
11a10 6e 20 72 6f 62 75 73 74 6c 79 20 65 6e 73 75 72  n robustly ensur
11a20 65 73 20 74 68 61 74 20 74 68 65 20 3c 62 3e 77  es that the <b>w
11a30 6f 72 73 74 20 73 6f 6c 75 74 69 6f 6e 3c 2f 62  orst solution</b
11a40 3e 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20  > will never be 
11a50 72 65 74 75 72 6e 65 64 2c 20 61 6e 64 20 6a 75  returned, and ju
11a60 73 74 20 69 6d 70 6c 69 65 73 20 61 20 6d 6f 64  st implies a mod
11a70 65 72 61 74 65 6c 79 20 69 6e 63 72 65 61 73 65  erately increase
11a80 64 20 65 78 65 63 75 74 69 6f 6e 20 74 69 6d 65  d execution time
11a90 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c  .</li>..</ul></l
11aa0 69 3e 0d 0a 3c 6c 69 3e 3c 62 3e 54 53 50 20 47  i>..<li><b>TSP G
11ab0 41 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69  A</b> (<i>aka</i
11ac0 3e 20 3c 62 3e 3c 69 3e 47 65 6e 65 74 69 63 20  > <b><i>Genetic 
11ad0 41 6c 67 6f 72 69 74 68 6d 3c 2f 69 3e 3c 2f 62  Algorithm</i></b
11ae0 3e 29 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 3c 61  >).<br>..This <a
11af0 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 65   href="https://e
11b00 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f  n.wikipedia.org/
11b10 77 69 6b 69 2f 47 65 6e 65 74 69 63 5f 61 6c 67  wiki/Genetic_alg
11b20 6f 72 69 74 68 6d 22 3e 61 6c 74 65 72 6e 61 74  orithm">alternat
11b30 69 76 65 20 61 6c 67 6f 72 69 74 68 6d 3c 2f 61  ive algorithm</a
11b40 3e 20 69 73 20 6d 75 63 68 20 6d 6f 72 65 20 63  > is much more c
11b50 6f 6d 70 6c 65 78 20 61 6e 64 20 73 6f 70 68 69  omplex and sophi
11b60 73 74 69 63 61 74 65 64 2c 20 61 6e 64 20 69 73  sticated, and is
11b70 20 64 69 72 65 63 74 6c 79 20 69 6e 73 70 69 72   directly inspir
11b80 65 64 20 62 79 20 62 69 6f 6c 6f 67 69 63 61 6c  ed by biological
11b90 20 63 6f 6e 63 65 70 74 73 20 73 75 63 68 20 61   concepts such a
11ba0 73 20 3c 62 3e 73 65 78 75 61 6c 20 72 65 70 72  s <b>sexual repr
11bb0 6f 64 75 63 74 69 6f 6e 3c 2f 62 3e 2c 20 3c 62  oduction</b>, <b
11bc0 3e 67 65 6e 65 74 69 63 20 6d 75 74 61 74 69 6f  >genetic mutatio
11bd0 6e 73 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6e 61  ns</b> and <b>na
11be0 74 75 61 6c 20 73 65 6c 65 63 74 69 6f 6e 3c 2f  tual selection</
11bf0 62 3e 2e 3c 62 72 3e 0d 0a 3c 75 3e 53 68 6f 72  b>.<br>..<u>Shor
11c00 74 20 64 65 73 63 72 69 70 74 69 6f 6e 3c 2f 75  t description</u
11c10 3e 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 61 20  >:..<ul>..<li>a 
11c20 66 69 72 73 74 20 69 6e 69 74 69 61 6c 20 73 65  first initial se
11c30 74 20 6f 66 20 73 6f 6c 75 74 69 6f 6e 73 20 28  t of solutions (
11c40 3c 69 3e 3c 75 3e 74 68 65 20 70 6f 70 75 6c 61  <i><u>the popula
11c50 74 69 6f 6e 3c 2f 75 3e 3c 2f 69 3e 29 20 69 73  tion</u></i>) is
11c60 20 63 72 65 61 74 65 64 20 62 79 20 75 73 69 6e   created by usin
11c70 67 20 54 53 50 20 4e 4e 20 61 66 74 65 72 20 72  g TSP NN after r
11c80 61 6e 64 6f 6d 6c 79 20 63 68 6f 6f 73 69 6e 67  andomly choosing
11c90 20 74 68 65 20 3c 75 3e 3c 69 3e 62 61 73 65 20   the <u><i>base 
11ca0 63 69 74 79 3c 2f 69 3e 3c 2f 75 3e 20 61 6e 64  city</i></u> and
11cb0 20 74 68 65 6e 20 6e 6f 72 6d 61 6c 69 7a 69 6e   then normalizin
11cc0 67 20 65 61 63 68 20 73 6f 6c 75 74 69 6f 6e 2e  g each solution.
11cd0 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 6e 20  </li>..<li>then 
11ce0 64 75 72 69 6e 67 20 65 61 63 68 20 73 74 65 70  during each step
11cf0 20 6f 66 20 74 68 65 20 65 78 65 63 75 74 69 6f   of the executio
11d00 6e 20 6c 6f 6f 70 20 28 3c 69 3e 3c 75 3e 67 65  n loop (<i><u>ge
11d10 6e 65 72 61 74 69 6f 6e 3c 2f 75 3e 3c 2f 69 3e  neration</u></i>
11d20 29 20 70 61 69 72 73 20 6f 66 20 73 6f 6c 75 74  ) pairs of solut
11d30 69 6f 6e 73 20 3c 69 3e 3c 75 3e 73 65 78 75 61  ions <i><u>sexua
11d40 6c 6c 79 20 72 65 70 72 6f 64 75 63 65 73 3c 2f  lly reproduces</
11d50 69 3e 3c 2f 75 3e 20 67 69 76 69 6e 67 20 62 69  i></u> giving bi
11d60 72 74 68 20 74 6f 20 3c 75 3e 3c 69 3e 63 68 69  rth to <u><i>chi
11d70 6c 64 72 65 6e 20 73 6f 6c 75 74 69 6f 6e 73 3c  ldren solutions<
11d80 2f 69 3e 3c 2f 75 3e 3b 20 3c 75 3e 3c 69 3e 63  /i></u>; <u><i>c
11d90 68 72 6f 6d 6f 73 6f 6d 65 20 63 72 6f 73 73 6f  hromosome crosso
11da0 76 65 72 73 3c 2f 69 3e 3c 2f 75 3e 20 61 6e 64  vers</i></u> and
11db0 20 3c 69 3e 3c 75 3e 72 61 6e 64 6f 6d 20 6d 75   <i><u>random mu
11dc0 74 61 74 69 6f 6e 73 3c 2f 75 3e 3c 2f 69 3e 20  tations</u></i> 
11dd0 69 6e 74 72 69 6e 73 69 63 61 6c 6c 79 20 61 66  intrinsically af
11de0 66 65 63 74 20 74 68 65 20 72 65 70 72 6f 64 75  fect the reprodu
11df0 63 74 69 76 65 20 70 72 6f 63 65 73 73 2e 3c 2f  ctive process.</
11e00 6c 69 3e 0d 0a 3c 6c 69 3e 66 6f 72 20 65 61 63  li>..<li>for eac
11e10 68 20 3c 69 3e 3c 75 3e 67 65 6e 65 72 61 74 69  h <i><u>generati
11e20 6f 6e 3c 2f 75 3e 3c 2f 69 3e 20 74 68 65 20 3c  on</u></i> the <
11e30 69 3e 3c 75 3e 6e 61 74 75 72 61 6c 20 73 65 6c  i><u>natural sel
11e40 65 63 74 69 6f 6e 3c 2f 75 3e 3c 2f 69 3e 20 65  ection</u></i> e
11e50 6c 69 6d 69 6e 61 74 65 73 20 61 6c 6c 20 70 6f  liminates all po
11e60 6f 72 6c 79 20 66 69 74 20 69 6e 64 69 76 69 64  orly fit individ
11e70 75 61 6c 73 20 66 72 6f 6d 20 74 68 65 20 3c 69  uals from the <i
11e80 3e 3c 75 3e 70 6f 70 75 6c 61 74 69 6f 6e 3c 2f  ><u>population</
11e90 75 3e 3c 2f 69 3e 20 61 6e 64 20 63 6f 6e 73 65  u></i> and conse
11ea0 71 75 65 6e 74 6c 79 20 6f 6e 6c 79 20 74 68 65  quently only the
11eb0 20 62 65 73 74 20 66 69 74 20 69 6e 64 69 76 69   best fit indivi
11ec0 64 75 61 6c 73 20 63 61 6e 20 70 72 6f 70 61 67  duals can propag
11ed0 61 74 65 20 74 68 65 69 72 20 3c 75 3e 3c 69 3e  ate their <u><i>
11ee0 67 65 6e 6f 6d 65 3c 2f 69 3e 3c 2f 75 3e 20 74  genome</i></u> t
11ef0 6f 20 6e 65 78 74 20 3c 75 3e 3c 69 3e 67 65 6e  o next <u><i>gen
11f00 65 72 61 74 69 6f 6e 3c 2f 69 3e 3c 2f 75 3e 2e  eration</i></u>.
11f10 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 61 66 74 65 72  </li>..<li>after
11f20 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d 62 65   a certain numbe
11f30 72 20 6f 66 20 3c 69 3e 3c 75 3e 67 65 6e 65 72  r of <i><u>gener
11f40 61 74 69 6f 6e 73 3c 2f 69 3e 3c 2f 75 3e 20 28  ations</i></u> (
11f50 6c 65 74 27 73 20 73 61 79 20 61 62 6f 75 74 20  let's say about 
11f60 73 6f 6d 65 20 68 75 6e 64 72 65 64 74 68 20 69  some hundredth i
11f70 74 65 72 61 74 69 6f 6e 73 29 20 74 68 65 20 3c  terations) the <
11f80 62 3e 6f 70 74 69 6d 61 6c 20 73 6f 6c 75 74 69  b>optimal soluti
11f90 6f 6e 3c 2f 62 3e 20 28 6f 72 20 61 74 20 6c 65  on</b> (or at le
11fa0 61 73 74 20 61 20 3c 62 3e 66 61 69 72 6c 79 20  ast a <b>fairly 
11fb0 67 6f 6f 64 20 73 75 62 2d 6f 70 74 69 6d 61 6c  good sub-optimal
11fc0 20 73 6f 6c 75 74 69 6f 6e 3c 2f 62 3e 29 20 73   solution</b>) s
11fd0 68 6f 75 6c 64 20 66 69 6e 61 6c 6c 79 20 65 6d  hould finally em
11fe0 65 72 67 65 2c 20 61 6e 64 20 73 6f 20 74 68 65  erge, and so the
11ff0 20 6c 6f 6f 70 20 63 61 6e 20 65 78 69 74 2e 3c   loop can exit.<
12000 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69 3e  /li>..</ul></li>
12010 0d 0a 3c 6c 69 3e 3c 75 3e 4e 6f 74 65 3c 2f 75  ..<li><u>Note</u
12020 3e 3a 20 54 53 50 20 47 41 20 69 73 20 75 73 75  >: TSP GA is usu
12030 61 6c 6c 79 20 65 78 70 65 63 74 65 64 20 74 6f  ally expected to
12040 20 69 64 65 6e 74 69 66 79 20 62 65 74 74 65 72   identify better
12050 20 73 6f 6c 75 74 69 6f 6e 73 20 74 68 61 6e 20   solutions than 
12060 54 53 50 20 4e 4e 20 63 61 6e 20 64 6f 2c 20 62  TSP NN can do, b
12070 75 74 20 69 74 20 77 69 6c 6c 20 73 75 72 65 6c  ut it will surel
12080 79 20 72 65 71 75 69 72 65 20 6d 75 63 68 20 6d  y require much m
12090 6f 72 65 20 74 69 6d 65 20 74 6f 20 63 6f 6d 70  ore time to comp
120a0 6c 65 74 65 2e 3c 2f 6c 69 3e 20 0d 0a 3c 2f 75  lete.</li> ..</u
120b0 6c 3e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 4c 65  l>..<br><br>..Le
120c0 74 27 73 20 6e 6f 77 20 65 78 61 6d 69 6e 65 20  t's now examine 
120d0 61 20 70 72 61 63 74 69 63 61 6c 20 65 78 61 6d  a practical exam
120e0 70 6c 65 20 6f 66 20 54 53 50 20 73 6f 6c 76 69  ple of TSP solvi
120f0 6e 67 20 75 73 69 6e 67 20 56 69 72 74 75 61 6c  ng using Virtual
12100 52 6f 75 74 69 6e 67 2e 20 0d 0a 3c 76 65 72 62  Routing. ..<verb
12110 61 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79  atim>..UPDATE by
12120 66 6f 6f 74 20 53 45 54 20 52 65 71 75 65 73 74  foot SET Request
12130 20 3d 20 27 54 53 50 27 3b 0d 0a 0d 0a 53 45 4c   = 'TSP';....SEL
12140 45 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20 52  ECT Algorithm, R
12150 65 71 75 65 73 74 2c 20 4f 70 74 69 6f 6e 73 2c  equest, Options,
12160 20 44 65 6c 69 6d 69 74 65 72 2c 20 52 6f 75 74   Delimiter, Rout
12170 65 49 64 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52  eId, RouteRow, R
12180 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20  ole, LinkRowid, 
12190 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f  NodeFrom, NodeTo
121a0 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79  , Cost, Geometry
121b0 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66  , Name..FROM byf
121c0 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46  oot..WHERE NodeF
121d0 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44  rom = 178731 AND
121e0 20 4e 6f 64 65 54 6f 20 3d 20 27 31 38 33 32 38   NodeTo = '18328
121f0 36 2c 31 38 31 39 39 39 2c 31 38 34 30 33 30 2c  6,181999,184030,
12200 31 38 33 38 38 32 2c 31 37 38 37 35 34 27 3b 0d  183882,178754';.
12210 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 41 20  .</verbatim>..A 
12220 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 20 3c  VirtualRouting <
12230 62 3e 54 53 50 3c 2f 62 3e 20 71 75 65 72 79 20  b>TSP</b> query 
12240 68 61 73 20 74 68 65 20 73 61 6d 65 20 69 64 65  has the same ide
12250 6e 74 69 63 61 6c 20 66 6f 72 6d 20 6f 66 20 61  ntical form of a
12260 20 3c 62 3e 6d 75 6c 74 69 2d 64 65 73 74 69 6e   <b>multi-destin
12270 61 74 69 6f 6e 3c 2f 62 3e 20 71 75 65 72 79 3b  ation</b> query;
12280 20 74 68 65 20 3c 69 3e 3c 75 3e 62 61 73 65 20   the <i><u>base 
12290 63 69 74 79 3c 75 3e 3c 2f 69 3e 20 69 73 20 61  city<u></i> is a
122a0 6c 77 61 79 73 20 65 78 70 65 63 74 65 64 20 74  lways expected t
122b0 6f 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20  o correspond to 
122c0 3c 62 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 62 3e 20  <b>NodeFrom</b> 
122d0 61 6e 64 20 61 6c 6c 20 6f 74 68 65 72 20 3c 69  and all other <i
122e0 3e 3c 75 3e 63 69 74 69 65 73 3c 2f 75 3e 3c 2f  ><u>cities</u></
122f0 69 3e 20 74 6f 20 62 65 20 76 69 73 69 74 65 64  i> to be visited
12300 20 61 72 65 20 65 78 70 65 63 74 65 64 20 74 6f   are expected to
12310 20 62 65 20 65 6e 75 6d 65 72 61 74 65 64 20 69   be enumerated i
12320 6e 74 6f 20 61 20 3c 62 3e 6d 75 6c 74 69 2d 64  nto a <b>multi-d
12330 65 73 74 69 6e 61 74 69 6f 6e 3c 2f 62 3e 20 6c  estination</b> l
12340 69 73 74 20 61 73 73 69 67 6e 65 64 20 74 6f 20  ist assigned to 
12350 3c 62 3e 4e 6f 64 65 54 6f 3c 2f 62 3e 2e 0d 0a  <b>NodeTo</b>...
12360 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 79 6f 75  <u>Note</u>: you
12370 20 6d 75 73 74 20 65 78 70 6c 69 63 69 74 6c 79   must explicitly
12380 20 73 65 74 20 74 68 65 20 63 75 72 72 65 6e 74   set the current
12390 20 3c 62 3e 52 65 71 75 65 73 74 3c 2f 62 3e 20   <b>Request</b> 
123a0 61 73 20 3c 62 3e 54 53 50 3c 2f 62 3e 2c 20 3c  as <b>TSP</b>, <
123b0 62 3e 54 53 50 20 4e 4e 3c 2f 62 3e 20 6f 72 20  b>TSP NN</b> or 
123c0 3c 62 3e 54 53 50 20 47 41 3c 2f 62 3e 20 28 54  <b>TSP GA</b> (T
123d0 53 50 20 61 6e 64 20 54 53 50 20 4e 4e 20 61 72  SP and TSP NN ar
123e0 65 20 73 79 6e 6f 6e 69 6d 73 29 2e 0d 0a 3c 62  e synonims)...<b
123f0 72 3e 3c 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62  r><br>..<table b
12400 6f 72 64 65 72 3d 22 31 22 20 62 67 63 6f 6c 6f  order="1" bgcolo
12410 72 3d 22 23 66 66 66 66 63 66 22 20 63 65 6c 6c  r="#ffffcf" cell
12420 73 70 61 63 69 6e 67 3d 22 34 22 20 63 65 6c 6c  spacing="4" cell
12430 70 61 64 64 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74  padding="6">..<t
12440 72 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  r><th bgcolor="#
12450 64 30 64 30 61 30 22 3e 41 6c 67 6f 72 69 74 68  d0d0a0">Algorith
12460 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  m</th><th bgcolo
12470 72 3d 22 23 64 30 64 30 61 30 22 3e 52 65 71 75  r="#d0d0a0">Requ
12480 65 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  est</th><th bgco
12490 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4f 70  lor="#d0d0a0">Op
124a0 74 69 6f 6e 73 3c 2f 74 68 3e 3c 74 68 20 62 67  tions</th><th bg
124b0 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
124c0 44 65 6c 69 6d 69 74 65 72 3c 2f 74 68 3e 3c 74  Delimiter</th><t
124d0 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
124e0 61 30 22 3e 52 6f 75 74 65 49 64 3c 2f 74 68 3e  a0">RouteId</th>
124f0 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
12500 64 30 61 30 22 3e 52 6f 75 74 65 52 6f 77 3c 2f  d0a0">RouteRow</
12510 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
12520 23 64 30 64 30 61 30 22 3e 52 6f 6c 65 3c 2f 74  #d0d0a0">Role</t
12530 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
12540 64 30 64 30 61 30 22 3e 4c 69 6e 6b 52 6f 77 69  d0d0a0">LinkRowi
12550 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  d</th><th bgcolo
12560 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65  r="#d0d0a0">Node
12570 46 72 6f 6d 3c 2f 74 68 3e 3c 74 68 20 62 67 63  From</th><th bgc
12580 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e  olor="#d0d0a0">N
12590 6f 64 65 54 6f 3c 2f 74 68 3e 3c 74 68 20 62 67  odeTo</th><th bg
125a0 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
125b0 43 6f 73 74 3c 2f 74 68 3e 3c 74 68 20 62 67 63  Cost</th><th bgc
125c0 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 47  olor="#d0d0a0">G
125d0 65 6f 6d 65 74 72 79 3c 2f 74 68 3e 3c 74 68 20  eometry</th><th 
125e0 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
125f0 22 3e 4e 61 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e  ">Name</th></tr>
12600 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 44 69 6a 6b  ..<tr>..<td>Dijk
12610 73 74 72 61 3c 2f 74 64 3e 3c 74 64 3e 54 53 50  stra</td><td>TSP
12620 20 4e 4e 3c 2f 74 64 3e 3c 74 64 3e 46 75 6c 6c   NN</td><td>Full
12630 3c 2f 74 64 3e 3c 74 64 3e 2c 20 26 23 39 31 3b  </td><td>, &#91;
12640 64 65 63 3d 34 34 2c 20 68 65 78 3d 32 63 26 23  dec=44, hex=2c&#
12650 39 33 3b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  93;</td><td alig
12660 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
12670 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
12680 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 54 53 50 20  ">0</td><td>TSP 
12690 53 6f 6c 75 74 69 6f 6e 3c 2f 74 64 3e 3c 74 64  Solution</td><td
126a0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
126b0 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
126c0 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
126d0 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
126e0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
126f0 69 67 68 74 22 3e 31 32 35 34 2e 34 33 33 39 33  ight">1254.43393
12700 33 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  3</td><td>BLOB s
12710 7a 3d 32 30 30 30 20 47 45 4f 4d 45 54 52 59 3c  z=2000 GEOMETRY<
12720 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
12730 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
12740 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
12750 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
12760 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
12770 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
12780 3e 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >1</td><td align
12790 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c  ="right">0</td><
127a0 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64  td>Route</td><td
127b0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
127c0 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
127d0 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
127e0 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 30 3c  ="right">184030<
127f0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
12800 69 67 68 74 22 3e 31 37 36 2e 33 36 34 37 35 35  ight">176.364755
12810 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a  </td><td>BLOB sz
12820 3d 33 30 34 20 47 45 4f 4d 45 54 52 59 3c 2f 74  =304 GEOMETRY</t
12830 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d  d><td>NULL</td>.
12840 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
12850 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
12860 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
12870 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
12880 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
12890 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">2</td><td al
128a0 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74  ign="right">1</t
128b0 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
128c0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
128d0 3e 32 32 34 30 31 34 3c 2f 74 64 3e 3c 74 64 20  >224014</td><td 
128e0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
128f0 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8731</td><td ali
12900 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38 38  gn="right">18288
12910 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  5</td><td align=
12920 22 72 69 67 68 74 22 3e 39 34 2e 38 31 32 34 32  "right">94.81242
12930 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  4</td><td>NULL</
12940 74 64 3e 3c 74 64 3e 56 49 41 20 50 49 45 54 52  td><td>VIA PIETR
12950 4f 20 41 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a  O ARETINO</td>..
12960 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 72  </tr>..<tr>..<tr
12970 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
12980 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
12990 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
129a0 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
129b0 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c  ="right">2</td><
129c0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
129d0 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >2</td><td>Link<
129e0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
129f0 69 67 68 74 22 3e 32 32 34 38 36 32 3c 2f 74 64  ight">224862</td
12a00 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
12a10 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74  t">182885</td><t
12a20 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
12a30 31 38 32 30 34 33 3c 2f 74 64 3e 3c 74 64 20 61  182043</td><td a
12a40 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 37 2e  lign="right">37.
12a50 30 39 35 32 38 37 3c 2f 74 64 3e 3c 74 64 3e 4e  095287</td><td>N
12a60 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
12a70 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64 3e  MARGARITONE</td>
12a80 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
12a90 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
12aa0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
12ab0 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
12ac0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
12ad0 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 20 61  ght">2</td><td a
12ae0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f  lign="right">3</
12af0 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
12b00 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
12b10 22 3e 32 32 36 30 37 30 3c 2f 74 64 3e 3c 74 64  ">226070</td><td
12b20 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
12b30 38 32 30 34 33 3c 2f 74 64 3e 3c 74 64 20 61 6c  82043</td><td al
12b40 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 34 30  ign="right">1840
12b50 33 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  30</td><td align
12b60 3d 22 72 69 67 68 74 22 3e 34 34 2e 34 35 37 30  ="right">44.4570
12b70 34 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  44</td><td>NULL<
12b80 2f 74 64 3e 3c 74 64 3e 50 49 41 5a 5a 41 20 53  /td><td>PIAZZA S
12b90 41 4e 54 27 41 47 4f 53 54 49 4e 4f 3c 2f 74 64  ANT'AGOSTINO</td
12ba0 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
12bb0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
12bc0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
12bd0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
12be0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
12bf0 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 20  ight">2</td><td 
12c00 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
12c10 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
12c20 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
12c30 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
12c40 3e 31 38 34 30 33 30 3c 2f 74 64 3e 3c 74 64 20  >184030</td><td 
12c50 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
12c60 31 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  1999</td><td ali
12c70 67 6e 3d 22 72 69 67 68 74 22 3e 31 33 39 2e 31  gn="right">139.1
12c80 31 34 39 33 38 3c 2f 74 64 3e 3c 74 64 3e 42 4c  14938</td><td>BL
12c90 4f 42 20 73 7a 3d 34 39 36 20 47 45 4f 4d 45 54  OB sz=496 GEOMET
12ca0 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
12cb0 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
12cc0 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
12cd0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
12ce0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
12cf0 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
12d00 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c  ="right">3</td><
12d10 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
12d20 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >1</td><td>Link<
12d30 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
12d40 69 67 68 74 22 3e 32 32 36 30 37 31 3c 2f 74 64  ight">226071</td
12d50 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
12d60 74 22 3e 31 38 34 30 33 30 3c 2f 74 64 3e 3c 74  t">184030</td><t
12d70 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
12d80 31 38 32 36 32 39 3c 2f 74 64 3e 3c 74 64 20 61  182629</td><td a
12d90 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 35 35 2e  lign="right">55.
12da0 36 38 39 30 30 39 3c 2f 74 64 3e 3c 74 64 3e 4e  689009</td><td>N
12db0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
12dc0 47 49 55 53 45 50 50 45 20 47 41 52 49 42 41 4c  GIUSEPPE GARIBAL
12dd0 44 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  DI</td>..</tr>..
12de0 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
12df0 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
12e00 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
12e10 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
12e20 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74  ign="right">3</t
12e30 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
12e40 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">2</td><td>Li
12e50 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
12e60 3d 22 72 69 67 68 74 22 3e 32 32 35 35 31 32 3c  ="right">225512<
12e70 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
12e80 69 67 68 74 22 3e 31 38 32 36 32 39 3c 2f 74 64  ight">182629</td
12e90 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
12ea0 74 22 3e 31 38 32 39 33 33 3c 2f 74 64 3e 3c 74  t">182933</td><t
12eb0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
12ec0 33 34 2e 31 38 34 31 39 34 3c 2f 74 64 3e 3c 74  34.184194</td><t
12ed0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 43  d>NULL</td><td>C
12ee0 4f 52 53 4f 20 49 54 41 4c 49 41 3c 2f 74 64 3e  ORSO ITALIA</td>
12ef0 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
12f00 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
12f10 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
12f20 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
12f30 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
12f40 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20 61  ght">3</td><td a
12f50 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f  lign="right">3</
12f60 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e  td><td>Link</td>
12f70 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
12f80 22 3e 32 32 35 35 31 31 3c 2f 74 64 3e 3c 74 64  ">225511</td><td
12f90 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
12fa0 38 32 39 33 33 3c 2f 74 64 3e 3c 74 64 20 61 6c  82933</td><td al
12fb0 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39  ign="right">1819
12fc0 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  99</td><td align
12fd0 3d 22 72 69 67 68 74 22 3e 34 39 2e 32 34 31 37  ="right">49.2417
12fe0 33 35 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  35</td><td>NULL<
12ff0 2f 74 64 3e 3c 74 64 3e 43 4f 52 53 4f 20 49 54  /td><td>CORSO IT
13000 41 4c 49 41 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  ALIA</td>..</tr>
13010 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
13020 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13030 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13040 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
13050 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c  align="right">3<
13060 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13070 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
13080 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
13090 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
130a0 3d 22 72 69 67 68 74 22 3e 31 38 31 39 39 39 3c  ="right">181999<
130b0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
130c0 69 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64  ight">183286</td
130d0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
130e0 74 22 3e 32 31 37 2e 36 37 32 38 38 35 3c 2f 74  t">217.672885</t
130f0 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 36 38  d><td>BLOB sz=68
13100 38 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  8 GEOMETRY</td><
13110 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
13120 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
13130 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
13140 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13150 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13160 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13170 3e 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >4</td><td align
13180 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c  ="right">1</td><
13190 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
131a0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
131b0 32 36 33 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2635</td><td ali
131c0 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39 39  gn="right">18199
131d0 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  9</td><td align=
131e0 22 72 69 67 68 74 22 3e 31 38 31 39 39 38 3c 2f  "right">181998</
131f0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
13200 67 68 74 22 3e 31 30 31 2e 36 32 39 37 35 30 3c  ght">101.629750<
13210 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
13220 3e 3c 74 64 3e 43 4f 52 53 4f 20 49 54 41 4c 49  ><td>CORSO ITALI
13230 41 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  A</td>..</tr>..<
13240 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
13250 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13260 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
13270 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
13280 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c 2f 74 64  gn="right">4</td
13290 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
132a0 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e  t">2</td><td>Lin
132b0 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  k</td><td align=
132c0 22 72 69 67 68 74 22 3e 32 32 34 37 38 30 3c 2f  "right">224780</
132d0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
132e0 67 68 74 22 3e 31 38 31 39 39 38 3c 2f 74 64 3e  ght">181998</td>
132f0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
13300 22 3e 31 38 33 35 36 30 3c 2f 74 64 3e 3c 74 64  ">183560</td><td
13310 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 37   align="right">7
13320 33 2e 37 33 33 35 37 32 3c 2f 74 64 3e 3c 74 64  3.733572</td><td
13330 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49  >NULL</td><td>VI
13340 41 20 44 45 4c 4c 27 41 4e 46 49 54 45 41 54 52  A DELL'ANFITEATR
13350 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  O</td>..</tr>..<
13360 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
13370 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13380 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
13390 4e 55 4c 4c 3c 74 64 20 61 6c 69 67 6e 3d 22 72  NULL<td align="r
133a0 69 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20  ight">4</td><td 
133b0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c  align="right">3<
133c0 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
133d0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
133e0 74 22 3e 32 32 35 38 32 37 3c 2f 74 64 3e 3c 74  t">225827</td><t
133f0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13400 31 38 33 35 36 30 3c 2f 74 64 3e 3c 74 64 20 61  183560</td><td a
13410 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33  lign="right">183
13420 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  286</td><td alig
13430 6e 3d 22 72 69 67 68 74 22 3e 34 32 2e 33 30 39  n="right">42.309
13440 35 36 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  564</td><td>NULL
13450 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 44 45 4c  </td><td>VIA DEL
13460 4c 27 41 4e 46 49 54 45 41 54 52 4f 3c 2f 74 64  L'ANFITEATRO</td
13470 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
13480 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13490 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
134a0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
134b0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
134c0 69 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20  ight">4</td><td 
134d0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
134e0 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
134f0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13500 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13510 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20  >183286</td><td 
13520 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
13530 38 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8754</td><td ali
13540 67 6e 3d 22 72 69 67 68 74 22 3e 33 37 38 2e 33  gn="right">378.3
13550 31 33 36 38 34 3c 2f 74 64 3e 3c 74 64 3e 42 4c  13684</td><td>BL
13560 4f 42 20 73 7a 3d 32 37 32 20 47 45 4f 4d 45 54  OB sz=272 GEOMET
13570 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
13580 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
13590 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
135a0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
135b0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
135c0 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
135d0 3d 22 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c  ="right">5</td><
135e0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
135f0 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >1</td><td>Link<
13600 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13610 69 67 68 74 22 3e 32 32 34 34 31 34 3c 2f 74 64  ight">224414</td
13620 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13630 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74  t">183286</td><t
13640 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13650 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61  178880</td><td a
13660 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 33 36  lign="right">136
13670 2e 33 37 32 30 35 37 3c 2f 74 64 3e 3c 74 64 3e  .372057</td><td>
13680 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41  NULL</td><td>VIA
13690 20 4d 41 52 47 41 52 49 54 4f 4e 45 3c 2f 74 64   MARGARITONE</td
136a0 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
136b0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
136c0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
136d0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
136e0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
136f0 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c 74 64 20  ight">5</td><td 
13700 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c  align="right">2<
13710 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64  /td><td>Link</td
13720 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13730 74 22 3e 32 31 39 31 37 31 3c 2f 74 64 3e 3c 74  t">219171</td><t
13740 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13750 31 37 38 38 38 30 3c 2f 74 64 3e 3c 74 64 20 61  178880</td><td a
13760 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
13770 37 33 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  732</td><td alig
13780 6e 3d 22 72 69 67 68 74 22 3e 39 33 2e 32 38 35  n="right">93.285
13790 35 33 38 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  538</td><td>NULL
137a0 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 46 52 41  </td><td>VIA FRA
137b0 4e 43 45 53 43 4f 20 43 52 49 53 50 49 3c 2f 74  NCESCO CRISPI</t
137c0 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
137d0 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
137e0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
137f0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
13800 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
13810 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c 74 64  right">5</td><td
13820 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33   align="right">3
13830 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74  </td><td>Link</t
13840 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
13850 68 74 22 3e 32 31 39 30 35 38 3c 2f 74 64 3e 3c  ht">219058</td><
13860 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13870 3e 31 37 38 37 33 32 3c 2f 74 64 3e 3c 74 64 20  >178732</td><td 
13880 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
13890 38 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8754</td><td ali
138a0 67 6e 3d 22 72 69 67 68 74 22 3e 31 34 38 2e 36  gn="right">148.6
138b0 35 36 30 38 39 3c 2f 74 64 3e 3c 74 64 3e 4e 55  56089</td><td>NU
138c0 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20 46  LL</td><td>VIA F
138d0 52 41 4e 43 45 53 43 4f 20 43 52 49 53 50 49 3c  RANCESCO CRISPI<
138e0 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
138f0 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
13900 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13910 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13920 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
13930 3d 22 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c  ="right">5</td><
13940 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13950 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65  >0</td><td>Route
13960 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13970 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
13980 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c  ht">178754</td><
13990 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
139a0 3e 31 38 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20  >183882</td><td 
139b0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
139c0 38 2e 32 31 36 38 33 31 3c 2f 74 64 3e 3c 74 64  8.216831</td><td
139d0 3e 42 4c 4f 42 20 73 7a 3d 34 30 30 20 47 45 4f  >BLOB sz=400 GEO
139e0 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55  METRY</td><td>NU
139f0 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  LL</td>..</tr>..
13a00 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
13a10 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
13a20 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13a30 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
13a40 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74  ign="right">6</t
13a50 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
13a60 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">1</td><td>Li
13a70 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
13a80 3d 22 72 69 67 68 74 22 3e 32 32 34 35 33 38 3c  ="right">224538<
13a90 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13aa0 69 67 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64  ight">178754</td
13ab0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13ac0 74 22 3e 31 38 31 39 37 32 3c 2f 74 64 3e 3c 74  t">181972</td><t
13ad0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13ae0 35 30 2e 39 30 30 36 36 33 3c 2f 74 64 3e 3c 74  50.900663</td><t
13af0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
13b00 49 41 20 41 4e 54 4f 4e 49 4f 20 47 55 41 44 41  IA ANTONIO GUADA
13b10 47 4e 4f 4c 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  GNOLI</td>..</tr
13b20 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
13b30 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
13b40 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
13b50 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c  <td>NULL</td>..<
13b60 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13b70 3e 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >6</td><td align
13b80 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c  ="right">2</td><
13b90 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
13ba0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
13bb0 34 35 33 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4537</td><td ali
13bc0 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39 37  gn="right">18197
13bd0 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  2</td><td align=
13be0 22 72 69 67 68 74 22 3e 31 38 32 30 30 30 3c 2f  "right">182000</
13bf0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
13c00 67 68 74 22 3e 38 36 2e 33 30 31 30 35 31 3c 2f  ght">86.301051</
13c10 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
13c20 3c 74 64 3e 56 49 41 20 44 45 4c 20 4e 49 4e 46  <td>VIA DEL NINF
13c30 45 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  EO</td>..</tr>..
13c40 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
13c50 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
13c60 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13c70 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
13c80 69 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74  ign="right">6</t
13c90 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
13ca0 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">3</td><td>Li
13cb0 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
13cc0 3d 22 72 69 67 68 74 22 3e 32 32 35 35 32 37 3c  ="right">225527<
13cd0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13ce0 69 67 68 74 22 3e 31 38 32 30 30 30 3c 2f 74 64  ight">182000</td
13cf0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13d00 74 22 3e 31 38 33 38 38 32 3c 2f 74 64 3e 3c 74  t">183882</td><t
13d10 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13d20 35 31 2e 30 31 35 31 31 37 3c 2f 74 64 3e 3c 74  51.015117</td><t
13d30 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
13d40 49 41 20 4c 49 43 49 4f 20 4e 45 4e 43 45 54 54  IA LICIO NENCETT
13d50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  I</td>..</tr>..<
13d60 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
13d70 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13d80 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
13d90 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
13da0 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64  gn="right">6</td
13db0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13dc0 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75  t">0</td><td>Rou
13dd0 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  te</td><td>NULL<
13de0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13df0 3e 31 38 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20  >183882</td><td 
13e00 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
13e10 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8731</td><td ali
13e20 67 6e 3d 22 72 69 67 68 74 22 3e 31 35 34 2e 37  gn="right">154.7
13e30 35 30 38 33 39 3c 2f 74 64 3e 3c 74 64 3e 42 4c  50839</td><td>BL
13e40 4f 42 20 73 7a 3d 32 34 30 20 47 45 4f 4d 45 54  OB sz=240 GEOMET
13e50 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
13e60 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
13e70 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
13e80 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13e90 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13ea0 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
13eb0 3d 22 72 69 67 68 74 22 3e 37 3c 2f 74 64 3e 3c  ="right">7</td><
13ec0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13ed0 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >1</td><td>Link<
13ee0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13ef0 69 67 68 74 22 3e 32 32 35 35 32 37 3c 2f 74 64  ight">225527</td
13f00 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13f10 74 22 3e 31 38 33 38 38 32 3c 2f 74 64 3e 3c 74  t">183882</td><t
13f20 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13f30 31 38 32 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61  182000</td><td a
13f40 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 35 31 2e  lign="right">51.
13f50 30 31 35 31 31 37 3c 2f 74 64 3e 3c 74 64 3e 4e  015117</td><td>N
13f60 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
13f70 4c 49 43 49 4f 20 4e 45 4e 43 45 54 54 49 3c 2f  LICIO NENCETTI</
13f80 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
13f90 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
13fa0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
13fb0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
13fc0 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
13fd0 22 72 69 67 68 74 22 3e 37 3c 2f 74 64 3e 3c 74  "right">7</td><t
13fe0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13ff0 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f  2</td><td>Link</
14000 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
14010 67 68 74 22 3e 32 32 32 36 33 36 3c 2f 74 64 3e  ght">222636</td>
14020 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
14030 22 3e 31 38 32 30 30 30 3c 2f 74 64 3e 3c 74 64  ">182000</td><td
14040 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
14050 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c  78731</td><td al
14060 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 33 2e  ign="right">103.
14070 37 33 35 37 32 32 3c 2f 74 64 3e 3c 74 64 3e 4e  735722</td><td>N
14080 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
14090 50 49 45 54 52 4f 20 41 52 45 54 49 4e 4f 3c 2f  PIETRO ARETINO</
140a0 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61  td>..</tr>..</ta
140b0 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 4c 65 74 27  ble>..<br>..Let'
140c0 73 20 6e 6f 77 20 71 75 69 63 6b 6c 79 20 65 78  s now quickly ex
140d0 61 6d 69 6e 65 20 74 68 65 20 72 65 73 75 6c 74  amine the result
140e0 73 65 74 20 72 65 74 75 72 6e 65 64 20 62 79 20  set returned by 
140f0 61 6e 79 20 54 53 50 20 71 75 65 72 79 3a 0d 0a  any TSP query:..
14100 3c 75 6c 3e 0d 0a 3c 6c 69 3e 74 68 65 20 67 65  <ul>..<li>the ge
14110 6e 65 72 61 6c 20 6c 61 79 6f 75 74 20 69 73 20  neral layout is 
14120 6d 6f 72 65 20 6f 72 20 6c 65 73 73 20 74 68 65  more or less the
14130 20 73 61 6d 65 20 61 73 20 79 6f 75 27 76 65 20   same as you've 
14140 61 6c 72 65 61 64 79 20 73 65 65 6e 20 69 6e 20  already seen in 
14150 74 68 65 20 63 61 73 65 20 6f 66 20 3c 62 3e 53  the case of <b>S
14160 68 6f 72 74 65 73 74 50 61 74 68 3c 2f 62 3e 20  hortestPath</b> 
14170 71 75 65 72 69 65 73 2e 3c 2f 6c 69 3e 0d 0a 3c  queries.</li>..<
14180 6c 69 3e 74 68 65 20 3c 62 3e 66 69 72 73 74 20  li>the <b>first 
14190 72 6f 77 3c 2f 62 3e 20 6f 66 20 74 68 65 20 72  row</b> of the r
141a0 65 73 75 6c 74 73 65 74 20 69 73 20 73 6f 6d 65  esultset is some
141b0 77 61 79 20 65 78 63 65 70 74 69 6f 6e 61 6c 2c  way exceptional,
141c0 20 61 6e 64 20 69 73 20 74 68 65 20 75 6e 69 71   and is the uniq
141d0 75 65 20 72 6f 77 20 6f 66 20 74 68 65 20 72 65  ue row of the re
141e0 73 75 6c 74 73 65 74 20 70 72 65 73 65 6e 74 69  sultset presenti
141f0 6e 67 20 3c 62 3e 4e 4f 54 20 4e 55 4c 4c 3c 2f  ng <b>NOT NULL</
14200 62 3e 20 76 61 6c 75 65 73 20 69 6e 20 74 68 65  b> values in the
14210 20 3c 62 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 62   <b>Algorithm</b
14220 3e 2c 20 3c 62 3e 52 65 71 75 65 73 74 3c 2f 62  >, <b>Request</b
14230 3e 2c 20 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62  >, <b>Options</b
14240 3e 20 61 6e 64 20 3c 62 3e 44 65 6c 69 6d 69 74  > and <b>Delimit
14250 65 72 3c 2f 62 3e 20 63 6f 6c 75 6d 6e 73 2e 3c  er</b> columns.<
14260 62 72 3e 0d 0a 49 74 20 63 6f 6e 74 61 69 6e 73  br>..It contains
14270 20 74 68 65 20 3c 62 3e 54 53 50 20 73 6f 6c 75   the <b>TSP solu
14280 74 69 6f 6e 3c 2f 62 3e 20 61 73 20 61 20 77 68  tion</b> as a wh
14290 6f 6c 65 3a 20 63 6f 6c 75 6d 6e 20 3c 62 3e 43  ole: column <b>C
142a0 6f 73 74 3c 2f 62 3e 20 69 73 20 74 68 65 20 3c  ost</b> is the <
142b0 75 3e 74 6f 74 61 6c 20 63 6f 73 74 3c 2f 75 3e  u>total cost</u>
142c0 20 61 6e 64 20 63 6f 6c 75 6d 6e 20 3c 62 3e 47   and column <b>G
142d0 65 6f 6d 65 74 72 79 3c 2f 62 3e 20 69 73 20 74  eometry</b> is t
142e0 68 65 20 3c 75 3e 6f 76 65 72 61 6c 6c 20 73 6f  he <u>overall so
142f0 6c 75 74 69 6f 6e 20 70 61 74 68 3c 2f 75 3e 2e  lution path</u>.
14300 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 63 6f 6c 75 6d  </li>..<li>colum
14310 6e 73 20 3c 62 3e 52 6f 75 74 65 49 64 3c 2f 62  ns <b>RouteId</b
14320 3e 20 61 6e 64 20 3c 62 3e 52 6f 75 74 65 52 6f  > and <b>RouteRo
14330 77 3c 2f 62 3e 20 68 61 76 65 20 74 68 65 20 73  w</b> have the s
14340 61 6d 65 20 69 6e 74 65 72 70 72 65 74 61 74 69  ame interpretati
14350 6f 6e 20 61 73 20 69 6e 20 3c 62 3e 6d 75 6c 74  on as in <b>mult
14360 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e 20 53 68  i-destination Sh
14370 6f 72 74 65 73 74 50 61 74 68 3c 2f 62 3e 20 71  ortestPath</b> q
14380 75 65 72 69 65 73 2c 20 62 75 74 20 69 6e 20 74  ueries, but in t
14390 68 69 73 20 73 70 65 63 69 66 69 63 20 63 61 73  his specific cas
143a0 65 20 65 61 63 68 20 3c 75 3e 3c 69 3e 72 6f 75  e each <u><i>rou
143b0 74 65 3c 2f 69 3e 3c 2f 75 3e 20 63 6f 72 72 65  te</i></u> corre
143c0 73 70 6f 6e 64 73 20 74 6f 20 61 20 63 6f 6e 6e  sponds to a conn
143d0 65 63 74 69 6f 6e 20 62 65 74 77 65 65 6e 20 74  ection between t
143e0 77 6f 20 3c 69 3e 3c 75 3e 63 69 74 69 65 73 3c  wo <i><u>cities<
143f0 2f 75 3e 3c 2f 69 3e 2e 3c 62 72 3e 0d 0a 41 6c  /u></i>.<br>..Al
14400 6c 20 3c 69 3e 3c 75 3e 72 6f 75 74 65 73 3c 2f  l <i><u>routes</
14410 75 3e 3c 2f 69 3e 20 61 72 65 20 6f 72 64 65 72  u></i> are order
14420 20 61 63 63 6f 72 64 69 6e 67 6c 79 20 74 6f 20   accordingly to 
14430 74 68 65 20 72 75 6e 6e 69 6e 67 20 73 65 71 75  the running sequ
14440 65 6e 63 65 20 6f 66 20 74 68 65 20 54 53 50 20  ence of the TSP 
14450 73 6f 6c 75 74 69 6f 6e 2e 20 3c 62 3e 52 6f 75  solution. <b>Rou
14460 74 65 49 64 3d 30 3c 2f 62 3e 20 69 64 65 6e 74  teId=0</b> ident
14470 69 66 69 65 73 20 74 68 65 20 6f 76 65 72 61 6c  ifies the overal
14480 6c 20 54 53 50 20 73 6f 6c 75 74 69 6f 6e 2e 3c  l TSP solution.<
14490 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 62 72 3e 3c  /li>..</ul><br><
144a0 62 72 3e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  br>..<verbatim>.
144b0 0a 55 50 44 41 54 45 20 62 79 66 6f 6f 74 20 53  .UPDATE byfoot S
144c0 45 54 20 52 65 71 75 65 73 74 20 3d 20 27 54 53  ET Request = 'TS
144d0 50 20 47 41 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54  P GA';....SELECT
144e0 20 41 6c 67 6f 72 69 74 68 6d 2c 20 52 65 71 75   Algorithm, Requ
144f0 65 73 74 2c 20 4f 70 74 69 6f 6e 73 2c 20 44 65  est, Options, De
14500 6c 69 6d 69 74 65 72 2c 20 52 6f 75 74 65 49 64  limiter, RouteId
14510 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65  , RouteRow, Role
14520 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64  , LinkRowid, Nod
14530 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43  eFrom, NodeTo, C
14540 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e  ost, Geometry, N
14550 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74  ame..FROM byfoot
14560 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d  ..WHERE NodeFrom
14570 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e 6f   = 178731 AND No
14580 64 65 54 6f 20 3d 20 27 31 38 33 32 38 36 2c 31  deTo = '183286,1
14590 38 31 39 39 39 2c 31 38 34 30 33 30 2c 31 38 33  81999,184030,183
145a0 38 38 32 2c 31 37 38 37 35 34 27 3b 0d 0a 3c 2f  882,178754';..</
145b0 76 65 72 62 61 74 69 6d 3e 0d 0a 49 66 20 79 6f  verbatim>..If yo
145c0 75 20 77 68 69 73 68 20 74 6f 20 67 65 74 20 61  u whish to get a
145d0 20 3c 62 3e 54 53 50 20 47 41 3c 2f 62 3e 20 73   <b>TSP GA</b> s
145e0 6f 6c 75 74 69 6f 6e 20 79 6f 75 20 73 69 6d 70  olution you simp
145f0 6c 65 20 68 61 76 65 20 74 6f 20 73 65 74 20 3c  le have to set <
14600 62 3e 52 65 71 75 65 73 74 3c 2f 62 3e 20 61 73  b>Request</b> as
14610 20 3c 62 3e 54 53 50 20 47 41 3c 2f 62 3e 3b 20   <b>TSP GA</b>; 
14620 61 6e 64 20 79 6f 75 20 63 61 6e 20 73 65 74 20  and you can set 
14630 61 67 61 69 6e 20 3c 62 3e 52 65 71 75 65 73 74  again <b>Request
14640 3c 2f 62 3e 20 61 73 20 3c 62 3e 54 53 50 3c 2f  </b> as <b>TSP</
14650 62 3e 20 6f 72 20 3c 62 3e 54 53 50 20 4e 4e 3c  b> or <b>TSP NN<
14660 2f 62 3e 20 74 6f 20 72 65 76 65 72 74 20 62 61  /b> to revert ba
14670 63 6b 20 74 6f 20 74 68 65 20 73 69 6d 70 6c 65  ck to the simple
14680 72 20 2f 20 66 61 73 74 65 72 20 61 6c 67 6f 72  r / faster algor
14690 69 74 68 6d 2e 0d 0a 3c 62 72 3e 0d 0a 41 6c 73  ithm...<br>..Als
146a0 6f 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66  o in the case of
146b0 20 54 53 50 20 79 6f 75 20 63 61 6e 20 65 76 65   TSP you can eve
146c0 6e 74 75 61 6c 6c 79 20 61 63 74 69 76 61 74 65  ntually activate
146d0 20 74 68 65 20 75 73 75 61 6c 20 3c 62 3e 4f 70   the usual <b>Op
146e0 74 69 6f 6e 73 3c 2f 62 3e 20 61 6c 72 65 61 64  tions</b> alread
146f0 79 20 65 78 70 6c 61 69 6e 65 64 20 69 6e 20 74  y explained in t
14700 68 65 20 53 68 6f 72 74 65 73 74 50 61 74 68 20  he ShortestPath 
14710 65 78 61 6d 70 6c 65 73 2e 0d 0a 3c 76 65 72 62  examples...<verb
14720 61 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79  atim>..UPDATE by
14730 66 6f 6f 74 20 53 45 54 20 52 65 71 75 65 73 74  foot SET Request
14740 20 3d 20 27 54 53 50 27 2c 20 4f 70 74 69 6f 6e   = 'TSP', Option
14750 73 20 3d 20 27 4e 4f 20 4c 49 4e 4b 53 27 3b 0d  s = 'NO LINKS';.
14760 0a 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f 72 69  ...SELECT Algori
14770 74 68 6d 2c 20 52 65 71 75 65 73 74 2c 20 4f 70  thm, Request, Op
14780 74 69 6f 6e 73 2c 20 44 65 6c 69 6d 69 74 65 72  tions, Delimiter
14790 2c 20 52 6f 75 74 65 49 64 2c 20 52 6f 75 74 65  , RouteId, Route
147a0 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52  Row, Role, LinkR
147b0 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20  owid, NodeFrom, 
147c0 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65  NodeTo, Cost, Ge
147d0 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52  ometry, Name..FR
147e0 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45 52 45  OM byfoot..WHERE
147f0 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37 38 37   NodeFrom = 1787
14800 33 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20 3d 20  31 AND NodeTo = 
14810 27 31 38 33 32 38 36 2c 31 38 31 39 39 39 2c 31  '183286,181999,1
14820 38 34 30 33 30 2c 31 38 33 38 38 32 2c 31 37 38  84030,183882,178
14830 37 35 34 27 3b 0d 0a 3c 2f 76 65 72 62 61 74 69  754';..</verbati
14840 6d 3e 0d 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e  m>..The followin
14850 67 20 74 61 62 6c 65 20 73 68 6f 77 73 20 74 68  g table shows th
14860 65 20 72 65 73 75 6c 74 73 65 74 20 72 65 74 75  e resultset retu
14870 72 6e 65 64 20 62 79 20 74 68 65 20 73 61 6d 65  rned by the same
14880 20 54 53 50 20 71 75 65 72 79 20 75 73 65 64 20   TSP query used 
14890 69 6e 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  in the previous 
148a0 65 78 61 6d 70 6c 65 20 61 66 74 65 72 20 65 6e  example after en
148b0 61 62 6c 69 6e 67 20 74 68 65 20 3c 62 3e 4e 4f  abling the <b>NO
148c0 20 4c 49 4e 4b 53 3c 2f 62 3e 20 6f 70 74 69 6f   LINKS</b> optio
148d0 6e 2e 20 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 74 61  n. <br><br>..<ta
148e0 62 6c 65 20 62 6f 72 64 65 72 3d 22 31 22 20 62  ble border="1" b
148f0 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66 63 66 22  gcolor="#ffffcf"
14900 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d 22 34 22   cellspacing="4"
14910 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22   cellpadding="6"
14920 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67 63 6f 6c  >..<tr><th bgcol
14930 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 41 6c 67  or="#d0d0a0">Alg
14940 6f 72 69 74 68 6d 3c 2f 74 68 3e 3c 74 68 20 62  orithm</th><th b
14950 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
14960 3e 52 65 71 75 65 73 74 3c 2f 74 68 3e 3c 74 68  >Request</th><th
14970 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61   bgcolor="#d0d0a
14980 30 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74 68 3e 3c  0">Options</th><
14990 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
149a0 30 61 30 22 3e 44 65 6c 69 6d 69 74 65 72 3c 2f  0a0">Delimiter</
149b0 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22  th><th bgcolor="
149c0 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65 49 64  #d0d0a0">RouteId
149d0 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
149e0 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74 65  ="#d0d0a0">Route
149f0 52 6f 77 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  Row</th><th bgco
14a00 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f  lor="#d0d0a0">Ro
14a10 6c 65 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c  le</th><th bgcol
14a20 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4c 69 6e  or="#d0d0a0">Lin
14a30 6b 52 6f 77 69 64 3c 2f 74 68 3e 3c 74 68 20 62  kRowid</th><th b
14a40 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
14a50 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68 3e 3c 74  >NodeFrom</th><t
14a60 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
14a70 61 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74 68 3e 3c  a0">NodeTo</th><
14a80 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
14a90 30 61 30 22 3e 43 6f 73 74 3c 2f 74 68 3e 3c 74  0a0">Cost</th><t
14aa0 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
14ab0 61 30 22 3e 47 65 6f 6d 65 74 72 79 3c 2f 74 68  a0">Geometry</th
14ac0 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
14ad0 30 64 30 61 30 22 3e 4e 61 6d 65 3c 2f 74 68 3e  0d0a0">Name</th>
14ae0 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
14af0 3e 44 69 6a 6b 73 74 72 61 3c 2f 74 64 3e 3c 74  >Dijkstra</td><t
14b00 64 3e 54 53 50 20 4e 4e 3c 2f 74 64 3e 3c 74 64  d>TSP NN</td><td
14b10 3e 4e 6f 20 4c 69 6e 6b 73 3c 2f 74 64 3e 3c 74  >No Links</td><t
14b20 64 3e 2c 20 26 23 39 31 3b 64 65 63 3d 34 34 2c  d>, &#91;dec=44,
14b30 20 68 65 78 3d 32 63 26 23 39 33 3b 3c 2f 74 64   hex=2c&#93;</td
14b40 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14b50 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">0</td><td ali
14b60 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
14b70 3e 3c 74 64 3e 54 53 50 20 53 6f 6c 75 74 69 6f  ><td>TSP Solutio
14b80 6e 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  n</td><td>NULL</
14b90 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
14ba0 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
14bb0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
14bc0 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64  ">178731</td><td
14bd0 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
14be0 32 35 34 2e 34 33 33 39 33 33 3c 2f 74 64 3e 3c  254.433933</td><
14bf0 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 30 30 30 20  td>BLOB sz=2000 
14c00 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64  GEOMETRY</td><td
14c10 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  >NULL</td>..</tr
14c20 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
14c30 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
14c40 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
14c50 3c 74 64 3e 4e 55 4c 4c 3c 74 64 20 61 6c 69 67  <td>NULL<td alig
14c60 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e  n="right">1</td>
14c70 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
14c80 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74  ">0</td><td>Rout
14c90 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  e</td><td>NULL</
14ca0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
14cb0 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e  ght">178731</td>
14cc0 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
14cd0 22 3e 31 38 34 30 33 30 3c 2f 74 64 3e 3c 74 64  ">184030</td><td
14ce0 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
14cf0 37 36 2e 33 36 34 37 35 35 3c 2f 74 64 3e 3c 74  76.364755</td><t
14d00 64 3e 42 4c 4f 42 20 73 7a 3d 33 30 34 20 47 45  d>BLOB sz=304 GE
14d10 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e  OMETRY</td><td>N
14d20 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ULL</td>..</tr>.
14d30 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
14d40 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
14d50 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
14d60 64 3e 4e 55 4c 4c 3c 74 64 20 61 6c 69 67 6e 3d  d>NULL<td align=
14d70 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74  "right">2</td><t
14d80 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14d90 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c  0</td><td>Route<
14da0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
14db0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14dc0 74 22 3e 31 38 34 30 33 30 3c 2f 74 64 3e 3c 74  t">184030</td><t
14dd0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14de0 31 38 31 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61  181999</td><td a
14df0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 33 39  lign="right">139
14e00 2e 31 31 34 39 33 38 3c 2f 74 64 3e 3c 74 64 3e  .114938</td><td>
14e10 42 4c 4f 42 20 73 7a 3d 34 39 36 20 47 45 4f 4d  BLOB sz=496 GEOM
14e20 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  ETRY</td><td>NUL
14e30 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  L</td>..</tr>..<
14e40 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
14e50 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
14e60 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
14e70 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
14e80 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74 64  gn="right">3</td
14e90 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14ea0 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75  t">0</td><td>Rou
14eb0 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  te</td><td>NULL<
14ec0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14ed0 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f 74 64  ight">181999</td
14ee0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
14ef0 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74  t">183286</td><t
14f00 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14f10 32 31 37 2e 36 37 32 38 38 35 3c 2f 74 64 3e 3c  217.672885</td><
14f20 74 64 3e 42 4c 4f 42 20 73 7a 3d 36 38 38 20 47  td>BLOB sz=688 G
14f30 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e  EOMETRY</td><td>
14f40 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  NULL</td>..</tr>
14f50 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
14f60 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
14f70 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
14f80 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
14f90 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c  align="right">4<
14fa0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14fb0 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
14fc0 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
14fd0 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
14fe0 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c  ="right">183286<
14ff0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
15000 69 67 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64  ight">178754</td
15010 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
15020 74 22 3e 33 37 38 2e 33 31 33 36 38 34 3c 2f 74  t">378.313684</t
15030 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 37  d><td>BLOB sz=27
15040 32 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  2 GEOMETRY</td><
15050 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
15060 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
15070 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
15080 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
15090 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
150a0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
150b0 3e 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >5</td><td align
150c0 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c  ="right">0</td><
150d0 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64  td>Route</td><td
150e0 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
150f0 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
15100 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  54</td><td align
15110 3d 22 72 69 67 68 74 22 3e 31 38 33 38 38 32 3c  ="right">183882<
15120 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
15130 69 67 68 74 22 3e 31 38 38 2e 32 31 36 38 33 31  ight">188.216831
15140 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a  </td><td>BLOB sz
15150 3d 34 30 30 20 47 45 4f 4d 45 54 52 59 3c 2f 74  =400 GEOMETRY</t
15160 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d  d><td>NULL</td>.
15170 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
15180 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
15190 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
151a0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
151b0 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
151c0 68 74 22 3e 36 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">6</td><td al
151d0 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74  ign="right">0</t
151e0 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e  d><td>Route</td>
151f0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
15200 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31   align="right">1
15210 38 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20 61 6c  83882</td><td al
15220 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
15230 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
15240 3d 22 72 69 67 68 74 22 3e 31 35 34 2e 37 35 30  ="right">154.750
15250 38 33 39 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42  839</td><td>BLOB
15260 20 73 7a 3d 32 34 30 20 47 45 4f 4d 45 54 52 59   sz=240 GEOMETRY
15270 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
15280 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62  d>..</tr>..</tab
15290 6c 65 3e 0d 0a 3c 62 72 3e 3c 62 72 3e 3c 62 72  le>..<br><br><br
152a0 3e 0d 0a 54 68 65 20 6d 61 70 20 62 65 6c 6f 77  >..The map below
152b0 20 67 72 61 70 68 69 63 61 6c 6c 79 20 73 68 6f   graphically sho
152c0 77 73 20 74 68 65 20 70 72 65 76 69 6f 75 73 20  ws the previous 
152d0 3c 62 3e 54 53 50 3c 2f 62 3e 20 71 75 65 72 69  <b>TSP</b> queri
152e0 65 73 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a 3c  es...<br><br>..<
152f0 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f  img src="https:/
15300 2f 77 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74  /www.gaia-gis.it
15310 2f 67 61 69 61 2d 73 69 6e 73 2f 72 6f 75 74 69  /gaia-sins/routi
15320 6e 67 2d 66 69 67 73 2f 74 73 70 31 2e 6a 70 67  ng-figs/tsp1.jpg
15330 22 20 61 6c 74 3d 22 66 69 67 34 22 3e 0d 0a 3c  " alt="fig4">..<
15340 75 6c 3e 0d 0a 3c 6c 69 3e 52 65 64 20 73 74 61  ul>..<li>Red sta
15350 72 3a 20 74 68 65 20 3c 75 3e 3c 69 3e 62 61 73  r: the <u><i>bas
15360 65 2d 63 69 74 79 3c 2f 69 3e 3c 2f 75 3e 20 28  e-city</i></u> (
15370 66 72 6f 6d 20 77 68 65 72 65 20 74 68 65 20 3c  from where the <
15380 75 3e 3c 69 3e 73 61 6c 65 73 6d 61 6e 3c 2f 69  u><i>salesman</i
15390 3e 3c 2f 75 3e 29 20 62 65 67 69 6e 73 20 68 69  ></u>) begins hi
153a0 73 2f 68 65 72 20 74 72 69 70 2e 3c 2f 6c 69 3e  s/her trip.</li>
153b0 0d 0a 3c 6c 69 3e 47 72 65 65 6e 20 64 6f 74 73  ..<li>Green dots
153c0 3a 20 74 68 65 20 3c 75 3e 3c 69 3e 63 69 74 69  : the <u><i>citi
153d0 65 73 3c 2f 69 3e 3c 2f 75 3e 20 74 6f 20 62 65  es</i></u> to be
153e0 20 76 69 73 69 74 65 64 2e 3c 2f 6c 69 3e 0d 0a   visited.</li>..
153f0 3c 6c 69 3e 59 65 6c 6c 6f 77 20 6c 69 6e 65 3a  <li>Yellow line:
15400 20 74 68 65 20 54 53 50 20 73 6f 6c 75 74 69 6f   the TSP solutio
15410 6e 20 28 74 68 61 74 20 69 73 20 61 6c 77 61 79  n (that is alway
15420 73 20 61 20 63 69 72 63 75 6c 61 72 20 70 61 74  s a circular pat
15430 68 29 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c  h).</li>..</ul><
15440 62 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 67 63 6f  br>..<table bgco
15450 6c 6f 72 3d 22 23 66 66 62 30 36 30 22 20 63 65  lor="#ffb060" ce
15460 6c 6c 73 70 61 63 69 6e 67 3d 22 31 30 22 20 63  llspacing="10" c
15470 65 6c 6c 70 61 64 64 69 6e 67 3d 22 36 22 3e 3c  ellpadding="6"><
15480 74 72 3e 3c 74 64 3e 0d 0a 3c 68 33 3e 57 61 72  tr><td>..<h3>War
15490 6e 69 6e 67 3a 20 68 6f 77 20 74 6f 20 63 6f 72  ning: how to cor
154a0 72 65 63 74 6c 79 20 68 61 6e 64 6c 69 6e 67 20  rectly handling 
154b0 54 53 50 20 72 65 73 75 6c 74 73 65 74 73 20 77  TSP resultsets w
154c0 69 74 68 20 73 70 61 74 69 61 6c 69 74 65 5f 67  ith spatialite_g
154d0 75 69 3c 2f 68 33 3e 0d 0a 59 6f 75 20 73 68 6f  ui</h3>..You sho
154e0 75 6c 64 20 6e 65 76 65 72 20 66 6f 72 67 65 74  uld never forget
154f0 20 6f 72 20 6f 76 65 72 6c 6f 6f 6b 20 74 68 61   or overlook tha
15500 74 20 62 6f 74 68 20 3c 62 3e 54 53 50 20 4e 4e  t both <b>TSP NN
15510 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 54 53 50 20  </b> and <b>TSP 
15520 47 41 3c 2f 62 3e 20 61 72 65 20 3c 75 3e 3c 69  GA</b> are <u><i
15530 3e 68 65 75 72 69 73 74 69 63 20 61 6c 67 6f 72  >heuristic algor
15540 69 74 68 6d 73 3c 2f 69 3e 3c 2f 75 3e 20 68 65  ithms</i></u> he
15550 61 76 69 6c 79 20 72 65 6c 79 69 6e 67 20 6f 6e  avily relying on
15560 20 3c 75 3e 3c 69 3e 72 61 6e 64 6f 6d 3c 69 3e   <u><i>random<i>
15570 3c 2f 75 3e 20 63 68 6f 69 63 65 73 2e 3c 62 72  </u> choices.<br
15580 3e 0d 0a 54 68 69 73 20 63 6f 75 6c 64 20 65 61  >..This could ea
15590 73 69 6c 79 20 68 61 76 65 20 74 68 65 20 70 72  sily have the pr
155a0 61 63 74 69 63 61 6c 20 63 6f 6e 73 65 71 75 65  actical conseque
155b0 6e 63 65 20 74 68 61 74 20 72 65 73 6f 6c 76 69  nce that resolvi
155c0 6e 67 20 74 77 69 63 65 20 28 6f 72 20 65 76 65  ng twice (or eve
155d0 6e 20 6d 6f 72 65 20 74 69 6d 65 73 29 20 74 68  n more times) th
155e0 65 20 73 61 6d 65 20 69 64 65 6e 74 69 63 61 6c  e same identical
155f0 20 54 53 50 20 71 75 65 72 79 20 63 6f 75 6c 64   TSP query could
15600 20 65 76 65 6e 74 75 61 6c 6c 79 20 72 65 74 75   eventually retu
15610 72 6e 20 64 69 66 66 65 72 65 6e 74 20 72 65 73  rn different res
15620 75 6c 74 73 65 74 73 2e 3c 62 72 3e 0d 0a 54 68  ultsets.<br>..Th
15630 65 72 65 20 69 73 20 6e 6f 74 68 69 6e 67 20 69  ere is nothing i
15640 6e 74 72 69 6e 73 69 63 61 6c 6c 79 20 77 72 6f  ntrinsically wro
15650 6e 67 20 69 6e 20 74 68 69 73 2c 20 69 74 20 73  ng in this, it s
15660 69 6d 70 6c 79 20 69 73 20 61 20 64 69 72 65 63  imply is a direc
15670 74 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f 66  t consequence of
15680 20 75 73 69 6e 67 20 3c 75 3e 3c 69 3e 72 61 6e   using <u><i>ran
15690 64 6f 6d 6e 65 73 73 3c 2f 69 3e 3c 2f 75 3e 3b  domness</i></u>;
156a0 20 77 65 20 61 72 65 20 73 69 6d 70 6c 79 20 62   we are simply b
156b0 61 72 67 61 69 6e 69 6e 67 20 3c 62 3e 65 78 61  argaining <b>exa
156c0 63 74 6e 65 73 73 3c 2f 62 3e 20 61 6e 64 20 3c  ctness</b> and <
156d0 62 3e 72 65 70 72 6f 64 75 63 69 62 69 6c 69 74  b>reproducibilit
156e0 3c 2f 62 3e 20 66 6f 72 20 3c 62 3e 71 75 69 63  </b> for <b>quic
156f0 6b 6e 65 73 73 3c 2f 62 3e 2e 3c 62 72 3e 3c 62  kness</b>.<br><b
15700 72 3e 0d 0a 3c 62 3e 73 70 61 74 69 61 6c 69 74  r>..<b>spatialit
15710 65 5f 67 75 69 3c 2f 62 3e 20 6f 6e 20 69 74 73  e_gui</b> on its
15720 20 6f 77 6e 20 61 64 6f 70 74 73 20 61 20 3c 62   own adopts a <b
15730 3e 70 61 67 65 64 20 73 74 72 61 74 65 67 79 3c  >paged strategy<
15740 2f 62 3e 20 77 68 65 6e 20 73 68 6f 77 69 6e 67  /b> when showing
15750 20 68 75 67 65 20 72 65 73 75 6c 74 73 65 74 73   huge resultsets
15760 2c 20 74 68 61 74 20 72 65 71 75 69 72 65 73 20  , that requires 
15770 74 6f 20 72 65 70 65 61 74 20 61 67 61 69 6e 20  to repeat again 
15780 74 68 65 20 69 6e 69 74 69 61 6c 20 53 51 4c 20  the initial SQL 
15790 71 75 65 72 79 20 65 61 63 68 20 74 69 6d 65 20  query each time 
157a0 74 68 61 74 20 61 20 3c 62 3e 6e 65 77 20 70 61  that a <b>new pa
157b0 67 65 20 6f 66 20 35 30 30 20 72 6f 77 73 3c 2f  ge of 500 rows</
157c0 62 3e 20 68 61 73 20 74 6f 20 62 65 20 73 68 6f  b> has to be sho
157d0 77 6e 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e  wn on the curren
157e0 74 20 77 69 6e 64 6f 77 20 70 61 6e 65 6c 2e 3c  t window panel.<
157f0 62 72 3e 0d 0a 54 68 65 20 74 77 6f 20 74 68 69  br>..The two thi
15800 6e 67 73 20 64 6f 6e 27 74 20 67 6f 20 74 6f 67  ngs don't go tog
15810 65 74 68 65 72 20 77 65 6c 6c 3b 20 73 6f 20 64  ether well; so d
15820 6f 6e 27 74 20 62 65 20 73 75 72 70 72 69 73 65  on't be surprise
15830 64 20 77 68 65 6e 20 65 76 65 6e 74 75 61 6c 6c  d when eventuall
15840 79 20 64 69 73 63 6f 76 65 72 69 6e 67 20 74 68  y discovering th
15850 61 74 20 3c 62 3e 73 70 61 74 69 61 6c 69 74 65  at <b>spatialite
15860 5f 67 75 69 3c 2f 62 3e 20 77 69 6c 6c 20 62 65  _gui</b> will be
15870 68 61 76 65 20 62 69 7a 7a 61 72 65 6c 79 20 77  have bizzarely w
15880 68 69 6c 65 20 70 72 65 73 65 6e 74 69 6e 67 20  hile presenting 
15890 73 6f 6d 65 20 72 65 73 75 6c 74 73 65 74 20 72  some resultset r
158a0 65 74 75 72 6e 65 64 20 62 79 20 61 20 54 53 50  eturned by a TSP
158b0 20 71 75 65 72 79 2e 20 0d 0a 3c 76 65 72 62 61   query. ..<verba
158c0 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20 62 79 66  tim>..UPDATE byf
158d0 6f 6f 74 20 53 45 54 20 52 65 71 75 65 73 74 20  oot SET Request 
158e0 3d 20 27 54 53 50 27 3b 0d 0a 0d 0a 43 52 45 41  = 'TSP';....CREA
158f0 54 45 20 54 41 42 4c 45 20 6d 79 5f 74 73 70 5f  TE TABLE my_tsp_
15900 73 6f 6c 75 74 69 6f 6e 20 41 53 0d 0a 53 45 4c  solution AS..SEL
15910 45 43 54 20 41 6c 67 6f 72 69 74 68 6d 2c 20 52  ECT Algorithm, R
15920 65 71 75 65 73 74 2c 20 4f 70 74 69 6f 6e 73 2c  equest, Options,
15930 20 44 65 6c 69 6d 69 74 65 72 2c 20 52 6f 75 74   Delimiter, Rout
15940 65 49 64 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52  eId, RouteRow, R
15950 6f 6c 65 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20  ole, LinkRowid, 
15960 4e 6f 64 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f  NodeFrom, NodeTo
15970 2c 20 43 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79  , Cost, Geometry
15980 2c 20 4e 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66  , Name..FROM byf
15990 6f 6f 74 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46  oot..WHERE NodeF
159a0 72 6f 6d 20 3d 20 31 37 38 37 33 31 20 41 4e 44  rom = 178731 AND
159b0 20 4e 6f 64 65 54 6f 20 3d 20 27 31 38 33 32 38   NodeTo = '18328
159c0 36 2c 31 38 31 39 39 39 2c 31 38 34 30 33 30 2c  6,181999,184030,
159d0 31 38 33 38 38 32 2c 31 37 38 37 35 34 27 3b 0d  183882,178754';.
159e0 0a 0d 0a 2e 2e 2e 20 20 3c 6e 6f 77 20 71 75 65  ......  <now que
159f0 72 79 20 22 6d 79 5f 74 73 70 5f 73 6f 6c 75 74  ry "my_tsp_solut
15a00 69 6f 6e 22 20 75 73 69 6e 67 20 73 70 61 74 69  ion" using spati
15a10 61 6c 69 74 65 5f 67 75 69 3e 20 20 2e 2e 2e 0d  alite_gui>  ....
15a20 0a 0d 0a 44 52 4f 50 20 54 41 42 4c 45 20 6d 79  ...DROP TABLE my
15a30 5f 74 73 70 5f 73 6f 6c 75 74 69 6f 6e 3b 0d 0a  _tsp_solution;..
15a40 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 3c 75 3e  </verbatim>..<u>
15a50 48 69 6e 74 3c 2f 75 3e 3a 20 72 65 73 6f 6c 76  Hint</u>: resolv
15a60 69 6e 67 20 74 68 69 73 20 70 75 7a 7a 6c 69 6e  ing this puzzlin
15a70 67 20 69 73 73 75 65 20 69 73 20 68 6f 77 65 76  g issue is howev
15a80 65 72 20 62 61 73 69 63 61 6c 6c 79 20 73 69 6d  er basically sim
15a90 70 6c 65 3a 0d 0a 3c 6f 6c 3e 0d 0a 3c 6c 69 3e  ple:..<ol>..<li>
15aa0 79 6f 75 20 73 69 6d 70 6c 79 20 68 61 76 65 20  you simply have 
15ab0 74 6f 20 74 61 6b 65 20 61 20 3c 62 3e 73 74 61  to take a <b>sta
15ac0 74 69 63 20 73 6e 61 70 73 68 6f 74 3c 2f 62 3e  tic snapshot</b>
15ad0 20 6f 66 20 79 6f 75 72 20 54 53 50 20 72 65 73   of your TSP res
15ae0 75 6c 74 73 65 74 20 62 79 20 75 73 69 6e 67 20  ultset by using 
15af0 74 68 65 20 3c 62 3e 43 52 45 41 54 45 20 54 41  the <b>CREATE TA
15b00 42 4c 45 20 3c 69 3e 6e 61 6d 65 3c 2f 69 3e 20  BLE <i>name</i> 
15b10 41 53 3c 2f 62 3e 20 73 74 61 74 65 6d 65 6e 74  AS</b> statement
15b20 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 6e  .</li>..<li>then
15b30 20 79 6f 75 20 63 61 6e 20 66 72 65 65 6c 79 20   you can freely 
15b40 65 78 61 6d 69 6e 65 20 74 68 65 20 61 62 6f 76  examine the abov
15b50 65 20 73 6e 61 70 73 68 6f 74 2e 3c 2f 6c 69 3e  e snapshot.</li>
15b60 0d 0a 3c 6c 69 3e 61 6e 64 20 66 69 6e 61 6c 6c  ..<li>and finall
15b70 79 20 79 6f 75 20 63 61 6e 20 64 75 6c 79 20 3c  y you can duly <
15b80 62 3e 44 52 4f 50 3c 2f 62 3e 20 74 68 65 20 73  b>DROP</b> the s
15b90 6e 61 70 73 68 6f 74 20 6f 6e 63 65 20 69 74 27  napshot once it'
15ba0 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 75 73 65 66  s no longer usef
15bb0 75 6c 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d  ul.</li>..</ol>.
15bc0 0a 3c 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74  .</td></tr>..</t
15bd0 61 62 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61  able>..<br>..<ta
15be0 62 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30  ble bgcolor="#c0
15bf0 66 66 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e  ffc0" cellspacin
15c00 67 3d 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69  g="10" cellpaddi
15c10 6e 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d  ng="6"><tr><td>.
15c20 0a 3c 68 33 3e 4d 6f 72 65 20 61 62 6f 75 74 20  .<h3>More about 
15c30 4c 69 6e 65 61 72 20 52 65 66 65 72 65 6e 63 69  Linear Referenci
15c40 6e 67 20 61 6e 64 20 56 69 72 74 75 61 6c 52 6f  ng and VirtualRo
15c50 75 74 69 6e 67 20 4c 69 6e 65 73 74 72 69 6e 67  uting Linestring
15c60 73 3c 2f 68 33 3e 20 0d 0a 59 6f 75 20 68 61 76  s</h3> ..You hav
15c70 65 20 61 6c 72 65 61 64 79 20 73 65 65 6e 20 69  e already seen i
15c80 6e 20 61 20 70 72 65 76 69 6f 75 73 20 65 78 61  n a previous exa
15c90 6d 70 6c 65 20 74 68 61 74 20 61 6c 6c 20 4c 49  mple that all LI
15ca0 4e 45 53 54 52 49 4e 47 73 20 63 72 65 61 74 65  NESTRINGs create
15cb0 64 20 62 79 20 56 69 72 74 75 61 6c 52 6f 75 74  d by VirtualRout
15cc0 69 6e 67 20 73 75 70 70 6f 72 74 20 74 68 65 20  ing support the 
15cd0 3c 62 3e 4d 3c 2f 62 3e 20 28 3c 62 3e 3c 69 3e  <b>M</b> (<b><i>
15ce0 6d 65 61 73 75 72 65 3c 2f 69 3e 3c 2f 62 3e 29  measure</i></b>)
15cf0 20 63 6f 6f 72 64 69 6e 61 74 65 20 69 6e 74 65   coordinate inte
15d00 6e 64 65 64 20 61 73 20 61 20 3c 62 3e 70 72 6f  nded as a <b>pro
15d10 67 72 65 73 73 69 76 65 20 63 6f 73 74 3c 2f 62  gressive cost</b
15d20 3e 20 66 6f 72 20 65 61 63 68 20 76 65 72 74 65  > for each verte
15d30 78 2e 20 41 6e 64 20 79 6f 75 20 61 6c 72 65 61  x. And you alrea
15d40 64 79 20 6b 6e 6f 77 20 74 68 65 20 74 68 65 79  dy know the they
15d50 20 63 61 6e 20 73 75 70 70 6f 72 74 20 3c 62 3e   can support <b>
15d60 3c 69 3e 6c 69 6e 65 61 72 20 72 65 66 65 72 65  <i>linear refere
15d70 6e 63 69 6e 67 3c 2f 69 3e 3c 2f 62 3e 20 28 3c  ncing</i></b> (<
15d80 62 3e 4c 52 3c 2f 62 3e 29 20 53 51 4c 20 66 75  b>LR</b>) SQL fu
15d90 6e 63 74 69 6f 6e 73 2e 3c 62 72 3e 0d 0a 4c 65  nctions.<br>..Le
15da0 74 27 73 20 6e 6f 77 20 67 6f 20 69 6e 20 66 75  t's now go in fu
15db0 72 74 68 65 72 20 64 65 70 74 68 2e 0d 0a 3c 68  rther depth...<h
15dc0 33 3e 54 72 61 6a 65 63 74 6f 72 79 20 6f 62 6a  3>Trajectory obj
15dd0 65 63 74 73 3c 2f 68 33 3e 0d 0a 41 20 3c 62 3e  ects</h3>..A <b>
15de0 54 72 61 6a 65 63 74 6f 72 79 3c 2f 62 3e 20 69  Trajectory</b> i
15df0 73 20 61 6e 79 20 4c 69 6e 65 73 74 72 69 6e 67  s any Linestring
15e00 20 73 75 70 70 6f 72 74 69 6e 67 20 3c 62 3e 4d   supporting <b>M
15e10 20 63 6f 6f 72 64 69 6e 61 74 65 73 3c 2f 62 3e   coordinates</b>
15e20 20 77 69 74 68 20 61 20 63 6f 6e 74 69 6e 75 6f   with a continuo
15e30 75 73 6c 79 20 69 6e 63 72 65 61 73 69 6e 67 20  usly increasing 
15e40 74 72 65 6e 64 2e 3c 62 72 3e 0d 0a 49 6e 20 73  trend.<br>..In s
15e50 69 6d 70 6c 65 72 20 77 6f 72 64 73 2c 20 74 68  impler words, th
15e60 65 20 3c 62 3e 4d 2d 76 61 6c 75 65 3c 2f 62 3e  e <b>M-value</b>
15e70 20 6f 66 20 65 61 63 68 20 76 65 72 74 65 78 20   of each vertex 
15e80 28 65 78 63 65 70 74 20 74 68 65 20 6c 61 73 74  (except the last
15e90 20 6f 6e 65 29 20 6d 75 73 74 20 62 65 20 3c 62   one) must be <b
15ea0 3e 6c 65 73 73 65 72 3c 2f 62 3e 20 74 68 61 6e  >lesser</b> than
15eb0 20 74 68 65 20 4d 2d 56 61 6c 75 65 20 6f 66 20   the M-Value of 
15ec0 74 68 65 20 6e 65 78 74 20 76 65 72 74 65 78 2e  the next vertex.
15ed0 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45  ..<verbatim>..SE
15ee0 4c 45 43 54 20 2a 20 46 52 4f 4d 20 6d 79 5f 74  LECT * FROM my_t
15ef0 73 70 5f 73 6f 6c 75 74 69 6f 6e 20 57 48 45 52  sp_solution WHER
15f00 45 20 53 54 5f 49 73 56 61 6c 69 64 54 72 61 6a  E ST_IsValidTraj
15f10 65 63 74 6f 72 79 28 67 65 6f 6d 65 74 72 79 29  ectory(geometry)
15f20 20 3d 20 31 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d   = 1;..---------
15f30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 31 0d 0a 3c  ----------..1..<
15f40 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 41 73 20 79  /verbatim>..As y
15f50 6f 75 20 63 61 6e 20 65 61 73 69 6c 79 20 63 68  ou can easily ch
15f60 65 63 6b 20 62 79 20 63 61 6c 6c 69 6e 67 20 3c  eck by calling <
15f70 62 3e 53 54 5f 49 73 56 61 6c 69 64 54 72 61 6a  b>ST_IsValidTraj
15f80 65 63 74 6f 72 79 28 29 3c 2f 62 3e 20 65 76 65  ectory()</b> eve
15f90 72 79 20 4c 69 6e 65 73 74 72 69 6e 67 20 63 72  ry Linestring cr
15fa0 65 61 74 65 64 20 62 79 20 56 69 72 74 75 61 6c  eated by Virtual
15fb0 52 6f 75 74 69 6e 67 20 69 73 20 61 20 3c 62 3e  Routing is a <b>
15fc0 76 61 6c 69 64 20 54 72 61 6a 65 63 74 6f 72 79  valid Trajectory
15fd0 3c 2f 62 3e 2e 0d 0a 3c 76 65 72 62 61 74 69 6d  </b>...<verbatim
15fe0 3e 0d 0a 53 45 4c 45 43 54 20 53 54 5f 54 72 61  >..SELECT ST_Tra
15ff0 6a 65 63 74 6f 72 79 49 6e 74 65 72 70 6f 6c 61  jectoryInterpola
16000 74 65 50 6f 69 6e 74 28 47 65 6f 6d 65 74 72 79  tePoint(Geometry
16010 2c 20 31 30 30 2e 30 29 0d 0a 46 52 4f 4d 20 6d  , 100.0)..FROM m
16020 79 5f 74 73 70 5f 73 6f 6c 75 74 69 6f 6e 0d 0a  y_tsp_solution..
16030 57 48 45 52 45 20 52 6f 75 74 65 49 64 20 3d 20  WHERE RouteId = 
16040 30 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d  0;..</verbatim>.
16050 0a 53 6f 20 79 6f 75 20 6a 75 73 74 20 68 61 76  .So you just hav
16060 65 20 74 6f 20 63 61 6c 6c 20 3c 62 3e 53 54 5f  e to call <b>ST_
16070 54 72 61 6a 65 63 74 6f 72 79 49 6e 74 65 72 70  TrajectoryInterp
16080 6f 6c 61 74 65 50 6f 69 6e 74 28 29 3c 2f 62 3e  olatePoint()</b>
16090 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 63 72 65   in order to cre
160a0 61 74 65 20 61 20 50 4f 49 4e 54 20 65 78 61 63  ate a POINT exac
160b0 74 6c 79 20 6c 6f 63 61 74 65 64 20 6f 6e 20 74  tly located on t
160c0 68 65 20 4c 69 6e 65 73 74 72 69 6e 67 20 61 74  he Linestring at
160d0 20 74 68 65 20 67 69 76 65 6e 20 3c 62 3e 63 6f   the given <b>co
160e0 73 74 3c 2f 62 3e 2e 0d 0a 3c 62 72 3e 3c 62 72  st</b>...<br><br
160f0 3e 3c 68 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 54  ><hr><br><br>..T
16100 68 65 20 73 69 64 65 20 6d 61 70 20 67 72 61 70  he side map grap
16110 68 69 63 61 6c 6c 79 20 73 68 6f 77 73 20 74 68  hically shows th
16120 65 20 65 73 74 69 6d 61 74 65 64 20 70 6f 73 69  e estimated posi
16130 74 69 6f 6e 73 20 65 76 65 72 79 20 31 30 30 6d  tions every 100m
16140 20 61 73 73 75 6d 69 6e 67 20 74 68 65 20 73 61   assuming the sa
16150 6d 65 20 70 61 74 68 20 72 65 74 75 72 6e 65 64  me path returned
16160 20 62 79 20 74 68 65 20 6c 61 74 65 73 74 20 54   by the latest T
16170 53 50 20 71 75 65 72 79 2e 0d 0a 3c 2f 74 64 3e  SP query...</td>
16180 3c 74 64 3e 20 20 20 20 20 20 20 20 20 20 20 20  <td>            
16190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
161a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
161b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
161c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
161d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
161e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
161f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
162a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
162b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
162c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
162d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
162e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
162f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
163a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
163b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
163c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
163d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
163e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
163f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
164a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
164b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
164c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
164d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
164e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
164f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
165a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
165b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
165c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
165d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
165e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
165f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
166a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
166b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
166c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
166d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
166e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
166f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
167a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
167b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
167c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
167d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
167e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
167f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
168a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
168b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
168c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
168d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
168e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
168f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
169a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
169b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
169c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
169d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
169e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
169f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
16ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
170a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
170b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
170c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
170d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
170e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
170f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
171f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
172a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
172b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
172c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
172d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
172e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
172f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
173a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
173b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
173c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
173d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
173e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
173f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
174a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
174b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
174c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
174d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
174e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
174f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
175a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
175b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
175c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
175d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
175e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
175f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
176a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
176b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
176c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
176d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
176e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
176f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
177f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
178f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
179f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
180f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
181f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
182f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
183f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
184f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
185f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
186f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
187f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
188f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
189f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
190f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
191f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
192f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
193f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
194f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
195f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
196f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
197f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
198f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
199f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19bd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19d90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19dd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aaa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aaf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ab90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1abf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ac90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1acb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1acc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1acd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ace0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1acf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ad90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ada0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1adb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1adc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1add0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ade0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1adf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ae90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aeb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1af90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1afe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ba90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1baa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1baf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bb90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bcb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bcc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bcd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bcf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bdf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1be90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1beb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bf90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ca90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1caa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1caf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cb90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ccb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ccc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ccd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ccf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cd90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cdb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cdd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cdf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ce90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ceb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ced0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cef0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cf90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1cff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d8f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d910 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d970 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d9f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1da90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1daa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dad0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1daf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1db90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dbf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dcb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dcc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dcd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dcf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dd90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ddb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ddc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ddd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ddf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1de90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1deb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ded0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1def0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1df90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e030 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e0f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e190 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e1f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e290 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e2f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e310 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e350 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e390 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e3f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e4f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e510 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e550 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e5f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e650 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e6f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e710 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e790 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e7f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e810 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e850 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e890 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e8c0 20 20 20 20 20 20 20 20 20 20 20 0d 0a 3c 69 6d             ..<im
1e8d0 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 77  g src="https://w
1e8e0 77 77 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f 67  ww.gaia-gis.it/g
1e8f0 61 69 61 2d 73 69 6e 73 2f 72 6f 75 74 69 6e 67  aia-sins/routing
1e900 2d 66 69 67 73 2f 74 73 70 32 2e 6a 70 67 22 20  -figs/tsp2.jpg" 
1e910 61 6c 74 3d 22 66 69 67 35 22 3e 0d 0a 3c 2f 74  alt="fig5">..</t
1e920 64 3e 3c 2f 74 72 3e 3c 2f 74 61 62 6c 65 3e 0d  d></tr></table>.
1e930 0a 3c 68 72 3e 3c 62 72 3e 0d 0a 3c 61 20 68 72  .<hr><br>..<a hr
1e940 65 66 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e  ef="https://www.
1e950 67 61 69 61 2d 67 69 73 2e 69 74 2f 66 6f 73 73  gaia-gis.it/foss
1e960 69 6c 2f 6c 69 62 73 70 61 74 69 61 6c 69 74 65  il/libspatialite
1e970 2f 77 69 6b 69 3f 6e 61 6d 65 3d 34 2e 33 2e 30  /wiki?name=4.3.0
1e980 2d 64 6f 63 22 3e 62 61 63 6b 3c 2f 61 3e 0a 5a  -doc">back</a>.Z
1e990 20 38 37 34 32 66 35 61 34 35 66 64 31 38 32 64   8742f5a45fd182d
1e9a0 33 30 37 36 30 61 65 36 30 64 31 37 38 62 36 36  30760ae60d178b66
1e9b0 32 0a                                            2.