Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b3l1o-0004j1-TB for pgadmin-hackers@arkaria.postgresql.org; Fri, 20 May 2016 14:03:49 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1b3l1n-00053O-FR for pgadmin-hackers@arkaria.postgresql.org; Fri, 20 May 2016 14:03:47 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1b3fsQ-000173-Ct for pgadmin-hackers@postgresql.org; Fri, 20 May 2016 08:33:47 +0000 Received: from mail-io0-x235.google.com ([2607:f8b0:4001:c06::235]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1b3fsL-0001oJ-T9 for pgadmin-hackers@postgresql.org; Fri, 20 May 2016 08:33:45 +0000 Received: by mail-io0-x235.google.com with SMTP id p64so46632595ioi.2 for ; Fri, 20 May 2016 01:33:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=as1Dh33mHYN9qeULYPdjQpSxoPp676XguK1CokOxNDY=; b=wmecgIzSvzofNbrD8Vxe8L17yr6PHp6VgT39NRizrcitZYvXLNFUPAI+cCyImebiPR z4Z/4VvQYqJOnh8gU0QdxQcV0Nn+uEgSsUWflSGeFKwRY58YafDEx5Ju6DDra5szhh0a msJvchteCIzPuufZoAu2pWk2L38AspjQyGGZ0CoC29kFoxXwfD5rJL2Qx3HAAM2Q/OVG WSSnhRXTydB105TBE3bsDQHQY+sVk7CirYjJfBx0/3qFyZ5SCvxXud3dPmE7pJit8Iog Wjj8DLqUskE6hL10XNkc1AynjFy77RP+NHnE8zf+IYyEF8+ZRGBY9nsk85NunioZDfH7 b5PA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=as1Dh33mHYN9qeULYPdjQpSxoPp676XguK1CokOxNDY=; b=aAa3tspDxxQQcdy2t2pi7mdNpBav5cq1rOs1sSW6/CHz7kmSdvLj3gYxLzxTZTQA/c HDzuDZis5Ej+8sPRFo2yA//D56K2F4X8IK/pPh05AJbhNdmQQLj9H81ptjmOTMWfLBP8 PZExDMWfLmb+PtexuWApbqEUlUCjwK+TrOW+BIzDdglHGE74k3eN5Wjyn+W7ffVghgLD FdJ+IBPeoBEeAZwDRjDJYa9LJqLdSQVcjnG29x2Qa6R+osIacfoYZKqEv+RFvH3PT188 fSLFOQXDKZq5l7K1zoMJuu9oHG5VTxd3DreTuBpsHzi3uVLKBeSxKczi/ezu2D+gR132 2R8g== X-Gm-Message-State: AOPr4FW7HbXdDSEL1RXTFjqNi+741ZuTozYvE65QTyZAO0FbbQRIBGjm2cAhDLDmXsX0BGuVfH7PnZj5TmtjBN/z MIME-Version: 1.0 X-Received: by 10.36.54.85 with SMTP id l82mr1860262itl.18.1463733220635; Fri, 20 May 2016 01:33:40 -0700 (PDT) Received: by 10.107.15.152 with HTTP; Fri, 20 May 2016 01:33:40 -0700 (PDT) In-Reply-To: References: Date: Fri, 20 May 2016 14:03:40 +0530 Message-ID: Subject: Re: PATCH: pgAdmin4 windows installer From: Paresh More To: Dave Page Cc: pgadmin-hackers , Sandeep Thakkar , Hamid Quddus Content-Type: multipart/mixed; boundary=001a1144e04aa9bb66053341f2d0 X-Pg-Spam-Score: -2.2 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1144e04aa9bb66053341f2d0 Content-Type: multipart/alternative; boundary=001a1144e04aa9bb5f053341f2ce --001a1144e04aa9bb5f053341f2ce Content-Type: text/plain; charset=UTF-8 Hello Dave. Attached are two patch for pgAdmin4-windows pgAdmin4_createDB.patch - patch for pgAdmin4.py to autocreate database configuration if does not exist. - Now pgadmin.db would be not be bundled with installer, it would be created if pgAdmin4.py is executed for the first time. *pgAdmin4_windows.patch* - Environment variables once set will over ride the existing script variables. - Issue related to path with quotes are removed. - New Readme.txt is added. - Modified Error reporting. - Python check was missing related to which requirement file it should pick for creating private environment based on python version is also fixed. Windows pgAdmin4 Installer Download Link is @ location https://uploads.enterprisedb.com/download.php?file=cc348a6d233400fa80fb2a4fd53336a3 On Mon, May 9, 2016 at 6:13 PM, Dave Page wrote: > Hi > > On Fri, Apr 15, 2016 at 4:31 PM, Paresh More > wrote: > >> Hello Dave, >> >> I have made changes according which you mentioned. >> >> Binary is located @ location >> >> https://uploads.enterprisedb.com/download.php?file=1f92c5abbaf7014d9aa8fb0711d53f6d >> >> Patch is attached in the Email. >> >> - Please move Make.bat to the root directory of the source tree. >> *DONE* - Make.bat is moved to root directory >> > > OK. > > >> >> - The built installer should be created in dist/ in the root directory of >> the source tree (as the PIP package is) >> *DONE - *dist would be created in the root directory of the source tree. >> > > OK > > >> >> - The version number should be extracted from config.py, and used to >> create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would >> currently make "pgadmin4-1.0.0-dev.exe" >> *DONE* - Now it reads from config.py and accordingly create installer >> filename. >> > > OK > > >> >> >> - Please add a README.rst file to pkg/win32 that describes the required >> packages to setup a build environment, and (where non-obvious, e.g. setting >> up the compiler for PIP) including instructions on how to setup everything. >> *DONE* >> > > I've edited (and renamed for consistency) this file. Please find the > update attached. > > I notice that it does not mention anything about setting up a compiler for > PIP etc. Is that needed? > > >> >> - The user should never need to edit Make.bat, so any paths that might >> change should come from the environment (with instructions telling the user >> what to set where required). e.g. use vars like PYTHON_VERSION, >> PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the >> script. Of course, where possible we should use variables standard to, or >> set by the other products. >> *DONE* - It would check environment variables and override if it is set, >> else default values would be used and a check is put which would ensure all >> the prerequisite requirement is installed or abort. >> > > This doesn't appear to work at all. I set QTDIR in my environment, but the > script complains that the default paths don't exist. I removed the default > for QTDIR, and then get output like the following: > > C:\Users\dpage\Documents\pgadmin4>make > 'Files' is not recognized as an internal or external command, > operable program or batch file. > 'Files' is not recognized as an internal or external command, > operable program or batch file. > 'Files' is not recognized as an internal or external command, > operable program or batch file. > 'Files' is not recognized as an internal or external command, > operable program or batch file. > C:\Qt\5.5\msvc2013_64 does not exist. > "C:\Qt\5.5\msvc2013_64\bin\qmake.exe"s does not exist. > Please Install QT SDK and set the QTDIR enviroment Variable. > > Clearly there are quoting issues here. > > >> >> - Any script errors should cause an exit. For example, my QT is a >> different version than you used, but the build script just ignored the fact >> that qmake couldn't be found and built an installer anyway. >> *DONE* - Pre check is put which would ensure prerequisite requirement is >> installed >> > > OK > > >> >> >> - Side-by-side installations of major versions of pgAdmin should be >> allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin >> 4\" should actually install into C:\Program Files (x86)\pgAdmin >> 4\., e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\" >> *DONE-*Side-by-side installation depending on Major and minor number is >> handled. >> Ex: All 1.0.0, 1.0.1,1.0.2,etc..... would go in C:\Program Files >> (x86)\pgAdmin 4\1.0 >> All 1.1.0, 1.1.1,1.1.2,etc..... would go in C:\Program Files >> (x86)\pgAdmin 4\1.1 >> and so on >> > > OK. > > >> >> - Revision version updates should update the installed version, not >> install side-by-side. Care should be taken to ensure the Add/Remove >> Programs entries support both side-by-side installations and upgrades (e.g. >> 1.0.0 -> 1.0.1) >> *DONE* - Revision version update would update the installed version >> A extra check is also put which insure older version would not be allowed >> to install if higher version is already installed. >> > > OK. > > >> >> - The first screen of the installer shows the version of pgAdmin as 1.0. >> It should be APP_VERSION from config.py. >> *DONE*- Screen shows APP_Version from config.py >> > > OK. > > >> >> - To aid with error handling, the script should check to ensure it can >> find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check. >> *DONE*- Pre check is set, which will ensure all prerequisite is already >> set and installed. >> > > OK. Please adjust the error reporting, e.g. > > :setInnoDetails > echo %INNOTOOL% does not exist > echo Please Install Innotool and set the INNOTOOL enviroment variable. > goto EXIT > > :setVCDetails > echo %VCDIR% does not exist. > echo %VCVAR% does not exist. > echo %VCNMAKE% does not exist. > echo Please Install Microsoft Visual Studio and set the VCDIR environment > variable. > goto EXIT > > :setPythonDetails > echo %PYTHON_HOME% does not exist. > echo %PYTHON_VERSION% not set. > echo %PYTHON_DLL% does not exist. > echo Please Install Python and set the PYTHON_HOME enviroment Variable. > goto EXIT > > :setQtDetails > echo %QTDIR% does not exist. > echo %QMAKE% does not exist. > echo Please Install the QT SDK and set the QTDIR enviroment variable. > goto EXIT > > >> >> - We need a simple way to create a 64bit build. >> *DONE* >> > > How is that done? It's not mentioned in the README. > > >> >> On Fri, Apr 8, 2016 at 2:17 AM, Dave Page wrote: >> >>> Hi >>> >>> First round feedback (finally - sorry for the delay!): >>> >>> - Please move Make.bat to the root directory of the source tree. >>> >>> - The built installer should be created in dist/ in the root directory >>> of the source tree (as the PIP package is) >>> >>> - The version number should be extracted from config.py, and used to >>> create the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would >>> currently make "pgadmin4-1.0.0-dev.exe" >>> >>> - Please add a README.rst file to pkg/win32 that describes the required >>> packages to setup a build environment, and (where non-obvious, e.g. setting >>> up the compiler for PIP) including instructions on how to setup everything. >>> >>> - The user should never need to edit Make.bat, so any paths that might >>> change should come from the environment (with instructions telling the user >>> what to set where required). e.g. use vars like PYTHON_VERSION, >>> PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the >>> script. Of course, where possible we should use variables standard to, or >>> set by the other products. >>> >>> - Any script errors should cause an exit. For example, my QT is a >>> different version than you used, but the build script just ignored the fact >>> that qmake couldn't be found and built an installer anyway. >>> >>> - Side-by-side installations of major versions of pgAdmin should be >>> allowed, so an installation directory of "C:\Program Files (x86)\pgAdmin >>> 4\" should actually install into C:\Program Files (x86)\pgAdmin >>> 4\., e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\" >>> >>> - Revision version updates should update the installed version, not >>> install side-by-side. Care should be taken to ensure the Add/Remove >>> Programs entries support both side-by-side installations and upgrades (e.g. >>> 1.0.0 -> 1.0.1) >>> >>> - The first screen of the installer shows the version of pgAdmin as 1.0. >>> It should be APP_VERSION from config.py. >>> >>> - To aid with error handling, the script should check to ensure it can >>> find required executables (e.g. qmake.exe, ISCC.exe) as a pre-flight check. >>> >>> - We need a simple way to create a 64bit build. >>> >>> - I'm not sure we should try to use any part of VC++ (NMAKE, VCVARS >>> etc.). The script failed to build the runtime for me - I think because >>> VCVARS was conflicting with QMAKE settings. I was getting errors like: >>> >>> Generating Code... >>> link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO >>> /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' >>> name='Microsoft.Windows.Common-Controls' version='6.0.0.0' >>> publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" >>> /MANIFEST /MANIFESTFILE:release\pgAdmin4.exe.embed.manifest >>> /OUT:release\pgAdmin4.exe @C:\Users\dpage\AppData\Local\Temp\nm196C.tmp >>> qtmain.lib(qtmain_win.obj) : error LNK2038: mismatch detected for >>> '_MSC_VER': value '1700' doesn't match value '1600' in pgAdmin4.obj >>> qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol >>> "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" >>> (__imp_?_Xbad_alloc@std@@YAXXZ) referenced in function "char * __cdecl >>> std::_Allocate(unsigned int,char *)" (??$_Allocate@D@std@ >>> @YAPADIPAD@Z) >>> qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol >>> "__declspec(dllimport) char const * __cdecl std::_Syserror_map(int)" >>> (__imp_?_Syserror_map@std@@YAPBDH@Z) referenced in function "public: >>> virtual class std::error_condition __thiscall >>> std::_System_error_category::default_error_condition(int)const " >>> (?default_error_condition@_System_error_category@std >>> @@UBE?AVerror_condition@2@H@Z) >>> qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol >>> "__declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" >>> (__imp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: >>> virtual class std::basic_string,class >>> std::allocator > __thiscall >>> std::_System_error_category::message(int)const " (?message@ >>> _System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@ >>> @V?$allocator@D@2@@2@H@Z) >>> release\pgAdmin4.exe : fatal error LNK1120: 3 unresolved externals >>> NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual >>> Studio 10.0\VC\BIN\link.EXE"' : return code '0x460' >>> >>> Stop. >>> NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual >>> Studio 12.0\VC\bin\nmake.exe"' : return code '0x2' >>> Stop. >>> >>> Aborting build! >>> >>> Thanks! >>> >>> On Fri, Mar 25, 2016 at 11:40 AM, Paresh More < >>> paresh.more@enterprisedb.com> wrote: >>> >>>> Hello Team, >>>> >>>> Attached is the patch which will create windows 32 installer for >>>> pgAdmin4 (runtime mode) for python 2.7 version. >>>> >>>> This installer code has problem with psycopg2(2.5.2 version) for windows >>>> >>>> As discussed with Ashesh Vashi, I have changed to point to 2.6.1 >>>> version and now the installer is working fine. >>>> >>>> So it would now generate windows 32 bit installer using psycopg2 (2.6.1 >>>> version) >>>> >>>> Kindly please review and let me know if any changes required. >>>> >>>> Please also suggest whether we should go with 2.5.2(psycopg2) or with >>>> the latest version. >>>> >>>> -- >>>> >>>> Thanks & Regards >>>> >>>> *Paresh More* >>>> >>>> [image: NEW-EDB-logo-4c] >>>> >>>> Pune, India. >>>> Cell : +919922000564 | www.enterprisedb.com >>>> >>>> >>>> -- >>>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >>>> To make changes to your subscription: >>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>> >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> >> -- >> >> Thanks & Regards >> >> *Paresh More* >> >> [image: NEW-EDB-logo-4c] >> >> Pune, India. >> Cell : +919922000564 | www.enterprisedb.com >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- Thanks & Regards *Paresh More* [image: NEW-EDB-logo-4c] Pune, India. Cell : +919922000564 | www.enterprisedb.com --001a1144e04aa9bb5f053341f2ce Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hello Dave.

Attached are two patch for = pgAdmin4-windows=C2=A0

p= gAdmin4_createDB.patch
- patch for=C2=A0pgAdmin4.py to autocreate database configuration if = does not exist.=C2=A0
- Now pgadmin.db would be not = be=C2=A0bundled=C2=A0with installer, it would be created if pgAdmin4.py is = executed for the first time.

pgAdmin4_windows.patch
- Environment variab= les once set will over ride the existing script variables.
- Issu= e related to path with quotes are removed.
- New Readme.txt is ad= ded.
- Modified Error reporting.
- Python check was mis= sing related to which requirement file it should pick for creating private = environment based on python version is also fixed.

Windows pgAdmin4 Installer Download Link = is @ location
https://uplo= ads.enterprisedb.com/download.php?file=3Dcc348a6d233400fa80fb2a4fd53336a3




On Mon, May 9, 2016 at 6:13= PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Fri, Apr 15, 2016 at 4:31 PM, Par= esh More <paresh.more@enterprisedb.com> wrote:
Hello Dave,

I have ma= de changes according which you mentioned.

Binary i= s located @ location

Patch is attached in the Email.

- Please move = Make.bat to the root directory of the source tree.
DONE=C2=A0- Make.bat is moved to root director= y

OK.
=C2=A0

- Th= e built installer should be created in dist/ in the root directory of the s= ource tree (as the PIP package is)
DONE -=C2=A0dist would be created in the root directory of the s= ource tree.

OK
=C2=A0
=

- The version number should be extracted from config.py, and used to c= reate the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would cu= rrently make "pgadmin4-1.0.0-dev.exe"
DONE - Now it reads from config.py and accordingly create installe= r filename.

OK
=C2=A0


- Please add a README= .rst file to pkg/win32 that describes the required packages to setup a buil= d environment, and (where non-obvious, e.g. setting up the compiler for PIP= ) including instructions on how to setup everything.
DONE

I've edited (and renamed for consistency) this file. Pl= ease find the update attached.

I notice that it do= es not mention anything about setting up a compiler for PIP etc. Is that ne= eded?
=C2=A0

- The user should never need to edit Make.bat, so any paths t= hat might change should come from the environment (with instructions tellin= g the user what to set where required). e.g. use vars like PYTHON_VERSION, = PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the sc= ript. Of course, where possible we should use variables standard to, or set= by the other products.
DONE= - It would check environment variables and override if it is set, else= default values would be used and a check is put which would ensure all the= prerequisite requirement is installed or abort.

This doesn't appear to work at all. I se= t QTDIR in my environment, but the script complains that the default paths = don't exist. I removed the default for QTDIR, and then get output like = the following:

C:\Users\dpage\Documents\pgadm= in4>make
'Files' is not recognized as an internal or e= xternal command,
operable program or batch file.
'F= iles' is not recognized as an internal or external command,
o= perable program or batch file.
'Files' is not recognized = as an internal or external command,
operable program or batch fil= e.
'Files' is not recognized as an internal or external c= ommand,
operable program or batch file.
C:\Qt\5.5\msvc2= 013_64 does not exist.
"C:\Qt\5.5\msvc2013_64\bin\qmake.exe&= quot;s does not exist.
Please Install QT SDK and set the QTDIR en= viroment Variable.

Clearly there are quoting= issues here.
=C2=A0

- Any script errors should cause an exit. For example= , my QT is a different version than you used, but the build script just ign= ored the fact that qmake couldn't be found and built an installer anywa= y.
DONE - Pre check is put which would ensure=C2=A0prerequisite requirement is installed
=

OK
=C2=A0


- Side-by-side installations of major version= s of pgAdmin should be allowed, so an installation directory of "C:\Pr= ogram Files (x86)\pgAdmin 4\" should actually install into C:\Program = Files (x86)\pgAdmin 4\<major>.<minor>, e.g. "C:\Program Fi= les (x86)\pgAdmin 4\1.0\"
= DONE-Side-by-side installation depending on Major and minor number i= s handled.
Ex: All 1.0.0, 1.0.1,1.0.2,= etc..... would go in=C2=A0C:\Program Files= (x86)\pgAdmin 4\1.0
All 1.1.0, 1.1.1,1.1.2,etc..... would go in=C2=A0C:\Program Files (x86)\pgAdmin 4\1.1
and so on
=

OK.
=C2=A0

- Revision version updates should update = the installed version, not install side-by-side.=C2=A0 Care should be taken= to ensure the Add/Remove Programs entries support both side-by-side instal= lations and upgrades (e.g. 1.0.0 -> 1.0.1)
DONE - Revision version update would update the insta= lled version=C2=A0
A extra check is also put which insure older version would not= be allowed to install if higher version is already installed.
<= /div>

OK.
=C2=A0

- The first= screen of the installer shows the version of pgAdmin as 1.0. It should be = APP_VERSION from config.py.
= DONE- Screen shows APP_Version from config.py

OK.
=C2=A0
=

- To aid with error handling, t= he script should check to ensure it can find required executables (e.g. qma= ke.exe, ISCC.exe) as a pre-flight check.
DONE- Pre check is set, which will ensure all prerequisite= is already set and installed.

OK. Please adjust the error reporting, e.g.

:setInnoDetails
echo %INNOTOOL% does not exist
<= div>echo Please Install Innotool and set the INNOTOOL enviroment variable.<= /div>
goto EXIT

:setVCDetails
echo %= VCDIR% does not exist.
echo %VCVAR% does not exist.
ech= o %VCNMAKE% does not exist.
echo Please Install Microsoft Visual = Studio and set the VCDIR environment variable.
goto EXIT

:setPythonDetails
echo %PYTHON_HOME% does not ex= ist.
echo %PYTHON_VERSION% not set.
echo %PYTHON_DLL% d= oes not exist.
echo Please Install Python and set the PYTHON_HOME= enviroment Variable.
goto EXIT

:setQtDe= tails
echo %QTDIR% does not exist.
echo %QMAKE% does no= t exist.
echo Please Install the QT SDK and set the QTDIR envirom= ent variable.
goto EXIT
=C2=A0

- We need a simple way to c= reate a 64bit build.
DONE

How is that done? It's not mentioned in= the README.
=C2=A0
=

On Fri,= Apr 8, 2016 at 2:17 AM, Dave Page <dpage@pgadmin.org> wrote= :
Hi

First round fe= edback (finally - sorry for the delay!):

- Pl= ease move Make.bat to the root directory of the source tree.

=
- The built installer should be created in dist/ in the root dir= ectory of the source tree (as the PIP package is)

= - The version number should be extracted from config.py, and used to create= the installer filename, i.e. pgadmin4-APP_VERSION.exe, which would current= ly make "pgadmin4-1.0.0-dev.exe"

- Pleas= e add a README.rst file to pkg/win32 that describes the required packages t= o setup a build environment, and (where non-obvious, e.g. setting up the co= mpiler for PIP) including instructions on how to setup everything.

- The user should never need to edit Make.bat, so any path= s that might change should come from the environment (with instructions tel= ling the user what to set where required). e.g. use vars like PYTHON_VERSIO= N, PYTHON_PATH, QTDIR. These should override any hard-coded defaults in the= script. Of course, where possible we should use variables standard to, or = set by the other products.

- Any script errors sho= uld cause an exit. For example, my QT is a different version than you used,= but the build script just ignored the fact that qmake couldn't be foun= d and built an installer anyway.

- Side-by-side in= stallations of major versions of pgAdmin should be allowed, so an installat= ion directory of "C:\Program Files (x86)\pgAdmin 4\" should actua= lly install into C:\Program Files (x86)\pgAdmin 4\<major>.<minor&g= t;, e.g. "C:\Program Files (x86)\pgAdmin 4\1.0\"

- Revision version updates should update the installed version, no= t install side-by-side.=C2=A0 Care should be taken to ensure the Add/Remove= Programs entries support both side-by-side installations and upgrades (e.g= . 1.0.0 -> 1.0.1)

- The first screen of the ins= taller shows the version of pgAdmin as 1.0. It should be APP_VERSION from c= onfig.py.

- To aid with error handling, the script= should check to ensure it can find required executables (e.g. qmake.exe, I= SCC.exe) as a pre-flight check.

- We need a simple= way to create a 64bit build.

- I'm not sure w= e should try to use any part of VC++ (NMAKE, VCVARS etc.). The script faile= d to build the runtime for me - I think because VCVARS was conflicting with= QMAKE settings. I was getting errors like:

Genera= ting Code...
=C2=A0 =C2=A0 =C2=A0 =C2=A0 link /NOLOGO /DYNAMICBAS= E /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:ty= pe=3D'win32' name=3D'Microsoft.Windows.Common-Controls' ver= sion=3D'6.0.0.0' publicKeyToken=3D'6595b64144ccf1df' langua= ge=3D'*' processorArchitecture=3D'*'" /MANIFEST /MANIF= ESTFILE:release\pgAdmin4.exe.embed.manifest /OUT:release\pgAdmin4.exe @C:\U= sers\dpage\AppData\Local\Temp\nm196C.tmp
qtmain.lib(qtmain_win.ob= j) : error LNK2038: mismatch detected for '_MSC_VER': value '17= 00' doesn't match value '1600' in pgAdmin4.obj
qt= main.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "= __declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xb= ad_alloc@std@@YAXXZ) referenced in function "char * __cdecl std::_Allo= cate<char>(unsigned int,char *)" (??$_Allocate@D@std@@YAPADIPAD@= Z)
qtmain.lib(qtmain_win.obj) : error LNK2019: unresolved externa= l symbol "__declspec(dllimport) char const * __cdecl std::_Syserror_ma= p(int)" (__imp_?_Syserror_map@std@@YAPBDH@Z) referenced in function &q= uot;public: virtual class std::error_condition __thiscall std::_System_erro= r_category::default_error_condition(int)const " (?default_error_condit= ion@_System_error_category@std@@UBE?AVerror_condition@2@H@Z)
qtma= in.lib(qtmain_win.obj) : error LNK2019: unresolved external symbol "__= declspec(dllimport) char const * __cdecl std::_Winerror_map(int)" (__i= mp_?_Winerror_map@std@@YAPBDH@Z) referenced in function "public: virtu= al class std::basic_string<char,struct std::char_traits<char>,clas= s std::allocator<char> > __thiscall std::_System_error_category::m= essage(int)const " (?message@_System_error_category@std@@UBE?AV?$basic= _string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z)
release\p= gAdmin4.exe : fatal error LNK1120: 3 unresolved externals
NMAKE := fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Stud= io 10.0\VC\BIN\link.EXE"' : return code '0x460'
=
Stop.
NMAKE : fatal error U1077: '"C:\Pro= gram Files (x86)\Microsoft Visual Studio 12.0\VC\bin\nmake.exe"' := return code '0x2'
Stop.

Abortin= g build!

Thanks!

On Fri, Mar 25, 2016 at= 11:40 AM, Paresh More <paresh.more@enterprisedb.com> wrote:
Hell= o Team,

Attached is the patch which will create windows = 32 installer for pgAdmin4 (runtime mode) for python 2.7 version.
=
This installer code has problem with psycopg2(2.5.2 version)= for windows

As discussed with Ashesh Vashi, I hav= e changed to point to 2.6.1 version and now the installer is working fine.<= /div>

So it would now generate windows 32 bit installer = using psycopg2 (2.6.1 version)

Kindly please revie= w and let me know if any changes required.

Please = also suggest whether we should go with 2.5.2(psycopg2) or with the latest v= ersion.

--
=

Thanks & = Regards

Paresh Mo= re

3D"NEW-EDB-logo-4c"

Pune, India.



--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers=




--
Dave Page
Blog: http://pgsnake.blogspot.com<= br>Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterpri= se PostgreSQL Company



--

Thanks & Regards=

Paresh More

3D"NEW-EDB-logo-4c"

Pune, India.




--
Dave Page
Blog: http://pgsnake.blogspot.comTwitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterpris= e PostgreSQL Company



--

Thanks & Regards

Paresh More

3D"NEW-EDB-log=

Pune, India.

Cell : =C2=A0+919922000564 | =C2=A0www.e= nterprisedb.com
--001a1144e04aa9bb5f053341f2ce-- --001a1144e04aa9bb66053341f2d0 Content-Type: application/octet-stream; name="pgAdmin4_createDB.patch" Content-Disposition: attachment; filename="pgAdmin4_createDB.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iofgqdcf1 ZGlmZiAtLWdpdCBhL3dlYi9wZ0FkbWluNC5weSBiL3dlYi9wZ0FkbWluNC5w eQppbmRleCBkZWE1MGVmLi5mYTlmNDQ4IDEwMDY0NAotLS0gYS93ZWIvcGdB ZG1pbjQucHkKKysrIGIvd2ViL3BnQWRtaW40LnB5CkBAIC00MSwxMiArNDEs OSBAQCBpZiBjb25maWcuU0VSVkVSX01PREUgaXMgVHJ1ZToKIAogIyBDaGVj ayBpZiB0aGUgZGF0YWJhc2UgZXhpc3RzLiBJZiBpdCBkb2VzIG5vdCwgdGVs bCB0aGUgdXNlciBhbmQgZXhpdC4KIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShj b25maWcuU1FMSVRFX1BBVEgpOgotICAgIHByaW50KCJUaGUgY29uZmlndXJh dGlvbiBkYXRhYmFzZSAlcyBkb2VzIG5vdCBleGlzdC5cbiIgXAotICAgICAg ICAgICAgJSBjb25maWcuU1FMSVRFX1BBVEgpCi0gICAgcHJpbnQoIlBsZWFz ZSBydW4gJ3B5dGhvbiAlcycgdG8gY3JlYXRlIGl0LlxuRXhpdGluZy4uLiIg JSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUo b3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpLCAnc2V0dXAucHknCi0gICAg ICAgICAgICApKQotICAgIHN5cy5leGl0KDEpCisgICAgc2V0dXBmaWxlID0g b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLnJlYWxwYXRo KF9fZmlsZV9fKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdzZXR1cC5weScpCisgICAgZXhlY2ZpbGUoc2V0dXBmaWxlKQogCiAjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBTZXJ2ZXIgc3RhcnVwCg== --001a1144e04aa9bb66053341f2d0 Content-Type: application/octet-stream; name="pgAdmin4_windows.patch" Content-Disposition: attachment; filename="pgAdmin4_windows.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iofgqdcq2 ZGlmZiAtLWdpdCBhL01ha2UuYmF0IGIvTWFrZS5iYXQKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThmMTNkNAotLS0gL2Rldi9udWxs CisrKyBiL01ha2UuYmF0CkBAIC0wLDAgKzEsMzAyIEBACitAZWNobyBvZmYK K1JFTQorUkVNICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK3NldCBXRD0lY2QlCitz ZXQgVklSVFVBTEVOVj12ZV9weXRob24KK3NldCBQR0JVSUxEUEFUSD0lV0Ql XHBrZ1x3aW4zMlxSZWxlYXNlCitzZXQgVEFSR0VUSU5TVEFMTEVSPSVXRCVc ZGlzdAorUkVNIHNldCB0aGUgdmFyaWFibGVzIGlmIG5vdCBhdmFpbGFsYmUg aW4gd2luZG93cyBlbnZpcm9tZW50CitJRiAiJUlOTk9UT09MJSIgPT0gIiIg ICAgICBTRVQgIklOTk9UT09MPUM6XFByb2dyYW0gRmlsZXMgKHg4NilcSW5u byBTZXR1cCA1IgorSUYgIiVWQ0RJUiUiID09ICIiICAgICAgICAgU0VUICJW Q0RJUj1DOlxQcm9ncmFtIEZpbGVzICh4ODYpXE1pY3Jvc29mdCBWaXN1YWwg U3R1ZGlvIDEyLjBcVkMiCitJRiAiJVBZVEhPTl9IT01FJSIgPT0gIiIgICBT RVQgIlBZVEhPTl9IT01FPUM6XFB5dGhvbjI3IgorSUYgIiVQWVRIT05fRExM JSIgPT0gIiIgICAgU0VUICJQWVRIT05fRExMPUM6XFdpbmRvd3NcU3lzV09X NjRccHl0aG9uMjcuZGxsIgorSUYgIiVRVERJUiUiID09ICIiICAgICAgICAg U0VUICJRVERJUj1DOlxRdFxRdDUuNS4xXDUuNVxtc3ZjMjAxMyIKK3NldCBQ WVRIT05fVkVSU0lPTj0lUFlUSE9OX0hPTUU6fi0yJSIKKworc2V0IFJFUVVJ Uk1FTlRUWFQ9IiIKK2VjaG8gIiVQWVRIT05fSE9NRSUiIHwgZmluZCAiUHl0 aG9uMiIgPiBudWwKK2lmICVFUlJPUkxFVkVMJSA9PSAwIHNldCBSRVFVSVJN RU5UVFhUPXJlcXVpcmVtZW50c19weTIudHh0CisKK2VjaG8gIiVQWVRIT05f SE9NRSUiIHwgZmluZCAiUHl0aG9uMyIgPiBudWwKK2lmICVFUlJPUkxFVkVM JSA9PSAwIHNldCBSRVFVSVJNRU5UVFhUPXJlcXVpcmVtZW50c19weTMudHh0 CisKK0lGICVSRVFVSVJNRU5UVFhUJSA9PSAiIiAgICAgICAgICAgR09UTyBz ZXRQeXRob25WZXJzaW9uCisKK3NldCBWQ1ZBUj0lVkNESVIlXHZjdmFyc2Fs bC5iYXQKK3NldCBWQ05NQUtFPSVWQ0RJUiVcYmluXG5tYWtlLmV4ZQorc2V0 IFFNQUtFPSVRVERJUiVcYmluXHFtYWtlLmV4ZQorCitSRU0gQ2hlY2sgaWYg cGF0aCBzZXQgaW4gZW52aXJvbWVudHMgcmVhbGx5IGV4aXN0IG9yIG5vdCA/ CitpZiBOT1QgRVhJU1QgIiVJTk5PVE9PTCUiICAgICAgICAgIEdPVE8gc2V0 SW5ub0RldGFpbHMKK2lmIE5PVCBFWElTVCAiJVZDRElSJSIgICAgICAgICAg ICAgR09UTyBzZXRWQ0RldGFpbHMKK2lmIE5PVCBFWElTVCAiJVZDVkFSJSIg ICAgICAgICAgICAgR09UTyBzZXRWQ0RldGFpbHMKK2lmIE5PVCBFWElTVCAi JVZDTk1BS0UlIiAgICAgICAgICAgR09UTyBzZXRWQ0RldGFpbHMKK2lmIE5P VCBFWElTVCAiJVFURElSJSIgICAgICAgICAgICAgR09UTyBzZXRRdERldGFp bHMKK2lmIE5PVCBFWElTVCAiJVFNQUtFJSIgICAgICAgICAgICAgR09UTyBz ZXRRdERldGFpbHMKK2lmIE5PVCBFWElTVCAiJVBZVEhPTl9IT01FJSIgICAg ICAgR09UTyBzZXRQeXRob25EZXRhaWxzCitpZiBOT1QgRVhJU1QgIiVQWVRI T05fRExMJSIgICAgICAgIEdPVE8gc2V0UHl0aG9uRGV0YWlscworCitSRU0g Q3JlYXRlIElOU1RBTExFUiBOQU1FCitzZXQgQVBQX1JFTEVBU0U9IiIKK3Nl dCBBUFBfUkVWSVNJT05fVkVSU0lPTj0iIgorc2V0IEFQUF9TVUZGSVhfVkVS U0lPTj0iIgorRk9SIC9GICJ0b2tlbnM9MyIgJSVhIElOICgnZmluZHN0ciAv QzoiQVBQX1JFTEVBU0UgPSIgJVdEJVx3ZWJcY29uZmlnLnB5JykgICAgRE8g c2V0IEFQUF9SRUxFQVNFPSUlYQorRk9SIC9GICJ0b2tlbnM9MyIgJSVhIElO ICgnZmluZHN0ciAvQzoiQVBQX1JFVklTSU9OID0iICVXRCVcd2ViXGNvbmZp Zy5weScpIERPIHNldCBBUFBfUkVWSVNJT05fVkVSU0lPTj0lJWEKK0ZPUiAv RiAidG9rZW5zPTMiICUlYSBJTiAoJ2ZpbmRzdHIgL0M6IkFQUF9TVUZGSVgg PSIgJVdEJVx3ZWJcY29uZmlnLnB5JykgICBETyBzZXQgQVBQX1NVRkZJWF9W RVJTSU9OPSUlYQorUkVNIHJlbW92ZSBzaW5nbGUgcXVvdGUgZnJvbSB0aGUg c3RyaW5nCitzZXQgQVBQX1NVRkZJWF9WRVJTSU9OPSVBUFBfU1VGRklYX1ZF UlNJT046Jz0lCitzZXQgSU5TVEFMTEVSTkFNRT1wZ2FkbWluNC0lQVBQX1JF TEVBU0UlLiVBUFBfUkVWSVNJT05fVkVSU0lPTiUtJUFQUF9TVUZGSVhfVkVS U0lPTiUuZXhlCitzZXQgUEdBRE1JTjRfVkVSU0lPTj0lQVBQX1JFTEVBU0Ul CitzZXQgUEdBRE1JTjRfQVBQX1ZFUlNJT049JUFQUF9SRUxFQVNFJS4lQVBQ X1JFVklTSU9OX1ZFUlNJT04lCisKK2NhbGwgOkNMRUFOX1JFTEVBU0UKK2Nh bGwgOkNSRUFURV9WSVJUVUFMX0VOVgorY2FsbCA6Q1JFQVRFX1JVTlRJTUVf RU5WCitjYWxsIDpDUkVBVEVfUFlUSE9OX0VOVgorY2FsbCA6Q0xFQU5VUF9F TlYKK2NhbGwgOkNSRUFURV9JTlNUQUxMRVIKKworY2QgJVdEJQorZ290bzpF WElUCisKKzpDTEVBTl9SRUxFQVNFCisgICAgaWYgRVhJU1QgIiVQR0JVSUxE UEFUSCUiIHJtZGlyIC9zIC9xICVQR0JVSUxEUEFUSCUKKyAgICBta2RpciAl UEdCVUlMRFBBVEglCisKKwlta2RpciAlVEFSR0VUSU5TVEFMTEVSJQorICAg IElGICVFUlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxFVkVMJQor CisKKwljZCAlV0QlCitHT1RPOkVPRgorCis6Q1JFQVRFX1ZJUlRVQUxfRU5W CisgICAgZWNobyAiQ3JlYXRpbmcgVmlydHVhbCBFbnZpcm9tZW50IgorICAg IGNkICVQR0JVSUxEUEFUSCUKKyAgICB2aXJ0dWFsZW52ICVWSVJUVUFMRU5W JQorICAgIElGICVFUlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxF VkVMJQorCisgICAgZWNobyAiQWN0aXZhdGluZyBWaXJ0dWFsIEVudmlyb21l bnQgLSAgJVBHQlVJTERQQVRIJVwlVklSVFVBTEVOViVcU2NyaXB0c1xhY3Rp dmF0ZSIKKyAgICBDQUxMICIlUEdCVUlMRFBBVEglXCVWSVJUVUFMRU5WJVxT Y3JpcHRzXGFjdGl2YXRlIgorCisJZWNobyAiSW5zdGFsbGluZyBkZXBlbmRl bmNlcy4uLi4uLi4iCisgICAgcGlwIGluc3RhbGwgLXIgJVdEJVwlUkVRVUlS TUVOVFRYVCUKKyAgICBJRiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJVCAvQiAl RVJST1JMRVZFTCUKKwlyZW0gVGhpcyBpcyByZXF1aXJlZCBiZWNhdXNlIHdp bmRvd3Mgb25seSB3b3JrIHdpdGggMi42LjEgdmVyc2lvbgorCXBpcCBpbnN0 YWxsIHBzeWNvcGcyIC1VCisJSUYgJUVSUk9STEVWRUwlIE5FUSAwIEVYSVQg L0IgJUVSUk9STEVWRUwlCisKKyAgICBlY2hvICJWaXJ0dWFsIEVudmlyb21l bnQgY3JlYXRlZCBzdWNjZXNzZnVsbHkuLi4uLi4uLi4uLi4uLi4uLi4iCisK KyAgICByZW0gQ2xlYW51cCB1bndhbnRlZCBmaWxlcworICAgIGVjaG8gIkRF YWN0aXZhdGluZyBWaXJ0dWFsIEVudmlyb21lbnQgLSAgJVBHQlVJTERQQVRI JVwlVklSVFVBTEVOViVcU2NyaXB0c1xkZWFjdGl2YXRlIgorICAgIENBTEwg IiVQR0JVSUxEUEFUSCVcJVZJUlRVQUxFTlYlXFNjcmlwdHNcZGVhY3RpdmF0 ZSIKKworCisgICAgY2QgJVdEJQorR09UTzpFT0YKKworOkNSRUFURV9SVU5U SU1FX0VOVgorICAgIGVjaG8gIkNvbXBpbGluZyBzb3VyY2UgY29kZSIKKyAg ICBta2RpciAlUEdCVUlMRFBBVEglXHJ1bnRpbWUKKyAgICBJRiAlRVJST1JM RVZFTCUgTkVRIDAgRVhJVCAvQiAlRVJST1JMRVZFTCUKKworICAgIGNkICVX RCUKKwljZCB3ZWIKKyAgICBJRiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJVCAv QiAlRVJST1JMRVZFTCUKKworICAgIGlmIEVYSVNUIGNvbmZpZ19sb2NhbC5w eSBkZWwgL3MgY29uZmlnX2xvY2FsLnB5CisKKyAgICByZW0gc2VhcmNoIGFu ZCByZXBsYWNlIHN0cmluZyBmcm9tIGNvbmZpZy5weSBhbmQgY29weSB0byBj b25maWdfbG9jYWwucHkKKyAgICBAZWNobyBvZmYKKyAgICBzZXRsb2NhbCBk aXNhYmxlRGVsYXllZEV4cGFuc2lvbgorICAgIHNldCBJbnB1dEZpbGU9Y29u ZmlnLnB5CisgICAgc2V0IE91dHB1dEZpbGU9Y29uZmlnX2xvY2FsLnB5Cisg ICAgc2V0ICJfc3RyRmluZD1TRVJWRVJfTU9ERSA9IFRydWUiCisgICAgc2V0 ICJfc3RySW5zZXJ0PVNFUlZFUl9NT0RFID0gRmFsc2UiCisgICAgOlJlcGxh Y2UKKyAgICA+IiVPdXRwdXRGaWxlJSIgKAorICAgIGZvciAvZiAidXNlYmFj a3EgZGVsaW1zPSIgJSVBIGluICgiJUlucHV0RmlsZSUiKSBkbyAoCisgICAg ICAgIGlmICIlJUEiIGVxdSAiJV9zdHJGaW5kJSIgKGVjaG8gJV9zdHJJbnNl cnQlKSBlbHNlIChlY2hvICUlQSkKKyAgICAgICAgKQorICAgICkKKyAgICBJ RiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJVCAvQiAlRVJST1JMRVZFTCUKKwor CXhjb3B5IC9TIC9JIC9FIC9IIC9ZICVXRCVcd2ViICVQR0JVSUxEUEFUSCVc d2ViCisJSUYgJUVSUk9STEVWRUwlIE5FUSAwIEVYSVQgL0IgJUVSUk9STEVW RUwlCisKKyAgICBjZCAlV0QlCisJY2QgcnVudGltZQorCUlGICVFUlJPUkxF VkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxFVkVMJQorCisJY2FsbCAiJVZD VkFSJSIgeDg2CisgICAgSUYgJUVSUk9STEVWRUwlIE5FUSAwIEVYSVQgL0Ig JUVSUk9STEVWRUwlCisKKyAgICBjYWxsICIlUU1BS0UlIgorICAgIElGICVF UlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxFVkVMJQorCisgICAg Y2FsbCAiJVZDTk1BS0UlIiBjbGVhbgorICAgIElGICVFUlJPUkxFVkVMJSBO RVEgMCBFWElUIC9CICVFUlJPUkxFVkVMJQorCisgICAgY2FsbCAiJVZDTk1B S0UlCisgICAgSUYgRVJST1JMRVZFTCAxIEdPVE8gRVJSX0hBTkRMRVIKKyAg ICByZW0gQ29weSBiaW5hcnkgdG8gUmVsZWFzZSBGb2xkZXIKKyAgICBjb3B5 ICVXRCVccnVudGltZVxyZWxlYXNlXHBnQWRtaW40LmV4ZSAlUEdCVUlMRFBB VEglXHJ1bnRpbWUKKyAgICBJRiBFUlJPUkxFVkVMIDEgR09UTyBFUlJfSEFO RExFUgorCisgICAgcmVtIENvcHkgUVRQIGRlcGVuZGVuY2VzCisgICAgY29w eSAlUVRESVIlXGJpblxpY3VkdDU0LmRsbCAgICVQR0JVSUxEUEFUSCVccnVu dGltZQorICAgIElGICVFUlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJP UkxFVkVMJQorICAgIGNvcHkgJVFURElSJVxiaW5caWN1aW41NC5kbGwgICAl UEdCVUlMRFBBVEglXHJ1bnRpbWUKKwlJRiAlRVJST1JMRVZFTCUgTkVRIDAg RVhJVCAvQiAlRVJST1JMRVZFTCUKKyAgICBjb3B5ICVRVERJUiVcYmluXGlj dXVjNTQuZGxsICAgJVBHQlVJTERQQVRIJVxydW50aW1lCisJSUYgJUVSUk9S TEVWRUwlIE5FUSAwIEVYSVQgL0IgJUVSUk9STEVWRUwlCisgICAgY29weSAl UVRESVIlXGJpblxRdDVDb3JlLmRsbCAgICVQR0JVSUxEUEFUSCVccnVudGlt ZQorCUlGICVFUlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxFVkVM JQorICAgIGNvcHkgJVFURElSJVxiaW5cUXQ1U3FsLmRsbCAgICAlUEdCVUlM RFBBVEglXHJ1bnRpbWUKKwlJRiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJVCAv QiAlRVJST1JMRVZFTCUKKyAgICBjb3B5ICVRVERJUiVcYmluXFF0NUd1aS5k bGwgICAgJVBHQlVJTERQQVRIJVxydW50aW1lCisJSUYgJUVSUk9STEVWRUwl IE5FUSAwIEVYSVQgL0IgJUVSUk9STEVWRUwlCisgICAgY29weSAlUVRESVIl XGJpblxRdDVRbWwuZGxsICAgICVQR0JVSUxEUEFUSCVccnVudGltZQorCUlG ICVFUlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxFVkVMJQorICAg IGNvcHkgJVFURElSJVxiaW5cUXQ1T3BlbkdMLmRsbCAlUEdCVUlMRFBBVEgl XHJ1bnRpbWUKKwlJRiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJVCAvQiAlRVJS T1JMRVZFTCUKKyAgICBjb3B5ICVRVERJUiVcYmluXFF0NVF1aWNrLmRsbCAg JVBHQlVJTERQQVRIJVxydW50aW1lCisJSUYgJUVSUk9STEVWRUwlIE5FUSAw IEVYSVQgL0IgJUVSUk9STEVWRUwlCisgICAgY29weSAlUVRESVIlXGJpblxR dDVTZW5zb3JzLmRsbCAlUEdCVUlMRFBBVEglXHJ1bnRpbWUKKwlJRiAlRVJS T1JMRVZFTCUgTkVRIDAgRVhJVCAvQiAlRVJST1JMRVZFTCUKKyAgICBjb3B5 ICVRVERJUiVcYmluXFF0NVdpZGdldHMuZGxsICVQR0JVSUxEUEFUSCVccnVu dGltZQorCUlGICVFUlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxF VkVMJQorICAgIGNvcHkgJVFURElSJVxiaW5cUXQ1V2ViS2l0LmRsbCAlUEdC VUlMRFBBVEglXHJ1bnRpbWUKKwlJRiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJ VCAvQiAlRVJST1JMRVZFTCUKKyAgICBjb3B5ICVRVERJUiVcYmluXFF0NU5l dHdvcmsuZGxsICVQR0JVSUxEUEFUSCVccnVudGltZQorCUlGICVFUlJPUkxF VkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxFVkVMJQorICAgIGNvcHkgJVFU RElSJVxiaW5cUXQ1TXVsdGltZWRpYS5kbGwgJVBHQlVJTERQQVRIJVxydW50 aW1lCisJSUYgJUVSUk9STEVWRUwlIE5FUSAwIEVYSVQgL0IgJUVSUk9STEVW RUwlCisgICAgY29weSAlUVRESVIlXGJpblxRdDVXZWJDaGFubmVsLmRsbCAl UEdCVUlMRFBBVEglXHJ1bnRpbWUKKwlJRiAlRVJST1JMRVZFTCUgTkVRIDAg RVhJVCAvQiAlRVJST1JMRVZFTCUKKyAgICBjb3B5ICVRVERJUiVcYmluXFF0 NVBvc2l0aW9uaW5nLmRsbCAlUEdCVUlMRFBBVEglXHJ1bnRpbWUKKwlJRiAl RVJST1JMRVZFTCUgTkVRIDAgRVhJVCAvQiAlRVJST1JMRVZFTCUKKyAgICBj b3B5ICVRVERJUiVcYmluXFF0NVByaW50U3VwcG9ydC5kbGwgJVBHQlVJTERQ QVRIJVxydW50aW1lCisJSUYgJUVSUk9STEVWRUwlIE5FUSAwIEVYSVQgL0Ig JUVSUk9STEVWRUwlCisgICAgY29weSAlUVRESVIlXGJpblxRdDVXZWJLaXRX aWRnZXRzLmRsbCAlUEdCVUlMRFBBVEglXHJ1bnRpbWUKKwlJRiAlRVJST1JM RVZFTCUgTkVRIDAgRVhJVCAvQiAlRVJST1JMRVZFTCUKKyAgICBjb3B5ICVR VERJUiVcYmluXFF0NU11bHRpbWVkaWFXaWRnZXRzLmRsbCAlUEdCVUlMRFBB VEglXHJ1bnRpbWUKKwlJRiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJVCAvQiAl RVJST1JMRVZFTCUKKyAgICBta2RpciAlUEdCVUlMRFBBVEglXHJ1bnRpbWVc cGxhdGZvcm1zCisJSUYgJUVSUk9STEVWRUwlIE5FUSAwIEVYSVQgL0IgJUVS Uk9STEVWRUwlCisKKyAgICBjb3B5ICVRVERJUiVccGx1Z2luc1xwbGF0Zm9y bXNccXdpbmRvd3MuZGxsICVQR0JVSUxEUEFUSCVccnVudGltZVxwbGF0Zm9y bXMKKwlJRiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJVCAvQiAlRVJST1JMRVZF TCUKKyAgICBlY2hvIFtQYXRoc10gPiAlUEdCVUlMRFBBVEglXHJ1bnRpbWVc cXQuY29uZgorICAgIGVjaG8gUGx1Z2lucz1wbHVnaW5zID4+ICVQR0JVSUxE UEFUSCVccnVudGltZVxxdC5jb25mCisgICAgZWNobyAiUnVudGltZSBTb3Vy Y2UgY29kZSBidWlsZCBzdWNjZXNzZnVsbHkuLi4uLi4uLi4uLi4uLi4uLi4i CisKKworICAgIGNkICVXRCUKK0dPVE86RU9GCisKKzpDUkVBVEVfUFlUSE9O X0VOVgorICAgIGNvcHkgJVBZVEhPTl9ETEwlICVQR0JVSUxEUEFUSCVccnVu dGltZQorCUlGICVFUlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxF VkVMJQorICAgIHhjb3B5IC9TIC9JIC9FIC9IIC9ZICVQWVRIT05fSE9NRSVc RExMcyAlUEdCVUlMRFBBVEglXCVWSVJUVUFMRU5WJVxETExzCisJSUYgJUVS Uk9STEVWRUwlIE5FUSAwIEVYSVQgL0IgJUVSUk9STEVWRUwlCisgICAgeGNv cHkgL1MgL0kgL0UgL0ggL1kgJVBZVEhPTl9IT01FJVxMaWIgJVBHQlVJTERQ QVRIJVwlVklSVFVBTEVOViVcTGliCisJSUYgJUVSUk9STEVWRUwlIE5FUSAw IEVYSVQgL0IgJUVSUk9STEVWRUwlCisKKwljZCAlV0QlCitHT1RPOkVPRgor Cis6Q1JFQVRFX0lOU1RBTExFUgorICAgIGVjaG8gIlByZXBhcmluZyBDcmVh dGlvbiBvZiB3aW5kb3dzIGluc3RhbGxlciIKKyAgICByZW0gc2VhcmNoIGFu ZCByZXBsYWNlIHN0cmluZyBmcm9tIGNvbmZpZy5weSBhbmQgY29weSB0byBj b25maWdfbG9jYWwucHkKKwljZCAlV0QlCisJY2QgcGtnCisJY2Qgd2luMzIK KwlJRiAlRVJST1JMRVZFTCUgTkVRIDAgRVhJVCAvQiAlRVJST1JMRVZFTCUK KworICAgIEBlY2hvIG9mZgorICAgIHNldGxvY2FsIGRpc2FibGVEZWxheWVk RXhwYW5zaW9uCisgICAgc2V0IElucHV0RmlsZT1pbnN0YWxsZXIuaXNzLmlu CisgICAgc2V0IE91dHB1dEZpbGU9aW5zdGFsbGVyLmlzcworICAgIHNldCAi X3N0ckZpbmQ9I2RlZmluZSBNeUFwcFZlcnNpb24gIjAuMCIiCisgICAgc2V0 ICJfc3RySW5zZXJ0PSNkZWZpbmUgTXlBcHBWZXJzaW9uICIlUEdBRE1JTjRf VkVSU0lPTiUiIgorCXNldCAiX3N0ckZpbmQxPSNkZWZpbmUgTXlBcHBGdWxs VmVyc2lvbiAiMC4wIiIKKyAgICBzZXQgIl9zdHJJbnNlcnQxPSNkZWZpbmUg TXlBcHBGdWxsVmVyc2lvbiAiJVBHQURNSU40X0FQUF9WRVJTSU9OJSIiCisg ICAgOlJlcGxhY2UKKyAgICA+IiVPdXRwdXRGaWxlJSIgKAorICAgIGZvciAv ZiAidXNlYmFja3EgZGVsaW1zPSIgJSVBIGluICgiJUlucHV0RmlsZSUiKSBk byAoCisgICAgICAgIGlmICIlJUEiIGVxdSAiJV9zdHJGaW5kJSIgKGVjaG8g JV9zdHJJbnNlcnQlKSBlbHNlICgKKwkJaWYgIiUlQSIgZXF1ICIlX3N0ckZp bmQxJSIgKGVjaG8gJV9zdHJJbnNlcnQxJSkgZWxzZSAoZWNobyAlJUEpKQor ICAgICAgICApCisgICAgKQorICAgIElGICVFUlJPUkxFVkVMJSBORVEgMCBF WElUIC9CICVFUlJPUkxFVkVMJQorCisJZWNobyAiJUlOTk9UT09MJVxJU0ND LmV4ZSIgL3EgJVdEJVxwa2dcd2luMzJcaW5zdGFsbGVyLmlzcyIKKyAgICBj YWxsICIlSU5OT1RPT0wlXElTQ0MuZXhlIiAvcSAlV0QlXHBrZ1x3aW4zMlxp bnN0YWxsZXIuaXNzCisgICAgSUYgJUVSUk9STEVWRUwlIE5FUSAwIEVYSVQg L0IgJUVSUk9STEVWRUwlCisgICAgbW92ZSAlV0QlXHBrZ1x3aW4zMlxPdXRw dXRcc2V0dXAuZXhlICVUQVJHRVRJTlNUQUxMRVIlXCVJTlNUQUxMRVJOQU1F JQorICAgIElGICVFUlJPUkxFVkVMJSBORVEgMCBFWElUIC9CICVFUlJPUkxF VkVMJQorCisgICAgZWNobyAiTG9jYXRpb24gLSAlVEFSR0VUSU5TVEFMTEVS JVwlSU5TVEFMTEVSTkFNRSUiCisgICAgZWNobyAiSW5zdGFsbGVyIGdlbmVy YXRlZCBzdWNjZXNzZnVsbHkuLi4uLi4uLi4uLi4uLi4uLi4iCisgICAgY2Qg JVdEJQorR09UTzpFT0YKKworOkNMRUFOVVBfRU5WCisgICAgcmQgJVBHQlVJ TERQQVRIJVwlVklSVFVBTEVOViVcSW5jbHVkZSAvUyAvUQorICAgIHJkICVQ R0JVSUxEUEFUSCVcJVZJUlRVQUxFTlYlXFNjcmlwdHMgL1MgL1EKKyAgICBk ZWwgL3MgJVBHQlVJTERQQVRIJVwlVklSVFVBTEVOViVccGlwLXNlbGZjaGVj ay5qc29uCisgICAgcmVtIGZvciAvUiAlUEdCVUlMRFBBVEglXCVWSVJUVUFM RU5WJVxMaWIiICUlZiBpbiAoKi5weWMpIGRvIGRlbCAvcSAiJSVmIgorCisJ ZWNobyAiQ2xlYW51cCBwcml2YXRlIGVudmlyb25tZW50IHN1Y2Nlc3NmdWxs eS4uLi4uLi4uLi4uLi4uLi4uLiIKKyAgICBjZCAlV0QlCisKK0dPVE86RU9G CisKKzpzZXRJbm5vRGV0YWlscworZWNobyAlSU5OT1RPT0wlIGRvZXMgbm90 IGV4aXN0CitlY2hvIFBsZWFzZSBJbnN0YWxsIElubm90b29sIGFuZCBzZXQg SU5OT1RPT0wgZW52aXJvbWVudCBWYXJpYWJsZS4KK2VjaG8gc2V0ICJJTk5P VE9PTD08UEFUSD4iCitnb3RvIEVYSVQKKworOnNldFZDRGV0YWlscworZWNo byAlVkNESVIlIGRvZXMgbm90IGV4aXN0LgorZWNobyAlVkNWQVIlIGRvZXMg bm90IGV4aXN0LgorZWNobyAlVkNOTUFLRSUgZG9lcyBub3QgZXhpc3QuCitl Y2hvIFBsZWFzZSBJbnN0YWxsIE1pY3Jvc29mdCBWaXN1YWwgc3R1ZGlvIHNl dCBWQ0RJUiBlbnZpcm9tZW50IFZhcmlhYmxlLgorZWNobyBzZXQgIlZDRElS JT08UEFUSD4iCitlY2hvIHNldCAiVkNWQVIlPTxQQVRIPiIKK2VjaG8gc2V0 ICJWQ05NQUtFJT08UEFUSD4iCitnb3RvIEVYSVQKKworOnNldFB5dGhvbkRl dGFpbHMKK2VjaG8gJVBZVEhPTl9IT01FJSBkb2VzIG5vdCBleGlzdC4KK2Vj aG8gUFlUSE9OX1ZFUlNJT04gbm90IHNldC4KK2VjaG8gJVBZVEhPTl9ETEwl IGRvZXMgbm90IGV4aXN0LgorZWNobyBQbGVhc2UgSW5zdGFsbCBQeXRob24g YW5kIHNldCB0aGUgUFlUSE9OX0hPTUUgZW52aXJvbWVudCBWYXJpYWJsZS4K K2VjaG8gc2V0ICJQWVRIT05fVkVSU0lPTj08VkVSU0lPTiBOVU1CRVI+Igor ZWNobyBzZXQgIlBZVEhPTl9IT01FPTxQQVRIPiIKK2VjaG8gc2V0ICJQWVRI T05fRExMPTxQQVRIPiIKK2dvdG8gRVhJVAorCis6c2V0UXREZXRhaWxzCitl Y2hvICVRVERJUiUgZG9lcyBub3QgZXhpc3QuCityZW0gZWNobyAlUU1BS0Ul IGRvZXMgbm90IGV4aXN0LgorZWNobyBQbGVhc2UgSW5zdGFsbCBRVCBTREsg YW5kIHNldCBlbnZpcm9tZW50IFZhcmlhYmxlCitlY2hvIHNldCAiUVRESVI9 PFBBVEg+IgorZ290byBFWElUCisKKzpzZXRQeXRob25WZXJzaW9uCitlY2hv ICJQeXRob24gdmVyc2lvbiBzdXBwb3J0ZWQgQWJvdmUgMi42LCAyLnh4IGFu ZCAzLnh4IG9ubHkiCitnb3RvIEVYSVQKKworOkVSUl9IQU5ETEVSCisgICAg ZWNoby4KKyAgICBlY2hvIEFib3J0aW5nIGJ1aWxkIQorICAgIGNkICVXRCUK KyAgICBleGl0IC9CIDEKK0dPVE86RU9GCisKKzpFWElUCisJZXhpdCAvQiAw ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGtn L3dpbjMyL1JFQURNRS50eHQgYi9wa2cvd2luMzIvUkVBRE1FLnR4dApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTg5NDM1Ci0tLSAv ZGV2L251bGwKKysrIGIvcGtnL3dpbjMyL1JFQURNRS50eHQKQEAgLTAsMCAr MSw1MSBAQAorcGdBZG1pbiA0Cis9PT09PT09PT0KKworUHJlcmVxdWlzaXRl cworLS0tLS0tLS0tLS0tLQorCitUbyBnZW5lcmF0ZSBhIHBnQWRtaW4gNCBp bnN0YWxsZXIgZm9yIHdpbmRvd3MgKDY0KSBiaXQsIHRoZSBmb2xsb3dpbmcg cGFja2FnZXMgCittdXN0IGJlIGluc3RhbGxlZDoKKworLSBRVCA0LjYgb3Ig YWJvdmUgKG9sZGVyIHZlcnNpb25zIG1heSB3b3JrLCBidXQgaGF2ZW4ndCBi ZWVuIHRlc3RlZCkuCistIFB5dGhvbiAyLjYgb3IgYWJvdmUuCistIElubm8g VG9vbCBWZXJzaW9uIDUuNS44IGFuZCBBYm92ZQorLSBNaWNyb3NvZnQgdmlz dWFsIHN0dWRpbyAoMjAxMykKKworVGhlIGZvbGxvd2luZyBlbnZpcm9ubWVu dCB2YXJpYWJsZXMgbWF5IGJlIGRlZmluZWQgdG8gb3ZlcnJpZGUgZGVmYXVs dHMgaW4gdGhlCitidWlsZCBzY3JpcHQgKE1ha2UuYmF0KToKKworSU5OT1RP T0wsIFZDRElSLCBQWVRIT05fSE9NRSwgUFlUSE9OX0RMTCwgUVRESVIKKwor VGhlIGRlZmF1bHQgc2V0dGluZ3MgYXJlIGVxdWl2YWxlbnQgdG86CisKK1NF VCAiSU5OT1RPT0w9QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxJbm5vIFNldHVw IDXigJ0KK1NFVCAiVkNESVI9QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxNaWNy b3NvZnQgVmlzdWFsIFN0dWRpbyAxMi4wXFZDIgorU0VUICJQWVRIT05fSE9N RT1DOlxQeXRob24yNyIKK1NFVCAiUFlUSE9OX0RMTD1DOlxXaW5kb3dzXFN5 c1dPVzY0XHB5dGhvbjI3LmRsbCIKK1NFVCAiUVRESVI9QzpcUXRcUXQ1LjUu MVw1LjVcbXN2YzIwMTMiCisKK0hvdyB0byBidWlsZAorLS0tLS0tLS0tLS0t CisKKyQgY2QgPFBHQURNSU40X1NSQz4KKyQgTWFrZS5iYXQKKworVGhpcyB3 aWxsIGdlbmVyYXRlIHBnQWRtaW40PEFQUF9SRUxFQVNFPi48bWlub3I+PHN1 ZmZpeD4uZXhlIGluIHRoZSBQR0FETUlONF9TUkMvZGlzdAorZm9sZGVyLiBU aGUgQVBQX1JFTEVBU0UsIG1pbm9yIGFuZCBzdWZmaXggdmVyc2lvbiBkZXRh aWxzIHdpbGwgYmUgZXh0cmFjdGVkIGZyb20KK3dlYi9jb25maWcucHkgYW5k IHVzZWQgdG8gY3JlYXRlIHRoZSBpbnN0YWxsZXIgZmlsZW5hbWUsIGZvciBl eGFtcGxlOgorCitwZ2FkbWluNC0xLjAuMC1kZXYuZXhlCisKK1NpZGUtYnkt c2lkZSBpbnN0YWxsYXRpb25zIG9mIEFQUF9SRUxFQVNFIHZlcnNpb25zIG9m IHBnQWRtaW4gYXJlIGFsbG93ZWQsIHNvIGFuCitpbnN0YWxsYXRpb24gZGly ZWN0b3J5IG9mOgorCisiQzpcUHJvZ3JhbSBGaWxlcyAoeDg2KVxwZ0FkbWlu IDRcIgorCit3b3VsZCBhY3R1YWxseSBpbnN0YWxsIGludG8KKworQzpcUHJv Z3JhbSBGaWxlcyAoeDg2KVxwZ0FkbWluIDRcPEFQUF9SRUxFQVNFPgorCitl LmcuCisKKyJDOlxQcm9ncmFtIEZpbGVzICh4ODYpXHBnQWRtaW4gNFwxXCIK ZGlmZiAtLWdpdCBhL3BrZy93aW4zMi9SZXNvdXJjZXMvM3JkX3BhcnR5X2xp Y2Vuc2VzLnR4dCBiL3BrZy93aW4zMi9SZXNvdXJjZXMvM3JkX3BhcnR5X2xp Y2Vuc2VzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li45N2Q2OGY2Ci0tLSAvZGV2L251bGwKKysrIGIvcGtnL3dpbjMyL1Jlc291 cmNlcy8zcmRfcGFydHlfbGljZW5zZXMudHh0CkBAIC0wLDAgKzEsMTg5OSBA QAorPT09PT09PT09PT09PT09PT09CitRVCBMSUNFTlNFCis9PT09PT09PT09 PT09PT09PT0KK0dFTkVSQUwKKy0tLS0tLS0KKworUXQgaXMgYXZhaWxhYmxl IHVuZGVyIGEgY29tbWVyY2lhbCBsaWNlbnNlIHdpdGggdmFyaW91cyBwcmlj aW5nIG1vZGVscyBhbmQgcGFja2FnZXMgdGhhdCBtZWV0IGEgdmFyaWV0eSBv ZiBuZWVkcy4gQ29tbWVyY2lhbCBRdCBsaWNlbnNlIGtlZXBzIHlvdXIgY29k ZSBwcm9wcmlldGFyeSB3aGVyZSBvbmx5IHlvdSBjYW4gY29udHJvbCBhbmQg bW9uZXRpemUgb24geW91ciBlbmQgcHJvZHVjdJJzIGRldmVsb3BtZW50LCB1 c2VyIGV4cGVyaWVuY2UgYW5kIGRpc3RyaWJ1dGlvbi4gWW91IGFsc28gZ2V0 IGdyZWF0IHBlcmtzIGxpa2UgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5LCBw cm9kdWN0aXZpdHkgZW5oYW5jaW5nIHRvb2xzLCB3b3JsZC1jbGFzcyBzdXBw b3J0IGFuZCBhIGNsb3NlIHN0cmF0ZWdpYyByZWxhdGlvbnNoaXAgd2l0aCBU aGUgUXQgQ29tcGFueSB0byBtYWtlIHN1cmUgeW91ciBwcm9kdWN0IGFuZCBk ZXZlbG9wbWVudCBnb2FscyBhcmUgbWV0LgorCitRdCBoYXMgYmVlbiBjcmVh dGVkIHVuZGVyIHRoZSBiZWxpZWYgb2Ygb3BlbiBkZXZlbG9wbWVudCBhbmQg cHJvdmlkaW5nIGZyZWVkb20gYW5kIGNob2ljZSB0byBkZXZlbG9wZXJzLiBU byBzdXBwb3J0IHRoYXQsIFRoZSBRdCBDb21wYW55IGFsc28gbGljZW5zZXMg UXQgdW5kZXIgb3BlbiBzb3VyY2UgbGljZW5zZXMsIHdoZXJlIG1vc3Qgb2Yg dGhlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlIHVuZGVyIExHUEx2MyBv ciBMR1BMdjIuMS4gSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgc29tZSBjb21w b25lbnRzIGFyZSBhdmFpbGFibGUgb25seSB1bmRlciBMR1BMdjMuIEluIG9y ZGVyIHRvIHByZXNlcnZlIHRoZSB0cnVlIG1lYW5pbmcgb2Ygb3BlbiBkZXZl bG9wbWVudCBhbmQgdXBob2xkIHRoZSBzcGlyaXQgb2YgZnJlZSBzb2Z0d2Fy ZSwgaXQgaXMgaW1wZXJhdGl2ZSB0aGF0IHRoZSBydWxlcyBhbmQgcmVndWxh dGlvbnMgb2Ygb3BlbiBzb3VyY2UgbGljZW5zZXMgYXJlIGZvbGxvd2VkLiBJ ZiB5b3UgdXNlIFF0IHVuZGVyIG9wZW4tc291cmNlIGxpY2Vuc2VzLCB5b3Ug bmVlZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UgY29tcGx5IHdpdGggYWxsIHRo ZSBsaWNlbnNlcyBvZiB0aGUgY29tcG9uZW50cyB5b3UgdXNlLgorCitRdCBh bHNvIGNvbnRhaW5zIHNvbWUgM3JkIHBhcnR5IGNvbXBvbmVudHMgdGhhdCBh cmUgYXZhaWxhYmxlIHVuZGVyIGRpZmZlcmVudCBvcGVuLXNvdXJjZSBsaWNl bnNlcy4gUGxlYXNlIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciBt b3JlIGRldGFpbHMgb24gM3JkIHBhcnR5IGxpY2Vuc2VzIHVzZWQgaW4gUXQu CisKKworR1BMdjMgYW5kIExHUEx2MworLS0tLS0tLS0tLS0tLS0tLQorCisg ICAgICAgICAgICBHTlUgTEVTU0VSIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UK KworIFRoZSBRdCBUb29sa2l0IGlzIENvcHlyaWdodCAoQykgMjAxNCBEaWdp YSBQbGMgYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorIENvbnRhY3Q6 IGh0dHA6Ly93d3cucXQuaW8vbGljZW5zaW5nCisKKyBZb3UgbWF5IHVzZSwg ZGlzdHJpYnV0ZSBhbmQgY29weSB0aGUgUXQgR1VJIFRvb2xraXQgdW5kZXIg dGhlIHRlcm1zIG9mCisgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIHZlcnNpb24gMywgd2hpY2ggc3VwcGxlbWVudHMgR05VIEdlbmVyYWwK KyBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDMuIEJvdGggb2YgdGhlIGxpY2Vu c2VzIGFyZSBkaXNwbGF5ZWQgYmVsb3cuCisKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKworCisgICAgICAgICAgICAgICAgICAgIEdOVSBHRU5F UkFMIFBVQkxJQyBMSUNFTlNFCisgICAgICAgICAgICAgICAgICAgICAgIFZl cnNpb24gMywgMjkgSnVuZSAyMDA3CisKKyBDb3B5cmlnaHQgKEMpIDIwMDcg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIDxodHRwOi8vZnNmLm9y Zy8+CisgRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3Ry aWJ1dGUgdmVyYmF0aW0gY29waWVzCisgb2YgdGhpcyBsaWNlbnNlIGRvY3Vt ZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCisKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQorCisgIFRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpcyBhIGZyZWUsIGNvcHlsZWZ0IGxp Y2Vuc2UgZm9yCitzb2Z0d2FyZSBhbmQgb3RoZXIga2luZHMgb2Ygd29ya3Mu CisKKyAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFuZCBvdGhl ciBwcmFjdGljYWwgd29ya3MgYXJlIGRlc2lnbmVkCit0byB0YWtlIGF3YXkg eW91ciBmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgdGhlIHdvcmtzLiAg QnkgY29udHJhc3QsCit0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug aXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0bworc2hh cmUgYW5kIGNoYW5nZSBhbGwgdmVyc2lvbnMgb2YgYSBwcm9ncmFtLS10byBt YWtlIHN1cmUgaXQgcmVtYWlucyBmcmVlCitzb2Z0d2FyZSBmb3IgYWxsIGl0 cyB1c2Vycy4gIFdlLCB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB1 c2UgdGhlCitHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9zdCBv ZiBvdXIgc29mdHdhcmU7IGl0IGFwcGxpZXMgYWxzbyB0bworYW55IG90aGVy IHdvcmsgcmVsZWFzZWQgdGhpcyB3YXkgYnkgaXRzIGF1dGhvcnMuICBZb3Ug Y2FuIGFwcGx5IGl0IHRvCit5b3VyIHByb2dyYW1zLCB0b28uCisKKyAgV2hl biB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5n IHRvIGZyZWVkb20sIG5vdAorcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQor aGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVl IHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgordGhlbSBpZiB5b3Ugd2lzaCks IHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdCBp ZiB5b3UKK3dhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3 YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4gbmV3CitmcmVlIHByb2dyYW1z LCBhbmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5ncy4K KworICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZl bnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UKK3RoZXNlIHJpZ2h0cyBvciBh c2tpbmcgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLiAgVGhlcmVmb3Jl LCB5b3UgaGF2ZQorY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIGlmIHlvdSBk aXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmCit5b3Ug bW9kaWZ5IGl0OiByZXNwb25zaWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZy ZWVkb20gb2Ygb3RoZXJzLgorCisgIEZvciBleGFtcGxlLCBpZiB5b3UgZGlz dHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKK2dy YXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJl Y2lwaWVudHMgdGhlIHNhbWUKK2ZyZWVkb21zIHRoYXQgeW91IHJlY2VpdmVk LiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZl CitvciBjYW4gZ2V0IHRoZSBzb3VyY2UgY29kZS4gIEFuZCB5b3UgbXVzdCBz aG93IHRoZW0gdGhlc2UgdGVybXMgc28gdGhleQora25vdyB0aGVpciByaWdo dHMuCisKKyAgRGV2ZWxvcGVycyB0aGF0IHVzZSB0aGUgR05VIEdQTCBwcm90 ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOgorKDEpIGFzc2VydCBj b3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVyIHlvdSB0 aGlzIExpY2Vuc2UKK2dpdmluZyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBj b3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgaXQuCisKKyAgRm9yIHRo ZSBkZXZlbG9wZXJzJyBhbmQgYXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQ TCBjbGVhcmx5IGV4cGxhaW5zCit0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5 IGZvciB0aGlzIGZyZWUgc29mdHdhcmUuICBGb3IgYm90aCB1c2VycycgYW5k CithdXRob3JzJyBzYWtlLCB0aGUgR1BMIHJlcXVpcmVzIHRoYXQgbW9kaWZp ZWQgdmVyc2lvbnMgYmUgbWFya2VkIGFzCitjaGFuZ2VkLCBzbyB0aGF0IHRo ZWlyIHByb2JsZW1zIHdpbGwgbm90IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3Vz bHkgdG8KK2F1dGhvcnMgb2YgcHJldmlvdXMgdmVyc2lvbnMuCisKKyAgU29t ZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0 byBpbnN0YWxsIG9yIHJ1bgorbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhlIHNv ZnR3YXJlIGluc2lkZSB0aGVtLCBhbHRob3VnaCB0aGUgbWFudWZhY3R1cmVy CitjYW4gZG8gc28uICBUaGlzIGlzIGZ1bmRhbWVudGFsbHkgaW5jb21wYXRp YmxlIHdpdGggdGhlIGFpbSBvZgorcHJvdGVjdGluZyB1c2VycycgZnJlZWRv bSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKK3Bh dHRlcm4gb2Ygc3VjaCBhYnVzZSBvY2N1cnMgaW4gdGhlIGFyZWEgb2YgcHJv ZHVjdHMgZm9yIGluZGl2aWR1YWxzIHRvCit1c2UsIHdoaWNoIGlzIHByZWNp c2VseSB3aGVyZSBpdCBpcyBtb3N0IHVuYWNjZXB0YWJsZS4gIFRoZXJlZm9y ZSwgd2UKK2hhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRoZSBHUEwg dG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQorcHJvZHVjdHMu ICBJZiBzdWNoIHByb2JsZW1zIGFyaXNlIHN1YnN0YW50aWFsbHkgaW4gb3Ro ZXIgZG9tYWlucywgd2UKK3N0YW5kIHJlYWR5IHRvIGV4dGVuZCB0aGlzIHBy b3Zpc2lvbiB0byB0aG9zZSBkb21haW5zIGluIGZ1dHVyZSB2ZXJzaW9ucwor b2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVkb20g b2YgdXNlcnMuCisKKyAgRmluYWxseSwgZXZlcnkgcHJvZ3JhbSBpcyB0aHJl YXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUgcGF0ZW50cy4KK1N0YXRl cyBzaG91bGQgbm90IGFsbG93IHBhdGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxv cG1lbnQgYW5kIHVzZSBvZgorc29mdHdhcmUgb24gZ2VuZXJhbC1wdXJwb3Nl IGNvbXB1dGVycywgYnV0IGluIHRob3NlIHRoYXQgZG8sIHdlIHdpc2ggdG8K K2F2b2lkIHRoZSBzcGVjaWFsIGRhbmdlciB0aGF0IHBhdGVudHMgYXBwbGll ZCB0byBhIGZyZWUgcHJvZ3JhbSBjb3VsZAorbWFrZSBpdCBlZmZlY3RpdmVs eSBwcm9wcmlldGFyeS4gIFRvIHByZXZlbnQgdGhpcywgdGhlIEdQTCBhc3N1 cmVzIHRoYXQKK3BhdGVudHMgY2Fubm90IGJlIHVzZWQgdG8gcmVuZGVyIHRo ZSBwcm9ncmFtIG5vbi1mcmVlLgorCisgIFRoZSBwcmVjaXNlIHRlcm1zIGFu ZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kCitt b2RpZmljYXRpb24gZm9sbG93LgorCisgICAgICAgICAgICAgICAgICAgICAg IFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgMC4gRGVmaW5pdGlvbnMuCisK KyAgIlRoaXMgTGljZW5zZSIgcmVmZXJzIHRvIHZlcnNpb24gMyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisKKyAgIkNvcHlyaWdodCIg YWxzbyBtZWFucyBjb3B5cmlnaHQtbGlrZSBsYXdzIHRoYXQgYXBwbHkgdG8g b3RoZXIga2luZHMgb2YKK3dvcmtzLCBzdWNoIGFzIHNlbWljb25kdWN0b3Ig bWFza3MuCisKKyAgIlRoZSBQcm9ncmFtIiByZWZlcnMgdG8gYW55IGNvcHly aWdodGFibGUgd29yayBsaWNlbnNlZCB1bmRlciB0aGlzCitMaWNlbnNlLiAg RWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuICAiTGljZW5z ZWVzIiBhbmQKKyJyZWNpcGllbnRzIiBtYXkgYmUgaW5kaXZpZHVhbHMgb3Ig b3JnYW5pemF0aW9ucy4KKworICBUbyAibW9kaWZ5IiBhIHdvcmsgbWVhbnMg dG8gY29weSBmcm9tIG9yIGFkYXB0IGFsbCBvciBwYXJ0IG9mIHRoZSB3b3Jr CitpbiBhIGZhc2hpb24gcmVxdWlyaW5nIGNvcHlyaWdodCBwZXJtaXNzaW9u LCBvdGhlciB0aGFuIHRoZSBtYWtpbmcgb2YgYW4KK2V4YWN0IGNvcHkuICBU aGUgcmVzdWx0aW5nIHdvcmsgaXMgY2FsbGVkIGEgIm1vZGlmaWVkIHZlcnNp b24iIG9mIHRoZQorZWFybGllciB3b3JrIG9yIGEgd29yayAiYmFzZWQgb24i IHRoZSBlYXJsaWVyIHdvcmsuCisKKyAgQSAiY292ZXJlZCB3b3JrIiBtZWFu cyBlaXRoZXIgdGhlIHVubW9kaWZpZWQgUHJvZ3JhbSBvciBhIHdvcmsgYmFz ZWQKK29uIHRoZSBQcm9ncmFtLgorCisgIFRvICJwcm9wYWdhdGUiIGEgd29y ayBtZWFucyB0byBkbyBhbnl0aGluZyB3aXRoIGl0IHRoYXQsIHdpdGhvdXQK K3Blcm1pc3Npb24sIHdvdWxkIG1ha2UgeW91IGRpcmVjdGx5IG9yIHNlY29u ZGFyaWx5IGxpYWJsZSBmb3IKK2luZnJpbmdlbWVudCB1bmRlciBhcHBsaWNh YmxlIGNvcHlyaWdodCBsYXcsIGV4Y2VwdCBleGVjdXRpbmcgaXQgb24gYQor Y29tcHV0ZXIgb3IgbW9kaWZ5aW5nIGEgcHJpdmF0ZSBjb3B5LiAgUHJvcGFn YXRpb24gaW5jbHVkZXMgY29weWluZywKK2Rpc3RyaWJ1dGlvbiAod2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbiksIG1ha2luZyBhdmFpbGFibGUgdG8g dGhlCitwdWJsaWMsIGFuZCBpbiBzb21lIGNvdW50cmllcyBvdGhlciBhY3Rp dml0aWVzIGFzIHdlbGwuCisKKyAgVG8gImNvbnZleSIgYSB3b3JrIG1lYW5z IGFueSBraW5kIG9mIHByb3BhZ2F0aW9uIHRoYXQgZW5hYmxlcyBvdGhlcgor cGFydGllcyB0byBtYWtlIG9yIHJlY2VpdmUgY29waWVzLiAgTWVyZSBpbnRl cmFjdGlvbiB3aXRoIGEgdXNlciB0aHJvdWdoCithIGNvbXB1dGVyIG5ldHdv cmssIHdpdGggbm8gdHJhbnNmZXIgb2YgYSBjb3B5LCBpcyBub3QgY29udmV5 aW5nLgorCisgIEFuIGludGVyYWN0aXZlIHVzZXIgaW50ZXJmYWNlIGRpc3Bs YXlzICJBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzIgordG8gdGhlIGV4dGVu dCB0aGF0IGl0IGluY2x1ZGVzIGEgY29udmVuaWVudCBhbmQgcHJvbWluZW50 bHkgdmlzaWJsZQorZmVhdHVyZSB0aGF0ICgxKSBkaXNwbGF5cyBhbiBhcHBy b3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlLCBhbmQgKDIpCit0ZWxscyB0aGUg dXNlciB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGUgd29yayAo ZXhjZXB0IHRvIHRoZQorZXh0ZW50IHRoYXQgd2FycmFudGllcyBhcmUgcHJv dmlkZWQpLCB0aGF0IGxpY2Vuc2VlcyBtYXkgY29udmV5IHRoZQord29yayB1 bmRlciB0aGlzIExpY2Vuc2UsIGFuZCBob3cgdG8gdmlldyBhIGNvcHkgb2Yg dGhpcyBMaWNlbnNlLiAgSWYKK3RoZSBpbnRlcmZhY2UgcHJlc2VudHMgYSBs aXN0IG9mIHVzZXIgY29tbWFuZHMgb3Igb3B0aW9ucywgc3VjaCBhcyBhCitt ZW51LCBhIHByb21pbmVudCBpdGVtIGluIHRoZSBsaXN0IG1lZXRzIHRoaXMg Y3JpdGVyaW9uLgorCisgIDEuIFNvdXJjZSBDb2RlLgorCisgIFRoZSAic291 cmNlIGNvZGUiIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3Jt IG9mIHRoZSB3b3JrCitmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQu ICAiT2JqZWN0IGNvZGUiIG1lYW5zIGFueSBub24tc291cmNlCitmb3JtIG9m IGEgd29yay4KKworICBBICJTdGFuZGFyZCBJbnRlcmZhY2UiIG1lYW5zIGFu IGludGVyZmFjZSB0aGF0IGVpdGhlciBpcyBhbiBvZmZpY2lhbAorc3RhbmRh cmQgZGVmaW5lZCBieSBhIHJlY29nbml6ZWQgc3RhbmRhcmRzIGJvZHksIG9y LCBpbiB0aGUgY2FzZSBvZgoraW50ZXJmYWNlcyBzcGVjaWZpZWQgZm9yIGEg cGFydGljdWxhciBwcm9ncmFtbWluZyBsYW5ndWFnZSwgb25lIHRoYXQKK2lz IHdpZGVseSB1c2VkIGFtb25nIGRldmVsb3BlcnMgd29ya2luZyBpbiB0aGF0 IGxhbmd1YWdlLgorCisgIFRoZSAiU3lzdGVtIExpYnJhcmllcyIgb2YgYW4g ZXhlY3V0YWJsZSB3b3JrIGluY2x1ZGUgYW55dGhpbmcsIG90aGVyCit0aGFu IHRoZSB3b3JrIGFzIGEgd2hvbGUsIHRoYXQgKGEpIGlzIGluY2x1ZGVkIGlu IHRoZSBub3JtYWwgZm9ybSBvZgorcGFja2FnaW5nIGEgTWFqb3IgQ29tcG9u ZW50LCBidXQgd2hpY2ggaXMgbm90IHBhcnQgb2YgdGhhdCBNYWpvcgorQ29t cG9uZW50LCBhbmQgKGIpIHNlcnZlcyBvbmx5IHRvIGVuYWJsZSB1c2Ugb2Yg dGhlIHdvcmsgd2l0aCB0aGF0CitNYWpvciBDb21wb25lbnQsIG9yIHRvIGlt cGxlbWVudCBhIFN0YW5kYXJkIEludGVyZmFjZSBmb3Igd2hpY2ggYW4KK2lt cGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluIHNv dXJjZSBjb2RlIGZvcm0uICBBCisiTWFqb3IgQ29tcG9uZW50IiwgaW4gdGhp cyBjb250ZXh0LCBtZWFucyBhIG1ham9yIGVzc2VudGlhbCBjb21wb25lbnQK KyhrZXJuZWwsIHdpbmRvdyBzeXN0ZW0sIGFuZCBzbyBvbikgb2YgdGhlIHNw ZWNpZmljIG9wZXJhdGluZyBzeXN0ZW0KKyhpZiBhbnkpIG9uIHdoaWNoIHRo ZSBleGVjdXRhYmxlIHdvcmsgcnVucywgb3IgYSBjb21waWxlciB1c2VkIHRv Citwcm9kdWNlIHRoZSB3b3JrLCBvciBhbiBvYmplY3QgY29kZSBpbnRlcnBy ZXRlciB1c2VkIHRvIHJ1biBpdC4KKworICBUaGUgIkNvcnJlc3BvbmRpbmcg U291cmNlIiBmb3IgYSB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gbWVhbnMg YWxsCit0aGUgc291cmNlIGNvZGUgbmVlZGVkIHRvIGdlbmVyYXRlLCBpbnN0 YWxsLCBhbmQgKGZvciBhbiBleGVjdXRhYmxlCit3b3JrKSBydW4gdGhlIG9i amVjdCBjb2RlIGFuZCB0byBtb2RpZnkgdGhlIHdvcmssIGluY2x1ZGluZyBz Y3JpcHRzIHRvCitjb250cm9sIHRob3NlIGFjdGl2aXRpZXMuICBIb3dldmVy LCBpdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSB3b3JrJ3MKK1N5c3RlbSBMaWJy YXJpZXMsIG9yIGdlbmVyYWwtcHVycG9zZSB0b29scyBvciBnZW5lcmFsbHkg YXZhaWxhYmxlIGZyZWUKK3Byb2dyYW1zIHdoaWNoIGFyZSB1c2VkIHVubW9k aWZpZWQgaW4gcGVyZm9ybWluZyB0aG9zZSBhY3Rpdml0aWVzIGJ1dAord2hp Y2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSB3b3JrLiAgRm9yIGV4YW1wbGUsIENv cnJlc3BvbmRpbmcgU291cmNlCitpbmNsdWRlcyBpbnRlcmZhY2UgZGVmaW5p dGlvbiBmaWxlcyBhc3NvY2lhdGVkIHdpdGggc291cmNlIGZpbGVzIGZvcgor dGhlIHdvcmssIGFuZCB0aGUgc291cmNlIGNvZGUgZm9yIHNoYXJlZCBsaWJy YXJpZXMgYW5kIGR5bmFtaWNhbGx5CitsaW5rZWQgc3VicHJvZ3JhbXMgdGhh dCB0aGUgd29yayBpcyBzcGVjaWZpY2FsbHkgZGVzaWduZWQgdG8gcmVxdWly ZSwKK3N1Y2ggYXMgYnkgaW50aW1hdGUgZGF0YSBjb21tdW5pY2F0aW9uIG9y IGNvbnRyb2wgZmxvdyBiZXR3ZWVuIHRob3NlCitzdWJwcm9ncmFtcyBhbmQg b3RoZXIgcGFydHMgb2YgdGhlIHdvcmsuCisKKyAgVGhlIENvcnJlc3BvbmRp bmcgU291cmNlIG5lZWQgbm90IGluY2x1ZGUgYW55dGhpbmcgdGhhdCB1c2Vy cworY2FuIHJlZ2VuZXJhdGUgYXV0b21hdGljYWxseSBmcm9tIG90aGVyIHBh cnRzIG9mIHRoZSBDb3JyZXNwb25kaW5nCitTb3VyY2UuCisKKyAgVGhlIENv cnJlc3BvbmRpbmcgU291cmNlIGZvciBhIHdvcmsgaW4gc291cmNlIGNvZGUg Zm9ybSBpcyB0aGF0CitzYW1lIHdvcmsuCisKKyAgMi4gQmFzaWMgUGVybWlz c2lvbnMuCisKKyAgQWxsIHJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGlj ZW5zZSBhcmUgZ3JhbnRlZCBmb3IgdGhlIHRlcm0gb2YKK2NvcHlyaWdodCBv biB0aGUgUHJvZ3JhbSwgYW5kIGFyZSBpcnJldm9jYWJsZSBwcm92aWRlZCB0 aGUgc3RhdGVkCitjb25kaXRpb25zIGFyZSBtZXQuICBUaGlzIExpY2Vuc2Ug ZXhwbGljaXRseSBhZmZpcm1zIHlvdXIgdW5saW1pdGVkCitwZXJtaXNzaW9u IHRvIHJ1biB0aGUgdW5tb2RpZmllZCBQcm9ncmFtLiAgVGhlIG91dHB1dCBm cm9tIHJ1bm5pbmcgYQorY292ZXJlZCB3b3JrIGlzIGNvdmVyZWQgYnkgdGhp cyBMaWNlbnNlIG9ubHkgaWYgdGhlIG91dHB1dCwgZ2l2ZW4gaXRzCitjb250 ZW50LCBjb25zdGl0dXRlcyBhIGNvdmVyZWQgd29yay4gIFRoaXMgTGljZW5z ZSBhY2tub3dsZWRnZXMgeW91cgorcmlnaHRzIG9mIGZhaXIgdXNlIG9yIG90 aGVyIGVxdWl2YWxlbnQsIGFzIHByb3ZpZGVkIGJ5IGNvcHlyaWdodCBsYXcu CisKKyAgWW91IG1heSBtYWtlLCBydW4gYW5kIHByb3BhZ2F0ZSBjb3ZlcmVk IHdvcmtzIHRoYXQgeW91IGRvIG5vdAorY29udmV5LCB3aXRob3V0IGNvbmRp dGlvbnMgc28gbG9uZyBhcyB5b3VyIGxpY2Vuc2Ugb3RoZXJ3aXNlIHJlbWFp bnMKK2luIGZvcmNlLiAgWW91IG1heSBjb252ZXkgY292ZXJlZCB3b3JrcyB0 byBvdGhlcnMgZm9yIHRoZSBzb2xlIHB1cnBvc2UKK29mIGhhdmluZyB0aGVt IG1ha2UgbW9kaWZpY2F0aW9ucyBleGNsdXNpdmVseSBmb3IgeW91LCBvciBw cm92aWRlIHlvdQord2l0aCBmYWNpbGl0aWVzIGZvciBydW5uaW5nIHRob3Nl IHdvcmtzLCBwcm92aWRlZCB0aGF0IHlvdSBjb21wbHkgd2l0aAordGhlIHRl cm1zIG9mIHRoaXMgTGljZW5zZSBpbiBjb252ZXlpbmcgYWxsIG1hdGVyaWFs IGZvciB3aGljaCB5b3UgZG8KK25vdCBjb250cm9sIGNvcHlyaWdodC4gIFRo b3NlIHRodXMgbWFraW5nIG9yIHJ1bm5pbmcgdGhlIGNvdmVyZWQgd29ya3MK K2ZvciB5b3UgbXVzdCBkbyBzbyBleGNsdXNpdmVseSBvbiB5b3VyIGJlaGFs ZiwgdW5kZXIgeW91ciBkaXJlY3Rpb24KK2FuZCBjb250cm9sLCBvbiB0ZXJt cyB0aGF0IHByb2hpYml0IHRoZW0gZnJvbSBtYWtpbmcgYW55IGNvcGllcyBv ZgoreW91ciBjb3B5cmlnaHRlZCBtYXRlcmlhbCBvdXRzaWRlIHRoZWlyIHJl bGF0aW9uc2hpcCB3aXRoIHlvdS4KKworICBDb252ZXlpbmcgdW5kZXIgYW55 IG90aGVyIGNpcmN1bXN0YW5jZXMgaXMgcGVybWl0dGVkIHNvbGVseSB1bmRl cgordGhlIGNvbmRpdGlvbnMgc3RhdGVkIGJlbG93LiAgU3VibGljZW5zaW5n IGlzIG5vdCBhbGxvd2VkOyBzZWN0aW9uIDEwCittYWtlcyBpdCB1bm5lY2Vz c2FyeS4KKworICAzLiBQcm90ZWN0aW5nIFVzZXJzJyBMZWdhbCBSaWdodHMg RnJvbSBBbnRpLUNpcmN1bXZlbnRpb24gTGF3LgorCisgIE5vIGNvdmVyZWQg d29yayBzaGFsbCBiZSBkZWVtZWQgcGFydCBvZiBhbiBlZmZlY3RpdmUgdGVj aG5vbG9naWNhbAorbWVhc3VyZSB1bmRlciBhbnkgYXBwbGljYWJsZSBsYXcg ZnVsZmlsbGluZyBvYmxpZ2F0aW9ucyB1bmRlciBhcnRpY2xlCisxMSBvZiB0 aGUgV0lQTyBjb3B5cmlnaHQgdHJlYXR5IGFkb3B0ZWQgb24gMjAgRGVjZW1i ZXIgMTk5Niwgb3IKK3NpbWlsYXIgbGF3cyBwcm9oaWJpdGluZyBvciByZXN0 cmljdGluZyBjaXJjdW12ZW50aW9uIG9mIHN1Y2gKK21lYXN1cmVzLgorCisg IFdoZW4geW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgeW91IHdhaXZlIGFu eSBsZWdhbCBwb3dlciB0byBmb3JiaWQKK2NpcmN1bXZlbnRpb24gb2YgdGVj aG5vbG9naWNhbCBtZWFzdXJlcyB0byB0aGUgZXh0ZW50IHN1Y2ggY2lyY3Vt dmVudGlvbgoraXMgZWZmZWN0ZWQgYnkgZXhlcmNpc2luZyByaWdodHMgdW5k ZXIgdGhpcyBMaWNlbnNlIHdpdGggcmVzcGVjdCB0bwordGhlIGNvdmVyZWQg d29yaywgYW5kIHlvdSBkaXNjbGFpbSBhbnkgaW50ZW50aW9uIHRvIGxpbWl0 IG9wZXJhdGlvbiBvcgorbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGFzIGEg bWVhbnMgb2YgZW5mb3JjaW5nLCBhZ2FpbnN0IHRoZSB3b3JrJ3MKK3VzZXJz LCB5b3VyIG9yIHRoaXJkIHBhcnRpZXMnIGxlZ2FsIHJpZ2h0cyB0byBmb3Ji aWQgY2lyY3VtdmVudGlvbiBvZgordGVjaG5vbG9naWNhbCBtZWFzdXJlcy4K KworICA0LiBDb252ZXlpbmcgVmVyYmF0aW0gQ29waWVzLgorCisgIFlvdSBt YXkgY29udmV5IHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzIHNv dXJjZSBjb2RlIGFzIHlvdQorcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwg cHJvdmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBhbmQKK2FwcHJvcHJp YXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUgY29w eXJpZ2h0IG5vdGljZTsKK2tlZXAgaW50YWN0IGFsbCBub3RpY2VzIHN0YXRp bmcgdGhhdCB0aGlzIExpY2Vuc2UgYW5kIGFueQorbm9uLXBlcm1pc3NpdmUg dGVybXMgYWRkZWQgaW4gYWNjb3JkIHdpdGggc2VjdGlvbiA3IGFwcGx5IHRv IHRoZSBjb2RlOwora2VlcCBpbnRhY3QgYWxsIG5vdGljZXMgb2YgdGhlIGFi c2VuY2Ugb2YgYW55IHdhcnJhbnR5OyBhbmQgZ2l2ZSBhbGwKK3JlY2lwaWVu dHMgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBQcm9n cmFtLgorCisgIFlvdSBtYXkgY2hhcmdlIGFueSBwcmljZSBvciBubyBwcmlj ZSBmb3IgZWFjaCBjb3B5IHRoYXQgeW91IGNvbnZleSwKK2FuZCB5b3UgbWF5 IG9mZmVyIHN1cHBvcnQgb3Igd2FycmFudHkgcHJvdGVjdGlvbiBmb3IgYSBm ZWUuCisKKyAgNS4gQ29udmV5aW5nIE1vZGlmaWVkIFNvdXJjZSBWZXJzaW9u cy4KKworICBZb3UgbWF5IGNvbnZleSBhIHdvcmsgYmFzZWQgb24gdGhlIFBy b2dyYW0sIG9yIHRoZSBtb2RpZmljYXRpb25zIHRvCitwcm9kdWNlIGl0IGZy b20gdGhlIFByb2dyYW0sIGluIHRoZSBmb3JtIG9mIHNvdXJjZSBjb2RlIHVu ZGVyIHRoZQordGVybXMgb2Ygc2VjdGlvbiA0LCBwcm92aWRlZCB0aGF0IHlv dSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CisKKyAgICBh KSBUaGUgd29yayBtdXN0IGNhcnJ5IHByb21pbmVudCBub3RpY2VzIHN0YXRp bmcgdGhhdCB5b3UgbW9kaWZpZWQKKyAgICBpdCwgYW5kIGdpdmluZyBhIHJl bGV2YW50IGRhdGUuCisKKyAgICBiKSBUaGUgd29yayBtdXN0IGNhcnJ5IHBy b21pbmVudCBub3RpY2VzIHN0YXRpbmcgdGhhdCBpdCBpcworICAgIHJlbGVh c2VkIHVuZGVyIHRoaXMgTGljZW5zZSBhbmQgYW55IGNvbmRpdGlvbnMgYWRk ZWQgdW5kZXIgc2VjdGlvbgorICAgIDcuICBUaGlzIHJlcXVpcmVtZW50IG1v ZGlmaWVzIHRoZSByZXF1aXJlbWVudCBpbiBzZWN0aW9uIDQgdG8KKyAgICAi a2VlcCBpbnRhY3QgYWxsIG5vdGljZXMiLgorCisgICAgYykgWW91IG11c3Qg bGljZW5zZSB0aGUgZW50aXJlIHdvcmssIGFzIGEgd2hvbGUsIHVuZGVyIHRo aXMKKyAgICBMaWNlbnNlIHRvIGFueW9uZSB3aG8gY29tZXMgaW50byBwb3Nz ZXNzaW9uIG9mIGEgY29weS4gIFRoaXMKKyAgICBMaWNlbnNlIHdpbGwgdGhl cmVmb3JlIGFwcGx5LCBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNlY3Rp b24gNworICAgIGFkZGl0aW9uYWwgdGVybXMsIHRvIHRoZSB3aG9sZSBvZiB0 aGUgd29yaywgYW5kIGFsbCBpdHMgcGFydHMsCisgICAgcmVnYXJkbGVzcyBv ZiBob3cgdGhleSBhcmUgcGFja2FnZWQuICBUaGlzIExpY2Vuc2UgZ2l2ZXMg bm8KKyAgICBwZXJtaXNzaW9uIHRvIGxpY2Vuc2UgdGhlIHdvcmsgaW4gYW55 IG90aGVyIHdheSwgYnV0IGl0IGRvZXMgbm90CisgICAgaW52YWxpZGF0ZSBz dWNoIHBlcm1pc3Npb24gaWYgeW91IGhhdmUgc2VwYXJhdGVseSByZWNlaXZl ZCBpdC4KKworICAgIGQpIElmIHRoZSB3b3JrIGhhcyBpbnRlcmFjdGl2ZSB1 c2VyIGludGVyZmFjZXMsIGVhY2ggbXVzdCBkaXNwbGF5CisgICAgQXBwcm9w cmlhdGUgTGVnYWwgTm90aWNlczsgaG93ZXZlciwgaWYgdGhlIFByb2dyYW0g aGFzIGludGVyYWN0aXZlCisgICAgaW50ZXJmYWNlcyB0aGF0IGRvIG5vdCBk aXNwbGF5IEFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXMsIHlvdXIKKyAgICB3 b3JrIG5lZWQgbm90IG1ha2UgdGhlbSBkbyBzby4KKworICBBIGNvbXBpbGF0 aW9uIG9mIGEgY292ZXJlZCB3b3JrIHdpdGggb3RoZXIgc2VwYXJhdGUgYW5k IGluZGVwZW5kZW50Cit3b3Jrcywgd2hpY2ggYXJlIG5vdCBieSB0aGVpciBu YXR1cmUgZXh0ZW5zaW9ucyBvZiB0aGUgY292ZXJlZCB3b3JrLAorYW5kIHdo aWNoIGFyZSBub3QgY29tYmluZWQgd2l0aCBpdCBzdWNoIGFzIHRvIGZvcm0g YSBsYXJnZXIgcHJvZ3JhbSwKK2luIG9yIG9uIGEgdm9sdW1lIG9mIGEgc3Rv cmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtLCBpcyBjYWxsZWQgYW4KKyJh Z2dyZWdhdGUiIGlmIHRoZSBjb21waWxhdGlvbiBhbmQgaXRzIHJlc3VsdGlu ZyBjb3B5cmlnaHQgYXJlIG5vdAordXNlZCB0byBsaW1pdCB0aGUgYWNjZXNz IG9yIGxlZ2FsIHJpZ2h0cyBvZiB0aGUgY29tcGlsYXRpb24ncyB1c2Vycwor YmV5b25kIHdoYXQgdGhlIGluZGl2aWR1YWwgd29ya3MgcGVybWl0LiAgSW5j bHVzaW9uIG9mIGEgY292ZXJlZCB3b3JrCitpbiBhbiBhZ2dyZWdhdGUgZG9l cyBub3QgY2F1c2UgdGhpcyBMaWNlbnNlIHRvIGFwcGx5IHRvIHRoZSBvdGhl cgorcGFydHMgb2YgdGhlIGFnZ3JlZ2F0ZS4KKworICA2LiBDb252ZXlpbmcg Tm9uLVNvdXJjZSBGb3Jtcy4KKworICBZb3UgbWF5IGNvbnZleSBhIGNvdmVy ZWQgd29yayBpbiBvYmplY3QgY29kZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcwor b2Ygc2VjdGlvbnMgNCBhbmQgNSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBj b252ZXkgdGhlCittYWNoaW5lLXJlYWRhYmxlIENvcnJlc3BvbmRpbmcgU291 cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsCitpbiBvbmUg b2YgdGhlc2Ugd2F5czoKKworICAgIGEpIENvbnZleSB0aGUgb2JqZWN0IGNv ZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKKyAg ICAoaW5jbHVkaW5nIGEgcGh5c2ljYWwgZGlzdHJpYnV0aW9uIG1lZGl1bSks IGFjY29tcGFuaWVkIGJ5IHRoZQorICAgIENvcnJlc3BvbmRpbmcgU291cmNl IGZpeGVkIG9uIGEgZHVyYWJsZSBwaHlzaWNhbCBtZWRpdW0KKyAgICBjdXN0 b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZS4KKworICAg IGIpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGlu LCBhIHBoeXNpY2FsIHByb2R1Y3QKKyAgICAoaW5jbHVkaW5nIGEgcGh5c2lj YWwgZGlzdHJpYnV0aW9uIG1lZGl1bSksIGFjY29tcGFuaWVkIGJ5IGEKKyAg ICB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQgbGVhc3QgdGhyZWUgeWVh cnMgYW5kIHZhbGlkIGZvciBhcworICAgIGxvbmcgYXMgeW91IG9mZmVyIHNw YXJlIHBhcnRzIG9yIGN1c3RvbWVyIHN1cHBvcnQgZm9yIHRoYXQgcHJvZHVj dAorICAgIG1vZGVsLCB0byBnaXZlIGFueW9uZSB3aG8gcG9zc2Vzc2VzIHRo ZSBvYmplY3QgY29kZSBlaXRoZXIgKDEpIGEKKyAgICBjb3B5IG9mIHRoZSBD b3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYWxsIHRoZSBzb2Z0d2FyZSBpbiB0 aGUKKyAgICBwcm9kdWN0IHRoYXQgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vu c2UsIG9uIGEgZHVyYWJsZSBwaHlzaWNhbAorICAgIG1lZGl1bSBjdXN0b21h cmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZSwgZm9yIGEgcHJp Y2Ugbm8KKyAgICBtb3JlIHRoYW4geW91ciByZWFzb25hYmxlIGNvc3Qgb2Yg cGh5c2ljYWxseSBwZXJmb3JtaW5nIHRoaXMKKyAgICBjb252ZXlpbmcgb2Yg c291cmNlLCBvciAoMikgYWNjZXNzIHRvIGNvcHkgdGhlCisgICAgQ29ycmVz cG9uZGluZyBTb3VyY2UgZnJvbSBhIG5ldHdvcmsgc2VydmVyIGF0IG5vIGNo YXJnZS4KKworICAgIGMpIENvbnZleSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0 aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlCisgICAgd3JpdHRl biBvZmZlciB0byBwcm92aWRlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZS4g IFRoaXMKKyAgICBhbHRlcm5hdGl2ZSBpcyBhbGxvd2VkIG9ubHkgb2NjYXNp b25hbGx5IGFuZCBub25jb21tZXJjaWFsbHksIGFuZAorICAgIG9ubHkgaWYg eW91IHJlY2VpdmVkIHRoZSBvYmplY3QgY29kZSB3aXRoIHN1Y2ggYW4gb2Zm ZXIsIGluIGFjY29yZAorICAgIHdpdGggc3Vic2VjdGlvbiA2Yi4KKworICAg IGQpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgYnkgb2ZmZXJpbmcgYWNjZXNz IGZyb20gYSBkZXNpZ25hdGVkCisgICAgcGxhY2UgKGdyYXRpcyBvciBmb3Ig YSBjaGFyZ2UpLCBhbmQgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8gdGhl CisgICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgaW4gdGhlIHNhbWUgd2F5IHRo cm91Z2ggdGhlIHNhbWUgcGxhY2UgYXQgbm8KKyAgICBmdXJ0aGVyIGNoYXJn ZS4gIFlvdSBuZWVkIG5vdCByZXF1aXJlIHJlY2lwaWVudHMgdG8gY29weSB0 aGUKKyAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBhbG9uZyB3aXRoIHRoZSBv YmplY3QgY29kZS4gIElmIHRoZSBwbGFjZSB0bworICAgIGNvcHkgdGhlIG9i amVjdCBjb2RlIGlzIGEgbmV0d29yayBzZXJ2ZXIsIHRoZSBDb3JyZXNwb25k aW5nIFNvdXJjZQorICAgIG1heSBiZSBvbiBhIGRpZmZlcmVudCBzZXJ2ZXIg KG9wZXJhdGVkIGJ5IHlvdSBvciBhIHRoaXJkIHBhcnR5KQorICAgIHRoYXQg c3VwcG9ydHMgZXF1aXZhbGVudCBjb3B5aW5nIGZhY2lsaXRpZXMsIHByb3Zp ZGVkIHlvdSBtYWludGFpbgorICAgIGNsZWFyIGRpcmVjdGlvbnMgbmV4dCB0 byB0aGUgb2JqZWN0IGNvZGUgc2F5aW5nIHdoZXJlIHRvIGZpbmQgdGhlCisg ICAgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBSZWdhcmRsZXNzIG9mIHdoYXQg c2VydmVyIGhvc3RzIHRoZQorICAgIENvcnJlc3BvbmRpbmcgU291cmNlLCB5 b3UgcmVtYWluIG9ibGlnYXRlZCB0byBlbnN1cmUgdGhhdCBpdCBpcworICAg IGF2YWlsYWJsZSBmb3IgYXMgbG9uZyBhcyBuZWVkZWQgdG8gc2F0aXNmeSB0 aGVzZSByZXF1aXJlbWVudHMuCisKKyAgICBlKSBDb252ZXkgdGhlIG9iamVj dCBjb2RlIHVzaW5nIHBlZXItdG8tcGVlciB0cmFuc21pc3Npb24sIHByb3Zp ZGVkCisgICAgeW91IGluZm9ybSBvdGhlciBwZWVycyB3aGVyZSB0aGUgb2Jq ZWN0IGNvZGUgYW5kIENvcnJlc3BvbmRpbmcKKyAgICBTb3VyY2Ugb2YgdGhl IHdvcmsgYXJlIGJlaW5nIG9mZmVyZWQgdG8gdGhlIGdlbmVyYWwgcHVibGlj IGF0IG5vCisgICAgY2hhcmdlIHVuZGVyIHN1YnNlY3Rpb24gNmQuCisKKyAg QSBzZXBhcmFibGUgcG9ydGlvbiBvZiB0aGUgb2JqZWN0IGNvZGUsIHdob3Nl IHNvdXJjZSBjb2RlIGlzIGV4Y2x1ZGVkCitmcm9tIHRoZSBDb3JyZXNwb25k aW5nIFNvdXJjZSBhcyBhIFN5c3RlbSBMaWJyYXJ5LCBuZWVkIG5vdCBiZQor aW5jbHVkZWQgaW4gY29udmV5aW5nIHRoZSBvYmplY3QgY29kZSB3b3JrLgor CisgIEEgIlVzZXIgUHJvZHVjdCIgaXMgZWl0aGVyICgxKSBhICJjb25zdW1l ciBwcm9kdWN0Iiwgd2hpY2ggbWVhbnMgYW55Cit0YW5naWJsZSBwZXJzb25h bCBwcm9wZXJ0eSB3aGljaCBpcyBub3JtYWxseSB1c2VkIGZvciBwZXJzb25h bCwgZmFtaWx5LAorb3IgaG91c2Vob2xkIHB1cnBvc2VzLCBvciAoMikgYW55 dGhpbmcgZGVzaWduZWQgb3Igc29sZCBmb3IgaW5jb3Jwb3JhdGlvbgoraW50 byBhIGR3ZWxsaW5nLiAgSW4gZGV0ZXJtaW5pbmcgd2hldGhlciBhIHByb2R1 Y3QgaXMgYSBjb25zdW1lciBwcm9kdWN0LAorZG91YnRmdWwgY2FzZXMgc2hh bGwgYmUgcmVzb2x2ZWQgaW4gZmF2b3Igb2YgY292ZXJhZ2UuICBGb3IgYSBw YXJ0aWN1bGFyCitwcm9kdWN0IHJlY2VpdmVkIGJ5IGEgcGFydGljdWxhciB1 c2VyLCAibm9ybWFsbHkgdXNlZCIgcmVmZXJzIHRvIGEKK3R5cGljYWwgb3Ig Y29tbW9uIHVzZSBvZiB0aGF0IGNsYXNzIG9mIHByb2R1Y3QsIHJlZ2FyZGxl c3Mgb2YgdGhlIHN0YXR1cworb2YgdGhlIHBhcnRpY3VsYXIgdXNlciBvciBv ZiB0aGUgd2F5IGluIHdoaWNoIHRoZSBwYXJ0aWN1bGFyIHVzZXIKK2FjdHVh bGx5IHVzZXMsIG9yIGV4cGVjdHMgb3IgaXMgZXhwZWN0ZWQgdG8gdXNlLCB0 aGUgcHJvZHVjdC4gIEEgcHJvZHVjdAoraXMgYSBjb25zdW1lciBwcm9kdWN0 IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgcHJvZHVjdCBoYXMgc3Vic3Rh bnRpYWwKK2NvbW1lcmNpYWwsIGluZHVzdHJpYWwgb3Igbm9uLWNvbnN1bWVy IHVzZXMsIHVubGVzcyBzdWNoIHVzZXMgcmVwcmVzZW50Cit0aGUgb25seSBz aWduaWZpY2FudCBtb2RlIG9mIHVzZSBvZiB0aGUgcHJvZHVjdC4KKworICAi SW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIiBmb3IgYSBVc2VyIFByb2R1Y3Qg bWVhbnMgYW55IG1ldGhvZHMsCitwcm9jZWR1cmVzLCBhdXRob3JpemF0aW9u IGtleXMsIG9yIG90aGVyIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGluc3Rh bGwKK2FuZCBleGVjdXRlIG1vZGlmaWVkIHZlcnNpb25zIG9mIGEgY292ZXJl ZCB3b3JrIGluIHRoYXQgVXNlciBQcm9kdWN0IGZyb20KK2EgbW9kaWZpZWQg dmVyc2lvbiBvZiBpdHMgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBUaGUgaW5m b3JtYXRpb24gbXVzdAorc3VmZmljZSB0byBlbnN1cmUgdGhhdCB0aGUgY29u dGludWVkIGZ1bmN0aW9uaW5nIG9mIHRoZSBtb2RpZmllZCBvYmplY3QKK2Nv ZGUgaXMgaW4gbm8gY2FzZSBwcmV2ZW50ZWQgb3IgaW50ZXJmZXJlZCB3aXRo IHNvbGVseSBiZWNhdXNlCittb2RpZmljYXRpb24gaGFzIGJlZW4gbWFkZS4K KworICBJZiB5b3UgY29udmV5IGFuIG9iamVjdCBjb2RlIHdvcmsgdW5kZXIg dGhpcyBzZWN0aW9uIGluLCBvciB3aXRoLCBvcgorc3BlY2lmaWNhbGx5IGZv ciB1c2UgaW4sIGEgVXNlciBQcm9kdWN0LCBhbmQgdGhlIGNvbnZleWluZyBv Y2N1cnMgYXMKK3BhcnQgb2YgYSB0cmFuc2FjdGlvbiBpbiB3aGljaCB0aGUg cmlnaHQgb2YgcG9zc2Vzc2lvbiBhbmQgdXNlIG9mIHRoZQorVXNlciBQcm9k dWN0IGlzIHRyYW5zZmVycmVkIHRvIHRoZSByZWNpcGllbnQgaW4gcGVycGV0 dWl0eSBvciBmb3IgYQorZml4ZWQgdGVybSAocmVnYXJkbGVzcyBvZiBob3cg dGhlIHRyYW5zYWN0aW9uIGlzIGNoYXJhY3Rlcml6ZWQpLCB0aGUKK0NvcnJl c3BvbmRpbmcgU291cmNlIGNvbnZleWVkIHVuZGVyIHRoaXMgc2VjdGlvbiBt dXN0IGJlIGFjY29tcGFuaWVkCitieSB0aGUgSW5zdGFsbGF0aW9uIEluZm9y bWF0aW9uLiAgQnV0IHRoaXMgcmVxdWlyZW1lbnQgZG9lcyBub3QgYXBwbHkK K2lmIG5laXRoZXIgeW91IG5vciBhbnkgdGhpcmQgcGFydHkgcmV0YWlucyB0 aGUgYWJpbGl0eSB0byBpbnN0YWxsCittb2RpZmllZCBvYmplY3QgY29kZSBv biB0aGUgVXNlciBQcm9kdWN0IChmb3IgZXhhbXBsZSwgdGhlIHdvcmsgaGFz CitiZWVuIGluc3RhbGxlZCBpbiBST00pLgorCisgIFRoZSByZXF1aXJlbWVu dCB0byBwcm92aWRlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBkb2VzIG5v dCBpbmNsdWRlIGEKK3JlcXVpcmVtZW50IHRvIGNvbnRpbnVlIHRvIHByb3Zp ZGUgc3VwcG9ydCBzZXJ2aWNlLCB3YXJyYW50eSwgb3IgdXBkYXRlcworZm9y IGEgd29yayB0aGF0IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZCBi eSB0aGUgcmVjaXBpZW50LCBvciBmb3IKK3RoZSBVc2VyIFByb2R1Y3QgaW4g d2hpY2ggaXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkLiAgQWNj ZXNzIHRvIGEKK25ldHdvcmsgbWF5IGJlIGRlbmllZCB3aGVuIHRoZSBtb2Rp ZmljYXRpb24gaXRzZWxmIG1hdGVyaWFsbHkgYW5kCithZHZlcnNlbHkgYWZm ZWN0cyB0aGUgb3BlcmF0aW9uIG9mIHRoZSBuZXR3b3JrIG9yIHZpb2xhdGVz IHRoZSBydWxlcyBhbmQKK3Byb3RvY29scyBmb3IgY29tbXVuaWNhdGlvbiBh Y3Jvc3MgdGhlIG5ldHdvcmsuCisKKyAgQ29ycmVzcG9uZGluZyBTb3VyY2Ug Y29udmV5ZWQsIGFuZCBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gcHJvdmlk ZWQsCitpbiBhY2NvcmQgd2l0aCB0aGlzIHNlY3Rpb24gbXVzdCBiZSBpbiBh IGZvcm1hdCB0aGF0IGlzIHB1YmxpY2x5Citkb2N1bWVudGVkIChhbmQgd2l0 aCBhbiBpbXBsZW1lbnRhdGlvbiBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBp bgorc291cmNlIGNvZGUgZm9ybSksIGFuZCBtdXN0IHJlcXVpcmUgbm8gc3Bl Y2lhbCBwYXNzd29yZCBvciBrZXkgZm9yCit1bnBhY2tpbmcsIHJlYWRpbmcg b3IgY29weWluZy4KKworICA3LiBBZGRpdGlvbmFsIFRlcm1zLgorCisgICJB ZGRpdGlvbmFsIHBlcm1pc3Npb25zIiBhcmUgdGVybXMgdGhhdCBzdXBwbGVt ZW50IHRoZSB0ZXJtcyBvZiB0aGlzCitMaWNlbnNlIGJ5IG1ha2luZyBleGNl cHRpb25zIGZyb20gb25lIG9yIG1vcmUgb2YgaXRzIGNvbmRpdGlvbnMuCitB ZGRpdGlvbmFsIHBlcm1pc3Npb25zIHRoYXQgYXJlIGFwcGxpY2FibGUgdG8g dGhlIGVudGlyZSBQcm9ncmFtIHNoYWxsCitiZSB0cmVhdGVkIGFzIHRob3Vn aCB0aGV5IHdlcmUgaW5jbHVkZWQgaW4gdGhpcyBMaWNlbnNlLCB0byB0aGUg ZXh0ZW50Cit0aGF0IHRoZXkgYXJlIHZhbGlkIHVuZGVyIGFwcGxpY2FibGUg bGF3LiAgSWYgYWRkaXRpb25hbCBwZXJtaXNzaW9ucworYXBwbHkgb25seSB0 byBwYXJ0IG9mIHRoZSBQcm9ncmFtLCB0aGF0IHBhcnQgbWF5IGJlIHVzZWQg c2VwYXJhdGVseQordW5kZXIgdGhvc2UgcGVybWlzc2lvbnMsIGJ1dCB0aGUg ZW50aXJlIFByb2dyYW0gcmVtYWlucyBnb3Zlcm5lZCBieQordGhpcyBMaWNl bnNlIHdpdGhvdXQgcmVnYXJkIHRvIHRoZSBhZGRpdGlvbmFsIHBlcm1pc3Np b25zLgorCisgIFdoZW4geW91IGNvbnZleSBhIGNvcHkgb2YgYSBjb3ZlcmVk IHdvcmssIHlvdSBtYXkgYXQgeW91ciBvcHRpb24KK3JlbW92ZSBhbnkgYWRk aXRpb25hbCBwZXJtaXNzaW9ucyBmcm9tIHRoYXQgY29weSwgb3IgZnJvbSBh bnkgcGFydCBvZgoraXQuICAoQWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkg YmUgd3JpdHRlbiB0byByZXF1aXJlIHRoZWlyIG93bgorcmVtb3ZhbCBpbiBj ZXJ0YWluIGNhc2VzIHdoZW4geW91IG1vZGlmeSB0aGUgd29yay4pICBZb3Ug bWF5IHBsYWNlCithZGRpdGlvbmFsIHBlcm1pc3Npb25zIG9uIG1hdGVyaWFs LCBhZGRlZCBieSB5b3UgdG8gYSBjb3ZlcmVkIHdvcmssCitmb3Igd2hpY2gg eW91IGhhdmUgb3IgY2FuIGdpdmUgYXBwcm9wcmlhdGUgY29weXJpZ2h0IHBl cm1pc3Npb24uCisKKyAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92 aXNpb24gb2YgdGhpcyBMaWNlbnNlLCBmb3IgbWF0ZXJpYWwgeW91CithZGQg dG8gYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgKGlmIGF1dGhvcml6ZWQgYnkg dGhlIGNvcHlyaWdodCBob2xkZXJzIG9mCit0aGF0IG1hdGVyaWFsKSBzdXBw bGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2Ugd2l0aCB0ZXJtczoK KworICAgIGEpIERpc2NsYWltaW5nIHdhcnJhbnR5IG9yIGxpbWl0aW5nIGxp YWJpbGl0eSBkaWZmZXJlbnRseSBmcm9tIHRoZQorICAgIHRlcm1zIG9mIHNl Y3Rpb25zIDE1IGFuZCAxNiBvZiB0aGlzIExpY2Vuc2U7IG9yCisKKyAgICBi KSBSZXF1aXJpbmcgcHJlc2VydmF0aW9uIG9mIHNwZWNpZmllZCByZWFzb25h YmxlIGxlZ2FsIG5vdGljZXMgb3IKKyAgICBhdXRob3IgYXR0cmlidXRpb25z IGluIHRoYXQgbWF0ZXJpYWwgb3IgaW4gdGhlIEFwcHJvcHJpYXRlIExlZ2Fs CisgICAgTm90aWNlcyBkaXNwbGF5ZWQgYnkgd29ya3MgY29udGFpbmluZyBp dDsgb3IKKworICAgIGMpIFByb2hpYml0aW5nIG1pc3JlcHJlc2VudGF0aW9u IG9mIHRoZSBvcmlnaW4gb2YgdGhhdCBtYXRlcmlhbCwgb3IKKyAgICByZXF1 aXJpbmcgdGhhdCBtb2RpZmllZCB2ZXJzaW9ucyBvZiBzdWNoIG1hdGVyaWFs IGJlIG1hcmtlZCBpbgorICAgIHJlYXNvbmFibGUgd2F5cyBhcyBkaWZmZXJl bnQgZnJvbSB0aGUgb3JpZ2luYWwgdmVyc2lvbjsgb3IKKworICAgIGQpIExp bWl0aW5nIHRoZSB1c2UgZm9yIHB1YmxpY2l0eSBwdXJwb3NlcyBvZiBuYW1l cyBvZiBsaWNlbnNvcnMgb3IKKyAgICBhdXRob3JzIG9mIHRoZSBtYXRlcmlh bDsgb3IKKworICAgIGUpIERlY2xpbmluZyB0byBncmFudCByaWdodHMgdW5k ZXIgdHJhZGVtYXJrIGxhdyBmb3IgdXNlIG9mIHNvbWUKKyAgICB0cmFkZSBu YW1lcywgdHJhZGVtYXJrcywgb3Igc2VydmljZSBtYXJrczsgb3IKKworICAg IGYpIFJlcXVpcmluZyBpbmRlbW5pZmljYXRpb24gb2YgbGljZW5zb3JzIGFu ZCBhdXRob3JzIG9mIHRoYXQKKyAgICBtYXRlcmlhbCBieSBhbnlvbmUgd2hv IGNvbnZleXMgdGhlIG1hdGVyaWFsIChvciBtb2RpZmllZCB2ZXJzaW9ucyBv ZgorICAgIGl0KSB3aXRoIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIG9mIGxp YWJpbGl0eSB0byB0aGUgcmVjaXBpZW50LCBmb3IKKyAgICBhbnkgbGlhYmls aXR5IHRoYXQgdGhlc2UgY29udHJhY3R1YWwgYXNzdW1wdGlvbnMgZGlyZWN0 bHkgaW1wb3NlIG9uCisgICAgdGhvc2UgbGljZW5zb3JzIGFuZCBhdXRob3Jz LgorCisgIEFsbCBvdGhlciBub24tcGVybWlzc2l2ZSBhZGRpdGlvbmFsIHRl cm1zIGFyZSBjb25zaWRlcmVkICJmdXJ0aGVyCityZXN0cmljdGlvbnMiIHdp dGhpbiB0aGUgbWVhbmluZyBvZiBzZWN0aW9uIDEwLiAgSWYgdGhlIFByb2dy YW0gYXMgeW91CityZWNlaXZlZCBpdCwgb3IgYW55IHBhcnQgb2YgaXQsIGNv bnRhaW5zIGEgbm90aWNlIHN0YXRpbmcgdGhhdCBpdCBpcworZ292ZXJuZWQg YnkgdGhpcyBMaWNlbnNlIGFsb25nIHdpdGggYSB0ZXJtIHRoYXQgaXMgYSBm dXJ0aGVyCityZXN0cmljdGlvbiwgeW91IG1heSByZW1vdmUgdGhhdCB0ZXJt LiAgSWYgYSBsaWNlbnNlIGRvY3VtZW50IGNvbnRhaW5zCithIGZ1cnRoZXIg cmVzdHJpY3Rpb24gYnV0IHBlcm1pdHMgcmVsaWNlbnNpbmcgb3IgY29udmV5 aW5nIHVuZGVyIHRoaXMKK0xpY2Vuc2UsIHlvdSBtYXkgYWRkIHRvIGEgY292 ZXJlZCB3b3JrIG1hdGVyaWFsIGdvdmVybmVkIGJ5IHRoZSB0ZXJtcworb2Yg dGhhdCBsaWNlbnNlIGRvY3VtZW50LCBwcm92aWRlZCB0aGF0IHRoZSBmdXJ0 aGVyIHJlc3RyaWN0aW9uIGRvZXMKK25vdCBzdXJ2aXZlIHN1Y2ggcmVsaWNl bnNpbmcgb3IgY29udmV5aW5nLgorCisgIElmIHlvdSBhZGQgdGVybXMgdG8g YSBjb3ZlcmVkIHdvcmsgaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uLCB5 b3UKK211c3QgcGxhY2UsIGluIHRoZSByZWxldmFudCBzb3VyY2UgZmlsZXMs IGEgc3RhdGVtZW50IG9mIHRoZQorYWRkaXRpb25hbCB0ZXJtcyB0aGF0IGFw cGx5IHRvIHRob3NlIGZpbGVzLCBvciBhIG5vdGljZSBpbmRpY2F0aW5nCit3 aGVyZSB0byBmaW5kIHRoZSBhcHBsaWNhYmxlIHRlcm1zLgorCisgIEFkZGl0 aW9uYWwgdGVybXMsIHBlcm1pc3NpdmUgb3Igbm9uLXBlcm1pc3NpdmUsIG1h eSBiZSBzdGF0ZWQgaW4gdGhlCitmb3JtIG9mIGEgc2VwYXJhdGVseSB3cml0 dGVuIGxpY2Vuc2UsIG9yIHN0YXRlZCBhcyBleGNlcHRpb25zOwordGhlIGFi b3ZlIHJlcXVpcmVtZW50cyBhcHBseSBlaXRoZXIgd2F5LgorCisgIDguIFRl cm1pbmF0aW9uLgorCisgIFlvdSBtYXkgbm90IHByb3BhZ2F0ZSBvciBtb2Rp ZnkgYSBjb3ZlcmVkIHdvcmsgZXhjZXB0IGFzIGV4cHJlc3NseQorcHJvdmlk ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQgb3RoZXJ3aXNl IHRvIHByb3BhZ2F0ZSBvcgorbW9kaWZ5IGl0IGlzIHZvaWQsIGFuZCB3aWxs IGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyCit0 aGlzIExpY2Vuc2UgKGluY2x1ZGluZyBhbnkgcGF0ZW50IGxpY2Vuc2VzIGdy YW50ZWQgdW5kZXIgdGhlIHRoaXJkCitwYXJhZ3JhcGggb2Ygc2VjdGlvbiAx MSkuCisKKyAgSG93ZXZlciwgaWYgeW91IGNlYXNlIGFsbCB2aW9sYXRpb24g b2YgdGhpcyBMaWNlbnNlLCB0aGVuIHlvdXIKK2xpY2Vuc2UgZnJvbSBhIHBh cnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBpcyByZWluc3RhdGVkIChhKQor cHJvdmlzaW9uYWxseSwgdW5sZXNzIGFuZCB1bnRpbCB0aGUgY29weXJpZ2h0 IGhvbGRlciBleHBsaWNpdGx5IGFuZAorZmluYWxseSB0ZXJtaW5hdGVzIHlv dXIgbGljZW5zZSwgYW5kIChiKSBwZXJtYW5lbnRseSwgaWYgdGhlIGNvcHly aWdodAoraG9sZGVyIGZhaWxzIHRvIG5vdGlmeSB5b3Ugb2YgdGhlIHZpb2xh dGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMKK3ByaW9yIHRvIDYwIGRh eXMgYWZ0ZXIgdGhlIGNlc3NhdGlvbi4KKworICBNb3Jlb3ZlciwgeW91ciBs aWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMK K3JlaW5zdGF0ZWQgcGVybWFuZW50bHkgaWYgdGhlIGNvcHlyaWdodCBob2xk ZXIgbm90aWZpZXMgeW91IG9mIHRoZQordmlvbGF0aW9uIGJ5IHNvbWUgcmVh c29uYWJsZSBtZWFucywgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB5b3UgaGF2 ZQorcmVjZWl2ZWQgbm90aWNlIG9mIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vu c2UgKGZvciBhbnkgd29yaykgZnJvbSB0aGF0Citjb3B5cmlnaHQgaG9sZGVy LCBhbmQgeW91IGN1cmUgdGhlIHZpb2xhdGlvbiBwcmlvciB0byAzMCBkYXlz IGFmdGVyCit5b3VyIHJlY2VpcHQgb2YgdGhlIG5vdGljZS4KKworICBUZXJt aW5hdGlvbiBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIHNlY3Rpb24gZG9l cyBub3QgdGVybWluYXRlIHRoZQorbGljZW5zZXMgb2YgcGFydGllcyB3aG8g aGF2ZSByZWNlaXZlZCBjb3BpZXMgb3IgcmlnaHRzIGZyb20geW91IHVuZGVy Cit0aGlzIExpY2Vuc2UuICBJZiB5b3VyIHJpZ2h0cyBoYXZlIGJlZW4gdGVy bWluYXRlZCBhbmQgbm90IHBlcm1hbmVudGx5CityZWluc3RhdGVkLCB5b3Ug ZG8gbm90IHF1YWxpZnkgdG8gcmVjZWl2ZSBuZXcgbGljZW5zZXMgZm9yIHRo ZSBzYW1lCittYXRlcmlhbCB1bmRlciBzZWN0aW9uIDEwLgorCisgIDkuIEFj Y2VwdGFuY2UgTm90IFJlcXVpcmVkIGZvciBIYXZpbmcgQ29waWVzLgorCisg IFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2Ug aW4gb3JkZXIgdG8gcmVjZWl2ZSBvcgorcnVuIGEgY29weSBvZiB0aGUgUHJv Z3JhbS4gIEFuY2lsbGFyeSBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQgd29y aworb2NjdXJyaW5nIHNvbGVseSBhcyBhIGNvbnNlcXVlbmNlIG9mIHVzaW5n IHBlZXItdG8tcGVlciB0cmFuc21pc3Npb24KK3RvIHJlY2VpdmUgYSBjb3B5 IGxpa2V3aXNlIGRvZXMgbm90IHJlcXVpcmUgYWNjZXB0YW5jZS4gIEhvd2V2 ZXIsCitub3RoaW5nIG90aGVyIHRoYW4gdGhpcyBMaWNlbnNlIGdyYW50cyB5 b3UgcGVybWlzc2lvbiB0byBwcm9wYWdhdGUgb3IKK21vZGlmeSBhbnkgY292 ZXJlZCB3b3JrLiAgVGhlc2UgYWN0aW9ucyBpbmZyaW5nZSBjb3B5cmlnaHQg aWYgeW91IGRvCitub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9y ZSwgYnkgbW9kaWZ5aW5nIG9yIHByb3BhZ2F0aW5nIGEKK2NvdmVyZWQgd29y aywgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vu c2UgdG8gZG8gc28uCisKKyAgMTAuIEF1dG9tYXRpYyBMaWNlbnNpbmcgb2Yg RG93bnN0cmVhbSBSZWNpcGllbnRzLgorCisgIEVhY2ggdGltZSB5b3UgY29u dmV5IGEgY292ZXJlZCB3b3JrLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2Fs bHkKK3JlY2VpdmVzIGEgbGljZW5zZSBmcm9tIHRoZSBvcmlnaW5hbCBsaWNl bnNvcnMsIHRvIHJ1biwgbW9kaWZ5IGFuZAorcHJvcGFnYXRlIHRoYXQgd29y aywgc3ViamVjdCB0byB0aGlzIExpY2Vuc2UuICBZb3UgYXJlIG5vdCByZXNw b25zaWJsZQorZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBh cnRpZXMgd2l0aCB0aGlzIExpY2Vuc2UuCisKKyAgQW4gImVudGl0eSB0cmFu c2FjdGlvbiIgaXMgYSB0cmFuc2FjdGlvbiB0cmFuc2ZlcnJpbmcgY29udHJv bCBvZiBhbgorb3JnYW5pemF0aW9uLCBvciBzdWJzdGFudGlhbGx5IGFsbCBh c3NldHMgb2Ygb25lLCBvciBzdWJkaXZpZGluZyBhbgorb3JnYW5pemF0aW9u LCBvciBtZXJnaW5nIG9yZ2FuaXphdGlvbnMuICBJZiBwcm9wYWdhdGlvbiBv ZiBhIGNvdmVyZWQKK3dvcmsgcmVzdWx0cyBmcm9tIGFuIGVudGl0eSB0cmFu c2FjdGlvbiwgZWFjaCBwYXJ0eSB0byB0aGF0Cit0cmFuc2FjdGlvbiB3aG8g cmVjZWl2ZXMgYSBjb3B5IG9mIHRoZSB3b3JrIGFsc28gcmVjZWl2ZXMgd2hh dGV2ZXIKK2xpY2Vuc2VzIHRvIHRoZSB3b3JrIHRoZSBwYXJ0eSdzIHByZWRl Y2Vzc29yIGluIGludGVyZXN0IGhhZCBvciBjb3VsZAorZ2l2ZSB1bmRlciB0 aGUgcHJldmlvdXMgcGFyYWdyYXBoLCBwbHVzIGEgcmlnaHQgdG8gcG9zc2Vz c2lvbiBvZiB0aGUKK0NvcnJlc3BvbmRpbmcgU291cmNlIG9mIHRoZSB3b3Jr IGZyb20gdGhlIHByZWRlY2Vzc29yIGluIGludGVyZXN0LCBpZgordGhlIHBy ZWRlY2Vzc29yIGhhcyBpdCBvciBjYW4gZ2V0IGl0IHdpdGggcmVhc29uYWJs ZSBlZmZvcnRzLgorCisgIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhl ciByZXN0cmljdGlvbnMgb24gdGhlIGV4ZXJjaXNlIG9mIHRoZQorcmlnaHRz IGdyYW50ZWQgb3IgYWZmaXJtZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgRm9y IGV4YW1wbGUsIHlvdSBtYXkKK25vdCBpbXBvc2UgYSBsaWNlbnNlIGZlZSwg cm95YWx0eSwgb3Igb3RoZXIgY2hhcmdlIGZvciBleGVyY2lzZSBvZgorcmln aHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLCBhbmQgeW91IG1heSBu b3QgaW5pdGlhdGUgbGl0aWdhdGlvbgorKGluY2x1ZGluZyBhIGNyb3NzLWNs YWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRo YXQKK2FueSBwYXRlbnQgY2xhaW0gaXMgaW5mcmluZ2VkIGJ5IG1ha2luZywg dXNpbmcsIHNlbGxpbmcsIG9mZmVyaW5nIGZvcgorc2FsZSwgb3IgaW1wb3J0 aW5nIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uIG9mIGl0LgorCisgIDEx LiBQYXRlbnRzLgorCisgIEEgImNvbnRyaWJ1dG9yIiBpcyBhIGNvcHlyaWdo dCBob2xkZXIgd2hvIGF1dGhvcml6ZXMgdXNlIHVuZGVyIHRoaXMKK0xpY2Vu c2Ugb2YgdGhlIFByb2dyYW0gb3IgYSB3b3JrIG9uIHdoaWNoIHRoZSBQcm9n cmFtIGlzIGJhc2VkLiAgVGhlCit3b3JrIHRodXMgbGljZW5zZWQgaXMgY2Fs bGVkIHRoZSBjb250cmlidXRvcidzICJjb250cmlidXRvciB2ZXJzaW9uIi4K KworICBBIGNvbnRyaWJ1dG9yJ3MgImVzc2VudGlhbCBwYXRlbnQgY2xhaW1z IiBhcmUgYWxsIHBhdGVudCBjbGFpbXMKK293bmVkIG9yIGNvbnRyb2xsZWQg YnkgdGhlIGNvbnRyaWJ1dG9yLCB3aGV0aGVyIGFscmVhZHkgYWNxdWlyZWQg b3IKK2hlcmVhZnRlciBhY3F1aXJlZCwgdGhhdCB3b3VsZCBiZSBpbmZyaW5n ZWQgYnkgc29tZSBtYW5uZXIsIHBlcm1pdHRlZAorYnkgdGhpcyBMaWNlbnNl LCBvZiBtYWtpbmcsIHVzaW5nLCBvciBzZWxsaW5nIGl0cyBjb250cmlidXRv ciB2ZXJzaW9uLAorYnV0IGRvIG5vdCBpbmNsdWRlIGNsYWltcyB0aGF0IHdv dWxkIGJlIGluZnJpbmdlZCBvbmx5IGFzIGEKK2NvbnNlcXVlbmNlIG9mIGZ1 cnRoZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBjb250cmlidXRvciB2ZXJzaW9u LiAgRm9yCitwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJjb250cm9s IiBpbmNsdWRlcyB0aGUgcmlnaHQgdG8gZ3JhbnQKK3BhdGVudCBzdWJsaWNl bnNlcyBpbiBhIG1hbm5lciBjb25zaXN0ZW50IHdpdGggdGhlIHJlcXVpcmVt ZW50cyBvZgordGhpcyBMaWNlbnNlLgorCisgIEVhY2ggY29udHJpYnV0b3Ig Z3JhbnRzIHlvdSBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0 eS1mcmVlCitwYXRlbnQgbGljZW5zZSB1bmRlciB0aGUgY29udHJpYnV0b3In cyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KK21ha2UsIHVzZSwgc2Vs bCwgb2ZmZXIgZm9yIHNhbGUsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHJ1biwg bW9kaWZ5IGFuZAorcHJvcGFnYXRlIHRoZSBjb250ZW50cyBvZiBpdHMgY29u dHJpYnV0b3IgdmVyc2lvbi4KKworICBJbiB0aGUgZm9sbG93aW5nIHRocmVl IHBhcmFncmFwaHMsIGEgInBhdGVudCBsaWNlbnNlIiBpcyBhbnkgZXhwcmVz cworYWdyZWVtZW50IG9yIGNvbW1pdG1lbnQsIGhvd2V2ZXIgZGVub21pbmF0 ZWQsIG5vdCB0byBlbmZvcmNlIGEgcGF0ZW50Cisoc3VjaCBhcyBhbiBleHBy ZXNzIHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5h bnQgbm90IHRvCitzdWUgZm9yIHBhdGVudCBpbmZyaW5nZW1lbnQpLiAgVG8g ImdyYW50IiBzdWNoIGEgcGF0ZW50IGxpY2Vuc2UgdG8gYQorcGFydHkgbWVh bnMgdG8gbWFrZSBzdWNoIGFuIGFncmVlbWVudCBvciBjb21taXRtZW50IG5v dCB0byBlbmZvcmNlIGEKK3BhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KKwor ICBJZiB5b3UgY29udmV5IGEgY292ZXJlZCB3b3JrLCBrbm93aW5nbHkgcmVs eWluZyBvbiBhIHBhdGVudCBsaWNlbnNlLAorYW5kIHRoZSBDb3JyZXNwb25k aW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3QgYXZhaWxhYmxlIGZvciBh bnlvbmUKK3RvIGNvcHksIGZyZWUgb2YgY2hhcmdlIGFuZCB1bmRlciB0aGUg dGVybXMgb2YgdGhpcyBMaWNlbnNlLCB0aHJvdWdoIGEKK3B1YmxpY2x5IGF2 YWlsYWJsZSBuZXR3b3JrIHNlcnZlciBvciBvdGhlciByZWFkaWx5IGFjY2Vz c2libGUgbWVhbnMsCit0aGVuIHlvdSBtdXN0IGVpdGhlciAoMSkgY2F1c2Ug dGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNvCithdmFpbGFibGUs IG9yICgyKSBhcnJhbmdlIHRvIGRlcHJpdmUgeW91cnNlbGYgb2YgdGhlIGJl bmVmaXQgb2YgdGhlCitwYXRlbnQgbGljZW5zZSBmb3IgdGhpcyBwYXJ0aWN1 bGFyIHdvcmssIG9yICgzKSBhcnJhbmdlLCBpbiBhIG1hbm5lcgorY29uc2lz dGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBMaWNlbnNlLCB0 byBleHRlbmQgdGhlIHBhdGVudAorbGljZW5zZSB0byBkb3duc3RyZWFtIHJl Y2lwaWVudHMuICAiS25vd2luZ2x5IHJlbHlpbmciIG1lYW5zIHlvdSBoYXZl CithY3R1YWwga25vd2xlZGdlIHRoYXQsIGJ1dCBmb3IgdGhlIHBhdGVudCBs aWNlbnNlLCB5b3VyIGNvbnZleWluZyB0aGUKK2NvdmVyZWQgd29yayBpbiBh IGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50J3MgdXNlIG9mIHRoZSBjb3Zl cmVkIHdvcmsKK2luIGEgY291bnRyeSwgd291bGQgaW5mcmluZ2Ugb25lIG9y IG1vcmUgaWRlbnRpZmlhYmxlIHBhdGVudHMgaW4gdGhhdAorY291bnRyeSB0 aGF0IHlvdSBoYXZlIHJlYXNvbiB0byBiZWxpZXZlIGFyZSB2YWxpZC4KKwor ICBJZiwgcHVyc3VhbnQgdG8gb3IgaW4gY29ubmVjdGlvbiB3aXRoIGEgc2lu Z2xlIHRyYW5zYWN0aW9uIG9yCithcnJhbmdlbWVudCwgeW91IGNvbnZleSwg b3IgcHJvcGFnYXRlIGJ5IHByb2N1cmluZyBjb252ZXlhbmNlIG9mLCBhCitj b3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNv bWUgb2YgdGhlIHBhcnRpZXMKK3JlY2VpdmluZyB0aGUgY292ZXJlZCB3b3Jr IGF1dGhvcml6aW5nIHRoZW0gdG8gdXNlLCBwcm9wYWdhdGUsIG1vZGlmeQor b3IgY29udmV5IGEgc3BlY2lmaWMgY29weSBvZiB0aGUgY292ZXJlZCB3b3Jr LCB0aGVuIHRoZSBwYXRlbnQgbGljZW5zZQoreW91IGdyYW50IGlzIGF1dG9t YXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNv dmVyZWQKK3dvcmsgYW5kIHdvcmtzIGJhc2VkIG9uIGl0LgorCisgIEEgcGF0 ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1pbmF0b3J5IiBpZiBpdCBkb2VzIG5v dCBpbmNsdWRlIHdpdGhpbgordGhlIHNjb3BlIG9mIGl0cyBjb3ZlcmFnZSwg cHJvaGliaXRzIHRoZSBleGVyY2lzZSBvZiwgb3IgaXMKK2NvbmRpdGlvbmVk IG9uIHRoZSBub24tZXhlcmNpc2Ugb2Ygb25lIG9yIG1vcmUgb2YgdGhlIHJp Z2h0cyB0aGF0IGFyZQorc3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhp cyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29udmV5IGEgY292ZXJlZAord29y ayBpZiB5b3UgYXJlIGEgcGFydHkgdG8gYW4gYXJyYW5nZW1lbnQgd2l0aCBh IHRoaXJkIHBhcnR5IHRoYXQgaXMKK2luIHRoZSBidXNpbmVzcyBvZiBkaXN0 cmlidXRpbmcgc29mdHdhcmUsIHVuZGVyIHdoaWNoIHlvdSBtYWtlIHBheW1l bnQKK3RvIHRoZSB0aGlyZCBwYXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9m IHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCit0aGUgd29yaywgYW5kIHVu ZGVyIHdoaWNoIHRoZSB0aGlyZCBwYXJ0eSBncmFudHMsIHRvIGFueSBvZiB0 aGUKK3BhcnRpZXMgd2hvIHdvdWxkIHJlY2VpdmUgdGhlIGNvdmVyZWQgd29y ayBmcm9tIHlvdSwgYSBkaXNjcmltaW5hdG9yeQorcGF0ZW50IGxpY2Vuc2Ug KGEpIGluIGNvbm5lY3Rpb24gd2l0aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQg d29yaworY29udmV5ZWQgYnkgeW91IChvciBjb3BpZXMgbWFkZSBmcm9tIHRo b3NlIGNvcGllcyksIG9yIChiKSBwcmltYXJpbHkKK2ZvciBhbmQgaW4gY29u bmVjdGlvbiB3aXRoIHNwZWNpZmljIHByb2R1Y3RzIG9yIGNvbXBpbGF0aW9u cyB0aGF0Citjb250YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3Ug ZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5nZW1lbnQsCitvciB0aGF0IHBhdGVu dCBsaWNlbnNlIHdhcyBncmFudGVkLCBwcmlvciB0byAyOCBNYXJjaCAyMDA3 LgorCisgIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0 cnVlZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKK2FueSBpbXBsaWVkIGxp Y2Vuc2Ugb3Igb3RoZXIgZGVmZW5zZXMgdG8gaW5mcmluZ2VtZW50IHRoYXQg bWF5CitvdGhlcndpc2UgYmUgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhcHBs aWNhYmxlIHBhdGVudCBsYXcuCisKKyAgMTIuIE5vIFN1cnJlbmRlciBvZiBP dGhlcnMnIEZyZWVkb20uCisKKyAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3Nl ZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBv cgorb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMg b2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdAorZXhjdXNlIHlvdSBmcm9t IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5u b3QgY29udmV5IGEKK2NvdmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNp bXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcworTGlj ZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhl biBhcyBhIGNvbnNlcXVlbmNlIHlvdSBtYXkKK25vdCBjb252ZXkgaXQgYXQg YWxsLiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBhZ3JlZSB0byB0ZXJtcyB0aGF0 IG9ibGlnYXRlIHlvdQordG8gY29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRo ZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hvbSB5b3UgY29udmV5Cit0 aGUgUHJvZ3JhbSwgdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJv dGggdGhvc2UgdGVybXMgYW5kIHRoaXMKK0xpY2Vuc2Ugd291bGQgYmUgdG8g cmVmcmFpbiBlbnRpcmVseSBmcm9tIGNvbnZleWluZyB0aGUgUHJvZ3JhbS4K KworICAxMy4gVXNlIHdpdGggdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJs aWMgTGljZW5zZS4KKworICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHBy b3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCitwZXJtaXNzaW9u IHRvIGxpbmsgb3IgY29tYmluZSBhbnkgY292ZXJlZCB3b3JrIHdpdGggYSB3 b3JrIGxpY2Vuc2VkCit1bmRlciB2ZXJzaW9uIDMgb2YgdGhlIEdOVSBBZmZl cm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpbnRvIGEgc2luZ2xlCitjb21i aW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRpbmcgd29yay4g IFRoZSB0ZXJtcyBvZiB0aGlzCitMaWNlbnNlIHdpbGwgY29udGludWUgdG8g YXBwbHkgdG8gdGhlIHBhcnQgd2hpY2ggaXMgdGhlIGNvdmVyZWQgd29yaywK K2J1dCB0aGUgc3BlY2lhbCByZXF1aXJlbWVudHMgb2YgdGhlIEdOVSBBZmZl cm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKK3NlY3Rpb24gMTMsIGNvbmNl cm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2lsbCBhcHBs eSB0byB0aGUKK2NvbWJpbmF0aW9uIGFzIHN1Y2guCisKKyAgMTQuIFJldmlz ZWQgVmVyc2lvbnMgb2YgdGhpcyBMaWNlbnNlLgorCisgIFRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3Ig bmV3IHZlcnNpb25zIG9mCit0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxs CitiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9u LCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KK2FkZHJlc3MgbmV3IHBy b2JsZW1zIG9yIGNvbmNlcm5zLgorCisgIEVhY2ggdmVyc2lvbiBpcyBnaXZl biBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlCitQ cm9ncmFtIHNwZWNpZmllcyB0aGF0IGEgY2VydGFpbiBudW1iZXJlZCB2ZXJz aW9uIG9mIHRoZSBHTlUgR2VuZXJhbAorUHVibGljIExpY2Vuc2UgIm9yIGFu eSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUK K29wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25z IGVpdGhlciBvZiB0aGF0IG51bWJlcmVkCit2ZXJzaW9uIG9yIG9mIGFueSBs YXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQor Rm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkg YSB2ZXJzaW9uIG51bWJlciBvZiB0aGUKK0dOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxp c2hlZAorYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKworICBJ ZiB0aGUgUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIHByb3h5IGNhbiBkZWNp ZGUgd2hpY2ggZnV0dXJlCit2ZXJzaW9ucyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgY2FuIGJlIHVzZWQsIHRoYXQgcHJveHkncworcHVi bGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGEgdmVyc2lvbiBwZXJt YW5lbnRseSBhdXRob3JpemVzIHlvdQordG8gY2hvb3NlIHRoYXQgdmVyc2lv biBmb3IgdGhlIFByb2dyYW0uCisKKyAgTGF0ZXIgbGljZW5zZSB2ZXJzaW9u cyBtYXkgZ2l2ZSB5b3UgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQKK3Blcm1p c3Npb25zLiAgSG93ZXZlciwgbm8gYWRkaXRpb25hbCBvYmxpZ2F0aW9ucyBh cmUgaW1wb3NlZCBvbiBhbnkKK2F1dGhvciBvciBjb3B5cmlnaHQgaG9sZGVy IGFzIGEgcmVzdWx0IG9mIHlvdXIgY2hvb3NpbmcgdG8gZm9sbG93IGEKK2xh dGVyIHZlcnNpb24uCisKKyAgMTUuIERpc2NsYWltZXIgb2YgV2FycmFudHku CisKKyAgVEhFUkUgSVMgTk8gV0FSUkFOVFkgRk9SIFRIRSBQUk9HUkFNLCBU TyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWQorQVBQTElDQUJMRSBMQVcuICBF WENFUFQgV0hFTiBPVEhFUldJU0UgU1RBVEVEIElOIFdSSVRJTkcgVEhFIENP UFlSSUdIVAorSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUyBQUk9WSURF IFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWQorT0YgQU5Z IEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5H LCBCVVQgTk9UIExJTUlURUQgVE8sCitUSEUgSU1QTElFRCBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSCitQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTIFRPIFRIRSBRVUFM SVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTQorSVMgV0lUSCBZ T1UuICBTSE9VTEQgVEhFIFBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1Ug QVNTVU1FIFRIRSBDT1NUIE9GCitBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywg UkVQQUlSIE9SIENPUlJFQ1RJT04uCisKKyAgMTYuIExpbWl0YXRpb24gb2Yg TGlhYmlsaXR5LgorCisgIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBC WSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORworV0lM TCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdI TyBNT0RJRklFUyBBTkQvT1IgQ09OVkVZUworVEhFIFBST0dSQU0gQVMgUEVS TUlUVEVEIEFCT1ZFLCBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLCBJ TkNMVURJTkcgQU5ZCitHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9S IENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HIE9VVCBPRiBUSEUKK1VT RSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIExPU1MgT0YKK0RBVEEgT1IgREFUQSBCRUlO RyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNUQUlORUQgQlkg WU9VIE9SIFRISVJECitQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJP R1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSIFBST0dSQU1TKSwKK0VW RU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURW SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKK1NVQ0ggREFNQUdFUy4KKwor ICAxNy4gSW50ZXJwcmV0YXRpb24gb2YgU2VjdGlvbnMgMTUgYW5kIDE2Lgor CisgIElmIHRoZSBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5IGFuZCBsaW1pdGF0 aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAorYWJvdmUgY2Fubm90IGJlIGdp dmVuIGxvY2FsIGxlZ2FsIGVmZmVjdCBhY2NvcmRpbmcgdG8gdGhlaXIgdGVy bXMsCityZXZpZXdpbmcgY291cnRzIHNoYWxsIGFwcGx5IGxvY2FsIGxhdyB0 aGF0IG1vc3QgY2xvc2VseSBhcHByb3hpbWF0ZXMKK2FuIGFic29sdXRlIHdh aXZlciBvZiBhbGwgY2l2aWwgbGlhYmlsaXR5IGluIGNvbm5lY3Rpb24gd2l0 aCB0aGUKK1Byb2dyYW0sIHVubGVzcyBhIHdhcnJhbnR5IG9yIGFzc3VtcHRp b24gb2YgbGlhYmlsaXR5IGFjY29tcGFuaWVzIGEKK2NvcHkgb2YgdGhlIFBy b2dyYW0gaW4gcmV0dXJuIGZvciBhIGZlZS4KKworICAgICAgICAgICAgICAg ICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgICAgICAg ICAgIEhvdyB0byBBcHBseSBUaGVzZSBUZXJtcyB0byBZb3VyIE5ldyBQcm9n cmFtcworCisgIElmIHlvdSBkZXZlbG9wIGEgbmV3IHByb2dyYW0sIGFuZCB5 b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKK3Bvc3NpYmxlIHVz ZSB0byB0aGUgcHVibGljLCB0aGUgYmVzdCB3YXkgdG8gYWNoaWV2ZSB0aGlz IGlzIHRvIG1ha2UgaXQKK2ZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUg Y2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1z LgorCisgIFRvIGRvIHNvLCBhdHRhY2ggdGhlIGZvbGxvd2luZyBub3RpY2Vz IHRvIHRoZSBwcm9ncmFtLiAgSXQgaXMgc2FmZXN0Cit0byBhdHRhY2ggdGhl bSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVm ZmVjdGl2ZWx5CitzdGF0ZSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBh bmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0Cit0aGUgImNvcHly aWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5v dGljZSBpcyBmb3VuZC4KKworICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBw cm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9l cy4+CisgICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhv cj4KKworICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICAgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgor ICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg ICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgICBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworQWxz byBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRhY3QgeW91IGJ5IGVs ZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCisKKyAgSWYgdGhlIHByb2dyYW0g ZG9lcyB0ZXJtaW5hbCBpbnRlcmFjdGlvbiwgbWFrZSBpdCBvdXRwdXQgYSBz aG9ydAorbm90aWNlIGxpa2UgdGhpcyB3aGVuIGl0IHN0YXJ0cyBpbiBhbiBp bnRlcmFjdGl2ZSBtb2RlOgorCisgICAgPHByb2dyYW0+ICBDb3B5cmlnaHQg KEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgorICAgIFRoaXMgcHJvZ3Jh bSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZvciBkZXRh aWxzIHR5cGUgYHNob3cgdycuCisgICAgVGhpcyBpcyBmcmVlIHNvZnR3YXJl LCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdAorICAg IHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3Ig ZGV0YWlscy4KKworVGhlIGh5cG90aGV0aWNhbCBjb21tYW5kcyBgc2hvdyB3 JyBhbmQgYHNob3cgYycgc2hvdWxkIHNob3cgdGhlIGFwcHJvcHJpYXRlCitw YXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJz ZSwgeW91ciBwcm9ncmFtJ3MgY29tbWFuZHMKK21pZ2h0IGJlIGRpZmZlcmVu dDsgZm9yIGEgR1VJIGludGVyZmFjZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJv dXQgYm94Ii4KKworICBZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95 ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3Igc2Nob29sLAor aWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3Ig dGhlIHByb2dyYW0sIGlmIG5lY2Vzc2FyeS4KK0ZvciBtb3JlIGluZm9ybWF0 aW9uIG9uIHRoaXMsIGFuZCBob3cgdG8gYXBwbHkgYW5kIGZvbGxvdyB0aGUg R05VIEdQTCwgc2VlCis8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisKKyAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGRvZXMgbm90 IHBlcm1pdCBpbmNvcnBvcmF0aW5nIHlvdXIgcHJvZ3JhbQoraW50byBwcm9w cmlldGFyeSBwcm9ncmFtcy4gIElmIHlvdXIgcHJvZ3JhbSBpcyBhIHN1YnJv dXRpbmUgbGlicmFyeSwgeW91CittYXkgY29uc2lkZXIgaXQgbW9yZSB1c2Vm dWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25z IHdpdGgKK3RoZSBsaWJyYXJ5LiAgSWYgdGhpcyBpcyB3aGF0IHlvdSB3YW50 IHRvIGRvLCB1c2UgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbAorUHVibGljIExp Y2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuICBCdXQgZmlyc3QsIHBs ZWFzZSByZWFkCis8aHR0cDovL3d3dy5nbnUub3JnL3BoaWxvc29waHkvd2h5 LW5vdC1sZ3BsLmh0bWw+LgorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKworICAgICAgICAgICAgR05VIExFU1NFUiBHRU5FUkFMIFBVQkxJ QyBMSUNFTlNFCisgICAgICAgICAgICAgICAgVmVyc2lvbiAzLCAyOSBKdW5l IDIwMDcKKworIENvcHlyaWdodCCpIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuIDxodHRwOi8vZnNmLm9yZy8+CisgRXZlcnlvbmUgaXMg cGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29w aWVzIG9mIHRoaXMKKyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcg aXQgaXMgbm90IGFsbG93ZWQuCisKK1RoaXMgdmVyc2lvbiBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluY29ycG9yYXRlcwor dGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHZlcnNpb24gMyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljCitMaWNlbnNlLCBzdXBwbGVtZW50ZWQgYnkg dGhlIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbGlzdGVkIGJlbG93LgorCisw LiBBZGRpdGlvbmFsIERlZmluaXRpb25zLgorCisgQXMgdXNlZCBoZXJlaW4s IJN0aGlzIExpY2Vuc2WUIHJlZmVycyB0byB2ZXJzaW9uIDMgb2YgdGhlIEdO VSBMZXNzZXIKK0dlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFuZCB0aGUgk0dO VSBHUEyUIHJlZmVycyB0byB2ZXJzaW9uIDMgb2YgdGhlCitHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZS4KKworIJNUaGUgTGlicmFyeZQgcmVmZXJzIHRv IGEgY292ZXJlZCB3b3JrIGdvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSwKK290 aGVyIHRoYW4gYW4gQXBwbGljYXRpb24gb3IgYSBDb21iaW5lZCBXb3JrIGFz IGRlZmluZWQgYmVsb3cuCisKKyBBbiCTQXBwbGljYXRpb26UIGlzIGFueSB3 b3JrIHRoYXQgbWFrZXMgdXNlIG9mIGFuIGludGVyZmFjZSBwcm92aWRlZAor YnkgdGhlIExpYnJhcnksIGJ1dCB3aGljaCBpcyBub3Qgb3RoZXJ3aXNlIGJh c2VkIG9uIHRoZSBMaWJyYXJ5LgorRGVmaW5pbmcgYSBzdWJjbGFzcyBvZiBh IGNsYXNzIGRlZmluZWQgYnkgdGhlIExpYnJhcnkgaXMgZGVlbWVkIGEgbW9k ZQorb2YgdXNpbmcgYW4gaW50ZXJmYWNlIHByb3ZpZGVkIGJ5IHRoZSBMaWJy YXJ5LgorCisgQSCTQ29tYmluZWQgV29ya5QgaXMgYSB3b3JrIHByb2R1Y2Vk IGJ5IGNvbWJpbmluZyBvciBsaW5raW5nIGFuCitBcHBsaWNhdGlvbiB3aXRo IHRoZSBMaWJyYXJ5LiBUaGUgcGFydGljdWxhciB2ZXJzaW9uIG9mIHRoZSBM aWJyYXJ5Cit3aXRoIHdoaWNoIHRoZSBDb21iaW5lZCBXb3JrIHdhcyBtYWRl IGlzIGFsc28gY2FsbGVkIHRoZSCTTGlua2VkCitWZXJzaW9ulC4KKworIFRo ZSCTTWluaW1hbCBDb3JyZXNwb25kaW5nIFNvdXJjZZQgZm9yIGEgQ29tYmlu ZWQgV29yayBtZWFucyB0aGUKK0NvcnJlc3BvbmRpbmcgU291cmNlIGZvciB0 aGUgQ29tYmluZWQgV29yaywgZXhjbHVkaW5nIGFueSBzb3VyY2UgY29kZQor Zm9yIHBvcnRpb25zIG9mIHRoZSBDb21iaW5lZCBXb3JrIHRoYXQsIGNvbnNp ZGVyZWQgaW4gaXNvbGF0aW9uLCBhcmUKK2Jhc2VkIG9uIHRoZSBBcHBsaWNh dGlvbiwgYW5kIG5vdCBvbiB0aGUgTGlua2VkIFZlcnNpb24uCisKKyBUaGUg k0NvcnJlc3BvbmRpbmcgQXBwbGljYXRpb24gQ29kZZQgZm9yIGEgQ29tYmlu ZWQgV29yayBtZWFucyB0aGUKK29iamVjdCBjb2RlIGFuZC9vciBzb3VyY2Ug Y29kZSBmb3IgdGhlIEFwcGxpY2F0aW9uLCBpbmNsdWRpbmcgYW55IGRhdGEK K2FuZCB1dGlsaXR5IHByb2dyYW1zIG5lZWRlZCBmb3IgcmVwcm9kdWNpbmcg dGhlIENvbWJpbmVkIFdvcmsgZnJvbSB0aGUKK0FwcGxpY2F0aW9uLCBidXQg ZXhjbHVkaW5nIHRoZSBTeXN0ZW0gTGlicmFyaWVzIG9mIHRoZSBDb21iaW5l ZCBXb3JrLgorCisxLiBFeGNlcHRpb24gdG8gU2VjdGlvbiAzIG9mIHRoZSBH TlUgR1BMLgorCisgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgdW5k ZXIgc2VjdGlvbnMgMyBhbmQgNCBvZiB0aGlzIExpY2Vuc2UKK3dpdGhvdXQg YmVpbmcgYm91bmQgYnkgc2VjdGlvbiAzIG9mIHRoZSBHTlUgR1BMLgorCisy LiBDb252ZXlpbmcgTW9kaWZpZWQgVmVyc2lvbnMuCisKKyBJZiB5b3UgbW9k aWZ5IGEgY29weSBvZiB0aGUgTGlicmFyeSwgYW5kLCBpbiB5b3VyIG1vZGlm aWNhdGlvbnMsIGEKK2ZhY2lsaXR5IHJlZmVycyB0byBhIGZ1bmN0aW9uIG9y IGRhdGEgdG8gYmUgc3VwcGxpZWQgYnkgYW4gQXBwbGljYXRpb24KK3RoYXQg dXNlcyB0aGUgZmFjaWxpdHkgKG90aGVyIHRoYW4gYXMgYW4gYXJndW1lbnQg cGFzc2VkIHdoZW4gdGhlCitmYWNpbGl0eSBpcyBpbnZva2VkKSwgdGhlbiB5 b3UgbWF5IGNvbnZleSBhIGNvcHkgb2YgdGhlIG1vZGlmaWVkCit2ZXJzaW9u OgorCisgICAgYSkgdW5kZXIgdGhpcyBMaWNlbnNlLCBwcm92aWRlZCB0aGF0 IHlvdSBtYWtlIGEgZ29vZCBmYWl0aCBlZmZvcnQKKyAgICB0byBlbnN1cmUg dGhhdCwgaW4gdGhlIGV2ZW50IGFuIEFwcGxpY2F0aW9uIGRvZXMgbm90IHN1 cHBseSB0aGUKKyAgICBmdW5jdGlvbiBvciBkYXRhLCB0aGUgZmFjaWxpdHkg c3RpbGwgb3BlcmF0ZXMsIGFuZCBwZXJmb3JtcworICAgIHdoYXRldmVyIHBh cnQgb2YgaXRzIHB1cnBvc2UgcmVtYWlucyBtZWFuaW5nZnVsLCBvcgorCisg ICAgYikgdW5kZXIgdGhlIEdOVSBHUEwsIHdpdGggbm9uZSBvZiB0aGUgYWRk aXRpb25hbCBwZXJtaXNzaW9ucyBvZgorICAgIHRoaXMgTGljZW5zZSBhcHBs aWNhYmxlIHRvIHRoYXQgY29weS4KKworMy4gT2JqZWN0IENvZGUgSW5jb3Jw b3JhdGluZyBNYXRlcmlhbCBmcm9tIExpYnJhcnkgSGVhZGVyIEZpbGVzLgor CisgVGhlIG9iamVjdCBjb2RlIGZvcm0gb2YgYW4gQXBwbGljYXRpb24gbWF5 IGluY29ycG9yYXRlIG1hdGVyaWFsIGZyb20KK2EgaGVhZGVyIGZpbGUgdGhh dCBpcyBwYXJ0IG9mIHRoZSBMaWJyYXJ5LiBZb3UgbWF5IGNvbnZleSBzdWNo IG9iamVjdAorY29kZSB1bmRlciB0ZXJtcyBvZiB5b3VyIGNob2ljZSwgcHJv dmlkZWQgdGhhdCwgaWYgdGhlIGluY29ycG9yYXRlZAorbWF0ZXJpYWwgaXMg bm90IGxpbWl0ZWQgdG8gbnVtZXJpY2FsIHBhcmFtZXRlcnMsIGRhdGEgc3Ry dWN0dXJlCitsYXlvdXRzIGFuZCBhY2Nlc3NvcnMsIG9yIHNtYWxsIG1hY3Jv cywgaW5saW5lIGZ1bmN0aW9ucyBhbmQgdGVtcGxhdGVzCisodGVuIG9yIGZl d2VyIGxpbmVzIGluIGxlbmd0aCksIHlvdSBkbyBib3RoIG9mIHRoZSBmb2xs b3dpbmc6CisKKyAgICBhKSBHaXZlIHByb21pbmVudCBub3RpY2Ugd2l0aCBl YWNoIGNvcHkgb2YgdGhlIG9iamVjdCBjb2RlIHRoYXQKKyAgICB0aGUgTGli cmFyeSBpcyB1c2VkIGluIGl0IGFuZCB0aGF0IHRoZSBMaWJyYXJ5IGFuZCBp dHMgdXNlIGFyZQorICAgIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLgorCisg ICAgYikgQWNjb21wYW55IHRoZSBvYmplY3QgY29kZSB3aXRoIGEgY29weSBv ZiB0aGUgR05VIEdQTCBhbmQgdGhpcworICAgIGxpY2Vuc2UgZG9jdW1lbnQu CisKKzQuIENvbWJpbmVkIFdvcmtzLgorCisgWW91IG1heSBjb252ZXkgYSBD b21iaW5lZCBXb3JrIHVuZGVyIHRlcm1zIG9mIHlvdXIgY2hvaWNlIHRoYXQs IHRha2VuCit0b2dldGhlciwgZWZmZWN0aXZlbHkgZG8gbm90IHJlc3RyaWN0 IG1vZGlmaWNhdGlvbiBvZiB0aGUgcG9ydGlvbnMgb2YKK3RoZSBMaWJyYXJ5 IGNvbnRhaW5lZCBpbiB0aGUgQ29tYmluZWQgV29yayBhbmQgcmV2ZXJzZSBl bmdpbmVlcmluZyBmb3IKK2RlYnVnZ2luZyBzdWNoIG1vZGlmaWNhdGlvbnMs IGlmIHlvdSBhbHNvIGRvIGVhY2ggb2YgdGhlIGZvbGxvd2luZzoKKworICAg IGEpIEdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIGVhY2ggY29weSBvZiB0 aGUgQ29tYmluZWQgV29yayB0aGF0CisgICAgdGhlIExpYnJhcnkgaXMgdXNl ZCBpbiBpdCBhbmQgdGhhdCB0aGUgTGlicmFyeSBhbmQgaXRzIHVzZSBhcmUK KyAgICBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZS4KKworICAgIGIpIEFjY29t cGFueSB0aGUgQ29tYmluZWQgV29yayB3aXRoIGEgY29weSBvZiB0aGUgR05V IEdQTCBhbmQgdGhpcworICAgIGxpY2Vuc2UgZG9jdW1lbnQuCisKKyAgICBj KSBGb3IgYSBDb21iaW5lZCBXb3JrIHRoYXQgZGlzcGxheXMgY29weXJpZ2h0 IG5vdGljZXMgZHVyaW5nCisgICAgZXhlY3V0aW9uLCBpbmNsdWRlIHRoZSBj b3B5cmlnaHQgbm90aWNlIGZvciB0aGUgTGlicmFyeSBhbW9uZworICAgIHRo ZXNlIG5vdGljZXMsIGFzIHdlbGwgYXMgYSByZWZlcmVuY2UgZGlyZWN0aW5n IHRoZSB1c2VyIHRvIHRoZQorICAgIGNvcGllcyBvZiB0aGUgR05VIEdQTCBh bmQgdGhpcyBsaWNlbnNlIGRvY3VtZW50LgorCisgICAgZCkgRG8gb25lIG9m IHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgMCkgQ29udmV5IHRoZSBNaW5p bWFsIENvcnJlc3BvbmRpbmcgU291cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZgor ICAgICAgICB0aGlzIExpY2Vuc2UsIGFuZCB0aGUgQ29ycmVzcG9uZGluZyBB cHBsaWNhdGlvbiBDb2RlIGluIGEgZm9ybQorICAgICAgICBzdWl0YWJsZSBm b3IsIGFuZCB1bmRlciB0ZXJtcyB0aGF0IHBlcm1pdCwgdGhlIHVzZXIgdG8K KyAgICAgICAgcmVjb21iaW5lIG9yIHJlbGluayB0aGUgQXBwbGljYXRpb24g d2l0aCBhIG1vZGlmaWVkIHZlcnNpb24gb2YKKyAgICAgICAgdGhlIExpbmtl ZCBWZXJzaW9uIHRvIHByb2R1Y2UgYSBtb2RpZmllZCBDb21iaW5lZCBXb3Jr LCBpbiB0aGUKKyAgICAgICAgbWFubmVyIHNwZWNpZmllZCBieSBzZWN0aW9u IDYgb2YgdGhlIEdOVSBHUEwgZm9yIGNvbnZleWluZworICAgICAgICBDb3Jy ZXNwb25kaW5nIFNvdXJjZS4KKworICAgICAgICAxKSBVc2UgYSBzdWl0YWJs ZSBzaGFyZWQgbGlicmFyeSBtZWNoYW5pc20gZm9yIGxpbmtpbmcgd2l0aAor ICAgICAgICB0aGUgTGlicmFyeS4gQSBzdWl0YWJsZSBtZWNoYW5pc20gaXMg b25lIHRoYXQgKGEpIHVzZXMgYXQgcnVuCisgICAgICAgIHRpbWUgYSBjb3B5 IG9mIHRoZSBMaWJyYXJ5IGFscmVhZHkgcHJlc2VudCBvbiB0aGUgdXNlcidz CisgICAgICAgIGNvbXB1dGVyIHN5c3RlbSwgYW5kIChiKSB3aWxsIG9wZXJh dGUgcHJvcGVybHkgd2l0aCBhIG1vZGlmaWVkCisgICAgICAgIHZlcnNpb24g b2YgdGhlIExpYnJhcnkgdGhhdCBpcyBpbnRlcmZhY2UtY29tcGF0aWJsZSB3 aXRoIHRoZQorICAgICAgICBMaW5rZWQgVmVyc2lvbi4KKworICAgIGUpIFBy b3ZpZGUgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uLCBidXQgb25seSBpZiB5 b3Ugd291bGQKKyAgICBvdGhlcndpc2UgYmUgcmVxdWlyZWQgdG8gcHJvdmlk ZSBzdWNoIGluZm9ybWF0aW9uIHVuZGVyIHNlY3Rpb24gNgorICAgIG9mIHRo ZSBHTlUgR1BMLCBhbmQgb25seSB0byB0aGUgZXh0ZW50IHRoYXQgc3VjaCBp bmZvcm1hdGlvbiBpcworICAgIG5lY2Vzc2FyeSB0byBpbnN0YWxsIGFuZCBl eGVjdXRlIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUKKyAgICBDb21iaW5l ZCBXb3JrIHByb2R1Y2VkIGJ5IHJlY29tYmluaW5nIG9yIHJlbGlua2luZyB0 aGUgQXBwbGljYXRpb24KKyAgICB3aXRoIGEgbW9kaWZpZWQgdmVyc2lvbiBv ZiB0aGUgTGlua2VkIFZlcnNpb24uIChJZiB5b3UgdXNlIG9wdGlvbgorICAg IDRkMCwgdGhlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBtdXN0IGFjY29t cGFueSB0aGUgTWluaW1hbAorICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGFu ZCBDb3JyZXNwb25kaW5nIEFwcGxpY2F0aW9uIENvZGUuIElmIHlvdQorICAg IHVzZSBvcHRpb24gNGQxLCB5b3UgbXVzdCBwcm92aWRlIHRoZSBJbnN0YWxs YXRpb24gSW5mb3JtYXRpb24gaW4KKyAgICB0aGUgbWFubmVyIHNwZWNpZmll ZCBieSBzZWN0aW9uIDYgb2YgdGhlIEdOVSBHUEwgZm9yIGNvbnZleWluZwor ICAgIENvcnJlc3BvbmRpbmcgU291cmNlLikKKworNS4gQ29tYmluZWQgTGli cmFyaWVzLgorCisgWW91IG1heSBwbGFjZSBsaWJyYXJ5IGZhY2lsaXRpZXMg dGhhdCBhcmUgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5CitzaWRlIGJ5 IHNpZGUgaW4gYSBzaW5nbGUgbGlicmFyeSB0b2dldGhlciB3aXRoIG90aGVy IGxpYnJhcnkKK2ZhY2lsaXRpZXMgdGhhdCBhcmUgbm90IEFwcGxpY2F0aW9u cyBhbmQgYXJlIG5vdCBjb3ZlcmVkIGJ5IHRoaXMKK0xpY2Vuc2UsIGFuZCBj b252ZXkgc3VjaCBhIGNvbWJpbmVkIGxpYnJhcnkgdW5kZXIgdGVybXMgb2Yg eW91cgorY2hvaWNlLCBpZiB5b3UgZG8gYm90aCBvZiB0aGUgZm9sbG93aW5n OgorCisgICAgYSkgQWNjb21wYW55IHRoZSBjb21iaW5lZCBsaWJyYXJ5IHdp dGggYSBjb3B5IG9mIHRoZSBzYW1lIHdvcmsKKyAgICBiYXNlZCBvbiB0aGUg TGlicmFyeSwgdW5jb21iaW5lZCB3aXRoIGFueSBvdGhlciBsaWJyYXJ5Cisg ICAgZmFjaWxpdGllcywgY29udmV5ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo aXMgTGljZW5zZS4KKworICAgIGIpIEdpdmUgcHJvbWluZW50IG5vdGljZSB3 aXRoIHRoZSBjb21iaW5lZCBsaWJyYXJ5IHRoYXQgcGFydCBvZgorICAgIGl0 IGlzIGEgd29yayBiYXNlZCBvbiB0aGUgTGlicmFyeSwgYW5kIGV4cGxhaW5p bmcgd2hlcmUgdG8gZmluZAorICAgIHRoZSBhY2NvbXBhbnlpbmcgdW5jb21i aW5lZCBmb3JtIG9mIHRoZSBzYW1lIHdvcmsuCisKKzYuIFJldmlzZWQgVmVy c2lvbnMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZS4KKworIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxp c2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zCitvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1l LiBTdWNoIG5ldwordmVyc2lvbnMgd2lsbCBiZSBzaW1pbGFyIGluIHNwaXJp dCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5CitkaWZmZXIgaW4g ZGV0YWlsIHRvIGFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgor CitFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJz aW9uIG51bWJlci4gSWYgdGhlIExpYnJhcnkKK2FzIHlvdSByZWNlaXZlZCBp dCBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBv ZiB0aGUKK0dOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSCTb3Ig YW55IGxhdGVyIHZlcnNpb26UIGFwcGxpZXMgdG8KK2l0LCB5b3UgaGF2ZSB0 aGUgb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgZWl0aGVyCitvZiB0aGF0IHB1Ymxpc2hlZCB2ZXJzaW9uIG9yIG9mIGFu eSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUKK0ZyZWUgU29mdHdh cmUgRm91bmRhdGlvbi4gSWYgdGhlIExpYnJhcnkgYXMgeW91IHJlY2VpdmVk IGl0IGRvZXMgbm90CitzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKK3lvdSBtYXkg Y2hvb3NlIGFueSB2ZXJzaW9uIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKK2V2ZXIgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24uCisKK0lmIHRoZSBMaWJyYXJ5IGFzIHlvdSBy ZWNlaXZlZCBpdCBzcGVjaWZpZXMgdGhhdCBhIHByb3h5IGNhbiBkZWNpZGUK K3doZXRoZXIgZnV0dXJlIHZlcnNpb25zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2Ugc2hhbGwKK2FwcGx5LCB0aGF0IHByb3h5 J3MgcHVibGljIHN0YXRlbWVudCBvZiBhY2NlcHRhbmNlIG9mIGFueSB2ZXJz aW9uIGlzCitwZXJtYW5lbnQgYXV0aG9yaXphdGlvbiBmb3IgeW91IHRvIGNo b29zZSB0aGF0IHZlcnNpb24gZm9yIHRoZSBMaWJyYXJ5LgorCisKK0xHUEx2 Mi4xCistLS0tLS0tLQorCisKKyAgICAgICAgICAgIEdOVSBMRVNTRVIgR0VO RVJBTCBQVUJMSUMgTElDRU5TRQorCisgVGhlIFF0IFRvb2xraXQgaXMgQ29w eXJpZ2h0IChDKSAyMDE0IERpZ2lhIFBsYyBhbmQvb3IgaXRzIHN1YnNpZGlh cnkoLWllcykuCisgQ29udGFjdDogaHR0cDovL3d3dy5xdC5pby9saWNlbnNp bmcKKworIFlvdSBtYXkgdXNlLCBkaXN0cmlidXRlIGFuZCBjb3B5IGFwcGxp Y2FibGUgcGFydHMgb2YgdGhlIFF0IEdVSSBUb29sa2l0IHVuZGVyCisgdGhl IHRlcm1zIG9mIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2 ZXJzaW9uIDIuMSwgd2hpY2ggaXMgZGlzcGxheWVkCisgYmVsb3cuCisKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICAgICAgICAgR05V IExFU1NFUiBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCisgICAgICAgICAgICAg ICAgVmVyc2lvbiAyLjEsIEZlYnJ1YXJ5IDE5OTkKKworIENvcHlyaWdodCAo QykgMTk5MSwgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B ICAwMjExMC0xMzAxICBVU0EKKyBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8g Y29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMKKyBvZiB0aGlz IGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxs b3dlZC4KKworW1RoaXMgaXMgdGhlIGZpcnN0IHJlbGVhc2VkIHZlcnNpb24g b2YgdGhlIExlc3NlciBHUEwuICBJdCBhbHNvIGNvdW50cworIGFzIHRoZSBz dWNjZXNzb3Igb2YgdGhlIEdOVSBMaWJyYXJ5IFB1YmxpYyBMaWNlbnNlLCB2 ZXJzaW9uIDIsIGhlbmNlCisgdGhlIHZlcnNpb24gbnVtYmVyIDIuMS5dCisK KyBQcmVhbWJsZQorCisgIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2Fy ZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXIKK2ZyZWVkb20gdG8g c2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdl bmVyYWwgUHVibGljCitMaWNlbnNlcyBhcmUgaW50ZW5kZWQgdG8gZ3VhcmFu dGVlIHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlCitmcmVlIHNv ZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9y IGFsbCBpdHMgdXNlcnMuCisKKyAgVGhpcyBsaWNlbnNlLCB0aGUgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFwcGxpZXMgdG8gc29tZQorc3Bl Y2lhbGx5IGRlc2lnbmF0ZWQgc29mdHdhcmUgcGFja2FnZXMtLXR5cGljYWxs eSBsaWJyYXJpZXMtLW9mIHRoZQorRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u IGFuZCBvdGhlciBhdXRob3JzIHdobyBkZWNpZGUgdG8gdXNlIGl0LiAgWW91 CitjYW4gdXNlIGl0IHRvbywgYnV0IHdlIHN1Z2dlc3QgeW91IGZpcnN0IHRo aW5rIGNhcmVmdWxseSBhYm91dCB3aGV0aGVyCit0aGlzIGxpY2Vuc2Ugb3Ig dGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgdGhlIGJl dHRlcgorc3RyYXRlZ3kgdG8gdXNlIGluIGFueSBwYXJ0aWN1bGFyIGNhc2Us IGJhc2VkIG9uIHRoZSBleHBsYW5hdGlvbnMgYmVsb3cuCisKKyAgV2hlbiB3 ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRv IGZyZWVkb20gb2YgdXNlLAorbm90IHByaWNlLiAgT3VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdAor eW91IGhhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2Yg ZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZQorZm9yIHRoaXMgc2VydmljZSBp ZiB5b3Ugd2lzaCk7IHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3Ig Y2FuIGdldAoraXQgaWYgeW91IHdhbnQgaXQ7IHRoYXQgeW91IGNhbiBjaGFu Z2UgdGhlIHNvZnR3YXJlIGFuZCB1c2UgcGllY2VzIG9mCitpdCBpbiBuZXcg ZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGFyZSBpbmZvcm1lZCB0aGF0 IHlvdSBjYW4gZG8KK3RoZXNlIHRoaW5ncy4KKworICBUbyBwcm90ZWN0IHlv dXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25zIHRoYXQg Zm9yYmlkCitkaXN0cmlidXRvcnMgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRz IG9yIHRvIGFzayB5b3UgdG8gc3VycmVuZGVyIHRoZXNlCityaWdodHMuICBU aGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9u c2liaWxpdGllcyBmb3IKK3lvdSBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMg b2YgdGhlIGxpYnJhcnkgb3IgaWYgeW91IG1vZGlmeSBpdC4KKworICBGb3Ig ZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBsaWJy YXJ5LCB3aGV0aGVyIGdyYXRpcworb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBn aXZlIHRoZSByZWNpcGllbnRzIGFsbCB0aGUgcmlnaHRzIHRoYXQgd2UgZ2F2 ZQoreW91LiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCBy ZWNlaXZlIG9yIGNhbiBnZXQgdGhlIHNvdXJjZQorY29kZS4gIElmIHlvdSBs aW5rIG90aGVyIGNvZGUgd2l0aCB0aGUgbGlicmFyeSwgeW91IG11c3QgcHJv dmlkZQorY29tcGxldGUgb2JqZWN0IGZpbGVzIHRvIHRoZSByZWNpcGllbnRz LCBzbyB0aGF0IHRoZXkgY2FuIHJlbGluayB0aGVtCit3aXRoIHRoZSBsaWJy YXJ5IGFmdGVyIG1ha2luZyBjaGFuZ2VzIHRvIHRoZSBsaWJyYXJ5IGFuZCBy ZWNvbXBpbGluZworaXQuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNl IHRlcm1zIHNvIHRoZXkga25vdyB0aGVpciByaWdodHMuCisKKyAgV2UgcHJv dGVjdCB5b3VyIHJpZ2h0cyB3aXRoIGEgdHdvLXN0ZXAgbWV0aG9kOiAoMSkg d2UgY29weXJpZ2h0IHRoZQorbGlicmFyeSwgYW5kICgyKSB3ZSBvZmZlciB5 b3UgdGhpcyBsaWNlbnNlLCB3aGljaCBnaXZlcyB5b3UgbGVnYWwKK3Blcm1p c3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoZSBs aWJyYXJ5LgorCisgIFRvIHByb3RlY3QgZWFjaCBkaXN0cmlidXRvciwgd2Ug d2FudCB0byBtYWtlIGl0IHZlcnkgY2xlYXIgdGhhdAordGhlcmUgaXMgbm8g d2FycmFudHkgZm9yIHRoZSBmcmVlIGxpYnJhcnkuICBBbHNvLCBpZiB0aGUg bGlicmFyeSBpcworbW9kaWZpZWQgYnkgc29tZW9uZSBlbHNlIGFuZCBwYXNz ZWQgb24sIHRoZSByZWNpcGllbnRzIHNob3VsZCBrbm93Cit0aGF0IHdoYXQg dGhleSBoYXZlIGlzIG5vdCB0aGUgb3JpZ2luYWwgdmVyc2lvbiwgc28gdGhh dCB0aGUgb3JpZ2luYWwKK2F1dGhvcidzIHJlcHV0YXRpb24gd2lsbCBub3Qg YmUgYWZmZWN0ZWQgYnkgcHJvYmxlbXMgdGhhdCBtaWdodCBiZQoraW50cm9k dWNlZCBieSBvdGhlcnMuCisKKyAgRmluYWxseSwgc29mdHdhcmUgcGF0ZW50 cyBwb3NlIGEgY29uc3RhbnQgdGhyZWF0IHRvIHRoZSBleGlzdGVuY2Ugb2YK K2FueSBmcmVlIHByb2dyYW0uICBXZSB3aXNoIHRvIG1ha2Ugc3VyZSB0aGF0 IGEgY29tcGFueSBjYW5ub3QKK2VmZmVjdGl2ZWx5IHJlc3RyaWN0IHRoZSB1 c2VycyBvZiBhIGZyZWUgcHJvZ3JhbSBieSBvYnRhaW5pbmcgYQorcmVzdHJp Y3RpdmUgbGljZW5zZSBmcm9tIGEgcGF0ZW50IGhvbGRlci4gIFRoZXJlZm9y ZSwgd2UgaW5zaXN0IHRoYXQKK2FueSBwYXRlbnQgbGljZW5zZSBvYnRhaW5l ZCBmb3IgYSB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5IG11c3QgYmUKK2NvbnNp c3RlbnQgd2l0aCB0aGUgZnVsbCBmcmVlZG9tIG9mIHVzZSBzcGVjaWZpZWQg aW4gdGhpcyBsaWNlbnNlLgorCisgIE1vc3QgR05VIHNvZnR3YXJlLCBpbmNs dWRpbmcgc29tZSBsaWJyYXJpZXMsIGlzIGNvdmVyZWQgYnkgdGhlCitvcmRp bmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIFRoaXMgbGljZW5z ZSwgdGhlIEdOVSBMZXNzZXIKK0dlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFw cGxpZXMgdG8gY2VydGFpbiBkZXNpZ25hdGVkIGxpYnJhcmllcywgYW5kCitp cyBxdWl0ZSBkaWZmZXJlbnQgZnJvbSB0aGUgb3JkaW5hcnkgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZS4gIFdlIHVzZQordGhpcyBsaWNlbnNlIGZvciBjZXJ0 YWluIGxpYnJhcmllcyBpbiBvcmRlciB0byBwZXJtaXQgbGlua2luZyB0aG9z ZQorbGlicmFyaWVzIGludG8gbm9uLWZyZWUgcHJvZ3JhbXMuCisKKyAgV2hl biBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggYSBsaWJyYXJ5LCB3aGV0aGVy IHN0YXRpY2FsbHkgb3IgdXNpbmcKK2Egc2hhcmVkIGxpYnJhcnksIHRoZSBj b21iaW5hdGlvbiBvZiB0aGUgdHdvIGlzIGxlZ2FsbHkgc3BlYWtpbmcgYQor Y29tYmluZWQgd29yaywgYSBkZXJpdmF0aXZlIG9mIHRoZSBvcmlnaW5hbCBs aWJyYXJ5LiAgVGhlIG9yZGluYXJ5CitHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IHRoZXJlZm9yZSBwZXJtaXRzIHN1Y2ggbGlua2luZyBvbmx5IGlmIHRoZQor ZW50aXJlIGNvbWJpbmF0aW9uIGZpdHMgaXRzIGNyaXRlcmlhIG9mIGZyZWVk b20uICBUaGUgTGVzc2VyIEdlbmVyYWwKK1B1YmxpYyBMaWNlbnNlIHBlcm1p dHMgbW9yZSBsYXggY3JpdGVyaWEgZm9yIGxpbmtpbmcgb3RoZXIgY29kZSB3 aXRoCit0aGUgbGlicmFyeS4KKworICBXZSBjYWxsIHRoaXMgbGljZW5zZSB0 aGUgIkxlc3NlciIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBiZWNhdXNlIGl0 Citkb2VzIExlc3MgdG8gcHJvdGVjdCB0aGUgdXNlcidzIGZyZWVkb20gdGhh biB0aGUgb3JkaW5hcnkgR2VuZXJhbAorUHVibGljIExpY2Vuc2UuICBJdCBh bHNvIHByb3ZpZGVzIG90aGVyIGZyZWUgc29mdHdhcmUgZGV2ZWxvcGVycyBM ZXNzCitvZiBhbiBhZHZhbnRhZ2Ugb3ZlciBjb21wZXRpbmcgbm9uLWZyZWUg cHJvZ3JhbXMuICBUaGVzZSBkaXNhZHZhbnRhZ2VzCithcmUgdGhlIHJlYXNv biB3ZSB1c2UgdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1hbnkKK2xpYnJhcmllcy4gIEhvd2V2ZXIsIHRoZSBMZXNzZXIgbGlj ZW5zZSBwcm92aWRlcyBhZHZhbnRhZ2VzIGluIGNlcnRhaW4KK3NwZWNpYWwg Y2lyY3Vtc3RhbmNlcy4KKworICBGb3IgZXhhbXBsZSwgb24gcmFyZSBvY2Nh c2lvbnMsIHRoZXJlIG1heSBiZSBhIHNwZWNpYWwgbmVlZCB0bworZW5jb3Vy YWdlIHRoZSB3aWRlc3QgcG9zc2libGUgdXNlIG9mIGEgY2VydGFpbiBsaWJy YXJ5LCBzbyB0aGF0IGl0IGJlY29tZXMKK2EgZGUtZmFjdG8gc3RhbmRhcmQu ICBUbyBhY2hpZXZlIHRoaXMsIG5vbi1mcmVlIHByb2dyYW1zIG11c3QgYmUK K2FsbG93ZWQgdG8gdXNlIHRoZSBsaWJyYXJ5LiAgQSBtb3JlIGZyZXF1ZW50 IGNhc2UgaXMgdGhhdCBhIGZyZWUKK2xpYnJhcnkgZG9lcyB0aGUgc2FtZSBq b2IgYXMgd2lkZWx5IHVzZWQgbm9uLWZyZWUgbGlicmFyaWVzLiAgSW4gdGhp cworY2FzZSwgdGhlcmUgaXMgbGl0dGxlIHRvIGdhaW4gYnkgbGltaXRpbmcg dGhlIGZyZWUgbGlicmFyeSB0byBmcmVlCitzb2Z0d2FyZSBvbmx5LCBzbyB3 ZSB1c2UgdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorCisg IEluIG90aGVyIGNhc2VzLCBwZXJtaXNzaW9uIHRvIHVzZSBhIHBhcnRpY3Vs YXIgbGlicmFyeSBpbiBub24tZnJlZQorcHJvZ3JhbXMgZW5hYmxlcyBhIGdy ZWF0ZXIgbnVtYmVyIG9mIHBlb3BsZSB0byB1c2UgYSBsYXJnZSBib2R5IG9m CitmcmVlIHNvZnR3YXJlLiAgRm9yIGV4YW1wbGUsIHBlcm1pc3Npb24gdG8g dXNlIHRoZSBHTlUgQyBMaWJyYXJ5IGluCitub24tZnJlZSBwcm9ncmFtcyBl bmFibGVzIG1hbnkgbW9yZSBwZW9wbGUgdG8gdXNlIHRoZSB3aG9sZSBHTlUK K29wZXJhdGluZyBzeXN0ZW0sIGFzIHdlbGwgYXMgaXRzIHZhcmlhbnQsIHRo ZSBHTlUvTGludXggb3BlcmF0aW5nCitzeXN0ZW0uCisKKyAgQWx0aG91Z2gg dGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIExlc3MgcHJv dGVjdGl2ZSBvZiB0aGUKK3VzZXJzJyBmcmVlZG9tLCBpdCBkb2VzIGVuc3Vy ZSB0aGF0IHRoZSB1c2VyIG9mIGEgcHJvZ3JhbSB0aGF0IGlzCitsaW5rZWQg d2l0aCB0aGUgTGlicmFyeSBoYXMgdGhlIGZyZWVkb20gYW5kIHRoZSB3aGVy ZXdpdGhhbCB0byBydW4KK3RoYXQgcHJvZ3JhbSB1c2luZyBhIG1vZGlmaWVk IHZlcnNpb24gb2YgdGhlIExpYnJhcnkuCisKKyAgVGhlIHByZWNpc2UgdGVy bXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBh bmQKK21vZGlmaWNhdGlvbiBmb2xsb3cuICBQYXkgY2xvc2UgYXR0ZW50aW9u IHRvIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYQorIndvcmsgYmFzZWQgb24g dGhlIGxpYnJhcnkiIGFuZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgbGlicmFy eSIuICBUaGUKK2Zvcm1lciBjb250YWlucyBjb2RlIGRlcml2ZWQgZnJvbSB0 aGUgbGlicmFyeSwgd2hlcmVhcyB0aGUgbGF0dGVyIG11c3QKK2JlIGNvbWJp bmVkIHdpdGggdGhlIGxpYnJhcnkgaW4gb3JkZXIgdG8gcnVuLgorCisgICAg ICAgIEdOVSBMRVNTRVIgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgIFRF Uk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04g QU5EIE1PRElGSUNBVElPTgorCisgIDAuIFRoaXMgTGljZW5zZSBBZ3JlZW1l bnQgYXBwbGllcyB0byBhbnkgc29mdHdhcmUgbGlicmFyeSBvciBvdGhlcgor cHJvZ3JhbSB3aGljaCBjb250YWlucyBhIG5vdGljZSBwbGFjZWQgYnkgdGhl IGNvcHlyaWdodCBob2xkZXIgb3IKK290aGVyIGF1dGhvcml6ZWQgcGFydHkg c2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMg b2YKK3RoaXMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKGFsc28g Y2FsbGVkICJ0aGlzIExpY2Vuc2UiKS4KK0VhY2ggbGljZW5zZWUgaXMgYWRk cmVzc2VkIGFzICJ5b3UiLgorCisgIEEgImxpYnJhcnkiIG1lYW5zIGEgY29s bGVjdGlvbiBvZiBzb2Z0d2FyZSBmdW5jdGlvbnMgYW5kL29yIGRhdGEKK3By ZXBhcmVkIHNvIGFzIHRvIGJlIGNvbnZlbmllbnRseSBsaW5rZWQgd2l0aCBh cHBsaWNhdGlvbiBwcm9ncmFtcworKHdoaWNoIHVzZSBzb21lIG9mIHRob3Nl IGZ1bmN0aW9ucyBhbmQgZGF0YSkgdG8gZm9ybSBleGVjdXRhYmxlcy4KKwor ICBUaGUgIkxpYnJhcnkiLCBiZWxvdywgcmVmZXJzIHRvIGFueSBzdWNoIHNv ZnR3YXJlIGxpYnJhcnkgb3Igd29yaword2hpY2ggaGFzIGJlZW4gZGlzdHJp YnV0ZWQgdW5kZXIgdGhlc2UgdGVybXMuICBBICJ3b3JrIGJhc2VkIG9uIHRo ZQorTGlicmFyeSIgbWVhbnMgZWl0aGVyIHRoZSBMaWJyYXJ5IG9yIGFueSBk ZXJpdmF0aXZlIHdvcmsgdW5kZXIKK2NvcHlyaWdodCBsYXc6IHRoYXQgaXMg dG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgTGlicmFyeSBvciBhCitw b3J0aW9uIG9mIGl0LCBlaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmlj YXRpb25zIGFuZC9vciB0cmFuc2xhdGVkCitzdHJhaWdodGZvcndhcmRseSBp bnRvIGFub3RoZXIgbGFuZ3VhZ2UuICAoSGVyZWluYWZ0ZXIsIHRyYW5zbGF0 aW9uIGlzCitpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4gdGhlIHRl cm0gIm1vZGlmaWNhdGlvbiIuKQorCisgICJTb3VyY2UgY29kZSIgZm9yIGEg d29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9y CittYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIEZvciBhIGxpYnJhcnks IGNvbXBsZXRlIHNvdXJjZSBjb2RlIG1lYW5zCithbGwgdGhlIHNvdXJjZSBj b2RlIGZvciBhbGwgbW9kdWxlcyBpdCBjb250YWlucywgcGx1cyBhbnkgYXNz b2NpYXRlZAoraW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhl IHNjcmlwdHMgdXNlZCB0byBjb250cm9sIGNvbXBpbGF0aW9uCithbmQgaW5z dGFsbGF0aW9uIG9mIHRoZSBsaWJyYXJ5LgorCisgIEFjdGl2aXRpZXMgb3Ro ZXIgdGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlv biBhcmUgbm90Citjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUg b3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mCitydW5uaW5nIGEgcHJv Z3JhbSB1c2luZyB0aGUgTGlicmFyeSBpcyBub3QgcmVzdHJpY3RlZCwgYW5k IG91dHB1dCBmcm9tCitzdWNoIGEgcHJvZ3JhbSBpcyBjb3ZlcmVkIG9ubHkg aWYgaXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUgYSB3b3JrIGJhc2VkCitvbiB0 aGUgTGlicmFyeSAoaW5kZXBlbmRlbnQgb2YgdGhlIHVzZSBvZiB0aGUgTGli cmFyeSBpbiBhIHRvb2wgZm9yCit3cml0aW5nIGl0KS4gIFdoZXRoZXIgdGhh dCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgTGlicmFyeSBkb2VzCith bmQgd2hhdCB0aGUgcHJvZ3JhbSB0aGF0IHVzZXMgdGhlIExpYnJhcnkgZG9l cy4KKworICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0 aW0gY29waWVzIG9mIHRoZSBMaWJyYXJ5J3MKK2NvbXBsZXRlIHNvdXJjZSBj b2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRl ZCB0aGF0Cit5b3UgY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBw dWJsaXNoIG9uIGVhY2ggY29weSBhbgorYXBwcm9wcmlhdGUgY29weXJpZ2h0 IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRh Y3QKK2FsbCB0aGUgbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5z ZSBhbmQgdG8gdGhlIGFic2VuY2Ugb2YgYW55Cit3YXJyYW50eTsgYW5kIGRp c3RyaWJ1dGUgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZQorTGlicmFyeS4KKworICBZb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhl IHBoeXNpY2FsIGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LAorYW5kIHlv dSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlv biBpbiBleGNoYW5nZSBmb3IgYQorZmVlLgorCisgIDIuIFlvdSBtYXkgbW9k aWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIExpYnJhcnkgb3IgYW55 IHBvcnRpb24KK29mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9u IHRoZSBMaWJyYXJ5LCBhbmQgY29weSBhbmQKK2Rpc3RyaWJ1dGUgc3VjaCBt b2RpZmljYXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rp b24gMQorYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwg b2YgdGhlc2UgY29uZGl0aW9uczoKKworICAgIGEpIFRoZSBtb2RpZmllZCB3 b3JrIG11c3QgaXRzZWxmIGJlIGEgc29mdHdhcmUgbGlicmFyeS4KKworICAg IGIpIFlvdSBtdXN0IGNhdXNlIHRoZSBmaWxlcyBtb2RpZmllZCB0byBjYXJy eSBwcm9taW5lbnQgbm90aWNlcworICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hh bmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCisK KyAgICBjKSBZb3UgbXVzdCBjYXVzZSB0aGUgd2hvbGUgb2YgdGhlIHdvcmsg dG8gYmUgbGljZW5zZWQgYXQgbm8KKyAgICBjaGFyZ2UgdG8gYWxsIHRoaXJk IHBhcnRpZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KKwor ICAgIGQpIElmIGEgZmFjaWxpdHkgaW4gdGhlIG1vZGlmaWVkIExpYnJhcnkg cmVmZXJzIHRvIGEgZnVuY3Rpb24gb3IgYQorICAgIHRhYmxlIG9mIGRhdGEg dG8gYmUgc3VwcGxpZWQgYnkgYW4gYXBwbGljYXRpb24gcHJvZ3JhbSB0aGF0 IHVzZXMKKyAgICB0aGUgZmFjaWxpdHksIG90aGVyIHRoYW4gYXMgYW4gYXJn dW1lbnQgcGFzc2VkIHdoZW4gdGhlIGZhY2lsaXR5CisgICAgaXMgaW52b2tl ZCwgdGhlbiB5b3UgbXVzdCBtYWtlIGEgZ29vZCBmYWl0aCBlZmZvcnQgdG8g ZW5zdXJlIHRoYXQsCisgICAgaW4gdGhlIGV2ZW50IGFuIGFwcGxpY2F0aW9u IGRvZXMgbm90IHN1cHBseSBzdWNoIGZ1bmN0aW9uIG9yCisgICAgdGFibGUs IHRoZSBmYWNpbGl0eSBzdGlsbCBvcGVyYXRlcywgYW5kIHBlcmZvcm1zIHdo YXRldmVyIHBhcnQgb2YKKyAgICBpdHMgcHVycG9zZSByZW1haW5zIG1lYW5p bmdmdWwuCisKKyAgICAoRm9yIGV4YW1wbGUsIGEgZnVuY3Rpb24gaW4gYSBs aWJyYXJ5IHRvIGNvbXB1dGUgc3F1YXJlIHJvb3RzIGhhcworICAgIGEgcHVy cG9zZSB0aGF0IGlzIGVudGlyZWx5IHdlbGwtZGVmaW5lZCBpbmRlcGVuZGVu dCBvZiB0aGUKKyAgICBhcHBsaWNhdGlvbi4gIFRoZXJlZm9yZSwgU3Vic2Vj dGlvbiAyZCByZXF1aXJlcyB0aGF0IGFueQorICAgIGFwcGxpY2F0aW9uLXN1 cHBsaWVkIGZ1bmN0aW9uIG9yIHRhYmxlIHVzZWQgYnkgdGhpcyBmdW5jdGlv biBtdXN0CisgICAgYmUgb3B0aW9uYWw6IGlmIHRoZSBhcHBsaWNhdGlvbiBk b2VzIG5vdCBzdXBwbHkgaXQsIHRoZSBzcXVhcmUKKyAgICByb290IGZ1bmN0 aW9uIG11c3Qgc3RpbGwgY29tcHV0ZSBzcXVhcmUgcm9vdHMuKQorCitUaGVz ZSByZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMg YSB3aG9sZS4gIElmCitpZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3 b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBMaWJyYXJ5LAorYW5kIGNh biBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNl cGFyYXRlIHdvcmtzIGluCit0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5z ZSwgYW5kIGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCitzZWN0 aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29y a3MuICBCdXQgd2hlbiB5b3UKK2Rpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlv bnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZAor b24gdGhlIExpYnJhcnksIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xl IG11c3QgYmUgb24gdGhlIHRlcm1zIG9mCit0aGlzIExpY2Vuc2UsIHdob3Nl IHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRo ZQorZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBw YXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlCitpdC4KKworVGh1cywgaXQg aXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJp Z2h0cyBvciBjb250ZXN0Cit5b3VyIHJpZ2h0cyB0byB3b3JrIHdyaXR0ZW4g ZW50aXJlbHkgYnkgeW91OyByYXRoZXIsIHRoZSBpbnRlbnQgaXMgdG8KK2V4 ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24g b2YgZGVyaXZhdGl2ZSBvcgorY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0 aGUgTGlicmFyeS4KKworSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24g b2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgTGlicmFyeQord2l0 aCB0aGUgTGlicmFyeSAob3Igd2l0aCBhIHdvcmsgYmFzZWQgb24gdGhlIExp YnJhcnkpIG9uIGEgdm9sdW1lIG9mCithIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0 aW9uIG1lZGl1bSBkb2VzIG5vdCBicmluZyB0aGUgb3RoZXIgd29yayB1bmRl cgordGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KKworICAzLiBZb3UgbWF5 IG9wdCB0byBhcHBseSB0aGUgdGVybXMgb2YgdGhlIG9yZGluYXJ5IEdOVSBH ZW5lcmFsIFB1YmxpYworTGljZW5zZSBpbnN0ZWFkIG9mIHRoaXMgTGljZW5z ZSB0byBhIGdpdmVuIGNvcHkgb2YgdGhlIExpYnJhcnkuICBUbyBkbwordGhp cywgeW91IG11c3QgYWx0ZXIgYWxsIHRoZSBub3RpY2VzIHRoYXQgcmVmZXIg dG8gdGhpcyBMaWNlbnNlLCBzbwordGhhdCB0aGV5IHJlZmVyIHRvIHRoZSBv cmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAy LAoraW5zdGVhZCBvZiB0byB0aGlzIExpY2Vuc2UuICAoSWYgYSBuZXdlciB2 ZXJzaW9uIHRoYW4gdmVyc2lvbiAyIG9mIHRoZQorb3JkaW5hcnkgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgaGFzIGFwcGVhcmVkLCB0aGVuIHlvdSBj YW4gc3BlY2lmeQordGhhdCB2ZXJzaW9uIGluc3RlYWQgaWYgeW91IHdpc2gu KSAgRG8gbm90IG1ha2UgYW55IG90aGVyIGNoYW5nZSBpbgordGhlc2Ugbm90 aWNlcy4KKworICBPbmNlIHRoaXMgY2hhbmdlIGlzIG1hZGUgaW4gYSBnaXZl biBjb3B5LCBpdCBpcyBpcnJldmVyc2libGUgZm9yCit0aGF0IGNvcHksIHNv IHRoZSBvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBs aWVzIHRvIGFsbAorc3Vic2VxdWVudCBjb3BpZXMgYW5kIGRlcml2YXRpdmUg d29ya3MgbWFkZSBmcm9tIHRoYXQgY29weS4KKworICBUaGlzIG9wdGlvbiBp cyB1c2VmdWwgd2hlbiB5b3Ugd2lzaCB0byBjb3B5IHBhcnQgb2YgdGhlIGNv ZGUgb2YKK3RoZSBMaWJyYXJ5IGludG8gYSBwcm9ncmFtIHRoYXQgaXMgbm90 IGEgbGlicmFyeS4KKworICA0LiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1 dGUgdGhlIExpYnJhcnkgKG9yIGEgcG9ydGlvbiBvcgorZGVyaXZhdGl2ZSBv ZiBpdCwgdW5kZXIgU2VjdGlvbiAyKSBpbiBvYmplY3QgY29kZSBvciBleGVj dXRhYmxlIGZvcm0KK3VuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFu ZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFjY29tcGFueQoraXQgd2l0 aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZyBtYWNoaW5lLXJlYWRhYmxl IHNvdXJjZSBjb2RlLCB3aGljaAorbXVzdCBiZSBkaXN0cmlidXRlZCB1bmRl ciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhCitt ZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFu Z2UuCisKKyAgSWYgZGlzdHJpYnV0aW9uIG9mIG9iamVjdCBjb2RlIGlzIG1h ZGUgYnkgb2ZmZXJpbmcgYWNjZXNzIHRvIGNvcHkKK2Zyb20gYSBkZXNpZ25h dGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQgYWNjZXNzIHRv IGNvcHkgdGhlCitzb3VyY2UgY29kZSBmcm9tIHRoZSBzYW1lIHBsYWNlIHNh dGlzZmllcyB0aGUgcmVxdWlyZW1lbnQgdG8KK2Rpc3RyaWJ1dGUgdGhlIHNv dXJjZSBjb2RlLCBldmVuIHRob3VnaCB0aGlyZCBwYXJ0aWVzIGFyZSBub3QK K2NvbXBlbGxlZCB0byBjb3B5IHRoZSBzb3VyY2UgYWxvbmcgd2l0aCB0aGUg b2JqZWN0IGNvZGUuCisKKyAgNS4gQSBwcm9ncmFtIHRoYXQgY29udGFpbnMg bm8gZGVyaXZhdGl2ZSBvZiBhbnkgcG9ydGlvbiBvZiB0aGUKK0xpYnJhcnks IGJ1dCBpcyBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhlIExpYnJhcnkgYnkg YmVpbmcgY29tcGlsZWQgb3IKK2xpbmtlZCB3aXRoIGl0LCBpcyBjYWxsZWQg YSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiLiAgU3VjaCBhCit3b3Jr LCBpbiBpc29sYXRpb24sIGlzIG5vdCBhIGRlcml2YXRpdmUgd29yayBvZiB0 aGUgTGlicmFyeSwgYW5kCit0aGVyZWZvcmUgZmFsbHMgb3V0c2lkZSB0aGUg c2NvcGUgb2YgdGhpcyBMaWNlbnNlLgorCisgIEhvd2V2ZXIsIGxpbmtpbmcg YSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHdpdGggdGhlIExpYnJh cnkKK2NyZWF0ZXMgYW4gZXhlY3V0YWJsZSB0aGF0IGlzIGEgZGVyaXZhdGl2 ZSBvZiB0aGUgTGlicmFyeSAoYmVjYXVzZSBpdAorY29udGFpbnMgcG9ydGlv bnMgb2YgdGhlIExpYnJhcnkpLCByYXRoZXIgdGhhbiBhICJ3b3JrIHRoYXQg dXNlcyB0aGUKK2xpYnJhcnkiLiAgVGhlIGV4ZWN1dGFibGUgaXMgdGhlcmVm b3JlIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLgorU2VjdGlvbiA2IHN0YXRl cyB0ZXJtcyBmb3IgZGlzdHJpYnV0aW9uIG9mIHN1Y2ggZXhlY3V0YWJsZXMu CisKKyAgV2hlbiBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIgdXNl cyBtYXRlcmlhbCBmcm9tIGEgaGVhZGVyIGZpbGUKK3RoYXQgaXMgcGFydCBv ZiB0aGUgTGlicmFyeSwgdGhlIG9iamVjdCBjb2RlIGZvciB0aGUgd29yayBt YXkgYmUgYQorZGVyaXZhdGl2ZSB3b3JrIG9mIHRoZSBMaWJyYXJ5IGV2ZW4g dGhvdWdoIHRoZSBzb3VyY2UgY29kZSBpcyBub3QuCitXaGV0aGVyIHRoaXMg aXMgdHJ1ZSBpcyBlc3BlY2lhbGx5IHNpZ25pZmljYW50IGlmIHRoZSB3b3Jr IGNhbiBiZQorbGlua2VkIHdpdGhvdXQgdGhlIExpYnJhcnksIG9yIGlmIHRo ZSB3b3JrIGlzIGl0c2VsZiBhIGxpYnJhcnkuICBUaGUKK3RocmVzaG9sZCBm b3IgdGhpcyB0byBiZSB0cnVlIGlzIG5vdCBwcmVjaXNlbHkgZGVmaW5lZCBi eSBsYXcuCisKKyAgSWYgc3VjaCBhbiBvYmplY3QgZmlsZSB1c2VzIG9ubHkg bnVtZXJpY2FsIHBhcmFtZXRlcnMsIGRhdGEKK3N0cnVjdHVyZSBsYXlvdXRz IGFuZCBhY2Nlc3NvcnMsIGFuZCBzbWFsbCBtYWNyb3MgYW5kIHNtYWxsIGlu bGluZQorZnVuY3Rpb25zICh0ZW4gbGluZXMgb3IgbGVzcyBpbiBsZW5ndGgp LCB0aGVuIHRoZSB1c2Ugb2YgdGhlIG9iamVjdAorZmlsZSBpcyB1bnJlc3Ry aWN0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBsZWdhbGx5IGEg ZGVyaXZhdGl2ZQord29yay4gIChFeGVjdXRhYmxlcyBjb250YWluaW5nIHRo aXMgb2JqZWN0IGNvZGUgcGx1cyBwb3J0aW9ucyBvZiB0aGUKK0xpYnJhcnkg d2lsbCBzdGlsbCBmYWxsIHVuZGVyIFNlY3Rpb24gNi4pCisKKyAgT3RoZXJ3 aXNlLCBpZiB0aGUgd29yayBpcyBhIGRlcml2YXRpdmUgb2YgdGhlIExpYnJh cnksIHlvdSBtYXkKK2Rpc3RyaWJ1dGUgdGhlIG9iamVjdCBjb2RlIGZvciB0 aGUgd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiA2LgorQW55IGV4 ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhhdCB3b3JrIGFsc28gZmFsbCB1bmRl ciBTZWN0aW9uIDYsCit3aGV0aGVyIG9yIG5vdCB0aGV5IGFyZSBsaW5rZWQg ZGlyZWN0bHkgd2l0aCB0aGUgTGlicmFyeSBpdHNlbGYuCisKKyAgNi4gQXMg YW4gZXhjZXB0aW9uIHRvIHRoZSBTZWN0aW9ucyBhYm92ZSwgeW91IG1heSBh bHNvIGNvbWJpbmUgb3IKK2xpbmsgYSAid29yayB0aGF0IHVzZXMgdGhlIExp YnJhcnkiIHdpdGggdGhlIExpYnJhcnkgdG8gcHJvZHVjZSBhCit3b3JrIGNv bnRhaW5pbmcgcG9ydGlvbnMgb2YgdGhlIExpYnJhcnksIGFuZCBkaXN0cmli dXRlIHRoYXQgd29yawordW5kZXIgdGVybXMgb2YgeW91ciBjaG9pY2UsIHBy b3ZpZGVkIHRoYXQgdGhlIHRlcm1zIHBlcm1pdAorbW9kaWZpY2F0aW9uIG9m IHRoZSB3b3JrIGZvciB0aGUgY3VzdG9tZXIncyBvd24gdXNlIGFuZCByZXZl cnNlCitlbmdpbmVlcmluZyBmb3IgZGVidWdnaW5nIHN1Y2ggbW9kaWZpY2F0 aW9ucy4KKworICBZb3UgbXVzdCBnaXZlIHByb21pbmVudCBub3RpY2Ugd2l0 aCBlYWNoIGNvcHkgb2YgdGhlIHdvcmsgdGhhdCB0aGUKK0xpYnJhcnkgaXMg dXNlZCBpbiBpdCBhbmQgdGhhdCB0aGUgTGlicmFyeSBhbmQgaXRzIHVzZSBh cmUgY292ZXJlZCBieQordGhpcyBMaWNlbnNlLiAgWW91IG11c3Qgc3VwcGx5 IGEgY29weSBvZiB0aGlzIExpY2Vuc2UuICBJZiB0aGUgd29yaworZHVyaW5n IGV4ZWN1dGlvbiBkaXNwbGF5cyBjb3B5cmlnaHQgbm90aWNlcywgeW91IG11 c3QgaW5jbHVkZSB0aGUKK2NvcHlyaWdodCBub3RpY2UgZm9yIHRoZSBMaWJy YXJ5IGFtb25nIHRoZW0sIGFzIHdlbGwgYXMgYSByZWZlcmVuY2UKK2RpcmVj dGluZyB0aGUgdXNlciB0byB0aGUgY29weSBvZiB0aGlzIExpY2Vuc2UuICBB bHNvLCB5b3UgbXVzdCBkbyBvbmUKK29mIHRoZXNlIHRoaW5nczoKKworICAg IGEpIEFjY29tcGFueSB0aGUgd29yayB3aXRoIHRoZSBjb21wbGV0ZSBjb3Jy ZXNwb25kaW5nCisgICAgbWFjaGluZS1yZWFkYWJsZSBzb3VyY2UgY29kZSBm b3IgdGhlIExpYnJhcnkgaW5jbHVkaW5nIHdoYXRldmVyCisgICAgY2hhbmdl cyB3ZXJlIHVzZWQgaW4gdGhlIHdvcmsgKHdoaWNoIG11c3QgYmUgZGlzdHJp YnV0ZWQgdW5kZXIKKyAgICBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlKTsgYW5k LCBpZiB0aGUgd29yayBpcyBhbiBleGVjdXRhYmxlIGxpbmtlZAorICAgIHdp dGggdGhlIExpYnJhcnksIHdpdGggdGhlIGNvbXBsZXRlIG1hY2hpbmUtcmVh ZGFibGUgIndvcmsgdGhhdAorICAgIHVzZXMgdGhlIExpYnJhcnkiLCBhcyBv YmplY3QgY29kZSBhbmQvb3Igc291cmNlIGNvZGUsIHNvIHRoYXQgdGhlCisg ICAgdXNlciBjYW4gbW9kaWZ5IHRoZSBMaWJyYXJ5IGFuZCB0aGVuIHJlbGlu ayB0byBwcm9kdWNlIGEgbW9kaWZpZWQKKyAgICBleGVjdXRhYmxlIGNvbnRh aW5pbmcgdGhlIG1vZGlmaWVkIExpYnJhcnkuICAoSXQgaXMgdW5kZXJzdG9v ZAorICAgIHRoYXQgdGhlIHVzZXIgd2hvIGNoYW5nZXMgdGhlIGNvbnRlbnRz IG9mIGRlZmluaXRpb25zIGZpbGVzIGluIHRoZQorICAgIExpYnJhcnkgd2ls bCBub3QgbmVjZXNzYXJpbHkgYmUgYWJsZSB0byByZWNvbXBpbGUgdGhlIGFw cGxpY2F0aW9uCisgICAgdG8gdXNlIHRoZSBtb2RpZmllZCBkZWZpbml0aW9u cy4pCisKKyAgICBiKSBVc2UgYSBzdWl0YWJsZSBzaGFyZWQgbGlicmFyeSBt ZWNoYW5pc20gZm9yIGxpbmtpbmcgd2l0aCB0aGUKKyAgICBMaWJyYXJ5LiAg QSBzdWl0YWJsZSBtZWNoYW5pc20gaXMgb25lIHRoYXQgKDEpIHVzZXMgYXQg cnVuIHRpbWUgYQorICAgIGNvcHkgb2YgdGhlIGxpYnJhcnkgYWxyZWFkeSBw cmVzZW50IG9uIHRoZSB1c2VyJ3MgY29tcHV0ZXIgc3lzdGVtLAorICAgIHJh dGhlciB0aGFuIGNvcHlpbmcgbGlicmFyeSBmdW5jdGlvbnMgaW50byB0aGUg ZXhlY3V0YWJsZSwgYW5kICgyKQorICAgIHdpbGwgb3BlcmF0ZSBwcm9wZXJs eSB3aXRoIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgaWYK KyAgICB0aGUgdXNlciBpbnN0YWxscyBvbmUsIGFzIGxvbmcgYXMgdGhlIG1v ZGlmaWVkIHZlcnNpb24gaXMKKyAgICBpbnRlcmZhY2UtY29tcGF0aWJsZSB3 aXRoIHRoZSB2ZXJzaW9uIHRoYXQgdGhlIHdvcmsgd2FzIG1hZGUgd2l0aC4K KworICAgIGMpIEFjY29tcGFueSB0aGUgd29yayB3aXRoIGEgd3JpdHRlbiBv ZmZlciwgdmFsaWQgZm9yIGF0CisgICAgbGVhc3QgdGhyZWUgeWVhcnMsIHRv IGdpdmUgdGhlIHNhbWUgdXNlciB0aGUgbWF0ZXJpYWxzCisgICAgc3BlY2lm aWVkIGluIFN1YnNlY3Rpb24gNmEsIGFib3ZlLCBmb3IgYSBjaGFyZ2Ugbm8g bW9yZQorICAgIHRoYW4gdGhlIGNvc3Qgb2YgcGVyZm9ybWluZyB0aGlzIGRp c3RyaWJ1dGlvbi4KKworICAgIGQpIElmIGRpc3RyaWJ1dGlvbiBvZiB0aGUg d29yayBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5CisgICAg ZnJvbSBhIGRlc2lnbmF0ZWQgcGxhY2UsIG9mZmVyIGVxdWl2YWxlbnQgYWNj ZXNzIHRvIGNvcHkgdGhlIGFib3ZlCisgICAgc3BlY2lmaWVkIG1hdGVyaWFs cyBmcm9tIHRoZSBzYW1lIHBsYWNlLgorCisgICAgZSkgVmVyaWZ5IHRoYXQg dGhlIHVzZXIgaGFzIGFscmVhZHkgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZXNl CisgICAgbWF0ZXJpYWxzIG9yIHRoYXQgeW91IGhhdmUgYWxyZWFkeSBzZW50 IHRoaXMgdXNlciBhIGNvcHkuCisKKyAgRm9yIGFuIGV4ZWN1dGFibGUsIHRo ZSByZXF1aXJlZCBmb3JtIG9mIHRoZSAid29yayB0aGF0IHVzZXMgdGhlCitM aWJyYXJ5IiBtdXN0IGluY2x1ZGUgYW55IGRhdGEgYW5kIHV0aWxpdHkgcHJv Z3JhbXMgbmVlZGVkIGZvcgorcmVwcm9kdWNpbmcgdGhlIGV4ZWN1dGFibGUg ZnJvbSBpdC4gIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24sCit0 aGUgbWF0ZXJpYWxzIHRvIGJlIGRpc3RyaWJ1dGVkIG5lZWQgbm90IGluY2x1 ZGUgYW55dGhpbmcgdGhhdCBpcworbm9ybWFsbHkgZGlzdHJpYnV0ZWQgKGlu IGVpdGhlciBzb3VyY2Ugb3IgYmluYXJ5IGZvcm0pIHdpdGggdGhlIG1ham9y Citjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9m IHRoZSBvcGVyYXRpbmcgc3lzdGVtIG9uCit3aGljaCB0aGUgZXhlY3V0YWJs ZSBydW5zLCB1bmxlc3MgdGhhdCBjb21wb25lbnQgaXRzZWxmIGFjY29tcGFu aWVzCit0aGUgZXhlY3V0YWJsZS4KKworICBJdCBtYXkgaGFwcGVuIHRoYXQg dGhpcyByZXF1aXJlbWVudCBjb250cmFkaWN0cyB0aGUgbGljZW5zZQorcmVz dHJpY3Rpb25zIG9mIG90aGVyIHByb3ByaWV0YXJ5IGxpYnJhcmllcyB0aGF0 IGRvIG5vdCBub3JtYWxseQorYWNjb21wYW55IHRoZSBvcGVyYXRpbmcgc3lz dGVtLiAgU3VjaCBhIGNvbnRyYWRpY3Rpb24gbWVhbnMgeW91IGNhbm5vdAor dXNlIGJvdGggdGhlbSBhbmQgdGhlIExpYnJhcnkgdG9nZXRoZXIgaW4gYW4g ZXhlY3V0YWJsZSB0aGF0IHlvdQorZGlzdHJpYnV0ZS4KKworICA3LiBZb3Ug bWF5IHBsYWNlIGxpYnJhcnkgZmFjaWxpdGllcyB0aGF0IGFyZSBhIHdvcmsg YmFzZWQgb24gdGhlCitMaWJyYXJ5IHNpZGUtYnktc2lkZSBpbiBhIHNpbmds ZSBsaWJyYXJ5IHRvZ2V0aGVyIHdpdGggb3RoZXIgbGlicmFyeQorZmFjaWxp dGllcyBub3QgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UsIGFuZCBkaXN0cmli dXRlIHN1Y2ggYSBjb21iaW5lZAorbGlicmFyeSwgcHJvdmlkZWQgdGhhdCB0 aGUgc2VwYXJhdGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGJhc2VkIG9u Cit0aGUgTGlicmFyeSBhbmQgb2YgdGhlIG90aGVyIGxpYnJhcnkgZmFjaWxp dGllcyBpcyBvdGhlcndpc2UKK3Blcm1pdHRlZCwgYW5kIHByb3ZpZGVkIHRo YXQgeW91IGRvIHRoZXNlIHR3byB0aGluZ3M6CisKKyAgICBhKSBBY2NvbXBh bnkgdGhlIGNvbWJpbmVkIGxpYnJhcnkgd2l0aCBhIGNvcHkgb2YgdGhlIHNh bWUgd29yaworICAgIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCB1bmNvbWJpbmVk IHdpdGggYW55IG90aGVyIGxpYnJhcnkKKyAgICBmYWNpbGl0aWVzLiAgVGhp cyBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUK KyAgICBTZWN0aW9ucyBhYm92ZS4KKworICAgIGIpIEdpdmUgcHJvbWluZW50 IG5vdGljZSB3aXRoIHRoZSBjb21iaW5lZCBsaWJyYXJ5IG9mIHRoZSBmYWN0 CisgICAgdGhhdCBwYXJ0IG9mIGl0IGlzIGEgd29yayBiYXNlZCBvbiB0aGUg TGlicmFyeSwgYW5kIGV4cGxhaW5pbmcKKyAgICB3aGVyZSB0byBmaW5kIHRo ZSBhY2NvbXBhbnlpbmcgdW5jb21iaW5lZCBmb3JtIG9mIHRoZSBzYW1lIHdv cmsuCisKKyAgOC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNl bnNlLCBsaW5rIHdpdGgsIG9yIGRpc3RyaWJ1dGUKK3RoZSBMaWJyYXJ5IGV4 Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNl LiAgQW55CithdHRlbXB0IG90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1 YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3IKK2Rpc3RyaWJ1dGUgdGhlIExpYnJh cnkgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUg eW91cgorcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4gIEhvd2V2ZXIsIHBh cnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLAorb3IgcmlnaHRzLCBm cm9tIHlvdSB1bmRlciB0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVp ciBsaWNlbnNlcwordGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2ggcGFydGll cyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgorCisgIDkuIFlvdSBhcmUg bm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlv dSBoYXZlIG5vdAorc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNl IGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKK2Rpc3RyaWJ1 dGUgdGhlIExpYnJhcnkgb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuICBUaGVz ZSBhY3Rpb25zIGFyZQorcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5v dCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQorbW9kaWZ5 aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgTGlicmFyeSAob3IgYW55IHdvcmsg YmFzZWQgb24gdGhlCitMaWJyYXJ5KSwgeW91IGluZGljYXRlIHlvdXIgYWNj ZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28sIGFuZAorYWxsIGl0 cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0 aW5nIG9yIG1vZGlmeWluZwordGhlIExpYnJhcnkgb3Igd29ya3MgYmFzZWQg b24gaXQuCisKKyAgMTAuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRo ZSBMaWJyYXJ5IChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKK0xpYnJhcnkp LCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNl bnNlIGZyb20gdGhlCitvcmlnaW5hbCBsaWNlbnNvciB0byBjb3B5LCBkaXN0 cmlidXRlLCBsaW5rIHdpdGggb3IgbW9kaWZ5IHRoZSBMaWJyYXJ5CitzdWJq ZWN0IHRvIHRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBu b3QgaW1wb3NlIGFueSBmdXJ0aGVyCityZXN0cmljdGlvbnMgb24gdGhlIHJl Y2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJl aW4uCitZb3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNv bXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB3aXRoCit0aGlzIExpY2Vuc2Uu CisKKyAgMTEuIElmLCBhcyBhIGNvbnNlcXVlbmNlIG9mIGEgY291cnQganVk Z21lbnQgb3IgYWxsZWdhdGlvbiBvZiBwYXRlbnQKK2luZnJpbmdlbWVudCBv ciBmb3IgYW55IG90aGVyIHJlYXNvbiAobm90IGxpbWl0ZWQgdG8gcGF0ZW50 IGlzc3VlcyksCitjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hl dGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCitvdGhlcndpc2Up IHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vu c2UsIHRoZXkgZG8gbm90CitleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlv bnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdAorZGlzdHJpYnV0 ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdh dGlvbnMgdW5kZXIgdGhpcworTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRp bmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdQor bWF5IG5vdCBkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IGF0IGFsbC4gIEZvciBl eGFtcGxlLCBpZiBhIHBhdGVudAorbGljZW5zZSB3b3VsZCBub3QgcGVybWl0 IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgTGlicmFyeSBi eQorYWxsIHRob3NlIHdobyByZWNlaXZlIGNvcGllcyBkaXJlY3RseSBvciBp bmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuCit0aGUgb25seSB3YXkgeW91 IGNvdWxkIHNhdGlzZnkgYm90aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxk IGJlIHRvCityZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9m IHRoZSBMaWJyYXJ5LgorCitJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNlY3Rp b24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIgYW55 CitwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhl IHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gYXBwbHksCithbmQgdGhlIHNlY3Rp b24gYXMgYSB3aG9sZSBpcyBpbnRlbmRlZCB0byBhcHBseSBpbiBvdGhlciBj aXJjdW1zdGFuY2VzLgorCitJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhp cyBzZWN0aW9uIHRvIGluZHVjZSB5b3UgdG8gaW5mcmluZ2UgYW55CitwYXRl bnRzIG9yIG90aGVyIHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250 ZXN0IHZhbGlkaXR5IG9mIGFueQorc3VjaCBjbGFpbXM7IHRoaXMgc2VjdGlv biBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5nIHRoZQoraW50 ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3YXJlIGRpc3RyaWJ1dGlvbiBzeXN0 ZW0gd2hpY2ggaXMKK2ltcGxlbWVudGVkIGJ5IHB1YmxpYyBsaWNlbnNlIHBy YWN0aWNlcy4gIE1hbnkgcGVvcGxlIGhhdmUgbWFkZQorZ2VuZXJvdXMgY29u dHJpYnV0aW9ucyB0byB0aGUgd2lkZSByYW5nZSBvZiBzb2Z0d2FyZSBkaXN0 cmlidXRlZAordGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBj b25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKK3N5c3RlbTsgaXQgaXMg dXAgdG8gdGhlIGF1dGhvci9kb25vciB0byBkZWNpZGUgaWYgaGUgb3Igc2hl IGlzIHdpbGxpbmcKK3RvIGRpc3RyaWJ1dGUgc29mdHdhcmUgdGhyb3VnaCBh bnkgb3RoZXIgc3lzdGVtIGFuZCBhIGxpY2Vuc2VlIGNhbm5vdAoraW1wb3Nl IHRoYXQgY2hvaWNlLgorCitUaGlzIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8g bWFrZSB0aG9yb3VnaGx5IGNsZWFyIHdoYXQgaXMgYmVsaWV2ZWQgdG8KK2Jl IGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgor CisgIDEyLiBJZiB0aGUgZGlzdHJpYnV0aW9uIGFuZC9vciB1c2Ugb2YgdGhl IExpYnJhcnkgaXMgcmVzdHJpY3RlZCBpbgorY2VydGFpbiBjb3VudHJpZXMg ZWl0aGVyIGJ5IHBhdGVudHMgb3IgYnkgY29weXJpZ2h0ZWQgaW50ZXJmYWNl cywgdGhlCitvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMg dGhlIExpYnJhcnkgdW5kZXIgdGhpcyBMaWNlbnNlIG1heSBhZGQKK2FuIGV4 cGxpY2l0IGdlb2dyYXBoaWNhbCBkaXN0cmlidXRpb24gbGltaXRhdGlvbiBl eGNsdWRpbmcgdGhvc2UgY291bnRyaWVzLAorc28gdGhhdCBkaXN0cmlidXRp b24gaXMgcGVybWl0dGVkIG9ubHkgaW4gb3IgYW1vbmcgY291bnRyaWVzIG5v dCB0aHVzCitleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNl IGluY29ycG9yYXRlcyB0aGUgbGltaXRhdGlvbiBhcyBpZgord3JpdHRlbiBp biB0aGUgYm9keSBvZiB0aGlzIExpY2Vuc2UuCisKKyAgMTMuIFRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQv b3IgbmV3Cit2ZXJzaW9ucyBvZiB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuCitTdWNoIG5ldyB2ZXJzaW9u cyB3aWxsIGJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZl cnNpb24sCitidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8gYWRkcmVzcyBu ZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCisKK0VhY2ggdmVyc2lvbiBpcyBn aXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhl IExpYnJhcnkKK3NwZWNpZmllcyBhIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMg TGljZW5zZSB3aGljaCBhcHBsaWVzIHRvIGl0IGFuZAorImFueSBsYXRlciB2 ZXJzaW9uIiwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiBmb2xsb3dpbmcgdGhl IHRlcm1zIGFuZAorY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCB2ZXJzaW9u IG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieQordGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZSBMaWJyYXJ5IGRvZXMg bm90IHNwZWNpZnkgYQorbGljZW5zZSB2ZXJzaW9uIG51bWJlciwgeW91IG1h eSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkKK3RoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisKKyAgMTQuIElmIHlvdSB3aXNo IHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBMaWJyYXJ5IGludG8gb3Ro ZXIgZnJlZQorcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlv bnMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHRoZXNlLAord3JpdGUgdG8gdGhl IGF1dGhvciB0byBhc2sgZm9yIHBlcm1pc3Npb24uICBGb3Igc29mdHdhcmUg d2hpY2ggaXMKK2NvcHlyaWdodGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlCitTb2Z0d2FyZSBGb3VuZGF0 aW9uOyB3ZSBzb21ldGltZXMgbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAg T3VyCitkZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxz IG9mIHByZXNlcnZpbmcgdGhlIGZyZWUgc3RhdHVzCitvZiBhbGwgZGVyaXZh dGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kIG9mIHByb21vdGluZyB0 aGUgc2hhcmluZworYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4K KworICAgICAgICAgICAgICAgIE5PIFdBUlJBTlRZCisKKyAgMTUuIEJFQ0FV U0UgVEhFIExJQlJBUlkgSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRI RVJFIElTIE5PCitXQVJSQU5UWSBGT1IgVEhFIExJQlJBUlksIFRPIFRIRSBF WFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLgorRVhDRVBUIFdI RU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQg SE9MREVSUyBBTkQvT1IKK09USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgTElC UkFSWSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCitLSU5ELCBF SVRIRVIgRVhQUkVTU0VEIE9SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5P VCBMSU1JVEVEIFRPLCBUSEUKK0lNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorUFVS UE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQg UEVSRk9STUFOQ0UgT0YgVEhFCitMSUJSQVJZIElTIFdJVEggWU9VLiAgU0hP VUxEIFRIRSBMSUJSQVJZIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRQor VEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBP UiBDT1JSRUNUSU9OLgorCisgIDE2LiBJTiBOTyBFVkVOVCBVTkxFU1MgUkVR VUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOCitXUklU SU5HIFdJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQ QVJUWSBXSE8gTUFZIE1PRElGWQorQU5EL09SIFJFRElTVFJJQlVURSBUSEUg TElCUkFSWSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UK K0ZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUws IElOQ0lERU5UQUwgT1IKK0NPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5H IE9VVCBPRiBUSEUgVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFCitMSUJS QVJZIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIExPU1MgT0YgREFU QSBPUiBEQVRBIEJFSU5HCitSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NF UyBTVVNUQUlORUQgQlkgWU9VIE9SIFRISVJEIFBBUlRJRVMgT1IgQQorRkFJ TFVSRSBPRiBUSEUgTElCUkFSWSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVS IFNPRlRXQVJFKSwgRVZFTiBJRgorU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFS VFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD SAorREFNQUdFUy4KKworICAgICAgICAgICAgICAgIEVORCBPRiBURVJNUyBB TkQgQ09ORElUSU9OUworCisgICAgICAgICAgIEhvdyB0byBBcHBseSBUaGVz ZSBUZXJtcyB0byBZb3VyIE5ldyBMaWJyYXJpZXMKKworICBJZiB5b3UgZGV2 ZWxvcCBhIG5ldyBsaWJyYXJ5LCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2Yg dGhlIGdyZWF0ZXN0Citwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgd2Ug cmVjb21tZW5kIG1ha2luZyBpdCBmcmVlIHNvZnR3YXJlIHRoYXQKK2V2ZXJ5 b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZS4gIFlvdSBjYW4gZG8g c28gYnkgcGVybWl0dGluZworcmVkaXN0cmlidXRpb24gdW5kZXIgdGhlc2Ug dGVybXMgKG9yLCBhbHRlcm5hdGl2ZWx5LCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlCitvcmRpbmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlKS4KKworICBU byBhcHBseSB0aGVzZSB0ZXJtcywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90 aWNlcyB0byB0aGUgbGlicmFyeS4gIEl0IGlzCitzYWZlc3QgdG8gYXR0YWNo IHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9z dCBlZmZlY3RpdmVseQorY29udmV5IHRoZSBleGNsdXNpb24gb2Ygd2FycmFu dHk7IGFuZCBlYWNoIGZpbGUgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdGhlCisi Y29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1 bGwgbm90aWNlIGlzIGZvdW5kLgorCisgICAgPG9uZSBsaW5lIHRvIGdpdmUg dGhlIGxpYnJhcnkncyBuYW1lIGFuZCBhIGJyaWVmIGlkZWEgb2Ygd2hhdCBp dCBkb2VzLj4KKyAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2Yg YXV0aG9yPgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKKyAgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx ICBVU0EKKworQWxzbyBhZGQgaW5mb3JtYXRpb24gb24gaG93IHRvIGNvbnRh Y3QgeW91IGJ5IGVsZWN0cm9uaWMgYW5kIHBhcGVyIG1haWwuCisKK1lvdSBz aG91bGQgYWxzbyBnZXQgeW91ciBlbXBsb3llciAoaWYgeW91IHdvcmsgYXMg YSBwcm9ncmFtbWVyKSBvciB5b3VyCitzY2hvb2wsIGlmIGFueSwgdG8gc2ln biBhICJjb3B5cmlnaHQgZGlzY2xhaW1lciIgZm9yIHRoZSBsaWJyYXJ5LCBp ZgorbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5h bWVzOgorCisgIFlveW9keW5lLCBJbmMuLCBoZXJlYnkgZGlzY2xhaW1zIGFs bCBjb3B5cmlnaHQgaW50ZXJlc3QgaW4gdGhlCisgIGxpYnJhcnkgYEZyb2In IChhIGxpYnJhcnkgZm9yIHR3ZWFraW5nIGtub2JzKSB3cml0dGVuIGJ5IEph bWVzIFJhbmRvbSBIYWNrZXIuCisKKyAgPHNpZ25hdHVyZSBvZiBUeSBDb29u PiwgMSBBcHJpbCAxOTkwCisgIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNl CisKK1RoYXQncyBhbGwgdGhlcmUgaXMgdG8gaXQhCisKKworPT09PT09PT09 PT09PT09PT09CitMSUNFTlNFIC0gcHl0aG9uLGFyZ3BhcnNlLHdzZ2lyZWYs aW1wb3J0bGliCis9PT09PT09PT09PT09PT09PT0KKworQS4gSElTVE9SWSBP RiBUSEUgU09GVFdBUkUKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisK K1B5dGhvbiB3YXMgY3JlYXRlZCBpbiB0aGUgZWFybHkgMTk5MHMgYnkgR3Vp ZG8gdmFuIFJvc3N1bSBhdCBTdGljaHRpbmcKK01hdGhlbWF0aXNjaCBDZW50 cnVtIChDV0ksIHNlZSBodHRwOi8vd3d3LmN3aS5ubCkgaW4gdGhlIE5ldGhl cmxhbmRzCithcyBhIHN1Y2Nlc3NvciBvZiBhIGxhbmd1YWdlIGNhbGxlZCBB QkMuICBHdWlkbyByZW1haW5zIFB5dGhvbidzCitwcmluY2lwYWwgYXV0aG9y LCBhbHRob3VnaCBpdCBpbmNsdWRlcyBtYW55IGNvbnRyaWJ1dGlvbnMgZnJv bSBvdGhlcnMuCisKK0luIDE5OTUsIEd1aWRvIGNvbnRpbnVlZCBoaXMgd29y ayBvbiBQeXRob24gYXQgdGhlIENvcnBvcmF0aW9uIGZvcgorTmF0aW9uYWwg UmVzZWFyY2ggSW5pdGlhdGl2ZXMgKENOUkksIHNlZSBodHRwOi8vd3d3LmNu cmkucmVzdG9uLnZhLnVzKQoraW4gUmVzdG9uLCBWaXJnaW5pYSB3aGVyZSBo ZSByZWxlYXNlZCBzZXZlcmFsIHZlcnNpb25zIG9mIHRoZQorc29mdHdhcmUu CisKK0luIE1heSAyMDAwLCBHdWlkbyBhbmQgdGhlIFB5dGhvbiBjb3JlIGRl dmVsb3BtZW50IHRlYW0gbW92ZWQgdG8KK0JlT3Blbi5jb20gdG8gZm9ybSB0 aGUgQmVPcGVuIFB5dGhvbkxhYnMgdGVhbS4gIEluIE9jdG9iZXIgb2YgdGhl IHNhbWUKK3llYXIsIHRoZSBQeXRob25MYWJzIHRlYW0gbW92ZWQgdG8gRGln aXRhbCBDcmVhdGlvbnMgKG5vdyBab3BlCitDb3Jwb3JhdGlvbiwgc2VlIGh0 dHA6Ly93d3cuem9wZS5jb20pLiAgSW4gMjAwMSwgdGhlIFB5dGhvbiBTb2Z0 d2FyZQorRm91bmRhdGlvbiAoUFNGLCBzZWUgaHR0cDovL3d3dy5weXRob24u b3JnL3BzZi8pIHdhcyBmb3JtZWQsIGEKK25vbi1wcm9maXQgb3JnYW5pemF0 aW9uIGNyZWF0ZWQgc3BlY2lmaWNhbGx5IHRvIG93biBQeXRob24tcmVsYXRl ZAorSW50ZWxsZWN0dWFsIFByb3BlcnR5LiAgWm9wZSBDb3Jwb3JhdGlvbiBp cyBhIHNwb25zb3JpbmcgbWVtYmVyIG9mCit0aGUgUFNGLgorCitBbGwgUHl0 aG9uIHJlbGVhc2VzIGFyZSBPcGVuIFNvdXJjZSAoc2VlIGh0dHA6Ly93d3cu b3BlbnNvdXJjZS5vcmcgZm9yCit0aGUgT3BlbiBTb3VyY2UgRGVmaW5pdGlv bikuICBIaXN0b3JpY2FsbHksIG1vc3QsIGJ1dCBub3QgYWxsLCBQeXRob24K K3JlbGVhc2VzIGhhdmUgYWxzbyBiZWVuIEdQTC1jb21wYXRpYmxlOyB0aGUg dGFibGUgYmVsb3cgc3VtbWFyaXplcwordGhlIHZhcmlvdXMgcmVsZWFzZXMu CisKKyAgICBSZWxlYXNlICAgICAgICAgRGVyaXZlZCAgICAgWWVhciAgICAg ICAgT3duZXIgICAgICAgR1BMLQorICAgICAgICAgICAgICAgICAgICBmcm9t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlPyAo MSkKKworICAgIDAuOS4wIHRocnUgMS4yICAgICAgICAgICAgICAxOTkxLTE5 OTUgICBDV0kgICAgICAgICB5ZXMKKyAgICAxLjMgdGhydSAxLjUuMiAgMS4y ICAgICAgICAgMTk5NS0xOTk5ICAgQ05SSSAgICAgICAgeWVzCisgICAgMS42 ICAgICAgICAgICAgIDEuNS4yICAgICAgIDIwMDAgICAgICAgIENOUkkgICAg ICAgIG5vCisgICAgMi4wICAgICAgICAgICAgIDEuNiAgICAgICAgIDIwMDAg ICAgICAgIEJlT3Blbi5jb20gIG5vCisgICAgMS42LjEgICAgICAgICAgIDEu NiAgICAgICAgIDIwMDEgICAgICAgIENOUkkgICAgICAgIHllcyAoMikKKyAg ICAyLjEgICAgICAgICAgICAgMi4wKzEuNi4xICAgMjAwMSAgICAgICAgUFNG ICAgICAgICAgbm8KKyAgICAyLjAuMSAgICAgICAgICAgMi4wKzEuNi4xICAg MjAwMSAgICAgICAgUFNGICAgICAgICAgeWVzCisgICAgMi4xLjEgICAgICAg ICAgIDIuMSsyLjAuMSAgIDIwMDEgICAgICAgIFBTRiAgICAgICAgIHllcwor ICAgIDIuMS4yICAgICAgICAgICAyLjEuMSAgICAgICAyMDAyICAgICAgICBQ U0YgICAgICAgICB5ZXMKKyAgICAyLjEuMyAgICAgICAgICAgMi4xLjIgICAg ICAgMjAwMiAgICAgICAgUFNGICAgICAgICAgeWVzCisgICAgMi4yIGFuZCBh Ym92ZSAgIDIuMS4xICAgICAgIDIwMDEtbm93ICAgIFBTRiAgICAgICAgIHll cworCitGb290bm90ZXM6CisKKygxKSBHUEwtY29tcGF0aWJsZSBkb2Vzbid0 IG1lYW4gdGhhdCB3ZSdyZSBkaXN0cmlidXRpbmcgUHl0aG9uIHVuZGVyCisg ICAgdGhlIEdQTC4gIEFsbCBQeXRob24gbGljZW5zZXMsIHVubGlrZSB0aGUg R1BMLCBsZXQgeW91IGRpc3RyaWJ1dGUKKyAgICBhIG1vZGlmaWVkIHZlcnNp b24gd2l0aG91dCBtYWtpbmcgeW91ciBjaGFuZ2VzIG9wZW4gc291cmNlLiAg VGhlCisgICAgR1BMLWNvbXBhdGlibGUgbGljZW5zZXMgbWFrZSBpdCBwb3Nz aWJsZSB0byBjb21iaW5lIFB5dGhvbiB3aXRoCisgICAgb3RoZXIgc29mdHdh cmUgdGhhdCBpcyByZWxlYXNlZCB1bmRlciB0aGUgR1BMOyB0aGUgb3RoZXJz IGRvbid0LgorCisoMikgQWNjb3JkaW5nIHRvIFJpY2hhcmQgU3RhbGxtYW4s IDEuNi4xIGlzIG5vdCBHUEwtY29tcGF0aWJsZSwKKyAgICBiZWNhdXNlIGl0 cyBsaWNlbnNlIGhhcyBhIGNob2ljZSBvZiBsYXcgY2xhdXNlLiAgQWNjb3Jk aW5nIHRvCisgICAgQ05SSSwgaG93ZXZlciwgU3RhbGxtYW4ncyBsYXd5ZXIg aGFzIHRvbGQgQ05SSSdzIGxhd3llciB0aGF0IDEuNi4xCisgICAgaXMgIm5v dCBpbmNvbXBhdGlibGUiIHdpdGggdGhlIEdQTC4KKworVGhhbmtzIHRvIHRo ZSBtYW55IG91dHNpZGUgdm9sdW50ZWVycyB3aG8gaGF2ZSB3b3JrZWQgdW5k ZXIgR3VpZG8ncworZGlyZWN0aW9uIHRvIG1ha2UgdGhlc2UgcmVsZWFzZXMg cG9zc2libGUuCisKKworQi4gVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIEFD Q0VTU0lORyBPUiBPVEhFUldJU0UgVVNJTkcgUFlUSE9OCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKworUFlUSE9OIFNPRlRXQVJFIEZPVU5EQVRJT04gTElDRU5T RSBWRVJTSU9OIDIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisKKzEuIFRoaXMgTElDRU5TRSBBR1JFRU1FTlQgaXMg YmV0d2VlbiB0aGUgUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24KKygiUFNG IiksIGFuZCB0aGUgSW5kaXZpZHVhbCBvciBPcmdhbml6YXRpb24gKCJMaWNl bnNlZSIpIGFjY2Vzc2luZyBhbmQKK290aGVyd2lzZSB1c2luZyB0aGlzIHNv ZnR3YXJlICgiUHl0aG9uIikgaW4gc291cmNlIG9yIGJpbmFyeSBmb3JtIGFu ZAoraXRzIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbi4KKworMi4gU3ViamVj dCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNl IEFncmVlbWVudCwgUFNGIGhlcmVieQorZ3JhbnRzIExpY2Vuc2VlIGEgbm9u ZXhjbHVzaXZlLCByb3lhbHR5LWZyZWUsIHdvcmxkLXdpZGUgbGljZW5zZSB0 byByZXByb2R1Y2UsCithbmFseXplLCB0ZXN0LCBwZXJmb3JtIGFuZC9vciBk aXNwbGF5IHB1YmxpY2x5LCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3MsCitk aXN0cmlidXRlLCBhbmQgb3RoZXJ3aXNlIHVzZSBQeXRob24gYWxvbmUgb3Ig aW4gYW55IGRlcml2YXRpdmUgdmVyc2lvbiwKK3Byb3ZpZGVkLCBob3dldmVy LCB0aGF0IFBTRidzIExpY2Vuc2UgQWdyZWVtZW50IGFuZCBQU0YncyBub3Rp Y2Ugb2YgY29weXJpZ2h0LAoraS5lLiwgIkNvcHlyaWdodCAoYykgMjAwMSwg MjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw OSwgMjAxMCwKKzIwMTEsIDIwMTIsIDIwMTMsIDIwMTQgUHl0aG9uIFNvZnR3 YXJlIEZvdW5kYXRpb247IEFsbCBSaWdodHMgUmVzZXJ2ZWQiIGFyZSByZXRh aW5lZAoraW4gUHl0aG9uIGFsb25lIG9yIGluIGFueSBkZXJpdmF0aXZlIHZl cnNpb24gcHJlcGFyZWQgYnkgTGljZW5zZWUuCisKKzMuIEluIHRoZSBldmVu dCBMaWNlbnNlZSBwcmVwYXJlcyBhIGRlcml2YXRpdmUgd29yayB0aGF0IGlz IGJhc2VkIG9uCitvciBpbmNvcnBvcmF0ZXMgUHl0aG9uIG9yIGFueSBwYXJ0 IHRoZXJlb2YsIGFuZCB3YW50cyB0byBtYWtlCit0aGUgZGVyaXZhdGl2ZSB3 b3JrIGF2YWlsYWJsZSB0byBvdGhlcnMgYXMgcHJvdmlkZWQgaGVyZWluLCB0 aGVuCitMaWNlbnNlZSBoZXJlYnkgYWdyZWVzIHRvIGluY2x1ZGUgaW4gYW55 IHN1Y2ggd29yayBhIGJyaWVmIHN1bW1hcnkgb2YKK3RoZSBjaGFuZ2VzIG1h ZGUgdG8gUHl0aG9uLgorCis0LiBQU0YgaXMgbWFraW5nIFB5dGhvbiBhdmFp bGFibGUgdG8gTGljZW5zZWUgb24gYW4gIkFTIElTIgorYmFzaXMuICBQU0Yg TUFLRVMgTk8gUkVQUkVTRU5UQVRJT05TIE9SIFdBUlJBTlRJRVMsIEVYUFJF U1MgT1IKK0lNUExJRUQuICBCWSBXQVkgT0YgRVhBTVBMRSwgQlVUIE5PVCBM SU1JVEFUSU9OLCBQU0YgTUFLRVMgTk8gQU5ECitESVNDTEFJTVMgQU5ZIFJF UFJFU0VOVEFUSU9OIE9SIFdBUlJBTlRZIE9GIE1FUkNIQU5UQUJJTElUWSBP UiBGSVRORVNTCitGT1IgQU5ZIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBUSEFU IFRIRSBVU0UgT0YgUFlUSE9OIFdJTEwgTk9UCitJTkZSSU5HRSBBTlkgVEhJ UkQgUEFSVFkgUklHSFRTLgorCis1LiBQU0YgU0hBTEwgTk9UIEJFIExJQUJM RSBUTyBMSUNFTlNFRSBPUiBBTlkgT1RIRVIgVVNFUlMgT0YgUFlUSE9OCitG T1IgQU5ZIElOQ0lERU5UQUwsIFNQRUNJQUwsIE9SIENPTlNFUVVFTlRJQUwg REFNQUdFUyBPUiBMT1NTIEFTCitBIFJFU1VMVCBPRiBNT0RJRllJTkcsIERJ U1RSSUJVVElORywgT1IgT1RIRVJXSVNFIFVTSU5HIFBZVEhPTiwKK09SIEFO WSBERVJJVkFUSVZFIFRIRVJFT0YsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg UE9TU0lCSUxJVFkgVEhFUkVPRi4KKworNi4gVGhpcyBMaWNlbnNlIEFncmVl bWVudCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHVwb24gYSBtYXRl cmlhbAorYnJlYWNoIG9mIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucy4KKwor Ny4gTm90aGluZyBpbiB0aGlzIExpY2Vuc2UgQWdyZWVtZW50IHNoYWxsIGJl IGRlZW1lZCB0byBjcmVhdGUgYW55CityZWxhdGlvbnNoaXAgb2YgYWdlbmN5 LCBwYXJ0bmVyc2hpcCwgb3Igam9pbnQgdmVudHVyZSBiZXR3ZWVuIFBTRiBh bmQKK0xpY2Vuc2VlLiAgVGhpcyBMaWNlbnNlIEFncmVlbWVudCBkb2VzIG5v dCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSBQU0YKK3RyYWRlbWFya3Mgb3Ig dHJhZGUgbmFtZSBpbiBhIHRyYWRlbWFyayBzZW5zZSB0byBlbmRvcnNlIG9y IHByb21vdGUKK3Byb2R1Y3RzIG9yIHNlcnZpY2VzIG9mIExpY2Vuc2VlLCBv ciBhbnkgdGhpcmQgcGFydHkuCisKKzguIEJ5IGNvcHlpbmcsIGluc3RhbGxp bmcgb3Igb3RoZXJ3aXNlIHVzaW5nIFB5dGhvbiwgTGljZW5zZWUKK2FncmVl cyB0byBiZSBib3VuZCBieSB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2Yg dGhpcyBMaWNlbnNlCitBZ3JlZW1lbnQuCisKKworQkVPUEVOLkNPTSBMSUNF TlNFIEFHUkVFTUVOVCBGT1IgUFlUSE9OIDIuMAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitCRU9QRU4gUFlUSE9O IE9QRU4gU09VUkNFIExJQ0VOU0UgQUdSRUVNRU5UIFZFUlNJT04gMQorCisx LiBUaGlzIExJQ0VOU0UgQUdSRUVNRU5UIGlzIGJldHdlZW4gQmVPcGVuLmNv bSAoIkJlT3BlbiIpLCBoYXZpbmcgYW4KK29mZmljZSBhdCAxNjAgU2FyYXRv Z2EgQXZlbnVlLCBTYW50YSBDbGFyYSwgQ0EgOTUwNTEsIGFuZCB0aGUKK0lu ZGl2aWR1YWwgb3IgT3JnYW5pemF0aW9uICgiTGljZW5zZWUiKSBhY2Nlc3Np bmcgYW5kIG90aGVyd2lzZSB1c2luZwordGhpcyBzb2Z0d2FyZSBpbiBzb3Vy Y2Ugb3IgYmluYXJ5IGZvcm0gYW5kIGl0cyBhc3NvY2lhdGVkCitkb2N1bWVu dGF0aW9uICgidGhlIFNvZnR3YXJlIikuCisKKzIuIFN1YmplY3QgdG8gdGhl IHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQmVPcGVuIFB5dGhvbiBM aWNlbnNlCitBZ3JlZW1lbnQsIEJlT3BlbiBoZXJlYnkgZ3JhbnRzIExpY2Vu c2VlIGEgbm9uLWV4Y2x1c2l2ZSwKK3JveWFsdHktZnJlZSwgd29ybGQtd2lk ZSBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgYW5hbHl6ZSwgdGVzdCwgcGVyZm9y bQorYW5kL29yIGRpc3BsYXkgcHVibGljbHksIHByZXBhcmUgZGVyaXZhdGl2 ZSB3b3JrcywgZGlzdHJpYnV0ZSwgYW5kCitvdGhlcndpc2UgdXNlIHRoZSBT b2Z0d2FyZSBhbG9uZSBvciBpbiBhbnkgZGVyaXZhdGl2ZSB2ZXJzaW9uLAor cHJvdmlkZWQsIGhvd2V2ZXIsIHRoYXQgdGhlIEJlT3BlbiBQeXRob24gTGlj ZW5zZSBpcyByZXRhaW5lZCBpbiB0aGUKK1NvZnR3YXJlLCBhbG9uZSBvciBp biBhbnkgZGVyaXZhdGl2ZSB2ZXJzaW9uIHByZXBhcmVkIGJ5IExpY2Vuc2Vl LgorCiszLiBCZU9wZW4gaXMgbWFraW5nIHRoZSBTb2Z0d2FyZSBhdmFpbGFi bGUgdG8gTGljZW5zZWUgb24gYW4gIkFTIElTIgorYmFzaXMuICBCRU9QRU4g TUFLRVMgTk8gUkVQUkVTRU5UQVRJT05TIE9SIFdBUlJBTlRJRVMsIEVYUFJF U1MgT1IKK0lNUExJRUQuICBCWSBXQVkgT0YgRVhBTVBMRSwgQlVUIE5PVCBM SU1JVEFUSU9OLCBCRU9QRU4gTUFLRVMgTk8gQU5ECitESVNDTEFJTVMgQU5Z IFJFUFJFU0VOVEFUSU9OIE9SIFdBUlJBTlRZIE9GIE1FUkNIQU5UQUJJTElU WSBPUiBGSVRORVNTCitGT1IgQU5ZIFBBUlRJQ1VMQVIgUFVSUE9TRSBPUiBU SEFUIFRIRSBVU0UgT0YgVEhFIFNPRlRXQVJFIFdJTEwgTk9UCitJTkZSSU5H RSBBTlkgVEhJUkQgUEFSVFkgUklHSFRTLgorCis0LiBCRU9QRU4gU0hBTEwg Tk9UIEJFIExJQUJMRSBUTyBMSUNFTlNFRSBPUiBBTlkgT1RIRVIgVVNFUlMg T0YgVEhFCitTT0ZUV0FSRSBGT1IgQU5ZIElOQ0lERU5UQUwsIFNQRUNJQUws IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBMT1NTCitBUyBBIFJFU1VM VCBPRiBVU0lORywgTU9ESUZZSU5HIE9SIERJU1RSSUJVVElORyBUSEUgU09G VFdBUkUsIE9SIEFOWQorREVSSVZBVElWRSBUSEVSRU9GLCBFVkVOIElGIEFE VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIFRIRVJFT0YuCisKKzUuIFRoaXMg TGljZW5zZSBBZ3JlZW1lbnQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0 ZSB1cG9uIGEgbWF0ZXJpYWwKK2JyZWFjaCBvZiBpdHMgdGVybXMgYW5kIGNv bmRpdGlvbnMuCisKKzYuIFRoaXMgTGljZW5zZSBBZ3JlZW1lbnQgc2hhbGwg YmUgZ292ZXJuZWQgYnkgYW5kIGludGVycHJldGVkIGluIGFsbAorcmVzcGVj dHMgYnkgdGhlIGxhdyBvZiB0aGUgU3RhdGUgb2YgQ2FsaWZvcm5pYSwgZXhj bHVkaW5nIGNvbmZsaWN0IG9mCitsYXcgcHJvdmlzaW9ucy4gIE5vdGhpbmcg aW4gdGhpcyBMaWNlbnNlIEFncmVlbWVudCBzaGFsbCBiZSBkZWVtZWQgdG8K K2NyZWF0ZSBhbnkgcmVsYXRpb25zaGlwIG9mIGFnZW5jeSwgcGFydG5lcnNo aXAsIG9yIGpvaW50IHZlbnR1cmUKK2JldHdlZW4gQmVPcGVuIGFuZCBMaWNl bnNlZS4gIFRoaXMgTGljZW5zZSBBZ3JlZW1lbnQgZG9lcyBub3QgZ3JhbnQK K3Blcm1pc3Npb24gdG8gdXNlIEJlT3BlbiB0cmFkZW1hcmtzIG9yIHRyYWRl IG5hbWVzIGluIGEgdHJhZGVtYXJrCitzZW5zZSB0byBlbmRvcnNlIG9yIHBy b21vdGUgcHJvZHVjdHMgb3Igc2VydmljZXMgb2YgTGljZW5zZWUsIG9yIGFu eQordGhpcmQgcGFydHkuICBBcyBhbiBleGNlcHRpb24sIHRoZSAiQmVPcGVu IFB5dGhvbiIgbG9nb3MgYXZhaWxhYmxlIGF0CitodHRwOi8vd3d3LnB5dGhv bmxhYnMuY29tL2xvZ29zLmh0bWwgbWF5IGJlIHVzZWQgYWNjb3JkaW5nIHRv IHRoZQorcGVybWlzc2lvbnMgZ3JhbnRlZCBvbiB0aGF0IHdlYiBwYWdlLgor Cis3LiBCeSBjb3B5aW5nLCBpbnN0YWxsaW5nIG9yIG90aGVyd2lzZSB1c2lu ZyB0aGUgc29mdHdhcmUsIExpY2Vuc2VlCithZ3JlZXMgdG8gYmUgYm91bmQg YnkgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZQor QWdyZWVtZW50LgorCisKK0NOUkkgTElDRU5TRSBBR1JFRU1FTlQgRk9SIFBZ VEhPTiAxLjYuMQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisKKzEuIFRoaXMgTElDRU5TRSBBR1JFRU1FTlQgaXMgYmV0d2Vl biB0aGUgQ29ycG9yYXRpb24gZm9yIE5hdGlvbmFsCitSZXNlYXJjaCBJbml0 aWF0aXZlcywgaGF2aW5nIGFuIG9mZmljZSBhdCAxODk1IFByZXN0b24gV2hp dGUgRHJpdmUsCitSZXN0b24sIFZBIDIwMTkxICgiQ05SSSIpLCBhbmQgdGhl IEluZGl2aWR1YWwgb3IgT3JnYW5pemF0aW9uCisoIkxpY2Vuc2VlIikgYWNj ZXNzaW5nIGFuZCBvdGhlcndpc2UgdXNpbmcgUHl0aG9uIDEuNi4xIHNvZnR3 YXJlIGluCitzb3VyY2Ugb3IgYmluYXJ5IGZvcm0gYW5kIGl0cyBhc3NvY2lh dGVkIGRvY3VtZW50YXRpb24uCisKKzIuIFN1YmplY3QgdG8gdGhlIHRlcm1z IGFuZCBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSBBZ3JlZW1lbnQsIENO UkkKK2hlcmVieSBncmFudHMgTGljZW5zZWUgYSBub25leGNsdXNpdmUsIHJv eWFsdHktZnJlZSwgd29ybGQtd2lkZQorbGljZW5zZSB0byByZXByb2R1Y2Us IGFuYWx5emUsIHRlc3QsIHBlcmZvcm0gYW5kL29yIGRpc3BsYXkgcHVibGlj bHksCitwcmVwYXJlIGRlcml2YXRpdmUgd29ya3MsIGRpc3RyaWJ1dGUsIGFu ZCBvdGhlcndpc2UgdXNlIFB5dGhvbiAxLjYuMQorYWxvbmUgb3IgaW4gYW55 IGRlcml2YXRpdmUgdmVyc2lvbiwgcHJvdmlkZWQsIGhvd2V2ZXIsIHRoYXQg Q05SSSdzCitMaWNlbnNlIEFncmVlbWVudCBhbmQgQ05SSSdzIG5vdGljZSBv ZiBjb3B5cmlnaHQsIGkuZS4sICJDb3B5cmlnaHQgKGMpCisxOTk1LTIwMDEg Q29ycG9yYXRpb24gZm9yIE5hdGlvbmFsIFJlc2VhcmNoIEluaXRpYXRpdmVz OyBBbGwgUmlnaHRzCitSZXNlcnZlZCIgYXJlIHJldGFpbmVkIGluIFB5dGhv biAxLjYuMSBhbG9uZSBvciBpbiBhbnkgZGVyaXZhdGl2ZQordmVyc2lvbiBw cmVwYXJlZCBieSBMaWNlbnNlZS4gIEFsdGVybmF0ZWx5LCBpbiBsaWV1IG9m IENOUkkncyBMaWNlbnNlCitBZ3JlZW1lbnQsIExpY2Vuc2VlIG1heSBzdWJz dGl0dXRlIHRoZSBmb2xsb3dpbmcgdGV4dCAob21pdHRpbmcgdGhlCitxdW90 ZXMpOiAiUHl0aG9uIDEuNi4xIGlzIG1hZGUgYXZhaWxhYmxlIHN1YmplY3Qg dG8gdGhlIHRlcm1zIGFuZAorY29uZGl0aW9ucyBpbiBDTlJJJ3MgTGljZW5z ZSBBZ3JlZW1lbnQuICBUaGlzIEFncmVlbWVudCB0b2dldGhlciB3aXRoCitQ eXRob24gMS42LjEgbWF5IGJlIGxvY2F0ZWQgb24gdGhlIEludGVybmV0IHVz aW5nIHRoZSBmb2xsb3dpbmcKK3VuaXF1ZSwgcGVyc2lzdGVudCBpZGVudGlm aWVyIChrbm93biBhcyBhIGhhbmRsZSk6IDE4OTUuMjIvMTAxMy4gIFRoaXMK K0FncmVlbWVudCBtYXkgYWxzbyBiZSBvYnRhaW5lZCBmcm9tIGEgcHJveHkg c2VydmVyIG9uIHRoZSBJbnRlcm5ldAordXNpbmcgdGhlIGZvbGxvd2luZyBV Ukw6IGh0dHA6Ly9oZGwuaGFuZGxlLm5ldC8xODk1LjIyLzEwMTMiLgorCisz LiBJbiB0aGUgZXZlbnQgTGljZW5zZWUgcHJlcGFyZXMgYSBkZXJpdmF0aXZl IHdvcmsgdGhhdCBpcyBiYXNlZCBvbgorb3IgaW5jb3Jwb3JhdGVzIFB5dGhv biAxLjYuMSBvciBhbnkgcGFydCB0aGVyZW9mLCBhbmQgd2FudHMgdG8gbWFr ZQordGhlIGRlcml2YXRpdmUgd29yayBhdmFpbGFibGUgdG8gb3RoZXJzIGFz IHByb3ZpZGVkIGhlcmVpbiwgdGhlbgorTGljZW5zZWUgaGVyZWJ5IGFncmVl cyB0byBpbmNsdWRlIGluIGFueSBzdWNoIHdvcmsgYSBicmllZiBzdW1tYXJ5 IG9mCit0aGUgY2hhbmdlcyBtYWRlIHRvIFB5dGhvbiAxLjYuMS4KKworNC4g Q05SSSBpcyBtYWtpbmcgUHl0aG9uIDEuNi4xIGF2YWlsYWJsZSB0byBMaWNl bnNlZSBvbiBhbiAiQVMgSVMiCitiYXNpcy4gIENOUkkgTUFLRVMgTk8gUkVQ UkVTRU5UQVRJT05TIE9SIFdBUlJBTlRJRVMsIEVYUFJFU1MgT1IKK0lNUExJ RUQuICBCWSBXQVkgT0YgRVhBTVBMRSwgQlVUIE5PVCBMSU1JVEFUSU9OLCBD TlJJIE1BS0VTIE5PIEFORAorRElTQ0xBSU1TIEFOWSBSRVBSRVNFTlRBVElP TiBPUiBXQVJSQU5UWSBPRiBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUwor Rk9SIEFOWSBQQVJUSUNVTEFSIFBVUlBPU0UgT1IgVEhBVCBUSEUgVVNFIE9G IFBZVEhPTiAxLjYuMSBXSUxMIE5PVAorSU5GUklOR0UgQU5ZIFRISVJEIFBB UlRZIFJJR0hUUy4KKworNS4gQ05SSSBTSEFMTCBOT1QgQkUgTElBQkxFIFRP IExJQ0VOU0VFIE9SIEFOWSBPVEhFUiBVU0VSUyBPRiBQWVRIT04KKzEuNi4x IEZPUiBBTlkgSU5DSURFTlRBTCwgU1BFQ0lBTCwgT1IgQ09OU0VRVUVOVElB TCBEQU1BR0VTIE9SIExPU1MgQVMKK0EgUkVTVUxUIE9GIE1PRElGWUlORywg RElTVFJJQlVUSU5HLCBPUiBPVEhFUldJU0UgVVNJTkcgUFlUSE9OIDEuNi4x LAorT1IgQU5ZIERFUklWQVRJVkUgVEhFUkVPRiwgRVZFTiBJRiBBRFZJU0VE IE9GIFRIRSBQT1NTSUJJTElUWSBUSEVSRU9GLgorCis2LiBUaGlzIExpY2Vu c2UgQWdyZWVtZW50IHdpbGwgYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgdXBv biBhIG1hdGVyaWFsCiticmVhY2ggb2YgaXRzIHRlcm1zIGFuZCBjb25kaXRp b25zLgorCis3LiBUaGlzIExpY2Vuc2UgQWdyZWVtZW50IHNoYWxsIGJlIGdv dmVybmVkIGJ5IHRoZSBmZWRlcmFsCitpbnRlbGxlY3R1YWwgcHJvcGVydHkg bGF3IG9mIHRoZSBVbml0ZWQgU3RhdGVzLCBpbmNsdWRpbmcgd2l0aG91dAor bGltaXRhdGlvbiB0aGUgZmVkZXJhbCBjb3B5cmlnaHQgbGF3LCBhbmQsIHRv IHRoZSBleHRlbnQgc3VjaAorVS5TLiBmZWRlcmFsIGxhdyBkb2VzIG5vdCBh cHBseSwgYnkgdGhlIGxhdyBvZiB0aGUgQ29tbW9ud2VhbHRoIG9mCitWaXJn aW5pYSwgZXhjbHVkaW5nIFZpcmdpbmlhJ3MgY29uZmxpY3Qgb2YgbGF3IHBy b3Zpc2lvbnMuCitOb3R3aXRoc3RhbmRpbmcgdGhlIGZvcmVnb2luZywgd2l0 aCByZWdhcmQgdG8gZGVyaXZhdGl2ZSB3b3JrcyBiYXNlZAorb24gUHl0aG9u IDEuNi4xIHRoYXQgaW5jb3Jwb3JhdGUgbm9uLXNlcGFyYWJsZSBtYXRlcmlh bCB0aGF0IHdhcworcHJldmlvdXNseSBkaXN0cmlidXRlZCB1bmRlciB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCksIHRoZQorbGF3IG9m IHRoZSBDb21tb253ZWFsdGggb2YgVmlyZ2luaWEgc2hhbGwgZ292ZXJuIHRo aXMgTGljZW5zZQorQWdyZWVtZW50IG9ubHkgYXMgdG8gaXNzdWVzIGFyaXNp bmcgdW5kZXIgb3Igd2l0aCByZXNwZWN0IHRvCitQYXJhZ3JhcGhzIDQsIDUs IGFuZCA3IG9mIHRoaXMgTGljZW5zZSBBZ3JlZW1lbnQuICBOb3RoaW5nIGlu IHRoaXMKK0xpY2Vuc2UgQWdyZWVtZW50IHNoYWxsIGJlIGRlZW1lZCB0byBj cmVhdGUgYW55IHJlbGF0aW9uc2hpcCBvZgorYWdlbmN5LCBwYXJ0bmVyc2hp cCwgb3Igam9pbnQgdmVudHVyZSBiZXR3ZWVuIENOUkkgYW5kIExpY2Vuc2Vl LiAgVGhpcworTGljZW5zZSBBZ3JlZW1lbnQgZG9lcyBub3QgZ3JhbnQgcGVy bWlzc2lvbiB0byB1c2UgQ05SSSB0cmFkZW1hcmtzIG9yCit0cmFkZSBuYW1l IGluIGEgdHJhZGVtYXJrIHNlbnNlIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw cm9kdWN0cyBvcgorc2VydmljZXMgb2YgTGljZW5zZWUsIG9yIGFueSB0aGly ZCBwYXJ0eS4KKworOC4gQnkgY2xpY2tpbmcgb24gdGhlICJBQ0NFUFQiIGJ1 dHRvbiB3aGVyZSBpbmRpY2F0ZWQsIG9yIGJ5IGNvcHlpbmcsCitpbnN0YWxs aW5nIG9yIG90aGVyd2lzZSB1c2luZyBQeXRob24gMS42LjEsIExpY2Vuc2Vl IGFncmVlcyB0byBiZQorYm91bmQgYnkgdGhlIHRlcm1zIGFuZCBjb25kaXRp b25zIG9mIHRoaXMgTGljZW5zZSBBZ3JlZW1lbnQuCisKKyAgICAgICAgQUND RVBUCisKKworQ1dJIExJQ0VOU0UgQUdSRUVNRU5UIEZPUiBQWVRIT04gMC45 LjAgVEhST1VHSCAxLjIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NvcHlyaWdodCAoYykgMTk5MSAt IDE5OTUsIFN0aWNodGluZyBNYXRoZW1hdGlzY2ggQ2VudHJ1bSBBbXN0ZXJk YW0sCitUaGUgTmV0aGVybGFuZHMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor CitQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQgZGlzdHJp YnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKK2RvY3VtZW50YXRpb24gZm9y IGFueSBwdXJwb3NlIGFuZCB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRl ZCwKK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Ug YXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKK2JvdGggdGhhdCBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFwcGVh ciBpbgorc3VwcG9ydGluZyBkb2N1bWVudGF0aW9uLCBhbmQgdGhhdCB0aGUg bmFtZSBvZiBTdGljaHRpbmcgTWF0aGVtYXRpc2NoCitDZW50cnVtIG9yIENX SSBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVy dGFpbmluZyB0bworZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRo b3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yCitwZXJtaXNzaW9uLgorCitT VElDSFRJTkcgTUFUSEVNQVRJU0NIIENFTlRSVU0gRElTQ0xBSU1TIEFMTCBX QVJSQU5USUVTIFdJVEggUkVHQVJEIFRPCitUSElTIFNPRlRXQVJFLCBJTkNM VURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ VFkgQU5ECitGSVRORVNTLCBJTiBOTyBFVkVOVCBTSEFMTCBTVElDSFRJTkcg TUFUSEVNQVRJU0NIIENFTlRSVU0gQkUgTElBQkxFCitGT1IgQU5ZIFNQRUNJ QUwsIElORElSRUNUIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkg REFNQUdFUworV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTSBMT1NTIE9GIFVT RSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOCitBQ1RJT04gT0Yg Q09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9O LCBBUklTSU5HIE9VVAorT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBV U0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKworPT09PT09 PT09PT09PT09PT09Cit0Y2wgbGljZW5zZQorPT09PT09PT09PT09PT09PT09 CitUaGlzIHNvZnR3YXJlIGlzIGNvcHlyaWdodGVkIGJ5IHRoZSBSZWdlbnRz IG9mIHRoZSBVbml2ZXJzaXR5IG9mCitDYWxpZm9ybmlhLCBTdW4gTWljcm9z eXN0ZW1zLCBJbmMuLCBTY3JpcHRpY3MgQ29ycG9yYXRpb24sIEFjdGl2ZVN0 YXRlCitDb3Jwb3JhdGlvbiBhbmQgb3RoZXIgcGFydGllcy4gIFRoZSBmb2xs b3dpbmcgdGVybXMgYXBwbHkgdG8gYWxsIGZpbGVzCithc3NvY2lhdGVkIHdp dGggdGhlIHNvZnR3YXJlIHVubGVzcyBleHBsaWNpdGx5IGRpc2NsYWltZWQg aW4KK2luZGl2aWR1YWwgZmlsZXMuCisKK1RoZSBhdXRob3JzIGhlcmVieSBn cmFudCBwZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBkaXN0cmli dXRlLAorYW5kIGxpY2Vuc2UgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzIGRvY3Vt ZW50YXRpb24gZm9yIGFueSBwdXJwb3NlLCBwcm92aWRlZAordGhhdCBleGlz dGluZyBjb3B5cmlnaHQgbm90aWNlcyBhcmUgcmV0YWluZWQgaW4gYWxsIGNv cGllcyBhbmQgdGhhdCB0aGlzCitub3RpY2UgaXMgaW5jbHVkZWQgdmVyYmF0 aW0gaW4gYW55IGRpc3RyaWJ1dGlvbnMuIE5vIHdyaXR0ZW4gYWdyZWVtZW50 LAorbGljZW5zZSwgb3Igcm95YWx0eSBmZWUgaXMgcmVxdWlyZWQgZm9yIGFu eSBvZiB0aGUgYXV0aG9yaXplZCB1c2VzLgorTW9kaWZpY2F0aW9ucyB0byB0 aGlzIHNvZnR3YXJlIG1heSBiZSBjb3B5cmlnaHRlZCBieSB0aGVpciBhdXRo b3JzCithbmQgbmVlZCBub3QgZm9sbG93IHRoZSBsaWNlbnNpbmcgdGVybXMg ZGVzY3JpYmVkIGhlcmUsIHByb3ZpZGVkIHRoYXQKK3RoZSBuZXcgdGVybXMg YXJlIGNsZWFybHkgaW5kaWNhdGVkIG9uIHRoZSBmaXJzdCBwYWdlIG9mIGVh Y2ggZmlsZSB3aGVyZQordGhleSBhcHBseS4KKworSU4gTk8gRVZFTlQgU0hB TEwgVEhFIEFVVEhPUlMgT1IgRElTVFJJQlVUT1JTIEJFIExJQUJMRSBUTyBB TlkgUEFSVFkKK0ZPUiBESVJFQ1QsIElORElSRUNULCBTUEVDSUFMLCBJTkNJ REVOVEFMLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKK0FSSVNJTkcgT1VU IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgSVRTIERPQ1VNRU5UQVRJ T04sIE9SIEFOWQorREVSSVZBVElWRVMgVEhFUkVPRiwgRVZFTiBJRiBUSEUg QVVUSE9SUyBIQVZFIEJFRU4gQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZ IE9GIFNVQ0ggREFNQUdFLgorCitUSEUgQVVUSE9SUyBBTkQgRElTVFJJQlVU T1JTIFNQRUNJRklDQUxMWSBESVNDTEFJTSBBTlkgV0FSUkFOVElFUywKK0lO Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLCBBTkQgTk9OLUlORlJJTkdFTUVOVC4gIFRISVMg U09GVFdBUkUKK0lTIFBST1ZJREVEIE9OIEFOICJBUyBJUyIgQkFTSVMsIEFO RCBUSEUgQVVUSE9SUyBBTkQgRElTVFJJQlVUT1JTIEhBVkUKK05PIE9CTElH QVRJT04gVE8gUFJPVklERSBNQUlOVEVOQU5DRSwgU1VQUE9SVCwgVVBEQVRF UywgRU5IQU5DRU1FTlRTLCBPUgorTU9ESUZJQ0FUSU9OUy4KKworR09WRVJO TUVOVCBVU0U6IElmIHlvdSBhcmUgYWNxdWlyaW5nIHRoaXMgc29mdHdhcmUg b24gYmVoYWxmIG9mIHRoZQorVS5TLiBnb3Zlcm5tZW50LCB0aGUgR292ZXJu bWVudCBzaGFsbCBoYXZlIG9ubHkgIlJlc3RyaWN0ZWQgUmlnaHRzIgoraW4g dGhlIHNvZnR3YXJlIGFuZCByZWxhdGVkIGRvY3VtZW50YXRpb24gYXMgZGVm aW5lZCBpbiB0aGUgRmVkZXJhbAorQWNxdWlzaXRpb24gUmVndWxhdGlvbnMg KEZBUnMpIGluIENsYXVzZSA1Mi4yMjcuMTkgKGMpICgyKS4gIElmIHlvdQor YXJlIGFjcXVpcmluZyB0aGUgc29mdHdhcmUgb24gYmVoYWxmIG9mIHRoZSBE ZXBhcnRtZW50IG9mIERlZmVuc2UsIHRoZQorc29mdHdhcmUgc2hhbGwgYmUg Y2xhc3NpZmllZCBhcyAiQ29tbWVyY2lhbCBDb21wdXRlciBTb2Z0d2FyZSIg YW5kIHRoZQorR292ZXJubWVudCBzaGFsbCBoYXZlIG9ubHkgIlJlc3RyaWN0 ZWQgUmlnaHRzIiBhcyBkZWZpbmVkIGluIENsYXVzZQorMjUyLjIyNy03MDEz IChiKSAoMykgb2YgREZBUnMuICBOb3R3aXRoc3RhbmRpbmcgdGhlIGZvcmVn b2luZywgdGhlCithdXRob3JzIGdyYW50IHRoZSBVLlMuIEdvdmVybm1lbnQg YW5kIG90aGVycyBhY3RpbmcgaW4gaXRzIGJlaGFsZgorcGVybWlzc2lvbiB0 byB1c2UgYW5kIGRpc3RyaWJ1dGUgdGhlIHNvZnR3YXJlIGluIGFjY29yZGFu Y2Ugd2l0aCB0aGUKK3Rlcm1zIHNwZWNpZmllZCBpbiB0aGlzIGxpY2Vuc2Uu CisKKworPT09PT09PT09PT09PT09PT09CitMSUNFTlNFIC0gQmFiZWwsRmxh c2ssRmxhc2stTWFpbCxNYXJrdXBTYWZlLEppbmphMixXZXJremV1ZyxXVEZv cm1zLGl0c2Rhbmdlcm91cyxGbGFzay1XVEYsRmxhc2stQmFiZWwsRmxhc2st R3JhdmF0YXIsRmxhc2stU1FMQWxjaGVteSxkamFuZ28taHRtbG1pbixwYXNz bGliLHNwZWFrbGF0ZXIscHl0aG9uLWRhdGV1dGlsCis9PT09PT09PT09PT09 PT09PT0KKworTGliZXZlbnQgaXMgYXZhaWxhYmxlIGZvciB1c2UgdW5kZXIg dGhlIGZvbGxvd2luZyBsaWNlbnNlLCBjb21tb25seSBrbm93bgorYXMgdGhl IDMtY2xhdXNlIChvciAibW9kaWZpZWQiKSBCU0QgbGljZW5zZToKKworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDb3B5cmlnaHQgKGMpIDIw MDAtMjAwNyBOaWVscyBQcm92b3MgPHByb3Zvc0BjaXRpLnVtaWNoLmVkdT4K K0NvcHlyaWdodCAoYykgMjAwNy0yMDEwIE5pZWxzIFByb3ZvcyBhbmQgTmlj ayBNYXRoZXdzb24KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmlj YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnMKK2FyZSBtZXQ6CisxLiBSZWRpc3RyaWJ1dGlvbnMg b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo dAorICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorMi4gUmVkaXN0cmlidXRpb25zIGlu IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln aHQKKyAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgIGRvY3VtZW50YXRp b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk aXN0cmlidXRpb24uCiszLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBu b3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAg IGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElT IFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQ UkVTUyBPUgorSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworT0YgTUVS Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBUkUgRElTQ0xBSU1FRC4KK0lOIE5PIEVWRU5UIFNIQUxMIFRIRSBB VVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKK0lO Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorTk9UIExJTUlURUQgVE8sIFBS T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP U1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkg T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB QklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK K1RISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC SUxJVFkgT0YgU1VDSCBEQU1BR0UuCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKworUG9ydGlvbnMgb2YgTGliZXZlbnQgYXJlIGJhc2VkIG9u IHdvcmtzIGJ5IG90aGVycywgYWxzbyBtYWRlIGF2YWlsYWJsZSBieQordGhl bSB1bmRlciB0aGUgdGhyZWUtY2xhdXNlIEJTRCBsaWNlbnNlIGFib3ZlLiAg VGhlIGNvcHlyaWdodCBub3RpY2VzIGFyZQorYXZhaWxhYmxlIGluIHRoZSBj b3JyZXNwb25kaW5nIHNvdXJjZSBmaWxlczsgdGhlIGxpY2Vuc2UgaXMgYXMg YWJvdmUuICBIZXJlJ3MKK2EgbGlzdDoKKworbG9nLmM6CisgICBDb3B5cmln aHQgKGMpIDIwMDAgRHVnIFNvbmcgPGR1Z3NvbmdAbW9ua2V5Lm9yZz4KKyAg IENvcHlyaWdodCAoYykgMTk5MyBUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhLgorCitzdHJsY3B5LmM6CisgICBDb3B5cmln aHQgKGMpIDE5OTggVG9kZCBDLiBNaWxsZXIgPFRvZGQuTWlsbGVyQGNvdXJ0 ZXNhbi5jb20+CisKK3dpbjMyc2VsZWN0LmM6CisgICBDb3B5cmlnaHQgKGMp IDIwMDMgTWljaGFlbCBBLiBEYXZpcyA8bWlrZUBkYXRhbmVyZHMubmV0Pgor CitldnBvcnQuYzoKKyAgIENvcHlyaWdodCAoYykgMjAwNyBTdW4gTWljcm9z eXN0ZW1zCisKK2h0LWludGVybmFsLmg6CisgICBDb3B5cmlnaHQgKGMpIDIw MDIgQ2hyaXN0b3BoZXIgQ2xhcmsKKworbWluaGVhcC1pbnRlcm5hbC5oOgor ICAgQ29weXJpZ2h0IChjKSAyMDA2IE1heGltIFllZ29ydXNoa2luIDxtYXhp bS55ZWdvcnVzaGtpbkBnbWFpbC5jb20+CisKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorCitUaGUgYXJjNG1vZHVsZSBpcyBhdmFpbGFibGUg dW5kZXIgdGhlIGZvbGxvd2luZywgc29tZXRpbWVzIGNhbGxlZCB0aGUKKyJP cGVuQlNEIiBsaWNlbnNlOgorCisgICBDb3B5cmlnaHQgKGMpIDE5OTYsIERh dmlkIE1hemllcmVzIDxkbUB1dW4ub3JnPgorICAgQ29weXJpZ2h0IChjKSAy MDA4LCBEYW1pZW4gTWlsbGVyIDxkam1Ab3BlbmJzZC5vcmc+CisKKyAgIFBl cm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZCBkaXN0cmlidXRl IHRoaXMgc29mdHdhcmUgZm9yIGFueQorICAgcHVycG9zZSB3aXRoIG9yIHdp dGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRlZCB0aGF0IHRo ZSBhYm92ZQorICAgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcy4KKworICAgVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIFRIRSBBVVRIT1IgRElT Q0xBSU1TIEFMTCBXQVJSQU5USUVTCisgICBXSVRIIFJFR0FSRCBUTyBUSElT IFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9G CisgICBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5U IFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUgorICAgQU5ZIFNQRUNJ QUwsIERJUkVDVCwgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF UyBPUiBBTlkgREFNQUdFUworICAgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJP TSBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFO CisgICBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IgT1RIRVIg VE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRgorICAgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBT T0ZUV0FSRS4KKworPT09PT09PT09PT09PT09PT09CitMSUNFTlNFIC0gRmxh c2stTG9naW4sRmxhc2stUHJpbmNpcGFsLCBTaXgsIHNpbXBsZWpzb24sRmxh c2stU2VjdXJpdHksYmxpbmtlcixTUUxBbGNoZW15LCBiZWF1dGlmdWxzb3Vw NCxweXR6LGh0bWw1bGliCis9PT09PT09PT09PT09PT09PT0KK0NvcHlyaWdo dCAoQykgMTk4NS0yMDEyIGJ5IHRoZSBNYXNzYWNodXNldHRzIEluc3RpdHV0 ZSBvZiBUZWNobm9sb2d5LgorCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCisg ICAgIEV4cG9ydCBvZiBzb2Z0d2FyZSBlbXBsb3lpbmcgZW5jcnlwdGlvbiBm cm9tIHRoZSBVbml0ZWQgU3RhdGVzIG9mCisgICAgIEFtZXJpY2EgbWF5IHJl cXVpcmUgYSBzcGVjaWZpYyBsaWNlbnNlIGZyb20gdGhlIFVuaXRlZCBTdGF0 ZXMKKyAgICAgR292ZXJubWVudC4gIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0 eSBvZiBhbnkgcGVyc29uIG9yIG9yZ2FuaXphdGlvbgorICAgICBjb250ZW1w bGF0aW5nIGV4cG9ydCB0byBvYnRhaW4gc3VjaCBhIGxpY2Vuc2UgYmVmb3Jl IGV4cG9ydGluZy4KKworV0lUSElOIFRIQVQgQ09OU1RSQUlOVCwgcGVybWlz c2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUKK3Ro aXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlIGFuZCB3aXRob3V0IGZlZSBp cyBoZXJlYnkgZ3JhbnRlZCwKK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQK K2JvdGggdGhhdCBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIGFwcGVhciBpbgorc3VwcG9ydGluZyBkb2N1bWVudGF0aW9u LCBhbmQgdGhhdCB0aGUgbmFtZSBvZiBNLkkuVC4gbm90IGJlIHVzZWQgaW4K K2FkdmVydGlzaW5nIG9yIHB1YmxpY2l0eSBwZXJ0YWluaW5nIHRvIGRpc3Ry aWJ1dGlvbiBvZiB0aGUgc29mdHdhcmUKK3dpdGhvdXQgc3BlY2lmaWMsIHdy aXR0ZW4gcHJpb3IgcGVybWlzc2lvbi4gIEZ1cnRoZXJtb3JlIGlmIHlvdSBt b2RpZnkKK3RoaXMgc29mdHdhcmUgeW91IG11c3QgbGFiZWwgeW91ciBzb2Z0 d2FyZSBhcyBtb2RpZmllZCBzb2Z0d2FyZSBhbmQgbm90CitkaXN0cmlidXRl IGl0IGluIHN1Y2ggYSBmYXNoaW9uIHRoYXQgaXQgbWlnaHQgYmUgY29uZnVz ZWQgd2l0aCB0aGUKK29yaWdpbmFsIE1JVCBzb2Z0d2FyZS4gIE0uSS5ULiBt YWtlcyBubyByZXByZXNlbnRhdGlvbnMgYWJvdXQgdGhlCitzdWl0YWJpbGl0 eSBvZiB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZS4gIEl0IGlzIHBy b3ZpZGVkICJhcyBpcyIKK3dpdGhvdXQgZXhwcmVzcyBvciBpbXBsaWVkIHdh cnJhbnR5LgorCitEb2N1bWVudGF0aW9uIGNvbXBvbmVudHMgb2YgdGhpcyBz b2Z0d2FyZSBkaXN0cmlidXRpb24gYXJlIGxpY2Vuc2VkCit1bmRlciBhIENy ZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSAzLjAgVW5w b3J0ZWQgTGljZW5zZS4KKyhgaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcv bGljZW5zZXMvYnktc2EvMy4wLycpCisKK0luZGl2aWR1YWwgc291cmNlIGNv ZGUgZmlsZXMgYXJlIGNvcHlyaWdodCBNSVQsIEN5Z251cyBTdXBwb3J0LCBO b3ZlbGwsCitPcGVuVmlzaW9uIFRlY2hub2xvZ2llcywgT3JhY2xlLCBSZWQg SGF0LCBTdW4gTWljcm9zeXN0ZW1zLAorRnVuZHNYcHJlc3MsIGFuZCBvdGhl cnMuCisKK1Byb2plY3QgQXRoZW5hLCBBdGhlbmEsIEF0aGVuYSBNVVNFLCBE aXNjdXNzLCBIZXNpb2QsIEtlcmJlcm9zLCBNb2lyYSwKK2FuZCBaZXBoeXIg YXJlIHRyYWRlbWFya3Mgb2YgdGhlIE1hc3NhY2h1c2V0dHMgSW5zdGl0dXRl IG9mIFRlY2hub2xvZ3kKKyhNSVQpLiAgTm8gY29tbWVyY2lhbCB1c2Ugb2Yg dGhlc2UgdHJhZGVtYXJrcyBtYXkgYmUgbWFkZSB3aXRob3V0IHByaW9yCit3 cml0dGVuIHBlcm1pc3Npb24gb2YgTUlULgorCisiQ29tbWVyY2lhbCB1c2Ui IG1lYW5zIHVzZSBvZiBhIG5hbWUgaW4gYSBwcm9kdWN0IG9yIG90aGVyIGZv ci1wcm9maXQKK21hbm5lci4gIEl0IGRvZXMgTk9UIHByZXZlbnQgYSBjb21t ZXJjaWFsIGZpcm0gZnJvbSByZWZlcnJpbmcgdG8gdGhlCitNSVQgdHJhZGVt YXJrcyBpbiBvcmRlciB0byBjb252ZXkgaW5mb3JtYXRpb24gKGFsdGhvdWdo IGluIGRvaW5nIHNvLAorcmVjb2duaXRpb24gb2YgdGhlaXIgdHJhZGVtYXJr IHN0YXR1cyBzaG91bGQgYmUgZ2l2ZW4pLgorCis9PT09PT09PT09PT09PT09 PT0KK0xJQ0VOU0UgLSBwc3ljb3BnMgorPT09PT09PT09PT09PT09PT09CitH TlUgTEVTU0VSIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKKworVmVyc2lvbiAz LCAyOSBKdW5lIDIwMDcKKworQ29weXJpZ2h0IMKpIDIwMDcgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuIDxodHRwOi8vZnNmLm9yZy8+CisKK0V2 ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZl cmJhdGltIGNvcGllcyBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBj aGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KKworVGhpcyB2ZXJzaW9uIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW5jb3Jw b3JhdGVzIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB2ZXJzaW9uIDMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBzdXBwbGVtZW50 ZWQgYnkgdGhlIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbGlzdGVkIGJlbG93 LgorCiswLiBBZGRpdGlvbmFsIERlZmluaXRpb25zLgorQXMgdXNlZCBoZXJl aW4sIOKAnHRoaXMgTGljZW5zZeKAnSByZWZlcnMgdG8gdmVyc2lvbiAzIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFuZCB0 aGUg4oCcR05VIEdQTOKAnSByZWZlcnMgdG8gdmVyc2lvbiAzIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKwor4oCcVGhlIExpYnJhcnni gJ0gcmVmZXJzIHRvIGEgY292ZXJlZCB3b3JrIGdvdmVybmVkIGJ5IHRoaXMg TGljZW5zZSwgb3RoZXIgdGhhbiBhbiBBcHBsaWNhdGlvbiBvciBhIENvbWJp bmVkIFdvcmsgYXMgZGVmaW5lZCBiZWxvdy4KKworQW4g4oCcQXBwbGljYXRp b27igJ0gaXMgYW55IHdvcmsgdGhhdCBtYWtlcyB1c2Ugb2YgYW4gaW50ZXJm YWNlIHByb3ZpZGVkIGJ5IHRoZSBMaWJyYXJ5LCBidXQgd2hpY2ggaXMgbm90 IG90aGVyd2lzZSBiYXNlZCBvbiB0aGUgTGlicmFyeS4gRGVmaW5pbmcgYSBz dWJjbGFzcyBvZiBhIGNsYXNzIGRlZmluZWQgYnkgdGhlIExpYnJhcnkgaXMg ZGVlbWVkIGEgbW9kZSBvZiB1c2luZyBhbiBpbnRlcmZhY2UgcHJvdmlkZWQg YnkgdGhlIExpYnJhcnkuCisKK0Eg4oCcQ29tYmluZWQgV29ya+KAnSBpcyBh IHdvcmsgcHJvZHVjZWQgYnkgY29tYmluaW5nIG9yIGxpbmtpbmcgYW4gQXBw bGljYXRpb24gd2l0aCB0aGUgTGlicmFyeS4gVGhlIHBhcnRpY3VsYXIgdmVy c2lvbiBvZiB0aGUgTGlicmFyeSB3aXRoIHdoaWNoIHRoZSBDb21iaW5lZCBX b3JrIHdhcyBtYWRlIGlzIGFsc28gY2FsbGVkIHRoZSDigJxMaW5rZWQgVmVy c2lvbuKAnS4KKworVGhlIOKAnE1pbmltYWwgQ29ycmVzcG9uZGluZyBTb3Vy Y2XigJ0gZm9yIGEgQ29tYmluZWQgV29yayBtZWFucyB0aGUgQ29ycmVzcG9u ZGluZyBTb3VyY2UgZm9yIHRoZSBDb21iaW5lZCBXb3JrLCBleGNsdWRpbmcg YW55IHNvdXJjZSBjb2RlIGZvciBwb3J0aW9ucyBvZiB0aGUgQ29tYmluZWQg V29yayB0aGF0LCBjb25zaWRlcmVkIGluIGlzb2xhdGlvbiwgYXJlIGJhc2Vk IG9uIHRoZSBBcHBsaWNhdGlvbiwgYW5kIG5vdCBvbiB0aGUgTGlua2VkIFZl cnNpb24uCisKK1RoZSDigJxDb3JyZXNwb25kaW5nIEFwcGxpY2F0aW9uIENv ZGXigJ0gZm9yIGEgQ29tYmluZWQgV29yayBtZWFucyB0aGUgb2JqZWN0IGNv ZGUgYW5kL29yIHNvdXJjZSBjb2RlIGZvciB0aGUgQXBwbGljYXRpb24sIGlu Y2x1ZGluZyBhbnkgZGF0YSBhbmQgdXRpbGl0eSBwcm9ncmFtcyBuZWVkZWQg Zm9yIHJlcHJvZHVjaW5nIHRoZSBDb21iaW5lZCBXb3JrIGZyb20gdGhlIEFw cGxpY2F0aW9uLCBidXQgZXhjbHVkaW5nIHRoZSBTeXN0ZW0gTGlicmFyaWVz IG9mIHRoZSBDb21iaW5lZCBXb3JrLgorCisxLiBFeGNlcHRpb24gdG8gU2Vj dGlvbiAzIG9mIHRoZSBHTlUgR1BMLgorWW91IG1heSBjb252ZXkgYSBjb3Zl cmVkIHdvcmsgdW5kZXIgc2VjdGlvbnMgMyBhbmQgNCBvZiB0aGlzIExpY2Vu c2Ugd2l0aG91dCBiZWluZyBib3VuZCBieSBzZWN0aW9uIDMgb2YgdGhlIEdO VSBHUEwuCisKKzIuIENvbnZleWluZyBNb2RpZmllZCBWZXJzaW9ucy4KK0lm IHlvdSBtb2RpZnkgYSBjb3B5IG9mIHRoZSBMaWJyYXJ5LCBhbmQsIGluIHlv dXIgbW9kaWZpY2F0aW9ucywgYSBmYWNpbGl0eSByZWZlcnMgdG8gYSBmdW5j dGlvbiBvciBkYXRhIHRvIGJlIHN1cHBsaWVkIGJ5IGFuIEFwcGxpY2F0aW9u IHRoYXQgdXNlcyB0aGUgZmFjaWxpdHkgKG90aGVyIHRoYW4gYXMgYW4gYXJn dW1lbnQgcGFzc2VkIHdoZW4gdGhlIGZhY2lsaXR5IGlzIGludm9rZWQpLCB0 aGVuIHlvdSBtYXkgY29udmV5IGEgY29weSBvZiB0aGUgbW9kaWZpZWQgdmVy c2lvbjoKKworYSkgdW5kZXIgdGhpcyBMaWNlbnNlLCBwcm92aWRlZCB0aGF0 IHlvdSBtYWtlIGEgZ29vZCBmYWl0aCBlZmZvcnQgdG8gZW5zdXJlIHRoYXQs IGluIHRoZSBldmVudCBhbiBBcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkg dGhlIGZ1bmN0aW9uIG9yIGRhdGEsIHRoZSBmYWNpbGl0eSBzdGlsbCBvcGVy YXRlcywgYW5kIHBlcmZvcm1zIHdoYXRldmVyIHBhcnQgb2YgaXRzIHB1cnBv c2UgcmVtYWlucyBtZWFuaW5nZnVsLCBvcgorYikgdW5kZXIgdGhlIEdOVSBH UEwsIHdpdGggbm9uZSBvZiB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBv ZiB0aGlzIExpY2Vuc2UgYXBwbGljYWJsZSB0byB0aGF0IGNvcHkuCiszLiBP YmplY3QgQ29kZSBJbmNvcnBvcmF0aW5nIE1hdGVyaWFsIGZyb20gTGlicmFy eSBIZWFkZXIgRmlsZXMuCitUaGUgb2JqZWN0IGNvZGUgZm9ybSBvZiBhbiBB cHBsaWNhdGlvbiBtYXkgaW5jb3Jwb3JhdGUgbWF0ZXJpYWwgZnJvbSBhIGhl YWRlciBmaWxlIHRoYXQgaXMgcGFydCBvZiB0aGUgTGlicmFyeS4gWW91IG1h eSBjb252ZXkgc3VjaCBvYmplY3QgY29kZSB1bmRlciB0ZXJtcyBvZiB5b3Vy IGNob2ljZSwgcHJvdmlkZWQgdGhhdCwgaWYgdGhlIGluY29ycG9yYXRlZCBt YXRlcmlhbCBpcyBub3QgbGltaXRlZCB0byBudW1lcmljYWwgcGFyYW1ldGVy cywgZGF0YSBzdHJ1Y3R1cmUgbGF5b3V0cyBhbmQgYWNjZXNzb3JzLCBvciBz bWFsbCBtYWNyb3MsIGlubGluZSBmdW5jdGlvbnMgYW5kIHRlbXBsYXRlcyAo dGVuIG9yIGZld2VyIGxpbmVzIGluIGxlbmd0aCksIHlvdSBkbyBib3RoIG9m IHRoZSBmb2xsb3dpbmc6CisKK2EpIEdpdmUgcHJvbWluZW50IG5vdGljZSB3 aXRoIGVhY2ggY29weSBvZiB0aGUgb2JqZWN0IGNvZGUgdGhhdCB0aGUgTGli cmFyeSBpcyB1c2VkIGluIGl0IGFuZCB0aGF0IHRoZSBMaWJyYXJ5IGFuZCBp dHMgdXNlIGFyZSBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZS4KK2IpIEFjY29t cGFueSB0aGUgb2JqZWN0IGNvZGUgd2l0aCBhIGNvcHkgb2YgdGhlIEdOVSBH UEwgYW5kIHRoaXMgbGljZW5zZSBkb2N1bWVudC4KKzQuIENvbWJpbmVkIFdv cmtzLgorWW91IG1heSBjb252ZXkgYSBDb21iaW5lZCBXb3JrIHVuZGVyIHRl cm1zIG9mIHlvdXIgY2hvaWNlIHRoYXQsIHRha2VuIHRvZ2V0aGVyLCBlZmZl Y3RpdmVseSBkbyBub3QgcmVzdHJpY3QgbW9kaWZpY2F0aW9uIG9mIHRoZSBw b3J0aW9ucyBvZiB0aGUgTGlicmFyeSBjb250YWluZWQgaW4gdGhlIENvbWJp bmVkIFdvcmsgYW5kIHJldmVyc2UgZW5naW5lZXJpbmcgZm9yIGRlYnVnZ2lu ZyBzdWNoIG1vZGlmaWNhdGlvbnMsIGlmIHlvdSBhbHNvIGRvIGVhY2ggb2Yg dGhlIGZvbGxvd2luZzoKKworYSkgR2l2ZSBwcm9taW5lbnQgbm90aWNlIHdp dGggZWFjaCBjb3B5IG9mIHRoZSBDb21iaW5lZCBXb3JrIHRoYXQgdGhlIExp YnJhcnkgaXMgdXNlZCBpbiBpdCBhbmQgdGhhdCB0aGUgTGlicmFyeSBhbmQg aXRzIHVzZSBhcmUgY292ZXJlZCBieSB0aGlzIExpY2Vuc2UuCitiKSBBY2Nv bXBhbnkgdGhlIENvbWJpbmVkIFdvcmsgd2l0aCBhIGNvcHkgb2YgdGhlIEdO VSBHUEwgYW5kIHRoaXMgbGljZW5zZSBkb2N1bWVudC4KK2MpIEZvciBhIENv bWJpbmVkIFdvcmsgdGhhdCBkaXNwbGF5cyBjb3B5cmlnaHQgbm90aWNlcyBk dXJpbmcgZXhlY3V0aW9uLCBpbmNsdWRlIHRoZSBjb3B5cmlnaHQgbm90aWNl IGZvciB0aGUgTGlicmFyeSBhbW9uZyB0aGVzZSBub3RpY2VzLCBhcyB3ZWxs IGFzIGEgcmVmZXJlbmNlIGRpcmVjdGluZyB0aGUgdXNlciB0byB0aGUgY29w aWVzIG9mIHRoZSBHTlUgR1BMIGFuZCB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQu CitkKSBEbyBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKzApIENvbnZleSB0aGUg TWluaW1hbCBDb3JyZXNwb25kaW5nIFNvdXJjZSB1bmRlciB0aGUgdGVybXMg b2YgdGhpcyBMaWNlbnNlLCBhbmQgdGhlIENvcnJlc3BvbmRpbmcgQXBwbGlj YXRpb24gQ29kZSBpbiBhIGZvcm0gc3VpdGFibGUgZm9yLCBhbmQgdW5kZXIg dGVybXMgdGhhdCBwZXJtaXQsIHRoZSB1c2VyIHRvIHJlY29tYmluZSBvciBy ZWxpbmsgdGhlIEFwcGxpY2F0aW9uIHdpdGggYSBtb2RpZmllZCB2ZXJzaW9u IG9mIHRoZSBMaW5rZWQgVmVyc2lvbiB0byBwcm9kdWNlIGEgbW9kaWZpZWQg Q29tYmluZWQgV29yaywgaW4gdGhlIG1hbm5lciBzcGVjaWZpZWQgYnkgc2Vj dGlvbiA2IG9mIHRoZSBHTlUgR1BMIGZvciBjb252ZXlpbmcgQ29ycmVzcG9u ZGluZyBTb3VyY2UuCisxKSBVc2UgYSBzdWl0YWJsZSBzaGFyZWQgbGlicmFy eSBtZWNoYW5pc20gZm9yIGxpbmtpbmcgd2l0aCB0aGUgTGlicmFyeS4gQSBz dWl0YWJsZSBtZWNoYW5pc20gaXMgb25lIHRoYXQgKGEpIHVzZXMgYXQgcnVu IHRpbWUgYSBjb3B5IG9mIHRoZSBMaWJyYXJ5IGFscmVhZHkgcHJlc2VudCBv biB0aGUgdXNlcidzIGNvbXB1dGVyIHN5c3RlbSwgYW5kIChiKSB3aWxsIG9w ZXJhdGUgcHJvcGVybHkgd2l0aCBhIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhl IExpYnJhcnkgdGhhdCBpcyBpbnRlcmZhY2UtY29tcGF0aWJsZSB3aXRoIHRo ZSBMaW5rZWQgVmVyc2lvbi4KK2UpIFByb3ZpZGUgSW5zdGFsbGF0aW9uIElu Zm9ybWF0aW9uLCBidXQgb25seSBpZiB5b3Ugd291bGQgb3RoZXJ3aXNlIGJl IHJlcXVpcmVkIHRvIHByb3ZpZGUgc3VjaCBpbmZvcm1hdGlvbiB1bmRlciBz ZWN0aW9uIDYgb2YgdGhlIEdOVSBHUEwsIGFuZCBvbmx5IHRvIHRoZSBleHRl bnQgdGhhdCBzdWNoIGluZm9ybWF0aW9uIGlzIG5lY2Vzc2FyeSB0byBpbnN0 YWxsIGFuZCBleGVjdXRlIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgQ29t YmluZWQgV29yayBwcm9kdWNlZCBieSByZWNvbWJpbmluZyBvciByZWxpbmtp bmcgdGhlIEFwcGxpY2F0aW9uIHdpdGggYSBtb2RpZmllZCB2ZXJzaW9uIG9m IHRoZSBMaW5rZWQgVmVyc2lvbi4gKElmIHlvdSB1c2Ugb3B0aW9uIDRkMCwg dGhlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBtdXN0IGFjY29tcGFueSB0 aGUgTWluaW1hbCBDb3JyZXNwb25kaW5nIFNvdXJjZSBhbmQgQ29ycmVzcG9u ZGluZyBBcHBsaWNhdGlvbiBDb2RlLiBJZiB5b3UgdXNlIG9wdGlvbiA0ZDEs IHlvdSBtdXN0IHByb3ZpZGUgdGhlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlv biBpbiB0aGUgbWFubmVyIHNwZWNpZmllZCBieSBzZWN0aW9uIDYgb2YgdGhl IEdOVSBHUEwgZm9yIGNvbnZleWluZyBDb3JyZXNwb25kaW5nIFNvdXJjZS4p Cis1LiBDb21iaW5lZCBMaWJyYXJpZXMuCitZb3UgbWF5IHBsYWNlIGxpYnJh cnkgZmFjaWxpdGllcyB0aGF0IGFyZSBhIHdvcmsgYmFzZWQgb24gdGhlIExp YnJhcnkgc2lkZSBieSBzaWRlIGluIGEgc2luZ2xlIGxpYnJhcnkgdG9nZXRo ZXIgd2l0aCBvdGhlciBsaWJyYXJ5IGZhY2lsaXRpZXMgdGhhdCBhcmUgbm90 IEFwcGxpY2F0aW9ucyBhbmQgYXJlIG5vdCBjb3ZlcmVkIGJ5IHRoaXMgTGlj ZW5zZSwgYW5kIGNvbnZleSBzdWNoIGEgY29tYmluZWQgbGlicmFyeSB1bmRl ciB0ZXJtcyBvZiB5b3VyIGNob2ljZSwgaWYgeW91IGRvIGJvdGggb2YgdGhl IGZvbGxvd2luZzoKKworYSkgQWNjb21wYW55IHRoZSBjb21iaW5lZCBsaWJy YXJ5IHdpdGggYSBjb3B5IG9mIHRoZSBzYW1lIHdvcmsgYmFzZWQgb24gdGhl IExpYnJhcnksIHVuY29tYmluZWQgd2l0aCBhbnkgb3RoZXIgbGlicmFyeSBm YWNpbGl0aWVzLCBjb252ZXllZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBM aWNlbnNlLgorYikgR2l2ZSBwcm9taW5lbnQgbm90aWNlIHdpdGggdGhlIGNv bWJpbmVkIGxpYnJhcnkgdGhhdCBwYXJ0IG9mIGl0IGlzIGEgd29yayBiYXNl ZCBvbiB0aGUgTGlicmFyeSwgYW5kIGV4cGxhaW5pbmcgd2hlcmUgdG8gZmlu ZCB0aGUgYWNjb21wYW55aW5nIHVuY29tYmluZWQgZm9ybSBvZiB0aGUgc2Ft ZSB3b3JrLgorNi4gUmV2aXNlZCBWZXJzaW9ucyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorVGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVy c2lvbnMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmcm9tIHRpbWUgdG8gdGltZS4gU3VjaCBuZXcgdmVyc2lvbnMgd2lsbCBi ZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBi dXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8gYWRkcmVzcyBuZXcgcHJvYmxl bXMgb3IgY29uY2VybnMuCisKK0VhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRp c3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBJZiB0aGUgTGlicmFyeSBh cyB5b3UgcmVjZWl2ZWQgaXQgc3BlY2lmaWVzIHRoYXQgYSBjZXJ0YWluIG51 bWJlcmVkIHZlcnNpb24gb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSDigJxvciBhbnkgbGF0ZXIgdmVyc2lvbuKAnSBhcHBsaWVz IHRvIGl0LCB5b3UgaGF2ZSB0aGUgb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgcHVibGlzaGVk IHZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uIElmIHRoZSBMaWJyYXJ5 IGFzIHlvdSByZWNlaXZlZCBpdCBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lv biBudW1iZXIgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBldmVyIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorCitJZiB0aGUgTGli cmFyeSBhcyB5b3UgcmVjZWl2ZWQgaXQgc3BlY2lmaWVzIHRoYXQgYSBwcm94 eSBjYW4gZGVjaWRlIHdoZXRoZXIgZnV0dXJlIHZlcnNpb25zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugc2hhbGwgYXBwbHks IHRoYXQgcHJveHkncyBwdWJsaWMgc3RhdGVtZW50IG9mIGFjY2VwdGFuY2Ug b2YgYW55IHZlcnNpb24gaXMgcGVybWFuZW50IGF1dGhvcml6YXRpb24gZm9y IHlvdSB0byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgTGlicmFyeS4K KworPT09PT09PT09PT09PT09PT09CitMSUNFTlNFIC0gcHljcnlwdG8KKz09 PT09PT09PT09PT09PT09PQorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitE aXN0cmlidXRlIGFuZCB1c2UgZnJlZWx5OyB0aGVyZSBhcmUgbm8gcmVzdHJp Y3Rpb25zIG9uIGZ1cnRoZXIKK2Rpc3NlbWluYXRpb24KK2FuZCB1c2FnZSBl eGNlcHQgdGhvc2UgaW1wb3NlZCBieSB0aGUgbGF3cyBvZiB5b3VyCitjb3Vu dHJ5IG9mIHJlc2lkZW5jZS4KK1RoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQg ImFzIGlzIiB3aXRob3V0Cit3YXJyYW50eSBvZiBmaXRuZXNzIGZvciB1c2Ug b3Igc3VpdGFiaWxpdHkKK2ZvciBhbnkgcHVycG9zZSwgZXhwcmVzcworb3Ig aW1wbGllZC4gVXNlIGF0IHlvdXIgb3duIHJpc2sgb3Igbm90IGF0IGFsbC4K KworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKK0luY29ycG9yYXRpbmcg dGhlIGNvZGUgaW50byBjb21tZXJjaWFsIHByb2R1Y3RzIGlzIHBlcm1pdHRl ZDsgeW91IGRvCitub3QgaGF2ZQordG8gbWFrZSBzb3VyY2UgYXZhaWxhYmxl IG9yIGNvbnRyaWJ1dGUgeW91ciBjaGFuZ2VzIGJhY2sKKyh0aG91Z2ggdGhh dCB3b3VsZCBiZSBuaWNlKS4KKworCistLWFtayAod3d3LmFtay5jYSkKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wa2cvd2lu MzIvUmVzb3VyY2VzL1NwbGFzaFNjcmVlbi5ibXAgYi9wa2cvd2luMzIvUmVz b3VyY2VzL1NwbGFzaFNjcmVlbi5ibXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MC4uYzI0MDczMDdlZjNiYTdkNDA5M2M3YTA3NjJjZDk0Y2JjODQzMTZjYwpH SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTk2NjYyCnpjbWVGYV9rVUU/N1Fs UG89bHVgd15adFNOYE1oNz40V2dvPSp0LXxZd2NQN2ZANGM4X05DS2dFTFh6 b3wtaDFmWAp6MHRnfT9BV2N6X0IzJSMqc1B3QTI/fFd0P0ozRDkybk1AYCNu TCN0M0E/JFBKbChwQWhZd2d3Yys3Q1pCezRmOUsKelV5UlJpe3s2cDM8TnVJ PHxIb2hjWnt2djF8TXsyeT1sfVhrO0daMS08dUNzbWByTWZxPTxNd0w/WUd9 PC1NViQtCnojKkomJnUzZm91PDxnfX43Y1hBP3dmalN4R25YJTR6SXlmUV8z UEpmLW5ffWgtMTdWSHpqTj1NKzM2dnV8TGhuTAp6dldKK1Y+SSlZeG9JN3sh P0FmIVlQTXRiLT9BWVBNaFl1YitjO0xXK3VmUDc5enFDMVheeXR3T0NyK0Zg ZWZzPEYKenpkd0tlSmgjOXB1I0U3KzVGYEJBPkZMaHR6ZmVBO2kodm9wI34t MmpMeCZGUy1NZT9eJllmR2daciF3TCk1amx3Cnp7ODhAQFhGbURsbFB6MWVZ flF8cCpSRVkoZSklTyNhczJyNEA0b3ZFIyhAYExCM1NBNj9ifTApYU9WKWhw QWt9Jgp6N0FQTnpNY04tWmFeI0NJelN5Pkg4fDN9cmhhYXc5eT9WdXA3MFo/ X1RlQGBWbEU3emk7NnN4JG9MfDB0YE8xfG0Kei0rUypwRT8mUVd7cFFWXmNr SXshPEc/O0FQb0RoWWhhYj9HZ2J+bj1oOFc/YE5MfnJ0WDl5QnExdk1UKmg0 T2RyCnotaUBlVnZ0fHQ+NFM3VDkzbH1iMnBuY3xSQU1OeDRFP2N4ezVsakkp eiV1WntoN0I3JntxKW00ZC1rOSMhM2FQNwp6XmI8MSttY2tHaEJyck1yeGo7 a2ctQEl8LW10VEhDK2QqUE9gNSUxbjBSKzVnO2xsYXpKNmY5Pz5uYzJ6LWcp S0QKelNebmF3V3NWcyZyNm1wM3JPbDFDdCp0SFhaRVlSQktmKU8+aDQyRkch Xkg5YWB8bVI7cGd9Ukd6K2IzRk9iMmttCnprVyUjTEJES1dwRXlSRVErQkwt VEh7WDJvKj1MYHZVOSlFNHtQdD5wYW1tQ24tbl9zMEc5TDgyYCZhTH5mMGUm OQp6PFFxNmxAfX1TQyVZQ0xPPztwLS0qX0ZQTSNgP09wd3BPXkl5fWV5e0xn eGkwMSFmYXdncENfRlZrVGZDMnA2RG4KejRiMjZLTTtDdHpoeiNQdGVob1Zw PD5aciU4KFNLeFRvZDBtWGcpY35NRHRla3VrKFZ6QWx6Ny1eTzkjflBLRHB1 CnopS0NXKDFUekF2NnZoSjZmcDdzI2hzSzU4aDR3WE02I09ZQEVAMypVaD0y ZFNlRzZKQC1RKWw2T0J0PnRlMUdYKgp6LURvZ0UlNVljYVY8cUdNO2RqaCNa RH0kdzA7Ji08MHtSdE43R15SVTdycy1wRkQzIyZOKk1HRTByRSUyMEspZGgK empxOWpBK2RrYn5JV3lJcGRNfFZ2XnsrU09FPVJAX2o7UkBTKW4mU3NmTDtV X0ZjKUFOdFhzRFokMC12NXp6fHteCnpWdTMkMCooRkJiQXBZQzhadkZpOCZ1 ZHBORElOTytXR35XTkhHJlQjYCQ7QWQ/c2NiKGFPQ35IKChnM1ExPXpeZwp6 MSRhI2Y5fXJMQGRgOTM1YjA5SkJHejcmVDY5ZDJoe0BhQk16YjxMPWAlPj1L MzByUnE9P1d2NStOUSUwY2o7RmUKekhidSZDTjVRfTlZcFlDTGZJNzVsKWhk RSQjTG11fklXeG9wZUB3RFZqOXp0aXsoa3hMcktRYiZmMnlKRj4ocn5hCnpx dzxzV0woPWJlJkIkcVBZKjN5ZSlGRF5eVTVIPS08Xlg7bkI0dEMwUC00KV85 fHtVWD9aMTkpXzUyIXRUMSpzdgp6STRHUjJfdVY4JSktJTsqOSVVNTMwX1p9 KjAkK1hnNjsyX2QxNEFDNktOUnNMS3hjbVk/ZT5PTVpEa29Ga2ooUGMKeld4 bjMtNSM3bTJtMDJTakNPejljXn5KVXN1UVgyYFUwM2lfTWZPTnZeMDQ0MV54 UEgzXklocXFhMWJlN05MWVh2CnowZzRkTzByS2RgOFg5N08xZlpIZjRoU2E+ Pj8rVEVLPEdBQGRVZzZRT319QDMkKFVgY1lmbTVFYkskNGNTMStFdwp6ZSZ4 Y0F0Q3l9X3tgSmJRS1YzWGA9S0pJT3p1dmxYXkozMnUqU25Rako8cnIxVnEl QmpwV0xZPHltSmR3NUxweDwKejUre2ZobFdSJlE1Jl9+cjQpJXc3NT8yaHx5 bmVOTGBZWFhpc010WSVMTiNqbFBkUnBJLT5zWTF7fSlDTXw4S1clCnpVQV5A NEB2cFlQM212bXhTTXgkPntfMF9rPGh3akd2VUZQanpiSWoxViNMX09MeHc8 SE4jPjk5YT9JWTEzdGNAXwp6WFFpS0BtUkMtQ1pQI2E/VmokeHFpbWRaakV9 WXg+TDRDe2dTNHZhd0Z9PT0/XipIYUZIJVRjJWdhKEthVistJSEKenphSzQj Jn5SanM0QmEoXjBmbTg2Mlg+JitLeHd3JDxmTXcobkpqQXxHWXZDQS01NlBl TiNXR2ordDxganNtTH1tCnppMkRBZmo7UW9HIzJna3cwNDwyUDclOEs7THgr NHBrJlZMOFU0bnR6SCpZS2BkTTgqUj41PFJMTiZlfDZ5TFJtKQp6N3dHMkE4 JlJgNUozR0hXekhlbiZQSEVjUkpAMnhiZFNEUHw9SHZDWG1DT1FnMFczaGBE NH02fEtgZiVkNUZRJUoKekFxKyV9ZmtWNExAJn5qTE9DcDUhKz5fcTxXYUd5 eStQWlMoYUAyK0daP3x0QSp8USN2aCErVkQlM3VBRUhzNnhHCnoqSUhYemdh dlNpNSlAK3ImZD9NUEB3Z0EmMm5LSDV4VD1KfENIPWR6cEkpX01uTW00T3df K3R9RmE3LWVhJGtsdwp6a1hkUjt7fDBReSErZ2NsXihsYSptUkpGI1k3OUFv aEtNO2I0MUJZRHkpV2YxNXdJNDJRfF8qPl5zKzw/O1pHaU4KeilQPXRlXlVk cDUpLX0oOTF1VmVtd2hAU25IOChZaTNQZXlDRH1aJkJJRCFhPT41bSN9NGBD bzI0NGBgfl5RTVdzCnp3VW9OPHNpfn1VV0xYeFB8RTxgbypgMkB0ek5UVFMl bVEkTTAhKzF5TSZUcWVndkFsV04mJUxQUURyNWp5Y3JITQp6aHB4SGZGen5+ UHtpU0ohQTV3aTRyRSRpU19Qfk9VSFZCT0xXMHZJKFBVMG0md0QhNkdGeTN3 aGxgSGV7bWdYanoKejAqRDJ5VUF2YU5JSVEzeTczaHY1emM+VGorNClJRmlC NHVGcyZofXohcDZrU2AwY21mbDZ4T0R3QCtXKUs2bUN3CnpScWlNcXV3THpD cmh2JjwwcGJWK0xLYkY8M04mYUNfU0opLS18cWtuK2BmNjhiUkNfdmRlTUxT MTEhI0I1IVVDUQp6ZjZtJklMRz58cWM3Qz9IU19lI1QxRWVjPXZ7PUVTMCtB NiFpTEY/aEN3SVZ6NHVSTW80NG5WJkM/UT0pJWtvPD8Kejtvb1ElSTlPUEMh dCVxeFFHT0tvbXcpfUtlIT9AQmZFbTF5SmU7eDxxNWBvJWhDbCNiQWI9Y0Zm Zk5GVjhodjhtCnppfW1majFiI3JASG1Ia2wlSDFeO0s0TUhfVUIqU1U/cTFq OE1iKil2NjQ7RXROelIkTXE1fE9zVnUyV3dSM0o3Tgp6RUI5PWwkUS0paGo+ RXZwdk1mOUxjViQxXyo0amR2NEdSeGhlb21VJTtIJWJgZkJCKCkhcWItWTUw ZzVfek14YmYKemxBO05PUUQxYXVRTlNIWGdtREQ4Q2pUKXpgYllVZXdUNy1S ZXVieyQwQjJ8Q2h4TD1+PS0tb2FaKFd0S1lGPG5MCnpzJldPdyg/aHZIYVR1 c09Acy0hRlVMK09TUFFtdDwlcGsjbD1uYHFodFU0YzU8NSREeEgrJEAzYklE MXJJVE11JAp6Sz4wV3AjanFrXmtuSSE9KnJEY35nYUpKTmw4V0RAQE9QYCQ5 UXNvNHNWZWlMU0w2STRAYGR2IVVPQzFydEVyIygKempOSyZWbilEeEswdVpE bEx4WGhhQXJ0c2NxUWR5V2RUN1VvIUN9QGVPM1FldHZBIURtWFBMPnFlZiMy QFVHcmg+CnpMXzdLfiU2dnhYcFEjRUhtP0ZCWTN5Iy1SNn5CPWpkVUdUZypz LWR7UFBIITFjJXI/bjczVXtATVZ6MDNnI1FSdgp6eUY+ejY/fGIlc3lpaFdO MVg+K3RjbHJiSHNoOXdtRG4hOTM0TUNaPi1WWWMkOHA0MUQyRy1ie21QSSkp NW45RXMKemojNXAxZWxqMjhtfEZBUWt1TypzNVVpdmJqRjIrQylLd18tUHJY RXZedkgjZGk+dH40emVBQEk4dnskK0RSIyFNCnpkLTUxclY4WSVPcT9YMFNg TEI+aUkjNTtLIT92SyMkYHVuQlNGSj5XaG45bVcpRDFPNFY0IXV6RTRuVkJ2 PHBNaAp6JmR5VkwxKGFFY0o0RyFqYE0wKEZYR0tpR24/bkUwUjsmbilgKW1+ ZztYXitxNGhCZHd0e3dOZDlzUm90cndJTDEKemVtTX58aWNqWC1DZ35Nc0tG NCtmJXZPPkpEcD9SaUYzYGxHdzhWc2pEbV8mPjRfVlRgSH5CN35iMXc5Y01v cE89CnpHQyQpVVJLKjBnbG1HNl8kNkFfPE57UHhfT0NvZjx5dFJvcik8YU1R VzhqelhQZ0hjKnEleDZ+SHw8e1BGaGw8bwp6OHppWTk1JVAqcDlyKC15V1kx eXh7azRIOHUoJmBhU351aFozTGYjSEdkYyMmOXtiWCsrS0QmKXtgIzc3PXMk NWgKemlXa3FId2FaaVd6QntiVVRPdXdYSnpIYiZ2ejJ1ODR6Jns7MUlOR0dF YWpiMWZxRzxWQU8hNDZkJDZVazQqRitaCnozQV80fHsxQTY+aW5YR2JCc0li OEZQYjdJRmJaMjd2LUp7dSNEfkRzRitsS0YpZ2QmfGVeS2Z2PlRSbXpwOUcx aAp6dyRBKiFTUyFJY2kqc3RLTTFrWCp0KnhWWHNHWjsjKnRkRDlBfTE2NSZy NXZfYWpHJjNqQWljJFArKUwlV3hmS0sKemg3TlAjKmpJKUFDMTV2ezEoKUVv bWs4a1BTPSN+JFMkPlBOcDIzfW5KQjNYY1N5WWxCP3Z6aUxtMDNjfE5tdEla CnpFTEJpMCg2fWNvQ0JwYSkhNE1oKStnNE80YVM5MmtIVng8NDdscjt3eyQj VjIxaihyVWRmT0A7TkY4UWg9QlVPNwp6Vj1kJjYzcERoZzVCO2h6dXlLQmdB fTVgZUlPIVZxbiRTUFZwVlNxSlp9TylDNz5BVnRtX3sje1EtO0A4UzE2cT0K eno2JXg8eihiOGgjPXpSOT41ODBzKEdzT1RDJSZjVnBOI3MhVS1Ab3t3PHtP VmA/Y01OYihtPmFgaWhgYEBtV2JOCnpsKF9xPkVQRjlAR0M/cX54KzIkPnst K3FwWj1ANSppam9BT2VAWWBaT2ZWTTAkayM7d3pDdlJtbjhmVFAzdkA4Ngp6 Nih6YCs0dUtJcTI5figmbFJ1fVdFQmVRbE9jNDVLemt0UWdGXzY5R3d8SGBq Jl83d0FFQ2lPRXlgZDBUYDFKNSsKenlLK0klK21eREZsZ3tiY0xqVGtpQiVM aDJpKGgpaXJMJUtRe1p2YnM7ZlRXQSpNPEhpMy1ze2UhJGFqamRyJnZqCnoz Y142ZzlIWVJkZTA1IWRHYlBpPDNqSFUtO3g4VFd0dC1rY1ZLISFqKyF1KTEw WEZuNjEtb0Z8SUloe3ohNShUUwp6QU9fbEl6R19LSm9HaE42cl8rRHBSOC1q aT4yZ2IkcD9fYzJCZHZpRDA0fnM+aDQyWVRad1Vud1Rpdm52I1NvaVQKei07 JFoqaDVpd3cyTSEhYTlReXpFOzB7WkdJWX5MaG1nWilfUiQ7cTEpfnJhVnVe c3tAN3o0bG1jRHM0e09Pfj5mCnpHfFE0JTZPPHdXe2x8Q2x1TVJ2cCtwPGo8 a1ErNEx7Z3JrQE8qdnBvK0xFTzA0SGJnV3V7WUZLN2BUMXdNJF4+TQp6Q2k+ fDxxXlEmK01nUWN8Qm82KHZ0IzxBQkNqYCE1YG1iPSQ1ZmhqIVhzTHhiNmFy OHFLR2VgTHo9bUg8bFY5ajIKel99O1FLSW10YjVzP2RLVDZvMWdjekgja3gr cE8yQD0tKVpSU09geERLeElKPmcjZEt5NFlkXnBzSG81fD4zS2B+CnpfYSti WDdTR1Y+S1hEdzE/NnwkbSkzc0dvdT43QV9ARTtXZFA9ejNkTEk3JmVoWito NCpSTmN0cFpGeyFXYnNXTgp6PTZCNDN7PmkxTW9JO3tHKCRfVzN1eikkeDUl OylQcD9+NHJwK1hSOXRjTSFHN3poO0E/NVpveUVUR0YkN1FkSWQKejx8X0pV K3BvbHR8OCEpPmQkbzRAazlYfFRMak9fLUJKTzREZzMmJjdDUDZVMykrJSlj UGc/NmdEWnxTPl5Ndzg+CnplZyp4PHhBPklfVitYZ3RaJTY7YHdFSTtwKz1S K3BIRmFVPUZhaXZxJE1QWWRObzU7OGxzTStZdk1sfD44R2htIwp6SzYxVT9p JiMheEpGZCUtVndWM1ljVU85Zzc1JkcoXz94SzxYVEk2dk9CclRAUz5gWUl5 VCo9NEt0Mj0jRmReKkAKekpyc2g2c198bn1mcmxiJnMzSnQ4TlhUYlI3ViNa Y0NiQnFKSnsrPThnPExmKjs0KjRwO3tBZz07MFReJCFvViotCnpvQFZDQE9H VFFCbiRATDdAZV40fiVjZ1IxRmFEK2p8TVNebmx7cFZ0TGVBRmspbnpXfFV4 ZmdgJXVvbkckS0Q7JAp6aEZsPzkxYGhXZnpJVWpkYWJ5UDtIYTleVkFzfEln Q2Q7eHxuTWs/cy1NZT9RKz1JV2dTKnlaTmM8aX4xOWdDPmoKejFEbjdPNUhM QEpqfSM7UGJvT0wqP2p2XmtQZmZYNz1wUWRpQXswTj1OQTFkbWI2RDx7QH1K MF5jaXZRUzBaQWQwCnpwPDIqNz5TRUNyNWlLZipYZE1IMjNyflllaDN0ey1y JXMpTWt8QWttbkB4eClNVGtPOVA2R0tZdFcwRWFFKjA8OQp6aGVNUUpHQiRE QWF+V2tvY0k/PX0pKWxZPTFxfFVKXjEqbUFOKXVZdF9vdDZsalU4bzR8RE0j bFliKDQ3T2FIZlQKei1FNSF6eCtWUUhESEtvMzUmRVpjN3BuamdwPm98bz1w aXhoZy1WZ25zMjFvWHMyUH10PW9AP3h2ayh8czJRJjtYCnpeYjJASmA2d3tS Wk85KGRDNVh4MWl6SHp9K1h5dG1JX00tZ0h+NjY5QD9vTV5BMzRLTUJ0VVcq N2dOMGxIbys0Sgp6Q0JRKXhoR2h+I040aj9IPmhaKC0oSVBEQS08eHR6ZVJa aSR8TWFvSC1SVzF+YCtLcDMwN1UxUEV+dkleQCkpNmkKelNwXns1XzlZYlh7 cTFaKlRgeUQkKmB0PUFaJHFldlJ5MVZEbEBGPXs1fVJzS1hlPS1Wajl7c0ky bHQycDskcX04Cno0QEE4b2NMbE9YbV96ZjdxZmszXjRvJmh3endQclFTOEB3 WDBYclpKZyVNYTdOSXBNNj8lY2piNitia34oJHNyTgp6cX5RckxRM0MyZVZE Rj0qblAhLX42TTxhZ3lIKWBKSmQ8RmU4U2xZRWYyVylnJTEwN0grZWxIT0xk YSl5NjRWVDYKejY7JChxVDlDOSpGS2NGRDNLIysxOF5SN1BmOFlAd2k/K2l2 eGZnTWJOKDAkTHozamwhK3tFQEtXI3o2fWpfS0tSCnoje0gqbyt9cCtELSpn cWM7VGlYO1l5MkM5PE5zWVVISXQ9KG1FTClFKW56VHNPPkokaDJ0ZjRfUEp4 KFYxVzFDLQp6PmA8UW9gLTQ/V09WZFlLVGFoWEVIcX0pbkdXfkJ+VyRYKVlg RV9QTE9XKjBXdE82TFNnJnIwRFF0fXpmQyNyJUoKemgxIXdOQz5XeFhLdzVr dFN8bHdyaDd5amhqPl5ITGZhMSt1cHhkNTBOTyZgXlViJXZxaExYPU09c0VN LVRRTlZxCnp2K3wxYVVpYW9hO1J+JHpSYGFgUXk2PChFb2FEPEc+QzdFbkdB WCZqVE1YYWUzXnk/WEpPIUxVKnhGRi1QclhOTwp6SF8xfFdeMWFPc0hBNFRl Y0IxKXp6fX4ocyN3cXxFQyNxZGM8dk9odmBjTWM9QyQ8Uk1CS0FAMkEhQ1NI PFRMYW0KellLaUQxTipqU0BfOzM+ODE3RS0oRUpWZG9nVDhAb2c5cFltNXBh a3E0KU5vK1MtYS1Mbm9AX087QjhNUFprWiZ6CnpAZkNfeSF5U0NzXiVGVTRT JnRUdmYyK2RoWGxyZVNCPjBHNjZiUCRJVTJOfHp4MH5KLXAjTkdmZ0hzWmR7 KlFtUAp6I2grcXErWnFoTkd2KXI0cmd9eiVgNDBSdTVpPyZTZD9GYjdwPDlJ YkY+RGUwVXtkN3NsRXNUIzhmJEFSeWsraXIKejwoe0l0cyF9U0NES1JURjJM N1FSXm1lOEx0WEtSbkQ1QUlgRiZxPk5AYkZ1PVplbTMyLW5GeCN0akx3fjQy Y0o3CnpLdXQ4TWtHMUoxKTFtcHdsKUZvXlUrQC1BWmYkNz5IcEs8eS1WJEdH Mj5TMW18NGVocHxBZFBGTFlDaGotJmRBLQp6enVyXlRXPUhKV08yNSFRWTl1 YVZGcFFeU2g/eDZ9ZmRLS31MVi10bXFzZ3BXeVNCYzw8Q15yMkJtRUlpK1dw P3QKejV5WGpuRFIrQylNd0Z6RWFeJHxgbmxaTXF6OXR9T3lSOzVRTEclcjVQ ai0+TzR+ZGVtU201e0hmOCpoNlMxJjJlCnpmNUF3KD5eLTVJNCVQVF8tdD8y eyhERik4QD9EUFhYWj88dTNPd2xGWWVXQiNQKll0c3okNT5te3slRTRGWl5g Ngp6SWAwdl5yIzxiSTttOVN5Smt6dWshVjtWI2RINyYkRiYpVDlMZyYpdkpS aUErcTM8dVh7SzJrUSNFJTFRYH1TP3MKenU0JGdFJEdzX2Nmb0hvZk57Yyk3 ZSNnWkJHfWN3QT40MVRkaUdaPFNgb09vTlNtNFUjaXdpMWV2ZHkmSjFFWVVG CnpkNio7ajcxPUVteX55Xn0wc0J8ekFOP2wqPjdQe3FicD1tWjspaFhpJXs2 TUZnTFlYM2dNJl5ZZlhyZmU/TkNKVgp6RnJ5VWwhND1HaGg2SyZJakpjbDZh N1Z5MDUtfTh9Xyl+RiZCN1ROYGBORWRjeXNueHtBWTg8NnVuXlhOTGElVm8K eiRaQmI2Uj5CcnFMTEozZSN2Qms5VTw/KmBHUSR6dyFTNkVOV2pmUiR2SFhj N0Y+bTM3YSZJeThGQXEwZ21VMiZICnpaSDNUM0Aqa0B3KGV4akxaQSlQQnZM KmNQblBZfGl2Qyk3WitYfXhscD5zeClESCEpSnN3Xms1JWtiZHdtayh6Kwp6 JihQcDY7eGRGRDhaWWlVYlNHRnRCMEtvOz8yPHxUVjhXam41PHpqYD47MUxH eCNFNWlKb2lhallCLVFXTlpSX0UKejNLSSorRWIjVCRgJisjUSFPc2w7YEhA fU9iNjReKFNNRiRBe1VfbDY3eThFO28wIzshKz8oRmhvIStYV2QtOHZ3Cnpl fn4jTDkyVVN3JkUoNW1NcjBndzREVEdLRi1vYT9YY0pIOEIlV2RWJVZrX288 UGwjNzM8NilebXhkIzdRPmJKVAp6Y21iXm1XJDZ6X2BFJjtqQHllQ1VVdypO dFlDN2VpbEkpTlNeQGplKmxicXpyZTYtQTYybiZjaHEhZ2krWVBUci0KemVM aDRubD5SUSRVOGNoalNMIzBqVWF2IWFZQlM9JFdzM2U4ZUZSe2xqckIqKHYr VXFePGk5MmVyd2gwcyMzP09xCnpZVyM4JU9rX0dYZUtebUQzJFN7KTd+S2lw ZmtFSTQ7VUwoN25TdlB2VVNNaXFVWFpMUjZyP3xsYzBAO1ItbmctQQp6JEZ8 QXxGTXs1SWY4RDdNbClDMXM7ZVo3ZSZoS3olSjwrY3hka3gzXzFIUTNPUUlA PFk/K3hkfnd8JiE2RCZ9UFMKenI+QiVuYEIoaykqWHQrJHR2cXtWem4mVDVW Kkh9eUtPe0spWihuVTIwLUtsZGozQXU5QVlBe0BzWGptSWRWQ2t+CnoydXVN LU5MWXVOZipGTF9mb3d5UkJgZ2M5SWFDRlYxKlVeTG9lSz1MfEpKU2pgQFhF cXc9SkAmMWFrT043WiQrVAp6QkNgTzxIeXJQRmp1JX1CR3hnKj1SVyRBYHxH WWBuPC1VZng4YlpOfjdjRTRaQSh7eDJGXj5+Ji1uTVApdUFNdFIKei0/TXdx P3d3bVZlejM1bnhOWGlxTGxqOTQyWXllPS1GMX5kS3QmaWIrPShnd19pdEdh MyM7enY/VU05SXohZURSCnpGT2Z1RkBwUlhtMl8tWX49MXN8Uk9pNmM1TnA/ KDBvaXtuRldNO21uYUJgYDBSPCs7SlJBMF5JaWZmZC01QHIjTwp6NU94NDNA QjtWO0dzT0R3dWM5Qks4ZXZ4Nz4wRSRvPzlfP2wpZjR9d3VvXnkqPi1hYV9X Z01uR1AramgyTUVGb3oKejFocT1OTGNkWTl7ZHYjVGxzYTNSalhfantxNjhQ aSFCYC1kOzAwYElnYzImTkI9IzcycDVLM2VhUjEmXzRUVik+CnpBN1NFOSYk TktiaEpJa3IrSCRYPWVAd3l6KVBEJHBgQkhrcUNCMz90YXhZbXg/KEM7ciRA ajEjMDM+d2p1fH1neQp6WXhOYHQ4cGZHbklFVVRJIShBeU9KbFJqVjN0cGMk RzEqJTx2OThpakhNekY3VVFENmJmcTZqfjBSOyk8PDdHdWsKenp5KX1hLX51 JEZKSSpkKFd6fG5WZHs7bD9BMzchI3hgYlNOZW9GcHBTO2w/alBnWjEmXmFu PHY9Y2ZRczFzfVJJCnpNJTdpN0xDPzxGNlpLIzErU3VMaHZDa0p6Ti1sVEp1 QilqZXZCek1aQWE7TmtnYmAzeUcyZ0otaTE/RjRjakBCQQp6VShXeHVWUjMy WSpvT3NwUShzSm5JdkIoPzVTc34zfDM3X3VORU5+fF4oRkxTdWJ5X1oxR2t2 JkAqdHh+Q2Rxcm4KeklXM0ZUSyNsY3Y2YzwlUEFkRGIwMCNiPFNLeWtzQHZ1 RHdXZkBBJU8lbkBpbCpSRVZAY2p3YVUoRD5ua2l0I1ZKCnoqSEwhKiRkP3or b2p3MkV1fHFyOEVfSjdycnVGeXxPXy1FSjFQJjE+MCVZdGZPQGdyPys7cFln dDlAenJ5MGYzMgp6bTtYPWwrLWZSSVRVKDU5dipIRURMU19VYzU/cGA+MU1M KWQ5fHFkM24+VCtyZVFhNmpTUm9hPT1iT01WKV8oPDcKelFTbUB7RGx0Plkq YjQmQFdRaiZ8Y2tHR1diZnExQmpQbkB9NzNjcT4pSCVEa3V8Wio7UTRyKWE5 YmhzdTdvZD82CnpEI2hLM3ItKTRXSkg8NHs7a2ptVTRWJlQ4KC0yPk9gdSVO WEdmeH5waE1BeG5KSmI/OXlsWStrMW5ZPjVkTFhsSwp6YW8oIzxeKS0kUkJY JHwjSCpHfDUqMFpqdVgjfXV6bH5wOD8zPFRhaEdDYzhQNldKbGY7PlB1Qit0 OysmdHtEdTEKejFwMlM/SjkhfVZrQ3V6YTFBJiVre3ZWZGB1em57KDkwcWtj JTslc2lJV3J6fVBEIXBUYnQ4YXUpbD8+OHhCJW82Cno+ejcmaGoraEEwZD1C cDJUQXRtdDd6OSkoc2lNbVZmQSspZ0VwNWwlTjJ1ej11alZ6QHI3bSooTkE5 KEkyKWR8YQp6Oyh0QX1eTmlgJFYkUVhHd0dLd2xUYEJqSjxjIyhlTytfX1Eo Klo9d3F6djZNQmNsc3BuaTtkZUUlTlN1Sk17VkgKem4oO2phQTU3MmUxI21M LT8tMlMme3dGNT1nTGRsbzNOfW9BMzRQZUJydlhMPz1PT3hDdl59WEtpdH1I dURzITdPCnpCRGV0TFcwY2BDV2ZvPjRBaW01KmtaOTZGNWlOfT83a3twc3s5 PFMlX183fmdgfkZKMnpCakk0TkFsPm0+K1E/Rwp6e0lGbyZUWWNjNEIpM18p JlQoQ30kNCFWO1YzOzFGVSlLQWxWVUNRKSViY14rSyoqI2xFV2orbDVhNjEp JjY+eH4KeiZoSmhmdmE1TzA+LXA0d0BFUD9WdXFeTzA7cG9HeE9GKX0kZylj Kilzfjd5ZXNrJTQxMCVvciE7YEFIIWNBc31+Cnp1X3lXN2xKUmRnKUVOOGpp QmJnOEw+Rlp1eiVMPDVVdHx1R1A/M05MZ21mWTFfM2NHXiRNdHA+NTs3bjlW RClsVgp6a2BmbX5rbT57PCtganpsa0V+OSRjdHwoU2pofEE2YC1gVkojPVQp T0h+UDQlYHc2Q0BGJUMpVzhVTjN3aE10NmYKems9fCZlcUBMbXdWakBQejFL UklTOSMmO2ZedztUYXo/MXF2TGpNVnlMY2hMc0hocV9HRlpjKEF7PyZWTjdk dDE5Cno1eFlSPTB6P3F6NyMwRCE3SS1BY0F4WGQoIU5+KT1hSER9ZStpJSo0 cjMrZm5ySURoTGtmcjhoO3NRJFJQK0hVVwp6ZmlnTyZfbn44WjxgJWZwTX5S bSpeITRIVj5kYm53cHwmVVc0bmFpVmhWVWc4OFFDblh2Y2JVJXMzI0E5NSF4 MFkKeiY1eThrOz4tVVhANzA4Wm1jaEJrbUg4T2Z2QSp+WTFZKFg2RVdtfiRq e15DTDgjJHBeO1FHfXxFaSsjOzxZJWBTCnpGfHxwXnVQPldOYXVqKGBIKmVr dWh4bW1UTkttKHtFfjRKJCV5X2lFeTFjMk8pLUB4eUI9YnFoI3VUWmRXUSNn Zgp6Y0xvMiU4VEczKF5LdFJBaVhnJWt6JmkqMjVrVisjKlJMQ2pEODFQSUAj NH5TQmskRHVgUTd5b2t6bX1MbkVvSHwKentQez1pKjY/Y3hWRlhMRjk7ekp3 VDx3JXNucjhsVWUoeyhrLW1KeSR3MnBhaUYtXkJqZjRPMU9iSmNsfDtgLTNo CnpEMzcocGtOKjRzNCFmPlE4RDI4c29yWEY+WH5zdHNRSEI2cjJzNFVFODcj bW9rU0t+IVhYbjxIUmV8NzA1Qj15IQp6RmdpNm9XIXUpUjxvX0dPKF9aYTIk JHZUZ1g3QCtzLTN+ZlNPbWVhJGAqflRWJGx7YT16c295MnVPIzxuVWx0encK em89OHBiU207MlNlJnZ+dHRmeXJONiNmeEdjJkFaZzZjPUwteWpNSGI1fnsh aGpyenxfQU1nJTA5ITxSVUZNe0VICnpUYjQ9cGdBc3hYaHBQPklHUlpEcXk2 fiRuemFaRHlxYE9pXzw9V0x0bXdyOT4hPHBrcHp1eGBEPTJoeiNtRFUkIQp6 eDZGTEtCNzNDaW5MNGdhS2swYGt3MV48SU0tdk54Tm16aGMwN1p6YnE1amc2 QzRtal88b1VENXRNZVpOY3BaTWQKej9hcUIrJT9Jent7bEpDN2w4T0dsNCRJ PjZiIzF8cF91aU9IYV4kfU9AaGZwYmIlJjAmPUp0aykySmlJeEliJilJCnpw NyE7JUcpOUx4KDRDfWArKmVwTnViIzspajdOZzM2PUlhKTVvSFFFdlR1aFR2 Ki1tP2EqfWgtQjxMVDshR2MzLQp6O2xUKWg/Jn5rMkJFSjZjJmI1TDVubiNl Nj95U2RBJFZHKzJBPDZXSUxtb2ReYTQjNHApTEpIWTdOVENmWn49R0MKeiRy SHpTPyU0TGh2ZXcjP0B6cW1hXiNfdHdkZn5AVHsmJi1vSjd0NyMtZWVPQ0Zi ZmN4TDZeV0JDVmV5Kmw4RXNUCnohSHhKbEtXdnlHIXJ3JGMoby1CPFo0Rmd1 JlY9Jn1wSEY4YjN4YkZYWUBBO1YwcWZZKStrc2FuUUwrWlRRNzJiMgp6ZHtg KyFubHhpXl53OXBEODx4Q1pKR25ZSHs3N3orYk1tYEgyaD1tTVdMWFN8TS0q V1dKMlR3aDl5QDRUe3w2eTkKelhBKWU0NkJRPk88MyUoeDB3bC0hbVAwJCYq d2c8TEVscktnZlQkbnZLN0tIZ0hjYEtrVmA/WjchZipzTEl8eEJKCnojN2xz dDJkQl93bDFYNUVCKnc9WkhtcUU+c0h8e1lTPypKMCUtWCQ5QUpaPVNOZ25R O255JDxOdT59fWIoeSh6Iwp6MlctaGM5NFJyeS1zIWA4JF4jMlhmajBQU3My PyprMFRwVHFjdXBiKm0ySE1yU0xSRnBOJGB2MDQ4TzhvTXJjKSgKejdGfVde a3N3el80TE5vRXpeLSt6aDNLbiZuI0BGTVQoazFeWFFJc0c0dVRURUtmfUZh K3ZmN2oyUHtEe2E8aHgzCnppfUhgdzFiSlkhI2RKNiNkLShDTUhlMTVhTnBJ I1RsdDRrSWFzb2klXm82KyRjMThsRGlsWXpgQz9+XzgxUmtnegp6VitXQHRm JnhOaT9uN2R1d3tXfWhTK2I7fCVJNiZTbmtUdUJBZ0tiMFZKI19tT00+LWtT UD8xWVFLSlFzQ0tPcSgKejJZd2VjeCFoOzB5OzVIVFc4R2ljdUkjNSl1VWJL fUhfPEstSE5aRHN5WnIwP3hvXyZ2UzhXPHl1ViMqekl7X0AyCnpCc05rPWc+ allPTFNAfiZ5d2EjJSplI0p2QFhQWnRzOEt9S0d0cC10WTQ4dFVHcH17amB3 Y2VOZGZuNGJ4eDFtZAp6NnRUKE1wJjVNRj5lVH44TVJhY2AxKml3Kz92OFp6 Sj8tQT1pYyYkUVNmQihsYTBSMnlxUnVnK0Z8ODlCTEU0a1UKeiR4cU5jKURD YF9EN2hZNyRwXlZEOX1jQmE9X18lSjluRF5vPmVWelhAbyF2Xm9LIUw7UnFB Z3I1SWpVb0RudzhtCnpRd21RVipkYT10Pk93RjBsa2NpNmIwN2BDazE9Q0xC YlNmJCtJMG44bkAjQk4ob3lHMHl+a0hGZ0NVYnExS1VFYgp6Tk5sRGQ2fmpe X2JtSEtpeChPRH4pU3ZIOGYzVThxVHM7dXtHcmtEN1JWIUNgQD9YLWcpWjVP fmt0QTl9NzJTQG4Kekx7eHNqMUFAZzswdGk8OSNaeShzQSEkVDd5aVpzYmU0 Xm9xentmY1pIbyE5ej90QmNkbUx8JWx2dWR4bHZiNDZVCnp0Z2dCbzJWRnk1 UlpDTD8kIWAjX2R7OFg/QntRNV5BVX0qQ0tBYllRS3RUZmpjYDFtKzVRXz9G RFM4T0FmbGpgJQp6WV4qLXFJdVgpI2plQio/aGFXMjhBMSU+RykldlBIejBE QT5jQmhWe1pXWHVeYlYwNVI0S3AlPWkpb3I1dG1HWWAKenhNSC1TeU1EUTZk cXA2PFEtN3daP1p8cFlUdWt5eipvdyNjM01iJGdHK2p5Rzw/OSokOGk1Oygx JDFWVjFZUTs8CnpaVV59P2tmNmZaZFM3SGZhUlRVODZ9XlZZO1I1RDA3KHRZ cl9TUG45VnRBJmRJYFVwRU5gS054VVJLNV5afjkxWQp6YHUoMnRgQFFLODgx ME9RVDxIKGJPTThyRUg5VjhXbTlDayZfe1M+VGJHPyhebVErVWw/UnJ9diFJ cVRsY2FSU1oKelhyY0gqdkIlQDBScE9ac2s+fCRKXzE0QjMoZnAkJntKV140 di05QU40QCVTVDF3U0ZhJmgmP0NEdHNibWdqTnxjCnpKUXlnQVBAfC1tPEVm eSpCK2krb1pNQnFmMy1MaERtP1RIdUQ+eV5DckJfRihXMlFTTDZkMHZObFd9 e0pfSkhZOwp6KDNOdktKS3dKd1pgWElDY3VXRFIqRTlzNSVtcX1wYkk7MGk8 LU8hZSNSNCtDNmFEPlNBfjljNj9nS3xfSVFMUT4Kek0qdEF8I31PSllgZD8q T3FyRFYxe20/eVM0RDFQYnYyYXBoIWhYSzRMcWFYUVJLOCRPWiolQyNlMWI1 cDY0eD8hCnozayNxS3ZCLWpXMWZCfFhjeSFsfil+KWw7JUA2SUdGckp6Nzkw ZnZJTj5EUUg0T0x+IV5sQWFhbXYtTD1AMnpJfgp6THFrc1IjNFFCTm0hQipT TWs4bXN4PD1LYjNJQUA/MCNjfHFqdFRGJGpye1g0UkZ+ZEVxbFQmSGBQfjst VnAwYzsKekJ7cjBsaFhJKzsyP1N0cVZ+RyNHeyZWaWtreD1lKmM4X1hsI1BK QjNNT3BaRllYKjNtdz1PVEVjQXI5fkNGJWt6CnoxP29oMGZpeihPNmQ/IzZU P293dFBjb0FASl9fKU9WZGdDT20qcyQoTW9ORXwtQUAmQiQxKiNVRkw1UHRC OS0wUAp6Mzt2JmshXipLbjslPG5wQSk9alFNPGVqdikzZHkoX2wzQUp2WSQr RXd8b2RFT1F4aEZ7TCNKYE02fXRzTThRNiYKenBER3JVQzZMWlp8N0EtRk0m SFF1ajlHKyZWOVE2JUdsZE85cHc1fjVxT0FGbmNAcXxaKUdebDMlPXdFX3c0 a0hDCnp1Qk17Z1VGYV8/VkF9R2ctcGtXVzQ+VFFHX0ZCS0lIMW9tRHBLTzVt NGZmWXU8LXZyUEFaTTZUKlNGM3didTt1fgp6cEdYamRtPnZAMXU1aG9NezVB dUowWnlVZ0twPWp3eSRZPD1zPnBzJmRLY1VzUHdJV21eO0tsKztoUCR1JiVh T0YKenhPeDRgJUY/VzBOSzg7VSRNcCZnaX4zNXdrZ3NTOyQrJi0oV0lsemlC SV5rQjh9KVgkTGxjbW48Tis+aEBTJElrCno8e0Q8RVUhT2Y0Z2JSSztlWWtx OyF5JFV6RkNAc0leZkAja1VUNjFIKl81fFhFJTV3K1ZPK3xDP15YRD8hXm1e Qwp6YCNMQVFnO01+fW09Vy1lbmViUWlhUDg3QjMrQkNQMmFHeVRJY1U3Y09h YkliYyNFYnsqflhQUlFjQ3h6WW9nVT8KemNJMkVyYCZ9U00/b0tMYiF4WFVk ISR0fFJNKys2UGN1dTJseDxucSlkPEl8aHxNa2FISEgxeUEzPkhIXnF9KXJ5 CnpocTtPUCRlX2loRlpeXy1ZM2dXRFozfnNidHo8SGNhbkJ3e1J1dilMNUxY V0hyLXM+WXBFLVQ8YzNeOFQjaVZ5aQp6PEpPSTl0MUkoVkVXajkwNFhkV1pz UShuc15JNUB0VkU+blI/VDk9TnpUe15keDM4K1MhdygyP2ooWikkMWspMUwK emNRQTlraCtyeFl3aDR7ZUEpYm0qdE1hdWdCaG1rVD8rI255JkE5TihJUnhw UUxoIStHUVcxQW1TJnBTdTYrVjh6CnpHZiUpbE43a2FCWnpfTjk7Z0ljeUx2 VCZzJnJlUVRSV25zcXArK201NnBWb29YUmNxbCZeKjBvdCo5QmA2bDEkWAp6 IWtyaTxjKVNOV0QpSF5Yb29acVZmI2VXQm5ZK147KFo/Mkc4eUVSKy1IMk4q TntDVkc/QCMxMlomfjclUDBkMX0KekU5ZlZ4Y0hpZ0JkQkhzYHdaYilYPkhO bFJuPzU+emNwcXk7Jm04O3VecFVTbD9FbWMwdTYxOCtURHMlP1Q4Yl8lCnph bFlGKWBGVD5YTjs1XyV4M202Q3owSl5JUmpzWnJwdD93WnlBI0Zoa0FBVUhO ZGBiTjVzV2tNV2dMbShtNU5LYQp6XlBBNSVOLUN4YWJeNCorSG88UT8zfntD VWlHZUgyOGFkeVN7cTUweFFOKGoxSm5GazZkbnJjfkQhKWFPNHtXdkwKem87 I19id287dFQ7KyFQITFxVFNoV3hNWTE2UlRYbUpNeldYVFVUeWM8WCt9VU1V U25AZVY4Umg9b2t2ZzlKMFA8CnpfcXNNMSk5ejcmYUdyI1Ipc15GYiVJMkY/ UXw4M0FqQHZWaWlONT1gejFMQEcqYW0qUGV3b2ZFODRna2NgZE4+Ygp6PGgp UV9HSThWakhCYFk1RzBLQjVHJTxQdz1EQCstOD1HZUs/T3QlRmpVK216O3cm V1JLbmFyY2p2cFg9VD9HWj4Kem0rdyFJVDUkWlVQeG96SiM9XjclK2c2YEZf OWY/SSlXYDUyaXs7Q2xzSlBOM3wyXjRIa2xJU1BwUzI7RkN4ZFU4CnpPR242 VVVibk8lIzNXQDB6b3xRPnh1RUFUXj1fWUk3SW95Qjh8eFA+VHAmd0FASXF0 b2hMNmNSPHd9QiNYSEZpaQp6RV9oeSQofVJTZHNoXik1PE5zbCNUZVlgfmR6 bWF5aHlnYlVgRHRXWi02PnJUMHExOXtZZlR1PzQ9S2UlTH1+Q1gKelVtYWkh JitGSCZaUUh6fHcwcGZJNWI4amgrUHd+d2xrazMxYmNIJFkhQDRRQHtIczMl X0hvYjM2K3VUUmpmdEsjCnokaVR2YDFrRypNQHpjTHtYWGxrbXpjdik2PW59 KU9aSkB8bD5edkwjbXBDSUtUMmtYIXwzWj5VVHRjK3s+dWdfRgp6bGpgMyVg R3NCdHFteCRKaTF5YXpjdi0jekpDaUkwd09FWihtaTNUNk9lVUNufDFfKlRZ dmdpJkNmazdpe1FVe1UKelVEdTwyfEdnJnYoY1Z8fmNtbWw0UHhrMn02TyE7 VDg1QVREI2N8NShZdj5+VTljNm59aSRgVUg9dDNhNEVsNmdZCnoyQnQ7RDB3 OU1KOWhMaFh6N2BaQSNJZH5YI0oqM1YyZk1HTTs3d05lVkVLfHI4ODJvPl5a OShvKjdDOEIrWDFQYwp6TjR6Jm85e3QkfCVAQHZuWE5malM7Xl4xd1pTPz16 cyZYYWVCbnZsPUNYWGZqMTNaWisqdDdsUChzVSFxQztUdFcKelFabihzRCNN QG9rd2dXa0I4bSRAMkgzQk5aKG0pV1lzZEEzbFBMVGlVb3RAUmBTJHFYc3Nk dyU1P0xnVDs2cH5VCnpHWEtkQjd1UXwtXzVBLWpaNUpiLStgby0wP0grOyhC I0pJV2pMVkJQS0ppTSNpZy1Ybi19dmpmQDlRU29QeHRtbgp6Q0lIRy13I3BE RClkfnx5R1FuNz1jIXkyXylTKVdOeElkVmRJMEtQNXZZJVBGVjE5aG5mR1pi JlgoPnVrZmpLK1UKeiNoY2dTJT1fbGhmailFNlpkfD1vWWhVRWttR2k4dSRp filfTHxqNTFoTXx7YCVYPnFVZGhvOX1gY19xMD81WlppCnp0ej8yN2wxcypw UilzaUY1cz9vaGdXKGtrdGhgSWE8PEckd0ZyQ0A4d21BZjhkMW1EQCY5VEhh VWlDZUd5TTYxVQp6Yzg3d3tHKShHe0A9ZEUySEokdEVyI158Rj9sWW1SWkpl JmdUME54dSUmXilAcFBCK057NHctb0UlcUhNO2A5O1UKemBeZ2dKSyhpcm8h I1F2QjZPLW1KWntafG0xPmclTSE8PVBEZ1BhbmVfaD13KEQ0YD83c2BLPWJZ PFl2VG0hJlNhCnowcHFnRD5HMTlpdkokUEVJNHk+ekgyM0xeQUFNKjxyRiZP ZzR9cUN1VXY5U0pEVGR4TERPclhYNXl4Nj1RbDk9OAp6UmA5UHNvdno2ek1Y RjJwdm18b2tXYmF4dUNpJnBiZF88TV43eU9fZVB5cilRSDBjaVdoNW01eksh XiRfY3pyU1IKejhHUjxXU1o2ejEoKDJWcXp0Jkg5bUp0Y0BXZiFFYVRRKmFK ZkAmUyUlViM2bUJhbHtTe3A1Xj9sP3NIZjQtclNvCnpZZlJUV1Nhdl9VQ295 fjFHfHNUQFoqTDU8N0RrZSg+QEg/dzEhVjwqQUVyb0Y4JkwhIVVoYXtJNXco MylIR1EtZQp6Mi1HKXI3YitpazkxTlYhJlg0RHAyeUNgTTx+KzZHcXFUdl9f cDApNmhLWT8kaShIbCtId0hhOWlTQHJ+M0x4QzAKeioxTj9lRkVQdj5nfSNo fTklWSRiaEYmbU1JaXJ3RiE8UldxQXhIbkl0RFNuVT9BazFqR0s4ZUskNjJu TW1fQClXCnpGPzBMb2IoOX5+WWcwRiE+NW5YIS07Uk9MRCVaRnVLV0M1YUU2 VyVtcWhKWjdDLWRQSU9CYSRaOSFTUlN4QUFyTQp6PS0jcSlpeylWUUU9VFQq O19KZi1NJDEpcnhQISk1QU4xUWRaIUdnPj5TIzAjeDlRTkFWVSV8ZTxlUHIj IWNZRnwKeiRPa0A+NmVMQz5qeHlINy02PG1DPzZJJWQ5N0BORFk4eDUjbGx+ KVJofmxGQlYzQDNgJFg2PTUwPDMyJlF0eGY3CnpAe29sUmFMKUhiXkhFZCpg X0NfQU1YKWpiMXdXdEYtfFdINF8jKSFPKk5xYihqdTgrQWM0VW9IMlh+ZEc4 UmFhYgp6enJucFdBcHR3cm0qMkRPTGNnKUE5b1lVckBGUntnRCl2WXtvSTZF Q1krWVZYVW81fUd5UX07cXFXcXY7NDhIUG4Kel9VTS0oMz08Oy1lUmR3Nkhf RTtaV0RXa0ZiKit9Jm15Xl4kUCtHMXlMYTloX0NwdHAkZDlFbDZrPSRyYTFE QFFgCnpqKkwpU2tXK3NeViZ6SWlNN0pKVldTayE2VHtvez9wfHJiKz5sdF5F NERPNmE3QTt5UjMxRVNtej1MWW5xc2hObAp6SENfcS1VPzUjJXBJXkNSSWw+ PkM2dGckWEUoYyRCPkV8RDYwQGJabSRNdHUpKG5pK1RSdGdJKzE7amxBRGo1 RFMKeiYqMD88dUNUNTVSMGlGSTFreWhKYjgtVz11Kkxqbis9ODJFJlVqciFL cnBIKlBNRU84Pm9POXZnSz9yVEt3KUgqCno5fSUjRkBBKX0qYFd2K2QtKHFN fD95YWx6aWNmT2olUD5Efm4rS3oqal9YdWA3M2BkekUjb1ZXelBNKz1NbkVr SAp6bFNTVH5VXk1ESTRnTThgN35rM1hZXyVZNXh5RSFDYCNkJV4pRn5+SWE5 Qzk4QXhGXjd7QHYycXhwXl9eUHU4azAKentqSU9ecTVLZntpSHF7SDxOWjJk UHpjdj8mVXQ2U282MExTQE1WfWtvO3A7VEswPCQ7LWV5NnVfYDFha2omQn1G Cnp8QXg1eD5lR2ltX3B6Ql4meyVoMkhJPztRN1FZRy1pZ0k3VTIlPUVHanVY OSZCST1xazdXKEhTUnNkNSN0WlU8Ugp6X2JsQE5ESnt9Rz9XSkl4YmFnSEph aTtydERMPXMwUVRXZl5OYlo/YCorIzlRcmtzI20pVnh4aW95KXZ3YHM/JkkK elEtaU4pOGlVSSR6IVZARVV3MlNDNUche1VJYTZleXk5aXpyRWNEYmhAb2l0 aC18Wi1ZbEFjdE9hWkxRVGp1WEFqCnpqam9KRzh0UTVVTVVhajdpbX1URVV1 XzdWQTZTRFVsUmtZM3t5SFk3IzQrckpUVCVrUCFHTGlfTFVQZn5NPkA4NQp6 bGpYYlFxK3slaERrRUIxITNrVUstJFZuKXpTPUBzbHdJI2djNVNZIVkkenxi eSYmYlRhJkhNTjs3SzI4ZHlPIyMKemJaTG4pT1VtbDdMPUcyalVzKykoNlgr ditRQ0kwaCY9SnV5dyk3aEd2aTRMeXczSmk9YUNOQnozNEA7alM3ZndjCnpC Z0xwYCVISiN6Vm5DOFNvST45K3pzdEgwcyk5QFRCTk1TRCs5NVVjN002cSot NG90Z3YqeUZrd3ItSihBWT01cQp6emRofGhIbXJMX21qeilVcjI4N1ZtX3hX alNwbSRGMnxma2pTe0tpY2Y/d35vSkxqMj5qJkBPV2ppaUZYLVA0QzUKelRq Q3NKaURVIUZ0akRON0ZNYiY2Z0dJM2IqWFFkeVZFa1omMnFZendkKHdlcWE3 bFZrezg7fmk/ZUIrM28ke3BKCnoqVmFedmx0WXA8Jm9LNUcqOWx2LT1qSHpz LWUoNDY2fSVtT0lQYVhBRGtfaloxO25CfV4xeX02I3Etfig0OFkpQwp6SkV4 PkYlZF5NTFU+M1Bqb3VjNGRXemVwSTNQPTwpRyklPnRRT3c3P2FgQWtxYFlN XkRMPEpIUGs5QUs4eVc0ZFMKekNORSFUbmBQX1loUDxoVU49S3hjJkZjREQz ZHVDfEhaYCU/b1FSSjU9MXMpZilxbT1CVyRGbWpCO19qO0RSREdyCno2X1Ft cUJXUWcyJHMlTFV2aWNKQ3NgTUVPaE9HNylgfnItcDR0ITxfNyQtcX5tRVZC fGY/K05AZ0c0YlFwRSs/dQp6VGNPPm5JYllfUyNvJDUpa2A3MWNWZWx1JWV2 RVp6PVotYVBBeHUxY2B3UUJkV2RaTml0NT4kSW5RenkzWnwxfTcKejQxIWtF KGNiRkdkRGB3VyZRcFI8PXdEMyUhfnpsIU9VdHwmIW53V3BIXkI5KkBvYTVy VnJlcmZ1R2xhQXo8RCQtCnotTXl3TTclSSt5VVQ/O08zPFJrLU5HKjFxaTI5 bmBHZSRzIWl1YitMMENuaWRlXnVzcEM7PX5iOTJaMXtnWFlWPgp6ezgmRyF0 RlZLQ3k2JiZFamxhez1Sbmp1bUVzaGA5dCRIZEtfdVEyPnFPUF98TlY/aUg4 X2w4VHJAJio/QSs/ZCYKejJ1Wk5TRyVaVyNQISFgKkV5QGx7PjtAR2d2e1h7 P0NJbSh6TjR4XzR0anNtenpaPU8jKj8mVjE3MlMrJXs2TylnCnpYcUY8Ujk/ cFd8d0BxWkE0cVlpRFRBUTIxM282YnJeNm5CZCpOZUdxPiZqfE5iNEYrdGI5 TCRCZ3xjWUhEQiR6Xgp6QDJyU2FKcV5OdFFjWSM0KEV0MFpTTlhAa3MwaU00 Q0ZkUUojd2FVKmslRXhlSjE7SX0lPGJzXiRlIzdPXjU0N0gKek4mZSNMNjgx JU5pd29OPmJ0Ump5c3QkX14tZXdmUUR1Um9ZeWphbFE3YXp8VG9rM296VUw5 eCpEfEt8S0txNFglCnpjMk9oP1Q4JipWZCZfKlNGRzsweSN9VVh6aE4hJlJ0 Q3VnOVhJZmBNYSR9WFJTbT5YYmNYM09WRlYlS2VNfGF3VAp6WUV2R2owNyhp PnNIRE1sUDFFaTg3b0QpRnArPl5LQG1sVXpLaypyRHE8VC0+dnZPbGl8Nzxg PkkqPVdITlFmMnYKelI9bDl5c2kqTyorR2k9e0pfPkFnVk1xVS10VmRVYFNf JHcwN2pEPDBfM1BLSilFN0xaY1UqNSp4TW5OKnxMVXRSCnpZaUQjTiU/NkpZ Y2Ukb3pGYV98RCFJSiRrMlMwXyg1O0tIVzh6d3lta2UxKCl1YGh+c05vWH0q MEVZPEhsc2FjQQp6YGozVkYxSUV4Q21VPmJ4aztCUTdqS31jPGlWQ0RsMn1A TVI+KlY/R2oqYH04Kjk5X34lQUdTPCVSX3Q/MUIkOUwKejBfVG5FU0wtSntW fE4keWtKWkQ+aX5QcWN4YXAoU0F6czFPZ29Kfl41YClEUTBIV2QqTkQzWjta eDhLYyNSdUl+CnohaHdieV40QzJwQUkoLW10OG9jbEx3PVQ4WVhJNyRHT3Q3 RVV3cEdzd3xAbSk3fnEhcEYlWHE8Wip7cHg9cFBwdQp6Rn1PdEFfOEo3UEVZ Ryl0cER2SSR5SzI9K0RkTVV9UGl7ajA2QWsoZ3B4WEdXdz8rUG88clMhVGMp biRoVkpPTDAKenpjU0VIViZfeGp6YVI+VlYhWXlJUE1UUTJERFU2OVl3RDF9 dCphYDxYMjxpJXVucykwJT1HR1Q0dTg5SyF4RjIzCnpsZiVrPUY2ZHUkQDdU SEQkcVpwbGtPRCpETTtlRi1rISVickRsfTN3RT5AQnFHUVR+dk9YPnEjIXRZ Qk5VUT0zMwp6ZXI5bVJzJk1GRVdUUk1LZCQrQXNSJTgoVXxKNm0oQWJWajRS M040Uis9KjFxakYoMk9hNzhMcWh8c0R0PnErKnIKelNEdyM3NCpMcF9FSjt1 VXIoQE1QTmd8NWg0Z0Qrc2V+azdacGZJNDZnMHpIJDlWQkh+I1NJJm01VFAx U1Eta3FjCno/JDVUai1+Wn4mZX0lb1AjM3hUTk4mV1ZsSH5OPFVpc2prKGo1 LV53LUNJVElCaH1xYl4zOXV+cmhvKH5wbUZpcwp6bmNBU1c5Kmk8RF5MMCox aU12fmF2UShCLUMtaCg4Y08hZURmOHhJfXQ7aDBGYkMoWlJmYXhBblc0ZFFe YkR7ck8KenYhUEMkVllaRnM/U2JYZUk+NWwoYihuZmpMJHgyQk89N2E5Q0F6 bzVwbnUzMSEtM3BhOyRfcz8qIXteMFFDOVdXCnpza1NUb25ieWA4bkpaPDsj OWVeVzY9cnYkZSVaMFRwQWJSP0xXXihtVEAqUV9nRUZWYiFuR0pxY1defERf X0JiSQp6MnlDRzhwM0o5SUJaKnkyJmFYQnR1fHBMMyEwWmpwdW1UMX1RQmI2 YlokPmM8Qk9FTVFVUElwMF4zclRleXZhJHwKemdudG4/d19CZ2Yldit1Tmh+ NGUlMmAqVn1WKTkoT1c+bXd6YXM2N1QweTIhM1ljYDFEQmxqeDMlZnh6Py1I RkE/CnpQWm0wWTEpOWhRY2lSMnJsfVhOTHl6MEQzbSNnel5sZFFeMHJoIWF4 RFdGZUFIfiZwWF9+fUV0PzYlKGFyajRqQgp6X3NOKSZoRFFqQUQweTZUTUlC KDsyIUF3eHlZY207aiVhUEhnP2RIdjUyaXE+QT16ZmlROThjZEJUO1dXSWdy UFYKej9veXctKSlgNUlhRS1pSVhpMnIlbiVTV0tmRm5wJDMkais/PHlUfmFU VHU5PjllIU4tZjdkNmVJMVhzKl5xMXtgCnpednlBQlBaQH1xclhPN1NeKFJT JHUhMURYPWE/ZzRBVEckQzVqSGVZO34qYm12I2NsIW03bmFJXmx5Wn10ang2 Pgp6K3phUTwmez1DclBQd2I1c3NnbSokeTghVEkoWF5WYX1BUlhjZSlfVGB+ KUwhK14/KSlhZkhHPyhhS3V5N24wZkQKenI5OHtGJFNuPmxAJFRZUlZQIXxX d3MpYU5WeGdOYkRUbUd9JHMkYXxfWlk/ZWU9e2FLSjU/XkkyQCskaFhYaHo0 Cno2blF4SyNXNzMoUSE3SzNhcyNhaVZCPHs2Sj8kLXh2TWtyR1IpKD0yJTh2 ZmlAMmp0XndvXk58dWRjREJlfmUxJQp6cjNXMExJNDtCeU81Iz5ybUpTe0s/ MHcrMGAhPns2aDs8WE12PEVleUFKJEVfMTlFUWU+cTI7ZCVFSjdaZzFYcjgK elVwcHtMM2ZALXEmb3NtbXB9Nj5wNn4tYHstbWtTcThvaDgkZGBCfElDODUh Pk1DOT09SHsxMnNtdTJMQ0R6fTQ0CnpmdVcjaT9LcztTREhQQ1AlTTZpUCFh P0whR0doKzUjT1VsPyt0Z0Y7bjRYSEQ9PXopVzJuJHskcGMkOWQ/ckpEJAp6 WSsyJEhzN3lkfFNlKlNnWUkyR3NxNCt+Zyk2WGB2JX5kR1VBKSE0ZGJGPlUt ZmBxXyt7cWJBMEg0fjV1Y3dlZF4KensxRiRSREA0Ul98RUo1aiNyaCNSUG0m VT57OVZFMmtKZ2lKVlk3NHlILWMrc298KnpnYTFIKl9WM2h4NmB9S1hyCnpg VHV9N1c5P01iaTlBR21ANWMtNj0tLXBgUjctT2Nec2ZTdVFCTUk/ZmJIcnwh dyNtM3FPNTFCaXdHRmRLVDFVbQp6KWk0RTMkaV5vTjQ3WXxnPV5EY1MteEFY YUVwQGxBdUN7eEtCajxWZ0VBYkE/dn4jcXRRMlIkQEp1VWtNZkg1OC0KektC eiY/MnFoOyhhajI9QTlRdW88aTFKVkcyM300bDxYSDluVzU3dmtwfk4hMnpL alBPOHxubSZXTDNwMzFQcWs+CnpIWktKO0AtPmxgRUJoKHJBeiZjUTshZ2lw Rlp+PzZDJGEoPHdAK2hqQj8mRE9yd2clTWgjamo8Z3JPY1hIflZFZQp6M3gh RDlaTHJLQz8jNkR7IU1OJnJWOU19UD1OeT49NVZQV0E5T1FON2RwOWdsLTck NjNufGdPJGIoaXY9MnVsQHkKekpheTA+bFh1dEViUz1hbnY3R2VkKnFRMk5p Mz1EZWJReCZPZEpLSjcoWkFGfXV+ZSUyPUpvKyF2R2FvbGshK1VaCno+bHBY TyU5U2dtaCpNfUlneyhofG8oM2Q5JCVPdyVYSGxaO0M8Tj0kcEpFZ2QoIW8l TkJ9UyMoSFpodlMzaHQ5MQp6MmFLM3I0fHU8N0piK24jVUQ7MlEofT9vVk14 U3c0e3NFZUd4VSN+PzU/V2JecD4pdzByOWM0MncrREF2MD5EWXUKejEyKSN6 RCpCSjN7ekx1Vj00bWg1IWtJRj55NDB6NT9GPTJIM2xZaWsmZCF3cDdVMld3 WTtnRjF5eUUlXl9EZHNFCnpNPSk/PUclPEdpVyh2Sz9HLWR+O29PV1hueVQ4 UX4tZUZjIXAtZkJYYUxuTWNjPF95QDdwdWxUcShwfjtRKCRJNQp6TDhKSTBC dVA4T29Obj4tdXVvQU8oKTRPTTRBQjJXNGZRcTlmNlUjbWVMPjM+SGwmTzkw TTxSR2Z+JTY7KGFWLUQKem04ZmY8TnFYZyhNeEErYEZqVHY9V1FIRjZ2WVNW P3R9clU8c0puRWlJN3h2WlFHdyk5dW9DbFRwSFRJTWZVdGdOCnokOWNPVDll fFpOVz8rP3dJdnAzc3RmPiElQm5kMm12QllHIyVVRlJXXmlNUiQ8Y2wqc1k5 TlBIaEw7Z0VqVlZ4Sgp6aEJWWXczO21OVDgjbilGWFhwRlg8TCFXP3EjK0NU QG9BOEMoYFNVNW5qNGJMc3BHdD5vamswfT54NXxnNEVBMEEKejxwK30rTj1L YkQrd2ZoOzZvNHRBV35DVTNGTWE2dVomX3xmfEs3Q3duM3o7dlUlYitPYlpB K0crZDlpIWkkLUQ2CnpVbz1VbHxKZCF5QHh6SnpjQkNjckZMRXJWVlEzdksh RUZNWClwP0tGMHFNK3FWJHMzeyVKS356KEVSRTJWTyNvNwp6enB0akVsK0tk dUF0ZXopWGJBN3U3OzNmeE5zWEZ1Q09ONm4/LTJTJi07ZkdVZ09kQD5NdSRM VWBLN3ZoZHN8Q0YKelJXbCV6enAoZm5PSzZSZ3YrQHdVcUM9ODw3RE1fIWBM IUprWT5aTjBUT31lZmp6LWgmYioqK3VkWXBJOSVuX1J8CnpvTlRUV2A/dU9Z RHF+YiplT0tfOHNVJm89LT9zO0wqZ1hlaTc4a3N3UjNIZmkjNTk1PDVgelVu TztibnI7elVoSgp6RDtmViFtPVhWUU93JWNZV21rd1pJTWJIPEdFRCVoITsm ZWZCTEJyO2k1PmwpYFF+IyZZNlpUR28hKHwrRVl8bHkKent9N2xkQTB8WTxx V2NxQzt7MThHaSpQQnwrfHBSOUpuZiteVWpXPHg9fUoyJTUtVkEjZFo4QEQm PEpNe1AwTmZ8Cno2c35DV0xTNmJ1MHMlNHdzNmFzTUcrMDQ2dnQmaSkxNz05 TmhCZTdFY1k7OFlJSGU0VD1EJH4mWnZ0MnkmTVBufgp6RUdoWFBTe3gwODxX QjdTbCRYbDQqQzMrKlhGVzx4VXNRczQ8JHEkSEU2WDwrTmF3aU01VXtkVUt7 KUdKNEpXRDwKenIqcEN9P1Arb1kxbVdRclQtI099M2s9bSlNOyRFWUQ+Zj09 R2xSb1c3ISkjbCs4TlhYODlzSUlwYEJ9ZURaX3dBCnpob3F+V1lPSDJPYElx Zlk2RzhiMFkkaHpjd0krYm9WUFN6JGZrQjMmJipAa3BBJWV5P3lWcUZgQkI9 OVpKPkpzUAp6Qz9ZWVlGb1hkNikxYGlXS294JFpRUnl2fEZqRnxuNHt6RG5R NiF6IXBERkY0dWBkaDRGe1EoKWlnNTFDNXE3UHoKekw+KHR4Y2BxdiFOQyoh VkM+I3pBZnJgKlNaSmJ8aCpSXyhnaGYpMyRCI0F9ISFsM199MCR8cTFMTEM7 NEEwK3hXCnpSRHkwZnJiOXhUaClHKihHZHc3SjVITiFlZiloakdobFd3N3RG WUl1b2VEbiYldmxlXm8zZHFqbkRnVkJgcE1FKwp6USVeYlJvTTBzVChPS3g5 Tj4mNzFMVGdoaiEmJkFfbGMoYGxlO3xrTTxodlZjRGBnNSQybj8tTD1eZ0tI OChwR2YKenVDYkFYPD0yYDI4aSoyMEpifGl0Y1hvYklKSFpsUVBSPD9vajxT RGFEdG1YWVlxNWkmQjx0Q1p3bDs8QCktaDxpCno7cnt2aTZDdFheSUgjc2J0 XnpVRTVEOVBrIWBXKWh1Q3VQbXt9cUo4UH5wJSZqfTReS1N1Wm9oSShBT2Fm fSF7Zgp6ZihrXlBYU0xacTluYHMhTCQ8OUV6THZHTGdEa3she1Ake2ljOFdP QzBhbFZeY0hVY3s0elJJKlZAbSY8N3JBd0cKej5GdjNKezc+d3I3P21PSWck PThORkUoXjJneT9gNz9jfTd8M2E8KnhRSzNEWSNFZ35ZVzkyekkmWlhfMVlP Sn0/Cno9X0l1TDJpezlSZV92YmhSUFh+aSEhc1MoRVRIYm1nfV9MT29lSzJy IUpUU1pnc0Ulbj19X3F9a3dgPkw2VW5Sdwp6dSNhPFY4bTA9YTFjeTIlWFhw S0VhT25TbytEWW98Q2UjKD57fVlpMj5TQ1JQWkhYckkhe3Q3c2U2YkZkSWBt e2UKelBNdm1IbT8/OTVJUH1sPFBkYndJd3I2XnAkWkRLfjtSK2xpU2k9PGtB PTJoQUZkSD9MJH4+WTFpU0xESkJ9UUgjCnpIbi1KWnQrJD1ZQmlkVj0jWT5R QU1RcWtLUDdfPXlmWXNzYismMmVAeyNwTmAtbVgmYFpQJTAoPXdGZ1EkcDso Ywp6VGAody01dShVTChmR0dTYDQ3aWRSczNhe3oxaHw0blRFTyZYOGNQJUBX ZllKTiZ8QCpJX2hLKTRGcT1RTElBMi0KemJySzZONVFaZUx2OzB5QWo3fn05 RHtje2RnfEZVP2J4a3VZVmRtdVErPHoraWs3QGppNTxxcV51bmJ3RDRoUEYx CnpGSihIcGYxNGQoWHhDK35JU0FHTUNXblUlSU9ZaWI8NF83ZSp1aT59aERw IWIhQzlSN0ViRXdmdGNafnFzWCRiOwp6WHEpKyhvZSo8UWBtWSRqdlh4YmNw bXVOQzlFX3YmRSNfUXdDSTlEaSk0IzBOaVA1fXlgXz5KTEE9e3pPUzNEajEK ek17d2MlQUFHO1R0YDhkcEZzTXNHREVSUmh2RHpBeSVAVGZnKnxJP0x2cGhz U1E9YWIqPXMme21FT3JoKkxwWFI+Cno8KH11S2o7SmQ0M2pPT1VQO0BRT1V3 JH1ROEF6bSo5YCMwN2xEQjlvTW9xanRjJWl3LVNXam84LXhsVXwkJHg9Nwp6 TSl9WEB6QntoJENLRHUtNUc/bVA1RklMR3dvaUw3Ylo3aGZ0MT9WXzUyIUtB JiZ3Vj96b1BAaUVKVUtSPD9CQUUKelduJnxRb0FoVCZUbH1CVXpwfDtydGxu Xyk+dXVESyhJMlFpcFkpOGUmXzVwJCFaTmNrbFVqbG8qfiNOeVpJKzw2CnpS bzlaNT4jREhlUjNYe21qUEElQDhrTWB5ZT43Wm1OamJxSkB9RWdsZ3ZQK1BL KkJicDxLJXwlKEpecjdeRyZ3KAp6ZjZfOz8jZmJuQW0hTnJ6KXZuRWdGNnZ7 NXB6ZCMwUWl2Yz9Ael9fT1FjK2E7UmRhd211QTE/Vyt0NUV0eHUwKXEKekhC PXpzRVMwMWtqPHBecGpjczM1QzZwZ2J8SzV5fDUlZWdgX1lVK2p7UXVQeFow U0dXKmE4RmM2Vz0+KXVfNF9FCnotVXppTHctSUdUeT5YS0JMMGgwUy0qM08m VyhjK2ljRnQxUigrQU8hQGhKSClCMDh3UyZXKGApNUNQMkdMWTFuRAp6PyZ6 dXhtN3ZSNEcoe3sqUU92XkVYfTdKYTJfX1BHe0BuQ3UjYUJhQFJiZztsUilw eHROM0ZBaWYkWUwrVWAzMzIKekdNP248N1QhVXd0dGB2bz9iaEc/bXE4UjNP KEstPEZkLTBteXN+VnBIUTRYfHdQP1pecD9eI35OQF8+OFN7WGVQCnolRXh4 VkBXPVZncyVKdCljeWR0WXEzNEA3Wj4oI2JYOXZLJSU7IVhPUHppSkpvajtR SFYrb3J0PCg+K15PVm8pegp6Nk9+T2stfSNaVEpsNjdDb2Jkej4peVF4aiFj O2ZqSE1eXmx3dTxJTnY3allfTGVmNGhnOz8/QVI2JGdLMSUoTjMKenV7ZE5h PmZwN2dCSCNHeW4zXkdEQStlfGEobSUydHV9e0pZZWpDJiQqZExoJkVBY2V3 OE0xKkwkUWZ2dXtmQCQkCnpkYk9OIU8/K0UpNERKb3o3PnBMOHpUVVJWdmck YW54emlxTVptZ0FJQzdhaUA9N28ra1B0a1hEWSY/enBXcD8wPAp6PW98YUN1 ZUhubmJaMCl3Iz9+ayp5MHlyMiFzKmZObj5TY15Yb3BFUVRhanV1OzhQZEg7 WEp2fFl1THZ9eDhPe0oKelNtfll7TDNqRm1YO2R6ZHtDXlhgPmQteVkqYThY dENvPWx+P2U9WFhKZDBSaWU0YzwwMlg2XjhKMEkqamRgYyp5CnpVK21kVSNW NTtBXkNiVihHYyFsWSplSkBZRmoyUkFaSG9kNzV2dGxXPUF9UWAoY1RWaDsr V0Z1QTlWJVE0byMwdAp6OD4qbmRgKjFGNzRsM1hWQ2Z1WEBjaTY5ZzhDaDNk RXsxQnFeVy19XypWJExuX05MJDgpTEBqeGc4czREQj8mWFEKenhJfnprRjxv fjJ0MVR3e15jKkpOMXhHWER7cSspP1VKO3sxKV52Qndld19qQjBhJFpRX3pF V297aUZYJkY7KFE0CnoyKGRvbEtfe2VlSnZ0OV5wNEBuRjR6Ky1NOT58OVZZ LU1vNyFkOEVKa01wd15CKn1PQTlKNTRwTkhSPXhVM1B0VAp6O25RVmhpc251 RERiNnY5JjVBNWxSWXs/SWdnblh+KVBENW5RRyNONFQ5fjtva2NwbktsTGFj QDw7JDE4S1lnNm8Kekw5ZD1GezNxWDQ/bGFiMCVhZ2dXVXlIVVZEYClTN2BE P2skc0g2KD0jaCh5R2wjPGJIIWpDIzZlSTMpQShUe0piCnpiR3h4N2JrWntZ Q0RUfV8hP0tkOHBiSDhfN0JSfUtwKypJUTE7VmsmWnJ7RnowUV97KiM9M0hz WntCMjI7Z3AmUgp6QTJPMzZrV3BaVzVlcFM9dFR1eGYpS3tVN3tjUmcrRTRX N2ElPzh1PjEhRXQjJmtLZjEmTiM9dktgLWI2NlBmSmIKejFLR28jZ3JefkxU dmEkbDtkKVhkMnp0V2lPbV9IbE5kMDIzQUtWRTNwcEIxSnVsPmJTPDttUXJv KmJza3hwTHVyCnpoKVN4KDZhRm5HdXVRMkBpPkd2VWVwb2pOXyR8TEJ4aTMt YlQtPj5kd3RXPnQ5SF51YlZrMChWe1gzKEstb2d9cwp6RyF1Oy0/K3I/NjJy Z2l9Jmowdipue1RvfFlaUDtSVX5yUklDKntjZGQhXnJ5WiEhZnkraHd5ZUVi KyQ0Oz96O3wKekpLOH49R0plQSgxM1BCIz98R14rK1FIQD17fTFWZjxrY2hG a3FqZEZBJTMoQWJabz98T25MbUo0THpkK0ZkSCVfCnpIY2JBVC1JTGtSUUUt bVRSMj5oMllRMG14fDh7JFlLZztnUHpNUkstRzlMeU1Ve3UmKmZMTyhaWUBo dSlGSUJSRgp6aEJfPnNJRUw7YzBue3V4en1NO2g5ZUE3azdURSRvMFc3X2Mh JUEtdj16Pj0xMHN9MT9KQmtwRGo2VmxpWEV6c3wKekokYmwhMkdRXnkhUVRE K3xJZD9wUGllX0M8YGdqai0xKUNgfEl7bj0wMm93PlNFeGVgODJxaEZIcUl8 bVZgPjdACnprXmg+PVFhVTBsQTI5KEM+XlB9NVpgIW5jYExiP0JqfVYjaDVn YkMmdW1IMF8rcV5NNGs/OEhoKyZBUk8hZFZFTQp6ZWwzKj5rJVkhQEd9Y3VL Rmcjck9SfGh6Ji1uZSR6WmoocClSYSFpaUt+KHZ9NVhgYGRIaX1QQkVeZ0VL JTMqYngKem8zUmojQXZCWl9CUXleZXBibndvYmJJbzxvRXlNKXs+TCpsO352 Kz8pWVNHUy1fPXJBaENjQWckTHN3JCk9P1YoCnphODY2LWpabH1RRURvfnJQ ZS07YUBkQ01nUDU3Wld1d1Z3WEFuSCs2NGp3JFBaUFdVTztfUW10Q3clR21g TFo4JQp6alFkQjByJH07ZDZibTREdkhFTEAkQytAVm89XlF4NmxWQl4kdVI9 QTB8b3R7IyRjRnZ6SmJ5fWJ6Qnx9ViR+OVoKejBVfW12Y1BSTEt6al8ka214 emRmVX1CVSVGYzVhUWNLTyVmMSlGTVVKYVk9dkBUbjFHVCRzKn5WKz1aIWlO d1AqCnpWPm1haVR8PygqcXFpajwreCVXWjR1Mn5xemQ7bVcmRlpFOHp+O0g/ eW4zfWFkNj9mWjFBeiZiQU9vWjJzcHVFMwp6akxkKFZPM1RHKmtFKyQ+MjB+ VVl1YiFKcFV3WXNkI3pgNk9vSFIhMm0lPUdYTFZBUkQpTFFLe1U4KDVEbTtI RWkKelZ9cDw9eWJzdn5tdypuQDMjNzVpTHNRUkc/e2VrOEI5all7TlpLfmop Jk02fjNqWGpTJWRhPCs2c2crQzcmJH5BCnpxeGpTMVV3XmNPVHUhbkpCc0RB UVltNy0jSzglWnVCYmBGLVZIQlc3O0BsdU9pPSZVfTtQYWhaZUpPV15jJjdZ Ugp6R3hoWnxyJSQoKVBQNG1gd1JeMmliPWNqUVkycEtrVnowd3wpWF5fQ2l0 JUNyV05PI09PclY4PW1oTiR7cUZxPkEKekNRPik9PHBtdz5VYCRqI1gzdXIy N3VqOVIrYDt9QTsyRSowKGhtRDJxRGtub2QkPT5AMGJ5R1BRUzlyMVhDclN+ CnpYc2xpMGpyPigjSWJgaH53WDdwazxpWkBJMGJWOD5Aen12SD1Vd1RleW9E M25UM1FldGQ+QzxeM3FUe29naU9PKAp6aGkyUFM8eHI/bDRiJF5za2ReYW1f VXp0U29AWHB2KGwxa29wNnNWWU08cmV5dVI/an1QSmRJSFppc1hSbTl6dFkK emxpYWglM3BQQStTa0QtMj5GOVNRYERiUkolcktXPjF+VCNPfDhrRyVuSG16 M0QxaWxyTVF0WHloQnZpZVlWJFhICnpKXz9ARzxAdjBgc19MJGI2KW16e1FK UTd5aSNsWk81eyQtX2hzc0E3WHBxLSNndUAhRm8ocWhvSDQmPHhzUEVeQAp6 ZTJWJWxsMThRRzAkfklzNzA2XmRLJjQhPGJmR1c5cn5zcG9VfX40PWo5Uz1L ekg4VWNJYGBEQkxEQSVmeTMwOXYKejNgUD9rQ3hTPSNScFIwX3pfVEhTakRr d35COFFId1hRKGo8MyVLKU5ST2R9c0R5bH1SZjNSdlBTdlJQUXMyciFpCnpK O2tveT5RfmNVNmBuJCZlXmVDd01TNV44b0d+UkRUYSN+O3N0Yk5UWFBoJlAm RWsxSkNWKSFvPmV1e1lmfXZeaAp6MyNOQ2VMKGp9Pz1wVnZoJHtZT2Z5JE1k c0wtdzhuU19RRFFPQHxzOWxSVExaeUp3R1VYPko2RWQ9dyp5UVVvSX4KeiVo eSRTSm1kY0VOeDI2KjdkME48QGdAKVZxPm42e15tQEkyJmV9Qn1BUEhMPXMo ZmkoVks0M1pVNjYzNXJNP3BICnpwWkZDQUdDRyNNNColcXUyNGl1WTJfYXBG JHhIJEhBYzBObF4pNlZwbklQdVpJeHU3cWdEOHFlan49Tz1WN3JyQAp6Y2d9 ZEJmOXh6SUt6fjt+NVA2aW43Y0MpaWpxQ0RVRFl3aSgwXygoMk9WalZNIzFD JlRiPDkrVDJFRkxsRUVmSjQKejRkbHZlbXdwYjgjaGJkTHFmdmhIcT5waz1P fDM1WD5Qbkk1TUtVQTY0anBhSGpXdU84ckg7bUdlfHZLc3dVTjwmCnpuRl5V SDhmd2JEOEtaY1ZlMW82dzh+WTZRSE80aFZMLUlecWd1aEBfNigkTT4obStN cGg7bnghOG52VX5aQiZjawp6PykyUTFhI3ZHREYpQVlUajc3NzNgP2pqZHVs REBmVFVKWmpBKFZzVWpMZEVSTngqWSFgVFVhOVFPWDQxYEc3UEsKeiQkYjlJ NWolNnduPStnJilhZUNBOTJPIzRUJHFWVzFFSl5zLWZRP2p2bU85WjVxIy1q TiFEfWo4Q2V5NlhMRDE3CnolbXIjamZEejthRlFeWnhBZzx9enAwclNKI0Vg NzwmUE1NPVBLTGp6cz1wbCVeTHBaZ0FALVh5a2RgKldUUX5fMQp6UHBNOzhO JHhBMmJhY05VTHBiJDUzWSlCMHo4cmF1TzJkYlNXQmZudGE2VUtKMihFIU5w LTxXSndPPk51QEo9SmUKeiZocShRRWNZXnhKUmZueUIjUiRBViRKO003YXNA UDhpciYqeFRSQ0x5R3BFaFNzeHc4ZEU5UWVqcmVjRGxVKUZKCnozdU0hdyhI SEhqQTlsNDw/an0qNlpBVH5yPm4pajhTNS09R0J0QCRYNEdEdnh4cTx5SWVa QDBUPjc1eUR3ezRoOwp6Nzd5dXVnKWpIbkV0QHg/QypibzsxZFEhP3pzPn0o PkNscnIlI3JzcF5iWiUxejI8ayRAeXlEME9AN3hnO2NlSUMKeldaJkhKSEk7 dFNvfWchaHE1MmUhSF84cXgjT20jbXlqUWBUcVdeeFMwTGVnOHYjMnVMNUhl UUpQamIobDI+bTBTCnpQKnpuR0VYKXdJaUk5d05UZmp4RXpmMTVfbEpQaE4t PUtmSXhOJXYjV0NHUmwoNVFiTnNHJUFSelpMMlhlQ2spfgp6P1hJN2E/Oz54 OWpXfG5FQURXanVzd2ljWUVBMnI7RHE7bSM0QGEqREdNTyVIdTAkZGNQI35K bkZRSTRJIUdXS3wKek01LSV6JUElKjstUmIlWFV2YjljRWNFc2omdE1sWXtD PzF8JSFjWU9CcXhOJi07IztPbWFoc1lkZlQxPDYxT1kqCnprM2NgYzFaYlhX cSp6ISFBSTIwZzI1dGd4VEk3O2Y9PG5oVGhlZk9wNE9yUXp2V1pzbk1eT2Qm Jng/d1VeIXM0PQp6RW0zRT5HUT9mc1UjVU4mejl7U1hAbmVaWXtETFMjSllw cVQ7eldsKFp+LVImLUJpNEJXaioxXmUtVCVKZDtEd2UKemZgOVYkakM7a01g K19VYDJ9ano0P3N0ZGxIfS0xaEtGYEVDNWMmc2ZpVVJkfHJwNjEhOEJlancx e1BwNFFWWGppCnpHZnFSKUphSEVNT1FzbCFWbCQ9I090ZXIkOF5zMTB5RFIq ZUFTd35RUmcrJSs9SjI3YlNGZi14R0t6ZzFfQGxAeAp6MyNeajEpfktWN0km WG1mQXhgb0NNNDxvRTwkYXIlU3kmPD49clNJeHVjO0xKbXNkb2ZWaEw2a21I YkMhZzNmQ3EKemByT2t9TWdFaCVPTCNPYzUmWFZ+cDdwO3FNbWQ2RF8mTXB5 Yy1XY3RwbEl5VVAxQldAY2xHeTU7fn5qT0g0fFNyCnpeITFtZFBjVjEpNGZk ZDQhT298UE9hNXpfNGlOJGdBJHwmbCR2bCNhakZQOTRIV3J6R2wzaXZMdzVF NVZpPFdzeQp6cG5zK3FvTzFvbXZldDE9O1UqZEc7R1dfWjdXdHBoXiM4eUFa RD1icjxFTlYpTzdkUTd0Z0ZVajxIfSVSVH5+LXgKekAyVEZsZHgjeD08aDxP fklQTEc+OVk0dEdrd2o0Vl8zX28pN3k/VU4/Kl5OREEmP05fQ2xrOCNEfTdf MWhXPHI0CnprMnIwTigkR0A1Jkp6RT1jQHJeRHBpZip0dk45ekNSfnY8IVlR e1piYEZ6aXFCdit4YWNteHcwYFhgUmx1UGp5Xwp6P1hobWw5dHR9Q2R4aj9P SVNlcysoYm0jYjwoeUdiQE0zb3xmMHRvcGVPSUB0c3NGMENkIUJEZHskWjt0 QC1Ma0sKekEoMUl4NFotIXg3cFVHR0pgIXd1OVlCJSh0S0pzKzdzYH59enNO TGEoKDs4a2RtJWpWPlhQb1lGaFpaQ1dKSTghCno8Mjx4MV8td29zY1NyRm9w P19SVmlBP2BlZHRiLURMWUZWfEwwTDJ7VWZrezV3cjw8PihiQWUodlNwO1kl Ozt+Pgp6ZlNQYF9jeiR3SCtzcyFGP3BWWFpaQUQ7LS0kM1lud1B+cntHT05D Ty1Ib2RkU05kfEYhQkhlPjB8VXVWVGlZR0gKekhvYzMocVVedVAkVEdgQj80 TS13VD0ybGkyN2skJV5mfjUwfEJ9UTc3Ym1SektZZSgyRiNLfUhgfGRET1Q8 OFYxCno3KlFLcEYtT0ljWWdhRUh7Yzc3TTN0ams1e2koen5gKTMjO0tQaXs3 Wl82QFBVblZ9bVRTNz4hYDtWR3V2RzxBewp6PklRUFlJUFg7dVBGQTZXTyhY Tm4wNTtCZlRRSVU3WkU3QEAhOzU0aWFncDVKez5Fb1hvPnpOZkAqPiEoPWJK TFQKeilNYUViTnIpa2w+N1BCek5afk5TdU1YPzB7OS03UD1nQ3JUI0w8bCN5 JUd9MHByY082I3MhV2c/JlI4bkNvNk1DCnptUyY4ZzhpdyFQel9RMldCITl8 WFdvaD83RGtObnNiKkhqY24lI2FXMSFxWkRjaCpUUGZ9SjFLVio/c1hQT01m Ngp6Q15RT1RnZ0RmSGEhZ0dadjVESXgwPH1jcEBZe29JNU5TTyU2VDdkZT5N QXNXV1Ehb25qPDtPQmMpbHVeZlRyO1oKejllKDNYJUo0R3h5Z1AjYXVVdDQr WnkoPCZFdHhMI2syKl5GRUBjZ19VYiRpeUU1em9hNChpI1hkKWVaWCUkY3Za Cnp0fn5oSmBeV1p2YV57O288UHRNb3MtZ0tLSEhlezVEUW5OI21YLWRqIyEx Z3Q8fipjfDtoM2wqI0cmPzZRZ3h8UQp6bHBpdWMyOW89Rl59PjA3Y2kyJlRl aXlsdFdoeF8hM3pSRylTeisyUUQtOENwOUB+fTJXcVE2aF8za29IazxoPWAK enpYfEk5M0BtfX5tfUJJa0N8Uk1pYkozJn11cH1LeDxVbUcoRmNrU3pLYzc4 QE5fbDk8MmZObFo7YWt8VSljNDUoCnoyVFNTa3YoWUEtO2Awc2pFMyl3X19t WWBDX3xKTlR2O25wMXYlZmx0anQ3ITY4eigoMCFgayF3WmdLNktUT2psdwp6 QGp7cU9LbVNsUWJgKHp6eyg0aklzcXtHQDh8KHxuQ05sZTQ/QEo4Wm90PipJ Xk1ibnxYSSRmNjc1VyFORjx9IyMKelZ1K3Q7S2wrRTAyVCsjbTVNR0BCNEBw YTdzPk5vRSU9MDU0NlNpWm80WjlaPU8mbFppRlJ2ciNxYHp+YCNkQnY9Cnom MiEkTyVUSSY7e1o2NU9SdjlGMHsoflRqOz1MeUwpdUI3ezV3T0leNnBvQkdR VCZPWHgxTz4+S3s7ZEgyeG1gPwp6KkBWNEZmOS1HRHpYYi1WJXd4NkpxKWFg OVZfJW1uSjhUVVYwX2QwaSEkS1EtYG9GaWIpQ0soYEhwUmFidVNJK28Kelhi QyFYPG5zO1BgMHdJa2I/OG5XUEY1cklGUntYZVVDMCpIcnZ5RUx5UHp0IXRL T3FSdmVKY3xuVTV9Ki1fQnhFCnpFWl9jQ1RlYS0pKjUmMVBgajAyPzF6ZXlF WXM2V2c9Pkp1RDdKVl9eKmxxdHB8SXNRbVZjRWZgb1d3WH42QFZacgp6Mnds U31Kb0JKYEYjI2wmSnJKaXZRfjx0bkFGXmU2MSQ5az5rU3I+Nmw2el9qdDNf Qk5nRWJuSkV4Sz9yMmZ2Rm0KenUlMThMQ31FKzdIM0FocTVkU2gzVEZMe1oo ZnYyY1EjQDFUS2hzJWN7PyRQbjwhaElJUUhkTzs/dG0hQXZgbVNXCnpEXylN I01vNUYhLSp+LTxgaCpSV3BZTnMrdjtGSHl5fD0hKTZiWGEyK14/RF5BLVok dz4oNUxCc3QkZHJfY1MqKAp6TFpYPGNrKTxlO3NafjR2TmhsPXZPR3dCJGNa I1VaXypZVHFCRmtiNShYfVo0Z2Z+OGZxMiRiYW5UfCtiMkFEMXcKek1WUmx6 TjgkTWlWZmxqUlJqWjV6a0dNVWZCSyQhUzN0PVElQmJZPXYhfT1fdGVAcztO Y1IpcSZ1ZXEodHtfYH0mCnoqRUJlIUpfYTt7ZWtKfUAkem5+fFFRTiVPVn1m NURJI001S1g9Oz9kaF84U20xYCh1N0MyWmRaMlFZK3hiTjZtYQp6ZzQ8cCts UU8pQEoxQEd6cE1HOGIjYyl2eUw4PHsmaGpvPWNRQmcyYXJPO00/PjNARlZu LStiTThEVW59VVkzJCMKekkqPiQ7S15VTjhVdSt+JHQ1OVNibnNRSDlBeUFu c2tybU9KcGEtRkEzR3NAfiZRRGpAc35wOzNuc0h9OHk/VHxnCno9aml9clVa JjB4cTl3U2cyO01abFJsWmBPfEE8WjBXbWRLUjxhTzlHJFZ7SEVXTTsmeGo3 Xj0yI1VUa1Qpd3h9Xgp6ajBzKXZmPllaPVMhJU0wY2RsUlZ2Ukh0OXIjJG81 cFQ0VUpzTEZ+MGJ0SHF+YT5zUHNKe1kwVl4lSlV7aUZ5Z04KemZQNG1rYStp XiFEUHxwIW9lMWk0ekU/ZTdkS0NQOFhUaDZkSGowMFY2d3JoWDBVSzEqKntT OS1lUTJhajY/Z2d+CnpEaUc1ZFVlRjtHRDE2cHFrPT0jYFpXQzdaTHI9eWQp UHhgajJQSFhMbiFrVi1DPGpWeSMkTDl6SWBrSiFSYGdHYAp6bkYjM3JsbGV4 dUtnJXpCdythMkRHZW00KGdwY0hiVXheN3wqJTN+PCg7alQ3P0pBdU9KTDRg R1FofnhuY3hVSkwKenJ3JihTa0Y+KXJOPlJDRThnKW9XbEVrcWItSTVwN0gm YCg1RXhUOUM1LXNKe2kkSkh7eUoxMGFFS201JG5mfERsCnpqWFluaUc5RX1l TjROLSZeZzdERGBqZHdOeXBqKCtaUV87bHJwT2RQY1NIcT5ZK1kpayhBfXhg e2RWaFNkdlIoSAp6Q04pMF5XWFg5bnxNeW19IWI0Ny0heUN+cV9DLWVHUXI0 ezUkcDdMZ25JaXVxd3R3MEElZjl8ayZ0N0lLI1YpP3AKeiV0RiU7d2NzcWJ5 T20pbyZWT0JZRk9vbm9eNkpRdUJMaHJPMkBUSTU7OCM1NHlFbUBEMThHYkQk d30zfGNfZnhvCno/PGZ8P01EPCRrT31DQH0hVUBTanxFZHNaZkJpcWRlMUYy OVlQZH49TlRpIXhoYmVjZnowNUZ5bUNsXlZIbHlJbQp6KUUoKVhDLWIzKHhA eDctQXUrSStTVHFzdz5XbmBDZDU3KS1RSSZKd3BRI0BBT2ZSYkZFJnBBKXF0 fnFZNU0+aEcKem8zO087OX5pLX1xYClvbjdfKk5CZVg8SHtheXM7e2UwbVhO VCp4WTg5JlkqZDYmdU8oeWFKc1cqRGpeSjZGaFRaCnp8RURWfkowZDZqQntR VHU8aWU0bFBUY0AwWU1zYSY5UmJabTxyWipxXlR6ZjBXc15oVGxPJm1AWTlE NT1RR1Zwdwp6d09GN0xgZHNXQlYrVnN7VERCMFVOPlIzMyolMU9LJkNeRVBA dDFRLXZJdENjWDQlVWlmPm1aQVVMRXpIYTJLO3kKeiVoVm1QQ2xhaFV7fCVQ SUR+PCtmKVVgN05TOWx2Vk07K1JQZUlTJn4tcEFXRXRTK19OK0VvUFI8YWFp MGBVRXg3CnprY3ppc1F1MnI7MDNxc3x4bnx7fCY2NTkjPmxOIWV2WTYofEAq RVN2c0tjVns3Z1Y3d3NieHdueVhaUSZxRHVvegp6Kn5AfnxNTWVNS15wVERB SEVJZVZ1UzBfTXttbVBYRjNidHxHenomS0llZWdVe0lmbCUzJjtAdCgzM0gw YEkzYlEKejVKUUsmYVUmTU9BSXp9QVRITTxEc30rNStiQjk9U0RDWkk2e3xu fUt5alFDcE5KRzl8dWdlKE9QK0pZYkBEQHd9Cnp2YUkyPGdwTENJP3wpeHlV VFclJmp5bChqdjI7Z3pCeF9Wcj5kK2diPiRPV2prYDVtdk93SjN4ez9ieUNE WEJoKwp6QnpqPkx2KTRWSHRUMDAhVWNETkQpKTZLPWVmc35RT2U4WX5jKklG WkVOPD05d08qV19NQiF0b01YVV5FR2JYYWEKemFPd1A2c2ZleHlQTiNvUTx8 Q0E1a3smNVhzM2h5Z1pWPHk5PnFOTVczSDE4KVlwWGdjP1khYiRTamB7M1dz NEMqCnpMPlJfTV5BVClaeHA9LVZQQCttN0xgQU58ZXx1Tjxoe09PVjNwenZ7 NENrfj1wJXomYCNZUWoqbyhQMTtVfWdETwp6Jn1IezZickBES0FEUHNzWnAw S289cD5QdWRUPnwrWnpzaHVjNWRITm5tKW5+ZGo9aCozfTMjdWdIKHFBKHIo NWAKel5OfXU3aj0qa3ozTHZTa0RqbTNHJTZ2eXpKZm1PUVJ+PFVXaitRTSVw JXpfWD0meiU3YTdJd3hMZDZFPHZSMU19CnpfMEJvPTF1NT4kcXozbEgzVl44 LUlsRX5QdXFWV1NAYXVoNTxET1F5UWUrQCEwKjZVZSNwNmpma1o0enxDKFY9 bAp6d2BzNUxBeUZYbHJRQSglQypfJXAhMTx9THheO1AoUlpqITJPQnI1WVEt UVA7WTlTRGV6bC1GdEw9Sj9wRFNYRz0KekgqNXpuZDNkR1lBK2NjUEo7UlA7 UTRGendtYFhFK0BJLTN9QGdGflN3MDhRTkl3azBCQFg0WFM7TUh2Yldqak99 CnpuSkQofDMtU3xzRGRhdSZzVzFDNmJ8O0JTSHJMN2grazw8bT0qS3hkTjJv PHYhUXtkdmNwJXtPXzNjI1Z2X2w8Ugp6eTxpMjFZZ2hDLVZnWUVndjR+KHNr ci1uMUM/V25jWEhNNzYlYSY0allVb1c9O212eVp5X0hMNGNhTkI9e25BcWEK emQldEZxLTV8UjJNbFY8fUtQc3MjNnZ3V2dASEN5WntKTHxWM0Z5bVJSeHA4 cEokdj5mYz5YWlV3Q2Y3Mm0kbiZ3CnpPdW4wYS0mQ2lWTG93fHMpfGNTKFN9 Zj5haCN6STl5PCFlVUZEKGZgUFduPnNabXNkKTAxUlh9NTYwRnUqUk5jdgp6 JCQhaWFxezRDa2xFYGxxSFllKXJULSE4RGFYayVRc3ZRbnZPRHJgN0Z5bH4y T3tSY0Vie2xSQz4+KEpgbSMoZ3IKejxoJnI7MipMJS1ZdCZHcFEmY1ZaUXlJ YyY/LTshN1lgQ25nK004bXJRPz89bF9DS3dkbUE9MUFPTl5EYlV1U1NVCnpR VHVtcTU7djZQQWQ+dFg3M0RgPmRnfC0jY0kmND1mfWBNSCZfNXNEM2MmWUU8 UzVuX2tkQmpud1NXNWRrUTlZYgp6Z0Q0eT1oYU1fODY7NHU5ZmNRZSRPZnlE I1Q+WE40NUg3fmRBO0AqQCtFdGN5dVVPRkZQYz8kKEkpM3l2NyVSPkgKeitw ZTlUITcxPnxBZEVRUkB1RF9nZmhBUE4kK1F0b14pKnNyKlJhRn45RHJrP08t bz1TSWxiZW0/TWZMQFRpRylPCno1RFVYP05ZK3o9K2w9cUN4K2hTbk9yZXA2 VmgzbCZXOSgtTlFfQjx9U2BleG87ZWJUdT53JDl6KVdyQD5TRlQqOQp6cl5g Qyh7SGF9JVVrJGZIbSpDMm1efmxCej5tVzF1V2wpSVVuM2NaUntoMXdDMCQk MTMoZEApYipxN2BKQkw/eD8Kelp2I2ltPTAoT0RBND8+RjJnayZKMlc5fGMz USN1VihXNkpCelR7IXg5Wl5yOWx4MFBoUVF9K21pLXZaWDxlSFlICnpJO0Z3 Xj0jI1E8XiZwSjMwKEg8RDVkVz1QSHlPMilDcj5WSEQpKiVzdTZgVCo3YFhE Sy19bkNWMSsxMDBkWD43dAp6UTZSST5KdkczKWRHcTluNlNkUU4pcFJ1aD43 U0VGJk5DVWpmaGozRWBxPGZIVXhvO1R4ems0MFIrVEQrMG4+djsKeiRNYH50 SkNrPTU2JFQ4QW5hRi0rZ0cqM25gJVMmQ3k0PEhhMXohX1BYSzRWejlyRUde S0M0Q3NiTHtTZHFZPHN4CnpJRWM7bVQ4fVU3SzNtS0xrbWdHcnpNISFiTVZI Qjk1SHxKZUhwYjYzSVB6dVV3Z2l0WXUtbHZLJGxaZDRxZXkjagp6X3NVV3tW MV9pe3ktRnJYbzQrT0YtO2BMR0M9NiZwcSlAX3h4Sl5pa09IM0JIZGh1c0FL diNWVT93VmB0Ykw/Pn4KelQ5ODtiTTh3RF5ma0wyQEtUSmZ4KDBPaihDUllj NjMzczx2SWlWcyFpJDIhOUBST1g+PzRKcFo0RyFAT1p2eChlCnpuaTY4Wnkm eTNXPGIqZktKSC08Zl5+NWM5OUFHYUF5SHxVWGhxRnQjRS1pN0prYX4oQzBO Nnl0NXxhaD9lIU5oKgp6NXJWdE09c1R5VGk1NWlIVTsoQiEhaEcxbVhtfE1m e3MxZmhYYHhpMEMhX0Z4eHAhfV5iRH1xeVUyblFYb0YpQnAKenZjNCNyeV5J SHFfKnA+ITYpa1BBckxkZDhyVVJ6aHhNQWx2Kk8wT2p1c3glcmBTZVY8b3Q/ fHY9SClpKClqO0xVCnpjKGsjO1IrcEEyNDBzTksyakNOUDc5aGNDez05ISM0 ITNtOGxZRSFJYyZjPHRyWiNNMGQ8KEZeb2p3YUZ1QEFNdAp6Jll5MUhSNjV4 fWcrOFd3eVpmaTQrUyRvUmp+cDJVO3MtKUpRNVk5ITV6OUlue0F1QHc4WXlh PyV5XmVsUzdNLVgKelp4ODg0c2J5P0JWXyk0SlRzYkdhRWgmXkRFJTYrKEl2 QWFxcypnYTA9T2g3VmZuJDMmbThLYmNCLXdwa3NTaS1eCnpUfV5HKyFpb2kk WFIhc0MtUj9NWjc9WCNsTUBjfHxYTzNSRWJmR1dySVhldWZeTXJ1dz1CNkNe PTl8R0d7QGJeMgp6Rik7eip2aVZLXl5naXFuZjZmITFack5uJCtwJS1KY1hs cklxPUY0Z0hWbThgTSVAV3JWR3RIejdRbDBZcVgzaEgKelQqX0dSWDJkTjEr d0VLSG54PX51V1k7eGspe3xzOXNpe3BeMDdWRX1mVmZ6fiZUZmBDRikwNyRP JEd2cTFwbl5iCnp2N0A9aD4mQCh7XzEhSnhFJVlDMUpKJVBjby1wPjNoYEZ+ MUlWcnxDMl5FWG0+LWB4ST10QzA+QihBRX1PRlA2RQp6WFVlZWJjdk1hcjw7 MWZgK1I/dXVDe3BlemNnO30+Z1A0c2RMZjhWLSE2MjZzblM9OHJwIyZ4dzV6 VyhINDkyU0oKekNVVmMyXkJocVhvZHZLMyRTfWRyalFvVlBOZjFnaik7NWl9 cUk/dHs9bkMofGg3SWU+PVoqOEVeeW40I05Kd2ZkCnomVmN3PzB1V1BJQyRm PnUwVyM9ZFBzMTNtXj9LOXFIJGkxU090fWsoNzAkKiVuM2JyZHcpNFhWTUhy U2A9fUg/fQp6VUZKcSVQfUlVS2ZIX1FRRFQrV01hfWJ6aDZoa2VFIXYjbWEq ZXFJNWhefjx4LVArdXdJPmp0TnpsNjAoNUYkRV4KelF6JFhiOUcmdVUrTXB5 ZWIxaCFiPUU7OWk2azY0NTZLVG8jNSlmfjNXUGZ8PVJBNGI8NDBwRlEjUXlj YE5KIS01CnotbzBQY2AofURteUxpKSooZ2ZOai0mN2Jna2YwY29nfmxjXiFu KDdDI2N2NzVFVFE1Z0VLdW55aEV4PV87Nkc9TAp6MDZHSCM2WnxzQFB6eDQ4 Zl5ZJDFYWi1ATi1XfE95YzsqYlYwTHo0PlEpMSlMRkglaGl4VWw+T09DUzlj bHtHO28KeklGWTNRMTh1TXI3WS1INVUtUkxJbTUhPDIpY1ptVlYkVjs+TnYt YUBANlZwU1o3OG0+QjdXZ2U7M1NreHtAOWt5CnpuPTBwSXV9OENqQV4yQnFi O3lYKzdOIzlKVihkVVkyciZyNzJ4cT9lb05mTWlkI0c+ZmVSeEU1UWJBeSVH c3J9TQp6e3sqOSRJU2MhZHhkNHE2LWo5bzJ6KUx8cypoQkprSTFLQTFedypY N2N1algpT3RBbktGYClyO0phUSFQcjcoOWgKekJKdGBKSnAhMnM3UV9wKDZx Vz1ldj5nKDsqUkVPOVNYMWlHZUw8MyRMLSYrbHtwdDVFc2RycXdAR0pPPChk ZWtUCnoyQFdPQ29TRjIhbUNMOzJVaEVTI3g9PU9xS2k/Y2FlRUlVQTYySEwo b3Q/WWF3VThWRmtpbEZqWEFKbUxOM2NNawp6dCkpZmgwdEJXfCVsaEB9aVBO RHhHWilaeiMzc3JFcVpWc009cTdsQkxYZUZSM0FEOyYxa3J4XiNoJnRVJm5m dXIKenk1PnFCTVpGK2RESkNvK1cpMmVwZiR1Rl93bUB0UUJAZClpYyF5QUU4 RCU5c1YkbzJZZzZUamJJU2lsX0VyS2JECnpyUmNjZSRsYDhxWmc1WmV1ZWl8 bGZ6I1ZgU3NqKz1qOVJ+WDV4I2ZDTCkzfDEwMldJZWR4V2AoZz0xU2JaKkh2 aQp6dkpoSmIhKlZ6YjstQ0pgSC1gX1FeODtRaVAjWEd+eEp9c2dSU3pEU1ZE M2debDRJTyFidjJjYElVditSajJRY28KekZmcUMpMWNOJnJgeUV0M0d0ZVpJ M0U5OTRQITcxXzZCP2YyVSojQHQ9ZmlWJjhyWCYhY3t0dD0xUzlYbFppVnxX CnpOcE1kZ3kzdHxneDdORWU5eTBhQzt4T2ZJJEo4X3krM0JwVUNPRmd+eEJ6 PmZDLVZ4SmkjTXRzTWJNWXYtZkBRSwp6Tll7anNuTVVhcHdpUlRMU0JrZlRT YUsyM0lwPz54eE15VH4oeWJqQS02UGVAPVRrbExyTyRWNkJ7VVh3b2Q9ajEK emkoc3Y2KXJ3YF8+OGFpbml3SVhSeztRX0ZkRX1lSkI7NV9CK0c4MzgzYjA1 NEk+M3shaiFEJn47WUAkbkdpTzM7CnpVP0xFTGZkIXh6bkZ9eD5reHV3WG5H TyZGc0RJRVR2b2BkfWZJPk0/RU9aTz9HU0dhNEZDZ2pRND9sNE1TQXQkewp6 S0B2aDBoPEJjWXFKPTt2JUVgbXdIM1RDfXd7eiFDdjt5PU5DPkE7YTV7IzVl VXkoYTRMfjVNVFMpK0ghSUU5fEMKel50KCl+T3tZWjdWPWthbXluO0NuZSt4 WVYyRjJhTDNIJTBnYn5BVnxVa0Q0IVUlOFQ3cT5wcnYtVSVaaz5nZ0ErCnpw aX00JWtVYyUoP1IyTjN3YUdJaCttKCljR2Y1M283eU1TRTdQdXk8cjh3PT5p S0R6SjckZyU3Z24hN1IwR14+Pwp6R3pwIUhSPnA3eEV5JUJ7YUojZUYlJVRU S01Mejx6ZXBvWig/UEV1ZUZ1ZEA4X3lFTT5OQGBGQGprc1ZTYiR8X28KekNs N1B2SlhoJX1mJlBVQkx+e0A+Zk1BI28yJHNQSmoyJCNkYFcobiVLJXJHQW1a PEBaQT4zZEojMz19YnIxPno+CnpeTn17XkF1eHltSSFFZXEzcFlYKTJ3fFNY KH4kNzY3IVJqZjUlVWZkZzNedlgwP2gqZSZZWF8rd2hHVCY9ZnI8fAp6IWxD fkZ7a1QpXmFaWE1hem1XNmAqNSlIekFhZmohRlJYcVQwckx9SjZuRTFMKmcr VF5WdW9RWUtsfihmNzhsYn4Keng9QTB3MjY3KDc5eTFEMlByckJ0b2d5fFpU LUA0Sj1iU1hnb3lPam0yMnEpWnFucjNtS2FwTHR0Z2k2bHVmSWZ2Cnp3NGl5 fFItYD4kMEM8TG0/bFQtcERfaHZuPllESGAzUCtlQXU/OUZmc2lgRkUrZnlm RkYpPkJQQW5kTnZHNWQ5KAp6NGQ7dFJANjNJdismeCFuJEg0LV4xclVyZDB6 P1FrTFglSj9edlF0MjR2WnxDM0JGVTEjI2xxaTVFNFJfcDtzUmkKejcpflA2 QSMhKkpkTyl6Q2dyTkhKMWZoMStFb2NLUlRAZ0dsQ0J2PTB5MzkyKipQWntl JDREPSstTS13ZWdUXmlDCno1NHZaSlpFazlpOT80KFREVlUzdyhqJiMpXm81 UTlHY0lsejk0M1YtQENMeE1OT0pZejVGIV5ZPH0kUHpgWVZqZwp6Nk5IZ3JF QCZSbjBrODMqX1YoNT89UFh6TCVpaVFyRDs2I0xRa25QVT1VZGtxZXhBVVQp TChpfl5BdktQKi1kNkIKenY4fmAlYFV2b2hBY0tQRyQ1PEByWCFGakAhYnIz UENpbztoVDM5KmJtIUhvXmNWZztxSC1vUmdedmUmNjliO3JPCnpLRGIhRXpe fmRTKWBublFTeD5vVjw8KFNgMl94dDtmKzhEdTBaU1FMZz9RaXloOFUhd3JO OT9fbV5BcT9gZ358Vwp6VEFZTHV4Q1RuJlZzN0Nec0RkWig5Ry0/dWhUdUNv K0Y5RkRScCQyMCZNVjQkLUpBOGV2U01fWV4+el5heX5MQHkKeih2JGhIWWtG MilISVpVdDEtOyVXI29hJnhSRGNKbGZESSl1OE5zQWIxcT0oRDt+NyZRNGsy PmtWbEczT3I/WWV1CnpCdUVGUFl4SWk9c0tRJVJHVTRDQUFuKyl0YFd6MGZe cnNHUWIhNEE5Y151NlY2JXIqJj4xTHZMU15uaTNLRHkyKwp6XkF2S1BYJlJi YGI3NVE5OUVuNlBrVX5JQ19nazlrLVAxRVk4T0Z2TGMwXitPc1dqdk1fY3wp QiM+dl9acmdfc0QKejZybU9WT3FwdT9NMGdLNXJIdkBnOFNSLXB1Q21uNGg4 akF9c0NoeHkwczJ1UzFTS1FyRUkmZnpMZyNWfGY5RCRuCno1MzZ9XytCbTFB NmxhZW4rKXFyVzJhTjdmJn5kSn1gKjlgdFFLfFApTThmWndESyp0fkV9JD5j OVV6b20yIXEzPAp6IXNBUiZyakxuPj45eStQe0VtKmc+VClfJlQ8fFk8Nzh7 JXlHblhKZ0d7RXw9K35VdTlkfnRJKmBKRExQKFgyJGgKek01eyNJTFZCWn4x JUVpdHVZNkc5TUNhc1FyWSN8TylFaX02IU0zbkRMV3ZGbkpGQ1Uxb2FfbUI3 PDRjTT9FaztMCnpHalZGLWlzU2VuZylQTmFUTzRnaXc2cztyc0k5SG04SDN6 R1Amb18mM0woam8xVlh9bk5KTGNaRDJRNFo/O0Z2TQp6Mk5rdlQqNVhtfEt0 XnE0YFUjNm12WENXJlYya2NmQ2k4YVIrdXkkNUBCUUJVZWMkaDAtdHUzUDlN Kk9pIXhaPz0KenhKLUA1YXtKPT5sbGAwVzNaZSNQJiR7ejZHTih9P3JzeEBZ aTRqN2spPyZ5aXZzPE4rUnZEcllSbWtncVUwclFXCnpSYmBwT1E3R2krPmhk I1VQKF4rOE9tbFEtenUhLTteOXE/JWg/MjQ2Q0ZMYUNxO1NNcHY4OHFeVz1e VUk1O35IJgp6a2dCUzNmYmBBe0hCaHRZYndjWFd5Y3FhbVpvdSQ7TWxaU1l3 OVl0TilAWmhHK2sldz1GXmNkSzd6dDFUbTt0eHcKenQ8WnFlJWZPdz5NU3pQ WkpTUEBDMlplJmk9eWNQPFc0NTN9bXRSRGlTWWF4ITJzTFQmdCQ4fWJpVTwr eWh9dGRfCnpxd0lEZHxDKnI2PzRSeWp6bDtrbmZTdktOPSgpblh1VjRTdWQy KUJqaXNAd0R8RFI/T1FaaHpQSE49Sy1aZ1BJZwp6an5xOWRyJU4hYk8qVW4o JmQqN3NeeihEbGc+fFhNdFd9MUxNQU1xK3tNMDJ2YSlkRSVtT2U3bncwdFZQ Klp5KHkKelE2cVcoXlgjMnBTRjs+NyolJWRTU34xc0B6VEJMWGp1VzcmJTxp bk1haik3IyF6OEZJRWR0ZlJ2T3lPd3ElSllXCnplYCNGKXNxY1ZVZmdOJlhP OEMwQ3oofHtuXl54RXVzMDxfdCUwaD5NVFhkYWh6KUApczhXI2FCcDc1TWwo bnhwPQp6Wk8zdiEyV2tAOXRnV3N2PWNFYkFeQz1ZM0pTaypwWGNTOGhUUT9V eGZCR29rSzNEfUU5KHhvQWI4aiYkZyZuRHkKeiVjezJRUnczbkopV0JOeEFs R35xcG97cUxYN0xBOF9KN3k/KTs7WGNyekx7QC14V0l4P2xqJVFCaHEoZXAx cEo7CnpnOVN8cFN8UCt2N3ZlclEkQV83PHYoMVRMdjdiX1k+PHBlOG14WSkj QUNVfmxOSXo1P2J0Q1VCUzNEUXV6OT0raQp6KCh4QSFrWjUjKFdEK1Y5djg5 TzNYdXdmdj5FYyRwTkZkQGQzNmVwSWlkPGJAWXxkVU90ZTdoPnZ1PmNeMjk/ MSoKeldBMCVPKFBASUpHOXFxdHd6RmpgO35abngkK3R7X3ZwTFFsKnZpSVA3 TEJMRGVOIXBpOEZ2cVIyKkdFc28kTXt5Cno/TzVxK2Yob05VSGV9MkAoTnVF cCN6aldgWV9UMi0hXmNXcnMkWHd9Nlg1KjIoYFQ3cCtNK1V0d1dfazVKJndl Rgp6eTNGKVFzQkdpX3U3cH5FRHBSNXlIc2V9LSR9LW80eCpeandNPVBKQV9e QWdQaWVBMld7KzUrQztHZ1N4e1Awa04KenJDMit7YU8hQn5nTD1wYE1FVFps YHNAKUB4OSs9UmpnQ0xCbyhJfHUkZnZLNWJ3S3NHaT17bzB7SDhCNUc5bytV CnpLdElTREdzVGgrbVp6UHdVYzFua3JtP098dlk5Z049RGVaOyFDcSk3dUB8 N3hqTXxyIyphPmohdXZ2SXNSRktjKwp6YzxlNEU9d2ZuYGUjbExqaHVOfm1P PUNhRmZNaysocnBifT87UCNiPyp5ZWt5S0tFfjMrVXMwam5tcCljbCZOYiMK ekw+RExgY3lZXkQmZklRfEo+NjI8Yi1qYVc5PmVtKiFwWXhgQDJwJEB6MEIo eTVZX0BoTF9yYDVeaiZYaEtDbW5nCnpXXldUJDlmfCZnalVaZ0UxQ1dAZmxL ViZCK28hRk9BSiolYWE3P1c/ZmUlez42WHMhR1UtJGk2Wk0hT0tiYVZhYQp6 Mk87WTV7dU0/QVooTyhWSyl2em0qfjJWe0BwMUglc28pKCk4K2xQZ3gjT001 Y2FsRSh1dH5xVF5Ial5yLWt1NGcKeiY7RGk8QTFVaT9fZih7cEIpYURLaTlk PX0zVlVsR2hOZV9fJVNSJSVuOTIzfSNxMCZ6Knx3Kjw+anE3X2V7QXQwCnpk KHJQSU9KemVYQTNyVGlyaEtjd3NlZShqJi1xNzA7Vm1FT1Y+PERaVHh4RytC QUlgWnBRdnhLZz02bkNEbmVeYgp6V180T1BeUWFMOExLQT1QZl5gcjNEQWkk IUspKWJ6UWVrdihNYXR8UXd1RjwtPHVeT3FJMTlrI1VJQF5Ja0ZLWnQKensr WlRWPlhhPWlNQzIkP2BJbSQ8UjB5c1FeXmZIWmpxPilFPzx2UDR8MXxqYV8k ZSpiWXJDI3AyJSE3fVJFKy10CnpuSXtrTChnR2pZV1l9dDBUQ3ItVEJqR2Nh QWBXI2tgZERoNVM8Z08yeFE8SF9MI3h1bGNORH1PLWUmMUl5NXNJMgp6PWRl Qytock9RMTQ9eF5XLWQmYmJ2M2VIRXJIQWIpRTJ4JGRyI1BkY2Yqc249RHBT TG8/MWBzYW9MNWZvSi1BdGIKelEoTFVab0stKlJkLX5pSWgkdXUybn01b3NT VVpoViRqPT5ZPXphUj0/RyhnPmB3RVdKP3QzP0p1dnxFQHFwaTZkCnphSSZq KGIlU1hjN343ZE96anAxbl5kUEYmZHtkSiNoYj8pWG5HcVlhN2hwcW83QU5u ayh7b3pvYDlzXlRvWXtCbAp6UWFrSlBYXm5rXkAjN35ZaFVfMlNgSkY1c1oh QiZzKHZzb0kpWSomPTA9LTc7MmhqcjlWbT5BQHk2d3piZmFkSm0Kem4wdDJy N0tIUVUhRUc2OSRQRmplbk81aWEhbmxmKkZscnE3YEc1R3ExKmF8RykjKjZh TTh8NlVNRSVaRnJvPGBiCnpTMSk/JEREalZLNGYtU30yPWgyTVghXlNFLU41 dTs/Pkw2bCEhU3syKkBvX1B0RndKaV57OyNESUgmJjdzZ2BUIQp6a0tGMSFn IyhKI2ZjPnsrK09FV0lVbXEycEUkY2JCPlN1RlFSZUhGfm4wbUpBdlJqM2cr YGxNdnpFflR8SWE5dz4Kej5NcG1wSmJUb29sd21iYW1COUUmZkxnPDtfeFBX MilnRXJKR307cmZwJEBqTUBmPyUmUHN3RihRT21ILUo0O3JjCnorRWF5dmRW SyUzLX5OUjA1ciNfamVVfHskMFokN0RUMlVrREhER0l+NnVabVE4VSlQLS1K SF4tPjIjWHRPfWlfJAp6ZHN3c0BeZ2g1ZF58XzBoOUV0bGs+Q3lJIUN6PzRZ YHNyVT9ERSEybHNQbiFuZ3Z4KXYxVztQNDI0RTY9M0J0ckoKel9OQENKcnxX VmA0bndnNyEwcCUocDh4Jm8xIStqPiFlYkx+VDg+KWFzc3ZPQ3MxaV5tcGhg Zk1mR1BvMTA7Jlg1ClAzOClmS0M3Pz4rSihSJHwhN35WZgoKbGl0ZXJhbCAw CkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvcGtnL3dpbjMyL1Jlc291cmNl cy9saWNlbnNlLnJ0ZiBiL3BrZy93aW4zMi9SZXNvdXJjZXMvbGljZW5zZS5y dGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA1NTUxMDhmYTA1NzUwNDBj ZDNkOGJiMDZkYTMwMWZlYTJkZDJhNgotLS0gL2Rldi9udWxsCisrKyBiL3Br Zy93aW4zMi9SZXNvdXJjZXMvbGljZW5zZS5ydGYKQEAgLTAsMCArMSwxMyBA QAore1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZGVmZjBcbm91aWNvbXBhdFxk ZWZsYW5nMjA1N1xkZWZsYW5nZmUyMDU3e1xmb250dGJse1xmMFxmc3dpc3Nc ZnBycTJcZmNoYXJzZXQwIEFyaWFsO319Cit7XCpcZ2VuZXJhdG9yIFJpY2hl ZDIwIDYuMi45MjAwfVx2aWV3a2luZDRcdWMxCitccGFyZFxmMFxmczI4XGxh bmcxMDMzIHBnQWRtaW4gNFxmczE4XHBhcgorXGJccGFyCitDb3B5cmlnaHQg KEMpIDIwMDIgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt XGIwXHBhcgorCitccGFyZFxxaiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMg ZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UsIHdpdGhvdXQgZmVlLCBh bmQgd2l0aG91dCBhIHdyaXR0ZW4gYWdyZWVtZW50IGlzIGhlcmVieSBncmFu dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBhcmFncmFwaCBhbmQgdGhlIGZvbGxvd2luZyB0d28gcGFy YWdyYXBocyBhcHBlYXIgaW4gYWxsIGNvcGllcy5ccGFyCitccGFyCitJTiBO TyBFVkVOVCBTSEFMTCBUSEUgUEdBRE1JTiBERVZFTE9QTUVOVCBURUFNIEJF IExJQUJMRSBUTyBBTlkgUEFSVFkgRk9SIERJUkVDVCwgSU5ESVJFQ1QsIFNQ RUNJQUwsIElOQ0lERU5UQUwsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUywg SU5DTFVESU5HIExPU1QgUFJPRklUUywgQVJJU0lORyBPVVQgT0YgVEhFIFVT RSBPRiBUSElTIFNPRlRXQVJFIEFORCBJVFMgRE9DVU1FTlRBVElPTiwgRVZF TiBJRiBUSEUgUEdBRE1JTiBERVZFTE9QTUVOVCBURUFNIEhBUyBCRUVOIEFE VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxwYXIK K1xwYXIKK1RIRSBQR0FETUlOIERFVkVMT1BNRU5UIFRFQU0gU1BFQ0lGSUNB TExZIERJU0NMQUlNUyBBTlkgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gVEhFIFNPRlRXQVJFIFBST1ZJREVEIEhFUkVVTkRFUiBJUyBPTiBB TiAiQVMgSVMiIEJBU0lTLCBBTkQgVEhFIFBHQURNSU4gREVWRUxPUE1FTlQg VEVBTSBIQVMgTk8gT0JMSUdBVElPTlMgVE8gUFJPVklERSBNQUlOVEVOQU5D RSwgU1VQUE9SVCwgVVBEQVRFUywgRU5IQU5DRU1FTlRTLCBPUiBNT0RJRklD QVRJT05TLlxwYXIKK30KKwAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl CmRpZmYgLS1naXQgYS9wa2cvd2luMzIvUmVzb3VyY2VzL3BnQWRtaW40Lmlj byBiL3BrZy93aW4zMi9SZXNvdXJjZXMvcGdBZG1pbjQuaWNvCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAuLjNmY2ViYWZkYzljMTZkZWRhZjgwMDA2NmY4NGEz ZmI5MWEyMjZlYzEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDM1MTQ3Cnpj bVhWMTF5bWJOdmAhI1VDe1NFbSt9KXZnYUNnXz5SLV9hdU1GU01+O19tS0or X2hNN2NQUUBlQGJiVSthISRAPgp6bGtEOXwmZGk8ciRwcnZfMDEpODYyTXxD OFAqZWZ7cStxWXYqIzdVbG0+S3x4Z1N8JmFfVyRQPzBEeW9DMER1OEkKentg WS1yKnJuUykwZjB+eUMyNiR4TURKbWpxUkdsZ3NRdmZwZUBgU3QqdW1naXVf WFlZZ2QtfjxzXlB3TFYpKDhKCnpUWEghQVdnYyMtPzN6SW45NDZ5OWcmRElK ZW9jYn1tI2M5PWpCcFRnUDBgTGttSk5sNWtRc2BXKGg9dlF0WHlXKgp6TEN5 ent7K2BrLW4pNUR4JUtVK0tZUjZMLW0lQDQwYzlxRDZEVFZ+fS17MFQ9K0Q2 cztNWGx8JU96XjNaOzZfJVoKek45OHEyKkt7IUk8LTU4MHprdXJNWUxTYiNe JFU7S0Rtcnxfd0AhYTdpeVAtQkVFNnFXdlkhfDs3YFY2enBXO3xhCnpYfDY7 TmVFKXtaS0JhZHEwbHZCV0N6KTlmTSVTNDNGR2NlX2h1bGY0WDZtZXBTZHZR cyRlJlJOez8oe3JuWl53RQp6XyZSUUtQdEM3fjRyU3U5UnlwQDx3e3RBQVBw YSMjO0Bia34xJCMhdXQmZT1MO0Q+NEFOMzxHOClJbiVLO3xWSVUKekEhczle cyM8cDYrIU45OzFuMjYhbmJCUkBESD5qUT5DbFMoVzNtUzhXXj5wVXBZdFgr QEBwMjd1VG4maEBiKih0CnpwbF44YVAqRFU1cyN7b1JxZV5Bbk0mMTAoVEFv NEluPSUxNGlxeyo4SkFMRj88JChYJGheWl4ta040VzdDcVh9fQp6O2k/JFZB NnNZYnpyNiFXMHRsRT1SND0jZjJhNGh7c3RDWWRTcmZ9b3RyOHQmVGZYTEN3 UmBOVSFFPXZ2WTg0Kj8KemU4Tk85ZVpSajV0XntlfCkxXlJqKCFkRHRkUn07 Yl98SDcyQCk3Jk5ed3lpXiNqeHhmJkM9RGMqX1ZITEpffm9LCnpneXtffUxM U3hKSzshSF9OJjBaTDZvZGVwdlZAY0ZYaXQzQkxIM3gwRXN0P09wVmVWRTZF KVJFJkQje0B0YXNrSAp6QmZ+dCtrNEsxKXlKU284TD89VFF1QVdUcHVLe0Yh TDtDPl9ia1ArSyhMe0ZBMER7cngzJDtiPTE5e1ZwSGU9VmMKelliZmE+JlFr TTckTTFQI29eOyZ6OytfIzU5Pm5XKyFnOW9ycyZqSnA0LXdKd191ZSNIQ3RN TlhvI2hWV2I9MyQhCnpXM3ItZHZRc31iUXNSV1UhJmBUaD1aKXtAOyVBWiVC eVRURSlMM2JgYGUwSGdpej5nZmVaTEx7bzEzfk48WS1FWQp6eyp4ISlafj9s O3ZtQyt1XmBrc20lJnE0MGd7e0NuKF5qTTJ7d3cjbHQqaH0rYkw4IT9ffFBy Snc+eGUrUVBXU08KelZreVErQzswXitYbE5EQHtHKWgkZ0oxUU89bGtkTDhH MVZqLVJONHZveV52fHVsQil1eCNLUFI/WU9tWStLI0soCnpNWHlhUE5gYEdM dVdlM3laP3I5SEJzcWRPejlMY1FfcGhQYmdQOFEjZ1ZMZFUzPlQ3eDhuUDBW c1B0ZzAtQkx6Mgp6NSgrbE4jT3ckLSV1bH4tQTxYMX1gTSRJNSlPJUxGTWNe eDwmLTM4QFcreEAjTSZ9VjU7SUZNPWJjWTwmPVArO3oKeioqbEB7QGIteGFD JDkzdlJyJmJzQ2lrPD8+d0I3S0c+YXxnVEsmTChXWUJhJUgzc3ZUQEczJn01 USZRfGNXKzIwCnpuZWl0VD0/VlBwall7MHtVMlY4N1cySyRjYDsmQkAzeVV0 WVl6aWtLIzRpNWx5Qzx2MF94bn1mPXBmbHVRKXYkdwp6cztaTSlZcldFUihm eCpQWXVAS0Y0e3dJQT5vKzdQVTFZd2hnIXs7bCRNdko+SHhiZlBQcDFAWXBL amlGe1psOHcKemVKYENTTUlze14+Oz4rMVVAY1ZeVSMoYzQ9SWAlUjI7aEE7 P3RKa3I1PDBWYlN3VD9JUG8hfV5GPCk+d0V3LWYxCnpRZGU0QHo/a24/U0tB bV9SK3xgRSo0eSZoakdBNHc3dHc4ajhPJkhfWV94ditObVFaK3V7aE1TVWh5 QyZnRFIpfgp6NSF0UDk5aDI4PjhCfGJlNzdLV31MbjctcCp3QHc1Z1hXQ0I9 fXFYe1p0ZHI8aHYtZmlKQUh2PSErbSMlUDd3RH4KelFaYm5mcldfN0pvcDFU ZElXc0F0MCVaQzlgc2lXUVdOXlJZaCt+PVVJUmNTfXtWK0krRSk4VVE5WGsq XmVlc2BQCnpAbjJAJHZaNVVYSE9TK3MqTjhtN2BieVYpeXtveCRlPSMmQF5V KVhkKzB2KXZXKGVZRlBuUiY0JkNzQXZRR1l4MAp6RX5QXkxOJjJJa2BSaX1O PnQkLUVqWWc0cFM+TFReJT9xbFl5I2NUSEdLbmpeQkdqUDdhK19iRlUkSz5f V2M5KXUKelUmPj47aVBOeHYtNHwtREdpNiZSVGd7VDYoRXI0UWlEN182RnVK Vz9LZyhWJnZKRCpLMjJCeWlgR1JRUHR9PDcpCnprOVgyYyhQXklWcXtrVnts R2FMM1MtJlFYcGkqb0EjKj9UTXstcDZHUCUhSStsOFEjNUc8P0dGakxPb01A TT91cAp6clA4VzFzTWJze2hXJEF7U3hXKSZkYW9NUW1Aa3VLO0BXNUpNVENO IUFRLU9sZCQ/JUJ5WHlKIS0rPmVoPW9IcGIKei0rR2N4dTkxTmdpSiEyMkZe TTN2dEsmdlptcXxVPnR4QFRrNT5IXiF1KVlma1ZHTDB0NDZ6UVQ2N21uVWNN ckdaCno2ZFpEUFlyYmtzZU1TJVM+czdqfDJyVkl6X1ZYV2ByJFVGVHRuZSle RSUyTm0qVmN3QVU7aUNqdSQhOyhaakJiQwp6WF5BQSM2dGtBLVEzWUc7YndL fnplPX1fcTlAI2JAJjVAJH09c2hidUVsdDxucXszcXxKQVU/ZWtIeDUhKzB0 UXcKendxeGxveWg0amp4alVpcXpLbD9ecSVCMXYqNUlJRC1VIyhKSXMwP2x3 PntQNGE5XiNjS3shbW9hTW9EYnlrWmM/CnpNajM2R3E9VVZze1ItYF8hPW8m QHhJbi1jKElMU1VpQ2BqMCt6ZFplRDJQSDcoNV55cnBLb1puN0ooPjR3e0Nw Nwp6JE0lPmFRbmp3Pyh9KDhpaXk1bldgLSYtcWFNeSlVVGNDO3ZLcWduQDdf VDJWJmY8Zi1RU0NhcyRfaUhKU2d4cXwKemc8cks1THVqKEIpcjMzMFpFZGg5 OE1Vej5pV0EtTV5rfGxtTzUoQCtyXmZwIylfYXpQeExeRig5IU57cDxgamo/ Cno3O31eNGkzSUV5IWBDaV80UHtPS3hrKH5sXlg8NWh1NWxRNVRDUXRjJSs0 K0xzND5WQFpUMVNZTlgxTz17M2Vmagp6Wig4QCs/S0V0NT8yZlFsemVKbStp aF5hRFpJQyRUKTFJUituV2YhKl91akF4WEFIaiQrKz5sZXVJbGtEWUxFeSMK eik7JTZiPCgtN19RcFg/Oyt9Rl5Ucnc5Y2YyOFVnKmJfbkwoT0Y+NCUkMHEj cnglTEpWNndiXipXcksoSVp+MSM1Cno2O0dvXjRVKS1uRzJxVlVJYnMjMzcz Vnw1S3NJPEZFe1gtViZgfWJ7YkduWVhaPzluNDJhNWF0aF9reT8hMldWJQp6 UGVOelkrVjZTQ2JeSTRBTT5WY0ZCP00qayFnbFNFMzNNZ1NkMn1tcD5mNE8h entSRkBRNlcpYzRBQnVlZ2pFVy0Kekx6JjAxU0d7QllaK3tQXio/ISlgcnNV WnlKLUlGM3hjeE97QmV+T2o1TE5acV40Vj1GcGlBYXpCRjU1Vm8+PDZKCnoq Q25lfjM2QDFCbz04d3N6VjJpX18heD9Cb2l2Sk07Z09tX3pHIWRiYH0qX3lw U3NHb2FFanV7SXVFQWBoMUM8JQp6NiZxZV5QUFVwNWlvMFBhZUBBQ084X3Fr di00JHIzMEhvZSpTXlFqYzYtK3g3XjNIUj1yP1ZDLVgrfUdCLTFEN0wKekZf JFV2I2tzIWVmYj5LOChnTD0pYFY/XmZyWUsjMXhoI2FHN1FmQiReV155VlZ2 ZTV6cEZfbktyXjY7cyVJTXVkCno5c3VNTzVIUzlISyYjNlA0IVF2T0M1UFBK aDVaYUhadV4jKyVTc2JlVXJKU3FeUzlELV4tK2o2OXs5ekk1fSM0QAp6MS16 SHFGWSF8UTE4ckcxe3JNJHpwV1VAUipabCkxVXBaRkJZcE9YJkNXfEJYXmYj RnczS2BVdCZlIzNZa09VTEAKelchKURrNCZwM3ZDaXFST09+aiZvYGB5KHRe fHg+eiNyMnRYaG5xPz4ofWtYanAzUE1ZQig1ZitpU2ptK1o2WEp1CnpefFVx flY8cHZNZTFoNF5RbzN9P2pRQGg+TVdBaVVSJTFwWjBVKTFvQkJyJkVRbTF7 X0Z3UD4zQEhGO2pHZEJ7cgp6aFdnVGxaKlQoPkBlO2tpPnFIbmArRk1fPzAq VE9YPntScD8xd0kxRExlP3t5cSZeOGQ0Oz5iTWd0SkhWO0FOX3kKejZUNS0o SE4jVj5BWDlCNXVHY1N2cGF+K1ohIyktRiRMN207bHR+UGs5IWYhei1mdjtW KHRSUDQlTX1nfFVBWWJpCnpnMUpeTlEkZ2BvMX5GP0heLWBic2kzekJ7XmAx dikxXmQ5T1pgNjNaOTtjciVuLXV8PW4zJGdJNCtSeERQM3REbAp6YXtidDIy THhmPno3YHFZQkZmVEI1cihKayNHI0ZKPVc7fW48fi1rZUU7bEJ6QygpP0Jv O1FrQUk1ZTFlJkUlKCgKeiVmNiN4IUBhN0RufHh9SzFUXnVYVmEoWVkpPiQ4 a3ZpbUc1anFuZSUmXl90bHVAe1BTa0EyeW5UUWM5emc/e3M+Cno8PWxfdXRL OFA3QE5EX2xHSmgjaXk4UTM9UkBZRk1QSTItMXJgZThEaiFNKlFxMV4qaU5f PCNJa0Zxej9kQjw/WAp6MERRI0oqemhYdyl0VXUtK00hZ341OHAkTmlgNSlY IzR7cCklIXYqa0BZUThsVTxTISZyNG9WX1FuRFokbXh8MWwKemlvYCF6K2Bv NVNWYEYxfE8mRFd2Y1lAWjAoNjlrb1p8X205T0kjSTtsKGo7PUozbWpgcDZH SF8+NDA0LTQ4XldlCnpDR354U142UHNLM2xXKUgrNikheSVNRTFpXzx3OzFr cntGQ3chaUA4Y2F9SGhXdVVASXxIJXJkMzB6MjIpR0hvcQp6ZnlJcUpgWkpB aUArTjJGNGl0RW9UXjN3RjtxdGJscyZUfFZCS0c3JW5yOVo3bzlqOXw/XkBM PVRXfUxYNFhuZUoKemtFUDRKLXdOPU1gKTVqTTtMIUo9OGZDcFlmJnBZMyEh ZEZqSl9AdnNYbEtmNjxSfHRSQ2FVfj1CVngzMWtCI05xCnpVNXhrPWFrUWAk MShjWnVNXkJBPSZRSTQ5eENDeH0kIyozYzJMVSpBUUU2PUclR09gNlkkbUBm QShsUCRlS1N7Iwp6KF9sSlcqNjluUUtBUiZ2QD5QKlRkS0ZLejRVYE4lbHlz QGU4fWV1enBGQG01PH5lfkV3bG1QdTh+MkpOZ1haZnMKejA5ISFOU3JITyF7 UzdJblM9ZUFXeWxQQXg0cU94dHdCJjJGbFFzX19jTT5QU3Q0fiFfenVfdU0r Z1NLI25NeXMwCnooUTJpYlUqYF5ZaVF3PndTVXd4TG58RDF8TUQ9Xk5tbTRK ayRmVVJ8ektRRCFqZGB+ITgoRnpSYmZWXkszJEB9bwp6XiQwIyZnKWRhazdx T0Z3UGt7QWg7Ny10RjtJPXpmYXszQlRMMk54VV9lISRgSHhYMW5gJiU+cTNz ZTIqMm54YE0Kem90KytXVDwlXmtLWWNnQy1yfXVFJkNgWSZGfVV2NF9iYUJQ cy1JdmMqV2JPJlQ1MFN7Nk4wc1ghdzt8eSVHNCoxCnpxYjlkMGpETnxVTnVx IWZpKU1PbTxTeUtVSiFSY3BUfH1lZWcpZkVuSitBdEo4bkMqRVRVXzd2Xmtx NTlrVkdaWAp6c3s4JHR3WmlGYmdER0R6TE05UnlRU0hQTDZ+ay1TeV5eQ1Mp KnEmZEtfMFRJVj1penN6Kj8we1FMRUdLJloqeVoKel9GIU1EPXFGWihUbzde YWNvPlBnKmZMY3MpS0JeI0pBdExTcTRndiZPRFBvSCVFIVhoKnxsNHBIZEE7 QTBCNE5eCnpyJkZwYEJuIVlHUDIzMVRHciFAPXtgJD9HKWp4TkIwSjghSTkq dUEqOGJhXkdle2skbWAqQTx9cnZLZklFNDxAWgp6emlseHF0Qkd3RnI/LUpB NF9LaXl4QH1fWG5oTF9lIzF5PntOemh5VXk/aUo2VGV5eis+PENpalZzcyZ6 JDEmdioKelI5K1k8ZnBwdEB2XmRSQl8qK2soX1l3NnhKezxZV0AldlBmdiot RmF0KEtQTm4xQX1FbmxkN0E3akwqO2B9eVRRCnp0Q2BxYStzKnBySzVwe2VB MFdjVERUUz8kV2FWVF5MNzN2P3lDMVYtVj4wcXw5NnYzfSluSTdBUSQ0SjFa Zj0lfQp6ZGozWXI9MC1BM0VFbmRnNCNjWGs4MjA+fmUtamF8YT8tbVByVHVH KChCUUBEeDtYRkN3ciUkKnFRU0sxMz80I1YKemZvMjZmJjtUQm91VG1DPTF2 UlEpVXhNRlQpTUw3UWNSbEszV3hxZ01TaDQpWWx+YTVJeEVnfGdfb2NqS2tV Vyg0CnpRPTV1R2xrR1ZCYyNKY3VQPzZ0KXQpRXl2Mj5TQkljbEBSfm93KDk9 MT1jdWIje0tYS1NvdFlVPlVTKCtjNkpgUgp6X1M/dChHS31Oc085VGllPCs5 ZGZUVG9gQHdmaz8lbU5eIWRSQmF9QGlzLTFRc0JuWkE1JXp+KER0dT5rTW53 XmMKelVRIXxlQTBnYGM9Jj4tenY5TzFjJVpwdik+PTxleytPXnx0cH5FUnFz JWg7JGZMYHs4TExrc2szUUdwP0NZekttCnoyVXZMUGowKFJTSV8oUClpRm4+ TlNHZ0w7MWB2d3p8TFRHX2BeLVlUcHV2OXAlZGZLNndkU1NXdG5NYz5HWHBO cAp6KzF4TU15YEoxbUJDSVo3Z153MVgyX3o3aVBeK29BcmlUKEFGNiNMOFox RWdMMzYmdSh3eC1yVHhCTj07bkhGPm8KeiF3dyp7P0JRUnM3fGVSaiZ6TXdW dDszUnFNV0JnRGJBfHYrazlfen0yKXVwPUxgX15SeDluX3x5SnMhKHg2SjJV Cnp0RD53fV9rOHg+PVd6UHstfHJCUUk4amxJcEEyYzJfT0I4JD94QCVXUzcy M3pidHJPSTBHJiVMRm4lMlhifmckRgp6XkB0UG5gYDBvKXU/YklpMEk+T1pY NHpoZDg7c0wqZWpnUzhaeEZWcnpuN3dsMXNgflJ1OHdZP0NCdHtWaHg/M28K emJ5b1Z7bCZxMFlKVn4taUl6bzsyY3FhZkNhZylXX2VwcGl+NzltTGZhRnBw Qm15SE8memJzME1QU31MTyhHWHhyCnpBI2wqbDl7XkRFMlVIRmB3PytXPSNn ZiUze3ZOIShqY1Q7b2R3SlJ6QGs9RzJ1JGRKNmNVeVRqI18/YWskYjw9Zgp6 anM7byM/MUZlcEZZeEh6OUAtKWhPMjdaZXNKSn0+TW4rQkUoMTsoNmxVM01m KCNCRldZUztJfDFrO3lAJEsqe04KekUlc0g8Ql4yQ25wO2FRI2NZVG5Sez1L RWptYUZhVmVtYFJDYGJHe2RFfmQtR20pajJZNEZaekxAWGUxUVVkYH4qCnpY Rj5HZHt1WjtzKUFZRkBFb0h8eStOcjIzTFpXeHBpN19laF58UihxdThlTFpJ KyNqKkpnSzApV0tiXyNTNmZnRgp6R0tnJFV0Sn5jc0I1aFpMc3EwbEYqISpx MCZEcHxwUkhlUjs5UTNaVkJVVCpNcnpwMlJsY3ZZPEYwSEszdm1VRH4Kemgl MEc7dzx+Plp2QFp1MUxteFZTUFZ4SilyaT9tWDFnITVBMW8/SUhDTytyZXtW dnNPZFlqWXh7ZzNrKSk9bldSCnpEYnxPLVEqTmpDYDJpdH1MeXx6YVdPTyp8 TzA2TyhmVzxqUWZ7bGxRRjAwIW9IJXREcSstOG10UztIQEtOM0BrSQp6KVZ1 Yj0jPDBjM01tUVZ4NH5NanxvVUZxNG5NIVNEcEk2JFQofGk1YkUmSSokVUVE dWVDPlVTe3RMfHFHWEJxKDkKekgzJV8hSEp8eGY2dHtWPSFieHVBPGNgdiE0 SCUtYlQyMjJxUWFxZk4meCElKHtDMUR5aGNNKWszZlp0VWVxRmQ0CnpIKjB3 dEEtbyRTNz9ESSZfVFI5Xkw7PW5neWtHZGVMYjFyWUxucHA5fDlrS2F0eUNC NWNvUGpIPmk8U0JEe1d6WAp6OTZVX3c8cS1OeHQ2WjNyYUJqJX4xKjhUNUck T3l4QVo0UTw4VUglQTxucE81UT85U2REWEA4WVMlVHpoejVVU1EKeldlMVZe eGRGPSVkOX02bDNDa35JPWAmZENlJkhEK1Z0fWJKcHRoekVaYTg7KjVTeXdT QyshbigwdzlBWUY/RTJiCnpyVVclJnNKIXUxM0s3Tm9JbUJzPG4ycncwX0hj bT5sVU5qPm8pNmlia085a0xfMkgmVEheJERYS1MpeT5CWHklPgp6IWExUmBI QTBFWGh2UmFSby1qYj85N3RlSXo1PSlSVTBoPCo3UUFNYiViWkYxSERkbUY5 emR8ej4pVCZ8cTx6PjUKejJiKE5RK3xEQzV6aCMjeTMjWU5CbVJjTUBaKnl6 aDB5MVlFIVp7NSszVmRfbXdvTGlfMn5kKFIjKWNUUVJNPFdrCnpBcE89NVI7 Ni18JVB2T2dsOGllZkw2RHBYdzREWE9INCV9SldVQWRSUFM4VXx1TmAheFc+ X2hzMFVEPC1nZ0YyKgp6QVlrZTEmUVFBQ1dJQVV5TiojekFFVzZMM3llQEt2 YihKI29GcCUtSUhFe0I3aXtGVFRfZXVoY1hhd29sTCshTUgKej9xMW9FdThU VVVzUndBdWVCSFRYZX1pcE9zQmspVFB2RyFhYEZ7M3luWGJ4I191fj4rdyNM YkhyIVFeNVVleUEqCnpRfi01e09ocEB3aWpnezFSTUUzYzxFZkJGUkkxTHR6 c0pUdSh5ZTJRSl5PeWE/ckdXYSp8Y3R2STlqaXZxVit2eAp6bjs0KD5qS1li Q1hTLWduSVFyMUxlREF6VnplaDQ/S2ByYGMmNiFvTW1QanRwZn1ncj9ofSpV bks/bEMlTlNtJSYKej0obVR1a29ucXRKZXl5JThkfThQb28/b1lZVlBfRllG OypNWUw1MDdSZHpRQ2o3TmhROUxAMX1QfSpgYU47KVN6Cno5fSNPI3ZWRUBz OXYkeHxDbnB1bmBvcExWQ3VXaGRkNjI7VHNtcWEmb057MyR4YWUxUjVNMk9m PWxTX1U0Vmg+QAp6d2d2bWEkaUk+RGJjVz42eEswUm1vWXNrKE9aaDtOYXIm RVo8WnV8KTQtVVB7bXRIbkp0Jj9rSWlERHgoeG98e18KekU3PkRhekBqSyUz S2UxdFFiN2l0fDJ+RSU5ZWRRWFRWcmo5czhEREo7aDMla3FaUW4yQyFKdH5I QHJTKWJ2alFhCnp7ZlUhcCg8TGp6a19JO0BiN0N2WkAhTVh3SWh8ZklwRT0/ fHxBV0IkWUd1aV8xLTAqOGw4VG53QVJSe21rNldffQp6cklvS01aKks/fVMq SV4qaXorN3NaMTBTZXtzP2RNeGRaeVlTeiV6V0NrT3l0cFhANWBVLXo0UlV6 TzF+Nm9iK2QKelMrbVFmVUotRnMrTzZ6VitPUlg9bVg3WjEpcyVRRUo0TSht NTVBaW8rPT5nb2srODR7MiVwP1hfaSlmdUM7UCZ+Cno2PSVEbSEmVkNCPW1t Z088S35BJndMRF9HM2w7PFpVelZWVFFtUDh5THJgQ1puMEpVN25rclUqYDFT eUFHV3RNeQp6LWNiV35LRFFFZCkxS2pyKWE0Qj0wb2hNS0YpeV5rJmplWCZo IXxaK3F1Ykgtcnt2K3RiYyFlKVhNSmI2KD96IW0KeihmPTV+TSkkV1RxRTwr O3NeZlY0bWZ4dy14UTsrQmJSZ3lUe1c5Xjlqe09yKXVjOz4tenRke1JUY2FB bXBQUil5CnpqWDRee2AoTEB3aWF8WWgkWGd4NzJ8QGI2OCZTcldaMUBSSSNR e15KazU5ZzFMeCprfTh7eld+O2YrdEB4SnYjOwp6TzlqJSg2Z1hMU2IpdUI8 QmZPX2I0amJgVEhtRHRZUz5ZI2hMaS1zNUdqclhDaDI9P2s8VFJmKmVmZSpL N2Qkck4KejdvN0lYbzd8bzxeXjBoNlQyYWo5REdPY1Z0TzlTN0gwaiMwZjdA WSEwUzkwfVlSNk00MitHeyQ8eUJweG13fGwrCnokRn17UnYrNXIxY3U/R21n PGo3cV45LVVrWWBGN2NrSzNFZUhHfnokYD5oYUwoJUF+NTtMMXwjdyFgQmRf cylVRwp6UkNlT1UoKDR3MWxwQVl0aWV8YiFrKTRVPiNhKWVreF9+KjVfZklC RXYoNz9lWTw9YmpRNVYhcD8hKnQpNnQoJEUKenJGeX05VWk1OzNnMV5ePCV0 MzRmcGI1eHJQTlZRKzRfPlV3M3FvZXlXIW8kaG9CdD8hPWt3V2ZycVIjTDR9 VCg5CnpZNEl7X0BlLXMweXp5JHwhb1g2aVEkT09qZ18lfDJOdF5IV0ZVRkxN NnJSPSQyLVUtV2NvV0dTSiZtdFghQzBhKQp6PCpXPy1GLU1VREdCb0FqbXA0 NmAzK3xnIU5fbihmQl57and5VCN5aU9CQSptZEJ5K3U1dT8/QnQ+LTlsdDlW QE4KekB0VWkqOHVtTkg2X2hEdV4yQ0FOYyVifnoyUi04LT1XPXlqJSMoLVJW K3E9WGJkcyhRRTtxaGcrRnc4M05KVStUCnpETjIxUC1eR2xIcHJEfHtKeEtn blZ7KnAmb18mTz5ATDUrcUpWb2U4dH4wM3Zwc3pzbmlGQERQbzl5KiZrVjA3 Rgp6T3FjX1g0aGA7Sj5vekJ2ZTU/RV9BakF5Y0leKn1ELXoha1FmbUFKdylm PDdKKlQ9ZVNJUTJiKXJIaUhJby14I2oKej05QUp8VkswN285UkF6N1F7LWcm dldCLUkmUGF5cCYpYDl8JUZXRElUQEA+PUFZVyZtNk1YZiNXN1lRVzJ8Ykpi Cno3P0pBYXpEek01RGRGfTBQKGMpM2hwdWIpU1EzaXlyRHxtYntsQHRzYlpj NnMhfSl+PztWV0c+QElRYXB3d0U5Zgp6KXpyUTt7U044fD5XN1JLbXVyMj5B TWNOMUhyLUFiWmFYOEJFdygybiExMz1VSCphIzxeRERsRFFCNFFuWSVgZGUK eks9Q0N0QTZCZWFTfEwzWjhBR05MbEdKYC13aHdWWGB5NFpKKkNVM3lsJmZr eUUqPnNXS3JTIXZRYjxDdD9QR3c+CnpwWHJnbl5TVG1KZkVvJSklQ2BYJHVe V1lPbGtPaF8kMmpGZ1EpMm5rTkp0TSViZiQ0K0M3Pz94SGp1YXlHalF7ZAp6 bjRreSg/THtuU1FoKGMrMj5ua21ue2pgYj1vcl5uMVB1TUtlMGFTcjNUIV9S eTF3bnkkZWNTQShPJnMrek1zYE8KemNCLWxEZ2Z1MTRMKW5EOGFtTVM/dHVe YnhkP0cqe2w1Nk55TUZrTmtGUWA+MVpYb0JsYmE4aVk+TSlnJks+e0VBCnoz PCs1VzE0PEtkTjQ8SmNLUHo9Nyo0UnMkIVVxWUplSjk0d0Rxa3BSaXRxP3lD b1Q9R2JzKHh8IShCOF9JdyYhNgp6RlEjN3A1THlHI2BgRWp0azI5TDZyRW9A JHsrR2stMXpxazNVVjZSOHpYNjtGR3lrNFJaJUdJVGdsSVItJipaKFYKenBt QHBtOz5xdCglMmA9X0AzbFRTdXY4NDxgNV5CKVAqVUZnIVVFYCtWQG5gdUA9 fDdjQ0xReHw/Pyl3PVhFenJsCnpgbDApfVJOYF57eTJLTVlPdSZqPF9acTdo UzBPNSV2dWREZG0/Q256Tl5ZMylRJGo5UzNhKjErYTwyWi1AMU9newp6ejlo V1d2PjVOSUZgSmkrYHxpM1dLSmE/JGtUe2ZtKW9ocio9SSRRaDtOYGEjZ29L eUZyR3ZHNT1LOVIkPzlKMm8KelJFZ355RD5FRUhWQV4lIUVINlF1TzhUcE1z dSl7d3dacHZ0TU03VTspKW96NlIjXzBDQHUqKTNRTz08R0s4IXFECnphNjlN UzVzRko8M2teayQzfSQmdWBvPVdEKjVifEdmMm9FPilsZSVgU1IhVzwwbmdV cT4+NWpIXytJSWt1TTUhTgp6JndWdWlGTmU0fVRkQjQhdDZRJSotQjdHQE0y MTA7VFBJQGArcVdPQCQ+MXxqRylHcz5xKXdAKzBxc3FJUn1ReW8KemNvP0M8 WGYjc2xwbmtEVCR9Nz1KajxWWDgkOCNQM2dTfWZiPEtaQ2xAS1o2XmB+eTU4 O0A/RklvQDJDP2IlJmM2Cnp5ZVRTVClMJnxqNkw0ZVdvdzF6bHJmWHZ4alBj MVowVm41ckZzaiFJX2RwQmYqfnE2OFJnZj9GV2owI2EoQGw7fAp6cEtObW9D cTxgZS0xeURXOWxiO25wYkd8YzRqckR2cHBRWkI+KmRpVCFeO3RhV1VQdV5J N1JFV0xlSihAWmQqTEUKelJhTTZpal4xYDJxQEJLUmhpRlpXZ0ZIYW5fUztM Yzw4S0dnNT1wS1F6Z3gwO2wtU0p4IWpKdVBAU1YrMChzJFlUCnowTUx+aS0w aG9DI0cwfWswRTRvcGkteTtVYkdBR3JjLSVsTy04ZGFrTDVhYFY8NSVLR0w4 Qmh+QzUyNGdkPFhpWgp6RF9QZCo/ZDc/bjBZPng3PzdLY3Z0JnJyOSluU0VU MTh6OEhydkdkbFdqRSg3WXRQbV9HbkhCTlZxPlFVUTs8UkoKejd2emhWXiFR fmxpKFFZZSZMXj04TldCblJ5ZzJ4JShZKklmejBOaSVDSTF6Kjk7QmBnO3Zq PzNebUhSQ1M2VWNMCnp6MyY2eDFnNUMwPXtNYn05JCNsfWdyNkt6TnYxKSVY ZnE9NSQyfFIzSyslS1NYUzk2TTZmdlQhOCQ3Jlk5NU8mSgp6KzV7eihvZVl7 Oz5ycTRwX3EmSlhMWWo1T0NVXll6O2N6Q2E5cyRxUjxUUGRjZiQmKF93ajUo T1N1JCErMzFYMGgKelNyYGpNbG83O2gjLTtXMHdJU18wKk42NWxFe3IjUGU/ ViVCbGV8NCM3dXJYRU1aQSYyajlqR1NPRT5uKCtIZDRHCnpMZSRWO254KSRg Vjk+emZzdFJTMERCI185ITxFaCZjazBMJTNtVjAqSGVwQU08KXA3c1QqS0pD SExtRiF0KDBLcQp6Z01oQXZifDlXekJkV19hKGdyUkRscSl8JTltZnlHM1JT d1Y0dU9mZzZqPT13IykyfHlCMEJ4Rz8lQFEtaT07RCYKel84KFd3N2ZnQjJ0 V29QSlJzQD5FdWFQRVh6VW54RmB6eDdSKno8MSZsYj9yRlBuJktPXmIjfmNU WTswKm4mU3JQCnp4a3hrVyY7TWJQPU8zI1RLNmlZQHRvTjM3YFpuSFZhZ0It Slg8UjkmdElfV1E5bH5oUTFecj9+JEtXUUpDU3E7Owp6LTBySyFGeTB1T28j WVcoNSt7dWxQbUJ7ZFkrYVI5TDVDUy0oO3VMPjA1XkRNeFZTIVRVWCRENHs/ c1prQlVsZjkKemMlJHEmITkoXmwzYCpoa2NgUVQ8NUN0MSlGZmgjLXZNSk5I ZE98MmNZPFJwcjVVbiRpcTtiRjRWdGpUUyN7e2VZCnpFMmRrMzc3eWlQZCh4 VEI+cVVWYDdqfj5rI1pJVTZgZ29eUz9wcmIlUU5VTyYtM0lfQTIwSzxQQjhQ RlNQeHQ7eQp6cldsTUQpOHAhaSMyLTQkJFZPc0g7RWZ8I0ZLTWFvbjVIZjM+ d3ZWfiFMeG56JFFmbjAmN15pJWB2RjV9dDVTdFkKemFVbTd+fEFya3JXUnpn aSFvai15bTAycUokYj9DY1QrUTJqeFdtZE1mZmBLfEReRztHdnxoQzI8S0Zy Q2BFJXlWCnpHN2Bgbjl3QFdANSNpRWtpdGFpSjsobHlDNyRGIURLTjhaK3Y1 P1NvLTk8VD5rPndWVFhuSGZObnc/b3hQP2N9ZQp6SzAxP303Znx5P3g8QXpK aXJpJl5gM0lHPEchYjcoMTtvKW1MITBxTT00aUhVezIxRG5xOF9AfmVrNlBK ZzQ/LTwKektmI1pqOWlXOV49USNTb0Q7RlFCUGE3KkMoOzB1KVRHVmJELVRq Kip7M2QyUj5wZFE4WTQ5KkMmWT9aZntxYHZqCnpUfCZlJFhBaXJwU1A5aCNE YGJNeDx1V2lNQVg3KnR2fnBKOyRpWCVgUzdYMSFHOCE5O1B5U2x1ZUFWI1Fn I3B9PAp6QU1pOER8QTUkQ2lOcGtoYnkhTXJoXz0ldW52RVhgbDxlO0V8NHUj akZaPHhaTkpKQT9QOWd0SCg+ZVR5Mll3QSEKemlYe3ozcmkhfmpTODh2U3tj c0JTelBGTj96WENyemU4b1hmUit+P0Zjci1VWiZ+Q3xjSmNkYUhmKXwmI1l2 TypECnpzaTY2TlQ4Zk5QcyZ8ZWQtMSNjSCluaVVgLTJsTSM3YHhgKjExcVQ5 TmY1YFEjezRaYWNEaH03OGxuVDV6WEx1fgp6bHRIZHUqeEFpcndKMDBrJWRv WWM2fXhFYCsqRlZ8a2twcHdSd04hVVY1ZjRfKmtwP3hDQzM/Tzw0Snd0Sz1G dFQKekEmfElFckhWK1ZITzVIZz8kd2hzQk5nTjUzPzlsdC1IQTxXZTA/WTcz UDhwM3p8OVNeQzczZi0jeEpDR1AoemxwCnpDPyp5P1YlTGk7KzF5X28kK1o5 c3kzTiMwezUheD1FKlg5NWMpc3VXSFJWeDxFYlRicjd4KThqKklifDE7ZW5L Wgp6MHNzZjloRXQmQVctMFFkVXNWWGVeYSFGJm15b3UlTXcwbEM9RU1SQHFi VmUtZFVncXhyUn1wUCk3WCF4e0JSKXwKemtoS210TnpzTDJrKmZYRz5XS1B8 emctVm8mazZkNFVpaWBjXno4KlFJTGFQcWMpUHI4d0N6KHtMXk9jdnZETzdk CnpoNEApIykqJkdhSFpmTEFpN1FPYHpLYmpFM1dxYGw4M1FVZFpaPWlmPH51 OCRSZigkZW92dU8oPVRmUkU0XkctMAp6ZU0jcHFRRHozMkJVdjdpdzBzblg2 eHo3dDMwPEdkcDlse3N1eGkzeyhvQSNYMU1uWFpEMSgtZmZ8ajdHOGkweFYK ej1mWCs7MGUjKSY5X3dOUiE0bklyI1JRKWpoa3RPYjMjTlU0QGEpRVo1ajhO R3AwWVZrQyMjektEYCRNUE4/fUN3CnprQ18jVCRqQzs/aUxVfHk0SW9Kcjt8 NVJ+d1F3RGpyKXxJe0hWIXZCWjw1e1NteCt4YDRTKkNmVTIkS0pgWDNZOwp6 e3ZPfHh0M2BLPTwjU2NMKm4hZWFkNjFNYFRGPmdNOTJlYkpWY3VWbkAwdV8k e2JfN31WZCh7SkpafGs2NldkNk0KemBRfVUxIWcmbWVTYnAmeGA/PVBVeno8 Q3g7KUYrb2MmUn1DUDV4UUV4QktKYipvRC15SmtYZGxtJG5sQz91V2RLCnpZ enl1KFA8VHg9QHtSbygyZEdCZF9oLSRkRG5yKkFCJEp2bWBBTipKOz13Wll6 KTQ7NWxVVExSLUM/cGJXaEo1Ywp6YnQ3O34wczdKRDs2ZDxNKnYtZiMhI3Y2 bmZMM08wVCE2QFYlOzVmU0ZpJTk2PFVRUCFKMkYjV3B9Um57SmZPLVMKemtV eX5mRGlkYW1Ba3xQb0YpV2A4SCt9bDdfPnBtez44KiRhajN8Sn0+NGVYZnY/ fHlWSWtPU1V8Nnh+PVo5QnhfCnpXRmtAU1JmPkN9Q2hVWE84aEhFeVJxZyUp bVM5I2FaISt7ajgmbUtHLUxLLWE+P3ZDIWpsa3w4TFpRUER4V3lVSAp6OFVr NGY2S2Q7THJIXmllYUlANShYXkp6NzV7LWhBN3lYMy13ZHlUNjJtSDA+REIr eHwxKz9Dak0tUkFwaylaJH0KemxRP3w3RCZ7Q3BQJklyYXgtQVZ5TT4kRjAr LWE8OWFjbE1tQGdUSmBNUW41aHhpNk5+JHFlRTJiPl95ISlzMnJuCnpvN3tf JjYhRDJVd29Pa1B2MkBGM0VyV05LVDY8TWU0WmwpKCV9I31TUl47dWVQOHdD NDZhZm99RSgxSXBvVnI1TQp6YTZoT0I2dGNIeXtpdWU1czwyaHZRUz5TJnti NmBBZzlhZ3pjNWUhKEQzTGU9bFdRI0w0ekImbmFlVGpySWU0JVcKelVndlg8 d29BcnpxJX1GbzhAaGBEbnFoZVZZd2Mqd3o+MEc+VCNFP0BWTHF5eGElMDV+ JnhuRDRlfllfIXl4cXJyCnpUfDJkQGt8MVVWWkNtOVdVZkMzeXNEckgpZ3N+ VEd3OFQ5QG0rcCNraylWJEdJQ016fjJeSThnVFZzLWFUYE48dQp6QHVJYylB K21NXlcmKWRgO3ZqKSFxQDZZbC00biNqdzVzUSg9M1N+dzl6XzM0KSNSYyVy fiokPEp8emVFU3Aqa0cKejFDMiVNNlp1UG5Gbz1tMihYbmliMzYqc3hxOSN4 VlZSekIwQGtxKjE3KT47YDMlMVEye2M8UXJUfVYqMkgyNkttCnp0e2wxK09C UnNSMGkhXnR5TkNtd08+XkRpbHJAd3FmQ3FMYE1WeTNlZG1kKElBX0s+LW1t Jlg2TlJYLW9nVE5HYgp6R0R9WjRweHYlb3NJWGpwTl5UaTx4QDhfT2tjeT1h encoKmQ3OUd7VmlqNGN+aH0xaUJYND0kPzV3e1JZZVdBTEEKenQzWWx0PWcl cStNVkwyeCRUWXJzSU1YTCV1JG0qQzN7WDxZOFV3R2BDdmxVQCpBR1R9N1h3 b0AhXzQrN2J5Z01WCno+cDJjY0tIbWdlXlp4eUFRKHh8JW5aYHk8RHAjVVJM OXlDJl5wPFVmX1dBcD92Z3M3Vjlac1lvQmhHKHZjYUd+Mgp6JDd0aFkkMzl+ OzU7UDx2cjBKN0BvODRAMk0yRkleZWRZUk00VjU7MWNAanwxLWAoK3UpSCp9 Nlk3UjB3X3lFTEAKeikpKjR7OStsLUI/c2N4NSg/bGBTS0t+SzBtSTU/bnVp QVp3WFZfeWNnQ0liU0lYd316TVM8U1NVZyZ4aUxQSTI5CnpjUkYrd2pWPlQj ZURjYXRtZkdefW1veCY4Zk5AWXBjRzdzUFN6S2pMPHxqV31KXjBMZiElIUBI OTBoXiM+bmpmOQp6JSM0MXFHejJXREA/VHBhOGh7LTxmM0IqIWBIaD0pNnJ0 b0AzJDxrMjwpIW1BRmFQMl5JKyhRfXIzeT1UMGVHPGAKejI7MClGc2Z8MT9l aklTdXVWKWhud0AlYXw9MGhhQzE4Ul8oQTMwfX09U21RPy1hMiV3Z1AlJlgx WmU8Vk96KHtICnpHZXNiMFBueT9oP0wqb3B3O3oqWns2WXo1eEBINHt4WkR1 I3g+d0xnRnFrYTZJUUlNQlhDSlZAMmUmWEhTbkk7Swp6SU08aXI4LXZROzsx eW1LSSNnYlQwdFoyMD5qVTZFaTlHS2pfKzM5fG4yb0xiYEY8JGZ0Yk9VTVYq Rk5KckRIZm4Kel5HdlZiOyVlditEaldNQCVqVEkzQ2xZMzZ4PXhDVGZuKnYm WUh8QHdiQHhFYUtmWHdZb0VAIT1xUFItfWpFa3ZfCnppeDZ1KTFsfHBeaDI+ TipnYnJoZzZBOTJScGhncVIlVVRkP1FeMFhYe0xzaFYtZFYpZSE7RDJAQ3xA VUcpNHNyRQp6ZChWbEtlZld7RFp7c19JKz54UUUyIX5uUCQrVTV0NWhqNDNS RVglYXFTbzFuKlRITWd7O2o1RF5ZaF9XV2A/ckIKemRyTnU3IW4+Ryh1Yk5Y am9FZmd3MGlvUlVBSEk7Z1IrSTBPZjw9SU49WlMjKnQ4cUZoMXpyflQtTUp6 JT0kK1Q5CnpoIUd+KCNwUWEkeEt3MDlXcD9mNUI+SDNTQ1dkbnk9bCNifjxV Y0Q9K2lHVkchK3xRUlBvOUp4aXB5alRaKGQ3Pgp6bVg4UD9IaG9Rd3pPQ3pA YzRuOEsyKzA5KkAjNVY2cW96dFBYaFp5KlZkR3xGb3t8NnczNWgteTRDcjtY OzZ5YU0Kek9fcmo3SkAtQXVRLXJTMHw1ZSR4X2ZwaXRCeGI7K29CSnN7RG4k KEthPjZBd0JEU0FqMmh9RyYhZmhPT3gpQF9xCnpDKzQ4KXl3SThgeCF5Pnh5 REl7JD9hPU11MlpqejthalQ5SW5VU0cjVH5sWEB4TmF6PUB8KzhpbHNnfDMx UnU5Qwp6dipXVnlAJXtKI2hqMnw1KCplQW8+P0hHbm92U1FfOWR6SThAT2Nv Xzl4VC0rNlMtK2FCayNOak1ve0ZrRFchK0UKektkQDFFcUA3e1RraU5GamZK d3RfaT5PSF9SMStqblZLfWB4S1BtTVU4JWFgQUNjcHFsMT5WcG4+RERwIzl7 VWR6CnohUyVoQ1p9Vkk4KDBNOFYkcXhRUV9HSVpDaFhIWSFIYGcqby00ZHBV dGYoTTIlPzAoWV9rem01O1RTUEpRZEI+JQp6a1o5aHdzP2ZXbTVwUiQrZEtX WUMzNERGbUFNcHJxSzRMfCtkanVuJjhzIypyKjR2PVlMdFhDa1hfWVgwQWZR WHsKenI1Y1RacUt2ZmVUQTs/byg+T0pxO3xSNUd7RXg4fm9wb0lkdipFWHpW bjwzRkA5Tz85VSpCQ2Y9KDg4NiV0UiNKCnotfGtLND8keDhFLWtFcUk0VFAh JCptP0hQYFp7Jk9fIWdxRVN6alcmc2lAYXU+XmRZZWQ/Y2B+cVJDeTs1NTRU fQp6ZnhwVEVhKj90dHpoNz4tbGl7SncwQ1MhQ257MHdreVEwfiNkUT1aMGNR TUFycWJzc2whI0k5ZiZmRFB6T2JgMHEKemdVaiV0RVpuUG9mMDN0Tjk1fUxT dzBpX3RUNHh1WjQ2YGlhTj1LRiRlYVAtYCpaayQpcWxEKnJ0K0xFajhvN2wp CnpDO2skUkFIdGNXNUtkM3tiKShKalQkTTZiJG5lXyV4MU47UmZqVyZeP3VW Z2xKbzIjaD00d1o/fEotJjVkKHxPLQp6YDxgdn4/cTFvQnE+UVVLN2gxak8l RnpGamsoMlZVRmRvSmFRJnUjfStqK050KWVLZ0tVe3dxLSl3UUd+MkpCOTkK eiNtJE1gNElUQ1VyRkAmVUtrN2Z4bzw/Uzt6XjNGSitSJUhjR3IxQWpKTF9Q SjFteCFCKnxecTF3QkJBT29wWUQxCnp6UCFBNjZAcG9MSCU4SChgbVM5KVZU RH1zbzJvYnJfWnZKNjx9KUFwdnBMN244dGJxSS1UbV84QT5wISFQV2hiaAp6 UzJCYSEtQGc8Z00wWWAzZjItXjhqU25lMTY4RldKMiNCJE9tXzhVIz8yKk94 YDJKK34+fE9RK3ZTZyM9M3o3V00KemYkRUBqVThZMWJKQm1sZyt3cTs7TGVM Syk2eE18PG8jLW5PSkd2ZSZPUT5GSFlxS3t8JE9Ac2xvQ3I0T0FfTTAkCnok ODs1SklaIXNhNGpsUnBnISEtfjBNNk80dEk9WVhTZl89TzllVnRiRCpsbXkj QiheUVN+TXE2N0BBP0dIZz5Ofgp6b3s9Umg+SFY5PG93VjxgMD98Y0xWbmYm K1I2SjMzJSshJnxnPWNNMSh6U1lPZ2ojUVdXWUYqQmh3JHBpMENhVU0Kemck OGwwYW55PkA4S1JKaGt5XzhLOT9lTytkbzF9U3NnWHxDVVZVNXN3c1d0aWRp ZTN6LSFVfTBWJEB7UD9zaCpxCnp5PXpVQWJnRmxKclBNdFR3TlFENVBme3dm R3RyUm9NckR8aWBCZDdKNFVmcWNzRyVeJnd2S3pEZH5HQHFvbTVEKgp6MGhu cDJSRCVXY1RxPTJTbTtTYz1OeXhCSlk8PE9oLUlKSVNUaEYxQnYmUytUUzRR LSolaXgycGNZenlIcn5+azYKektKUSMwejgyOG9ZaWhRMUY9YX09ViQ7XnNk M1l8dzA+QmkmNF5uWD9SdWd9PW1Ie19uZEFOaVhMKn5ZVT9nTjIkCnp3Qz5s XnkqU0wrK081R1hqYWRKPVlgK0I2I3wkV3ZISStgcypwRFBQc00oTWdgZjAr OUFgJnBlTldxOzsjY1EoKQp6NkVgSnkyQjZDfTByblR1akcrOUIqKnkzfnRF T1dwQDY7RmZBPUNYSCNZMj51KXVeP2lpQWoySyV4cCslQkNZKDYKekw+Tz02 YHpKaFIjLVpOdVNUZ0dpeHdkcXdqQHNXN1ZHPSlvKUI/KFVJbUB6RVVFc1FT SHV6JGVIM2lkYyVQRHMpCnokfGstUFp2NyQoYEh2VjxlViZiJkBfX2otMng/ VlVUOD5FYlhmdV9wMzZ0STlLKXYrRmZYVXl6WXEyeT9ZV0UmVwp6YDR2JUBe bEcpfHtyQTxTTUZ1WVlrMFlEUFh9KkxDdzE5Y3x6a3xLOVgjMUBTMkYkbDRj VishfkhndV9zMG0oREoKejN3T0QzOHRMN2hpMFlOezZMTHtrOG5xNU0xPDBh fVVlTWFGeXFSTjs4R1g7MnY0fGdrbXpWVUhYUyNBJTROfndTCnpVMlU2e1d1 PUBXMUhvLTJmJWVkdWR5JHl2e0RAQns3KyU3e01YV2hWckh7SGJUcDtfdEFE ZXZDKT0yUTdFI1cwIQp6P24xX1NVeUpZR2psTlgtP0pqZ314cCk3NVQ8JjM2 KCp8TEArdT81akk/VyFeKTVOakV5RiFMIzFmRnhVPH1yfE0KenpEfm5mNX50 VDs9QiM9QEJ7QGk+VTQ9eGVEdHYzaDJReXJRLWBlR0gwXjtMX0kldkZYaVIt NSMrSSpXKyh9TmZ+CnpGQ1JAV211YkwzJTFCVmFiVlhOeVQlS0NQJDQ7P05w QVY5PFhAeTFxVSMrekA+SyZTWWh8PzY3QmAhPVZOYzB7Tgp6ez9QcWRXKj1y LWlmTVQpSFI7UGVHM30zezlLSyt+P2MpJW1WV1Z7bTM9VTQ+QF5Uakd2SH01 K3Z5bUhzRENSZVEKelVQUiFwajl0IX5GZ2F0c0UkUldZI2o5bj5oNE5Fezdz NX1HMkN7Q1hfVW87MnxKZHc5Pz42d18oPTwzRk5RfWV5CnpRcmJrK2lAMEFh QylyQzFmWj5ZT3E2RHZqdTQ3fVErZFJKYVItNSpMWWw2I1YydWVlLURiSCRh MVdOfkppYmh7agp6Vj09VCM3NHZvK0l6UHFXZFhBfFhCIzNgU1UocC0kPSZh biomazA3aXc4TWVmdUx8PiMoYE1eM2NRMnxGSzhXYUAKejY5T15GcGxIVHpy TGBXKS0lNkl6RUZkRWsxSitGKiFVKFEjLWopdEhGYkQze3FybENJSnBBSS0p Q2MyMkJhKjYxCnpjTkctV2lWaFUtX0ZAUi03K3EpYnlZRm8xd0spcWMoUVY0 ZTA1dzJIV2RUbnlzek5zYSpZNSsoaEI8fGome3ZDQgp6bTtTcGp4MyNwTnhz KiM8bjdIcGRDQFN7bSF0fjJBMWY+aCs+cTFRYDd7M194WmZrbT0qcnM0JUMl PGNGZGw9TXYKelFMc0pkMkwyM3EqezRYP2I1bCZLOFI7TUllNmV2QWFZc25x UmBPXnB7MXJLZjxqISRFYlpKLSRxYGR9YntiVio8CnptYTc9dXdeOVhlYipo YGJLNEdDJl9LLTJeYnJBJmJ2dH4mVnlhbHRycUhMenBZS2NTPmRDMzdQS009 cyg5P19QZQp6eUk1P2ZlfXhGK0ZkfnxENStZPXsyPHZ2SnI/KilQYHNOeGJA dHcqeF5QK1dvUEtaRShURUN+aGY5V29gWEFHK3kKektlVVNOLVVJI0QxX0lv UFZEaT5zcWwzQCM0PGhwPk59NSM9enNZKi1lbE4hVVpTezB9PnBXJG9NTCFf YSZeRkFwCnokfShvfEYwKF9fUEprZiF1YStBS0tBM0lkZVN6UzJLY19lMzBx XmYrUyl3U3l2O2E3VENRSyRldj05PjE7ViFFagp6ezFrME97KjI/TjllPGNn YEotbFU7Zks+cm1HN1J+MkhDVE4qdC0lJXs9MGwha0d+cVYoPzUrI0FfKHNM SyNkJikKelNJdyVZYGx+Kzdfa249KVR2ViFrPE5ANFhWbHlubDxoQjRlUCY2 NX0oNzsrSWNCZjBuPStxSXRFTCgmbyh5bG1iCnp4M3otdHNDTV9peDI1eFVP I1lvblU2e2sqJDMpKz94PWJ3b3JUM3QzPHBgfC17RnlLZ2koVmcyMnooNipz YWMhcAp6dlMkdjRBVkRZODV4PWJ1emtKRXxGVSpHN2x6NnpuVVYkKFZ2dWY/ eWBTYXNrTXNOKHRZM1RNfDYrPjl9UUtMT2AKej1uQF9tRG5tU1Rne2h9JTJV c2dzcUlWeyM+dkwhSFAhPkJBKGBifEJKamdmfU8qe3dreGZneEN7fCtLQz5E cUFkCno1eDdxZWY2ejgle01ER0lWcUAqTz8peTMoJW91Jn5ZQUZvQmpUQXw1 JTYyYkRYbz1yWnAxNWhYM1EoZ0VBTVNKVAp6ezs9KUVOZHBtS2F1O2QyNWha NShOQWpNI2klO2QtbWlHcjduciMhV3RDP2l8eDgkSXlfeFNiO1ZMZXtOWUg0 M1AKekZgO0Z1c2wjMWhMOUJvOComQk5HPD9nTTdqRSVrZ184Pm9mMiFjc1J5 cVI7NTdwfUt1YHoxZkMpTnd0KXlDOXp+CnpYNGhNKXBpXzM4amNPKkZ5KXI3 eVY3dlBnP2xqQzw1dmFVbHkqUVc0IXkrT1YlLUh3SkxmYWxOXnhhdiR3PEUz Pgp6PHZ5dV9BT288b0Rmb0AhPlUob0B8OG9pVSF8YT1fJmllOD5kIVduRnh+ amZ0NzFEOWkxSmdeKGR3b3hoY0pqQ3wKekY5Wiktd154XmhsZDA1WUFuRnJP ZmhUaDtnUkVFOTNUYn1WKSMoVkdAfGdkJmtiYjZOenZBOz5UR1dZdk9OJndk CnpQT1NmJnN+NDJhZDlYWiQhPDdHe0ExP1JIMzBCTHpOdj59fD1vXzk3UkdQ dDYwYmY1PCZuJGo7S2gzO19ta1N0Uwp6K0FHc3RebT19ekg5TUQwNSojWDBl PD1jRDBLQHMzK0Y1amNlJTYrOD0pP3ZmZGY5Vns5VHh4UEpXbG9BcVpAPnsK ekE9K09BSDxzaWMwSHcwR2VaaGxDZ1BpTnJ0d3IpMldQSEMrPCs5bCo1NWtx aDd5b3RqO1ZZUG5LRVczU2JaJDNBCnp0cWZiLXpGUDdpNDUlQTFpQWxmU3Rs KTdgcHZHK3hBbEErTlN2c1hKS1h+UTRYPHVyWUd4MVYjYWlfPHI7IWNhbAp6 QHlnTHtAUHNefWMhV1lze1J5a2tHbiVRczw7eiQ4IzZ8JWJwWURXflV8YjZU RiRoTS0qcGx+IzRoZkEpYDExaCoKejQ1ZD49R0VeUCsqJlBuMzBFTzRPe2JN WFRxcTVaIWY/UHwmSkJHYVAlKyRyfUVKcGJCSE5sRmQmZ0tSNm9ENmNaCnp7 KThiI3RkQFIrM0NZKXp0UiFUVnkzQFZeZ3EwbHZFPmVxOXMjWCZmTj1gZTs2 UV5DRE8tY05IY2RGYHMwdHx2Zwp6aWA8UEVUNyNzdVAjZGdpQ25vbTcqS1Mt aCNMdyotJitZb2Itd047bFpUWUJRXnR3KjhJdCpAZG5vZ3VNJUtAOyQKej5a YDFqaXpIZlI8dCR9QzNwdk5jeEAteXh8N1JIYz81VWVVY1YocW1hbX0zdl9r Pi00d3FZVT9GbGBNcStvdV5ZCnpDeUUmSTx5K01lMUF3JlpxcFV9OWJjTD9v JV5adSZeQyplQWJZeyV1SFQ7UD91b3lkPG4yY3VFV3owPitpbyQ9SAp6QSQr K2BTI3gjZmVXOVlNVDZAVT9tcj9uNUN8KztseEA1S2VyTSZ4UjM9b0kxPDBQ WXxLTkV8X05ZI289Vn0jJHIKeiEoMCpvVkExVThYTEZvcSNrViNlWTRXVlBC IV5KdjtVbVNKSHkyVVRyUDUhZ0pmTGxCSUhZWHAoTjI5U0tuJEV3Cnplc1lB QXRXfl9CNUA+Jml4N0pZOFAjWXFzVHp9TUw1bGdyfSFYIV8zRyUzQlFIXyFa WlQyMWkjVWYpSiZPZWc3cwp6VTJhR2okSGRSJSFhZ1BWbGd+Vm53c3x0JlpM PUU+Xi0wSUBjIWd4SGQkPiRkRl9xTTBRYTdrJG5NQDRxSUpkJmAKei00I0V2 ZXJTTTloUVpeVEB2ZGtPJE45RSp5NTBlNG98djZwND1hMiphNzBpdCNhdjQ/ NEc2Ukp4fC1VOyo7QkIwCnpMeyMwR0RGSlcrdEB2N3ZsVCNqU2tQJWYjKiFF c3xXUGFhJVg5UWdOeUJJeCklak1VJiQzblZjSk92LWMjaSpeUAp6Ul95dXg3 RUkxRyVzUWVXdXJ+XkpCUmB0UHpSeX0mWDEkTDxOS01qTU5HIzkkbSRVP0oz aHxAdi0qbnRrcyl+bTgKel5nIWRESzVfVlFsTmowckx2ajd2TTlMKCtMfi1i NVgwb1VqZFVBUSlgNnY2YWQhLWRkXnheTUtTLVhCKnkte19KCnpPPyRqPj9l JiZCWWdyfn4ldEBWS2JQPG9vcTRVWXxze1ktViNORCVKezNndTxxc0VfYDYk clp2dXRgaV8+bWlUYQp6SDRDPUglQip4OW5fZjcyTUtwOUlKWGNybD5vST5K JH1rV3JqMThweXNgeHNsciUmbGBiO201dHRTS1JwSHo5Q0gKeiNOa199MUVi I1NTfHtmd0lDbzFJSlFJS1k4TDw3ekk5WntEdFYtOGZRfCR+PTlBfVR4dm9T UCMyTiF9c1o7VmRGCnpwZzJCXjglNX53QGBFWHYoTSptI1Bud3V8eWNLV2FS eV9IY1RENUtYYig3PXEybTBOU1UmcUFFe3lBIUBzXykkPQp6aytacSlgXyRN dXkoKVhrK0cob140Tl8wQTU/TWNUdzJRaCROdEo/TUEzPX1XNFdga0BrN1F9 aT87cTxMVXE8Jk8KektnKjAkUEpEeT0lSDRvNWpJUElYQCNRLXllISFtaGNH OWhpNGQtM31WI3s4UyVQcDk7Yk1ydH5Ccn5OWlUqN0RKCno3aEY9b2R5Jjxu OXZVSmwjfWdJOWlsa3NQV3FkQmkqKmJNUUY/SUhKVWJrc2whbGVIK0UpO1NF IStXTGV2RXImNAp6TTFlOypyTnFNcWw9STh9MDBYcG4hSzI7aTM2RF9Acn4z JUxBI1FXeXV6bEUwY2VFN0hZVEJMQFZ4dzFyS3FEX28KekFFPWd5OzUhXkZk cDc2RFctJiY+ez1fKW1yWjd6PFBkQTVaUGhSbnowKkdwLVlOV3dobnJSWjZk U2BtM2JnUXBWCnpwY3AwIURaP0d3WShVfWdXQi1BKzloPlBKMWZ3Jj0wbSZH bDdYYUdkJEV5ZF8zI1J7KWdxUHA1e2hSeWU7MX57OQp6VyZMIzErRSFNWVY/ RDZtIWBVeE0tI1psYldufDB3cTVhfUh0I2IhQEA2eWlfb21CPDEkPlRieUEh ZEgoPGNOIz0KektZQFZaQ1pEOWZseGcwcVd4TjVQQHZsNyopfSQ0RXBAbClN eXNQMDVgWTtZUl8zd1NpUXdIMUwlOWJtPldlbiZNCnp4IXlMcHJIIUY4TW5I WD5YZFlAS0tiI1BJeWB9ezxgQS10STlRflpVUEwmNk55eE08Km9FbSp+OGVM Q1ltZClTUQp6X0B0PmJpbjd0VitSIzdCT293N0ZxaTVvXiErbUNtcXJMYWdf ITZ0bzh5MjxiRTg4YVc7LU1ORkJaJUIyaHh4a0cKemNPa2lpZ1BnR0xIJH1+ aVNYWlFZbiZAN0kkaXkodWp3ZXZvezdCP2lmei03X1NOfTF0Rmw1ZzQ9ciRk TEgweyYjCnpGVSN+WjRWSFhRVnd6aXdkUGlgQ25eb1ZzTllAdmBJLSVSOTh7 TXsoPnxaaXsofEliNyUlY2JEa1pGdCVuODd4Zwp6cHJPbjg3cVd5TTtrMUA1 Mm5XMFZjbEoxXztAckNZPlJrMmJSXiNSUTEtMyNUVTRPPVghUlBVQ2NQQXMy cDR0bTsKeiQ9c3hQNFlUcFVSI0doa2JPTEFqbnVXSVRBPlhsUyZ4SjY2MGVT K2RNUTNLUXB2fi1FKmgzaiViXyZ6OUMhekpTCnpTQUUkNz1iTiZoPl5nY3VJ fT5zIz8/eiY5KntlXnZhSGM7PWAxRCR0Sj42bktybGJqKj4wU3tyezZOfG5K PTx4Ngp6Kl9ROW0oOVpjfiYmNFBKa189RyU7O1QyZTBJPHlEP0JIWDJsPmYr ZkxhY3ErZXdnWTB3WXwwYVA3IV9QYENGfksKekdDSS10KVBPYkFaNT85RCE2 SlFPYDhIJmFXYDx8SWdYeDdRLSQwQ0kqMiZjJE5LViRwXitmOy1AUGl1LWUt VGBvCnpvKSY2YCpUKHxiIT9TZzNaSGopZUhrN183PjswTHFsXms1eUdnezRB KntrMk9tQlEjRmRRbygtR1NPZzQxPilARwp6NzMhKmN6OF5XbT0jMzZybF4j enNlT1VQSTx9fSU2RCV2fFF6e35eU2R9UjQoZXp3Mkx3YlM0OWdsQj1aOCpz cHEKeik8NmE1djdrfSNoRlckQlJtU3wrZHU3K0tgZF5iPEE1NilNMWw9QEFX UHA2MkRDNn08N19ZbVVgdmYhPmYtYUIwCnpEQXd2P2ByM3ZGb3wqMHlVPiNq PGpJanV0Qy1tYWstNjA+VkhNPEMmYUl0K3oyM0d4eCUqT0dublNtR0Bse3U4 Ugp6Q2JpVl9FbTM3Vjx1RjxXQTk2TT9NNFZsYFVMdkpCblg1KWx4IUhFd083 WnlWZXk9cSpIfXpjRj19eHk7Tlo0YnkKemNFUmAzN3lJP2s7eihoWklmakI5 TjNGZVBFT1coRWlfRD0kdkEpeExTZyNsSkJrJVA1JVJSaUgtb1NgeEw8S1Mz CnoyPlkoamBRWTZXakZNQW1gaHs5KkJRWjJVKlNNV0A3ODVwTXtfTikxUEpV QFFyeWE4U0UpLVVyVk94a3RiZEduZQp6cXc+OStGTkV5PV9LYiQ4Jn4mOEE3 b2AtZGVRdiQ0bWdUYz5KVkxmTW1KcHtiZnx+aEJCMGtTMC1GUl5iQjFGMmUK elA0YUVoZT4+P3BMWnxjaiZSO0ZgOXxGX2JQYWxzbzhxWkglZkF4fHdYbU9H ckRvZiY0Uk5HbjZ2Xj5ZZVVpbSY1CnozYilRallpUzUwTSNxYXNYckd2UkJA flY3XnUydWxyTFYpS1A0eSlxM2VTZWBVTE9pYGwxbk49X0l7aTQ4RiY1Ngp6 UWd8KndqUE9IQmlsU3d2bncmcD5CIVVwPyM3VmFvTT5FMWlhJEArZEhQTXtF YD5ZWHAmTl5JNVRYalh9WipsaTsKel5mPnhgPUlCVXBXWFRIZjg0SkJuMHRm SVNJTHhKbWEhV1pXRD9qZ1QqUT4lUkk7IWY8Vjx3OUtsfD58b3RvKXBUCnpP TWoqVTdEMlZMOVJEZCk9PkBNcCtgO3MmWXJRTmhZWExwYXRyUGo9MmBZSTBw UXxSUEA1LXtxPS1gMz8pPkklXwp6PE1KdzUhMV5AeUk9aGxxR3x6UUV5NVAq OF9XamI8JDBzdz4tWmt0bmI3TXFuO35xQVpsfUAkVGdReD8jN3lOMmwKej5Y PSMyWjdZbkI0UDx+YSt6YzNqM257eTQqOFo5czdCVWtLTXJSRzw8WWhXYmBI PzxqKClpJXhENXskVz9NZC1mCno7Z3s/fHZPPVNAQjBUOyt8NF5TcXNYbCpz VX5KQDRsck8wXk09RF98aURTNmZkQX0hOUxgOGJqPVk9IT05YjxlQgp6YDUq UF96Y2Q+SVQlPkY/cn48QCl7YSpmZzBJbDMxdUx8PWsyKXI+IUE2WUJJeFl7 SnBfM3Z9IWtTaDk0Y0s2dj8KelEwUjUmLThkI1ElWCYtTUN5UHMrYjQ7VFd4 YD8rYWxyVjEod2Z8fUVPNWtlRC12M28xJWFDR2hnRTAwWE9Pfi0hCnokVEhV UEJZVSFxZWEpSnwmNj4mKkI5UzdaeShFIUp0QjV3T1Q5aV8+QDMmakdkKkE9 fWRHbTVoK3N5QyhuZmRrawp6SmtFUkhfcV53TSZOPEl7X0l1NGF4XnNLYnN5 dkkrMC1yTTt1Z3Blaz9lQjRjY2N8bSU8YER6ZGlpQ288ZFprQFUKeiN0SSZK VEtHJj9TTEVzVThhTyR5T2s/MXh2ZzNiYkN2RUp8VXZ0SkIkJU9ucit1YmVk WUIzeiY9ZGw+YFVib2AzCnpOK3VKekJxezFRWWw4QFJnQlItYWMlMUBmU0Je RF93UlpOalBWd3IwPXZpTiNSO2ghQT4jcSpGRnVMdSVaVSgqPQp6Z1hRezk/ PktDZ2V6QF9BM3RsTmsxXkdySkJYYVckeTg0Y2k3O29IYVBARUk+e0tLS21V TyY1PXQmTDUrbSlMJDsKel40e21fRGwtUkg4WS1AZDVLVjc2dkRya3E5PWU0 S0VwMEZVLWdAbXEkcT9AJHtSNGsrQ35mPVJaJmNpYCFyazd3CnplU31Pd1hu fj5rKW97X1hMK3ZNaVlXMylwJDxAdyojPWpmdl9je0syUl5PRnhJfmNVbktu M35tMTspNGdOSmhTSgp6Um4oWnU4e3MhcE0qQmZ1dEIzaUROOVMwY1FyeSQ4 JTtEN0E3V2VLdmsyPDA+JTs7NXpnVV9iXyp6KXxMJSVWTTAKel9QNVd9KEhZ aWEwRHIkeStsemY8RCtmQyt8NEZQZkhBMGNVSUNYT09qMl8pbyk9YVN9bXo+ fEReSHdjemVhZShtCnpLZXghKUAwfUJBbGtgTXVlODhEdUBxQEpyX0RvLXRp WDZJdSRJcXcjR3lmYnZWb0J6PmpxelEyJU1eQVAqZVVnMQp6N3d0Q0lBRSky bUlCJjsrXlg9RjlaJjJ9UkZSTUV3V0s3U2orZy14KWV2by0tbHltUktwRGs4 eEN8bz4xWEc/aVAKek5UZ2ppPDFXcVErRHZKbEleKVRkKDtFVTtUeHc9fFpS SyZaanYxTz44PCUjb2BOXmd0WXh8dCYqOVgwZU9CWXdvCnpLamhKVWg8QzZj WHB4eWBzan1VIWgxemA2NkV9dWp6WksmPHliUnlBZ21LelN6NjFYUlB2KWhR c2NYRGxeSXg9NQp6TVlBbGZvT0lyQCVkbXEmaGQjV1AmMTVHaSQpXzRTKz19 RlA9YD05aldUNXM+TVdJV2RQOTBGV2Q3XnlrNSZPaWYKel85eHxpSEdGO053 VUg2Nyhra2RVK2MhN3NsRl9Mbi1EbC1rdFpoRHg5JEdtem1zanRtdyFKdHpg TF9rOEl5M09pCno9ME5zfldiO1BJXnViaD1oZ1k9TC1WdV8kKFNnd3o8YWJ7 MFVXc0EqWmwpJSY2TjJPb1NuXnUma0xIeEdGTFFnSQp6KDAlbFYoODxyY2tF clBXPTN5ZWZ6UG92bmxLWE1xTD9oTWlJQEZWfEtpNSp1SHJZMzZacComPzlU VCEjKkRiYzwKejRAIUNNYjUreFEqdk9IXkl9UlFeQ15MM3ZSfkt7KzszLX53 KFMzRFFvP21lSyltK3N7ZXJKPV9Sbit4bD9ldXBtCnpzcV5ITHlmKm11blp8 MjM2X1JrPl80MmdoUmNDc2hUVWx0YWBEd2V7KXtmaU08TkZWdCE5PUB4b3w4 OzU7UWZSYAp6PkxZQ25wS1JJSlVDe0lKeExzamQ+Jl9PLWJleUd4RkRGZCpp MWJ7KVh6OXxXeXw3cCtTZFRUbFc9UyY1OXdoa2cKek5EJD9tQFg7TDt3NkZZ QGUpSCpQWnBGQWNKP2M1KD9xal8qQUM5LWBFd2loT0kmYUJfdnN5a0NTKjZ+ U01+d3t4CnpIbE9CYGN2LUNtJUYwe2E+PH1LSnFmdzFwUSRmOSh5SnRhcmkp VjQkdmxGY1BeVmBLMzhIfFooalRuOXlZSF5kIwp6dCFTWiZnJnhsNWg0RmJL WkRZaXtPOHR8PUVGSTRtPFdHYHE2fGo4Q2tFWXQ7SHBfIXdNbnFwMipTbnFY ZjJ6cj4KekdTcU15RldjXj49UHItckMjbjdVVXQ7fXN1X0pDUyQ0VTt2Tj1D M05ES2t6K1gySU88ZS1eJDhJPXA+YGJLQzVwCnp6T2xSV3J1a3BmVWdUKEdY dD99Pms4T1ZEUH15JFBiODAjS1dyPS1FNTQ5czE4WUxyVXBBZEJQUlVnS21B MkJ4Qgp6YW1SZiVGeHtERSYwUlg1U1VJfDF7I282KW9AMlR7OWsoZnV4NXM5 Rj9AV0FhZDNtb01KO1hhNG1ieS1NXlIkcG0KenREZ1RuMUAlXyRwNz5fKCFE eVhBZT1HT3E0KW5jQEpCfH5iaHNheUNtUVVTXnJKcWw4R0I3cXlHUythP1Ej ZExLCnpER1QxJFZwIXx0dE5CYHN3TDRRMGNJKms+IWBuT09FbFp3dmpDTmpE VVorKXlyKDMrOVpTfX5YdTJvVWtYNmlkcgp6bkdVayUqRSl8anY+ajNyc2JY QGBJUEspQVE8R2RkTFgxbFdEZjc+Nyo+X0EkQDI2RkY1KzdPaFAjVUVkLTlo ZjUKelpHeVYlPmFmI2kmVE09UGhNNjhBaVNQWURSYCFVenlwXlNjJnczQnJ2 PTcjKUUxUW8henBkWkdwQkppUzcja1deCnp3b3BgOyF9PUR8YHR0UTlKcCs/ a0oqLTQ2YElNRERodktzVEZtSEY3bXg3dW9gT0MlIVo1Rmdfd3MmdVZsbH0j VAp6WDUtcCtgT0pRYXJ8aklCcCs2MmRfV1h+MXF2cD1ZVHI/fjJuKFUzPWE7 JlliNHtNQzx3c3FlR0BqMj9PJS1eRVMKekZNQyl5JihjOXJiaE9wdiluKkcx aldRfi1jPm1WKD92SXJsKysqQGUkNXUwcjtxZCFiNHc4V0R0SXJOcWxTYFNr CnpeeX5NR2ROPSFjcyhHc01xblk4Iz80bGBtbXJxQD8/MSttXiVYTTlMb3RC TmBfM2Z8YmYpJCQxWms3N053eHV9Xwp6RCtnXkE3YCQ2OC1VUS07Pz5kZHZq OWw0dVE0VUlfUlM/KnxrMlRVXyRCTWVUJlVaJU9gNXI2RUpYVXtBXlFyYmcK ekJ8enRfT1M5ZFk3MDVLWnZiV0BfaENaZih1ZUVnO3RIQz1QbFJZTVBRZzBO O3VIQzBKU0pQcVhuemk4QEVpYGtOCnpYOCReMHhsXmRkRnxUI3xDT0UydDdJ XzhWTDJaUSZUbFApM2FJO2hMMEIxTVB2bz9MXkswTFdMR34mbSVkTlZifQp6 XytIQkI9PE5OPSswbUJ8XkZ6ST1CRUFubntmLXwjbWQjdHdZbztwRz49KjFs T0tvJDNTTjlSQWleWGVJUiN3YzgKej9sfj96eVQ1c0JTI0FFUSRYPFQ7RF4m U0pxY1hwdU9RR0UjeUQwfj0hRS0pNGwmJFl8I2clVjZNQEY5a0ZDezxiCnpN ciRHTnFNJHkxbmZPTFF4UG5Ja3ZtR2xIa1UzKHo8fFNkYXtgcldgITJ0bVF4 K3t7VytiY2p3X1pkOWNaaiNvLQp6dGRTe08kaDlvKFhNYmFKPnhCZDZEI3kw bFk4JXRwYTtuVXhieWVzNlA3dylSTl9RVVRgSXk4VW58USF6c21HXzIKekZg PXEqXnNAJjZpSG9rclA4aXkwPV5VSUJlSH1xfXViYkNtanVuKzE5ZFcyXjJh UlhlIVpeIVV3SzhxN2c2fDBYCnojTGI8KzdWMF8/WFZ3Jm1jejJ3KUBUPDFC b054MyNZQWs5Km9RcVotK356N0xWaC0tVXlRWkQzJnt9NEFMaVhlMwp6Z3VX d29YQCY7UkYyd285ZnUwNzItbTxGKStoa2V9O0Vmek5xUWd3V2U0RjNnTWdH cHR6UlFsRkBIdUdidV9QREkKej4pTEIoK1cmVXZ3LTM0NG1NTmk7RWxWSUxP bVF4ej5jPT5EbndBcDJwLWt5JkxCfUBGZSs0XkRkU01pUCN3Z1N9CnooY3A9 U29lYHQjYCtQKmpmOUBvP2RPQiorblU8NFI5dHZHbGBLaT0kWXt4OyQ8SkF1 WWhZdEMlPEVwS2w8TWJxcAp6Nl9+OW5sSVBpei1ze19eUHVqVHRgaW5IKlF5 Rj1CO1dHT2hTITE0TEo5bSM9WHh7dF5Vem5tYCZuJmMwKyVnKT0KenAhMGNJ XkE+ak43SlRfMF9vR3spYl9PYkBOX319akIlYXpEXyReeS1HLSY8QktWLU00 OWxhO2FgbHhBdFZAbnRPCnpnaWh6I0VtYjRPU0VsUT41QUl2Oz8mLUxuKnNg NT42eUd+byNiQjZ7WX5ROCVCX0NXViYheT5QSmpuZjR4ZUJVNAp6bVdyOCZw NUUxNjlabndfKFk0Kj9SWistJT9uVmFHeylRZD5MXylgJSpDR1R0eVowMmZB QU0zQHh3KF5KJldKJkYKenVkKi1QXiF7Yn1nPUgtc3gpaGtHeVMwe148fXRw WHM8V1QyYzBqZ2UqT0xkcnZqcXVxeT1DT303cG1gYFc0TE8wCnpUPlIrZSFf Jm9PNHklOFFSPUdVQ2U3Uz1wUGtyd3cjfnA0SzNWcndyOVpAQHg+emg2Qm9V IVFWSmAyNEA+MEs4Rgp6TzwkcV5MfWxXRD41bS15NyhPQHV5P3B0X3EmXmNA RTc+UCo4JXU9OW5KSVR0bWZJSFZuVkZlPD0xeUxHMjkrJnAKemphezw0PGNQ PXEtNHRVXi1yQnBlbSl9UGYjcWsxPiU5UTJgeyVYRnttaG4wKSg+MytsRlk9 aXApN2cyTWwxNUk8Cno5Ri14MWUyVns9d31FfnxxcTRLVnVLMTV4QyRedGdY bSt4JntxV3h2cEs4NSt2XjtMYWslTnx5UkBOSTtNRTYjPwp6YHVrNmRPekp3 I1FTcXJ9KX1QRG40KVIkaTZKRmQhPjNSUTx4VEJqbEB4VUFTPCpjT0VSQCpM WlhqalNQK3pJa2AKelkjSD4oe2NzUnxWcmxaYCsxY3dgTyQlTjdSMSpiSm4p cj5GcXs/NlZHZWhUOGpVU2pPanl0Uz5oQXtXaURLLXVXCnoldiRwP3EwSklU KFFRbndRY0JQOWVTMjFrPEx3S01OUz8rVVplc0tWZCgrQigrTl5uTmolezBL IUg5JW89RTNGegp6cEw7VCFIfSlwe0UjTEgjQUVley0lVSpuZ1EwKiktVnop Wm9JNjg2QShXO0NDeUZkQiQ0YjQjc0dPYHw2eFVrPGoKem02Ny03NFF7PCp3 KjghPW0tdTZTS2M8fUJBMisye3UxPEBpRmgtXjxrZWpKST0wZXpUbGtDSUFo Wk96S0ohPkMkCnpGMG5sNSs9VFg1aE5yKCRedG40bmNuI2RRVGwtKkd2fHck VFRIN3tsdGFZT25jdWpXb1dNcWcxRytKTCZBMihCewp6WXlYJTtFZjM4JG82 OzlQYXZqQFdCND9rZHhKa1opeTFlLT02Vz1hZ2BfSns1dT5ZNVdmPXhZTHZL ZlEzRExwYXsKenFyKEkwYTlVaz0lQFcwUHgkamQjYnFoRE9BMGklbjwrXz0w Zz03OVReJSk+PWMteHVIK1BhUkN6d0J+ZnQ4S0hACnp5cCUpN1RUTDhaXnkm Nlc0Xk5mak0xa0xTYjtYeCpCUmAqQiptPmZgenxKWjl0PiRhS1oqUHtIeFdG dF8yPTh0fQp6bWsheztpN24oKTRfeWZ2Yzx5KCo2SyZKPF5pPHt1Mm1VRWhl dEFtaVhtPzNxeHxje3haSmtTQkVVbFQwZzhJWk8KejQtZWs+IUM1OFViaj1+ ezdsJClDXj1zREorYVBTK2FtIz5AbFBgPzc4OEQlfGJaNzY0Sih6VGM3ZDd4 YHlUUCRiCnpaU1hVM3lqaHlfcmE0V35JWCkyQSF2USh+YGpJKk08S3VfdXsq NkQwTTR8LVAwcV94diNxbnJrPW8oLU0mO1lkZwp6SHxTfiNQU0I8Vm5zMWt2 NzZ9dklKWSF6Q21APmYrJjZ2MkM/bzRoKmwwO01+JXg0KEozak8qdld4Uml+ NTlwRXMKelUzJiMzZyV3YDZrMjl2KkNvbT0oTjNuMnUlVUledCFRWXRZSFU+ O1ZjRGZrLSt5UHp4TiV8VlkxJHVnNT9jWVdSCnpJNVN0YWpzSHFKSHdTN2pa NXF1eUd+TGFWNzNXdT96Yj8oV3YycCpZPU9VNDRvPXtMQ2FKc09tUFRJTTdU LW8rMwp6NmFWVGxCTjI7KEZiQm5kaW9WQTFmUjtUNFMhb2hXeSpVbGlQeEo3 IUpqUFUyaUwkVyVCekZFTXt5X2lQdFBnUl8KemI9fDNyKHI7XzluaTFmUDxE TDJjMyZkamBXeEBPQTl9X35FWWRhQDVPMjVfTmN9IXRXMkEkKld8MERGdmZx dldmCnpadiR8NGV7R2NoPndCZyFwSHBLUCgwPzl0cihadChTTn1qcU9NcHZh bjItNEttVGBeSlBqaEA5PX0rYEtmUFZWUAp6KV8/VTZHe31QJV9qZSZyQl8h KVBTeU53MmF4fkp7al83fVpjTlA5ZzslVUQqO1A4VHVSKUQ5WlhEQEZWKDx1 RWsKenVSekMzQnRzTU1VSnFgWnxCdj58U31JWT9qZlpRfXR2Pi00MHsjVEFV cVhBUHM7V3ZHWjloT2VmTEg4YGhzQD44CnpPezQjKiNoKVpZS2pYY2o5Rz9I QzEmeSo4WVpCbC11SFRAMmZPZ2BTYF91NmB3N2pnaUpUTFJUPGtSfm9DT2lF ZAp6dDRHRCtEcTYhTWZTMGtzWmNWMSZgUWpGKUxNU040ZHVxVko/JjtzOXBX ZXFmKTVUUikkJmQ/QDIlaVZjPWFkKSoKenBPYktaSHNGQDFxTVY4SGNWd0pe Kjg7WjhqbEclLSQjTFJpVk9lbm5gVXZBK0s1akRxKyZ7SH48fWJvfipNWip2 CnpkdW9FfmxZazhYVEV8WWYtejU3MmVGdEQyISN+OG5XTnNmPnp9aEwpZXV4 UVhGbTRSXkw9VV9nQWdaaiRFNilGMQp6TWc1Knk5JVcybj1hOEtpO0JiTWQ2 YmhKa0F4fVZtPEw4KDctfEVsI09tU1cmZ0ZUZ0dyQGRvblBqa2B9NyNoRDQK eiooY0J4NEFAIytULT5SbGVaZD9fYzNncSg3dkRkPHZjfW9GdEZNSzloejlB YnRAM01TVyN6OWxDZzM2Mkl7dFImCnpMR0woTD1ZOXRNZ2cyZnxydksqdDhC QVZnRzg2Z1NtTkROdWpXT0c7JmhEeDh1fDxzZ181SEFzSmVjeSpMTHFSdwp6 MHBGMU49NzQ5RE01Mm85S3R+aGkoJm9gTT1yYEc8JUdldk5XQVo8emxDRT9H YmZhLUZYOVpsRmtSQUUjd20jIX0KeldoYnAwWXd5IUxefnBgP2AmVn5QViQk TVhGe0padTloJU1EKW5DaiF5S3xnKj4ye3M8ODNHKEhHQkpUSjRBek8oCno/ PHNKMHRVVStOS3ppcFUmWjMwSWtSRzRBQ1J5IXZPX3dQdCRRRUc/RTl9OCZ5 dDV1LStNcTN+Q0AqRW9pZ0ZwVQp6OWYmOG1fWm4/NlB2WEpTZl43MF9uNDtX Rjk1Pk50ajJsQSRxRXE0VDZ5aGVHdHl0amhRd1JPU0BIez1wYDNsU1AKel8y REYkP3NNLTlAcHZXOU5tZ2w1dHwlKXRtaUN3QlM/e34yN3xYK1JMM2A4SXAy S3J4Pm98NH08eis+ciVrbHdRCnpwdEIxQnU3M3RoMEZjWmNpK2xMI14+MlVw K3pqWFBQO3VVO0QmbGkpJShffVNyeS1BVGYhLXA5e0Y0Vn52Pjl7Vgp6WCQ7 QSFvUjVpJiNlckUzekYqZ3Zia0I3QWNxWVI4SzJzcW1wfCF4V2lfSmw2dDhZ fStlK0J4OWh5QlF4eFUjaCYKem5AZzI+WTxgZ0NrKFh9ZiUrKCF9elM4UCF2 SzlDOTc8YVJNVSs+ak5ZaEN2cm4oaVhtJUx0MHxTKVdFIUEqNE97Cnp0JHdQ JUp3ZDs1a2NZV1haeWprNng3bHREQ08hVCZsTSlya1Q7SFFucXdqVXlETklJ VUlPTlc9OHZicnd3QVF8Nwp6d285RUlHeWhXeCZRPSFsKjNXQEdMIWlxOFl1 bikpclFjcj4/KkktS1dgN2psS0p0NEZucmg9QWA5dFRePEVHeUMKentjcnwt OX5pUnVBRG1oQntkNGUwP2VWSFZ0RnEoSy1xOUgqeGwyMGIqPTtAcGN+Rld1 RWMlfTZaK0d6ZzJmI0MwCnp4NW4mc0ZVWWhLJFZPfWE7eVApJGI5NW43bjRR aiQzfX53Q0I7QjJuNUMrLWwmKEo9K19QN04oQFEkSWVYZFhCUgp6UGwmKDJR QyN5MXc1dmM/ZWUkK0dTdG1gPll2eWx2ai17X1lgQVZeZDxuWlMjRXAqUE0t PnZmK2QqJWhhdzVQNkAKemNkLTJfTW50O28jPWh4eyRCamVTZ1ImQ1BpMnV9 fj9tcy0hI0A8enU0TkBsI3NlTEVlMi0oYjchSmVxSUZYI3oqCnpZeW1seCEw T0xCYCQmeVB4Ozcmem9Ka0R6Zi1JUGJGOyR0Y1hMbEtyJEs7bjBxYCFNal4z KH0/KDdOXnZhRjZXRgp6WWgtVXctXlREZ0hiMjBXN1VuUUVDenNkVCpVIzM3 LUpfPCY5LWhFJVg0ZjclbntibzhPQDJjZl9AK0FNck9MKisKenN6akFwcG1U ST5gZipQWTVLT2tAcjYkPHdXYXJYM2IxPmRlRmE0ejNpZ0dnO14yLX1xa0Ve aXRrfFRVczl5aTtpCnojYFl6aU9PMVh9IX1jVEZrP2IraGM+P1FRIXZAOVk7 V1JmLUR9SUJ4STY1NFIqUiQoSV5XZzUpWlVkYnprJk9ocQp6eD93JGJTQVBq PyZRR2smOyZrO2olcClAP2ZfZHZ9NDshRmJmMEdTTUApWSFrMGN5azxMSH1Z d05rSWthKEFzcD0Kel5faTJPcV5zKEJQQl45Y3gyYF9peShib2pTemVVM2Iy PDdXclJiO3I1NVpzWFolUG8/bzV9R0lYZVUyS0tRfCo7CnphYFY4PElfY3FY YWpvT3xPKVVSN3A4S09sZjh0ZnJaTTZUeTZVaDxKODxvWG1UYXVoMStuRjFg bnR5XzdARER2Qgp6QUJwSU1FSXJIZDVMJllKOW0hXkdsQn5seHU5dFZSYHJZ Wm09QzMlLTVvMyE5YSlJcypWe0tGTkpLajk4YG52eGQKelpNRUJLSWlKQVZP U0c/YXJmNDBhVkpGdillR3cxRXpARy1hVSpue3B6YSF1Yz9Lajczd1E8emA+ fj9pRzEzUStyCno2RyNAXypyJjshKTBpTXYlKXlsamYka3xRJlNUdUo/KWZe dStHQjhePkNCUHJBc09eTyh2UWpkNVg7entTTyRDbAp6K0lSYXg/fDUxdlBB ZDhxQyZnVSlWbjAlUjl+ZD0/aV5KKTMwZSZgWXtEUTB4RVMtY2lJPyRQd2BC REIoPzBITksKel5adzJAO0ArMlRpNmBpKzUpVmNBKy1LPEFsa0c/QVV6R0Zs Sk5aUnRsK0cmWCl9a3xqYl84czs5OWw9fGFUfmg2CnplfGk7cj1FI205ZHkp S2d2ZjAzIVl6Kit0KTckVyQ4am1AJUlCP2NVa0M0MTRufWhhKFdIWkdFaTJp Q0g7K3hHeAp6PU9wKUlCRkw3VTFtRG92OVlhMk5RfSZ2aDZWWE8lQUx3d0Fv aXBpLVlyN2AxWE9RJD9Re3oze2MrYF4zTVpPeFgKekZQKkUqPFZnNkVBPllN Kj41UCl5MyVZR1Z6Wn18O1JpY1U8QHtncypZdmBLZCRzZ1pedmJfRnhYbC1i MGRQZTclCnpkYFF5YXdlM0d6RH5jKEJaWkFMXnp5Ul9XJCRuflZUPCRzZl55 REteWUBoNSM/KjlLck9SXntTZyZTKm8qMlJNKQp6Vj92KTw2YUI5TldIKXBN TF5NVSNOej9icFklaEN1RFJ3MSZ8RyZCaFpOdnczMkZRbj9JS2ctMHEwZWcl T1FKdVYKeldHN21SSGB0UGBiUGUlfkBBX2p1PiQqcSZFeVc4LXI8MmNKU0Qo TG5rOT0rI2xYUEV3YnxtcEQjWlctQUtjTCtnCno4TUtqWFhTPWdIT3tSbV49 N3NCM1Ijd3tuaDQ8PjRsY25CVkNOKE9FamhpJU4qT0hBdWJ+UmA+IX1fIUYy ZWZebAp6MTdjYGkpJUklTFloRHtTJHU+RnpOJF4hanxKSHVxdzlsJXtvbiF4 RFFsUzR5ZXY8IUVwQnw8NzdVQH0lX249PT4KeiRfQTFfKys7aCZ8OXRQQ1o2 eDthWkVsM2V7ZmpSVT9zYm9pX2Nlez8+TTx6QkxHJlVYJCZrLVp5NXpmZi14 dk8rCnpJS2k3SW1heU4tTjxpeUEoQkcxeXBXNktWe1B3dEtPN1g9SV9uV05W dDhYbGhNelRrNEF2YTFmVEN5a041TnAxQgp6ZGBZQTZYMHJLNyZYYXZ5VEEw bit7PGExPmIpSHdrYXNTangpfVF8cE9WSTxKYj1GSlp6OVJWTzFuaTRVcyFh JkAKenduM2NkMEFxSns0UmkxS1FzJi0/clI9cEVeNXk+YT1VSlVlYVltdF9S RGdIaUFyQUx9WTYwanl2WFNVS1RFYyVKCnotWD5xNF40TlpNI19haGxFNmhj e0Bnd1d3bGFJQC0zSGJtLUd2IT9Fam4qP14qakxJKzt4N3N+UnNkP095WXdF PQp6SE9AaXteY2pvKG0oaGtweDgpK25oSHplOUI+XnRWc3BiT0Rsa3dhS2Ex Sm1KKDVzQE5MSXYkdiFVZz9iMnA+fn4KemMjSCZkbEYmN0xAS1FZY2dnKD90 QD9kWH17Q2Y0c29MdnVwYHdPZk1NWWFVLSlSJE91OVF2T0VeYXBKPHtJMSV4 CnpPTWotYjRXTzlnN3tGWT52TSg/UD9YUCYmMldgOUJXNzIhTC15TlVeJjwx UD0+OyRYXiVtNTY5fE00NEllU2laWAp6Nzt9alJCbSpjbkApb1RSVDJzSnNL eU1tVG5sfFpjSm1hZXw/N0gpTXY4e3lIeyE4MWshTTJLNXtrKTFOJWw1MD8K ejhkdSpwPUNRNFdrZkw3fHdjcjRAbUY0ay1eY21TK0F5MXZJYyFsaTAtYFo2 QXRqNlFqWG5YTl56STJ+IStrZzRZCnp3SFRqSSYkJCtPKncwY2VKdG47RFV3 IVNEJDR6UFlVcGxjWiNeWUxGeCh+ZG0pUGYjJWV4UzM4d35MKEApb0NkTQp6 KUIjYFh3Q2FzPXEwYF58MTBOX3Q/ajBAOGB5N2A0RGZMfXhWUXpwfUJxQUds QWI/d2V6ZDNydHVNeik9I1VsT3EKem1tVT4xcjxPeVcld2I2OXpIK31RMjBh bT0/WW8jdiF6MkUrcng/RnEtbHpBO3IwMmZMRGE0NSZyK2pTQU5RQzhPCno1 NzRKY0c0e1dQeHc8I1RwN1pZWSlBRzlQQj1XenEoLVNAcmplbHFDcm80bCgq RmRJTSl1cT9qU1ZOPkEjZkxTVAp6R1M9VmVnUnlyOUtmRXJIVVZIQUU/Njl8 Zl85RkNJXj5AWkAkfnplUWFHPXY9Rl45OHVPTFlTezglTFRsUiNXPGIKei0o PitVMElhQDElY3MwKFpNQHVQJF4kXkJTPHJoOzhLM0tleztlQEwlRDw5Nlgk Pkc3V3xnUzJAQDlwZylMQiRmCnphVFQ5dUJqOXQ2Xn5MSjM8c0h2JldYYzdf P3MpJWVlRktOMXo4MiVRTHlxLSlXPk8/VjJhJFBEdUlGKVkzLW9MbQp6YDlr RH1QQEZuRnt0ZmJscUJLOW0rYDBNSVpwa2h8eko+SmNJPX50TD5HTDZnST9w OE5NNys2YlhKVkxfZlgpdkEKem9pRTUzOD9tVTs2MHp+e2wmRkFXbml0dEY+ RzJgUnImcyZ4d1E8dkQ+VnVxfTxYczU8cnc0QnZhb2o1cEEjQylGCnpOQDNZ dTsySCZ9cTQpODVBcEhMWFgqLXxucXp8I2RNV0FhMz1xQ05HanI+S0hpXig+ a2ptXm9fZ2A0aD90d2l4Jgp6PVpqbX1TTylPfSo7eHNwVUp8VHBFWEVxaT9F fSRMUmFKUW1LQWdDPT97MEgpOEdNVHZpZ0R8TXBLaWZVJm5DTj0KekB7PWBm dn5NO3o7VV96bl85e0Nxb15yfmNAVUF0JDY4OEtQX35zT0FvNUpEOGJ5dmlE IV50TUNKcyZvMTJWNUNSCno1bmBgOUNzO3EzO3omKVlVbkFLfUYrJik1UkNf V1FeUTQ/WUUzXnU5RXJvdmBAKVV4KXszTGc/e2NPJkwlWCF+Sgp6OUZGUU84 cTM4fXkjbT4oKDF+UD1nTi1VSzBPeGwjVHRvLVgpRD8+RGU+Wm87VyNadW5O YXN5U3dvPzVNPD5QQWkKem07T3ZPRTBwNyt6TGJOMlBuVV9nZjJSfEh6WUJP Zjt2UmVxPkckY0hfTHEyd0Amd1kpPXA0cXFke25RR1BCYz0/CnprbThSLUMp dlhSNGtpK3VaUFZJbzBHaVoqcWV3Ym0lO0JRQThzVnBOen09JmtAXmA3eEw4 I31iSjVFRWZCNkB5dgp6fDRnPXFsPUExNEdzKmY4fEI+dUBacmBafHt5bTd6 aXRFeTI2Z1M3Mmh0RT1UWkQ/R1VFfVVeYHk2QnFwS2g+STAKenRjMm9KQnFK enFOOU9eI2VYKnBmPk0rKVRsaUA4WSVMUjZCUzlRTXxoc0w3MzhPMUdYPVAp Ukxre2FgWnRwfS0lCnpwT3FRbFBwZHleJmsmYl5lQGdZKClRfGlAb1cpbXxH aDNeSl9RI0B9ajdWJCNxSSZVRDlLY3BPaGtga2ctJHdEbQp6eTVhK19tJHRM TVlqdiRhUDVjeEtOe0lAaFN9eWtOVjt6UiRUeFp3THd7dnIlb0MpQ31VejY/ O1VoPUMqdThAQ1IKelMzTHM3JSElS0tYOT50QmVkVF9tZFZaaUNgRDRtZTkw eldTKTZSezVeK1pUfSNeSUUxRFIpTFclbncqPSVJUSRmCnptRytpK3Q2S01i VXFAblJ4UiROZzJ9Myomd2tTKDAkeDY9ZXJ+SGhkdzc/VSVETmVafF54MGk7 P1JYfGYxSWVUMAp6Tk1DampETXZ3Z04lbisjVEM7VF9UdERmUyZLfmdgKWVL UXpsRHx+RCFPMzs5bFRuK09pMjMmZnsleFNLUDgqOEcKekIkfWlBOU44S0d2 Tk5kYGc9OWl3d1gxfVM8ZkZ+VzczQDkqSWJGdjNSPDlNd1pScE4/O0hMVF8p YHFOYXt6TD1HCno1UV5RYGJ2fnUlVURxfTdiejFESjhaYHdwNTlCZSpGI2w9 NXVMPUd4cWN5QVJlWSFfeWtMN2piditMX3EqTF55Pgp6bCFGTCV6NG1xT3Nv IVBiaFlsNzFIfkhQWUA7YHJnU0tFaD45KkBTTThhMXxsMV5nQGh0aUVmU3Fv MXVZbnxyVVYKenF2PG5oPXQhVEJ6IzI0JU9nMkljdEUhPjs0OVhvNEZWJENA QXgjSkVGVnp7K24kQG0lcUZDUSs0fnJfO0soflJQCnpqVz5ZP1drRzVGYkhx KT5CdikoNG0rM1J2R08qYFNGWXQhVjFBT29Fc0l2NyY2ZFFeU2UjR2liWF8t YzJrcDdQRgp6dUAje1AlN3hhd21KYUJUbnozNy1RbGRZSGBgb1hod2V6YG04 bndTQnotdVNNU3Q9K2clbkYwdHhDPm53NiZMKWQKeiF1UCUqZG9ITEo9SCgt RTNHeyk0YUBMZ0p3TCFmRiQhTXpDYVlBMTkpdVM4WXRoRCRIPXk/T293fkk3 eD9tOF9rCnp0cmg0UjM3PXNEQFNLRmZVX3x9ez9yOChhOXsmO1YkX1dJNVVi dFFjS2xgam1SQjRXV20rK1psanxYNV4qX1kmSgp6ejBVaVRALUZ2ZFFabkxI UUsqfnBfJWhCJnlrRW9xVT5KblBCckZfNVROQmNGWUtXdCNBK3tpITNMKik3 emQ9aHIKekFgYnhCRkY/TE4yZV8+TmtCQCU3KW5tNCNJMGMwemxtVDN2TGNL WFl7RG5XdnlKY0VAJFdoY20jKVcjYEB5fF85CnpUOE1lcHUmbzshUEFDKShM VCU8cGt9bzYmZj9kcmhjMkp8MXByUUFSXkUxXkQhenwmPjBLUFlyVXNoUTdv dD8jdgp6MG9ySnQkbksjMXstRyM0ZVVeaktkSTklN1ZpPn1sa01ITWt7aVdO Jm9KYGc5eFJBNUx2VnVqQj52cXVyRjg8KEkKejdyYkF8eSRgK0BYUSMlVU0h c2UmI196X2hnK3gtKTg5Sz1pSlNsPHhOSjhEbSNrYztCVlptPEtDN2dieEYt VUhRCnpkcHtALWE9RHQ5OFdrOE81fCoqYE1hVCFRZXFnWT1nOEpPam49NjN+ aSQqPElheG41OCh6WkNBUDUyUUtfeX42Uwp6U3MlMCFTRFhxTzxZNW13YVcp PzE8MC1DQXhgXl8lKClCVFBaZW9IU0dITE96ISUla202VXw+SkViNTBgVU1p PFUKek5EdEZfV189OWdfKCg0aVU5XllmPVRMbnRXS2JuK2l5Z0d5YEpkbTx3 PmBUPyRnUjtNPGY2JWpxfGM8K3h0Y0E/CnpgKzQ2eiR4dGw/I2ljXyR0TzZ5 SExQZnx2S0clb2RBXlZzN0cjWjJLMDFpTGhCaWc5V211eWhpRTR2Qj4jYVI7 fQp6bGtRMzkhTl45VGQ+SH1Se29IcEVYemZFRC1eQlhjcGV8JD0kcXp8LSFr YjsjWDl0UyFiTSFtRmhNK25Ydlg1KVoKelpCQGBSbTchV1JsMGhVbDtuJGNa eng2bDcqa0FRTGVNZ1Zob3h7dEdPRClONF4wVWFjQjMrUmo+MVRxdHsxeyhi Cno8TSZrNE1mKiRwMj5WdW9lNTA3SSQkbGJSaUVKQzE1N2o9dkhrU24wVXF+ cDwmdFNoQlBASjdIRGRDT1JiPWN4aAp6UUNIeEUrT09sdEMrdDlkaGh3UGMt UkdkdzlkI2FJRkk9dTlwPGR3YXlWc3I7V3JkbGVpR0x9JiYldE0wYCtfSTwK TlV4MVo1eE5oazB7e1MjbmM9LVNUCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK CmRpZmYgLS1naXQgYS9wa2cvd2luMzIvaW5zdGFsbGVyLmlzcy5pbiBiL3Br Zy93aW4zMi9pbnN0YWxsZXIuaXNzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjRiM2MwNDQKLS0tIC9kZXYvbnVsbAorKysgYi9w a2cvd2luMzIvaW5zdGFsbGVyLmlzcy5pbgpAQCAtMCwwICsxLDE1MSBAQAor I2RlZmluZSBNeUFwcE5hbWUgInBnQWRtaW4gNCIKKyNkZWZpbmUgTXlBcHBW ZXJzaW9uICIwLjAiCisjZGVmaW5lIE15QXBwUHVibGlzaGVyICJUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtIgorI2RlZmluZSBNeUFwcFVSTCAid3d3 LnBnYWRtaW4ub3JnIgorI2RlZmluZSBNeUFwcEV4ZU5hbWUgInBnQWRtaW40 LmV4ZSIKKyNkZWZpbmUgTXlBcHBJRCAiQzE0RjY0RTctRENCOS00REUxLTg1 NjAtMTZGMDhGQ0ZGNjRFIgorI2RlZmluZSBNeUFwcEZ1bGxWZXJzaW9uICIw LjAiCisKK1tTZXR1cF0KK0FwcElkPXsjTXlBcHBOYW1lfXsjTXlBcHBWZXJz aW9ufQorQXBwTmFtZT17I015QXBwTmFtZX0KK0FwcFZlcnNpb249eyNNeUFw cEZ1bGxWZXJzaW9ufQorQXBwUHVibGlzaGVyPXsjTXlBcHBQdWJsaXNoZXJ9 CitBcHBQdWJsaXNoZXJVUkw9eyNNeUFwcFVSTH0KK0FwcFN1cHBvcnRVUkw9 eyNNeUFwcFVSTH0KK0FwcFVwZGF0ZXNVUkw9eyNNeUFwcFVSTH0KK0RlZmF1 bHREaXJOYW1lPXtwZn1ceyNNeUFwcE5hbWV9XHsjTXlBcHBWZXJzaW9ufQor RGlzYWJsZVdlbGNvbWVQYWdlPW5vCitEaXNhYmxlUHJvZ3JhbUdyb3VwUGFn ZT15ZXMKK0xpY2Vuc2VGaWxlPVJlc291cmNlc1xsaWNlbnNlLnJ0ZgorT3V0 cHV0QmFzZUZpbGVuYW1lPXNldHVwCitTZXR1cEljb25GaWxlPVJlc291cmNl c1xwZ0FkbWluNC5pY28KK0NvbXByZXNzaW9uPWx6bWEKK1NvbGlkQ29tcHJl c3Npb249eWVzCitQcml2aWxlZ2VzUmVxdWlyZWQ9YWRtaW4KK0NoYW5nZXNF bnZpcm9ubWVudD15ZXMKKztVbmluc3RhbGxGaWxlc0Rpcj17YXBwfVx7I015 QXBwVmVyc2lvbn0KKworW0xhbmd1YWdlc10KK05hbWU6ICJlbmdsaXNoIjsg TWVzc2FnZXNGaWxlOiAiY29tcGlsZXI6RGVmYXVsdC5pc2wiCisKK1tGaWxl c10KK1NvdXJjZTogIlJlc291cmNlc1xTcGxhc2hTY3JlZW4uYm1wIjsgRGVz dERpcjoge3RtcH07IEZsYWdzOiBkb250Y29weQorU291cmNlOiAiUmVsZWFz ZVwqIjsgRGVzdERpcjogInthcHB9IjsgRmxhZ3M6IGlnbm9yZXZlcnNpb24g cmVjdXJzZXN1YmRpcnMgY3JlYXRlYWxsc3ViZGlyczsKK1NvdXJjZTogIlJl c291cmNlc1wzcmRfcGFydHlfbGljZW5zZXMudHh0IjsgRGVzdERpcjogInth cHB9IjsKKworO1NvdXJjZTogIlJlc291cmNlc1xTcGxhc2hTY3JlZW4uYm1w IjsgRGVzdERpcjoge3RtcH07IEZsYWdzOiBkb250Y29weQorO1NvdXJjZTog IlJlbGVhc2VcdmVfcHl0aG9uXCoiOyBEZXN0RGlyOiAie2FwcH1cdmVfcHl0 aG9uIjsgRmxhZ3M6IGlnbm9yZXZlcnNpb24gcmVjdXJzZXN1YmRpcnMgY3Jl YXRlYWxsc3ViZGlyczsKKztTb3VyY2U6ICJSZWxlYXNlXHJ1bnRpbWVcKiI7 IERlc3REaXI6ICJ7YXBwfVxydW50aW1lIjsgRmxhZ3M6IGlnbm9yZXZlcnNp b24gcmVjdXJzZXN1YmRpcnMgY3JlYXRlYWxsc3ViZGlyczsKKztTb3VyY2U6 ICIuLlwuLlx3ZWJcKiI7IERlc3REaXI6ICJ7YXBwfVx3ZWIiOyBGbGFnczog aWdub3JldmVyc2lvbiByZWN1cnNlc3ViZGlycyBjcmVhdGVhbGxzdWJkaXJz OworO1NvdXJjZTogIlJlc291cmNlc1wzcmRfcGFydHlfbGljZW5zZXMudHh0 IjsgRGVzdERpcjogInthcHB9IjsKKworW1J1bl0KK0ZpbGVuYW1lOiAie2Fw cH1ccnVudGltZVx7I015QXBwRXhlTmFtZX0iOyBEZXNjcmlwdGlvbjogIntj bTpMYXVuY2hQcm9ncmFtLHsjU3RyaW5nQ2hhbmdlKE15QXBwTmFtZSwgJyYn LCAnJiYnKX19IjsgRmxhZ3M6IHJ1bmFzY3VycmVudHVzZXIgbm93YWl0IHBv c3RpbnN0YWxsIHNraXBpZnNpbGVudAorCitbQ3VzdG9tTWVzc2FnZXNdCitl bmdsaXNoLk5ld2VyVmVyc2lvbkV4aXN0cz1BIG5ld2VyIHZlcnNpb24gb2Yg eyNNeUFwcE5hbWV9CisKK1tSZWdpc3RyeV0KK1Jvb3Q6IEhLTE07IFN1Ymtl eTogIlNvZnR3YXJlXHsjTXlBcHBOYW1lfVx7I015QXBwVmVyc2lvbn0iOyBG bGFnczogdW5pbnNkZWxldGVrZXlpZmVtcHR5CitSb290OiBIS0xNOyBTdWJr ZXk6ICJTb2Z0d2FyZVx7I015QXBwTmFtZX1ceyNNeUFwcFZlcnNpb259Ijsg RmxhZ3M6IHVuaW5zZGVsZXRla2V5CitSb290OiBIS0xNOyBTdWJrZXk6ICJT b2Z0d2FyZVx7I015QXBwTmFtZX1ceyNNeUFwcFZlcnNpb259IjsgVmFsdWVU eXBlOiBzdHJpbmc7IFZhbHVlTmFtZTogIkluc3RhbGxQYXRoIjsgVmFsdWVE YXRhOiAie2FwcH0iCitSb290OiBIS0xNOyBTdWJrZXk6ICJTb2Z0d2FyZVx7 I015QXBwTmFtZX1ceyNNeUFwcFZlcnNpb259IjsgVmFsdWVUeXBlOiBzdHJp bmc7IFZhbHVlTmFtZTogIlZlcnNpb24iOyBWYWx1ZURhdGE6ICJ7I015QXBw RnVsbFZlcnNpb259IgorCisKK1tDb2RlXQordmFyCisvLyBSZXF1aXJlZCBm b3IgU3BsYXNoIFNjcmVlbi4KK1NwbGFzaEZpbGVOYW1lIDogU3RyaW5nOwor U3BsYXNoRm9ybSA6IFRGb3JtOworU3BsYXNoSW1hZ2UgOiBUQml0bWFwSW1h Z2U7CisKKworcHJvY2VkdXJlIE9wZW5TcGxhc2g7CitiZWdpbgorIFNwbGFz aEZpbGVOYW1lIDo9IEV4cGFuZENvbnN0YW50ICgne3RtcH1cU3BsYXNoU2Ny ZWVuLmJtcCcpOworIEV4dHJhY3RUZW1wb3JhcnlGaWxlICgnU3BsYXNoU2Ny ZWVuLmJtcCcpOworIFNwbGFzaEZvcm0gOj0gVEZvcm0uY3JlYXRlKG5pbCk7 Cisgd2l0aCBTcGxhc2hGb3JtIGRvCisgYmVnaW4KKyBCb3JkZXJTdHlsZSA6 PSBic05vbmU7CisgUG9zaXRpb24gOj0gcG9TY3JlZW5DZW50ZXI7CisgLy8g QWRqdXN0IHRoZSBoZWlnaHQgYW5kIHdpZHRoIG9mIHRoZSBTcGxhc2hGb3Jt IHRvIHRoZSBzaXplIG9mIHlvdXIgc3BsYXNoIGltYWdlCisgLy9DbGllbnRX aWR0aCA6PSAzMDA7CisgLy9DbGllbnRIZWlnaHQgOj0gMTAzOworIGVuZDsK KyBTcGxhc2hJbWFnZSA6PSBUQml0bWFwSW1hZ2UuQ3JlYXRlKFNwbGFzaEZv cm0pOworIHdpdGggU3BsYXNoSW1hZ2UgZG8KKyBiZWdpbgorIEJpdG1hcC5M b2FkRnJvbUZpbGUoU3BsYXNoRmlsZU5hbWUpOworIFN0cmV0Y2ggOj0gdHJ1 ZTsKKyBBbGlnbiA6PSBhbENsaWVudDsKKyBQYXJlbnQgOj0gU3BsYXNoRm9y bTsKKyBlbmQ7CitlbmQ7CisKK3Byb2NlZHVyZSBTaG93U3BsYXNoOworYmVn aW4KKyB3aXRoIFNwbGFzaEZvcm0gZG8KKyBiZWdpbgorIFNob3c7CisgUmVw YWludDsKKyBlbmQ7CisgQnJpbmdUb0Zyb250QW5kUmVzdG9yZTsKK2VuZDsK KworcHJvY2VkdXJlIENsb3NlU3BsYXNoOworYmVnaW4KKyB3aXRoIFNwbGFz aEZvcm0gZG8KKyBiZWdpbgorIENsb3NlOworIEZyZWU7CisgZW5kOworIEJy aW5nVG9Gcm9udEFuZFJlc3RvcmU7CitlbmQ7CisKK3Byb2NlZHVyZSBDdXJT dGVwQ2hhbmdlZChDdXJTdGVwOiBUU2V0dXBTdGVwKTsKK3ZhcgorIHZhbHVl IDogc3RyaW5nOworYmVnaW4KKyBpZiBDdXJTdGVwID0gc3NJbnN0YWxsIHRo ZW4gYmVnaW4KKworIHZhbHVlIDo9IEV4cGFuZENvbnN0YW50KCd7YXBwfScp ICsgJ1x2ZV9weXRob25cTGliXHNpdGUtcGFja2FnZXMnICsgJzsnICsKKyBF eHBhbmRDb25zdGFudCgne2FwcH0nKSArICdcdmVfcHl0aG9uXExpYicgKyAn OycgKworIEV4cGFuZENvbnN0YW50KCd7YXBwfScpICsgJ1x2ZV9weXRob25c TGliXGxpYi10aycgKyAnOycgKworIEV4cGFuZENvbnN0YW50KCd7YXBwfScp ICsgJ1x2ZV9weXRob25cRExMcyc7CisKKyBSZWdXcml0ZVN0cmluZ1ZhbHVl KEhLRVlfQ1VSUkVOVF9VU0VSLCdTb2Z0d2FyZVxwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW1ccGdBZG1pbiA0JywgJ1B5dGhvblBhdGgnLCB2YWx1ZSk7Cisg ZW5kOworZW5kOworCisvLyBJbml0aWFsaXplIHRoZSBpbnN0YWxsZXIKK3By b2NlZHVyZSBJbml0aWFsaXplV2l6YXJkOworYmVnaW4KKyBPcGVuU3BsYXNo OworIFNob3dTcGxhc2g7CisgQ2xvc2VTcGxhc2g7CitlbmQ7CisKKy8vIGZp bmQgY3VycmVudCB2ZXJzaW9uIGJlZm9yZSBpbnN0YWxsYXRpb24KK2Z1bmN0 aW9uIEluaXRpYWxpemVTZXR1cDogQm9vbGVhbjsKK3ZhciBWZXJzaW9uOiBT dHJpbmc7CitiZWdpbgorICBpZiBSZWdWYWx1ZUV4aXN0cyhIS0VZX0xPQ0FM X01BQ0hJTkUsJ1NvZnR3YXJlXHsjTXlBcHBOYW1lfVx7I015QXBwVmVyc2lv bn0nLCAnVmVyc2lvbicpIHRoZW4KKyAgICBiZWdpbgorICAgICAgUmVnUXVl cnlTdHJpbmdWYWx1ZShIS0VZX0xPQ0FMX01BQ0hJTkUsJ1NvZnR3YXJlXHsj TXlBcHBOYW1lfVx7I015QXBwVmVyc2lvbn0nLCAnVmVyc2lvbicsIFZlcnNp b24pOworICAgICAgaWYgVmVyc2lvbiA+ICd7I015QXBwRnVsbFZlcnNpb259 JyB0aGVuCisgICAgICAgIGJlZ2luCisgICAgICAgICAgTXNnQm94KEV4cGFu ZENvbnN0YW50KCd7Y206TmV3ZXJWZXJzaW9uRXhpc3RzfScgKyAnKCcgKyBW ZXJzaW9uICsgJykgaXMgYWxyZWFkeSBpbnN0YWxsZWQnICksIG1iSW5mb3Jt YXRpb24sIE1CX09LKTsKKyAgICAgICAgICBSZXN1bHQgOj0gRmFsc2U7Cisg ICAgICAgIGVuZAorICAgICAgZWxzZQorICAgICAgICBiZWdpbgorICAgICAg ICAgIFJlc3VsdCA6PSBUcnVlOworICAgICAgICBlbmQKKyAgICBlbmQKKyAg ZWxzZQorICAgIGJlZ2luCisgICAgICBSZXN1bHQgOj0gVHJ1ZTsKKyAgICBl bmQKK2VuZDsK --001a1144e04aa9bb66053341f2d0 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a1144e04aa9bb66053341f2d0--