From 004143e72d59758f00c9da21c5121365600831d2 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Tue, 6 Aug 2024 20:58:40 +0900 Subject: [PATCH 1/6] =?UTF-8?q?[Fix]=20#287=20-=20=EB=84=A4=ED=8A=B8?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pophory-iOS.xcodeproj/project.pbxproj | 8 +++--- .../networkFail.imageset/Contents.json | 2 +- .../networkFail.imageset/Frame 514631.pdf | Bin 61660 -> 0 bytes .../networkFail.imageset/img_networkError.svg | 24 ++++++++++++++++++ .../AuthInterceptor.swift" | 1 + 5 files changed, 30 insertions(+), 5 deletions(-) delete mode 100644 pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/Frame 514631.pdf create mode 100644 pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/img_networkError.svg diff --git a/pophory-iOS.xcodeproj/project.pbxproj b/pophory-iOS.xcodeproj/project.pbxproj index e233e1a7..4e10c9fd 100644 --- a/pophory-iOS.xcodeproj/project.pbxproj +++ b/pophory-iOS.xcodeproj/project.pbxproj @@ -2041,7 +2041,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1.4.0; + CURRENT_PROJECT_VERSION = 1.3.0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = CQJ9UKUU35; @@ -2063,7 +2063,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.4.0; + MARKETING_VERSION = 1.3.0; PRODUCT_BUNDLE_IDENTIFIER = "Team.pophory-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -2088,7 +2088,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1.4.0; + CURRENT_PROJECT_VERSION = 1.3.0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = CQJ9UKUU35; @@ -2110,7 +2110,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.4.0; + MARKETING_VERSION = 1.3.0; PRODUCT_BUNDLE_IDENTIFIER = "Team.pophory-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/Contents.json b/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/Contents.json index 3b467a25..a0f2f06d 100644 --- a/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/Contents.json +++ b/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Frame 514631.pdf", + "filename" : "img_networkError.svg", "idiom" : "universal" } ], diff --git a/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/Frame 514631.pdf b/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/Frame 514631.pdf deleted file mode 100644 index a7244391a08a79bc6350fa8ae10080d2cee1ea86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61660 zcmb@u1z1#F7dA|HH;OQH*D$~gAl+TkAT^Y9cXxM-GzfwS2#7Q&B}gb3q_iRef`ka) z86KZ_-$!}>@4J33&bbbI@3Yq0Yv21`Yn?d*v!<*(H$RUs4h}zv59DI$fCB=FiGg@k z;m)?6b|5g&s0|Vq$MNuVhg&$|@bN%}AVLttSUw&;Fhr1F7{m=+K_Os42+#x-6aYhn zfD0I(fRGR$$eJGq2kvbB^KRe@p#cXW^$%5o{D|($MuEQ?|Dhj{d4+yJmmusv^$Q4q z`Jo8?{9rIl;5YgaQvao2@UO;y=m(~9g?_N0pdk1U{Xzm@#I%KlFI|F|zmTvH^f&qu zQvao2_^-x)=m(~9m42uIzuc8~E{%ZV(ettmKRR-`w z_Uk4Dmn( z{#*+|VL_Pi?=1KS2KoNNApb8x$bU5o!Gd7EKX-v33~(clu%Iyb(kK`oKTH7fI}?5h zLtsJwT%3Qd!_`0(f>rqU_>z8RiyCy9Vvh?;dd7N1B?G~!Y{FinAjB- zKm-K&pnq%!r~nM%1YseVfB+zh2L=`fVDdW?{sG3n0~7d{V7y%ND?;O6PPmK_h-DBE z6haWAFh9VNzjMN+)PEsC;Fnkw_%{~+BRKzM!M}-7kRSTH*l;QJ-xmB5ivYDA|0r4C90FA+QL8K*4;!BgRXy|H7icFR>_aH5UKa4v6Rg;TOK#1b-$7!UA9c zAX5ICl`f_J+X=tKqQKQy{M!N{FyxQ;^fN^fh6oEnf5*(1QvYqiFQEweAG~;}_;MM* z&_6;XL{I?mK7tpa{E*)T=}WQyT87Kq?~m4h#3#uAz~UtY|7n6S6ap0n){X}X6GX)A zU$4WZ*ngYwOE5yN2BQEUA_DxU3H*o@?SDjvOR@hp;g?`UWWHC>k{}-+5G@fV2tisFaFG_{vU7u zf7AYF4)cGb)by{c8BzKDVhs>m$1(t$-)%}akGw}hbP=g$=SvQ2eH=LzzslQ=?7wyx3_h& z018=lpm+uGYPeg&-R+%i|GQns%hlBp?gV%C1o7dBi-WA;Hh@?)3s-duCpd^#id&jn z=I=&bKUX+V{vrnP|6z@li#6QC)xrwyZsBYT#}VV>69 ziJ0GSY!*V;Bf~Fq)fi!53?ERPT{Q*@jFAOPUuiQ87$YMjbEPgRgd9GhE5}G*$^l>L zXBl9OH2>9OWH04hy{2-AG5i8o&PyIK1}cA*&HMX?l#KLM_~A$3M+Pi=r4KLh zBPjnLau7Qg!7hKXfR&fKJ3tVZ6m-cA2m-KohX2JK{qX1UUk|nf|4s||!2)2! zC`81<5&S!XBbZCa%hD4;FT4nn5kQa@KwB~ZRUnAbECoiLEtMi^Mk-w_!4-Gby*z#Ml>+r%gXI{ z-Cz*#VCMJJ0`9)bG64{xp#7~=0O42o40xn!z*iVV*_kpXDhe| z2uRR?orXC0fddR20>A+Q4ng1$0uEu|fC2{$IDqv9PKc2}S^}I9V*$?rC&XxAI{+ud zcwnyrC&V297J<{HY{VVFT!9nf4gh4P|83k~6VkW0_O$Z=T_%!0=glkc;_N9c?c$3t z`OimaS6uuQetDakg{Qkc;>N!oJN^5{E4uy^^@nE>cKr0auFEZFdqk!Ky3F|gvee$) z!xOkl>3_MRS^aCaFOCs!9|L|O;^Q~w_yUI<>+LOBT|M9nsi=&IX z4kEt;@yf!z?XBPn?iPMO@0PcB^n|+uF6EVXwD5$>!Y|!`@DwnQpFzME`SaZvX-3he zNJ7{OQf}eO&UcBWA2sb2lW#Cy@D!Y@7=Cn)nyj8v7FaL*@uizLa2faZaUW&ZZqy%_ zA(0i#10k`@;uls190q1)W>bT(@v4JGOfe9~!?monEOLb~vbSVZ?wrf_P=hLukieEL z?d|O?EiLK~KzFi8rpa&DpXNx0sJUQcOc)!R#>}6do<4uhV&Rd&mOz8UW=3pSgKGLc zC3K-r3r(NCmEOkK*!cZ>(LSCxZ=b!vur7E=V;p;qD&~d}N>8?T?^w#&$HgZkq(OoT zr)-(XijQjh%a_l+RPDx4;oNgnSvCGbyJ#sQ_p-@j^FUu;vRtCx<=)<2U#@Wm&YJ5* z4HU{;WQ6@7n9NXU|Sf-fq1e z-do+=brpLjtV3)%?J(f;t(CY!p=~l@Z2g-MSxg&I_y<;RVPWCc=kq`Ax&`M^aNVfKD^4Qhg-Q7Fb%@4cVSaJU5+@ge-7*Hw1 zBFX7BM15L&_I3+f{6-2!z|;4}51tm4gy5^ONl($V<|afC_h(A^2ghO3V`U8v4zliY zMK-g1iengBkU6|ox{+uW+epi=@L6;33^#Ww=7R!shfo3Ul}@2=P!OsNmiSHS&6Bkg zIKfc4sxBS%kR{IK^zdY_Z$pZVFsFv|fr1pJEJ^ZvcSf?8xv@|!R5DxiZkI)~V^t|? zGA%s)xe+3Q(yGA>R0_s1&F7!#HiqZ(M3)uZ3TXs11=UNidTn(=M_a$dlSof;i zIK((CInbXrL7sT^YvGQ+MfV_%hZ4uTu1=>ab8azU_oT-Y1qFv!iTMxL1bFr+H#a>q zw17ti{GcwK(@P+rp{|Wu;U*I#?vGg{UhM8v#NKR1%ZM;`2&>&?>BmUW0a34S2th+;Y`QGJbijch;nak5$<2_ zXS`hBO?m9*=arQ)H!l8Fi{_!AF14p;=EAj|uBb`Fq%nQabweHj4WZok*I73ACVi_d zo+gWivp=yrNUH-#x#SmtFfcKugExp(j>E{GSYzzv^l+~$ zosWa}xqLpJ9<;uxk$^B+{f%gD3jQEgpU+oD5|T=N4BH%h2Zm^*y5*M&buzYtF;;WK z+mNwEnat&p^G8pzk~=H|tT&4FC$$pFk*#5zl2dbcG}Wcq(|K5=Ns9=NgqPKwik8P0 zB{K?!G78>9-NP9L4epu0@zN{K0Ch~2sMNIR#C|X|A6=A2D%GHEv1L_Q>D_6u=efXe ziDw!eA3xvKtW~Fe;CVkR{bNV_otj1Fo9v`ErEFwQ)saL*YAqUi#&g5e%ffY!Q%y|Q z8k!_#5?_ssm2ShPpw*qT~vq(nsl}hJWrhYpm;hJ z$}_Ema+9eGUth+M5sN%ciE|=T^rZ&DpxK>}$HH%=+?Ai(Wig6!>|}kHXVUyY7LWBp zg6|GlYMMUzo4Y=(6NP-RRv{SH59NH-VRChpfc*4rIx(Mt#21FFirMNl)k7Fh;yE@m z*eaRQK&dKlJMph*{z1d5G>sT_7s~mmCh+;U*Kg1YFn@tHQeapbYJGNi_0=B}p6PB! zMye?tpV}9?K8*@_nfz9}MVPv|+pYpGI^+8K!$oX zA73?MimWZ8?kk21Z88*emj7h)^`>Wv|oC+d4oU(-NMRM0HNrIqFp<%JIhb7zEyw(nA zn8&P>Vz6uW&cW@%%WUbi^{KDgSHvkM(8JB6imTiV8d4N3aArpIb$cPQI;2{uA8$>1 zjNE`wHy3^r_ghreaQ@!o5yYB42X=9(Xl9Dz`(C`Fm=&!yo3-p2N@E_Du7}qZk30kF z@CynaQGWV(?`=%y?rPCZKT3`CxhA=T@?kHH;mx@>F-ER&Xe}1|Xn0b3l6AygK~@UH zYU}G&(*qeIdx>wP#Z1VKDrrwpNfD!Bl86s3-hUB8BtSp9@sA8hMWg! z{!`-zlJ~xWW0%_-Yx*T`)ZYk`iG}&w48ip6z!M({9Mw>3>OZm#McAtPJk#tq??Cvi%38-<1!`}qk`dx#j=z6d5zVObkr zGIyU5#e0E#6Nw(xY5w_o!juRpEgp6}y%H0Y0^4yH-svjV)&;#ewY8-4jWodBD!@ey zwia6dT5v}&;=YL<-A3j|#c(U>2P)b|ZWuaw>Qe__o9v2c9!>1){`kt7TEsTn+PrTf z3BK1%M%wP8S{TZmAp3@XqmOb>AB?(~#6iFf-F6c(cUZ@f)d)f1y1AXHsyy!H!$2(> zzPy7icO5?W+Ckd-5L`M$)=jPQx#lX~T6p-n@ppL^%=S>Hiv&hS)H^qm+~m4!xf z>Q_u{qZA|Y*4#@2Vp-}mqQ0WzCmBPx8&uY)Pe*B4d0#yreY_7olz!V2IVM81h4lG@aSYGn zm|`_+Cl8+<-%g&4M#A~l0V4GJ2VWwVqsS+GUR97x8~(_YOhzGYTb8A6lJF7=U3-VY zJIR`;KQ0C-@TtjF#u(b3EwfTDn+DgEoj$(KXOk*DqsSbQp5sz@;LNLWxE}g-JH;E<_^NIH>Y>adcG|<`0dAyBtwxO zTCSm{h8x4w`i-}yI9ro@AbiHVHzd6{baFFpEuFR#F|*yR+vroH4&RQ%-*~dnH1l@U zAXG2J+VX>PviJ8GR!V=-VxiY93_)pN$7-TCLPNU`KDl3mG0h zF#S|K=)8~miLfbs@zs&M$h${f@)C34pvLEziV;P7_mv9JB!$3IjBNoJTgte)AH|2Z z1+#=OZ}Lh$%cHA^<2=-j^Vc${;p=i(>Pm%)ASAuIp3dWJKX?nkXrI< za*pYOn)n%|RGT*Lwq0KVt)jb*^N06}Y|%u0lKz?F;Usd>@ilF-b66g|{0}eG#vw0n z9J=;7GuQ_E{!r4VE!=$7-`SRT%BXmZ>j#Ml-!`is5eP!x=V;QSBeiX-$TOq>aNBiLP0P@wN8kwQqZo5zyaPR)mh0mU23l zz`uPsa4pX0ox-eSsb96QzQSj4x`A}K2GccFV3S?_)Gf1qK_kvjcgP>mXF!8Hu@{(;p#$L;~cKZa#5^pUA4#W z!mFh<~RIdL0Of>Pps>#C9 z0gESWYWJ|bW5o0q9Q06b4BW=FiZN!_#D5*r701%Vk3WT`P)6k(x0H*eqfN}p!0(mc zxtvSs5(;V{T2;n3aANf8p{V}Bo=PrDmgJx2P9{}z68pXyC#`4w)>1lcBUh$%As&nW zbl0vGivr3_k(A5lM@?W16HOhY0`s1?QVq>WCXr8Vi>V2@NVG;*$=S>0#BW^tz7};a zh9@u={=+bp<)w*8Uy&~ahKACu?WR$Uwbz*luD!Q5t z@_=}I$kF$*KBzBI$+dYFe85QVYuX3t8ikVn54 zcmzjm^jZ_&e%?$&y9e$2A^|)hIuIF+C5cNsuZ+@-c6^o^PtO1DdtS?E=XK~k!&sy= zoIu;GHLlTK^WL~89qlcTN1IpiMnlKc71?k~(t0O`93J+-v$`aIY;$hzJ9(jKCbd(= zc1S0H*=1438@HMBb8#QN+N)Pr;n9!4zP_e6U=JmfB1{eAla6-JV{nS{$L+iZ;d<98 z<`YX3{eXo<#yc$zdvxrES^x9im{I(#L>$?2i8+?^_5yH!gC++^hM3ynnpOyoF0*c1 zvH+1gx3Z?N@7a_YcwzCKfw^VlfP)dO1D)TLj~Y>Pa}^AeV}+DlTDgiGM=2N89UDo> z6>T102ixMKJlX_t$mA!wo7VNbVCx*{!fX5C*G;Zv_|@q2DBf|_GwKwY6%md+kOz+| z+wgBOzAz~&&L54^MP4v)u-xI|FLfi<#eM@?Aj@7GUOdLvNF%D7)do5F z>7}V0dk#1meACvL2L308t8AmZrbdATP}1G&M3hh6-htY!A_=ThS(pkPCn_2SUMk*I zM$bjVT^s_H4EexN;bka18+Ve{Y@550R4SPh2wCr~ldnPAkS%C!csKXdr~M*nE2qi7 z;@WsvoVW(KHNFYEk$qjXf0$k6fyw6&cbeqI{A0s=vP$%jL%25k!vhUr5y%p>-- zdW}A#iAa{uRHYQ@{xcbn1TKl-&e8NFYZoz#xYt^p3z}m?>q0Zg`yW_L_1=(`XBJ5f z7q!1p(vF;6mQG+FpiVi;!fmi-e7mp`=yOBD%WL!64wuv-ujEI@;uYoeH&k(aGT(>{ z=~3T6$@@WT2G;Du->HI++eNI>)`-8}$j{F&=B@Nd;8#@mx$_pJr&PHVip%z75D>mKgttNfO**9mid(fmPPjpd#Igl*ZMVX+sZt z?b(;sp;>%wdXpSF8CU||#sg)aeS7Bj3fJ^i)x>Jn7z)cOipj;e~t z(g>lnJC5V%ltRTu*F{o6nm3JbW*nJ2EN1meQcYkD>U}U7mWUOK%ppTuj3v!6&s2P!c*w0tjX`Nl;q{qInZQbNX00VqR_6v+-JhEmiyX1G;}T2ucx+Qb+`W!((Nv# zjMmIE*I^Yp19y8mx7l@`TvHz>_G`3A@?#vurB#)sp$udY7CUW=Y(4ZH;=Hh(T~w8} z4xHd={f^fo2DMkcVJv7hX`1=Gw>Ttcu_X=TxmESjG?zxwmY=?i!XXo7LsxkyZgaw- zX0ZRAi_7I}Xw@jG#gx;k7~5_BrCOy~8tUHeVMnfB_AVCdsC8GHfhbuNNfI3BhpoFq z3|+5c;YmPpv6d=7CzGm|iRbj1r7s%*u5}X+LzXgBDIV!VKv5Vj_vw%yw#quQi5Yqd z)8|;Hi94^c6H+O9+DY}$q-qk1 zhh7Uy($azJhy=M2>qfq8vy~Q6e}N5oAHkb%`f@{@$c%blNwU9uW-8nj+8*8aAq{h6 zyLBzLI^3dodFQ=`)Zx(QF3hb5v7pdYj|tA9$jnmNabtrIDxY(3Ptr+g8CyEOmE@sO z(DT9Dcx=9P$o;5yBDx=eMxS)T!igij6rb*r1VX|I?dr(dx(>gV_Z0M zxGG2Lz!I*?j;)IJ$h)5c7Kz~(#YC@}WLbiR>^satf_9(eRy>G7D>DAec>tBVZ$jaW zS2BL~wMUWfbSDk&8WzV(vn#3POdDZ2M16_UqSF`5sjbFT){RCX$*M5BCB25fG>RXL zOQKSwWM?!xivVcWE2KOS&XhZMzNUGGnhG8-$tIl3ORbFb71G9(iJ$J zXZfVAJKNS z3}?(5a|!aE9Fk=F#|&096E|4U8^+VTz8${r$aa%(M6VE+9I8x3#hfNni5cIRD;;jI zV7j+po7QT)SDD^weAH=${FzvU&p%Dx3M13njscfpFqPqyL7MI`KQEo4qG7XR+=b)o zjfMA2kIy#izOK$)WYGrM7r2L0(QD!@VzsFYe;-;B!Le7ywxk=;dY}nk>acSpSYQ3b zi+gZXCPRS!rSTQ93t_f?!>h+=i!8Nj5{rI;77Zb;d&vcwvN>`Rw(Od4R=6%Dv#pi~oXuNP z`4L0+DT&Ew#Vu<;}`78faFrL#yPVp%rJ z!|hG3RBU#+2vWT3!-p^l45#{TQS*qkg`tq#+wzW1Dipo^qD-Wo@kosjB16y#TLe-n zn!Y?`WZqO%C{u64%pBz4v9^*1)7h%v+}pq-R$ha~vt9M_vm`~QkuZunv=>M|e4fJP zs91SDou=(~WLg+=7$#+JeN&KPm#VbHqEAe%8PJ#%Gi^NP+7)J)NR-nXCFJr7vM|a= zQ@e*-4JGtw@_PJ%%afOi0k?rsPQ`-kwG5ZI|BjLQUT@B*$iq+iyeu|`As^HW*UB9! zhsSOy#8opX+A@*7u^w*3n0$jrG4#6OKD7lOx5u8}Q6Ot9{K&_55-l{|2{LI@%&){& z!6v2o`AKo9IQi>B54pfr51jT|wsklcD;))$_vn#fW6rV0-S=x%GR@aX$OGr`r9IJP zw)}`5!Q|4I4L?BU+;x_&vxRG_s$4u0V7-TKGMt(eH(X1np-Qg{q11E{xDjPn5l2je zTUyVci86hAOicD$?K5e1<)pr>BjG(d0^WfsiJcQ-9T}lQa+Kql0jw}fvX(R+cKU1l zt@;z37E|bf!u3Vr9$)PTb1Va;=(Xaa!{`=oMj`-irD< zT#eF74D_1#R_8etGTT`%(P|SOSzGQWObi7m(S#786`vEMqpJEf) zoi8bU`~+){;PbwymCQ0X9iwI7G(K$bcB_{=3c^W873w zq~>;6j?U?Gj_Q@W$sZHcRphy1#J;5uKYPq-6Vriy+tX-136Iqw4euGXb>$t-wPtMy zo(OXMPGU1tSyxYUVvzNtdF`dwO^cL}m$}6)SPqq%BwEP#3v3sStIfs+Kv>#Et?}yQ z6BzWk{-AC`{5QDx2HvAS3)&QRycStWRS%1|oT=2ldv#IcU1#E0){QVShr-jq=I^Cd z58`a3+lz5Vs;zd@wK=!LE=D(>nP96#Z&M83Gk`ZSlhHeyX+C(BiHwFE`5?B4#Y8^Y ztMuKudeFUV>r!v)4?pK22i!+~`lRdl0xom$vH(go=f<~`9T}RxT}Bav=b%VTUy-XB zVJ!snDAs<4#Oh@LHa`SgTVy|I?4Y2gX&4dulw$Pya|P<_^lofy!+3VC`!aZMZpl-S zrDwpOG)8=V^yA%HE8Vn7}RuOoc_$vVJN%lL1A93P@Mg^R8ERqZrDBc~wVxG3SyQNPY7|whmgxDv2ie*hLV>hvC zg@HTK4PB~aT%7VEV~;2I?l`u|OBHwvetfPv_5z1(pWkH2sg9J4cs5fu|-Apyi(2Y^DNF)p$&kzMy6b4 z9P?Ic>Osh}6i%<56DlQj3`Z7sn=>w1kDIO$9V#dV6UFy%JpEd@P?GGS+$B`5bVR1= zJqkco+_rBuO|tYNH}A~M_?v2>_D=6|O|HBy8%Kh6XY}}^dc_*2rd&B6d870L#iqvg z{Rk$D;ZxG_gBNITIUnIZ*F#~3NcTLvkz%fpSa-+|0uga(!gb4s`}C~|Rg z``Mgo;1%cLI<;v|R!65Uq7>iB)E&$yiu%f>9sM!#-2|%9(~#Ien=x`~RzR+5P1sEo~_(x5+*rLdjl z&OCn(@&!-knU24D_@&g4NEr96By}>DGy`|0ktDM$g)qRIZ5X?$uc!nE$q{SuuH4MnYgzyCW=)xC;DPkl5ZB8 zk3J}$ro$*JL|3dbG)rL^DKcIxaCWgim^Em6J1TMv^^$0C!4D?8ivd@4hGY z<|u^a%!+G|1vmA4u}1&QW@<8V=XHSBrUMd(;3l(f8VGWdn`a+@!IOxhGIw@1^u@%V z>aEdtt?b>^m@Ty;fzEgfGX7=}r6yorB| zA6hj{_2ixMXXIp0kg445Y6;MaKYFQLxp^oEVttJPCe=)nXR&Ynv87y(C*kz zNd$?Qla@*ksk0WAr!OVgmlrpga88lLO9$&B;Qj@ojC5nlROyIF@9dEk$yC1vvt1zE$i+tKX&RrBJ2=O6EmOX%E zR>kUO!CdRn(m;yD8;SlV>OGtNOn&I1)LZbE8V??#CmL2(wvYy+_7_b0$(3D`7Tzko zBe?YnQfQk7)@2R1Ab6dLTqpKU7D~7qvGy{<`bGV2=0op2pMQGU^s2zyh4q9NGmgb)d*`iW9!F__ zV#GW95=BL3lLSS*p;&UB0!*>t;bbM)0n7e$)0DZx$1tNo?@2CGZjq9TvIvs+ui0x;P6$oLnbD_lD%Q9{O>S3FPwb= zub9m_GV{q=GEIs!0BabE(xED8;exfbgs4@it0semk!w|`F7BnTNd|_0L=TRM*nQW` zA(Nudt?5z1W{^r{P*3qk(nq236C`2^nRHc?)ZwhlDOMS8-ex-pr-cj!Rg|g-y>3^f z$C1WxG*;Z|Z}9W`z)i@M0x>zH+2<6)&OSFbGlEa-xQQ*PrLt6Abn^$!#wH4AvXYY= zv_>=yH>fvzqnF)EF=Bu%3}(=sO`b&b6ui@nwhG3@%?}(tD3uN>T)#!iMxu>vc%F=M zoS2(xI0|9@;&PS}{K+t3u`p!JRgkLbg<3LZ#NO)aob6GxjfXb6patW1;~JsZ@YHBk z1#B+o-AKmA5j1p?>HR&thfJZB>+8um?^I?$d!CE)RqUw>ij%>(ZAuJzZ=}hag>oLL zh%d}byO%1|;VXU^zO9_GUUEO=b76&ES@vU!B2Shy8&6%<*93KS@#o&Bd8YASq_BhA zBN(4DmEBU%&xm9;J;}n#H;XvXn7yNd?L)GeFO7aPsjCY|+0;3$_%6<8IvNv0@9|_p zwe)*9!8euczz+Hy82D6=m({%20|uk|xY%JUa8=>APWx9h*R>>;(LVR=?P)~_+Az8J&iL`~ey5=htuo7S{L<&)J`$H=fva_r zVK${BQwA2Fb|qL0^^!EU3e6y3%2-LWS)KV}I;95HEh_v`60`&?+?=5g}i=m$B;$>za{@wme-rX zG5Li4awf}L$Gfij&}2aa;o0V96z3Dno}|ZBo?;r~hAuAjr^i&rb|lJchHTewr3rai z42`>mgpAtnd^m`FB(i#9_{LB)ojsH&0)8#k zng;wwmEsGFG1oOx_EtjYBd|{f*`-Nbc^}TvYc!WVTjDGmd;*s z7|t^fHrizB8qtEpTTtorfHVA534K9{_&Sa^0;UsFsJ zpO?UOF=6>>{OZI9`N<5x&N zpTn0Du{CH%W~iSK&0mk*Dyc3i>dT_XyNyivRqGTlm^EW~dD#H(sCdXxH5qcEk5V-1 z$hFP&>AL&Y&cgY*EA-lp9`eRM#H&r%F95_@gCAik;OP_&<=5yWQ{h04Tf-NYwFpgf zotLLgVdSmJ@+*75dsD@seDY+q#89fGx12jn$nBXJ8k-s$lj>CO#BvpV z4x>5dC)``c@UmcwcL=pP51!D7<>7t!uIiJoR|ay&4U6l8)VndXv?jtbA4d~R&cF2V zgmIjQaX3fe5wWAZd6RlE!!}*C_l0PO9M z{rLIwvjj?Bvku?A5C5Mo7K<)6NC`;JR#sL%_YTU4i;Ew8fs$2q`|dp~CgzZm+}(o( z$DQ52_!N?r%(LS8&@bR@#f9+H7S6+%qqv$tdD}u-{o_!|OC^B-(BAp^d5FZ)#n+H? z4HO;?Pst^^-uEl_g1(=H?Q-_H3=G`)a6oyH>xjW}?3)-*j1uylhP$J?`?`v2lY;b# z#QEUG@!rbddl{zSv*TXo1zI-dGe*TT8i|&J>uc{fsJ?%81&ffx1?~|lwwgu1#VWIO z>;w7X<6R$0!Mym>GKb*DRc9-^(`N?9C#S(Vky}~g11C_< zsw%EUI#w|gtzF6x;3KrD%)VrtyGMf_>?eD$itAczYH5ZH7^*_<7kd)t3JkFHiyyrq z$AlLaw6=KxL2SzkC(BEX$m_d8X?FfGPrTM$$$2(_MO}%bJbQMJ(uZhug}-_SJm>bN z?Et^V&rVY2jq&-mBXa zDLMG2kg9HZ^F|O65tD8BfLL1YaZ<_ji6Rlyxa`x5q3b7rlqczD(+ z0jqL*E@~O0_rW_`p<1(*Xyt;MW~nFh19gj;rP#<}!+!CUvgh4FW63Pc=_JAGn?pkt z0_@97ep@frl=LYjXkUu?hKO+(kQ&h0bsax#y1usut9K#XuJxuhPED$odMqkfo$URo z!UC%T2D@)nAB#s2uJk}vS+%Pw=Ojr66YVa2p@1SKN)C%@8Qv^Ur|sJJjk&IyZ`?bN zvkbm19UmY2hHTf)b$twe{4oF4RMK1w>fseF^e)ga8NWp9t_9YtN>9Tc&+c}yH`@R zPB3_>lvQ0%4LnGcQ!~6+HV0PG)!Hb&NV)32n|tR{7wW~=Ix{fhE82g@{E#7sH<*Om z1)I)0saEtu*EY4}psB}~SVJ%2-u_N`?R=cwwYE$dy0`%*p0zj`P;TL?Oi-GrF$#*M zWxrtGp|kT1d=Jja2_xYz2d$XKFDOGijNYdVY8!jJJ-zS^{C1*~(%d@a`lY;J)4B9J zXAJU$6oZvG%+LeuX(=w%C1$umCYH5K5{-*Dn^1patnLfE?q$lLkzwn?79F9{8_E#l z2OM0y3*skx$E~$OL_Px#+C{%nh^iiqCV61?&QA}`?>yW^i5rf3cnkEhn zW*Dc^Z_ORU>yO#dD4%H()y+q&GcN0bi`yX6lndkeuLW28G_ulZls2N0B8F^%w zHUD&{Eb{v(v*K<>Q@<3CT{xP8`!Mbu^&M!WHEajo*1j~kW*k2=@cu1_A?MDXQlIiS zd-PG<{SS+Zqi_1UBwEll>SpE!3*EdZJss<&=F{fck9gWd12(o_W~^0bf)uk?zLR)a zzra?H^K(~9E%6*)Y9MRi(ri&~aCU0Z(>^&r+2B>dze{-`@}LMFd8pfGo9ET?uFK+( ze}m_sccZdRbjfvAa&BP%_Si|vhC3Vo2@Wq3zyQe9BW~=xP#hAmc5i#Bp0dZ`V>8$M zS3GJtxEm{4)-|(vgIT$AnxlO~9P1=#Q;;q09P%p!uIAlxZByu-@6BZermSUHRCu>z zVD+deWHoaM1d_oH$6i;mN9TdG8dvM_28*31T-!f?;~1Akc>dwYyiU@nr-A+r#XF-( z?_~;4-nmTIZfOr#X0MfcG>HcD`mj5j)bk3OoZvMQCUrWEf@)q1LrL>z<*&c)$u6CY zyi0Fb_l|2FG)?908sv~mSg#Fx$yLzver0R4?H$bnZ{yl^xQSn@z29*^%Uyp7t3_n+w-+~ceNLbyQd>nd1( zF57SMc+Hiu@2-fO;&YvQg?0>Sxv~{B%BrP}vfAOHp`m!pL(ox^@PTJ(Ty=!L_Rid8 zC5PYiqrI|Qu&&F=e0LLj+toJFs91Y&4y)bGW1fsQziZL!m%uxpR-$7`G9vnkbxjkv z+ifH&UnLb+ka@_(-S6#)5?cfzF8WwQv|f4-YfdvamC>S;Qwx4wz;bfWBqi$%lkeH_ zUVnd>$&=nyjrjDtCSpPc}mPML^_ zM9YIC})KWhQ;Hqp&Ct~_<~i-(C9_On6$uyjziYZ%|Rc7 z#8|R3dASnY9?L#|JpXzlvpKz?rUbQ?TdHe0uvh;)(+rfRsQUcv@Jj&AD|E=cI>^9} zR3i;1tA&ybofCohEFSlx>35QIIjw^$y@OVEC1(o#w<6w{N|m}DN9}<{O9j^me)`Y&VO4humy=a+~g+C^zI{-!l)9&ZHb|zemNj zG>KzQx7gw`H<((U*tfn5U~X{|lR67wq~NFZs$l8P|bSJa$`NXWgxl96~PE2U1h()!I%S*q5djc^eU|_77h7H8DaRa zj<+Xx=E-POK(~6FYr)q~=&p)6K+%M(vb`B*_K+R~V-(rVc58&e@h%1k6o$2#7zAogX7 z%;*{X{TG#U6X(8xvL9AF3b-%8fnvU*b|#%3#yF!47I7_htK<4Xo{Hfn)rLizp#z1o zJcGi_3JeNsB*VhkU=Da8t%xEMiK84TopUk zhvI-UK_EpY9&L=lomf%ko6p`lo%zKC2&FFbM4a7s!?rp6e39T&eRLmJxL(;Hqd{5b zHo%iwPX<=6ci8CibZ_kEHwAuFIw6Z;0JgbDoGbzJkd8N7TAB(IGmEQ^^z?H}yCAN1 zpXiyOSIuKPDa|e+*m!lL^t%H);Gp*(c;?oO(Q1kF8lvANU!esyext-onh)Bu0 zJ)GC;HZm+i>Pn2uGtxVH%nNjj zEn+lhQVoVd7hAr&cwpaKp9?xWMx11EjFp0&D+)N{8GU$ zp+7h~FwjU{+tk4A5jU@&`JO4n0Xci~(=Q<+g?>3p?k2C^Z=gr})W$u=YG9c_d(yxH zyU)lUmqp2*HZ;V{(*>=lEtA`6p3ws#?IoHN13&hfW^z-swkI=^)B3d+*UXaeKSZ5gcU^29`xds~&um1wt(}W6 znQnoX)1P|V-{|VYRb~RaW4pU=nT%9Fk!9$%eW;Y38_JjlMbE&s4JqP^aW7;h43_#T zi%E%y_Mjd8ErRxxxd~;u;v)R<5~tbIm1#fa4M&qFxM|OC^}*W>a$Zz;A?5645vr;7 zqzx_Qnyb4KpWp`|OEDX5>&VI1tZAg#8-?WA2U^gWgP#mL)B-JKr^BcI#+w133&7!LInU+u-q6!)0EJ>RryUCG$N>zEzq*nw40IZ?AhuA|pMYR6!#P(2# z03oSEqkyHpWHGsbQheICjc+nD(*jd;4dZ8K&HrRtXN4 zmT8Zosj7$rrDbUof|xsz2~pbTEM^omx8v}V%M(p7FngIYd!;1#de1VUH%69nmku6o z3g*y^03j`g1Pv{2KyF0KFubP@jsFoiu)Jlg>*l%X#(OJ1$@9=aF%}95+6(EK_hT5f zjy}x&w{H8s6MKuB&a7B?p4n+0-a*5uflRH8sIqt(6Jgl2PX^doML@k$MU665Aoesx zCZO(Np~&BP7&IJn-$^fyP9nG?T6HR;C=t_tOZXJ9u5;OPf5vCMOF13wHv8RX(~Vo%#e254Q6B* z{BliDIhFJV@XG`~2GUQ}Q~>=UQL~}uD9OXF#&8*xYep$iMK;*t=jOM23-JnHzhBWn zJ11|#Z(&6&=u+v#vk}~!bwhU``uG+GHwJ4HtQ}Xb0=9CfFs&VTbu4XGn*de8!!ubr zG;6jP@IH{Fkzjvl$=+#v?^JN>dCK4dobHa$xn^LXbHnZ}x9bm7TEH&x)X1e(7>9jqR**@aXP|~qsKk(_3QXaMN(1D+f}x;= z29x?lyqU-FPfn^G5Dxd#Zhuk^c{DXxD{+k|_f1#0AV-K#VRVLH!0yT(E6N9@=hy2p z6lOn6MU$X00kQ4c*K)L8ApGA1vJ+Xe%iy}iz)TXSBPq#KI5w@t9^snimA`@0Rc%M1;dJ@abV6EwBe~E%@ zjJaash)`=c<+zjx^;Uv~OZ9?@x^XmaT0O3kpSA)6kTUW{M97*Uax0*0sPe4Fqdgn% zd>B!VM+>lu0vtO$AyY9Mk#6QLqSG+#@MwJWEYsLFuj~VyEPjqeh#`vnl7kj|f%alV z#y=s?z(qI*DMx@NOL1JxFb3c}fPq;>SZy~v*)%=^@e2!UsG1AdeN4WqYv^i3sy+P3 z5>I?~3Lg%SR&D>E*4_lJsuiK(cmwQ{!(RsuPOX0F)_b4% z_qe(G&bE?IZF z`q<~Lzqf1VU-g5|HVoN5;O2?^cTQjW^c#~QZB4%&DM34J(HGv#Nn1E8IXrO5gUsd` zSnEN?+!~d(_1pwW^JTr^E0%?LGQs6R>%K5Pe6hQ4QH#K7ehZCZGjkqQ$gk3R$yX^$ zE(Ps)wljU^qn&>DpWJP|EZu90@9m$i_F4VYqDl>Q|85rCzWp38-y*Nt&HXpngLPR% zdyW0)8ZV~K+fLvnZCsu}$@U@+Zp1k(t2kWMHdpf1qKePLW z6$X1?`kKUFtKYwIH}Tb76K*86_k8E2dIfJDirNtLV(oWvERlat`J?zh2R~^chBe_> z=piqURFA|R^Nyu>*uUO{S9m_-t(=s4Jq~(#-}ZaOFQdi>4evfVxaNc5CjI`4w~T2s znkPRuxBBt^2SR6US#tNc1l{0-?c(^l?O*pr(2)%2oPIN-dTr{k5v>oK>+6@@WFcYu z&EML2Pfl2pP;Evi*S=3qo^4pO?ky{$FL5W21qJ?buIu}coxOT&wG+wgi zMbOHAU(Am_ccj|MjM1As+O=(1Eg&epTKY?8TaK%Aw#(U`V}1y;B|m#Hl=~9iZxLud zBR+l*ce+O5l=s>msw#olF8?9jz3LrUF**0?m5{shpMJCwHb3?ta^*$N@ zydljmtN8Z7&gn<`?|aIYgnSk*)DA>)T`d~dO=8?;ytH=+FT8fYL=CApz|T@Mgsrx8rm%X>mFeWa*dgB zsl~6${(NHf_L!UzgtwVIaEC5#8NWd+TN{_3HJLPuhMI7KTRdJ1zChMN$nC9YO4jl8?*0VQ((Z-7& z6`u>#zdXql5piQ&_YFt?=fJ?dS(m)8C;l2*VQl=wv1j{+y&QPH_}5I2dLF5>21RA1 z$S!(h47l)qoJXaE;%>=ak1+op3GMVWDuRc%s z=*c17@b4cl$*+6X?`+GV%lloa)+Bin=iaD! zuf9{uc4OR>zvE&itp2jz60pF~K1)GV`7QnD^WPX0G!Uw?<*m!1q&VVc?tK)ugDA86 z?#P^;aVH0592t9Y6Z(-*{b-MU}eqV$o97yoP#K#?2 z-@7eHIC3c<&0|sP8ZV}QG4uSYi*1s!(~5Mc@Tb{G`Y6*Ly@>?r1{bsj_owUW_p-Kh%}S+gMoY?kbi2zr`IOt&CAo3?OsOG98x$0tJ(4}RnN z2Y#8k$20%9cDAASXX`X-2);hLN z&cmD@_kzQYcP20%8s6oy4{?F-!=4pu&Pd$_85lMAP{Ep}!{=7Y@(7BWnxVfuF5<@M zwn>NPef8_*uSSIYb@$=J*pJ&pb~#$7;@k#UuU9kw+f4^xB4*Q#}kj{-S0eR>Dd{^ zhKU0ud6s{t*69;EV_?Yen2W2w|9fxMxcF*?;_CMw+gL9rFC%#WyKCD1dub=Iso0YC zagFVFb5FHv6TQDnQOs>ZADdT#XWcm?BBnQ5RcB+ulNV#ICuDhz+`H^-Xl|`Dr#im> z{^1V2D%PA2MY4PrUH7wZ%kNoWERz3c^8amdr-Gg()@jNc8FLBmR=Y<@~Vlr1_*BaIiT7&uEx-2v` zUe+|wur_&vJ>$y2BcpsfCC~W0X3^prOOpH{SQf2plAVyGf6e!LRQC;`@2*Q&*v_+E zJs?Bd^hqyypWYgEX-@9D^K*nuedLh}edm{#zV_~4^*m~C^Yxl~{_KX{ar2h=Ui9$r zPM(i#GTL-ezg8W!Fr`DU8Zex{ykH(Ye39Sr_qQZGIfc=9Ju~y^-TY_82mOBXp0IG> zkt3$8cXOL&|5|UES71`R?zM>fzuZN9P_ISjf`hjDD2d0=4Lhn%x!wBjPQDm+$e-lj z9<>c_f4I-9HA9YOPFwur2}@eL$6xQ>dcQ@t4WF*Q*RYOPs_*JGi+sHn{VP?NVA4uH zNy{>VbsIV_$gaB5Co=GjgLxUZF2`4cj~w=kf3FJs6G;BMDrC&UKb-@P`|o>pK? z+dFk>}Se9cB;Xs|8%>4`qJimmEQGJ=~t@Vv#xC+T3S%_Hjb7b1ud6 z4Ar8*VYhKLfPe$*zL@t(Ju3y0w1sEysPi|c`DG@X z)9wd)f0K}y)nLTtf^*47>76SF}9S)8%f2d&}hIcY}^B##RYeth3c`aiIQ_TlRr> zm()B&L{j)s%%)tD6P``NNT#;mIBy3!V)y2F1!#nLMn&icMbxjm>g1NS^Cr(utq_Ao zP8e-#IK1%QXOa{-z_BIc&f@7! zof&YU5qmmo*1WC>-v9x%Rea($pvp8e0e$boONBi}ybb83lH|88~y=T+h zbH8W)`+dJxTEAUDEK?^ZyD%Y)v--Str{pNKa()icWKqDiRxZ+9Q7Y)#9ZeLXX|VD;Z!eF@6) z?;TFqL5A-_ua1Xe;*u{z+2yx*Hs^i6__e7>BELc|M-1XKb!ZZki%E(J-X@F1`P{Me+i;2n~)b!a^|40 zUBQjed)TQu6LW#D@HEL4qI#v)>*9N`_3*W!I^sjZqUHbb%WQxpY;*jbDVy%yF*SYV ze!te+QY+MGU3|Zv&2Y&RSJok-0?{db-281>NW%76l^_9MgJbrM66+pD09)tW;;B

*W_17!Md(-dTVCf%%`g3q+n!uc*!MVp+=%=A>i8X}P9=H{TG)GS z_+f|Ps@e99Te6$Umwn!i^Jut)SGzwMQbDLI086fC_SVHpYMxY4cIVYGaj$xMdN+C! z`Sr8vZ+f3@xuV~K^j0(cb~J`G-w~bn1;XT)4`zC8&f3-HtFBKE z-5K)u(d~K{M$TS-GB-0Jqw|`}?G8ygJ}f#e^!*u$C-BF$kM~&0)lW!mn~-BlTD-hk z{RJp@50j3SbkaSFxlP!~$;|Tz`0j_SzyAmedcVu^7LOL)-n-NP`lU$|3&(c}o40uN zx0!FjiS)>=(e8++Sk;1VzSyD-A>=ekn&sb1y;p(cL}5?C{{MQnMw7~6&j&}rXLc-H z5i&I^X!n#U&j-DneKPZDA2`z3gRS>H{%Ch|yJ7sLsVN^2yfklZp4ug}>w>%<+v)`# zEdGT$f;AT|!*bLKj0{{17n8UA%(jL{gEtm;zi;#^?obK9o-*%#Kkw6P@7#I%Xl+Ju zA57r(y$!eCH(waqe$a^3m)^m?)glhL>v_@FRypiZo8<3zJYE40+F20RgwC~m4=!Ic z?snY2w#`co!v_ju9lq6i!cg;vlohpR_AT0%l`=SD)%vxe?a~u|%!;~Iw@z;LT<Hj?rgkzNo13Cn_diVl+=l>i|~5jRnVcS zu0~vk5<>-1(&K9KqgB_3ku_ewc*+~gUF_7N$fZF=e$Rgp5|DPg$@)rN&HrkbnD}e@ z%K*bC5o;&=oel0Xyz=m>>*U6@Z?p_&cDN0g*e7YNL~KH~5U98Q>(^>CKKH&$&|UQ9 z{A%-ihehkR^?cT?TbP-r7IgAGs-HF2ekZk+v2EL|E0@mKKfh&1yQj}$rlmf7;l%U^ z&*bq1#)sU8gjlGHyQ}UQAqb}Y0SN;W6Wjb`^;aTSg!dFgnWm-B@`?8 zGOW&osLv<#N}Xqa{!#a7D~R1Ud3X}>z|QRX+r#(f`w?+=&l#cTd}qB{({pCClY0xY zetq^}(~)s^nvIG`n6N;f<}-fJkV22twZHjCE=%#Q=Nm;1*Ru$alC(JgeLS(p^BF_W zv|cZaq2bY-oqkE3mP)WIj%1Fp+x4&ZWToBvv1`Xo_p080`Pa;aw=Y!~xNApZptb3h z^Q_?YC@Oi_`|~#y_)NaK%xCMz zX8^b^40dg%<*rXIpoXDf1bKGqpKR396 zxs7?6@9iyz?}j{D_Gyb^-7TW1$HNBhsy1f$N4ZvJ5av4wUfPX*qj=~ z>l|b@QGI&CvVB2GU}aozFwUW2iyodcdWA;B9ZRW~lVW~O3g;eH4oHjnc>2uZ9yQO- zc)elGZY}3Nm_K{Mq9dNIXLi$Fj!)ij_tV&r@0+Km)b2#)2I6)=m^nTk3=w#ct$?rV z%qG>IG@|I`OI5?#Q7*Fk&$$~Dnw$?gH85h#a?I6)kva5j$5-j{6ZrVFAW}qT~6$hFf>7uJ6XL!3}>c~ zsOvdpL_wR(UC$Oi8+xtzjPDo0j6j8{7t_s^MQwwT-Jg-DW36pw_^JEfJ=*d&Ut>p4@;){-VVP0`tetW zN1SVG-8pbx!i_C^@r@U%4~yvB^txAjy{8f+%`plMlhJq}^Q`Oz05bH*$v(Jf(}ce} zKPj?a8Rp0XU^>EKSp*7A?G<;%kmfbLUi!@3U%nqYZoz}Bag+TT{P)SH-yAxZS@%TG zpKB4~=-Ms@ZO^mY-yI%T+>Nkt`~tQ&?m)k$_6f}-S!DnE-3yHf6oSKa^$XXB3lR9E zY@tk5umY<2NJT#Ux zGc*R4*YAacWlV;3&C&w%?}MsZR$UuD`2}y_D5Ye6)g<0=Pry-{%u=RT`v~xYwL77 zZ~1H^Iit9|uYH=wLrc{oHOYZApIg+tb%!}I)g#gu{^Wlp>9e^Ve_gQuuN!xsZ}m*~ z@b}d(1ifmr8Ux2H%lmn^zu*QTsuBqD5@R;am(aRXPRfqn>GP&G%Gy~?SYOdizdWCF zc`uTtjB8Ai;QXZRw|;8*+Onfr-<_#AYEZ$s+L!Wn=EnxDzc=W!EBU+Gl1mK-{AP6~ zlea^8)hpPu?(2Es9e2$O-yaK__wZ~>=%;VG+{ZtD?U~kJuKNc4mpL`jX@7*{bNQuSEiFoJ6-1zFXcWTVMeSOG@IUjTy z^xoo`11HtU?eh7U`JxI&y682V0LE&HQ6y>=*X*33X0vX;;zjl?K&pu^tb7#{YC?Mb~kG6y^rp zTSi{;x0aDrfD5&gYR}j-HE?l=1jtXT58OHWiRZ2&a+NciQBnic^2?j@#`&jjW_5qy zajo^T#P?p?FwVO2R^qe2_a)zMSE04{Ex$Usr&hF{>HST#{kv;%ZL?SZ?Ukw+p^<%; zHVw2D?pf(Ab!_iH{A%jO^^2)o5f~!IJ+g`)DH3eeP5(2aCWmiob#QHB?Dn*brz!hi zzI4F6dD)obKhE0y`+>BD^K!iKTy2S0FLm~e`!e$__@o6@hcAks*CnCD{vfGasXD*I zg~cFY0FP*V#$5!@WT-&r8foe^xZ7=%;BhL5Ie!di&;oer^x)^PGR+ zaGfRG$%MKvujt4@iQqx(M5eg00%P%+z)-fVx@#fZ&9V1{`s;c`6HXh z4~dJdL#+#1ynkH>hgllCxq42(zQOT-U244QWEQFF!^Qb|v2ii_@jpG~<@DFOY<z-kdqx}{USf^iD^+k;V>zfPogPt}#p9sA_wb`;xL&tY}6AUQXN%)|go-_6x`(o1T zw&;x7BE#JN3v$8+&KDWi=FvB$9LPmb3#xaocrQDx9AtX*-PB)JBb$4JjOY*(34$dMyt0Y`ZQbst=j>4~ErAJs0^u1is`H z9Y%Bpmi0{Lk<~w1ww+j0@kzp<{!2+1COvu>+rxgTZQVVGr@c05|Dsy z&~~=$^*g|2Vu_}Vr-&*=JV8>|oIf<-dr>oAGSvGVp@g}`!CQA$N>v?6 z-{1@PQpB0qevTjJ-F5U2#j4e_)qVSv(8+0cXVF$%VX9jd}n@d zwn++t|L(NZ_99eH0R+)9%!PlQpj}1ldpo01dxi&wIe(S0op>4%{9cVpK_{#d_x*5gZSD?eOYA+<`#c~Y>dZDp)H>U#5X{H%GYg~#f3Sx|MQq6)D^i{~%B^V{}O zN4uNT0vb)8^epGO{co>){?YJ^Q=gk2jLvIua!vK<@UK3Zcwq2LpS2_QYuO{3nt-hz zgLAq2J?2I=gJ_oA$DPdysZTbofEJ#7k6HsAJ65gx)?r@MrMJHJ^yh=S#*bNLe6Fa+ z+>{$%@AsZx?4S57`uLL1Q+}WQd*vEll&{n_#}C|U_HS~vQ>|`c$CLB!E&99gR?0hP zDQa96(uG5di}z^Q;=t-nw`P14lX}bh*eeBVqVlhL9^N@AYx<6-owI%)+4|9ztcHu$ zrQEnxaZcaQtIqxXV|#ETvWyv&WEBR9-QL>CvqA;fRIhqNHzd!SxUd8rMTE7#`5Q@; z__}{uV&*@-JayLgO*p%>-~;U}bNWuZ*7@PxjXi2zxY2z3q)%oY52fs5=x;o}~=Hc&Hkme`)la99-Pgja0XqpPRand)_Ku8jPB_Vz1NXPsO;t-2zkg*dEHZ zisJl!_V&gDq zwyYc;K`xeP3v0i%u@vw*9!`p+X=kqv~w)pq6@xB-+_Qz$by4 zQo$Bv6XyW($}Su`cY9-AemK~7Nci-=KPTQwoVl~G=Yt2|&;4e?r{ih{RXEUgVBV9{ z8~ZisXJ|%83U=UH;DSu(7ocZeY@OP84Bs~}ICW(pF*uaD%zf=h_k{hw=eL-9D3n(c zW<6S#d{UQlxJ$8Z(jRR{Rr|Ky(i*-Jzj(mxOSKy7u)P&CXx%j;Q!Q7&>e@*tEH>&0fU1qL`PXGAN z-@AKE?ol}K)!HLQoNF*pKfS7HbA$g-=ex0Ay|F3pnMYO+0W{9cnR*$EN^NCrG6`|< z;fJf$C?cbJ=I$QrA$!cGu^M?=cxd^+XWrU#9=F!I^xi%lwL*ME{yZ%Nm0 zs&A??EdS~*^LICY+yCRLhc)9q`Dpd=!|y#G@=Zc&Vx_z=F@Zo3sHvdF5NFKl$e%N7!pO<&nJZn^72h+kR`rEmIsw&yzgP&w>h-h)^ee-wu z_1?K$9CD;de~*!=e>L6pG%6xxXutL?>@ADNZ|<;BY87g~8#l=70XNUkR8rk3Bn5Z; zaM1%EeIUgOvw!^Yw-MntzBB$YAfa{PQcGIS%=WoexA1ew3H#EHz46+64ZF4aY{}xj zFMG85YlY9&Y;mBqL>oy4c#_7TCM^2iFLyRmJ%y_({K(SzTJ!$r7fpI+@|ThOvfAC= zP@~0jUGLm~crD{JFE$k1`sAcN?T4R!_@k#zxX|$6gy89e_dz^N0O9 zldh{)_)c`6_qx?;ai-Vl0sSA{KGpQdn1#g+>$I4)bWi3VBe!%o|H<;zOZ)Ze_kOb` z?@bc)ajo0uJJA!T8WKtG8sW zUg#h3&H2s;ypnFe)ot2|uKoHg_#y9R1-BkWpXH z4YPi(6k7i&ybw9>iZvm#JrZ{CA4G@?mL>ToZ4UQYn)F$sKL2Xxd9S`Ru-UwCc&YBQ z{&z1lCx&bAD|Pfcj@es&)#T5^d*b>}x;?%(jw+No>BjB67xkPUQ|FNvb--jsbCh~5 zU8BJ%?FU`y(*N52xBqDP<*;*GceR22@?R76ZZbuh55K9+OD##QEDitsWMho4gLVl4 z?DBR*ktx4LyRT>Z@x~Ly*r4TgOX}qOFz1y;vn#!G?abCU?%erfz|2bhKL;(p)cA*a z8|y!}rk3x9ZJXcebbZp+?)fdnTj%3ey*#`Nq#Ub~=Zs572X=-Qptx-0yK{CG{`*gz z`8$t>iGNOfaADtre$5sn{+jYvzfp!Zub-^6xXtUeR((5ryU(9V<5zvwIBQ+CLwSa# z1PG^K&FOW}Hn6Zz>AKde2pB&Qlk_RXKg~v>8l9;-t zQ*7gN`NMRZJTj*DJ^kMFPCx#*tIZGpJ$^iJZtf>DTle*P<#QYsIK zrlhDKW`|!CqHWb`8yD;9WES?X;?*{B$M&6B-!6Z!eezCA@swZw`$gd=>GoHSH%f2Q z@x&RgPsWYiGV)>eqRSs_8|5>$(V1gaFMXRBSQK{=-5>Jc%g|?%7Ev#3K_$r6K`!4$Yq5n?Qe=~ir@w@wPAL`rk zy}h;Dy>_i$y<0VZu0LeL!PDco>iBFGHuNxQN`OPzXeBZ;1 zGtL(u)aAT(Y}nYogJ0Y+bJg!#Djm9-b?K}3c0C-nIqztzS*MSjnbzrW!;AR!n_tCT z&HZ`b;n}TqgS~Vk&KlkA@-M&%$t>nose|PZrmu~g^^|=pzoc?yxmh)#9 zR+xHca%L-i+QR%NcW%|q-8Qk(s?&qVu4`Q*q9P?5+0@yl{9Prqak?*@@X>K~x^&B{ zc7FEWCa?Cf4edGon(rmkthWwNof-Sq6Wj4i`x<&o_Q;$OcXRQ!iMP%+nAvLC`KNzG zC7iyoYy0Eym6dMiRlFFpW5eJ@O#|!K&*{3BH~xm%o?kG2&iTzt#{75h3$sRDj~MV{ z?6cyAJ1^YW*RX;0V5|5`vnRdQIx*(owJ-b>zUrv`XRnK|Pg!2))h`b>57s9TZ4+2* z%bRTX4L*Ee%J7uC*OSjb-~Q)jSFYB5XGgoU-yYe%HTF(c=AX~=W?9VCnS;ijjy)4T z`P5ehBQv^>8$0;KzkPq1V}8TuWbtgHt=oII^O`Q3Z@lmAb!uG8*40xzE?um)`oHrh zOuCr)_QSg$2Y)1hX>Gsf7u25F=!|i}ou^ZK%#0lyI`-!QC!RYwamnDI_Vc<788W-$ zx+@jh9oaU1+|^n4LWYjWnK8gtsdtr|-ob%A#+f5}?z}bag}-Y>4rtr^VODU7<}fF_Uf4L?_GUw6RCjIEw&DVA1#p)21X`T3sc=1szQ^Qqn9+aaH? ztv91_<>Ywty4;-4rcIc*=E$S9TRT3w@coC|JwqPf-}aJaOThZE(;xqy@UM*f@83Pv za*6)Hoa*6c4WC|0*)~%jU2L8*`Qf9(cb49XIkI@qr2jt4zjGvUQlG80YEQf{%>QYZ z>ubEW=8sD}VtGNoGpFN;1+!j#bnZ*W1~ps(j`d%D8s>75yau3YMx zUc)!J+Q-35Ze?xQ)1+GHz~YatywY{S;1S*Toqj<#I6D5d)VvQ`+OGd+I4|%vdXV_g z?$h?>li1r06Duv5u|2wNM{~C;rz8I;{A8wC_uxss;pJOvCp><7GG!y7*NRHh7>6@2@teZPM8-@Qy{8~7g%deH;#`9f%V zTI`(*=icn?o5T+ygzsvTvn6!@>81@6Pk{fEpI+GK|5?%^0$Li?%pPSM_`m##h?s{n zpV#+oU%}0R53DDvoU}#(-}0ex^-Hgs>pS4RjAFxbAyr0H z`Jl>JWzW^!Qu}i`ypoMz+>-OutGo06zUL;Z&MyDRfjXZbQ^jKAa06`e?a30MHK62A z22ROfGVtkdO=hw={?_a>q>3hWcEi{Dv<|hu)kfB2L#jA?=R@Y2RGoy@p(=76Sruwi z)VfpuQX5wl{hv46qV0xW>tzhL!)&%00{ERAory2e^D#>G>=Xqzlx((5JtA&}4aKws zu-lqc?KHrmGuX{08`h!Z0L(^hvsIz96E3FKo%)w%bzD_6q>8g=t9-TIdGgx$T6dbv zbzDuVO;GDl`&(^fO(wgo$vI||(P}ZtRX5vpHiOk})yv^Kr54o9Xfy{{e5@v&m2bcX zn0*3_I;-7aK^9=wnG8H)L-7n|U4V_d%J)YNI-}lfMmoBR0h4AkS@l*QV}QxJ6Dczb&~t{Ua!ETbm)&B~^D$bZNvD_I6zw-L8@++=esZilVscDd zkqvRX#L=aft_!dl%~l&LXCicF;g}iIAv9WbMw7|FS3_BX!EQ3*bXb_hU@@?87HhV! zFS2kp!D6;r`Ib5xW44)5JQmJ&*;od)9BsAAf}L}wp^*=UvRQf)Hs86`B6CqJO)4uk z8}wK}Wf%CCJI|C%(&ZdWME@TylU*?*b~YEorD|pQKa{>pRvUZACyz~{L8_)((F~)- zZnCfyNUbKbovqNM$jmmqmF-1lH0lE^dO1j=-DJXGA=C2*u2ZRlR7aA7)U?oQKnwLY zws1_9034^?W;CH?dR+iJhuPB|b{ml_E!zIATq01c?5MRXilfHATQue z9rKj=yWAHO_r)Y?fi+@QHl||qF&cFiyVcBxTDe8os{pe_&)qWWOt=QjKQfb%rE)2Z z?4Tup3nhITtY*x&$hZ;$AmnMg-eO=kk@BcPk5XgU1VEUTmUwVGN(~UP>*btiXSQ>j z?T)8Q?zK8k^&&a0ot%p?fOB(dfJ16U%3;d z5;C)xB#d@|m>Q!UE2U>vHnV|GKVt)}Ha@n=3`AUxc-o>1pmQLU0%A(chB{A0gEhl}IkA~+%ml!N^D;An$p?#$sxleokJMnrr(ttB zB?D#{J8b7%xvq-L%w{nwWC2)Ibd`48Ft&{uh@Cd+t$g|!sRd(#u|%df2QZYs(3b;1G}VIA5G?JKeYMC?A?t&#zo3m z8ZAaE4n|v%GCTInWhhnTIue-Ku^n7p=R{GC5}~?A6d3KZfSy&6w(KD;bJ3)w_gx(v z!w1smIOWUW%6>3O$1VtT*VdxRv_6MaA>06i1n}8sO*+~|s!cQi3u8t(P16n#^@5?btE->O?iEwoFZtG?}(^HbhY>**Z;Hdg~QK zW;G}#2XAh%V_$J4V%`)fUf%*70$y0nI-E)X<^fk=uvyID7_Kuo0>3BM%Z=L@T?OD} z=JN9CaIgR>hpX}-t^-#ENS~^E)%HY_x$cQJBbh%lz@T8j#6{_G6?QS&I2|z~L?NIJ zJ75DTn(M|LD6Z62crm?REf}J!MK}EcDoN76o7HWkJ_-^#0A)CH@+3` z=w^zFs+LSh8y!t85wekHz0m;9U||491;lE;O@pMW%y}pdKPJa#6cmDI63}QdfWVal zRHW*9&8Baih3qkp_TYL`wqb)=4dpP19Bcr60VM__R$Uynm|UEL z;&RKmQZ`Fi1fx|PG4p0IxOs^p^h72&909@f;`gh)7;Ec=C9348;kj?b2S1n?5Gz21%Rcu!uq&qfM&0>Q*b>S^}yI{3Agm< zo_4U>ii`q9uqe!4U8Oc3f=6{enp9^0e`0mi*axE|TFpr*p^=Heh0Dvf0rnKW!K_#K z1__NsicrWtJCN5X7H>oqF0vVtL7~wCgq#z@s|s;9M!f~Ih2huf?Ep_slDGnchyv;? zgrcGaV*Y`A?1up_f*%kQ&E2$cVQg4Zqp*mmtBD9gFY3zvTLcW^V)ST~l}-b!2KXZ+ zD1n`b$f(>%rlU%*iI_A(c%vr69hAtpxy}WQ))wF@M8##IRzf;#FR`(tBi-s0ugg{OX&-q5!wkwJ%jW9K`LGizb3mVm=Q~h9y4=yQXq^Y zrlu`s(PpvB;kcDTXktqVP+hxqD^wS&Ot$O}DEoy{6CvUf(FiNIPC+oL(5SOnErhrX zWm2H0foR69P<@;&R3CQ{a%a(bz!20%siQH27|gI6N)&Ar8!C~zCUre^jE@;W0#D#x zssL}sV7jpXTneI3Zk;fKWrWx}D@21VOzYIGP;}8TE1J5QtL!36vxE1sI1qe9s%Vem zvF#F*3q_~LOb~rT@Y+#qGy)OfC!QS?KzJu;(WLqTIAuxSJ{fJ=t@lN!o3E4M8fGGe_z=#$lZABe1pazJX06`>HwpI{@ndRE8kR0&dha*Iz_FWx)QB7H%k_Rk*A%CqD{x4 zK5Q^|4=cd-2wwsqM=gXahL|w0O|ZV|d{mKg-okG|sH#HtM)VEp*rhvU(7!@;x$J{W zOVLfv6Gg)xIyz(*^(H7kHb)&mUB$aHRo1?wkFzKg>b z@Pp3dbLrL!Ye@aZgcJzjN`+koy&xng!>-7onanm=M;93e!6M|F zLk3vKhN}C(V&rLuR6=EZzY=!fwX8rVyo-COy1)2zZGT;)WIV7{Y`5qpljUBBQ`dwr z7gj8v0`UoD@h%t+w?g%CcBOouVkh7h1pi^aOX&l^8zd9J9p$Q<#D54dggw{86S9dS zWj8SzHhd_NjRZM>Gt#&OUoJA-gyTrTd}>RHt8j+I3~V8xCHG8hrBMm>#jZ+z18uO{ z!8T$5z{gG@&e2AOSbV+>%Lif<#>kz}#W_OMz^&^6l5T}AkCO4m zO9DI;bxajasASOau4s{6=p-CEj4XaqTy80$D-g1C+2GT05ALNd9oVo|N`&Lut0r`P z9(E8qT}XWQQrBL&)!L6ab9%q&qWCc!{m2xbtdDAylcAZmb&sS6v!E<0TiRWmp|JH(HI_Eg8@ zA{EM!1f7^{gC2iwCHbaMYNf^48ig#dLsPSVG8%Y_Q$^XKl?0&DDamWF2i6%ZiHpR7 zaBgMSB*zI~N1_V|VJUN-go^YFb18Zaz_dG9UKg>F>m!Vn3B%lg4T+n@z2S7ri`7n~ zwcKU=u>&DH`Yt6FE|Wk;TsQyL@h2!5aTji++VrFgH?vlj$zK4=1U-THh~5YtgaA;b z%!tSv_f03nnBtz;N%vCG13l`XEL;q$Li)Rx0*-*BV0`HpoFUvEI^tG}CR;cUe5GS0 z&@7~7M3dc#MKviu6T5=%Vo?UHvZAo%rRtg;9hcpSk{xm$I2Jj+&~0JY8qT5 z`sh~7$pg(Cd#xQf7Qvku%j%e)bFa(HTG>B|L~UFk5PhrV6XUXpBVt5oi|+p+s!bCj#z}vUJF7VO?B= zSS`mkNv~R4Gsw@$ptx@8KZw;%9EXGFrHliME^;ASl`}v}nuY}vXVE!MT6!ix5@;)o zi;Ww|5fGx7Fm3{qoH98Ag3KY-A2vTsB0VrPfl`=va-`qnmXr`@udFPRTq`StwF0EBm2I@iX9GD%M1; zStvEi+%;z7UQC>V8%NKiH48IC|8T_rAa-H*6wLr%34U-dM(?adpHV)4?{%P0Uxo3eO3 zcVgGG(w435hGYA%w>HRAE(3lEk^pK)v`iBdS(8b@sIX5KFa<6J`vhQiE2g4Hioldz zwMeuBNy`oS2XU!R$jhP_?0!VoGV9P1&4CHXR( zTZtJVUn!I?E{iP$G~wWwDPGfYWFjPLQh64TgNsq{!3FBe*o0X7t(z-9Il{WzuCJh@buTtI!P*}F=$*^88dJnX;Fyi`^) z76lu~h$NV)1>_}jqDF`us1((yd(Z5-khBvIj<;0OtR;rXCW&)iF#*OZ1SnrqKI zfE37oGOSgLw}W+G#BAv6FYgmw%hk5l@B!f^JqBuo+eN(rk;4i;Jv2g}iGQm(Hi6`!JJtEE&MW2WeyTd}B| z6^N|_idrZCAm%Kn-6FRjBXX(P>t+vE1P^e8_fu?Gg zF59h*t{shHn<2S5PaL?`F-Im+47R)o!BuudB+$>mRuUg9)aiU(7NyGMz}RBPl~JXR zEkRWk&feLhwoR^!Qlv^t)Dz-Cs<~XcL|sa(wacPZq3o$TQP;NWid=eivv_4w$T?8j zE}7oa3J$qRV8We~({dyf*ep$oO?G7K(H6;D5dDi+aVu4OkhZYNCOKZM-%?Ue)KMNG zQt~BGU0f~rAMgPz0TCMwlp8`6gmz0*ATnH#cvY#ZCXQ8nxz?1;p^S}FrY+V(inNrA zOH}IURJ0sZuUuRHTJANwYZoU)jU%>Mo^rH>4tKu(;L@v$&~*lyn8`wTh@FNb2Z>@E zWKrBA@w*H}HMlqdmX86zT{wn!N?kWlI|3IemWqu9UXrzU*#u5Z6H77<_sL>-jSw$K zRVGsaLy}lUrfz{MlPSn*AZx{Xm$YQEu#IwpT92Bn)CstVc?fsQQM&ZW1|k%+?=rjy zDFtLm#@A-*+E!bs)~mKo*BQvZ;A*Y%YLTXJvMo4pioGzjF1zR=g@dOA#u3BO7HUo@ z%;&BEE@it|J8>s|0T|^7EL_&0%47-LMoH@ngP^v=%tNBcD=J!#>O9r49UD+~_TsAl ze<*uontf$`=VC^;cbh(DELPDfshQ6ak&3|L-Buas>% z^3wD~5Gb%xm5ByOLYJMTCK@Lw;Fv;BNqGW8z>boZ;32)-qY??lwQy7>V2vgN$jXbw zk_NCsKhcv&P(P_d1b~=Xi@crTY$d2estIWB?1@c-2gDAk8u0RsHgjIuPgruY{h`^jgM9Jo;G7?iIGIeV){N?vsl%D7V2MrWf zm%!^mB{BeuylbYw5F=H;a@{3`${kaeph_rB5YQ&DPL**x1zO39ojs`%bv${_*^1mB zjI&aF3E`yI#zR6K2yRi12$UeRQd_ArS9?+=F5}6nDWj3H(^hCSg&7KmtO_N@ z20{yHgLag#Spu5!G8CG?0$xhc9UKgFxnybGOVxp>+ABZ090h?e<&xe-bt5t>%suhsf=D-=}$4k-bwI3V^`+=?dTl2SFG zB!d9nAQ~bg@RDS-nI!;7;Z=x7fJitu>@J>$byLPdoJ)|6jdCRSAk#p3Tzd9c z7=DRnDAWi0E9J`sGeY1?DqUVLL%Bilst~k6jS_HQU>-9B$_d7B zD}*MTGf*I3h(M1*^i3YkQ~)T{l)eR)poxT2T$68){*diXVt9 z<|Lt=DwK)~(({T6s2#W!wt`HeER#ruRpRM+{fErrKS(h|PrcFQHqD*CW0n0A~J*l4=NlWNfBOYRz%o0^Z+)C`=j)ywS)AN4rwO< z7EVDt3KR+4gpbrWb5}8r63LPy6e~$?4pK~LMy(yT1yTdNqV`5!Pu}gpj=PL1LPtB9 z9aILzo=T~Lv{S8#)Z79LWHlvgWmHuNuY%tL{j&M$RJbiza~_c)KncR@vK-Qulqf5~ z2|9uZphDV9R)IZ-Hzi6{m^m~}`XiFkV}iuv2{i^m$!UNQ9GbwZN5T)HvXrcXWu%pC zvRFHWWe;3I7yx4UC8cByLkmsk&;zFseTJ*RK{2*^!fu5U8KEi8SvvQ}t zh)6wf>^!Q@PHm?wOj(24o13)?*MjNeW=k!7Y2zum1mF@zLN!Vhv#LVQhwKRNkaH5` z;6PTyA`U{goK)?ArfLT+LS+)b5)PbmAbG>vd#H#cP#r>Y{scZ82(<^wtK$kyfsFzv z@t%T_o2<~bVzv+w3kXjH5>$c#XFD)1)NQQh*62v9J5n} z+8VUpSXP;}iYn4l>Ki06pn`pLPL+zvQ6C^yo58WH^1~`_g{~n4c?BsQkqn4SVBsQF z$D&(xENup2!(jJGj8Je|=90h)OOl2&AUdF|hoC@tOWrBOxl!J(6kCy7fwokB6U3cR zeVpoc)Smp1BjRxM=_Zi)F*zN!59=2kN|B`{i&%)o?;$uZd`+ zOqN9;I4CnwMmOyzz>r+=Q@fvwFDlEtZY9i%bdCpQwjI?%iLS_q;ul6SI z{>$qRay6Z!@~GO5K#mF>`QZ!6vnajcdB`S!f3#7#2cTdj7T0E{w$s+2_U2}-a&x56 zfP5D|RGkc4fRGF&AP@_{&%6L$7=#RrtztD`Er=WHh>DWGB2tM&%4BE^P{(?(TA%9|O^*{MQp4Qg+0)+$>- zE`k*bIa=C}@xnW$r; zyAVJon#!m!B)sYAR;o_QwO1FR^40)uUh4Hwdr-R|4dtx?r&J}k=mDh%oscSZD+~Z~ z5tR%6lV4_lk0B-KRtWgw2Yi%@IbJ-#x61-V2(bVVBmn2t61)<|SIYZv$An%rEUA>Z6OxdmQNs!<=Mj=^VG43NAy0YRS->kXlmK!Zp3tE% z>=ZQ%Z3=z|fOGV`4MU_zutW9|Gz$qTz!=p5xwEx$%B&RB&zfZrusVuIL*C>TBqa`k zeHBWR)DIP*(j!)eM=?v1>q12dSMl9kE5~*?30u-moUAY#3=9|&+rq<~BdJg#3I+z~ zu(2{7&P-ky6oM5RP5=v|kTkNen=mO%2Q3#70Xq;*-5O;!P9ad77tWRNSldLmLiKSu z2(l~Uw9o`i;dzHcmAdFQNhfXz)l}Nmge+5q+Ve=&=Ut_YMrw-N&GDAL_26gmqC{QV z;-E`JN?gp=sRxgqgRvxwubn(LQ|cO+n(NU^X}i?IIwBeM?6K}L2iQ56!;nm=TE&n85_(>sq^QB5vp9cC8f?^s`%x7 z0hjZaVWf(byQ(UHA_H6kU(_RnBa@a6smp1*Y^Zyw+Jh(o8VTqk!h~2-&7SPPDt1u= z#!`3-7<>0ptqUk1tqWJN3@O#yLXDJF1%4d~TTJqfZI_}6yc$!{q*x9q19Onjz%=<~ zG?KP%rE>SM37~JLLbX1J#3fOV#GM%L2?I$3nK<t4XKGs z%};R*1U#i@txDNn63yIwrop4dZ2 zQc?^(A6lu@>GA>i|Cs zE`VZv@JmjaGWkI#LNg`Nd;?Tc1qq1k^}>g&b`#toiRWu36q=QRo~3Rbnzx z1BgsGc1ik)t5guSybJ-{kl%g@(Zf6e)*|PFoim{tY2^u6@GFB z)Rs_uM6dWbmmbj~Faj4^9b29*eCBWas--`k^^9%l3SEgTdFf; zZSJL50Ae{($*hc0VRGDdfn51<6tn=7BkIUpT*Mf6 z0$OJZ9)f{NNWu62AXYn(^$Y8d7gaRO*>@>1o5@JHCXu4ycD=kLO!|XbO1VJDz*X`` zESTeWuw7)1?NU-`E>f@?*g&e3Ae$(4GboT3@<8salBOLbEWo%^fc7XEwfHq65rM4QaM@{B3 zHv1uOL_saWfol6F3M^bA?p5JUG~Lt0crO}oRR`63e z8q&R*_NX#hKUaa(kf&0mGApPqprmV$>P*FRD)}UNT9s<^7c239s;YEfU?^3ULJ7$~ z;(5ya!S(OTl^Xt2S*3|GNJ`?QIvy`gou!d_%F+VLCb{?keXNZ%pqkRz0M!=(1(gng zRO^YL_ZhWPpE0i!_n{Bw?Wbg?#%Zc>%S2fsOPicf!c=Lj3-JX<_;$sbGl>NRY_xQS6ihE4Ecv-Li`oIQr{ z{hDE885E`0q&){mA>ngng8S^ztbgEM(k79ygR*#snm; zeSxN3`jUk*k&;2R9S9j5J$UrE;iVs*5;g3DDiGM#Dvm|V|MD=t-v_z#AB>*zCm((@ z)A0}3p_~ZoU#6A()FF{eFi$y=Kr{JA8?Tgn4%8GUyk4f2+|M#1BI$A>JY|_y@(qcyB1}+ek$ga+oCwycOe=Zyvy2G%P*y}st4V&orHzo=O%Hwo%7%C-W8loOHfEz=iNT{#gkV3}6Dd{#z8Mxm^l@a{|5 z2YG9ytO6)sZz$b8ds9{cB)TX&qEvvEc~B|}ON%I*DK9FgOp=f){h)xLGLt}5cJG;1 z*{LFujFJ3Pazea?Osc7ri0X65y|SXR-9y-y)j~;WXb(n54IVjqSX31;#GN}}hMP?o zH)a^`CyX45M-uDn-)r1B>^Q4)SbYE9Bc}}$o2h(QY;aVxVnylIZm!a#$y+@-{y)u$ Bo}d5# diff --git a/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/img_networkError.svg b/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/img_networkError.svg new file mode 100644 index 00000000..a2c12283 --- /dev/null +++ b/pophory-iOS/Global/Resources/Assets.xcassets/ErrorImg/networkFail.imageset/img_networkError.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" "b/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" index d2535614..2af3e4ce 100644 --- "a/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" +++ "b/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" @@ -41,6 +41,7 @@ final class AuthInterceptor: RequestInterceptor { guard let response = response as? UpdatedAccessTokenDTO else { RootViewSwitcher.shared.setRootView(.onboarding) completion(.doNotRetryWithError(error)) + return } completion(.retry) From 01dbbcdcd54e866dfa92c5a860b715190048e5eb Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Tue, 6 Aug 2024 20:59:49 +0900 Subject: [PATCH 2/6] =?UTF-8?q?[Fix]=20#287=20-=20RootViewSwicher=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Global/Resources/SceneDelegate.swift | 6 ++--- .../Global/Utilities/RootViewSwitcher.swift | 25 +++++++++---------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/pophory-iOS/Global/Resources/SceneDelegate.swift b/pophory-iOS/Global/Resources/SceneDelegate.swift index 182f01fc..88ccea6c 100644 --- a/pophory-iOS/Global/Resources/SceneDelegate.swift +++ b/pophory-iOS/Global/Resources/SceneDelegate.swift @@ -177,9 +177,9 @@ extension SceneDelegate { let window = UIWindow(windowScene: windowScene) window.overrideUserInterfaceStyle = .light - RootViewSwitcher.shared.setWindow(window) + self.window = window + window.makeKeyAndVisible() + RootViewSwitcher.shared.setRootView(.splash) - - self.window = window } } diff --git a/pophory-iOS/Global/Utilities/RootViewSwitcher.swift b/pophory-iOS/Global/Utilities/RootViewSwitcher.swift index bad62103..c993e4f8 100644 --- a/pophory-iOS/Global/Utilities/RootViewSwitcher.swift +++ b/pophory-iOS/Global/Utilities/RootViewSwitcher.swift @@ -7,21 +7,20 @@ import UIKit -enum RootView { - case splash - case onboarding - case home - case albumFull - case addPhoto(image: UIImage, imageType: PhotoCellType) - case share(shareId: String) -} - enum UpdateType { case force case optional } final class RootViewSwitcher { + enum RootView { + case splash + case onboarding + case home + case albumFull + case addPhoto(image: UIImage, imageType: PhotoCellType) + case share(shareId: String) + } static let shared = RootViewSwitcher() @@ -41,8 +40,9 @@ final class RootViewSwitcher { extension RootViewSwitcher { func setRootView(_ rootView: RootView) { - guard let window = self.window else { return } - + let sceneDelegate = UIApplication.shared.connectedScenes.first?.delegate as? SceneDelegate + guard let delegate = sceneDelegate else { return } + var rootViewController: UIViewController switch rootView { case .splash: @@ -74,7 +74,6 @@ extension RootViewSwitcher { navigationController.pushViewController(addPhotoViewController, animated: false) return } - window.rootViewController = PophoryNavigationController(rootViewController: rootViewController) - window.makeKeyAndVisible() + delegate.window?.rootViewController = PophoryNavigationController(rootViewController: rootViewController) } } From 79da5f875ce33412816a61d1b261a27024515a96 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Tue, 6 Aug 2024 21:00:20 +0900 Subject: [PATCH 3/6] =?UTF-8?q?[Refactor]=20#287=20-=20setter=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pophory-iOS/Screen/HomeAlbum/HomeAlbumView.swift | 4 ++++ pophory-iOS/Screen/HomeAlbum/HomeAlbumViewController.swift | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pophory-iOS/Screen/HomeAlbum/HomeAlbumView.swift b/pophory-iOS/Screen/HomeAlbum/HomeAlbumView.swift index 66402a91..9f02c241 100644 --- a/pophory-iOS/Screen/HomeAlbum/HomeAlbumView.swift +++ b/pophory-iOS/Screen/HomeAlbum/HomeAlbumView.swift @@ -238,4 +238,8 @@ extension HomeAlbumView { func setMaxPhotoCount(_ maxPhotoCount: Int) { self.maxPhotoLimit = maxPhotoCount } + + func setPhotoCount(_ photoCount: String) { + self.statusLabelText = photoCount + } } diff --git a/pophory-iOS/Screen/HomeAlbum/HomeAlbumViewController.swift b/pophory-iOS/Screen/HomeAlbum/HomeAlbumViewController.swift index 24385b44..1b93d209 100644 --- a/pophory-iOS/Screen/HomeAlbum/HomeAlbumViewController.swift +++ b/pophory-iOS/Screen/HomeAlbum/HomeAlbumViewController.swift @@ -94,7 +94,7 @@ extension HomeAlbumViewController { homeAlbumView.albumImageView.image = ImageLiterals.albumCoverList[coverIndex] } - homeAlbumView.statusLabelText = String(album.photoCount ?? 0) + homeAlbumView.setPhotoCount(String(album.photoCount ?? 0)) homeAlbumView.updateProgressBarWidth(updateWidth: progressValueUnwrapped) From a018e787ecf85dc17529f6471c2b165bd950c650 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Tue, 6 Aug 2024 21:00:47 +0900 Subject: [PATCH 4/6] =?UTF-8?q?[Fix]=20#287=20-=20addValue=20->=20update?= =?UTF-8?q?=EB=A1=9C=20=EB=A9=94=EC=84=9C=EB=93=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthInterceptor.swift" | 87 +++++++++++-------- .../Repository/DefaultAuthRepository.swift | 4 +- .../StartPophoryViewController.swift | 2 +- .../Mypage/View/MyPage/MyPageRootView.swift | 2 +- 4 files changed, 52 insertions(+), 43 deletions(-) diff --git "a/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" "b/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" index 2af3e4ce..216099d3 100644 --- "a/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" +++ "b/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" @@ -9,46 +9,57 @@ import Foundation import Alamofire final class AuthInterceptor: RequestInterceptor { - - static let shared = AuthInterceptor() - - private init() {} - - func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { - guard urlRequest.url?.absoluteString.hasPrefix(Bundle.baseURL) == true, - let accessToken = PophoryTokenManager.shared.fetchAccessToken() else { - completion(.success(urlRequest)) - return - } - var urlRequest = urlRequest - urlRequest.addValue(accessToken, forHTTPHeaderField: "accessToken") - print("🍥🍥🍥adat 적용 \(urlRequest.headers)") - completion(.success(urlRequest)) - } - - func retry(_ request: Request, for session: Session, dueTo error: Error, completion: @escaping (RetryResult) -> Void) { - print("🍥🍥🍥retry 진입") - guard let response = request.task?.response as? HTTPURLResponse, - response.statusCode == 401 else { - RootViewSwitcher.shared.setRootView(.onboarding) - completion(.doNotRetryWithError(error)) - return - } - - NetworkService.shared.authRepostiory.updateRefreshToken { result in - switch result { - case .success(let response): - guard let response = response as? UpdatedAccessTokenDTO else { - RootViewSwitcher.shared.setRootView(.onboarding) + + static let shared = AuthInterceptor() + + private init() {} + + func adapt(_ urlRequest: URLRequest, for session: Session, completion: @escaping (Result) -> Void) { + guard let urlString = Bundle.main.infoDictionary?["BASE_URL"] as? String, + let url = URL(string: urlString) else { + fatalError("🚨Base URL을 찾을 수 없습니다🚨") + } + + guard urlRequest.url?.absoluteString.hasPrefix(urlString) == true, + let accessToken = PophoryTokenManager.shared.fetchAccessToken(), + let refreshToken = PophoryTokenManager.shared.fetchRefreshToken() else { + completion(.success(urlRequest)) + return + } + + var urlRequest = urlRequest + urlRequest.headers.update(name: "Authorization", value: "Bearer \(PophoryTokenManager.shared.fetchAccessToken()!)") +// urlRequest.setValue("Bearer \(PophoryTokenManager.shared.fetchAccessToken())", forHTTPHeaderField: "Authorization") + print("🍥🍥🍥adator 적용 \(urlRequest.headers)") + completion(.success(urlRequest)) + } + + func retry(_ request: Request, for session: Session, dueTo error: Error, completion: @escaping (RetryResult) -> Void) { + print("🍥🍥🍥retry 진입") + guard let response = request.task?.response as? HTTPURLResponse, response.statusCode == 401 else { + completion(.doNotRetryWithError(error)) + return + } + + NetworkService.shared.authRepostiory.updateRefreshToken { result in + switch result { + case .success(let response): + guard let data = response as? UpdatedAccessTokenDTO else { + DispatchQueue.main.async { + RootViewSwitcher.shared.setRootView(.onboarding) + } completion(.doNotRetryWithError(error)) - return - } + } + PophoryTokenManager.shared.saveAccessToken(data.accessToken) + PophoryTokenManager.shared.saveRefreshToken(data.refreshToken) completion(.retry) default: - RootViewSwitcher.shared.setRootView(.onboarding) - completion(.doNotRetryWithError(error)) - } - } - } + DispatchQueue.main.async { + RootViewSwitcher.shared.setRootView(.onboarding) + } + completion(.doNotRetryWithError(error)) + } + } + } } diff --git a/pophory-iOS/Network/Repository/DefaultAuthRepository.swift b/pophory-iOS/Network/Repository/DefaultAuthRepository.swift index f73bda12..52a46973 100644 --- a/pophory-iOS/Network/Repository/DefaultAuthRepository.swift +++ b/pophory-iOS/Network/Repository/DefaultAuthRepository.swift @@ -63,9 +63,7 @@ final class DefaultAuthRepository: BaseRepository, AuthRepository { if response.statusCode < 300 { do { let loginResponse = try response.map(UpdatedAccessTokenDTO.self) - completion(.success((loginResponse))) - PophoryTokenManager.shared.saveAccessToken(loginResponse.accessToken) - PophoryTokenManager.shared.saveRefreshToken(loginResponse.refreshToken) + completion(.success((loginResponse))) print("Successfully refreshed access token") } catch { print("Error decoding the login response: \(error)") diff --git a/pophory-iOS/Screen/Auth/ViewControllers/StartPophoryViewController.swift b/pophory-iOS/Screen/Auth/ViewControllers/StartPophoryViewController.swift index 69d88b53..3b45af4a 100644 --- a/pophory-iOS/Screen/Auth/ViewControllers/StartPophoryViewController.swift +++ b/pophory-iOS/Screen/Auth/ViewControllers/StartPophoryViewController.swift @@ -7,7 +7,7 @@ import UIKit -class StartPophoryViewController: BaseViewController { +final class StartPophoryViewController: BaseViewController { lazy var startPophoryView = StartPophoryView() diff --git a/pophory-iOS/Screen/Mypage/View/MyPage/MyPageRootView.swift b/pophory-iOS/Screen/Mypage/View/MyPage/MyPageRootView.swift index d6372a3e..7397ccbb 100644 --- a/pophory-iOS/Screen/Mypage/View/MyPage/MyPageRootView.swift +++ b/pophory-iOS/Screen/Mypage/View/MyPage/MyPageRootView.swift @@ -17,7 +17,7 @@ protocol MyPageRootViewDelegate: NSObject { func handleOnAd() } -class MyPageRootView: UIView { +final class MyPageRootView: UIView { // MARK: - Properties From 57b80291effc75c0be8f88e31e6a03ff930190e5 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Tue, 6 Aug 2024 21:15:24 +0900 Subject: [PATCH 5/6] =?UTF-8?q?[Chore]=20#287=20-=20=EC=A3=BC=EC=84=9D?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" | 1 - 1 file changed, 1 deletion(-) diff --git "a/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" "b/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" index 216099d3..11e08897 100644 --- "a/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" +++ "b/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" @@ -29,7 +29,6 @@ final class AuthInterceptor: RequestInterceptor { var urlRequest = urlRequest urlRequest.headers.update(name: "Authorization", value: "Bearer \(PophoryTokenManager.shared.fetchAccessToken()!)") -// urlRequest.setValue("Bearer \(PophoryTokenManager.shared.fetchAccessToken())", forHTTPHeaderField: "Authorization") print("🍥🍥🍥adator 적용 \(urlRequest.headers)") completion(.success(urlRequest)) } From f447e1c121b6b4d0485d7ef7a5677e1a33846487 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Tue, 6 Aug 2024 22:00:08 +0900 Subject: [PATCH 6/6] =?UTF-8?q?[Chore]=20#287=20-=20=ED=8F=B4=EB=8D=94?= =?UTF-8?q?=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pophory-iOS.xcodeproj/project.pbxproj | 27 +++++++++---------- .../Network/Interceptor/AuthInterceptor.swift | 3 ++- 2 files changed, 15 insertions(+), 15 deletions(-) rename "pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" => pophory-iOS/Network/Interceptor/AuthInterceptor.swift (88%) diff --git a/pophory-iOS.xcodeproj/project.pbxproj b/pophory-iOS.xcodeproj/project.pbxproj index 4e10c9fd..d240383d 100644 --- a/pophory-iOS.xcodeproj/project.pbxproj +++ b/pophory-iOS.xcodeproj/project.pbxproj @@ -759,15 +759,6 @@ path = ViewController; sourceTree = ""; }; - 3B218EA52B833F85006959E3 /* Interceptor */ = { - isa = PBXGroup; - children = ( - 3B218EA62B833FA0006959E3 /* AuthInterceptor.swift */, - ); - name = Interceptor; - path = "Intercep색"; - sourceTree = ""; - }; 3B3A090F2A56A4F200C8A740 /* PhotoDetail */ = { isa = PBXGroup; children = ( @@ -816,6 +807,14 @@ path = ViewModel; sourceTree = ""; }; + 3BC15D842C6255BC0056A87F /* Interceptor */ = { + isa = PBXGroup; + children = ( + 3B218EA62B833FA0006959E3 /* AuthInterceptor.swift */, + ); + path = Interceptor; + sourceTree = ""; + }; 3BE178932C4FF1A600FC755B /* View */ = { isa = PBXGroup; children = ( @@ -1006,7 +1005,7 @@ 91F3A77C2A52AD8300C06D1B /* Network */ = { isa = PBXGroup; children = ( - 3B218EA52B833F85006959E3 /* Interceptor */, + 3BC15D842C6255BC0056A87F /* Interceptor */, 91F3A77D2A52ADCA00C06D1B /* Common */, B1631F5E2A175FD00050974F /* Models */, 91F3A78A2A52B1B300C06D1B /* API */, @@ -2041,7 +2040,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1.3.0; + CURRENT_PROJECT_VERSION = 1.4.0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = CQJ9UKUU35; @@ -2063,7 +2062,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.3.0; + MARKETING_VERSION = 1.4.0; PRODUCT_BUNDLE_IDENTIFIER = "Team.pophory-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -2088,7 +2087,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1.3.0; + CURRENT_PROJECT_VERSION = 1.4.0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = CQJ9UKUU35; @@ -2110,7 +2109,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.3.0; + MARKETING_VERSION = 1.4.0; PRODUCT_BUNDLE_IDENTIFIER = "Team.pophory-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git "a/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" b/pophory-iOS/Network/Interceptor/AuthInterceptor.swift similarity index 88% rename from "pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" rename to pophory-iOS/Network/Interceptor/AuthInterceptor.swift index 11e08897..cda5a1b7 100644 --- "a/pophory-iOS/Network/Intercep\354\203\211/AuthInterceptor.swift" +++ b/pophory-iOS/Network/Interceptor/AuthInterceptor.swift @@ -28,7 +28,8 @@ final class AuthInterceptor: RequestInterceptor { } var urlRequest = urlRequest - urlRequest.headers.update(name: "Authorization", value: "Bearer \(PophoryTokenManager.shared.fetchAccessToken()!)") + urlRequest.setValue("Bearer \(PophoryTokenManager.shared.fetchAccessToken()!)", forHTTPHeaderField: "Authorization") +// urlRequest.headers.update(name: "Authorization", value: "Bearer \(PophoryTokenManager.shared.fetchAccessToken()!)") print("🍥🍥🍥adator 적용 \(urlRequest.headers)") completion(.success(urlRequest)) }