From 0e4cd32027637ed1848bc1b2797f4c48e71ee266 Mon Sep 17 00:00:00 2001 From: Eishun Kondoh Date: Sat, 13 Oct 2018 23:49:52 +0900 Subject: [PATCH] packet_info: Implement packet parser (#14) --- bin/enum_gen | Bin 1472847 -> 1475794 bytes lib/packet_info.ex | 250 ++++++++++++++++++++++++++++++++ lib/tres/ipv4_address.ex | 7 +- test/packet_data/arp_packet.raw | Bin 0 -> 60 bytes 4 files changed, 255 insertions(+), 2 deletions(-) create mode 100644 lib/packet_info.ex create mode 100644 test/packet_data/arp_packet.raw diff --git a/bin/enum_gen b/bin/enum_gen index 6c0d6d5fec3440047e20fdc221402e0236891263..d5276680a5525d182e753d85821ed7b61fc24747 100755 GIT binary patch delta 80393 zcmX^ADe_Wh)C4!?;N89(J;m8U^yXytzSUsHmrb*zz>JA!bGSi_O*bDigXqoA?)+v0 zGoCy?3lZ7!{2Uu!@NQq<6>|SYbyye})LEu)6yg_~ZotLPwRyuk2NtmG%906&&ddx9 zcFfc3xw&LFOMi}l=r8;Bf(dM5;!h!{$R9DV9ozev7;Cvea@+ZN8NUgESsV(C2SUND z)1{1Gg~6=Dos4Ukz_z4ci`eDE%)sEzJh}0k==MoHj0s>fw}0(tyvzz#e0nP5Pl(v@ znT%;HU@?Pvj4L2ww-+*oGuMN>qtm_e(OMP;h7~Lf3?d8+46Zqu6`4hPo~{*oo_T5c zdP%8?xr{4V!hg$mb1;AbbL!Mu9~oDX1L^txyL5Ek)E3snTJAe2#?JcT@BGWjL2yUFIg8+_Ozhe4}gf>XrX9EN1;`uh(5EXrk6@Xl7{G zd)1@oSj5K69yPY~chj~N&E8YHzw-0Fnmy*$w?AJAux6;dU&6}#_h8C)Hii`zhKZdF z>Qk03S@KzM#mfK@9*KwPx6~aESZv~F;Qp4a$Cnlp<$N$D+oN-p$a!y%kAL_Adow5T zoQyc)&)v4r`(X>?l%(n>tvd2KDN9B1@SYh8ud?Rsvv-%flIkd_FW1gC|LaMf z$P=Gut&>`{;*`z*2_l!DSST+l42kS|u%S83+24Vy{6k>q@=Cito<#>gvp$n*Un)^D ztHxtOT7r4k;bXe&cgpf^2dJIeeD}xx4|4?WJUk_-zVPJEb&SrvPbGdY+41m3-kW;y zEt}qM(>rO=W3;+w_xA5CBFufxw&|j_o3tdBT83@bu$;`-va2}Ee8DTXb6#x;BCi4j z6VC}Srkd5S*0>rLb8?Zv9Dy_y(}n3=v-P<)$%q|Uxg+-K2Q8MF`_r{59YZ;Vgwe4NWEGQU8cfBw&3fBH}VNGd@yX&I=|a`Ca_-=+ z8_henOx1MWBU~J5AKbTttGLoSxKU#L+*LOYhbXN(7IX7pg~0WMZv`c~*Q|}DS0!_< z(&~>@*T_HBee3Ir*w_=BWHNm#*Xjhf276w=UKD2ZbgtX&`sG;#pI)-LY|ZuIJtZIf z_}L4$Wqo-`uQ*rf&30U6H#u{a;^VtK9IFhY1#Mh{uXU{W+2}R#MFsz3r}iYNYg0XR zJTg>RZ_nURGqw|~k^6ABC3jh#*?Di}No<$nx|iI0lBH6r7C!Sicd_6kr^%Ydc4wy9 zojg!{*TGkFXTg`L2UgZ+%Shk(nmv7a&hfU?lBJt9T{+Gj-2W?nzlC5`et1=F;i>Y3 zt?wqD4*GOQ?L8aY!@2wad@i5Mxh?%`Ny3igs;{@p{r`S`^YXR*O?B zwzXKl=Ht`3=2CgDvYKS z{JhiG8H(|2Pg=?t4JjiJtYq|tl%Ra;86zNKnVT7}Fj<34`Dgi$U6YA{L4}EdfuDha zAvM3OI3+2*xU>LLP^vK9{);Fmi$C)lr6eTGdbGV_8{=U{!DI=623e_XJx+6+<{X+c ziRasNpB;>fnwl$FkN%o4Wm$a8lr{YxB~=HmurM60vpqM53C$DRSM6Y|0@q>N)ekVX zC4dX{4GK)wUw(Te3b_*#+JZ58B*uWNn_q82o{U2 zU|tNV6qsw6Z-VQn?f2`Lp%q0}6Z2&za7AH~dRg_k00YA#0R{#^1_p+#;{3eS_>|P- z{FGFP=N}2kzDIa|Ze(qNwCl9_f!<}?3l2vpA2<9t$(C<*1S z9Tq!HE9?FI-HWsASG{|+YR7fsWcQOd)40QJ&(D5WxBmCvd+z%;?#{oxIZR;M>$wxx zT5o?7OQYTbf~PP^izC492~o-0wDTEwdoTzPh?)S1^mPt7TF zIsJ5N*S?f`qw)(&pBBxG2@SfwHF1LftC@+bWLsOCUp7CRJ^BBt7t%iJ#mDEc)+RXD zuRZ$x)y#X^VsX`#cSKIUwwxgpZoN5y=biMGvxnoNJ@{uW-@0tIJ~!{O(zgqyt@aRa z`@LmOj%}J-_0CC0i+jF4+pJMAsNK67GR==r5pSDiPAr5DfCnO^eTG}b%wa8%U#d8JYLM)yzuEjwGV zZ2yEy2Ocz@DP=d^yZue9z#)dk3Rmjb3N<*dofo;V+@W+)iU*&6v&yd-&g(w79%*>k zTt5HAm(mmJ3og~ig{+xW!(%zKCn97*Z^LEx`$>GQu1giNCrfe}s}~(zq0+h0a7*Rf z83r>BUzQZ!ysIsVN$RI=*IP}lkG%hvCauhV!xj77d4H(Nv=@8}UI;JH)9V(0@MBiR$&R~=y6#JG zwm)AwqeJ!Y`a4}ru`NmJs*3jnmz!=qDxUe(^;PAZQ%BtQDy`GIC>3IIHOXI6fBMIJ zM*E)CeVNxGK6M4Z=(GGgY4;6~>7^~jU{4H`pEnFod;)u87$~yOVgZ?Fga4L$PJ?VDKS5ni|Y ziw`rCmBLDHHAuK;izYRM?NIiK&N@Gt?Uu*8<=Q7>zpzbO=IgS&&d4EOq%gU2+k!=g zg?Em!9JSM*e9-;QoE;tEvp!EhzJHP~L;jAeKit)OGG&f^OgcDc-lDSyXYAf(eBz4O ztu?!Br(fTlDxlG^V`t8ZY~G)`qK&J|3aZz`Ng9@)ARqB0bG-sxR**y+^1R6pTWbo8R!6&#rooxdJD zS>}Cf$30UeKB;usd3GIFCiq>CUbw5yEaduiqfK4wl*=#AcGpsadQmWt&HQQJ7=e?XwMhyWmD>Me)ml?@cSbTo4_lv;-Ly@W)jb3=dE|} z-R)-{QBZQ`z(zwKH}4WKq-~n48TZWLSmg?b^=B*Vm-MPd$*S&pnWa&= zFXvH5uE58%$4!SnODdFY_A`&}Fy!7SwoBDd%BzI?$dlH`>t+b_cyDCUSGJ6En{v8w z=g~Wzy%*M|mHy^av3u;Xp>o2FQ~g^bkIX%$+O9rbpfF=8^PbY96BD+#mMNFZ{+V{Sd*Q6vhwrvccyzq`)+DxR z4#(!)GP4eeeaSt;`F5hmk?kIwE3F0Ey}B3mPOR`qw0$OfQ8exEGuervAJ^LCys8(P zxI{zVM-Hfh}Y?NVmfk$)0*+Xz73LvX;KZ}DxLGbm!}?-FjqC~*R1AwQ(AH7 zYr%#ce&1(&SADzDDQjE9X9>4GHSdKB`T3{S+bZ45ejugC@oa`ws{B0rdY!mLAX z@vF%%*zWxBt?Rry;ATfchC-MCR zofX)v){l?aRh9R$zD0L$Qex)$JC{ywlwtkm{!_$eOR($_#TdzBaXU$eu*A}t%uf1@; z_}H%HYHO;wUi!RCbeR-+W6#DZdSdU}-~GN|aaQt2n^$~U!Je6E0lPm~FRY)r>~^dE zepf5mYYW%(Tuzkqj*x3y&Ob$a4rfErij#5wbPsLSin*M~Y<_cAo5N*!hsy!GKjhzM znsN5g-AeD&&D>&iVWqOLWMtQXd2KD$t3%x}UkVZrhI>tWfz zD=(SDE*qzr+NxGvTGM*=%Mvf953{#8ALVtF)jy@L)IHl_)mcLqrcI%e4sDCYaulbW3 zFUt_$FM@^{56XlW&wO7k#&2wz=g9oLx}`eD(`=E|6_1$M7mp&&+P2p(t&I7;qS3sm zHk)Dp@seK}ULFbei^b}`D>6o1OJA6J^#x1kh2<_bfeZYjjvZz{t8!+|vi`|pzgjxv z^)GtLU2Z6z*O@4$e{gx_oc6j6Nlkv8KRS1chupqA`Ma{?5&vl~HgoG#t#atS`F6hH z_Wy!8|F?A1hb%g;v*YjOV*MEx|J3*F+`I9^xAU{=s@A#0I~*1JwMXgPu48{@ANU-) zktN^#2fLw(Qrz#lrwcCxzMMVn+HV%eNh%fIR!v#Zs;<@!7i0&C@5QUfq&;wOctxH{{kyv0q+yVvFA%+0vLV zSL!R?oS0H5u&LwZ-#rCW=IFdn%~IxWj}VaBAZNC+d11lF{V5N0!zFgB-prT2oiC~V zb(fH@kd(~+MY4~@ofywlciv~$pZ)#d=}pyZTf#Z&!@o>!pL%}n+FI8y^=_N|WT-*1W3IzP*uufxjx zr8mKS!oI-McN~8umv`*bdn6yu$-upurKBckyNWww$P+<_ldswC?eezLeq`?S#rMdf z2seXY%NniAJ?lTH{t;$wPwfA?;dr$4i}M%4mayD@S$)c_%I{;TmeY>liH{ho`u>-` zkI6l>xAEVVyMFfz^OwBu`my}O!L#hmUvkUY13LEUKH9$g#qU2WLW7!)ii(wNs`^kG zp88o~40EHA3Kp4(Wv+V2Re(>~$8u6|m*x%>H}%U`sI z>&0?=?_MAGD~?;@@jV+?`%PlT9uCD{^CD#TR((D1^hL&g#-+$I&_aL^TpVzi!CW zntV58+2(aQd)E1!pSG#+oVAj>?`|gtzXh}3{`Ak8_rE6RwDlWPzUtoO;|tEE+PBnS z|8Mnc&nyp*C?!FOUp5I*en>+vhw!ahOx10UnU|QjA^zrAp(A$$b=WhRZYJYaR zQQ_Rl_~G3y`>h+3l;Q=;7vKI}_Ws@FzWc@^H}`3XRqx$f6n#75|G${q z^S_^n-&g%CKkF=aa`o3&wc_@7$+{!&!5`=f224sO24@J^8PQ}v(2A0H*HW}{4HV` zhpEHs+}rnsj&a7c;l?b2i4IQd{Bqz_ZYJ2_l_nRy2?62Rly8X6t`dja;{_VF6A8tuL zm%D!A8^d$qc~`&6*k@}VwXHtEX#0C&&8-?w??Z3nYkys0&V9euXU?y~d%OSdSecZO zaXcZa`J_GP^!iHDjTjj&rDovTEAjK-0pRIO=nws$z`8S+4{vn%lOi&=UZyB_fI>!eb#^XytB`* zT>JE2WBtV<&4>RPD&$V4*T|ud*>p@}UJ4m%=Ule+ycahEgDW=!gBWB83N+LnkeHmE zT7npCcjeyo1u=}$8j)Qfd|mY3*Hho#ZOz+U^|P^8&?6x^M_KvyL7Vluw-4FKzFAUf zGBL%o!C_i!S*x#CbmQE%JsrZIf(&|tCz)xcyb`&TSub_zl7rI>mEPz}oW^sPEO}z; zJ2~LfJileO>E*p||E)~xJ6C>w=l46C?^{;aKK;fk{o2B>ZtK#um9d+vz9#jZ{waFA z@U>3v#~Thhp|>Tu^1D~bcKX&PDF`r&ay)7OT{U@QMaYX@lL-@6ElaY^G+pH}`%>oy zsn^~bm3wO^me|ayzb?(S{FjJOr&{pE0*_v|Pm5MoXl(r1bvDp+!TF0$lN=lZgI{it z;t-Lzy-oGf-pZ93DzbggT7ynH#2eX*-ksN{m6fM8tLMFl(8Amxox~fT1RJ+1F#T4U zS|Vd6?DVl>q2O9;(a@~xt%uG|<{^wo>LNE+z|(mP*9rdbkPCepLH6 zic^HU<#4aLwnv1=+t+8^xmDC-zh#K&dgtDD*r6{p_kc&L-IIldJyMp(=4^R>nL+5P zaMzc%NjoowtkPeaem}xsspA{d$+DX^tYec}dn`D)Nz^OOO0towa1OuOQ;Q<=FZJur zyqqsM!EXXn+_@slYnDduzgV;^ZCd=|&!Vy4u#F#V(hl}3RHFZ zyuZD9!C%z8=Cu|h<7<&wtW(1d1-+lJjO{@*H$(GXqvwYBS|RP476H z6nhjn9ULbx8gwK`9H?Vi%)qB8!CWA6kdr}Ou!q^A`(q2wb^cd2LGMlb=cmW2Da_n? z=S=wdLu-9rrZo$0i%)HDyK(XNjg!Z3+)O@G-BrqY(=g#$d#NGg^<{53W%@2~?Y7a{ zZajPc)%$Pze_Snl_KE*z{rk`M&+Mnk+E3vAswbtICq6S<`SYD6i{^!Jxt03-3zqO* zf6hW*Ec*)k^2>3Xy3ZxZtzSRs+y~E8t+h@{><*6BOAA|A9G5d*l3tV5bVO^e3kzFi zs8ywfCG%wVi%Ap0O&#N|vVcUIEpFPFor_U3%V?K#p0_J1a>s1V%N3{U=b4|>_uEul z7{%Xh#N+;=X8Xa=z30S=mcGhKbv@k}v)%1ljrdBT6HL-8x5XPp9)ECk*2acuJ2|#w zztoFbwmIDORZmddN-Igo0 zE%U~@#NBPOQe|J1^{)I5)e+&I$zXb6cA1wdTj;j>4%uD(vb8;PZH}Frmn42KVgBCJ zTu;tNHXha4%(VLEA+DS>ZS4)SbJrY5YmkrOK zt`q036r8n7hJTug?)TDvj@o`Z{q_Cq7pU0nWLoc5DX1)GHTlZLnR_fQpE1%|v+=^y zG_F0nK1lG{{90z?rr776!TTh%qw=Ic;zVh`)2DaVU-4gdsAA(CXIZ@)CmDTTEZyv3 zTRM^Lm0E9!-p)zq9v_X=T6?(9d+{MLVUrN`$KC7)7JZGFdoTGfLsQhvkXIksHeR)P zs4}Of%W_8JpBV;)ZyW^o-t`uZiaz3W<)%;i=S7nR)#qF-t|&B9HfD{RW9%e;NLf_& zglVSx|3_7qo~YG(N1Y7X{ig6$d+qj*8jf)#E3d3he`VU&ahfBJdwqD;)SZeKrzp*rTUk<^44TG)R!(5eqEDzsq6K# zzyC{nH>}G^ijAJJ*tx7CzI`*FQJEWY|(OnAHCGleLV+^|lw z)7^36Rj;=`%8Gju_}R>7^VFK~P3+1oR*=*nry zmCk#a?s;6%UacXl&{A)g>$bN`Tv9o%#I$)!%F&$@JXBR4tzIZQ!^8dJij;+G6>rt6 z@m?&;+Z9=b)gLE$gca}E;kKXqlw@4Y zYU#w~rNQqz9#!pOnq>MxJ;hl#mfw8d*NVpz_ZGZv+tCgJ!XC8NW0W?t2B2UIFS9( zT=rPL^o61Wg>omd4(~sA;726$BZD_)0-vW;q$T%dyy^Wm=UWL=@-)fErfvDnhSMMa z4>a9nw(OA1zUIe8>!l=qRy@A^+P~__b7}Ki>!#;%vouefCM~aJ`Taua)#c?=_~dqc zJH0dXRDa&y`rlW6t@gLqm@B<++ppQN@q7Q?VgDJUxBZQJw)p*xnRPF=w*Sc&b9rY| zS(Ec#x4iWI&WHI+f9J*jF#CQ$S@aqA-}fbdOuwA^ntrT%>9)h_>$UAa>3{Bie^;dX z=?VAb^EcO5niLltUT)s&cE7G>yXp6v4y|7&>wAW0{$IR4Rx0RTeg5aSb$`CxG8S*| z4!iH<{JZV^&iH>$J-jxleRh!_&(56VzD_#+a?v0E`swp?Ru|maU-bLn`~SE0d^&MB zKd$PVarU>vYv(=w(k^d$cf_9=>UWvfP0R0nIR5`jUC{2@ zvh%|0j@ieT{(3GQSG(}h-0$aW>MJsihjZ^QuQ|BR<^P*$zvtijw)wey#fNQ&_0LQE zs`wfGS!cW4|GWF-N)mJSzVxEm~aPa4Wy(QTbk9vEC%> zA+x6Ghor@B7Rv>ma2?LeYrFqpN18$3G+j$UzZ(lxwm3RH3p&*G{@(AB+t;SoZGP(! zSzmtp)7t3UY*CXX$_19+T72vMu>()m|2fdNYwev|5lnUcgP_ytF&W zqst>ObF#>^q#!3RFYBeTm(E_AdnxwP-Al5UI=%$IT=0ea<%TcOFI8V|`BME-^kr#g zd&%r6Q~SJ961Pyek6e&2xiU%IAo-UCq=dWktm1uVPj8*?5+O!^P=Nr>L(qAX32>DU|@mc5Wp zg3rD?J)nu-=}Zg^!iX8>+|-hc{FGwIMC){>45V4+(8>Njmjh&u$KPI?7rJ2!$B}}F zJ4c0O6;Ad{?`0Je4oNA9+x_hzTW)-9t!sz)k%G?-9yT^fJd-NaRpNLjRTvs7s?FQ8 zqEp3E(H{`fM!S&!fQ>^bEnWoGxwrx*+z%hfKm`QCC%5y#`Uw`{i zP+ORl@eqrZxa|`cy*1naxT-k6iTZab_1<%tH2YvjJ{E@sXF?pGzcKo1?AhcM8n`=5 zps00QiFX!%TH7%-wdK#mqy*e&M_Zr&7B9QcuI~HC%iG^OExd7V`sc?}lXeHK>$%?b zHfpC?-u;Z*CfjGPW2#?iknv9{I3)Jv>DNx3VnP;@ha;oB9>nnYTFpM-#>1SYCUCr< znT_*K&qK4j9uNF@zP~7A`kq|j@Li}v;;?engaeNy=3Q7Up%pbRIQHfBR{bw3oqxrS z{|oUgwOSrNRXa4(Nx*BA z{%~z*c8*A>$h@03FTKoNe&$`t?%LelwHGcu&zqcSpsbwi$lxJzWn6N0YIdA0-8RdaB;N3-Q`i zILY|A_4AtVcdWnH&$BGQt^9beNN7!-fzgKomCdHUfgx|-Owo1>O$a@y(Kh8kCiC%B zZuKQI?`38k=*nB7aXtP3H}^!DrOyLT2W&YxPd9i|;-*PUGCX4^bv>@qTDxL~r|Pc> zIgF}l(KmEFZ$;e+Dmfc7^^)+muJEN#b}XFz;+)Ou4GT}*dh*IM$Fs8DPcL<*%2M9D zmmcrZ@^tmmT01L7=F^K+lN1ii6-2l7MhZ=sw5w6&B#ZlC=k_NaZkbtq>|F_%Mk5T|m%|LkAacGHTv_DCNk`TZMYJmukP+#$+9w@$1(Ahd;TG zCM1To{z+l%ZDlIg-MLO6*)qaFpR-*Ql|UcKnd;+zv=GN(hLEpN&LADQKzCq*C5 z$$h!RNTIfp$N!{pSDy4vChgACtE47BuJ&0!@A2tXU*@kaaaGN`C@k@hk?|knyi@j{ z>lI`bbk3%0PT$_Syg5<+^7$WsykGxf`+e+plAv;x$owNE5h*MePp7QBsNmZDNZ=^P z7YPfNs_ieD%B@cC-t+#`mxmj8ALssmcw=R@etq@D9Zu&vooxi-1lpSxoa@|w`1jm9 zCswEMJgTgE$rFC^O!JTC6Ur?+y%xql$olJjqFR`PV`=>)0^Hg@c z;t1#6(fQz2-a57d*ha{`g7pH zt3c^+|IJ@(X5A927iqh2OR?OgfOF!)4F@V3qR)JOBD&-zn?C=`rke^&UN@EW`t4dU z`#Dp}@xbuSFVZ$0+`GX$N7z#N3hxTbGo}a4ihT{@`L8!Q-I1D=dotf-w_3SEPIjN{ zvW#uI^#wIE(yl+7J7H1n(MBT?k#~GS0*6=_< zIyURC&9%3E@bmDF!WG3Ke;*v!6(03%PSv8FFP2|;)AIH9#&0jKUivyQcAvcdsm}`= zquuve%&l4RD6;mn=lrKxweOz2SjzlgME=f);*XE{_m$RO_I~Ym_e0G6>3`pxSlIek zcm2D4ck4?le;@SKudDj@)mWIZzU2AypyO{h?LXh28+Yg5U;X%Y<3>T-eTOZ%cO2GX zzH(%ZS6M?$*_ob|g3Z?|Uj1EqI{!knx?7f;-kp5c-ScOuv6TIMb#h}zdg-N1UZF3- zk+%|RD=5)oj%4mACY_&ud8d`zJndT$W?b_VT7#d(sp5Sf)u$0o-8RWyr728 z)pPzWzU&MP9@8KCvZ&O1uy6l?C|_g4cztA!i_Y7-v-xiG(bI1~X7`xO6xbyve3adG za2Zc|<5t}q<>spjOResopEalUPF%S-SLmXI-JTw+ulZdHiCR8&<06mVM=mDzVT(=} z`39K=MNf^&ycAaCvUW%4s#U7f)>vgp|4Pe0zq4ei`R~2v_v@=ae>;2oVvmgFt>y{e zAHMi-VWHyZ8*(i(_ywJc?iQFCPrtZZt>o$pD+4oWNw4LMQaLvBPR_mX=;Nm;W^>P{ zgxbt~_f^d&_`FKG&(#NhXPyM5xt*3wy&P4gwtAYcdeE-4ipyDX;lZ52zSCD$nN6I1 z%Vg=Sk4(q;PNw%%1YH+;Ss!x9fc@?=yTw(0Dx2D(IE5p9Ppb>B3~rucYCGA~*lab^ zmOb-kwr*&CdeX&eWoG2`Wz`|E*T1aFJk_~;6X)TM`<4Jv+V%T955=6J2v)LnZly~r(1Yx%Oh z2O3QGEq%FMuauyyIO5z9<5SwXe&~c{lQIlal zr`~;Qrp*`3n}4SpbS9~k*=QF@Ke0M9Pu)B*W|PYF_uCHWeBayfJHEhTzrarS+;d%L zBe$kZKd;SkCQ4OE=aJZtvi<|tmD27?HFst;CbnuhZs@x#*>pEdu0iE<-HBP>uTPv^ z^R+atKIKN%qhsGHcCZI`(rmCY!& zmN6t-*XEI+icSBu1#vqLDT^!qxE}euF^qpp)#UsGOoxoWltwuyu?jUXuo^WOu(CMh z$T0|s9dkReLrIHKbjrhdY!m8NS zdVoVvbo-<5sHycFe>XHJ{o<&JR92CD@nE*%SB^N96H&|Gz25d)>~^f)j@x!!51b!t zxfyl4Uvk^YsJr~P#IomRoxOI+u_AYCM24OIU4PC6oBgGa*3SB3b-QH#(J5QYlGIt&qnD=GQwr;=doc_e>9>Mo!f)VXYQ`>l>a(G+bG)%bt>xV)MPf}+aiz|z( ziiw#9V*t~Vt`mWRt&0~4ba!2<2$>Rmk-=yY6X&CIbYtspM&6ISEO-2^ zq3d<^^Se(P*A;D>Dk1nmV|x8G-EHsUW;19f^{@T*V!OL}iP|6SE7gHw4SCjAFBk1x zc=E=t|L->iEIjRWRF7M9w@%2LO#vHEJAKIRk(F26@gZ5`@wa}drUfPcw@2qNi)6Bk ztXw?(zT@^JclrIYmyMfqb;QG}e)`!QC^yVmzIMG)j(EdyTOKFw0PhpG-mS{3s()3P zdSpYI`?JQEHnsab&-)78iWODRWB=_a!G3+(jn^`F z7%oL5-H$nxueC8>^Wa&&dt6GEe||ee$;dF>d{?ky@8yl=TwM0AyHC&h zv$br`obP*!=dfTCiFOPj?xj}8XbwojZ%OkDjZatgBmNrMKhj+y;mYn?TbAEvQ z+}|ISpV!s>h~4?=qqKc?Wxvj}$+PEa+gGV?{QW2E>h0<4Cduy$JpKRGq2KpI{#h3M zw*Fl=`Tv5{w`WfC*KGXwp;2v1d!)tpj|Us4H<|LsMeO?2S@|Yk`}wc=e|~J-$^U!Z z-+y86zE0Dwk9uDG(Z1)M^{44e*;Ff@H?4lPf8pM&Xly3=aw9+&^0aZ9)U*U5!O zug}fxTB{&#)fe*3onXY77oT>oAE z*GX}IQ#JQZ;s3Y1zxDLUqm?J)zrES>yZOQ0clqzH$F1GeShoduI>Lm-##XMfA_n8FJ4Ucm#x`qUFt0BusEvgngY|KvMlfH%UqY9 zJrHwGpCh-Tu;8u0oqaFv%{d!%+IgMHq0MgR!itz~)meS+zr415TF~EBwT&J1mG<4|zopM{SzNG?(T}V4=bNHm(>@k@zT@~_nm0-MnVUuH z?5C?N?XMp&Et%y+KuDAPNU``9Ule>?ZpbmNnG!g+3YXa31qQsMn7 z==p{J3<6$rm0P&bD`mq_7DGs-oEpLM2Eq!7VbO+E&rOLeFCnbFbe2!r;4y>b$t;B& z;3_*OGp@{>hk?Op`oq~QGR#IiXQ$0!5vjNQopwzwy|((?ObhwfYbM{=_&ECcn;+VK z$I9*2C(GPEqS*SSfA{CR$M!wRd%we4y+!P*?h2z7BF^5YgS7oLS80WIh;W9A>MmKQ zbEnO}P=PR%*4G0Ll|7NW)^D9mL-)YazR`35_ou78z+^Teqx4<9Si8nr6 zeE8{XZGF>&$|!-BkG^UDax`tF^+i5EtMw#)$v`j)4Am#%A{6FKkva_>jEOG@r}HLjh?#{aZJ(=`9tB-0qy z|J;_VpPZck@!6zSp(e}slAmiU>>gJOs2Gw_q zSMFI?oFeo@q}*$!nt<~3jSK<4TJzb04Q3mwUYB_DA%`t%`p&~H4C}j$Q@x(nKl)j5 z>&ds$b%}gdN|xzC+gY{dR9o&ma%%eH<)0?3y&iQUZFP5=Ui~$m7;f&f36aZ!Kg}vW zxoGOfXBLH_d^Y)BPSDh&nbo%*&!2kKWv!0!lhj4Y_T6t< z{KHdYy~p)W?y6Y&y)^fQ?Z;JXUKyTU9Qt~{=>2zpm$F%uvM+!3 zV9KkBy?^IBc8RiUP0N*GD6dm{^h@p)KYyU>k-E8Thm^vyB$K_kFN=s>QxIInBJpZl zVY9#gnoA2NPgvj(G^^L#J}7mC2mh*LUnk0h>|GHw)gU`CqTV6-u7G7nB;z60s+BU! zeA0F9oZTXJeCKrKDI&@VkKN{LeZTBx!mw!F@r#*@jaFPZrVzcDH>e>`tgv~_>({$y zh!qs=X8d-_r$e&JylbmMFKYw4{gb+}eA#j_oD8qHBVbIa60*#l3{b zYYzl6OXRE!PF2edlVGavxUFzTD|c5|#4^K`jB|3?|L@tpMBxd~V_BI#y^u$hb2UXD ztyIcmQn$GjCT;HA;x^+}nDz>vixu`By$L%vGfmUcTD&UF!`IK+!82#g&nr*McFC^& z`0T*##HQW15+92dY~?+$saS9k0+-;WobXe?|5c)rr{DzZ-=cD87_y-uR3}x z*Y4q}8dtg4wn7dKS6#hv=T zGQ^!1Ur-a5QTas2;buw1htJ9nu1*VSyvw%q)g#Yc z?hdbZl^uSt_kf9%%YhQ7TRyjyw>WcMs#VG>|2&nu-fDvE+7Cj1S$4|$a23C~sx?>e z0Z3y+m&b9a%&iFtz_p5`L4yQ9GcaXcF7^M;W|{yZJqlq zBS>Gr+szCp`gRl@N!{URfHi|{d^t688UH8ojc6e zakXblMMxzr`gT;SjoHg2eyMBf+ts177U;FHzD=20QV5>?L_n2lC0L&r&tt9 zEuU*qx@niwa)u`&Tt<(BBx*i|J$N5=!<@+_CwuwijNIDKH?$av*U8){7jE!u(LZ23 z!$9x6#PmhSM9x_T#ac07y>$8P#%zCsje;X@Dt&6}%&VQvrGp2kD6Rcln z#BE!_{rpH|z(+F`4&$ef3V+yjacBP6$6enhb5b-xCoM70nj?Zk?)%B5r(}QskSq6N znRus?D`>mp{U_^+SKdr`&;GIL4#TFSfAh{<-?po|@{Mf$x?JNEe&w;unT5~G8{ga$ z$nJmLe*1lK>AU@x@1D;6w%clZW>IOLa6xTR?S-rD4t%*YYiS9i|;$ZNOrUFY3%mg4Igt~AROUe7Nq{b$K|>HRTlj!VyfNi$eJc=hMz<5zbT zs?7_wo&CD9$z+#V&AR%7bMJ3js3z0Ar*ZSwU7m-&T7AA1zPoz$-P%RJzwFqRt`z*N z@~>3e-0ka+EStC8=Ip0dUH|7r_kVt0V|3;3tM=0KcV@3#8<-TIckTa22j3OOA7@|x zTK?bqV?o@Gt`_^dzYn*%{6E>*Hh=E#9~+;m#lP^~c5UDP$NTsHd35EpetpgB`jgi7 zKfZDE-rOE{vc`O8&HK;1wzB)P&hIOHr#{`^=EFaJsrg<%e&5$QW&i)Rw)(r87mLsD zH~)O9@51-ERrwvZ^Y*N-`O?>1-tYV6&&HqbFQ@vpKL55y;@+0}KjrUb?7sK>`y+nu z&jP!z5%>Qt7QTN%^4iR;>hIQ6f76a-UjH`hSN)~c-*aj|MSc{w?k{Lk`=mK9di81F zGiR&Wo@`is{LZg}zZVL2#yt7Dr+dE6`912o3pT5E^SgM9+2rrZ&!5Y4?$5v952xGQ zmj8b%GtVLI?9V4Red-pzn6b2#*S>6y-C4r}@h?97@YwNhChN>+*XlM+-!i#&$>bMH zy5FeZUD7V2P+PxbKF3FoKaPdt^4e;Q*{*G~kk zQZzpif5QIc{u9wp4x4Q}d%5kz?kBRJ)PDL$mr7?&zLnK7@j{KAOM08vXYR0Y|N0dZ zeCP2$;F0#Dl-~f#{-tDmZJ3aUoi(Y*McY(<9ne%Q&ZoI1 z(cl98+nVyzt<_g{2P=kp-mJXgY8ftiU3J})_cy0)5s(qJ|NH&^|HrTY|KDA`c-#*w9dG6M-(qmix zST2re**SS@v2ohT36ifRCc94N?nw1B-h7MaO0N2ml6L~;MxN_}=IBm+>vr7e)V7Jm zTvLk{glLM->Dqc~OP5>at^Cx{Uc8oLE1YDG5K1~*!y9@d;=$T{C{p0>1V@z(T-x?#%{8P@rFeJeSjGfUMYt@*9Q zw96B;!*V89{CBQ*%au0cy~xdXN_v9pVY9-kt3o6-q&KTLzKAqFW6pUha(RG}_U67K z_obU2+%f!^W0~*Ac%kNTPvALc&xnoh9?yDkeWk-WX`RhcHsTGLe2>_3FF)icy!T|~ zx7&V8cdd%q=;c;;bn06chbNMo>k5jlE|@N&pZ{-Du%Xm>sj!^^^Xk)nhrQ#Py)}Jx zZyevIoim*b`?;R3>{`w-yLgS)#uGf2tClYCX}|JE$JzLFW&Qt;lbvrEt`(Yc(NMa0 zstp6n>`dWX=Nk`wYBAlA6WQw~>X6>6xgjF<{_1~`>8n<%i!9e_uT-I53GJM8Jb7 zB67vw7`7^*6`@mNZ;Id3>ejluYR9VyS{=Jq|30*MlgG;ykAl=B%i0|mbqQ};w=7iG zcvj$wWjlm(*1ig>edrlGXY$H<*OF(R?3r{i!>921jaN;(A8{kGt}4Y}#j{>{q^;I?vS@;S zjp((*HGj3@`KwUdzI@hT z>j=zO_L_1_^Jm!ZE#w2)?`Ot4$n3rj=dY3UA8``dNtiCVVkPL z`BGutGh3>RduP^X&bz5*a9d}QuhCS+0IheEgAzSCk7l|}i`injK(9etJd?39&}DY4 zNN&!Kq>Lc(n_Sfsw#036b?CRx_WObX!_Lc?|#?*#nF4wTay!6JMVgz&+fkEAjeu+UoD>bcxLuzBlhG? z`j*qWCvS_HY}Xjt+4obi(1h*Y?Y~BuOY2(Mwlj9gGJaK?nv}E8uQF`$L9@#sEcJS~ljl~aT<2aA>|(7yS?;aZhT5$@!nX_(8uqbDSTn!M z)o_erm#|jUd*j4)S|B@o@4j^vX0zrWQ|R5zWHqP1TC%imN1(by>$}V)`Vaj)vWi%L zhisv znnMeFf_0gyFJ>4$3oZ9=SY%M5)9c(=-ncu$!If)ufy=_c-ha$X%%qx>Mc6YYri4U! z99z0`YQevrBZmSx#M{q$u}AQVZ=baH{lr?w-Z%RlcDZ?O@Ay`v!|59kcG~Lx_U>%`wOuijd)U|#*yRPnd%o|~^Pu-=lM%BZk=#c5~hJB$Sn z_gn3`P$QSXsPyLlWR8C=W{Q=9yR!YV1*;M+1&KdY7I=6dsO6#R^WDY=ZMDzsel_Rt zQ_iPdOG`T)J5o&|-tV(kJpK3SqGtJPM{Vz!>U``qFlUds!kwkNtJZf6^A{^` zxOg~c@g}|Hp$@|FHxt(LEnINtWm?um=Ys;4I*Xib9%My6Jt)-0cX5UI+Y??}lm*_N z*t_U!t;d$b-t)w-2v|&2Etuo4arI-1(e?QOVvjge4Y|U@>YW<(&O6j=^G$sgJB6YC z^{$f&Drp=3y^>2gUUXsiF3p&`wMvUhL&iiA_u-5j*L8?ce+s3&FH2WOYRt^VihMf4Nm2C-v=s+QW=KOQQ z<3)?hT`ZruGWrWueEP$4_u=yS&oAtsbo6n(S-0?mq#x&W`abA%X_SV`>(o2QFWJj4 z+IdoBM%seOH&>UlRQ2>SPssl!#pm?&=8py4ZVxNI9QtT+%h&COu<@aJGm;Odc(@$T zVo!D9c6!{WWBx8?(p;e*RUS;c3>~&dUSpNJ@_z2&g{jWFN-iJPk-T&Cu8K$^51)hH zLZ2HK<~+APu|f8>bKiV*t=JE8VfC+S>en7J32xPRY{RZ+6nljo2>hABE?m zCwoPnOR9U%{5)mv)s@weyvzqaZ@ii{_1Uzwa_jcH$?u$g^~Btla-|m+PdI1i@m#`W z9gEV68_5b@2fAyMJa=9Vt~=q{f7nZCivOuqvnJITN=oz3F<7@ znm!m7U%7qD>PJ~%VsU?I!~UmFPuxA--&}mHemNtf^k%*KQ-}5X4_?21#MOwEae2f6 z*QZK`Q@xJ_BowjkJI?dI`i!DmPK3m4^=y zeLhB?kDf7=vN`8v^wV-u_^hXA&U&jH56jE^)bdVt$-|y!k$n}cr`EoBI`dwW+H0%$ z^nCAsLJg~L7XRF!ZeFkGZQ#S`yPGK|TV$Vp`VIG01}e(FF0Hdf%zm?IPu#v>(Fzrg z$19IiGF>@R|30Zk!hmY5ppEIL)?%Q2f(OdZri`m`d-!k{~^a{0lh82ycCGSV5^I!W|zxwArj_1=K zm0f%J!-DPD{qT18^^>#b+~*c~wC#7px9e|LcmICH_G;y1`3FU5)f@N@C!YJxy!2Ip z+`~_f3)m}l)Z|wmK2{O`N^^amuFd_$HGetJZJsZ=faQB3(~ADzY2WtFvF8$bY;*Yf z!LK(Zp4#1R+*VX)eZH~(df2m1*LMBcT7Ttfb#82}(wy{92J5Hx|2}YM+Sizd)8WN& zPj;c7^x?n7Sk#`ns%Jm|R|@iEvx)@I{}w+rhpJ{2)MH}CiRi#uyfZe6?f z?Q8h?dv}cXKg_)U_x$u-_CGIu-}m9v@#NY6G=D69zwg_%*ZFgt+V;4zIng?@3y~--Oc_T{qlb5#rfaP)vS7&KJo4G{Jh_1CqJHV_y14#`#-yKbAK)E zi=UfO`}1*pRbIjW7%QU>=YqRG{uiBZ{q@-D&D$r}U*7Zl<;olXdsNuA@A>?A`agrp z$J*lR`+wd}U$p%DpOnz2!uh|Y_21V$J$t_9F}r^Dn|C9JG0;Q%l7=I z{eS=W@}H}Fczdt?nwa{%pI@%u_h0Yl>-)9;*Gm7dT=#3^oc~u}nqQyrJTCa2{g<%E zyZPsCx3j4En*F?PYx#fikNW?AexF}oS-9y}@8YR4*1vOY%8ysnsWn`R`DPF>>G`{q z`Hv$E_~z&vo$S%q_eg(ZG`k};vi^qQ&s$rw-`9rhpS7QV?~l)?|EbSlnrD*UW88Xb z&C``nTX)$v*&USnl(8`9&>^wJr|m~i7{4{R*Z%!+-koOt2hBeO?0S9|FsT>X`#t87 zJJ9??!>+CUL!nKR`$r4AM*l~_KLr11)bZH&`9Ib%E8u(nQKU|2dV!>Mh1mRq=^u^j zf8>8m|G@eu@=y2=p?y8^2kJZj%he0+@7Uk7ziEHh`N#D~?jN~-DE@H#as9{g56wUJ zf8_o1{)hbs?H{3ktoC*O=dS19-?+cOzM;PD{_*^W+dt}mu>KMINBU3wkLI$4wio(t zHNRc5cctwWxy<_tDpu)Qs+%v*o2mQ$-tD`Qx>CtTu-m$y^%U=iiBgSNuX&9Ij;vLOSlQG_>AF zI#j0qdiKMrf-e`Dxu(b;&!5SuE8H}B#$AcrMCRiXDW}DXGar4fiPN~9+FRo;K+57Frtd8k5_rHJM zxBuSv+WqzG@3-;ylrsmER4QyqH<=>o!^H4s`7&9}mako9W zVsfpTYg_ZGq}*7e9{uF%D}TPY+LwDpIqTG_ zTXrYk8p#Cc%6MO0o>3or^-i>CPSMd+-PV}mP1D?>J$r8IzL<3-S!3NR4KX9%!zGJ* znkFq-ujlg3FLZm)CXHFso`)#sK9hP8mg3ue>eOY;^%IS!n!en(V#$Kb3F`%&83M{b zNH;6|pL_U9U+2OEF^fHCCkQo7EwPV%xqIv8@&)C4%%zOf#V>ewaCMpJ*H^vNsc>SL zqT$AHHaI!rK(K!&-yXHi7arbixKd-#`}gv`pD#{dkK12+aF5eo1vdq=2tj40wES-S z$6t%ieKvk{*vaE=)FZ7I#WQM{qR+AKfbz&p{KQHLrgeie?Zzj!?Kl2WvL!Be5|)A2WUM zS+4#O%eKkcizF1|EtYA9CoHo}-^(1}N%YC7PUuUpLU%&Cb z_koemQnR!-HXLO=E5s~c*Y0_HO2>AmMbtKdmWPk(`DOkW)E+z=yZn5;T}681yPY4N zo%_-CIqB2ohhIalf4*9qem(vqTV7Ko{|wo=zd!F@*lV2qe0{sO+xav5N+)#fzNT0D z_4?iF^3TVv>Mu8!_vg9u(|Z8|1<25eN*Fq zH~!0a|LXXdJo)=OUdMm^v#+8=utCsy=7#Lv^j)b*Wk064<$1K(+fKi9vh9+hh34Ha zJJhZTUGJ;^@ljv*<6Yw;4L4^UwbWMnc;xN&YOK*4nGwcXX_tdnNdC?zZ__4Zv5qVV5d46 zp?iW2t<3h7Hb^dSWno}wn67BXBR>6tmzdx*aWRhV2cEF?vw#nEOI8VS1MM`J#KgeB z1v}JD54`Mp5>qbHCWF$+{{B}SB#xy=m92D0{N>KFr{~?#Hjn8pybqS%F71?Z*>vbE z$L_n0cemcoyTvrALgA*qgNotI%XunsydQ-H9-rm@_-JbX1IPD%w{KqPo@_Jod427( zxhL1pJooDKDkYT48Ror;-eS?^SRb!*Yg@;WY3q`B z^R|4gR0{j;a=0|w`Kg`e<5jV4=Zp%&I+}CYTedY_a(|j|b}?yanD~r}S2SX*%dFwO8ayK8IITkA1}PHBZ&{CP^A!w%Os@xZod4z^siS6Prpy zS}x^G+Spq>ZN*Zne1cmxb@WT zCv(2<@qhNZ_|Ea?sqGa-$=42+|2nUo78r;Hvi+pO*c!k-Iv{0y|?bQ{H#C+ zr_GML7S6OWFy@(aMR&vZAN)FMj~Z_|3Q zZP~lm{?^)^+tbT??cHLfgD0#b!VfTV8*p^UZU3gb`|YjQ>#pxi46tjP^`c`E!!(`A z5$Sr_@muRNh$E~bd?&976I4J2cNf@&)}PF^WEnC=Rfn-f3JPFw|<*W zRE&GzwA#(JzT7pnX9K$yb(xjUY6{^Cdtw(U+-$MxVZ)Ng3vNVTcQt+awm(=Tn8jlK z+377;ekpx4xVD6kHQFVxuO%e#49ALxE7l~a$$Z%~X)#rT6)|` zn^~&ccbO^6W>IuUB+p7I?JmOr_L9ISJyFwNNKHF5^H`Q)%Av)}Sc6J9uT>_S=1*)q zYa~*S+>cuf|Z``Grs z*dsL7r2gKA1&vJ~%@$8TvYrE)# zSaR2ljx`bP{JTwbRWuFfT+`Mpw7FQ2Wt_Hbo2}3hMa!mUJKtba?RVS{G&m==owQQ! zIV>A7d+NG}2{sLvle%OMM9S_6el_*#j%jlovK@k^@M&JCm)*SDGu%^9euY|(WN22O z)De-?TdeOn{Fl}pc92`ZX)=F-&o`raVm3R^_^4g4TzAj<_U;?EA6~v?{%GxtZwkj6 z-}p2|X#|)!)pZqK$X!ryVf94Lc^6soH}!w`Qspo6=kd9(vbX)-?)$Lto8@1tPoEiX zwEkh*!2CkYreDo=zb8k%n)T_=Uv~P;bMLWKoKd;1MJ4HHQA(PS6Td{g^2A7K|L7lz z>n2FD6>+V(`|u%`tg-Bz)0rDL^PM~Ptf0(ndhv$J7{1p}if-2E_3J*ElcPBOyjUUY zmZNPql1^l8RKDhFv1F!41z(ak$9Y$sl@}(p-v~N1w?kLiMt%q|HD40|H%z%z*%3bNgM*Fvn$yOtjFx9QPI^`Z-DZns z)7>c@z&H8B7mkLRQydz;Rb+U(E<4^_f9mXsiOmuh)MU>*?O-(cQSoenrw`LtfhSK~ zq<>s-JUZ3wXfD6sQoTy8+$SMAp(zPBswOO}*r8=nypGE%>%pp()Q>`p)`-q~~vY?RR-qt(V&>d#~d8&A-c6ap}pdzGg4? z=lA#ixV`raw%?vQv3ghG%{|_S*|Vl`uby_UKJnkDR-fLACHspWtbS}>wtwy2g0DPo z+r95HTl;aZ*2-IGTVKy9K3}@-Q&`5aZ4*B&tWGujc1KwH+q;VF|3@1yC}w|~wl-V8 z+TCxP%>KBtrGbB+xcUBhcmDYG(0@O_B;P&#t)~3txi|US-`noI|8!5h#g~0M`YH`K ze7+uLy5WjN_>Z#JQX8Jm7TFa1MEU%eV@fHG?iH`PF8?{a{QbV-eGdhUzXaFU-hHaa zw4tZ2WU|JhlYElp^H!{0B=V9!Xl3>G)!kXGzeN+YSG4bET43@hYkQ>dHQQ^BuMM-> zb_eq&m#;CFTlx81fxGC+`)d!TNAo?NVf}Ue;k74Z{|h~QxBh6Yzzg|$roEdsaG+Hj zzVGL(`+k&(f#CoX!*&}5_TNn4Ced@j4NvwmF)-|4VqoB7U|=Xp%uCLQPb`3*@VkS_ z9jRFq8|>>N>?l&V`EuFJCW9Qo9>ZOa{0&^T$@m<}*mPCFD?s4mo!DEsyEoj8EZ_b| zf?uW0I&;xU6*U22&pm>BDi0l*%@zlV z=E$)f*!|tT*uUsu_ics(g$wRAmvuuvEqkuoeBsOC8SJL|cOO(9FMBTRc*3UhY02+XZuQiDG&j)Te$S0ON$WLpMAitLSe9*ddi|P|6Hb={xz6yuS@d+i*V7+6 z$^!3hl4%drLtiM+z9yIO!j66%h2)~u9Z=UqLCpmrVhHqNh*IfL!MJL4umT|LJ z9O#-h8L`RZ|oV*h2U_Vxbk^4a`L;%JR-(VN757u_~D*z8l)WN!#_necC9H4F zVnyD*wz&LdRrZg{7w27?ZP!&@{1>I5+rTRH@yx}DB}e-nX>7AjvfefSo!EYn*P@L+ z-g*9OI{(!Ezj^6J&|>yj1E>Ers|G&YUxpQKk(LpZb zk1@w>P0~)ZF4X__(cCX&rIIM4K1-g<1nyGpkFP5t=!)t9-`&%an;D$aRgO{k%G zPJP&C=}k&o_TAiR*}!?b_ufqQ<=Vp6UASJV);^K3^w*o@?V>u}(|)JZx{0q-8tyby zN419P>aMtQ=V7$+tmiXMOMTYa{$zuz?w7R=+EH-}O#dwv`@#D5$#K3;`%nA}Q~|qUDaJbN_aP%VqBiWW!6Po)nO)eGA!3@r z>~kUNPDZfvLs++C*}p?rSCiRm!NV}yLrd9@LPmOIE7^!WU8Bw-_Sg>_IGR}b z<-Rdz~Fuzy*y;DL|yji$!-J@1X*|F$vCH@ezAy`Oo3sMfhVKX-n4 z<;id$oUuMf#g03w*Y8B|sfX|juf3(?7|&6qwms^$D4OcEuX8ZV%=tY^~Jp>4neyL zJs�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 W&?08Sw}){LBXc7I!>{k4_09lw8Jgq( diff --git a/lib/packet_info.ex b/lib/packet_info.ex new file mode 100644 index 0000000..fbe4d13 --- /dev/null +++ b/lib/packet_info.ex @@ -0,0 +1,250 @@ +defmodule PacketInfo do + @moduledoc """ + Packet parser based on supported match fields in OXM and NXM + """ + + alias Tres.MacAddress + + @eth_p_ip 0x0800 + @eth_p_arp 0x0806 + @eth_p_rarp 0x8035 + @eth_p_ipv6 0x86DD + @eth_p_802_1q 0x8100 + @eth_p_802_1qinq 0x88a8 + @eth_p_mpls_uni 0x8847 + @eth_p_mpls_multi 0x8848 + + @ipproto_icmp 1 + @ipproto_tcp 6 + @ipproto_udp 17 + @ipproto_icmpv6 58 + @ipproto_sctp 132 + + @arpop_request 1 + @arpop_reply 2 + @arpop_inrequest 8 + @arpop_inreply 9 + @arpop_nak 10 + + defstruct [ + # L2 + :eth_dst, :eth_src, :eth_type, + # VLAN + :vlan_tci, + # L2.5(MPLS) + :mpls_label, :mpls_tc, :mpls_bos, :mpls_ttl, + # L2.5(PBB) + :pbb_isid, + # L3(IP) + :ip_tos, :ip_ttl, :ip_proto, :ipv4_src, :ipv4_dst, + :ipv6_src, :ipv6_dst, :ipv6_flabel, :ipv6_exthdr, + # L3(ARP) + :arp_op, :arp_sha, :arp_spa, :arp_tha, :arp_tpa, + # L3(ipv6 ND) + :ipv6_nd_target, :ipv6_nd_sll, :ipv6_nd_tll, + # L4(TCP) + :tcp_src, :tcp_dst, :tcp_flags, + # L4(UDP) + :udp_src, :udp_dst, + # L4(SCTP) + :sctp_src, :sctp_dst, + # L4(ICMPv4) + :icmpv4_type, :icmpv4_code, + # L4(ICMPv6) + :icmpv6_type, :icmpv6_code + ] + + @type t :: %PacketInfo{ + eth_dst: String.t() | nil, + eth_src: String.t() | nil, + eth_type: :ipv4 | :ipv6 | :arp | :rarp | :"802.1q" | :"802.1qinq" | :lldp | :mpls | 0..65535 | nil, + mpls_label: 0..0xfffff | nil, + mpls_tc: 0..7, + mpls_bos: boolean() | nil, + mpls_ttl: 0..255 | nil, + pbb_isid: 0..0xffffff | nil, + ip_tos: 0..255 | nil, + ip_ttl: 0..255 | nil, + ip_proto: 0..255 | :tcp | :udp | :icmp | :sctp | nil, + ipv4_src: :inet.ip4_address() | nil, + ipv4_dst: :inet.ip4_address() | nil, + ipv6_src: :inet.ip6_address() | nil, + ipv6_dst: :inet.ip6_address() | nil, + ipv6_flabel: 0..0xfffff, + ipv6_exthdr: [:nonext | :esp | :auth | :dest | :frag | :router | :hop | :unrep | :unseq] | nil, + arp_op: :request | :reply | :inrequest | :inreply | nil, + arp_sha: String.t() | nil, + arp_spa: :inet.ip4_address() | nil, + arp_tha: String.t() | nil, + arp_tpa: :inet.ip4_address() | nil, + ipv6_nd_target: :inet.ip6_address() | nil, + ipv6_nd_sll: String.t() | nil, + ipv6_nd_tll: String.t() | nil, + tcp_src: 0..0xffff | nil, + tcp_dst: 0..0xffff | nil, + tcp_flags: [:fin | :syn | :rst | :psh | :ack | :urg | :ece | :cwr | :ns] | nil, + udp_src: 0..0xffff | nil, + udp_dst: 0..0xffff | nil, + sctp_src: 0..0xffff | nil, + sctp_dst: 0..0xffff | nil, + icmpv4_type: 0..0xff | nil, + icmpv4_code: 0..0xff | nil, + icmpv6_type: 0..0xff | nil, + icmpv6_code: 0..0xff | nil + } + + @spec decapsulate(packet :: binary()) :: PacketInfo.t() + def decapsulate(<>) do + packet_info = + %PacketInfo{ + eth_dst: MacAddress.bin_to_str(daddr), + eth_src: MacAddress.bin_to_str(saddr), + eth_type: eth_type(eth_type) + } + + decapsulate_next({eth_type(eth_type), rest}, packet_info) + end + + # private functions + + defp decapsulate_next({:ipv4, <<_::4, hl::4, _::bytes>> = packet}, pi) + when byte_size(packet) >= 20 do + opt_len = (hl - 5) * 4 + <<4::4, _hl::4, tos::8, _len::16, _id::16, _frag::3, + _offset::13, ttl::8, proto::8, _sum::16, + sa1, sa2, sa3, sa4, + da1, da2, da3, da4, + _opt::size(opt_len)-bytes, + rest::bytes>> = packet + + decapsulate_next( + {ip_proto(proto), rest}, + %{pi + | ip_tos: tos, + ip_proto: ip_proto(proto), + ip_ttl: ttl, + ipv4_src: {sa1, sa2, sa3, sa4}, + ipv4_dst: {da1, da2, da3, da4} + } + ) + end + + defp decapsulate_next({arp, packet}, pi) + when (arp == :arp or arp == :rarp) and byte_size(packet) >= 28 do + <<_::6-bytes, op::16, + sha::6-bytes, sa1, sa2, sa3, sa4, + tha::6-bytes, da1, da2, da3, da4, + _::bytes>> = packet + + %{pi + | arp_op: arp_op(op), + arp_sha: MacAddress.bin_to_str(sha), + arp_spa: {sa1, sa2, sa3, sa4}, + arp_tha: MacAddress.bin_to_str(tha), + arp_tpa: {da1, da2, da3, da4} + } + end + + defp decapsulate_next({:ipv6, packet}, pi) when byte_size(packet) >= 40 do + <<6::4, class::8, flow::20, + _len::16, next::8, hop::8, + sa1::16, sa2::16, sa3::16, sa4::16, sa5::16, sa6::16, sa7::16, sa8::16, + da1::16, da2::16, da3::16, da4::16, da5::16, da6::16, da7::16, da8::16, + rest::binary>> = packet + + decapsulate_next( + {ip_proto(next), rest}, + %{pi + | ipv6_src: {sa1, sa2, sa3, sa4, sa5, sa6, sa7, sa8}, + ipv6_dst: {da1, da2, da3, da4, da5, da6, da7, da8}, + ipv6_flabel: flow, + ip_tos: class, + ip_proto: ip_proto(next), + ip_ttl: hop, + }) + end + + defp decapsulate_next({vlan, <>}, pi) + when vlan == :"802.1q" or vlan == :"802.1qinq", + do: decapsulate_next( + {eth_type(type), rest}, + %{pi | vlan_tci: tci, eth_type: eth_type(type)} + ) + + defp decapsulate_next({:mpls, packet}, pi) do + <> = packet + <> = rest + + next = + case next_int do + 4 -> :ipv4 + 6 -> :ipv6 + end + + decapsulate_next( + {next, rest}, + %{pi | mpls_label: label, mpls_tc: tc, mpls_ttl: ttl, mpls_bos: bos} + ) + end + + defp decapsulate_next({:icmpv4, <>}, pi) do + %{pi | icmpv4_type: type, icmpv4_code: code} + end + + defp decapsulate_next({:tcp, packet}, pi) do + <> = packet + + tcp_flags = Openflow.Enums.tcp_flags_to_atom(flags_int) + %{pi | tcp_src: sport, tcp_dst: dport, tcp_flags: tcp_flags} + end + + defp decapsulate_next({:udp, <>}, pi) do + %{pi | udp_src: sport, udp_dst: dport} + end + + defp decapsulate_next({:sctp, <>}, pi) do + %{pi | sctp_src: sport, sctp_dst: dport} + end + + @spec eth_type(non_neg_integer()) :: atom() | 0..0xffff + defp eth_type(@eth_p_ip), do: :ipv4 + + defp eth_type(@eth_p_arp), do: :arp + + defp eth_type(@eth_p_rarp), do: :rarp + + defp eth_type(@eth_p_ipv6), do: :ipv6 + + defp eth_type(@eth_p_802_1q), do: :"802.1q" + + defp eth_type(@eth_p_802_1qinq), do: :"802.1qinq" + + defp eth_type(type) when type == @eth_p_mpls_uni or type == @eth_p_mpls_multi, do: :mpls + + defp eth_type(type), do: type + + @spec arp_op(non_neg_integer()) :: atom() | 0..0xffff + defp arp_op(@arpop_request), do: :request + + defp arp_op(@arpop_reply), do: :reply + + defp arp_op(@arpop_inrequest), do: :inrequest + + defp arp_op(@arpop_inreply), do: :inreply + + defp arp_op(@arpop_nak), do: :nak + + @spec ip_proto(non_neg_integer()) :: atom() :: 0..0xff + defp ip_proto(@ipproto_icmp), do: :icmpv4 + + defp ip_proto(@ipproto_tcp), do: :tcp + + defp ip_proto(@ipproto_udp), do: :udp + + defp ip_proto(@ipproto_icmpv6), do: :icmpv6 + + defp ip_proto(@ipproto_sctp), do: :sctp + + defp ip_proto(ipproto), do: ipproto +end diff --git a/lib/tres/ipv4_address.ex b/lib/tres/ipv4_address.ex index 3bc4e42..70d2a48 100644 --- a/lib/tres/ipv4_address.ex +++ b/lib/tres/ipv4_address.ex @@ -9,10 +9,13 @@ defmodule Tres.IPv4Address do @typep in_addr_str :: String.t() @doc """ + iex> {{192, 168, 0, 1}, {255, 255, 255, 255}} = IPv4Address.parse(<<192, 168, 0, 1>>) iex> {{192, 168, 0, 1}, {255, 255, 255, 255}} = IPv4Address.parse("192.168.0.1") - iex> {{192, 168, 0, 1}, {255, 255, 255, 0}} = IPv4Address.parse("192.168.0.1/24") + iex> {{192, 168, 0, 1}, {255, 255, 255, 0}} = IPv4Address.parse("192.168.0.1/24") """ - @spec parse(in_addr_str) :: {in_addr, in_addr} + @spec parse(in_addr_str | binary()) :: {in_addr, in_addr} + def parse(<>), do: {{a1, a2, a3, a4}, {255, 255, 255, 255}} + def parse(addr) do case String.split(addr, ~r/\//) do [^addr] -> diff --git a/test/packet_data/arp_packet.raw b/test/packet_data/arp_packet.raw new file mode 100644 index 0000000000000000000000000000000000000000..390a5564f58fbcae13118ae06813e82633708c89 GIT binary patch literal 60 ucmewl1`J}`w%Q%zU}Iq9U|?fmV1)1wthma^00swETx|d|;6x)MR|WvJClM9^ literal 0 HcmV?d00001