Hex Artifact Content
Not logged in

Artifact b2606ab146ca2d97a0f97ab8bf5704df8d83b437:

Wiki page [VirtualRouting] by sandro 2018-04-09 13:43:06.
0000: 44 20 32 30 31 38 2d 30 34 2d 30 39 54 31 33 3a  D 2018-04-09T13:
0010: 34 33 3a 30 36 2e 34 32 39 0a 4c 20 56 69 72 74  43:06.429.L Virt
0020: 75 61 6c 52 6f 75 74 69 6e 67 0a 50 20 33 65 36  ualRouting.P 3e6
0030: 63 62 61 38 62 33 34 63 31 64 34 33 33 63 64 34  cba8b34c1d433cd4
0040: 39 37 64 34 61 62 63 66 38 63 63 38 37 30 36 39  97d4abcf8cc87069
0050: 38 39 35 61 35 0a 55 20 73 61 6e 64 72 6f 0a 57  895a5.U sandro.W
0060: 20 31 32 35 32 32 30 0a 3c 61 20 68 72 65 66 3d   125220.<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 61 6e 20 50 72 6f 62 6c 65 6d 3c  alesman Problem<
10b20 2f 61 3e 29 20 69 73 20 61 20 77 65 6c 6c 20 6b  /a>) is a well k
10b30 6e 6f 77 6e 20 4f 70 65 72 61 74 69 6f 6e 73 20  nown Operations 
10b40 52 65 73 65 61 72 63 68 20 70 72 6f 62 6c 65 6d  Research 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 70 74  ..We can concept
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 72 61 62 6c 65  highly desirable
111a0 20 69 6e 20 6d 61 6e 79 20 61 70 70 6c 69 63 61   in many applica
111b0 74 69 6f 6e 20 66 69 65 6c 64 73 3a 20 3c 62 3e  tion fields: <b>
111c0 6c 6f 67 69 73 74 69 63 73 3c 2f 62 3e 20 28 6a  logistics</b> (j
111d0 75 73 74 20 74 68 69 6e 6b 20 61 62 6f 75 74 20  ust think about 
111e0 63 6f 75 72 69 65 72 20 63 6f 6d 70 61 6e 69 65  courier companie
111f0 73 20 61 73 20 44 48 4c 2c 20 46 65 64 45 58 2c  s as DHL, FedEX,
11200 20 55 50 53 20 6f 72 20 54 4e 54 29 2c 20 3c 62   UPS or TNT), <b
11210 3e 66 69 65 6c 64 20 6d 61 69 6e 74 65 6e 61 6e  >field maintenan
11220 63 65 3c 2f 62 3e 20 2f 20 3c 62 3e 61 73 73 69  ce</b> / <b>assi
11230 73 74 61 6e 63 65 3c 2f 62 3e 2c 20 3c 62 3e 77  stance</b>, <b>w
11240 61 73 74 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 3c  aste collection<
11250 2f 62 3e 2c 20 3c 62 3e 73 63 68 6f 6f 6c 62 75  /b>, <b>schoolbu
11260 73 3c 2f 62 3e 20 2f 20 3c 62 3e 73 68 61 72 65  s</b> / <b>share
11270 64 20 74 61 78 69 20 73 65 72 76 69 63 65 73 3c  d taxi services<
11280 2f 62 3e 20 65 74 63 2e 3c 62 72 3e 0d 0a 4d 61  /b> etc.<br>..Ma
11290 6e 79 20 61 6c 67 6f 72 69 74 68 6d 73 20 68 61  ny algorithms ha
112a0 76 65 20 62 65 65 6e 20 69 6e 76 65 6e 74 65 64  ve been invented
112b0 20 64 75 72 69 6e 67 20 6c 61 73 74 20 64 65 63   during last dec
112c0 61 64 65 73 20 69 6e 74 65 6e 64 65 64 20 74 6f  ades intended to
112d0 20 70 72 6f 64 75 63 65 20 70 72 61 63 74 69 63   produce practic
112e0 61 6c 20 61 6c 74 68 6f 75 67 68 20 61 70 70 72  al although appr
112f0 6f 78 69 6d 61 74 65 20 2f 20 69 6d 70 65 72 66  oximate / imperf
11300 65 63 74 20 54 53 50 20 73 6f 6c 75 74 69 6f 6e  ect TSP solution
11310 73 20 69 6e 20 61 20 72 65 61 73 6f 6e 61 62 6c  s in a reasonabl
11320 79 20 73 68 6f 72 74 20 74 69 6d 65 2e 0d 0a 4d  y short time...M
11330 61 6e 79 20 6f 66 20 74 68 65 6d 20 73 74 72 6f  any of them stro
11340 6e 67 6c 79 20 64 65 70 65 6e 64 20 6f 6e 20 3c  ngly depend on <
11350 61 20 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f  a href="https://
11360 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67  en.wikipedia.org
11370 2f 77 69 6b 69 2f 48 65 75 72 69 73 74 69 63 22  /wiki/Heuristic"
11380 3e 68 65 75 72 69 73 74 69 63 3c 2f 61 3e 20 61  >heuristic</a> a
11390 6e 64 20 2f 20 6f 72 20 3c 61 20 68 72 65 66 3d  nd / or <a href=
113a0 22 68 74 74 70 73 3a 2f 2f 65 6e 2e 77 69 6b 69  "https://en.wiki
113b0 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 52  pedia.org/wiki/R
113c0 61 6e 64 6f 6d 6e 65 73 73 22 3e 72 61 6e 64 6f  andomness">rando
113d0 6d 6e 65 73 73 3c 2f 61 3e 2e 0d 0a 3c 62 72 3e  mness</a>...<br>
113e0 3c 62 72 3e 0d 0a 3c 62 3e 56 69 72 74 75 61 6c  <br>..<b>Virtual
113f0 52 6f 75 74 69 6e 67 3c 2f 62 3e 20 73 75 70 70  Routing</b> supp
11400 6f 72 74 73 20 74 77 6f 20 64 69 66 66 65 72 65  orts two differe
11410 6e 74 20 54 53 50 20 61 6c 67 6f 72 69 74 68 6d  nt TSP algorithm
11420 73 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e 3c 62  s:..<ul>..<li><b
11430 3e 54 53 50 20 4e 4e 3c 2f 62 3e 20 28 3c 69 3e  >TSP NN</b> (<i>
11440 61 6b 61 3c 2f 69 3e 20 3c 62 3e 3c 69 3e 4e 65  aka</i> <b><i>Ne
11450 61 72 65 73 74 20 4e 65 69 67 68 62 6f 75 72 3c  arest Neighbour<
11460 2f 69 3e 3c 2f 62 3e 29 3c 62 72 3e 0d 0a 54 68  /i></b>)<br>..Th
11470 69 73 20 3c 61 20 68 72 65 66 3d 22 68 74 74 70  is <a href="http
11480 73 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61  s://en.wikipedia
11490 2e 6f 72 67 2f 77 69 6b 69 2f 4e 65 61 72 65 73  .org/wiki/Neares
114a0 74 5f 6e 65 69 67 68 62 6f 75 72 5f 61 6c 67 6f  t_neighbour_algo
114b0 72 69 74 68 6d 22 3e 66 69 72 73 74 20 61 6c 67  rithm">first alg
114c0 6f 72 69 74 68 6d 3c 2f 61 3e 20 69 73 20 73 74  orithm</a> is st
114d0 72 61 69 67 68 74 66 6f 72 77 61 72 64 20 73 69  raightforward si
114e0 6d 70 6c 65 20 61 6e 64 20 76 65 72 79 20 66 61  mple and very fa
114f0 73 74 3b 20 69 74 20 63 61 6e 20 65 66 66 65 63  st; it can effec
11500 74 69 76 65 6c 79 20 73 6f 6c 76 65 20 68 75 67  tively solve hug
11510 65 20 54 53 50 20 73 6f 6c 75 74 69 6f 6e 73 20  e TSP solutions 
11520 28 74 68 6f 75 73 61 6e 64 20 3c 69 3e 63 69 74  (thousand <i>cit
11530 69 65 73 3c 2f 69 3e 20 6f 72 20 65 76 65 6e 20  ies</i> or even 
11540 6d 6f 72 65 29 20 69 6e 20 61 20 76 65 72 79 20  more) in a very 
11550 73 68 6f 72 74 20 74 69 6d 65 2e 3c 62 72 3e 0d  short time.<br>.
11560 0a 3c 75 3e 53 68 6f 72 74 20 64 65 73 63 72 69  .<u>Short descri
11570 70 74 69 6f 6e 3c 2f 75 3e 3a 0d 0a 3c 75 6c 3e  ption</u>:..<ul>
11580 0d 0a 3c 6c 69 3e 73 74 61 72 74 69 6e 67 20 66  ..<li>starting f
11590 72 6f 6d 20 74 68 65 20 3c 75 3e 3c 69 3e 62 61  rom the <u><i>ba
115a0 73 65 20 63 69 74 79 3c 2f 69 3e 3c 2f 75 3e 20  se city</i></u> 
115b0 74 68 65 20 3c 75 3e 3c 69 3e 73 61 6c 65 73 6d  the <u><i>salesm
115c0 61 6e 3c 2f 69 3e 3c 2f 75 3e 20 67 6f 65 73 20  an</i></u> goes 
115d0 74 6f 20 74 68 65 20 3c 75 3e 3c 69 3e 63 69 74  to the <u><i>cit
115e0 79 3c 2f 69 3e 3c 2f 75 3e 20 70 72 65 73 65 6e  y</i></u> presen
115f0 74 69 6e 67 20 74 68 65 20 3c 69 3e 3c 75 3e 6c  ting the <i><u>l
11600 65 73 73 65 72 20 63 6f 6e 6e 65 63 74 69 6f 6e  esser connection
11610 20 63 6f 73 74 3c 2f 75 3e 3c 2f 69 3e 2e 3c 2f   cost</u></i>.</
11620 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 61 6c 72  li>..<li>the alr
11630 65 61 64 79 20 76 69 73 69 74 65 64 20 3c 69 3e  eady visited <i>
11640 3c 75 3e 63 69 74 79 3c 2f 75 3e 3c 2f 69 3e 20  <u>city</u></i> 
11650 69 73 20 63 61 6e 63 65 6c 6c 65 64 20 66 72 6f  is cancelled fro
11660 6d 20 74 68 65 20 6c 69 73 74 2c 20 61 6e 64 20  m the list, and 
11670 74 68 65 6e 20 74 68 65 20 3c 75 3e 3c 69 3e 73  then the <u><i>s
11680 61 6c 65 73 6d 61 6e 3c 2f 69 3e 3c 2f 75 3e 20  alesman</i></u> 
11690 67 6f 65 73 20 74 6f 20 74 68 65 20 6e 65 78 74  goes to the next
116a0 20 3c 75 3e 3c 69 3e 63 69 74 79 3c 2f 69 3e 3c   <u><i>city</i><
116b0 2f 75 3e 20 70 72 65 73 65 6e 74 69 6e 67 20 74  /u> presenting t
116c0 68 65 20 3c 69 3e 3c 75 3e 6c 65 73 73 65 72 20  he <i><u>lesser 
116d0 63 6f 6e 6e 65 63 74 69 6f 6e 20 63 6f 73 74 3c  connection cost<
116e0 2f 75 3e 3c 2f 69 3e 2e 3c 2f 6c 69 3e 0d 0a 3c  /u></i>.</li>..<
116f0 6c 69 3e 74 68 65 20 63 79 63 6c 65 20 63 6f 6e  li>the cycle con
11700 74 69 6e 75 65 73 20 75 6e 74 69 6c 20 61 6c 6c  tinues until all
11710 20 20 3c 69 3e 3c 75 3e 63 69 74 69 65 73 3c 2f    <i><u>cities</
11720 75 3e 3c 2f 69 3e 20 69 6e 20 74 68 65 20 6c 69  u></i> in the li
11730 73 74 20 68 61 76 65 20 62 65 65 6e 20 76 69 73  st have been vis
11740 69 74 65 64 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e  ited.</li>..<li>
11750 66 69 6e 61 6c 6c 79 2c 20 74 68 65 20 3c 75 3e  finally, the <u>
11760 3c 69 3e 73 61 6c 65 73 6d 61 6e 3c 2f 69 3e 3c  <i>salesman</i><
11770 2f 75 3e 20 72 65 74 75 72 6e 73 20 74 6f 20 68  /u> returns to h
11780 69 73 2f 68 65 72 20 69 6e 69 74 69 61 6c 20 3c  is/her initial <
11790 75 3e 3c 69 3e 62 61 73 65 20 63 69 74 79 3c 2f  u><i>base city</
117a0 69 3e 3c 2f 75 3e 3c 2f 6c 69 3e 0d 0a 3c 2f 75  i></u></li>..</u
117b0 6c 3e 0d 0a 3c 75 3e 4e 6f 74 65 3c 2f 75 3e 20  l>..<u>Note</u> 
117c0 69 74 27 73 20 76 65 72 79 20 75 6e 6c 69 6b 65  it's very unlike
117d0 20 74 68 61 74 20 54 53 50 20 4e 4e 20 63 6f 75   that TSP NN cou
117e0 6c 64 20 66 69 6e 64 20 74 68 65 20 3c 62 3e 6f  ld find the <b>o
117f0 70 74 69 6d 61 6c 3c 2f 62 3e 20 73 6f 6c 75 74  ptimal</b> solut
11800 69 6f 6e 2c 20 62 75 74 20 69 74 20 63 61 6e 20  ion, but it can 
11810 71 75 69 63 6b 6c 79 20 66 69 6e 64 20 73 6f 6d  quickly find som
11820 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 3c 62 3e  e reasonable <b>
11830 61 70 70 72 6f 78 69 6d 61 74 65 3c 2f 62 3e 20  approximate</b> 
11840 73 6f 6c 75 74 69 6f 6e 20 28 3c 69 3e 66 65 77  solution (<i>few
11850 20 69 73 20 73 75 72 65 6c 79 20 62 65 74 74 65   is surely bette
11860 72 20 74 68 61 6e 20 6e 6f 74 68 69 6e 67 3c 2f  r than nothing</
11870 69 3e 29 2e 3c 62 72 3e 0d 0a 49 6e 20 74 68 65  i>).<br>..In the
11880 20 6d 6f 73 74 20 75 6e 6c 75 63 6b 79 20 63 61   most unlucky ca
11890 73 65 20 54 53 50 20 4e 4e 20 63 6f 75 6c 64 20  se TSP NN could 
118a0 70 6f 73 73 69 62 6c 79 20 72 65 74 75 72 6e 20  possibly return 
118b0 74 68 65 20 3c 62 3e 77 6f 72 73 74 20 73 6f 6c  the <b>worst sol
118c0 75 74 69 6f 6e 3c 2f 62 3e 2c 20 62 75 74 20 74  ution</b>, but t
118d0 68 65 20 73 70 65 63 69 66 69 63 20 69 6d 70 6c  he specific impl
118e0 65 6d 65 6e 74 61 74 69 6f 6e 20 61 64 6f 70 74  ementation adopt
118f0 65 64 20 62 79 20 56 69 72 74 75 61 6c 52 6f 75  ed by VirtualRou
11900 74 69 6e 67 20 63 68 65 63 6b 73 20 61 67 61 69  ting checks agai
11910 6e 73 74 20 74 68 69 73 20 70 6f 73 73 69 62 69  nst this possibi
11920 6c 69 74 79 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69  lity:..<ul>..<li
11930 3e 65 61 63 68 20 54 53 50 20 4e 4e 20 69 73 20  >each TSP NN is 
11940 61 6c 77 61 79 73 20 63 6f 6d 70 75 74 65 64 20  always computed 
11950 74 77 69 63 65 20 62 79 20 72 61 6e 64 6f 6d 6c  twice by randoml
11960 79 20 63 68 6f 6f 73 69 6e 67 20 61 20 64 69 66  y choosing a dif
11970 66 65 72 65 6e 74 20 3c 75 3e 3c 69 3e 62 61 73  ferent <u><i>bas
11980 65 20 63 69 74 79 3c 2f 69 3e 3c 2f 75 3e 20 61  e city</i></u> a
11990 6e 64 20 74 68 65 6e 20 6e 6f 72 6d 61 6c 69 7a  nd then normaliz
119a0 69 6e 67 20 74 68 65 20 73 6f 6c 75 74 69 6f 6e  ing the solution
119b0 3b 20 74 68 65 20 62 65 73 74 20 6f 66 20 74 68  ; the best of th
119c0 65 20 74 77 6f 20 73 6f 6c 75 74 69 6f 6e 73 20  e two solutions 
119d0 69 73 20 74 68 65 6e 20 72 65 74 75 72 6e 65 64  is then returned
119e0 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 69 73  .</li>..<li>this
119f0 20 73 69 6d 70 6c 65 20 62 75 74 20 65 66 66 65   simple but effe
11a00 63 74 69 76 65 20 70 72 65 63 61 75 74 69 6f 6e  ctive precaution
11a10 20 72 6f 62 75 73 74 6c 79 20 65 6e 73 75 72 65   robustly ensure
11a20 73 20 74 68 61 74 20 74 68 65 20 3c 62 3e 77 6f  s that the <b>wo
11a30 72 73 74 20 73 6f 6c 75 74 69 6f 6e 3c 2f 62 3e  rst solution</b>
11a40 20 77 69 6c 6c 20 6e 65 76 65 72 20 62 65 20 72   will never be r
11a50 65 74 75 72 6e 65 64 2c 20 61 6e 64 20 6a 75 73  eturned, and jus
11a60 74 20 69 6d 70 6c 69 65 73 20 61 20 6d 6f 64 65  t implies a mode
11a70 72 61 74 65 6c 79 20 69 6e 63 72 65 61 73 65 64  rately increased
11a80 20 65 78 65 63 75 74 69 6f 6e 20 74 69 6d 65 2e   execution time.
11a90 3c 2f 6c 69 3e 0d 0a 3c 2f 75 6c 3e 3c 2f 6c 69  </li>..</ul></li
11aa0 3e 0d 0a 3c 6c 69 3e 3c 62 3e 54 53 50 20 47 41  >..<li><b>TSP GA
11ab0 3c 2f 62 3e 20 28 3c 69 3e 61 6b 61 3c 2f 69 3e  </b> (<i>aka</i>
11ac0 20 3c 62 3e 3c 69 3e 47 65 6e 65 74 69 63 20 41   <b><i>Genetic A
11ad0 6c 67 6f 72 69 74 68 6d 3c 2f 69 3e 3c 2f 62 3e  lgorithm</i></b>
11ae0 29 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 3c 61 20  ).<br>..This <a 
11af0 68 72 65 66 3d 22 68 74 74 70 73 3a 2f 2f 65 6e  href="https://en
11b00 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77  .wikipedia.org/w
11b10 69 6b 69 2f 47 65 6e 65 74 69 63 5f 61 6c 67 6f  iki/Genetic_algo
11b20 72 69 74 68 6d 22 3e 61 6c 74 65 72 6e 61 74 69  rithm">alternati
11b30 76 65 20 61 6c 67 6f 72 69 74 68 6d 3c 2f 61 3e  ve algorithm</a>
11b40 20 69 73 20 6d 75 63 68 20 6d 6f 72 65 20 63 6f   is much more co
11b50 6d 70 6c 65 78 20 61 6e 64 20 73 6f 70 68 69 73  mplex and sophis
11b60 74 69 63 61 74 65 64 2c 20 61 6e 64 20 69 73 20  ticated, and is 
11b70 64 69 72 65 63 74 6c 79 20 69 6e 73 70 69 72 65  directly inspire
11b80 64 20 62 79 20 62 69 6f 6c 6f 67 69 63 61 6c 20  d by biological 
11b90 63 6f 6e 63 65 70 74 73 20 73 75 63 68 20 61 73  concepts such as
11ba0 20 3c 62 3e 73 65 78 75 61 6c 20 72 65 70 72 6f   <b>sexual repro
11bb0 64 75 63 74 69 6f 6e 3c 2f 62 3e 2c 20 3c 62 3e  duction</b>, <b>
11bc0 67 65 6e 65 74 69 63 20 6d 75 74 61 74 69 6f 6e  genetic mutation
11bd0 73 3c 2f 62 3e 20 61 6e 64 20 3c 62 3e 6e 61 74  s</b> and <b>nat
11be0 75 72 61 6c 20 73 65 6c 65 63 74 69 6f 6e 3c 2f  ural 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 72 65 70 72 6f 64 75  /i></u>; reprodu
11d90 63 74 69 6f 6e 20 69 73 20 73 75 62 6a 65 63 74  ction is subject
11da0 20 74 6f 20 3c 75 3e 3c 69 3e 63 68 72 6f 6d 6f   to <u><i>chromo
11db0 73 6f 6d 65 20 63 72 6f 73 73 6f 76 65 72 73 3c  some crossovers<
11dc0 2f 69 3e 3c 2f 75 3e 20 61 6e 64 20 3c 69 3e 3c  /i></u> and <i><
11dd0 75 3e 72 61 6e 64 6f 6d 20 6d 75 74 61 74 69 6f  u>random mutatio
11de0 6e 3c 2f 75 3e 3c 2f 69 3e 2e 3c 2f 6c 69 3e 0d  n</u></i>.</li>.
11df0 0a 3c 6c 69 3e 66 6f 72 20 65 61 63 68 20 3c 69  .<li>for each <i
11e00 3e 3c 75 3e 67 65 6e 65 72 61 74 69 6f 6e 3c 2f  ><u>generation</
11e10 75 3e 3c 2f 69 3e 20 74 68 65 20 3c 69 3e 3c 75  u></i> the <i><u
11e20 3e 6e 61 74 75 72 61 6c 20 73 65 6c 65 63 74 69  >natural selecti
11e30 6f 6e 3c 2f 75 3e 3c 2f 69 3e 20 65 6c 69 6d 69  on</u></i> elimi
11e40 6e 61 74 65 73 20 61 6c 6c 20 70 6f 6f 72 6c 79  nates all poorly
11e50 20 66 69 74 20 69 6e 64 69 76 69 64 75 61 6c 73   fit individuals
11e60 20 66 72 6f 6d 20 74 68 65 20 3c 75 3e 3c 69 3e   from the <u><i>
11e70 70 6f 70 75 6c 61 74 69 6f 6e 3c 2f 69 3e 3c 2f  population</i></
11e80 75 3e 20 61 6e 64 20 63 6f 6e 73 65 71 75 65 6e  u> and consequen
11e90 74 6c 79 20 6f 6e 6c 79 20 74 68 65 20 62 65 73  tly only the bes
11ea0 74 20 66 69 74 20 69 6e 64 69 76 69 64 75 61 6c  t fit individual
11eb0 73 20 63 61 6e 20 66 75 72 74 68 65 72 20 70 72  s can further pr
11ec0 6f 70 61 67 61 74 65 20 74 68 65 69 72 20 3c 75  opagate their <u
11ed0 3e 3c 69 3e 67 65 6e 6f 6d 65 3c 2f 69 3e 3c 2f  ><i>genome</i></
11ee0 75 3e 20 74 6f 20 74 68 65 20 6e 65 78 74 20 3c  u> to the next <
11ef0 75 3e 3c 69 3e 67 65 6e 65 72 61 74 69 6f 6e 3c  u><i>generation<
11f00 2f 69 3e 3c 2f 75 3e 2e 3c 2f 6c 69 3e 0d 0a 3c  /i></u>.</li>..<
11f10 6c 69 3e 61 66 74 65 72 20 61 20 63 65 72 74 61  li>after a certa
11f20 69 6e 20 6e 75 6d 62 65 72 20 6f 66 20 3c 69 3e  in number of <i>
11f30 3c 75 3e 67 65 6e 65 72 61 74 69 6f 6e 73 3c 2f  <u>generations</
11f40 69 3e 3c 2f 75 3e 20 28 6c 65 74 27 73 20 73 61  i></u> (let's sa
11f50 79 20 61 62 6f 75 74 20 73 6f 6d 65 20 68 75 6e  y about some hun
11f60 64 72 65 64 74 68 20 69 74 65 72 61 74 69 6f 6e  dredth iteration
11f70 73 29 20 74 68 65 20 3c 62 3e 6f 70 74 69 6d 61  s) the <b>optima
11f80 6c 20 73 6f 6c 75 74 69 6f 6e 3c 2f 62 3e 20 28  l solution</b> (
11f90 6f 72 20 61 74 20 6c 65 61 73 74 20 61 20 3c 62  or at least a <b
11fa0 3e 66 61 69 72 6c 79 20 67 6f 6f 64 20 73 75 62  >fairly good sub
11fb0 2d 6f 70 74 69 6d 61 6c 20 73 6f 6c 75 74 69 6f  -optimal solutio
11fc0 6e 3c 2f 62 3e 29 20 73 68 6f 75 6c 64 20 66 69  n</b>) should fi
11fd0 6e 61 6c 6c 79 20 65 6d 65 72 67 65 2c 20 61 6e  nally emerge, an
11fe0 64 20 73 6f 20 74 68 65 20 6c 6f 6f 70 20 63 61  d so the loop ca
11ff0 6e 20 65 78 69 74 2e 3c 2f 6c 69 3e 0d 0a 3c 2f  n exit.</li>..</
12000 75 6c 3e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 3c 75  ul></li>..<li><u
12010 3e 4e 6f 74 65 3c 2f 75 3e 3a 20 54 53 50 20 47  >Note</u>: TSP G
12020 41 20 69 73 20 75 73 75 61 6c 6c 79 20 65 78 70  A is usually exp
12030 65 63 74 65 64 20 74 6f 20 69 64 65 6e 74 69 66  ected to identif
12040 79 20 62 65 74 74 65 72 20 73 6f 6c 75 74 69 6f  y better solutio
12050 6e 73 20 74 68 61 6e 20 54 53 50 20 4e 4e 20 63  ns than TSP NN c
12060 61 6e 20 64 6f 2c 20 62 75 74 20 69 74 20 77 69  an do, but it wi
12070 6c 6c 20 73 75 72 65 6c 79 20 72 65 71 75 69 72  ll surely requir
12080 65 20 6d 75 63 68 20 6d 6f 72 65 20 74 69 6d 65  e much more time
12090 20 74 6f 20 63 6f 6d 70 6c 65 74 65 2e 3c 2f 6c   to complete.</l
120a0 69 3e 20 0d 0a 3c 2f 75 6c 3e 0d 0a 3c 62 72 3e  i> ..</ul>..<br>
120b0 3c 62 72 3e 0d 0a 4c 65 74 27 73 20 6e 6f 77 20  <br>..Let's now 
120c0 65 78 61 6d 69 6e 65 20 61 20 70 72 61 63 74 69  examine a practi
120d0 63 61 6c 20 65 78 61 6d 70 6c 65 20 6f 66 20 54  cal example of T
120e0 53 50 20 73 6f 6c 76 69 6e 67 20 75 73 69 6e 67  SP solving using
120f0 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e 67 2e   VirtualRouting.
12100 20 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55   ..<verbatim>..U
12110 50 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54  PDATE byfoot SET
12120 20 52 65 71 75 65 73 74 20 3d 20 27 54 53 50 27   Request = 'TSP'
12130 3b 0d 0a 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f  ;....SELECT Algo
12140 72 69 74 68 6d 2c 20 52 65 71 75 65 73 74 2c 20  rithm, Request, 
12150 4f 70 74 69 6f 6e 73 2c 20 44 65 6c 69 6d 69 74  Options, Delimit
12160 65 72 2c 20 52 6f 75 74 65 49 64 2c 20 52 6f 75  er, RouteId, Rou
12170 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e  teRow, Role, Lin
12180 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d  kRowid, NodeFrom
12190 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20  , NodeTo, Cost, 
121a0 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a  Geometry, Name..
121b0 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45  FROM byfoot..WHE
121c0 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37  RE NodeFrom = 17
121d0 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20  8731 AND NodeTo 
121e0 3d 20 27 31 38 33 32 38 36 2c 31 38 31 39 39 39  = '183286,181999
121f0 2c 31 38 34 30 33 30 2c 31 38 33 38 38 32 2c 31  ,184030,183882,1
12200 37 38 37 35 34 27 3b 0d 0a 3c 2f 76 65 72 62 61  78754';..</verba
12210 74 69 6d 3e 0d 0a 41 20 56 69 72 74 75 61 6c 52  tim>..A VirtualR
12220 6f 75 74 69 6e 67 20 3c 62 3e 54 53 50 3c 2f 62  outing <b>TSP</b
12230 3e 20 71 75 65 72 79 20 68 61 73 20 74 68 65 20  > query has the 
12240 73 61 6d 65 20 69 64 65 6e 74 69 63 61 6c 20 66  same identical f
12250 6f 72 6d 20 6f 66 20 61 20 3c 62 3e 6d 75 6c 74  orm of a <b>mult
12260 69 2d 64 65 73 74 69 6e 61 74 69 6f 6e 3c 2f 62  i-destination</b
12270 3e 20 71 75 65 72 79 3b 20 74 68 65 20 3c 69 3e  > query; the <i>
12280 3c 75 3e 62 61 73 65 20 63 69 74 79 3c 75 3e 3c  <u>base city<u><
12290 2f 69 3e 20 69 73 20 61 6c 77 61 79 73 20 65 78  /i> is always ex
122a0 70 65 63 74 65 64 20 74 6f 20 63 6f 72 72 65 73  pected to corres
122b0 70 6f 6e 64 20 74 6f 20 3c 62 3e 4e 6f 64 65 46  pond to <b>NodeF
122c0 72 6f 6d 3c 2f 62 3e 20 61 6e 64 20 61 6c 6c 20  rom</b> and all 
122d0 6f 74 68 65 72 20 3c 69 3e 3c 75 3e 63 69 74 69  other <i><u>citi
122e0 65 73 3c 2f 75 3e 3c 2f 69 3e 20 74 6f 20 62 65  es</u></i> to be
122f0 20 76 69 73 69 74 65 64 20 61 72 65 20 65 78 70   visited are exp
12300 65 63 74 65 64 20 74 6f 20 62 65 20 65 6e 75 6d  ected to be enum
12310 65 72 61 74 65 64 20 69 6e 74 6f 20 61 20 3c 62  erated into a <b
12320 3e 6d 75 6c 74 69 2d 64 65 73 74 69 6e 61 74 69  >multi-destinati
12330 6f 6e 3c 2f 62 3e 20 6c 69 73 74 20 61 73 73 69  on</b> list assi
12340 67 6e 65 64 20 74 6f 20 3c 62 3e 4e 6f 64 65 54  gned to <b>NodeT
12350 6f 3c 2f 62 3e 2e 0d 0a 3c 75 3e 4e 6f 74 65 3c  o</b>...<u>Note<
12360 2f 75 3e 3a 20 79 6f 75 20 6d 75 73 74 20 65 78  /u>: you must ex
12370 70 6c 69 63 69 74 6c 79 20 73 65 74 20 74 68 65  plicitly set the
12380 20 63 75 72 72 65 6e 74 20 3c 62 3e 52 65 71 75   current <b>Requ
12390 65 73 74 3c 2f 62 3e 20 61 73 20 3c 62 3e 54 53  est</b> as <b>TS
123a0 50 3c 2f 62 3e 2c 20 3c 62 3e 54 53 50 20 4e 4e  P</b>, <b>TSP NN
123b0 3c 2f 62 3e 20 6f 72 20 3c 62 3e 54 53 50 20 47  </b> or <b>TSP G
123c0 41 3c 2f 62 3e 20 28 54 53 50 20 61 6e 64 20 54  A</b> (TSP and T
123d0 53 50 20 4e 4e 20 61 72 65 20 73 79 6e 6f 6e 79  SP NN are synony
123e0 6d 73 29 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 0d 0a  ms)...<br><br>..
123f0 3c 74 61 62 6c 65 20 62 6f 72 64 65 72 3d 22 31  <table border="1
12400 22 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 66 66  " bgcolor="#ffff
12410 63 66 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  cf" cellspacing=
12420 22 34 22 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d  "4" cellpadding=
12430 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74 68 20 62 67  "6">..<tr><th bg
12440 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
12450 41 6c 67 6f 72 69 74 68 6d 3c 2f 74 68 3e 3c 74  Algorithm</th><t
12460 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
12470 61 30 22 3e 52 65 71 75 65 73 74 3c 2f 74 68 3e  a0">Request</th>
12480 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30  <th bgcolor="#d0
12490 64 30 61 30 22 3e 4f 70 74 69 6f 6e 73 3c 2f 74  d0a0">Options</t
124a0 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
124b0 64 30 64 30 61 30 22 3e 44 65 6c 69 6d 69 74 65  d0d0a0">Delimite
124c0 72 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  r</th><th bgcolo
124d0 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f 75 74  r="#d0d0a0">Rout
124e0 65 49 64 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  eId</th><th bgco
124f0 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 52 6f  lor="#d0d0a0">Ro
12500 75 74 65 52 6f 77 3c 2f 74 68 3e 3c 74 68 20 62  uteRow</th><th b
12510 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22  gcolor="#d0d0a0"
12520 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74 68 20 62 67  >Role</th><th bg
12530 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
12540 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74 68 3e 3c 74  LinkRowid</th><t
12550 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
12560 61 30 22 3e 4e 6f 64 65 46 72 6f 6d 3c 2f 74 68  a0">NodeFrom</th
12570 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
12580 30 64 30 61 30 22 3e 4e 6f 64 65 54 6f 3c 2f 74  0d0a0">NodeTo</t
12590 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
125a0 64 30 64 30 61 30 22 3e 43 6f 73 74 3c 2f 74 68  d0d0a0">Cost</th
125b0 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64  ><th bgcolor="#d
125c0 30 64 30 61 30 22 3e 47 65 6f 6d 65 74 72 79 3c  0d0a0">Geometry<
125d0 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
125e0 22 23 64 30 64 30 61 30 22 3e 4e 61 6d 65 3c 2f  "#d0d0a0">Name</
125f0 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  th></tr>..<tr>..
12600 3c 74 64 3e 44 69 6a 6b 73 74 72 61 3c 2f 74 64  <td>Dijkstra</td
12610 3e 3c 74 64 3e 54 53 50 20 4e 4e 3c 2f 74 64 3e  ><td>TSP NN</td>
12620 3c 74 64 3e 46 75 6c 6c 3c 2f 74 64 3e 3c 74 64  <td>Full</td><td
12630 3e 2c 20 26 23 39 31 3b 64 65 63 3d 34 34 2c 20  >, &#91;dec=44, 
12640 68 65 78 3d 32 63 26 23 39 33 3b 3c 2f 74 64 3e  hex=2c&#93;</td>
12650 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
12660 22 3e 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">0</td><td alig
12670 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
12680 3c 74 64 3e 54 53 50 20 53 6f 6c 75 74 69 6f 6e  <td>TSP Solution
12690 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
126a0 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
126b0 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c  ht">178731</td><
126c0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
126d0 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74 64 20  >178731</td><td 
126e0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 32  align="right">12
126f0 35 34 2e 34 33 33 39 33 33 3c 2f 74 64 3e 3c 74  54.433933</td><t
12700 64 3e 42 4c 4f 42 20 73 7a 3d 32 30 30 30 20 47  d>BLOB sz=2000 G
12710 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e  EOMETRY</td><td>
12720 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  NULL</td>..</tr>
12730 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
12740 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
12750 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
12760 74 64 3e 4e 55 4c 4c 3c 74 64 20 61 6c 69 67 6e  td>NULL<td align
12770 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c  ="right">1</td><
12780 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
12790 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65  >0</td><td>Route
127a0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
127b0 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
127c0 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c  ht">178731</td><
127d0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
127e0 3e 31 38 34 30 33 30 3c 2f 74 64 3e 3c 74 64 20  >184030</td><td 
127f0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
12800 36 2e 33 36 34 37 35 35 3c 2f 74 64 3e 3c 74 64  6.364755</td><td
12810 3e 42 4c 4f 42 20 73 7a 3d 33 30 34 20 47 45 4f  >BLOB sz=304 GEO
12820 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55  METRY</td><td>NU
12830 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a  LL</td>..</tr>..
12840 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f  <tr>..<td>NULL</
12850 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
12860 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
12870 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
12880 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74  ign="right">2</t
12890 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
128a0 68 74 22 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69  ht">1</td><td>Li
128b0 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  nk</td><td align
128c0 3d 22 72 69 67 68 74 22 3e 32 32 34 30 31 34 3c  ="right">224014<
128d0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
128e0 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64  ight">178731</td
128f0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
12900 74 22 3e 31 38 32 38 38 35 3c 2f 74 64 3e 3c 74  t">182885</td><t
12910 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
12920 39 34 2e 38 31 32 34 32 34 3c 2f 74 64 3e 3c 74  94.812424</td><t
12930 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56  d>NULL</td><td>V
12940 49 41 20 50 49 45 54 52 4f 20 41 52 45 54 49 4e  IA PIETRO ARETIN
12950 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  O</td>..</tr>..<
12960 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
12970 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
12980 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
12990 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
129a0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
129b0 3e 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >2</td><td align
129c0 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c  ="right">2</td><
129d0 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
129e0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
129f0 34 38 36 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4862</td><td ali
12a00 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 38 38  gn="right">18288
12a10 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  5</td><td align=
12a20 22 72 69 67 68 74 22 3e 31 38 32 30 34 33 3c 2f  "right">182043</
12a30 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
12a40 67 68 74 22 3e 33 37 2e 30 39 35 32 38 37 3c 2f  ght">37.095287</
12a50 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
12a60 3c 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49 54  <td>VIA MARGARIT
12a70 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  ONE</td>..</tr>.
12a80 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
12a90 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
12aa0 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
12ab0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
12ac0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f  lign="right">2</
12ad0 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
12ae0 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">3</td><td>L
12af0 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
12b00 6e 3d 22 72 69 67 68 74 22 3e 32 32 36 30 37 30  n="right">226070
12b10 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
12b20 72 69 67 68 74 22 3e 31 38 32 30 34 33 3c 2f 74  right">182043</t
12b30 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
12b40 68 74 22 3e 31 38 34 30 33 30 3c 2f 74 64 3e 3c  ht">184030</td><
12b50 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
12b60 3e 34 34 2e 34 35 37 30 34 34 3c 2f 74 64 3e 3c  >44.457044</td><
12b70 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
12b80 50 49 41 5a 5a 41 20 53 41 4e 54 27 41 47 4f 53  PIAZZA SANT'AGOS
12b90 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  TINO</td>..</tr>
12ba0 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
12bb0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
12bc0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
12bd0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
12be0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c  align="right">2<
12bf0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
12c00 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
12c10 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
12c20 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
12c30 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 30 3c  ="right">184030<
12c40 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
12c50 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f 74 64  ight">181999</td
12c60 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
12c70 74 22 3e 31 33 39 2e 31 31 34 39 33 38 3c 2f 74  t">139.114938</t
12c80 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 34 39  d><td>BLOB sz=49
12c90 36 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  6 GEOMETRY</td><
12ca0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
12cb0 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
12cc0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
12cd0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
12ce0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
12cf0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
12d00 3e 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >3</td><td align
12d10 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c  ="right">1</td><
12d20 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
12d30 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
12d40 36 30 37 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  6071</td><td ali
12d50 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33  gn="right">18403
12d60 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  0</td><td align=
12d70 22 72 69 67 68 74 22 3e 31 38 32 36 32 39 3c 2f  "right">182629</
12d80 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
12d90 67 68 74 22 3e 35 35 2e 36 38 39 30 30 39 3c 2f  ght">55.689009</
12da0 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
12db0 3c 74 64 3e 56 49 41 20 47 49 55 53 45 50 50 45  <td>VIA GIUSEPPE
12dc0 20 47 41 52 49 42 41 4c 44 49 3c 2f 74 64 3e 0d   GARIBALDI</td>.
12dd0 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
12de0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
12df0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
12e00 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
12e10 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
12e20 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">3</td><td al
12e30 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74  ign="right">2</t
12e40 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
12e50 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
12e60 3e 32 32 35 35 31 32 3c 2f 74 64 3e 3c 74 64 20  >225512</td><td 
12e70 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
12e80 32 36 32 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2629</td><td ali
12e90 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 39 33  gn="right">18293
12ea0 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  3</td><td align=
12eb0 22 72 69 67 68 74 22 3e 33 34 2e 31 38 34 31 39  "right">34.18419
12ec0 34 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  4</td><td>NULL</
12ed0 74 64 3e 3c 74 64 3e 43 4f 52 53 4f 20 49 54 41  td><td>CORSO ITA
12ee0 4c 49 41 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d  LIA</td>..</tr>.
12ef0 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c  .<tr>..<td>NULL<
12f00 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
12f10 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
12f20 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
12f30 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f  lign="right">3</
12f40 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
12f50 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e 4c  ght">3</td><td>L
12f60 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ink</td><td alig
12f70 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 35 31 31  n="right">225511
12f80 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
12f90 72 69 67 68 74 22 3e 31 38 32 39 33 33 3c 2f 74  right">182933</t
12fa0 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
12fb0 68 74 22 3e 31 38 31 39 39 39 3c 2f 74 64 3e 3c  ht">181999</td><
12fc0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
12fd0 3e 34 39 2e 32 34 31 37 33 35 3c 2f 74 64 3e 3c  >49.241735</td><
12fe0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
12ff0 43 4f 52 53 4f 20 49 54 41 4c 49 41 3c 2f 74 64  CORSO ITALIA</td
13000 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
13010 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13020 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13030 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
13040 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13050 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 20  ight">3</td><td 
13060 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c  align="right">0<
13070 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74  /td><td>Route</t
13080 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13090 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
130a0 3e 31 38 31 39 39 39 3c 2f 74 64 3e 3c 74 64 20  >181999</td><td 
130b0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
130c0 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  3286</td><td ali
130d0 67 6e 3d 22 72 69 67 68 74 22 3e 32 31 37 2e 36  gn="right">217.6
130e0 37 32 38 38 35 3c 2f 74 64 3e 3c 74 64 3e 42 4c  72885</td><td>BL
130f0 4f 42 20 73 7a 3d 36 38 38 20 47 45 4f 4d 45 54  OB sz=688 GEOMET
13100 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  RY</td><td>NULL<
13110 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72  /td>..</tr>..<tr
13120 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  >..<td>NULL</td>
13130 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13140 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13150 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
13160 3d 22 72 69 67 68 74 22 3e 34 3c 2f 74 64 3e 3c  ="right">4</td><
13170 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13180 3e 31 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >1</td><td>Link<
13190 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
131a0 69 67 68 74 22 3e 32 32 32 36 33 35 3c 2f 74 64  ight">222635</td
131b0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
131c0 74 22 3e 31 38 31 39 39 39 3c 2f 74 64 3e 3c 74  t">181999</td><t
131d0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
131e0 31 38 31 39 39 38 3c 2f 74 64 3e 3c 74 64 20 61  181998</td><td a
131f0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 30 31  lign="right">101
13200 2e 36 32 39 37 35 30 3c 2f 74 64 3e 3c 74 64 3e  .629750</td><td>
13210 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 43 4f 52  NULL</td><td>COR
13220 53 4f 20 49 54 41 4c 49 41 3c 2f 74 64 3e 0d 0a  SO ITALIA</td>..
13230 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
13240 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13250 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
13260 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
13270 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13280 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">4</td><td ali
13290 67 6e 3d 22 72 69 67 68 74 22 3e 32 3c 2f 74 64  gn="right">2</td
132a0 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74  ><td>Link</td><t
132b0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
132c0 32 32 34 37 38 30 3c 2f 74 64 3e 3c 74 64 20 61  224780</td><td a
132d0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31  lign="right">181
132e0 39 39 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  998</td><td alig
132f0 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 35 36 30  n="right">183560
13300 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
13310 72 69 67 68 74 22 3e 37 33 2e 37 33 33 35 37 32  right">73.733572
13320 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13330 64 3e 3c 74 64 3e 56 49 41 20 44 45 4c 4c 27 41  d><td>VIA DELL'A
13340 4e 46 49 54 45 41 54 52 4f 3c 2f 74 64 3e 0d 0a  NFITEATRO</td>..
13350 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
13360 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13370 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
13380 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 74 64 20  /td><td>NULL<td 
13390 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c  align="right">4<
133a0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
133b0 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64 3e  ight">3</td><td>
133c0 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
133d0 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 35 38 32  gn="right">22582
133e0 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  7</td><td align=
133f0 22 72 69 67 68 74 22 3e 31 38 33 35 36 30 3c 2f  "right">183560</
13400 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
13410 67 68 74 22 3e 31 38 33 32 38 36 3c 2f 74 64 3e  ght">183286</td>
13420 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
13430 22 3e 34 32 2e 33 30 39 35 36 34 3c 2f 74 64 3e  ">42.309564</td>
13440 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13450 3e 56 49 41 20 44 45 4c 4c 27 41 4e 46 49 54 45  >VIA DELL'ANFITE
13460 41 54 52 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  ATRO</td>..</tr>
13470 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
13480 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13490 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
134a0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
134b0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 34 3c  align="right">4<
134c0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
134d0 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e  ight">0</td><td>
134e0 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55  Route</td><td>NU
134f0 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  LL</td><td align
13500 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36 3c  ="right">183286<
13510 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13520 69 67 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64  ight">178754</td
13530 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13540 74 22 3e 33 37 38 2e 33 31 33 36 38 34 3c 2f 74  t">378.313684</t
13550 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 37  d><td>BLOB sz=27
13560 32 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  2 GEOMETRY</td><
13570 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
13580 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
13590 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
135a0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
135b0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
135c0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
135d0 3e 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >5</td><td align
135e0 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c  ="right">1</td><
135f0 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
13600 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
13610 34 34 31 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  4414</td><td ali
13620 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38  gn="right">18328
13630 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  6</td><td align=
13640 22 72 69 67 68 74 22 3e 31 37 38 38 38 30 3c 2f  "right">178880</
13650 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
13660 67 68 74 22 3e 31 33 36 2e 33 37 32 30 35 37 3c  ght">136.372057<
13670 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
13680 3e 3c 74 64 3e 56 49 41 20 4d 41 52 47 41 52 49  ><td>VIA MARGARI
13690 54 4f 4e 45 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  TONE</td>..</tr>
136a0 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c  ..<tr>..<td>NULL
136b0 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
136c0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
136d0 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20  td>NULL</td><td 
136e0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 35 3c  align="right">5<
136f0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13700 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74 64 3e  ight">2</td><td>
13710 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  Link</td><td ali
13720 67 6e 3d 22 72 69 67 68 74 22 3e 32 31 39 31 37  gn="right">21917
13730 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  1</td><td align=
13740 22 72 69 67 68 74 22 3e 31 37 38 38 38 30 3c 2f  "right">178880</
13750 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
13760 67 68 74 22 3e 31 37 38 37 33 32 3c 2f 74 64 3e  ght">178732</td>
13770 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
13780 22 3e 39 33 2e 32 38 35 35 33 38 3c 2f 74 64 3e  ">93.285538</td>
13790 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
137a0 3e 56 49 41 20 46 52 41 4e 43 45 53 43 4f 20 43  >VIA FRANCESCO C
137b0 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f 74 72  RISPI</td>..</tr
137c0 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c  >..<tr>..<td>NUL
137d0 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
137e0 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
137f0 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
13800 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 35   align="right">5
13810 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
13820 72 69 67 68 74 22 3e 33 3c 2f 74 64 3e 3c 74 64  right">3</td><td
13830 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61 6c  >Link</td><td al
13840 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 31 39 30  ign="right">2190
13850 35 38 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  58</td><td align
13860 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 32 3c  ="right">178732<
13870 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13880 69 67 68 74 22 3e 31 37 38 37 35 34 3c 2f 74 64  ight">178754</td
13890 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
138a0 74 22 3e 31 34 38 2e 36 35 36 30 38 39 3c 2f 74  t">148.656089</t
138b0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
138c0 74 64 3e 56 49 41 20 46 52 41 4e 43 45 53 43 4f  td>VIA FRANCESCO
138d0 20 43 52 49 53 50 49 3c 2f 74 64 3e 0d 0a 3c 2f   CRISPI</td>..</
138e0 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
138f0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
13900 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13910 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13920 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13930 3e 35 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >5</td><td align
13940 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c  ="right">0</td><
13950 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64  td>Route</td><td
13960 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
13970 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
13980 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  54</td><td align
13990 3d 22 72 69 67 68 74 22 3e 31 38 33 38 38 32 3c  ="right">183882<
139a0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
139b0 69 67 68 74 22 3e 31 38 38 2e 32 31 36 38 33 31  ight">188.216831
139c0 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a  </td><td>BLOB sz
139d0 3d 34 30 30 20 47 45 4f 4d 45 54 52 59 3c 2f 74  =400 GEOMETRY</t
139e0 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d  d><td>NULL</td>.
139f0 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
13a00 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
13a10 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
13a20 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13a30 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
13a40 68 74 22 3e 36 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">6</td><td al
13a50 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74  ign="right">1</t
13a60 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
13a70 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13a80 3e 32 32 34 35 33 38 3c 2f 74 64 3e 3c 74 64 20  >224538</td><td 
13a90 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37  align="right">17
13aa0 38 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  8754</td><td ali
13ab0 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31 39 37  gn="right">18197
13ac0 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  2</td><td align=
13ad0 22 72 69 67 68 74 22 3e 35 30 2e 39 30 30 36 36  "right">50.90066
13ae0 33 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  3</td><td>NULL</
13af0 74 64 3e 3c 74 64 3e 56 49 41 20 41 4e 54 4f 4e  td><td>VIA ANTON
13b00 49 4f 20 47 55 41 44 41 47 4e 4f 4c 49 3c 2f 74  IO GUADAGNOLI</t
13b10 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d  d>..</tr>..<tr>.
13b20 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  .<td>NULL</td><t
13b30 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
13b40 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
13b50 3c 2f 74 64 3e 0d 0a 3c 74 64 20 61 6c 69 67 6e  </td>..<td align
13b60 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64 3e 3c  ="right">6</td><
13b70 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13b80 3e 32 3c 2f 74 64 3e 3c 74 64 3e 4c 69 6e 6b 3c  >2</td><td>Link<
13b90 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13ba0 69 67 68 74 22 3e 32 32 34 35 33 37 3c 2f 74 64  ight">224537</td
13bb0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13bc0 74 22 3e 31 38 31 39 37 32 3c 2f 74 64 3e 3c 74  t">181972</td><t
13bd0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13be0 31 38 32 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61  182000</td><td a
13bf0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 38 36 2e  lign="right">86.
13c00 33 30 31 30 35 31 3c 2f 74 64 3e 3c 74 64 3e 4e  301051</td><td>N
13c10 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 56 49 41 20  ULL</td><td>VIA 
13c20 44 45 4c 20 4e 49 4e 46 45 4f 3c 2f 74 64 3e 0d  DEL NINFEO</td>.
13c30 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
13c40 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
13c50 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
13c60 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13c70 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
13c80 68 74 22 3e 36 3c 2f 74 64 3e 3c 74 64 20 61 6c  ht">6</td><td al
13c90 69 67 6e 3d 22 72 69 67 68 74 22 3e 33 3c 2f 74  ign="right">3</t
13ca0 64 3e 3c 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c  d><td>Link</td><
13cb0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13cc0 3e 32 32 35 35 32 37 3c 2f 74 64 3e 3c 74 64 20  >225527</td><td 
13cd0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38  align="right">18
13ce0 32 30 30 30 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  2000</td><td ali
13cf0 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 38 38  gn="right">18388
13d00 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  2</td><td align=
13d10 22 72 69 67 68 74 22 3e 35 31 2e 30 31 35 31 31  "right">51.01511
13d20 37 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  7</td><td>NULL</
13d30 74 64 3e 3c 74 64 3e 56 49 41 20 4c 49 43 49 4f  td><td>VIA LICIO
13d40 20 4e 45 4e 43 45 54 54 49 3c 2f 74 64 3e 0d 0a   NENCETTI</td>..
13d50 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64  </tr>..<tr>..<td
13d60 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
13d70 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
13d80 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
13d90 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13da0 74 22 3e 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  t">6</td><td ali
13db0 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64  gn="right">0</td
13dc0 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c  ><td>Route</td><
13dd0 74 64 3e 4e 55 4c 4c 3c 74 64 20 61 6c 69 67 6e  td>NULL<td align
13de0 3d 22 72 69 67 68 74 22 3e 31 38 33 38 38 32 3c  ="right">183882<
13df0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
13e00 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74 64  ight">178731</td
13e10 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
13e20 74 22 3e 31 35 34 2e 37 35 30 38 33 39 3c 2f 74  t">154.750839</t
13e30 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 34  d><td>BLOB sz=24
13e40 30 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c  0 GEOMETRY</td><
13e50 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f  td>NULL</td>..</
13e60 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e  tr>..<tr>..<td>N
13e70 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
13e80 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  </td><td>NULL</t
13e90 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
13ea0 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
13eb0 3e 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >7</td><td align
13ec0 3d 22 72 69 67 68 74 22 3e 31 3c 2f 74 64 3e 3c  ="right">1</td><
13ed0 74 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20  td>Link</td><td 
13ee0 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32  align="right">22
13ef0 35 35 32 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  5527</td><td ali
13f00 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 38 38  gn="right">18388
13f10 32 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  2</td><td align=
13f20 22 72 69 67 68 74 22 3e 31 38 32 30 30 30 3c 2f  "right">182000</
13f30 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
13f40 67 68 74 22 3e 35 31 2e 30 31 35 31 31 37 3c 2f  ght">51.015117</
13f50 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
13f60 3c 74 64 3e 56 49 41 20 4c 49 43 49 4f 20 4e 45  <td>VIA LICIO NE
13f70 4e 43 45 54 54 49 3c 2f 74 64 3e 0d 0a 3c 2f 74  NCETTI</td>..</t
13f80 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e 4e 55  r>..<tr>..<td>NU
13f90 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
13fa0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
13fb0 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
13fc0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
13fd0 37 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  7</td><td align=
13fe0 22 72 69 67 68 74 22 3e 32 3c 2f 74 64 3e 3c 74  "right">2</td><t
13ff0 64 3e 4c 69 6e 6b 3c 2f 74 64 3e 3c 74 64 20 61  d>Link</td><td a
14000 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32 32 32  lign="right">222
14010 36 33 36 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  636</td><td alig
14020 6e 3d 22 72 69 67 68 74 22 3e 31 38 32 30 30 30  n="right">182000
14030 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
14040 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c 2f 74  right">178731</t
14050 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
14060 68 74 22 3e 31 30 33 2e 37 33 35 37 32 32 3c 2f  ht">103.735722</
14070 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
14080 3c 74 64 3e 56 49 41 20 50 49 45 54 52 4f 20 41  <td>VIA PIETRO A
14090 52 45 54 49 4e 4f 3c 2f 74 64 3e 0d 0a 3c 2f 74  RETINO</td>..</t
140a0 72 3e 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62  r>..</table>..<b
140b0 72 3e 0d 0a 4c 65 74 27 73 20 6e 6f 77 20 71 75  r>..Let's now qu
140c0 69 63 6b 6c 79 20 65 78 61 6d 69 6e 65 20 74 68  ickly examine th
140d0 65 20 72 65 73 75 6c 74 73 65 74 20 72 65 74 75  e resultset retu
140e0 72 6e 65 64 20 62 79 20 61 6e 79 20 54 53 50 20  rned by any TSP 
140f0 71 75 65 72 79 3a 0d 0a 3c 75 6c 3e 0d 0a 3c 6c  query:..<ul>..<l
14100 69 3e 74 68 65 20 67 65 6e 65 72 61 6c 20 6c 61  i>the general la
14110 79 6f 75 74 20 69 73 20 6d 6f 72 65 20 6f 72 20  yout is more or 
14120 6c 65 73 73 20 74 68 65 20 73 61 6d 65 20 61 73  less the same as
14130 20 79 6f 75 27 76 65 20 61 6c 72 65 61 64 79 20   you've already 
14140 73 65 65 6e 20 69 6e 20 74 68 65 20 63 61 73 65  seen in the case
14150 20 6f 66 20 3c 62 3e 53 68 6f 72 74 65 73 74 50   of <b>ShortestP
14160 61 74 68 3c 2f 62 3e 20 71 75 65 72 69 65 73 2e  ath</b> queries.
14170 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 20 3c  </li>..<li>the <
14180 62 3e 66 69 72 73 74 20 72 6f 77 3c 2f 62 3e 20  b>first row</b> 
14190 6f 66 20 74 68 65 20 72 65 73 75 6c 74 73 65 74  of the resultset
141a0 20 69 73 20 73 6f 6d 65 77 61 79 20 65 78 63 65   is someway exce
141b0 70 74 69 6f 6e 61 6c 2c 20 61 6e 64 20 69 73 20  ptional, and is 
141c0 74 68 65 20 75 6e 69 71 75 65 20 72 6f 77 20 6f  the unique row o
141d0 66 20 74 68 65 20 72 65 73 75 6c 74 73 65 74 20  f the resultset 
141e0 70 72 65 73 65 6e 74 69 6e 67 20 3c 62 3e 4e 4f  presenting <b>NO
141f0 54 20 4e 55 4c 4c 3c 2f 62 3e 20 76 61 6c 75 65  T NULL</b> value
14200 73 20 69 6e 20 74 68 65 20 3c 62 3e 41 6c 67 6f  s in the <b>Algo
14210 72 69 74 68 6d 3c 2f 62 3e 2c 20 3c 62 3e 52 65  rithm</b>, <b>Re
14220 71 75 65 73 74 3c 2f 62 3e 2c 20 3c 62 3e 4f 70  quest</b>, <b>Op
14230 74 69 6f 6e 73 3c 2f 62 3e 20 61 6e 64 20 3c 62  tions</b> and <b
14240 3e 44 65 6c 69 6d 69 74 65 72 3c 2f 62 3e 20 63  >Delimiter</b> c
14250 6f 6c 75 6d 6e 73 2e 3c 62 72 3e 0d 0a 49 74 20  olumns.<br>..It 
14260 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 3c 62 3e  contains the <b>
14270 54 53 50 20 73 6f 6c 75 74 69 6f 6e 3c 2f 62 3e  TSP solution</b>
14280 20 61 73 20 61 20 77 68 6f 6c 65 3a 20 63 6f 6c   as a whole: col
14290 75 6d 6e 20 3c 62 3e 43 6f 73 74 3c 2f 62 3e 20  umn <b>Cost</b> 
142a0 69 73 20 74 68 65 20 3c 75 3e 74 6f 74 61 6c 20  is the <u>total 
142b0 63 6f 73 74 3c 2f 75 3e 20 61 6e 64 20 63 6f 6c  cost</u> and col
142c0 75 6d 6e 20 3c 62 3e 47 65 6f 6d 65 74 72 79 3c  umn <b>Geometry<
142d0 2f 62 3e 20 69 73 20 74 68 65 20 3c 75 3e 6f 76  /b> is the <u>ov
142e0 65 72 61 6c 6c 20 73 6f 6c 75 74 69 6f 6e 20 70  erall solution p
142f0 61 74 68 3c 2f 75 3e 2e 3c 2f 6c 69 3e 0d 0a 3c  ath</u>.</li>..<
14300 6c 69 3e 63 6f 6c 75 6d 6e 73 20 3c 62 3e 52 6f  li>columns <b>Ro
14310 75 74 65 49 64 3c 2f 62 3e 20 61 6e 64 20 3c 62  uteId</b> and <b
14320 3e 52 6f 75 74 65 52 6f 77 3c 2f 62 3e 20 68 61  >RouteRow</b> ha
14330 76 65 20 74 68 65 20 73 61 6d 65 20 69 6e 74 65  ve the same inte
14340 72 70 72 65 74 61 74 69 6f 6e 20 61 73 20 69 6e  rpretation as in
14350 20 3c 62 3e 6d 75 6c 74 69 2d 64 65 73 74 69 6e   <b>multi-destin
14360 61 74 69 6f 6e 20 53 68 6f 72 74 65 73 74 50 61  ation ShortestPa
14370 74 68 3c 2f 62 3e 20 71 75 65 72 69 65 73 2c 20  th</b> queries, 
14380 62 75 74 20 69 6e 20 74 68 69 73 20 73 70 65 63  but in this spec
14390 69 66 69 63 20 63 61 73 65 20 65 61 63 68 20 3c  ific case each <
143a0 75 3e 3c 69 3e 72 6f 75 74 65 3c 2f 69 3e 3c 2f  u><i>route</i></
143b0 75 3e 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74  u> corresponds t
143c0 6f 20 61 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 62  o a connection b
143d0 65 74 77 65 65 6e 20 74 77 6f 20 3c 69 3e 3c 75  etween two <i><u
143e0 3e 63 69 74 69 65 73 3c 2f 75 3e 3c 2f 69 3e 2e  >cities</u></i>.
143f0 3c 62 72 3e 0d 0a 41 6c 6c 20 3c 69 3e 3c 75 3e  <br>..All <i><u>
14400 72 6f 75 74 65 73 3c 2f 75 3e 3c 2f 69 3e 20 61  routes</u></i> a
14410 72 65 20 6f 72 64 65 72 20 61 63 63 6f 72 64 69  re order accordi
14420 6e 67 6c 79 20 74 6f 20 74 68 65 20 72 75 6e 6e  ngly to the runn
14430 69 6e 67 20 73 65 71 75 65 6e 63 65 20 6f 66 20  ing sequence of 
14440 74 68 65 20 54 53 50 20 73 6f 6c 75 74 69 6f 6e  the TSP solution
14450 2e 20 3c 62 3e 52 6f 75 74 65 49 64 3d 30 3c 2f  . <b>RouteId=0</
14460 62 3e 20 69 64 65 6e 74 69 66 69 65 73 20 74 68  b> identifies th
14470 65 20 6f 76 65 72 61 6c 6c 20 54 53 50 20 73 6f  e overall TSP so
14480 6c 75 74 69 6f 6e 2e 3c 2f 6c 69 3e 0d 0a 3c 2f  lution.</li>..</
14490 75 6c 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 76 65  ul><br><br>..<ve
144a0 72 62 61 74 69 6d 3e 0d 0a 55 50 44 41 54 45 20  rbatim>..UPDATE 
144b0 62 79 66 6f 6f 74 20 53 45 54 20 52 65 71 75 65  byfoot SET Reque
144c0 73 74 20 3d 20 27 54 53 50 20 47 41 27 3b 0d 0a  st = 'TSP GA';..
144d0 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f 72 69 74  ..SELECT Algorit
144e0 68 6d 2c 20 52 65 71 75 65 73 74 2c 20 4f 70 74  hm, Request, Opt
144f0 69 6f 6e 73 2c 20 44 65 6c 69 6d 69 74 65 72 2c  ions, Delimiter,
14500 20 52 6f 75 74 65 49 64 2c 20 52 6f 75 74 65 52   RouteId, RouteR
14510 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e 6b 52 6f  ow, Role, LinkRo
14520 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d 2c 20 4e  wid, NodeFrom, N
14530 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20 47 65 6f  odeTo, Cost, Geo
14540 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a 46 52 4f  metry, Name..FRO
14550 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45 52 45 20  M byfoot..WHERE 
14560 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37 38 37 33  NodeFrom = 17873
14570 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20 3d 20 27  1 AND NodeTo = '
14580 31 38 33 32 38 36 2c 31 38 31 39 39 39 2c 31 38  183286,181999,18
14590 34 30 33 30 2c 31 38 33 38 38 32 2c 31 37 38 37  4030,183882,1787
145a0 35 34 27 3b 0d 0a 3c 2f 76 65 72 62 61 74 69 6d  54';..</verbatim
145b0 3e 0d 0a 49 66 20 79 6f 75 20 77 69 73 68 20 74  >..If you wish t
145c0 6f 20 67 65 74 20 61 20 3c 62 3e 54 53 50 20 47  o get a <b>TSP G
145d0 41 3c 2f 62 3e 20 73 6f 6c 75 74 69 6f 6e 20 79  A</b> solution y
145e0 6f 75 20 73 69 6d 70 6c 65 20 68 61 76 65 20 74  ou simple have t
145f0 6f 20 73 65 74 20 3c 62 3e 52 65 71 75 65 73 74  o set <b>Request
14600 3c 2f 62 3e 20 61 73 20 3c 62 3e 54 53 50 20 47  </b> as <b>TSP G
14610 41 3c 2f 62 3e 3b 20 61 6e 64 20 79 6f 75 20 63  A</b>; and you c
14620 61 6e 20 73 65 74 20 61 67 61 69 6e 20 3c 62 3e  an set again <b>
14630 52 65 71 75 65 73 74 3c 2f 62 3e 20 61 73 20 3c  Request</b> as <
14640 62 3e 54 53 50 3c 2f 62 3e 20 6f 72 20 3c 62 3e  b>TSP</b> or <b>
14650 54 53 50 20 4e 4e 3c 2f 62 3e 20 74 6f 20 72 65  TSP NN</b> to re
14660 76 65 72 74 20 62 61 63 6b 20 74 6f 20 74 68 65  vert back to the
14670 20 73 69 6d 70 6c 65 72 20 2f 20 66 61 73 74 65   simpler / faste
14680 72 20 61 6c 67 6f 72 69 74 68 6d 2e 0d 0a 3c 62  r algorithm...<b
14690 72 3e 0d 0a 41 6c 73 6f 20 69 6e 20 74 68 65 20  r>..Also in the 
146a0 63 61 73 65 20 6f 66 20 54 53 50 20 79 6f 75 20  case of TSP you 
146b0 63 61 6e 20 65 76 65 6e 74 75 61 6c 6c 79 20 61  can eventually a
146c0 63 74 69 76 61 74 65 20 74 68 65 20 75 73 75 61  ctivate the usua
146d0 6c 20 3c 62 3e 4f 70 74 69 6f 6e 73 3c 2f 62 3e  l <b>Options</b>
146e0 20 61 6c 72 65 61 64 79 20 65 78 70 6c 61 69 6e   already explain
146f0 65 64 20 69 6e 20 74 68 65 20 53 68 6f 72 74 65  ed in the Shorte
14700 73 74 50 61 74 68 20 65 78 61 6d 70 6c 65 73 2e  stPath examples.
14710 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55 50  ..<verbatim>..UP
14720 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54 20  DATE byfoot SET 
14730 52 65 71 75 65 73 74 20 3d 20 27 54 53 50 27 2c  Request = 'TSP',
14740 20 4f 70 74 69 6f 6e 73 20 3d 20 27 4e 4f 20 4c   Options = 'NO L
14750 49 4e 4b 53 27 3b 0d 0a 0d 0a 53 45 4c 45 43 54  INKS';....SELECT
14760 20 41 6c 67 6f 72 69 74 68 6d 2c 20 52 65 71 75   Algorithm, Requ
14770 65 73 74 2c 20 4f 70 74 69 6f 6e 73 2c 20 44 65  est, Options, De
14780 6c 69 6d 69 74 65 72 2c 20 52 6f 75 74 65 49 64  limiter, RouteId
14790 2c 20 52 6f 75 74 65 52 6f 77 2c 20 52 6f 6c 65  , RouteRow, Role
147a0 2c 20 4c 69 6e 6b 52 6f 77 69 64 2c 20 4e 6f 64  , LinkRowid, Nod
147b0 65 46 72 6f 6d 2c 20 4e 6f 64 65 54 6f 2c 20 43  eFrom, NodeTo, C
147c0 6f 73 74 2c 20 47 65 6f 6d 65 74 72 79 2c 20 4e  ost, Geometry, N
147d0 61 6d 65 0d 0a 46 52 4f 4d 20 62 79 66 6f 6f 74  ame..FROM byfoot
147e0 0d 0a 57 48 45 52 45 20 4e 6f 64 65 46 72 6f 6d  ..WHERE NodeFrom
147f0 20 3d 20 31 37 38 37 33 31 20 41 4e 44 20 4e 6f   = 178731 AND No
14800 64 65 54 6f 20 3d 20 27 31 38 33 32 38 36 2c 31  deTo = '183286,1
14810 38 31 39 39 39 2c 31 38 34 30 33 30 2c 31 38 33  81999,184030,183
14820 38 38 32 2c 31 37 38 37 35 34 27 3b 0d 0a 3c 2f  882,178754';..</
14830 76 65 72 62 61 74 69 6d 3e 0d 0a 54 68 65 20 66  verbatim>..The f
14840 6f 6c 6c 6f 77 69 6e 67 20 74 61 62 6c 65 20 73  ollowing table s
14850 68 6f 77 73 20 74 68 65 20 72 65 73 75 6c 74 73  hows the results
14860 65 74 20 72 65 74 75 72 6e 65 64 20 62 79 20 74  et returned by t
14870 68 65 20 73 61 6d 65 20 54 53 50 20 71 75 65 72  he same TSP quer
14880 79 20 75 73 65 64 20 69 6e 20 74 68 65 20 70 72  y used in the pr
14890 65 76 69 6f 75 73 20 65 78 61 6d 70 6c 65 20 61  evious example a
148a0 66 74 65 72 20 65 6e 61 62 6c 69 6e 67 20 74 68  fter enabling th
148b0 65 20 3c 62 3e 4e 4f 20 4c 49 4e 4b 53 3c 2f 62  e <b>NO LINKS</b
148c0 3e 20 6f 70 74 69 6f 6e 2e 20 3c 62 72 3e 3c 62  > option. <br><b
148d0 72 3e 0d 0a 3c 74 61 62 6c 65 20 62 6f 72 64 65  r>..<table borde
148e0 72 3d 22 31 22 20 62 67 63 6f 6c 6f 72 3d 22 23  r="1" bgcolor="#
148f0 66 66 66 66 63 66 22 20 63 65 6c 6c 73 70 61 63  ffffcf" cellspac
14900 69 6e 67 3d 22 34 22 20 63 65 6c 6c 70 61 64 64  ing="4" cellpadd
14910 69 6e 67 3d 22 36 22 3e 0d 0a 3c 74 72 3e 3c 74  ing="6">..<tr><t
14920 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
14930 61 30 22 3e 41 6c 67 6f 72 69 74 68 6d 3c 2f 74  a0">Algorithm</t
14940 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
14950 64 30 64 30 61 30 22 3e 52 65 71 75 65 73 74 3c  d0d0a0">Request<
14960 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d  /th><th bgcolor=
14970 22 23 64 30 64 30 61 30 22 3e 4f 70 74 69 6f 6e  "#d0d0a0">Option
14980 73 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  s</th><th bgcolo
14990 72 3d 22 23 64 30 64 30 61 30 22 3e 44 65 6c 69  r="#d0d0a0">Deli
149a0 6d 69 74 65 72 3c 2f 74 68 3e 3c 74 68 20 62 67  miter</th><th bg
149b0 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e  color="#d0d0a0">
149c0 52 6f 75 74 65 49 64 3c 2f 74 68 3e 3c 74 68 20  RouteId</th><th 
149d0 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30 61 30  bgcolor="#d0d0a0
149e0 22 3e 52 6f 75 74 65 52 6f 77 3c 2f 74 68 3e 3c  ">RouteRow</th><
149f0 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64  th bgcolor="#d0d
14a00 30 61 30 22 3e 52 6f 6c 65 3c 2f 74 68 3e 3c 74  0a0">Role</th><t
14a10 68 20 62 67 63 6f 6c 6f 72 3d 22 23 64 30 64 30  h bgcolor="#d0d0
14a20 61 30 22 3e 4c 69 6e 6b 52 6f 77 69 64 3c 2f 74  a0">LinkRowid</t
14a30 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72 3d 22 23  h><th bgcolor="#
14a40 64 30 64 30 61 30 22 3e 4e 6f 64 65 46 72 6f 6d  d0d0a0">NodeFrom
14a50 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
14a60 3d 22 23 64 30 64 30 61 30 22 3e 4e 6f 64 65 54  ="#d0d0a0">NodeT
14a70 6f 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f  o</th><th bgcolo
14a80 72 3d 22 23 64 30 64 30 61 30 22 3e 43 6f 73 74  r="#d0d0a0">Cost
14a90 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f 6c 6f 72  </th><th bgcolor
14aa0 3d 22 23 64 30 64 30 61 30 22 3e 47 65 6f 6d 65  ="#d0d0a0">Geome
14ab0 74 72 79 3c 2f 74 68 3e 3c 74 68 20 62 67 63 6f  try</th><th bgco
14ac0 6c 6f 72 3d 22 23 64 30 64 30 61 30 22 3e 4e 61  lor="#d0d0a0">Na
14ad0 6d 65 3c 2f 74 68 3e 3c 2f 74 72 3e 0d 0a 3c 74  me</th></tr>..<t
14ae0 72 3e 0d 0a 3c 74 64 3e 44 69 6a 6b 73 74 72 61  r>..<td>Dijkstra
14af0 3c 2f 74 64 3e 3c 74 64 3e 54 53 50 20 4e 4e 3c  </td><td>TSP NN<
14b00 2f 74 64 3e 3c 74 64 3e 4e 6f 20 4c 69 6e 6b 73  /td><td>No Links
14b10 3c 2f 74 64 3e 3c 74 64 3e 2c 20 26 23 39 31 3b  </td><td>, &#91;
14b20 64 65 63 3d 34 34 2c 20 68 65 78 3d 32 63 26 23  dec=44, hex=2c&#
14b30 39 33 3b 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  93;</td><td alig
14b40 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
14b50 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
14b60 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 54 53 50 20  ">0</td><td>TSP 
14b70 53 6f 6c 75 74 69 6f 6e 3c 2f 74 64 3e 3c 74 64  Solution</td><td
14b80 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
14b90 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
14ba0 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
14bb0 3d 22 72 69 67 68 74 22 3e 31 37 38 37 33 31 3c  ="right">178731<
14bc0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14bd0 69 67 68 74 22 3e 31 32 35 34 2e 34 33 33 39 33  ight">1254.43393
14be0 33 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  3</td><td>BLOB s
14bf0 7a 3d 32 30 30 30 20 47 45 4f 4d 45 54 52 59 3c  z=2000 GEOMETRY<
14c00 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
14c10 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a  >..</tr>..<tr>..
14c20 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64  <td>NULL</td><td
14c30 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55  >NULL</td><td>NU
14c40 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  LL</td><td>NULL<
14c50 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22  td align="right"
14c60 3e 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  >1</td><td align
14c70 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c  ="right">0</td><
14c80 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64  td>Route</td><td
14c90 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c  >NULL</td><td al
14ca0 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38 37  ign="right">1787
14cb0 33 31 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e  31</td><td align
14cc0 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 30 3c  ="right">184030<
14cd0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
14ce0 69 67 68 74 22 3e 31 37 36 2e 33 36 34 37 35 35  ight">176.364755
14cf0 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a  </td><td>BLOB sz
14d00 3d 33 30 34 20 47 45 4f 4d 45 54 52 59 3c 2f 74  =304 GEOMETRY</t
14d10 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d  d><td>NULL</td>.
14d20 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74  .</tr>..<tr>..<t
14d30 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e  d>NULL</td><td>N
14d40 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c  ULL</td><td>NULL
14d50 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 74 64  </td><td>NULL<td
14d60 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 32   align="right">2
14d70 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
14d80 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e 3c 74 64  right">0</td><td
14d90 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e  >Route</td><td>N
14da0 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ULL</td><td alig
14db0 6e 3d 22 72 69 67 68 74 22 3e 31 38 34 30 33 30  n="right">184030
14dc0 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
14dd0 72 69 67 68 74 22 3e 31 38 31 39 39 39 3c 2f 74  right">181999</t
14de0 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67  d><td align="rig
14df0 68 74 22 3e 31 33 39 2e 31 31 34 39 33 38 3c 2f  ht">139.114938</
14e00 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73 7a 3d 34  td><td>BLOB sz=4
14e10 39 36 20 47 45 4f 4d 45 54 52 59 3c 2f 74 64 3e  96 GEOMETRY</td>
14e20 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c  <td>NULL</td>..<
14e30 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c 74 64 3e  /tr>..<tr>..<td>
14e40 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
14e50 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
14e60 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
14e70 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74  <td align="right
14e80 22 3e 33 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  ">3</td><td alig
14e90 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f 74 64 3e  n="right">0</td>
14ea0 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64 3e 3c 74  <td>Route</td><t
14eb0 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61  d>NULL</td><td a
14ec0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 31  lign="right">181
14ed0 39 39 39 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  999</td><td alig
14ee0 6e 3d 22 72 69 67 68 74 22 3e 31 38 33 32 38 36  n="right">183286
14ef0 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22  </td><td align="
14f00 72 69 67 68 74 22 3e 32 31 37 2e 36 37 32 38 38  right">217.67288
14f10 35 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f 42 20 73  5</td><td>BLOB s
14f20 7a 3d 36 38 38 20 47 45 4f 4d 45 54 52 59 3c 2f  z=688 GEOMETRY</
14f30 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e  td><td>NULL</td>
14f40 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e 0d 0a 3c  ..</tr>..<tr>..<
14f50 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
14f60 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
14f70 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  L</td><td>NULL</
14f80 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69  td><td align="ri
14f90 67 68 74 22 3e 34 3c 2f 74 64 3e 3c 74 64 20 61  ght">4</td><td a
14fa0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 30 3c 2f  lign="right">0</
14fb0 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c 2f 74 64  td><td>Route</td
14fc0 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74  ><td>NULL</td><t
14fd0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
14fe0 31 38 33 32 38 36 3c 2f 74 64 3e 3c 74 64 20 61  183286</td><td a
14ff0 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 37 38  lign="right">178
15000 37 35 34 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67  754</td><td alig
15010 6e 3d 22 72 69 67 68 74 22 3e 33 37 38 2e 33 31  n="right">378.31
15020 33 36 38 34 3c 2f 74 64 3e 3c 74 64 3e 42 4c 4f  3684</td><td>BLO
15030 42 20 73 7a 3d 32 37 32 20 47 45 4f 4d 45 54 52  B sz=272 GEOMETR
15040 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f  Y</td><td>NULL</
15050 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c 74 72 3e  td>..</tr>..<tr>
15060 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  ..<td>NULL</td><
15070 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
15080 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  NULL</td><td>NUL
15090 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d  L</td><td align=
150a0 22 72 69 67 68 74 22 3e 35 3c 2f 74 64 3e 3c 74  "right">5</td><t
150b0 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
150c0 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75 74 65 3c  0</td><td>Route<
150d0 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64  /td><td>NULL</td
150e0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
150f0 74 22 3e 31 37 38 37 35 34 3c 2f 74 64 3e 3c 74  t">178754</td><t
15100 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
15110 31 38 33 38 38 32 3c 2f 74 64 3e 3c 74 64 20 61  183882</td><td a
15120 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e 31 38 38  lign="right">188
15130 2e 32 31 36 38 33 31 3c 2f 74 64 3e 3c 74 64 3e  .216831</td><td>
15140 42 4c 4f 42 20 73 7a 3d 34 30 30 20 47 45 4f 4d  BLOB sz=400 GEOM
15150 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c  ETRY</td><td>NUL
15160 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e 0d 0a 3c  L</td>..</tr>..<
15170 74 72 3e 0d 0a 3c 74 64 3e 4e 55 4c 4c 3c 2f 74  tr>..<td>NULL</t
15180 64 3e 3c 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c  d><td>NULL</td><
15190 74 64 3e 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 3e  td>NULL</td><td>
151a0 4e 55 4c 4c 3c 2f 74 64 3e 3c 74 64 20 61 6c 69  NULL</td><td ali
151b0 67 6e 3d 22 72 69 67 68 74 22 3e 36 3c 2f 74 64  gn="right">6</td
151c0 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
151d0 74 22 3e 30 3c 2f 74 64 3e 3c 74 64 3e 52 6f 75  t">0</td><td>Rou
151e0 74 65 3c 2f 74 64 3e 3c 74 64 3e 4e 55 4c 4c 3c  te</td><td>NULL<
151f0 2f 74 64 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72  /td><td align="r
15200 69 67 68 74 22 3e 31 38 33 38 38 32 3c 2f 74 64  ight">183882</td
15210 3e 3c 74 64 20 61 6c 69 67 6e 3d 22 72 69 67 68  ><td align="righ
15220 74 22 3e 31 37 38 37 33 31 3c 2f 74 64 3e 3c 74  t">178731</td><t
15230 64 20 61 6c 69 67 6e 3d 22 72 69 67 68 74 22 3e  d align="right">
15240 31 35 34 2e 37 35 30 38 33 39 3c 2f 74 64 3e 3c  154.750839</td><
15250 74 64 3e 42 4c 4f 42 20 73 7a 3d 32 34 30 20 47  td>BLOB sz=240 G
15260 45 4f 4d 45 54 52 59 3c 2f 74 64 3e 3c 74 64 3e  EOMETRY</td><td>
15270 4e 55 4c 4c 3c 2f 74 64 3e 0d 0a 3c 2f 74 72 3e  NULL</td>..</tr>
15280 0d 0a 3c 2f 74 61 62 6c 65 3e 0d 0a 3c 62 72 3e  ..</table>..<br>
15290 3c 62 72 3e 3c 62 72 3e 0d 0a 54 68 65 20 6d 61  <br><br>..The ma
152a0 70 20 62 65 6c 6f 77 20 67 72 61 70 68 69 63 61  p below graphica
152b0 6c 6c 79 20 73 68 6f 77 73 20 74 68 65 20 70 72  lly shows the pr
152c0 65 76 69 6f 75 73 20 3c 62 3e 54 53 50 3c 2f 62  evious <b>TSP</b
152d0 3e 20 71 75 65 72 69 65 73 2e 0d 0a 3c 62 72 3e  > queries...<br>
152e0 3c 62 72 3e 0d 0a 3c 69 6d 67 20 73 72 63 3d 22  <br>..<img src="
152f0 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61 69 61  https://www.gaia
15300 2d 67 69 73 2e 69 74 2f 67 61 69 61 2d 73 69 6e  -gis.it/gaia-sin
15310 73 2f 72 6f 75 74 69 6e 67 2d 66 69 67 73 2f 74  s/routing-figs/t
15320 73 70 31 2e 6a 70 67 22 20 61 6c 74 3d 22 66 69  sp1.jpg" alt="fi
15330 67 34 22 3e 0d 0a 3c 75 6c 3e 0d 0a 3c 6c 69 3e  g4">..<ul>..<li>
15340 52 65 64 20 73 74 61 72 3a 20 74 68 65 20 3c 75  Red star: the <u
15350 3e 3c 69 3e 62 61 73 65 2d 63 69 74 79 3c 2f 69  ><i>base-city</i
15360 3e 3c 2f 75 3e 20 28 66 72 6f 6d 20 77 68 65 72  ></u> (from wher
15370 65 20 74 68 65 20 3c 75 3e 3c 69 3e 73 61 6c 65  e the <u><i>sale
15380 73 6d 61 6e 3c 2f 69 3e 3c 2f 75 3e 29 20 62 65  sman</i></u>) be
15390 67 69 6e 73 20 68 69 73 2f 68 65 72 20 74 72 69  gins his/her tri
153a0 70 2e 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 47 72 65  p.</li>..<li>Gre
153b0 65 6e 20 64 6f 74 73 3a 20 74 68 65 20 3c 75 3e  en dots: the <u>
153c0 3c 69 3e 63 69 74 69 65 73 3c 2f 69 3e 3c 2f 75  <i>cities</i></u
153d0 3e 20 74 6f 20 62 65 20 76 69 73 69 74 65 64 2e  > to be visited.
153e0 3c 2f 6c 69 3e 0d 0a 3c 6c 69 3e 59 65 6c 6c 6f  </li>..<li>Yello
153f0 77 20 6c 69 6e 65 3a 20 74 68 65 20 54 53 50 20  w line: the TSP 
15400 73 6f 6c 75 74 69 6f 6e 20 28 74 68 61 74 20 69  solution (that i
15410 73 20 61 6c 77 61 79 73 20 61 20 63 69 72 63 75  s always a circu
15420 6c 61 72 20 70 61 74 68 29 2e 3c 2f 6c 69 3e 0d  lar path).</li>.
15430 0a 3c 2f 75 6c 3e 3c 62 72 3e 0d 0a 3c 74 61 62  .</ul><br>..<tab
15440 6c 65 20 62 67 63 6f 6c 6f 72 3d 22 23 66 66 62  le bgcolor="#ffb
15450 30 36 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67  060" cellspacing
15460 3d 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69 6e  ="10" cellpaddin
15470 67 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a  g="6"><tr><td>..
15480 3c 68 33 3e 57 61 72 6e 69 6e 67 3a 20 68 6f 77  <h3>Warning: how
15490 20 74 6f 20 63 6f 72 72 65 63 74 6c 79 20 68 61   to correctly ha
154a0 6e 64 6c 69 6e 67 20 54 53 50 20 72 65 73 75 6c  ndling TSP resul
154b0 74 73 65 74 73 20 77 69 74 68 20 73 70 61 74 69  tsets with spati
154c0 61 6c 69 74 65 5f 67 75 69 3c 2f 68 33 3e 0d 0a  alite_gui</h3>..
154d0 59 6f 75 20 73 68 6f 75 6c 64 20 6e 65 76 65 72  You should never
154e0 20 66 6f 72 67 65 74 20 6f 72 20 6f 76 65 72 6c   forget or overl
154f0 6f 6f 6b 20 74 68 61 74 20 62 6f 74 68 20 3c 62  ook that both <b
15500 3e 54 53 50 20 4e 4e 3c 2f 62 3e 20 61 6e 64 20  >TSP NN</b> and 
15510 3c 62 3e 54 53 50 20 47 41 3c 2f 62 3e 20 61 72  <b>TSP GA</b> ar
15520 65 20 3c 75 3e 3c 69 3e 68 65 75 72 69 73 74 69  e <u><i>heuristi
15530 63 20 61 6c 67 6f 72 69 74 68 6d 73 3c 2f 69 3e  c algorithms</i>
15540 3c 2f 75 3e 20 68 65 61 76 69 6c 79 20 72 65 6c  </u> heavily rel
15550 79 69 6e 67 20 6f 6e 20 3c 75 3e 3c 69 3e 72 61  ying on <u><i>ra
15560 6e 64 6f 6d 3c 69 3e 3c 2f 75 3e 20 63 68 6f 69  ndom<i></u> choi
15570 63 65 73 2e 3c 62 72 3e 0d 0a 54 68 69 73 20 63  ces.<br>..This c
15580 6f 75 6c 64 20 65 61 73 69 6c 79 20 68 61 76 65  ould easily have
15590 20 74 68 65 20 70 72 61 63 74 69 63 61 6c 20 63   the practical c
155a0 6f 6e 73 65 71 75 65 6e 63 65 20 74 68 61 74 20  onsequence that 
155b0 72 65 73 6f 6c 76 69 6e 67 20 74 77 69 63 65 20  resolving twice 
155c0 28 6f 72 20 65 76 65 6e 20 6d 6f 72 65 20 74 69  (or even more ti
155d0 6d 65 73 29 20 74 68 65 20 73 61 6d 65 20 69 64  mes) the same id
155e0 65 6e 74 69 63 61 6c 20 54 53 50 20 71 75 65 72  entical TSP quer
155f0 79 20 63 6f 75 6c 64 20 65 76 65 6e 74 75 61 6c  y could eventual
15600 6c 79 20 72 65 74 75 72 6e 20 64 69 66 66 65 72  ly return differ
15610 65 6e 74 20 72 65 73 75 6c 74 73 65 74 73 2e 3c  ent resultsets.<
15620 62 72 3e 0d 0a 54 68 65 72 65 20 69 73 20 6e 6f  br>..There is no
15630 74 68 69 6e 67 20 69 6e 74 72 69 6e 73 69 63 61  thing intrinsica
15640 6c 6c 79 20 77 72 6f 6e 67 20 69 6e 20 74 68 69  lly wrong in thi
15650 73 2c 20 69 74 20 73 69 6d 70 6c 79 20 69 73 20  s, it simply is 
15660 61 20 64 69 72 65 63 74 20 63 6f 6e 73 65 71 75  a direct consequ
15670 65 6e 63 65 20 6f 66 20 75 73 69 6e 67 20 3c 75  ence of using <u
15680 3e 3c 69 3e 72 61 6e 64 6f 6d 6e 65 73 73 3c 2f  ><i>randomness</
15690 69 3e 3c 2f 75 3e 3b 20 77 65 20 61 72 65 20 73  i></u>; we are s
156a0 69 6d 70 6c 79 20 62 61 72 67 61 69 6e 69 6e 67  imply bargaining
156b0 20 3c 62 3e 65 78 61 63 74 6e 65 73 73 3c 2f 62   <b>exactness</b
156c0 3e 20 61 6e 64 20 3c 62 3e 72 65 70 72 6f 64 75  > and <b>reprodu
156d0 63 69 62 69 6c 69 74 79 3c 2f 62 3e 20 66 6f 72  cibility</b> for
156e0 20 3c 62 3e 71 75 69 63 6b 6e 65 73 73 3c 2f 62   <b>quickness</b
156f0 3e 2e 3c 62 72 3e 3c 62 72 3e 0d 0a 3c 62 3e 73  >.<br><br>..<b>s
15700 70 61 74 69 61 6c 69 74 65 5f 67 75 69 3c 2f 62  patialite_gui</b
15710 3e 20 6f 6e 20 69 74 73 20 6f 77 6e 20 61 64 6f  > on its own ado
15720 70 74 73 20 61 20 3c 62 3e 70 61 67 65 64 20 73  pts a <b>paged s
15730 74 72 61 74 65 67 79 3c 2f 62 3e 20 77 68 65 6e  trategy</b> when
15740 20 73 68 6f 77 69 6e 67 20 68 75 67 65 20 72 65   showing huge re
15750 73 75 6c 74 73 65 74 73 3b 20 74 68 69 73 20 72  sultsets; this r
15760 65 71 75 69 72 65 73 20 72 65 70 65 61 74 69 6e  equires repeatin
15770 67 20 61 67 61 69 6e 20 74 68 65 20 69 6e 69 74  g again the init
15780 69 61 6c 20 53 51 4c 20 71 75 65 72 79 20 65 61  ial SQL query ea
15790 63 68 20 74 69 6d 65 20 74 68 61 74 20 61 20 3c  ch time that a <
157a0 62 3e 6e 65 77 20 70 61 67 65 20 6f 66 20 35 30  b>new page of 50
157b0 30 20 72 6f 77 73 3c 2f 62 3e 20 68 61 73 20 74  0 rows</b> has t
157c0 6f 20 62 65 20 73 68 6f 77 6e 20 6f 6e 20 74 68  o be shown on th
157d0 65 20 63 75 72 72 65 6e 74 20 77 69 6e 64 6f 77  e current window
157e0 20 70 61 6e 65 6c 2e 3c 62 72 3e 0d 0a 54 68 65   panel.<br>..The
157f0 20 74 77 6f 20 74 68 69 6e 67 73 20 64 6f 6e 27   two things don'
15800 74 20 67 6f 20 74 6f 67 65 74 68 65 72 20 77 65  t go together we
15810 6c 6c 3b 20 73 6f 20 64 6f 6e 27 74 20 62 65 20  ll; so don't be 
15820 73 75 72 70 72 69 73 65 64 20 77 68 65 6e 20 65  surprised when e
15830 76 65 6e 74 75 61 6c 6c 79 20 64 69 73 63 6f 76  ventually discov
15840 65 72 69 6e 67 20 74 68 61 74 20 3c 62 3e 73 70  ering that <b>sp
15850 61 74 69 61 6c 69 74 65 5f 67 75 69 3c 2f 62 3e  atialite_gui</b>
15860 20 77 69 6c 6c 20 62 65 68 61 76 65 20 62 69 7a   will behave biz
15870 61 72 72 65 6c 79 20 77 68 69 6c 65 20 70 72 65  arrely while pre
15880 73 65 6e 74 69 6e 67 20 73 6f 6d 65 20 72 65 73  senting some res
15890 75 6c 74 73 65 74 20 72 65 74 75 72 6e 65 64 20  ultset returned 
158a0 62 79 20 61 20 54 53 50 20 71 75 65 72 79 2e 20  by a TSP query. 
158b0 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 55 50  ..<verbatim>..UP
158c0 44 41 54 45 20 62 79 66 6f 6f 74 20 53 45 54 20  DATE byfoot SET 
158d0 52 65 71 75 65 73 74 20 3d 20 27 54 53 50 27 3b  Request = 'TSP';
158e0 0d 0a 0d 0a 43 52 45 41 54 45 20 54 41 42 4c 45  ....CREATE TABLE
158f0 20 6d 79 5f 74 73 70 5f 73 6f 6c 75 74 69 6f 6e   my_tsp_solution
15900 20 41 53 0d 0a 53 45 4c 45 43 54 20 41 6c 67 6f   AS..SELECT Algo
15910 72 69 74 68 6d 2c 20 52 65 71 75 65 73 74 2c 20  rithm, Request, 
15920 4f 70 74 69 6f 6e 73 2c 20 44 65 6c 69 6d 69 74  Options, Delimit
15930 65 72 2c 20 52 6f 75 74 65 49 64 2c 20 52 6f 75  er, RouteId, Rou
15940 74 65 52 6f 77 2c 20 52 6f 6c 65 2c 20 4c 69 6e  teRow, Role, Lin
15950 6b 52 6f 77 69 64 2c 20 4e 6f 64 65 46 72 6f 6d  kRowid, NodeFrom
15960 2c 20 4e 6f 64 65 54 6f 2c 20 43 6f 73 74 2c 20  , NodeTo, Cost, 
15970 47 65 6f 6d 65 74 72 79 2c 20 4e 61 6d 65 0d 0a  Geometry, Name..
15980 46 52 4f 4d 20 62 79 66 6f 6f 74 0d 0a 57 48 45  FROM byfoot..WHE
15990 52 45 20 4e 6f 64 65 46 72 6f 6d 20 3d 20 31 37  RE NodeFrom = 17
159a0 38 37 33 31 20 41 4e 44 20 4e 6f 64 65 54 6f 20  8731 AND NodeTo 
159b0 3d 20 27 31 38 33 32 38 36 2c 31 38 31 39 39 39  = '183286,181999
159c0 2c 31 38 34 30 33 30 2c 31 38 33 38 38 32 2c 31  ,184030,183882,1
159d0 37 38 37 35 34 27 3b 0d 0a 0d 0a 2e 2e 2e 20 20  78754';.......  
159e0 3c 6e 6f 77 20 71 75 65 72 79 20 22 6d 79 5f 74  <now query "my_t
159f0 73 70 5f 73 6f 6c 75 74 69 6f 6e 22 20 75 73 69  sp_solution" usi
15a00 6e 67 20 73 70 61 74 69 61 6c 69 74 65 5f 67 75  ng spatialite_gu
15a10 69 3e 20 20 2e 2e 2e 0d 0a 0d 0a 44 52 4f 50 20  i>  .......DROP 
15a20 54 41 42 4c 45 20 6d 79 5f 74 73 70 5f 73 6f 6c  TABLE my_tsp_sol
15a30 75 74 69 6f 6e 3b 0d 0a 3c 2f 76 65 72 62 61 74  ution;..</verbat
15a40 69 6d 3e 0d 0a 3c 75 3e 48 69 6e 74 3c 2f 75 3e  im>..<u>Hint</u>
15a50 3a 20 72 65 73 6f 6c 76 69 6e 67 20 74 68 69 73  : resolving this
15a60 20 70 75 7a 7a 6c 69 6e 67 20 69 73 73 75 65 20   puzzling issue 
15a70 69 73 20 68 6f 77 65 76 65 72 20 62 61 73 69 63  is however basic
15a80 61 6c 6c 79 20 73 69 6d 70 6c 65 3a 0d 0a 3c 6f  ally simple:..<o
15a90 6c 3e 0d 0a 3c 6c 69 3e 79 6f 75 20 73 69 6d 70  l>..<li>you simp
15aa0 6c 79 20 68 61 76 65 20 74 6f 20 74 61 6b 65 20  ly have to take 
15ab0 61 20 3c 62 3e 73 74 61 74 69 63 20 73 6e 61 70  a <b>static snap
15ac0 73 68 6f 74 3c 2f 62 3e 20 6f 66 20 79 6f 75 72  shot</b> of your
15ad0 20 54 53 50 20 72 65 73 75 6c 74 73 65 74 20 62   TSP resultset b
15ae0 79 20 75 73 69 6e 67 20 74 68 65 20 3c 62 3e 43  y using the <b>C
15af0 52 45 41 54 45 20 54 41 42 4c 45 20 3c 69 3e 6e  REATE TABLE <i>n
15b00 61 6d 65 3c 2f 69 3e 20 41 53 20 3c 69 3e 54 53  ame</i> AS <i>TS
15b10 50 20 71 75 65 72 79 3c 69 3e 3c 2f 62 3e 2e 3c  P query<i></b>.<
15b20 2f 6c 69 3e 0d 0a 3c 6c 69 3e 74 68 65 6e 20 79  /li>..<li>then y
15b30 6f 75 20 63 61 6e 20 66 72 65 65 6c 79 20 65 78  ou can freely ex
15b40 61 6d 69 6e 65 20 74 68 65 20 61 62 6f 76 65 20  amine the above 
15b50 73 6e 61 70 73 68 6f 74 2e 3c 2f 6c 69 3e 0d 0a  snapshot.</li>..
15b60 3c 6c 69 3e 61 6e 64 20 66 69 6e 61 6c 6c 79 20  <li>and finally 
15b70 79 6f 75 20 63 61 6e 20 64 75 6c 79 20 3c 62 3e  you can duly <b>
15b80 44 52 4f 50 3c 2f 62 3e 20 74 68 65 20 73 6e 61  DROP</b> the sna
15b90 70 73 68 6f 74 20 6f 6e 63 65 20 69 74 27 73 20  pshot once it's 
15ba0 6e 6f 20 6c 6f 6e 67 65 72 20 75 73 65 66 75 6c  no longer useful
15bb0 2e 3c 2f 6c 69 3e 0d 0a 3c 2f 6f 6c 3e 0d 0a 3c  .</li>..</ol>..<
15bc0 2f 74 64 3e 3c 2f 74 72 3e 0d 0a 3c 2f 74 61 62  /td></tr>..</tab
15bd0 6c 65 3e 0d 0a 3c 62 72 3e 0d 0a 3c 74 61 62 6c  le>..<br>..<tabl
15be0 65 20 62 67 63 6f 6c 6f 72 3d 22 23 63 30 66 66  e bgcolor="#c0ff
15bf0 63 30 22 20 63 65 6c 6c 73 70 61 63 69 6e 67 3d  c0" cellspacing=
15c00 22 31 30 22 20 63 65 6c 6c 70 61 64 64 69 6e 67  "10" cellpadding
15c10 3d 22 36 22 3e 3c 74 72 3e 3c 74 64 3e 0d 0a 3c  ="6"><tr><td>..<
15c20 68 33 3e 4d 6f 72 65 20 61 62 6f 75 74 20 4c 69  h3>More about Li
15c30 6e 65 61 72 20 52 65 66 65 72 65 6e 63 69 6e 67  near Referencing
15c40 20 61 6e 64 20 56 69 72 74 75 61 6c 52 6f 75 74   and VirtualRout
15c50 69 6e 67 20 4c 69 6e 65 73 74 72 69 6e 67 73 3c  ing Linestrings<
15c60 2f 68 33 3e 20 0d 0a 59 6f 75 20 68 61 76 65 20  /h3> ..You have 
15c70 61 6c 72 65 61 64 79 20 73 65 65 6e 20 69 6e 20  already seen in 
15c80 61 20 70 72 65 76 69 6f 75 73 20 65 78 61 6d 70  a previous examp
15c90 6c 65 20 74 68 61 74 20 61 6c 6c 20 4c 49 4e 45  le that all LINE
15ca0 53 54 52 49 4e 47 73 20 63 72 65 61 74 65 64 20  STRINGs created 
15cb0 62 79 20 56 69 72 74 75 61 6c 52 6f 75 74 69 6e  by VirtualRoutin
15cc0 67 20 73 75 70 70 6f 72 74 20 74 68 65 20 3c 62  g support the <b
15cd0 3e 4d 3c 2f 62 3e 20 28 3c 62 3e 3c 69 3e 6d 65  >M</b> (<b><i>me
15ce0 61 73 75 72 65 3c 2f 69 3e 3c 2f 62 3e 29 20 63  asure</i></b>) c
15cf0 6f 6f 72 64 69 6e 61 74 65 20 69 6e 74 65 6e 64  oordinate intend
15d00 65 64 20 61 73 20 61 20 3c 62 3e 70 72 6f 67 72  ed as a <b>progr
15d10 65 73 73 69 76 65 20 63 6f 73 74 3c 2f 62 3e 20  essive cost</b> 
15d20 66 6f 72 20 65 61 63 68 20 76 65 72 74 65 78 2e  for each vertex.
15d30 20 41 6e 64 20 79 6f 75 20 61 6c 72 65 61 64 79   And you already
15d40 20 6b 6e 6f 77 20 74 68 65 20 74 68 65 79 20 63   know the they c
15d50 61 6e 20 73 75 70 70 6f 72 74 20 3c 62 3e 3c 69  an support <b><i
15d60 3e 6c 69 6e 65 61 72 20 72 65 66 65 72 65 6e 63  >linear referenc
15d70 69 6e 67 3c 2f 69 3e 3c 2f 62 3e 20 28 3c 62 3e  ing</i></b> (<b>
15d80 4c 52 3c 2f 62 3e 29 20 53 51 4c 20 66 75 6e 63  LR</b>) SQL func
15d90 74 69 6f 6e 73 2e 3c 62 72 3e 0d 0a 4c 65 74 27  tions.<br>..Let'
15da0 73 20 6e 6f 77 20 67 6f 20 69 6e 20 66 75 72 74  s now go in furt
15db0 68 65 72 20 64 65 70 74 68 2e 0d 0a 3c 68 33 3e  her depth...<h3>
15dc0 54 72 61 6a 65 63 74 6f 72 79 20 6f 62 6a 65 63  Trajectory objec
15dd0 74 73 3c 2f 68 33 3e 0d 0a 41 20 3c 62 3e 54 72  ts</h3>..A <b>Tr
15de0 61 6a 65 63 74 6f 72 79 3c 2f 62 3e 20 69 73 20  ajectory</b> is 
15df0 61 6e 79 20 4c 69 6e 65 73 74 72 69 6e 67 20 73  any Linestring s
15e00 75 70 70 6f 72 74 69 6e 67 20 3c 62 3e 4d 20 63  upporting <b>M c
15e10 6f 6f 72 64 69 6e 61 74 65 73 3c 2f 62 3e 20 77  oordinates</b> w
15e20 69 74 68 20 61 20 63 6f 6e 74 69 6e 75 6f 75 73  ith a continuous
15e30 6c 79 20 69 6e 63 72 65 61 73 69 6e 67 20 74 72  ly increasing tr
15e40 65 6e 64 2e 3c 62 72 3e 0d 0a 49 6e 20 73 69 6d  end.<br>..In sim
15e50 70 6c 65 72 20 77 6f 72 64 73 2c 20 74 68 65 20  pler words, the 
15e60 3c 62 3e 4d 2d 76 61 6c 75 65 3c 2f 62 3e 20 6f  <b>M-value</b> o
15e70 66 20 65 61 63 68 20 76 65 72 74 65 78 20 28 65  f each vertex (e
15e80 78 63 65 70 74 20 74 68 65 20 6c 61 73 74 20 6f  xcept the last o
15e90 6e 65 29 20 6d 75 73 74 20 62 65 20 3c 62 3e 6c  ne) must be <b>l
15ea0 65 73 73 65 72 3c 2f 62 3e 20 74 68 61 6e 20 74  esser</b> than t
15eb0 68 65 20 4d 2d 56 61 6c 75 65 20 6f 66 20 74 68  he M-Value of th
15ec0 65 20 6e 65 78 74 20 76 65 72 74 65 78 2e 0d 0a  e next vertex...
15ed0 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 53 45 4c 45  <verbatim>..SELE
15ee0 43 54 20 2a 20 46 52 4f 4d 20 6d 79 5f 74 73 70  CT * FROM my_tsp
15ef0 5f 73 6f 6c 75 74 69 6f 6e 20 57 48 45 52 45 20  _solution WHERE 
15f00 53 54 5f 49 73 56 61 6c 69 64 54 72 61 6a 65 63  ST_IsValidTrajec
15f10 74 6f 72 79 28 67 65 6f 6d 65 74 72 79 29 20 3d  tory(geometry) =
15f20 20 31 3b 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   1;..-----------
15f30 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 31 0d 0a 3c 2f 76  --------..1..</v
15f40 65 72 62 61 74 69 6d 3e 0d 0a 41 73 20 79 6f 75  erbatim>..As you
15f50 20 63 61 6e 20 65 61 73 69 6c 79 20 63 68 65 63   can easily chec
15f60 6b 20 62 79 20 63 61 6c 6c 69 6e 67 20 3c 62 3e  k by calling <b>
15f70 53 54 5f 49 73 56 61 6c 69 64 54 72 61 6a 65 63  ST_IsValidTrajec
15f80 74 6f 72 79 28 29 3c 2f 62 3e 20 65 76 65 72 79  tory()</b> every
15f90 20 4c 69 6e 65 73 74 72 69 6e 67 20 63 72 65 61   Linestring crea
15fa0 74 65 64 20 62 79 20 56 69 72 74 75 61 6c 52 6f  ted by VirtualRo
15fb0 75 74 69 6e 67 20 69 73 20 61 20 3c 62 3e 76 61  uting is a <b>va
15fc0 6c 69 64 20 54 72 61 6a 65 63 74 6f 72 79 3c 2f  lid Trajectory</
15fd0 62 3e 2e 0d 0a 3c 76 65 72 62 61 74 69 6d 3e 0d  b>...<verbatim>.
15fe0 0a 53 45 4c 45 43 54 20 53 54 5f 54 72 61 6a 65  .SELECT ST_Traje
15ff0 63 74 6f 72 79 49 6e 74 65 72 70 6f 6c 61 74 65  ctoryInterpolate
16000 50 6f 69 6e 74 28 47 65 6f 6d 65 74 72 79 2c 20  Point(Geometry, 
16010 31 30 30 2e 30 29 0d 0a 46 52 4f 4d 20 6d 79 5f  100.0)..FROM my_
16020 74 73 70 5f 73 6f 6c 75 74 69 6f 6e 0d 0a 57 48  tsp_solution..WH
16030 45 52 45 20 52 6f 75 74 65 49 64 20 3d 20 30 3b  ERE RouteId = 0;
16040 0d 0a 3c 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 53  ..</verbatim>..S
16050 6f 20 79 6f 75 20 6a 75 73 74 20 68 61 76 65 20  o you just have 
16060 74 6f 20 63 61 6c 6c 20 3c 62 3e 53 54 5f 54 72  to call <b>ST_Tr
16070 61 6a 65 63 74 6f 72 79 49 6e 74 65 72 70 6f 6c  ajectoryInterpol
16080 61 74 65 50 6f 69 6e 74 28 29 3c 2f 62 3e 20 69  atePoint()</b> i
16090 6e 20 6f 72 64 65 72 20 74 6f 20 63 72 65 61 74  n order to creat
160a0 65 20 61 20 50 4f 49 4e 54 20 65 78 61 63 74 6c  e a POINT exactl
160b0 79 20 6c 6f 63 61 74 65 64 20 6f 6e 20 74 68 65  y located on the
160c0 20 4c 69 6e 65 73 74 72 69 6e 67 20 61 74 20 74   Linestring at t
160d0 68 65 20 67 69 76 65 6e 20 3c 62 3e 63 6f 73 74  he given <b>cost
160e0 3c 2f 62 3e 2e 0d 0a 3c 62 72 3e 3c 62 72 3e 3c  </b>...<br><br><
160f0 68 72 3e 3c 62 72 3e 3c 62 72 3e 0d 0a 54 68 65  hr><br><br>..The
16100 20 73 69 64 65 20 6d 61 70 20 67 72 61 70 68 69   side map graphi
16110 63 61 6c 6c 79 20 73 68 6f 77 73 20 74 68 65 20  cally shows the 
16120 65 73 74 69 6d 61 74 65 64 20 70 6f 73 69 74 69  estimated positi
16130 6f 6e 73 20 65 76 65 72 79 20 31 30 30 6d 20 61  ons every 100m a
16140 73 73 75 6d 69 6e 67 20 74 68 65 20 73 61 6d 65  ssuming the same
16150 20 70 61 74 68 20 72 65 74 75 72 6e 65 64 20 62   path returned b
16160 79 20 74 68 65 20 6c 61 74 65 73 74 20 54 53 50  y the latest TSP
16170 20 71 75 65 72 79 2e 0d 0a 3c 2f 74 64 3e 3c 74   query...</td><t
16180 64 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20  d>              
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 0d 0a 3c 69 6d 67 20           ..<img 
1e8d0 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77  src="https://www
1e8e0 2e 67 61 69 61 2d 67 69 73 2e 69 74 2f 67 61 69  .gaia-gis.it/gai
1e8f0 61 2d 73 69 6e 73 2f 72 6f 75 74 69 6e 67 2d 66  a-sins/routing-f
1e900 69 67 73 2f 74 73 70 32 2e 6a 70 67 22 20 61 6c  igs/tsp2.jpg" al
1e910 74 3d 22 66 69 67 35 22 3e 0d 0a 3c 2f 74 64 3e  t="fig5">..</td>
1e920 3c 2f 74 72 3e 3c 2f 74 61 62 6c 65 3e 0d 0a 3c  </tr></table>..<
1e930 68 72 3e 3c 62 72 3e 0d 0a 3c 61 20 68 72 65 66  hr><br>..<a href
1e940 3d 22 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 61  ="https://www.ga
1e950 69 61 2d 67 69 73 2e 69 74 2f 66 6f 73 73 69 6c  ia-gis.it/fossil
1e960 2f 6c 69 62 73 70 61 74 69 61 6c 69 74 65 2f 77  /libspatialite/w
1e970 69 6b 69 3f 6e 61 6d 65 3d 34 2e 33 2e 30 2d 64  iki?name=4.3.0-d
1e980 6f 63 22 3e 62 61 63 6b 3c 2f 61 3e 0a 5a 20 36  oc">back</a>.Z 6
1e990 65 31 31 39 32 36 63 65 65 64 38 34 63 38 38 35  e11926ceed84c885
1e9a0 31 34 33 34 33 30 66 30 32 63 61 33 34 63 35 0a  143430f02ca34c5.