ELF#4Ģ4 (444444  T   HHHDDPtdxCxxQtd/lib/ld-linux.so.2GNU GNUe =QMtEav c$#"$%)8K@nj rd' ,rZ1lTv96 J &! !libm.so.6_ITM_deregisterTMCloneTable__gmon_start___Jv_RegisterClasses_ITM_registerTMCloneTablesqrtflogcossinsqrtlibrt.so.1libc.so.6_IO_stdin_usedsocketfflushexitsignalstrncpytime__assert_failmemsetreadstdoutfputcstrnlenlseekmemcpymallocstderrcreat__fxstatusleepcloseopenfprintfsendto__ctype_toupper_locfcntl__libc_start_mainwritefreeGLIBC_2.0GLIBC_2.3 ii wii wii !!%!$!!! !$!(!,!0! 4! 8! 9؀=P. ƄHE9؃jhϛE9=P. i@]Ƀj]]XZjhH, Ejj$Y_jhEEE"U?=!"~=B# 5' 5!FH11ۍH1&:Ã@9tDŽt@9uF!="!ząV9UEmٞz ~s؃$]E ً"1҉UEm]!FsN]Ƀ]$^1҉UEmE]E EEɀ=P. FFF!D8^ uٞv2 5!ۃ$S>P/! ؈^ 65!+X# T"("P("ƉEX# 9= "5T"҉ut{u9uwnu="u4 Éu#f@#AAYY;MuM)"50"EuRP# H"1@"ljE$"]E"D"]w"E"E,"|EEEEwMu 4E0FF@@9uԀ}tHEMvٞa[؋E|@# D# %EE;E`# EH"=P# ң$"xIu)9v )uP@# hABPR)P# =("9Ɖ}vf9]T"E)أ("P QR&jXZjhH jjwY_jh؋EEEmE<v <v7Pi@]j_XjhHE jj%<$XZjhOi@jqYXjhHXZjWYYXjh7P. Ei@ 8Xل ,؃jXZjhHAYXjh3XZjw Y_jh˚ EȃEKi@]jYXjhHE jj%<$XZjhgj AYXj hƛXZjw 'Y_jh˚i 8^ =j)%jXZjh0&YXjw XZjh˚EF؃jh jj5!Y[j h jj5!t_Xjh!!VSurU9 UDx Ix)؍ ؃D9LuP# @#  d# x P j|PPhpj Phh@# 5`# ("Eq""u{69vH ]uM9MxuE΋tЉt9׉"wӋ]E54"EV9U4"34""9w j"@tP BZ9uvU1M)9\t49r)C Iޘ #8"}Em <ztjjRR$89)9v9"9ˋDȃ9DuE)ʍBEmٞz t ٞzx=,"9ˉE؍B1<"1E|9r_E1EEv9u9us4ɿ19'ta%ɿy<"333?UPP"5<"58"~0X# ET"E("E<"뷋85"9ˍ6lȃ9lu1]E)ʍBEmٞ,*>1^PTRhPhQVh|fffff$ffffff!-!vtUh!ЃÐt&!-!ttUPh!҃Ít&'=!uU|!f u듍vtUP҃uffUWVS$D$D$8L$D$#ƉŃt}ú4$|$9ډ\$vU4$)9w4$; $\$t?9v%\t@ɉp\\\$9ډw; $uD$D$ D$ D$'4D$|$#"T$t\$؅tDD$|$ t&B(hZ@X9wՃ|$D$ D$D$D$$D$ ɉD$ \$D$$T$ 9s>vB(hZ@X9wŃ$;|$tv'؋D$|$9tt$ D$D$$[^_]fffffj hXZjt$YXjhVfSӃ D$RD$PkXZjhYXSt$XZjh$fffUWVS)׉É1҃$ $D$,$T$ɉtn0iS11T$ $ &Ƀ9^ك#@#BB9T$D$$$D$ \$ t|$D$D$l$%< @-D $zt3ِt&D$ L$ H4vQt& t&؍D$<D$8L$$[^_]t$%<xD$=08vW h D$P}L$yǁ1) D$ T# ' "@@ǀǀǀ,٘4ǀ0' _úߘfffUWVS1ہ-H#  t&9)PhD$P5\# Ӏ=D#  5\#  5\# $3XZhh# b\# 19xH# tY1t&DTΉT9w߁[^_]Í&1[^_]1Ҁ=C# L$|$ tDt&fL<ƃ%fL$fLD$9fL$D$_rˋ|$ 넍v| ƃ%ǀ|$|D$ǀ9ډ|$D$Yr뼋1Ґ DT%DT9YwfffffUWVS1$D$T$L$hD$PL$1҃Ɓw9:t\XЀ wv1ۉ֍v'<1\P1PЀ vw89:t<.u?w7|$D$؉$t!눍t&t(vݍv1ۃ Q,[^_]À9:t(t$D$؉?:uȁw$띋D$ffffffUWVSL " "D$8D$<$@0""$@H"* d# `# L# X# L. # H# * P.  * D. "@# A#  * * T# D# @* "D$0血' T# C# @. D$ D$D$1\$D$$$@߉$@<- $A$BXZhh-Y[jh˚^_jBh]XjlhXZj_hLY[j2h^_jXh]Xjlh8XZjqhY[jeh^_jph]Xj&hXZjehY[jRhw^_jEhԡi]Xjdh[XZjhWMY[jh ^_jFhL]XjDhXZj-hإY[j[h^_jWhd]XjTh{XZjNhmY[jih`_^_jNḩQ]XjNhCXZjqhl5Y[jXh'^_j/h8]XjOhh XZj6hY[jlh^_jgh\]Xj}hĪXZjshDY[jdh^_jth]XjRhXZj}hY[j~hd^_jOhq]Xjkh4cXZjh˚UY[j;hG^_johܮ9]Xjhp+XZhhLY[j&h ^_hh]XjhXZjphY[j>h^_jh]XhhXXZjbhY[jh˚^_jGhP]XjhzXZjhΙlY[j5h^^_jhP]Xj hBXZj!hв4Y[j"h&^_j h]Xj(h XZj-h@Y[j2hp$PPj D$DPDt$HPPhSxF hSPVPPhSNF hSP,FFv ^^؋D$8L""L"t&hS$@S|$D$0ٞz* 1҉T$$,$ٞz=Pٞ8"ٞz =X# u4Xٞ1\ٞX# @X# f9rX#  djj$;,"`# x X# 3D$<ٞztfD$0ٞztWh <lٞ+jjPP$ "ءH# "  "=* ""t =X# t D$0ٞztHL"D$8t?X# 1ɉL$$,$@X@XuD$8f=@. u=* Ѓ@. ' t&ƃ8'؍ك,ٞ؅u L$u D$ك0|D$=* ؋4$,$ٛ4'`s Pǃ  s fPǃXs fPǃCtF* D$$,$ٞz=Ppƃ8'<$hS D$8PhS% D$41)ʃ  H |$ ' $>zT$q'hh# N# <-,<,&hS$P(jh˚WWj$ht&D$D$ٛ,A $D$,$ txٛ0QvD$B J0vJ7L$A P0vP7T$@hD$LPH7jPt&Pv؋4t&L [^_]Ðt&j h'T\$PPjh/ZYhS[^j hšx$X# "="1ز!PPhS hSD$HPXPPhS hShD"詻PPhS hSh@"~"WWhSj'  hS0PAN g'VVhS(' ǂvD9tQ>tLT$ ϻT$ HЀ vHYD9u|$T# PPj)h"(PQQhS^'  PhS觹t' x9rQQhS^_hSd# P' @RRhS hShL. 跹 Rhhh# PPhS'  hS4PZ<$uh' ـ4"K"A# 0=PF$B6mH# X#  $' ƀ<lNH# C# PPhS h0"hS膷"QQj h9[^j5X# R_]jhE jj58"RD$< =L"tsPPj hVaL"D$HtUjhHA jjD$Dp_]jh` jjD$DpD$HD$HuPPjh˚@# ' ƀ;D. * n G`ٞX# ' ƀ>$PPj hM^ jjt$HXZjh׼@ * * P. ' * ƀ@' ƀ?җD# ' \WWhSm' XTx D$L%غ   PPhS h@. hSô@. $@VVhSB# '  PhSkx QPPhSTXZj D$8PD$<HPxhD$,* D$*  hL# hS(,PPhh@* =@* BWWhSXZhS`# '@z%ȳk \ffffffUWVSρ\EMhh]EE 1ɀ}Ɖ1҃14ۅM $胾#)„#EfC[ÍK&؃#@#AAYY;ud# 2SVPM$GG1ɉ‰)Ѓ  9r1ɋW BGٞvFGٞ ٞljDž߭Xv؃9u_Xp߉ &jjC$ 19@kSuDž߉߭ٞzY=,0nً L# _S1<t uG_ jj$jjG$ 9;uōe[^_]Ðt&򉕬@XH ‹‰t&Ã#@#AAYY;ufSSP赽Džjj$ǺÍZYPPممDž߭t#^< vv-,^<t&jjG$Y^jP蒶XZjh̚@|ٞzX=,ٝL# 1'L# )‰1@؍كjj$XZjhH;ujhϚ jju 誵[^jh˚̻qt&'jjٝ$躸Dž߭م%<Gɞٝjjٝ$bDž߭مم%<>_4t&C1҃PPممvlؐممwًٕٕ6ɋt&ٝ؋1҃PPمم>مnjjٝ$۶Dž߭ممqjjٝ$葶Dž߭م؃$苫 ɋE$UWVSփ< X# D$@T$$1D$TD$D$ "XBBtt&@9uD$PL$D$ l$<\$ jj\$$$舵D$ÉD$X# l$D$$ʼnD$$9D$ r]١ "9ˋ0@ʉD$P"<t&9\t%҉yD$9\u &ɋ|$T)\D$$O)ڍ|$$D$ |$<eمɉDȃʍHXȃɍHXt& t&؍9w׍D 9vBvBܞ3-"L$D$ l$t$P<v؋@TD$)\f؋\$9w jT$e "T$(0 F9iFɉ>nYt%t&<Ћl@ɉ8h\9uߋD$D$ D$l$ٞztX\$D$1x6t&l$D$l$L$$%, $" \$,D$,C[K[9uD$1۽|$t& "01҉؉5X# )T$@ɍPvt&;\$uɋ|$ٞzOuMt$AɍAYtt&X@X9u؍t&<[^_]=,믐&=XT$$ (%, $٥oٞ\t&D$Dȃ_vʋD$ ȍHXȃ\ɋD$$W&ȋ5L"L$ ǃD$(P"ÉD$<1ۍ&\$D$Y&t&B <v & fɍt&u% wl$D$&t&B <v & fɍt&u% w9؀=* L$ D$(1NjT$\$T vM)?<vډۅ jh֚蟱jS. X# P"ˋ또&BvR <fBvB <;:fڋx&ڋ \$$D$D$ɋjhԚ蒰D$TT$1\$Tt&9t`P"X# <vمu%jh֚6jWũ밃jhԚمD$T X# \$jh˚ׯ X# D$11T$IffffUWVS<$p<$D$k|$Dut,$t,$"D$dD$@|$Dǀ|ƀ ǀǀǀx$P$TP$XP$\P $`P$dP$hP$lP<1[^_]ÉljD$ x$PP9T$@$TH$XH$\H $`H$dH$hH$lHx}T$@9LJtjD$jD$j1D$hjj G$ jjPd1ft9uŋ$DŽ$1DŽ$DŽ$D$1t&|PjSat1҉4$9u9\$뱋|$ $| )D$R$|$ Ѓ|$/$|$ |$$|$ |$$|$ |$$|$ |$$|$ |$$|$ |$tm$|$ |$tP$|$ |$ t3$|$ |$ t$|$ D$ D$hx|$k T$DD$ ҋt 9D$DD$DD$ tD$D||$htD$D9D$ D$|$<$|$1Ft$$3jjCP膨 9s2@;,$,+u|9s1҃L)1*18+|$L$kL$1$ t&,T<x$09D$u΃D$|D$ |$De8,\D$ D$D$$+$h$P謥D$ 5 $V<[^_]ÍH|$ 1$1ǐ&<+#jjU蝦Ńf!t9VjS9uƒjjU_u;<$t닅7(|$ ՋD$@D$D$iD$XT$LD$8D$<@D$4D$`D$P$D$\$,\$(D$T$$D$\D$|$l$\$0RT$$)NjD$ |$ 1D$HŐ1;|$$#D$ jj4D$D$֤ jjPD1f|\$EٞED$,E|$8ٞz ɐt&\$,D$(ڞv\$(|$<vEE \vEڞzt jjU/1D$,2D$ 1É\$<$\$0 jjST$83D$<1у D$02D$,|$8 jjWϔD$< jjU辔3D$< jjS1觔D$<D$02D$ jjW芔D$@ jjWy3D$@T$<11 D$8 jjW ЉR jjSC 1jj1S21 9D$$tJ=P.  D$ ǀƀx,$D$@D$dt&jjD$PēT$,|$ D$0 jjS蒓vD$ ǀ|$|$ $\$|H|$tn$tW$t@$ t)$ t$<$D|$ |=P. wD$ xDL$B| $= |$B|$= |$B|$= |$B|$= |$B|\$= |$B|+$= y|$B|$= i|$B|$= U|$B |$= A|$ B |g$= -|$ B |6$=   | * D$$,$ٞ:4؋D$ 1҉T$$,$ P |$ D$Djhm&\$$D$ |$ $T$$$T$h$ $$!4$" $$D$@$$$$$ $$$<084,$T$$WVSQt$j`|$$ R5hUhRh$TPh$PĠ<؃$ăjhAD$4jhj`D$ P0|;|$ Ƅ C1LjhԚhU{؋D$ 1҉T$$,$ P$<؋D$ D$<$,$ P|$4g=A# uGD$ Nj$k$o$s|L$8$ЈD$ D$D$ ;t$t9Pjt$D\$0ȃ!9u ;t$uǀ|$ijhj`D$ PzD$4D$ D$ D$ D$D$<[^_]G>j hVj$Vjt$ ?{jVhUyD$, jh%jh[]fL$z{؃$كjjL$\$|D$|$}YXj$P謍 jjs]XZjW蓍ǀ؋D$ بــ؋D$ ؈1|$ D$Љ$,$ D$ 1҉T$$,$ ؋D$ ؈%؃$evT$@D$dYjh 职j|$[^jhHg]XjhYXZjY[jhg<^]jͅXZjhY[jP讅^]jh˚xEfVSÃtD$ 1H_v    8L`tat$ '1jh۸hSvjdVhSv jhhSvĄ[^Í&jdht$V}럍&jdht$V}|t&jdh&t$V}\t&jdh/t$V}@G|>@O|>@G|>@9vD>ua[^_]ÐӍ,> &jD$P9tÃM L$t ^vЃjha΍t&jhƇ |$̃)֍F0D$jW苇[^_]É.'|>@эG|>@ȍO|>@G|>@뱐D$1jW bffffUWVS$,RP;$(wh$ X9wZ &9wJ/D$Ѓ< H0vHWL$ B0vBW$hV莆9$(s [^_]fffUWVS$,$0RPO$ 9ލhs Zt&9rO9wD$Ѓ< H0vHWЈL$ P0vPW$hD$ P9s [^_]fffUWVStE,](u EP贁<hhٝE$΁م hhE$见ۉu#u VqM9~u~~1<31҉&9| usve[^_]Ð&=* tكjhHōvkj3ƅƅTWjuD0q1t&uHPpƄ ƄV=&j3WjPpt#)򐍴&32uFƄ5 ƄSFj3WjmP'pt&)& D u񉍰j3Wju Ƅ ƄApot+&3D2uj3FWju$Ƅ5 Ƅ5Q{ot&)vΈ D2u퉵Ƅ pƄ5:vUPL0< w7&0 v9Evw Jw߃„}} 9E1ҍ< v9v΃Y9]w8wjPhQu u"w uƅf VS5 * d Nt&v'j3Wjpۍvj3Wjۍvj3WjjƄ5XpYmt+t&3D7uƄ5 =* tjƄ4K/Ƅ4LAƄ4]=ل$^ $vل$Z| Ѻ)0YшK̉ Mb)É04OQ)É04P)É04Q)ȃ04R)ǍG04S kvƄ4Kbل$ ̷<$uYщǹ Mb)É04\Q)É04])É04^)ȃ04_)ǍG04`pv'Ƅ4Khnل$<$td))щ؃00,K4Mل$~ \$ <$9tƄ4[tù-D$w$غQѺ)0ƒ JW L$= PWt T$D$?]D$@늍v'j hhS>D$  D$$ D$ Qt&jP%LXZjhwR8&jhYR jj$LXZjh8REjPKY^jh&R &jj$K_]jh7Qj hhS=D.D..=v )ȉ$D.$ D.ٜ$D.=v )ȉ$D.$L. ȍMĀ$L$ ٜ$# jj t$ N‰D$ 1u@JtE,uut$$ƍt&>,tjVhS<Kuߋt$$L$ $D$: %D$;jhHhSE<L$%t$$D$ <v$L. $ <ʃ?ٜ$ v @)‰Ѐv$D. $ ih$(E ;D$ ٜ$kD. ˆ$1?1€<$vjdWjT$ D$ $=jdWhSS; jhͺhS>;9l$ .1ɉЃD$?]D$@jhVhS :L.D..D.=v )L.$D.$ D.ٜ$=v )ȉ$ET$ $$ ٜ$j hhSf9T$ + @ VLjh`hS9j hqhS8D.D..=v )ȉ$D.$ D.ٜ$D.=v )ȉ$\QL.$fD$:D. ȉ$%$$ٜ$jdWjPv9jdWhS(8 jhhS8L.ʃ?v @)‰ЀvD$ D$ ٔ$jdWj$:jdWhS7 jhhS7D. <vD$ D$ <ٔ$ jdWj$9jdWhS`7 jh7hSK7D. ih$8jdWjPk8 jdWhS7jh&hS7jj t$ HjhzhS6𺫪 jdWkj2P8jdWhS6 jhGhS6WjhghS6P0J0iJ0IJ0)J0 J0J0J0P0J0J0J0sJ0PJ0-PWAWj hhS5 .ED$1u &QtB ,uuꍨ #&jUhS5rt},ujhHhSl5D$ 1u v6tAt,uuꍰt#&jVhS5t>,ujhHhS4j h\hS4^$j"hphS4$/_T$ fD$:j!hLhS4T$DȉD$D$ ٔ$0jdWj$6 jdWhSB4jhJhS04 T$ /_T$ fD$:j h=hS4l$.fD$D$ ٔ$,jdWj$6 jdWhS3jhGhS3D$ T$ a/_T$ fD$:jh hS|3l$.ih$8jdWjP4 jdWhSH3jh&hS63D. T$ <vD$ T$D$ ٔ$ jdWj$65jdWhS2 j h+hS2D$T$D<vD$ T$D$ ٔ$jdWj$4jdWhS2 jh7hSl2D$T$T$/_fT$:j hhS:2D$ML$ffD$D$ <ٔ$(jdWj$D4 jdWhS1jhhS1 T$$jhOhS1$j hhS1Y1jhhS1jhhSf1jhhSL1D.D..=v )ȉ$D.$ D.ٜ$D.=v )ȉ$D.$ ٜ$jjPBƉ1uv=t@,uu荨!t&jUhS_0t},u65D$:66D$;jhhS0.U<=A jhhS/jhhS/$jhhS/$jhhSz/T.D$N D$O< H0vHWЈL$= P0vPWT$ 8 jhnhUF&j h~hU4& $h D$ 1';$h D$ R)ƒuΉƄ$t?A$p ?A$q?A?$rQA$shWhU[%1;$h I'$h R$h )tƄ$r=Ƅ$s=Ƅ$t? 3 G$p ? A$qu!?PAv 3P $rhWhU$jhhUl$=@* t0H. Y hUE%PhU5H. C8 tt&^6u|$\$h M|$XB|$PD$  |$4D$ =* +$h $` jh[7$t p $X=!!Ƅ$ZЃ< H0 Ј$Y P0vPW$XhU]7Y_jhmO7 ajhs7 2 s{ j hy6]XjPw0XZj h6Y_jPZ0-ٺj j $p  ٺ jj$p ٺ jj$p կ $l ٺPj$p 譯[^jhٸ5t&|$o v'=D. t2=* t)= * t|$t|$Xtjh˚5 $l 'Y$ 'L [^_]Ív$ |$Y$ t!|$|$X|$Z} $ $ $| $x 5 * 5 K'|$X=* D$P$h $X$h 1$` _tyv0Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhUa4@. th9:@. $` u0PhP^\$XƄ$Yj U3@. uF9vjhԚ3zv=P?t&3D$,&~hUG <$SPU5 * 3 6t&3gG&3gGs&3gG@&3G =* u @. jh˚2j hl2D$$Ƅ$l؉ƒ J7wJ0$[ƒ J7wJ0$Zƒ J7wJ0$Y P7wP0$Xh$dUB2jhu02^_jt$<+XZjhz2Y[j$t +|$Z jh1|$|$Xjh1jh1 jjt$0^+Y[jh1 jj$| =+^_jh6o1 jj$ +XZj hN1 jjt$,*Y[jh601 jj$ *^_jh1 jjt$X*XZjh0 jj$ *Y[jh60 jjt$T*^_j h0XZjt$4E*Y[jh0^_jt$P**XZjh|0Y[jt$8*^_jh6a0XZj$ )Y[jhüC0$ D$jh0Y[jt$()^_jh׼/XZjhм/ jjt$L)Y[jh/L. $ $ /^_jh˚/XZjh-/Y[$ $ l/^_jhٸ^/@. t$h }=* =8t&=@* f=&=w1&=&=/Ƅ$X[ JWwJ0$Y< PWwP0$ZƄ$[]Ƅ$dj Ui.kj hdhUhWjL. $/ hWhU{v+E.‰h\$xi€QS)Q ]XhS-XZjhH-Y[jt$@\'|$8;jh-j$ +'^_jh }-$ jhq\-D$$Ƅ$j P0D$$Y P0P7'j h-D$$Ƅ$j P0D$$Y P0$Xh$dU,XZjh˚,t&>+> +>+L>+jL$X8A 11ۀ|$ M$ |$Z$ $` J8< |$  L$`t$(t$ +> +|$ WD$_Pt$8t$$t$Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhU#t;|$vjh#Y_jP4D$  jh*w#XZjPY_jhW#]XjPXZj h7#؃jPXZj h#\$(Y_jUXZjh"Y_jFFPwB$h W1jh;"]XjD> P;$x 9w  PWվ$p ]$l P$p P$p ߾)xQx|$ t&$l $l t$x~L$|$h 89t}=* 'jh!L$| t& 8I$h $h D$pt\$p1׃9Lju$h 8D9r\$pF9ÍD$t91=u$l$h $m1t9ˆmu$h  v =* u2$ À|$Y!H1=ufojhn $D$z0$^Xh$|PgXZjD$vP9 $1Ƀ v9rmtȺ%I$)))уtWj2h $|$ L$lÀ|$Y!ej h뻃jh$Y[jh"r$1Ė$pP jh+|$4މ%&98jhH$5$8yu<xjh'$덻D$44@ЈL$HD$@jh)_L$PɀD/ D$@yY/9Cc= Ƅ$ZA0vA7$Y F0vF7$Xh$dPD$8DŽ$Xv^-+aYD$@T$8jЍdPb9l$4jh˚619덴$Xr3L$X ^wHjV9$p uÄtjh˚1˃jha벃jhU$t$D0Ƅ$jЃ< H0vH7Ј$Y P0vP7$Xh$dPU`jh˚&IjhRjhMYjhJBjhE+jh@jh=jh:jh;~0D${XZjT$wRT$T`0D${Y^jT$PRDjh6-0D${XZjD$wPdjh2̓jh/v|$4P [t$4M$ 1tT$l9u=* L$lRj h L$|7jhž{$h $h 1ۍx t&9jh˚AC9D$rRTƄ$ZЃ< H0vHWЈ$Y PWwP0$Xh$dP9uj h]XjPTXZjhY_jP4]Xj hJj hoSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhU SƄ$ZЃ< H0vHWЈ$Y P0vPW$XhUSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhUSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhUBXZjhs4 S Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhUS Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhUS Ƅ$ZЃ< H0vHWЈ$Y P0vPW$XhUMSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhUj h\$ j h&HW7SƄ$ZЃ< H0vHWЈ$Y P0vPW$Xh$dUrSƄ$ZЃ< H0vHWЈ$Y P0vPW$XhU(SƄ$ZЃ< H0vHWЈ$Y P0vPW$XhU2fff' tÍ ' H.  fffffUW1VS D$D$0l$$ $D$D$4uD$D$8D$D$(0:D$!:D$!:D$Ät<<-t8%@v 4$Epuu 1[^_]Ít) $@uuD$(0<-t&1L$<<$Ɉ  [^_]ÍFED$(D0HЀ w;|$(1ɍ uLH7XЀ v|$t뗍vvF1ɀ|$uzUWVS|$D$l$?XtG1 xt9v[^_]É1Ґt&Ett$ Bt*)LɈ tƃ)9w 9s[^_]9w[^_]fUWVSȻ̉D$C0D$jD$PD$WV7)ՍM0L$"jD$PWV t$,t$,WV $[^_]ÐD$L$P19u t&<t9vÉ'fffffffUWVSD$(L$t$$D$ɉ$D$(D$gfffftJÉ))‰Ѓ0D؉…uńt|$tCD-<$;|$ v T$ T$(9vR @ 9ut$9r)эt&9s[^_]Ív'D$3UWVSD$0t$8|$<-jj\$$D$D$D$\$WVjP >OD$1 <t9vT$4t{|$4.xvRD$4,>v ̷jj\$$BD$0D$ED$9u؋D$4| ؉'> v'؃[^_]ÍX~&HH9u-E&jj\$$ D$D$D$\$WVjP >OD$1ffVSL$ \$t$PЀ wI0t7Q  L 9tHЀ v[^É'[^1ffUW1VSt$|$ \$-9؉$w4jЉ wM1jЉ w* ;$LJЉv1-u[^_]Ðt&!1fUWVS|$D$ t$/X< G1ŃH u"9v<-q1[^_]Ð͉<-P1퐍& A< j& A< v ̷0 $$ &ك9vظuB_9ڸT<H ؍&[^_]1'붐&ظ.u9w  $0 w $ A< wdʃ0 $9$vى^wt&9T 1ىu 1HUWE.VS$\$8t$jhHUV &D$0sD$0fffUWE.VSЃd$(|$,D$sm$jhj iµl$U)iuD$ 1D$9v)D59r$Qjh˚JՋT$8kdL$jhaT$@)jhaT$HljhHًT$PX ųd$(jh Ѻ RT$8)d$0jh ىk<k<)ыT$@L$8jh˚T$H),[^_]ffffffUWVSl$t$xM<.( ' Vtf22( 9' u؈L..[^_]Ðt&11.L.[^_]UWVS\$@l$0t$DD$j0jjj>t$DU|$0Wt$XL$X+ t$D$|>t#[^_]Ív[^_]fډD$jpjj,j:t$DUWt$XL$X tËL$4$D$ D &<,L$j0j*j,j:t$DUWt$XL$XD$ p ]l$RL$D <*uL$vZC¸%I$T$D$)‹D$8Dt0D$8؉D$))\$8D$&@9uD ;<:D$8DT$8PT$8DQT$L te|$49<$wW|$<9p|$t&;$w/;D$QI|$8 LủT$3t$@t$@9 fffffff' tÐt&S' Q. 1ɍ&غ)t&5t uu( Ј' u[Ã5!j `X5!S\$t$SSPh<5![ffS\$t$SSPh<5!i[S\$t$SSPh<5!9[ff t$t$hF5!ÐD$ $t$$t$,hJ5!,fffffVS \$t$SV<9rt$D$[^&[^ffffffVS \$t$SV9rt$D$[^/&[^ffffffVS \$t$SV9rt$D$[^&[^fffffffffffST$D$L$\$ 9vЉD$\$ L$[fffST$D$L$\$ 9vЉD$\$ L$[fffjt$t$fffffpD$ Pt$xjD$(%-|S) ) 9D$[Í) Zt$4t$M) [fffffff) uD$) D$) ÐWVSt$|$ V,tV7P[^_fffffffD$ D$(wpD$,ٞwe|$D$ fD$ l$ T$l$L$ɉL$ٞD$vvȃÍv'vh`hhTh[fffffff$|$D$D$(D$ fD$l$|$l$D$$,$vЃ$ffft$ tT$ fjfVSL$t$ t ~19[^Ðt&D$ [^!Ív19~ދD$ މ[!^fffL$1;L$sD$ ffUWVS|$ D$$l$t$\TtX$UWTt7$\G$LADC; $u[^_]ÐWVSt$|$ Pt%Vt$D$PS6Xt$ |t [^_Ðt& Sfffff (kD$tٞr#&؍ȃ Ív'1sjj$ȃ fffffkffffffffffffffffffff+fffffKffffffffffKfffff ffffft$Tá) u ) fffffS jjj!XZjS PjS[ffffffff$D$,ffD$D$0D$D$ȉD$ jRjt$-f u8|i8|i16|f32-s [-]5..[-]12-a (0.06)-c 4..8-b 0..9-l 2..255-g -r -w 2..4096-o -S -o 0..1 (-1)-M -P -n -U or -L ip:port number-T -u ip:port number-J out of memory-J ip:port number-j -Y d|f iq-filename create-Y b -Y d|f|b iq-filename -h thislorawan all modulations:Tianqi-Sats 400.260MHz: mknod iqpipe pimport json, base64, socketIP=("0.0.0.0",5100)sock.bind(IP)while True: print(obj)cannot open udp socket-o shift outside iq bandFIR length= ratio= offset= notches:..bw= cr=from header sf= id=Off optimize= drpll= drc=ppm squelch= inverted-X < use -h : df=,manual notches at:b~^- n=Header: dlen= crc=head crc error notch at:open iq file jump: found first syn nibble wrong first syn nibble state=SYN 1 OK state=SYN state=NETID wrong second syn nibble state=REVERS1 state=REVERS2 jump/4:rev chirp timeout state=DATA dcd-lost-count=noise=dB peak=dBWarning: only one bw = input samplerate!-Z (0.01 0.9999)-W (0 = off) Decode lora sf5..12 +reverse, 7.8..500khz out of IQ-File/Pipe, 8 16 32bit, shift and downsample (samplerate must be exact +/-0.00001) output data in raw udp, axudp or json, view (and if possible generate aprs axudp) aprs, pr, lorawan, fanet, meshcore, meshtastic... -A (*) enable frame chaining for ax25 longframes -a (*)follow frequency drift, 0 off (0.06), try other on hard to decode frame from iq-file -b kHz 0:7.8 1:10.4 2:15.6 3:20.8 4:31.25 5:41.7 6:62.5 7:125 8:250 9:500 (7) -C (*)use crc on implicit header -c (*)coding rate and enable implicit header (4..8) (else from header) -D (*)if dcd lost go on decoding until frame length limit (for external FEC or monitoring) -d (*)switch off collision detection (less cpu but loose stronger frames starting inside weaker -E switch off using crc to repair 1 chirp (stresses crc, does not repair much) (on) -F max. block energy FEC off (hamming code fec remains on) (on), try on/off for decode iq file -f u8|i8|i16|f32 IQ data format -g add this to measured signal level for absolute values (no autogain in sdr) (0.0) -H show payload in ascii if printable else in [hex] same as -H 1 0:show no payload, 2:in hex, 3:hex with commas 4:tries decoding payload, 5:with ascii/hex, 6:with hex, 7:with hex and commas -i IQ-filename or pipe, "-" for /dev/sdtin -J send demodulated data(base64) with metadata in json, may be repeated -j write demodulated data(base64) with metadata in json to file or (unbreakable) pipe -K do not exit on broken iq pipe -L (*)same as -U but AXUDPv2 with metadata for igate individual destinations per sf: -L 127.0.0.1:9012 -s 12 -L 127.0.0.1:9010 -s 10 -l (*)fixed data length for implicit header else guess from dcd -M pass through rx frequency to json metadata -M 433.775 -N if verbous add empty line after data line -n <[-]Hz> <[-]Hz> notchfilter baseband from to Hz (may be repeatet) -O <0..1> (*)optimize on off else automatic on sf/bw (-1) -o shift input iq band +-Hz -P <+/-ppm> (*)tune datarate (chirp samplerate) or preset for auto (-a) in ppm (0) -Q verbous and -u sending only for frames with crc and crc ok, see -v -q (*)invers chirps or swapped I/Q (prefer negative spread factor) -r downsample input, give exact input samplerate in Hz (off) -S (*)modifiy squelch level critical for implicit header frame length guess (automatic) -s [-] (*)spread factor (5..12) (12) and start a new demodulator negativ value (-s -12) for invers chirps or swapped I/Q -T send json udp with DCD-state+sf valid for this sf and every send noisefloor and peak -t (*)send raw frame bytes in udp frame only if has crc and crc ok -U (*)send frame in AXUDP -u (*)send raw frame bytes in udp frame, -Q for crc check -V very verbous for debugging frames -v verbous ====: cr=4(no fec), +++++: hamming ok, -:hamming error, h:by hamming corrected, ~:weakest chirp replaced, b:noisy chirp replaced, c/C:tried until crc ok/not ok, ^:bins with decending power sum tried until hamming ok, x:ok but same sf/bw chirps seen, sets -H 5 too -W every n*firlen samples update notch filter 0=off, ok:50 (0), less for pulsing narrowband noise -w downsample fir length (higher is sharper/more cpu) else automatic (4..4096) (0) -X (*)filter network-id (sync), 1xx stops decode on wrong id so fast ready for new frame if set -d 0 is wildcard, 20 will pass 2*, 03 for *3, 00 pass all (00) -Y d|f|b iq debug output in float32-iq (d)echirped or only (f)iltered, view spectrum, or bins , sets -d -y (*)not view decoded protocols and for aprs needs 3c,ff,01 header else all junk removed until first letter -Z add pulse noise filter (noise blanker) (0.05 0.999)(*) may be repeated for more demodulators, to start next demodulator apply -s before other pramaetersexamples: aprs with autonotch for narrowband interference: rtl_sdr -f 433.775m -s 1000000 - | ./lorarx -i /dev/stdin -f u8 -r 1000000 -W 50 -v -H 1 -N -b 7 -s 12 -w 64 rtl_sdr -f 869.525m -s 1000000 - | ./lorarx -i /dev/stdin -f u8 -r 1000000 -Q -v -H 6 -b 7 -s 12 -s 11 -s 10 -s 9 -s 8 -s 7 -s -12 -s -11 -s -10 -s -9 -s -8 -s -7fanet with plutosdr axudp to aprsmap: rx_sdr -f 868.2 -s 1000000 -d driver=plutosdr -F CS16 - | ./lorarx -i /dev/stdin -f i16 -r 1000000 -Q -v -H 6 -L 127.0.0.1:9002 -b 8 -s 7 rtl_sdr -f 400.0m -s 1000000 - | ./lorarx -i /dev/stdin -f u8 -r 1000000 -o 260000 -v -b 7 -s 10 -O 1 -N -H 2meshtastic + meshcore and frames in json via udp to decypter: rtl_sdr -f 869.5m -s 1000000 - | tee iqpipe | ./lorarx -i /dev/stdin -f u8 -r 1000000 -o 118000 -b 6 -s 8 -v -N -Q -M 869.618 -J 127.0.0.1:7001 ./lorarx -i iqpipe -K -f u8 -r 1000000 -o 25000 -b 8 -s 11 -v -N -Q -M 869.525 -J 127.0.0.1:7002example: decode payload from udp json with python3: -J 127.0.0.1:5100sock=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) data, addr=sock.recvfrom(1500) obj = json.loads(data.decode()) if "payload" in obj and "crc" in obj: payload=base64.b64decode(obj["payload"]) print("payload=",payload, "crc=", obj["crc"])enable FIR (-r) for notches (-n)no FIR (-w) set so no filtert outputwarning: sf<7 needs implizit header… /^xƍ4hР@#G8qĉ%K.\p 2dɒ$I&M7nܹrȐ A +V[mڵk֬Ye˖,XaÇ>}۷o޽z׮]tѢD!C 6lرcǏ|?z$@? #>$Hu=@@AKGOzBq=J0A75$tI@>>'7?I@=HCg@@zDzĕ38>pA A:?`@_p0y #<333?L=q= ףp?HzG?rϥwwSkytraxxBitBroker.euAirWhereWindlineBurnair.chSoftRFGXAircomAirtribunealfapilotFANET+FLARMXC TracerOGN Tracker4aviationVariousEspressif based base stationUnregistered Devices[Multicast]fw:[] axudp: beacon encode error:!Clb=m/s Meshcore:TRANSPORT_FLOODTRANSPORT_DIRECT/RESPONSETXT_MSGACKADVERTGRP_TXTGRP_DATAANON_REQPATHTRACEMULTIPARTCONTROLRAW_CUSTOMUNDEF TRANS: Trace[ Path[ Hash: Time: App: pos:\gChatNode/lRepeater/rRoomServer/BSensordB afc:MSHCOR Dst: Src: Mac: Auth: Flag: [dB MHz Ext Header Forward FNTACK none requested requested via forward unknown unicast broadcast Signature:no payload tracking:Online Tracking deg/s QNE:Message:Message subheader:Service:Internet Gateway Temperature:C Wind:deg km/h Gusts:km/h Humidity:% hPa State of Charge Extended Header Thermal:qual:HW-Info Ground Track:online Remote configuration:Acknowledge configuration Request alt:Geofence Broadcast Reply Landmarks FANETFanet:Clb:geobased fwd ///g/g/O/g/'/X/n///[/>/b/s/e\o/'/a\!\!{"dcd":,"sf":,"nf":,"nfpk": ill-id: cr: len: dcd-lost crc:okerrno lev:()dB snr:dB nf:)dB txd: t: q:% fc: fec: dre:MHz"net":,"crc":,"invers":,"bw":,"cr":,"preamb":,"duration":,"level":,"afc":,"dre":,"eye":,"nfloor":,"pknfloor":,"snr":,"fec":,"rxmhz":,"ver":"lorarx","payload":""} cannot write json-fileJoin-requestJoin-acceptUnconfirmed Data UpUnconfirmed Data DownConfirmed Data UpConfirmed Data DownRejoin-requestProprietary RFU: Major: AppEUI: DevEUI: DevNonce: NetID: DevAddr: DLSettings: RxDelay: CFList: ADR: ACK: FPending: ADRACKReq: ClassB: FOptsLen: FCnt: FOpts: FPort: Payload: MIC:ax25 part 2ax25 chain hash missmatchax25 part 1AX25::fm to * ctl RRRNRREJUIDMSABMDISCUAFRMRv1 pid Meshtastic: Dest: SRC: MID: HopLim: HopStart: WantAck viaMQTT NextHop: RelayNode: Msg:[ viaaxudp encode: too much junk in data (-y for prefilter aprs)Other,Paraglider,Hangglider,Balloon,Glider,Powered Aircraft,Helicopter,UAVBarometric pressure normailized Support for Remote Configuration Other,Walking,Vehicle,Bike,Boot,Need a ride,Landed well,Need technical support,Need medical help,Distress call,Distress call automaticallyText,Line,Arrow,Area,Area Filled,Circle,Circle Filled,3D Line,3D Area,3D CylinderInfo,Warning,Keep out,Touch down,No airspace warn zoneframe deleted, wrong sync word no ax.25 (no address end mark) no ax.25 (address field size not multiples of 7)p%d%X%L%@%4%(%%%$$$|%|%|%# onnnnn#o@0  E??: ?ff?BB@FHQ@|IB4C`47`7=L>>CQ83303232332323 #|A@AAB=pC<4E.؂;E.;5<.eB%.*s%*lu%*d%*.*f%*Xosic.c0*aX2C_TRUNCI(kN(k(knO;O(,(8x|X(X "F\I,xKLLxR^t$/X<1 C8CHCؾCHPDdDD( ETE(E(EF4GG4HxXH|HHH($IHHIxlIIIh,Jx@J\JxJJ(JJ KPKKKKKxL$L(`LLLL( M8 MH4MXHMh\MxpMMMMM Nh8NtNzR|  tF J tx?;*2$"<@FAA AAC8:AA AA4.CBE FABD FABE H@IAE(E,E0F,A(B,E0F,A(A,D0F,A(B,E0<AA CAK8 AA AAA ,<AC(E,E0L  AA l$AA CAJ_EGFHTFHKFRAEEOO FA AAH F CA AAA T`#AA CAE8Q pF((NoN[oPj TTs Bll |ll#w TT+@xxCEL     !!! @0@ԡ