From 39b2f3383b71f4779a3e71e3256fca3eb35264e0 Mon Sep 17 00:00:00 2001 From: Phuoc Nguyen Date: Wed, 31 Mar 2021 16:58:58 +0700 Subject: [PATCH] Add CSS code for navigation patterns --- client/patterns/breadcrumb/Details.tsx | 19 ++- .../patterns/circular-navigation/Details.tsx | 81 ++++++------ client/patterns/dot-navigation/Details.tsx | 40 +++--- client/patterns/drawer/Details.tsx | 64 ++++----- client/patterns/dropdown/Details.tsx | 64 +++++---- client/patterns/full-screen-menu/Details.tsx | 38 +++--- client/patterns/mega-menu/Details.tsx | 50 ++++--- client/patterns/menu/Details.tsx | 71 +++++----- client/patterns/nested-dropdowns/Details.tsx | 123 +++++++++--------- client/patterns/pagination/Details.tsx | 54 ++++---- .../previous-next-buttons/Details.tsx | 14 +- client/patterns/spin-button/Details.tsx | 60 +++++---- client/patterns/split-navigation/Details.tsx | 34 ++--- client/patterns/stepper-input/Details.tsx | 62 ++++----- client/patterns/switch/Details.tsx | 40 +++--- client/patterns/tab/Details.tsx | 48 ++++--- .../toggle-password-visibility/Details.tsx | 31 ++--- client/patterns/upload-button/Details.tsx | 49 +++---- client/patterns/wizard/Details.tsx | 104 ++++++++------- public/assets/favicon.png | Bin 11006 -> 26093 bytes 20 files changed, 549 insertions(+), 497 deletions(-) diff --git a/client/patterns/breadcrumb/Details.tsx b/client/patterns/breadcrumb/Details.tsx index 18d008b..909f2df 100644 --- a/client/patterns/breadcrumb/Details.tsx +++ b/client/patterns/breadcrumb/Details.tsx @@ -21,22 +21,27 @@ const Details: React.FC<{}> = () => {
+
... -
/
+
/
...
`} -css={``} +css={` +.container { + /* Content is centered vertically */ + align-items: center; + display: flex; +} +.separator { + margin: 0 8px; +} +`} >
= () => {
+
... -
+
-
+
...
@@ -108,7 +74,46 @@ html={` ...
`} -css={``} +css={` +.container { + position: relative; +} +.item { + /* Position */ + position: absolute; + top: 0; + + /* + 80px is the distance from the item to the trigger element. + Replace 0deg with 60deg, 180deg, 240deg, 300deg for another item + in case you want to have a total of 6 menu items. + The formulation is 360 / numberOfItems * indexOfItem + */ + transform: rotate(0deg) translateX(-80px); + + /* Must have the same size as the trigger element */ + height: 32px; + width: 32px; +} +.inner { + /* + Rotate it to make it displayed vertically + Replace -0deg with -60deg, -180deg, -240deg, -300deg for another item + in case you want to have a total of 6 menu items. + The formulation is -(360 / numberOfItems * indexOfItem) + */ + transform: rotate(-0deg); + + /* Center the content */ + align-items: center; + display: flex; + justify-content: center; + + /* Take full size */ + height: 100%; + width: 100%; +} +`} >
= () => {
+
  • + + + ... +
  • +`} +css={` +.container { /* Center the content */ align-items: center; display: flex; @@ -55,26 +63,24 @@ html={` list-style-type: none; margin: 0; padding: 0; -"> -
  • -
  • + /* OPTIONAL: Spacing between dots */ + margin: 0 4px; +} `} -css={``} >
    = () => {
    + +
    + + + +
    +`} +css={` +.container { /* Container takes full size */ height: 100%; left: 0; @@ -33,39 +44,32 @@ html={` width: 100%; z-index: 9999; -"> - -
    + z-index: -1; +} +.sidebar { + /* Take full height */ + height: 100%; + left: 0; + position: fixed; + top: 0; + width: 200px; - -
    - ... -
    -
    + /* Background */ + background-color: #fff; +} `} -css={``} >
    = () => {
    + +`} +css={` +.dropdown { + position: relative; +} + /* Hide the dropdown's content by default --> .dropdown-content { display: none; + + /* Position it right below the trigger element */ + left: 0; + paddingTop: 4px; + position: absolute; + top: 100%; + + /* It should be on the top of other elements */ + background-color: #FFF; + zIndex: 9999; + + /* Size */ + height: 200px; + width: 200px; } /* Show the content when hover on the container --> .dropdown:hover .dropdown-content { display: block; } - - - `} -css={``} >
    = () => {
    + + + + +
      + ... +
    +
    +`} +css={` +.container { /* Full screen overlay */ height: 100%; left: 0; @@ -33,24 +46,15 @@ html={` align-items: center; display: flex; justify-content: center; -"> - - +} - -
      - ... -
    -
    +.close { + /* Shown at top right corner */ + position: absolute; + right: 16px; + top: 16px; +} `} -css={``} >
    = () => {
    -.p-mega-menu-container { +
    + + ... + + +
    + +
    ...
    + + +
    + ... +
    +
    +
    +`} +css={` +.container { /* Used to position the mega menu */ position: relative; } -.p-mega-menu-content { +.trigger:hover .content { + /* Show the mega menu when hovering the trigger item */ + display: block; +} + +.content { /* Border */ border: 1px solid rgba(0, 0, 0, 0.3); margin-top: -1px; @@ -55,30 +76,7 @@ html={` background: #fff; z-index: 9999; } - -.p-mega-menu-trigger:hover .p-mega-menu-content { - /* Show the mega menu when hovering the trigger item */ - display: block; -} - - -
    - - ... - - -
    - -
    ...
    - - -
    - ... -
    -
    -
    `} -css={``} >
    diff --git a/client/patterns/menu/Details.tsx b/client/patterns/menu/Details.tsx index 5290809..2b9bc04 100644 --- a/client/patterns/menu/Details.tsx +++ b/client/patterns/menu/Details.tsx @@ -25,30 +25,14 @@ const Details: React.FC<{}> = () => {
    +
    -
    +
    ...
    -
    +
    ... @@ -56,16 +40,8 @@ html={`
    -
    -
    +
    +
    ... @@ -77,13 +53,40 @@ html={`
    -
    +
    `} -css={``} +css={` +.container { + display: flex; + flex-direction: column; + + /* Border */ + border: 1px solid rgba(0, 0, 0, 0.3); + border-radius: 4px; +} + +.item { + /* Center the content horizontally */ + align-items: center; + display: flex; +} + +.with-shortcut { + /* Push the hot key to the right */ + justify-content: space-between; +} + +.with-image { + align-items: center; + display: flex; +} + +.divider { + border-bottom: 1px solid rgba(0, 0, 0, 0.3); + height: 1px; +} +`} >
    = () => {
    -/* The root */ -.p-nested-dropdowns { - /* Border */ - border: 1px solid rgba(0, 0, 0, 0.3); - display: flex; - - /* Reset list styles */ - list-style-type: none; - margin: 0; - padding: 0; -} - -.p-nested-dropdowns li { - /* Spacing */ - padding: 8px; - - /* Used to position the sub dropdown */ - position: relative; -} - -/* The sub dropdown */ -.p-nested-dropdowns ul { - /* Border */ - border: 1px solid rgba(0, 0, 0, 0.3); - - /* Hidden by default */ - display: none; - - /* Absolute position */ - left: 0; - position: absolute; - top: 100%; - - /* Reset styles */ - list-style-type: none; - margin: 0; - padding: 0; - - /* Width */ - width: 200px; -} - -/* The second level sub dropdown */ -.p-nested-dropdowns ul ul { - left: 100%; - position: absolute; - top: 0; -} - -/* Change background color of list item when being hovered */ -.p-nested-dropdowns li:hover { - background-color: rgba(0, 0, 0, 0.1); -} - -/* Show the direct sub dropdown when hovering the list item */ -.p-nested-dropdowns li:hover > ul { - display: block; -} - - -
      +
      • Home
      • Patterns
        @@ -113,7 +52,65 @@ html={`
      • About
      `} -css={``} +css={` +.container { + /* Border */ + border: 1px solid rgba(0, 0, 0, 0.3); + display: flex; + + /* Reset list styles */ + list-style-type: none; + margin: 0; + padding: 0; +} + +.container li { + /* Spacing */ + padding: 8px; + + /* Used to position the sub dropdown */ + position: relative; +} + +/* The sub dropdown */ +.container ul { + /* Border */ + border: 1px solid rgba(0, 0, 0, 0.3); + + /* Hidden by default */ + display: none; + + /* Absolute position */ + left: 0; + position: absolute; + top: 100%; + + /* Reset styles */ + list-style-type: none; + margin: 0; + padding: 0; + + /* Width */ + width: 200px; +} + +/* The second level sub dropdown */ +.container ul ul { + left: 100%; + position: absolute; + top: 0; +} + +/* Change background color of list item when being hovered */ +.container li:hover { + background-color: rgba(0, 0, 0, 0.1); +} + +/* Show the direct sub dropdown when hovering the list item */ +.container li:hover > ul { + display: block; +} +`} >
      = () => {
      + +
      + ... +
      + + + ... +
      +`} +css={` +.container { display: flex; /* Border */ border: 1px solid rgba(0, 0, 0, 0.3); border-radius: 4px; -"> - -
      - ... -
      +.item { + /* Center the content */ + align-items: center; + display: flex; + justify-content: center; - -
      - ... -
      -
      + /* Right border */ + border-right: 1px solid rgba(0, 0, 0, 0.3); +} +.item + .item { + /* No right border */ + border-right: none; +} `} -css={``} >
      = () => {
      +
      .. @@ -33,7 +29,13 @@ html={` ..
      `} -css={``} +css={` +.container { + align-items: center; + display: flex; + justify-content: space-between; +} +`} >
      = () => {
      +
      - + -
      +
      - -
      `} -css={``} +css={` +.container { + border: 1px solid rgba(0, 0, 0, 0.3); + border-radius: 2px; + display: flex; +} + +.input { + border-color: transparent; + margin-right: 4px; + padding: 4px; + width: 100px; +} + +.buttons { + /* Content is centered vertically */ + display: flex; + flex-direction: column; + justify-content: center; +} + +.button { + border-color: transparent; + /* Make buttons have the same height */ + flex: 1, +} +`} >
      = () => {
      + +
    • + ... +
    • + + +
    • + ... +
    • +
    +`} +css={` +.container { /* Content is centered horizontally */ align-items: center; display: flex; @@ -30,22 +43,13 @@ html={` /* Reset styles */ list-style-type: none; margin: 0; -"> - -
  • - ... -
  • +} - -
  • - ... -
  • - +.item-right { + /* Sticks to the right */ + margin-left: auto; +} `} -css={``} >
    = () => {
    + + + + +
    + +
    + + + +
    +`} +css={` +.container { display: flex; /* Border */ @@ -39,40 +53,28 @@ html={` /* Size */ height: 32px; width: 128px; -"> - - +.button { + /* Center the content */ + align-items: center; + display: flex; + justify-content: center; - -
    - -
    + /* Size */ + width: 32px; +} - - -
    +.input { + /* Take full size of its container */ + height: 100%; + width: 100%; +} `} -css={``} >
    = () => {
    + + + +
    + +`} +css={` +.label { display: flex; /* Rounded border */ @@ -47,26 +55,26 @@ html={` border: 1px solid #357edd; /* Push the circle to the right */ justify-content: flex-end; -"> - - +} - -
    - + background-color: #FFF; + + /* OFF status */ + border: 1px solid rgba(0, 0, 0, .3); +} `} -css={``} >
    = () => {
    +
    -
    +
    ...
    -
    +
    ...
    `} -css={``} +css={` +.tabs { + /* Center the content */ + align-items: center; + display: flex; + justify-content: center; +} + +.tab--active { + /* Border */ + border: 1px solid rgba(0, 0, 0, 0.3); + /* Hide the bottom border */ + border-bottom-color: transparent; + + /* Border radius */ + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} + +.tab--inactive { + /* Has only the bottom border */ + border-bottom: 1px solid rgba(0, 0, 0, 0.3); +} +`} >
    = () => {
    +
    - +
    `} -css={``} +css={` +.container { + display: flex; + + /* Border */ + border: 1px solid rgba(0, 0, 0, 0.3); +} + +.input { + border-color: transparent; + /* Take available width */ + flex: 1; +} +`} >
    = () => {
    + + + + +
    ...
    + + + ... +
    +`} +css={` +.container { /* Used to position the input */ position: relative; @@ -34,31 +46,24 @@ html={` /* Border */ border: 1px solid rgba(0, 0, 0, 0.3); -"> - - +.input { + /* Take the full size */ + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; - -
    ...
    + /* Make it transparent */ + opacity: 0; +} - - ... -
    +.icon { + margin-right: 8px +} `} -css={``} >
    = () => {
    +
    -
    -
    +
    +
    -
    +
    -
    +
    ...
    -
    +
    ...
    + + + ...
    `} -css={``} +css={` +.wizard { + display: flex; +} + +.step { + /* Make all steps have the same width */ + flex: 1; +} + +.step__dot { + /* Center the content */ + align-items: center; + display: flex; + justify-content: center; +} + +.step__connector { + flex: 1; + height: 1px; + background-color: rgba(0, 0, 0, .3); +} + +.step:first-child .step__connector, +.step:last-child .step__connector { + background-color: transparent; +} + +.step__number { + /* Center the content */ + align-items: center; + display: flex; + justify-content: center; + + /* Rounded border */ + background-color: rgba(0, 0, 0, .3); + border-radius: 9999px; + height: 32px; + width: 32px; + + /* OPTIONAL: Spacing between it and connectors */ + margin-left: 4px; + margin-right: 4px; +} +`} >
    8SLofN-J4^DCU^ff9PCB1M!U zy$X01h!BYMjwJ+?rU{Cn{^tYtd)_|2F`wPp+1cs4JImb*MmjsT?catF+M#>?j448! z;O8c^Wi$L2E+TUqA*XWPGp8>8F*rR!OdYuts`YhZSi_Qp4ml<~lm1;PHhasqie6if zDZP=xUiYbpn^nEF-BvR{p4RQDa`&jXIucmeYo23TsDEmwq0&Lws|S>K5q|l#MQI^@ zOzaHL)(1`rb@gLw^RMeW|CnQ+)Mc{U)Fu)T@+;~+7RGuhtbW}gAZ|qwq!8=d%?31cdr|!`$I#0W}za~qbxi3=g;VTOS3g_DYbt_Bm6R=yVt)oSB}Qu(X5xB@x+MERg)+06smRt=g%XSsnJr1UbP zVM6(SwVHP=R9&O&1D6b{Co|K zh;zBm9;Osf1=%JjaAwoJd|9 z9cZ`IDQt`104}8TKge-X4^+S}7_gcs!+71(O7u(edQ=NN7R{N}BYw^=`8>LS(0mP* zPbn#l6D71`Iqr%AN}r7o2-0aQ%mS9S0+N4t+pXI z_KH=@Efi93o3h?Z$mDPhpP>y>mUYBAtef}zdP|y}Q!cFY;#NM}FRz@{6sP%2QozXf z*+tSx|4{b^OZ^5@kA_lDr}mv&F{$vE+_=Vn`H#@q~ku`mUd+%}f z_{+qJ{V|xtlTK@|9S-+mba!hiQm^KtGEa4CpgW6W#g30D2`P@dSh5avDy6;s7VS1W zbFlq%K-##r)sZI6ItjeJ5lwK&nq}W=M7?IsJH z_#QZR4Guqi*CKAl{u(!|KqXxyiN2GkE)1#I|8`!h+~28P5L<0#u|Wa#%Q5y>aw>%( zx~jE#@poWeNWEmn!p_@ZdZba2#l8veC`xm;P&->8aSMISmeB4ak>Q;f;_G;9O=>47 zCLvH@Wy-fXZrP5U7w>rI3<{VclS3TUiDNO>EEV`M2#aceTYmconz;#@_{s(D=`>13 z1%sP=CdA?M6N4?7aOoz;z1wiy*6gpQthjE?6Y?zXe)}1Tu_G#Czx~#t!*8GNaR!rk zl3+z{4e|8snD@kCJkg(gJDW>UrZR^iQ^Dlc_8KpHYT*)j9+P*OcUNudaP^howOz5Y z@mrcw!`MNWG&sLMiV@f@-(jJz8@~-0;PA%4tK~*TT3#MgS2sFl3qhw^g37BezNS=u zNboK<5cbUYxMxcizHr$)Uri3*I6h}UivE6Yi7P;sx=%+eZE9T)s|^#QT>K9Z-3`(J+>DwhRaGl6uv?nCz z7`yi29?sv2Kx5Ntn9p}Mdj%gJ!|?tUm&u)Gtv9MveQ3>G&uSfe@D&?B2angv?aQyqr?G?PNX;W5~M5Nv( zl4!XKHQ1V)_$j8@a(EKeC6^^SMC%pBXvOJ~%^FQ8e zr)yNjHp)^Tk&j7m5yadR8L<^ip9l+PB(@@g@qmArc|w4l33<%8Gj0pY&Si}0(_|vw z_@=K<(IeSA9-R|okBZj8Uc0M34?2rf#edQ{@3&WxQHut+) zmL;1^sXsu){fZ;4REp#0d@5O#oTo|$v1PP9)$bes>daa;Wl8Ds$814u)rGpF)&b15 z9cd2^W3xCI*=nWV&WnYZwnvvg9w2Jv@Wkdy5#or*Z0gfj7(*>@etT^h(iB}Ut)igs zt8o`KrG|5dU(z7XRGw8^!Q_W2S&~Ubu0c`9HGNjCM6=!|#9R^L=$o-sZ(rj~n06*$ zCi7#6F*tlOs{SzbWHt_oOiWv`$uaSqT4|8UGh=!C#62_Q#zN{Rth0zIQ;{YZRnWfw z3P$FAPn*~w1y5#<3ekjo7S>u+qKu!D(O@NN9mOJAl`E!T^~o+$L_?deylBKzzmV8f z`I=aGj|<0xzVfNozMremot4;$Cie;H)5dD0e}Q4zjqm58bY~CmK$Dj8+cxb+^y1v( zjB52X)og}ICn9N?us&{B=Kn@YSo13{X=~vyoS##|XBTa?)*D(;|kJkYj9hQ|x z693|=H9NhD9_ntGY?auhMwRcfZva^d5VS8)@c8lS(Ol&cwQya6Mmp zH-y*>>xyKTe`GtXFoKh=e4mz0vLOp5GK$HvpRB>vHdi?PDFiMgXj z-$Q*)4j&k^8PTtV#hpt(T7PJ4Cl4$sv>c26)hfkBRQ+FFW)La5$B3$}n#<19Qu<{# zYO)*j51Ta`8F{y!?!&hwG(P{oR1t`{gCUiGZO%#?5?UuJ$8DNaWuqHfG75 zeq_$na|81Fqo_C4RPb|pzS*#J`HW+^?liW}8`h00Sf>-4vb`#WXhGJ|<3^MC3Wiyf z2(g{MHJQ9w8X~n}Ve2CgYF(`G!5t`5$JS2INN7LJ(~-j*a1fSP2Jf9v?PKPuG&5cG>LJT46JaZfWo|L4F}7(4&I@u0rG%$zRkJP3UH zxfLs)qUiy4A!LDJ4KC4p3np4*E zwCps7+p@yVFxu@H`-8*+=t@)l&&JM{T@mJtLnck>>{$JNzSvL1GmnzzgjR8g*;CvX z(4cxWz4taTH1uhuV9D$J}JFS{wQZHGNn$R z8+Z^&@zawr{>>(hFB@0Ywi8wFF`HsPJ|{l0A8@N%7#ex2`n59_HBaro-a3s)BbUo0 z`R=g z;ch!?qOTR>cxFHBNxaPRiPQAAA^N+oa|fa(g~+uocWN@2E-C$4K|-opg?!#!E^h~3 z6zcObLRP&xzDkN10doc!8@4BDNq49(PTDB!06okrx||`N7i(M%%*>qN&G54-)C?N< zvV3Mg2)V=4E+e?YLo40!GE5r!fkjy!ZModOn`fm(1kLB<-&8BKWvjf@Mg)6HEAm?E zZyl{?PHC5NlNx;2qr{JTacUPhaC)CsH9IqvX$QfQep`Oz!K2Mq97l2;m<7p-y&`d6 z)G}F2|905>EhzNLRm}x4*YRLj3koZW8_tOfap~gJ+&>12C6FZC(WTECm(b6Fom25| zp5^SG{BN4pyMb2y9*RD0-r>f)X=nJBu=<4A)Z%tt3Va z*n)#`581fKgUxWtW2n1<+VBT*2LCDF&#@t!0mV&PCjx7e&F)*J>z}>Fh19#jkv||S zNT{6yModSx?x&@yS8I+5@;v{Svp48Xcde#0eoS$h8~k##XO(X+qgK-fqpB=ot?SDU zZH_i3wYCTN!<;tgvfn+=rGqBjD{|E;w0w+MTwq{|_hP$(BaV;PjISo|-MkGYT}$b6 z)D1o$W>g`^he!h!u?i6KzC|i@sC0rq_hbD1UCq};BST@`pCZ4>$Qg6d2G5&ehqmoT zimj5p6Mg!$3G#MOR1)!7{z!X%tND0vR%S}|rUykzHCm0A+#B4%?j1zsJdXMHGQVkF z27(=qN37lCtaOJQroOE7OaJpSVg=M|AX$PSXS)41>(!(C?ccLttyLeM-1DpR8e-Rwhpn;k z4~rFS9_S3ORxcX>&F}Ym+QohdP`1}wca)P?wf9RCzwUfgv)*Z8kd~p*Ls7_M{sCO3 zbIW^|vol{@8aS{`{g!pl=PfC{93TT$~AmP8=m{Wjca!m5zC z4V=i#>)x)ipR?FqyBw`}0W?~&nf(`eS%-WYw1sfr%2Z!VwMJe*5ZJWX`RWhRM8+rG zy%11HqE*uP42o4^^Iu#%DAdU}H2nfu0B?C<2SSUl{~dh30z+OD356;9542oFt9z6#>XY}6;2vJ`erv29E;F{O^0xNpYxp5jNyRF5_U zRQ-;%S7Bo8qSVXiLa;@{7q}#dt=)_Dn20C0?)pTulp{WpfHM~+o`4BzaXCji>HBL* zF6ZE%3RDj~4w5Lf)aTx=vI>ct%3kv$XBy*=)i>aZQ82j1l>Hr3_!pif+@$2Sdrxx> z3OiC_>(7H^p7os`)Zo=&*PEJxTuITQtE$BvLmn()V11Jozq`uZZ^EtYc+@7L136;s z6gvo<2b#{XVh!iB+2*=Hxmo1engu!WJe*rOXYsVKrTWHce-dy6o#e}jec8-CWQ0ij zF0!P|J`v*&Bqfh;T5|IZU6r_`ycIT|Cu*Kw{i9pT^C5E3id?%%4AV18gcHy<)>m^j z`C&XUR^kFuoREA2Tdev%bvSlVGtsA&MVd25K+l>|ldUqO`X~#{Cw~QdOdP~>UOp@d zxd1#%TKN!eD{8B+MR6p+G8HGR4ih`Sx@sK(TWh1xJ`t~La16+2K~G4;GG&$f`|OfC z?t#3Oz1_XS>W;H&B<_J;Beu7W9FfuD+8}|A8~&=D9^A`l)#WFHjQszZa;LpKXU=Q{ zheKKsTkRVct$@yi^W2c#w^z6^sv<2I8W^2gDg6&F<;1V)`UV4E3C*>oBQ4Jp3tQAd z@(#teC0aU0eak-NYoM7(M0?nF(0x3;)qFy#(;+Y zW$eDgMbbK6BEKMmx7RDh!VHIsR<3@&=4yqZF!N*+4{i#?MXt$M6E?dOV- zfB%jn+<)rg@*<0ebD4Y;W4YK7%Zh6*TIL;XB*oom{uvcd^w1NP1{Iw2XjE4Dc&%v< znlAv$zM-2g2dxLF%94HKoU4;!^0?_;V7w1Z*&GQ&K!xhcP1!9U;yHgx1EPPwHexB? zn1Rha$Zoi;0$Q5BSlrR?E-`aQ=c)<(if6{~1BXJK? zu<1u$IZWJX8MYiY)vFI{%ftDV?3witjix8cPxN??t0ok_#s53GV-`*B6jEi9%GozC zyH^x8u|vz(23){;s#KGLO{XS{n{CLBuiBD@4Z4%t zJ6>+Z^2X?6Gxoi_MlAjfj5v$RW(&DZOx^WT1s7L8V6H!_tVCJEBsTEdszQrHa=V&} znjYw4ljhLn6g8qFQC{$D;B{U?B4o)2x;T$9fldCRlW4AG1?mJ^(3Y7WQ-6@UA_3g> zf3Rd6&6s;l7ZJuya>Y)uUd4r+{}nWl_lXMe-nCcd~y zO#4keQ5=c5yW5JI>1!RtI-W+fk#z*3m|f%xkRTr~q#liOZpdK#z<68R)>FZhUpFED zy*fzU;G_oMep<*YEK>OA55<%3_m-6r!1lafGhT3(BpMH681IdEeaT#|_)YyDOyzhr zRMgacb;J)y4|Vs0~O6VO3S-NM7k?MqmCK*%^zYQnZV zDh(Tb=69kwIZ_W?)}(l&hFW^w-78@yxD*9)+dIL4o=li@NhA!A30^mEUQ6`Qnv=&~D)oLnxZk^_{1cFc34 zx|=tY)oy&gT(sx)^o>mp2|c&!X_!>6KaKW^uQ%CV1`D!0rj|Zt$g;$kJ$;K}7HPrc z`||?wkH5Ra(rS=%#XSP^5YKduyBv_(E|x*dN+JRgqG}TJu{dPxe5bdgHF5( z8*t#K!(2C`1TvHY3FmZiq&(euQ!OOZ(TjY_4VxsEnpRk#6?8M~$luA=c$>BhNppBH zSJD)=&yGG1R|YhG(!O${rhvDUJsBc@)AsEJDgyhhlGoz?$CdfWQ(c4icmg95&VC^O zBJKP3>70zz_M-N^CezwF$oWVMo)f%|?w{Ig9tVndzHEEO?XcM(J!9;=#+X4TY;{r7 zKkkW?;2ni+RcA`Vr%}H#T+dx`AH}xNC@HO`BB8!6J&h-;Uz__-zjl=mqr-uG;@o*O&+uw70Gi*Tmyc4HWy>nGY&euumQvc=Y zs`+%(Vm#k?(OdL-F<%{LCQY$ILcx#~m_Fa&x5+`<(<-Cn9IZxo@6AtBjjX@%#9n>T zv<#a74S`*l8XwiMOABoLW~R3MSJ880pI|R$k$7uaZ`ZJDG&pUmF4yj5zbgKY%y(dh^;kQ|S3c!Lx%Jq;S)J{{9xBa85VOB~QB#3>vhG_&)eyBSeeI{` z(Cijq;(V;vkRZdYBRphqMn05VC2*`>tAi!62l+X7QG{a|K6T%}H+~;kpkC6}Xu1s> zGcEs~4*nMFvCxd7&=nQp48&wtV^f@>l%DdOk?-}YhSiQRxA@2{u;DCdb@}r&rLexs z>>`{+-uy!o~iZeG1deIz*;K8W(nmpVZ}Pn%>djGSNh? ze+YaZ7^^Y^shw|ETX7*^8q$P3)MuN8lQlsiLNZ5AU3ryGA{wangVkcIn4g4>W(rE@_7ztF*Px=}ulg zcHWuX73&{*_IUNY6~_L__yLD2PZ?h6xm`$1BgFfUfXGL51}8Ph#J=KR~NYvAW{gYK9EYHyJ%vCiUC$?AOa$QagB>L|B)M$-9nOQa}zav0CY z@r}4tGaK>1Rgy~7IjT@$D9qK6!aH`^BfS0JP)@FDMuzrdDm6h1f=D>r`VZ7=8N+n9 zfOJA3N2pa4f}YRwfUW_x3po0xy*7!0l4@^)zynPhtEfGZrTRfsna&er(z}}w^IOasOM%wS~hDZr+wmxn(s2ZpnF12ERjPh8VhRSvTiWm`^Cr4jPY%d;JSIuULfaL zwqi)1P`V_W{R+4;t;cM{i;YU@dVt~maajYJ%x+}s3JH%f%hBUEnChe{s~p7e1oGS& z=hY)r(w^<$rA6J3lP!**+7`IqGosB|)&bJ#DDv`ZF1ySWN0-~o>ic}#_yn{%yipOF zsXvFK^FS{A%9Jhbu@|t0&R0__I4V4Z$fq;)nz|)+poRT9_^5gV9Q_3ry3eY40j&M%kjVsT=;H0g1;^6ov%Unox3(u{} zQm^XohT;24AE(uW5KkR1qR!}3-FhW~B;|a`jt1C~0qif_QE;L2t3LP?(!PMNS$Bv< zT$$VkaFi9_DI@@sk)r3bXdbm|k?pqjDDDn1fGl3112~+iA7-4>i%^n|&~Zl-InFMR zod7&=k(^jy8GC0NiRjznzpD5-?Y<)bXDatF9=}ZCaPu^U{Lj9t0IyK89iv%1+|Glt zjih#5CB0e7(t8Ek6m_CgY%+8XBj$y|!zvtQ56}Tp%|)_BFC_~G#7<1S$YIDQfQBN! z>1^5*i@?()d{{-HlnE_K0u>CHTkSfhw%|N#C_xz7*jbE+aE*Hrr`VdSzbf&$oelg) z^XGWzvanW%y|%t~{4&(oLKSFbUZR$jAEP0w%HKxXXWp46hS@D)?ny@raj4${SE68Fopv9=41+Hk>m z82vCCNuH3j^aS^g=nwZgoiZ|mV?r!Li)$Ca7{6*B>r%YV_|S4kbz=i1&%+q#hjY=c z%x~LBp`kbM9c2+1%FQao1}+CN&;1>TRn!K4#fZ@#_F_j2pT#|^QYc^~_kuyAk!+)h z&)Z1PpFuH8HgjtN)@FMN!3_b_9X;T35P(b1R}ztz)uG)#`SjGknnt*1c~54rWYIsb z^P$e52I$8Aj>Xzq_X|O@QLSYmk;3)f+!J<|daN`0m_w9b zh{JZ3JWXH2eAmnqnWiWNNGu2!D`te@bW!$sYrUcCf$w*5q z9i2~lDbSw)Y8O_-*w+h_qLcZj+g1T40Yj}7 zVbT!tA9yCK~{-YjRu0MKMuM$|sO5KBA|G;EceV0;`5U>v%qcc`yD-&im3?~o zNZ3uJ;q1p4Q0=DK{iIau5XL4j9|`W;K9a^m@HlXvDr|cUlfP|&i4bR`NDeW-NMgdC47iz~eafeI8_96W z?+iIO_9O-GOh!QVn15`ymiiKrk3jfRa{d88v6Zm+D4mk?RvQD zaF>xv;r+uO8*3333>PY2z%DXpYV66}Ct=%<`s-pAAE;|Ae5UE)=tiO+lYzb_t+wvM zf#iIb34RheGRP4dEFgaKGnvZ)3tqHuqWhp}IyT-+$k(PB6gDDb6=PEvt#?MV`V$}N z%d$2Gkl2~d83;PZN5YImclMJBhI{oGA~wB=Qp>!?N8+(&SyS5@2mm~Jnpbv^vJ~Kn zQ?ypy1B@gzx^;ZrxwKCXxw8)3$2jEt>ZL|0>W6v-N#(VpVA7yTv*kpugg_e{y`XYk zQU>m-EPAvIa<_)LuxQl&{v=X1MOf6yVT_7m=Fyf)1`kP*{hY*gfR9a*xTlF(X_Co3 zD?VrDC*+cgq=_UKAOV$SGFQ{gkfXC5rgL9qZU@s=)U!~3wPcmC@1Hsth;p%{6z1kr zz?wf0W>fYpAH!yTFG;z#cXsXd($dLliw!jopfw#Oz1d#B1*06b<(96MErjhsaB+5w z>TZnTa_&h}E$rCIHb>d;@*T zp(PviU-#4FKUN~YEnP%54addtmIs3XCaHDvfv34)Ne|UzkkxDBbz2pU`|)RJ9j`;i zHWGRGG!vi{1$GcvDSkjRWA+e6AJGl{aFZOH;&Q;Y2eG>(F#pcZWXeM@e^(%g?iICC z;eG*&pUl@;w>^v~-?=g?H`Ye15Gdn}j^Qq_gs@Xi60sb<8*I2-0Wt6*PrX$G$%}QA zQiSnX@JzC3_6D=EltH<%!7W&fWZKu&1U91|KemwAYw%6q`gVFRTDM|?RDWwQ`caJ@ zySSXvojq~|x+k{;K7|Y4H(=PeeJ3P%-@=I@QvdfewV4_Bo$DBHxf1H#-f3JV4n`kIsMiN-{Gem2r+-)SQE`w65Z1|+d%-T$O zbu3hI_`pY=C3BB&g;tTznXP?Hqa|B(Y$Gz#sqUXDT^5EKxSOOfECd~o#C_5zWF5VK z<;j{YUn>=G^VnEK|7juH_sk94Gj@a=_gQaf zqhHdqO#QS_ja>UzF$1v8w++!OZ| z;4aH6LHnd$usO2PN_T>?BTP5^b52Vsw7mD)i@Mew4#C2s%DaItvm`}fgXnuI0qmD6 zDWJl>kdXkf_j-iGQ+No5vj+}i_^#rchn;Z`hL;5~H!<=^QfJH=cOig%557pVCcZ)% z2=4JO#O}nLCBZ_YG(Gv2wJeepcpIZj@dZ(lijF_~JejgeTFccylnu=`K8Ctf)4utb zqGLlFD#TMUJRjYdGK(H>eBb5D9DU1AviHIai8OoB+l#kpR!b5-(B$t`mD~q5!1iqX zH^lY+?G7~w>OmF|K}x^A)Y|O#m9~wP)>U)c6NY34PJ1#Qr|dx$ZtDgzPj;S4EL&CB zMmjg7gD`zk$d4M?jbfuYo$EPx=1Dj-weBu)64xe&()Xp}|d+h;Lj zd!9E-;Rsda#xMvm@JTSXGWF2=1XteDjl=8KH=n?KrKXk{6Ohn?!3SA<3b5=ve`6KP z7J@AE)v8Oncu4S@zQjW?f&T$T$_BM_GSnAQukh=gUG51RygE5Mp#jAS@Q*&k?_G{L z8$|E&?#I!uuY1k;6W9hA5sE$Puz-Ss#&+nSC*s&o`X_$xY{wGJ6=w$aIGTv7aA(19 z(&!~JPZUM=7i`t@<+siq#_Sal;65dKF5b+Asj2Zw+D&&jf`*&9}p*yETP^W|3pG*8~xz$tcFF%voXoLs`+H+p2kbE?my zO22aMxAS$jozg1z_8M9b&6mqr3vR`s#Xb@j>3QY%+B?5zs&-2_S?qg2cJoNlD)&n9 zfzlTHZAb?;Etk%qp}?QVA)9>lX9O0$GZ$3I2KQiiSJs_|9gx13_&HeM-oKX#p3dYB ztd@={s=DT)JXAFnGR6M*y310L{_8I%-CBFk=6`2;h(bwJm$m{F@I9Z3%6Qw)qWziq zH1wyL)VSPSZ3nGkRjNZv=6=xR{Y__#gXo{qlb;r85q^OLg@?4k>7{_64JYJ zh4METsvxtm_PM82qYVvf_d*hj{4gApqG0fqlxfdw=M;?LnSt?+!Qy!9GuW_`GlS>I9^)9y^QV%1$Dd$I zh=Q!dYbs+Z|5J;~WBWHKG=4gZ^^zLiW2B?Wn;XsA(yG(w`ql%`H2;j^c?0MK6vG5+ zMHEyKz`sei3dZ2M|4=vlpBHk|5F8(T(|Kutk}Zefo764D3MHaUO=E4OFfTo+Yfa8B znbH=-;@B(?rkEck!ENA7!~_B6Pu|6Grc+w|-f!p#lV>E_oRM*H!x|2ar~NpEvht{-*? z%S@R+vYk? zj;23iSrM8iS^21c8Y@TFcOJk#|7Yr*gC2iRbXn)Kw>N@M=?%ecZCpIPnzHvlOE<3W z5l3 zpmw_I^8XRyUt;Q`H8fWLA0hq~RzEUPzpXxiLJhfZ7at0=M%m0my1+Yv;M1C~$N5MB zz75$Js$dnpUI>#)bpKBo0$I6W7ty z-bq`D8dfIvT1RrI zDj1rYFl(s&_xtHb94e$t zP*`PDY90n{^gUr0^{j$zk%aDH&aGu=$&?xXvOWAM43$UCk_Yy;U9i~8|e#n#DOLaZf@oyMXYatNbRX>Daw{eVgjFk z6{Jau?)07>E(>1z@fclJPw>$9ZLq;6x*b;_WRoVR4Enuj*eGX-p*e7~!{z%MyXD-m z7+GxM2c;8bi=vRjyRDl$FGZ0P8GMukZc)~ z!xuu6w<~VL1@V_yC@+rgLGoN+r=<30iOP$RCq_|xbT@Vz$?btIh3InakzKlBhnxXL zl7%3D+Jk)9k_6nqWQf{|pKE0`_Q6@gERYVaO5y(;4byBS()jbx6xaLO*Bm>t$VX5y z60syyUtBxsJJ)+CNS7N}T001X9L}Ydg%B${f^ZKc4zD|zrjW-s$DCQAGH8&K&;p1Z zMB~(C5k+N9?gk7<@~bFOcA;TT;gY0YsU4Hoor}JQP^2jFtTZMgcZ57sg zw_c5y86If+lSl4UTa4Eb@Bcu>s$Au)>cc12T(Z##xNuchOJ|c)8OigJE{%+LzXK&n z;&`=%XV?6`udZq-v(1)36*E<_dpY1X-DFVNe__f;^-D+0aJ3^J&vpT>%vevK*|t87T=W~bT(gC>-?>PffMyLFJZOyiIm32gOjExF z)B08Vb7B;FD7-Ht%<|a zQ?zr|CqS3~A&0o-h86FFeK=K6h?=6AKDyASu-1XyYW=lOvEhoMF|mD@_mA(vt8ebJ zDTyn2fF)A_XSdJXdl);)U48B>E?4p7h3!>~>l2f*PcWtgeJVcxIJ@QL16b}KEF zvElHeixzT7_xlMT(P4od{xqf|AQX4Kn`J{`2zS6e2|R=ws&k&0l}BWW*GI9T{WC2# z6VA@*v0Rz&OtFS0Zx#0E^uuVgh0|%WSkMz_`l^rTjMD$M=~jk4*6xiNCEe5NEQ#&g zNQ3QpnpObxGbiBMtn)aSKlb(qZ#nl3w3pYA8Mn0dXqY<+tfWsgXe17;P1K|Q@7h0o(v@LcsCT=|ry2$1t`(O( zZixZq<+iqmluz)H;2BR0xp?D1IDbu8{h--NdvF_G8h{-tO`fp*POZX;vy%>#h(FDP z#1N`aC?Xu2vEAsUl(Wa%<@zfCn52-y*!5DXy+h!Y5c_+s#|_?9ePzC)5i*hZlgO*^G<=%%cUF7>;&rEq)}vjWo4)93q7~7P08piuya- zT=t+k;b6~7JUjd#2n4ldQ|iMxEKi7-=j&nuo1I9|I1kr;Esg$fJ>baFVc_oqeU@A+ zrqQC`zT1`+alNz1pBJ>+n>g02x$Jd81GF!eBn4syqAJ^xo zHOsTRK9j818?E>?2UrQj@mG+N`c#N3QCj2wXm!=EUBk@B5WJ zBeGB%V5I6dlW?bIqG%wV`7-TK@Ny!M2@wnzlclsUHZ+$`B4^ z^!yIOkT)S$-F!JEJQ*RVRKSzzg{#=C=wo4D>ad zd$u1G`RT@^ifv>qm9_lKip8G&k#`4dV&ucq)7R9Daf)T56ltXXqSfxY^P7ag_Spp0 z`jrOGPZ#6*fj;}MZ9a^+SoxVr*=E)4%)=eTKhHwSH1dR5IKna&8e#p;+sqn}5VW+# zSp3($$TzIBK(q|L(3EX71^X5f|2Ki0Y!C0R-u`B#+}xZziN4F%0Jg2nLr}h@F`$cY z_6gVfuj4hj-Kkg7K%|Ntqrpp`Sjuo$c|_Ib8NIR>pp&F#I@^ZoX3hrM;uNco2ih}N|FM@#Q4(at3LiYX^d%^3oGw_^r6)=q^ny+ekIr zpEJI1+`Vd^S@Sv!_nd0S$`55crg9Rn$mHi3a$Pp#bFbi71>{n0@nqG@;TW}dtk{F5 zwF_pS_m2p#(knQ9651OVz)nKpgYA)ZoE`o*aTkoJ?YlEDAKoPUl=$*X&%i^JWIV)5 zmq@gZ!myBK%EZ??XMD1z_(<@=wj!>6BnZ5_gL!v7@#ibgOUR!j(nSm=dlc#cxN|?8 zNKB+X|9UPcYdyoTiVd_*#PB?(1d0ZD7MVl-=`7=;S4#VWVTthc=uI7!@yT`BMtaec zY``k+l>%txhu!so@SGWB{O!Xr)}lmL0(M5YjfI(tt@$>xj{~S9f`#VJ0Caru<|GM4!-wIGJHtH;O2MPA; z7X~PYkKFSqkXrZWDGc#mIY1KpC@$nW_!Tqc-zDTRuJY|JG@|L6G&hD%(0AI7`7c6{ zZ}UNgez9)4_l}N&sx|h>b=zbI_1Zt{J`K2?|83kZ*8w-=^4;F!#X_{@Q{=O~-`Y5{ z3(-5lZ0H^V-9lQIid^?)&5Mj2WGOm`XeZ0asPl z8rjCfav_n2+Y567RZjXMEka8lqWI@urq~>($UtTAOg`~W#q+h*#qqUd4N-PiH1VX^ z&q-T$d~xwt2hiN-=CM`(2xq`?r)a6`6}!gJ;Pf;`K*G;esA>K?vMGF@I zHuPJWhz2Vmj93;GMtp?5p7Wqt7y7`=0mM((!&9hFas5CTO=akLz$shiob5Y<@RbME z#oI{mcL6Ar(Y5uP4R70g;!J1BYOQR;J0Ah!P*!R>7(u~q=lht$9xfw#=A+6~_tWMN<9rONts3L;-- zN5p%wwjBNvj;@nX*kY-x<$+xk%|}u~e6JrHo9tT{o1BOoD>Po@4H=B@Sn+ zq*?P=WBzES5S054XTgJ4{Zd1S70A|Oi9pM^cM5m?DLhO5mr}o8I5m>rTOaWGZK}dn zo+dAfmUMUqW1~PVEdwgYp8w|UP1vLwIRCCD%stf3#zRXkDrITX#i;E=q;22P;)zHP zoq(n99UI~i3HwxSQ~CJ4Ig)k$^*x0 zs#aHA*eQ87o!8338#I*?c!O)}Cbl#cN^=vh*lYo}M&D5>&|Ob}(z8&da!o}loZYar{IK>ISaqs{HU@52>%v(tsbZ zxS@Nt;g_#{bG7fF&Jy{ubQ1#>gsx-6RzkgMo+*27WN}d^qKJBnclzrA9Ll^e@<&s& zuo|n(JB%;mCI)C!K14JkdqB;m_Q!)BC(nRRU9;8NWurXO#@2+;mwLHUT{~YTe6+B5 z?M{cfOr%KAb6(&;=;X80#T|geysu%^l->C#VZszE>U4={X0=m79?6IWiE|RGLS^p> z&dje*Eo)b_&3?yKJ53}c^eB~-O)`!ZZO^Gh8qP|G@V zg$vGYPcU1avOh0myra3SRaH?qpG-skn$hYgfm&O55Om3K_5Zilb~OavYvpI5@L z+B31ki+XrG?nHCFm@uy27&}%Hhd)V#-L*FT<5A&}?)=jN{sv6UyJdTF751vd!8x8m zYc*#I>q3w^7p!lWykW&{N%y9HEXTt$0ud;htdXa>-4!~FMFE0bRO<1NtCjHbgnk1! zSYgV-VP-#FwZLE4V(}^yO*zC}m?0+d?^8JXyJ)+#3`ycc2>||Km`|L= z+@}Q8xc~9;5%xC?;?_F`n7r8Nebi)o{ z)ChG`=IjUFj-9{iy?bX{+Fcb(TZ)r625Zbis&b-y3>%vOqxQSR7eU);eBa;;6vDJ%?3;=m|evqxek#FW^qiJ9m!# zn{FE%IWqmesj}xK5-}-E-o)3G_q4l#*PPFZ8Lz1yX_=F9gBPx7@=8|@CQ(kd zZ7!QvS8~1Y0gV=r?g)BzUHr6^KlME8H3$$5=0w z4Qd(_D0~|ZqG^(gN4tnlK03{3L#V#odb65?FI)q4g=kf%^)3p6JQJRhiH3bW3{uFY3n4@gQgEJPIGH_PwW>nZA z7`u!;s)mHT=ixie$8qIn-f@6!zvg7C*s_;&I2U{ru@OpYu8Aecoqzzt4F+%?1Zp?n2cE zsQqxUYQX`jbS7#J&n9_FU9P$&}2y< z8&r6E)w4fei(ZRa@b*5ts>jMjUX=y_j=##S%@Qw-5qr?yQHz{|Rvaq+E&EndnZXgM z;a3tMjro4hpb$HSM3ZTUrYsfN?roQ@%A9`%Q3M50JHGo-ac*jTM zEhcjQPw4m39TyYyF&9r1tHRX;Q-(5f`92dxdD+fwl(PI9X=rJ_Ir&)>g1I>Nz<0hj z>y`L(BsU8T4U})>Rr@>TD#;Q?ErYYr$DHRUHnH_kaA>`#3B?YTzdmK1$s5L!KogHC zm3v>1ZM#{p0dujrjr&-G(3I+dgoe%WPkoh|NDX^PQXsri*!y&!n;eR;e+BpwX3cpa9$o`IJp zkU4<%*Iy+>f-FyEZS1Lz8t z;h%QCt5n!kZh_`RX^Gf#7VdLu8DO6r+hibLoHfFMf)q=>W)I*VP6-+lhLd(eP1;e$ zZqWe0;7Cg=xXlj#A1=lV4(wxkQ9zDbFQD85j8mkMO>!&R0oJ|qf+;4=rblWm2@Xj0 ztj(R?YrIURbe@EMig~g)`d;hhwoQT|zmaVs^&ykjc9vJ9lqeI)VDWB3RE@XwTu5J8 ztosqfZC+otLn(F=3y@blzGcZW1 zb+`|)gTja7->`+6&g0t}V3@waHQ$K1-)pds6$XCY+%S-o(JGlRNkiJ%nL8M@g-IK@ z8~X-*kpB8lRx*+;37;`B`MgkzoU{TQ^lRGSIEi2-Bh%h`7=*3Fz5AF}y%}CuA2eNX z4qLD);58HU+7J_pTy^4J!Pilz*i}u9L>XrglyP4^N zB{>hk6`K<#70p>isE;Z>Xqmp?Uff&SbYoqbD#)V4AMrxa8yyb`fxt!}rK|xdWEbe^ z-I7Vk;Jq`|Z{k|HzwOO~^CI9LoR31ijqI>u@aUPp_Yqge8ylX;|m2F#|1glMEt?F+%thugeecdz&KiTrB@z#t%hbwYLUmlT+| z(`&J58etgiBB*CwM#Bjyqy}(3yX;lf528u9M-0=21Px-UfO~lQ=XuA~Lr7_!Ek$*) zEW-VBBO4<1L~P}|2FUV_XoBl5X0bjS7_u(ifg!qBYj2T5+{awH4ler4S@iL%Z8k8G zi1>h)CA37V(gzSS2ffq)5}+qo0rLlcKuMp*T~Tu9{f^Z0dZ4czSLGcRim>w}XH;-j zJ771CwA79J&qXQN55TkkK$qvmxwugjK%=RJKKC6y*B(h>c_r`M1ATt6`|Yf$LYd!@ zE-7%%ZzJphzLP930gKQuF|Ob2t6#U7{N%tsWvx9Lv0YC7^aZ=9JM0m%E@-r261L7y zxg@u04P*)?#=W*?rsEl{a|z}TV?9{=WZD8HU|B=#hWfpszdgv99a6>#kfYW0ri*nN zP?wkeeu0nH{0#J<$pKSK3oeoxcb_#1fysRlQb?xTLuFGjJ!QTYA;FO&t_z7VK)!B5ViL?iz>zN zNWGY05a_KgPyyR&n}GVkx{_l8BqL~yL}@p4QRelVdzoTW#c^@BkFA`h>K!nN!pw!t}b_jupE^&9379Q_0JO0bG-7avB{^Kc#I5Tyb-Yld98P+u3)q_z;%yCF%I3Vj8jy;G5(n%*C zfd=^QjH~D+y|6nBFNt`L7|aNZod+Ckf(i87Vg=^8@X#FONfSLdl z%-{!CnBAf(3~{d%6*@`C)fcVS2LX-fx=<87y)m<=%l(?eoZzNfn3{yN-8*l^Hj8#~kkBgpf@kw&ErHJ6oOufC=Uwcn(Zy^ED!#-a9)uf3tH*aWu?`2p^-p=G!O9ZmSV8djyGsyNfrnxxHDc9@) z$IUl54PHJt03iTJsD_5`8udTLx9Vi@jz*l=1^do}^*Y>3a7dPF`_pE5tBgp9`T~OE}>kc;VB_UjFO(ml21y=Ye+M9NHl7 z&6Z4IyMm?Cq(_SZOHjU#^vl{Aq8Wy&B~Opgm9S#3-iArKqc(%Rcvqt~bzJdl4zPt3 zA#YY~v+x(T1-)vQ`kp}oJYec!k(Cz`pyY!H&9^^2*@o+e9uow^$1L~pTUN`&FrLP+ z!@WIacb~1r(7}m61a>1a--AyU^I{>x8ED4AWhoJm1^5%_o%7x!$IS2 z^>^6k$xdLkgMFclHx-8Ax_lD|d;o;VSqQQ5pUR~Lm&5lZ7FwLRi;zdiRmrP>M!Qgh zj&#XqwGGp_T zW6kP-=vlasbCNQW#-?6}!vJ<&2LB7{vKv%C)AItgMh922Q?^sQ0I~4IkVxqNvhez>^kL?!ntBxnB;#}7 zPSe^*=-@x4XtNLmy|PlkQG?1g`RPnNhtj*pcfx7P*V6||hZO;+s28k`f{3b>Sa@;m zZ8(ytZVQWsWbw1sGDtp{#>UL9=D~8E?v5tFFf6atRILQv5kRijJ@Nly`(7P;(mDL5 zO)h!J7NC3;T~7#FGXGN9j1`N3sTQf=%z#T^$%ip{UViF?X#E4sXic0yYQ!#bxu?Z1 z3L_mA$qjhcET9@)X#cVWXA$xi(H={k<=(TuLcHK(0cnvWD1|n2jJ49!QG}uzA!jkc z&oy(hGO4ME<^DYqmKQzb`u6S_yeA5BC?WyhSFxk_Bf%pcG{u^1i z4KP>F=t-{?HE!*9G+#Xf?x2FRL%_^5Ya|R{*t;HQq$<}wJB*=rxt#P}U4^`NBpifF zi-Wa1-y->uFQ>NtM$8}?riNiAqrrXrUc*855?i6XFj6 zq!$p8u7gR8B|X}zFN%GIznCrG7#tdMP>alcjJ^54#7i~-P1HhWrX8s9Aco}AeRG%| z#=9X^G|Px6f6ASTEeg5(FI5wyUgoYj8HLI|z?cl!!7og9kS8*~2$`ILKa0>7Xg)Ay z8rW}z!*JjGoQcZpCV5B~{dg`dGC|a3-DCjx6?mDjWqimo8)S|0u9Lu4-%8fi?20|_ zm1Aq}n#K-;=i>fku9g_CgajB7VH+Z6;d-}+mztFYw;Zd4esRi`HbNZk`e;_tWrgUY zm;et1Un|HSEn*efgfsx5^tV(jopOn?>I3;c%O9lE-iiw9!e8_={!?dFPvQV|I;Q{k zMsxkZ9YYyQDZtCy1>H*xyb+TDg66nFAah39?#6_U>Gh6MSkB@O>``+vMF@5!S=^dh zCA-=)Mn5k}V-_AW*`xtNi5&86Wb=+IowN$bN-Z!9G+0vCAyZLRz&1I5urL9*n#e6d zmYHuQap5$>9VgnXURQ(vCnsPscW7D?S^^jhAHR`A@!kyS2b|NZ0YF8FtiT7#=d=~J zf8Vbm1m*s!Dfh~IKctVnu*ffFVrL0FM=X7ztH_^r>&3v6zdI{zU)qFd#&Tj0K7@nP_D z<6IUC&83_-vqh(!F6xSoja!@90 z*+IZbn$5CLHp9szZZJ0UE#%ND*@i97Tp2wc@NY0*`yW)+nyAv9RC%%3a45(uLiy4m zvQb|~*9x<^%W91%m@ut>A4F6EcMNd2rl~(53AN&5ZuI(Smt)=TQFWXh7WLxEFAGYd zvtc5clC^?Fm$647Yvb8h~$S80fGL*@)D2RP{zE;oO3f6rq3^!&1Ol^&L=YvZE*f z?-NTryvI1MP7~**#%dLp<#nJOj*wzK6MIvu>%)Ka7o6km6>KO9S?mLkFbjMa_FD34 zKHhDpr|msc>s8oYA#D6KknJpeCNHbfsTS}{Dp1L1zV${_FeC220~!Kwq@}=4KvD5;t-}DF$`F6Y_V__KmtD>*j_?UOU-bv_6^LMVzAC%VsScl&xNv+(9uAQIwpnPZ z1kyIU0uhOYWw}s=RL5)xlEhQxZf|(}HJlWrL|`Sn-0Z~@OuV#jEW3C2QQzGOa9!B^Egu6LGw|D?dD?#S>A zov$sI5~H}?h8z5SOuIsTrn$2@t5&*8q-vXjy-8!1;8srAQHDC?+onuQEN-%I9;=Gc z7!wKV^eBivf2^mAT5qnveD1JOj=$y5URg3@Z4CC~^XahK&vP*==|jpjX3v<-cx|79 zbyt3BmS9z{AGMpG?mVwh{CGa|^^bB>dv3O>$1{pI>Be+^&Jg{(=I6Vb36WQ3kA|%a zYu`J#QO@8t)kBAY-H0Lg*lDeOaE;}Ze`bHO24nM;SC>z|c})!4-mO_GS1SLre#_R; znzgxDmMC1E66{J|zTaa0i&4CXhMGOu{xV_g_WF++mRUKt&~*o`r?CdVE=Qft&OK(v z@DSNW?veQvTBDmi#M+uE<9E3GUiWTq5shs%hvq4VSaz9S$XQA!Yg6x2cr3wUOWYHQ!Ke0l0Y9B zZ6)c`qaFci>ZaWr95*U+14@a++4tl>Y;097xk!%JK4%k$rrTf9E??=j9TQ0&(FIg;UOS5n^O zzzE2n_X~=BGWe1FqkZXZ1)sjR`FR@3DtWHwT<$keU3Z1Z7@R1l%BIzQD0?P)JI1J6 zPI1Lr(QV73X}9vUS-0Er?@?<$4`Sh}l3{y}@9C%$vyMtV%<2_15VU9eg#IZsC0 zj{1|gXmV1=t=tcG+D0T*rLlL9+8d+=7e>5XjC5WonprpfksIL<(_*{rYOHNj^idnk zz5`g9Et~dSNcpnydki&^MY$q!_0aRbU+6bHzSi&vzaygb+Y$js?ipNA7CXX}xpKDY Q83z8yM=TFN`HgzzzeFe^?EnA( literal 11006 zcmeHtX;@R&*6;}^YGu&U7EmTNK#|FcVUSU&rD0U4ATzB9$|wPmFvhA?%cKco7%h{C zfXoIE@X|^Hgrp*4n3OQdoIoHXz_(Al-~Iab`n38yU!V8>xcQOnv*xw-S}S{>z3-g1 zG8Oq~-$xJxiJ-s!(guRIf#Ei2rx5swmQlG5L5F`qe|h4Y(1E$3@WjlkE(=T4g|sy1 zaD}-JWcB^Cc#D1JyVVlSPPL!7E4b5+bh};lzFqQ9J?488)E&MzH#oR`yZ)n-q|fa{ zbBsx!vu~fW^0}Yqt*oHAt1o%L({o_?9?CzEtLTn)$1Q2hnNMX-8@}wz2O1zC($&W|%O1mo4Ti zGp)RdaDpmI27+)V6?$ZC{2-o~j*qBT)Gl+*rpJB-=^T6>(8jFOu@1nq@EJ~oAQsJf z5ok;eT1{cB6M5z(q?+0Glv~tatQBM2fGsNiQL2jJ19x79=7^U$w^AI}A{V<6B9O;HRr8}RYxe>`>{D|Tt z-`ff8xY8=)aQyKhYLSA58rd4@;0aU8TnI4R3_u$Wyo})ee9u?=V}v}~#;5J)bDh>? zYW{>mV3#5A%D-HX-0DLK|G|_=&CmM?GPwA9Lb&@{!$Ad!LeJ|)53ZOG0|`j+D;C3%Iq=ds)#HwlARsWf;D#>sPU4Z9tdki6fVY%5I%SZVifBhD8yL{xgm7q;OG z6lgT15M%Jmx~_mbRNC8e^I?EulkSrPV*2b;J5acfES4Nf_ z)FagT_1%pWXx@9YTzRsG@nd4fL@G#nciBi(iL-u$W8>$LYEHeDr^Cn@tcj(1T-OE= ze@+smurOUrS_bizfF}A)uC7K0;Jf1ufNAkKI-wyf6uE_jIbQ3ABeE;PJ$|rScc$Hg8>)Xk8I`?anHuc(GOcoIvyW)V{i&_;@hjoiZM~#Kga<=Gf@@ zed9DF=>DCp`U8dR%C#L3lyhCAFo~LwF#f4PGa@!&0`JKD4QVc;0@#9|C=_vKfJxzV z6(>x2ALAUmEaE5Tsu|VsVgOx7qu=Tow>L-6^+Tt9))loUe{^J3#sis9U0;%k6RUEZ zXR+!GJsD3{J$_%qzK5YC10$Dl#UMuGK0O`*)NMGY017@ooT;shy|w|Q8dE>#EYF|9 zP8St=Qcp(DY;W4-K9qVbpUXTG6AhTdtSGxvW+_TFzU0@XqEK}~!0QJQM^GA7y&wux zrxdWmXG(Zio+@s*NI~9~X_D>ZXjlKMAfahpdvhkfUwYM0+jG+?MWaufC{5ABJ9}sY zoUx6WdWK}XQ~hDcSB5g5 zO?F`|y=Gw?qkwOX(-FVEhD%Dcf6;ZWfCS& z$!=NCrZA!%cp$jV4cONm(#{_(KIw!cM>2w5v|T~3&%z0ms$F6eG)!A}j((zXxz7t4 z1fJ(lJpF77;EpU19WhuCo$X?f3elNJ6k!7`km~I&rIbm0%f{=Lx^3?KuI6iniRHk0 zzV9FI@R%F@A(qPCEjA;Jvx^?~U4r%Oo}aQKXv=g;bgm2I>Kl^_wJaMmNNaH2K<+h; zC5()-hx&EWHHa$*8;@~p`FW=E9Z?a>den4L%Q~wsaWaXqgR&2h$3I}TnzClGyCD=d zR|-xYr?n02E@&*B`BP%X`9?rO`z*>GbIj;?AtI;e6Qd1~@i_L2w)@csn-6Tq)wePm zY?z>Jm! z5VU>2QXS!`Fs3^>7hqmJ%UXN@j7tRB{{w6=!Yrz^$JD56>x^JC{7+Kx91cy+Mz_aM z4@Ebi2O*D=*bgUYa6IO2H4kAe@+AD2DHSP>PTt1{$GY^VKYOKF!K#lQ!+AkfcsYJ+ z!NpfTQt#X?y1ajfFo;)L8jxyidVG`^)dbSfkNkzLX4=;kKX(AhIb*X@Q|&bH-`CS3 zH@F~-o3?X(J9#ob|7xnk@r9f);#Ic=o7a!v0(mX*lp`qL~GM2j?mkh?> zDL=xiWCV#WQC84x^#FjJV*Rnb2>0()3z52=&Tj#)I?E;*0XuNW!gSck;Ov4VB_n-E zzyE6(&rM7-6@t9L5Hi;GmUU(sNkV2?sXJlH`|G2`rXrLAs*uQk&bKAxSqx^}KYllm z1@O4}mxp!Biz1`e;f!}FnMhQO)cpks#yR0hjF$yHkF?;>O}Sc9#M2Xn_kje2g3IyZ z>596~-coflZWJi0#DdlV)eZcp*a?2YO5*BCTc0dO# z!ogqAUk=|-qC6}M2f1$pKm76kwk5DVf9c!r2tLTo_ZR*lvEb9ohdGEFDp3v(H2P&{uXEUmM(kwZ51^o2 z{8!Mclg!!(RTZngZzTnwr;N^$)`>#(s0-{_nIoXAruLeDW<74Qz?sRYVj^0mPRt`{ z*TG*~cN6a@{D(I6ML1g&eyXT)^gIC3#5ZS|UgM2BlJ|iUSkB?fo+BF7^BjZ#YIo^6 zw@VmkeY9&2H060UPLAMGFChifJqCkupn2a7(4gpR0ZRKpc<%1s+6Wgu0p+9{JdP|s z04+ZZyPbe=_rrmftLM#0gdv!JLH6qh)*k?g&?6)Oxiq!xp9}*c;0N&ew>dO5YubCn zNh5T=;E_&L$_XeqHNpAHSL|6VBYHhWHLbJVHG=R8K>b$L+P%P%WzSBiqb#L~Q4sqm z?buG7D61%1$FB)`98CTuYI?F%QyM3#S$E+ykw~U`vBo@8U6!=%Y!NTZ;JdrD?eZs|C=K33>J=` zQ}37D@_gENiutz|^(PXW8{TLOc+NO-7_VMLSsJ{%JUc~w-g(wY~A_@GA_Hk3!>HkxVL#Y5?J&vb-|6l z#1x1ips*XP&D84gb~fqEKAC`#Z`|1PLtACd3g!ixG^6vz!TBRZfa_B>0+$Hdm0Qf+gOIFPS#R+YLw}oxu3z}eDhfjx&a<{*D6TXoc z96#Gn&!#tWZfwXJv8N0iba`rmMAOxwCROpPa@8Yak(TY3AyC}%=;382doK@4-ieND zzo}g(ElRkRkBm|ECu?}aGi6#i*yZ~PnQ668XB^A@`_n4()*zB5?Eeu{oKl`%=FElWz{mZNTLf zHu*1hg=i?Vvo=Q1r_G{6D zc!Bk>LR{-8*kZ!<1%Kc?{p%sH4W35$^OwUvO1$W{@l~^L-O2V4umtlc+KAAo5m3`3YcP0=Lqr?(k$*Wc`WdJ)lFuA%H*s zqiUrQC3bLDHV+tszGXQaS#~ z4xPlG=f9ln-x2(A-v1=Oj6po!Ba`^T_dv1lPizd6zGqJJ?R(4cJ1_oZ_$Lm%Tjk#+ z{7-Crx5^K({6mC)z?8p@(BCBd-Cn;NI!Z^lKL-T_UQSbvq1pd@<@^-%Td=Gl9fW_3 zSBuHR1<3F?7+5#ZSdcV(6h4rg@~$W1eKq+*R}`rbjY&AeCqGO!uvC8gB3!+;%9|t z3FF5JU|w;hn4u^{4ty2>(at)8gBd+$KGOC%{D$7;+lAp%9A*^4y}Q3Zi80avN2Kl_ zafMk#18~fNEFv4F!lw(tjra)mtEQ+gp^I-0MT-N-ltl^iS5y>sO~c!A7)z3YWB>R=%{+E0~}on3LFnw_!xiEiq|` zJx)M}5aE-$;Ka-;BZrJO7jh8pYq7H(*H`%wJq~V%q~GdUzV#V|&r`IQ1eZXd;M0)K zua1rS-p~W(vGY=DWXD4wp>Z{CyabWb_H`Q@v1M*Tm{7Bc+oCHUBYK*ZW$MI}I|fY9 zOltbNg8B&vZBEIY-^!$hSlx4@z5vn8tUET$13`R2Y)_%Sa0e;mRx;c?eEEIyYSorhS5a5MK=n!$f{K6Yy8r05r$+jDHMQ9f04akmK@~C z+D`FpGU-ZjGkdYX{~I>HQ$=o*sFglKanf(0@VchjB#Pq<~}Mjb|H#FsZC z)e)?vq}wwE9B_X&=*F!G87B@J&^3HTC+kJP`6P;SCXPf))p!TnNzrs)VFU zZb~-Uf$0Hjq#71Q}*L|qz!<8 zScQrKPAGg_!X%2=`t;Lq79G9WGS6oTbQ-Z3UJG?&fWU&&%F1rW*+6BOr=!}=($xSY zReUHg;H(epCcfdHr`ju~DyA5UbHiy(d#7Vh4mA-N?QA#?^`jI>fpm-EW4Fq*ug(u- ztXQh-C#Y5y1Jvl_x!Gdun>#a=*izTWY3(IW)mrIhOconXbLmDKW=s%iEt>`1MVcHU zRUo(MZ;$Jlg(fr1l%S2DC=tHXqwzd&$t61yuIoys2Hlgn&Ix^W)XgaZzV}hupX$-K z2}%~%8f>pgs1(xnh%j_*NGmHb{MKdOS3$$9qRSA@yz2v*iV_{YucKYzDD5LZf7x)5 z92*Jmr*^zNtWYNHnyx{a)V?&qbrA-4am>j91K9v~8A3H3uTsxWT?pt>{W)C9F{M@! zTmKYp8e&e|6lbjl!-aFV7tVe*YuTN6=Qrmpe9YW;02$_@%!zqcjXkSeswh4%Kg{xrwMm9=|ett-Ukgt88<8B>#O1XR0}O>7Cz zb=)-lZYlapL1QM(0P!4y#m7j)z6LK07|BTw6YW!2nvr=m_obH(yiB}P-k?TS5QXt| z{!4C{{>6a?|NHaoks8Ek6MPW{nW8Wq6bjI^?VdI)A5dfQA$_SYtO(#%iMcl=37xEK z1+Y`@dV~f{C^FkOMda|D*8P(6*svnfVe;cK_>f;T*uHq8)vkmZH&=DWvflF2c-`RL z&5V1DeXU?64`t>l_Oh!nA@ypT^rH}xyhu2zTZN*kk>&IvVA(qr7G#I-d1Z$>*3?W+ zRFm$M^DIiR_W1F5MSvcl#lPh77S|&lWNKFg{{z`-8sv>vA!N)v0lh9K&Udz$GcDfh z6;vN^v1?bCv@E#<+{$_6$a;>{jMo7C@sEj&Ignc&R_Az1G8m!e7C#vZM*-`Gx0Mb6 zcxlAeZ{Ey@a6woNOcit$G+>au7HZT>Vngz@en0@JCfb<|4|OnNt(<^_P$0q5zcZ~m zNyQtJJO-90IP7wgBW9`X3hBP>h;bLWOU^kxT5j-OkU3=ruRj_JlGHtZC>!r4H$bdB zj$O(Q21o8ge>h{qYBf2; z305u|+60@O1NxlmN0(5Xe58bu!<$gh#io?G-pp4o+R|@Xx7&wL$F0s<|07__EZ*(t z-IN}@n;E8#f3a?;STUW@P_{g|(PG`^q0yN$X??Q{bzx>A!`@q6oxB~L%*_QB(LN1% zNlaKlVX32a&h(j<%WAxq!7!g>)ggi$|4Lwjl5X2Kz_R0QS&6*!XhX*WR{1lL{%?^2 z%_l5}@wtwcu8DXFMXWzw+yZ1`j@nQr<4t13!?aE>)%EST7CRr}5=FNjo#p0}mA=Es z=5n(KkQRSC60McYs4T%#Maw90`FR&q1)4MJ$KqAz=$VBmOBk9#c@N^|nj)I3>%W{)B8z%quety>#s&U=HSe z*NC)5rJ