From 4924ddd17215c1a447ee9df4346ec92c4742445e Mon Sep 17 00:00:00 2001 From: Amine Date: Fri, 21 Jul 2017 12:13:51 +0200 Subject: [PATCH] Changed CI from circle to travis. --- .travis.yml | 75 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 4 +-- circle.yml | 56 ------------------------------------ secrets.tar.enc | Bin 0 -> 10256 bytes 4 files changed, 77 insertions(+), 58 deletions(-) create mode 100644 .travis.yml delete mode 100644 circle.yml create mode 100644 secrets.tar.enc diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..ba2d0d7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,75 @@ +language: android + +jdk: + - oraclejdk8 + +android: + components: + - tools + - platform-tools + - tools + + - build-tools-26.0.0 + + - android-26 + - android-22 + + - extra-google-google_play_services + - extra-google-m2repository + - extra-android-m2repository + - extra-android-support + + - add-on + - extra + + - sys-img-armeabi-v7a-android-22 + + licenses: + - 'android-sdk-license-.+' + - 'google-gdk-license-.+' + +#install: +# - echo y | android update sdk --no-ui --filter "android-26,build-tools-26.0.0" +# - echo y | android update sdk --no-ui --all --filter "platform-tools, tools" +# - echo y | android update sdk --no-ui --all --filter "android-26, build-tools-26.0.0" +# - echo y | android update sdk --no-ui --all --filter "extra-android-m2repository" +# - echo y | android update sdk --no-ui --all --filter "extra-android-support" +# - echo y | android update sdk --no-ui --all --filter "extra-google-m2repository" +# - echo y | android update sdk --no-ui --all --filter "extra-google-google_play_services" + +before_script: + - mkdir app/src/main/res/mipmap-hdpi + - convert -size 72x72 xc:white app/src/main/res/mipmap-hdpi/ic_launcher.png + - mkdir app/src/main/res/mipmap-mdpi + - convert -size 48x48 xc:white app/src/main/res/mipmap-mdpi/ic_launcher.png + - mkdir app/src/main/res/mipmap-xhdpi + - convert -size 96x96 xc:white app/src/main/res/mipmap-xhdpi/ic_launcher.png + - mkdir app/src/main/res/mipmap-xxhdpi + - convert -size 192x192 xc:white app/src/main/res/mipmap-xxhdpi/ic_launcher.png + - mkdir app/src/main/res/mipmap-xxxhdpi + - convert -size 512x512 xc:white app/src/main/res/mipmap-xxxhdpi/ic_launcher.png + + - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a + - emulator -avd test -no-audio -no-window & + - android-wait-for-emulator + - adb shell input keyevent 82 & + - adb shell input tap 650 300 & + +script: + - ./gradlew assemble --configure-on-demand --no-daemon -P crashlyticsdemoApikey=$FABRIC_API_KEY -P crashlyticsdemoApisecret=$FABRIC_API_SECRET -P appLoginUrl=$LOGIN_URL -P appLoginUsername=$LOGIN_USER_NAME -P appLoginPassword=$LOGIN_PASSWORD -PdisablePreDex -Pandroid.threadPoolSize=1 -Porg.gradle.parallel=false + - ./gradlew connectedAndroidTest --configure-on-demand --no-daemon --stacktrace -P crashlyticsdemoApikey=$FABRIC_API_KEY -P crashlyticsdemoApisecret=$FABRIC_API_SECRET -P appLoginUrl=$LOGIN_URL -P appLoginUsername=$LOGIN_USER_NAME -P appLoginPassword=$LOGIN_PASSWORD -PdisablePreDex -Pandroid.threadPoolSize=1 -Porg.gradle.parallel=false + + +before_cache: + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock + - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ +cache: + directories: + - $HOME/.gradle/caches/ + - $HOME/.gradle/wrapper/ + - $HOME/.android/build-cache + +before_install: + - openssl aes-256-cbc -K $encrypted_cab814aaeabc_key -iv $encrypted_cab814aaeabc_iv + -in secrets.tar.enc -out secrets.tar -d + - tar xvf secrets.tar diff --git a/README.md b/README.md index 895e1c0..c4b3e9c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # ReaderForSelfoss -[![Gitter chat](https://badges.gitter.im/amine-bou/ReaderForSelfoss.png)](https://gitter.im/amine-bou/ReaderForSelfoss) +[![Build Status](https://travis-ci.org/aminecmi/ReaderforSelfoss.svg?branch=master)](https://travis-ci.org/aminecmi/ReaderforSelfoss) -[![CircleCI](https://circleci.com/gh/aminecmi/ReaderforSelfoss/tree/master.svg?style=svg)](https://circleci.com/gh/aminecmi/ReaderforSelfoss/tree/master) +[![Gitter chat](https://badges.gitter.im/amine-bou/ReaderForSelfoss.png)](https://gitter.im/amine-bou/ReaderForSelfoss) [![codebeat badge](https://codebeat.co/badges/bce66c0f-fd28-4341-a159-3b6dd22ac854)](https://codebeat.co/projects/github-com-aminecmi-readerforselfoss-master) diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 65dd554..0000000 --- a/circle.yml +++ /dev/null @@ -1,56 +0,0 @@ -machine: - timezone: Europe/Paris - java: - version: 'oraclejdk8' - environment: - ANDROID_HOME: /usr/local/android-sdk-linux - PATH: ANDROID_HOME:$ANDROID_HOME/platform-tools:$ANDROID_BUUILD:$ANDROID_HOME/tools:$PATH - _JAVA_OPTIONS: "-Xms512m -Xmx1024m" - GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"' - -dependencies: - pre: - - touch app/google-services.json - - echo $GOOGLE_SERVICES_JSON > app/google-services.json - - touch app/src/main/res/values/secrets.xml - - echo $SECRETS_XML > app/src/main/res/values/secrets.xml - - mkdir app/src/main/res/mipmap-hdpi - - convert -size 72x72 xc:white app/src/main/res/mipmap-hdpi/ic_launcher.png - - mkdir app/src/main/res/mipmap-mdpi - - convert -size 48x48 xc:white app/src/main/res/mipmap-mdpi/ic_launcher.png - - mkdir app/src/main/res/mipmap-xhdpi - - convert -size 96x96 xc:white app/src/main/res/mipmap-xhdpi/ic_launcher.png - - mkdir app/src/main/res/mipmap-xxhdpi - - convert -size 192x192 xc:white app/src/main/res/mipmap-xxhdpi/ic_launcher.png - - mkdir app/src/main/res/mipmap-xxxhdpi - - convert -size 512x512 xc:white app/src/main/res/mipmap-xxxhdpi/ic_launcher.png - - cache_directories: - - ~/.gradle - - ~/.android - - override: - - echo y | android update sdk --no-ui --filter "android-26,build-tools-26.0.0" - - echo y | android update sdk --no-ui --all --filter "platform-tools, tools" - - echo y | android update sdk --no-ui --all --filter "android-26, build-tools-26.0.0" - - echo y | android update sdk --no-ui --all --filter "extra-android-m2repository" - - echo y | android update sdk --no-ui --all --filter "extra-android-support" - - echo y | android update sdk --no-ui --all --filter "extra-google-m2repository" - - echo y | android update sdk --no-ui --all --filter "extra-google-google_play_services" - -test: - override: - - (TERM="dumb" ./gradlew assemble --configure-on-demand --no-daemon -P crashlyticsdemoApikey=$FABRIC_API_KEY -P crashlyticsdemoApisecret=$FABRIC_API_SECRET -P appLoginUrl=$LOGIN_URL -P appLoginUsername=$LOGIN_USER_NAME -P appLoginPassword=$LOGIN_PASSWORD -PdisablePreDex -Pandroid.threadPoolSize=1 -Porg.gradle.parallel=false): - timeout: 1440 - - emulator -avd circleci-android22 -no-window: - background: true - parallel: true - - circle-android wait-for-boot - - sleep 30 - - adb shell input keyevent 82 - - adb shell input tap 650 300 - - (TERM="dumb" ./gradlew connectedAndroidTest --configure-on-demand --no-daemon --stacktrace -P crashlyticsdemoApikey=$FABRIC_API_KEY -P crashlyticsdemoApisecret=$FABRIC_API_SECRET -P appLoginUrl=$LOGIN_URL -P appLoginUsername=$LOGIN_USER_NAME -P appLoginPassword=$LOGIN_PASSWORD -PdisablePreDex -Pandroid.threadPoolSize=1 -Porg.gradle.parallel=false): - timeout: 1440 - - cp -r app/build/outputs $CIRCLE_ARTIFACTS - - cp -r app/build/reports/androidTests $CIRCLE_ARTIFACTS - - cp -r app/build/outputs/androidTest-results/* $CIRCLE_TEST_REPORTS diff --git a/secrets.tar.enc b/secrets.tar.enc new file mode 100644 index 0000000000000000000000000000000000000000..b3ca8b459a4f731a71c320cad435ef09828a12e7 GIT binary patch literal 10256 zcmV+rDDT&?v!yync=%A#C(7A%%M7Pe*|Mwl4}hWkzRcNcJNepNA$WRVUv04|#z^Nq?vkN}JP%VUDJHEUcit@~*AV_oTTPZSgwRNX{M8L6*T`9v%3X&rsCpTuT|#e?I4zXltcN0^$(CqF0f? zmH-gI$`(r=S-!!9wqT+R;qb#mKy#z4-O9&`>$|S;PapV_?rAWdTOOYAW}U+R_#+*; zTE~saJxMgkjhXA35tUT1MIvCg*Z;iskK`+mB8vJ-&R?o9mU7vrjtJUBAh{|{+>M;-<6tQ zXkwNyP}E1XNsS?32?!DMBUma+icxOXirpL}Lu2AI(@~~z$hLkpZ8SNCL&~dHju`}) z5vK9qvf-}dCtSUn0q5jeWwdK)2$3p$-qBN|*-a_?^~#Bq%($_uWcooO>eMKh9ktYV zM0!d{k~ykZ7;%VeMqrXnKw*Qo?!_!Qse={?Fh><0+({)bR>cJ2;d(wHFmH?0Hwy*q zt&jDrN}N}dN5OfLpaeg|cSJlY`Kjrw{yHIZ%v4 zlsKo`$=KS1@MAOrf%(`-;jJR;o-tMHK7!o16ZubrB|JJB=2Y+K@ zx?8C2NtPc0I$uop64-*peK$#7E7rfQk%={E?qX^_Uq-ZerA<1sRtHNEmHmq%6FWeA80W0=fWNjmzemQVyp%=4co+;+v(Lf87ha04vpcM7Y#j}Gl?Q=pOcdT# zai+Y=LAXo2`affq8x$JU1-`;vx{kV;eF&CLr9f#^r7`ST?PgC@w(zdngeIfbK3M#+ zLXZJTUPjLZ*i!sP$kI&Y^5fcTxE2)zq#cd0>HxM0Mr~q96OK66 ztTN(|UZnZDgX%M^*+_oTK-NgT)FPcQ-{6Ql}2BwS$KXsi#CkGgxAdj8zaw=HTaeF2dp?rD# z?xnIU1|y*(7Eow87W9REX>|S$PzNIk(i-GAy$Lnp%awLbvtz!5c!|(Cj)#%PXygb_ z8_)?cJQ?PQ||9vae^Dx%F z8p_{T&H31Szu@(%&iUFoQ?Yse*qVo^gAG8Yu4*fJ5j<8x7$IRDpE*|*GLB1(8%Hb7eQ(vG6E&r6T1M^dJ-7xwi<5dEq@Hy zHUpvbHTOi`Fp^Tky1bVn>9RYARkl$$7JX_wHDq&y&~xGcqW_ye6jfY$#=-f?{a%k|^@j<9?7dAwqe#$Hd(p5hULt|`ua(BHKWxpx?5t=*kXd}j z%U`eIjcrWFJp-+M_s&5{ejHDT&*aJWKVVrmmNwY)HN@ z81BPKj|?n#7Av1(O9g2`gkARb8?9c#Db*|B&P6C}gLcOE9c2ex(tPO@r#>Ecz4aXi zc}S?rNIEuePcXrBnmOGrh_Kel>JIJ}j#Q9netke5(S@sV@sPnmwm&lAxos1;df)im zJW#+$A_$=QNVrEX@Trz~sdN~RCn`Id2*xptZC-KjZXl`2eMt&84=hiHE$S4sn<%x| z@j!@|-QCc6H9GdKEdulWOq?!<^Sk@js{7ZJmnXdl7I}|f{B6Jhnex-{)$c&~3=+U% zffAf=5Muabil0xEKFXQ3D~R_yX+HwOhE_gkTKr=@q0yNJ8cAn^CjT+`DHVk=vWrc( zssas?U8j_e)BI`&nO2BOYNeWqG}7*5llRP|>1t+g2!Wu8%|f-%dbX z>^F-8X#}p=M@uo1O2tcA0Tt>+^Q3U&ZnfWIA4e|p61bF=v!%E5Basvnpi6hfeu!OY zaK?*jC5%RacG|%tvT0I!Xv{}N9*F+7tLMy7wqucGdo=8Z&-+X{#<6XMWT_UiqWxe+B_y(N2=lvnvXz8G2qKYSaN_Fj^`MDHq;SHmz_ zDb?0ES1w6!9`cD|it7C4bzP-=fL`>(&lF!k!_NYNWn~`#DY&2o%8p=P%_vZy&|Ui6 zMNzB5=&Jhm#7Hs0J}Y-D)4P-N?j3%F9Vrq{@8A3Wr*6QAqzl^LoJRv#XyNBAZi1ys zAj}$74I0vk%)K=}djb(_!2VEactRo%FsX?kdyu?j8C?%!x7vDuMdEeI38LW(x9NGD4p*-RlHfdO69k&mOG*J3sd%pz9RUN2asMsYI4^GZEH zn6c)NLpeLrO-xI1ZuuS-YY+0ZGu!_S{j`yzVSi5Rq{kofJ9y*QB#TP#Q(64DHr?)l zf5&M}QJ(FShqgPNj7>L@VlSS>a~7c!GEu9#aU}Lx{o8M6d=+m?c?ih2fn^BJ_F|u} zc?}ATvoMnW`zdc2yhB`tvHkLly||rC(tx(cN)SbaRen!>u1)P2)^JO6QLU`&WKoav zb%Sj&TqM`2vgCj%K^P~h)6ds9!0_rH$@}s(wh8=0A8?DhR}hyeb&u9v_}h?4S(YGH z)1T=9;19t>DA&=BKN|7^^fJ}X3^*!>{gv6b?=VWD3R8$^u}lq~0~a}*=fdf`DdJO4 z+$e^QYK<5td6}3vBNHz48qh?w)k81!Aq~^svQ0@gI9PEmnq)I%kTU#Of~6Fdyw0RH zz@QYxW8R67jIHzts&Tl;pgO1+6Gq`}=Zv~?PpS$TRB}6>ite_KtC9f`rqz{ZO=5Jg zYfArH;|}EmVlU^dS9b&Cq`Jn-5a#26MaqLbYq^U1#WlJz`q>?&rj&LDOMD2FNHK@s zte6*tW={U~t{J|yo-k4wj~kq=E!85VfZ6|GyweKR5xynSXHS#f!VVtbV#Yt22k36wA(?;hfSNFfpSwctq^a7_;cG#}4fHtm8 zTH+;m>pjdX&6gkzn%#l5YGJ!*;ZNNFv1M=~)!E=p@Uyj!GoX8sVmQPp>JypWFGn*c zHQAMWBrN=#&V=wyfNI#i4?sgGYQL{A{e@l+JdB1yS4FXq7Dtuf_bpwknb1`MNXLUR zI6SDWlGW9yFtD4sjv;0^_&Q0LO*D?uMoJxXIDkH`T#HDP;#s<8_;mbc@m7AYx zX4^rHW}~YEoq-O*&KWH&ehFq`&jnRNkso8!mKyr1Aj+mo4 z=5;#~9zdlZ0xlyHtQ?h^abRI;G-v-Xd~?95mH&f6ugA_}3U(kJFOGvq=m0*G;?XW+ zABQE#JutRmvC|pkO+hy^3@t!dP4R;W>DHlgwj}NsjMl{HvqT6hWo&q5f6&95$dJ-a zYzad(m(H;%IsrH{OWTUpcXu0|4q;98g2{5n!uO|@aroS~@=y_Xt%AC1m#TG?790*P z!fE?ne!B*fo&FshyoXn?*mw?hUVu`CPI6}JlHaVj3))3Kk0cdoKYWQ98r+nf_C5DmHM#p?$_|t@o#u z>yD%UuLNACkJs;1@|Bz#h*88xUO2^81Ke@8jIS-K zsRE%$Hw-&IL(mcB62&Hi^dISCa+i)Sp3prBfa{MjPPcTC&r13| z0s*g=g!XagkYl7568aDY5Wul{9`B6(?3N|tu9eO;FI9-w;tQZy7#eLIg9-!P4M+ak z&;Tb9m~o;e{p7f>FvJ7s6^!w&QLztvnQMUB`bG05mho@l*>0d*#!YK9Avpd~c3Du- zlOo*ViV!1&n{gpazrYCab4L@7CIuVpS zC1QfCCbF<1B^vhGx+*wWFMHqyUwwc@36-JE{-hdSqz6qPSaoWwK}+=0^N`Ls_pH9G zbG&B`aHGa^qA7b$HmNUR+idaruB?Opk zKT5J@!ITJ^SbW_ln^v1wnjjDT&#$Pn8`MxwSd9+I^8VRxnb`PsV?2#Z+nx?Kv7*=7 zYzEt);tk$#>BapCi8**qo-l`$jhd66E23d1Sc&X?+`Prg-BymX1C2o6^ojV*2+Ft( zUl+;>pmz~w#Y31WtYxr4U>u6*M}I569q~e2C|VfBpmdM}J*Tga-XvxLoGt^a3f&vc z&$6de`u_q<^&93@>v47@-Z=y2IFVFqTG7=WiB}s%lQ_-e=OrB(D`0Y&UT1YHkspOp zYJZ)?Rv9Grlks|?t2eTU?;l5S|G;oeu0M-Ztj+^i&{6#><0jus^FWhP=jx51!^SWw zMpzx^!YtIMGPbsczobkf4hjy_d4+f9(7l8TcDfp)5wyShN||N1;1pho%s+{LJ~scn z-NM>-==~trEz>FkA_>)pl!v*>#V>p%{gnGz->zxSQErIsF~e%KBKVF+U&lHx3#&w1 zg%5tiOo}jp?tz0R{h^>KOOH|PXAB^ToG+g6h3F@wmz-$8JEcdcXB8kwwXVQVu{k62u$hW4r@a@tr_MD}G+$ndFK}*gGm&y<_CxlCClB$!C0wvMh zH6_;C<`PKDv=R=NE6L_bsGUpXs4|VDt4gxgMC*E3l9r0Q14%+nE;QZZBJYs%G{e_Xjgq*u zRqJlEt^h=brRwHL9oc;l@_Wrofl;2?nJP-wMFy6ebH1MQOe_m}1*t|FpP{hve|hR` zF<4-tY)A3ewb2JzSOI3$wrW@d^9(fZ)7I)Q&^{h*HVWd+p9J-4Y#;riDAPrwRDou17(HIOmuNvMt$4RhTs>AAX04xUi{bxmWHlPqJa@t&_ z#sOZ!dQK+cS!3H&cI|kGr(~@(U`rt^Er3Q}OmB?0J`gL~FKm&%l4nFtvs)p!Jf2Na z70=LcV1>&{OSmrgPN_NWdn61&-r)^sNBmbJ$dxaKMh`6mgb_E0ZC79sw`YS?J2XT5 z2!FAt+CdJu5LG#1;nC}sXqWPMUm*Ndh1A(l z4s)Ud3biR~0kT=+Ke8ZAA>Bz@rUJ~dLY zny12b49uVR?DfkJw%8)D83x&Z3oEJ9-I+L=uL0~KX<d3n z=2Q?ol+7^+`s#6`MD8(ankzemMdvqo-;4f2KM{!vZQj>G$G z*(7-QqRG8;GzxFV%B?w`%F=?VXmGE|Or8Q3Kfcv0Wf=^Ei8iwqdjtDtt{ceKy6hW` zz?I4%o2`9Uir@v_{UCP0 zwhA-_0PfTZ{j-YOB+(L4dvc#%WzpSpvAYQOEO=-$9ZAELl#rmA@}N3GHjY?>Hd^@c zM>lE(C~H&0Gsv50UMuEvw8)q+z4~y!_!5p<3j3_*6~YjQklNYhCKsR#<6)B}#8*6v zZJUoPbF!ZT_pw8QZN6+Y!YEZx3b2Mp)|!R^LjwiO5la+LZ9L_^3uy)o14Ur#m?9K& z-yBMJYnYb+x_gdC-x_j3MWIohL@!?*1_9=?BP0(wbn%2xJgCv5NG!Abpa3VP2DQd* zg3^C8_CYMqi58-i1y8n)b_}f&NvOftFa6EOOwBp`#l$XSD?0Zx=MDCD|6Ia}12oac zdn*yNgvCRc{&7;RIw8@Gwm-leZtTjGi)I}4QX72!y^0ulK+wg zzY=mJBn0xyWk1lRj#!C$daTP{8_gC+pR|qAsm$9@J{A|N;A|B^`K3;n*;S-5ZeAxf z(kEz)k0V_$mKB0fRH>a`Bul+o&fijA91_&aF-!)NpZWuWz?Bi2n6jZh0t3yo4v$i! zqIPB_QR6^w0OK!EUYt10O4$JPtfAVYroEV`!mLeA<86v*pY`R_-D3uNh2WFcZCw?( zO3+UkA*Gjg5$UlV=^Aleg(f(X*cp@10@wRo$SKBBWa_k=xmEwK2&Q}G<_N|d1S^do$i4kG zJ(UD%_f6M3m`2s6>@}gLD3}Y&^r);&)qnAv3smvW*7EZ&d0)maEJT^C2!waVJ0?3W zUYdY%QWY-5EHeWV-7Rp+`5!l^Tp$T;FxTQC4I2yGPSx|Vjf3!tTyWV^64yAOkFMD? z%)iPWiC*3Lhb((5DjkH}z_i-_-gF8&(Pm?tOWe~bz>0AG+5BN0kSX6*|WgEXoqh12^tji@uuEgRLi7Jm34SfQ_v%9Yhw_|kjN%3 z!EgnL#r}>Hem36_i|{|}Ah)}ZFbzMFCZ1>$&G{5Sd@**}EgmLoTLC6|tw)STrOx=@ z255^5Qmt5J##11XZ$>G`d0__nDyYC^nX#W`Y?J6lJ+7mP50rV~b@@D-!&~;`OF^rm zXNH;y=zPc<=CXtfXJb9h0#dCn_^DY63@$ZOUK+ZniKA575Qv*&Y%3rGcf|D~b1P{Z zAd{>ODonq_jNz{UxD|tor7*qqmXN4%UBXPN z2KD&pMG2? z)?_;E-eO5Nx}>7gm-gVisb|Esit0p~uoZ20cODfu0TiJ9yx9gl{m(BEyV90J=tK`i zm5nlfFdR3wgD6UGx3bC>Gbtc&@J>JEFeDiFAxK9M4ZhaBM`|&4l4TvM%#pcAI`JaH z8{)JbWPxlc+Et|lkon<#ul;JHUFr>~n_Kz|s-KDklW_2@?*egNnCZ!Opg6R|J;lj~ z5~fZg)9w2r6Q=%dG7wB726F)W1&|!wVY&V*!U;{xu`Ka)4LW!V_wCqRWRzQlB4GdV zN*;sZd}2X$LO9@2cRr!scUG8<$bF!=$_oXZzc9m@hwMoH3dor7ZG9GlvMwjSHrcAT zqb)a3t8_>`JwU8DI{}nA`06nS3zq(+ZrW8h70-v$PzbH=gTp%@1~jH#!f@QHnbzHV z*KP2x6c&$^Nsr0c8LNH_%WtoZnxU8OfDqZvE;P?GVQg5+Fj?I$W18PKo3(j+Xe&yt zzMnN#(G|+_)b(1ye3d6sS0sq{=Klc()toBvi+2ndc8fb?-AG19>*a+v27T?T78x5m z>{YmePudU4T!1FXkDsGDDMXEf=C~K8$QyHX%zo12*KC8q-<)&q;v69#}!of{@;nn}C>^ad(y613^ru^@C<#l0vL; zN+#se->E%C0-zstDlo}WA(CgH=g8{KxD;Sc5f2i`uv>c%MY^ve=tmQRw= z@4&(gsc^!U%5~@rIc&0k$zSnht&y*?|MR^1OS);ptV%w5MeSA}FL$wSxWfLFeQgFd z_-?ko#O5oZA+xZ{^31g)kHM=Th}7B4kgg~6_S?mK@LIqoi=lECEm*i3@~v1w zJpZTCPn+VwGM7>V3!@PZZwWFP6SrO90h7dH z;ML>d(i#qTM)IHsv6R$P8XBaqgbL3AVV8L~T_jR&Tb<#f#CvCBMBv$ut~_nJm_S(9 zWgmVTTDJC~ZKpKI1~yxh z`P2}U_2L8)Y1hhU!30^=n>IOyH*Zuf&*2x$@nxxxSK%;Dc@`ul_i0)Kw^VZ|J8SG&!9y?QZN)kx63ya?Zwd*2-R))O`a{_w>xu1gk!O|gc^ z8}DvPigRaSYOZ{}8BBer$gU12Nd|#3`cypL;B#RJ`b{I0dfVFyyGMw0auD zT)SDCKm+{Y8P)nBlj9?qH>T|}?ZEW2$#1INg6{D~s3(#Zc}?=s1E;Jz;AImi5E@sVG!D;oVMENo!lN#y6yWoym?t6_!#GWSLBcWMH z%AnlOmy?-cvg$5FEs5j6#{&368X@bgiRUGXfJIJIl<&pnBF-n((v+99KIlF;zRr*# zUKC`nn`*6CYU-767ZegewoQ?II>SLTNzKiJMY0wz94Nkt(+N!Y*Fai~Ezl8?lbGM$ zB;66-?gQUnx(DiplC*j0da{O=q`wA9&a9{XY39KetWx#_r06hBQ(^m`PK=O#8^|-D z=~_ZvkJQmAq>MV*0PF72WaY4!0^@Z-(l9}Pp0iT9%b!~i0n+;VwAm)?LV3F z2u}p0oWmf(zSxs2w!@}w9^o&mw6~Wg2F8>;Pa~(DIuIw;2Y1qB0+808O0W}Q%=7=Z zcue!D0p*64PTKA7B+77q6ET7D*t2Dub?qgwqI+{3>7T_Kbzci3^pM?C+w(g-PbDzq zs8^yul{NG#SFb-VD$owtkLun8g>5m}&eX->zpO@J))u}`ku=O0*6Ypqk%VhG5?-Vc zWzC0$^a;0(6vt3=PoPd_DjE(Q5S)Sn-s6GcAw0mY0r$4DBU^RDEAm@0twn( znW`R~)YaJlacrv3Xm6M{OgL;&?r#UepLXo8fu&zFEa}eEi$pdbNR4sNdDS|E7<&|# zz>2+O&ND1m`|UhW2~l5ynL1etVndkgprl zPD^+$?GM8W8|NRyVe@;)K+Uv^aq)8exlXI6Lt7D;QEvb<%tVe!T+DUV&~i&jaBHMX z9Z}Qos!Zi=d_{1Ugy!HwR;*0*0w|>!wnP-YXaeBa1~m+7r&JFyr`KWb?Qd%=R#eJF z5|rw;I$PmShf}byjG5MiuEMY&jIoV00k4FM z1RFIe$LZ*~M9Qr4Yjw`ZR-!?1$VS3&T!w=yKi7<$fg%8?QJr;%L~I{~TM?OJS`W}oqwjuEpy^P-BhQdo z-hS+6At56Q_WT%TYgb&jUXd!ua$ZN-gx^4hjp_tu;^d_J$@t$fs1XH3log6k1I6f0 zL}J&d<>`q=>(ipG^Z~H1;;-7yA2?iW1}Bf)kEgorZ3+7snQ5uWuA1CJ$Y4