From 874efb6315c55b167c67e656e68344958b282684 Mon Sep 17 00:00:00 2001 From: gblancogarcia Date: Sat, 14 Jun 2014 14:55:00 +0200 Subject: [PATCH] Fixed orientation button image in demo project. --- .../project.pbxproj | 6 +++- .../GBViewController.m | 2 +- .../GBViewController.m | 33 +++++++++--------- .../ArrowButton.imageset/ArrowButton@2x.png | Bin 3706 -> 6337 bytes .../ArrowButtonHighlighted@2x.png | Bin 3779 -> 7600 bytes 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/GBInfiniteScrollView/GBInfiniteScrollView.xcodeproj/project.pbxproj b/GBInfiniteScrollView/GBInfiniteScrollView.xcodeproj/project.pbxproj index 83cfdd2..e74e02a 100644 --- a/GBInfiniteScrollView/GBInfiniteScrollView.xcodeproj/project.pbxproj +++ b/GBInfiniteScrollView/GBInfiniteScrollView.xcodeproj/project.pbxproj @@ -20,6 +20,8 @@ 4388DC371801A3280074CABE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 4388DC351801A3280074CABE /* InfoPlist.strings */; }; 4388DC391801A3280074CABE /* GBInfiniteScrollViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4388DC381801A3280074CABE /* GBInfiniteScrollViewTests.m */; }; 4388DC441801A3460074CABE /* GBInfiniteScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4388DC431801A3460074CABE /* GBInfiniteScrollView.m */; }; + 438EF525194C482D00756049 /* GBInfiniteScrollViewWithPageControl.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 11279485194B800C008D22A2 /* GBInfiniteScrollViewWithPageControl.h */; }; + 438EF527194C484100756049 /* FXPageControl.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 11279482194B800C008D22A2 /* FXPageControl.h */; }; 43E7ABCE184C9CA4007211A5 /* GBInfiniteScrollViewPage.m in Sources */ = {isa = PBXBuildFile; fileRef = 43E7ABCD184C9CA4007211A5 /* GBInfiniteScrollViewPage.m */; }; 43E7ABCF184CE0A8007211A5 /* GBInfiniteScrollViewPage.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 43E7ABCC184C9CA4007211A5 /* GBInfiniteScrollViewPage.h */; }; /* End PBXBuildFile section */ @@ -37,10 +39,12 @@ /* Begin PBXCopyFilesBuildPhase section */ 4388DC171801A3280074CABE /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; + buildActionMask = 12; dstPath = "include/$(PRODUCT_NAME)"; dstSubfolderSpec = 16; files = ( + 438EF527194C484100756049 /* FXPageControl.h in CopyFiles */, + 438EF525194C482D00756049 /* GBInfiniteScrollViewWithPageControl.h in CopyFiles */, 43E7ABCF184CE0A8007211A5 /* GBInfiniteScrollViewPage.h in CopyFiles */, 4357F3DF1801B3C700EF282B /* GBInfiniteScrollView.h in CopyFiles */, ); diff --git a/GBInfiniteScrollViewDemo/GBInfiniteScrollViewDemo/GBViewController.m b/GBInfiniteScrollViewDemo/GBInfiniteScrollViewDemo/GBViewController.m index a9e2e24..b5678ae 100644 --- a/GBInfiniteScrollViewDemo/GBInfiniteScrollViewDemo/GBViewController.m +++ b/GBInfiniteScrollViewDemo/GBInfiniteScrollViewDemo/GBViewController.m @@ -69,7 +69,7 @@ - (void)setUp self.infiniteScrollView.interval = 3.0f; self.infiniteScrollView.pageIndex = 0; self.infiniteScrollView.autoScrollDirection = GBAutoScrollDirectionRightToLeft; - self.infiniteScrollView.scrollDirection = GBScrollDirectionHorizontal; //GBScrollDirectionVertical; + self.infiniteScrollView.scrollDirection = GBScrollDirectionHorizontal; [self.view addSubview:self.infiniteScrollView]; diff --git a/GBInfiniteScrollViewPageControlDemo/GBInfiniteScrollViewPageControlDemo/GBViewController.m b/GBInfiniteScrollViewPageControlDemo/GBInfiniteScrollViewPageControlDemo/GBViewController.m index a78b22c..dd1abde 100644 --- a/GBInfiniteScrollViewPageControlDemo/GBInfiniteScrollViewPageControlDemo/GBViewController.m +++ b/GBInfiniteScrollViewPageControlDemo/GBInfiniteScrollViewPageControlDemo/GBViewController.m @@ -10,7 +10,7 @@ #import "GBPageRecord.h" -static CGFloat const GBNumberOfPages = 1000.0f; +static CGFloat const GBNumberOfPages = 20.0f; static CGFloat const GBMaxNumberOfPages = 10000.0f; @interface GBViewController () @@ -25,8 +25,8 @@ @interface GBViewController () @property (nonatomic, strong) UIButton *addButton; @property (nonatomic, strong) UIColor *color; @property (nonatomic) GBAutoScrollDirection autoScrollDirection; -@property(nonatomic) CGAffineTransform rightToLeftTransform; -@property(nonatomic) CGAffineTransform leftToRightTransform; +@property(nonatomic) CGAffineTransform topToBottomTransform; +@property(nonatomic) CGAffineTransform bottomToTopTransform; @property(nonatomic) BOOL debug; @end @@ -61,6 +61,8 @@ - (void)setUp [self addRandomColorPage]; } + self.autoScrollDirection = GBAutoScrollDirectionBottomToTop; + self.infiniteScrollView = [[GBInfiniteScrollViewWithPageControl alloc] initWithFrame:self.view.bounds]; self.infiniteScrollView.infiniteScrollViewDataSource = self; self.infiniteScrollView.infiniteScrollViewDelegate = self; @@ -68,11 +70,10 @@ - (void)setUp self.infiniteScrollView.verboseDebug = verboseDebug; self.infiniteScrollView.interval = 3.0f; self.infiniteScrollView.pageIndex = 0; - self.infiniteScrollView.autoScrollDirection = GBAutoScrollDirectionRightToLeft; - - self.infiniteScrollView.scrollDirection = GBScrollDirectionVertical; //GBScrollDirectionHorizontal; + self.infiniteScrollView.autoScrollDirection = self.autoScrollDirection; + self.infiniteScrollView.scrollDirection = GBScrollDirectionVertical; - self.infiniteScrollView.pageControlPosition = GBPageControlPositionHorizontalBottom; + self.infiniteScrollView.pageControlPosition = GBPageControlPositionVerticalLeft; [self.infiniteScrollView.pageControlViewContainer.pageControl setDotColor:[UIColor whiteColor]]; [self.view addSubview:self.infiniteScrollView]; @@ -127,9 +128,9 @@ - (void)setUpDirectionButton [self.view addConstraint:left]; - self.leftToRightTransform = self.directionButton.transform; - self.rightToLeftTransform = CGAffineTransformRotate(self.directionButton.transform, M_PI); - self.directionButton.transform = self.rightToLeftTransform; + self.bottomToTopTransform = self.directionButton.transform; + self.topToBottomTransform = CGAffineTransformRotate(self.directionButton.transform, M_PI); + self.directionButton.transform = self.bottomToTopTransform; } - (void)setUpInfoButton @@ -297,12 +298,12 @@ - (void)switchDirection CGAffineTransform transform; GBAutoScrollDirection autoScrollDirection; - if (self.autoScrollDirection == GBAutoScrollDirectionLeftToRight) { - transform = self.rightToLeftTransform; - autoScrollDirection = GBAutoScrollDirectionRightToLeft; - } else if (self.autoScrollDirection == GBAutoScrollDirectionRightToLeft) { - transform = self.leftToRightTransform; - autoScrollDirection = GBAutoScrollDirectionLeftToRight; + if (self.autoScrollDirection == GBAutoScrollDirectionBottomToTop) { + transform = self.topToBottomTransform; + autoScrollDirection = GBAutoScrollDirectionTopToBottom; + } else if (self.autoScrollDirection == GBAutoScrollDirectionTopToBottom) { + transform = self.bottomToTopTransform; + autoScrollDirection = GBAutoScrollDirectionBottomToTop; } [UIView animateWithDuration:0.5f delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^{ diff --git a/GBInfiniteScrollViewPageControlDemo/GBInfiniteScrollViewPageControlDemo/Images.xcassets/ArrowButton.imageset/ArrowButton@2x.png b/GBInfiniteScrollViewPageControlDemo/GBInfiniteScrollViewPageControlDemo/Images.xcassets/ArrowButton.imageset/ArrowButton@2x.png index 0a74ca620a037704e907a5087ebc804a44757d07..92d285a72c4d0feca839f7218930b1163d8c6815 100644 GIT binary patch literal 6337 zcmbtXbyQSc_nsL*x|GggBqc=}h8k+5Q@V3t00C)a2vJHJ1nCYbNkO_n89Jp)Nv;!4iL#*V<@I!(vr*V%-GWUOq8xD#$_0Nerrq=zEX{5; zOwZaK1WY#pG_Hd&J3aJ)D1jV(vLCx0#`hl#b)SK#NPtB8!1fheTTI1sIncy)3p6#g zSgE(>^al^hx_O?fO@q~a>NYSAA`D}`2f&k`6q0z!O1S|_)UN5F=D)=pJW1l<4|~i{ zk%OE20kYOz>2zAO$=N*cE`@bHhsI!-`m;c0RI|on8p}#v6lRX`JCRVAGcplx4&;NwP}CR zHoL^|Qu_wl?|Y?t#JY#hl!?kTSaRC?z}rFrIAu0`PhZoTqzkA;-jm)~`JjFP1{`An zY8TUgGK4vq#&@q0u;EAU?K!yvvmALizYAYw1-lHkg^8Y}4*j^&6ECEc3VH}9e_|uQ zQCL){EcfLL0Z|It`sR$}cCB61;p;#bS9(@E<BsU|VsfdXI;F_@jDd_e)bMkJ5%`ddHSm&aAQ$MF09 z-nwMOH;!;#QIUaYZ=MpwSi7<0a#80kg*tVB?#E(#Wa9}0@$iAT%n9jGPh2q;!GKVd z5(!2!29FZRK^pU;jO5JS5qvxY^bA3`0w#idM=;fbgS7F zieBoq*9K85mU&r$eV}57B3d{!L>8NJZZWrMS>yh{8M~h?!!NeWzhnD_K zt$2ZSfecGAjJ<7avABkqj={uC$zWzDW*rh5oGqN2P|{8T&7fj+4@ek^Pq(opNA=qo zna^-KR<#5&co;LK7Bfd`ZIBKe0Wo2PvbHcK42W4Px=|TOo2pkZXMxRFh~uR+64_bF z)SuGH%g(BaKK&%^Bkcn#&>}2$p3pCS*OXzX-Xa(9G=Ntz;YrHRl(m8Kgt9otq}>!h z7WKsG6t5IBo-8&qrogAa3$GhNnjO*|+Ch0$dN~R!wVlvcaQU>{B+ECJX_n!ZA*+Ht znk=8=gW?EMQE=~bcUJ0?fUiWovNmA-^NSCudW^F zP6ACDO)CvGjV?`!K(8QmnseGf+D6)zKwquBA$}dE;fCQ>ohe^Z>W?ovwk$P~qB-Ri z`$gQNlKBf|&~mHd8hyJwwVL4vChdL(Oyk?b}2RV|OS>;*zZHjG1 zfrITM;5qY1nfD#VIT1N+7MT`#D^?FnGQsA)+^TN|1|JlrvPHWj`u+2K-d}LyLnHMgGbk1)%((Ws zw7GY=7!5cKu=J6&J5`rmbKPlMY zDbXq9iuLL-HuSak>lUK384pkP=Fosi(%tVXjl)M#YuIdlY}MoNqNNOjVUA(K;XHf- z%0tQtZYsCY=PQkLZgD);JW*!et~nFB^GR!lyO&>7r=zz#yOG@sGtk+a#w$)@W#Tx+ z$iBp)ge@90zUiBk%4c!UDjVX@EDsO|MUrBY;gZpk4_ZB2%K~`MEp9+Jo|g+hrw_L- zr?1p8MKC|$e#gtlRKV23mc-}By^r+*v#SHx(HzXkJ7&ggJV61Hy@q+dlE4)tFd@Hm zr{duf_`tg7)2QqH(%TD@+frT**4?ZW(?8a)7#U5WOyQ+4px7fnsi-RNC!Zp(oTATV zP_wQOWf%o6gi@HUn}l1zE8yht zHITYY-SUf%X2(J6C5f?#c^pqlMoYdrgw~$dj?1!GL{xE_Jb|*c@OBC0@xht~9VUP1 zKFF0GjZ_%(=+i*|}OS%aEiNHtEmd(`A=$ICLK*Hzgl-=kYJ?J?BS5YP_zy0l5@o3gl4v8 zRjavu&B11`>?c{xl@{({BO<3BCvvC#1>2f(#C!_Gbo7_y&}zi0I?K2C-6ey7XBP`! zPDA%w3Qh~Iyp}z2yuK}LH~rL4wKOoD9jRD0Dc|^VoO|5R{A{mP&%)@rIk7{GbxbXP z@yC{@l?cVjqMiJmAexx8&6XX%hW(7WzWM34C1l_@FdCx=Tatl{?sH)OnTBJz46?`K z+scP7^lt7>Q=46&S)km$(oq~*@s(mhUuVpVN%4tk;bP%Lq0Z>|-s-jIeJ(f4zhHh3 z%CWi<)js1<)-dZjjp8BKA zQmOKr$@6L3l9rRb>}hj!%^SOzutpf~ZPG=hdKVVD1kI^XtFWV3u85Ahh+6QiKIu6e zib@$@d)3DAyZ$U`v@GkT*Hw$1g*4tY|4Of86V1Z&sx3=F(Z{&ntd0gO_(TC9bQIfja~+ zczM0Nym-8x@VL0y@jez673JmQ=jG?;zC&=k`#5`8cyl|uKm6OtKmEwrxLdh7xOzCa zID`NAwXk$~;Q@s}{sj70`^P?!uKx<;?EVi`clvm}EnImY^YHQheac!li zx)1L`-8U#4eH!TYrB z1m~c4_jcQ94sok!((hR-c8D*(IK=a2kif|NDpgcixX893x~qb{jN(k@4H{}!aK-H> z<{PNq!>PN)`;GIPAhQt0b+|oM3!*!xcIAABU82&uu1!D8T?fKx!!yQbz)*cJ@@A-X zLTqBiC6@>I#{ZGbEzUJvx`7O;E79lv9yWFd(;@#z-EXAYTGJ_S-a^drkwvy&hZgI!~8nuM+oP+=Q5-#iU?`)!I1q4Qi5bEX*WVyz@d=f_!qX9SO zS6kJyZqhVn?09jOCRfZU-R3gEaO%Kcl*H=1%%EYdICI{jci#nrqdOHO972o|jBXaL z3$i08a=j4}u?_)O&XBFiMYooAOXyK!8UQ_mAmgVo(Hq%8gR2BTc<|mJn}Z5V7f56i z!~y|Rixyo|@MmwR>QPogBFASz1p)4F0GFG}IF7Gp59{Dk=c0iqSfe{qYF@#r_WP{=nKfsFKMgQ5mTl-M)P>;--R84{LC5o z9a~t-f+T4I@WF?vGoK!UjBy!=^H|Hp*DJSdwER~O$PRJ(Rk!nntiJQ`Na30o4Q6jFki_KJ3d`I&m%cOA*Np;o1P}rk@hP4kz5a zp|OFj)1xwu8UALrfoD>#pd3}K{CZ4zR$;h#+D^bIrnk$^o5M;bGhJmdfkXf{f)e_80{FWrL&j`f&Hu0PSav=x+45o7LJ5(6V;=aVlZwaTO*qprK=RHWNR zh!&1i&*>OiPV+X>70evh2Nu2viqpJ>iA6^uD{X{ z4LbAAoDKye;jhEar7%8Qcr&-rMHhK%yqDe+KBzbMI${1D8Rj3kL)Q#~6a z&FZaC*NV&NtB4g8co>Tjv*SDN+%{Ef#9Vhun7`PoutLWx$ZOZUF$C-iH5e+S$T~Yh zVzz3YC8Q>%YMQ?_GLO@lX?sSr&`(8v*hZ`0%<3}s1E-!cnj)TvaHW3w@cjofe5T5! z%l)rQx}W;1rH)K|Nut}KyuKgRV{#0XJ-K_2bbCM5rbm<;A@^aYkOwG+l()af!a(in z1>=n?cH+`)LyGY^Ikliu(w~tCap`K>;A>TdWo*kUovZVS==7GOiRf`+9eI9H za&$8yvd>b6?*RSo(D!k4DX(u!V@dzvkJ}6&GnEYuEzPQ5uWMocBZ9H%jIN(ZM!7g-=gg}&pGBOA&=!kCwN2Whcv)1Dn9al`e#_dxAE5^`njikGE5spnAP=oiH=o!8xw^7&NV) zQZCXU!{V$@1Ve@PzUD9hC(mqvSxH3IFa6rKwc3S>$jYup=vQ<~%(rzTdQ)S|cazRy zVF`xwa#1&h)58-xU`GPRn%?O~BcoeXsJVCJ&{RQc7m%fTfLUqQTNHL$1d) z*AN}=zX+I;lzG_6BLd^MOYVh>3FMmDE2G>$pc+koKYiruFTLopGV3c)# z2OQAE7zT|a1+bj3ivzI6sOXmkA2>QDyFdBN%H&vAGxwGr7DaUE(uF7=@T+eE>4}#i ze&l2Ay3XbUy0@f%KX$g88kG5u?CNp(rO_ zp=PMKbPzf%K+mYA8OtDyXMhohn#JiWMySwJ+Q+-?+yfX)b$x&%1qNJNq1eM^PN>t( z%tlV)dR)~UFHq%rd#R2=5EL-J4mGMkP411V%pa%05{p|ftXprbMVthD(8-*K+}hm; zgl7Z$&~{lhC9HHXd;F!n?rs4)c4c_rJP|Ba2fDlv1MHITJiHh1+=^X>AN=yS1FIjY;6!c@Eg)) z-)t!*yz+3VXuKP?7R=>ykoi(hBI|AfLsVfpY4L9%9%F@Mr^~izN65=n3EI!uD2xOO zz$giRD zeB!A2@uYaNtd0Us2JT*;g5pSccUF1{MHt!Q?Xd0B^=D;-(t z@co96UR(4bG~@YquipD!Jz+-n3rIxEu)bXtBW>GK zpIBhe%^Z}uVLHbWsp$kts-y-iA1s64Vcdc$L##eK OFNDjh$yLaj2mcqiQsJ!t literal 3706 zcmbVPc{J4P8~-vAWuj1)WExAQn2nicvTsFMvZa;TXlyfP#x7)+vMXEU+7l&(2qR0% zWGGo8M3xlNnNQr*??8$4>h?lc}605o-cX?UV5nF%3~ohcq#(D}MXD1<`Nf}YYagPYL|$QLQc z{OM$Ce{&n6zbg?-g6e2PG<|VA0q$fb9^&in=E1=EYC->yi{s5V$S^464;H4Y7W7Y} z?9D7822?s3qM@dtN`xcSAsDP0LIa_G7;y-KgdQ)o;I)dR925l^6cF}0vPOaFAion~hCmtYUZ&p`1)2J^+!Uw9oet~(h`*%efj67>_7IX^lQ1EVsRHBzV*@J0f zs0HQisF5fnoG}Jtj6h)2;TR+weHei_Y`}{pO5ebU*D$>9myCbHqR{GSq!C6>UmvM~ zKp3I0htV2_JQ;dueRZS;2J;JR;=y3zJ&5FAdMP};Ke5<<#o`R;WIU5fx1mzqer15= zMJkiZxJacz46M)P^w*F~r+AY|#&oJXHMVxJ6q}CkWB^&xw;)Kv*){04%tg|M4PlC zXvWUP!V0O188Komg~|`pGumf~p{DCy6(u@JlDkm*T-tO9Ov{S|Ih5ofn-e6IPNYcR zfEO3kKfB_WQ$430Fc;LYG{l%&U2_Vm9IAt@X0K{C26QsAxfNKnA&s<>fom96;SeY=YECf4JO%2$Bsmu0o~#RVYr%4=Z77KpARXz2MXz4 zrO9zi+0Wue@^;pQ`gOU4Q7UW?wmW z0pF1ejF^;xh@F0R;<{JF)5@d;2cKl^OyrhkDU*G2ZLm@gEsb+bv_FB`RWC!V-HJEdN-DrLRQFR5Om-k=+{#(EbhQm3Yp%PlP#Gx~Cs!V=WET`lAI z=qvYC*kO)o?cydCjFU;mx35fUR#H=0z>FS{mcQUE?OQS?X==QfUGNRa8tK$Tc!`3n z<-K~u3U;tO$JQQ|1Vo4Gm^=%Q_2*Z<^Jzz>%|dweXxaTXVB}Qi=JGOwsbozq&Wl>! zVq9>CuQN3&`xbOG)n=ssw@^G&n6u9!FS7fZe5n@&RQQnC7` zdhOlgpwd+CWsS)-pDv}Uu7?vd_j`b3rP|=&nLSpGIhc{9W;=57jr{7*#-B7;r&72G z_m7bwBEdyA%|_#A37IO6l@BX0d{Wbo%-=SX;-)}5Shgu_u7f=do4so=f5EH*|A3!$ zvG1A6z(O)mI->j`nTT{YxIEFXh`v2W+Ss+fTTU&a6?#%w3nRq2e3J0#?S~JcW!RD3 z0+*-9X3fqonOcg!d0f+QwLP#*z^Q?6LCz93rTIa{*cLP`!1*pQmfx-@{Ayx4vszLD z;tijdeR92NE07nMW4najd}gt^+ur8Q9?Oto_lH^ZGe54M5{Fxe+?e}@N1qUl*xCY& z;DZLY3lUz()4%E{>U>e9C5@LK*@{BUmgf^`Zwmc+O1-1hGS6&^rF@Ip2EP3wD zbD*h2Q{dM6XpPL;wfimG@}vpn5nAEH`i67ex>Y>Aawk%3hd`#Opa{<{ghb7F@twaY3B8gJ~&W z={(@4&bRt{@q-fmhknVIOeBAOX-QQH)xEBWSj_hT$T&W_EGYcd8=Ixmt4oDXzZ-ET z@XDt`m)c`5Mg#+?-i75BS8Aj`Z=WW=6PeLjewBU{oDc=Xnb@YcjkWKdM|E|CRt?A> zhyp8dP0h4#mBX$b>KZfvEy3>y`sY2Hz9#4|vmB?{&~gK~$DK-P2i40mwtPL821Oqq zZ%PyRtf&+K6v$8CXMyT(rm$ySX#)Pcp3eu~+~S??k9X|2gb)S{(){~6Y zS(+QXZ@3Y~DNMAu(k^?tqq)z|<)g;Ev;B;j3Ae(_sPM3IKH!dXu;HaX3{;5!lAym@ z;Q5t_#K&1V)c{aG1>RtxW2Jc^%#NYkS)#IKdoA|GuVxj+eV?aVE!p8}wHCu)tJAjDWVVmTj5owzZGtB1 zoLo1^9Z72N(b^+jnfy(De@s3H`o%Ymv^~l=cP2OstL4Snb`9!(Eos2|Lb9dNA={aR z+pscCsWDNu^$csJsJ*iA=Ey#?+$9mxN!Qmjk2&L~XD`<;n5$NBEmEC(tlvAvx*JIp zPv;R4vok7Q>p3axNWc4}&Zl#fK{s66`wbr z2vBYvw0*b>EE@~lPE*upbypUF$GLagGox)E+MlU+*v+(exsu&;7TlR|?t41BazA#O zpbe&G%08Ia+4;0lE>@2yt}6*nGHi;Go3b|F=K>ZNJxRYUbZul3 z)~izM(!Sqkn%u_hp5sUMh_j{#UG7Xb>F((5B|b4Kt152p^$|U8x(kF0C{`RCxNZW- zNL|cO;M;BfrdY_?^sG+$k4FCLqhGd0DOGpv9ol#Ky>-OYC$szqjf(ty?H7TL0RZUYwvv)+ z@{*DiYHrR}whop6fE-qCx|f#bB4Ol2CvWE@9u)=cC9y9W#dkqD0+4#Ne6SiqL>Qf? z6p{=+E`yGRRu51%lFD2fALD(f**w}gj@nSKx|HB^e`Rr}d4AFQ zBw)S`p!N_7>hsV826Gka;U6FL8sfbi8@NUw!U4X}1NN+0S%GA4q!4BvI)$^cD&&S5 zuZ~%RE!vluyVdC2=bnO+sCXr5kOAn@vphn9bl@$7RL#c0R~%2EFPCWy91-jsgoS8D zAE-74>Kv}hx0%{UGc)Km3yJl|Uv+Th!P?c9;k0YTFi@dkChe+qu|JAsr@B}d9>BZIdNT$TEpJwaJD+L0 zwL4;Uch;zRYsSu$+OND8<*hVv*@PL-1`e)sPL~GK>N{rHBpua|9v$h=ZQI;-FRqXU zYCZ~&_}*)u(H&0YiNo^rR~!yMKspHlS2PCMuN%A4v;j?y$YNV-A5>2$0Ov@6rsbRq zvIqy`$D=vEzFk!7{LD2(>%`r=|2(S$UbF z)Yq?=FES=994LaS0SF70!$C|( zWR*j(6$5<~7g>1z1lbpWp6~5k05c)JlOUB)9v5UokZuo_3kGJetQdMkuOb_8Im8w< z^c07nNW3bMumn3xVh)GI0M$oQT#XMOaZoZk5hq#fc9O1wi1B?@p`@DdCA9}}8>-R! zy8@I+3NGYFU_cmdCc-onYXR^%c(GoP6jiowY*oseAO{89v$UqrLMZa0xevTXatdG$ zH|a}36&pcCoRZN)B{`FlNYtYN;!@ftQI#N6O2ZRhl#sN>$tAgNA|gi?LNkd7hhA+& z>ciH|bf9x)3T(5P=9xN5;B6i&9L|v2&{DJ6hB7_+52BuEJh<6$ECV{G38ruBGa3*V zpofB_FNS+wt&_S0wh$R|IC0m4nz83$?ZF5ASZj1=-W`m~_$Q&*z3!)G{*+zlL8L)s zD+%O7-SmlQ1|a)TY|3;B8V4FJ9AeZR)W8#;Vd1yX5= zMHPO9RxuwjAIVY;tO}U@S* zh6!svy$NNI!k@B-76kQPv0lxP;(DDznYE@q;c$6rcu|^Jlo{MC+U)&0_n4 ztMQ8lavz)N4X4JdQdkPC9hPvxwcR?gF|ou`XKVb_!H{;#=)~xsMwMoj224w+Qqp#w z#h=Zsa;#FFVY8#NgW4_H-OsXC$4!(^c;!vxns7aBK1A-(@R2C5uyh%sZ&2G6j9Hw$uH@a?S32drDu}j zhiR;Mc5g*tOkp=P4_drtPF581g8DA4INiCcl&Tr{ZD=U4>EHF{QW{B{>47ow@etqv3jw&gue()n2(q>Sq_-V z^%?Y$^c+kx148ZM;%maoa>^96B$IE_gf2yfuS@G;X3J`=F)&C-FS81QPdT~W{ zPj}CbA{^-*+4}q2!S7CNzdKga{H3lAhs0Xxx}a1b6O4tjt^= z=nj2aw7mnpy+ABx(o&KG?Q#ht-$!I);|LWAy<|pZ2c>6am8JcpGo%$W^qBPkQSvd{U8xMcDecGxVo2X4R>D6~-BqJezy@K-; z{j#reOR4tKq}6K+G@sHQd7r#9#IzH4W^`lukOayI`xrJQl`&uxZ7yFcPawa6pep`p z_1#C4^N`KT)Wp(M0S(2bKe0dd#{i?a$Gq6tX(y#+4_23bl%*qd)TD|ed}t9ZJS_`(8N*ku~VVW zPIk6@zhpmzI03%hx$oC}l>1|NX}){KF=!eXhd78LLWWP;5j1kGW?v)jI0*f@_Mv~` zplH9X+d9Z3Na{%LENMbET()$$FX7#+;LJR41#c=(UtID~!-ngy^W*AoNxzrXdup7; ztv4V(O8&F;;T!UkJWQcQpO}EEJ^IJ|tIv}LF$RTmKj)%9m+;v7DfzAJ1yAR`9)Hau zn*HQ|3A@UIH-52JoJblc$jRo<_X<3h7z#g&jRr>w=z55>HEn*+t*x(J9t+8+Gd^o| zt6b{5f6&gTwyxzj5)8-<=sb#ejGH5C&r3Hs47A<*bmG{#=hFC?zEKn3g%q%JXLJu) zzG@5Dihs%_L5xMdJ7(?jdounhyce+iIE7M)Z7llLm+#T$(fn|uh#p;)F|SIr=5h9B z-m0?m@~~jubfPiJIw7J(67rOGTc_HOG*LOhB-13bFIyu!0lS6$@@=>rJRO5&OmBpD zGyM5{oiB$-aB4qwkR__HT+zjUH+SW@W3jtA?PYsXRvxol-6eVz@>qCp zemR`9cc^-!nwB3Y>gA92aPCd#Xtlj^9d>cgA)p`lTvMXC$mzQS02nX-ZXf`jLj(W- z7j3olJoJ>61k9ZsS)mrrW|pkpjxNt=06@rF;Q8oi=>etic64xZ7w{IQ`UgVb`TUm+ zp`!Q)#KT^gN>5phLekmIl7gF+ig;9>Vdv-Php=%#I5=3I5iIULP99Ki7AJS=e=7M;JyMqL=5Dqw9=6U-6o2(X z&79wP2vbr0HT3WGFFze!{%y#~{a;Z%#|QC-xYv7ho>L1GM_aCXyjc6JaE|C>7sH5+FSXLlQC7mDYi{f#oz+}7zY%^(E%zw!U& zx6oe$0;+Ddmd}y@jZcJK2=f2%{)HEU{0;uUCF7r&{s;Ft)gtK6mj3g#iJ(_r3IqTE zxNP!L;#%IoBP07ntwDn0uEu&uJu|^e@}43Z?181=W0YfEFA-#jcw+Of(4;Co60OtF8(4GqE)(h{`BUg`kQD5!e$igIp-| zZ)#Twg6ZZ?NsL)&m1W;ye$t}#i`rCxtn+@EjdRv3vJF!bX9U2n|E#;5VJ5qgskKg` za%6$qr14mA5e;-#InOM&6Sic>Lp1fTiX4nvsi3(xbmyeFkPaiZLt;acUUJn~`K^j(vF_I7MVF@<-7 z2F`I|-v=Sa9?Xu4WbM~p-s-2hmfwTmfU!&%!K|0pbSn};nY1y`IB;K_~jWEzu5=zmno@?MyHxRIl{C0Ef@75^Wk+)c81ZXd7 z9L7GeNbDTzm=f%Tft7gA2RF#13CDiFYZoki8&x3B8F^QZ+&W`~y$PG=}F<*Uo zyR&2eL;-ouw{8Lj9ur`91iyf%SXytLV9ex8`GKfvl9O;u*=){k^YQzAb<37ZN0~QpF&R-<_tr!(x&<_NotlZDml&@x*-~v?@n9q-5eT9s0xE zW?>*;`A38xB}GT8m%t?dT2!RtW7)dE<#M$L@+p?%Wt3C;LHg^N>2rRiw8r?0(q<4q z_rO0Hf2`wU`r<8HM~*wvs`zU=Mjt#1qe|dxO!FTruB-&xGbDnNFL3^PA~Mi4EpUid zm}Shsdb7GHy<9WYqn}>03f9lK{D5bN;uA~V{o8qdSd>#*ES7Q69edkmUZfm zf=yt^>nz9`OZ9|AQ9&2k3X_Y|jO5gw95Uwj3R|41%ot-~c~~;k1SpG-AA1#FVbIQ1 z@miy=s@ArVXw2Ju?_vpf(r7JYM@>zy#CgyB((2`K$aS;!pAd0w^TMIU%N?nUijVu~ zN}ED8Xl;swuOH+6JqJZtmh}?pX1@-!?~HQ)jvI=yL7EP;N6}QjJc%OvKnInug&WS_ zz=*B;osEDtcE8zTqHA!Dy`_6pX?)DL+UPysxXN^LHGB^3(DP>mzvn7;c=5eQf-k$| zniq8hLo@jpaKpDkN3OK6Pan+MQcKSGq*_p|6Bv8BNua|N^s|LZ>kr4NE2+t9WfBfb zHvvk@6$>W0DpG?^`05!9%e-XZ)wO{(;ECy*=zA%l&L77m1=*YXcR@|E3#X~Mf#4CC zwp`qAMU*EkG?MEt+;Q2HhZjws_hsnWG&W#&H30~CjlPCcN6y69=TdV#IwWaoOgVJA zaf5bw8CoKE`b9UGagvGyE7tZeit~ez+23K(#3-~5%rO_G5eDyEup{63q5d$wJv~{& z6|t9lkCQN7c;33Fdn@-*Eo^N`W;_K}@0#&Q?JjQJEK!YWwN`w_jiXS)P)C4-lkGKE z)Ev;oDCO_4a(-HS;)5L$iJpf2%_L-PDe@CvvG}dhYgN2o1-Sf>_$)$ODw~IwiA4Kb z%a42VK<_HvkF{%Xi-nGtUgNsYw!|Eg4f5P$Q{)=#w`%FlIZ)q<1%C{e z77LzD`#S%d1aIkN>xU1mEu-{rHh8n6$SmAviQiKUO#f_ot!|SS@x(pD2&FbIM(-&j zu?~tS~;TiZZOfnBJ~bN5a{Xv=S@e zTng{wV1?j4YWpojlsAq>MthHL+w`mn`m0hPSQR-=PcjMkihA>voU${A6yg!o&Q~B5 zFm$S0f}NkpH>>DHH8+&*Ht6ybFSv=bJGQUEwyqLf0WOfkuwXRQ(w3L8f?dBD>IzYZ zkXg3P?anr*mF@T(y4jHcE)Ux#MQn$D4I|E}_3F-joAw~w*-gPWk0T$nrt3)QABz|_ zMJw2>esL+8&NSp0#wgN!vkezVjrD`)zL#FNS_J1Gn!mP55Q z3T8twb(H)0f_fBc%sTjgCh@Gp-T>gfO?d;(n(Zlh753OfSM{TjL3>{{MuW?@G93@* zFjMUhGA>X{@0gps>6B~HMvBWKkLDZtg2+t!7$KTbptv`|6(3$9kqHU}NpQs$pAoQA ze#~pDU{&h+MRt3ao!bT&pp$vyRr%@zJi<|ro9S{w$+Su;e1p3f!0`vnnAQ(gdNPlU zerI_O-FDPbB}{WO7V3BQ*TU_C+h+FcBZc!UKdEFQCpTgdsROulH?$)rNu9O&haQYF z{e>>(G~s890^)6-*ybQ49Np!XmMP@QehIs6#4oat{wSVg<}g=?TM>NJy<(} zfYF?-a#_6}de_f(%dtfdE`!n^ayf8r2^&2-2Pk$V0ER{w1oNaoz991KqmvoWY0th) zf%MqJ#Z;6evD#G@%GP+NOP-;~2R(qZ%pMV8WW%4EDIw9sd0U*VWfNVta^%QKDfCGF zo!GC`0FLD_xl5OmMa*>5flZ9$T>*<}E+Iydc_MywjB5cK3E&L(6Okg5@T5I!8iG=m zKYDbN@mN`5*NVEW!S+Wvu0jAJfOX8ka`S@_}~a5dIwHO>5UYb5K3e)?d%Nj} z0LnghS0fafSC#!9a+U(t-|zUwRi2a)&CPslF~ti3=>U=BLToww>W;1OO^qH8R_!AD z^s{#9%NU_M%8_CuI{P?xFQy`F+sZ#Ga25eK47bl%4X&}@B*qhXk_=z5 zTj}VKr~_&_6D$y&UXS&bw!pxyZg6)aYMfzIJqG@f3u@IjYigZC_yvwTsy|9xF!;?x z)%wP>5kf#RuYXId=hJzqA5o-+W-ZG=X%3*DFuBZE$}8u?y6V+S)kgw{kTbt&TlVm@ zb$rTYx7Gp9T9gNeZ1vG_31RkW;U|k=4!yuOOn@lttu`{7%4yV5T$c9T?Rq(rU4p7ZNzKPgxan7BJ|^^@a+{5s zZnE==mBzv-|H)98k8)_dOh#yLA$m%O(ZjpXDrC(?0A|vYpak{8!I*+fu4HZh+B{+} z=37_K??R6=T!(5`!8MHtME3U2Hm_Xw{C_sri|*a1Ny9aYo!(?A?N49dJdu=kn7nk0 zy>?wRGRT=K&_+tE6Y<4Ip*F&bo_WGZHx-<*RyvNb#qVWCmtEO$aKP+DPatGUxF}TD z<&;s#afOKRUKy<~w3LhKmpVT#@ZBf(FRKPPkP=I@ae#-1^c{i8!Horp-s&7VE!f32 z-QBB4d`7V+oZ|lbD*ag@BovdT+HZ!az-bdg70v};Qd~s^!u$>WUlUcJ;cOI}7i%rf zt6-OoRYzzh8KSs*w=hCnDu!LpKlK2O?^)?t0I{P8ep@W=Z0oo};`jh{DW`SBjH7;N zgxSNX%}9x^$k;J=5F4*<+Qj#5C155W#BGy$W^L(Vi`p6^a zcsJU*Hxf4kXJ-+^ckTUXUo!lL1x@di2X9D67;{OMTeH1(IU3GVRG7Z9CAh7FKGFhO z3?SfGiwqx2mPX|d=d-r&z~dN5rgUfNazSq2s4gRdLJP*{$;jkW?TK3u)2`#6|AdZv zRHB;6OzEZ;?3IUqm&`k;tI8-Gia=GD>Q^qvmpZ4><~-QB`)CwGrDKi0cLOR#Fhsqd z>?p&V$oE3Rl%^EU%M5@qR9d3mG^~>md=6eo@$}O*O`ZvIgJj@f2$lvCWHX4-XEN_Itq7 z?F~Bw#iR_wxkh z`EkUphaIu_ZD!ieq}>Owu}86C=R+r#52wnyIH@|#@J6Fnbfov_=PoZ*S^a-EV|Mlm z&F{S@0+0#;@(re}=`m%=B$FtsgDK@S8`D31vVYW!JPBN}EU@}J7^~wi(i@oHOUrjt zpD&h1s#yg&Sn=ba{CI)CJQYHeM;zwmo0$M)2O?^)nHWuk>-Bk zb4Rw$G{g1&k8tL=(O!~G;=w^&UWA!ig!dFu9Y8*K^6S`*41Skxbl$c1fC)^|$UOfm z{M#dj&?R1c+RB@v79OE9!eGSFKCb{7;APe7nx$*YlfHzEOs^7A$R#HmoDVcRv~uyX zfRz?)`bhC7HYLnRnTGX80#dc0@LqSUNPl}@e>A-%%hEY?K__D>{Pq88w(#HP5;V9s ZqCZ%=%UPWQC;yJYC+GrI{&4)+1XYB_R@thKeL4 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