jc7<505fhIBh*A3)ncOl1&(|SV4zNAY$7uq
z;QwHZk`9zI^-@}mFARyKQrq5?M*85Md(PQsF9+w`Ly?NaFIm|;S=rxS>st@uK^UOM
z!!ZW5{>66(Sath2hQIvki%-YL#}64}FvcJv7-InN-pemP|N8i;lhaQ+XN@34{XR*O
z5JCtSE`0LY#fzVx-H*6(>C)H7mll6GVvR-7(xIw^5IBD9IHzAeO~?X@5=9Xq1X`_@
z9UU7x44D0hvDT5qDb=bFLMRDC2xM7CntD`0QM}K{yvJCJh#(>sz!iE{_wWwIacsQz
z_eHsvID}B707;U72!bFYC5e0E&DWRF*=a1gHwE{|^sGxOrg-o1-V^mA1kEKddErdn5xIne
zh=VHLdy*t!cXyYaogJbm!h2t8ycg@;F4qa$E`s356f)POlMDxOlxi@`oYirwY-rl_BeI`g?eXUE9q|GRb4wlj8
zEZV5oH#Fg6@)!p{E&N^uaPyb1bmlK#nJxA(0L^CeRIAncIEtdd
zGa8Nh-EO!0D&Wq(RX;cReD#cGI}B!3EVu?Nbw~zFXal$nFgrUdV`F2Lg@uK~)>`fn
zL$le;rl+SD=jP@(I2?7+v?SdR4q#?x=82J!kymQ9+R19Q`dqs`IkCF>XYk$|?>!*|
zDwWERs?JYMO)dYm-8q78KeTfkaNzp&>u(Pa55MG`6XzV(+La_pR)BKiM1=MAbrZ+&
zGnLSI?8YB`U#}$I8Zrh=Wa{bqX6p`YFj$~9z&>IdTi_^gtk~mWkFN(T0pAP%54I@w
eKi_NdQT8{gu3Y`o3un*(0000FJB-b^>FJB~3C)B}E7U5g~*?2m$XsAqZM2Lhu9;y4`gEtg+b0Q~_mkJxhJu
zT9PE%Iag%40o?=#1P~xiGb9AGF`$6_YF|2iYT~W8-~1R6w9$AUY#gtRo;>*iO7*}S
zFy|aelCa#oO&rGr?}_7>G)>XQ5ZMTq^%AnH?R$Hs&P+YAu<$1cxuSvykZUR;1Q8_9
zdhf#n_(Q)F#Iv|Qhm#bm47DiY^5Q}dyt}rWEXycG<)ZAOeA&3)s
z^)f*`Wn&qr?jo({dJD2m$NMesJwY^15;|^$Ab#t~=O(hqRvr6Sk|f2-vJB@O&N&9-
z2gpK7*WcUbs35YLaS*{dN1CQ|Ivv{WHr;L)=Ukz2e`ITlbg6<%_fU0XJ@adWDwioG
zw}BS+#PQ>2M@Pr*+oLlxGrarG+2Yw6O{H3*7F8(8P!5jRW9yWoRROT0qhpUwJbkPv
z)q9^eiNRV+6h+%IrkbMn-@#{#1nC`?=rU0$knUby?r98USw@m1%+JqZqo_AYvWz2#
zA1PR`y!tXCf^(j1WPwZ)0)G2EsOY!=18A+$#&G2DH~@2V*D=-%njMMPkE=o_wG
zRyg?^k?^nb*$rsxZi{w%mHGKOP>R)do7UYHBYQ^>;Kq%cQms_(q`w_vb@5Vd*H42L
zO&y(sl(MYb0pzb+CAi%K8?A}sm~OXAx7#gtjpH>`K5X89@58lbv-vz=Prv@`8_zv<
z{A3!E!njtIs71s4da#wk_1=a`YpgLSr3$E03TrG%DI^F74jk~4lap5l2M50!8X0Ix
zlp!WTY)Y^x5~Y~3U`l;b0PNehA8T!)H^APJkz%t(qfrx)3lkF)f5a^}E(B1U<4mFG
z%PW_{7zSzs)a!>a#-NqPi^pY~_G>nq-!CmK=_E-W(v1iA2SSlRuWCgQFCpvoxNSC<
zE`2+F;n)_Z=DrP~cj~v6n=`YsvnMtjZ$}2
literal 0
HcmV?d00001
diff --git a/images/good-signal.png b/images/good-signal.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e09cdb79be6b00ac16cd42754d2c2e574a34c59
GIT binary patch
literal 1104
zcmV-W1h4yvP)TbQXsuC7p|u7eguu<8f2j=*57&$_T14GS~%y>#t_*EpLGMW8=H-xvuDmey|8c_ghEk41Sm8W5rPO(
zME%&I0rJDQ2$Hkd`3)})s|?jB;>zMe7d%)UB+D}5DCuvzzkTUF->Erbo{TG=Q%+%UQ(L=9zpW^Ghdja
zPFI0-tcc*8V}5>~X0u72=l@%?)@VxQm}*oamU;n>7_v2zXhZr^xHP5FXgvIBPhG4Gcqy)3KVMF(?JToVWs{ZH?JtX+(jh(yIhUNhF@D3D{HbzWUx9Pri1-g|u&6t759rFmvPU4t~V~
zE5Iti^z^hE9UYCXUcGwA7{fLgDwRq;H8pkZ!i5Xe_YN#elp#I^)kTX2lL#j66$o(r
z`0;)9dj0hzNnVcQ`07k)_Ct9
z31A-5#nBVb960^l)WMU=P*zIy%TfYcKhFIA<=pjKU#LfDmI|l?!#yeg(MazB>wg1s
WNOU^Y3j(hI00000-J`Ml?1Mf*h
zK~y-)ot4jPTvZguKljIbGn1KilIk=xv(e+ev3KKi+%y-s56sUK3Iadf>o&9NzbS&-Z-K
zeTwa&fdc^u80reANi7wGt##Dy}^
zPwCT~;nVv8V~izDGU8YfLO?_aArL~qd(VhhC@nZi=!G^tzX5>Kg6L2HlpW|9Z^Er4
zNur%|Im;pF5IFb;iQLIK#9jvt$S>+Lr`K?H3y-Ur+1v?q@qeF3HV
zz}|a82sr0Rl7tH@-{HF{SrB?@3Tced7E}r4JOH-Yy1VnlyC)LsGV*d3J}WLZWW74o+8_GS3IRbv_HQJlF$
zFKn>hTp)<2U@Ya*2x+y~XDrAz9Uqk5dxB`3By6}l1o2xZKQNI+w(7V!lO)MA%QBpE
zIOiDcJVX{!y8iAqM+K34jDrZyInp#`V`GC>t3|il#W|O2yg9PAB3&)w(w&stRNwsC
zpb7=z{EyGR=xLwB{5iQiK1v5V@fG{;x<0JL6H8iL>GwSK)PdXt*kmSa-Dy9x~83YYr_Dy^}`pp?o%l~Pz^QA!~}*t>VHpPQSzFgiMV
zer&v4mncI_g4mQ`QzS|;1;NCdqyX5nX98<&t~bE$@$vkyTCG+Qk+ZY2vwwCPZbk?&
zs3}09*u-lfg)x*XWvbO_j4^1X@#1mWJ^R(`^`BQ)S9OvkkLcRN6M>Ku=y$CM;w5DL
z9k=!R>bdWKID2S|QwP2cp+EJTYxViX#l<5-NBMZ_wJ%QncuW~eN~!!)3A8Vsz4q&{
oi~kx57z1`~mU7dN^bXMY2dU|1n&>k!>i_@%07*qoM6N<$f`u6o8UO$Q
literal 0
HcmV?d00001
diff --git a/images/high-signal.png b/images/high-signal.png
new file mode 100644
index 0000000000000000000000000000000000000000..4fb76f10c7349020ffe28d5bcbba6e87f2de99d0
GIT binary patch
literal 1106
zcmV-Y1g-mtP)@4Xz{M^jU^bi?AD!{U5?T9F_0B|MtuA@$pHmHCk(wQfRFK2qEyxt*iT*<&}!kL5aYYt&piGa?WEXBZ
z%QEep8${U$?E?oNBM5o0G~E_9v@yD$77D<;b?)rU2OqxwIU?vt<9#r#R`cMQGjF0)
z7ub7G2m$9DS(b5q`7*w3$%D|b7HmSK4X7f@c>v7zPJQJ3$LF6}US0vA$EY9z^f(m}
zf(X)!`l%yBOdLOfkt(j!Vn|9D6`|soxVa3}FvI0x@;oPr(?QyU^rip)Fvn8rP?)+;
zCp6gFULc4kjSNG@61LLmMl8r49{6$!NIy1o017zSl$sd6>uDmSx$%@;t{m
zhjWg7tx@t|Y5V$~jtU|VA`T)r=djk&Xf)W_*`eKTW}=kpm1^rk?`+y)$7}CV|`=UIj>NG
z)w?yU%}eced;cI>5ztDCg~EpY^C;VQe=3)L-B-|5=qp(%L&ppux9=sej+wuF8(9
zD|5X$3_z(=IyF2z{7Jjr?*B%ySZLO2wKo8B?%kK)d;Rz;XKcs@jcZgwIo{9WPgJYbSJO0oF-ekR)6*{;ymRMvaL#Gx93ceaI4+CG{LIYEQft#q34vafQQeaF
zKL@}gi;IizR4SF1j4{d>Lli|T*4hrPM%{5@_C>|Kpp*8-IPJo?uxjpbG5oQ~8fYdLP*Q
Y8wY4{8$-3aTL1t607*qoM6N<$f_1C|+5i9m
literal 0
HcmV?d00001
diff --git a/images/low-signal-lock.png b/images/low-signal-lock.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a8b0fd709eb0a5b174b563764e4503333e42e53
GIT binary patch
literal 1111
zcmV-d1gQIoP)uKV1LR3W
zK~y-)ot58f990y@KljIM60_;1!A)psQxKC>EfQY@Ltn)9O(bG1LDc`i7a!Eu7PTlM
zJ`|$=gAXFwCn1=YJg78Qt!+rDNNt;KS~uO$`D(FVukY7dqqRmUh1MDX?>!fP`@J?cHdZsnXc57sDK5*1
z<8A->;ujw;FP}aAAaHQz%(t_v=P%3{Z4ji~5D`R#Lr)#z#EFw=r9dg#?T{o%7#JAj
z{IeIHUtT`D_#iOGSduuUQc-yC5fQxic<;%w4DSW46y9fe5xU)N0IadtzzhM(7J63t
zxYan0wR5hlvIo5f_6Q(AlB9_DXk$PD#nrxg{Mg*P@4fRGB50$@GH;`(GdVy1GD_v(
z9?UsM9LH=nZWBcjKFf%rh$KnS#t_&5m*xf8R(N;U$rC4^zIN>|5DG;F5ungiMDQX=
zQT5EsL1t&4fg-5@NPfV1_>h*e6M3&~}=KhSDZbtC=fGEb9LeW=OA%!sv
zSBI(9rZC2!l_rx6m)^5qqtW
z_c^ujZ9Ws=)@Ea6b#?V<&rwDbmXouBW%`|fe^-nwIOk}$+q7COdc7Xr`$FTLtJP|;vb;>cACrbOYgeUdZf((Nw{x%v&N&tr
z7iqWKq-pxUJ=^dL%!hMq=~bNSWnHBsc1xX`{aaE<;o_KPv-$ATV925OZ;&Q;2$D62
z=rU0$;A(4Y0JhifGc`5E#KZwI-Bt14*~a8a_C6)qw?rZ_f%~J2D!L0`E9EjT9ewEJH(;PNUIy6R@Y>d-eS{o__753o(OUwW`E$G|Ixnrh{8pU=3IYn4O(f
zV`F2{)vH&ZFvhSAhHAB%&dkhQyLj;;Bl~tWBuWq;gUZmN!ITA)k24E!;>3ylBO@cP
zm&@gsOQq7Gsi_wZtgI{t@4fck6G9-0qG1u4o1UIt>~8u=A&_Som8E>}TYz^jEG)cR
zuh(C()+%c)#+cjAx!XX|aY`vxS66i$#|QQJ*#1B$ZWREf6+u!7iKN>#mCa=HkX0NV
ze(v#ij?ElAr3^z#siG|<(D`ZZw=Wm2|M7)-gv(L^Bf#iD%70v>e*v3+1F52T)|qG8
QNdN!<07*qoM6N<$f+BGaN&o-=
literal 0
HcmV?d00001
diff --git a/images/no-signal.png b/images/no-signal.png
new file mode 100644
index 0000000000000000000000000000000000000000..a410637eb81ff385f99b7bc7eccb2273ad1d911f
GIT binary patch
literal 1101
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
literal 0
HcmV?d00001
diff --git a/images/signal-50.png b/images/signal-50.png
new file mode 100644
index 0000000000000000000000000000000000000000..10dde524af08d26ea04fdf0d39ae94299a23b5c1
GIT binary patch
literal 890
zcmV-=1BLvFP)|Cq%`)9AD~
zK0ZD^Iy&0xtu#YbJMWgu<$ASR{SLekU;=z|c6$2l=ZnQj1q>hv;6q@u*;HXVhlud}
z`L91eeE8@o@KXvTzz2)P;^gA;qH=5!5qw$l`pp|eU^1PuH{Ijjy{{htzW_-Z^WX1e
zZ@a-Z%aDjD78i*D>;ullmC4RA@+07brznaFTWBJ4xW>orwiOH`e!-w9%8EdVjEGdx
zw4!yLxa&|6)ReN`9ceys+E}{VA27q>ID|k@ZSsd*3erMo08Y<-BhPbcgb)HnQM3q!
zbd-`NDWg%^2S}2H{n@PA-XN$lo6R~$<6MGs4)1**;HxjcV7uLd2&zh!Wtdt;Y_#!s
z!gw?$NnIZRge)(R82)CxX-=gkNrQqJvvf89&^n!JXF3EnEJ{ldS0k_}GPR0*0ZbZN
zns+h;P`#^;K-JZqU?5AKDd65&WK+T%Fz--qmJS84KTuk+aVzuO3x|en@muq!U_rLavtGB(}
zBqYPc5V2v$ZYLY!K%2U)^KWxmSGvfq%G&_`pY!eN@UzJsGrd+c>IyFTm%q=qE2t!!
z0tzgD`0nYm$=rPsf=+KN9w%9L5thIb(E1zzX>5KL*1`gn$&n
Q*#H0l07*qoM6N<$g7yBBdjJ3c
literal 0
HcmV?d00001
diff --git a/images/signal-75.png b/images/signal-75.png
new file mode 100644
index 0000000000000000000000000000000000000000..ef9cd3940439cab13cc0b9316cbd410a50937684
GIT binary patch
literal 850
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
X%Y^QQGc
zcbW{f)D>85v!eu9keu;&0NAl(2i|=1O?>v*XSjR!E=EU3asK>yJp1gk2#3SA$u%Wz
zSCm~cSc^G&PN0zxz@pgV(4j+k`st@Z2thud$Jp2y2q9>1Z^yoU`>=E8P7DnV*;+-^
z7III*>KX!+Nd3LPx3?FYH*dx#pL_yZ4o3)C_I_}15Em|7u#E&!Mm^1Qwe=&DW;rnl
zWE7-)J}-k`i2%26-!3Cgtt4PYfVMC&oAIauI1&3NCns_7;zg`kvql&ETrP*v(b2kx
zJ1aI{XCkw~Om4g~=lHf+E%&pd;cmKIBs
zE$YxmXFa8oGecf?hk$_fyn^nTGi$kA4)4DEE)EU;rH*9hjV)#Cz|(
zhj-q22Zchx)u34+zAFikIuZvAY>L?WTB7V=DWx@u*7g+uz~#%AaryFP=0I89_~QE{
z(5U@=oN#)~U;k(8YvMygLpXi1ScbzKf-T`a0R9TW!>Age3a2~Y(9U|0dvkFB>0{A&HeYDt-S
z2r!}o^yYuK%3dOTb+7X1!t5xZ68MA=uGaI7D|x?qN!c!ysY?!Ebb44kX5ThyH6U8o
zv}-MZMX8vwpZ@zhb}NdGZV%T|fndPi@2cdPR!0GpOjf+!iu|j$etGh=aH9#K+1b2W
zyws`!*a3Vc`Byp!>w1E^DuB^Pq}UY(%nSorZVEBu{ne!3Q%?-376$b4fycY*(*`^1
z0qpR8Wq(W_Nidau#|WTS0j&ooP9Ch!nK~>>!pwTVvLA}a6SmLzxk>?ykf0t<&2%CJ
z7@7IIHea8ShNB^%8VLX(9AK*g%27Z)LqH|(*Gl?W?nrX9Afy@zdS8zFN&&QrN1X)U
zaRN{hD3^}aB-qfzP6Z@MLO!2IKA&f<0P16O)%RJi@^RM@09aZ&-h4)z1ay(ePo})T
z-oGYnTTb>Y0RZ5i6NKwOt=$n%^|gx(>b^K0
z`GLQ{&mB+T;*_)C11>xy>dU)JTezRSQ9|&@%60h23G_D)E#+$6R<`Eu6%2*BUuuFg3qdMaK#fquT#x*
zsPb={o0|~~1|dn3=INldg67n7jD1f4tq!i%xwR&aX2E0i=z8DJ16Tp261aAa7?gE@
ztVq*P0ES^gZOzTi=$z&2^V`E4rlSrjfo(Ffu5#yU=l`Fm_f$s>Q1^&Rm0QT8%IC0_x
z9)9>?Q{G!Ke2A`|sn_sZ-0!$h=4b
z&l5n)`*-i&jVGUc(l+q5?CrPT##?W_<@uaI@EiECSPX-MgIHKtu*KW;Y;bT8=gysz
zA3LLLlb1-~yQhXd_~3)`o_{+5*RqEmdI*;;UD70`S4bfE$@_t&1)f^G-;7l{VcaVu
z@SOq#gTbn^c(r;y{ku>o4pNhEdgwAZwDa+fj|JFD56*_
zqEsrC5kN@-$0;ttMO99ltmr5m+N+o168B9%0p-?Eu;bLZH2J`ckpWx6S03+~&!63T2
zy5ty7<2oflOG^ua!JsAy)JdTFG4d32`aYk}V{UE^g+f7A7W&-bR4Rq(>1kaxXb^w_
z0Yp(mUtb@1o|lt4H3=Iy%}Q0PFF-+QYTNfzr#B1kf4@
zsAGSzSgiP2I$Wf`r$3vXo^FHy)|SiVkk9AKGJJLNrxzB~B+!cg6#NQVJ%FWyrpCv|
z!Sg)E#>Ox_JY2Wc$Q3^i5R1jIb?eqLzy(2oD2g)ZqA2R-21-d+dbDzgN3(q8zcfdn
z?{p41%!|?@GF5%2!SL?n3}w>yK}Vs0-9
z^VQ~1Hxa=rW#KDodw2u*6+(b|6QZ#@cm)x{FDHYnXaY3sd;34yE1tt5P)D+r9>D>_X;f1H000McNliru*8&3wDJ81QV66ZE56ekJ
zK~#9!?OkhZ6xS90X7=p|!H#462oKu@N>pMVRVgv0khV%IqK2fZP-q6JN~J{nNWd0R
zqoP!5s8Y28fzmX;DkT}EO4TU+!9$9Q5(y|&QJ{t-c8l>E6KouVOXIcoIlH$%=pAOq
zGrKdpcXl4$Bdu8M_3X_3zVn@P&zyUQBZQ!8^Vj(55L5}^T06As0a87m^2}ca-kNjk
zeQSVo!&q`|$^q2CJ8_U7=5~-rg-;xPj;sb=}D}k6rj++^ofIWe&%HGjb4}CYQVc;kbWuNa4qb?@d3|=1fOj(Z0B`{xxZ3;mq~0kc;GGQq@5F>Bz*pOmON$&s0^W(>
z(*c^mRZoGhmGIe30$T|1Ft?*9_%Dhh@S;%?(CgG9fqHyAM*wB5Tz&D>(nxwv`U{zI
z93B-unN#oZ3;~o9rw9Ho#8EF}El&%TDxe;ZgTktckbt)f{6fi55^+y^zw&yDk-#$q
zD334Uat4Eo>Q|vo>3Lh>MLMnelL2zmBo}w_xwHo;1@V@X^}iDU>y=I
zRRE=I6$Af>NSJuP5`5MmDUWw(*8_y5EEfv{0I&d!%tL{t{Qwk6H68F#KI6Q$)|(FaU8L_pi;^Dy$^n-D!@B&P|Pq~uLD;NJWH?9@^}^`
zFcJpVcNvytRM=F5X!p|$>mt`fF)MLhQrJ~+nYznwX@L5{J@4|!b4gnOnTNr0LU$*;t
zl;^huUo}huv$cfXLWW5ga8w8|;U9~U9jgLu
z=rrx6g%Uy5>c?9Jl3gpDBH#S@Hoj(>v+)aR2#nRPUD^5B={ud1^tylTlIBX>F|;}q
zx>5m@i$98aFUyP81Kn;il+#yG>N(p=fKqM(u}a3aY}tZ0-+U97E?vUy+qW?^G=yWv
zj^U}NoqI=Nfn1t0a1jr#*aqsWw=)lUAD{=n(dC+z^Ldcx=Jv}`*apD9s
z5`<7=Q4+_OHI9}Lz>Xr2QIOKSo>@#gF9aO9w8+sbfQE*KP+MDzy1F_90s(N`9p{!L
z3GsLwu~-bbTy745%29!MnLrttNx4n|!l)_g8NF`}a8@LOv$M09ot*^$_KecQ&n+LwuXUaA8qStv%02&^wN{osS0o%84$GUav
z5Q#+c<DElgT(5v{H!gNCNy!h@np`{<&k~>b#Am
zloml<$tC4;=g#5WxpS5SRqDbQ&nJOK?E~^>PLKHqgvBKvx3{+!hYugdGtWGOmX;Pn
zNn|PU+m3r4wh%yhH;biA8BMs%+JXfO@W>;NV9%aCOtO9>=TmCqtCksAQsx>3D3)Ps
zZLnCbNs@$ADuq-k#k>Zfw_3^SX|5+jKrt(|H!hROAel@enM{^N0KLU3PEP=BB>4p@3CayManSs|cQ1yIUAJ*RiYE_{y5CBwi!=Yq5wuWi8KnnnI3@O
zinHzs0cMlIayLFAgmB}CqE8&e+hQvo69(~Z?nlIE5@!9D@1000atfcmlZtiUfeE>_)AwmbwFQ2~1K?f42)BG77?
zo~oFg1r!3G5We_rC+YxE!=2AXttVHj+d6I04#tnB>zeWvAUn2
zq6%R25h<*~fSGBam5V~mcz-eJchwU^iiH8ae1P?q=q&31EKJY)mE-Y}IA*Ez+eQGj
z3TQnzai=g=5f!kqCCse%E63rmm}Oq^bCd!YAweacnrTM}FjDzb_Yzp;{kDdHVk7{7
zAi|cafN~a4$q-P;`?ZojD_11h+7MEV1g{7ko>Bm<=21Jrx19i#1j<{-Y7(?ynPn;<
zNfOfOG}7s`(IAO_mx_r~SEC2)H^F6at^sjU`VIfDXtAKE;dT2>vE+xGS9o`~95g
z{j7QiJvj>~mbEvc1sm}w9v1$tSwnErEI_MoP>-~BZ#(070;qwz5BK96_&$ON<2~{!
z=QILnJ-*)RzQK7x0QEpF!V=VBA+C^%oKpxu!MCb!aNZL@Z&1w)sPb>?>+2B=1|dn3
z=I)^7f@arqj6F{PtpP4JxaB5}X2G-S(e<9M1C#lKTE*1Z0*{$ICJKVCNbSY0>78MAGmXaryTD$V}*7YcMAzTrvSlVuxJ&pT+gR}
z7Yc=3KVE(>c|QP5O-h0hPT09;{G#bUyrAtv$Q-hkC8uO
z(B9sj2fmsF^hF54?CdPU;V>eR2!g?2p66@HKLtLSOd^p;fDi(|->*rW+S*$1JdZ#i
zfLtzzXf#?)0O%}lS!o0Y54tqd3NCU-x&r;l90>gWQnJqO_ND2
z@WbISnwpx>-rkN#BqBeMI-O2e31Fqw)YQmvodT>y2IcQ*2%uqrdOTeaLcQPT^T~OF
z8hAAULZJ{^TU)VW#R@bxH{;5cD_FX8DTaoIssyllzOVLht#F|9awP$@W&-NipUq|q
zewI!b>F?>!Zrr$04FOhLDwRSyozBbf)ybb;SWuHdEB;gP3uN^G?rbzQGBN_5=P^7y
zjQ;-qirtNz_jQ2U+FGn$y*dwYzu%8QARvPt2n2L<1Er)ZJz6=%qglT4Uz#J(_mU*Z
zum1jiS4{<7{p{e`*;(}W_sgYQr3&aNg7Os%2J>ElKtO(JsYjvj$Y!$z!LKTS#RZ||
z%a^00qazPs3Z&jkeKUx9J@szt^=dCydVV&W#lXM-#>dBto_BR|sKq1*hr`&gVFQ|)
znq==(5T6ORRUCi1k@TE8?kEDDlA^S7pi^Xv5+BFOe49sZ;btCw$CqOY0C`-mGR;)l{Vrq!%hx+<@
z)YR0Vwzd|bP)NSf6OYFckH;}HGlS{rX-rQ~V`^#&!^6WR?UF(Rp93d0V++1>gwQmLqW}N^
literal 0
HcmV?d00001
diff --git a/images/wicd-purple.png b/images/wicd-purple.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc781567d44d0f1c1a17ceda4c6477f04f1a3315
GIT binary patch
literal 4135
zcmWkx2{_bE9RBZG>~4fb?q%IazAg7{ow-}GIdet1iiF%PDyc8`eIG>#vCgno<;X3$
zuN6|Q`#z#?zh~Y#o_Xds&&+RT-rqa1ShH)4aBesN0E~tPx)#(L|9^(kQOi#n&VAI1
z&c*neF7WsNRM1wMOznaB8rVDp0A$Di8T84+@&>h&-rvwvkA4D70~O=+768cr08^cz
zu9juc^!hC?Z?*~c^E-hD9@$RaR~ukVGqgsQE=ZijRgr`SBdMZiugkISm&%OZ=>9Pv
zT{15&vh;jwQ4a^d@rb|~)f%Oio1a9-u(69Euy2bnjD~A;OY)+VoYBTh^@qwWjheHW
z{ey#RgKP6GyIV+)ryYG8{b$78+=mJIIt$X8Op0eX
z=#U`O0LP;b1~&}fRk9UKl62`#;q;STWS%y3#Tfn(SM$BRRrybe7-Q_Mg0
z+?t-JJ6EL<%g%b&drF{AmD@oNg!y)i%vX!;2ckeecejLM7h1q!^|x&OKPw1R4T*A?
zCY43Wt$Kt;g`pD+)RfDV3el9=0nfT4V6I7C2^e*aDj~dIRja@c<1~{Nvy+#Ze!L&^
z)hwy*P2%D1n!$Zw>F(XX&R3ClK515o{Dr$+uAbN0*kZ8iep8{f>A3m_*sm)|GqIArKkFu9eCS
z3xE(^NS8mR7G=(kRSfdgJd2o`_Yh`y5`9`$hQFOmirOgbN6pw<9XV=38a*YP!-pCy
z0RpRLBHFP^yg5bvN3S)mt=$sFd9dczk`wwkouGqfm_52zzF)g?SlmjiM$4Ok2@he5
z{YXh?(oGcU`GjXAKiBzFk$Fc8TBTETn6fDSaBr1cwej7x3UKavNn4$@pn=_4&`kjw
zkiZ570
zN3G@wZ)s4kHKZu@-+OZ(*nNn{qW|3b@I>{|hLgKHv^$RPQ}T6lug1r3{`>0H;w@<7ssJkr2f)@
zqXu~|gWtjL{o2s_`g-T$rdYzt|i@Q+-EtY_g>hTWmkvBp*W_D!H$COG%{t=du<^>#qWneNK2}9dUF*6=*_L_
z*7+tA(P&qhSXUVv7LdPU#iSajE(NIVmtVl$d~P0L)|@Sz0_nju$&^jK_jIW)n(~Sd
z`s;ojoH0m495GMi=+V58SE~&$(hjGbuQ@+tPn^<0{S6=B!{Mh`-|q!3yLA6}p^a&V
z7o@UJ@oC
z3(mNIe=k@{FjDTyV%0+0E!vb~An8!5Bc4J1y0p$j{q<`($q?@8)q???n}~Ln?gcKN
zpYL=*bwnYVy|9j=_)HpfdFGj{7{+zr>QXQ%H{bk5_EznJr3gJ%>|SDrhK^JOdpu?G
zrRCUDF3{^=cH;pxH=Et|-kteX0F|;Z50k;4BKY7XE9VOtZiWR&*m8CinJlCY<=|S=
z5q`7P+ueA@94L;_<)&RQVZyi`JQ{?7?j&~@F=+@s@qHdABr_RfFf#*X(tvMtGa-r%
z3s`8e{5ll@!hGwm(L)ca=3bwx<8EENGk3XMjZZG>0$^iXcO65O56{>!XOkheTG_`Q-q@O|-?oUCoZUUpGDACsTls(nov8Xp6@%J?_#|Hjc
zyMUa@(CIFTKQysy&rTnxhr6pQT~%wSkd!3ViuAubT#d|EHwo_=x(RoB4#5R^mawBp
z!~OZ?>G;$`J8rO1A^GwQKjz7g&KP}P{zsxIp_{1lF<-OfST!r&
z=tfdmO%2Qb{yu<@jg2h|1>20BCC0Ub#m>JhtMU~BI|JwIavZ-xtWMM8eIk=D`pGez
zf7i5w6Dy$ru>8};jB+%&MJ^^aZa(BVDzm~TuS(PMzh6X|FB1}*!|!r{4akJwJUNGuVIE6an({yGjEsz1
z$6?HR=DYsGMp}g5%3W1r_;Dbed)A2c8i8CB;@?JD1@(g7a5mLR(z)>qNPYdrhIh`u
z+Ue-fsHm!rjEy~|(jkD67VE?oyMn)REf=8K!A(Y2gVySnD|1r;Ny6p)gk3z=I0b(IK
zUh|xjIsz~LqDmlA3PyUs`#)_DWGmjFb*vpNy}mSDs6%_t)l4{Y30AOjMh&2!sRPO)
ztKGWe`MXs&TbGV46|usQkpA*kG5LRvj;9#kS^>xhbpdBL5;
zHtF#rBj)}AE1H@l%Dx~c!^fp<4D*v#O_8m?jvrC!eW>gKZ8kkug3a+NmA1VVvJdAg
ztg5*`%uoCIvP&c5g}7h2Ox3zUpK4RV3<0SPMK3AYz+R|Jq%aG%J2FF#!ZaXY5cTm0
zBVbhg8y6>tjGtg5-G@0D8()B;wu02QLfU%n5PDYpf+1Lh7Fx~#lIZYtAzUNBHM^;@
zk})|sIk=ZB$L>38Qs4k}_w>}J8V2R1clh}D#4K#m5A9OzDk9UsZzG3R{HW6y2qQT8
z`LBs4Cw}Vu{25YG`cjjpNgvQBpN47FH8%ELb$CHRz_@vM7I%;33=7P_WATaUnDhv<
z($S2pEN!Y?s$R&3@8wIMUhydUj}_QCk
zG3&=hi04JmGc&oASuBaKT@#t3s8P;cuH4RaG7%Ct2)cxJ$e|}@LB76Zj+&aXq51<7
zt#uSeR2!N|dJH?FI#yQ@qz#2=4GWu5HA_%l%mhX6pL88L?n;r!cLSS;LYxej@YUDA
zvCuEBh+qEPQ35?p+KoF^@kY)hsGgX9zyZ*PC^r0S3znzGSf{;z<`
z(roZA4{m|2Uo!MA7^5(7nxt-H9&O>x!yq-kyaGB0Q=okzzM(kC8=u9-7Qwk?YLL-4X@UT4V&Ka*uui*TZ`e5p^JIBxq6Qux2pwISc25`
zu*5J8$N4_WelJ>jU;Kb?%DX}QNS@Y74OQpT3HSH+Uj|(Ul^t53=?opv!HvuNo@lF(
z2!-rU5((()?lyLKbnl_~Z3Oikyl0zO1_lOdA4$d*=s_jen6-CEXgU=Xq)6Pw#RbeC
zzL&V@w#*GG$AG_NWo5k&+4sC`QwyO|yq|~wi2ndHL^Quoklv)MC36SOh0+MelhRb6W_is
h0=rp&{Auqwea%#5GW~W+HuXyn80wknR%ts${Rc0Qnr;99
literal 0
HcmV?d00001
diff --git a/images/wicd-red.png b/images/wicd-red.png
new file mode 100644
index 0000000000000000000000000000000000000000..42eb9aa753750e5010375d88a6bfb4c3b5428c8d
GIT binary patch
literal 4106
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
IM6N<$f>Mu@cmMzZ
literal 0
HcmV?d00001
diff --git a/images/wicd.png b/images/wicd.png
new file mode 100644
index 0000000..bd65c73
--- /dev/null
+++ b/images/wicd.png
@@ -0,0 +1 @@
+link /opt/wicd/images/wicd-purple.png
\ No newline at end of file
diff --git a/images/wired.png b/images/wired.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7f593c87a61eb91b4e6d713bd81748ce8d19242
GIT binary patch
literal 1245
zcmV<31S0#1P))8amfoukZi>1Zqh{
zK~y-)rIk-?R7D)eKl9$(x4X2v+bwo?+eo+29-1IntfXiZ3_=fxNDm%tOpKbqK@VQw
zfM6o=fM_IYyh%Keh8Qs0=^xsy)`c3jyZiR-+j%n{x-GS=MB^`+
z%zMAgeDj;{_cz}W)DD~f7rs>^X?*z6i8s5uyB{+Q1H&*7hJg?QAp`(gYkXg#)WR&K
zMEO3_m-xQV(YN0@R0~-Ak^TLl!$*$n4BFMg1)xQB)@Th{E40=qt}H*fBG_xQ0l
z1Rx9p5F($?b?@81k5DL71+8xO71Ea|rSN?pDJ7SGxy;bem8G2T`v6!7o%rV4uV0#;
znucWpEf;F}SgcBGjg*q`svvW7b9dXJ%D1&@Rai_Uy4s
z<2X2uL#0yT@tzHwIQ$G&!v+S<4srVQX~xILky7$V_a=7qKTO1JqvX28qEX&I{s9(R
zqqM?t9Omce$>nmmu8YLYa^#6rbh*<);MY^hZi!!%8H^zJ6~z5WqA|+S}V{
zZA}Mn+!*aXb?Vf$lb@bE!~*M%Wtt|hy!tYGp4)>k1R*RU;Kr9xcSS+How(IKZQox@}r)^u?*0E>r?iYi$O*9rInMx3kHxQ49y=#}@l}aPYEY+jcmS
zNQits|HJ(J{0nE#emQFb5-0+N{rmTodU|>Sot>Rg&+}djhr=QojS`JSXlQ8AWw(5O
zVshg1cs#x-8jVJ-U%!5BczF0|C={M+Zf4:
+ #blah blah replace stuff
+ x = x.replace("$_SCAN","0")
+ for t in network:
+ if Noneify(network[t]) != None: #don't bother if z's value is None cause it will cause errors
+ x = x.replace("$_" + str(t).upper(),str(network[t]))
+ z = z + "\n" + x
+ y+=1
+ #write the data to the files
+ #then chmod them so they can't be read by evil little munchkins
+ fileness = open("encryption/configurations/" + network["bssid"].replace(":","").lower(),"w")
+ os.chmod("encryption/configurations/" + network["bssid"].replace(":","").lower(),0600)
+ os.chown("encryption/configurations/" + network["bssid"].replace(":","").lower(), 0, 0)
+ #we could do this above, but we'd like to permod (permission mod) them before we write, so that it can't be read
+ fileness.write(z)
+ fileness.close()
+
+def LoadEncryptionMethods():
+ encryptionTypes = {}
+ types = open("encryption/templates/active","r")
+ enctypes = types.readlines()
+ for x in enctypes:
+ #skip some lines, we don't care who the author is/was, etc
+ #we don't care about version either
+ x = x.strip("\n")
+ current = open("encryption/templates/" + x,"r")
+ line = current.readlines()
+ typeID = len(encryptionTypes) #this is so we know where in the array to add data
+ encryptionTypes[typeID] = {}
+ encryptionTypes[typeID][0] = line[0][7:].strip("\n")
+ encryptionTypes[typeID][1] = x
+ encryptionTypes[typeID][2] = {}
+ requiredFields = line[3][8:]
+ requiredFields = requiredFields.strip("\n")
+ requiredFields = requiredFields.split(" ")
+ index = -1
+ for current in requiredFields:
+ #the pretty names will start with an * so we can
+ #seperate them with that
+ if current[0] == "*":
+ #make underscores spaces
+ #and remove the *
+ encryptionTypes[typeID][2][index][0] = current.replace("_"," ").lstrip("*")
+ else:
+ #add to the list of things that are required
+ index = len(encryptionTypes[typeID][2])
+ encryptionTypes[typeID][2][index] = {}
+ encryptionTypes[typeID][2][index][1] = current
+ return encryptionTypes
diff --git a/networking.py b/networking.py
new file mode 100644
index 0000000..156f68d
--- /dev/null
+++ b/networking.py
@@ -0,0 +1,548 @@
+## THE NETWORKING CLASS
+## WRITTEN DECEMBER 18TH, 2006
+## RELEASED UNDER THE GNU General Public License
+
+## WRITTEN IN PYTHON, CAN NOT BE USED ALONE
+## MUST BE IMPORTED VIA import networking
+## TO ANOTHER PROJECT IF YOU WISH TO USE IT
+
+import os,sys
+if __name__ == '__main__':
+ os.chdir(os.path.dirname(os.path.normpath(os.path.join(os.getcwd(),sys.argv[0]))))
+
+#import the library of random functions that we need here
+#this is also written by me, for this purpose
+import misc
+#import some other random libraries that we're gonna need
+import re,sys,threading,thread
+
+#much thanks to wieman01 for help and support with various types of encyption
+#also thanks to foxy123, yopnono, and the many others who reported bugs helped
+#and helped keep this project moving
+
+class Wireless:
+
+ wireless_interface = None
+ wired_interface = None
+ wpa_driver = None
+ ConnectingThread = None
+
+ #Create a function to scan for wireless networks
+ def Scan(self,essid=None):
+
+ #we ask for an essid, because then we can see hidden networks
+
+ #####
+ ## DECLARE THE REGEX PATTERNS
+ #####
+
+ #init the regex patterns that will be used to search the output of iwlist scan for info
+ #these are well tested, should work on most cards
+ essid_pattern = re.compile('.*ESSID:"(.*?)"\n',re.DOTALL | re.I | re.M | re.S)
+ ap_mac_pattern = re.compile('.*Address: (.*?)\n',re.DOTALL | re.I | re.M | re.S)
+ channel_pattern = re.compile('.*Channel:? ?(\d\d?)',re.DOTALL | re.I | re.M | re.S)
+ strength_pattern = re.compile('.*Quality:?=? ?(\d\d*)',re.DOTALL | re.I | re.M | re.S)
+ mode_pattern = re.compile('.*Mode:(.*?)\n',re.DOTALL | re.I | re.M | re.S)
+
+ wep_pattern = re.compile('.*Encryption key:(.*?)\n',re.DOTALL | re.I | re.M | re.S)
+ wpa1_pattern = re.compile('(WPA Version 1)',re.DOTALL | re.I | re.M | re.S)
+ wpa2_pattern = re.compile('(WPA2)',re.DOTALL | re.I | re.M | re.S)
+
+ #####
+ ## PREPARE THE INTERFACE
+ #####
+
+ #prepare the interface for scanning
+ #note that this must be run as root, otherwise we're gonna have trouble
+ misc.Run('ifconfig ' + self.wireless_interface + ' up')
+
+ essid = misc.Noneify(essid)
+ if not essid == None:
+ #if there is a hidden essid, we need to tell the computer what it is
+ #then when it is scanned it will be recognized
+ print "setting hidden essid..." + essid
+ misc.Run('iwconfig ' + self.wireless_interface + ' essid "' + essid + '"')
+
+ #####
+ ## RUN THE SCAN
+ #####
+
+ #run iwlist scan and get the avaliable networks
+ #save them to scan_data - all in one big string
+ scandata = misc.Run('iwlist ' + self.wireless_interface + ' scan')
+
+ #####
+ ## PROCESS THE DATA
+ #####
+
+ #split the networks apart, using Cell as our split point
+ #this way we can look at only one network at a time
+ networks = scandata.split( ' Cell ' )
+
+ #declare
+ i=0
+ #make an array for the aps
+ aps = {}
+ for cell in networks:
+ #search to see if there is an essid in this section
+ #if there isn't, that means that it is useless
+ #so we don't use it then
+
+ #set essid to the value, this is just a temp variable
+ if cell.count("ESSID:") > 0:
+ #since an essid was found,
+ #we will extract the rest of the info
+ #make a dictionary for the data
+ CurrentNetwork = {}
+
+ #use the RunRegex function to neaten up our code
+ #all it does for us is run the regex on the string
+ #and return the result
+ #but it makes this code look pretty
+
+ CurrentNetwork["essid"] = misc.RunRegex(essid_pattern,cell)
+
+ if CurrentNetwork["essid"] == "":
+ CurrentNetwork["hidden"] = True
+ #change the name so it doesn't screw stuff up
+ #because it looks like HTML - GTK no like
+ CurrentNetwork["essid"] = "Hidden"
+ else:
+ CurrentNetwork["hidden"] = False
+
+ CurrentNetwork["channel"] = misc.RunRegex(channel_pattern,cell)
+ CurrentNetwork["bssid"] = misc.RunRegex(ap_mac_pattern,cell)
+ print " ##### " + CurrentNetwork["bssid"]
+ CurrentNetwork["mode"] = misc.RunRegex(mode_pattern,cell)
+
+ #since encryption needs a True or False
+ #we have to do a simple if then to set it
+ if misc.RunRegex(wep_pattern,cell) == "on":
+ CurrentNetwork["encryption"] = True
+ #set this, because if it is something else this will be overwritten
+ CurrentNetwork["encryption_method"] = "WEP"
+
+ if misc.RunRegex(wpa1_pattern,cell) == "WPA Version 1":
+ CurrentNetwork["encryption_method"] = "WPA"
+
+ if misc.RunRegex(wpa2_pattern,cell) == "WPA2":
+ CurrentNetwork["encryption_method"] = "WPA2"
+ else:
+ CurrentNetwork["encryption"] = False
+ #end If
+
+ #since stength needs a -1 if the quality isn't found
+ #we need a simple if then to set it
+ if misc.RunRegex(strength_pattern,cell):
+ CurrentNetwork["quality"] = misc.RunRegex(strength_pattern,cell)
+ else:
+ CurrentNetwork["quality"] = -1
+ #end If
+
+ #add this network to the list of networks
+ aps[ i ] = CurrentNetwork
+ #now increment the counter
+ i+=1
+ #end For
+
+ #run a bubble sort
+ #to list networks by signal strength
+ going = True
+
+ while going:
+ sorted = False
+ for i in aps:
+ #set x to the current number
+ x = int(i)
+ #set y to the next number
+ y = int(i+1)
+
+ #only run this if we actually have another element after the current one
+ if (len(aps) > i+1):
+
+ #move around depending on qualities
+ #we want the lower qualities at the bottom of the list
+ #so we check to see if the quality below the current one
+ #is higher the current one
+ #if it is, we swap them
+
+ if (int(aps[int(y)]["quality"]) > int(aps[int(x)]["quality"])):
+ #set sorted to true so we don't exit
+ sorted=True
+ #do the move
+ temp=aps[y]
+ aps[y]=aps[x]
+ aps[x]=temp
+ #end If
+ #end If
+ #end For
+
+ if (sorted == False):
+ going = False
+ #end If
+ #end While
+
+ #return the list of sorted access points
+ return aps
+
+ #end Function Scan
+
+ def Connect(self,network):
+ #call the thread, so we don't hang up the entire works
+ self.ConnectingThread = self.ConnectThread(network,self.wireless_interface,self.wired_interface,self.wpa_driver)
+ self.ConnectingThread.start()
+ return True
+
+ class ConnectThread(threading.Thread):
+ IsConnecting = None
+ ConnectingMessage = None
+ ShouldDie = False
+ lock = thread.allocate_lock()
+
+ def __init__(self,network,wireless,wired,wpa_driver):
+ threading.Thread.__init__(self)
+ self.network = network
+ self.wireless_interface = wireless
+ self.wired_interface = wired
+ self.wpa_driver = wpa_driver
+ self.IsConnecting = False
+ self.lock.acquire()
+ self.ConnectingMessage = 'interface_down'
+ self.lock.release()
+ #lock = thread.allocate_lock()
+
+ def GetStatus(self):
+ print "status request"
+ print "acqlock",self.lock.acquire()
+ print " ...lock acquired..."
+ message = self.ConnectingMessage
+ #return "bob" #self.ConnectingMessage
+ self.lock.release()
+ print " ...lock released..."
+ return message
+
+ def run(self):
+ #note that we don't put the wired interface down
+ #but we do flush all wired entries from the routing table
+ #so it shouldn't be used at all.
+
+ self.IsConnecting = True
+ network = self.network
+
+ #put it down
+ print "interface down..."
+ self.lock.acquire()
+ self.ConnectingMessage = 'interface_down'
+ self.lock.release()
+ #misc.Run("ifconfig " + self.wireless_interface + " down")
+
+ #set a false ip so that when we set the real one, the correct
+ #routing entry is created
+ print "Setting false ip..."
+ self.lock.acquire()
+ self.ConnectingMessage = 'resetting_ip_address'
+ self.lock.release()
+
+ misc.Run("ifconfig " + self.wired_interface + " 0.0.0.0")
+ misc.Run("ifconfig " + self.wireless_interface + " 0.0.0.0")
+
+ #bring it up
+ print "interface up..."
+ self.lock.acquire()
+ self.ConnectingMessage = 'interface_up'
+ self.lock.release()
+
+ print misc.Run("ifconfig " + self.wireless_interface + " up")
+
+ print "killing wpa_supplicant, dhclient, dhclient3"
+ self.lock.acquire()
+ self.ConnectingMessage = 'removing_old_connection'
+ self.lock.release()
+
+ misc.Run("killall dhclient dhclient3 wpa_supplicant")
+
+ #check to see if we need to generate a PSK
+
+ if not network.get('key')== None:
+ self.lock.acquire()
+ self.ConnectingMessage = 'generating_psk'
+ self.lock.release()
+
+ print "generating psk..."
+ key_pattern = re.compile('network={.*?\spsk=(.*?)\n}.*',re.DOTALL | re.I | re.M | re.S)
+ network["psk"] = misc.RunRegex(key_pattern,misc.Run('wpa_passphrase "' + network["essid"] + '" "' + network["key"] + '"'))
+ #generate the wpa_supplicant file...
+ if not network.get('enctype') == None:
+ self.lock.acquire()
+ self.ConnectingMessage = 'generating_wpa_config'
+ self.lock.release()
+
+ print "generating wpa_supplicant configuration file..."
+ misc.ParseEncryption(network)
+ print "wpa_supplicant -B -i " + self.wireless_interface + " -c \"encryption/configurations/" + network["bssid"].replace(":","").lower() + "\" -D " + self.wpa_driver
+ misc.Run("wpa_supplicant -B -i " + self.wireless_interface + " -c \"encryption/configurations/" + network["bssid"].replace(":","").lower() + "\" -D " + self.wpa_driver)
+
+ print "flushing the routing table..."
+ self.lock.acquire()
+
+ self.ConnectingMessage = 'flushing_routing_table'
+ self.lock.release()
+
+ misc.Run("ip route flush dev " + self.wireless_interface)
+ misc.Run("ip route flush dev " + self.wired_interface)
+
+ print "configuring the wireless interface..."
+ self.lock.acquire()
+
+ self.ConnectingMessage = 'configuring_interface'
+ self.lock.release()
+
+ if network["mode"].lower() == "master":
+ misc.Run("iwconfig " + self.wireless_interface + " mode managed")
+ else:
+ misc.Run("iwconfig " + self.wireless_interface + " mode " + network["mode"])
+
+ misc.Run("iwconfig " + self.wireless_interface + " essid \"" + network["essid"] + "\" channel " + str(network["channel"])) + " ap " + network["bssid"]
+
+ if not network.get('broadcast') == None:
+ self.lock.acquire()
+
+ self.ConnectingMessage = 'setting_broadcast_address'
+ self.lock.release()
+
+ print "setting the broadcast address..." + network["broadcast"]
+ misc.Run("ifconfig " + self.wireless_interface + " broadcast " + network["broadcast"])
+
+
+ if not network.get('dns1') == None:
+ self.lock.acquire()
+
+ self.ConnectingMessage = 'setting_static_dns'
+ self.lock.release()
+ # dns1)
+ print "setting the first and second dns servers..."
+ resolv = open("/etc/resolv.conf","w")
+ misc.WriteLine(resolv,"nameserver " + network["dns1"])
+ misc.WriteLine(resolv,"nameserver " + network["dns2"])
+ if not network["dns3"] == None:
+ print "setting the third dns server..."
+ misc.WriteLine(resolv,"nameserver " + network["dns3"])
+
+ if not network.get('ip') == None:
+ self.lock.acquire()
+
+ self.ConnectingMessage = 'setting_static_ip'
+ self.lock.release()
+
+ print "setting static ips..."
+ misc.Run("ifconfig " + self.wireless_interface + " " + network["ip"] )
+ misc.Run("ifconfig " + self.wireless_interface + " netmask " + network["netmask"] )
+ print "adding default gateway..." + network["gateway"]
+ misc.Run("route add default gw " + network["gateway"])
+ else:
+ #run dhcp...
+ self.lock.acquire()
+
+ self.ConnectingMessage = 'running_dhcp'
+ self.lock.release()
+
+ print "running dhcp..."
+ if not self.ShouldDie:
+ misc.Run("dhclient " + self.wireless_interface)
+
+ self.lock.acquire()
+ self.ConnectingMessage = 'done'
+ self.lock.release()
+
+ print "done"
+ self.IsConnecting = False
+
+
+
+ #end function Connect
+ #end class Connect
+
+ def GetSignalStrength(self):
+ output = misc.Run("iwconfig " + self.wireless_interface)
+ strength_pattern = re.compile('.*Quality:?=? ?(\d+)',re.DOTALL | re.I | re.M | re.S)
+ return misc.RunRegex(strength_pattern,output)
+ #end function GetSignalStrength#end function GetSignalStrength
+
+ def GetCurrentNetwork(self):
+ output = misc.Run("iwconfig " + self.wireless_interface)
+ essid_pattern = re.compile('.*ESSID:"(.*?)"',re.DOTALL | re.I | re.M | re.S)
+ return misc.RunRegex(essid_pattern,output)
+ #end function GetCurrentNetwork
+
+ def GetIP(self):
+ output = misc.Run("ifconfig " + self.wireless_interface)
+ ip_pattern = re.compile(r'inet [Aa]d?dr[^.]*:([^.]*\.[^.]*\.[^.]*\.[0-9]*)',re.S)
+ return misc.RunRegex(ip_pattern,output)
+
+ def CreateAdHocNetwork(self,essid,channel,ip,enctype,key,encused):
+ misc.Run("killall dhclient dhclient3 wpa_supplicant") #remove wpa_supplicant, as it can cause the connection to revert to
+ #previous networks...
+ misc.Run('ifconfig ' + self.wireless_interface + ' down')
+ misc.Run('iwconfig ' + self.wireless_interface + ' mode ad-hoc')
+ misc.Run('iwconfig ' + self.wireless_interface + ' channel ' + channel)
+ misc.Run('iwconfig ' + self.wireless_interface + ' essid ' + essid)
+ #Right now it just assumes you're using WEP
+ if encused == True:
+ misc.Run('iwconfig ' + self.wireless_interface + ' key ' + key)
+ misc.Run('ifconfig ' + self.wireless_interface + ' up')
+ misc.Run('ifconfig ' + self.wireless_interface + ' inet ' + ip)
+ #end function CreateAdHocNetwork
+
+ def DetectWirelessInterface(self):
+ return misc.RunRegex(re.compile('(\w*)\s*\w*\s*[a-zA-Z0-9.-_]*\s*(?=ESSID)',re.DOTALL | re.I | re.M | re.S),misc.Run("iwconfig"))
+
+ def Disconnect(self):
+ misc.Run('ifconfig ' + self.wired_interface + ' 0.0.0.0')
+ misc.Run('ifconfig ' + self.wired_interface + ' down')
+ misc.Run('ifconfig ' + self.wireless_interface + ' 0.0.0.0')
+ misc.Run('ifconfig ' + self.wireless_interface + ' down')
+
+
+#end class Wireless
+
+class Wired:
+
+ wireless_interface = None
+ wired_interface = None
+ ConnectingThread = None
+
+ def GetIP(self):
+ output = misc.Run("ifconfig " + self.wired_interface)
+ ip_pattern = re.compile(r'inet [Aa]d?dr[^.]*:([^.]*\.[^.]*\.[^.]*\.[0-9]*)',re.S)
+ return misc.RunRegex(ip_pattern,output)
+
+ def CheckPluggedIn(self):
+ mii_tool_data = misc.Run( 'mii-tool ' + self.wired_interface,True)
+ if not misc.RunRegex(re.compile('(Invalid argument)',re.DOTALL | re.I | re.M | re.S),mii_tool_data) == None:
+ print 'wired interface appears down, putting up for mii-tool check'
+ misc.Run( 'ifconfig ' + self.wired_interface + ' up' )
+ mii_tool_data = misc.Run( 'mii-tool ' + self.wired_interface)
+ if not misc.RunRegex(re.compile('(link ok)',re.DOTALL | re.I | re.M | re.S),mii_tool_data) == None:
+ return True
+ else:
+ return False
+ #end function CheckPluggedIn
+
+ def Connect(self,network):
+ #call the thread, so we don't hang up the entire works
+ self.ConnectingThread = self.ConnectThread(network,self.wireless_interface,self.wired_interface)
+ self.ConnectingThread.start()
+ return True
+ #end function Connect
+
+ class ConnectThread(threading.Thread):
+ #wired interface connect thread
+ lock = thread.allocate_lock()
+ ConnectingMessage = None
+ ShouldDie = False
+
+ def __init__(self,network,wireless,wired):
+ threading.Thread.__init__(self)
+ self.network = network
+ self.wireless_interface = wireless
+ self.wired_interface = wired
+ self.IsConnecting = False
+ self.lock.acquire()
+ self.ConnectingMessage = 'interface_down'
+ self.lock.release()
+ #end function __init__
+
+ def GetStatus(self):
+ self.lock.acquire()
+ print " ...lock acquired..."
+ message = self.ConnectingMessage
+ self.lock.release()
+ print " ...lock released..."
+ return message
+
+ def run(self):
+ #we don't touch the wifi interface
+ #but we do remove all wifi entries from the
+ #routing table
+
+ self.IsConnecting = True
+ network = self.network
+
+ #put it down
+ self.lock.acquire()
+ self.ConnectingMessage = 'interface_down'
+ self.lock.release()
+ print "interface down...", self.wired_interface
+ misc.Run("ifconfig " + self.wired_interface + " down")
+
+ #set a false ip so that when we set the real one, the correct
+ #routing entry is created
+ self.lock.acquire()
+ self.ConnectingMessage = 'resetting_ip_address'
+ self.lock.release()
+ print "setting false ip... 0.0.0.0 on", self.wired_interface
+ misc.Run("ifconfig " + self.wired_interface + " 0.0.0.0")
+ misc.Run("ifconfig " + self.wireless_interface + " 0.0.0.0")
+
+ #bring it up
+ self.lock.acquire()
+ self.ConnectingMessage = 'interface_up'
+ self.lock.release()
+ print "interface up...", self.wired_interface
+ misc.Run("ifconfig " + self.wired_interface + " up")
+
+ print "killing wpa_supplicant, dhclient, dhclient3"
+ self.lock.acquire()
+ self.ConnectingMessage = 'removing_old_connection'
+ self.lock.release()
+ misc.Run("killall dhclient dhclient3 wpa_supplicant")
+
+ print "flushing the routing table..."
+ self.lock.acquire()
+ self.ConnectingMessage = 'flushing_routing_table'
+ self.lock.release()
+ misc.Run("ip route flush dev " + self.wireless_interface)
+ misc.Run("ip route flush dev " + self.wired_interface)
+
+ if not network.get("broadcast") == None:
+ self.lock.acquire()
+ self.ConnectingMessage = 'setting_broadcast_address'
+ self.lock.release()
+ print "setting the broadcast address..." + network["broadcast"]
+ misc.Run("ifconfig " + self.wired_interface + " broadcast " + network["broadcast"])
+
+ if not network.get("dns1") == None:
+ self.lock.acquire()
+ self.ConnectingMessage = 'setting_static_dns'
+ self.lock.release()
+ print "setting the first and second dns servers...", network["dns2"], network["dns2"]
+ resolv = open("/etc/resolv.conf","w")
+ misc.WriteLine(resolv,"nameserver " + network["dns1"])
+ misc.WriteLine(resolv,"nameserver " + network["dns2"])
+ if not network.get("dns3") == None:
+ print "setting the third dns server..."
+ misc.WriteLine(resolv,"nameserver " + network["dns3"])
+
+ if not network.get("ip") == None:
+ self.lock.acquire()
+ self.ConnectingMessage = 'setting_static_ip'
+ self.lock.release()
+ print "setting static ips...", network["ip"]
+ misc.Run("ifconfig " + self.wired_interface + " " + network["ip"])
+ misc.Run("ifconfig " + self.wired_interface + " netmask " + network["netmask"])
+ print "adding default gateway..." + network["gateway"]
+ misc.Run("route add default gw " + network["gateway"])
+ else:
+ #run dhcp...
+ self.lock.acquire()
+ self.ConnectingMessage = 'running_dhcp'
+ self.lock.release()
+ print "running dhcp..."
+ if not self.ShouldDie:
+ misc.Run("dhclient " + self.wired_interface)
+
+ self.lock.acquire()
+ self.ConnectingMessage = 'done'
+ self.lock.release()
+ self.IsConnecting = False
+ #end function run
diff --git a/translations/en_US.po b/translations/en_US.po
new file mode 100644
index 0000000..b10e8e5
--- /dev/null
+++ b/translations/en_US.po
@@ -0,0 +1,252 @@
+# English translations for PACKAGE package.
+# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# root , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-13 20:40+0900\n"
+"PO-Revision-Date: 2007-04-13 20:41+0900\n"
+"Last-Translator: Adam Blackburn \n"
+"Language-Team: English \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ASCII\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: gui.py:36
+msgid "Connect"
+msgstr "Connect"
+
+#: gui.py:37
+msgid "IP"
+msgstr "IP"
+
+#: gui.py:38
+msgid "Netmask"
+msgstr "Netmask"
+
+#: gui.py:39
+msgid "Gateway"
+msgstr "Gateway"
+
+#: gui.py:40
+msgid "DNS"
+msgstr "DNS"
+
+#: gui.py:41
+msgid "Use Static IPs"
+msgstr "Use Static IPs"
+
+#: gui.py:42
+msgid "Use Static DNS"
+msgstr "Use Static DNS"
+
+#: gui.py:43
+msgid "Use Encryption"
+msgstr "Use Encryption"
+
+#: gui.py:44
+msgid "Advanced Settings"
+msgstr "Advanced Settings"
+
+#: gui.py:45
+msgid "Wired Network"
+msgstr "Wired Network"
+
+#: gui.py:46
+msgid ""
+"To connect to a wired network, you must create a network profile. To create "
+"a network profile, type a name that describes this network, and press Add"
+msgstr ""
+"To connect to a wired network, you must create a network profile. To create "
+"a network profile, type a name that describes this network, and press Add"
+
+#: gui.py:47
+msgid "Automatically connect to this network"
+msgstr "Automatically connect to this network"
+
+#: gui.py:48
+msgid "Secured"
+msgstr "Secured"
+
+#: gui.py:49
+msgid "Unsecured"
+msgstr "Unsecured"
+
+#: gui.py:50
+msgid "Channel"
+msgstr "Channel"
+
+#: gui.py:51
+msgid "Preferences"
+msgstr "Preferences"
+
+#: gui.py:52
+msgid "WPA Supplicant Driver"
+msgstr "WPA Supplicant Driver"
+
+#: gui.py:53
+msgid "Wireless Interface"
+msgstr "Wireless Interface"
+
+#: gui.py:54
+msgid "Wired Interface"
+msgstr "Wired Interface"
+
+#: gui.py:55
+msgid "Hidden Network"
+msgstr "Hidden Network"
+
+#: gui.py:56
+msgid "Hidden Network ESSID"
+msgstr "Hidden Network ESSID"
+
+#: gui.py:57
+msgid "Connected to $A at $B% (IP: $C)"
+msgstr "Connected to $A at $B% (IP: $C)"
+
+#: gui.py:58
+msgid "Connected to wired network (IP: $A)"
+msgstr "Connected to wired network (IP: $A)"
+
+#: gui.py:59
+msgid "Not connected"
+msgstr "Not connected"
+
+#: gui.py:60
+msgid "No wireless networks found."
+msgstr "No wireless networks found."
+
+#: gui.py:61
+msgid "Key"
+msgstr "Key"
+
+#: gui.py:62
+msgid "Username"
+msgstr "Username"
+
+#: gui.py:63
+msgid "Password"
+msgstr "Password"
+
+#: gui.py:64
+msgid "Anonymous Identity"
+msgstr "Anonymous Identity"
+
+#: gui.py:65
+msgid "Identity"
+msgstr "Identity"
+
+#: gui.py:66
+msgid "Authentication"
+msgstr "Authentication"
+
+#: gui.py:67
+msgid "Path to PAC File"
+msgstr "Path to PAC File"
+
+#: gui.py:68
+msgid "Choose from the networks below:"
+msgstr "Choose from the networks below:"
+
+#: gui.py:69
+msgid "Connecting..."
+msgstr "Connecting..."
+
+#: gui.py:71
+msgid "0"
+msgstr "0"
+
+#: gui.py:72
+msgid "1"
+msgstr "1"
+
+#: gui.py:73
+msgid "2"
+msgstr "2"
+
+#: gui.py:74
+msgid "3"
+msgstr "3"
+
+#: gui.py:75
+msgid "4"
+msgstr "4"
+
+#: gui.py:76
+msgid "5"
+msgstr "5"
+
+#: gui.py:77
+msgid "6"
+msgstr "6"
+
+#: gui.py:78
+msgid "7"
+msgstr "7"
+
+#: gui.py:79
+msgid "8"
+msgstr "8"
+
+#: gui.py:80
+msgid "9"
+msgstr "9"
+
+#: gui.py:82
+msgid "Putting interface down..."
+msgstr "Putting interface down..."
+
+#: gui.py:83
+msgid "Resetting IP address..."
+msgstr "Resetting IP address..."
+
+#: gui.py:84
+msgid "Putting interface up..."
+msgstr "Putting interface up..."
+
+#: gui.py:85
+msgid "Removing old connection..."
+msgstr "Removing old connection..."
+
+#: gui.py:86
+msgid "Generating PSK..."
+msgstr "Generating PSK..."
+
+#: gui.py:87
+msgid "Generating WPA configuration file..."
+msgstr "Generating WPA configuration file..."
+
+#: gui.py:88
+msgid "Flushing the routing table..."
+msgstr "Flushing the routing table..."
+
+#: gui.py:89
+msgid "Configuring wireless interface..."
+msgstr "Configuring wireless interface..."
+
+#: gui.py:90
+msgid "Setting broadcast address..."
+msgstr "Setting broadcast address..."
+
+#: gui.py:91
+msgid "Setting static DNS servers..."
+msgstr "Setting static DNS servers..."
+
+#: gui.py:92
+msgid "Setting static IP addresses..."
+msgstr "Setting static IP addresses..."
+
+#: gui.py:93
+msgid "Obtaining IP address..."
+msgstr "Obtaining IP address..."
+
+#: gui.py:95
+msgid "Done connecting..."
+msgstr "Done connecting..."
+
+msgid "To connect to a wired network, you must create a network profile. To create a network profile, type a name that describes this network, and press Add."
+msgstr "To connect to a wired network, you must create a network profile. To create a network profile, type a name that describes this network, and press Add."
diff --git a/translations/en_US/LC_MESSAGES/wicd.mo b/translations/en_US/LC_MESSAGES/wicd.mo
new file mode 100644
index 0000000000000000000000000000000000000000..45525714cba2bb3bd40498f6fc7424b7d5af2b06
GIT binary patch
literal 4053
zcmeH|&2tn*7{*&gg@u5CfPhG&L5O6Q%?A)Rgv#av+=3)acKJ9u+3DR3%ua9h%p|T=
z6kfb|kn-TiLD2)=t&-wKS&AMk{R6C`%7bP3aj`t;#gor7+nWT`JBM`bJHP4ap10qA
zpSO2@*s|swfi?_#7WU^OLd<~QJ%$U~+Q)^!BeBkMy=9l>CdZi{M`H8n_Sq$UgtVKK}-M0ndK}yTGm|gkZ?KLHgYb?g9Hj
z`YVB4_Y&9*UIw}Db?|BM2KXrW8Mqd_4btD|Am6_W?gqaFx!y0}4)8CK^SdzVDR4Wu
z9y|c<1P4IQn*w)%%JyFe@e}Xk!n}VBGTuAjbKpJjUGQ)4J@9QTvJULQg>es9j#-`q
z8OJN&HqZw*f!9FBdmUt6J_N5q&`&|?nnkc=&a&Tf(DJC|kY(QTgyl)gQIPo^1G!EG
zWSn(yKezy5E8+u?y50n->sR*q&-VH6Aa&iip&fTWNF7E&`keror;8x{B_P+m3R2hW
zAlJPGQrEj6b^RV>e(r(v_Y=tXe+8-QA0YFz0T=4E3*`KMkh%_o2u+*?sp}<>^9)E`
z-?aTtK>ED{QrE9R#`_~kT^Ss8-3wCJ+aRP6(-4bsU$U%QE`W^V4UoFN1>z@e;sTfA
z7RbDO2~tPqn&ZqN$NOPyJuv3!7&~Z3VT}7Q>FNSj%|ck7TIg
zMQyH#@p%^m0jPDPWX*W;LJV&yolhDgzEbeSWd17WRcKwjC6-(0f
zJcFz<#F86DkjKMKJkLCq3ghw=LK7vUYRV`SLnKN`S`5oFNKY?@>HGg0Nt%22O7NLg7x`G7npQJC@a&eC1Q08_#Ztts36TQ9
znlC5KW`KW&FqRX>hfd;RdJv1918w`A^5tz9pwl;i+x%ee
zQ0{mxhl$RtTJY)ozvuO}=bc44Iu+xFQQ*efxjWIgbsd3i#Gqp|g+vNfYr&G;(xqO3OclbNaF)a3Gx
z`?9$V{`g}2?>ZIKSzgBK)%b8Tz_A{d)p^(8RE-qMn+eFZ#^@
literal 0
HcmV?d00001
diff --git a/translations/es_ES.po b/translations/es_ES.po
new file mode 100644
index 0000000..0e7abbd
--- /dev/null
+++ b/translations/es_ES.po
@@ -0,0 +1,191 @@
+# Spanish translations for PACKAGE package.
+# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Adam Blackburn , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-13 20:40+0900\n"
+"PO-Revision-Date: 2007-04-26 20:58+0900\n"
+"Last-Translator: Adam Blackburn \n"
+"Language-Team: Spanish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+msgid "English"
+msgstr "Español"
+
+msgid "Connect"
+msgstr "Conectar"
+
+msgid "IP"
+msgstr "IP"
+
+msgid "Netmask"
+msgstr "Máscara de subred"
+
+msgid "Gateway"
+msgstr "Puerta de enlace"
+
+msgid "DNS"
+msgstr "DNS"
+
+msgid "Use Static IPs"
+msgstr "Utilizar IP estática"
+
+msgid "Use Static DNS"
+msgstr "Utilizar DNS estática"
+
+msgid "Use Encryption"
+msgstr "Utilizar cifrado"
+
+msgid "Advanced Settings"
+msgstr "Opciones Avanzadas"
+
+msgid "Wired Network"
+msgstr "Red cableada"
+
+msgid "Automatically connect to this network"
+msgstr "Conectarse automáticamente a esta red"
+
+msgid "Secured"
+msgstr "Segura"
+
+msgid "Unsecured"
+msgstr "No segura"
+
+msgid "Channel"
+msgstr "Canal"
+
+msgid "Preferences"
+msgstr "Preferencias"
+
+msgid "WPA Supplicant Driver"
+msgstr "Driver WPA supplicant"
+
+msgid "Wireless Interface"
+msgstr "Interfaz inalámbrica"
+
+msgid "Wired Interface"
+msgstr "Interfaz cableada"
+
+msgid "Hidden Network"
+msgstr "Red oculta"
+
+msgid "Hidden Network ESSID"
+msgstr "ESSID de red oculta"
+
+msgid "Connected to $A at $B% (IP: $C)"
+msgstr "Conectado a $A a $B% (IP: $C)"
+
+msgid "Connected to wired network (IP: $A)"
+msgstr "Conectado a red cableada (IP: $A)"
+
+msgid "Not connected"
+msgstr "No conectado"
+
+msgid "No wireless networks found."
+msgstr "No se encontraron redes inalámbricas."
+
+msgid "Key"
+msgstr "Clave"
+
+msgid "Username"
+msgstr "Nombre de usuario"
+
+msgid "Password"
+msgstr "Contraseña"
+
+msgid "Anonymous Identity"
+msgstr "Identidad anónima"
+
+msgid "Identity"
+msgstr "Identidad"
+
+msgid "Authentication"
+msgstr "Autentificación"
+
+msgid "Path to PAC File"
+msgstr "Ruta al archivo PAC"
+
+msgid "Choose from the networks below:"
+msgstr "Seleccione una de las siguientes redes:"
+
+msgid "Connecting..."
+msgstr "Conectando..."
+
+msgid "0"
+msgstr "0"
+
+msgid "1"
+msgstr "1"
+
+msgid "2"
+msgstr "2"
+
+msgid "3"
+msgstr "3"
+
+msgid "4"
+msgstr "4"
+
+msgid "5"
+msgstr "5"
+
+msgid "6"
+msgstr "6"
+
+msgid "7"
+msgstr "7"
+
+msgid "8"
+msgstr "8"
+
+msgid "9"
+msgstr "9"
+
+msgid "Putting interface down..."
+msgstr "Desconectando interfaz..."
+
+msgid "Resetting IP address..."
+msgstr "Reseteando dirección IP..."
+
+msgid "Putting interface up..."
+msgstr "Levantando interfaz..."
+
+msgid "Removing old connection..."
+msgstr "Eliminando conexión antigua..."
+
+msgid "Generating PSK..."
+msgstr "Generando PSK..."
+
+msgid "Generating WPA configuration file..."
+msgstr "Generando archivo de configuración WPA..."
+
+msgid "Flushing the routing table..."
+msgstr "Liberando tabla de rutas..."
+
+msgid "Configuring wireless interface..."
+msgstr "Configurando red inalámbrica..."
+
+msgid "Setting broadcast address..."
+msgstr "Especificando dirección broadcast..."
+
+msgid "Setting static DNS servers..."
+msgstr "Especificando direcciones DNS estáticas..."
+
+msgid "Setting static IP addresses..."
+msgstr "Especificando direcciones IP estáticas..."
+
+msgid "Obtaining IP address..."
+msgstr "Obteniendo dirección IP..."
+
+msgid "Done connecting..."
+msgstr "Conexión realizada..."
+
+msgid "To connect to a wired network, you must create a network profile. To create a network profile, type a name that describes this network, and press Add"
+msgstr "Para conectarse a una red cableada, debe crear un perfil de red. Para hacerlo, escriba un nombre que describa la red y pulse añadir"
+
diff --git a/translations/es_ES/LC_MESSAGES/wicd.mo b/translations/es_ES/LC_MESSAGES/wicd.mo
new file mode 100644
index 0000000000000000000000000000000000000000..e811e2c536375565d19c198da50b48e246e7182f
GIT binary patch
literal 3853
zcmZ{mTWnlM8OMiSpmiHcTS6(J?UW=XA>Pf}xzt@ZRX4U1R&nCRYqvZg!R$HX-P4?N
zW|=w1?&gIDct8S#5K60ZQHd&Xd86e8sZyoZimIx8XoZB}g_np2c&UUc@l?V8KRdf?
z$1w8j@0^)$zxn37t^ao4ZC3@xJmwcMKl+3aE8usfK3+l9cAxHIsszMO@F3Rz0qz6$
zeNqUTd;p~0M?mVC1s?+I;r;6%&;J&92(%#2e-ZpF_-pVM@OAJG@C}f9-v+7gUGM<-
zCy?iU2tELQ3{rkSggyg44BiDE2Ok9ILCURzUjVc4{(TUC;#c^f|9=b8-s|AQ;0^Ev
z@D?b)6MPAzy{`nm7WgKJKk+_3_Je-~?*TsqY3F}H`eh%KJcocvka7LN)Q~?4{Bht<
z0)HBKHSop2mjZtt_)C!bUk-c?q#v$>kAZ&%5i0R9_+{``I7foVK$s?$LEd{EWV{_n
zyRU-u|103i-=GmEt-`Js*Jh6Mx4CSxcPGOdbCQEG;r&LV8Xo8qj#b1HR4T`M>>{mT@*>)b)u1*e2|&a$!4tcA}I!<
zQ5HQuMyg0m&R3J+F;ZzdkdeuA9Tl=LvgjpF=DOH2_Oe*$DQu*mF;2@3YcdGv(Y})%
zotmw>STOlU(k(3xms^R|sdi2#d7uC
zckfeGJUT4MG{!PGjG7lOwZ)>z_2?2|c`5IviR+1TY3X{ji*{R6(m}FNoz$CkUKM&v
z4a9k!YYTT^uhqUlwL4axZ8fOe-_UzcZY0C6e>I8WUwJ9GYxk>MYPXw5t;@6yDUat>jN@lf>W&sJkW
zo`Y$kW%Y)(8cE?qtMo}R35Sf$R_?#QXQ%9QeN|^>lgF7f9+`oh8E&~@j@@KRTSp~g
zB|-+ujx{Qdlq+`HJKA&w6Hg*=(rLS?t-sApyOXPGzrAKgrtqf9`)-^Y({f-+nUy#%
zvKldkK=7&TTjRqeB~|>N-Dz12`ucjmKC`siZmwLKTGf4Hi^@gUP2$Sgvg;~qrY@&i
zD{GYnx&>dVEW&qnIa{keUa6g|%$&eu{bcP}?TK0qf|XUhnNaynaM4sJ*pM>_
zF%>oHM6#$BRIXB#R;nX^j4X47^pvS`(xL4p{DPyXc9UL=JT+WH;j47}TGp}9%^Dt^
zI(mSZ@~wDJC#G?Jmue#ROk8bOAEpG(p<4D~s(zkV!@(*|=m~BuxxU(d)udt>^@I>W
zCp)mege?m->}I95xG?UebL5H+9hkzqS~3@uje5zZp>Q;6%-*FE^)&2Lu{2Sc7E1Uo
zOi5lMtc`mz;v*JPwW-C$?Q1Sl)*Il;4usjE5gBw*WSLdg@K$i~E{8fcYZ@{16??VL
z5fB&|qf8MndZXD2j)xwnw_jCa71x$39p41SI_cU8@@En4XQ-9B!f)vns#(@ZGVk_X
z%S&mJA=H%S7l&bhAQHp}VO66ZwBO%jSzF`B8?JJF9r^sc$^LOW57FE!g%h3c=*Ze(
z8vCIBPmNv{{e8D+i_Q;M_7&mNd}roOBZ?hF9Jyt&Df{^MB1uDNtI{jzA#-eMrlFkO
zTTw1INPaE9U24dNWh5U}4`jbgS$>EKyfO^A_r-dVFoCUvLoBL5j2HO3H8y>+yz@fP
n, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Wicd 1.2.6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-13 20:40+0900\n"
+"PO-Revision-Date: 2007-04-22 00:09+0300\n"
+"Last-Translator: Jari Rahkonen \n"
+"Language-Team: Finnish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+msgid "Connect"
+msgstr "Yhdistä"
+
+msgid "IP"
+msgstr "IP"
+
+msgid "Netmask"
+msgstr "Verkon peite"
+
+msgid "Gateway"
+msgstr "Yhdyskäytävä"
+
+msgid "DNS"
+msgstr "DNS"
+
+msgid "Use Static IPs"
+msgstr "Kiinteä IP"
+
+msgid "Use Static DNS"
+msgstr "Kiinteä DNS"
+
+msgid "Use Encryption"
+msgstr "Käytä salausta"
+
+msgid "Advanced Settings"
+msgstr "Lisäasetukset"
+
+msgid "Wired Network"
+msgstr "Lähiverkko"
+
+msgid "Automatically connect to this network"
+msgstr "Yhdistä tähän verkkoon automaattisesti"
+
+msgid "Secured"
+msgstr "Salattu"
+
+msgid "Unsecured"
+msgstr "Salaamaton"
+
+msgid "Channel"
+msgstr "Kanava"
+
+msgid "Preferences"
+msgstr "Asetukset"
+
+msgid "WPA Supplicant Driver"
+msgstr "WPA Supplicant -ajuri"
+
+msgid "Wireless Interface"
+msgstr "Langaton verkkolaite"
+
+msgid "Wired Interface"
+msgstr "Lähiverkkolaite"
+
+msgid "Hidden Network"
+msgstr "Piilotettu verkko"
+
+msgid "Hidden Network ESSID"
+msgstr "Piilotetun verkon ESSID"
+
+msgid "Connected to $A at $B% (IP: $C)"
+msgstr "Yhdistetty verkkoon $A vahvuudella $B% (IP: $C)"
+
+msgid "Connected to wired network (IP: $A)"
+msgstr "Yhdistetty lähiverkkoon (IP: $A)"
+
+msgid "Not connected"
+msgstr "Ei yhdistetty"
+
+msgid "No wireless networks found."
+msgstr "Langattomia verkkoja ei löydy."
+
+msgid "Key"
+msgstr "Avain"
+
+msgid "Username"
+msgstr "Käyttäjä"
+
+msgid "Password"
+msgstr "Salasana"
+
+msgid "Anonymous Identity"
+msgstr "Anonyymi identiteetti"
+
+msgid "Identity"
+msgstr "Identiteetti"
+
+msgid "Authentication"
+msgstr "Autentikointi"
+
+msgid "Path to PAC File"
+msgstr "PAC-tiedoston polku"
+
+msgid "Choose from the networks below:"
+msgstr "Valitse verkko:"
+
+msgid "Connecting..."
+msgstr "Yhdistetään..."
+
+msgid "0"
+msgstr "0"
+
+msgid "1"
+msgstr "1"
+
+msgid "2"
+msgstr "2"
+
+msgid "3"
+msgstr "3"
+
+msgid "4"
+msgstr "4"
+
+msgid "5"
+msgstr "5"
+
+msgid "6"
+msgstr "6"
+
+msgid "7"
+msgstr "7"
+
+msgid "8"
+msgstr "8"
+
+msgid "9"
+msgstr "9"
+
+msgid "Putting interface down..."
+msgstr "Suljetaan verkkolaite..."
+
+msgid "Resetting IP address..."
+msgstr "Palautetaan IP-osoite..."
+
+msgid "Putting interface up..."
+msgstr "Käynnistetään verkkolaite..."
+
+msgid "Removing old connection..."
+msgstr "Poistetaan vanha yhteys..."
+
+msgid "Generating PSK..."
+msgstr "Luodaan PSK..."
+
+msgid "Generating WPA configuration file..."
+msgstr "Luodaan WPA-asetustiedosto..."
+
+msgid "Flushing the routing table..."
+msgstr "Tyhjennetään reititystaulu..."
+
+msgid "Configuring wireless interface..."
+msgstr "Asetetaan langaton verkkolaite..."
+
+msgid "Setting broadcast address..."
+msgstr "Asetetaan lähetysosoite..."
+
+msgid "Setting static DNS servers..."
+msgstr "Asetetaan kiinteä DNS-palvelin..."
+
+msgid "Setting static IP addresses..."
+msgstr "Asetetaan kiinteä IP-osoite..."
+
+msgid "Obtaining IP address..."
+msgstr "Haetaan IP-osoite..."
+
+msgid "Done connecting..."
+msgstr "Yhdistetty..."
+
+msgid "To connect to a wired network, you must create a network profile. To create a network profile, type a name that describes this network, and press Add."
+msgstr "Yhdistääksesi langalliseen lähiverkkoon sinun täytyy luoda verkkoprofiili. Tee se kirjoittamalla verkkoa kuvaava nimi ja napsauttamalla Lisää-painiketta."
diff --git a/translations/fi_FI/LC_MESSAGES/wicd.mo b/translations/fi_FI/LC_MESSAGES/wicd.mo
new file mode 100644
index 0000000000000000000000000000000000000000..31460504ef2e0842658b1fd6222ae77850dc1b83
GIT binary patch
literal 3702
zcmZ{mO>7)V6~}A8iNg|DV3+SLvI*>x^knRWY%&noiR~nV<7DvI8vz%}(`8S4db&pa
zF`-XL2qX>&5YlQ795`TcKmr5^q!paj;)J*%0T*t32rVBcvjy`E~1ZFWnp`E^yj
zu6p%-`2k0sjES
z{vLcYd>G^7@Co=%_!JboEAU-#!?(wfKlNpPME9>l@%MZ1eejp?MfewZ41R${#NV%Y
ze$(^2kU#YjKW~RG!xQkgQ2hKe6rKMG&lAXFOeXQXGB@SNJ=>m(p39!sJv*K&o~xd>
zq4@PlDC>U~%DNNy4E!QQ8ufiBe*FYWJbwXkN&N|)ga7dT8u3KOt5EdsL7DFklzgyI
z=J^tobzgv@+b)#&z6?e0UqgxKEAWl*?~oKx|MBhn>6H0SK$-s>lsvcs#jiE^R`?kx
z`aAdzSVDR48&Kl;Bj5ikNT}2wq2$Tm;7K^gfG$
z-=%1(te27|=CQ>c1?F&eA5w|a?
z%c>ntOwzZZ?%6z#lI={j6PJ`DS7f>q+9Z$iQnibGAdh{MM=p`38}ZmTaa`)YOA_19
zb?$UNh%%kn{H{xfYH?r~h@o?t)my0>VPNa=OmEuQ-EFBwmuyAbMats(Zj{>CW|@wX
z+@@QmZySwQJZQ&)&EIyakf<<51J+qH@-iK6>g8Uqv!ps*wJ-jPEfvNilMU4^HTGyxxWl)$PsP
zM2Yy;>1q>(DXNN#U6W;mC*&a?h>qR%qP~V}s+-y^n_7|~Q{AFUhFKVN=W6y1
zvCz0Uw`RvK&4bl!I|_rV#da2~yOy5o-d+zDMH1|TC3I`)g=X{Fpm`yfKhI<9Li0@X
za;Wt>)!3&GXpZB;>(*YLYBAxl3F66DE!Hni&i^nTh`B4$VgD
zo6n8M^Nol&HMXLU@oKVNm~9)ZTQh2r$4L@pgSpkt>hf$$^Nr>lS4hqc7OWGomd@?x
z@^j;u1M(5wADEQoObe?Uoo!
z_IB0H!iBOMf0NctGCio2MG70bEO+v9H;Q7%_VdE;XuqeJ%77Y2FH#?c2|-t6JGrID
zIAxXO5OTXwWc+M9M%zfodp|A1vZ0nET~^T&Mbr&5RlU;W_6v>#jS7D%7IPK8hm>zOH6l2%p-SgV0QRdMcteoj4Fx;
LJA6hRK9TBwJzuH;
literal 0
HcmV?d00001
diff --git a/translations/it_IT.po b/translations/it_IT.po
new file mode 100644
index 0000000..0d918f5
--- /dev/null
+++ b/translations/it_IT.po
@@ -0,0 +1,191 @@
+# Italian translations for PACKAGE package.
+# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Adam Blackburn , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-13 20:40+0900\n"
+"PO-Revision-Date: 2007-04-26 20:59+0900\n"
+"Last-Translator: Adam Blackburn \n"
+"Language-Team: Italian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+msgid "English"
+msgstr "Italiano"
+
+msgid "Connect"
+msgstr "Connetti"
+
+msgid "IP"
+msgstr "IP"
+
+msgid "Netmask"
+msgstr "Netmask"
+
+msgid "Gateway"
+msgstr "Gateway"
+
+msgid "DNS"
+msgstr "DNS"
+
+msgid "Use Static IPs"
+msgstr "Usa IP statici"
+
+msgid "Use Static DNS"
+msgstr "Usa DNS statici"
+
+msgid "Use Encryption"
+msgstr "Usa cifratura"
+
+msgid "Advanced Settings"
+msgstr "Opzioni Avanzate"
+
+msgid "Wired Network"
+msgstr "Rete cablata"
+
+msgid "Automatically connect to this network"
+msgstr "Connetti automaticamente a questa rete"
+
+msgid "Secured"
+msgstr "Sicura"
+
+msgid "Unsecured"
+msgstr "Insicura"
+
+msgid "Channel"
+msgstr "Canale"
+
+msgid "Preferences"
+msgstr "Opzioni"
+
+msgid "WPA Supplicant Driver"
+msgstr "Driver WPA Supplicant"
+
+msgid "Wireless Interface"
+msgstr "Interfaccia Wireless"
+
+msgid "Wired Interface"
+msgstr "Interfaccia Cablata"
+
+msgid "Hidden Network"
+msgstr "Rete Nascosta"
+
+msgid "Hidden Network ESSID"
+msgstr "ESSID Rete Nascosta"
+
+msgid "Connected to $A at $B% (IP: $C)"
+msgstr "Connesso a $A a $B% (IP: $C)"
+
+msgid "Connected to wired network (IP: $A)"
+msgstr "Connesso a rete cablata"
+
+msgid "Not connected"
+msgstr "Non connesso"
+
+msgid "No wireless networks found."
+msgstr "Nessuna rete wireless trovata"
+
+msgid "Key"
+msgstr "Chiave"
+
+msgid "Username"
+msgstr "Username"
+
+msgid "Password"
+msgstr "Password"
+
+msgid "Anonymous Identity"
+msgstr "Identità Anonima"
+
+msgid "Identity"
+msgstr "Identità"
+
+msgid "Authentication"
+msgstr "Autenticazione"
+
+msgid "Path to PAC File"
+msgstr "Indirizzo del file PAC"
+
+msgid "Choose from the networks below:"
+msgstr "Scegliere dalle seguenti reti:"
+
+msgid "Connecting..."
+msgstr "Connessione in corso..."
+
+msgid "0"
+msgstr "0"
+
+msgid "1"
+msgstr "1"
+
+msgid "2"
+msgstr "2"
+
+msgid "3"
+msgstr "3"
+
+msgid "4"
+msgstr "4"
+
+msgid "5"
+msgstr "5"
+
+msgid "6"
+msgstr "6"
+
+msgid "7"
+msgstr "7"
+
+msgid "8"
+msgstr "8"
+
+msgid "9"
+msgstr "9"
+
+msgid "Putting interface down..."
+msgstr "Disabilitazione interfaccia in corso..."
+
+msgid "Resetting IP address..."
+msgstr "Reimpostazione indirizzo IP in corso..."
+
+msgid "Putting interface up..."
+msgstr "Abilitazione interfaccia in corso..."
+
+msgid "Removing old connection..."
+msgstr "Eliminazione vecchia connessione in corso..."
+
+msgid "Generating PSK..."
+msgstr "Creazione PSK in corso..."
+
+msgid "Generating WPA configuration file..."
+msgstr "Creazione file di configurazione WPA in corso..."
+
+msgid "Flushing the routing table..."
+msgstr "Pulizia tabelle di routing in corso..."
+
+msgid "Configuring wireless interface..."
+msgstr "Configurazione interfaccia wireless in corso..."
+
+msgid "Setting broadcast address..."
+msgstr "Impostazione indirizzo di broadcast in corso..."
+
+msgid "Setting static DNS servers..."
+msgstr "Impostazione server DNS statici in corso..."
+
+msgid "Setting static IP addresses..."
+msgstr "Impostazione indirizzi IP statici in corso..."
+
+msgid "Obtaining IP address..."
+msgstr "Attesa indirizzo IP..."
+
+msgid "Done connecting..."
+msgstr "Connessione completata..."
+
+msgid "To connect to a wired network, you must create a network profile. To create a network profile, type a name that describes this network, and press Add."
+msgstr "Per connettersi ad una rete cablata è necessario creare un profilo di rete. Per creare un profilo di rete, inserire un nome descrittivo della rete e premere aggiungi"
+
diff --git a/translations/it_IT/LC_MESSAGES/wicd.mo b/translations/it_IT/LC_MESSAGES/wicd.mo
new file mode 100644
index 0000000000000000000000000000000000000000..e10a618b6485a89461191dca6b95a12cd257bd04
GIT binary patch
literal 3931
zcma);ON<;x8OJLR5@&x&UHC!U_bDOpO5Eppzvq6>1D+3g
zKH_=M^HI;oJP&~nLEd5TVQ>n306YgC2VVs51$V&5!Eb>_!MFVTU;6jI1)sqCzk>V0
z{r3n#l@EcG`#4BBGvHyc>BnCKx&O=HF)#(W|Lfpqz^mY$;LpK*;4eVR{S8QYH^4*S
zA3^T>ckog0KOom1#G(hmBjEku6!;i82Xfsy_<1n)bJ`D2Q%its6*FpNV57Lefq&}~L{Qlb@
z?fzX5f8xjZ`7HPj$o<~);}1Zt{~P!u_%D!gbOf7Cg7YBX_d&{k1LQg10-plk2W#Lb
z;8pM>j70gr2k}aL2-0tV0r4mPjUUe6gO~K{0g&f84q|I@24vhWf%GSBg2zH9%9}xF
z`!YKH@+=2vr_mY5wAC}{Y_$8+==9GibT;~gjXB7CtXkbaP?xGT@xVGlz1U8o&!W?g
zY_u=WbR2yeoq51Uzn(#-f9UJG(UI1L{b*~RpFTqf6*&bIZ3@4%3FBI#pFpP%K8H>l
zk2d;*?ThHN7i0Aabo!)d4X8AO?zlYB
z?lk4G`IF=G6ctvR`8BP<8f-?%3(H-xU=v*(!oOZjdXaHkVkyeq7WJausm*C1nW>Ga
zQ0u(P^p4sU=XIh}m;-a2?gfe+d2^}LqVVE`h4tj7DL?Y=@@u_I7g9=1Ew`Tvi=Nhhk+TQzoHq?T%Don8LbLv7?-Wn?gKf
zTeN4VH7}Q-n&_l@Q>Pk1;Y24df@0_n8QPts`2LoeywCTmI=0)~&PHLS24be1a%GI&
zq)Jx@IeaC21j>!nsxVM48`Za(bQuFr!g12+bX%vzX>OVw9#t39YqnB_Csl>*2C*?I
zcWo}?9Qy^ShEK7;+f?>bTewR~iufP1lQP@w7hkDZBUBKUp>{!PHnbZ{iAkxF5HcCy
ztq`tSPnJ}RMN{;
zPuJG8ikq^XsmLfS&icPJYLIT>uJ6ft{teQl{WJ6uQYkRmlW%!Y{drkvd{*+eJGQx(;gY#O_!O!~#pot>GJ
z<>T2Ci9C8%PM@5cz@2n!DPHOC!8%5^P?7gw$}07*Uy-cICRVJxWgX^9T^2lKs8oZB
z9Alob_|04+Rb;9mXI>==iQNq}${JEzhA7+``P0iOjf>2%4y!`;Amsy7=8G@ONTk$R
zrgKr1v3dF6921L0`8GAVoTM%?K=o9asy^Z|u+>m1D{>*(F;rNX<9?)(3W|Gr$66Go
z$m~Hg6l2Y^ggAw-&!f_+63q}TkA(_7w%>4uiB36#YF&Q792*t6%2O;W7g*R=6lGeD
zzZ(|q>sN658MUp4g&Vn_C#7G8B|J;*HjT1uX$f3*Fqmj%nRW_$hbA?9dlprbCKwd%
z_Fy8^QE{sv0$9qFpc4Gsy1<-)~Nz%
zcz`iWb`9#j67AbBh9`y>!KlJx>&rW!ybg+bX~wn~TU%Mu@cw~%xJSlUcXV1F3YJG1
z#PuTwzVdM^uV2IEfUD7|)Rb2O@+nXJO<{{bM1<63Aq-)6+v!PY3Dr@G`E6oxZ, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-18 20:40+0900\n"
+"PO-Revision-Date: 2007-04-19 07:57+0900\n"
+"Last-Translator: Ravan \n"
+"Language-Team: Dutch\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+msgid "Connect"
+msgstr "Verbinden"
+
+msgid "IP"
+msgstr "IP"
+
+msgid "Netmask"
+msgstr "Netmasker"
+
+msgid "Gateway"
+msgstr "Gateway"
+
+msgid "DNS"
+msgstr "DNS"
+
+msgid "Use Static IPs"
+msgstr "Gebruik Statisch IP"
+
+msgid "Use Static DNS"
+msgstr "Gebruik Statische DNS"
+
+msgid "Use Encryption"
+msgstr "Gebruik Encryptie"
+
+msgid "Advanced Settings"
+msgstr "Geavanceerde Instellingen"
+
+msgid "Wired Network"
+msgstr "Locaal Netwerk"
+
+msgid "Automatically connect to this network"
+msgstr "Automatisch verbinden met dit netwerk"
+
+msgid "Secured"
+msgstr "Beveiligd"
+
+msgid "Unsecured"
+msgstr "Onbeveiligd"
+
+msgid "Channel"
+msgstr "Kanaal"
+
+msgid "Preferences"
+msgstr "Voorkeuren"
+
+msgid "WPA Supplicant Driver"
+msgstr "WPA Supplicant Stuurprogramma"
+
+msgid "Wireless Interface"
+msgstr "Draadloze Aansluiting"
+
+msgid "Wired Interface"
+msgstr "Draad Aansluiting"
+
+msgid "Hidden Network"
+msgstr "Verborgen Netwerk"
+
+msgid "Hidden Network ESSID"
+msgstr "Verborgen Netwerk ESSID"
+
+msgid "Connected to $A at $B% (IP: $C)"
+msgstr "Verbonden met $A op $B% (IP: $C)"
+
+msgid "Connected to wired network (IP: $A)"
+msgstr "Verbonden met LAN (IP: $A)"
+
+msgid "Not connected"
+msgstr "Niet verbonden"
+
+msgid "No wireless networks found."
+msgstr "Geen draadloze netwerken gevonden."
+
+msgid "Key"
+msgstr "Sleutel"
+
+msgid "Username"
+msgstr "Gebruikersnaam"
+
+msgid "Password"
+msgstr "Wachtwoord"
+
+msgid "Anonymous Identity"
+msgstr "Anonieme Identiteit"
+
+msgid "Identity"
+msgstr "Identiteit"
+
+msgid "Authentication"
+msgstr "Verificatie"
+
+msgid "Path to PAC File"
+msgstr "Pad naar PAC bestand"
+
+msgid "Choose from the networks below:"
+msgstr "Kies uit de volgende netwerken:"
+
+msgid "Connecting..."
+msgstr "Verbinden..."
+
+msgid "0"
+msgstr "0"
+
+msgid "1"
+msgstr "1"
+
+msgid "2"
+msgstr "2"
+
+msgid "3"
+msgstr "3"
+
+msgid "4"
+msgstr "4"
+
+msgid "5"
+msgstr "5"
+
+msgid "6"
+msgstr "6"
+
+msgid "7"
+msgstr "7"
+
+msgid "8"
+msgstr "8"
+
+msgid "9"
+msgstr "9"
+
+msgid "Putting interface down..."
+msgstr "Aansluiting verbreken..."
+
+msgid "Resetting IP address..."
+msgstr "Herstellen IP adress..."
+
+msgid "Putting interface up..."
+msgstr "Aansluiting verbinden..."
+
+msgid "Removing old connection..."
+msgstr "Verwijderen oude verbinding..."
+
+msgid "Generating PSK..."
+msgstr "Genereren PSK..."
+
+msgid "Generating WPA configuration file..."
+msgstr "Genereren WPA configuratiebestand..."
+
+msgid "Flushing the routing table..."
+msgstr "Opschonen routing tabellen..."
+
+msgid "Configuring wireless interface..."
+msgstr "Configureren draadloze aansluiting..."
+
+msgid "Setting broadcast address..."
+msgstr "Instellen broadcast adres..."
+
+msgid "Setting static DNS servers..."
+msgstr "Instellen statische DNS server..."
+
+msgid "Setting static IP addresses..."
+msgstr "Instellen statisch IP adress..."
+
+msgid "Obtaining IP address..."
+msgstr "Verkrijgen IP adres..."
+
+msgid "Done connecting..."
+msgstr "Aansluiten gereed..."
+
+msgid "To connect to a wired network, you must create a network profile. To create a network profile, type a name that describes this network, and press Add."
+msgstr "Om met een bedraad netwerk te verbinding moet een netwerkprofiel worden aangemaakt. Type hiervoor een naam om het netwerk te beschrijven en klik Toevoegen."
diff --git a/translations/nl_NL/LC_MESSAGES/wicd.mo b/translations/nl_NL/LC_MESSAGES/wicd.mo
new file mode 100644
index 0000000000000000000000000000000000000000..c699a155526702378c526598c9b47639b434c739
GIT binary patch
literal 3732
zcmZ{mO>A689l)owO^HJ(l#lXJ$j~OxP_Mg5liJ=A+KufvD?9PZ>m*VoB*y#3yDxtG
zX7xU7+(Qu@5C;TE2=&loC6EwMRh%k%;##R!;KBug3W8gNKoH>fpPje6wqfMi-+MFv
zH~-K1C%=32fgdVHgZVh~FZU_60pGr#AI9GwP>Ln>kHCKh-V6Ls;C&B{IwL&%@{Ha`;g??bWoXYjM|9r!BzGdu~ui4w8*JAtnS
z{si);-s0zD@K^8=_!}s8z6T}Fe}m^p1U!KIz+X44~o5aq2%oZMo9b~hhk5i
zAMy7EC~{v3>kf+iD^T(%F_wJGUEnBno+;xTQ@(pnUKp2{65nT-7nw4|?h8!O^DI+_
z)VK`I6#uGG3lCyrH5Pf0zJaTLJjL%kQ{pH?;((bxKXoW|QjG;3BtMd4T8QHM`Z|#u
zQK~+ck_U-ZHRgB_-+kYJUtm7Xl)TI`r^n~Ri{wD^D77N_{vy+lI-$CN+ZPGVbC|uL
z7F9FaGildGx?_tXPJ6j(rY=1gxH8wR$fiYH9H?el^yRT@irA&{>IOV^O_Chwu1izf
zEp*{@(T{VT+G5{jyK1R#*hrvrxz#(F8z5k-{akO`#O*iKl1q2uUYVg>@5h-{K6B-)eyY`O=rc>_4)4oRQKc-%G{-V1larTkbkwp-
zZRJE*zM7PIU+fWkGgnGrbYZp=Z_cVI?7lfrt2VV6VPLP_S(D?YR&KYOa;W#rM@{d<
zqtCC!5pmTwLYNM}>XlBXwX9lgH4groJx~Y_OunmbxJigYoO8Y7$~2l|uc+Lxk=ocU
zOq_~st+qB%lo3@iv2F64^h7)qeTiecxumaRnrdfu$7Ysd$W^=a#V|>Oj@*9gzdyE9
z4rP7Q4&0uob4gU0L9L9o@=B{@=|^7MA*Ow=`bF>PV|Y+RYAz{$|N*XY8q(dTq6HdCgLE
zDJiZ_IUFWj!L-oJSxi9GZC~-N>gI&^s?KEBU#*EiJ9BrqSG87DyG1}rS3}BSt+~3Q
zZ>?;0S{pZJHto=5MeTati=*0=vX|GkTtm;aH@0d^5*I$IEfc(kzEH2v*XkE*=NEWv
zT&zD`U#!;=tZmx8SPnlbx2Ws$jZ5<*xpneh+saIuC#G;&LvI=ylm1dB=$oERU+fJ`
zoXmCI;L9`XChe6h*0!t}H1u*=bo(>cTh~`6j+~#X&(Jsu`c`d=JT-J-zg9dmOt==$
z>u%pb*;@Jt6OPa*d*Z-OMj$;
z#+I50ci6^-BEa#EZ=iPEKl5&1leq0Tm4+~|)K6Ua8npD!HIo{XsI{1CDp^O%o=Z5N
z2dPtJY&vP5a&>i-851S$WvWsl$!Az3cM$a>HU7zs71BlB@NgFu(TTu%^Twokj!%&z
zrFS-i7F72zz(%sMF~l*NYC7FI364!=_fYrrMo%|Szi^~?TJBT94U(_DaT!7I{Zqnp
zY~@%BmGE~GTauuvk#bvB?V)&$BZ?z?-hDc1OiK2uaEPYeEWRVkeWT$%i%GXlx6i+L
zqn=84F(&g(HCU}~v9)XIbQH!UDgNBdl0rG-=!UO|;O~BXC-Px&rIf%Zks+rCvh)Qp)e7cZm+@g$)<0wq|HusSkZr6V(hzDv@!5?E3w?RzWS=#RQ`kWEIm*a_Ww@*g)
zIDo(1B;KW8lRit1sKa!79EMf9ot11?z1EWd(TZ=kmFLG+@wQqc)Z}(>wE1?5vdr+N
dmzlx9sAai, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-13 20:40+0900\n"
+"PO-Revision-Date: 2007-05-27 16:52+0900\n"
+"Last-Translator: \n"
+"Language-Team: Polish \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+msgid "Connect"
+msgstr "Połącz"
+
+msgid "IP"
+msgstr "IP"
+
+msgid "Netmask"
+msgstr "Maska podsieci"
+
+msgid "Gateway"
+msgstr "Brama"
+
+msgid "DNS"
+msgstr "DNS"
+
+msgid "Use Static IPs"
+msgstr "Użyj Statycznych IP"
+
+msgid "Use Static DNS"
+msgstr "Użyj Statycznych DNS"
+
+msgid "Use Encryption"
+msgstr "Użyj Szyfrowania"
+
+msgid "Advanced Settings"
+msgstr "Ustawienia Zaawansowane"
+
+msgid "Wired Network"
+msgstr "Sieć Przewodowa"
+
+msgid "Automatically connect to this network"
+msgstr "Automatycznie połącz z tą siecią"
+
+msgid "Secured"
+msgstr "Zabezpieczona"
+
+msgid "Unsecured"
+msgstr "Niezabezpieczona"
+
+msgid "Channel"
+msgstr "Kanał"
+
+msgid "Preferences"
+msgstr "Preferencje"
+
+msgid "WPA Supplicant Driver"
+msgstr "Sterownik WPA Supplicant"
+
+msgid "Wireless Interface"
+msgstr "Interfejs Bezprzewodowy"
+
+msgid "Wired Interface"
+msgstr "Interfejs Przewodowy"
+
+msgid "Hidden Network"
+msgstr "Ukryta Sieć"
+
+msgid "Hidden Network ESSID"
+msgstr "ESSID Ukrytej Sieci"
+
+msgid "Connected to $A at $B% (IP: $C)"
+msgstr "Połączony z $A sygnał $B% (IP: $C)"
+
+msgid "Connected to wired network (IP: $A)"
+msgstr "Połączony z siecią przewodową (IP: $A)"
+
+msgid "Not connected"
+msgstr "Brak połączenia"
+
+msgid "No wireless networks found."
+msgstr "Nie znaleziono sieci bezprzewodowych."
+
+msgid "Key"
+msgstr "Klucz"
+
+msgid "Username"
+msgstr "Nazwa Użytkownika"
+
+msgid "Password"
+msgstr "Hasło"
+
+msgid "Anonymous Identity"
+msgstr "Anonimowa Tożsamość"
+
+msgid "Identity"
+msgstr "Tożsamość"
+
+msgid "Authentication"
+msgstr "Autentykacja"
+
+msgid "Path to PAC File"
+msgstr "Ścieżka do pliku PAC"
+
+msgid "Choose from the networks below:"
+msgstr "Wybierz sieci:"
+
+msgid "Connecting..."
+msgstr "Łączenie..."
+
+msgid "0"
+msgstr "0"
+
+msgid "1"
+msgstr "1"
+
+msgid "2"
+msgstr "2"
+
+msgid "3"
+msgstr "3"
+
+msgid "4"
+msgstr "4"
+
+msgid "5"
+msgstr "5"
+
+msgid "6"
+msgstr "6"
+
+msgid "7"
+msgstr "7"
+
+msgid "8"
+msgstr "8"
+
+msgid "9"
+msgstr "9"
+
+msgid "Putting interface down..."
+msgstr "Wyłączanie interfejsu..."
+
+msgid "Resetting IP address..."
+msgstr "Resetowanie adresu IP..."
+
+msgid "Putting interface up..."
+msgstr "Włączanie interfejsu..."
+
+msgid "Removing old connection..."
+msgstr "Usuwanie starego połączenia..."
+
+msgid "Generating PSK..."
+msgstr "Generowanie PSK..."
+
+msgid "Generating WPA configuration file..."
+msgstr "Generowanie pliku konfiguracyjnego WPA..."
+
+msgid "Flushing the routing table..."
+msgstr "Czyszczenie tablicy tras..."
+
+msgid "Configuring wireless interface..."
+msgstr "Konfigurowanie interfejsu bezprzewodowego..."
+
+msgid "Setting broadcast address..."
+msgstr "Ustawianie adresu rozgłaszania..."
+
+msgid "Setting static DNS servers..."
+msgstr "Ustawianie statycznych DNS..."
+
+msgid "Setting static IP addresses..."
+msgstr "Ustawianie statycznych adresów IP..."
+
+msgid "Obtaining IP address..."
+msgstr "Ustalanie adresu IP..."
+
+msgid "Done connecting..."
+msgstr "Połączono..."
+
+msgid "To connect to a wired network, you must create a network profile. To create a network profile, type a name that describes this network, and press Add."
+msgstr "Aby połączyć się z siecią przewodową musisz stworzyć profil sieciowy. Aby stworzyć profil sieciowy wpisz nazwę opisującą sieć i naciśnij Dodaj."
+
diff --git a/translations/pl_PL/LC_MESSAGES/wicd.mo b/translations/pl_PL/LC_MESSAGES/wicd.mo
new file mode 100644
index 0000000000000000000000000000000000000000..e2a2a113c680707c6e43026e7c336f4432e9f6df
GIT binary patch
literal 3913
zcmZ{mO^h5z6~`-yli)RpLkNWLR1({<@%Ch9y|&k5ukm5BMI;_W<}X_!#&gI0fzpYvBE03w#XJ;N#$zT>bZ5{j1=UsQ*3q
z0C*E5llRJIW-vmkjw?G>AN09V?8-%ObgII+2^$2(fdVu~
zM_E^=hSvibB`V2SEloD)(HDu*5xwdz9(@sp8TWM*Nk8F<=E;UKJd#OY#~n7eACF(&d3<+bg*1j4S
z3Ey{iKR;M+RQbNSL*wl