From 84869c0f7565ae459e0225b3aa85bca1506e0e29 Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Sun, 19 Feb 2017 15:47:46 +0100 Subject: [PATCH 1/4] Adds threema service #689 --- app/store/ServicesList.js | 26 ++++++++++++++++++-------- resources/icons/threema.png | Bin 0 -> 34414 bytes 2 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 resources/icons/threema.png diff --git a/app/store/ServicesList.js b/app/store/ServicesList.js index 3d2e2bf8..0fc5f699 100644 --- a/app/store/ServicesList.js +++ b/app/store/ServicesList.js @@ -670,14 +670,24 @@ Ext.define('Rambox.store.ServicesList', { ,type: 'messaging' }, { - id: 'xing' - ,logo: 'xing.png' - ,name: 'XING' - ,description: 'Career-oriented social networking' - ,url: 'https://www.xing.com/messages/conversations' - ,type: 'messaging' - ,js_unread: '(function() { let originalTitle = document.title; function checkUnread() { let count = null; let notificationElement = document.querySelector(\'[data-update="unread_conversations"]\'); if (notificationElement && notificationElement.style.display !== \'none\') { count = parseInt(notificationElement.textContent.trim(), 10); } updateBadge(count); } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();' - ,dont_update_unread_from_title: true + id: 'xing', + logo: 'xing.png', + name: 'XING', + description: 'Career-oriented social networking', + url: 'https://www.xing.com/messages/conversations', + type: 'messaging', + js_unread: '(function() { let originalTitle = document.title; function checkUnread() { let count = null; let notificationElement = document.querySelector(\'[data-update="unread_conversations"]\'); if (notificationElement && notificationElement.style.display !== \'none\') { count = parseInt(notificationElement.textContent.trim(), 10); } updateBadge(count); } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();', + dont_update_unread_from_title: true + }, + { + id: 'threema', + logo: 'threema.png', + name: 'Threema', + description: 'Seriously secure messaging', + url: 'https://web.threema.ch/', + type: 'messaging', + js_unread: '(function () { let unreadCount = 0; function checkUnread() { let newUnread = 0; try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let conversations = webClientService.conversations.conversations; conversations.forEach(function(conversation) { newUnread += conversation.unreadCount; }); } catch (e) { } if (newUnread !== unreadCount) { unreadCount = newUnread; updateBadge(unreadCount); } } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();', + dont_update_unread_from_title: true }, { id: 'workplace' diff --git a/resources/icons/threema.png b/resources/icons/threema.png new file mode 100644 index 0000000000000000000000000000000000000000..ff052529a0516f613ebdeed9d4c1b88c46f1933b GIT binary patch literal 34414 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

&G7a5s+zZ%2hoj8*x_W~0s0zej*)rN`O1^P8jUm zX6Jhwa?om{7@Z+Bkfme$DL>@Rw1?gNMUk~w-mvxqMfcc$FJMQV9aq)Sn2Gs$uB!>0 zZnLfNRi3jZiXuK36xim7Xv( zbn<3npr$gW>GjQ9b!GNr^P_XLQCebj@ca zBOunvLzs?WE9Xqb3ZsF zU5=KSk>Nt8@_F~0YgyjEpXpKXrw~1PvEEn5)T43hl|jg1sefB@?~u*pqq2%!hNS8x z_N&R92CVG3@_E)*_U^z)nsPdHkbF!Nrr)e_{6_4`%1XSEhJjJk0@gIz#ha>T@+SoD zzXy+YKatbJF4&(resiI6REbKLE4h8V5W-%G#GZ~SU)sPk;mcEvPeBUnXlf?8C}xHD zis`I<6*!>Iwf!Exbl=P+5L^?V@5|~9+5qoSIOox{yB}OWa_0TOb@pZ8s`SsU%<&)uXNxd40NxhRj89RA z{dTOP(AY8juFki1+UY-x5CTh&^;FwlD!gH;EjTnfD`@4$)eKJ1A9~ibRkru+Tm%=0 z;TSl@XVQ24p+Zsg;`bwXZ-ci8TKck%wqNK=-xZqEU{`TfBKc9WeefM^8mZUk9>n#o`IFg0$3}BN}y5}y^$13%)C%o+G|8#bOZ*Whk zf{4+wm5v=@Q*}?*?~RxoDjP4T$7#IeD$?MA&b2^#$BCDXfW8bs4mHd%zN$zTGi7cM zYdsjz)0*`5dfWBf8Sc21>H+`h#CZcZ|G#srr|fMWGdE(SLutw^j1+b9;aDU)R`wyZ z?H@^yes%GcQjWBClf?IpiQ0|K_pP$m>)GDP+uPeidu&G6rL^o!rKOLV35ujcdXh+J zU4mxxEes2Aw*kxqTw<5F)g=Cvg)rhO+P`3i4F%}R;Lfa_veLVHFlhUq{(mv5|6=;# zouDC>;sAep2fD&Vzo5tf1&KwH&?}$s7@>)+c?^=dwWJlPJ4PyFgnliMJ& zJ@c@0oFfmAL**nviYz*Gu>;doldFVV^9YqNu(Z5&>()^oVmI3X4sZ%61YHeom3I^| z&&I7Gh>!1&w0+y#zj|0wyw;RRsn@U;s$_yqb#ZAt@rQ`#S}S~BQu0J5?k!RGd;vQW zh3wJd4q^6+p?x|J$8(~$R-KLz6c!3H-Q`tk!Uoxj9_X=M6FXO_1a-4T`b_*!RwOl= zF`J)fns@=$hFKhDG=1(`zup+=vvBrUt!Bc(&O07BaVOZj;RY9Y_^2LdIP9FprVzdD zGIflZI}av`J_CgJe>zgz)@kEoV`dSs$qB`F_*a#_hXAqhNxfG;n6j*6Xt;Y_Ns1Q% zafM+zGs{2%>cz(0oA_(<>1dLr%-+cQNS24`Q*>Ka#~+J;yV;;5Nsl{NUN&H^*Yogb z-F|!Mu0XI6b1fxc^UOz$gJ%2asZ0WhUh6z&S>3|8jj zspZR|rwToXg$&?426ByKRaen}dkN!pqHWDsCsfsoraN(B!m4zxt6Ad4dHB7FIg$5x z6GOvoA2>=J*MpL&(dYt`G)pT7TY+66!Z-Qs>{B-&UU*#MnKRZFw{De&FZ3r5b49;6 zdf^w;+QWzA{Sk_O0XpCpLFYhkY2W3z^RkEJZF$fuH=7#ryjSchp>I2C?~vl^;t$8S z(aKx4!UyXg#GoR1A){}aH5Id%cbRTtCWrWLB>gBr8uVH_&q>-0i_1eu=!MH*c`CiBLx-SS!`t${b6S*_;4J19m1j>?q6Z*;Js=mLl&1<+jS0X-T^LA6BxKbE04 zsSN$CDxyoLWYB(`Uwi9Z5*MrJrWYD4JY#6yiBP$lR_7U>Thi5~IWRQjRLbK!o7?n2 zl?{<}#>d+`TX3Hc-O%DpE;f(LLIV1MIZ5$<`{Tdw9bzqz(N!L?<6nPZExuGjk5R-^ z|CtWk`bqClJC-<3z(C7I=$oIMc#+cD5FyFxFy}YzeYTa3uEkQ>pN}U0T|85-1{<;G zM4~*uOfcVOz&I~F-G0%_>ZARS3$S@KtYis(9n3XKnjSpr>tyHEWAg!px*Q#U`&iQU zsr|*wWL&%W*Uz>b1|-pspYNi!`Ejsw-_750t?t8`0Gs~#6EJr}!vCDZiVIK?) z1H3tikdXi-<&3W*1R5FHhmDvf2>aJUxlFXmn4ecyOAGrMpT)yJ8sRxSCAplbx~ zPi}EIE$6EXK-!-2$5n|#Bu1aEcKoUAQUmCIo zDwN+-9tsf}hAs z(<=JP_O@bNc~cFV9~VjGIsp}NoKhJGI}H4{SY%o3#(P~#Vy&bG5ws=*g<9F(o24Jy+^5aU?{IvhKIC^zYS z_`AFXW0RBZ4)43UtqKX%E4E=TDGEM6j!;jk3JNB7)7AzR$ zoWELY>GXLbT2FMz?A~+2E#aiUl}}-~Y(-6q%SMhyaoMs#R|x6}AyXH7MAV#k^fsF~ z&V^eY>J#3T9gFC@E_1x$gE`t^b~H#y#)q=Bs>073309BJ{=lK3aSp6l1Jk|`WFw-lG_(=ag_+hlG? zUNPr%A>44#3H3><)n5C*vOHR2tiI-H<>>1FTX|l57q2%qO}P7w8x+@?5_ekDHg#1= z>M1Rx2XKuH^&^w=kS!!6V#E5yhm6S0Xi9yc2cK$=V}DeaQPA6C zk(K5D%M(@mL|JiEN#>X~DD)pq!-Ov-DA4o5@{6lY|P>!i7{OtxT2kO+$ zL8E)|*ozXUXvR(_;#o<*=jj2^4zOZ>teToxdxAp|v7^{wP!z1SahmGfx4y7ACcUc! zjlok+JiZ@1NyNOLnVGqo4mQW(5~XxbpV(FjdRpX3#qX(9I1Bjqa}6SSsHdrB=-=_iv`cK=hC0V60jdy#p?8j;mcP z&R;#|@$MU`ynFeRpYi9!_KB1uv71$TZ0ucInKnk1VO4f}v^Ohd&!2mzK}u|qnPQK* zWc*g0VZ#?qRtjlqm{mkd>tOjjUd{Rpa_Y-DOHIfH-G1kQxj%yOI^M@pPOb$^ubsOB zz#K-0EkK=T{oKe@_On-8n(%JMYw---DQQt3SdoOF^@YJ7g%<1PkjOp6qeusG+>N7K zDTf=0m`}w?Mep~ULwSHrL4=@nLEOsUMl(;Nvmf(ojGs3$GAj5prA`-!oZl0Q@4&4* z{7tAnkfu6|s*B2Vf%i;(){Mz`Vacz!Ueo04=$Ixhm!YE_AfNq7QVYQ|eLQ~8+?Pi2 ztYUw5g4--W?ZDK=31QR}4~}UYY$fIKEE`% ze-Y?6*t?g-L5%Ks)tt#Loq!xf30iJFPbrmMP_)%=kB|^Y$HQtYj|@+qS$&^)WvKmg zSm3CCO)u0>6v~ z^RszV#-(0@4_iH+tYu2^jQ3Cf?@u{D)>#;*q?hdT`&>d0^Qyyh{Dqlv!VxZ(GjkSO zC}a!XJtqG^i55-}^>2NOPlqwXZJbVDS}Ct(T0g5b*pwOM)w^`Zv57!dDZjperftn8 z?xlfu6|x=bOr+0vb4CgA5N}EGR1Xj^WU-K%K@tCeksRCaa+IJ}yQV=+7!Hj=An4bk zY1dYCJjhy22j@U{M=vt67-y;FHWe3s)-9gj=nHf70#?wK`T5)`JP8xToc4GlyQoDg za|r)+1}Fz*V1PtrIT4RiIcO0$?4~u{aI-uM#(8pG;P|pikWRw?o;l-BMsXjS`UH^$ zxEOXn#K?)zEL?eUp4Xb*nlOfj z^W5R~kgU8o?(j1hgX;-87wf#Wy?sFryOAY)7%JZQa{1dNs#2T-@ZtxZnGxHLxp$|`#T2X`n~s|YW`-PL*~v!n z-z7F}=#|Ess{jBz7$b%1(4x>Di@EjPV&;0fGRi<)LH*_N8i6Q?f?%jhR#=0+DCk6u zSD}w5+}Op`!Z^|EJ4+i>B2j_mJJIc*vjNz^p{Em<(vs&fygsuo*uMcpypLNBo~+XJ zeisgCen4pBR+diLsI7Bg7FG#HqtgNkZ8vpvCMW9b-M6pKJ!&oO#;{>+&k9?_2l65W zEgPwer3#U3I2rO~e%c+40Z?xj*Y6#lfc;jrkU9zN*$R{_R3x}mXX z9@dZO&EvcDsv)$6M5TuU{IEPx>jfSL2&MgZWG^2}8-ps&;(UIJ1bWwiC`A1;!Jf|0aepI)qx}puw2uO3&_)cu$@F{dI$8%!6d- z!d5hsWf*_4`C`j!xN-cWU=D7 zNIlG3gB;XrYeWM(G)*X*jgfXS!k2%9|zK5A?gy1o`ImKu{?#tDozWa z+Dt=28VAP53n6_cPPa7gDnjq!ktGAw=OI3F*q?A5Z#=%DZ%K=<5?WwGPYZk$x~IdS z%qCbiD3zqfZwp8=z71FROnd0y-M+|xEI_mw)!lysGNJIt)t_MZ~5mT&KjA=mY(~LkON3$wLMlA#X53H+xNcWnm1K zVq>V(Kv$rK@OhH!OPLgR8271l0Wrq6y<-{V@)(!}dnG3E)P<_kg5A6a&iW^T(Qm{n zE|&6$TUywSY>nKS7F(Y=v{U_&@N;{ysWW_VMsGaL>Lo0?)X@rF)(z&^v4H&b!~j8q zVZ{@Oo0Qqaexe@1dx{|8_Oq8WQf$}szJts=1a$2IXN=W-aX=sSX8+1YV+m)<$Ggc> zKvy#iI{cu~Y?VuLC3kqYgIplS0G%!^xQXwEt3%zKnG*N(JxUv=R@nA0e4Tn+a zNj0!-*^zvNc|7avtXh-&kfP!M7KaDNzJ0pMWmenOCC>!e5ce=X~WAM zWF!YxW-Z=DDK}Qeapjx~tEM8B7^XrT^L4eW?+Yq(RwO#E8rYAOt@u z;VM=!n@ubVMmccTqfgL_Ss2!+2=o)UW}KJ1=ll?4F&H-wV+G1O4jl38h+w-D*FT^c zK#9hEfzzx&(=iwHpz`3|T#jqzc$WLL>clPUP z8j``R6KsYDEsp};P$D7F6>Hwls-cTM=(+%FRt4?2AOHH#Lj5@GK_npC`-M}nx?IXSBJRot?u|`wL06Se&si3q~%Y`VMmuh zWa#$v=+M;o1lK2~V-&mJ+t$w?LGN;Lmwstqp9&(#;>zS}b?-!=-;j^UQip1q%sW#3 zvMa5N06)2-XSG}AyGpngQzu=q854W$ccLpU>5Ac8RU54Q*7QOlzV&^W=;Ete?iG&k zt2nX!BGu;xI^AgQR#w9FX^zXiPxz!P&mSAuUM6KvP1#-2z8kk))=T(2S- zjaM$o1e6Ean@A`ti@$j*R$UFuPz(SYvJlMP^Y&5S0^~GSd5`Bv$(-pPHCs1?h}Ti5 zKpqYZ;c_~O8+A;&|Jer4%q?CMV3ap*cl>{*8AifJ8kdY-8fj?KRkxY7bw}@8(qGD) zR$~>{ETqRG2W+NdcT+z@qHbX39CzySjiE!&B*o`d_^2Cj?4CW^EBN{of>VG_Q9Jr9 zCDmEttIGNj!%hCE0hhHaRJ*XQz478>xafH?0)?Hm+GiBtF+KkC_%uuCKN|s$?dpbk zefGTdOmd^bzl5X9-PqE%Q?VYKtgzbmFT$nDD5c%C*1lDo{`&|zr!Xs!TZ|h-i(*I} zUWk!RuEmjkO+4sfpg$ck1LD+LqHZQp=iJ7y}ViAi5=VFNS%@EH=x<0)D|PZ2?NoQ->z zdR&1rK1|}EO>##-!VkC|nK$tcalJbPW(alJ0~`A#0%Cq`#_GWsmA$lWW$e~!QaUFu zCH8;mfHSzfd_f+%h&04u_sv`eGb@Vp-%nBLSD5-=NDYioGI`DiPvv8}T@3*sBptfp zb_r`+l_V(COC~=m)`r3%roWrLJRp{t< z-u7${O#v3aejW@0^k(#NSTmLmZYiX8q~u-zMuA)~<0NkE(vp5N=8q;}ro3`FFdrbb zrh}>w*OR7~5~@wzbe#q=jXC%o#Z!fvg= z#Bm~0@FhrZ$?Ffj`4A^LvGS7#>C$+OM~(5)U2R+c9Og0aUxp_s&XgDH&!T*Q*k`#v>vR-nO8gV}j@gW9nzLG6dD1Y!eoAd&c8+ zub>F6b4TB&6%M8}f>gV?ck5uR(tqdEJ9Z4VSl3>zNpg)u5+}o?nZ+j2 z&;VqF@fvJP)#u9+cQaJTT8RQhCuuG5v}{?8BkMBEWM(G%@pnSonRu>nr$fwsOVJhmJt=w4hv_6a6^vDxM zL_30{FxC{Jy|wAhL(Dxt{j02-R7dmBoK`70>G_mUaZ!$23f>H5dwQoF#i4NM1K`1a zKps@KB!~eATHVhW`s4Nzfi3*$;tybc0w`PZ`ErZ;HjoGd!D$)y0VWH5eC%fQXnKd^ zu<|W$t%hha%jHqrOjTKIUWJg~FbaV~s)ox$3s_FF006WhtjmzMf6qv-j}3aR+&3Fq zg&iT!)tEMa!3-efr2!Ig`Iofv^by+V@Z#Lg)&}bDe#TE^K%poD!ZN4Joi%fjSaC?h z%|JLCz4JUVm@NhR60$G5uFkhVLO{2DVQGhhF;o_EZAK*`=(gCdCp=h?thH({E=?&M zgR+~is3T*=R7~{sKBvNah(t(-G9B?GAGFNyp0I@@w6cxCh)9AC#C4G2Zf(YQmxy;e zE&l_`u82+ryvHX7xJT$cgiPWv(KibTEA%?r%#S;KOpo#$r^qBz;3Y7t4 z{EHwu<`PzHqR^{4?$aJf+rT|q{FYXG6@h;8d5cUxlymML?4-w3oIx1GW02$R4u(}jDImtWOpqmSv&>;|q z7gqg7PJOs^>nN>kiS4j7qoh1aXIcPk)6Uh4W}^fln6rt@#yj*RyaoV(9+-|0(SqccaEr24;j*>v~&{F&Z^wsLojG{2avSo;Vx;K z8V^)bA}J{e2n<^aoJ5%@q9q_*ffoa5YXq@Nb5{3%25f9}(8<1fCw@5kTU@!gWC~*} z;@N?wvP+DaqYw78!zhNx1^OPV?q?64_(D2!0mF-3x{79Shk`pOKqvSuJr4q&So9W9 zrsb#{ltU5Vi$rrqNZxk<$Ax>g2{U9S?T4E+|%8Wg2$L;T!riGFs#~V7;~{j<|CA?Xv_rc zPH-M{3P8gEk|weW4GqoZXB^!^HW?J}o6mELvEAWtIGS z891dMNe4<;Tw!qe`1#edMIBiG)!H~wxawX-;6JN&{k7fjPCh87?nS&bqr_Uf#qqE_ z2QU^Tasgt$*Rxsx-adc&a}?nM6Rp0r8|(Y$3!p1*%cqymGsJP210Dw0AHsvxRYN$AS+L%}EhM=Y2Z}0zaDJ zI$C*8ffI+e1gMBbQC(bF$q5S!Z6+%3sD5a=9I~aWrnf5}?y2uWqH&P@0+l%_8?W3F zYER-n_c8*#PLYhSkX7T)A#7 zKg@I!-s1or>FYH>z+)Y8h`746ln?Ojk3R_tnhjlKzb6N=Pjy3)xSH`S7iFmTeTcR2 z402^V-!I|`;ngEbJ*-xY;vk6jdf2fl;vl#Vqs z+Mmn4sGgi`_W2egYGhR9`2C8TyL)azf~YqjS6{hxOKQ3tCA|syg1`wp(o6}^}y61ZMPVCaV838J*eJw=62 z^VqOc%P>kC2k^eGwJqjtq-gG4-#&L_{7c%~+cP|4Q1%OH#t*B0V&hXqSgdSxm-Su4p?CeRa{Fy0 z1bu%(XuSWQIPkuJe6ko{ZX^sBY&G#|Z?NXx^2&~Y|Gg^-lK90pc z`|L_IYFj+Htnvgc9B!I_5hqiuejd?vVc5E11HTmnF^gJAH&eqSus*Dg4bZOV2)S(p zUp|(2`zY;)R-m|6PXBuGTF0eRTFEKKjIQ`oAM@SbaM0B9*+YKwefB5H2$Xcq^5+U* zYaVgXu3<{Eo&#??zbRw95JB1O-Ajq*_v0X~XCK`k_QL*!Mw63&{O${5vM?j%72b;Z z{$C??`sfkyBHEL)%jMYA#u>2|Jo{Loj4o|CbNO&tw^Y_qX$bm1E&z$IosJ_^oT`uz z6p7xid{d-&p48DELdf=r`y|&K^3-cU!|um5-|3k&1mWk)RMC~Mp|&rtS-@?InCw`RVe9l$zNXr6{V{cyH0@xSM%AY zB@!^ZYMBC->b$&t@b;MK4!t30Kc-(~sKrlew^Z7BSN+l`N5Ls9MnmuNe}Pu`MGml> zb^AuAjuT8z_t?MX(5)ugwCPHz60EfLflKL;CHoVj`$|)cR_)580*o6`d$h8-2blQF zy8JJWZvBzc&#(NIO>Nc1VGqoxB(%Te1E!4p?%(qMcI}DedGy5dy)Hp951N5!VOdDs z1^zZAZLL9vet5B!{`PLHq;UYAp!jonluh)dJ%{|X43hQ+wyHvVV{N$^^c-JA1lUxc zSfg0f#0=KOz?(LP-Zh(2hg|e^G;Pb`ppQ@^r|4e(JI5yU%K?d+t=OY5;w~j^X;#a9 zS5c-DpaA-o+r9z6h*&gjlBmN;$*jNr0)gGDeiv%J4~c?(sQIzF9O_kj`)DJnzrT$4 zC5pOvPpCp_-qd03z-czhpIbM)SDggd=KeftG-6yDZhO6*dU?Yts$nb+nyo01U~HQw ze~H9ik;95o90XBDDJqm-rX(zg+pL4T?IBpy;uO1B>h1poTyGD~tBfqUt&se*dlFB- zivQKCASwKJ;bzHl(-9Tyt_FH=)f&T|G13+IO~S$!CwR^#oJhcWb3ev;1$`j^xpI+h!Xw z@PQ#8WW=WNCn+62Mz9p^_={gqdc-LX@HPBRLTF=Y_vYqi4};zaDDw_uu;b#C(yfK@ z=JH)m205oZaMGCXlMI;U2Q{>+HdGPTs1p78@4nnGsw>4*O_#3+_D!!&?1w07+rlOkGI;qU2R}$;0YFcZj4ZF}xkCts}T@m&-DIIAf|&=MyK1(vrIAB{X( zQ5fl4FY>0{)P62F7=}EW_K?BsQ=)yFyz&23_T5oUd_mirgepi8=_&|_fb@(NkAz|iAWPE3B5z;0YdUFzjMAnzVrU|?jBmm$=_vSz6Uwws(Ut~x2x5-jwqKBOjjE$(#Dlf=5tfJ+P#okKvW zZg+_T-JEQ>&KiY!Sp*p6*+Io{fl?yXU_n;sg!3zO0OvgnyqMrmmONb$?J;#q zbn|D`cV!@j`Z<}QabmA-ftU8s{tLwj4Pc{ACX#NeR=nS zqbRS9k}rV3g1=q^6pXf1fnqcVIxgF189PG}tFb*nQ|s3uhHpauwVmD@65&Pg7jp!| zJ|#@BZ2AQ5usnL(Gd(n#Qnfikgf0kqDkYfd967x`2mlRPH4wD0rG_O)2fWik7KMX# z@#pM1#~=f*LlSd0M*~5_6vX5=Hxw{%m($%(U#f<+Nx>lZsKB#UU5wNgdn+@wsraQ! z4ksEH`|eLckD1)v!j+Kvf!By#TGGc)_EuDk1k<1?i?}E4rw*6KM}U=3YDcAD`GaTZ zgkz|oVYM1`k4CnK#COhYT{5mP{(DCFFq42$od%5$>L1~-}9S1pyj>wB@QV;})JHK?a*-!l~8(k!w znBnIBz#>Ob3v+}T+@BB!1`2V-$+EBom8s!3=upNd?KuaNw{-V>e$fHsif->&EDv2?GVxW#lm{F#E;OI0-L z3;$@0aF#m=F*@|-3A&+g=ehXcS_~~6BJ|^ph?~kp-c+S;p2Qg@a&4;o!#--c;{8P7 z6JFh%EFPZ1cQ~d2;*C3B&gyc-eNxr^O@|2a;@eDXj@wV=#kpX2{&RBQ-tF4&2rt8% zMjEY$n-39wQYW=6K+^+qySPA3b>@9*2H6YB1rbacym5U}zie|q(6e#gMwJ{{q5 z?vxp}Jjf#9FT|3&=y@o^+&m}oY>C}CwSwD^3O0^Nu~xFfZ{P?T7@p6J*Qm{L7a=zo zpT4X)d0L|6aBhH6;MchUae?&1kJ#V^c3TBCd|inFmzXbYJ;dnyRjJ&u9IG{+BY~`- z6QTdc-m=|f;K8=lxH#~qw{&4(4J%pjTHiWXX_Gw!_v2Xb#R6ZboK^pRai|`~&szG8 zx1e)v=fn-tx)J{{TwlZ3r%lJD*;l5I^qs@>ck0J59}4bRoB2W75HamIn6J5hHFnssVUoMVh5r~-xUD` zH7-E$m#kX}aEb%BzWxkPO>+8><^ zX!l?~ER{U@=iM57&^6IPGtQ&HuSYyC7C|z)&2Ry(W?_%!=DkfhKH0N(l>@^NtDpG_ z!Fl|I#98#8Dw1rh?+XtceSVdMW?*vMejTiDy&|N9Fe)FrBI%qL$c%_tDbU<|Q+{-9 z(EwC<=QUHuf@;h3a&qzQE>hh;Bz)BopxDxqBHaO5s(cP2n7TPMlr$qO9sD7oPw@{} z*r7%6Jp7kz0!OEytRBQ7p0jR>M|p3{Cqyxqhqr~yZ*FIMdoxoy;SFys_)e7Vc~)<~ zK^yjEa11n4Rt5j;NTrrP67#Gj-d1~!G~F0+U7;qYcWU7b{U5OPos7pDf`clx$Z-rQ zNL~ot{G8wRdVl@Zy02Lc4bqn*Y!C@|9ibtBsRYBPb>zrRYQHM#P5el^h zAPB1+bSS$5IDfa*UH=X3Migzgop{KKJcE8p?M6&xt^eS0Ej@$y%&kIkMcc^AJ+3Dvxa(`0X6t`R^>Lr>o#Qe2^>l;~#KU{FCV!s^Ri$c+*pto;>m#M*2W~>OjM6 z6t?|eW?NI*+7R8SCLFA)BI^f@Q*nTv_@z8jMYEVT>{1L2zR zjh-4ggf1p>sM+~FNJkc)1uZ{YyWnyU$v9Ot8Ypbwz$6=6D}UVDBM74;9v+{l3W{QC)I|YRQ&0+%ceQk*!D+o5Ji4%;&)z& zg@@QL2RD66u;Hvb`>McMo^qo{koJm|&t`L`!(-nmd6L2%zq?oRH!s*ff+7xA{mlBw zT0z4{q%8SWIfkeRn1t_eD9U10uG*KI&`1?9|4ZqtcNm;44gR0C^Oc#AtYN$p8U2>W zCC{>rch!kJ3U_g)dX{@|m6!iR2F-2ks zf*H{=xrO{R{qSAN{W_SgrBr?|wOm8Nu!mD-Ot^AmDz~f@KZ=Q@aC)(pugvGjALAT; zy^z;z6?Y7IaY+Hy^!JbQ^^Zu~803)}Z2r0dWm-7>WUS*oHQHJSoNGg$W#w4gob-)Q zZ_f>}Jpv4f(gjjHb1H|BtkTd( zC1l1M(&-9jUd}&fYmsba=J7mf>GrEMGeOK>C_!(l_Uq8aW&~FHhspE@Fb;Ryz({N$ zz>ItqKBXVQf4#G}uwQWGAzx0^l$oZFNBs|ux{`FHmQ?b}hTHso^K14}4xulsYgXug zUgg6c^6{l;B&4^0Lpyi{jQ!Q5LJTZODKI!Z+z0)?;R1Q`*v!LcQaq!1%)utro5RElZWoOd4HQ(K~sDW^^hvo zRZ1YG+&5EgMV>t&C(@f1;WLDN17|h-?r33WnzM?^yaOu8^XhB!&nxwO?b~mKybLVq zW3f#P%K%YV^(g$MH&!#GS8z*Zxkm%&3eZ~lWnGO?yk7zu6Wj=oYDg7LyP1EC&+l0C z=o$IWCCw8*Hm}RhJmz^uot5X(Z|9&xbGDTB-?!mNmNTQg6%+&U&B?VrPTmy*@3KgC zLg#gd9C8t>)Vim*Q6SAd7-(E2Qtt@0SzS5uw{lkVwRY>t+cGK-@2-BU%+6*YN?K>A zC!p(`t>hp6v3AiP{1^RG^-7|5o}XcoRQM|uBLQot?u#VH(7Y>(A(Tgb#P1w;%sHO8 z+e}tBiwQ_Ia^|13c>aNbwjYts7S87^uNr!fqM_jy=;PM&*$L1v8$ACxc+ng>lW*3C zmntk+&&lyM@jWJAGk0nxfA1@3LmnLg!Gw&1Po`sk3!A3^)P_asgVc-&a4GJrgLszZ zA6>(;eXDF1$*yZgiL9flazBJTDfgPTQJEX0rx-f`xxeuGi=!Q~CpI3^t3~8LV~GQJ z9$I5rLHvX|p|?6^$E6v8ZMKcpBDJ9|?qA1m~qU|*FIfA(;J?g{doGlx#>Zo7FUd=wNC z?OhQm=GriXMRBEq-eR?+n$Y)B?~4cjsHan^bMR8!NM@xB+h??qWlfRhG?gY`EG!M; zdZd~XOQe>2Fj(OBdMNwf=rrnq1Jo(%So!ZX>Kh6MIvK!S$s<#8#m?$e8$~%a)r{(B zp3UYy%yTit*T=2_Sy|5cB zCE;ivdvi6U>1mMChYT-%~BMeZbpgIOI+y`cS`42B_qryuElQ;>moU2IvLR@ zlj*ex!?7RdQ(=-Re4w~evCEArX`dOFAgzzVb`H8g!l>0%rPSiU6WA0IJ{7}7eyW=e zBbkiQ0H93g{?(v_hA2i67V{U@U8&yUW;Fws2+VRk!y>8~PbP~x%{H3L!(y3}ld0|| zOvi89zANq-3CrIz?XR>q>z&n?e-lXd`|zWQW~MQ!2J|G(->}0AAL$1ydudXlznM!& z);~0d8A=e}6(DNA^}#~?@3)R2TxwnF(r*q#glAdTh|{D6YTZa= zSY1-?(P?NUNqsh<*Y~{q^hoi(#G^j1%7b?=BN5750cnP4cClu5Qkh{Nf#h0w3b4{{Ap~ABUf-gCJp;x#Xrdp|%NKh&5QH#(#r3|c$ZPFpnz z6bBG)krrgS_opN5zK?5+tFQQ}v{MPkZhfXUvU9>holZ)B6Q^aE!A_QYG@Z|^Y@6I<1MLlg3h2-WfK()H0(M0Y)nfeNO zecM_$c!NXYu(BlmKkAZC65msw6n9+0;9u6X0=MLLn}Cr{qg z1xKnM5U&1t`X1sHPFY$lbmL|>G)dlDJ#OfZKRG^)I*L3x%jo|b-y~QG$4!sMG05== zB$cc&Ko{Yt3hMeT1O{eyjEtJ;9;y!ixo-0NdI5%kw6|FJTG+|O zN#GlpDhB#quNd5X{E-cASt$p#Jo1YdIav=ud$x&ahk8=Ln>i87*(d;|o zsaMQ6GZy!^i$|p)`lrb_=cV5MlWh(0Hk+8TF6XuNYDJjyO&c<(cyu4?gkgvcG$Z*a z2z#<-Hn*X#B+Zp_2_0w(KSsiJEB$0LetN|b=n3)CpvF98IicOU_@QM>4*0i=D6~=4 z*nhv!+!+tYV`J$J+-)^rCEHSH&KrbPo}*<$hJ=pKhr_u-7E`9~Jp5AIqc(hpV_Scx zx=x*C-gLaiT>mxg#>ruO4oZw&yIj% zzcA(+DHf3v)&w(I@@aSsT}rNR=zvZ?wnV0bRyQWNv;;l4c$fh!w@^3Dew%+KvN~G zZRj@@yR}NY%!in@Yd}>W|+3he|(*|yzrpFn7 zEKT`*r~Uf!5U1zV0ac`ujItVtM0}Qpj&~2 zUrIqTkd0{+{WPkur0{j;5>e3e2b8SQ@tzVP)#559sMcF<@LLGA^Kin2Aca-M$KH@e z?5|OF^p+0FM}z!99OM^er%4OBh#Tek$Z7HCJb6z{ReWwgX>=MC!BXF@sAC znz#8F@H9t_!aK9OZQoHh?vXnc+jWCJDIvuUUNq=G{x+U<7)@jI5|tMj)?R<9F)oC1 zcDpecMe^-SQDIGX53KwodTRs|8l2wgw7WO>DVDnEJW$BDT37b8`@F6DYZB-*Jv{G; z&@Bz90V@)~Rrh_=!XC}QnGf+ba{J__LKa{)dm01N;btgKW4>(&C za5?Yk_t3Q)=$N6Z+U8a7?d4FO5Z46Wu^z$Oi@ni;g?yP&ChO+8cetK>twOU~}NRIA72`67>9CC6o=Agurl!JA}#h;VHgPY>2(r`Ek`;$FcTQ3 zxO*5nL^9dN^;m)U=Lx7pUSIM;^JWs!nj1kTDgwT*Uw3l%I$(bjszjd8@<%*4q+nY@ zqx3=#V((Ab+|xa)`+Ez;D|agf_H1EC=ItNyThc7kspi(5u?*OCPggY~>|3hc#?evk z*bs}q82YRf`YEb4%NdHAdf$t@z&p&`y3_Mp7rFLNXTA$e6S2AGuGu4{Ei8RY&wh={ zOV_M`6atAsOSO_?WW<^?KUY%--#iZ<&J*|wnOp1QJEtza0KV3$r3m`#vbCgo3nI{e z$Rm&+|81GlM!D?5&V*IZKYvk~ru0MNltYP&*?0hT{IYy22Ob3{))$ zitDG3z}Oyl$f|hD0UYt@-|ib`DhCxMSMKdzF1eVCUOellKxrmFBg_r59EG5m6}mQR z;zTn?~YuHHi}ug-8zUua#2?35S!sekd5{E&nr2w z>{*GHt@HLYTy`37G?$6dn+72ADsN|Kl-p(W7m+#Dvg2q>JUrHV-?UdR$Gz}7P5P<$ zEZvJ$*ah%_rBq&}M1v1aJIvLC zKQj-p&=^*^(Xzoomi=H)(K|j-OXe$_jVDFv!6{6AO?IMvt^0Rc!x6jX)h~_?{gr2# z(w<%C<|FInvM1Mi2U@^8n_#T}FBbp|eX5+8#f%=T!AY-aD9bE;W6wnuDq0din5(r7 zaf*BI^m;li%?o~;^;uD4Z39aXzw%nuigWqxX+NFYT#uV}1j^nc{ulb&g&=jIfQ&X% z<-)}Pd`e5jfn#b4G&^0kWt5n{7Xk)*@<5K~5_k99KqV`!zEY{(%&JS+vxE34!57a* z$K_M5DYuWP<;E%DdzXF33Pk2^fTd5vmW2lIDoj=K%3a-aJ59>vkN+_b#Pm1>K`F+e znXk#~B4=9z%)VAKdt$iRlCH_^p)ztD3(9CbfiF?sENx#hM@%i(AL7hWM04HeHZ1la zXaTx&MTgbVMH>%2%_~3yn1_5|Cr{es`%OS2Fw_#v zJX4!*$rY7bB_mq90WQk0E`~_dC=Ts! zc4M+nt^3`3#iyvEHq60V@r{f4EH$`OzSt<2lh5WYcwg6V@M%*yD`+)F_E{DlrSu|i z$;i{JytLz|2ZNL|Vk%rQZ?XKh6l&Q6w@~Xu<6!u`tG|#tweJ)7RRFqpCGJ`F5ho3} z%=}`Ka%`(_$~OF_mR)=PoASx4dW1#TFSiPfS-D*qW^R2#od@0A{M7plKCdMWs2*bH5CHs}sgsov_dicY`4%f%{xrP31!)VJ4l6*c+Y|KdCZ1PxZTZj_ulieGq%Gxt7n;h{wAZC7F!rm0 zIF4W~1+}v2w|NdrWA;bG@*j5X4K)_UX7Qwp+}-w=Ez`oIYQKj|HpS-R? zBoI)qrO&c(!|eZ-P9-!u=_x^ceQPhV=}+l~Yt3F=q4Bc*aRp3S7j(A%`0v>1FyvdF zk8}b4P;f8n-j3V@bLnZk_LjoHTP6KTPhxaWmdd5VzjEXWmCTKsAarFYRiumc49vrSuPHy`dvxF)H>J z$ST;9dGIk&n`kMxiWfk9WIc!O)QN!hj3UR5>S9rc^a!~L-)iGvi4RXQCD}U_qExGG z%dtqrHdvI9AiH!7GfN)2{-L!X10YKVx7{P_SwTkL9}I`1*@Svy6%g@$L3NRp&D^72 zNqjnq?9w^R2+5cC=ny{NJvY7)c*!H8ubW-dem?u+TOUl~QM&Wp#v;vJZIznbv0Uh9 zR{aO0M+{)FK9NRuMxePWz^p_tD$3ve1`=GiIj``lk-n(ByjH<1S(Ch9)Vut6ZNB5x zdqWnG8>*F#^h^$Nqyssg2$E4ZF4X?SY1&UFJMdy!(qkd|#>DBkvz= z8fy|iMsE9nJKnurOKguQ+g$TDA3i5(2}CF%7!(aYP(3w%VL>z8fh`w$Y0UfGabI9; zgPZ$vM>^VpMX69ePx3eJFQnc`aaj{{dc9yZ(yTDCVhBsQQ1|(&XUmx@sppAo zV1?6{TYRH9nTqpHZmQ*YB^KGJF!a#f4)?zE0+xx`|jS0u9^h>d09{FS^isMS?OV?N2Q| zz7gJeLR02SPgpH2QeA(2+a?Dix?SgA$+A_*RH8|~e|(h<6s)5Ae~N>uW~)*89WlktI-W9Q-7`3eljM))n_7XH~IYUOGZ5_T?eCQN&+OtuwPKEj$7f| z-8g#ke%WaX0dS?Dy{P|PN(+u>8su~f9AK%W_j(QY35m<2xo6Lxlpz`{%l6d9+(6Pv4*d1`m$8;fH9$1AW~=|bQf zwz3}S7H#K@F9t{;6H3jc;6VHW_qyDa&4-Lj#QdHa& zzXzL5>ra#$s6DFuDD4Rm*XHHz85Mn4yZ@j^v#KRcFQvijz#=<^CKvm$JBQ?(?EYn30O4MpnKdj zPR&Bl4*_Z5?hT>N4F{d*1r2?VzAsm>7~oUB*q@~hCh8~x7HZ2MnFr#4vJ zQ0Ge!rY#cgW-$XH)Si(GSv;dG_`-s6X~I9WIVi9=ns%$M)H1dq{Vj+-G*pR!*h-sR0(d!?Mwo-^=d9cOCJ8J;u$i>@L=!N-9j8F+DIRY)``mK4~#13KkT z&%CH}4k;v?pp>{!Th-~HBo6BUQpb3kIjrjLVe}u;jPr|T5Ke#kLd+;orKqK!7Jc&! zyQ56nt}iz!@W#L5A$ZG#N#VPf4~}>CouyG{)nE7Cy7%`Azt(YdUckgB$MILUGWJMVBeJ&YPqTLv)}6;PVRI`}eIbmyvZ<8ZF}L=Vuf9Y5pEF zzURsedPQQ(6L@VaE2~rL2JqLJ&&_4J!}Z#rcq#a6m#;Ft=71T%-`?5Q zGl3Y;725MFQ{fXl$&A=SHJU zM}_xgha7VZZZz9JIwfB7ne?2fkF`p)9IRh7(DB2wDW;F6SJ$egxayp%Dn@Osc5p7; zzcO|SetmX{FQ*;6`3q{o;_1kpn=_MdN?2P%@VQ5TEe8JbHmAB)HO%_q;Ye6e6`iTC z4zfPp*iUj{1F#l4r$~y16*o&si1QZB*XUL_T|x)23I@G$&br~D^B}_!S|5QXRX-=* z(A}$MvXw{mZBog3|FfC8BDk`1bs2wiw*E|$%+pLa)6N%hp%@!fVV-En$adBKdeg_1 zLRktQ0Y&zRl<9D>rb@{(*HF&N+ltrPy{;9{gAw=BIROd_4*^4sg>L;tl&Ez17(w3 z`f^a&w3_I>G43CZR@Q!fH&o!oh4guf!WrqHOD}0K>E9y5V|QDcM;kSfF5fVHT5cYn zLp|pEp1rbzl3t?&CcxXR!8BbaMjj~h|ot5 zQu?M*;axU1+L2&%QozK?7G94)uFLyvd_b;i~Ji+Ns#d~T2px0#k=nUVs8i@s;j8w26Tx> zxdfiA_ieJ+k@WSLmcq^VGm!4SFJLFYcCC5!2Dr(SS|xw&$S9?*}w<5zOE0xn$jN;umWY`MJ2(pFsM`)XVA|>j&j@ z{roGlm+w@ko13$KG}KR=WChwhI7-uc#YPS~Qn&ubGDI&G8l5aX>fBYp!Vvw6Htxvl z#GUhED+kj8b`$w(5ClcJY;^a$kgX0B$@ER+%&nQ5r9g#W$K&6g<1pkZEAbDc@}Qv# z=0!LN94#5?%F>$tKHm7;6JKMx;j*q(JLzjGwY!*G2Z=c1A_Q`sBQ+>_=RCaYAN-~9 zZsYh3yDZUly)ebL6=rhtKfr_Fk6J%|3i+|a=Xk-=O+IVEaGoMV4=6Zg3H{U#TXL3^ zW?LFh%3OcAoqCPpzs02d1^l%jsy=h`%YpO&jY!O2*w)8wVe$}Xcjltwq zb5_oj5Hw1e$=V~$^gHI_i!N%4$CptF8>6WZw(bmE(5O0X_s)H(2Q@HC!MWREXuoiD zX=2XY;il&WCbtXj1S4vQOT_$R&byE&TxTBYU%jdj`lYp|rQ-N0#csA(Q<&Ke1B zGovV-u-#Y`l$3RJH-a9mol7wr4pOkISj8HvyveEZcSssyl;NPx+X{{`tw& z^Ye-QrnuMnwErLo2Qk~7>Rx%%QD1z|2GD-(z{+Uv&%X-w7C+bHy*%|B=XjLgH6jtm z-skT^?9Ht$r{IzK5!AGL>@cr``-yW6RM7pVx60NboKhK|p*54KJ~3)Cz`nOfDom{+ zpRN&uP>RP`^eie|o(V&b_dHbaOmbOXeaPI)vpI2LcN${@(mAx+i%mq(=B}#Ez+ zBz%NK3z$%QM8emOmj3wup{i@-`Fc#^2Q({7j_Ox-oU<9~F4&+L+8Wd*x?IIzdxy_W z@Sl0@8mfSRwq~nqA!mr2;#i;VstatMfqLL>#r;Qk^GGO@DB=%@Jms9o#hX zb-m@Nb^Hw@iPuuH1_o0xB*~lA!6**zc^a?rZ8Siq$C{e>3DSi_{c<$Mvjpdi(tRyid=p z)F*S!T!~A}dO#zRGPwiR&snG1H|QkJwLwWqoQnzCkYMvlOCCH6ZdmmZ3l(8NQ~!x# z#vXKkAJ448-U2*6prck&8Vv9`yn0Ag6Dv4GOJY^x&e#| zF$>ZJd=;WjtEth4sd9WmmBoek`Bb{T_+pTYDq(KKG89hh*LmbZ$<5wE51{tulB278 z*POJ-f6rlTZM@#{t2dFjOnxrK4SaDvQhkuPnUk4$;mTLs)!AQ%?qnrTI`JvAEvb>UzneG~5Kz4>j4x%eFk$Ky`s~buX1EM=- zcB;fvm6VjS!s<6?KbhBw1+CvgYj02z%z+_qj|Z48=^U(iTWBc3Gz)`6z-S*nsDuqY zJ{}KT*Ce<0`&vnr zypJ2@oI43aMujl55H{7~l;b{$_soNA96Q%&iAEh^MULNMO=tla`JZ6itPSlgf`4E( zn`_NeBQ`3%+3X5#;BVj45_{xz`l1!8XJ2$yVF*)mYf0ibUZa+^0`<=@)%lX0&DR1d#h)vTWqt%={G?U6b z$|)(6dE^(!X{dKM()Vwu(^J{1;!J5q^^Y+ORxCQzIeQ>g^lqh*m z{&|Hu^H6PQf?`L5C|8)6m;eAwsVRy)_Cte8NdaF8QQX)_2ApnlW4bYusgKJap=OoI zks~}6C=_*8d=k~})=JmWN!CyTr3wi-M+5 z<*r&7O;>fGXS`_@#a#ypecvQXIOgI>799abl{D>E*v)?@eD_A5f6| z!c5%RFUB%gwAQB|$)`dl%7gkwm*@FL8@_k)O;{4(=U1<%2tBa1q(5+|G$Xyj++~x~ zT&I_=f#NM_L}X;Yj=4SBoN75%LXPJn-SwYU!UP~-BapQr1@V%XB^mTrSq6-u=}JGr zTBJ+{k4W^zT&g)gPU)>3(xD7Qv3vRpQ?B`O4l{WjXuU|xI60p#Mpf`tK7Kwf5|d2p z(*Rg9NjIGtIiNR_csZF&DVn{2O{ata6!%s*0F;fc<`g(LDyri`lU^ObMd-OonSd)` zmgxl`DpkscY?@wR<5K>l#rlqUN_ao51~k|OpeCxBAXi(CI|uL4=XTbXva#$@A(~lY zN=tK?CsytD*HLA@tKOp|_i$4w`&B7Ux5Te9ZD=*UVS{^1TJI_vS@tb%76L3BS98m; zhEoIx8VpR8Raj7fY6r`;REOEaOZp0mo1It6fo+o^&;WN)xWPLDOldvEJ%Cj+(ry%>Idv zN~eQ{rxIvVW9BKU2+|$ae7~4kLbn7O*edCb_qsx;DZ?(lbu}komr}kKuwj=r!x~#O zxNs0nD}iKrwKR=OOy2SKEMY8$P-rw)(ca6Jn7pNJu+bU9@I7*z&iyjP=mWsl&1{G- zbmzwOxN&Yhy$-|eqoX4p zi^U=us1JVtP81-OiwUY;7I7(?-h|eD3ame~H>p!}DP4 zI)24I>i!mdmn32E%0I+g8QibJTe|eQ>YuL>N5eFIr_iA>8?I#ex2|5vEDI56mw{XT z$vvBbRy@=XLhq`jUY}lBRhK~2Yf~TJx`d3{!BjXxDBroX4bOkIDBsw)=zW3m9Ms(* z!me&Sd`!)e3gTr#wWeTx=Nu441q{t2EFlIXu5Dl+)Z-=zdg6J2Ul(lJ2eeC5Rc=Ww zeZ&6>p|Ai`sj4-XukAm_aN%tzYe;qzJ&1D3)TnPCBDMVYMUtq28v}W-=8nshLSS>2 z1?Iu(+NE_H)B9h$gG?juSsRp=zwEjF$!sz9>iC~20szw3( z7DzW{v2)THeUke6`jiWJKiw-2&KbglNn0@zwRKxlZ!Bn*@*W#&AxGwm@HXf}FgGWN zcmA#)Eke~G_D(@P-jnlbo))o@?xXfUPg-*QpWFVV&yBQxsV6F^V;&+MF@_%a#HHe#K{*4PKXbTLY5$SL5+lw7busvvw1F?l|Q1;0*fG58KNX9N=$(t>qGaQ zaI1r6ZRd^bEB{u{)zWjSFL(cPvq_&Pj&^DPtWzZvzKyupXB~2B;r(;yaIkti1W^*! zZ-B><$R+H=!DsD~E1xe$VZ8AAQVIkNg(Wn#i-{bVt<)S^?n_!3F6CfbL_?762f@CpkYnJWK(Xi4d>}+0Ei1q`dCt6;@@i{o0*?iNSA_ zi+ZA79aM~G$+|%M^Wi4W!#2svR#$RJTMlflX}4hmA0JyTL7W}`x)$RhtG0KYg8`GZ zDY++iTARt&<=uDr{^0HbXkET39bREZYM-R7c}Bq558?G^%RiT<{8C4fw7%NJY7NR; zOQxc;u!}#zBS$3PL6{X>4lX}C=Qogf8Ixl<_lAL7uo%B*yEHRB9u<=#{$ja8hEF>=)4tM!*Z(`5rxXRwlej>0uyl^SPP-o=RQ- zS9e@Sp93Gg7yR*aOu3Kr+@iZ;Wuco_T@LTnNw28Gf(J;3q$X?w^NaDRk$~fpl*LaC z`qfJJ>UJ~_m<_g%aXV>Ic>%m#Tb!VQyvRYwcpeHR{zIE@NmcKEA0b!Hz$5hL%uLVM zp3fDB+Dg)Dbbe1dS)^lq%h+zP&I?s1u8md0gD58lX#eNWw2L>yQuy0PTZ= zgID=NiPQdzJBOO_mu?=3(}jN!iOQy@;-j2>ip#~tQN=Km{|0+u&>4$xaiX1W&<2di zJb%bQ)K|(@#bSG^CfpP=Qq5CZtjZrrd3bnCsaKb`!~;Sp0=B3<$4>8}I79@;$;U*% z>j83%!Iq{Ek9o@v$b|#Fz_JvuckYLAXk5CN$EEO#gCysVj^Md?yzZz>u7lJ)-7*ns zm>?NhpK^&9e` zuQ=#2S}ZVGrpv&==Iel7CF9c%zDzgE0`S^uM^h!GEZW=-X;G5{ri20Rsw^nE1xfi! zg%N@*`0UwTd(UU3m-*!kvF$qdVG31}LA+=#ojO02x<|TZz~`jElm-qwUn-FF_Kd9< zupn4Rr+$wGd0|X1jDjx@Wex+7cOVAcsm!duv1d_eNCx%7gxKx4Z|Ymju8w5Yv0Aasy`G$lQW9dYms-lPZi-6GJUlnjg&KNS%4Eaj;! z41V>m=kAVDhSyB;Y&3g{V+E_jd5c_6trKaFT@>HwJwxEnye4Qy=2 z8uzH4o^X&g{Sicjg*ul?wTQWNsf&Jp@K_mDeKV74{xC1UR@W0U&eTuG3N;Xg{1Slp zF#<~Lguge#-UQr9=FRJ^?yXL9@VItS2+)Sr$U(K76t~(Q9{-~vE!#D!ABR>P`rE2z z0PYbD%VTz{C;LHe%W$AEq!LNmnv$M(5IvoVk$d!CO#oA|-1WZ2k=6aGFoxX&Ch{@O z4bxTIGOq-yyI=e61kxcrb)KFc2eia>^t!E&4t?$nRHO z|M%G$0Px${|2#bgnI*WzmpO_k;xD{_5{3R?zYVx~;;4c>@Ht2{__2Ragdyi404=>2 zD;4lE7V(Efwi5!>6p#<8g4H**_KY;;rT!c4Yyx2V7?|&CvOW-Hz71H!#Ijuls8o;~ z*#G{`9L-q&6dH_ZvYt&~z6@OKd|M2a%mWxPoagw#SpUA)Fp&CeQ;=SBdW-Mck~fe6 z+Z8yBeg_^6n2)^DbX{}nI8MAPY{p&SIFjlu_&Pmg2}aN~X Date: Sun, 19 Feb 2017 15:58:34 +0100 Subject: [PATCH 2/4] Adds threema to the service list #689 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 30181857..54c0ec92 100644 --- a/README.md +++ b/README.md @@ -113,6 +113,7 @@ Riot Pushbullet Movim + Kaiwa Zyptonite LinkedIn @@ -121,6 +122,7 @@ Teams Xing Workplace +Threema





































From 2a214b8eb2fc0cb5c04ba49861b06fdb7261b1a5 Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Sun, 19 Feb 2017 17:11:07 +0100 Subject: [PATCH 3/4] Adds a reload button if the threema service says "error" #689 --- app/store/ServicesList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/store/ServicesList.js b/app/store/ServicesList.js index 0fc5f699..9de2c0d6 100644 --- a/app/store/ServicesList.js +++ b/app/store/ServicesList.js @@ -686,7 +686,7 @@ Ext.define('Rambox.store.ServicesList', { description: 'Seriously secure messaging', url: 'https://web.threema.ch/', type: 'messaging', - js_unread: '(function () { let unreadCount = 0; function checkUnread() { let newUnread = 0; try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let conversations = webClientService.conversations.conversations; conversations.forEach(function(conversation) { newUnread += conversation.unreadCount; }); } catch (e) { } if (newUnread !== unreadCount) { unreadCount = newUnread; updateBadge(unreadCount); } } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();', + js_unread: ' (function () { let unreadCount = 0; function checkUnread() { let newUnread = 0; try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let conversations = webClientService.conversations.conversations; conversations.forEach(function(conversation) { newUnread += conversation.unreadCount; }); } catch (e) { } if (newUnread !== unreadCount) { unreadCount = newUnread; updateBadge(unreadCount); } } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } function checkConnectionError() { try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let state = webClientService.state; if (state.state === \'error\') { addReloadButton(); } else { removeReloadButton(); } } catch (e) { } } function removeReloadButton() { let reloadButton = document.getElementById(\'rambox-reload-button\'); if (reloadButton !== null) { document.body.removeChild(reloadButton); } } function addReloadButton() { let reloadButton = document.getElementById(\'rambox-reload-button\'); if (reloadButton === null) { reloadButton = document.createElement(\'div\'); reloadButton.id = \'rambox-reload-button\'; reloadButton.style.position = \'fixed\'; reloadButton.style.top = \'20px\'; reloadButton.style.right = \'20px\'; reloadButton.style.padding = \'10px\'; reloadButton.style.backgroundColor = \'#fff\'; reloadButton.style.border = \'1px solid #ddd\'; reloadButton.style.borderRadius = \'2px\'; reloadButton.innerHTML = \'⟳ reload\'; document.body.appendChild(reloadButton); reloadButton.onclick = function() { window.location.reload(); } } } setInterval(checkUnread, 3000); setInterval(checkConnectionError, 3000); checkUnread(); })();', dont_update_unread_from_title: true }, { From 17c0ce4c10c679f331244c73f34e6b90932c9a96 Mon Sep 17 00:00:00 2001 From: Michael Weimann Date: Mon, 20 Feb 2017 18:47:19 +0100 Subject: [PATCH 4/4] Revert "Adds a reload button if the threema service says "error" #689" This reverts commit 2a214b8eb2fc0cb5c04ba49861b06fdb7261b1a5. --- app/store/ServicesList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/store/ServicesList.js b/app/store/ServicesList.js index 9de2c0d6..0fc5f699 100644 --- a/app/store/ServicesList.js +++ b/app/store/ServicesList.js @@ -686,7 +686,7 @@ Ext.define('Rambox.store.ServicesList', { description: 'Seriously secure messaging', url: 'https://web.threema.ch/', type: 'messaging', - js_unread: ' (function () { let unreadCount = 0; function checkUnread() { let newUnread = 0; try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let conversations = webClientService.conversations.conversations; conversations.forEach(function(conversation) { newUnread += conversation.unreadCount; }); } catch (e) { } if (newUnread !== unreadCount) { unreadCount = newUnread; updateBadge(unreadCount); } } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } function checkConnectionError() { try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let state = webClientService.state; if (state.state === \'error\') { addReloadButton(); } else { removeReloadButton(); } } catch (e) { } } function removeReloadButton() { let reloadButton = document.getElementById(\'rambox-reload-button\'); if (reloadButton !== null) { document.body.removeChild(reloadButton); } } function addReloadButton() { let reloadButton = document.getElementById(\'rambox-reload-button\'); if (reloadButton === null) { reloadButton = document.createElement(\'div\'); reloadButton.id = \'rambox-reload-button\'; reloadButton.style.position = \'fixed\'; reloadButton.style.top = \'20px\'; reloadButton.style.right = \'20px\'; reloadButton.style.padding = \'10px\'; reloadButton.style.backgroundColor = \'#fff\'; reloadButton.style.border = \'1px solid #ddd\'; reloadButton.style.borderRadius = \'2px\'; reloadButton.innerHTML = \'⟳ reload\'; document.body.appendChild(reloadButton); reloadButton.onclick = function() { window.location.reload(); } } } setInterval(checkUnread, 3000); setInterval(checkConnectionError, 3000); checkUnread(); })();', + js_unread: '(function () { let unreadCount = 0; function checkUnread() { let newUnread = 0; try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let conversations = webClientService.conversations.conversations; conversations.forEach(function(conversation) { newUnread += conversation.unreadCount; }); } catch (e) { } if (newUnread !== unreadCount) { unreadCount = newUnread; updateBadge(unreadCount); } } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();', dont_update_unread_from_title: true }, {