From e48f0b22537198e4d3d0b10a2fc199d8e2b5982a Mon Sep 17 00:00:00 2001 From: Lai Power Date: Thu, 27 Oct 2022 11:23:01 +0000 Subject: [PATCH] installed plugin `Two Factor` version 0.7.3 --- wp-content/plugins/two-factor/LICENSE.md | 280 +++++ .../two-factor/assets/banner-1544x500.png | Bin 0 -> 4859 bytes .../two-factor/assets/banner-772x250.png | Bin 0 -> 2255 bytes .../two-factor/assets/icon-128x128.png | Bin 0 -> 1225 bytes .../two-factor/assets/icon-256x256.png | Bin 0 -> 2350 bytes wp-content/plugins/two-factor/assets/icon.svg | 6 + .../two-factor/assets/screenshot-1.png | Bin 0 -> 175365 bytes .../two-factor/assets/screenshot-2.png | Bin 0 -> 163789 bytes .../two-factor/assets/screenshot-3.png | Bin 0 -> 6110 bytes .../two-factor/class-two-factor-compat.php | 55 + .../two-factor/class-two-factor-core.php | 1071 +++++++++++++++++ .../two-factor/includes/Google/u2f-api.js | 748 ++++++++++++ .../two-factor/includes/Yubico/U2F.php | 507 ++++++++ .../includes/function.login-footer.php | 87 ++ .../includes/function.login-header.php | 259 ++++ .../class-two-factor-backup-codes.php | 355 ++++++ .../providers/class-two-factor-dummy.php | 99 ++ .../providers/class-two-factor-email.php | 361 ++++++ ...s-two-factor-fido-u2f-admin-list-table.php | 160 +++ .../class-two-factor-fido-u2f-admin.php | 359 ++++++ .../providers/class-two-factor-fido-u2f.php | 397 ++++++ .../providers/class-two-factor-provider.php | 102 ++ .../providers/class-two-factor-totp.php | 578 +++++++++ .../providers/css/fido-u2f-admin.css | 12 + .../js/fido-u2f-admin-inline-edit.js | 150 +++ .../two-factor/providers/js/fido-u2f-admin.js | 48 + .../two-factor/providers/js/fido-u2f-login.js | 16 + wp-content/plugins/two-factor/readme.txt | 44 + wp-content/plugins/two-factor/two-factor.php | 48 + wp-content/plugins/two-factor/user-edit.css | 42 + 30 files changed, 5784 insertions(+) create mode 100644 wp-content/plugins/two-factor/LICENSE.md create mode 100644 wp-content/plugins/two-factor/assets/banner-1544x500.png create mode 100644 wp-content/plugins/two-factor/assets/banner-772x250.png create mode 100644 wp-content/plugins/two-factor/assets/icon-128x128.png create mode 100644 wp-content/plugins/two-factor/assets/icon-256x256.png create mode 100644 wp-content/plugins/two-factor/assets/icon.svg create mode 100644 wp-content/plugins/two-factor/assets/screenshot-1.png create mode 100644 wp-content/plugins/two-factor/assets/screenshot-2.png create mode 100644 wp-content/plugins/two-factor/assets/screenshot-3.png create mode 100644 wp-content/plugins/two-factor/class-two-factor-compat.php create mode 100644 wp-content/plugins/two-factor/class-two-factor-core.php create mode 100644 wp-content/plugins/two-factor/includes/Google/u2f-api.js create mode 100644 wp-content/plugins/two-factor/includes/Yubico/U2F.php create mode 100644 wp-content/plugins/two-factor/includes/function.login-footer.php create mode 100644 wp-content/plugins/two-factor/includes/function.login-header.php create mode 100644 wp-content/plugins/two-factor/providers/class-two-factor-backup-codes.php create mode 100644 wp-content/plugins/two-factor/providers/class-two-factor-dummy.php create mode 100644 wp-content/plugins/two-factor/providers/class-two-factor-email.php create mode 100644 wp-content/plugins/two-factor/providers/class-two-factor-fido-u2f-admin-list-table.php create mode 100644 wp-content/plugins/two-factor/providers/class-two-factor-fido-u2f-admin.php create mode 100644 wp-content/plugins/two-factor/providers/class-two-factor-fido-u2f.php create mode 100644 wp-content/plugins/two-factor/providers/class-two-factor-provider.php create mode 100644 wp-content/plugins/two-factor/providers/class-two-factor-totp.php create mode 100644 wp-content/plugins/two-factor/providers/css/fido-u2f-admin.css create mode 100644 wp-content/plugins/two-factor/providers/js/fido-u2f-admin-inline-edit.js create mode 100644 wp-content/plugins/two-factor/providers/js/fido-u2f-admin.js create mode 100644 wp-content/plugins/two-factor/providers/js/fido-u2f-login.js create mode 100644 wp-content/plugins/two-factor/readme.txt create mode 100644 wp-content/plugins/two-factor/two-factor.php create mode 100644 wp-content/plugins/two-factor/user-edit.css diff --git a/wp-content/plugins/two-factor/LICENSE.md b/wp-content/plugins/two-factor/LICENSE.md new file mode 100644 index 00000000..d8cf7d46 --- /dev/null +++ b/wp-content/plugins/two-factor/LICENSE.md @@ -0,0 +1,280 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/wp-content/plugins/two-factor/assets/banner-1544x500.png b/wp-content/plugins/two-factor/assets/banner-1544x500.png new file mode 100644 index 0000000000000000000000000000000000000000..5b6e2081cf6d604d3b27df7f2bf1bd3554056698 GIT binary patch literal 4859 zcmdT|`6JZd_r5cx-Y+6AOUe?)l6?u0vW%A{R49}PqoR_~lp5K_7z)`UM4^S0V(j}g zS}h@o5}^`}t*PY8*uJ+vaPPV2JkPn$ocqkgJ2~tT5|9!A00`OHS{(#nJpur3 z4t@a8IluS}0MTc5Ru(Q)-1N}8%;$#UHeb9iX7|#z$_}k1G|(v0;~AmySC%h4UYa4x zH_$JAWo-ue5zU$9r|&K|gx6m$zps5f4J=GIWtNBDl}Yseq&I&L!GW^F@mHcLT9;?r z`+Xb{5I)*aGfQ$bo{-%w`#KK=ZeG6r!_Kqy4>I?ib!3csf)OsRps` zyAa-E---H1-1`wX2l5ddZOxEgR(t zV1CcQsRsh?bK)JZa!|lM7Ut%*GxkYUYSN!fbeWGfWn(CtAmCYhQZ5Pu?CFQpj}m^q zOB2U1KvomG5nr&-vwVYwf}LA^TTHF#E^?4qzoFjthm(hGr7MC>MDU=-<2ldiX|%`A z-lw~XAlT$nX=L%W6F!y*$S(cwv@3JPS0)9b@c8e2py7?RhGn)4~3?m$NPZ1<$C;!zLHNy<^U9Q=F%|uJaE6Vc?@Y zL0@J0aL6f&5@eZt(zkRFT@4b~IPdW&jxo@gH;@YV~bh%6#pMthMks*0)~9joNU!peUuWslIQnc zMu$I3Bkx6kU!0y{!kk%^l<~+06i>^&bI@_2RcT_4j{(S3gZMcS1F3qmO`>?(m!53C zmXo4b>KR~U8RI5r*?4QE945vMYIp>yhCfqo-$De~MN@STZ}HgfIRS>eKG-Nb9Hl6Q z;z7M9&fWFPdA_U9Dc;Sw+<`$LR=4ea!~@i4E~^zHJ^+e_^s zL&!5-_xq~;6nxW~kVCS7VC2OnA2wze(Y0}ixybp+;#wdS@cOR#g+;}K`zz7=fJhCw zy7a|!^TT8eU`}UHW|Sg9l6E>_-}Br87lT-^GqZVi^t+kf?L$OcfN>3Hle8DB9I&_B zcJ3+qWj!SKQ=#t&LP8RR@Odd1)0pheC}7rNVCYll+drclu~fmGhgpBd7m1=;n~AOX zJVckD2iyf)R*#qnmc@dPA1^0cm3@t-vc&LYkE~DTK^!lB+>odvK_}*&#$*M8Lt2Ww z1TAJZg^1u!rKr#+=N%P${uTUmSwWYd0o)$6>YE59m_DwP!fU7f2;D6F`j4#vKhEG} zf|br!k&mWgco;jc@LRJIrJ(^2!Xz?;e<%?~lgPWfd8*xtE!GHIAz0s~Yo|MbeNh`5 z4YWlHPIrig=B?{0zJB#5*c&9relr=MI+JUQ9mxQWz?Jb`W4zvG<@o$_G9 zAIVni-jcD~G!eM9FBiR30GfDBdN}(ir(O)EV%AAkAlD;h5u6)gsbKgQKTdZ~4sk)K zQTv@H21?@?1qBueZU18|*oeq2BZ$irrmM8%kZ9o}k`g$wi0;B3d;CJ#@ZuBML=Svo z2{DL(r4oM7FHfit*ixr?1;dN{IHo&6qQ$jJ2*oe!Yzq`da1s{Iw9>@J(Ii-Z!NMc| zsT4l^b?^=XHHo|lPZqoV(+!8cRf6HshvjI(k{DQU7C$P4!)VrT3FM6lxAReejV{BL z+rmebB`nMeHq$>b02BGmZ=pkQO0tIEMU1UP_^^>NDzluNXhbK-6GF^SJeI&QlS=#0 zErfs2k!WjxM573f+3|EtyW682rCBr6oP#$#s7)-g1QKuyX0sz9OoWE#IUo!Y!d61* zJncmEs5#d?TySzLoc5OYZx+?@VX4AD6uZj`mIwG@A2E4?rIO^`9r6ToJ|gwazm7Yc zzt0IH(mIhADJ^}30T^V{^?iYT4De&A^^crwhQ z85fOW6dYd>mKss)VO67G$#zbwSe72C0y#HL=$rzi$L>Opvxb~ z&ayQSz)`hI=k1O!`iTIeDx{yP%F@9=ttB!pXYpB58J?HrZ`ve$8>JcHQwT3_C8zyB zF)+hB)v7AEh6)G5aG`ge@wO>t5So+rMFT#Fu&ZsI<&|gS35$w!ZsXE7#y?L2PvoVc# zF^^hjT@s2AX@-CA**U%EeUXR~LvVG{yt-E_+?4^Ko2=y{zN)Oh`@PB9qCwm@=78NBRny1_wap*iso5>%TCj&7*ry%}^-jAy z%sD@*W;=e$76BJ6zmW3zBCJbn5!#%(n)_#`{J6GjD6pNhrgz%r$0gsr(J6wLZ%$y{ z?c@Ke=5{STOcoA(#g^aJOhdHT3IP~;r_>BLrGlYE;ARY3+Re6c&O%* z0)eEC(id%+6$TpcfmF8sNkoT@A`gt&n-M{(nmQ%7l$*yL?j%9#F5=ByHq;NnY1f~! zbO3|Ya*zDw(!n>-FdVEY{vjkmk5+rA0AIAetdaP5EUIFoDDBbF?2vV}u9_!2;{a$RW?Du~b&g^C8Gs$t zcS|;=JUn%S*9{abhJyo3voRC-@hq127Rfp_rSDgaK1Ynii-`4fzje;3| zmAj1(ZiWy4aYtsIYr@$wto}H>HL9QWyC=JZLz-`JzXFS@{8N1W^x>_( zAG4=cyY6bP`fksHz1qU_bF0M)dmbt8<--wyQJ%w*)DJqAT)rnL&n!Qceh0FH0 zx&A&=!~gt3N!#s4mBM`=r97n9U}xe~F1d>pb~Ja)-T2KIwFD;~QB<0;HTDl_KbL|} z{B(pVVM3$u^{BD^LsFn!Y0%HE!jwlQ!&S1H;0fB{z6#2u@jCsMuNM>__``uY8scRc*nD(4 zBj8VE(vW`wJQMDI>sHW>6TOvBI1gbCt~4d!V$A_cQun0_QxqD35btEIu73MR6N#i` z*Yj|kCZ~})dT(4meL*rI8cx*l9pUvgW}d3?JT2qHZP1?OfBo=%Xgr{Fj5FNcTm(@# z`tvA(VZ8ec{-D|KUWFv+jdMma!dm){7b^|i5<0=ogF)R+-L16wK8LpL<~Q4E{$_?m zz_yh)&3~LBey_J$kURhP2#mUXNJ2B^wLOD-XA@Ul4FfL{YE{H8PM9jQXDgnMKqZ}X z?r4i^oFbj8H3>}zdGP;`SRoJI7LNqJ_5F7 zgG_6}D34N7mm@2D!n#!Z-;%h$-nYfF%`XowP#f;fFu>I(rrv%5+JP}{Udn+T$p>#j z-Rcd*33AqUIKN>uKONT_Bl%GkaaUuxff{=wmwTMAJq~(RaX(UZ8y)9~aAuv}WTQHi-Ts>Yi+-%WT=%n$w!c=c z_0ex(C|*`4Rlf1Jxy)rsK(8c0uVYOaI@R!!*M))|TV*81-k#u!w=-kn;1vc{MB&UV43 zl6tv86p)SQzE_N_6c+~sdSe5J7uwP-SjYY&t&+Agx2oz*O*qXjj)YbGkeeP{ms#SD z#`WZjVM9W@>i^`Ad#nyAzMVFW>DQTZapl)F8FY=ia(*ijnc4eeQHr1p`g& zhy2f(-f(GiajEMT`r>xDW_4bm)Qkaa&NgnGWyb=W8NCe=m)xuoTGqqB5MELrQAY`; zDtUMEO=+ka5%^`zZAs6{az|)?&6=(I`a^dRL2}8poYO26WNlk{5qaAP#TQhi&xw>A zw~@iKC(%yjAO!+@`TDTWI|(9Hj6Iop+#H_inA?yQI&6o~&ZKXz)P*%TMI7Op*G*8d z>7@?dOtU=*t+u4mju-uX2L{5~RT>;ViCP556-g4Ed$xRtAIBwD)(GVHS1Ch}r8ybv zfB034H27)6;p4QVL(2`!U%1bmL8;O>`c_=&k#>GuuoF>OIew@?i`B37W z&qY5OU?(deqiv40Zw>m(8XKNM$C801^u5z&!riq&d*h&KwX1DQKj4`nDM$p5I@BDk zSE{>GVfiWhyeo?lnLZHIxuD;g0S$I>HVBRLL9e@obI_N{0ID-)jwH^-coYP7*p$@k z=(%9vvE2TJsG1m-0{jJWdF0C4ovI0SOQ?^K=}E4)mTU(kvDV?@0;xz_j(hG$XivWB zjqD)O($35_a?3IX>&KShmF}ueUzXmcQ4$V)m}cj-wb-9Kl_l_Gz4@EvYUL;xlXV)JHN=Q1aSvIkv4jcYL=PzTnnp@#Wagln@sD73`Pd%pY}s zu^|J&>Ed_i-jBM!Yj{F3MwHfYc8Yr@@ihxh{(I%&)4vIEFJgpnB;%E1NAhM;LZF&j z4H}ocaz1#^(I!YJ} zhT!Sp=7Yh=fik`f$pGUxI`R~QfyzAHD1Jw=({B~h-fbi0j@|ydIaIMIg(yMBwI?vO z|4q>uDch;PeB$``U#9#r{u83%&`-MdXH->@Jdk~iN6?I^`+mPQ)%?wIF9U=95azLjdXg!D_#wxaY@hn=6sSdZPw`{ z`O$FC2L~#1fd`#flg`F$bgKFRVl_(LkU_(l(lmN77`vVw?kU$g{kSJSu-&}Ih(iD} zMDxcIn09`k%lWo9IIPGNDU%eS#F{)DHc@%l2VU_g;|VrNQJ2~NK-fdGsXl$Sgjp)3 zz^90cK?1Rm=(xcfyn&e+$gsD$KXuX#S=QllHN)?3OQs>|fX~d!AuU$3OaUasoM`1E zU)5N6G`>vQslw+Paq#@R>2q9Ws`_y-nc(wRR6`eq`^bQ`gL20EcL(1)TA@%RhqPIr-&q{l=DvFF4lMx>ttcc~V3m`3>&4&_+HmE0Yw>zS3 zVm2R3=vga;q7-^c(--hPzse}K=d`#VC(um+tpGvd))};>Lywh;KIy)G8!Vwdf<5Hv z$=26T@H;U+Zdh2O4u=t=rNdLXPPG#Q#NdT0DRw7uo5Ov;6AyPFC^pT6$ z-=a(QTQyNc}jlm?^X#`P?2z(_t}1wj&1Zf%H{oIZ~}%UHnKF5G zJv(v zeB{B(w`|K(Ho$B4bMgHni|=Jq&^yDo?vOCLt`wrhzrQhvXNwAKftv6kw_!W)ThC=v zu!z?CH&TLeVi{|Do^0G3Y*jgYd!!c56JY z?Sgag@N9st+{S$RZRt>LcK>=c%0jYmP#_jz6T(b@xa?-TO<}&mIak?M)-6A;xWIn7 zL5YSq^=e2Tn#KCk5SLhXT8u#jmp7xvT44Y|^HD@oG(n>PJt0&`9Gl!{>9U^&dnmLz zxfoJcJj;zZ>PHLh6r89{VV9xt7@Jvn!KIf5SX-Ii(v{hKsV@@(IEJa!zd9F>QyAaKs-hCc8~cMzw+WOankG8i(@necYC; zBVMparBUa1yt*26(+8Ye7nxI@c?@T#$hMYw&$_XT6g~GuT~8&ad?T=Q8VeM9#n_uj z_bJG7B5HN}x&R@qI!Ur}U7cm^oiC}+%y~tw75Rg6jkeXDvbHnQ#pBa-bZ0s*U%c{L@*WxR$DMCYaWEv9cSDoS;z_|~qZ~In& z{_HTPl@2aFVGk8j#;RZwp!{-B^W&?c;fCPqfR@qq0D=7Oa7v`}4i!JszbY@a2#fVj zUO~872fOhP`=XZwLK169*~_2!O5@ccbPD_Y?_2VXN?)hkGXd<~Vp@_aR2_cK4W8DA zs$*uzp5P}}gxBVOQ4P*e0{icM0pSo3(0Q@N0c?>6v#%_cXt8&$C-n-sp+Qg>fF;xq z@pDG02yg7JifdBe1r#-Wg4j1BTAFVkxH9fpfI$2vPvnmPD++2_qJs#-^>A2m%v8i3OdJhync!jcCFXilFtb&uZ2{_F*!K z&^pC%H`(5a#f<*aoUhRCyB!2Jd@Di%vy{Q6 z9iR1Z>;vYc-o0Cl(WE*Y5G1VHISGBP*C2p?`q^~h(#v-&<}g4{s>K0TCL_58qf}cK zbI8U6Y;i@9n{9Suw5XMKv8KJ_~Z@Gp9x7iC-)>Rr2vOt8uG|CoOC fZ}9{F*(2&4`aLxGd!(t#Vju)*U2#Q3FID7!go{#Fu`+^2s`}+Dm$fr-ALjEDBR4R2G z`Z@x4M@B|;u}3m_R=p_vYV+<~zE#G30~RNbEB46cV}9fyNq?0$ceq{Vbt@FdZnOxy z}nJ2hGo@5G{1OHH_Z*p=H%G~>6 zh_;uwFi_so0dZ((2s($Zw?N({SL|Z*V7{%h8=Ax`Jcw|dOs+WmJ^&>wxuPeZD|Tn| zbjJYz==_gw0CrQUR1mQ&PR?Bs+=3Zgf!i#+!MNmultYMN&`*_JW3ww}i4s8KuLVfS z7B!*sN$>PcWw7J_${(s_@B(NC0k{Ls0$*UT4us%4a2mG?9ssZxw1S5|0Mu=shDk~( zrm^8udC#>-d@TUm=8A{AyATB38yXmJI2ARk8fqm3V3Bb)fyuIe-OXezFKCth0yq2} z$g6;BgnTyv~ykj%iPL3ZygVF0@4zjA)XF6NF8z%FpMsWQ6&(i^o^!jz-Se z`^C`*Nw}QGKXwf$y71gcn=@zLF$~S?s%|U|SkO=R*OVxICvJN4UkoZW69i3C&HBZA zq&ZRkS@I))WvoPd=}objf4X8#NOdW39*V1`IhkEkX3fXu@2mhP+B2i~ylkvqBfkwg z(FV#~X}xi7f3u61PMv?9qW{fw!;)h+DP~Z=JkH zo?`v-@t*@Rf)LDS=YdyYU*(&u{p*%iHt~*HCqanJgcoF|w(rll$#AjdL`X($j8j8o zhCC-bwQWD*mve-1WX5N6EIq=VQn+XP#HpeUHFlFm$9LmMTVm;X40X^mPxGdZ+9FHF z+!dvrfIhtcnU#4;Np>1>oAoQiXe~^#eN*sbZ}dOZP;U}Sy2G6!PCQp1Se|)1?KeV2 zvpBJaK|`2q!nbH3B6O)!6XTy3Orrq?zZvkBLt?1_!@o0lAM{K42_+`t4pRYIlQo{A< znTi(ek`ll6)7zNl`}>q&p|eFRX(`tT229%BHKnh1PHn;a@yqmF7N4Y)eL^F&FRZVk z#-vC}z$lq3wcghpC0ZhG+FOsuCKx&R9?_$iY%q1uWZKDk{og8lP>%@*7w~1|Sh3Td~L50q)>HSXnCa_$Uwlk?GBL|Lp Rj=~p(gdU&--usfC^)Dapni2p2 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/two-factor/assets/icon-256x256.png b/wp-content/plugins/two-factor/assets/icon-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..3240b832c92997756aaf75e7045372ceaef18272 GIT binary patch literal 2350 zcma)+c{tSV8pmfCOO{M=vK^YTCNz~AZz*Fp*}^DI$t0;x_0nZ)(+I^NNr@@NYYAh< zAR|i{Gb6iXX~uRYTb7WVhDP|E$C-1^_5O9P^Zny~zW3+3pZ$0J$j4nB6y-GJU@({> z&e7Hb27?0&hsjEU<_gUl4}(cyjyvP+Kq?Rj+S}VZJ3Bl6BtSqWj(@@%1PBz1&EVjm zxa`A+58^Vh5f=c`*ViZJ5Crw~^oWar2d1m5OPq?Mct~qodroy@1hxKbMz!T5rfzhJ z`rTrsTXaMy^)06*?M+*;*3^yb#Kpxk#EmE5M* zwv&{q5>}I8Oi3D(qi~ZJ$7lc>zFk-k)&dH7U3WC891z)X8i;ClivcveUkbc=!W+kw z3c`yjK%!_Y5X;%kfFFBW!RPbu6xK1>%@QG0K(LRPpf|Og19sll-mV?V04X?H@atO8 z%W7&x-l79SDyj!5kH-TM9ajco!Mpd8p+#WSnHN>!`{A~<8a>!py^_P%Qr@t^6Mz&E zx-kPVKwuTI`S>r1J?Q^ z(f<$^qR=6z3R;9_pb=2_3W|aJAw}RA&~?ZRg7!;7B@je}e3e(BdI<7^6#fB085=Xc zg$_dHpxp-*K+rUF99ZNS{Z;{~e|rsE$sS37^%;*zsb-uGzt)7rzHt=2G@ z)HKf43V#DW+kk;fSixW=dw4Y@rW(;-r$u-koKvhI%fPr@X#=+cnd2&)Uqd{ST5w-P z9X~Xpk}hu(drmDrJJTvpHI_nI5)>;xwOQ={tP#q0(q_ndalD=zshs*MbmMTfoX0%V z(1J3pp^j3MmPH>WrNuMk#Wi1x5nh_ErR?`ybTY~^UfIHgtn)=wh0Mn}Hqq~$uM&pG;M|*v1mE_S{(Z97GBJI~96bPS z*{{~0aj&?^cqPdJdWBXV2%ch`ZhuWzZzm}R^j;VuMmpesazN3qqBR9zh=qpys-6a5d66bxuCBcLJ;yNmPDi)oyVaA zOA+_FwUGyhUvay>vh6SWUK%C|CCPeI96$Gob>(eNdgQ`#g#5!7J^7zk^vLvHnPvRQ z`t~!JWJHvydBn10Th_o4TrN+VNt<7v*qa{Uuyw|)!QxYx-F^gBkIcj>s{71GUv`vJ zL@%cf*B{ARb35VD+}%0VK-cV+;pwHWC{D+J>slA2;aB&?9kzc`gEC6-kmCAy)gX}~ zYA(Jbx~p7|0(VdDl|uz2YVStHrx3PqX&=u=b<{hh5XdfV28kMy!MaUe*NOKKnVM*V zLX@|%%s!NKA4bA5coaLIzY<1F_y6gX@zaj2q-kRB_@KU#EYMwz`{?)5|EEL7Pa8Hv z(}eG0Yd=n^i^_bsZA_O#Gk>f%($vSZdSyOR$cW*4@Kp`&ROlZhI6qd9yuK4PlApM3 z79C=f!6)YD*eAH8j65?hwPOcrm{i~%93Him8L4=BA+ z|NC|f%qsbayfqSa#2OjX{|1fN(XAt4W%gdXF&oLnJ>p6ta7%`p8f>Cea8}8kB?c5T z1iV{U9+z~a#VW1ENHLHgX;6oQQRWi7X>L5C`c6WI9L$h;|0l2rJlp>Zv$ z!}KISXv|@l$Prpo*P<1TBNd^-KcaOai72@&Xfzi&mirfjj)F#K7>sOI5I6j?g`{T@ z%N16@k9c6ppTXxM#~(iNVVOm-hE7R^>^C$na$!|Ra-W?>jB8$+O}&d{M#o(#m(-9k zYAVzW(nfineGWgl>CkeH>cS8T-%Egp!d)3W*@Zoq?mKHIOQC4hhV z$oGQHwVoIS1RQoont(MLQpX0V#ayaXktY4vTlwQA?`QX12UZO(fsjR_u#vF;+XPWw zm~s$9ldpfF;g71O_d2tLzhNvG9K`sXa9uRER(+u_()8c6MoJ)z`>&DZDrPI}q;7`| z=0u%ub?w=rm(f3+sPV}yOhj|%-f|T&r_bahofkY?WtYu4{OA7-V_B|AOfux7TLc

+ + + + + diff --git a/wp-content/plugins/two-factor/assets/screenshot-1.png b/wp-content/plugins/two-factor/assets/screenshot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..545b45ee70dea58f9fd70c7fee3e85ba67fdb683 GIT binary patch literal 175365 zcmeFZXH-*Nw?C?)q99_!0s=NbsR9DhQ7HlmEeX8{QY17f0qLRwA|g$|&}$$&Km??P zrXom@o)9`BAdt`mLP;q9&HJ8np67YbmpkrXOCFqtD(fxN^_qlwRDi*Hb4Bv1CuZol50w)Pe`+v{GPx_|8IKVA-P?F}6M$C>>Pynyii zuXDD7|NJKSxht^a|9S2(TI)ZqaO`Re{6DXH>>lRK|2ij;@W1XZ2K&EmK^d3sMIM~UeC=iRoRm7vv!v(|Qh99-@> zoB!iOisPLW`+nHK;(y*s%&;M53>94e+eHqND%Y+$H=x-kS36X$MH|vhz#3=jmDKRI z;Afe4fC#^bk^`xJZ_*3$%V_^=$h5kGUU~=*io)6vfLy>28j{#K>X#&JG^gvMd}{Aj z^1U+0-&6$fm>+qyvU}IRO66+k9^p%Tr< z{p`=LP}U1NsdxVjI%K3N_^xdJnWUTSDF$pVCrddIe3mTB>^t^$m-cqa!8_!=&FHCFa#0KI4HK!MiiTl%D<9-O;6>eBRw@tKGb(6JJxLUF5uG z^(xxolGu1mM^LdVQ%bhDUIv~#8)cm{$^Jpk?`ujau%WQ|T2Wh8bE!>8puUT+~M?QaL5iQ;GT6K^s; zL47Oixdk}SMyTrqW?4((3`qAs6__u=a3sGkxl1?;|6BZVQn5_Q-z2bt9sTYS6CLPH zcpTLC%HHDzdDJCwZ-ZYmmdbwF>BXTR`Th|RQ}$@e-Dk^>DqTkxt0qsLE!c|-X*1x1 z?rj9`8A;H__jbnlO!D+Ip8bmOU#c^L-5FNi=~H&(iN^{)+F9$LqD%02PCB8M~nv6638wi4_7H|P?ywYfe3!hQGY&pk%)p6(c2B!D+y`Aft0wAdM3 z@a}5H>U4XOa_}xQ&$FM=!P_~Ud&venjl8>$NVpZOVYZ+kyxm~ay*E!;Mj)|G5)Bc?DUB^Smxk#1(8s!wATHgq5U(90iurLcSso=U3s6y z_emY+(SGEet+427jE+kx5nSZTPiG6>i;Wv$cLN@6nHFNGd~5fst&Qf`yq6@qA;zJC zB&j@#C(15>V<*!}N}t{FXa@!@Tc!CqSK775yQRh5IztdKNp>h3eaNC&UE^lkU}Y=# z&vfXK1>q3TO;-ro-lULlh!9|?uQN@)f!1#(WK=xz(Yg@>O{s7lr8^!q$mKkNTK(PO zL@p*}0staGWv5|pW6xCPkrCRo&JWdrwn)Hs410AWeuKG!I-?Bcu%z^zYxwpJUWM%O z%!vmYQAQgr?(zA!V0r|Od(t~6$wc0E4Me~jvNxx~DH{|&N9;tq$|64du;I(;JEcOOfGfA`j3i$4C zD|8B5Ff%);t3=z3+Qkl@#@_KizVrF0E))X@(|Yr?1+~FU^E6EkMI5b!V+{lq0%y{E zY$4N7<*liBZh7zd)<=80J2l=5LlrJ5H>lt@hAUifVV@~ASmY>q`&34u|`vSC+RsiLJ`z7qgR4JEpC6GahD`my2fH2D>Q zq?!o%xrl7OB8oQWeC+qgD*J|zPt;8USV8RD*Ul-5TTqwRBuQL%T#Ik4ToN*_`p}We z&Fdd^+N?pp?B0X0jzH={Xk^k`9{H@%_O!1FRa-3Qdc^~26jHIGpS3|puIX1LsVE7= zp<(Yp4A!)49XhTBe*R5ETta%$m!xk+qTpR`_Vi8*k&4C(+*b_~aQ!!p3oc4XEuSt} zwQ1ZGILo-J5F?KHd%#!A63!GjnM5m^D0C{=3Br365$4Fh~x`tp()5f4o0;}E#@W-hmaoF&Fm16~e32=_S(G&KlOEObQSKD6hPKyQWTg<&Weir_W zJ`v6f2qXFs@qV|Nw)A(5vfZiTL~QT< zMhz=25mNGdK$sN#aL3<87;yphN5ptjrt)e*7-?vN@Tx8+DjP_ulJ=m?MwqU23~AD* zY6q%9cfsLpj*!|!>1x(MEGh!*wq+4@UW+5uV1ZxBbm+1)D?JIj)q9d#zWuPUX)UqN z{O9&f#oJz+Ezf0kW+$VPVNHd;V4O;=f<4YxC6exWJBlR9smQo|sOw#teEAntnffC? z6_0UMwBPRb)@MR>t@tzJisI*jhsqBzvvc3a*oQ+%yu5*ohO7Q`gYb8NrU+tj?gE$8 zg8a{+b0)#IfEWyA5Sab&_}|;idzfo5O<}a4h~L(V9RfpnLHW)byj?TCqhk+8<@I5p zW+gUFbQ-njJ3avTgxfKaKr~_fvfmhz=8f1wmI&11{iY;Q9no%;Pyh_NMV=SA6WwOq zCk*5DU%AzHpMt~{mkHk9iMsDZ77uW&caN+%sEGXoV_JPLXf>FjA%!*2^E+M_!xJbh z&xH^;L!OuE%dPz4rh*CD-I~!oFUIZANhWyvga*zfU=8C5JMp@_erxW*^t277wZ&~G zoX^CsCWy9LJyha(!DSgNKGR=2?D!qYi;6N%M`Eyp0x&#V?r2?p ztz%^W!uIbeaLrcGiT9hdes_xa!fXNKGH(mp3qJojKC#$?Xh9T^rMtJ5uS_a5@m!f| zZBG=57aINK82_n27S0Cv-C+{aAw2~IbM@uB-Z2`{gAql63Q$5)*=I0bvNkz4>F$t;O+_rZE2j>Oe>8gP< z>c);X&4wJg1fy-T?M?S&YI-UXKdCv{0)dAM+Z%#r$I96MUi_e zcYD%Oy8j|pFYCq7HV}$$h9p1`?f}nFoquJRmPMT(Eyb;VYq4gj*rLWTx_)PU7_b&G z{WP1gw>`7B8oV2=1uq(0qT(A|e@k^p(7=s>S70^Rvipo&C#rtkY{w{qb6Db?+cAY3UsAaxQ0pVU z^d+!Cu99pHul6gFOST^01-r`SEHJiz`?-DjYMf@_zrmfUA&*)-<8b88`A>l@tQW*M zWFL??yPOn^*b*ohNSYEXlBCzWjter>NteqDbsj5i3MwLJMl_td+vBK>?zxdjd%bmGQ$O*#`WI#r8yaei7LCMgOE)w>_ z2PN-qRj83h|L3)$rVR5fShG1HOua*{u^1-NbAg|r1 zK-EesK)T{NAp`U0)LnFw)?V5k$Wie7GRR@0SEEoq2VG(q|QQaD9Fd$AE*w z#j|;rs({r%JyoJVi~YPH=KX`2etGs)?h+?d%(&`eaK_)Vb!rk8Z5dajR}Bk&USF6D~L7&(+J}b@C6ooWE#_xW!m2TQ4{lALK&*Lz9O#;Mq>5d<&oR(Rc!$UG>J%Z$&0Dpn$xNm)?;8AT{u3#mo74teo{+R;!!NssK_9 z+-|D%&4?MFdloHyw^+U23zlo-V$Vyu*|0*Pg4tSb+j*IMfNpcLU7#py9{$WeaB!-| zy(Ua&cH)vwn%sg|zAvsK`AoXYuPGU(aC8)3;Sy6|PSs#~5XR3k5lc{ez$M#TNX_Xf z(+yVSq;kozx4~V`j>cwYRJsoHR2lInLP)W^yLz)X@C}DZJmVeq3xlZJj4slL@(Ib0 zJ5AV#@6o~DXWbxw+oSjzV)#8Y`z^kl+-Xb<9|GbA0@)-ExHT z)gw~^v8dOeC8ut=M|{8~##MjViErjz>)`Rd0mtkp_p*6Ha`dn{bd%IY}NXg^xn(_Qn&I3=ux^M8& zXUun|VY|JdVA?I3N3m25b20&*Dqacp*E)p+D?IP1=<^0>$De+mg!MnGJh?*ptU$_W z5G75=uQ^56yP2=v41F`_Q1_%Wcs>I+tm3BH!%mmld#p=Wdlk$7KymX<=Bo=NrkXzrUEQmuHj=6EI=G zqc1D2C*H=&{)SDqz+Ds-Z}3j)!b9+B?YRRx558)}@4Tz()Og1!S=?JDwW4fTHROqc z%&?9Q#Hpj{U&5&iB-F!)dDND*ICMe)KCkX>wC;*{Bv z$H@iqHqO79d40`U^=llVL`4bjJ9GruPi$Qs&WcM3^m?0sUn_hUz)0^;f^OpOmsk5G zh>rTt$*Ui!p}b9Vu%o1HC^|FcD6I^{mz>mA1X2_{B1Aj1O0!MVAf&F)H;LUD!gR#+ zD7p>KJ%iNGjNnqD8-E9W_Z%GY`OM|*8FBKyO#aCrXwQz*t^^GyU%N9$IQ`x9%Cd&? zUqRYxjZWU=GqE_^ch2|l-W<3gF3rasPgS;PGEFWRf-w*xgG69?NNP2Z!6oCAcZL*a zCq(f}=1)HO#||jIZHCut@cVKtt03HxI;0pWfgqC>?r&r_X$Qsw=e?x!MW^Rpl%*F? zw{%`0JAye}I!w`3b3-{sJ#lvBKO$afCtnI=525=GRbGW;V{;GbCSdFP$pu`Qw8)WdoP~nM=l1 z7y%FiH%2$Q_O`p?u!9J+U;-f25@$^J-JGS8^4LEeL@YU;_Zdg0wA1LAm5kJ#epQslyyBzRP{*xaAyH|ybt6;Ze$T#ZFq*rB zQ7)6>ZQYDrCMgTMdAh7HtSHKM;44s$#eAn6nAdO+Wuy+wAW4*RMZXOpvl6Wr5~MRu zKZpbx7y5HwYkNkqE`Aiql>VyIHpFt+w3Z@?MI_7myXx==n22L#C-*~obmWm0n7s%Q zNT1AG{d&GWILqLl zI&zN!Xxf64&mSVdpw70JG($){@Wz9RYyHDZN43`GiTFm{$1jf73wo8Z)jmm2z;3ae zmp}uJavn#W4w+AG5nA8^umnRFd1Dlov*LRaR#2IAE=`9ixOs5rAYJ=w8c)$ijjPM5 zLm!(BL07FK1fe0ix`3fB5$~q4{|&m;)WcA;O1JF_Te^FZ zA;m>lmUbwaBw6!}TKiH?YG~RCQANjRCtoIq_O!w+{Z5mook z&kxdl8^hQHbx3!yyg{22-!DD6i-^hqvJe+UOmE}~t_tpfk&B`uA|J7p31%dN;NDz@ zb&kMh{YNd@43kkR^GR+FOXBmZ*LQpc5rK;*@l4AdaaajkZmT8h#wz4p<0cjtE8n6T zo?da6jwmL5m`$L>q_PZELdq~Nwo~lP!(`D3-diwKWJu?c5S@lz3qw{u{p1$pY_;iG zqt`A4xGHu0iQtEEaahB|q2QlCmm_sj#I@P0(|=2_tP|W7T;HiN=L>b}e91L!hNkl@ zW994xjc^I05(txen>;HuAUb_LSvAr`9rXw0NvWOda z^7XZDFPY1ApE^5DU-%^wbc+`?d)})!_-YTYbJIkq8EKDO;Wf-!8A+dC$L*36f(72! zjoU8WCq&s%;xDEBNiZI@p)tqskZ!iOz^yQXbgr+96LAls_+Y41tCqW+JHy-~8pdyk z%3IW08w7*!y#q5az%G|_l1p|-S&hoj_N1)N{=V@SD0M>$oqVhw0;R+ivKi*R(2;3u zPqQp@vN>~VqNM-`A5}aHek17?8SJpc;~-z zl?fV1j3?oYk|1EB@;9q+#`^VvmDORe)NY5dVdPHfFEUf6&t6Z+2K*2R5HCmrtMdB7 z@Jwf#P#pnD0%{~T$tTv%wGtnMpR{|NGA^pfsCH^=(%v%#_#TU?O!V%zxd<7$XSo8(6&PoHBpw=iy8QJQoH?rZlGaQS-*9X;>AEUqo}pV38^=O!ukp zii{-?c?0VQBeuEPz2-BoHXaJbSM~GKQ<@i19~<;WM_rJ8SyrR@>3>lqG4JgtbT;0O zv<;oY0yAqB3_nWKkc`t!Rq!ne`l%j~q^^)~49=>KJLK`w-Ft~dZa9P)>c4v-hD+L! zClL!6v-!}=ubDQGT}vepNxxhke)|RmKE2-#aVbcv@vfP}`z%4)QgO1B8zg~ zDqPj~S%rR-BkPP~@7~m}uz5B>zH8KS)~Zg`mXfaM57)Jmpn=rP^MCbw{E-8kzSDq_he$EW*w57TO!INB6P3ZJ|yOJ8iBgSB@6FT+@Tlcvs`< zHRMCFfem?8^*5V}bWtU~i1qB8s6%rt#+24abS=XOyw9meAf=KJ`+mHhthjG`P znjDZf7$b!(L?^o!+W08{ksj(tWavwR(A9SkmqCn0W*RE+w; z*gp=5PsmUe&NVo=MbZphpx6TaBgtw4Rqi&eaN6b9m-j~YE@MwAEF-cQSut1{o%v`q zgl+ztRRcFjIOfF4=uWw#fdYru<+&9@iytB7m|5vwm5cIRRNeT`nvX_awJx@Q9m=J` zb2<+%*4Hj7GM-d?X;fdn@b|VW8v^zIL9`WX9m-6JN-qB-L?Q4Op4PSa@*HQ4;J}RM zZqScRl{s9uQmeb&D1i{CQP0~b21(ucm3BNSKFki_fWKCWNanS;NaSGn%!qYgw2b>+ z%<8U!X?sbr$@G6Hgo!heB|qg(w)p-Ig)k&J`N6NpZXJ4f{YC3FO`i6a!={O0cF3v! zPEX=6QoB)+A0m}LU)I$Ll7LNbINFoM+`2RGftV7B=+lubMMv$>X-G;9EYzgN8#}lJ z@Vv6xo6w#(eT}L9)>n@eauPsUrZZ;a^>3r>W@OSzcQ~IEp>$qP!+- z(RcZDYt!dm!aBum^%IiZL)p$1*zwSD9S##;3q-rw)Gv=NnXXtb1N%r2s{+g2~s*@kLW^1x-5--PN-_(bA zJsd!5E4JBvL#58n=-^SPd>!s*^y=~FR=U@u`77c#Lf)p_zSaFm@ttOy*AJq+>l#8P zmn7ph2sCdHhFduM<sTns@7?&b}M6dEgxiGA!rG^>9z#QFUGG(F{RC)FFB=ABUSFJ zGhIfoaX#(DhlKzYAEw8x9JI~5x2b_9{)=5+&Dax0(?Lpl32d&0Q|=|(A)|)GC@iH% z!-!pZZAR;2LdrYycrI|QnXana^wLzZhU_PFEql<*nhBa70OHSXU zWe?Jiiy2`7%@Ll!@t8Ffo4-Y&CLUyf`df^2Tj`!K5Pe`Rm>M9N58nieO`L?$e&3`1 zXcYC~M?K~iY{6eq= z{~oy{ApH4WOjPHBEfUQ_cH{Q&;mGBO6*1fkAK%)3;u?b`So2wUcP|FE+W4(43R!T< zUM$=7)@Oa92>4fdOj!9_lae_sl9M3_R^}S3dl?!DF-L8I3Sj3r$EHNo*}%573(<@B zdf2@DijSg}mCYBdd=cZf2vYZargAGK{#F*Rz|O{ETP@>6KpqSy1H+d)B{^giS+ipw zX9tOxX1}#ikALpfRZ2jdev*ZZZGZh98~P@JST04LGvfPr%Zklg0#U4ieBcsAD--@5 z$bMnjA>Lf_V6IF-4`io()KKqSB36_z3%J+Y9-a?HlASJAy>r=F{#p_gqcb~TPdxHq z@bY*Ha;@&1E%M(0S_rl{68ZK%xBWhU`fT}Uwpyg6|3WzkiS-wnz^>U<(418DpPv2WiAT{tSA!^7g$wgdL?N_Bvu!5SC((rVqsH zns5Urxfh66uYa$O?8Kv%Cc8`;G__MKL4AU}>xqw?%dh2-cGvh!ii}G8VoVFq7bkVI z&XHe)MmmgtuK^+Fei!4W&>#-SE5#Hd@)Qju6otB=CSc}y{Q7aVD8~ojoUU@xngUE1 zjeI#}(qKsagFCdPYWQfgMVxbL&~@>(Cw-OVY#@PJO>}}bBb<|0bciYC(c{otI&~;J zV3e5CqYEu&)Tju!bDPpn0Be?396>Uxu{qz5HnY_=;W(qU@oxP^vs91oHp2IC*yIp0QFru?TNmLRR%pOMKh@) z2>W33YI%G214YK#p7u)M?UmP%@*-Qi4e1{*#b6diNc3B=epQ>MU-ZUyrRv29dgP4h z=`DZOPfvF;k#4&q0)HhcSut3A-3?s9*%T6ciz`KKbeal6HBam9g5$JD9KrS$26ER)m+E2rH!MleVdv6weU0gNQ-C+`5m4) z6phq%c}CRW5&LyM@3f|rnpjpwcvN~!5w9EVY(MUft2?x{Dy%Nn9jtO?Qr9}$Jj<@Z zq&}4ySBXWj{il?aOo7$L~I_o7=HmufB&- zirFiTu`i$u^^pdMY8q&#@8Xp6_MsfSSk66FzE&8m>@ZM%u<# zpNq35a@GW{Kf=;Kfab)0CoEe1r}}wP?$C4WZvM-^HSS>T1`|~Iq1!dteBDgPI5JG6=%*$pB=Zf3NwyPAqc= z8LLIYswax;@L1MSHWE821MeUSs@16J<74KT1XA`TX0Ml+q7j7^&*bc+Zaj+XPRF8d zm7@-#17LOw82p*MM#$1FTN!z82V|GRebOv^%x+wRaUhbCU3!D_yC7>16E2o{4vqyf zMjy7HM_DGcmGhH>F7!V{BdLWcCl7HeO?wqtt%KTysR)`EpN}8>5wC<@bi#6(tbCRZpJwJwyW;3*T&SKN(lESE^Wa zltI@%N3Aqz@C5f3w=xUDii|$0v#n}}-BHPPxny-_5anF`JWbwbF1fnwc4su@*8=|C zt(=QS(3=@I4Zap72$xzULTV+X{*bf{G04yGR(;LBI6iH|0=;{ax#vYp;Ud8fKR)yT z2pqV-1Zwb?0l6JexS(7xj{nUIDsOT%;|sqmar=z?0r_X$J(|^CUK_E_$Y^$x`+__{Y$Fx3y>e^}HN9cTl=OCKnZ=Srr2Du)onEH3mvocV ze8-&${yGz1*ER_Rb1HYaMl?5TKrIMV3dE?=Oi^d7nCnJD-?D#9h$%KMH}&x@aHwP~ zAAaSU3rS$|#24!p;%9Rg=T||JfOEAfN7t2D>+2KnF+DEVQJpfNGkdnruE zAtA^tIurs`#jMXMcUR;`kr#rQ2Q>9wEg^j8TYvSZ4!#HcG~{cr(ra-tb8%SCxgpMP zte1Qo^|^x#j~4wY23d!mx`*q~czySprlHdVNvc1U4y5_Q=vWL0-^KqjX+Ri(DHdXB@fIaMFPM+MGeQT#Ut% zci#$`e%)c4X(u{aVe1%!zPjPXI-91icK~G>si*g!>B~JH_BiCTjKHp^Ldm=@wu}B2 zXRe9=f~_p-E57nrobOXf-+fTWuxR+D=-5VF#%aq8alcOr}ys9KyPldnr6|D?VL}79IW9!RD7JD!O(46!xF%!ND+r7#SCHuZti#aU@_4% z0c9L*?^a&_q`Lu9*MZ4D-4ik) zo-@hByJrW@0FK-)QENhIg z&8u`q;|?^3{k77^iOym2xKZ;H7CFRGSDjvRewYYM3cmAXWhqn~Fif z8#Uu>JPO9w0i<6=3ml=s&MVnNqmep!?gYHG@N*^BLYMFQXIcMTS-YNfztWrAs?soC zngX21S<%i++`HrXLvHFvj%)^~#Zwg=IGj_Xu!ilPQ`ZM2bnP(X*REVW5!ZVOj@iiv zsIDi=Z$&qpDldKijr5_bxQ9=IhEc8ar0txOm43#V6aUul8#6trIYKzrb*e{1J0kTx z$@WVB=9f!&GrqmYp>9nUo@b%Jo;5lA6TCXVZ{We^dJNVv;-p)e2r56)baC~&++PG; zHCvoyk}c`1{sob}waw{>$l?9T5~W*}H7Dga~WRZ{Sp?G6XoiCxB$QMA<-oRkj| zy=fjePrrSaNK{gVOCW5DDnV||O%6o;Kk!nvN!@|vcPrZUPdq3k59+3Knssl* z>3_;Sf-FhyP`{{#!H9d$yjZ-hcj=~povmPXoo64EB9dgL^AAfwseF4P{w+ynpqVcq zD`?Vu_q>N^c++7!z_}ox!WQt`=23X|(W)VcU2&~j@zMyWW;}z7!=Ax$-Y*9=6)s>i zHC|r_&gP_5`8FZ}U@;gESnXh9K3Sj$1OU52d4hFvNMgZUU%pcXsAKjSxhb3QAn;C3 zuF>8C$mL-a5WmS`xGi3PiGX{-vju+|O6XG5*$B!}XIAlBxX^KP>QhE5@eKkPyqknv z?wDgoYpoUv#la45l}+|)3?Fm&Wx zyx(v;k+YnVF6-aVY2Xyo{>?w{3^)mjwu1Z||FC{&DuA>=oSS4xZ_W7UZse#03LM`VNxf*R1T@frZ`1uA#kB!Sw%+k7TaxmiDbgaAwaV+{M8%4G9E4;&FX)EQx)ndMJ=?0wc=Z1*Q3`SmY0<$$Y^r1tXb9EiDh- zh?quP$n@-7|ESCil)^23^upVCFGU%L6$s5#KsT+oy91Wr6#yy@bzaC`hsCo=B-r*j zvc>;H^sZ^w^D9r#Z2M;;t!T*m*jrb}Tg$3F)vIHUL)oasV6jGxcb6nx?`PTYxjCW* z|6mCQt;Cm?o-EA|SGw(s@c5wyXCK`nfhz;Yk8lY>#1m|q-hj`yFj5Wk)T&2zwqGjX zN3@sxg5N^KV^<166G)ma!jHx~PySP&SFXNrA*I}P&vZix}|$n!s>>~lYWEB zrmCgvHC3~(P;qQ!9fYq19_L^u$o~%qO^XO8`L_{2?OVjz@RQsISFv(y$l1Pl0bO7j z&QU<8O-3slHjIl}5WE(KP@tZJvgmXYp@g_*$g*y5v@=UC1K2~h%3g&fcq9OA2}9+K zf7?=8t*I)eJ$`ZOelG{)pKc>tq-Y#A zkpW7U?>E|m+h|BG9&6wC!;eLS>95rH?{_znX7;q(4enfAdaSFIcMxW^I8xO0ISW*^ z^D5hgW%I7#_$gOAPRZJf{pUAdja2+yc=%t{@c+IC>D1q~n*VjN{})-NZbWSfffls? zIi`+*My(j^|NITUIdu>m5L>~&pHh7e;X91pceDM^aT|S2 znXytymSz3#fj=Ow0+zx3No;}t&$-tJz|6cqL04d1yMIj+&%Q5Dg5$t}zs>pnRDyoJ z0|!+8n$P{G0Ihxp4;=Vw+W!?8FCa$_9QZ3b{x#|UpZ&q-^V4f+$+DSF`JnB)DTn?x zCY9&^Jy5Qm^_#yULHLDRE?^2%OUL%*FZs{v2cFsu=z3|&=FR-CG5YtYyIuv;MojHB zSO(s#!Ep4#*&omEJ@DAVKHdIyE21{G);SDxtL%8>lLZyccG8)7OCJ0Q**=2nFC5MD z$EOOPNt1FYW(c3)5@&hL{MSrAH#-KVlpFXKqVkBZ)i0`fgL|2IkYE6f=30%M?D`;; zzaxYftp0XE2ecx9iMMG;nEk>tn~7{b$AD_fK<0trjE1NBKd(lZfuI=Gb#Dsxmis?$ zdSmxbF(X3|R^pp-a@3Fg+2es(&Dk zfw<5QRyk$+U&LFIzyDQQCUDEIV$8HLLCX_iDvMo4-TfaeU-E~9do*l#NYECUSHj1W zwRzrSC;1^B-^W1NTdo!RWrcz{tDvns&b{?Tna^a3kWo?VK{U(XFQ(R-BS8bbWO{gg zPekU?T1QZFcuvqzYi`Wp(a)Z3V-XK7@7l!E*8r}{SaIdp;=Y#MQ{ z&+$EWLvihifo^TUR@+z|L)vvHb+al9q!orf`D$-(#m8a8qc0By z5gMfWf`U@oquuZ3QWOndw-a5fV=vTv#x_27z)GE)#OgP%^(85JZ9d#C2lW-ug@Kr> ziJQtGA|Lcxc?Rs^yq5-@7~*|s@L^766b&nFJ#Ez3+x)IPaPGeb@#%2<1v>!Q1GWv9 zOaf$CL2(dfIY z!+wu-Ek(`ObLg#c8Hzdxig(!k3&{vg+&i|jd8We#)9E})$hU6SDqZ%zjTLfn(6Tgm zDsL@VF50fn4+mfAKNwFe`O}&&KjJaeHU9_x!apGm!hI8}DsHGZNl9r5zG}LFcfL=EK`Af+gaLrp-xA(j3;-a~gdw2x( zF)z$B#STrj6Te5AD=S|RG+kNkQjV4yb`a2+wHQb(r%JsI7zLFk%3JWc6mq%#>9n=n|UH>N*?T-`55A$+_jw_XbNJ2|NG_YtT$7*ZRjC zNfkS<^&cDIO*U4$f_1G+)Lc`!mI9Y!iHR`|?*6u4viaQY`*?Yzht1p?+SQrUo(7ncm!x}n*x<&7MJB^_QY4e3 z$U975bw!NR?h)Djii=}_mR=4Ct+QHjc9oE{?caCC&4DMS+8dViFHm8N`ckW>SfSlc zDH;~7C_)Tw!vKoXb6B^#ly6^;n{B%(pDp`^lh@J&OyB~Nf^ z)wl*(6Dq4_R?32uiUy=GzqrxEh2um_t#rAr#6V%JA;}us`OIY#>fLuRZlEL zn8}PLT-UzH;C?QJEQFGqm3Idn9;&KfcH@jd##KCLHP|3>XKN-SsmK^RLliHrSruPd#haEV*8#$pjs!f#ikmLwo0H` zOkj_oh6&ryDI(CKx%YmQIxN*UX(wWZs?5+V2%t53Whpy#X9=XDLqv+HZm+6gDzHw&!NLHJVev+VfI# z(aWQnY@en`9hZZs7Be3@+O@j*Z^FzPh+iV2mRW>NDz=TV)lNRfNFGH$;V;~BGewob zs2JXWi^0Ed!SZX+C?s1$@h6SVIvf?R2-JTEl}NWPbJarp3%YU*n9yC+e zr6ljZ+K7uMt z=g6ky2H47W%=;ayA(ODZQcu_2%gsY3JU|8Gzru(l&-P;}Y?I{J0abXqocS&I(frc{ zoYwZzNI9#|F&QPG zO8vmYgy|4jkkP^ySROjU%2AeBLC+>fU6_~#Wz2qW7M(ruK}!#!`wMrzg0{HFTY?GE z)N{xR$jh7TJaYH%i&wV7U4rqdLAfc#QkC4f%9T?u7`%n2Y>ztTwV6DCjR&S|vYOdY%C9i;SN ztP1bX%CVpgVQ(H|fXfUf@1~v5&wv@F?6I)W^iI4;X11YmdK}7*`D+ym~ zFd9oioUbHm14i@lsAE6ykwt{pXRCLYYURhHYG-X^Ob{pam z%wWxA^ZG(UXyYz?!o}o#*XhP9`frqVWkwYsd1bi61; zDJo@K*>B|4XMj>6>F{;CAa#_jDNWlJxUCJ`aqJm_1}w)?Wj-Gv9F#{>I7b=&ZR2Hh z9$`bk{1NM{t`;ex*s@HAAgbVso5D5N(1$>g$kRf_;{U_mTZc8>|Nr7Dw~4^5hzdvu z0@4Z$1Qbw2YUCIlB0aj5Mg#<*A_f!`HJIcyIef17U$mMUX>Q~3y-@=d-Ew=WBcoctWUdLnS#xZ4f_fH`oELO z4@*jE(P#jPejBF<$4Ghlu2w;3@t?qzm(hnZaELX1k41_)bqYJ9Z5KuCfY4j)E* zM0`YtRS%4(>n*VXh^nG+o`6dEyG=?e%g$%*317>7o8Lp>r@O!vMp_nACtx|+wC#p7 zNq}F!bX_NOwq1)*U|jiB1A;~@qItJ*#QHp!ZXo_)NQ>lBlZq~ScX)|lIh1+hs(!hB z(T;6@VQ%}QD?*0(=M*W{m2cQqPhs1%%Vq!yyO*^@NTxix%cwfk0#i`XW^A%Bybr(* z@EguX>35AEo@-7(Q5U{BSN$ACnVMv>;@Mff6@zZk%CZhC5seafh{+!D>pvFYrI0r6 zXH;z$Olv6-J?d%{mTP>|WwOvJzi_N3tntxnO+}bFHIqcjb7-BQ3*`fnAV# zM~gwkM#^&UVO{m*Y5&5p4xTkv&j-301?P0(!O#4gCWH^XJHP~Q@a<_R=6Hn0~fh!+DlPr4<;rPZVgDYI=n?IZ=&@PYEhfrKC<1MDqvUqsw=2 z5;{eAV+ymHom2=uDcKeusr@sjErt|r`L*LYOMjBwB zt<=tT&y@QdiiMc_mRbwi+UBKb6&Qvm@GUrc?AzxbBC-gMqa9Lw0$ELwTRN?d*+uMn zU-~gt1x7{pQ9l~~RH&n;rp_XVYgIzCp@>kOngcIsZ%bj@NpVh?`(dSCrK@bG6SGCHjZ{CsUyD&-gV^4;~*I{?RO5Gow<+ z3sXgfgDv)#gP)F?#ya}VyN2>X-~3fT^cB&F#|19zY6@CPxFefXw3r6N&QH~yaMb3H zgp{6l&_$g?qh)$9bRXug!@nvuAC#ZA40K=df2{Tplx4nF+yi+IBL{Ee5EQmX=W0lc z!bk0id{KBKklc4v{#JP4_=|ri&t*p%5IUK>Fv_ExROk z9mnP_BfU7ZU*8JBcHm2riq)~h!bouJ%Kg_Ax5Jk8OBw0K0P*KjaZCwxzd)}3uKy(4 zQkIjPkPHB5r{qyDwkVX!@rdn|b0{a)gl?32w|II7IbItFvLS0VQA7&5`OG~f$^F1d z>7$xtbV5$Z-fzh$8@lf{E8zJCuluDw(ALMSg(7~x>WTaze;y;|R7Tl6VvmbmG?C=m}rvn)zkh_WCN3=Rw#vW$yh4E{;l8Hva5Bm6PmS zh7p)#Gw+8&@CM9oU2GQ5tb3_k8$RFeGTf$yk$S_h;e%Gm#G^t&d2g!Na=@17GJvEl zc{wl4$oW@385nuwt=@Qcy~y@=sI24%qG>pTmE&Q_c%TwNX1mq5gIfh4JIqU=)~yal z$MvWVS~;b`4$;q9My3_qn1+tpl&ugbeA;$fBO(wJYIqt@w%U%*)ZF5PGS)q7+aMV4kQp~yLH}2iX8f)*PoY)% zfkU+*Y?tclrKe$vFjSR1fPxTF@@-o2nZplBVN`sx-*c2DY{%wOid#7`m)FTv3xRtQ z6XbROt^KX)2)?Zre8T~Wx1xMNwM%StRxk}3FJ0p@y}tTHI367oa(-)ez-g>l=@tj& zn5^m-G)3u>GwvjHZCU-RG5T?pje?B&Y&Nmr-Clfp<$;@`%7CXB*VfBct^KMl)HjlJ7?bn>0ariwR)PrngJxACc(0}b?{k>5-P ze(xA3gEw5}M8?KP?Os4#>QTm%oVaD*Q%yoyw7Ffq=MP*P*Z)e$3Z8un1>`4w+7zH& zkvK2p9$M46IAFsBxZSYLrHP{Dn#m`f3P_@fy|aew<9j!L%n7hdATew`EhiDIng;J2 zA{xeD+D-E?E{M4J5i*ANh&jmlWO$=#vY!3i2_biK2awLdL6c1^L}Dn*z8_VMq#}BD zui-oB5(mrqJ*E1|tR~%O75qwD=knINb@Y}qvxmEhZ{29@hpLxin$z5J22ID}A0dhU z=Mstxrx_uAjmMFgc=X1iJ36}P@%4!jwA6gpF7vqx&dXyChEdc5ZkXYj14jND0^`>R zZeGjo)Y;M8gufG#0H$xUklSQIL$72J=$7ouPjl{n%yti(@W&^jhgYgEF4^ki6l*p7 z*T2SO$?tPj^P?~5re2H$N$wp{fLF%UdWse06_-kvp2C!65?{9+>?k~})Dt2&DkAa_ zUvcXyQv|q{)jIYw8suZEF%J`C}7P#BWb%*)5K0%Zbv! zVFAJ6r*x(0`v7Oq})X`=pwv8F$ z`BW($+FTs~sCm^?DOs||dICR)^)q1{L0`tisxwb+?c(P_>jA^APPuF#@~lW^=jpeq zYOe+J3@JhK;s#Ojokri~<-tA$Y@Q zhwA(w2h3c5Rs}T3Akx?kCJIVZq>=vY!(RJOZ0^c`HmrvosA<-g;~faTlGDWA|s@c=b^`sphx<$xGRx3ZoI5+O@}4Sy+j4iTOHXK z1F0OUkWYcq0Y1E|$vthhYw{@6d%X?o$JfbC4dbmS>#z^9g;e#2Kc8(jy}L?AocI5m zx#e(SU-N(4X3`dq*n~)g!aBBWeGqLZyKf@_gzDD9tA(usey#keTF-IF%GEGIpxI2?@&@^$WWWv=qy1qs9X#2^3**=<4fyE=*}y zBf-TJfP6@Lb=I$Q-Xp@qPx3Fc^yPfBg>p53MI`7c`&*nuT=xHIj!CL{Bp`Ykz(BTE+&IaXZwik?yo2{k`Pcw3bc`aO-%$nBJPT;@#{M%q=jduBuK2 z{k^dHXNDMHkb3tzEHsiK-6nZr(u{L_{Tq8&3;u&k*--)_I^wb7RV@&?I9SyuvD{|A z!L%B}lb8LsNJ7Rb##eFZ!m#B9Bkx*C|Bqp`Ty~<0Cyf-^s-Y2XqW#UiX}v&{%HQu< zr|udd1mfP5=eDB+x>o~npg`+<3o)>$tmbHN*nh!=eSD4&e8qs7)0m`xl|NNBIDN2+m)5FC_Bb86QVTk&B0_h7t>VB407ZeAqf z7BN6Ns+nQDFw_PF+jb#n zn;3M6dA4oOe8Wk)9JGw^8h7A8d;>nLhcG%bz@7m4%f!hs^6Mh@lM=uJ&@7eh8yMFKCGGD{vwN&&V-_bDj7$Jz^ zIHHoVMWm%T`Dy~%#D5>>ZR8s{p4@OtJ3na^TjZB&k~_M(AYf3uX4$Hhx>eR=h<{>~ zdr7gT#cIqAiHY18w`ZXlupQJ2e#^5-U@0sZsY@w=y4&Una(jb>oKV-Z>T|zquMeb5 z;X$F)HH>ekW+*2rJ^K>THlutXNRm=2!iY70&j$VdjOI@R{e!&>D8=hepARDp4CH(l zh7{tS1Kh4K?@@@LdMG^m8VZV^jGYG!2A0i?n(AinPR;nw^)v%S`Jw)6Xp>dC5ex&k zbY0a@0->?xislbN?{L5O+<>cYntxlRz`3~7WVgx5n&$(d2tk(@`7sd5C~6-Q2X$vG zRWE)MQ&jKt^P)MzI2tYfx=ojc`EK@YN%wnV!S^-$KJ{cZ@dWYJ0a?LB>7 zlvm(3`RR+HyWJdri>BT7oSAo+uGH0Nbd@^F?{J?6@sT(>+bw-KmOjz?Ue^po{6M!(x^r-JvwU) zwm`ap(Npv!lKe`nqo6E3l1j2{V<7+G)1yU6fbM@`Y~HBo)bfk}y&iaNLHEkrPg;2Q zcIkfy=`~i+H4}C0yAI>>@^7llP_2=WOPZ$z)j%|wxU~&Nup&|Uvq55oeHO2GL?8+4 zeP{f^aa}O;wZQ9#olv{fnF+n;w^!<&h46uhVxE~$^;p3~M$xD_y_kZBkQ=5SJb`MV zasy(!aJ2(-MNtVQrB_?lS;VV1DG&dYBOwlwIJz}f8}!SQGN`8OdPrh>xtizln$^L` z#KFwDW^j#Uus{0JtI+06dAVvnMu-6UE7Hdkc4vyKnQ#5eDMEs*)25r$s}jVKYq=^WbDSwU|1aUmv$_+jqu-FGw9>ClJK z&`Ai(vyD9Ia15!~5D5Rtp!yy0c7Wg|QfJ*-5}2rt4vlE?nvK{@=5EJ-xS3nnvC%P9 z>ZKriuPO}DY1N2Qng-jP)#M{MM)MgbUtO*VIcv_<79_!z<}!Jj~SLbPxF#t9GL1Ao`bjO0jYMHDHAY-_O@>C zU!s|?UM);q#i?gQ39e(AQ{#JZqr;x&<)U{{Qsd^dg!zqua(WegpWUSjQKRYiC7uUj z>_P-U_bim%EhX6Q2rK(pS#)S+NXr+{)=&qXQb`&q#rugjgZYCzDjW!l{T1?%WPxB1 zQwH(~OP5pH2v1M@1#SO3Ms>|7SNe+F~{D(3Qdsr(_6nCY9pFz%|b^zp{fDC_S)<`{mFC@7D$ zZ>N`XdF|j{5wj=q4a@&w4VS9`|b`W-@%tse!~O*2fw{ zF8%mO*_|l>)R_lmUs+C(ZSPaG+MeJ6jQs{8m<3~9wF6)n z{TQP$T)}E&C_%(ZZ^RxvcUfOB0^L=8+1imaCl6#>wAeLK)ziG-R%R{Ir(N>$kILnQ z$wkaAko_}9x15fnm#^*S>i8ge`s)wx18zW5=bL=!{&a;32Hios*rA6!duDK`{?fg|HLr@gK;FnoQBcNM3*onHnWw+5s z%cW{B{bgKud7=wZzAs^44?!a0{}7nZ>I{W;W^tc;9pfGX_j zheG89eot)n&KNn*?Va30;vSMP@f1ieZsz5`_sNC)7%O|$?&?nD;Dre{2`?-?BmsC1 zuE)@#ppfc15SNTT-6Lo2Dvi;zvOOjQ;TFHdMSQj}1BluV+fTE`j$eLRUo@s383V{) zC+x?om(ucf$Mq|`cfc%c!$bneys_LUeCBuuP|B;_c1olV)9QAa1=qBmcFhuNpRRs2 z1vF$K5-8IHPpE9UXnq6TCjc^APaLW@n@!ov)d2~w+ft7tXc9P=f+j&uilmzlfB)(G zOFls7@x{Ly&c-q5>T9=bh8Ll}7$psNewiK`WRe!Y`m0VUBu{Cj<=Ad@W)Ir+iddJm zIY12P7K9Z>n;2FhRKUDp(FG287x6Bqj8(Pa%1>EM?)#SmMqju^5d^v{`553nw9oKL z^VnjQzP6ACrZsT$Fn9ENlD<8m@FR-W!JD3Oz3GNR z_E&plo3HjN7;mvzAjw}6O%A4;@-DZ9E{IJ{N!I}ty9xh8S@i3MDGDJ-L^8)oBx25l zUSCY-jBRR}g+Jhbe`&z}P8`08asnKk?G-!&q}%NnK0EW|46|MimZv0YI?Znepv0nE z_O|Z6ZFq=0NA${l6+cv=jo~2hjLjPrhfhRQ`Q%tp?r$ntn43F+lz({TSjv~Yb1H(q z{`Dtx)s8TcLXd&Afd;>vnLV=Ox$Yw<0D!1%Oq(1g#nVMg5F)gX+N*wyM}gyecRoEB zMSdTxTHo_#x6q9O>iQov=&_?n$Kt25a zmjTe=5qcBUWqv)6*4}A5+CTqN;Rpx)3o_iIRhc?eYq0>b{sKdsYT=$Sts zyg?1n#{XA=O81c5)= z)BnPXvi-k5c=Ue$-#h%ZOa9N;HUZYE=~81r#ZqQ@`ty#&5XNV1MP;1(fDf+gjU%3nGWO+P9O*(3p4iLclTiXeF{c5{{@U6 z{ma;EKIbCxwpr8bjwg^l@UesBFUXaT$-5-oO;OW z#~+^q0oE)AOPZ?)gK-l0j&X@wiIY4KoI!3uNjR% znu9IT1NhAVHv=*7qxsx)pq8Kn)XwB17&zFO->OjgjaYq?e(~?MV)L(EH~`Hf&=u|l ztg-FiG?*5AnOVKcMOB^+Y*9U#3?#!_Pk2>d&XltWY{9!Z|LnEk*67OwsIhnf$ZSDS zvjknDPQ~M|5_&t^qQ2}uuEyD!MSx(p=F=2j;g!Gu|_6vf$(fh!A)cE0}S<=&+h zf=JL|w4&nB|9Yuyux0RC8x8;xQktvVD&7B{U;9s6wS##s{)ex6PsE^YJ}M~#w*k^> z#e|>j36dlI-jpc}nvW30Ui6THzk1>=0Y$Z0GrtZL$(3$s)#@oSk@hF|WXZ#k2$}-J zs$PF<;0++^J63HXeTL%Hd3BQs;Etl?zAL;yS73OgO6I`!&z@bo(}JG^PY2~ghO7M| zHUXHTAmDGd-`uz4BptELrQb}xTJht9So}yoU4$058VSQr{5c+-65x0UoyC;5`jOs? zYmMj~7wO5zz|R_lVbUBlwJFW944kkZ?~LmY_BdhFl7dFnmvrME-6hBZ$^>OYc$+5a zYX?%8Rxf8Z-QQSP4cuNT{}8EUm`@`aQh|2`=q}i70qK}Xpr&cTs+?H#_LfZ>Z&5wK zf^geiJNmc`Xg;|(zHzeD^jCb#;(xH~>RQpBt+?eKyJ9hL z%_@u~06CT=|4PrmmJB#rS~mas*^l=dn?EO_=SgVnKztGBW!!%U9%X<5&`t;Fdo)M>`Mhw3SRr&0DTl*5MbX#k^DbAzwl;X$G8uEk<)LEl zbkT2J_jd7^0Vsy3vfn%Tc6T~NlhASGp+(mEwM}rkU2DO=6glcs#Ug9~lC*4FD;6#3 zvAj558r2TOJ7(+FmqD=(MMqwRh&JPO_8)aF$^q$n7Pjc4Bna3wsA!uLzfsAjD#B-$ zq_DZ{u)a?f6TTH9W)$F%^h8)MKoJixyCG`(KbvlrgS#~Ei(hha+1)N6%}Q>GVv;QP z*;y;*0Wtx<1I#gMbHpuoqL|{>Y*Y_GP8*fD>1_iRgTKoc48d!oEuNQ-M@J3?xVA@W z7?Wmhy`p{f)v6+FSk;90DkiWLvy^g~qz5A`V72txmmx-&ZfLMf}xnXAvE$DOb!j%R_V_sOA#QugcI`{ zwxgGjUQ;a>VzXkh^8WMoPfQshhbw`ysPVG`>sA+D~s0Dv(Bi>}_nU@t7Z97~7!)j2Kt)#ym~G<69tuaOY(HG%w)Vj7uI>RL;6I z*Y4yE*bkNOr!V_`=v;03W(ryqJ(Nf&;XE1s4CTcy7S-Y0h~iJ+H>q+w^y9ahEgaJi z#6WDb&i{&J$RvgsFbJMF+!#}nZeDXeE$F+y+CsBef+xreh`WbERVWw490>iA-pkM9 zb2tg##7c&WmM;DCn&nW1`na~KIS@%txFU2%g)G|slQ#RTGXVWP<{5C#o`SN6HU9|4^7MejC{?}nQQpUv5q1B^ zjA$b;7`aiwAl?nk8;V1IpDdNY_t3hHPMYal`$BL@=}7NgN^rf>a4^|=meD7cObqv} zua-rjPSUH{*MV^S)hQRltKxBIBtVVO2YkVlDDh8lPUWjAG3bSXA~A8yMZ$*^Kwy5- z@rOtlaO|1JFO;u^y9DS$09zk5;Ckn`)Uy@A*Pjh=(X+J>HQ~jvnr@Y$m&VhA+`1n|UgLqKi(;9^n*!nQBBJ7xdDeiO}%e?E{;CsSR`&d`N8 z&*Y1X8vN9p=Fuq_DpiwCu6k5Z4VG>-rrACO$otoz+yxE6oNNv^zr%vve-NbSI$p9f zQoi!?&W$6k98fs?%bbW7toKFqHd`w4s!TlT^k$kkSh7;tP(l1uWbt4B(G7xosT%=T zutm@r@Y+M&(nsX0Ht4^*j14XgRza294Y_#Q;mHMCrjkWXFJ9;~jVL^W1Kv_^N^EYU0e+{h4WJ@Lg4!O9 zeKuv6PsYd5Qi&Wu*1dqY9)LuCM+xfJYSB&@yubB+^}z9be+m%2SzoX<1M*M^9SCjz z1~8eSftmm{2WpgN$!)N%gn+ zg(kCp=rqK~E|il4q>bn+4;0Mh^~@3d#i9*IoIX*@YI6+8ZhB`10H^^DT>3JBNW@&A)m#&7iex4{8H)oTJ1jSGf`cZ>=Dt0U64rH`^xfSW!0diM z%9vIDe1UvgW?}cS;`ZY%i>z&$*JX zczh&Z;FYZMr*ZQ4tJ<5e&RlAid$%vdN;u8kgmiT}5X^-j)Q%17@h2wU3t^l^p9DQKh00i(eH3)-Ynz+}ucc7|q( z_od*U)6n+90<&ST1-b9e&{Egf&s4kNo?QWMf?%eaEt>@+u7Rfcy)a0(dh@uUFTC!751zsbljR!uO!>YHd+ z8M`EpQXTbROZfF%00d;cU_V?gduqecf7hVj0`n{B{@)&O90-LywDF0Ra2cIS(NJ-2 zf<|di;x3U9!3G0qclS{Bm!!P(hpDM$rbp#(q-~arx*z` zvJG$ny_7x5Yk-2YayFFiw198HTAxBJdCy?vkXd%|I;`)@pU@8UG~oNhl_W4b{awiX zzA*kQDC<_Nrv(v6R$jejZtjB|&arA3<%R(yuGK+_de59xoug{9DLmKta^?j!+W}i^ zvl2`QPPf%Xu~q9z#D`%(c<7d@L1_U-$Ls&xWS`%lzjrQiHFAH!x653!@1c#;W;yD+O|ef2aNv0WUe5WBf3OUAf1RCfKyILZBC<{l6=43aLlm;YxH{~YY+Mo#y|Y@3)Lxrpk|<^pkOpsY;f zmXEv!*m=zqH0~=y&EYD%T7?K$+D*+TV4f8RW-+I{nWW*vH>`29#236K3$=r{z8>gM z>Xmw=hL}+CnaI4ZJ$< zF>Ipm?NTY3fBl-w28##Mm_U}YDSsAZ9g!@Di$p3g-P>^rUvH@7xmGheKS$u0X1nnD^M{$zCkLbTg0tEoqsFD`E zNM>Pe?>jLc;zWvCL}~6~4G7#EP{Yzw0jH;Fcp-5#SKWRAKQ9cQVo1}ID+F|F4`rYMt6`5V zc<%@YgS(XNW7t25Ckrg?NQZ}p8}cT?jtBeSN*t)a5WIKVX3LXPG^xy@fQ_Ktm@jyD zFZj>?S^0{~fN1AI>=k~jNqHqI`sEDFd&8IA>XEXF4giurQmC8#xQFaQGdBSEG6poK z0W|&K>A-$i+`81p+>gn5uY!xfkjPK9Ys_i610w#%xe(RJhv0s#~7e##C z*$1G@jm%8Vg)QvjxaTTxG@JI&J~na^bYzD1yx1WBB>YaiZ*UGsKENOjz+!-Uv?$=MbY)Ys2>%2ImOl-C_3~MDTJejN{u{Yh2yd4M>l|$? zlZ}L}MbByexyQaG%xnVlf_r6K0oS{-5jXI_l;&EM+^=VgMn}_Wz3}>ur=Qovt-@I* zatvaSaVHa zLd9Se{YQ}k@LW!|1ic1@N=x*0g9?YveXJMA_yIH$w1l=mF_aHoHtk9gmw2IFWbC_8 zAKX&6)5?`T=NrL%Z#dl*NCzd|0md%SMEV`K7AnI^CsTz}XAg$5t`7p=$OBM4FHSV1 zuipYsAd@yNnurF|o>C0x|ENgG2^l*hXpxD=EE@H2Qz)J zBn;G_F4DJ*7YkK|0yhR*Nl;{N^!rlAc&`J`hQ2tZc%B{Cqc$Qfz{!yQJjk_sUU-i! zpl5Uuc?fLy%65Q#PRe`-5E(WAmLTA8lER*@cZv-F7r)hSAB!3e$mQZRM=Ls|=Wr<6 z@Si5Ui!=-cEmqzH;GriBSFj7)S;BWb7Il{!Ub0x(!!KEnSOML$XHFI_{1t(K44B-4 z&v)HkHQoKo7YyUWq?MHn)P~-h%8C}iOMV#!01<8c9)=|X(w%7Hhc2}Sogt-%8MzIc z!?u7Q`I_WrPUOGu!GZ)&65W1e-F=k90cC~C*1gq68qjd{xH19SaIu9PCUstfgq@$w zEVBo%wto(I03~mp^|oZ*SlcQpbHvp6LzHDIjnwuBsr$$TOR@+8f3v=-gAE{iuG3W8 z^l_%plJaui^3b>j@H}&ChEAbmP~#WP zw_=XYc-6IkH+EkO)Q{k{IaQM8PE++H7II9e3PA*mpoP;wIn5MwL}trl(9Y`YCVHCu z_P~J!T>P(7W!76$AKi`+zd=XHZy*KT+b7s@LRmXMO z@uX=$7kV*~Sohs3-4~TR=U(HvQmB)!krk5td^}&;6=jPR$QPXkG7K@pD4>nzr5${Z z&iLtMFla>M|Vo`8V~m-{7PpX50lWmMwqq^(1_i*Lp)LX2GJn zxXN!b-IcgMM85HSGb^EpqFYs4B73PL3zk5gaVJzB#ZvJ(>S)6rfmD7A1c4&d{7Us( zta4ekx-H4T|L5y69fBj7hL9pmt3D7U^jqa`&v~mf8d)t zt!L?jS5q+jedo-5Ewnlqc2t8su*@W@@%N@dC|h3MACU_}@&L%p?AkGQ;|NQ>NqCJ7C!w~p2)a?U7-^A!EVLoRS-#Mjb zYL}R|zL`XlP@m)<2Y_d^QB`bPl^A(2g*-ts-Sb4YmA` zA6BGpENTzpRP5R$&n&|Z_e--r_k@=|;av|7?0TbP zc=J84m}meNp0V?{4}p_%Hc!5BdpIF(;a88Nc2)QGpAzxhOpe1|!zYFJ+*gN78iz%S+sE3?zlWS}c5!^PxLCKdohzkZj=t z-acH!v>^Niq7S}F211jz@i!R3yvIuF1DxgHt;S``D?{!C;{h_xDgK&`t#asFDi@s* zm@$1FEV;0b+cEnbKQ9s&Hr!<@nZuuTQP*Ck>ZTD+2a?-A!4r=w$9!+w*zWNtUlRPu zDp&Dr-IDGC=7I8;cbnCip|x2Zy|*d@j5?%TYM%H}m9)Dej88Wcr3KebesPm}q zSKrl;(8lKO=VAH*Uu?4Eo}9OQvc`x#2;L5oe}(*2-rvtTfK$;D&L!zoB`@74Y&ZGu zVjh&{o-U7%Je^#)_Ay`%*TYL1FEv0RX4|rfUrY8gRSIZcK`80Gq5`dkW>p=1Hs*SS z;KL5f+m|p;yEfdTSfmTRtV=Vzf+XI+zvNMTkSgc7OJW)aJ{k7xSXNy+B>9fD8L+O4 zc}Lo?QYAVOUJ=(bT}%yJ;S$4KH+@uH=hQAF%jXnso-Hxix2z=-F6Ysy7o#F+>rUDu zW@o=^)dOo7gaEF%}1MM}%}qUhly?H^cp@1w8Oy%@yF#Zwo2#cXi2acGJ8 z`N6LebB&p#fi+M*+SI5ek4dM|9#(R=m>*Re04x8GrrB{;#u&e7igm#@>>0%e%CJvA zRyjCe5f7W7bjk^QphIq~uK%SWpzz!SVQ75}9k?Nc(#0Ns2v|MoW>k={c_u%;PCjhv zuL05Cr;6%d)--#)H=})`RAOAdzCzrixbhK~MjXu(cUQc}%lqT5e5FyYM-Fetxk2vh zbeE!`E)O=NQ!G%S(My+xUdb?OGASUOZFbw?<>DvV1g}~Xu~ZiPsC`Y<`O~o_7taP3 zofW6?+yi1FOOHAWgOwjF{T95*cc`NqYc@}q7p_@c*s_p$C@M~WdE zulRCw7vH+2N|&mkhLgw2?F~LK3=bkP#PzKj4-@kplvZq6I())%cuV)Yi7Up;{&AMg zr&f`j>nw~jcnx6;WHGU_#&b4SE*AJ zz=W1kGU3G5J)YGXMsv!l!;O@0gpr021ye4`psfO{M2<&ole zLg8)5rJMSBLllPzEIMVNcz8bc*ZObjQQOImJus!&X_nQ@g&o$gvSRjkub3-J)7m_ zhY{d^R|0iKcz&KpKB7!e@G8wEku~Y_lC3$M*Q_RYNc3ep!u+Z@?=xDHiD(b^;DH#5 z1q|yTajyidkPax<>9hiv{SxRlDCsnTYBr=7v8_>82sda-L~pwI4V9&~l1w)y@(p+o z&uH1_p|S^MdA&7OkydI;q%Q?_0r9jK4a*pzQjM_Bz4>2P6j>rNdq2{4X#87J5A2z{G{+?Xw$isPamjPI}}I5Vq@=%R>|v-7*3l*;#P+<8ZEH_UE{- z6#^^Z@=qncF`=29n7?4cb1zlYQI8Nhp0Jnxp31tYVUNuyHpT^gxro4%`bd-@jIc4N z1k4=?NUeKGaf{u}G|3-;@9LN)SK2)QrEnDM03rx$0%Sz*A-kI_$oBWm+u zd>+|Pj_hiEY3*ZR`}Fb&uk5m~a64}i3xBkBqw}~v-;{zm--hwj$kbI4)m-8gm8a%% zD2c>HQJrH0@LoDqaY?$XS$OrBbY_5BN&McxWN&ZK0-|($%ZQlb-|eTZf4miQA%tpY zT-B?w8@%(p9*Rp;pVXOhenP6jB)G0GJTBk-WNB|VppqWmhgy4{Wq)8JN;#HG5^c^LLef9%{w6bY86LGDRZlaJa;=OOo#! zXEh@x0EqyTPj$&^MnSJrSpg26mah= zxi9+kz3edGtrXL1`L9ZF)A*NZ`t`ONw#HwVb>8%B-yce$UF35p?$MOcxl%^d)zO^`4~3R9snbr3qfuTT4@RqRLc)^ z(>PW3_2G^BF`TCrk(1VEH*~~6_Q^wv44eUaEXgY6k3E9WrY4La+okg zBB*78PWb(OWgzJekn>tlWK=%(LIub`D{t~p!qQFYDRF^ti+H*^3$Tl2e=tm)iteBs z><8XNjQ+R3#*0vwH^aB-lx=iJjI9h*)X`k_`6n^q0_sSFgtnZ~hdOs&V52L=%s zYg|FdqsJ;!zUYVD@Lih$eaPPBE_~?~xGeT<7_woR z5^?#aX;hHmJDyMOH6b>ZvY9>HA|s_lDn@@X@p$(>3yl5Vo%A!drcBM{C=HZ8vfkvR zt%1x)pGgw&OTi$Z>q_{E$jN>QcUBJT6fY1_EB`seNYRGI#Ra! zg`_=7(@#u^RKIl?aGe&?d6YrUkjcHz1>0I0xnlf|P-U489jkrjIw=0-I(Wq!83ZA6 zCL1;9juwe=GxE)GfI&xa**0;wsLO2m?bjCp0vQnGE)C9erh*0gZYjs{xMbZ#5T$XH2YUW(B3$J~*EZ ztdUd%rU0EA;Pyp`VXTkU+`m8PeLc9(2Dl*0S7;A1Um*{IaEjV=mOT=)Wd%_G-yJlt zInPD+y?yJPV`Hi%l}8WE1K!b~YwE9AUFy{_e#Q|A4*5x_5~|vH26SQ4#sCkfJf^Ar z(O<9OVpY~XY;Z3<^c;w1OY^`>ld2od@i_*4w(xbUBP2e;ke>ExeLNJYc3&Zi)784|b&_Wk}5#|EaW+_1*P;Y)NW!Ly!Xe}QB$Cnss`6Q$s1o;K*;I_Gm4 zDTPw?9?9$LBtJM%{J})Dn)rzaJqa3{hwueA(U<6Yrkl%05U~wM z*zeQy0Nj|}*y!K~>Y@8s?rtsABj)qVh6N8?C)OkYENrHtKy}kC={c0tfWN4509cOT zel7mh@cN(q14ic!P~9J$}_s^O5=z zFU9)8gN8y#JN+H@_~+1wQm`b-)gt}McPNis2^I!GGxSpeUpw7fSOND^#)sf-bDbun z0(Y#gw-um_fm8IL?vcuFu-XsMMIjIS-tomfwmD%F6XJ|jgG*Hla-1slcP!uK*rRlRmW?|;uI>`|@B!dWZq~gGY$Wf!Y|l$oUN(v7 zOr0X*!0s5S0Db!g#TsTpZqp6Jr&{xOW=%;$)KP($Iu>ka%_(u}?(| zWYzY>)!195$i^$*WA*7fAIFz4tf)^rYe(cBwgnr|XKFW@D1hDzgc|qe&JtgpiT!0N z`@F)8avy*5W)?@S$l<)q@&kR|I`)M(7=C(dES9}Fl~94Ms>QlY2eX z{i06j3#E-wRKlAWp<;wWL*-Yc&t+lRrgpn|!)g|2euHumdgS9+T}DR2!$`iG!)SRlb*Qb`v!-emS-flht+(q|b(EW9rq zG~tJ+x%kEHv8x#a!%(@@f7qi6$=```SavK{hwGAmUS>8 zzfqH#z<(FrXS26*qQZc*G$R${RXWVt-{K3r5gjb+Vp{s#OThdu${>ZkuXWK}+3{#b z^shSM*x#|+5CLkVzbdd5F1NbWS_oAa%JPR=&03EXW`Ql9C{+fj*7&J7$woFEy z>ZH?iPRLe8lnTn7J@I}Nn{aoe4F#rPt!18(^dz1+R~PBcQJf}+;G?HB@Ehs z)0baCDCL`~`08aYqa}pQ_)RW1hn==JuF}+_QUM_1&5IJ&({iKAbEkLG6vTNNa-L|< z{xA04JRHjQ{~vC-rLvVQWi3)6ON0gi=VdZ`p>KG4?@Yjk0Dp zgRzBdBV-xN*nX$#zCZWp`}_X=9LIA!&-~#yFmugyo$LF2zh8@uMrZDGN&gYgvuIj_ zBDc*8{O3$oU0iL;TJ?AH5P5s~x+6(%)ITT>r-w-~GZCqKyQ*m#LK(DOtRT@-s5fho zf5E*M3hs}*^WcEJ-eNbGXcF*b08%CNhRjv1`O+!?*1vl#)3(Ar5y}^`fl#|+eJ&-n zpTXEdmhH@ia4~37J-u{_45RJ{NRMvoC~W^IAsCGyy)YrLsg#~xUr-UlB0{ZU6VyQg z`2_a1h@3am;9{&mfsh&M}A^#EglsnejwF~OD^+hqPobh&B)V$tCM`4Ku4Sycy zYheCT+pW(5vBDqFH2K7PHXE&WlessphBDCFAF6h$AYEf*#-MJhOQgK2<>&M$Qhaz3 zMu#FoMh?HVe{C$Z{=Frd&DCH&`ioxegO~KFz)hZS4=PA!PyHB{bVnp7Iw`S)Z;#rlrE)Fx`%q2vBrx6=ZDD3;Cwv;zHK4nQXNz5Ne(>qeX23iIdt0NRg>mYw_hsh|NSXFMQjdf zAuru!*VPu!Yluk&w$#M{`#fB=^6PB=3=kausd0jDy?2ySqUMLeyKEcGZG+16K{qh{ zr`ia9eOC2ykN)YUAYkoMBmsUu#Pi=*IQY~58@NK}MOyn-V$hli*QCUJjxYT#g#W8v zuP}W(!3XGoMsP?;gACx^#KYwO>pk9D2+t>2hpW-BZrWUtU!~&zI2asiHW9-<$VP#4 zyHbfo?H^Z)Ke&TKhgNO?M1YW9h9iIhGoH>Z%E)0AGNM2Choo}yS2KbiZ~H6Stzj&h z!1U*rA;G`hE}m62!i6CvPI^NB%fFNXXbiX-TrtY;+1)xR0B{RDkfU?N%>K_U&XVxK zMosUGd#}7kO++6Pl0&)tIR2m&{~%yNKMy6{6o3FjL!O%@mqxE903(R_DM14PfDBQ! z+G~Y65OJZTbB47 zn{t?OwGBqK71+~W6x$zKs-42I=r_ zBI|G@B>GLFWDNJBI;2*J(OA4*3f#@;C7ae5dzczifCw-Mc$L0Vp_kBp>i*fGHL(A?j~v z_}{no%<;Ko?Z@2qB>*@Rc~F(hjp|38ap+)Wm%!74!%M<8VW`N8WWMN^>)R<0(4oYD zZ*{h5Dfd6Z+6zx-a`~(+-*3y)`AB+?>;-P=ZYzCA(9Xcwq3~h)qbM;f&|)!8Tmb;5 zBQ!vebU2G2Qtmk72?WNgXMun>mxRrOCzAhzNm_@wWA^@__g_lXa^YTyd3??-61VNd zGpvq!OA(R*u|o8d^j5n)0DrekWGfsXv0nn}m7GbY!IMA{k6F88{k9vaaw|xS1Y>OD zs$|fh0W0>>-p*=ggNQ&81?aoyDn8HnFUIF^*mtD_RMkL*l47^*B+IgrJ;;!OQ9=p@ zfMU6o&FJyLi)!sgu~$v5=^;k9yE0WGx$y4z_!^2&xfnC*CKUHH$y0<|=IQ-2ooNc@ zg)T)dDd?_}>j7T`@ZaStH%RE#{uJOcF<2sXI>ETypEv2s7IAS(E4x(=gOARPslk5+ z$W;eS;j4og_%BNr;Dex>03#z|B=l`P=G{~1OA<9#G%Gdmok``6_)b3x18t`ykVBU% z^&Fw5NCQ!PHnFc72XdV|b6Y2wWS(xm_}9(lFl+BYeoK?=BdBE#`%Vn#i%-galoahv!MdNgp)A zqpP>q9i~V9sQ;JmxrLYp6QeU|OQLTU`@AEhmVed}z|pb(RZS7QQ=_3k0u6h-#zuxl zCB6dyY713HnvuKI^n`*mKTn>A@Pf*rZ7zfI@vE)+?A0DXEqg%mHwODZQ&}3Qv1lO# zfFnsy0gxlunArlJVTk~w?y@a$^*}QGHUtpsZd&xbce$kH-+MDRLT$h~Bi|RPlG* z?jvHaKyKH<>bmQ{sDA{m^Qude+Vafm2;*#f#2UM3^RzhtQ~LXP?LFUghyivK{Fq~p z<-8UjQ(iT%U9QBm+bc>=0_v31}5cjAleDYCYMmirLJ+_q1qJ~;9CH%-a8+2 z(gtgG0f7BC0Qf)6r|a}MA#tQd9=6TmBT)+?kyWCtNKDYua9>MFMKpP*AdZ zJ8&m3?k#y3K&PjLOp>Xq0XqVWt2?VACN(R7C$-Pc;4{|1E(O<81Wo{5pAor=5O1_G&RQ(A72v1lOlo%6EXlX%m=nU({kNpKcW+oCk3j$1ef~ zEdtA1z>dWcr$9pS+;(U)FM^RF*=-K~M$m8%RJXPWaM=6#EnUN!1n`XZ>U%D`$K)tE zmE2v57*f3JnbH-)m9q(IIv{%b&*uHi&c6NAqb%X>;EUsZU&WYfT&vs>f=8J)&<9gQhorx*O`Vw&=AK6scH)bDRaPJ&qlK zqE_$#t6YGdJJH(baI9Rj60DL#cY$lWBb=ClMess?!=V3(H(cg{h_Qh^TU+EYCi{uU z(;>OG&bo9~#vfsO&x6k-m{)t_zX3VDEoK0ry$9CjNBk!L*XBbdMm8h=2%l0pdeCD3 zU}*k4RUL*N{6E}3@dJ1ot^bLWbU_Dcgy-BN>%boW1J3yK!Dl9%RJ=k9)(_l) zdB*O5^yX#F#EW!0z5A$r+EU(kJ`-i|p<}dXyDD5K0kLm(j`#{-{Qv-Q zi9!a|-=NjWNQJWSRlpUWAxZt;KItr4Pju>OCQ#U(37?Dn|oK60#Y;>qSfsi^ejDMZN`U82Kp{_)_Oj?7JqlF$Og=g_ z^gx&XajSF8zVQ|K)=xXz6HAf8LGmCsBYrnGGDB`2koos!Gl6}GY=4bNG_u%r=}8rt zU;+Yg18IcmmwZqP@l`251%S!zHrx7DK)Zk#37SbaS`|ucPY};hjlQ&aL9>dEUJL3; z!c5tmvloN1?+8VGWX<8GQf1yvpp{^x1nbZEQPx^^ z*)Ibt2+;N#T2c-K4F$WilkP%Wp6`(58?B}AA%lW!U&R}|ApXnZ{5z5I5!h|W`!J_G z08n_f*zN=7@~MPG&vkB@3HLb!CXMTc`}gm2;y?krDml=D0*QsnsZnD+G3fJ8Ay3|jsHM1!lsj`%+j^c+0TNQ<5DB&-8=XlbEfxN^K)wvP zh`48TLF565z3wi`t<0>q+J_ug^1^?YlCa;g8?y*}fi<3+wyCOy4n|fa zOtBaswwA3kNOwU2;o*G2-^@1PrpkY{$mzlx1+1+y-V(2F!w^K*mq|H6N^yB z>ixYVj%?goqgpg^!g`hmUgnLkCe(-&fFlW&fMLLv0qvi{=NL9%FKr5ofg{+p`Jr?E zvtWKKj8^-CJ6c;iz=7987cUT)E$Hxrm0r%(yh%o>jsQ5#W_8WY278QC(lNd<5h`U^ zUFw)1?9ya>w;G62JBX;48>-E}U-XPh;EfLv_C1%94Z=H+!*VL@K}< zE_YaVy9ngtWZMxPxT3OG2(&Z2Ki|{=kK&8W;LG({DwsQ~FBTO9iAnKMTKN1!_C_=@ z(qf`bKRwe_{D2Hl2t5GROJ!hCDcPLqe2&CYezy}Vd~AD=N>%De1HIQhCsnwP`a}|I z4-m~cUs=#c+CifGG9 z{0B>sDuczk-pbgRZpw=hE9x%-J)iXzo(fC3v+de;MY!+logq}Tz(em#&vLKgtc zug96K%~{<9{r0&u#$CvZ(TMe60;Js;>y34oIE(mP{w{qxw6A(Nw!l)a6Pswm$xaM8 zfR5`RY?gDuNoF$A_)K*xpa~Tio5>a_3d0&g=#1~CIP%72N@b{cTq-j65S=w#a2hfK z8{p#GK=~YSau6@1XZNe~0G4Rg6hQzM|3uCG*?9b~T8Ew9mt|W3#a8N2iuu87X(=fS zVBwnWd7UYkck(M`WvD^yxxR1xh!@(E#@-9(;Vhg&%z_4evN4$cmpMR=cooGaWLIF{ zN&HH54NMR>Jr^qJw!gQFeS4BwU|?R^Nh$zh=Pszi_RP_Qf}Eqzn2G& zRlmx&2WPiB_!Wppi(Y@3yDpUK)R@&_InzJl4LG1d6Q`F!j0bc!IS)!+eqiD%;geNz-t2@gAj{*ij@`{Sp* z`TPJb!LwW8nG7|GC=2MyhG`N(!YtJJkI;W%6oKE)IC`|ljqRN9%@US95M)rjkCA*1 z{Ydq;?ydiE^RaTtSBI@~7=eS4?0T4U)v_|eL__96-upcDoWAEFp|k~W-lz{`%yBq% zo;;5(^4(bExN!p>2^#m3EPaR7h9yi4Z`=kHWe5sfd9gBYa8lG+OQ7zL#Wp-v+iY>( zdW>o*@r!MEbM{*OMsK2+`)pU8kFgSB6Lk4e6V*jXZ=8_Hbdn+R(@&ZfSZGWk=N-4` zJyMIu*0i>hMBx>`QEMk42brlH-m|0kC~&UFzAV$D&l-1%j*;J&DOUsU*|mErO69fk ze#{Py$YmtvqUYl9Ie93ld9cd6B<9$$vb$Ltnr*rZUDpto)qWUJWsQ_E4&K=U1f-I3 zmX91rwSdX_t4!V>)GmUGx^i929s165KU-V;`zv~1?$sR+IGfGr@s4(w;dG;_bqXy! ztSWC`Kp>=S3Gp-3klOR%lmrRIZY?cZB561wxT>z~SGIkFx{HhU4c`yR;IdSDNvRpY zE8Gog75L#XL>FKHmh)dAi-YspH_7)%V>(m)cgMFb{39krBOo9Vje|Ei_2v@GrmL{X z+RnPNs$It+b3i|XpnNj6^huBsRYa_yp;rHgsR8|O8G=M`j?6c&twFRoBd4|Zq1kZ{ zz8xf&qQ9TCKJxBX;^(LFgxl8FKu%HjQ-W|aQOP8x?K6rMFnwX;Bd@4 z)Z?`t8P2)v9L*%e2J`x1!lxeLjd`KjdywjguosR~*uMg7@P>n5QPbU2c1TvEQ$u~@ z*Qm(HQX>0;9RZiY2j-VGrcuv#1%lm^%yDM1yztsm++mwKIo7jW|I@R>NA)ZDEz_mV z{m9THqmu;lm%}LJc~j;7U=L;?dw)EHkgMC^sq$R-rYunGpzp|9w*lrN8FPkw>T%HcQb;M^puUk#}aq~2&vV+&YmUI zk35PKF?T9yDGipYjL@@9FFm{)8o{mL)H||BsE3EO{smRb)efT<-~IN&?pEngV2)ua z%)a{cmT`ZG;Zie+lkDk!Hwg6>dza5iqE>*E_vD%@aE0++{prU%opok^Q!&HxYwU+R zw#<3xv%1vrlGv2i?@31^1O_o#64#HSFzMo1^h$8*1qseWiB6ZpfLWYz1T3^Ve<*c* zu9xz{p%)n9lEl*&GVvwYcXne*fs%J_AxJ;68g9j83KS9&Ak?*-_l$P(U2{%zK9osU zO+m3i)w>!?)gH7c+4hq8dvSB4tcEG}4)ab>ATmzLRH__x%su(I+<7eD@)oyu3f9r4 zb`2s$YPmn;C!m*OTtP4wLu{*${qx=;vh36^+tBpxE zl?s>@&)D)>O?3e4?i|o^;vqr8#`z z*@M0j@%&U-*94e+4>sE4o;Baz@`=oHn0CRP?iywenI^4ALSmB-A4)N7ugT>#v~T6^OSSW z9$)xs_wD96+xQ;9?2$eCHHc!`3TKzJ@A<5SS-jull^~hdfeyU(2)nWH7f(~dx7G?- z`y)9=(yMJ4;KLQys`%Y+NGEVM;y9bhE4F|E_`6tsko9xAn}9+W^#IzlhvpVHfBNM_ z(CY`9MTEhC*_R$0cx&rgp8*ckLf)Y=8VzJ3o^Xcj4w%4H#n6(w2;yda}E3}^<58m%=K7X#A`i#!62{H=S=bC1g>%7X~~?iH&QGH9CHjG z?5yJiUX?UJp{|P;*kOGiIk3rC)|10E5AXH7@TD3Gyo~4M!s&%p&uM#npcB!2)I$I4 zFKbi{+Yh{9-uwoyhgzw$WBw=!=t0QubGZVko%PHuZ`;7_n9wNIr}N`c^Y_=5|-nE z!Dn$&cSz;ngfA)T!ZV`^ulvieF|5SW!>^DbbM)a8$miN3RhYDYiQlh@4ftxm0u~IA z*Unb$Kir;$D7&(X1dQrnjdmGQtHaRGwS*EIJ!>S!XQ0ZS0}YqGBc3!sI8ZlWYxf7e z7P4J|YnvaRx*wd7f0~+B6NHA7xxD9I7Cr)t(mOf{V4??In+&O#2RuajS6OdfkMZ@q ziFy;9k7?pI=*qkGozJcO6IOM>&|cl7#U<)(dVb`IR{j2J@h;8ljBq_)Q=`y2YxnBj zpF3iw4uATQ_+EK^#p4bUdWLj{0;jEy+XfbCB~M%~VYxw`7Zo}*e?j`<7wbnry(B!+ z*CF4AxWLLhu4K%^E!ZD@)sWd{XGxa*MGyBqJZ?^nXe6DY@F3%ytWd8%_J~Tg!FP4L zj1lfrWt&k!F(@wwt2s!>wlIjT6kO1*(q3&fmZ;dbm>xcpNOoG)WB z-%r{~7&v@aA2?|x0O|G6XZJireY1SX+W++&03!#UeoE&h9$Hd$&}W^--gQ07n4_wrNwM;Z*f@$8p0m{sK0ED|xhqZ73cO>U%%@rb?}HKHGBjt-@%l8_>1V`?c{4(~tzbY1jJ zNEg$Qh%zv;%JM0HZdh)<=0@x$jCg@Om47 z5u_XJ5L;8UW2{%_;RH52AC7^fzy`79B{na%S5;I^5i)+I2ff;GcD^pc<2>ihCpw+@ z`&E=3*n0@(BX$e0Cvf7m#CnyQ7sn`cOqEU2nUvf!wk3hDXN+-=JDDdnFBE0KRQg0V>H_P#J`AfgEYN4-EO`q;aD%Xpl(BLi)F(1 zmq0}0j)aBVy)uqa_m{#Z+o9&kR5I5i+iL+@bCax^|5Xr@KnlUpmY37Lqg965HM{WFT9 zubT*nD^iZmm-lQHZYPig6pv==?@i!0L$()NADV6o5txkC#9T@@sVWcWUA-SXjf7|S zmEFCCKrH9(O(`!uLR-;2bT%;c+;v_6yqmyliom+Ss@7qG{c~QM{*bw=r`>0BjC$-} z^3#D%>#y?OY~MNY^!u*wjU#DMU@c~g8FCD~@Jpik0Ic^$t!0K_cTp^=zu~ikH(v=~tfB4&u}W)$57LX{~;J*YpglH`R)Wwf(pvo9eiqiN`hffioAF6>eYq?q%UI$8dLoPoi%2ruJ0!o=PIo zz=m$FVCJ%N5_SDft=VHGQ|}0ChQoPNGX4Vj!V!JTh4-*;c5(dfHr=E*So(FHrO|3K zT3}%9ahkl}5ls|y2;hQ2MwomIvof^t(v|+EZ<|=Fg>O`X_-A!0|#@2nA_l^Vzl%4 zz}jjhUxNO1^Q zBD$1KLrhD|h2Cn_0v{0K=If%yBK2fND-?4yV6czHUB|7=H~P5G{s7ual%{y$Ws{V& z*vY(f^2{3v0gLy+D&7K3ZdPzqj0^_wl zOeLtUiTdPxAAw78lg#`ErLm=%5lDa;DEGs~IhiHq#qcLpq2ac*uqS=@=^IU_BSawK z0CYb1b%k0|NeNBC0-C?fkuyf#=h|-+w_|;QzCFrQwCjNsV+q?Mkd510J7|7ik;1n_ z%7{yq+yMPc4$IGRI>fAb>5&AjAh~xS7f99I4u%(jbeZcJ=rV%8XO+NK4#XK2FEHCW zl%S$D@WWBxP7ICO$8D1+B!N02?78>KMQHPK;NeCN0`vR<8Y=rI&e2CPxs!!9Gjx_ z%~f@gYA_^23>$BjFW!0ibdnO*m&q0?@kw+1teDk3y);G87eLs{gCb*FK4?8t&nM@j5So|hBPc(mRh&p4iV{N+)e8yU~2 zc+TfCiJdqe#&iAyOIXHB<0~(D!g60u=vVhSRl-d=sJy(~-4$=DD%vPct!?`|?J`A0 zUAuWYA%@vdUVB!ilI#d^uKKxi((wJ%m0;qGbYZ6`etryj{pp;v25eQAhm~}wjXmV;XZRzrVOzcy zY9J{nRMNjMalCNm>)uJ$5QqsA3A^Y%mFJiwuF!4vp{?CvE?R1s?wfP``+tCV4w;K3GHo>7qcG9 z+QcWe8e!y$Yd(6{l#Y+25*$=9M8u12MW3b4KvC!gG#s;D-7G3Gx0HCKUZ3vi0!f9P z9#U;+cTjrp>jIc5c&5qx{1H#P2P&Gpe+}FX6qV>~e9~Pbwpn+Vaxz#*Q{|$4JdCq4 zhOk-$YWnqkC^|@*5$@_v*LYL%&mXN&AN_zr4>`1K5rV{>x7~UD5mDoHtCbY&>GzhmP!6pn5(;?#H}i zFs&#TZS?G=xm=a3#~L7!;}vKoj+Tls)mh)rfNsdn+hq^+4c>a~(}FfZh36v!^>za@ zOivpANdG|~uEo1*eTke#9qe3whc@$R#3i{1`(R`lpK*oO zp(W<@60PbJKfI zhRT=Bf4lEgv80PbhA5sAgFD6xjnkRu;XiXp1NgS%?SVjSSU5Zm|0vdN%P2>i{m@`U za4MRqy-eqHo)qH~3(VT?#@J94qX#X1!4Ufb)Yb%74cZ1~yS8Z|5NWi;^-{R|mtFYx=&AnvgFoy$J{4RcCY`up zycUtQoQ6dbxvJIY>4zmtdJLRx+S>5$xbPyczV{e`*VyvlTk(mumTQWY<`sne{LXcD zmHqxXt6Ew2MoN;5Ry@i)U_Et-!pH!UpBfmVD1N0+TYgtx{A)`2v-=S|VDCPKU__MJ z##4ae6M`85yWs1bMB%l7d50inG;kuB{rh^_eRzwdG-LbZGj;WSJMQKBBG<8G<0iFC z^>xpgdwgd=^}7Zhq@aN(+ljRHNX#BSdTetasgJLfQ#+p5eKlE!@k43dw(aJ6u5&dx zmN4J`&EuASYsOnK-FVo!91ljZ*k)rd84-O0yYD9zCPI;w8xaO1>vGt2b;UO_A_9BJ zSutAwg&v3hj(~#o?puA zva1_E^Hm+z;FY*`L`&$xaECGSh?4Ae&m@hdFBz|ZMAfS?KBBBkEZq=WHS25Td8k|3 z6%Fzuj0=NlrUmZDUdkwm$@HInmGKtgkGak`!OX1siK8s|G7)g-Cm??OZuV0y>yaKnezR|FlF zDz--{4H1{rvR+;}^h`8H6w5d$T8ks18#M$q4suW-TS8!)G5O#lMLDWq%0|#Bx)xa@ zr~y5hO)p2{M&7?tbtUDjPe%V~O>qZpA#2)Dr014d3T}rTnHFbc3V6|Tk`6+1BjU@!Q1dhb^3l%WGBB?ZkGMty=wFPZ61ybb53@?V zX5Vrin=w$u=5ghh$?fSw3!eWBXZG4&?8`kaFnpDu-ovhZL&N;E&iU_D9+cac<5#{Z zUQShMh$RWt^FXn0QXla$T&9Cyrw9g7QWoUer|(6n%;YJf&xoxGXWgER69s|`MvHo7 zU(x%eM#?Okvlo zgP33HvYEf77=p|XzeW-IP}9FxP&;c&uBNYbZaM*h59~CXF9I-wDE3l)->YbZU5JR+ z!itxn-(-7v&Ff;9?&$rpvBQCU$^EPE7!)X1L~~f4*e})Gb*?Z{aIg=|dEjop^b_(u zI2Nyx=Hm8nx>0`Dz5Bw=5_BY|^(=0yVnVW4-FNP!Be=U`hB;LZ};) zpR3WJ1|sK0cbnRLj}hl8IVNrND>ia__|p!H@B=$b$kJmiY^2$Z^_A{u{^F&?G{PbsM zs@+zd-*APMjP5w^v9yL%njby%Y~nP+KslZ=utSw-(Tnh^<|l0+`6)yGUn`bbH*h3}lWF}_vwI^Z}FRAaJsx@@z(1(XFkj$qLi(YjX*qRN+?cSRvW#qbT zn*|lrUK3rdzs%y$fi0++PP^gTVVRg)wYugsL&;e(57;abG&I^{I}Sh)g_mkJdlJXE zp5z8lKFSG~zV&$M^ipb>Ftph99%G`=hoIQje49}AyKFo!H?u=?g6RaP=)FJ+zd%me zH+6{MeG2lOp+`_OkHG~0B~1w{GQJ^1dq~1*t|vPzz^QVf>?F~K{gv_ENm$l{efQl& z-`Vs~$MXcht_}`*?I~&3b-qLH(4peH@y3f5D2luMjfK-~vIT5!hh{PWT*az$v)bH$ z&f^#!qvsKNOp`;wRqu)aRPlN)*aHvMmNn9+bRJjuk}*hjuA0+KSpVrhA4o|W<5YCH zcN!F@Ens@!PUi{&cCF`H<>+z?dhGAlKB5ojWcrgI6iQ|}_KYoOj6U`d5@Jeas!}pk zL8?LFq^E!ek9&Z@2wJb)4ttSYv%NUkoRKo;St7Hc9KoRq0r|<1&|CF=ZYLmky0yGT z)+Zh<)_x(8XR(W9a;$^Th~BDU!KmTD&Nlbc7n*b4s+pSI538cIy*cEyyM8m+@%`#feHpHnGaP z{yg3EA}v=o!ORt3C%ahVHIc;I&AzRHp`tp7jPYCZS$4(1rqp+gY*oc2E`$z&FS{NC{W3sIgVVt637qfuc0KeB5S&e z6K}@+n(>L$7O;epQ)}&X>(f;a`5}H+9%v^>Hi0`1~YGFq(ShVgpggp1^uP<{N_*picM(N@m z4_!RxYkpn>-)?|mKM?kASWWXY(@q-WM$mty>wfQCySqMcMwY3>ytY8W5lEdG_wlwz z{_~YrS9XBZ=l+APTgCpPABsVN^j>^otaI&l&=itnOd(5+5iM4D@S?u@z>H{q0F?u~ zPe6o0z0YJ6^E6M~#@Z$yZM`T6f;&dZ*#C9QGX9Wa6rA$CEhq-^BM@!Yo!Es?{PCKBdT|y{BF#dOj_Phm*BLuv}z+5^0{$#9&oQORL z08y4&H>Rcx3H}=el5iix-lkD0c@D(hwlhQWb?Zc_8ES4vpxfD56(GQeryczo%Hf@t z>cqf5;RheVZInAM+the}zSpBz56DFpFfKDvtnPBUf+@+8vX0n@%^y}NaX8kl918vm zUOL^!A%bEWP)@)47C>x)xY-A0%cORslz;nhH&O;OKNw|!g4OOaEGmdfx%RxbZZp(K zpy-UDkM(hTmLfp>Zcy!Go_^X7*hC77ob$6@KpWCEdmr8L$(AjF#g8qdJ)LMrzW4gl zI@2-leL|Nn1WA5{( z=5T|>iEEPvvg3m_e4pToJ6X+*Clhb$BE^VWIbO2g-tw-BsEt4)Wfm{ek5a8bgC!Op*7HN@Lo*nR$UIG)f?W`yjXQ0#vqsy>3ddA!0ps#?}jv z404aW#H%a%rvfix?duiUV>XIw4Bu_(g7@A6ANlpF13Tpz3(~6`cM4G4jfwaF=wR4J zV&#tC`PR;>OqxcrOIE>ENe7d2^Y;f^LoNS&6fB3A>h+(Ann1N4ETD=W`lEG>32c;%C1_#1$^ba9ce-rDS4|K zDO?!ACP4xcwhIGAnUd208_q5I@D>Ep3-HpjK7_}ea#B}Y!GmrA@N&&ct68m{iOb(8_9uFmRip;O8~6ulx>NPrk1MXkgh2eu58J z@{fLGvVeW*zTMZqz*|5Uv(A`- zYj+niUJDm%pT>T?Cb4N@4|brOR3B7qz@T+pd#c=axYXz-a6fyZ)G$@jDPQ6o04sf? z2R~{dpmZ<^4%O>_`0J_$eky27KJw;DGrWAnb2`D62<@+XSpzo0nJ~e8m)&;rdi7)w zsmN~(KVINq7qfbK7B2PJyj~+LV>=N3|uc5#ytC(xL6N8Z? zY0i&7f#NeE^{n@!{tj@b4E24UzO_6W;Xz=F=vXB|BrIUz&Kh+7_x0Kw#&LsxExb{? z{qG@s(}J{E?Tx~1*oRau;@Xn##T&b}ifWhw;(%!zV3HL%q^1Sz4Ib%V?T}s44xmKu zr-N+hFtCn`?Thseps()}xD`)yS~7frbOoc~v$vVwaR}Pd685t}FBQUiMf=4+%Sa$& zGdCjam=T_~wX}-gyIy}JT{9Cy@)-eGQ|WeAHTwwW5%w=SX|&n9$J1ZCnFpE^0=A}DO~<&U-M;h1J#cG0XFH3FC*-sDD|O^q zd~S^7F7Ph3!oHJq23CFnn+@DYO6-{)NOS;B1$h-D!7*5e4KmZv1`s+w-(gO?yWVqY z?kzH9Ar0Ju`FB1oiEgmBKV87~!-R-8C5%l>Ojv|=08l#xI3*evB&ut&USvl#8f(K$82||$E`}w1(@wLV3#zMY;{UW1bfb)(D|f3B&5Qm zaNbB}?7Do(x>iA)>{8V#a4g=i@dY?^d>Nb81M`lvH(b6!wB?wkB@@@3fI5s!%KL=D z`FrM*$7>^)P7fyJNuXj%uhXgLXS#f%Vx48Fl3B}Vtp{2*=gg305QeQHrNmZuLiAn(Dw5jvXr>Cou3m4H-{QxaiQ1DtSWEZ2vi9a9|Fz0_ zTcCttb|FA)eo0&dKW`Wy;B~xP>7=RHaq|Scc@<~I8#W1nQ>C*@7Q2CL(j~&T{))|e z?S*4Gm0AMm^u(3;_6(YrxJ_oWmwSr+UuFSJ(luglnxQjqJj#Q7S+qp>ac-s66Pw*? z&I*o#wqi-sIrR#RyXqs5v)I~r1XNa{!VxrQ#yRe>Uh&Xq*k<3`uH9rIY(3Q0y^rlo zh_Q9h+EvhvN3|)Jh27A7(IG{36t}}U%5OSD0VD0mDq1{R*i9*wE6O5CxOG14{zDsh zmGEvw{=xkFc)$XPQc-hH5q?YZo*4pcF|yCb^i$w#x|&z-8|(jS{`td)LbyV-cdGYv z!p~zbL|Wj)(w0i?$KO1%GSA#Nx^N*SIZE~kI6-gD^nZl+@=ns3y7u11y*K#DuAeMQ z23C!Qtp4An3pBp4EK(#@EoPK6LiBi577OyVSk{T<;eC8I`<3Mx6^}*>stlmw${kxx z3VYYc8-j-MD5=LuT+PyJCyN(oo2T5^s)v)>hk~2mj4h7m0LQ7Zv_cVuU~m2pV7Z^KBu@B7vQ%n|wrq?wOq-+Y$BcEUgWoD>PzQr{GRXFTdJ=naT+u>sVR0cU?2 zq-WY7lhVu}*F<^+<;$heqE!BYr}~xoPS}23H{-nF!8?ZgvMm%%zD(y^-u(%Gg2g|q z*kvi@LdW)-YHR)|q0Ps4z9NKeEZw6wo5Q<9v+J7rvTCn6%rv}v)J9J~niK4|$J1M| z)J&%%IM=K6t@rtcvBA&j{SVfw^D)_5ypd6YJmiwoMr+m)%_?N1b|ef!v;ESpcFFx4 z4{Ls(P9*GT*v>tp0hQa;5ljl9V_M{#gn6m=#KAI<(*9Z55BAfqH&XWc{|5Q!Feq4~r0HnWw4s8D?#f|HFQTu3z6 zs5vXWTsF7sOMt6lz*m#Y>bofg1vY}XUOvW!_rjyWOB=|1eM#N1 z*?#jq+yJV;c%FJ&uPXM3_K_c*ZVOn+yY0CO^&S^A3=^3y4q)%?e#wWomGF`d;p|0B zzxV9Gu5ITiFc!}Hky^5#xkE1~o%Yf0SNjwi^OdLS6XfSCoR;eb`qZL<@PXH*>6DD0$x)g;TqK??eCd z{5WKk*N=hm6hqwcsoK6p)7!mdS&Z@JAmW39OXR|C518-00_>yuK1FApYoS|MOF!Vg z5?X%SFXxAt^&BYLrxwW>p?xWQ-6HP0s2+Lw^#RK=xZ3$VIzW5fuB*wNi~yxaakg)_ zmuN}*wkiV2vrS`}`u=ccmv4Fso%q^TE+{u|JF?jYP>V)mHUK{&B;c-*vwpQ7*ht_o z?Sgh*K8ol=bQgPGqQ20FDF++)yCV-}ueZ|jY*VOnAID?#Q;OWLklS=aSGrZWp_#$j zWr`Lk`l3rDKeIFB>DoE&Dyh;u1^a=@@Co7F;;y9|)t6`W`?rHS9w(V|a!l5CDo)3} zlE3`fk@Q@u(I5VbO_3Xdy+)x!Yd5c>^!rr<7-QF@Y&8Au7awCt!;PMu+X{%XKf3mM zXuI@7=0kXfG@KjXAhzR~-d{{q%n6+C2fl1&!LzK%d(%DAc_Rn(SL~JDPu2``M|B%oNZ)RCyr@KsdBDGd&oEjDdG|qhqP2Nu2RDM~)#xG3+ts3M zURR!{JGM?X|0(BN@Uz?S{QHA4+B zNB5zQ+a(X&$N6212=jx;{1dJbEAsz`y*Cesvi<+Yi(3mx8;Vd#wk+ARRzmhNmMlXm zWEl!$XHud_Qnmo(>zoZ*>W z(k1DUdfxvOhxfT6ic4fbe@`j@d)cnP%Aed>K6??rNUN~q_w;gO$8*EmyXylEf6z{w z?iE4|aSkc6MZ?g7mK3noN$TTa2aofc4Bq_!Y_Kb+S}JPWag!TXL3b!k-Lhw+HG zC}QJ1>(z}u5m;8ZV~@2S)1oU|iu9adsB?;suiy;h_fZt5$8O*TTuMey-fbv*@o@*9 zbP^){rA~N)69U;NiU04ksr;w=0ph~&>rr{D)LXMlrsHtcxC1M0ZdrpjgT2Oep=k@{ zN6EG|+;qXvZ1Y+2*|}5rvqz^e^SZdX96!BaypjS8Z0!D>M>Au1CA|KN1hM6yk4?4he|-VgDez zoX<86)F}lt5ArY;@nQJ-2>ne*&ceoIf<6E%j6R%$x9>$9c1pZoP-1iWwbk|AY|vsZ zr;Cul*oCdw3trzoJ!ob{@Wp0Js8+40;L#bp;8kViE< z`HmGt_qGs2=i3D5o@TXfT7lm84ffT~3(9vYu(!s!t7O!zVh@--Wiz}V|Fmq*C3ud_ z{&t!`BVi76tl0SKr_iMSin7bQWr@o}jg(ydJ+)c;W5P{aw)GCk3H?NQ+DK)$Hi_(N zu!`C?S_(MbO=Pn9(;p$eyB;iXT{CPZ!A|Ma%-}0wWpg*L-;H=R?RTlCzzltk?BeNk z{F*8Se4J}A2@hBK{t7^}r$cwd24RS7&rC6-$?JVP1BhOgP1FNdoZ4JC5?4mL0vZcljqsa`ZUaOS7R@TvKc51ss8 zL7p(p3mliq=cT7hcHOgf<`-dPUc^Y>Nld*;rIj>t*hV1}!BO9ASw|_aZ?akRdg_EY zh3Zs&oi?T46Ww}Pfp>vWyHCS;+ixftvIbWIWJ`Dg>=fh z(~ffL^EnMQU8Gye<)sKS!7MlX;Ti@aI-C)axQ>|owBNhJhyB#>-1sw%xp&%>Nc{W8mj|?&rBTrNehf6_PJIby^ihdgW~qmg z5~n+~(D0WO3*T{Nie~i$+AELiI$9y8ZGzql9gPiN)KoB`4L@wnmG+GERQeKyWLA_+ z1>dxjDfL;5@p(wTIhC<)aBaB>cLlxw7gT>py#6c&&38ChOsf;lCwQorvh6&2IZN^L zv)pa^jZYN?-|!D84-)ZW9h)e@V~6?pWCeUa%q~=wwuP#hSViSZ-zO*&H%;aIi1o(9 z)Y3#*|r^Uu<>&?J!Yr@b%%QA5|IWnsL9jJw*SbI}A@NHm)t)oR1EpJ zV`;=L>5h{s^pJ?G2-k9a+$ClFzEz?h{Oy8M>UY2BfoJO#JbVitoXgLWwmA+x-V56` z?}!!Sf%Hw8tET%>ea3mKKhma;{BxMVM=0I7G22V!G|_IuqemYobpAZFJ#>X|HTY5i zo8#usN61l)Wc_HQJH{z^XP&{lqWWEqu=A2bkXDNR&Rfu&=h<4VSE;@Vk{1X7EHc-#n zj@I_}b`I${-xYG8bQRtv?>{cJ|mQ z!hso;U;{0$gF)GAHLc1~jd0iaWuc#%&K`>h)WHIaBY(qPIa<|C;v0gW8mpP0C>&_P z{uLmfbwTxO+XfGp%WUJ$NNr{qc2TyR|;;_7Nxvtn-;ij!Y|iwrLSIdoUvGO zM7-103veeVv&cT~;fYSpSx}R6=#?=jU!^A>^Wwqfs>R${-}~k1GYJ9272{MXoZ+|f zyR%JnrY`a3H_MNn*l}kM@a&RG4EgDOclZ?ChrTSF z_gTCjpt-%1b4bSAW`VW5*VCEyt|{^+rf37?7QrZF#6q(ZbHd0+V*L}L)EXOT~Jkpt7Lao5n4~b zWfRVW@y^mD%>%(b@zYhXc{sbKMi;bZR0W&x`t-hxI(Wbuk011-!ROVzpnoAz6nrXm z5;FwgzlR2j!JJ-YNfLdoOt{a+eXR}|1-}2exqBd7`yjAcqbI#}t@YX^6opYip_!1I zuXV6+_ys4&e(F)>!jO=km$`57GRIV81Wp^BEQe(<3AImJ*}ApCBO;KN51 zf9@9oRLKFAa?ejnzU&X2f+yQT17@}D(bk@+k!-ayzK@WcJf&0FvMy*@AC7$jN>`RW z^Y6LVTpU~)67DSb43(Mu^0oZrmswd`Cgq`_lWAgu=!C#XM|rkB$*B0Wb1}zJw8wF# zW7Fp+hkH38qA@C&3NA(?X=lP88XWx?=15){x^nKe)CkIHNnW{ZO?n<( zB|AfiBk+}o3V#rK6aSNfZob2OI;2lWor^$i0iBR!-L&+7#aqDw!gOwVXhAdpQ=MVR zKQ~Gv!(a3cUKu&b*gMJkyEw=C09XOQ3Cyd2Y6g$u9p_?cmj*Cnfc(C1)AYH-OV$~m z>MI}AT19F|gnIek!3ggK|M~aW6pVaqA0bJ^K;SmZ>$W#OK0e(x(rEo8@q{=td)QI+ z@*_VLJ$Cz`<2u2Ln@{!7}2*IE%p=6&Bd?C z4S}PIz8Sxkta%4Tb2<&L*cmdak5~phG}+Y{G{@o)?5!%i9DuwB&gzZhja>6{m@#9@ zo)Gbxh;N76g5PEavWp9a_yjgB*P>9iJXf}9pYkfs@W&fvP6@+T+jkHj7Jrj=0*gdG zb%U#$+X%{kHx3}AI)dkpx@k#m;lo}wUKHbmVB)IKkKJ!|&5&>Z$dDD+QjOjFs_9mP zcsP~+Sb=_{6L?8)2$pmAb5cdtg$F3#38VTQRCJB7p~!tI!>RLq#QDYDQk^0N(Zjtj zqLGGc5@k;IPxd>Yr#8T}L<#D{CXl3&3y{pepF(1l;zIq`v2d9m!}rOdR5TYdkO@!( ziRUkajymUli0H6e(?7@M%-14YB|V?$M66oFphOVzww<#FD&o47nhDL9@@@Y3G!#c) z@(7Cy*bkwG4`}yY7hhkv-U8}1pw2>o>t5x^4zNi&)roSD!%a3{;zdRs!Q_=@cX}RSn|qyaAju z%EscpF7;r{n(O4mh{T@#AXUwd!E)hnCv?J|&kPH@u|58uV|qG;^>ik-c)3eUGW zZ|rTh)WX+@zebc$o@jwcCp9V^u0J;NbBXc0V*t1v@r`#1pSv6?->+XDShzl=zmq$^ zB&YvGKk|#*j3*XkuAQ4!J)mU+S_C_g{Poa$EBlSZA>pHEI`gk9KeFbJpd5&YyGuU6 zKtF_VeHo{vat79$2o#(l{<|~K8sXq$K#;_I_v~XEQ~Gg#Q4R(s+kK_=*&a=MeKM6ulC_!%FvLpZ zyJ0~MuUM3c2~-&LGhX=)?5%93CQ#0*IgnqbQn-pszX>c%(I1^3c9F}>`R`SmaD^&x zLS&M0c1Lt}qmP`%e12ubB{;wOlKeP#@W{-~*Fp}^##%>7eQ8c7v-ZOUvA?)Oy~p1K zmwR>6j}K0#qf_ubJvaH^`9HZTo~2p^?|XkP77km)WBfygzhjbSs+l2mbu{R*lqvsztD>7goA4v}FylN-2nXV<*xnfE*| z!4Tt6*F{`guZVomFrk}@Rz3}Xy$dI2YM<(jEndq84QP-Z{;RRDc`E7IBX9Rvj1W?+ z%rmLO1mRZC23{hv%K`+|pKXMTP#?_j9rb5)y#h#ww#$a#)j*2{?dE}dHlh-N-9cIX z{-93Nu&Ne~jCs$@y9U7PQ{iV`JDs7weqN2_8aPVPkpToO)Vr&ud4AsoOtB7I7q9(^ zcxO!d9&u5O%FW9NuA8ofje#zz2K<;;QP|$+@H8nh#M>#lYn%4fYRljyx$Rh?;-QoyS3ZO z6&Mw`>abddQ5yLEgVg}2_yu|R8tEctR_<;nj#;e&lnB=lp7uI}!{Y&qR}hubv;9WOM`+UMw1khEWRP9|Mz~~ z6#c7yv8;O|x1p7;dNlJWK)Q43oI|9cH$@nl)kSK#km5%e!C!>)lhnkBu1A-)f1vFO z+fqsU(2ipqUg<^EqC-@Z%A9nfhOXDUJJ-ZdLzm)?^T;zxBzY#pLL!3(3radkt`t3f zH48x6qj7M|>y?RA2M35*;wNXVAYioA`;m0}Y2Y3l_G;=uKv4lXY@T!R0EM_z^=))! z=`q6lNB}p{(ScOCkg)t}8s!A)wkd{`JD}8UCQIMP8CZu-;pQ=44IZ>jj3-7AEMfSOn318j$aqvp0dH?*8iUhk6d71HdjbHH`R$gQ-bZ6_O%<+p9@U33ED(Ff~ zFLSG^jc=hV63RhMwY{6k*EifuqAFtI)X*VEgDGdA_Hh1K9@E!q=a}KM zfIQa5M@nX^?|NfwhaTZQj}0)ucWfM$HfM@ zRjVXDa>z|eX13dA9ThNdkL{9Ah{=t1-~5xXiy&LBaQV zEh)qpKhq#ROTQRnVVL1LDi8#Tcc)fZ-ElRZfc_47OI@jR;wEV$*oLBP_*B)xB_ojE z>M6y2#CQgyBZ}k7j5=a@AbMj_C5Y(2Fq#4`le)r*A}KP#{S>s^>0F#@Cx+HcUm21p zeS2h9vU*v6Y2VOSIp#mdF4z@|^ESb3S7FPjIC%GiobHY1D*kN!S~!OMxEyVQ=JjqyGpRt zu&%oB9%w44?w(s#EGIe2va+>2;8++O58s@LnU zYFzkKM)TTB4i7>OHK9~_$Uc+bs++;?JVB;_7C-KWRwNB!FB>0VFl>CmJc z6CMZVvO{QbpczB|@y4+?_o1FsJnSC23{-yYr!;Jhf0xcr>F$}rVP(mz)3362a5Qv& z-uiv!kdBt++^=}Q=qw3W=kz!%c)n&liMzfBxR#&tP-%ZX;}fYS!Xb(kd*jnIqnbof z;+o1-hxxlk&r8}f{}VmRocQ&O`(3H=rNs(8wuyOwpsBLA>p3!j3B2ttIB-FAW}l9F z=&F}iUSqh@ksUX(SIRCMb1Rz|qvmcgW$}reb8`04|MmMGh2(e3(23(y`v~`uju?jVYyz2KS(vId3T)9fm&9cixAx{TQ2Z-f&H6oA_Z`sJBlu~ ze)qRWf$W=rYOwdgBrkv07RAT%iOX#mj~FB|8%a>;Jrj**$L){zzP}#-xAg;=+oeA?%p|Q=@#|xi4nM3 zGX#U;By>7dH2_ zRBf`1&G|0?@L&JqCs71W2#@;g^e5FJ-|eKB!p?M?3o}nb(0rFv^#2ReY>5%zgz!Gl zmWPKppDV^zA6T;djT>fR9$8;+$bDDSip}!Bh$F4-jw~Mi4Krq~HS6mt(L=&SCdhyI z+hW9%mfs-Ne<6^`*1DjVV_3}lKi&f<5~?Oz(_Oh{YIVKX?bQo8YJcFZfB)8MohICS zF34`~V>Js;zGMLDej?}rP(zl>`p=DhokuJjyzTo3*8BGx?x+F=%#i}&py|Z8EQhVk zW`n^R?hmW#H|z3fgX}z+YVNV*aY%g^*e@(J>fdiVq5Ydcl%Rne`x>8dRyCaYs82QF z=uhg9aQeXVi?5Op5xOs4)^r=_(}t{JVsFdN-1**L%&)roR{6gcKMb&(4i(5=|L{!# zYX~WLH2*T>mt-ahfrw-IHo5_p$bpW7fPDNP=tG;?S-oF_0gEo z@)Br==G0q*bQ|n?52&6BMjycE`|N${$8^?o)WX=id8M-<$Px;Z7L(9G?Et8LukG=} z48;25Yb=Ts(21=W`#QYclb#B~=pq4)hc{oFKUq<&E>qZZh~Wk z3l(!KclMY8)QSh_W5qpYl5@6^f9>dSgPJ_7zO1Yx~>=*Sy_uF-+)>syvLm|x80x_ef-034Su=uU5a29MhK zmF*ly+s)zv9xP48D##V)!5D1;{NnhJx}0Y_)ixVGMo2oN@;UC@9`g%zI9kWxOqkMC z(b-C}^_vV)j8XjosKV*0odX4X`^D8RTzucJw}%x({$UzikP$VJ2~P{LXp!X`;ZV2! zS~@s?9A=JK%vUB`{G3_w=64th>Kxd_by^+nYlDmpMK@oejakOvC_cv{?C@0;f+5YV zR-J?XVo4#f>i1S>@YrT|XsAOFQoW9#yQU*AcD#W6goP_jmtXwh*WokU>qFXV0YcHn zrZytBGz(%4bqr7;0mZ|X^S*K?3m+S^@)_~nfJgfh)L5DE(p(2~Z@r8l%<&QLsLEpb zTwf2tEs8&?b%MI1a=O=^K?os$mce2Nz8i&w0_IIPY*I7Y3t3W;RHyW5RO8)P( z#znA!v*BYhhFaxsb>9fi0fJ4RF5u+t_rWf8R54L?NymJK8=*W}RsOa=LJPDpw~+-U zG2S=m)91#tx5EncW%`Sn#^3zS40*$8lC6yao@^j^pEtdBQF~+j<^IqaN@4Xb)+b5g z{JlxxE!EZY3%AU!(1-RO7PnU@c1#;J;LRmp3y-t?bo<29u)Bojaud~|i>oP#wez-Z zsZPwnh}|HrbB_zA*_OPE^b^U_77e?Fzu;Ax2MIS<7P~6~DH$4ZPRS4sz%52nZB_&; zv5*4t+uGruAc+lMF0-ZpSzSZ02f+hVY`?b|2Vnl|pD;{19_xGJkfF3mI5<{7`vqXs z#Z)fo`DlWxy-x;R4Z1vhoEm6Lm=Z})b#nr|oYF=9_wzFFGj| zHZ55LpM+_1ugNgP?e*d(Ay*#mZP^FmKkIPYxonp@Y5u?xFEPPm#EEjc_-!D&^KBpsz@`|eRZ_2o>#Fn{dE02iefJUau(;{o3Y%NwKoc4J_Rmu%joA6+CMU911))6y7-y?u`Itfssc2_$!zGr&+1}4PhI+ z48se*7l`*lA5gov9EGfBQG>x|iv)-H?%}(}cFx6o$u~RvKb|zOiw?wV-Fl(D)|{Z- zbJ!r^*p!hyyx9^#u=92%zr(OElf6qZn~uqaN{;vRor_hO@6@p!Y3Bz+=;@nZ%}@U& z2Er})6tx!z4nv+ zF!JDIkN?B(7a#5d5|LCu<;hZqlYxkHz!Z=Qs0Q-Q2}jTU0&dGVHWVi;fyBpFCCMrD zK9wY`#B2xrxS0JyA;2|s7>Xfq#r;^Pvk?lKG?s_b$3eXeo&|EetvorVYzZMfZgL~6^vy- zVdgq(wA->UR#+YIzU0u;IriRlE~8D4fWZIoFIAvVz$|`PqyiA#)}WJOOx;)=^r@dT zcNv5Cc(f8wp3QCe(RUjRIk9=(yllXu>^-LFI?#>Z7B|l--T5*|gGKT>fCRhj;eHKz zB(gWo+yZq#Mv7SE-W**^QziA6iA(}XKHI6)t2Sov-Ysfm3?V6{PmcTqn6JgZc2YgX z2z@p{Sy}?fyXN8fS0O`&_XMPJ<@-tygY!GuYXGr2-HHE*8F}E*@g$I$fDGui8<61S zys8l;aU&F@E$oU;@II@MX+TA_IWgXjTxrV~1&24JM&NqV3z><4a(OGcFng~HKrL}N zcuHvdb?ZUuNmv>}hEon2T4++PdxU01o7@0z=PlOj2$;$YWCD)eIeUw>`KxF69ls$9 zvx>ucew2>;fKEYSW`JD~6DYD<9CRIjCLLyV;b6dGX@%{P6sUS}xWSC0FdR=$HF!RfRxHUksj{fwmbGQ-e zaD;uc(+~@g_&V}_v4Ry>>>*hpWaPpb794yMuNuf+abn`Ly5p*Y4(1U16f1P@2tsJ! zjnX`Vi`A3)G{NkosIV|Auekj9-7=1d;9av;W#KgC_GO?Ug89w=K0-66{jx$3{oAhC z&)ySlQk6hSvim-)+7Ib#R-PQadIx4cqa$yy|4$~N@M}VADjU(r_O?AkRhqkx z$IYj!1SP7xG!*Lat8UNOBDGOi-BW%r*NZ>2nn}p zb}r7*j`QU`s|5}!quC@9(4Wfz>P;z4^eQDeE*u;0Us5v;Xn&+Shxfp{PpF6Ft-|oI z*~*sLC$0XfR2mQi3SAz$+swUM#HRA7lzg>ldl(SnRIX(@jaBE>n8NOKBhh`0K#9o1 zgce8bEliLx5DI22mk1V_iU9HoFfGT4F9Eier4Flp^2|X`(RCesTEG(!qMXF0qnsqr zAIF252#LMasO;Gf>`kEcGcM(TpzQdJZcx0l@5wUYAayZ|x#ux!j-f@sZ-&WyQ!Y;{ z$nfsDEOWWdCNyI43%}6^l$=Txtsx26-Fz3=0$e^6wHiTB1-;svP$6sDE>h*K7_#l#O2fd?C$)Xq9}0gDsE6MNBb$c1-bW#+(0hPD}U?RLqfmyM-+-x$@}k|0VEd;kqC22{JtR9)bQkOT|}YQ*%`#D$?;G zi6lVTjJz10eAe!SmP>2W!ZT?fh~{kea2prAf$ian6t!k%bmH-T>ybUcH)KHAB8_VL z6lgzfMr*9kku+K>qq+K5zJAqb%pxQ@VFoabWS3pfo^_n!vITh4x=zKP1jV}tk~yX2 zt)Ew{DCNe>oi#x*xcx&`_hTNwNSUnr@E6eHa9TRuM+O@Gm75u4qgGI+sK4&F3e-fs zrp+#g$OgN<`V!ifQgKy%8j&-%;?855ruOraL3#+{x2AM}W5zpaG{aVkS$)y7 zk8-X-N$(!t(+yD17^Vp8xn3ii-l;=+H+euB&UR(L`%3Idxq3c${5^ID;do9L?oXHfdF_sA ze@gU^9=L?F56l+VjTOY!KbB`j0UjMaEtfJszaO9CS-A%e&@cdx{&{wPfkCaC${&5RoFjXQ>%>RVNb*79x&Q|3j(PXdFAW!2OSvFwLd2T9 zuq**eQ(3Cp_c&sQ872MPg8tiPloEmSM(?~6ipTrDR-vvey~=L`T@=Vx=re$avC0H` zH*PlN7IX^r{Z|QLcngs*ath3vq44=ew^>l;pbW%KUrlQH8x{7tbq4>4%XR_j6M42I zG2&ktWx%Y;t8xdoHJz_ceHY$GN_;~InkB$b$Imj{ah{3?3hXQk-rf_xe2oWx!Jq6B z`Q+<5kqUGG8~T%>!MaV8h`{$k->c?#rVP{_GIh!B*Xg0Sy>e^m8|)MANmXFynQ^QE zv6=-ncR$L;*R35&)WN5({E%Lppm)7i!p7`aMDm~!$ zr6{roW?()aFb5^>Dn%67aK`seZl(^fok9tb*HjFgl`69oV+WJ`vz^RnvWnKcekB+X|6q!-a@xkQB|GyYXL_J?;(S7Jmna& z`ytE-02~Blu)x=6J$1HKlzMuo@FO%xRPtagDhQWvb+2@Lq@aGWo(tedN^amCSEjo~ z&AV8hVs8MTdCtk(Q0fo&Ke9Lw@NA`P>gLcC2gQ9t>PpXR0LVC5{3lfyD*8)%;Ujyb zd|y^hMo8o9)MyN91HuErTi~{CpKQ+nc)itfFxuow11a?LsUqaemT|yDBHsX|p%t+|s5XHpo+%T@CxZq_ zcBl5Hmz)KSAVZ8FhTcgN2zGMTSP58$!i0UUvToeg9>|)w;Xf1gt`3}5hyHbV`x_10 zT?%=cK$A$p&VS_#ztd$|7|8B`3}tO?bzvA_!`@R-qsh}iGE`%hQ=ajT+>ss``dHrs z218AhxVgQiRxZ92_0f_>vtPNfFbeJs5vk z3D)&TL?Jg{=2`sdM&5BNu`YW*J_)oB_UO<7gXhtF#Vc_@qQp;T>mVZ5yMe+1AQ)=_ zMLgAaxRlR7M*zNg!Bh!UDu+yMx&${a!|&p90oB-9!1rs3Ji;E9le#<3iyAfON6RJkeYNLRFG*--%{Y(%m#EkN{Q|+>!ew!qz4V zm+t+zk}Pdw=YZ*~&*9Urtb}2oT_X$1VM5pXbzh2`cT|z@rV;A=roPD?IP2J;cDK`x z_0blX(`QV?{=PRXElv(X@{0y8*$)@Kx0|XGk38;QF{fM!0YFvhNUqBlfow<-Hq#|) z^r9`0NsKUl0*L3+DJdz|(YN$yFDxGeEo2?J008CblexrR%SH?Op1;e5TXO}ld2KHX z{G68`0RjU3uR%ot!S;OA1rBgEJD(>@3<4pnTEdHFt;@V?go}$)^~e}xV&**zgJ#eK z{^SGaK~b@}$VU7sYVrk6~#Vp4d(e_qu>3qD}I_yVMcmNEJ z-8x3l8Ti`)y+LyivLF`Bkjr?#Z&Q5`%jVml_AA0alQxN;O)b?0-l^tVdEtxZ_!Q63 zhL^j+qFjKTG9hN4PX5z=zpz;q5vej)bhFB7tp_U3@;1rQE&!vMKBmB zE6kjPzqS%_pq(OOYUPl21wb*Q=I6b+sN#KnXp+>W-h~E%Th^O7dCOp0P-7(xqjl;4 zd8Z5@3TJ5?he`<~1-IB4)^4oK9jVuNC~x(!S4!0?$+NQdg${hb_SjR!mFM2d#fT8D zCm`dwFlfe|Q}5a?VBaWUYKszk49YLZ6GF9q7o@Gw$EHO}{eD=#)wCKLnj>XQcw!uP zU_0gQTktn;WI{PFQ_uEvNIkTav)@Et&=;&ojKYk03RZAPrC|ZwPUcuVz&+l*L7fN5 zK6{KKTcB6_gl~YS^Af8M|0d->@UKP}Dql8fa^+mUM*t>o?mC{ofDRa&7TaTW zAu{cqO@$-LQQCM};PQs`_|b2PM~JppTsO$nMR^O1(b#4IL62c!Vu*#YD>l ziU~o%MQgG?lb9Zx_zI_arz^M9q&)ZpJBjuqQC5o5DUu>Vo?Lm`r zjg%Oss@_8%wulz(fSy00r6-9L81gh18oFRJb41lq$O3lYM#WC5@eVs=${0{J#D{>3;pjK%3*cnxGz1LuVx zHj6LxiaBFejsSetOgRg)!9;>SBq}RWUzgaCq1vg_v@rJzNH-`z*h@krGj&W*-#nV4 z_A-y#=p=~fXusRJna4y5d>Dwclqt4sG4gq8tK$;o@d_m3a^HI=kvuNznesGwtF~*y zw$wMimosv_QLP!xB>|6sp5*GJUGmon4vL$%DRO;s1 zujlqG>yWsia%|*o9^s)+21qh+9c@-^H4Pj?NzfEmYaESCrjQ+hw`~A zXLj22J36t9t`uWa*3oYFAzI*>W*k_P9k@OJo^f4x!T=q?!CD`@1d{%CJs&Ar5Hk6* zsP3Gk${=th1yy_Y%-sTkW@{g{as%4)uRHe-FDpw`hzuv#)W-=LLf{jfRbE(U1+YtfoZ=clT857r20Ds8<&;U@!=_As#wmj%ao= z=<>X5pcB?P^3iN@7wd-M)c$>KJD!)_M6aIWy+{8o0CnN$zsbrwzVSJGd}rkrJ9bFy z`@i{liZ>>B&JkGp6)GFu1d<~j+o0{!b%eDZhfe+*_s{zGjvbf(Lnr2cfAYVp@t^a< z|6Ps$m({Q=1c_UJe}BsR!gyT4*I{PfvN+VIXVnD#x;iDhpILw+8NI^VIsI1mQ@HeR z$(|xJPAKRn>H?`456GAgqG#h}xvG2U8K{|Eo4F^V*Ul&Zhf`SvKkIQl_8$+lr8xX1 zWMyevB9w3i=CMUJS4Z^F&cHhJ+6+B6+^Ifxl(M9a5*m#aNlu7HA-79Gm-aryT!(^o zZuZmlLH{BTy_#}dV2N?=`)A(&<`QcPeW;+ngTe}07xec)wjH;bgX|U9;PDmPkjv^7;u?Wo38#FA*o@XZ?a$;){-Xf*C#{ zAEjj*gG^rf^JfX%5KMQt;O44%Qemzc4Y{@>=xD}PKrC)Z2aVcwd$XFff5RVngnWz_HLCS^%@F7UbTKgEIC z=!3b(&fsEl;}agoOhH0fXeW?Y)vSZqFz$X!Y{`G28856jSC1iul_dZBZ<+Kr_qbxf zwcbwFehRDOX16b1F0-66EW<>A1-qYa73b`6!cgXnISp@x-)BYv-&b6 z{<-3!2lCPK%EXPm5aZA+9D%~xjzzYpqXk)T(xXK8JLiH~I1cjbWjV`eG{{1Mu5E#c z@at9iYk!3LIj(Xz?*j~t<--LjtC~m@p7kJHt@1c$A{0cFw>e{XJuCg@i{f-`U@L?B zVlD%E+Jz$8%%DxgR%4dZzb<3t|L-ye-Y$zOiWp0qo2nWT!FW)cv7+cwWaAj#K2PBp zWQi%x5!Z^py{gX~yakj8L0k3nS6Sibf|@{k7j%C{5`Cy9Lbhm!#>P z>54XO+gr<-Kv}SC*Iu7u8-wG1IVq*Qu;E4qXhJ3jv+xSa+V>=XtJbnf=td!_RgO)# zo-Cigu?GrZ4-^-Nb{a#zLwZdutXi)oXMqm2A4fcWs$nC6k_{j;$Itr#z1-<*dQUl* zT|2Tiq2GWqdU6Ln+jpBCQaV`j0tcjFh10f6DjLzF1@=wS>Z9Xk6{X?I4O?r&!@k}L zTD9*76+=xZKVhzO@dPs1 zqDL**gKSuAq@~8&(H`v8$bd-Z5_Oc{^ArL3HH?QL84Pos2=((wXh#D*{bKCe*(pfj zkGsEs3Uex4*BbuW((P*gTXIVi4T2Zt7|nJq#P_0r;0h9|~dXt=tg(>D|Y z9`_yJu27?q#n%GkCDqK^PZ?Teo5e9?>q-+$yNMQk`4*5<8c*%g1YX@IKWROq%m9^c z{|R*D=W8{v&Fi1?wj~Ajtbu_lPS*!pwWx~K_?Dr)+PIjKCyejclK`A1#gpDL2AmTPx}U%| zP_oXgb{%ueo-&rSg%)+M=fjNx7vfeq^o0j69JA-MFbtj_={-8QaPjlZo zLYCO}l(6eLP-*Gx0flBR)%?=!%^P*G8ytI~Gz1q~%UkvwLvek{_9>?oz{7ggb=s(Z zPCsR#f>l9ziEW9-a!uv9(^kqian#mvfBUO?Z%LQoGJTifYd;PbfSH8t`n5;7WEFww z*JQD0=$#(xlKlt!McRe^r?1sK|E8p>8kDB@Hbw}(r41A%FX}2Sg8}!9Sf*ndIpNl= zlsT>vane1!)+n_1&F9EhDE`&w^x2TZeOh?+FVUe%WN(zfWFXDhv*F5h_ASC8^({{} zSiXIqUE%dhkU!_P^?PA6l^OY}3BCeX48zvPyuU?@;v6H*SWg-JlPGwo0%_vQ^Vv&x z0Zv)Lyj{Z3sw^}dqfi$k?9NObeJuB3;HD;=?*9lWV5;gH={F_w?qWFmliXkC6OR(j zD??LNOw;acYl7}-P3*_(jn=;bAl$>}mCaWu@$D4wHYGK8`=444;%4cG29#+Zz(Bfp zEvh1L*mK+RzDM)&evxxh9pof}$0ShC{qgd!=j~hi^gnyq1we(Wo$dPvU()W0v-(tE zFTSgHZT>w8FF!Z7_9`!W88`dFk{GF|kY=gvwsY#k;#&Q$?_*}72n`|Aap2`5|c&-E)HMw9v+;|Y1T?%{zE8)_ z=kq7^6$!Cc&~Mh0d9yPp`9O*I+%q8!Fi$BH^F1k0e?0*JIbJg$x_sMOG2XL>r=~U4 zJ)aTtmEQ}o#FFQC|8g?8Q~>5fK%w-4I{*c$c(sLuzSo{(B|WT%Dgf`AMyNEdeZr%C zNYRjc9QiZfl*c5Zi>)rXB+IFC={zF58kSLjT_bHqK1%?bLWFO?Ng%)9b-{bt{YkF( z_6%Vkl5MKj8Lx=6H*b zWjVgbF_FwS0lB?Ed%P7wI`Fym3{|)UjJo~$U)Q0zX777e)K>>Oar1{Ylk@;VQRXKv zQ2tGfN#TXzLf&b0576kHRmM|F`ZSp29_EC{;CXkw3a?Bl!pVD2hf0U^x7KYl1W^4QeBA# zRw)6FoyN1-?0%thLM30XJ$(N3&uSZ8n;E?dP(!k*o_o44Yb8MktU+du!{HA7eXz&^ zDm~!Ua#y;$YKb)*SH1)kIJW})WLi*KzFVctWIKgh@dNi5o^UX1q{RqPO>3X9z^Z|}h4?x&ob1==o|OJzhIO)whbzsT z`$zB}S@axvtHac5@N3+fO0Gletg+fXq$joRQ}gUwZ3aCw(1%;RmuXcZl%iR6wzr$t0>E1mU!^q?GkVsZED6c2NoJ!Cr{ zBtdZ|;_nubayh-(Qt!S%6Fxalduw`V%zW-hM1Li>P{jxJ)R}M#i~vYwsjcpP7JWEZu|GCdtiTly_5U*kO7jfy;(msyMLqk z??Wh$%mb-77WPou&j@;Cm9?(}rO1ZDvkoh_-(;5?-P-bqa?ZHOur5m|=ys*J zRx<^A8|#CswDOeJGUEk#hsaYlPWDs82xZr_VhhcgvT1;o4F@Oym!}W zD@_MtyuV}p1w+f=w2+m(g@1Y9Cs!P-O_1IAP)g=>cOP0fn7h=8?0D09P2-cVklF?Co)<=8_2!`{-oCVITSv4rZi=vm0(lRKo>9t>7te7 zd21UyNb-MCQw1)sg=v9tsc34h3jT3pK#O&*Y0ur3eGC7Gx%Yr-GVRuenc}D@c3?yS zI|>4dAkrNb89EZm7@F9S(4==_14a=+dXGp=Xexv%FoFnDH4uV?A|N2dfb^R1?5GSyY{vBR%a8PYq#|16fY=)j-7bGqOSwYd0%)l3IGX* zgZL{#8cgrQ>oPN;P1;H2#|b0H2$#rHVK;lz6CF$9+#C0*2<);5MEl$|xM?s``AAlA zDUNT?OpBPsZ?djD#(V~b`?rna`o~Bd6`hTA`}*~1uZJ!XK7@0*%9c{W?NilRCP~%u z{O6}o2`W*NP_^;6G;FSd(;50n{}fEI=pQXpT`q@s62m%sVBr*?Wi(6W-U>+{Kjyrc zY}s>QYWjWOCi%&9;dSW%&LgZ&uznSZcc{0KLL_z+?@bs#Hbtt-nXFE4jHlYG z*4x|pS3T$g0pCV!Jh%T@=&=DkT1AzC)M#sMZT)vvSy@?jw%E(~m~{W%rqQQ!;Dh(t zm0xc~wPR&4Ui^2y+P|MP7UQ*D3!uf=pmuwsm~5f!>#+hHODA%e50`gP$16;|M{GPk zw#tnZ0rvAsWw(*$Ph{UnQ%Fcx6K18ims))Bj=@53{P)cF^5ub^V3B+3wcPnB+_J?3 zuBv=Isob)MOdg5scJ}Sa{z{U;cn@APy2LtI@9?(VMN`|NgY|K5*3zYGlPP10Y+zw?QFnM_dbY4E?1k=zNZ=t7>L+ z;{OYJw9@zf_V78RxG)MW_aET2v}AJ)wk0|o!}C=6T7kmU)ReQcb5H+`rvjW!-4N|S z%(Kl1g$j*mX3`^^%0n7)PNf(9T|hm@E2&2I$&SR7Bdv8!{{zOSTKW4y4NhnDg9wAa z`r8Ez+wc%L$(L`F>c@QW4X`8{kr-;SSagp)+L%5diwzO0cJ65A6#o`0tm^SJtY>Sk zLEKc0CQKhGFn17PEatSbS7_g=L>a6Qh6!*@-Gn@Tayqkh8E;vYH6q_XCbhH(g(>a{ zdLEtzv}H_Z^_|W|#bA9ZTE^wIg-aCxOGJREmZLvzQG=2aOvpw>ay1!IRQtO>xK6C z9wT$}TyNkuEw0$>d$q_od-h$6RJll|gRez)ztw&seypHd3fl^WNc8Ad=5+-untt&J z`+y*4bEP>;Fbw;#C2?+u#?9qMl`r4uM|qgp7>l$zG~b7R3;qlax$d54VKMgq5KHx7M)`{!<#Ha|(Kk4g_e7A)fWD z)!7)jwV5PdLDNGeB{lh4F>tN1v%SgS(9lG(C>KcdU*S5d=2M)$^YtjrTu;QLwep`s z3S#{(yK@ChPtoW{$Z7~h)g3Hgdf#tOqKls4bdi+JO_i?wqO7Q73VZO1l3}{ zs;<-kB6E4vqW<;Wmd{Xi2s1W3Zp>%8hYH5nx4QFg^ZN$qpJE^7z2~-1>9{fB5Ng`3 zx5QuwIXRpCWkDmy2$+_^4o%~fMA2m~MF&r?)dcJix(7$|`m;SDd+Lw^))*2YawgTs zho%p3p-gB96f;;(lSjfNm~h|&OuuBbrd5JBM1PO{zuo+3_DyxT@7P`g(lcS&Tyrny zbJEjunnmcvz7T_`7|Ab4ml6dmiSrr^?oFnKN@_S~QJgzM6PB_kko|)3I&!}F+dwi6 z>0;DWuH+r`3X&^>Q>7ka@P6u9VdnRsU6Q(UN3N~EgPd3jp9?ax64`*6_+$c~tjpf- zDU(jNHLF`=dOoMcKo#S;KY9M*g)+|caoY4+4F z;akFI*#?iv)@Srgm&%qCO{Gs<%YV8SlB^YV%6%?ZKLiX2j@Ph+4N|i5+ zlxQn4G8Ohe2lROw!Qng#0RFb~aow_W@A7aQ!g{s|o-1dW;JjQuE>w`r^U9W?+^}#D z_u(wp4pfCA9uNYiTmksgm%;yDVic^6kk=redjFTk>(?QU5|SH&Y8WJn{q~~d z%TdMMKlw{493!i1h-xc*ewI|N6=h6#?=7lf)A`ICpmz@li7W2-20-65^T)%C%^FAC zql(iKHz^=veSBQsng4okxsO1)1l!H%Ut;N|ca4yDpi5uUd9oG*NF**f!Kc;TJG=P& z{$J8|r7A*6*K8tS5j`KmGbTSnzv^bF!i4T~ERzE9n%;xuTwmL=hPYhU?|}AMyqOMu z8XkY-r75BwD-UGBbe_X8253V=UZsuA^&VMEEj>D&xYM!Nc{JJ? ziV22=a6W{c1C2(YE0C}do^Z#`ilV}b1Ce&||sK+}=Q3RWEQImne2>LasfXbh2bSQ{}7`n$RMn<2wZs3pgxyL~el@{L#cjc&1k z28sG$?q7HFX6%})Y=O9@^m4x=fYr+M*_|GLIzvigZM8zz(npwKHxqrWPN_X#^DLK= zy!V@a!%50ylJ=<&2{1KH#p8rkp1EexwNLb}FqmKTE)1!)Y*OKO4dEd!e&7aD@CUzw z?u(P3dc|OVb&-mS02MMJmN{klT8@}f@$wf2+L=mUZaAp0o$OnAR~5cs(6k1?#cXl9 zL`M=sxWGIjS7786NN~FrycNf_?174w0P&Iv?oeU;tRcbm+IU#p@dD z`XRaa3+-8~?RxPZ7#G-9Y8a&O{4RF>xKP~FJrgCtP*#ld!tgH4z1tr&F<@4NX-d_? z9dC{$Wz2BLJk`)EKq0w}pX=secF|fh?3GJbcFZ6}20h`z`U;Q>I2VK%Hh5tC9t|7Z zG}0xg;j#?!Xtn1WeDS~J?1~W5Xb4R^e+ci|MQzzsxkwO*EkAw2x_#2N*qrd2f=`C? zT}?Y5Cj+QYgH%8gfcM&>?&nc0O;SEl^Dx&)app{2#AZbuCqh@cMVxmR#Dsb79ycHe z=fk(fmj5{U5+)ADrMI}$Jd0%|F1%bPuG?@A?O%>T#@3;zX)yR@Ju3GvghhHw;)0|3 z@ZVIG!Of`s6D>6drT{g?nql4KfZWJ`vu0qXt9c{e7wOJpQUFG4>H&f>*F7!w1cqeg zRNjELm0jI0QXrSMSSM3Z?K}OhhB`WasLO-OAM*lc>9vb5)kAG-dYirsO=i&S&w2KA z)HOQt6)n@2V8g+TMIi3N6O9(*C|Ms;o;UPrl$W9%kb+jPwlSNvJYVm7oAKKx5*JF^ z+RX?hS#RgYgusfC>M9L`*P%+B$Fva;n>7Qt?-M9%m+uk`-MRk5U7Y7LVWepNc3(WdEN-i54UEEjceW|}uOZF%10NOv0dxUL*)F*Z|3LIY^lpbKLSS+Gkpppf zJFIFWQk#DRn-Jp>0*HnC;Sl-RzpuaxY7aRTYZiTcYWlw5K3(b9g(ze;ogeR0nW0x4Lr&S>Y^tO94nKI?5Oa^h5UCce11cz%A~FW6X&(%#O8or732ru<+s z9yH<1ATO@~EfWkoPLrxFkJUk!Q>*RFmV4x(_Ua<_lNSNa7#sNZm+)Pj%!omYa8x^)NpE4Uhc zWABD1F#0klVECGMj@PBy7GzwjGC@2q^AIad27c$C%B_`w*A-quV!b(L>T7ulpHERo z1kSl6ocgtK;|7@Y$q^<~(ekT1#wFZ<1-(hygC(q-ke(ib$)4dCeSoPP<4{*a-EU~$ zJ$pae56>KKn|r9NEtcQEv5a}1w6b~Q>kCMnr7W4efkob)gClyMhG>AiRMxSnh61$I z1#gAQiEgMKIvqto${%9J8{Y)>G(Le@d7r8U?d%GU=}#@pSLWMw=e|*i5j^P4o?!U% zVcboTtalKS!TFmOVkJj{k3f5c8WeabIQ00#POr&stmhMK@#V(Nifw$GP~u3=4jDYS zbOfnJTC;)I{p@J!u2eA}%v&fu5}-=%JvLZQcl~E!)b4$KQuV|A|J}XtP#(oi0awff zS|XVw#27@$UTxEiuxfO-X7*IaJvoAu4d*t|=7z0kN7G=cCjsggUJPZJp&emNtFhD` z*U`2^Q#TR5Uz&#Z;ecaP$kaw3E)}nDQyU!-7#lF5Kfb9J#U2B6A}@j=@X)ncvA`ab z)Q(hP)lwL_c{xOH&2wI3Qb}B;-jtZh%)CdA$`DvtjH_}dWb>i8c*tk=luOP%+=w&Me^U`* z%^-mbca}j#OK)gPNwwCg@xstruPC$dc@HSCU4Ufz3u|51y(Wv3A&`r514s)dRvSFf z8r|uMJHI|bVet7MXZ`po&nyz)oRR_4Niz2VSM7deBH`@tgYYIKi~QY87M_U#*@u~0 z5p6KbirU^@QAYvXh_dBrKZQ)@E;nt+OnYsn<>=^m<;oQ|Pf0+b&2p?{vKbD(rm9pG z@QWAeuKc`+cQd2D3qRK;4>JAm%SyGhdb5Ox#8oT zD=lkNwaULd$iPmN+!a1tLi$_=u&znUj-rpgFsAvPY|tWI53K1jP>h@bKt`6H7Puaj;{vY#hh z(pcN0>rkhbp`4I+d~v%VA}!{a9`j*<5F-yO#LId|%qMOtvcD(M(%g6|?ZxGmb18c! zAbC2!x&8=cqY{!5fuSi({MFklE@bL4DVq6pgpak6hPJKbjl{?`%L=MVeYsg=W6{b& zptqnj@8Q$pT+W|5&hJe5J@914R*On~xvdm#L$16FF4ckMN?+fBD$&E~L0^KfRTqc) z>>)pWwv!5vdYX%H|Jc;6vyb9h<>i8tC9*S-ft#j`UiFAHK z^WLj#(q{s3Zk_LTA%(x!6PGiU5T$EMXR;AI7AT~%Y5?W!m^1&n!JgHil7p`#gn0nJ zaUsahgUxnuSRH{PciotZAJWv+6lMQ9!+3$bjLO9V6k1XDzJmB*w)#D>Ts0Cmd8&BY z5NU!MuKib(LCHadZe#ir#O0nF@`yjA@CZ2&KY}!>l?M#dLnS*Le9v2|@+lSpP+|_f zu#ES{L8*MQ6*g2%X~J(!6G1xnT3T81UpN*D9aoHCRvDQq`GbiIE4PhoI$XlZ;=dO3!_MgQ<~>y56rM?7?7PoBlD+ORCd{szd1A(9H8aky+> z1xh2!jX7TJ3zif~Mg9Yw9ag~b(?n#8MF$F3bbg!WDuB>HwK58*HY`ni-y?mNZZBH? z{P}ZWA|6CQkh9jyP&9*lPGJYOoYdZ!Ip_)$&%G%bog@sF!Xz+2nfD4t=Cx8=T9W4i zl(5Ems2C+ClWkzGJ%!|Y@!pBU4+u~8J!M592Omp5ROOpK(2w>Z-F#og?PvK^;6b?= ztaIx`$+UFVF*4cKl2~qqHQAd&D@-Pu8Xk_FT(no6zqW>bYBYX0H7WOw!=I*XL>Uw2 z>arMhHl-Ig4;tB4+9GcI-+(5qfMLr=zKF4$vcC0T6~cuerC=F5n9Iw1T6q;;oxN!e zw&45xhjWW01TZoMkcId^o_H#5d1HQ*l`zSNmVh?Hpsf}Xl5`>jHx*Q5mpsgpsPEHHXL`ix)obw0WjmgwebWQ+U>AxcH6=Qn+S-hKK-{gTcsqS^`?un`A%pQ_5B90Dny=JsLL|UbY#AlrcMm_oY%=0uOj68@ zx$!=F`$9~@v+n6YxoQ$}z46&yH6r#wBak#RXOvTB%Yj z(K#x}MjS`rPmR(`^XeDl||kV^5>Uu#)*2m z+3${L(d~V&W*<9h`MIAngT(pv#QP zF2Ky9LHvN9u4!bxPSZ=dV|(@Ym&{N* z=1eT_{NN&XQ@m?k2z05aJRxGr5R{f5!MXPi&q#THNac6UY5R&5lIm0#^10 z42}B_D~lC(PK}%FT`-kQ7Zh+CW4O@FFKR@!TQp|mH#kzT9es}@nK?!YpO4v-O+-#I zZAKgGJ^QXK)$dREaOs3n$=rmaAlmz5yn3;g`ybkQ_nS?bd!YNco!*pesrQ^*q~g58 z=tZlg(XHACOvDjc0*Lz^6B0h4zrdR{y1bm)U-uS}V=cEic49xI)uoj}fl#ci1IRG%rV+Ac)kaH9X4L)F624 z^{A{(@@oRy`AdG3IoVDruTxh1~*k9~GNZH%0FR4J6~%Oz|Q7yaShBG=qV82(36G&-JW z?hGkRhg||Y5pjKtk<=h(ofVH_hP+AhruXG^FHTY$LlayZ+{rH~EpNx~nk*5o_E`)n zjfW)s1+A?@?XZOV<%@KRl>k=ZW^?oD(r5h}8e|+hRUQX5UM$xPDl43-I~_GYUfk^l4nQoN~~%t(aBu*WuIRanMQ?@n>5HABENi>{5m zAE&wgG91V{Aq{7nP}Qzs4mhG_#qw_f8(>1x3+PYG9{8M4`i; zR44ra;<#Ryf&ULn>`MT!X?Tt{{b8SW`NW48nsVb!NwZ(;*Ba?=OiA#>HgUYnv0ac| zvId1~R5530gBDv;i(Aznr?FBmVds|lj4QTJl4bj(Sz%KF;_o~t_tLb(U^vB9 zs2^He4HlW0y=XnRIW*p&lWA^BVmR9XuOYcw+H&0>x-7t|RJEvGG^_7(yEw&tq*rz+ zw9FJT&(o1C=k10Caa$_0dw;_0P)>O=)n#d_xoK&kVFT*zQzmwQLfaHW+w)PiAai!K zKyhb654I~$Cvjk;)YTf1?ykvSMvPy$Pz?#DC(PE%E9ZW2afu(l!&}{Mg7TLiyMAe4 zsc*oy$(HHWH)u1H-M&LeLo?6xfjrB+J~B*Kg5;u3gMhrwIiVz(JLV8W7vfwvPLOLlsG(rdK72H0^x@=q z#fDf)n?(8CSQ8vu`qBxn$C^vn?%BfP43C2S{Q0w4|79K?S6^RO{Y2O7U)z`F3(Ux+N|G;N&EOkd7Y)DyuNGltI0K`!}>N=Akc7)6@|oDZ` z4~>|^`8ky$?Tb}{vVe0|S{j$OV?sYq>CU}mr9ICKmux;SUa0G0&c+J9 zj50VrOwyFA7#oBkr7_>{7yV!EcMq?us-QufSF*d_1rPb=}AAQOv7DzP0 z&YVb7{MvEbRcvmQ($qb;$fx>Osru#;i=m~$#Pl&Y#P({lZ0})FmiH+CjV$-zd=xqi zkje+kUs!fpzY`n*HWK9o3E$zQi8dD$-h9^K$8l zhKhxg?<0wS{d|J;X5drzAF)i2aIP7CO4lpn#x8{V8L1ZKS94b!y|19Ovzj~ zTc^2-tf)$D20oI8rie8#nn_Uh$6|AVp?q4Qhh>-*$iKJ2)CFpnO3|iltO~rRUcoS} zksz%7!OWPliOpD#xuhJ)iLVE5RJ!_-&lD6uZ5Cd`9_ zr3ICq$~;@yTbl9pArw;px-$67vZH!S{>RXgC{HcwXk5D-rgONj1`5FGbI*4yir>5( z;Uj@i3X3EG+X)eV%eeKRgPb6OvLMdFr$1JqBmfTde`xG?`G%X<++B?;EQ5r90(1=k zHjBjbWk8#N$K%V&6n85EZ^_bQaf-kX1x*!n76WQgm3k526&IQ&%}eJBK{a6W8k6cO zqL(IR?<1^f5zwsNM`Ux16H{q!MfoQzJ(s~0=)3$K%>Y#TqJO4pxbQv423%geNzV;5 za=Dwn0jfoh)bVG=lFidZS~Ns5mjOO-Az1yx!6Sc?ABOpztR^UsuSYi{Ozfrgg*X>R zwR+?#F8v3hr06}oZ-W_OTAVxw^cBTHHs4ZbVAa|aq0HskoI07AA`2@>9b9B5b82_5 zz9*paC$aeUay{5T%tG7}+pb5iLdRNoDq1QA#Pt^;`b36mt`!#C#eVQ^sVIOPhsJ^eGCGaxT<&cfGA%MDNa7KXd zu!`;XlVMcyIh7(U7|Vz5(E%YN0sT*`xZ;vwTLdI3xWq&K?x+?BSr*bT(txrU(}VNC zgO<*ks3pd$Qcny;ZVt(3G1I^ra7+3lu`r4lGEhtM@`)@ylSwaF1pX_%i>+5X2fN+LyL0E=F{NLgty@TH$h7J7w zfBO(xA3#<^+1mt(9LRv5oSdNUgqVxk zmP_xnkjACLWu3-UTpqvEO>#>WPDm`fKYeQ+IK#+RAR1x0JwE3XLSaQ>-kH}>kPf7m ziucKhXten=h*6MmT=i^ivbiZb(S-D@nQWU)*KXgWde(_zZ*LEk4pEvcyc>Z^*@F+^ z;shPMUx6l{gnsR`UhQ-w#;qss%qz8>5z#C+C|&3K68{t?5e9it`ZQD;TP#xpuig1B zv$u5pbRjtEM2M}{KrVpCezF?O)Tz~Z02+>}4cxb7nqb)a?;F6Owi8%35iSeBRmug5 z1gNQ7606kI=_6+$c}lWHSh4w=*^&IARYKa9w2XYQfpqW)f#Q}wTW9|s2ttefka2%= z!^2Gu7~TkLGf@vpTvB<<6#xa#qHy~a<(qAw2tTlEN=}T=@CM7qEy#nB!91M>r=`(| z!aRf|;(?h3FQv2ku7?lQtMg%s3oAq^4kXUX5I=WSs*vU9D9Iff?Fp)tdWH)JxbB8iqxX8i4JtH>8^uuG{2+|?wQB|Q_0KyPa>*XK> zT$XP(6eDBa}hxiZ+g{`#q?quV^yH;|| zpk}6p6qJZJv+l5t>S3AhXX&)F8lT5Ot_>#Uy1J@oOOnBOm>ZF%RrykjD_$m3hcMEH zrv^EzLj8!@bD@4?s%NY7D#r8L8;A_mCT+vNk(vq)j=U4AFDOhtmS)Li1XP4){UE0hyq{HeSPv07u!Mh6@cTai?H2U7yAJ|l9^SUfU_cg%B}Us)^9SeF zBf|0nnthHfB`hxu$;;gOHwm331OQAX;Na7LrQ8sM{(rtPICcXLMSfcV8t<6{+(feU zTXTjuNMi$$ph`Vic7s30P zP9vISPrP#89hy)8jv)H7W9f+T;AZ5xe;~((ia;7rHG4~jUgBesOi}%)VT>RJgkrDd zLP-Qpa)Ta*KP2Ma0@3+_av+yt5%5{eGUyD-s5(;$v z-Y2CD1U#YOh;Lk0C*+FAKe!*q&%iF#s}}1NEBo?bgXh%S6HUO-%v~(vwcDl88tc%Z znud8mNW2nxs!nP2sj2&b%)skSF)GflpL1QcTfsdR_Jd(U{vmm>EvJEO`9?GD^79*m zwu8`S(DcOYZw=F*JE|w@9p^6&ejsUmc^Ca9a36eo8HfAvX|6tP%Jh15r#@Dt3x+xs6)5+Ap>fC?p+pENDe zS!5pS$6yhXLS(4Z0yzo;H8a%Yh49w7FF@O#`zVVGO4YDgr-*lHiY@{E%Xq0q z^FsbM_%V7jO3qoqXs#bsXTa~?p?cPKcOq`I$nG*s8ub@&etD-WRTX8?U?l0<)BARF zLk(By(C6)1_l;|cc#S2-8$Hvcni3XfdsEk@VuC6hO}##F7pr_B7bVWmy%5PRv#NI! zodz1)%bhJdD4R;hpb5C3(QHe7HP0iQeAd_lX7;8MR=oop8R1O;EboO<4oIuTAritN zp-VF#=Gt$I^0B|LuNyQd|#Zv(u?C~r>*Pbuf&8!dE{zFjRz|bsv5Bl_ce`+UsT2Z z5t|qst`oenTDJg$+Jcaih`SqE3%nCQbWA^9aZq6_FQg(N($p3u;Nz6dbgv>8Nx;;- zhL({*kBj9QK}to<7pid`eZ6%tgY}fxD%TYUu=5{x*}i{$P$WUniP6Ac;v@%$ywlTE z*1J`{WNT)^@9R*+J~dO|8G8-&8@kZCa-oe3HR;5F*t5@imHZ+Ks>ES*cO5ui(W^6X;x3(P$RpVM*Jv1DO-^fDT?M$;&m)#zytiy6y-_>nX;MX-I z9uAn&HvA}SiO$6yzO-_f!UO)(@=Rqv?+fRDRBZK7TKReUycOnjCrV2$3GxM1>V}xw zTeR$^axYp00r+wL^Ty5%31wLuaGX#x7)(AceJpoAt^K4Mzy3G6vmm4;&O+G_48u9a zV$xhqcB#}0^jc^cS16Tf8nSz}FA-}FkQ|VyY{m0Zy zS^7iA=?*(*@-Wb<-wURmKa?~4mT>&G%_VbZ(v(LTt2-u=206FFJyouiDV_V$fySBVS1)e)i-3$FYfWSz=z8Xa!{jCueM{ zk!{JsmkDuB*DI`krAQDy01=|<**|y_;CJx zh?BQj)-HF`U6VvSR4o9dX@@o+D{*^R7kXwC52o|#o{!k}IN-*@B{^ZEQI;3UayR$-b+7m9(aRcv1)wGhUvuUGd`ftb%Gk2)7neA4S z$wAb>uh58yAb=Zo!9Tn?JbCfK`d_4$-X6T&kymqU>gk)Z7|jpK(yg|IVkNzphNRam z@Y#u^p!b|-B#To)_Z2{{Eg=9L2* zJ8)#Pq!EEDJtKn`%mHaBaMw`P5N(xtc+E9ZS)D z;Wfuxi#J4G^JhpV#7o&-NXU*GemvJQt{;)F!UChzHUbx_Y)hUn!~6S)87 z{j>z1hOE&8G+#m<}SKV*4oJ71p?KdBw%!K?~I z_i-Bz{@hHwo1doU`}W)G9zmknA72-G^NcG8{3hozG!SDkS-2ooIs3L59z@?F-nHk2 zzUOZ|J~!Sd*_jPbEqGmio9prUeNoWDLdEa^KH^!Ig6$pNSHu1yYfaPcqhpHGJx*j8 z5e_w8{F>}=QT&yD4d%+vn+2T>PFI~0M=RU{DPfWg?bfD4PD~_b4Y)eHyfKloC4W7M2_fdlH zP5$H+H?c$wC_PUGb-ETOG5ee6LIb|!AK@*5+f#@0Gy6txmz&VDEidf1r)gLv*xb%Od3vv8;-3Fz`=EJ3Q=?GC zQA62NAB$-dP5GaP6mq$C%OA};rcW-S7H!tTSvHNUtDIgh3r88&c!!Xw$_YX$Dfc{M2_Bl9(7Lvo$H4M;K=piie}N z%YF7q=My~TwbXJmzAZ8Lw*`G1I&jkH>v>GDx#+q5>s7iwvHH>?R%=e3Pa=i8tFU4( z(1v22uqHimRtqNPu_7C__y&rSfqG){NF810Dk_wvbHXwz-r(=p*2vAI`4Ggy{pjYS ziny?7TN*eu*PDTx6p13xH9R`%Y)li1{Rg<@OsJzC{OoM(>VQ-yKE&@YwU)39 zZb5^hGfBxIe#Ca4{zzn_gQbSRwHqCJ!i zs7QPVRM=(H=z0KDcv=(K+Zp~tCql$ExSS7FzR#u+PB~0kTGhIg&12-rWdMLlgq$0E zj1+r)uQfbk`M3UZ*ALRFwo>v~2+9FIWbu%RuLsbNtjdRnhx0a!6*LpgpygD?rW`{S zI}WO)Iw9Pqe}SO8r3N!RJIE>$t`@OeKo}i`(;`E(8Y253vLUMFGO4f&P}6IEl@yHc zsQ8%N1EUT?Yh|5SB~oUg`B2$zk4|(TK`Ev<7dR*I;799CkFL7Z z(VMLcu~Y8)1o~SviNOw#YJdG#7=03Osg>x701xsF2u5P;|Md@-!|SJ(kbPY27mDvr zS*9F9EeH!TmjFtju#b<81+obXK+Zun!LAibD*8h7NMB!MXKT@QnAFfP0C20!%4l9L z2!!QAM`oJsIkXy-P~&439e`?M&i#ONkhX{nEn51%%AUH;52ci1ss|BJwl$?a0VH8E zdqQR?ayzf#-Mk32_aCmX z4wcad49p0N5=4isrX}8T03d@OsGE?y;DXN(>dy+G`%~Edik9J1!1?U|V2eD~jK{XEH%1y4tazh>9n6Xmudq=B-Qu~ zV9RR7G@N~HfPM%mi?-<2m84qsMT0_^x=KI-Vl zFCFxb@%5;jMlPa^c)7z9D}ih2C$%ZLO+wFCp6J1PPed;+lckX9F#@gtlPKnnuL(F{ zC*W?e(+?jIneD{2LE~HDWnp1O!g7U`OB!Om{q@mWNNa;X*+ms&RJ`wv3!=|0ujHv# z`CG6ZgfYlcVjU5(sc8;UdOqk1{U87Z)GcoGPo`wp4~PyW|;L+>LvyP#(gBk!eJS(BNPX?;hrys z(oo>H`xus_a6c_6{C+3Zv&P5?11xu{&|e@v>DUYKd#^W`B@2obCc6R-p`PH~CEI8! z_vt*yI9LnF-0dmTJ!pN6}w;dZ*;HF3vBRgu90iOJ2l=Bg3c`E-M9YW)PVph zsL|V4guJ;a(=AcGU}OwRbgt4J$x^O?{5j+%FYCl<^<7&&cM;43oy*%G7PFm$x<#vb z6yaB=+RC8e z!2y|xpi}vKwW0{SUY*p8;rpv(n7J0Zntsw^zSG+dz}v~M9oI4ptmeJ93r=cNep4!4 zl+mP!1#en$DHnmRhY*c^cshVT_V&LN3fo-PHbJVhfjc#lm7w7hZ$hs7^rFHA+W26$ zfaGM}iN*^#&2P#WgQ6ZD5lrf?boed{GksP_<5`WS|@6XMSFCni}tjO(_FFhD>P=(W@db=b99k_R%JzB{lR-Ad+J^ zesIhvnRzJ*6`M*WF|H>O}Qdl*QLdr%dZJ3;;>%5`us{|4v z=@1HAVkMw;vSf-OF5{(Q;RYV1iMEQgqmRkQYP#aKr^! zVqzzPU+9*Y4+EIB2w^DGHfHJ1eX*6Q$y~vn5VQ33Lml(+Evc9-mtwblj=-e&?%17* zF`2*__Xaud2bgAL*Jr(9{Us~^&wH;`cI}`&lmncQjsw`kb}3IQqgXRj({Rwl*;&8a z*yfk-dv}HuoC=K?z=EY9?yvqL5TrBM?LT|%w9$JnLe|5ea~YQ1UEV2~o3PFF5l^;$ zSd+ceduR!oJxg~bmS@D9)Mu5&)0Y?WzWaa4RIE^BA#7pK@3V!d8c> zV6`o!#rCi1F^U$iLc8K13VpC90xFL7J6v#)Mu}^bJ~I?#OyI9&?6YVc=G=tRM+e9@ zdMKQ$G$)+79Q$;uH}2xrqcjOXKU2DX7M+hj?s}VXLVEHL16A@YO=S3!e_r->Eg4NE zE3Ye>xOVvftkf^&Wnd69=Lwo#ZXJp)HNyIThIVs4jO2(ribp!dFbFH*D z1W)4dpp{?8M?Tr8mDAx~EBmtE<5aVnplyL(wx_Al);DznN(x+CVq0{O zXbX%Ap1t|$So!ddT>@pNv^y0&;olKl{gU{qv+AWm@l#<=`lJ0)NuF% zu>x><^*9mE2l5XdghQF|{@4`s8t3K`4teO62k5fLjO;jAoZ4SbUJo=5!cR`5;l1jiWlZ|BZqw05HT+-5S7Ri`U*J}N{l+O#(^mDIm$zP8*S*Z>RcuzT!CO`c72d4y- z7e#Y&99(x*Sb{tH0W0LqTW3q&Q|Y6YQ)itMI&zs zMC-(mUPUFF2+2>a@t)oiWZw(`{wsGjq!Gxb#U6|ZdP(j+6!(GROG5;mXo72=MwNKI z+4$#BeVfECEypM5^SwMavh(?=7xfB8Wu9E>AjX=GiP?2L)qJ&>S-$?`CKJ!SYmU^w z_Fom|2-_2kuhB!E5IGGT63Itv^#aO`Upm-m#9z;9&uGk7SP=9i#E4pUCT6Ij=4zyN znMLsEKQ#%rXm=rvDn=6|tS5hMjw2*-TAeJ-UgHsSzvG2XL9a3QhKzHsK7`8ltArd<` z2$`{HVV+lQKKwR@aNyBCwUO%q)~aLaEBCssk)m@L+2+%!KZj`r%zej+i-~O-sMwnBy z$M~nWir({j8+Bm7Br*W=Ej4NW#P#|%!PC?w7)2#9>Yq+mNv!oyy(!mzL{z)1yvWDQ zxvcoG`_eh0kkRNaDFNMs1f`@miND?Nl66;73Cu{JPHS&szc`49MEIHIt>6g8Ki(#y z)~Nhg^kUTTG%DQvL&)O~9^HD^9P_Wb<;&)!@>r|U--oWRK8w~@6( zamTN`VRFE)-d;1+lS}H7rZ8}#L$ingWz7hk51$J8M7L{BZ5Z#byGwn4CaZSwRBF2x zd-+Z$-1^}p!+r6!gx-*|7w8W|9$jz{A-kjszkT{Q#)7a-@_}B8b@qaik%W}~2f>4N zN$r9MHIoil5vrdT3Me8g3>x^4RNccYVTWZ=6Pi18#i297IBjdAvs{3P$xVB@VRrL| z!TG|-u)H?bUj*;{FU!_2$T$OwivScHYQO$p^YH<-H(?@%wr?KpTnN}*itmyw+C2|4 zpp_uMv*QsDM*mq^#LQ50+T~lIrjDAGz5HCTo$Oo6x60%1$75?sY zW)K0F#dvTgK9hbxu<1heL9)-^?Kyf)k?G8b`-V@QpE}#ZOl`MgtV?^!+Av zy21Fl^V!XDJQSA)89u7oym2)91Um+jBIMw3-}J8&&ok-*-X%(_IQP80@zL#L8`$*kBaKekG&3dsK$6)*p&NawW)aczJy>;#O7IM#3 z8ojWe-13PIdxKH>vX^ggu9d~y;RqgF{XVQK!T;?2AN_J?_*wz?r^>YH zyM7yYopjKcFrZtTSEe@YmY*DXoKzi4w5DNBV!8nN5fCP0$Z6fnmSg2^HQ3rXjnbJ{ z)$?3@B4aiFr@7=*}?n8v3od zi?P;vE%@nA#X!{%(3H4TsG( zPI~03fA^3mb1VqkhMucf)I*s@%U+(G9X$W=!cIAJQZ1Q=42mcqjNY#vRt2j0VkWV@%P0z=T}RMO-quPF5$yRs7{}IvvNM@ z8)jXc8582gGNuf(7|{Q!F+onrd*I6xea7VYwFWeS^la!vnZ8A1Lau%m)iwVhw+Q9g zL0)lhg3?+pexJ{s`wMJ4Nk%Pp9r9e@;+4886-TkW3Yoa*Q{+OQf8Hmw zqSvAsp+*iletKfi0iF5;YyW2P5o5ioE#ceTg;RsY;$#@&d9hMBlefZ0YpAl z$z9bMcyQAyx1r{`2jzL)gQ9E{r$tWKiL2 z+bFj_NjQ%zD(8O<)fO}Os_|ad?ejXLY}d&8^XFM6eOdFvdg@GuIY-Z*3y)bE^%rDj zsg%7;z4=z>7g^7)Gu?G2l4%;|0}}e%B+YZLTqO+L(SLKvXlj7E_HO%M9=a3d^Ct_h z4B8se0$%7xAG0K6k*?>8q3pb-#8C^2pDfD)y}tIWF*^7@;Ndy8r@yj)Pd*=^NlX=- zYQ&#-sUY$7!{AFRLHu7IvIyPj(WAt>ewzyPYu#guG_okqEP-mhy-dJsFt~PX`>2fc z5ue!}yRNHMTB)_Mze#^S6u>{Tc(q&DZUbnuNag7Hn^kK0=YA^lUMrswKOS**RNy{l z+p>vSx%;hs9MSVN-kTMC=Ef~r`A6gB`;DkC_2noRUwP$bwL8DiUz)8}GQM}CU1ACZ z5wdcL#*E&&MiDskR0+tmNRzUm*T zOoQq2xqN4TL*|^*5OSszKSsASs|B>e9QMm1onbiTqo^sD7;EwahaGhnG5biD_I3Xr zjV`N5%5E_6oLqk)t9+1aq&?S;=NcwYe*K5(md77Pd&y&5CFT*n^*`xCc-B*VbN*8SCBhu6J23$K&k__g;ECwW|q^qYZ zH|HPwy-Iy0`dGgH6SqH7dBji$H!P7anwe&R6*20Xj6OLYkdLXKy>DA|$du^oA0*(| zoT+xUtjs%&HsckFA1}){n0r8V`7)2aT@-HRSKqpcRiGs7O%|P!yyi zT|q#q(n}JM&=iP3XiD#>2r39lCm_-T2~A4qMLg0%hlDDi(nFKpVRlf@=XvLynd_SQ zH`kXR{)pizyR3Dud);g8@SK5S^O$uGgD?zmSVRU^&-ItR1R10JuIgQf_fq>$RcF=` z!oq&VkH6oIPP&os34wk7eSKt~_r@wPQOgW`tiWk4MP&`Cr_lPEoGrC#a_p_a&ty#z zIhyscp${pDMd;#NBNkXZur1loPA!sLn2X*NPV!eSZB7%a!t^%WVMwDyk@lP1+FEbN&I`gzz5f8v0@ZwEgG2q60& zuBUaAhfdY&M}h*5Bz8)#Em|Fh*>xUu8Slm1cV5dXM)qQ^GSvdKL}r*Xd@^$`$EBTF}Zi7Ji7pDO{ z>;D)OGR^ce!XYCqaya#qrT|QpAY{Krc1SZ>TUA>QR9lh1{~yGAaGL{?17L>(koGea zJ78H3SS)algT4HdGyyEfFCq;5?tk8!Ocej(0l@G6CxrR)aRF)j$A$g~$o_cTLw_)1 zx6ur3y&y^eC&pJTw@CqdWC!#+TuxR=^j>;3kgA8VOYcj#*Iu)`Hn>o|o$Je8w5M|rn&~ntAeK0-eZkt?e@QvISEO7>~5_tPqwq&a@Rh3+d=1h`64)e z8R@Zp27^i7^0C1M$B$i9%m@pmA#lbUkq#hYAl{D#HPi|?>c zmQB8g95wPn_GI@bE1c*T&bkh|K+84tmAhn_AZomr7e>3%)%5Pn_lU+jNd5idwEk(n zdmnDAcJVU7AR4d$kL8KFl@By1QnqQ$aLLYcyR2!svo*L6uZLA-ZMUoP;Jn}7q3*5(GiBur|2eOP9|QJJO4t`eJ`?CH+b7vkesSPmQq z$$k&`3)Je%fJET&l{|Me65{_kwRkQnAU2CA}{w`w(3ZF zimS9AD#v<|2$T#<*bGtGiIQmxj3aM z{lYcbVWe78CT*H!ia9G!=a@VX>w^Oc>%)?-cDP=0o*uIiHae!<8z3d&?A&4>_rAtrgBJYK^ z#!DEAsiel<&#;;P!i;G31W6*l#{|lKKguIt5*FMb+mTa?g=OoT)uK}XUX|k;cdZFX1tA%>P zkLX8pBQ<`5#ddbD6ch3aawkcWSw`R*^FtLge~BXrjnP&)S<{4U8UzR#J=f>whLxno zyNe1f+e1kV)ZjS#0s)O@MI>+zI5&VD?CNxJ;fbP za-rQA=hfHsZvqWKC+Q-K_V?1maa)CO9I|a3oF?CAl6iPmT1>axs&ci*u=p$^SN5I5 zwy)N?k4=N_&~v!nuJhODOOJJm-O*E5cfb0duBJ0vtUU?#d`=QiP8ew<`z$ zQ$snlfsf*CC3?`KFNV8>zD^LI5AP<$NDRAQnR0OEQ@3ey;I7S+_@E`YURO!_z>`bB zTyi*8NSFF-tkU{jI_+e8;sVhZ&ie)tj?;)2PZowL=t!rY(K@cJDh=NU8_bBaDS&Z1 zG$5kFQ)?OW{!o+vuA?gAXz_cfmGyNt>oawu zl6EKyik^)S_l(Cb!m#>ALjx9@W(05Q@ZGXtpX3*EEg{@pLQQg}1s1PXll50mj&I<; zK1`&Dcv?uIh|qCOb54r+ewXUbwEg<1WfNZ?LNpr&?So9NL5 z{6Sr=9i&~F&Xa_qi}9C;Aayvg${bDTQu^Dw(AVv3%Gyi+1zJm;4{iM!qQDjs|E?bI zDsjcFaEiYP$4H{#T!OhnDobcjfn)z=69vhkC8aptOvPih8!hi;M`gbr!n@_aF`;XH z`00}9XM8XRr%Rx+lVx1=4=guEDiNcqg2p4@)vX(4_q*R>29gjQQGI{qM%^ve)OI%m zi_{8xcjRpTT}2MT)wZzdlxrGixqS)zkrahYN%Zyw<{ZVtE*P*3@cZ&$wg+1_o6r z)_z9wM7%7C)n2;T1XX*(mppYu+1xpAuENa8-^S<8Rbp_UhWE^;>~Wi%g8D*kzgyeJfN&2-z6WVn&9tV}WBf^C zhSQ-#;qEA;F*f%R&EQRI)0b)SWqMInaY*1_8NTRcRtP_}IETTzbA+WvKh@hnOKH$E z%TpGttlfL99%WYKj7g5;pAjamq`7Uibl?O!=NCsCeAK?H_^Q+Q&x$2UUKqlB8+)f@ zhgCBl))B%NCuol+N}))eoHv&3&!q3*eBAPrO0giA&5K88O?=06?YC4_sN`x@8w zX#n#r{HkG_#qMj5*xQ`#(2)Qt#vomE`6U0C4AmUN@!kPjOtOtJyJ-b`x@YHy)I5~l zYDMnR=tLt(1StmKx6+0?k?c}nL%CU-$2T=b=>aDJZb9xAiIZNlEFG2%F+rFTYW7FGFO-dAsTv09;vf<0>G>g9O*q?gXUQD<8s8R$ESg!5xTXcCOH~RnWH1;n<0nw_-n-@7 z04O^R%OLkxGjl{P(_E(>aRkN_Qf1ZXT~XX`gvFz6NCRz(YSMGkj|p?^?t$G*KpRW3T(jPN-v{;>!lO4VExz!)B`SO+2& zCNBNp4Am;+Wh}e!YB2jH`W%E)nCg#4>AQCu$2?5!gDsds;_v`$q>|#mO+ACe3h%VQ@5|4M4Xv&1lFKEV4qdn5 z3cq*prg;|M@u>GI#K+UUd5P2%3$_@*i}&w#G}c5~U@68{uUCqR31v(VZ=B2UTAyFb zn2YrADU}$L%Wt9I*EVC1Z5ylu-xZ*q{*5?KpnWWK8fB7umQSO&IK3O&;8vI}t zO>(iK&8sOF*Q|8RfF)2j52@|g2m4dSk>R<;u8jA zsguE?9-i3qX)mQfk}>F5IOaxK)mNkB06bLfA+LPMeMb~iP~g)NG&MPhs8i!(Ot!&m z`$8cRJk{E5T51*+a~ApM^%Au-eAVYXj#FEQT(mQKT%~y;E~SvJnrTqzMIYk@0}ElI zcSd2`;^pSG9srL+u;z=U0`8(fdQFj3@9qEw>dH(O7YsOthi>? zjX+`Z`gLvKV365?lDF?Gxfkg9egNDQ5Qi zAQMY=30w&5yXWZqTfRG`&cQ9uTT<$1R3nvJS4+(sXhw>XO#Eq!tngXZ=nieTTH^IW z?$hZCwtG6wW7eB$tKBUTaOOx1rA!v{N5&Hmbro6ld*oL2bB(59u@fmpy#gm60Wy0q z-x!1&(fm4Nh$%&^CK_2oNQ|r2X@Ya;*}0{SJUgjFeA?rs>1A_8Z^Y8VPE+IY#*c4T zkA5r%ZN62ySO(Q2NM3cKv>Y!-_Xwf_Zp5Kt-e)D%XXvS{(snHRAMKGBAKj$QZ(q!ijg!Ms`w zf^i96lWuZvELVpOK1*(qG^jjU-%>u{F#X7!(+|fAVeTrmD(&0`p^-S($L|DV1~V$b zHItR_)8|VT^qyhfx2BeUaK`T)dk zZDL4H&8+N(ODWEATdy?+zbM{h@7WpF^a-L_(b^%$fHH zh!kM5$HSBcXDk)+Sq{;ls?l0);%VJFN83*};h)9JUHGSl)@y^(95Dmru#LEu#O zn<~z!vA!5MOOglq56GbrE(Dh?ySm$>?X@}PIMaa--i6iEIuUG; zm^1fiJC6s<$Q`5FGRikog0dRNoHrC06ol*= zFHWu-ZPZU+Uu`Kgt-1Zj>|uUbfMVB|9nP)YyIv^AbP$dyoP2w6Q&SG`x>;D2PowyZtB z?%0h1(WhI}MW}TCC>{t`{JDpe4{`j1m2ax8n#Y8RbvDYaLwz-VehZ2prkkMGQpVhk zwzL=MUN1VK8F+;G4YQ{ugTGOU-!tjn%Z54q6flY zS?@&Dw9t5zQa?Vs85(a2deN#n7$WuJ)4G|zGKkn%v< zcBu66sPcly8NL1t5}0_i$+m=^`w6eBpN>UfG=qa~I!#=y;hQRp{(80I7eqq7ioxt} z##Fpdl%$IIDFFjeTl>2OX`(frw~jsR41E_8f(4$eW)LooRczpG-^`}xety+TAUCNa@UGN`gyGeHNHpcY-6$ep zC@Iys!&iZs2M+vm*{1x-33&(qYodz-4hRTmRViVXkz$h|God;mMH#ycjb z2pmQq>3tWus@a4IsThxA6_!SkXg7IO1)YWUsSuDPLr!6$lutGXA8b8PvUkM-TleiG zM6ViU(b?#grl*C8E)l# z#D4_`L#)<_j8iHWU#5ePq%Xs8fEH?gJvZ0nGSgEA`Mb_wYgi{kOVvDE8%5GRVOr+M zQQCuMS(S-QO1h`PU?Z0}d^21Df%Te_>rSAM$lcIXBh7?VYfPs+K&AMkLa*TYp`Yev z@lYjtGI3TQ;dSRB7;LrKrlZm)AJ2a&yXt^lnT@`9{+E~LhY7p<_|PeX8Yn_kY~1Z3 zxiDF5pz|CCtIa2KpN}tQU?&E=?7SD#9RR@`#h;ga=pU6Y9g3$R6$67AHYufMU-sv%P@Q6_(4XPRGjd7t!oT;$CFoJ@)>V7|7y?_cb z1%=`QhE9zfZ$Z;0Ug#FUF zP#{d+upos;&CumCA#`7aUX<|s6nSbyfB(LBd@Pg8du23GpdBPLZlje|=p+#4R;~t3 zS1six+7hzp;^a6kv6!uWVyw^T6Y~nbawoJj0RI|Eg+q+Es-y9;RcwK@EuOrlmF}G> z)$kJgIWcwo5u`l(!>$fs1i2?;t5prr<+sw4YhRjtu?V4culCiZ@>fx$Ct9xF3B8E1 z!3h>=KI0ed)7+gHf`Yj)zoxX}drVS54&}MCu?SdfmEx)`QdanQ&;C-J&^J$DIw*9Z z=9N({v$m1Q`xQdje!2W_^()thy@t1fnq2F9dHsz`tlYX}(2@drwejQk?%*+sjNj&{ zS&3ijb-X+QRs#EGm{6`XG{rJZVsDPhNfbDn&-_DtBuCIn42mw-HeQ(KxZp9c@>Ts@TogDxO`$B8WfH(8z{0a#&5^IZ0jJO(`cxn z&?(*Xb;#}aM0{>049=G}Sn8U4W7SD-&zj?0Yr9|;kN&r?35x#wn9r^H1{Fs)Ni9({K7z?jN z(o5dFJNa9*tjWS+L0_*XQO1fSVi~d0al^VU@2&@<9*CByueODA*)WUYkORUlt0dwY zd^KEOA&^s7TqT<&aze*B$vL&_9nU0I*PkN(YQCLebV3}!s@dV6HbfWD;@>rrkave~ zffTczse*i$W*qYC$EPwN(1T;HS2DW+45yB)6jBv{q-x*UB=Poj>T!2KPN=2oH;DGl z-hVa@BG<-bRph{124M@-MM$p*W!I`eiGg^)I<(+*Eoj&}j=l<#A_E4g{_Ni})@**< zE6RGHuq_6qd^7w8Wu7_C6JFP}=!4hgf9@3E{J0E+VI_MS z?>&w-dvl4mF?w@uT6A-4y`>9_J*6rbKdr4-U-AX2dcDpDD-7c*S6e^E!wtgx+VJimE;Y6CIjN&|dPa%%t~~EOgX9oN_F+0)Z9f+f11;$~ z-Yr<@QmS_EPYJ^mQ;F|f^t^GYNa4$s;}ajMypk`6eG|f|6FxCo+Mayw!tTyE0Y?vb zSUBN5J4eqBAL_r~QB2|e115*UHZV;9&RKVXshscF6)cGKOQ&^w?tFI16YLW;6ec1< z7?>_E3KK0pEH}j6(NnXCth&6Adss-}K%NMwT7Hc1s#eKJm3!TQybrcF4XYj}!~9GA z4XnspDpZ^e9m3_uSGlI^uVB_kciFFeKPRvB+6Z0H2#=tf;*46=z)XNlAjmanf55Ei z*L3y~e$w5ej)4h40Fa{S><;8HsPk#trPDHR990n;AVksl=dNmc(&H!;qoe zA1m0KDHArO%VjY=b4CIx`UdmNZS}|VNT*Lt2K2Jn2+gJ-v5(F)SaU(6(y#HX#N&ln zv{@=~4hU0KgyS8il}A-EY4loo$(f1a*+R7|ztPOeXbewky;f*AW~3Tv}JgoXn^ zm5e^0Ff1ZNz@&WVW4wcL+0rIpl1)7k&5c5%WB#e65yNkt7YZLbjO5Qm9C4lfA_lq) z0pSeTal6Y2VmfzXQuK;ksn93V0Cl{CYQXBl0gXs;r@dpA*UI6fm10d zn)Ix5@j`T6fxmLj$dhj|J`^+|VVLA`3=$W7552e8?iR|rUdg(%BmRWb&FV6bT6og!LhNpbwNY~`6R&))0IbyYDIyd}%x$;n=Dzw@2X(a~4nLe=SF z!=k72Uuj0M-7E8WrKR+XfKUTZ{$_A~Y9PxG%jvT8`ljcDv&{scZi#F3Ud|~2eN#+v z4~Nk0MJQ1hAd!(M`q8Z=I0CDFR^nR~sFAaGhs|eaw&R-%vnXcSd9+sHg`fL3Q^z8? zh>1mE7%D`o(oL7DJwbN=%S)Xl+`8;a=|z&E0~ghIs^qVG19%ck>)imih6h?kn6HN=47V z|M5z38muC8LQcwgo*{b#tzc<52xLs>Q3GX$T3Pj{Fu&0w*lU|DAfb7hO(r{*fM|{e zj}c14&9q`$qPvIvJBH7oz_OiH@}Gy07G4FFR}%v8_gIyLwNE=hFx!?ueh4YIxgKn* zU=?k(6bu==YTLJR!BBX9vq@Y6X(egK4w?YPd7aRgWZewB;I)hiZe{d)X*ZLshb?g| zTk;%x#25$Il+^tXZV>zm^QsBhE*MIi9=n%e7#^VO+g@{934a9vr?wB1YWCnX8oz7d z{*+80G2s}$o#lif&(kkY%g#wn-OSpVlxmL2`!SU;&P#`qdL52It^w&n4oo31vOVa1R<+EKv%l?<5Pfxw9(#dp^{qk(DKK> z8~<3D2W3aVZGbiB|8vc;Eqhn0z-}Xj0*&hx(Y}t0-yIA*GSq{^KgV4s+8DOJuFiKe zC3tZ=<+T?F;-N7N8`JfzQRm#(-&e(z5F@d1D;?%q->80L+CP;X{QbhK)h}2RC2dS9 zRT6Hxg?-l!?z~mk2yMn^rBx&gX8!;uncqmX9vTK2Y#E5(dnrE|QWcPvjW#o1yaK5j z2MaJk(mc9qsGK_fN5JnzL>9GxPg0~#u>~@nBwL7u0Y0g`mmX4r;4Ktx-dbRN*NSv4iv*Hk=+V2J*p?}V1oDGMy| zZI?Nky%(BL0fhSy8WznyN%Pw3f zg`7R+eVLri{8Lknh&+h`@@+WfO@2Ze&3R#Vtrke7de!#ci+3mJV+4G7o+4{ZcfSYE zS8Z*P)Dl!He1TXmw+#qV=G^$-i8wqJG!x^3z~q>SRinV+yh(I#-!0o5=db4fS@!l5 zU6Nn+Hg}SGBVkfGM8a6o^Ala`3(p1rH`Et|dMtGtwB9e8`tj?tTVOYJG~RfU2-^(j zd2)?5jb3@Pc@-cDYH`I@K0wab>+t2n*4B7}!h*O>Kj%FW=QhIrPP6e*iqpg|nIoPz zJV=qx^l+30|Lne>qkKq}4Iz)NzV7$xLU#i%tb}9z){mDGdM-Vcb#6o3_f?#sakRi! zP`rU=M}DaOYzayjcwl)6#fM==wjq*QHl!Y@X4xlK(#Wfw9EJS)q{j+hhK#Ff#L4KS zqxrc_zv*0qF!Gx&H=cua82_vvL*Zl0fB*cDAb1EGmYZ#r)3K8oGHXyAu=~@r`&fc? z2VJkyFQ)OQn{PakYg*$Af`D_^G%vomn5wC#pY`_z7jP*dFk#pyPzPO82kYLl6Dh&} zl<0u}3`(fk-(7I@y3v+$XDGML@))QOc&^K7fmNNMG4_|itv|VZPvCbw3;DSkPqd`H zmvWm2r>AZK!qoTauUoZd2p<7>Q=Xew7&Z=UvhwSM8*ZIT$JO*h-d_h~o-)^eTqe@C zN1cZWHx-55gf8tK+&1ucB9mOt2|i2bsMKIdS6vIIbV|;>10^+Qj{k=uvaSWBiN==y zQsdA43U#TbIXrp>*sj0+^(&6>;6vI+UP-3DVSLidCy>3rX#pPe_HPy0Z-dkbJ=kUc zD!I`fK#gw^Wt+qM)Q3C*6XGRRT(H0DqyLrf1v3ar zr4Pp{@3I|gR8z;0pyWDg@P6d_;Gac<2d_m3sL2n|lkxkuCuV4s~6KdY*_rvE+G>;UbI$);rrSr^RM{_f^7_=C+6!c1@88=!Ri{`pn8MQ5yh8K9vi6a54n zbRr!*r#dcEUsHNQKOPTeZ7I<#48!KL(kaq@>&oGNkoolKvm2@21q>?W5fbS8)GP|BWqtxkrc$^ z!g8moq$j-kxyO1Z;?+Z}bDjld`-QSf!zq{}KEt@KLf49P&w~_dch0_1urlxiipEJn z_s~51IRS~RHyy8*t_?cW;5G&zhnK@AjH=D%{*ms|J)pZhdV;2iQp$C<(O3jHp);zT%>==koi0%HqN1@u z%W+I^7X+wEh*Q3!ArjAoS3&sdhzi+D0F3z5xz82HTZ!253b%!x$%?!sAd&P1HF^lE zb^e8}^x)nMo-5B7@b3o_K{bU9T@qN*WH&#hn|b1^VHjlXs|0UMVg^RV5h_SK4${;=O!sD z&+#&3l{TGt=f+L5emAb_~Kd|Z9ZJ=!KY)}AZQ%!N(5slb|sU!bPcW~R377w zz@kma$xzS|LI@8l1=GYOk}(dXb{B=ro_~5g=7Vbm*5Slac9-ri!#b@!YAe;|^{+ea zMgS*3!z6lFBD*Sz$}Y#gdN6#UW?!c7s!MO0O2i5lh!Szu-4FXdJOCPGd#h2RCZcu@ z=wjEZz%4vqdCqog$+nuAuQ;X~7S&Hp0@ZC^{6sAhXz_X(2+&>MX;>XfUsa-YX>6MLZrBsS_O zV0zSej7lF}HbHY<6amw1fds{c1q&ocWQeQ`G5ITe31>-WPmuM&YnT z0$|e|u)H4(Gi{P^A3%5u#IQ1%0hPxP*sfC)Hl)35$I}%1FN%yl%Q(NexBje3 z%*C%?uZc>Pi^7zBcbbQB0B-jsx>0ItSgHT4f@zlZWVRYhoC361_+FuE6c6(DM9Ai1 z1DnD+bm{{SfoNz@uHQ^#<&Sx?Ld=8Xuq&3~i`_s842fN2T?EmVwCNMAL%j1nM+|*L ztvW72?>1}QeX-3mbMgs@<&~QVW9Acy$GL-XM&fW1fX`3VTaOugugImUMN2T|vL5cd zA{GaebV6Z+i2xP*MEPxeJ0TsNhI1^DK}mub+Y}LOL0t1`j!Nj0*F0F92QL3t1As$2 zPE#Gpv})mxOd8Oe5dX(s+)dE&Ly=MhXZtnUA)>V5M_~57LAR1KtFDxJVfv8pkEwUw zz$2a?IaB3uxdiz=2iPf~AjDrw^iJ8L&8OTFN<~A10E>3F0l2AbI8Jq976`n{VL4xQ z4AYrwPZ~0h3)1&nH`A|Szq~?rfr^;yj}1T}8vn^zj2_8tZbze44rT7uc(m#Y6to&9 z<@Y;^n6Cgb(?yj28uqWNR47~kX)+1)jOF?aVc~MYQrv~%?F`cjZe?+{@H+2srKv<& zw!K5u_jPLmqUWrEIz~_IcFhfAQbYpsjgqF#M?T~76#xUaH%8yM1e@M`P9JEKUnzr% z>xvDt>U5pW5u*X))JSOQ41mXQOS`7>MnSM!#s|crwI%$tw9pfm!vfzbRcs(9Z_3Xle845|>8^X* zC4YMDy=v-CE*q4xQgglrcfh*hCp~Pi33zE{(FTmTGSN2KHaD-DCOwC20=3YTC^aSF z0DIH*{?Udv^FD^H0ElEHOGM7!%Oe{3$k^~MX20ah(N)CgYvIqts;sK$1&rYp?x}eT zi=_))ne`ESSlPpNu<$M#&uJw{idnW@H1_7ph4MEkqT6DHuB?Pa`WV|pVSBGZqUOHn zLt^X?!mfYSV!Tw)d82zLPN_>u4m015Ox8Wi5TZ_99j0xRRMla8v4}fZ^%UGBABaet z?#F3&UxOHTr5vR#hTjsjpUl36|-%+q3>Zzg8pN z&{66E3|aJcs|TQ+pxbDY>!U|Rpdhdoy!H6|bNdF^bv*J3p50_Nd#(ev;-;hjstcn@*4Fw0Ta8rtlRM)K0(8L*FlPs7 zz;Kn9*U@19x6r#Up7)f9dm)fmbBcp?7o=`n?Ok?6p*P#$9IVzmqc;#+9c_i2yzh9Q z;}}g81|ODtb*?tVCeStqw&(F*X6YrsWAW-tXKpV(gXc1rn%s=Mf?{IozYvKD($0=N zB;kXJz!U_Qfm%WeRSFLfF|_Kw2nXqh5S`(nj*_0sg_Pw=^AQ+OI|vyNh7rJ$Yq+$45q^sSrIn5;1+PIiywY zm{+KRXNqZ@K{HXtSZyWpRo>Fx?lv?1nMjO$|6ks#Z&;)rW{DcO=OVCGF$I5lgNHeY z$^Yfmijtl4%1^*EEgk1``Vd%-i5#8O`r3O&$nQqY&?=n|!Dby}7(G)Nm$r8|2UuD| zGNd~3kv2kcs76A&%yvukJ4qLwl_3yRj27kqMXES+)-iAFl}EFE`JTxWM_yx-zVhVR z;SOu3tJ23{`d)YvuR$OzKfSb`1-7~eDQV}^NTS5dRJuiRy0ePg#_COv>ef_@dk)lp zPIDW88fVh`V&i}ex!5N3WxquLb8rEyB4IH@Cp6E4C+U;)#^uhPPL~~{ zJ-rpn2@E`A1Vhscy%O1pP60LmAPennrFH*0w8$NPk72CQ)gV{1cBIYk~=r0 zYIsZ-#>Tc4`$58PsC>1sT_%_;DgLP_Ca+eoQdCbfFlKh3GAW~BIK3Qrd5yJNBefn0rFzUhYBsV!dY4r(G-TvD>3p_85{sHQrkVTmv$Jg?3Y(cr=1&j zsNQ_|0bP9N3gn!4{aDF!Gb?jYl7+#=y(98BMXM7ZV}Q^0{$!GT@(3&gAi=nA?a@;= z>PtN==iTPNOxv^d(QZDu??c@NQkz>AU>9;ylc{vA{6=W9`XSZfnOTfNVhvv9Om?1H z&*xX?jD2o)0+fLCh*XcVBwkDKT_X{jP1v)rStT-$y$##KfU*l}_r=U|{AZ~3?^aXD ztE9+nQQzXbG4-y%RM|h68^GZdt*w2cKraS`;MXfn(4orWaS*UlRx7Cr!%nfue0iNj zmFLVQXqKUwAn7(gyJN;AEQTgKNQs!#VKWe87n9~nMtTxyql*z7@2Q6?N?^dhBh5{G zHxY*JYqJKXK0~+?jjE0B!3IE`v!Y&I0pPrLJQo{Z2$m8699JrrGjZ^>Rd?eJIo*1sXWQeysABQ9I$5bsNN z)p}RwBB^l7VMeUo8jpc4NBYjl5$8zy9gF7iG#|ab=qxR|C7X&X0ZA5wVt+X@vN{W* z)O>5bb6ZgI#-cCy+05#X*uIewlxy*u6RNz{H;|MTMX$sYjz*LgSYVYw>0^R?#77`e zjN|Mk#yAs>IaoIn{20ap#l*PMF2{>ne-|GHCOJl4+z!P=1n80 zx}^^Z>P!)_YZmt7T&A0_*#+u;jQ9kIz;&XP4AWE5X~7I{ktv-q8WO?6tBJ=wUc>qa z;V5I4OC^dSi)(=*7ghD9nJ}f6%lIDOm9O)&;-;Y207zvI-pIDIU3cKY=N5xQ4a zI)MN+Z}+Nl&ayKCBoqHieb-Vh`y0@4@qhb}Y?}|V!9OPaH4M?pIB~q`Ug0I<9IOEy zCb?7@kpPNG9el*bAsXgVwcN)uD|SdvwNY`P5=6waC)>cpG;;(%;^~=pKpl5kKUox1 zQo7a~k6v3bKBdui4P$*Sk8(F9_hnh4@AuCq15k0g#2ZjV`i-6?E>xU%%S#Tm=*A4v z^|G(b&;OF$h5A8Gvhvw$9F150j@}q-Vhz#FJHf;C_RbeIi6eD5XS>^ z+9*?OSOidLzZCS<12I3=G@KAa*ZEhGZGAtB2-9Fw$tyBvM;>ahhr%^4gkuaOFl`wr z_@CXq$eS!_>VOL*hdsdPs$`sMA{fO&c{7C%nCOFS1Q+NDacJ}OPp(zF3p9sHRo~64 ziT2vTU_tKHUB>DIndqlt;O{Rsw*={!uzxxQ9=hZQ+}4=v@5`S+l_#sVdh#rmi&kqE zKZlfgvAvUVTI(;Itlk5CAE-*V>KGkn2S-4=hPuq!0oPfx5D%A`nY;h=iahj|OeOwF zhz`BIYA@ErAk1es;8yK8zU*+NZ)u=McF5N)&_T#-rLW&&9vY8efxe2y8oG?plCU@7 z17tcm4}Gvfmd*gsx#$0r36FFJo%K?jSDtgfxuwHV%EEt9%-7KsK}uIkRJ9N=C}ww_ zGalzPs(GwH FFn4yD9kX3Q_$-|WhMUVg={=ApZlQ4I%7`VXogvAJHl8JFjDENH! z3%(!DEgO@mBmx#RO$qLSAqgjQvBouFe6xcmMs)7aERJ65vFjt`n(I3RG$dlnZPuB2 z^lLWc7aaHePtUfeH|sN$_u$)xyowa5AE}YVtx`DRnqW2h?qjbWw`&dOJM{u0)|a%~ zEm&2cWF3_1nsz5~Pte|XbGF}!&2OhEP$T{X^##{KmUXK#2BbfAyv%5pX`%g5nAgG> z2GpSX{HT55HQblQzcXn%FR%4aa|p0P8~t>nFs44M^hk2{;(*0V0d?jz>aeiD$VS3S zrYb3Z2Zp`n*mA?CcT@by3RXomiiDf-W3C6yx+slp#^W8TJHtU1t(+rg(4~u3%uuJW zL924oYYybcw@)*Dx0y>^;9FRt_X-OjVzp#86>Ho`1Kr!<7?FqlhTHBlbN;#==T(1! zl|xCdM=eO8{2K}O*V37U_mV2WI)h5;w=E!qQIRItREm}kF ze-ig-SuO9@j(hs^JSGrUR*^v3vc!rw9~KnFBxW=HeEgY`TK0fx^H5f)Uevl)V&@WW zMq(flC=3Lh?Lb}-lv*=yubFO4UBN(O*MOE)=EFUJZeilI{E}nI zrqnOfjsE+~W-xiz4SB7_X|Ca+#Qd#+D^8m*pACzBgmbhP;t-HHB7EK z5wD&`itF5Em>+Vx|9L7OJaF(yXw~G?7aE4-W?v<$DsDKVk>`=0BzT?B%1zM4Zvj-Q zklCCsNh(f;VjwkI^1*DJM5({4@ho@nt6J9}*7(kHstjstpvMlrv=puH6N0*d7yuGY zvPve%Qc3rppj0Xmi7%Hl=W~Z9AJ3tzQC! z8%hou8e-V-X8l~6p*B3x2Ity4FX6}!T3qF^Wbc2Uh`}KzbBFAko=S{#g;O(|p7NR5 z3W+<8Afa0Y4c^(;JZ&%EH037m>4W6cq1)C<%h>Ob;N~>!@`b11WkKq4Sq)uI?tV*g zinZLQL7+L*=A_F4k7+IJ`Zv$7IVFtz1`K>BMsB9zCfgF*aq3ltJ4Y`YSD8iW&3TyT z8Kz`c!i5n7EgdD*C7)7(t_1_u?!GRv&z~&rEx|(89=;#I3 z`^U!a?+*FDwUVr0P z-Q6m}3^0cxB>Xw z&gD-1Wz_VAVM?ELh0secJ&juUE8VBVqqE_KxyB8-LL6)s*q{m55RVzkH@D8dR$r~p zS(}%5REHHCo^6N|X84~4|Ldxnpq)^SI?*Ci3!1xlx32V9v08M_TRG@};Rs(^S9H@z z=6M9xci(QJx3@U3+9gJsc8G8uubi~mb*mn-TKl1bohc@kbPWGr3gtx)p=GdW!kSWMhF2%){Uze;sA&1)IJPI3GqL4VKJ&Evnpk+4{` zrk-uLo!ggXAaDa&%KUaQyiKk_$z^A(PB4;1%J(~vbF{j_clC=a8OE6^)~1|xK6_yy z*N@J0KDR04fWWYX%+$(iX7TDw<9 z9WQf&7{>>vT!6Jk@uWID%5mJ0*|MN-<=ehnr;21Y`_DC*au^k7DvT>)@aQn{Ig!aF z_V|(A3xOdGG#=Zf|36mj;DN?YBJQF?<3*(zIbrciQS|V6zp2N~tUKT=2vyRIF)UwK zOwHbVqw%aH<$tXFon!!GgQ9FKhBA=;1AJIM6^{pP-c+*E`?V*SO}(uNu>j6!4u7y- z1`Zzg0~GvdbwvE<-Oqu$>jqV+zq_T;wK8~!Qa=ZlcX`+Uw>SJbX5?08>2%g*qwi06 zt}_EC)B>b!z^OfI{18SRCz@eM4hIfU^v~ZnD*P+G|MSZyXa4ugf19rVHv_UCjw$&$ zp5Wh)NB<>E`T70-HnsXEEco96`TzT3*#8a~fi2LkiYy+9df8JA8f^jkXc$nW+%oI{ zp2dQu@SuHGw>uyMeX~+GK^mJ;10rZrd86tHNQb|NaNCL7_9e*>o;KIjyC6Yhsp%JN zzK!^v>h1Z83nC9eBdV_pe*01Uo|iD541E9MQM z#yBML>CqDw8nogQptZTr-sU6_P22;`kU(yj+;a->wWIYRgC!28*ljVdHCx<+&86{0 z;+R|x#@g*Gu+~IPTrnVMl_scySzRL6@`1Rc$-DJ6HR$^||2BXG6g{!S_#1SCRfW9Y>y74$Am$qqLjrDFG5Nf!4;}}ic<%n@W0OWdN4|G8T zSMOCWcUv$CYES`1A6?L>p>NBq{h%@YnCP?X9H=RBURv)E0fO>efKs& z6U%E_iC!}uoyOb41I1p6LB5@dpdq?!)bQO}+Xuob`DVPSi|=DWr;w5`Aa){)fdC7= zMvK9L5qeQ9*QF*Dtfx_~l;<;<;0Deka0J!qVm3X_Btlcp7SPe0o7V@*F~j55w)D9% zIq%XpRRF2o&=y)j(_ia;Xmgkq1Lr?z_^!BR(hD}wTc+lqDYXosHy+&WuF1`IQ^nGOkWy?`SRU9O4i2V z&P@qvPIc~S}%pAs17BOFT)CXZhP20PSf(e)%i_OErK()Bvn-q(s>MM3TUq6 zmz~?w%tplvhZ%?UJfin9@gx$Z?BHv^(&g7wFda^sq9@VLp%SDMg|!R2s|~C9#qW{h zYhWTwUq@s?O&o&Txc+|dBWPMX_*363&Flgl&H#;zRA~ad^ zc2_%Ox4c@Nu8zgXyw>iPbL_EtT)j@tUJZEsZMs*n0kz*6kqo-@``8e(S=<8Oy19{^ zA<$^w0z>x@A@BLV`)b`a6woHVN#YdOOnuDQkpM2tC?8)UZoxLYU>wXVmv5mUZ4T^q z@VUC{i&$py)wR?1xE>WzZW&jTl6t0SH(zqKSBNG2(R660mu`jWO_;`Nf;FWc%YV(6_!-#7N-GhhT%F zD(`mUJS)l`v^6q4y!Ekxm3~UwE*UG%r^`)SAC_^H;Ek zK4t*2yDSAWpoa@Ima(ShCS}G6H?jSfpfB2!wom)T2`U^OS6sCm>375KUlDc^YZu`` z)4~CMPBA88>*n!w4-mI7K>GnZ`n}ay7OkQaZn?e3uwdvp$$7`Sje7^e&<*h6LdiiS zE&N%O#QDUSN^O$wuP({ntw*adCrl#M8LsOjLFdgoOGj%?vf94aw!`VH(KducCu=mJz5n=D6YX;8wV!z76<7Y+i-oL)LxM%XetB|Gk1J)t%gZA!vM8M7Y z9$*}5lCG+~Eul{;h8EMip-FfOmEac9! zgWA*R;+qsPRhiw&s~ZJV5xp*xQY{$Otnbl43>H}590%{_sRu6ROO|u z&&Lm+ntOr(ON~Hl^#+C{L4~CkrJLUWXA?KNF^hH3*lzRQQ?RZ0_gSH#iA{Q-;JsGi z45b#{MtD)hX-s;@SBL)KGT;~}Rp~eOb1qxBb{*C43Z(dbv`Pgduv?e+5dy)!9p(7C z`yocCQtww8&`$4xIbclq*4M`1u%dEW4I^MGDMcUHJV^MI}(ToYNZX0dMCS zeV~kV|K44P?YlUNVQJnOb181G5NtZ6OV2&R(;)2ZfH)5A=SIx?VC<8)7mXegTl^%* zZz9@%(fL!tV(jzH9i{!rDo;n3TGYKqhE!Gx?yS@F4R#6G(K3D%>8@cen3P7*KzqkE z2K9e&SVb7R)E+bR61nzH`aO$3Hh_Rtu#YUn7&*IWdKS*g`R4|zs}Bmz(+_3bKQ12> zCL5c*|FfCdt3v=fwgGJ{1J3{cJo=}xZm@Xx1(qF_pvkte0vmmRr8%9~r)w_&VLhF? zcx~YDo`E@0?RzYhQ(Di-5VpgFVp9IkHfI`x^+0(4*=hK*+wkYZQB>6%Mz=GGNvt9j zL~WcZ^Wt1R9np$m3&C9Z`7;h@8dLHcJI1na3T%d$KFgJJ1WobLb1i$UJ45GQw0FDA z0cp)lTM673R9Lm{;sTJ=Yl z>1euOl=dXCB@-pQm@#s+J48Fy3hJ})y3N}!e(|+QsO9V`RZMnJFnfFZM>_bCKynPV z&bccE3lOfdg)5yY1>wnjm81`(%S;=&8@lO*?ac2_yT`ok`k);mgn00#=bLegfu6UA7XkeOIVbR96AA^z4GaTM=UUM+(#T9eBNUdZ95>P zZ>wVw{M2U$Kb{@Pimro&{?8jQMe>Ju!U@=z9b&!YHdNk3ap_Egp>%#BJ7t#N9)BN2 z5{|ZeL#tBavpT87sIGK%Hb}yP-Za;^PDp^B$0yof)6&dow#yzTmB7G=tlgeV9{PHy z02V#n0kwJHB%P1;$?W_kEbFW##n0DXF$2Wm^sG=vBJaev>w?rD)V9?8#*1P}WNw*Tvbf*KQGZ z4VH=Ed8aN0hh9}k6nX_0zw5tMB5Dez@{dt%0?0F>MNb-oXhMv7z;3h*FR34Br&V?a zoh}_F++LmKH%B?sc4Lbs7(2rS6cwVMt#?-*Xp%qO?2d*HtUAA=Up$J)vk#SkH5Si} z5HH_vc3jh2cnmbFvzFz;#~qt5bx;J)y5kN@Oy-uc;;v@*H)bx8H}d?lUq@j%orj|G zj>|c8U0_h6;?>_IK@_yXv4ya?Mk74c5uq(jSIFTQ`$XCU#{pK%0K3@3HaySa zB?XQr1571+3T?i6bdpbDmr<9LgM$_iUNXly_j36)h`t4GwzUUKsr#>A7dXi4JZqDQ>`-*}iKv zk?c@Y!RLO^b|J--cq0Ap1x6|FbJG`B$c%8K)$+8xF6ROvi6;Y0T}$olg>Qq#Wx7tHmZPL^5yQyx4YPQ78 zC*Q^_rG6J#O1q6o6)hj$3;i7dPYFDjNv~z_RBw1_tpNXii|`OY5{`RQ(k!f=f{`WY z6-EkCxuiRlAISI|T*2=x2d}cc&?b?iYdVZy7yJKFem7O?TdvYcyfSb2&k*P`-QE4Y z-<3g3wSoJg$^Ao##F-aOsP@7s$5IjohygZo@0}Z#&@kvpgb%6T*0T6G3Gjoi!Mhu* zfst*Rw5kp)pw~aelAz|1h+5oyf1g8h7t-7tBm$U9ktK%5q`dM-;viE70noX53TySX z;7AM)J$UeIhzK)|egaetk`x`l@TZ;$jtpv}vF~B-S_U{fA{pep7gIwYz!v1^tCn_}h6!%sPofF{ z8BIXS(i61AizNP05&%sAod03H2dr*$rF2tDNu*jV;#!y3uQI`-pqwW<;GdvAg5QEc z<`c}|%UuKnb9evLLZ9R8@N53OLlV zx=ewMwXh&Ri)khu6BtK!!ZC6G5DDmvS}{{ zA)W4ChG!Cz++}cPni3?m#75{IY7`)t0G)5vO@=CFoO|0HSd_AByXm2LBz|%uSzR2t zZP!{ikbv1tQt#v1hrpm32i^v=MmY7fNUm)Hjc)JLb) zqap+Z^XrTnGbU%*zF_*=ze+_|B8egb`hu|NE@fv$tp2v+sv>ILX|>6<9m*(kUd!l^ z;oV47vd9Ig}$8kPk#P8=Gg`rvf-xD&PbJ?gL( zb7Ap`5+D~X`-%gX?vHhkT@}n~m+yCliuzq&E7f-Bf}53xEAOEhe+>NY^`+hm6Hdsr zNv%VPAtQk_^QDr8F`Th#tx7Vezr~qG^@QeI*D3z^>xd)bXo%| zf3zlV!g56sf%g->BWF9bv@Gu(VE75ReI0tz7Ts)`dQ9uQ$pC1ut~EU;YU{uSqoFp3 zMu-Ea!nGPq87N1VwZOOouUS{Cbcen19Xpb z)?o(~TelUE^A?8~4J-a}eODQEa4w6ywv0UQ*s7r(Vx5HgHOmRapI&BK2B>rSanr-H z&UwkFWWEKWFGCm^NU;eOcR{7YW6v$!f;C)o5Cf@2rnU=?3}iguANB2J$Rs;B1#Gtg z$<+R|!}w`@6F52l!cT=f4GrxT`si(YlmaL8+2NMzi^~pt%5?-K0Tno5{9qZehfRy9V1&#QV3P#c(T4?^;;qhX4=c(K1o_?`n zF!yS39osX6cDu=YaU0Daa9h@#tlbPi3<@a@`jC}cw%p8<+qGi63!KZ@HG^MXxcC3i-gbd-|WuPhK*F%V*vV* z(l#c9*tLIIz^;;9a@V%69aiJ*R%dkO&PSs8#swPdX|KZ0b^cggxSn?l+8M6nEyQ9bYjOk7vBG z%=)C$;xo2JtCN&_4dNEOL)Zg|1qLI(rFLA0OAbAl1OoYeyH9sJF*;Xw;m4tb<6$Aa z-!c*J_*R=o!Zio9!aUykK(brk5@ru)@H_`#YAR<4m=)zAKu-5y@_!dklv~ZS#X8== zEzvIs&T_Px{SJv1Z|atEu_sF#c+2MGn{48Hk-_ zcykZlLD(MANk&^bcS1RI%H83u3#Y^^st>y~KSB~c1UEqOkQ4x&291DJ_-L8E*ub6{ z#WsSkyB(KpJq?k}#pxB)_%HjI87u4o(*&gi4(+T>;$T(mF5r3MTN1z#z$YkbWD;z2 zymzS}>xT4TVVzymOS;J&@c-Sk{`5TIVZG;ESE&!tgjDh*%_Oz>rh{WC(~DZ?$M4P4 zW`Kb&70COM8czcrqa;W#k(#5i!1ehT-Xs9IuAR7W$0;_6S}~Kh%llwFXYPuG7m!5c zlW^>2V5ELN20Qn|KMV<~m`Y7w`&9c1KAj}OTHPw>i{tlzDy90iy0jqnyLf=L*JIWo2~!oyixTEiilia0hBw$hPmRC{*kFuGm7Y#4iwcpm7fIDSrBJMn@)h5-qSyc}U-7;M1*cU8a zCYxf_37QC8pUL8Rn%F}OxEnCoRc(G!{iZXJjMJ`z-H6UJRI8bGa)+JfzNN1u$1Xty z!f>Bmv=vc^%Pg$C!qhBy**KXTed1gZn}wUe@ABfZ$g=UPehdn^i$g+)5YpUz(MsG@AT3pMe~=iX9#~9|reAomV}TM&Hsvn_kBXH`V*>=L@~dQ{KB|0N}vE zEKuv<8ON?9wG$z$=}e)&Y3(VW9Mj7)OlV4W;DDcE-YLyUIaCjtQvpT8XRgcC>M_6; z{G|pE_ZkQGG%sN#K_P_~bbBw=P!)$=Q%KS>9MI_ZvlL|s$(mrCf5NbMG^?S?Q-@)MH+F&Y9frDhr^rKWqb1R7=6U zP(i-3qU&>=%Hzd1hwA)%iq%M;%H^0FeO$Oz#@u<&`(=(E@+zH*w`A3tUN^eQs z|PNHq$Uu^<0eLW6P=5`2Ki&QVwr3LmD`x|xV5?Bh<*D9xl6`& z5c@176LEI6nc}}XpxYLb*rXfMCZ1nfSzV0xxzg1qJdVzesM3!HzJ(kJWkR~!5q$lwEkU%o9@QPT0243~GcmAz zEXecmj{fyUo`9jsoQ!*(I@;zj={yuYz8qNE43rDoM|qiApfQ+`w1a>$YV7_BQYsyR z*mH>?N4OPG&>z^C+O-|F-K~Df6AmBG>*oJ+==v_8Ea3$RfR?OgRchqPTLEGA)l2f zdtsUStpOn1HH^Yy=q!$Xvo_G3p2CP*5H9m2?u2jU&(FK~>tWDdg#KBj$E`=@DeRMdYQ!?KsA$U;Z<1I+A4??1FB@yaWja0z{%&e@$M{8Z#(k zKvF3BE~yE~vma^Uh6?ieP&>PsU(x`!N^sdsDUs6mIS=Ta7 zQ|f%)rN$fuEj262c%yzXt&!XgM--U6&RfkoWiY9J1aqmJr8xJtLR=an-fUg3(0=~k| zXsmF@je_)@{m*{a5e>V6Ryx!YG=uwasf+essM+7EzqkIocbr~MUoU&1SDPsU92X9U zEcnrMP3Q#ck$e3aB7Qo@bWvE3yhCAHoGg53V4>BQfz5aE^hLReV|>!7I7Biy!s=^Ecv0398&6bDdhB!| zB2sR;cymhNJqc+JL5P}tcl;8C-D+NM^gCEhlp?+utf(1&R|iU1us)kt?CRSst6nh6 zYb5h^Civ(->MlF@fpucw)ZN|t{DTu?}T1^NX2Lj^;d z!Qrdm`G5{^JUpvfoDAtSa_r2}O;VH($6-M-LqXxhpYAl51!+M7{7VZjwv5V6f*l1K3YBnkIPHi{#uShTA z6M&89@0S4DW&+qf=^prxd`bTbc)Vfg-cOmpeyC$!Df~nN??D|i6Jx~AYwvq3ZP8iLR4F5b ztP#+B`ys{-X!t$Yu`GZ=`U)B5wftx;&pI)dZ*Da#q}n00>kgpt_8k>dlbb-+8OeJ$ z(@HIZW7Pu4mcjA?G6NwWpgK3?Z4Sq}U6+sXS6P#sHgcD@!QXNol{r$riQpN{at^e~4z=-VK4XqLyRLX8F zN>D$UBZhsepFn-TehcI1fU?%9w zD(;^g*NVBh1?2Cw`KS#J>wM5~Mn`Cvcij3fq}DCpAAn68{7%7n`7A(S8sjFP9^MMH z5X8;QNU{d#E@3nT|L!p=zxo%2yQ4FuYLAw8A~sg!t=CBGwOoV$TVaO~n0R2aX}7%Q zj2gSJ?E$z%XtF3wd>EY3cFzC%{WQ)yg&31Je zcy-7kL=@WPp2+e0a@a#y$c?9V&UVJTkX)Y5cKo=XC=~AO_4Y6gs%G;(L7I=P@?+N& z%QU-Ho5a|v*)7M(pqGh=L#<|~xh1}^5J+ALLIMy784vKw9f13|ztq9nxw!aUv-9rH zwjwg(qx)UIl|9gKm`HC_`Et|ZFV`KoVeuyVMwZTfQvsCXp4?V$LG#_32m2&#oQzVC z)xY0Gz%=G|q7YWby6v^LHhfd@czID$m^Map2}Hvg-xLgCeUi_v=|7enxIG(x?gh+c zh=c?F%_|&OIeKP%{8pFMAX{PV+u;S}{VRH-1@_5M`Rf7@{Mm6#lQ-}?fW-yo?P&XP zCbl1kI{hBDMRuNgNyi>Je1RNzz6&jb`7_7gt^QqHF-D0yz<_$7P^eOt`M@63LSWV< z>hA9~=#Mj`PVVh+$!qIkX-n}qOh+8q7~GTj2mk#o;0`WruS*vaiD1U8^(8JTQN*@- zzVv!NyuSBP_}gyf)q9*-xIh9KTL}T`_1R$^=iu#fmr)_0uzgNMv~-XVHPdOQYyJj^ zp$##IYMcSYX^)$2m}`N{rv( z1hbHe`*!f5+nxtOR9we5+v|6$kfx=%hb`pd|JGn|{rjZ>nJ!NozXs575XWwb{_%VpNSTcZA=dvpoi}@E_22`R?<`HGCFs;vLk0a~zxa%=1PJY@K7(f(?L*Hv z{;f#B2h-02sm!G0E#uN$Di^_NqyPpa925XS{c5Ynx_cu1pMSCAujcrl@6o3B|Lb1= z(YJ?~Q~_G#`DfNg=%Rqm zuF#_9kjS;&zyJjM0Ad1113wih|9WHdO|PYiDv0_aHsu#d%(B+$3;9h7c(9*ZKf3l} z2?oYGu4~5a4x{<&m`qk+yRLE_EdyE}h^$SvnHX>7<8MuX`UJ%qq79FN$^Xh=ZtsVy z>bG{P)Lymj)b<^XyABj%_H$i{K;2&e%a6m?0s&X`(1RZ=w)x0ieAFw#B&svc2Z+hy zQsjLi8);SVm7c!MAy{V%ltv5HQd=|8dP@O!x4s5v`CIWw2dEW;*vtd}-DLvx2k2!5 zOH*T)NXAynAfO3g%nGo8kmWK}U&j_Vk8o+B;>-KQy$)x52z~Lob;ASXaC`K1QV!jD z{*m-UeZN{<5@N}h>Ps%MQO4T=aUpuC?6~58E%E1%GC*Wy>?009O^e`?UGrsUnePLq zaA`b%_jBuugZ8B{VV>W?9}o7)ky1sFB6H{ffucXRS&ii*qoua^7im+JzuOt5GOO z+-t|sj#nToY7gi@f9KXPao@@?TBwqp`Y38@HSmbZ-7>)PDx~w&|51)w14hZ(u&)VF ziUQ5$ve5_f)z05tu7EjJ=svUugcjU=Gn-^?;0D(E)p5i@tj23`&b;WTZLwJ$3XgyR zZ?Ncr_(y3z`f}sjiMW(f_Y-hP$K@fk7P~o`aJaDtuxXwfHWGXegBxv@u%Pmi->hsu z2R@Xvo9}P)$a}w)z*HL_tkkTwzGV7A$9Y-i8cQ_JWDh8saI>6}K)M2Hi}Bo8Q&XKN z0piP%nv*)Q?!%ha(N&ybZ~HFi_8M_z0fLII*klE=jhK>F$e*S1^H?m%zy32c>iB9s zO))&S>*0QOZ@_-m-R|v$wO!B|iSG-(xPzCRv!312N=mwnZS)i&e905o52<&ES+k22N*NV+T22Zg#mZTWRByexQS{8itMU|NBWgp*D?J z`lF}$f5+?(m?a)5JY)cZ5EEqaWw?B`a~a49s{0UCU+FTeD?1H>d$VSNf^@~|x%*gk z2T0i+Jco8=bXPBDGYu%-(5L8%jskI@`5K5Ac6k#bN#Q*JWEJ7rf=Ar3#*)hxpt(H( z`cyfzUe~o`3yEGp`FyyuM{ia}`BIkcat}cSH;&b)GWs26ZIUW=? zh2K~VB)rXDMMhUwp6?zIbon%%ZuvsN`qL57((|{U5~ZLq^2SLj7PwYneZi+cpt5{! zL}hv6n>Zt6IRNG%Ac7A*fvQ$PHN*dn7T#Fn~ufAP*~x ztUQGO8N@CtYsLr6_72MfsrXHP-+E3-+t$;mien#BQPpzWy1bkH3$1VCK{}XoEK`I} zW@r%`P7*J;oZTahSN~x){~jW}Kbot@D<4c;-thL0%n1-U-vPCFPde_6e5kwivRS;Y z(td6GBC4`_vT|`bMi7GJ81CwpE0BXlJ6*HTuAqqzd#F>k@4>-dYox40x(PNMSMUUL zNyBp%9p`UHO+MFF#+a3Ry$Gw~oG+gSuWi+zPvXMEgI8S~_Zkh|efNukzwc))s%G~O zKYwXOskra;p*#1CWNB$@vP@C&5a+nuJW71I3=z~T#fj~eh z>#xtJER*u%>$#jX@}j*weAA15XCj#3xPyLu``dm22egocTlF9<12h`p>=jQG(784R zrUn64oeT=+Z54|>f3aSv(k9&)@|Hq+MZn6v`mz;sqO91y+ru+?hgQ-*S{vB~gznVa zRoh@(rOaZp9RWPxKl?jysNNg0qkvRu*nP}5pe0>DaLhO70&m%TmV1OxL3(bB&m742 zPZa8KA~Ki%+d8xwf3})NdLTZ+h#)CaTKF~wDjUV0eu$tG+lK#jrfbe7+*`kMFd-0&**R9RY~3L;X@@u%m)6fi?8X>FGi^CmWwq@zj|W`Mi7@U-=gi$PBLTB~ z3{uQx+DnZq`M3j}D@2=nH~Y#-D06aNxcB4EbJhS(N^tV^|P#sVs;~xV|PQA>? zi=j*F&VidY?6!S}B8mUu^WL*;gDSKkHXqh9Q0=Ps9rI5e**{s7%wzb-J*xvqxVKj# zO)>hJe=0!SypBRbLGq<)KlGnOz8@afAzr-q35fM)HSWop+w-ljYF1MQ!~{CNV0qk3 z^}IW4=2za3p90m$ci>cTV?cd8IE2Z5&XK!67&=;aT;cdiovjN2iY$lu_#%T1nNj&= zNx3;08uxJlKHK_f!}E~lq)ElA zpCQ-lqDo%OuZJ87%j6Md(P3=7jK8ue7a zG4sriQZ$S6-U%{Al5L@JE54@E0Rrhl_cl+uIWFt1E+57n-g_`!A6nETjbzu}6plrV zuBb1DW*9#QHIyaE(&aN{vZ#lNY+rt2TIq-G*va9&M|-E!qjHrM@}4q+*pbWFG!>YAb?%OJB&ESAQsoZPy zwCdIS(yZz1wGl-DrOQtdR1C7(KHyn)kw%oicf9G3opO!z$kuB8f| z07fO6`FYEd$fRTEmyvzfvsX1&9FmCrMAqKWl-4)ofFZSsg=jExR9lBMn~>4(Y(ug` zm~Jn})8<5$)rE69C__&w)G32O3B};Jyqj0yZv}@K|1C7Jvg_`YtsTxaIxVm-4(M60 z(Pie30%`N|GP33MR6%R3+(W&yruzVbG+YE8d}G-q1kDJ|l*K;6O<3yO z*e+VvG3-0fa&Lk-V&^?xE4oL5hsEndXg8QGEV;b1T-+a)N2>`1^;KpJ>iFT#s|Qak zNCh-_701#LJ@_6y8IJo!!&2RV%ji|FDWaUh&7ulJ2@3m|>}iHpSZ8(E&gT-fn^*-PhCC5Acs$6nK zz<8wC+xj2x4XZ^|0CSUf$U9;E>C4So-0Doecmhd`f8f(zZ{&Zmsb}!ov80k8Np)$4 z+r?drALXysbA3d;+5BZg-g@j~8xRE}h)&$?1tK9O0_#NgRE1CD!SCS!VXIjn7+he& zOlI}H7eUX)s11-|RyV>{o{Wf|MyLdl4NG_5)U%j-ck-(#(5}`jxVLSa%p6}c#f*`? z8S0-fcxj8?BDtru!<~>=$-z@l{8v@->IOQWWbxGAxZM2xN@Q*H_r~qKn0<*055Ko& zdN}W-;e9sOS-&KD??ctgpiky4?tIf#n|kp&Q4+B8W8d^#5n?f!8@w=9KzA7dNd;Z! zYd31CUgdhZ+I!g-L$Z?J{lfCw>RYPUK$ct*HnggwL|uE5bHySCWgL2lU%O4~irx9) znNf^8L3PO2($-6&67ks4YS+-L3s?bl_iyf#eLtXjgryY(%bdJdGudZ!m_{YoD!VEF z2zC9fg2~tX0=dRZH+YN|Z34b;QM7z_bpKS?<5GJXwe0hl4?iXP?=t>e8ZGQ(2;mGA z#Ebs!-Mo-Usd>c3)|(q~efyIp;Ax6M>TNO*oHFGfS6>9j(Ax291pC^qtxMnI#qWH4 zN2k`c@WpgUoT;%m_18%)kACmV2`a;icGI5yC+%_Fjh82WpSd~pm{?k0*GFpg$JM7| z`ZX9WcA4gCZY{DHIl^5X*BY1K4=@CXD5uw=0yS2%UJ+`It*t)gafNN12u|x;qnJl0 zRcq{AY=fwe4quoO`^-JjCw%X$e+WqFsN}JNcySO0C!*+beN0cqVg&YeTE&Z}>HgANeoS-FtNjn9l>G?0uV)8+WT#Xr7i^!BLkPBIqae9}{-#j-K#l zP}4I%xyp3_&WtNl2i)z%KKWqmN{|Al)%-eQ!6wRZlRlUL^#^!7LS?|W=QlUWQPHn} zDd4Eg1*t&)`=>dxypOkqyEAF(Z@XKxWSG!v4KLL2QIH|-gaz8@+vLJOpjLNf{E1;m2-AwqWo8-#teH#LL)XY&p314fcLGx`etTzm=8exc6ZoI z(#yLA2%1=|!B!<@v1#t3Iu0}AbAoy9Jc*-*D}%`aYFts;p9{I*8GY?A++L!~%ef0? z{G+(e`LW#NTwSl{6aFdfT-f-La{=o!D|cB`1^9bc;b-&044495e`(ER(1o3Wclj&; z%&&#{;2-tL>4Ye4(WK%tAZjc9YNn~VNN}~TGJzdy$);ov*W?|NORA&+S(x5T6goN{ zK?`)9IN`{YQnd9|K+gMznGc-y&jESM`)2Xh=)y0HP#_Bq=zqFr*a+;83grqe1U`uiNJ_j;2=&X{cz8yCA@3F;bWuUUP zD1&rI=RP&nsj+|2Pw~x_4A5v4f;NrKss7dt*}223c_RJ>51Ra%P-ANlZ0dPrTtUQV zb0VU-uLdepRQo|0JEZ4)t!Cq-^2tXU4=^~lIKSIS$VzAdm-FGLpx~d=THG5@tP)`} z>X9I^SHC!my5zo}cF$zES6g=+=xchT?QFq^SDzXAxvoUfW< zNgJ1Ssna5h?608qxc90|{Qda#DmtFZO|8_O!IlGBM`mh(4b%P~vsbM{sB{aBNe#$D zRDp_&m~i>}vC4U?RND z8Aq|dEC3nYDyek5`cNOARzPA~r>Z4O2o`Y`56G!!Llx2r#)XZx4}p?ZtcwQ*y{X!a`Y?*L*Bfs;U*C` zE3#&Z-i#BJO~CcMa$qX&sE&=E!IZ!@6fD0!Hl3R=oo=;p(vo@<;4=s+u>p-Coo`#w zH$4;K%XEeQ`IoBOEWdwu2Olc-=vY~y&hC!G`6>PiNaiqFpz0BPkc%4I>YNO=jpyg= zDC(14o?oL)kVfq{7n8NH=T3J-%UX3+QiG4>SlS@krL2YL`A>f6?;yJ z?z=d6oLA92JLzVw9w@Fi%lVZPlYZ)h^myto3dU@`J1&0Xr`F^@H4prTZK3`>cvSDi z3~;Y*(O4yb+bdC}K;_iCV#+Oiy(Xr4$Q98-vq;GS!Q% zW~ts`MLM9&_%j7L&FlSN=>(Uo>~JgkFLkpxQr>9lG43`oC>iji3wi2s?Dn~RxDp2@ zQ$bG_2Ke6Sk#~O&8N}V5n$b3xKbNcGzY^*89+0!Ise>#de`y+@xnOOWybG!?Rh&E( zW88NKF39N2cV-dv(K8oTYb|o-(bvqykT(`FwXny7#jR8C0gLnjB{x8VpRQR)8B@KX zqI!K|MD+sx`u;{yyLq`L>@+U~M0?bymwb zLTF|`5{6pcdW;eNFwR`_{x;}&FN&idQ){L^S3502cX-P&mYe?b=El!(@p=CX4KD7VF=kVufEh=KLcerC22e3a(c3OM^M^ut*id>Ejt_ZRF>G7bH0) z>OJ%8YB>gz&Z!eLS&~Tm>3sYzulIlAyICZpFQ{alx+_`?e2+JbaSLY@h5|0Jw*!m_vyQ^8Wi>^C!gujpD*E(jJsZ6H}m{4NUk4Z7`jDg#O*jM~esFmgN13L*?F#i5l z6cOIQ`8T#dVklpHu;Msrk{V@}V)^Dla?V5yPVPo{wyM=dWaIEk{mCe@VNOpfg(;0ff}KCt z&Oe#X&?Z5Cc$Jov{GBmMm|AsptQk0efI~*+w z-b^6Ug=Sdu7XY&BcnE;aZs&d3_`Ew46^z^L6!!+)%{9|k`7|&Xxl4m;>c1Zyy*XH1 z9bUdW-}_HN4GdL&^?iK(_?v9f-HvPGUUSVsy_Z0g%t+kzxBlHFAI4mGm>@WVK|jaH zi>Q(hOLb<|z2PrYtB?x=P_D%P6htKXggT&TAL7JV4b+I75SMrMH>r7cmy{n@X3qP} zJvPm$bg{BN@dr}m^8YD@mfD~;o(T&LR#xBncf|=HJme;!z19RJ#&we8!#S?c}S6Vu#tAji~W9s9i1-4b(mBtG36YF8_mZcfQQuEe&x)A`3H%qV} z?rSn!Tx*B2Z}O&m(G_YcBl2&a1V<=Tjn?W)R55LII0p6i7OGC!c3+u)z-0btaBe~B z!L6e|fQwrsN&-1~KQS;hO|xnBtx}hNbDa5=a0zMtxm)d-Z-J`Ielynk=hsHI{@L(b z+K4Utfy$TZtE&8v;Or|fASHRO%_SQU?9*h%%O-?t{kY%p&wc$RA?-lX=ei)r#vism z^Z?`f?vG(Ep*$a5&wl%Xcc)|`y2kz5wP>|!#6sg|8Pm^VPbQ;#>a+R%qm-W{4rwSD zu;ZeaYtlDel)D-kEsuu%-8}<9&X@A5q7a_NTF=$>HjW#fx2i0IAnj`=*{(Go17JMlD@_F?!b#z4w<(UZmeS}A)IL* zZBX|4Iw$^Ya!`+tp3XRd>kL4G$9UgI5NnPk_k0N_I|!}Er1Z%p z#+{1sXJM}8Qb*nr_TR#D3W?keR4)yGGk->o`-W0wR=dhghiH(vQ4z*jC23u6>WxP zQf5q1lt=Pyb{}`66}WI}Mee$1qEN40@<7T|B6r72z=~jd))^-%dTN}D7(4k>xWX;* zSv|-;uRcS_NYIA;^T0Q&MXSt5RC_P)0GbVr@Vvmdr01k==RZpX1S!v1-;SA`RD8EY zmk^_3@V5sVU^~oxa513{nuI?ORgu4z_-(fl3+9^pUv=)}(W6wx9IQ!$zl^LX(07*? zi(c8UQ`@0@^q!D=77c;q%3`|Sbt?k7@bFzw%`kVCbO4|~!wy!_$PZjAAW?_>JK_)E z`dJg&U{*Fa`CXBIvw$7m$2D5WXb1O5#QDjw#au$NxBAIy%C;bVCR>x&4S&j5ouN6C zfbLTekMQKtbh8>q(p|6fNky(NizVAFFBUhrAEn>Hs_!mOmPSVU?2sOI5{nH49&zu-DR6G^YpmB#rX)JI zK{xmA&ub}h+^~LLry_{=qOYmz6Az0h>CXxkyqcwl9;tJV@Q*O8nZoIFF)W>-_)aN& z0Z9YW%@XGDlJ1n-kgNLH7AG|rSbKBj8^F6LjWB2=NrS6#wWDYXkLSvhz5ht@J$pZ3 zEzF{&W$ja;Eb5BOH6PlPohx&AGfy@d$g3QLq<#%>ZF|5&&aJ#9ni^cqQP|ARNtlUS zyniN{NnbY7OL(-baZz(N;H@>tDd1;Dx=ecCzsskAlq4$(0PU(0XY1*RYGJthf)ca6 zM3^s1E5U*A3 z-s;?GxeUd$a*GtxTiJPtoc^!g~Kv#}2e;InY+ls-n%s=OnWRMMvg z*IQ#1#Rv}D-Fvz`cos!Y`QlL^7J0BQl}JNU4G;K$|T;2 z&#MGERiDDacHlJCWxrOzV3r^LTx+Cg^$s1g`#fvLsd}Z)ZO}z}1%F$DQH9G+pv&~b zFBZ8E=9^DG5M#)UPletsSQaf%;M713^bpwN*6TfvT5=V-jg9h<4E}E|GXf3^xh9{Y zS7uPbDqbgX&;A^2tX3TKlTwe7BRrl_c%7%bk$z1NAh5^1I$Ce4#yKn#aho2SV@taE z_NsgEyzWaMpQVk8NsY0mAWN!^2u||k z^4}3>60ec(l$jfQ69lSUAv&^(cpA5EH`5o=^-r0|cgvK&(w37AD{73voU8ER2~ZqH z8^|_kcU{1oWAsvb?0wJYx%T+eSN3_@BsXy_;zH#rQ<&}*t66Yv@6KnBrM<&KZW}`{Vdi@E9kx#X%}72 zd2DO`7RQXh-*KseWMKIOfbZRQ^ooXkKn@&`I`TNDbQD3iyk;t-4zb})W z;XO`PEE!E(6NUce$K0P$!+Y;6%+-f{t?AeZKURel0fNwF&(EnenLjK*`TG!qQuqRf z;1b+{A(e;ir<4xpCgYd?$KHEJHMPFqqF50{P!N@Fp$JGPAl-@r0ff*y(j-)=(p8!$ zMS2pNiUdLx5D*BUp!5WU(0dCt^cL!Q(Y^O?|Ni&fG42@m!})UXi(?S7)_T`lo@YMu znX^rxBDUG4fdCLEuCJ7~Ioxs8I_$DT=b4kP9tner-4eVg>&c>;*>4{ZU=Zp$s}hmmrYa;E!t zQpFyvC64B#b%v|n>+<o~5>h~I?*u1Dj0y_DBmzW3!DVVKKdp-x= zd@&gg_MoUSOH?K#Ka{1+%_tkpJw2El6(2+KIPC7U&quFq-O|#5T*g7nukqD#k9n?Z zO}}@`a^LqE4MyJc_}BV~-MWI7cdxvYV%w9oD?}rpAiW&oecop5(O6k}V(^aUO&cYN zHAjXY8Sod9>F_($Z)DEkU>USG2h&%oiv4u(qa&t#fXGwVn3)ID{BmZc6wi$gLH6Rk@U5UDbKy=F06<-6mG5Mzq5-gXltJa$!awl26! zVU9lC0eP6!KB!A*c00eTex#(3jn#Lr-^;8n+ctM ztasjuD5?pdrFx#UJui~R(oG0=MyEQI^$b7$#2!oR_AYB5V-TFW2%?cU3^8s_Iv=1GaIa$`_Oaoxgda*rTnpaxZ6^68SuT&AeQWKObV0@I>+e79(T^5q!7W;13osvrp7{<* zDqBylWGW{~@K={oy0TP8vM6%Q*<@v^k%4HCS~)&jJ$)(-{W?PGt8i+!yp34*z&V{dbN_0SxYM(g^}# zjc=M=8%NjHZad{VL>R1vYUsts%4+E5KHyw&QdHzlrRA)pUOD@gsF`^q{P>Hte-pHt zu7S4S7aTpV&y>cdb_zc|VjWy5@d-X%&vSm~%vGrg(M)*>z!hC4lAmY0{DZo*HK%av{Hz4;y)31m_<{r-g~L_YqW4mPvF~=SVKE$b z9JpYy$V`;IiOU+T{Rh7V+-W;N&Z|CD&H>a!Af-49k~feBWXSu2tSGvDAIKW=UHuLW z9pj+UX?hC(#02MoK%gOz?XEntSYG<-BAlTl@{rzq=w0*|A)JE32e9n>DyuR`x)fdui!hk7sT0yNeNtOS`p^@U7w^#LCG; zUu`|x-4!orvJ7-0BCWY8ZF#wCn@7PI|WO3i`H4oD2!#Y&=$awE)S9GZvuxwyi zn}19yju-PruLHFvfoxc%`(D+tlQ^XGVoNI^* zAT;g+^p*iY?pzZ#iriXHuj>j$SkD(y|m|$@a%ll%mgL7w=?+-Lse6ID(J2nzBvO-#ggVRqFv15yL0^U z0!Cby=5jHtniLM7&uaWsvk?P_;b0q79_BJ;O!MO<&s1oSn6tOIDXo)wpdA95`i( z6vM-%x-JLlYiH@NMpP{38)v6nyKn!&@O`VEYO1hH@5(3z!Owq}=O?1?B1+6L6#78@w?o?BOH1h*@Ud?i z`g!ITuojlv*X(TT2IU^G!6$sM7GdW8w5Q?qVWt#dmkq1rYtJTc`F9{|AEJ3-ajZII z8}Id*DR03tg;aKkH4lfY(Y7JqMLOP@8yV9VdCfmx?8;gFQc65VE1x&B5W)J&e{^b1bLLbx^G{`LaHw77Z}VbR!!%V$agbctlGOrFTywJ zxU|G`xm!n1*$2qi{MR(SaVM4v+4sSvd-?_8Eb1*`>L@H4Gw8L3Zxik0J7*W|>A$<0 zj0s9tO`(H0X4fd@dV0kBUkR6l1w82R&q6;j4#0~{f8e~%FIAFi?fh67nSG&R+0nub zLoa)@ouN@(IWzG-Fm3D{Zatf*8^CaS-Y9QN(_sJGb%shajC1+-8$ByP7DRMd74224 zl}m6WXf^|7&R752F{bfyf0{`dr*zYm27edy($pdq)jy-{v)YcAR9!RKGB|F%7yMld zmEi*T(E5CWh!4;>#!lB<6@xD;l>< zmfLK*>{lhvFr3r@FuUOeuJd9$@rl>sI>M!z1R}cJ#Wkn1boEDgA+uW+Sw~;pTUF-E z77}52aOB@>9_ZvyA$f-xXYVB3G}2E~-FuR7xc5IzjJ^ro=f#cL~6fWO~e%M zmcO}d%pNQlD5iks#pIiywQ~WVYGb;yJIDShv)w|cRqGdEE0Zt0Zb_l=`$Rm{!vE`s zGgjm(tYUMX)%;!@m(KR*%N@H-T&Pq&!n{{A*nCXSW}Y*l8gDflcWGQ>EOei?Q?oL;93pQXX?0TISYe2VGa+6Q?IpFr&{gp=3&Ne*@ zV#LZg@G9u7g;rViel{V*zfysN=un{LP_^sN4`|F{E4PScT*t0)#Rtv@%| z=Q01J%pL?kk2F~mgET{3(q-%$!;nQEvEyLXI^Zf6zdwv=ChV~Jv=}p7_+oVf_`&|l zK3qdR6qZz7ec;rL9DW9AZ9gSp*FF%xHrrw1&+Aou*%F@Xb=L1K)Tm6OU7|vy*eloT zguO0(&cFwl&Oe?ve@1WR4S28VKVl0Zp=w%zPve-}qMJ4C#X}wWzC2Y>R~dnyZeymM zeM8sJ>jPtuaw9EVR7!(4t}yU9fIYI!=81KsP=8PX7ch0axNh?xA*K6={bTf-A>W-H z>zBT3RLX`qx1rn~oqZe0<-0Q*&iiFXQ-Vu)61)i(+}V9n`A&{$SAw}$D?1GDem&eu;^P_rAI1^T22BRbw!v6xz1u3tnJ_D# z$*mt)o;WU?L7#Zslg+EGN$=^9sFV(i&)9L+&4ESr&y&C(^W!9{YYj+-xUYL}EZ8Py z8CGr_a3WN$zz*i}J$TwRl@%fxxj#HT16+5^el+|l`40Sx*Dt(5xoPN~{G|_Z={h6u zS{qk#O7mw{R!|-Wmtte@yKwEP)`j@(e!PJ0jk38FTIC>p)e#UxgNMud0`E6g2E~Am z_s>L2KZ7`_SRl=VKm|Hxh7mj)8HzgO=S{~LTF>!o@!4ycpjRe$(jlJ!u13 zA^GeRgITMV7Dg&OE$*z+ltss<9-;MZh6=-vTG&_Hb#K#Lb_E`C>9W>Y3=b*<45|j! zKNAY+uJeTo|Bukv^8x5tf5WBuWfFb!>OJCFwH62UawE&HTBpoO+h;AeqA%ZP;89b_ zosFKh(umdGT-af2H?S3Goxrbv@TFVxeUR!kKE53OYz&I0q%HnN0Q+XRQkZy)ZzNAIUHxcJ4V2!3RiO56#`cm;|Zf2oFpLH_d- zOVbn&)tZraaw2kRG2e;23gZF$=hi`g#j0Rq)3(~u-oqBj)sB{3As3=+tA`i9)EjMG zC7WTby6JQN_z9f>hM&F8ygs$e1 z!Uil(&82mHh&d_>8KsBR%kL($s1n1O)drp~gg0CpT9%=$`R#S2JLvvZ2vU?KAf$#H z^Z=&9K^P^(=_`kOCdCWZUYbj2@zp)N`5qxB2JSwLHZGZ4*ztK%T{?S?6MEv@;q;;S z##T7eg)4!sl*@V2|v9R|ca^B^eHLa5GR@%-)w_S@$ zv`{+u&Oi6wbA$>Orvd)|=PE+C5m~Wxz$o?4%^#`JOb6dhVfOoQqCSV_J^ag4zjI5| z7eZP*-~mRegE4}?-wyx(hfn`?o5un%N<83O|J=moD^RV&C;e+ID9o}nzyQ7g7Y08k zPyPSA!T)>7|3d>S=rDvOXEK6@;Lk&s#{oFF|ASlZ*{=te)*ZcOF&TK7)s}o;l5OhV zymd8bDDJKUMOaqnhO0nCCSh->;T5KgzDW%(9h;iL|VtM+yNqhF?#Ac@Efa;H3hLgNP-Zl!COYXEsYLXwD(nXKMl&mUqt zLZO|_z=+;0^oxUCEU6rUN<6I+0L%CCWEE9~{mGk}9vq4imc|(Qj!|)nf zg0vP*>$en8yk{`Ht!=M}FCW}-(qo18yLB5SoZGHk^mTMwY&PB~EUjA4HQAfhVfR`3 z&iQ+ z$5{%~V!FSVw3&1dsEm3r@ue~Es5g!2?VG`|pbNM4yx)RLDsy!|sEX>gPIehMCNCVp zF4df&BDb$Rlv|0yt0+1Y?oA5%d-{C^jd70UGw8nkIg^8O8scnrzA?(U9CQcoTPmCs zba&9-4nS(vty(^M+TQV9=gzjMiL~y#uzxc@bZ;f0I%%BTsOHz+n=+b}@70;DP-)KM z+IA;dw5n2db1VqMzSC3RzA`0$Kwhrkbip~0oom74fF3TNNXFpxV-z{sf3}|&Bo=ha zYX7hxoc!?M$@7J>DfXVPGuw#{W%F-r{dRVm@v;XWHT@d$dl89+0me-EH3W~!IU{*{ z@~=og*NLcy+854)e(d3B71pwAHH5H7*)RCVSL^28M_y7|m4a4xZ{dimw0j})yC39f zNz6k_!7|fkA*@~1%C9;r7RqfKy?8=&GMt?X2RP*ry+evA&8KRl`oc<}S=;sU`^z6f z*qZL7JgZ~Gof!?JSJfrd>S~+KvU&^%KaX@zkOjJtib-!`u;iU}l2DScqgUA4WH3t<#uLW|EtG9cDL$6+BxP}=# zICaCZ>1Htlr9yOcx?~E&d9)RJn5pJ)U?Tds7j39M7Pii0q*hr_#`hF@ExtM<(6dk} zCI>ar7Gbqzg^zuc-|Sj%VfvD~O~`nXmtB~A-7qF zDpCZOK;_u1t>d9F!=k@w$30qEk?ZomPb-{5*;_wmF)nC0bjje?qu}@axaFMJLXbik zi|}67;@ZPir|;?l)@{p`n%PRdZWp7Ye4J2R!pV&RmsXZ3O1Y(%`(ZygJ>d$D)~TD= zDcQFk9L?NNl?w^C1t?t_ITKtRyawlt6G+3mM2Uw+FAra$`>mNzF(o@iJx6K@6TJ}e zJuvUesvRgOvLpYTdZv1T7^*u!eISW~$2L;7fTGNsNfBoA7$Nn5(HzC&ldar6_<3KA zncXh6P@#j|d$po-zbx%)mhX5i;gShTe51!ak~AEv{y2oixj}lEjGqv2^jl37%@Qp8 znR#m#bmg|@_R61$SO5+qi{8UKRV#7%7J4|mgLw^snjQKaDf|lezVx_wZ?vKwCA%C%~$Q-eR-VvI(l7;Gn z{bbTiD*M4!J#hF~G8kHk@2=V?mQ0~nlPQpA5;-#AC%Te{cq>USI2D?aS`=nUdRP3& zWex!FdeuNcq#BpM{yu6Uw?ZO0=2>7dr{m*QX$WTsO1wzhHae?MGKA1erj*~h!!~`m z*RewL3cRL?Kf)yuYicQ)PqI8f{=&GAAk1c_MU<0D`nMlOf0g2&C|GfEZ$P2h_m@Ik z5;noX5W3A}GQA1bn;ENh`>=3@UUA_+roQPi4rLa{Z&m=wYAxB z!cz@%R1s7#m$Me7GQ-_iBBac)$k-7*j&CmuAWfm5VF`A(Dx>B_X``lY`6*di9p@) zK0GSiAG!C04%5i4wIv607?8Lvke4JBZ~IS)rBK*J3qg+M!oBI)6>7rl6ltWMFF~3e zH0rFB=@L*MzR0rM^ml{P6P&|>F>40K#0pZ0!PIjm#&G>r3hpa2yZMXYEq~u1=Ta#f z4QB51wz^?47;CP2xnmyLP~`r|m0-*wj2s)8c`C(C>W=@R4rYlUKF3FI&T_*;wWNDK zKGSi@6m|S5;rjqMf&%tpV8~l#MNW<@4Fj?DO|vPXZqgo#(+Dg)8iusUyVkON=9oON z#FA*8HXLF+Zg|WF&i4>cGmC zCO+FM&okyu))H7Y)cjUryj-RqnM#f}`@b}s-K^TI^zxr>;1d?yJ;7#QsYPVE%<$+K z#T6*SpM$lAa3TmJ8D_yj7F$K004#srv!`Jh*8-II6f3O;&oZQ;9r;#Ob>wB!ysG^2 z_FHLsbFXy{6s%~D!?=S+XN8k~I1HJ=p9CvuL;}&+A3}_G6NE91>9bcA za3*~^*T2cFeV|=;Z0hM4hz%4>cv2)h`Z(Qz(J#R|mK(vHSliszBbDVY)D?(ftcV}r zjErmHkcBMW+~X~Rt|ih()v-SxdFeXyP=5QD z-2jM-P)j1TCw1x$)iUCIt>7Zw??0jOL}q)#x{1xmaMVnl*w4`cGx1_m_oamP!^ z;IL;ch+k`J0)0wZbSf%zTUxXnC{%qjw^~*Nf4IejtCygjjo;I;c2$KGiH}NBt1K~@ zmdCB5M|@yct;uouK9*;1E^xfE`JAG<(P+!>o6@ac=g?(W&d5067qL0)@85@c8A`Qs zu%Q*bv(T)Vb4E~bf{MP)u(MbGSnQ4jCq6%8BS_H440Oexp@z9IPBoEdb*jC9Ce_sB zJBw}6R5Fy56!n#)zy{(quLl{&R@YoUcDU))xC0>^{025awTwGlJO9Y<#q+1hxG~lZB1NM%I#xnP+7BfbLy)F2w2*1xS4UoG$0ks*+G# zJxcLXG_&QS`qeYC8$Oyrz{! zu2TWy{Z3jKy-H{NzH9R88JIGc2#Ez6lqQL%8h%Z;s|jl?m6EUw?mVsB$80-bmSV^K zs_Cbmr*YlSjatI}n*qmIq|M-rMOL$>?;#nmm=-~9*^oX)v7~#r*q^(y{E3vZFKD z*L`Hml^rDw>8rL?v{?u)BnChohM2mhDW9@1A zB4b?X9z6jjcV~Z?D*gyZv5IqQk2e%54Z;Xf{4MjPKK!qeerS^}v-GhD7qaEa`R{pi zAsEkGOTQ7j-LBHAPR}+JNm9)xI^p1M4dEEAjMGvTSwtztD56aA*Q#_MF?s>Y4bpod ztv?C#DOd(Qnn+LbIj5%xmrFjF!%jrRWuP%)H=sse6CEqktTt8d|6-FhWP~T@L`a=r zz-VVBOA{9$!;VaZY?6>$?D5NcjpFr>+B7_%*ZO~WLkx@Qcj7FB8s9`i#oj(~2giO^ z_KzE*4hIXXG%(7CW5ktA^#FPrRh*^v)oGrLr1qhd`7*|+-U!L;WsBN9w8*!-kC?EJ z3xOC?pj)}wtf3n2GDK6rHV7{b#YwQiGcCCgtS<0Aj0Qb=;$&T3H_m_qJ-y8RQ*ktV*1=``h1Q&A^@G8`B6FSXZ#GpOwKWzJaSa%k8Qe{Ntv2nx8b$_se?uLI!~XKn(y(0YJeEAvY;AxLk2deQew( zd_JZL*6|2MhZZojn#`5M9=w#-iblnjE70mVNO5)M(MKio_236P9u->^4!a{zEORRS zNc&>Fc0th!s|$oc!H^B5)Z%m`C1iAfga1n{!38gA4UH~;Cj@bMLo+nlY_jjHLMv^y zsFjlNteh0io$RV1ZuQx!q66hOE$B>s!WZap@}{_KuiXAjFvdj|QnYbztiUq_gZoa6 z4t~~S7Bbmon3qh6E0+4|kGq_t?6DhVJq@>(?QZOx{wC8ll6{?7T5ku4ddgST+B(6d z&$lQQ^sYpBV9lKl44EM^1&oM(>T%VugyUX*)}k;4o$HMO_4Dz17OOWD?@43e+6BIA zzaDZ^!zfL#WhbSE8yk)jiaA#=)3UXIR9RjTfx`L|N-2$fW~7gJTH^X1oS}lP#@aq1 zg|VR6;lbe~UHibA_4(*?9Z+q%SH zG!1s4Zk@4POA%g|SQ0`LDR~BWdvt))14;lL(wa=rqV0{JziiQ5f%x~8)UMgLRvWHI z&JRnJncl5{t{_LBFycI?KZJ;{+KYoVFB=fr_nr%?68M-l+5B?xDz=tDoy&|>w(4Vv zXE)0M%F;^yaUcb5@U zh@xJ_<8xQ(bZLymXUOo+$XinU+ws(ARzFp#coq>d0tH0k8*<8vTaUf-rngu4UQH-D{c1+#1X*Gm8n~Y>_VFhn;V_;OMP~xv_UzOtsvF!Mvq^0L5 zq2eg5V-L?hO!PoV@kUDmOk@fr*wyzD=lp?+DLV*%x2Ti0sOd?n@omeK3B57y14 zuu>nAPer5#Rs2$wT@8=nuxETcG;|eKW7XbGHMMU~#4O}|lFq)#mc*$!S4En!t`Ec{ zySYCM!mLi0`yo)(C(MTmnR>0&YY7d^`a{mP@G%7q^2XA15DV!r8B!Ou`gaVaX*LUA z{Z^+kQ^}WCCa&{Hst7sgp~{_!d@kvsb{JBjd&TlXtk1#{eFQ`!#3fC_{hFt?DA}Hy zu2dh7*CPr=DQZLK@4wJnbKQMcsBQ*-6?5}B@_;y%BXaAj>l~PWK*EJ~Xc8bh`N(kY z#cyG|+1O8cjTX)UX$*X4TJ(ecFK36ECR~9g&tYt$i88$tVx9_m)?#nHxGeLJ#Ddjj zJ8d?WuKv;_Xq)uKP2UWj?iB-F=!^Q$Q#Q^mPi|C~Cfp`*+2`7twzxp^-RZu+F?R_Z z7fhu7x+oSW*QzX{V=h|}t?Lmj16e)Ry?+U4kQ(lAkL z<&U3~s*<<%MNzUi-InHJPe-3^?e8AR)w?3OsH%6NOjgU;+hNF)on&jW(>EY&UcdM9 z-$_N5klT8;q#qyzSL7LAvtR?J1sa1yWLJ1(BHn9PnSX&5fsoT_6+`%}IZPvfGHJ7tMKJ zxhgj^!V}@Tvq@ZAAPz*$m#Q|UTAjqApUKMDB2XiriZU&NIFkoH#A=SI%GWLxKMFr&T6E$Wmp>mIhs z@gtA;LVZ#yW{)& zj2XJhHYFx{K!wilgx&aRv)-gK2O~imzC2!a8t=ap!0uWyrO~+Is&kMe&imEAn)ebL znrL#WQ<4$gJ1jpOp1B8>pD4AMfyfz$eU_V_MmWWBwvnLan_P3+ma_N@884J%0X2!d;tPE7e>s{ zv}u*yoKJe|GnUGuw!>Jf13(e|ZLybn8GFE;3Cks?60K>lZ3btXJY%wT_kj|!?2GT_ zaYwh!eS?Q*SC|>lTxVxsx zG*BufFeqSAh$`5&YufM)t}dxw|Bkp|D!y{X*65|Dlw=%kL(PA?qZjcmUtZYp=)T`I z#5q^!w^X(U%MQOaLvyMU(UjtYy8s6oPI52Yn&x2D7^ZEoC`o(L95%`pcSU=)SJfU2 ze4R(tYO-D9jit8&cNti6n_>M{5`AdMa|UIB@BO140m? zCx7CiB(WOb(EsQz?tbF>`v9}qY->ZWne?*D#z~CLal4oZnK?szG3{y?+`hYA(T6$I z(f01h{VPcIlDvrt1the%q;!hU7$xMU3Z~JWx|_!Cy_O8;h@40Sx1OEK@xexjDAFEM zc(A`?ZPckp%f+2{wD}NBZ;V;d@O@^rWruFeO^#V~|M#pRoOzuD4yvRvEz? zbGe&J$+=50*>>XT#8_*bo{p*Nnzh_2vM=SQT>nl6JKUR#67P~j6+{2o@`t_3RKMEs z#L2rc8D09-p08!J>8ncWSGvZEi-pbKCZ5UXQp7W)WQZ$aw~Ji*Nn-*)u&u)b?4g-XVy%9e-Q(X^J^WP_cyR zS=V2g$iRn|@se3#>JAs(@WXppt3=DkJ1!*R3P?(|h_WRDFLrIO)@s-JbjO*qtB&pK)DI;Ytig|*F_SzpvfH= z#RTmhJ#Q{@_G{rI#%IqjOrhM~;hv6!EwcCvF@7*8vy;8QL*S^Lqdt=K1fl=ZYp3|# z!&V8ZzRIYm*L%NOJozoiEpJB6fe)->ggmq8Nb!MR+>y5RvoE}2QNE=_f=bSi+VPGW zAQ3vuqHuS3Lw)k-Q~CSlH#{6^u9zp=&d+C>I>r)@7mNOimWLOYTe~n;Z&ogDPnu9%;pE!zv6`r7%j+S%GbXEgbOPq>L7CcPT~zd zPp6Z8CDsx5mTp_XPD2Qe+H9#x2!%!^T}XF#eQK z#ud*_(>&y}^ici8CC4tI^`FS)9IC~{iixmAAVsEEUVKmkrZl)QnNFlwak7&{e$dT< zernnIij6+o)h9L@dAsk@n&#`%Hd>E2G+yV^z|pth8C+E3O|rhx-#x!m73kgum9wyE?Lpg;pfZ8hl^FG)Ws^W#W@V(e(%LbbrJK_}ffO?<) zsp`W-K?}_ya{>APu}x|TRE(k4h5{1VP++D0iP6tQ?YG#9uR@9N)LmmFLCn19JB{AAGG+$f1y>T*0 zkK8EbZ6Q!`KE{d{pdicncfCLE2(8^f><}1JH^tkc=isAe@P8r!?7j2onh6oSh+w>+ z-}2k$QB%0vM2nL_%yWsAJioC}?yfnhS__Yf)nd^5i#qU(ewIf;k#qk)cbVe7Kz3<8 zFrai8+SMhB8#Z7tG0}gLS8%8;J`ThPWo)+O+)nCNz8GXg!_G_sK4!%n_7@jqL7}eD z!S@09egp5W~DNEzpca(d*s_#pkFbBmyMH`;!JLO1sxPD5}fw3@tlH(teF5YZ== z>F6PbyuRipn&LIfQ+cGQDV2D09`!&rq4v9lVqc`s#C7TQc@X|&qtUVNW3?CSn4_`IAOZlbE;10>N!-AiHB93dT=X;NWDeo zB}1n>`+M&VC@6Z)|HGdM+h5x)k!}x3FnWgTSY=A;qgKWNkOZX^;C0Bf(B=8(0qQX4 zTuE*cT}_ynDNNj_E;y#lJE-ut34!jN|9q-32OE0FqzRU4zd{hU&T{bOQS>c|CWt-x zE%9#(%6-52A~)X(fwuqL))w1qy(Lx}y}yCXjzV$)H?JD5t^Fa}pkW3kRC8yxYd${N z*3@F2U$-8wjMxUb8MmJ;txr-m(`j-kgH)=YK0?ZfQB%L*>1^(j@Qwn}aE=g^5QF zSvvoYYONXNcR|h?sw^7hNIXpJ-)fMrR$G|^%8nNm_^j^CUjx}M`G;&XsrdiGy|H6Y z6t^!2l|9h@wDa)AgLkC~*v5(6x*h&Qfb1{!&gUn9P9dszi$nHXdjqrTkUMts=;5(` zNYMcd7{1$_7+|mBzcm_CYTv&h_U&3jzw(g9iZ;wMYtxtll%4*f_L!A5$0o*odZYd_ zJyerV4KghF?~4p{ekM>~idm*mzV3MIWX6A8;Ty>0V&IqKPv4vzAz(=pxO!=@QT*oy zbM~GEyHe^Zt>ed8fo=9b(+IGB4jD!NVICdAePBZV2OGKb7n|xgJpP+C^v~b$f-K@U zRS1A6hh(DP<+DEoCbO)kl!uI>e_^yo%y@q@oBo5dAFa{+%@3;4{Ik%&uLCjvx%?ku z6}Y`a2GoDRNCxn|((Z_Dz)i6PWrCqEm&SnNu?(nW`W@^HOXFF;1INLQe#hz5O(VQR8&q~dP5m4@s6 zn+QjcX|VJ}_;j)P?=AyqQI%gTyV?Z*`1Pi)STP> z#M}{5&*Bm`K5!lj7&gN;b%59)SA9{SdUpjr`aXcBJ@rqJ@n@3M5HOwqSIh@Qm&5JE zB=OlwBlp3AN3}QDUq3~k2|anR6e8c^g^qr@Z>AuEw~<`~iPvs?Db^BXX1nB8|Dm#( zLspD2Fmap;JIrK@mqGE`*l*B#u@cl*3oFZQK@*o`umpDWERfw_b-v}h{$>l%K33Kl zGm_o=fGN4uPZzOiP`Ov(_92R<>isf;ai z`3)7zyZT>2NN=)Hn2;U?ir4D?NB_L^-_$h#&5uVb3)mbjDLKTP56{ty(zp8-R(`nz z+o<|NExaJUTWE<&o`M0yAaBF&R=vF3&yXqrX3tR*Yu7e5Ktq33$&@SmvmfU}7vSDw zt5SpzHm|4N>l=sM1F4dUrvAO?M`7D}9+lY#Z?<~s<>J*%Y6#04!~O?KYSpXBixwY$ zg?U$jN}@}UwXz6X$G6ik#zULTim^9*;*LYucM2=4$ym*U?e6N?|DGJPcV)r8b+96M zpm9gt>XHnY46RagIfs-Us?njqIJ(yUFN1z+;0`2`|6fyi|*?jrSFRJUSg1mMtHwvN`9*BGsnqM98m zLN+s!oRv;C5U;G#J(@`RRY_L*4&vhjQ1q`fKCg0$A4*a-HBp3H|EdQHtCJe78`v8b zGKUNBUrUScI#d?yNqp=|VW@8B9dwH@LM+cg7C1`)9B?Vu(U*_k|Bzf%d{3JH8-t1I4ky{mxQKo08)f^-obhHkt^Zc7=X*njfN+bdt}pK#g)EMY zAF?q34nhofCBX2!&3bjWM2};)JM;11GbUxC$U(74zMX87J$UfZYCsS10nrK4p|PbP z&0Teh#f_lu8LLw{tL2%k=3$8$VcES9DH_w|x6?nYN((3v`JQtI!>GlC-L(vP-_f8; z3aqVw#T4&ZQsgk52&R$m=Agv*{2`r9G37bvPfnXq;gX-?nY!iDSP6&#!@y#~yAI6m|kbknIWc2(AIzI1cNCF1JCbugv(@3C(`Rxq04uiR*Sx1BVJ zwd(LL>nUu_^rxN57A+fcmYVgn41NK9)V4S!^O$W7uvQ#P4o|Zk+@t1RdDugr<+mm| zp}nH%8zb1>LmpD0Kijh*!FL@2n zZNPl!JGh>GIY{O30 zvdr>#3jy{V+6@v%Btr3-%NHQ)iBmy_h*wmCJX3Zm$z`?+PyoeCxi&IIwbXLata)m) ztDU%Q&H=$U5`q_%ssI3Cqz z#>K??S@zo~dBaD5mUX`Z`DH+)kJBIK82l$t`NJRy|O3qgVuV83W*FXq(p6 z)8V=`LNk*(fEr3%Hxdv;&Lh7$FLhx@C%SUh`|T7dt(0p%U~}lANo$(`qe)mJ-R+A6 zoP3Ux{TS}>wNyueNW;9nkWT*}(34ejc@^&N_(T`ye90gTQc@a)sUdh#PYqP<9yytKOEDd@NsT)>P5T1`x9~FyHEnj^a2@3N&N<6`gpY$P(KVxROt<&nM+CFaB!d@v6V zB1wKyRHJ{lCW>WI%nOIw^q1+hzi;~7e@yDqP`{!yTp1KEIdE}DJUF^YVexr>4cEE$ zNb^Y(=Fy>^b9x+& z=sdvD!t~C0bO}MmkMcP%Lh=gSAGM3l-L54EVM2e4lzauJmPr^%@)QGJalg6+k7 zTOP1%0J8~1X#|T)O$qh^lnu?*oR1c95=wJiZSzDccJUcC+kUECjr3bf>m#SJ?>$Y? zEIjbJbhTChU>1#w{l>>Y$!wD$3f1gz@C_33(5>cBp`&qAA-AwQ9D~lOI4W zf6Z9GIe~7)kS;TW)&*(lT{G@ebT#3zK!B?e4P=KSu0^HHydoKUU2Dhl^i1GxfMoK! z1bA`G%MbLyn6jHL2@^jW$5(@qn{}?D}6~QnK3OLqd3RL zPs?kH8<)_B(a>LcK(-7N_qpV>KJk~PoHLGlyv$LqANQhc7o~V%HOebUg8Z(M9Zf9i z_E}3(`xujA_3g<9=16{W!6#5dFk;oxX!jXN3TW|k;%0=c;^W3>B?$GyzC-p=(;k9JS#5EPwr0e-*?lH6Wh^WYJY4xXav8|T} z24byIQ;Ad2;fj2sAD?zrHJNKs$E$smmgrn<`r7EXCDnLc+Z}ORN}9VCUq3)4j=G8< z2|-eScEg&j$9fTpJagS#SJk4Y25RN;pLf+Z`h=T?M>Fz=+I?V*PIii@L}1?CX=^ZCKxje znCVkN`4e*95p-g-H!_rOs{NQqxc@4=Pn7#we&Kzrr#ivR!u%-qCk-s7R_oO*c*qZL zhSs$Z4pmNQxM7Hjvv#yhr^-yDXK5-vU$_`jZ*zUdTqAuVM=}&wN38_bP^0}~QcT=M zXPBx|k+97Zy!oVcvO{BY8DobeDB%~uq&GA4@Pl(`tF{TS|7&~dRt2<1biK^n>lW=V8w*VY6XUg1z7iK(Rqa7k=-Ix0 zdeYPbo$>qq!v3NqTVRv1T}&-ausR2yGO6~Y%uL+hZTG>?lCp;u2dsu~#i;JoRBzO^SS9^DipM;)Cwv~qyM9gUf|5cojkkaVehk|bOJ|48qD?(DimlTA0v8Xy@f0>e3v~a;UjX z!gN0gLAnk64}9jXNmw>5gZYr}K{!Rwt0xc*b?A`A{5z$@P92Qy&=I&Y-j0<#GM3<$ zbhywtvJQ5dqljyks9`8~TMJPiCSV=-)HrJoO_xUO3Tv?A`jA}zj978BSooLUfq*B~ z1R4v27;J#f1*JveUVQ--Otiq~po{4x%F&A2@2lPsGjAt2I6fOni(G~x;8QJ}LuEX* zvfS93>-h_Pk|tgV4k+t9vgP7XufGpMYV-_;BUju-538#JIJ;U9-TwzAfP`Qe9&%dD z3aTTY@%m3Io^Ee>ic)t-zVKPGT4X<;{-G8EHD6TZGFGmNGN{#{XI+2jV-*V}4N$w} z2tf+&a9c6wpA4`PsZ$)QWIErY>cotsE4o{#$R@^P?v9_@B84+n=<$Dv^jD44?KL|Z zD(rHrRT`>tU#Hf1Crwhc!iK9ADn3x{e6hWMPpCLJolBUtWoNGJ3uT6O2#b4<*vn2JZdh%jR&V;lr9w$)@3}y2MCWHMTP7=AGa&!QuQpJuL^|I920kQ z^dx~FN=s5XiOP|g@sxor3J+$$0>r~%h?$!#9X-^5*F$-M*r#Rg77)M3Mi!yZFHHD^ zW7+uf?LQ7nsT|UChoYpeznHp!=2~UzkSDz^;NP63o(09*Mf1I6K#JWQ_+RaPc|6qX z-@emn)8>?%jtZx;oX9#RF{G1HGALs!Te4+rMaVXCN>U_*F$||LjJ+89QmJGw2H6!x z#uj6V!TjDIbUNSX_xtbn{P#TnBV??d_92w^>f|k4sKjC!EXqgYRuZFBRA=$8>pz#&P>;~>GJ$yvv?!we0}!C z{A<^SE{)NA4>E3O2zO9Z9(@zD8;mQrm5G!=lh1F(KkRs-abqg;9t=;!7|99xlC-NGH`z` zKF@1b<=(L=G{xq!Q^NEXT(eCD?a~Pa>7j;MAKt5aMA9{t6w#mGv*a50T~=q=UYdYS z>&4uBKVc2*NGo?Go!k6(v@;krZekZz2M16Agjo~7y~6LnN$`eXH9rd3dEBgBDX0-i zjaDNModtDSRMA>M4YjUxm}}FDs8{myWGI7m7uq2Ku^)Q<#os{On5%aDm&U7Y#ojS8 zJ+(4q(!HBsZ>CX~zrFgCFUVT44D$JgYHl9J5;9O*Ht&H--Dfg+(7DR!rt@4S9c$QG z{#6No)!8Ox6sDJeTzU513Bp{-CfgAKXSlG?qw9JRdgrAjlKt-$jGG%hvWl`h#ja>a zpSlvhce}}RcL%{g#5_KwCu{#kF*q3$7I6FaonFcd23HS_1}Z zyY>}zL_97STF%@Vmy1_F!5CS0duzZ^mya;7`A=Sw>;(dL?()uR?zB?L=&n@XCdIL1 zj)GMejcr=CH9@JC+HiyuqnTQ!wyUc_JcYFx7rV?ajeCF)?B%yii zXY|NQ+TxpGzWBT~wX+_;4I`Y1`CG?d>T1m?S(HZ4Y_Q+kB3l*l#4cjm{bc>6WBD7m zwtju>ZgVvBj0s%^t#Z^eRo8#8PX5g>%fvw|jr7DnaffrU1wK4-i-Wq>9b;DcIG_o+<+YNPGBm4u z_#PCCV5DJOjqV+wqQ{tUmYEHFCKu{7W{%3R$(c&cdPgEdx7NQdE#eZL$LOl@AVRVW zb{DleJCib5#~O+?mGC}>(}sg}FRFsO>T8qkHb!M6mjNHL*M#a0ocDxaMI!d9YBvO= zc{D|FxZi)1ATdK;M>6{S@>lDuzXtg!>gDOOHhoh7l3W2v{twu90q8des<)B$R~T;; zrn%BGyo@S!ZB6A|fnN4Gq~Ud@WiU66w^l!Yt|gm*jv(iU=1vuH_m`dPBXM8ab1=c& zuuy;Gx*$lw<`t{kPYPZK(%2D#qD98BOeCE(bAAXa z-=V$9j4J`4SM=&mp~sU;o)u|T^?%PZmWuL)uaO3pN*U^eTH_vs54RPlexx8z z`xCaV!u>5ziHY%+>ZrEdci!(xLs9)XRT(i#K~}{@PAtYn3#*6|jfb$lfK#w{_TR*D z<0MQP)#l7G^K-1{+i~`K*O&FS&(@*aOb-2fC*^)mW(I_lS$1x@-#)|99CzA!g^Lxd z;GE^a$nSKDg}UQQrTH21gwN2oKkVUD^{2MexqfccMl~9A;&id3Lib zKH>GJnKX^8=J+CyubN!L>DW_o#;7t!?-P!Uy8=GC7f(NTJ@_kOC*!wWJSkzYQ+0n< zNf-62iEOPnYslVEYfPdkqJjzG zbF9(@JO^k6G(UTT*eqjU6eX&kc(_-YwCP+_g0nI`o1aA{qmH939nS=`haJWb`NkoH zrNMiym*(=EfkxGGQ*$3^F&x=xBEy+JTTkXX}#3CZl8il(oBPb1v=- z1b0~tX5Z*@9uU)Lh>;&hu_`kx@F5qmq>ry%MCQ#;W)MoFd9rh5H3!`~G?u5H-5zbltB6_dP93(t(k(cURCM-%3i?W4LEgEAz!cc&XK zY--MHKE5-;eAjRR%4RxLIpy~dtFAF%GttEHa>VtgZ~JR8z6k`oDoy!FWNHYxJJrmb zSCACOlI_`w{oIFn<2>9O-dB@;p{bZVxo7Zp{Cg@}A^>oEP1eT0EQ2`>* zF){~)oAMFdaDY1MX{+j1n_liz3^+YrvnNd4rM9bwV#K@EVgCNY9po(tf%CeSr zY)lxwzc@qXbLTB2Tv1m|sI5)e>m1$(2talC$mdaMiC9Cea@R-w)gH$v`zWmk1~+`X zc=njDQSE!FMu+f~|HFyoVMeof&51aT&@>K8MBIZu_PD^slq7FxGM7ZFR;v zt<;N?MyPe!zuv~`z2`3`#SkRyG^3jDWLy-P1o2tT+f$ph1{8tZC})-VcFcOcE+#6S zdN;ySOHPjVc1P<#s+L^z2fdcFsy*q?B0bgNXugSbRZ{3VFb1PWAMs2hf-nc2=W;1M z+J71GJmxSG$7C&fgjWVO*T6|o!Lk9bdEBhgle!y~@J*+nfNglo|>^4n#O9G z#wOXmdVOO`hQ@!N{1Nl)92>J9Fu+U{@mij%ikMsasUrRt0zvi9ZSxaAaW+PdFl~vb z$+eHyGy4FA6_3FTGOz5s$OYf{Xh(L*PPop-*Z0hU%Jo24)p{5X0FRv)^{6Orae1!7 zd{{FpP@`v1PC2i&w(dE_^VvY#eSG*u;DcrHeOR3Y^F#`a61JRM3Vt==g#{Xo3P;%ucf_Rz`Yjw1E)@4zHNj;KCxq z9!-{RTIkqRp`rla2iol{pX5ZrIiOv-2b2s4#?eL%LT*r6;0SZ{fYTJ+XU~%za&z@g zT7E|{ZSOt|JdQb?-*DF8Y5g9|RC0oY&ST86d+t**XvbEZCXPFDB>VBUu*O)wo&kF-KI$*X8AUzfeq<{_ z=hZSC;(lNuo^$0DorI;m<+NC3BFy2tTl5!nFJ6*+vRpRBeKP>xe&FSasFNANGCMCE zHzoJVSD=ffG@V=3#Nc{aDq0i2MEZ0Ja_szm*_nIk3HfuB3kYP1s?fGnvOQ^M{a(VX1IzVbn@<}dp)xM%NWUM2OX{)YzTiUuHc4bQQAh-RDqgiZFNjOKp7X7f4 zb=n_x(h}z~Oe9_E6u))5cV-gmgHqSq@2ba^hHaaI)aSKWv_%z{cMr>TR6G<4G z`B+M<%uf8mb(U-VWwHJB6}>LcXdc?4msG|0MzST9Li@2dNFKKsQbmGI`|7h5rN<^o z^Tj6u%EO{mr@}(>{It@PMw*3$DCNgc2a67NDvg$!iF;(EBp7#MbU^san-NwcA|0}~ zFSh*&D>;H00-F=~YNxBKhP=xi?jl%xxtFd9mi^`PFJKmA)CRjBH@=L$mp;(U@p(Zy zl%xg11XJc!*NDdo5zzH9T~hL(wz zH(PQ2(5i;R_E*xj3{8oT*WFM`H+g|3kA3=THZ4Z%M*JjklfJ!IiN9$)?Q0%j<9 zfRF49X0Q^IX5}Yj7(#9k{o}~fj+m%g>zM2v)7gQgV2NEYSJ$X0z`K0Nb%iVTBvmo@ z;*osMd%}qqFBDefjKCgD=@3$gbQRG{Y0;~!RmO&tqHN82O9L48`xR#*6?pDa+lfPw z6C&7S3;X|F`O8QGI{Ku%&;;Y>@ogXBjsaeZbh~6i7K7CqOe2j?3P079du-vUnBytE z#k(=M+WYqd?^9(H=TlXxA~;e$cY5zcE$=*2z58#)@Y&J&2i={w`B{zy-A6^c6N+zm z$2XkbWBPc{>2eX7!mO{C&8=Uw-${&OrJzPCw3ou)J&-*UuOg<*paxR4@R5DW{S=Db&Q?uvu| zVrr~#AYO=vS(G5i#OJ0A&o2IRv0<$-XO$JKH{KN3@T0f}%!oVGoJ#73tA|D`guK2y zx#+r(*Q{MzQ+SaNy>AZ01Q}a0qJONj4J+IZ_fyEAo@^$2$(f*QxkiM3081-Wj{t!- zu$e=d9>)*GLXXv|l50 zta#4+wPv2PLIHtayhBC44aAT&Hpyy!kl9ZGVX#*5&qqQ^Km7+^C4i5Ya(wY?|YGXaBH{Bc`y=!~G}0EjHgOa+&+O2(C3-U1KmlL_<( zc6GiCI>&RlJMh%q+-P(XOmh}fyvl(H74I`uy~p&%g}-D?<=-L(B+O^7jVd1DOG3ao zUYhGwWg`q7^k-++btxBvrBHLMeY~<XcWYUzGvAR71d*ItDY#v87EFCEc({Rx_@eE& zDfk)W<|5?9TgO+zu(-wsqj3u+MJsj}monst&?81`HZg7r85Oi3%{CL-EW_Bj_ge1~ zk5k9=*WkrR=DD&8=#oLH1;_V98Cn+iZxA-BBAPzw6XR=wUhNBSi8fn$nN8aiefxCw zb*5x|xIqBBAe!I!)qD6}Kr#?l6TVO~Ko4VMn*?sW2bP34*yK!4xO6%ejA0J-id{X5 z_z%5{+A6)+S^Ej09PcUr8t|HckkEh~GvV|x=gF+bx;apOeQi!yzQOplVW6@djG)Gc z<;%aiO94|NFQ=El9@ORcsRBPVPTlxoDB>ZmB46nbE87f&Hhx|$4jmj2;s20GC9zd z3)aL3)XHSsz`MeX4cEIhxQ`-wQDZl$ARBHsRWADB_#+uB=yfdY>YJx?J#!~MH`SE7 zPSOwC(}n&%N6R&K&)R&{L+g;&b4L(_L{E42%;t~IKH>3AEmN5{Il2t&vXNfv?qavd zRIu{$t$%yxVY|!QVDfSgn1;1lIagPpmT9id0O`6{Zdb_LXMPidkdZ=u5ir?0+klzK zDA~pUu@TV=fW@IegjU(9ex%tO?A2@nlaioAoPl{^k`;8pgIR4+;C&N7GR*es6D>9g zqS*S}eO;)~7QdR7bOG*L5f#S)n<6hEE@S{xrd0UFQ;?Z_`O`nMD&{U&nGC20sl}Up zH*XS`OU({s$A*nqh6GE&cF!Dsj|Vy^eVZ zJ@JzKM(wKKfL4200U^5Xiwr&rgd@%d?JV;Ms z3l((4E7j8X#oD;4WXFcR{JTAVkwz#3Qgtjv99v)5IjyrXc=;2LUm-$`1bVF3y<^MY z`a5~Zd(Or?oK8VJ<(l448=vf*wi-)FcE#wVsDD;xNHyG|Z#%UN%FO8W)GQHX6~1`2 zx@*!9f8hdRr!sw?DL`%DyfU!m=r^obfIC9=w(^6ymV{i0Bb(yv$L@5) zZH(0}Aa^KETKG|VFFl<8k{B9Kn!|M9iY*E$ z4YZVQ;UI%|6gzzuhL+L0p;O)H;qjek_J1g%#ApdnrRx|635;1%Vf)n>~}HWN8M6cZ{oCbg)jQZCl3gu{RXk@%adEa%m}o zY$z=N8IT-EXe;SyNmy2p&Z~1nI1XIIU;q8GpZ)J#i%eQ}yV9sUw-~EaA*z9I@g{gV zLXdw&52(#3Z3&#~<^cB|otmZHOsp$$%DnK3&tYiXF6k1g-8n`Et9ADhcRQb<$p?ox zb0Tm%3A73hsFBQa``q)z>PA$@^Ewo#->b1vORf7WkXoGBaG5)CFT_A+F^}Ns6Uk3v zFmo|aWYEsL`D|@$x?i559{vmCItDdp_Z^9F9q*Hc1C|!{nv~sHV5;iz^#jV!#i`y+ zw}O$*jka}ZwG!x3<=uerX1OS5R}$bk-JhZ^5J`5Dybf09`{TmtqYFXi-S35|oSV}V z3d;HDwE_IwKD*+uK;ih^Sh?|>aQdS3Deo^|-?652lSpLO=q}kxMiZhfu`}pBj=E0t zYET@~I~he&UKz<;(W`zOtZ-~BNO{a}m zuttF6$~3X7KMu|S9(a+q1)30r@__kKPHyJi0dy-1vFl(zfzi}aU7B9jiWw~ylu*;N z*WAcxjhdA$Xql`S)^biWk3Du&^VyE^gtJD-5lzN)<&dTyyd~#(CH;_8S)zt6PPKg5 zzsr=U#AjUKh_R*oEaYP654$X-F zg)xV)vqqr#js;!>&wrvlzTGVuXeVtFDGoLZ_1ntO`p(On+`@ZC?of+fq`kCikiU!j#a87A<4`1-lZPmXeh9%$k9xqcZD_}5bMJJnL8cXF%oL&DK z_w_MuYMwouTJyGx-hi_&??r;ps$A=p49$H6ODJioq@Vq*J$`r&v@#9Z2-Q|}v`m}0 z7bN|29V3zPKs216am)5L-KgIdMId^CQDWOOP}QpzU(K7v(;BhT*vyO@AaU-!i&ET%FTGcE%3|)=~aWb!tO37IJ zkh%z5UY0l5E980sQ-A?SNe_^YZwy%WQ`Xrt77K?ARk>UD;NPkt;< zv}rCBj7MYZE7teSWO=lFd<|RpBww5(vR`A*DGffx8Jr?^J7SzG`)qJPENjh7pcw#5_C!TR{e#1J0scsdl~7i!O)NfmP#*%?E4`n@Ux@SIguJGP4dZUSi6z{aNk|~%CnPy_ zOigpxW15{s-L?c*ocI1D88`9po0Peu&V(bbk8DirY~Oz+T2OD_#<{Ne)2&V@AEMXN zOdF#5j0_>WwO%9}tFqf0ZP>{ECwR`$8AL2q68^?JEtrU#;D^iglWfGfYpQ48Hk^Hi z?ZbgbYCDDlA3`UCBH@DT*zBHz^&i_`M+9l3J{FWMSqia@ypMm%2lR2WsL@x-81Z`4 zHWEZ6xDq_&lW+IMhO}Jx5aW3a*=yQ_8LnjJ-P`X{Yn6?_noR`DmncQ8@)vlqgo^Lc z7N4r~i46*PUdXsxue0nYW@g~uB`9V-`87hP;{DVBs?o+0lgE}8Gs_blG=PMkr)-_ekfPY7Xvv)IUq(=f@l zFM`4uFR!Sj=Ka}5)DFyOj!7e#Et>1#R6m{H9=`SXPo1#X%0cH40(sr~C>!y{ZH&6} z_fjR~e6z6Frpvb8>x%HUAf&-Lrxe*m^Sjjn7SyBg$$<(zvnE5BiNp= z{VTdd-M6;cx6{UQ!w!vg)x(R6q!8}o(jZt6PHd0YH)Mt8&6>*T$#+Iv1XW2zUHn+= zb62Nx#17TI*U7-!DK2Wi3G7dJ^M1r4GUE>ELu&iC6xF4}uAAE$z*RQ7BV=H#Snvvb zNd~#IZ}PgaWJtHZzP04x8||z#)qs zKw#x>_D&CYg9^r`5&Tu7qJ(-t)oc5EKX^&^L#;c*80GJ%iW0Px!G^4lX}SElTKo2G z3w%=5bJuPO`$ERh`s5jVQKRxxF7^8I{E+P*j@^$hqeDN+ zm%~vdc}{7}>Xx%hZ^wbEi=jrCq4Pl7;o@@al)!e6QxV@bi!@>VyIVkR;MSawu#nO( z?NsFwL!WCnlYkZV_&Ps=3FQxU<6!z~}SwMe}@ll+z^$^c98U1i^ zIG_X5vv2GbMvy7&8f3^*)W>LeYZzY&Ud;)-6shnBoNLxz6X1fne;ZDxlsP_Wfp-T7 zfHjSBgGi3ZW|JLN5r^H|GL558C|Ua1b}O=#zxCZlD@^DKmz06E zf872d_-fcS84@epde8AoUFfz}fjW#;Pds^f8#LAh2G=DlE+h2wE`n zGRnr^PWNOM^rDZ|Pkehx9kZa4zsr@0Ddv0Q;T*|k!p?vzs?MDo7cHl=5+_!qkS#(K zCw8rC$#UP6EI5~4`dKJ|`ry;}_POLasS3Q~uJ?-xYO2`ouOC}qDx>$g;(%uSk1dhM zHP5hkI8Y_pl*9J%)|>ok3ugG>s_#>{o~(Ed5M+!hh8y__O2nk{!Qk`+Hv6&;QOQlm zsoSdoy9xAviSsmHe1{y_xvAOj8zX?ac7CPkllo%EPRiT4?DCX^q~#JzsnUr_N9kbj<#`GY zK;7F%HbrZZ&wIb5%UeG*hx^NnWSJmhnFiewfyJm_SP!o-W`DSnF7ghsX5+?*P{Z{u zp8Q5oZtpBu82DBC$Bt^T%==Jz;@2xmKlC;=`Gur|Xn`4$IWp zii`gE#;;JW`({0@O;sh=g*o7f7opNF;Sr4F@iM$4S5&UZR@@%x)j7bIxaGXRfCQFY zmGm5tp_=cqXS*M=XUY%R^JydS9|>Das~XJNZRdr4Hb`XKDAUMsOR-yZJuAEN9gUX* zIvSXaw5F1kO&D!)_tyN$ms%A?eV=dGP?+7*?T`E*9GUbw6!xvjg9 zz_JWg5KB+g{&N-YA(o7&AwM~JM3;C8RV?{ZoB*5RJJfLcV0_Y+h!e!(vgKrBPvf31 zcuMd6FAPZ!KfKMuUhp&|7mqlX7I~p*j5Jz7_jSX!@lKvo)e995{smucho3gO(!3ov zf}4&EU!8yB*EG_$@qOI+ivC7|!;%3Jb@6QRK0mZ^fo_Si*tSaNlQhSECY_&-zT0MNj7a8H&Tj%Ik|up(IqQm zO@qI`k`hfAjvcH2_is!8Fs4Z*eeluu1-j>Pl9bGK&)r5L;@EB^9C6ilHYKHj$5?^) z>iQ^Fil75kMl<3`P0U(_rM9N&R2rO+3!J|%A+qtmns4x6FBNPbyC443z$PSDtu_D8 zBkD=q5--o(u@n8!#iw=8tABaD|T>}Mt@fQPMBp-jD%(zfJc*0=|<}ERbEk=~e z`t6ZY=(II&&ZRDNKav%=jIw@>Pir^?{_X!-G7TtX%*0*SdfVa5)*!thQVMiJbUeUyy!?R$H5+x)F3Siu@5baSi6lD|(Z=Mvslh zO&&v@d_;4rhW?)L6aykDw094Bwa3s$+>!tZi{Lr?V+c|`Q_^_V(*PLYd%QYES<5nR zpES~bL-hCXOF8$oByh9Tb?f5Dg7qTzyCA@NQMSe z?~0xs@9G-9ToP-arc`kt4b)LWZ=_kPtII9&4t1-JF2;hX7fuhbO7+90Yg;qsTKER!etEg zD7bb&1ZzsQVBSBgYn{4wU(BFG*3bG?ry_G1RPdhE0qQj_zIggJZiFAe3b1Rb}nd)4IdD&508Q+X|7w){eoYF}UBO6u?sw4 zoHERE4_VTK*42#?eNUFrF|Apf5SW_%6`CH)28hiaR$ z8)k?0O4jS%8JO%&kprENX&=2@ZY8pFMa3>}YD-k#LQ~!7?5Er_|J8?nHMwEv>sFz- z;zz4f34A{e^Jto$4Oj9E_L9z>lwQfHx2Ul)y4~fT%-Owba~ZI-!8mXaL7Kp26mJuv zXXp{HWN|Z$uC_8TGmVp&PwOipjzlU=ASnp>+6xy{=z+AY)i}e}K6;X1`+OR!q@8zIgp@ zoc#%Al%z3Ih)m!t4sn=%^97voUQPmMvUe$v!xmbeJJ1!$?6MfL%$-==lV!cO1RXP(mrp5 z5po(jH16}B99j~q=N7K)Hn>AO(_CV>5ULW5K)nG+5f-St7Y#Y}er(l656%*2x?(Y# z^DUIa=FA8!534REaE4VmRh%J?Ju_iBffK&KHZSSKuy3R}WeO~KpU{R#>`u~Hft$l#$E?+eiP5ZNc+}|A~3+n0=p5k zG&LmJoZy+?mRZkJL?uYoH)>((wd``1?8p8_Dne`kyJl$!7wEtIa~a5Ltyytl39RZ_ z@KDJiEG_tS`675l;>5ylrE+wilV;8Gttnr|zU1*&=oypDM=a+ToW~3j8Ws5QgvWPCMFYoE$GdHJvZ10Cdyv;Y7A literal 0 HcmV?d00001 diff --git a/wp-content/plugins/two-factor/assets/screenshot-2.png b/wp-content/plugins/two-factor/assets/screenshot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b98358007515bf6fb0640a487737a1e5b3619e4a GIT binary patch literal 163789 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

JFd7Zmb)%TUHO@eVEXz46}H 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�yL{rSOR|@d{xWR?y5K?%_5|SA>NL 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 literal 0 HcmV?d00001 diff --git a/wp-content/plugins/two-factor/assets/screenshot-3.png b/wp-content/plugins/two-factor/assets/screenshot-3.png new file mode 100644 index 0000000000000000000000000000000000000000..a9810f87b10d40aab7ce63f8cbe91bfe4c1f78d2 GIT binary patch literal 6110 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 y!fY?Z+d|*_Zd<}c{(U8T 'sanitize_key' ) ); + + if ( 'jetpack-sso' === $action && $this->jetpack_is_sso_active() ) { + return true; + } + + return $rememberme; + } + + /** + * Helper to detect the presence of the active SSO module. + * + * @return boolean + */ + public function jetpack_is_sso_active() { + return ( method_exists( 'Jetpack', 'is_module_active' ) && Jetpack::is_module_active( 'sso' ) ); + } +} diff --git a/wp-content/plugins/two-factor/class-two-factor-core.php b/wp-content/plugins/two-factor/class-two-factor-core.php new file mode 100644 index 00000000..312b34be --- /dev/null +++ b/wp-content/plugins/two-factor/class-two-factor-core.php @@ -0,0 +1,1071 @@ +init(); + } + + /** + * Loads the plugin's text domain. + * + * Sites on WordPress 4.6+ benefit from just-in-time loading of translations. + */ + public static function load_textdomain() { + load_plugin_textdomain( 'two-factor' ); + } + + /** + * For each provider, include it and then instantiate it. + * + * @since 0.1-dev + * + * @return array + */ + public static function get_providers() { + $providers = array( + 'Two_Factor_Email' => TWO_FACTOR_DIR . 'providers/class-two-factor-email.php', + 'Two_Factor_Totp' => TWO_FACTOR_DIR . 'providers/class-two-factor-totp.php', + 'Two_Factor_FIDO_U2F' => TWO_FACTOR_DIR . 'providers/class-two-factor-fido-u2f.php', + 'Two_Factor_Backup_Codes' => TWO_FACTOR_DIR . 'providers/class-two-factor-backup-codes.php', + 'Two_Factor_Dummy' => TWO_FACTOR_DIR . 'providers/class-two-factor-dummy.php', + ); + + /** + * Filter the supplied providers. + * + * This lets third-parties either remove providers (such as Email), or + * add their own providers (such as text message or Clef). + * + * @param array $providers A key-value array where the key is the class name, and + * the value is the path to the file containing the class. + */ + $providers = apply_filters( 'two_factor_providers', $providers ); + + // FIDO U2F is PHP 5.3+ only. + if ( isset( $providers['Two_Factor_FIDO_U2F'] ) && version_compare( PHP_VERSION, '5.3.0', '<' ) ) { + unset( $providers['Two_Factor_FIDO_U2F'] ); + trigger_error( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error + sprintf( + /* translators: %s: version number */ + __( 'FIDO U2F is not available because you are using PHP %s. (Requires 5.3 or greater)', 'two-factor' ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + PHP_VERSION + ) + ); + } + + /** + * For each filtered provider, + */ + foreach ( $providers as $class => $path ) { + include_once $path; + + /** + * Confirm that it's been successfully included before instantiating. + */ + if ( class_exists( $class ) ) { + try { + $providers[ $class ] = call_user_func( array( $class, 'get_instance' ) ); + } catch ( Exception $e ) { + unset( $providers[ $class ] ); + } + } + } + + return $providers; + } + + /** + * Enable the dummy method only during debugging. + * + * @param array $methods List of enabled methods. + * + * @return array + */ + public static function enable_dummy_method_for_debug( $methods ) { + if ( ! self::is_wp_debug() ) { + unset( $methods['Two_Factor_Dummy'] ); + } + + return $methods; + } + + /** + * Check if the debug mode is enabled. + * + * @return boolean + */ + protected static function is_wp_debug() { + return ( defined( 'WP_DEBUG' ) && WP_DEBUG ); + } + + /** + * Get the user settings page URL. + * + * Fetch this from the plugin core after we introduce proper dependency injection + * and get away from the singletons at the provider level (should be handled by core). + * + * @param integer $user_id User ID. + * + * @return string + */ + protected static function get_user_settings_page_url( $user_id ) { + $page = 'user-edit.php'; + + if ( defined( 'IS_PROFILE_PAGE' ) && IS_PROFILE_PAGE ) { + $page = 'profile.php'; + } + + return add_query_arg( + array( + 'user_id' => intval( $user_id ), + ), + self_admin_url( $page ) + ); + } + + /** + * Get the URL for resetting the secret token. + * + * @param integer $user_id User ID. + * @param string $action Custom two factor action key. + * + * @return string + */ + public static function get_user_update_action_url( $user_id, $action ) { + return wp_nonce_url( + add_query_arg( + array( + self::USER_SETTINGS_ACTION_QUERY_VAR => $action, + ), + self::get_user_settings_page_url( $user_id ) + ), + sprintf( '%d-%s', $user_id, $action ), + self::USER_SETTINGS_ACTION_NONCE_QUERY_ARG + ); + } + + /** + * Check if a user action is valid. + * + * @param integer $user_id User ID. + * @param string $action User action ID. + * + * @return boolean + */ + public static function is_valid_user_action( $user_id, $action ) { + $request_nonce = filter_input( INPUT_GET, self::USER_SETTINGS_ACTION_NONCE_QUERY_ARG, FILTER_CALLBACK, array( 'options' => 'sanitize_key' ) ); + + return wp_verify_nonce( + $request_nonce, + sprintf( '%d-%s', $user_id, $action ) + ); + } + + /** + * Get the ID of the user being edited. + * + * @return integer + */ + public static function current_user_being_edited() { + // Try to resolve the user ID from the request first. + if ( ! empty( $_REQUEST['user_id'] ) ) { + $user_id = intval( $_REQUEST['user_id'] ); + + if ( current_user_can( 'edit_user', $user_id ) ) { + return $user_id; + } + } + + return get_current_user_id(); + } + + /** + * Trigger our custom update action if a valid + * action request is detected and passes the nonce check. + * + * @return void + */ + public static function trigger_user_settings_action() { + $action = filter_input( INPUT_GET, self::USER_SETTINGS_ACTION_QUERY_VAR, FILTER_CALLBACK, array( 'options' => 'sanitize_key' ) ); + $user_id = self::current_user_being_edited(); + + if ( ! empty( $action ) && self::is_valid_user_action( $user_id, $action ) ) { + /** + * This action is triggered when a valid Two Factor settings + * action is detected and it passes the nonce validation. + * + * @param integer $user_id User ID. + * @param string $action Settings action. + */ + do_action( 'two_factor_user_settings_action', $user_id, $action ); + } + } + + /** + * Keep track of all the authentication cookies that need to be + * invalidated before the second factor authentication. + * + * @param string $cookie Cookie string. + * + * @return void + */ + public static function collect_auth_cookie_tokens( $cookie ) { + $parsed = wp_parse_auth_cookie( $cookie ); + + if ( ! empty( $parsed['token'] ) ) { + self::$password_auth_tokens[] = $parsed['token']; + } + } + + /** + * Get all Two-Factor Auth providers that are enabled for the specified|current user. + * + * @param WP_User $user WP_User object of the logged-in user. + * @return array + */ + public static function get_enabled_providers_for_user( $user = null ) { + if ( empty( $user ) || ! is_a( $user, 'WP_User' ) ) { + $user = wp_get_current_user(); + } + + $providers = self::get_providers(); + $enabled_providers = get_user_meta( $user->ID, self::ENABLED_PROVIDERS_USER_META_KEY, true ); + if ( empty( $enabled_providers ) ) { + $enabled_providers = array(); + } + $enabled_providers = array_intersect( $enabled_providers, array_keys( $providers ) ); + + /** + * Filter the enabled two-factor authentication providers for this user. + * + * @param array $enabled_providers The enabled providers. + * @param int $user_id The user ID. + */ + return apply_filters( 'two_factor_enabled_providers_for_user', $enabled_providers, $user->ID ); + } + + /** + * Get all Two-Factor Auth providers that are both enabled and configured for the specified|current user. + * + * @param WP_User $user WP_User object of the logged-in user. + * @return array + */ + public static function get_available_providers_for_user( $user = null ) { + if ( empty( $user ) || ! is_a( $user, 'WP_User' ) ) { + $user = wp_get_current_user(); + } + + $providers = self::get_providers(); + $enabled_providers = self::get_enabled_providers_for_user( $user ); + $configured_providers = array(); + + foreach ( $providers as $classname => $provider ) { + if ( in_array( $classname, $enabled_providers, true ) && $provider->is_available_for_user( $user ) ) { + $configured_providers[ $classname ] = $provider; + } + } + + return $configured_providers; + } + + /** + * Gets the Two-Factor Auth provider for the specified|current user. + * + * @since 0.1-dev + * + * @param int $user_id Optional. User ID. Default is 'null'. + * @return object|null + */ + public static function get_primary_provider_for_user( $user_id = null ) { + if ( empty( $user_id ) || ! is_numeric( $user_id ) ) { + $user_id = get_current_user_id(); + } + + $providers = self::get_providers(); + $available_providers = self::get_available_providers_for_user( get_userdata( $user_id ) ); + + // If there's only one available provider, force that to be the primary. + if ( empty( $available_providers ) ) { + return null; + } elseif ( 1 === count( $available_providers ) ) { + $provider = key( $available_providers ); + } else { + $provider = get_user_meta( $user_id, self::PROVIDER_USER_META_KEY, true ); + + // If the provider specified isn't enabled, just grab the first one that is. + if ( ! isset( $available_providers[ $provider ] ) ) { + $provider = key( $available_providers ); + } + } + + /** + * Filter the two-factor authentication provider used for this user. + * + * @param string $provider The provider currently being used. + * @param int $user_id The user ID. + */ + $provider = apply_filters( 'two_factor_primary_provider_for_user', $provider, $user_id ); + + if ( isset( $providers[ $provider ] ) ) { + return $providers[ $provider ]; + } + + return null; + } + + /** + * Quick boolean check for whether a given user is using two-step. + * + * @since 0.1-dev + * + * @param int $user_id Optional. User ID. Default is 'null'. + * @return bool + */ + public static function is_user_using_two_factor( $user_id = null ) { + $provider = self::get_primary_provider_for_user( $user_id ); + return ! empty( $provider ); + } + + /** + * Handle the browser-based login. + * + * @since 0.1-dev + * + * @param string $user_login Username. + * @param WP_User $user WP_User object of the logged-in user. + */ + public static function wp_login( $user_login, $user ) { + if ( ! self::is_user_using_two_factor( $user->ID ) ) { + return; + } + + // Invalidate the current login session to prevent from being re-used. + self::destroy_current_session_for_user( $user ); + + // Also clear the cookies which are no longer valid. + wp_clear_auth_cookie(); + + self::show_two_factor_login( $user ); + exit; + } + + /** + * Destroy the known password-based authentication sessions for the current user. + * + * Is there a better way of finding the current session token without + * having access to the authentication cookies which are just being set + * on the first password-based authentication request. + * + * @param \WP_User $user User object. + * + * @return void + */ + public static function destroy_current_session_for_user( $user ) { + $session_manager = WP_Session_Tokens::get_instance( $user->ID ); + + foreach ( self::$password_auth_tokens as $auth_token ) { + $session_manager->destroy( $auth_token ); + } + } + + /** + * Prevent login through XML-RPC and REST API for users with at least one + * two-factor method enabled. + * + * @param WP_User|WP_Error $user Valid WP_User only if the previous filters + * have verified and confirmed the + * authentication credentials. + * + * @return WP_User|WP_Error + */ + public static function filter_authenticate( $user ) { + if ( $user instanceof WP_User && self::is_api_request() && self::is_user_using_two_factor( $user->ID ) && ! self::is_user_api_login_enabled( $user->ID ) ) { + return new WP_Error( + 'invalid_application_credentials', + __( 'Error: API login for user disabled.', 'two-factor' ) + ); + } + + return $user; + } + + /** + * If the current user can login via API requests such as XML-RPC and REST. + * + * @param integer $user_id User ID. + * + * @return boolean + */ + public static function is_user_api_login_enabled( $user_id ) { + return (bool) apply_filters( 'two_factor_user_api_login_enable', false, $user_id ); + } + + /** + * Is the current request an XML-RPC or REST request. + * + * @return boolean + */ + public static function is_api_request() { + if ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) { + return true; + } + + if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) { + return true; + } + + return false; + } + + /** + * Display the login form. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + */ + public static function show_two_factor_login( $user ) { + if ( ! $user ) { + $user = wp_get_current_user(); + } + + $login_nonce = self::create_login_nonce( $user->ID ); + if ( ! $login_nonce ) { + wp_die( esc_html__( 'Failed to create a login nonce.', 'two-factor' ) ); + } + + $redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : admin_url(); + + self::login_html( $user, $login_nonce['key'], $redirect_to ); + } + + /** + * Display the Backup code 2fa screen. + * + * @since 0.1-dev + */ + public static function backup_2fa() { + $wp_auth_id = filter_input( INPUT_GET, 'wp-auth-id', FILTER_SANITIZE_NUMBER_INT ); + $nonce = filter_input( INPUT_GET, 'wp-auth-nonce', FILTER_CALLBACK, array( 'options' => 'sanitize_key' ) ); + $provider = filter_input( INPUT_GET, 'provider', FILTER_CALLBACK, array( 'options' => 'sanitize_text_field' ) ); + + if ( ! $wp_auth_id || ! $nonce || ! $provider ) { + return; + } + + $user = get_userdata( $wp_auth_id ); + if ( ! $user ) { + return; + } + + if ( true !== self::verify_login_nonce( $user->ID, $nonce ) ) { + wp_safe_redirect( home_url() ); + exit; + } + + $providers = self::get_available_providers_for_user( $user ); + if ( isset( $providers[ $provider ] ) ) { + $provider = $providers[ $provider ]; + } else { + wp_die( esc_html__( 'Cheatin’ uh?', 'two-factor' ), 403 ); + } + + $redirect_to = filter_input( INPUT_GET, 'redirect_to', FILTER_SANITIZE_URL ); + self::login_html( $user, $nonce, $redirect_to, '', $provider ); + + exit; + } + + /** + * Generates the html form for the second step of the authentication process. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + * @param string $login_nonce A string nonce stored in usermeta. + * @param string $redirect_to The URL to which the user would like to be redirected. + * @param string $error_msg Optional. Login error message. + * @param string|object $provider An override to the provider. + */ + public static function login_html( $user, $login_nonce, $redirect_to, $error_msg = '', $provider = null ) { + if ( empty( $provider ) ) { + $provider = self::get_primary_provider_for_user( $user->ID ); + } elseif ( is_string( $provider ) && method_exists( $provider, 'get_instance' ) ) { + $provider = call_user_func( array( $provider, 'get_instance' ) ); + } + + $provider_class = get_class( $provider ); + + $available_providers = self::get_available_providers_for_user( $user ); + $backup_providers = array_diff_key( $available_providers, array( $provider_class => null ) ); + $interim_login = isset( $_REQUEST['interim-login'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended + + $rememberme = intval( self::rememberme() ); + + if ( ! function_exists( 'login_header' ) ) { + // We really should migrate login_header() out of `wp-login.php` so it can be called from an includes file. + include_once TWO_FACTOR_DIR . 'includes/function.login-header.php'; + } + + login_header(); + + if ( ! empty( $error_msg ) ) { + echo '

' . esc_html( $error_msg ) . '
'; + } + ?> + +
+ + + + + + + + + + + authentication_page( $user ); ?> +
+ + 'backup_2fa', + 'provider' => $backup_classname, + 'wp-auth-id' => $user->ID, + 'wp-auth-nonce' => $login_nonce, + 'redirect_to' => $redirect_to, + 'rememberme' => $rememberme, + ) + ); + ?> + + +
+

+ + + +

+
    + $backup_provider ) : + $login_url = self::login_url( + array( + 'action' => 'backup_2fa', + 'provider' => $backup_classname, + 'wp-auth-id' => $user->ID, + 'wp-auth-nonce' => $login_nonce, + 'redirect_to' => $redirect_to, + 'rememberme' => $rememberme, + ) + ); + ?> +
  • + + get_label() ); ?> + +
  • + +
+
+ + + + + time() + HOUR_IN_SECONDS, + ); + + try { + $login_nonce['key'] = bin2hex( random_bytes( 32 ) ); + } catch ( Exception $ex ) { + $login_nonce['key'] = wp_hash( $user_id . wp_rand() . microtime(), 'nonce' ); + } + + // Store the nonce hashed to avoid leaking it via database access. + $login_nonce_stored = $login_nonce; + $login_nonce_stored['key'] = self::hash_login_nonce( $login_nonce['key'] ); + + if ( ! update_user_meta( $user_id, self::USER_META_NONCE_KEY, $login_nonce_stored ) ) { + return false; + } + + return $login_nonce; + } + + /** + * Delete the login nonce. + * + * @since 0.1-dev + * + * @param int $user_id User ID. + * @return bool + */ + public static function delete_login_nonce( $user_id ) { + return delete_user_meta( $user_id, self::USER_META_NONCE_KEY ); + } + + /** + * Verify the login nonce. + * + * @since 0.1-dev + * + * @param int $user_id User ID. + * @param string $nonce Login nonce. + * @return bool + */ + public static function verify_login_nonce( $user_id, $nonce ) { + $login_nonce = get_user_meta( $user_id, self::USER_META_NONCE_KEY, true ); + + if ( ! $login_nonce || empty( $login_nonce['key'] ) || empty( $login_nonce['expiration'] ) ) { + return false; + } + + if ( hash_equals( $login_nonce['key'], self::hash_login_nonce( $nonce ) ) && time() < $login_nonce['expiration'] ) { + return true; + } + + // Require a fresh nonce if verification fails. + self::delete_login_nonce( $user_id ); + + return false; + } + + /** + * Login form validation. + * + * @since 0.1-dev + */ + public static function login_form_validate_2fa() { + $wp_auth_id = filter_input( INPUT_POST, 'wp-auth-id', FILTER_SANITIZE_NUMBER_INT ); + $nonce = filter_input( INPUT_POST, 'wp-auth-nonce', FILTER_CALLBACK, array( 'options' => 'sanitize_key' ) ); + + if ( ! $wp_auth_id || ! $nonce ) { + return; + } + + $user = get_userdata( $wp_auth_id ); + if ( ! $user ) { + return; + } + + if ( true !== self::verify_login_nonce( $user->ID, $nonce ) ) { + wp_safe_redirect( home_url() ); + exit; + } + + $provider = filter_input( INPUT_POST, 'provider', FILTER_CALLBACK, array( 'options' => 'sanitize_text_field' ) ); + if ( $provider ) { + $providers = self::get_available_providers_for_user( $user ); + if ( isset( $providers[ $provider ] ) ) { + $provider = $providers[ $provider ]; + } else { + wp_die( esc_html__( 'Cheatin’ uh?', 'two-factor' ), 403 ); + } + } else { + $provider = self::get_primary_provider_for_user( $user->ID ); + } + + // Allow the provider to re-send codes, etc. + if ( true === $provider->pre_process_authentication( $user ) ) { + $login_nonce = self::create_login_nonce( $user->ID ); + if ( ! $login_nonce ) { + wp_die( esc_html__( 'Failed to create a login nonce.', 'two-factor' ) ); + } + + self::login_html( $user, $login_nonce['key'], $_REQUEST['redirect_to'], '', $provider ); + exit; + } + + // Ask the provider to verify the second factor. + if ( true !== $provider->validate_authentication( $user ) ) { + do_action( 'wp_login_failed', $user->user_login, new WP_Error( 'two_factor_invalid', __( 'ERROR: Invalid verification code.', 'two-factor' ) ) ); + + $login_nonce = self::create_login_nonce( $user->ID ); + if ( ! $login_nonce ) { + wp_die( esc_html__( 'Failed to create a login nonce.', 'two-factor' ) ); + } + + self::login_html( $user, $login_nonce['key'], $_REQUEST['redirect_to'], esc_html__( 'ERROR: Invalid verification code.', 'two-factor' ), $provider ); + exit; + } + + self::delete_login_nonce( $user->ID ); + + $rememberme = false; + if ( isset( $_REQUEST['rememberme'] ) && $_REQUEST['rememberme'] ) { + $rememberme = true; + } + + wp_set_auth_cookie( $user->ID, $rememberme ); + + do_action( 'two_factor_user_authenticated', $user ); + + // Must be global because that's how login_header() uses it. + global $interim_login; + $interim_login = isset( $_REQUEST['interim-login'] ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited,WordPress.Security.NonceVerification.Recommended + + if ( $interim_login ) { + $customize_login = isset( $_REQUEST['customize-login'] ); + if ( $customize_login ) { + wp_enqueue_script( 'customize-base' ); + } + $message = '

' . __( 'You have logged in successfully.', 'two-factor' ) . '

'; + $interim_login = 'success'; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited + login_header( '', $message ); + ?> + + + + + + + %s', esc_html__( 'Disabled', 'two-factor' ) ); + } else { + $provider = self::get_primary_provider_for_user( $user_id ); + return esc_html( $provider->get_label() ); + } + + } + + /** + * Add user profile fields. + * + * This executes during the `show_user_profile` & `edit_user_profile` actions. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + */ + public static function user_two_factor_options( $user ) { + wp_enqueue_style( 'user-edit-2fa', plugins_url( 'user-edit.css', __FILE__ ), array(), TWO_FACTOR_VERSION ); + + $enabled_providers = array_keys( self::get_available_providers_for_user( $user ) ); + $primary_provider = self::get_primary_provider_for_user( $user->ID ); + + if ( ! empty( $primary_provider ) && is_object( $primary_provider ) ) { + $primary_provider_key = get_class( $primary_provider ); + } else { + $primary_provider_key = null; + } + + wp_nonce_field( 'user_two_factor_options', '_nonce_user_two_factor_options', false ); + + ?> + + + + + + +
+ + + + + + + + + + + + $object ) : ?> + + + + + + + +
/> /> + + +
+
+ } + */ +u2f.Transports; + +/** + * Data object for a single sign request. + * @typedef {{ + * version: string, + * challenge: string, + * keyHandle: string, + * appId: string + * }} + */ +u2f.SignRequest; + + +/** + * Data object for a sign response. + * @typedef {{ + * keyHandle: string, + * signatureData: string, + * clientData: string + * }} + */ +u2f.SignResponse; + + +/** + * Data object for a registration request. + * @typedef {{ + * version: string, + * challenge: string + * }} + */ +u2f.RegisterRequest; + + +/** + * Data object for a registration response. + * @typedef {{ + * version: string, + * keyHandle: string, + * transports: Transports, + * appId: string + * }} + */ +u2f.RegisterResponse; + + +/** + * Data object for a registered key. + * @typedef {{ + * version: string, + * keyHandle: string, + * transports: ?Transports, + * appId: ?string + * }} + */ +u2f.RegisteredKey; + + +/** + * Data object for a get API register response. + * @typedef {{ + * js_api_version: number + * }} + */ +u2f.GetJsApiVersionResponse; + + +//Low level MessagePort API support + +/** + * Sets up a MessagePort to the U2F extension using the + * available mechanisms. + * @param {function((MessagePort|u2f.WrappedChromeRuntimePort_))} callback + */ +u2f.getMessagePort = function(callback) { + if (typeof chrome != 'undefined' && chrome.runtime) { + // The actual message here does not matter, but we need to get a reply + // for the callback to run. Thus, send an empty signature request + // in order to get a failure response. + var msg = { + type: u2f.MessageTypes.U2F_SIGN_REQUEST, + signRequests: [] + }; + chrome.runtime.sendMessage(u2f.EXTENSION_ID, msg, function() { + if (!chrome.runtime.lastError) { + // We are on a whitelisted origin and can talk directly + // with the extension. + u2f.getChromeRuntimePort_(callback); + } else { + // chrome.runtime was available, but we couldn't message + // the extension directly, use iframe + u2f.getIframePort_(callback); + } + }); + } else if (u2f.isAndroidChrome_()) { + u2f.getAuthenticatorPort_(callback); + } else if (u2f.isIosChrome_()) { + u2f.getIosPort_(callback); + } else { + // chrome.runtime was not available at all, which is normal + // when this origin doesn't have access to any extensions. + u2f.getIframePort_(callback); + } +}; + +/** + * Detect chrome running on android based on the browser's useragent. + * @private + */ +u2f.isAndroidChrome_ = function() { + var userAgent = navigator.userAgent; + return userAgent.indexOf('Chrome') != -1 && + userAgent.indexOf('Android') != -1; +}; + +/** + * Detect chrome running on iOS based on the browser's platform. + * @private + */ +u2f.isIosChrome_ = function() { + return ["iPhone", "iPad", "iPod"].indexOf(navigator.platform) > -1; +}; + +/** + * Connects directly to the extension via chrome.runtime.connect. + * @param {function(u2f.WrappedChromeRuntimePort_)} callback + * @private + */ +u2f.getChromeRuntimePort_ = function(callback) { + var port = chrome.runtime.connect(u2f.EXTENSION_ID, + {'includeTlsChannelId': true}); + setTimeout(function() { + callback(new u2f.WrappedChromeRuntimePort_(port)); + }, 0); +}; + +/** + * Return a 'port' abstraction to the Authenticator app. + * @param {function(u2f.WrappedAuthenticatorPort_)} callback + * @private + */ +u2f.getAuthenticatorPort_ = function(callback) { + setTimeout(function() { + callback(new u2f.WrappedAuthenticatorPort_()); + }, 0); +}; + +/** + * Return a 'port' abstraction to the iOS client app. + * @param {function(u2f.WrappedIosPort_)} callback + * @private + */ +u2f.getIosPort_ = function(callback) { + setTimeout(function() { + callback(new u2f.WrappedIosPort_()); + }, 0); +}; + +/** + * A wrapper for chrome.runtime.Port that is compatible with MessagePort. + * @param {Port} port + * @constructor + * @private + */ +u2f.WrappedChromeRuntimePort_ = function(port) { + this.port_ = port; +}; + +/** + * Format and return a sign request compliant with the JS API version supported by the extension. + * @param {Array} signRequests + * @param {number} timeoutSeconds + * @param {number} reqId + * @return {Object} + */ +u2f.formatSignRequest_ = + function(appId, challenge, registeredKeys, timeoutSeconds, reqId) { + if (js_api_version === undefined || js_api_version < 1.1) { + // Adapt request to the 1.0 JS API. + var signRequests = []; + for (var i = 0; i < registeredKeys.length; i++) { + signRequests[i] = { + version: registeredKeys[i].version, + challenge: challenge, + keyHandle: registeredKeys[i].keyHandle, + appId: appId + }; + } + return { + type: u2f.MessageTypes.U2F_SIGN_REQUEST, + signRequests: signRequests, + timeoutSeconds: timeoutSeconds, + requestId: reqId + }; + } + // JS 1.1 API. + return { + type: u2f.MessageTypes.U2F_SIGN_REQUEST, + appId: appId, + challenge: challenge, + registeredKeys: registeredKeys, + timeoutSeconds: timeoutSeconds, + requestId: reqId + }; +}; + +/** + * Format and return a register request compliant with the JS API version supported by the extension.. + * @param {Array} signRequests + * @param {Array} signRequests + * @param {number} timeoutSeconds + * @param {number} reqId + * @return {Object} + */ +u2f.formatRegisterRequest_ = + function(appId, registeredKeys, registerRequests, timeoutSeconds, reqId) { + if (js_api_version === undefined || js_api_version < 1.1) { + // Adapt request to the 1.0 JS API. + for (var i = 0; i < registerRequests.length; i++) { + registerRequests[i].appId = appId; + } + var signRequests = []; + for (var i = 0; i < registeredKeys.length; i++) { + signRequests[i] = { + version: registeredKeys[i].version, + challenge: registerRequests[0], + keyHandle: registeredKeys[i].keyHandle, + appId: appId + }; + } + return { + type: u2f.MessageTypes.U2F_REGISTER_REQUEST, + signRequests: signRequests, + registerRequests: registerRequests, + timeoutSeconds: timeoutSeconds, + requestId: reqId + }; + } + // JS 1.1 API. + return { + type: u2f.MessageTypes.U2F_REGISTER_REQUEST, + appId: appId, + registerRequests: registerRequests, + registeredKeys: registeredKeys, + timeoutSeconds: timeoutSeconds, + requestId: reqId + }; +}; + + +/** + * Posts a message on the underlying channel. + * @param {Object} message + */ +u2f.WrappedChromeRuntimePort_.prototype.postMessage = function(message) { + this.port_.postMessage(message); +}; + + +/** + * Emulates the HTML 5 addEventListener interface. Works only for the + * onmessage event, which is hooked up to the chrome.runtime.Port.onMessage. + * @param {string} eventName + * @param {function({data: Object})} handler + */ +u2f.WrappedChromeRuntimePort_.prototype.addEventListener = + function(eventName, handler) { + var name = eventName.toLowerCase(); + if (name == 'message' || name == 'onmessage') { + this.port_.onMessage.addListener(function(message) { + // Emulate a minimal MessageEvent object. + handler({'data': message}); + }); + } else { + console.error('WrappedChromeRuntimePort only supports onMessage'); + } +}; + +/** + * Wrap the Authenticator app with a MessagePort interface. + * @constructor + * @private + */ +u2f.WrappedAuthenticatorPort_ = function() { + this.requestId_ = -1; + this.requestObject_ = null; +} + +/** + * Launch the Authenticator intent. + * @param {Object} message + */ +u2f.WrappedAuthenticatorPort_.prototype.postMessage = function(message) { + var intentUrl = + u2f.WrappedAuthenticatorPort_.INTENT_URL_BASE_ + + ';S.request=' + encodeURIComponent(JSON.stringify(message)) + + ';end'; + document.location = intentUrl; +}; + +/** + * Tells what type of port this is. + * @return {String} port type + */ +u2f.WrappedAuthenticatorPort_.prototype.getPortType = function() { + return "WrappedAuthenticatorPort_"; +}; + + +/** + * Emulates the HTML 5 addEventListener interface. + * @param {string} eventName + * @param {function({data: Object})} handler + */ +u2f.WrappedAuthenticatorPort_.prototype.addEventListener = function(eventName, handler) { + var name = eventName.toLowerCase(); + if (name == 'message') { + var self = this; + /* Register a callback to that executes when + * chrome injects the response. */ + window.addEventListener( + 'message', self.onRequestUpdate_.bind(self, handler), false); + } else { + console.error('WrappedAuthenticatorPort only supports message'); + } +}; + +/** + * Callback invoked when a response is received from the Authenticator. + * @param function({data: Object}) callback + * @param {Object} message message Object + */ +u2f.WrappedAuthenticatorPort_.prototype.onRequestUpdate_ = + function(callback, message) { + var messageObject = JSON.parse(message.data); + var intentUrl = messageObject['intentURL']; + + var errorCode = messageObject['errorCode']; + var responseObject = null; + if (messageObject.hasOwnProperty('data')) { + responseObject = /** @type {Object} */ ( + JSON.parse(messageObject['data'])); + } + + callback({'data': responseObject}); +}; + +/** + * Base URL for intents to Authenticator. + * @const + * @private + */ +u2f.WrappedAuthenticatorPort_.INTENT_URL_BASE_ = + 'intent:#Intent;action=com.google.android.apps.authenticator.AUTHENTICATE'; + +/** + * Wrap the iOS client app with a MessagePort interface. + * @constructor + * @private + */ +u2f.WrappedIosPort_ = function() {}; + +/** + * Launch the iOS client app request + * @param {Object} message + */ +u2f.WrappedIosPort_.prototype.postMessage = function(message) { + var str = JSON.stringify(message); + var url = "u2f://auth?" + encodeURI(str); + location.replace(url); +}; + +/** + * Tells what type of port this is. + * @return {String} port type + */ +u2f.WrappedIosPort_.prototype.getPortType = function() { + return "WrappedIosPort_"; +}; + +/** + * Emulates the HTML 5 addEventListener interface. + * @param {string} eventName + * @param {function({data: Object})} handler + */ +u2f.WrappedIosPort_.prototype.addEventListener = function(eventName, handler) { + var name = eventName.toLowerCase(); + if (name !== 'message') { + console.error('WrappedIosPort only supports message'); + } +}; + +/** + * Sets up an embedded trampoline iframe, sourced from the extension. + * @param {function(MessagePort)} callback + * @private + */ +u2f.getIframePort_ = function(callback) { + // Create the iframe + var iframeOrigin = 'chrome-extension://' + u2f.EXTENSION_ID; + var iframe = document.createElement('iframe'); + iframe.src = iframeOrigin + '/u2f-comms.html'; + iframe.setAttribute('style', 'display:none'); + document.body.appendChild(iframe); + + var channel = new MessageChannel(); + var ready = function(message) { + if (message.data == 'ready') { + channel.port1.removeEventListener('message', ready); + callback(channel.port1); + } else { + console.error('First event on iframe port was not "ready"'); + } + }; + channel.port1.addEventListener('message', ready); + channel.port1.start(); + + iframe.addEventListener('load', function() { + // Deliver the port to the iframe and initialize + iframe.contentWindow.postMessage('init', iframeOrigin, [channel.port2]); + }); +}; + + +//High-level JS API + +/** + * Default extension response timeout in seconds. + * @const + */ +u2f.EXTENSION_TIMEOUT_SEC = 30; + +/** + * A singleton instance for a MessagePort to the extension. + * @type {MessagePort|u2f.WrappedChromeRuntimePort_} + * @private + */ +u2f.port_ = null; + +/** + * Callbacks waiting for a port + * @type {Array} + * @private + */ +u2f.waitingForPort_ = []; + +/** + * A counter for requestIds. + * @type {number} + * @private + */ +u2f.reqCounter_ = 0; + +/** + * A map from requestIds to client callbacks + * @type {Object.} + * @private + */ +u2f.callbackMap_ = {}; + +/** + * Creates or retrieves the MessagePort singleton to use. + * @param {function((MessagePort|u2f.WrappedChromeRuntimePort_))} callback + * @private + */ +u2f.getPortSingleton_ = function(callback) { + if (u2f.port_) { + callback(u2f.port_); + } else { + if (u2f.waitingForPort_.length == 0) { + u2f.getMessagePort(function(port) { + u2f.port_ = port; + u2f.port_.addEventListener('message', + /** @type {function(Event)} */ (u2f.responseHandler_)); + + // Careful, here be async callbacks. Maybe. + while (u2f.waitingForPort_.length) + u2f.waitingForPort_.shift()(u2f.port_); + }); + } + u2f.waitingForPort_.push(callback); + } +}; + +/** + * Handles response messages from the extension. + * @param {MessageEvent.} message + * @private + */ +u2f.responseHandler_ = function(message) { + var response = message.data; + var reqId = response['requestId']; + if (!reqId || !u2f.callbackMap_[reqId]) { + console.error('Unknown or missing requestId in response.'); + return; + } + var cb = u2f.callbackMap_[reqId]; + delete u2f.callbackMap_[reqId]; + cb(response['responseData']); +}; + +/** + * Dispatches an array of sign requests to available U2F tokens. + * If the JS API version supported by the extension is unknown, it first sends a + * message to the extension to find out the supported API version and then it sends + * the sign request. + * @param {string=} appId + * @param {string=} challenge + * @param {Array} registeredKeys + * @param {function((u2f.Error|u2f.SignResponse))} callback + * @param {number=} opt_timeoutSeconds + */ +u2f.sign = function(appId, challenge, registeredKeys, callback, opt_timeoutSeconds) { + if (js_api_version === undefined) { + // Send a message to get the extension to JS API version, then send the actual sign request. + u2f.getApiVersion( + function (response) { + js_api_version = response['js_api_version'] === undefined ? 0 : response['js_api_version']; + console.log("Extension JS API Version: ", js_api_version); + u2f.sendSignRequest(appId, challenge, registeredKeys, callback, opt_timeoutSeconds); + }); + } else { + // We know the JS API version. Send the actual sign request in the supported API version. + u2f.sendSignRequest(appId, challenge, registeredKeys, callback, opt_timeoutSeconds); + } +}; + +/** + * Dispatches an array of sign requests to available U2F tokens. + * @param {string=} appId + * @param {string=} challenge + * @param {Array} registeredKeys + * @param {function((u2f.Error|u2f.SignResponse))} callback + * @param {number=} opt_timeoutSeconds + */ +u2f.sendSignRequest = function(appId, challenge, registeredKeys, callback, opt_timeoutSeconds) { + u2f.getPortSingleton_(function(port) { + var reqId = ++u2f.reqCounter_; + u2f.callbackMap_[reqId] = callback; + var timeoutSeconds = (typeof opt_timeoutSeconds !== 'undefined' ? + opt_timeoutSeconds : u2f.EXTENSION_TIMEOUT_SEC); + var req = u2f.formatSignRequest_(appId, challenge, registeredKeys, timeoutSeconds, reqId); + port.postMessage(req); + }); +}; + +/** + * Dispatches register requests to available U2F tokens. An array of sign + * requests identifies already registered tokens. + * If the JS API version supported by the extension is unknown, it first sends a + * message to the extension to find out the supported API version and then it sends + * the register request. + * @param {string=} appId + * @param {Array} registerRequests + * @param {Array} registeredKeys + * @param {function((u2f.Error|u2f.RegisterResponse))} callback + * @param {number=} opt_timeoutSeconds + */ +u2f.register = function(appId, registerRequests, registeredKeys, callback, opt_timeoutSeconds) { + if (js_api_version === undefined) { + // Send a message to get the extension to JS API version, then send the actual register request. + u2f.getApiVersion( + function (response) { + js_api_version = response['js_api_version'] === undefined ? 0: response['js_api_version']; + console.log("Extension JS API Version: ", js_api_version); + u2f.sendRegisterRequest(appId, registerRequests, registeredKeys, + callback, opt_timeoutSeconds); + }); + } else { + // We know the JS API version. Send the actual register request in the supported API version. + u2f.sendRegisterRequest(appId, registerRequests, registeredKeys, + callback, opt_timeoutSeconds); + } +}; + +/** + * Dispatches register requests to available U2F tokens. An array of sign + * requests identifies already registered tokens. + * @param {string=} appId + * @param {Array} registerRequests + * @param {Array} registeredKeys + * @param {function((u2f.Error|u2f.RegisterResponse))} callback + * @param {number=} opt_timeoutSeconds + */ +u2f.sendRegisterRequest = function(appId, registerRequests, registeredKeys, callback, opt_timeoutSeconds) { + u2f.getPortSingleton_(function(port) { + var reqId = ++u2f.reqCounter_; + u2f.callbackMap_[reqId] = callback; + var timeoutSeconds = (typeof opt_timeoutSeconds !== 'undefined' ? + opt_timeoutSeconds : u2f.EXTENSION_TIMEOUT_SEC); + var req = u2f.formatRegisterRequest_( + appId, registeredKeys, registerRequests, timeoutSeconds, reqId); + port.postMessage(req); + }); +}; + + +/** + * Dispatches a message to the extension to find out the supported + * JS API version. + * If the user is on a mobile phone and is thus using Google Authenticator instead + * of the Chrome extension, don't send the request and simply return 0. + * @param {function((u2f.Error|u2f.GetJsApiVersionResponse))} callback + * @param {number=} opt_timeoutSeconds + */ +u2f.getApiVersion = function(callback, opt_timeoutSeconds) { + u2f.getPortSingleton_(function(port) { + // If we are using Android Google Authenticator or iOS client app, + // do not fire an intent to ask which JS API version to use. + if (port.getPortType) { + var apiVersion; + switch (port.getPortType()) { + case 'WrappedIosPort_': + case 'WrappedAuthenticatorPort_': + apiVersion = 1.1; + break; + + default: + apiVersion = 0; + break; + } + callback({ 'js_api_version': apiVersion }); + return; + } + var reqId = ++u2f.reqCounter_; + u2f.callbackMap_[reqId] = callback; + var req = { + type: u2f.MessageTypes.U2F_GET_API_VERSION_REQUEST, + timeoutSeconds: (typeof opt_timeoutSeconds !== 'undefined' ? + opt_timeoutSeconds : u2f.EXTENSION_TIMEOUT_SEC), + requestId: reqId + }; + port.postMessage(req); + }); +}; diff --git a/wp-content/plugins/two-factor/includes/Yubico/U2F.php b/wp-content/plugins/two-factor/includes/Yubico/U2F.php new file mode 100644 index 00000000..e819bbc1 --- /dev/null +++ b/wp-content/plugins/two-factor/includes/Yubico/U2F.php @@ -0,0 +1,507 @@ +appId = $appId; + $this->attestDir = $attestDir; + } + + /** + * Called to get a registration request to send to a user. + * Returns an array of one registration request and a array of sign requests. + * + * @param array $registrations List of current registrations for this + * user, to prevent the user from registering the same authenticator several + * times. + * @return array An array of two elements, the first containing a + * RegisterRequest the second being an array of SignRequest + * @throws Error + */ + public function getRegisterData(array $registrations = array()) + { + $challenge = $this->createChallenge(); + $request = new RegisterRequest($challenge, $this->appId); + $signs = $this->getAuthenticateData($registrations); + return array($request, $signs); + } + + /** + * Called to verify and unpack a registration message. + * + * @param RegisterRequest $request this is a reply to + * @param object $response response from a user + * @param bool $includeCert set to true if the attestation certificate should be + * included in the returned Registration object + * @return Registration + * @throws Error + */ + public function doRegister($request, $response, $includeCert = true) + { + if( !is_object( $request ) ) { + throw new \InvalidArgumentException('$request of doRegister() method only accepts object.'); + } + + if( !is_object( $response ) ) { + throw new \InvalidArgumentException('$response of doRegister() method only accepts object.'); + } + + if( property_exists( $response, 'errorCode') && $response->errorCode !== 0 ) { + throw new Error('User-agent returned error. Error code: ' . $response->errorCode, ERR_BAD_UA_RETURNING ); + } + + if( !is_bool( $includeCert ) ) { + throw new \InvalidArgumentException('$include_cert of doRegister() method only accepts boolean.'); + } + + $rawReg = $this->base64u_decode($response->registrationData); + $regData = array_values(unpack('C*', $rawReg)); + $clientData = $this->base64u_decode($response->clientData); + $cli = json_decode($clientData); + + if($cli->challenge !== $request->challenge) { + throw new Error('Registration challenge does not match', ERR_UNMATCHED_CHALLENGE ); + } + + $registration = new Registration(); + $offs = 1; + $pubKey = substr($rawReg, $offs, PUBKEY_LEN); + $offs += PUBKEY_LEN; + // Decode the pubKey to make sure it's good. + $tmpKey = $this->pubkey_to_pem($pubKey); + if($tmpKey === null) { + throw new Error('Decoding of public key failed', ERR_PUBKEY_DECODE ); + } + $registration->publicKey = base64_encode($pubKey); + $khLen = $regData[$offs++]; + $kh = substr($rawReg, $offs, $khLen); + $offs += $khLen; + $registration->keyHandle = $this->base64u_encode($kh); + + // length of certificate is stored in byte 3 and 4 (excluding the first 4 bytes). + $certLen = 4; + $certLen += ($regData[$offs + 2] << 8); + $certLen += $regData[$offs + 3]; + + $rawCert = $this->fixSignatureUnusedBits(substr($rawReg, $offs, $certLen)); + $offs += $certLen; + $pemCert = "-----BEGIN CERTIFICATE-----\r\n"; + $pemCert .= chunk_split(base64_encode($rawCert), 64); + $pemCert .= "-----END CERTIFICATE-----"; + if($includeCert) { + $registration->certificate = base64_encode($rawCert); + } + if($this->attestDir) { + if(openssl_x509_checkpurpose($pemCert, -1, $this->get_certs()) !== true) { + throw new Error('Attestation certificate can not be validated', ERR_ATTESTATION_VERIFICATION ); + } + } + + if(!openssl_pkey_get_public($pemCert)) { + throw new Error('Decoding of public key failed', ERR_PUBKEY_DECODE ); + } + $signature = substr($rawReg, $offs); + + $dataToVerify = chr(0); + $dataToVerify .= hash('sha256', $request->appId, true); + $dataToVerify .= hash('sha256', $clientData, true); + $dataToVerify .= $kh; + $dataToVerify .= $pubKey; + + if(openssl_verify($dataToVerify, $signature, $pemCert, 'sha256') === 1) { + return $registration; + } else { + throw new Error('Attestation signature does not match', ERR_ATTESTATION_SIGNATURE ); + } + } + + /** + * Called to get an authentication request. + * + * @param array $registrations An array of the registrations to create authentication requests for. + * @return array An array of SignRequest + * @throws Error + */ + public function getAuthenticateData(array $registrations) + { + $sigs = array(); + $challenge = $this->createChallenge(); + foreach ($registrations as $reg) { + if( !is_object( $reg ) ) { + throw new \InvalidArgumentException('$registrations of getAuthenticateData() method only accepts array of object.'); + } + + $sig = new SignRequest(); + $sig->appId = $this->appId; + $sig->keyHandle = $reg->keyHandle; + $sig->challenge = $challenge; + $sigs[] = $sig; + } + return $sigs; + } + + /** + * Called to verify an authentication response + * + * @param array $requests An array of outstanding authentication requests + * @param array $registrations An array of current registrations + * @param object $response A response from the authenticator + * @return Registration + * @throws Error + * + * The Registration object returned on success contains an updated counter + * that should be saved for future authentications. + * If the Error returned is ERR_COUNTER_TOO_LOW this is an indication of + * token cloning or similar and appropriate action should be taken. + */ + public function doAuthenticate(array $requests, array $registrations, $response) + { + if( !is_object( $response ) ) { + throw new \InvalidArgumentException('$response of doAuthenticate() method only accepts object.'); + } + + if( property_exists( $response, 'errorCode') && $response->errorCode !== 0 ) { + throw new Error('User-agent returned error. Error code: ' . $response->errorCode, ERR_BAD_UA_RETURNING ); + } + + /** @var object|null $req */ + $req = null; + + /** @var object|null $reg */ + $reg = null; + + $clientData = $this->base64u_decode($response->clientData); + $decodedClient = json_decode($clientData); + foreach ($requests as $req) { + if( !is_object( $req ) ) { + throw new \InvalidArgumentException('$requests of doAuthenticate() method only accepts array of object.'); + } + + if($req->keyHandle === $response->keyHandle && $req->challenge === $decodedClient->challenge) { + break; + } + + $req = null; + } + if($req === null) { + throw new Error('No matching request found', ERR_NO_MATCHING_REQUEST ); + } + foreach ($registrations as $reg) { + if( !is_object( $reg ) ) { + throw new \InvalidArgumentException('$registrations of doAuthenticate() method only accepts array of object.'); + } + + if($reg->keyHandle === $response->keyHandle) { + break; + } + $reg = null; + } + if($reg === null) { + throw new Error('No matching registration found', ERR_NO_MATCHING_REGISTRATION ); + } + $pemKey = $this->pubkey_to_pem($this->base64u_decode($reg->publicKey)); + if($pemKey === null) { + throw new Error('Decoding of public key failed', ERR_PUBKEY_DECODE ); + } + + $signData = $this->base64u_decode($response->signatureData); + $dataToVerify = hash('sha256', $req->appId, true); + $dataToVerify .= substr($signData, 0, 5); + $dataToVerify .= hash('sha256', $clientData, true); + $signature = substr($signData, 5); + + if(openssl_verify($dataToVerify, $signature, $pemKey, 'sha256') === 1) { + $ctr = unpack("Nctr", substr($signData, 1, 4)); + $counter = $ctr['ctr']; + /* TODO: wrap-around should be handled somehow.. */ + if($counter > $reg->counter) { + $reg->counter = $counter; + return $reg; + } else { + throw new Error('Counter too low.', ERR_COUNTER_TOO_LOW ); + } + } else { + throw new Error('Authentication failed', ERR_AUTHENTICATION_FAILURE ); + } + } + + /** + * @return array + */ + private function get_certs() + { + $files = array(); + $dir = $this->attestDir; + if($dir && $handle = opendir($dir)) { + while(false !== ($entry = readdir($handle))) { + if(is_file("$dir/$entry")) { + $files[] = "$dir/$entry"; + } + } + closedir($handle); + } + return $files; + } + + /** + * @param string $data + * @return string + */ + private function base64u_encode($data) + { + return trim(strtr(base64_encode($data), '+/', '-_'), '='); + } + + /** + * @param string $data + * @return string + */ + private function base64u_decode($data) + { + return base64_decode(strtr($data, '-_', '+/')); + } + + /** + * @param string $key + * @return null|string + */ + private function pubkey_to_pem($key) + { + if(strlen($key) !== PUBKEY_LEN || $key[0] !== "\x04") { + return null; + } + + /* + * Convert the public key to binary DER format first + * Using the ECC SubjectPublicKeyInfo OIDs from RFC 5480 + * + * SEQUENCE(2 elem) 30 59 + * SEQUENCE(2 elem) 30 13 + * OID1.2.840.10045.2.1 (id-ecPublicKey) 06 07 2a 86 48 ce 3d 02 01 + * OID1.2.840.10045.3.1.7 (secp256r1) 06 08 2a 86 48 ce 3d 03 01 07 + * BIT STRING(520 bit) 03 42 ..key.. + */ + $der = "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01"; + $der .= "\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07\x03\x42"; + $der .= "\0".$key; + + $pem = "-----BEGIN PUBLIC KEY-----\r\n"; + $pem .= chunk_split(base64_encode($der), 64); + $pem .= "-----END PUBLIC KEY-----"; + + return $pem; + } + + /** + * @return string + * @throws Error + */ + private function createChallenge() + { + $challenge = openssl_random_pseudo_bytes(32, $crypto_strong ); + if( $crypto_strong !== true ) { + throw new Error('Unable to obtain a good source of randomness', ERR_BAD_RANDOM); + } + + $challenge = $this->base64u_encode( $challenge ); + + return $challenge; + } + + /** + * Fixes a certificate where the signature contains unused bits. + * + * @param string $cert + * @return mixed + */ + private function fixSignatureUnusedBits($cert) + { + if(in_array(hash('sha256', $cert), $this->FIXCERTS)) { + $cert[strlen($cert) - 257] = "\0"; + } + return $cert; + } +} + +/** + * Class for building a registration request + * + * @package u2flib_server + */ +class RegisterRequest +{ + /** Protocol version */ + public $version = U2F_VERSION; + + /** Registration challenge */ + public $challenge; + + /** Application id */ + public $appId; + + /** + * @param string $challenge + * @param string $appId + * @internal + */ + public function __construct($challenge, $appId) + { + $this->challenge = $challenge; + $this->appId = $appId; + } +} + +/** + * Class for building up an authentication request + * + * @package u2flib_server + */ +class SignRequest +{ + /** Protocol version */ + public $version = U2F_VERSION; + + /** Authentication challenge */ + public $challenge; + + /** Key handle of a registered authenticator */ + public $keyHandle; + + /** Application id */ + public $appId; +} + +/** + * Class returned for successful registrations + * + * @package u2flib_server + */ +class Registration +{ + /** The key handle of the registered authenticator */ + public $keyHandle; + + /** The public key of the registered authenticator */ + public $publicKey; + + /** The attestation certificate of the registered authenticator */ + public $certificate; + + /** The counter associated with this registration */ + public $counter = -1; +} + +/** + * Error class, returned on errors + * + * @package u2flib_server + */ +class Error extends \Exception +{ + /** + * Override constructor and make message and code mandatory + * @param string $message + * @param int $code + * @param \Exception|null $previous + */ + public function __construct($message, $code, \Exception $previous = null) { + parent::__construct($message, $code, $previous); + } +} diff --git a/wp-content/plugins/two-factor/includes/function.login-footer.php b/wp-content/plugins/two-factor/includes/function.login-footer.php new file mode 100644 index 00000000..a2876b02 --- /dev/null +++ b/wp-content/plugins/two-factor/includes/function.login-footer.php @@ -0,0 +1,87 @@ + +

+ %s', + esc_url( home_url( '/' ) ), + sprintf( + /* translators: %s: Site title. */ + _x( '← Go to %s', 'site' ), + get_bloginfo( 'title', 'display' ) + ) + ); + /** + * Filter the "Go to site" link displayed in the login page footer. + * + * @since 5.7.0 + * + * @param string $link HTML link to the home URL of the current site. + */ + echo apply_filters( 'login_site_html_link', $html_link ); + ?> +

+ ', '' ); + } + + ?> + . ?> + + + + +
+ + + + + ` element. + * Default 'Log In'. + * @param string $message Optional. Message to display in header. Default empty. + * @param WP_Error $wp_error Optional. The error to pass. Default is a WP_Error instance. + */ +function login_header( $title = 'Log In', $message = '', $wp_error = null ) { + global $error, $interim_login, $action; + + // Don't index any of these forms. + add_filter( 'wp_robots', 'wp_robots_sensitive_page' ); + add_action( 'login_head', 'wp_strict_cross_origin_referrer' ); + + add_action( 'login_head', 'wp_login_viewport_meta' ); + + if ( ! is_wp_error( $wp_error ) ) { + $wp_error = new WP_Error(); + } + + // Shake it! + $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password', 'retrieve_password_email_failure' ); + /** + * Filters the error codes array for shaking the login form. + * + * @since 3.0.0 + * + * @param array $shake_error_codes Error codes that shake the login form. + */ + $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes ); + + if ( $shake_error_codes && $wp_error->has_errors() && in_array( $wp_error->get_error_code(), $shake_error_codes, true ) ) { + add_action( 'login_footer', 'wp_shake_js', 12 ); + } + + $login_title = get_bloginfo( 'name', 'display' ); + + /* translators: Login screen title. 1: Login screen name, 2: Network or site name. */ + $login_title = sprintf( __( '%1$s ‹ %2$s — WordPress' ), $title, $login_title ); + + if ( wp_is_recovery_mode() ) { + /* translators: %s: Login screen title. */ + $login_title = sprintf( __( 'Recovery Mode — %s' ), $login_title ); + } + + /** + * Filters the title tag content for login page. + * + * @since 4.9.0 + * + * @param string $login_title The page title, with extra context added. + * @param string $title The original page title. + */ + $login_title = apply_filters( 'login_title', $login_title, $title ); + + ?> + > + + + <?php echo $login_title; ?> + get_error_code() ) { + ?> + + + + + + + + +
+

+ add( 'error', $error ); + unset( $error ); + } + + if ( $wp_error->has_errors() ) { + $errors = ''; + $messages = ''; + + foreach ( $wp_error->get_error_codes() as $code ) { + $severity = $wp_error->get_error_data( $code ); + foreach ( $wp_error->get_error_messages( $code ) as $error_message ) { + if ( 'message' === $severity ) { + $messages .= ' ' . $error_message . "
\n"; + } else { + $errors .= ' ' . $error_message . "
\n"; + } + } + } + + if ( ! empty( $errors ) ) { + /** + * Filters the error messages displayed above the login form. + * + * @since 2.1.0 + * + * @param string $errors Login error message. + */ + echo '
' . apply_filters( 'login_errors', $errors ) . "
\n"; + } + + if ( ! empty( $messages ) ) { + /** + * Filters instructional messages displayed above the login form. + * + * @since 2.5.0 + * + * @param string $messages Login messages. + */ + echo '

' . apply_filters( 'login_messages', $messages ) . "

\n"; + } + } +} // End of login_header(). + +/** + * Outputs the viewport meta tag for the login page. + * + * @since 3.7.0 + */ +function wp_login_viewport_meta() { + ?> + + ID ), true ) ) { + return; + } + + // Return if we are not out of codes. + if ( $this->is_available_for_user( $user ) ) { + return; + } + ?> +
+

+ + regenerate!', 'two-factor' ), + esc_url( get_edit_user_link( $user->ID ) . '#two-factor-backup-codes' ) + ), + array( 'a' => array( 'href' => true ) ) + ); + ?> + +

+
+ ID ); + $count = self::codes_remaining_for_user( $user ); + ?> +

+ + + + +

+ + + ID, self::BACKUP_CODES_META_KEY, true ); + } + + for ( $i = 0; $i < $num_codes; $i++ ) { + $code = $this->get_code(); + $codes_hashed[] = wp_hash_password( $code ); + $codes[] = $code; + unset( $code ); + } + + update_user_meta( $user->ID, self::BACKUP_CODES_META_KEY, $codes_hashed ); + + // Unhashed. + return $codes; + } + + /** + * Generates a JSON object of backup codes. + * + * @since 0.1-dev + */ + public function ajax_generate_json() { + $user = get_user_by( 'id', filter_input( INPUT_POST, 'user_id', FILTER_SANITIZE_NUMBER_INT ) ); + check_ajax_referer( 'two-factor-backup-codes-generate-json-' . $user->ID, 'nonce' ); + + // Setup the return data. + $codes = $this->generate_codes( $user ); + $count = self::codes_remaining_for_user( $user ); + $i18n = array( + /* translators: %s: count */ + 'count' => esc_html( sprintf( _n( '%s unused code remaining.', '%s unused codes remaining.', $count, 'two-factor' ), $count ) ), + /* translators: %s: the site's domain */ + 'title' => esc_html__( 'Two-Factor Backup Codes for %s', 'two-factor' ), + ); + + // Send the response. + wp_send_json_success( + array( + 'codes' => $codes, + 'i18n' => $i18n, + ) + ); + } + + /** + * Returns the number of unused codes for the specified user + * + * @param WP_User $user WP_User object of the logged-in user. + * @return int $int The number of unused codes remaining + */ + public static function codes_remaining_for_user( $user ) { + $backup_codes = get_user_meta( $user->ID, self::BACKUP_CODES_META_KEY, true ); + if ( is_array( $backup_codes ) && ! empty( $backup_codes ) ) { + return count( $backup_codes ); + } + return 0; + } + + /** + * Prints the form that prompts the user to authenticate. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + */ + public function authentication_page( $user ) { + require_once ABSPATH . '/wp-admin/includes/template.php'; + ?> +


+

+ + +

+ validate_code( $user, $backup_code ); + } + + /** + * Validates a backup code. + * + * Backup Codes are single use and are deleted upon a successful validation. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + * @param int $code The backup code. + * @return boolean + */ + public function validate_code( $user, $code ) { + $backup_codes = get_user_meta( $user->ID, self::BACKUP_CODES_META_KEY, true ); + + if ( is_array( $backup_codes ) && ! empty( $backup_codes ) ) { + foreach ( $backup_codes as $code_index => $code_hashed ) { + if ( wp_check_password( $code, $code_hashed, $user->ID ) ) { + $this->delete_code( $user, $code_hashed ); + return true; + } + } + } + return false; + } + + /** + * Deletes a backup code. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + * @param string $code_hashed The hashed the backup code. + */ + public function delete_code( $user, $code_hashed ) { + $backup_codes = get_user_meta( $user->ID, self::BACKUP_CODES_META_KEY, true ); + + // Delete the current code from the list since it's been used. + $backup_codes = array_flip( $backup_codes ); + unset( $backup_codes[ $code_hashed ] ); + $backup_codes = array_values( array_flip( $backup_codes ) ); + + // Update the backup code master list. + update_user_meta( $user->ID, self::BACKUP_CODES_META_KEY, $backup_codes ); + } +} diff --git a/wp-content/plugins/two-factor/providers/class-two-factor-dummy.php b/wp-content/plugins/two-factor/providers/class-two-factor-dummy.php new file mode 100644 index 00000000..f1625dce --- /dev/null +++ b/wp-content/plugins/two-factor/providers/class-two-factor-dummy.php @@ -0,0 +1,99 @@ + +

+ get_code(); + + update_user_meta( $user_id, self::TOKEN_META_KEY_TIMESTAMP, time() ); + update_user_meta( $user_id, self::TOKEN_META_KEY, wp_hash( $token ) ); + + return $token; + } + + /** + * Check if user has a valid token already. + * + * @param int $user_id User ID. + * @return boolean If user has a valid email token. + */ + public function user_has_token( $user_id ) { + $hashed_token = $this->get_user_token( $user_id ); + + if ( ! empty( $hashed_token ) ) { + return true; + } + + return false; + } + + /** + * Has the user token validity timestamp expired. + * + * @param integer $user_id User ID. + * + * @return boolean + */ + public function user_token_has_expired( $user_id ) { + $token_lifetime = $this->user_token_lifetime( $user_id ); + $token_ttl = $this->user_token_ttl( $user_id ); + + // Invalid token lifetime is considered an expired token. + if ( is_int( $token_lifetime ) && $token_lifetime <= $token_ttl ) { + return false; + } + + return true; + } + + /** + * Get the lifetime of a user token in seconds. + * + * @param integer $user_id User ID. + * + * @return integer|null Return `null` if the lifetime can't be measured. + */ + public function user_token_lifetime( $user_id ) { + $timestamp = intval( get_user_meta( $user_id, self::TOKEN_META_KEY_TIMESTAMP, true ) ); + + if ( ! empty( $timestamp ) ) { + return time() - $timestamp; + } + + return null; + } + + /** + * Return the token time-to-live for a user. + * + * @param integer $user_id User ID. + * + * @return integer + */ + public function user_token_ttl( $user_id ) { + $token_ttl = 15 * MINUTE_IN_SECONDS; + + /** + * Number of seconds the token is considered valid + * after the generation. + * + * @param integer $token_ttl Token time-to-live in seconds. + * @param integer $user_id User ID. + */ + return (int) apply_filters( 'two_factor_token_ttl', $token_ttl, $user_id ); + } + + /** + * Get the authentication token for the user. + * + * @param int $user_id User ID. + * + * @return string|boolean User token or `false` if no token found. + */ + public function get_user_token( $user_id ) { + $hashed_token = get_user_meta( $user_id, self::TOKEN_META_KEY, true ); + + if ( ! empty( $hashed_token ) && is_string( $hashed_token ) ) { + return $hashed_token; + } + + return false; + } + + /** + * Validate the user token. + * + * @since 0.1-dev + * + * @param int $user_id User ID. + * @param string $token User token. + * @return boolean + */ + public function validate_token( $user_id, $token ) { + $hashed_token = $this->get_user_token( $user_id ); + + // Bail if token is empty or it doesn't match. + if ( empty( $hashed_token ) || ! hash_equals( wp_hash( $token ), $hashed_token ) ) { + return false; + } + + if ( $this->user_token_has_expired( $user_id ) ) { + return false; + } + + // Ensure the token can be used only once. + $this->delete_token( $user_id ); + + return true; + } + + /** + * Delete the user token. + * + * @since 0.1-dev + * + * @param int $user_id User ID. + */ + public function delete_token( $user_id ) { + delete_user_meta( $user_id, self::TOKEN_META_KEY ); + } + + /** + * Generate and email the user token. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + * @return bool Whether the email contents were sent successfully. + */ + public function generate_and_email_token( $user ) { + $token = $this->generate_token( $user->ID ); + + /* translators: %s: site name */ + $subject = wp_strip_all_tags( sprintf( __( 'Your login confirmation code for %s', 'two-factor' ), wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) ) ); + /* translators: %s: token */ + $message = wp_strip_all_tags( sprintf( __( 'Enter %s to log in.', 'two-factor' ), $token ) ); + + /** + * Filter the token email subject. + * + * @param string $subject The email subject line. + * @param int $user_id The ID of the user. + */ + $subject = apply_filters( 'two_factor_token_email_subject', $subject, $user->ID ); + + /** + * Filter the token email message. + * + * @param string $message The email message. + * @param string $token The token. + * @param int $user_id The ID of the user. + */ + $message = apply_filters( 'two_factor_token_email_message', $message, $token, $user->ID ); + + return wp_mail( $user->user_email, $subject, $message ); // phpcs:ignore WordPressVIPMinimum.Functions.RestrictedFunctions.wp_mail_wp_mail + } + + /** + * Prints the form that prompts the user to authenticate. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + */ + public function authentication_page( $user ) { + if ( ! $user ) { + return; + } + + if ( ! $this->user_has_token( $user->ID ) || $this->user_token_has_expired( $user->ID ) ) { + $this->generate_and_email_token( $user ); + } + + require_once ABSPATH . '/wp-admin/includes/template.php'; + ?> +

+

+ + + +

+

+ +

+ + ID ) && isset( $_REQUEST[ self::INPUT_NAME_RESEND_CODE ] ) ) { + $this->generate_and_email_token( $user ); + return true; + } + + return false; + } + + /** + * Validates the users input token. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + * @return boolean + */ + public function validate_authentication( $user ) { + if ( ! isset( $user->ID ) || ! isset( $_REQUEST['two-factor-email-code'] ) ) { + return false; + } + + // Ensure there are no spaces or line breaks around the code. + $code = trim( sanitize_text_field( $_REQUEST['two-factor-email-code'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended, handled by the core method already. + + return $this->validate_token( $user->ID, $code ); + } + + /** + * Whether this Two Factor provider is configured and available for the user specified. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + * @return boolean + */ + public function is_available_for_user( $user ) { + return true; + } + + /** + * Inserts markup at the end of the user profile field for this provider. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + */ + public function user_options( $user ) { + $email = $user->user_email; + ?> +
+ +
+ wp_strip_all_tags( __( 'Name', 'two-factor' ) ), + 'added' => wp_strip_all_tags( __( 'Added', 'two-factor' ) ), + 'last_used' => wp_strip_all_tags( __( 'Last Used', 'two-factor' ) ), + ); + } + + /** + * Prepares the list of items for displaying. + * + * @since 0.1-dev + */ + public function prepare_items() { + $columns = $this->get_columns(); + $hidden = array(); + $sortable = array(); + $primary = 'name'; + $this->_column_headers = array( $columns, $hidden, $sortable, $primary ); + } + + /** + * Generates content for a single row of the table + * + * @since 0.1-dev + * @access protected + * + * @param object $item The current item. + * @param string $column_name The current column name. + * @return string + */ + protected function column_default( $item, $column_name ) { + switch ( $column_name ) { + case 'name': + $out = ''; + + $actions = array( + 'rename hide-if-no-js' => Two_Factor_FIDO_U2F_Admin::rename_link( $item ), + 'delete' => Two_Factor_FIDO_U2F_Admin::delete_link( $item ), + ); + + return esc_html( $item->name ) . $out . self::row_actions( $actions ); + case 'added': + return gmdate( get_option( 'date_format', 'r' ), $item->added ); + case 'last_used': + return gmdate( get_option( 'date_format', 'r' ), $item->last_used ); + default: + return 'WTF^^?'; + } + } + + /** + * Generates custom table navigation to prevent conflicting nonces. + * + * @since 0.1-dev + * @access protected + * + * @param string $which The location of the bulk actions: 'top' or 'bottom'. + */ + protected function display_tablenav( $which ) { + // Not used for the Security key list. + } + + /** + * Generates content for a single row of the table + * + * @since 0.1-dev + * @access public + * + * @param object $item The current item. + */ + public function single_row( $item ) { + ?> + + single_row_columns( $item ); ?> + + + + + + + + +
+ getRegisterData( $security_keys ); + list( $req,$sigs ) = $data; + + update_user_meta( $user_id, self::REGISTER_DATA_USER_META_KEY, $req ); + } catch ( Exception $e ) { + return false; + } + + wp_enqueue_style( + 'fido-u2f-admin', + plugins_url( 'css/fido-u2f-admin.css', __FILE__ ), + null, + self::asset_version() + ); + + wp_enqueue_script( + 'fido-u2f-admin', + plugins_url( 'js/fido-u2f-admin.js', __FILE__ ), + array( 'jquery', 'fido-u2f-api' ), + self::asset_version(), + true + ); + + /** + * Pass a U2F challenge and user data to our scripts + */ + + $translation_array = array( + 'user_id' => $user_id, + 'register' => array( + 'request' => $req, + 'sigs' => $sigs, + ), + 'text' => array( + 'insert' => esc_html__( 'Now insert (and tap) your Security Key.', 'two-factor' ), + 'error' => esc_html__( 'U2F request failed.', 'two-factor' ), + 'error_codes' => array( + // Map u2f.ErrorCodes to error messages. + 0 => esc_html__( 'Request OK.', 'two-factor' ), + 1 => esc_html__( 'Other U2F error.', 'two-factor' ), + 2 => esc_html__( 'Bad U2F request.', 'two-factor' ), + 3 => esc_html__( 'Unsupported U2F configuration.', 'two-factor' ), + 4 => esc_html__( 'U2F device ineligible.', 'two-factor' ), + 5 => esc_html__( 'U2F request timeout reached.', 'two-factor' ), + ), + 'u2f_not_supported' => esc_html__( 'FIDO U2F appears to be not supported by your web browser. Try using Google Chrome or Firefox.', 'two-factor' ), + ), + ); + + wp_localize_script( + 'fido-u2f-admin', + 'u2fL10n', + $translation_array + ); + + /** + * Script for admin UI + */ + + wp_enqueue_script( + 'inline-edit-key', + plugins_url( 'js/fido-u2f-admin-inline-edit.js', __FILE__ ), + array( 'jquery' ), + self::asset_version(), + true + ); + + wp_localize_script( + 'inline-edit-key', + 'inlineEditL10n', + array( + 'error' => esc_html__( 'Error while saving the changes.', 'two-factor' ), + ) + ); + } + + /** + * Return the current asset version number. + * + * Added as own helper to allow swapping the implementation once we inject + * it as a dependency. + * + * @return string + */ + protected static function asset_version() { + return Two_Factor_FIDO_U2F::asset_version(); + } + + /** + * Display the security key section in a users profile. + * + * This executes during the `show_user_security_settings` action. + * + * @since 0.1-dev + * + * @access public + * @static + * + * @param WP_User $user WP_User object of the logged-in user. + */ + public static function show_user_profile( $user ) { + wp_nonce_field( "user_security_keys-{$user->ID}", '_nonce_user_security_keys' ); + $new_key = false; + + $security_keys = Two_Factor_FIDO_U2F::get_security_keys( $user->ID ); + if ( $security_keys ) { + foreach ( $security_keys as &$security_key ) { + if ( property_exists( $security_key, 'new' ) ) { + $new_key = true; + unset( $security_key->new ); + + // If we've got a new one, update the db record to not save it there any longer. + Two_Factor_FIDO_U2F::update_security_key( $user->ID, $security_key ); + } + } + unset( $security_key ); + } + + ?> +
+

+ + +

+ +

+ + +
+ + + + + +
+ + +
+

+
+ + +

+ + items = $security_keys; + $u2f_list_table->prepare_items(); + $u2f_list_table->display(); + $u2f_list_table->inline_edit(); + ?> +
+ doRegister( get_user_meta( $user_id, self::REGISTER_DATA_USER_META_KEY, true ), $response ); + $reg->new = true; + + Two_Factor_FIDO_U2F::add_security_key( $user_id, $reg ); + } catch ( Exception $e ) { + return false; + } + + delete_user_meta( $user_id, self::REGISTER_DATA_USER_META_KEY ); + + wp_safe_redirect( + add_query_arg( + array( + 'new_app_pass' => 1, + ), + wp_get_referer() + ) . '#security-keys-section' + ); + exit; + } + } + + /** + * Catch the delete security key request. + * + * This executes during the `load-profile.php` & `load-user-edit.php` actions. + * + * @since 0.1-dev + * + * @access public + * @static + */ + public static function catch_delete_security_key() { + $user_id = Two_Factor_Core::current_user_being_edited(); + + if ( ! empty( $user_id ) && ! empty( $_REQUEST['delete_security_key'] ) ) { + $slug = $_REQUEST['delete_security_key']; + + check_admin_referer( "delete_security_key-{$slug}", '_nonce_delete_security_key' ); + + Two_Factor_FIDO_U2F::delete_security_key( $user_id, $slug ); + + wp_safe_redirect( remove_query_arg( 'new_app_pass', wp_get_referer() ) . '#security-keys-section' ); + exit; + } + } + + /** + * Generate a link to rename a specified security key. + * + * @since 0.1-dev + * + * @access public + * @static + * + * @param array $item The current item. + * @return string + */ + public static function rename_link( $item ) { + return sprintf( '%s', esc_html__( 'Rename', 'two-factor' ) ); + } + + /** + * Generate a link to delete a specified security key. + * + * @since 0.1-dev + * + * @access public + * @static + * + * @param array $item The current item. + * @return string + */ + public static function delete_link( $item ) { + $delete_link = add_query_arg( 'delete_security_key', $item->keyHandle ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + $delete_link = wp_nonce_url( $delete_link, "delete_security_key-{$item->keyHandle}", '_nonce_delete_security_key' ); + return sprintf( '%2$s', esc_url( $delete_link ), esc_html__( 'Delete', 'two-factor' ) ); + } + + /** + * Ajax handler for quick edit saving for a security key. + * + * @since 0.1-dev + * + * @access public + * @static + */ + public static function wp_ajax_inline_save() { + check_ajax_referer( 'keyinlineeditnonce', '_inline_edit' ); + + require TWO_FACTOR_DIR . 'providers/class-two-factor-fido-u2f-admin-list-table.php'; + $wp_list_table = new Two_Factor_FIDO_U2F_Admin_List_Table(); + + if ( ! isset( $_POST['keyHandle'] ) ) { + wp_die(); + } + + $user_id = Two_Factor_Core::current_user_being_edited(); + $security_keys = Two_Factor_FIDO_U2F::get_security_keys( $user_id ); + if ( ! $security_keys ) { + wp_die(); + } + + foreach ( $security_keys as &$key ) { + if ( $key->keyHandle === $_POST['keyHandle'] ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + break; + } + } + + $key->name = $_POST['name']; + + $updated = Two_Factor_FIDO_U2F::update_security_key( $user_id, $key ); + if ( ! $updated ) { + wp_die( esc_html__( 'Item not updated.', 'two-factor' ) ); + } + $wp_list_table->single_row( $key ); + wp_die(); + } +} diff --git a/wp-content/plugins/two-factor/providers/class-two-factor-fido-u2f.php b/wp-content/plugins/two-factor/providers/class-two-factor-fido-u2f.php new file mode 100644 index 00000000..330451c2 --- /dev/null +++ b/wp-content/plugins/two-factor/providers/class-two-factor-fido-u2f.php @@ -0,0 +1,397 @@ + +

+ ID ); + $data = self::$u2f->getAuthenticateData( $keys ); + update_user_meta( $user->ID, self::AUTH_DATA_USER_META_KEY, $data ); + } catch ( Exception $e ) { + ?> +

+ $data, + ) + ); + + wp_enqueue_script( 'fido-u2f-login' ); + + ?> +

+ + ID, self::AUTH_DATA_USER_META_KEY, true ); + + $response = json_decode( stripslashes( $_REQUEST['u2f_response'] ) ); + + $keys = self::get_security_keys( $user->ID ); + + try { + $reg = self::$u2f->doAuthenticate( $requests, $keys, $response ); + + $reg->last_used = time(); + + self::update_security_key( $user->ID, $reg ); + + return true; + } catch ( Exception $e ) { + return false; + } + } + + /** + * Whether this Two Factor provider is configured and available for the user specified. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + * @return boolean + */ + public function is_available_for_user( $user ) { + return (bool) self::get_security_keys( $user->ID ); + } + + /** + * Inserts markup at the end of the user profile field for this provider. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + */ + public function user_options( $user ) { + ?> +

+ +

+ keyHandle ) // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + || ! property_exists( $register, 'publicKey' ) || empty( $register->publicKey ) // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + || ! property_exists( $register, 'certificate' ) || empty( $register->certificate ) + || ! property_exists( $register, 'counter' ) || ( -1 > $register->counter ) + ) { + return false; + } + + $register = array( + 'keyHandle' => $register->keyHandle, // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + 'publicKey' => $register->publicKey, // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + 'certificate' => $register->certificate, + 'counter' => $register->counter, + ); + + $register['name'] = __( 'New Security Key', 'two-factor' ); + $register['added'] = time(); + $register['last_used'] = $register['added']; + + return add_user_meta( $user_id, self::REGISTERED_KEY_USER_META_KEY, $register ); + } + + /** + * Retrieve registered security keys for a user. + * + * @since 0.1-dev + * + * @param int $user_id User ID. + * @return array|bool Array of keys on success, false on failure. + */ + public static function get_security_keys( $user_id ) { + if ( ! is_numeric( $user_id ) ) { + return false; + } + + $keys = get_user_meta( $user_id, self::REGISTERED_KEY_USER_META_KEY ); + if ( $keys ) { + foreach ( $keys as &$key ) { + $key = (object) $key; + } + unset( $key ); + } + + return $keys; + } + + /** + * Update registered security key. + * + * Use the $prev_value parameter to differentiate between meta fields with the + * same key and user ID. + * + * If the meta field for the user does not exist, it will be added. + * + * @since 0.1-dev + * + * @param int $user_id User ID. + * @param object $data The data of registered security key. + * @return int|bool Meta ID if the key didn't exist, true on successful update, false on failure. + */ + public static function update_security_key( $user_id, $data ) { + if ( ! is_numeric( $user_id ) ) { + return false; + } + + if ( + ! is_object( $data ) + || ! property_exists( $data, 'keyHandle' ) || empty( $data->keyHandle ) // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + || ! property_exists( $data, 'publicKey' ) || empty( $data->publicKey ) // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + || ! property_exists( $data, 'certificate' ) || empty( $data->certificate ) + || ! property_exists( $data, 'counter' ) || ( -1 > $data->counter ) + ) { + return false; + } + + $keys = self::get_security_keys( $user_id ); + if ( $keys ) { + foreach ( $keys as $key ) { + if ( $key->keyHandle === $data->keyHandle ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase + return update_user_meta( $user_id, self::REGISTERED_KEY_USER_META_KEY, (array) $data, (array) $key ); + } + } + } + + return self::add_security_key( $user_id, $data ); + } + + /** + * Remove registered security key matching criteria from a user. + * + * @since 0.1-dev + * + * @param int $user_id User ID. + * @param string $keyHandle Optional. Key handle. + * @return bool True on success, false on failure. + */ + public static function delete_security_key( $user_id, $keyHandle = null ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase + global $wpdb; + + if ( ! is_numeric( $user_id ) ) { + return false; + } + + $user_id = absint( $user_id ); + if ( ! $user_id ) { + return false; + } + + $keyHandle = wp_unslash( $keyHandle ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase + $keyHandle = maybe_serialize( $keyHandle ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase + + $query = $wpdb->prepare( "SELECT umeta_id FROM {$wpdb->usermeta} WHERE meta_key = %s AND user_id = %d", self::REGISTERED_KEY_USER_META_KEY, $user_id ); + + if ( $keyHandle ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase + $key_handle_lookup = sprintf( ':"%s";s:', $keyHandle ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase + + $query .= $wpdb->prepare( + ' AND meta_value LIKE %s', + '%' . $wpdb->esc_like( $key_handle_lookup ) . '%' + ); + } + + $meta_ids = $wpdb->get_col( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared + if ( ! count( $meta_ids ) ) { + return false; + } + + foreach ( $meta_ids as $meta_id ) { + delete_metadata_by_mid( 'user', $meta_id ); + } + + return true; + } +} diff --git a/wp-content/plugins/two-factor/providers/class-two-factor-provider.php b/wp-content/plugins/two-factor/providers/class-two-factor-provider.php new file mode 100644 index 00000000..a2f9be06 --- /dev/null +++ b/wp-content/plugins/two-factor/providers/class-two-factor-provider.php @@ -0,0 +1,102 @@ +get_label() ); + } + + /** + * Prints the form that prompts the user to authenticate. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + */ + abstract public function authentication_page( $user ); + + /** + * Allow providers to do extra processing before the authentication. + * Return `true` to prevent the authentication and render the + * authentication page. + * + * @param WP_User $user WP_User object of the logged-in user. + * @return boolean + */ + public function pre_process_authentication( $user ) { + return false; + } + + /** + * Validates the users input token. + * + * @since 0.1-dev + * + * @param WP_User $user WP_User object of the logged-in user. + * @return boolean + */ + abstract public function validate_authentication( $user ); + + /** + * Whether this Two Factor provider is configured and available for the user specified. + * + * @param WP_User $user WP_User object of the logged-in user. + * @return boolean + */ + abstract public function is_available_for_user( $user ); + + /** + * Generate a random eight-digit string to send out as an auth code. + * + * @since 0.1-dev + * + * @param int $length The code length. + * @param string|array $chars Valid auth code characters. + * @return string + */ + public function get_code( $length = 8, $chars = '1234567890' ) { + $code = ''; + if ( is_array( $chars ) ) { + $chars = implode( '', $chars ); + } + for ( $i = 0; $i < $length; $i++ ) { + $code .= substr( $chars, wp_rand( 0, strlen( $chars ) - 1 ), 1 ); + } + return $code; + } +} diff --git a/wp-content/plugins/two-factor/providers/class-two-factor-totp.php b/wp-content/plugins/two-factor/providers/class-two-factor-totp.php new file mode 100644 index 00000000..e64ecd8a --- /dev/null +++ b/wp-content/plugins/two-factor/providers/class-two-factor-totp.php @@ -0,0 +1,578 @@ +delete_user_totp_key( $user_id ); + } + } + + /** + * Get the URL for deleting the secret token. + * + * @param integer $user_id User ID. + * + * @return string + * + * @codeCoverageIgnore + */ + protected function get_token_delete_url_for_user( $user_id ) { + return Two_Factor_Core::get_user_update_action_url( $user_id, self::ACTION_SECRET_DELETE ); + } + + /** + * Display TOTP options on the user settings page. + * + * @param WP_User $user The current user being edited. + * @return false + * + * @codeCoverageIgnore + */ + public function user_two_factor_options( $user ) { + if ( ! isset( $user->ID ) ) { + return false; + } + + wp_nonce_field( 'user_two_factor_totp_options', '_nonce_user_two_factor_totp_options', false ); + + $key = $this->get_user_totp_key( $user->ID ); + $this->admin_notices( $user->ID ); + + ?> +
+ generate_key(); + $site_name = get_bloginfo( 'name', 'display' ); + $totp_title = apply_filters( 'two_factor_totp_title', $site_name . ':' . $user->user_login, $user ); + ?> +

+ +

+

+ +

+

+ +

+

+ + + +

+ +

+ +

+

+ + + + +

+ +
+ is_valid_key( $key ) ) { + if ( $this->is_valid_authcode( $key, $authcode ) ) { + if ( ! $this->set_user_totp_key( $user_id, $key ) ) { + $errors[] = __( 'Unable to save Two Factor Authentication code. Please re-scan the QR code and enter the code provided by your application.', 'two-factor' ); + } + } else { + $errors[] = __( 'Invalid Two Factor Authentication code.', 'two-factor' ); + } + } else { + $errors[] = __( 'Invalid Two Factor Authentication secret key.', 'two-factor' ); + } + } + + if ( ! empty( $errors ) ) { + $notices['error'] = $errors; + } + + if ( ! empty( $notices ) ) { + update_user_meta( $user_id, self::NOTICES_META_KEY, $notices ); + } + } + } + + /** + * Get the TOTP secret key for a user. + * + * @param int $user_id User ID. + * + * @return string + */ + public function get_user_totp_key( $user_id ) { + return (string) get_user_meta( $user_id, self::SECRET_META_KEY, true ); + } + + /** + * Set the TOTP secret key for a user. + * + * @param int $user_id User ID. + * @param string $key TOTP secret key. + * + * @return boolean If the key was stored successfully. + */ + public function set_user_totp_key( $user_id, $key ) { + return update_user_meta( $user_id, self::SECRET_META_KEY, $key ); + } + + /** + * Delete the TOTP secret key for a user. + * + * @param int $user_id User ID. + * + * @return boolean If the key was deleted successfully. + */ + public function delete_user_totp_key( $user_id ) { + return delete_user_meta( $user_id, self::SECRET_META_KEY ); + } + + /** + * Check if the TOTP secret key has a proper format. + * + * @param string $key TOTP secret key. + * + * @return boolean + */ + public function is_valid_key( $key ) { + $check = sprintf( '/^[%s]+$/', self::$base_32_chars ); + + if ( 1 === preg_match( $check, $key ) ) { + return true; + } + + return false; + } + + /** + * Display any available admin notices. + * + * @param integer $user_id User ID. + * + * @return void + * + * @codeCoverageIgnore + */ + public function admin_notices( $user_id ) { + $notices = get_user_meta( $user_id, self::NOTICES_META_KEY, true ); + + if ( ! empty( $notices ) ) { + delete_user_meta( $user_id, self::NOTICES_META_KEY ); + + foreach ( $notices as $class => $messages ) { + ?> +
+ +

+ +

+ +
+ is_valid_authcode( + $this->get_user_totp_key( $user->ID ), + sanitize_text_field( $_REQUEST['authcode'] ) + ); + } + + return false; + } + + /** + * Checks if a given code is valid for a given key, allowing for a certain amount of time drift + * + * @param string $key The share secret key to use. + * @param string $authcode The code to test. + * + * @return bool Whether the code is valid within the time frame + */ + public static function is_valid_authcode( $key, $authcode ) { + /** + * Filter the maximum ticks to allow when checking valid codes. + * + * Ticks are the allowed offset from the correct time in 30 second increments, + * so the default of 4 allows codes that are two minutes to either side of server time + * + * @deprecated 0.7.0 Use {@see 'two_factor_totp_time_step_allowance'} instead. + * @param int $max_ticks Max ticks of time correction to allow. Default 4. + */ + $max_ticks = apply_filters_deprecated( 'two-factor-totp-time-step-allowance', array( self::DEFAULT_TIME_STEP_ALLOWANCE ), '0.7.0', 'two_factor_totp_time_step_allowance' ); + + $max_ticks = apply_filters( 'two_factor_totp_time_step_allowance', self::DEFAULT_TIME_STEP_ALLOWANCE ); + + // Array of all ticks to allow, sorted using absolute value to test closest match first. + $ticks = range( - $max_ticks, $max_ticks ); + usort( $ticks, array( __CLASS__, 'abssort' ) ); + + $time = time() / self::DEFAULT_TIME_STEP_SEC; + + foreach ( $ticks as $offset ) { + $log_time = $time + $offset; + if ( hash_equals(self::calc_totp( $key, $log_time ), $authcode ) ) { + return true; + } + } + return false; + } + + /** + * Generates key + * + * @param int $bitsize Nume of bits to use for key. + * + * @return string $bitsize long string composed of available base32 chars. + */ + public static function generate_key( $bitsize = self::DEFAULT_KEY_BIT_SIZE ) { + $bytes = ceil( $bitsize / 8 ); + $secret = wp_generate_password( $bytes, true, true ); + + return self::base32_encode( $secret ); + } + + /** + * Pack stuff + * + * @param string $value The value to be packed. + * + * @return string Binary packed string. + */ + public static function pack64( $value ) { + // 64bit mode (PHP_INT_SIZE == 8). + if ( PHP_INT_SIZE >= 8 ) { + // If we're on PHP 5.6.3+ we can use the new 64bit pack functionality. + if ( version_compare( PHP_VERSION, '5.6.3', '>=' ) && PHP_INT_SIZE >= 8 ) { + return pack( 'J', $value ); // phpcs:ignore PHPCompatibility.ParameterValues.NewPackFormat.NewFormatFound + } + $highmap = 0xffffffff << 32; + $higher = ( $value & $highmap ) >> 32; + } else { + /* + * 32bit PHP can't shift 32 bits like that, so we have to assume 0 for the higher + * and not pack anything beyond it's limits. + */ + $higher = 0; + } + + $lowmap = 0xffffffff; + $lower = $value & $lowmap; + + return pack( 'NN', $higher, $lower ); + } + + /** + * Calculate a valid code given the shared secret key + * + * @param string $key The shared secret key to use for calculating code. + * @param mixed $step_count The time step used to calculate the code, which is the floor of time() divided by step size. + * @param int $digits The number of digits in the returned code. + * @param string $hash The hash used to calculate the code. + * @param int $time_step The size of the time step. + * + * @return string The totp code + */ + public static function calc_totp( $key, $step_count = false, $digits = self::DEFAULT_DIGIT_COUNT, $hash = self::DEFAULT_CRYPTO, $time_step = self::DEFAULT_TIME_STEP_SEC ) { + $secret = self::base32_decode( $key ); + + if ( false === $step_count ) { + $step_count = floor( time() / $time_step ); + } + + $timestamp = self::pack64( $step_count ); + + $hash = hash_hmac( $hash, $timestamp, $secret, true ); + + $offset = ord( $hash[19] ) & 0xf; + + $code = ( + ( ( ord( $hash[ $offset + 0 ] ) & 0x7f ) << 24 ) | + ( ( ord( $hash[ $offset + 1 ] ) & 0xff ) << 16 ) | + ( ( ord( $hash[ $offset + 2 ] ) & 0xff ) << 8 ) | + ( ord( $hash[ $offset + 3 ] ) & 0xff ) + ) % pow( 10, $digits ); + + return str_pad( $code, $digits, '0', STR_PAD_LEFT ); + } + + /** + * Uses the Google Charts API to build a QR Code for use with an otpauth url + * + * @param string $name The name to display in the Authentication app. + * @param string $key The secret key to share with the Authentication app. + * @param string $title The title to display in the Authentication app. + * + * @return string A URL to use as an img src to display the QR code + * + * @codeCoverageIgnore + */ + public static function get_google_qr_code( $name, $key, $title = null ) { + // Encode to support spaces, question marks and other characters. + $name = rawurlencode( $name ); + $google_url = urlencode( 'otpauth://totp/' . $name . '?secret=' . $key ); + if ( isset( $title ) ) { + $google_url .= urlencode( '&issuer=' . rawurlencode( $title ) ); + } + return 'https://chart.googleapis.com/chart?chs=200x200&chld=M|0&cht=qr&chl=' . $google_url; + } + + /** + * Whether this Two Factor provider is configured and available for the user specified. + * + * @param WP_User $user WP_User object of the logged-in user. + * + * @return boolean + */ + public function is_available_for_user( $user ) { + // Only available if the secret key has been saved for the user. + $key = $this->get_user_totp_key( $user->ID ); + + return ! empty( $key ); + } + + /** + * Prints the form that prompts the user to authenticate. + * + * @param WP_User $user WP_User object of the logged-in user. + * + * @codeCoverageIgnore + */ + public function authentication_page( $user ) { + require_once ABSPATH . '/wp-admin/includes/template.php'; + ?> +

+ +

+

+ + +

+ + = 8 ) { + $j -= 8; + $binary .= chr( ( $n & ( 0xFF << $j ) ) >> $j ); + } + } + + return $binary; + } + + /** + * Used with usort to sort an array by distance from 0 + * + * @param int $a First array element. + * @param int $b Second array element. + * + * @return int -1, 0, or 1 as needed by usort + */ + private static function abssort( $a, $b ) { + $a = abs( $a ); + $b = abs( $b ); + if ( $a === $b ) { + return 0; + } + return ( $a < $b ) ? -1 : 1; + } +} diff --git a/wp-content/plugins/two-factor/providers/css/fido-u2f-admin.css b/wp-content/plugins/two-factor/providers/css/fido-u2f-admin.css new file mode 100644 index 00000000..96ca78aa --- /dev/null +++ b/wp-content/plugins/two-factor/providers/css/fido-u2f-admin.css @@ -0,0 +1,12 @@ +#security-keys-section .wp-list-table { + margin-bottom: 2em; +} + +#security-keys-section .register-security-key .spinner { + float: none; +} + +#security-keys-section .security-key-status { + vertical-align: middle; + font-style: italic; +} diff --git a/wp-content/plugins/two-factor/providers/js/fido-u2f-admin-inline-edit.js b/wp-content/plugins/two-factor/providers/js/fido-u2f-admin-inline-edit.js new file mode 100644 index 00000000..b7b0123e --- /dev/null +++ b/wp-content/plugins/two-factor/providers/js/fido-u2f-admin-inline-edit.js @@ -0,0 +1,150 @@ +/* global window, document, jQuery, inlineEditL10n, ajaxurl */ +var inlineEditKey; + +( function( $ ) { + inlineEditKey = { + + init: function() { + var t = this, + row = $( '#security-keys-section #inline-edit' ); + + t.what = '#key-'; + + $( '#security-keys-section #the-list' ).on( 'click', 'a.editinline', function() { + inlineEditKey.edit( this ); + return false; + } ); + + // Prepare the edit row. + row.keyup( function( event ) { + if ( 27 === event.which ) { + return inlineEditKey.revert(); + } + } ); + + $( 'a.cancel', row ).click( function() { + return inlineEditKey.revert(); + } ); + + $( 'a.save', row ).click( function() { + return inlineEditKey.save( this ); + } ); + + $( 'input, select', row ).keydown( function( event ) { + if ( 13 === event.which ) { + return inlineEditKey.save( this ); + } + } ); + }, + + toggle: function( el ) { + var t = this; + + if ( 'none' === $( t.what + t.getId( el ) ).css( 'display' ) ) { + t.revert(); + } else { + t.edit( el ); + } + }, + + edit: function( id ) { + var editRow, rowData, val, + t = this; + t.revert(); + + if ( 'object' === typeof id ) { + id = t.getId( id ); + } + + editRow = $( '#inline-edit' ).clone( true ); + rowData = $( '#inline_' + id ); + + $( 'td', editRow ).attr( 'colspan', $( 'th:visible, td:visible', '#security-keys-section .widefat thead' ).length ); + + $( t.what + id ).hide().after( editRow ).after( '' ); + + val = $( '.name', rowData ); + val.find( 'img' ).replaceWith( function() { + return this.alt; + } ); + val = val.text(); + $( ':input[name="name"]', editRow ).val( val ); + + $( editRow ).attr( 'id', 'edit-' + id ).addClass( 'inline-editor' ).show(); + $( '.ptitle', editRow ).eq( 0 ).focus(); + + return false; + }, + + save: function( id ) { + var params, fields; + + if ( 'object' === typeof id ) { + id = this.getId( id ); + } + + $( '#security-keys-section table.widefat .spinner' ).addClass( 'is-active' ); + + params = { + action: 'inline-save-key', + keyHandle: id, + user_id: window.u2fL10n.user_id + }; + + fields = $( '#edit-' + id ).find( ':input' ).serialize(); + params = fields + '&' + $.param( params ); + + // Make ajax request. + $.post( ajaxurl, params, + function( r ) { + var row, newID; + $( '#security-keys-section table.widefat .spinner' ).removeClass( 'is-active' ); + + if ( r ) { + if ( -1 !== r.indexOf( '' )[0].submit.call( $( '#your-profile' )[0] ); + } ); + } ); +}( jQuery ) ); diff --git a/wp-content/plugins/two-factor/providers/js/fido-u2f-login.js b/wp-content/plugins/two-factor/providers/js/fido-u2f-login.js new file mode 100644 index 00000000..28295307 --- /dev/null +++ b/wp-content/plugins/two-factor/providers/js/fido-u2f-login.js @@ -0,0 +1,16 @@ +/* global window, u2f, u2fL10n, jQuery */ +( function( $ ) { + if ( ! window.u2fL10n ) { + window.console.error( 'u2fL10n is not defined' ); + return; + } + + u2f.sign( u2fL10n.request[0].appId, u2fL10n.request[0].challenge, u2fL10n.request, function( data ) { + if ( data.errorCode ) { + window.console.error( 'Registration Failed', data.errorCode ); + } else { + $( '#u2f_response' ).val( JSON.stringify( data ) ); + $( '#loginform' ).submit(); + } + } ); +}( jQuery ) ); diff --git a/wp-content/plugins/two-factor/readme.txt b/wp-content/plugins/two-factor/readme.txt new file mode 100644 index 00000000..1a09d79b --- /dev/null +++ b/wp-content/plugins/two-factor/readme.txt @@ -0,0 +1,44 @@ +=== Two-Factor === +Contributors: georgestephanis, valendesigns, stevenkword, extendwings, sgrant, aaroncampbell, johnbillion, stevegrunwell, netweb, kasparsd, alihusnainarshad, passoniate +Tags: two factor, two step, authentication, login, totp, fido u2f, u2f, email, backup codes, 2fa, yubikey +Requires at least: 4.3 +Tested up to: 6.0 +Requires PHP: 5.6 +Stable tag: 0.7.3 + +Enable Two-Factor Authentication using time-based one-time passwords (OTP, Google Authenticator), Universal 2nd Factor (FIDO U2F, YubiKey), email and backup verification codes. + +== Description == + +Use the "Two-Factor Options" section under "Users" → "Your Profile" to enable and configure one or multiple two-factor authentication providers for your account: + +- Email codes +- Time Based One-Time Passwords (TOTP) +- FIDO Universal 2nd Factor (U2F) +- Backup Codes +- Dummy Method (only for testing purposes) + +For more history, see [this post](https://georgestephanis.wordpress.com/2013/08/14/two-cents-on-two-factor/). + += Actions & Filters = + +Here is a list of action and filter hooks provided by the plugin: + +- `two_factor_providers` filter overrides the available two-factor providers such as email and time-based one-time passwords. Array values are PHP classnames of the two-factor providers. +- `two_factor_enabled_providers_for_user` filter overrides the list of two-factor providers enabled for a user. First argument is an array of enabled provider classnames as values, the second argument is the user ID. +- `two_factor_user_authenticated` action which receives the logged in `WP_User` object as the first argument for determining the logged in user right after the authentication workflow. +- `two_factor_token_ttl` filter overrides the time interval in seconds that an email token is considered after generation. Accepts the time in seconds as the first argument and the ID of the `WP_User` object being authenticated. + +== Screenshots == + +1. Two-factor options under User Profile. +2. U2F Security Keys section under User Profile. +3. Email Code Authentication during WordPress Login. + +== Get Involved == + +Development happens [on GitHub](https://github.com/wordpress/two-factor/). + +== Changelog == + +See the [release history](https://github.com/wordpress/two-factor/releases). diff --git a/wp-content/plugins/two-factor/two-factor.php b/wp-content/plugins/two-factor/two-factor.php new file mode 100644 index 00000000..4899cdb2 --- /dev/null +++ b/wp-content/plugins/two-factor/two-factor.php @@ -0,0 +1,48 @@ +