Merge remote-tracking branch 'origin/distro' into distro
# Conflicts: # pkg/relay/relay.go
8
cmd/bumper/log.go
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/cybriq/proc"
|
||||||
|
log2 "github.com/cybriq/proc/pkg/log"
|
||||||
|
)
|
||||||
|
|
||||||
|
var log = log2.GetLogger(proc.PathBase)
|
||||||
BIN
doc/1507.05724v1.pdf
Normal file
BIN
doc/2008-080.pdf
Normal file
BIN
doc/2018-126.pdf
Normal file
BIN
doc/DanezisG09.pdf
Normal file
BIN
doc/acns11-certificateless.pdf
Normal file
42
doc/architecture.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Indranet Architecture Specification
|
||||||
|
|
||||||
|
This will be a top down view of the processes and the data that they manipulate in order to perform the tasks required to implement the protocol.
|
||||||
|
|
||||||
|
## Relays
|
||||||
|
|
||||||
|
- find the network using DNS seeding
|
||||||
|
- share addresses of routers in the p2p network with each other
|
||||||
|
|
||||||
|
## Clients
|
||||||
|
|
||||||
|
- find the network using DNS seeding
|
||||||
|
- also share addresses of routers with routers, but send them in order of reliability, creating a collaborative ranking consensus of most popular to least popular. To composit them, the two lists are zipped together and first appearance is eliminated in favour of later, causing failing/non faithful service to reduce chances of selling "service", and for which reason session purchases are kept smaller for previously unseen routers and slowly increased after repeated fidelity.
|
||||||
|
- acquire a collection of sessions with Relays that permit them to pay for traffic.
|
||||||
|
- Purchases are always done via onion proxies:
|
||||||
|
- send message with onion for payment request wrapped in onions, and a total fee which includes the fees for each hop, plus a noise factor
|
||||||
|
- node accepts payment, deducts its fee, forwards request to next in the onion, pays the fee
|
||||||
|
- each layer of the payment onion includes a confirmation/return onion, each with a composite cipher and encrypted header for unwrapping by the intervening hops. As with the packet routing, out-and-back for path diagnostics would reveal node position in the chain if the return path is the reverse of the forward path.
|
||||||
|
- node returns proof of payment back through open return channels. Composite cipher plus first hop back IP address is required.
|
||||||
|
- after 3 hops the seller is reached, who takes their payment. Reply goes through two hops using the return onion header and composite cipher back to the buyer, who can now freely send traffic through the relay.
|
||||||
|
- Onion structure for payment routing
|
||||||
|
- Outer layer encrypted to first hop, contains return session cipher which will be used by next hop on the return trip
|
||||||
|
- Fee specification, matching what relay advertises for its purchase fees
|
||||||
|
- Relay receives onion, replies with Lightning Network invoice for payment, previous hop pays invoice, and when paid, forwards payment onion on to specified next hop, holding the return payment identifier and encryption cipher to be used.
|
||||||
|
- When final hop is reached, all 3 hops have open payment session ciphers and identifiers waiting for the return message, which is forwarded back as pre-arranged.
|
||||||
|
- Once client has at least 6 sessions purchased, it can create circuits to perform proxy relaying
|
||||||
|
- Payment traffic and control signals can be identified by their use of publicly advertised relay public keys. They can only be one packet long (all packets are the same size in Indra) and in the processing queue are lower priority than paid packets but processed within a 1 second time window even if paid traffic is passing.
|
||||||
|
- Control signals include return path acknowledgement messages, which are used in payments as well as passing out from relay hops periodically as clients probe liveness. Because they cannot be rate limited easily, they are simply low priority bucket, but the bucket is emptied out proportionally to paid packets.
|
||||||
|
- Relay to Relay control signals such as liveness probing, DNS seed queries are also single packet messages and are treated the same way as all control signals.
|
||||||
|
- If a relay or client is overfilling buckets the relays simply drop the packets and for a time period as the frequency of spammy control messages indicates are dropped for a ban period to discourage spammy control messaging.
|
||||||
|
- Relays establish relay key codes to use for encryption which signals inter-relay traffic as opposed to client created. Clients only have keys the relay knows if they have purchased sessions and so they can only otherwise send messages that use the advertised public key of the relay and thus the relay can recognise spammy control messages being sent by proxy as well as directly.
|
||||||
|
- Each circuit consists of 5 onion layers, the 3rd layer is the exit and the remaining two are return path hops. Clients, which can be behind non-hole-punched NATs, if this is the case they open outbound connections to exit paths with a control signal which they poll infrequently to keep alive while messages are expected, these are non-paid traffic and it is known by the relay that a client is sending the messages.
|
||||||
|
- The circuit is circular, as contrasted to Tor circuits, and the circuit is constructed in one step by the client.
|
||||||
|
- Similar to the payment circuits, on the return two hops the nodes create open relaying sessions with identifiers tied to the paid for session, and when the exit point receives a reply related to the message sent out, it is passed back through the return hops.
|
||||||
|
- When the client gets a timeout and clearly a node in the circuit has failed or is congested, there is a probing message type that doesn't consume any bandwidth allocation if it doesn't happen frequently, which consists of a set of two return hops encoded into onions for each step on the path, and the one that fails to return is designated as faulty and a new relay is chosen for this hop in the path.
|
||||||
|
- An option that can be set on for circuits is to run a probe circuit test for a small extra cost of bandwidth allocation, which can be used to shorten the response time to a dead path and identify the node by sending out these trace path onions regularly, between 1 and 10 seconds depending on the application's liveness requirements. This enables the use of the network for time sensitive applications such as VR and multiplayer game environments, where more than a 1 second delay is expensive to the user and worth the extra bandwidth allocation cost. These extra fees are not greatly expensive, as the probes only contain simple relaying information in addition to the standard header for each onion, but they cost more for giving the ability to rapidly reroute circuits when they fail.
|
||||||
|
- In addition to the 3 hop out-and-back for payments and the 5 hop round trip circuit pattern, there will be the possibility of customisable relay paths such as concurrent parallel circuits of shorter length (such as only one intermediate, or 3 hop circuits) that provide stronger latency guarantees as well as increasing the network's overall signalling randomness.
|
||||||
|
- Relays splice their relay traffic together between the many sessions they have running in a random way so as to eliminate easy in-out observation to establish timing relations that signify a circuit.
|
||||||
|
- Messages are broken into standard network packet size of 1382 bytes with the payloads being split in some cases. The address, or 'to' cipher of the packet header identifies the session via a cloaking mechanism that uses secure random bytes hashed with the public key for receiving messages on this session, eliminating possible correlation.
|
||||||
|
- The return address key is provided within the encrypted payload for point to point messages with call/return messaging patterns such as ping/pong and question/answer queries.
|
||||||
|
- Every split 1382 byte long packet is encrypted with a shared secret generated from the cloaked 'to' key and uses two private keys, which the second is summed repeatedly for each subsequent packet before being used to sign it and provide the public part for the receiver to acquire the cipher. This further ensures that there is no common pattern to the data as no data relating to the difference between the ciphers is generated while allowing more efficient derivation of secret keys to be used to generate the signatures that hold the public key the receiver needs to decrypt, in combination with the private key corresponding to the cloaked public key.
|
||||||
|
- To improve accessibility of the system and avoid relay runners needing to run nodes on remote VPS, Indra Labs will offer a low cost point of presence service, probably around $5/month for a typical home connection speed (up to 100mbit) which allows relay runners to have their system physically accessible. In addition, by using Neutrino as the Bitcoin node in combination with this there will be the possibility of a lot more users running routers from their home connections, further increasing the size and anonymity of the network.
|
||||||
BIN
doc/image-20220912120917831.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
doc/indra.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
220
doc/indra.svg
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="128mm"
|
||||||
|
height="128mm"
|
||||||
|
viewBox="0 0 128 128"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||||
|
sodipodi:docname="indra.svg"
|
||||||
|
inkscape:export-filename="/home/loki/src/github.com/indra-labs/indra/doc/indra.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:zoom="1.0570195"
|
||||||
|
inkscape:cx="-222.32324"
|
||||||
|
inkscape:cy="467.82487"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1414"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1" />
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-84.777731,-165.39356)">
|
||||||
|
<g
|
||||||
|
id="g93789">
|
||||||
|
<path
|
||||||
|
id="path85513"
|
||||||
|
style="fill:#a9c0dd;stroke:#000000;stroke-width:2.365;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
|
||||||
|
d="m 130.39229,185.23683 v 4.7842 h 5.45652 v 18.65519 c -12.58903,5.22359 -20.79796,17.50946 -20.80597,31.13919 -1e-5,18.63127 15.10362,33.7349 33.73489,33.73488 18.63127,2e-5 33.7349,-15.10361 33.73489,-33.73488 -0.001,-13.63593 -8.21121,-25.93026 -20.80596,-31.15624 v -18.63814 h 5.456 v -4.7842 z"
|
||||||
|
sodipodi:nodetypes="cccccscccccc" />
|
||||||
|
<path
|
||||||
|
id="path93381"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.37463033;stroke:none;stroke-width:2.365;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 159.58948,185.23683 v 4.7842 h -5.456 v 18.63814 c 12.59475,5.22598 20.80496,17.52031 20.80596,31.15624 1e-5,17.35091 -13.09956,31.64021 -29.94804,33.5225 1.24328,0.13889 2.50598,0.21239 3.78633,0.21239 18.63127,2e-5 33.73491,-15.10362 33.7349,-33.73489 -0.001,-13.63593 -8.21122,-25.93026 -20.80597,-31.15624 v -18.63814 h 5.456 v -4.7842 z" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g85428"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,123.22923,239.52243)">
|
||||||
|
<g
|
||||||
|
id="color">
|
||||||
|
<path
|
||||||
|
fill="#92d3f5"
|
||||||
|
stroke="none"
|
||||||
|
d="m 56.0001,46.7065 c 0,11.7749 -8.9543,21.2965 -20,21.2965 -11.0457,0 -20,-9.5455 -20,-21.3204 0,0 -0.2191,-14.3086 16.6559,-40.1878 0,0 3.1666,-5.3703 6.3541,-0.3523 16.875,25.8791 16.99,40.564 16.99,40.564"
|
||||||
|
id="path85404" />
|
||||||
|
<path
|
||||||
|
fill="#61b2e4"
|
||||||
|
stroke="none"
|
||||||
|
d="m 36,3.9991 c 12.875,10.3759 19.875,40.8753 19.875,40.8753 0,15.0006 -8.8293,23.1265 -19.875,23.1265 0,0 22,-18.1265 0,-64.0018"
|
||||||
|
id="path85406" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="hair" />
|
||||||
|
<g
|
||||||
|
id="skin" />
|
||||||
|
<g
|
||||||
|
id="skin-shadow" />
|
||||||
|
<g
|
||||||
|
id="line">
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
stroke-width="2"
|
||||||
|
d="m 56.0001,46.7065 c 0,11.7749 -8.9543,21.2965 -20,21.2965 -11.0457,0 -20,-9.5455 -20,-21.3204 0,0 -0.2191,-14.3086 16.6559,-40.1878 0,0 3.1666,-5.3703 6.3541,-0.3523 16.875,25.8791 16.99,40.564 16.99,40.564"
|
||||||
|
id="path85412" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g85466"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,157.02518,240.38649)">
|
||||||
|
<g
|
||||||
|
id="color-9">
|
||||||
|
<path
|
||||||
|
fill="#d0cfce"
|
||||||
|
stroke-width="1.175"
|
||||||
|
d="m 22.08,21.58 c 0,0 8.815,-1.028 13.74,-5.069 0,0 11.09,6.391 13.88,5.289 0,0 2.792,13.74 5.73,13.96 0,0 -5.436,13 -4.775,13.66 0,0 -13.44,2.424 -14.62,6.244 0,0 -8.228,-7.934 -14.1,-5.583 0,0 -3.232,-13.08 -5.73,-13.59 0,0 7.199,-12.86 5.877,-14.91 z"
|
||||||
|
id="path85430" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="hair-0" />
|
||||||
|
<g
|
||||||
|
id="skin-6" />
|
||||||
|
<g
|
||||||
|
id="skin-shadow-8" />
|
||||||
|
<g
|
||||||
|
id="line-7">
|
||||||
|
<line
|
||||||
|
x1="8.1120005"
|
||||||
|
x2="63.889999"
|
||||||
|
y1="36"
|
||||||
|
y2="36"
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
stroke-width="2"
|
||||||
|
id="line85436" />
|
||||||
|
<line
|
||||||
|
x1="36"
|
||||||
|
x2="36"
|
||||||
|
y1="8.1120005"
|
||||||
|
y2="63.889999"
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
stroke-width="2"
|
||||||
|
id="line85438" />
|
||||||
|
<line
|
||||||
|
x1="55.720001"
|
||||||
|
x2="16.280001"
|
||||||
|
y1="16.280001"
|
||||||
|
y2="55.720001"
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
stroke-width="2"
|
||||||
|
id="line85440" />
|
||||||
|
<line
|
||||||
|
x1="55.720001"
|
||||||
|
x2="16.280001"
|
||||||
|
y1="55.720001"
|
||||||
|
y2="16.280001"
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
stroke-width="2"
|
||||||
|
id="line85442" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
stroke-width="2"
|
||||||
|
d="m 36.14,55.88 c 0,0 -6.289,-6.553 -14.69,-5.373 0,0 0.1913,-9.123 -5.838,-14.25 0,0 6.442,-6.65 5.997,-14.67 0,0 9.38,-0.112 14.32,-6.1 0,0 6.289,6.553 14.31,6.108 0,0 0.112,9.38 6.214,14.68 0,0 -6.44,6.649 -5.995,14.09 0,0 -9.38,-0.469 -14.32,5.519 z"
|
||||||
|
id="path85444" />
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
stroke-width="2"
|
||||||
|
d="m 49.25,35.48 c 0,0 -3.624,4.594 -3.49,9.856 0,0 -6.702,0.5071 -10.04,3.803 0,0 -3.846,-3.97 -9.214,-3.803 0,0 -0.9087,-6.074 -4.256,-9.612 0,0 4.338,-4.547 4.091,-9.856 0,0 6.501,-0.1241 10.12,-4.052 0,0 3.352,4.093 9.297,4.052 0,0 0.1421,6.365 3.49,9.612 z"
|
||||||
|
id="path85446" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g85489"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,139.25277,208.56362)">
|
||||||
|
<g
|
||||||
|
id="color-90">
|
||||||
|
<path
|
||||||
|
fill="#fcea2b"
|
||||||
|
stroke="none"
|
||||||
|
d="M 48.143,3.7261 16.316,37.8507 c -0.6029,0.6465 -0.1141,1.6589 0.801,1.6589 H 36.2236 L 19.1503,67.0482 c -0.1662,0.2681 0.215,0.5364 0.4424,0.3114 l 36.0628,-35.704 c 0.6436,-0.6372 0.1626,-1.6882 -0.7725,-1.6882 H 36.3826 Z"
|
||||||
|
id="path85468" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="hair-3" />
|
||||||
|
<g
|
||||||
|
id="skin-3" />
|
||||||
|
<g
|
||||||
|
id="skin-shadow-3" />
|
||||||
|
<g
|
||||||
|
id="line-73">
|
||||||
|
<path
|
||||||
|
fill="none"
|
||||||
|
stroke="#000000"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
stroke-miterlimit="10"
|
||||||
|
stroke-width="2"
|
||||||
|
d="M 48.1628,4.4406 16.3224,37.7817 c -0.6174,0.6465 -0.1168,1.6589 0.8201,1.6589 H 36.2254 L 17.9214,68.2739 55.6483,31.7954 c 0.659,-0.6372 0.1665,-1.6882 -0.791,-1.6882 H 36.3846 Z"
|
||||||
|
id="path85474" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="rect86282"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.49631;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 132.89958,229.39734 c -0.43136,0.74697 -0.86272,1.49395 -1.29407,2.24092 5.26249,3.03836 10.52499,6.07671 15.78749,9.11507 0,6.0765 0,12.15299 0,18.22949 0.8625,0 1.725,0 2.58749,0 0,-6.0765 0,-12.15299 0,-18.22949 5.2625,-3.03836 10.52499,-6.07671 15.78749,-9.11507 -0.43136,-0.74697 -0.86271,-1.49395 -1.29408,-2.24092 -5.26238,3.03825 -10.52477,6.0765 -15.78716,9.11474 -5.26238,-3.03824 -10.52477,-6.07649 -15.78716,-9.11474 z"
|
||||||
|
inkscape:transform-center-x="-0.15672589"
|
||||||
|
inkscape:transform-center-y="4.1330013" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 8.5 KiB |
BIN
doc/logo-for-dark-ground.png
Normal file
|
After Width: | Height: | Size: 87 KiB |
275
doc/logo-for-dark-ground.svg
Normal file
@@ -0,0 +1,275 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="83mm"
|
||||||
|
height="83mm"
|
||||||
|
viewBox="0 0 83.000002 82.999998"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||||
|
sodipodi:docname="logo-for-dark-ground.svg"
|
||||||
|
inkscape:export-filename="/home/loki/src/github.com/indra-labs/indra/doc/logo-for-dark-ground.png"
|
||||||
|
inkscape:export-xdpi="332.32001"
|
||||||
|
inkscape:export-ydpi="332.32001"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="true"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
height="78.26655mm"
|
||||||
|
width="53.00204mm"
|
||||||
|
inkscape:zoom="1.495"
|
||||||
|
inkscape:cx="21.73913"
|
||||||
|
inkscape:cy="213.71237"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1382"
|
||||||
|
inkscape:window-x="1920"
|
||||||
|
inkscape:window-y="32"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g8657" />
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 43.866722 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="78.266554 : 43.866721 : 1"
|
||||||
|
inkscape:persp3d-origin="39.133277 : 30.822301 : 1"
|
||||||
|
id="perspective1042" />
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="DotL"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="DotL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="matrix(0.8,0,0,0.8,5.92,0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
|
||||||
|
id="path2513" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="Arrow2Lstart"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Lstart"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="matrix(1.1,0,0,1.1,1.1,0)"
|
||||||
|
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
|
||||||
|
id="path2470" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-65.908931,-68.757581)">
|
||||||
|
<g
|
||||||
|
id="g8657"
|
||||||
|
transform="matrix(1,0,0,0.95562019,0,6.2009447)">
|
||||||
|
<g
|
||||||
|
id="g5656"
|
||||||
|
transform="translate(2.3055616,0.15403097)">
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path22488-0"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="78.505653"
|
||||||
|
sodipodi:cy="247.61714"
|
||||||
|
sodipodi:r1="138.3232"
|
||||||
|
sodipodi:r2="153.69244"
|
||||||
|
sodipodi:arg1="-0.5365813"
|
||||||
|
sodipodi:arg2="-0.012982524"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.19479421,0.24367634,-0.23205164,-0.20229099,177.85578,139.69583)"
|
||||||
|
d="M 197.38909,176.90622 199.18483,315.21776 80.301387,385.92868 -40.377787,318.32806 -42.173521,180.01652 76.70992,109.3056 Z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path22488"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="78.505653"
|
||||||
|
sodipodi:cy="247.61714"
|
||||||
|
sodipodi:r1="153.69244"
|
||||||
|
sodipodi:r2="133.10155"
|
||||||
|
sodipodi:arg1="-0.5365813"
|
||||||
|
sodipodi:arg2="-0.012982524"
|
||||||
|
inkscape:rounded="-0.01"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.15886687,0.20024997,-0.18925263,-0.16624004,164.43752,134.17821)"
|
||||||
|
d="m 210.59837,169.04945 c -0.78568,-1.32093 1.24414,155.02037 1.99526,153.67949 0.75112,-1.34088 -133.629512,78.58765 -132.092717,78.56769 1.536795,-0.0199 -134.873651,-76.43272 -134.087974,-75.1118 0.785677,1.32093 -1.244142,-155.02037 -1.99526,-153.67949 -0.751118,1.34088 133.629509,-78.587643 132.092715,-78.56769 -1.536795,0.01995 134.873646,76.43273 134.087976,75.1118 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ffff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.3651206,-0.06566284,0.06274874,-0.38207711,145.40688,120.3646)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ff0000;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.3651206,0.06566284,-0.06274874,0.38207711,64.581656,97.693199)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#0000ff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-7"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.08539338,-0.24223746,0.23148701,-0.08935914,119.34553,145.08559)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#fffb05;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04-7"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.08539338,0.24223746,-0.23148701,0.08935914,90.642612,72.972662)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-2"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.07888846,0.09925301,-0.09484817,-0.08255211,107.47216,83.249828)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ff00ff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04-5"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.07888846,-0.09925301,0.09484817,0.08255211,102.51619,134.80827)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<g
|
||||||
|
id="g3681">
|
||||||
|
<path
|
||||||
|
id="path9149-8"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 99.84025,88.067516 16.24265,2.694412 10.35086,-13.372831 -16.24195,-2.694288 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 121.97377,106.82859 132.32533,93.455884 126.43341,77.389383 116.08268,90.761469 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 110.14828,129.99026 93.905634,127.29585 83.554776,140.6687 99.79673,143.36297 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 88.014778,111.22921 -10.351571,13.37269 5.89193,16.0665 10.350732,-13.37207 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-6"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 121.97321,106.82852 3.92371,10.70063 10.81762,1.79421 -3.92356,-10.70017 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-3"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 119.00302,126.43483 10.81777,1.79467 6.89347,-8.90627 -10.81718,-1.79437 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4-5"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 88.014934,111.22973 84.091223,100.5291 73.273604,98.734888 77.19715,109.43506 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4-9"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 90.985122,91.623414 -10.817783,-1.794674 -6.893455,8.906274 10.81716,1.794376 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-1"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 90.984629,91.623438 3.446949,-4.453081 -1.961971,-5.350252 -3.446799,4.452884 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-7"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 99.84018,88.067715 -1.961811,-5.350446 -5.408741,-0.897018 1.961786,5.35009 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4-7"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 119.00371,126.43465 -3.44695,4.45309 1.96198,5.35026 3.44679,-4.45289 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 110.14815,129.99038 1.96183,5.35045 5.40873,0.89697 -1.96179,-5.35009 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 12 KiB |
BIN
doc/logo-for-dark-tshirt.png
Normal file
|
After Width: | Height: | Size: 199 KiB |
287
doc/logo-for-dark-tshirt.svg
Normal file
@@ -0,0 +1,287 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="124.73923mm"
|
||||||
|
height="103.76368mm"
|
||||||
|
viewBox="0 0 124.73924 103.76368"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||||
|
sodipodi:docname="logo-for-dark-tshirt.svg"
|
||||||
|
inkscape:export-filename="/home/loki/src/github.com/indra-labs/indra/doc/logo-for-dark-tshirt.png"
|
||||||
|
inkscape:export-xdpi="528.73993"
|
||||||
|
inkscape:export-ydpi="528.73993"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#000000"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="true"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
height="78.26655mm"
|
||||||
|
width="53.00204mm"
|
||||||
|
inkscape:zoom="1.495"
|
||||||
|
inkscape:cx="100.6689"
|
||||||
|
inkscape:cy="213.04348"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1414"
|
||||||
|
inkscape:window-x="1920"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g8657" />
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 64.630403 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="78.266556 : 64.630402 : 1"
|
||||||
|
inkscape:persp3d-origin="39.133278 : 51.585982 : 1"
|
||||||
|
id="perspective1042" />
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="DotL"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="DotL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="matrix(0.8,0,0,0.8,5.92,0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
|
||||||
|
id="path2513" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="Arrow2Lstart"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Lstart"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="matrix(1.1,0,0,1.1,1.1,0)"
|
||||||
|
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
|
||||||
|
id="path2470" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-45.039316,-68.904776)">
|
||||||
|
<g
|
||||||
|
id="g8657"
|
||||||
|
transform="matrix(1,0,0,0.95562019,0,6.2009447)">
|
||||||
|
<g
|
||||||
|
id="g5656"
|
||||||
|
transform="translate(2.3055616,0.15403097)">
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path22488-0"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="78.505653"
|
||||||
|
sodipodi:cy="247.61714"
|
||||||
|
sodipodi:r1="138.3232"
|
||||||
|
sodipodi:r2="153.69244"
|
||||||
|
sodipodi:arg1="-0.5365813"
|
||||||
|
sodipodi:arg2="-0.012982524"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.19479421,0.24367634,-0.23205164,-0.20229099,177.85578,139.69583)"
|
||||||
|
d="M 197.38909,176.90622 199.18483,315.21776 80.301387,385.92868 -40.377787,318.32806 -42.173521,180.01652 76.70992,109.3056 Z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path22488"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="78.505653"
|
||||||
|
sodipodi:cy="247.61714"
|
||||||
|
sodipodi:r1="153.69244"
|
||||||
|
sodipodi:r2="133.10155"
|
||||||
|
sodipodi:arg1="-0.5365813"
|
||||||
|
sodipodi:arg2="-0.012982524"
|
||||||
|
inkscape:rounded="-0.01"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.15886687,0.20024997,-0.18925263,-0.16624004,164.43752,134.17821)"
|
||||||
|
d="m 210.59837,169.04945 c -0.78568,-1.32093 1.24414,155.02037 1.99526,153.67949 0.75112,-1.34088 -133.629512,78.58765 -132.092717,78.56769 1.536795,-0.0199 -134.873651,-76.43272 -134.087974,-75.1118 0.785677,1.32093 -1.244142,-155.02037 -1.99526,-153.67949 -0.751118,1.34088 133.629509,-78.587643 132.092715,-78.56769 -1.536795,0.01995 134.873646,76.43273 134.087976,75.1118 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ffff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.3651206,-0.06566284,0.06274874,-0.38207711,145.40688,120.3646)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ff0000;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.3651206,0.06566284,-0.06274874,0.38207711,64.581656,97.693199)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#0000ff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-7"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.08539338,-0.24223746,0.23148701,-0.08935914,119.34553,145.08559)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#fffb05;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04-7"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.08539338,0.24223746,-0.23148701,0.08935914,90.642612,72.972662)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-2"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.07888846,0.09925301,-0.09484817,-0.08255211,107.47216,83.249828)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ff00ff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04-5"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.07888846,-0.09925301,0.09484817,0.08255211,102.51619,134.80827)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<g
|
||||||
|
id="g3681">
|
||||||
|
<path
|
||||||
|
id="path9149-8"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 99.84025,88.067516 16.24265,2.694412 10.35086,-13.372831 -16.24195,-2.694288 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 121.97377,106.82859 132.32533,93.455884 126.43341,77.389383 116.08268,90.761469 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 110.14828,129.99026 93.905634,127.29585 83.554776,140.6687 99.79673,143.36297 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 88.014778,111.22921 -10.351571,13.37269 5.89193,16.0665 10.350732,-13.37207 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-6"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 121.97321,106.82852 3.92371,10.70063 10.81762,1.79421 -3.92356,-10.70017 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-3"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 119.00302,126.43483 10.81777,1.79467 6.89347,-8.90627 -10.81718,-1.79437 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4-5"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 88.014934,111.22973 84.091223,100.5291 73.273604,98.734888 77.19715,109.43506 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4-9"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 90.985122,91.623414 -10.817783,-1.794674 -6.893455,8.906274 10.81716,1.794376 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-1"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 90.984629,91.623438 3.446949,-4.453081 -1.961971,-5.350252 -3.446799,4.452884 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-7"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 99.84018,88.067715 -1.961811,-5.350446 -5.408741,-0.897018 1.961786,5.35009 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4-7"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 119.00371,126.43465 -3.44695,4.45309 1.96198,5.35026 3.44679,-4.45289 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 110.14815,129.99038 1.96183,5.35045 5.40873,0.89697 -1.96179,-5.35009 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:25.9831px;font-family:'Noto Sans';-inkscape-font-specification:'Ubuntu Mono';fill:#ffffff;fill-opacity:1;stroke-width:1.08944911;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
x="45.033955"
|
||||||
|
y="170.28909"
|
||||||
|
id="text53474"
|
||||||
|
transform="scale(0.97755829,1.0229569)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan53472"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.08944911;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||||
|
x="45.033955"
|
||||||
|
y="170.28909">INDRANET</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 13 KiB |
BIN
doc/logo.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
256
doc/logo.svg
Normal file
@@ -0,0 +1,256 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="83mm"
|
||||||
|
height="83mm"
|
||||||
|
viewBox="0 0 83.000002 82.999998"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||||
|
sodipodi:docname="logo.svg"
|
||||||
|
inkscape:export-filename="/home/loki/src/github.com/indra-labs/indra/doc/logo.png"
|
||||||
|
inkscape:export-xdpi="313.37"
|
||||||
|
inkscape:export-ydpi="313.37"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="true"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
height="78.26655mm"
|
||||||
|
width="53.00204mm"
|
||||||
|
inkscape:zoom="1.495"
|
||||||
|
inkscape:cx="21.73913"
|
||||||
|
inkscape:cy="213.71237"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1382"
|
||||||
|
inkscape:window-x="1920"
|
||||||
|
inkscape:window-y="32"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g8657" />
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 43.866722 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="78.266554 : 43.866721 : 1"
|
||||||
|
inkscape:persp3d-origin="39.133277 : 30.822301 : 1"
|
||||||
|
id="perspective1042" />
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="DotL"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="DotL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="matrix(0.8,0,0,0.8,5.92,0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
|
||||||
|
id="path2513" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="Arrow2Lstart"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow2Lstart"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="matrix(1.1,0,0,1.1,1.1,0)"
|
||||||
|
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
|
||||||
|
id="path2470" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-65.908931,-68.757581)">
|
||||||
|
<g
|
||||||
|
id="g8657"
|
||||||
|
transform="matrix(1,0,0,0.95562019,0,6.2009447)">
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path22488"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="78.505653"
|
||||||
|
sodipodi:cy="247.61714"
|
||||||
|
sodipodi:r1="153.69244"
|
||||||
|
sodipodi:r2="133.10155"
|
||||||
|
sodipodi:arg1="-0.5365813"
|
||||||
|
sodipodi:arg2="-0.012982524"
|
||||||
|
inkscape:rounded="-0.01"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.15886687,0.20024997,-0.18925263,-0.16624004,166.74308,134.33224)"
|
||||||
|
d="m 210.59837,169.04945 c -0.78568,-1.32093 1.24414,155.02037 1.99526,153.67949 0.75112,-1.34088 -133.629512,78.58765 -132.092717,78.56769 1.536795,-0.0199 -134.873651,-76.43272 -134.087974,-75.1118 0.785677,1.32093 -1.244142,-155.02037 -1.99526,-153.67949 -0.751118,1.34088 133.629509,-78.587643 132.092715,-78.56769 -1.536795,0.01995 134.873646,76.43273 134.087976,75.1118 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ffff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.3651206,-0.06566284,0.06274874,-0.38207711,147.71244,120.51863)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ff0000;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.3651206,0.06566284,-0.06274874,0.38207711,66.887218,97.84723)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#0000ff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-7"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.08539338,-0.24223746,0.23148701,-0.08935914,121.65109,145.23962)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#fffb05;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04-7"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.08539338,0.24223746,-0.23148701,0.08935914,92.948174,73.126693)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-2"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.07888846,0.09925301,-0.09484817,-0.08255211,109.77772,83.403859)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ff00ff;fill-opacity:1;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path9149-04-5"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="90.942123"
|
||||||
|
sodipodi:cy="61.850342"
|
||||||
|
sodipodi:r1="44.389393"
|
||||||
|
sodipodi:r2="38.442341"
|
||||||
|
sodipodi:arg1="1.0342211"
|
||||||
|
sodipodi:arg2="1.5578199"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.07888846,-0.09925301,0.09484817,0.08255211,104.82175,134.9623)"
|
||||||
|
d="m 113.63378,100.00145 -44.385653,0.576 -22.691659,-38.151108 21.693996,-38.727105 44.385656,-0.576001 22.69166,38.151105 z" />
|
||||||
|
<g
|
||||||
|
id="g3681"
|
||||||
|
transform="translate(2.3055616,0.15403097)">
|
||||||
|
<path
|
||||||
|
id="path9149-8"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 99.84025,88.067516 16.24265,2.694412 10.35086,-13.372831 -16.24195,-2.694288 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 121.97377,106.82859 132.32533,93.455884 126.43341,77.389383 116.08268,90.761469 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 110.14828,129.99026 93.905634,127.29585 83.554776,140.6687 99.79673,143.36297 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:3.38752;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 88.014778,111.22921 -10.351571,13.37269 5.89193,16.0665 10.350732,-13.37207 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-6"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 121.97321,106.82852 3.92371,10.70063 10.81762,1.79421 -3.92356,-10.70017 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-3"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 119.00302,126.43483 10.81777,1.79467 6.89347,-8.90627 -10.81718,-1.79437 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4-5"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="M 88.014934,111.22973 84.091223,100.5291 73.273604,98.734888 77.19715,109.43506 Z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4-9"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:2.25609;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 90.985122,91.623414 -10.817783,-1.794674 -6.893455,8.906274 10.81716,1.794376 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-1"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 90.984629,91.623438 3.446949,-4.453081 -1.961971,-5.350252 -3.446799,4.452884 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-7"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 99.84018,88.067715 -1.961811,-5.350446 -5.408741,-0.897018 1.961786,5.35009 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-8-4-7"
|
||||||
|
style="fill:#000000;fill-opacity:0.33181;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 119.00371,126.43465 -3.44695,4.45309 1.96198,5.35026 3.44679,-4.45289 z" />
|
||||||
|
<path
|
||||||
|
id="path9149-0-4-4"
|
||||||
|
style="fill:#ffffff;fill-opacity:0.330149;stroke-width:1.12805;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
d="m 110.14815,129.99038 1.96183,5.35045 5.40873,0.89697 -1.96179,-5.35009 z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 11 KiB |
BIN
doc/message_format.jpg
Normal file
|
After Width: | Height: | Size: 323 KiB |
680
doc/onions.svg
Normal file
@@ -0,0 +1,680 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="139.07982mm"
|
||||||
|
height="124.26574mm"
|
||||||
|
viewBox="0 0 139.07982 124.26574"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||||
|
sodipodi:docname="onions.svg"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#505050"
|
||||||
|
bordercolor="#ffffff"
|
||||||
|
borderopacity="1"
|
||||||
|
inkscape:pageshadow="0"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pagecheckerboard="1"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="false"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0"
|
||||||
|
inkscape:zoom="2"
|
||||||
|
inkscape:cx="258.25"
|
||||||
|
inkscape:cy="293.25"
|
||||||
|
inkscape:window-width="2560"
|
||||||
|
inkscape:window-height="1414"
|
||||||
|
inkscape:window-x="1920"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g92692" />
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="Arrow1Lend"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Lend"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="matrix(-0.8,0,0,-0.8,-10,0)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
id="path99202" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="Arrow1Lstart"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="Arrow1Lstart"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="matrix(0.8,0,0,0.8,10,0)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 0,0 5,-5 -12.5,0 5,5 Z"
|
||||||
|
id="path99199" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-0"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-5" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-1"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-5"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-06" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-6"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-2" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-6-8"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-2-6" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-6-84"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-2-7" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-6-0"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-2-62" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-9"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-31"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-1" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-34"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-03" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-1"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-9" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-6-6"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-2-2" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-6-8-6"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-2-6-7" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-6-84-5"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-2-7-6" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
style="overflow:visible"
|
||||||
|
id="TriangleOutL-3-0-6-0-9"
|
||||||
|
refX="0"
|
||||||
|
refY="0"
|
||||||
|
orient="auto"
|
||||||
|
inkscape:stockid="TriangleOutL"
|
||||||
|
inkscape:isstock="true">
|
||||||
|
<path
|
||||||
|
transform="scale(0.8)"
|
||||||
|
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||||
|
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||||
|
id="path99341-6-2-2-62-8" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-35.922064,-20.009753)">
|
||||||
|
<g
|
||||||
|
id="g92692"
|
||||||
|
transform="translate(23.529478)">
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#0000ff;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,118.38304,86.896709)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-4"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,102.86106,77.935087)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-8"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,133.90502,77.935087)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-1"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,133.90502,60.011843)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-2"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,102.86106,60.011843)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-9"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,118.38304,51.050221)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:25.4px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.065;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="10.766086"
|
||||||
|
y="93.900932"
|
||||||
|
id="text15233"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan15231"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.065;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="10.766086"
|
||||||
|
y="93.900932">proxy</tspan></text>
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#0000ff;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,73.018306,8.7399061)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-6"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,73.018306,-22.304062)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-5"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,81.97993,-6.7820779)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-9"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,64.056684,-6.7820779)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:25.4px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.065;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="99.606567"
|
||||||
|
y="93.900932"
|
||||||
|
id="text21825"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan21823"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.065;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="99.606567"
|
||||||
|
y="93.900932">ping</tspan></text>
|
||||||
|
<g
|
||||||
|
id="g105529"
|
||||||
|
transform="translate(14.792346,-5.9523929)">
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#0000ff;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-92"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,96.11023,142.12383)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-4-2"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,96.11023,160.04707)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.565;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="20.677448"
|
||||||
|
y="125.58846"
|
||||||
|
id="text33374"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan33372"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.565;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="20.677448"
|
||||||
|
y="125.58846">client</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.565;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="21.354782"
|
||||||
|
y="143.55402"
|
||||||
|
id="text54738"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan54736"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.565;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="21.354782"
|
||||||
|
y="143.55402">forward</tspan></text>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g105521"
|
||||||
|
transform="translate(14.792346,-5.3495029)">
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-9-4"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,164.56904,141.52094)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="star"
|
||||||
|
style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:8.93858;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
|
||||||
|
id="path864-63-8-7"
|
||||||
|
inkscape:flatsided="true"
|
||||||
|
sodipodi:sides="6"
|
||||||
|
sodipodi:cx="201.57892"
|
||||||
|
sodipodi:cy="203.50597"
|
||||||
|
sodipodi:r1="39.110512"
|
||||||
|
sodipodi:r2="33.870697"
|
||||||
|
sodipodi:arg1="0.52359878"
|
||||||
|
sodipodi:arg2="1.0471976"
|
||||||
|
inkscape:rounded="0"
|
||||||
|
inkscape:randomized="0"
|
||||||
|
transform="matrix(-0.22913589,0.13229167,-0.13229167,-0.22913589,164.56904,159.44418)"
|
||||||
|
d="m 235.44962,223.06122 -33.8707,19.55526 -33.8707,-19.55526 0,-39.11051 33.8707,-19.55526 33.8707,19.55526 z" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.565;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="89.136253"
|
||||||
|
y="124.79083"
|
||||||
|
id="text61870"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan61868"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.565;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="89.136253"
|
||||||
|
y="124.79083">exit</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.565;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="88.628258"
|
||||||
|
y="142.05367"
|
||||||
|
id="text66890"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan66888"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:11.2889px;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.565;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
x="88.628258"
|
||||||
|
y="142.05367">return</tspan></text>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL)"
|
||||||
|
d="M 42.03029,65.397181 33.154739,60.037665"
|
||||||
|
id="path101520"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-9)"
|
||||||
|
d="m 124.34517,59.617977 -5.00669,-9.079252"
|
||||||
|
id="path101520-81"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-31)"
|
||||||
|
d="m 118.58921,43.893429 5.35952,-8.875544"
|
||||||
|
id="path101520-0"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-34)"
|
||||||
|
d="m 128.501,33.828876 5.00668,9.079251"
|
||||||
|
id="path101520-9"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-3)"
|
||||||
|
d="M 29.452452,54.731778 29.656155,44.365567"
|
||||||
|
id="path101520-8"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-3-0)"
|
||||||
|
d="M 33.490427,37.678647 42.569679,32.67195"
|
||||||
|
id="path101520-8-1"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-3-0-0)"
|
||||||
|
d="m 49.199671,32.672665 8.875553,5.359514"
|
||||||
|
id="path101520-8-1-1"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-3-0-1)"
|
||||||
|
d="M 61.029618,43.566439 60.825919,53.932651"
|
||||||
|
id="path101520-8-1-8"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-3-0-5)"
|
||||||
|
d="m 58.106328,59.251086 -9.079253,5.006697"
|
||||||
|
id="path101520-8-1-4"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.564999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#TriangleOutL-1)"
|
||||||
|
d="m 134.30114,49.600443 -5.35954,8.875516"
|
||||||
|
id="path101520-6"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 29 KiB |
BIN
doc/torrelaycount.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
doc/webdroplets.jpg
Normal file
|
After Width: | Height: | Size: 243 KiB |
BIN
doc/webdroplets.png
Normal file
|
After Width: | Height: | Size: 950 KiB |
BIN
doc/webdroplets.xcf
Normal file
BIN
doc/webdropletssmall.png
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
doc/whitepaper.pdf
Normal file
23
pkg/client/client_test.go
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
package client
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/Indra-Labs/indra/pkg/node"
|
||||||
|
"github.com/Indra-Labs/indra/pkg/nonce"
|
||||||
|
"github.com/Indra-Labs/indra/pkg/transport"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestClient(t *testing.T) {
|
||||||
|
var nodes node.Nodes
|
||||||
|
var ids []nonce.ID
|
||||||
|
nNodes := 10
|
||||||
|
for i := 0; i < nNodes; i++ {
|
||||||
|
n, id := node.New(nil, transport.NewSim(0))
|
||||||
|
nodes = append(nodes, n)
|
||||||
|
ids = append(ids, id)
|
||||||
|
}
|
||||||
|
cl := New(transport.NewSim(0))
|
||||||
|
cl.Nodes = nodes
|
||||||
|
|
||||||
|
}
|
||||||
1
pkg/key/address/address.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package address
|
||||||
1
pkg/key/address/address_test.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package address
|
||||||
53
pkg/key/session/session.go
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
package session
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/Indra-Labs/indra/pkg/key/address"
|
||||||
|
)
|
||||||
|
|
||||||
|
// A Session keeps track of a connection session. It specifically maintains the
|
||||||
|
// account of available bandwidth allocation before it needs to be recharged
|
||||||
|
// with new credit, and the current state of the encryption.
|
||||||
|
type Session struct {
|
||||||
|
Remaining uint64
|
||||||
|
SendEntry *address.SendEntry
|
||||||
|
ReceiveEntry *address.ReceiveEntry
|
||||||
|
}
|
||||||
|
|
||||||
|
type Sessions []*Session
|
||||||
|
|
||||||
|
// New creates a new Session.
|
||||||
|
//
|
||||||
|
// Purchasing a session the seller returns a token, based on a requested data
|
||||||
|
// allocation,
|
||||||
|
func New(rem uint64, se *address.SendEntry, re *address.ReceiveEntry) *Session {
|
||||||
|
return &Session{
|
||||||
|
Remaining: rem,
|
||||||
|
SendEntry: se,
|
||||||
|
ReceiveEntry: re,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddBytes adds to the Remaining counter, used when new data allowance has been
|
||||||
|
// purchased.
|
||||||
|
func (s *Session) AddBytes(b uint64) {
|
||||||
|
s.Remaining += b
|
||||||
|
}
|
||||||
|
|
||||||
|
// SubtractBytes reduces the amount Remaining, if the requested amount would put
|
||||||
|
// the total below zero it returns false, signalling that new data allowance
|
||||||
|
// needs to be purchased before any further messages can be sent.
|
||||||
|
func (s *Session) SubtractBytes(b uint64) bool {
|
||||||
|
if s.Remaining < b {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
s.Remaining -= b
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Session) SetSendEntry(se *address.SendEntry) {
|
||||||
|
s.SendEntry = se
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Session) SetReceiveEntry(re *address.ReceiveEntry) {
|
||||||
|
s.ReceiveEntry = re
|
||||||
|
}
|
||||||
1
pkg/key/session/session_test.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package session
|
||||||
@@ -3,13 +3,13 @@ package relay
|
|||||||
import (
|
import (
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
|
"github.com/Indra-Labs/indra"
|
||||||
|
"github.com/Indra-Labs/indra/pkg/ifc"
|
||||||
|
"github.com/Indra-Labs/indra/pkg/key/prv"
|
||||||
|
"github.com/Indra-Labs/indra/pkg/key/pub"
|
||||||
|
"github.com/Indra-Labs/indra/pkg/node"
|
||||||
|
log2 "github.com/cybriq/proc/pkg/log"
|
||||||
"github.com/cybriq/qu"
|
"github.com/cybriq/qu"
|
||||||
"github.com/indra-labs/indra"
|
|
||||||
"github.com/indra-labs/indra/pkg/crypto/key/prv"
|
|
||||||
"github.com/indra-labs/indra/pkg/crypto/key/pub"
|
|
||||||
"github.com/indra-labs/indra/pkg/node"
|
|
||||||
log2 "github.com/indra-labs/indra/pkg/proc/log"
|
|
||||||
"github.com/indra-labs/indra/pkg/types"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -22,15 +22,15 @@ type Relay struct {
|
|||||||
PubKey pub.Key
|
PubKey pub.Key
|
||||||
*node.Node
|
*node.Node
|
||||||
node.Nodes
|
node.Nodes
|
||||||
types.Transport
|
ifc.Transport
|
||||||
qu.C
|
qu.C
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(ip net.IP, tpt types.Transport) (r *Relay) {
|
func New(ip net.IP, tpt ifc.Transport) (r *Relay) {
|
||||||
// r = &Relay{Node: node.New(ip),
|
r = &Relay{Node: node.New(ip),
|
||||||
// Nodes: node.NewNodes(),
|
Nodes: node.NewNodes(),
|
||||||
// Transport: tpt,
|
Transport: tpt,
|
||||||
// C: qu.T()}
|
C: qu.T()}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,3 +20,7 @@ func (d Sim) Send(b slice.Bytes) {
|
|||||||
func (d Sim) Receive() <-chan slice.Bytes {
|
func (d Sim) Receive() <-chan slice.Bytes {
|
||||||
return d
|
return d
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewSim(bufs int) Dispatcher {
|
||||||
|
return make(Dispatcher, bufs)
|
||||||
|
}
|
||||||
|
|||||||