diff --git a/docs/index.rst b/docs/index.rst index 3ba2f5370386af95d73c69e2b9ada66d5a8a9d18..e519b49f988b452d0a11b8926126885ea6fbfcc9 100755 --- a/docs/index.rst +++ b/docs/index.rst @@ -62,6 +62,7 @@ Several Freifunk communities in Germany use Gluon as the foundation of their Fre package/gluon-ebtables-filter-ra-dhcp package/gluon-ebtables-limit-arp package/gluon-ebtables-source-filter + package/gluon-hoodselector package/gluon-radv-filterd package/gluon-scheduled-domain-switch package/gluon-web-admin diff --git a/docs/package/gluon-hoodselector-domainmap.jpeg b/docs/package/gluon-hoodselector-domainmap.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..e2ffc3e6975d319600c6543b2448786b1b352c1b Binary files /dev/null and b/docs/package/gluon-hoodselector-domainmap.jpeg differ diff --git a/docs/package/gluon-hoodselector-rectangle-example.svg b/docs/package/gluon-hoodselector-rectangle-example.svg new file mode 100644 index 0000000000000000000000000000000000000000..74d52968436cfb36c8e52e0bf7be64f230322130 --- /dev/null +++ b/docs/package/gluon-hoodselector-rectangle-example.svg @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd"> +<svg width="13cm" height="9cm" viewBox="348 138 253 169" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <g> + <rect style="fill: #ffffff" x="389" y="164" width="158" height="115"/> + <rect style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x="389" y="164" width="158" height="115"/> + </g> + <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="348" y="150"> + <tspan x="348" y="150">53.22,</tspan> + <tspan x="348" y="166">8.09 #</tspan> + </text> + <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="545" y="288"> + <tspan x="545" y="288"># 53.36,</tspan> + <tspan x="545" y="304"> 8.32</tspan> + </text> +</svg> diff --git a/docs/package/gluon-hoodselector.dia b/docs/package/gluon-hoodselector.dia new file mode 100644 index 0000000000000000000000000000000000000000..95c1b54baf04d7999a44efe596beb230d332143e --- /dev/null +++ b/docs/package/gluon-hoodselector.dia @@ -0,0 +1,1080 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/"> + <dia:diagramdata> + <dia:attribute name="background"> + <dia:color val="#ffffff"/> + </dia:attribute> + <dia:attribute name="pagebreak"> + <dia:color val="#000099"/> + </dia:attribute> + <dia:attribute name="paper"> + <dia:composite type="paper"> + <dia:attribute name="name"> + <dia:string>#A4#</dia:string> + </dia:attribute> + <dia:attribute name="tmargin"> + <dia:real val="2.8222000598907471"/> + </dia:attribute> + <dia:attribute name="bmargin"> + <dia:real val="2.8222000598907471"/> + </dia:attribute> + <dia:attribute name="lmargin"> + <dia:real val="2.8222000598907471"/> + </dia:attribute> + <dia:attribute name="rmargin"> + <dia:real val="2.8222000598907471"/> + </dia:attribute> + <dia:attribute name="is_portrait"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="scaling"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="fitto"> + <dia:boolean val="false"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="grid"> + <dia:composite type="grid"> + <dia:attribute name="width_x"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="width_y"> + <dia:real val="1"/> + </dia:attribute> + <dia:attribute name="visible_x"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="visible_y"> + <dia:int val="1"/> + </dia:attribute> + <dia:composite type="color"/> + </dia:composite> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#d8e5e5"/> + </dia:attribute> + <dia:attribute name="guides"> + <dia:composite type="guides"> + <dia:attribute name="hguides"/> + <dia:attribute name="vguides"/> + </dia:composite> + </dia:attribute> + </dia:diagramdata> + <dia:layer name="Background" visible="true" active="true"> + <dia:object type="Standard - Line" version="0" id="O0"> + <dia:attribute name="obj_pos"> + <dia:point val="5.118,6.44117"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="5.09285,6.17583;9.85847,6.75673"/> + </dia:attribute> + <dia:attribute name="conn_endpoints"> + <dia:point val="5.118,6.44117"/> + <dia:point val="9.80257,6.46945"/> + </dia:attribute> + <dia:attribute name="numcp"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="end_arrow"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="end_arrow_length"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:attribute name="end_arrow_width"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O22" connection="16"/> + <dia:connection handle="1" to="O1" connection="16"/> + </dia:connections> + </dia:object> + <dia:object type="Flowchart - Ellipse" version="0" id="O1"> + <dia:attribute name="obj_pos"> + <dia:point val="9.82771,4.17451"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="9.80271,4.14951;15.9493,8.82649"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="9.82771,4.17451"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="6.0965962127718223"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="4.6269755421061918"/> + </dia:attribute> + <dia:attribute name="border_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="padding"> + <dia:real val="0.35355339059327379"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#Load domains#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="12.876,6.683"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Line" version="0" id="O2"> + <dia:attribute name="obj_pos"> + <dia:point val="15.9492,6.48801"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="15.9242,6.19756;17.8779,6.77846"/> + </dia:attribute> + <dia:attribute name="conn_endpoints"> + <dia:point val="15.9492,6.48801"/> + <dia:point val="17.822,6.48801"/> + </dia:attribute> + <dia:attribute name="numcp"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="end_arrow"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="end_arrow_length"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:attribute name="end_arrow_width"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O1" connection="16"/> + <dia:connection handle="1" to="O5" connection="16"/> + </dia:connections> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O3"> + <dia:attribute name="obj_pos"> + <dia:point val="5.3,3.85"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="5.3,3.255;9.1875,4.0025"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#initialization#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="5.3,3.85"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#00ff00"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O4"> + <dia:attribute name="obj_pos"> + <dia:point val="20.9,3.85"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="18.0225,3.255;23.7775,4.0025"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#geolocation mode#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="20.9,3.85"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#00ff00"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + </dia:object> + <dia:object type="Flowchart - Ellipse" version="0" id="O5"> + <dia:attribute name="obj_pos"> + <dia:point val="17.8469,4.6641"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="17.8219,4.6391;24.2302,8.33694"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="17.8469,4.6641"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="6.3582762174076271"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="3.6478378887872491"/> + </dia:attribute> + <dia:attribute name="border_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="padding"> + <dia:real val="0.35355339059327379"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#geo pos. exist#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="21.026,6.68302"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Line" version="0" id="O6"> + <dia:attribute name="obj_pos"> + <dia:point val="24.2046,6.4672"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="24.1794,6.13989;30.4126,6.72078"/> + </dia:attribute> + <dia:attribute name="conn_endpoints"> + <dia:point val="24.2046,6.4672"/> + <dia:point val="30.3567,6.4269"/> + </dia:attribute> + <dia:attribute name="numcp"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="end_arrow"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="end_arrow_length"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:attribute name="end_arrow_width"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O5" connection="16"/> + <dia:connection handle="1" to="O24" connection="16"/> + </dia:connections> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O7"> + <dia:attribute name="obj_pos"> + <dia:point val="26.05,6.1"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="26.05,5.505;27.5725,6.2525"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#false#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="26.05,6.1"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + </dia:object> + <dia:object type="Flowchart - Ellipse" version="0" id="O8"> + <dia:attribute name="obj_pos"> + <dia:point val="17.7746,11.5374"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="17.7496,11.5124;24.2503,14.7877"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="17.7746,11.5374"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="6.4506704922983635"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="3.2253352461491853"/> + </dia:attribute> + <dia:attribute name="border_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="padding"> + <dia:real val="0.35355339059327379"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#get geoDomain#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="21,13.345"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Line" version="0" id="O9"> + <dia:attribute name="obj_pos"> + <dia:point val="21.0188,8.3365"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="20.718,8.3114;21.2989,11.5689"/> + </dia:attribute> + <dia:attribute name="conn_endpoints"> + <dia:point val="21.0188,8.3365"/> + <dia:point val="21.0064,11.513"/> + </dia:attribute> + <dia:attribute name="numcp"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="end_arrow"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="end_arrow_length"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:attribute name="end_arrow_width"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O5" connection="16"/> + <dia:connection handle="1" to="O8" connection="16"/> + </dia:connections> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O10"> + <dia:attribute name="obj_pos"> + <dia:point val="21.4,9.75"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="21.4,9.155;22.7125,9.9025"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#true#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="21.4,9.75"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Line" version="0" id="O11"> + <dia:attribute name="obj_pos"> + <dia:point val="21,14.7867"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="20.7096,14.7617;21.2905,16.6596"/> + </dia:attribute> + <dia:attribute name="conn_endpoints"> + <dia:point val="21,14.7867"/> + <dia:point val="21,16.6037"/> + </dia:attribute> + <dia:attribute name="numcp"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="end_arrow"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="end_arrow_length"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:attribute name="end_arrow_width"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O8" connection="16"/> + <dia:connection handle="1" to="O13" connection="16"/> + </dia:connections> + </dia:object> + <dia:object type="Standard - Line" version="0" id="O12"> + <dia:attribute name="obj_pos"> + <dia:point val="23.2629,11.9796"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="23.2292,7.69634;31.5265,12.0133"/> + </dia:attribute> + <dia:attribute name="conn_endpoints"> + <dia:point val="23.2629,11.9796"/> + <dia:point val="31.4768,7.73127"/> + </dia:attribute> + <dia:attribute name="numcp"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="end_arrow"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="end_arrow_length"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:attribute name="end_arrow_width"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O8" connection="16"/> + <dia:connection handle="1" to="O24" connection="16"/> + </dia:connections> + </dia:object> + <dia:object type="Flowchart - Ellipse" version="0" id="O13"> + <dia:attribute name="obj_pos"> + <dia:point val="17.8077,16.6288"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="17.7827,16.6038;24.2174,19.8462"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="17.8077,16.6288"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="6.3847117521647201"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="3.19235587608236"/> + </dia:attribute> + <dia:attribute name="border_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="padding"> + <dia:real val="0.35355339059327379"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#set geoDomain#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="21,18.42"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O14"> + <dia:attribute name="obj_pos"> + <dia:point val="25.8,9.7625"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="25.8,9.1675;27.3225,9.915"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#false#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="25.8,9.7625"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O15"> + <dia:attribute name="obj_pos"> + <dia:point val="21.5,15.6625"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="21.5,15.0675;22.8125,15.815"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#true#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="21.5,15.6625"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + </dia:object> + <dia:object type="Flowchart - Ellipse" version="0" id="O16"> + <dia:attribute name="obj_pos"> + <dia:point val="18.7879,21.5689"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="18.7629,21.5439;23.2372,23.806"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="18.7879,21.5689"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="4.4242658164348718"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="2.2121329082174381"/> + </dia:attribute> + <dia:attribute name="border_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="padding"> + <dia:real val="0.35355339059327379"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#Exit#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="21,22.87"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Line" version="0" id="O17"> + <dia:attribute name="obj_pos"> + <dia:point val="21,19.8465"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="20.7096,19.8215;21.2905,21.5999"/> + </dia:attribute> + <dia:attribute name="conn_endpoints"> + <dia:point val="21,19.8465"/> + <dia:point val="21,21.544"/> + </dia:attribute> + <dia:attribute name="numcp"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="end_arrow"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="end_arrow_length"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:attribute name="end_arrow_width"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O13" connection="16"/> + <dia:connection handle="1" to="O16" connection="16"/> + </dia:connections> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O18"> + <dia:attribute name="obj_pos"> + <dia:point val="45.6176,6.49732"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="45.6176,5.90232;45.6176,6.64982"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="45.6176,6.49732"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O19"> + <dia:attribute name="obj_pos"> + <dia:point val="45.6176,6.49732"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="45.6176,5.90232;45.6176,6.64982"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="45.6176,6.49732"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O20"> + <dia:attribute name="obj_pos"> + <dia:point val="4.825,11.825"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="4.825,11.23;4.825,11.9775"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="4.825,11.825"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O21"> + <dia:attribute name="obj_pos"> + <dia:point val="4.775,12.575"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="4.775,11.98;4.775,12.7275"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>##</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="4.775,12.575"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="0"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + </dia:object> + <dia:object type="Flowchart - Ellipse" version="0" id="O22"> + <dia:attribute name="obj_pos"> + <dia:point val="1.83,5.245"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="1.805,5.22;5.1191,7.64236"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="1.83,5.245"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="3.2640983876135579"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="2.372360167974596"/> + </dia:attribute> + <dia:attribute name="border_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="padding"> + <dia:real val="0.35355339059327379"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#Start#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="3.46205,6.62618"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Text" version="1" id="O23"> + <dia:attribute name="obj_pos"> + <dia:point val="33.97,3.865"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="30.5337,3.27;37.4062,4.0175"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#default domain mode#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="33.97,3.865"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + <dia:attribute name="valign"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="fill_color"> + <dia:color val="#00ff00"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + </dia:object> + <dia:object type="Flowchart - Ellipse" version="0" id="O24"> + <dia:attribute name="obj_pos"> + <dia:point val="30.38,4.57"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="30.355,4.545;37.7359,8.26046"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="30.38,4.57"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="7.3309270381183858"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="3.6654635190591929"/> + </dia:attribute> + <dia:attribute name="border_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="padding"> + <dia:real val="0.35355339059327379"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#set defaultDomain#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="34.0455,6.59773"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:object> + <dia:object type="Flowchart - Ellipse" version="0" id="O25"> + <dia:attribute name="obj_pos"> + <dia:point val="40.5379,5.19393"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="40.5129,5.16893;44.9872,7.43106"/> + </dia:attribute> + <dia:attribute name="elem_corner"> + <dia:point val="40.5379,5.19393"/> + </dia:attribute> + <dia:attribute name="elem_width"> + <dia:real val="4.4242658164348629"/> + </dia:attribute> + <dia:attribute name="elem_height"> + <dia:real val="2.2121329082174346"/> + </dia:attribute> + <dia:attribute name="border_width"> + <dia:real val="0.05000000074505806"/> + </dia:attribute> + <dia:attribute name="show_background"> + <dia:boolean val="true"/> + </dia:attribute> + <dia:attribute name="padding"> + <dia:real val="0.35355339059327379"/> + </dia:attribute> + <dia:attribute name="text"> + <dia:composite type="text"> + <dia:attribute name="string"> + <dia:string>#Exit#</dia:string> + </dia:attribute> + <dia:attribute name="font"> + <dia:font family="sans" style="0" name="Helvetica"/> + </dia:attribute> + <dia:attribute name="height"> + <dia:real val="0.80000000000000004"/> + </dia:attribute> + <dia:attribute name="pos"> + <dia:point val="42.75,6.495"/> + </dia:attribute> + <dia:attribute name="color"> + <dia:color val="#000000"/> + </dia:attribute> + <dia:attribute name="alignment"> + <dia:enum val="1"/> + </dia:attribute> + </dia:composite> + </dia:attribute> + </dia:object> + <dia:object type="Standard - Line" version="0" id="O26"> + <dia:attribute name="obj_pos"> + <dia:point val="37.7352,6.35918"/> + </dia:attribute> + <dia:attribute name="obj_bb"> + <dia:rectangle val="37.7352,6.08231;40.5139,6.58227"/> + </dia:attribute> + <dia:attribute name="conn_endpoints"> + <dia:point val="37.7352,6.35918"/> + <dia:point val="40.5139,6.32639"/> + </dia:attribute> + <dia:attribute name="numcp"> + <dia:int val="1"/> + </dia:attribute> + <dia:attribute name="line_width"> + <dia:real val="0"/> + </dia:attribute> + <dia:attribute name="end_arrow"> + <dia:enum val="3"/> + </dia:attribute> + <dia:attribute name="end_arrow_length"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:attribute name="end_arrow_width"> + <dia:real val="0.5"/> + </dia:attribute> + <dia:connections> + <dia:connection handle="0" to="O24" connection="16"/> + <dia:connection handle="1" to="O25" connection="16"/> + </dia:connections> + </dia:object> + </dia:layer> +</dia:diagram> diff --git a/docs/package/gluon-hoodselector.rst b/docs/package/gluon-hoodselector.rst new file mode 100644 index 0000000000000000000000000000000000000000..e1ddc4a6e9a3d68ee1cee75b682878b0a4e144bf --- /dev/null +++ b/docs/package/gluon-hoodselector.rst @@ -0,0 +1,130 @@ +gluon-hoodselector +================== + +This package provides an automated way to continuously select the correct +domain based on the geolocation of a node. The purpose of Hoodselector is to +automatically detect in which domain the node is located based on its +geolocation settings. Therefore domains are required to have bounding boxes, +defined as polygons or rectangles. Based on this information Hoodselector will +select a domain from the list of known domains and migrate towards it without +requiring a reboot. This package therefore provides a scalable and +decentralized approach to automatic domain selection. + +Background information +---------------------- + +The main problem of the Nordwest Freifunk community was the quickly rising +number of nodes in the network. This indirectly affected the stability of the +network, because the noise inside the network, e.g. management traffic from +the batman-adv protocol, was rising, too. Inside the community there were some +ideas like building separate firmwares for each region. This solution would +cause issues with splitting regions again and nodes scattered among regions +which belong to a different region. Therefore we decided to develop a +dynamic and decentralized management of regions called domains. +The Hoodselector's task is to choose the "right" domains in an intelligent way +and to hold the network together and accessible. + +A domain is defined by geostationary fixed shapes by using longitude & latitude +in combination with the domain configuration system. Below you can see a visual +example of a regional domain: + +.. image:: gluon-hoodselector-domainmap.jpeg + +Behaviour +------------------ + +The following is an abstract state diagramm which gives an overview +of the process: + +.. image:: gluon-hoodselector.svg + +The sequence of this diagram reflects the priority of its running modes. +Each mode will be explained separately below. + +geolocation mode +^^^^^^^^^^^^^^^^ + +This mode will only be entered when a node has location coordinates set. +Nodes with a position will set their domain based on it. +The node will skip to the next mode when the node (a) has no position or +(b) its position is not within any of the defined bounding boxes. + +default domain mode +^^^^^^^^^^^^^^^^^^^ + +This mode will be entered if no other mode before fits. +It provides a fallback to the default domain. + +Domain shapes +------------- + +There are two types of domains: the unique dehault one without a defined shape +and others which contain shapes. + +* **default domain** + +The default domain doesn’t hold any shapes and represents the inverted area of +all other shapes held by other domains with geo coordinates. It will only be +entered if a node could not be matched to a geo domain. A suggested approach is +to define the "old" network as default domain and gradually migrate nodes from +there to geo domains. + +* **geo domains** + +A geo domain contains shapes, which are described by three dimensional arrays +and represents the geographical size of the domain. There are two possible +definitions of these shapes. The first one is using rectangles so that only +two coordinates per box are needed to define it (see below for an +example). The second one uses polygons which can have multiple edges. +Each domain can hold multiple shapes. + +.. image:: gluon-hoodselector-rectangle-example.svg + +site.conf +--------- + +The designer of the shapes must always ensure that no overlapping polygons +between domains will be created or else the order in the domain list will +become relevant. If for example domain A and B overlap, Hoodselector +would, for that overlapping area, only ever reach domain A, but never domain B. +Here is an example of a rectangular definition of a shape: +Example:: + + hoodselector = { + shapes = { + { + { + lat = 53.128, + lon = 8.187 + }, + { + lat = 53.163, + lon = 8.216 + }, + }, + }, + }, + +Here is an example of a shape defined by a triangle: +Example:: + + hoodselector = { + shapes = { + { + { + lat = 53.128, + lon = 8.187 + }, + { + lat = 53.163, + lon = 8.216 + }, + { + lat = 53.196, + lon = 8.194 + }, + }, + }, + }, + +This package is incompatible with :doc:`gluon-config-mode-domain-select`. diff --git a/docs/package/gluon-hoodselector.svg b/docs/package/gluon-hoodselector.svg new file mode 100644 index 0000000000000000000000000000000000000000..fbf79a14daccbff03e719f0373a01bdc06732994 --- /dev/null +++ b/docs/package/gluon-hoodselector.svg @@ -0,0 +1,142 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd"> +<svg width="44cm" height="21cm" viewBox="36 65 864 412" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <g> + <line style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x1="102.36" y1="128.823" x2="185.552" y2="129.326"/> + <polygon style="fill: #000000" points="185.521,134.325 195.551,129.386 185.582,124.326 "/> + <polygon style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" points="185.521,134.325 195.551,129.386 185.582,124.326 "/> + </g> + <g> + <ellipse style="fill: #ffffff" cx="257.52" cy="129.76" rx="60.966" ry="46.2698"/> + <ellipse style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" cx="257.52" cy="129.76" rx="60.966" ry="46.2698"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="257.52" y="133.66"> + <tspan x="257.52" y="133.66">Load domains</tspan> + </text> + </g> + <g> + <line style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x1="318.984" y1="129.76" x2="345.941" y2="129.76"/> + <polygon style="fill: #000000" points="345.941,134.76 355.941,129.76 345.941,124.76 "/> + <polygon style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" points="345.941,134.76 355.941,129.76 345.941,124.76 "/> + </g> + <g> + <rect style="fill: #00ff00" x="106" y="65.1" width="77.75" height="14.95"/> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="106" y="77"> + <tspan x="106" y="77">initialization</tspan> + </text> + </g> + <g> + <rect style="fill: #00ff00" x="360.45" y="65.1" width="115.1" height="14.95"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="418" y="77"> + <tspan x="418" y="77">geolocation mode</tspan> + </text> + </g> + <g> + <ellipse style="fill: #ffffff" cx="420.521" cy="129.76" rx="63.5828" ry="36.4784"/> + <ellipse style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" cx="420.521" cy="129.76" rx="63.5828" ry="36.4784"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="420.521" y="133.66"> + <tspan x="420.521" y="133.66">geo pos. exist</tspan> + </text> + </g> + <g> + <line style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x1="484.092" y1="129.344" x2="596.635" y2="128.607"/> + <polygon style="fill: #000000" points="596.668,133.607 606.635,128.541 596.602,123.607 "/> + <polygon style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" points="596.668,133.607 606.635,128.541 596.602,123.607 "/> + </g> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="521" y="122"> + <tspan x="521" y="122">false</tspan> + </text> + <g> + <ellipse style="fill: #ffffff" cx="419.999" cy="263.001" rx="64.5067" ry="32.2534"/> + <ellipse style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" cx="419.999" cy="263.001" rx="64.5067" ry="32.2534"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="419.999" y="266.901"> + <tspan x="419.999" y="266.901">get geoDomain</tspan> + </text> + </g> + <g> + <line style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x1="420.376" y1="166.73" x2="420.169" y2="219.76"/> + <polygon style="fill: #000000" points="415.169,219.74 420.129,229.76 425.168,219.779 "/> + <polygon style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" points="415.169,219.74 420.129,229.76 425.168,219.779 "/> + </g> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="428" y="195"> + <tspan x="428" y="195">true</tspan> + </text> + <g> + <line style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x1="420" y1="295.735" x2="420" y2="321.575"/> + <polygon style="fill: #000000" points="415,321.575 420,331.575 425,321.575 "/> + <polygon style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" points="415,321.575 420,331.575 425,321.575 "/> + </g> + <g> + <line style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x1="465.257" y1="239.593" x2="620.21" y2="159.449"/> + <polygon style="fill: #000000" points="622.507,163.89 629.092,154.855 617.913,155.008 "/> + <polygon style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" points="622.507,163.89 629.092,154.855 617.913,155.008 "/> + </g> + <g> + <ellipse style="fill: #ffffff" cx="420.001" cy="364.499" rx="63.8471" ry="31.9236"/> + <ellipse style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" cx="420.001" cy="364.499" rx="63.8471" ry="31.9236"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="420.001" y="368.399"> + <tspan x="420.001" y="368.399">set geoDomain</tspan> + </text> + </g> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="516" y="195.25"> + <tspan x="516" y="195.25">false</tspan> + </text> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="430" y="313.25"> + <tspan x="430" y="313.25">true</tspan> + </text> + <g> + <ellipse style="fill: #ffffff" cx="420.001" cy="453.499" rx="44.2427" ry="22.1213"/> + <ellipse style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" cx="420.001" cy="453.499" rx="44.2427" ry="22.1213"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="420.001" y="457.399"> + <tspan x="420.001" y="457.399">Exit</tspan> + </text> + </g> + <g> + <line style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" x1="420.001" y1="396.929" x2="420.001" y2="420.38"/> + <polygon style="fill: #000000" points="415.001,420.38 420.001,430.38 425.001,420.38 "/> + <polygon style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" points="415.001,420.38 420.001,430.38 425.001,420.38 "/> + </g> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="912.352" y="129.946"> + <tspan x="912.352" y="129.946"></tspan> + </text> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="912.352" y="129.946"> + <tspan x="912.352" y="129.946"></tspan> + </text> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="96.5" y="236.5"> + <tspan x="96.5" y="236.5"></tspan> + </text> + <text font-size="12.8" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="95.5" y="251.5"> + <tspan x="95.5" y="251.5"></tspan> + </text> + <g> + <ellipse style="fill: #ffffff" cx="69.241" cy="128.624" rx="32.641" ry="23.7236"/> + <ellipse style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" cx="69.241" cy="128.624" rx="32.641" ry="23.7236"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="69.241" y="132.524"> + <tspan x="69.241" y="132.524">Start</tspan> + </text> + </g> + <g> + <rect style="fill: #00ff00" x="610.675" y="65.4" width="137.45" height="14.95"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="679.4" y="77.3"> + <tspan x="679.4" y="77.3">default domain mode</tspan> + </text> + </g> + <g> + <ellipse style="fill: #ffffff" cx="680.909" cy="128.055" rx="73.3093" ry="36.6546"/> + <ellipse style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" cx="680.909" cy="128.055" rx="73.3093" ry="36.6546"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="680.909" y="131.955"> + <tspan x="680.909" y="131.955">set defaultDomain</tspan> + </text> + </g> + <g> + <ellipse style="fill: #ffffff" cx="855.001" cy="126" rx="44.2427" ry="22.1213"/> + <ellipse style="fill: none; fill-opacity:0; stroke-width: 1; stroke: #000000" cx="855.001" cy="126" rx="44.2427" ry="22.1213"/> + <text font-size="12.8" style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal" x="855.001" y="129.9"> + <tspan x="855.001" y="129.9">Exit</tspan> + </text> + </g> + <g> + <line style="fill: none; fill-opacity:0; stroke-width: 0.02; stroke: #000000" x1="754.705" y1="127.184" x2="800.277" y2="126.646"/> + <polygon style="fill: #000000" points="800.336,131.645 810.276,126.528 800.218,121.646 "/> + <polygon style="fill: none; fill-opacity:0; stroke-width: 0.02; stroke: #000000" points="800.336,131.645 810.276,126.528 800.218,121.646 "/> + </g> +</svg>