From 1904ce1de923f25b0bb8d620c3e1e3b4a8e513fd Mon Sep 17 00:00:00 2001 From: mDuo13 Date: Thu, 29 Nov 2018 15:33:25 -0800 Subject: [PATCH] Amount diagram; standardize diagrams; link example code --- content/_img-sources/serialization-amount.uxf | 341 ++++++++++++++++++ content/_img-sources/serialization-array.uxf | 22 +- content/_img-sources/serialization-object.uxf | 119 +++--- .../api-conventions/serialization.md | 19 +- img/serialization-amount.png | Bin 0 -> 34377 bytes img/serialization-array.png | Bin 7898 -> 9203 bytes img/serialization-object.png | Bin 11967 -> 11960 bytes 7 files changed, 422 insertions(+), 79 deletions(-) create mode 100644 content/_img-sources/serialization-amount.uxf create mode 100644 img/serialization-amount.png diff --git a/content/_img-sources/serialization-amount.uxf b/content/_img-sources/serialization-amount.uxf new file mode 100644 index 0000000000..a8818ce839 --- /dev/null +++ b/content/_img-sources/serialization-amount.uxf @@ -0,0 +1,341 @@ + + + 10 + + UMLPackage + + 30 + 240 + 850 + 70 + + Issued Currency Amount Format + + + + UMLClass + + 40 + 270 + 20 + 30 + + 1 + + + + UMLClass + + 70 + 270 + 20 + 30 + + + + + + UMLClass + + 100 + 270 + 150 + 30 + + exponent (8 bits) + + + + UMLClass + + 260 + 270 + 190 + 30 + + mantissa (54 bits) + + + + Relation + + 70 + 290 + 50 + 60 + + lt=<<- + 10.0;10.0;10.0;40.0;30.0;40.0 + + + Text + + 100 + 320 + 260 + 30 + + Sign bit (0=negative, 1=positive) +style=wordwrap + + + + Text + + 80 + 350 + 160 + 60 + + "Not XRP" bit +(0=XRP, 1=not XRP) +style=wordwrap + + + + Relation + + 40 + 290 + 50 + 90 + + lt=<<- + 10.0;10.0;10.0;70.0;30.0;70.0 + + + UMLClass + + 460 + 270 + 200 + 30 + + currency code (160 bits) + + + + UMLClass + + 670 + 270 + 200 + 30 + + issuer AccountID (160 bits) + + + + UMLClass + + 40 + 510 + 20 + 30 + + 00 + + + + Relation + + 40 + 520 + 60 + 70 + + lt=<<- + 10.0;10.0;10.0;50.0;40.0;50.0 + + + Text + + 80 + 560 + 300 + 40 + + Type code (8 bits) +0x00 for ISO 4217/pseudo-ISO currency + + + + UMLClass + + 70 + 510 + 220 + 30 + + Reserved (88 bits) + + + + UMLClass + + 460 + 510 + 180 + 30 + + Reserved (40 bits) + + + + UMLClass + + 300 + 510 + 150 + 30 + + ISO code (24 bits) + + + + UMLPackage + + 30 + 480 + 620 + 70 + + Issued Currency Code Format + + + + Relation + + 310 + 530 + 40 + 50 + + lt=<<- + 10.0;10.0;10.0;30.0;20.0;30.0 + + + Text + + 330 + 550 + 130 + 30 + + 3 chars of ASCII + + + + Relation + + 20 + 290 + 460 + 210 + + lt=.. + 10.0;190.0;440.0;10.0 + + + Relation + + 640 + 290 + 40 + 230 + + lt=.. + 10.0;210.0;20.0;10.0 + + + UMLPackage + + 30 + 30 + 620 + 70 + + XRP Amount Format + + + + UMLClass + + 40 + 60 + 20 + 30 + + 0 + + + + UMLClass + + 70 + 60 + 20 + 30 + + 1 + + + + Text + + 100 + 110 + 260 + 30 + + Sign bit (always 1 for positive) +style=wordwrap + + + + Relation + + 70 + 80 + 50 + 60 + + lt=<<- + 10.0;10.0;10.0;40.0;30.0;40.0 + + + Text + + 80 + 140 + 160 + 60 + + "Not XRP" bit +(0=XRP, 1=not XRP) +style=wordwrap + + + + Relation + + 40 + 80 + 50 + 90 + + lt=<<- + 10.0;10.0;10.0;70.0;30.0;70.0 + + + UMLClass + + 100 + 60 + 540 + 30 + + integer drops (62 bits) + + + diff --git a/content/_img-sources/serialization-array.uxf b/content/_img-sources/serialization-array.uxf index 92f81f9e78..f5b443c100 100644 --- a/content/_img-sources/serialization-array.uxf +++ b/content/_img-sources/serialization-array.uxf @@ -1,17 +1,6 @@ 10 - - UMLClass - - 130 - 110 - 600 - 50 - - - - UMLClass @@ -148,4 +137,15 @@ Field ID (SignerEntry Contents) + + UMLPackage + + 130 + 90 + 600 + 70 + + SignerEntries field + + diff --git a/content/_img-sources/serialization-object.uxf b/content/_img-sources/serialization-object.uxf index 4924e729c6..37ee31ac98 100644 --- a/content/_img-sources/serialization-object.uxf +++ b/content/_img-sources/serialization-object.uxf @@ -1,17 +1,6 @@ 10 - - UMLClass - - 80 - 160 - 600 - 50 - - - - UMLClass @@ -73,17 +62,17 @@ Field ID 630 190 - 30 - 80 + 80 + 60 lt=<<- - 10.0;10.0;10.0;60.0 + 10.0;10.0;10.0;30.0;60.0;30.0;60.0;40.0 Text - 590 - 250 + 640 + 230 100 60 @@ -109,22 +98,10 @@ no contents 160 190 50 - 80 + 60 lt=<<- - 10.0;10.0;10.0;60.0;30.0;60.0 - - - Text - - 220 - 120 - 190 - 50 - - Length prefix for -variable-length Blob fields - + 10.0;10.0;10.0;40.0;30.0;40.0 UMLClass @@ -148,22 +125,11 @@ variable-length Blob fields - - Relation - - 190 - 130 - 50 - 60 - - lt=<<- - 10.0;40.0;10.0;10.0;30.0;10.0 - Text 190 - 230 + 210 110 50 @@ -193,33 +159,22 @@ Field ID - - Relation - - 400 - 130 - 70 - 60 - - lt=<<- - 50.0;40.0;50.0;10.0;10.0;10.0 - Relation 130 - 80 - 490 + 210 + 500 90 lt=. - 10.0;60.0;10.0;20.0;220.0;20.0;220.0;10.0;220.0;20.0;470.0;20.0;470.0;70.0 + 10.0;10.0;10.0;70.0;480.0;70.0;480.0;10.0 Text - 290 - 40 + 300 + 280 170 50 @@ -230,24 +185,56 @@ style=wordwrap Text - 340 + 290 230 - 110 - 50 + 150 + 30 - MemoData -Field ID + MemoData Field ID Relation - 390 + 350 190 - 30 + 70 60 lt=<<- - 10.0;10.0;10.0;40.0 + 50.0;10.0;50.0;30.0;10.0;30.0;10.0;40.0 + + + UMLPackage + + 80 + 140 + 600 + 70 + + Memos field + + + + Relation + + 430 + 190 + 50 + 50 + + lt=<<- + 10.0;10.0;10.0;30.0;30.0;30.0 + + + Text + + 460 + 210 + 140 + 40 + + Length prefix + diff --git a/content/references/rippled-api/api-conventions/serialization.md b/content/references/rippled-api/api-conventions/serialization.md index d029e4cfff..1b832200f9 100644 --- a/content/references/rippled-api/api-conventions/serialization.md +++ b/content/references/rippled-api/api-conventions/serialization.md @@ -1,5 +1,5 @@ # Serialization Format -[[Source]
](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L697-L718 "Source") +[[Source]
](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L696-L718 "Source") This page describes the XRP Ledger's canonical binary format for transactions and other data. This binary format is necessary to create and verify digital signatures of those transactions' contents, and is also used in other places. The [rippled APIs](rippled-apis.html) typically use JSON to communicate with client applications. However, JSON is unsuitable as a format for serializing transactions for being digitally signed, because JSON can represent the same data in many different but equivalent ways. @@ -18,6 +18,17 @@ The result is a single binary blob that can be signed using well-known signature **Note:** The XRP Ledger uses the same serialization format to represent other types of data, such as [ledger objects](ledger-object-types.html) and processed transactions. However, only certain fields are appropriate for including in a transaction that gets signed. (For example, the `TxnSignature` field, containing the signature itself, should not be present in the binary blob that you sign.) Thus, some fields are designated as "Signing" fields, which are included in objects when those objects are signed, and "non-signing" fields, which are not. +## Sample Code + +The serialization processes described here are implemented in multiple places and programming languages: + +- In C++ [in the `rippled` code base](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp). +- In JavaScript in the [`ripple-binary-codec`](https://github.com/ripple/ripple-binary-codec/) package. +- In Python 3 [this repository's code samples section]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/tx-serialization/serialize.py). + +These implementations are all provided with permissive open-source licenses, so you can import, use, or adapt the code for your needs in addition to using it alongside these documents for learning purposes. + + ## Internal Format @@ -165,7 +176,7 @@ AccountIDs that appear as stand-alone fields (such as `Account` and `Destination The "Amount" type is a special field type that represents an amount of currency, either XRP or an issued currency. This type consists of two sub-types: - **XRP** - XRP is serialized as a 64-bit unsigned integer (big-endian order), except that the second-most-significant bit is `1` to indicate that it is positive. In other words, take a standard UInt64 and calculate the bitwise-OR of that with `0x4000000000000000` to get the serialized format. + XRP is serialized as a 64-bit unsigned integer (big-endian order), except that the most significant bit is always 0 to indicate that it's XRP, and the second-most-significant bit is `1` to indicate that it is positive. Since the maximum amount of XRP (1017 drops) only requires 57 bits, you can calculate XRP serialized format by taking standard 64-bit unsigned integer and performing a bitwise-OR with `0x4000000000000000`. - **Issued Currencies** Issued currencies consist of three segments in order: 1. 64 bits indicating the amount in the [internal currency format](currency-formats.html#issued-currency-math). The first bit is `1` to indicate that this is not XRP. @@ -174,6 +185,10 @@ The "Amount" type is a special field type that represents an amount of currency, You can tell which of the two sub-types it is based on the first bit: `0` for XRP; `1` for issued currency. +The following diagram shows the serialization formats for both XRP amounts and issued currency amounts: + +![XRP amounts have a "not XRP" bit, a sign bit, and 62 bits of precision. Issued currency amounts consist of a "not XRP" bit, a sign bit, an exponent (8 bits), mantissa (54 bits), currency code (160 bits), and issuer (160 bits).](img/serialization-amount.png) + ### Array Fields [STArray]: #array-fields diff --git a/img/serialization-amount.png b/img/serialization-amount.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0bd314f3c7c6e4b5b2c7052812139c2c333571 GIT binary patch literal 34377 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

mXcv9S+S=)X zit|V<32?=s*~S632+-@Jxx&(9YI4!stuTRp5n%ff$@wI~d*~HP2jVWz1Zf~g8)Pq@ z&q0zmrD~)7wqFei{`GxhYZTlfOSM*Npa?{dypsy*7h14P@B6HqSm@!F7VKD5t;#dP zsmaNaX1zIEu-~%Ti7g{0rt@nr@h%JZi$$<(k0KDMF6Jfzg@rDb>!3H8Oh&!d!$JDK zUiZL(k6G(+o9i9r;79O1LZ3v^hUXxe%t3rRPkwn9eK$7=A&9i`>w$3R>sU*tclm?j zPuaiU_|$f`MM)i7H*Go$WPNm_ipp(%PV5{UZDZ8+VW#2}zogL*BJLzw!WU_Xxw||= zTcJvdGQPF_$kJus*+`Ftabpq@8K?C|C2Fritp>+0h9HSFsRtBKhh#ritS9Ivo3m~n z*2)C~24DEBq_)aJ{RK$G{W&%)N;=s_8d(i$D~EBz2$t7}Q}9>NIQ2o(6bc z=ZK#DD5|en=wOg4JbdEW4WTy(~eN$ z1G7T40;tk7@cuIO-;dkd^Giw&SyEeC^v%CWWH$iNLFr8tPai(efqpGmxYQ+ti&5Vx z@mhe)?d)c1Jvu%xJ3RpKXb{Z>b=dpCpO*zSpCbi?3C9dDP9B~)O4O@wGEwq_Jvnwg zcuLEXV>;2i>-tLaJbA0O4abRS;x0=_uF6VE_Enbvtn>99hq4i^kgV0Ff}Am1&D(HF z0J*MD1EphY;s~r?V@8p&UDk)>pd6Y&be^2-vo09K;&|8doR)sEBTRY6j%P1kG_3N7 zdTpU7fOf-=r0eRXXC{lde9%rP$xugN*!1Hhs&>NV7|R5{GRZlhO7rxf2<_NG^tW9~ zkl^7?U@;Sj5S4oTeN8yLO6pdjF`vdEK#$5c$=Mzz*htSR{on~-5-fqi*zr}hV z2V#st^XZ7k;>WB;V+X1G7}Vqxn}?Rg55TgHKGM(Kxo0)`+#5(M?nl7`Mr%+pq*U$@ zdxKP_hQtJ62;5B1EB!D6E^t-_VWOI1QBVxXp%;Sh!PDr~iB#8LA)cEY(Xjb*JY;7O zb{~p<-w8b~90uG`Oi?d-@Csh62IaQiD$e-m$&>I}y-^J07wLIH`HhpAXB>f8nLc$v zc@{?KUhze4-n{7y!qVIqK|~V&%f+J=lezB~7@20S z)=<5O3!EJPVxH}Yy@3YH4L%MZryS0rqOADsg;~=1%7hx1Puj}GN2_-J#n4c{fB@Ry zitgPG2nOW$=tmDKB_Y__@td^%#AiW{Pe^Fk^cPDPaY|{uMTuczp&T?-(zr)RFKK?X zFZuQQu>Q(3Ju~fN-KS0b--!BzLyZ)M$o3ynNk`*l6MxMKBpYKa(&t?E& zpe=})yR7k0gOFGY({o+W3&FuTuXlNyCh`RlI)K+o*mwY52B>2(BQ_UX3YEeb*ro2^ zgK(UO+zkbAI|maFEk)GFCJ-tE=X#@V`mG}_L2IuAEj=jL+ zvZRMl<-s+%6o>I)$U3KH*=d*hYb_aY_vR5D z6`z!AqVD#_ropVSVf1FgcOjue#YP+vdgohll5R0dO-@VGwV~+hqMrqc*qshd<`bCt zf@^Zb*%`{%pEAJ{S7$hdE^kG74*aSNRX7M1gPRDMRHW`F1HM74s-V6%^TmE(x&3Cb z2rekZ39uia%FH5yiV7hBHQQB2T`&l7%I77YceI7V6{1tZcmfOp>&M9-1_yVlsHp7R zNwiOk7`=AZ=u;D{1tM0QgiAcFD!Mk|fk*ba_*rNE#<7`d7XSsIrC`@v>gyvkZJGGB z3zC7iK>9PScacFGI_mj4C$aM@=X}*m_QrVznwsZCxF89k1OfuzDkW8Dk*>b^hXark z!h;O$ML$13*fXe`d-awOtvzbn2O~N7;$;rRP_b#q#7jyG2$UG! zi!1~-a}N*Yo+DnxiTCHQbtCGW47TOu;pBOE!%`Tg>_!!2!5uG8B9$!r*F1eK^X16| zC<(3SBij9)Z2?>JO5MN5HIanFg7p+GQ&}HBK_v8le|+gGmwomHAHCQcv#G5)UN(Bu zIcIh^5C-ZNO7;a8W^6yGgkA6n4O!hV&MtM)c>&R8Tc34yWC<}-!|BzsYR=afqS59t zXH^x-i(e+(+P|=NADY+0M|>*!hl?cbCL#1(PVQp9x`t(QAWpuHkpS)vjx(EbzueM~ zOaRn`6wGuX_d4~dmr4U!ZS)yf1o6oHt2IcY# zoUF(g0bl%v$>7-gLu=`0eW%e=GE<6h?=HxwstU$v3M36$-xRS#_*bk*tiV=|EMBX8 z(gj-wrU2M)NCeD=6DB_?Uf>dt1D>N3GXSdK`c@Ve|pDg;+2S$*rPHi7_Kswzx(( zbLvVF`rs;2f4crk+MrrnNRHXI{;wR?M`w;RH^)?kKc|*^b~z@|<#PzqLOVc@@mqVCP=mw%gZN zC;s%#+Qe#L*_ z2$2m~r&s%?%rr&J*v!6Q#WxeKqO#pFt#8I9fS1{X8gyL+OS1xN#v*Y_CbRN8M~I*o ze^l@jEUJQH-RP}gR)2=j4T8QCV9|HE2EpDXZwaWz=CE~G<$UA_v_DExQZMaJ7xuuA z=SII~e0CYErr9nb6{Q{IUA3yVl8NM3?$$X*Te8Ydunmy?IqpnZn(Zq@Xyehw923pE zKF(xDEz=46jm7I!RfYUUXJM?5keo^vb7*j|&alw6oy=0q_j>w;|H5vm%SbZn*j`?H zppYsnF>nntI8bdQmXy5qxC2yF$+hj-=%O)fmSn4730n|$ZgLKwTM7S&faJr^)7NzPRI`rwwmnkIQ zZVTJ62D5yHKytnfCZM@J9MhEx-hBGRFC^qXwEj$SD=el)M$ocx`dZU>A=|<*+3JGM z4Yw?Ne^*V6evtAXLq@7en&4E=X0j6K<@XA65-l@=g^4NI-LiF|Ww+88VP9@QttdI-T0 zsgqbBS>f7~-_aT!O0oOl^+eqXiI0gxJzQDC(-KO#M^v+R7lT1@3&q=rC;VWpUTwhT z|0uwg7Hpqdr7j}^sT ziP!7SCZ3wk+37lZ>0ZIxyMK>M)b#WvG`JiML2rX9tGMc*bNELsZFE;s~4c&t_*)Iu>|8tjI{GYE4BV>1L z!>XpoEvI*wE>!51l>n1*h`|V$76Z>HBR}?0=pHQgFY}k;91w)wqmf+AI zxh7)zqPWAeHVypk6baC1oP3v8ALnGq)?lfKuH5Igc*&A{pOve9PHN9CkQrXGY2!wb z61XVnzStCh-*T(mwIm>wXTj93gX{On*DNHI;GEIf(ohFZg%Rqwau7${&dothEo25=4$ z;oCsfJ!_4B6JYmmw^ze?S~$7_rj~U{ViA}B_r>?OVKuU9`SJucw~4}6HUI(~{^xB4 zXHzL0Bd`eqC{joT@}ub4jec(K=Y{s{9<~H5=khYB9gUKmzX**_qUezAnpp*Wsxwxw#sJwR}J;;es*i z?_W_oxap)cODsVDX^!?se*N>mFVXJB|IbUTu8IG7DR%llFOg{GQFl!^5^~kMmZ0c4 zxIurRpQ!)}CA>L<3qSRTi`e(Z+=-~->{q?HO%OU)kp|G`wU3lu{rB&G3$v^2f=nf1 zWXMFS6%446lVg)(2GVB`x=p<2o2;w;gi~JR zvQ6p9y3R$&QzP9bii0PW@<&0r065B;oCH3n3ei4Tq)|Kyo6(@+z^u9dgP7hBl!rSS z+>)C{2^kJ&Lj6D_KmmXh=G0!0W}q~$QdU+*(@!Bww)FU5J&{h^g~AI8M!o%cZXh+Z z#sH^*N6-j(^l;09v=nV4n|$Z+NL|n0Na}$SfJKN_z$oj#Fza=cj=(9RP8$U^tYimP zw?4KpuRJTu<6oGQ=L>qig|dPeGk|1YM&=Hd4_)}o5rd>FeZ+NhyTs!bDr5!B2Y}j7Y$w(EvX5oPzj}{rvr9G*9#x;869WZRFs)bt7$gwP4v3R zgf1*$1Pd>WYXl_PR*xMMr|3xxzq1T-1W})dEPBBrdm~s=*dE4JP|1Q&Uh?SCT8*II zWAO)gw_+HSlHRo4DkxfB2oD8RbY zaOeTD|0xMDiI5^-LxSmrf&t!5`BrD~q;>TVP$-W;rw1$%r{o>e5e!{pM^z{Ja4{ZKR+^xEB$29EwB$u%`K-Er%&1hH>vMreE~=OOF#U@9f? ztb{JZw_uG(E~fe2?Ct?$d0%<{nrz%C;P0q}lg2ZUxYAw`9xIJ3Sip1Wy2!kwv0u+|8yb^&#ao@=u>9#(Y7!n+d)f28VPu-lVE=>yft9koDHPNxk{{s0Gs=58O@ zx+55a0NR>MXI5A7K#;p4kxPuS%TGQ@SuKgF#s$LR%^yN`vK8}^^8^NiTMrL`sNJJ$0kJ1W}(K{8HMS9{})sSuWE*8p?` zz7!K3t<%`SbGIwa@dI2lV82j>;R{q9(SW#@dyZ$D^MmC@^Y!RhA69SG7$o=k)2DPN zBQAZa(bF0x1QnndpnNszG0awCoup3k0_hZ{FOvcTWQvXKB0nb0H|5JBb{w zbKn3U=}v=>CiUhxp3P9Ep&Pf!v72}M;nHb1-~bf!0K$s2U&PE+nG^L?C-jQ*;cwa%Ud*erUgKFg`Yx#^BS#^5Q$X`k?yJTIpLTz!Mq z1<3zeW8x8v3SfsnHLzqZcEN=z5~ZtRH0 zI@2X*xCx@|9NJnVKxU#nBa@qz=urgp9Tr$bzA1h4E-J?B*PGEA(-Uh)#oOE02c5M| zhb-;LL4IDD%HIT6ZQ>n>H7sGW`?Yxcv5;lzEd%nFm_I|iy_F_jUu!Aw1WvTd$`&de zhj8D(mCv|n1t)J$82>W9WU0Tc=`=c0FDX5|2#^ho42z3@K}$ps*UlTL4Dn+#Ak(OT zap86KrpmE4U97k~Ub1I)mapT^rrNI*A(@LT2TQ>2v1Sm;R`4NKn$`-4%=?OlQt_Sm z4)I=oRUa|j%Xc5qT6<_+riiE%TeezsYNA4kwF5N{23s;)j4X{B zfZsZK#-}Rz)n5bcX#_d5{7#|?tiYM%0Dd1em;M>(ccJ%y&DysSr-?yvo&_+~Vg3Fc zX||>chcGVrp5i|0{Za?BX2wb{uDi-c|JL)gQ7V-uHl8!dw<)*$ov;!#vn?^&WU|{Y z2l(+Xr+bBm~_w;v-Lwqd;~~0uAcW zeC(#;19w%o$ix|=$t1kzu)k^dpHEHtI!}7>K_Ph*%)I20J4v5lK&&1{-n(~lVq)#i z0KBW{3!gNb07AnO5(=ee;$Kv#{{o&)jz=J~S94$m%upkWz*Zf1*$kfKLU zQ~>c!Fb6~$9)sBHh&`CDK_A-gqt^`TLx+MIPb)nETV{BvhCH@-Zvh_e&d!9 z^s>grj*?;B7Upmo@14R}qf!`s9LHSGf{wH=aCrOYHU?9m@6*8rkmJkJpT7MID=QyC z9>Z3z+<49~oEqQ?A`E(&M1S~CCxNyCxft;~T1ZCTfBjmC-gf?RoQHGSD}njrPhei0 z1r-dbRtEOQGPN;+cff0S5pmkx_aE>9P{_~#q3@8DZNXDO>NJ1_;yraq&8R2$@I{eU zq*~K8qEHo2ooH4|vl#$01_N3K1_m%6$+_a>u;G^0nkhI10m@*!e~)5q`-F=BsN

DS8p}*Q)4#&p9`&S z4}FP%uq+y7!S3LM2RN|N!j9nMDFQlFjKN_hgtrxr?kT|bioY-YSRd}FGQyu2uqaI= z3aX~q_`#8{PUm={Y|bz{Q2j%y(W3)u&K?OiOY0Y4-|u_VKG0d2oUHAv2E$~_4(h#o zv#$?dKLdv?syfr&_~6SiY*?0tUcD?4M*{u)ZtWM#7D19^s^_-LvI}?>h7t(qkxfrE z@PW+EGhl6P4dehOHHlv3wirWx+16BBQBPmL1)xqr9URB30}Uf@aMF3w8m%1)8tFYf z7%N=I5?{pcamgax*E}A(0NEJ2<^-)*jq{1!o~=C>oGxceP`9P{7H zEwvb-ju=lBr~=IwZ0FD)K;eD3_5L2#!hduyQtjxa>(|W=b{9llaRl&GNEM~OU>^i1 zqZcQCb7x!>(c!3P4n;C&#?mx0(j)~!i4xzu2>EJFldOcn{^R{%HZad)5XP>Db!qGeCY1t3SlXM0T;c9x?5s`c^%6DdKlL`ou=r5r|h3%FOL&V&60^H z?%Zsu@OpWn{s;z4<<(fAZegm+g2H292(w)F3Ns>%w9lQ&>EUxN2ck(;IGe z!(lpdqKGMKa|0&082wsAo@>pHmd?@7&3wT?oVg-i!n2=)jiSBVnCCnO;@-r7 zdCFbf)GP@sj+m5gZ1}Dtv*X28lnI2ut>Tida+^2r+gNgp81TdV`7n?U!ke*TAoe>{K!pR{_*|$O)}_09GQUb#WO?6d;rO-t0+%7MkIN!Av>kqiI0cW zURP>e!&dtG_uK~U9nu|}|FJxtZ2ssNzk<7vvnYp&qwk_%40~e)OIcpsK+FdS-(6u- z>}8D%ka_S4LFTYfvp$NPc%cp=;`HLFv#yPd06+uZK(q5~}G=OYf2X3da7T8gA3KGa5tKACLv);+InVX&y2QcAmxdw##)e-+?KvkU_0_S zA*0oV!yw1i4UU!#C#7vGvmBJ0&k%S*=I#{n&RMt;zUb&MVcAJJm`=I|@LnGia6xL? z{X^<~np$kiMm^xsTvXAjQ{QY%n)!5t0&3$>GF1HsToAlN9fHiOmlVl7t*!KG5MwaJTYy(LsnV}890e#Tu>y7-#lCe0 zgza_BE1N*Q`P!ML*#+&-IM!|B$B{_Of65}gg44^iD+?L21DHjym|~={Q@7Is=0((u z)_ww2QS>t5nAv$dGF(<7^UK$-I64w!z~!S8z-dqQ7x{`02O21Uc^r(;Q2+y3(qw>K zXe$;Jqa12E(5~w#bSJgAaD!WEcLxJ=#$G?#NKi#2h^$xYLLMqIwCUtkRm;&V{Gv=8 zIgG?Afp+xym`aDK{iS$-;F<%UM0)N(RM5}+{(gsOGb^R`zkG;tkvp;0j~x&4M?Kqg zwHR9fxQb4{4u!Iqld~;oSH{DtTZ ziSQg`if0urxdmU93~4*Vh3rl~f2%qFZBkO8Qu;ECe`B>ea{ib0k@6kdD}x9NSR6o| zmzA-fF-H%P5Uq=0%uj{p#M0)mqq`PevrzZb*w`4b=vN3gMn*;^J_1?$QtasoS3K~f zuO{v*1jGx*N9@|Sgusw>d!H}YqDA_}8MB}SnIwj8xJ)JZ^xhD>CtsYoKKpxF$aQ1o zT2p>B7ynjZS^eF0O`DQVuR4q;T$#@M2{MWaUi%WPOA;2x9D36Q^Mu=F4Jkk zM3FdmHyUPD=Rjxe`2z K>#)L#z!;6V#B|(ifcJRcYw+_t3ik78YYS5=>pAH7n#0 zVD8@K#B#sC4ca96Kr0FRg1ahcIwU2%2PG+ej%pFU+`d5lC){ODowCh!U^kf?6-%UM z1PgX9sRz7?KLYI`b`H?TKe^l7OTYvEKVBm6%6~JyIdU!WTYuhm?xnf6{qu>3e$J9+ YM6Y#88=4!6>=hsul{lWL% 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 literal 7898 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 diff --git a/img/serialization-object.png b/img/serialization-object.png index faae809cc9aee45451c031b13ce5a127c6ff9d29..d62f99922d8b888f232c735b2eaa3ab04baff1d6 100644 GIT binary patch literal 11960 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 z zyW&-!rO9UlBc~oFpY^!UY1rppq$FM&5zipU#)O2tJ7f5p1XRtN-UUsseEkGG8^U4y z7}s-RAGm4pit@o(HDB-9u1G3WidnFFv>~$w=UKp{sEa1d_;W%XTZt!|dHY!jNe>lUKngJ1Q?>2-r zOQ>)hZsNNZb4lxDGJ8RBFHg}fjn$2HcG`T&f7licr8mhe-eiQDu&nM52cK-GYuUG} z8Bo|=lYIw;JJWt%tl0GI@|?k)PFI_*yO}vViv;JLs&Z0>R z9z8mZgKXzL@0(JUchBh(R}Ry#A;pYI-ZyE^3LsvSEt?W_B}ns*FE1aAx-B;=N&W0! zfSE+eK3u$;S+YxTcI2E-ShwEzBz_6XzJh|jr)c+~tfi)=hBp>HLgK~BEW!L*4eHf! zps!zA)I=ULB_X+bq>kQm_bY8@EdL`)S9aN;{z`p;IH{ja z6F_|6lh?DJMw52#lA}Y}Ij*C~|_U(nATK2Ypz|hEu$B(6v7OmfZ{~h=r7^$7{ zLXaWD?&|F5b6~;TYe@vbqN}3f0NoZ*Q5W|59ZOBOkG==-?(OYuQ~{9v@`$(_@Tc#1E|Y2Fa|xTGIOm^YiW-c(%MI|vs3;41u8AuYSPkv zvqz6kB^f~Bg^%g8#z@b3d8`yb@f2I##J>MnnO;k=R`$Cfp?kG&#qg|7@$+-)c#i6gt&65{;{!_ zrdDX5|DzLO9oyH}2Q3^Qfg?c`9MVSq{vg!Wp-Jt?VR z8lD!@bfJ`UHI97lAKf&0840z+1WvtHk#W#E z*3ifZ{-RUqAcJ7|<(8ZOG|ou49tSYN6`$B%H&@pIw{x@G>+?sB9EppIgEDOiUud+B zj!D48C16`%6ZPxL4gQjDDrf)B)LMEny1KgN=5sKrj<&Ypx@wjh*lsBZ*7on??+^4( zrc~jk=mH8Z5dY^{Gzfb}?Yp2wJ_up-XR{NrMc{wyaB_Olt@DQ_yf=OEHLxvc4<4aI}r{`Rw*2~SmKGq$m@aYe|L za9?CkMM=pPDnM{hWL|A6>O*;cJ#;hzdzkphjYcSYx~2^jY z0xSwBLS@$LLoX6oWy#xBrTB9z5TQXA`C9ye>@9uH8w0l8zxvORMT!gxSPZZ%b{>ls zZtGgmEO8VefUUngHD$CdUKbh~dds-&JApv>{@pJq$YXsDi#wrVZtl&*?>N`@N4>X> zj?NBYw#a(qj**P)82UjbHF1)>Vo-TaN%;x}S5OO-kXWYR1gQIpQ%f23v9Pc}KMUrJ z(#J==O7`n>{q^6eM77NC+6ZM2|S&&?8de6bnS_;{Mh5hD1qKIq0;jzndmEfTwY0BMGdT%6bf3d=QKglEjWJ+29eT&U4_1#-bIDj+nl_- z1D4?|IXLZ2X<1oiS<(|Usk)o_+{PEJn$XG@RbHL>3pt<#rz=;<`ug7H*Wk6)RWOF~ zfX+bKI3-3JN@>L7l4jzs8udCF3@E68ke$552pNcx@eAmPXda7H_pQ|_Qt$E2m9NlA z2P>-1py^Nk3tB!{X0ha8Lqh)ehh>xv@MG4-I|6U0sV4(#q@vP?la2gfXJ>B@Vl(wD zvoR#n9Xra_wsP-76gu*go% z&af+Gg@(}736)?qwE+l25Z`@ztpj?p{m*?%?@1vET0PLv2)UWLF1H5UolxKZxH}&t zREb7VYiVi;pwOE)Z{S=3v>7u)dPOGIqzH=3`bzFKf_X4IGvl(gYGlM6$88q2Jpc`f z#+~sxJD!~c{9iO-o1h?Tk)he;7x4h?@2Zt7SgpeNx6`wVmTUa{Sse_=5AE%&P?F8L zcl^<0Q)n9Y=iZip>5o}kwfLO-rWP9+$p_)U&lA~eJ5~Aq)j0-CH#aC$9XSu}Mwo3- zyx^5{=gyrulk~dYn7Ha^SPN1S>!p)fd9`SZ2)ebkwSKx!K^M~*B@`51SO08n^e&uz z_fE7IMPz(lcpwN5T+Klb))?MoV`O}rot>SVy9D+>;G#LJ$RSzk_>v<}92|;Wnex_# zStKZEy3fj@9(u@P==v?LYvL5~H=GQd>Zm;~5u5Mu0xeU%fCDM3;Ka3fxvqVaUyP*Q zMkQ%m6QN*?hTAk`!_K=F&7DkFQb{G8Z6>3k@rK20qv2&wJiy4W3U6*} zy8`wFRwfksE5MM@E43U1i}hFa9-RlR2lD=eA3r)fI@q9kprF7TjmXG@elD4uC4wBY z*7eLJxlVT|R(2EGz+(YZ;|SSF;t4_^EPu5G06&B1_y+i?QTNmX`aQw$0h;eRZ!9S( z35G8S%fR*+UMm2IEOq4HQQJORsgZ}~E{2!j3)LJ9gUSuR{Wpi%p2nde0WL1I+qsN< z$9XlQ-oNc)P6$V0A0%)4)MR9`rmi`9QFUtSG$;YMFyg7 Vi#3dwufZfqWF!>s<%;P)|38?N3C{ok literal 11967 zcmch7c{tSX`!6j@q$q?$3E3+l`%VbicS^F4u@uJIE|l!DuaQ0Lkg>EVj3sL^Om^8b z_Wj(WKFjxe{mwamoa;LMG0i;Q?`OTA*ZsO*_Z@gcL;2_t#v>#oBu7=QDQJ_B?29BJ zAr(Hn4_a=7MV%la;eV>4Agk-yH=F2vP6@ zh2!$#!sQMi^OQ&_%0?q}>pg$GXt#a-F1O&bA=eAzK)r%olb)x8M}^*K(Ft54dqJ;z z^1y)_^o+&wx7ygrkN5XC*DY?zwk(Y;#dgkPG?T}d63E725`)@TQpn-|P!afGMZ$*+ z9zGhF{-bU5=zp{k$l&KcZK(b5^Y6C%7*hE8ciUcf|Fr!x#9rH9!)9gq@9wxww3b!c zcfHZ-%+kyXv^@<&-01ADaAA{@k~)9>Q)j2njz*G%QM4`^6L5@0%5A)vaqTXZ=ndK< zvUr$r%DW2pSz~N8-=Sk?wnkn`)6voB6STGY6XHH9#XdwF}W&h#$+Y)>zC9{v<~l+v`q`F)zc@G8wH;oPN5mo8jr zz+!pMog4m|D(}U9`}S?l>#vTVI`wmYJ~=e>*V3d;$^KZqGVLd)uR5oAug<|jnZ@oJ z7Fz|Dzcy;a7L2S$TXW5mhO_06CiWW3y&J@s|i#jdoRa)Z% zN8jGwE_}>Nzgv|yJR*W^HhtITJqH~@n1=z5@jly_?^G9;x`a-aMz?{Afu6of!1te= zz1no|q~+heI?5y*iJt8%JF$%oUYuw%P{mt&CyIM$L|b4ywJgp_5+3Y7WFK{1L!&1~ zEkDEQ&oJ8h`oedAejOYf>@BgG$Ds>TQc~nl@lljS19Sb3!uj--+S#L$ue!+51)1_S zwMU!ms+qt>R2LT)^NupJut?i}O>xcDx_4wgj(D=RJJFf1zzk#f%{~qH95inD>r|C^ zwTJEt1>?qtxhbUWMBc>+SU71_l>2ONEcbkQ5fr3)?b=%-_LAyS+_(wasXONGbdP#1 z!pT}W__xUz9;c?hWYca zTn;WYf$WW_Q-8%-?(m(`fPes7abe+=7z@8kE6TSmEk8eJU=v34;^21(~I0$JZ7{ zIMw4msgOdCMDzlT1JoNmx=dFRTQV{-QZ|_zFM^bE{Qef^Zil7S(TP_t&&R9LJKu3g z3q`-Z|M>@Xnu{W$qcKgz@4LRM5&C5yUc_WRh|*IVJnn#l8oNDWdstO*5gIrvp)&@gl%eq z8^qRH<+W_@;^Jawmz|Y0F*i_!ZJGFf<9fMSK|-wj31?b+OAh3wLmDFchn7eav5Vy| zdlPYc)so=5y>U;=z}>yP=uts5+OinoJ!j=**BI_hf*N1P6}4MmR(1#pv+ zRJ1)Ny7EvFqH7<0@y~Y|d_$Ge%{oT7OiK6zbnwXSFp&obNe1JbJx-ut-(Vtp3)=hs z=T+2x=;jUeskcutU<1*6bZf92xSqfB=vKY#wL@#^B)ix=2CDmjlSEtgI|z*Kz*pRZqfbW5@f%D|X@T&&bI5O)FCPzkFEGZuoEJVY)n5 zH7|_lE48Tgv%a@8!m|5@#aN%g8(+JMY~(KZZR-0q>X}icqZ;K^F4LFv84sEINkzm zDzXf`1CxkTmpe6E5Kbde?A}CcBKSaTjD7@~$VE;Ew`3%+t3{8Fjj0GJET-A`>V15A z^jp43OmcEz!Qyazu=mo>)EGMq!f&vSR8zBUzIL}JB}HZ>D)?A@zLl07T)*j_{LaqK z`GKmKxH#^nTA%ge7H(2jBqJ$G{0v!MZ=}bqTd9SG^Y0%Wdcn_f@#g*UtoC%}Y3!F5 zOj+cbK3oG|3u`u1P51|F+vAP#!q}o{kG3SqWi)U;3UcyxgQJXB8j{3#M)|JQn|n>N zi@q~Oy;AvR`0(^K$Lc#+I$wmRXT{1SZ_WX@GGJ6foXAN@HEe~n{Kl7#_&u`FxfPj^ zkcZ@=J4xRZoR`Pj%fZR1Y$4=2daVqDh`!A?pRJQMg?uf|r;PeF_@I0W(C%$kt365@ zMaTdeQj9$&y>+uk^)n6dL{9cSrXhZ(DH5oLu>mFrSu| zCh9hRfQ-yon)~+*kOqok#R9ck#dx)X%Ri3;+Oo~tD~P3ZENsuBe`HXId#}uVe!&#K zO~C;E<-{JOy}xz9pj`mb1mX$3U>b*)e zEouSsu^h1R%zcpZ98w0)&xH*B@u2S=l1*Q@RUWLmD1T^Nlx}(l0gIj(sqel~DM~~hc#lD3-rQjEwxLwzHHaUA^36 zGS=o-XfiDu*UC; zW5h|6t=y^bm`_?8shY3p#7lWCT`Ml%*&OvccA1}_pO^Q#2WC01TiE*^ojAAkxbU2l zFeh3LA7pm=@@7S%&P$Vq&7OP{BGQ~rtEl)s{AU7eK`cH(4o63X!RvQOSNUjfmte^e z{S^yS-MM#u@E8;TtF^MW4&N9;4T>U1k9LQ*p3hQC*7mLj@_8xZE|#|(MHmgNs@epX zaQD4ovoXS5t*0X0(%Q+_qduYEnxH>F9NPP3Ho>d^-8X(;2j4iY5t}RVRHg%}D-9;? zj2psW2Y5Ul7+IHas2Y#xYZ;yPaa-vQYBNnI&db?m~7Q3RWD20hA0hCr+gE zwf&}8OSsa&A|l0_d|33VtnUJ{gqc>*ZMuqQd{j6B?L{BZEaf!OH9{weoYYfG9)VlD zHt)adu=PA>vaUPd>LrFYKNWdgQn$iI z2nK5JO-Ba=e5u`87T^m6YO0js3io_?c(|iO8!#OF-SoqvQ@VGyR!e$Af?_L|;rvIV zX_n?@AWVF5NbmZH*<1>7BjjKA_nbuR?Cem`@xFD>YWaI6x3ox0+W2j5P>K2PZ1J1D zdsg4VNQc@F4s`4;M>V3on={#`BS()1;n}r3{cY?*Z*OlO8PL^8H0)&2KU*%Wy|?Ab z%J|yNf%#HjKBstG!rvSI88@y?8jo(_d-m+vD?uA7BJCf1J~;z%cgF-31w|*4N-e7r z5CORK%QKQF)yhInqe&G40`8sU-L0&C`?|P) zEv8>dDnS`*ow1jfm#Jw#xc9Lm^2Qt&E?je0CX%s)ONlB-lZ}4uyr23OfOoP8 zOUL%+-`sIF3~fogMsyA1=8AVwGm&T` zhg0aVR`hAb-IQuA&=QUy?67)^B;f9W@hyBjeBQ8uEjB3wmPhSKtY_y7z^5&D}6W1 zYioC(P|(}5?9Gkf{$lQ$qobpx<+&I8|9(u=Z>!>b1qLHwO!mxuj~S+mcVuZM3)HMV zv?e94mJRvsXNV)NobTMZhh+b>^w;>B>||zTb+W>2fJn|V4unPXnE)+&kV!&(&%nDn zadFjYO_KGETI~;oO_BxE;Clrn1oscqtehB=8@GG_9`tn@2dBO*7o2LdKiRG!aiXnN z-)2<3*kRC^egDFBiT$va^Wx#m$J;&$E<6X0*cf7^T+EjAz*7m|5N~w|S}BP<^X!Ug15p-X&5#(ATwU{&_p`$i`w;w9x7SXkz{vu)OX4GG$`<~7PC zaVF&oyh>EYm!0bPeB|(%GiOLiNs%?{<2K2@`rvW}ixeabUMRmjqKaq1ruDbOQxt;c!^v=RDn`jSP+cz&?wmmv@tdzaJ zzW%|32gPr#FDHHmU}X}r9}U_jqgQqBW^C4ApYJtl*Hcva-Q+d>zpcuqwF{Bl^*M zMnOToe59Hp5;;$l zza+i77)JRR@ zW9+kTV`&RHYK=O}k_9BtH4UJUmvaC$YF2eNA8W!1e3a^ZmUdWS-p7;=%}NsDH_m+F%X5+JoYSZEa+74V^B|C>W?+CoY2%yF^(`&4TkDH` z>S~id8Ch9aAy=T3K5qOLHF=?{>B=uZ9SL_ULqp6JRkpb@+j)$eMYdSR+&rmEIZn4G zbmdTBZ{Q7G?T`z}cmBjFAGWu)MhPFRIpqiRS5BT&|5o90+wM5m5CAM-J6)}SewnAc z=fySC{YBcnbOa(eP%5LHES2)9OC!g9oTRE~MApIJet|Ms$hWM{UCc}-o1a=Sq_p@|2G zdgqU)PoMfN)YEG}JRibmQvMVB@#9Cn@W^F^n~GlezS3{WJ_HqrZI&tAMc>>NSmKM} zGohoQvGfo9EtfuZYTms^>O?Q2IhvGO92+I@@2VV^Ec_ zFDu-G?`f$zD%e4kB}thr9{@&+02*nyNl{F@|whuk<-=;37CRRqgujRFyPVZT0r6 zm)NvvsHsKRJM4bwiq0jjx3RI&%MO$~bD|tq?(nU^vIlhjMt*t$^R5`Rwwr@>5A0ED zhvY&oh#FwU!#AI!v6&i)Ikizdwpbzf87@k#A# znwPF#HPi@rTx44u7e26fpu}e+<4PlTBb=H|>1q_l;ZjD+D4(R~y_(`^v{(ss8&%|C zf_ojpZ73_*FWljRo#l4F?a1Nt=MZ>lxM(jPkAo^292~5srUthL4AN`>-Gb=RQO+9~ z8Y%*@&^K^}y43%UXetH>1h;4!$dw&mE?bK!VjV1Qrt7nJzRt`vwi4rOXIi}G2c1;|?*Pi?wxT{haGp7{v%{Vy3qoc*CG$_;%b_wrW|F(OKic#(=or3i0`Aqmzcr zXa*jpW@9&o-PNJTgo6A~;VMMIz-NO|p6QD>Y=nn?!YsBxzM7Pzuwx$hN)1V`P@8r7jZ!o6RSVl*@CM~ zHdq;LB0SbhCLZqFzrV~sXEIi!o#1XQHcOSXu=y1P`Xk7A2MP!r!gFT*Kx z=oWT1UBkUqXoqE;mw*`aIXkXb-}=cPNjhOd(;X0OQd-4LbP=(*ckQrxAyPNh!wPvn z{6;O+a}8BA$xT}*R^bhJLG??-#T<8U}E7W;jIM}*R_%73>8$eno5yByl2 z!;0**C{-FuE31qhP0LMOQ(oxO(o#i51>`!^c3S@E-KWE6PBS%Y+aT)t0L2rX>x|*1 zEoc>i5Zt6?h5csXZ&r0Xufc$>NcWaCTM{!n^{82;Ci@F~s{EnZ^$qaLO0@^MCkB5F zeeA>a_nVS8y_DLx=3Qmo68HA)#opIMBRg9KB)xoV@cpAcS8{#P;F_A6kZ_OgsdeC7 zCQXq%ccx7w|ET3xv%$Z$F1~ps2B?g0y>6hZdp-u&aj1Av>(Xr@pnH}xi*|=z1O~!! zJ}<4bLVx+8_Yd_KavyMC^a*))>pl4U-tUkbXYv{uh zrI*ptt1peOa=%hkbfp`e`5lD!^q!&3tq<)8(Zv&~LOBZ>4k z&7yi{GaUPyi2*6=rEZh?-OYYzB?EDToa%qi+|G*+GlY6;Q21spj;fW)|{|v9Xh-F8}Vuxq5d6UAqjI+Uu5r!ec+ZF~)S+~a@uu;ah%ezLH7#aLH2vL)Th#>N|k5*=!r`@0v@kF^XF z83gx}C=?1J!;XGyCZDZ^FY-?*Q(H+Ccx5C5ZRkT+Apw+mJvQyT3{%uw1WtI0Qs&dX zt^iMWcNF$@1R9N&^xzy7!>ahTw9`≧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