Content-Type: multipart/related; start=; boundary=----------qHryB7dFAJpRddSST4zzSx Content-Location: http://support.microsoft.com/kb/318785 Subject: =?utf-8?Q?How=20to=20determine=20which=20versions=20and=20service=20pack=20levels=20of=20the=20Microsoft=20.NET=20Framework=20are=20installed?= MIME-Version: 1.0 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=318785.htm Content-Type: text/html; charset=utf-8; name=318785.htm Content-ID: Content-Location: http://support.microsoft.com/kb/318785 Content-Transfer-Encoding: Quoted-Printable How to determine which versions and service pack levels of the Microsof= t .NET Framework are installed = = <= meta name=3D"ms.sup_cid" content=3D"318785" /><= meta name=3D"robots" content=3D"" />= = =
= =
oneMscomBlade,oneMsomNav,oneMscomFooter,
= =
= = Sign in
=
=
=
3D"Select" = =
= =

How to deter= mine which versions and service pack levels of the Microsoft .NET Framew= ork are installed

Article ID: 318785 - View product= s that this article applies to.
This article was previously published under Q318785
Expand all | C= ollapse all

On This Page

= Summary

This article describ= es how to determine which version(s) and service pack level(s) of the Mi= crosoft .NET Framework are installed.

More information

Use the registry inf= ormation below to determine which version(s) and service pack level(s) o= f the Microsoft .NET Framework are installed.

To do this, follow= ing the steps below:
  1. Click Start, type regedit in the Search programs and files box (click Run and type regedit i= n the Run Dialogbox in Windows XP), an= d then press Enter.
  2. In the Registry Editor, locate the Registry Key Name in the table below and check the val= ue for the related .NET Framework.
    Collapse this imageExpand this i= mage
    3D""

    Collapse thi= s tableExpand this table
    Name: Version, Type: REG_SZ, Data: 4.0.30319.0Name: Install, Type: REG_DWORD, Data: 1<= tr><= td>HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50= 727

    HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed C= omponents\{78705f0d-e8db-4b2d-8193-982bdda15ecd}

    .NET FrameworkService Pack LevelRegistry Key NameValue
    4 - Client<= /td>Original ReleaseHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\N= ET Framework Setup\NDP\v4\ClientName: Install, Type: = REG_DWORD, Data: 1
    HKEY_LO= CAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client
    4 - FullOriginal ReleaseHKEY_LOCAL_MACHI= NE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\FullName: I= nstall, Type: REG_DWORD, Data: 1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\= NDP\v4\FullName: Version, Type: REG_SZ, Data: = 4.0.30319.0
    3.5Original ReleaseHK= EY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Frame= work Setup\NDP\v3.5Name: SP, Type: REG_DWORD, Dat= a: 0
    3.5Service Pack 1HKEY_LOC= AL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5Name:= Install, Type: REG_DWORD, Data: 1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework S= etup\NDP\v3.5Name: SP, Type: REG_DWORD, Data: = 1
    3.0Original ReleaseFollow the d= eployment and detection guidance in this document: http://msdn.microsoft.com/e= n-us/library/aa480173.aspx
    (http://msdn.microsoft.com/en-us/library/aa480173.aspx)
    HKEY_LOCAL_MACHINE\SOFTWAR= E\Microsoft\NET Framework Setup\NDP\v3.0Name: SP, Type: = REG_DWORD, Data: 0
    3.0Service Pa= ck 1HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\N= DP\v3.0Name: Install, Type: REG_DWORD, Data: 1=
    HKEY_LOCAL_MACHINE\SOFTWARE\Micr= osoft\NET Framework Setup\NDP\v3.0Name: SP, Type: REG= _DWORD, Data: 1
    3.0Service Pack 2HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.= 0Name: Install, Type: REG_DWORD, Data: 1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\= NET Framework Setup\NDP\v3.0Name: SP, Type: REG_DWORD= , Data: 2
    2.0Original ReleaseName: Install, Type: REG_DWORD, Data: 1
    HKEY_LOCAL_MACHINE\Software\Microso= ft\NET Framework Setup\NDP\v2.0.50727 Name: SP, Type: REG_DWORD, Data: 0
    2.0Service Pack= 1HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP= \v2.0.50727 Name: Install, Type: REG_DWORD, Data:= 1
    HKEY_LOCAL_MACHINE\Software= \Microsoft\NET Framework Setup\NDP\v2.0.50727 Name: SP, = Type: REG_DWORD, Data: 1
    2.0Serv= ice Pack 2HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework S= etup\NDP\v2.0.50727 Name: Install, Type: REG_DWORD, Data: 1
    HKEY_LOCAL_MACHINE\= Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 Name: = SP, Type: REG_DWORD, Data: 2
    1.1 (on = 32-bit operating systems)Original ReleaseHKEY_LOCAL_MA= CHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322Name:= Install, Type: REG_DWORD, Data: 1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework S= etup\NDP\v1.1.4322Name: SP, Type: REG_DWORD, Data= : 0
    1.1 (on 32-bit operating systems)Se= rvice Pack 1HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework= Setup\NDP\v1.1.4322Name: Install, Type: REG_DWORD, Data: 1
    1.1 (on 64-bit operating systems)Original ReleaseHKLM\SOFTWARE\Wow6432Node\Microsoft\NET Fr= amework Setup\NDP\v1.1.4322Name: Install, Type: REG_D= WORD, Data: 1
    HKLM\SOFTWAR= E\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322Name: = SP, Type: REG_DWORD, Data: 0
    1.1 (= on 64-bit operating systems)Service Pack 1HKLM\SOFTWAR= E\Wow6432Node\Microsoft\NET Framework Setup\NDP\v1.1.4322Name: = Install, Type: REG_DWORD, Data: 1
    = HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setu= p\NDP\v1.1.4322Name: SP, Type: REG_DWORD, Data: <= b>1
    1.0 (on supported platforms except for Windows = XP Media Center and Tablet PC)Original Release

    = HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\= {78705f0d-e8db-4b2d-8193-982bdda15ecd}

    Name: Version= , Type: REG_SZ, Data: 1.0.3705.0
    1.0 = (on supported platforms except for Windows XP Media Center and Tablet PC= )Service Pack 1

    HKEY_LOCAL_MACHINE\Software\Mic= rosoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdd= a15ecd}

    Name: Version, Type: REG_SZ, Data= : 1.0.3705.1
    1.0 (on supported platforms except = for Windows XP Media Center and Tablet PC)Service Pack 2Name: = Version, Type: REG_SZ, Data: 1.0.3705.2
    1.0 (on supported platforms except for Windows XP Media Center and= Tablet PC)Service Pack 3

    HKEY_LOCAL_MACHINE\So= ftware\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8= 193-982bdda15ecd}

    Name: Version, Type: REG_SZ= , Data: 1.0.3705.3
    1.0 (shipped with Windows= XP Media Center 2002/2004 and Tablet PC 2004)Service Pack 2

    HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Install= ed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24}

    Na= me: Version, Type: REG_SZ, Data: 1.0.3705.2
    1.0 (shipped with Windows XP Media Center 2005 and Tablet PC 2= 005)Service Pack 3

    HKEY_LOCAL_MACHINE\Software\= Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-905= 1954BAA24}

    Name: Version, Type: REG_SZ, D= ata: 1.0.3705.3

Recommended Deployment Detection

To detect the existence of a specific .NET Framework vers= ion regardless of the Service Pack level, or to detect a service pack le= vel or a later service pack level of the same .NET Framework version, us= e the registry information that is listed in the following table.
= Click here to view or hide detailed information =

Collapse this= tableExpand this table
4 - FullService Pack 1 or GreaterSP >=3D 2HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Component= s\{78705f0d-e8db-4b2d-8193-982bdda15ecd} HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Component= s\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24}
.NET FrameworkService Pack Level= Registry Key NameValue
4 - ClientAny VersionHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\= NET Framework Setup\NDP\v4\ClientInstall =3D 1
Any VersionHKEY_LOCAL_MACHINE\SOFTWARE= \Microsoft\NET Framework Setup\NDP\v4\FullInstall =3D 1
3.5Any VersionHKEY_LOCAL_MACHINE\SOFT= WARE\Microsoft\NET Framework Setup\NDP\v3.5Install =3D 1
3.5Service Pack 1 or GreaterHKEY_LOC= AL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5SP &g= t;=3D1
3.0Any VersionHKEY_LOCA= L_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0Instal= l =3D 1
3.0Service Pack 1 or GreaterHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0= SP >=3D 1
3.0Service Pack 2 or = GreaterHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework = Setup\NDP\v3.0SP >=3D 2
2.0Any = VersionHKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework = Setup\NDP\v2.0.50727 Install =3D 1
2.0HKEY_LOCAL_MACHINE\Software\Mi= crosoft\NET Framework Setup\NDP\v2.0.50727 SP >=3D 1
2.0Service Pack 2 or GreaterHKEY_LOCA= L_MACHINE\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727
1.1Any VersionHK= EY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322Install =3D 1
1.1Service Pack 1 or Gr= eaterHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Se= tup\NDP\v1.1.4322SP >=3D 1
1.0A= ny VersionHKEY_LOCAL_MACHINE\Software\Microsoft\.NET Framew= ork\Policy\v1.0Name: 3705, Type: REG_SZ, exists
1.0 (on supported platforms except for Windows XP Media = Center and Tablet PC)Service Pack 1 or GreaterH= KEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{= 78705f0d-e8db-4b2d-8193-982bdda15ecd} Version >=3D 1.0.3705.= 1
1.0 (on supported platforms except for Windows XP Med= ia Center and Tablet PC)Service Pack 2 or GreaterVersion >=3D 1.0.37= 05.2
1.0 (on supported platforms except for Windows XP = Media Center and Tablet PC)Service Pack 3 or GreaterHKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Compon= ents\{78705f0d-e8db-4b2d-8193-982bdda15ecd} Version >=3D 1.0= .3705.3
1.0 (shipped with Windows XP Media Center 2002/= 2004 and Tablet PC 2004)Service Pack 2 or GreaterVersion >=3D 1.0.37= 05.2
1.0 (shipped with Windows XP Media Center 2005 and= Tablet PC 2005)Service Pack 3 or GreaterHKEY_L= OCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{FDC11= A6F-17D1-48f9-9EA3-9051954BAA24} Version >=3D 1.0.3705.3

References

loadTOCNode(1, 'references');
For more information about the benefits of the .NET Framework, click the= following article number to view the article in the Microsoft Knowledge= Base:
829019=
(http://support.microsoft.com/kb/829019/ )
Benefits of the Microsoft .NET Framework

For more information about Microsoft=E2=80=99s currently suppo= rted products, visit the Microsoft Product Support Lifecycle
(http://go.microsoft.com/fwlink/?LinkId=3D164675)
website.

For more information about the Windows registry, click the following art= icle number to view the article in the Microsoft Knowledge Base:

=
256986 Windows registry information for advanced users

Pro= perties

Article ID: 318785 - Last Review: December 24, 2012 -= Revision: 30.0
Applies to
  • Microsoft .NET Framework 1.0
  • Microsoft = .NET Framework 1.1
  • Microsoft .NET Framework 2.0
  • Microsof= t .NET Framework 2.0 Service Pack 1 (x86)
  • Microsoft .NET Framewo= rk 2.0 Service Pack 2
  • Microsoft .NET Framework 3.0
  • Micro= soft .NET Framework 3.0 Service Pack 1
  • Microsoft .NET Framework = 3.0 Service Pack 2
  • Microsoft .NET Framework 3.5
  • Microsof= t .NET Framework 3.5 Service Pack 1
  • Microsoft .NET Framework 4
Keywords:=C2=A0 kbdownload kbinfo kbsetup KB3= 18785
=

Give Feedback

 
Was this information help= ful?
= Yes
No
Somewhat
=
How much effort did you personally put forth= to use this article?
Very low
L= ow
Moderate
<= td class=3D"ANSWERTEXT">High
V= ery high
Tell us why and what can we do to improve this information<= /div>
<= /td>
Thank you! Your = feedback is used to help us improve our support content. For more assist= ance options, please visit the = Help and Support Home Page.
Article Translations
3D""StatsDotNet.disabled=3Dfalse;StatsDotNet.e= nableCollTierParams=3Dtrue;StatsDotNet.host=3D'http\x3a\x2f\x2fsupport.m= icrosoft.com\x2fLTS\x2fdefault.aspx';StatsDotNet.ssId=3D'1';StatsDotNet.= siteLcId=3D'2057';StatsDotNet.SiteCulture=3D'en-gb';StatsDotNet.SsVersio= n=3D'GSS8.0';StatsDotNet.url=3D'\x2fdefault.aspx';StatsDotNet.ContentCul= ture =3D'en-us';StatsDotNet.contentType=3D'kb';StatsDotNet.contentLn=3D'= 1033';StatsDotNet.contentId=3D'318785';StatsDotNet.platform=3D'windows n= t 5.1';StatsDotNet.eventCollectionId=3D1;StatsDotNet.siteBrandId=3D'1';S= tatsDotNet.onUnloadTimeout=3D300;StatsDotNet.ltsIdleTimeout=3D5000;Stats= DotNet.userAgentString=3D'mozilla\x2f5.0 \x28compatible\x3b msie 9.0\x3b= windows nt 5.1\x3b trident\x2f5.0\x29';StatsDotNet.PassportStatus=3D0;S= tatsDotNet.ContentProperties=3D'6\x3d9\x7c7\x3d30.0\x7c9\x3dkbAudGeneral= User kbAudEndUser kbAudDeveloper kbAudITPRO \x7c';StatsDotNet.flexValue2= =3D'32';StatsDotNet.flexValue8=3D'0';=
= =
  • =
  • =
  • =
  • =
  • = = = =
    = = = = = = = = = = = ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=favicon.ico Content-Type: image/x-icon; name=favicon.ico Content-Location: http://www.microsoft.com/favicon.ico?v2 Content-Transfer-Encoding: Base64 AAABAAYAgIAQAAAAAABoKAAAZgAAAEhIEAAAAAAA6A0AAM4oAAAwMBAAAAAAAGgG AAC2NgAAICAQAAAAAADoAgAAHj0AABgYEAAAAAAA6AEAAAZAAAAQEBAAAAAAACgB AADuQQAAKAAAAIAAAAAAAQAAAQAEAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAA AAD///8A76QAAAC5/wAAun8AIlDyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzIiIiIiIiIiIiIiIiIiIiIiIi IiIiIiIiIiIiIiIiIAAAAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAMzMzMzMzMzMzMzMzMzMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAD MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERFVV VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVAAAARERERERERERERERERERERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQAAAE REREREREREREREREREREREREREREREREREREREREVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVUAAABERERERERERERERERERERERERERERERERERERERERAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAD///////////////////////////////////////////// //////////////////////////////////////////////////////////////// //////////////////8AAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA AAAAAAAH4AAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAKAAAAEgAAACQAAAAAQAEAAAA AACADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A76QAAAC5/wAAun8AIlDyAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMz MzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMz MzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMz MzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMz MzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMz MzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMz MzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMz MzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMz MzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIi IiIiIiIiIgAAMzMzMzMzMzMzMzMzMzMzMzMiIiIiIiIiIiIiIiIiIiIiIgAAMzMz MzMzMzMzMzMzMzMzMzMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVV VVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVV VVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVV VVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVV VVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVV VVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVV VVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVV VVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVV VVVVVVVVVQAARERERERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERE RERERERERERERERERERVVVVVVVVVVVVVVVVVVVVVVQAARERERERERERERERERERE RERVVVVVVVVVVVVVVVVVVVVVVQAAREREREREREREREREREREREQAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAD///////////8AAAD///////////8AAAD///////////8A AAD///////////8AAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAA AAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAPAAAAAAAAAAoAAAAMAAAAGAA AAABAAQAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wDvpAAAALn/AAC6 fwAiUPIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIiIiIiIiIiIiIiIAMzMzMzMzMzMzMzMyIi IiIiIiIiIiIiIAMzMzMzMzMzMzMzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERFVV VVVVVVVVVVVVUARERERERERERERERFVVVVVVVVVVVVVVUARERERERERERERERAAA AYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAA AYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAA AYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAA AYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAD///////8AAP// /////wAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAA AYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAA AYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAA AYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAACgA AAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AO+k AAAAuf8AALx7AB9M+QAiUPIA96YAAAC6fwDzpgAAHk72ACNO9ADzpAAAALx9AAC6 fQAAAAAAIiIiIiIiIsADMzMzMzMzMyIiIiIiIiLAAzMzMzMzMzMiIiIiIiIiwAMz MzMzMzMzIiIiIiIiIsADMzMzMzMzMyIiIiIiIiLAAzMzMzMzMzMiIiIiIiIiwAMz MzMzMzMzIiIiIiIiIsADMzMzMzMzMyIiIiIiIiLAAzMzMzMzMzMiIiIiIiIiwAMz MzMzMzMzIiIiIiIiIsADMzMzMzMzMyIiIiIiIiLAAzMzMzMzMzMiIiIiIiIiwAMz MzMzMzMzIiIiIiIiIsADMzMzMzMzMyIiIiIiIiLAAzMzMzMzMzOZmZmZmZmZcAMz MzMzMzMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqqqqqqqUATu 7u7u7u7uZmZmZmZmZrANiIiIiIiIiGZmZmZmZmawDYiIiIiIiIhmZmZmZmZmsA2I iIiIiIiIZmZmZmZmZrANiIiIiIiIiGZmZmZmZmawDYiIiIiIiIhmZmZmZmZmsA2I iIiIiIiIZmZmZmZmZrANiIiIiIiIiGZmZmZmZmawDYiIiIiIiIhmZmZmZmZmsA2I iIiIiIiIZmZmZmZmZrANiIiIiIiIiGZmZmZmZmawDYiIiIiIiIhmZmZmZmZmsA2I iIiIiIiIZmZmZmZmZrANiIiIiIiIiGZmZmZmZmawDYiIiIiIiIgAAYAAAAGAAAAB gAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB gAD//////////wABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB gAAAAYAAAAGAAAABgAAAAYAAAAGAACgAAAAYAAAAMAAAAAEABAAAAAAAgAEAAAAA AAAAAAAAAAAAAAAAAAAAAAAA////AO+kAAAAuf8AALp/ACJQ8gAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiIiIg MzMzMzMwIiIiIiIgMzMzMzMwIiIiIiIgMzMzMzMwIiIiIiIgMzMzMzMwIiIiIiIg MzMzMzMwIiIiIiIgMzMzMzMwIiIiIiIgMzMzMzMwIiIiIiIgMzMzMzMwIiIiIiIg MzMzMzMwIiIiIiIgMzMzMzMwIiIiIiIgMzMzMzMwAAAAAAAAAAAAAAAAVVVVVVVQ RERERERAVVVVVVVQRERERERAVVVVVVVQRERERERAVVVVVVVQRERERERAVVVVVVVQ RERERERAVVVVVVVQRERERERAVVVVVVVQRERERERAVVVVVVVQRERERERAVVVVVVVQ RERERERAVVVVVVVQRERERERAVVVVVVVQRERERERA////AAAQAQAAEAEAABABAAAQ AQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEA////AAAQAQAAEAEAABABAAAQ AQAAEAEAABABAAAQAQAAEAEAABABAAAQAQAAEAEAKAAAABAAAAAgAAAAAQAEAAAA AADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A76QAAAC5/wAAun8AHk73AAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIi IiAzMzMwIiIiIDMzMzAiIiIgMzMzMCIiIiAzMzMwIiIiIDMzMzAiIiIgMzMzMCIi IiAzMzMwAAAAAAAAAABVVVVQREREQFVVVVBERERAVVVVUEREREBVVVVQREREQFVV VVBERERAVVVVUEREREBVVVVQREREQP//AAABAQAAAQEAAAEBAAABAQAAAQEAAAEB AAABAQAA//8AAAEBAAABAQAAAQEAAAEBAAABAQAAAQEAAAEBAAA= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomMaster.css Content-Type: text/css; name=oneMscomMaster.css Content-Location: http://support.microsoft.com/Styles/oneMscomMaster.css Content-Transfer-Encoding: 8bit html,body,form,div,h1,h2,h3,h4,h5,h6,li,ol,p,ul{margin:0;padding:0}.cssClear{clear:both;height:0;margin:0;padding:0;_line-height:0}a:link,a:visited{text-decoration:none}img{border:none}#roottoolbar{font-size:70%}html,body{height:100%}body{width:100%;min-height:25px;_height:400px}div.form-bottom{position:relative}div.form-bottom-inner{position:absolute;top:-400px;width:100%;min-width:960px;height:400px}div.stage{position:relative;z-index:1;margin:0 auto;width:960px}div.stage{_height:100%}div.stage-bg-bot{_height:100%;_height:expression(document.body.clientHeight-430+"px")}div.stage-content{padding-left:20px;padding-right:20px}div.stage-bg-top{position:absolute;z-index:-1;top:0;height:85px;width:100%}div.stage-bg-mid{position:absolute;z-index:-1;top:85px;height:345px;width:100%}div.stage-bg-bot{position:absolute;z-index:-1;top:430px;bottom:0;width:100%}div.utility-bar{margin-bottom:10px;position:relative;z-index:999}div.main-brand{margin-bottom:10px}div.main-brand img{border:none}div.main-brand .logo .bg-img,div.main-brand .logo .filter-img{top:0;width:100%;height:100%}div.main-brand .logo .bg-img{background-repeat:no-repeat}.main-brand span.beta{color:#fff;position:relative;top:16px}div.search-navigation{z-index:990;position:relative;width:100%;background-color:transparent;margin-bottom:20px}div.search-navigation-bg{position:absolute;top:0;bottom:0;left:0;right:0}div.main-content{min-height:555px;_height:555px;margin-bottom:20px}div.footer{min-height:50px;_height:50px;_width:100%;clear:both}div.main-brand .brandLogoTextCell{vertical-align:bottom} ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomMaster.js Content-Type: application/x-javascript; name=oneMscomMaster.js Content-Location: http://support.microsoft.com/scripts/oneMscomMaster.js Content-Transfer-Encoding: Base64 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=jquery-1.7.2.min.js Content-Type: application/x-javascript; name=jquery-1.7.2.min.js Content-Location: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js Content-Transfer-Encoding: Base64 LyohIGpRdWVyeSB2MS43LjIganF1ZXJ5LmNvbSB8IGpxdWVyeS5vcmcvbGljZW5z ZSAqLwooZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjeShhKXtyZXR1cm4gZi5pc1dp bmRvdyhhKT9hOmEubm9kZVR5cGU9PT05P2EuZGVmYXVsdFZpZXd8fGEucGFyZW50 V2luZG93OiExfWZ1bmN0aW9uIGN1KGEpe2lmKCFjalthXSl7dmFyIGI9Yy5ib2R5 LGQ9ZigiPCIrYSsiPiIpLmFwcGVuZFRvKGIpLGU9ZC5jc3MoImRpc3BsYXkiKTtk LnJlbW92ZSgpO2lmKGU9PT0ibm9uZSJ8fGU9PT0iIil7Y2t8fChjaz1jLmNyZWF0 ZUVsZW1lbnQoImlmcmFtZSIpLGNrLmZyYW1lQm9yZGVyPWNrLndpZHRoPWNrLmhl aWdodD0wKSxiLmFwcGVuZENoaWxkKGNrKTtpZighY2x8fCFjay5jcmVhdGVFbGVt ZW50KWNsPShjay5jb250ZW50V2luZG93fHxjay5jb250ZW50RG9jdW1lbnQpLmRv Y3VtZW50LGNsLndyaXRlKChmLnN1cHBvcnQuYm94TW9kZWw/IjwhZG9jdHlwZSBo dG1sPiI6IiIpKyI8aHRtbD48Ym9keT4iKSxjbC5jbG9zZSgpO2Q9Y2wuY3JlYXRl RWxlbWVudChhKSxjbC5ib2R5LmFwcGVuZENoaWxkKGQpLGU9Zi5jc3MoZCwiZGlz cGxheSIpLGIucmVtb3ZlQ2hpbGQoY2spfWNqW2FdPWV9cmV0dXJuIGNqW2FdfWZ1 bmN0aW9uIGN0KGEsYil7dmFyIGM9e307Zi5lYWNoKGNwLmNvbmNhdC5hcHBseShb XSxjcC5zbGljZSgwLGIpKSxmdW5jdGlvbigpe2NbdGhpc109YX0pO3JldHVybiBj fWZ1bmN0aW9uIGNzKCl7Y3E9Yn1mdW5jdGlvbiBjcigpe3NldFRpbWVvdXQoY3Ms MCk7cmV0dXJuIGNxPWYubm93KCl9ZnVuY3Rpb24gY2koKXt0cnl7cmV0dXJuIG5l dyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9Y2F0Y2goYil7 fX1mdW5jdGlvbiBjaCgpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9 Y2F0Y2goYil7fX1mdW5jdGlvbiBjYihhLGMpe2EuZGF0YUZpbHRlciYmKGM9YS5k YXRhRmlsdGVyKGMsYS5kYXRhVHlwZSkpO3ZhciBkPWEuZGF0YVR5cGVzLGU9e30s ZyxoLGk9ZC5sZW5ndGgsaixrPWRbMF0sbCxtLG4sbyxwO2ZvcihnPTE7ZzxpO2cr Kyl7aWYoZz09PTEpZm9yKGggaW4gYS5jb252ZXJ0ZXJzKXR5cGVvZiBoPT0ic3Ry aW5nIiYmKGVbaC50b0xvd2VyQ2FzZSgpXT1hLmNvbnZlcnRlcnNbaF0pO2w9ayxr PWRbZ107aWYoaz09PSIqIilrPWw7ZWxzZSBpZihsIT09IioiJiZsIT09ayl7bT1s KyIgIitrLG49ZVttXXx8ZVsiKiAiK2tdO2lmKCFuKXtwPWI7Zm9yKG8gaW4gZSl7 aj1vLnNwbGl0KCIgIik7aWYoalswXT09PWx8fGpbMF09PT0iKiIpe3A9ZVtqWzFd KyIgIitrXTtpZihwKXtvPWVbb10sbz09PSEwP249cDpwPT09ITAmJihuPW8pO2Jy ZWFrfX19fSFuJiYhcCYmZi5lcnJvcigiTm8gY29udmVyc2lvbiBmcm9tICIrbS5y ZXBsYWNlKCIgIiwiIHRvICIpKSxuIT09ITAmJihjPW4/bihjKTpwKG8oYykpKX19 cmV0dXJuIGN9ZnVuY3Rpb24gY2EoYSxjLGQpe3ZhciBlPWEuY29udGVudHMsZj1h LmRhdGFUeXBlcyxnPWEucmVzcG9uc2VGaWVsZHMsaCxpLGosaztmb3IoaSBpbiBn KWkgaW4gZCYmKGNbZ1tpXV09ZFtpXSk7d2hpbGUoZlswXT09PSIqIilmLnNoaWZ0 KCksaD09PWImJihoPWEubWltZVR5cGV8fGMuZ2V0UmVzcG9uc2VIZWFkZXIoImNv bnRlbnQtdHlwZSIpKTtpZihoKWZvcihpIGluIGUpaWYoZVtpXSYmZVtpXS50ZXN0 KGgpKXtmLnVuc2hpZnQoaSk7YnJlYWt9aWYoZlswXWluIGQpaj1mWzBdO2Vsc2V7 Zm9yKGkgaW4gZCl7aWYoIWZbMF18fGEuY29udmVydGVyc1tpKyIgIitmWzBdXSl7 aj1pO2JyZWFrfWt8fChrPWkpfWo9anx8a31pZihqKXtqIT09ZlswXSYmZi51bnNo aWZ0KGopO3JldHVybiBkW2pdfX1mdW5jdGlvbiBiXyhhLGIsYyxkKXtpZihmLmlz QXJyYXkoYikpZi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHxiRC50ZXN0KGEpP2Qo YSxlKTpiXyhhKyJbIisodHlwZW9mIGU9PSJvYmplY3QiP2I6IiIpKyJdIixlLGMs ZCl9KTtlbHNlIGlmKCFjJiZmLnR5cGUoYik9PT0ib2JqZWN0Iilmb3IodmFyIGUg aW4gYiliXyhhKyJbIitlKyJdIixiW2VdLGMsZCk7ZWxzZSBkKGEsYil9ZnVuY3Rp b24gYiQoYSxjKXt2YXIgZCxlLGc9Zi5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8 fHt9O2ZvcihkIGluIGMpY1tkXSE9PWImJigoZ1tkXT9hOmV8fChlPXt9KSlbZF09 Y1tkXSk7ZSYmZi5leHRlbmQoITAsYSxlKX1mdW5jdGlvbiBiWihhLGMsZCxlLGYs Zyl7Zj1mfHxjLmRhdGFUeXBlc1swXSxnPWd8fHt9LGdbZl09ITA7dmFyIGg9YVtm XSxpPTAsaj1oP2gubGVuZ3RoOjAsaz1hPT09YlMsbDtmb3IoO2k8aiYmKGt8fCFs KTtpKyspbD1oW2ldKGMsZCxlKSx0eXBlb2YgbD09InN0cmluZyImJigha3x8Z1ts XT9sPWI6KGMuZGF0YVR5cGVzLnVuc2hpZnQobCksbD1iWihhLGMsZCxlLGwsZykp KTsoa3x8IWwpJiYhZ1siKiJdJiYobD1iWihhLGMsZCxlLCIqIixnKSk7cmV0dXJu IGx9ZnVuY3Rpb24gYlkoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7dHlwZW9mIGIh PSJzdHJpbmciJiYoYz1iLGI9IioiKTtpZihmLmlzRnVuY3Rpb24oYykpe3ZhciBk PWIudG9Mb3dlckNhc2UoKS5zcGxpdChiTyksZT0wLGc9ZC5sZW5ndGgsaCxpLGo7 Zm9yKDtlPGc7ZSsrKWg9ZFtlXSxqPS9eXCsvLnRlc3QoaCksaiYmKGg9aC5zdWJz dHIoMSl8fCIqIiksaT1hW2hdPWFbaF18fFtdLGlbaj8idW5zaGlmdCI6InB1c2gi XShjKX19fWZ1bmN0aW9uIGJCKGEsYixjKXt2YXIgZD1iPT09IndpZHRoIj9hLm9m ZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGU9Yj09PSJ3aWR0aCI/MTowLGc9NDtp ZihkPjApe2lmKGMhPT0iYm9yZGVyIilmb3IoO2U8ZztlKz0yKWN8fChkLT1wYXJz ZUZsb2F0KGYuY3NzKGEsInBhZGRpbmciK2J4W2VdKSl8fDApLGM9PT0ibWFyZ2lu Ij9kKz1wYXJzZUZsb2F0KGYuY3NzKGEsYytieFtlXSkpfHwwOmQtPXBhcnNlRmxv YXQoZi5jc3MoYSwiYm9yZGVyIitieFtlXSsiV2lkdGgiKSl8fDA7cmV0dXJuIGQr InB4In1kPWJ5KGEsYik7aWYoZDwwfHxkPT1udWxsKWQ9YS5zdHlsZVtiXTtpZihi dC50ZXN0KGQpKXJldHVybiBkO2Q9cGFyc2VGbG9hdChkKXx8MDtpZihjKWZvcig7 ZTxnO2UrPTIpZCs9cGFyc2VGbG9hdChmLmNzcyhhLCJwYWRkaW5nIitieFtlXSkp fHwwLGMhPT0icGFkZGluZyImJihkKz1wYXJzZUZsb2F0KGYuY3NzKGEsImJvcmRl ciIrYnhbZV0rIldpZHRoIikpfHwwKSxjPT09Im1hcmdpbiImJihkKz1wYXJzZUZs b2F0KGYuY3NzKGEsYytieFtlXSkpfHwwKTtyZXR1cm4gZCsicHgifWZ1bmN0aW9u IGJvKGEpe3ZhciBiPWMuY3JlYXRlRWxlbWVudCgiZGl2Iik7YmguYXBwZW5kQ2hp bGQoYiksYi5pbm5lckhUTUw9YS5vdXRlckhUTUw7cmV0dXJuIGIuZmlyc3RDaGls ZH1mdW5jdGlvbiBibihhKXt2YXIgYj0oYS5ub2RlTmFtZXx8IiIpLnRvTG93ZXJD YXNlKCk7Yj09PSJpbnB1dCI/Ym0oYSk6YiE9PSJzY3JpcHQiJiZ0eXBlb2YgYS5n ZXRFbGVtZW50c0J5VGFnTmFtZSE9InVuZGVmaW5lZCImJmYuZ3JlcChhLmdldEVs ZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpLGJtKX1mdW5jdGlvbiBibShhKXtpZihh LnR5cGU9PT0iY2hlY2tib3gifHxhLnR5cGU9PT0icmFkaW8iKWEuZGVmYXVsdENo ZWNrZWQ9YS5jaGVja2VkfWZ1bmN0aW9uIGJsKGEpe3JldHVybiB0eXBlb2YgYS5n ZXRFbGVtZW50c0J5VGFnTmFtZSE9InVuZGVmaW5lZCI/YS5nZXRFbGVtZW50c0J5 VGFnTmFtZSgiKiIpOnR5cGVvZiBhLnF1ZXJ5U2VsZWN0b3JBbGwhPSJ1bmRlZmlu ZWQiP2EucXVlcnlTZWxlY3RvckFsbCgiKiIpOltdfWZ1bmN0aW9uIGJrKGEsYil7 dmFyIGM7Yi5ub2RlVHlwZT09PTEmJihiLmNsZWFyQXR0cmlidXRlcyYmYi5jbGVh ckF0dHJpYnV0ZXMoKSxiLm1lcmdlQXR0cmlidXRlcyYmYi5tZXJnZUF0dHJpYnV0 ZXMoYSksYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksYz09PSJvYmplY3QiP2Iu b3V0ZXJIVE1MPWEub3V0ZXJIVE1MOmMhPT0iaW5wdXQifHxhLnR5cGUhPT0iY2hl Y2tib3giJiZhLnR5cGUhPT0icmFkaW8iP2M9PT0ib3B0aW9uIj9iLnNlbGVjdGVk PWEuZGVmYXVsdFNlbGVjdGVkOmM9PT0iaW5wdXQifHxjPT09InRleHRhcmVhIj9i LmRlZmF1bHRWYWx1ZT1hLmRlZmF1bHRWYWx1ZTpjPT09InNjcmlwdCImJmIudGV4 dCE9PWEudGV4dCYmKGIudGV4dD1hLnRleHQpOihhLmNoZWNrZWQmJihiLmRlZmF1 bHRDaGVja2VkPWIuY2hlY2tlZD1hLmNoZWNrZWQpLGIudmFsdWUhPT1hLnZhbHVl JiYoYi52YWx1ZT1hLnZhbHVlKSksYi5yZW1vdmVBdHRyaWJ1dGUoZi5leHBhbmRv KSxiLnJlbW92ZUF0dHJpYnV0ZSgiX3N1Ym1pdF9hdHRhY2hlZCIpLGIucmVtb3Zl QXR0cmlidXRlKCJfY2hhbmdlX2F0dGFjaGVkIikpfWZ1bmN0aW9uIGJqKGEsYil7 aWYoYi5ub2RlVHlwZT09PTEmJiEhZi5oYXNEYXRhKGEpKXt2YXIgYyxkLGUsZz1m Ll9kYXRhKGEpLGg9Zi5fZGF0YShiLGcpLGk9Zy5ldmVudHM7aWYoaSl7ZGVsZXRl IGguaGFuZGxlLGguZXZlbnRzPXt9O2ZvcihjIGluIGkpZm9yKGQ9MCxlPWlbY10u bGVuZ3RoO2Q8ZTtkKyspZi5ldmVudC5hZGQoYixjLGlbY11bZF0pfWguZGF0YSYm KGguZGF0YT1mLmV4dGVuZCh7fSxoLmRhdGEpKX19ZnVuY3Rpb24gYmkoYSxiKXty ZXR1cm4gZi5ub2RlTmFtZShhLCJ0YWJsZSIpP2EuZ2V0RWxlbWVudHNCeVRhZ05h bWUoInRib2R5IilbMF18fGEuYXBwZW5kQ2hpbGQoYS5vd25lckRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoInRib2R5IikpOmF9ZnVuY3Rpb24gVShhKXt2YXIgYj1WLnNw bGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0 ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkp O3JldHVybiBjfWZ1bmN0aW9uIFQoYSxiLGMpe2I9Ynx8MDtpZihmLmlzRnVuY3Rp b24oYikpcmV0dXJuIGYuZ3JlcChhLGZ1bmN0aW9uKGEsZCl7dmFyIGU9ISFiLmNh bGwoYSxkLGEpO3JldHVybiBlPT09Y30pO2lmKGIubm9kZVR5cGUpcmV0dXJuIGYu Z3JlcChhLGZ1bmN0aW9uKGEsZCl7cmV0dXJuIGE9PT1iPT09Y30pO2lmKHR5cGVv ZiBiPT0ic3RyaW5nIil7dmFyIGQ9Zi5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJu IGEubm9kZVR5cGU9PT0xfSk7aWYoTy50ZXN0KGIpKXJldHVybiBmLmZpbHRlcihi LGQsIWMpO2I9Zi5maWx0ZXIoYixkKX1yZXR1cm4gZi5ncmVwKGEsZnVuY3Rpb24o YSxkKXtyZXR1cm4gZi5pbkFycmF5KGEsYik+PTA9PT1jfSl9ZnVuY3Rpb24gUyhh KXtyZXR1cm4hYXx8IWEucGFyZW50Tm9kZXx8YS5wYXJlbnROb2RlLm5vZGVUeXBl PT09MTF9ZnVuY3Rpb24gSygpe3JldHVybiEwfWZ1bmN0aW9uIEooKXtyZXR1cm4h MX1mdW5jdGlvbiBuKGEsYixjKXt2YXIgZD1iKyJkZWZlciIsZT1iKyJxdWV1ZSIs Zz1iKyJtYXJrIixoPWYuX2RhdGEoYSxkKTtoJiYoYz09PSJxdWV1ZSJ8fCFmLl9k YXRhKGEsZSkpJiYoYz09PSJtYXJrInx8IWYuX2RhdGEoYSxnKSkmJnNldFRpbWVv dXQoZnVuY3Rpb24oKXshZi5fZGF0YShhLGUpJiYhZi5fZGF0YShhLGcpJiYoZi5y ZW1vdmVEYXRhKGEsZCwhMCksaC5maXJlKCkpfSwwKX1mdW5jdGlvbiBtKGEpe2Zv cih2YXIgYiBpbiBhKXtpZihiPT09ImRhdGEiJiZmLmlzRW1wdHlPYmplY3QoYVti XSkpY29udGludWU7aWYoYiE9PSJ0b0pTT04iKXJldHVybiExfXJldHVybiEwfWZ1 bmN0aW9uIGwoYSxjLGQpe2lmKGQ9PT1iJiZhLm5vZGVUeXBlPT09MSl7dmFyIGU9 ImRhdGEtIitjLnJlcGxhY2UoaywiLSQxIikudG9Mb3dlckNhc2UoKTtkPWEuZ2V0 QXR0cmlidXRlKGUpO2lmKHR5cGVvZiBkPT0ic3RyaW5nIil7dHJ5e2Q9ZD09PSJ0 cnVlIj8hMDpkPT09ImZhbHNlIj8hMTpkPT09Im51bGwiP251bGw6Zi5pc051bWVy aWMoZCk/K2Q6ai50ZXN0KGQpP2YucGFyc2VKU09OKGQpOmR9Y2F0Y2goZyl7fWYu ZGF0YShhLGMsZCl9ZWxzZSBkPWJ9cmV0dXJuIGR9ZnVuY3Rpb24gaChhKXt2YXIg Yj1nW2FdPXt9LGMsZDthPWEuc3BsaXQoL1xzKy8pO2ZvcihjPTAsZD1hLmxlbmd0 aDtjPGQ7YysrKWJbYVtjXV09ITA7cmV0dXJuIGJ9dmFyIGM9YS5kb2N1bWVudCxk PWEubmF2aWdhdG9yLGU9YS5sb2NhdGlvbixmPWZ1bmN0aW9uKCl7ZnVuY3Rpb24g Sigpe2lmKCFlLmlzUmVhZHkpe3RyeXtjLmRvY3VtZW50RWxlbWVudC5kb1Njcm9s bCgibGVmdCIpfWNhdGNoKGEpe3NldFRpbWVvdXQoSiwxKTtyZXR1cm59ZS5yZWFk eSgpfX12YXIgZT1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgZS5mbi5pbml0KGEs YixoKX0sZj1hLmpRdWVyeSxnPWEuJCxoLGk9L14oPzpbXiM8XSooPFtcd1xXXSs+ KVtePl0qJHwjKFtcd1wtXSopJCkvLGo9L1xTLyxrPS9eXHMrLyxsPS9ccyskLyxt PS9ePChcdyspXHMqXC8/Pig/OjxcL1wxPik/JC8sbj0vXltcXSw6e31cc10qJC8s bz0vXFwoPzpbIlxcXC9iZm5ydF18dVswLTlhLWZBLUZdezR9KS9nLHA9LyJbXiJc XFxuXHJdKiJ8dHJ1ZXxmYWxzZXxudWxsfC0/XGQrKD86XC5cZCopPyg/OltlRV1b K1wtXT9cZCspPy9nLHE9Lyg/Ol58OnwsKSg/OlxzKlxbKSsvZyxyPS8od2Via2l0 KVsgXC9dKFtcdy5dKykvLHM9LyhvcGVyYSkoPzouKnZlcnNpb24pP1sgXC9dKFtc dy5dKykvLHQ9Lyhtc2llKSAoW1x3Ll0rKS8sdT0vKG1vemlsbGEpKD86Lio/IHJ2 OihbXHcuXSspKT8vLHY9Ly0oW2Etel18WzAtOV0pL2lnLHc9L14tbXMtLyx4PWZ1 bmN0aW9uKGEsYil7cmV0dXJuKGIrIiIpLnRvVXBwZXJDYXNlKCl9LHk9ZC51c2Vy QWdlbnQseixBLEIsQz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLEQ9T2JqZWN0 LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxFPUFycmF5LnByb3RvdHlwZS5wdXNo LEY9QXJyYXkucHJvdG90eXBlLnNsaWNlLEc9U3RyaW5nLnByb3RvdHlwZS50cmlt LEg9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsST17fTtlLmZuPWUucHJvdG90eXBl PXtjb25zdHJ1Y3RvcjplLGluaXQ6ZnVuY3Rpb24oYSxkLGYpe3ZhciBnLGgsaixr O2lmKCFhKXJldHVybiB0aGlzO2lmKGEubm9kZVR5cGUpe3RoaXMuY29udGV4dD10 aGlzWzBdPWEsdGhpcy5sZW5ndGg9MTtyZXR1cm4gdGhpc31pZihhPT09ImJvZHki JiYhZCYmYy5ib2R5KXt0aGlzLmNvbnRleHQ9Yyx0aGlzWzBdPWMuYm9keSx0aGlz LnNlbGVjdG9yPWEsdGhpcy5sZW5ndGg9MTtyZXR1cm4gdGhpc31pZih0eXBlb2Yg YT09InN0cmluZyIpe2EuY2hhckF0KDApIT09IjwifHxhLmNoYXJBdChhLmxlbmd0 aC0xKSE9PSI+Inx8YS5sZW5ndGg8Mz9nPWkuZXhlYyhhKTpnPVtudWxsLGEsbnVs bF07aWYoZyYmKGdbMV18fCFkKSl7aWYoZ1sxXSl7ZD1kIGluc3RhbmNlb2YgZT9k WzBdOmQsaz1kP2Qub3duZXJEb2N1bWVudHx8ZDpjLGo9bS5leGVjKGEpLGo/ZS5p c1BsYWluT2JqZWN0KGQpPyhhPVtjLmNyZWF0ZUVsZW1lbnQoalsxXSldLGUuZm4u YXR0ci5jYWxsKGEsZCwhMCkpOmE9W2suY3JlYXRlRWxlbWVudChqWzFdKV06KGo9 ZS5idWlsZEZyYWdtZW50KFtnWzFdXSxba10pLGE9KGouY2FjaGVhYmxlP2UuY2xv bmUoai5mcmFnbWVudCk6ai5mcmFnbWVudCkuY2hpbGROb2Rlcyk7cmV0dXJuIGUu bWVyZ2UodGhpcyxhKX1oPWMuZ2V0RWxlbWVudEJ5SWQoZ1syXSk7aWYoaCYmaC5w YXJlbnROb2RlKXtpZihoLmlkIT09Z1syXSlyZXR1cm4gZi5maW5kKGEpO3RoaXMu bGVuZ3RoPTEsdGhpc1swXT1ofXRoaXMuY29udGV4dD1jLHRoaXMuc2VsZWN0b3I9 YTtyZXR1cm4gdGhpc31yZXR1cm4hZHx8ZC5qcXVlcnk/KGR8fGYpLmZpbmQoYSk6 dGhpcy5jb25zdHJ1Y3RvcihkKS5maW5kKGEpfWlmKGUuaXNGdW5jdGlvbihhKSly ZXR1cm4gZi5yZWFkeShhKTthLnNlbGVjdG9yIT09YiYmKHRoaXMuc2VsZWN0b3I9 YS5zZWxlY3Rvcix0aGlzLmNvbnRleHQ9YS5jb250ZXh0KTtyZXR1cm4gZS5tYWtl QXJyYXkoYSx0aGlzKX0sc2VsZWN0b3I6IiIsanF1ZXJ5OiIxLjcuMiIsbGVuZ3Ro OjAsc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sdG9BcnJheTpm dW5jdGlvbigpe3JldHVybiBGLmNhbGwodGhpcywwKX0sZ2V0OmZ1bmN0aW9uKGEp e3JldHVybiBhPT1udWxsP3RoaXMudG9BcnJheSgpOmE8MD90aGlzW3RoaXMubGVu Z3RoK2FdOnRoaXNbYV19LHB1c2hTdGFjazpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9 dGhpcy5jb25zdHJ1Y3RvcigpO2UuaXNBcnJheShhKT9FLmFwcGx5KGQsYSk6ZS5t ZXJnZShkLGEpLGQucHJldk9iamVjdD10aGlzLGQuY29udGV4dD10aGlzLmNvbnRl eHQsYj09PSJmaW5kIj9kLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrKHRoaXMuc2Vs ZWN0b3I/IiAiOiIiKStjOmImJihkLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4i K2IrIigiK2MrIikiKTtyZXR1cm4gZH0sZWFjaDpmdW5jdGlvbihhLGIpe3JldHVy biBlLmVhY2godGhpcyxhLGIpfSxyZWFkeTpmdW5jdGlvbihhKXtlLmJpbmRSZWFk eSgpLEEuYWRkKGEpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXthPSthO3Jl dHVybiBhPT09LTE/dGhpcy5zbGljZShhKTp0aGlzLnNsaWNlKGEsYSsxKX0sZmly c3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigp e3JldHVybiB0aGlzLmVxKC0xKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp cy5wdXNoU3RhY2soRi5hcHBseSh0aGlzLGFyZ3VtZW50cyksInNsaWNlIixGLmNh bGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJu IHRoaXMucHVzaFN0YWNrKGUubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4g YS5jYWxsKGIsYyxiKX0pKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJl dk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcihudWxsKX0scHVzaDpFLHNvcnQ6W10u c29ydCxzcGxpY2U6W10uc3BsaWNlfSxlLmZuLmluaXQucHJvdG90eXBlPWUuZm4s ZS5leHRlbmQ9ZS5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxjLGQsZixnLGgs aT1hcmd1bWVudHNbMF18fHt9LGo9MSxrPWFyZ3VtZW50cy5sZW5ndGgsbD0hMTt0 eXBlb2YgaT09ImJvb2xlYW4iJiYobD1pLGk9YXJndW1lbnRzWzFdfHx7fSxqPTIp LHR5cGVvZiBpIT0ib2JqZWN0IiYmIWUuaXNGdW5jdGlvbihpKSYmKGk9e30pLGs9 PT1qJiYoaT10aGlzLC0taik7Zm9yKDtqPGs7aisrKWlmKChhPWFyZ3VtZW50c1tq XSkhPW51bGwpZm9yKGMgaW4gYSl7ZD1pW2NdLGY9YVtjXTtpZihpPT09Ziljb250 aW51ZTtsJiZmJiYoZS5pc1BsYWluT2JqZWN0KGYpfHwoZz1lLmlzQXJyYXkoZikp KT8oZz8oZz0hMSxoPWQmJmUuaXNBcnJheShkKT9kOltdKTpoPWQmJmUuaXNQbGFp bk9iamVjdChkKT9kOnt9LGlbY109ZS5leHRlbmQobCxoLGYpKTpmIT09YiYmKGlb Y109Zil9cmV0dXJuIGl9LGUuZXh0ZW5kKHtub0NvbmZsaWN0OmZ1bmN0aW9uKGIp e2EuJD09PWUmJihhLiQ9ZyksYiYmYS5qUXVlcnk9PT1lJiYoYS5qUXVlcnk9Zik7 cmV0dXJuIGV9LGlzUmVhZHk6ITEscmVhZHlXYWl0OjEsaG9sZFJlYWR5OmZ1bmN0 aW9uKGEpe2E/ZS5yZWFkeVdhaXQrKzplLnJlYWR5KCEwKX0scmVhZHk6ZnVuY3Rp b24oYSl7aWYoYT09PSEwJiYhLS1lLnJlYWR5V2FpdHx8YSE9PSEwJiYhZS5pc1Jl YWR5KXtpZighYy5ib2R5KXJldHVybiBzZXRUaW1lb3V0KGUucmVhZHksMSk7ZS5p c1JlYWR5PSEwO2lmKGEhPT0hMCYmLS1lLnJlYWR5V2FpdD4wKXJldHVybjtBLmZp cmVXaXRoKGMsW2VdKSxlLmZuLnRyaWdnZXImJmUoYykudHJpZ2dlcigicmVhZHki KS5vZmYoInJlYWR5Iil9fSxiaW5kUmVhZHk6ZnVuY3Rpb24oKXtpZighQSl7QT1l LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKTtpZihjLnJlYWR5U3RhdGU9PT0iY29t cGxldGUiKXJldHVybiBzZXRUaW1lb3V0KGUucmVhZHksMSk7aWYoYy5hZGRFdmVu dExpc3RlbmVyKWMuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIs QiwhMSksYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixlLnJlYWR5LCExKTtlbHNl IGlmKGMuYXR0YWNoRXZlbnQpe2MuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNo YW5nZSIsQiksYS5hdHRhY2hFdmVudCgib25sb2FkIixlLnJlYWR5KTt2YXIgYj0h MTt0cnl7Yj1hLmZyYW1lRWxlbWVudD09bnVsbH1jYXRjaChkKXt9Yy5kb2N1bWVu dEVsZW1lbnQuZG9TY3JvbGwmJmImJkooKX19fSxpc0Z1bmN0aW9uOmZ1bmN0aW9u KGEpe3JldHVybiBlLnR5cGUoYSk9PT0iZnVuY3Rpb24ifSxpc0FycmF5OkFycmF5 LmlzQXJyYXl8fGZ1bmN0aW9uKGEpe3JldHVybiBlLnR5cGUoYSk9PT0iYXJyYXki fSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gYSE9bnVsbCYmYT09YS53aW5k b3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXtyZXR1cm4haXNOYU4ocGFyc2VGbG9h dChhKSkmJmlzRmluaXRlKGEpfSx0eXBlOmZ1bmN0aW9uKGEpe3JldHVybiBhPT1u dWxsP1N0cmluZyhhKTpJW0MuY2FsbChhKV18fCJvYmplY3QifSxpc1BsYWluT2Jq ZWN0OmZ1bmN0aW9uKGEpe2lmKCFhfHxlLnR5cGUoYSkhPT0ib2JqZWN0Inx8YS5u b2RlVHlwZXx8ZS5pc1dpbmRvdyhhKSlyZXR1cm4hMTt0cnl7aWYoYS5jb25zdHJ1 Y3RvciYmIUQuY2FsbChhLCJjb25zdHJ1Y3RvciIpJiYhRC5jYWxsKGEuY29uc3Ry dWN0b3IucHJvdG90eXBlLCJpc1Byb3RvdHlwZU9mIikpcmV0dXJuITF9Y2F0Y2go Yyl7cmV0dXJuITF9dmFyIGQ7Zm9yKGQgaW4gYSk7cmV0dXJuIGQ9PT1ifHxELmNh bGwoYSxkKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihhKXtmb3IodmFyIGIgaW4g YSlyZXR1cm4hMTtyZXR1cm4hMH0sZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgbmV3 IEVycm9yKGEpfSxwYXJzZUpTT046ZnVuY3Rpb24oYil7aWYodHlwZW9mIGIhPSJz dHJpbmcifHwhYilyZXR1cm4gbnVsbDtiPWUudHJpbShiKTtpZihhLkpTT04mJmEu SlNPTi5wYXJzZSlyZXR1cm4gYS5KU09OLnBhcnNlKGIpO2lmKG4udGVzdChiLnJl cGxhY2UobywiQCIpLnJlcGxhY2UocCwiXSIpLnJlcGxhY2UocSwiIikpKXJldHVy bihuZXcgRnVuY3Rpb24oInJldHVybiAiK2IpKSgpO2UuZXJyb3IoIkludmFsaWQg SlNPTjogIitiKX0scGFyc2VYTUw6ZnVuY3Rpb24oYyl7aWYodHlwZW9mIGMhPSJz dHJpbmcifHwhYylyZXR1cm4gbnVsbDt2YXIgZCxmO3RyeXthLkRPTVBhcnNlcj8o Zj1uZXcgRE9NUGFyc2VyLGQ9Zi5wYXJzZUZyb21TdHJpbmcoYywidGV4dC94bWwi KSk6KGQ9bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxkLmFz eW5jPSJmYWxzZSIsZC5sb2FkWE1MKGMpKX1jYXRjaChnKXtkPWJ9KCFkfHwhZC5k b2N1bWVudEVsZW1lbnR8fGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVy cm9yIikubGVuZ3RoKSYmZS5lcnJvcigiSW52YWxpZCBYTUw6ICIrYyk7cmV0dXJu IGR9LG5vb3A6ZnVuY3Rpb24oKXt9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYm ai50ZXN0KGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2Fs bChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBs YWNlKHcsIm1zLSIpLnJlcGxhY2Uodix4KX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxi KXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT09 Yi50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZixnPTAs aD1hLmxlbmd0aCxpPWg9PT1ifHxlLmlzRnVuY3Rpb24oYSk7aWYoZCl7aWYoaSl7 Zm9yKGYgaW4gYSlpZihjLmFwcGx5KGFbZl0sZCk9PT0hMSlicmVha31lbHNlIGZv cig7ZzxoOylpZihjLmFwcGx5KGFbZysrXSxkKT09PSExKWJyZWFrfWVsc2UgaWYo aSl7Zm9yKGYgaW4gYSlpZihjLmNhbGwoYVtmXSxmLGFbZl0pPT09ITEpYnJlYWt9 ZWxzZSBmb3IoO2c8aDspaWYoYy5jYWxsKGFbZ10sZyxhW2crK10pPT09ITEpYnJl YWs7cmV0dXJuIGF9LHRyaW06Rz9mdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD8i IjpHLmNhbGwoYSl9OmZ1bmN0aW9uKGEpe3JldHVybiBhPT1udWxsPyIiOihhKyIi KS5yZXBsYWNlKGssIiIpLnJlcGxhY2UobCwiIil9LG1ha2VBcnJheTpmdW5jdGlv bihhLGIpe3ZhciBjPWJ8fFtdO2lmKGEhPW51bGwpe3ZhciBkPWUudHlwZShhKTth Lmxlbmd0aD09bnVsbHx8ZD09PSJzdHJpbmcifHxkPT09ImZ1bmN0aW9uInx8ZD09 PSJyZWdleHAifHxlLmlzV2luZG93KGEpP0UuY2FsbChjLGEpOmUubWVyZ2UoYyxh KX1yZXR1cm4gY30saW5BcnJheTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7aWYoYil7 aWYoSClyZXR1cm4gSC5jYWxsKGIsYSxjKTtkPWIubGVuZ3RoLGM9Yz9jPDA/TWF0 aC5tYXgoMCxkK2MpOmM6MDtmb3IoO2M8ZDtjKyspaWYoYyBpbiBiJiZiW2NdPT09 YSlyZXR1cm4gY31yZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxjKXt2YXIgZD1h Lmxlbmd0aCxlPTA7aWYodHlwZW9mIGMubGVuZ3RoPT0ibnVtYmVyIilmb3IodmFy IGY9Yy5sZW5ndGg7ZTxmO2UrKylhW2QrK109Y1tlXTtlbHNlIHdoaWxlKGNbZV0h PT1iKWFbZCsrXT1jW2UrK107YS5sZW5ndGg9ZDtyZXR1cm4gYX0sZ3JlcDpmdW5j dGlvbihhLGIsYyl7dmFyIGQ9W10sZTtjPSEhYztmb3IodmFyIGY9MCxnPWEubGVu Z3RoO2Y8ZztmKyspZT0hIWIoYVtmXSxmKSxjIT09ZSYmZC5wdXNoKGFbZl0pO3Jl dHVybiBkfSxtYXA6ZnVuY3Rpb24oYSxjLGQpe3ZhciBmLGcsaD1bXSxpPTAsaj1h Lmxlbmd0aCxrPWEgaW5zdGFuY2VvZiBlfHxqIT09YiYmdHlwZW9mIGo9PSJudW1i ZXIiJiYoaj4wJiZhWzBdJiZhW2otMV18fGo9PT0wfHxlLmlzQXJyYXkoYSkpO2lm KGspZm9yKDtpPGo7aSsrKWY9YyhhW2ldLGksZCksZiE9bnVsbCYmKGhbaC5sZW5n dGhdPWYpO2Vsc2UgZm9yKGcgaW4gYSlmPWMoYVtnXSxnLGQpLGYhPW51bGwmJiho W2gubGVuZ3RoXT1mKTtyZXR1cm4gaC5jb25jYXQuYXBwbHkoW10saCl9LGd1aWQ6 MSxwcm94eTpmdW5jdGlvbihhLGMpe2lmKHR5cGVvZiBjPT0ic3RyaW5nIil7dmFy IGQ9YVtjXTtjPWEsYT1kfWlmKCFlLmlzRnVuY3Rpb24oYSkpcmV0dXJuIGI7dmFy IGY9Ri5jYWxsKGFyZ3VtZW50cywyKSxnPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBw bHkoYyxmLmNvbmNhdChGLmNhbGwoYXJndW1lbnRzKSkpfTtnLmd1aWQ9YS5ndWlk PWEuZ3VpZHx8Zy5ndWlkfHxlLmd1aWQrKztyZXR1cm4gZ30sYWNjZXNzOmZ1bmN0 aW9uKGEsYyxkLGYsZyxoLGkpe3ZhciBqLGs9ZD09bnVsbCxsPTAsbT1hLmxlbmd0 aDtpZihkJiZ0eXBlb2YgZD09Im9iamVjdCIpe2ZvcihsIGluIGQpZS5hY2Nlc3Mo YSxjLGwsZFtsXSwxLGgsZik7Zz0xfWVsc2UgaWYoZiE9PWIpe2o9aT09PWImJmUu aXNGdW5jdGlvbihmKSxrJiYoaj8oaj1jLGM9ZnVuY3Rpb24oYSxiLGMpe3JldHVy biBqLmNhbGwoZShhKSxjKX0pOihjLmNhbGwoYSxmKSxjPW51bGwpKTtpZihjKWZv cig7bDxtO2wrKyljKGFbbF0sZCxqP2YuY2FsbChhW2xdLGwsYyhhW2xdLGQpKTpm LGkpO2c9MX1yZXR1cm4gZz9hOms/Yy5jYWxsKGEpOm0/YyhhWzBdLGQpOmh9LG5v dzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfSx1YU1hdGNo OmZ1bmN0aW9uKGEpe2E9YS50b0xvd2VyQ2FzZSgpO3ZhciBiPXIuZXhlYyhhKXx8 cy5leGVjKGEpfHx0LmV4ZWMoYSl8fGEuaW5kZXhPZigiY29tcGF0aWJsZSIpPDAm JnUuZXhlYyhhKXx8W107cmV0dXJue2Jyb3dzZXI6YlsxXXx8IiIsdmVyc2lvbjpi WzJdfHwiMCJ9fSxzdWI6ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIsYyl7cmV0dXJu IG5ldyBhLmZuLmluaXQoYixjKX1lLmV4dGVuZCghMCxhLHRoaXMpLGEuc3VwZXJj bGFzcz10aGlzLGEuZm49YS5wcm90b3R5cGU9dGhpcygpLGEuZm4uY29uc3RydWN0 b3I9YSxhLnN1Yj10aGlzLnN1YixhLmZuLmluaXQ9ZnVuY3Rpb24oZCxmKXtmJiZm IGluc3RhbmNlb2YgZSYmIShmIGluc3RhbmNlb2YgYSkmJihmPWEoZikpO3JldHVy biBlLmZuLmluaXQuY2FsbCh0aGlzLGQsZixiKX0sYS5mbi5pbml0LnByb3RvdHlw ZT1hLmZuO3ZhciBiPWEoYyk7cmV0dXJuIGF9LGJyb3dzZXI6e319KSxlLmVhY2go IkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4 cCBPYmplY3QiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtJWyJbb2JqZWN0ICIr YisiXSJdPWIudG9Mb3dlckNhc2UoKX0pLHo9ZS51YU1hdGNoKHkpLHouYnJvd3Nl ciYmKGUuYnJvd3Nlclt6LmJyb3dzZXJdPSEwLGUuYnJvd3Nlci52ZXJzaW9uPXou dmVyc2lvbiksZS5icm93c2VyLndlYmtpdCYmKGUuYnJvd3Nlci5zYWZhcmk9ITAp LGoudGVzdCgiwqAiKSYmKGs9L15bXHNceEEwXSsvLGw9L1tcc1x4QTBdKyQvKSxo PWUoYyksYy5hZGRFdmVudExpc3RlbmVyP0I9ZnVuY3Rpb24oKXtjLnJlbW92ZUV2 ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEIsITEpLGUucmVhZHkoKX06 Yy5hdHRhY2hFdmVudCYmKEI9ZnVuY3Rpb24oKXtjLnJlYWR5U3RhdGU9PT0iY29t cGxldGUiJiYoYy5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixCKSxl LnJlYWR5KCkpfSk7cmV0dXJuIGV9KCksZz17fTtmLkNhbGxiYWNrcz1mdW5jdGlv bihhKXthPWE/Z1thXXx8aChhKTp7fTt2YXIgYz1bXSxkPVtdLGUsaSxqLGssbCxt LG49ZnVuY3Rpb24oYil7dmFyIGQsZSxnLGgsaTtmb3IoZD0wLGU9Yi5sZW5ndGg7 ZDxlO2QrKylnPWJbZF0saD1mLnR5cGUoZyksaD09PSJhcnJheSI/bihnKTpoPT09 ImZ1bmN0aW9uIiYmKCFhLnVuaXF1ZXx8IXAuaGFzKGcpKSYmYy5wdXNoKGcpfSxv PWZ1bmN0aW9uKGIsZil7Zj1mfHxbXSxlPSFhLm1lbW9yeXx8W2IsZl0saT0hMCxq PSEwLG09a3x8MCxrPTAsbD1jLmxlbmd0aDtmb3IoO2MmJm08bDttKyspaWYoY1tt XS5hcHBseShiLGYpPT09ITEmJmEuc3RvcE9uRmFsc2Upe2U9ITA7YnJlYWt9aj0h MSxjJiYoYS5vbmNlP2U9PT0hMD9wLmRpc2FibGUoKTpjPVtdOmQmJmQubGVuZ3Ro JiYoZT1kLnNoaWZ0KCkscC5maXJlV2l0aChlWzBdLGVbMV0pKSl9LHA9e2FkZDpm dW5jdGlvbigpe2lmKGMpe3ZhciBhPWMubGVuZ3RoO24oYXJndW1lbnRzKSxqP2w9 Yy5sZW5ndGg6ZSYmZSE9PSEwJiYoaz1hLG8oZVswXSxlWzFdKSl9cmV0dXJuIHRo aXN9LHJlbW92ZTpmdW5jdGlvbigpe2lmKGMpe3ZhciBiPWFyZ3VtZW50cyxkPTAs ZT1iLmxlbmd0aDtmb3IoO2Q8ZTtkKyspZm9yKHZhciBmPTA7ZjxjLmxlbmd0aDtm KyspaWYoYltkXT09PWNbZl0pe2omJmY8PWwmJihsLS0sZjw9bSYmbS0tKSxjLnNw bGljZShmLS0sMSk7aWYoYS51bmlxdWUpYnJlYWt9fXJldHVybiB0aGlzfSxoYXM6 ZnVuY3Rpb24oYSl7aWYoYyl7dmFyIGI9MCxkPWMubGVuZ3RoO2Zvcig7YjxkO2Ir KylpZihhPT09Y1tiXSlyZXR1cm4hMH1yZXR1cm4hMX0sZW1wdHk6ZnVuY3Rpb24o KXtjPVtdO3JldHVybiB0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7Yz1kPWU9Yjty ZXR1cm4gdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hY30sbG9jazpm dW5jdGlvbigpe2Q9YiwoIWV8fGU9PT0hMCkmJnAuZGlzYWJsZSgpO3JldHVybiB0 aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hZH0sZmlyZVdpdGg6ZnVuY3Rp b24oYixjKXtkJiYoaj9hLm9uY2V8fGQucHVzaChbYixjXSk6KCFhLm9uY2V8fCFl KSYmbyhiLGMpKTtyZXR1cm4gdGhpc30sZmlyZTpmdW5jdGlvbigpe3AuZmlyZVdp dGgodGhpcyxhcmd1bWVudHMpO3JldHVybiB0aGlzfSxmaXJlZDpmdW5jdGlvbigp e3JldHVybiEhaX19O3JldHVybiBwfTt2YXIgaT1bXS5zbGljZTtmLmV4dGVuZCh7 RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9Zi5DYWxsYmFja3MoIm9uY2UgbWVt b3J5IiksYz1mLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxkPWYuQ2FsbGJhY2tz KCJtZW1vcnkiKSxlPSJwZW5kaW5nIixnPXtyZXNvbHZlOmIscmVqZWN0OmMsbm90 aWZ5OmR9LGg9e2RvbmU6Yi5hZGQsZmFpbDpjLmFkZCxwcm9ncmVzczpkLmFkZCxz dGF0ZTpmdW5jdGlvbigpe3JldHVybiBlfSxpc1Jlc29sdmVkOmIuZmlyZWQsaXNS ZWplY3RlZDpjLmZpcmVkLHRoZW46ZnVuY3Rpb24oYSxiLGMpe2kuZG9uZShhKS5m YWlsKGIpLnByb2dyZXNzKGMpO3JldHVybiB0aGlzfSxhbHdheXM6ZnVuY3Rpb24o KXtpLmRvbmUuYXBwbHkoaSxhcmd1bWVudHMpLmZhaWwuYXBwbHkoaSxhcmd1bWVu dHMpO3JldHVybiB0aGlzfSxwaXBlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5E ZWZlcnJlZChmdW5jdGlvbihkKXtmLmVhY2goe2RvbmU6W2EsInJlc29sdmUiXSxm YWlsOltiLCJyZWplY3QiXSxwcm9ncmVzczpbYywibm90aWZ5Il19LGZ1bmN0aW9u KGEsYil7dmFyIGM9YlswXSxlPWJbMV0sZztmLmlzRnVuY3Rpb24oYyk/aVthXShm dW5jdGlvbigpe2c9Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyksZyYmZi5pc0Z1bmN0 aW9uKGcucHJvbWlzZSk/Zy5wcm9taXNlKCkudGhlbihkLnJlc29sdmUsZC5yZWpl Y3QsZC5ub3RpZnkpOmRbZSsiV2l0aCJdKHRoaXM9PT1pP2Q6dGhpcyxbZ10pfSk6 aVthXShkW2VdKX0pfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe2lm KGE9PW51bGwpYT1oO2Vsc2UgZm9yKHZhciBiIGluIGgpYVtiXT1oW2JdO3JldHVy biBhfX0saT1oLnByb21pc2Uoe30pLGo7Zm9yKGogaW4gZylpW2pdPWdbal0uZmly ZSxpW2orIldpdGgiXT1nW2pdLmZpcmVXaXRoO2kuZG9uZShmdW5jdGlvbigpe2U9 InJlc29sdmVkIn0sYy5kaXNhYmxlLGQubG9jaykuZmFpbChmdW5jdGlvbigpe2U9 InJlamVjdGVkIn0sYi5kaXNhYmxlLGQubG9jayksYSYmYS5jYWxsKGksaSk7cmV0 dXJuIGl9LHdoZW46ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gbShhKXtyZXR1cm4gZnVu Y3Rpb24oYil7ZVthXT1hcmd1bWVudHMubGVuZ3RoPjE/aS5jYWxsKGFyZ3VtZW50 cywwKTpiLGoubm90aWZ5V2l0aChrLGUpfX1mdW5jdGlvbiBsKGEpe3JldHVybiBm dW5jdGlvbihjKXtiW2FdPWFyZ3VtZW50cy5sZW5ndGg+MT9pLmNhbGwoYXJndW1l bnRzLDApOmMsLS1nfHxqLnJlc29sdmVXaXRoKGosYil9fXZhciBiPWkuY2FsbChh cmd1bWVudHMsMCksYz0wLGQ9Yi5sZW5ndGgsZT1BcnJheShkKSxnPWQsaD1kLGo9 ZDw9MSYmYSYmZi5pc0Z1bmN0aW9uKGEucHJvbWlzZSk/YTpmLkRlZmVycmVkKCks az1qLnByb21pc2UoKTtpZihkPjEpe2Zvcig7YzxkO2MrKyliW2NdJiZiW2NdLnBy b21pc2UmJmYuaXNGdW5jdGlvbihiW2NdLnByb21pc2UpP2JbY10ucHJvbWlzZSgp LnRoZW4obChjKSxqLnJlamVjdCxtKGMpKTotLWc7Z3x8ai5yZXNvbHZlV2l0aChq LGIpfWVsc2UgaiE9PWEmJmoucmVzb2x2ZVdpdGgoaixkP1thXTpbXSk7cmV0dXJu IGt9fSksZi5zdXBwb3J0PWZ1bmN0aW9uKCl7dmFyIGIsZCxlLGcsaCxpLGosayxs LG0sbixvLHA9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKSxxPWMuZG9jdW1lbnRFbGVt ZW50O3Auc2V0QXR0cmlidXRlKCJjbGFzc05hbWUiLCJ0IikscC5pbm5lckhUTUw9 IiAgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYScgc3R5bGU9J3Rv cDoxcHg7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41NTsnPmE8L2E+PGlucHV0IHR5cGU9 J2NoZWNrYm94Jy8+IixkPXAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxlPXAu Z2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighZHx8IWQubGVuZ3RofHwh ZSlyZXR1cm57fTtnPWMuY3JlYXRlRWxlbWVudCgic2VsZWN0IiksaD1nLmFwcGVu ZENoaWxkKGMuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLGk9cC5nZXRFbGVtZW50 c0J5VGFnTmFtZSgiaW5wdXQiKVswXSxiPXtsZWFkaW5nV2hpdGVzcGFjZTpwLmZp cnN0Q2hpbGQubm9kZVR5cGU9PT0zLHRib2R5OiFwLmdldEVsZW1lbnRzQnlUYWdO YW1lKCJ0Ym9keSIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhcC5nZXRFbGVtZW50 c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovdG9wLy50ZXN0KGUuZ2V0 QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDplLmdldEF0dHJpYnV0 ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5Oi9eMC41NS8udGVzdChlLnN0eWxlLm9w YWNpdHkpLGNzc0Zsb2F0OiEhZS5zdHlsZS5jc3NGbG9hdCxjaGVja09uOmkudmFs dWU9PT0ib24iLG9wdFNlbGVjdGVkOmguc2VsZWN0ZWQsZ2V0U2V0QXR0cmlidXRl OnAuY2xhc3NOYW1lIT09InQiLGVuY3R5cGU6ISFjLmNyZWF0ZUVsZW1lbnQoImZv cm0iKS5lbmN0eXBlLGh0bWw1Q2xvbmU6Yy5jcmVhdGVFbGVtZW50KCJuYXYiKS5j bG9uZU5vZGUoITApLm91dGVySFRNTCE9PSI8Om5hdj48LzpuYXY+IixzdWJtaXRC dWJibGVzOiEwLGNoYW5nZUJ1YmJsZXM6ITAsZm9jdXNpbkJ1YmJsZXM6ITEsZGVs ZXRlRXhwYW5kbzohMCxub0Nsb25lRXZlbnQ6ITAsaW5saW5lQmxvY2tOZWVkc0xh eW91dDohMSxzaHJpbmtXcmFwQmxvY2tzOiExLHJlbGlhYmxlTWFyZ2luUmlnaHQ6 ITAscGl4ZWxNYXJnaW46ITB9LGYuYm94TW9kZWw9Yi5ib3hNb2RlbD1jLmNvbXBh dE1vZGU9PT0iQ1NTMUNvbXBhdCIsaS5jaGVja2VkPSEwLGIubm9DbG9uZUNoZWNr ZWQ9aS5jbG9uZU5vZGUoITApLmNoZWNrZWQsZy5kaXNhYmxlZD0hMCxiLm9wdERp c2FibGVkPSFoLmRpc2FibGVkO3RyeXtkZWxldGUgcC50ZXN0fWNhdGNoKHIpe2Iu ZGVsZXRlRXhwYW5kbz0hMX0hcC5hZGRFdmVudExpc3RlbmVyJiZwLmF0dGFjaEV2 ZW50JiZwLmZpcmVFdmVudCYmKHAuYXR0YWNoRXZlbnQoIm9uY2xpY2siLGZ1bmN0 aW9uKCl7Yi5ub0Nsb25lRXZlbnQ9ITF9KSxwLmNsb25lTm9kZSghMCkuZmlyZUV2 ZW50KCJvbmNsaWNrIikpLGk9Yy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGkudmFs dWU9InQiLGkuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxiLnJhZGlvVmFs dWU9aS52YWx1ZT09PSJ0IixpLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNr ZWQiKSxpLnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKSxwLmFwcGVuZENoaWxkKGkp LGo9Yy5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksai5hcHBlbmRDaGlsZChwLmxh c3RDaGlsZCksYi5jaGVja0Nsb25lPWouY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUo ITApLmxhc3RDaGlsZC5jaGVja2VkLGIuYXBwZW5kQ2hlY2tlZD1pLmNoZWNrZWQs ai5yZW1vdmVDaGlsZChpKSxqLmFwcGVuZENoaWxkKHApO2lmKHAuYXR0YWNoRXZl bnQpZm9yKG4gaW57c3VibWl0OjEsY2hhbmdlOjEsZm9jdXNpbjoxfSltPSJvbiIr bixvPW0gaW4gcCxvfHwocC5zZXRBdHRyaWJ1dGUobSwicmV0dXJuOyIpLG89dHlw ZW9mIHBbbV09PSJmdW5jdGlvbiIpLGJbbisiQnViYmxlcyJdPW87ai5yZW1vdmVD aGlsZChwKSxqPWc9aD1wPWk9bnVsbCxmKGZ1bmN0aW9uKCl7dmFyIGQsZSxnLGgs aSxqLGwsbSxuLHEscixzLHQsdT1jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5 IilbMF07IXV8fChtPTEsdD0icGFkZGluZzowO21hcmdpbjowO2JvcmRlcjoiLHI9 InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxcHg7aGVpZ2h0 OjFweDsiLHM9dCsiMDt2aXNpYmlsaXR5OmhpZGRlbjsiLG49InN0eWxlPSciK3Ir dCsiNXB4IHNvbGlkICMwMDA7IixxPSI8ZGl2ICIrbisiZGlzcGxheTpibG9jazsn PjxkaXYgc3R5bGU9JyIrdCsiMDtkaXNwbGF5OmJsb2NrO292ZXJmbG93OmhpZGRl bjsnPjwvZGl2PjwvZGl2PiIrIjx0YWJsZSAiK24rIicgY2VsbHBhZGRpbmc9JzAn IGNlbGxzcGFjaW5nPScwJz4iKyI8dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPiIs ZD1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGQuc3R5bGUuY3NzVGV4dD1zKyJ3aWR0 aDowO2hlaWdodDowO3Bvc2l0aW9uOnN0YXRpYzt0b3A6MDttYXJnaW4tdG9wOiIr bSsicHgiLHUuaW5zZXJ0QmVmb3JlKGQsdS5maXJzdENoaWxkKSxwPWMuY3JlYXRl RWxlbWVudCgiZGl2IiksZC5hcHBlbmRDaGlsZChwKSxwLmlubmVySFRNTD0iPHRh YmxlPjx0cj48dGQgc3R5bGU9JyIrdCsiMDtkaXNwbGF5Om5vbmUnPjwvdGQ+PHRk PnQ8L3RkPjwvdHI+PC90YWJsZT4iLGs9cC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi dGQiKSxvPWtbMF0ub2Zmc2V0SGVpZ2h0PT09MCxrWzBdLnN0eWxlLmRpc3BsYXk9 IiIsa1sxXS5zdHlsZS5kaXNwbGF5PSJub25lIixiLnJlbGlhYmxlSGlkZGVuT2Zm c2V0cz1vJiZrWzBdLm9mZnNldEhlaWdodD09PTAsYS5nZXRDb21wdXRlZFN0eWxl JiYocC5pbm5lckhUTUw9IiIsbD1jLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGwuc3R5 bGUud2lkdGg9IjAiLGwuc3R5bGUubWFyZ2luUmlnaHQ9IjAiLHAuc3R5bGUud2lk dGg9IjJweCIscC5hcHBlbmRDaGlsZChsKSxiLnJlbGlhYmxlTWFyZ2luUmlnaHQ9 KHBhcnNlSW50KChhLmdldENvbXB1dGVkU3R5bGUobCxudWxsKXx8e21hcmdpblJp Z2h0OjB9KS5tYXJnaW5SaWdodCwxMCl8fDApPT09MCksdHlwZW9mIHAuc3R5bGUu em9vbSE9InVuZGVmaW5lZCImJihwLmlubmVySFRNTD0iIixwLnN0eWxlLndpZHRo PXAuc3R5bGUucGFkZGluZz0iMXB4IixwLnN0eWxlLmJvcmRlcj0wLHAuc3R5bGUu b3ZlcmZsb3c9ImhpZGRlbiIscC5zdHlsZS5kaXNwbGF5PSJpbmxpbmUiLHAuc3R5 bGUuem9vbT0xLGIuaW5saW5lQmxvY2tOZWVkc0xheW91dD1wLm9mZnNldFdpZHRo PT09MyxwLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixwLnN0eWxlLm92ZXJmbG93PSJ2 aXNpYmxlIixwLmlubmVySFRNTD0iPGRpdiBzdHlsZT0nd2lkdGg6NXB4Oyc+PC9k aXY+IixiLnNocmlua1dyYXBCbG9ja3M9cC5vZmZzZXRXaWR0aCE9PTMpLHAuc3R5 bGUuY3NzVGV4dD1yK3MscC5pbm5lckhUTUw9cSxlPXAuZmlyc3RDaGlsZCxnPWUu Zmlyc3RDaGlsZCxpPWUubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxk LGo9e2RvZXNOb3RBZGRCb3JkZXI6Zy5vZmZzZXRUb3AhPT01LGRvZXNBZGRCb3Jk ZXJGb3JUYWJsZUFuZENlbGxzOmkub2Zmc2V0VG9wPT09NX0sZy5zdHlsZS5wb3Np dGlvbj0iZml4ZWQiLGcuc3R5bGUudG9wPSIyMHB4IixqLmZpeGVkUG9zaXRpb249 Zy5vZmZzZXRUb3A9PT0yMHx8Zy5vZmZzZXRUb3A9PT0xNSxnLnN0eWxlLnBvc2l0 aW9uPWcuc3R5bGUudG9wPSIiLGUuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZS5z dHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGouc3VidHJhY3RzQm9yZGVyRm9yT3Zl cmZsb3dOb3RWaXNpYmxlPWcub2Zmc2V0VG9wPT09LTUsai5kb2VzTm90SW5jbHVk ZU1hcmdpbkluQm9keU9mZnNldD11Lm9mZnNldFRvcCE9PW0sYS5nZXRDb21wdXRl ZFN0eWxlJiYocC5zdHlsZS5tYXJnaW5Ub3A9IjElIixiLnBpeGVsTWFyZ2luPShh LmdldENvbXB1dGVkU3R5bGUocCxudWxsKXx8e21hcmdpblRvcDowfSkubWFyZ2lu VG9wIT09IjElIiksdHlwZW9mIGQuc3R5bGUuem9vbSE9InVuZGVmaW5lZCImJihk LnN0eWxlLnpvb209MSksdS5yZW1vdmVDaGlsZChkKSxsPXA9ZD1udWxsLGYuZXh0 ZW5kKGIsaikpfSk7cmV0dXJuIGJ9KCk7dmFyIGo9L14oPzpcey4qXH18XFsuKlxd KSQvLGs9LyhbQS1aXSkvZztmLmV4dGVuZCh7Y2FjaGU6e30sdXVpZDowLGV4cGFu ZG86ImpRdWVyeSIrKGYuZm4uanF1ZXJ5K01hdGgucmFuZG9tKCkpLnJlcGxhY2Uo L1xEL2csIiIpLG5vRGF0YTp7ZW1iZWQ6ITAsb2JqZWN0OiJjbHNpZDpEMjdDREI2 RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiLGFwcGxldDohMH0saGFzRGF0 YTpmdW5jdGlvbihhKXthPWEubm9kZVR5cGU/Zi5jYWNoZVthW2YuZXhwYW5kb11d OmFbZi5leHBhbmRvXTtyZXR1cm4hIWEmJiFtKGEpfSxkYXRhOmZ1bmN0aW9uKGEs YyxkLGUpe2lmKCEhZi5hY2NlcHREYXRhKGEpKXt2YXIgZyxoLGksaj1mLmV4cGFu ZG8saz10eXBlb2YgYz09InN0cmluZyIsbD1hLm5vZGVUeXBlLG09bD9mLmNhY2hl OmEsbj1sP2Fbal06YVtqXSYmaixvPWM9PT0iZXZlbnRzIjtpZigoIW58fCFtW25d fHwhbyYmIWUmJiFtW25dLmRhdGEpJiZrJiZkPT09YilyZXR1cm47bnx8KGw/YVtq XT1uPSsrZi51dWlkOm49aiksbVtuXXx8KG1bbl09e30sbHx8KG1bbl0udG9KU09O PWYubm9vcCkpO2lmKHR5cGVvZiBjPT0ib2JqZWN0Inx8dHlwZW9mIGM9PSJmdW5j dGlvbiIpZT9tW25dPWYuZXh0ZW5kKG1bbl0sYyk6bVtuXS5kYXRhPWYuZXh0ZW5k KG1bbl0uZGF0YSxjKTtnPWg9bVtuXSxlfHwoaC5kYXRhfHwoaC5kYXRhPXt9KSxo PWguZGF0YSksZCE9PWImJihoW2YuY2FtZWxDYXNlKGMpXT1kKTtpZihvJiYhaFtj XSlyZXR1cm4gZy5ldmVudHM7az8oaT1oW2NdLGk9PW51bGwmJihpPWhbZi5jYW1l bENhc2UoYyldKSk6aT1oO3JldHVybiBpfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihh LGIsYyl7aWYoISFmLmFjY2VwdERhdGEoYSkpe3ZhciBkLGUsZyxoPWYuZXhwYW5k byxpPWEubm9kZVR5cGUsaj1pP2YuY2FjaGU6YSxrPWk/YVtoXTpoO2lmKCFqW2td KXJldHVybjtpZihiKXtkPWM/altrXTpqW2tdLmRhdGE7aWYoZCl7Zi5pc0FycmF5 KGIpfHwoYiBpbiBkP2I9W2JdOihiPWYuY2FtZWxDYXNlKGIpLGIgaW4gZD9iPVti XTpiPWIuc3BsaXQoIiAiKSkpO2ZvcihlPTAsZz1iLmxlbmd0aDtlPGc7ZSsrKWRl bGV0ZSBkW2JbZV1dO2lmKCEoYz9tOmYuaXNFbXB0eU9iamVjdCkoZCkpcmV0dXJu fX1pZighYyl7ZGVsZXRlIGpba10uZGF0YTtpZighbShqW2tdKSlyZXR1cm59Zi5z dXBwb3J0LmRlbGV0ZUV4cGFuZG98fCFqLnNldEludGVydmFsP2RlbGV0ZSBqW2td Ompba109bnVsbCxpJiYoZi5zdXBwb3J0LmRlbGV0ZUV4cGFuZG8/ZGVsZXRlIGFb aF06YS5yZW1vdmVBdHRyaWJ1dGU/YS5yZW1vdmVBdHRyaWJ1dGUoaCk6YVtoXT1u dWxsKX19LF9kYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5kYXRhKGEsYixj LCEwKX0sYWNjZXB0RGF0YTpmdW5jdGlvbihhKXtpZihhLm5vZGVOYW1lKXt2YXIg Yj1mLm5vRGF0YVthLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldO2lmKGIpcmV0dXJu IGIhPT0hMCYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKT09PWJ9cmV0dXJuITB9 fSksZi5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxjKXt2YXIgZCxlLGcsaCxp LGo9dGhpc1swXSxrPTAsbT1udWxsO2lmKGE9PT1iKXtpZih0aGlzLmxlbmd0aCl7 bT1mLmRhdGEoaik7aWYoai5ub2RlVHlwZT09PTEmJiFmLl9kYXRhKGosInBhcnNl ZEF0dHJzIikpe2c9ai5hdHRyaWJ1dGVzO2ZvcihpPWcubGVuZ3RoO2s8aTtrKysp aD1nW2tdLm5hbWUsaC5pbmRleE9mKCJkYXRhLSIpPT09MCYmKGg9Zi5jYW1lbENh c2UoaC5zdWJzdHJpbmcoNSkpLGwoaixoLG1baF0pKTtmLl9kYXRhKGosInBhcnNl ZEF0dHJzIiwhMCl9fXJldHVybiBtfWlmKHR5cGVvZiBhPT0ib2JqZWN0IilyZXR1 cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7Zi5kYXRhKHRoaXMsYSl9KTtkPWEuc3Bs aXQoIi4iLDIpLGRbMV09ZFsxXT8iLiIrZFsxXToiIixlPWRbMV0rIiEiO3JldHVy biBmLmFjY2Vzcyh0aGlzLGZ1bmN0aW9uKGMpe2lmKGM9PT1iKXttPXRoaXMudHJp Z2dlckhhbmRsZXIoImdldERhdGEiK2UsW2RbMF1dKSxtPT09YiYmaiYmKG09Zi5k YXRhKGosYSksbT1sKGosYSxtKSk7cmV0dXJuIG09PT1iJiZkWzFdP3RoaXMuZGF0 YShkWzBdKTptfWRbMV09Yyx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1mKHRo aXMpO2IudHJpZ2dlckhhbmRsZXIoInNldERhdGEiK2UsZCksZi5kYXRhKHRoaXMs YSxjKSxiLnRyaWdnZXJIYW5kbGVyKCJjaGFuZ2VEYXRhIitlLGQpfSl9LG51bGws Yyxhcmd1bWVudHMubGVuZ3RoPjEsbnVsbCwhMSl9LHJlbW92ZURhdGE6ZnVuY3Rp b24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YucmVtb3ZlRGF0YSh0 aGlzLGEpfSl9fSksZi5leHRlbmQoe19tYXJrOmZ1bmN0aW9uKGEsYil7YSYmKGI9 KGJ8fCJmeCIpKyJtYXJrIixmLl9kYXRhKGEsYiwoZi5fZGF0YShhLGIpfHwwKSsx KSl9LF91bm1hcms6ZnVuY3Rpb24oYSxiLGMpe2EhPT0hMCYmKGM9YixiPWEsYT0h MSk7aWYoYil7Yz1jfHwiZngiO3ZhciBkPWMrIm1hcmsiLGU9YT8wOihmLl9kYXRh KGIsZCl8fDEpLTE7ZT9mLl9kYXRhKGIsZCxlKTooZi5yZW1vdmVEYXRhKGIsZCwh MCksbihiLGMsIm1hcmsiKSl9fSxxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7 aWYoYSl7Yj0oYnx8ImZ4IikrInF1ZXVlIixkPWYuX2RhdGEoYSxiKSxjJiYoIWR8 fGYuaXNBcnJheShjKT9kPWYuX2RhdGEoYSxiLGYubWFrZUFycmF5KGMpKTpkLnB1 c2goYykpO3JldHVybiBkfHxbXX19LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8 fCJmeCI7dmFyIGM9Zi5xdWV1ZShhLGIpLGQ9Yy5zaGlmdCgpLGU9e307ZD09PSJp bnByb2dyZXNzIiYmKGQ9Yy5zaGlmdCgpKSxkJiYoYj09PSJmeCImJmMudW5zaGlm dCgiaW5wcm9ncmVzcyIpLGYuX2RhdGEoYSxiKyIucnVuIixlKSxkLmNhbGwoYSxm dW5jdGlvbigpe2YuZGVxdWV1ZShhLGIpfSxlKSksYy5sZW5ndGh8fChmLnJlbW92 ZURhdGEoYSxiKyJxdWV1ZSAiK2IrIi5ydW4iLCEwKSxuKGEsYiwicXVldWUiKSl9 fSksZi5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYyl7dmFyIGQ9Mjt0eXBl b2YgYSE9InN0cmluZyImJihjPWEsYT0iZngiLGQtLSk7aWYoYXJndW1lbnRzLmxl bmd0aDxkKXJldHVybiBmLnF1ZXVlKHRoaXNbMF0sYSk7cmV0dXJuIGM9PT1iP3Ro aXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Zi5xdWV1ZSh0aGlzLGEsYyk7 YT09PSJmeCImJmJbMF0hPT0iaW5wcm9ncmVzcyImJmYuZGVxdWV1ZSh0aGlzLGEp fSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlv bigpe2YuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlbGF5OmZ1bmN0aW9uKGEsYil7YT1m LmZ4P2YuZnguc3BlZWRzW2FdfHxhOmEsYj1ifHwiZngiO3JldHVybiB0aGlzLnF1 ZXVlKGIsZnVuY3Rpb24oYixjKXt2YXIgZD1zZXRUaW1lb3V0KGIsYSk7Yy5zdG9w PWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGQpfX0pfSxjbGVhclF1ZXVlOmZ1bmN0 aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGF8fCJmeCIsW10pfSxwcm9taXNlOmZ1 bmN0aW9uKGEsYyl7ZnVuY3Rpb24gbSgpey0taHx8ZC5yZXNvbHZlV2l0aChlLFtl XSl9dHlwZW9mIGEhPSJzdHJpbmciJiYoYz1hLGE9YiksYT1hfHwiZngiO3ZhciBk PWYuRGVmZXJyZWQoKSxlPXRoaXMsZz1lLmxlbmd0aCxoPTEsaT1hKyJkZWZlciIs aj1hKyJxdWV1ZSIsaz1hKyJtYXJrIixsO3doaWxlKGctLSlpZihsPWYuZGF0YShl W2ddLGksYiwhMCl8fChmLmRhdGEoZVtnXSxqLGIsITApfHxmLmRhdGEoZVtnXSxr LGIsITApKSYmZi5kYXRhKGVbZ10saSxmLkNhbGxiYWNrcygib25jZSBtZW1vcnki KSwhMCkpaCsrLGwuYWRkKG0pO20oKTtyZXR1cm4gZC5wcm9taXNlKGMpfX0pO3Zh ciBvPS9bXG5cdFxyXS9nLHA9L1xzKy8scT0vXHIvZyxyPS9eKD86YnV0dG9ufGlu cHV0KSQvaSxzPS9eKD86YnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFy ZWEpJC9pLHQ9L15hKD86cmVhKT8kL2ksdT0vXig/OmF1dG9mb2N1c3xhdXRvcGxh eXxhc3luY3xjaGVja2VkfGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxs b29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkfHNlbGVj dGVkKSQvaSx2PWYuc3VwcG9ydC5nZXRTZXRBdHRyaWJ1dGUsdyx4LHk7Zi5mbi5l eHRlbmQoe2F0dHI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZi5hY2Nlc3ModGhpcyxm LmF0dHIsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZUF0dHI6ZnVuY3Rp b24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2YucmVtb3ZlQXR0cih0 aGlzLGEpfSl9LHByb3A6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZi5hY2Nlc3ModGhp cyxmLnByb3AsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVu Y3Rpb24oYSl7YT1mLnByb3BGaXhbYV18fGE7cmV0dXJuIHRoaXMuZWFjaChmdW5j dGlvbigpe3RyeXt0aGlzW2FdPWIsZGVsZXRlIHRoaXNbYV19Y2F0Y2goYyl7fX0p fSxhZGRDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxnLGgsaTtpZihmLmlz RnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtmKHRoaXMp LmFkZENsYXNzKGEuY2FsbCh0aGlzLGIsdGhpcy5jbGFzc05hbWUpKX0pO2lmKGEm JnR5cGVvZiBhPT0ic3RyaW5nIil7Yj1hLnNwbGl0KHApO2ZvcihjPTAsZD10aGlz Lmxlbmd0aDtjPGQ7YysrKXtlPXRoaXNbY107aWYoZS5ub2RlVHlwZT09PTEpaWYo IWUuY2xhc3NOYW1lJiZiLmxlbmd0aD09PTEpZS5jbGFzc05hbWU9YTtlbHNle2c9 IiAiK2UuY2xhc3NOYW1lKyIgIjtmb3IoaD0wLGk9Yi5sZW5ndGg7aDxpO2grKyl+ Zy5pbmRleE9mKCIgIitiW2hdKyIgIil8fChnKz1iW2hdKyIgIik7ZS5jbGFzc05h bWU9Zi50cmltKGcpfX19cmV0dXJuIHRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9u KGEpe3ZhciBjLGQsZSxnLGgsaSxqO2lmKGYuaXNGdW5jdGlvbihhKSlyZXR1cm4g dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2YodGhpcykucmVtb3ZlQ2xhc3MoYS5jYWxs KHRoaXMsYix0aGlzLmNsYXNzTmFtZSkpfSk7aWYoYSYmdHlwZW9mIGE9PSJzdHJp bmcifHxhPT09Yil7Yz0oYXx8IiIpLnNwbGl0KHApO2ZvcihkPTAsZT10aGlzLmxl bmd0aDtkPGU7ZCsrKXtnPXRoaXNbZF07aWYoZy5ub2RlVHlwZT09PTEmJmcuY2xh c3NOYW1lKWlmKGEpe2g9KCIgIitnLmNsYXNzTmFtZSsiICIpLnJlcGxhY2Uobywi ICIpO2ZvcihpPTAsaj1jLmxlbmd0aDtpPGo7aSsrKWg9aC5yZXBsYWNlKCIgIitj W2ldKyIgIiwiICIpO2cuY2xhc3NOYW1lPWYudHJpbShoKX1lbHNlIGcuY2xhc3NO YW1lPSIifX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2 YXIgYz10eXBlb2YgYSxkPXR5cGVvZiBiPT0iYm9vbGVhbiI7aWYoZi5pc0Z1bmN0 aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7Zih0aGlzKS50b2dn bGVDbGFzcyhhLmNhbGwodGhpcyxjLHRoaXMuY2xhc3NOYW1lLGIpLGIpfSk7cmV0 dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKGM9PT0ic3RyaW5nIil7dmFyIGUs Zz0wLGg9Zih0aGlzKSxpPWIsaj1hLnNwbGl0KHApO3doaWxlKGU9altnKytdKWk9 ZD9pOiFoLmhhc0NsYXNzKGUpLGhbaT8iYWRkQ2xhc3MiOiJyZW1vdmVDbGFzcyJd KGUpfWVsc2UgaWYoYz09PSJ1bmRlZmluZWQifHxjPT09ImJvb2xlYW4iKXRoaXMu Y2xhc3NOYW1lJiZmLl9kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHRoaXMuY2xh c3NOYW1lKSx0aGlzLmNsYXNzTmFtZT10aGlzLmNsYXNzTmFtZXx8YT09PSExPyIi OmYuX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIn0pfSxoYXNDbGFzczpm dW5jdGlvbihhKXt2YXIgYj0iICIrYSsiICIsYz0wLGQ9dGhpcy5sZW5ndGg7Zm9y KDtjPGQ7YysrKWlmKHRoaXNbY10ubm9kZVR5cGU9PT0xJiYoIiAiK3RoaXNbY10u Y2xhc3NOYW1lKyIgIikucmVwbGFjZShvLCIgIikuaW5kZXhPZihiKT4tMSlyZXR1 cm4hMDtyZXR1cm4hMX0sdmFsOmZ1bmN0aW9uKGEpe3ZhciBjLGQsZSxnPXRoaXNb MF07e2lmKCEhYXJndW1lbnRzLmxlbmd0aCl7ZT1mLmlzRnVuY3Rpb24oYSk7cmV0 dXJuIHRoaXMuZWFjaChmdW5jdGlvbihkKXt2YXIgZz1mKHRoaXMpLGg7aWYodGhp cy5ub2RlVHlwZT09PTEpe2U/aD1hLmNhbGwodGhpcyxkLGcudmFsKCkpOmg9YSxo PT1udWxsP2g9IiI6dHlwZW9mIGg9PSJudW1iZXIiP2grPSIiOmYuaXNBcnJheSho KSYmKGg9Zi5tYXAoaCxmdW5jdGlvbihhKXtyZXR1cm4gYT09bnVsbD8iIjphKyIi fSkpLGM9Zi52YWxIb29rc1t0aGlzLnR5cGVdfHxmLnZhbEhvb2tzW3RoaXMubm9k ZU5hbWUudG9Mb3dlckNhc2UoKV07aWYoIWN8fCEoInNldCJpbiBjKXx8Yy5zZXQo dGhpcyxoLCJ2YWx1ZSIpPT09Yil0aGlzLnZhbHVlPWh9fSl9aWYoZyl7Yz1mLnZh bEhvb2tzW2cudHlwZV18fGYudmFsSG9va3NbZy5ub2RlTmFtZS50b0xvd2VyQ2Fz ZSgpXTtpZihjJiYiZ2V0ImluIGMmJihkPWMuZ2V0KGcsInZhbHVlIikpIT09Yily ZXR1cm4gZDtkPWcudmFsdWU7cmV0dXJuIHR5cGVvZiBkPT0ic3RyaW5nIj9kLnJl cGxhY2UocSwiIik6ZD09bnVsbD8iIjpkfX19fSksZi5leHRlbmQoe3ZhbEhvb2tz OntvcHRpb246e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLmF0dHJpYnV0ZXMudmFs dWU7cmV0dXJuIWJ8fGIuc3BlY2lmaWVkP2EudmFsdWU6YS50ZXh0fX0sc2VsZWN0 OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZz1hLnNlbGVjdGVkSW5kZXgs aD1bXSxpPWEub3B0aW9ucyxqPWEudHlwZT09PSJzZWxlY3Qtb25lIjtpZihnPDAp cmV0dXJuIG51bGw7Yz1qP2c6MCxkPWo/ZysxOmkubGVuZ3RoO2Zvcig7YzxkO2Mr Kyl7ZT1pW2NdO2lmKGUuc2VsZWN0ZWQmJihmLnN1cHBvcnQub3B0RGlzYWJsZWQ/ IWUuZGlzYWJsZWQ6ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIik9PT1udWxsKSYm KCFlLnBhcmVudE5vZGUuZGlzYWJsZWR8fCFmLm5vZGVOYW1lKGUucGFyZW50Tm9k ZSwib3B0Z3JvdXAiKSkpe2I9ZihlKS52YWwoKTtpZihqKXJldHVybiBiO2gucHVz aChiKX19aWYoaiYmIWgubGVuZ3RoJiZpLmxlbmd0aClyZXR1cm4gZihpW2ddKS52 YWwoKTtyZXR1cm4gaH0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9Zi5tYWtlQXJy YXkoYik7ZihhKS5maW5kKCJvcHRpb24iKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5z ZWxlY3RlZD1mLmluQXJyYXkoZih0aGlzKS52YWwoKSxjKT49MH0pLGMubGVuZ3Ro fHwoYS5zZWxlY3RlZEluZGV4PS0xKTtyZXR1cm4gY319fSxhdHRyRm46e3ZhbDoh MCxjc3M6ITAsaHRtbDohMCx0ZXh0OiEwLGRhdGE6ITAsd2lkdGg6ITAsaGVpZ2h0 OiEwLG9mZnNldDohMH0sYXR0cjpmdW5jdGlvbihhLGMsZCxlKXt2YXIgZyxoLGks aj1hLm5vZGVUeXBlO2lmKCEhYSYmaiE9PTMmJmohPT04JiZqIT09Mil7aWYoZSYm YyBpbiBmLmF0dHJGbilyZXR1cm4gZihhKVtjXShkKTtpZih0eXBlb2YgYS5nZXRB dHRyaWJ1dGU9PSJ1bmRlZmluZWQiKXJldHVybiBmLnByb3AoYSxjLGQpO2k9aiE9 PTF8fCFmLmlzWE1MRG9jKGEpLGkmJihjPWMudG9Mb3dlckNhc2UoKSxoPWYuYXR0 ckhvb2tzW2NdfHwodS50ZXN0KGMpP3g6dykpO2lmKGQhPT1iKXtpZihkPT09bnVs bCl7Zi5yZW1vdmVBdHRyKGEsYyk7cmV0dXJufWlmKGgmJiJzZXQiaW4gaCYmaSYm KGc9aC5zZXQoYSxkLGMpKSE9PWIpcmV0dXJuIGc7YS5zZXRBdHRyaWJ1dGUoYywi IitkKTtyZXR1cm4gZH1pZihoJiYiZ2V0ImluIGgmJmkmJihnPWguZ2V0KGEsYykp IT09bnVsbClyZXR1cm4gZztnPWEuZ2V0QXR0cmlidXRlKGMpO3JldHVybiBnPT09 bnVsbD9iOmd9fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGcs aCxpPTA7aWYoYiYmYS5ub2RlVHlwZT09PTEpe2Q9Yi50b0xvd2VyQ2FzZSgpLnNw bGl0KHApLGc9ZC5sZW5ndGg7Zm9yKDtpPGc7aSsrKWU9ZFtpXSxlJiYoYz1mLnBy b3BGaXhbZV18fGUsaD11LnRlc3QoZSksaHx8Zi5hdHRyKGEsZSwiIiksYS5yZW1v dmVBdHRyaWJ1dGUodj9lOmMpLGgmJmMgaW4gYSYmKGFbY109ITEpKX19LGF0dHJI b29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoci50ZXN0KGEubm9kZU5h bWUpJiZhLnBhcmVudE5vZGUpZi5lcnJvcigidHlwZSBwcm9wZXJ0eSBjYW4ndCBi ZSBjaGFuZ2VkIik7ZWxzZSBpZighZi5zdXBwb3J0LnJhZGlvVmFsdWUmJmI9PT0i cmFkaW8iJiZmLm5vZGVOYW1lKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7YS5z ZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpO3JldHVybiBifX19 LHZhbHVlOntnZXQ6ZnVuY3Rpb24oYSxiKXtpZih3JiZmLm5vZGVOYW1lKGEsImJ1 dHRvbiIpKXJldHVybiB3LmdldChhLGIpO3JldHVybiBiIGluIGE/YS52YWx1ZTpu dWxsfSxzZXQ6ZnVuY3Rpb24oYSxiLGMpe2lmKHcmJmYubm9kZU5hbWUoYSwiYnV0 dG9uIikpcmV0dXJuIHcuc2V0KGEsYixjKTthLnZhbHVlPWJ9fX0scHJvcEZpeDp7 dGFiaW5kZXg6InRhYkluZGV4IixyZWFkb25seToicmVhZE9ubHkiLCJmb3IiOiJo dG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUiLG1heGxlbmd0aDoibWF4TGVuZ3Ro IixjZWxsc3BhY2luZzoiY2VsbFNwYWNpbmciLGNlbGxwYWRkaW5nOiJjZWxsUGFk ZGluZyIscm93c3Bhbjoicm93U3BhbiIsY29sc3BhbjoiY29sU3BhbiIsdXNlbWFw OiJ1c2VNYXAiLGZyYW1lYm9yZGVyOiJmcmFtZUJvcmRlciIsY29udGVudGVkaXRh YmxlOiJjb250ZW50RWRpdGFibGUifSxwcm9wOmZ1bmN0aW9uKGEsYyxkKXt2YXIg ZSxnLGgsaT1hLm5vZGVUeXBlO2lmKCEhYSYmaSE9PTMmJmkhPT04JiZpIT09Mil7 aD1pIT09MXx8IWYuaXNYTUxEb2MoYSksaCYmKGM9Zi5wcm9wRml4W2NdfHxjLGc9 Zi5wcm9wSG9va3NbY10pO3JldHVybiBkIT09Yj9nJiYic2V0ImluIGcmJihlPWcu c2V0KGEsZCxjKSkhPT1iP2U6YVtjXT1kOmcmJiJnZXQiaW4gZyYmKGU9Zy5nZXQo YSxjKSkhPT1udWxsP2U6YVtjXX19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpm dW5jdGlvbihhKXt2YXIgYz1hLmdldEF0dHJpYnV0ZU5vZGUoInRhYmluZGV4Iik7 cmV0dXJuIGMmJmMuc3BlY2lmaWVkP3BhcnNlSW50KGMudmFsdWUsMTApOnMudGVz dChhLm5vZGVOYW1lKXx8dC50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDpifX19 fSksZi5hdHRySG9va3MudGFiaW5kZXg9Zi5wcm9wSG9va3MudGFiSW5kZXgseD17 Z2V0OmZ1bmN0aW9uKGEsYyl7dmFyIGQsZT1mLnByb3AoYSxjKTtyZXR1cm4gZT09 PSEwfHx0eXBlb2YgZSE9ImJvb2xlYW4iJiYoZD1hLmdldEF0dHJpYnV0ZU5vZGUo YykpJiZkLm5vZGVWYWx1ZSE9PSExP2MudG9Mb3dlckNhc2UoKTpifSxzZXQ6ZnVu Y3Rpb24oYSxiLGMpe3ZhciBkO2I9PT0hMT9mLnJlbW92ZUF0dHIoYSxjKTooZD1m LnByb3BGaXhbY118fGMsZCBpbiBhJiYoYVtkXT0hMCksYS5zZXRBdHRyaWJ1dGUo YyxjLnRvTG93ZXJDYXNlKCkpKTtyZXR1cm4gY319LHZ8fCh5PXtuYW1lOiEwLGlk OiEwLGNvb3JkczohMH0sdz1mLnZhbEhvb2tzLmJ1dHRvbj17Z2V0OmZ1bmN0aW9u KGEsYyl7dmFyIGQ7ZD1hLmdldEF0dHJpYnV0ZU5vZGUoYyk7cmV0dXJuIGQmJih5 W2NdP2Qubm9kZVZhbHVlIT09IiI6ZC5zcGVjaWZpZWQpP2Qubm9kZVZhbHVlOmJ9 LHNldDpmdW5jdGlvbihhLGIsZCl7dmFyIGU9YS5nZXRBdHRyaWJ1dGVOb2RlKGQp O2V8fChlPWMuY3JlYXRlQXR0cmlidXRlKGQpLGEuc2V0QXR0cmlidXRlTm9kZShl KSk7cmV0dXJuIGUubm9kZVZhbHVlPWIrIiJ9fSxmLmF0dHJIb29rcy50YWJpbmRl eC5zZXQ9dy5zZXQsZi5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSxmdW5jdGlvbihh LGIpe2YuYXR0ckhvb2tzW2JdPWYuZXh0ZW5kKGYuYXR0ckhvb2tzW2JdLHtzZXQ6 ZnVuY3Rpb24oYSxjKXtpZihjPT09IiIpe2Euc2V0QXR0cmlidXRlKGIsImF1dG8i KTtyZXR1cm4gY319fSl9KSxmLmF0dHJIb29rcy5jb250ZW50ZWRpdGFibGU9e2dl dDp3LmdldCxzZXQ6ZnVuY3Rpb24oYSxiLGMpe2I9PT0iIiYmKGI9ImZhbHNlIiks dy5zZXQoYSxiLGMpfX0pLGYuc3VwcG9ydC5ocmVmTm9ybWFsaXplZHx8Zi5lYWNo KFsiaHJlZiIsInNyYyIsIndpZHRoIiwiaGVpZ2h0Il0sZnVuY3Rpb24oYSxjKXtm LmF0dHJIb29rc1tjXT1mLmV4dGVuZChmLmF0dHJIb29rc1tjXSx7Z2V0OmZ1bmN0 aW9uKGEpe3ZhciBkPWEuZ2V0QXR0cmlidXRlKGMsMik7cmV0dXJuIGQ9PT1udWxs P2I6ZH19KX0pLGYuc3VwcG9ydC5zdHlsZXx8KGYuYXR0ckhvb2tzLnN0eWxlPXtn ZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGUuY3NzVGV4dC50b0xvd2VyQ2Fz ZSgpfHxifSxzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0 PSIiK2J9fSksZi5zdXBwb3J0Lm9wdFNlbGVjdGVkfHwoZi5wcm9wSG9va3Muc2Vs ZWN0ZWQ9Zi5leHRlbmQoZi5wcm9wSG9va3Muc2VsZWN0ZWQse2dldDpmdW5jdGlv bihhKXt2YXIgYj1hLnBhcmVudE5vZGU7YiYmKGIuc2VsZWN0ZWRJbmRleCxiLnBh cmVudE5vZGUmJmIucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KTtyZXR1cm4gbnVs bH19KSksZi5zdXBwb3J0LmVuY3R5cGV8fChmLnByb3BGaXguZW5jdHlwZT0iZW5j b2RpbmciKSxmLnN1cHBvcnQuY2hlY2tPbnx8Zi5lYWNoKFsicmFkaW8iLCJjaGVj a2JveCJdLGZ1bmN0aW9uKCl7Zi52YWxIb29rc1t0aGlzXT17Z2V0OmZ1bmN0aW9u KGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZSgidmFsdWUiKT09PW51bGw/Im9uIjph LnZhbHVlfX19KSxmLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24o KXtmLnZhbEhvb2tzW3RoaXNdPWYuZXh0ZW5kKGYudmFsSG9va3NbdGhpc10se3Nl dDpmdW5jdGlvbihhLGIpe2lmKGYuaXNBcnJheShiKSlyZXR1cm4gYS5jaGVja2Vk PWYuaW5BcnJheShmKGEpLnZhbCgpLGIpPj0wfX0pfSk7dmFyIHo9L14oPzp0ZXh0 YXJlYXxpbnB1dHxzZWxlY3QpJC9pLEE9L14oW15cLl0qKT8oPzpcLiguKykpPyQv LEI9Lyg/Ol58XHMpaG92ZXIoXC5cUyspP1xiLyxDPS9ea2V5LyxEPS9eKD86bW91 c2V8Y29udGV4dG1lbnUpfGNsaWNrLyxFPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vz b3V0Ymx1cikkLyxGPS9eKFx3KikoPzojKFtcd1wtXSspKT8oPzpcLihbXHdcLV0r KSk/JC8sRz1mdW5jdGlvbigKYSl7dmFyIGI9Ri5leGVjKGEpO2ImJihiWzFdPShi WzFdfHwiIikudG9Mb3dlckNhc2UoKSxiWzNdPWJbM10mJm5ldyBSZWdFeHAoIig/ Ol58XFxzKSIrYlszXSsiKD86XFxzfCQpIikpO3JldHVybiBifSxIPWZ1bmN0aW9u KGEsYil7dmFyIGM9YS5hdHRyaWJ1dGVzfHx7fTtyZXR1cm4oIWJbMV18fGEubm9k ZU5hbWUudG9Mb3dlckNhc2UoKT09PWJbMV0pJiYoIWJbMl18fChjLmlkfHx7fSku dmFsdWU9PT1iWzJdKSYmKCFiWzNdfHxiWzNdLnRlc3QoKGNbImNsYXNzIl18fHt9 KS52YWx1ZSkpfSxJPWZ1bmN0aW9uKGEpe3JldHVybiBmLmV2ZW50LnNwZWNpYWwu aG92ZXI/YTphLnJlcGxhY2UoQiwibW91c2VlbnRlciQxIG1vdXNlbGVhdmUkMSIp fTtmLmV2ZW50PXthZGQ6ZnVuY3Rpb24oYSxjLGQsZSxnKXt2YXIgaCxpLGosayxs LG0sbixvLHAscSxyLHM7aWYoIShhLm5vZGVUeXBlPT09M3x8YS5ub2RlVHlwZT09 PTh8fCFjfHwhZHx8IShoPWYuX2RhdGEoYSkpKSl7ZC5oYW5kbGVyJiYocD1kLGQ9 cC5oYW5kbGVyLGc9cC5zZWxlY3RvciksZC5ndWlkfHwoZC5ndWlkPWYuZ3VpZCsr KSxqPWguZXZlbnRzLGp8fChoLmV2ZW50cz1qPXt9KSxpPWguaGFuZGxlLGl8fCho LmhhbmRsZT1pPWZ1bmN0aW9uKGEpe3JldHVybiB0eXBlb2YgZiE9InVuZGVmaW5l ZCImJighYXx8Zi5ldmVudC50cmlnZ2VyZWQhPT1hLnR5cGUpP2YuZXZlbnQuZGlz cGF0Y2guYXBwbHkoaS5lbGVtLGFyZ3VtZW50cyk6Yn0saS5lbGVtPWEpLGM9Zi50 cmltKEkoYykpLnNwbGl0KCIgIik7Zm9yKGs9MDtrPGMubGVuZ3RoO2srKyl7bD1B LmV4ZWMoY1trXSl8fFtdLG09bFsxXSxuPShsWzJdfHwiIikuc3BsaXQoIi4iKS5z b3J0KCkscz1mLmV2ZW50LnNwZWNpYWxbbV18fHt9LG09KGc/cy5kZWxlZ2F0ZVR5 cGU6cy5iaW5kVHlwZSl8fG0scz1mLmV2ZW50LnNwZWNpYWxbbV18fHt9LG89Zi5l eHRlbmQoe3R5cGU6bSxvcmlnVHlwZTpsWzFdLGRhdGE6ZSxoYW5kbGVyOmQsZ3Vp ZDpkLmd1aWQsc2VsZWN0b3I6ZyxxdWljazpnJiZHKGcpLG5hbWVzcGFjZTpuLmpv aW4oIi4iKX0scCkscj1qW21dO2lmKCFyKXtyPWpbbV09W10sci5kZWxlZ2F0ZUNv dW50PTA7aWYoIXMuc2V0dXB8fHMuc2V0dXAuY2FsbChhLGUsbixpKT09PSExKWEu YWRkRXZlbnRMaXN0ZW5lcj9hLmFkZEV2ZW50TGlzdGVuZXIobSxpLCExKTphLmF0 dGFjaEV2ZW50JiZhLmF0dGFjaEV2ZW50KCJvbiIrbSxpKX1zLmFkZCYmKHMuYWRk LmNhbGwoYSxvKSxvLmhhbmRsZXIuZ3VpZHx8KG8uaGFuZGxlci5ndWlkPWQuZ3Vp ZCkpLGc/ci5zcGxpY2Uoci5kZWxlZ2F0ZUNvdW50KyssMCxvKTpyLnB1c2gobyks Zi5ldmVudC5nbG9iYWxbbV09ITB9YT1udWxsfX0sZ2xvYmFsOnt9LHJlbW92ZTpm dW5jdGlvbihhLGIsYyxkLGUpe3ZhciBnPWYuaGFzRGF0YShhKSYmZi5fZGF0YShh KSxoLGksaixrLGwsbSxuLG8scCxxLHIscztpZighIWcmJiEhKG89Zy5ldmVudHMp KXtiPWYudHJpbShJKGJ8fCIiKSkuc3BsaXQoIiAiKTtmb3IoaD0wO2g8Yi5sZW5n dGg7aCsrKXtpPUEuZXhlYyhiW2hdKXx8W10saj1rPWlbMV0sbD1pWzJdO2lmKCFq KXtmb3IoaiBpbiBvKWYuZXZlbnQucmVtb3ZlKGEsaitiW2hdLGMsZCwhMCk7Y29u dGludWV9cD1mLmV2ZW50LnNwZWNpYWxbal18fHt9LGo9KGQ/cC5kZWxlZ2F0ZVR5 cGU6cC5iaW5kVHlwZSl8fGoscj1vW2pdfHxbXSxtPXIubGVuZ3RoLGw9bD9uZXcg UmVnRXhwKCIoXnxcXC4pIitsLnNwbGl0KCIuIikuc29ydCgpLmpvaW4oIlxcLig/ Oi4qXFwuKT8iKSsiKFxcLnwkKSIpOm51bGw7Zm9yKG49MDtuPHIubGVuZ3RoO24r KylzPXJbbl0sKGV8fGs9PT1zLm9yaWdUeXBlKSYmKCFjfHxjLmd1aWQ9PT1zLmd1 aWQpJiYoIWx8fGwudGVzdChzLm5hbWVzcGFjZSkpJiYoIWR8fGQ9PT1zLnNlbGVj dG9yfHxkPT09IioqIiYmcy5zZWxlY3RvcikmJihyLnNwbGljZShuLS0sMSkscy5z ZWxlY3RvciYmci5kZWxlZ2F0ZUNvdW50LS0scC5yZW1vdmUmJnAucmVtb3ZlLmNh bGwoYSxzKSk7ci5sZW5ndGg9PT0wJiZtIT09ci5sZW5ndGgmJigoIXAudGVhcmRv d258fHAudGVhcmRvd24uY2FsbChhLGwpPT09ITEpJiZmLnJlbW92ZUV2ZW50KGEs aixnLmhhbmRsZSksZGVsZXRlIG9bal0pfWYuaXNFbXB0eU9iamVjdChvKSYmKHE9 Zy5oYW5kbGUscSYmKHEuZWxlbT1udWxsKSxmLnJlbW92ZURhdGEoYSxbImV2ZW50 cyIsImhhbmRsZSJdLCEwKSl9fSxjdXN0b21FdmVudDp7Z2V0RGF0YTohMCxzZXRE YXRhOiEwLGNoYW5nZURhdGE6ITB9LHRyaWdnZXI6ZnVuY3Rpb24oYyxkLGUsZyl7 aWYoIWV8fGUubm9kZVR5cGUhPT0zJiZlLm5vZGVUeXBlIT09OCl7dmFyIGg9Yy50 eXBlfHxjLGk9W10saixrLGwsbSxuLG8scCxxLHIscztpZihFLnRlc3QoaCtmLmV2 ZW50LnRyaWdnZXJlZCkpcmV0dXJuO2guaW5kZXhPZigiISIpPj0wJiYoaD1oLnNs aWNlKDAsLTEpLGs9ITApLGguaW5kZXhPZigiLiIpPj0wJiYoaT1oLnNwbGl0KCIu IiksaD1pLnNoaWZ0KCksaS5zb3J0KCkpO2lmKCghZXx8Zi5ldmVudC5jdXN0b21F dmVudFtoXSkmJiFmLmV2ZW50Lmdsb2JhbFtoXSlyZXR1cm47Yz10eXBlb2YgYz09 Im9iamVjdCI/Y1tmLmV4cGFuZG9dP2M6bmV3IGYuRXZlbnQoaCxjKTpuZXcgZi5F dmVudChoKSxjLnR5cGU9aCxjLmlzVHJpZ2dlcj0hMCxjLmV4Y2x1c2l2ZT1rLGMu bmFtZXNwYWNlPWkuam9pbigiLiIpLGMubmFtZXNwYWNlX3JlPWMubmFtZXNwYWNl P25ldyBSZWdFeHAoIihefFxcLikiK2kuam9pbigiXFwuKD86LipcXC4pPyIpKyIo XFwufCQpIik6bnVsbCxvPWguaW5kZXhPZigiOiIpPDA/Im9uIitoOiIiO2lmKCFl KXtqPWYuY2FjaGU7Zm9yKGwgaW4gailqW2xdLmV2ZW50cyYmaltsXS5ldmVudHNb aF0mJmYuZXZlbnQudHJpZ2dlcihjLGQsaltsXS5oYW5kbGUuZWxlbSwhMCk7cmV0 dXJufWMucmVzdWx0PWIsYy50YXJnZXR8fChjLnRhcmdldD1lKSxkPWQhPW51bGw/ Zi5tYWtlQXJyYXkoZCk6W10sZC51bnNoaWZ0KGMpLHA9Zi5ldmVudC5zcGVjaWFs W2hdfHx7fTtpZihwLnRyaWdnZXImJnAudHJpZ2dlci5hcHBseShlLGQpPT09ITEp cmV0dXJuO3I9W1tlLHAuYmluZFR5cGV8fGhdXTtpZighZyYmIXAubm9CdWJibGUm JiFmLmlzV2luZG93KGUpKXtzPXAuZGVsZWdhdGVUeXBlfHxoLG09RS50ZXN0KHMr aCk/ZTplLnBhcmVudE5vZGUsbj1udWxsO2Zvcig7bTttPW0ucGFyZW50Tm9kZSly LnB1c2goW20sc10pLG49bTtuJiZuPT09ZS5vd25lckRvY3VtZW50JiZyLnB1c2go W24uZGVmYXVsdFZpZXd8fG4ucGFyZW50V2luZG93fHxhLHNdKX1mb3IobD0wO2w8 ci5sZW5ndGgmJiFjLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7bCsrKW09cltsXVsw XSxjLnR5cGU9cltsXVsxXSxxPShmLl9kYXRhKG0sImV2ZW50cyIpfHx7fSlbYy50 eXBlXSYmZi5fZGF0YShtLCJoYW5kbGUiKSxxJiZxLmFwcGx5KG0sZCkscT1vJiZt W29dLHEmJmYuYWNjZXB0RGF0YShtKSYmcS5hcHBseShtLGQpPT09ITEmJmMucHJl dmVudERlZmF1bHQoKTtjLnR5cGU9aCwhZyYmIWMuaXNEZWZhdWx0UHJldmVudGVk KCkmJighcC5fZGVmYXVsdHx8cC5fZGVmYXVsdC5hcHBseShlLm93bmVyRG9jdW1l bnQsZCk9PT0hMSkmJihoIT09ImNsaWNrInx8IWYubm9kZU5hbWUoZSwiYSIpKSYm Zi5hY2NlcHREYXRhKGUpJiZvJiZlW2hdJiYoaCE9PSJmb2N1cyImJmghPT0iYmx1 ciJ8fGMudGFyZ2V0Lm9mZnNldFdpZHRoIT09MCkmJiFmLmlzV2luZG93KGUpJiYo bj1lW29dLG4mJihlW29dPW51bGwpLGYuZXZlbnQudHJpZ2dlcmVkPWgsZVtoXSgp LGYuZXZlbnQudHJpZ2dlcmVkPWIsbiYmKGVbb109bikpO3JldHVybiBjLnJlc3Vs dH19LGRpc3BhdGNoOmZ1bmN0aW9uKGMpe2M9Zi5ldmVudC5maXgoY3x8YS5ldmVu dCk7dmFyIGQ9KGYuX2RhdGEodGhpcywiZXZlbnRzIil8fHt9KVtjLnR5cGVdfHxb XSxlPWQuZGVsZWdhdGVDb3VudCxnPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDAp LGg9IWMuZXhjbHVzaXZlJiYhYy5uYW1lc3BhY2UsaT1mLmV2ZW50LnNwZWNpYWxb Yy50eXBlXXx8e30saj1bXSxrLGwsbSxuLG8scCxxLHIscyx0LHU7Z1swXT1jLGMu ZGVsZWdhdGVUYXJnZXQ9dGhpcztpZighaS5wcmVEaXNwYXRjaHx8aS5wcmVEaXNw YXRjaC5jYWxsKHRoaXMsYykhPT0hMSl7aWYoZSYmKCFjLmJ1dHRvbnx8Yy50eXBl IT09ImNsaWNrIikpe249Zih0aGlzKSxuLmNvbnRleHQ9dGhpcy5vd25lckRvY3Vt ZW50fHx0aGlzO2ZvcihtPWMudGFyZ2V0O20hPXRoaXM7bT1tLnBhcmVudE5vZGV8 fHRoaXMpaWYobS5kaXNhYmxlZCE9PSEwKXtwPXt9LHI9W10sblswXT1tO2Zvcihr PTA7azxlO2srKylzPWRba10sdD1zLnNlbGVjdG9yLHBbdF09PT1iJiYocFt0XT1z LnF1aWNrP0gobSxzLnF1aWNrKTpuLmlzKHQpKSxwW3RdJiZyLnB1c2gocyk7ci5s ZW5ndGgmJmoucHVzaCh7ZWxlbTptLG1hdGNoZXM6cn0pfX1kLmxlbmd0aD5lJiZq LnB1c2goe2VsZW06dGhpcyxtYXRjaGVzOmQuc2xpY2UoZSl9KTtmb3Ioaz0wO2s8 ai5sZW5ndGgmJiFjLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7aysrKXtxPWpba10s Yy5jdXJyZW50VGFyZ2V0PXEuZWxlbTtmb3IobD0wO2w8cS5tYXRjaGVzLmxlbmd0 aCYmIWMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKTtsKyspe3M9cS5t YXRjaGVzW2xdO2lmKGh8fCFjLm5hbWVzcGFjZSYmIXMubmFtZXNwYWNlfHxjLm5h bWVzcGFjZV9yZSYmYy5uYW1lc3BhY2VfcmUudGVzdChzLm5hbWVzcGFjZSkpYy5k YXRhPXMuZGF0YSxjLmhhbmRsZU9iaj1zLG89KChmLmV2ZW50LnNwZWNpYWxbcy5v cmlnVHlwZV18fHt9KS5oYW5kbGV8fHMuaGFuZGxlcikuYXBwbHkocS5lbGVtLGcp LG8hPT1iJiYoYy5yZXN1bHQ9byxvPT09ITEmJihjLnByZXZlbnREZWZhdWx0KCks Yy5zdG9wUHJvcGFnYXRpb24oKSkpfX1pLnBvc3REaXNwYXRjaCYmaS5wb3N0RGlz cGF0Y2guY2FsbCh0aGlzLGMpO3JldHVybiBjLnJlc3VsdH19LHByb3BzOiJhdHRy Q2hhbmdlIGF0dHJOYW1lIHJlbGF0ZWROb2RlIHNyY0VsZW1lbnQgYWx0S2V5IGJ1 YmJsZXMgY2FuY2VsYWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZXZlbnRQaGFz ZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFt cCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntw cm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0 ZXI6ZnVuY3Rpb24oYSxiKXthLndoaWNoPT1udWxsJiYoYS53aGljaD1iLmNoYXJD b2RlIT1udWxsP2IuY2hhckNvZGU6Yi5rZXlDb2RlKTtyZXR1cm4gYX19LG1vdXNl SG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJv bUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2Ny ZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsZCl7 dmFyIGUsZixnLGg9ZC5idXR0b24saT1kLmZyb21FbGVtZW50O2EucGFnZVg9PW51 bGwmJmQuY2xpZW50WCE9bnVsbCYmKGU9YS50YXJnZXQub3duZXJEb2N1bWVudHx8 YyxmPWUuZG9jdW1lbnRFbGVtZW50LGc9ZS5ib2R5LGEucGFnZVg9ZC5jbGllbnRY KyhmJiZmLnNjcm9sbExlZnR8fGcmJmcuc2Nyb2xsTGVmdHx8MCktKGYmJmYuY2xp ZW50TGVmdHx8ZyYmZy5jbGllbnRMZWZ0fHwwKSxhLnBhZ2VZPWQuY2xpZW50WSso ZiYmZi5zY3JvbGxUb3B8fGcmJmcuc2Nyb2xsVG9wfHwwKS0oZiYmZi5jbGllbnRU b3B8fGcmJmcuY2xpZW50VG9wfHwwKSksIWEucmVsYXRlZFRhcmdldCYmaSYmKGEu cmVsYXRlZFRhcmdldD1pPT09YS50YXJnZXQ/ZC50b0VsZW1lbnQ6aSksIWEud2hp Y2gmJmghPT1iJiYoYS53aGljaD1oJjE/MTpoJjI/MzpoJjQ/MjowKTtyZXR1cm4g YX19LGZpeDpmdW5jdGlvbihhKXtpZihhW2YuZXhwYW5kb10pcmV0dXJuIGE7dmFy IGQsZSxnPWEsaD1mLmV2ZW50LmZpeEhvb2tzW2EudHlwZV18fHt9LGk9aC5wcm9w cz90aGlzLnByb3BzLmNvbmNhdChoLnByb3BzKTp0aGlzLnByb3BzO2E9Zi5FdmVu dChnKTtmb3IoZD1pLmxlbmd0aDtkOyllPWlbLS1kXSxhW2VdPWdbZV07YS50YXJn ZXR8fChhLnRhcmdldD1nLnNyY0VsZW1lbnR8fGMpLGEudGFyZ2V0Lm5vZGVUeXBl PT09MyYmKGEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGUpLGEubWV0YUtleT09 PWImJihhLm1ldGFLZXk9YS5jdHJsS2V5KTtyZXR1cm4gaC5maWx0ZXI/aC5maWx0 ZXIoYSxnKTphfSxzcGVjaWFsOntyZWFkeTp7c2V0dXA6Zi5iaW5kUmVhZHl9LGxv YWQ6e25vQnViYmxlOiEwfSxmb2N1czp7ZGVsZWdhdGVUeXBlOiJmb2N1c2luIn0s Ymx1cjp7ZGVsZWdhdGVUeXBlOiJmb2N1c291dCJ9LGJlZm9yZXVubG9hZDp7c2V0 dXA6ZnVuY3Rpb24oYSxiLGMpe2YuaXNXaW5kb3codGhpcykmJih0aGlzLm9uYmVm b3JldW5sb2FkPWMpfSx0ZWFyZG93bjpmdW5jdGlvbihhLGIpe3RoaXMub25iZWZv cmV1bmxvYWQ9PT1iJiYodGhpcy5vbmJlZm9yZXVubG9hZD1udWxsKX19fSxzaW11 bGF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1mLmV4dGVuZChuZXcgZi5FdmVu dCxjLHt0eXBlOmEsaXNTaW11bGF0ZWQ6ITAsb3JpZ2luYWxFdmVudDp7fX0pO2Q/ Zi5ldmVudC50cmlnZ2VyKGUsbnVsbCxiKTpmLmV2ZW50LmRpc3BhdGNoLmNhbGwo YixlKSxlLmlzRGVmYXVsdFByZXZlbnRlZCgpJiZjLnByZXZlbnREZWZhdWx0KCl9 fSxmLmV2ZW50LmhhbmRsZT1mLmV2ZW50LmRpc3BhdGNoLGYucmVtb3ZlRXZlbnQ9 Yy5yZW1vdmVFdmVudExpc3RlbmVyP2Z1bmN0aW9uKGEsYixjKXthLnJlbW92ZUV2 ZW50TGlzdGVuZXImJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMsITEpfTpmdW5j dGlvbihhLGIsYyl7YS5kZXRhY2hFdmVudCYmYS5kZXRhY2hFdmVudCgib24iK2Is Yyl9LGYuRXZlbnQ9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBm LkV2ZW50KSlyZXR1cm4gbmV3IGYuRXZlbnQoYSxiKTthJiZhLnR5cGU/KHRoaXMu b3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQ cmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHxhLnJldHVyblZhbHVlPT09ITF8 fGEuZ2V0UHJldmVudERlZmF1bHQmJmEuZ2V0UHJldmVudERlZmF1bHQoKT9LOkop OnRoaXMudHlwZT1hLGImJmYuZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9 YSYmYS50aW1lU3RhbXB8fGYubm93KCksdGhpc1tmLmV4cGFuZG9dPSEwfSxmLkV2 ZW50LnByb3RvdHlwZT17cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmlz RGVmYXVsdFByZXZlbnRlZD1LO3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDshYXx8 KGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFs dWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzUHJvcGFn YXRpb25TdG9wcGVkPUs7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50OyFhfHwoYS5z dG9wUHJvcGFnYXRpb24mJmEuc3RvcFByb3BhZ2F0aW9uKCksYS5jYW5jZWxCdWJi bGU9ITApfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlz LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPUssdGhpcy5zdG9wUHJvcGFn YXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOkosaXNQcm9wYWdhdGlvblN0b3Bw ZWQ6Sixpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpKfSxmLmVhY2goe21v dXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSxmdW5j dGlvbihhLGIpe2YuZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVUeXBlOmIsYmlu ZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGM9dGhpcyxkPWEucmVsYXRl ZFRhcmdldCxlPWEuaGFuZGxlT2JqLGc9ZS5zZWxlY3RvcixoO2lmKCFkfHxkIT09 YyYmIWYuY29udGFpbnMoYyxkKSlhLnR5cGU9ZS5vcmlnVHlwZSxoPWUuaGFuZGxl ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWI7cmV0dXJuIGh9fX0pLGYu c3VwcG9ydC5zdWJtaXRCdWJibGVzfHwoZi5ldmVudC5zcGVjaWFsLnN1Ym1pdD17 c2V0dXA6ZnVuY3Rpb24oKXtpZihmLm5vZGVOYW1lKHRoaXMsImZvcm0iKSlyZXR1 cm4hMTtmLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fc3VibWl0IGtleXByZXNzLl9z dWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBjPWEudGFyZ2V0LGQ9Zi5ub2RlTmFtZShj LCJpbnB1dCIpfHxmLm5vZGVOYW1lKGMsImJ1dHRvbiIpP2MuZm9ybTpiO2QmJiFk Ll9zdWJtaXRfYXR0YWNoZWQmJihmLmV2ZW50LmFkZChkLCJzdWJtaXQuX3N1Ym1p dCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0X2J1YmJsZT0hMH0pLGQuX3N1Ym1pdF9h dHRhY2hlZD0hMCl9KX0scG9zdERpc3BhdGNoOmZ1bmN0aW9uKGEpe2EuX3N1Ym1p dF9idWJibGUmJihkZWxldGUgYS5fc3VibWl0X2J1YmJsZSx0aGlzLnBhcmVudE5v ZGUmJiFhLmlzVHJpZ2dlciYmZi5ldmVudC5zaW11bGF0ZSgic3VibWl0Iix0aGlz LnBhcmVudE5vZGUsYSwhMCkpfSx0ZWFyZG93bjpmdW5jdGlvbigpe2lmKGYubm9k ZU5hbWUodGhpcywiZm9ybSIpKXJldHVybiExO2YuZXZlbnQucmVtb3ZlKHRoaXMs Ii5fc3VibWl0Iil9fSksZi5zdXBwb3J0LmNoYW5nZUJ1YmJsZXN8fChmLmV2ZW50 LnNwZWNpYWwuY2hhbmdlPXtzZXR1cDpmdW5jdGlvbigpe2lmKHoudGVzdCh0aGlz Lm5vZGVOYW1lKSl7aWYodGhpcy50eXBlPT09ImNoZWNrYm94Inx8dGhpcy50eXBl PT09InJhZGlvIilmLmV2ZW50LmFkZCh0aGlzLCJwcm9wZXJ0eWNoYW5nZS5fY2hh bmdlIixmdW5jdGlvbihhKXthLm9yaWdpbmFsRXZlbnQucHJvcGVydHlOYW1lPT09 ImNoZWNrZWQiJiYodGhpcy5fanVzdF9jaGFuZ2VkPSEwKX0pLGYuZXZlbnQuYWRk KHRoaXMsImNsaWNrLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpe3RoaXMuX2p1c3RfY2hh bmdlZCYmIWEuaXNUcmlnZ2VyJiYodGhpcy5fanVzdF9jaGFuZ2VkPSExLGYuZXZl bnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhLCEwKSl9KTtyZXR1cm4hMX1mLmV2 ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihh KXt2YXIgYj1hLnRhcmdldDt6LnRlc3QoYi5ub2RlTmFtZSkmJiFiLl9jaGFuZ2Vf YXR0YWNoZWQmJihmLmV2ZW50LmFkZChiLCJjaGFuZ2UuX2NoYW5nZSIsZnVuY3Rp b24oYSl7dGhpcy5wYXJlbnROb2RlJiYhYS5pc1NpbXVsYXRlZCYmIWEuaXNUcmln Z2VyJiZmLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMucGFyZW50Tm9kZSxh LCEwKX0pLGIuX2NoYW5nZV9hdHRhY2hlZD0hMCl9KX0saGFuZGxlOmZ1bmN0aW9u KGEpe3ZhciBiPWEudGFyZ2V0O2lmKHRoaXMhPT1ifHxhLmlzU2ltdWxhdGVkfHxh LmlzVHJpZ2dlcnx8Yi50eXBlIT09InJhZGlvIiYmYi50eXBlIT09ImNoZWNrYm94 IilyZXR1cm4gYS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50 cyl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7Zi5ldmVudC5yZW1vdmUodGhpcywiLl9j aGFuZ2UiKTtyZXR1cm4gei50ZXN0KHRoaXMubm9kZU5hbWUpfX0pLGYuc3VwcG9y dC5mb2N1c2luQnViYmxlc3x8Zi5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoi Zm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBkPTAsZT1mdW5jdGlvbihhKXtm LmV2ZW50LnNpbXVsYXRlKGIsYS50YXJnZXQsZi5ldmVudC5maXgoYSksITApfTtm LmV2ZW50LnNwZWNpYWxbYl09e3NldHVwOmZ1bmN0aW9uKCl7ZCsrPT09MCYmYy5h ZGRFdmVudExpc3RlbmVyKGEsZSwhMCl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7LS1k PT09MCYmYy5yZW1vdmVFdmVudExpc3RlbmVyKGEsZSwhMCl9fX0pLGYuZm4uZXh0 ZW5kKHtvbjpmdW5jdGlvbihhLGMsZCxlLGcpe3ZhciBoLGk7aWYodHlwZW9mIGE9 PSJvYmplY3QiKXt0eXBlb2YgYyE9InN0cmluZyImJihkPWR8fGMsYz1iKTtmb3Io aSBpbiBhKXRoaXMub24oaSxjLGQsYVtpXSxnKTtyZXR1cm4gdGhpc31kPT1udWxs JiZlPT1udWxsPyhlPWMsZD1jPWIpOmU9PW51bGwmJih0eXBlb2YgYz09InN0cmlu ZyI/KGU9ZCxkPWIpOihlPWQsZD1jLGM9YikpO2lmKGU9PT0hMSllPUo7ZWxzZSBp ZighZSlyZXR1cm4gdGhpcztnPT09MSYmKGg9ZSxlPWZ1bmN0aW9uKGEpe2YoKS5v ZmYoYSk7cmV0dXJuIGguYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlLmd1aWQ9aC5n dWlkfHwoaC5ndWlkPWYuZ3VpZCsrKSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlv bigpe2YuZXZlbnQuYWRkKHRoaXMsYSxlLGQsYyl9KX0sb25lOmZ1bmN0aW9uKGEs YixjLGQpe3JldHVybiB0aGlzLm9uKGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihh LGMsZCl7aWYoYSYmYS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmope3ZhciBl PWEuaGFuZGxlT2JqO2YoYS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGUubmFtZXNwYWNl P2Uub3JpZ1R5cGUrIi4iK2UubmFtZXNwYWNlOmUub3JpZ1R5cGUsZS5zZWxlY3Rv cixlLmhhbmRsZXIpO3JldHVybiB0aGlzfWlmKHR5cGVvZiBhPT0ib2JqZWN0Iil7 Zm9yKHZhciBnIGluIGEpdGhpcy5vZmYoZyxjLGFbZ10pO3JldHVybiB0aGlzfWlm KGM9PT0hMXx8dHlwZW9mIGM9PSJmdW5jdGlvbiIpZD1jLGM9YjtkPT09ITEmJihk PUopO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmLmV2ZW50LnJlbW92ZSh0 aGlzLGEsZCxjKX0pfSxiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5v bihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMu b2ZmKGEsbnVsbCxiKX0sbGl2ZTpmdW5jdGlvbihhLGIsYyl7Zih0aGlzLmNvbnRl eHQpLm9uKGEsdGhpcy5zZWxlY3RvcixiLGMpO3JldHVybiB0aGlzfSxkaWU6ZnVu Y3Rpb24oYSxiKXtmKHRoaXMuY29udGV4dCkub2ZmKGEsdGhpcy5zZWxlY3Rvcnx8 IioqIixiKTtyZXR1cm4gdGhpc30sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7 cmV0dXJuIHRoaXMub24oYixhLGMsZCl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxi LGMpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPT0xP3RoaXMub2ZmKGEsIioqIik6 dGhpcy5vZmYoYixhLGMpfSx0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRo aXMuZWFjaChmdW5jdGlvbigpe2YuZXZlbnQudHJpZ2dlcihhLGIsdGhpcyl9KX0s dHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oYSxiKXtpZih0aGlzWzBdKXJldHVybiBm LmV2ZW50LnRyaWdnZXIoYSxiLHRoaXNbMF0sITApfSx0b2dnbGU6ZnVuY3Rpb24o YSl7dmFyIGI9YXJndW1lbnRzLGM9YS5ndWlkfHxmLmd1aWQrKyxkPTAsZT1mdW5j dGlvbihjKXt2YXIgZT0oZi5fZGF0YSh0aGlzLCJsYXN0VG9nZ2xlIithLmd1aWQp fHwwKSVkO2YuX2RhdGEodGhpcywibGFzdFRvZ2dsZSIrYS5ndWlkLGUrMSksYy5w cmV2ZW50RGVmYXVsdCgpO3JldHVybiBiW2VdLmFwcGx5KHRoaXMsYXJndW1lbnRz KXx8ITF9O2UuZ3VpZD1jO3doaWxlKGQ8Yi5sZW5ndGgpYltkKytdLmd1aWQ9Yzty ZXR1cm4gdGhpcy5jbGljayhlKX0saG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4g dGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSksZi5lYWNoKCJi bHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgbG9hZCByZXNpemUgc2Nyb2xsIHVu bG9hZCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUg bW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ug c2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGVycm9yIGNvbnRl eHRtZW51Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7Zi5mbltiXT1mdW5jdGlv bihhLGMpe2M9PW51bGwmJihjPWEsYT1udWxsKTtyZXR1cm4gYXJndW1lbnRzLmxl bmd0aD4wP3RoaXMub24oYixudWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfSxmLmF0 dHJGbiYmKGYuYXR0ckZuW2JdPSEwKSxDLnRlc3QoYikmJihmLmV2ZW50LmZpeEhv b2tzW2JdPWYuZXZlbnQua2V5SG9va3MpLEQudGVzdChiKSYmKGYuZXZlbnQuZml4 SG9va3NbYl09Zi5ldmVudC5tb3VzZUhvb2tzKX0pLGZ1bmN0aW9uKCl7ZnVuY3Rp b24geChhLGIsYyxlLGYsZyl7Zm9yKHZhciBoPTAsaT1lLmxlbmd0aDtoPGk7aCsr KXt2YXIgaj1lW2hdO2lmKGope3ZhciBrPSExO2o9althXTt3aGlsZShqKXtpZihq W2RdPT09Yyl7az1lW2ouc2l6c2V0XTticmVha31pZihqLm5vZGVUeXBlPT09MSl7 Z3x8KGpbZF09YyxqLnNpenNldD1oKTtpZih0eXBlb2YgYiE9InN0cmluZyIpe2lm KGo9PT1iKXtrPSEwO2JyZWFrfX1lbHNlIGlmKG0uZmlsdGVyKGIsW2pdKS5sZW5n dGg+MCl7az1qO2JyZWFrfX1qPWpbYV19ZVtoXT1rfX19ZnVuY3Rpb24gdyhhLGIs YyxlLGYsZyl7Zm9yKHZhciBoPTAsaT1lLmxlbmd0aDtoPGk7aCsrKXt2YXIgaj1l W2hdO2lmKGope3ZhciBrPSExO2o9althXTt3aGlsZShqKXtpZihqW2RdPT09Yyl7 az1lW2ouc2l6c2V0XTticmVha31qLm5vZGVUeXBlPT09MSYmIWcmJihqW2RdPWMs ai5zaXpzZXQ9aCk7aWYoai5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yil7az1q O2JyZWFrfWo9althXX1lW2hdPWt9fX12YXIgYT0vKCg/OlwoKD86XChbXigpXStc KXxbXigpXSspK1wpfFxbKD86XFtbXlxbXF1dKlxdfFsnIl1bXiciXSpbJyJdfFte XFtcXSciXSspK1xdfFxcLnxbXiA+K34sKFxbXFxdKykrfFs+K35dKShccyosXHMq KT8oKD86LnxccnxcbikqKS9nLGQ9InNpemNhY2hlIisoTWF0aC5yYW5kb20oKSsi IikucmVwbGFjZSgiLiIsIiIpLGU9MCxnPU9iamVjdC5wcm90b3R5cGUudG9TdHJp bmcsaD0hMSxpPSEwLGo9L1xcL2csaz0vXHJcbi9nLGw9L1xXLztbMCwwXS5zb3J0 KGZ1bmN0aW9uKCl7aT0hMTtyZXR1cm4gMH0pO3ZhciBtPWZ1bmN0aW9uKGIsZCxl LGYpe2U9ZXx8W10sZD1kfHxjO3ZhciBoPWQ7aWYoZC5ub2RlVHlwZSE9PTEmJmQu bm9kZVR5cGUhPT05KXJldHVybltdO2lmKCFifHx0eXBlb2YgYiE9InN0cmluZyIp cmV0dXJuIGU7dmFyIGksaixrLGwsbixxLHIsdCx1PSEwLHY9bS5pc1hNTChkKSx3 PVtdLHg9Yjtkb3thLmV4ZWMoIiIpLGk9YS5leGVjKHgpO2lmKGkpe3g9aVszXSx3 LnB1c2goaVsxXSk7aWYoaVsyXSl7bD1pWzNdO2JyZWFrfX19d2hpbGUoaSk7aWYo dy5sZW5ndGg+MSYmcC5leGVjKGIpKWlmKHcubGVuZ3RoPT09MiYmby5yZWxhdGl2 ZVt3WzBdXSlqPXkod1swXSt3WzFdLGQsZik7ZWxzZXtqPW8ucmVsYXRpdmVbd1sw XV0/W2RdOm0ody5zaGlmdCgpLGQpO3doaWxlKHcubGVuZ3RoKWI9dy5zaGlmdCgp LG8ucmVsYXRpdmVbYl0mJihiKz13LnNoaWZ0KCkpLGo9eShiLGosZil9ZWxzZXsh ZiYmdy5sZW5ndGg+MSYmZC5ub2RlVHlwZT09PTkmJiF2JiZvLm1hdGNoLklELnRl c3Qod1swXSkmJiFvLm1hdGNoLklELnRlc3Qod1t3Lmxlbmd0aC0xXSkmJihuPW0u ZmluZCh3LnNoaWZ0KCksZCx2KSxkPW4uZXhwcj9tLmZpbHRlcihuLmV4cHIsbi5z ZXQpWzBdOm4uc2V0WzBdKTtpZihkKXtuPWY/e2V4cHI6dy5wb3AoKSxzZXQ6cyhm KX06bS5maW5kKHcucG9wKCksdy5sZW5ndGg9PT0xJiYod1swXT09PSJ+Inx8d1sw XT09PSIrIikmJmQucGFyZW50Tm9kZT9kLnBhcmVudE5vZGU6ZCx2KSxqPW4uZXhw cj9tLmZpbHRlcihuLmV4cHIsbi5zZXQpOm4uc2V0LHcubGVuZ3RoPjA/az1zKGop OnU9ITE7d2hpbGUody5sZW5ndGgpcT13LnBvcCgpLHI9cSxvLnJlbGF0aXZlW3Fd P3I9dy5wb3AoKTpxPSIiLHI9PW51bGwmJihyPWQpLG8ucmVsYXRpdmVbcV0oayxy LHYpfWVsc2Ugaz13PVtdfWt8fChrPWopLGt8fG0uZXJyb3IocXx8Yik7aWYoZy5j YWxsKGspPT09IltvYmplY3QgQXJyYXldIilpZighdSllLnB1c2guYXBwbHkoZSxr KTtlbHNlIGlmKGQmJmQubm9kZVR5cGU9PT0xKWZvcih0PTA7a1t0XSE9bnVsbDt0 Kyspa1t0XSYmKGtbdF09PT0hMHx8a1t0XS5ub2RlVHlwZT09PTEmJm0uY29udGFp bnMoZCxrW3RdKSkmJmUucHVzaChqW3RdKTtlbHNlIGZvcih0PTA7a1t0XSE9bnVs bDt0Kyspa1t0XSYma1t0XS5ub2RlVHlwZT09PTEmJmUucHVzaChqW3RdKTtlbHNl IHMoayxlKTtsJiYobShsLGgsZSxmKSxtLnVuaXF1ZVNvcnQoZSkpO3JldHVybiBl fTttLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7aWYodSl7aD1pLGEuc29ydCh1KTtp ZihoKWZvcih2YXIgYj0xO2I8YS5sZW5ndGg7YisrKWFbYl09PT1hW2ItMV0mJmEu c3BsaWNlKGItLSwxKX1yZXR1cm4gYX0sbS5tYXRjaGVzPWZ1bmN0aW9uKGEsYil7 cmV0dXJuIG0oYSxudWxsLG51bGwsYil9LG0ubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0 aW9uKGEsYil7cmV0dXJuIG0oYixudWxsLG51bGwsW2FdKS5sZW5ndGg+MH0sbS5m aW5kPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGk7aWYoIWEpcmV0dXJu W107Zm9yKGU9MCxmPW8ub3JkZXIubGVuZ3RoO2U8ZjtlKyspe2g9by5vcmRlcltl XTtpZihnPW8ubGVmdE1hdGNoW2hdLmV4ZWMoYSkpe2k9Z1sxXSxnLnNwbGljZSgx LDEpO2lmKGkuc3Vic3RyKGkubGVuZ3RoLTEpIT09IlxcIil7Z1sxXT0oZ1sxXXx8 IiIpLnJlcGxhY2UoaiwiIiksZD1vLmZpbmRbaF0oZyxiLGMpO2lmKGQhPW51bGwp e2E9YS5yZXBsYWNlKG8ubWF0Y2hbaF0sIiIpO2JyZWFrfX19fWR8fChkPXR5cGVv ZiBiLmdldEVsZW1lbnRzQnlUYWdOYW1lIT0idW5kZWZpbmVkIj9iLmdldEVsZW1l bnRzQnlUYWdOYW1lKCIqIik6W10pO3JldHVybntzZXQ6ZCxleHByOmF9fSxtLmZp bHRlcj1mdW5jdGlvbihhLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxuLHAscT1h LHI9W10scz1jLHQ9YyYmY1swXSYmbS5pc1hNTChjWzBdKTt3aGlsZShhJiZjLmxl bmd0aCl7Zm9yKGggaW4gby5maWx0ZXIpaWYoKGY9by5sZWZ0TWF0Y2hbaF0uZXhl YyhhKSkhPW51bGwmJmZbMl0pe2s9by5maWx0ZXJbaF0sbD1mWzFdLGc9ITEsZi5z cGxpY2UoMSwxKTtpZihsLnN1YnN0cihsLmxlbmd0aC0xKT09PSJcXCIpY29udGlu dWU7cz09PXImJihyPVtdKTtpZihvLnByZUZpbHRlcltoXSl7Zj1vLnByZUZpbHRl cltoXShmLHMsZCxyLGUsdCk7aWYoIWYpZz1pPSEwO2Vsc2UgaWYoZj09PSEwKWNv bnRpbnVlfWlmKGYpZm9yKG49MDsoaj1zW25dKSE9bnVsbDtuKyspaiYmKGk9ayhq LGYsbixzKSxwPWVeaSxkJiZpIT1udWxsP3A/Zz0hMDpzW25dPSExOnAmJihyLnB1 c2goaiksZz0hMCkpO2lmKGkhPT1iKXtkfHwocz1yKSxhPWEucmVwbGFjZShvLm1h dGNoW2hdLCIiKTtpZighZylyZXR1cm5bXTticmVha319aWYoYT09PXEpaWYoZz09 bnVsbCltLmVycm9yKGEpO2Vsc2UgYnJlYWs7cT1hfXJldHVybiBzfSxtLmVycm9y PWZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJl Y29nbml6ZWQgZXhwcmVzc2lvbjogIithKX07dmFyIG49bS5nZXRUZXh0PWZ1bmN0 aW9uKGEpe3ZhciBiLGMsZD1hLm5vZGVUeXBlLGU9IiI7aWYoZCl7aWYoZD09PTF8 fGQ9PT05fHxkPT09MTEpe2lmKHR5cGVvZiBhLnRleHRDb250ZW50PT0ic3RyaW5n IilyZXR1cm4gYS50ZXh0Q29udGVudDtpZih0eXBlb2YgYS5pbm5lclRleHQ9PSJz dHJpbmciKXJldHVybiBhLmlubmVyVGV4dC5yZXBsYWNlKGssIiIpO2ZvcihhPWEu Zmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyllKz1uKGEpfWVsc2UgaWYoZD09 PTN8fGQ9PT00KXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIGZvcihiPTA7Yz1hW2Jd O2IrKyljLm5vZGVUeXBlIT09OCYmKGUrPW4oYykpO3JldHVybiBlfSxvPW0uc2Vs ZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygo PzpbXHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1 MDBjMC1cdUZGRkZcLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3 XHUwMGMwLVx1RkZGRlwtXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpb XHdcdTAwYzAtXHVGRkZGXC1dfFxcLikrKVxzKig/OihcUz89KVxzKig/OihbJyJd KSguKj8pXDN8KCM/KD86W1x3XHUwMGMwLVx1RkZGRlwtXXxcXC4pKil8KXwpXHMq XF0vLFRBRzovXigoPzpbXHdcdTAwYzAtXHVGRkZGXCpcLV18XFwuKSspLyxDSElM RDovOihvbmx5fG50aHxsYXN0fGZpcnN0KS1jaGlsZCg/OlwoXHMqKGV2ZW58b2Rk fCg/OlsrXC1dP1xkK3woPzpbK1wtXT9cZCopP25ccyooPzpbK1wtXVxzKlxkKyk/ KSlccypcKSk/LyxQT1M6LzoobnRofGVxfGd0fGx0fGZpcnN0fGxhc3R8ZXZlbnxv ZGQpKD86XCgoXGQqKVwpKT8oPz1bXlwtXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1 MDBjMC1cdUZGRkZcLV18XFwuKSspKD86XCgoWyciXT8pKCg/OlwoW15cKV0rXCl8 W15cKFwpXSopKylcMlwpKT8vfSxsZWZ0TWF0Y2g6e30sYXR0ck1hcDp7ImNsYXNz IjoiY2xhc3NOYW1lIiwiZm9yIjoiaHRtbEZvciJ9LGF0dHJIYW5kbGU6e2hyZWY6 ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJocmVmIil9LHR5cGU6 ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJ0eXBlIil9fSxyZWxh dGl2ZTp7IisiOmZ1bmN0aW9uKGEsYil7dmFyIGM9dHlwZW9mIGI9PSJzdHJpbmci LGQ9YyYmIWwudGVzdChiKSxlPWMmJiFkO2QmJihiPWIudG9Mb3dlckNhc2UoKSk7 Zm9yKHZhciBmPTAsZz1hLmxlbmd0aCxoO2Y8ZztmKyspaWYoaD1hW2ZdKXt3aGls ZSgoaD1oLnByZXZpb3VzU2libGluZykmJmgubm9kZVR5cGUhPT0xKTthW2ZdPWV8 fGgmJmgubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWI/aHx8ITE6aD09PWJ9ZSYm bS5maWx0ZXIoYixhLCEwKX0sIj4iOmZ1bmN0aW9uKGEsYil7dmFyIGMsZD10eXBl b2YgYj09InN0cmluZyIsZT0wLGY9YS5sZW5ndGg7aWYoZCYmIWwudGVzdChiKSl7 Yj1iLnRvTG93ZXJDYXNlKCk7Zm9yKDtlPGY7ZSsrKXtjPWFbZV07aWYoYyl7dmFy IGc9Yy5wYXJlbnROb2RlO2FbZV09Zy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09 Yj9nOiExfX19ZWxzZXtmb3IoO2U8ZjtlKyspYz1hW2VdLGMmJihhW2VdPWQ/Yy5w YXJlbnROb2RlOmMucGFyZW50Tm9kZT09PWIpO2QmJm0uZmlsdGVyKGIsYSwhMCl9 fSwiIjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZj1lKyssZz14O3R5cGVvZiBiPT0i c3RyaW5nIiYmIWwudGVzdChiKSYmKGI9Yi50b0xvd2VyQ2FzZSgpLGQ9YixnPXcp LGcoInBhcmVudE5vZGUiLGIsZixhLGQsYyl9LCJ+IjpmdW5jdGlvbihhLGIsYyl7 dmFyIGQsZj1lKyssZz14O3R5cGVvZiBiPT0ic3RyaW5nIiYmIWwudGVzdChiKSYm KGI9Yi50b0xvd2VyQ2FzZSgpLGQ9YixnPXcpLGcoInByZXZpb3VzU2libGluZyIs YixmLGEsZCxjKX19LGZpbmQ6e0lEOmZ1bmN0aW9uKGEsYixjKXtpZih0eXBlb2Yg Yi5nZXRFbGVtZW50QnlJZCE9InVuZGVmaW5lZCImJiFjKXt2YXIgZD1iLmdldEVs ZW1lbnRCeUlkKGFbMV0pO3JldHVybiBkJiZkLnBhcmVudE5vZGU/W2RdOltdfX0s TkFNRTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiLmdldEVsZW1lbnRzQnlOYW1l IT0idW5kZWZpbmVkIil7dmFyIGM9W10sZD1iLmdldEVsZW1lbnRzQnlOYW1lKGFb MV0pO2Zvcih2YXIgZT0wLGY9ZC5sZW5ndGg7ZTxmO2UrKylkW2VdLmdldEF0dHJp YnV0ZSgibmFtZSIpPT09YVsxXSYmYy5wdXNoKGRbZV0pO3JldHVybiBjLmxlbmd0 aD09PTA/bnVsbDpjfX0sVEFHOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGIuZ2V0 RWxlbWVudHNCeVRhZ05hbWUhPSJ1bmRlZmluZWQiKXJldHVybiBiLmdldEVsZW1l bnRzQnlUYWdOYW1lKGFbMV0pfX0scHJlRmlsdGVyOntDTEFTUzpmdW5jdGlvbihh LGIsYyxkLGUsZil7YT0iICIrYVsxXS5yZXBsYWNlKGosIiIpKyIgIjtpZihmKXJl dHVybiBhO2Zvcih2YXIgZz0wLGg7KGg9YltnXSkhPW51bGw7ZysrKWgmJihlXiho LmNsYXNzTmFtZSYmKCIgIitoLmNsYXNzTmFtZSsiICIpLnJlcGxhY2UoL1tcdFxu XHJdL2csIiAiKS5pbmRleE9mKGEpPj0wKT9jfHxkLnB1c2goaCk6YyYmKGJbZ109 ITEpKTtyZXR1cm4hMX0sSUQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV0ucmVwbGFj ZShqLCIiKX0sVEFHOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbMV0ucmVwbGFjZShq LCIiKS50b0xvd2VyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihhKXtpZihhWzFdPT09 Im50aCIpe2FbMl18fG0uZXJyb3IoYVswXSksYVsyXT1hWzJdLnJlcGxhY2UoL15c K3xccyovZywiIik7dmFyIGI9LygtPykoXGQqKSg/Om4oWytcLV0/XGQqKSk/Ly5l eGVjKGFbMl09PT0iZXZlbiImJiIybiJ8fGFbMl09PT0ib2RkIiYmIjJuKzEifHwh L1xELy50ZXN0KGFbMl0pJiYiMG4rIithWzJdfHxhWzJdKTthWzJdPWJbMV0rKGJb Ml18fDEpLTAsYVszXT1iWzNdLTB9ZWxzZSBhWzJdJiZtLmVycm9yKGFbMF0pO2Fb MF09ZSsrO3JldHVybiBhfSxBVFRSOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIg Zz1hWzFdPWFbMV0ucmVwbGFjZShqLCIiKTshZiYmby5hdHRyTWFwW2ddJiYoYVsx XT1vLmF0dHJNYXBbZ10pLGFbNF09KGFbNF18fGFbNV18fCIiKS5yZXBsYWNlKGos IiIpLGFbMl09PT0ifj0iJiYoYVs0XT0iICIrYVs0XSsiICIpO3JldHVybiBhfSxQ U0VVRE86ZnVuY3Rpb24oYixjLGQsZSxmKXtpZihiWzFdPT09Im5vdCIpaWYoKGEu ZXhlYyhiWzNdKXx8IiIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KGJbM10pKWJbM109 bShiWzNdLG51bGwsbnVsbCxjKTtlbHNle3ZhciBnPW0uZmlsdGVyKGJbM10sYyxk LCEwXmYpO2R8fGUucHVzaC5hcHBseShlLGcpO3JldHVybiExfWVsc2UgaWYoby5t YXRjaC5QT1MudGVzdChiWzBdKXx8by5tYXRjaC5DSElMRC50ZXN0KGJbMF0pKXJl dHVybiEwO3JldHVybiBifSxQT1M6ZnVuY3Rpb24oYSl7YS51bnNoaWZ0KCEwKTty ZXR1cm4gYX19LGZpbHRlcnM6e2VuYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEu ZGlzYWJsZWQ9PT0hMSYmYS50eXBlIT09ImhpZGRlbiJ9LGRpc2FibGVkOmZ1bmN0 aW9uKGEpe3JldHVybiBhLmRpc2FibGVkPT09ITB9LGNoZWNrZWQ6ZnVuY3Rpb24o YSl7cmV0dXJuIGEuY2hlY2tlZD09PSEwfSxzZWxlY3RlZDpmdW5jdGlvbihhKXth LnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBh LnNlbGVjdGVkPT09ITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hIWEuZmly c3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oYSl7cmV0dXJuIWEuZmlyc3RDaGlsZH0s aGFzOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4hIW0oY1szXSxhKS5sZW5ndGh9LGhl YWRlcjpmdW5jdGlvbihhKXtyZXR1cm4vaFxkL2kudGVzdChhLm5vZGVOYW1lKX0s dGV4dDpmdW5jdGlvbihhKXt2YXIgYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpLGM9 YS50eXBlO3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQi JiYidGV4dCI9PT1jJiYoYj09PWN8fGI9PT1udWxsKX0scmFkaW86ZnVuY3Rpb24o YSl7cmV0dXJuIGEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PSJpbnB1dCImJiJy YWRpbyI9PT1hLnR5cGV9LGNoZWNrYm94OmZ1bmN0aW9uKGEpe3JldHVybiBhLm5v ZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYiY2hlY2tib3giPT09YS50 eXBlfSxmaWxlOmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJD YXNlKCk9PT0iaW5wdXQiJiYiZmlsZSI9PT1hLnR5cGV9LHBhc3N3b3JkOmZ1bmN0 aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQi JiYicGFzc3dvcmQiPT09YS50eXBlfSxzdWJtaXQ6ZnVuY3Rpb24oYSl7dmFyIGI9 YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybihiPT09ImlucHV0Inx8Yj09 PSJidXR0b24iKSYmInN1Ym1pdCI9PT1hLnR5cGV9LGltYWdlOmZ1bmN0aW9uKGEp e3JldHVybiBhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQiJiYiaW1h Z2UiPT09YS50eXBlfSxyZXNldDpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1l LnRvTG93ZXJDYXNlKCk7cmV0dXJuKGI9PT0iaW5wdXQifHxiPT09ImJ1dHRvbiIp JiYicmVzZXQiPT09YS50eXBlfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5u b2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybiBiPT09ImlucHV0IiYmImJ1dHRv biI9PT1hLnR5cGV8fGI9PT0iYnV0dG9uIn0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0 dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KGEubm9kZU5h bWUpfSxmb2N1czpmdW5jdGlvbihhKXtyZXR1cm4gYT09PWEub3duZXJEb2N1bWVu dC5hY3RpdmVFbGVtZW50fX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oYSxi KXtyZXR1cm4gYj09PTB9LGxhc3Q6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIGI9 PT1kLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGIlMj09PTB9 LG9kZDpmdW5jdGlvbihhLGIpe3JldHVybiBiJTI9PT0xfSxsdDpmdW5jdGlvbihh LGIsYyl7cmV0dXJuIGI8Y1szXS0wfSxndDpmdW5jdGlvbihhLGIsYyl7cmV0dXJu IGI+Y1szXS0wfSxudGg6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjWzNdLTA9PT1i fSxlcTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGNbM10tMD09PWJ9fSxmaWx0ZXI6 e1BTRVVETzpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1iWzFdLGY9by5maWx0ZXJz W2VdO2lmKGYpcmV0dXJuIGYoYSxjLGIsZCk7aWYoZT09PSJjb250YWlucyIpcmV0 dXJuKGEudGV4dENvbnRlbnR8fGEuaW5uZXJUZXh0fHxuKFthXSl8fCIiKS5pbmRl eE9mKGJbM10pPj0wO2lmKGU9PT0ibm90Iil7dmFyIGc9YlszXTtmb3IodmFyIGg9 MCxpPWcubGVuZ3RoO2g8aTtoKyspaWYoZ1toXT09PWEpcmV0dXJuITE7cmV0dXJu ITB9bS5lcnJvcihlKX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZyxo LGksaixrPWJbMV0sbD1hO3N3aXRjaChrKXtjYXNlIm9ubHkiOmNhc2UiZmlyc3Qi OndoaWxlKGw9bC5wcmV2aW91c1NpYmxpbmcpaWYobC5ub2RlVHlwZT09PTEpcmV0 dXJuITE7aWYoaz09PSJmaXJzdCIpcmV0dXJuITA7bD1hO2Nhc2UibGFzdCI6d2hp bGUobD1sLm5leHRTaWJsaW5nKWlmKGwubm9kZVR5cGU9PT0xKXJldHVybiExO3Jl dHVybiEwO2Nhc2UibnRoIjpjPWJbMl0sZT1iWzNdO2lmKGM9PT0xJiZlPT09MCly ZXR1cm4hMDtmPWJbMF0sZz1hLnBhcmVudE5vZGU7aWYoZyYmKGdbZF0hPT1mfHwh YS5ub2RlSW5kZXgpKXtpPTA7Zm9yKGw9Zy5maXJzdENoaWxkO2w7bD1sLm5leHRT aWJsaW5nKWwubm9kZVR5cGU9PT0xJiYobC5ub2RlSW5kZXg9KytpKTtnW2RdPWZ9 aj1hLm5vZGVJbmRleC1lO3JldHVybiBjPT09MD9qPT09MDpqJWM9PT0wJiZqL2M+ PTB9fSxJRDpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVUeXBlPT09MSYmYS5n ZXRBdHRyaWJ1dGUoImlkIik9PT1ifSxUQUc6ZnVuY3Rpb24oYSxiKXtyZXR1cm4g Yj09PSIqIiYmYS5ub2RlVHlwZT09PTF8fCEhYS5ub2RlTmFtZSYmYS5ub2RlTmFt ZS50b0xvd2VyQ2FzZSgpPT09Yn0sQ0xBU1M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4o IiAiKyhhLmNsYXNzTmFtZXx8YS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIiku aW5kZXhPZihiKT4tMX0sQVRUUjpmdW5jdGlvbihhLGIpe3ZhciBjPWJbMV0sZD1t LmF0dHI/bS5hdHRyKGEsYyk6by5hdHRySGFuZGxlW2NdP28uYXR0ckhhbmRsZVtj XShhKTphW2NdIT1udWxsP2FbY106YS5nZXRBdHRyaWJ1dGUoYyksZT1kKyIiLGY9 YlsyXSxnPWJbNF07cmV0dXJuIGQ9PW51bGw/Zj09PSIhPSI6IWYmJm0uYXR0cj9k IT1udWxsOmY9PT0iPSI/ZT09PWc6Zj09PSIqPSI/ZS5pbmRleE9mKGcpPj0wOmY9 PT0ifj0iPygiICIrZSsiICIpLmluZGV4T2YoZyk+PTA6Zz9mPT09IiE9Ij9lIT09 ZzpmPT09Il49Ij9lLmluZGV4T2YoZyk9PT0wOmY9PT0iJD0iP2Uuc3Vic3RyKGUu bGVuZ3RoLWcubGVuZ3RoKT09PWc6Zj09PSJ8PSI/ZT09PWd8fGUuc3Vic3RyKDAs Zy5sZW5ndGgrMSk9PT1nKyItIjohMTplJiZkIT09ITF9LFBPUzpmdW5jdGlvbihh LGIsYyxkKXt2YXIgZT1iWzJdLGY9by5zZXRGaWx0ZXJzW2VdO2lmKGYpcmV0dXJu IGYoYSxjLGIsZCl9fX0scD1vLm1hdGNoLlBPUyxxPWZ1bmN0aW9uKGEsYil7cmV0 dXJuIlxcIisoYi0wKzEpfTtmb3IodmFyIHIgaW4gby5tYXRjaClvLm1hdGNoW3Jd PW5ldyBSZWdFeHAoby5tYXRjaFtyXS5zb3VyY2UrLyg/IVteXFtdKlxdKSg/IVte XChdKlwpKS8uc291cmNlKSxvLmxlZnRNYXRjaFtyXT1uZXcgUmVnRXhwKC8oXig/ Oi58XHJ8XG4pKj8pLy5zb3VyY2Urby5tYXRjaFtyXS5zb3VyY2UucmVwbGFjZSgv XFwoXGQrKS9nLHEpKTtvLm1hdGNoLmdsb2JhbFBPUz1wO3ZhciBzPWZ1bmN0aW9u KGEsYil7YT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLDApO2lmKGIpe2Iu cHVzaC5hcHBseShiLGEpO3JldHVybiBifXJldHVybiBhfTt0cnl7QXJyYXkucHJv dG90eXBlLnNsaWNlLmNhbGwoYy5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2Rlcyww KVswXS5ub2RlVHlwZX1jYXRjaCh0KXtzPWZ1bmN0aW9uKGEsYil7dmFyIGM9MCxk PWJ8fFtdO2lmKGcuY2FsbChhKT09PSJbb2JqZWN0IEFycmF5XSIpQXJyYXkucHJv dG90eXBlLnB1c2guYXBwbHkoZCxhKTtlbHNlIGlmKHR5cGVvZiBhLmxlbmd0aD09 Im51bWJlciIpZm9yKHZhciBlPWEubGVuZ3RoO2M8ZTtjKyspZC5wdXNoKGFbY10p O2Vsc2UgZm9yKDthW2NdO2MrKylkLnB1c2goYVtjXSk7cmV0dXJuIGR9fXZhciB1 LHY7Yy5kb2N1bWVudEVsZW1lbnQuY29tcGFyZURvY3VtZW50UG9zaXRpb24/dT1m dW5jdGlvbihhLGIpe2lmKGE9PT1iKXtoPSEwO3JldHVybiAwfWlmKCFhLmNvbXBh cmVEb2N1bWVudFBvc2l0aW9ufHwhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbily ZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj8tMToxO3JldHVybiBhLmNv bXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpJjQ/LTE6MX06KHU9ZnVuY3Rpb24oYSxi KXtpZihhPT09Yil7aD0hMDtyZXR1cm4gMH1pZihhLnNvdXJjZUluZGV4JiZiLnNv dXJjZUluZGV4KXJldHVybiBhLnNvdXJjZUluZGV4LWIuc291cmNlSW5kZXg7dmFy IGMsZCxlPVtdLGY9W10sZz1hLnBhcmVudE5vZGUsaT1iLnBhcmVudE5vZGUsaj1n O2lmKGc9PT1pKXJldHVybiB2KGEsYik7aWYoIWcpcmV0dXJuLTE7aWYoIWkpcmV0 dXJuIDE7d2hpbGUoaillLnVuc2hpZnQoaiksaj1qLnBhcmVudE5vZGU7aj1pO3do aWxlKGopZi51bnNoaWZ0KGopLGo9ai5wYXJlbnROb2RlO2M9ZS5sZW5ndGgsZD1m Lmxlbmd0aDtmb3IodmFyIGs9MDtrPGMmJms8ZDtrKyspaWYoZVtrXSE9PWZba10p cmV0dXJuIHYoZVtrXSxmW2tdKTtyZXR1cm4gaz09PWM/dihhLGZba10sLTEpOnYo ZVtrXSxiLDEpfSx2PWZ1bmN0aW9uKGEsYixjKXtpZihhPT09YilyZXR1cm4gYzt2 YXIgZD1hLm5leHRTaWJsaW5nO3doaWxlKGQpe2lmKGQ9PT1iKXJldHVybi0xO2Q9 ZC5uZXh0U2libGluZ31yZXR1cm4gMX0pLGZ1bmN0aW9uKCl7dmFyIGE9Yy5jcmVh dGVFbGVtZW50KCJkaXYiKSxkPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgp LGU9Yy5kb2N1bWVudEVsZW1lbnQ7YS5pbm5lckhUTUw9IjxhIG5hbWU9JyIrZCsi Jy8+IixlLmluc2VydEJlZm9yZShhLGUuZmlyc3RDaGlsZCksYy5nZXRFbGVtZW50 QnlJZChkKSYmKG8uZmluZC5JRD1mdW5jdGlvbihhLGMsZCl7aWYodHlwZW9mIGMu Z2V0RWxlbWVudEJ5SWQhPSJ1bmRlZmluZWQiJiYhZCl7dmFyIGU9Yy5nZXRFbGVt ZW50QnlJZChhWzFdKTtyZXR1cm4gZT9lLmlkPT09YVsxXXx8dHlwZW9mIGUuZ2V0 QXR0cmlidXRlTm9kZSE9InVuZGVmaW5lZCImJmUuZ2V0QXR0cmlidXRlTm9kZSgi aWQiKS5ub2RlVmFsdWU9PT1hWzFdP1tlXTpiOltdfX0sby5maWx0ZXIuSUQ9ZnVu Y3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYS5nZXRBdHRyaWJ1dGVOb2RlIT0idW5k ZWZpbmVkIiYmYS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiBhLm5vZGVU eXBlPT09MSYmYyYmYy5ub2RlVmFsdWU9PT1ifSksZS5yZW1vdmVDaGlsZChhKSxl PWE9bnVsbH0oKSxmdW5jdGlvbigpe3ZhciBhPWMuY3JlYXRlRWxlbWVudCgiZGl2 Iik7YS5hcHBlbmRDaGlsZChjLmNyZWF0ZUNvbW1lbnQoIiIpKSxhLmdldEVsZW1l bnRzQnlUYWdOYW1lKCIqIikubGVuZ3RoPjAmJihvLmZpbmQuVEFHPWZ1bmN0aW9u KGEsYil7dmFyIGM9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhWzFdKTtpZihhWzFd PT09IioiKXt2YXIgZD1bXTtmb3IodmFyIGU9MDtjW2VdO2UrKyljW2VdLm5vZGVU eXBlPT09MSYmZC5wdXNoKGNbZV0pO2M9ZH1yZXR1cm4gY30pLGEuaW5uZXJIVE1M PSI8YSBocmVmPScjJz48L2E+IixhLmZpcnN0Q2hpbGQmJnR5cGVvZiBhLmZpcnN0 Q2hpbGQuZ2V0QXR0cmlidXRlIT0idW5kZWZpbmVkIiYmYS5maXJzdENoaWxkLmdl dEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiJiYoby5hdHRySGFuZGxlLmhyZWY9ZnVu Y3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJocmVmIiwyKX0pLGE9bnVs bH0oKSxjLnF1ZXJ5U2VsZWN0b3JBbGwmJmZ1bmN0aW9uKCl7dmFyIGE9bSxiPWMu Y3JlYXRlRWxlbWVudCgiZGl2IiksZD0iX19zaXp6bGVfXyI7Yi5pbm5lckhUTUw9 IjxwIGNsYXNzPSdURVNUJz48L3A+IjtpZighYi5xdWVyeVNlbGVjdG9yQWxsfHxi LnF1ZXJ5U2VsZWN0b3JBbGwoIi5URVNUIikubGVuZ3RoIT09MCl7bT1mdW5jdGlv bihiLGUsZixnKXtlPWV8fGM7aWYoIWcmJiFtLmlzWE1MKGUpKXt2YXIgaD0vXihc dyskKXxeXC4oW1x3XC1dKyQpfF4jKFtcd1wtXSskKS8uZXhlYyhiKTtpZihoJiYo ZS5ub2RlVHlwZT09PTF8fGUubm9kZVR5cGU9PT05KSl7aWYoaFsxXSlyZXR1cm4g cyhlLmdldEVsZW1lbnRzQnlUYWdOYW1lKGIpLGYpO2lmKGhbMl0mJm8uZmluZC5D TEFTUyYmZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBzKGUuZ2V0RWxl bWVudHNCeUNsYXNzTmFtZShoWzJdKSxmKX1pZihlLm5vZGVUeXBlPT09OSl7aWYo Yj09PSJib2R5IiYmZS5ib2R5KXJldHVybiBzKFtlLmJvZHldLGYpO2lmKGgmJmhb M10pe3ZhciBpPWUuZ2V0RWxlbWVudEJ5SWQoaFszXSk7aWYoIWl8fCFpLnBhcmVu dE5vZGUpcmV0dXJuIHMoW10sZik7aWYoaS5pZD09PWhbM10pcmV0dXJuIHMoW2ld LGYpfXRyeXtyZXR1cm4gcyhlLnF1ZXJ5U2VsZWN0b3JBbGwoYiksZil9Y2F0Y2go ail7fX1lbHNlIGlmKGUubm9kZVR5cGU9PT0xJiZlLm5vZGVOYW1lLnRvTG93ZXJD YXNlKCkhPT0ib2JqZWN0Iil7dmFyIGs9ZSxsPWUuZ2V0QXR0cmlidXRlKCJpZCIp LG49bHx8ZCxwPWUucGFyZW50Tm9kZSxxPS9eXHMqWyt+XS8udGVzdChiKTtsP249 bi5yZXBsYWNlKC8nL2csIlxcJCYiKTplLnNldEF0dHJpYnV0ZSgiaWQiLG4pLHEm JnAmJihlPWUucGFyZW50Tm9kZSk7dHJ5e2lmKCFxfHxwKXJldHVybiBzKGUucXVl cnlTZWxlY3RvckFsbCgiW2lkPSciK24rIiddICIrYiksZil9Y2F0Y2gocil7fWZp bmFsbHl7bHx8ay5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gYShiLGUs ZixnKX07Zm9yKHZhciBlIGluIGEpbVtlXT1hW2VdO2I9bnVsbH19KCksZnVuY3Rp b24oKXt2YXIgYT1jLmRvY3VtZW50RWxlbWVudCxiPWEubWF0Y2hlc1NlbGVjdG9y fHxhLm1vek1hdGNoZXNTZWxlY3Rvcnx8YS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8 fGEubXNNYXRjaGVzU2VsZWN0b3I7aWYoYil7dmFyIGQ9IWIuY2FsbChjLmNyZWF0 ZUVsZW1lbnQoImRpdiIpLCJkaXYiKSxlPSExO3RyeXtiLmNhbGwoYy5kb2N1bWVu dEVsZW1lbnQsIlt0ZXN0IT0nJ106c2l6emxlIil9Y2F0Y2goZil7ZT0hMH1tLm1h dGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihhLGMpe2M9Yy5yZXBsYWNlKC9cPVxzKihb XiciXF1dKilccypcXS9nLCI9JyQxJ10iKTtpZighbS5pc1hNTChhKSl0cnl7aWYo ZXx8IW8ubWF0Y2guUFNFVURPLnRlc3QoYykmJiEvIT0vLnRlc3QoYykpe3ZhciBm PWIuY2FsbChhLGMpO2lmKGZ8fCFkfHxhLmRvY3VtZW50JiZhLmRvY3VtZW50Lm5v ZGVUeXBlIT09MTEpcmV0dXJuIGZ9fWNhdGNoKGcpe31yZXR1cm4gbShjLG51bGws bnVsbCxbYV0pLmxlbmd0aD4wfX19KCksZnVuY3Rpb24oKXt2YXIgYT1jLmNyZWF0 ZUVsZW1lbnQoImRpdiIpO2EuaW5uZXJIVE1MPSI8ZGl2IGNsYXNzPSd0ZXN0IGUn PjwvZGl2PjxkaXYgY2xhc3M9J3Rlc3QnPjwvZGl2PiI7aWYoISFhLmdldEVsZW1l bnRzQnlDbGFzc05hbWUmJmEuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxl bmd0aCE9PTApe2EubGFzdENoaWxkLmNsYXNzTmFtZT0iZSI7aWYoYS5nZXRFbGVt ZW50c0J5Q2xhc3NOYW1lKCJlIikubGVuZ3RoPT09MSlyZXR1cm47by5vcmRlci5z cGxpY2UoMSwwLCJDTEFTUyIpLG8uZmluZC5DTEFTUz1mdW5jdGlvbihhLGIsYyl7 aWYodHlwZW9mIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSE9InVuZGVmaW5lZCIm JiFjKXJldHVybiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYVsxXSl9LGE9bnVs bH19KCksYy5kb2N1bWVudEVsZW1lbnQuY29udGFpbnM/bS5jb250YWlucz1mdW5j dGlvbihhLGIpe3JldHVybiBhIT09YiYmKGEuY29udGFpbnM/YS5jb250YWlucyhi KTohMCl9OmMuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u P20uY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4hIShhLmNvbXBhcmVEb2N1 bWVudFBvc2l0aW9uKGIpJjE2KX06bS5jb250YWlucz1mdW5jdGlvbigpe3JldHVy biExfSxtLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPShhP2Eub3duZXJEb2N1bWVu dHx8YTowKS5kb2N1bWVudEVsZW1lbnQ7cmV0dXJuIGI/Yi5ub2RlTmFtZSE9PSJI VE1MIjohMX07dmFyIHk9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9W10sZj0iIixn PWIubm9kZVR5cGU/W2JdOmI7d2hpbGUoZD1vLm1hdGNoLlBTRVVETy5leGVjKGEp KWYrPWRbMF0sYT1hLnJlcGxhY2Uoby5tYXRjaC5QU0VVRE8sIiIpO2E9by5yZWxh dGl2ZVthXT9hKyIqIjphO2Zvcih2YXIgaD0wLGk9Zy5sZW5ndGg7aDxpO2grKylt KGEsZ1toXSxlLGMpO3JldHVybiBtLmZpbHRlcihmLGUpfTttLmF0dHI9Zi5hdHRy LG0uc2VsZWN0b3JzLmF0dHJNYXA9e30sZi5maW5kPW0sZi5leHByPW0uc2VsZWN0 b3JzLGYuZXhwclsiOiJdPWYuZXhwci5maWx0ZXJzLGYudW5pcXVlPW0udW5pcXVl U29ydCxmLnRleHQ9bS5nZXRUZXh0LGYuaXNYTUxEb2M9bS5pc1hNTCxmLmNvbnRh aW5zPW0uY29udGFpbnN9KCk7dmFyIEw9L1VudGlsJC8sTT0vXig/OnBhcmVudHN8 cHJldlVudGlsfHByZXZBbGwpLyxOPS8sLyxPPS9eLlteOiNcW1wuLF0qJC8sUD1B cnJheS5wcm90b3R5cGUuc2xpY2UsUT1mLmV4cHIubWF0Y2guZ2xvYmFsUE9TLFI9 e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07Zi5mbi5l eHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjLGQ7aWYodHlwZW9m IGEhPSJzdHJpbmciKXJldHVybiBmKGEpLmZpbHRlcihmdW5jdGlvbigpe2Zvcihj PTAsZD1iLmxlbmd0aDtjPGQ7YysrKWlmKGYuY29udGFpbnMoYltjXSx0aGlzKSly ZXR1cm4hMH0pO3ZhciBlPXRoaXMucHVzaFN0YWNrKCIiLCJmaW5kIixhKSxnLGgs aTtmb3IoYz0wLGQ9dGhpcy5sZW5ndGg7YzxkO2MrKyl7Zz1lLmxlbmd0aCxmLmZp bmQoYSx0aGlzW2NdLGUpO2lmKGM+MClmb3IoaD1nO2g8ZS5sZW5ndGg7aCsrKWZv cihpPTA7aTxnO2krKylpZihlW2ldPT09ZVtoXSl7ZS5zcGxpY2UoaC0tLDEpO2Jy ZWFrfX1yZXR1cm4gZX0saGFzOmZ1bmN0aW9uKGEpe3ZhciBiPWYoYSk7cmV0dXJu IHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBhPTAsYz1iLmxlbmd0aDth PGM7YSsrKWlmKGYuY29udGFpbnModGhpcyxiW2FdKSlyZXR1cm4hMH0pfSxub3Q6 ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFQodGhpcyxhLCExKSwi bm90IixhKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFj ayhUKHRoaXMsYSwhMCksImZpbHRlciIsYSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVy biEhYSYmKHR5cGVvZiBhPT0ic3RyaW5nIj9RLnRlc3QoYSk/ZihhLHRoaXMuY29u dGV4dCkuaW5kZXgodGhpc1swXSk+PTA6Zi5maWx0ZXIoYSx0aGlzKS5sZW5ndGg+ MDp0aGlzLmZpbHRlcihhKS5sZW5ndGg+MCl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxi KXt2YXIgYz1bXSxkLGUsZz10aGlzWzBdO2lmKGYuaXNBcnJheShhKSl7dmFyIGg9 MTt3aGlsZShnJiZnLm93bmVyRG9jdW1lbnQmJmchPT1iKXtmb3IoZD0wO2Q8YS5s ZW5ndGg7ZCsrKWYoZykuaXMoYVtkXSkmJmMucHVzaCh7c2VsZWN0b3I6YVtkXSxl bGVtOmcsbGV2ZWw6aH0pO2c9Zy5wYXJlbnROb2RlLGgrK31yZXR1cm4gY312YXIg aT1RLnRlc3QoYSl8fHR5cGVvZiBhIT0ic3RyaW5nIj9mKGEsYnx8dGhpcy5jb250 ZXh0KTowO2ZvcihkPTAsZT10aGlzLmxlbmd0aDtkPGU7ZCsrKXtnPXRoaXNbZF07 d2hpbGUoZyl7aWYoaT9pLmluZGV4KGcpPi0xOmYuZmluZC5tYXRjaGVzU2VsZWN0 b3IoZyxhKSl7Yy5wdXNoKGcpO2JyZWFrfWc9Zy5wYXJlbnROb2RlO2lmKCFnfHwh Zy5vd25lckRvY3VtZW50fHxnPT09Ynx8Zy5ub2RlVHlwZT09PTExKWJyZWFrfX1j PWMubGVuZ3RoPjE/Zi51bmlxdWUoYyk6YztyZXR1cm4gdGhpcy5wdXNoU3RhY2so YywiY2xvc2VzdCIsYSl9LGluZGV4OmZ1bmN0aW9uKGEpe2lmKCFhKXJldHVybiB0 aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5wcmV2QWxsKCkubGVuZ3Ro Oi0xO2lmKHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gZi5pbkFycmF5KHRoaXNb MF0sZihhKSk7cmV0dXJuIGYuaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyl9 LGFkZDpmdW5jdGlvbihhLGIpe3ZhciBjPXR5cGVvZiBhPT0ic3RyaW5nIj9mKGEs Yik6Zi5tYWtlQXJyYXkoYSYmYS5ub2RlVHlwZT9bYV06YSksZD1mLm1lcmdlKHRo aXMuZ2V0KCksYyk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMoY1swXSl8fFMoZFsw XSk/ZDpmLnVuaXF1ZShkKSl9LGFuZFNlbGY6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp cy5hZGQodGhpcy5wcmV2T2JqZWN0KX19KSxmLmVhY2goe3BhcmVudDpmdW5jdGlv bihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJmIubm9kZVR5cGUhPT0x MT9iOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIGYuZGlyKGEsInBh cmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4g Zi5kaXIoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJu IGYubnRoKGEsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1 cm4gZi5udGgoYSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlv bihhKXtyZXR1cm4gZi5kaXIoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5j dGlvbihhKXtyZXR1cm4gZi5kaXIoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRV bnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGYuZGlyKGEsIm5leHRTaWJsaW5n IixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5kaXIoYSwi cHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJu IGYuc2libGluZygoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hp bGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIGYuc2libGluZyhhLmZpcnN0Q2hpbGQp fSxjb250ZW50czpmdW5jdGlvbihhKXtyZXR1cm4gZi5ub2RlTmFtZShhLCJpZnJh bWUiKT9hLmNvbnRlbnREb2N1bWVudHx8YS5jb250ZW50V2luZG93LmRvY3VtZW50 OmYubWFrZUFycmF5KGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe2YuZm5b YV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1mLm1hcCh0aGlzLGIsYyk7TC50ZXN0KGEp fHwoZD1jKSxkJiZ0eXBlb2YgZD09InN0cmluZyImJihlPWYuZmlsdGVyKGQsZSkp LGU9dGhpcy5sZW5ndGg+MSYmIVJbYV0/Zi51bmlxdWUoZSk6ZSwodGhpcy5sZW5n dGg+MXx8Ti50ZXN0KGQpKSYmTS50ZXN0KGEpJiYoZT1lLnJldmVyc2UoKSk7cmV0 dXJuIHRoaXMucHVzaFN0YWNrKGUsYSxQLmNhbGwoYXJndW1lbnRzKS5qb2luKCIs IikpfX0pLGYuZXh0ZW5kKHtmaWx0ZXI6ZnVuY3Rpb24oYSxiLGMpe2MmJihhPSI6 bm90KCIrYSsiKSIpO3JldHVybiBiLmxlbmd0aD09PTE/Zi5maW5kLm1hdGNoZXNT ZWxlY3RvcihiWzBdLGEpP1tiWzBdXTpbXTpmLmZpbmQubWF0Y2hlcyhhLGIpfSxk aXI6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPVtdLGc9YVtjXTt3aGlsZShnJiZnLm5v ZGVUeXBlIT09OSYmKGQ9PT1ifHxnLm5vZGVUeXBlIT09MXx8IWYoZykuaXMoZCkp KWcubm9kZVR5cGU9PT0xJiZlLnB1c2goZyksZz1nW2NdO3JldHVybiBlfSxudGg6 ZnVuY3Rpb24oYSxiLGMsZCl7Yj1ifHwxO3ZhciBlPTA7Zm9yKDthO2E9YVtjXSlp ZihhLm5vZGVUeXBlPT09MSYmKytlPT09YilicmVhaztyZXR1cm4gYX0sc2libGlu ZzpmdW5jdGlvbihhLGIpe3ZhciBjPVtdO2Zvcig7YTthPWEubmV4dFNpYmxpbmcp YS5ub2RlVHlwZT09PTEmJmEhPT1iJiZjLnB1c2goYSk7cmV0dXJuIGN9fSk7dmFy IFY9ImFiYnJ8YXJ0aWNsZXxhc2lkZXxhdWRpb3xiZGl8Y2FudmFzfGRhdGF8ZGF0 YWxpc3R8ZGV0YWlsc3xmaWdjYXB0aW9ufGZpZ3VyZXxmb290ZXJ8aGVhZGVyfGhn cm91cHxtYXJrfG1ldGVyfG5hdnxvdXRwdXR8cHJvZ3Jlc3N8c2VjdGlvbnxzdW1t YXJ5fHRpbWV8dmlkZW8iLFc9LyBqUXVlcnlcZCs9Iig/OlxkK3xudWxsKSIvZyxY PS9eXHMrLyxZPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxp bmt8bWV0YXxwYXJhbSkoKFtcdzpdKylbXj5dKilcLz4vaWcsWj0vPChbXHc6XSsp LywkPS88dGJvZHkvaSxfPS88fCYjP1x3KzsvLGJhPS88KD86c2NyaXB0fHN0eWxl KS9pLGJiPS88KD86c2NyaXB0fG9iamVjdHxlbWJlZHxvcHRpb258c3R5bGUpL2ks YmM9bmV3IFJlZ0V4cCgiPCg/OiIrVisiKVtcXHMvPl0iLCJpIiksYmQ9L2NoZWNr ZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2ksYmU9L1wvKGphdmF8ZWNtYSlz Y3JpcHQvaSxiZj0vXlxzKjwhKD86XFtDREFUQVxbfFwtXC0pLyxiZz17b3B0aW9u OlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0s bGVnZW5kOlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSx0aGVhZDpbMSwi PHRhYmxlPiIsIjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90 Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3Ry PjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9k eT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLGFyZWE6WzEsIjxt YXA+IiwiPC9tYXA+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfSxiaD1VKGMpO2JnLm9w dGdyb3VwPWJnLm9wdGlvbixiZy50Ym9keT1iZy50Zm9vdD1iZy5jb2xncm91cD1i Zy5jYXB0aW9uPWJnLnRoZWFkLGJnLnRoPWJnLnRkLGYuc3VwcG9ydC5odG1sU2Vy aWFsaXplfHwoYmcuX2RlZmF1bHQ9WzEsImRpdjxkaXY+IiwiPC9kaXY+Il0pLGYu Zm4uZXh0ZW5kKHt0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBmLmFjY2Vzcyh0aGlz LGZ1bmN0aW9uKGEpe3JldHVybiBhPT09Yj9mLnRleHQodGhpcyk6dGhpcy5lbXB0 eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxjKS5j cmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sd3Jh cEFsbDpmdW5jdGlvbihhKXtpZihmLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMu ZWFjaChmdW5jdGlvbihiKXtmKHRoaXMpLndyYXBBbGwoYS5jYWxsKHRoaXMsYikp fSk7aWYodGhpc1swXSl7dmFyIGI9ZihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCku ZXEoMCkuY2xvbmUoITApO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZv cmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzO3doaWxlKGEu Zmlyc3RDaGlsZCYmYS5maXJzdENoaWxkLm5vZGVUeXBlPT09MSlhPWEuZmlyc3RD aGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElu bmVyOmZ1bmN0aW9uKGEpe2lmKGYuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5l YWNoKGZ1bmN0aW9uKGIpe2YodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIp KX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1mKHRoaXMpLGM9 Yi5jb250ZW50cygpO2MubGVuZ3RoP2Mud3JhcEFsbChhKTpiLmFwcGVuZChhKX0p fSx3cmFwOmZ1bmN0aW9uKGEpe3ZhciBiPWYuaXNGdW5jdGlvbihhKTtyZXR1cm4g dGhpcy5lYWNoKGZ1bmN0aW9uKGMpe2YodGhpcykud3JhcEFsbChiP2EuY2FsbCh0 aGlzLGMpOmEpfSl9LHVud3JhcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBhcmVu dCgpLmVhY2goZnVuY3Rpb24oKXtmLm5vZGVOYW1lKHRoaXMsImJvZHkiKXx8Zih0 aGlzKS5yZXBsYWNlV2l0aCh0aGlzLmNoaWxkTm9kZXMpfSkuZW5kKCl9LGFwcGVu ZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cywhMCxm dW5jdGlvbihhKXt0aGlzLm5vZGVUeXBlPT09MSYmdGhpcy5hcHBlbmRDaGlsZChh KX0pfSxwcmVwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJn dW1lbnRzLCEwLGZ1bmN0aW9uKGEpe3RoaXMubm9kZVR5cGU9PT0xJiZ0aGlzLmlu c2VydEJlZm9yZShhLHRoaXMuZmlyc3RDaGlsZCl9KX0sYmVmb3JlOmZ1bmN0aW9u KCl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlKXJldHVybiB0aGlzLmRv bU1hbmlwKGFyZ3VtZW50cywhMSxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUu aW5zZXJ0QmVmb3JlKGEsdGhpcyl9KTtpZihhcmd1bWVudHMubGVuZ3RoKXt2YXIg YT1mCi5jbGVhbihhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLHRoaXMudG9BcnJh eSgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYSwiYmVmb3JlIixhcmd1bWVudHMp fX0sYWZ0ZXI6ZnVuY3Rpb24oKXtpZih0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5v ZGUpcmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCExLGZ1bmN0aW9uKGEp e3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5n KX0pO2lmKGFyZ3VtZW50cy5sZW5ndGgpe3ZhciBhPXRoaXMucHVzaFN0YWNrKHRo aXMsImFmdGVyIixhcmd1bWVudHMpO2EucHVzaC5hcHBseShhLGYuY2xlYW4oYXJn dW1lbnRzKSk7cmV0dXJuIGF9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXtmb3IodmFy IGM9MCxkOyhkPXRoaXNbY10pIT1udWxsO2MrKylpZighYXx8Zi5maWx0ZXIoYSxb ZF0pLmxlbmd0aCkhYiYmZC5ub2RlVHlwZT09PTEmJihmLmNsZWFuRGF0YShkLmdl dEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpLGYuY2xlYW5EYXRhKFtkXSkpLGQucGFy ZW50Tm9kZSYmZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpO3JldHVybiB0aGlz fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYT0wLGI7KGI9dGhpc1thXSkhPW51 bGw7YSsrKXtiLm5vZGVUeXBlPT09MSYmZi5jbGVhbkRhdGEoYi5nZXRFbGVtZW50 c0J5VGFnTmFtZSgiKiIpKTt3aGlsZShiLmZpcnN0Q2hpbGQpYi5yZW1vdmVDaGls ZChiLmZpcnN0Q2hpbGQpfXJldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihhLGIp e2E9YT09bnVsbD8hMTphLGI9Yj09bnVsbD9hOmI7cmV0dXJuIHRoaXMubWFwKGZ1 bmN0aW9uKCl7cmV0dXJuIGYuY2xvbmUodGhpcyxhLGIpfSl9LGh0bWw6ZnVuY3Rp b24oYSl7cmV0dXJuIGYuYWNjZXNzKHRoaXMsZnVuY3Rpb24oYSl7dmFyIGM9dGhp c1swXXx8e30sZD0wLGU9dGhpcy5sZW5ndGg7aWYoYT09PWIpcmV0dXJuIGMubm9k ZVR5cGU9PT0xP2MuaW5uZXJIVE1MLnJlcGxhY2UoVywiIik6bnVsbDtpZih0eXBl b2YgYT09InN0cmluZyImJiFiYS50ZXN0KGEpJiYoZi5zdXBwb3J0LmxlYWRpbmdX aGl0ZXNwYWNlfHwhWC50ZXN0KGEpKSYmIWJnWyhaLmV4ZWMoYSl8fFsiIiwiIl0p WzFdLnRvTG93ZXJDYXNlKCldKXthPWEucmVwbGFjZShZLCI8JDE+PC8kMj4iKTt0 cnl7Zm9yKDtkPGU7ZCsrKWM9dGhpc1tkXXx8e30sYy5ub2RlVHlwZT09PTEmJihm LmNsZWFuRGF0YShjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikpLGMuaW5uZXJI VE1MPWEpO2M9MH1jYXRjaChnKXt9fWMmJnRoaXMuZW1wdHkoKS5hcHBlbmQoYSl9 LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24o YSl7aWYodGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlKXtpZihmLmlzRnVuY3Rp b24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXt2YXIgYz1mKHRoaXMp LGQ9Yy5odG1sKCk7Yy5yZXBsYWNlV2l0aChhLmNhbGwodGhpcyxiLGQpKX0pO3R5 cGVvZiBhIT0ic3RyaW5nIiYmKGE9ZihhKS5kZXRhY2goKSk7cmV0dXJuIHRoaXMu ZWFjaChmdW5jdGlvbigpe3ZhciBiPXRoaXMubmV4dFNpYmxpbmcsYz10aGlzLnBh cmVudE5vZGU7Zih0aGlzKS5yZW1vdmUoKSxiP2YoYikuYmVmb3JlKGEpOmYoYyku YXBwZW5kKGEpfSl9cmV0dXJuIHRoaXMubGVuZ3RoP3RoaXMucHVzaFN0YWNrKGYo Zi5pc0Z1bmN0aW9uKGEpP2EoKTphKSwicmVwbGFjZVdpdGgiLGEpOnRoaXN9LGRl dGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5yZW1vdmUoYSwhMCl9LGRvbU1h bmlwOmZ1bmN0aW9uKGEsYyxkKXt2YXIgZSxnLGgsaSxqPWFbMF0saz1bXTtpZigh Zi5zdXBwb3J0LmNoZWNrQ2xvbmUmJmFyZ3VtZW50cy5sZW5ndGg9PT0zJiZ0eXBl b2Ygaj09InN0cmluZyImJmJkLnRlc3QoaikpcmV0dXJuIHRoaXMuZWFjaChmdW5j dGlvbigpe2YodGhpcykuZG9tTWFuaXAoYSxjLGQsITApfSk7aWYoZi5pc0Z1bmN0 aW9uKGopKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZSl7dmFyIGc9Zih0aGlz KTthWzBdPWouY2FsbCh0aGlzLGUsYz9nLmh0bWwoKTpiKSxnLmRvbU1hbmlwKGEs YyxkKX0pO2lmKHRoaXNbMF0pe2k9aiYmai5wYXJlbnROb2RlLGYuc3VwcG9ydC5w YXJlbnROb2RlJiZpJiZpLm5vZGVUeXBlPT09MTEmJmkuY2hpbGROb2Rlcy5sZW5n dGg9PT10aGlzLmxlbmd0aD9lPXtmcmFnbWVudDppfTplPWYuYnVpbGRGcmFnbWVu dChhLHRoaXMsayksaD1lLmZyYWdtZW50LGguY2hpbGROb2Rlcy5sZW5ndGg9PT0x P2c9aD1oLmZpcnN0Q2hpbGQ6Zz1oLmZpcnN0Q2hpbGQ7aWYoZyl7Yz1jJiZmLm5v ZGVOYW1lKGcsInRyIik7Zm9yKHZhciBsPTAsbT10aGlzLmxlbmd0aCxuPW0tMTts PG07bCsrKWQuY2FsbChjP2JpKHRoaXNbbF0sZyk6dGhpc1tsXSxlLmNhY2hlYWJs ZXx8bT4xJiZsPG4/Zi5jbG9uZShoLCEwLCEwKTpoKX1rLmxlbmd0aCYmZi5lYWNo KGssZnVuY3Rpb24oYSxiKXtiLnNyYz9mLmFqYXgoe3R5cGU6IkdFVCIsZ2xvYmFs OiExLHVybDpiLnNyYyxhc3luYzohMSxkYXRhVHlwZToic2NyaXB0In0pOmYuZ2xv YmFsRXZhbCgoYi50ZXh0fHxiLnRleHRDb250ZW50fHxiLmlubmVySFRNTHx8IiIp LnJlcGxhY2UoYmYsIi8qJDAqLyIpKSxiLnBhcmVudE5vZGUmJmIucGFyZW50Tm9k ZS5yZW1vdmVDaGlsZChiKX0pfXJldHVybiB0aGlzfX0pLGYuYnVpbGRGcmFnbWVu dD1mdW5jdGlvbihhLGIsZCl7dmFyIGUsZyxoLGksaj1hWzBdO2ImJmJbMF0mJihp PWJbMF0ub3duZXJEb2N1bWVudHx8YlswXSksaS5jcmVhdGVEb2N1bWVudEZyYWdt ZW50fHwoaT1jKSxhLmxlbmd0aD09PTEmJnR5cGVvZiBqPT0ic3RyaW5nIiYmai5s ZW5ndGg8NTEyJiZpPT09YyYmai5jaGFyQXQoMCk9PT0iPCImJiFiYi50ZXN0KGop JiYoZi5zdXBwb3J0LmNoZWNrQ2xvbmV8fCFiZC50ZXN0KGopKSYmKGYuc3VwcG9y dC5odG1sNUNsb25lfHwhYmMudGVzdChqKSkmJihnPSEwLGg9Zi5mcmFnbWVudHNb al0saCYmaCE9PTEmJihlPWgpKSxlfHwoZT1pLmNyZWF0ZURvY3VtZW50RnJhZ21l bnQoKSxmLmNsZWFuKGEsaSxlLGQpKSxnJiYoZi5mcmFnbWVudHNbal09aD9lOjEp O3JldHVybntmcmFnbWVudDplLGNhY2hlYWJsZTpnfX0sZi5mcmFnbWVudHM9e30s Zi5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGlu c2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VB bGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtmLmZuW2FdPWZ1bmN0aW9u KGMpe3ZhciBkPVtdLGU9ZihjKSxnPXRoaXMubGVuZ3RoPT09MSYmdGhpc1swXS5w YXJlbnROb2RlO2lmKGcmJmcubm9kZVR5cGU9PT0xMSYmZy5jaGlsZE5vZGVzLmxl bmd0aD09PTEmJmUubGVuZ3RoPT09MSl7ZVtiXSh0aGlzWzBdKTtyZXR1cm4gdGhp c31mb3IodmFyIGg9MCxpPWUubGVuZ3RoO2g8aTtoKyspe3ZhciBqPShoPjA/dGhp cy5jbG9uZSghMCk6dGhpcykuZ2V0KCk7ZihlW2hdKVtiXShqKSxkPWQuY29uY2F0 KGopfXJldHVybiB0aGlzLnB1c2hTdGFjayhkLGEsZS5zZWxlY3Rvcil9fSksZi5l eHRlbmQoe2Nsb25lOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGcsaD1mLnN1cHBv cnQuaHRtbDVDbG9uZXx8Zi5pc1hNTERvYyhhKXx8IWJjLnRlc3QoIjwiK2Eubm9k ZU5hbWUrIj4iKT9hLmNsb25lTm9kZSghMCk6Ym8oYSk7aWYoKCFmLnN1cHBvcnQu bm9DbG9uZUV2ZW50fHwhZi5zdXBwb3J0Lm5vQ2xvbmVDaGVja2VkKSYmKGEubm9k ZVR5cGU9PT0xfHxhLm5vZGVUeXBlPT09MTEpJiYhZi5pc1hNTERvYyhhKSl7Ymso YSxoKSxkPWJsKGEpLGU9YmwoaCk7Zm9yKGc9MDtkW2ddOysrZyllW2ddJiZiayhk W2ddLGVbZ10pfWlmKGIpe2JqKGEsaCk7aWYoYyl7ZD1ibChhKSxlPWJsKGgpO2Zv cihnPTA7ZFtnXTsrK2cpYmooZFtnXSxlW2ddKX19ZD1lPW51bGw7cmV0dXJuIGh9 LGNsZWFuOmZ1bmN0aW9uKGEsYixkLGUpe3ZhciBnLGgsaSxqPVtdO2I9Ynx8Yyx0 eXBlb2YgYi5jcmVhdGVFbGVtZW50PT0idW5kZWZpbmVkIiYmKGI9Yi5vd25lckRv Y3VtZW50fHxiWzBdJiZiWzBdLm93bmVyRG9jdW1lbnR8fGMpO2Zvcih2YXIgaz0w LGw7KGw9YVtrXSkhPW51bGw7aysrKXt0eXBlb2YgbD09Im51bWJlciImJihsKz0i Iik7aWYoIWwpY29udGludWU7aWYodHlwZW9mIGw9PSJzdHJpbmciKWlmKCFfLnRl c3QobCkpbD1iLmNyZWF0ZVRleHROb2RlKGwpO2Vsc2V7bD1sLnJlcGxhY2UoWSwi PCQxPjwvJDI+Iik7dmFyIG09KFouZXhlYyhsKXx8WyIiLCIiXSlbMV0udG9Mb3dl ckNhc2UoKSxuPWJnW21dfHxiZy5fZGVmYXVsdCxvPW5bMF0scD1iLmNyZWF0ZUVs ZW1lbnQoImRpdiIpLHE9YmguY2hpbGROb2RlcyxyO2I9PT1jP2JoLmFwcGVuZENo aWxkKHApOlUoYikuYXBwZW5kQ2hpbGQocCkscC5pbm5lckhUTUw9blsxXStsK25b Ml07d2hpbGUoby0tKXA9cC5sYXN0Q2hpbGQ7aWYoIWYuc3VwcG9ydC50Ym9keSl7 dmFyIHM9JC50ZXN0KGwpLHQ9bT09PSJ0YWJsZSImJiFzP3AuZmlyc3RDaGlsZCYm cC5maXJzdENoaWxkLmNoaWxkTm9kZXM6blsxXT09PSI8dGFibGU+IiYmIXM/cC5j aGlsZE5vZGVzOltdO2ZvcihpPXQubGVuZ3RoLTE7aT49MDstLWkpZi5ub2RlTmFt ZSh0W2ldLCJ0Ym9keSIpJiYhdFtpXS5jaGlsZE5vZGVzLmxlbmd0aCYmdFtpXS5w YXJlbnROb2RlLnJlbW92ZUNoaWxkKHRbaV0pfSFmLnN1cHBvcnQubGVhZGluZ1do aXRlc3BhY2UmJlgudGVzdChsKSYmcC5pbnNlcnRCZWZvcmUoYi5jcmVhdGVUZXh0 Tm9kZShYLmV4ZWMobClbMF0pLHAuZmlyc3RDaGlsZCksbD1wLmNoaWxkTm9kZXMs cCYmKHAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwKSxxLmxlbmd0aD4wJiYocj1x W3EubGVuZ3RoLTFdLHImJnIucGFyZW50Tm9kZSYmci5wYXJlbnROb2RlLnJlbW92 ZUNoaWxkKHIpKSl9dmFyIHU7aWYoIWYuc3VwcG9ydC5hcHBlbmRDaGVja2VkKWlm KGxbMF0mJnR5cGVvZiAodT1sLmxlbmd0aCk9PSJudW1iZXIiKWZvcihpPTA7aTx1 O2krKylibihsW2ldKTtlbHNlIGJuKGwpO2wubm9kZVR5cGU/ai5wdXNoKGwpOmo9 Zi5tZXJnZShqLGwpfWlmKGQpe2c9ZnVuY3Rpb24oYSl7cmV0dXJuIWEudHlwZXx8 YmUudGVzdChhLnR5cGUpfTtmb3Ioaz0wO2pba107aysrKXtoPWpba107aWYoZSYm Zi5ub2RlTmFtZShoLCJzY3JpcHQiKSYmKCFoLnR5cGV8fGJlLnRlc3QoaC50eXBl KSkpZS5wdXNoKGgucGFyZW50Tm9kZT9oLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo aCk6aCk7ZWxzZXtpZihoLm5vZGVUeXBlPT09MSl7dmFyIHY9Zi5ncmVwKGguZ2V0 RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGcpO2ouc3BsaWNlLmFwcGx5KGos W2srMSwwXS5jb25jYXQodikpfWQuYXBwZW5kQ2hpbGQoaCl9fX1yZXR1cm4gan0s Y2xlYW5EYXRhOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZD1mLmNhY2hlLGU9Zi5ldmVu dC5zcGVjaWFsLGc9Zi5zdXBwb3J0LmRlbGV0ZUV4cGFuZG87Zm9yKHZhciBoPTAs aTsoaT1hW2hdKSE9bnVsbDtoKyspe2lmKGkubm9kZU5hbWUmJmYubm9EYXRhW2ku bm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pY29udGludWU7Yz1pW2YuZXhwYW5kb107 aWYoYyl7Yj1kW2NdO2lmKGImJmIuZXZlbnRzKXtmb3IodmFyIGogaW4gYi5ldmVu dHMpZVtqXT9mLmV2ZW50LnJlbW92ZShpLGopOmYucmVtb3ZlRXZlbnQoaSxqLGIu aGFuZGxlKTtiLmhhbmRsZSYmKGIuaGFuZGxlLmVsZW09bnVsbCl9Zz9kZWxldGUg aVtmLmV4cGFuZG9dOmkucmVtb3ZlQXR0cmlidXRlJiZpLnJlbW92ZUF0dHJpYnV0 ZShmLmV4cGFuZG8pLGRlbGV0ZSBkW2NdfX19fSk7dmFyIGJwPS9hbHBoYVwoW14p XSpcKS9pLGJxPS9vcGFjaXR5PShbXildKikvLGJyPS8oW0EtWl18Xm1zKS9nLGJz PS9eW1wtK10/KD86XGQqXC4pP1xkKyQvaSxidD0vXi0/KD86XGQqXC4pP1xkKyg/ IXB4KVteXGRcc10rJC9pLGJ1PS9eKFtcLStdKT0oW1wtKy5cZGVdKykvLGJ2PS9e bWFyZ2luLyxidz17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRk ZW4iLGRpc3BsYXk6ImJsb2NrIn0sYng9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIs IkxlZnQiXSxieSxieixiQTtmLmZuLmNzcz1mdW5jdGlvbihhLGMpe3JldHVybiBm LmFjY2Vzcyh0aGlzLGZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gZCE9PWI/Zi5zdHls ZShhLGMsZCk6Zi5jc3MoYSxjKX0sYSxjLGFyZ3VtZW50cy5sZW5ndGg+MSl9LGYu ZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYo Yil7dmFyIGM9YnkoYSwib3BhY2l0eSIpO3JldHVybiBjPT09IiI/IjEiOmN9cmV0 dXJuIGEuc3R5bGUub3BhY2l0eX19fSxjc3NOdW1iZXI6e2ZpbGxPcGFjaXR5OiEw LGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9ycGhhbnM6 ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0 IjpmLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCJ9LHN0 eWxlOmZ1bmN0aW9uKGEsYyxkLGUpe2lmKCEhYSYmYS5ub2RlVHlwZSE9PTMmJmEu bm9kZVR5cGUhPT04JiYhIWEuc3R5bGUpe3ZhciBnLGgsaT1mLmNhbWVsQ2FzZShj KSxqPWEuc3R5bGUsaz1mLmNzc0hvb2tzW2ldO2M9Zi5jc3NQcm9wc1tpXXx8aTtp ZihkPT09Yil7aWYoayYmImdldCJpbiBrJiYoZz1rLmdldChhLCExLGUpKSE9PWIp cmV0dXJuIGc7cmV0dXJuIGpbY119aD10eXBlb2YgZCxoPT09InN0cmluZyImJihn PWJ1LmV4ZWMoZCkpJiYoZD0rKGdbMV0rMSkqK2dbMl0rcGFyc2VGbG9hdChmLmNz cyhhLGMpKSxoPSJudW1iZXIiKTtpZihkPT1udWxsfHxoPT09Im51bWJlciImJmlz TmFOKGQpKXJldHVybjtoPT09Im51bWJlciImJiFmLmNzc051bWJlcltpXSYmKGQr PSJweCIpO2lmKCFrfHwhKCJzZXQiaW4gayl8fChkPWsuc2V0KGEsZCkpIT09Yil0 cnl7altjXT1kfWNhdGNoKGwpe319fSxjc3M6ZnVuY3Rpb24oYSxjLGQpe3ZhciBl LGc7Yz1mLmNhbWVsQ2FzZShjKSxnPWYuY3NzSG9va3NbY10sYz1mLmNzc1Byb3Bz W2NdfHxjLGM9PT0iY3NzRmxvYXQiJiYoYz0iZmxvYXQiKTtpZihnJiYiZ2V0Imlu IGcmJihlPWcuZ2V0KGEsITAsZCkpIT09YilyZXR1cm4gZTtpZihieSlyZXR1cm4g YnkoYSxjKX0sc3dhcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9e30sZSxmO2Zvcihm IGluIGIpZFtmXT1hLnN0eWxlW2ZdLGEuc3R5bGVbZl09YltmXTtlPWMuY2FsbChh KTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09ZFtmXTtyZXR1cm4gZX19KSxmLmN1ckNT Uz1mLmNzcyxjLmRlZmF1bHRWaWV3JiZjLmRlZmF1bHRWaWV3LmdldENvbXB1dGVk U3R5bGUmJihiej1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxnLGg9YS5zdHlsZTti PWIucmVwbGFjZShiciwiLSQxIikudG9Mb3dlckNhc2UoKSwoZD1hLm93bmVyRG9j dW1lbnQuZGVmYXVsdFZpZXcpJiYoZT1kLmdldENvbXB1dGVkU3R5bGUoYSxudWxs KSkmJihjPWUuZ2V0UHJvcGVydHlWYWx1ZShiKSxjPT09IiImJiFmLmNvbnRhaW5z KGEub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsYSkmJihjPWYuc3R5bGUo YSxiKSkpLCFmLnN1cHBvcnQucGl4ZWxNYXJnaW4mJmUmJmJ2LnRlc3QoYikmJmJ0 LnRlc3QoYykmJihnPWgud2lkdGgsaC53aWR0aD1jLGM9ZS53aWR0aCxoLndpZHRo PWcpO3JldHVybiBjfSksYy5kb2N1bWVudEVsZW1lbnQuY3VycmVudFN0eWxlJiYo YkE9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj1hLmN1cnJlbnRTdHlsZSYmYS5j dXJyZW50U3R5bGVbYl0sZz1hLnN0eWxlO2Y9PW51bGwmJmcmJihlPWdbYl0pJiYo Zj1lKSxidC50ZXN0KGYpJiYoYz1nLmxlZnQsZD1hLnJ1bnRpbWVTdHlsZSYmYS5y dW50aW1lU3R5bGUubGVmdCxkJiYoYS5ydW50aW1lU3R5bGUubGVmdD1hLmN1cnJl bnRTdHlsZS5sZWZ0KSxnLmxlZnQ9Yj09PSJmb250U2l6ZSI/IjFlbSI6ZixmPWcu cGl4ZWxMZWZ0KyJweCIsZy5sZWZ0PWMsZCYmKGEucnVudGltZVN0eWxlLmxlZnQ9 ZCkpO3JldHVybiBmPT09IiI/ImF1dG8iOmZ9KSxieT1ienx8YkEsZi5lYWNoKFsi aGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihhLGIpe2YuY3NzSG9va3NbYl09e2dl dDpmdW5jdGlvbihhLGMsZCl7aWYoYylyZXR1cm4gYS5vZmZzZXRXaWR0aCE9PTA/ YkIoYSxiLGQpOmYuc3dhcChhLGJ3LGZ1bmN0aW9uKCl7cmV0dXJuIGJCKGEsYixk KX0pfSxzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYnMudGVzdChiKT9iKyJweCI6 Yn19fSksZi5zdXBwb3J0Lm9wYWNpdHl8fChmLmNzc0hvb2tzLm9wYWNpdHk9e2dl dDpmdW5jdGlvbihhLGIpe3JldHVybiBicS50ZXN0KChiJiZhLmN1cnJlbnRTdHls ZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/cGFy c2VGbG9hdChSZWdFeHAuJDEpLzEwMCsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9u KGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9Zi5pc051bWVy aWMoYik/ImFscGhhKG9wYWNpdHk9IitiKjEwMCsiKSI6IiIsZz1kJiZkLmZpbHRl cnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xO2lmKGI+PTEmJmYudHJpbShnLnJlcGxh Y2UoYnAsIiIpKT09PSIiKXtjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIik7aWYo ZCYmIWQuZmlsdGVyKXJldHVybn1jLmZpbHRlcj1icC50ZXN0KGcpP2cucmVwbGFj ZShicCxlKTpnKyIgIitlfX0pLGYoZnVuY3Rpb24oKXtmLnN1cHBvcnQucmVsaWFi bGVNYXJnaW5SaWdodHx8KGYuY3NzSG9va3MubWFyZ2luUmlnaHQ9e2dldDpmdW5j dGlvbihhLGIpe3JldHVybiBmLnN3YXAoYSx7ZGlzcGxheToiaW5saW5lLWJsb2Nr In0sZnVuY3Rpb24oKXtyZXR1cm4gYj9ieShhLCJtYXJnaW4tcmlnaHQiKTphLnN0 eWxlLm1hcmdpblJpZ2h0fSl9fSl9KSxmLmV4cHImJmYuZXhwci5maWx0ZXJzJiYo Zi5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGEpe3ZhciBiPWEub2Zmc2V0 V2lkdGgsYz1hLm9mZnNldEhlaWdodDtyZXR1cm4gYj09PTAmJmM9PT0wfHwhZi5z dXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyYmKGEuc3R5bGUmJmEuc3R5bGUu ZGlzcGxheXx8Zi5jc3MoYSwiZGlzcGxheSIpKT09PSJub25lIn0sZi5leHByLmZp bHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hZi5leHByLmZpbHRlcnMu aGlkZGVuKGEpfSksZi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6 IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtmLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpm dW5jdGlvbihjKXt2YXIgZCxlPXR5cGVvZiBjPT0ic3RyaW5nIj9jLnNwbGl0KCIg Iik6W2NdLGY9e307Zm9yKGQ9MDtkPDQ7ZCsrKWZbYStieFtkXStiXT1lW2RdfHxl W2QtMl18fGVbMF07cmV0dXJuIGZ9fX0pO3ZhciBiQz0vJTIwL2csYkQ9L1xbXF0k LyxiRT0vXHI/XG4vZyxiRj0vIy4qJC8sYkc9L14oLio/KTpbIFx0XSooW15cclxu XSopXHI/JC9tZyxiSD0vXig/OmNvbG9yfGRhdGV8ZGF0ZXRpbWV8ZGF0ZXRpbWUt bG9jYWx8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxz ZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2VlaykkL2ksYkk9L14oPzphYm91dHxh cHB8YXBwXC1zdG9yYWdlfC4rXC1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTok LyxiSj0vXig/OkdFVHxIRUFEKSQvLGJLPS9eXC9cLy8sYkw9L1w/LyxiTT0vPHNj cmlwdFxiW148XSooPzooPyE8XC9zY3JpcHQ+KTxbXjxdKikqPFwvc2NyaXB0Pi9n aSxiTj0vXig/OnNlbGVjdHx0ZXh0YXJlYSkvaSxiTz0vXHMrLyxiUD0vKFs/Jl0p Xz1bXiZdKi8sYlE9L14oW1x3XCtcLlwtXSs6KSg/OlwvXC8oW15cLz8jOl0qKSg/ OjooXGQrKSk/KT8vLGJSPWYuZm4ubG9hZCxiUz17fSxiVD17fSxiVSxiVixiVz1b IiovIl0rWyIqIl07dHJ5e2JVPWUuaHJlZn1jYXRjaChiWCl7YlU9Yy5jcmVhdGVF bGVtZW50KCJhIiksYlUuaHJlZj0iIixiVT1iVS5ocmVmfWJWPWJRLmV4ZWMoYlUu dG9Mb3dlckNhc2UoKSl8fFtdLGYuZm4uZXh0ZW5kKHtsb2FkOmZ1bmN0aW9uKGEs YyxkKXtpZih0eXBlb2YgYSE9InN0cmluZyImJmJSKXJldHVybiBiUi5hcHBseSh0 aGlzLGFyZ3VtZW50cyk7aWYoIXRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3ZhciBl PWEuaW5kZXhPZigiICIpO2lmKGU+PTApe3ZhciBnPWEuc2xpY2UoZSxhLmxlbmd0 aCk7YT1hLnNsaWNlKDAsZSl9dmFyIGg9IkdFVCI7YyYmKGYuaXNGdW5jdGlvbihj KT8oZD1jLGM9Yik6dHlwZW9mIGM9PSJvYmplY3QiJiYoYz1mLnBhcmFtKGMsZi5h amF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLGg9IlBPU1QiKSk7dmFyIGk9dGhpcztm LmFqYXgoe3VybDphLHR5cGU6aCxkYXRhVHlwZToiaHRtbCIsZGF0YTpjLGNvbXBs ZXRlOmZ1bmN0aW9uKGEsYixjKXtjPWEucmVzcG9uc2VUZXh0LGEuaXNSZXNvbHZl ZCgpJiYoYS5kb25lKGZ1bmN0aW9uKGEpe2M9YX0pLGkuaHRtbChnP2YoIjxkaXY+ IikuYXBwZW5kKGMucmVwbGFjZShiTSwiIikpLmZpbmQoZyk6YykpLGQmJmkuZWFj aChkLFtjLGIsYV0pfX0pO3JldHVybiB0aGlzfSxzZXJpYWxpemU6ZnVuY3Rpb24o KXtyZXR1cm4gZi5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSxzZXJpYWxp emVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3Jl dHVybiB0aGlzLmVsZW1lbnRzP2YubWFrZUFycmF5KHRoaXMuZWxlbWVudHMpOnRo aXN9KS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uYW1lJiYhdGhpcy5k aXNhYmxlZCYmKHRoaXMuY2hlY2tlZHx8Yk4udGVzdCh0aGlzLm5vZGVOYW1lKXx8 YkgudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihhLGIpe3ZhciBjPWYo dGhpcykudmFsKCk7cmV0dXJuIGM9PW51bGw/bnVsbDpmLmlzQXJyYXkoYyk/Zi5t YXAoYyxmdW5jdGlvbihhLGMpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJl cGxhY2UoYkUsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNl KGJFLCJcclxuIil9fSkuZ2V0KCl9fSksZi5lYWNoKCJhamF4U3RhcnQgYWpheFN0 b3AgYWpheENvbXBsZXRlIGFqYXhFcnJvciBhamF4U3VjY2VzcyBhamF4U2VuZCIu c3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe2YuZm5bYl09ZnVuY3Rpb24oYSl7cmV0 dXJuIHRoaXMub24oYixhKX19KSxmLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rp b24oYSxjKXtmW2NdPWZ1bmN0aW9uKGEsZCxlLGcpe2YuaXNGdW5jdGlvbihkKSYm KGc9Z3x8ZSxlPWQsZD1iKTtyZXR1cm4gZi5hamF4KHt0eXBlOmMsdXJsOmEsZGF0 YTpkLHN1Y2Nlc3M6ZSxkYXRhVHlwZTpnfSl9fSksZi5leHRlbmQoe2dldFNjcmlw dDpmdW5jdGlvbihhLGMpe3JldHVybiBmLmdldChhLGIsYywic2NyaXB0Iil9LGdl dEpTT046ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmLmdldChhLGIsYywianNvbiIp fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtiP2IkKGEsZi5hamF4U2V0dGluZ3Mp OihiPWEsYT1mLmFqYXhTZXR0aW5ncyksYiQoYSxiKTtyZXR1cm4gYX0sYWpheFNl dHRpbmdzOnt1cmw6YlUsaXNMb2NhbDpiSS50ZXN0KGJWWzFdKSxnbG9iYWw6ITAs dHlwZToiR0VUIixjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11 cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04Iixwcm9jZXNzRGF0YTohMCxhc3luYzoh MCxhY2NlcHRzOnt4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGh0bWw6 InRleHQvaHRtbCIsdGV4dDoidGV4dC9wbGFpbiIsanNvbjoiYXBwbGljYXRpb24v anNvbiwgdGV4dC9qYXZhc2NyaXB0IiwiKiI6Yld9LGNvbnRlbnRzOnt4bWw6L3ht bC8saHRtbDovaHRtbC8sanNvbjovanNvbi99LHJlc3BvbnNlRmllbGRzOnt4bWw6 InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQifSxjb252ZXJ0ZXJzOnsi KiB0ZXh0IjphLlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpmLnBh cnNlSlNPTiwidGV4dCB4bWwiOmYucGFyc2VYTUx9LGZsYXRPcHRpb25zOntjb250 ZXh0OiEwLHVybDohMH19LGFqYXhQcmVmaWx0ZXI6YlkoYlMpLGFqYXhUcmFuc3Bv cnQ6YlkoYlQpLGFqYXg6ZnVuY3Rpb24oYSxjKXtmdW5jdGlvbiB3KGEsYyxsLG0p e2lmKHMhPT0yKXtzPTIscSYmY2xlYXJUaW1lb3V0KHEpLHA9YixuPW18fCIiLHYu cmVhZHlTdGF0ZT1hPjA/NDowO3ZhciBvLHIsdSx3PWMseD1sP2NhKGQsdixsKTpi LHksejtpZihhPj0yMDAmJmE8MzAwfHxhPT09MzA0KXtpZihkLmlmTW9kaWZpZWQp e2lmKHk9di5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpKWYubGFz dE1vZGlmaWVkW2tdPXk7aWYoej12LmdldFJlc3BvbnNlSGVhZGVyKCJFdGFnIikp Zi5ldGFnW2tdPXp9aWYoYT09PTMwNCl3PSJub3Rtb2RpZmllZCIsbz0hMDtlbHNl IHRyeXtyPWNiKGQseCksdz0ic3VjY2VzcyIsbz0hMH1jYXRjaChBKXt3PSJwYXJz ZXJlcnJvciIsdT1BfX1lbHNle3U9dztpZighd3x8YSl3PSJlcnJvciIsYTwwJiYo YT0wKX12LnN0YXR1cz1hLHYuc3RhdHVzVGV4dD0iIisoY3x8dyksbz9oLnJlc29s dmVXaXRoKGUsW3Isdyx2XSk6aC5yZWplY3RXaXRoKGUsW3Ysdyx1XSksdi5zdGF0 dXNDb2RlKGopLGo9Yix0JiZnLnRyaWdnZXIoImFqYXgiKyhvPyJTdWNjZXNzIjoi RXJyb3IiKSxbdixkLG8/cjp1XSksaS5maXJlV2l0aChlLFt2LHddKSx0JiYoZy50 cmlnZ2VyKCJhamF4Q29tcGxldGUiLFt2LGRdKSwtLWYuYWN0aXZlfHxmLmV2ZW50 LnRyaWdnZXIoImFqYXhTdG9wIikpfX10eXBlb2YgYT09Im9iamVjdCImJihjPWEs YT1iKSxjPWN8fHt9O3ZhciBkPWYuYWpheFNldHVwKHt9LGMpLGU9ZC5jb250ZXh0 fHxkLGc9ZSE9PWQmJihlLm5vZGVUeXBlfHxlIGluc3RhbmNlb2YgZik/ZihlKTpm LmV2ZW50LGg9Zi5EZWZlcnJlZCgpLGk9Zi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5 Iiksaj1kLnN0YXR1c0NvZGV8fHt9LGssbD17fSxtPXt9LG4sbyxwLHEscixzPTAs dCx1LHY9e3JlYWR5U3RhdGU6MCxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEs Yil7aWYoIXMpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTthPW1bY109bVtjXXx8YSxs W2FdPWJ9cmV0dXJuIHRoaXN9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlv bigpe3JldHVybiBzPT09Mj9uOm51bGx9LGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0 aW9uKGEpe3ZhciBjO2lmKHM9PT0yKXtpZighbyl7bz17fTt3aGlsZShjPWJHLmV4 ZWMobikpb1tjWzFdLnRvTG93ZXJDYXNlKCldPWNbMl19Yz1vW2EudG9Mb3dlckNh c2UoKV19cmV0dXJuIGM9PT1iP251bGw6Y30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5j dGlvbihhKXtzfHwoZC5taW1lVHlwZT1hKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVu Y3Rpb24oYSl7YT1hfHwiYWJvcnQiLHAmJnAuYWJvcnQoYSksdygwLGEpO3JldHVy biB0aGlzfX07aC5wcm9taXNlKHYpLHYuc3VjY2Vzcz12LmRvbmUsdi5lcnJvcj12 LmZhaWwsdi5jb21wbGV0ZT1pLmFkZCx2LnN0YXR1c0NvZGU9ZnVuY3Rpb24oYSl7 aWYoYSl7dmFyIGI7aWYoczwyKWZvcihiIGluIGEpaltiXT1baltiXSxhW2JdXTtl bHNlIGI9YVt2LnN0YXR1c10sdi50aGVuKGIsYil9cmV0dXJuIHRoaXN9LGQudXJs PSgoYXx8ZC51cmwpKyIiKS5yZXBsYWNlKGJGLCIiKS5yZXBsYWNlKGJLLGJWWzFd KyIvLyIpLGQuZGF0YVR5cGVzPWYudHJpbShkLmRhdGFUeXBlfHwiKiIpLnRvTG93 ZXJDYXNlKCkuc3BsaXQoYk8pLGQuY3Jvc3NEb21haW49PW51bGwmJihyPWJRLmV4 ZWMoZC51cmwudG9Mb3dlckNhc2UoKSksZC5jcm9zc0RvbWFpbj0hKCFyfHxyWzFd PT1iVlsxXSYmclsyXT09YlZbMl0mJihyWzNdfHwoclsxXT09PSJodHRwOiI/ODA6 NDQzKSk9PShiVlszXXx8KGJWWzFdPT09Imh0dHA6Ij84MDo0NDMpKSkpLGQuZGF0 YSYmZC5wcm9jZXNzRGF0YSYmdHlwZW9mIGQuZGF0YSE9InN0cmluZyImJihkLmRh dGE9Zi5wYXJhbShkLmRhdGEsZC50cmFkaXRpb25hbCkpLGJaKGJTLGQsYyx2KTtp ZihzPT09MilyZXR1cm4hMTt0PWQuZ2xvYmFsLGQudHlwZT1kLnR5cGUudG9VcHBl ckNhc2UoKSxkLmhhc0NvbnRlbnQ9IWJKLnRlc3QoZC50eXBlKSx0JiZmLmFjdGl2 ZSsrPT09MCYmZi5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKTtpZighZC5oYXND b250ZW50KXtkLmRhdGEmJihkLnVybCs9KGJMLnRlc3QoZC51cmwpPyImIjoiPyIp K2QuZGF0YSxkZWxldGUgZC5kYXRhKSxrPWQudXJsO2lmKGQuY2FjaGU9PT0hMSl7 dmFyIHg9Zi5ub3coKSx5PWQudXJsLnJlcGxhY2UoYlAsIiQxXz0iK3gpO2QudXJs PXkrKHk9PT1kLnVybD8oYkwudGVzdChkLnVybCk/IiYiOiI/IikrIl89Iit4OiIi KX19KGQuZGF0YSYmZC5oYXNDb250ZW50JiZkLmNvbnRlbnRUeXBlIT09ITF8fGMu Y29udGVudFR5cGUpJiZ2LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIs ZC5jb250ZW50VHlwZSksZC5pZk1vZGlmaWVkJiYoaz1rfHxkLnVybCxmLmxhc3RN b2RpZmllZFtrXSYmdi5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5j ZSIsZi5sYXN0TW9kaWZpZWRba10pLGYuZXRhZ1trXSYmdi5zZXRSZXF1ZXN0SGVh ZGVyKCJJZi1Ob25lLU1hdGNoIixmLmV0YWdba10pKSx2LnNldFJlcXVlc3RIZWFk ZXIoIkFjY2VwdCIsZC5kYXRhVHlwZXNbMF0mJmQuYWNjZXB0c1tkLmRhdGFUeXBl c1swXV0/ZC5hY2NlcHRzW2QuZGF0YVR5cGVzWzBdXSsoZC5kYXRhVHlwZXNbMF0h PT0iKiI/IiwgIitiVysiOyBxPTAuMDEiOiIiKTpkLmFjY2VwdHNbIioiXSk7Zm9y KHUgaW4gZC5oZWFkZXJzKXYuc2V0UmVxdWVzdEhlYWRlcih1LGQuaGVhZGVyc1t1 XSk7aWYoZC5iZWZvcmVTZW5kJiYoZC5iZWZvcmVTZW5kLmNhbGwoZSx2LGQpPT09 ITF8fHM9PT0yKSl7di5hYm9ydCgpO3JldHVybiExfWZvcih1IGlue3N1Y2Nlc3M6 MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXZbdV0oZFt1XSk7cD1iWihiVCxkLGMsdik7 aWYoIXApdygtMSwiTm8gVHJhbnNwb3J0Iik7ZWxzZXt2LnJlYWR5U3RhdGU9MSx0 JiZnLnRyaWdnZXIoImFqYXhTZW5kIixbdixkXSksZC5hc3luYyYmZC50aW1lb3V0 PjAmJihxPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2LmFib3J0KCJ0aW1lb3V0Iil9 LGQudGltZW91dCkpO3RyeXtzPTEscC5zZW5kKGwsdyl9Y2F0Y2goeil7aWYoczwy KXcoLTEseik7ZWxzZSB0aHJvdyB6fX1yZXR1cm4gdn0scGFyYW06ZnVuY3Rpb24o YSxjKXt2YXIgZD1bXSxlPWZ1bmN0aW9uKGEsYil7Yj1mLmlzRnVuY3Rpb24oYik/ YigpOmIsZFtkLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNv ZGVVUklDb21wb25lbnQoYil9O2M9PT1iJiYoYz1mLmFqYXhTZXR0aW5ncy50cmFk aXRpb25hbCk7aWYoZi5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIWYuaXNQbGFpbk9i amVjdChhKSlmLmVhY2goYSxmdW5jdGlvbigpe2UodGhpcy5uYW1lLHRoaXMudmFs dWUpfSk7ZWxzZSBmb3IodmFyIGcgaW4gYSliXyhnLGFbZ10sYyxlKTtyZXR1cm4g ZC5qb2luKCImIikucmVwbGFjZShiQywiKyIpfX0pLGYuZXh0ZW5kKHthY3RpdmU6 MCxsYXN0TW9kaWZpZWQ6e30sZXRhZzp7fX0pO3ZhciBjYz1mLm5vdygpLGNkPS8o XD0pXD8oJnwkKXxcP1w/L2k7Zi5hamF4U2V0dXAoe2pzb25wOiJjYWxsYmFjayIs anNvbnBDYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiBmLmV4cGFuZG8rIl8iK2Nj Kyt9fSksZi5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihiLGMs ZCl7dmFyIGU9dHlwZW9mIGIuZGF0YT09InN0cmluZyImJi9eYXBwbGljYXRpb25c L3hcLXd3d1wtZm9ybVwtdXJsZW5jb2RlZC8udGVzdChiLmNvbnRlbnRUeXBlKTtp ZihiLmRhdGFUeXBlc1swXT09PSJqc29ucCJ8fGIuanNvbnAhPT0hMSYmKGNkLnRl c3QoYi51cmwpfHxlJiZjZC50ZXN0KGIuZGF0YSkpKXt2YXIgZyxoPWIuanNvbnBD YWxsYmFjaz1mLmlzRnVuY3Rpb24oYi5qc29ucENhbGxiYWNrKT9iLmpzb25wQ2Fs bGJhY2soKTpiLmpzb25wQ2FsbGJhY2ssaT1hW2hdLGo9Yi51cmwsaz1iLmRhdGEs bD0iJDEiK2grIiQyIjtiLmpzb25wIT09ITEmJihqPWoucmVwbGFjZShjZCxsKSxi LnVybD09PWomJihlJiYoaz1rLnJlcGxhY2UoY2QsbCkpLGIuZGF0YT09PWsmJihq Kz0oL1w/Ly50ZXN0KGopPyImIjoiPyIpK2IuanNvbnArIj0iK2gpKSksYi51cmw9 aixiLmRhdGE9ayxhW2hdPWZ1bmN0aW9uKGEpe2c9W2FdfSxkLmFsd2F5cyhmdW5j dGlvbigpe2FbaF09aSxnJiZmLmlzRnVuY3Rpb24oaSkmJmFbaF0oZ1swXSl9KSxi LmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtnfHxmLmVycm9y KGgrIiB3YXMgbm90IGNhbGxlZCIpO3JldHVybiBnWzBdfSxiLmRhdGFUeXBlc1sw XT0ianNvbiI7cmV0dXJuInNjcmlwdCJ9fSksZi5hamF4U2V0dXAoe2FjY2VwdHM6 e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0 LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3Jp cHQifSxjb250ZW50czp7c2NyaXB0Oi9qYXZhc2NyaXB0fGVjbWFzY3JpcHQvfSxj b252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe2YuZ2xvYmFsRXZh bChhKTtyZXR1cm4gYX19fSksZi5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0 aW9uKGEpe2EuY2FjaGU9PT1iJiYoYS5jYWNoZT0hMSksYS5jcm9zc0RvbWFpbiYm KGEudHlwZT0iR0VUIixhLmdsb2JhbD0hMSl9KSxmLmFqYXhUcmFuc3BvcnQoInNj cmlwdCIsZnVuY3Rpb24oYSl7aWYoYS5jcm9zc0RvbWFpbil7dmFyIGQsZT1jLmhl YWR8fGMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8Yy5kb2N1bWVu dEVsZW1lbnQ7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZixnKXtkPWMuY3JlYXRlRWxl bWVudCgic2NyaXB0IiksZC5hc3luYz0iYXN5bmMiLGEuc2NyaXB0Q2hhcnNldCYm KGQuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGQuc3JjPWEudXJsLGQub25sb2Fk PWQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7aWYoY3x8IWQucmVh ZHlTdGF0ZXx8L2xvYWRlZHxjb21wbGV0ZS8udGVzdChkLnJlYWR5U3RhdGUpKWQu b25sb2FkPWQub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsZSYmZC5wYXJlbnROb2Rl JiZlLnJlbW92ZUNoaWxkKGQpLGQ9YixjfHxnKDIwMCwic3VjY2VzcyIpfSxlLmlu c2VydEJlZm9yZShkLGUuZmlyc3RDaGlsZCl9LGFib3J0OmZ1bmN0aW9uKCl7ZCYm ZC5vbmxvYWQoMCwxKX19fX0pO3ZhciBjZT1hLkFjdGl2ZVhPYmplY3Q/ZnVuY3Rp b24oKXtmb3IodmFyIGEgaW4gY2cpY2dbYV0oMCwxKX06ITEsY2Y9MCxjZztmLmFq YXhTZXR0aW5ncy54aHI9YS5BY3RpdmVYT2JqZWN0P2Z1bmN0aW9uKCl7cmV0dXJu IXRoaXMuaXNMb2NhbCYmY2goKXx8Y2koKX06Y2gsZnVuY3Rpb24oYSl7Zi5leHRl bmQoZi5zdXBwb3J0LHthamF4OiEhYSxjb3JzOiEhYSYmIndpdGhDcmVkZW50aWFs cyJpbiBhfSl9KGYuYWpheFNldHRpbmdzLnhocigpKSxmLnN1cHBvcnQuYWpheCYm Zi5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGMpe2lmKCFjLmNyb3NzRG9tYWlufHxm LnN1cHBvcnQuY29ycyl7dmFyIGQ7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSxnKXt2 YXIgaD1jLnhocigpLGksajtjLnVzZXJuYW1lP2gub3BlbihjLnR5cGUsYy51cmws Yy5hc3luYyxjLnVzZXJuYW1lLGMucGFzc3dvcmQpOmgub3BlbihjLnR5cGUsYy51 cmwsYy5hc3luYyk7aWYoYy54aHJGaWVsZHMpZm9yKGogaW4gYy54aHJGaWVsZHMp aFtqXT1jLnhockZpZWxkc1tqXTtjLm1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5 cGUmJmgub3ZlcnJpZGVNaW1lVHlwZShjLm1pbWVUeXBlKSwhYy5jcm9zc0RvbWFp biYmIWVbIlgtUmVxdWVzdGVkLVdpdGgiXSYmKGVbIlgtUmVxdWVzdGVkLVdpdGgi XT0iWE1MSHR0cFJlcXVlc3QiKTt0cnl7Zm9yKGogaW4gZSloLnNldFJlcXVlc3RI ZWFkZXIoaixlW2pdKX1jYXRjaChrKXt9aC5zZW5kKGMuaGFzQ29udGVudCYmYy5k YXRhfHxudWxsKSxkPWZ1bmN0aW9uKGEsZSl7dmFyIGosayxsLG0sbjt0cnl7aWYo ZCYmKGV8fGgucmVhZHlTdGF0ZT09PTQpKXtkPWIsaSYmKGgub25yZWFkeXN0YXRl Y2hhbmdlPWYubm9vcCxjZSYmZGVsZXRlIGNnW2ldKTtpZihlKWgucmVhZHlTdGF0 ZSE9PTQmJmguYWJvcnQoKTtlbHNle2o9aC5zdGF0dXMsbD1oLmdldEFsbFJlc3Bv bnNlSGVhZGVycygpLG09e30sbj1oLnJlc3BvbnNlWE1MLG4mJm4uZG9jdW1lbnRF bGVtZW50JiYobS54bWw9bik7dHJ5e20udGV4dD1oLnJlc3BvbnNlVGV4dH1jYXRj aChhKXt9dHJ5e2s9aC5zdGF0dXNUZXh0fWNhdGNoKG8pe2s9IiJ9IWomJmMuaXNM b2NhbCYmIWMuY3Jvc3NEb21haW4/aj1tLnRleHQ/MjAwOjQwNDpqPT09MTIyMyYm KGo9MjA0KX19fWNhdGNoKHApe2V8fGcoLTEscCl9bSYmZyhqLGssbSxsKX0sIWMu YXN5bmN8fGgucmVhZHlTdGF0ZT09PTQ/ZCgpOihpPSsrY2YsY2UmJihjZ3x8KGNn PXt9LGYoYSkudW5sb2FkKGNlKSksY2dbaV09ZCksaC5vbnJlYWR5c3RhdGVjaGFu Z2U9ZCl9LGFib3J0OmZ1bmN0aW9uKCl7ZCYmZCgwLDEpfX19fSk7dmFyIGNqPXt9 LGNrLGNsLGNtPS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxjbj0vXihbK1wtXT0p PyhbXGQrLlwtXSspKFthLXolXSopJC9pLGNvLGNwPVtbImhlaWdodCIsIm1hcmdp blRvcCIsIm1hcmdpbkJvdHRvbSIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9t Il0sWyJ3aWR0aCIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsInBhZGRpbmdM ZWZ0IiwicGFkZGluZ1JpZ2h0Il0sWyJvcGFjaXR5Il1dLGNxO2YuZm4uZXh0ZW5k KHtzaG93OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO2lmKGF8fGE9PT0wKXJldHVy biB0aGlzLmFuaW1hdGUoY3QoInNob3ciLDMpLGEsYixjKTtmb3IodmFyIGc9MCxo PXRoaXMubGVuZ3RoO2c8aDtnKyspZD10aGlzW2ddLGQuc3R5bGUmJihlPWQuc3R5 bGUuZGlzcGxheSwhZi5fZGF0YShkLCJvbGRkaXNwbGF5IikmJmU9PT0ibm9uZSIm JihlPWQuc3R5bGUuZGlzcGxheT0iIiksKGU9PT0iIiYmZi5jc3MoZCwiZGlzcGxh eSIpPT09Im5vbmUifHwhZi5jb250YWlucyhkLm93bmVyRG9jdW1lbnQuZG9jdW1l bnRFbGVtZW50LGQpKSYmZi5fZGF0YShkLCJvbGRkaXNwbGF5IixjdShkLm5vZGVO YW1lKSkpO2ZvcihnPTA7ZzxoO2crKyl7ZD10aGlzW2ddO2lmKGQuc3R5bGUpe2U9 ZC5zdHlsZS5kaXNwbGF5O2lmKGU9PT0iInx8ZT09PSJub25lIilkLnN0eWxlLmRp c3BsYXk9Zi5fZGF0YShkLCJvbGRkaXNwbGF5Iil8fCIifX1yZXR1cm4gdGhpc30s aGlkZTpmdW5jdGlvbihhLGIsYyl7aWYoYXx8YT09PTApcmV0dXJuIHRoaXMuYW5p bWF0ZShjdCgiaGlkZSIsMyksYSxiLGMpO3ZhciBkLGUsZz0wLGg9dGhpcy5sZW5n dGg7Zm9yKDtnPGg7ZysrKWQ9dGhpc1tnXSxkLnN0eWxlJiYoZT1mLmNzcyhkLCJk aXNwbGF5IiksZSE9PSJub25lIiYmIWYuX2RhdGEoZCwib2xkZGlzcGxheSIpJiZm Ll9kYXRhKGQsIm9sZGRpc3BsYXkiLGUpKTtmb3IoZz0wO2c8aDtnKyspdGhpc1tn XS5zdHlsZSYmKHRoaXNbZ10uc3R5bGUuZGlzcGxheT0ibm9uZSIpO3JldHVybiB0 aGlzfSxfdG9nZ2xlOmYuZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihhLGIsYyl7 dmFyIGQ9dHlwZW9mIGE9PSJib29sZWFuIjtmLmlzRnVuY3Rpb24oYSkmJmYuaXNG dW5jdGlvbihiKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpOmE9 PW51bGx8fGQ/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ZD9hOmYodGhpcyku aXMoIjpoaWRkZW4iKTtmKHRoaXMpW2I/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMu YW5pbWF0ZShjdCgidG9nZ2xlIiwzKSxhLGIsYyk7cmV0dXJuIHRoaXN9LGZhZGVU bzpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5maWx0ZXIoIjpoaWRkZW4i KS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5 OmJ9LGEsYyxkKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxkKXtmdW5jdGlvbiBn KCl7ZS5xdWV1ZT09PSExJiZmLl9tYXJrKHRoaXMpO3ZhciBiPWYuZXh0ZW5kKHt9 LGUpLGM9dGhpcy5ub2RlVHlwZT09PTEsZD1jJiZmKHRoaXMpLmlzKCI6aGlkZGVu IiksZyxoLGksaixrLGwsbSxuLG8scCxxO2IuYW5pbWF0ZWRQcm9wZXJ0aWVzPXt9 O2ZvcihpIGluIGEpe2c9Zi5jYW1lbENhc2UoaSksaSE9PWcmJihhW2ddPWFbaV0s ZGVsZXRlIGFbaV0pO2lmKChrPWYuY3NzSG9va3NbZ10pJiYiZXhwYW5kImluIGsp e2w9ay5leHBhbmQoYVtnXSksZGVsZXRlIGFbZ107Zm9yKGkgaW4gbClpIGluIGF8 fChhW2ldPWxbaV0pfX1mb3IoZyBpbiBhKXtoPWFbZ10sZi5pc0FycmF5KGgpPyhi LmFuaW1hdGVkUHJvcGVydGllc1tnXT1oWzFdLGg9YVtnXT1oWzBdKTpiLmFuaW1h dGVkUHJvcGVydGllc1tnXT1iLnNwZWNpYWxFYXNpbmcmJmIuc3BlY2lhbEVhc2lu Z1tnXXx8Yi5lYXNpbmd8fCJzd2luZyI7aWYoaD09PSJoaWRlIiYmZHx8aD09PSJz aG93IiYmIWQpcmV0dXJuIGIuY29tcGxldGUuY2FsbCh0aGlzKTtjJiYoZz09PSJo ZWlnaHQifHxnPT09IndpZHRoIikmJihiLm92ZXJmbG93PVt0aGlzLnN0eWxlLm92 ZXJmbG93LHRoaXMuc3R5bGUub3ZlcmZsb3dYLHRoaXMuc3R5bGUub3ZlcmZsb3dZ XSxmLmNzcyh0aGlzLCJkaXNwbGF5Iik9PT0iaW5saW5lIiYmZi5jc3ModGhpcywi ZmxvYXQiKT09PSJub25lIiYmKCFmLnN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xh eW91dHx8Y3UodGhpcy5ub2RlTmFtZSk9PT0iaW5saW5lIj90aGlzLnN0eWxlLmRp c3BsYXk9ImlubGluZS1ibG9jayI6dGhpcy5zdHlsZS56b29tPTEpKX1iLm92ZXJm bG93IT1udWxsJiYodGhpcy5zdHlsZS5vdmVyZmxvdz0iaGlkZGVuIik7Zm9yKGkg aW4gYSlqPW5ldyBmLmZ4KHRoaXMsYixpKSxoPWFbaV0sY20udGVzdChoKT8ocT1m Ll9kYXRhKHRoaXMsInRvZ2dsZSIraSl8fChoPT09InRvZ2dsZSI/ZD8ic2hvdyI6 ImhpZGUiOjApLHE/KGYuX2RhdGEodGhpcywidG9nZ2xlIitpLHE9PT0ic2hvdyI/ ImhpZGUiOiJzaG93IiksaltxXSgpKTpqW2hdKCkpOihtPWNuLmV4ZWMoaCksbj1q LmN1cigpLG0/KG89cGFyc2VGbG9hdChtWzJdKSxwPW1bM118fChmLmNzc051bWJl cltpXT8iIjoicHgiKSxwIT09InB4IiYmKGYuc3R5bGUodGhpcyxpLChvfHwxKStw KSxuPShvfHwxKS9qLmN1cigpKm4sZi5zdHlsZSh0aGlzLGksbitwKSksbVsxXSYm KG89KG1bMV09PT0iLT0iPy0xOjEpKm8rbiksai5jdXN0b20obixvLHApKTpqLmN1 c3RvbShuLGgsIiIpKTtyZXR1cm4hMH12YXIgZT1mLnNwZWVkKGIsYyxkKTtpZihm LmlzRW1wdHlPYmplY3QoYSkpcmV0dXJuIHRoaXMuZWFjaChlLmNvbXBsZXRlLFsh MV0pO2E9Zi5leHRlbmQoe30sYSk7cmV0dXJuIGUucXVldWU9PT0hMT90aGlzLmVh Y2goZyk6dGhpcy5xdWV1ZShlLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYyxk KXt0eXBlb2YgYSE9InN0cmluZyImJihkPWMsYz1hLGE9YiksYyYmYSE9PSExJiZ0 aGlzLnF1ZXVlKGF8fCJmeCIsW10pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24o KXtmdW5jdGlvbiBoKGEsYixjKXt2YXIgZT1iW2NdO2YucmVtb3ZlRGF0YShhLGMs ITApLGUuc3RvcChkKX12YXIgYixjPSExLGU9Zi50aW1lcnMsZz1mLl9kYXRhKHRo aXMpO2R8fGYuX3VubWFyayghMCx0aGlzKTtpZihhPT1udWxsKWZvcihiIGluIGcp Z1tiXSYmZ1tiXS5zdG9wJiZiLmluZGV4T2YoIi5ydW4iKT09PWIubGVuZ3RoLTQm JmgodGhpcyxnLGIpO2Vsc2UgZ1tiPWErIi5ydW4iXSYmZ1tiXS5zdG9wJiZoKHRo aXMsZyxiKTtmb3IoYj1lLmxlbmd0aDtiLS07KWVbYl0uZWxlbT09PXRoaXMmJihh PT1udWxsfHxlW2JdLnF1ZXVlPT09YSkmJihkP2VbYl0oITApOmVbYl0uc2F2ZVN0 YXRlKCksYz0hMCxlLnNwbGljZShiLDEpKTsoIWR8fCFjKSYmZi5kZXF1ZXVlKHRo aXMsYSl9KX19KSxmLmVhY2goe3NsaWRlRG93bjpjdCgic2hvdyIsMSksc2xpZGVV cDpjdCgiaGlkZSIsMSksc2xpZGVUb2dnbGU6Y3QoInRvZ2dsZSIsMSksZmFkZUlu OntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9LGZhZGVU b2dnbGU6e29wYWNpdHk6InRvZ2dsZSJ9fSxmdW5jdGlvbihhLGIpe2YuZm5bYV09 ZnVuY3Rpb24oYSxjLGQpe3JldHVybiB0aGlzLmFuaW1hdGUoYixhLGMsZCl9fSks Zi5leHRlbmQoe3NwZWVkOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hJiZ0eXBlb2Yg YT09Im9iamVjdCI/Zi5leHRlbmQoe30sYSk6e2NvbXBsZXRlOmN8fCFjJiZifHxm LmlzRnVuY3Rpb24oYSkmJmEsZHVyYXRpb246YSxlYXNpbmc6YyYmYnx8YiYmIWYu aXNGdW5jdGlvbihiKSYmYn07ZC5kdXJhdGlvbj1mLmZ4Lm9mZj8wOnR5cGVvZiBk LmR1cmF0aW9uPT0ibnVtYmVyIj9kLmR1cmF0aW9uOmQuZHVyYXRpb24gaW4gZi5m eC5zcGVlZHM/Zi5meC5zcGVlZHNbZC5kdXJhdGlvbl06Zi5meC5zcGVlZHMuX2Rl ZmF1bHQ7aWYoZC5xdWV1ZT09bnVsbHx8ZC5xdWV1ZT09PSEwKWQucXVldWU9ImZ4 IjtkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oYSl7Zi5pc0Z1 bmN0aW9uKGQub2xkKSYmZC5vbGQuY2FsbCh0aGlzKSxkLnF1ZXVlP2YuZGVxdWV1 ZSh0aGlzLGQucXVldWUpOmEhPT0hMSYmZi5fdW5tYXJrKHRoaXMpfTtyZXR1cm4g ZH0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHN3aW5nOmZ1 bmN0aW9uKGEpe3JldHVybi1NYXRoLmNvcyhhKk1hdGguUEkpLzIrLjV9fSx0aW1l cnM6W10sZng6ZnVuY3Rpb24oYSxiLGMpe3RoaXMub3B0aW9ucz1iLHRoaXMuZWxl bT1hLHRoaXMucHJvcD1jLGIub3JpZz1iLm9yaWd8fHt9fX0pLGYuZngucHJvdG90 eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5v cHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksKGYuZngu c3RlcFt0aGlzLnByb3BdfHxmLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpfSxjdXI6 ZnVuY3Rpb24oKXtpZih0aGlzLmVsZW1bdGhpcy5wcm9wXSE9bnVsbCYmKCF0aGlz LmVsZW0uc3R5bGV8fHRoaXMuZWxlbS5zdHlsZVt0aGlzLnByb3BdPT1udWxsKSly ZXR1cm4gdGhpcy5lbGVtW3RoaXMucHJvcF07dmFyIGEsYj1mLmNzcyh0aGlzLmVs ZW0sdGhpcy5wcm9wKTtyZXR1cm4gaXNOYU4oYT1wYXJzZUZsb2F0KGIpKT8hYnx8 Yj09PSJhdXRvIj8wOmI6YX0sY3VzdG9tOmZ1bmN0aW9uKGEsYyxkKXtmdW5jdGlv biBoKGEpe3JldHVybiBlLnN0ZXAoYSl9dmFyIGU9dGhpcyxnPWYuZng7dGhpcy5z dGFydFRpbWU9Y3F8fGNyKCksdGhpcy5lbmQ9Yyx0aGlzLm5vdz10aGlzLnN0YXJ0 PWEsdGhpcy5wb3M9dGhpcy5zdGF0ZT0wLHRoaXMudW5pdD1kfHx0aGlzLnVuaXR8 fChmLmNzc051bWJlclt0aGlzLnByb3BdPyIiOiJweCIpLGgucXVldWU9dGhpcy5v cHRpb25zLnF1ZXVlLGguZWxlbT10aGlzLmVsZW0saC5zYXZlU3RhdGU9ZnVuY3Rp b24oKXtmLl9kYXRhKGUuZWxlbSwiZnhzaG93IitlLnByb3ApPT09YiYmKGUub3B0 aW9ucy5oaWRlP2YuX2RhdGEoZS5lbGVtLCJmeHNob3ciK2UucHJvcCxlLnN0YXJ0 KTplLm9wdGlvbnMuc2hvdyYmZi5fZGF0YShlLmVsZW0sImZ4c2hvdyIrZS5wcm9w LGUuZW5kKSl9LGgoKSYmZi50aW1lcnMucHVzaChoKSYmIWNvJiYoY289c2V0SW50 ZXJ2YWwoZy50aWNrLGcuaW50ZXJ2YWwpKX0sc2hvdzpmdW5jdGlvbigpe3ZhciBh PWYuX2RhdGEodGhpcy5lbGVtLCJmeHNob3ciK3RoaXMucHJvcCk7dGhpcy5vcHRp b25zLm9yaWdbdGhpcy5wcm9wXT1hfHxmLnN0eWxlKHRoaXMuZWxlbSx0aGlzLnBy b3ApLHRoaXMub3B0aW9ucy5zaG93PSEwLGEhPT1iP3RoaXMuY3VzdG9tKHRoaXMu Y3VyKCksYSk6dGhpcy5jdXN0b20odGhpcy5wcm9wPT09IndpZHRoInx8dGhpcy5w cm9wPT09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpLGYodGhpcy5lbGVtKS5zaG93 KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3Bd PWYuX2RhdGEodGhpcy5lbGVtLCJmeHNob3ciK3RoaXMucHJvcCl8fGYuc3R5bGUo dGhpcy5lbGVtLHRoaXMucHJvcCksdGhpcy5vcHRpb25zLmhpZGU9ITAsdGhpcy5j dXN0b20odGhpcy5jdXIoKSwwKX0sc3RlcDpmdW5jdGlvbihhKXt2YXIgYixjLGQs ZT1jcXx8Y3IoKSxnPSEwLGg9dGhpcy5lbGVtLGk9dGhpcy5vcHRpb25zO2lmKGF8 fGU+PWkuZHVyYXRpb24rdGhpcy5zdGFydFRpbWUpe3RoaXMubm93PXRoaXMuZW5k LHRoaXMucG9zPXRoaXMuc3RhdGU9MSx0aGlzLnVwZGF0ZSgpLGkuYW5pbWF0ZWRQ cm9wZXJ0aWVzW3RoaXMucHJvcF09ITA7Zm9yKGIgaW4gaS5hbmltYXRlZFByb3Bl cnRpZXMpaS5hbmltYXRlZFByb3BlcnRpZXNbYl0hPT0hMCYmKGc9ITEpO2lmKGcp e2kub3ZlcmZsb3chPW51bGwmJiFmLnN1cHBvcnQuc2hyaW5rV3JhcEJsb2NrcyYm Zi5lYWNoKFsiIiwiWCIsIlkiXSxmdW5jdGlvbihhLGIpe2guc3R5bGVbIm92ZXJm bG93IitiXT1pLm92ZXJmbG93W2FdfSksaS5oaWRlJiZmKGgpLmhpZGUoKTtpZihp LmhpZGV8fGkuc2hvdylmb3IoYiBpbiBpLmFuaW1hdGVkUHJvcGVydGllcylmLnN0 eWxlKGgsYixpLm9yaWdbYl0pLGYucmVtb3ZlRGF0YShoLCJmeHNob3ciK2IsITAp LGYucmVtb3ZlRGF0YShoLCJ0b2dnbGUiK2IsITApO2Q9aS5jb21wbGV0ZSxkJiYo aS5jb21wbGV0ZT0hMSxkLmNhbGwoaCkpfXJldHVybiExfWkuZHVyYXRpb249PUlu ZmluaXR5P3RoaXMubm93PWU6KGM9ZS10aGlzLnN0YXJ0VGltZSx0aGlzLnN0YXRl PWMvaS5kdXJhdGlvbix0aGlzLnBvcz1mLmVhc2luZ1tpLmFuaW1hdGVkUHJvcGVy dGllc1t0aGlzLnByb3BdXSh0aGlzLnN0YXRlLGMsMCwxLGkuZHVyYXRpb24pLHRo aXMubm93PXRoaXMuc3RhcnQrKHRoaXMuZW5kLXRoaXMuc3RhcnQpKnRoaXMucG9z KSx0aGlzLnVwZGF0ZSgpO3JldHVybiEwfX0sZi5leHRlbmQoZi5meCx7dGljazpm dW5jdGlvbigpe3ZhciBhLGI9Zi50aW1lcnMsYz0wO2Zvcig7YzxiLmxlbmd0aDtj KyspYT1iW2NdLCFhKCkmJmJbY109PT1hJiZiLnNwbGljZShjLS0sMSk7Yi5sZW5n dGh8fGYuZnguc3RvcCgpfSxpbnRlcnZhbDoxMyxzdG9wOmZ1bmN0aW9uKCl7Y2xl YXJJbnRlcnZhbChjbyksY289bnVsbH0sc3BlZWRzOntzbG93OjYwMCxmYXN0OjIw MCxfZGVmYXVsdDo0MDB9LHN0ZXA6e29wYWNpdHk6ZnVuY3Rpb24oYSl7Zi5zdHls ZShhLmVsZW0sIm9wYWNpdHkiLGEubm93KX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7 YS5lbGVtLnN0eWxlJiZhLmVsZW0uc3R5bGVbYS5wcm9wXSE9bnVsbD9hLmVsZW0u c3R5bGVbYS5wcm9wXT1hLm5vdythLnVuaXQ6YS5lbGVtW2EucHJvcF09YS5ub3d9 fX0pLGYuZWFjaChjcC5jb25jYXQuYXBwbHkoW10sY3ApLGZ1bmN0aW9uKGEsYil7 Yi5pbmRleE9mKCJtYXJnaW4iKSYmKGYuZnguc3RlcFtiXT1mdW5jdGlvbihhKXtm LnN0eWxlKGEuZWxlbSxiLE1hdGgubWF4KDAsYS5ub3cpK2EudW5pdCl9KX0pLGYu ZXhwciYmZi5leHByLmZpbHRlcnMmJihmLmV4cHIuZmlsdGVycy5hbmltYXRlZD1m dW5jdGlvbihhKXtyZXR1cm4gZi5ncmVwKGYudGltZXJzLGZ1bmN0aW9uKGIpe3Jl dHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofSk7dmFyIGN2LGN3PS9edCg/OmFibGV8 ZHxoKSQvaSxjeD0vXig/OmJvZHl8aHRtbCkkL2k7ImdldEJvdW5kaW5nQ2xpZW50 UmVjdCJpbiBjLmRvY3VtZW50RWxlbWVudD9jdj1mdW5jdGlvbihhLGIsYyxkKXt0 cnl7ZD1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWNhdGNoKGUpe31pZighZHx8 IWYuY29udGFpbnMoYyxhKSlyZXR1cm4gZD97dG9wOmQudG9wLGxlZnQ6ZC5sZWZ0 fTp7dG9wOjAsbGVmdDowfTt2YXIgZz1iLmJvZHksaD1jeShiKSxpPWMuY2xpZW50 VG9wfHxnLmNsaWVudFRvcHx8MCxqPWMuY2xpZW50TGVmdHx8Zy5jbGllbnRMZWZ0 fHwwLGs9aC5wYWdlWU9mZnNldHx8Zi5zdXBwb3J0LmJveE1vZGVsJiZjLnNjcm9s bFRvcHx8Zy5zY3JvbGxUb3AsbD1oLnBhZ2VYT2Zmc2V0fHxmLnN1cHBvcnQuYm94 TW9kZWwmJmMuc2Nyb2xsTGVmdHx8Zy5zY3JvbGxMZWZ0LG09ZC50b3Aray1pLG49 ZC5sZWZ0K2wtajtyZXR1cm57dG9wOm0sbGVmdDpufX06Y3Y9ZnVuY3Rpb24oYSxi LGMpe3ZhciBkLGU9YS5vZmZzZXRQYXJlbnQsZz1hLGg9Yi5ib2R5LGk9Yi5kZWZh dWx0VmlldyxqPWk/aS5nZXRDb21wdXRlZFN0eWxlKGEsbnVsbCk6YS5jdXJyZW50 U3R5bGUsaz1hLm9mZnNldFRvcCxsPWEub2Zmc2V0TGVmdDt3aGlsZSgoYT1hLnBh cmVudE5vZGUpJiZhIT09aCYmYSE9PWMpe2lmKGYuc3VwcG9ydC5maXhlZFBvc2l0 aW9uJiZqLnBvc2l0aW9uPT09ImZpeGVkIilicmVhaztkPWk/aS5nZXRDb21wdXRl ZFN0eWxlKGEsbnVsbCk6YS5jdXJyZW50U3R5bGUsay09YS5zY3JvbGxUb3AsbC09 YS5zY3JvbGxMZWZ0LGE9PT1lJiYoays9YS5vZmZzZXRUb3AsbCs9YS5vZmZzZXRM ZWZ0LGYuc3VwcG9ydC5kb2VzTm90QWRkQm9yZGVyJiYoIWYuc3VwcG9ydC5kb2Vz QWRkQm9yZGVyRm9yVGFibGVBbmRDZWxsc3x8IWN3LnRlc3QoYS5ub2RlTmFtZSkp JiYoays9cGFyc2VGbG9hdChkLmJvcmRlclRvcFdpZHRoKXx8MCxsKz1wYXJzZUZs b2F0KGQuYm9yZGVyTGVmdFdpZHRoKXx8MCksZz1lLGU9YS5vZmZzZXRQYXJlbnQp LGYuc3VwcG9ydC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUm JmQub3ZlcmZsb3chPT0idmlzaWJsZSImJihrKz1wYXJzZUZsb2F0KGQuYm9yZGVy VG9wV2lkdGgpfHwwLGwrPXBhcnNlRmxvYXQoZC5ib3JkZXJMZWZ0V2lkdGgpfHww KSxqPWR9aWYoai5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fGoucG9zaXRpb249PT0i c3RhdGljIilrKz1oLm9mZnNldFRvcCxsKz1oLm9mZnNldExlZnQ7Zi5zdXBwb3J0 LmZpeGVkUG9zaXRpb24mJmoucG9zaXRpb249PT0iZml4ZWQiJiYoays9TWF0aC5t YXgoYy5zY3JvbGxUb3AsaC5zY3JvbGxUb3ApLGwrPU1hdGgubWF4KGMuc2Nyb2xs TGVmdCxoLnNjcm9sbExlZnQpKTtyZXR1cm57dG9wOmssbGVmdDpsfX0sZi5mbi5v ZmZzZXQ9ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gYT09 PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oYil7Zi5vZmZzZXQuc2V0T2Zmc2V0 KHRoaXMsYSxiKX0pO3ZhciBjPXRoaXNbMF0sZD1jJiZjLm93bmVyRG9jdW1lbnQ7 aWYoIWQpcmV0dXJuIG51bGw7aWYoYz09PWQuYm9keSlyZXR1cm4gZi5vZmZzZXQu Ym9keU9mZnNldChjKTtyZXR1cm4gY3YoYyxkLGQuZG9jdW1lbnRFbGVtZW50KX0s Zi5vZmZzZXQ9e2JvZHlPZmZzZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9YS5vZmZzZXRU b3AsYz1hLm9mZnNldExlZnQ7Zi5zdXBwb3J0LmRvZXNOb3RJbmNsdWRlTWFyZ2lu SW5Cb2R5T2Zmc2V0JiYoYis9cGFyc2VGbG9hdChmLmNzcyhhLCJtYXJnaW5Ub3Ai KSl8fDAsYys9cGFyc2VGbG9hdChmLmNzcyhhLCJtYXJnaW5MZWZ0IikpfHwwKTty ZXR1cm57dG9wOmIsbGVmdDpjfX0sc2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2 YXIgZD1mLmNzcyhhLCJwb3NpdGlvbiIpO2Q9PT0ic3RhdGljIiYmKGEuc3R5bGUu cG9zaXRpb249InJlbGF0aXZlIik7dmFyIGU9ZihhKSxnPWUub2Zmc2V0KCksaD1m LmNzcyhhLCJ0b3AiKSxpPWYuY3NzKGEsImxlZnQiKSxqPShkPT09ImFic29sdXRl Inx8ZD09PSJmaXhlZCIpJiZmLmluQXJyYXkoImF1dG8iLFtoLGldKT4tMSxrPXt9 LGw9e30sbSxuO2o/KGw9ZS5wb3NpdGlvbigpLG09bC50b3Asbj1sLmxlZnQpOiht PXBhcnNlRmxvYXQoaCl8fDAsbj1wYXJzZUZsb2F0KGkpfHwwKSxmLmlzRnVuY3Rp b24oYikmJihiPWIuY2FsbChhLGMsZykpLGIudG9wIT1udWxsJiYoay50b3A9Yi50 b3AtZy50b3ArbSksYi5sZWZ0IT1udWxsJiYoay5sZWZ0PWIubGVmdC1nLmxlZnQr biksInVzaW5nImluIGI/Yi51c2luZy5jYWxsKGEsayk6ZS5jc3Moayl9fSxmLmZu LmV4dGVuZCh7cG9zaXRpb246ZnVuY3Rpb24oKXtpZighdGhpc1swXSlyZXR1cm4g bnVsbDt2YXIgYT10aGlzWzBdLGI9dGhpcy5vZmZzZXRQYXJlbnQoKSxjPXRoaXMu b2Zmc2V0KCksZD1jeC50ZXN0KGJbMF0ubm9kZU5hbWUpP3t0b3A6MCxsZWZ0OjB9 OmIub2Zmc2V0KCk7Yy50b3AtPXBhcnNlRmxvYXQoZi5jc3MoYSwibWFyZ2luVG9w IikpfHwwLGMubGVmdC09cGFyc2VGbG9hdChmLmNzcyhhLCJtYXJnaW5MZWZ0Iikp fHwwLGQudG9wKz1wYXJzZUZsb2F0KGYuY3NzKGJbMF0sImJvcmRlclRvcFdpZHRo IikpfHwwLGQubGVmdCs9cGFyc2VGbG9hdChmLmNzcyhiWzBdLCJib3JkZXJMZWZ0 V2lkdGgiKSl8fDA7cmV0dXJue3RvcDpjLnRvcC1kLnRvcCxsZWZ0OmMubGVmdC1k LmxlZnR9fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAo ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudHx8Yy5ib2R5O3doaWxl KGEmJiFjeC50ZXN0KGEubm9kZU5hbWUpJiZmLmNzcyhhLCJwb3NpdGlvbiIpPT09 InN0YXRpYyIpYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gYX0pfX0pLGYuZWFjaCh7 c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQi fSxmdW5jdGlvbihhLGMpe3ZhciBkPS9ZLy50ZXN0KGMpO2YuZm5bYV09ZnVuY3Rp b24oZSl7cmV0dXJuIGYuYWNjZXNzKHRoaXMsZnVuY3Rpb24oYSxlLGcpe3ZhciBo PWN5KGEpO2lmKGc9PT1iKXJldHVybiBoP2MgaW4gaD9oW2NdOmYuc3VwcG9ydC5i b3hNb2RlbCYmaC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbZV18fGguZG9jdW1l bnQuYm9keVtlXTphW2VdO2g/aC5zY3JvbGxUbyhkP2YoaCkuc2Nyb2xsTGVmdCgp OmcsZD9nOmYoaCkuc2Nyb2xsVG9wKCkpOmFbZV09Z30sYSxlLGFyZ3VtZW50cy5s ZW5ndGgsbnVsbCl9fSksZi5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6Indp ZHRoIn0sZnVuY3Rpb24oYSxjKXt2YXIgZD0iY2xpZW50IithLGU9InNjcm9sbCIr YSxnPSJvZmZzZXQiK2E7Zi5mblsiaW5uZXIiK2FdPWZ1bmN0aW9uKCl7dmFyIGE9 dGhpc1swXTtyZXR1cm4gYT9hLnN0eWxlP3BhcnNlRmxvYXQoZi5jc3MoYSxjLCJw YWRkaW5nIikpOnRoaXNbY10oKTpudWxsfSxmLmZuWyJvdXRlciIrYV09ZnVuY3Rp b24oYSl7dmFyIGI9dGhpc1swXTtyZXR1cm4gYj9iLnN0eWxlP3BhcnNlRmxvYXQo Zi5jc3MoYixjLGE/Im1hcmdpbiI6ImJvcmRlciIpKTp0aGlzW2NdKCk6bnVsbH0s Zi5mbltjXT1mdW5jdGlvbihhKXtyZXR1cm4gZi5hY2Nlc3ModGhpcyxmdW5jdGlv bihhLGMsaCl7dmFyIGksaixrLGw7aWYoZi5pc1dpbmRvdyhhKSl7aT1hLmRvY3Vt ZW50LGo9aS5kb2N1bWVudEVsZW1lbnRbZF07cmV0dXJuIGYuc3VwcG9ydC5ib3hN b2RlbCYmanx8aS5ib2R5JiZpLmJvZHlbZF18fGp9aWYoYS5ub2RlVHlwZT09PTkp e2k9YS5kb2N1bWVudEVsZW1lbnQ7aWYoaVtkXT49aVtlXSlyZXR1cm4gaVtkXTty ZXR1cm4gTWF0aC5tYXgoYS5ib2R5W2VdLGlbZV0sYS5ib2R5W2ddLGlbZ10pfWlm KGg9PT1iKXtrPWYuY3NzKGEsYyksbD1wYXJzZUZsb2F0KGspO3JldHVybiBmLmlz TnVtZXJpYyhsKT9sOmt9ZihhKS5jc3MoYyxoKX0sYyxhLGFyZ3VtZW50cy5sZW5n dGgsbnVsbCl9fSksYS5qUXVlcnk9YS4kPWYsdHlwZW9mIGRlZmluZT09ImZ1bmN0 aW9uIiYmZGVmaW5lLmFtZCYmZGVmaW5lLmFtZC5qUXVlcnkmJmRlZmluZSgianF1 ZXJ5IixbXSxmdW5jdGlvbigpe3JldHVybiBmfSl9KSh3aW5kb3cpOw== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=default.js Content-Type: application/x-javascript; name=default.js Content-Location: http://support.microsoft.com/common/script/gsfx/default.js?80 Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gc3JjRWwobil7cmV0dXJuIG4uc3JjRWxlbWVudD9uLnNyY0VsZW1l bnQ6bi50YXJnZXQ/bi50YXJnZXQ6bn1mdW5jdGlvbiBwYXJzZUJvb2xlYW4obil7 c3dpdGNoKG4udG9Mb3dlckNhc2UoKSl7Y2FzZSJ0cnVlIjpjYXNlInllcyI6Y2Fz ZSIxIjpyZXR1cm4hMDtjYXNlImZhbHNlIjpjYXNlIm5vIjpjYXNlIjAiOmNhc2Ug bnVsbDpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiBCb29sZWFuKG4pfX1mdW5jdGlv biBPdXRwdXRFbmNvZGVyX0VuY29kZVVybChuKXt2YXIgdCxpLHI7aWYodHlwZW9m IG49PSJ1bmRlZmluZWQiKXJldHVybiIiO2ZvcihuPW4udG9TdHJpbmcoKSxpPSIi LHI9MDtyPG4ubGVuZ3RoO3IrKyl0PW4uY2hhckNvZGVBdChyKSxpPXQ+OTYmJnQ8 MTIzfHx0PjY0JiZ0PDkxfHx0PjQ3JiZ0PDU4fHx0PT00Nnx8dD09NDV8fHQ9PTk1 P2krU3RyaW5nLmZyb21DaGFyQ29kZSh0KTp0PjEyNz9pKyIldSIrT3V0cHV0RW5j b2Rlcl9Ud29CeXRlSGV4KHQpOmkrIiUiK091dHB1dEVuY29kZXJfU2luZ2xlQnl0 ZUhleCh0KTtyZXR1cm4gaX1mdW5jdGlvbiBPdXRwdXRFbmNvZGVyX1NpbmdsZUJ5 dGVIZXgobil7Zm9yKHZhciB0PW4udG9TdHJpbmcoMTYpLGk9dC5sZW5ndGg7aTwy O2krKyl0PSIwIit0O3JldHVybiB0fWZ1bmN0aW9uIE91dHB1dEVuY29kZXJfVHdv Qnl0ZUhleChuKXtmb3IodmFyIHQ9bi50b1N0cmluZygxNiksaT10Lmxlbmd0aDtp PDQ7aSsrKXQ9IjAiK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gTVNfUXVlcnlTdHJpbmco KXt2YXIgaT1kb2N1bWVudC5sb2NhdGlvbi5zZWFyY2gudG9TdHJpbmcoKSxmLHIs bix0LHU7Zm9yKGkubGVuZ3RoPjAmJihpPWkuc3Vic3RyaW5nKDEpKSxmPWkuc3Bs aXQoIiYiKSxyPTA7cjxmLmxlbmd0aDtyKyspe249ZltyXS5zcGxpdCgiPSIpO2lm KG4ubGVuZ3RoIT0yKWNvbnRpbnVlO2lmKG5bMV09PSIiKWNvbnRpbnVlO3RyeXt0 PWRlY29kZVVSSUNvbXBvbmVudChuWzBdKS50b0xvd2VyQ2FzZSgpLHU9ZGVjb2Rl VVJJQ29tcG9uZW50KG5bMV0pfWNhdGNoKGUpe3Q9dW5lc2NhcGUoblswXSkudG9M b3dlckNhc2UoKSx1PXVuZXNjYXBlKG5bMV0pfXRoaXNbdF0/dGhpc1t0XSs9Iiwi K3U6dGhpc1t0XT11fX1mdW5jdGlvbiBHZXRNb2RpZmllZFF1ZXJ5U3RyaW5nKG4s dCl7dmFyIHI9e30sdSxpO2ZvcihpIGluIHF1ZXJ5U3RyaW5nKXJbaV09cXVlcnlT dHJpbmdbaV07cltuXT10LHU9IiI7Zm9yKGkgaW4gcil1Kz1PdXRwdXRFbmNvZGVy X0VuY29kZVVybChpKSsiPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwocltpXSkr IiYiO3JldHVybiI/Iit1fWZ1bmN0aW9uIFVuaWNvZGVGaXh1cChuKXtmb3IodmFy IHI9bmV3IFN0cmluZyxpPSIiLHQ9LTEsdT1uLmxlbmd0aCxyPSIiLHQ9MDt0PHU7 dCsrKWk9bi5zdWJzdHJpbmcodCx0KzEpLGk9PSIlIj8ocis9aSx0KyssaT1uLnN1 YnN0cmluZyh0LHQrMSksaSE9InUiJiZwYXJzZUludCgiMHgiK24uc3Vic3RyaW5n KHQsdCsyKSk+MTI4JiYocis9InUwMCIpKTppPT0iKyImJihpPSIlMkIiKSxyKz1p O3JldHVybiByfWZ1bmN0aW9uIEZvcmVpZ25MaW5rX0hvb2t1cChuKXt2YXIgdCxy LHUsZixpO2Zvcih0eXBlb2Ygbj09InVuZGVmaW5lZCImJihuPSJ0cnVlIiksdD1u dWxsLGk9MDtpPCQoImEiKS5sZW5ndGg7aSsrKXQ9JCgiYSIpLmdldChpKSwodC5w cm90b2NvbD09Imh0dHA6Inx8dC5wcm90b2NvbD09Imh0dHBzOiIpJiYoIW4mJih0 LmhyZWYuaW5kZXhPZihkb2N1bWVudC5kb21haW4pPi0xfHx0LmhyZWYuc3Vic3Ry aW5nKDAsMSk9PSIvIikmJnQuaHJlZi50b0xvd2VyQ2FzZSgpLmluZGV4T2YoImZy PTEiKTwwJiYocj10LmhyZWYuc3BsaXQoIiMiKSx1PSIiLHIubGVuZ3RoPjEmJih1 PSIjIityWzFdKSx0LmhyZWY9dC5ocmVmLmluZGV4T2YoIj8iKT4tMT9yWzBdKyIm RlI9MSIrdTpyWzBdKyI/RlI9MSIrdSksZ19yZVN1cHBvcnRlZEhvc3RuYW1lcy5l eGVjKHQuaG9zdG5hbWUpJiYobnx8dC5ocmVmLmluZGV4T2YoZG9jdW1lbnQuZG9t YWluKT49MCl8fCh0LnRhcmdldD0iX2JsYW5rIikpO2lmKCFuKWlmKGRvY3VtZW50 LmdldEVsZW1lbnRzQnlOYW1lKWZvcihmPW51bGwsaT0wO2k8JCgiZm9ybSIpLmxl bmd0aDtpKyspZUN1cnJlbnRGb3JtPSQoImZvcm0iKS5nZXQoaSksKGVDdXJyZW50 Rm9ybS5hY3Rpb24uaW5kZXhPZihkb2N1bWVudC5kb21haW4pPi0xfHxlQ3VycmVu dEZvcm0uYWN0aW9uLnN1YnN0cmluZygwLDEpPT0iLyIpJiYoZUN1cnJlbnRGb3Jt LkZSfHwkKGVDdXJyZW50Rm9ybSkuYXBwZW5kKCc8aW5wdXQgaWQ9IkZSIiBuYW1l PSJGUiIgdmFsdWU9IjEiIHR5cGU9ImhpZGRlbiIgLz4nKSl9ZnVuY3Rpb24gTVNf UGFnZVRvb2xzRGF0YSgpe2Z1bmN0aW9uIG4oKXtmb3IodmFyIG49MDs7KXtpZigh ZXZhbCgid2luZG93LlNhdmVUb0Zhdm9yaXRlc0RhdGEiK24pKXJldHVybiJTYXZl VG9GYXZvcml0ZXNEYXRhIituO24rK319dGhpcy5jbG9zZU1zZz0iQ2xvc2UiLHRo aXMubm9Db29raWVVcmw9Ii9ncC9ub2Nvb2tpZXMvIix0aGlzLmlkPW4oKSx3aW5k b3dbdGhpcy5pZF09dGhpcyx0aGlzLlByaW50UGFnZT1mdW5jdGlvbigpe1N0YXRz RG90TmV0LmV2ZW50Q29sbGVjdGlvbklkPVNldExvZ0NvbGxlY3Rpb25CaXQoU3Rh dHNEb3ROZXQuZXZlbnRDb2xsZWN0aW9uSWQsMik7dHJ5e3dpbmRvdy5wcmludCgp fWNhdGNoKG4pe31yZXR1cm4hMX0sdGhpcy5FbWFpbFBhZ2U9ZnVuY3Rpb24oKXty ZXR1cm4gU3RhdHNEb3ROZXQuZXZlbnRDb2xsZWN0aW9uSWQ9U2V0TG9nQ29sbGVj dGlvbkJpdChTdGF0c0RvdE5ldC5ldmVudENvbGxlY3Rpb25JZCwzKSwhMH19ZnVu Y3Rpb24gTVNfU3RhdHNEb3ROZXQoKXt2YXIgdCxuO3RoaXMuc3RhcnREYXRlPW5l dyBEYXRlLHRoaXMuZGlzYWJsZWQ9ITAsdGhpcy5ob3N0PSIvTFRTLyIsdGhpcy5z Y3JvbGxVc2VkPSExLHRoaXMucmVDbGVhbklkPS9bXjAtOV0qL2ksdGhpcy5ldmVu dENvbGxlY3Rpb25JZD0wLHRoaXMuT3B0aW9uQ29sbGVjdGlvbklkPTAsdGhpcy5D b250ZW50UHJvcGVydGllcz0iIix0aGlzLnJlZlVybD0iIix0aGlzLmNvbnRlbnRU eXBlPSIiLHRoaXMuY29udGVudExuPSIiLHRoaXMuY29udGVudElkPSIiLHRoaXMu Q29udGVudEN1bHR1cmU9IiIsdGhpcy5leGl0Q29udGFpbmVySWQ9IiIsdGhpcy5l eGl0TGlua0lkPSIiLHRoaXMucGxhdGZvcm09IiIsdGhpcy5hY3RpdmVEd2VsbFRp bWU9MCx0aGlzLmFjdGl2ZVN0YXJ0VGltZT10aGlzLnN0YXJ0RGF0ZSx0aGlzLmxp Z2h0Ym94Q2xvc2VUaW1lPW51bGwsdGhpcy5zdXBwcmVzc0JsdXI9ITEsdGhpcy5h Y3RpdmVFbGVtZW50PW51bGwsdGhpcy50aW1lb3V0SUQ9LTEsdGhpcy5pc0lFPSEx LHRoaXMubG9nRXh0ZXJuYWxVcmxzPSExLHQ9ZmV0Y2hjb29raWV2YWwoImV4aXRp bmZvIiksdCYmKG49dC5zcGxpdCgifCIpLG4ubGVuZ3RoPT02JiYodGhpcy5yY3R5 cGU9blswXSx0aGlzLnJjbGNpZD1uWzFdLHRoaXMucmNpZD1uWzJdLHRoaXMucmNj dWx0dXJlPW5bM10sdGhpcy5yZXhjaWQ9bls0XSx0aGlzLnJleGxpZD1uWzVdKSks ZG9jdW1lbnQucmVmZXJyZXImJmRvY3VtZW50LnJlZmVycmVyIT0iIiYmKHRoaXMu cmVmVXJsPWRvY3VtZW50LnJlZmVycmVyLnRvU3RyaW5nKCkpLHRoaXMuZXZlbnRT ZXFObz0wLHRoaXMudGFyZ2V0VXJsPSIiLHRoaXMuc2Vzc2lvbklkPSIiLHRoaXMu b25VbmxvYWRUaW1lb3V0PW51bGwsdGhpcy5sdHNJZGxlVGltZW91dD1udWxsLHRo aXMuZXh0ZXJuYWxVcmxzPVtdLHRoaXMuQ2xlYW5JZD1mdW5jdGlvbihuKXt0cnl7 cmV0dXJuIG4ucmVwbGFjZSh0aGlzLnJlQ2xlYW5JZCwiIil9Y2F0Y2godCl7fXJl dHVybiIifSx0aGlzLkFkZEFjdGl2ZVRpbWU9ZnVuY3Rpb24obil7aWYoU3RhdHNE b3ROZXQuYWN0aXZlU3RhcnRUaW1lPT1udWxsfHxhcmd1bWVudHMubGVuZ3RoPT0x JiZTdGF0c0RvdE5ldC5hY3RpdmVFbGVtZW50IT1kb2N1bWVudC5hY3RpdmVFbGVt ZW50JiZTdGF0c0RvdE5ldC5pc0lFKXtTdGF0c0RvdE5ldC5hY3RpdmVFbGVtZW50 PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJufWlmKFN0YXRzRG90TmV0LnN1 cHByZXNzQmx1cilyZXR1cm47U3RhdHNEb3ROZXQuYWN0aXZlRHdlbGxUaW1lKz1u LmdldFRpbWUoKS1TdGF0c0RvdE5ldC5hY3RpdmVTdGFydFRpbWUuZ2V0VGltZSgp LFN0YXRzRG90TmV0LmxpZ2h0Ym94Q2xvc2VUaW1lIT1udWxsJiYoU3RhdHNEb3RO ZXQuZmxleFZhbHVlNis9bi5nZXRUaW1lKCktU3RhdHNEb3ROZXQuYWN0aXZlU3Rh cnRUaW1lLmdldFRpbWUoKSksU3RhdHNEb3ROZXQuYWN0aXZlU3RhcnRUaW1lPW51 bGx9LHRoaXMuQ2hlY2tBY3Rpdml0eT1mdW5jdGlvbigpe1N0YXRzRG90TmV0LmFj dGl2ZVN0YXJ0VGltZSE9bnVsbCYmU3RhdHNEb3ROZXQuQWRkQWN0aXZlVGltZShu ZXcgRGF0ZSl9LHRoaXMuUmVzZXREd2VsbFRpbWU9ZnVuY3Rpb24oKXtTdGF0c0Rv dE5ldC50aW1lb3V0SUQhPS0xJiZjbGVhclRpbWVvdXQoU3RhdHNEb3ROZXQudGlt ZW91dElEKSxTdGF0c0RvdE5ldC50aW1lb3V0SUQ9c2V0VGltZW91dChTdGF0c0Rv dE5ldC5DaGVja0FjdGl2aXR5LFN0YXRzRG90TmV0Lmx0c0lkbGVUaW1lb3V0KSxT dGF0c0RvdE5ldC5hY3RpdmVTdGFydFRpbWU9PW51bGwmJihTdGF0c0RvdE5ldC5h Y3RpdmVTdGFydFRpbWU9bmV3IERhdGUpfSx0aGlzLkZvY3VzSGFuZGxlcj1mdW5j dGlvbigpe1N0YXRzRG90TmV0LlJlc2V0RHdlbGxUaW1lKCksU3RhdHNEb3ROZXQu YWN0aXZlU3RhcnRUaW1lIT1udWxsfHwoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09 bnVsbHx8U3RhdHNEb3ROZXQuYWN0aXZlRWxlbWVudCE9ZG9jdW1lbnQuYWN0aXZl RWxlbWVudCkmJlN0YXRzRG90TmV0LmlzSUV8fChTdGF0c0RvdE5ldC5hY3RpdmVT dGFydFRpbWU9bmV3IERhdGUpfSx0aGlzLkhvb2tMb2FkRXZlbnRzPWZ1bmN0aW9u KCl7U3RhdHNEb3ROZXQubG9nRXh0ZXJuYWxVcmxzPXRoaXMuc3NJZCYmdGhpcy5z c0lkPT0iMSIsU3RhdHNEb3ROZXQuaXNJRT1uYXZpZ2F0b3IuYXBwTmFtZT09Ik1p Y3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciIsU3RhdHNEb3ROZXQuYWN0aXZlRWxl bWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LFN0YXRzRG90TmV0LmlzSUU/KGRv Y3VtZW50Lm9uZm9jdXNpbj1TdGF0c0RvdE5ldC5Gb2N1c0hhbmRsZXIsZG9jdW1l bnQub25mb2N1c291dD1mdW5jdGlvbigpe1N0YXRzRG90TmV0LkFkZEFjdGl2ZVRp bWUobmV3IERhdGUpfSk6KCQod2luZG93KS5mb2N1cyhTdGF0c0RvdE5ldC5Gb2N1 c0hhbmRsZXIpLCQod2luZG93KS5ibHVyKGZ1bmN0aW9uKCl7U3RhdHNEb3ROZXQu QWRkQWN0aXZlVGltZShuZXcgRGF0ZSl9KSksU3RhdHNEb3ROZXQudGltZW91dElE PXNldFRpbWVvdXQoU3RhdHNEb3ROZXQuQ2hlY2tBY3Rpdml0eSxTdGF0c0RvdE5l dC5sdHNJZGxlVGltZW91dCksJChkb2N1bWVudC5ib2R5KS5tb3VzZW1vdmUoU3Rh dHNEb3ROZXQuUmVzZXREd2VsbFRpbWUpLCQoZG9jdW1lbnQuYm9keSkuY2xpY2so U3RhdHNEb3ROZXQuUmVzZXREd2VsbFRpbWUpLCQoZG9jdW1lbnQuYm9keSkua2V5 cHJlc3MoU3RhdHNEb3ROZXQuUmVzZXREd2VsbFRpbWUpLCQod2luZG93KS5zY3Jv bGwoU3RhdHNEb3ROZXQuUmVzZXREd2VsbFRpbWUpfSx0aGlzLkxvZ1BhZ2VPbkxv YWQ9ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZUNvbGxUaWVyUGFyYW1zJiZ0aGlzLkhv b2tMb2FkRXZlbnRzKCksJCgiI2Fjd2tibGluayIpLmdldCgwKSYmKFN0YXRzRG90 TmV0Lk9wdGlvbkNvbGxlY3Rpb25JZD1TZXRMb2dDb2xsZWN0aW9uQml0KFN0YXRz RG90TmV0Lk9wdGlvbkNvbGxlY3Rpb25JZCwzMikpLHRoaXMuZXZlbnRTZXFObz09 PTAmJih0aGlzLmV2ZW50U2VxTm89dGhpcy5HZXRDb29raWVJbmNyZW1lbnQoKSks dHlwZW9mIHdpbmRvdy5pbm5lcldpZHRoPT0ibnVtYmVyIj8oU3RhdHNEb3ROZXQu YnJvd3NlcldpZHRoPXdpbmRvdy5pbm5lcldpZHRoLFN0YXRzRG90TmV0LmJyb3dz ZXJIZWlnaHQ9d2luZG93LmlubmVySGVpZ2h0KTpkb2N1bWVudC5kb2N1bWVudEVs ZW1lbnQmJihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGh8fGRv Y3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpPyhTdGF0c0RvdE5l dC5icm93c2VyV2lkdGg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdp ZHRoLFN0YXRzRG90TmV0LmJyb3dzZXJIZWlnaHQ9ZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LmNsaWVudEhlaWdodCk6ZG9jdW1lbnQuYm9keSYmKGRvY3VtZW50LmJv ZHkuY2xpZW50V2lkdGh8fGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0KSYmKFN0 YXRzRG90TmV0LmJyb3dzZXJXaWR0aD1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRo LFN0YXRzRG90TmV0LmJyb3dzZXJIZWlnaHQ9ZG9jdW1lbnQuYm9keS5jbGllbnRI ZWlnaHQpO3ZhciBuPXRoaXMuaG9zdCsiPyI7dGhpcy5zZXNzaW9uSWQhPSIiJiYo bis9IlNlc3Npb25JRD0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuc2Vz c2lvbklkKSsiJiIpLG4rPSJTU0lEPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwo dGhpcy5zc0lkKSsiJlNpdGVMQ0lEPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwo dGhpcy5zaXRlTGNJZCkrIiZFdmVudENvbGxlY3Rpb25JRD0iK091dHB1dEVuY29k ZXJfRW5jb2RlVXJsKHRoaXMuZXZlbnRDb2xsZWN0aW9uSWQpKyImVVJMPSIrT3V0 cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy51cmwpKyImQ29udGVudFR5cGU9IitP dXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLmNvbnRlbnRUeXBlKSsiJkNvbnRl bnRMQ0lEPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5jb250ZW50TG4p KyImQ29udGVudElEPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5jb250 ZW50SWQpKyImcmN0eXBlPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5y Y3R5cGUpKyImcmNsY2lkPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5y Y2xjaWQpKyImcmNpZD0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMucmNp ZCkrIiZyY2N1bHR1cmU9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLnJj Y3VsdHVyZSkrIiZyZXhjaWQ9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlz LnJleGNpZCkrIiZyZXhsaWQ9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlz LnJleGxpZCkrIiZCcm93c2VyV2lkdGg9Iit0aGlzLmJyb3dzZXJXaWR0aCsiJkJy b3dzZXJIZWlnaHQ9Iit0aGlzLmJyb3dzZXJIZWlnaHQrIiZCcmFuZElEPSIrT3V0 cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5zaXRlQnJhbmRJZCkrIiZSZWZVUkw9 IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLnJlZlVybCkrIiZPcHRpb25D b2xsZWN0aW9uSWQ9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLk9wdGlv bkNvbGxlY3Rpb25JZCkrIiZFdmVudFNlcU5vPSIrT3V0cHV0RW5jb2Rlcl9FbmNv ZGVVcmwodGhpcy5ldmVudFNlcU5vKSsiJlNTdmVyc2lvbj0iK091dHB1dEVuY29k ZXJfRW5jb2RlVXJsKHRoaXMuU3NWZXJzaW9uKSsiJlNpdGVDdWx0dXJlPSIrT3V0 cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5TaXRlQ3VsdHVyZSkrIiZQbGF0Zm9y bT0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMucGxhdGZvcm0pKyImQ29u dGVudEN1bHR1cmU9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLkNvbnRl bnRDdWx0dXJlKSsiJlBhc3Nwb3J0U3RhdHVzPSIrT3V0cHV0RW5jb2Rlcl9FbmNv ZGVVcmwodGhpcy5QYXNzcG9ydFN0YXR1cykrIiZJbjQwNFVybD0iK091dHB1dEVu Y29kZXJfRW5jb2RlVXJsKHRoaXMuSW40MDRVcmwpKyImQ29udGVudFByb3BlcnRp ZXM9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLkNvbnRlbnRQcm9wZXJ0 aWVzKSsiJkZsZXhJRD0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuZmxl eElkKSsiJkZsZXhWYWx1ZTE9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlz LmZsZXhWYWx1ZTEpKyImRmxleFZhbHVlMj0iK091dHB1dEVuY29kZXJfRW5jb2Rl VXJsKHRoaXMuZmxleFZhbHVlMikrIiZGbGV4VmFsdWUzPSIrT3V0cHV0RW5jb2Rl cl9FbmNvZGVVcmwodGhpcy5mbGV4VmFsdWUzKSsiJkZsZXhWYWx1ZTQ9IitPdXRw dXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLmZsZXhWYWx1ZTQpKyImRmxleFZhbHVl NT0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuZmxleFZhbHVlNSksdGhp cy5lbmFibGVDb2xsVGllclBhcmFtcyYmKG4rPSImRmxleFZhbHVlNj0iK091dHB1 dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuZmxleFZhbHVlNikrIiZGbGV4VmFsdWU3 PSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5mbGV4VmFsdWU3KSsiJkZs ZXhWYWx1ZTg9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLmZsZXhWYWx1 ZTgpKyImRmxleFZhbHVlOT0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMu ZmxleFZhbHVlOSkrIiZGbGV4VmFsdWUxMD0iK091dHB1dEVuY29kZXJfRW5jb2Rl VXJsKHRoaXMuZmxleFZhbHVlMTApKSx0eXBlb2YgdmFyV2VkY3NFbmFibGUhPSJ1 bmRlZmluZWQiJiZ2YXJXZWRjc0VuYWJsZXx8Z2VuZXJhdGVXZWRjc0RhdGEoKSwk KCIjU3RhdHNEb3ROZXRJbWciKS5nZXQoMCkuc3JjPW59LHRoaXMuTG9nUGFnZU9u VW5Mb2FkPWZ1bmN0aW9uKCl7dmFyIG4sdCxpLHIsdSxmO2lmKGZldGNoY29va2ll dmFsKCJHc2Z4U3RhdHNMb2ciKSE9InRydWUiKXJldHVybjt0aGlzLmVuZERhdGU9 bmV3IERhdGUsdGhpcy5kd2VsbFRpbWU9dGhpcy5lbmREYXRlLmdldFRpbWUoKS10 aGlzLnN0YXJ0RGF0ZS5nZXRUaW1lKCksdGhpcy5zY3JvbGxVc2VkJiYoU3RhdHNE b3ROZXQuZXZlbnRDb2xsZWN0aW9uSWQ9U2V0TG9nQ29sbGVjdGlvbkJpdChTdGF0 c0RvdE5ldC5ldmVudENvbGxlY3Rpb25JZCwyNykpLHRoaXMuZXZlbnRTZXFObz09 PTAmJih0aGlzLmV2ZW50U2VxTm89dGhpcy5HZXRDb29raWVJbmNyZW1lbnQoKSks c3JjaF9zZXRjb29raWV2YWwoImV4aXRpbmZvIix0aGlzLmNvbnRlbnRUeXBlKyJ8 Iit0aGlzLmNvbnRlbnRMbisifCIrdGhpcy5jb250ZW50SWQrInwiK3RoaXMuQ29u dGVudEN1bHR1cmUrInwiK3RoaXMuZXhpdENvbnRhaW5lcklkKyJ8Iit0aGlzLmV4 aXRMaW5rSWQpLHRoaXMuZW5hYmxlQ29sbFRpZXJQYXJhbXMmJnRoaXMubG9nRXh0 ZXJuYWxVcmxzJiYoKCF0aGlzLmZsZXhJZHx8dGhpcy5mbGV4SWQubGVuZ3RoPT0w KSYmdGhpcy5leHRlcm5hbFVybHMubGVuZ3RoPjAmJih0aGlzLmZsZXhJZD0iNCIp LHRoaXMuZmxleFZhbHVlMTA9dGhpcy5leHRlcm5hbFVybHMuam9pbigifCIpKSxu PXRoaXMuaG9zdCsiPyIsdGhpcy5zZXNzaW9uSWQhPSIiJiYobis9IlNlc3Npb25J RD0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuc2Vzc2lvbklkKSsiJiIp LG4rPSJTU0lEPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5zc0lkKSsi JlNpdGVMQ0lEPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5zaXRlTGNJ ZCkrIiZFdmVudENvbGxlY3Rpb25JRD0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJs KHRoaXMuZXZlbnRDb2xsZWN0aW9uSWQpKyImT3B0aW9uQ29sbGVjdGlvbklkPSIr T3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5PcHRpb25Db2xsZWN0aW9uSWQp KyImU1N2ZXJzaW9uPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5Tc1Zl cnNpb24pKyImQ29udGVudFR5cGU9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0 aGlzLmNvbnRlbnRUeXBlKSsiJkNvbnRlbnRMQ0lEPSIrT3V0cHV0RW5jb2Rlcl9F bmNvZGVVcmwodGhpcy5jb250ZW50TG4pKyImQ29udGVudElEPSIrT3V0cHV0RW5j b2Rlcl9FbmNvZGVVcmwodGhpcy5jb250ZW50SWQpKyImRXhpdExpbmtJRD0iK3Ro aXMuQ2xlYW5JZCh0aGlzLmV4aXRMaW5rSWQpKyImRXhpdENvbnRhaW5lcklEPSIr dGhpcy5DbGVhbklkKHRoaXMuZXhpdENvbnRhaW5lcklkKSsiJkR3ZWxsVGltZT0i K091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuZHdlbGxUaW1lKSsiJkJyYW5k SUQ9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLnNpdGVCcmFuZElkKSsi JlNlYXJjaENhdGVnb3J5SUQ9Iit0aGlzLkNsZWFuSWQodGhpcy5zZWFyY2hDYXRl Z29yeUlkKyIiKSsiJlNlYXJjaENhdGVnb3J5TGlua1Bvcz0iK091dHB1dEVuY29k ZXJfRW5jb2RlVXJsKHRoaXMuc2VhcmNoQ2F0ZWdvcnlMaW5rUG9zKSsiJlNlYXJj aFBhZ2VMaW5rUG9zPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5zZWFy Y2hQYWdlTGlua1BvcykrIiZUYXJnZXRVUkw9IitPdXRwdXRFbmNvZGVyX0VuY29k ZVVybCh0aGlzLnRhcmdldFVybCkrIiZFdmVudFNlcU5vPSIrT3V0cHV0RW5jb2Rl cl9FbmNvZGVVcmwodGhpcy5ldmVudFNlcU5vKSsiJlNpdGVDdWx0dXJlPSIrT3V0 cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5TaXRlQ3VsdHVyZSkrIiZDb250ZW50 Q3VsdHVyZT0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuQ29udGVudEN1 bHR1cmUpKyImUGxhdGZvcm09IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlz LnBsYXRmb3JtKSsiJnVubG9hZD10cnVlJkZsZXhJRD0iK091dHB1dEVuY29kZXJf RW5jb2RlVXJsKHRoaXMuZmxleElkKSsiJkZsZXhWYWx1ZTE9IitPdXRwdXRFbmNv ZGVyX0VuY29kZVVybCh0aGlzLmZsZXhWYWx1ZTEpKyImRmxleFZhbHVlMj0iK091 dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuZmxleFZhbHVlMikrIiZGbGV4VmFs dWUzPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5mbGV4VmFsdWUzKSsi JkZsZXhWYWx1ZTQ9IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLmZsZXhW YWx1ZTQpKyImRmxleFZhbHVlNT0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRo aXMuZmxleFZhbHVlNSksdGhpcy5lbmFibGVDb2xsVGllclBhcmFtcyYmKHQ9ZG9j dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxiIiksdCE9bnVsbCYmdC5zdHlsZS5kaXNw bGF5IT0ibm9uZSI/dGhpcy5BZGRBY3RpdmVUaW1lKHRoaXMuZW5kRGF0ZSk6dGhp cy5BZGRBY3RpdmVUaW1lKHRoaXMuZW5kRGF0ZSwhMCksdGhpcy5zdXBwcmVzc0Js dXI9ITAsbis9IiZBY3RpdmVEd2VsbFRpbWU9IitPdXRwdXRFbmNvZGVyX0VuY29k ZVVybCh0aGlzLmFjdGl2ZUR3ZWxsVGltZSkrIiZGbGV4VmFsdWU2PSIrT3V0cHV0 RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5mbGV4VmFsdWU2KSsiJkZsZXhWYWx1ZTc9 IitPdXRwdXRFbmNvZGVyX0VuY29kZVVybCh0aGlzLmZsZXhWYWx1ZTcpKyImRmxl eFZhbHVlOD0iK091dHB1dEVuY29kZXJfRW5jb2RlVXJsKHRoaXMuZmxleFZhbHVl OCkrIiZGbGV4VmFsdWU5PSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodGhpcy5m bGV4VmFsdWU5KSsiJkZsZXhWYWx1ZTEwPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVV cmwodGhpcy5mbGV4VmFsdWUxMCkpLHdpbmRvdy5leGl0VGFiVmFsdWUmJihuKz0i JkNvbnRlbnRQcm9wZXJ0aWVzPSIrT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwoZXhp dFRhYklEKyI9IitleGl0VGFiVmFsdWUrInwiKSksJCgiI1N0YXRzRG90TmV0SW1n IikuZ2V0KDApLnNyYz1uLCQoIm1ldGFbbmFtZT0nbXMuRXZlbnRDb2xsZWN0aW9u SWQnXSIpLmF0dHIoImNvbnRlbnQiLFN0YXRzRG90TmV0LmV2ZW50Q29sbGVjdGlv bklkKSx0eXBlb2YgTXNjb21DdXN0b21FdmVudCE9InVuZGVmaW5lZCImJk1zY29t Q3VzdG9tRXZlbnQoIm1zLkV4aXRMaW5rSUQiLE91dHB1dEVuY29kZXJfRW5jb2Rl VXJsKFN0YXRzRG90TmV0LmV4aXRMaW5rSWQpLCJtcy5FeGl0Q29udGFpbmVySWQi LE91dHB1dEVuY29kZXJfRW5jb2RlVXJsKFN0YXRzRG90TmV0LmV4aXRDb250YWlu ZXJJZCksIm1zLklzVW5Mb2FkIixPdXRwdXRFbmNvZGVyX0VuY29kZVVybCghMCks Im1zLkR3ZWxsVGltZSIsT3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwoU3RhdHNEb3RO ZXQuZHdlbGxUaW1lKSksaT1uZXcgRGF0ZSxyPWkuZ2V0VGltZSgpO2Zvcig7Oyl7 dT1uZXcgRGF0ZSxmPXUuZ2V0VGltZSgpO2lmKGYtcj50aGlzLm9uVW5sb2FkVGlt ZW91dClyZXR1cm59fSx0aGlzLlNldEV4aXRMaW5rcz1mdW5jdGlvbihuKXt2YXIg dD1zcmNFbChuKSxyPW51bGwsdT1udWxsLGk7aWYoIXQpcmV0dXJuO2lmKCF0LnRh Z05hbWUpcmV0dXJuO2lmKHQudGFnTmFtZS50b1VwcGVyQ2FzZSgpIT0iQSIpaWYo dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUudGFnTmFtZSYmdC5wYXJlbnROb2Rl LnRhZ05hbWUudG9VcHBlckNhc2UoKT09IkEiKXQ9dC5wYXJlbnROb2RlO2Vsc2Ug cmV0dXJuO2lmKCF0LmhyZWYpcmV0dXJuO2lmKHQuaHJlZi5pbmRleE9mKCJqYXZh c2NyaXB0OiIpPi0xKXJldHVybjtpZih0LmhyZWYuaW5kZXhPZigibWFpbHRvOiIp Pi0xKXJldHVybjt0LmlkP3RoaXMuZXhpdExpbmtJZD10LmlkOih0aGlzLmV4aXRM aW5rSWQ9IiIsKHR5cGVvZiBpc1Jlc2V0RXhpdENJRD09InVuZGVmaW5lZCJ8fGlz UmVzZXRFeGl0Q0lEPT1udWxsKSYmKHRoaXMuZXhpdENvbnRhaW5lcklkPSIiKSks dGhpcy50YXJnZXRVcmw9dC5ocmVmO2lmKHRoaXMuZW5hYmxlQ29sbFRpZXJQYXJh bXMmJnRoaXMubG9nRXh0ZXJuYWxVcmxzJiZ0LnRhcmdldCYmdC50YXJnZXQudG9V cHBlckNhc2UoKT09Il9CTEFOSyIpe2ZvcihpPTA7aTx0aGlzLmV4dGVybmFsVXJs cy5sZW5ndGg7aSsrKWlmKHRoaXMudGFyZ2V0VXJsLnRvTG93ZXJDYXNlKCk9PXRo aXMuZXh0ZXJuYWxVcmxzW2ldKWJyZWFrO2k8dGhpcy5leHRlcm5hbFVybHMubGVu Z3RofHx0aGlzLmV4dGVybmFsVXJscy5wdXNoKHRoaXMudGFyZ2V0VXJsLnRvTG93 ZXJDYXNlKCkpfXQudGFyZ2V0LnRvVXBwZXJDYXNlKCk9PT0iX0JMQU5LIiYmKHRo aXMudGFyZ2V0VXJsPSIiKX0sdGhpcy5UcmFja1NlYXJjaD1mdW5jdGlvbihuLHQs aSl7dGhpcy5zZWFyY2hDYXRlZ29yeUlkPW4sdGhpcy5zZWFyY2hDYXRlZ29yeUxp bmtQb3M9dCx0aGlzLnNlYXJjaFBhZ2VMaW5rUG9zPWl9LHRoaXMuR2V0Q29va2ll SW5jcmVtZW50PWZ1bmN0aW9uKCl7dmFyIHQ9InNkbmluYyIsbj1mZXRjaGNvb2tp ZXZhbCh0KTtyZXR1cm4gbnx8KG49IjAiKSxuPXBhcnNlSW50KG4pLG4rPTEsZG9j dW1lbnQuY29va2llPXQrIj0iK24rIjsgcGF0aD0vOyIsbn0sdGhpcy5TZXRTZWFy Y2hDYXRlZ29yeUlkPWZ1bmN0aW9uKG4pe1N0YXRzRG90TmV0LmRpc2FibGVkfHwo dGhpcy5zZWFyY2hDYXRlZ29yeUlkPW4pfSx0aGlzLmV2ZW50U2VxTm89dGhpcy5H ZXRDb29raWVJbmNyZW1lbnQoKX1mdW5jdGlvbiBNU19IYW5kbGVDbGljayhuLHQs aSl7dmFyIGUscixmLHUsbztuLmlkfHwobi5pZD0iIiksZT1uLmlkLnJlcGxhY2Uo Il9pIiwiIiksaSYmIVN0YXRzRG90TmV0LmRpc2FibGVkJiYoU3RhdHNEb3ROZXQu ZXhpdExpbmtJZD1lLFN0YXRzRG90TmV0LmV4aXRDb250YWluZXJJZD10KTtzd2l0 Y2goZSl7Y2FzZSJQcmludFBhZ2UiOnJldHVybiBTYXZlVG9GYXZvcml0ZXNEYXRh LlByaW50UGFnZSgpO2Nhc2UiYmlsX1ByaW50UGFnZSI6cmV0dXJuIFNhdmVUb0Zh dm9yaXRlc0RhdGEuUHJpbnRQYWdlKCk7Y2FzZSJFbWFpbFBhZ2UiOnJldHVybiBT YXZlVG9GYXZvcml0ZXNEYXRhLkVtYWlsUGFnZShuKX1yZXR1cm4gbi5pZC5pbmRl eE9mKCJvYXNfIik9PTAmJihuLmhyZWY9TVNfT0FTVVJMK0dldE1vZGlmaWVkUXVl cnlTdHJpbmcoImdwcmlkIixuLmlkLnJlcGxhY2UoIm9hc18iLCIiKSkscj1uLmhy ZWYudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ0YXJnZXQ9YXNzaXN0YW5jZSIpLHI+ MCYmKHU9cisxNyxuLmhyZWYuY2hhckF0KHItMSk9PSImIiYmKHI9ci0xKSxuLmhy ZWY9bi5ocmVmLnN1YnN0cmluZygwLHIpK24uaHJlZi5zdWJzdHJpbmcodSxuLmhy ZWYubGVuZ3RoKSkpLG4uaHJlZiE9bnVsbCYmKGY9bi5ocmVmLmluZGV4T2YoIkdT U1Byb2RTZWxNb3JlIiksZj4wJiYodT1uLmhyZWYuaW5kZXhPZigiJiIsZiksdTww JiYodT1uLmhyZWYubGVuZ3RoKSxvPW4uaHJlZi5zdWJzdHJpbmcoZisxNCx1KSxu LmhyZWY9Ii9zZWxlY3QvZGVmYXVsdC5hc3B4IitHZXRNb2RpZmllZFF1ZXJ5U3Ry aW5nKCJjMSIsbykpKSwhMH1mdW5jdGlvbiBnZXRzZWFyY2h1cmwobil7cXVlcnlT dHJpbmcuYWR2PT0iMSImJihuLmhyZWY9bi5ocmVmKyImYWR2PTEiKX1mdW5jdGlv biBnZXRyc3N1cmwobil7dmFyIHQ9bi5ocmVmLmluZGV4T2YoIi9jb21tb24vcnNz LmFzcHgiKTt0Pi0xJiYobi5ocmVmPW4uaHJlZisiJm1zaWQ9IittYzEpfWZ1bmN0 aW9uIE1TX1dlYk1ldHJpeChuKXtpZih0eXBlb2YgbiE9InVuZGVmaW5lZCIpe3Zh ciB0LGk9Imd1aWQ9IixyPSImZ3VpZD0iLHU9MzI7dD1mZXRjaGNvb2tpZXZhbCgi TUMxIiksdCYmKHQ9dC50b0xvd2VyQ2FzZSgpKSx0fHwodD1mZXRjaGNvb2tpZXZh bCgiTUMyIiksdCYmKHQ9dC50b0xvd2VyQ2FzZSgpKSksdCYmKHQuc3Vic3RyKDAs aS5sZW5ndGgpPT1pP21jMT10LnN1YnN0cihpLmxlbmd0aCx1KTp0LmluZGV4T2Yo cik+LTEmJihtYzE9dC5zdWJzdHIodC5pbmRleE9mKHIpK3IubGVuZ3RoLHUpKSks bj1uKyImbXNpZD0iK21jMSwkKCIjd2VibWV0cml4aW1nIikuZ2V0KDApLnNyYz1u fX1mdW5jdGlvbiBNU19Eb2N1bWVudE9uQ2xpY2sobil7U3RhdHNEb3ROZXQuZGlz YWJsZWR8fFN0YXRzRG90TmV0LlNldEV4aXRMaW5rcyhuKX1mdW5jdGlvbiBNU19X aW5kb3dPblVubG9hZCgpe1N0YXRzRG90TmV0LmRpc2FibGVkfHxTdGF0c0RvdE5l dC5Mb2dQYWdlT25VbkxvYWQoKX1mdW5jdGlvbiBNU19XaW5kb3dPblNjcm9sbCgp e1N0YXRzRG90TmV0LnNjcm9sbFVzZWQ9ITAsJChkb2N1bWVudCkudW5iaW5kKCJz Y3JvbGwiLE1TX1dpbmRvd09uU2Nyb2xsKX1mdW5jdGlvbiBPcHRpb25Db29raWUo KXt2YXIgcj1mZXRjaGNvb2tpZXZhbCgiYWRvcHQiKSx1LHQsbixpLGY7aWYociYm ci5sZW5ndGg+MClmb3IodT1yLnNwbGl0KCJ8IiksdD0wO3Q8dS5sZW5ndGg7dCsr KXtuPXVbdF0uc3BsaXQoIj0iKTtpZihuLmxlbmd0aCE9Miljb250aW51ZTtpZihu WzFdPT0iIiljb250aW51ZTtpPW5bMF0sZj1uWzFdLHRoaXNbaV0/dGhpc1tpXSs9 IiwgIitmOnRoaXNbaV09Zn19ZnVuY3Rpb24gSW5pdFJhZGlvKG4sdCl7dHZhbD1m ZXRjaGNvb2tpZXZhbCgiYWQiK3QpO2lmKHR2YWwpZm9yKGk9MDtpPG4ubGVuZ3Ro O2krKylpZihuW2ldLnZhbHVlPT11bmVzY2FwZSh0dmFsKSl7bltpXS5jaGVja2Vk PSEwLG5baV0uY2xpY2soKTticmVha319ZnVuY3Rpb24gYWRkUG9wdXBIZWxwRXZl bnRzKCl7dmFyIGk9MCx0PSQoIiNjb250ZW50QXJlYSBhIiksbjtpZih0KWZvcihu PXQubGVuZ3RoLTE7bj49MDtuLS0pdFtuXS5jbGFzc05hbWU9PSJjdXN0aXAiJiYo bGlua3MucHVzaCh0W25dKSx0W25dLm9ubW91c2VvdmVyPXNob3dQb3B1cEhlbHAs dFtuXS5vbm1vdXNlb3V0PWhpZGVQb3B1cEhlbHAsdFtuXS5vbmZvY3VzPXNob3dQ b3B1cEhlbHAsdFtuXS5vbmJsdXI9aGlkZVBvcHVwSGVscCl9ZnVuY3Rpb24gc2hv d1BvcHVwSGVscCgpe3ZhciBuPSQodGhpcykuY2hpbGRyZW4oInNwYW4iKVswXTtp ZihuPT1udWxsKXJldHVybjt2YXIgaT1BYnNQb3ModGhpcykscj1uLm9mZnNldFdp ZHRoLHU9bi5vZmZzZXRIZWlnaHQrcGFyc2VJbnQoJChuKS5jc3MoInBhZGRpbmdU b3AiKSwxMCkrcGFyc2VJbnQoJChuKS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCks dD0iIixmPSQobikuY3NzKCJkaXJlY3Rpb24iKTtmPT09InJ0bCI/aS5sZWZ0PHI/ KHQrPSIgc2hvd0xlZnQiLG4uc3R5bGUucmlnaHQ9ImF1dG8iKTpuLnN0eWxlLnJp Z2h0PSIyMHB4IjpyK2kubGVmdD4kKHdpbmRvdykud2lkdGgoKSYmKHQrPSIgc2hv d1JpZ2h0IiksdStpLnRvcD4kKHdpbmRvdykuaGVpZ2h0KCkmJih0Kz0iIHNob3dC b3R0b20iKSx0aGlzLmNsYXNzTmFtZT0iY3VzdGlwIHNob3ciK3R9ZnVuY3Rpb24g aGlkZVBvcHVwSGVscCgpe3ZhciBuPW51bGwsdDt0aGlzLmNsYXNzTmFtZT0iY3Vz dGlwIjtpZih0aGlzLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIikpbj10aGlz LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzcGFuIilbMF07ZWxzZSByZXR1cm47aWYo bj09bnVsbClyZXR1cm47dD0kKG4pLmNzcygiZGlyZWN0aW9uIiksdD09PSJydGwi JiYobi5zdHlsZS5yaWdodD0iYXV0byIpfWZ1bmN0aW9uIEFic1BvcyhuKXt2YXIg dD15PTA7aWYobi5vZmZzZXRQYXJlbnQpe3Q9bi5vZmZzZXRMZWZ0LHk9bi5vZmZz ZXRUb3A7d2hpbGUobj1uLm9mZnNldFBhcmVudCl0Kz1uLm9mZnNldExlZnQseSs9 bi5vZmZzZXRUb3B9cmV0dXJue2xlZnQ6dCx0b3A6eX19ZnVuY3Rpb24gc2V0S2V5 Qml0KG4pe249c3JjRWwobiksbi5rZXlCaXQ9ITB9ZnVuY3Rpb24gbG9nU2VhcmNo VUlTd2l0Y2goKXtTdGF0c0RvdE5ldC5ldmVudENvbGxlY3Rpb25JZD1TZXRMb2dD b2xsZWN0aW9uQml0KFN0YXRzRG90TmV0LmV2ZW50Q29sbGVjdGlvbklkLDI4KX1m dW5jdGlvbiBsb2dSYW5nZSgpe1N0YXRzRG90TmV0LmV2ZW50Q29sbGVjdGlvbklk PVNldExvZ0NvbGxlY3Rpb25CaXQoU3RhdHNEb3ROZXQuZXZlbnRDb2xsZWN0aW9u SWQsOCl9ZnVuY3Rpb24gbG9nT3B0aW9uSWQobil7U3RhdHNEb3ROZXQuT3B0aW9u Q29sbGVjdGlvbklkPVNldExvZ0NvbGxlY3Rpb25CaXQoU3RhdHNEb3ROZXQuT3B0 aW9uQ29sbGVjdGlvbklkLG4pfWZ1bmN0aW9uIElzTG9nQml0U2V0KG4sdCl7aWYo bj09MHx8dD09MClyZXR1cm4hMTt2YXIgaT1uLnRvU3RyaW5nKDIpO2lmKGkubGVu Z3RoPnQpaWYoaS5jaGFyQXQoaS5sZW5ndGgtdC0xKT09IjEiKXJldHVybiEwO3Jl dHVybiExfWZ1bmN0aW9uIFNldExvZ0NvbGxlY3Rpb25CaXQobix0KXtyZXR1cm4g SXNMb2dCaXRTZXQobix0KXx8KG4rPU1hdGgucG93KDIsdCkpLG59ZnVuY3Rpb24g U29sSWRGb3JTdGF0c05ldChuKXtTdGF0c0RvdE5ldC5kaXNhYmxlZHx8KFN0YXRz RG90TmV0LmZsZXhJZD0iNCIsU3RhdHNEb3ROZXQuZmxleFZhbHVlMT1uLFN0YXRz RG90TmV0LmV2ZW50Q29sbGVjdGlvbklkPVNldExvZ0NvbGxlY3Rpb25CaXQoU3Rh dHNEb3ROZXQuZXZlbnRDb2xsZWN0aW9uSWQsMTgpKX1mdW5jdGlvbiBBc3NldElk Q2xpY2sobil7U3RhdHNEb3ROZXQuZGlzYWJsZWR8fChTdGF0c0RvdE5ldC5TZXRT ZWFyY2hDYXRlZ29yeUlkKG4pLFN0YXRzRG90TmV0LmZsZXhWYWx1ZTI9bixTdGF0 c0RvdE5ldC5mbGV4SWQ9IjQiKX1mdW5jdGlvbiBSZWdpb25TYXZlKG4pe3ZhciB0 PW4rIkxBTkciLGk9ZmV0Y2hjb29raWV2YWwodCkscj0kKCIjTE4iKS5nZXQoMCku dmFsdWU7aSYmaSE9ciYmKFN0YXRzRG90TmV0LmV2ZW50Q29sbGVjdGlvbklkPVNl dExvZ0NvbGxlY3Rpb25CaXQoU3RhdHNEb3ROZXQuZXZlbnRDb2xsZWN0aW9uSWQs MTcpKSxzZXRjb29raWV2YWwodCxyKSwkKCIjcmVnaW9uZm9ybSIpLmdldCgwKS5z dWJtaXR9ZnVuY3Rpb24gQ2hlY2tFdWxhQ29va2llKG4pe3ZhciB0PWZldGNoY29v a2lldmFsKCJhY3dldWxhIik7cmV0dXJuIHQhPSIxIj8hMDooU3RhdHNEb3ROZXQu ZXZlbnRDb2xsZWN0aW9uSWQ9U2V0TG9nQ29sbGVjdGlvbkJpdChTdGF0c0RvdE5l dC5ldmVudENvbGxlY3Rpb25JZCwyNiksbG9jYXRpb24uaHJlZj1uLCExKX1mdW5j dGlvbiBMYXVuY2hBY3cobix0KXtpZihuPT0iYWNjZXB0Iil7U3RhdHNEb3ROZXQu ZXZlbnRDb2xsZWN0aW9uSWQ9U2V0TG9nQ29sbGVjdGlvbkJpdChTdGF0c0RvdE5l dC5ldmVudENvbGxlY3Rpb25JZCwyNiksc2V0Y29va2lldmFsKCJhY3dldWxhIiwi MSIpO3ZhciBpPXdpbmRvdy5vcGVuKHQsbnVsbCwiaGVpZ2h0PTEsd2lkdGg9MSxs ZWZ0PTAsdG9wPTAsc3RhdHVzPW5vLHRvb2xiYXI9bm8sbWVudWJhcj1ubyxsb2Nh dGlvbj1ubyIpO3JldHVybiBpPyQoIltuYW1lPWZybWFjd10iKS5zdWJtaXQoKTps b2NhdGlvbi5ocmVmPXQsITF9JCgiW25hbWU9ZnJtYWN3XSIpLnN1Ym1pdCgpfWZ1 bmN0aW9uIGdldExhdGVzdEVsZW1lbnQoKXt2YXIgbj0kKCJib2R5IikuZ2V0KDAp O3doaWxlKG4ubGFzdENoaWxkKW49bi5sYXN0Q2hpbGQ7d2hpbGUoIW4udGFnTmFt ZSluPW4ucGFyZW50Tm9kZTtyZXR1cm4gbi5wcmV2aW91c1NpYmxpbmd9ZnVuY3Rp b24gZml4QnVsbGV0UG9zaXRpb24oKXtyZXR1cm59ZnVuY3Rpb24gc2V0QUNTdGFy dENoYXJzKG4pe24mJihhY1N0YXJ0TnVtPW4uc3BsaXQoIjoiKSl9ZnVuY3Rpb24g Y2hhbmdlTGNpZEZvclNlbGVjdChuLHQsaSxyKXt2YXIgdT1pfHxuLm9wdGlvbnNb bi5zZWxlY3RlZEluZGV4XS52YWx1ZTt1JiYodT11LnNwbGl0KCI9IiksdS5sZW5n dGg9PT0yJiZjaGFuZ2VBY0xjaWQodVsxXSx0KSk7aWYoYWNTdGFydE51bSl0cnl7 Y2hhcnM9cj9hY1N0YXJ0TnVtW3BhcnNlSW50KHIsMTApXTphY1N0YXJ0TnVtW24u c2VsZWN0ZWRJbmRleF0sTVMuU3VwcG9ydC5BQy5BQ0NoYW5nZUNoYXJTdGFydCh0 LGNoYXJzKX1jYXRjaChmKXt9fWZ1bmN0aW9uIEluaXRBQyhuKXt2YXIgdD1mdW5j dGlvbigpe3ZhciByPSQoIiNkZENhdGFsb2ciKS5nZXQoMCksdCx1LGk7aWYocil7 dD11bmVzY2FwZShmZXRjaGNvb2tpZXZhbCgiYWRjYXRhbG9nIikpO2lmKHQpe2Zv cih1PSExLGk9MDtpPHIub3B0aW9ucy5sZW5ndGg7aSsrKWlmKHIub3B0aW9uc1tp XS52YWx1ZT09dCl7dT0hMDticmVha31pZih1KXt0PXQuc3BsaXQoIj0iKTtpZih0 Lmxlbmd0aD09PTIpdHJ5e01TLlN1cHBvcnQuQUMuQUNTZXRMY2lkKG4sdFsxXSl9 Y2F0Y2goZil7fX19fX07JCh3aW5kb3cpLnJlYWR5KHQpfWZ1bmN0aW9uIHNyY2hf c2V0Y29va2lldmFsKG4sdCl7c2V0Y29va2lldmFsKG4sdCxudWxsLCEwKX1mdW5j dGlvbiBzZXRjb29raWV2YWwobix0LGkscil7dmFyIHUscyxoLGMsZSxsLGYsbztp ZighbilyZXR1cm47cz0iIixyfHwoaD1uZXcgRGF0ZSxzKz0iOyBleHBpcmVzPSIr aC50b0dNVFN0cmluZyhoLnNldEZ1bGxZZWFyKGguZ2V0RnVsbFllYXIoKSsxKSkp LGM9ZG9jdW1lbnQuZG9tYWluLHR5cGVvZiBnQ29va2llRG9tYWluIT0idW5kZWZp bmVkIiYmZ0Nvb2tpZURvbWFpbiE9bnVsbCYmZ0Nvb2tpZURvbWFpbiE9IiImJihj PWdDb29raWVEb21haW4pLGMuaW5kZXhPZigiLmNvbSIpPi0xJiYocys9IjsgRG9t YWluPSIrYyksdT1mZXRjaGNvb2tpZXZhbChuKTtpZih1JiZpKXtsPSExO2lmKHUu aW5kZXhPZigiPSIpPi0xKXtmb3IoZj11LnNwbGl0KCImIiksbz0wO288Zi5sZW5n dGg7bysrKXtlPWZbb10uc3Vic3RyaW5nKDAsZltvXS5pbmRleE9mKCI9IikpLGUu Y2hhckF0KDApPT0iICImJihlPWUuc3Vic3RyaW5nKDEsZS5sZW5ndGgpKTtpZihp PT09ZSl7ZltvXT1pKyI9Iit0LHU9Zi5qb2luKCImIiksbD0hMDticmVha319bHx8 KGYubGVuZ3RoPjAmJih1Kz0iJiIpLHUrPWkrIj0iK3QpfWVsc2UgdT1pKyI9Iit0 fWVsc2UgaWYoIXUmJmkpdT1pKyI9Iit0O2Vsc2V7aWYoaSlyZXR1cm47dT10fWRv Y3VtZW50LmNvb2tpZT1uKyI9Iit1K3MrIjsgcGF0aD0vIn1mdW5jdGlvbiBmZXRj aGNvb2tpZXZhbChuLHQpe3ZhciB1LGYscixpO2lmKCFuKXJldHVybiIiO2Zvcihy PWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpLGk9MDtpPHIubGVuZ3RoO2krKyl7 dT1yW2ldLnN1YnN0cmluZygwLHJbaV0uaW5kZXhPZigiPSIpKSx1LmNoYXJBdCgw KT09IiAiJiYodT11LnN1YnN0cmluZygxLHUubGVuZ3RoKSk7aWYobj09PXUpe2Y9 cltpXS5zdWJzdHJpbmcocltpXS5pbmRleE9mKCI9IikrMSxyW2ldLmxlbmd0aCk7 YnJlYWt9fWlmKGY9PT11bmRlZmluZWR8fGY9PT1udWxsKXJldHVybiBudWxsO2lm KCF0KXJldHVybiBmO2ZvcihyPWYuc3BsaXQoIiYiKSxpPTA7aTxyLmxlbmd0aDtp Kyspe3U9cltpXS5zdWJzdHJpbmcoMCxyW2ldLmluZGV4T2YoIj0iKSksdS5jaGFy QXQoMCk9PSIgIiYmKHU9dS5zdWJzdHJpbmcoMSx1Lmxlbmd0aCkpO2lmKHQ9PT11 KXJldHVybiByW2ldLnN1YnN0cmluZyhyW2ldLmluZGV4T2YoIj0iKSsxLHJbaV0u bGVuZ3RoKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBvbkhvdGZpeEV1bGFBY3Rpb24o bix0KXtzZXRjb29raWV2YWwoImhvdGZpeEV1bGFDb29raWUiLG49PSJhY2NlcHQi PyIxIjoiMCIsIiIsITEpLG49PSJhY2NlcHQiP2RvY3VtZW50LmZvcm1zLmZybUhv dGZpeEV1bGEuc3VibWl0KCk6ZG9jdW1lbnQubG9jYXRpb24uaHJlZj10fWZ1bmN0 aW9uIEFkZHRvU29jaWFsTWVkaWEobix0LGkscil7dmFyIHU9d2luZG93LmxvY2F0 aW9uLmhyZWYsZj13aW5kb3cuZG9jdW1lbnQudGl0bGU7TG9nU29jaWFsTWVkaWEo bix1LHQpLHdpbmRvdy5vcGVuKGkrZW5jb2RlVVJJQ29tcG9uZW50KHUpK3IrKGpR dWVyeS50cmltKHIpLmxlbmd0aD09MD8iIjplbmNvZGVVUklDb21wb25lbnQoZikp LCJ3aW4iKX1mdW5jdGlvbiBMb2dTb2NpYWxNZWRpYShuLHQsaSl7dmFyIHU9IiIs cj1uZXcgRGF0ZSxmPXIuZ2V0SG91cnMoKSxlPXIuZ2V0TWludXRlcygpLG89ci50 b0RhdGVTdHJpbmcoKTt1PSJTU0lEPTI1JlJlcXVlc3REYXRlPSIrbysiJkhvdXJJ RD0iK2YrIiZNaW51dGVJRD0iK2UrIiZGbGV4VmFsdWUxPSIrbisiJlBhZ2VVcmw9 Iit0KyImRmxleGlkPTEmRmxleHZhbHVlMj0iK2krIiZGbGV4dmFsdWUzPSIrU3Rh dHNEb3ROZXQuY29udGVudElkKyImU2l0ZUN1bHR1cmU9IitTdGF0c0RvdE5ldC5T aXRlQ3VsdHVyZSsiJkNvbnRlbnRDdWx0dXJlPSIrU3RhdHNEb3ROZXQuQ29udGVu dEN1bHR1cmUsJC5hamF4KHt1cmw6Ii9sdHMvZGVmYXVsdC5hc3B4IixkYXRhOnV9 KX1mdW5jdGlvbiBJc0NoaWxkcmVuKG4sdCxpKXt2YXIgdTtpZighbilyZXR1cm4h MTt1PSExLGl8fChpPTYpO3ZhciByPW4ucGFyZW50Tm9kZSxmPTAsZT0hMTt3aGls ZShyJiZpPmYpe2lmKHI9PXQpe3U9ITA7YnJlYWt9cj0kKHIpLnBhcmVudCgpLmdl dCgwKSxmKyt9cmV0dXJuIHV9ZnVuY3Rpb24gRWxlbWVudHNCeU5hbWUobix0KXt2 YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSh0KSx1LHI7aWYoaS5sZW5n dGg+MClyZXR1cm4gaTtmb3IoaT1bXSx1PWRvY3VtZW50LmdldEVsZW1lbnRzQnlU YWdOYW1lKG4pLHI9MDtyPHUubGVuZ3RoO3IrKyl1W3JdLmdldEF0dHJpYnV0ZSgi bmFtZSIpPT10JiYoaVtpLmxlbmd0aF09dVtyXSk7cmV0dXJuIGl9ZnVuY3Rpb24g RGlzcGxheUFUTGlzdCgpeyQoIiNBVExpc3QiKS5jc3MoImRpc3BsYXkiKS50b0xv d2VyQ2FzZSgpPT0ibm9uZSI/KCQoIiN0aGluQ29sdW1uIikuZ2V0KDApJiYkKCIj dGhpbkNvbHVtbiIpLmNzcygib3ZlcmZsb3ciLCJ2aXNpYmxlIiksJCgiI0FUTGlz dCIpLmNzcygiZGlzcGxheSIsImJsb2NrIiksJChkb2N1bWVudCkuYmluZCgiY2xp Y2suQXJ0aWNsZVRyYW5zbGF0aW9uIixmdW5jdGlvbihuKXtBcnRpY2xlVHJhbnNs YXRpb25DbGlja0hhbmRsZShuKX0pKTooJCgiI0FUTGlzdCIpLmNzcygiZGlzcGxh eSIsIm5vbmUiKSwkKGRvY3VtZW50KS51bmJpbmQoImNsaWNrLkFydGljbGVUcmFu c2xhdGlvbiIpKX1mdW5jdGlvbiBBcnRpY2xlVHJhbnNsYXRpb25DbGlja0hhbmRs ZShuKXtpZighbnx8IW4udGFyZ2V0KXJldHVybjt2YXIgdD1uLnRhcmdldCxpPSQo IiNBcnRpY2xlVHJhbnNsYXRpb25zIikuZ2V0KDApO2lmKGk9PXR8fElzQ2hpbGRy ZW4odCxpKSlyZXR1cm47JCgiI0FUTGlzdCIpLmNzcygiZGlzcGxheSIsIm5vbmUi KSwkKGRvY3VtZW50KS51bmJpbmQoImNsaWNrLkFydGljbGVUcmFuc2xhdGlvbiIp fWZ1bmN0aW9uIEFUQ2xpY2sobix0KXt0LmlkPSJLQkxhbmdMaXN0UmVkaXJlY3Qi LFN0YXRzRG90TmV0LmRpc2FibGVkfHwoU3RhdHNEb3ROZXQuZXhpdENvbnRhaW5l cklkPW4pfWZ1bmN0aW9uIGdldFN1Yk1lbnVIYW5kbGVOYW1lKG4pe3JldHVybiBu LmlkP24uaWQ6ImRyb3Bkb3dubWVudSJ9ZnVuY3Rpb24gYmluZE1lbnVFdmVudChu KXtuLm1lbnVFdmVudEJvdW5kfHwobi5tZW51RXZlbnRCb3VuZD0hMCwkKG4pLmhv dmVyKG51bGwsZnVuY3Rpb24oKXtoaWRlU3ViTWVudShuKX0pLCQobikuYmluZCgi a2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXlDb2RlPT09MjcmJigkKG4pLmZpbmQo ImEjbWVudWJvZHkiKS5mb2N1cygpLGhpZGVTdWJNZW51KG4pKX0pKSxuLm1lbnVH bG9iYWxUcmFja0V2ZW50Qm91bmR8fChuLm1lbnVHbG9iYWxUcmFja0V2ZW50Qm91 bmQ9ITAsJChkb2N1bWVudCkuYmluZCgiY2xpY2suIitnZXRTdWJNZW51SGFuZGxl TmFtZShuKSxmdW5jdGlvbih0KXtoaWRlU3ViTWVudUhhbmRsZSh0LG4pfSksJChk b2N1bWVudCkuYmluZCgiZm9jdXNpbi4iK2dldFN1Yk1lbnVIYW5kbGVOYW1lKG4p LGZ1bmN0aW9uKHQpe2hpZGVTdWJNZW51SGFuZGxlKHQsbil9KSl9ZnVuY3Rpb24g ZGlzcGxheVN1Yk1lbnUobil7JChuKS5maW5kKCIjZHJvcGRvd25tZW51Iikuc2hv dygpLGJpbmRNZW51RXZlbnQobil9ZnVuY3Rpb24gaGlkZVN1Yk1lbnUobil7JChu KS5maW5kKCIjZHJvcGRvd25tZW51IikuaGlkZSgpLCQoZG9jdW1lbnQpLnVuYmlu ZCgiY2xpY2suIitnZXRTdWJNZW51SGFuZGxlTmFtZShuKSksJChkb2N1bWVudCku dW5iaW5kKCJmb2N1c2luLiIrZ2V0U3ViTWVudUhhbmRsZU5hbWUobikpLG4ubWVu dUdsb2JhbFRyYWNrRXZlbnRCb3VuZD0hMX1mdW5jdGlvbiB0b2dnbGVTdWJNZW51 KG4peyQobikuZmluZCgiI2Ryb3Bkb3dubWVudSIpLmlzKCI6dmlzaWJsZSIpP2hp ZGVTdWJNZW51KG4pOmRpc3BsYXlTdWJNZW51KG4pfWZ1bmN0aW9uIHRyYWNrT3V0 c2lkZUV2ZW50KG4sdCxpKXtpZighbnx8IW4udGFyZ2V0KXJldHVybjt2YXIgcj1u LnRhcmdldDtqUXVlcnkuY29udGFpbnModCxyKXx8cj09dHx8aSh0KX1mdW5jdGlv biBoaWRlU3ViTWVudUhhbmRsZShuLHQpe3RyYWNrT3V0c2lkZUV2ZW50KG4sdCxm dW5jdGlvbihuKXtoaWRlU3ViTWVudShuKX0pfWZ1bmN0aW9uIHJlY29yZExpbmtD bGljayhuLHQpe3ZhciBpLHI7dCYmKGk9U3RhdHNEb3ROZXRbImZsZXhWYWx1ZSIr bl0saT0kLnRyaW0oaSksaT8ocj0ifCIraSsifCIsci5pbmRleE9mKCJ8Iit0KyJ8 Iik8MCYmKGk9aSsifCIrdCkpOmk9dCxTdGF0c0RvdE5ldFsiZmxleFZhbHVlIitu XT1pKX1mdW5jdGlvbiBoYW5kbGVGaXhpdEZvb3RlckNsaWNrKG4sdCl7dmFyIGks cjtpZighbnx8IW4udGFyZ2V0KXJldHVybjtpPW4udGFyZ2V0LCQoaSkuaXMoImEi KSYmKHI9JChpKS5hdHRyKCJocmVmIikscmVjb3JkTGlua0NsaWNrKHQscikpfWZ1 bmN0aW9uIGdlbmVyYXRlV2VkY3NEYXRhKCl7dmFyIHQ9IndlZGNzaW5jIix1PSJN UzAiLG49ZmV0Y2hjb29raWV2YWwodCksZj1mZXRjaGNvb2tpZXZhbCh1KSxpLHI7 ZiE9bnVsbCYmbnx8KG49MCksbj1wYXJzZUludChuKSxuKz0xLHNldGNvb2tpZXZh bCh0LG4sbnVsbCwhMSksaT1mZXRjaGNvb2tpZXZhbCgiR3NmeFNlc3Npb25Db29r aWUiKSxyPVtidWlsZE1ldGEoImV2ZW50c2Vxbm8iLG4pLGJ1aWxkTWV0YSgiU3NW ZXJzaW9uIixTdGF0c0RvdE5ldC5Tc1ZlcnNpb24pLGJ1aWxkTWV0YSgiRXZlbnRD b2xsZWN0aW9uSWQiLFN0YXRzRG90TmV0LmV2ZW50Q29sbGVjdGlvbklkKSxidWls ZE1ldGEoIk9wdGlvbkNvbGxlY3Rpb25JZCIsU3RhdHNEb3ROZXQuT3B0aW9uQ29s bGVjdGlvbklkKSxidWlsZE1ldGEoIkNvbnRlbnRQcm9wZXJ0aWVzIixTdGF0c0Rv dE5ldC5Db250ZW50UHJvcGVydGllcyksYnVpbGRNZXRhKCJDb250ZW50TGNpZCIs U3RhdHNEb3ROZXQuY29udGVudExuKSxidWlsZE1ldGEoIkJyYW5kSWQiLFN0YXRz RG90TmV0LnNpdGVCcmFuZElkKSxidWlsZE1ldGEoIkludGVuZGVkNDA0VXJsIixT dGF0c0RvdE5ldC5JbjQwNFVybCksYnVpbGRNZXRhKCJSZWZlcnJlckNvbnRlbnRU eXBlIixTdGF0c0RvdE5ldC5yY3R5cGUpLGJ1aWxkTWV0YSgiUmVmZXJyZXJDb250 ZW50TGNpZCIsU3RhdHNEb3ROZXQucmNsY2lkKSxidWlsZE1ldGEoIlJlZmVycmVy Q29udGVudEN1bHR1cmUiLFN0YXRzRG90TmV0LnJjY3VsdHVyZSksYnVpbGRNZXRh KCJSZWZlcnJlckNvbnRlbnRJZCIsU3RhdHNEb3ROZXQucmNpZCksYnVpbGRNZXRh KCJSZWZlcnJlckV4aXRMaW5rSUQiLFN0YXRzRG90TmV0LnJleGxpZCksYnVpbGRN ZXRhKCJSZWZlcnJlckV4aXRDb250YWluZXJJRCIsU3RhdHNEb3ROZXQucmV4Y2lk KSxidWlsZE1ldGEoIlNlc3Npb25JZCIsaSldLmpvaW4oIiIpLCQocikuYXBwZW5k VG8oJCgiaGVhZCIpKX12YXIgcXVlcnlTdHJpbmc9bmV3IE1TX1F1ZXJ5U3RyaW5n LGdfcmVTdXBwb3J0ZWRIb3N0bmFtZXMsU3RhdHNEb3ROZXQ9bmV3IE1TX1N0YXRz RG90TmV0LFNhdmVUb0Zhdm9yaXRlc0RhdGE9bmV3IE1TX1BhZ2VUb29sc0RhdGEs bWMxLGxpbmtzLGFjU3RhcnROdW0sY2hhbmdlQWNMY2lkLGJ1aWxkTWV0YSxHU1M7 U2F2ZVRvRmF2b3JpdGVzRGF0YS5vYmpTdGF0c0RvdE5ldD1TdGF0c0RvdE5ldCxt YzE9IiIsJCh3aW5kb3cpLnVubG9hZChNU19XaW5kb3dPblVubG9hZCksJChkb2N1 bWVudCkuY2xpY2soTVNfRG9jdW1lbnRPbkNsaWNrKSwkKGRvY3VtZW50KS5zY3Jv bGwoTVNfV2luZG93T25TY3JvbGwpLGxpbmtzPVtdLCQoZG9jdW1lbnQpLnJlYWR5 KGFkZFBvcHVwSGVscEV2ZW50cyksY2hhbmdlQWNMY2lkPWZ1bmN0aW9uKG4sdCxp KXt0cnl7TVMuU3VwcG9ydC5BQy5BQ1NldExjaWQodCxuKTtpZihhY1N0YXJ0TnVt JiZpKXRyeXtNUy5TdXBwb3J0LkFDLkFDQ2hhbmdlQ2hhclN0YXJ0KHQsYWNTdGFy dE51bVtpXSl9Y2F0Y2gocil7fX1jYXRjaChyKXt9fSxBamF4R2V0PWZ1bmN0aW9u KG4sdCl7dmFyIGkscjt0cnl7aT1udWxsLHdpbmRvdy5YTUxIdHRwUmVxdWVzdD9p PW5ldyBYTUxIdHRwUmVxdWVzdDp3aW5kb3cuQWN0aXZlWE9iamVjdCYmKGk9bmV3 IEFjdGl2ZVhPYmplY3QoIk1zeG1sMi5YTUxIVFRQIikpO2lmKGkmJmkhPW51bGwp aS5vcGVuKCJHRVQiLG4sITApLGkuc2V0UmVxdWVzdEhlYWRlcigiQ29ubmVjdGlv biIsImNsb3NlIiksaS5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCJ0 ZXh0L3BsYWluIiksaS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtpLnJl YWR5U3RhdGU9PTQmJmkuc3RhdHVzPT0yMDAmJkFqYXhDYWxsYmFja0Z1bmModCxp LnJlc3BvbnNlVGV4dCl9LGkuc2VuZChudWxsKTtlbHNlIHJldHVybiBudWxsfWNh dGNoKHUpe3JldHVybiBudWxsfX0sJCh3aW5kb3cpLmxvYWQoZnVuY3Rpb24oKXsk KCIjQVRMaXN0IikuZ2V0KDApJiYoJCgiI0FUTGlzdCIpLmNzcygiZGlzcGxheSIs Im5vbmUiKSwkKCIjQVRMaXN0IikuY3NzKCJwb3NpdGlvbiIsImFic29sdXRlIikp fSksYnVpbGRNZXRhPWZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQ9PT11bmRlZmluZWR8 fHQ9PT1udWxsPyIiOic8bWV0YSBuYW1lPSJtcy4nK24rJyIgY29udGVudD0iJyt0 KyciIC8+J30sJChmdW5jdGlvbigpeyQoIi5TaGFyZUJ1dHRvbiIpLmNzcygiZGlz cGxheSIsImJsb2NrIik7dmFyIG49ZnVuY3Rpb24oKXskKCIuTWVkaWFDb250ZW50 IHVsIikuc2xpZGVVcCgiZmFzdCIpfTskKCIuU2hhcmVCdXR0b24iKS5jbGljayhm dW5jdGlvbigpe3JldHVybiAkKCIuTWVkaWFDb250ZW50IHVsIikuc2xpZGVUb2dn bGUoImZhc3QiKSwhMX0pLCQoZG9jdW1lbnQpLmJpbmQoImNsaWNrIixuKSwkKCIu TWVkaWFDb250ZW50IikudW5iaW5kKCJjbGljayIsbil9KSxHU1M9R1NTfHx7fSxH U1MuVXRpbGl0eT1HU1MuVXRpbGl0eXx8e30sZnVuY3Rpb24obil7ZnVuY3Rpb24g aSh0KXt2YXIgcyxyLG8sZixpLHUsZTt0fHwodD0iIikscz0vXig/OihbXjpcLz9c I10rKTopPyg/OlwvXC8oW15cLz9cI10qKSk/KFteP1wjXSopKD86XD8oW15cI10q KSk/KD86XCMoLiopKT8vLHI9dC5tYXRjaChzKSx0aGlzLnNjaGVtZT1yWzFdfHxu dWxsLHRoaXMuYXV0aG9yaXR5PXJbMl18fG51bGwsdGhpcy5wYXRoPXJbM118fG51 bGwsdGhpcy5xdWVyeT1yWzRdfHxudWxsLHRoaXMuZnJhZ21lbnQ9cls1XXx8bnVs bCx0aGlzLnVybD10LHRoaXMucXVlcnlTdHJpbmc9e307aWYodGhpcy5xdWVyeSlm b3Iobz10aGlzLnF1ZXJ5LnNwbGl0KCImIiksZj0wO2Y8by5sZW5ndGg7ZisrKXtp PW9bZl0uc3BsaXQoIj0iKTtpZihpLmxlbmd0aCE9Miljb250aW51ZTtpZihpWzFd PT0iIiljb250aW51ZTt0cnl7dT1kZWNvZGVVUklDb21wb25lbnQoaVswXSkudG9M b3dlckNhc2UoKSxlPWRlY29kZVVSSUNvbXBvbmVudChpWzFdKX1jYXRjaChoKXt1 PXVuZXNjYXBlKGlbMF0pLnRvTG93ZXJDYXNlKCksZT11bmVzY2FwZShpWzFdKX10 aGlzLnF1ZXJ5U3RyaW5nW3VdP3RoaXMucXVlcnlTdHJpbmdbdV0rPSIsIitlOnRo aXMucXVlcnlTdHJpbmdbdV09ZX10aGlzLm1vZGlmeVF1ZXJ5SXRlbXM9ZnVuY3Rp b24odCl7bi5leHRlbmQodGhpcy5xdWVyeVN0cmluZyx0KX19dmFyIHIsdCx1O2ku cHJvdG90eXBlPXtjb25zdHJ1Y3RvcjppLHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFy IHQ9IiI7cmV0dXJuIHRoaXMuc2NoZW1lJiYodCs9dGhpcy5zY2hlbWUrIjoiKSx0 aGlzLmF1dGhvcml0eSYmKHQrPSIvLyIrdGhpcy5hdXRob3JpdHkpLHRoaXMucGF0 aCYmKHQrPXRoaXMucGF0aCksdGhpcy5xdWVyeT1uLnBhcmFtKHRoaXMucXVlcnlT dHJpbmcpLHRoaXMucXVlcnkmJih0Kz0iPyIrbi5wYXJhbSh0aGlzLnF1ZXJ5U3Ry aW5nKSksdGhpcy5mcmFnbWVudCYmKHQrPSIjIit0aGlzLmZyYWdtZW50KSx0fX0s R1NTLlV0aWxpdHkuVVJJPWksdD0tMSx1PWZ1bmN0aW9uKGksZil7bi5hamF4KHt1 cmw6Zix0eXBlOiJIRUFEIixwcm9jZXNzRGF0YTohMSxzdWNjZXNzOmZ1bmN0aW9u KCl7bigiIyIraSkuYXR0cigic3JjIixmKSxuKCIjIitpKS5zaG93KCl9LHN0YXR1 c0NvZGU6ezQwNDpmdW5jdGlvbigpe2lmKHQ9PT1yLmxlbmd0aC0xKXtuKCIjIitp KS5yZW1vdmUoKTtyZXR1cm59dD10KzEsdShpLHJbdF0pfX19KX0sR1NTLlV0aWxp dHkuU2V0SW1hZ2VTcmM9ZnVuY3Rpb24obix0LGkpe3I9dC5zcGxpdCgifCIpLHUo bixpKX0sR1NTLlV0aWxpdHkuRGlzcGxheVNzYkFkPWZ1bmN0aW9uKCl7dmFyIHQ9 ZmV0Y2hjb29raWV2YWwoIk1VSUQiKTtpZighdClyZXR1cm47bihkb2N1bWVudCku cmVhZHkoZnVuY3Rpb24oKXtmKHQsZnVuY3Rpb24oKXtuKCIjZGl2U3NiQWRDb250 ZW50Iikuc2hvdygpfSl9KX0sR1NTLlV0aWxpdHkuVHJ5UmVkaXJlY3RUb1NzYj1m dW5jdGlvbihuKXt2YXIgaT1mZXRjaGNvb2tpZXZhbCgic3NidmlzaXRlZCIpLHI9 ZmV0Y2hjb29raWV2YWwoInNzYnJlbWluZGVyIiksdD1mZXRjaGNvb2tpZXZhbCgi TVVJRCIpO2k9PT1udWxsJiZyPT09bnVsbCYmdCYmZih0LGZ1bmN0aW9uKCl7c2Vs Zi5sb2NhdGlvbj1ufSl9O3ZhciBmPWZ1bmN0aW9uKHQsaSl7bi5nZXQoIi9jb250 ZW50L09wdFNlcnZpY2UuYXNoeCIsbnVsbCxmdW5jdGlvbihuKXtvKHQsbiksZShu LCIsIiwiSXNTbWFsbE1lZGl1bUJ1c2luZXNzIikmJmkoKX0pfSxlPWZ1bmN0aW9u KG4sdCxpKXtmb3IodmFyIHU9bi5zcGxpdCh0KSxmPSExLHI9MDtyPHUubGVuZ3Ro O3IrPTEpaWYodVtyXT09PWkpe2Y9ITA7YnJlYWt9cmV0dXJuIGZ9LG89ZnVuY3Rp b24odCxpKXt2YXIgcj1uZXcgRGF0ZSx1PXIudG9EYXRlU3RyaW5nKCksZj0iU1NJ RD0yNSZSZXF1ZXN0RGF0ZT0iK3UrIiZVcmw9IitlbmNvZGVVUklDb21wb25lbnQo U3RhdHNEb3ROZXQudXJsKSsiJkZsZXhpZD0xJkZsZXh2YWx1ZTI9U1NCT1BUJkZs ZXh2YWx1ZTM9Iit0KyImRmxleHZhbHVlND0iK2krIiZTaXRlQ3VsdHVyZT0iK1N0 YXRzRG90TmV0LlNpdGVDdWx0dXJlKyImQ29udGVudEN1bHR1cmU9IitTdGF0c0Rv dE5ldC5Db250ZW50Q3VsdHVyZSsiJkNvbnRlbnRJRD0iK1N0YXRzRG90TmV0LmNv bnRlbnRJZCsiJkNvbnRlbnRUeXBlPSIrU3RhdHNEb3ROZXQuY29udGVudFR5cGUr IiZBY3RpdmVEd2VsbFRpbWU9IitTdGF0c0RvdE5ldC5hY3RpdmVEd2VsbFRpbWUr IiZFdmVudFNlcU5vPSIrU3RhdHNEb3ROZXQuZXZlbnRTZXFObztuLmFqYXgoe3Vy bDoiL2x0cy9kZWZhdWx0LmFzcHgiLGRhdGE6Zn0pfX0oalF1ZXJ5KTs= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=survey.js Content-Type: application/x-javascript; name=survey.js Content-Location: http://support.microsoft.com/common/script/fx/survey.js?80 Content-Transfer-Encoding: Base64 aWYgKCF3aW5kb3cuTVMpDQp7DQoJd2luZG93Lk1TID0ge307DQp9DQoNCmlmICgh TVMuU3VwcG9ydCkNCnsNCglNUy5TdXBwb3J0ID0ge307DQp9DQoNCmlmICghTVMu U3VwcG9ydC5GbXMpDQp7DQoJTVMuU3VwcG9ydC5GbXMgPSB7fTsNCn0NCg0KaWYg KCFNUy5TdXBwb3J0LkZtcy5TdXJ2ZXkpDQp7DQoJTVMuU3VwcG9ydC5GbXMuVXRp bHMgPQ0KCXsNCgkJZmluZENoaWxkTm9kZXM6IGZ1bmN0aW9uIChwYXJlbnQsIGV2 YWx1YXRvcikNCgkJew0KCQkJdmFyIGVsZW1lbnRzID0gW107DQoNCgkJCWlmIChl dmFsdWF0b3IocGFyZW50KSkNCgkJCXsNCgkJCQllbGVtZW50cy5wdXNoKHBhcmVu dCk7DQoJCQl9DQoNCgkJCWlmIChwYXJlbnQgIT0gbnVsbCAmJiBwYXJlbnQuY2hp bGROb2RlcykNCgkJCXsNCgkJCQlmb3IgKHZhciBpID0gMDsgaSA8IHBhcmVudC5j aGlsZE5vZGVzLmxlbmd0aDsgKytpKQ0KCQkJCXsNCgkJCQkJdmFyIGVzID0gYXJn dW1lbnRzLmNhbGxlZShwYXJlbnQuY2hpbGROb2Rlc1tpXSwgZXZhbHVhdG9yKTsN CgkJCQkJZm9yICh2YXIgaiA9IDA7IGogPCBlcy5sZW5ndGg7ICsraikNCgkJCQkJ ew0KCQkJCQkJZWxlbWVudHMucHVzaChlc1tqXSk7DQoJCQkJCX0NCgkJCQl9DQoJ CQl9DQoNCgkJCXJldHVybiBlbGVtZW50czsNCgkJfSwNCg0KCQlmaW5kRmlyc3RD aGlsZDogZnVuY3Rpb24gKHBhcmVudCwgZXZhbHVhdG9yKQ0KCQl7DQoJCQlpZiAo ZXZhbHVhdG9yKHBhcmVudCkpDQoJCQl7DQoJCQkJcmV0dXJuIHBhcmVudDsNCgkJ CX0NCgkJCWVsc2UgaWYgKHBhcmVudCAhPSBudWxsICYmIHBhcmVudC5jaGlsZE5v ZGVzKQ0KCQkJew0KCQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBwYXJl bnQuY2hpbGROb2Rlcy5sZW5ndGg7ICsraW5kZXgpDQoJCQkJew0KCQkJCQl2YXIg ZSA9IGFyZ3VtZW50cy5jYWxsZWUocGFyZW50LmNoaWxkTm9kZXNbaW5kZXhdLCBl dmFsdWF0b3IpOw0KDQoJCQkJCWlmIChlICE9IG51bGwpDQoJCQkJCXsNCgkJCQkJ CXJldHVybiBlOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4gbnVs bDsNCgkJfSwNCg0KCQlnZXRDaGlsZEJ5SWQ6IGZ1bmN0aW9uIChwYXJlbnQsIGNo aWxkSWQpDQoJCXsNCgkJCWlmIChwYXJlbnQgPT0gbnVsbCkNCgkJCXsNCgkJCQly ZXR1cm4gbnVsbDsNCgkJCX0NCgkJCWVsc2UgaWYgKHBhcmVudC5nZXRFbGVtZW50 QnlJZCkNCgkJCXsNCgkJCQlyZXR1cm4gcGFyZW50LmdldEVsZW1lbnRCeUlkKGNo aWxkSWQpOw0KCQkJfQ0KCQkJZWxzZSBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3Ip DQoJCQl7DQoJCQkJcmV0dXJuIHBhcmVudC5xdWVyeVNlbGVjdG9yKCIjIiArIGNo aWxkSWQpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCXJldHVybiBNUy5TdXBw b3J0LkZtcy5VdGlscy5maW5kRmlyc3RDaGlsZCgNCgkJCQkJcGFyZW50LA0KCQkJ CQlmdW5jdGlvbiAocGFyZW50KQ0KCQkJCQl7DQoJCQkJCQlyZXR1cm4gKHBhcmVu dCAhPSBudWxsICYmIHBhcmVudC5pZCA9PSBjaGlsZElkKTsNCgkJCQkJfQ0KCQkJ CSk7DQoJCQl9DQoNCgkJfSwNCg0KCQlnZXRDaGlsZEJ5QXR0cmlidXRlOiBmdW5j dGlvbiAocGFyZW50LCBhdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGVWYWx1ZSkNCgkJ ew0KCQkJaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yKQ0KCQkJew0KCQkJCXJldHVy biBwYXJlbnQucXVlcnlTZWxlY3RvcigiWyIgKyBhdHRyaWJ1dGVOYW1lICsgIj0i ICsgYXR0cmlidXRlVmFsdWUgKyAiXSIpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0K CQkJCXJldHVybiBNUy5TdXBwb3J0LkZtcy5VdGlscy5maW5kRmlyc3RDaGlsZCgN CgkJCQkJcGFyZW50LA0KCQkJCQlmdW5jdGlvbiAocGFyZW50KQ0KCQkJCQl7DQoJ CQkJCQlyZXR1cm4gcGFyZW50ICE9IG51bGwgJiYgcGFyZW50LmdldEF0dHJpYnV0 ZSA/IChwYXJlbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpID09IGF0dHJp YnV0ZVZhbHVlKSA6IGZhbHNlOw0KCQkJCQl9DQoJCQkJKTsNCgkJCX0NCgkJfSwN Cg0KCQlnZXRDaGlsZE5vZGVzQnlBdHRyaWJ1dGU6IGZ1bmN0aW9uIChwYXJlbnQs IGF0dHJpYnV0ZU5hbWUsIGF0dHJpYnV0ZVZhbHVlKQ0KCQl7DQoJCQlpZiAocGFy ZW50LnF1ZXJ5U2VsZWN0b3JBbGwpDQoJCQl7DQoJCQkJcmV0dXJuIHBhcmVudC5x dWVyeVNlbGVjdG9yQWxsKCJbIiArIGF0dHJpYnV0ZU5hbWUgKyAiPSIgKyBhdHRy aWJ1dGVWYWx1ZSArICJdIik7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJcmV0 dXJuIE1TLlN1cHBvcnQuRm1zLlV0aWxzLmZpbmRDaGlsZE5vZGVzKA0KCQkJCQlw YXJlbnQsDQoJCQkJCWZ1bmN0aW9uIChwYXJlbnQpDQoJCQkJCXsNCgkJCQkJCXJl dHVybiBwYXJlbnQgIT0gbnVsbCAmJiBwYXJlbnQuZ2V0QXR0cmlidXRlID8gKHBh cmVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkgPT0gYXR0cmlidXRlVmFs dWUpIDogZmFsc2U7DQoJCQkJCX0NCgkJCQkpOw0KCQkJfQ0KCQl9LA0KDQoJCWdl dENoaWxkQnlOYW1lOiBmdW5jdGlvbiAocGFyZW50LCBuYW1lKQ0KCQl7DQoJCQly ZXR1cm4gTVMuU3VwcG9ydC5GbXMuVXRpbHMuZ2V0Q2hpbGRCeUF0dHJpYnV0ZShw YXJlbnQsICJuYW1lIiwgbmFtZSk7DQoJCX0sDQoNCgkJZ2V0Q2hpbGRCeVRhZ05h bWU6IGZ1bmN0aW9uIChwYXJlbnQsIHRhZ05hbWUpDQoJCXsNCgkJCWlmIChwYXJl bnQucXVlcnlTZWxlY3RvcikNCgkJCXsNCgkJCQlyZXR1cm4gcGFyZW50LnF1ZXJ5 U2VsZWN0b3IodGFnTmFtZSk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJcmV0 dXJuIE1TLlN1cHBvcnQuRm1zLlV0aWxzLmZpbmRGaXJzdENoaWxkKA0KCQkJCQlw YXJlbnQsDQoJCQkJCWZ1bmN0aW9uIChlKQ0KCQkJCQl7DQoJCQkJCQlyZXR1cm4g ZSAmJiBlLnRhZ05hbWUgJiYgZS50YWdOYW1lLnRvVXBwZXJDYXNlKCkgPT0gdGFn TmFtZS50b1VwcGVyQ2FzZSgpOw0KCQkJCQl9DQoJCQkJKTsNCgkJCX0NCgkJfSwN Cg0KCQlnZXRDaGlsZE5vZGVzQnlDbGFzczogZnVuY3Rpb24gKHBhcmVudCwgY2xh c3NOYW1lKQ0KCQl7DQoJCQlpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3JBbGwpDQoJ CQl7DQoJCQkJcmV0dXJuIHBhcmVudC5xdWVyeVNlbGVjdG9yQWxsKCIuIiArIGNs YXNzTmFtZSk7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJcmV0dXJuIE1TLlN1 cHBvcnQuRm1zLlV0aWxzLmZpbmRDaGlsZE5vZGVzKA0KCQkJCQlwYXJlbnQsDQoJ CQkJCWZ1bmN0aW9uIChlKQ0KCQkJCQl7DQoJCQkJCQlyZXR1cm4gTVMuU3VwcG9y dC5GbXMuVXRpbHMuaGFzQ2xhc3MoZSwgY2xhc3NOYW1lKTsNCgkJCQkJfQ0KCQkJ CSk7DQoJCQl9DQoJCX0sDQoNCgkJaXNBbmNlc3Rvck9mOiBmdW5jdGlvbiAoYW5j ZXN0b3IsIHBvc3Rlcml0eSkNCgkJew0KCQkJaWYgKGFuY2VzdG9yLmNvbnRhaW5z KQ0KCQkJew0KCQkJCXJldHVybiBhbmNlc3Rvci5jb250YWlucyhwb3N0ZXJpdHkp Ow0KCQkJfQ0KDQoJCQl2YXIgcGFyZW50ID0gcG9zdGVyaXR5Ow0KCQkJd2hpbGUg KHBhcmVudCAhPSBudWxsKQ0KCQkJew0KCQkJCWlmIChhbmNlc3RvciA9PSBwYXJl bnQpDQoJCQkJew0KCQkJCQlyZXR1cm4gdHJ1ZTsNCgkJCQl9DQoJCQkJcGFyZW50 ID0gcGFyZW50LnBhcmVudE5vZGU7DQoJCQl9DQoNCgkJCXJldHVybiBmYWxzZTsN CgkJfSwNCg0KCQlyYW5kb21pemU6IGZ1bmN0aW9uIChhcnJheSkNCgkJew0KCQkJ dmFyIGxlbiA9IGFycmF5Lmxlbmd0aDsNCgkJCWZvciAodmFyIGkgPSAwOyBpIDwg bGVuOyArK2kpDQoJCQl7DQoJCQkJdmFyIHggPSBNYXRoLmZsb29yKE1hdGgucmFu ZG9tKCkgKiAobGVuIC0gaSkpICsgaTsNCg0KCQkJCWlmICh4ICE9IGkpDQoJCQkJ ew0KCQkJCQl2YXIgdCA9IGFycmF5W2ldOw0KCQkJCQlhcnJheVtpXSA9IGFycmF5 W3hdOw0KCQkJCQlhcnJheVt4XSA9IHQ7DQoJCQkJfQ0KCQkJfQ0KCQl9LA0KDQoJ CXN3YXBOb2RlOiBmdW5jdGlvbiAobm9kZTEsIG5vZGUyKQ0KCQl7DQoJCQlpZiAo bm9kZTEuc3dhcE5vZGUpDQoJCQl7DQoJCQkJbm9kZTEuc3dhcE5vZGUobm9kZTIp Ow0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCXZhciBwYXJlbnQxID0gbm9kZTEu cGFyZW50Tm9kZTsNCgkJCQl2YXIgcGFyZW50MiA9IG5vZGUyLnBhcmVudE5vZGU7 DQoNCgkJCQl2YXIgczIgPSBub2RlMi5uZXh0U2libGluZzsNCg0KCQkJCXBhcmVu dDEuaW5zZXJ0QmVmb3JlKG5vZGUyLCBub2RlMSk7DQoNCgkJCQlpZiAoczIpDQoJ CQkJew0KCQkJCQlwYXJlbnQyLmluc2VydEJlZm9yZShub2RlMSwgczIpOw0KCQkJ CX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQlwYXJlbnQyLmFwcGVuZENoaWxkKG5v ZGUxKTsNCgkJCQl9DQoJCQl9DQoJCX0sDQoNCgkJYWRkRXZlbnRIYW5kbGVyOiBm dW5jdGlvbiAoZSwgZXZlbnROYW1lLCBmcCkNCgkJew0KCQkJaWYgKGUuYWRkRXZl bnRMaXN0ZW5lcikNCgkJCXsNCgkJCQllLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRO YW1lLCBmcCwgZmFsc2UpOw0KCQkJfQ0KCQkJZWxzZSBpZiAoZS5hdHRhY2hFdmVu dCkNCgkJCXsNCgkJCQllLmF0dGFjaEV2ZW50KCJvbiIgKyBldmVudE5hbWUsIGZw KTsNCgkJCX0NCgkJfSwNCg0KCQlyZW1vdmVFdmVudEhhbmRsZXI6IGZ1bmN0aW9u IChlLCBldmVudE5hbWUsIGZwKQ0KCQl7DQoJCQlpZiAoZS5yZW1vdmVFdmVudExp c3RlbmVyKQ0KCQkJew0KCQkJCWUucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5h bWUsIGZwLCBmYWxzZSk7DQoJCQl9DQoJCQllbHNlIGlmIChlLmRldGFjaEV2ZW50 KQ0KCQkJew0KCQkJCWUuZGV0YWNoRXZlbnQoIm9uIiArIGV2ZW50TmFtZSwgZnAp Ow0KCQkJfQ0KCQl9LA0KDQoJCWdldENvb2tpZTogZnVuY3Rpb24gKGtleSkNCgkJ ew0KCQkJdmFyIGVudGl0aWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7 DQoJCQlmb3IgKHZhciBpID0gMDsgaSA8IGVudGl0aWVzLmxlbmd0aDsgKytpKQ0K CQkJew0KCQkJCXZhciBqID0gZW50aXRpZXNbaV0uaW5kZXhPZigiPSIpOw0KCQkJ CXZhciBzID0gZW50aXRpZXNbaV0uc3Vic3RyaW5nKDAsIGopOw0KCQkJCWlmIChz ICE9ICIiICYmIChzID09IGtleSB8fCBzID09ICIgIiArIGtleSkpDQoJCQkJew0K CQkJCQlyZXR1cm4gZW50aXRpZXNbaV0uc3Vic3RyaW5nKGogKyAxKTsNCgkJCQl9 DQoJCQl9DQoJCQlyZXR1cm4gbnVsbDsNCgkJfSwNCg0KCQlzZXRDb29raWU6IGZ1 bmN0aW9uIChrZXksIHZhbHVlLCBleHBpcmVzLCBkb21haW4sIHBhdGgpDQoJCXsN CgkJCWRvbWFpbiA9IGRvbWFpbiB8fCAodHlwZW9mIChnQ29va2llRG9tYWluKSAh PSAidW5kZWZpbmVkIiA/IChnQ29va2llRG9tYWluIHx8IGRvY3VtZW50LmRvbWFp bikgOiBkb2N1bWVudC5kb21haW4pOw0KCQkJcGF0aCA9IHBhdGggfHwgIi8iOw0K CQkJZG9jdW1lbnQuY29va2llID0ga2V5ICsgIj0iICsgdmFsdWUgKyAiOyBkb21h aW49IiArIGRvbWFpbiArICI7IHBhdGg9IiArIHBhdGggKyAiOyAiICsgKGV4cGly ZXMgPyAoImV4cGlyZXM9IiArIGV4cGlyZXMudG9HTVRTdHJpbmcoKSArICI7Iikg OiAiIik7DQoJCX0sDQoNCgkJc2V0U2Vzc2lvbkNvb2tpZTogZnVuY3Rpb24gKGtl eSwgdmFsdWUsIGRvbWFpbiwgcGF0aCkNCgkJew0KCQkJdGhpcy5zZXRDb29raWUo a2V5LCB2YWx1ZSwgbnVsbCwgZG9tYWluLCBwYXRoKTsNCgkJfSwNCg0KCQlodG1s RW5jb2RlOiBmdW5jdGlvbiAoc291cmNlU3RyaW5nKQ0KCQl7DQoJCQl2YXIgZW5j b2RlZFN0cmluZyA9ICIiOw0KCQkJaWYgKHNvdXJjZVN0cmluZy5sZW5ndGggPT0g MCkNCgkJCXsNCgkJCQlyZXR1cm4gIiI7DQoJCQl9DQoNCgkJCWZvciAodmFyIGkg PSAwOyBpIDwgc291cmNlU3RyaW5nLmxlbmd0aDsgaSsrKQ0KCQkJew0KCQkJCXN3 aXRjaCAoc291cmNlU3RyaW5nLnN1YnN0cihpLCAxKSkNCgkJCQl7DQoJCQkJCWNh c2UgIjwiOg0KCQkJCQkJZW5jb2RlZFN0cmluZyArPSAiJmx0OyI7DQoJCQkJCQli cmVhazsNCgkJCQkJY2FzZSAiPiI6DQoJCQkJCQllbmNvZGVkU3RyaW5nICs9ICIm Z3Q7IjsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICImIjoNCgkJCQkJCWVuY29k ZWRTdHJpbmcgKz0gIiZhbXA7IjsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJc IiI6DQoJCQkJCQllbmNvZGVkU3RyaW5nICs9ICImcXVvdDsiOw0KCQkJCQkJYnJl YWs7DQoJCQkJCWNhc2UgIiAiOg0KCQkJCQkJZW5jb2RlZFN0cmluZyArPSAiJm5i c3A7IjsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICJcbiI6DQoJCQkJCQllbmNv ZGVkU3RyaW5nICs9ICI8YnIgLz4iOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWRlZmF1 bHQ6DQoJCQkJCQllbmNvZGVkU3RyaW5nICs9IHNvdXJjZVN0cmluZy5zdWJzdHIo aSwgMSk7DQoJCQkJCQlicmVhazsNCgkJCQl9DQoJCQl9DQoNCgkJCXJldHVybiBl bmNvZGVkU3RyaW5nOw0KCQl9LA0KDQoJCWNoYXJhY3RlckVuY29kZTogZnVuY3Rp b24gKHNvdXJjZVN0cmluZykNCgkJew0KCQkJdmFyIGVuY29kZWRTdHJpbmcgPSAi IjsNCgkJCWlmIChzb3VyY2VTdHJpbmcubGVuZ3RoID09IDApDQoJCQl7DQoJCQkJ cmV0dXJuICIiOw0KCQkJfQ0KDQoJCQlmb3IgKHZhciBpID0gMDsgaSA8IHNvdXJj ZVN0cmluZy5sZW5ndGg7IGkrKykNCgkJCXsNCgkJCQlzd2l0Y2ggKHNvdXJjZVN0 cmluZy5zdWJzdHIoaSwgMSkpDQoJCQkJew0KCQkJCQljYXNlICIkIjoNCgkJCQkJ CWVuY29kZWRTdHJpbmcgKz0gIiQkIjsNCgkJCQkJCWJyZWFrOw0KCQkJCQlkZWZh dWx0Og0KCQkJCQkJZW5jb2RlZFN0cmluZyArPSBzb3VyY2VTdHJpbmcuc3Vic3Ry KGksIDEpOw0KCQkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4g ZW5jb2RlZFN0cmluZzsNCgkJfSwNCg0KCQloaWRlRWxlbWVudDogZnVuY3Rpb24g KGUpDQoJCXsNCgkJCWUuc3R5bGUuZGlzcGxheSA9ICJub25lIjsNCgkJfSwNCg0K CQlkaXNwbGF5VGFibGVSb3c6IGZ1bmN0aW9uIChyb3cpDQoJCXsNCgkJCXRyeQ0K CQkJew0KCQkJCXJvdy5zdHlsZS5kaXNwbGF5ID0gInRhYmxlLXJvdyI7DQoJCQl9 DQoJCQljYXRjaCAoZXgpDQoJCQl7DQoJCQkJcm93LnN0eWxlLmRpc3BsYXkgPSAi YmxvY2siOw0KCQkJfQ0KCQl9LA0KDQoJCWRpc3BsYXlUYWJsZUNlbGw6IGZ1bmN0 aW9uIChjZWxsKQ0KCQl7DQoJCQl0cnkNCgkJCXsNCgkJCQljZWxsLnN0eWxlLmRp c3BsYXkgPSAidGFibGUtY2VsbCI7DQoJCQl9DQoJCQljYXRjaCAoZXgpDQoJCQl7 DQoJCQkJY2VsbC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsNCgkJCX0NCgkJfSwN Cg0KCQlnZXRVcmxQYXJhbWV0ZXJzOiBmdW5jdGlvbiAoKQ0KCQl7DQoJCQl2YXIg cGFyYW1ldGVycyA9IHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc3Vic3RyaW5nKDEp LnNwbGl0KCcmJyk7DQoJCQl2YXIgcXVlcnlGaWVsZHMgPSB7fTsNCgkJCWZvciAo dmFyIGkgPSAwOyBpIDwgcGFyYW1ldGVycy5sZW5ndGg7IGkrKykNCgkJCXsNCgkJ CQl2YXIgcGFyYW0gPSBwYXJhbWV0ZXJzW2ldOw0KCQkJCXZhciBpbmRleCA9IHBh cmFtLmluZGV4T2YoJz0nKTsNCgkJCQl2YXIga2V5ID0gZGVjb2RlVVJJQ29tcG9u ZW50KGluZGV4ICE9IC0xID8gcGFyYW0uc3Vic3RyaW5nKDAsIGluZGV4KS50b0xv d2VyQ2FzZSgpIDogcGFyYW0pOw0KCQkJCXZhciB2YWx1ZSA9IGluZGV4ICE9IC0x ID8gZGVjb2RlVVJJQ29tcG9uZW50KHBhcmFtLnN1YnN0cmluZyhpbmRleCArIDEs IHBhcmFtLmxlbmd0aCkpIDogIiI7DQoJCQkJaWYgKHF1ZXJ5RmllbGRzW2tleV0p DQoJCQkJew0KCQkJCQlxdWVyeUZpZWxkc1trZXldICs9ICIsIiArIHZhbHVlOw0K CQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQlxdWVyeUZpZWxkc1trZXldID0g dmFsdWU7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4gcXVlcnlGaWVsZHM7DQoJ CX0sDQoNCgkJaGFzQ2xhc3M6IGZ1bmN0aW9uIChlLCBjbGFzc05hbWUpDQoJCXsN CgkJCWlmICghZSB8fCB0eXBlb2YgKGUuY2xhc3NOYW1lKSAhPSAic3RyaW5nIiB8 fCAhY2xhc3NOYW1lIHx8IHR5cGVvZiAoY2xhc3NOYW1lKSAhPSAic3RyaW5nIikN CgkJCXsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoNCgkJCXZhciBjbGFzc2Vz ID0gIiAiICsgZS5jbGFzc05hbWUudG9VcHBlckNhc2UoKSArICIgIjsNCgkJCXJl dHVybiBjbGFzc2VzLmluZGV4T2YoIiAiICsgY2xhc3NOYW1lLnRvVXBwZXJDYXNl KCkgKyAiICIpICE9IC0xOw0KCQl9LA0KDQoJCWFkZENsYXNzOiBmdW5jdGlvbiAo ZSwgY2xhc3NOYW1lKQ0KCQl7DQoJCQlpZiAoIWUgfHwgdHlwZW9mIChlLmNsYXNz TmFtZSkgIT0gInN0cmluZyIgfHwgIWNsYXNzTmFtZSB8fCB0eXBlb2YgKGNsYXNz TmFtZSkgIT0gInN0cmluZyIgfHwgTVMuU3VwcG9ydC5GbXMuVXRpbHMuaGFzQ2xh c3MoZSwgY2xhc3NOYW1lKSkNCgkJCXsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJ CWUuY2xhc3NOYW1lICs9ICIgIiArIGNsYXNzTmFtZTsNCgkJfSwNCg0KCQlyZW1v dmVDbGFzczogZnVuY3Rpb24gKGUsIGNsYXNzTmFtZXMpDQoJCXsNCgkJCWlmICgh ZSB8fCB0eXBlb2YgKGUuY2xhc3NOYW1lKSAhPSAic3RyaW5nIiB8fCAhY2xhc3NO YW1lcyB8fCB0eXBlb2YgKGNsYXNzTmFtZXMpICE9ICJzdHJpbmciKQ0KCQkJew0K CQkJCXJldHVybjsNCgkJCX0NCg0KCQkJdmFyIHRvQmVSZW1vdmVkID0gY2xhc3NO YW1lcy5zcGxpdCgvXHMrLyk7DQoJCQl2YXIgY2xhc3NOYW1lID0gKCIgIiArIGUu Y2xhc3NOYW1lICsgIiAiKS5yZXBsYWNlKC9bXG5cdFxyXS9nLCAiICIpOw0KCQkJ dmFyIGMsIGNsOw0KCQkJZm9yIChjID0gMCwgY2wgPSB0b0JlUmVtb3ZlZC5sZW5n dGg7IGMgPCBjbDsgYysrKQ0KCQkJew0KCQkJCWNsYXNzTmFtZSA9IGNsYXNzTmFt ZS5yZXBsYWNlKCIgIiArIHRvQmVSZW1vdmVkW2NdICsgIiAiLCAiICIpOw0KCQkJ fQ0KDQoJCQllLmNsYXNzTmFtZSA9IGNsYXNzTmFtZS5yZXBsYWNlKC8oXlxzKil8 KFxzKiQpL2csICIiKTsNCgkJfSwNCg0KCQlnZXRUb2RheTogZnVuY3Rpb24gKCkN CgkJew0KCQkJdmFyIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsNCgkJCXJldHVy biAoY3VycmVudERhdGUuZ2V0RnVsbFllYXIoKSArICItIiArICgiMCIgKyAoY3Vy cmVudERhdGUuZ2V0TW9udGgoKSArIDEpKS5zbGljZSgtMikgKyAiLSIgKyAoIjAi ICsgY3VycmVudERhdGUuZ2V0RGF0ZSgpKS5zbGljZSgtMikpOw0KCQl9DQoNCgl9 Ow0KDQoJTVMuU3VwcG9ydC5GbXMuVmFsaWRhdGVSZXN1bHQgPSBmdW5jdGlvbiAo aXNWYWxpZCwgZXJyb3JNZXNzYWdlKQ0KCXsNCgkJdGhpcy5pc1ZhbGlkID0gaXNW YWxpZDsNCgkJdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2U7DQoJfQ0K DQoJTVMuU3VwcG9ydC5GbXMuU3VydmV5RXZlbnREZWxlZ2F0ZSA9IGZ1bmN0aW9u IChvYmplY3QsIG1ldGhvZCkNCgl7DQoJCXRoaXMub2JqZWN0ID0gb2JqZWN0Ow0K CQl0aGlzLm1ldGhvZCA9IG1ldGhvZDsNCg0KCQl0aGlzLmludm9rZSA9IGZ1bmN0 aW9uICgpDQoJCXsNCgkJCWlmIChtZXRob2QgIT0gbnVsbCkNCgkJCXsNCgkJCQly ZXR1cm4gbWV0aG9kLmFwcGx5KG9iamVjdCwgYXJndW1lbnRzKTsNCgkJCX0NCgkJ fQ0KDQoJCXRoaXMuZXF1YWwgPSBmdW5jdGlvbiAoYW5vdGhlcikNCgkJew0KCQkJ cmV0dXJuIHRoaXMub2JqZWN0ID09IGFub3RoZXIub2JqZWN0ICYmIHRoaXMubWV0 aG9kID09IGFub3RoZXIubWV0aG9kOw0KCQl9DQoJfQ0KDQoJTVMuU3VwcG9ydC5G bXMuU3VydmV5RXZlbnQgPSBmdW5jdGlvbiAoKQ0KCXsNCgkJdmFyIGhhbmRsZXJz ID0gW107DQoNCgkJdGhpcy5hZGQgPSBmdW5jdGlvbiAoZGVsZWdhdGUpDQoJCXsN CgkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBoYW5kbGVycy5sZW5ndGg7 ICsraW5kZXgpDQoJCQl7DQoJCQkJaWYgKGhhbmRsZXJzW2luZGV4XS5lcXVhbChk ZWxlZ2F0ZSkpDQoJCQkJew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJfQ0KDQoJ CQloYW5kbGVycy5wdXNoKGRlbGVnYXRlKTsNCgkJfQ0KDQoJCXRoaXMucmVtb3Zl ID0gZnVuY3Rpb24gKGRlbGVnYXRlKQ0KCQl7DQoJCQlmb3IgKHZhciBpbmRleCA9 IDA7IGluZGV4IDwgaGFuZGxlcnMubGVuZ3RoOyArK2luZGV4KQ0KCQkJew0KCQkJ CWlmIChoYW5kbGVyc1tpbmRleF0uZXF1YWwoZGVsZWdhdGUpKQ0KCQkJCXsNCgkJ CQkJaGFuZGxlcnMuc3BsaWNlKGluZGV4LCAxKTsNCgkJCQkJcmV0dXJuOw0KCQkJ CX0NCgkJCX0NCgkJfQ0KDQoJCXRoaXMuZmlyZSA9IGZ1bmN0aW9uICgpDQoJCXsN CgkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBoYW5kbGVycy5sZW5ndGg7 ICsraW5kZXgpDQoJCQl7DQoJCQkJaWYgKCFoYW5kbGVyc1tpbmRleF0uaW52b2tl LmFwcGx5KG51bGwsIGFyZ3VtZW50cykpDQoJCQkJew0KCQkJCQlyZXR1cm4gZmFs c2U7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCX0NCg0K CU1TLlN1cHBvcnQuRm1zLlN1cnZleVF1ZXN0aW9uT3BlcmF0b3IgPQ0KCXsNCgkJ Ly8gY3JlYXJlIGEgb3BlcmF0b3IgZm9yIGEgZ2l2ZW4gcXVlc3Rpb24gdHlwZQ0K CQljcmVhdGU6IGZ1bmN0aW9uIChxdWVzdGlvbikNCgkJew0KCQkJdmFyIG9wZXJh dG9yUHJvdG90eXBlID0gbnVsbDsNCg0KCQkJc3dpdGNoIChxdWVzdGlvbi5nZXRR dWVzdGlvblR5cGUoKSkNCgkJCXsNCgkJCQljYXNlICJDSE9JQ0UiOg0KCQkJCWNh c2UgIkNIRUNLLUxJU1QiOg0KCQkJCQlvcGVyYXRvclByb3RvdHlwZSA9IHRoaXMu Y2hvaWNlT3BlcmF0b3I7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgIkNIT0lDRS1T RVEiOg0KCQkJCWNhc2UgIkNIT0lDRS1IT1IiOg0KCQkJCQlvcGVyYXRvclByb3Rv dHlwZSA9IHRoaXMuZ2hyT3BlcmF0b3I7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Ug IkNIT0lDRS1MSVNUIjoNCgkJCQljYXNlICJNVUxUSS1PUFRJT04iOg0KCQkJCQlv cGVyYXRvclByb3RvdHlwZSA9IHRoaXMuY2hvaWNlbGlzdE9wZXJhdG9yOw0KCQkJ CQlicmVhazsNCg0KCQkJCWNhc2UgIlRFWFQtTElORSI6DQoJCQkJY2FzZSAiUEFT U1dPUkQiOg0KCQkJCWNhc2UgIlRFWFQtQkxPQ0siOg0KCQkJCQlvcGVyYXRvclBy b3RvdHlwZSA9IHRoaXMudGV4dGJveE9wZXJhdG9yOw0KCQkJCQlicmVhazsNCgkJ CQljYXNlICJURVhULURBVEUiOg0KCQkJCQlvcGVyYXRvclByb3RvdHlwZSA9IHRo aXMuZGF0ZU9wZXJhdG9yOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICJURVhULU5V TUVSSUMiOg0KCQkJCQlvcGVyYXRvclByb3RvdHlwZSA9IHRoaXMubnVtZXJpY09w ZXJhdG9yOw0KCQkJCQlicmVhazsNCg0KCQkJCWNhc2UgIkxBQkVMIjoNCgkJCQlk ZWZhdWx0Og0KCQkJCQlvcGVyYXRvclByb3RvdHlwZSA9IHRoaXMuZW1wdHlPcGVy YXRvcjsNCgkJCQkJYnJlYWs7DQoJCQl9DQoNCgkJCXJldHVybiBuZXcgb3BlcmF0 b3JQcm90b3R5cGUocXVlc3Rpb24pOw0KCQl9LA0KDQoJCWVtcHR5T3BlcmF0b3I6 IGZ1bmN0aW9uIChxdWVzdGlvbikNCgkJew0KCQkJdGhpcy52YWxpZGF0ZVJlcXVp cmVkID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0N Cg0KCQkJdGhpcy52YWxpZGF0ZUlucHV0ID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJ CQlyZXR1cm4gbmV3IE1TLlN1cHBvcnQuRm1zLlZhbGlkYXRlUmVzdWx0KHRydWUp Ow0KCQkJfQ0KDQoJCQl0aGlzLnByZXBhcmUgPSBmdW5jdGlvbiAoKQ0KCQkJew0K CQkJfQ0KDQoJCQl0aGlzLnBvcHVsYXRlVmFyaWFibGVzID0gZnVuY3Rpb24gKCkN CgkJCXsNCgkJCQlyZXR1cm4gW107DQoJCQl9DQoNCgkJCXRoaXMucmFuZG9taXpl ID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCX0NCg0KCQkJdGhpcy5nZXRBbnN3ZXJz ID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQlyZXR1cm4gW107DQoJCQl9DQoNCgkJ CXRoaXMuc2F2ZSA9IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQl9DQoNCgkJCXRoaXMu cmVzdG9yZSA9IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQl9DQoNCgkJCXRoaXMuZ2V0 T3B0aW9uQnlJZCA9IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJcmV0dXJuIG51bGw7 DQoJCQl9DQoJCX0sDQoNCgkJdGV4dGJveE9wZXJhdG9yOiBmdW5jdGlvbiAocXVl c3Rpb24pDQoJCXsNCgkJCXZhciB0ZXh0Ym94ID0gcXVlc3Rpb24uZWxlbWVudHNb MF07DQoNCgkJCXRoaXMudmFsaWRhdGVSZXF1aXJlZCA9IGZ1bmN0aW9uICgpDQoJ CQl7DQoJCQkJcmV0dXJuIHRleHRib3gudmFsdWUgIT0gIiI7DQoJCQl9DQoNCgkJ CXRoaXMudmFsaWRhdGVJbnB1dCA9IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJcmV0 dXJuIG5ldyBNUy5TdXBwb3J0LkZtcy5WYWxpZGF0ZVJlc3VsdCh0cnVlKTsNCgkJ CX0NCg0KCQkJdGhpcy5wcmVwYXJlID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCX0N Cg0KCQkJdGhpcy5wb3B1bGF0ZVZhcmlhYmxlcyA9IGZ1bmN0aW9uICgpDQoJCQl7 DQoJCQkJdmFyIHZhcmlhYmxlcyA9IFtdOw0KDQoJCQkJdmFyIHZhcmlhYmxlID0g cXVlc3Rpb24uZG9tT2JqZWN0LmdldEF0dHJpYnV0ZSgidmFyIik7DQoNCgkJCQlp ZiAodmFyaWFibGUgIT0gbnVsbCAmJiB2YXJpYWJsZSAhPSAiIikNCgkJCQl7DQoJ CQkJCWlmICh0ZXh0Ym94LnZhbHVlICE9IG51bGwgJiYgdGV4dGJveC52YWx1ZSAh PSAiIikNCgkJCQkJew0KCQkJCQkJdmFyaWFibGVzW3ZhcmlhYmxlXSA9IHRleHRi b3gudmFsdWU7DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQl2YXJp YWJsZXNbdmFyaWFibGVdID0gbnVsbDsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCXJl dHVybiB2YXJpYWJsZXM7DQoJCQl9DQoNCgkJCXRoaXMuZ2V0T3B0aW9uQnlJZCA9 IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJcmV0dXJuIG51bGw7DQoJCQl9DQoNCgkJ CXRoaXMucmFuZG9taXplID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCX0NCg0KCQkJ dGhpcy5nZXRBbnN3ZXJzID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQl2YXIgYW5z d2VycyA9IFtdOw0KCQkJCXZhciB0ZXh0ID0gdGV4dGJveC52YWx1ZTsNCgkJCQlp ZiAodGV4dCAhPSBudWxsICYmIHRleHQgIT0gIiIpDQoJCQkJew0KCQkJCQlhbnN3 ZXJzLnB1c2goeyBpZDogMCwgdmFsdWU6IDAsIHRleHQ6IHRleHQgfSk7DQoJCQkJ fQ0KCQkJCXJldHVybiBhbnN3ZXJzOw0KCQkJfQ0KDQoJCQl2YXIgc2F2ZWRUZXh0 Ow0KDQoJCQl0aGlzLnNhdmUgPSBmdW5jdGlvbiAoKQ0KCQkJew0KCQkJCXNhdmVk VGV4dCA9IHRleHRib3gudmFsdWU7DQoJCQl9DQoNCgkJCXRoaXMucmVzdG9yZSA9 IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJdGV4dGJveC52YWx1ZSA9IHNhdmVkVGV4 dDsNCgkJCX0NCgkJfSwNCg0KCQlkYXRlT3BlcmF0b3I6IGZ1bmN0aW9uIChxdWVz dGlvbikNCgkJew0KCQkJdmFyIEZtcyA9IE1TLlN1cHBvcnQuRm1zOw0KCQkJdmFy IFV0aWxzID0gRm1zLlV0aWxzOw0KCQkJdmFyIFZhbGlkYXRlUmVzdWx0ID0gRm1z LlZhbGlkYXRlUmVzdWx0Ow0KDQoJCQl2YXIgYmFzZU9wZXJhdG9yID0gbmV3IEZt cy5TdXJ2ZXlRdWVzdGlvbk9wZXJhdG9yLnRleHRib3hPcGVyYXRvcihxdWVzdGlv bik7DQoJCQl2YXIgdGV4dGJveCA9IHF1ZXN0aW9uLmVsZW1lbnRzWzBdOw0KCQkJ dmFyIGRhdGVFcnJvclRleHQgPSB0ZXh0Ym94LmdldEF0dHJpYnV0ZSgiZGF0YS12 YWwtZGF0ZWVycm9ydGV4dCIpOw0KCQkJdGhpcy52YWxpZGF0ZVJlcXVpcmVkID0g ZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQlyZXR1cm4gYmFzZU9wZXJhdG9yLnZhbGlk YXRlUmVxdWlyZWQoKTsNCgkJCX0NCgkJCXRoaXMudmFsaWRhdGVJbnB1dCA9IGZ1 bmN0aW9uICgpDQoJCQl7DQoJCQkJdmFyIHZhbHVlU3RyaW5nID0gdGV4dGJveC52 YWx1ZTsNCgkJCQlpZiAodmFsdWVTdHJpbmcgIT0gIiIpDQoJCQkJew0KCQkJCQl2 YXIgcmUgPSAvXig/Oig/ITAwMDApWzAtOV17NH0oWy1dKSg/Oig/OjA/WzEtOV18 MVswLTJdKVwxKD86MD9bMS05XXwxWzAtOV18MlswLThdKXwoPzowP1sxMy05XXwx WzAtMl0pXDEoPzoyOXwzMCl8KD86MD9bMTM1NzhdfDFbMDJdKVwxKD86MzEpKXwo PzpbMC05XXsyfSg/OjBbNDhdfFsyNDY4XVswNDhdfFsxMzU3OV1bMjZdKXwoPzow WzQ4XXxbMjQ2OF1bMDQ4XXxbMTM1NzldWzI2XSkwMCkoWy1dKTA/MlwyKD86Mjkp KSQvaTsNCgkJCQkJaWYgKCEocmUudGVzdCh2YWx1ZVN0cmluZykpKQ0KCQkJCQl7 DQoJCQkJCQlyZXR1cm4gbmV3IFZhbGlkYXRlUmVzdWx0KGZhbHNlLCBkYXRlRXJy b3JUZXh0KTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlyZXR1cm4gbmV3IFZhbGlkYXRl UmVzdWx0KHRydWUpOw0KCQkJfQ0KDQoJCQl0aGlzLnByZXBhcmUgPSBmdW5jdGlv biAoKQ0KCQkJew0KCQkJCXJldHVybiBiYXNlT3BlcmF0b3IucHJlcGFyZSgpOw0K CQkJfQ0KDQoJCQl0aGlzLnBvcHVsYXRlVmFyaWFibGVzID0gZnVuY3Rpb24gKCkN CgkJCXsNCgkJCQlyZXR1cm4gYmFzZU9wZXJhdG9yLnBvcHVsYXRlVmFyaWFibGVz KCk7DQoJCQl9DQoNCgkJCXRoaXMuZ2V0T3B0aW9uQnlJZCA9IGZ1bmN0aW9uICgp DQoJCQl7DQoJCQkJcmV0dXJuIGJhc2VPcGVyYXRvci5nZXRPcHRpb25CeUlkKCk7 DQoJCQl9DQoNCgkJCXRoaXMucmFuZG9taXplID0gZnVuY3Rpb24gKCkNCgkJCXsN CgkJCQlyZXR1cm4gYmFzZU9wZXJhdG9yLnJhbmRvbWl6ZSgpOw0KCQkJfQ0KDQoJ CQl0aGlzLmdldEFuc3dlcnMgPSBmdW5jdGlvbiAoKQ0KCQkJew0KCQkJCXJldHVy biBiYXNlT3BlcmF0b3IuZ2V0QW5zd2VycygpOw0KCQkJfQ0KDQoJCQl0aGlzLnNh dmUgPSBmdW5jdGlvbiAoKQ0KCQkJew0KCQkJCXJldHVybiBiYXNlT3BlcmF0b3Iu c2F2ZSgpOw0KCQkJfQ0KDQoJCQl0aGlzLnJlc3RvcmUgPSBmdW5jdGlvbiAoKQ0K CQkJew0KCQkJCXJldHVybiBiYXNlT3BlcmF0b3IucmVzdG9yZSgpOw0KCQkJfQ0K DQoJCX0sDQoNCgkJbnVtZXJpY09wZXJhdG9yOiBmdW5jdGlvbiAocXVlc3Rpb24p DQoJCXsNCgkJCXZhciBGbXMgPSBNUy5TdXBwb3J0LkZtczsNCgkJCXZhciBVdGls cyA9IEZtcy5VdGlsczsNCgkJCXZhciBWYWxpZGF0ZVJlc3VsdCA9IEZtcy5WYWxp ZGF0ZVJlc3VsdDsNCg0KCQkJdmFyIGJhc2VPcGVyYXRvciA9IG5ldyBGbXMuU3Vy dmV5UXVlc3Rpb25PcGVyYXRvci50ZXh0Ym94T3BlcmF0b3IocXVlc3Rpb24pOw0K DQoJCQl2YXIgdGV4dGJveCA9IHF1ZXN0aW9uLmVsZW1lbnRzWzBdOw0KCQkJdmFy IGVuYWJsZUZsb2F0ID0gVXRpbHMuZ2V0Q2hpbGRCeU5hbWUocXVlc3Rpb24uZG9t T2JqZWN0LCAiZW5hYmxlRmxvYXQiKS52YWx1ZSA9PSAiMSIgPyB0cnVlIDogZmFs c2U7DQoJCQl2YXIgbWluVmFsdWUgPSB0ZXh0Ym94LmdldEF0dHJpYnV0ZSgibWlu Iik7DQoJCQl2YXIgbWF4VmFsdWUgPSB0ZXh0Ym94LmdldEF0dHJpYnV0ZSgibWF4 Iik7DQoJCQl2YXIgbnVtZXJpY0Vycm9yVGV4dCA9IFV0aWxzLmdldENoaWxkQnlO YW1lKHF1ZXN0aW9uLmRvbU9iamVjdCwgIm51bWVyaWNFcnJvclRleHQiKS52YWx1 ZTsNCg0KCQkJdGhpcy52YWxpZGF0ZVJlcXVpcmVkID0gZnVuY3Rpb24gKCkNCgkJ CXsNCgkJCQlyZXR1cm4gYmFzZU9wZXJhdG9yLnZhbGlkYXRlUmVxdWlyZWQoKTsN CgkJCX0NCg0KCQkJdGhpcy52YWxpZGF0ZUlucHV0ID0gZnVuY3Rpb24gKCkNCgkJ CXsNCgkJCQl2YXIgdmFsdWVTdHJpbmcgPSB0ZXh0Ym94LnZhbHVlOw0KCQkJCWlm ICh2YWx1ZVN0cmluZyAhPSAiIikNCgkJCQl7DQoJCQkJCXZhciBwYXJzZSA9IGVu YWJsZUZsb2F0ID8gcGFyc2VGbG9hdCA6IHBhcnNlSW50Ow0KDQoJCQkJCXZhciB2 YWx1ZSA9IHBhcnNlKHZhbHVlU3RyaW5nKTsNCg0KCQkJCQl2YXIgcmUgPSBlbmFi bGVGbG9hdCA/IC9eKFwrfC0pPygoXGQrKFwuXGQqKT8pfChcLlxkKykpKGUoXCt8 LSk/XGQrKT8kL2kgOiAvXihcK3wtKT9cZCskL2k7DQoNCgkJCQkJaWYgKGlzTmFO KHZhbHVlKQ0KCQkJCQkJfHwgKCFyZS50ZXN0KHZhbHVlU3RyaW5nKSkNCgkJCQkJ CXx8IChtaW5WYWx1ZSAhPSAiIiAmJiB2YWx1ZSA8IHBhcnNlKG1pblZhbHVlKSkN CgkJCQkJCXx8IChtYXhWYWx1ZSAhPSAiIiAmJiB2YWx1ZSA+IHBhcnNlKG1heFZh bHVlKSkNCgkJCQkJKQ0KCQkJCQl7DQoJCQkJCQlyZXR1cm4gbmV3IFZhbGlkYXRl UmVzdWx0KGZhbHNlLCBudW1lcmljRXJyb3JUZXh0KTsNCgkJCQkJfQ0KCQkJCX0N Cg0KCQkJCXJldHVybiBuZXcgVmFsaWRhdGVSZXN1bHQodHJ1ZSk7DQoJCQl9DQoN CgkJCXRoaXMucHJlcGFyZSA9IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJcmV0dXJu IGJhc2VPcGVyYXRvci5wcmVwYXJlKCk7DQoJCQl9DQoNCgkJCXRoaXMucG9wdWxh dGVWYXJpYWJsZXMgPSBmdW5jdGlvbiAoKQ0KCQkJew0KCQkJCXJldHVybiBiYXNl T3BlcmF0b3IucG9wdWxhdGVWYXJpYWJsZXMoKTsNCgkJCX0NCg0KCQkJdGhpcy5n ZXRPcHRpb25CeUlkID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQlyZXR1cm4gYmFz ZU9wZXJhdG9yLmdldE9wdGlvbkJ5SWQoKTsNCgkJCX0NCg0KCQkJdGhpcy5yYW5k b21pemUgPSBmdW5jdGlvbiAoKQ0KCQkJew0KCQkJCXJldHVybiBiYXNlT3BlcmF0 b3IucmFuZG9taXplKCk7DQoJCQl9DQoNCgkJCXRoaXMuZ2V0QW5zd2VycyA9IGZ1 bmN0aW9uICgpDQoJCQl7DQoJCQkJcmV0dXJuIGJhc2VPcGVyYXRvci5nZXRBbnN3 ZXJzKCk7DQoJCQl9DQoNCgkJCXRoaXMuc2F2ZSA9IGZ1bmN0aW9uICgpDQoJCQl7 DQoJCQkJcmV0dXJuIGJhc2VPcGVyYXRvci5zYXZlKCk7DQoJCQl9DQoNCgkJCXRo aXMucmVzdG9yZSA9IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJcmV0dXJuIGJhc2VP cGVyYXRvci5yZXN0b3JlKCk7DQoJCQl9DQoJCX0sDQoNCgkJY2hvaWNlT3BlcmF0 b3I6IGZ1bmN0aW9uIChxdWVzdGlvbikNCgkJew0KCQkJdmFyIFV0aWxzID0gTVMu U3VwcG9ydC5GbXMuVXRpbHM7DQoNCgkJCXZhciBsYXN0UmFkaW9JbmRleCA9IHF1 ZXN0aW9uLmVsZW1lbnRzLmxlbmd0aCAtIDE7DQoJCQl2YXIgb3B0aW9uYWxUZXh0 Qm94ID0gbnVsbDsNCg0KCQkJdmFyIGhhc09wdGlvbmFsVGV4dEJveCA9IGxhc3RS YWRpb0luZGV4ID49IDAgPyBxdWVzdGlvbi5lbGVtZW50c1tsYXN0UmFkaW9JbmRl eF0udHlwZS50b0xvd2VyQ2FzZSgpID09ICJ0ZXh0IiA6IGZhbHNlOw0KDQoJCQlp ZiAoaGFzT3B0aW9uYWxUZXh0Qm94KQ0KCQkJew0KCQkJCW9wdGlvbmFsVGV4dEJv eCA9IHF1ZXN0aW9uLmVsZW1lbnRzW2xhc3RSYWRpb0luZGV4XTsNCgkJCQktLWxh c3RSYWRpb0luZGV4Ow0KCQkJfQ0KDQoJCQl2YXIgcm93cyA9IG51bGw7DQoNCgkJ CWZ1bmN0aW9uIGZpbmRSb3dzKCkNCgkJCXsNCgkJCQl2YXIgdGFibGUgPSBVdGls cy5nZXRDaGlsZEJ5VGFnTmFtZShxdWVzdGlvbi5kb21PYmplY3QsICJUQUJMRSIp Ow0KDQoJCQkJaWYgKHRhYmxlICE9IG51bGwpDQoJCQkJew0KCQkJCQlyb3dzID0g dGFibGUucm93czsNCgkJCQl9DQoJCQl9DQoNCgkJCWZpbmRSb3dzKCk7DQoNCgkJ CWZ1bmN0aW9uIGhhbmRsZU9wdGlvbmFsVGV4dEJveChlKQ0KCQkJew0KCQkJCWlm IChoYXNPcHRpb25hbFRleHRCb3gpDQoJCQkJew0KCQkJCQlvcHRpb25hbFRleHRC b3guZGlzYWJsZWQgPSAhcXVlc3Rpb24uZWxlbWVudHNbbGFzdFJhZGlvSW5kZXhd LmNoZWNrZWQ7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlmdW5jdGlvbiBpc0V4Y2x1c2l2 ZU9wdGlvbihlKQ0KCQkJew0KCQkJCXJldHVybiBlICYmIGUudHlwZSA9PSAiY2hl Y2tib3giICYmIGUuZ2V0QXR0cmlidXRlICYmIGUuZ2V0QXR0cmlidXRlKCJleGNs dXNpdmUiKSA9PSAiMSI7DQoJCQl9DQoNCgkJCWZ1bmN0aW9uIGdldEVsZW1lbnRD b250YWluZXIoZSkNCgkJCXsNCgkJCQlyZXR1cm4gZS5wYXJlbnROb2RlLnBhcmVu dE5vZGUucGFyZW50Tm9kZS5wYXJlbnROb2RlOw0KCQkJfQ0KDQoJCQlmdW5jdGlv biBoYW5kbGVFeGNsdXNpdmVPcHRpb24oZXZlbnQpDQoJCQl7DQoJCQkJdmFyIGV2 dCA9IGV2ZW50IHx8IHdpbmRvdy5ldmVudDsNCgkJCQl2YXIgZWxlbWVudCA9IGV2 dC5zcmNFbGVtZW50IHx8IGV2dC50YXJnZXQ7DQoNCgkJCQlpZiAoaXNFeGNsdXNp dmVPcHRpb24oZWxlbWVudCkpDQoJCQkJew0KCQkJCQlpZiAoZWxlbWVudC5jaGVj a2VkKQ0KCQkJCQl7DQoJCQkJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDw9 IGxhc3RSYWRpb0luZGV4OyArK2luZGV4KQ0KCQkJCQkJew0KCQkJCQkJCXZhciBl ID0gcXVlc3Rpb24uZWxlbWVudHNbaW5kZXhdOw0KCQkJCQkJCWlmIChlICE9IGVs ZW1lbnQpDQoJCQkJCQkJew0KCQkJCQkJCQllLmNoZWNrZWQgPSBmYWxzZTsNCgkJ CQkJCQkJZS5kaXNhYmxlZCA9IHRydWU7DQoJCQkJCQkJCWdldEVsZW1lbnRDb250 YWluZXIoZSkuZGlzYWJsZWQgPSB0cnVlOw0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJ CQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCWZvciAodmFyIGluZGV4ID0g MDsgaW5kZXggPD0gbGFzdFJhZGlvSW5kZXg7ICsraW5kZXgpDQoJCQkJCQl7DQoJ CQkJCQkJdmFyIGUgPSBxdWVzdGlvbi5lbGVtZW50c1tpbmRleF07DQoJCQkJCQkJ aWYgKGUuZGlzYWJsZWQgPT0gdHJ1ZSkNCgkJCQkJCQl7DQoJCQkJCQkJCWUuZGlz YWJsZWQgPSBmYWxzZTsNCgkJCQkJCQkJZ2V0RWxlbWVudENvbnRhaW5lcihlKS5k aXNhYmxlZCA9IGZhbHNlOw0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJfQ0KCQkJ CX0NCgkJCX0NCg0KCQkJZnVuY3Rpb24gaGFuZGxlT3B0aW9uQ2xpY2soZSkNCgkJ CXsNCgkJCQloYW5kbGVFeGNsdXNpdmVPcHRpb24oZSk7DQoJCQkJaGFuZGxlT3B0 aW9uYWxUZXh0Qm94KGUpOw0KCQkJfQ0KDQoJCQlmb3IgKHZhciBpbmRleCA9IDA7 IGluZGV4IDw9IGxhc3RSYWRpb0luZGV4OyArK2luZGV4KQ0KCQkJew0KCQkJCXZh ciBlID0gcXVlc3Rpb24uZWxlbWVudHNbaW5kZXhdOw0KCQkJCVV0aWxzLmFkZEV2 ZW50SGFuZGxlcihlLCAiY2xpY2siLCBoYW5kbGVPcHRpb25DbGljayk7DQoJCQl9 DQoNCgkJCXRoaXMudmFsaWRhdGVSZXF1aXJlZCA9IGZ1bmN0aW9uICgpDQoJCQl7 DQoJCQkJaWYgKGxhc3RSYWRpb0luZGV4ID09IDApDQoJCQkJew0KCQkJCQlyZXR1 cm4gdHJ1ZTsNCgkJCQl9DQoJCQkJZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8 PSBsYXN0UmFkaW9JbmRleDsgKytpbmRleCkNCgkJCQl7DQoJCQkJCXZhciBlID0g cXVlc3Rpb24uZWxlbWVudHNbaW5kZXhdOw0KCQkJCQlpZiAoZS52aXNpYmxlICYm IGUuY2hlY2tlZCkNCgkJCQkJew0KCQkJCQkJaWYgKGhhc09wdGlvbmFsVGV4dEJv eCAmJiBxdWVzdGlvbi5lbGVtZW50c1tsYXN0UmFkaW9JbmRleF0uY2hlY2tlZCkN CgkJCQkJCXsNCgkJCQkJCQlyZXR1cm4gKG9wdGlvbmFsVGV4dEJveC52YWx1ZSAh PSAiIik7DQoJCQkJCQl9DQoNCgkJCQkJCXJldHVybiB0cnVlOw0KCQkJCQl9DQoJ CQkJfQ0KDQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KDQoJCQl0aGlzLnZhbGlk YXRlSW5wdXQgPSBmdW5jdGlvbiAoKQ0KCQkJew0KCQkJCXJldHVybiBuZXcgTVMu U3VwcG9ydC5GbXMuVmFsaWRhdGVSZXN1bHQodHJ1ZSk7DQoJCQl9DQoNCgkJCXRo aXMucHJlcGFyZSA9IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJaWYgKHJvd3MubGVu Z3RoIDw9IDApDQoJCQkJew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJdmFy IGNvbHVtbnMgPSByb3dzWzBdLmNlbGxzLmxlbmd0aDsNCg0KCQkJCWlmIChjb2x1 bW5zIDw9IDApDQoJCQkJew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJdmFy IHJvd0luZGV4ID0gMCwgY2VsbEluZGV4ID0gMDsNCgkJCQlmb3IgKHZhciBpbmRl eCA9IDA7IGluZGV4IDw9IGxhc3RSYWRpb0luZGV4OyArK2luZGV4KQ0KCQkJCXsN CgkJCQkJdmFyIGUgPSBxdWVzdGlvbi5lbGVtZW50c1tpbmRleF07DQoJCQkJCXZh ciBiU2hvdyA9IHRydWUsIGJTZWxlY3QgPSBlLmNoZWNrZWQ7DQoJCQkJCXZhciB2 aXNpYmlsaXR5ID0gZS5nZXRBdHRyaWJ1dGUoInZpc2liaWxpdHkiKTsNCg0KCQkJ CQl2YXIgcmV0VmFsID0gcXVlc3Rpb24uc3VydmV5LkV2YWx1YXRlQ29udGV4dFZp c2liaWxpdHkoZSk7DQoNCgkJCQkJc3dpdGNoICh2aXNpYmlsaXR5KQ0KCQkJCQl7 DQoJCQkJCQljYXNlICJTaG93IjoNCgkJCQkJCQliU2hvdyA9IHJldFZhbCA9PSAi Tm90RXhpc3QiID8gZmFsc2UgOiByZXRWYWwgPT0gIkV2YWxUcnVlIiA/IHRydWUg OiBmYWxzZTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIkhpZGUiOg0KCQkJ CQkJCWJTaG93ID0gcmV0VmFsID09ICJOb3RFeGlzdCIgPyB0cnVlIDogcmV0VmFs ID09ICJFdmFsVHJ1ZSIgPyBmYWxzZSA6IHRydWU7DQoJCQkJCQkJYnJlYWs7DQoJ CQkJCQljYXNlICJTZWxlY3RlZCI6DQoJCQkJCQkJYlNob3cgPSB0cnVlOw0KCQkJ CQkJCWJTZWxlY3QgPSByZXRWYWwgPT0gIk5vdEV4aXN0IiA/IGZhbHNlIDogcmV0 VmFsID09ICJFdmFsVHJ1ZSIgPyB0cnVlIDogZmFsc2U7DQoJCQkJCQkJYnJlYWs7 DQoJCQkJCQlkZWZhdWx0Og0KCQkJCQkJCWJyZWFrOw0KCQkJCQl9DQoNCgkJCQkJ aWYgKGJTaG93KQ0KCQkJCQl7DQoJCQkJCQllLnZpc2libGUgPSB0cnVlOw0KCQkJ CQkJaWYgKGJTZWxlY3QpDQoJCQkJCQl7DQoJCQkJCQkJaWYgKCFlLmNoZWNrZWQp DQoJCQkJCQkJew0KCQkJCQkJCQllLmNsaWNrKCk7DQoJCQkJCQkJfQ0KCQkJCQkJ fQ0KCQkJCQkJZWxzZQ0KCQkJCQkJew0KCQkJCQkJCWlmIChlLmNoZWNrZWQpDQoJ CQkJCQkJew0KCQkJCQkJCQllLmNoZWNrZWQgPSBmYWxzZTsNCgkJCQkJCQl9DQoJ CQkJCQl9DQoNCgkJCQkJCXZhciByb3cgPSByb3dzW3Jvd0luZGV4XTsNCgkJCQkJ CXZhciBjZWxsID0gcm93LmNlbGxzW2NlbGxJbmRleF07DQoNCgkJCQkJCVV0aWxz LmRpc3BsYXlUYWJsZVJvdyhyb3cpOw0KCQkJCQkJVXRpbHMuZGlzcGxheVRhYmxl Q2VsbChjZWxsKTsNCg0KCQkJCQkJdmFyIGNvbnRhaW5lciA9IGdldEVsZW1lbnRD b250YWluZXIoZSk7DQoNCgkJCQkJCWlmIChjZWxsLmZpcnN0Q2hpbGQgIT0gbnVs bCkNCgkJCQkJCXsNCgkJCQkJCQlpZiAoY2VsbC5maXJzdENoaWxkICE9IGNvbnRh aW5lcikNCgkJCQkJCQl7DQoJCQkJCQkJCVV0aWxzLnN3YXBOb2RlKGNlbGwuZmly c3RDaGlsZCwgY29udGFpbmVyKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCQll bHNlDQoJCQkJCQl7DQoJCQkJCQkJY2VsbC5hcHBlbmRDaGlsZChjb250YWluZXIp Ow0KCQkJCQkJfQ0KDQoJCQkJCQlpZiAoaW5kZXggPT0gbGFzdFJhZGlvSW5kZXgg JiYgaGFzT3B0aW9uYWxUZXh0Qm94KQ0KCQkJCQkJew0KCQkJCQkJCWNlbGwuYXBw ZW5kQ2hpbGQoZ2V0RWxlbWVudENvbnRhaW5lcihvcHRpb25hbFRleHRCb3gpKTsN CgkJCQkJCX0NCg0KCQkJCQkJKytjZWxsSW5kZXg7DQoJCQkJCQlpZiAoY2VsbElu ZGV4ID09IGNvbHVtbnMpDQoJCQkJCQl7DQoJCQkJCQkJY2VsbEluZGV4ID0gMDsN CgkJCQkJCQkrK3Jvd0luZGV4Ow0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWVsc2UN CgkJCQkJew0KCQkJCQkJZS52aXNpYmxlID0gZmFsc2U7DQoJCQkJCQlpZiAoaW5k ZXggPT0gbGFzdFJhZGlvSW5kZXggJiYgaGFzT3B0aW9uYWxUZXh0Qm94KQ0KCQkJ CQkJew0KCQkJCQkJCXJvd3Nbcm93cy5sZW5ndGggLSAxXS5jZWxsc1tjb2x1bW5z IC0gMV0uYXBwZW5kQ2hpbGQoZ2V0RWxlbWVudENvbnRhaW5lcihvcHRpb25hbFRl eHRCb3gpKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCXZhciBpc1F1 ZXN0aW9uTmVlZEhpZGUgPSB0cnVlOw0KCQkJCWZvciAodmFyIGluZGV4ID0gMDsg aW5kZXggPD0gbGFzdFJhZGlvSW5kZXg7ICsraW5kZXgpDQoJCQkJew0KCQkJCQl2 YXIgZSA9IHF1ZXN0aW9uLmVsZW1lbnRzW2luZGV4XTsNCgkJCQkJaWYgKGUudmlz aWJsZSkNCgkJCQkJew0KCQkJCQkJaXNRdWVzdGlvbk5lZWRIaWRlID0gZmFsc2U7 DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYgKGlzUXVlc3Rpb25OZWVkSGlkZSkNCgkJ CQl7DQoJCQkJCXF1ZXN0aW9uLm5lZWRIaWRlID0gdHJ1ZTsNCgkJCQl9DQoNCgkJ CQlpZiAoY2VsbEluZGV4ICE9IDAgJiYgcm93SW5kZXggPCByb3dzLmxlbmd0aCkN CgkJCQl7DQoJCQkJCWZvciAoOyBjZWxsSW5kZXggPCBjb2x1bW5zOyArK2NlbGxJ bmRleCkNCgkJCQkJew0KCQkJCQkJVXRpbHMuaGlkZUVsZW1lbnQocm93c1tyb3dJ bmRleF0uY2VsbHNbY2VsbEluZGV4XSk7DQoJCQkJCX0NCgkJCQkJKytyb3dJbmRl eDsNCgkJCQl9DQoNCgkJCQlmb3IgKDsgcm93SW5kZXggPCByb3dzLmxlbmd0aDsg Kytyb3dJbmRleCkNCgkJCQl7DQoJCQkJCVV0aWxzLmhpZGVFbGVtZW50KHJvd3Nb cm93SW5kZXhdKTsNCgkJCQl9DQoJCQl9DQoNCgkJCWZ1bmN0aW9uIGlzRml4ZWQo ZWxlbWVudCkNCgkJCXsNCgkJCQlyZXR1cm4gKGVsZW1lbnQuZ2V0QXR0cmlidXRl KCJmaXhlZCIpID09ICIxIik7DQoJCQl9DQoNCgkJCXRoaXMucmFuZG9taXplID0g ZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQlpZiAocXVlc3Rpb24ubmVlZFJhbmRvbWl6 YXRpb24oKSAmJiBsYXN0UmFkaW9JbmRleCA+IDApDQoJCQkJew0KCQkJCQl2YXIg cmFuZG9taXplZE9wdGlvbnMgPSBbXTsNCgkJCQkJdmFyIG5vbkZpeGVkT3B0aW9u cyA9IFtdOw0KDQoJCQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBsYXN0 UmFkaW9JbmRleDsgKytpbmRleCkNCgkJCQkJew0KCQkJCQkJaWYgKGlzRml4ZWQo cXVlc3Rpb24uZWxlbWVudHNbaW5kZXhdKSkNCgkJCQkJCXsNCgkJCQkJCQlyYW5k b21pemVkT3B0aW9uc1tpbmRleF0gPSBxdWVzdGlvbi5lbGVtZW50c1tpbmRleF07 DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJbm9uRml4ZWRP cHRpb25zLnB1c2goaW5kZXgpOw0KCQkJCQkJfQ0KCQkJCQl9DQoNCgkJCQkJaWYg KGhhc09wdGlvbmFsVGV4dEJveCB8fCBpc0ZpeGVkKHF1ZXN0aW9uLmVsZW1lbnRz W2xhc3RSYWRpb0luZGV4XSkpDQoJCQkJCXsNCgkJCQkJCXJhbmRvbWl6ZWRPcHRp b25zW2xhc3RSYWRpb0luZGV4XSA9IHF1ZXN0aW9uLmVsZW1lbnRzW2xhc3RSYWRp b0luZGV4XTsNCgkJCQkJfQ0KCQkJCQllbHNlDQoJCQkJCXsNCgkJCQkJCW5vbkZp eGVkT3B0aW9ucy5wdXNoKGxhc3RSYWRpb0luZGV4KTsNCgkJCQkJfQ0KDQoJCQkJ CVV0aWxzLnJhbmRvbWl6ZShub25GaXhlZE9wdGlvbnMpOw0KDQoJCQkJCWZvciAo dmFyIGluZGV4ID0gMDsgaW5kZXggPD0gbGFzdFJhZGlvSW5kZXg7ICsraW5kZXgp DQoJCQkJCXsNCgkJCQkJCWlmIChyYW5kb21pemVkT3B0aW9uc1tpbmRleF0gPT0g bnVsbCkNCgkJCQkJCXsNCgkJCQkJCQlyYW5kb21pemVkT3B0aW9uc1tpbmRleF0g PSBxdWVzdGlvbi5lbGVtZW50c1tub25GaXhlZE9wdGlvbnMuc2hpZnQoKV07DQoJ CQkJCQl9DQoJCQkJCX0NCg0KCQkJCQlmb3IgKHZhciBpID0gMDsgaSA8PSBsYXN0 UmFkaW9JbmRleDsgKytpKQ0KCQkJCQl7DQoJCQkJCQlpZiAocmFuZG9taXplZE9w dGlvbnNbaV0gIT0gcXVlc3Rpb24uZWxlbWVudHNbaV0pDQoJCQkJCQl7DQoJCQkJ CQkJZm9yICh2YXIgaiA9IDA7IGogPD0gbGFzdFJhZGlvSW5kZXg7ICsraikNCgkJ CQkJCQl7DQoJCQkJCQkJCWlmIChxdWVzdGlvbi5lbGVtZW50c1tqXSA9PSByYW5k b21pemVkT3B0aW9uc1tpXSkNCgkJCQkJCQkJew0KCQkJCQkJCQkJcXVlc3Rpb24u ZWxlbWVudHNbal0gPSBxdWVzdGlvbi5lbGVtZW50c1tpXTsNCgkJCQkJCQkJCXF1 ZXN0aW9uLmVsZW1lbnRzW2ldID0gcmFuZG9taXplZE9wdGlvbnNbaV07DQoNCgkJ CQkJCQkJCWJyZWFrOw0KCQkJCQkJCQl9DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJ CQl9DQoJCQkJfQ0KCQkJfQ0KDQoJCQl0aGlzLmdldEFuc3dlcnMgPSBmdW5jdGlv biAoKQ0KCQkJew0KCQkJCXZhciBhbnN3ZXJzID0gW107DQoNCgkJCQlmb3IgKHZh ciBpbmRleCA9IDA7IGluZGV4IDw9IGxhc3RSYWRpb0luZGV4OyArK2luZGV4KQ0K CQkJCXsNCgkJCQkJdmFyIGUgPSBxdWVzdGlvbi5lbGVtZW50c1tpbmRleF07DQoJ CQkJCWlmIChlLnZpc2libGUgJiYgZS5jaGVja2VkKQ0KCQkJCQl7DQoJCQkJCQl2 YXIgaWQgPSBlLmlkLCB2YWx1ZSA9IGUudmFsdWUsIHRleHQgPSAiIjsNCg0KCQkJ CQkJaWYgKGluZGV4ID09IGxhc3RSYWRpb0luZGV4ICYmIGhhc09wdGlvbmFsVGV4 dEJveCkNCgkJCQkJCXsNCgkJCQkJCQl0ZXh0ID0gb3B0aW9uYWxUZXh0Qm94LnZh bHVlOw0KCQkJCQkJfQ0KDQoJCQkJCQlhbnN3ZXJzLnB1c2goeyBpZDogaWQsIHZh bHVlOiB2YWx1ZSwgdGV4dDogdGV4dCB9KTsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJ CXJldHVybiBhbnN3ZXJzOw0KCQkJfQ0KDQoJCQl2YXIgc3RhdGVzID0gbnVsbDsN Cg0KCQkJdGhpcy5zYXZlID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQlzdGF0ZXMg PSBbXTsNCg0KCQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPD0gbGFzdFJh ZGlvSW5kZXg7ICsraW5kZXgpDQoJCQkJew0KCQkJCQlzdGF0ZXMucHVzaChxdWVz dGlvbi5lbGVtZW50c1tpbmRleF0uY2hlY2tlZCk7DQoJCQkJfQ0KDQoJCQkJaWYg KGhhc09wdGlvbmFsVGV4dEJveCkNCgkJCQl7DQoJCQkJCXN0YXRlcy5wdXNoKHsg dmFsdWU6IG9wdGlvbmFsVGV4dEJveC52YWx1ZSwgZGlzYWJsZWQ6IG9wdGlvbmFs VGV4dEJveC5kaXNhYmxlZCB9KTsNCgkJCQl9DQoJCQl9DQoNCgkJCWZ1bmN0aW9u IGdldE9wdGlvblRleHQoaW5kZXgpDQoJCQl7DQoJCQkJdmFyIGUgPSBxdWVzdGlv bi5lbGVtZW50c1tpbmRleF07DQoJCQkJcmV0dXJuIChlLnZpc2libGUgJiYgZS5j aGVja2VkKSA/ICgoaW5kZXggPT0gbGFzdFJhZGlvSW5kZXggJiYgaGFzT3B0aW9u YWxUZXh0Qm94KSA/IG9wdGlvbmFsVGV4dEJveC52YWx1ZSA6IGUucGFyZW50Tm9k ZS5uZXh0U2libGluZy5pbm5lckhUTUwpIDogbnVsbDsNCgkJCX0NCg0KCQkJZnVu Y3Rpb24gZ2V0T3B0aW9uVmFyaWFibGUoaW5kZXgpDQoJCQl7DQoJCQkJdmFyIGUg PSBxdWVzdGlvbi5lbGVtZW50c1tpbmRleF07DQoJCQkJdmFyIHZhcmlhYmxlID0g ZS5nZXRBdHRyaWJ1dGUoInZhciIpOw0KDQoJCQkJaWYgKHZhcmlhYmxlICE9IG51 bGwgJiYgdmFyaWFibGUgIT0gIiIpDQoJCQkJew0KCQkJCQlyZXR1cm4geyBuYW1l OiB2YXJpYWJsZSwgdmFsdWU6IGdldE9wdGlvblRleHQoaW5kZXgpIH07DQoJCQkJ fQ0KDQoJCQkJcmV0dXJuIG51bGw7DQoJCQl9DQoNCgkJCWZ1bmN0aW9uIGdldFF1 ZXN0aW9uVmFyaWFibGUoKQ0KCQkJew0KCQkJCXZhciB2YXJpYWJsZSA9IHF1ZXN0 aW9uLmRvbU9iamVjdC5nZXRBdHRyaWJ1dGUoInZhciIpOw0KDQoJCQkJaWYgKHZh cmlhYmxlICE9IG51bGwgJiYgdmFyaWFibGUgIT0gIiIpDQoJCQkJew0KCQkJCQl2 YXIgdmFsdWUgPSAiIjsNCgkJCQkJZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8 PSBsYXN0UmFkaW9JbmRleDsgKytpbmRleCkNCgkJCQkJew0KCQkJCQkJdmFyIGUg PSBxdWVzdGlvbi5lbGVtZW50c1tpbmRleF07DQoJCQkJCQlpZiAoZS52aXNpYmxl ICYmIGUuY2hlY2tlZCkNCgkJCQkJCXsNCgkJCQkJCQl2YWx1ZSArPSAiLCAiICsg Z2V0T3B0aW9uVGV4dChpbmRleCk7DQoJCQkJCQl9DQoJCQkJCX0NCg0KCQkJCQly ZXR1cm4geyBuYW1lOiB2YXJpYWJsZSwgdmFsdWU6ICh2YWx1ZS5sZW5ndGggPiAy ID8gdmFsdWUuc3Vic3RyaW5nKDIpIDogbnVsbCkgfTsNCgkJCQl9DQoNCgkJCQly ZXR1cm4gbnVsbDsNCgkJCX0NCg0KCQkJdGhpcy5wb3B1bGF0ZVZhcmlhYmxlcyA9 IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJdmFyIHZhcmlhYmxlcyA9IFtdOw0KDQoJ CQkJdmFyIHF1ZXN0aW9uVmFyaWFibGUgPSBnZXRRdWVzdGlvblZhcmlhYmxlKCk7 DQoNCgkJCQlpZiAocXVlc3Rpb25WYXJpYWJsZSAhPSBudWxsKQ0KCQkJCXsNCgkJ CQkJdmFyaWFibGVzW3F1ZXN0aW9uVmFyaWFibGUubmFtZV0gPSBxdWVzdGlvblZh cmlhYmxlLnZhbHVlOw0KCQkJCX0NCg0KCQkJCWZvciAodmFyIGluZGV4ID0gMDsg aW5kZXggPD0gbGFzdFJhZGlvSW5kZXg7ICsraW5kZXgpDQoJCQkJew0KCQkJCQl2 YXIgb3B0aW9uVmFyaWFibGUgPSBnZXRPcHRpb25WYXJpYWJsZShpbmRleCk7DQoN CgkJCQkJaWYgKG9wdGlvblZhcmlhYmxlICE9IG51bGwpDQoJCQkJCXsNCgkJCQkJ CXZhcmlhYmxlc1tvcHRpb25WYXJpYWJsZS5uYW1lXSA9IG9wdGlvblZhcmlhYmxl LnZhbHVlOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJcmV0dXJuIHZhcmlhYmxlczsN CgkJCX0NCg0KCQkJdGhpcy5nZXRPcHRpb25CeUlkID0gZnVuY3Rpb24gKG9wdGlv bklkKQ0KCQkJew0KCQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPD0gbGFz dFJhZGlvSW5kZXg7ICsraW5kZXgpDQoJCQkJew0KCQkJCQlpZiAocXVlc3Rpb24u ZWxlbWVudHNbaW5kZXhdLnZpc2libGUgJiYgcXVlc3Rpb24uZWxlbWVudHNbaW5k ZXhdLmlkID09IG9wdGlvbklkKQ0KCQkJCQl7DQoJCQkJCQlyZXR1cm4gcXVlc3Rp b24uZWxlbWVudHNbaW5kZXhdOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJcmV0dXJu IG51bGw7DQoJCQl9DQoNCgkJCXRoaXMucmVzdG9yZSA9IGZ1bmN0aW9uICgpDQoJ CQl7DQoJCQkJZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8PSBsYXN0UmFkaW9J bmRleDsgKytpbmRleCkNCgkJCQl7DQoJCQkJCXF1ZXN0aW9uLmVsZW1lbnRzW2lu ZGV4XS5jaGVja2VkID0gc3RhdGVzW2luZGV4XTsNCgkJCQl9DQoNCgkJCQlpZiAo aGFzT3B0aW9uYWxUZXh0Qm94KQ0KCQkJCXsNCgkJCQkJb3B0aW9uYWxUZXh0Qm94 LnZhbHVlID0gc3RhdGVzW3N0YXRlcy5sZW5ndGggLSAxXS52YWx1ZTsNCgkJCQkJ b3B0aW9uYWxUZXh0Qm94LmRpc2FibGVkID0gc3RhdGVzW3N0YXRlcy5sZW5ndGgg LSAxXS5kaXNhYmxlZDsNCgkJCQl9DQoJCQl9DQoJCX0sDQoNCgkJZ2hyT3BlcmF0 b3I6IGZ1bmN0aW9uIChxdWVzdGlvbikNCgkJew0KCQkJdmFyIFV0aWxzID0gTVMu U3VwcG9ydC5GbXMuVXRpbHM7DQoNCgkJCXZhciByYW5raW5nID0gVXRpbHMuZ2V0 Q2hpbGRCeU5hbWUocXVlc3Rpb24uZG9tT2JqZWN0LCAicmFua2luZyIpOw0KCQkJ dmFyIGlzUmFua2luZyA9IHJhbmtpbmcgJiYgcmFua2luZy52YWx1ZSA9PSAiMSI7 DQoNCgkJCXZhciB0YWJsZSA9IHF1ZXN0aW9uLmRvbU9iamVjdC5nZXRFbGVtZW50 c0J5VGFnTmFtZSgidGFibGUiKVswXTsNCgkJCXZhciBsYWJlbFJvdyA9IHRhYmxl LnJvd3NbMF07DQoJCQl2YXIgaGVhZGVyUm93ID0gdGFibGUucm93c1sxXTsNCg0K CQkJdmFyIGdoclJvd3MgPSBVdGlscy5maW5kQ2hpbGROb2RlcyhxdWVzdGlvbi5k b21PYmplY3QsDQoJCQkJZnVuY3Rpb24gKGUpDQoJCQkJew0KCQkJCQlyZXR1cm4g VXRpbHMuaGFzQ2xhc3MoZSwgIkdIUl9PRERST1ciKSB8fCBVdGlscy5oYXNDbGFz cyhlLCAiR0hSX0VWRU5ST1ciKTsNCgkJCQl9DQoJCQkpOw0KDQoJCQl2YXIgY29s dW1ucyA9IGhlYWRlclJvdy5jZWxscy5sZW5ndGggLSAxOw0KCQkJdmFyIHJvd3Mg PSBnaHJSb3dzLmxlbmd0aDsNCg0KCQkJdmFyIGhhc0RvbnRLbm93ID0gcXVlc3Rp b24uZWxlbWVudHNbMF0udmFsdWUgPT0gIjAiIHx8IHF1ZXN0aW9uLmVsZW1lbnRz W2NvbHVtbnMgLSAxXS52YWx1ZSA9PSAiMCI7DQoNCgkJCWlmIChoYXNEb250S25v dykNCgkJCXsNCgkJCQl2YXIgZG9udEtub3dDb2x1bW5JbmRleCA9IHF1ZXN0aW9u LmVsZW1lbnRzWzBdLnZhbHVlID09ICIwIiA/IDAgOiBjb2x1bW5zIC0gMTsNCgkJ CX0NCg0KCQkJdmFyIGF1dG9IaWRlQ29sdW1ucyA9IGZhbHNlOw0KCQkJLy8gZm9y IHJhbmtpbmcgcXVlc3Rpb24sIGlmIHJvdyBjb3VudCBlcXVhbHMgdG8gY29sdW1u IGNvdW50IChleGNsdWRlIGRvbid0IGtub3cpLCB0aGVuIGNvbHVtbnMgc2hhbGwg YmUgaGlkZSBhdXRvbWF0aWNhbGx5DQoJCQlpZiAoaXNSYW5raW5nICYmICgoaGFz RG9udEtub3cgJiYgY29sdW1ucyA9PSByb3dzICsgMSkgfHwgKCghaGFzRG9udEtu b3cpICYmIGNvbHVtbnMgPT0gcm93cykpKQ0KCQkJew0KCQkJCWF1dG9IaWRlQ29s dW1ucyA9IHRydWU7DQoJCQl9DQoNCgkJCXZhciByYW5raW5nRGlyZWN0aW9uID0g ImFzYyI7DQoNCgkJCWlmIChpc1JhbmtpbmcpDQoJCQl7DQoJCQkJdmFyIGluZGV4 ID0gKGhhc0RvbnRLbm93ICYmIGRvbnRLbm93Q29sdW1uSW5kZXggPT0gMCkgPyAx IDogMDsNCg0KCQkJCWlmICgoaW5kZXggKyAxKSA8IGNvbHVtbnMgJiYgKHF1ZXN0 aW9uLmVsZW1lbnRzW2luZGV4XSAmJiBxdWVzdGlvbi5lbGVtZW50c1tpbmRleCAr IDFdICYmIChxdWVzdGlvbi5lbGVtZW50c1tpbmRleF0udmFsdWUgPiBxdWVzdGlv bi5lbGVtZW50c1tpbmRleCArIDFdLnZhbHVlKSkpDQoJCQkJew0KCQkJCQlyYW5r aW5nRGlyZWN0aW9uID0gImRlc2MiOw0KCQkJCX0NCgkJCX0NCg0KCQkJdmFyIHZp c2libGVSb3dDb3VudCA9IHJvd3M7DQoJCQl2YXIgdmlzaWJsZUNvbHVtbkNvdW50 ID0gY29sdW1uczsNCg0KCQkJdGhpcy52YWxpZGF0ZVJlcXVpcmVkID0gZnVuY3Rp b24gKCkNCgkJCXsNCgkJCQl2YXIgY291bnQgPSAwOw0KCQkJCWZvciAodmFyIGlu ZGV4ID0gMDsgaW5kZXggPCBxdWVzdGlvbi5lbGVtZW50cy5sZW5ndGg7ICsraW5k ZXgpDQoJCQkJew0KCQkJCQl2YXIgZSA9IHF1ZXN0aW9uLmVsZW1lbnRzW2luZGV4 XTsNCgkJCQkJaWYgKGUudmlzaWJsZSAmJiBlLmNoZWNrZWQpDQoJCQkJCXsNCgkJ CQkJCSsrY291bnQ7DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQlpZiAoaXNSYW5raW5n ICYmIGNvdW50ID09IE1hdGgubWluKHZpc2libGVSb3dDb3VudCwgdmlzaWJsZUNv bHVtbkNvdW50KQ0KICAgICAgICAgICAgICAgIHx8ICFpc1JhbmtpbmcgJiYgY291 bnQgPT0gdmlzaWJsZVJvd0NvdW50KQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHRydWU7 DQoJCQkJfQ0KDQoJCQkJaWYgKHF1ZXN0aW9uLmVsZW1lbnRzLmxlbmd0aCA9PSAw KQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHRydWU7DQoJCQkJfQ0KDQoJCQkJcmV0dXJu IGZhbHNlOw0KCQkJfQ0KDQoJCQl0aGlzLnZhbGlkYXRlSW5wdXQgPSBmdW5jdGlv biAoKQ0KCQkJew0KCQkJCXJldHVybiBuZXcgTVMuU3VwcG9ydC5GbXMuVmFsaWRh dGVSZXN1bHQodHJ1ZSk7DQoJCQl9DQoNCgkJCWZ1bmN0aW9uIGhhbmRsZVJhbmtp bmdSYWRpb0NsaWNrKHJvd0luZGV4LCBjb2x1bW5JbmRleCkNCgkJCXsNCgkJCQlp ZiAoaGFzRG9udEtub3cgJiYgY29sdW1uSW5kZXggPT0gZG9udEtub3dDb2x1bW5J bmRleCkNCgkJCQl7DQoJCQkJCXJldHVybjsgLy8gc2tpcCBkb24ndCBrbm93bg0K CQkJCX0NCg0KCQkJCXZhciBpbmRleCA9IHJvd0luZGV4ICogY29sdW1ucyArIGNv bHVtbkluZGV4Ow0KCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgcm93czsgKytpKQ0K CQkJCXsNCgkJCQkJdmFyIGVsZW1lbnRJbmRleCA9IGkgKiBjb2x1bW5zICsgY29s dW1uSW5kZXg7DQoNCgkJCQkJaWYgKGVsZW1lbnRJbmRleCAhPSBpbmRleCkNCgkJ CQkJew0KCQkJCQkJcXVlc3Rpb24uZWxlbWVudHNbZWxlbWVudEluZGV4XS5jaGVj a2VkID0gZmFsc2U7DQoJCQkJCX0NCg0KCQkJCX0NCgkJCX0NCg0KCQkJdGhpcy5w cmVwYXJlID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQl2aXNpYmxlUm93Q291bnQg PSAwOw0KCQkJCXZhciBzdGF0aWNPcHRpb25Db3VudCA9IDA7DQoJCQkJZm9yICh2 YXIgaW5kZXggPSAwOyBpbmRleCA8IGdoclJvd3MubGVuZ3RoOyArK2luZGV4KQ0K CQkJCXsNCgkJCQkJdmFyIHJvdyA9IGdoclJvd3NbaW5kZXhdOw0KDQoJCQkJCXZh ciBzaG93SWYgPSB0cnVlLCBTZWxlY3RJZiA9IGZhbHNlOw0KCQkJCQl2YXIgdmlz aWJpbGl0eSA9IHJvdy5nZXRBdHRyaWJ1dGUoInZpc2liaWxpdHkiKTsNCgkJCQkJ dmFyIHJldFZhbCA9IHF1ZXN0aW9uLnN1cnZleS5FdmFsdWF0ZUNvbnRleHRWaXNp YmlsaXR5KHJvdyk7DQoNCgkJCQkJc3dpdGNoICh2aXNpYmlsaXR5KQ0KCQkJCQl7 DQoJCQkJCQljYXNlICJTaG93IjoNCgkJCQkJCQlzaG93SWYgPSByZXRWYWwgPT0g Ik5vdEV4aXN0IiA/IGZhbHNlIDogcmV0VmFsID09ICJFdmFsVHJ1ZSIgPyB0cnVl IDogZmFsc2U7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICJIaWRlIjoNCgkJ CQkJCQlzaG93SWYgPSByZXRWYWwgPT0gIk5vdEV4aXN0IiA/IHRydWUgOiByZXRW YWwgPT0gIkV2YWxUcnVlIiA/IGZhbHNlIDogdHJ1ZTsNCgkJCQkJCQlicmVhazsN CgkJCQkJCWNhc2UgIlNlbGVjdGVkIjoNCgkJCQkJCQlzaG93SWYgPSB0cnVlOw0K CQkJCQkJCS8vTm90IGltcGxlbWVudCBzZWxlY3RlZCBsb2dpYyBpbiBHSFIvU0hS IG9wdGlvbiBjdXJyZW50bHkuDQoJCQkJCQkJYnJlYWs7DQoJCQkJCQlkZWZhdWx0 Og0KCQkJCQkJCWJyZWFrOw0KCQkJCQl9DQoNCgkJCQkJaWYgKHNob3dJZikNCgkJ CQkJew0KCQkJCQkJKyt2aXNpYmxlUm93Q291bnQ7DQoJCQkJCQlpZiAocXVlc3Rp b24uaXNTdGF0aWNPcHRpb24ocm93KSkNCgkJCQkJCXsNCgkJCQkJCQkrK3N0YXRp Y09wdGlvbkNvdW50Ow0KCQkJCQkJfQ0KDQoJCQkJCQlVdGlscy5yZW1vdmVDbGFz cyhyb3csICJHSFJfRVZFTlJPVyBHSFJfT0REUk9XIik7DQoJCQkJCQlVdGlscy5h ZGRDbGFzcyhyb3csIHZpc2libGVSb3dDb3VudCAlIDIgPT0gMCA/ICJHSFJfRVZF TlJPVyIgOiAiR0hSX09ERFJPVyIpOw0KCQkJCQkJVXRpbHMuZGlzcGxheVRhYmxl Um93KHJvdyk7DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQlVdGls cy5oaWRlRWxlbWVudChyb3cpOw0KCQkJCQl9DQoNCgkJCQkJcm93LnZpc2libGUg PSBzaG93SWY7DQoNCgkJCQkJdmFyIHN0YXJ0SiA9IGluZGV4ICogY29sdW1ucywg ZW5kSiA9IHN0YXJ0SiArIGNvbHVtbnM7DQoJCQkJCWZvciAodmFyIGogPSBzdGFy dEo7IGogPCBlbmRKOyArK2opDQoJCQkJCXsNCgkJCQkJCXF1ZXN0aW9uLmVsZW1l bnRzW2pdLnZpc2libGUgPSBzaG93SWY7DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQlp ZiAoYXV0b0hpZGVDb2x1bW5zICYmIHZpc2libGVSb3dDb3VudCA+IDApDQoJCQkJ ew0KCQkJCQl2aXNpYmxlQ29sdW1uQ291bnQgPSBNYXRoLm1pbihjb2x1bW5zLCB2 aXNpYmxlUm93Q291bnQgKyAoaGFzRG9udEtub3cgPyAxIDogMCkpOw0KCQkJCQl2 YXIgY2VsbFdpZHRoID0gKDAuNzUgLyB2aXNpYmxlQ29sdW1uQ291bnQgKiAxMDAp ICsgIiUiOw0KCQkJCQl2YXIgZmlyc3RSYW5raW5nQ29sdW1uSW5kZXggPSAoaGFz RG9udEtub3cgJiYgZG9udEtub3dDb2x1bW5JbmRleCA9PSAwKSA/IDEgOiAwOw0K CQkJCQl2YXIgcmFua2luZ0NvbHVtbkNvdW50ID0gY29sdW1ucyAtIChoYXNEb250 S25vdyA/IDEgOiAwKTsNCgkJCQkJdmFyIHZpc2libGVSYW5raW5nQ29sdW1uQ291 bnQgPSB2aXNpYmxlQ29sdW1uQ291bnQgLSAoaGFzRG9udEtub3cgPyAxIDogMCk7 DQoNCgkJCQkJZm9yIChpbmRleCA9IGZpcnN0UmFua2luZ0NvbHVtbkluZGV4OyBp bmRleCA8IHJhbmtpbmdDb2x1bW5Db3VudDsgKytpbmRleCkNCgkJCQkJew0KCQkJ CQkJaWYgKChyYW5raW5nRGlyZWN0aW9uID09ICJhc2MiICYmIGluZGV4IDwgdmlz aWJsZVJhbmtpbmdDb2x1bW5Db3VudCkgfHwgKHJhbmtpbmdEaXJlY3Rpb24gPT0g ImRlc2MiICYmIGluZGV4ID49IChyYW5raW5nQ29sdW1uQ291bnQgLSB2aXNpYmxl UmFua2luZ0NvbHVtbkNvdW50KSkpDQoJCQkJCQl7DQoJCQkJCQkJVXRpbHMuZGlz cGxheVRhYmxlQ2VsbChsYWJlbFJvdy5jZWxsc1tpbmRleCArIDFdKTsNCgkJCQkJ CQlVdGlscy5kaXNwbGF5VGFibGVDZWxsKGhlYWRlclJvdy5jZWxsc1tpbmRleCAr IDFdKTsNCgkJCQkJCQloZWFkZXJSb3cuY2VsbHNbaW5kZXhdLndpZHRoID0gY2Vs bFdpZHRoOw0KCQkJCQkJfQ0KCQkJCQkJZWxzZQ0KCQkJCQkJew0KCQkJCQkJCVV0 aWxzLmhpZGVFbGVtZW50KGxhYmVsUm93LmNlbGxzW2luZGV4ICsgMV0pOw0KCQkJ CQkJCVV0aWxzLmhpZGVFbGVtZW50KGhlYWRlclJvdy5jZWxsc1tpbmRleCArIDFd KTsNCgkJCQkJCX0NCgkJCQkJfQ0KDQoJCQkJCWZvciAodmFyIGluZGV4ID0gMDsg aW5kZXggPCBnaHJSb3dzLmxlbmd0aDsgKytpbmRleCkNCgkJCQkJew0KCQkJCQkJ dmFyIHJvdyA9IGdoclJvd3NbaW5kZXhdOw0KCQkJCQkJaWYgKHJvdy52aXNpYmxl KQ0KCQkJCQkJew0KCQkJCQkJCWZvciAodmFyIGogPSBmaXJzdFJhbmtpbmdDb2x1 bW5JbmRleDsgaiA8IHJhbmtpbmdDb2x1bW5Db3VudDsgKytqKQ0KCQkJCQkJCXsN CgkJCQkJCQkJaWYgKChyYW5raW5nRGlyZWN0aW9uID09ICJhc2MiICYmIGogPCB2 aXNpYmxlUmFua2luZ0NvbHVtbkNvdW50KSB8fCAocmFua2luZ0RpcmVjdGlvbiA9 PSAiZGVzYyIgJiYgaiA+PSAocmFua2luZ0NvbHVtbkNvdW50IC0gdmlzaWJsZVJh bmtpbmdDb2x1bW5Db3VudCkpKQ0KCQkJCQkJCQl7DQoJCQkJCQkJCQlVdGlscy5k aXNwbGF5VGFibGVDZWxsKHJvdy5jZWxsc1tqICsgMV0pOw0KCQkJCQkJCQkJcXVl c3Rpb24uZWxlbWVudHNbaW5kZXggKiBjb2x1bW5zICsgal0udmlzaWJsZSA9IHRy dWU7DQoJCQkJCQkJCX0NCgkJCQkJCQkJZWxzZQ0KCQkJCQkJCQl7DQoJCQkJCQkJ CQlVdGlscy5oaWRlRWxlbWVudChyb3cuY2VsbHNbaiArIDFdKTsNCgkJCQkJCQkJ CXF1ZXN0aW9uLmVsZW1lbnRzW2luZGV4ICogY29sdW1ucyArIGpdLnZpc2libGUg PSBmYWxzZTsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJfQ0K CQkJCX0NCg0KCQkJCWlmIChpc1JhbmtpbmcgJiYgKHZpc2libGVSb3dDb3VudCA8 PSAxICYmIHN0YXRpY09wdGlvbkNvdW50ID09IDApIHx8ICFpc1JhbmtpbmcgJiYg KHZpc2libGVSb3dDb3VudCArIHN0YXRpY09wdGlvbkNvdW50ID09IDApKQ0KCQkJ CXsNCgkJCQkJcXVlc3Rpb24ubmVlZEhpZGUgPSB0cnVlOw0KCQkJCX0NCgkJCX0N Cg0KCQkJdGhpcy5wb3B1bGF0ZVZhcmlhYmxlcyA9IGZ1bmN0aW9uICgpDQoJCQl7 DQoJCQkJdmFyIHZhcmlhYmxlcyA9IFtdOw0KDQoJCQkJdmFyIHF1ZXN0aW9uVmFy aWFibGUgPSBnZXRRdWVzdGlvblZhcmlhYmxlKCk7DQoJCQkJaWYgKHF1ZXN0aW9u VmFyaWFibGUgIT0gbnVsbCkNCgkJCQl7DQoJCQkJCXZhcmlhYmxlc1txdWVzdGlv blZhcmlhYmxlLm5hbWVdID0gcXVlc3Rpb25WYXJpYWJsZS52YWx1ZTsNCgkJCQl9 DQoJCQkJdmFyIG9wdGlvblZhcmlhYmxlID0gZ2V0T3B0aW9uVmFyaWFibGUoKTsN CgkJCQlpZiAob3B0aW9uVmFyaWFibGUgIT0gbnVsbCkNCgkJCQl7DQoJCQkJCWZv ciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBvcHRpb25WYXJpYWJsZS5sZW5ndGg7 ICsraW5kZXgpDQoJCQkJCXsNCgkJCQkJCXZhciB2YXJpYWJsZSA9IG9wdGlvblZh cmlhYmxlW2luZGV4XTsNCgkJCQkJCXZhcmlhYmxlc1t2YXJpYWJsZS5uYW1lXSA9 IHZhcmlhYmxlLnZhbHVlOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJcmV0dXJuIHZh cmlhYmxlczsNCgkJCX0NCg0KCQkJZnVuY3Rpb24gZ2V0UXVlc3Rpb25WYXJpYWJs ZSgpDQoJCQl7DQoJCQkJdmFyIHZhcmlhYmxlID0gcXVlc3Rpb24uZG9tT2JqZWN0 LmdldEF0dHJpYnV0ZSgidmFyIik7DQoNCgkJCQlpZiAodmFyaWFibGUgIT0gbnVs bCAmJiB2YXJpYWJsZSAhPSAiIikNCgkJCQl7DQoJCQkJCXZhciB2YWx1ZSA9ICIi Ow0KCQkJCQlmb3IgKHZhciByID0gMDsgciA8PSByb3dzOyByKyspDQoJCQkJCXsN CgkJCQkJCWZvciAodmFyIGMgPSAwOyBjIDwgY29sdW1uczsgYysrKQ0KCQkJCQkJ ew0KCQkJCQkJCXZhciBlID0gcXVlc3Rpb24uZWxlbWVudHNbciAqIGNvbHVtbnMg KyBjXTsNCgkJCQkJCQlpZiAoZSAmJiBlLnZpc2libGUgJiYgZS5jaGVja2VkKQ0K CQkJCQkJCXsNCgkJCQkJCQkJdmFsdWUgKz0gIiwgIiArIGUuaWQudG9TdHJpbmco KSArICJ8IiArIGUudmFsdWUudG9TdHJpbmcoKTsNCgkJCQkJCQl9DQoJCQkJCQl9 DQoJCQkJCX0NCgkJCQkJcmV0dXJuIHsgbmFtZTogdmFyaWFibGUsIHZhbHVlOiAo dmFsdWUubGVuZ3RoID4gMiA/IHZhbHVlLnN1YnN0cmluZygyKSA6IG51bGwpIH07 DQoJCQkJfQ0KCQkJCXJldHVybiBudWxsOw0KCQkJfQ0KDQoJCQlmdW5jdGlvbiBn ZXRPcHRpb25WYXJpYWJsZSgpDQoJCQl7DQoJCQkJdmFyIHZhcmlhYmxlTGlzdCA9 IFtdOw0KDQoJCQkJZm9yICh2YXIgcm93ID0gMDsgcm93IDwgZ2hyUm93cy5sZW5n dGg7ICsrcm93KQ0KCQkJCXsNCgkJCQkJdmFyIHZhcmlhYmxlTmFtZSA9IGdoclJv d3Nbcm93XS5nZXRBdHRyaWJ1dGUoInZhciIpOw0KCQkJCQlpZiAoIXZhcmlhYmxl TmFtZSkNCgkJCQkJew0KCQkJCQkJY29udGludWU7DQoJCQkJCX0NCgkJCQkJZm9y ICh2YXIgY29sID0gMDsgY29sIDwgY29sdW1uczsgKytjb2wpDQoJCQkJCXsNCgkJ CQkJCXZhciBlID0gcXVlc3Rpb24uZWxlbWVudHNbcm93ICogY29sdW1ucyArIGNv bF07DQoJCQkJCQlpZiAoZS52aXNpYmxlICYmIGUuY2hlY2tlZCkNCgkJCQkJCXsN CgkJCQkJCQl2YXJpYWJsZUxpc3QucHVzaCh7IG5hbWU6IHZhcmlhYmxlTmFtZSwg dmFsdWU6IGUuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpIH0pOw0KCQkJCQkJfQ0KCQkJ CQl9DQoJCQkJfQ0KDQoJCQkJcmV0dXJuIHZhcmlhYmxlTGlzdDsNCgkJCX0NCg0K CQkJdGhpcy5nZXRPcHRpb25CeUlkID0gZnVuY3Rpb24gKG9wdGlvbklkKQ0KCQkJ ew0KCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgcXVlc3Rpb24uZWxlbWVudHMubGVu Z3RoOyArK2kpDQoJCQkJew0KCQkJCQl2YXIgZWxlbWVudCA9IHF1ZXN0aW9uLmVs ZW1lbnRzW2ldOw0KCQkJCQlpZiAoZWxlbWVudC52aXNpYmxlICYmIGVsZW1lbnQu aWQgPT0gb3B0aW9uSWQgJiYgZWxlbWVudC5jaGVja2VkKQ0KCQkJCQl7DQoJCQkJ CQlyZXR1cm4gZWxlbWVudDsNCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCXJldHVybiBu dWxsOw0KCQkJfQ0KDQoJCQlmdW5jdGlvbiBpc0ZpeGVkKGVsZW1lbnQpDQoJCQl7 DQoJCQkJcmV0dXJuIChlbGVtZW50LmdldEF0dHJpYnV0ZSgiZml4ZWQiKSA9PSAi MSIpOw0KCQkJfQ0KDQoJCQl0aGlzLnJhbmRvbWl6ZSA9IGZ1bmN0aW9uICgpDQoJ CQl7DQoJCQkJaWYgKHF1ZXN0aW9uLm5lZWRSYW5kb21pemF0aW9uKCkpDQoJCQkJ ew0KCQkJCQl2YXIgcmFuZG9taXplZE9wdGlvbnMgPSBbXTsNCgkJCQkJdmFyIG5v bkZpeGVkT3B0aW9ucyA9IFtdOw0KDQoJCQkJCWZvciAodmFyIGluZGV4ID0gMDsg aW5kZXggPCBnaHJSb3dzLmxlbmd0aDsgKytpbmRleCkNCgkJCQkJew0KCQkJCQkJ aWYgKGlzRml4ZWQoZ2hyUm93c1tpbmRleF0pKQ0KCQkJCQkJew0KCQkJCQkJCXJh bmRvbWl6ZWRPcHRpb25zW2luZGV4XSA9IGdoclJvd3NbaW5kZXhdOw0KCQkJCQkJ fQ0KCQkJCQkJZWxzZQ0KCQkJCQkJew0KCQkJCQkJCW5vbkZpeGVkT3B0aW9ucy5w dXNoKGluZGV4KTsNCgkJCQkJCX0NCgkJCQkJfQ0KDQoJCQkJCVV0aWxzLnJhbmRv bWl6ZShub25GaXhlZE9wdGlvbnMpOw0KDQoJCQkJCWZvciAodmFyIGluZGV4ID0g MDsgaW5kZXggPCBnaHJSb3dzLmxlbmd0aDsgKytpbmRleCkNCgkJCQkJew0KCQkJ CQkJaWYgKHJhbmRvbWl6ZWRPcHRpb25zW2luZGV4XSA9PSBudWxsKQ0KCQkJCQkJ ew0KCQkJCQkJCXJhbmRvbWl6ZWRPcHRpb25zW2luZGV4XSA9IGdoclJvd3Nbbm9u Rml4ZWRPcHRpb25zLnNoaWZ0KCldOw0KCQkJCQkJfQ0KCQkJCQl9DQoNCgkJCQkJ Zm9yICh2YXIgaSA9IDA7IGkgPCBnaHJSb3dzLmxlbmd0aDsgKytpKQ0KCQkJCQl7 DQoJCQkJCQlpZiAocmFuZG9taXplZE9wdGlvbnNbaV0gIT0gZ2hyUm93c1tpXSkN CgkJCQkJCXsNCgkJCQkJCQlmb3IgKHZhciBqID0gMDsgaiA8IGdoclJvd3MubGVu Z3RoOyArK2opDQoJCQkJCQkJew0KCQkJCQkJCQlpZiAoZ2hyUm93c1tqXSA9PSBy YW5kb21pemVkT3B0aW9uc1tpXSkNCgkJCQkJCQkJew0KCQkJCQkJCQkJVXRpbHMu c3dhcE5vZGUoZ2hyUm93c1tpXSwgcmFuZG9taXplZE9wdGlvbnNbaV0pOw0KDQoJ CQkJCQkJCQlnaHJSb3dzW2pdID0gZ2hyUm93c1tpXTsNCgkJCQkJCQkJCWdoclJv d3NbaV0gPSByYW5kb21pemVkT3B0aW9uc1tpXTsNCg0KCQkJCQkJCQkJZm9yICh2 YXIgayA9IDA7IGsgPCBjb2x1bW5zOyArK2spDQoJCQkJCQkJCQl7DQoJCQkJCQkJ CQkJdmFyIHQgPSBxdWVzdGlvbi5lbGVtZW50c1tpICogY29sdW1ucyArIGtdOw0K CQkJCQkJCQkJCXF1ZXN0aW9uLmVsZW1lbnRzW2kgKiBjb2x1bW5zICsga10gPSBx dWVzdGlvbi5lbGVtZW50c1tqICogY29sdW1ucyArIGtdOw0KCQkJCQkJCQkJCXF1 ZXN0aW9uLmVsZW1lbnRzW2ogKiBjb2x1bW5zICsga10gPSB0Ow0KCQkJCQkJCQkJ fQ0KDQoJCQkJCQkJCQlicmVhazsNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCgkJCQkJ CX0NCgkJCQkJfQ0KCQkJCX0NCg0KCQkJCWlmIChpc1JhbmtpbmcpDQoJCQkJew0K CQkJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgcXVlc3Rpb24uZWxlbWVu dHMubGVuZ3RoOyArK2luZGV4KQ0KCQkJCQl7DQoJCQkJCQkoZnVuY3Rpb24gKCkN CgkJCQkJCXsNCgkJCQkJCQl2YXIgY29sdW1uSW5kZXggPSBpbmRleCAlIGNvbHVt bnM7DQoJCQkJCQkJdmFyIHJvd0luZGV4ID0gTWF0aC5mbG9vcihpbmRleCAvIGNv bHVtbnMpOw0KDQoJCQkJCQkJVXRpbHMuYWRkRXZlbnRIYW5kbGVyKHF1ZXN0aW9u LmVsZW1lbnRzW2luZGV4XSwgImNsaWNrIiwgZnVuY3Rpb24gKCkgeyBoYW5kbGVS YW5raW5nUmFkaW9DbGljayhyb3dJbmRleCwgY29sdW1uSW5kZXgpOyByZXR1cm4g dHJ1ZTsgfSk7DQoJCQkJCQl9KSgpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KDQoJ CQl0aGlzLmdldEFuc3dlcnMgPSBmdW5jdGlvbiAoKQ0KCQkJew0KCQkJCXZhciBh bnN3ZXJzID0gW107DQoNCgkJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwg cXVlc3Rpb24uZWxlbWVudHMubGVuZ3RoOyArK2luZGV4KQ0KCQkJCXsNCgkJCQkJ dmFyIGUgPSBxdWVzdGlvbi5lbGVtZW50c1tpbmRleF07DQoJCQkJCWlmIChlLnZp c2libGUgJiYgZS5jaGVja2VkKQ0KCQkJCQl7DQoJCQkJCQl2YXIgaWQgPSBlLmlk LCB2YWx1ZSA9IGUudmFsdWU7DQoJCQkJCQlhbnN3ZXJzLnB1c2goeyBpZDogaWQs IHZhbHVlOiB2YWx1ZSwgdGV4dDogIiIgfSk7DQoJCQkJCX0NCgkJCQl9DQoNCgkJ CQlyZXR1cm4gYW5zd2VyczsNCgkJCX0NCg0KCQkJdmFyIHN0YXRlcyA9IG51bGw7 DQoNCgkJCXRoaXMuc2F2ZSA9IGZ1bmN0aW9uICgpDQoJCQl7DQoJCQkJc3RhdGVz ID0gW107DQoNCgkJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgcXVlc3Rp b24uZWxlbWVudHMubGVuZ3RoOyArK2luZGV4KQ0KCQkJCXsNCgkJCQkJc3RhdGVz LnB1c2gocXVlc3Rpb24uZWxlbWVudHNbaW5kZXhdLmNoZWNrZWQpOw0KCQkJCX0N CgkJCX0NCg0KCQkJdGhpcy5yZXN0b3JlID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJ CQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgcXVlc3Rpb24uZWxlbWVudHMu bGVuZ3RoOyArK2luZGV4KQ0KCQkJCXsNCgkJCQkJcXVlc3Rpb24uZWxlbWVudHNb aW5kZXhdLmNoZWNrZWQgPSBzdGF0ZXNbaW5kZXhdOw0KCQkJCX0NCgkJCX0NCgkJ fSwNCg0KCQljaG9pY2VsaXN0T3BlcmF0b3I6IGZ1bmN0aW9uIChxdWVzdGlvbikN CgkJew0KCQkJdmFyIFV0aWxzID0gTVMuU3VwcG9ydC5GbXMuVXRpbHM7DQoNCgkJ CXZhciBzZWxlY3RPYmplY3QgPSBxdWVzdGlvbi5lbGVtZW50c1swXTsNCgkJCXNl bGVjdE9iamVjdC5zZWxlY3RlZEluZGV4ID0gc2VsZWN0T2JqZWN0Lm11bHRpcGxl ID8gLTEgOiAwOw0KCQkJdmFyIG9wdGlvbnMgPSBzZWxlY3RPYmplY3Qub3B0aW9u czsNCg0KCQkJdmFyIGFsbE9wdGlvbnMgPSBbXTsNCg0KCQkJZm9yICh2YXIgaW5k ZXggPSAwOyBpbmRleCA8IG9wdGlvbnMubGVuZ3RoOyArK2luZGV4KQ0KCQkJew0K CQkJCWFsbE9wdGlvbnMucHVzaCh7IG9wdGlvbjogb3B0aW9uc1tpbmRleF0sIHNl bGVjdGVkOiBvcHRpb25zW2luZGV4XS5zZWxlY3RlZCB9KTsNCgkJCX0NCg0KCQkJ dGhpcy52YWxpZGF0ZVJlcXVpcmVkID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQlp ZiAob3B0aW9ucy5sZW5ndGggPT0gMCB8fCBvcHRpb25zLmxlbmd0aCA9PSAxICYm IG9wdGlvbnNbMF0udmFsdWUgPT0gLTEpDQoJCQkJew0KCQkJCQkvL2Ryb3AgZG93 biBzaW5nbGUgc2VsZWN0IHdoaWNoIGhhcyBvbmx5IG9uZSBub24tc2VsZWN0IGl0 ZW0uDQoJCQkJCXJldHVybiB0cnVlOw0KCQkJCX0NCgkJCQlmb3IgKHZhciBpbmRl eCA9IDA7IGluZGV4IDwgb3B0aW9ucy5sZW5ndGg7ICsraW5kZXgpDQoJCQkJew0K CQkJCQl2YXIgb3B0aW9uID0gb3B0aW9uc1tpbmRleF07DQoJCQkJCWlmIChvcHRp b24uc2VsZWN0ZWQgJiYgb3B0aW9uLmlkICE9ICIiICYmIG9wdGlvbi52YWx1ZSAh PSAiIiAmJiBvcHRpb24udmFsdWUgIT0gLTEpDQoJCQkJCXsNCgkJCQkJCXJldHVy biB0cnVlOw0KCQkJCQl9DQoJCQkJfQ0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0N Cg0KCQkJdGhpcy52YWxpZGF0ZUlucHV0ID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJ CQlyZXR1cm4gbmV3IE1TLlN1cHBvcnQuRm1zLlZhbGlkYXRlUmVzdWx0KHRydWUp Ow0KCQkJfQ0KDQoJCQl0aGlzLnByZXBhcmUgPSBmdW5jdGlvbiAoKQ0KCQkJew0K CQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBhbGxPcHRpb25zLmxlbmd0 aDsgKytpbmRleCkNCgkJCQl7DQoJCQkJCWFsbE9wdGlvbnNbaW5kZXhdLnNlbGVj dGVkID0gYWxsT3B0aW9uc1tpbmRleF0ub3B0aW9uLnNlbGVjdGVkOw0KCQkJCX0N Cg0KCQkJCXNlbGVjdE9iamVjdC5vcHRpb25zLmxlbmd0aCA9IDA7DQoNCgkJCQlm b3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgYWxsT3B0aW9ucy5sZW5ndGg7ICsr aW5kZXgpDQoJCQkJew0KCQkJCQl2YXIgYlNob3cgPSB0cnVlLCBiU2VsZWN0ID0g YWxsT3B0aW9uc1tpbmRleF0ub3B0aW9uLnNlbGVjdGVkOw0KCQkJCQl2YXIgdmlz aWJpbGl0eSA9IGFsbE9wdGlvbnNbaW5kZXhdLm9wdGlvbi5nZXRBdHRyaWJ1dGUo InZpc2liaWxpdHkiKTsNCgkJCQkJdmFyIHJldFZhbCA9IHF1ZXN0aW9uLnN1cnZl eS5FdmFsdWF0ZUNvbnRleHRWaXNpYmlsaXR5KGFsbE9wdGlvbnNbaW5kZXhdLm9w dGlvbik7DQoNCgkJCQkJc3dpdGNoICh2aXNpYmlsaXR5KQ0KCQkJCQl7DQoJCQkJ CQljYXNlICJTaG93IjoNCgkJCQkJCQliU2hvdyA9IHJldFZhbCA9PSAiTm90RXhp c3QiID8gZmFsc2UgOiByZXRWYWwgPT0gIkV2YWxUcnVlIiA/IHRydWUgOiBmYWxz ZTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIkhpZGUiOg0KCQkJCQkJCWJT aG93ID0gcmV0VmFsID09ICJOb3RFeGlzdCIgPyB0cnVlIDogcmV0VmFsID09ICJF dmFsVHJ1ZSIgPyBmYWxzZSA6IHRydWU7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQlj YXNlICJTZWxlY3RlZCI6DQoJCQkJCQkJYlNob3cgPSB0cnVlOw0KCQkJCQkJCWJT ZWxlY3QgPSByZXRWYWwgPT0gIk5vdEV4aXN0IiA/IGZhbHNlIDogcmV0VmFsID09 ICJFdmFsVHJ1ZSIgPyB0cnVlIDogZmFsc2U7DQoJCQkJCQkJYnJlYWs7DQoJCQkJ CQlkZWZhdWx0Og0KCQkJCQkJCWJyZWFrOw0KCQkJCQl9DQoJCQkJCWlmIChiU2hv dykNCgkJCQkJew0KCQkJCQkJc2VsZWN0T2JqZWN0Lm9wdGlvbnMuYWRkKGFsbE9w dGlvbnNbaW5kZXhdLm9wdGlvbik7DQoJCQkJCQlpZiAoYlNlbGVjdCkNCgkJCQkJ CXsNCgkJCQkJCQlhbGxPcHRpb25zW2luZGV4XS5vcHRpb24uc2VsZWN0ZWQgPSB0 cnVlOw0KCQkJCQkJfQ0KCQkJCQkJZWxzZQ0KCQkJCQkJew0KCQkJCQkJCWlmIChx dWVzdGlvbi5nZXRRdWVzdGlvblR5cGUoKSA9PSAiQ0hPSUNFLUxJU1QiKQ0KCQkJ CQkJCXsNCgkJCQkJCQkJdmFyIGhhc05vU2VsZWN0ZWRPcHRpb24gPSB0cnVlOw0K CQkJCQkJCQlmb3IgKHZhciBpID0gMDsgaSA8IGFsbE9wdGlvbnMubGVuZ3RoOyBp KyspDQoJCQkJCQkJCXsNCgkJCQkJCQkJCWlmIChhbGxPcHRpb25zW2ldLm9wdGlv bi5zZWxlY3RlZCAmJiBpICE9IGluZGV4KQ0KCQkJCQkJCQkJew0KCQkJCQkJCQkJ CWhhc05vU2VsZWN0ZWRPcHRpb24gPSBmYWxzZTsNCgkJCQkJCQkJCQlicmVhazsN CgkJCQkJCQkJCX0NCgkJCQkJCQkJfQ0KCQkJCQkJCQlzZWxlY3RPYmplY3Qub3B0 aW9uc1swXS5zZWxlY3RlZCA9IGhhc05vU2VsZWN0ZWRPcHRpb24gPyB0cnVlIDog ZmFsc2U7DQoJCQkJCQkJfQ0KCQkJCQkJCWFsbE9wdGlvbnNbaW5kZXhdLm9wdGlv bi5zZWxlY3RlZCA9IGZhbHNlOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KDQoJ CQkJaWYgKHNlbGVjdE9iamVjdC5vcHRpb25zLmxlbmd0aCA9PSAwIHx8IG9wdGlv bnMubGVuZ3RoID09IDEgJiYgb3B0aW9uc1swXS52YWx1ZSA9PSAtMSkNCgkJCQl7 DQoJCQkJCXF1ZXN0aW9uLm5lZWRIaWRlID0gdHJ1ZTsNCgkJCQl9DQoJCQl9DQoN CgkJCWZ1bmN0aW9uIGdldE9wdGlvblRleHQoZSkNCgkJCXsNCgkJCQlyZXR1cm4g ZS5zZWxlY3RlZCA/IGUudGV4dCA6IG51bGw7DQoJCQl9DQoNCgkJCWZ1bmN0aW9u IGdldE9wdGlvblZhcmlhYmxlKGluZGV4KQ0KCQkJew0KCQkJCXZhciBlID0gb3B0 aW9uc1tpbmRleF07DQoNCgkJCQl2YXIgdmFyaWFibGUgPSBlLmdldEF0dHJpYnV0 ZSgidmFyIik7DQoNCgkJCQlpZiAodmFyaWFibGUgIT0gbnVsbCAmJiB2YXJpYWJs ZSAhPSAiIikNCgkJCQl7DQoJCQkJCXJldHVybiB7IG5hbWU6IHZhcmlhYmxlLCB2 YWx1ZTogZ2V0T3B0aW9uVGV4dChlKSB9Ow0KCQkJCX0NCg0KCQkJCXJldHVybiBu dWxsOw0KCQkJfQ0KDQoJCQlmdW5jdGlvbiBnZXRRdWVzdGlvblZhcmlhYmxlKCkN CgkJCXsNCgkJCQl2YXIgdmFyaWFibGUgPSBxdWVzdGlvbi5kb21PYmplY3QuZ2V0 QXR0cmlidXRlKCJ2YXIiKTsNCg0KCQkJCWlmICh2YXJpYWJsZSAhPSBudWxsICYm IHZhcmlhYmxlICE9ICIiKQ0KCQkJCXsNCgkJCQkJdmFyIHZhbHVlID0gIiI7DQoJ CQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBvcHRpb25zLmxlbmd0aDsg KytpbmRleCkNCgkJCQkJew0KCQkJCQkJdmFyIGUgPSBvcHRpb25zW2luZGV4XTsN CgkJCQkJCWlmIChlLnNlbGVjdGVkKQ0KCQkJCQkJew0KCQkJCQkJCXZhbHVlICs9 ICIsIiArIGdldE9wdGlvblRleHQoZSk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJ cmV0dXJuIHsgbmFtZTogdmFyaWFibGUsIHZhbHVlOiB2YWx1ZS5sZW5ndGggPiAx ID8gdmFsdWUuc3Vic3RyaW5nKDEpIDogbnVsbCB9Ow0KCQkJCX0NCg0KCQkJCXJl dHVybiBudWxsOw0KCQkJfQ0KDQoJCQl0aGlzLnBvcHVsYXRlVmFyaWFibGVzID0g ZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQl2YXIgdmFyaWFibGVzID0gW107DQoNCgkJ CQl2YXIgcXVlc3Rpb25WYXJpYWJsZSA9IGdldFF1ZXN0aW9uVmFyaWFibGUoKTsN CgkJCQlpZiAocXVlc3Rpb25WYXJpYWJsZSAhPSBudWxsKQ0KCQkJCXsNCgkJCQkJ dmFyaWFibGVzW3F1ZXN0aW9uVmFyaWFibGUubmFtZV0gPSBxdWVzdGlvblZhcmlh YmxlLnZhbHVlOw0KCQkJCX0NCg0KCQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5k ZXggPCBvcHRpb25zLmxlbmd0aDsgKytpbmRleCkNCgkJCQl7DQoJCQkJCXZhciBv cHRpb25WYXJpYWJsZSA9IGdldE9wdGlvblZhcmlhYmxlKGluZGV4KTsNCg0KCQkJ CQlpZiAob3B0aW9uVmFyaWFibGUgIT0gbnVsbCkNCgkJCQkJew0KCQkJCQkJdmFy aWFibGVzW29wdGlvblZhcmlhYmxlLm5hbWVdID0gb3B0aW9uVmFyaWFibGUudmFs dWU7DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQlyZXR1cm4gdmFyaWFibGVzOw0KCQkJ fQ0KDQoJCQl0aGlzLmdldE9wdGlvbkJ5SWQgPSBmdW5jdGlvbiAob3B0aW9uSWQp DQoJCQl7DQoJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVzdGlvbi5lbGVtZW50 cy5sZW5ndGg7ICsraSkNCgkJCQl7DQoJCQkJCXZhciBlbGVtZW50ID0gcXVlc3Rp b24uZWxlbWVudHNbaV07DQoJCQkJCWZvciAodmFyIGogPSAwOyBqIDwgZWxlbWVu dC5vcHRpb25zLmxlbmd0aDsgKytqKQ0KCQkJCQl7DQoJCQkJCQlpZiAoZWxlbWVu dC5vcHRpb25zW2pdLmlkID09IG9wdGlvbklkKQ0KCQkJCQkJew0KCQkJCQkJCXJl dHVybiBlbGVtZW50Lm9wdGlvbnNbal07DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9 DQoNCgkJCQlyZXR1cm4gbnVsbDsNCgkJCX0NCg0KCQkJZnVuY3Rpb24gaXNGaXhl ZChvcHRpb24pDQoJCQl7DQoJCQkJcmV0dXJuIChvcHRpb24udmFsdWUgPT0gIi0x IiB8fCBvcHRpb24uZ2V0QXR0cmlidXRlKCJmaXhlZCIpID09ICIxIik7DQoJCQl9 DQoNCgkJCXRoaXMucmFuZG9taXplID0gZnVuY3Rpb24gKCkNCgkJCXsNCgkJCQlp ZiAocXVlc3Rpb24ubmVlZFJhbmRvbWl6YXRpb24oKSkNCgkJCQl7DQoJCQkJCXZh ciByYW5kb21pemVkT3B0aW9ucyA9IFtdOw0KCQkJCQl2YXIgbm9uRml4ZWRPcHRp b25zID0gW107DQoNCgkJCQkJZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IGFs bE9wdGlvbnMubGVuZ3RoOyArK2luZGV4KQ0KCQkJCQl7DQoJCQkJCQlpZiAoaXNG aXhlZChhbGxPcHRpb25zW2luZGV4XS5vcHRpb24pKQ0KCQkJCQkJew0KCQkJCQkJ CXJhbmRvbWl6ZWRPcHRpb25zW2luZGV4XSA9IGFsbE9wdGlvbnNbaW5kZXhdOw0K CQkJCQkJfQ0KCQkJCQkJZWxzZQ0KCQkJCQkJew0KCQkJCQkJCW5vbkZpeGVkT3B0 aW9ucy5wdXNoKGFsbE9wdGlvbnNbaW5kZXhdKTsNCgkJCQkJCX0NCgkJCQkJfQ0K DQoJCQkJCVV0aWxzLnJhbmRvbWl6ZShub25GaXhlZE9wdGlvbnMpOw0KDQoJCQkJ CWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBhbGxPcHRpb25zLmxlbmd0aDsg KytpbmRleCkNCgkJCQkJew0KCQkJCQkJaWYgKHJhbmRvbWl6ZWRPcHRpb25zW2lu ZGV4XSA9PSBudWxsKQ0KCQkJCQkJew0KCQkJCQkJCWFsbE9wdGlvbnNbaW5kZXhd ID0gbm9uRml4ZWRPcHRpb25zLnNoaWZ0KCk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJ CQl9DQoJCQl9DQoNCgkJCXRoaXMuZ2V0QW5zd2VycyA9IGZ1bmN0aW9uICgpDQoJ CQl7DQoJCQkJdmFyIGFuc3dlcnMgPSBbXTsNCg0KCQkJCWZvciAodmFyIGluZGV4 ID0gMDsgaW5kZXggPCBvcHRpb25zLmxlbmd0aDsgKytpbmRleCkNCgkJCQl7DQoJ CQkJCXZhciBvcHRpb24gPSBvcHRpb25zW2luZGV4XTsNCgkJCQkJaWYgKG9wdGlv bi5zZWxlY3RlZCAmJiBvcHRpb24uaWQgIT0gIiIgJiYgb3B0aW9uLnZhbHVlICE9 ICIiICYmIG9wdGlvbi52YWx1ZSAhPSAtMSkNCgkJCQkJew0KCQkJCQkJYW5zd2Vy cy5wdXNoKHsgaWQ6IG9wdGlvbi5pZCwgdmFsdWU6IG9wdGlvbi52YWx1ZSwgdGV4 dDogb3B0aW9uLnRleHQgPyBvcHRpb24udGV4dCA6ICIiIH0pOw0KCQkJCQl9DQoJ CQkJfQ0KDQoJCQkJcmV0dXJuIGFuc3dlcnM7DQoJCQl9DQoNCgkJCXZhciBzdGF0 ZXMgPSBudWxsOw0KDQoJCQl0aGlzLnNhdmUgPSBmdW5jdGlvbiAoKQ0KCQkJew0K CQkJCXN0YXRlcyA9IFtdOw0KDQoJCQkJc3RhdGVzLnNlbGVjdGVkSW5kZXggPSBz ZWxlY3RPYmplY3Quc2VsZWN0ZWRJbmRleDsNCg0KCQkJCWZvciAodmFyIGluZGV4 ID0gMDsgaW5kZXggPCBhbGxPcHRpb25zLmxlbmd0aDsgKytpbmRleCkNCgkJCQl7 DQoJCQkJCXN0YXRlcy5wdXNoKGFsbE9wdGlvbnNbaW5kZXhdLm9wdGlvbi5zZWxl Y3RlZCk7DQoJCQkJfQ0KCQkJfQ0KDQoJCQl0aGlzLnJlc3RvcmUgPSBmdW5jdGlv biAoKQ0KCQkJew0KCQkJCXNlbGVjdE9iamVjdC5zZWxlY3RlZEluZGV4ID0gc3Rh dGVzLnNlbGVjdGVkSW5kZXg7DQoNCgkJCQlmb3IgKHZhciBpbmRleCA9IDA7IGlu ZGV4IDwgYWxsT3B0aW9ucy5sZW5ndGg7ICsraW5kZXgpDQoJCQkJew0KCQkJCQlh bGxPcHRpb25zW2luZGV4XS5vcHRpb24uc2VsZWN0ZWQgPSBzdGF0ZXNbaW5kZXhd Ow0KCQkJCX0NCgkJCX0NCgkJfQ0KCX07DQoNCglNUy5TdXBwb3J0LkZtcy5CcmFu Y2hSdWxlID0gZnVuY3Rpb24gKG9wdGlvbklkLCBvcHRpb25WYWx1ZSwgdGFyZ2V0 KQ0KCXsNCgkJdGhpcy5vcHRpb25JZCA9IG9wdGlvbklkOw0KCQl0aGlzLm9wdGlv blZhbHVlID0gb3B0aW9uVmFsdWU7DQoJCXRoaXMudGFyZ2V0ID0gdGFyZ2V0Ow0K DQoJCXRoaXMubWF0Y2ggPSBmdW5jdGlvbiAoZWxlbWVudCkNCgkJew0KCQkJaWYg KChlbGVtZW50LnZpc2libGUgJiYgZWxlbWVudC5jaGVja2VkKSB8fCBlbGVtZW50 LnNlbGVjdGVkKQ0KCQkJew0KCQkJCWlmICh0eXBlb2YgKG9wdGlvbklkKSAhPSAi dW5kZWZpbmVkIiAmJiBvcHRpb25JZCAhPSBudWxsKQ0KCQkJCXsNCgkJCQkJaWYg KGVsZW1lbnQuaWQgPT0gb3B0aW9uSWQpDQoJCQkJCXsNCgkJCQkJCWlmICh0eXBl b2YgKG9wdGlvblZhbHVlKSAhPSAidW5kZWZpbmVkIiAmJiBvcHRpb25WYWx1ZSAh PSBudWxsKQ0KCQkJCQkJew0KCQkJCQkJCWlmIChlbGVtZW50LnZhbHVlID09IG9w dGlvblZhbHVlKQ0KCQkJCQkJCXsNCgkJCQkJCQkJcmV0dXJuIHRhcmdldDsNCgkJ CQkJCQl9DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7DQoJCQkJCQkJcmV0 dXJuIHRhcmdldDsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCQllbHNlDQoJ CQkJew0KCQkJCQlyZXR1cm4gdGFyZ2V0Ow0KCQkJCX0NCgkJCX0NCgkJCWVsc2Ug aWYgKGVsZW1lbnQub3B0aW9ucyAhPSBudWxsKQ0KCQkJew0KCQkJCWZvciAodmFy IGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50Lm9wdGlvbnMubGVuZ3RoOyArK2lu ZGV4KQ0KCQkJCXsNCgkJCQkJaWYgKHRhcmdldCA9PSB0aGlzLm1hdGNoKGVsZW1l bnQub3B0aW9uc1tpbmRleF0pKQ0KCQkJCQl7DQoJCQkJCQlyZXR1cm4gdGFyZ2V0 Ow0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4gLTE7DQoJCX0NCgl9 DQoNCglNUy5TdXBwb3J0LkZtcy5Db25kaXRpb24gPSBmdW5jdGlvbiAocGFnZUlk LCBxdWVzdGlvbklkLCBvcHRpb25JZCwgb3B0aW9uVmFsdWUpDQoJew0KCQl0aGlz LmdldFBhZ2VJZCA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXJldHVybiBwYWdlSWQ7 DQoJCX0NCg0KCQl0aGlzLmdldFF1ZXN0aW9uSWQgPSBmdW5jdGlvbiAoKQ0KCQl7 DQoJCQlyZXR1cm4gcXVlc3Rpb25JZDsNCgkJfQ0KDQoJCXRoaXMuZ2V0T3B0aW9u SWQgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4gb3B0aW9uSWQ7DQoJCX0N Cg0KCQl0aGlzLmdldE9wdGlvblZhbHVlID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJ cmV0dXJuIG9wdGlvblZhbHVlOw0KCQl9DQoNCgkJdGhpcy5ldmFsdWF0ZSA9IGZ1 bmN0aW9uIChzdXJ2ZXkpDQoJCXsNCgkJCXZhciBwYWdlID0gc3VydmV5LmdldFBh Z2VCeUlkKHBhZ2VJZCk7DQoJCQlpZiAocGFnZSAmJiBwYWdlLm1vZGlmaWVkKQ0K CQkJew0KCQkJCXZhciBxdWVzdGlvbiA9IHBhZ2UuZ2V0UXVlc3Rpb25CeUlkKHF1 ZXN0aW9uSWQpOw0KCQkJCWlmIChxdWVzdGlvbikNCgkJCQl7DQoJCQkJCXZhciBv cHRpb24gPSBxdWVzdGlvbi5nZXRPcHRpb25CeUlkKG9wdGlvbklkKTsNCgkJCQkJ aWYgKG9wdGlvbikNCgkJCQkJew0KCQkJCQkJaWYgKCgob3B0aW9uLnZpc2libGUg JiYgb3B0aW9uLmNoZWNrZWQpICYmICgocXVlc3Rpb24uZ2V0UXVlc3Rpb25UeXBl KCkgIT0gIkNIT0lDRS1TRVEiICYmIHF1ZXN0aW9uLmdldFF1ZXN0aW9uVHlwZSgp ICE9ICJDSE9JQ0UtSE9SIikgfHwgb3B0aW9uLnZhbHVlID09IG9wdGlvblZhbHVl KSkgfHwgb3B0aW9uLnNlbGVjdGVkKQ0KCQkJCQkJew0KCQkJCQkJCXJldHVybiB0 cnVlOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4g ZmFsc2U7DQoJCX0NCgl9DQoNCglNUy5TdXBwb3J0LkZtcy5Db250ZXh0QnJhbmNo UnVsZUNvbmRpdGlvbiA9IGZ1bmN0aW9uIChjb250ZXh0TmFtZSwgY29tcGFyaXNv bk9wZXJhdG9yLCBleHBlY3RlZFZhbHVlKQ0KCXsNCgkJdGhpcy5jb250ZXh0TmFt ZSA9IGNvbnRleHROYW1lOw0KCQl0aGlzLmNvbXBhcmlzb25PcGVyYXRvciA9IGNv bXBhcmlzb25PcGVyYXRvcjsNCgkJdGhpcy5leHBlY3RlZFZhbHVlID0gZXhwZWN0 ZWRWYWx1ZTsNCg0KCQlpZiAodHlwZW9mIE1TLlN1cHBvcnQuRm1zLkNvbnRleHRC cmFuY2hSdWxlQ29uZGl0aW9uLmV2YWx1YXRvcnMgPT0gInVuZGVmaW5lZCIpDQoJ CXsNCgkJCU1TLlN1cHBvcnQuRm1zLkNvbnRleHRCcmFuY2hSdWxlQ29uZGl0aW9u LmNyZWF0ZVJlZ2V4cCA9IGZ1bmN0aW9uIChzdHIpDQoJCQl7DQoJCQkJdmFyIGkg PSBzdHIubGFzdEluZGV4T2YoIi8iKTsNCgkJCQl2YXIgcmUgPSBudWxsOw0KCQkJ CXRyeQ0KCQkJCXsNCgkJCQkJcmUgPSBuZXcgUmVnRXhwKHN0ci5zdWJzdHJpbmco MSwgaSksIHN0ci5zdWJzdHJpbmcoaSArIDEpKTsNCgkJCQl9DQoJCQkJY2F0Y2gg KGVycikNCgkJCQl7DQoJCQkJCXJldHVybiBudWxsOw0KCQkJCX0NCg0KCQkJCXJl dHVybiByZTsNCgkJCX07DQoNCgkJCU1TLlN1cHBvcnQuRm1zLkNvbnRleHRCcmFu Y2hSdWxlQ29uZGl0aW9uLmV2YWx1YXRvcnMgPSB7DQoJCQkJIj0iOiBmdW5jdGlv biAodmFsLCBleHBlY3RlZFZhbHVlKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHZhbC50 b1N0cmluZygpID09PSBleHBlY3RlZFZhbHVlOw0KCQkJCX0sDQoJCQkJIjw+Ijog ZnVuY3Rpb24gKHZhbCwgZXhwZWN0ZWRWYWx1ZSkNCgkJCQl7DQoJCQkJCXJldHVy biB2YWwudG9TdHJpbmcoKSAhPT0gZXhwZWN0ZWRWYWx1ZTsNCgkJCQl9LA0KCQkJ CSI+IjogZnVuY3Rpb24gKHZhbCwgZXhwZWN0ZWRWYWx1ZSkNCgkJCQl7DQoJCQkJ CXJldHVybiB2YWwudG9TdHJpbmcoKSA+IGV4cGVjdGVkVmFsdWU7DQoJCQkJfSwN CgkJCQkiPCI6IGZ1bmN0aW9uICh2YWwsIGV4cGVjdGVkVmFsdWUpDQoJCQkJew0K CQkJCQlyZXR1cm4gdmFsLnRvU3RyaW5nKCkgPCBleHBlY3RlZFZhbHVlOw0KCQkJ CX0sDQoJCQkJIj49IjogZnVuY3Rpb24gKHZhbCwgZXhwZWN0ZWRWYWx1ZSkNCgkJ CQl7DQoJCQkJCXJldHVybiB2YWwudG9TdHJpbmcoKSA+PSBleHBlY3RlZFZhbHVl Ow0KCQkJCX0sDQoJCQkJIjw9IjogZnVuY3Rpb24gKHZhbCwgZXhwZWN0ZWRWYWx1 ZSkNCgkJCQl7DQoJCQkJCXJldHVybiB2YWwudG9TdHJpbmcoKSA8PSBleHBlY3Rl ZFZhbHVlOw0KCQkJCX0sDQoJCQkJIkNvbnRhaW5zIjogZnVuY3Rpb24gKHZhbCwg ZXhwZWN0ZWRWYWx1ZSkNCgkJCQl7DQoJCQkJCXJldHVybiB2YWwudG9TdHJpbmco KS5pbmRleE9mKGV4cGVjdGVkVmFsdWUpICE9PSAtMTsNCgkJCQl9LA0KCQkJCSJO b3QgQ29udGFpbiI6IGZ1bmN0aW9uICh2YWwsIGV4cGVjdGVkVmFsdWUpDQoJCQkJ ew0KCQkJCQlyZXR1cm4gdmFsLnRvU3RyaW5nKCkuaW5kZXhPZihleHBlY3RlZFZh bHVlKSA9PT0gLTE7DQoJCQkJfSwNCgkJCQkiU3RhcnRzIFdpdGgiOiBmdW5jdGlv biAodmFsLCBleHBlY3RlZFZhbHVlKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHZhbC50 b1N0cmluZygpLmluZGV4T2YoZXhwZWN0ZWRWYWx1ZSkgPT09IDA7DQoJCQkJfSwN CgkJCQkiTm90IFN0YXJ0IFdpdGgiOiBmdW5jdGlvbiAodmFsLCBleHBlY3RlZFZh bHVlKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHZhbC50b1N0cmluZygpLmluZGV4T2Yo ZXhwZWN0ZWRWYWx1ZSkgIT09IDA7DQoJCQkJfSwNCgkJCQkiRW5kcyBXaXRoIjog ZnVuY3Rpb24gKHZhbCwgZXhwZWN0ZWRWYWx1ZSkNCgkJCQl7DQoJCQkJCXZhbCA9 IHZhbC50b1N0cmluZygpOw0KCQkJCQl2YXIgaSA9IHZhbC5sYXN0SW5kZXhPZihl eHBlY3RlZFZhbHVlKTsNCgkJCQkJcmV0dXJuIGkgIT09IC0xICYmIGkgPT09ICh2 YWwubGVuZ3RoIC0gZXhwZWN0ZWRWYWx1ZS5sZW5ndGgpOw0KCQkJCX0sDQoJCQkJ Ik5vdCBFbmQgV2l0aCI6IGZ1bmN0aW9uICh2YWwsIGV4cGVjdGVkVmFsdWUpDQoJ CQkJew0KCQkJCQl2YWwgPSB2YWwudG9TdHJpbmcoKTsNCgkJCQkJdmFyIGkgPSB2 YWwubGFzdEluZGV4T2YoZXhwZWN0ZWRWYWx1ZSk7DQoJCQkJCXJldHVybiBpID09 PSAtMSB8fCB2YWwubGFzdEluZGV4T2YoZXhwZWN0ZWRWYWx1ZSkgIT09ICh2YWwu bGVuZ3RoIC0gZXhwZWN0ZWRWYWx1ZS5sZW5ndGgpOw0KCQkJCX0sDQoJCQkJIk1h dGNoZXMiOiBmdW5jdGlvbiAodmFsLCBleHBlY3RlZFZhbHVlKQ0KCQkJCXsNCgkJ CQkJdmFyIHJlID0gTVMuU3VwcG9ydC5GbXMuQ29udGV4dEJyYW5jaFJ1bGVDb25k aXRpb24uY3JlYXRlUmVnZXhwKGV4cGVjdGVkVmFsdWUpOw0KCQkJCQlyZXR1cm4g cmUgPyByZS50ZXN0KHZhbC50b1N0cmluZygpKSA6IGZhbHNlOw0KCQkJCX0sDQoJ CQkJIk5vdCBNYXRjaCI6IGZ1bmN0aW9uICh2YWwsIGV4cGVjdGVkVmFsdWUpDQoJ CQkJew0KCQkJCQl2YXIgcmUgPSBNUy5TdXBwb3J0LkZtcy5Db250ZXh0QnJhbmNo UnVsZUNvbmRpdGlvbi5jcmVhdGVSZWdleHAoZXhwZWN0ZWRWYWx1ZSk7DQoJCQkJ CXJldHVybiByZSA/ICEocmUudGVzdCh2YWwudG9TdHJpbmcoKSkpIDogZmFsc2U7 DQoJCQkJfSwNCgkJCQkiRXhpc3RzIjogZnVuY3Rpb24gKHZhbCwgZXhwZWN0ZWRW YWx1ZSkNCgkJCQl7DQoJCQkJCXJldHVybiB0eXBlb2YgdmFsICE9ICd1bmRlZmlu ZWQnICYmIHZhbCAhPSBudWxsOw0KCQkJCX0sDQoJCQkJIk5vdCBFeGlzdCI6IGZ1 bmN0aW9uICh2YWwsIGV4cGVjdGVkVmFsdWUpDQoJCQkJew0KCQkJCQlyZXR1cm4g dHlwZW9mIHZhbCA9PSAndW5kZWZpbmVkJyB8fCB2YWwgPT0gbnVsbDsNCgkJCQl9 DQoJCQl9Ow0KCQl9DQoNCgkJdGhpcy5ldmFsdWF0ZSA9IGZ1bmN0aW9uIChjb250 ZXh0KQ0KCQl7DQoJCQlpZiAoY29udGV4dCA9PSBudWxsKQ0KCQkJew0KCQkJCXJl dHVybiBmYWxzZTsNCgkJCX0NCg0KCQkJdmFyIHZhbCA9IGNvbnRleHRbdGhpcy5j b250ZXh0TmFtZV07DQoJCQlpZiAoKHR5cGVvZiB2YWwgPT0gInVuZGVmaW5lZCIg fHwgdmFsID09IG51bGwpICYmIHRoaXMuY29tcGFyaXNvbk9wZXJhdG9yICE9ICJF eGlzdHMiICYmIHRoaXMuY29tcGFyaXNvbk9wZXJhdG9yICE9ICJOb3QgRXhpc3Qi KQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCg0KCQkJdmFyIGV2YWx1 YXRvciA9IE1TLlN1cHBvcnQuRm1zLkNvbnRleHRCcmFuY2hSdWxlQ29uZGl0aW9u LmV2YWx1YXRvcnNbdGhpcy5jb21wYXJpc29uT3BlcmF0b3JdOw0KCQkJcmV0dXJu IGV2YWx1YXRvciA/IGV2YWx1YXRvcih2YWwsIHRoaXMuZXhwZWN0ZWRWYWx1ZSkg OiBmYWxzZTsNCgkJfQ0KCX0NCg0KCU1TLlN1cHBvcnQuRm1zLkNvbXBvdW5kaW5n QnJhbmNoUnVsZSA9IGZ1bmN0aW9uIChuZXh0UGFnZUlkLCBwcm9iYWJpbGl0eSkN Cgl7DQoJCXRoaXMuY29uZGl0aW9ucyA9IFtdOw0KCQl0aGlzLmNvbnRleHRDb25k aXRpb25zID0gW107DQoJCXRoaXMubmV4dFBhZ2VJZCA9IG5leHRQYWdlSWQ7DQoJ CXRoaXMucHJvYmFiaWxpdHkgPSBwcm9iYWJpbGl0eTsNCg0KCQl0aGlzLmFkZENv bmRpdGlvbnMgPSBmdW5jdGlvbiAoY2JycykNCgkJew0KCQkJZm9yICh2YXIgbiA9 IDA7IG4gPCBjYnJzLmxlbmd0aCAtIDE7IG4rKykNCgkJCXsNCgkJCQl2YXIgZGF0 YXMgPSBjYnJzW25dLnNwbGl0KCItIik7DQoJCQkJdmFyIHNvdXJjZVBhZ2VJZCA9 IHBhcnNlSW50KGRhdGFzWzBdKTsNCgkJCQl2YXIgcXVlc3Rpb25JZCA9IHBhcnNl SW50KGRhdGFzWzFdKTsNCgkJCQl2YXIgb3B0aW9uSWQgPSBwYXJzZUludChkYXRh c1syXSk7DQoJCQkJdmFyIG9wdGlvblZhbHVlID0gcGFyc2VJbnQoZGF0YXNbM10p Ow0KCQkJCXRoaXMuY29uZGl0aW9ucy5wdXNoKG5ldyBNUy5TdXBwb3J0LkZtcy5D b25kaXRpb24oc291cmNlUGFnZUlkLCBxdWVzdGlvbklkLCBvcHRpb25JZCwgb3B0 aW9uVmFsdWUpKTsNCgkJCX0NCg0KCQl9DQoNCgkJdGhpcy5hZGRDb250ZXh0Q29u ZGl0aW9ucyA9IGZ1bmN0aW9uIChjbmJycykNCgkJew0KCQkJZm9yICh2YXIgbiA9 IDA7IG4gPCBjbmJycy5sZW5ndGg7IG4rKykNCgkJCXsNCgkJCQl2YXIgY25iciA9 IGNuYnJzW25dOw0KCQkJCXZhciBjb250ZXh0TmFtZSA9IGNuYnIuZ2V0QXR0cmli dXRlKCdkYXRhLWNuYW1lJyk7DQoJCQkJdmFyIGNvbXBhcmlzaW9uT3BlcmF0b3Ig PSBjbmJyLmdldEF0dHJpYnV0ZSgnZGF0YS1jb3BlcicpOw0KCQkJCXZhciBleHBl Y3RlZFZhbHVlID0gY25ici5nZXRBdHRyaWJ1dGUoJ2RhdGEtY3ZhbCcpOw0KCQkJ CXRoaXMuY29udGV4dENvbmRpdGlvbnMucHVzaChuZXcgTVMuU3VwcG9ydC5GbXMu Q29udGV4dEJyYW5jaFJ1bGVDb25kaXRpb24oY29udGV4dE5hbWUsIGNvbXBhcmlz aW9uT3BlcmF0b3IsIGV4cGVjdGVkVmFsdWUpKTsNCgkJCX0NCgkJfQ0KDQoJCXRo aXMuZXZhbHVhdGUgPSBmdW5jdGlvbiAoc3VydmV5LCBjb250ZXh0KQ0KCQl7DQoJ CQlmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuY29uZGl0aW9ucy5sZW5ndGg7ICsr aSkNCgkJCXsNCgkJCQlpZiAoIXRoaXMuY29uZGl0aW9uc1tpXS5ldmFsdWF0ZShz dXJ2ZXkpKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0N Cg0KCQkJZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmNvbnRleHRDb25kaXRpb25z Lmxlbmd0aDsgKytpKQ0KCQkJew0KCQkJCWlmICghdGhpcy5jb250ZXh0Q29uZGl0 aW9uc1tpXS5ldmFsdWF0ZShjb250ZXh0KSkNCgkJCQl7DQoJCQkJCXJldHVybiBm YWxzZTsNCgkJCQl9DQoJCQl9DQoJCQkvLyBpZiBoaXQgdGhlIHByb2JhYmlsaXR5 LCByZXR1cm4gdHJ1ZQ0KCQkJLy8gZWxzZSByZXR1cm4gZmFsc2UNCgkJCWlmIChp c05hTih0aGlzLnByb2JhYmlsaXR5KSB8fCB0aGlzLnByb2JhYmlsaXR5IDwgMCkN CgkJCXsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJCWVsc2UgaWYgKHRoaXMu cHJvYmFiaWxpdHkgPiAwICYmIE1hdGgucmFuZG9tKCkgKiAxMDAgPD0gdGhpcy5w cm9iYWJpbGl0eSkNCgkJCXsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJCWVs c2UNCgkJCXsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoJCQlyZXR1cm4gdHJ1 ZTsNCgkJfQ0KCX0NCg0KCU1TLlN1cHBvcnQuRm1zLkV4cHJlc3Npb25XcmFwcGVy ID0gZnVuY3Rpb24gKGV4cHJlc3Npb24sIHN1cnZleSkNCgl7DQoJCXZhciB2YXJp YWJsZXMgPSBzdXJ2ZXkuZ2V0VmFyaWFibGVzKCk7DQoJCXZhciBjb250ZXh0ID0g c3VydmV5LmdldENvbnRleHQoKTsNCgkJdmFyIHVybFBhcmFtZXRlcnMgPSBzdXJ2 ZXkudXJsUGFyYW1ldGVyczsNCg0KCQl2YXIgcmVGdW5jID0gLygoQU5EfE9SfE5P VHxNYXRjaHxnZXRWYXJpYWJsZXxnZXRDb250ZXh0fEdyZWF0ZXJUaGFufExlc3NU aGFufEdyZWF0ZXJUaGFuT3JFcXVhbHxMZXNzVGhhbk9yRXF1YWx8RXF1YWwpXCgp L2c7DQoJCXZhciByZVZhciA9IC8oe1xAW159XSt9KS9naTsNCgkJdmFyIHJlQ29u dGV4dCA9IC8oe1wkW159XSt9KS9naTsNCgkJdmFyIHRhZ1N0YXJ0ID0gInsiOw0K CQl2YXIgdGFnRW5kID0gIn0iOw0KCQl2YXIgdmFyUHJlZml4ID0gIkAiOw0KCQl2 YXIgY29udGV4dFByZWZpeCA9ICIkIjsNCgkJdmFyIHBhcmFtZXRlclByZWZpeCA9 ICIkVXJsOiI7DQoNCgkJdGhpcy5lbmNvZGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1 ZSkNCgkJew0KCQkJaWYgKHR5cGVvZiAodmFsdWUpID09ICJ1bmRlZmluZWQiIHx8 IHZhbHVlID09IG51bGwpDQoJCQl7DQoJCQkJcmV0dXJuIHZhbHVlOw0KCQkJfSBl bHNlDQoJCQl7DQoJCQkJcmV0dXJuIHZhbHVlLnJlcGxhY2UoLyYvZywgIiZhbXA7 IikucmVwbGFjZSgvfS9nLCAiJnJiOyIpLnJlcGxhY2UoL3svZywgIiZsYjsiKTsN CgkJCX0NCgkJfQ0KDQoJCXRoaXMuZGVjb2RlVmFsdWUgPSBmdW5jdGlvbiAodmFs dWUpDQoJCXsNCgkJCWlmICh0eXBlb2YgKHZhbHVlKSA9PSAidW5kZWZpbmVkIiB8 fCB2YWx1ZSA9PSBudWxsKQ0KCQkJew0KCQkJCXJldHVybiB2YWx1ZTsNCgkJCX0g ZWxzZQ0KCQkJew0KCQkJCXJldHVybiB2YWx1ZS5yZXBsYWNlKC8mcmI7L2csICJ9 IikucmVwbGFjZSgvJmxiOy9nLCJ7IikucmVwbGFjZSgvJmFtcDsvZywgIiYiKTsN CgkJCX0NCgkJfQ0KDQoJCXRoaXMuZ2V0VmFyaWFibGUgPSBmdW5jdGlvbiAodmFy aWFibGVOYW1lKQ0KCQl7DQoJCQkvL3ZhcmlhYmxlTmFtZSBmb3JtYXQ6IHtAYWJj fQ0KCQkJdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lLnJlcGxhY2UoL3tcQChb Xn1dKyl9L2dpLCAiJDEiKTsNCgkJCXJldHVybiB0aGlzLmVuY29kZVZhbHVlKHZh cmlhYmxlc1t2YXJpYWJsZU5hbWVdKTsNCgkJfQ0KDQoJCXRoaXMuZ2V0Q29udGV4 dCA9IGZ1bmN0aW9uIChjb250ZXh0TmFtZSkNCgkJew0KCQkJLy8gY29udGV4dE5h bWUgZm9ybWF0OiB7JGFiYyJ9DQoJCQkvLyB1cmxQYXJhbWV0ZXJOYW1lIGZvcm1h dDogeyRVcmw6YWJjfQ0KCQkJLy9EZWNvZGUgdGhlIGNvbnRleHROYW1lIGlmIHRo ZXJlIGlzIHNvbWUgZW5jb2RlZCB0YWcgc3ltYm9scyAieyJ8ICJ9Ig0KCQkJaWYg KGNvbnRleHROYW1lLnN1YnN0cmluZygxLCBwYXJhbWV0ZXJQcmVmaXgubGVuZ3Ro ICsgMSkgPT0gcGFyYW1ldGVyUHJlZml4KQ0KCQkJew0KCQkJCWNvbnRleHROYW1l ID0gY29udGV4dE5hbWUucmVwbGFjZSgve1wkVXJsOihbXn1dKyl9L2dpLCAiJDEi KS5yZXBsYWNlKC9cWzB4N2JcXS9nLCAieyIpLnJlcGxhY2UoL1xbMHg3ZFxdL2cs ICJ9IikudG9Mb3dlckNhc2UoKTsNCgkJCQlyZXR1cm4gdGhpcy5lbmNvZGVWYWx1 ZSh1cmxQYXJhbWV0ZXJzW2NvbnRleHROYW1lXSk7DQoJCQl9DQoJCQllbHNlDQoJ CQl7DQoJCQkJY29udGV4dE5hbWUgPSBjb250ZXh0TmFtZS5yZXBsYWNlKC97XCQo W159XSspfS9naSwgIiQxIikucmVwbGFjZSgvXFsweDdiXF0vZywgInsiKS5yZXBs YWNlKC9cWzB4N2RcXS9nLCAifSIpOw0KCQkJCXJldHVybiB0aGlzLmVuY29kZVZh bHVlKGNvbnRleHRbY29udGV4dE5hbWVdKTsNCgkJCX0NCgkJfQ0KDQoJCS8vQ29t cGF0aWJsZSB3aXRoIG9sZCBzdXJ2ZXkgeG1sIGZvcm1hdC4NCgkJdGhpcy5pc0Rl ZmluZWQgPSBmdW5jdGlvbiAobmFtZSkNCgkJew0KCQkJcmV0dXJuIHRoaXMuZ2V0 VmFyaWFibGUobmFtZSkgPT0gbnVsbCA/IGZhbHNlIDogdHJ1ZTsNCgkJfQ0KDQoJ CXRoaXMuTWF0Y2ggPSBmdW5jdGlvbiAobmFtZSwgcGF0dGVybikNCgkJew0KCQkJ cmV0dXJuIHBhdHRlcm4udGVzdChuYW1lKTsNCgkJfQ0KDQoNCgkJdGhpcy5HcmVh dGVyVGhhbiA9IGZ1bmN0aW9uIChsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpDQoJCXsN CgkJCXJldHVybiBsZWZ0VmFsdWUgPiByaWdodFZhbHVlOw0KCQl9DQoNCgkJdGhp cy5MZXNzVGhhbiA9IGZ1bmN0aW9uIChsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpDQoJ CXsNCgkJCXJldHVybiBsZWZ0VmFsdWUgPCByaWdodFZhbHVlOw0KCQl9DQoNCg0K CQl0aGlzLkdyZWF0ZXJUaGFuT3JFcXVhbCA9IGZ1bmN0aW9uIChsZWZ0VmFsdWUs IHJpZ2h0VmFsdWUpDQoJCXsNCgkJCXJldHVybiBsZWZ0VmFsdWUgPj0gcmlnaHRW YWx1ZTsNCgkJfQ0KDQoNCgkJdGhpcy5MZXNzVGhhbk9yRXF1YWwgPSBmdW5jdGlv biAobGVmdFZhbHVlLCByaWdodFZhbHVlKQ0KCQl7DQoJCQlyZXR1cm4gbGVmdFZh bHVlIDw9IHJpZ2h0VmFsdWU7DQoJCX0NCg0KDQoJCXRoaXMuRXF1YWwgPSBmdW5j dGlvbiAobGVmdFZhbHVlLCByaWdodFZhbHVlKQ0KCQl7DQoJCQlyZXR1cm4gbGVm dFZhbHVlID09IHJpZ2h0VmFsdWU7DQoJCX0NCg0KCQl0aGlzLkFORCA9IGZ1bmN0 aW9uICgpDQoJCXsNCgkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBhcmd1 bWVudHMubGVuZ3RoOyArK2luZGV4KQ0KCQkJew0KCQkJCWlmICghYXJndW1lbnRz W2luZGV4XSkNCgkJCQl7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9 DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KDQoJCXRoaXMuT1IgPSBmdW5jdGlvbiAo KQ0KCQl7DQoJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgYXJndW1lbnRz Lmxlbmd0aDsgKytpbmRleCkNCgkJCXsNCgkJCQlpZiAoYXJndW1lbnRzW2luZGV4 XSkNCgkJCQl7DQoJCQkJCXJldHVybiB0cnVlOw0KCQkJCX0NCgkJCX0NCgkJCXJl dHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMuTk9UID0gZnVuY3Rpb24gKHJlc3Vs dCkNCgkJew0KCQkJcmV0dXJuICFyZXN1bHQ7DQoJCX0NCg0KCQl0aGlzLlRyaW0g PSBmdW5jdGlvbiAoc3RyKQ0KCQl7DQoJCQlyZXR1cm4gc3RyLnJlcGxhY2UoLyhe XHMqKXwoXHMqJCkvZywgIiIpLnJlcGxhY2UoL1xyL2csICIiKS5yZXBsYWNlKC9c bi9nLCAiIikucmVwbGFjZSgvXHQvZywgIiIpOw0KCQl9DQoNCgkJdGhpcy5yZXBs YWNlU3RhcnRFbmRUYWcgPSBmdW5jdGlvbiAoc3RyKQ0KCQl7DQoJCQl2YXIgZXNj YXBlU3RhcnRUYWcgPSAiWzB4N2JdIiwgZXNjYXBlRW5kVGFnID0gIlsweDdkXSI7 DQoJCQl2YXIgc3RhcnRJbmRleCA9IHN0ci5pbmRleE9mKCJ7QCIpOw0KCQkJaWYg KHN0YXJ0SW5kZXggPCAwKQ0KCQkJew0KCQkJCXN0YXJ0SW5kZXggPSBzdHIuaW5k ZXhPZigieyQiKTsNCgkJCX0NCg0KCQkJdmFyIGVuZEluZGV4ID0gc3RyLmxhc3RJ bmRleE9mKHRhZ0VuZCk7DQoNCgkJCWlmIChzdGFydEluZGV4IDwgMCB8fCBlbmRJ bmRleCA8IDApDQoJCQl7DQoJCQkJcmV0dXJuIHN0cjsNCgkJCX0NCgkJCXZhciBz dGFydCA9IHN0ci5zdWJzdHJpbmcoMCwgc3RhcnRJbmRleCArIDIpOw0KCQkJdmFy IGVuZCA9IHN0ci5zdWJzdHJpbmcoZW5kSW5kZXgpOw0KDQoJCQl2YXIgdGFnQ29u dGVudCA9IHN0ci5zdWJzdHJpbmcoc3RhcnRJbmRleCArIDIsIGVuZEluZGV4KTsN CgkJCXRhZ0NvbnRlbnQgPSB0YWdDb250ZW50LnJlcGxhY2UoL3svZywgZXNjYXBl U3RhcnRUYWcpLnJlcGxhY2UoL30vZywgZXNjYXBlRW5kVGFnKTsNCgkJCWlmICh0 YWdDb250ZW50ID09IG51bGwgfHwgdGFnQ29udGVudCA9PSAiIikNCgkJCXsNCgkJ CQlyZXR1cm4gIiI7DQoJCQl9DQoJCQlyZXR1cm4gc3RhcnQgKyB0YWdDb250ZW50 ICsgZW5kOw0KCQl9DQoNCgkJdGhpcy5maWx0ZXJJbnZhbGlkQ2hhcmFjdGVycyA9 IGZ1bmN0aW9uIChleHByZXNzaW9uKQ0KCQl7DQoJCQl2YXIgaW5uZXJTdGFjayA9 IFtdOw0KCQkJdmFyIGluZGV4ID0gMCwgdGVtcCA9IG51bGw7DQoJCQl2YXIgc3Ry UmV0ID0gIiI7DQoNCgkJCXdoaWxlIChpbmRleCA8IGV4cHJlc3Npb24ubGVuZ3Ro KQ0KCQkJew0KCQkJCXRlbXAgPSBleHByZXNzaW9uLmNoYXJBdChpbmRleCk7DQoJ CQkJc3dpdGNoICh0ZW1wKQ0KCQkJCXsNCgkJCQkJY2FzZSB0YWdTdGFydDoNCgkJ CQkJY2FzZSB0YWdFbmQ6DQoJCQkJCWRlZmF1bHQ6DQoJCQkJCQlpbm5lclN0YWNr LnB1c2godGVtcCk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSB2YXJQcmVmaXg6 DQoJCQkJCWNhc2UgY29udGV4dFByZWZpeDoNCgkJCQkJY2FzZSBwYXJhbWV0ZXJQ cmVmaXg6DQoJCQkJCQlpZiAoaW5uZXJTdGFja1tpbm5lclN0YWNrLmxlbmd0aCAt IDFdID09IHRhZ1N0YXJ0KQ0KCQkJCQkJew0KCQkJCQkJCWlubmVyU3RhY2tbaW5u ZXJTdGFjay5sZW5ndGggLSAxXSArPSB0ZW1wOw0KCQkJCQkJCWlmIChpbm5lclN0 YWNrLmxlbmd0aCA+IDEpDQoJCQkJCQkJew0KCQkJCQkJCQlzdHJSZXQgKz0gdGhp cy5yZXBsYWNlU3RhcnRFbmRUYWcoaW5uZXJTdGFjay5zbGljZSgwLCBpbm5lclN0 YWNrLmxlbmd0aCAtIDEpLmpvaW4oIiIpKTsNCgkJCQkJCQl9DQoJCQkJCQkJaW5u ZXJTdGFjayA9IGlubmVyU3RhY2suc2xpY2UoaW5uZXJTdGFjay5sZW5ndGggLSAx KTsNCgkJCQkJCX0NCgkJCQkJCWVsc2UNCgkJCQkJCXsNCgkJCQkJCQlpbm5lclN0 YWNrLnB1c2godGVtcCk7DQoJCQkJCQl9DQoJCQkJCQlicmVhazsNCgkJCQl9DQoJ CQkJaW5kZXgrKzsNCgkJCX0NCgkJCWlmIChpbm5lclN0YWNrLmxlbmd0aCA+IDAp DQoJCQl7DQoJCQkJc3RyUmV0ICs9IHRoaXMucmVwbGFjZVN0YXJ0RW5kVGFnKGlu bmVyU3RhY2suam9pbigiIikpOw0KCQkJfQ0KCQkJcmV0dXJuIHN0clJldDsNCgkJ fQ0KDQoNCg0KCQlleHByZXNzaW9uID0gdGhpcy5maWx0ZXJJbnZhbGlkQ2hhcmFj dGVycyh0aGlzLlRyaW0oZXhwcmVzc2lvbikpOw0KCQlleHByZXNzaW9uID0gZXhw cmVzc2lvbi5yZXBsYWNlKHJlRnVuYywgInRoaXMuJDEiKTsNCgkJZXhwcmVzc2lv biA9IGV4cHJlc3Npb24ucmVwbGFjZShyZVZhciwgInRoaXMuZ2V0VmFyaWFibGUo XCIkMVwiKSIpOw0KCQlleHByZXNzaW9uID0gZXhwcmVzc2lvbi5yZXBsYWNlKHJl Q29udGV4dCwgInRoaXMuZ2V0Q29udGV4dChcIiQxXCIpIik7DQoNCgkJdGhpcy5F eGVjdXRlID0gbmV3IEZ1bmN0aW9uKCJyZXR1cm4gIiArIGV4cHJlc3Npb24gKyAi OyIpOw0KCX0NCg0KCU1TLlN1cHBvcnQuRm1zLlJlcGxhY2VhYmxlVGV4dE5vZGUg PSBmdW5jdGlvbiAocXVlc3Rpb24sIGRvbU9iamVjdCkNCgl7DQoJCXRoaXMucXVl c3Rpb24gPSBxdWVzdGlvbjsNCgkJdGhpcy5zdXJ2ZXkgPSBxdWVzdGlvbi5zdXJ2 ZXk7DQoJCXRoaXMuZG9tT2JqZWN0ID0gZG9tT2JqZWN0Ow0KDQoJCWZ1bmN0aW9u IGlzVGV4dEVkaXRvcihlKQ0KCQl7DQoJCQl2YXIgdGFnTmFtZSA9IChlICYmIGUu dGFnTmFtZSkgPyBlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA6ICIiOw0KDQoJCQlp ZiAodGFnTmFtZSA9PSAidGV4dGFyZWEiIHx8ICh0YWdOYW1lID09ICJpbnB1dCIg JiYgKGUudHlwZS50b0xvd2VyQ2FzZSgpID09ICJ0ZXh0IiB8fCBlLnR5cGUudG9M b3dlckNhc2UoKSA9PSAibnVtYmVyIiB8fCBlLnR5cGUudG9Mb3dlckNhc2UoKSA9 PSAiZGF0ZSIpKSkNCgkJCXsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCg0KCQkJ cmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJZnVuY3Rpb24gaXNUZXh0RWxlbWVudChl KQ0KCQl7DQoJCQl2YXIgdGFnTmFtZSA9IChlICYmIGUudGFnTmFtZSkgPyBlLnRh Z05hbWUudG9Mb3dlckNhc2UoKSA6ICIiOw0KDQoJCQlpZiAodGFnTmFtZSA9PSAi dGV4dGFyZWEiIHx8ICh0YWdOYW1lID09ICJpbnB1dCIgJiYgKGUudHlwZS50b0xv d2VyQ2FzZSgpID09ICJ0ZXh0IiB8fCBlLnR5cGUudG9Mb3dlckNhc2UoKSA9PSAi aGlkZGVuIiB8fCBlLnR5cGUudG9Mb3dlckNhc2UoKSA9PSAibnVtYmVyIiB8fCBl LnR5cGUudG9Mb3dlckNhc2UoKSA9PSAiZGF0ZSIpKSkNCgkJCXsNCgkJCQlyZXR1 cm4gdHJ1ZTsNCgkJCX0NCg0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJZnVu Y3Rpb24gaXNPcHRpb24oZSkNCgkJew0KCQkJdmFyIHRhZ05hbWUgPSAoZSAmJiBl LnRhZ05hbWUpID8gZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgOiAiIjsNCgkJCXJl dHVybiB0YWdOYW1lID09ICJvcHRpb24iOw0KCQl9DQoNCgkJZnVuY3Rpb24gZ2V0 RG9tVmFsdWUoZSkNCgkJew0KCQkJcmV0dXJuIGlzVGV4dEVsZW1lbnQoZSkgPyBl LnZhbHVlIDogKGlzT3B0aW9uKGUpID8gZS50ZXh0IDogZS5pbm5lckhUTUwpOw0K CQl9DQoNCgkJZnVuY3Rpb24gc2V0RG9tVmFsdWUoZSwgdmFsdWUpDQoJCXsNCgkJ CWlmIChpc1RleHRFbGVtZW50KGUpKQ0KCQkJew0KCQkJCWUudmFsdWUgPSB2YWx1 ZTsNCgkJCX0NCgkJCWVsc2UgaWYgKGlzT3B0aW9uKGUpKQ0KCQkJew0KCQkJCWUu dGV4dCA9IHZhbHVlOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCWUuaW5uZXJI VE1MID0gdmFsdWU7DQoJCQl9DQoJCX0NCg0KCQl2YXIgcmVwbGFjZU9uY2UgPSBp c1RleHRFZGl0b3IoZG9tT2JqZWN0KTsNCgkJdmFyIHJlcGxhY2VDb3VudCA9IDA7 DQoJCXRoaXMub3JpZ2luYWxWYWx1ZSA9IGdldERvbVZhbHVlKGRvbU9iamVjdCk7 DQoJCXRoaXMudmFyaWFibGVzID0gdGhpcy5vcmlnaW5hbFZhbHVlLm1hdGNoKG5l dyBSZWdFeHAoInsoXFwkKFVybDopP3xAKENvbXBsZXg6XFxzKik/KVtefV0qfSIs ICJnIikpOw0KDQoJCXRoaXMucmVwbGFjZSA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJ CWlmIChyZXBsYWNlT25jZSAmJiByZXBsYWNlQ291bnQgPj0gMSkNCgkJCXsNCgkJ CQlyZXR1cm47DQoJCQl9DQoNCgkJCXZhciB0ZXh0ID0gdGhpcy5vcmlnaW5hbFZh bHVlOw0KDQoJCQlmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudmFyaWFibGVzLmxl bmd0aDsgKytpKQ0KCQkJew0KCQkJCXZhciB2YXJpYWJsZSA9IHRoaXMudmFyaWFi bGVzW2ldOw0KDQoJCQkJdmFyIHZhcmlhYmxlQ29udGVudCA9IHZhcmlhYmxlLnN1 YnN0cmluZygxLCB2YXJpYWJsZS5sZW5ndGggLSAxKTsNCgkJCQl2YXIgdmFyaWFi bGVWYWx1ZSA9ICIiOw0KDQoJCQkJdmFyIGNvbnRleHRQcmVmaXggPSAiJCI7DQoJ CQkJdmFyIHVybFBhcmFtZXRlclByZWZpeCA9ICIkVXJsOiI7DQoJCQkJdmFyIGNv bXBsZXhFeHBQcmVmaXggPSAiQENvbXBsZXg6IjsNCg0KCQkJCWlmICh2YXJpYWJs ZUNvbnRlbnQuc3Vic3RyaW5nKDAsIGNvbXBsZXhFeHBQcmVmaXgubGVuZ3RoKSA9 PSBjb21wbGV4RXhwUHJlZml4KQ0KCQkJCXsNCgkJCQkJdmFyIGV4cCA9IHZhcmlh YmxlQ29udGVudC5yZXBsYWNlKGNvbXBsZXhFeHBQcmVmaXgsICIiKS5yZXBsYWNl KC9eXHMqLywgIiIpDQoJCQkJCWV4cCA9IGV4cC5yZXBsYWNlKC9cWzB4N2JcXS9n LCAieyIpLnJlcGxhY2UoL1xbMHg3ZFxdL2csICJ9Iik7DQoJCQkJCXRyeQ0KCQkJ CQl7DQoJCQkJCQl2YXIgZXhwV3JhcHBlciA9IG5ldyBNUy5TdXBwb3J0LkZtcy5F eHByZXNzaW9uV3JhcHBlcihleHAsIHRoaXMuc3VydmV5KTsNCgkJCQkJCXZhcmlh YmxlVmFsdWUgPSBleHBXcmFwcGVyLkV4ZWN1dGUoKTsNCgkJCQkJCWlmICh0eXBl b2YgKHZhcmlhYmxlVmFsdWUpID09ICJ1bmRlZmluZWQiIHx8IHZhcmlhYmxlVmFs dWUgPT0gbnVsbCkNCgkJCQkJCXsNCgkJCQkJCQl2YXJpYWJsZVZhbHVlID0gIiI7 DQoJCQkJCQl9DQoNCgkJCQkJCXZhcmlhYmxlVmFsdWUgPSBleHBXcmFwcGVyLmRl Y29kZVZhbHVlKHZhcmlhYmxlVmFsdWUpOw0KCQkJCQl9DQoJCQkJCWNhdGNoIChl KQ0KCQkJCQl7DQoJCQkJCQl2YXJpYWJsZVZhbHVlID0gIiI7DQoJCQkJCX0NCgkJ CQl9DQoJCQkJZWxzZSBpZiAodmFyaWFibGVDb250ZW50LnN1YnN0cmluZygwLCB1 cmxQYXJhbWV0ZXJQcmVmaXgubGVuZ3RoKSA9PSB1cmxQYXJhbWV0ZXJQcmVmaXgp DQoJCQkJew0KCQkJCQl2YXIgdXJsUGFyYW1ldGVycyA9IHRoaXMuc3VydmV5LnVy bFBhcmFtZXRlcnM7DQoJCQkJCXZhciBleHAgPSB2YXJpYWJsZUNvbnRlbnQucmVw bGFjZSh1cmxQYXJhbWV0ZXJQcmVmaXgsICIiKTsNCgkJCQkJZXhwID0gZXhwLnJl cGxhY2UoL1xbMHg3YlxdL2csICJ7IikucmVwbGFjZSgvXFsweDdkXF0vZywgIn0i KS50b0xvd2VyQ2FzZSgpOw0KCQkJCQl2YXJpYWJsZVZhbHVlID0gdXJsUGFyYW1l dGVycyA/IHVybFBhcmFtZXRlcnNbZXhwXSA6ICIiOw0KCQkJCX0NCgkJCQllbHNl IGlmICh2YXJpYWJsZUNvbnRlbnQuc3Vic3RyaW5nKDAsIGNvbnRleHRQcmVmaXgu bGVuZ3RoKSA9PSBjb250ZXh0UHJlZml4KQ0KCQkJCXsNCgkJCQkJdmFyIGNvbnRl eHQgPSB0aGlzLnN1cnZleS5nZXRDb250ZXh0KCk7DQoJCQkJCXZhciBleHAgPSB2 YXJpYWJsZUNvbnRlbnQuc3Vic3RyaW5nKDEpOw0KCQkJCQlleHAgPSBleHAucmVw bGFjZSgvXFsweDdiXF0vZywgInsiKS5yZXBsYWNlKC9cWzB4N2RcXS9nLCAifSIp Ow0KCQkJCQl2YXJpYWJsZVZhbHVlID0gY29udGV4dCA/IGNvbnRleHRbZXhwXSA6 ICIiOw0KCQkJCX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQl2YXJpYWJsZVZhbHVl ID0gdGhpcy5zdXJ2ZXkuZ2V0VmFyaWFibGUodmFyaWFibGVDb250ZW50LnN1YnN0 cmluZygxKSk7DQoJCQkJfQ0KDQoJCQkJaWYgKCF2YXJpYWJsZVZhbHVlKQ0KCQkJ CXsNCgkJCQkJdmFyaWFibGVWYWx1ZSA9ICIiOw0KCQkJCX0NCg0KCQkJCWlmIChp c1RleHRFbGVtZW50KHRoaXMuZG9tT2JqZWN0KSB8fCBpc09wdGlvbih0aGlzLmRv bU9iamVjdCkpDQoJCQkJew0KCQkJCQl2YXJpYWJsZVZhbHVlID0gTVMuU3VwcG9y dC5GbXMuVXRpbHMuY2hhcmFjdGVyRW5jb2RlKHZhcmlhYmxlVmFsdWUpOw0KCQkJ CX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQl2YXJpYWJsZVZhbHVlID0gTVMuU3Vw cG9ydC5GbXMuVXRpbHMuY2hhcmFjdGVyRW5jb2RlKE1TLlN1cHBvcnQuRm1zLlV0 aWxzLmh0bWxFbmNvZGUodmFyaWFibGVWYWx1ZSkpOw0KCQkJCX0NCgkJCQl0ZXh0 ID0gdGV4dC5yZXBsYWNlKHZhcmlhYmxlLCB2YXJpYWJsZVZhbHVlKTsNCgkJCX0N Cg0KCQkJc2V0RG9tVmFsdWUodGhpcy5kb21PYmplY3QsIHRleHQpOw0KCQkJKyty ZXBsYWNlQ291bnQ7DQoJCX0NCgl9DQoNCglNUy5TdXBwb3J0LkZtcy5TdXJ2ZXlR dWVzdGlvbiA9IGZ1bmN0aW9uIChkb21PYmplY3QsIHBhZ2UpDQoJew0KCQl2YXIg Rm1zID0gTVMuU3VwcG9ydC5GbXM7DQoJCXZhciBVdGlscyA9IEZtcy5VdGlsczsN CgkJdmFyIFZhbGlkYXRlUmVzdWx0ID0gRm1zLlZhbGlkYXRlUmVzdWx0Ow0KDQoJ CXRoaXMuZG9tT2JqZWN0ID0gZG9tT2JqZWN0Ow0KCQl2YXIgdHlwZSA9IFV0aWxz LmdldENoaWxkQnlOYW1lKGRvbU9iamVjdCwgInR5cGUiKTsNCgkJdmFyIHJhbmRv bWl6YXRpb24gPSBVdGlscy5nZXRDaGlsZEJ5TmFtZShkb21PYmplY3QsICJyYW5k b21pemF0aW9uIik7DQoJCXZhciBvcGVyYXRvciA9IG51bGw7DQoNCgkJdmFyIGJy YW5jaFJ1bGVzID0gW107DQoJCXRoaXMucGFnZSA9IHBhZ2U7DQoJCXRoaXMuc3Vy dmV5ID0gcGFnZS5zdXJ2ZXk7DQoJCXRoaXMubmVlZEhpZGUgPSBmYWxzZTsNCg0K CQl2YXIgdmlzaWJpbGl0eSA9IHRoaXMuZG9tT2JqZWN0LmdldEF0dHJpYnV0ZSgi dmlzaWJpbGl0eSIpOw0KDQoJCXRoaXMuZ2V0VmlzaWJpbGl0eSA9IGZ1bmN0aW9u ICgpDQoJCXsNCgkJCXJldHVybiB2aXNpYmlsaXR5Ow0KCQl9DQoNCgkJZnVuY3Rp b24gaXNCcmFuY2hSdWxlTm9kZShub2RlKQ0KCQl7DQoJCQlyZXR1cm4gbm9kZSAm JiBub2RlLnR5cGUgJiYgbm9kZS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gImhpZGRl biIgJiYgbm9kZS5pZC5pbmRleE9mKCJOZXh0UmVmXyIpID09IDA7DQoJCX0NCg0K CQl0aGlzLmZpbmRCcmFuY2hSdWxlcyA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCWlm ICh0aGlzLmRvbU9iamVjdCAhPSBudWxsKQ0KCQkJew0KCQkJCXZhciBlcyA9IFV0 aWxzLmZpbmRDaGlsZE5vZGVzKHRoaXMuZG9tT2JqZWN0LCBpc0JyYW5jaFJ1bGVO b2RlKTsNCg0KCQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBlcy5sZW5n dGg7ICsraW5kZXgpDQoJCQkJew0KCQkJCQl2YXIgcGFydHMgPSBlc1tpbmRleF0u aWQuc3BsaXQoIl8iLCAzKTsNCg0KCQkJCQlicmFuY2hSdWxlcy5wdXNoKG5ldyBN Uy5TdXBwb3J0LkZtcy5CcmFuY2hSdWxlKHBhcnRzWzFdLCBwYXJ0c1syXSwgZXNb aW5kZXhdLnZhbHVlKSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5maW5k QnJhbmNoUnVsZXMoKTsNCg0KCQl2YXIgcmVxdWlyZWRIaWRkZW4gPSBVdGlscy5n ZXRDaGlsZEJ5TmFtZShkb21PYmplY3QsICJyZXF1aXJlZCIpOw0KCQl2YXIgcmVx dWlyZWRFcnJvclRleHQgPSBudWxsOw0KDQoJCXRoaXMuaXNSZXF1aXJlZCA9IGZ1 bmN0aW9uICgpDQoJCXsNCgkJCXJldHVybiByZXF1aXJlZEhpZGRlbiAhPSBudWxs ICYmIHJlcXVpcmVkSGlkZGVuLnZhbHVlID09ICIxIjsNCgkJfQ0KDQoJCXRoaXMu c2V0UmVxdWlyZWQgPSBmdW5jdGlvbiAodmFsdWUpDQoJCXsNCgkJCWlmIChyZXF1 aXJlZEhpZGRlbiAhPSBudWxsKQ0KCQkJew0KCQkJCXJlcXVpcmVkSGlkZGVuLnZh bHVlID0gdmFsdWUgPyAxIDogMDsNCgkJCX0NCgkJfQ0KDQoJCWlmICh0aGlzLmlz UmVxdWlyZWQoKSkNCgkJew0KCQkJcmVxdWlyZWRFcnJvclRleHQgPSBVdGlscy5n ZXRDaGlsZEJ5TmFtZShkb21PYmplY3QsICJyZXF1aXJlZEVycm9yVGV4dCIpOw0K CQl9DQoNCgkJdGhpcy5ldmFsdXRlU2hvd0lmID0gZnVuY3Rpb24gKGVsZW1lbnQp DQoJCXsNCgkJCXZhciBzaG93SWYgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgic2hv d0lmIik7DQoNCgkJCWlmIChzaG93SWYgPT0gbnVsbCB8fCBzaG93SWYgPT0gIiIp DQoJCQl7DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJ CQkJcmV0dXJuIHRoaXMuc3VydmV5LmV2YWx1dGUoc2hvd0lmKTsNCgkJCX0NCgkJ fQ0KDQoJCXRoaXMuaXNTdGF0aWNPcHRpb24gPSBmdW5jdGlvbiAoZWxlbWVudCkN CgkJew0KCQkJdmFyIHNob3dJZiA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJzaG93 SWYiKTsNCgkJCXJldHVybiAoc2hvd0lmID09IG51bGwgfHwgc2hvd0lmID09ICIi KSA/IHRydWUgOiBmYWxzZTsNCgkJfQ0KDQoJCXZhciByZXBsYWNlYWJsZUNsYXNz TmFtZXMgPSBbIlNVUlZFUklOVFJPVEVYVCIsICJRVUVTVElPTlRFWFQiLCAiUVVF U1RJT05JTlNUUlVDVElPTiIsICJRVUVTVElPTlJFUVVJUkVEIiwgIkFOU1dFUlRF WFQiLCAiT1BUSU9OQUxURVhUQk9YSU5TVFJVQ1RJT04iLCAiR0hSX1FVRVNUSU9O VEVYVCIsICJBTlNXRVJCT1giLCAiR0hSX0xFR0VORFRFWFQiXTsNCgkJdmFyIGlu bmVySFRNTFJlYWRPbmx5VGFncyA9IFsidGFibGUiLCAidGJvZHkiLCAidGZvb3Qi LCAidGhlYWQiLCAidHIiXTsgLy8gVGhlcmUgYXJlIGFsc28gc29tZSBvdGhlciBI VE1MIGVsZW1lbnRzIHdob3NlIGlubmVySFRNTCBhdHRyaWJ1dGVzIGFyZSByZWFk b25seSBvbiBJRSwgYnV0IG5vdCBsaWtlbHkgd2lsbCBhcHBlYXIgaW4gb3VyIHN1 cnZleQ0KDQoJCWZ1bmN0aW9uIGlzVGV4dFJlcGxhY2VhYmxlKGUpDQoJCXsNCgkJ CWlmIChlICE9IG51bGwgJiYgZS50YWdOYW1lKQ0KCQkJew0KCQkJCXZhciByZXBs YWNlUGF0dGVybiA9IG5ldyBSZWdFeHAoInsoXFwkKFVybDopP3wjfEAoQ29tcGxl eDpcXHMqKT8pW159XSp9IiwgImciKTsNCg0KCQkJCXZhciB0YWdOYW1lID0gZS50 YWdOYW1lLnRvTG93ZXJDYXNlKCk7DQoNCgkJCQlmb3IgKHZhciBqID0gMDsgaiA8 IGlubmVySFRNTFJlYWRPbmx5VGFncy5sZW5ndGg7ICsraikNCgkJCQl7DQoJCQkJ CWlmICh0YWdOYW1lID09IGlubmVySFRNTFJlYWRPbmx5VGFnc1tqXSkNCgkJCQkJ ew0KCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJaWYg KHRhZ05hbWUgPT0gIm9wdGlvbiIpDQoJCQkJew0KCQkJCQlyZXR1cm4gcmVwbGFj ZVBhdHRlcm4udGVzdChlLmlubmVySFRNTCk7DQoJCQkJfQ0KCQkJCWVsc2UgaWYg KHRhZ05hbWUgPT0gInRleHRhcmVhIiB8fCAodGFnTmFtZSA9PSAiaW5wdXQiICYm IChlLnR5cGUudG9Mb3dlckNhc2UoKSA9PSAidGV4dCIgfHwgZS50eXBlLnRvTG93 ZXJDYXNlKCkgPT0gImhpZGRlbiIgfHwgZS50eXBlLnRvTG93ZXJDYXNlKCkgPT0g Im51bWJlciIgfHwgZS50eXBlLnRvTG93ZXJDYXNlKCkgPT0gImRhdGUiKSkpDQoJ CQkJew0KCQkJCQlyZXR1cm4gcmVwbGFjZVBhdHRlcm4udGVzdChlLnZhbHVlKTsN CgkJCQl9DQoJCQkJZWxzZSBpZiAodGFnTmFtZSA9PSAidGQiICYmIGUucGFyZW50 Tm9kZSAmJiBVdGlscy5oYXNDbGFzcyhlLnBhcmVudE5vZGUsICJHSFJfTEVHRU5E VEVYVCIpKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHJlcGxhY2VQYXR0ZXJuLnRlc3Qo ZS5pbm5lckhUTUwpOw0KCQkJCX0NCgkJCQllbHNlIGlmIChlLmNsYXNzTmFtZSAh PSBudWxsKQ0KCQkJCXsNCg0KCQkJCQlpZiAoVXRpbHMuaGFzQ2xhc3MoZSwgIlFV RVNUSU9OSU5TVFJVQ1RJT04iKSAmJiB0YWdOYW1lID09ICJmb250IikNCgkJCQkJ ew0KCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoNCgkJCQkJZm9yICh2YXIg aW5kZXggPSAwOyBpbmRleCA8IHJlcGxhY2VhYmxlQ2xhc3NOYW1lcy5sZW5ndGg7 ICsraW5kZXgpDQoJCQkJCXsNCgkJCQkJCWlmIChVdGlscy5oYXNDbGFzcyhlLCBy ZXBsYWNlYWJsZUNsYXNzTmFtZXNbaW5kZXhdKSkNCgkJCQkJCXsNCgkJCQkJCQly ZXR1cm4gcmVwbGFjZVBhdHRlcm4udGVzdChlLmlubmVySFRNTCk7DQoJCQkJCQl9 DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0K CQl0aGlzLnJlcGxhY2VhYmxlTm9kZXMgPSBbXTsNCg0KCQl0aGlzLmZpbmRSZXBs YWNlYWJsZU5vZGVzID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJdmFyIG5vZGVzID0g VXRpbHMuZmluZENoaWxkTm9kZXModGhpcy5kb21PYmplY3QsIGlzVGV4dFJlcGxh Y2VhYmxlKTsNCg0KCQkJZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IG5vZGVz Lmxlbmd0aDsgKytpbmRleCkNCgkJCXsNCgkJCQl2YXIgbm9kZSA9IG5vZGVzW2lu ZGV4XTsNCgkJCQl0aGlzLnJlcGxhY2VhYmxlTm9kZXMucHVzaChuZXcgTVMuU3Vw cG9ydC5GbXMuUmVwbGFjZWFibGVUZXh0Tm9kZSh0aGlzLCBub2RlKSk7DQoJCQl9 DQoJCX0NCg0KCQl0aGlzLmZpbmRSZXBsYWNlYWJsZU5vZGVzKCk7DQoNCgkJdGhp cy5yZXBsYWNlVGV4dE5vZGVzID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJZm9yICh2 YXIgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMucmVwbGFjZWFibGVOb2Rlcy5sZW5n dGg7ICsraW5kZXgpDQoJCQl7DQoJCQkJdGhpcy5yZXBsYWNlYWJsZU5vZGVzW2lu ZGV4XS5yZXBsYWNlKCk7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLmdldFF1ZXN0aW9u SWQgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4gdGhpcy5kb21PYmplY3Qu aWQucmVwbGFjZSgiU1VSVkVZUVVFU1RJT05fIiwgIiIpOw0KCQl9DQoNCgkJdGhp cy5nZXRRdWVzdGlvblR5cGUgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4g dHlwZS52YWx1ZTsNCgkJfQ0KDQoJCXRoaXMubmVlZFJhbmRvbWl6YXRpb24gPSBm dW5jdGlvbiAoKQ0KCQl7DQoJCQlpZiAocmFuZG9taXphdGlvbiAmJiByYW5kb21p emF0aW9uLnZhbHVlID09ICIxIikNCgkJCXsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJ CX0NCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMudmFsaWRhdGUgPSBm dW5jdGlvbiAoKQ0KCQl7DQoJCQlpZiAodGhpcy5uZWVkSGlkZSkNCgkJCXsNCgkJ CQlyZXR1cm4gbmV3IFZhbGlkYXRlUmVzdWx0KHRydWUpOw0KCQkJfQ0KCQkJaWYg KHRoaXMuaXNSZXF1aXJlZCgpKQ0KCQkJew0KCQkJCXZhciBpc1ZhbGlkID0gb3Bl cmF0b3IudmFsaWRhdGVSZXF1aXJlZCh0aGlzKTsNCg0KCQkJCWlmICghaXNWYWxp ZCkNCgkJCQl7DQoJCQkJCXJldHVybiBuZXcgVmFsaWRhdGVSZXN1bHQoZmFsc2Us IHRoaXMuZ2V0UmVxdWlyZWRFcnJvclRleHQoKSk7DQoJCQkJfQ0KCQkJfQ0KDQoJ CQlyZXR1cm4gb3BlcmF0b3IudmFsaWRhdGVJbnB1dCgpOw0KCQl9DQoNCgkJdGhp cy5jb25maWdWaXNpYmlsaXR5ID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJdmFyIHJl dFZhbCA9IHRoaXMuc3VydmV5LkV2YWx1YXRlQ29udGV4dFZpc2liaWxpdHkodGhp cy5kb21PYmplY3QpOw0KDQoJCQlzd2l0Y2ggKHZpc2liaWxpdHkpDQoJCQl7DQoJ CQkJY2FzZSAiU2hvdyI6DQoJCQkJCXRoaXMubmVlZEhpZGUgPSByZXRWYWwgPT0g Ik5vdEV4aXN0IiA/IHRydWUgOiByZXRWYWwgPT0gIkV2YWxUcnVlIiA/IGZhbHNl IDogdHJ1ZTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAiSGlkZSI6DQoJCQkJCXRo aXMubmVlZEhpZGUgPSByZXRWYWwgPT0gIk5vdEV4aXN0IiA/IGZhbHNlIDogcmV0 VmFsID09ICJFdmFsVHJ1ZSIgPyB0cnVlIDogZmFsc2U7DQoJCQkJCWJyZWFrOw0K CQkJCWRlZmF1bHQ6DQoJCQkJCXRoaXMubmVlZEhpZGUgPSBmYWxzZTsNCgkJCQkJ YnJlYWs7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLnByZXBhcmUgPSBmdW5jdGlvbiAo KQ0KCQl7DQoJCQl0aGlzLnJlcGxhY2VUZXh0Tm9kZXMoKTsNCgkJCXRoaXMuY29u ZmlnVmlzaWJpbGl0eSgpOw0KCQkJb3BlcmF0b3IucHJlcGFyZSgpOw0KCQkJZG9t T2JqZWN0LnN0eWxlLmRpc3BsYXkgPSB0aGlzLm5lZWRIaWRlID8gIm5vbmUiIDog ImJsb2NrIjsNCgkJfQ0KDQoJCXRoaXMucG9wdWxhdGVWYXJpYWJsZXMgPSBmdW5j dGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4gb3BlcmF0b3IucG9wdWxhdGVWYXJpYWJs ZXMoKTsNCgkJfQ0KDQoJCXRoaXMuc2F2ZSA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJ CW9wZXJhdG9yLnNhdmUoKTsNCgkJfQ0KDQoJCXRoaXMucmVzdG9yZSA9IGZ1bmN0 aW9uICgpDQoJCXsNCgkJCW9wZXJhdG9yLnJlc3RvcmUoKTsNCgkJfQ0KDQoJCXRo aXMuZ2V0QW5zd2VycyA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXJldHVybiBvcGVy YXRvci5nZXRBbnN3ZXJzKCk7DQoJCX0NCg0KCQl0aGlzLmdldFJlcXVpcmVkRXJy b3JUZXh0ID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJaWYgKCF0aGlzLmlzUmVxdWly ZWQoKSkNCgkJCXsNCgkJCQl0aHJvdyAiTm90IGEgcmVxdWlyZWQgcXVlc3Rpb24h IjsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQlyZXR1cm4gcmVxdWlyZWRFcnJv clRleHQudmFsdWU7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLmdldE5leHRQYWdlQnlC cmFuY2hSdWxlID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJZm9yICh2YXIgaSA9IDA7 IGkgPCB0aGlzLmVsZW1lbnRzLmxlbmd0aDsgKytpKQ0KCQkJew0KCQkJCWZvciAo dmFyIGogPSAwOyBqIDwgYnJhbmNoUnVsZXMubGVuZ3RoOyArK2opDQoJCQkJew0K CQkJCQl2YXIgdGFyZ2V0ID0gYnJhbmNoUnVsZXNbal0ubWF0Y2godGhpcy5lbGVt ZW50c1tpXSk7DQoNCgkJCQkJaWYgKHRhcmdldCAhPSBudWxsICYmIHRhcmdldCAh PSAtMSkNCgkJCQkJew0KCQkJCQkJcmV0dXJuIHRhcmdldDsNCgkJCQkJfQ0KCQkJ CX0NCgkJCX0NCgkJCS8vIC0xIG1lYW5zIG5vdCBhcHBjYWJsZQ0KCQkJcmV0dXJu IC0xOw0KCQl9DQoNCgkJdGhpcy5lbGVtZW50cyA9IFtdOw0KDQoJCWZ1bmN0aW9u IGlzUXVlc3Rpb25FbGVtZW50KG5vZGUpDQoJCXsNCgkJCWlmIChub2RlLnR5cGUg IT0gbnVsbCkNCgkJCXsNCgkJCQlzd2l0Y2ggKG5vZGUudHlwZS50b0xvd2VyQ2Fz ZSgpKQ0KCQkJCXsNCgkJCQkJY2FzZSAidGV4dCI6DQoJCQkJCWNhc2UgImRhdGUi Og0KCQkJCQljYXNlICJwYXNzd29yZCI6DQoJCQkJCWNhc2UgInRleHRhcmVhIjoN CgkJCQkJY2FzZSAibnVtYmVyIjoNCgkJCQkJY2FzZSAicmFkaW8iOg0KCQkJCQlj YXNlICJjaGVja2JveCI6DQoJCQkJCWNhc2UgInNlbGVjdC1vbmUiOg0KCQkJCQlj YXNlICJzZWxlY3QtbXVsdGlwbGUiOg0KCQkJCQkJcmV0dXJuIHRydWU7DQoJCQkJ fQ0KCQkJfQ0KDQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl0aGlzLmdldE9w dGlvbkJ5SWQgPSBmdW5jdGlvbiAob3B0aW9uSWQpDQoJCXsNCgkJCXJldHVybiBv cGVyYXRvci5nZXRPcHRpb25CeUlkKG9wdGlvbklkKTsNCgkJfQ0KDQoJCXRoaXMu ZGlzY292ZXJFbGVtZW50cyA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCWlmICh0aGlz LmRvbU9iamVjdCAhPSBudWxsKQ0KCQkJew0KCQkJCXZhciBlcyA9IFV0aWxzLmZp bmRDaGlsZE5vZGVzKHRoaXMuZG9tT2JqZWN0LCBpc1F1ZXN0aW9uRWxlbWVudCk7 DQoNCgkJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgZXMubGVuZ3RoOyAr K2luZGV4KQ0KCQkJCXsNCgkJCQkJdGhpcy5lbGVtZW50cy5wdXNoKGVzW2luZGV4 XSk7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5kaXNjb3ZlckVsZW1lbnRz KCk7DQoNCgkJb3BlcmF0b3IgPSBNUy5TdXBwb3J0LkZtcy5TdXJ2ZXlRdWVzdGlv bk9wZXJhdG9yLmNyZWF0ZSh0aGlzKTsNCgkJb3BlcmF0b3IucmFuZG9taXplKCk7 DQoNCgkJdGhpcy5kaXNwbGF5QnJhbmNoUnVsZXMgPSBmdW5jdGlvbiAoKQ0KCQl7 DQoJCQlmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZWxlbWVudHMubGVuZ3RoOyAr K2kpDQoJCQl7DQoJCQkJdmFyIG9wdGlvbnMgPSB0aGlzLmVsZW1lbnRzW2ldLm9w dGlvbnM7DQoJCQkJaWYgKG9wdGlvbnMpDQoJCQkJew0KCQkJCQl2YXIgc2VsZWN0 VmlzdWFsID0gIjxvbD4iOw0KDQoJCQkJCWZvciAodmFyIGogPSAwOyBqIDwgb3B0 aW9ucy5sZW5ndGg7ICsraikNCgkJCQkJew0KCQkJCQkJc2VsZWN0VmlzdWFsICs9 ICI8bGk+IiArIG9wdGlvbnNbal0uaW5uZXJIVE1MOw0KCQkJCQkJZm9yICh2YXIg ayA9IDA7IGsgPCBicmFuY2hSdWxlcy5sZW5ndGg7ICsraykNCgkJCQkJCXsNCgkJ CQkJCQlpZiAoYnJhbmNoUnVsZXNba10ub3B0aW9uSWQgPT0gb3B0aW9uc1tqXS5p ZCAmJiAodHlwZW9mIChicmFuY2hSdWxlc1trXS5vcHRpb25WYWx1ZSA9PSAidW5k ZWZpbmVkIikgfHwgYnJhbmNoUnVsZXNba10ub3B0aW9uVmFsdWUgPT0gb3B0aW9u c1tqXS52YWx1ZSkpDQoJCQkJCQkJew0KCQkJCQkJCQlzZWxlY3RWaXN1YWwgKz0g IigtLSZndDsiICsgYnJhbmNoUnVsZXNba10udGFyZ2V0ICsgIikiOw0KCQkJCQkJ CQlicmVhazsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCQlzZWxlY3RWaXN1YWwg Kz0gIjwvbGk+IjsNCgkJCQkJfQ0KDQoJCQkJCXNlbGVjdFZpc3VhbCArPSAiPC9v bD4iOw0KDQoJCQkJCXZhciBpbmZvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi c3BhbiIpOw0KCQkJCQlpbmZvLnN0eWxlLmNvbG9yID0gImdyZWVuIjsNCgkJCQkJ aW5mby5pbm5lckhUTUwgPSBzZWxlY3RWaXN1YWw7DQoNCgkJCQkJdGhpcy5lbGVt ZW50c1tpXS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGluZm8pOw0KCQkJCX0NCgkJ CQllbHNlDQoJCQkJew0KCQkJCQlmb3IgKHZhciBqID0gMDsgaiA8IGJyYW5jaFJ1 bGVzLmxlbmd0aDsgKytqKQ0KCQkJCQl7DQoJCQkJCQlpZiAoYnJhbmNoUnVsZXNb al0ub3B0aW9uSWQgPT0gdGhpcy5lbGVtZW50c1tpXS5pZCAmJiAodHlwZW9mIChi cmFuY2hSdWxlc1tqXS5vcHRpb25WYWx1ZSkgPT0gInVuZGVmaW5lZCIgfHwgYnJh bmNoUnVsZXNbal0ub3B0aW9uVmFsdWUgPT0gdGhpcy5lbGVtZW50c1tpXS52YWx1 ZSkpDQoJCQkJCQl7DQoJCQkJCQkJdmFyIGluZm8gPSBkb2N1bWVudC5jcmVhdGVF bGVtZW50KCJmb250Iik7DQoJCQkJCQkJaW5mby5jb2xvciA9ICJncmVlbiI7DQoJ CQkJCQkJaW5mby5pbm5lckhUTUwgPSAiKC0tJmd0OyIgKyBicmFuY2hSdWxlc1tq XS50YXJnZXQgKyAiKSI7DQoNCgkJCQkJCQl0aGlzLmVsZW1lbnRzW2ldLnBhcmVu dE5vZGUuYXBwZW5kQ2hpbGQoaW5mbyk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9 DQoJCQl9DQoJCX0NCgl9DQoNCglNUy5TdXBwb3J0LkZtcy5TdXJ2ZXlQYWdlID0g ZnVuY3Rpb24gKGRvbU9iamVjdCwgc3VydmV5KQ0KCXsNCgkJdmFyIEZtcyA9IE1T LlN1cHBvcnQuRm1zOw0KCQl2YXIgVXRpbHMgPSBGbXMuVXRpbHM7DQoJCXZhciBW YWxpZGF0ZVJlc3VsdCA9IEZtcy5WYWxpZGF0ZVJlc3VsdDsNCg0KCQl0aGlzLmRv bU9iamVjdCA9IGRvbU9iamVjdDsNCg0KCQl0aGlzLm5leHRQYWdlSWQgPSAtMTsN CgkJdGhpcy5tb2RpZmllZCA9IGZhbHNlOw0KCQl0aGlzLnN1cnZleSA9IHN1cnZl eTsNCgkJdGhpcy5pZ25vcmVkID0gZmFsc2U7DQoNCgkJdmFyIG5leHRQYWdlQnlU b3BpY1JlZiA9IFV0aWxzLmdldENoaWxkQnlOYW1lKGRvbU9iamVjdCwgIk5leHRT ZWN0aW9uQnlUb3BpY1JlZiIpOw0KDQoJCWlmIChuZXh0UGFnZUJ5VG9waWNSZWYg JiYgbmV4dFBhZ2VCeVRvcGljUmVmLnZhbHVlICE9IG51bGwgJiYgbmV4dFBhZ2VC eVRvcGljUmVmLnZhbHVlICE9ICIiKQ0KCQl7DQoJCQl0aGlzLm5leHRQYWdlSWQg PSBwYXJzZUludChuZXh0UGFnZUJ5VG9waWNSZWYudmFsdWUpOw0KCQl9DQoNCgkJ dGhpcy5jb21wb3VuZGluZ0JyYW5jaFJ1bGVzID0gW107DQoJCXZhciBkYXRhID0g VXRpbHMuZ2V0Q2hpbGRCeU5hbWUoZG9tT2JqZWN0LCAiQ29tcG91bmRpbmdCcmFu Y2hSdWxlcyIpOw0KCQlpZiAoZGF0YSkNCgkJew0KCQkJdmFyIGNvbnRhaW5lcnMg PSBkYXRhLmNoaWxkTm9kZXM7DQoJCQlmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRh aW5lcnMubGVuZ3RoOyBpKyspDQoJCQl7DQoJCQkJdmFyIGJycyA9IFV0aWxzLmdl dENoaWxkQnlOYW1lKGNvbnRhaW5lcnNbaV0sICJicnMiKTsNCgkJCQl2YXIgY25i cnMgPSBVdGlscy5nZXRDaGlsZE5vZGVzQnlBdHRyaWJ1dGUoY29udGFpbmVyc1tp XSwgIm5hbWUiLCAiY25iciIpOw0KCQkJCXZhciByZWYgPSBjb250YWluZXJzW2ld LmdldEF0dHJpYnV0ZSgnZGF0YS1yZWYnKTsNCgkJCQl2YXIgcHJvYmFiaWxpdHkg PSBjb250YWluZXJzW2ldLmdldEF0dHJpYnV0ZSgnZGF0YS1wcm9iYWJpbGl0eScp Ow0KCQkJCXZhciBydWxlID0gbmV3IE1TLlN1cHBvcnQuRm1zLkNvbXBvdW5kaW5n QnJhbmNoUnVsZShwYXJzZUludChyZWYpLCBwYXJzZUludChwcm9iYWJpbGl0eSkp Ow0KDQoJCQkJaWYgKGJycyAmJiBicnMudmFsdWUpDQoJCQkJew0KCQkJCQlydWxl LmFkZENvbmRpdGlvbnMoYnJzLnZhbHVlLnNwbGl0KCIqIikpOw0KCQkJCX0NCg0K CQkJCWlmIChjbmJycyAmJiBjbmJycy5sZW5ndGggPiAwKQ0KCQkJCXsNCgkJCQkJ cnVsZS5hZGRDb250ZXh0Q29uZGl0aW9ucyhjbmJycyk7DQoJCQkJfQ0KDQoJCQkJ dGhpcy5jb21wb3VuZGluZ0JyYW5jaFJ1bGVzLnB1c2gocnVsZSk7DQoJCQl9DQoJ CX0NCg0KCQl2YXIgcGFnZUlkOw0KDQoJCWlmICh0aGlzLmRvbU9iamVjdC5pZCA9 PSAiRElWXzAiKQ0KCQl7DQoJCQlwYWdlSWQgPSAiMCI7DQoJCX0NCgkJZWxzZSBp ZiAodGhpcy5kb21PYmplY3QuaWQgPT0gIkRJVl9DTE9TRSIpDQoJCXsNCgkJCXBh Z2VJZCA9ICJFbmQiOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJcGFnZUlkID0gVXRp bHMuZ2V0Q2hpbGRCeU5hbWUoZG9tT2JqZWN0LCAiaWQiKS52YWx1ZTsNCgkJfQ0K DQoJCXRoaXMuZ2V0UGFnZUlkID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJcmV0dXJu IHBhZ2VJZDsNCgkJfQ0KDQoJCXRoaXMucXVlc3Rpb25zID0gW107DQoNCgkJdGhp cy5kaXNjb3ZlclF1ZXN0aW9ucyA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCWlmICh0 aGlzLmRvbU9iamVjdCAhPSBudWxsKQ0KCQkJew0KCQkJCXZhciBlcyA9IFV0aWxz LmdldENoaWxkTm9kZXNCeUNsYXNzKHRoaXMuZG9tT2JqZWN0LCAiUVVFU1RJT05D T05UQUlORVIiKTsNCg0KCQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBl cy5sZW5ndGg7ICsraW5kZXgpDQoJCQkJew0KCQkJCQl0aGlzLnF1ZXN0aW9ucy5w dXNoKG5ldyBNUy5TdXBwb3J0LkZtcy5TdXJ2ZXlRdWVzdGlvbihlc1tpbmRleF0s IHRoaXMpKTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQl0aGlzLmRpc2NvdmVyUXVl c3Rpb25zKCk7DQoNCgkJdGhpcy5pc1JlcXVpcmVkID0gZnVuY3Rpb24gKCkNCgkJ ew0KCQkJZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMucXVlc3Rpb25z Lmxlbmd0aDsgKytpbmRleCkNCgkJCXsNCgkJCQlpZiAodGhpcy5xdWVzdGlvbnNb aW5kZXhdLmlzUmVxdWlyZWQoKSAmJiAhdGhpcy5xdWVzdGlvbnNbaW5kZXhdLm5l ZWRIaWRlKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHRydWU7DQoJCQkJfQ0KCQkJfQ0K DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl0aGlzLnNhdmUgPSBmdW5jdGlv biAoKQ0KCQl7DQoJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5x dWVzdGlvbnMubGVuZ3RoOyArK2luZGV4KQ0KCQkJew0KCQkJCXRoaXMucXVlc3Rp b25zW2luZGV4XS5zYXZlKCk7DQoJCQl9DQoJCX0NCg0KCQl2YXIgdmFyaWFibGVz ID0gW107DQoNCgkJdGhpcy5nZXRWYXJpYWJsZXMgPSBmdW5jdGlvbiAoKQ0KCQl7 DQoJCQlyZXR1cm4gdmFyaWFibGVzOw0KCQl9DQoNCgkJdGhpcy5wb3B1bGF0ZVZh cmlhYmxlcyA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXZhcmlhYmxlcyA9IFtdOw0K DQoJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5xdWVzdGlvbnMu bGVuZ3RoOyArK2luZGV4KQ0KCQkJew0KCQkJCXZhciBzdWJWYXJpYWJsZXMgPSB0 aGlzLnF1ZXN0aW9uc1tpbmRleF0ucG9wdWxhdGVWYXJpYWJsZXMoKTsNCg0KCQkJ CWZvciAodmFyIGtleSBpbiBzdWJWYXJpYWJsZXMpDQoJCQkJew0KCQkJCQl2YXJp YWJsZXNba2V5XSA9IHN1YlZhcmlhYmxlc1trZXldOw0KCQkJCX0NCgkJCX0NCgkJ fQ0KDQoJCXRoaXMucmVzdG9yZSA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCWZvciAo dmFyIGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLnF1ZXN0aW9ucy5sZW5ndGg7ICsr aW5kZXgpDQoJCQl7DQoJCQkJdGhpcy5xdWVzdGlvbnNbaW5kZXhdLnJlc3RvcmUo KTsNCgkJCX0NCgkJfQ0KDQoJCXRoaXMudmFsaWRhdGUgPSBmdW5jdGlvbiAoKQ0K CQl7DQoJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5xdWVzdGlv bnMubGVuZ3RoOyArK2luZGV4KQ0KCQkJew0KCQkJCXZhciByZXN1bHQgPSB0aGlz LnF1ZXN0aW9uc1tpbmRleF0udmFsaWRhdGUoKTsNCgkJCQlpZiAoIXJlc3VsdC5p c1ZhbGlkKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHJlc3VsdDsNCgkJCQl9DQoJCQl9 DQoNCgkJCXJldHVybiBuZXcgVmFsaWRhdGVSZXN1bHQodHJ1ZSk7DQoJCX0NCg0K CQl0aGlzLmdldE5leHRQYWdlQnlCcmFuY2hSdWxlID0gZnVuY3Rpb24gKCkNCgkJ ew0KCQkJdmFyIG5leHRQYWdlSWQgPSAtMTsNCg0KCQkJLy8gSWYgY2xpY2sgIlNr aXAiIGJ1dHRvbiwgZG9uJ3QgY2hlY2sgcXVlc3Rpb24gYnJhbmNoIHJ1bGUgaW4g dGhpcyBwYWdlLg0KCQkJaWYgKHRoaXMubW9kaWZpZWQpDQoJCQl7DQoJCQkJZm9y ICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMucXVlc3Rpb25zLmxlbmd0aDsg KytpbmRleCkNCgkJCQl7DQoJCQkJCWlmICgobmV4dFBhZ2VJZCA9IHRoaXMucXVl c3Rpb25zW2luZGV4XS5nZXROZXh0UGFnZUJ5QnJhbmNoUnVsZSgpKSAhPSAtMSkN CgkJCQkJew0KCQkJCQkJcmV0dXJuIG5leHRQYWdlSWQ7DQoJCQkJCX0NCgkJCQl9 DQoJCQl9DQoNCgkJCXZhciBjb250ZXh0ID0gc3VydmV5LmdldENvbnRleHQoKTsN CgkJCWZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5jb21wb3VuZGluZ0JyYW5jaFJ1 bGVzLmxlbmd0aDsgaSsrKQ0KCQkJew0KCQkJCWlmICh0aGlzLmNvbXBvdW5kaW5n QnJhbmNoUnVsZXNbaV0uZXZhbHVhdGUodGhpcy5zdXJ2ZXksIGNvbnRleHQpKQ0K CQkJCXsNCgkJCQkJcmV0dXJuIHRoaXMuY29tcG91bmRpbmdCcmFuY2hSdWxlc1tp XS5uZXh0UGFnZUlkOw0KCQkJCX0NCgkJCX0NCg0KCQkJcmV0dXJuIHRoaXMubmV4 dFBhZ2VJZDsNCgkJfQ0KDQoJCXRoaXMuZ2V0UXVlc3Rpb25CeUlkID0gZnVuY3Rp b24gKHF1ZXN0aW9uSWQpDQoJCXsNCgkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5k ZXggPCB0aGlzLnF1ZXN0aW9ucy5sZW5ndGg7ICsraW5kZXgpDQoJCQl7DQoJCQkJ aWYgKHRoaXMucXVlc3Rpb25zW2luZGV4XS5nZXRRdWVzdGlvbklkKCkgPT0gcXVl c3Rpb25JZCkNCgkJCQl7DQoJCQkJCXJldHVybiB0aGlzLnF1ZXN0aW9uc1tpbmRl eF07DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCXRo aXMuZ2V0UXVlc3Rpb25CeUVsZW1lbnQgPSBmdW5jdGlvbiAoZWwpDQoJCXsNCgkJ CWZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5xdWVzdGlvbnMubGVuZ3RoOyArK2kp DQoJCQl7DQoJCQkJaWYgKFV0aWxzLmlzQW5jZXN0b3JPZih0aGlzLnF1ZXN0aW9u c1tpXS5kb21PYmplY3QsIGVsKSkNCgkJCQl7DQoJCQkJCXJldHVybiB0aGlzLnF1 ZXN0aW9uc1tpXTsNCgkJCQl9DQoJCQl9DQoNCgkJCXJldHVybiBudWxsOw0KCQl9 DQoNCgkJdGhpcy5zaG93ID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJdmFyIGlzSWdu b3JlZCA9IHRydWU7DQoJCQl0aGlzLmlnbm9yZWQgPSBmYWxzZTsNCgkJCXZhciBx dWVzdGlvbkNvdW50ID0gdGhpcy5xdWVzdGlvbnMubGVuZ3RoOw0KCQkJZm9yICh2 YXIgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMucXVlc3Rpb25zLmxlbmd0aDsgKytp bmRleCkNCgkJCXsNCgkJCQl2YXIgcXVlc3Rpb24gPSB0aGlzLnF1ZXN0aW9uc1tp bmRleF07DQoJCQkJcXVlc3Rpb24ucHJlcGFyZSgpOw0KCQkJCWlmICghcXVlc3Rp b24ubmVlZEhpZGUpDQoJCQkJew0KCQkJCQlpc0lnbm9yZWQgPSBmYWxzZTsNCgkJ CQl9DQoJCQl9DQoNCgkJCWlmIChxdWVzdGlvbkNvdW50ID4gMCAmJiBpc0lnbm9y ZWQpDQoJCQl7DQoJCQkJdGhpcy5pZ25vcmVkID0gdHJ1ZTsNCgkJCX0NCgkJCWlm ICh0aGlzLmRvbU9iamVjdCAhPSBudWxsKQ0KCQkJew0KCQkJCXRoaXMuZW5hYmxl QnV0dG9uKCJidG5Ta2lwIiwgIXRoaXMuaXNSZXF1aXJlZCgpKTsNCgkJCQl0aGlz LmRvbU9iamVjdC5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsNCgkJCX0NCgkJfQ0K DQoJCXRoaXMuZW5hYmxlQnV0dG9uID0gZnVuY3Rpb24gKGJ1dHRvbkRhdGFOYW1l LCBpc0VuYWJsZWQpDQoJCXsNCgkJCXZhciBidXR0b24gPSBVdGlscy5nZXRDaGls ZEJ5QXR0cmlidXRlKHRoaXMuZG9tT2JqZWN0LCAiZGF0YS1uYW1lIiwgYnV0dG9u RGF0YU5hbWUpOw0KCQkJaWYgKCFidXR0b24pDQoJCQl7DQoJCQkJcmV0dXJuOw0K CQkJfQ0KCQkJaWYgKGlzRW5hYmxlZCkNCgkJCXsNCgkJCQlidXR0b24ucmVtb3Zl QXR0cmlidXRlKCJkaXNhYmxlZCIpOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJ CWJ1dHRvbi5zZXRBdHRyaWJ1dGUoImRpc2FibGVkIiwgImRpc2FibGVkIik7DQoJ CQl9DQoJCX0NCg0KCQl0aGlzLmhpZGUgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlp ZiAodGhpcy5kb21PYmplY3QgIT0gbnVsbCkNCgkJCXsNCgkJCQl0aGlzLmRvbU9i amVjdC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOw0KCQkJfQ0KCQl9DQoNCgkJdGhp cy5pc1Zpc2libGUgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlpZiAodGhpcy5kb21P YmplY3QgIT0gbnVsbCkNCgkJCXsNCgkJCQlyZXR1cm4gdGhpcy5kb21PYmplY3Qu c3R5bGUuZGlzcGxheSA9PSAibm9uZSIgPyBmYWxzZSA6IHRydWU7DQoJCQl9DQoN CgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMuZGlzcGxheUJyYW5jaFJ1 bGVzID0gZnVuY3Rpb24gKG5leHRQYWdlSWRJbk9yZGVyKQ0KCQl7DQoJCQl2YXIg bmV4dFBhZ2VJZDsNCgkJCWlmICh0aGlzLm5leHRQYWdlSWQgPiAwKQ0KCQkJew0K CQkJCW5leHRQYWdlSWQgPSB0aGlzLm5leHRQYWdlSWQ7DQoJCQl9DQoJCQllbHNl DQoJCQl7DQoJCQkJbmV4dFBhZ2VJZCA9IG5leHRQYWdlSWRJbk9yZGVyOw0KCQkJ fQ0KDQoJCQl2YXIgaW5mbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i KTsNCgkJCWluZm8uc3R5bGUuY29sb3IgPSAiZ3JlZW4iOw0KCQkJaW5mby5pbm5l ckhUTUwgPSAiKCIgKyB0aGlzLmdldFBhZ2VJZCgpICsgIi0tJmd0OyIgKyBuZXh0 UGFnZUlkICsgIikiOw0KDQoJCQlpZiAodGhpcy5kb21PYmplY3QgIT0gbnVsbCkN CgkJCXsNCgkJCQl0aGlzLmRvbU9iamVjdC5wYXJlbnROb2RlLmluc2VydEJlZm9y ZShpbmZvLCB0aGlzLmRvbU9iamVjdCk7DQoJCQl9DQoNCgkJCWZvciAodmFyIGlu ZGV4ID0gMDsgaW5kZXggPCB0aGlzLnF1ZXN0aW9ucy5sZW5ndGg7ICsraW5kZXgp DQoJCQl7DQoJCQkJdGhpcy5xdWVzdGlvbnNbaW5kZXhdLmRpc3BsYXlCcmFuY2hS dWxlcygpOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJTVMuU3VwcG9ydC5GbXMuRm9sbG93 VXAgPSBmdW5jdGlvbiAoc3VydmV5SWRzLCBsYW5ndWFnZSwgc3RhcnRPZmZzZXQs IGVuZE9mZnNldCwgc2VydmVyQ29vcmRpbmF0ZSwgY2xpZW50Q29vcmRpbmF0ZSwg cXVpdE1vZGUsIHRyaWdnZXIsIGNvbmRpdGlvbnMpDQoJew0KCQl0aGlzLmdldFN1 cnZleUlkcyA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXJldHVybiBzdXJ2ZXlJZHM7 DQoJCX0NCg0KCQl0aGlzLmdldExhbmd1YWdlID0gZnVuY3Rpb24gKCkNCgkJew0K CQkJcmV0dXJuIGxhbmd1YWdlOw0KCQl9DQoNCgkJdGhpcy5nZXRTdGFydE9mZnNl dCA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXJldHVybiBzdGFydE9mZnNldDsNCgkJ fQ0KDQoJCXRoaXMuZ2V0RW5kT2Zmc2V0ID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJ cmV0dXJuIGVuZE9mZnNldDsNCgkJfQ0KDQoJCXRoaXMuZ2V0UXVpdE1vZGUgPSBm dW5jdGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4gcXVpdE1vZGU7DQoJCX0NCg0KCQl0 aGlzLmdldFRyaWdnZXIgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4gdHJp Z2dlcjsNCgkJfQ0KDQoJCXRoaXMuZ2V0Q29uZGl0aW9ucyA9IGZ1bmN0aW9uICgp DQoJCXsNCgkJCXJldHVybiBjb25kaXRpb25zOw0KCQl9DQoNCgkJdGhpcy5nZXRT ZXJ2ZXJDb29yZGluYXRlID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJcmV0dXJuIHNl cnZlckNvb3JkaW5hdGU7DQoJCX0NCg0KCQl0aGlzLmdldENsaWVudENvb3JkaW5h dGUgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4gY2xpZW50Q29vcmRpbmF0 ZTsNCgkJfQ0KDQoJCXRoaXMuZ2V0U3RhcnRUaW1lID0gZnVuY3Rpb24gKCkNCgkJ ew0KCQkJcmV0dXJuIHN0YXJ0T2Zmc2V0ICsgY2xpZW50Q29vcmRpbmF0ZTsNCgkJ fQ0KDQoJCXRoaXMuZ2V0RW5kVGltZSA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXJl dHVybiBlbmRPZmZzZXQgKyBjbGllbnRDb29yZGluYXRlOw0KCQl9DQoNCgkJdGhp cy5pc0FjdGl2ZSA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXZhciB0aW1lID0gTWF0 aC5yb3VuZCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCk7DQoJCQlyZXR1 cm4gKHRpbWUgPj0gdGhpcy5nZXRTdGFydFRpbWUoKSAmJiB0aW1lIDw9IHRoaXMu Z2V0RW5kVGltZSgpKTsNCgkJfQ0KDQoJCXRoaXMuaXNFeHBpcmVkID0gZnVuY3Rp b24gKCkNCgkJew0KCQkJcmV0dXJuIE1hdGgucm91bmQoKG5ldyBEYXRlKCkpLmdl dFRpbWUoKSAvIDEwMDApID4gdGhpcy5nZXRFbmRUaW1lKCk7DQoJCX0NCg0KCQl0 aGlzLmV2YWx1dGUgPSBmdW5jdGlvbiAoc3VydmV5LCBpc1BhcnRpYWwpDQoJCXsN CgkJCWlmICgocXVpdE1vZGUgIT0gMikgJiYgKHF1aXRNb2RlICE9IChpc1BhcnRp YWwgPyAxIDogMCkpKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCg0K CQkJZm9yICh2YXIgaSA9IDA7IGkgPCBjb25kaXRpb25zLmxlbmd0aDsgKytpKQ0K CQkJew0KCQkJCWlmICghY29uZGl0aW9uc1tpXS5ldmFsdXRlKHN1cnZleSkpDQoJ CQkJew0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1 cm4gdHJ1ZTsNCgkJfQ0KCX0NCg0KCU1TLlN1cHBvcnQuRm1zLkZvbGxvd1VwLnBh cnNlRm9sbG93dXBzRmllbGQgPSBmdW5jdGlvbiAoZmllbGRWYWx1ZSwgbGFuZ3Vh Z2UsIGxvYWRUaW1lKQ0KCXsNCgkJdmFyIGZvbGxvd1VwcyA9IFtdOw0KCQl2YXIg cmUgPSAvXihcW1xbKFxkKykoLFxkKykqXF0sXGQrLFxkKyxcZCssXGQsXGQrLFxb XFtcZCssXGQrLFxkKyxcZCtcXSgsXFtcZCssXGQrLFxkKyxcZCtcXSkqXF1cXSgs XFtcWyhcZCspKCxcZCspKlxdLFxkKyxcZCssXGQrLFxkLFxkKyxcW1xbXGQrLFxk KyxcZCssXGQrXF0oLFxbXGQrLFxkKyxcZCssXGQrXF0pKlxdXF0pKik/JC87DQoJ CWlmIChyZS50ZXN0KGZpZWxkVmFsdWUpKQ0KCQl7DQoJCQl2YXIgZm9sbG93VXBN ZXRhcyA9IGV2YWwoJ1snICsgZmllbGRWYWx1ZSArICddJyk7IC8vIGFzIHdlIGhh dmUgdmVyZmllZCB0aGUgZmllbGRWYWx1ZSB3aXRoIGEgc3RyaWN0IHJlZ3VsYXIg ZXhwcmVzc2lvbiwgdGhpcyAiZXZhbCIgc2hvdWQgYmUgc2FmZQkNCg0KCQkJdmFy IHRpbWUgPSBNYXRoLnJvdW5kKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAw KTsNCgkJCXZhciBzZXJ2ZXJUaW1lT2Zmc2V0ID0gdGltZSAtIGxvYWRUaW1lOw0K DQoJCQlmb3IgKHZhciBpID0gMDsgaSA8IGZvbGxvd1VwTWV0YXMubGVuZ3RoOyAr K2kpDQoJCQl7DQoJCQkJdmFyIGZvbGxvd1VwTWV0YSA9IGZvbGxvd1VwTWV0YXNb aV07DQoNCgkJCQl2YXIgY29uZGl0aW9ucyA9IFtdOw0KCQkJCWZvciAodmFyIGog PSAwOyBqIDwgZm9sbG93VXBNZXRhWzZdLmxlbmd0aDsgKytqKQ0KCQkJCXsNCgkJ CQkJdmFyIGNvbmRpdGlvbk1ldGEgPSBmb2xsb3dVcE1ldGFbNl1bal07DQoJCQkJ CWNvbmRpdGlvbnMucHVzaChuZXcgTVMuU3VwcG9ydC5GbXMuQ29uZGl0aW9uKGNv bmRpdGlvbk1ldGFbMF0sIGNvbmRpdGlvbk1ldGFbMV0sIGNvbmRpdGlvbk1ldGFb Ml0sIGNvbmRpdGlvbk1ldGFbM10pKTsNCgkJCQl9DQoJCQkJZm9sbG93VXBzLnB1 c2gobmV3IE1TLlN1cHBvcnQuRm1zLkZvbGxvd1VwKGZvbGxvd1VwTWV0YVswXSwg bGFuZ3VhZ2UsIGZvbGxvd1VwTWV0YVsxXSwgZm9sbG93VXBNZXRhWzJdLCBmb2xs b3dVcE1ldGFbM10gKyBzZXJ2ZXJUaW1lT2Zmc2V0LCB0aW1lLCBmb2xsb3dVcE1l dGFbNF0sIGZvbGxvd1VwTWV0YVs1XSwgY29uZGl0aW9ucykpOw0KCQkJfQ0KCQl9 DQoNCgkJcmV0dXJuIGZvbGxvd1VwczsNCgl9DQoNCglNUy5TdXBwb3J0LkZtcy5G b2xsb3dVcC5wYXJzZUZvbGxvd3Vwc0Nvb2tpZSA9IGZ1bmN0aW9uIChjb29raWVW YWx1ZSkNCgl7DQoJCXZhciBmb2xsb3dVcHMgPSBbXTsNCg0KCQl2YXIgcmUgPSAv XihcW1xbKFxkKykoLFxkKykqXF0sXCdbYS16QS1aXSsoLVthLXpBLVpdKyk/XCcs XGQrLFxkKyxcZCssXGQrLFxkK1xdKCxcW1xbKFxkKykoLFxkKykqXF0sXCdbW2Et ekEtWl0rKC1bYS16QS1aXSspP1wnLFxkKyxcZCssXGQrLFxkKyxcZCtcXSkqKT8k LzsNCgkJaWYgKHJlLnRlc3QoY29va2llVmFsdWUpKQ0KCQl7DQoJCQl2YXIgbWV0 YXMgPSBldmFsKCdbJyArIGNvb2tpZVZhbHVlICsgJ10nKTsgLy8gYXMgd2UgaGF2 ZSB2ZXJmaWVkIHRoZSBjb29raWVWYWx1ZSB3aXRoIGEgc3RyaWN0IHJlZ3VsYXIg ZXhwcmVzc2lvbiwgdGhpcyAiZXZhbCIgc2hvdWQgYmUgc2FmZQ0KDQoJCQlmb3Ig KHZhciBpID0gMDsgaSA8IG1ldGFzLmxlbmd0aDsgKytpKQ0KCQkJew0KCQkJCXZh ciBtZXRhID0gbWV0YXNbaV07DQoJCQkJZm9sbG93VXBzLnB1c2gobmV3IE1TLlN1 cHBvcnQuRm1zLkZvbGxvd1VwKG1ldGFbMF0sIG1ldGFbMV0sIG1ldGFbMl0sIG1l dGFbM10sIG1ldGFbNF0sIG1ldGFbNV0sIDIsIG1ldGFbNl0sIG51bGwpKTsNCgkJ CX0NCgkJfQ0KDQoJCXJldHVybiBmb2xsb3dVcHM7DQoJfQ0KDQoJTVMuU3VwcG9y dC5GbXMuRm9sbG93VXAucGFja2FnZUZvbGxvd3Vwc0Nvb2tpZSA9IGZ1bmN0aW9u IChmb2xsb3dVcHMpDQoJew0KCQl2YXIgdmFsdWVzID0gW107DQoJCWZvciAodmFy IGkgPSAwOyBpIDwgZm9sbG93VXBzLmxlbmd0aDsgKytpKQ0KCQl7DQoJCQl2YXIg Zm9sbG93VXAgPSBmb2xsb3dVcHNbaV07DQoJCQl2YWx1ZXMucHVzaCgNCgkJCQki WyINCgkJCQkJKyAiWyIgKyBmb2xsb3dVcC5nZXRTdXJ2ZXlJZHMoKSArICJdIiAr ICIsIg0KCQkJCQkrICInIiArIGZvbGxvd1VwLmdldExhbmd1YWdlKCkgKyAiJyIg KyAiLCINCgkJCQkJKyBmb2xsb3dVcC5nZXRTdGFydE9mZnNldCgpICsgIiwiDQoJ CQkJCSsgZm9sbG93VXAuZ2V0RW5kT2Zmc2V0KCkgKyAiLCINCgkJCQkJKyBmb2xs b3dVcC5nZXRTZXJ2ZXJDb29yZGluYXRlKCkgKyAiLCINCgkJCQkJKyBmb2xsb3dV cC5nZXRDbGllbnRDb29yZGluYXRlKCkgKyAiLCINCgkJCQkJKyBmb2xsb3dVcC5n ZXRUcmlnZ2VyKCkgKw0KCQkJCSJdIg0KCQkJKTsNCgkJfQ0KDQoJCXJldHVybiB2 YWx1ZXMuam9pbigpOw0KCX0NCg0KCU1TLlN1cHBvcnQuRm1zLkZvbGxvd1VwLmdl dE1heEZvbGxvd3Vwc0V4cGlyZVRpbWUgPSBmdW5jdGlvbiAoZm9sbG93VXBzKQ0K CXsNCgkJdmFyIG1heFZhbHVlID0gMDsNCg0KCQlmb3IgKHZhciBpID0gMDsgaSA8 IGZvbGxvd1Vwcy5sZW5ndGg7ICsraSkNCgkJew0KCQkJdmFyIGVuZFRpbWUgPSBm b2xsb3dVcHNbaV0uZ2V0RW5kVGltZSgpOw0KCQkJaWYgKGVuZFRpbWUgPiBtYXhW YWx1ZSkNCgkJCXsNCgkJCQltYXhWYWx1ZSA9IGVuZFRpbWU7DQoJCQl9DQoJCX0N Cg0KCQl2YXIgdGltZSA9IG5ldyBEYXRlKCk7DQoJCXRpbWUuc2V0VGltZShtYXhW YWx1ZSAqIDEwMDApOw0KDQoJCXJldHVybiB0aW1lOw0KCX0NCg0KCU1TLlN1cHBv cnQuRm1zLlN1cnZleUV4cHJlc3Npb24gPSBmdW5jdGlvbiAoc3VydmV5LCBsaXRl cmFsKQ0KCXsNCgkJdGhpcy5ldmFsdXRlID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJ dmFyIGYgPSBuZXcgRnVuY3Rpb24oInJldHVybiAiICsgbGl0ZXJhbCk7DQoJCQly ZXR1cm4gZi5hcHBseShzdXJ2ZXkpOw0KCQl9DQoJfQ0KDQoJTVMuU3VwcG9ydC5G bXMuU3VydmV5ID0gZnVuY3Rpb24gKGlkLCBjb25maWcpDQoJew0KCQkvLyB1c2lu Zw0KCQl2YXIgRm1zID0gTVMuU3VwcG9ydC5GbXM7DQoJCXZhciBVdGlscyA9IEZt cy5VdGlsczsNCgkJdmFyIEV2ZW50ID0gRm1zLlN1cnZleUV2ZW50Ow0KCQl2YXIg UGFnZSA9IEZtcy5TdXJ2ZXlQYWdlOw0KCQl2YXIgRm9sbG93VXAgPSBGbXMuRm9s bG93VXA7DQoNCgkJdGhpcy5jb29raWVEb21haW4gPSBjb25maWcgPyBjb25maWcu c2l0ZS5jb29raWVEb21haW4gOiB0eXBlb2YgKGdDb29raWVEb21haW4pICE9ICJ1 bmRlZmluZWQiID8gKGdDb29raWVEb21haW4gfHwgZG9jdW1lbnQuZG9tYWluKSA6 IGRvY3VtZW50LmRvbWFpbjsNCg0KCQl0aGlzLmlkID0gaWQ7DQoNCgkJdGhpcy5z dXJ2ZXlUcmFja2luZ1RleHQgPSBudWxsOw0KDQoJCXZhciBsb2FkVGltZSA9IE1h dGgucm91bmQoKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAvIDEwMDApOw0KDQoJCXRo aXMuZG9tT2JqZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOw0KCQl0 aGlzLm5hbWUgPSBVdGlscy5nZXRDaGlsZEJ5SWQodGhpcy5kb21PYmplY3QsICJz dXJ2ZXluYW1lIikudmFsdWU7DQoNCgkJdGhpcy5pbnRyb2R1Y3Rpb24gPSBudWxs Ow0KDQoJCXRoaXMucGFnZXMgPSBbXTsNCgkJdGhpcy50aGFua3lvdSA9IG51bGw7 DQoNCgkJdGhpcy5zdWJtaXRGaWVsZHMgPSBbXTsNCg0KCQl2YXIgaGFzU3VibWl0 dGVkID0gZmFsc2U7DQoJCXRoaXMuc3RhcnRUaW1lID0gbnVsbDsNCg0KCQkvLyBF dmVudHMNCgkJdGhpcy5vbkJlZm9yZVN0YXJ0ID0gbmV3IEV2ZW50KCk7DQoJCXRo aXMub25CZWZvcmVBY2NlcHQgPSBuZXcgRXZlbnQoKTsNCgkJdGhpcy5vbkJlZm9y ZURlY2xpbmUgPSBuZXcgRXZlbnQoKTsNCgkJdGhpcy5vbkJlZm9yZUNhbmNlbCA9 IG5ldyBFdmVudCgpOw0KCQl0aGlzLm9uQmVmb3JlTmV4dCA9IG5ldyBFdmVudCgp Ow0KCQl0aGlzLm9uQmVmb3JlUHJldmlvdXMgPSBuZXcgRXZlbnQoKTsNCgkJdGhp cy5vbkJlZm9yZVNraXAgPSBuZXcgRXZlbnQoKTsNCgkJdGhpcy5vbkJlZm9yZUNs b3NlID0gbmV3IEV2ZW50KCk7DQoJCXRoaXMub25CZWZvcmVTdWJtaXQgPSBuZXcg RXZlbnQoKTsNCg0KCQl0aGlzLm9uQWZ0ZXJTdGFydCA9IG5ldyBFdmVudCgpOw0K CQl0aGlzLm9uQWZ0ZXJBY2NlcHQgPSBuZXcgRXZlbnQoKTsNCgkJdGhpcy5vbkFm dGVyRGVjbGluZSA9IG5ldyBFdmVudCgpOw0KCQl0aGlzLm9uQWZ0ZXJDYW5jZWwg PSBuZXcgRXZlbnQoKTsNCgkJdGhpcy5vbkFmdGVyTmV4dCA9IG5ldyBFdmVudCgp Ow0KCQl0aGlzLm9uQWZ0ZXJQcmV2aW91cyA9IG5ldyBFdmVudCgpOw0KCQl0aGlz Lm9uQWZ0ZXJTa2lwID0gbmV3IEV2ZW50KCk7DQoJCXRoaXMub25BZnRlckNsb3Nl ID0gbmV3IEV2ZW50KCk7DQoJCXRoaXMub25BZnRlclN1Ym1pdCA9IG5ldyBFdmVu dCgpOw0KDQoJCXRoaXMub25WYWxpZGF0ZUVycm9yID0gbmV3IEV2ZW50KCk7DQoN CgkJdGhpcy5nZXRUcmFja2luZ1RleHQgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlp ZiAoY29uZmlnICYmIGNvbmZpZy50cmlnZ2VyQ29uZmlnICYmIGNvbmZpZy50cmln Z2VyQ29uZmlnLmVudGl0eSkNCgkJCXsNCgkJCQl0aGlzLnN1cnZleVRyYWNraW5n VGV4dCA9IGNvbmZpZy50cmlnZ2VyQ29uZmlnLmVudGl0eS5UcmFja2luZ1RleHQ7 DQoJCQl9DQoNCgkJCXZhciB0cmFja2luZ1RleHRFbGVtZW50ID0gVXRpbHMuZ2V0 Q2hpbGRCeU5hbWUodGhpcy5kb21PYmplY3QsICJ0cmFja2luZ1RleHQiKTsNCgkJ CWlmICh0cmFja2luZ1RleHRFbGVtZW50KQ0KCQkJew0KCQkJCXRoaXMuc3VydmV5 VHJhY2tpbmdUZXh0ID0gdHJhY2tpbmdUZXh0RWxlbWVudC52YWx1ZSB8fCB0aGlz LnN1cnZleVRyYWNraW5nVGV4dDsNCgkJCX0NCg0KCQkJcmV0dXJuIHRoaXMuc3Vy dmV5VHJhY2tpbmdUZXh0Ow0KCQl9DQoNCgkJdGhpcy5kaXNjb3ZlckludHJvZHVj dGlvbiA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCWlmICh0aGlzLmRvbU9iamVjdCAh PSBudWxsKQ0KCQkJew0KCQkJCXZhciBkb21PYmplY3QgPSBVdGlscy5nZXRDaGls ZEJ5SWQodGhpcy5kb21PYmplY3QsICJESVZfMCIpOw0KDQoJCQkJaWYgKGRvbU9i amVjdCAhPSBudWxsKQ0KCQkJCXsNCgkJCQkJdGhpcy5pbnRyb2R1Y3Rpb24gPSBu ZXcgUGFnZShkb21PYmplY3QsIHRoaXMpOw0KCQkJCQl0aGlzLnBhZ2VzLnB1c2go dGhpcy5pbnRyb2R1Y3Rpb24pOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXRoaXMu ZGlzY292ZXJQYWdlcyA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXZhciBzZWN0aW9u cyA9IFV0aWxzLmdldENoaWxkTm9kZXNCeUNsYXNzKHRoaXMuZG9tT2JqZWN0LCAi U1VSVkVZU0VDVElPTiIpOw0KDQoJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4 IDwgc2VjdGlvbnMubGVuZ3RoOyArK2luZGV4KQ0KCQkJew0KCQkJCXRoaXMucGFn ZXMucHVzaChuZXcgUGFnZShzZWN0aW9uc1tpbmRleF0sIHRoaXMpKTsNCgkJCX0N CgkJfQ0KDQoJCXRoaXMuZGlzY292ZXJUaGFua3lvdSA9IGZ1bmN0aW9uICgpDQoJ CXsNCgkJCWlmICh0aGlzLmRvbU9iamVjdCAhPSBudWxsKQ0KCQkJew0KCQkJCXZh ciBkb21PYmplY3QgPSBVdGlscy5nZXRDaGlsZEJ5SWQodGhpcy5kb21PYmplY3Qs ICJESVZfQ0xPU0UiKTsNCg0KCQkJCWlmIChkb21PYmplY3QgIT0gbnVsbCkNCgkJ CQl7DQoJCQkJCXRoaXMudGhhbmt5b3UgPSBuZXcgUGFnZShkb21PYmplY3QsIHRo aXMpOw0KCQkJCQl0aGlzLnBhZ2VzLnB1c2godGhpcy50aGFua3lvdSk7DQoJCQkJ fQ0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5kaXNjb3ZlckludHJvZHVjdGlvbigpOw0K CQl0aGlzLmRpc2NvdmVyUGFnZXMoKTsNCgkJdGhpcy5kaXNjb3ZlclRoYW5reW91 KCk7DQoNCgkJdGhpcy51cmxQYXJhbWV0ZXJzID0gVXRpbHMuZ2V0VXJsUGFyYW1l dGVycygpOw0KDQoJCXRoaXMuYWRkU3VibWl0RmllbGQgPSBmdW5jdGlvbiAoa2V5 LCB2YWx1ZSkNCgkJew0KCQkJdGhpcy5zdWJtaXRGaWVsZHNba2V5XSA9IHZhbHVl Ow0KCQl9DQoNCgkJdmFyIGN1cnJlbnRQYWdlSW5kZXggPSAtMTsNCg0KCQl2YXIg aGlzdG9yeSA9IFtdOw0KCQl2YXIgdmFyaWFibGVzID0gW107DQoNCgkJdGhpcy5w b3B1bGF0ZVZhcmlhYmxlcyA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXZhcmlhYmxl cyA9IFtdOw0KCQkJZm9yICh2YXIgaW5kZXggPSAwOyBpbmRleCA8IGhpc3Rvcnku bGVuZ3RoOyArK2luZGV4KQ0KCQkJew0KCQkJCXZhciBwYWdlID0gdGhpcy5wYWdl c1toaXN0b3J5W2luZGV4XV07DQoJCQkJaWYgKHBhZ2UubW9kaWZpZWQpDQoJCQkJ ew0KCQkJCQl2YXIgc3ViVmFyaWFibGVzID0gcGFnZS5nZXRWYXJpYWJsZXMoKTsN CgkJCQkJZm9yICh2YXIga2V5IGluIHN1YlZhcmlhYmxlcykNCgkJCQkJew0KCQkJ CQkJdmFyaWFibGVzW2tleV0gPSBzdWJWYXJpYWJsZXNba2V5XTsNCgkJCQkJfQ0K CQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXRoaXMuZ2V0VmFyaWFibGVzID0gZnVuY3Rp b24gKCkNCgkJew0KCQkJcmV0dXJuIHZhcmlhYmxlczsNCgkJfQ0KDQoJCXRoaXMu Z2V0VmFyaWFibGUgPSBmdW5jdGlvbiAobmFtZSkNCgkJew0KCQkJcmV0dXJuIHZh cmlhYmxlc1tuYW1lXTsNCgkJfQ0KDQoJCXRoaXMuaXNEZWZpbmVkID0gZnVuY3Rp b24gKG5hbWUpDQoJCXsNCgkJCWlmICh0aGlzLmdldFZhcmlhYmxlKG5hbWUpICE9 IG51bGwpDQoJCQl7DQoJCQkJcmV0dXJuIHRydWU7DQoJCQl9DQoJCQllbHNlDQoJ CQl7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5ldmFs dXRlID0gZnVuY3Rpb24gKGV4cHJlc3Npb24pDQoJCXsNCgkJCXZhciBleHAgPSBu ZXcgTVMuU3VwcG9ydC5GbXMuU3VydmV5RXhwcmVzc2lvbih0aGlzLCBleHByZXNz aW9uKTsNCgkJCXJldHVybiBleHAuZXZhbHV0ZSgpOw0KCQl9DQoNCgkJdGhpcy5F dmFsdWF0ZUNvbnRleHRWaXNpYmlsaXR5ID0gZnVuY3Rpb24gKGVsZW1lbnQpDQoJ CXsNCgkJCXZhciBjb250ZXh0Q29uZGl0aW9uID0gZWxlbWVudC5nZXRBdHRyaWJ1 dGUoInNob3dJZiIpOw0KCQkJaWYgKGNvbnRleHRDb25kaXRpb24gPT0gbnVsbCB8 fCBjb250ZXh0Q29uZGl0aW9uID09ICIiKQ0KCQkJew0KCQkJCXJldHVybiAiTm90 RXhpc3QiOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCXZhciByZXRWYWwgPSAi RXZhbEZhbHNlIjsNCgkJCQl0cnkNCgkJCQl7DQoJCQkJCXZhciBleHBXcmFwcGVy ID0gbmV3IE1TLlN1cHBvcnQuRm1zLkV4cHJlc3Npb25XcmFwcGVyKGNvbnRleHRD b25kaXRpb24sIHRoaXMpOw0KCQkJCQlyZXRWYWwgPSBleHBXcmFwcGVyLkV4ZWN1 dGUoKTsNCgkJCQkJaWYgKHR5cGVvZiAocmV0VmFsKSA9PSAidW5kZWZpbmVkIiB8 fCByZXRWYWwgPT0gbnVsbCkNCgkJCQkJew0KCQkJCQkJcmV0VmFsID0gIk5vdEV4 aXN0IjsNCgkJCQkJfQ0KCQkJCQllbHNlIGlmIChyZXRWYWwudG9TdHJpbmcoKSA9 PSAidHJ1ZSIpDQoJCQkJCXsNCgkJCQkJCXJldFZhbCA9ICJFdmFsVHJ1ZSI7DQoJ CQkJCX0NCgkJCQkJZWxzZSBpZiAocmV0VmFsLnRvU3RyaW5nKCkgPT0gImZhbHNl IiB8fCAhL14oTm90RXhpc3R8RXZhbFRydWV8RXZhbEZhbHNlKSQvZy50ZXN0KHJl dFZhbCkpDQoJCQkJCXsNCgkJCQkJCXJldFZhbCA9ICJFdmFsRmFsc2UiOw0KCQkJ CQl9DQoJCQkJfQ0KCQkJCWNhdGNoIChlKQ0KCQkJCXsNCgkJCQkJcmV0VmFsID0g Ik5vdEV4aXN0IjsNCgkJCQl9DQoJCQkJcmV0dXJuIHJldFZhbDsNCgkJCX0NCgkJ fQ0KDQoJCXRoaXMuc3RhcnQgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlpZiAodGhp cy5vbkJlZm9yZVN0YXJ0LmZpcmUodGhpcywgbnVsbCkpDQoJCQl7DQoJCQkJdGhp cy5zaG93KCk7DQoJCQkJaWYgKHRoaXMucGFnZXMubGVuZ3RoID4gMCkNCgkJCQl7 DQoJCQkJCWN1cnJlbnRQYWdlSW5kZXggPSAtMTsNCg0KCQkJCQl0aGlzLm5leHQo KTsNCgkJCQl9DQoNCgkJCQlpZiAodHlwZW9mICh0aGlzLnN0YXJ0VGltZSkgPT0g InVuZGVmaW5lZCIgfHwgdGhpcy5zdGFydFRpbWUgPT0gbnVsbCkNCgkJCQl7DQoJ CQkJCXRoaXMuc3RhcnRUaW1lID0gbmV3IERhdGUoKTsNCgkJCQl9DQoNCgkJCQl0 aGlzLm9uQWZ0ZXJTdGFydC5maXJlKHRoaXMsIG51bGwpOw0KCQkJfQ0KCQl9DQoN CgkJdGhpcy5maW5kUGFnZUluZGV4QnlQYWdlSWQgPSBmdW5jdGlvbiAocGFnZUlk KQ0KCQl7DQoJCQlmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5wYWdl cy5sZW5ndGg7ICsraW5kZXgpDQoJCQl7DQoJCQkJaWYgKHRoaXMucGFnZXNbaW5k ZXhdLmdldFBhZ2VJZCgpID09IHBhZ2VJZCkNCgkJCQl7DQoJCQkJCXJldHVybiBp bmRleDsNCgkJCQl9DQoJCQl9DQoNCgkJCXJldHVybiAtMTsNCgkJfQ0KDQoJCXRo aXMuZ2V0UGFnZUJ5SWQgPSBmdW5jdGlvbiAocGFnZUlkKQ0KCQl7DQoJCQl2YXIg aW5kZXggPSB0aGlzLmZpbmRQYWdlSW5kZXhCeVBhZ2VJZChwYWdlSWQpOw0KCQkJ aWYgKGluZGV4ICE9IC0xKQ0KCQkJew0KCQkJCXJldHVybiB0aGlzLnBhZ2VzW2lu ZGV4XTsNCgkJCX0NCg0KCQkJcmV0dXJuIG51bGw7DQoJCX0NCg0KCQl0aGlzLmdl dFBhZ2VCeUVsZW1lbnQgPSBmdW5jdGlvbiAoZWxlbWVudCkNCgkJew0KCQkJZm9y ICh2YXIgaSA9IDA7IGkgPCB0aGlzLnBhZ2VzLmxlbmd0aDsgKytpKQ0KCQkJew0K CQkJCWlmIChVdGlscy5pc0FuY2VzdG9yT2YodGhpcy5wYWdlc1tpXS5kb21PYmpl Y3QsIGVsZW1lbnQpKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIHRoaXMucGFnZXNbaV07 DQoJCQkJfQ0KCQkJfQ0KDQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCXRoaXMu Z2V0Q3VycmVudFBhZ2UgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4gdGhp cy5wYWdlc1tjdXJyZW50UGFnZUluZGV4XTsNCgkJfQ0KDQoJCXRoaXMubmV4dCA9 IGZ1bmN0aW9uICgpDQoJCXsNCgkJCWlmIChjdXJyZW50UGFnZUluZGV4ID49IHRo aXMucGFnZXMubGVuZ3RoIHx8ICh0aGlzLnRoYW5reW91ICE9IG51bGwgJiYgdGhp cy5wYWdlc1tjdXJyZW50UGFnZUluZGV4XSA9PSB0aGlzLnRoYW5reW91KSkNCgkJ CXsNCgkJCQlyZXR1cm4gZmFsc2U7DQoJCQl9DQoNCgkJCWlmICh0aGlzLm9uQmVm b3JlTmV4dC5maXJlKHRoaXMsIG51bGwpKQ0KCQkJew0KCQkJCWlmIChjdXJyZW50 UGFnZUluZGV4ID09IC0xKQ0KCQkJCXsNCgkJCQkJY3VycmVudFBhZ2VJbmRleCA9 IDA7DQoNCgkJCQkJaWYgKGN1cnJlbnRQYWdlSW5kZXggPj0gdGhpcy5wYWdlcy5s ZW5ndGgpDQoJCQkJCXsNCgkJCQkJCXRoaXMuc3VibWl0KCk7DQoJCQkJCX0NCgkJ CQkJZWxzZQ0KCQkJCQl7DQoJCQkJCQl2YXIgc2hvd3BhZ2UgPSBwYXJzZUludChV dGlscy5nZXRDaGlsZEJ5SWQodGhpcy5kb21PYmplY3QsICJzaG93cGFnZSIpLnZh bHVlKTsNCgkJCQkJCS8vIGRpc3BsYXkgdGhlIHBhZ2Ugc3BlY2lmaWVkIGJ5IHNo b3dwYWdlDQoJCQkJCQlpZiAoc2hvd3BhZ2UgPiAxICYmIHNob3dwYWdlIDw9IHRo aXMucGFnZXMubGVuZ3RoKQ0KCQkJCQkJew0KCQkJCQkJCWZvciAodmFyIGkgPSAw OyBpIDwgc2hvd3BhZ2UgLSAxOyBpKyspDQoJCQkJCQkJew0KCQkJCQkJCQloaXN0 b3J5LnB1c2goaSk7DQoJCQkJCQkJfQ0KDQoJCQkJCQkJY3VycmVudFBhZ2VJbmRl eCA9IHNob3dwYWdlIC0gMTsNCgkJCQkJCX0NCgkJCQkJCS8vIGlmIHRoZSB2YWx1 ZSBvZiBzaG93cGFnZSBpcyBvdXQgb2YgdGhlIHBhZ2VzIGFycmF5LCB0aGVuIGRp c3BsYXkgdGhlIHRoYW5reW91IHBhZ2UNCgkJCQkJCWVsc2UgaWYgKHNob3dwYWdl ID4gdGhpcy5wYWdlcy5sZW5ndGgpDQoJCQkJCQl7DQoJCQkJCQkJY3VycmVudFBh Z2VJbmRleCA9IHRoaXMucGFnZXMubGVuZ3RoIC0gMTsNCgkJCQkJCX0NCg0KCQkJ CQkJdGhpcy5wYWdlc1tjdXJyZW50UGFnZUluZGV4XS5zaG93KCk7DQoJCQkJCQl0 aGlzLnBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhdLnNhdmUoKTsNCgkJCQkJfQ0KCQkJ CX0NCgkJCQllbHNlDQoJCQkJew0KCQkJCQl2YXIgdmFsaWRhdGVSZXN1bHQgPSB0 aGlzLnBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhdLnZhbGlkYXRlKCk7DQoJCQkJCWlm ICh2YWxpZGF0ZVJlc3VsdC5pc1ZhbGlkKQ0KCQkJCQl7DQoJCQkJCQloaXN0b3J5 LnB1c2goY3VycmVudFBhZ2VJbmRleCk7DQoJCQkJCQl0aGlzLnBhZ2VzW2N1cnJl bnRQYWdlSW5kZXhdLmhpZGUoKTsNCgkJCQkJCXRoaXMucGFnZXNbY3VycmVudFBh Z2VJbmRleF0ubW9kaWZpZWQgPSB0cnVlOw0KCQkJCQkJdGhpcy5wYWdlc1tjdXJy ZW50UGFnZUluZGV4XS5wb3B1bGF0ZVZhcmlhYmxlcygpOw0KCQkJCQkJdGhpcy5w b3B1bGF0ZVZhcmlhYmxlcygpOw0KDQoJCQkJCQl2YXIgbmV4dFBhZ2VJbmRleCA9 IC0xOw0KDQoJCQkJCQl2YXIgbmV4dFBhZ2VJZCA9IHRoaXMucGFnZXNbY3VycmVu dFBhZ2VJbmRleF0uZ2V0TmV4dFBhZ2VCeUJyYW5jaFJ1bGUoKTsNCg0KCQkJCQkJ aWYgKG5leHRQYWdlSWQgPiAwKQ0KCQkJCQkJew0KCQkJCQkJCW5leHRQYWdlSW5k ZXggPSB0aGlzLmZpbmRQYWdlSW5kZXhCeVBhZ2VJZChuZXh0UGFnZUlkKTsNCgkJ CQkJCX0NCg0KCQkJCQkJaWYgKG5leHRQYWdlSW5kZXggIT0gLTEgJiYgbmV4dFBh Z2VJbmRleCAhPSBjdXJyZW50UGFnZUluZGV4KQ0KCQkJCQkJew0KCQkJCQkJCWN1 cnJlbnRQYWdlSW5kZXggPSBuZXh0UGFnZUluZGV4Ow0KCQkJCQkJfQ0KCQkJCQkJ ZWxzZQ0KCQkJCQkJew0KCQkJCQkJCSsrY3VycmVudFBhZ2VJbmRleDsNCgkJCQkJ CX0NCg0KCQkJCQkJaWYgKGN1cnJlbnRQYWdlSW5kZXggPj0gdGhpcy5wYWdlcy5s ZW5ndGggfHwgdGhpcy50aGFua3lvdSAhPSBudWxsICYmICh0aGlzLnBhZ2VzW2N1 cnJlbnRQYWdlSW5kZXhdID09IHRoaXMudGhhbmt5b3UpKQ0KCQkJCQkJew0KCQkJ CQkJCXRoaXMuc3VibWl0KCk7DQoJCQkJCQl9DQoJCQkJCQllbHNlDQoJCQkJCQl7 DQoJCQkJCQkJdmFyIHBhZ2UgPSB0aGlzLnBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhd Ow0KCQkJCQkJCXBhZ2Uuc2hvdygpOw0KCQkJCQkJCXBhZ2Uuc2F2ZSgpOw0KCQkJ CQkJCWlmIChwYWdlLmlnbm9yZWQpDQoJCQkJCQkJew0KCQkJCQkJCQl0aGlzLnNr aXAoKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJ CQl7DQoJCQkJCQl0aGlzLm9uVmFsaWRhdGVFcnJvci5maXJlKHRoaXMsIHZhbGlk YXRlUmVzdWx0KTsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfQ0KCQkJCX0N Cg0KCQkJCXRoaXMub25BZnRlck5leHQuZmlyZSh0aGlzLCBudWxsKTsNCgkJCQly ZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJCWVsc2UNCgkJCXsNCgkJCQlyZXR1cm4gZmFs c2U7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLnNraXAgPSBmdW5jdGlvbiAoKQ0KCQl7 DQoJCQlpZiAodGhpcy5vbkJlZm9yZVNraXAuZmlyZSh0aGlzLCBudWxsKSkNCgkJ CXsNCgkJCQlpZiAoY3VycmVudFBhZ2VJbmRleCA8IDApDQoJCQkJew0KCQkJCQl0 aHJvdyAiY3VycmVudFBhZ2VJbmRleCA8IDAiOw0KCQkJCX0NCgkJCQllbHNlIGlm ICh0aGlzLnBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhdLmlzUmVxdWlyZWQoKSAmJiAh dGhpcy5wYWdlc1tjdXJyZW50UGFnZUluZGV4XS5pZ25vcmVkKQ0KCQkJCXsNCgkJ CQkJdGhyb3cgIkNhbm5vdCBza2lwIGEgcmVxdWlyZWQgcXVlc3Rpb24uIjsNCgkJ CQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJaGlzdG9yeS5wdXNoKGN1cnJlbnRQ YWdlSW5kZXgpOw0KCQkJCQl0aGlzLnBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhdLnJl c3RvcmUoKTsNCgkJCQkJdGhpcy5wYWdlc1tjdXJyZW50UGFnZUluZGV4XS5oaWRl KCk7DQoJCQkJCXRoaXMucGFnZXNbY3VycmVudFBhZ2VJbmRleF0ubW9kaWZpZWQg PSBmYWxzZTsNCgkJCQkJdGhpcy5wb3B1bGF0ZVZhcmlhYmxlcygpOw0KDQoJCQkJ CXZhciBuZXh0UGFnZUluZGV4ID0gLTE7DQoNCgkJCQkJdmFyIG5leHRQYWdlSWQg PSB0aGlzLnBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhdLmdldE5leHRQYWdlQnlCcmFu Y2hSdWxlKCk7DQoNCgkJCQkJaWYgKG5leHRQYWdlSWQgPiAwKQ0KCQkJCQl7DQoJ CQkJCQluZXh0UGFnZUluZGV4ID0gdGhpcy5maW5kUGFnZUluZGV4QnlQYWdlSWQo bmV4dFBhZ2VJZCk7DQoJCQkJCX0NCg0KCQkJCQlpZiAobmV4dFBhZ2VJbmRleCAh PSAtMSAmJiBuZXh0UGFnZUluZGV4ICE9IGN1cnJlbnRQYWdlSW5kZXgpDQoJCQkJ CXsNCgkJCQkJCWN1cnJlbnRQYWdlSW5kZXggPSBuZXh0UGFnZUluZGV4Ow0KCQkJ CQl9DQoJCQkJCWVsc2UNCgkJCQkJew0KCQkJCQkJKytjdXJyZW50UGFnZUluZGV4 Ow0KCQkJCQl9DQoNCgkJCQkJaWYgKGN1cnJlbnRQYWdlSW5kZXggPj0gdGhpcy5w YWdlcy5sZW5ndGggfHwgdGhpcy50aGFua3lvdSAhPSBudWxsICYmICh0aGlzLnBh Z2VzW2N1cnJlbnRQYWdlSW5kZXhdID09IHRoaXMudGhhbmt5b3UpKQ0KCQkJCQl7 DQoJCQkJCQl0aGlzLnN1Ym1pdCgpOw0KCQkJCQl9DQoJCQkJCWVsc2UNCgkJCQkJ ew0KCQkJCQkJdmFyIHBhZ2UgPSB0aGlzLnBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhd Ow0KCQkJCQkJcGFnZS5zaG93KCk7DQoJCQkJCQlwYWdlLnNhdmUoKTsNCgkJCQkJ CWlmIChwYWdlLmlnbm9yZWQpDQoJCQkJCQl7DQoJCQkJCQkJdGhpcy5za2lwKCk7 DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQl0aGlzLm9uQWZ0ZXJTa2lw LmZpcmUodGhpcywgbnVsbCk7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLnByZXZpb3Vz ID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJaWYgKHRoaXMub25CZWZvcmVQcmV2aW91 cy5maXJlKHRoaXMsIG51bGwpKQ0KCQkJew0KCQkJCWlmIChjdXJyZW50UGFnZUlu ZGV4IDw9IDApDQoJCQkJew0KCQkJCQl0aHJvdyAiY3VycmVudFBhZ2VJbmRleCA8 PSAwIjsNCgkJCQl9DQoNCgkJCQlpZiAoaGlzdG9yeS5sZW5ndGggPT0gMCkNCgkJ CQl7DQoJCQkJCXRocm93ICJoaXN0b3J5Lmxlbmd0aCA9PSAwIjsNCgkJCQl9DQoN CgkJCQl2YXIgbGFzdFBhZ2VJbmRleCA9IGhpc3RvcnkucG9wKCk7DQoJCQkJdGhp cy5wYWdlc1tjdXJyZW50UGFnZUluZGV4XS5oaWRlKCk7DQoJCQkJdGhpcy5wYWdl c1tjdXJyZW50UGFnZUluZGV4XS5tb2RpZmllZCA9IGZhbHNlOw0KCQkJCWN1cnJl bnRQYWdlSW5kZXggPSBsYXN0UGFnZUluZGV4Ow0KCQkJCXRoaXMucG9wdWxhdGVW YXJpYWJsZXMoKTsNCgkJCQl2YXIgcGFnZSA9IHRoaXMucGFnZXNbY3VycmVudFBh Z2VJbmRleF07DQoJCQkJcGFnZS5zaG93KCk7DQoJCQkJcGFnZS5zYXZlKCk7DQoJ CQkJaWYgKHBhZ2UuaWdub3JlZCkNCgkJCQl7DQoJCQkJCXRoaXMucHJldmlvdXMo KTsNCgkJCQl9DQoJCQl9DQoNCgkJCXRoaXMub25BZnRlclByZXZpb3VzLmZpcmUo dGhpcywgbnVsbCk7DQoJCX0NCg0KCQl0aGlzLmFjY2VwdCA9IGZ1bmN0aW9uICgp DQoJCXsNCgkJCWlmICh0aGlzLm9uQmVmb3JlQWNjZXB0LmZpcmUodGhpcywgbnVs bCkpDQoJCQl7DQoJCQkJaWYgKHRoaXMubmV4dCgpKQ0KCQkJCXsNCgkJCQkJdGhp cy5vbkFmdGVyQWNjZXB0LmZpcmUoKTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQl0 aGlzLmRlY2xpbmUgPSBmdW5jdGlvbiAoKQ0KCQl7DQoJCQlpZiAodGhpcy5vbkJl Zm9yZURlY2xpbmUuZmlyZSh0aGlzLCBudWxsKSkNCgkJCXsNCgkJCQlpZiAodGhp cy5jYW5jZWwoKSkNCgkJCQl7DQoJCQkJCXRoaXMuaW50cm9kdWN0aW9uLmhpZGUo KTsNCgkJCQkJdGhpcy5vbkFmdGVyRGVjbGluZS5maXJlKHRoaXMsIG51bGwpOw0K CQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXRoaXMuY2xvc2UgPSBmdW5jdGlvbiAoKQ0K CQl7DQoJCQlpZiAodGhpcy5vbkJlZm9yZUNsb3NlLmZpcmUodGhpcywgbnVsbCkp DQoJCQl7DQoJCQkJd2luZG93LmNsb3NlKCk7DQoJCQkJdGhpcy5vbkFmdGVyQ2xv c2UuZmlyZSh0aGlzLCBudWxsKTsNCgkJCX0NCgkJfQ0KDQoJCXRoaXMuY2FuY2Vs ID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJaWYgKHRoaXMub25CZWZvcmVDYW5jZWwu ZmlyZSh0aGlzLCBudWxsKSkNCgkJCXsNCgkJCQl0aGlzLnN1Ym1pdCgiY2FuY2Vs Iik7DQoJCQkJdGhpcy5vbkFmdGVyQ2FuY2VsLmZpcmUodGhpcywgbnVsbCk7DQoJ CQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KDQoJ CQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KDQoJCXRoaXMuZ2l2ZXVwID0gZnVuY3Rpb24g KCkNCgkJew0KCQkJaWYgKHRoaXMucGFnZXNbY3VycmVudFBhZ2VJbmRleF0gIT0g bnVsbCkNCgkJCXsNCgkJCQl0aGlzLnBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhdLnJl c3RvcmUoKTsNCgkJCX0NCgkJCXRoaXMuc3VibWl0KCJnaXZldXAiKTsNCgkJfQ0K DQoJCXRoaXMuc3RvcCA9IGZ1bmN0aW9uICgpDQoJCXsNCgkJCXZhciBwYXJhbWV0 ZXJzID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSkuc3BsaXQo IiYiKTsNCgkJCXZhciBxdWVyeXN0cmluZyA9ICIiOw0KCQkJZm9yICh2YXIgaSA9 IDA7IHBhcmFtZXRlcnMubGVuZ3RoID4gaTsgaSsrKQ0KCQkJew0KCQkJCWlmICgw ID4gcGFyYW1ldGVyc1tpXS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoInNob3d0eXBl PSIpKQ0KCQkJCXsNCgkJCQkJcXVlcnlzdHJpbmcgKz0gIiYiICsgcGFyYW1ldGVy c1tpXTsNCgkJCQl9DQoJCQl9DQoJCQlxdWVyeXN0cmluZyArPSAiJnNob3d0eXBl PTUiOw0KCQkJd2luZG93LmxvY2F0aW9uLnNlYXJjaCA9ICI/IiArIHF1ZXJ5c3Ry aW5nLnN1YnN0cmluZygxKTsNCgkJfQ0KDQoJCXRoaXMuZ2V0U3VydmV5SWQgPSBm dW5jdGlvbiAoKQ0KCQl7DQoJCQlyZXR1cm4gdGhpcy5zdWJtaXRGaWVsZHNbIlNV UlZFWUlEIl0gfHwgMDsNCgkJfQ0KDQoJCXRoaXMuZ2V0U2l0ZSA9IGZ1bmN0aW9u ICgpDQoJCXsNCgkJCXJldHVybiB0aGlzLnN1Ym1pdEZpZWxkc1siU0lURSJdIHx8 IChjb25maWcgPyBjb25maWcuc2l0ZS5uYW1lLnRvVXBwZXJDYXNlKCkgOiAiR04i KTsNCgkJfQ0KDQoJCXRoaXMuZ2V0Q29udGV4dCA9IGZ1bmN0aW9uICgpDQoJCXsN CgkJCXJldHVybiBjb25maWcgPyBjb25maWcuY29udGV4dCA6IHRoaXMuY29udGV4 dDsNCgkJfQ0KDQoJCXRoaXMuZ2V0UmVnaW9uID0gZnVuY3Rpb24gKCkNCgkJew0K CQkJcmV0dXJuIHRoaXMuc3VibWl0RmllbGRzWyJSRUdJT05JRCJdIHx8ICJFTi1V UyI7DQoJCX0NCg0KCQl0aGlzLmdldFN1cnZleUxhbmd1YWdlQ29kZSA9IGZ1bmN0 aW9uICgpDQoJCXsNCgkJCXJldHVybiB0aGlzLnN1Ym1pdEZpZWxkc1siU1VSVkVZ TEFOR0NPREUiXSB8fCAiRU4iOw0KCQl9DQoNCgkJdGhpcy5nZXRRdWFsaWZpZWRG b2xsb3dVcHMgPSBmdW5jdGlvbiAoYWN0aW9uKQ0KCQl7DQoJCQl2YXIgZm9sbG93 VXBzRmllbGQgPSBVdGlscy5nZXRDaGlsZEJ5SWQodGhpcy5kb21PYmplY3QsICJm b2xsb3d1cHMiKTsNCg0KCQkJdmFyIGZvbGxvd1VwcyA9IEZvbGxvd1VwLnBhcnNl Rm9sbG93dXBzRmllbGQoZm9sbG93VXBzRmllbGQgPyBmb2xsb3dVcHNGaWVsZC52 YWx1ZSA6ICIiLCB0aGlzLmdldFN1cnZleUxhbmd1YWdlQ29kZSgpLCBsb2FkVGlt ZSk7DQoJCQl2YXIgcXVhbGlmaWVkRm9sbG93VXBzID0gW107DQoNCgkJCWZvciAo dmFyIGkgPSAwOyBpIDwgZm9sbG93VXBzLmxlbmd0aDsgKytpKQ0KCQkJew0KCQkJ CXZhciBmb2xsb3dVcCA9IGZvbGxvd1Vwc1tpXTsNCgkJCQlpZiAoZm9sbG93VXAu ZXZhbHV0ZSh0aGlzLCAhKGFjdGlvbiA9PSAicGVyc2lzdCIpKSkNCgkJCQl7DQoJ CQkJCXF1YWxpZmllZEZvbGxvd1Vwcy5wdXNoKGZvbGxvd1VwKTsNCgkJCQl9DQoJ CQl9DQoNCgkJCXJldHVybiBxdWFsaWZpZWRGb2xsb3dVcHM7DQoJCX0NCg0KCQl0 aGlzLmF0dGFjaEZvbGxvd1VwU3VydmV5cyA9IGZ1bmN0aW9uIChhY3Rpb24pDQoJ CXsNCgkJCWlmICh0aGlzLmlzSW52aXRhdGlvbiB8fCB0aGlzLmlzUHJldmlldyB8 fCB0aGlzLnN1cHByZXNzU3VibWlzc2lvbiB8fCB0aGlzLmlzU2hvd0FsbCkNCgkJ CXsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCXZhciBmb2xsb3d1cHMgPSB0aGlz LmdldFF1YWxpZmllZEZvbGxvd1VwcyhhY3Rpb24pOyAvL2dldCBxdWFsaWZpZWQg Zm9sbG93LXVwcyBvZiBjdXJyZW50IHN1cnZleQ0KDQoJCQlpZiAoZm9sbG93dXBz Lmxlbmd0aCA+IDApDQoJCQl7DQoJCQkJdmFyIGZvbGxvd3VwQ29va2llS2V5ID0g ImZtc2ZvbGxvd3VwcyIgKyAoIlNUXyIgKyB0aGlzLmdldFNpdGUoKSArICJfIiAr IHRoaXMuZ2V0UmVnaW9uKCkpLnRvVXBwZXJDYXNlKCk7DQoNCgkJCQkvLyBtZXJn ZSB1bmV4cGlyZWQgZXhpc3RpbmcgZm9sbG93LXVwcyB3aXRoIG5ldyBxdWFsaWZp ZWQgZm9sbG93LXVwcw0KCQkJCXZhciBleGlzdGluZ0ZvbGxvd3VwcyA9IEZvbGxv d1VwLnBhcnNlRm9sbG93dXBzQ29va2llKFV0aWxzLmdldENvb2tpZShmb2xsb3d1 cENvb2tpZUtleSkpOw0KDQoJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCBleGlzdGlu Z0ZvbGxvd3Vwcy5sZW5ndGg7ICsraSkNCgkJCQl7DQoJCQkJCXZhciBmb2xsb3d1 cCA9IGV4aXN0aW5nRm9sbG93dXBzW2ldOw0KCQkJCQlpZiAoIWZvbGxvd3VwLmlz RXhwaXJlZCgpKQ0KCQkJCQl7DQoJCQkJCQlmb2xsb3d1cHMucHVzaChmb2xsb3d1 cCk7DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQlVdGlscy5zZXRDb29raWUoDQoJCQkJ CWZvbGxvd3VwQ29va2llS2V5LA0KCQkJCS8vIHBhY2thZ2Ugc3VydmV5IGxhbmd1 YWdlLCBmb2xsb3d1cHMod2l0aG91dCBjb25kaXRpb25zKSBhbmQgY3VycmVudCB0 aW1lIHRpY2tldCBpbnRvIGEgc3RyaW5nDQoJCQkJLy8gZS5nLiwgW2VuLFsxNDg4 LDE0ODldLDg2NDAwLDE3MjgwMCw2MzM1NzA5MDY3OCwxMjIxNDY1MDk3XSxbZW4s WzE0ODldLCA4NjQwMCwxNzI4MDAsNjMzNTcwOTA2NzgsMTIyMTQ2NTA5N11dDQoJ CQkJLy8gZW4gaXMgdGhlIHN1cnZleSBsYW5ndWFnZQ0KCQkJCS8vIDYzMzU3MDkw Njc4IGlzIHRoZSBzZXJ2ZXItc2lkZSB0aW1lIHRpY2tldCAoaW4gc2Vjb25kcywg cGx1cyB0aGUgb2Zmc2V0IGZyb20gbG9hZGluZyB0byBzdWJtaXR0aW5nKQ0KCQkJ CS8vIDEyMjExMzA3NjE3NSBpcyB0aGUgY2xpZW50LXNpZGUgdGltZSB0aWNrZXQg KGluIHNlY29uZHMpLg0KCQkJCQlGb2xsb3dVcC5wYWNrYWdlRm9sbG93dXBzQ29v a2llKGZvbGxvd3VwcyksDQoJCQkJLy8gY29va2llIGV4cGlyZSB0aW1lLCBlc3Rp bWF0ZSBlbmQgdGltZSBvZiBlYWNoIGZvbGxvd3VwLCBhbmQgcmV0dXJuIHRoZSBt YXggdmFsdWUgb2YgdGhlbQ0KCQkJCQlGb2xsb3dVcC5nZXRNYXhGb2xsb3d1cHNF eHBpcmVUaW1lKGZvbGxvd3VwcyksDQoJCQkJCXRoaXMuY29va2llRG9tYWluDQoJ CQkJKTsNCgkJCX0NCgkJfQ0KDQoJCXRoaXMuZ2V0UHJldmVudE11bHRpcGxlUmVz cG9uc2VzQ29va2llS2V5ID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJcmV0dXJuICgi Zm1zcG1yXyIgKyB0aGlzLmdldFN1cnZleUlkKCkgKyAiXyIgKyB0aGlzLmdldFN1 cnZleUxhbmd1YWdlQ29kZSgpKS50b1VwcGVyQ2FzZSgpOw0KCQl9DQoNCgkJdGhp cy5hdHRhY2hQcmV2ZW50TXVsdGlwbGVSZXNwb25zZXNEdXJhdGlvbiA9IGZ1bmN0 aW9uIChhY3Rpb24pDQoJCXsNCgkJCWlmICh0aGlzLmlzSW52aXRhdGlvbiB8fCB0 aGlzLmlzUHJldmlldyB8fCB0aGlzLnN1cHByZXNzU3VibWlzc2lvbiB8fCB0aGlz LmlzU2hvd0FsbCB8fCBhY3Rpb24gIT0gInBlcnNpc3QiKQ0KCQkJew0KCQkJCXJl dHVybjsNCgkJCX0NCg0KCQkJaWYgKHRoaXMuZ2V0U3VydmV5SWQoKSA9PSAwKQ0K CQkJew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJdmFyIGR1cmF0aW9uID0gbnVs bDsNCg0KCQkJdmFyIGR1cmF0aW9uRmllbGQgPSBVdGlscy5nZXRDaGlsZEJ5SWQo dGhpcy5kb21PYmplY3QsICJub011bHRpcGxlUmVzcG9uc2VzRHVyYXRpb24iKTsN CgkJCWlmIChkdXJhdGlvbkZpZWxkKQ0KCQkJew0KCQkJCWR1cmF0aW9uID0gZHVy YXRpb25GaWVsZC52YWx1ZTsNCg0KCQkJCXZhciBleHBpcmVzID0gbnVsbDsNCg0K CQkJCWlmIChkdXJhdGlvbiA9PSAic2Vzc2lvbiIpDQoJCQkJew0KCQkJCQlleHBp cmVzID0gbnVsbDsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoZHVyYXRpb24gPT0gInBl cm1hbmVudGx5IikNCgkJCQl7DQoJCQkJCWV4cGlyZXMgPSBuZXcgRGF0ZSgpOw0K CQkJCQlleHBpcmVzLnNldEZ1bGxZZWFyKGV4cGlyZXMuZ2V0RnVsbFllYXIoKSAr IDEwKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJdmFyIHZhbHVlID0g cGFyc2VJbnQoZHVyYXRpb24pOw0KCQkJCQlpZiAoaXNOYU4odmFsdWUpKQ0KCQkJ CQl7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCgkJCQkJZWxzZQ0KCQkJCQl7DQoJ CQkJCQlleHBpcmVzID0gbmV3IERhdGUoKTsNCgkJCQkJCWV4cGlyZXMuc2V0U2Vj b25kcyhleHBpcmVzLmdldFNlY29uZHMoKSArIHZhbHVlKTsNCgkJCQkJfQ0KCQkJ CX0NCg0KCQkJCVV0aWxzLnNldENvb2tpZSh0aGlzLmdldFByZXZlbnRNdWx0aXBs ZVJlc3BvbnNlc0Nvb2tpZUtleSgpLCAiMSIsIGV4cGlyZXMsIHRoaXMuY29va2ll RG9tYWluKTsNCgkJCX0NCgkJfQ0KDQoJCXRoaXMuc3VibWl0ID0gZnVuY3Rpb24g KGFjdGlvbikNCgkJew0KCQkJaWYgKHR5cGVvZiAodGhpcy5zdGFydFRpbWUpICE9 ICJ1bmRlZmluZWQiICYmIHRoaXMuc3RhcnRUaW1lICE9IG51bGwgJiYgIXRoaXMu aXNLQkVtYmVkZGVkICYmICF0aGlzLmlzSW52aXRhdGlvbikNCgkJCXsNCgkJCQl2 YXIgZCA9IG5ldyBEYXRlKCk7DQoJCQkJdGhpcy5hZGRTdWJtaXRGaWVsZCgiU1VS VkVZRFdFTExUSU1FIiwgZC5nZXRUaW1lKCkgLSB0aGlzLnN0YXJ0VGltZS5nZXRU aW1lKCkpOw0KCQkJfQ0KDQoJCQlpZiAoaGFzU3VibWl0dGVkKQ0KCQkJew0KCQkJ CXJldHVybjsNCgkJCX0NCg0KCQkJaWYgKGFjdGlvbiA9PSBudWxsKQ0KCQkJew0K CQkJCWFjdGlvbiA9ICJwZXJzaXN0IjsNCgkJCX0NCg0KCQkJaWYgKHRoaXMub25C ZWZvcmVTdWJtaXQuZmlyZSh0aGlzLCBhY3Rpb24pKQ0KCQkJew0KCQkJCXRoaXMu YXR0YWNoRm9sbG93VXBTdXJ2ZXlzKGFjdGlvbik7DQoJCQkJdGhpcy5hdHRhY2hQ cmV2ZW50TXVsdGlwbGVSZXNwb25zZXNEdXJhdGlvbihhY3Rpb24pOw0KCQkJCWlm ICh0aGlzLnN1Ym1pdEhhbmRsZXIpDQoJCQkJew0KCQkJCQl0aGlzLnN1Ym1pdEhh bmRsZXIodGhpcywgYWN0aW9uKTsNCgkJCQl9DQoJCQkJZWxzZQ0KCQkJCXsNCgkJ CQkJdGhpcy5kZWZhdWx0U3VibWl0SGFuZGxlcigpOw0KCQkJCX0NCgkJCQloYXNT dWJtaXR0ZWQgPSB0cnVlOw0KCQkJCXRoaXMub25BZnRlclN1Ym1pdC5maXJlKHRo aXMsIGFjdGlvbik7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLmRlZmF1bHRTdWJtaXRI YW5kbGVyID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJLy8gc2hvdyB0aGFua3lvdSBw YWdlIGFmdGVyIHN1Ym1pdGVkDQoJCQlpZiAodGhpcy50aGFua3lvdSAhPSBudWxs KQ0KCQkJew0KCQkJCXRoaXMudGhhbmt5b3Uuc2hvdygpOw0KCQkJfQ0KCQl9DQoN CgkJdGhpcy5lbmNvZGVBbnN3ZXJzID0gZnVuY3Rpb24gKHRleHRFbmNvZGVyKQ0K CQl7DQoJCQlpZiAoIXRleHRFbmNvZGVyKQ0KCQkJew0KCQkJCXRleHRFbmNvZGVy ID0gZnVuY3Rpb24gKGlucHV0KSB7IHJldHVybiBpbnB1dDsgfTsNCgkJCX0NCg0K CQkJdmFyIGFuc3dlcnMgPSBbXTsNCg0KCQkJZm9yICh2YXIgcGFnZUluZGV4ID0g MDsgcGFnZUluZGV4IDwgdGhpcy5wYWdlcy5sZW5ndGg7ICsrcGFnZUluZGV4KQ0K CQkJew0KCQkJCXZhciBwYWdlID0gdGhpcy5wYWdlc1twYWdlSW5kZXhdOw0KCQkJ CXZhciBwYWdlSWQgPSBwYWdlLmdldFBhZ2VJZCgpOw0KDQoJCQkJaWYgKHBhZ2VJ ZCAhPSAwICYmIHBhZ2UubW9kaWZpZWQgPT0gdHJ1ZSkNCgkJCQl7DQoJCQkJCWZv ciAodmFyIHF1ZXN0aW9uSW5kZXggPSAwOyBxdWVzdGlvbkluZGV4IDwgcGFnZS5x dWVzdGlvbnMubGVuZ3RoOyArK3F1ZXN0aW9uSW5kZXgpDQoJCQkJCXsNCgkJCQkJ CXZhciBxdWVzdGlvbiA9IHBhZ2UucXVlc3Rpb25zW3F1ZXN0aW9uSW5kZXhdOw0K CQkJCQkJdmFyIHF1ZXN0aW9uSWQgPSBxdWVzdGlvbi5nZXRRdWVzdGlvbklkKCk7 DQoNCgkJCQkJCXZhciBhbnN3ZXIgPSBxdWVzdGlvbi5nZXRBbnN3ZXJzKCk7DQoN CgkJCQkJCWZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBhbnN3ZXIubGVuZ3Ro OyArK2luZGV4KQ0KCQkJCQkJew0KCQkJCQkJCWFuc3dlcnMucHVzaChwYWdlSWQg KyAiLCIgKyBxdWVzdGlvbklkICsgIiwiICsgYW5zd2VyW2luZGV4XS5pZCArICIs IiArIGFuc3dlcltpbmRleF0udmFsdWUgKyAiLCIgKyB0ZXh0RW5jb2RlcihhbnN3 ZXJbaW5kZXhdLnRleHQpKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCX0N Cg0KCQkJcmV0dXJuIGFuc3dlcnMuam9pbigifCIpOw0KCQl9DQoNCgkJdGhpcy5o aWRlID0gZnVuY3Rpb24gKCkNCgkJew0KCQkJaWYgKHRoaXMuZG9tT2JqZWN0ICE9 IG51bGwpDQoJCQl7DQoJCQkJdGhpcy5kb21PYmplY3Quc3R5bGUuZGlzcGxheSA9 ICJub25lIjsNCgkJCX0NCgkJfQ0KDQoJCXRoaXMuc2hvdyA9IGZ1bmN0aW9uICgp DQoJCXsNCgkJCWlmICh0aGlzLmRvbU9iamVjdCAhPSBudWxsKQ0KCQkJew0KCQkJ CXRoaXMuZG9tT2JqZWN0LnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOw0KCQkJfQ0K CQl9DQoNCgkJdGhpcy5kaXNwbGF5QnJhbmNoUnVsZXMgPSBmdW5jdGlvbiAoKQ0K CQl7DQoJCQl2YXIgaW5kZXggPSAwOw0KCQkJZm9yICg7IGluZGV4IDwgdGhpcy5w YWdlcy5sZW5ndGggLSAxOyArK2luZGV4KQ0KCQkJew0KCQkJCXRoaXMucGFnZXNb aW5kZXhdLmRpc3BsYXlCcmFuY2hSdWxlcyh0aGlzLnBhZ2VzW2luZGV4ICsgMV0u Z2V0UGFnZUlkKCkpOw0KCQkJfQ0KDQoJCQlpZiAodGhpcy50aGFua3lvdSA9PSBu dWxsKQ0KCQkJew0KCQkJCXRoaXMucGFnZXNbaW5kZXhdLmRpc3BsYXlCcmFuY2hS dWxlcygiRW5kIik7DQoJCQl9DQoJCX0NCg0KCQlGbXMuU3VydmV5LlJlZ2lzdGVy U3VydmV5SW5zdGFuY2UodGhpcyk7DQoJfQ0KDQoJTVMuU3VwcG9ydC5GbXMuU3Vy dmV5LlN1cnZleUluc3RhbmNlcyA9IFtdOw0KDQoJTVMuU3VwcG9ydC5GbXMuU3Vy dmV5LlJlZ2lzdGVyU3VydmV5SW5zdGFuY2UgPSBmdW5jdGlvbiAoc3VydmV5KQ0K CXsNCgkJTVMuU3VwcG9ydC5GbXMuU3VydmV5LlN1cnZleUluc3RhbmNlc1tzdXJ2 ZXkuaWRdID0gc3VydmV5Ow0KCX0NCg0KCU1TLlN1cHBvcnQuRm1zLlN1cnZleS5H ZXRTdXJ2ZXlJbnN0YW5jZUJ5SWQgPSBmdW5jdGlvbiAoaWQpDQoJew0KCQlyZXR1 cm4gTVMuU3VwcG9ydC5GbXMuU3VydmV5LlN1cnZleUluc3RhbmNlc1tpZF07DQoJ fQ0KDQoJTVMuU3VwcG9ydC5GbXMuU3VydmV5LkdldFN1cnZleUluc3RhbmNlQnlF bGVtZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQpDQoJew0KCQl2YXIgRm1zID0gTVMu U3VwcG9ydC5GbXM7DQoJCXZhciBVdGlscyA9IEZtcy5VdGlsczsNCgkJdmFyIFN1 cnZleSA9IEZtcy5TdXJ2ZXk7DQoNCgkJZm9yICh2YXIgc3VydmV5aWQgaW4gU3Vy dmV5LlN1cnZleUluc3RhbmNlcykNCgkJew0KCQkJdmFyIHN1cnZleSA9IFN1cnZl eS5TdXJ2ZXlJbnN0YW5jZXNbc3VydmV5aWRdOw0KCQkJaWYgKFV0aWxzLmlzQW5j ZXN0b3JPZihzdXJ2ZXkuZG9tT2JqZWN0LCBlbGVtZW50KSkNCgkJCXsNCgkJCQly ZXR1cm4gc3VydmV5Ow0KCQkJfQ0KCQl9DQoJCXJldHVybiBudWxsOw0KCX0NCn0N Cg0KZnVuY3Rpb24gZW5mb3JjZU1heExlbmd0aChvRWxlbWVudCwgaU1heExlbmd0 aCwgZSkNCnsNCglpZiAob0VsZW1lbnQudmFsdWUubGVuZ3RoID4gaU1heExlbmd0 aCkNCgl7DQoJCW9FbGVtZW50LnZhbHVlID0gKG9FbGVtZW50LnZhbHVlKS5zdWJz dHJpbmcoMCwgaU1heExlbmd0aCk7DQoNCgkJaWYgKHdpbmRvdy5ldmVudCkgLypD b250YWN0IFVzIDIuMSB3aWxsIGludm9rZSB0aGlzIGZ1bmN0aW9uLCBidXQgb25s eSBwYXNzIHRoZSBmaXJzdCB0d28gcGFyYW1ldGVycyx0aHVzIGUgd2lsbCBiZSB1 bmRlZmluZWQuIHVzZSB3aW5kb3cuZXZlbnQgZmlyc3QqLw0KCQl7DQoJCQl3aW5k b3cuZXZlbnQucmV0dXJuVmFsdWUgPSBmYWxzZTsNCgkJfQ0KCQllbHNlIGlmIChl ICYmIGUucHJldmVudERlZmF1bHQpDQoJCXsNCgkJCWUucHJldmVudERlZmF1bHQo KTsNCgkJfQ0KCX0NCn0NCg0KLypiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggS0JG ZWVkQmFjayovDQpmdW5jdGlvbiBLQkZlZWRCYWNrU2hvd1N1cnZleSgpDQp7DQoJ dmFyIGdzZnhTdXJ2ZXlTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz Y3JpcHQiKTsNCglnc2Z4U3VydmV5U2NyaXB0LnR5cGUgPSAidGV4dC9qYXZhc2Ny aXB0IjsNCglnc2Z4U3VydmV5U2NyaXB0Lmxhbmd1YWdlID0gImphdmFzY3JpcHQi Ow0KCWdzZnhTdXJ2ZXlTY3JpcHQuc3JjID0gIi9jb21tb24vc2NyaXB0L2Z4L2dz ZnhzdXJ2ZXkuanM/NC4zLjMiOw0KCWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo Z3NmeFN1cnZleVNjcmlwdCk7DQp9DQo= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=default.css Content-Type: text/css; name=default.css Content-Location: http://support.microsoft.com/common/css/default/default.css?80 Content-Transfer-Encoding: 8bit /* Following are set back to default style for elements which are resetted by oneMscomMaster.css */ /* Reset Start */ .gsfx_brnd_PageContainer ol, .gsfx_brnd_PageContainer ul { margin: 16px 0 16px 40px; padding: 0; } .gsfx_brnd_PageContainer h1 { margin: 21px 0; } .gsfx_brnd_PageContainer h2 { margin: 20px 0; } .gsfx_brnd_PageContainer h3 { margin: 19px 0; } .gsfx_brnd_PageContainer h4 { margin: 21px 0; } .gsfx_brnd_PageContainer h5 { margin: 22px 0; } .gsfx_brnd_PageContainer h6 { margin: 25px 0; } .gsfx_brnd_PageContainer p { margin: 16px 0; } /* Reset End */ /* [BUG 327477][IE7 CSS Hack] Increase layer index of main-content div defined in ms template, make it higher than ms footer. Otherwise the dropdown menu in main-content will be coverred by ms footer in IE7 */ .stage-content > .main-content { *position: relative; *z-index: 2; } body, select, input, form { font-size: 100%; margin: 0; } body { color: #000; background-color: #fff; height: auto; } html { overflow-y: scroll; height: auto; } input[type|="radio"], input[type|="checkbox"] { margin-right: 3px; padding: 4px; } .checkbox td.text { line-height: 17px; } img { font-size: 65%; border: none; } a { color: #0072c6; text-decoration: none; } a:hover { color: #07679A; text-decoration: underline; } /* added for disabled Personalized webpart link */ span.imageBullet { padding: 2px 5px 2px 0 !important; vertical-align: top; margin-left: -20px; } span.disablelink { vertical-align: top !important; text-decoration: none !important; color: Gray !important; } span.enablelink { text-decoration: underline; } /* end disable personalize link*/ span.hl { font-weight: bold; } .resultsFooterLink { font-weight: normal; } .resultsFooterLink a, .resultsFooterLink span { display: block; float: left; margin-right: 10px; } .resultsFooterLink span.selected { width: 20px; height: 20px; background-color: #0072c6; color: #ffffff; text-align: center; } div.text, div.select, div.text input.text, div.select select { width: 100%; } /*Added the class to Searchui for bug 41425 */ div.rightNavSearch { width: 155px; } div.rightNavSearch div.text input.text { width: 125px; } button span.buttonText { font-size: 85%; margin: 5px 10px; vertical-align: bottom; } .breadcrumbs { font-size: 13px; color: #666; padding: 10px 10px 20px 0px; } .breadcrumbs a { color: #0072C6; } .breadcrumbs img { margin-right: 3px; } a.cc, a.mt { padding: 0 2px; } a.custip { position: relative; color: black; z-index: 10; } a.custip span { text-align: left; width: 180px; font-size: 65%; color: Black; position: absolute; padding: 10px; left: -9999px; display: none; } a.custip:active span { left: -9999px; display: none; } a.custip:hover, a.custip:active { font-size: 100%; text-decoration: none; } a.custip:hover span, a.custip.show span { border: 1px solid #c93; background-color: #fcfbde; display: block; padding: 10px; top: 20px; top: 5px\9; *top: 20px; left: 20px; } a.showRight:hover span, a.showRight span { left: -174px; } a.showBottom:hover span, a.showBottom span { top: auto; bottom: 18px; } a.showLeft:hover span, a.showLeft span { left: 20px; } a.custip2 { position: relative; text-decoration: none; color: black; z-index: 10; } a.custip2 ul { padding: 0px 0px 0px 20px; _padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px; _margin: 0px 0px 0px 18px; } a.custip2 span { display: none; } a.custip2:hover { font-size: 100%; } a.custip2:hover span, a.custip2.show span { font-size: 65%; color: Black; display: block; position: absolute; width: 180px; top: 0px; left: 17px; padding: 2px 5px 5px 2px; border: 1px solid #000; background-color: #fcfbde; } .rssImage { border: none; float: right; } #contentArea { width: 100%; } /* SimpleLayout Table options */ #primaryContentTable { border-collapse: collapse; } table.primaryTable, table#primaryContentTable { width: 100%; table-layout: fixed; } .primaryLeftColumn, .primaryMainColumn, .primaryThinColumn { vertical-align: top; margin: 0px; padding: 0px; } table.primaryTable td.primaryMainColumn { width: 100%; } table.primaryTable td.primaryThinColumn { width: 180px; /* this must match #thinColumn */ } table.sLayout { width: 100%; } table.sLayout td { padding: 0; margin: 0; vertical-align: top; } /* WebParts */ .wp h3 { font-size: 70%; font-weight: bold; margin: 0; padding: 0; } .wp .list caption { font-size: 70%; } .wp .list .image, .sr .list .image { vertical-align: top; width: 16px; } .wp .list .image { padding: 0 5px 0 0; } .sr .list .text, #mainColumn .wp td td td td { vertical-align: top; } .sr .list .text { *padding-left: 1px; } .sr .list .linkText /* This style was overwriting the above style and lifecycle products page was rendered with a large font. Fixed for Bug: 40582*/ /*#mainColumn .wp td td td td*/ { font-size: 13px; vertical-align: top; } .sr .list .text img { margin: 0 5px; vertical-align: middle; } .sr .list .linkText img { margin: 0px 4px 0px 0px; vertical-align: middle; } .sr .list .linkText img.leftimg { margin: 0px 5px 0px 0px; vertical-align: middle; } .wp .list .spacer { padding: 0; width: 8px; } /* Rss feed help */ div.wp.rss h2 { font-size: 120%; font-weight: bold; margin: 5px 10px; } /* Simple Link Container */ #mainColumn .wp.slc { padding: 5px 10px !important; } #mainColumn .psTable { width: 100%; } .wp.slc.alphaSubList img { margin-right: 3px; } .wp.slc.alphaSubList h1 { font-size: 120%; border-bottom: 2px solid #ccc; } .wp.slc ul { margin: 0; padding: 0; } .wp.slc ul li { color: #999; font-size: 70%; margin: 2px 18px; padding: 0; } .wp.slc ul li.i { padding: 0; margin: 2px 4px; list-style-type: none; } .bkt { font-size: 70%; margin: 2px 18px; padding: 0; } /* Thin Column generics */ #thinColumn { width: 180px; overflow: hidden; font-size: 13px; } #thinColumn { font-weight: 400; } #thinColumn a { color: #0072c6; font-size: 13px; } #thinColumn div, #thinColumn ul { text-overflow: ellipsis; white-space: normal; } #thinColumn .wp, #thinColumn .wp .wp, #thinColumn .wp div, #thinColumn .wp div .wp div, #thinColumn .lct, #thinColumn .wp table, #thinColumn .textColumn { border: 0px; margin: 0px; padding: 0px; width: auto; } #thinColumn .wp .LCT .textColumn { width: 179px; } #thinColumn .wp H3 { z-index: 0; width: 100%; } #thinColumn H3, #thinColumn .wp H3 { font-size: 16px; font-weight: normal; margin: 0px; } #thinColumn .wp H3 .linkConTop { display: block; height: 7px; width: 100%; margin-top: -10px; z-index: 1; } #thinColumn .wp H3 .linkCon { display: block; z-index: 2; position: relative; background: none; margin-top: 20px; padding: 0px 0px 3px 0px; } #thinColumn .textColumn .columns2 ul { width: auto; } #thinColumn .textColumn table p { margin-top: 5px; margin-bottom: 0px; } #thinColumn .textColumn .columns2 ul li { vertical-align: top; } #thinColumn ul { padding-left: 24px; padding-right: 10px; margin: 0px; font-size: 13px; } #thinColumn li { overflow: visible; } li.noBullet { list-style-type: none; margin: 0px; margin-left: -20px; } #thinColumn span.noBullet { margin-left: -17px; display: list-item; list-style: none; } #thinColumn span.hasBullet { margin-left: 3px; display: list-item; list-style: none; } #thinColumn .more, #thinColumn .back { font-size: 80%; padding: 5px 0px; } .blankBullet { list-style-type: none; } .blankBullet span a img { margin-left: -20px; } a.imageBullet { padding: 2px 5px 2px 0 !important; vertical-align: top; margin-left: -20px; } #thinColumn div.center, #thinColumn div a img { text-align: center; margin: 0px auto; } #thinColumn .wp .list caption, #thinColumn .wp .list .more, #thinColumn .wp .list .text, #thinColumn .wp .textColumn p { font-size: 60%; } #thinColumn span { text-decoration: none; } #thinColumn .getHelp .text h3 { margin-top: 3px; color: Black; font-size: 16px; } /* LinkContainer Long Word Truncate*/ #thinColumn .wp .LCT { table-layout: fixed; width: 100%; } #thinColumn .wp .LCT table { table-layout: fixed; width: 100%; } #mainColumn .wp .LCT .textColumn table { table-layout: fixed; width: 100%; } #mainColumn .wp .LCT .textColumn table span { display: block; } #thinColumn .wp .LCT .textColumn ul, #thinColumn .wp .LCT .textColumn h3 span, #thinColumn .wp .LCT .textColumn p, #mainColumn .wp .LCT .textColumn table h3 span, #mainColumn .wp .LCT .textColumn table p, #mainColumn .wp .LCT .textColumn table ul { word-wrap: break-word; overflow: hidden; text-overflow: ellipsis; } #mainColumn .wp .LCT .textColumn table ul { margin-left: 0px; padding-left: 10px; } #mainColumn .wp .LCT .textColumn table ul span { padding-left: 30px; } #mainColumn .wp .LCT .textColumn table ul li { margin-left: 30px; padding-left: 0px; } #mainColumn .wp .LCT .textColumn table ul span.noBullet { padding-left: 5px; } #mainColumn .wp .LCT .textColumn table ul li.noBullet { margin-left: 5px; padding-left: 0px; } #mainColumn .wp .LCT .textColumn table ul li span { padding-left: 0px; } #thinColumn .wp .LCT .textColumn div, #mainColumn .wp .LCT .textColumn div { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } /* Thin Column Search */ .wp.searchThin { background: url('/library/images/support/cn/Searchbar.gif') repeat-x; height: 52px; } .wp.searchThin h3 { font-size: 75%; font-weight: bold; } .wp.searchThin b { font-size: 65%; font-weight: bold; } .wp.searchThin div.text { width: 100%; } .wp.searchThin input.text { font-size: 65%; width: 100%; } .wp.searchThin div.select { margin-top: 5px; width: 100%; } .wp.searchThin select { font-size: 65%; width: 100%; } .wp.searchThin a { font-size: 65%; } .wp.searchThin div.cb { font-size: 75%; } /* Get Help */ #thinColumn div.wp.getHelp { padding: 5px 0px; } .wp.getHelp td.image { padding: 0px 5px 0px 0px; vertical-align: top; } .wp.getHelp td.text { text-align: left; } div.wp.getHelp h3 { font-size: 20px; color: #333333; font-weight: normal; } .wp.getHelp .text a { font-size: 13px; color: #0072c6; } .wp.cw td { font-size: 70%; } /* SubTitle WebPart */ div.wp.subTitle h1 { font-size: 30px; font-weight: lighter; margin: 30px 0px 30px 0px; color: #333333; } .matsTitle h1 { font-size: 120%; font-weight: bold; margin: 5px 10px; } #topRow ~ #mainRow div.wp.subTitle h1 { margin: 0px 0px 30px 0px; } div.wp.subTitle { margin: 0px!important; padding: 0px!important; } /* Article translation */ .wp.articleTrans table td { padding: 5px 0px; } .wp.articleTrans select { font-size: 65%; width: 100%; } .wp.articleTrans .spacer { width: 0.5em; } .wp.articleTrans div, .wp.articleTrans div table, .wp.articleTrans div table td { width: 100%; } /* Main Column for Webparts */ #mainColumn .wp div, #mainColumn .wp div .wp div { border: none; margin: 0; padding: 0; } #mainColumn .wp, #mainColumn .wp .wp { border: none; margin: 5px 0; padding: 5px 0; } #mainColumn .wp .textColumn h3, #mainColumn div.wp.tcon .textColumn h3, #mainColumn div.wp.hcon .textColumn h3 { font-size: 80%; font-weight: bold; margin: 0; padding: 1px 10px; } #mainColumn .wp .textColumn p { margin: 0; padding: 2px 10px; } #mainColumn .wp .textColumn .list { padding: 0px 5px; } #mainColumn .wp .list .text p { font-size: 100%; } #mainColumn .wp .imageColumn { padding: 0 2px 0 12px; vertical-align: top; } .leftNav #mainColumn .wp .imageColumn { padding: 0; } #mainColumn .wp .textColumn { padding: 0; width: 100%; } /* Product Selection */ .psContainers { vertical-align: top; } .subTitle ~ .psTable { margin-top: -40px; } #mainColumn .psContainers .LCT h3 span { font-size: 16px; color: #333333; font-weight: normal; } #mainColumn .psContainers .LCT .imageColumn { padding: 0px 10px 0px 0px; } #mainColumn .psContainers .LCT h3 { padding-left: 0px; padding-top: 2px; } #mainColumn .psContainers .LCT ul, #mainColumn .psContainers .LCT .more { padding-left: 0px!important; font-size: 13px; } #mainColumn .psContainers .LCT ul { margin-top: 0px; } #mainColumn .psContainers .LCT a { color: #0072c6; } #mainColumn .psContainers .LCT .more { padding-bottom: 0px!important; } #mainColumn .psContainers .wp { margin: 30px 0px 0px 0px; padding: 0px; } #mainColumn .psContainers .LCT ul li { margin-left: 0px!important; } .psContainers div, .psContainers div div { vertical-align: top; } /* Specific Parts */ #mainColumn div.wp.HCon.heroGraphic { background-color: #FFFFFF; margin: 0; padding: 0; } #mainColumn .wp.heroGraphic .graphic { width: 100%; } #mainColumn div.wp.heroGraphic td { color: #64A2CB; font-size: 100%; font-weight: bold; width: 100%; } #mainColumn .wp.m1 .textColumn h1 { margin: 0; font-size: 130%; } #mainColumn .wp.m3 .textColumn h1 { font-size: 105%; } #mainColumn .wp.m2 .list caption { background-color: #369; color: #fff; font-weight: bold; } #mainColumn .wp.m2 .list .headerRow { background-color: #369; } #mainColumn .wp.m2 .list .headerRow td { color: #fff; font-weight: bold; text-align: center; } #mainColumn .wp.m2 .list .headerRow td a { color: #fff; } #mainColumn .wp.m2 .list .headerRow td a:hover { color: #f00; } #mainColumn .wp.m2 .list .evenRow { background-color: #ededed; } #mainColumn .wp.region { padding: 0 10px; } #mainColumn .wp.region h1 { font-size: 110%; } #mainColumn .wp.regionSwitcher select { font-size: 75%; } #mainColumn .wp.regionSwitcher table.outer { background-color: #D7E9FC; border: 1px solid #0064a8; margin-left: 15px; } #mainColumn .wp.alphaSubList table { width: 100%; } #mainColumn .wp.alphaSubList .textColumn h1 { font-size: 120%; border-bottom: 2px solid #ccc; } #mainColumn .wp.alphaSubList img.top { margin: 10px 5px 0 0; } /* HTML Text Container generics */ .leftNav #mainRow #mainColumn .wp.HCon, .leftNav #mainRow #mainColumn .wp.TCon, #mainRow #mainColumn .wp.HCon.hc1 { margin: 0; } #mainColumn .wp.HCon { margin-left: 10px; margin-right: 10px; } .wp.HCon li { font-size: 100%; } .wp.TCon li { font-size: 70%; } .wp.TCon li li { font-size: 100%; } #mainColumn .wp.HCon, #mainColumn .wp.TCon { font-size: 70%; } #thinColumn .wp.HCon, #thinColumn .wp.TCon { font-size: 65%; } #mainColumn div.wp.HCon h3, #mainColumn div.wp.TCon h3, #thinColumn div.wp.HCon h3, #thinColumn div.wp.TCon h3 { font-size: 120%; } #mainColumn .tabDiv div.wp.HCon h3, #mainColumn .wp .textColumn h3 { font-size: 20px; font-weight: lighter; } #thinColumn div.wp.TCon td.textColumn h3 { font-size: 90%; } /* Web Content */ .webContentContainer { margin: 10px; } .webContentContainer font { font-size: 70%; } .webExceptionBlock .webContentContainer { margin: 0; padding: 0; position: relative; } .webExceptionBlock .webContentContainer .faqHeaderIcon { margin: 0; padding: 0; position: relative; top: -17px; } .webContentContainer .GenericError { margin-left: 1em; position: relative; top: 48px; } .webContentContainer h1 { font-size: 200%; } .webContentContainer h2 { font-size: 170%; } .webContentContainer h4 { font-size: 130%; } .webContentContainer .wp .fms { display: none; /*Hide survey because this is webcontent, not easy to support survey here*/ } /* Tree Webpart */ #mainColumn .wp.mainTree { margin: 0; padding: 0; } #mainColumn .wp.mainTree #treeHeader { background-color: #69c; color: #fff; font-size: 75%; font-weight: bold; padding: 3px 3px 5px; width: 100%; } #mainColumn .wp.mainTree #fullTree { background-color: #f1f1f1; font-size: 70%; height: 500px; width: 215px; overflow: auto; } #mainColumn .wp.mainTree #fullTree div.treeLevel { display: none; padding: 0 10px; } #mainColumn .wp.mainTree #fullTree div { border: 1px solid #f1f1f1; padding: 1px 3px; white-space: nowrap; } #mainColumn .wp.mainTree #fullTree img { cursor: hand; } #mainColumn .wp.mainTree #fullTree a { color: #000; text-decoration: none; } #mainColumn .wp.mainTree #fullTree a { padding: 0 3px; } #mainColumn .wp.mainTree #fullTree div a.nodeFocused, #mainColumn .wp.mainTree #fullTree div a.node:hover, #mainColumn .wp.mainTree #fullTree div a.nodeSelected:hover, #mainColumn .wp.mainTree #fullTree div a.node:active { background-color: #ccc; border: 1px solid #999; padding: 0 2px; } #mainColumn .wp.mainTree #fullTree div a.nodeSelected { background-color: #fff; border: 1px solid #999; padding: 0 2px; } /* Last Reviewed Webpart */ .wp.lastReview, .webContentLastReviewed { font-size: 65%; white-space: nowrap; text-align: right; white-space: nowrap; } /* Search 4.1 / LifeCycle / DllHelp */ #mainColumn .wp div.search { padding: 0px 20px; } * html #frmaSrch .mainTable { width: auto; } .wp { padding: 10px; } .wp .search h1, .lc h1 { color: #0071bc; font-size: 130%; font-weight: normal; margin: 0 5px 8px; padding: 0; } .wp .search .mainTable { border: 1px solid #0064A8; } .wp .search .wideColumn { background-color: #F1F6FF; filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#E4F1FA', endColorStr='#B2CFFF', gradientType='1'); } .wp .dllHelpSearch .mainTable { border: 1px solid #69c; width: 100%; } .lc .mainTable { border: 1px solid #0064A8; width: 100%; table-layout: fixed; } .wp .search .submitsearch .lc .submitsearch { font-size: 80%; } .wp .dllHelpSearch .wideColumn { background-color: #e5eaed; } .lc .wideColumn { background-color: #F1F6FF; filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#E4F1FA', endColorStr='#B2CFFF', gradientType='1'); padding-right: 20px; } .lc .wideColumn #advancedOptions { margin: 5px 0px 5px 10px; } .lc .wideColumn #basicOptions { margin: 5px 0px 5px 10px; } .lc .wideColumn .basicOptions .innerTable td.boldColumn { width: 30%; white-space: normal; } .wp .search .wideColumn .innerTable, .wp .dllHelpSearch .wideColumn .innerTable, .lc .wideColumn .innerTable { margin: 8px 15px; width: 100%; _width: auto; } .wp .search .wideColumn .innerTable td.text, .wp .search .wideColumn .innerTable td.boldColumn, .wp .dllHelpSearch .wideColumn .innerTable td.boldColumn, .lc .wideColumn .innerTable td.text, .lc .wideColumn .innerTable td.boldColumn, .lc .wideColumn .innerTable td.textSpecial { font-size: 70%; white-space: nowrap; } .wp .search .wideColumn .innerTable td.textSpecial, .wp .search .wideColumn .innerTable td.textProduct, .wp .search .wideColumn .innerTable td.textProductSpecial { font-size: 70%; } .wp .search .wideColumn .innerTable td.textProduct { background-color: #f0f8fb; font-style: italic; font-weight: bold; white-space: nowrap; } .wp .search .wideColumn .innerTable td.textProductSpecial { white-space: nowrap; background-color: #f0f8fb; } .wp .search .wideColumn .innerTable td.textSpecial, .wp .search .wideColumn .innerTable td.textProduct, .wp .search .wideColumn .innerTable td.textProductSpecial, .lc .wideColumn .innerTable td.textSpecial { padding: 5px 4px 7px; } .wp .search .wideColumn .innerTable td.text, .wp .dllHelpSearch .wideColumn .innerTable td.text, .lc .wideColumn .innerTable td.text { padding: 5px 10px; width: 100%; } .wp .search .wideColumn .innerTable td.boldColumn, .wp .dllHelpSearch .wideColumn .innerTable td.boldColumn, .lc .wideColumn .innerTable td.boldColumn { font-weight: bold; } .lc .wideColumn .innerTable td.boldColumn { vertical-align: top; padding: 5px 0 5px 5px; } .lc .wideColumn .advancedOptions .innerTable td.boldColumn { width: 30%; white-space: normal; } .lc .wideColumn #ToggleButton { font-size: 80%; vertical-align: middle; } .lc .wideColumn #ToggleButton img { margin: 0 3px 1px 0; vertical-align: bottom; } .wp .search .wideColumn .innerTable td.boldSpecialColumn, .wp .search .wideColumn .innerTable td.boldColumnTip { font-size: 70%; font-weight: bold; padding: 5px 0; vertical-align: top; white-space: nowrap; } .wp .search .wideColumn .innerTable td.inputs { margin: 0; } .wp .search .wideColumn .innerTable .inputs td.text { padding: 1px 5px; vertical-align: middle; } .wp .search .wideColumn .innerTable h1, .wp .search .wideColumn .innerTable .text h1, .wp .dllHelpSearch .wideColumn .innerTable h1 { color: #000; font-size: 85%; font-weight: bold; margin: 0px 0px 7px; } .wp .search .thinerColumn, .wp .dllHelpSearch .thinerColumn { background-color: #ced8de; height: 100%; padding: 35px 4px 15px; vertical-align: top; width: 9em; } .wp .search .queryTable { table-layout: fixed; width: 100%; } .wp .searchBasic .thinerColumn { padding: 15px 4px; } .wp .search .thinerColumn .mainDiv, .wp .search .thinerColumn .mainDiv .innerTable, .wp .dllHelpSearch .thinerColumn .mainDiv, .wp .dllHelpSearch .thinerColumn .mainDiv .innerTable { height: 100%; text-align: center; } .wp .search .thinerColumn .innerTable td.goButton, .wp .dllHelpSearch .thinerColumn .innerTable td.goButton { text-align: center; vertical-align: bottom; } .wp .dllHelpSearch .select select, .wp .dllHelpSearch .text input.text { font-size: 65%; width: 75%; } .lc .select select { width: 100%; } .lc .boldColumn input { display: none; } .wp .search .wideColumn .innerTable #noschead { width: auto; } .wp .search .wideColumn .innerTable #searchHelpLink { text-align: right; padding-right: 0px; font-size: 70%; } /* LifeCycle results */ .lcr { width: 100%; } .lcr div.p2resultsdiv { padding: 10px; } .lcr div.tableContainer { width: 100%; margin-bottom: 10px; } .lcr table.results { width: 100%; empty-cells: show; border-collapse: collapse; } .lcr table th a { overflow: hidden; } .lcr table th, .lcr table td { font-size: 65%; padding: 3px 3px; } .lcr table.results thead th { background-color: #ecf0ff; font-weight: bold; color: blue; } .lcr table.results td:last-child { padding-right: 20px; } .lcr table th a:hover { color: #f93; } .lcr table thead td { text-decoration: none; } .lcr table td.bolded { font-weight: bold; padding: 3px 8px; } .lcr table tbody td div { display: none; } .lcr .pnColumn { width: 20%; } .lcr .gaColumn, .lcr .msColumn, .lcr .esColumn, .lcr .spColumn { width: 10%; } .lcr #ExportToCSV { text-align: right; font-size: 70%; margin: 0 10px 15px 10px; } .lcr table.p2results { border: 2px solid #999999; border-left: none; border-right: none; border-collapse: collapse; } .lcr table.p2results tr.dark { background-color: #ededed; } .lcr table.p2results tr td { border: 1px solid #ededed; } .lcr table.p2results th, .lcr table.p2results thead td { color: #ededed; background-color: #69c; border: 1px solid #69c; border-bottom: 1px solid #ededed; } .lcr table.p2results th, .lcr table.p2results th a, .lcr table.p2results thead tr td { color: #ededed; font-weight: bold; } /* lifecycle no results */ #lifecyclenoresults { font-size: 70%; padding: 5px 10px; font-weight: bold; } /* Search Results */ .sr { margin: 0px 0px 0px 15px; } .sr font.intro { font-size: 75%; } .sr p { font-size: 75%; } .sr h1 { font-size: 100%; margin: 10px 0px; } .sr div.mainDiv, .sr table.headerTable { width: 100%; } .sr table.main { vertical-align: top; margin: 0px; padding: 0px; } .sr table.main td.leftNav { vertical-align: top; margin: 0px; padding: 0px; } .sr table.main td.results { vertical-align: top; padding: 58px 6px 0px 6px; } .sr table.resultsMain { width: 100%; } .listContainer .text { padding-bottom: 24px; } .sr table.bestBetsMain { width: 100%; } .sr table.productFilter { width: 180px; border-bottom: 1px solid #69c; border-top: 1px solid #69c; border-left: 1px solid #69c; vertical-align: top; margin: 0px; padding: 0px; } .sr img.prevSrch { margin-right: 3px; } .sr img.nextSrch { margin-left: 3px; } .sr .headerImg { background-color: #e5eaed; border-bottom: 1px solid #69c; width: 16px; vertical-align: middle; } .sr .headerText { background-color: #e5eaed; border-bottom: 1px solid #69c; font-size: 70%; font-weight: bold; white-space: nowrap; vertical-align: middle; } .sr .resultsHeaderText { font-size: 70%; font-weight: bold; color: #000000; white-space: nowrap; vertical-align: middle; padding-left: 1px; height: 20px; } .sr .resultsFooterText { font-size: 13px; color: #000000; vertical-align: middle; } .sr .list .text { font-size: 13px; color: #333333; } #gsfx_brnd_copyright { font-size: 80% !important; } .sr .showmeHeaderText { background-color: #99CCFF; border-bottom: 1px solid #9b0; font-size: 70%; font-weight: bold; white-space: nowrap; vertical-align: top; padding-left: 10px; } .sr .bestBetHeaderText { background-color: #FFD995; filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#FFD995', endColorStr='#F1F6FF', gradientType='1'); border-bottom: 1px solid #FDEBA2; font-size: 70%; font-weight: bold; color: #330000; white-space: nowrap; vertical-align: middle; padding-left: 10px; height: 20px; } .headerContainer { font-size: 11px; color: #333333; padding-bottom: 20px; } .sr .headerImg img { margin: 0 5px; } .sr .headerLine { border-bottom: 1px solid #69c; } .sr .resultsText, .sr .bbText, .sr .spellText { font-size: 13px; padding: 58px 8px 10px 8px; } .sr .resultsText div, .sr .spellText div { padding: 0 0 10px; font-style: italic; font-weight: bold; } .advsearch .resultsHead { color: #333333; font-size: 20px; font-family: Segoe UI; font-weight: lighter; } .sr .dummyLink { color: #007233; font-size: 11px; line-height: 20px; } .sr a.nw { white-space: nowrap; } /* Solution Center */ .sc { margin: 2px 20px 0 10px; } .sc .header { color: #666; font-size: 105%; font-weight: bold; padding: 0px 10px; } .sc .columns { border-top: 1px solid #999; width: 100%; } .sc .gradient { height: 100%; width: 11px; /* leave as px */ } .sc .columns td.SCThinColumn, .sc .columns td.SCMainColumn { vertical-align: top; } .sc .columns td.SCThinColumn { width: 25%; } .sc .columns td.SCThinColumn #SolutionCenter { width: 271px; } .sc .columns td.SCThinColumn #SolutionCenter .LCT .textColumn h3 { font-size: 30px; color: #464646; font-weight: normal; } .sc .columns td.SCMainColumn { width: 75%; padding-left: 30px; } .sc .columns td.SCMainColumn #AssetContainer { margin-top: 0px; padding-top: 0px; margin-bottom: 30px; padding-bottom: 0px; } .sc h1 { margin-bottom: 3px; margin-top: 0; font-size: 80%; font-weight: bold; } .sc .list td { padding: 3px 0; } .sc .list .image { vertical-align: top; width: 20px; /* leave as px may remove later */ } .sc .list .bullet { vertical-align: top; font-size: 75%; width: 1em; } .sc .list .text { font-size: 70%; } #tabPHDMenu { font-weight: normal; } .SCThinColumn #tabPHDMenu #tabPHDList { vertical-align: middle; height: 50px; width: 271px; background-color: #f8f8f8; margin-bottom: 5px; } .SCThinColumn #tabPHDMenu #tabPHDLast { vertical-align: middle; height: 50px; width: 271px; background-color: #858585; margin-bottom: 5px; color: #ffffff; font-size: 16px; } .SCThinColumn #tabPHDMenu a { cursor: pointer; color: #000000; font-size: 16px; margin-left: 0px; } /* DLL Help Info and Results */ .dllHelpResults, .dllHelpInfo { padding: 10px; width: 100%; } .dllHelpResults img.prevSrch { margin-right: 3px; } .dllHelpResults img.nextSrch { margin-left: 3px; } .dllHelpInfo img.prevSrch { margin-right: 3px; } .dllHelpInfo img.nextSrch { margin-left: 3px; } .dllHelpInfo p { font-size: 70%; font-weight: bold; margin: 15px 0 5px; } .dllHelpResults .tableContainer, .dllHelpResults table.mainTable, .dllHelpInfo .tableContainer, .dllHelpInfo table.mainTable { width: 100%; } .dllHelpResults table.mainTable, .dllHelpInfo table.mainTable, .dllHelpInfo table.fntable, .dllHelpInfo table.fileTable { background: #ededed; border: 2px solid #999; border-left: none; border-right: none; border-collapse: collapse; } .dllHelpResults table.mainTable, .dllHelpInfo table.mainTable { width: 100%; } .dllHelpResults table th, .dllHelpResults table td, .dllHelpInfo table th, .dllHelpInfo table td { font-size: 65%; padding: 3px 6px; vertical-align: top; } .dllHelpResults table th, .dllHelpResults table thead td, .dllHelpResults table tfoot td, .dllHelpResults table tfoot td a, .dllHelpInfo table th, .dllHelpInfo table thead td, .dllHelpInfo table tfoot td, .dllHelpInfo table tfoot td a, .dllHelpInfo table.fileTable td.heading { color: #fff; font-weight: bold; vertical-align: middle; white-space: nowrap; } .dllHelpResults table tfoot td a:hover, .dllHelpInfo table tfoot td a:hover { color: #f93; } .dllHelpResults table tr.light, .dllHelpInfo table tr.light { background-color: #fff; } .dllHelpResults table thead tr, .dllHelpResults table tfoot tr, .dllHelpInfo table thead tr, .dllHelpInfo table tfoot tr, .dllHelpInfo table.fileTable td.heading { background-color: #69c; } .dllHelpResults table tr.light td, .dllHelpInfo table tr.light td { border: 1px solid #ededed; } /* Personalization */ .pz table.mainTable { margin: 10px; width: 70%; } .pz table.mainTable tr td.textColumn { padding: 0 10px; } .pz table.mainTable tr td.imageColumn { vertical-align: top; padding: 0 2px; } .pz table tr td input.text { font-size: 70%; width: 100%; } .pz table.mainTable tr td.textColumn p { font-size: 70%; margin: 5px 0; } .pz table.mainTable tr td.textColumn a.spam { font-size: 70%; margin: 10px 0; } .pz table.mainTable tr td.textColumn span.alias { font-size: 70%; } .pz table.mainTable tr td.textColumn b { font-size: 70%; margin: 10px 0; } .pz table.mainTable tr td.textColumn h1 { font-size: 100%; font-weight: bold; margin: 0; } .pz table.mainTable tr td.textColumn h2 { font-size: 85%; font-weight: bold; margin: 0; } .pz div table.radios tr td, .pz .wp .savedNewsgroup table tr td a { font-size: 65%; } .pz .wp .savedNewsgroup table.mainTable { border: none; } .pz .wp .savedNewsgroup h1 { font-size: 100%; padding: 0 0 10px; } .pz .wp .savedNewsgroup table { border: solid 1px #808080; width: 70%; } .pz .wp .savedNewsgroup table tr .check { width: 10px; } .pz .wp .savedNewsgroup table tr th { color: #fff; font-size: 65%; background-color: #369; padding: 3px 6px; } .pz .wp .savedNewsgroup table tr td { padding: 3px 6px; } .pz .wp .savedNewsgroup table tr.light { background-color: #ededed; } /* Newsgroup */ .pz .news .search, .pz .news .content { border: solid 1px #ededed; background-color: #99f; } .pz .news .search td.text { font-size: 65%; font-weight: bold; padding: 3px; } .pz .news .search td.text input.text { font-weight: normal; width: 20em; } .pz .news .search .text button { width: 50px; } .pz .news .content table.topNavigation, .pz .news .content table.mainContainer, .pz .news .content td.textAlign { width: 100%; } .pz .news .content td.text, .pz .news .content .navigation td { font-size: 65%; padding: 1px 3px; } .pz .news .content table.topNavigation td.text a { color: #000; } .pz .news .content tr.test { background-color: #fff; } .pz .news .content .mainContainer .text { background-color: #fff; white-space: nowrap; } .pz .news .content .bottomNavigation td, .pz .news .content .topNavigation td { white-space: nowrap; } input.page { width: 35px; /* change to em */ } /* Page Tools */ .floatWindow { filter: progid:DXImageTransform.Microsoft.Fade(Overlap=1.00); text-align: center; visibility: hidden; position: absolute; } .floatWindow .message { font-size: 70%; padding: 0px 20px; color: #111; text-align: center; white-space: nowrap; } .floatWindow .status { border: 1px solid #dedede; background: #fff; margin: 0; text-align: center; width: 105px; } .floatWindow .error { color: #f00; font-weight: bold; } .floatWindow .status td { font-size: 25%; background: #fff; } /* Survey */ /* Document-level selectors */ .wp div.fms { background: #ededed; border: 2px solid #999; border-left: none; border-right: none; margin: 0 0 5px; padding: 5px 10px; } /* Selector for rightmost image in the graphical survey header */ .wp .fms .SURVEYHEADERIMAGE { margin-right: 0px; } .wp .fms .SURVEYTITLETEXT { font-size: 85%; font-weight: bold; padding: 10px; } .wp .fms .SURVEYINTROTEXT { font-size: 70%; font-weight: bold; color: #a52a2a; padding: 10px; } .wp .fms .SURVEYTHANKYOUTEXT { font-size: 65%; font-weight: bold; color: #a52a2a; padding: 10px; } /* General question text for all question types */ .wp .fms .ANSWERTEXT { font-size: 65%; line-height: 2em; } /* Selectors specific to GROUPED_HORIZONTAL_RADIO questions */ /* Question text for GROUPED_HORIZONTAL_RADIO questions */ .wp .fms .GHR_QUESTIONTEXT { font-size: 65%; margin-left: 5px; } /* Numeric header and legend text for GROUPED_HORIZONTAL_RADIO questions */ .wp .fms tr.GHR_LEGENDTEXT td { font-size: 65%; font-weight: bold; text-align: center; } .wp .fms tr td.GHR_LEGENDTEXT { font-size: 65%; line-height: 1.2em; font-weight: bold; text-align: center; } .wp .fms .RATINGNUMBER { font-size: 65%; } /* TR-specific selector for even rows in the GROUPED_HORIZONTAL_RADIO complex */ .wp .fms .GHR_EVENROW { background-color: #f9f9f9; } /* TR-specific selector for odd rows in the GROUPED_HORIZONTAL_RADIO complex */ .wp .fms .GHR_ODDROW { } .wp .fms .GHR_ODDROW input[type|="radio"] { margin-right: 0px; } /* Navigation: contains progress bar and navigational buttons */ /* Selector for the navigational complex */ .wp .fms .NAVIGATION { } /*it and fr button is longest*/ .wp .fms .NAVBUTTON { font-size: 65%; } /* Progress bar complex */ .wp .fms .PROGRESSBAR { border-right: 1px solid #cde; border-bottom: 1px solid #cde; border-left: 1px solid #89a; border-top: 1px solid #89a; width: 120px; height: 20px; } .wp .fms .PROGRESSBLOCK { background-color: #f00; height: 20px; } .wp .fms .PROGRESSTEXT { font-size: 65%; font-weight: bold; } /* Question-level selectors */ /* Selector for the question-level container element. */ .wp .fms .QUESTIONCONTAINER { margin-bottom: 5px; margin-left: 1px; margin-right: 3px; line-height: 1.5em; width: auto; padding: 3px 0px 0px 10px !important; } /* Selector for question text. */ .wp .fms .QUESTIONTEXT { font-size: 65%; font-weight: bold; padding-bottom: 5px; } .wp .fms .QUESTIONTEXT h5 { font-size: 125%; margin: 0 0 16px; } /* Selector for question instructions. */ .wp .fms .QUESTIONINSTRUCTION { font-size: 65%; padding-bottom: 2px; } /* Selector for messages indicating that the question is required. */ .wp .fms .QUESTIONREQUIRED { font-size: 75%; color: red; font-weight: bold; } /* Optional text box selectors */ .wp .fms .OPTIONALTEXTBOX { font-size: 65%; } .wp .fms .OPTIONALTEXTBOXINSTRUCTION { font-size: 65%; color: #666; } /* Stuff ? */ .wp .fms .ANSWERCONTROL { font-size: 65%; font-weight: bold; text-align: center; } .wp .fms .ANSWERBOX { font-size: 70%; margin: 0; width: 90%; } /* Right-to-Left, Left-to-Right */ #contentArea { direction: ltr; text-align: left; } bdo { direction: rtl; } .wp.lastReview td.label, .pz .news .content td.textAlign, .wp .searchRefine .wideColumn .innerTable .boldColumn, .wp .searchRefine .wideColumn .innerTable .boldSpecialColumn, .wp .searchRefine .wideColumn .innerTable .boldColumnTip { text-align: right; } .pz .wp .savedNewsgroup table tr th, .pz .alignColumn, .lcr table th, .dllHelpSearch table caption, .dllHelpResults table th, .dllHelpInfo table th, .wp .fms .SURVEYINTROTEXT, .wp .fms .SURVEYTHANKYOUTEXT, .wp .fms .ANSWERTEXT, .wp .fms .GHR_QUESTIONTEXT, .wp .fms .QUESTIONREQUIRED, .wp .fms .NAVIGATION td, .wp.m2 .list caption { text-align: left; } #thinColumn { float: right; } .wp div.mainTree .tree div.treeLevel { margin: 0 0 0 1.25em; } .surveyDiv { display: block; position: absolute; top: 0; left: 0; margin: 3px; background-color: Transparent; width: 600px; border: 0; font: 11px Verdana; color: #000; z-index: 200; } .eulaContainer { font-size: 75%; margin: 32px 50px 0 50px; } .eulaContainer h1 { font-size: 100%; font-weight: bold; } .eulaContainer .frame { border: solid 1px #7F9DB9; padding: 10px; overflow: auto; height: 350px; } .eulaContainer span { text-align: center; display: block; margin-left: auto; margin-right: auto; margin-top: 10px; } .eulaContainer input { padding: 4px; margin: 10px; } .eulaContainer a { margin: 5px; } .wp .LCT { margin-right: 8px; } #CUForm input { font-size: 80%; margin-left: 8px; } .srchOppose { text-align: right; font-size: 80%; padding-top: 6px; } .livesrchOppose { text-align: right; font-size: 80%; padding-top: 1px; padding-bottom: 1px; padding-left: 1px; padding-right: 1px; } .liveSearchGo { font-size: .9em; } .lc .searchButton { text-align: right; font-size: 80%; } .lc .submitsearch { margin: 8px 15px 15px; } a#anchor_others { white-space: nowrap; } #topRow .wp, #topRow td { padding: 0; } /* start new LinkContainer css */ .LCT .list { margin-top: 10px !important; width: 100%; } .LCT .list table { width: auto; } #thinColumn .LCT .list { width: auto; } #thinColumn .LCT .textColumn .list { width: 100%; table-layout: fixed; } .LCT .list td { vertical-align: top; text-align: left; border-right: 0; } .LCT td { vertical-align: top; } .LCT .list td.last { border-right: 0; } .columns2 td { width: 49%; } .columns3 td { width: 32%; } .columns4 td { width: 24%; } .columns5 td { width: 19%; } .columns6 td { width: 15%; } .LCT .more, .LCT .back { font-size: 70%; padding: 7px !important; vertical-align: baseline; } .LCT li { padding: 3px; color: #aaa; } .LCT li .message { font-size: 100%; } .LCT li span { color: Black; vertical-align: baseline; } #mainColumn .wp .LCT .textColumn ul li p { font-size: 100%; } #mainColumn .wp .LCT .textColumn p { font-size: 70%; } .LCT ul { padding: 0; font-size: 70%; margin-top: 10px; margin-left: 30px; margin-bottom: 0; } .LCT ul td { font-size: 70%; } .LCT .list ul { margin-left: 25px; } .LCT .list ul { margin-top: 0 !important; } .LCT ul ul { font-size: 100% !important; } .LCT li li { list-style-type: disc; color: black; } .wp.alphaList .LCT td { border: 0 !important; } .wp.alphaList .LCT td span { width: 100%; } .wp.alphaList .LCT td a { font-size: 110%; } .wp.alphaList .LCT td span { font-size: 110%; font-weight: bold; color: #ccc; } #alphaList a { vertical-align: bottom; } .mainTable thead th { font-weight: bold; } .mainTable tbody th { font-weight: normal; color: Black; width: auto; } .pageTitle ~ .wp { margin: 0px!important; padding: 0px!important; } .pageTitle ~ .wp .LCT, .SCMainColumn, .breadcrumbs { font-weight: normal; } #mainColumn .pageTitle ~ .wp .LCT .textColumn h3, #AssetContainer .LCT .textColumn h3 { font-weight: lighter; } .pageTitle ~ .wp .LCT .textColumn h3, #AssetContainer .LCT .textColumn h3 { font-size: 20px!important; color: #464646; padding: 0px 0px 0px 10px!important; vertical-align: top; } .pageTitle ~ .wp .LCT .textColumn ul span, #AssetContainer .LCT .textColumn ul li { color: #464646; font-size: 13px; } .pageTitle ~ .wp .LCT .textColumn ul span a, #AssetContainer .LCT .more a, #AssetContainer .LCT .textColumn ul li span a, .pageTitle ~ .wp .LCT .textColumn .more a { font-size: 13px; color: #0072C6; } .pageTitle ~ .wp .LCT .textColumn ul li { padding: 0px; margin-bottom: 20px; margin-left: 13px!important; } .pageTitle ~ .wp .LCT .textColumn ul { margin-top: 8px; } .pageTitle ~ .wp .LCT .textColumn ul li.noBullet { margin-left: 0px!important; } .pageTitle ~ .wp .LCT .textColumn .more { padding: 0px 0px 20px 10px!important; } #AssetContainer .LCT .imageColumn { padding: 0px!important; } #AssetContainer .LCT .textColumn ul li { margin-left: 2px!important; padding-top: 0px; padding-bottom: 0px; margin-bottom: 20px; } #AssetContainer .LCT .more { padding-left: 10px!important; text-align: right; padding-top: 0px!important; padding-bottom: 0px!important; } #AssetContainer .LCT .back { padding-left: 10px!important; padding-top: 0px!important; padding-bottom: 0px!important; } #AssetContainer .LCT .back a { font-size: 13px; color: #0072C6; } /* end new LinkContainer css */ .prodSelectionIndex table td a, .prodSelectionIndex table td span { margin-left: 8px; margin-right: 8px; font-weight: bold; font-size: 80%; } .prodSelectionIndex table td span { color: #aaa; } .prodSelectionIndex table { padding-top: 5px; margin-top: 5px; } /* start tabbed homepage css */ .tabContainer { font-weight: normal; } .tabStyle div.scroller .tabDiv .wp h3 { font-weight: lighter; font-size: 20px; color: #464646; margin-bottom: 10px; } .tabStyle div.scroller div.tabDiv h2 { display: none; } .clearBoth { clear: both; } .tabMenu { z-index: 2; float: left; width: 271px; border: none; border-right-width: 0px; } .tabMenu a { padding: 0px; text-decoration: none; display: block; font-size: 16px; } .tabMenu a.off table { color: #000000; background-color: #f8f8f8; } .tabMenu a.off table img { visibility: hidden; } .tabMenu a.on table { color: #ffffff; background-color: #858585; } .tabBanner { margin: 0px; padding: 0px; } .tabImage { vertical-align: middle; width: 10px; height: 15px; } .tabMenu a table p { word-wrap: break-word; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; margin: 0px; padding: 0px; } .tabMenu a table { height: 50px; width: 271px; } .tabMenu a table td { padding: 0px; margin: 0px; vertical-align: middle; } .tabStyle div.scroller { margin-left: 291px; border-left-width: 0px; border-top-width: 0px; } .tabStyle div.scroller .tabDiv .wp { padding-top: 0px; font-size: 13px; } .tabStyle div.scroller .tabDiv .wp h3, .tabStyle div.scroller .textColumn h3 { color: #000000; line-height: normal!important; } .tabStyle div.scroller .tabDiv .wp h3 a { font-size: 20px!important; } .tabStyle div.scroller .tabDiv .wp p, .tabStyle div.scroller .tabDiv .wp a { font-size: 13px; } .tabStyle a { color: #0072C6; } .tabStyle div.scroller .tabDiv .wp p { color: #464646; margin-bottom: 20px; margin-top: 0px; } .tabStyle div.scroller .tabDiv .wp * + h3 { margin-top: 30px; } .tabStyle div.scroller .tabDiv .wp { margin: 0px; padding: 0px; } .tabStyle div.scroller .tabDiv .wp + .wp { margin-top: 30px; } .tabStyle div.scroller .LCT .textColumn h3 { font-size: 20px; color: #464646; padding: 0px; margin: 0px; } .tabStyle div.scroller .LCT .textColumn table:first-child { margin-bottom: 10px; } .tabStyle div.scroller .LCT .textColumn table:first-child p { padding-left: 0px; } .tabStyle div.scroller .LCT li { margin-bottom: 0px; padding: 0px; } .tabStyle div.scroller .LCT li + li { margin-top: 20px; } .tabStyle div.scroller .LCT ul > span { margin-top: 0px; margin-bottom: 20px; } .tabStyle div.scroller .LCT .list { margin-top: 0px!important; padding-left: 0px; } .tabStyle div.scroller .LCT .textColumn ul { padding-left: 13px; } .tabStyle div.scroller .LCT li span, .tabStyle div.scroller .LCT ul > span, .tabStyle div.scroller .LCT .textColumn p { font-size: 13px; color: #464646; } .tabStyle div.scroller .LCT .textColumn .more { padding: 10px 7px 0px 7px!important; } .tabStyle div.scroller .LCT .textColumn .more a { font-size: 13px; } .tabStyle div.scroller .LCT .textColumn p, .tabStyle div.scroller .LCT .textColumn ul { margin-top: 0px; margin-bottom: 0px; } .tabStyle div.scroller .LCT .textColumn ul li, .tabStyle div.scroller .LCT .textColumn ul > span { padding-left: 0px; margin-left: 0px; } .tabStyle div.scroller .LCT .textColumn ul > span.noBullet, .tabStyle div.scroller .LCT .textColumn ul li.noBullet { padding-left: 0px; margin-left: -12px; } .tabStyle div.scroller .LCT .textColumn h3 .linkConTop { display: none; } .tabStyle div.scroller .LCT .textColumn .more a { margin-left: 5px; } .tabStyle div.scroller .tabDiv .wp { height: 100%; } .tabBorder { *margin-top: 24px; } /* end tabbed homepage css */ /*Start PH title*/ .pageTitle { display:table; margin-bottom: 15px; margin-top: 15px; } .pageTitle div { vertical-align: top; display:table-cell; } .pageTitle div { *float:left; } .pageTitle img { margin-right: 10px; display: none; } .pageTitle p { font-size: 20px; font-weight: lighter; color: #464646; margin: 0px; } .pageTitle h1 { color: #464646; margin: 0px; font-size: 30px; line-height: 100%; padding-top: 0px; padding-bottom: 15px; font-weight: lighter; } .pageTitle a { color: #0072c6; } /*End PH title*/ /*.trscopeoptions {padding-bottom:10px; padding-left:12px; }*/ /*.trscopeoptions td table {margin-right:10px; padding-left:6px;}*/ .gssSearchDetails { display: none; width: 100%; } .textCell { padding-right: 0px; padding-left: 0px; padding-bottom: 5px; white-space: nowrap; font-size: 70%; } .helpImageCell { text-align: right; width: 40px; } .whatscopelist { width: 100%; } #showorhide table td { text-align: left; } .mainTable .innerTable th { text-align: left; font-size: 70%; font-weight: bold; padding-top: 25px; padding-bottom: 5px; } .separator { width: 12px; padding-left: 0px; padding-right: 0px; margin-left: 0px; margin-right: 0px; } .searchAdvanced #query { font-size: 0.7em; } .queryTableTd { width: 100%; } #tblCatalog td { padding: 2px 0px 2px 0px; _padding: 0px 0px 0px 0px; } #tblCatalog .text { _padding: 3px; } /************************/ /* start error tool css */ /************************/ #errorDialog { position: relative; margin: 5px 20px; padding: 6px 5px 3px 5px; background: url('/library/images/support/en-us/consumer_Error_bar.gif') repeat-x; border-left: 1px solid #36638B; border-right: 1px solid #36638B; height: 25px; width: 688px; z-index: 1; *display: inline; *zoom: 1; } #errorInput { font-size: 80%; width: 678px; } #exactHits { font-size: 75%; margin-left: 0px; margin-right: 20px; } #exactHits li { margin: 2px 0 2px 0; } #exactHits li a span { font-size: 80%; } #additionalLang { font-size: 75%; margin: 20px 20px 0px 20px; } #additionalLang select { width: 16em; vertical-align: middle; font-size: 100%; margin-top: 3px; } #noResultsDiv { font-size: 75%; margin-left: 20px; margin-top: 10px; } #pidContainer { position: relative; } #pidContainer:hover { background-color: transparent; } #pidContainer span { position: absolute; background-color: #fcfbde; padding: 5px; border: 1px solid black; visibility: hidden; text-decoration: none; color: Black; min-width: 200px; _width: auto; } #pidContainer:hover span { margin-bottom: -20px; top: 0px; visibility: visible; } #pidContainer:hover span li { margin-left: 20px; _margin-left: 0px; } /**********************/ /* end error tool css */ /**********************/ /************************/ /* start easy assist css */ /************************/ .gss_easy_maindiv { font-size: 70%; width: 100%; } .gss_easy_maindiv .gss_easy_para { margin: 10px 20px; } .gss_easy_maindiv #gss_easy_eulaframediv { text-align: center; width: 100%; } .gss_easy_maindiv #gss_easy_eulaframediv2 { margin: 0px auto; text-align: center; width: 80%; } .gss_easy_maindiv #gss_easy_eulaaccept { margin: 8px; } .gss_easy_maindiv .gss_easy_eulabutton { padding: 2px 20px; margin: 0px 20px; } .gss_easy_maindiv #gss_easy_eulaboth { margin: 0px 0px 10px 0px; font-weight: bold; } .gss_easy_maindiv .gss_easy_divscroll { width: 100%; margin: 0px auto; border-width: 1px; border-style: solid; overflow: auto; margin-top: 10px; margin-bottom: 5px; height: 140px; text-align: left; } #gss_easy_sessiondiv { display: none; } .gss_easy_maindiv #gss_easy_sessionformdiv { width: 600px; margin-left: 50px; } .gss_easy_maindiv #gss_easy_sessiontable { font-size: 100%; } .gss_easy_maindiv #gss_easy_sessiontable td { padding: 10px 10px 0px 10px; } .gss_easy_maindiv #gss_easy_sessiontable td.gss_easy_paddednone { padding: 0px 10px 0px 10px; } .gss_easy_maindiv .gss_easy_sessiontableeg { padding-top: 0px; } .gss_easy_maindiv #gss_easy_sessionnext { text-align: right; } .gss_easy_maindiv #gss_easy_sessionnextbtn { padding: 2px 20px; } #gss_easy_warning table { background-color: #FFFEEB; border: 1px solid #999999; font-family: verdana, arial, sans-serif; width: 95% !important; text-align: center; display: block; } #gss_easy_warning table TD { padding: 10px 5px; font-size: 70%; line-height: 1.5em; text-align: left; vertical-align: top; } .wrnMessage { width: 100%; font-size: 100% !important; } .wrnMessage span { font-size: 105%; font-weight: bold; display: block; margin-bottom: 5px; line-height: 100%; } /************************/ /* end easy assist css */ /************************/ .hotfixwebpart { margin-top: 14px; margin-bottom: 10px; margin-left: 20px; margin-right: 20px; } .hotfixwebpart table { font-size: 0.8em; } .hotfix { font-size: 70%; padding: 23px 0px 30px 0px; width: auto; } .hotfix a { color: #07679a; text-decoration: none; } .hotfix h1 { color: #000000; font-size: 1.65em; margin-top: 0px; margin-bottom: 10px; font-weight: normal; } .hotfix ul { margin-top: 8px; } .hotfix .infoBox { padding: 10px; margin-left: 47px; } .hotfix .hotfixlist { background-color: #ffffff; border: solid 1px #F9F9F9; } .hotfix .normalTable { width: 100%; height: auto; } .hotfix .expandedTable { width: 1300px; } .hotfix .hotfixlist th, .hotfix .hotfixlist td { padding-left: 10px; } .hotfix .hotfixlist td { border-top: solid 1px #F9F9F9; } .hotfix .hotfixlist th { color: #000000; font-weight: bold; height: 28px; background-color: #ECF5FB; text-align: left; border-top: solid 1px #C5DAE8; border-bottom: solid 1px #C5DAE8; } .hotfix .hotfixlist .trborderleft { border-left: 1px solid #C5DAE8; } .hotfix .hotfixlist .trborderright { border-right: 1px solid #C5DAE8; } .hotfix .hotfixlist tr { color: #000000; height: 28px; } .hotfix table { font-size: 100%; } .hotfix .infoBox .key { font-weight: bold; } .hotfix .divForm { width: 712px; margin-top: 16px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; border: none; } .hotfix #tblForm { width: 100%; } .hotfix #tblForm input { margin-bottom: 2px; } .hotfix #divYourSys { border: none; margin-top: 2px; margin-bottom: 10px; } .hotfix #divYourSys #divDesText { margin-left: 47px; } .hotfix #divSysDown { color: Red; } .hotfix #divErrMsg { color: Red; margin-top: 10px; margin-bottom: 10px; } .hotfix #divYourRequest { margin-bottom: 20px; } .hotfix #divHotfixes { margin-bottom: 33px; margin-left: 40px; } .hotfix #divHotfixes ul { margin-left: 16px; } .hotfix #divEmailPrompt { margin-bottom: 20px; } .hotfix #divEmail { margin-bottom: 40px; margin-left: 40px; } .hotfix #divSummary { margin-bottom: 35px; } .hotfix #divShowAll { margin-bottom: 10px; margin-left: 47px; } .hotfix #divWarning { margin-bottom: 13px; margin-left: 15px; } .hotfix #divGoToTop { margin-top: 20px; } .hotfix .tdSpace { width: 5px; } .hotfix .tdLabel { width: 180px; text-align: right; padding-right: 7px; } .hotfix .textInput { width: 245px; } .hotfix #tdHSeparator1 { height: 35px; } .hotfix #tdHSeparator2 { height: 38px; } .hotfix .tdCheckbox { padding: 0px; } .hotfix #spanShowAll .aShowAll { text-decoration: underline; } .hotfix #spanShowAll { float: left; } .hotfix #spanShowAll img { margin-right: 4px; } .hotfix #spanShowMore { float: right; } .hotfix .inlineImage { vertical-align: middle; } .hotfix #divSteps { margin-bottom: 5px; } .hotfix .divStep { font-size: 120%; vertical-align: middle; } .hotfix .divStep img { margin-right: 12px; } .hotfix #divStep1 { width: 100%; margin-bottom: 6px; margin-top: -10px; display: table; } .hotfix #divNoscript { height: 500px; } .hotfix #divWarning ul { margin-left: 33px; margin-bottom: 18px; } .hotfix #hflWrapper { margin-left: 47px; } .hotfix .divReqDescription { padding-left: 47px; margin-top: 2px; } .hotfix #tdSubmit { padding-top: 10px; } .hotfix #divTodo { margin-top: 23px; } .hotfix hr { color: LightGrey; height: 1px; } .hotfix .tdHip { padding-top: 11px; vertical-align: top; padding-bottom: 1px; } .hotfix .tdHipHelp { padding-top: 30px; vertical-align: top; } .hotfix #divTextHelp { padding-top: 2px; } .hotfix #tdHipContainer { width: 255px; } .hotfix #hipaudio { margin: 8px 96px 9px 97px; } .hotfix #hipimage { margin: auto; } .hotfix #divHipImage { text-align: center; width: 220px; height: 50px; border: solid #9096a1 1px; margin-right: 3px; } .hotfix #divHipType { cursor: pointer; } .hotfix #divReloadHip { cursor: pointer; } .hotfix .tdCheckbox input { padding: 0px; margin: 0px; } /*/////////////////////////////////////////////////////////////////*/ /*/////////////////////////////////////////////////////////////////*/ /*/////////////////////////////////////////////////////////////////*/ .advsearch { position: relative; width: 240px; margin-top: 20px; z-index: 3; } .advsearch .relative { position: relative; } .advsearch h1 { font-weight: normal; font-size: 1.65em; margin-bottom: 6px; margin-left: 5px; } .advsearch #divquery { height: 1.8em; margin-top: 4px; position: relative; z-index: 2; } .advsearch #divquery #query { width: 660px; } .advsearch #content { font-size: 13px; color: #333333; } .advsearch #divshowhide { margin-top: 2px; display: none; } .advsearch #divshowhide #showhide { vertical-align: top; z-index: 1; zoom: 1; font-size: 13px; } .advsearch #showhide img { margin: auto 6px; line-height: 13px; } .advsearch #tblLive { width: 695px; font-size: 100%; } .advsearch #tblLive td { padding: 1px; } .advsearch #tblLive #tdQuery { width: 612px; } .advsearch #tblLive #tdSubmit { white-space: nowrap; } .advsearch #tblLive .relative { _width: 100%; } .advsearch #tdQuery #query { width: 100%; _float: left; } .advsearch #tdHelpLink { text-align: right; font-size: 100%; padding-bottom: 4px; width: 100%; } .advsearch #tblLive #ddCatalog { width: 80px; } .advsearch #tblLive select { font-size: 100%; } .advsearch span#poweredbycell { margin-right: 37px; } .advsearch #poweredbycell { margin-top: 1px; padding: 2px 0px; } .advsearch #poweredbycell span { font-size: 7pt; text-align: right; } .advsearch #poweredbycell img, .advsearch #poweredbycell div { vertical-align: middle; margin: 0px 2px; } .advsearch #divSubmitLive { _padding-right: 1px; } .advsearch #livecatalogs table { margin-top: 6px; } .advsearch .livecatalogtext { font-size: 70%; } .advsearch #divcataloglabel { font-family: Segoe UI; font-weight: 600; font-size: 13px; color: #333333; margin-bottom: 15px; } .advsearch #divresources { height: 1.8em; margin-top: 38px; } .advsearch .divcatalogitem { color: #333333; font-size: 13px; margin-bottom: 12px; } .advsearch #SearchDetails { margin-top: 15px; margin-bottom: 2px; display: none; } .advsearch .searchBoxWrapper { position: absolute; left: 263px; margin-top: 6px; } .advsearch #divSubmit { position: relative; width: 383px; border: solid 1px #cccccc; height: 24px; } .advsearch #divSubmit #query { width: 343px; border: none 0px; height: 21px; padding-left: 5px; padding-right: 5px; margin-left: 2px; margin-right: 2px; } .advsearch #spanSubmit input { position: absolute; left: 364px; top: 5px; } .advsearch #btnSubmit { border: 0px; } .advsearch a.custip span { font-size: 80%; } .advsearch input[type|="checkbox"] { width: 20px; height: 20px; margin-right: 3px; } .divcatalogoption { padding-bottom: 3px; font-size: 13px; color: #333333; } .divcatalogoption label { line-height: 20px; position: relative; top: -6px; } .catalogRadioList { display: none; margin-top: 10px; } .getSupportSection { font-size: 13px; } .showMore { margin-bottom: 25px; } .hideMore { margin-bottom: 0px; } .advsearch #acListWrapperquery { margin-left: -1px; margin-top: 3px; } .getSupportHead { font-family: Segoe UI; font-weight: 600; color: #333333; font-size: 13px; margin-bottom: 13px; } .getSupportSection ul { margin: 0px; } .getSupportSection li { list-style-type: none; margin-bottom: 15px; } .getSupportSection li a { font-size: 13px; } #productInput { font-size: 16px; border: 1px solid gray; width: 340px; height: 30px; font-style: italic; } #qpfProductList { font-size: 75%; margin-left: 20px; } #qpfProductList li { margin: 2px 0 2px 0; } #qpfProductList li a span { font-size: 80%; } #qpfInner1 { z-index: 2; display: table-cell; *position: relative; *float: left; } #qpfInner1 #productDialog { margin-right: 20px; } #qpfInner1 #productDialog > span { font-size: 16px; } #qpfInner2 { display: table-cell; *position: relative; *float: left; } #qpfInner1 #productDialog > span, #qpfInner2 { font-size: 13px; color: #333333; } #qpfInner1 #productDialog > span { font-weight: bold; } #acListDivproductInput div span { font-size: 16px!important; line-height: 25px!important; } .imagesdiv { display: inline; float: left; } #selprod { width: 65%; margin: 40px; font-size: 8pt; } #selprod h1 { font-weight: bold; font-size: 12pt; } #selprod #content { margin-top: 6px; padding: 12px; background-color: #eef3ff; } #selprod #content img { float: left; } #selprod #content #products { margin-left: 50px; width: auto; } #selprod #content #asst { text-align: right; } #mainColumn { direction: ltr; text-align: left; } td.primaryThinColumn { padding-left: 20px; } /*begin social media*/ .SocialMedia { height: 37px; } #thinColumn .SocialMedia { margin-bottom: 20px; } .ShareButton { display: none; border-style: none; right: 0px; float: right; color: #1977b0; z-index: 10; padding: 0px 10px 3px 10px; margin-top: 17px; font-size: 80%; } a.ShareButton { text-decoration: none; } .MediaContent { width: 200px; right: 0px; position: absolute; z-index: 20000; top: 35px; } .MediaContent ul, #thinColumn .MediaContent ul { font-size: 70%; padding: 5px; border: 1px solid #1977B0; background: #FFF; list-style: none; margin-top: 0px; display: none; margin-left: 40px; } .MediaContent li a, #thinColumn .MediaContent li a { padding-right: 10px; padding-left: 10px; line-height: 22px; display: block; text-decoration: none; font-size: 11px; } .MediaLinks li a img, #thinColumn .MediaLinks li a img { margin-right: 5px; vertical-align: text-bottom; } .MediaLinks li a:hover, #thinColumn .MediaLinks li a:hover { background: #D2E4EF; } .stackLayoutContentTable .SocialMedia .MediaContent { right: 3px; } /*end social media*/ /***begin article translation***/ #thinColumn #ATList { background-color: white; width: 173px; border: 1px solid #C6D0DA; display: block; padding-left: 3px; z-index: 100; } #ATList ul { list-style: none; padding: 0px; width: auto; } #thinColumn #ArticleTranslations { overflow: visible; margin-bottom: 15px; z-index: 4; } #ArticleTranslations .ATtext { width: 173px; height: 18px; background-color: white; clear: both; font-size: 13px; border: 1px solid #C6D0DA; padding-left: 3px; } #ArticleTranslations .ATtext span a { float: left; width: 156px; height: 18px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } #ArticleTranslations .ATtext a { float: right; cursor: pointer; width: 17px; height: 18px; } /***end article translation ***/ /**begin contextualad**/ #thinColumn .adWrapper { margin-bottom: 30px; } #mainColumn .adWrapper { margin-top: 30px; } /**end contextualad**/ /**begin OptWebpart**/ #divSsbAdContent { display: none; margin-top: 30px; margin-bottom: 30px; } /**end OptWebpart**/ /* Media Print */ @media print { .stage { display: inline; font-size: 14pt !important; } .utility-bar, .stage-bg-top, .stage-bg-mid, .stage-bg-bot, .search-navigation, .main-brand, .footer, .getHelp, .primaryThinColumn, .primaryLeftColumn, #leftColumn, #thinColumn, .wp .fms, .wp.search, .wp.lc, .SimpleSearch, .SimpleSearchWithPH, .PilotSimpleSearch, .SocialMedia, .SocialMedia_out { display: none !important; } pre { overflow: visible !important; word-wrap: break-word; white-space: normal; } table { width: auto !important; overflow: visible !important; } .psContainers { float: none !important; } } /*http error 404 begin*/ #Http404ErrorDiv { margin-top:25px; } #Http404ErrorDiv > h2 { font-weight: 500; } #Http404ErrorDiv > p { margin-top:10px; } /*http error 404 end*/ ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline Content-Type: image/png Content-Location: http://support.microsoft.com/library/images/support/en-us/20x20_grey_plus.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+VpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8w Mi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2Vs ZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh cC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ aG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcDpDcmVhdGVEYXRlPSIyMDEyLTAxLTMx VDA5OjQzOjAxLTA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxMi0wMS0zMVQxNDo0 MTo1NC0wODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxMi0wMS0zMVQxNDo0MTo1 NC0wODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9 InhtcC5paWQ6QzY3MTdCNUY0QzVDMTFFMTgwNDg5Q0Y3RUQ5RUY4RTciIHhtcE1N OkRvY3VtZW50SUQ9InhtcC5kaWQ6QzY3MTdCNjA0QzVDMTFFMTgwNDg5Q0Y3RUQ5 RUY4RTciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1w LmlpZDpDNjcxN0I1RDRDNUMxMUUxODA0ODlDRjdFRDlFRjhFNyIgc3RSZWY6ZG9j dW1lbnRJRD0ieG1wLmRpZDpDNjcxN0I1RTRDNUMxMUUxODA0ODlDRjdFRDlFRjhF NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4g PD94cGFja2V0IGVuZD0iciI/Pn2syBUAAAIESURBVHjarNVfKN1hHMfx3zmOMqLl YhYXyp0/JTUZd1ycG5Ko1cqNWBEXLuxiKRdSq3HhbxRys7ZayKzdzp0UJYXJxWol SZFZq4nj7P2tz69OT7/fZuWpV/E7z/f7/J7nfJ/vicTjcS9glKEezShFUs8j2MMy PmPXDYw5/2ejFy9xhU28wbk+z8VT9KEfwxjFz6CEjzGJFnzQ5C0veDzRooMoRw9O UhM+xBQa0IV5XHvhwxZqxRrGdBTtuPAT9ui8XmDOu9uwBWdwg1lsYyiqQ3+F91gI CMxBLWqQEfD5gmItR6klbNRqI0gEBBRjSYGPAj5PKNZyNFrCJqzrlcO2lqbz/h0y Z1s5mixhCTZSas1GFoqQh3wdus0tRIGkp8xPKkdJTBPPnBXr9OVcIlMLPNDWLfgI bThMibFajUY1IeHd04gpYZ7z/Auq8QuVeKddPMOx5pw6MXaLbi3hPqp0Tv45WqJv +vtYz2/xPSCRf8ftSu7blldUYxUhu0jXkdyE1KGnWMuxYglXFdSn8nDHV93vtpC3 S1Os5ViNqh29xnMFueNSd3Y9pA47FGs59vy7PKnXntIX9a/m4B9Fp5qDldOEpxq0 cYFufMI03qpFeX9pXzZnHItqLj/cfniiLe+o19WpwW6oaBO6y1UqJTu7AbfBRv7j JyCpHfk/AR9x4Ab+EWAAH759xEmQbsUAAAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline Content-Type: image/png Content-Location: http://support.microsoft.com/library/images/support/en-us/20x20_grey_minus.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA+VpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8w Mi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2Vs ZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh cC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ aG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcDpDcmVhdGVEYXRlPSIyMDEyLTAxLTMx VDA5OjQzOjAxLTA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxMi0wMS0zMVQxMDo1 MDoyNi0wODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxMi0wMS0zMVQxMDo1MDoy Ni0wODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9 InhtcC5paWQ6NzA4RTQ4MzU0QzNDMTFFMUJEOTJERjAzMDJDQzg2NzciIHhtcE1N OkRvY3VtZW50SUQ9InhtcC5kaWQ6NzA4RTQ4MzY0QzNDMTFFMUJEOTJERjAzMDJD Qzg2NzciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1w LmlpZDo3MDhFNDgzMzRDM0MxMUUxQkQ5MkRGMDMwMkNDODY3NyIgc3RSZWY6ZG9j dW1lbnRJRD0ieG1wLmRpZDo3MDhFNDgzNDRDM0MxMUUxQkQ5MkRGMDMwMkNDODY3 NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4g PD94cGFja2V0IGVuZD0iciI/Pt433kMAAAHASURBVHjarNXdK0NxGAfw37YzpRT/ w/JyoSRJuVrkNGVRLlxpuVjJlVIyEzVvUfgD3BAXJJG58FpLkijXtMSfMCKyefk+ 9T3163Ta5vDUp7ad3/P83s88pmkqh6iBLuiAJjDgG3JwBfuwC7f2RF8gENC/l8Aw rEM7vMMGv5/AI9RCD/SxE+ng0ypgaMUqYI2jOoV5OFLOYbLjGWiGXsjIAy8b+GGV xcYhlKeY4rMQ23Yw169PeQQGYAIm4UsVDmlzxmn3wxuce7Aplfhww7WQXrPqdyEj O4AGqJcpd0MZTLsoppgjueWyWVIwDGlIKfeRYo2w7HIjLNvWTXor5fo4hQzkGV61 9TyGqME1SNsSpqAzz+b4YAkWtd+kht86Njn1T2GwWJXt9zEudKEp6yGnJWtox8Wr TfGJig3JbYNr+ZBk9eAfZhpkjaQU3IYXiFvXx8XBjnNGm17uziy0QMxFwRhz5+DB usuXUMc7Ket4UcR9NjiyBOzBoOR4tesT4Yszwbtp5ilmsk2CORHr2urvwwzv9RB7 PoQ7vhvT2tFohWoem1FYgA+nF6ziA1nPHe0vIKq1s/4CVmAL7u1D/xFgAMMCcA9j IRESAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=XmlContent.css Content-Type: text/css; charset=utf-8; name=XmlContent.css Content-Location: http://support.microsoft.com/common/css/default/XmlContent.css?80 Content-Transfer-Encoding: 8bit /* general kb */ .kb { font-size: 13px; margin: 0px 0px 5px 0px; width:auto; color: #333333; } .kb a { color: #0072c6; } .kb td { padding: 0; vertical-align: top; } .kb ol, .kb ul, .kb li { position:inherit; } .table ol,.table.ul,.table li { position:static; } .kb div.sbody .list td { background: transparent!important; border-top: none!important; } .kb div.pLink { display: none; font-size: 11px; font-weight: normal; } .kb .toc img, .kbSurvey .topOfPage img, .kb .topOfPage img { vertical-align: baseline; margin:0px 3px; } .clear { clear: both; } .kb #kb_hotfix_link { text-decoration: none; margin-bottom: 20px; float: left; position: relative; font-size: 18px; line-height: 40px; display: block; color: #FFFFFF; min-width: 160px; height: 40px; background-color: #00a600; padding: 0px 5px; } .kb #kb_hotfix_link img { position: relative; top: 6px; margin: 0px 10px; line-height: 40px; *left: 10px; *right: 10px; *top: 5px; } .kb #kb_hotfix_link span { line-height: 38px; *line-height: 34px; } .kb h1.title { font-size: 30px; margin: 20px 0px 10px 0px; font-weight: lighter; word-wrap: break-word; } .kb h2 { font-size: 20px; } .kb h3 { font-size: 20px; font-weight:lighter; } .kb h4 { font-size: 16px; } .kb h5 { font-size: 13px; font-weight:600; } .kb h6 { font-size: 11px; } .kb .graphic { margin:0px 10px; padding:1px; } .kb .message { padding: 10px 30px; } .kb div.author { margin: 0px 0px 6px 0px; } .kb div.author .label { font-weight: bold; } .kb div.expandcollapseall { display:none; } .kb div.expandcollapseall_open { margin: 15px 0px; color:#115F87; } .kb div.expandcollapseall_open a:hover { text-decoration:underline; } .kb div.csDisclaimerLink, .kb div.mtDisclaimerLink, .kb div.rtDisclaimerLink, .kb div.mtSBSLink { padding: 3px 0px 3px 0px; } .kb div.csDisclaimerLink img, .kb div.mtDisclaimerLink img, .kb div.rtDisclaimerLink img, .kb div.mtSBSLink img { margin: 0px 4px; vertical-align:middle; } .kb div.disclaimer.mt .text, .kb div.disclaimer.cc .text, .kb div.disclaimer.retiredkb .text, .kb div.disclaimer.text { font-size: 11px; } .kb div.disclaimer .label { font-size: 13px; color: #333333; font-weight: bold; } .kb div.securedisclaimer, .kb div.securesection { margin: 1px 0; } .kb div.securedisclaimer hr, .kb div.securesection hr { border: 1px solid #e92; background-color: #efba43; margin: 5px auto; } .kbhf { border-bottom: 2px solid #e92; border-top: 2px solid #e92; padding: 0 15px; } .kb div.securedisclaimer .seclabel, .kb div.securedisclaimer .label, .kb div.securesection .seclabel, .kb div.securesection .label, .kbhf .label { text-transform: uppercase; text-align:center; font-weight: bold; color: #c60; margin-bottom: 5px; } .kbhf .label { margin-top: 15px; } .kb div.securesection .secdisclaimer { text-align: center; } .kb div.securedisclaimer .text, .kb div.securesection .text { margin: 0 10px; } .kb div.securesection .secdisclaimer.text { margin: 0 0 10px; } .kb div.notice { margin: 20px 0px 0px 0px; background-color: #F5F5F5; padding: 5px 10px 10px 10px; font-size: 13px; } .kb div.notice a { font-size: 13px; } .kb .notice h5 { margin: 0px 0px 5px 0px; } .kb .notice div.indent { padding-bottom: 0px; padding-top: 5px; } .kb div.notice div.notice { font-size:13px; margin-top: 0px; padding-bottom: 0px; } .kb .notShow,.kbSurvey .notShow { display: none; } .kb .subSection { margin-bottom: 5px; } .kb .subSectionHead { cursor: pointer; padding: 0px 25px; display: block; min-height: 20px; line-height: 20px; } .kb .subSectionHead.headCollapse { background: url("/library/images/support/en-us/20x20_grey_plus.png") no-repeat 0px center; } .kb .subSectionHead.headExpand { background: url("/library/images/support/en-us/20x20_grey_minus.png") no-repeat 0px center; } /* Atricle Properties */ .kb div.articleProperty { color:#999999; padding:2px; font-size: 11px; margin-bottom: 17px; } /* Table of Content */ .kb .toc h5 { font-size: 120%; margin: 0; margin-bottom:3px; } .kb .toc .tallTable { border-collapse: collapse; } .kb .toc .hfdl { display: none; } .kb .toc .tallTable td { font-size: 10%; padding: 4px 0 0; width: 10px; } .kb .toc .tallTable td.text { padding: 1px 3px; width: 100%; } .kb .toc .tallTable span { width: 10px; } .kb .section .table { border-bottom: solid 1px #000000; border-collapse: collapse; } .kb .section .table th { padding: 5px 10px 5px 0px; border-bottom: solid 1px #000000; font-weight: normal; text-align: left; } .kb .section .table td { padding: 5px 10px 5px 0px; border-top: solid 1px #c9c9c9; border-bottom: solid 1px #c9c9c9; border-left: 0px; border-right: 0px; empty-cells: show; text-align: left; } .kb .section .kb_tablewrapper .table td,.kb .section .kb_tablewrapper .table th { padding: 5px 10px 5px 10px; } .kb .section .kb_tablewrapper .table th { border-top: solid 1px #000000; } .kb .section .table tr:last-child td { border-bottom: solid 1px #000000; } .kb .list { margin: 0; } .kb .list .list { margin: 0; } .kb .list .bullet { padding:0; } .kb .list .text { padding-left: 2px; padding-right: 2px; } .kb .kb_subList { list-style-type:none; Margin-left:2px; } .kb .section h2.subTitle.tocTitle, .kb .section h2.subTitle.tocTitle span { background-color: #f5f5f5; } .kb .section h2.subTitle.tocTitle img.kb_tabs_toggle { padding-left: 12px; padding-top: 12px; } .kb .rtl .section h2.subTitle.tocTitle img.kb_tabs_toggle { padding-left: 0px; padding-right: 12px; } .kb .section h2.subTitle.tocTitle span { padding-bottom: 12px; padding-top: 12px; } .kb h2 { margin: 0px 0px 5px 0px; } .kb .section h2.subTitle,.kbSurvey h2.subTitle { width:100%; cursor:pointer; background-color: #d1d3d4; position: relative; overflow: hidden; } .kbSurvey { margin: 0px 0px 0px 0px; } .kbSurvey.noShow,.kb .noShow { display: none; } .kbSurvey .topOfPage { margin: 0px 52px; } .kbSurvey .topOfPage a { color: #0072c6; font-size: 13px; } .kbSurvey .bookmark a { display: block; height: 0px; } .kb .section h2.subTitle span,.kbSurvey h2.subTitle span { background-color: #d1d3d4; float:left; font-size: 16px; font-weight: lighter; padding: 10px 0px 10px 10px; width: 732px; } .kb .section h2.subTitle span a, .kbSurvey h2.subTitle span a { color:#333333; } * html .kb .section h2.subTitle span { background-image:none; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/library/images/support/cn/gsfx_kb_tab.png', sizingMethod='crop'); } .kb .rtl .section h2.subTitle span { float:right; padding-left: 0px; padding-right: 10px; } .kb div.kb_graphictop, .kb div.kb_tabletop, .kb div.kb_graphictop_open, .kb div.kb_tabletop_open { height:60px; margin:0px; } .kb div.kb_graphictop_open, .kb div.kb_tabletop_open { height:60px; display:table; } .kb span.kb_collapsetext_close, .kb span.kb_expandtext_close, .kb span.kb_expandtext { display:none; } .kb span.kb_collapsetext_open, .kb span.kb_expandtext_open { color:#0072C6; vertical-align:top; cursor:pointer; margin:4px 0px; font-size: 16px; line-height: 49px; display: inline-block; } .kb span.kb_expandtext_background, .kb span.kb_collapsetext_background { width:49px; height:49px; margin: 0px 10px 0px 0px; display:block; float:left; font-weight: normal; } .kb .rtl span.kb_expandtext_background, .kb .rtl span.kb_collapsetext_background { float:right; } .kb span.kb_collapsetext_background { background-image: url('/library/images/support/cn/48x48_collapse-image.png'); } .kb span.kb_expandtext_background { background-image: url('/library/images/support/cn/48x48_expand-image.png'); } * html .kb span.kb_collapsetext_open, * html .kb span.kb_expandtext_open { position:fixed; } .kb span.kb_collapsetext_open img, .kb span.kb_expandtext_open img { vertical-align:middle; } .kb div.kb_errormsgbody, .kb div.kb_codebody, .kb div.kb_intextwrapper { background-color: #F5F5F5; } .kb div.kb_errormsgbody, .kb div.kb_codebody, .kb div.kb_intextwrapper { position:relative; overflow-x:auto; margin-bottom:10px; } .kb div.kb_outertablewrapper,.kb div.kb_outergraphicwrapper { margin-bottom: 10px; } .kb div.kb_outergraphicwrapper, .kb div.kb_outertablewrapper, .kb table.table { border-width:3px; border-top-width:0px; border-bottom-width:2px; } .kb div.kb_outergraphicwrapper_closed, .kb div.kb_outertablewrapper_closed { margin:10px 0px; } .kb div.kb_outertablewrapper_closed { width:430px; } .kb div.kb_outertablewrapper .kb_tablewrapper { border-bottom: solid 1px #C9C9C9; border-left: solid 1px #C9C9C9; border-right: solid 1px #C9C9C9; } .kb .section div.kb_outertablewrapper .table,.kb .section div.kb_outertablewrapper .table tr:last-child td { border-bottom: 0px; } .kb div.kb_outergraphicwrapper_closed { overflow-y:hidden; } .kb div.kb_nowrapper { display:inline; vertical-align:middle; } .kb div.kb_graphicwrapper .graphic, .kb div.kb_nowrapper .graphic, .kb div.kb_nowrapper table, .kb div.kb_tablewrapper table { position: relative; z-index: 1000; } .kb div.kb_graphicwrapper, .kb div.kb_tablewrapper, .kb div.kb_codecontent, .kb div.kb_errorcontent, .kb div.kb_intextbody { width:100%; margin:0px; padding:0px; } * html .kb div.kb_graphicwrapper, * html .kb div.kb_tablewrapper, * html .kb div.kb_codecontent, * html .kb div.kb_errorcontent, * html .kb div.kb_intextbody { overflow-x:auto; } .kb div.kb_codecontent, .kb div.kb_errorcontent, .kb div.kb_intextbody { background-color: #f5f5f5; } .kb div.kb_graphicwrapper, .kb div.kb_tablewrapper { border-bottom-width:2px; background-color: white; overflow-x: auto; position: relative; *overflow-y: hidden; } * html .kb div.kb_graphicwrapper, * html .kb div.kb_tablewrapper { float:left; } .kb .kb_whitebox { width:100%; height:100em; background-color:#fff; opacity:.8; filter:alpha(opacity=80); position:absolute; top: 0px; left:0px; display:none; cursor:pointer; text-align:center; } .kb .kb_whitebox_img { background:url('/library/images/support/cn/gsfx_kb_cluster.png') no-repeat -157px -16px; height:50px; width:50px; position:relative; top:20px; margin:0px auto; display:block; } .kb .kb_whitebox_text { position:relative; top:30px; font-size:2em; text-decoration:underline; color:#115F87; } .kb div.kb_graphicwrapper .graphic { padding:1px; margin:0px; } .kb div.errormsg { min-height:20px; } .kb div.kb_outergraphicwrapper_open, .kb div.kb_outertablewrapper_open { position:relative; width:100%; z-index:100; } .kb .section h2.subTitle img.kb_tabs_toggle, .kbSurvey h2.subTitle img.kb_tabs_toggle { float:left; padding-top: 10px; padding-left: 10px; } .kb .rtl .section h2.subTitle img.kb_tabs_toggle { float:right; left:auto; padding-left: 0px; padding-right: 10px; } .kb .section h3 { margin: 15px 0px } .kb .section h4 { margin: 15px 0px; } .kb .section h5 { margin: 8px 0 5px; } .kb .section h6 { margin: 8px 0 5px; } .kb hr.divider, .kb hr { border-bottom: none; height:2px; color: #ddd; margin-top: 10px; margin-bottom: 10px; } .kb div.indent { padding:0px 20px 10px 20px; } .kb div.indent div.indent { margin: 10px; } /* SBODY styles */ .kb div.sbody { margin: 12px 0px 30px 40px; } .kb div.sbody, .kb .appliesTo, .kb .keywords, .kb .disclaimer { margin-bottom: 12px; } .kb .appliesTo ul, .kb .appliesTo li { position:static !important; font-size: 11px; } .kb .appliesTo ul { margin-top: 0px; } .kb .rtl div.sbody { margin-left: 0px; margin-right: 40px; } .kb .disclaimer div.text { width:auto; } .kb div.sbody div.sbody, .kb .rtl div.sbody div.sbody { margin:0px; } .kb .section div.sbody.kb_tabs_toggle_open,.kbSurvey div.sbody.kb_tabs_toggle_open { display:auto; } .kb .section div.sbody.kb_tabs_toggle_closed,.kbSurvey div.sbody.kb_tabs_toggle_closed { display:none; } .kb .topOfPage { margin:15px 0px 30px 0px; } .kb div.sbody span.abbr, .kb div.sbody acronym { border-bottom: 1px dotted #000; cursor: help; } .kb div.sbody .code, .kb div.sbody .errormsg, .kb div.sbody .in_text { position:relative; padding:10px 10px 10px 10px; color:#333; margin:0px; } * html .kb div.sbody .code, * html .kb div.sbody .errormsg, * html .kb div.sbody .in_text { float:left; } .kb div.sbody .code, .kb div.sbody .in_text { width:auto; /*width:1px; FIX for firefox pre tag issue*/ font-family:Consolas, "Courier New", Courier, Monospace; } .kb div.sbody div.center { text-align: center; } .kb div.sbody fieldset { padding: 10px; } /* List styles */ .kb .list { border-collapse: collapse; border-spacing: 0; margin: 10px 5px; } .kb .appliesTo .list { margin: 0 10px; } .kb div.sbody .list td { background: #f7f7ff; border-top: 1px solid #fff } .kb div.sbody .list .image { vertical-align: top; width: 16px; } .kb .bullet { font-size: 80%; text-align: center; vertical-align: top; width: 1em; } .kb div.sbody .list .number { padding: 3px; vertical-align: top; white-space: nowrap; } .kb div.sbody .list .text { padding: 3px 8px; } .kb div.sbody .sTable td { padding: 2px 3px; } .kb .appliesTo .list td { font-size: 65%; padding: 4px 0 0; } .kb .appliesTo .list td.bullet { font-size: 70%; } .kb .appliesTo .list td.textSub { padding: 0; } .kb pre.in_text { color: black; } .kb .appliesTo h5 { font-size: 13px; margin: 5px 0; } .kb .appliesTo .kb_appliesTo_toggle { display:inline-block; height:11px; width:11px; margin-right:5px; } .kb .appliesTo .kb_appliesTo_toggle_opened { background:url('/library/images/support/cn/gsfx_kb_cluster.png') 0px -16px no-repeat; } .kb .appliesTo .kb_appliesTo_toggle_closed { background:url('/library/images/support/cn/gsfx_kb_cluster.png') -12px -16px no-repeat; } .kb .userInput { font-weight: bold; } .kb .keywords td { vertical-align: bottom; } .kb .keywords td.header { vertical-align: top; } .kb .keywords td.header h5 { font-size: 13px; margin: 0; padding: 0; white-space: nowrap; } .kb .weboutput table { border-color: #000; border-collapse: collapse; width: auto; } .kb .weboutput table th { background: #dedede; } .kb .weboutput table th, .kb .weboutput table td { border-color: #000; padding: 3px 5px; } .kb .weboutput table th font, .kb .weboutput table td font { font-size: 95%; } /* qa */ .kb .qa .qa_section { margin-top:10px; table-layout: fixed; width: 100%; } .kb .qa .qa_section td > div { padding:0px 5px; } .kb .qa .qa_section .label { color: #fff; font-size:32pt; font-weight:bold; background: url('/library/images/support/cn/gsfx_kb_cluster.png') no-repeat -74px -16px; width:48px; height:58px; padding:20px 0px 0px 30px; } .kb .rtl .qa .qa_section .label { padding:20px 30px 0px 0px; } .kb .qa .bigspace { height: 50px; } .kb .qa .smallspace { height: 20px; } /* tt */ .kb .tt .section h2.subTitle { color: #000; } /* sc */ .kb .sc .section hr.hidden { border: 1px solid #fff; background-color: #fff; } .kb .sc .section div.blurb { margin-bottom: 20px; } .kb .sc .section .more { margin-top: 20px; } .kb .sc .section .textQuestion, .kb .sc .section .textAnswer { padding: 5px; vertical-align: top; } .kb .sc .section .textQuestion { background-color: #fffff3; } .kb .sc .section .textAnswer { background-color: #f6f6ff; } .kb .sc .section .imgQuestionColumn { vertical-align: top; } .kb .sc .section .imgAnswerColumn { vertical-align: bottom; } .kb .sc .section .qImg, .kb .sc .section .aImg { margin: 2px; } .kb .sc .section .qImg { border-right: 3px solid #999; } .kb .sc .section .aImg { border-left: 3px solid #999; } .kb .sc { margin: 0px; } /* si */ .kb .si .section .graphic { margin: 5px; float: left; } .kb .kb_acwtable { margin-bottom :20px; } *html .kb .kb_acwtable td { padding: 10px; } .kb .awbkg .desc, .kb .awbkg .title { padding:5px 5px 10px 5px; } .AWlink { margin-top: 20px; margin-bottom: 20px; } .AWlink a { background-color:#339900; color: #FFFFFF; padding:4px 20px 4px 20px; } .kb #tocDiv ul { list-style: none; margin:5px 0px; padding:0px; position:static !important; } .kb #tocDiv ul li { position:static !important; list-style: none; } .kb #tocDiv ul ul { padding:0px 15px; position:static !important; } .kb #tocDiv ul ul li { position:static !important; } #kb_warning_divider { background-color:#F5F5F5; padding: 5px 10px 10px 10px; } #kb_warning_divider span { color: #333333; font-size: 13px; display:block; margin-bottom:5px; } #kb_warning_divider #mt_kb_warning_head { font-size: 16px; } .kb .reg_path { word-break: break-all; } /* FMS Survey */ #contentArea #mainColumn #fmsSurvey { padding-left: 32px; padding-right: 0px; color: #333333; margin-left: 10px; margin-right: 0px; } .wp div.fms { background-color: transparent; } #mainColumn .wp div.fms .QUESTIONTEXT { font-size: 16px; font-weight: normal; margin-bottom: 5px; margin-top: 20px; } .wp .fms .ANSWERTEXT { font-size: 13px; line-height: 23px; } .wp .fms .CHOICEROW { padding: 5px 5px 3px 10px; *padding-top: 2px;/*ie7*/ } .wp .fms .CHOICEROW input[type|="radio"] { padding: 0px 4px; } .wp div.fms .NAVBUTTON { margin-top: 5px; background-color: transparent; border: solid 1px #999999; font-size: 13px; line-height: 13px; padding: 3px 5px; margin: 0px 3px; } .wp .fms .QUESTIONCONTAINER { line-height: 13px; } #mainColumn .wp .fms .NAVIGATION { margin-top: 6px; } .wp .fms .ANSWERBOX { margin-top: 8px; width: 728px; } /* Mini-Router WebPart*/ .MRlinkCon { display: block; z-index:2; background:none; padding:3px 6px; margin-top:7px; } #MiniRouter h3 span { padding: 3px 0px; } #MiniRouter ul { background-color:#ffffff; padding: 0px 0px 0px 25px; margin-bottom: 20px; } #MiniRouter .gethelp .imglink { display:block; float:left; margin-right:5px; width:48px; height:48px; } #MiniRouter .gethelp .txtlink { display:block; float:left; width:106px; } #MiniRouter .gethelp { padding-right:10px; background-color:#ffffff; padding-top:10px; padding-bottom:10px; } #MiniRouter li { color:#AAAAAA; padding:3px; } #MiniRouter div,#thinColumn #MiniRouter { width:auto; } /* Light Box */ #lb { position:absolute; margin:0px; padding:0px; background:#ffffff; border:1px; z-index:2000; display:none; width:472px; font-family: Segoe UI,Tahoma,Arial,Sans-Serif; border:solid 5px white; } .lbbrand, .lbcontent { border: none; margin:0px; padding:0px; } .lbcontent a:link, .lbcontent a:visited { color: #0066cc; text-decoration: underline; white-space:nowrap; } .lbcontent hr { margin-top:0px; margin-bottom:0px; margin-left: 10px; margin-right: 10px; } .lbcontent table { margin-top:15px; margin-bottom:5px; margin-left: 10px; margin-right: 10px; font-size: 11px; width: 452px; } .lbcontent tr, .lbcontent td { margin:0px; padding:0px; } #lbClose { cursor: hand; top: 10px; right: 15px; position: absolute; } #lbHead1 { text-align: left; margin-top:10px; margin-bottom:10px; margin-left: 10px; margin-right: 10px; font-size: 14px; } #lbHead2 { text-align: left; margin-left: 10px; margin-right: 10px; margin-top:10px; margin-bottom: 15px; font-size: 12px; } .lbBtn { text-align: center; min-width: 80px; } .lbBtn a, .lbBtn a:link, .lbBtn a:hover { float:right; margin:0px; cursor: hand; text-decoration: none; text-align: center; } .lbBtn div { margin:0px; padding-left:10px; padding-right:10px; padding-top:5px; padding-bottom:5px; } .lbRowNowBtn div { border:solid 1px #6e9200; } .lbLearnMoreBtn div { border:solid 1px #0fa1b8; } .lbBtnText { color: White; font-weight: bold; font-size: 14px; } #lbCloseTd { text-align: right } .MaskDiv { position:absolute; top: 0px; left: 0px; margin: 0px; padding: 0px; width: 100%; height: 100%; background:#777; filter:Alpha(opacity=40); opacity: 0.3; z-index: 1900; } #thinColumn #RelatedSupportCenters { margin-bottom: 20px; } .kb .notice h3 { font-size: 16px; } #bottomRow .wp.getHelp { margin: 0px 10px; } .kbSurvey h2 { margin: 0px; } /* Media Print */ @media print { .kb * { position:static; float:none; } /* override the contentArea */ #contentArea { margin: 0!important; padding: 0!important; } .kb .topOfPage, .kb .toc, .kb .csDisclaimerLink, .kb .securedisclaimer.kbdllink, .kb div.kb_graphictop, .kb div.kb_tabletop, .kb div.kb_graphictop_open, .kb div.kb_tabletop_open, .kb div.kb_graphictop_closed, .kb div.kb_tabletop_closed, #contentArea #mainColumn #fmsSurvey, .kb .tocTitle, .kb #tocDiv, .kb #kb_expandcollapseall, .kb .kb_whitebox { display: none!important; } .kb div.pLink { display: inline; } #kb, .kb { margin: 5px 0 0!important; width: auto!important; } .kb div.sbody .code, .kb div.sbody .errormsg, .kb div.sbody .in_text { float:none; width:auto; } .kb div.kb_graphictop, .kb div.kb_tabletop, .kb div.kb_graphictop_open, .kb div.kb_tabletop_open, .kb div.kb_errormsgbody, .kb div.kb_codebody, .kb div.kb_intextwrapper, .kb div.kb_outergraphicwrapper, .kb div.kb_outertablewrapper, .kb div.kb_graphicwrapper, .kb div.kb_tablewrapper, .kb div.kb_codecontent, .kb div.kb_errorcontent, .kb div.kb_intextbody, .kb div.kb_graphicwrapper .graphic { border:0px; } .kb div.disclaimer.cc, .kb div.disclaimer.mt, .kb div.disclaimer.retiredkb { background:none; border:0px; padding:0px; } #kb_warning_divider { background-color: #F5F5F5; padding: 10px; } #kb_warning_divider span { color: #333333; font-size: 16px; display:block; margin-bottom:5px; } } ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=kb.js Content-Type: application/x-javascript; name=kb.js Content-Location: http://support.microsoft.com/common/script/gsfx/kb.js?80 Content-Transfer-Encoding: Base64 ZnVuY3Rpb24ga2JTcmNFbChuKXtyZXR1cm4gbi5zcmNFbGVtZW50P24uc3JjRWxl bWVudDpuLnRhcmdldD9uLnRhcmdldDpufWZ1bmN0aW9uIHBhc3Nlc1R5cGVGaWx0 ZXIobil7cmV0dXJuIG49bi50b0xvd2VyQ2FzZSgpLG4hPSJub3RpY2UiJiZuIT0i c2VjdXJlZGF0YSImJm4hPSJxdWVyeXdvcmRzIn1mdW5jdGlvbiBnZXRJbm5lclRl eHQobil7dmFyIGksdDtpZihuLm5vZGVUeXBlPT0zKXJldHVybiBuLm5vZGVWYWx1 ZTtmb3IoaT0iIix0PTA7dDxuLmNoaWxkTm9kZXMubGVuZ3RoO3QrKylpKz1nZXRJ bm5lclRleHQobi5jaGlsZE5vZGVzW3RdKTtyZXR1cm4gaX1mdW5jdGlvbiB0b2NT Y3JvbGxUbyhuKXtyZXR1cm4gRXhwYW5kU2VjdGlvbihuLnNjcm9sbE5vZGUpLG4u c2Nyb2xsTm9kZS5zY3JvbGxJbnRvVmlldyghMCksITF9ZnVuY3Rpb24gbWFrZVRP Q05vZGUobix0KXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpLHI9 Z2V0SW5uZXJUZXh0KG4pO3JldHVybiBpLmlubmVySFRNTD0nPGEgaHJlZj0iIyIg b25jbGljaz0icmV0dXJuIHRvY1Njcm9sbFRvKHRoaXMpOyI+PGltZyBzcmM9Iicr dG9jQXJyb3crJyIgYWx0PSIiIC8+PHNwYW4gY2xhc3M9InRvY1R4dCI+JytyKyc8 L3NwYW4+PC9hPjx1bCBjbGFzcz0idG9jTGluZSI+PC91bD4nLGkuY2hpbGROb2Rl c1swXS5zY3JvbGxOb2RlPW4saS5kZXB0aD10LG4udG9jRWxlbWVudD1pLGl9ZnVu Y3Rpb24gZmluZFBhcmVudFRPQ05vZGUoKXtmb3IodmFyIG49a2JIZWFkaW5ncyxy PW5bbi5sZW5ndGgtMV0udG9jRWxlbWVudC5kZXB0aCxpLHQ9bi5sZW5ndGgtMjt0 Pi0xO3QtLSl7aT1uW3RdLnRvY0VsZW1lbnQuZGVwdGg7aWYoaTxyKXJldHVybiBu W3RdfX1mdW5jdGlvbiBlbmZvcmNlSGVhZGluZ01heGltdW1zKG4pe2lmKG4udG9j RWxlbWVudC5kZXB0aCsxPjIpe2V2YWwoInZhciBtYXggPSBkZXB0aCIrKG4udG9j RWxlbWVudC5kZXB0aCsxKSsiTGltaXQiKTt2YXIgdD1uLnRvY0VsZW1lbnQuY2hp bGROb2Rlc1sxXS5jaGlsZE5vZGVzLmxlbmd0aDt0Pm1heCYmKG4udG9jRWxlbWVu dC5jaGlsZE5vZGVzWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRvY0xpbmtDb3Vu dC09dCl9fWZ1bmN0aW9uIGdldExhdGVzdEVsZW1lbnQoKXt2YXIgbj1kb2N1bWVu dC5ib2R5O3doaWxlKG4ubGFzdENoaWxkKW49bi5sYXN0Q2hpbGQ7d2hpbGUoIW4u dGFnTmFtZSluPW4ucGFyZW50Tm9kZTtyZXR1cm4gbi5wcmV2aW91c1NpYmxpbmd9 ZnVuY3Rpb24ga2JfbGlnaHRCb3hMb2FkKCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoImxiIikscix1LGYsZSx0LGk7aWYoIW4pcmV0dXJuO3I9bG9jYXRp b24uc2VhcmNoLm1hdGNoKG5ldyBSZWdFeHAoIls/Jl1mcj0xKCY/KSIsImkiKSk7 aWYociE9bnVsbClyZXR1cm47d2luZG93LnNjcm9sbFRvKDAsMCksZG9jdW1lbnQu Ym9keS5zZXRBdHRyaWJ1dGUoInNjcm9sbCIsIm5vIiksJCgiaHRtbCIpLmNzcygi b3ZlcmZsb3ciLCJoaWRkZW4iKSx1PWRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgs Zj1kb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodC0xLCQuYnJvd3Nlci5tc2llJiYo ZT0kLmJyb3dzZXIubXNpZSYmL01TSUUgNi4wLy50ZXN0KG5hdmlnYXRvci51c2Vy QWdlbnQpLGUmJihpZnJhbWVTcmM9L15odHRwcy9pLnRlc3Qod2luZG93LmxvY2F0 aW9uLmhyZWZ8fCIiKT8iamF2YXNjcmlwdDpmYWxzZSI6ImFib3V0OmJsYW5rIix0 PSQoJzxpZnJhbWUgaWQ9Ik1hc2tGcmFtZSIgc3R5bGU9InotaW5kZXg6MTg5OTtk aXNwbGF5OmJsb2NrO2JvcmRlcjpub25lO21hcmdpbjowO3BhZGRpbmc6MDtwb3Np dGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjAiIHNyYz0iJytpZnJhbWVTcmMrJyI+ PC9pZnJhbWU+JyksdC5jc3MoIm9wYWNpdHkiLDApLHQuY3NzKCJ3aWR0aCIsdSks dC5jc3MoImhlaWdodCIsZiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0WzBd KSkpLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksaS5zZXRBdHRyaWJ1 dGUoImlkIiwiQmlnRGl2IiksaS5jbGFzc05hbWU9Ik1hc2tEaXYiLGRvY3VtZW50 LmJvZHkuYXBwZW5kQ2hpbGQoaSksU2V0TGlnaHRCb3hQb3NpdGlvbigpLG4uc3R5 bGUuZGlzcGxheT0iYmxvY2siLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiks cGFnZUJsb2NrRWxzPSQoIjppbnB1dDplbmFibGVkOnZpc2libGUiLG4pLmFkZCgi I2xiIGE6ZW5hYmxlZDp2aXNpYmxlIiksQmluZExCRXZlbnQoITApLHNldFRpbWVv dXQoZnVuY3Rpb24oKXt0cnl7JCgiI2xiQnRuIikuZm9jdXMoKX1jYXRjaChuKXt9 fSw1MCksd2luZG93Lm9uc2Nyb2xsPWZ1bmN0aW9uKCl7bi5zdHlsZS5kaXNwbGF5 PT0iYmxvY2siJiZ3aW5kb3cuc2Nyb2xsVG8oMCwwKX19ZnVuY3Rpb24gQmluZExC RXZlbnQobil7dmFyIHQ9ImtleWRvd24ga2V5cHJlc3MiO24/KCQod2luZG93KS5i aW5kKCJyZXNpemUuTEIiLFJlc2l6ZUxCTWFza0xheWVyKSwkKHdpbmRvdykuYmlu ZCgicmVzaXplLkxCIixTZXRMaWdodEJveFBvc2l0aW9uKSwkKGRvY3VtZW50KS5i aW5kKHQsTEJLZXlIYW5kbGVyKSk6KCQod2luZG93KS51bmJpbmQoInJlc2l6ZS5M QiIpLCQoZG9jdW1lbnQpLnVuYmluZCh0LExCS2V5SGFuZGxlcikpfWZ1bmN0aW9u IExCS2V5SGFuZGxlcihuKXtpZihuLmtleUNvZGUmJm4ua2V5Q29kZT09OSl7aWYo JChuLnRhcmdldCkucGFyZW50cygiI2xiIikubGVuZ3RoPT0wKXJldHVybiBmb2N1 cygpLCExO3ZhciB0PXBhZ2VCbG9ja0VscyxyPSFuLnNoaWZ0S2V5JiZuLnRhcmdl dD09dFt0Lmxlbmd0aC0xXSxpPW4uc2hpZnRLZXkmJm4udGFyZ2V0PT10WzBdO2lm KHJ8fGkpcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmb2N1cyhpKX0sMTAp LCExfXJldHVybiEwfWZ1bmN0aW9uIGZvY3VzKG4pe2lmKCFwYWdlQmxvY2tFbHMp cmV0dXJuO3ZhciB0PXBhZ2VCbG9ja0Vsc1tuPT09ITA/cGFnZUJsb2NrRWxzLmxl bmd0aC0xOjBdO2lmKHQpdHJ5e3QuZm9jdXMoKX1jYXRjaCh0KXt9fWZ1bmN0aW9u IFNldExpZ2h0Qm94UG9zaXRpb24oKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgibGIiKSx0LGkscix1LGYsZTtpZighbilyZXR1cm47dD0kKG4pLndpZHRo KCksaT0kKG4pLmhlaWdodCgpLHQ9cGFyc2VJbnQodCksaT1wYXJzZUludChpKSxy PXBhZ2VXaWR0aCgpLHU9cGFnZUhlaWdodCgpLGY9dS8yLWkvMixlPXIvMi10LzIs bi5zdHlsZS5sZWZ0PWUrInB4IixuLnN0eWxlLnRvcD1mKyJweCJ9ZnVuY3Rpb24g UmVzaXplTEJNYXNrTGF5ZXIoKXt2YXIgaT1kb2N1bWVudC5ib2R5LmNsaWVudFdp ZHRoLHQ9ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQtMSxuPWRvY3VtZW50Lmdl dEVsZW1lbnRCeUlkKCJNYXNrRnJhbWUiKTtuIT1udWxsJiYobi5zdHlsZS53aWR0 aD1pLG4uc3R5bGUuaGVpZ2h0PXQpfWZ1bmN0aW9uIHBhZ2VXaWR0aCgpe3JldHVy biB3aW5kb3cuaW5uZXJXaWR0aCE9bnVsbD93aW5kb3cuaW5uZXJXaWR0aDpkb2N1 bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5j bGllbnRXaWR0aD9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg6 ZG9jdW1lbnQuYm9keSE9bnVsbD9kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoOm51 bGx9ZnVuY3Rpb24gcGFnZUhlaWdodCgpe3JldHVybiB3aW5kb3cuaW5uZXJIZWln aHQhPW51bGw/d2luZG93LmlubmVySGVpZ2h0OmRvY3VtZW50LmRvY3VtZW50RWxl bWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodD9kb2N1 bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OmRvY3VtZW50LmJvZHkh PW51bGw/ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ6bnVsbH1mdW5jdGlvbiBD bG9zZUxpZ2h0Qm94KG4pe3ZhciBpLHIsdDtuJiYoU3RhdHNEb3ROZXQuZmxleFZh bHVlOT1uLmlkKSxTdGF0c0RvdE5ldC5BZGRBY3RpdmVUaW1lKG5ldyBEYXRlKSxT dGF0c0RvdE5ldC5Gb2N1c0hhbmRsZXIoKSxTdGF0c0RvdE5ldC5mbGV4VmFsdWU2 PTAsU3RhdHNEb3ROZXQubGlnaHRib3hDbG9zZVRpbWU9bmV3IERhdGUsaT1kb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgibGIiKSxpLnN0eWxlLmRpc3BsYXk9Im5vbmUi LHI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkJpZ0RpdiIpLHIuc3R5bGUuZGlz cGxheT0ibm9uZSIsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiTWFza0ZyYW1l IiksdCE9bnVsbCYmKHQuc3R5bGUuZGlzcGxheT0ibm9uZSIpLGRvY3VtZW50LmJv ZHkucmVtb3ZlQXR0cmlidXRlKCJzY3JvbGwiKSwkKCJodG1sIikuY3NzKCJvdmVy ZmxvdyIsIiIpLEJpbmRMQkV2ZW50KCExKX1mdW5jdGlvbiBzYXZlU2Vzc2lvbjJD b29raWUoKXt2YXIgbj1mZXRjaGNvb2tpZXZhbCgiR3NmeFNlc3Npb25Db29raWUi KSx0PW4rIl8iK1N0YXRzRG90TmV0LmV2ZW50U2VxTm8rIl9MQl8xIjtzZXRjb29r aWV2YWwoIm1hdHNydW5fc2Vzc2lvbmlkIix0LG51bGwsITEpfWZ1bmN0aW9uIG1v ZGlmeVJ1bk5vd0xpbmtIcmVmKG4pe3ZhciBpPXtlbnRyeXBvaW50aWQ6IkxCIn0s cj1mZXRjaGNvb2tpZXZhbCgiR3NmeFNlc3Npb25Db29raWUiKSx0O3IhPT1udWxs JiYkLmV4dGVuZChpLHtsb2dzZXNzaW9uaWQ6cixldmVudHNlcW5vOlN0YXRzRG90 TmV0LmV2ZW50U2VxTm8sYnV0dG9uY2xpY2tubzoxfSksdD1uZXcgR1NTLlV0aWxp dHkuVVJJKCQobikuYXR0cigiaHJlZiIpKSx0Lm1vZGlmeVF1ZXJ5SXRlbXMoaSks JChuKS5hdHRyKCJocmVmIix0LnRvU3RyaW5nKCkpfWZ1bmN0aW9uIExvZ1BvcHVw TGluayhuKXtTdGF0c0RvdE5ldC5mbGV4VmFsdWU3fD1ufWZ1bmN0aW9uIEhpZGVT eXNUaXAoKXt2YXIgbj0kKCIja2Jfd2FybmluZ19kaXZpZGVyIikuZ2V0KDApO2lm KCFuKXJldHVybjtuLnN0eWxlLmRpc3BsYXk9Im5vbmUifWZ1bmN0aW9uIGtiX3Rv Z2dsZWNsYXNzKG4pe24uY2xhc3NOYW1lLm1hdGNoKC8oID98XilrYl90YWJzX3Rv Z2dsZV9vcGVuXGIvZ2kpP24uY2xhc3NOYW1lPWpRdWVyeS50cmltKG4uY2xhc3NO YW1lLnJlcGxhY2UoLyggP3xeKWtiX3RhYnNfdG9nZ2xlX29wZW5cYi9naSwiIGti X3RhYnNfdG9nZ2xlX2Nsb3NlZCIpKTpuLmNsYXNzTmFtZS5tYXRjaCgvKCA/fF4p a2JfdGFic190b2dnbGVfY2xvc2VkXGIvZ2kpP24uY2xhc3NOYW1lPWpRdWVyeS50 cmltKG4uY2xhc3NOYW1lLnJlcGxhY2UoLyggP3xeKWtiX3RhYnNfdG9nZ2xlX2Ns b3NlZFxiL2dpLCIga2JfdGFic190b2dnbGVfb3BlbiIpKTpuLmNsYXNzTmFtZSs9 IiBrYl90YWJzX3RvZ2dsZV9jbG9zZWQiLCQoJChuKS5jaGlsZHJlbigiLmtiX3Rh YnNfdG9nZ2xlIikpLmF0dHIoInNyYyIsJChuKS5oYXNDbGFzcygia2JfdGFic190 b2dnbGVfY2xvc2VkIik/a2JfdGFic19wbHVzaW1nc3JjOmtiX3RhYnNfbWludXNp bWdzcmMpLGtiX1ByZXZlbnRCbGFua0FyZWFJbkJ1dHRvbSgpfWZ1bmN0aW9uIGti X1ByZXZlbnRCbGFua0FyZWFJbkJ1dHRvbSgpeyQoImJvZHkiKS5jc3MoIm92ZXJm bG93IiwiIil9ZnVuY3Rpb24gRXhwYW5kU2VjdGlvbihuKXtpZihuLmNsYXNzTmFt ZS5tYXRjaCgvKCA/fF4pc3ViVGl0bGVcYi9naSkmJm4uY2xhc3NOYW1lLm1hdGNo KC8oID98XilrYl90YWJzX3RvZ2dsZV9jbG9zZWRcYi9naSkpe2tiX3RvZ2dsZWNs YXNzKG4pLGtiX3RvZ2dsZWNsYXNzKG4ubmV4dFNpYmxpbmcubmV4dFNpYmxpbmcp O3JldHVybn1pZihuLmlkPT0idG9jSGVhZFJlZiIpe3ZhciB0PSEwO3doaWxlKHQp e249bi5wYXJlbnROb2RlO2lmKG4uY2xhc3NOYW1lJiZuLmNsYXNzTmFtZS5tYXRj aCgvc2JvZHlcYi9naSkpYnJlYWs7JChuKS5zaG93KCk7aWYoIW4ucGFyZW50Tm9k ZSlyZXR1cm59fW4uY2xhc3NOYW1lLm1hdGNoKC8oID98XilrYl90YWJzX3RvZ2ds ZV9jbG9zZWRcYi9naSkmJihrYl90b2dnbGVjbGFzcyhuKSxrYl90b2dnbGVjbGFz cyhuLnByZXZpb3VzU2libGluZy5wcmV2aW91c1NpYmxpbmcpKX1mdW5jdGlvbiBr Yl9nZXRTZWN0aW9uUHJldmlld1RleHQobil7Zm9yKHZhciBpPSIiLHQsdT1uLnBh cmVudE5vZGUucGFyZW50Tm9kZSxmPSExLGU9IWRvY3VtZW50LmJvZHkudGV4dENv bnRlbnQsbz0vKDxzY3JpcHR8PGRpdiBjbGFzcz0oJ3wiKT8odG9wb2ZwYWdlfGti X2dyYXBoaWN0b3B8a2JfdGFibGV0b3ApKS4qPyhcL2Rpdj58XC9zY3JpcHQ+KS9p Z20scj0wO3I8dS5jaGlsZE5vZGVzLmxlbmd0aDtyKyspe3UuY2hpbGROb2Rlc1ty XT09bi5wYXJlbnROb2RlJiYoZj0hMCk7aWYoZilpZih1LmNoaWxkTm9kZXNbcl0u Y2xhc3NOYW1lLm1hdGNoKC8oID98XilzYm9keVxiL2dpKSl7aWYodS5jaGlsZE5v ZGVzW3JdLmlkPT0idG9jRGl2IilyZXR1cm47dD11LmNoaWxkTm9kZXNbcl0uY2xv bmVOb2RlKCEwKSx0LmlubmVySFRNTD10LmlubmVySFRNTC5yZXBsYWNlKC9ccysv ZywiICIpLHQuaW5uZXJIVE1MPXQuaW5uZXJIVE1MLnJlcGxhY2UobywiICIpLHQu aW5uZXJIVE1MPXQuaW5uZXJIVE1MLnJlcGxhY2UoLzxbXj5dKj4vZywiIiksaT10 LmlubmVyVGV4dD9qUXVlcnkudHJpbSh0LmlubmVyVGV4dC5zdWJzdHJpbmcoMCw4 MCkpOnQudGV4dENvbnRlbnQ/alF1ZXJ5LnRyaW0odC50ZXh0Q29udGVudC5zdWJz dHJpbmcoMCw4MCkpOmpRdWVyeS50cmltKHQuaW5uZXJIVE1MLnN1YnN0cmluZygw LDgwKSksaSE9IiImJmkubGVuZ3RoPjYwJiYoaT1pKyIuLi4iKTticmVha319ZT9u LmlubmVyVGV4dD1pOm4udGV4dENvbnRlbnQ9aX1mdW5jdGlvbiBrYnNlY3Rpb25f Q29sbGFwc2VFeHBhbmQobix0KXtmb3IodmFyIHIsdSxmLGk9MDtpPHQuY2hpbGRO b2Rlcy5sZW5ndGg7aSsrKXI9dC5jaGlsZE5vZGVzW2ldLmNsYXNzTmFtZS5tYXRj aCgvKCA/fF4pc3ViVGl0bGVcYi9naSksdT10LmNoaWxkTm9kZXNbaV0uY2xhc3NO YW1lLm1hdGNoKC8oID98XilzYm9keVxiL2dpKSxmPXQuY2hpbGROb2Rlc1tpXS5j bGFzc05hbWUubWF0Y2goLyggP3xeKW5vcm9sbHVwXGIvZ2kpLChyfHx1KSYmIWYm JihuLmNsYXNzTmFtZS5tYXRjaCgvKCA/fF4pZXhwYW5kYWxsdGV4dFxiL2dpKT9r Yl9FeHBhbmRhbGwodC5jaGlsZE5vZGVzW2ldKTpuLmNsYXNzTmFtZS5tYXRjaCgv KCA/fF4pY29sbGFwc2VhbGx0ZXh0XGIvZ2kpJiZrYl9Db2xsYXBzZWFsbCh0LmNo aWxkTm9kZXNbaV0pKX1mdW5jdGlvbiBrYl9Db2xsYXBzZWFsbChuKXtuLmNsYXNz TmFtZS5tYXRjaCgvKCA/fF4pa2JfdGFic190b2dnbGVfb3BlblxiL2dpKT9uLmNs YXNzTmFtZT1qUXVlcnkudHJpbShuLmNsYXNzTmFtZS5yZXBsYWNlKC8oID98Xilr Yl90YWJzX3RvZ2dsZV9vcGVuXGIvZ2ksIiBrYl90YWJzX3RvZ2dsZV9jbG9zZWQi KSk6bi5jbGFzc05hbWUrPSIga2JfdGFic190b2dnbGVfY2xvc2VkIiwkKCQobiku Y2hpbGRyZW4oIi5rYl90YWJzX3RvZ2dsZSIpKS5hdHRyKCJzcmMiLGtiX3RhYnNf cGx1c2ltZ3NyYyl9ZnVuY3Rpb24ga2JfRXhwYW5kYWxsKG4pe24uY2xhc3NOYW1l Lm1hdGNoKC8oID98XilrYl90YWJzX3RvZ2dsZV9jbG9zZWRcYi9naSk/bi5jbGFz c05hbWU9alF1ZXJ5LnRyaW0obi5jbGFzc05hbWUucmVwbGFjZSgvKCA/fF4pa2Jf dGFic190b2dnbGVfY2xvc2VkXGIvZ2ksIiBrYl90YWJzX3RvZ2dsZV9vcGVuIikp Om4uY2xhc3NOYW1lKz0iIGtiX3RhYnNfdG9nZ2xlX29wZW4iLCQoJChuKS5jaGls ZHJlbigiLmtiX3RhYnNfdG9nZ2xlIikpLmF0dHIoInNyYyIsa2JfdGFic19taW51 c2ltZ3NyYyl9ZnVuY3Rpb24gVG9nZ2xlQXBwbGllc1RvKCl7dmFyIG49JCgiZGl2 LmFwcGxpZXNUbyA+IGg1ID4gYSIpO24uYXR0cigiY2xhc3MiKT09ImtiX2FwcGxp ZXNUb190b2dnbGUga2JfYXBwbGllc1RvX3RvZ2dsZV9vcGVuZWQiPyhDb2xsYXBz ZUFwcGxpZXNUb0xpc3QoKSxuLmF0dHIoImNsYXNzIiwia2JfYXBwbGllc1RvX3Rv Z2dsZSBrYl9hcHBsaWVzVG9fdG9nZ2xlX2Nsb3NlZCIpKTooRXhwYW5kQXBwbGll c1RvTGlzdCgpLG4uYXR0cigiY2xhc3MiLCJrYl9hcHBsaWVzVG9fdG9nZ2xlIGti X2FwcGxpZXNUb190b2dnbGVfb3BlbmVkIikpLE1TX0hhbmRsZUNsaWNrKG4uZ2V0 KDApLCIyMDEwMTAxNSIsITApfWZ1bmN0aW9uIEV4cGFuZEFwcGxpZXNUb0xpc3Qo KXskKCJkaXYuYXBwbGllc1RvID4gdWwiKS5jc3MoImRpc3BsYXkiLCJibG9jayIp fWZ1bmN0aW9uIENvbGxhcHNlQXBwbGllc1RvTGlzdCgpeyQoImRpdi5hcHBsaWVz VG8gPiB1bCIpLmNzcygiZGlzcGxheSIsIm5vbmUiKX1mdW5jdGlvbiBLQkZlZWRC YWNrRGlzcGxheSgpe3JldHVybiBLQkZlZWRCYWNrU2hvd1N1cnZleSgpLHR5cGVv ZiBrYlN1cnZleSE9InVuZGVmaW5lZCI/KCQoIi5ub1Nob3ciKS5yZW1vdmVDbGFz cygibm9TaG93IiksITApOnZvaWQgMH1mdW5jdGlvbiBTY3JvbGxUb1NlY3Rpb24o bil7cmV0dXJuICQobikubGVuZ3RoJiZFeHBhbmRTZWN0aW9uKCQobilbMF0pLCEw fWZ1bmN0aW9uIGtiX29iamVjdCgpe3RoaXMua2JpdGVtcz1bXSx0aGlzLnRhYmxl c2FuZGltZ3M9W10sdGhpcy5rYmhvbGRlcj1udWxsLHRoaXMud2hpdGVzcGFjZXNp emU9NDAsdGhpcy5taW5jb250ZW50c2l6ZT00MzEsdGhpcy5sYXN0d3NzaXplPXRo aXMud2hpdGVzcGFjZXNpemUsdGhpcy5sbmRpcj1udWxsLHRoaXMubWFyZ2luPW51 bGwsdGhpcy53aGl0ZWJveD1udWxsLHRoaXMuc2hvd2V4cGFuZGNvbGxhcHNlYWxs PSExLHRoaXMua2JfaW1hZ2VFeHBhbmRIb3ZlclRleHQ9bnVsbCx0aGlzLmtiX3Vz ZV93aGl0ZXNwYWNlX2NoYW5uZWw9ITA7dmFyIG49dGhpczt0aGlzLm5vZGVjbGlj az1mdW5jdGlvbih0KXtuLkdyYXBoaWNUYWJsZXRvZ2dsZSh0KX0sdGhpcy5tb3Zl cj1mdW5jdGlvbih0KXtuLndoaXRlYm94b3Zlcih0KX0sdGhpcy5tb3V0PWZ1bmN0 aW9uKHQpe24ud2hpdGVib3hvdXQodCl9LHRoaXMubWFrZXdoaXRlYm94PWZ1bmN0 aW9uKCl7dmFyIHQsbjt0aGlzLmtiX2ltYWdlRXhwYW5kSG92ZXJUZXh0fHwodGhp cy5rYl9pbWFnZUV4cGFuZEhvdmVyVGV4dD0iQ2xpY2sgdG8gZXhwYW5kIHRoaXMg aW1hZ2UuIiksdGhpcy53aGl0ZWJveD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk aXYiKSx0aGlzLndoaXRlYm94LmNsYXNzTmFtZT0ia2Jfd2hpdGVib3giLHQ9ZG9j dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHQuY2xhc3NOYW1lPSJrYl93aGl0 ZWJveF9pbWciLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLG4uY2xh c3NOYW1lPSJrYl93aGl0ZWJveF90ZXh0IixuLmlubmVySFRNTD10aGlzLmtiX2lt YWdlRXhwYW5kSG92ZXJUZXh0LHRoaXMud2hpdGVib3guYXBwZW5kQ2hpbGQodCks dGhpcy53aGl0ZWJveC5hcHBlbmRDaGlsZChuKX0sdGhpcy53aGl0ZWJveG92ZXI9 ZnVuY3Rpb24obil7dmFyIHQ9a2JTcmNFbChuKTtpZighdClyZXR1cm4hMTt3aGls ZSghdC5jbGFzc05hbWUubWF0Y2goL2tiX291dGVyZ3JhcGhpY3dyYXBwZXJcYi9n aSkpdD10LnBhcmVudE5vZGU7aWYoIXQpcmV0dXJuITE7dC5jaGlsZE5vZGVzWzJd JiYodC5jaGlsZE5vZGVzWzJdLnN0eWxlLmRpc3BsYXk9ImJsb2NrIil9LHRoaXMu d2hpdGVib3hvdXQ9ZnVuY3Rpb24obil7dmFyIHQ9a2JTcmNFbChuKTtpZighdCly ZXR1cm4hMTt3aGlsZSghdC5jbGFzc05hbWUubWF0Y2goL2tiX291dGVyZ3JhcGhp Y3dyYXBwZXJcYi9naSkpdD10LnBhcmVudE5vZGU7aWYoIXQpcmV0dXJuITE7dC5j aGlsZE5vZGVzWzJdJiYodC5jaGlsZE5vZGVzWzJdLnN0eWxlLmRpc3BsYXk9Im5v bmUiKX0sdGhpcy5hZGR3aGl0ZWJveD1mdW5jdGlvbihuKXtuLnN0eWxlLnBvc2l0 aW9ufHwobi5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKTt2YXIgdD10aGlzLndo aXRlYm94LmNsb25lTm9kZSghMCk7dC5zdHlsZS50b3A9bi5jaGlsZE5vZGVzWzBd Lm9mZnNldEhlaWdodCxuLmFwcGVuZENoaWxkKHQpLGtiX0FkZEV2ZW50KG4uY2hp bGROb2Rlc1syXSwiY2xpY2siLHRoaXMubm9kZWNsaWNrKX0sdGhpcy5yZW1vdmV3 aGl0ZWJveD1mdW5jdGlvbihuKXtuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9 LHRoaXMucmVzaXplPWZ1bmN0aW9uKCl7dmFyIHUsZSxvLHMscixoLGMsbixmLGks bCxhLHQ7aWYoIXRoaXMua2JpdGVtc3x8dGhpcy5rYml0ZW1zLmxlbmd0aDwxKXJl dHVybiExO3U9dGhpcy5rYmhvbGRlci5vZmZzZXRXaWR0aDtpZih0aGlzLnRhYmxl c2FuZGltZ3MmJnRoaXMudGFibGVzYW5kaW1ncy5sZW5ndGg+MCl7Zm9yKGU9bnVs bCxvPTA7bzx0aGlzLnRhYmxlc2FuZGltZ3MubGVuZ3RoO28rKyl7ZT10aGlzLnRh Ymxlc2FuZGltZ3Nbb10uZ2V0QXR0cmlidXRlKCJhbGxvd1Jlc2l6ZSIpO2lmKGU9 PSExfHxlPT0iZmFsc2UiKXJldHVybiExfXM9cGFyc2VJbnQodGhpcy50YWJsZXNh bmRpbWdzWzBdLm9mZnNldFdpZHRoKTtpZihzPnUtdGhpcy5sYXN0d3NzaXplLTV8 fHM8dS10aGlzLmxhc3R3c3NpemUtMTUpZm9yKHI9bnVsbCx0PTA7dDx0aGlzLnRh Ymxlc2FuZGltZ3MubGVuZ3RoO3QrKyl7Zj11LXRoaXMubGFzdHdzc2l6ZSxyPXRo aXMudGFibGVzYW5kaW1nc1t0XS5wYXJlbnROb2RlO3doaWxlKCFyLmNsYXNzTmFt ZS5tYXRjaCgvc2JvZHlcYi9naSkpbj1wYXJzZUludCgkKHIpLmNzcygicGFkZGlu Z0xlZnQiKSksaD1pc05hTihuKT8wOm4sbj1wYXJzZUludCgkKHIpLmNzcygicGFk ZGluZ1JpZ2h0IikpLGgrPWlzTmFOKG4pPzA6bixuPXBhcnNlSW50KCQocikuY3Nz KCJtYXJnaW5MZWZ0IikpLGM9aXNOYU4obik/MDpuLG49cGFyc2VJbnQoJChyKS5j c3MoIm1hcmdpblJpZ2h0IikpLGMrPWlzTmFOKG4pPzA6bixmLT1oK2Mscj1yLnBh cmVudE5vZGU7ZjwwfHwodGhpcy50YWJsZXNhbmRpbWdzW3RdLnN0eWxlLndpZHRo PWYrInB4Iix0aGlzLnRhYmxlc2FuZGltZ3NbdF0uc2V0QXR0cmlidXRlKCJuV2lk dGgiLGYpLHRoaXMudGFibGVzYW5kaW1nc1t0XS5jbGFzc05hbWUubWF0Y2goL2ti X291dGVyZ3JhcGhpY3dyYXBwZXJcYi9naSkmJih0aGlzLnRhYmxlc2FuZGltZ3Nb dF0uY2hpbGROb2Rlc1sxXS5jaGlsZE5vZGVzWzBdLndpZHRoPWYtOCkpfX1pPXRo aXMud2hpdGVzcGFjZXNpemUsdS10aGlzLm1pbmNvbnRlbnRzaXplPHRoaXMud2hp dGVzcGFjZXNpemUmJihpPXUtdGhpcy5taW5jb250ZW50c2l6ZSxpPWk8MD8wOmkp LGw9cGFyc2VJbnQodGhpcy5rYml0ZW1zWzBdLnN0eWxlLm1hcmdpbkxlZnQpO2lm KChpPHRoaXMud2hpdGVzcGFjZXNpemV8fGw8dGhpcy53aGl0ZXNwYWNlc2l6ZSYm aT09dGhpcy53aGl0ZXNwYWNlc2l6ZSkmJnRoaXMubGFzdHdzc2l6ZSE9aSlmb3Io dGhpcy5sYXN0d3NzaXplPWksYT1pPjE1P2ktMTU6MCx0PTA7dDx0aGlzLmtiaXRl bXMubGVuZ3RoO3QrKyl0aGlzLmtiaXRlbXNbdF0uc3R5bGVbdGhpcy5tYXJnaW5d PWErInB4In0sdGhpcy5ncmFwaGljdGFibGV0b2dnbGVjbGFzcz1mdW5jdGlvbihu LHQsaSxyKXt2YXIgdj0kKGRvY3VtZW50LmJvZHkpLmNzcygiZGlyZWN0aW9uIiks Yz12PT0ibHRyIj8ibWFyZ2luTGVmdCI6Im1hcmdpblJpZ2h0IixzLGgsZSxvLGY7 aWYobi5jbGFzc05hbWUubWF0Y2gobmV3IFJlZ0V4cChpLCJnaSIpKSluLmNsYXNz TmFtZT1qUXVlcnkudHJpbShuLmNsYXNzTmFtZS5yZXBsYWNlKGkscikpLG4uc2V0 QXR0cmlidXRlKCJhbGxvd1Jlc2l6ZSIsITApLG4uY2hpbGROb2Rlc1sxXS5jaGls ZE5vZGVzWzBdLndpZHRoPXBhcnNlSW50KG4uZ2V0QXR0cmlidXRlKCJuV2lkdGgi KS04KSxuLmNoaWxkTm9kZXNbMF0uc3R5bGUud2lkdGg9bi5jaGlsZE5vZGVzWzFd LnN0eWxlLndpZHRoPXBhcnNlSW50KG4uZ2V0QXR0cmlidXRlKCJuV2lkdGgiKSkt NisicHgiLG4uY2hpbGROb2Rlc1swXS5zdHlsZS5wb3NpdGlvbj1uLmNoaWxkTm9k ZXNbMV0uc3R5bGUucG9zaXRpb249InJlbGF0aXZlIixuLnN0eWxlLmhlaWdodD1u LmNoaWxkTm9kZXNbMV0uc3R5bGUudG9wPSJhdXRvIixuLnN0eWxlLmJvcmRlcldp ZHRoPSIwcHggM3B4IDNweCIsbi5jaGlsZE5vZGVzWzBdLnN0eWxlLm1hcmdpbj1u LmNoaWxkTm9kZXNbMV0uc3R5bGUubWFyZ2luPSIwcHgiLG4uY2hpbGROb2Rlc1sx XS5zdHlsZS5vdmVyZmxvd1g9ImF1dG8iLG4uc3R5bGVbY109IjBweCIsdC5jaGls ZE5vZGVzWzBdLmNsYXNzTmFtZT1qUXVlcnkudHJpbSh0LmNoaWxkTm9kZXNbMF0u Y2xhc3NOYW1lLnJlcGxhY2UoLyggP3xeKWtiX2NvbGxhcHNldGV4dF9vcGVuXGIv Z2ksImtiX2NvbGxhcHNldGV4dF9jbG9zZSIpKSx0LmNoaWxkTm9kZXNbMV0uY2xh c3NOYW1lPWpRdWVyeS50cmltKHQuY2hpbGROb2Rlc1sxXS5jbGFzc05hbWUucmVw bGFjZSgvKCA/fF4pa2JfZXhwYW5kdGV4dF9jbG9zZVxiL2dpLCJrYl9leHBhbmR0 ZXh0X29wZW4iKSk7ZWxzZXtuLmNsYXNzTmFtZT1qUXVlcnkudHJpbShuLmNsYXNz TmFtZS5yZXBsYWNlKHIsaSkpLG4uc2V0QXR0cmlidXRlKCJhbGxvd1Jlc2l6ZSIs ITEpLHM9cGFyc2VJbnQoJChuLmNoaWxkTm9kZXNbMV0uY2hpbGROb2Rlc1swXSku Y3NzKCJtYXJnaW5MZWZ0IiksMTApLGg9cGFyc2VJbnQoJChuLmNoaWxkTm9kZXNb MV0uY2hpbGROb2Rlc1swXSkuY3NzKCJtYXJnaW5SaWdodCIpLDEwKSxzPXM/czow LGg9aD9oOjAsbi5jaGlsZE5vZGVzWzFdLmNoaWxkTm9kZXNbMF0ud2lkdGg9bi5n ZXRBdHRyaWJ1dGUoIm9XaWR0aCIpLG4uY2hpbGROb2Rlc1swXS5zdHlsZS53aWR0 aD1uLmNoaWxkTm9kZXNbMV0uc3R5bGUud2lkdGg9cytoK3BhcnNlSW50KG4uZ2V0 QXR0cmlidXRlKCJvV2lkdGgiKSkrInB4IixuLmNoaWxkTm9kZXNbMF0uc3R5bGUu cG9zaXRpb249bi5jaGlsZE5vZGVzWzFdLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0 ZSIsbi5jaGlsZE5vZGVzWzFdLnN0eWxlLm92ZXJmbG93WD0idmlzaWJsZSIsbi5z dHlsZS5ib3JkZXJXaWR0aD0iMHB4IixuLmNoaWxkTm9kZXNbMF0uc3R5bGUubWFy Z2luPSIwcHggM3B4IixuLmNoaWxkTm9kZXNbMV0uc3R5bGUubWFyZ2luPSIwcHgg M3B4IixuLmNoaWxkTm9kZXNbMV0uc3R5bGUudG9wPW4uY2hpbGROb2Rlc1swXS5v ZmZzZXRIZWlnaHQrInB4IixuLnN0eWxlLmhlaWdodD0kKG4uY2hpbGROb2Rlc1sw XSkuaGVpZ2h0KCkrJChuLmNoaWxkTm9kZXNbMV0pLmhlaWdodCgpKzIwKyJweCIs ZT1uLG89MDt3aGlsZSghZS5jbGFzc05hbWUubWF0Y2goL3Nib2R5L2lnKSl7Zj1w YXJzZUludCgkKGUpLmNzcygibWFyZ2luTGVmdCIpLDEwKSxvKz1pc05hTihmKT8w OmYsZj1wYXJzZUludCgkKGUpLmNzcygibWFyZ2luUmlnaHQiKSwxMCksbys9aXNO YU4oZik/MDpmLGY9cGFyc2VJbnQoJChlKS5jc3MoInBhZGRpbmdMZWZ0IiksMTAp LG8rPWlzTmFOKGYpPzA6ZixmPXBhcnNlSW50KCQoZSkuY3NzKCJwYWRkaW5nUmln aHQiKSwxMCksbys9aXNOYU4oZik/MDpmLG8+MCYmKG8rPTEwKTtpZighZS5wYXJl bnROb2RlKXJldHVybiExO2U9ZS5wYXJlbnROb2RlfXZhciBsPXBhcnNlSW50KCQo ZSkuY3NzKGMpKSx5PSQoIiNrYiIpLmdldCgwKS5vZmZzZXRXaWR0aC1sLW8sYT15 LXBhcnNlSW50KG4uZ2V0QXR0cmlidXRlKCJvV2lkdGgiKSk7TWF0aC5hYnMoYSk+ bCYmKGE9MC1sKSxuLnN0eWxlW2NdPWErInB4Iix0LmNoaWxkTm9kZXNbMF0uY2xh c3NOYW1lPWpRdWVyeS50cmltKHQuY2hpbGROb2Rlc1swXS5jbGFzc05hbWUucmVw bGFjZSgvKCA/fF4pa2JfY29sbGFwc2V0ZXh0X2Nsb3NlXGIvZ2ksImtiX2NvbGxh cHNldGV4dF9vcGVuIikpLHQuY2hpbGROb2Rlc1sxXS5jbGFzc05hbWU9alF1ZXJ5 LnRyaW0odC5jaGlsZE5vZGVzWzFdLmNsYXNzTmFtZS5yZXBsYWNlKC8oID98Xilr Yl9leHBhbmR0ZXh0X29wZW5cYi9naSwia2JfZXhwYW5kdGV4dF9jbG9zZSIpKX19 LHRoaXMuR3JhcGhpY1RhYmxldG9nZ2xlPWZ1bmN0aW9uKG4pe3ZhciB0PWtiU3Jj RWwobikscix1LGk7aWYoIXQpcmV0dXJuITE7dC5jbGFzc05hbWUubWF0Y2goL2ti X3doaXRlYm94XGIvZ2kpP3Q9dC5wYXJlbnROb2RlLmNoaWxkTm9kZXNbMF06dC5j bGFzc05hbWUubWF0Y2goLyhrYl93aGl0ZWJveF90ZXh0fGtiX3doaXRlYm94X2lt ZylcYi9naSk/dD10LnBhcmVudE5vZGUucGFyZW50Tm9kZS5jaGlsZE5vZGVzWzBd OnQubm9kZU5hbWU9PT0iU1BBTiJ8fHQubm9kZU5hbWU9PT0iRElWIj8odC5jbGFz c05hbWUubWF0Y2goLyhrYl9jb2xsYXBzZXRleHRfYmFja2dyb3VuZHxrYl9leHBh bmR0ZXh0X2JhY2tncm91bmQpXGIvZ2kpJiYodD10LnBhcmVudE5vZGUpLHQ9dC5w YXJlbnROb2RlKTp0Lm5vZGVOYW1lPT09IklNRyImJih0PXQucGFyZW50Tm9kZS5w YXJlbnROb2RlKSxyPXQucGFyZW50Tm9kZS5vZmZzZXRXaWR0aCx1PXQucGFyZW50 Tm9kZS5nZXRBdHRyaWJ1dGUoIm9XaWR0aCIpO2lmKHU8cilyZXR1cm47aWYodC5j bGFzc05hbWUubWF0Y2goLyhrYl9ncmFwaGljdG9wX29wZW58a2JfZ3JhcGhpY3dy YXBwZXIpXGIvZ2kpKXt0aGlzLmdyYXBoaWN0YWJsZXRvZ2dsZWNsYXNzKHQucGFy ZW50Tm9kZSx0LCJrYl9vdXRlcmdyYXBoaWN3cmFwcGVyX29wZW4iLCJrYl9vdXRl cmdyYXBoaWN3cmFwcGVyX2Nsb3NlZCIsImtiX2dyYXBoaWN3cmFwcGVyIiksaT10 LnBhcmVudE5vZGU7aWYoaS5jaGlsZE5vZGVzWzJdJiZpLmNoaWxkTm9kZXNbMl0u Y2xhc3NOYW1lLm1hdGNoKC9rYl93aGl0ZWJveFxiL2dpKSlyZXR1cm4gdGhpcy5y ZW1vdmV3aGl0ZWJveChpLmNoaWxkTm9kZXNbMl0pLCEwO3RoaXMuYWRkd2hpdGVi b3goaSl9ZWxzZSB0LmNsYXNzTmFtZS5tYXRjaCgva2JfdGFibGV0b3Bfb3Blblxi L2dpKSYmdGhpcy5ncmFwaGljdGFibGV0b2dnbGVjbGFzcyh0LnBhcmVudE5vZGUs dCwia2Jfb3V0ZXJ0YWJsZXdyYXBwZXJfb3BlbiIsImtiX291dGVydGFibGV3cmFw cGVyX2Nsb3NlZCIsImtiX3RhYmxld3JhcHBlciIpfSx0aGlzLnRvZ2dsZUdyYXBo aWNUYWJsZT1mdW5jdGlvbigpe2Zvcih2YXIgdD0kKCIja2IgZGl2Iikscix1LGU9 dGhpcyxvPXRoaXMua2Job2xkZXIub2Zmc2V0V2lkdGgsZixpLG49MDtuPHQubGVu Z3RoO24rKyl7cj10W25dLmNsYXNzTmFtZS5tYXRjaCgvKCA/fF4pKGtiX2dyYXBo aWN3cmFwcGVyfGtiX3RhYmxld3JhcHBlcilcYi9naSksdT10W25dLmNsYXNzTmFt ZS5tYXRjaCgvKCA/fF4pc2VjdGlvbnByZXZpZXdfY2xvc2VkXGIvZ2kpO2lmKHIp e2Y9cj09ImtiX3RhYmxld3JhcHBlciI/dFtuXS5jaGlsZE5vZGVzWzBdLm9mZnNl dFdpZHRoOnRbbl0uY2hpbGROb2Rlc1swXS53aWR0aDtpZihmK3RoaXMud2hpdGVz cGFjZXNpemU8byl0W25dLmNsYXNzTmFtZT10W24tMV0uY2xhc3NOYW1lPXRbbl0u cGFyZW50Tm9kZS5jbGFzc05hbWU9ImtiX25vd3JhcHBlciIsdFtuXS5wYXJlbnRO b2RlLmFwcGVuZENoaWxkKHRbbl0uY2hpbGROb2Rlc1swXSk7ZWxzZSBpZih0W25d LmNsaWVudEhlaWdodDx0W25dLnNjcm9sbEhlaWdodHx8dFtuXS5jbGllbnRXaWR0 aDx0W25dLnNjcm9sbFdpZHRoKWZvcih0W24tMV0uY2xhc3NOYW1lKz0iX29wZW4i LGk9MDtpPHRbbi0xXS5jaGlsZE5vZGVzLmxlbmd0aDtpKyspdFtuLTFdLmNoaWxk Tm9kZXNbaV0uY2xhc3NOYW1lLm1hdGNoKC8oID98XilrYl9leHBhbmR0ZXh0XGIv Z2kpJiYodFtuLTFdLmNoaWxkTm9kZXNbaV0uY2xhc3NOYW1lPWpRdWVyeS50cmlt KHRbbi0xXS5jaGlsZE5vZGVzW2ldLmNsYXNzTmFtZS5yZXBsYWNlKC8oID98Xilr Yl9leHBhbmR0ZXh0XGIvZ2ksImtiX2V4cGFuZHRleHRfb3BlbiIpKSksa2JfQWRk RXZlbnQodFtuLTFdLmNoaWxkTm9kZXNbaV0sImNsaWNrIixmdW5jdGlvbihuKXtl LkdyYXBoaWNUYWJsZXRvZ2dsZShuKX0pO2Vsc2UgdFtuXS5jbGFzc05hbWU9dFtu LTFdLmNsYXNzTmFtZT10W25dLnBhcmVudE5vZGUuY2xhc3NOYW1lPSJrYl9ub3dy YXBwZXIifXUmJmtiX2dldFNlY3Rpb25QcmV2aWV3VGV4dCh0W25dKX19LHRoaXMu bWFrZXdoaXRlc3BhY2U9ZnVuY3Rpb24oKXt2YXIgbz0kKCIja2IiKS5nZXQoMCks Zix0LGksZSx1LHIsbjtpZighbylyZXR1cm47dGhpcy5sbmRpcj0kKG8pLmNzcygi ZGlyZWN0aW9uIiksdGhpcy5sbmRpcnx8KHRoaXMubG5kaXI9Imx0ciIpLGY9JCgi I2tiX3NlY3Rpb24iKS5nZXQoMCk7aWYoIXRoaXMua2Job2xkZXJ8fCF0aGlzLmti X3VzZV93aGl0ZXNwYWNlX2NoYW5uZWx8fCF0aGlzLmxuZGlyfHwhZilyZXR1cm4h MTtmb3IodGhpcy5tYXJnaW49dGhpcy5sbmRpcj09Imx0ciI/Im1hcmdpbkxlZnQi OiJtYXJnaW5SaWdodCIsdGhpcy5tYWtld2hpdGVib3goKSx0PXRoaXMua2Job2xk ZXIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImRpdiIpLGk9bnVsbCxuPTA7bjx0Lmxl bmd0aDtuKyspdFtuXS5jbGFzc05hbWUubWF0Y2goLyhzYm9keXxhcHBsaWVzdG98 a2V5d29yZHN8ZGlzY2xhaW1lcnx0b3BvZnBhZ2UpXGIvZ2kpJiYodFtuXS5wYXJl bnROb2RlPT10aGlzLmtiaG9sZGVyLmNoaWxkTm9kZXNbMF18fHRbbl0ucGFyZW50 Tm9kZT09ZikmJih0aGlzLmtiaXRlbXMucHVzaCh0W25dKSx0W25dLnN0eWxlW3Ro aXMubWFyZ2luXT10aGlzLndoaXRlc3BhY2VzaXplKyJweCIpLGk9dFtuXS5jbGFz c05hbWUubWF0Y2goLyhrYl9vdXRlcnRhYmxld3JhcHBlcnxrYl9vdXRlcmdyYXBo aWN3cmFwcGVyKVxiL2dpKSxpJiYodGhpcy50YWJsZXNhbmRpbWdzLnB1c2godFtu XSksaVswXT09ImtiX291dGVyZ3JhcGhpY3dyYXBwZXIiP3Rbbl0uc2V0QXR0cmli dXRlKCJvV2lkdGgiLHRbbl0uY2hpbGROb2Rlc1sxXS5jaGlsZE5vZGVzWzBdLndp ZHRoKTp0W25dLnNldEF0dHJpYnV0ZSgib1dpZHRoIix0W25dLmNoaWxkTm9kZXNb MV0uY2hpbGROb2Rlc1swXS5vZmZzZXRXaWR0aCkpO2ZvcihlPXRoaXMsbmF2aWdh dG9yLnVzZXJBZ2VudC5tYXRjaCgvZmlyZWZveC9pKT9zZXRJbnRlcnZhbChmdW5j dGlvbigpe2UucmVzaXplKCl9LDUwKToodGhpcy5yZXNpemUoKSxrYl9BZGRFdmVu dCh3aW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtlLnJlc2l6ZSgpfSkpLHU9MCxy PTAsbj0wO248dC5sZW5ndGg7bisrKXI9cGFyc2VJbnQodFtuXS5nZXRBdHRyaWJ1 dGUoIm5XaWR0aCIpKSx1PXBhcnNlSW50KHRbbl0uZ2V0QXR0cmlidXRlKCJvV2lk dGgiKSksaT10W25dLmNsYXNzTmFtZS5tYXRjaCgva2Jfb3V0ZXJncmFwaGljd3Jh cHBlcnxrYl9vdXRlcnRhYmxld3JhcHBlclxiL2dpKSxpJiYocnx8KHI9MSksciYm dSYmKHI+dT8odFtuXS5yZW1vdmVDaGlsZCh0W25dLmNoaWxkTm9kZXNbMF0pLHRb bl0uY2xhc3NOYW1lPXRbbl0uY2hpbGROb2Rlc1swXS5jbGFzc05hbWU9ImtiX25v d3JhcHBlciIpOmlbMF09PSJrYl9vdXRlcmdyYXBoaWN3cmFwcGVyIiYmKHRoaXMu YWRkd2hpdGVib3godFtuXSksa2JfQWRkRXZlbnQodFtuXSwibW91c2VvdmVyIix0 aGlzLm1vdmVyKSxrYl9BZGRFdmVudCh0W25dLCJtb3VzZW91dCIsdGhpcy5tb3V0 KSkpKTtyZXR1cm4gdGhpc30sdGhpcy5zdGFydD1mdW5jdGlvbihuKXtpZighbily ZXR1cm4gbnVsbDt0aGlzLmtiaG9sZGVyPW4sdGhpcy50b2dnbGVHcmFwaGljVGFi bGUoKSx0aGlzLmtiX3VzZV93aGl0ZXNwYWNlX2NoYW5uZWwmJnRoaXMubWFrZXdo aXRlc3BhY2UoKTt2YXIgdD0kKCIudG9jVGl0bGUiKS5nZXQoMCk7dCYma2JfdGFi dG9nZ2xlKHQpfX12YXIga2JfQWRkRXZlbnQscGFnZUJsb2NrRWxzLGtiX3RhYnRv Z2dsZSxrYl9FeHBhbmRDb2xsYXBzZWFsbCxrYl9wYWdlX29iamVjdCxrYl9vbmxv YWQ7d2luZG93LmFkZEV2ZW50TGlzdGVuZXI/a2JfQWRkRXZlbnQ9ZnVuY3Rpb24o bix0LGkpe24uYWRkRXZlbnRMaXN0ZW5lcih0LGksITEpfTp3aW5kb3cuYXR0YWNo RXZlbnQmJihrYl9BZGRFdmVudD1mdW5jdGlvbihuLHQsaSl7bi5hdHRhY2hFdmVu dCgib24iK3QsaSl9KTt2YXIgYWRkTXRTcGFuPWZ1bmN0aW9uKCl7Zm9yKHZhciB0 PSQoIltpZD0nbXQnXSIpLG49MDtuPHQuc2l6ZSgpO24rKykkKHQuZ2V0KG4pKS5h dHRyKCJpZCIsIk1UIituKX0scmVuZGVyTXRXaWRnZXQ9ZnVuY3Rpb24obix0LGks cil7dCE9PSIiJiZyPT09InRydWUiJiYoJCgiLnNlYXJjaC1uYXZpZ2F0aW9uIiku YXR0cigidHJhbnNsYXRlIiwiZmFsc2UiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7 dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ci50eXBlPSJ0 ZXh0L2phdmFzY3JpcHQiLHIuY2hhcnNldD0iVVRGLTgiLHIuc3JjPShsb2NhdGlv biYmbG9jYXRpb24uaHJlZiYmbG9jYXRpb24uaHJlZi5pbmRleE9mKCJodHRwcyIp PT0wPyJodHRwczovL3NzbC5taWNyb3NvZnR0cmFuc2xhdG9yLmNvbS9hamF4L3Yy L3dpZGdldC5hc3B4IjoiaHR0cDovL3d3dy5taWNyb3NvZnR0cmFuc2xhdG9yLmNv bS9hamF4L3YyL3dpZGdldC5hc3B4IikrIj9zaXRlRGF0YT0iK2VuY29kZVVSSUNv bXBvbmVudChpKSsiJm1vZGU9bWFudWFsJmZyb209ZW4mbGF5b3V0PXRzJnRvPSIr dCsiJm9yaWdpbmFsRG9jdW1lbnQ9L3ZpZXdrYi92aWV3a2IuYXNweD9jb250ZW50 aWQ9IituKyImY2F0ZWdvcnk9VGVjaCIsZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZv cmUocixkb2N1bWVudC5ib2R5Lmxhc3RDaGlsZCl9LDApKX0sdG9jTGlua0NvdW50 PTAsa2JIZWFkaW5ncz1bXSxrYl90YWJzX21pbnVzaW1nc3JjPSIvbGlicmFyeS9p bWFnZXMvc3VwcG9ydC9lbi11cy8yMHgyMF9ncmV5X21pbnVzLnBuZyIsa2JfdGFi c19wbHVzaW1nc3JjPSIvbGlicmFyeS9pbWFnZXMvc3VwcG9ydC9lbi11cy8yMHgy MF9ncmV5X3BsdXMucG5nIjt2YXIga2JpdGVtYXJyPVtdLGxvYWRUT0NOb2RlPWZ1 bmN0aW9uKG4sdCl7dmFyIHIsdSxpO3RyeXtpZighdG9jT2JqZWN0KXJldHVybiEx fWNhdGNoKGYpe3JldHVybiExfXI9Z2V0TGF0ZXN0RWxlbWVudCgpLHBhc3Nlc1R5 cGVGaWx0ZXIodCkmJm48PWRlcHRoTGltaXQmJihrYkhlYWRpbmdzLnB1c2gociks dT1tYWtlVE9DTm9kZShyLG4pLGk9ZmluZFBhcmVudFRPQ05vZGUoKSxpP2kudG9j RWxlbWVudC5jaGlsZE5vZGVzWzFdLnN0eWxlLmRpc3BsYXkhPSJub25lIiYmKGku dG9jRWxlbWVudC5jaGlsZE5vZGVzWzFdLmFwcGVuZENoaWxkKHUpLGVuZm9yY2VI ZWFkaW5nTWF4aW11bXMoaSksdG9jTGlua0NvdW50KyspOihrYml0ZW1hcnIucHVz aCh1KSx0b2NMaW5rQ291bnQrKykpfSxzdWJTZWN0aW9uTG9hZD1mdW5jdGlvbigp e3ZhciBpPSQoIi5zdWJTZWN0aW9uJi5oZWFkRXhwYW5kIiksdD0kKCIuc3ViU2Vj dGlvbiYuaGVhZENvbGxhcHNlIiksbjt0LmFkZENsYXNzKCJub3RTaG93IiksaS5l YWNoKGZ1bmN0aW9uKCl7bj0kKHRoaXMpLnByZXZBbGwoImgzLGg0LGg1LGIiKS5m aXJzdCgpLG4ubGVuZ3RoJiYoJChuKS5hZGRDbGFzcygic3ViU2VjdGlvbkhlYWQi KSwkKG4pLmFkZENsYXNzKCJoZWFkRXhwYW5kIiksJChuKS50b2dnbGUoZnVuY3Rp b24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJoZWFkRXhwYW5kIiksJCh0aGlzKS5h ZGRDbGFzcygiaGVhZENvbGxhcHNlIiksJCh0aGlzKS5uZXh0QWxsKCIuc3ViU2Vj dGlvbjpmaXJzdCIpLmNzcygiZGlzcGxheSIsIm5vbmUiKX0sZnVuY3Rpb24oKXsk KHRoaXMpLnJlbW92ZUNsYXNzKCJoZWFkQ29sbGFwc2UiKSwkKHRoaXMpLmFkZENs YXNzKCJoZWFkRXhwYW5kIiksJCh0aGlzKS5uZXh0QWxsKCIuc3ViU2VjdGlvbjpm aXJzdCIpLmNzcygiZGlzcGxheSIsImJsb2NrIil9KSl9KSx0LmVhY2goZnVuY3Rp b24oKXtuPSQodGhpcykucHJldkFsbCgiaDMsaDQsaDUsYiIpLmZpcnN0KCksbi5s ZW5ndGgmJigkKG4pLmFkZENsYXNzKCJzdWJTZWN0aW9uSGVhZCIpLCQobikuYWRk Q2xhc3MoImhlYWRDb2xsYXBzZSIpLCQobikudG9nZ2xlKGZ1bmN0aW9uKCl7JCh0 aGlzKS5yZW1vdmVDbGFzcygiaGVhZENvbGxhcHNlIiksJCh0aGlzKS5hZGRDbGFz cygiaGVhZEV4cGFuZCIpLCQodGhpcykubmV4dEFsbCgiLnN1YlNlY3Rpb246Zmly c3QiKS5jc3MoImRpc3BsYXkiLCJibG9jayIpfSxmdW5jdGlvbigpeyQodGhpcyku cmVtb3ZlQ2xhc3MoImhlYWRFeHBhbmQiKSwkKHRoaXMpLmFkZENsYXNzKCJoZWFk Q29sbGFwc2UiKSwkKHRoaXMpLm5leHRBbGwoIi5zdWJTZWN0aW9uOmZpcnN0Iiku Y3NzKCJkaXNwbGF5Iiwibm9uZSIpfSkpfSl9LGtiX3RvY0xvYWQ9ZnVuY3Rpb24o KXt2YXIgaT0kKCIjdG9jRGl2IikuZ2V0KDApLG4sdDtpZighaSlyZXR1cm4hMTtm b3Iobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpLGkuYXBwZW5kQ2hpbGQo biksdD0wO3Q8a2JpdGVtYXJyLmxlbmd0aDt0Kyspbi5hcHBlbmRDaGlsZChrYml0 ZW1hcnJbdF0pO3RvY0xpbmtDb3VudD50b2NFbnRyeU1pbmltdW18fCQobikuYWRk Q2xhc3MoImtiX3RhYnNfdG9nZ2xlX2Nsb3NlZCIpfTtrYl9BZGRFdmVudCh3aW5k b3csImxvYWQiLGtiX3RvY0xvYWQpLGtiX0FkZEV2ZW50KHdpbmRvdywibG9hZCIs a2JfbGlnaHRCb3hMb2FkKSxrYl90YWJ0b2dnbGU9ZnVuY3Rpb24obil7dmFyIHQ9 a2JTcmNFbChuKSxyLHUsaTt3aGlsZSh0JiZ0Lm5vZGVOYW1lIT09IkgyIil0PXQu cGFyZW50Tm9kZTtpZighdClyZXR1cm4hMTtmb3Ioa2JfdG9nZ2xlY2xhc3ModCks cj10LnBhcmVudE5vZGUsdT0hMSxpPTA7aTxyLmNoaWxkTm9kZXMubGVuZ3RoO2kr Kyl7ci5jaGlsZE5vZGVzW2ldPT10JiYodT0hMCk7aWYodSlpZihyLmNoaWxkTm9k ZXNbaV0uY2xhc3NOYW1lLm1hdGNoKC8oID98XilzYm9keVxiL2dpKSl7a2JfdG9n Z2xlY2xhc3Moci5jaGlsZE5vZGVzW2ldKTticmVha319fSxrYl9FeHBhbmRDb2xs YXBzZWFsbD1mdW5jdGlvbihuKXt2YXIgdD1rYlNyY0VsKG4pLGk7aWYoIXQpcmV0 dXJuITE7aT0kKCIja2Jfc2VjdGlvbiIpLmdldCgwKTtpZighaSlyZXR1cm4hMTtr YnNlY3Rpb25fQ29sbGFwc2VFeHBhbmQodCxpKSwkKCIua2JTdXJ2ZXkiKS5sZW5n dGgmJmtic2VjdGlvbl9Db2xsYXBzZUV4cGFuZCh0LCQoIi5rYlN1cnZleSIpLmdl dCgwKSksa2JfUHJldmVudEJsYW5rQXJlYUluQnV0dG9tKCl9LGtiX3BhZ2Vfb2Jq ZWN0PW5ldyBrYl9vYmplY3Qsa2Jfb25sb2FkPWZ1bmN0aW9uKCl7dmFyIGY9JCgi I2tiIikuZ2V0KDApLG4scix1LGUsdCxpO2lmKCFmKXJldHVybiExO2ZvcihuPSQo IiNrYiBoMiIpLCQubWVyZ2UobiwkKCIua2JTdXJ2ZXkgaDIuc3ViVGl0bGUiKSks cj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSxyLnNyYz1rYl90YWJzX21p bnVzaW1nc3JjLHIuY2xhc3NOYW1lPSJrYl90YWJzX3RvZ2dsZSBrYl90YWJzX3Rv Z2dsZV9vcGVuIix1PSExLHQ9MDt0PG4ubGVuZ3RoO3QrKyluW3RdLmNsYXNzTmFt ZS5tYXRjaCgvKCA/fF4pc3ViVGl0bGVcYi9naSkmJihlPW5bdF0uZ2V0RWxlbWVu dHNCeVRhZ05hbWUoImEiKSxrYl9BZGRFdmVudChuW3RdLCJjbGljayIsa2JfdGFi dG9nZ2xlKSxuW3RdLmluc2VydEJlZm9yZShyLmNsb25lTm9kZSghMCksblt0XS5j aGlsZE5vZGVzWzBdKSx1PSEwKTtpPSQoIiNrYl9leHBhbmRjb2xsYXBzZWFsbCIp LmdldCgwKSxpJiZ1JiYoaS5jbGFzc05hbWU9alF1ZXJ5LnRyaW0oaS5jbGFzc05h bWUucmVwbGFjZSgvKCA/fF4pZXhwYW5kY29sbGFwc2VhbGxcYi9naSwiZXhwYW5k Y29sbGFwc2VhbGxfb3BlbiIpKSxrYl9BZGRFdmVudChpLmNoaWxkTm9kZXNbMF0s ImNsaWNrIixrYl9FeHBhbmRDb2xsYXBzZWFsbCksa2JfQWRkRXZlbnQoaS5jaGls ZE5vZGVzWzJdLCJjbGljayIsa2JfRXhwYW5kQ29sbGFwc2VhbGwpKSxrYl9wYWdl X29iamVjdC5zdGFydChmKSxzdWJTZWN0aW9uTG9hZCgpfSxrYl9BZGRFdmVudCh3 aW5kb3csImxvYWQiLGtiX29ubG9hZCk7 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=stickypanel.js Content-Type: application/x-javascript; name=stickypanel.js Content-Location: http://support.microsoft.com/common/script/gsfx/stickypanel.js?80 Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gbW9kaWZ5V2VicGFydChuLHQpe3ZhciByLHUsaSxmLGU7aWYoIXR8 fHQ9PW51bGwpcmV0dXJuO2lmKCFuKXJldHVybjthZGRDb21tb25Db250YWluZXIo KSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgzIiksdT1kb2N1bWVudC5jcmVh dGVFbGVtZW50KCJzcGFuIiksbi5zdHlsZS5kaXNwbGF5PSJibG9jayIsbi5pbm5l ckhUTUw9dCxpPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImgzIilbMF0sZj0iIixp JiYoZj1pLmNoaWxkTm9kZXNbMF0uaW5uZXJIVE1MLGU9aS5wYXJlbnROb2RlLGUu cmVtb3ZlQ2hpbGQoaSkpLHUuaW5uZXJIVE1MPWYsci5hcHBlbmRDaGlsZCh1KSxu Lmluc2VydEJlZm9yZShyLG4uY2hpbGROb2Rlc1swXSl9ZnVuY3Rpb24gYWRkQ29t bW9uQ29udGFpbmVyKCl7dmFyIG4sdCxyLHUsZixlLG8saTtpZihudWxsPT1kb2N1 bWVudC5nZXRFbGVtZW50QnlJZCgiZ3NzX3N0aWNreV9jb250YWluZXJfZGl2Iikp e249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdlJlbFRhZ3MiKSx0PWRvY3Vt ZW50LmdldEVsZW1lbnRCeUlkKCJkaXZSZWxDb250ZW50Iik7aWYobj09bnVsbCYm dD09bnVsbClyZXR1cm47biYmKG4uY2xhc3NOYW1lPSJnc3Nfc3RpY2t5d2VicGFy dF9kaXYiKSx0JiYodC5jbGFzc05hbWU9Imdzc19zdGlja3l3ZWJwYXJ0X2RpdiIp LHI9bnVsbCx1PW51bGwsbiE9bnVsbCYmdD09bnVsbCYmKHI9dT1uKSx0IT1udWxs JiZuPT1udWxsJiYocj11PXQpO2lmKHI9PW51bGwpe2Y9ITAsaT1uLnByZXZpb3Vz U2libGluZzt3aGlsZShpIT1udWxsKXtpZihpLmlkPT10LmlkKXtmPSExO2JyZWFr fWk9aS5wcmV2aW91c1NpYmxpbmd9dT1mP246dCxyPWY/dDpufWU9ZG9jdW1lbnQu Y3JlYXRlRWxlbWVudCgiZGl2IiksZS5pZD0iZ3NzX3N0aWNreV9jb250YWluZXJf ZGl2IixvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGluQ29sdW1uIiksby5p bnNlcnRCZWZvcmUoZSxyLm5leHRTaWJsaW5nKSxyLmNsYXNzTmFtZSs9IiBnc3Nf c3RpY2t5d2VicGFydF9ib3R0b21fZGl2IixpPWRvY3VtZW50LmNyZWF0ZUVsZW1l bnQoImRpdiIpLGkuaWQ9Imdzc19zdGlja3lpbm5lcl9kaXYiLGUuYXBwZW5kQ2hp bGQoaSksdSYmaS5hcHBlbmRDaGlsZCh1KSxyJiZpLmFwcGVuZENoaWxkKHIpfX1D YWxsYmFja19SZWxhdGVkVGFncz1mdW5jdGlvbihuKXttb2RpZnlXZWJwYXJ0KGRv Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXZSZWxUYWdzIiksbil9LENhbGxiYWNr X1JlbGF0ZWRDb250ZW50PWZ1bmN0aW9uKG4pe21vZGlmeVdlYnBhcnQoZG9jdW1l bnQuZ2V0RWxlbWVudEJ5SWQoImRpdlJlbENvbnRlbnQiKSxuKX07 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=override.css Content-Type: text/css; name=override.css Content-Location: http://support.microsoft.com/common/css/default/ie/override.css?80 Content-Transfer-Encoding: 8bit /* xml content */ /* This is used for wrapping very long href and text strings however IE does not handle the inheritance correctly all of the time and might cause a bug wrapping other strings */ .kb span.ll, .kb .indent b, .kb .indent strong, .kb .indent .userInput { word-break: break-all; word-wrap: break-word; display: block; } .kb .toc a { word-break: normal; word-wrap: normal; } .kb .toc .tallTable .text { width: 100%; } #RelatedContent a, #RelatedTags a { display:inline-block; } /* Media Print */ @media print { pre { word-wrap: break-word !important; white-space: normal !important; } .kb span.pLink { word-break: break-all; word-wrap: break-word; } } a.cuImageBullet { padding: 2px 5px 2px 0; vertical-align: top; cursor: hand; } .cuConfirmAnswer { word-wrap: break-word; word-break: break-all; } ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=branding.css Content-Type: text/css; name=branding.css Content-Location: http://support.microsoft.com/common/css/default/branding.css?80 Content-Transfer-Encoding: 8bit body { margin: 0px; /*eliminates the interior margin of the page, allowing the elements to bump up flush with the sides*/ } /*START Content Area Styling*/ #gsfx_brnd_CenterContent { text-align: center; /*center content for IE quirksmode ***MUST reset in next element*** */ position: relative; /*need to pass positioning down*/ z-index: 1; /*ensure proper layering*/ width: 100%; /*fill the screen*/ } #gsfx_brnd_PageWrapper { width: 984px; /*CHANGE HERE: Change the width of the frame here.*/ text-align: left; /*properly realign text*/ margin: 0px auto 30px auto; /*also centers content for mozilla, opera and webkit*/ position: relative; /*need to pass positioning down*/ } #gsfx_brnd_PageContainer { min-height: 430px; /*CHANGE HERE: set minimum height of content*/ padding: 0px; /*not neccessary, but good to have*/ /* Commented, because IE8 doesn't support this feature well.*/ /* display: inline-block; allows content for mozilla, opera and webkit to push this container wider and recenter*/ position: relative; /*need to pass positioning down*/ width: inherit; /*must be set for both IE and Non IE to strecth the frame properly*/ } #gsfx_brnd_PageHeaderImage { position: absolute; /*remove from the flow of content and not affect anything around*/ width: 100%; /*fill the screen*/ height: 90%; /*fill minimum screen height*/ } * html #gsfx_brnd_PageHeaderImage { height: 90%; /*fixes a bug in IE where the background would go to far down*/ width: 100%; } /*dont remove this element unless you also reset the margin of the content container to 0px*/ #gsfx_brnd_ToolbarShadow { display: none; } #gsfx_brnd_shadow { background: url('/library/images/support/cn/gsfx_brnd_toolbar_shadow.png') repeat-x; /*use pngfilter on this for IE6 and below*/ height: 14px; /*matches the height of the image*/ line-height: 1px; /*hack for IE to make the height smaller that normal line height*/ font-size: 1px; /*hack for IE to make the height smaller that normal line height*/ width: 100%; z-index: 3; } * html #gsfx_brnd_shadow { position: absolute; } #gsfx_brnd_ContentContainer { background-color: #ffffff; width: 100%; /*fill the container width*/ padding: 0px; /*CHANGE HERE: This should match the desired width of the border minus the width of the css border*/ position: inherit; /*This needs to be set to inherit or items are not clickable in IE for some reason*/ z-index: 2; /*ensure proper layering*/ } #contentArea { /*TODO: This may need to be configurable*/ background: #FFFFFF; border-bottom: 1px solid #000000; display: table; /*needed by mozilla and webkit to properly stretch the framework*/ width: 100%; /*fill the container*/ position: relative; /*need to pass positioning down*/ z-index: 2; /*ensure proper layering*/ } #gsfx_brnd_WidthFix { width: 612px; /*CHANGE HERE: Change this value to change the minimum width*/ height: 0px; /*make 0px high*/ line-height: 0px; /*make 0px high*/ font-size: 0px; /*make 0px high*/ } .gsfx_brnd_SideBorder { border-left: 1px solid #000000; /*CHANGE HERE: If you want different color borders for the frame*/ border-right: 1px solid #000000; /*CHANGE HERE: If you want different color borders for the frame*/ } .gsfx_brnd_TransBG { margin: 0px; } /*END Content Area Styling*/ /*START Corner And Border Styling*/ .gsfx_brnd_CornerContainer { line-height: 1px; /*this is for IE to reduce hieght to less than the standard line-height (usually 1em)*/ font-size: 0px; /*this is for IE to reduce hieght to less than the standard line-height (usually 1em)*/ height: 0px; /*CHANGE HERE: this should match the hieght of the the top and bottom borders*/ width: 100%; position: relative; /*not neccessary, but good to have*/ z-index: 1; } #gsfx_brnd_TopCorners { display: none; } #gsfx_brnd_BottomCorners { display: none; } .gsfx_brnd_TBBorders { width: 100%; } #gsfx_brnd_TopBorder { border-top: 1px solid #85A1B9; /*CHANGE HERE: If you want different color borders for the frame*/ } #gsfx_brnd_BottomBorder { border-bottom: 1px solid #000000; /*CHANGE HERE: If you want different color borders for the frame*/ } .gsfx_brnd_Corner { /*CHANGE HERE: Change the width, hight, left and margin-top value if you wish to have*/ /*a different size corner on your frame, will affect all four corners*/ float: right; height: 6px; width: 6px; position: relative; /*this is necessary to allow the element to move*/ left: 6px; /*this needs to match this elements width*/ margin-top: -6px; /*this needs to match this elements height*/ } #gsfx_brnd_LUpperCorner { /*CHANGE HERE: If you want different corners for the frame. Dont forget to change it in the brandingPngFilter.css as well*/ background: url('/library/images/support/cn/gsfx_brnd_trcorner.png') no-repeat; } #gsfx_brnd_LLowerCorner { /*CHANGE HERE: If you want different corners for the frame. Dont forget to change it in the brandingPngFilter.css as well*/ background: url('/library/images/support/cn/gsfx_brnd_brcorner.png') no-repeat; } /*END Corner And Border Styling*/ /*START Header, Footer and Local Tool Bar*/ #gsfx_brnd_HeaderContainer, #gsfx_brnd_FooterContainer { width: 100%; position: relative; } #gsfx_brnd_HeaderContainer { z-index: 4; } #gsfx_brnd_FooterContainer { z-index: 1; } .gsfx_brnd_NetworkLinkContainer { padding: 0px 5px; white-space: nowrap; } a.gsfx_brnd_NetworkLink, a.gsfx_brnd_NetworkLink:visited, .gsfx_brnd_NetworkLink a, .gsfx_brnd_NetworkLink a:visited { padding-bottom: 1px; height: 100%; color: #cdcbce; text-decoration: none; } a.gsfx_brnd_NetworkLink:hover, a.gsfx_brnd_NetworkLink:active, a.gsfx_brnd_NetworkLink:focus, .gsfx_brnd_NetworkLink a:hover, .gsfx_brnd_NetworkLink a:active, .gsfx_brnd_NetworkLink a:focus { color: #f9d060; text-decoration: none; padding-bottom: 0px; border-bottom: 1px dotted #f9d060; } #gsfx_brnd_NetworkHeaderLinks td { height: .9em; } #gsfx_brnd_NetworkFooter td { height: .9em; font-size: 80%; } #gsfx_brnd_NetworkHeaderLinks td span { height: 100%; } .gsfx_brnd_HeaderSeperator, .gsfx_brnd_FooterSeperator { color: #68686a; font-weight: bold; } /*reverse these for RTL content*/ .gsfx_brnd_NetworkLeft { float: left; left: 0px; right: auto; } .gsfx_brnd_NetworkRight { float: right; left: auto; right: 0px; } .gsfx_brnd_FooterLinks .gsfx_brnd_NetworkRight, #gsfx_brnd_FooterContainer .gsfx_brnd_NetworkLeft { clear: both; } .gsfx_brnd_NetworkTextRight { text-align: right; } /*The following lines are used to remove the book icon at the side of Passport signin/signout button */ #idSI { display: none; } #idSO { display: none; } /*START Header*/ #gsfx_brnd_NetworkHeader { color: #fff; font-size: 70%; width: 100%; position: relative; z-index: 2; padding: 0px 2px; height: 25px; } #gsfx_brnd_NetworkHeader span { font-weight: bold; } #gsfx_brnd_NetworkHeader a span { font-weight: normal; } #gsfx_brnd_CorpMarketingContainer { position: absolute; width: 400px; height: 25px; } #gsfx_brnd_CorpMarketingSpace { margin: 0px 8px; position: absolute; height: 41px; padding: 0px 25px; } #gsfx_brnd_corpflyoutad, #gsfx_brnd_corpflyoutad_inner { position: absolute; overflow: hidden; height: 0px; width: 0px; top: 0px; left: 0px; } #gsfx_brnd_corpflyoutad { margin-top: -1px; opacity: 0; filter: alpha(opacity=0); } #gsfx_brnd_corpflyoutad_close { position: absolute; right: 4px; top: 4px; } #gsfx_brnd_corpflyoutad_dontshow { position: absolute; bottom: 8px; left: 20px; } #gsfx_brnd_CorpMarketingSpace div.gsfx_brnd_NetworkLink img { display: inline; vertical-align: middle; } #gsfx_brnd_CorpMarketingSpace div.gsfx_brnd_NetworkLink span { vertical-align: middle; font-weight: normal; padding: 6px 4px 0px 4px; } #gsfx_brnd_NetworkHeaderLinks { border-collapse: collapse; margin: 8px 4px 0; } #gsfx_brnd_SiteHeader { width: 100%; min-height: 61px; position: relative; z-index: 1; padding-top: 10px; border-bottom: 1px solid #000000; } #gsfx_brnd_SiteHeaderImageContainer { line-height: 0px; /*this is for IE to reduce hieght to less than the standard line-height (usually 1em)*/ font-size: 0px; /*this is for IE to reduce hieght to less than the standard line-height (usually 1em)*/ height: 72px; /*CHANGE HERE: this should match the hieght of the siteheader*/ width: 100%; position: absolute; left: 0px; margin-top: -10px; padding: 0px; z-index: 1; } #gsfx_brnd_SiteHeaderImage { width: 100%; position: absolute; } #gsfx_brnd_SiteImageWedgeWrap { position: absolute; left: 0px; width: 100%; padding: 0; z-index: 1; } .gsfx_brnd_siteheaderimage { position: relative; float: left; z-index: 2; margin: 0px 0px 1px 0px; /*hack for IE and is floating bugs, if this isnt there, ie puts a space between the floated images*/ } #gsfx_brnd_SiteImgRight { float: right; margin-right: 1px; } * html #gsfx_brnd_SiteImgLeft, * html #gsfx_brnd_SiteImgMain { margin-left: -4px; } #gsfx_brnd_PageLogoWrapper { padding: 0px 12px; white-space: nowrap; position: relative; z-index: 2; } #gsfx_brnd_legacy_PageLogo { height: 100%; width: 100%; position: absolute; margin: 0px 12px; } #gsfx_brnd_PageLogoLink { vertical-align: middle; text-decoration: none; } #gsfx_brnd_PageLogo { vertical-align: middle; } #gsfx_brnd_PageTitle { vertical-align: middle; color: #fff; font-size: 22pt; } #gsfx_brnd_SearchWrapper { position: relative; margin: 0px 10px; margin-top: -9px; z-index: 2; } #frmsrch { display: inline; } #gsfx_bsrch_divQuery { height: 24px; /*border:solid 1px #336b95;*/ margin: 5px 0px 5px 5px; background-color: #ffffff; display: inline; position: relative; } #gsfx_bsrch_options_subcntr { background: #ffffff; border: solid 1px #999999; margin-top: 1px; font-size: 0.7em; /*height:65px;*/ line-height: 18px; padding: 4px 0px 6px 0px; position: absolute; width: 100%; } #gsfx_bsrch_options { background-color: #ffffff; float: left; position: absolute; display: none; color: Black; height: 1px; z-index: 10; } .gsfx_bsrch_chkimg { /*visibility:hidden;*/ display: none; margin: 4px; } .gsfx_bsrch_container { width: 375px; height: 32px; background: url('/library/images/support/cn/ss_live_glass_border.png') right no-repeat; float: right; margin: 15px 2px; position: relative; } .gsfx_catoptimg_cotnr { display: block; margin: 2px 2px 2px 1px; float: left; width: 15px; } #gsfx_cat_sel_cntnr { background-color: #ffffff; border: solid 1px #336b95; color: black; display: none; font-size: 0.7em; line-height: 18px; padding: 4px 1px; position: absolute; right: -1px; } #gsfx_bsrch_options_subcntr .TopSearchOptionsSelected,#gsfx_bsrch_options_subcntr .TopSearchOptionsDefault { cursor: pointer; width: 100%; padding-top: 5px; padding-bottom: 5px; } #gsfx_bsrch_options_subcntr .TopSearchOptionsDefault { background-color: transparent } #gsfx_cat_sel_cntnr a { color: black; } #gsfx_bsrch_options_subcntr .gsfx_srchsitename_cotnr { display: inline; font-size: 11px; white-space: pre-wrap; margin: auto 5px; } .gsfx_catopttxt_cotnr { display: block; float: left; font-size: 11px; overflow: hidden; width: 150px; } .TopSearchOptionsSelected { cursor: default; background-color: #0072C6; color: #ffffff; font-weight: bolder; } .TopSearchOptionsDefault { cursor: pointer; background-color: #ffffff; color: #000000; } #gsfx_bsrch_logo_div { display: inline; float: right; margin-right: 6px; margin-top: 9px; position: relative; } #gsfx_bsrch_logo { vertical-align: middle; cursor: pointer; } #gsfx_bsrch_btnimg { height: 20px; width: 20px; vertical-align: middle; margin: 0px; cursor: pointer; } #gsfx_cat_sel { height: 24px; width: 13px; margin-top: 5px; margin-right: 5px; float: left; position: relative; cursor: pointer; } * html #gsfx_bsrch_query { vertical-align: bottom; height: 1.7em; } #gsfx_bsrch_divQuery #gsfx_bsrch_query { display: inline; font-size: 11px; height: 18px; margin: 1px 0px 1px 2px; border: 0px; vertical-align: middle; padding: 1px; } .gsfx_bsrch_buttonwrap { border: 1px solid #000000; background-color: #fff; font-size: .7em; } .gsfx_bsrch_buttonwrap input { background: none; border: 0px; } * html .gsfx_bsrch_buttonwrap { padding: 0px; height: 1.7em; margin-top: 1px; padding-top: 1px; } #gsfx_bsrch_srch { border-left: 0px; } #gsfx_bsrch_poweredbycell { margin-top: 1px; padding: 2px 0px; } #gsfx_bsrch_poweredbycell span { font-size: 7pt; text-align: right; } #gsfx_bsrch_poweredbycell img, #gsfx_bsrch_poweredbycell div { vertical-align: middle; margin: 0px 2px; } /*END Header*/ /*START Footer*/ #gsfx_brnd_FooterContainer { height: 50px; } #gsfx_brnd_SiteFooter { color: #ffffff; font-size: 14pt; height: 40px; width: 230px; line-height: 40px; margin-left: 10px; margin-right: 20px; padding-top: 5px; text-align: left; white-space: nowrap; } #gsfx_brnd_SiteFooter .gsfx_div_png { line-height: normal; } #gsfx_brnd_NetworkFooter span { color: #fff; } #gsfx_brnd_copyright_container { padding-top: 6px; margin-left: 11px; width: 100px; height: 100%; position: relative; } #gsfx_brnd_MSLogo, #gsfx_brnd_MSLogoPrint { position: relative; } #gsfx_brnd_legacy_MSLogo { height: 100%; width: 100%; position: absolute; top: 0px; left: 0px; float: left; } #gsfx_brnd_NetworkFooter td { white-space: nowrap; } /*END Footer*/ /*START LocalToolBar*/ #gsfx_brnd_LocalToolBar { width: 100%; padding: 0px; z-index: 3; } #gsfx_brnd_LocalLinks { margin: 0px; position: relative; height: 37px; background-color: #000; background-image: url(/library/images/support/cn/topnav_bkgnd.png); background-repeat: repeat-x; background-position: left center; padding-top: 0px; padding-right: 5px; padding-bottom: 0px; padding-left: 5px; } #gsfx_brnd_LocalLinks li { position: relative; /*IE6 Unclickable Link Hack*/ line-height: 37px; display: inline; float: left; color: #fff; font-size: 70%; } #gsfx_brnd_LocalLinks .gsfx_brnd_LocalSeperator { background-image: url(/library/images/support/cn/topnav_section.png); background-repeat: no-repeat; background-position: center center; width: 5px; padding: 0px; } #gsfx_brnd_LocalLinks a { float: left; display: block; color: #fff; text-decoration: none; text-align: center; padding-left: 10px; } #gsfx_brnd_LocalLinks a span { height: 100%; float: left; padding: 0 20px 0 10px; } #gsfx_brnd_LocalLinks .gsfx_brnd_LocalLinkSelected a { background-image: url(/library/images/support/cn/topnav.png); background-repeat: no-repeat; background-position: left bottom; } #gsfx_brnd_LocalLinks .gsfx_brnd_LocalLinkSelected a span { cursor: hand; background-image: url(/library/images/support/cn/topnav.png); background-repeat: no-repeat; background-position: right bottom; } #gsfx_brnd_LocalLinks a:hover { background-image: url(/library/images/support/cn/topnav.png); background-repeat: no-repeat; background-position: left top; } #gsfx_brnd_LocalLinks a:hover span { cursor: hand; background-image: url(/library/images/support/cn/topnav.png); background-repeat: no-repeat; background-position: right top; } /*END LocalToolBar*/ /*END Header, Footer and Local Tool Bar*/ /*START Left Nav*/ #leftColumn { width: 182px; } #gsfx_lnav_LeftNav { padding-top: 5px; font-size: 70%; background: url('/library/images/support/cn/gsfx_lnav_bgrd.gif') repeat-y; } #gsfx_lnav_LeftNav ul { margin: 0px; padding: 0px 2px; } #gsfx_lnav_LeftNav li { position: relative; display: inherit; list-style-type: none; margin: 0px 0px; padding: 1px 0px; height: 100%; width: 100%; } #gsfx_lnav_LeftNav li ul { position: absolute; visibility: hidden; left: 100%; margin: -4px -6px; padding: 3px 0px; display: inherit; border: 1px solid #C5DAE8; background: #EBF4FA; white-space: nowrap; } #gsfx_lnav_LeftNav li ul li ul { margin-left: 0px; margin-right: 0px; } #gsfx_lnav_LeftNav li ul li a { padding-right: 25px; } #gsfx_lnav_LeftNavBottom { background: url('/library/images/support/cn/gsfx_lnav_bgrd_end.png') no-repeat top right; width: 182px; height: 70px; } #gsfx_lnav_LeftNav .gsfx_lnav_title { font-weight: bold; color: #000000; padding: 0px 4px; } #gsfx_lnav_LeftNav a { color: #07679A; text-decoration: none; padding: 2px 4px; margin: 0px 4px; display: inherit; display: block; background: url('/library/images/support/cn/gsfx_lnav_highlight.gif') no-repeat -25px 0px; } .gsfx_lnav_menulink { height: 100%; width: 10px; right: 5px; position: absolute; margin: 0px 0px; background: url('/library/images/support/cn/gsfx_lnav_flyout_arrow_left.gif') no-repeat 0px 3px; } #gsfx_lnav_LeftNav li ul li a .gsfx_lnav_menulink { right: 1px; } #gsfx_lnav_LeftNav a:hover, #gsfx_lnav_LeftNav li.gsfx_lnav_submenu li.gsfx_lnav_nomenu a:hover { background: url('/library/images/support/cn/gsfx_lnav_highlight.gif') repeat-x bottom; padding: 1px 3px; border: 1px solid #ACE0F8; } #gsfx_lnav_LeftNav li.gsfx_lnav_submenu ul li.gsfx_lnav_nomenu a:hover, #gsfx_lnav_LeftNav li.gsfx_lnav_submenu ul li.gsfx_lnav_submenu a:hover { padding-right: 24px; } #gsfx_lnav_LeftNav .gsfx_lnav_lncenter { text-align: center; } #gsfx_lnav_LeftNav .gsfx_lnav_upmenu ul, #gsfx_lnav_LeftNav .gsfx_lnav_dropmenu .gsfx_lnav_upmenu ul { visibility: hidden; display: none; } #gsfx_lnav_LeftNav .gsfx_lnav_dropmenu ul { visibility: visible; display: block; } #gsfx_lnav_LeftNav .gsfx_lnav_iframeMatte { position: absolute; top: -1px; left: -1px; filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0); } /*END Left Nav*/ /*MEDIA PRINT*/ #gsfx_brnd_MSLogoPrint { display: none; margin-bottom: 10px; } @media print { .gsfx_brnd_CornerContainer, #gsfx_brnd_LocalToolBar, #gsfx_brnd_ToolbarShadow, #gsfx_brnd_FooterLinkContainer, #gsfx_brnd_HeaderContainer, #gsfx_brnd_PageHeaderImage, #gsfx_brnd_SiteHeaderImageContainer, #gsfx_brnd_MSLogo, #gsfx_brnd_legacy_MSLogo, #gsfx_brnd_SiteHeader { display: none !important; } #tocDiv *, #gsfx_brnd_MSLogoPrint { display: block !important; } #gsfx_brnd_PageWrapper { width: auto; } #gsfx_brnd_ContentContainer { padding: 0px; } .gsfx_brnd_SideBorder { border: 0px; } } /*End Media Print*/ ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=surveytrigger.css Content-Type: text/css; name=surveytrigger.css Content-Location: http://support.microsoft.com/common/css/fx/surveytrigger.css?80 Content-Transfer-Encoding: 8bit .surveyInvitationDiv { visibility: hidden; position: absolute; top: 0; left: 0; background-color: white; margin: 0px; width: 819px; z-index: 200; } .surveyInvitationDiv iframe { width: 819px; border: solid 1px #10598a; filter: progid:DXImageTransform.Microsoft.BasicImage(enabled=false); /*a dummy filter to avoid flicking while moving an element with png images, no actual effect*/ } @media print { .surveyInvitationDiv { display: none!important; } } ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=surveycookieutil.js Content-Type: application/x-javascript; name=surveycookieutil.js Content-Location: http://support.microsoft.com/common/script/fx/surveycookieutil.js?80 Content-Transfer-Encoding: Base64 aWYgKCF3aW5kb3cuTVMpDQp7DQoJTVMgPSB7fTsNCn0NCg0KaWYgKCFNUy5TdXBw b3J0KQ0Kew0KCU1TLlN1cHBvcnQgPSB7fTsNCn0NCg0KaWYgKCFNUy5TdXBwb3J0 LkZtcykNCnsNCglNUy5TdXBwb3J0LkZtcyA9IHt9Ow0KfQ0KDQppZiAoIU1TLlN1 cHBvcnQuRm1zLkNvb2tpZVV0aWwpDQp7DQoJTVMuU3VwcG9ydC5GbXMuQ29va2ll VXRpbCA9IHsNCg0KCQlnZXRDb29raWU6IGZ1bmN0aW9uKGtleSkNCgkJew0KCQkJ dmFyIGVudGl0aWVzID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iik7DQoJCQlm b3IgKHZhciBpID0gMDsgaSA8IGVudGl0aWVzLmxlbmd0aDsgKytpKQ0KCQkJew0K CQkJCXZhciBqID0gZW50aXRpZXNbaV0uaW5kZXhPZigiPSIpOw0KCQkJCXZhciBz ID0gZW50aXRpZXNbaV0uc3Vic3RyaW5nKDAsIGopOw0KCQkJCWlmIChzICE9ICIi ICYmIChzID09IGtleSB8fCBzID09ICIgIiArIGtleSkpDQoJCQkJew0KCQkJCQly ZXR1cm4gZW50aXRpZXNbaV0uc3Vic3RyaW5nKGogKyAxKTsNCgkJCQl9DQoJCQl9 DQoJCQlyZXR1cm4gbnVsbDsNCgkJfSwNCg0KCQlzZXRDb29raWU6IGZ1bmN0aW9u KGtleSwgdmFsdWUsIGV4cGlyZXMsIGRvbWFpbiwgcGF0aCkNCgkJew0KCQkJZG9t YWluID0gZG9tYWluIHx8ICh0eXBlb2YoZ0Nvb2tpZURvbWFpbikgIT0gInVuZGVm aW5lZCIgPyAoZ0Nvb2tpZURvbWFpbiB8fCBkb2N1bWVudC5kb21haW4pIDogZG9j dW1lbnQuZG9tYWluKTsNCgkJCXBhdGggPSBwYXRoIHx8ICIvIjsNCgkJCWRvY3Vt ZW50LmNvb2tpZSA9IGtleSArICI9IiArIHZhbHVlICsgIjsgZG9tYWluPSIgKyBk b21haW4gKyAiOyBwYXRoPSIgKyBwYXRoICsgIjsgIiArIChleHBpcmVzID8gKCJl eHBpcmVzPSIgKyBleHBpcmVzLnRvR01UU3RyaW5nKCkgKyAiOyIpIDogIiIpOw0K CQl9LA0KDQoJCXNldFNlc3Npb25Db29raWU6IGZ1bmN0aW9uKGtleSwgdmFsdWUs IGRvbWFpbiwgcGF0aCkNCgkJew0KCQkJdGhpcy5zZXRDb29raWUoa2V5LCB2YWx1 ZSwgbnVsbCwgZG9tYWluLCBwYXRoKTsNCgkJfSwNCg0KCQlyZW1vdmVDb29raWU6 IGZ1bmN0aW9uKGtleSwgZG9tYWluLCBwYXRoKQ0KCQl7DQoJCQl0aGlzLnNldENv b2tpZShrZXksICIiLCAobmV3IERhdGUoMCwgMCwgMCkpLCBkb21haW4sIHBhdGgp Ow0KCQl9LA0KDQoJCS8va2V5PXN1YmtleTE9dmFsdWUxJnN1YmtleTI9dmFsdWUy DQoJCWdldFN1YkNvb2tpZTogZnVuY3Rpb24oa2V5LCBzdWJrZXkpDQoJCXsNCgkJ CXZhciB2YWx1ZSA9IHRoaXMuZ2V0Q29va2llKGtleSk7DQoJCQlpZiAodmFsdWUp DQoJCQl7DQoJCQkJdmFyIGVudGl0aWVzID0gdmFsdWUuc3BsaXQoIiYiKTsNCgkJ CQlmb3IgKHZhciBpID0gMDsgaSA8IGVudGl0aWVzLmxlbmd0aDsgKytpKQ0KCQkJ CXsNCgkJCQkJdmFyIGogPSBlbnRpdGllc1tpXS5pbmRleE9mKCI9Iik7DQoJCQkJ CXZhciBzID0gZW50aXRpZXNbaV0uc3Vic3RyaW5nKDAsIGopOw0KCQkJCQlpZiAo cyAhPSAiIiAmJiAocyA9PSBzdWJrZXkpKQ0KCQkJCQl7DQoJCQkJCQlyZXR1cm4g ZW50aXRpZXNbaV0uc3Vic3RyaW5nKGogKyAxKTsNCgkJCQkJfQ0KCQkJCX0NCgkJ CX0NCgkJCXJldHVybiBudWxsOw0KCQl9LA0KDQoJCXNldFN1YkNvb2tpZTogZnVu Y3Rpb24oa2V5LCBzdWJrZXksIHN1YnZhbHVlLCBleHBpcmVzLCBkb21haW4sIHBh dGgpDQoJCXsNCgkJCXZhciB2YWx1ZSA9IHRoaXMuZ2V0Q29va2llKGtleSk7DQoJ CQlpZiAoIXZhbHVlKQ0KCQkJew0KCQkJCXZhbHVlID0gc3Via2V5ICsgJz0nICsg c3VidmFsdWU7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJdmFyIGNvb2tpZWFy cmF5ID0gdmFsdWUuc3BsaXQoJyYnKTsNCgkJCQl2YXIgaSA9IDA7DQoJCQkJZm9y ICg7IGkgPCBjb29raWVhcnJheS5sZW5ndGg7IGkrKykNCgkJCQl7DQoJCQkJCXZh bHVlID0gY29va2llYXJyYXlbaV07DQoJCQkJCXZhciBjb29raWVuYW1lID0gdmFs dWUuc3Vic3RyaW5nKDAsIHZhbHVlLmluZGV4T2YoJz0nKSk7DQoJCQkJCWlmIChz dWJrZXkgPT0gY29va2llbmFtZSkNCgkJCQkJew0KCQkJCQkJY29va2llYXJyYXlb aV0gPSBjb29raWVuYW1lICsgJz0nICsgc3VidmFsdWU7DQoJCQkJCQlicmVhazsN CgkJCQkJfQ0KCQkJCX0NCgkJCQlpZiAoaSA+PSBjb29raWVhcnJheS5sZW5ndGgp DQoJCQkJew0KCQkJCQljb29raWVhcnJheVtpXSA9IHN1YmtleSArICc9JyArIHN1 YnZhbHVlOw0KCQkJCX0NCgkJCQl2YWx1ZSA9IGNvb2tpZWFycmF5LmpvaW4oJyYn KTsNCgkJCX0NCgkJCXRoaXMuc2V0Q29va2llKGtleSwgdmFsdWUsIGV4cGlyZXMs IGRvbWFpbiwgcGF0aCk7DQoJCX0NCgl9DQp9 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=surveytrigger.js Content-Type: application/x-javascript; name=surveytrigger.js Content-Location: http://support.microsoft.com/common/script/fx/surveytrigger.js?80 Content-Transfer-Encoding: Base64 aWYgKCF3aW5kb3cuTVMpDQp7DQoJTVMgPSB7fTsNCn0NCg0KaWYgKCFNUy5TdXBw b3J0KQ0Kew0KCU1TLlN1cHBvcnQgPSB7fTsNCn0NCg0KaWYgKCFNUy5TdXBwb3J0 LkZtcykNCnsNCglNUy5TdXBwb3J0LkZtcyA9IHt9Ow0KfQ0KDQppZiAoIU1TLlN1 cHBvcnQuRm1zKQ0Kew0KCU1TLlN1cHBvcnQuRm1zID0ge307DQp9DQoNCmlmICgh TVMuU3VwcG9ydC5GbXMuU3VydmV5VHJpZ2dlcikNCnsNCglNUy5TdXBwb3J0LkZt cy5TdXJ2ZXlUcmlnZ2VyID0gZnVuY3Rpb24oZW50aXR5LCBjb25maWcpDQoJew0K CQl2YXIgY29va2llRG9tYWluID0gY29uZmlnID8gY29uZmlnLnNpdGUuY29va2ll RG9tYWluIDogdHlwZW9mIChnQ29va2llRG9tYWluKSAhPSAidW5kZWZpbmVkIiA/ IGdDb29raWVEb21haW4gOiBkb2N1bWVudC5kb21haW47DQoNCgkJdmFyIGFuaW1h dGlvbkZQUyA9IDI0Ow0KCQl2YXIgc3RkdXJhdGlvbiA9IE1hdGgucm91bmQoMTAw MCAqICgxIC8gYW5pbWF0aW9uRlBTKSk7DQoNCgkJdmFyIGZyYW1lQ291bnQgPSBl bnRpdHkuQW5pbWF0aW9uRHVyYXRpb24gKiBhbmltYXRpb25GUFM7DQoNCgkJdmFy IG1vdmVtZW50UFggPSBmYWxzZTsNCgkJdmFyIHN1cnZleUhlaWdodDsNCgkJdmFy IHN1cnZleVdpZHRoOw0KCQl2YXIgc3VydmV5T2JqOw0KCQl2YXIgZml4ZWRQb3Np dGlvbiA9IGZhbHNlOw0KCQl2YXIgZG9jdW1lbnRFbGVtZW50ID0gbnVsbDsNCg0K CQlmdW5jdGlvbiBJc0JhY2tDb21wYXQoKQ0KCQl7DQoJCQlpZiAoZG9jdW1lbnQu Y29tcGF0TW9kZSA9PSAiQmFja0NvbXBhdCIpDQoJCQl7DQoJCQkJcmV0dXJuIHRy dWU7DQoJCQl9DQoNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWZ1bmN0aW9u IGNoZWNrRnJlcXVlbmN5KCkNCgkJew0KCQkJcmV0dXJuICghaXNOYU4oZW50aXR5 LkZyZXF1ZW5jeSkpICYmIChlbnRpdHkuRnJlcXVlbmN5ID4gMCkgJiYgKE1hdGgu Zmxvb3IoTWF0aC5yYW5kb20oKSAqIGVudGl0eS5GcmVxdWVuY3kpID09IDApOw0K CQl9DQoNCgkJZnVuY3Rpb24gaXNUcmlnZ2VyU3VwcHJlc3NlZChpZCkNCgkJew0K CQkJdmFyIHRyaWdnZXJzID0gTVMuU3VwcG9ydC5GbXMuQ29va2llVXRpbC5nZXRT dWJDb29raWUoJ2Ztc21lbW8nLCAnc3QnKSB8fCAiIjsNCgkJCWlmICgodHJpZ2dl cnMgKyAnfCcpLmluZGV4T2YoJ3wnICsgaWQgKyAnfCcpID4gLTEpIHJldHVybiB0 cnVlOw0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJZnVuY3Rpb24gc3VwcHJl c3NUcmlnZ2dlcihpZCkNCgkJew0KCQkJdmFyIHRyaWdnZXJzID0gTVMuU3VwcG9y dC5GbXMuQ29va2llVXRpbC5nZXRTdWJDb29raWUoJ2Ztc21lbW8nLCAnc3QnKSB8 fCAiIjsNCgkJCXRyaWdnZXJzICs9ICd8JyArIGlkOw0KCQkJTVMuU3VwcG9ydC5G bXMuQ29va2llVXRpbC5zZXRTdWJDb29raWUoJ2Ztc21lbW8nLCAnc3QnLCB0cmln Z2VycywgbnVsbCwgY29va2llRG9tYWluKTsNCgkJfQ0KDQoJCXRoaXMuZ2V0U3Vy dmV5SWQgPSBmdW5jdGlvbigpDQoJCXsNCgkJCXJldHVybiBwYXJzZUludChlbnRp dHkuU2NpZC5zcGxpdCgiOyIsIDMpWzJdKSB8fCAwOw0KCQl9DQoNCgkJdGhpcy5n ZXRTdXJ2ZXlMYW5ndWFnZUNvZGUgPSBmdW5jdGlvbigpDQoJCXsNCgkJCXJldHVy biBlbnRpdHkuU2NpZC5zcGxpdCgiOyIsIDMpWzFdIHx8ICJFTiI7DQoJCX0NCg0K CQlmdW5jdGlvbiBnZXRQcmV2ZW50TXVsdGlwbGVSZXNwb25zZXNDb29raWVLZXko c3VydmV5SWQsIGxhbmd1YWdlKQ0KCQl7DQoJCQlyZXR1cm4gKCJmbXNwbXJfIiAr IHN1cnZleUlkICsgIl8iICsgbGFuZ3VhZ2UpLnRvVXBwZXJDYXNlKCk7DQoJCX0N Cg0KCQkvLyB0cnVlIGluZGljYXRlIHRvIGJlIGV4ZWN1dGVkLg0KCQkvLyBmYWxz ZSBpbmRpY2F0ZSBldmFsdWF0aW9uIG9ubHkuDQoNCgkJdGhpcy50cmlnZ2VySW5p dCA9IGZ1bmN0aW9uKGV4ZWN1dGluZykNCgkJew0KCQkJLy8gU2luY2UgdGhlIHBh Z2Ugd2lsbCBiZSBjYWNoZWQgYnkgd2ViIHNlcnZlciwgc28gZXZlbiB3ZSBoYXZl IHN1cHByZXNzZWQgYSBzcGVjaWZpYyB0cmlnZ2VyLA0KCQkJLy8gaXQgd2lsbCBz dGlsbCBiZSBjb250YWluZWQgaW4gdGhlIHBhZ2Ugd2hlbiB3ZSBicm93c2UgdGhp cyBwYWdlIGZvciB0aGUgc2Vjb25kIHRpbWUuDQoJCQkvLyBUaHVzIHdlIGhhdmUg dG8gY2hlY2sgaWYgaXQgaGFzIGJlZW4gc3VwcHJlc3NlZCBhdCBjbGllbnQgc2lk ZS4NCgkJCWlmIChpc0RvbWFpblRyYWNraW5nKCkgfHwgKGVudGl0eS5JbnRlcnZh bFR5cGUgPT0gJ3Nlc3Npb24nICYmIGlzVHJpZ2dlclN1cHByZXNzZWQoZW50aXR5 LlRyaWdnZXJJZCkpKQ0KCQkJew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCg0K CQkJdmFyIG9wdE91dCA9IE1TLlN1cHBvcnQuRm1zLkNvb2tpZVV0aWwuZ2V0Q29v a2llKCJmbXNPcHRPdXQiICsgZW50aXR5LlNpdGUudG9VcHBlckNhc2UoKSk7DQoJ CQlpZiAob3B0T3V0ICYmIG9wdE91dCA9PSAiMSIpDQoJCQl7DQoJCQkJcmV0dXJu IGZhbHNlOw0KCQkJfQ0KDQoJCQl2YXIgc3VydmV5SWQgPSB0aGlzLmdldFN1cnZl eUlkKCk7DQoNCgkJCWlmIChzdXJ2ZXlJZCAhPSAwKQ0KCQkJew0KCQkJCXZhciBr ZXkgPSBnZXRQcmV2ZW50TXVsdGlwbGVSZXNwb25zZXNDb29raWVLZXkodGhpcy5n ZXRTdXJ2ZXlJZCgpLCB0aGlzLmdldFN1cnZleUxhbmd1YWdlQ29kZSgpKTsNCg0K CQkJCWlmIChNUy5TdXBwb3J0LkZtcy5Db29raWVVdGlsLmdldENvb2tpZShrZXkp ID09ICIxIikNCgkJCQl7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9 DQoNCgkJCXZhciBpc0ZvbGxvd1VwID0gZW50aXR5LkludGVydmFsVHlwZSA9PSAn Zm9sbG93dXAnID8gdHJ1ZSA6IGZhbHNlOw0KDQoJCQlpZiAoaXNGb2xsb3dVcCkN CgkJCXsNCgkJCQl2YXIgZm9sbG93dXBDb29raWVLZXkgPSAiZm1zZm9sbG93dXBz IiArIGVudGl0eS5Db29raWVEZWY7DQoJCQkJaWYgKCFNUy5TdXBwb3J0LkZtcy5D b29raWVVdGlsLmdldENvb2tpZShmb2xsb3d1cENvb2tpZUtleSkpDQoJCQkJew0K CQkJCQkvLyBwYWdlIGlzIGxvYWRlZCBmcm9tIGNhY2hlDQoJCQkJCXJldHVybiBm YWxzZTsNCgkJCQl9DQoJCQkJZWxzZSBpZiAoZXhlY3V0aW5nKQ0KCQkJCXsNCgkJ CQkJLy8gcmVtb3ZlIGZvbGxvdy11cCBjb29raWUNCgkJCQkJTVMuU3VwcG9ydC5G bXMuQ29va2llVXRpbC5yZW1vdmVDb29raWUoZm9sbG93dXBDb29raWVLZXksIGNv b2tpZURvbWFpbik7DQoJCQkJfQ0KCQkJfQ0KDQoJCQl2YXIgTWlsaURheSA9IDg2 NDAwMDAwOw0KCQkJdmFyIG1hdHVyaXR5ID0gMDsNCgkJCXZhciBjdXJEYXRlID0g bmV3IERhdGUoKTsNCgkJCXZhciB2aXNpdHMgPSBNUy5TdXBwb3J0LkZtcy5Db29r aWVVdGlsLmdldENvb2tpZShlbnRpdHkuQ29va2llRGVmKTsNCg0KCQkJdmFyIHBh cnRzID0gbnVsbDsNCg0KCQkJaWYgKHZpc2l0cykNCgkJCXsNCgkJCQlwYXJ0cyA9 IHZpc2l0cy5zcGxpdCgnXycpOw0KCQkJfQ0KDQoJCQl2YXIgZXhwaXJlcyA9IG5l dyBEYXRlKCk7DQoJCQlleHBpcmVzLnNldEZ1bGxZZWFyKGV4cGlyZXMuZ2V0RnVs bFllYXIoKSArIDEwKTsNCg0KCQkJdmFyIHJldDsNCgkJCWlmICgoIXZpc2l0cykg fHwgcGFydHMubGVuZ3RoICE9IDMgfHwgaXNOYU4ocGFydHNbMF0pKQ0KCQkJew0K CQkJCU1TLlN1cHBvcnQuRm1zLkNvb2tpZVV0aWwuc2V0Q29va2llKGVudGl0eS5D b29raWVEZWYsICcxXzBfMCcsIGV4cGlyZXMsIGNvb2tpZURvbWFpbik7DQoJCQkJ cGFydHMgPSBbIjAiLCAiMCIsICIwIl07DQoJCQl9DQoNCgkJCXZhciBvcmlnRGF0 ZSA9IHBhcnNlSW50KHBhcnRzWzFdKTsNCgkJCXZpc2l0cyA9IHBhcnNlSW50KHBh cnRzWzBdKTsNCgkJCWlmDQoJCQkoDQoJCQkJKGV4ZWN1dGluZyB8fCBjaGVja0Zy ZXF1ZW5jeSgpKSAmJg0KCQkJCSh2aXNpdHMgPj0gbWF0dXJpdHkpICYmIChpc0Zv bGxvd1VwIHx8IGZtc1N1cnZleUV4cGlyZWQoZW50aXR5LkV4cGlyYXRpb24pKQ0K CQkJKQ0KCQkJew0KCQkJCWlmIChleGVjdXRpbmcpDQoJCQkJCU1TLlN1cHBvcnQu Rm1zLkNvb2tpZVV0aWwuc2V0Q29va2llKGVudGl0eS5Db29raWVEZWYsIHZpc2l0 cyArIDEgKyAnXycgKyBjdXJEYXRlLmdldFRpbWUoKSAvIE1pbGlEYXkgKyAnXycg KyBlbnRpdHkuRXhwaXJhdGlvbiwgZXhwaXJlcywgY29va2llRG9tYWluKTsNCgkJ CQlyZXQgPSB0cnVlOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCWlmIChleGVj dXRpbmcpDQoJCQkJCU1TLlN1cHBvcnQuRm1zLkNvb2tpZVV0aWwuc2V0Q29va2ll KGVudGl0eS5Db29raWVEZWYsIHZpc2l0cyArIDEgKyAnXycgKyBwYXJ0c1sxXSAr ICdfJyArIHBhcnRzWzJdLCBleHBpcmVzLCBjb29raWVEb21haW4pOw0KCQkJCXJl dCA9IGZhbHNlOw0KCQkJfQ0KDQoJCQlpZiAoIXJldCAmJiBlbnRpdHkuSW50ZXJ2 YWxUeXBlID09ICdzZXNzaW9uJykNCgkJCQlzdXBwcmVzc1RyaWdnZ2VyKGVudGl0 eS5UcmlnZ2VySWQpOw0KCQkJcmV0dXJuIHJldDsNCgkJfQ0KDQoJCXRoaXMuZmly ZVRyaWdnZXIgPSBmdW5jdGlvbigpDQoJCXsNCgkJCXZhciBxdWVyeXMgPSB7DQoJ CQkJIlNjaWQiOiBlbnRpdHkuU2NpZCwNCgkJCQkiWHNsIjogZW50aXR5LlhzbCwN CgkJCQkiU2l0ZSI6IGVudGl0eS5TaXRlLA0KCQkJCSJUb29sIjogZW50aXR5LlRv b2xiYXIsDQoJCQkJIlRoZW1lIjogZW50aXR5LlRoZW1lLA0KCQkJCSJTRCI6IGVu dGl0eS5TaXRlLA0KCQkJCSJTdXJ2ZXlTdHlsZSI6IGVudGl0eS5TdXJ2ZXlTdHls ZSwNCgkJCQkiU2l0ZVJlZ2lvbiI6IGVudGl0eS5SZWdpb24sDQoJCQkJIlBhZ2VX aWR0aCI6IGVudGl0eS5QYWdlV2lkdGgsDQoJCQkJIlBhZ2VIZWlnaHQiOiBlbnRp dHkuUGFnZUhlaWdodCwNCgkJCQkiVXJsIjogZW50aXR5LlJlZmVycmluZ1VSTCwN CgkJCQkiUDAiOiBlbnRpdHkuUGFyYW1ldGVyc1swXSwNCgkJCQkiUDEiOiBlbnRp dHkuUGFyYW1ldGVyc1sxXSwNCgkJCQkiUDIiOiBlbnRpdHkuUGFyYW1ldGVyc1sy XSwNCgkJCQkiUDMiOiBlbnRpdHkuUGFyYW1ldGVyc1szXSwNCgkJCQkiUDQiOiBl bnRpdHkuUGFyYW1ldGVyc1s0XSwNCgkJCQkiUDUiOiBlbnRpdHkuUGFyYW1ldGVy c1s1XSwNCgkJCQkiUDYiOiBlbnRpdHkuUGFyYW1ldGVyc1s2XSwNCgkJCQkiUDci OiBlbnRpdHkuUGFyYW1ldGVyc1s3XSwNCgkJCQkiUDgiOiBlbnRpdHkuUGFyYW1l dGVyc1s4XSwNCgkJCQkiUDkiOiBlbnRpdHkuUGFyYW1ldGVyc1s5XQ0KCQkJfTsN Cg0KCQkJaWYgKCF3aW5kb3cuX21zX3N1cHBvcnRfZm1zX3V0aWxpdHlfcGFja2Fn ZVF1ZXJ5U3RyaW5nKQ0KCQkJew0KCQkJCXdpbmRvdy5fbXNfc3VwcG9ydF9mbXNf dXRpbGl0eV9wYWNrYWdlUXVlcnlTdHJpbmcgPSBmdW5jdGlvbihvYmopDQoJCQkJ ew0KCQkJCQl2YXIgcXVlcnlTdHJpbmcgPSAiIjsNCgkJCQkJZm9yICh2YXIga2V5 IGluIG9iaikNCgkJCQkJew0KCQkJCQkJaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShr ZXkpKQ0KCQkJCQkJew0KCQkJCQkJCXF1ZXJ5U3RyaW5nICs9ICImIiArIGtleSAr ICI9IiArIGVuY29kZVVSSUNvbXBvbmVudChvYmpba2V5XSk7DQoJCQkJCQl9DQoJ CQkJCX0NCgkJCQkJcmV0dXJuIHF1ZXJ5U3RyaW5nOw0KCQkJCX0NCgkJCX0NCg0K CQkJdmFyIFN1cnZleVVSTCA9IGVudGl0eS5QYXRoOw0KDQoJCQlpZiAoY29uZmln KQ0KCQkJew0KCQkJCVN1cnZleVVSTCA9IGNvbmZpZy5wcm90b2NvbCArICIvLyIg KyBjb25maWcuaG9zdCArIFN1cnZleVVSTDsNCgkJCX0NCg0KCQkJdmFyIGZ1bGxV UkwgPSBTdXJ2ZXlVUkwgKyAiPyIgKyBfbXNfc3VwcG9ydF9mbXNfdXRpbGl0eV9w YWNrYWdlUXVlcnlTdHJpbmcocXVlcnlzKTsNCg0KCQkJLy8gcGFyYW1ldGVycyBh ZGRlZCBpbiBGTVMgNC4wDQoJCQlpZiAodHlwZW9mIFN0YXRzRG90TmV0ICE9ICJ1 bmRlZmluZWQiICYmIFN0YXRzRG90TmV0KQ0KCQkJew0KCQkJCS8vIFRPRE86IHdl IG5lZWQgYWRkIHRoZXNlIGFkZHRpb25hbCBwYXJhbWV0ZXJzIHBsdWdpbiB0cmln Z2VyIGNvbmZpZ3VyYXRpb24gc25pcHBldA0KCQkJCWZ1bGxVUkwgKz0gJyZjdD0n ICsgKFN0YXRzRG90TmV0LmNvbnRlbnRUeXBlIHx8ICIiKTsNCgkJCQlmdWxsVVJM ICs9ICcmY2M9JyArIChTdGF0c0RvdE5ldC5Db250ZW50Q3VsdHVyZSB8fCAiIik7 DQoJCQkJZnVsbFVSTCArPSAnJmNpZD0nICsgKFN0YXRzRG90TmV0LmNvbnRlbnRJ ZCB8fCAiIik7DQoJCQkJZnVsbFVSTCArPSAnJmNsY2lkPScgKyAoU3RhdHNEb3RO ZXQuY29udGVudExuIHx8ICIiKTsNCgkJCQlmdWxsVVJMICs9ICcmc2M9JyArIChT dGF0c0RvdE5ldC5TaXRlQ3VsdHVyZSB8fCAiIik7DQoJCQkJZnVsbFVSTCArPSAn JnNiaWQ9JyArIChTdGF0c0RvdE5ldC5zaXRlQnJhbmRJZCB8fCAiIik7DQoJCQkJ ZnVsbFVSTCArPSAnJnNzaWQ9JyArIChTdGF0c0RvdE5ldC5zc0lkIHx8ICIiKTsN CgkJCQlmdWxsVVJMICs9ICcmc3N2ZXI9JyArIChTdGF0c0RvdE5ldC5Tc1ZlcnNp b24gfHwgIiIpOw0KCQkJCWZ1bGxVUkwgKz0gJyZjcD0nICsgT3V0cHV0RW5jb2Rl cl9FbmNvZGVVcmwoU3RhdHNEb3ROZXQuQ29udGVudFByb3BlcnRpZXMgfHwgIiIp Ow0KCQkJfQ0KDQoJCQlpZiAoY29uZmlnKQ0KCQkJew0KCQkJCXF1ZXJ5cyA9IHsN CgkJCQkJJ2N0JzogY29uZmlnLmNvbnRlbnQudHlwZSwNCgkJCQkJJ2NjJzogY29u ZmlnLmNvbnRlbnQuY3VsdHVyZSwNCgkJCQkJJ2NpZCc6IGNvbmZpZy5jb250ZW50 LmlkLA0KCQkJCQknY2xjaWQnOiBjb25maWcuY29udGVudC5sY2lkLA0KCQkJCQkn c2MnOiBjb25maWcuc2l0ZS5jdWx0dXJlLA0KCQkJCQknc2JpZCc6IGNvbmZpZy5z aXRlLmJyYW5kLA0KCQkJCQknc3NpZCc6IGNvbmZpZy5zaXRlLmlkLA0KCQkJCQkn c3N2ZXInOiBjb25maWcuc2l0ZS52ZXJzaW9uLA0KCQkJCQknY3AnOiBjb25maWcu Y29udGVudC5wcm9wZXJ0aWVzDQoJCQkJfTsNCg0KCQkJCWZ1bGxVUkwgKz0gX21z X3N1cHBvcnRfZm1zX3V0aWxpdHlfcGFja2FnZVF1ZXJ5U3RyaW5nKHF1ZXJ5cyk7 DQoJCQl9DQoNCgkJCWZ1bGxVUkwgKz0gJyZ0cmlnZ2VyPScgKyBlbnRpdHkuVHJp Z2dlcklkOw0KDQoJCQlpZiAoZW50aXR5LkFsdFN0eWxlKQ0KCQkJew0KCQkJCWZ1 bGxVUkwgKz0gIiZhbHRTdHlsZT0iICsgZW50aXR5LkFsdFN0eWxlICsgIiZyZW5k ZXJPcHRpb249IiArIGVudGl0eS5SZW5kZXJPcHRpb247DQoJCQl9DQoNCgkJCWlm IChlbnRpdHkuRW1haWxTdHlsZSA9PSAxKQ0KCQkJCWZ1bGxVUkwgPSBmdWxsVVJM ICsgJyZlbWFpbHN1cnZleWlkPScgKyBlbnRpdHkuRW1haWxTdXJ2ZXlJRCArICcm c2Vzc2lvbmlkPS0xJzsNCg0KCQkJaWYgKGVudGl0eS5EaXNwbGF5SW50cm9QYWdl ICE9ICcxJykNCgkJCQlmdWxsVVJMID0gZnVsbFVSTCArICcmc2hvd3BhZ2U9MSc7 DQoJCQlpZiAoZW50aXR5LlN1cnZleVN0eWxlID09IG51bGwpDQoJCQkJZW50aXR5 LlN1cnZleVN0eWxlID0gInBvcHVwIjsNCgkJCWVudGl0eS5TdXJ2ZXlTdHlsZSA9 IGVudGl0eS5TdXJ2ZXlTdHlsZS50b0xvd2VyQ2FzZSgpOw0KCQkJaWYgKGVudGl0 eS5TdXJ2ZXlTdHlsZSA9PSAiZW1iZWRkZWQiKQ0KCQkJew0KCQkJCWlmIChlbnRp dHkuRW1iZWRTdXJ2ZXlQcm9tcHQgPT0gJ25vdGhpbmcnKQ0KCQkJCQl3aW5kb3cu bG9jYXRpb24uaHJlZiA9IGZ1bGxVUkw7DQoJCQkJZWxzZQ0KCQkJCXsNCgkJCQkJ aWYgKGVudGl0eS5FbWJlZFN1cnZleVByb21wdCAhPSAiIiAmJiB3aW5kb3cuc2Ny ZWVuVG9wIDwgMTAwMDAgJiYgd2luZG93LmNvbmZpcm0oZW1iZWRTdXJ2ZXlQcm9t cHQpID09IHRydWUpIC8vdW5sb2FkIGV2ZW50DQoJCQkJCXsNCgkJCQkJCS8vIHdl IGNhbiBub3QgZG8gYSB3aW5kb3cubG9jYXRpb24uaHJlZiBmb3IgdGhlIHJlZGly ZWN0aW9uIGJlY2F1c2Ugd2hlbiByZWZyZXNoaW5nIHRoZSB3aW5kb3cgdGhhdCBy ZWRpcmVjdGlvbiB3b24ndCB3b3JrDQoJCQkJCQkvLyBPcHRpbWFsbHkgaWYgaXQg aXMgcmVmcmVzaGluZywgd2Ugc2hvdWxkIG5vdCBkbyBzdXJ2ZXkuIEJ1dCB3ZSBo YXZlIG5vIHdheSB0byBrbm93IGl0IGlzIHJlZnJlc2hpbmcgd2luZG93LCBzbyB3 ZSBrZWVwIHRoZSBiZWhhdmlvciBzYW1lDQoJCQkJCQlkb2N1bWVudC53cml0ZWxu KCc8aHRtbD48Ym9keT4nKTsNCgkJCQkJCWRvY3VtZW50LndyaXRlbG4oJzxmb3Jt IG5hbWU9InRoZV9mb3JtIiBhY3Rpb249IicgKyBmdWxsVVJMICsgJyIgbWV0aG9k PSJwb3N0Ij48XC9mb3JtPicpOw0KCQkJCQkJZG9jdW1lbnQud3JpdGVsbigiPFwv Ym9keT48XC9odG1sPiIpOw0KCQkJCQkJZG9jdW1lbnQudGhlX2Zvcm0uc3VibWl0 KCk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJZnVs bFVSTCA9IGZ1bGxVUkwudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCJzdXJ2ZXkuYXNw eCIsICJzdXJ2ZXlpbnZpdGUuYXNweCIpOw0KCQkJCWlmIChlbnRpdHkuRGlzcGxh eUludHJvUGFnZSA9PSAnMScpDQoJCQkJCWZ1bGxVUkwgPSBmdWxsVVJMICsgJyZz aG93cGFnZT0xJzsgLy9hbHdheXMgYWRkICZzaG93cGFnZT0xDQoJCQkJaWYgKGRv Y3VtZW50LmxvY2F0aW9uLmhyZWYudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdmcj0x JykgPiAwKQ0KCQkJCQlmdWxsVVJMID0gZnVsbFVSTCArICcmZnI9MSc7DQoJCQkJ aWYgKGVudGl0eS5FdmVudCA9PSAnb251bmxvYWQnKQ0KCQkJCQlmdWxsVVJMID0g ZnVsbFVSTCArICcmb251bmxvYWQ9MSc7DQoJCQkJaWYgKGVudGl0eS5PcHRPdXQg PT0gMSkNCgkJCQl7DQoJCQkJCWZ1bGxVUkwgPSBmdWxsVVJMICsgIiZvcHRvdXQ9 MSI7DQoJCQkJfQ0KCQkJCWZpcmVTdXJ2ZXkoZnVsbFVSTCk7DQoJCQl9DQoJCX0N Cg0KCQlmdW5jdGlvbiBmaXJlU3VydmV5KGZ1bGxVUkwpDQoJCXsNCgkJCXByZXNl bnRTdXJ2ZXkoZnVsbFVSTCk7DQoJCX0NCg0KCQlmdW5jdGlvbiBzdXJ2ZXlEaXYo ZnVsbFVSTCkNCgkJew0KCQkJdmFyIHNkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu dCgiZGl2Iik7DQoJCQlzZC5pZCA9ICJzdXJ2ZXlEaXZCbG9jayI7DQoJCQlzZC5j bGFzc05hbWUgPSAic3VydmV5SW52aXRhdGlvbkRpdiI7DQoJCQl2YXIgc2kgPSBk b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsNCgkJCXNpLnNjcm9sbGlu ZyA9ICdubyc7DQoJCQlzaS5mcmFtZUJvcmRlciA9IDA7DQoJCQlzaS5uYW1lID0g ImZtc0ludml0YXRpb24iOw0KCQkJc2kuaWQgPSAiZm1zSW52aXRhdGlvbiI7DQoN CgkJCWlmICghY29uZmlnKQ0KCQkJew0KCQkJCWlmIChlbnRpdHkuSW52aXRhdGlv bldpZHRoKQ0KCQkJCXsNCgkJCQkJdmFyIHdpZHRoID0gZW50aXR5Lkludml0YXRp b25XaWR0aCArICJweCI7DQoJCQkJCXNpLnN0eWxlLndpZHRoID0gd2lkdGg7DQoJ CQkJCXNkLnN0eWxlLndpZHRoID0gd2lkdGg7DQoJCQkJfQ0KCQkJCXNpLnNyYyA9 IGZ1bGxVUkw7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJdmFyIHdpZHRoID0g Y29uZmlnLmludml0YXRpb24ud2lkdGggfHwgKChlbnRpdHkuSW52aXRhdGlvbldp ZHRoIHx8IDYwMCkgKyAicHgiKTsNCgkJCQlzaS5zdHlsZS53aWR0aCA9IHdpZHRo Ow0KCQkJCXNkLnN0eWxlLndpZHRoID0gd2lkdGg7DQoNCgkJCQlmdW5jdGlvbiBi dWlsZFBsdWdpblRyaWdnZXJJbnZpdGF0aW9uKCkNCgkJCQl7DQoJCQkJCS8vIHZl cmlmeSBleHBsaWNpdCBkb21haW4gYWdhaW4sIGJlY2F1c2UgZG9jdW1lbnQuZG9t YWluIG1heSBoYXMgYmVlbiBjaGFuZ2VkIGFmdGVyIHRoZSB0cmlnZ2VyIHNuaXBw ZXQNCgkJCQkJdmFyIGV4cGxpY2l0RG9tYWluID0gKHdpbmRvdy5sb2NhdGlvbi5o b3N0bmFtZSAhPSBkb2N1bWVudC5kb21haW4pID8gdHJ1ZSA6IGNvbmZpZy5zaXRl LmV4cGxpY2l0RG9tYWluOw0KDQoJCQkJCXZhciBwYXJ0cyA9IGVudGl0eS5TY2lk LnNwbGl0KCI7Iik7DQoNCgkJCQkJY29uZmlnLmVudGl0eSA9IGVudGl0eTsNCg0K CQkJCQl2YXIgc3VydmV5Q29uZmlnID0gew0KCQkJCQkJInRhcmdldCI6ICJTdXJ2 ZXlJbnZpdGF0aW9uQ29udGVudCIsDQoJCQkJCQkidGVtcGxhdGUiOiAiZGVmYXVs dCIsDQoJCQkJCQkiZW5hYmxlTFRTIjogZmFsc2UsDQoJCQkJCQkic3VydmV5Ijog ew0KCQkJCQkJCSJob3N0IjogY29uZmlnLmhvc3QsDQoJCQkJCQkJImxhbmd1YWdl IjogcGFydHNbMV0sDQoJCQkJCQkJImlkIjogcGFydHNbMl0sDQoJCQkJCQkJImlz UlRMIjogZW50aXR5LklzUlRMLA0KCQkJCQkJCSJmZWF0dXJlcyI6IFsiVGl0bGUs SW50cm9kdWN0aW9uLCIgKyAoZW50aXR5Lk9wdE91dCA/ICJPcHRPdXQsIiA6ICIi KSArICJBY2NlcHRCdXR0b24sRGVjbGluZUJ1dHRvbiIsICIiXSwNCgkJCQkJCQki aXNJbnZpdGF0aW9uIjogMQ0KCQkJCQkJfSwNCgkJCQkJCSJwYXJhbWV0ZXJzIjog Y29uZmlnLnBhcmFtZXRlcnMsDQoJCQkJCQkic2l0ZSI6IHsNCgkJCQkJCQkibmFt ZSI6IGNvbmZpZy5zaXRlLm5hbWUsDQoJCQkJCQkJImN1bHR1cmUiOiBjb25maWcu c2l0ZS5jdWx0dXJlLA0KCQkJCQkJCSJsY2lkIjogY29uZmlnLnNpdGUubGNpZCwN CgkJCQkJCQkiaWQiOiBwYXJzZUludChjb25maWcuc2l0ZS5pZCkgfHwgMCwNCgkJ CQkJCQkiYnJhbmQiOiBwYXJzZUludChjb25maWcuc2l0ZS5icmFuZCkgfHwgMCwN CgkJCQkJCQkidmVyc2lvbiI6IGNvbmZpZy5zaXRlLnZlcnNpb24gfHwgIiIsDQoJ CQkJCQkJImV4cGxpY2l0RG9tYWluIjogZXhwbGljaXREb21haW4sDQoJCQkJCQkJ ImNvb2tpZURvbWFpbiI6IGNvbmZpZy5zaXRlLmNvb2tpZURvbWFpbg0KCQkJCQkJ fSwNCgkJCQkJCSJjb250ZW50Ijogew0KCQkJCQkJCSJ0eXBlIjogY29uZmlnLmNv bnRlbnQudHlwZSwNCgkJCQkJCQkiaWQiOiBjb25maWcuY29udGVudC5pZCwNCgkJ CQkJCQkiY3VsdHVyZSI6IGNvbmZpZy5jb250ZW50LmN1bHR1cmUsDQoJCQkJCQkJ ImxjaWQiOiBjb25maWcuY29udGVudC5sY2lkLA0KCQkJCQkJCSJwcm9wZXJ0aWVz IjogY29uZmlnLmNvbnRlbnQucHJvcGVydGllcywNCgkJCQkJCQkiYWdncmVnYXRl SWQiOiBjb25maWcuY29udGVudC5hZ2dyZWdhdGVJZA0KCQkJCQkJfSwNCgkJCQkJ CSJ0cmlnZ2VyQ29uZmlnIjogY29uZmlnDQoJCQkJCX07DQoNCgkJCQkJdmFyIHN0 eWxlID0gIjxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIj5ib2R5e2RpcmVjdGlvbjoi ICsgKGVudGl0eS5Jc1JUTCA/ICJydGwiIDogImx0ciIpICsgIn08L3N0eWxlPiI7 DQoJCQkJCXZhciBoZWFkZXIgPSAiPGRpdiBpZD1cImhlYWRlclwiPiIgKyBjb25m aWcuaW52aXRhdGlvbi5oZWFkZXIgKyAiPC9kaXY+IjsNCgkJCQkJdmFyIGZvb3Rl ciA9ICI8ZGl2IGlkPVwiZm9vdGVyXCI+IiArIGNvbmZpZy5pbnZpdGF0aW9uLmZv b3RlciArICI8L2Rpdj4iOw0KCQkJCQl2YXIgc2NyaXB0ID0gZXhwbGljaXREb21h aW4gPyAoIjxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPmRvY3VtZW50 LmRvbWFpbj1cIiIgKyBkb2N1bWVudC5kb21haW4gKyAiXCI7PC9zY3JpIiArICJw dD4iKSA6ICIiOw0KDQoJCQkJCXZhciBpZnJhbWVIdG1sID0gIjwhRE9DVFlQRSBo dG1sIFBVQkxJQyBcIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwv L0VOXCIgXCJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10 cmFuc2l0aW9uYWwuZHRkXCI+IiArDQoJCQkJCQkJCQkJCSI8aHRtbD4iICsNCgkJ CQkJCQkJCQkJCSI8aGVhZD4iICsNCgkJCQkJCQkJCQkJCQlzdHlsZSArDQoJCQkJ CQkJCQkJCQkJc2NyaXB0ICsNCgkJCQkJCQkJCQkJCSI8L2hlYWQ+IiArDQoJCQkJ CQkJCQkJCQkiPGJvZHkgc3R5bGU9XCJtYXJnaW46MFwiPiIgKw0KCQkJCQkJCQkJ CQkJCSI8ZGl2IGlkPVwid3JhcHBlclwiPiIgKw0KCQkJCQkJCQkJCQkJCQloZWFk ZXIgKw0KCQkJCQkJCQkJCQkJCQkiPGRpdiBpZD1cImNvbnRlbnRcIj4iICsNCgkJ CQkJCQkJCQkJCQkJCSI8ZGl2IGlkPVwiU3VydmV5SW52aXRhdGlvbkNvbnRlbnRc Ij48L2Rpdj4iICsNCgkJCQkJCQkJCQkJCQkJIjwvZGl2PiIgKw0KCQkJCQkJCQkJ CQkJCQlmb290ZXIgKw0KCQkJCQkJCQkJCQkJCSI8L2Rpdj4iICsNCgkJCQkJCQkJ CQkJCSI8L2JvZHk+IiArDQoJCQkJCQkJCQkJCQkiPHNjcmlwdCB0eXBlPVwidGV4 dC9qYXZhc2NyaXB0XCIgc3JjID0iICsgY29uZmlnLnByb3RvY29sICsgIi8vIiAr IGNvbmZpZy5ob3N0ICsgIi9jb21tb24vc2NyaXB0L2Z4L3N1cnZleXN0cmFwcGVy LmpzPjwvc2NyIiArICJpcHQ+IiArDQoJCQkJCQkJCQkJCSI8L2h0bWw+IjsNCg0K CQkJCQl2YXIgc3JjID0gImFib3V0OmJsYW5rIjsNCg0KCQkJCQlpZiAoZXhwbGlj aXREb21haW4pDQoJCQkJCXsNCgkJCQkJCWlmICh3aW5kb3cubmF2aWdhdG9yLnVz ZXJBZ2VudC5pbmRleE9mKCJNU0lFIikgPiAtMSB8fCAod2luZG93Lm9wZXJhICYm IHBhcnNlRmxvYXQob3BlcmEudmVyc2lvbigpKSA+PSA5LjUpKQ0KCQkJCQkJew0K CQkJCQkJCU1TLlN1cHBvcnQuRm1zLlN1cnZleVRyaWdnZXIuc3VydmV5Q29uZmln ID0gc3VydmV5Q29uZmlnOw0KCQkJCQkJCU1TLlN1cHBvcnQuRm1zLlN1cnZleVRy aWdnZXIuaWZyYW1lSHRtbCA9IGlmcmFtZUh0bWw7DQoJCQkJCQkJc3JjID0gImph dmFzY3JpcHQ6KGZ1bmN0aW9uKCl7ZG9jdW1lbnQub3BlbigpO2RvY3VtZW50LmRv bWFpbj1cIiIgKyBkb2N1bWVudC5kb21haW4gKyAiXCI7d2luZG93W1wiX21zX3N1 cHBvcnRfZm1zX3N1cnZleUNvbmZpZ1wiXT13aW5kb3cucGFyZW50Lk1TLlN1cHBv cnQuRm1zLlN1cnZleVRyaWdnZXIuc3VydmV5Q29uZmlnO2RvY3VtZW50LndyaXRl KHdpbmRvdy5wYXJlbnQuTVMuU3VwcG9ydC5GbXMuU3VydmV5VHJpZ2dlci5pZnJh bWVIdG1sKTtkb2N1bWVudC5jbG9zZSgpO30pKCk7IjsNCgkJCQkJCX0NCgkJCQkJ CWVsc2UgaWYgKHdpbmRvdy5vcGVyYSkNCgkJCQkJCXsNCgkJCQkJCQlzcmMgPSAi amF2YXNjcmlwdDooZnVuY3Rpb24oKXtkb2N1bWVudC5vcGVuKCk7ZG9jdW1lbnQu ZG9tYWluPVwiIiArIGRvY3VtZW50LmRvbWFpbiArICJcIjtkb2N1bWVudC5jbG9z ZSgpO30pKCkiOw0KCQkJCQkJfQ0KCQkJCQl9DQoNCgkJCQkJc2kuc3JjID0gc3Jj Ow0KCQkJCQljb25maWcuZnVsbFN1cnZleVVybCA9IGZ1bGxVUkw7DQoNCgkJCQkJ ZnVuY3Rpb24gc2V0dXBJbnZpdGF0aW9uRnJhbWUoKQ0KCQkJCQl7DQoJCQkJCQl0 cnkNCgkJCQkJCXsNCgkJCQkJCQl2YXIgZnJhbWVXaW5kb3cgPSB3aW5kb3dbImZt c0ludml0YXRpb24iXTsNCgkJCQkJCQl2YXIgZnJhbWVEb2N1bWVudCA9IGZyYW1l V2luZG93LmRvY3VtZW50Ow0KCQkJCQkJCWZyYW1lRG9jdW1lbnQub3BlbigpOw0K CQkJCQkJCWZyYW1lV2luZG93WyJfbXNfc3VwcG9ydF9mbXNfc3VydmV5Q29uZmln Il0gPSBzdXJ2ZXlDb25maWc7DQoJCQkJCQkJZnJhbWVEb2N1bWVudC53cml0ZShp ZnJhbWVIdG1sKTsNCgkJCQkJCQlmcmFtZURvY3VtZW50LmNsb3NlKCk7DQoJCQkJ CQl9DQoJCQkJCQljYXRjaCAoZXgpDQoJCQkJCQl7DQoJCQkJCQkJLy8gaWYgZG9j dW1lbnQuZG9tYWluIHdhcyBjaGFuZ2VkIGFmdGVyIHRyaWdnZXIgc25pcHBldCwg YWNjZXNzIHRoZSBkb2N1bWVudCBtYXkgY2F1c2UgYW4gZXhjZXB0aW9uDQoJCQkJ CQl9DQoJCQkJCX0NCg0KCQkJCQlpZiAoKCFleHBsaWNpdERvbWFpbikgfHwgKHdp bmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUiKSA9PSAtMSkp DQoJCQkJCXsNCgkJCQkJCXNldHVwSW52aXRhdGlvbkZyYW1lKCk7DQoJCQkJCX0N CgkJCQl9DQoNCgkJCQkvLyBzZXRUaW1lb3V0IGlzIHJlcXVpcmVkIGhlcmUgdG8g YWRkcmVzcyBhIGJ1ZyAoNzU4NTUpIG9uIEZpcmVmb3ggMy4wIChub3QgcmVwcm8g b24gRmlyZWZveCAzLjUpDQoJCQkJd2luZG93LnNldFRpbWVvdXQoYnVpbGRQbHVn aW5UcmlnZ2VySW52aXRhdGlvbiwgMCk7DQoJCQl9DQoNCgkJCXNkLmFwcGVuZENo aWxkKHNpKTsNCgkJCWRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChzZCk7DQoN CgkJCXJldHVybiBzZDsNCgkJfQ0KDQoJCWZ1bmN0aW9uIGhJKG5hbWUsIHZhbHVl KQ0KCQl7DQoJCQl2YXIgaW5wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5w dXQiKTsNCgkJCWlucC50eXBlID0gImhpZGRlbiI7DQoJCQlpbnAubmFtZSA9IG5h bWU7DQoJCQlpbnAudmFsdWUgPSB2YWx1ZTsNCgkJCXJldHVybiBpbnA7DQoJCX0N Cg0KCQlmdW5jdGlvbiBkZWNsaW5lU3VydmV5KGVsKQ0KCQl7DQoJCQl3aGlsZSAo ZWwuY2xhc3NOYW1lICE9ICJzdXJ2ZXlJbnZpdGF0aW9uRGl2IikgZWwgPSBlbC5w YXJlbnROb2RlOw0KCQkJZWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbCk7DQoJ CX0NCg0KCQlmdW5jdGlvbiBjbG9zZUVub3VnaChpbnQxLCBpbnQyKQ0KCQl7DQoJ CQlpZiAoTWF0aC5hYnMoaW50MSAtIGludDIpIDw9IG1vdmVtZW50UFgpIHJldHVy biB0cnVlOw0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJZnVuY3Rpb24gY2Fs Y1hZKGN1cnJlbnQsIHRhcmdldCkNCgkJew0KCQkJaWYgKCFjbG9zZUVub3VnaChj dXJyZW50LCB0YXJnZXQpKQ0KCQkJew0KCQkJCXZhciBkZWx0YSA9IGN1cnJlbnQg LSB0YXJnZXQ7DQoJCQkJdmFyIGRpciA9IGRlbHRhIC8gTWF0aC5hYnMoZGVsdGEp Ow0KCQkJCXJldHVybiBjdXJyZW50IC0gbW92ZW1lbnRQWCAqIGRpcjsNCgkJCX0N Cg0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJZnVuY3Rpb24gaXNSVEwoKQ0K CQl7DQoJCQlpZiAoKCFmaXhlZFBvc2l0aW9uKSAmJiBkb2N1bWVudEVsZW1lbnQu Y3VycmVudFN0eWxlICYmIGRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUuYmxv Y2tEaXJlY3Rpb24gPT0gInJ0bCIpDQoJCQl7DQoJCQkJcmV0dXJuIHRydWU7DQoJ CQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9 DQoNCgkJZnVuY3Rpb24gZ2V0RnJhbWVYKCkNCgkJew0KCQkJdmFyIHggPSBwYXJz ZUludChpc1JUTCgpID8gc3VydmV5T2JqLnN0eWxlLnJpZ2h0IDogc3VydmV5T2Jq LnN0eWxlLmxlZnQpOw0KCQkJcmV0dXJuIGlzTmFOKHgpID8gMCA6IHg7DQoJCX0N Cg0KCQlmdW5jdGlvbiBnZXRGcmFtZVkoKQ0KCQl7DQoJCQl2YXIgeSA9IHBhcnNl SW50KHN1cnZleU9iai5zdHlsZS50b3ApOw0KCQkJcmV0dXJuIGlzTmFOKHkpID8g MCA6IHk7DQoJCX0NCg0KCQlmdW5jdGlvbiBnZXRUYXJnZXRGcmFtZVgoKQ0KCQl7 DQoJCQlyZXR1cm4gZ2V0V2luZG93Q2VudGVyWCgpIC0gc3VydmV5V2lkdGggLyAy Ow0KCQl9DQoNCgkJZnVuY3Rpb24gZ2V0VGFyZ2V0RnJhbWVZKCkNCgkJew0KCQkJ cmV0dXJuIGdldFdpbmRvd0NlbnRlclkoKSAtIHN1cnZleUhlaWdodCAvIDI7DQoJ CX0NCg0KCQlmdW5jdGlvbiBzZXRGcmFtZVgoeCkNCgkJew0KCQkJaWYgKGlzUlRM KCkpDQoJCQl7DQoJCQkJc3VydmV5T2JqLnN0eWxlLnJpZ2h0ID0geCArICJweCI7 DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJc3VydmV5T2JqLnN0eWxlLmxlZnQg PSB4ICsgInB4IjsNCgkJCX0NCgkJfQ0KDQoJCWZ1bmN0aW9uIHNldEZyYW1lWSh5 KQ0KCQl7DQoJCQlzdXJ2ZXlPYmouc3R5bGUudG9wID0geSArICJweCI7DQoJCX0N Cg0KCQlmdW5jdGlvbiBtb3ZlRnJhbWVUbyh4LCB5KQ0KCQl7DQoJCQlzZXRGcmFt ZVgoeCk7DQoJCQlzZXRGcmFtZVkoeSk7DQoJCX0NCg0KCQlmdW5jdGlvbiBnZXRT Y3JvbGxYKCkNCgkJew0KCQkJaWYgKCFmaXhlZFBvc2l0aW9uKQ0KCQkJew0KCQkJ CWlmIChpc1JUTCgpKQ0KCQkJCXsNCgkJCQkJcmV0dXJuIChzdGFuZGFyZERvY3Vt ZW50LnNjcm9sbFdpZHRoIC0gc3RhbmRhcmREb2N1bWVudC5jbGllbnRXaWR0aCAt IHN0YW5kYXJkRG9jdW1lbnQuc2Nyb2xsTGVmdCk7DQoJCQkJfQ0KCQkJCWVsc2UN CgkJCQl7DQoJCQkJCXJldHVybiBzdGFuZGFyZERvY3VtZW50LnNjcm9sbExlZnQ7 DQoJCQkJfQ0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCXJldHVybiAwOw0KCQkJ fQ0KCQl9DQoNCgkJZnVuY3Rpb24gZ2V0U2Nyb2xsWSgpDQoJCXsNCgkJCXJldHVy biAoIWZpeGVkUG9zaXRpb24pID8gc3RhbmRhcmREb2N1bWVudC5zY3JvbGxUb3Ag OiAwOw0KCQl9DQoNCgkJZnVuY3Rpb24gZ2V0V2luZG93Q2VudGVyWCgpDQoJCXsN CgkJCXJldHVybiBNYXRoLnJvdW5kKHN0YW5kYXJkRG9jdW1lbnQuY2xpZW50V2lk dGggLyAyICsgZ2V0U2Nyb2xsWCgpKTsNCgkJfQ0KDQoJCWZ1bmN0aW9uIGdldFdp bmRvd0NlbnRlclkoKQ0KCQl7DQoJCQlyZXR1cm4gTWF0aC5yb3VuZChzdGFuZGFy ZERvY3VtZW50LmNsaWVudEhlaWdodCAvIDIgKyBnZXRTY3JvbGxZKCkpOw0KCQl9 DQoNCgkJZnVuY3Rpb24gYW5pbWF0ZVN1cnZleSgpDQoJCXsNCgkJCWNhbGNGUFMo KTsNCgkJCXZhciB4ID0gY2FsY1hZKGdldEZyYW1lWCgpLCBnZXRUYXJnZXRGcmFt ZVgoKSk7DQoJCQl2YXIgeSA9IGNhbGNYWShnZXRGcmFtZVkoKSwgZ2V0VGFyZ2V0 RnJhbWVZKCkpOw0KCQkJaWYgKHggIT0gZmFsc2UgfHwgeSAhPSBmYWxzZSkNCgkJ CXsNCgkJCQlpZiAoeCAhPSBmYWxzZSkNCgkJCQl7DQoJCQkJCXNldEZyYW1lWCh4 KTsNCgkJCQl9DQoNCgkJCQlpZiAoeSAhPSBmYWxzZSkNCgkJCQl7DQoJCQkJCXNl dEZyYW1lWSh5KTsNCgkJCQl9DQoNCgkJCQlzZXRUaW1lb3V0KGFuaW1hdGVTdXJ2 ZXksIHN0ZHVyYXRpb24pOw0KCQkJfQ0KCQl9DQoNCgkJZnVuY3Rpb24gZ2V0UG9z aXRpb25EZWx0YVgoKQ0KCQl7DQoJCQlyZXR1cm4gTWF0aC5hYnMoZ2V0VGFyZ2V0 RnJhbWVYKCkgLSBnZXRGcmFtZVgoKSk7DQoJCX0NCg0KCQlmdW5jdGlvbiBnZXRQ b3NpdGlvbkRlbHRhWSgpDQoJCXsNCgkJCXJldHVybiBNYXRoLmFicyhnZXRUYXJn ZXRGcmFtZVkoKSAtIGdldEZyYW1lWSgpKTsNCgkJfQ0KDQoJCWZ1bmN0aW9uIGZi cChwMSwgcDIpDQoJCXsNCgkJCWlmICghcDEgfHwgcDEgPCAxKQ0KCQkJew0KCQkJ CXJldHVybiBwMjsNCgkJCX0NCgkJCXJldHVybiBwMTsNCgkJfQ0KDQoJCWZ1bmN0 aW9uIGNhbGNGUFMoKQ0KCQl7DQoJCQl2YXIgeCA9IGdldFBvc2l0aW9uRGVsdGFY KCk7DQoJCQl2YXIgeSA9IGdldFBvc2l0aW9uRGVsdGFZKCk7DQoNCgkJCWlmICh5 ID4geCkgeCA9IHk7DQoNCgkJCW1vdmVtZW50UFggPSBNYXRoLmNlaWwoeCAvIGZy YW1lQ291bnQpOw0KCQl9DQoNCgkJd2luZG93LnBsYWNlU3VydmV5ID0gZnVuY3Rp b24oKQ0KCQl7DQoJCQlzdXJ2ZXlXaWR0aCA9IGZicChzdXJ2ZXlPYmouY2xpZW50 V2lkdGgsIHN1cnZleU9iai5vZmZzZXRXaWR0aCk7DQoJCQlzdXJ2ZXlIZWlnaHQg PSBmYnAoc3VydmV5T2JqLmNsaWVudEhlaWdodCwgc3VydmV5T2JqLm9mZnNldEhl aWdodCk7DQoJCQlzZXRGcmFtZVgoZ2V0VGFyZ2V0RnJhbWVYKCkpOw0KCQkJc3Vy dmV5T2JqLnN0eWxlLnRvcCA9IDA7DQoJCQlzdXJ2ZXlPYmouc3R5bGUudmlzaWJp bGl0eSA9ICJ2aXNpYmxlIjsNCg0KCQkJaWYgKHdpbmRvdy5hZGRFdmVudExpc3Rl bmVyKQ0KCQkJew0KCQkJCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUi LCBhbmltYXRlU3VydmV5LCBmYWxzZSk7DQoJCQkJc3VydmV5T2JqLnN0eWxlLnBv c2l0aW9uID0gImZpeGVkIjsNCgkJCQlmaXhlZFBvc2l0aW9uID0gdHJ1ZTsNCgkJ CX0NCgkJCWVsc2UgaWYgKHdpbmRvdy5hdHRhY2hFdmVudCkNCgkJCXsNCgkJCQl3 aW5kb3cuYXR0YWNoRXZlbnQoIm9ucmVzaXplIiwgYW5pbWF0ZVN1cnZleSk7DQoJ CQkJd2luZG93LmF0dGFjaEV2ZW50KCJvbnNjcm9sbCIsIGFuaW1hdGVTdXJ2ZXkp Ow0KCQkJfQ0KDQoJCQlhbmltYXRlU3VydmV5KCk7DQoJCX0NCg0KCQlmdW5jdGlv biBwcmVzZW50U3VydmV5KGZ1bGxVUkwpDQoJCXsNCgkJCWRvY3VtZW50RWxlbWVu dCA9IGRvY3VtZW50LmJvZHkgPyBkb2N1bWVudC5ib2R5IDogZG9jdW1lbnQuZG9j dW1lbnRFbGVtZW50Ow0KCQkJLy8gdGhpcyBvYmplY3QgaXMgZm9yIGdldHRpbmcg Y2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCBldGMgaW4gZGlmZmVyZW50IERPQ1RZ UEVzLg0KCQkJc3RhbmRhcmREb2N1bWVudCA9IElzQmFja0NvbXBhdCgpID8gZG9j dW1lbnRFbGVtZW50IDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Ow0KCQkJaWYg KGRvY3VtZW50RWxlbWVudCkNCgkJCXsNCgkJCQlzdXJ2ZXlPYmogPSBzdXJ2ZXlE aXYoZnVsbFVSTCk7DQoJCQl9DQoJCX0NCg0KDQoJCWlmICh0aGlzLnRyaWdnZXJJ bml0KGZhbHNlKSkNCgkJew0KCQkJdmFyIHRyaWdnZXIgPSB0aGlzOw0KCQkJc2V0 VGltZW91dCgNCgkJCQkJZnVuY3Rpb24gKCkNCgkJCQkJew0KCQkJCQkJaWYgKHRy aWdnZXIudHJpZ2dlckluaXQodHJ1ZSkpDQoJCQkJCQl7DQoJCQkJCQkJdHJpZ2dl ci5maXJlVHJpZ2dlcigpOw0KCQkJCQkJfQ0KCQkJCQl9LA0KCQkJCQllbnRpdHku RGVsYXkNCgkJCQkpOw0KCQl9DQoJCWVsc2UgaWYgKHR5cGVvZiAoYWN0aXZhdGVT aXRlU3VydmV5KSAhPSAidW5kZWZpbmVkIikNCgkJew0KCQkJYWN0aXZhdGVTaXRl U3VydmV5KCk7DQoJCX0NCg0KCX0NCn0NCg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=search.js Content-Type: application/x-javascript; name=search.js Content-Location: http://support.microsoft.com/common/script/gsfx/search.js?80 Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gc3VibWl0U2ltcGxlU2VhcmNoKG4sdCl7dmFyIHU9ZnVuY3Rpb24o KXtpZihzdXBwb3J0ZWRTaXRlcyYmc3VwcG9ydGVkU2l0ZXMubGVuZ3RoPjApcmV0 dXJuIHN1cHBvcnRlZFNpdGVzW2N1cnJlbnRTaXRlSW5kZXhdfSxpPXUoKSxyO2lm KGk9PW51bGwpcmV0dXJuO24mJm4ubGVuZ3RoIT0wfHwobj1pLlVybCkscj1pLkNs aWNrQWN0aW9uO3N3aXRjaChyKXtjYXNlIENsaWNrQWN0aW9uLkZvcm1TdWJtaXQ6 c3JjaF9zZXRjb29raWV2YWwoImxxdWVyeSIsVW5pY29kZUZpeHVwKGVzY2FwZShq UXVlcnkudHJpbSh0KSkpKSxTdGF0c0RvdE5ldC5ldmVudENvbGxlY3Rpb25JZD1T ZXRMb2dDb2xsZWN0aW9uQml0KFN0YXRzRG90TmV0LmV2ZW50Q29sbGVjdGlvbklk LDYpLHNlYXJjaFN1Ym1pdD0xLCQoIiNmcm1zcmNoIikuZ2V0KDApLnN1Ym1pdCgp O2JyZWFrO2Nhc2UgQ2xpY2tBY3Rpb24uQWpheENhbGw6cmV0dXJuIHNyY2hfc2V0 Y29va2lldmFsKCJscXVlcnkiLFVuaWNvZGVGaXh1cChlc2NhcGUoalF1ZXJ5LnRy aW0odCkpKSksd2luZG93Ll9ncHMuY2hhbmdlUXVlcnkoe3F1ZXJ5OnR9KSwhMTtj YXNlIENsaWNrQWN0aW9uLlJlZGlyZWN0OmRlZmF1bHQ6U3RhdHNEb3ROZXQuT3B0 aW9uQ29sbGVjdGlvbklkPVNldExvZ0NvbGxlY3Rpb25CaXQoU3RhdHNEb3ROZXQu T3B0aW9uQ29sbGVjdGlvbklkLDMzKSxTdGF0c0RvdE5ldC50YXJnZXRVcmw9bit0 LHQ9d2luZG93LmVuY29kZVVSSUNvbXBvbmVudD9lbmNvZGVVUklDb21wb25lbnQo dCk6T3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwodCksZG9jdW1lbnQubG9jYXRpb24u aHJlZj1uK3R9cmV0dXJufWZ1bmN0aW9uIFN1Ym1pdFNlYXJjaChuKXt2YXIgdSxp LHQscjtlbGVtPSQoIiNmcm1hU3JjaCIpLmdldCgwKS5xdWVyeSxzcmNoX3NldGNv b2tpZXZhbCgibHF1ZXJ5IixVbmljb2RlRml4dXAoZXNjYXBlKGpRdWVyeS50cmlt KGVsZW0udmFsdWUpKSkpO2lmKCQoIltuYW1lPWNhdGFsb2ddIikuZ2V0KDApIT1u dWxsKWZvcihzPTA7czwkKCJbbmFtZT1jYXRhbG9nXSIpLmxlbmd0aDtzKyspaWYo JCgiW25hbWU9Y2F0YWxvZ10iKS5nZXQocykudHlwZSE9InNlbGVjdC1vbmUiKXtp ZigkKCJbbmFtZT1jYXRhbG9nXSIpLmdldChzKS5jaGVja2VkKXtpPW4ucXVlcnku dmFsdWUsaT1qUXVlcnkudHJpbShpKSxpPXdpbmRvdy5lbmNvZGVVUklDb21wb25l bnQ/ZW5jb2RlVVJJQ29tcG9uZW50KGkpOk91dHB1dEVuY29kZXJfRW5jb2RlVXJs KGkpO2lmKCQoIltuYW1lPWNhdGFsb2ddIikuZ2V0KHMpLnZhbHVlPT0ibXNjIily ZXR1cm4gU3RhdHNEb3ROZXQuT3B0aW9uQ29sbGVjdGlvbklkPVNldExvZ0NvbGxl Y3Rpb25CaXQoU3RhdHNEb3ROZXQuT3B0aW9uQ29sbGVjdGlvbklkLDMzKSx1PW1z Y29tdXJsK2ksZG9jdW1lbnQubG9jYXRpb24uaHJlZj11LCExO2lmKCQoIltuYW1l PWNhdGFsb2ddIikuZ2V0KHMpLnZhbHVlPT0ibXNuIilyZXR1cm4gU3RhdHNEb3RO ZXQuT3B0aW9uQ29sbGVjdGlvbklkPVNldExvZ0NvbGxlY3Rpb25CaXQoU3RhdHNE b3ROZXQuT3B0aW9uQ29sbGVjdGlvbklkLDMzKSx1PW1zbnVybCtpLFN0YXRzRG90 TmV0LnRhcmdldFVybD11LGRvY3VtZW50LmxvY2F0aW9uLmhyZWY9dSwhMTtzcmNo X3NldGNvb2tpZXZhbCgiYWRjYXRhbG9nIixlc2NhcGUoJCgiW25hbWU9Y2F0YWxv Z10iKS5nZXQocykudmFsdWUpKX19ZWxzZSB0PSQoIltuYW1lPWNhdGFsb2ddIiks dCYmdC5vcHRpb25zJiYocj10Lm9wdGlvbnNbdC5zZWxlY3RlZEluZGV4XS52YWx1 ZSxyIT0iIiYmc3JjaF9zZXRjb29raWV2YWwoImFkY2F0YWxvZyIscikpO2Vsc2Ug dD0kKCIjY2F0YWxvZyIpLmdldCgwKSx0JiZ0Lm9wdGlvbnMmJihyPXQub3B0aW9u c1t0LnNlbGVjdGVkSW5kZXhdLnZhbHVlLHIhPSIiJiZzcmNoX3NldGNvb2tpZXZh bCgiYWRjYXRhbG9nIixyKSk7U2F2ZVNyY2hTdGF0ZSghMCksU3RhdHNEb3ROZXQu ZXZlbnRDb2xsZWN0aW9uSWQ9U2V0TG9nQ29sbGVjdGlvbkJpdChTdGF0c0RvdE5l dC5ldmVudENvbGxlY3Rpb25JZCw3KSxQYWdlU3VibWl0PTF9ZnVuY3Rpb24gU2F2 ZVNyY2hTdGF0ZShuKXt2YXIgdCxyLHUsZixlO2lmKFBhZ2VTdWJtaXQ9PT0xKXJl dHVybjtuPT09ITAmJih0PSQoIiNmcm1hU3JjaCIpLmdldCgwKS5xdWVyeSxzcmNo X3NldGNvb2tpZXZhbCgibHF1ZXJ5IixVbmljb2RlRml4dXAoZXNjYXBlKGpRdWVy eS50cmltKHQudmFsdWUpKSkpKSx0PSQoIltuYW1lPWNhdGFsb2ddIiksdCYmdC5s ZW5ndGgmJnQudHlwZSE9InNlbGVjdC1vbmUiJiZTYXZlUmFkaW9TdGF0ZSh0LCJj YXRhbG9nIikscj0iIix1PSIiO2lmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1l KWZvcih0PWRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJhc3QiKSxpPTA7aTx0 Lmxlbmd0aDtpKyspe2lmKHRbaV0uZGlzYWJsZWQpY29udGludWU7Zj0kKCIjIit0 W2ldLnZhbHVlKyJyb3ciKS5nZXQoMCksZiYmKGYuc3R5bGUuZGlzcGxheT09ImJs b2NrInx8Zi5zdHlsZS5kaXNwbGF5PT0iIik/dFtpXS5jaGVja2VkPyhyKz0iYWQi K3RbaV0udmFsdWUrIj0xfCIsdSs9dFtpXS52YWx1ZSsiLCIpOnIrPSJhZCIrdFtp XS52YWx1ZSsiPTB8Ijp0W2ldLnZhbHVlPSIifWlmKG9wdEVsZW1zKXtvcHRpb25z PW9wdEVsZW1zLnNwbGl0KCJ8Iik7aWYob3B0aW9ucyE9bnVsbClmb3IoaT0wO2k8 b3B0aW9ucy5sZW5ndGg7aSsrKXQ9JCgiIyIrb3B0aW9uc1tpXS50b1N0cmluZygp KS5nZXQoMCksdCYmKGU9JCgiIyIrdC5hdHRyaWJ1dGVzLl9wYXJlbnRpZC52YWx1 ZSkuZ2V0KDApLGUuY2hlY2tlZCYmKHQuY2hlY2tlZD8ocis9ImFkIitvcHRpb25z W2ldKyI9MXwiLHUrPW9wdGlvbnNbaV0rIiwiKTpyKz0iYWQiK29wdGlvbnNbaV0r Ij0wfCIpKX1zcmNoX3NldGNvb2tpZXZhbCgiYWRyZXNvdXJjZSIsdSksc3JjaF9z ZXRjb29raWV2YWwoImFkb3B0IixyKX1mdW5jdGlvbiBJbml0U3JjaCgpe3ZhciBp LG4scix0O251bGw9PSQoIiNjYXRhbG9nIikuZ2V0KDApJiYobj1kb2N1bWVudC5j cmVhdGVFbGVtZW50KCJzcGFuIiksbi5pbm5lckhUTUw9IjxpbnB1dCB0eXBlPSdo aWRkZW4nIGlkPSdjYXRhbG9nJyBuYW1lPSdjYXRhbG9nJyAvPiIsaT0kKCIjZnJt c3JjaCIpLmdldCgwKSxpLmFwcGVuZENoaWxkKG4pKSxuPSQoIiNnc2Z4X2JzcmNo X3F1ZXJ5IikuZ2V0KDApLHR2YWw9JC50cmltKCQobikudmFsKCkpIT09IiI/JC50 cmltKCQobikudmFsKCkpOmZldGNoY29va2lldmFsKCJscXVlcnkiKSx0dmFsJiZ0 dmFsIT09IiImJnR2YWwhPT0iYmxhbmsiPyhuLnZhbHVlPXVuZXNjYXBlKFVuaWNv ZGVGaXh1cChqUXVlcnkudHJpbSh0dmFsKSkpLHNldEtleUJpdChuKSk6JChuKS5i aW5kKCJrZXlwcmVzcyBwYXN0ZSIsc2V0S2V5Qml0KTtpZihhdmxDYXRhbG9ncy5s ZW5ndGg9PTApcmV0dXJuO3I9JCgiI2dzZnhfYnNyY2hfY2F0c2VsIGEiKSx0dmFs PWZldGNoY29va2lldmFsKCJhZGNhdGFsb2ciKTtpZih0dmFsKXtmb3IodHZhbD11 bmVzY2FwZSh0dmFsKSx0PTA7dDxhdmxDYXRhbG9ncy5sZW5ndGg7dCsrKWlmKGF2 bENhdGFsb2dzW3RdLlZhbHVlPT10dmFsKXskKCIjZ3NmeF9jYXRfc2VsX2RpdiIr dCkuY2xpY2soKTticmVha310PT1hdmxDYXRhbG9ncy5sZW5ndGgmJkNoYW5nZUNh dFNlbCgwKX1lbHNlIENoYW5nZUNhdFNlbCgwKX1mdW5jdGlvbiBTYXZlU2ltcGxl U2VhcmNoKG4pe2lmKHNlYXJjaFN1Ym1pdD09MSlyZXR1cm4hMTt2YXIgdD0kKCIj Z3NmeF9ic3JjaF9xdWVyeSIpO3JldHVybiBzdWJtaXRTaW1wbGVTZWFyY2gobix0 LnZhbCgpKSwhMX1mdW5jdGlvbiBJbml0QVNyY2goKXt2YXIgdCxyLHUsbzskKCIj U2VhcmNoRGV0YWlscyIpLmNzcygiZGlzcGxheSIsImJsb2NrIiksJCgiI2RpdnNo b3doaWRlIikuY3NzKCJkaXNwbGF5IiwiYmxvY2siKSwkKCIjc2hvd2hpZGUiKS50 b2dnbGUoZnVuY3Rpb24oKXtyZXR1cm4gJCgiI2RpdnNob3doaWRlIikuYXR0cigi Y2xhc3MiLCJoaWRlTW9yZSIpLCQoIiNzaG93aGlkZSA+IHNwYW4iKS5odG1sKGhp ZGVvcHRpb25zKSwkKCIjYXJyb3dpbWciKS5hdHRyKCJzcmMiLGFycm93SW1hZ2Uu dXApLCQoIi5jYXRhbG9nUmFkaW9MaXN0IikuY3NzKCJtYXJnaW4tYm90dG9tIiwi MzVweCIpLCQoIi5jYXRhbG9nUmFkaW9MaXN0Iikuc2hvdygpLCExfSxmdW5jdGlv bigpe3JldHVybiAkKCIjZGl2c2hvd2hpZGUiKS5hdHRyKCJjbGFzcyIsInNob3dN b3JlIiksJCgiI3Nob3doaWRlICA+IHNwYW4iKS5odG1sKHNob3dvcHRpb25zKSwk KCIjYXJyb3dpbWciKS5hdHRyKCJzcmMiLGFycm93SW1hZ2UuZG93biksJCgiLmNh dGFsb2dSYWRpb0xpc3QiKS5jc3MoIm1hcmdpbi1ib3R0b20iLCIwcHgiKSwkKCIu Y2F0YWxvZ1JhZGlvTGlzdCIpLmhpZGUoKSwhMX0pO3ZhciBuLGY9JCgiI2ZybWFT cmNoIikuZ2V0KDApLHM9cXVlcnlTdHJpbmcucXVlcnk/cXVlcnlTdHJpbmcucXVl cnk6IiIsZT1xdWVyeVN0cmluZy5hc3QhPT11bmRlZmluZWQ/cXVlcnlTdHJpbmcu YXN0OiIiO249Zi5xdWVyeSwkKG4pLmJpbmQoImtleWRvd24iLGZ1bmN0aW9uKG4p e24ud2hpY2g9PT0xMyYmJCgiI2J0blN1Ym1pdCIpLnRyaWdnZXIoImNsaWNrIil9 KSxzPT0iIiYmKHQ9ZmV0Y2hjb29raWV2YWwoImxxdWVyeSIpLHQ/KG4udmFsdWU9 dW5lc2NhcGUoVW5pY29kZUZpeHVwKGpRdWVyeS50cmltKHQpKSksc2V0S2V5Qml0 KG4pKTokKG4pLmJpbmQoImtleXByZXNzIHBhc3RlIixzZXRLZXlCaXQpKSxtdWx0 aWNhdGFsb2c9ITEsbj1mLmNhdGFsb2c7aWYobiE9bnVsbCl7Zm9yKG4ubGVuZ3Ro JiZuLnR5cGUhPSJzZWxlY3Qtb25lIj8oSW5pdFJhZGlvKG4sImNhdGFsb2ciKSxt dWx0aWNhdGFsb2c9ITApOkluaXRTZWxlY3QobiwiY2F0YWxvZyIsImFkIikscj0h MSxpPTA7aTxuLmxlbmd0aDtpKyspbltpXS5jaGVja2VkJiYocj0hMCk7cnx8KG5b MF0uY2hlY2tlZD0hMCl9dT1uZXcgT3B0aW9uQ29va2llO2lmKGU9PSIiKWZvcihu PWRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCJhc3QiKSxqPTA7ajxuLmxlbmd0 aDtqKyspe2lmKG5bal0uZGlzYWJsZWQpY29udGludWU7dD11WyJhZCIrbltqXS52 YWx1ZV0sdCYmKG5bal0uY2hlY2tlZD10PT09IjAiPyExOiEwKX1lbHNlIG89ZS5z cGxpdCgiLCIpLCQoIltuYW1lPWFzdF0iKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5k aXNhYmxlZD09PSExJiYkKHRoaXMpLmF0dHIoImNoZWNrZWQiLCQuaW5BcnJheSh0 aGlzLnZhbHVlLG8pPi0xPyEwOiExKX0pO2lmKG9wdEVsZW1zKWZvcihvcHQ9b3B0 RWxlbXMuc3BsaXQoInwiKSxqPTA7ajxvcHQubGVuZ3RoO2orKyluPSQoIiMiK29w dFtqXS50b1N0cmluZygpKS5nZXQoMCksbiYmKHQ9dVsiYWQiK29wdFtqXV0sdCYm KG4uY2hlY2tlZD10PT0iMCI/ITE6ITApKX1mdW5jdGlvbiBJbml0U2VsZWN0KG4s dCxyKXtpZihuIT1udWxsKXt0dmFsPWZldGNoY29va2lldmFsKHIrdCksdD09IlNQ SUQiJiYodHZhbHx8KHR2YWw9Imdsb2JhbCIpKTtpZih0dmFsKWZvcihpPTA7aTxu Lm9wdGlvbnMubGVuZ3RoO2krKylpZihuLm9wdGlvbnNbaV0udmFsdWU9PXVuZXNj YXBlKHR2YWwpKXtuLnNlbGVjdGVkSW5kZXg9aTticmVha319fWZ1bmN0aW9uIFNl bGVjdFJhZGlvKG4sdCl7aWYodClmb3IoaT0wO2k8bi5sZW5ndGg7aSsrKWlmKG5b aV0udmFsdWU9PXVuZXNjYXBlKHQpKXtuW2ldLmNoZWNrZWQ9ITAsbltpXS5jbGlj aygpO2JyZWFrfX1mdW5jdGlvbiBJbml0UmFkaW9FeChuLHQpe3R2YWw9ZmV0Y2hj b29raWV2YWwoImFkIit0KTtpZih0dmFsKWZvcihpPTA7aTxuLmxlbmd0aDtpKysp aWYobltpXS52YWx1ZT09dW5lc2NhcGUodHZhbCkpaWYoIW5baV0uZGlzYWJsZWQp e25baV0uY2hlY2tlZD0hMCxuW2ldLmNsaWNrKCk7YnJlYWt9fWZ1bmN0aW9uIGRp c2FibGVBbGwobil7aWYobj09bnVsbHx8bj09InVuZGVmaW5lZCJ8fG4udGFnTmFt ZT09bnVsbHx8bi50YWdOYW1lPT0idW5kZWZpbmVkIilyZXR1cm47bi5kaXNhYmxl ZD0hMDtmb3IodmFyIHQ9MDt0PG4uY2hpbGROb2Rlcy5sZW5ndGg7dCsrKWRpc2Fi bGVBbGwobi5jaGlsZE5vZGVzW3RdKX1mdW5jdGlvbiBlbmFibGVBbGwobil7aWYo bj09bnVsbHx8bj09InVuZGVmaW5lZCJ8fG4udGFnTmFtZT09bnVsbHx8bi50YWdO YW1lPT0idW5kZWZpbmVkIilyZXR1cm47bi5kaXNhYmxlZD0hMTtmb3IodmFyIHQ9 MDt0PG4uY2hpbGROb2Rlcy5sZW5ndGg7dCsrKWVuYWJsZUFsbChuLmNoaWxkTm9k ZXNbdF0pfWZ1bmN0aW9uIFNlYXJjaExpdmVDYXRhbG9nKG4sdCl7dmFyIHIsdSxm LGksZTt0PT0xJiYoU3RhdHNEb3ROZXQuT3B0aW9uQ29sbGVjdGlvbklkPVNldExv Z0NvbGxlY3Rpb25CaXQoU3RhdHNEb3ROZXQuT3B0aW9uQ29sbGVjdGlvbklkLDUz KSksdD09MiYmKFN0YXRzRG90TmV0Lk9wdGlvbkNvbGxlY3Rpb25JZD1TZXRMb2dD b2xsZWN0aW9uQml0KFN0YXRzRG90TmV0Lk9wdGlvbkNvbGxlY3Rpb25JZCw1NCkp LCQoIiNsc2MiKS5nZXQoMCkudmFsdWU9dDtpZih0PT0yKXJldHVybiByPSQoIiNj YXRhbG9nIikuZ2V0KDApLHImJnIub3B0aW9ucyYmKHU9ci5vcHRpb25zW3Iuc2Vs ZWN0ZWRJbmRleF0udmFsdWUsdSE9IiImJnNyY2hfc2V0Y29va2lldmFsKCJhZGNh dGFsb2ciLHUpKSxlPSQoIiNmcm1hU3JjaCIpLmdldCgwKS5xdWVyeSxpPSQoIiNm cm1hU3JjaCIpLmdldCgwKS5xdWVyeS52YWx1ZSxpPWpRdWVyeS50cmltKGkpLGk9 d2luZG93LmVuY29kZVVSSUNvbXBvbmVudD9lbmNvZGVVUklDb21wb25lbnQoaSk6 T3V0cHV0RW5jb2Rlcl9FbmNvZGVVcmwoaSksZj1tc251cmwraSxkb2N1bWVudC5s b2NhdGlvbi5ocmVmPWYsITE7U3VibWl0U2VhcmNoKG4pLCQoIiNmcm1hU3JjaCIp LmdldCgwKS5zdWJtaXQoKX1mdW5jdGlvbiBnc2Z4X2JzcmNoX2NoYW5nZUNhdFNl bGVjdGlvbihuKXtDaGFuZ2VDYXRTZWwobiksc3JjaF9zZXRjb29raWV2YWwoImFk Y2F0YWxvZyIsZXNjYXBlKGF2bENhdGFsb2dzW25dLlZhbHVlKSl9ZnVuY3Rpb24g Q2hhbmdlQ2F0U2VsKG4peyQoIiNjYXRhbG9nIikuZ2V0KDApLnZhbHVlPWF2bENh dGFsb2dzW25dLlZhbHVlO2lmKG49PWN1cnJlbnRDYXRTZWxJbmR4KXJldHVybjsk KCIjZ3NmeF9jYXRfc2VsX2RpdiIrbikuY3NzKHsiZm9udC13ZWlnaHQiOiJib2xk IixjdXJzb3I6ImRlZmF1bHQifSksJCgiI2dzZnhfY2F0X3NlbF9pbWciK24pLmNz cyh7ZGlzcGxheToiYmxvY2sifSksJCgiI2dzZnhfY2F0X3NlbF9kaXYiK2N1cnJl bnRDYXRTZWxJbmR4KS5jc3MoeyJmb250LXdlaWdodCI6Im5vcm1hbCIsY3Vyc29y OiJwb2ludGVyIn0pLCQoIiNnc2Z4X2NhdF9zZWxfaW1nIitjdXJyZW50Q2F0U2Vs SW5keCkuY3NzKHtkaXNwbGF5OiJub25lIn0pLGN1cnJlbnRDYXRTZWxJbmR4PW59 ZnVuY3Rpb24gc2VsZWN0RHJvcERvd25JdGVtKG4sdCxpKXtmb3IodmFyIHI9MDty PG4ubGVuZ3RoO3IrKylpZihuW3JdLnZhbHVlPT10KXJldHVybiBuW3JdLnNlbGVj dGVkPSEwLGkhPW51bGwmJmkobikscjtyZXR1cm4tMX1mdW5jdGlvbiBDYXRhbG9n T3B0aW9uX2NsaWNrKG4pe3ZhciByLGksZSxmLHU7dHJ5e2ZvcihyPSQoImlucHV0 IiksaT0wO2k8ci5sZW5ndGg7aSsrKXtlPXJbaV0uYXR0cmlidXRlcy5fcGFyZW50 aWQ7aWYoZSE9bnVsbCYmZSE9InVuZGVmaW5lZCImJmUhPSIiKWlmKGUudmFsdWU9 PW4uaWQpZm9yKHJbaV0uZGlzYWJsZWQ9bi5jaGVja2VkPyExOiEwLGY9cltpXS5w YXJlbnROb2RlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhIiksdT0wO3U8Zi5sZW5n dGg7dSsrKWVuYWJsZV9saW5rKGZbdV0pO2Vsc2UgZm9yKHJbaV0uZGlzYWJsZWQ9 ITAsZj1yW2ldLnBhcmVudE5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKSx1 PTA7dTxmLmxlbmd0aDt1KyspZGlzYWJsZV9saW5rKGZbdV0pfX1jYXRjaChvKXt9 fWZ1bmN0aW9uIGRpc2FibGVfbGluayhuKXtpZigkKG4pLmlzKCI6dmlzaWJsZSIp KXt2YXIgdD0kKG4pLm5leHQoInNwYW5bbmFtZT1zcGFuX3BsYWNlaG9sZGVyXSIp O3QubGVuZ3RoP3Quc2hvdygpOiQobikuYWZ0ZXIoJzxzcGFuIG5hbWU9InNwYW5f cGxhY2Vob2xkZXIiIHN0eWxlPSJjb2xvcjpncmF5Ij4nKyQudHJpbSgkKG4pLmh0 bWwoKSkrIjwvc3Bhbj4iKSwkKG4pLmhpZGUoKX19ZnVuY3Rpb24gZW5hYmxlX2xp bmsobil7JChuKS5pcygiOmhpZGRlbiIpJiYoJChuKS5uZXh0KCJzcGFuW25hbWU9 c3Bhbl9wbGFjZWhvbGRlcl0iKS5oaWRlKCksJChuKS5zaG93KCkpfWZ1bmN0aW9u IFNhdmVSYWRpb1N0YXRlKG4sdCl7Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKyluW2ld LmNoZWNrZWQmJnNyY2hfc2V0Y29va2lldmFsKCJhZCIrdCxlc2NhcGUobltpXS52 YWx1ZSkpfWZ1bmN0aW9uIFNpdGUobix0LGkscil7cmV0dXJue05hbWU6bixVcmw6 dCxTZWxlY3RlZDppLENsaWNrQWN0aW9uOnJ9fWZ1bmN0aW9uIENhdGFsb2cobix0 LGkpe3JldHVybntOYW1lOm4sVmFsdWU6dCxTZWxlY3RlZDppfX1mdW5jdGlvbiBB ZGRHcHNTZWFyY2hUb1NlYXJjaE9wdGlvbnMobix0KXt2YXIgaT0hMSxyOyQoc3Vw cG9ydGVkU2l0ZXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLlVybD09PXQmJihpPSEw LHRoaXMuTmFtZT1uKX0pLGl8fCgkKHN1cHBvcnRlZFNpdGVzKS5lYWNoKGZ1bmN0 aW9uKCl7dGhpcy5TZWxlY3RlZD0hMX0pLHN1cHBvcnRlZFNpdGVzPSQubWVyZ2Uo W25ldyBTaXRlKG4sdCwhMCxDbGlja0FjdGlvbi5BamF4Q2FsbCldLHN1cHBvcnRl ZFNpdGVzKSxjdXJyZW50U2l0ZUluZGV4PTApLHI9SW5pdGlhbFNlYWNoT3B0aW9u cygpLCQoIiNnc2Z4X2JzcmNoX29wdGlvbnNfc3ViY250ciIpLnJlcGxhY2VXaXRo KHIpfWZ1bmN0aW9uIHJlbW92ZUdwc1NlYXJjaEZyb21TZWFyY2hPcHRpb25zKG4p e3ZhciB0PSExLGk9ITEscjtzdXBwb3J0ZWRTaXRlcz0kLm1hcChzdXBwb3J0ZWRT aXRlcyxmdW5jdGlvbihyKXtpZihyLlVybD09PW4pe3Q9ITA7cmV0dXJufXJldHVy biByLlNlbGVjdGVkJiYoaT0hMCkscn0pLHQmJihpfHwoc3VwcG9ydGVkU2l0ZXNb MF0uU2VsZWN0ZWQ9ITApLHI9SW5pdGlhbFNlYWNoT3B0aW9ucygpLCQoIiNnc2Z4 X2JzcmNoX29wdGlvbnNfc3ViY250ciIpLnJlcGxhY2VXaXRoKHIpKX1mdW5jdGlv biBJbml0aWFsU2VhY2hPcHRpb25zKCl7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxl bWVudCgiRElWIiksZixyLG4sdSx0LGU7Zm9yKGkuaWQ9ImdzZnhfYnNyY2hfb3B0 aW9uc19zdWJjbnRyIixmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLHI9 ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIiksci5pZD0iZ3NmeF9zcmNoc2l0 ZW5hbWVfZGl2IixyLmNsYXNzTmFtZT0iZ3NmeF9zcmNoc2l0ZW5hbWVfY290bnIi LG49MDtuPHN1cHBvcnRlZFNpdGVzLmxlbmd0aDtuKyspdT1yLmNsb25lTm9kZSgh MCksdS5pZCs9bix1LmlubmVySFRNTD1zdXBwb3J0ZWRTaXRlc1tuXS5OYW1lLHQ9 Zi5jbG9uZU5vZGUoITApLGU9biwkKHQpLmJpbmQoImNsaWNrIix7aW5kZXg6ZX0s Q2hhbmdlU2l0ZVNlbGVjdGlvbiksc3VwcG9ydGVkU2l0ZXNbbl0uU2VsZWN0ZWQ/ KCQodCkuYXR0cigiY2xhc3MiLCJUb3BTZWFyY2hPcHRpb25zU2VsZWN0ZWQiKSxD aGFuZ2VGb3JtQWN0aW9uKG4pKTokKHQpLmF0dHIoImNsYXNzIiwiVG9wU2VhcmNo T3B0aW9uc0RlZmF1bHQiKSx0LmFwcGVuZENoaWxkKHUpLGkuYXBwZW5kQ2hpbGQo dCk7cmV0dXJuICQoaSkud2lkdGgoJCgiI2dzZnhfYnNyY2hfZGl2UXVlcnkiKS53 aWR0aCgpKSxpfWZ1bmN0aW9uIENyZWF0ZVNlYXJjaE9wdGlvbnMobix0KXt2YXIg ZSxpLHIsZix1O29wdENvbnRhaW5lcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJE SVYiKSxvcHRDb250YWluZXIuaWQ9ImdzZnhfYnNyY2hfb3B0aW9ucyIsZT1Jbml0 aWFsU2VhY2hPcHRpb25zKCksb3B0Q29udGFpbmVyLmFwcGVuZENoaWxkKGUpLGk9 JCgiaHRtbCIpLmNzcygiZGlyZWN0aW9uIik9PSJydGwiLHI9JCgiI2dzZnhfYnNy Y2hfYmdfaWU2IikuZ2V0KDApLGlzSUU2PSQoIiNnc2Z4X2JzcmNoX2JnX2llNiIp Lmxlbmd0aD4wLGlzSUU2JiYoci5zdHlsZS5sZWZ0PWk/JCgiI2dzZnhfYnNyY2hf YmciKS5nZXQoMCkub2Zmc2V0TGVmdCs0OiQoIiNnc2Z4X2JzcmNoX2JnIikuZ2V0 KDApLm9mZnNldExlZnQtMixyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIiksZj0kKCIj IituKS5nZXQoMCksZj8oZi5hcHBlbmRDaGlsZChvcHRDb250YWluZXIpLCQoIiMi K24rIiA+IDpmaXJzdC1jaGlsZCIpLmNzcyh7ImJvcmRlci1ib3R0b20iOiIwcHgi LCJib3JkZXItY29sb3IiOiIjOTk5OTk5IiwibWFyZ2luLXRvcCI6IjBweCJ9KSxp JiYkKCIjIituKyIgPiA6Zmlyc3QtY2hpbGQiKS5jc3MoeyJtYXJnaW4tcmlnaHQi OiItMXB4In0pLCQoIiMiK24rIiA+IDpmaXJzdC1jaGlsZCIpLmNzcyh7ImJhY2tn cm91bmQtY29sb3IiOiIjZmZmZmZmIn0pLCQoIiMiK24pLmNzcyh7Im1hcmdpbi1s ZWZ0IjoiLTFweCIsaGVpZ2h0OiIwcHgifSksdT1NUy5TdXBwb3J0LkFDP01TLlN1 cHBvcnQuQUMuQUNBcnJheUVsKCJnc2Z4X2JzcmNoX3F1ZXJ5Iik6bnVsbCx1JiYo dS5vcHRpb25zLmhhbmRsZVJlc2l6ZT1SZXNpemVTaXRlT3B0cyx1Lm9wdGlvbnMu YWNNaW5XaWR0aD10KSk6KCQob3B0Q29udGFpbmVyKS5pbnNlcnRCZWZvcmUoIiNn c2Z4X2JzcmNoX3F1ZXJ5IiksaT8kKG9wdENvbnRhaW5lcikuY3NzKHtwb3NpdGlv bjoicmVsYXRpdmUiLHRvcDokKCIjZ3NmeF9ic3JjaF9kaXZRdWVyeSIpLmdldCgw KS5vZmZzZXRIZWlnaHQrInB4IixmbG9hdDoicmlnaHQifSk6JChvcHRDb250YWlu ZXIpLmNzcyh7dG9wOiQoIiNnc2Z4X2JzcmNoX2RpdlF1ZXJ5IikuZ2V0KDApLm9m ZnNldEhlaWdodCsicHgiLGxlZnQ6Ii0xcHgifSkpLCQoIiNnc2Z4X2JzcmNoX3F1 ZXJ5IikuYmluZCgiZm9jdXMiLGZ1bmN0aW9uKG4pe0hhbmRsZVF1ZXJ5Rm9jdXMo biksJCgiI2FjTGlzdFdyYXBwZXJnc2Z4X2JzcmNoX3F1ZXJ5Iikuc2hvdygpfSks JCgiI2dzZnhfYnNyY2hfYnRuaW1nIikubGl2ZSgiZm9jdXMiLGZ1bmN0aW9uKCl7 JCgiI2FjTGlzdFdyYXBwZXJnc2Z4X2JzcmNoX3F1ZXJ5Iikuc2hvdygpLCQoIiNn c2Z4X2JzcmNoX29wdGlvbnMiKS5zaG93KCksJCgiI2dzZnhfYnNyY2hfb3B0aW9u c19zdWJjbnRyIDplcShjdXJyZW50U2l0ZUluZGV4KSIpLnNob3coKX0pLCQoIiNn c2Z4X2JzcmNoX2J0bmltZyIpLmxpdmUoImJsdXIiLGZ1bmN0aW9uKCl7JCgiI2Fj TGlzdFdyYXBwZXJnc2Z4X2JzcmNoX3F1ZXJ5IikuaGlkZSgpfSksJCgiI2dzZnhf YnNyY2hfcXVlcnkiKS5iaW5kKCJjbGljay5zcmNoc2l0ZW9wdHMiLGZ1bmN0aW9u KG4pe0hhbmRsZVF1ZXJ5Rm9jdXMobiksJCgiI2dzZnhfYnNyY2hfcXVlcnkiKS51 bmJpbmQoImNsaWNrLnNyY2hzaXRlb3B0cyIpfSksJCgiI2dzZnhfYnNyY2hfcXVl cnkiKS5iaW5kKCJrZXlkb3duLnNyY2hzaXRlb3B0cyIsZnVuY3Rpb24obil7SGFu ZGxlS2V5ZG93bihuKTtpZigkKCIjYWNMaXN0V3JhcHBlcmdzZnhfYnNyY2hfcXVl cnkgOmZpcnN0LWNoaWxkIikuY3NzKCJ2aXNpYmlsaXR5Iik9PT0iaGlkZGVuIil7 dmFyIHQ9LTE7aWYobi53aGljaD09NDApe3Q9Y3VycmVudFNpdGVJbmRleCsxO2lm KHQ+PXN1cHBvcnRlZFNpdGVzLmxlbmd0aClyZXR1cm59ZWxzZSBpZihuLndoaWNo PT0zOCl7dD1jdXJyZW50U2l0ZUluZGV4LTE7aWYodDwwKXJldHVybn10IT0tMSYm KCQoIiNnc2Z4X3NyY2hzaXRlbmFtZV9kaXYiK3QpLnBhcmVudCgpLmF0dHIoImNs YXNzIiwiVG9wU2VhcmNoT3B0aW9uc1NlbGVjdGVkIiksJCgiI2dzZnhfc3JjaHNp dGVuYW1lX2RpdiIrY3VycmVudFNpdGVJbmRleCkucGFyZW50KCkuYXR0cigiY2xh c3MiLCJUb3BTZWFyY2hPcHRpb25zRGVmYXVsdCIpLHN1cHBvcnRlZFNpdGVzW2N1 cnJlbnRTaXRlSW5kZXhdLlNlbGVjdGVkPSExLHN1cHBvcnRlZFNpdGVzW3RdLlNl bGVjdGVkPSEwLGN1cnJlbnRTaXRlSW5kZXg9dCl9aWYobi53aGljaD09PTEzKXJl dHVybiBTYXZlU2ltcGxlU2VhcmNoKCl9KSwkKGRvY3VtZW50KS5iaW5kKCJjbGlj ay5zcmNoc2l0ZW9wdHMiLGZ1bmN0aW9uKG4pe1NpbXBsZVNlYXJjaENsaWNrSGFu ZGxlcihuKX0pfWZ1bmN0aW9uIFNpbXBsZVNlYXJjaENsaWNrSGFuZGxlcihuKXt2 YXIgdCxyLGksdTtpZighbnx8IW4udGFyZ2V0KXJldHVybjt0PW4udGFyZ2V0O2lm KCQodCkuaGFzQ2xhc3MoImdzZnhfaW1nX3BuZyIpKXJldHVybjtyPSQoIiNnc2Z4 X2JzcmNoX2RpdlF1ZXJ5IikuZ2V0KDApLGk9dD09cixpfHwoaT1Jc0NoaWxkKHQs cikpLGk/KEhpZGVMYW5nU2VsKCksJChvcHRDb250YWluZXIpLmNzcyh7ZGlzcGxh eToiYmxvY2sifSkpOiQob3B0Q29udGFpbmVyKS5jc3Moe2Rpc3BsYXk6Im5vbmUi fSk7aWYoYXZsQ2F0YWxvZ3MubGVuZ3RoPT0wKXJldHVybjtpZih0PT0kKCIjZ3Nm eF9jYXRfc2VsIikuZ2V0KDApKXJldHVybjt1PUlzQ2hpbGQodCwkKCIjZ3NmeF9j YXRfc2VsIikuZ2V0KDApLDMpLHV8fEhpZGVMYW5nU2VsKCl9ZnVuY3Rpb24gSXND aGlsZChuLHQsaSl7dmFyIHU7aWYoIW4pcmV0dXJuITE7dT0hMSxpfHwoaT02KTt2 YXIgcj1uLnBhcmVudE5vZGUsZj0wLGU9ITE7d2hpbGUociYmaT5mKXtpZihyPT10 KXt1PSEwO2JyZWFrfXI9JChyKS5wYXJlbnQoKS5nZXQoMCksZisrfXJldHVybiB1 fWZ1bmN0aW9uIFJlc2l6ZVNpdGVPcHRzKG4pe29wdENvbnRhaW5lci5zdHlsZS50 b3A9bi5zdHlsZS52aXNpYmlsaXR5IT0iaGlkZGVuIiYmbi5jaGlsZE5vZGVzLmxl bmd0aD4wPyQobikuZ2V0KDApLmNsaWVudEhlaWdodCsicHgiOjAsbi5zdHlsZS52 aXNpYmlsaXR5IT0iaGlkZGVuIj8kKG9wdENvbnRhaW5lcikuY3NzKHtkaXNwbGF5 OiJibG9jayJ9KTokKGRvY3VtZW50KS5nZXQoMCkuYWN0aXZlRWxlbWVudCE9JCgi I2dzZnhfYnNyY2hfcXVlcnkiKS5nZXQoMCkmJiQob3B0Q29udGFpbmVyKS5jc3Mo e2Rpc3BsYXk6Im5vbmUifSl9ZnVuY3Rpb24gSGFuZGxlS2V5ZG93bihuKXtpZihu LmtleUNvZGU9PTkpaWYoJChvcHRDb250YWluZXIpLnByZXYoKS5nZXQoMCk9PW51 bGx8fCQob3B0Q29udGFpbmVyKS5wcmV2KCkuY3NzKCJ2aXNpYmlsaXR5Iik9PSJo aWRkZW4iKXskKG9wdENvbnRhaW5lcikuY3NzKHtkaXNwbGF5OiJub25lIn0pO3Jl dHVybn1pZihuLmtleUNvZGU9PTEzKXJldHVybjtIYW5kbGVRdWVyeUZvY3VzKG4p fWZ1bmN0aW9uIEhhbmRsZVF1ZXJ5Rm9jdXMobil7aWYobi50eXBlPT0iZm9jdXMi JiZwcmV2RWxlbWVudD09bi50YXJnZXQpcmV0dXJuO0hpZGVMYW5nU2VsKCksJChv cHRDb250YWluZXIpLmNzcyh7ZGlzcGxheToiYmxvY2sifSl9ZnVuY3Rpb24gQ2hh bmdlU2l0ZVNlbGVjdGlvbihuKXt2YXIgdD1uLmRhdGEuaW5kZXg7Q2hhbmdlRm9y bUFjdGlvbih0KTtpZihzdXBwb3J0ZWRTaXRlc1t0XS5TZWxlY3RlZClyZXR1cm47 JCgiI2dzZnhfc3JjaHNpdGVuYW1lX2RpdiIrdCkucGFyZW50KCkuYXR0cigiY2xh c3MiLCJUb3BTZWFyY2hPcHRpb25zU2VsZWN0ZWQiKSwkKCIjZ3NmeF9zcmNoc2l0 ZW5hbWVfZGl2IitjdXJyZW50U2l0ZUluZGV4KS5wYXJlbnQoKS5hdHRyKCJjbGFz cyIsIlRvcFNlYXJjaE9wdGlvbnNEZWZhdWx0Iiksc3VwcG9ydGVkU2l0ZXNbY3Vy cmVudFNpdGVJbmRleF0uU2VsZWN0ZWQ9ITEsc3VwcG9ydGVkU2l0ZXNbdF0uU2Vs ZWN0ZWQ9ITAsY3VycmVudFNpdGVJbmRleD10fWZ1bmN0aW9uIEluaXRDYXRMYW5n U2VsKCl7dmFyIGk9JCgiI2dzZnhfY2F0X3NlbCIpLHQ9JCgiI2dzZnhfY2F0X3Nl bF9idG4iKSxuPSQoIiNnc2Z4X2NhdF9zZWxfYnRuIGltZyIpOyRwYW5lbD0kKCIj Z3NmeF9jYXRfc2VsX2NudG5yIik7aWYodC5sZW5ndGg9PT0wfHwkcGFuZWwubGVu Z3RoPT09MClyZXR1cm47aWYoYXZsQ2F0YWxvZ3MmJmF2bENhdGFsb2dzLmxlbmd0 aDw9MSl7JGNvbnRhaW5lci5oaWRlKCk7cmV0dXJufXQuY2xpY2soZnVuY3Rpb24o dCl7JHBhbmVsLmNzcygidG9wIixuWzBdLmhlaWdodCsicHgiKSwkKG9wdENvbnRh aW5lcikuaGlkZSgpLCRwYW5lbC50b2dnbGUoKSxTaW1wbGVTZWFyY2hDbGlja0hh bmRsZXIodCl9KSxuLmF0dHIoImhvdmVyLXNyYyIpJiYobi5hdHRyKCJub3JtYWwt c3JjIixuLmF0dHIoInNyYyIpKSx0LmhvdmVyKGZ1bmN0aW9uKCl7bi5hdHRyKCJz cmMiLG4uYXR0cigiaG92ZXItc3JjIikpfSxmdW5jdGlvbigpe24uYXR0cigic3Jj IixuLmF0dHIoIm5vcm1hbC1zcmMiKSl9KSksJHBhbmVsLndpZHRoKCQoIiNnc2Z4 X2JzcmNoX3F1ZXJ5IikucGFyZW50KCkud2lkdGgoKS8yK3Qud2lkdGgoKSszNSks aS5zaG93KCl9ZnVuY3Rpb24gSGlkZUxhbmdTZWwoKXskcGFuZWw9JCgiI2dzZnhf Y2F0X3NlbF9jbnRuciIpLmhpZGUoKX1mdW5jdGlvbiBDYWxsV2ViU2VhcmNoKG4s dCl7dmFyIGk9JCgiI2ZybWFTcmNoIikuZ2V0KDApLHI9aS5xdWVyeTtpZigkLnRy aW0oJChyKS52YWwoKSkubGVuZ3RoPT0wKXtTdGF0c0RvdE5ldC5PcHRpb25Db2xs ZWN0aW9uSWQ9U2V0TG9nQ29sbGVjdGlvbkJpdChTdGF0c0RvdE5ldC5PcHRpb25D b2xsZWN0aW9uSWQsMzMpLFN0YXRzRG90TmV0LnRhcmdldFVybD1uLGRvY3VtZW50 LmxvY2F0aW9uLmhyZWY9bjtyZXR1cm59U2F2ZVNpbXBsZVNlYXJjaCh0KX12YXIg Y2xpY2tlZD0hMSxleHRyYU9wPSIiLHN1cHBvcnRlZFNpdGVzPVtdLGN1cnJlbnRT aXRlSW5kZXg9MCxhdmxDYXRhbG9ncz1bXSxjdXJyZW50Q2F0U2VsSW5keD0tMSxv cHRDb250YWluZXI9bnVsbCxpc0lFNj0hMSxwcmV2RWxlbWVudD1udWxsLHNlYXJj aFN1Ym1pdD0wLE1pY3Jvc29mdD13aW5kb3cuTWljcm9zb2Z0fHx7fSxDbGlja0Fj dGlvbixnc2Z4X2JzcmNoX0luaXRDYXRTZWxlY3Rpb24sQ2hhbmdlRm9ybUFjdGlv bjtNaWNyb3NvZnQuU3VwcG9ydD1NaWNyb3NvZnQuU3VwcG9ydHx8e30sTWljcm9z b2Z0LlN1cHBvcnQuR1NTPU1pY3Jvc29mdC5TdXBwb3J0LkdTU3x8e30sTWljcm9z b2Z0LlN1cHBvcnQuR1NTLkdwc1NlYXJjaD1mdW5jdGlvbihuLHQpe3ZhciByPXtn cHNTZWFyY2hDb3VudFBlclBhZ2U6NSxsYW5ndWFnZToiZW4tdXMifSxpPSQuZXh0 ZW5kKCEwLHt9LHIsdCk7dGhpcy5jYWxsU2VydmljZT1mdW5jdGlvbih0KXt2YXIg Zj0iMS0iK2kuZ3BzU2VhcmNoQ291bnRQZXJQYWdlLHI9cGFyc2VJbnQodCksZSxv LHU7cj4wJiYoZT0oci0xKSo1KzEsbz1yKmkuZ3BzU2VhcmNoQ291bnRQZXJQYWdl LGY9ZSsiLSIrbyksJCgiLmxvYWRpbmctcGFuZWwiLG4pLmNzcygiZGlzcGxheSIs ImJsb2NrIiksJCgiLnVwZGF0ZS1wYW5lbCIsbikuY3NzKCJkaXNwbGF5Iiwibm9u ZSIpLCQoIi5lcnJvci1wYW5lbCIsbikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLHU9 d2luZG93Ll93YXlmaW5kZXIuZ2V0Q3VycmVudFByb2R1Y3QoKSwkLmFqYXgoe3Vy bDoiL0d1aWRlZFByb2JsZW1Tb2x2aW5nL0d1aWRlZFByb2JsZW1Tb2x2aW5nU2Vy dmljZS5zdmMvR2V0R1BTUGFnZUNvbnRlbnQiLGNhY2hlOiExLHR5cGU6ImdldCIs ZGF0YVR5cGU6Impzb24iLGRhdGE6e3F1ZXJ5OiQucGFyYW0oe3F1ZXJ5OiQoIiNn c2Z4X2JzcmNoX3F1ZXJ5IikudmFsKCl9KSxsYW5nOmkubGFuZ3VhZ2UsbW9kYWxp dHlUeXBlOndpbmRvdy5fd2F5ZmluZGVyLmdldEN1cnJlbnRNb2RhbGl0eSgpLnR5 cGUscmFuZ2U6ZixwYXRoOnU/dS5nZXRQYXRoKCk6IiJ9LHN1Y2Nlc3M6ZnVuY3Rp b24odCl7aWYodHlwZW9mIHQ9PSJ1bmRlZmluZWQifHx0PT09bnVsbCl7JCgiLmVy cm9yLXBhbmVsIixuKS5jc3MoImRpc3BsYXkiLCJibG9jayIpLCQoIi5sb2FkaW5n LXBhbmVsIixuKS5jc3MoImRpc3BsYXkiLCJub25lIik7cmV0dXJufSQobikucGFy ZW50KCkuaHRtbCh0LmQpfSxlcnJvcjpmdW5jdGlvbigpeyQoIi5lcnJvci1wYW5l bCIsbikuY3NzKCJkaXNwbGF5IiwiYmxvY2siKSwkKCIubG9hZGluZy1wYW5lbCIs bikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpO3JldHVybn19KX19LENsaWNrQWN0aW9u PXtSZWRpcmVjdDowLEFqYXhDYWxsOjEsRm9ybVN1Ym1pdDoyfSxnc2Z4X2JzcmNo X0luaXRDYXRTZWxlY3Rpb249ZnVuY3Rpb24obix0KXt2YXIgZj11bmVzY2FwZShm ZXRjaGNvb2tpZXZhbCgiYWRjYXRhbG9nIikpLGU9MCxvPSExLHUscixpO2lmKGYp e3U9JCgiI2dzZnhfYnNyY2hfY2F0c2VsIikuZ2V0KDApO2lmKHUpe2ZvcihyPTA7 cjx1LmNoaWxkTm9kZXMubGVuZ3RoO3IrKyl7aT11LmNoaWxkTm9kZXNbcl07aWYo aSYmaS50YWdOYW1lJiZpLmdldEF0dHJpYnV0ZSgiY2F0YWxvZyIpKXtpZihpLmdl dEF0dHJpYnV0ZSgiY2F0YWxvZyIpPT1mKXtpLmNsYXNzTmFtZSs9IiBnc2Z4X2Jz cmNoX2hpZ2hsaWdodCI7dHJ5e01TLlN1cHBvcnQuQUMuQUNDaGFuZ2VDaGFyU3Rh cnQobix0LnNwbGl0KCI6IilbZV0pLE1TLlN1cHBvcnQuQUMuQUNTZXRMY2lkKG4s Zi5zcGxpdCgiPSIpWzFdKX1jYXRjaChzKXt9bz0hMH1lbHNlIGkuY2xhc3NOYW1l PWkuY2xhc3NOYW1lLnJlcGxhY2UoLyggP3xeKWdzZnhfYnNyY2hfaGlnaGxpZ2h0 XGIvZ2ksIiIpO2UrK319aWYoIW8pZm9yKHI9MDtyPHUuY2hpbGROb2Rlcy5sZW5n dGg7cisrKXtpPXUuY2hpbGROb2Rlc1tyXTtpZihpJiZpLnRhZ05hbWUmJmkuZ2V0 QXR0cmlidXRlKCJjYXRhbG9nIikpe2kuY2xhc3NOYW1lKz0iIGdzZnhfYnNyY2hf aGlnaGxpZ2h0IjtyZXR1cm59fX19fSxDaGFuZ2VGb3JtQWN0aW9uPWZ1bmN0aW9u KG4peyQoIiNmcm1zcmNoIikuYXR0cigiYWN0aW9uIixzdXBwb3J0ZWRTaXRlc1tu XS5VcmwpfTs= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=ac.js Content-Type: application/x-javascript; name=ac.js Content-Location: http://support.microsoft.com/common/script/gsfx/ac.js?80 Content-Transfer-Encoding: Base64 d2luZG93Lk1TfHwod2luZG93Lk1TPXt9KSxNUy5TdXBwb3J0PU1TLlN1cHBvcnR8 fHt9LE1TLlN1cHBvcnQuQUM9ZnVuY3Rpb24obil7cmV0dXJuIHR5cGVvZiBuPT0i dW5kZWZpbmVkIj9udWxsOnRoaXMuQ3JlYXRlQUMobil9LE1TLlN1cHBvcnQuQUMu YWNhcnJheXx8KE1TLlN1cHBvcnQuQUMuYWNhcnJheT1bXSksTVMuU3VwcG9ydC5B Qy5BQ0FycmF5RWw9ZnVuY3Rpb24obil7Zm9yKHZhciB0PTA7dDxNUy5TdXBwb3J0 LkFDLmFjYXJyYXkubGVuZ3RoO3QrKylpZihNUy5TdXBwb3J0LkFDLmFjYXJyYXlb dF0ua2V5PT09bilyZXR1cm4gTVMuU3VwcG9ydC5BQy5hY2FycmF5W3RdLnZhbDty ZXR1cm4gbnVsbH0sTVMuU3VwcG9ydC5BQy5NYWtlQXV0b0NvbXBsZXRlPWZ1bmN0 aW9uKG4pe2lmKG4uaWQpe3ZhciB0PW5ldyBNUy5TdXBwb3J0LkFDKG4pO01TLlN1 cHBvcnQuQUMuYWNhcnJheS5wdXNoKHtrZXk6bi5pZCx2YWw6dH0pfX0sTVMuU3Vw cG9ydC5BQy5TZXRDb29raWU9ZnVuY3Rpb24obix0KXt2YXIgaT1uZXcgRGF0ZSxy O2kuc2V0RnVsbFllYXIoaS5nZXRGdWxsWWVhcigpKzEpLHI9ZG9jdW1lbnQuZG9t YWluLGRvY3VtZW50LmNvb2tpZT1yLmluZGV4T2YoIi5jb20iKT4tMT9uKyI9Iit0 KyI7IGV4cGlyZXM9IitpLnRvR01UU3RyaW5nKCkrIjsgRG9tYWluPSIrcisiOyBw YXRoPS8iOm4rIj0iK3QrIjsgZXhwaXJlcz0iK2kudG9HTVRTdHJpbmcoKSsiOyBw YXRoPS8ifSxNUy5TdXBwb3J0LkFDLkZldGNoQ29va2llPWZ1bmN0aW9uKG4pe2Zv cih2YXIgaSx1LGY9ITEscj1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSx0PTA7 dDxyLmxlbmd0aDt0Kyspe2k9clt0XS5zdWJzdHJpbmcoMCxyW3RdLmluZGV4T2Yo Ij0iKSksaS5jaGFyQXQoMCk9PSIgIiYmKGk9aS5zdWJzdHJpbmcoMSxpLmxlbmd0 aCkpLHU9clt0XS5zdWJzdHJpbmcoclt0XS5pbmRleE9mKCI9IikrMSxyW3RdLmxl bmd0aCk7aWYobj09aSl7Zj0hMDticmVha319cmV0dXJuIGY/dToiYmxhbmsifSxN Uy5TdXBwb3J0LkFDLkFkZEV2ZW50PWZ1bmN0aW9uKG4sdCxpKXtuLmF0dGFjaEV2 ZW50P24uYXR0YWNoRXZlbnQoIm9uIit0LGkpOm4uYWRkRXZlbnRMaXN0ZW5lcih0 LGksITApfSxNUy5TdXBwb3J0LkFDLktpbGxFdmVudD1mdW5jdGlvbihuLHQsaSl7 bi5kZXRhY2hFdmVudD9uLmRldGFjaEV2ZW50KCJvbiIrdCxpKTpuLnJlbW92ZUV2 ZW50TGlzdGVuZXIodCxpLCEwKX0sTVMuU3VwcG9ydC5BQy5BQ091dHB1dFN1Z2dl c3Rpb25zPWZ1bmN0aW9uKG4sdCxpKXtNUy5TdXBwb3J0LkFDLkFDQXJyYXlFbChp KS5PdXRwdXRTdWdnZXN0aW9ucyhuLHQpfSxNUy5TdXBwb3J0LkFDLkFDRXJyb3JT dWdnZXN0aW9ucz1mdW5jdGlvbihuLHQsaSl7TVMuU3VwcG9ydC5BQy5BQ0FycmF5 RWwoaSkuRXJyb3JTdWdnZXN0aW9ucyhuLHQpfSxNUy5TdXBwb3J0LkFDLkFDU2V0 TGNpZD1mdW5jdGlvbihuLHQpe01TLlN1cHBvcnQuQUMuQUNBcnJheUVsKG4pLm9w dGlvbnMubGNpZD10fSxNUy5TdXBwb3J0LkFDLkFDQ2hhbmdlQ2hhclN0YXJ0PWZ1 bmN0aW9uKG4sdCl7TVMuU3VwcG9ydC5BQy5BQ0FycmF5RWwobikub3B0aW9ucy5z dGFydENoYXI9dH0sTVMuU3VwcG9ydC5BQy5wcm90b3R5cGU9e0NyZWF0ZUFDOmZ1 bmN0aW9uKG4pe3ZhciByLHQsYSxjLGksdixoLGwseTt0aGlzLm9wdGlvbnM9e2lk OiIiLGxjaWQ6IiIsYWNVUkw6IiIsc3RhdHNPYmo6IiIsc3RhcnRDaGFyOjQsYnVi Ymxlc2lkZToibGVmdCIsZHJvcGRpcmVjdGlvbjoiZG93biIsZHJvcHVwZ2FwOjAs YXV0b0ZvY3VzOiExLGxuZGlyOiJsdHIiLGFjT2xkVmFsdWU6IiIsYWNOZXdWYWx1 ZToiIixkb05leHRDYWxsOiEwLGFjTm9WYWw6IiIsYWN0aW1lcjpudWxsLGFjZ3Jv d3RpbWVyOm51bGwsZG9idWJibGU6ITAsYWNidWJibGVpbnRpbWVyOm51bGwsYWNi dWJibGVvdXR0aW1lcjpudWxsLGJ1YmJsZWNoYXJsaW1pdDoyNTUsYnRvcGFjOjAs YWNRdWVyeUJveDpudWxsLGFjTGlzdERpdjpudWxsLGFjTGlzdFdyYXA6bnVsbCxh Y05vZGU6bnVsbCxhY0lmcmFtZUhhY2s6bnVsbCxBQ0VsbGlwc2lzOm51bGwsQnVi YmxlSW1nUGF0aDpudWxsLEFDQnViYmxlVGV4dE5vZGU6bnVsbCxBQ0J1YmJsZUlm cmFtZUhhY2s6bnVsbCxhY01pbldpZHRoOjE1MCxhY1dpZHRoOiJwYXJlbnQiLEFD R3Jvd0Ftb3VudDoxOCxhY1Jlc2VydmVkS2V5czpbMTMsMzgsNDBdLG5vbkNoYXJL ZXlzOls5LDE2LDE3LDE4LDE5LDIwLDI3LDMzLDM0LDM1LDM2LDM3LDM5LDQ2LDEx MiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzXSxh Y2hlYWQ6ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKS5pdGVt KDApLGltZ3BhdGg6Ii9saWJyYXJ5L2ltYWdlcy9zdXBwb3J0L2VuLXVzLyIsb2Zm c2hpZnRMaXN0OjAsYm9yZGVyQ29sb3I6IiM2NjY2NjYiLGNoYXJib2xkaW5nOjIs Y2xyd2luOm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiQXBwbGVXZWJLaXQi KT09LTE/IldpbmRvdyI6IiNGRkYiLGNscndpbnR4dDpuYXZpZ2F0b3IudXNlckFn ZW50LmluZGV4T2YoIkFwcGxlV2ViS2l0Iik9PS0xPyIjMzMzMzMzIjoiIzAwMCIs Y2xyaGlnaDpuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkFwcGxlV2ViS2l0 Iik9PS0xPyJIaWdobGlnaHQiOiIjQ0NDIixjbHJoaWdodHh0Om5hdmlnYXRvci51 c2VyQWdlbnQuaW5kZXhPZigiQXBwbGVXZWJLaXQiKT09LTE/IkhpZ2hsaWdodFRl eHQiOiIjMDAwIixoYW5kbGVSZXNpemU6bnVsbH0sdGhpcy5BQ09wdGlvbnNGaWxs KHRoaXMub3B0aW9ucyxufHx7fSksdD10aGlzLm9wdGlvbnM7aWYoIXQpcmV0dXJu ITE7aWYodHlwZW9mIHQuaWQ9PSJzdHJpbmciKXI9ZG9jdW1lbnQuZ2V0RWxlbWVu dEJ5SWQodC5pZCk7ZWxzZSBpZih0eXBlb2YgdC5pZD09Im9iamVjdCImJnQuaWQu bm9kZU5hbWU9PSJJTlBVVCIpcj10LmlkO2Vsc2UgcmV0dXJuITE7dGhpcy5vcHRp b25zLmxuZGlyPXRoaXMuQUNDb21wdXRlZFN0eWxlKHIsImRpcmVjdGlvbiIpLHQu YnViYmxlc2lkZT10LmJ1YmJsZXNpZGUmJnR5cGVvZiB0LmJ1YmJsZXNpZGU9PSJz dHJpbmciJiZ0LmJ1YmJsZXNpZGU9PSJsZWZ0Ij90LmxuZGlyPT0icnRsIj8icmln aHQiOiJsZWZ0Ijp0LmJ1YmJsZXNpZGUmJnR5cGVvZiB0LmJ1YmJsZXNpZGU9PSJz dHJpbmciJiZ0LmJ1YmJsZXNpZGU9PSJyaWdodCI/dC5sbmRpcj09InJ0bCI/Imxl ZnQiOiJyaWdodCI6InJpZ2h0IiwodC5sY2lkPT09IiJ8fHR5cGVvZiB0LmxjaWQ9 PSJ1bmRlZmluZWQiKSYmKHQubGNpZCYmdHlwZW9mIHQubGNpZD09InN0cmluZyJ8 fCh0LmxjaWQ9IjEwMzMiKSksdC5hY1VSTD10LmFjVVJMPT09IiJ8fHR5cGVvZiB0 LmFjVVJMPT0idW5kZWZpbmVkIj8iaHR0cDovL2F1dG9jb21wbGV0ZS5zdXBwb3J0 Lm1pY3Jvc29mdC5jb20iOnVuZXNjYXBlKHQuYWNVUkwpO2lmKHQuc3RhcnRDaGFy JiYodHlwZW9mIHQuc3RhcnRDaGFyPT0ic3RyaW5nInx8dHlwZW9mIHQuc3RhcnRD aGFyPT0ibnVtYmVyIikpdHJ5e3Quc3RhcnRDaGFyPXBhcnNlSW50KHQuc3RhcnRD aGFyLDEwKSx0LnN0YXJ0Q2hhcjwyJiYodC5zdGFydENoYXI9MiksdC5zdGFydENo YXI+OCYmKHQuc3RhcnRDaGFyPTgpfWNhdGNoKHApe3Quc3RhcnRDaGFyPTR9aWYo cil7YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGEuc2V0QXR0cmli dXRlKCJ0eXBlIiwiaGlkZGVuIiksYS5zZXRBdHRyaWJ1dGUoImlkIiwiaWRUeHRG bGQiKSxyLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsciksci5vZmZzZXRXaWR0 aDx0LmFjTWluV2lkdGgmJih0LmFjTWluV2lkdGg9ci5vZmZzZXRXaWR0aCksci5z ZXRBdHRyaWJ1dGUoImF1dG9jb21wbGV0ZSIsIm9mZiIpLGM9ZG9jdW1lbnQuY3Jl YXRlRWxlbWVudCgiRElWIiksaT1jLnN0eWxlLGMuaWQ9ImFjTGlzdERpdiIrci5p ZCxpLm1hcmdpbj1pLnBhZGRpbmc9IjBweCIsaS5tYXJnaW5Ub3A9Ii0ycHgiLGku dmlzaWJpbGl0eT0iaGlkZGVuIixpLnpJbmRleD0iOTkiLGkucG9zaXRpb249ImFi c29sdXRlIixpLmxpbmVIZWlnaHQ9IjE4cHgiLHRoaXMub3B0aW9ucy5kcm9wZGly ZWN0aW9uPT09InVwIiYmKGkuYm90dG9tPXIub2Zmc2V0SGVpZ2h0K3BhcnNlSW50 KHIuc3R5bGUuYm9yZGVyV2lkdGgqMiwxMCkrcGFyc2VJbnQoci5zdHlsZS5wYWRk aW5nVG9wKjIsMTApK3RoaXMub3B0aW9ucy5kcm9wdXBnYXArInB4Iiksdj1wYXJz ZUludCh0LmFjTWluV2lkdGgsMTApLGkud2lkdGg9KHY+MTI/di0xMzowKSsicHgi LGkuYm9yZGVyPSIxcHggc29saWQgIit0LmJvcmRlckNvbG9yLGkub3ZlcmZsb3c9 ImhpZGRlbiIsaS5wYWRkaW5nPSIxMHB4IDFweCAxMHB4IDEwcHgiLGkuYmFja2dy b3VuZD0iI2ZmZiIsaS5mb250U2l6ZT0iMC43ZW0iLGkuZm9udEZhbWlseT10aGlz LkFDQ29tcHV0ZWRTdHlsZShyLCJmb250RmFtaWx5IiksdGhpcy5vcHRpb25zLmxu ZGlyPT0icnRsIiYmKGkucGFkZGluZ1JpZ2h0PSIxMHB4IixpLnBhZGRpbmdMZWZ0 PSIxcHgiKSxoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGguaWQ9ImFj TGlzdFdyYXBwZXIiK3IuaWQsaC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGgu c3R5bGUud2lkdGg9cGFyc2VJbnQodiwxMCkrInB4IixoLnN0eWxlLmhlaWdodD0i MXB4IixoLmFwcGVuZENoaWxkKGMpLHIucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCho KSx0LmFjTm9kZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpPXQuYWNO b2RlLnN0eWxlLHQuYWNOb2RlLmNsYXNzTmFtZT0iYWNTdWdEaXYiLGkud2hpdGVT cGFjZT0ibm93cmFwIixpLndpZHRoPSIxMDAlIixpLm92ZXJmbG93PSJoaWRkZW4i LGkuYmFja2dyb3VuZENvbG9yPXQuY2xyd2luLGkuY29sb3I9dC5jbHJ3aW50eHQs aS5jdXJzb3I9InBvaW50ZXIiLHQuQUNFbGxpcHNpcz1kb2N1bWVudC5jcmVhdGVF bGVtZW50KCJzcGFuIiksdC5BQ0VsbGlwc2lzLnN0eWxlLmJhY2tncm91bmQ9dC5j bHJ3aW4sdC5BQ0VsbGlwc2lzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdC5B Q0VsbGlwc2lzLmlubmVySFRNTD0iLi4uIix0LkFDRWxsaXBzaXMuY2xhc3NOYW1l PSJlbGxpcHNpcyIsdC5BQ0VsbGlwc2lzLnN0eWxlLmxpbmVIZWlnaHQ9IjE2cHgi LHQuQUNFbGxpcHNpcy5zdHlsZS5oZWlnaHQ9IjE4cHgiLHQubG5kaXI9PSJsdHIi P3QuQUNFbGxpcHNpcy5zdHlsZS5yaWdodD0iLTFweCI6dC5BQ0VsbGlwc2lzLnN0 eWxlLmxlZnQ9Ii0xcHgiO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp diIpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdT1kb2N1bWVudC5j cmVhdGVFbGVtZW50KCJkaXYiKSxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp diIpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zi5pZD0iZ3NzX2Fj X2J0dG9wIixlLmlkPSJnc3NfYWNfYnRib3R0b20iLHUuaWQ9Imdzc19hY19idHR4 dCIscy5pZD0iZ3NzX2FjX2J0YXJyb3ciLG8uaWQ9Imdzc19hY19idGRpdiIsdC5C dWJibGVJbWdQYXRofHwodC5CdWJibGVJbWdQYXRoPXQuYWNVUkwpLGYuc3R5bGUu YmFja2dyb3VuZD0idXJsKCIrdC5CdWJibGVJbWdQYXRoKyIvaW1hZ2VzL2J1YmJs ZS5wbmcpIG5vLXJlcGVhdCIsZS5zdHlsZS5iYWNrZ3JvdW5kPSJ1cmwoIit0LkJ1 YmJsZUltZ1BhdGgrIi9pbWFnZXMvYnViYmxlLnBuZykgMHB4IC0xMXB4IG5vLXJl cGVhdCIsdS5zdHlsZS5iYWNrZ3JvdW5kPSIjRkNGQ0REIix1LnN0eWxlLmJvcmRl cj0iMXB4IHNvbGlkICNERUJCNEYiLHUuc3R5bGUuYm9yZGVyV2lkdGg9IjBweCAx cHgiLGUuc3R5bGUubGluZUhlaWdodD1mLnN0eWxlLmxpbmVIZWlnaHQ9Zi5zdHls ZS5oZWlnaHQ9ZS5zdHlsZS5oZWlnaHQ9IjEwcHgiLGYuc3R5bGUuZm9udFNpemU9 ZS5zdHlsZS5mb250U2l6ZT0iMHB4IixmLnN0eWxlLndpZHRoPWUuc3R5bGUud2lk dGg9IjIwMHB4Iix1LnN0eWxlLndpZHRoPSIxNzhweCIsdS5zdHlsZS5wb3NpdGlv bj1mLnN0eWxlLnBvc2l0aW9uPWUuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix1 LnN0eWxlLmNvbG9yPSJibGFjayIsdS5zdHlsZS5mb250U2l6ZT0iLjdlbSIsdS5z dHlsZS5mb250RmFtaWx5PWMuc3R5bGUuZm9udEZhbWlseSx1LnN0eWxlLm92ZXJm bG93WD0iaGlkZGVuIix1LnN0eWxlLndoaXRlU3BhY2U9Im5vcm1hbCIsdS5zdHls ZS5wYWRkaW5nPSIwcHggMTBweCIsby5zdHlsZS5wb3NpdGlvbj1zLnN0eWxlLnBv c2l0aW9uPSJhYnNvbHV0ZSIscy5zdHlsZS50b3A9IjBweCIscy5zdHlsZS5oZWln aHQ9IjIzcHgiLHMuc3R5bGUud2lkdGg9IjM0cHgiLG8uc3R5bGUud2lkdGg9IjIy NnB4IixvLnN0eWxlLnRvcD0iOTBweCIsby5zdHlsZS56SW5kZXg9OTk5LHQuYnVi Ymxlc2lkZT09ImxlZnQiPyhmLnN0eWxlLmNzc0Zsb2F0PWUuc3R5bGUuY3NzRmxv YXQ9dS5zdHlsZS5jc3NGbG9hdD1mLnN0eWxlLnN0eWxlRmxvYXQ9ZS5zdHlsZS5z dHlsZUZsb2F0PXUuc3R5bGUuc3R5bGVGbG9hdD0ibGVmdCIsby5zdHlsZS5sZWZ0 PSItMjIwcHgiLHMuc3R5bGUucmlnaHQ9IjBweCIscy5zdHlsZS5iYWNrZ3JvdW5k PSJ1cmwoIit0LkJ1YmJsZUltZ1BhdGgrIi9pbWFnZXMvYnViYmxlLnBuZykgMHB4 IC0yMnB4IG5vLXJlcGVhdCIpOihvLnN0eWxlLmxlZnQ9Yy5vZmZzZXRXaWR0aCsi cHgiLHMuc3R5bGUubGVmdD0iMXB4IixzLnN0eWxlLmJhY2tncm91bmQ9InVybCgi K3QuQnViYmxlSW1nUGF0aCsiL2ltYWdlcy9idWJibGUucG5nKSAtMzVweCAtMjJw eCBuby1yZXBlYXQiLGYuc3R5bGUuY3NzRmxvYXQ9ZS5zdHlsZS5jc3NGbG9hdD11 LnN0eWxlLmNzc0Zsb2F0PWYuc3R5bGUuc3R5bGVGbG9hdD1lLnN0eWxlLnN0eWxl RmxvYXQ9dS5zdHlsZS5zdHlsZUZsb2F0PSJyaWdodCIpLG8uYXBwZW5kQ2hpbGQo Ziksby5hcHBlbmRDaGlsZCh1KSxvLmFwcGVuZENoaWxkKGUpLG8uYXBwZW5kQ2hp bGQocyksdC5BQ0J1YmJsZVRleHROb2RlPW8sbmF2aWdhdG9yLnVzZXJBZ2VudC5p bmRleE9mKCJNU0lFIik+MCYmcGFyc2VJbnQobmF2aWdhdG9yLnVzZXJBZ2VudC5j aGFyQXQobmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIikrNSksMTAp PDcmJih0aGlzLkFDTWFrZUlmcmFtZUhhY2soaCxjKSxsPWRvY3VtZW50LmNyZWF0 ZUVsZW1lbnQoImlmcmFtZSIpLGwuaWQ9Imdzc19hY19idGlmcmFtZSIsbC5zdHls ZS53aWR0aD0iMjI2cHgiLGwuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixsLnN0 eWxlLmZpbHRlcj0iYWxwaGEob3BhY2l0eT0wKSIsdC5idWJibGVzaWRlPT0ibGVm dCI/bC5zdHlsZS5sZWZ0PSItMjIwcHgiOmwuc3R5bGUucmlnaHQ9Ii0yMjBweCIs dC5BQ0J1YmJsZUlmcmFtZUhhY2s9bCkseT10aGlzLHRoaXMuQUNBZGRFdnQociwi a2V5dXAiLGZ1bmN0aW9uKG4pe3kuQUNJbml0U3VnZ2VzdGlvbnMobil9KSx0aGlz LkFDQWRkRXZ0KHIsImtleWRvd24iLGZ1bmN0aW9uKG4pe3kuQUNIYW5kbGVLZXlz RG93bihuKX0pLHRoaXMuQUNBZGRFdnQoZG9jdW1lbnQsIm1vdXNldXAiLGZ1bmN0 aW9uKG4pe3kuQUNDbGlja0hhbmRsZXIobil9KSx0LmFjTGlzdERpdj1jLHQuYWNR dWVyeUJveD1yLHQuYWNMaXN0V3JhcD1oLHQuYXV0b0ZvY3VzJiZyLmNyZWF0ZVRl eHRSYW5nZSYmIWRvY3VtZW50LmxvY2F0aW9uLmhhc2gmJnRoaXMuQUNGb2N1cygp fXJldHVybiB0aGlzfSxBQ0ZvY3VzOmZ1bmN0aW9uKCl7dmFyIHI9dGhpcy5vcHRp b25zLG49ci5hY1F1ZXJ5Qm94LHQ9bi52YWx1ZS5sZW5ndGgsaTtpZihuLmNyZWF0 ZVRleHRSYW5nZSl7aT1uLmNyZWF0ZVRleHRSYW5nZSgpO3RyeXtyLmxuZGlyPT09 InJ0bCI/aS5tb3ZlKCJjaGFyYWN0ZXIiLC10KTppLm1vdmUoImNoYXJhY3RlciIs dCksaS5zZWxlY3QoKX1jYXRjaCh1KXt9fWVsc2Ugbi5mb2N1cygpLG4uc2V0U2Vs ZWN0aW9uUmFuZ2UmJihyLmxuZGlyPT09InJ0bCI/bi5zZXRTZWxlY3Rpb25SYW5n ZSgwLDApOm4uc2V0U2VsZWN0aW9uUmFuZ2UodCx0KSl9LEFDT3B0aW9uc0ZpbGw6 ZnVuY3Rpb24obix0KXtmb3Iob3B0aW9uIGluIHQpbltvcHRpb25dPXRbb3B0aW9u XTtyZXR1cm4gbn0sQUNEb1Nob3dUYXJnZXQ6ZnVuY3Rpb24oKXtjbGVhclRpbWVv dXQodGhpcy5vcHRpb25zLmFjZ3Jvd3RpbWVyKSx0aGlzLm9wdGlvbnMuYWNMaXN0 RGl2LnN0eWxlLnZpc2liaWxpdHkhPSJ2aXNpYmxlIiYmKHRoaXMub3B0aW9ucy5h Y0xpc3REaXYuc3R5bGUuaGVpZ2h0PSIxOHB4Iix0aGlzLm9wdGlvbnMuYWNMaXN0 RGl2LnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUiLHRoaXMuQUNJZnJhbWVWaXNp YmxlKHRoaXMub3B0aW9ucy5hY0xpc3REaXYuc3R5bGUudmlzaWJpbGl0eSkpO3Zh ciBuPXRoaXM7dGhpcy5vcHRpb25zLmFjZ3Jvd3RpbWVyPXNldEludGVydmFsKGZ1 bmN0aW9uKHQpe24uQUNHcm93V2luZG93KHQpfSwxMCl9LEFDRG9IaWRlVGFyZ2V0 OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMub3B0aW9ucy5hY2dyb3d0aW1l cik7aWYodGhpcy5vcHRpb25zLmFjTGlzdERpdi5zdHlsZS52aXNpYmlsaXR5IT0i aGlkZGVuIil7dmFyIG49dGhpczt0aGlzLlBvcEJ1YmJsZSgpLHRoaXMub3B0aW9u cy5hY2dyb3d0aW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbih0KXtuLkFDU2hyaW5r V2luZG93KHQpfSwxMCl9fSxBQ0Ryb3BXaWR0aDpmdW5jdGlvbigpe3ZhciBuO3Jl dHVybiBuPXR5cGVvZiB0aGlzLm9wdGlvbnMuYWNXaWR0aD09Im51bWJlciI/dGhp cy5vcHRpb25zLmFjV2lkdGg6dHlwZW9mIHRoaXMub3B0aW9ucy5hY1dpZHRoPT0i c3RyaW5nIiYmdGhpcy5vcHRpb25zLmFjV2lkdGg9PSJzZWxmIj90aGlzLm9wdGlv bnMuYWNRdWVyeUJveC5vZmZzZXRXaWR0aCYmdGhpcy5vcHRpb25zLmFjUXVlcnlC b3gub2Zmc2V0V2lkdGg+dGhpcy5vcHRpb25zLmFjTWluV2lkdGg/dGhpcy5vcHRp b25zLmFjUXVlcnlCb3gub2Zmc2V0V2lkdGg6dGhpcy5vcHRpb25zLmFjTWluV2lk dGg6dGhpcy5vcHRpb25zLmFjUXVlcnlCb3gucGFyZW50Tm9kZS5vZmZzZXRXaWR0 aCYmdGhpcy5vcHRpb25zLmFjUXVlcnlCb3gucGFyZW50Tm9kZS5vZmZzZXRXaWR0 aD50aGlzLm9wdGlvbnMuYWNNaW5XaWR0aD90aGlzLm9wdGlvbnMuYWNRdWVyeUJv eC5wYXJlbnROb2RlLm9mZnNldFdpZHRoOnRoaXMub3B0aW9ucy5hY01pbldpZHRo LG49cGFyc2VJbnQobiwxMCktMTMsKG4+PTA/bjowKSsicHgifSxBQ0dyb3dXaW5k b3c6ZnVuY3Rpb24oKXtmb3IodmFyIG49MCxyLGksdD0wO3Q8cGFyc2VJbnQodGhp cy5vcHRpb25zLmFjTGlzdERpdi5jaGlsZE5vZGVzLmxlbmd0aCwxMCk7dCsrKW4r PXBhcnNlSW50KHRoaXMub3B0aW9ucy5hY0xpc3REaXYuY2hpbGROb2Rlc1t0XS5v ZmZzZXRIZWlnaHQsMTApO24/KHI9bjx0aGlzLm9wdGlvbnMuYWNMaXN0RGl2Lm9m ZnNldEhlaWdodD8tMToxLGk9cGFyc2VJbnQodGhpcy5vcHRpb25zLmFjTGlzdERp di5zdHlsZS5oZWlnaHQsMTApK3RoaXMub3B0aW9ucy5BQ0dyb3dBbW91bnQqcix0 aGlzLm9wdGlvbnMuYWNMaXN0RGl2LnN0eWxlLmhlaWdodD1pKyJweCIsdGhpcy5B Q0lmcmFtZVNpemUoaSksaTxuLXRoaXMub3B0aW9ucy5BQ0dyb3dBbW91bnR8fCh0 aGlzLm9wdGlvbnMuYWNMaXN0RGl2LnN0eWxlLmhlaWdodD1uKyJweCIsdGhpcy5B Q0lmcmFtZVNpemUobiksY2xlYXJUaW1lb3V0KHRoaXMub3B0aW9ucy5hY2dyb3d0 aW1lcikpKToodGhpcy5vcHRpb25zLmFjTGlzdERpdi5zdHlsZS5oZWlnaHQ9ImF1 dG8iLHRoaXMuQUNJZnJhbWVTaXplKHRoaXMub3B0aW9ucy5hY0xpc3REaXYuc3R5 bGUuaGVpZ2h0KSxjbGVhclRpbWVvdXQodGhpcy5vcHRpb25zLmFjZ3Jvd3RpbWVy KSksdGhpcy5vcHRpb25zLmhhbmRsZVJlc2l6ZSYmdGhpcy5vcHRpb25zLmhhbmRs ZVJlc2l6ZSh0aGlzLm9wdGlvbnMuYWNMaXN0RGl2KX0sQUNTaHJpbmtXaW5kb3c6 ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuYWNMaXN0RGl2LnN0eWxlLmhlaWdo dCE9ImF1dG8iJiZ0aGlzLm9wdGlvbnMuYWNMaXN0RGl2KXt2YXIgdD1wYXJzZUlu dCh0aGlzLm9wdGlvbnMuYWNMaXN0RGl2LnN0eWxlLmhlaWdodCwxMCktMTI7dD10 PjA/dDowLHRoaXMub3B0aW9ucy5hY0xpc3REaXYuc3R5bGUuaGVpZ2h0PXQrInB4 Iix0aGlzLkFDSWZyYW1lU2l6ZSh0aGlzLm9wdGlvbnMuYWNMaXN0RGl2LnN0eWxl LmhlaWdodCkscGFyc2VJbnQodGhpcy5vcHRpb25zLmFjTGlzdERpdi5zdHlsZS5o ZWlnaHQsMTApPDEzJiYodGhpcy5vcHRpb25zLmFjTGlzdERpdi5zdHlsZS52aXNp YmlsaXR5PSJoaWRkZW4iLHRoaXMuQUNJZnJhbWVWaXNpYmxlKHRoaXMub3B0aW9u cy5hY0xpc3REaXYuc3R5bGUudmlzaWJpbGl0eSksY2xlYXJUaW1lb3V0KHRoaXMu b3B0aW9ucy5hY2dyb3d0aW1lcikpfWVsc2UgdGhpcy5vcHRpb25zLmFjTGlzdERp di5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHRoaXMub3B0aW9ucy5hY0xpc3RE aXYuc3R5bGUuaGVpZ2h0PSIxcHgiLHRoaXMuQUNJZnJhbWVWaXNpYmxlKHRoaXMu b3B0aW9ucy5hY0xpc3REaXYuc3R5bGUudmlzaWJpbGl0eSksdGhpcy5BQ0lmcmFt ZVNpemUodGhpcy5vcHRpb25zLmFjTGlzdERpdi5zdHlsZS5oZWlnaHQpLGNsZWFy VGltZW91dCh0aGlzLm9wdGlvbnMuYWNncm93dGltZXIpO3RoaXMub3B0aW9ucy5o YW5kbGVSZXNpemUmJnRoaXMub3B0aW9ucy5oYW5kbGVSZXNpemUodGhpcy5vcHRp b25zLmFjTGlzdERpdil9LEFDR2V0U3VnZ2VzdGlvbnM6ZnVuY3Rpb24oKXt2YXIg dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWNTY3JpcHQiKSxuO3QmJnRoaXMu b3B0aW9ucy5hY2hlYWQucmVtb3ZlQ2hpbGQodCksbj1kb2N1bWVudC5jcmVhdGVF bGVtZW50KCJTQ1JJUFQiKSxuLmlkPSJhY1NjcmlwdCIsbi5zZXRBdHRyaWJ1dGUo InR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKSxuLnNyYz10aGlzLm9wdGlvbnMuYWNV UkwrIi9BQ1NlYXJjaFN1Z2dlc3QuYXNweD9lbGVpZD0iK3RoaXMub3B0aW9ucy5h Y1F1ZXJ5Qm94LmlkKyImbGNpZD0iK3RoaXMub3B0aW9ucy5sY2lkKyImcXVlcnk9 IitlbmNvZGVVUklDb21wb25lbnQodGhpcy5vcHRpb25zLmFjT2xkVmFsdWUpLHRo aXMub3B0aW9ucy5hY2hlYWQuYXBwZW5kQ2hpbGQobil9LEFDQ2xpY2tIYW5kbGVy OmZ1bmN0aW9uKG4sdCl7dmFyIHU9dGhpcy5BQ1NyY0VsKG4pLGY9dGhpcy5BQ0lz Q2hpbGQodSx0aGlzLm9wdGlvbnMuYWNMaXN0RGl2KSxlLGkscjtyZXR1cm4gdT09 PXRoaXMub3B0aW9ucy5hY1F1ZXJ5Qm94JiYhdD8hMTohZiYmKCF0aGlzLm9wdGlv bnMuaGFuZGxlUmVzaXplfHwhdGhpcy5BQ0lzQ2hpbGQodSx0aGlzLm9wdGlvbnMu YWNMaXN0RGl2LnBhcmVudE5vZGUpKT8odGhpcy5BQ0hpZGVUYXJnZXQoKSwhMSk6 KGU9ITAsdGhpcy5vcHRpb25zLmFjTGlzdERpdiYmKGk9dGhpcy5vcHRpb25zLmFj UXVlcnlCb3gscj10aGlzLm9wdGlvbnMuYWNMaXN0RGl2LmNoaWxkTm9kZXNbaS5z ZWxlY3RlZEluZGV4XSxmJiZyJiYoaS5wcmV2aW91c1NpYmxpbmcuZGlzYWJsZWQ9 ITEsaS5wcmV2aW91c1NpYmxpbmcuc2V0QXR0cmlidXRlKCJuYW1lIiwicWlkIiks aS5wcmV2aW91c1NpYmxpbmcudmFsdWU9ci5nZXRBdHRyaWJ1dGUoInN1Z2dlc3Rp b25JZCIpLGkudmFsdWU9ci5nZXRBdHRyaWJ1dGUoInRleHRWYWwiKSxpLmZvY3Vz KCksdGhpcy5BQ1NlbGVjdFRleHQobiksdGhpcy5vcHRpb25zLmFjT2xkVmFsdWU9 aS52YWx1ZSx0aGlzLm9wdGlvbnMuc3RhdHNPYmomJih0aGlzLm9wdGlvbnMuc3Rh dHNPYmouZXZlbnRDb2xsZWN0aW9uSWQ9U2V0TG9nQ29sbGVjdGlvbkJpdCh0aGlz Lm9wdGlvbnMuc3RhdHNPYmouZXZlbnRDb2xsZWN0aW9uSWQsNDEpKSxlPSExKSx0 aGlzLm9wdGlvbnMuYWNMaXN0RGl2JiZmJiZ0aGlzLkFDSGlkZVRhcmdldCgpKSxl KX0sQUNJbml0U3VnZ2VzdGlvbnM6ZnVuY3Rpb24obil7Zm9yKHZhciBpLHIsdSx0 PTA7dDx0aGlzLm9wdGlvbnMuYWNSZXNlcnZlZEtleXMubGVuZ3RoO3QrKylpZih0 aGlzLkFDR2V0S2V5Q29kZShuKT09dGhpcy5vcHRpb25zLmFjUmVzZXJ2ZWRLZXlz W3RdKXJldHVybjtpPXRoaXMub3B0aW9ucy5hY1F1ZXJ5Qm94LHRoaXMuQUNHZXRL ZXlDb2RlKGkpPT05JiZ0aGlzLkFDQ2xpY2tIYW5kbGVyKGkpLGkuc2VsZWN0ZWRJ bmRleD0tMSx0aGlzLkFDSGlnaGxpZ2h0KCksdGhpcy5vcHRpb25zLmFjTmV3VmFs dWU9aS52YWx1ZT9pLnZhbHVlLkFDUmVtb3ZlU3BhY2VzKCk6IiI7aWYodGhpcy5v cHRpb25zLmFjTm9WYWwhPT0iIil7aWYodGhpcy5vcHRpb25zLmFjTm9WYWwudG9M b3dlckNhc2UoKT09dGhpcy5vcHRpb25zLmFjTmV3VmFsdWUuc3Vic3RyaW5nKDAs dGhpcy5vcHRpb25zLmFjTm9WYWwubGVuZ3RoKS50b0xvd2VyQ2FzZSgpKXJldHVy bjt0aGlzLm9wdGlvbnMuYWNOb1ZhbD0iIn1mb3IodD0wO3Q8dGhpcy5vcHRpb25z Lm5vbkNoYXJLZXlzLmxlbmd0aDt0KyspaWYodGhpcy5BQ0dldEtleUNvZGUobik9 PXRoaXMub3B0aW9ucy5ub25DaGFyS2V5c1t0XSl7aS5wcmV2aW91c1NpYmxpbmcu ZGlzYWJsZWQ9ITE7cmV0dXJufWkucHJldmlvdXNTaWJsaW5nLmRpc2FibGVkPSEw LHRoaXMub3B0aW9ucy5hY09sZFZhbHVlLnRvTG93ZXJDYXNlKCk9PXRoaXMub3B0 aW9ucy5hY05ld1ZhbHVlLnRvTG93ZXJDYXNlKCl8fHRoaXMub3B0aW9ucy5hY05l d1ZhbHVlLmxlbmd0aDx0aGlzLm9wdGlvbnMuc3RhcnRDaGFyP3RoaXMub3B0aW9u cy5hY05ld1ZhbHVlLmxlbmd0aDx0aGlzLm9wdGlvbnMuc3RhcnRDaGFyJiYodGhp cy5vcHRpb25zLmRvTmV4dENhbGw9ITAsdGhpcy5BQ0hpZGVUYXJnZXQoKSx0aGlz Lm9wdGlvbnMuYWNPbGRWYWx1ZT10aGlzLm9wdGlvbnMuYWNOZXdWYWx1ZSk6KHRo aXMub3B0aW9ucy5hY3RpbWVyJiZjbGVhclRpbWVvdXQodGhpcy5vcHRpb25zLmFj dGltZXIpLHI9dGhpcyx0aGlzLm9wdGlvbnMuZG9OZXh0Q2FsbHx8KHU9bmV3IFJl Z0V4cCgiXiIrdGhpcy5vcHRpb25zLmFjT2xkVmFsdWUuUmVtb3ZlUmVnZXhDaHJz KCksImkiKSx0aGlzLm9wdGlvbnMuYWNOZXdWYWx1ZS5tYXRjaCh1KT90aGlzLkFD SGlkZVRhcmdldCgpOnRoaXMub3B0aW9ucy5kb05leHRDYWxsPSEwKSx0aGlzLm9w dGlvbnMuZG9OZXh0Q2FsbCYmKHRoaXMub3B0aW9ucy5hY09sZFZhbHVlPXRoaXMu b3B0aW9ucy5hY05ld1ZhbHVlLHRoaXMub3B0aW9ucy5hY3RpbWVyPXNldFRpbWVv dXQoZnVuY3Rpb24obil7ci5BQ0dldFN1Z2dlc3Rpb25zKG4pfSwxMDApKSl9LEVy cm9yU3VnZ2VzdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm59LE91dHB1dFN1Z2dlc3Rp b25zOmZ1bmN0aW9uKG4sdCl7dmFyIHUsZSxpLHIsZixvO3RyeXt0aGlzLlBvcEJ1 YmJsZSgpO2lmKHQ9PT0iIil7dGhpcy5vcHRpb25zLmFjTm9WYWw9bix0aGlzLkFD SGlkZVRhcmdldCgpO3JldHVybn1mb3IodGhpcy5vcHRpb25zLmFjTm9WYWw9IiIs dGhpcy5vcHRpb25zLnN0YXRzT2JqJiYodGhpcy5vcHRpb25zLnN0YXRzT2JqLmV2 ZW50Q29sbGVjdGlvbklkPVNldExvZ0NvbGxlY3Rpb25CaXQodGhpcy5vcHRpb25z LnN0YXRzT2JqLmV2ZW50Q29sbGVjdGlvbklkLDQwKSx0aGlzLm9wdGlvbnMuc3Rh dHNPYmouZmxleElkPTExLHRoaXMub3B0aW9ucy5zdGF0c09iai5mbGV4VmFsdWUx PW4uc3Vic3RyKDAsMjU2KSksdT1bXSxpPTA7aTx0Lmxlbmd0aDtpKz0yKXUucHVz aCh0aGlzLkFDU3VnZ2VzdGlvbih0W2ldLHRbaSsxXSkpO3U9dGhpcy5BQ1NvcnQo dSk7aWYodS5sZW5ndGg9PT0wKXt0aGlzLm9wdGlvbnMuZG9OZXh0Q2FsbD0hMSx0 aGlzLkFDSGlkZVRhcmdldCgpO3JldHVybn1mb3IoZT10aGlzLHRoaXMub3B0aW9u cy5hY0xpc3REaXYuaW5uZXJIVE1MPSIiLG49bi5SZW1vdmVSZWdleENocnMoKSxp PTA7aTx1Lmxlbmd0aDtpKyspcj10aGlzLm9wdGlvbnMuYWNOb2RlLmNsb25lTm9k ZSghMCksZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksci5zZXRBdHRy aWJ1dGUoInN1Z2dlc3Rpb25JZCIsdVtpXS5JRCksci5zZXRBdHRyaWJ1dGUoInRl eHRWYWwiLHVbaV0uU3VnZ2VzdGlvbiksci5zZXRBdHRyaWJ1dGUoInF1ZXJ5VmFs IixuKSxmLmNsYXNzTmFtZT0iZ3NzX2FjX2R0eHQiLGYuaWQ9Zi5jbGFzc05hbWUr aSxmLmlubmVySFRNTD10aGlzLkJvbGRDaGFycyh1W2ldLlN1Z2dlc3Rpb24sbiks ci5hcHBlbmRDaGlsZChmKSx0aGlzLkFDQWRkRXZ0KHIsIm1vdXNlb3ZlciIsZnVu Y3Rpb24obil7ZS5hY01vdXNlSGlnaGxpZ2h0KG4pfSksdGhpcy5BQ0FkZEV2dChm LCJtb3VzZW92ZXIiLGZ1bmN0aW9uKG4pe2UuYWNNb3VzZUhpZ2hsaWdodChuKX0p LHRoaXMuQUNBZGRFdnQociwia2V5dXAiLGZ1bmN0aW9uKG4pe2UuQmxvd0J1YmJs ZShuKX0pLHRoaXMuQUNBZGRFdnQociwibW91c2VvdmVyIixmdW5jdGlvbihuKXtl LkJsb3dCdWJibGUobil9KSx0aGlzLm9wdGlvbnMuYWNMaXN0RGl2LmFwcGVuZENo aWxkKHIpLGYub2Zmc2V0V2lkdGg+ci5vZmZzZXRXaWR0aCYmKHIuc2V0QXR0cmli dXRlKCJiYWxsb29uIiwhMCksci5hcHBlbmRDaGlsZCh0aGlzLm9wdGlvbnMuQUNF bGxpcHNpcy5jbG9uZU5vZGUoITApKSk7dGhpcy5BQ0RvU2hvd1RhcmdldCgpLG89 dGhpcy5BQ0Ryb3BXaWR0aCgpLHRoaXMub3B0aW9ucy5hY0xpc3REaXYucGFyZW50 Tm9kZS5zdHlsZS53aWR0aD1wYXJzZUludChvKS0xKyJweCIsdGhpcy5vcHRpb25z LmFjTGlzdERpdi5zdHlsZS53aWR0aD1vfWNhdGNoKHMpe3RoaXMuQUNIaWRlVGFy Z2V0KCl9fSxCb2xkQ2hhcnM6ZnVuY3Rpb24obix0KXt2YXIgaT1uLGYsdSxyO3Ry eXtpPWkucmVwbGFjZSgvPC9naSwiJmx0OyIpLnJlcGxhY2UoLz4vZ2ksIiZndDsi KSx0PXQucmVwbGFjZSgvPC9naSwiJmx0OyIpLnJlcGxhY2UoLz4vZ2ksIiZndDsi KTtzd2l0Y2godGhpcy5vcHRpb25zLmNoYXJib2xkaW5nKXtjYXNlIDE6cj1uZXcg UmVnRXhwKHQsImkiKSxpPWkucmVwbGFjZShyLCI8Yj4kJjwvYj4iKTticmVhaztj YXNlIDI6cj1uZXcgUmVnRXhwKHQsImdpIiksaT1pLnJlcGxhY2UociwiPGI+JCY8 L2I+Iik7YnJlYWs7Y2FzZSAzOmZvcihmPXQuc3BsaXQoL1xzKy9nKSx1PTA7dTxm Lmxlbmd0aC0xO3UrKylyPW5ldyBSZWdFeHAoIihefFxccykoPyE8fDwvfDxiPiko IitmW3VdKyIpKD8hPnw8L2I+KShcXGJ8XFxzKSIsImdpIiksaT1pLnJlcGxhY2Uo ciwiJDE8Yj4kMjwvYj4kMyIpO3I9bmV3IFJlZ0V4cCgiKF58XFxzKSg/ITx8PC98 PGI+KSgiK2ZbdV0rIikoPyE+fDwvYj4pIiwiZ2kiKSxpPWkucmVwbGFjZShyLCIk MTxiPiQyPC9iPiIpO2JyZWFrO2Nhc2UgNDpmb3IoZj10LnNwbGl0KC9ccysvZyks dT0wO3U8Zi5sZW5ndGg7dSsrKXI9bmV3IFJlZ0V4cCgiKD8hPHw8L3w8Yj4pKCIr Zlt1XSsiKSg/IT58PC9iPikiLCJnaSIpLGk9aS5yZXBsYWNlKHIsIjxiPiQmPC9i PiIpfX1jYXRjaChlKXtyZXR1cm4gbn1yZXR1cm4gaX0sQmxvd0J1YmJsZTpmdW5j dGlvbihuKXt2YXIgdCxpLHIsdTtpZighdGhpcy5vcHRpb25zLmRvYnViYmxlKXJl dHVybjt0PXRoaXMuQUNTcmNFbChuKTt3aGlsZSh0LnRhZ05hbWU9PSJTUEFOInx8 dC50YWdOYW1lPT0iQiIpdD10LnBhcmVudE5vZGU7aWYoIXQuZ2V0QXR0cmlidXRl KCJiYWxsb29uIikpe3RoaXMuUG9wQnViYmxlKCk7cmV0dXJufWk9ZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoImdzc19hY19idGRpdiIpLHI9ZG9jdW1lbnQuZ2V0RWxl bWVudEJ5SWQoImdzc19hY19idGlmcmFtZSIpLGl8fCh0aGlzLm9wdGlvbnMuYWNM aXN0RGl2LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcy5vcHRpb25zLkFDQnVi YmxlVGV4dE5vZGUpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdzc19hY19i dGRpdiIpLHRoaXMub3B0aW9ucy5BQ0J1YmJsZUlmcmFtZUhhY2smJih0aGlzLm9w dGlvbnMuYWNMaXN0RGl2LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcy5vcHRp b25zLkFDQnViYmxlSWZyYW1lSGFjaykscj1kb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgiZ3NzX2FjX2J0aWZyYW1lIikpLHU9dGhpcyxpLnN0eWxlLm9wYWNpdHk9dGhp cy5vcHRpb25zLmJ0b3BhYyxpLnN0eWxlLmZpbHRlcj0icHJvZ2lkOkRYSW1hZ2VU cmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKHN0eWxlPTAsIG9wYWNpdHk9Iit0aGlz Lm9wdGlvbnMuYnRvcGFjKyIpIixjbGVhckludGVydmFsKHRoaXMuYWNidWJibGVp bnRpbWVyKSx0aGlzLm9wdGlvbnMuYWNidWJibGVpbnRpbWVyPXNldEludGVydmFs KGZ1bmN0aW9uKCl7dS5GYWRlSW5CdWJibGUoKX0sNSkpLGRvY3VtZW50LmdldEVs ZW1lbnRCeUlkKCJnc3NfYWNfYnR0eHQiKS5pbm5lckhUTUw9dGhpcy5DaGFyU3Vi c2V0KHQuZ2V0QXR0cmlidXRlKCJ0ZXh0VmFsIiksdC5nZXRBdHRyaWJ1dGUoInF1 ZXJ5VmFsIikpLGkuc3R5bGUudG9wPXQub2Zmc2V0VG9wK3Qub2Zmc2V0SGVpZ2h0 LzIrInB4Iix0aGlzLm9wdGlvbnMuYnViYmxlc2lkZT09InJpZ2h0IiYmKGkuc3R5 bGUubGVmdD10aGlzLm9wdGlvbnMuYWNMaXN0RGl2LnN0eWxlLndpZHRoKSxyJiYo ci5zdHlsZS50b3A9aS5zdHlsZS50b3Asci5zdHlsZS5oZWlnaHQ9aS5vZmZzZXRI ZWlnaHQrInB4Iil9LFBvcEJ1YmJsZTpmdW5jdGlvbigpe3ZhciBuPWRvY3VtZW50 LmdldEVsZW1lbnRCeUlkKCJnc3NfYWNfYnRkaXYiKSx0O24mJnRoaXMub3B0aW9u cy5hY2J1YmJsZW91dHRpbWVyPT1udWxsJiYoY2xlYXJJbnRlcnZhbCh0aGlzLm9w dGlvbnMuYWNidWJibGVvdXR0aW1lciksdD10aGlzLHRoaXMub3B0aW9ucy5idG9w YWM9MTAwLG4uc3R5bGUub3BhY2l0eT10aGlzLm9wdGlvbnMuYnRvcGFjLzEwMCxu LnN0eWxlLmZpbHRlcj0icHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0 LkFscGhhKHN0eWxlPTAsIG9wYWNpdHk9Iit0aGlzLm9wdGlvbnMuYnRvcGFjKyIp Iix0aGlzLm9wdGlvbnMuYWNidWJibGVvdXR0aW1lcj1zZXRJbnRlcnZhbChmdW5j dGlvbigpe3QuRmFkZU91dEJ1YmJsZSgpfSw1KSl9LEZhZGVJbkJ1YmJsZTpmdW5j dGlvbigpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJnc3NfYWNfYnRk aXYiKTtuJiYodGhpcy5vcHRpb25zLmJ0b3BhYz10aGlzLm9wdGlvbnMuYnRvcGFj KzEwLG4uc3R5bGUub3BhY2l0eT10aGlzLm9wdGlvbnMuYnRvcGFjLzEwMCxuLnN0 eWxlLmZpbHRlcj0icHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFs cGhhKHN0eWxlPTAsIG9wYWNpdHk9Iit0aGlzLm9wdGlvbnMuYnRvcGFjKyIpIix0 aGlzLm9wdGlvbnMuYnRvcGFjPDEwMHx8KGNsZWFySW50ZXJ2YWwodGhpcy5vcHRp b25zLmFjYnViYmxlaW50aW1lciksdGhpcy5vcHRpb25zLmJ0b3BhYz0wKSl9LEZh ZGVPdXRCdWJibGU6ZnVuY3Rpb24oKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50 QnlJZCgiZ3NzX2FjX2J0ZGl2IiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi Z3NzX2FjX2J0aWZyYW1lIik7biYmKHRoaXMub3B0aW9ucy5idG9wYWM9dGhpcy5v cHRpb25zLmJ0b3BhYy0xMCxuLnN0eWxlLm9wYWNpdHk9dGhpcy5vcHRpb25zLmJ0 b3BhYy8xMDAsbi5zdHlsZS5maWx0ZXI9InByb2dpZDpEWEltYWdlVHJhbnNmb3Jt Lk1pY3Jvc29mdC5BbHBoYShvcGFjaXR5PSIrdGhpcy5vcHRpb25zLmJ0b3BhYysi KSIsdGhpcy5vcHRpb25zLmJ0b3BhYz4wfHwoY2xlYXJJbnRlcnZhbCh0aGlzLm9w dGlvbnMuYWNidWJibGVvdXR0aW1lciksdGhpcy5vcHRpb25zLmFjYnViYmxlb3V0 dGltZXI9bnVsbCx0aGlzLm9wdGlvbnMuYnRvcGFjPTAsdCYmdC5wYXJlbnROb2Rl LnJlbW92ZUNoaWxkKHQpLG4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKSkpfSxD aGFyU3Vic2V0OmZ1bmN0aW9uKG4pe3ZhciBpPW4uc3Vic3RyaW5nKDAsdGhpcy5v cHRpb25zLmJ1YmJsZWNoYXJsaW1pdCk7cmV0dXJuIG4ubGVuZ3RoPnRoaXMub3B0 aW9ucy5idWJibGVjaGFybGltaXQmJihpKz0iLi4uIiksaX0sQUNTb3J0OmZ1bmN0 aW9uKG4pe3ZhciB0PWZ1bmN0aW9uKG4sdCl7cmV0dXJuIG4uU3VnZ2VzdGlvbi5s ZW5ndGgtdC5TdWdnZXN0aW9uLmxlbmd0aH07cmV0dXJuIG4uc29ydCh0KX0sQUNB ZGRFdnQ6ZnVuY3Rpb24obix0LGkpe01TLlN1cHBvcnQuQUMuQWRkRXZlbnQobix0 LGkpfSxBQ0tpbGxFdnQ6ZnVuY3Rpb24obix0LGkpe01TLlN1cHBvcnQuQUMuS2ls bEV2ZW50KG4sdCxpKX0sQUNIYW5kbGVLZXlzRG93bjpmdW5jdGlvbihuKXt2YXIg cj10aGlzLkFDR2V0S2V5Q29kZShuKSx0PXRoaXMuQUNTcmNFbChuKSxvPXRoaXMu QUNEcm9wV2lkdGgoKSxmO3RoaXMub3B0aW9ucy5hY0xpc3REaXYucGFyZW50Tm9k ZS5zdHlsZS53aWR0aD1wYXJzZUludChvKS0xKyJweCIsdGhpcy5vcHRpb25zLmFj TGlzdERpdi5zdHlsZS53aWR0aD1vO2lmKHRoaXMub3B0aW9ucy5hY0xpc3REaXYm JnRoaXMub3B0aW9ucy5hY0xpc3REaXYuc3R5bGUmJnRoaXMub3B0aW9ucy5hY0xp c3REaXYuc3R5bGUudmlzaWJpbGl0eSE9ImhpZGRlbiIpe3ZhciBlPXRoaXMub3B0 aW9ucy5hY0xpc3REaXYuY2hpbGROb2Rlcy5sZW5ndGgsaT10LnNlbGVjdGVkSW5k ZXgsdT10aGlzLm9wdGlvbnMuYWNMaXN0RGl2LmNoaWxkTm9kZXM7aWYocj09NDAp cmV0dXJuIGk8ZS0xP3Quc2VsZWN0ZWRJbmRleCsrOmk8ZS0xfHwodC5zZWxlY3Rl ZEluZGV4PS0xKSxpPXQuc2VsZWN0ZWRJbmRleCx0aGlzLkFDSGlnaGxpZ2h0KCks aTwwPyh0LnZhbHVlPXRoaXMub3B0aW9ucy5hY09sZFZhbHVlLHRoaXMuUG9wQnVi YmxlKCkpOihmPXVbaV0uZ2V0QXR0cmlidXRlKCJ0ZXh0VmFsIiksZiE9bnVsbCYm KHQucHJldmlvdXNTaWJsaW5nLmRpc2FibGVkPSExLHQucHJldmlvdXNTaWJsaW5n LnNldEF0dHJpYnV0ZSgibmFtZSIsInFpZCIpLHQucHJldmlvdXNTaWJsaW5nLnZh bHVlPXVbaV0uZ2V0QXR0cmlidXRlKCJzdWdnZXN0aW9uSWQiKSx0LnZhbHVlPWYp LHRoaXMuQmxvd0J1YmJsZSh1W2ldKSksdGhpcy5BQ1NlbGVjdFRleHQobiksbi5y ZXR1cm5WYWx1ZT0hMSwhMTtpZihyPT0zOClyZXR1cm4gaTwwP2k9PS0xJiYodC5z ZWxlY3RlZEluZGV4PWUtMSk6dC5zZWxlY3RlZEluZGV4LS0saT10LnNlbGVjdGVk SW5kZXgsdGhpcy5BQ0hpZ2hsaWdodCgpLGk8MD8odC52YWx1ZT10aGlzLm9wdGlv bnMuYWNPbGRWYWx1ZSx0aGlzLlBvcEJ1YmJsZSgpKTooZj11W2ldLmdldEF0dHJp YnV0ZSgidGV4dFZhbCIpLGYhPW51bGwmJih0LnZhbHVlPWYpLHRoaXMuQmxvd0J1 YmJsZSh1W2ldKSksdGhpcy5BQ1NlbGVjdFRleHQobiksbi5yZXR1cm5WYWx1ZT0h MSwhMTtpZihyPT0xMyYmaT4tMSlyZXR1cm4gbi5yZXR1cm5WYWx1ZT10aGlzLkFD Q2xpY2tIYW5kbGVyKHVbaV0pLHRoaXMuQUNTdG9wRGVmYXVsdChuKSxuLnJldHVy blZhbHVlO2lmKHI9PTI3KXJldHVybiB0aGlzLkFDSGlkZVRhcmdldCgpLHQudmFs dWU9dGhpcy5vcHRpb25zLmFjT2xkVmFsdWUsdC5mb2N1cygpLHRoaXMuQUNTZWxl Y3RUZXh0KG4pLG4ucmV0dXJuVmFsdWU9ITEsITE7cj09OSYmdGhpcy5BQ0NsaWNr SGFuZGxlcihuLCEwKX1lbHNlIGlmKHI9PTI3KXJldHVybiB0LnZhbHVlPSIiLHQu Zm9jdXMoKSx0aGlzLkFDU2VsZWN0VGV4dChuKSxuLnJldHVyblZhbHVlPSExLCEx fSxBQ1NlbGVjdFRleHQ6ZnVuY3Rpb24obil7aWYoIXRoaXMub3B0aW9ucy5hY09s ZFZhbHVlKXJldHVybjtpZih0aGlzLm9wdGlvbnMuYWNRdWVyeUJveC5jcmVhdGVU ZXh0UmFuZ2Upe3ZhciB0PXRoaXMub3B0aW9ucy5hY1F1ZXJ5Qm94LmNyZWF0ZVRl eHRSYW5nZSgpO3QubW92ZVN0YXJ0KCJjaGFyYWN0ZXIiLHRoaXMub3B0aW9ucy5h Y09sZFZhbHVlLmxlbmd0aCksdC5zZWxlY3QoKX1lbHNlIHRoaXMub3B0aW9ucy5h Y1F1ZXJ5Qm94LnNldFNlbGVjdGlvblJhbmdlJiYodGhpcy5vcHRpb25zLmFjUXVl cnlCb3guZm9jdXMoKSx0aGlzLm9wdGlvbnMuYWNRdWVyeUJveC5zZXRTZWxlY3Rp b25SYW5nZSh0aGlzLm9wdGlvbnMuYWNPbGRWYWx1ZS5sZW5ndGgsdGhpcy5vcHRp b25zLmFjUXVlcnlCb3gudmFsdWUubGVuZ3RoKSk7dGhpcy5BQ1N0b3BEZWZhdWx0 KG4pfSxhY01vdXNlSGlnaGxpZ2h0OmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuQUNT cmNFbChuKSxyLGk7d2hpbGUodC50YWdOYW1lPT0iU1BBTiJ8fHQudGFnTmFtZT09 IkIiKXQ9dC5wYXJlbnROb2RlO2ZvcihyPXRoaXMub3B0aW9ucy5hY0xpc3REaXYu Y2hpbGROb2RlcyxpPTA7aTxyLmxlbmd0aDtpKyspcltpXT09dCYmKHRoaXMub3B0 aW9ucy5hY1F1ZXJ5Qm94LnNlbGVjdGVkSW5kZXg9aSk7dGhpcy5BQ0hpZ2hsaWdo dCgpfSxBQ0hpZ2hsaWdodDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLm9wdGlv bnMuYWNMaXN0RGl2LmNoaWxkTm9kZXMsbj0wO248dC5sZW5ndGg7bisrKXRbbl0u Y2xhc3NOYW1lPT0iYWNTdWdEaXYiJiYobiE9dGhpcy5vcHRpb25zLmFjUXVlcnlC b3guc2VsZWN0ZWRJbmRleD8odGhpcy5IaWdobGlnaHRFbHModFtuXSwiYmFja2dy b3VuZCIsdGhpcy5vcHRpb25zLmNscndpbiksdGhpcy5IaWdobGlnaHRFbHModFtu XSwiY29sb3IiLHRoaXMub3B0aW9ucy5jbHJ3aW50eHQpKToodGhpcy5IaWdobGln aHRFbHModFtuXSwiYmFja2dyb3VuZCIsdGhpcy5vcHRpb25zLmNscmhpZ2gpLHRo aXMuSGlnaGxpZ2h0RWxzKHRbbl0sImNvbG9yIix0aGlzLm9wdGlvbnMuY2xyaGln aHR4dCkpKX0sSGlnaGxpZ2h0RWxzOmZ1bmN0aW9uKG4sdCxpKXtpZihuJiZuLnRh Z05hbWUpe24uc3R5bGVbdF09aTtpZihuLmNoaWxkTm9kZXMpZm9yKHZhciByPTA7 cjxuLmNoaWxkTm9kZXMubGVuZ3RoO3IrKyl0aGlzLkhpZ2hsaWdodEVscyhuLmNo aWxkTm9kZXNbcl0sdCxpKX19LEFDU3RvcERlZmF1bHQ6ZnVuY3Rpb24obil7d2lu ZG93LmV2ZW50Pyh3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlPSEwLHdpbmRvdy5l dmVudC5yZXR1cm5WYWx1ZT0hMSk6bi5wcmV2ZW50RGVmYXVsdCYmbi5wcmV2ZW50 RGVmYXVsdCgpfSxBQ0hpZGVUYXJnZXQ6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMu YWNMaXN0RGl2JiYodGhpcy5BQ0RvSGlkZVRhcmdldCgpLHRoaXMub3B0aW9ucy5h Y1F1ZXJ5Qm94LnNlbGVjdGVkSW5kZXg9LTEpfSxBQ0dldEtleUNvZGU6ZnVuY3Rp b24obil7cmV0dXJuIG4/bi5rZXlDb2RlP24ua2V5Q29kZTpuLmNoYXJDb2RlP24u Y2hhckNvZGU6bnVsbDpudWxsfSxBQ0NvbXB1dGVkU3R5bGU6ZnVuY3Rpb24obix0 KXt2YXIgaT0iIjtyZXR1cm4gZG9jdW1lbnQuZGVmYXVsdFZpZXcmJmRvY3VtZW50 LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGU/aT1kb2N1bWVudC5kZWZhdWx0 Vmlldy5nZXRDb21wdXRlZFN0eWxlKG4sbnVsbClbdF06bi5jdXJyZW50U3R5bGUm Jih0PXQucmVwbGFjZSgvLSh3KS9nLGZ1bmN0aW9uKG4sdCl7cmV0dXJuIHQudG9V cHBlckNhc2UoKX0pLGk9bi5jdXJyZW50U3R5bGVbdF0pLGl9LEFDSXNDaGlsZDpm dW5jdGlvbihuLHQpe2lmKCFufHwhdClyZXR1cm4hMTt2YXIgaT1uLnBhcmVudE5v ZGU7cmV0dXJuIHQ9PWk/ITA6aT90aGlzLkFDSXNDaGlsZChpLHQpOiExfSxBQ1Ny Y0VsOmZ1bmN0aW9uKG4pe2lmKG4pe2lmKG4uc3JjRWxlbWVudClyZXR1cm4gbi5z cmNFbGVtZW50O2lmKG4udGFyZ2V0KXJldHVybiBuLnRhcmdldH1yZXR1cm4gbn0s QUNNYWtlSWZyYW1lSGFjazpmdW5jdGlvbihuLHQpe2lmKCF0aGlzLm9wdGlvbnMu YWNJZnJhbWVIYWNrKXt0aGlzLm9wdGlvbnMuYWNJZnJhbWVIYWNrPWRvY3VtZW50 LmNyZWF0ZUVsZW1lbnQoIklGUkFNRSIpO3ZhciBpPXRoaXMub3B0aW9ucy5hY0lm cmFtZUhhY2suc3R5bGUscj10LnN0eWxlO2kubWFyZ2luVG9wPXIubWFyZ2luVG9w LGkubGVmdD1yLmxlZnQsaS50b3A9ci50b3AsaS52aXNpYmlsaXR5PXIudmlzaWJp bGl0eSxpLndpZHRoPSIxMDAlIixpLmhlaWdodD0iMHB4IixpLnBvc2l0aW9uPXIu cG9zaXRpb24sdGhpcy5vcHRpb25zLmFjSWZyYW1lSGFjay5zdHlsZS5maWx0ZXI9 InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShzdHlsZT0w LG9wYWNpdHk9MCkiLHRoaXMub3B0aW9ucy5hY0lmcmFtZUhhY2suc3JjPSIiLG4u YXBwZW5kQ2hpbGQodGhpcy5vcHRpb25zLmFjSWZyYW1lSGFjayksdGhpcy5BQ0lm cmFtZVNpemU9ZnVuY3Rpb24obil7aS5oZWlnaHQ9bn0sdGhpcy5BQ0lmcmFtZVZp c2libGU9ZnVuY3Rpb24obil7aS52aXNpYmlsaXR5PW59fX0sQUNTdWdnZXN0aW9u OmZ1bmN0aW9uKG4sdCl7cmV0dXJue0lEOm4sU3VnZ2VzdGlvbjp0fX0sQUNJZnJh bWVTaXplOmZ1bmN0aW9uKCl7fSxBQ0lmcmFtZVZpc2libGU6ZnVuY3Rpb24oKXt9 fSxTdHJpbmcucHJvdG90eXBlLlJlbW92ZVJlZ2V4Q2hycz1mdW5jdGlvbigpe3Zh ciBuPW5ldyBSZWdFeHAoIihcXFxcfFxcLnxcXCt8XFwkfFxcP3xcXCp8XFwofFxc KXxcXFt8XFxdfFxcXnxcXCEpIiwiZyIpO3JldHVybiB0aGlzLnJlcGxhY2Uobiwi XFwkMSIpfTt2YXIgZGJjc1NwYWNlUkU9bmV3IFJlZ0V4cChTdHJpbmcuZnJvbUNo YXJDb2RlKDEyMjg4KSwiZyIpO1N0cmluZy5wcm90b3R5cGUuQUNSZW1vdmVTcGFj ZXM9ZnVuY3Rpb24oKXt2YXIgbj10aGlzLnJlcGxhY2UoZGJjc1NwYWNlUkUsIiAi KTtyZXR1cm4gbj1uLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKSxuLnJlcGxhY2Uo L1xzXHMrL2csIiAiKX07 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=onemscomcomponents.css Content-Type: text/css; name=onemscomcomponents.css Content-Location: http://support.microsoft.com/Styles/onemscomcomponents.css Content-Transfer-Encoding: 8bit .oneMscomComp,.oneMscomComp div,.oneMscomComp h1,.oneMscomComp h2,.oneMscomComp h3,.oneMscomComp h4,.oneMscomComp h5,.oneMscomComp h6,.oneMscomComp li,.oneMscomComp ol,.oneMscomComp p,.oneMscomComp ul{margin:0;padding:0}.oneMscomComp a{cursor:pointer}.oneMscomComp a:link,.oneMscomComp a:visited{text-decoration:none}.oneMscomComp a:hover,.oneMscomComp a:active{text-decoration:underline}.oneMscomComp h1,.oneMscomComp h2,.oneMscomComp h3,.oneMscomComp h4,.oneMscomComp h5,.oneMscomComp h6{font-weight:normal;font-size:100%}.oneMscomComp img{border:none}.oneMscomComp ol,.oneMscomComp ul{list-style-type:none}.oneMscomComp .cssClear{clear:both;height:0;margin:0;padding:0;_line-height:0}.oneMscomComp .png-img{position:relative;overflow:hidden}.oneMscomComp .png-img span{position:absolute;top:-9999px}.oneMscomComp .png-img div{background-position:0 center;background-repeat:no-repeat}.oneMscomComp .png-img .bg-img{display:block;_display:none}.oneMscomComp .png-img .filter-img{display:none;_display:block} ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomListLayout.css Content-Type: text/css; name=oneMscomListLayout.css Content-Location: http://support.microsoft.com/Styles/oneMscomListLayout.css Content-Transfer-Encoding: 8bit .oneMscomList{overflow:hidden;*display:inline-block}.oneMscomListFeatureLayout .mstListFeatureLayoutImgContainer{position:relative;overflow:hidden}.oneMscomListFeatureLayout .mstListFeatureLayoutTitle{padding-bottom:5px;font-size:80%}.oneMscomListFeatureLayout .mstListFeatureLayoutTitle a{text-decoration:none}.oneMscomListFeatureLayout .mstListFeatureLayoutTitleLink{font-weight:bold}.oneMscomListFeatureLayout .mstListFeatureLayoutDesc{font-size:75%}.oneMscomListFeatureLayout .mstListFeatureLayoutButton{padding-top:10px;padding-bottom:10px}.oneMscomListFeatureLayout .mstListFeatureLayoutButton a{border:1px solid navy;text-decoration:none}.oneMscomListFeatureLayout .mstListFeatureLayoutButtonText{padding-left:10px;padding-right:10px}div.oneMscomListTileIconLayout{position:relative;background-repeat:no-repeat;background-position:center}div.oneMscomListTileIconLayoutSmall,div.oneMscomListTileIconLayoutSmall .mstListTileIconLayoutImage{height:145px;width:145px}div.oneMscomListTileIconLayoutSmall .mstListTileIconLayoutImage{*height:auto;*width:auto}div.oneMscomListTileIconLayoutLarge,div.oneMscomListTileIconLayoutLarge .mstListTileIconLayoutImage{height:145px;width:300px}.oneMscomListTileIconLayout a:active,.oneMscomListTileIconLayout a:hover{text-decoration:none}.oneMscomListTileIconLayout .mstListTileIconLayoutLink{height:100%;width:100%;display:block}.oneMscomListTileIconLayout .mstListTileIconLayoutImage{text-align:center;vertical-align:middle;display:table-cell}.oneMscomListTileIconLayout .mstListTileIconLayoutTitle{position:absolute;bottom:0;padding:5px 10px 5px 10px;color:#fff}.oneMscomListTileIconLayout .mstListTileIconLayoutTitle_right{*right:0}.oneMscomListTileIconLayout .mstListTileIconLayoutImage span{*display:inline-block;*height:100%;*width:1px}.oneMscomListTileIconLayout .mstListTileIconLayoutImage *{*vertical-align:middle}div.oneMscomListTileTextLayout{position:relative;background-repeat:no-repeat;background-position:center}div.oneMscomListTileTextLayoutSmall{height:145px;width:145px}div.oneMscomListTileTextLayoutLarge{height:145px;width:300px}div.oneMscomListTileTextLayoutSmall .mstListTileTextLayoutText{height:135px;width:135px}div.oneMscomListTileTextLayoutLarge .mstListTileTextLayoutText{height:135px;width:290px}.oneMscomListTileTextLayout a:active,.oneMscomListTileTextLayout a:hover{text-decoration:none}.oneMscomListTileTextLayout .mstListTileTextLayoutLink{height:100%;width:100%;display:block}.oneMscomListTileTextLayout .mstListTileTextLayoutText{vertical-align:middle;display:table-cell;color:#fff;padding:5px 10px 5px 10px;font-size:85%}.oneMscomListTileTextLayout .mstListTileTextLayoutTitle_right{*right:0}.oneMscomListTileTextLayout .mstListTileTextLayoutText *{*vertical-align:middle}.oneMscomListTileTextLayout .mstListTileTextLayoutText .mstListTileTextLayoutSpan{*display:inline-block;*height:100%;*width:1px}.oneMscomListTileTextLayout .mstListTileTextLayoutText .mstListTileTextLayoutTextSpan{*display:inline-block}.oneMscomListTileTextLayout .mstListTileTextLayoutTitle{position:absolute;bottom:0;padding:5px 10px 5px 10px;color:#fff}.oneMscomListPrimaryTitleLayout{font-size:200%}.oneMscomListSecondaryTitleLayout{font-size:150%}.oneMscomListTextLayout{font-size:75%}.oneMscomListLinkLayout .mstListLinkLayoutLink{font-size:80%}.oneMscomListSpacerLayout{background-repeat:no-repeat;background-position:center}.oneMscomCarouselLayout .mstCarouselLayoutDesc a:hover{text-decoration:none}.oneMscomRatingLayout .mstRatingLayoutStar{background-repeat:no-repeat;background-color:transparent}.oneMscomRatingLayout .mstRatingLayoutStarBig a{height:17px;width:17px}.oneMscomRatingLayout .mstRatingLayoutStarSmall a{height:13px;width:13px;overflow:hidden}.oneMscomRatingLayout .mstRatingTotalStar{background-color:#e1f2fb;text-align:center;height:19px;color:#4f4f4f;font-size:11px}.oneMscomRatingLayout .mstRatingTotalStarSpan{display:inline-block;margin-left:2px;margin-right:2px;margin-top:3px}.oneMscomRatingLayout .mstRatingBinaryNav{background-repeat:no-repeat;background-color:transparent}.oneMscomRatingLayout .mstRatingBinaryNav a{height:18px;width:18px}.oneMscomRatingLayout .mstRatingBinaryMinusOn{background-position:0 0;cursor:pointer}.oneMscomRatingLayout .mstRatingBinaryMinusOff{background-position:0 -36px}.oneMscomRatingLayout .mstRatingBinaryPlusOn{background-position:0 -72px;cursor:pointer}.oneMscomRatingLayout .mstRatingBinaryPlusOff{background-position:0 -108px}.oneMscomRatingLayout .mstRatingBinaryContainer{width:300px}.oneMscomRatingLayout .mstRatingBinaryBarContainer{height:2px;padding-top:8px;padding-left:4px;padding-right:4px}.oneMscomRatingLayout .mstRatingBinaryBarNotLike{width:100%;height:2px}.oneMscomRatingLayout .mstRatingBinaryBarLike{height:100%}.oneMscomRatingLayout .mstRatingTotalBinary{color:#4f4f4f;font-size:11px}.oneMscomListHeroLayout a:hover{text-decoration:none}.oneMscomListHeroLayout .mstHeroCategoryLink{margin-bottom:5px}.oneMscomListHeroLayout .mstHeroTitleLink{font-weight:bold}.oneMscomListHeroLayout .mstHeroTitleContainer .mstHeroDesc{padding:11px 0 13px 0}.oneMscomListHeroLayout .mstHeroTitleContainerRight{padding:0 20px 0 10px}.oneMscomListHeroLayout .mstHeroTitleContainerLeft{padding:0 20px 0 20px}.oneMscomListHeroLayout .mstHeroPlaceholder{margin:0;padding:0}.oneMscomListHeroLayout .mstHeroTitleContainerRight .mstHeroPlaceholder{height:12px}.oneMscomListHeroLayout .mstHeroTitleContainerLeft .mstHeroPlaceholder{height:37px} ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomBlade.css Content-Type: text/css; name=oneMscomBlade.css Content-Location: http://support.microsoft.com/Styles/oneMscomBlade.css Content-Transfer-Encoding: 8bit .mstHdr{width:960px}.mstHdr .mstHdr_PriRow{position:relative;min-height:26px;_height:26px;padding-left:10px;padding-right:10px}.mstHdr .mstHdr_SecRow{position:relative;min-height:26px;_height:26px;padding-right:0}.mstHdr .mstHdr_PriRowBg,.mstHdr .mstHdr_SecRowBg{position:absolute;top:0;bottom:0;left:0;right:0;z-index:-1}.mstHdr .mstHdr_PriRow{z-index:998}.mstHdr .mstHdr_PriRow a{text-decoration:none}.mstHdr .mstHdr_SecRow{z-index:995}.mstHdr .mstHdr_SecRow,.mstHdr .mstHdr_SecRow a:link,.mstHdr .mstHdr_SecRow a:visited,.mstHdr .mstHdr_SecRow a:active,.mstHdr .mstHdr_SecRow a:hover{color:#6a6a6a}.mstHdr .mstHdr_StaticSec11,.mstHdr .mstHdr_StaticSec12,.mstHdr .mstHdr_StaticSec13,.mstHdr .mstHdr_StaticSec14{min-height:1px;_height:1px}.mstHdr .mstHdr_StaticSec11{width:89px}.mstHdr .mstHdr_StaticSec12{width:330px}.mstHdr .mstHdr_StaticSec13{width:340px}.mstHdr .mstHdr_StaticSec14{width:171px}.mstHdr .mstHdr_StaticSec21{width:20%}.mstHdr .mstHdr_StaticSec22{width:80%}.mstHdr .mstHdr_MenuItem,.mstHdr .mstHdr_MenuItemSignIn{float:left;_width:0}.mstHdr .mstHdr_MenuLink a{display:block;padding:0 7px}.mstHdr .mstHdr_MenuLinkTxt,.mstHdr .mstHdr_MenuLinkImg,.mstHdr .mstHdr_MenuLinkDesc{float:left}.mstHdr .mstLcp_DualLangSpan .mstHdr_MenuLinkTxt{float:none}.mstHdr .mstHdr_MenuLinkTxt,.mstHdr .mstHdr_MenuLinkDesc{padding-top:6px;padding-bottom:6px;white-space:nowrap}.mstHdr a:hover .mstHdr_MenuLinkTxt,.mstHdr .selected .mstHdr_MenuLinkTxt,.mstHdr a:hover .mstHdr_MenuLinkDesc,.mstHdr .selected .mstHdr_MenuLinkDesc,.mstHdr span.mstLcp_DualLangSpan a.mstLcp_DualLangLink:hover{color:#ffea41}.mstHdr .mstHdr_StaticSec11 .mstHdr_MenuLinkTxt,.mstHdr .mstHdr_StaticSec13 .mstHdr_MenuLinkImg,.mstHdr .mstHdr_StaticSec14 .mstHdr_MenuLinkImg,.mstHdr .mstHdr_MenuLinkDesc{display:none}.mstHdr .mstHdr_HideMenuLink,.mstHdr .mstHdr_HideMenuLinkImage div.mstHdr_MenuLinkImg,.mstHdr .mstHdr_HideMenuLinkText div.mstHdr_MenuLinkTxt{display:none}.mstHdr .mstHdr_FlyoutPos{position:absolute;top:26px;width:100%;_width:960px}.mstHdr .mstHdr_Flyout{display:none}.mstHdr .mstHdr_mstHdr_FlyoutPosShown .mstHdr_Flyout{display:block}.mstHdr .mstHdr_SecRow .mstHdr_Flyout{background-color:#fff}.mstHdr .mstHdr_SecRow .mstHdr_Flyout,.mstHdr .mstHdr_SecRow .mstHdr_Flyout a:link,.mstHdr .mstHdr_SecRow .mstHdr_Flyout a:visited,.mstHdr .mstHdr_SecRow .mstHdr_Flyout a:active,.mstHdr .mstHdr_SecRow .mstHdr_Flyout a:hover{color:#6a6a6a}.mstHdr .mstHdr_FlyoutBotStrip{width:100%;height:5px;background-color:#ccc}div.mstHdr div.mstHdr_MenuItemLcp{_width:100%;*width:auto;_white-space:nowrap;_float:none}.mstHdr .mstHdr_MenuLinkAnchor{_width:50px}.mstHdr span.mstLcp_DualLangSpan{display:block;padding:6px 0;position:relative}.mstHdr span.mstLcp_DualLangSpan .mstHdr_MenuLinkTxt{padding:0}.mstHdr span.mstLcp_DualLangSpan a,.mstHdr span.mstLcp_DualLangSpan .mstLcp_DualLangSep{float:left}.mstHdr span.mstLcp_DualLangSpan .mstLcp_DualLangLink{display:block;padding:0 7px}.mstHdr .mstLcp{font-size:75%;padding:15px 20px 10px 20px}.mstHdr .mstLcp .mstLcp_Head{margin-bottom:5px}.mstHdr .mstLcp_Heading h3{font-size:228.57%;font-weight:normal;white-space:nowrap;padding-top:.4em;padding-bottom:3px}.mstLcp .mstLcp_LangLinks{position:relative;width:159px;margin-top:15px;margin-bottom:10px}.mstLcp div.mstLcp_LangLinksEmpty{margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}.mstHdr div.mstLcp div.mstLcp_Cols5{width:100%}.mstHdr .mstLcp_LangLinks ul.mstLcp_Col{width:179px;min-height:100%;_height:100%;_white-space:normal}.mstLcp .mstLcp_LangLinks a,.mstLcp .mstLcp_WorldwideLink a{display:block;padding:5px}.mstHdr .mstLcp_LangLinks a:hover,.mstHdr .mstLcp_LangLinks a:active,.mstHdr .mstLcp_WorldwideLink a:hover,.mstHdr .mstLcp_WorldwideLink a:active,.mstHdr .mstLcp_LangLinks a:hover span,.mstHdr .mstLcp_LangLinks a:active span,.mstHdr .mstLcp_WorldwideLink a:hover span,.mstHdr .mstLcp_WorldwideLink a:active span{color:#ffea41;text-decoration:none}.mstLcp .mstLcp_LangLinks li.mstLcp_Hide a:hover,.mstLcp .mstLcp_LangLinks li.mstLcp_Hide a:active{background-color:#fff!important}.mstHdr .mstLcp_WorldwideLink{margin-top:5px;padding-top:5px;width:159px}.mstLcp div.mstLcp_WorldwideLinkEmpty{border-top:solid 0;margin-top:0;padding-top:0}.mstHdr .mstLcp_WorldwideLink a{clear:both;white-space:nowrap}.mstHdr .mstHdr_SignInOut a#idPPScarab{display:block;white-space:nowrap}.mstHdr .mstHdr_SignInOut span#idSIT,.mstHdr .mstHdr_SignInOut span#idSOT{display:block;padding:6px 7px}.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31{width:440px}.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 li{padding-bottom:7px}.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 .mstHdr_PrdSection31_Image{height:50px;width:50px;vertical-align:middle}.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 .mstHdr_PrdSection31_Image .mstHdr_PrdSection31_Image_Inner{height:50px;width:50px;display:table-cell;vertical-align:middle}.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 .mstHdr_PrdSection31_ImageSize{height:45px;width:45px}.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 .mstHdr_PrdSection31_Item .mstHdr_PrdSection31_Text a:link,.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 .mstHdr_PrdSection31_Item .mstHdr_PrdSection31_Text a:visited,.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 .mstHdr_PrdSection31_Item .mstHdr_PrdSection31_Text a:active{font-family:Segoe UI Light,Tahoma,Arial,Verdana,sans-serif;font-size:32px;text-decoration:none;color:#ddd}.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 .mstHdr_PrdSection31_Item .mstHdr_PrdSection31_Text a:hover{color:#ffea41}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32{width:230px;padding-top:0}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 li{padding-bottom:5px}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 ul{padding-bottom:10px}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 ul.first{padding-bottom:0}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 .mstHdr_PrdSection32_GroupHeader a:link,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 .mstHdr_PrdSection32_GroupHeader a:visited,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 .mstHdr_PrdSection32_GroupHeader a:active,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 .mstHdr_PrdSection32_GroupHeader a:hover{font-family:Segoe UI Light,Tahoma,Arial,Verdana,sans-serif;font-size:26px;padding-bottom:0;text-decoration:none;cursor:default;color:#ddd;margin-top:10px}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 .mstHdr_PrdSection32_GroupItem a:link,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 .mstHdr_PrdSection32_GroupItem a:visited,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 .mstHdr_PrdSection32_GroupItem a:active{font-family:Segoe UI,Tahoma,Arial,Verdana,sans-serif;font-size:13px;padding-bottom:0;text-decoration:none;color:#bbb}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection32 .mstHdr_PrdSection32_GroupItem a:hover{color:#ffea41}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33{width:230px}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 li{padding-bottom:4px}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSectio33_Item{padding-top:45px}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSection33_GroupHeader a:link,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSection33_GroupHeader a:visited,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSection33_GroupHeader a:active,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSection33_GroupHeader a:hover{font-family:Segoe UI Light,Tahoma,Arial,Verdana,sans-serif;font-size:26px;padding-bottom:0;text-decoration:none;cursor:default;color:#ddd}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSection33_GroupItem a:link,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSection33_GroupItem a:visited,.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSection33_GroupItem a:active{font-family:Segoe UI,Tahoma,Arial,Verdana,sans-serif;font-size:18px;padding-bottom:0;text-decoration:none;color:#bbb}.mstHdr .mstHdr_Flyout .mstHdr_PrdSection33 .mstHdr_PrdSection33_GroupItem a:hover{color:#ffea41}.mstHdr .mstHdr_Flyout .mstHdr_PrdBottomStrip{width:100%;height:5px;display:inline-block;background-color:#ccc;margin-top:10px}.mstHdr .mstHdr_Flyout .mstHdr_PrdLayoutA .mstHdr_PrdSection31 .mstHdr_PrdSection31_ImageSize{*padding-top:2px}.mstHdr .mstHdr_divA{width:100%;min-height:26px;overflow:hidden}.mstHdr .mstHdr_divContainer{position:absolute;top:0;left:-2px;background-color:transparent;left:0;border:0 none transparent;display:block;width:100%;_width:960px}.mstHdr .mstHdr_divContainer .mstHdr_Image{width:18px;height:18px;cursor:hand;background-repeat:no-repeat;position:absolute;z-index:996px;margin-top:2px}.mstHdr .mstHdr_divContainer .mstHdr_divBContent{width:100%;z-index:990px}.mstHdrV3{margin-bottom:20px}.mstHdrV3 .mstHdr_PriRow{position:relative;min-height:26px;_height:26px;*z-index:1002}.mstHdrV3 .mstHdr_SecRow{position:relative;*z-index:994}.mstHdrV3 .mstHdr_StaticSec11{display:inline-block;margin-top:20px}.mstHdrV3 .mstHdr_StaticSec12{display:inline-block;margin-top:18px}.mstHdrV3 .mstHdr_StaticSec121{margin-bottom:27px;*z-index:1001;*position:relative}.mstHdrV3-rtl .mstHdr_StaticSec121{*width:160px}.mstHdrV3 .mstHdr_StaticSec121{_width:170px}.mstHdrV3 .mstHdr_StaticSec21{margin-top:25px}.mstHdrV3 .mstHdr_MenuLinkMsLogo{min-height:25px}.mstHdrV3 .mstHdr_MenuLinkMsLogo a{display:inline-block}.mstHdrV3 .mstHdr_MsLogoImageLarge{margin-top:35px;height:35px}.mstHdrV3 .mstHdr_MsLogoImageSmall{height:20px}.mstHdrV3 .mstHdr_MenuItemSiteIdentity{min-height:45px}.mstHdrV3 .mstHdr_MenuItemSiteIdentity a{text-decoration:none}.mstHdrV3 .mstHdr_HideSiteIdentity{display:none;min-height:0}.mstHdrV3-rtl .mstHdr_MenuItemsAccount{*width:70px}.mstHdrV3 .mstHdr_MenuItemsAccount{_width:70px}.mstHdrV3 .mstHdr_MenuItemAccount{position:relative}.mstHdrV3 a.mstHdr_MenuItemAccountFlyoutLink{display:block;padding-left:5px;padding-right:5px}.mstHdrV3 .mstHdr_MenuItemAccountFlyoutLinkArrow{margin-top:8px;*margin-top:0}.mstHdrV3 .mstHdr_MenuItemAccountFlyoutLinkArrow img{height:5px;width:7px}.mstHdrV3 .mstHdr_FlyoutPos{position:relative;z-index:999}.mstHdrV3 .mstHdr_Flyout{position:absolute;z-index:998;background-color:#fff;width:150px;top:-1px}.mstHdrV3 .mstHdr_Flyout{display:none}.mstHdrV3 .mstHdr_AccountItems{padding:10px}.mstHdrV3 .mstHdr_MenuItemsAccount .mstHdr_MenuItemAccountText{position:relative;z-index:1000;background-color:#fff}.mstHdrV3 .mstHdr_MenuItemsAccount .mstHdr_MenuItemAccountText{border:1px solid #fff;border-bottom-style:none}.mstHdrV3 .mstHdr_MenuItemsAccount .mstHdr_MenuItemAccountText{_width:75px}.mstHdrV3 .mstHdr_AccountItem a{padding-top:5px;color:#000;font-size:100%}.mstHdrV3 .mstHdr_AccountItem a.first{padding-top:0}.mstHdrV3-rtl .mstHdr_SignInOut{*width:80px}.mstHdrV3 .mstHdr_SignInOut{_width:80px}.mstHdrV3 .mstHdr_SignInOut a.mstHdr_UserProfileTileLink{display:block;display:none}.mstHdrV3 .mstHdr_SignInOut .mstHdr_UserProfileTileImage{height:22px;width:22px}.mstHdrV3 .mstHdr_BrandLine{height:5px;position:absolute;width:100%;left:0;right:0;overflow:hidden} ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomBlade.js Content-Type: application/x-javascript; name=oneMscomBlade.js Content-Location: http://support.microsoft.com/scripts/oneMscomBlade.js Content-Transfer-Encoding: Base64 d2luZG93Lk1zdD09PXVuZGVmaW5lZCYmKHdpbmRvdy5Nc3Q9e30pLE1zdC5GbHlv dXRNZW51PWZ1bmN0aW9uKG4sdCxpLHIsdSxmLGUsbyxzKXt2YXIgYz0iLiIsaD10 aGlzLGwsYTtoLkNvbnRyb2w9JCgiIyIrbiksaC5fbWVudUNsYXNzPWMrdCxoLl9p dGVtQ2xhc3M9YytpLGguX2ZseW91dExpbmtDbGFzcz1jK3IsaC5fc3RhdGljTGlu a0NsYXNzPWMrdSxoLl9mbHlvdXRDbGFzcz1jK2YsaC5fZmx5b3V0UmVnaW9uQ2xh c3M9YytlLGguU2V0UHJpUm93V2lkdGgoaC5Db250cm9sKSxoLl9vbk9wZW5DbGlj az1vLGguX29uQ2xvc2VFdmVudD1zLGguQ29udHJvbC5maW5kKGguX2ZseW91dExp bmtDbGFzcykuY2xpY2soJC5wcm94eShoLkl0ZW1DbGljayxoKSkua2V5ZG93bigk LnByb3h5KGguSXRlbUtleURvd24saCkpLGw9aC5Db250cm9sLmZpbmQoaC5fZmx5 b3V0Q2xhc3MpLnRvQXJyYXkoKTtmb3IoYSBpbiBsKSQobFthXSkuZmluZCgiYTps YXN0Iikua2V5ZG93bigkLnByb3h5KGguTGFzdExpbmtLZXlEb3duLGgpKTskKGRv Y3VtZW50KS5jbGljaygkLnByb3h5KGguRG9jQ2xpY2ssaCkpfSxNc3QuRmx5b3V0 TWVudS5wcm90b3R5cGU9e1NldFByaVJvd1dpZHRoOmZ1bmN0aW9uKG4pe3ZhciB0 PSQoIi5tc3RIZHJfUHJpUm93IixuKSx1PSQoIi5tc3RIZHJfU3RhdGljU2VjMTEi LHQpLmZpcnN0KCksZj0kKCIubXN0SGRyX1N0YXRpY1NlYzEyIix0KS5maXJzdCgp LGU9JCgiLm1zdEhkcl9TdGF0aWNTZWMxMyIsdCkuZmlyc3QoKSxpPSQoIi5tc3RI ZHJfU3RhdGljU2VjMTQiLHQpLmZpcnN0KCkscjskLmJyb3dzZXIubXNpZT8kLmJy b3dzZXIudmVyc2lvbi5zdWJzdHIoMCwxKT43JiZpLndpZHRoKCJhdXRvIik6aS53 aWR0aCgiYXV0byIpLHI9dC53aWR0aCgpLXUud2lkdGgoKS1mLndpZHRoKCktaS53 aWR0aCgpLTEsZS53aWR0aChyPjA/cjoiMTAwJSIpfSxEb2NDbGljazpmdW5jdGlv bihuKXt2YXIgdD10aGlzLkNvbnRyb2wuZmluZCgiLnNlbGVjdGVkIiksaTt0LnNp emUoKT4wJiYoaT0kLmNvbnRhaW5zKHQuZ2V0KDApLG4udGFyZ2V0KSxpfHx0aGlz LkhpZGVGbHlvdXRzKG4pKX0sSXRlbUNsaWNrOmZ1bmN0aW9uKG4pe3ZhciB0PXRo aXM7JChuLnRhcmdldCkuaGFzQ2xhc3MoIm1zdExjcF9EdWFsTGFuZ0xpbmsiKXx8 KG4ucHJldmVudERlZmF1bHQoKSx0LklzRmx5b3V0VmlzaWJsZShuKT90LkhpZGVG bHlvdXRzKG4pOih0LkhpZGVGbHlvdXRzKG4pLHQuU2hvd0ZseW91dChuKSx0Ll9v bk9wZW5DbGljayE9bnVsbCYmdC5fb25PcGVuQ2xpY2sobikpKX0sSXRlbUtleURv d246ZnVuY3Rpb24obil7bi53aGljaD09OSYmbi5zaGlmdEtleSYmdGhpcy5IaWRl Rmx5b3V0cygpfSxMYXN0TGlua0tleURvd246ZnVuY3Rpb24obil7bi53aGljaD09 OSYmKG4uc2hpZnRLZXl8fHRoaXMuSGlkZUZseW91dHMoKSl9LElzRmx5b3V0Vmlz aWJsZTpmdW5jdGlvbihuKXtyZXR1cm4gJChuLnRhcmdldCkucGFyZW50cyh0aGlz Ll9pdGVtQ2xhc3MpLmZpbmQodGhpcy5fZmx5b3V0Q2xhc3MpLmNzcygiZGlzcGxh eSIpIT0ibm9uZSJ9LFNob3dGbHlvdXQ6ZnVuY3Rpb24obil7dmFyIHQ9JChuLnRh cmdldCkucGFyZW50cyh0aGlzLl9pdGVtQ2xhc3MpLmFkZENsYXNzKCJzZWxlY3Rl ZCIpLmZpbmQodGhpcy5fZmx5b3V0Q2xhc3MpO3RoaXMuUG9zaXRpb25GbHlvdXQo dCksalF1ZXJ5LmJyb3dzZXIub3BlcmF8fGpRdWVyeS5icm93c2VyLm1zaWUmJmRv Y3VtZW50LmRvY3VtZW50TW9kZTw9Nz90LnNob3coKTp0LnNsaWRlRG93bigyMDAp fSxIaWRlRmx5b3V0czpmdW5jdGlvbigpe3ZhciBuPXRoaXMsdDtqUXVlcnkuYnJv d3Nlci5vcGVyYXx8alF1ZXJ5LmJyb3dzZXIubXNpZSYmZG9jdW1lbnQuZG9jdW1l bnRNb2RlPD03PyQobi5fZmx5b3V0Q2xhc3Msbi5Db250cm9sKS5oaWRlKCk6JChu Ll9mbHlvdXRDbGFzcyxuLkNvbnRyb2wpLnNsaWRlVXAoMjAwKSx0PW4sbi5fb25D bG9zZUV2ZW50IT1udWxsJiYkKG4uX2l0ZW1DbGFzcykuZmlsdGVyKCIuc2VsZWN0 ZWQiKS5lYWNoKGZ1bmN0aW9uKCl7dC5fb25DbG9zZUV2ZW50KCQodGhpcykuZmlu ZCh0Ll9mbHlvdXRMaW5rQ2xhc3MpKX0pLCQobi5faXRlbUNsYXNzKS5yZW1vdmVD bGFzcygic2VsZWN0ZWQiKX0sUG9zaXRpb25GbHlvdXQ6ZnVuY3Rpb24obil7dmFy IGY9dGhpcyxvPSJsZWZ0Iix0PW4ucGFyZW50cyhmLl9pdGVtQ2xhc3MpLndpZHRo KCkscz1uLnBhcmVudHMoZi5faXRlbUNsYXNzKS5wb3NpdGlvbigpLmxlZnQsZT1u Lm91dGVyV2lkdGgoKSxoPW4ucGFyZW50cyhmLl9tZW51Q2xhc3MpLndpZHRoKCks YT1uLnBhcmVudHMoZi5fbWVudUNsYXNzKS5wb3NpdGlvbigpLmxlZnQsYz1oLHIs aSxsLHU7bi5wYXJlbnRzKGYuX2ZseW91dFJlZ2lvbkNsYXNzKS5zaXplKCk+MCYm KGM9bi5wYXJlbnRzKGYuX2ZseW91dFJlZ2lvbkNsYXNzKS5pbm5lcldpZHRoKCkp LHI9cythLGk9aC1zLXQsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcj09InJ0 bCImJihvPSJyaWdodCIsdC09MixpPWMtcy10LGw9cixyPWksaT1sKSxpPDAmJihp PTApLHI8MCYmKHI9MCksdT0wLGU+dCtpP2U8dCtyPyh1PWRvY3VtZW50LmRvY3Vt ZW50RWxlbWVudC5kaXI9PSJydGwiPy1lK3QrMjotZSt0LG4uY3NzKG8sdSksbi5h ZGRDbGFzcygiZG9jay1yaWdodCIpKTplPHIraSt0Pyh1PS1lKyhpK3QpLG4uY3Nz KG8sdSkpOih1PS1yLTEsbi5jc3Mobyx1KSk6KG4uY3NzKG8sdSksbi5hZGRDbGFz cygiZG9jay1sZWZ0IikpfX0sTXN0LkFuaW1IZWFkZXJJdGVtcz1mdW5jdGlvbihu LHQpeyQoIiMiK24rIiAuIit0KS5lYWNoKGZ1bmN0aW9uKCl7bmV3IE1zdC5Bbmlt SGVhZGVySXRlbSgkKHRoaXMpLCJtc3RIZHJfTWVudUxpbmtUeHQiLCJtc3RIZHJf TWVudUxpbmtJbWciLCJtc3RIZHJfTWVudUxpbmtEZXNjIil9KX0sTXN0LkNQU0Fu aW1hdGlvbj1mdW5jdGlvbihuLHQsaSxyKXt2YXIgdT10aGlzO3UuX2lzQ2xvc2Vk PW4sdS5fdGltZU91dElkVmFsPXQsdS5fZGlzcGxheT1pLHUuX2Rpc3BsYXlUaW1l PXIsdS5PcGVuQigpfSxNc3QuQ1BTQW5pbWF0aW9uLnByb3RvdHlwZT17T3BlbkI6 ZnVuY3Rpb24oKXt2YXIgbj10aGlzO24uX2Rpc3BsYXkmJigkKCIubXN0SGRyX2Rp dkEiKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKSwkKCIjZGl2Q29udGFpbmVy Iikuc2hvdygwLG4uc2V0U2l6ZSgpKSx0aW1lT3V0SWRWYWw9d2luZG93LnNldFRp bWVvdXQobi5DbG9zZUIsbi5fZGlzcGxheVRpbWUpLCQoIi5tc3RIZHJfSW1hZ2Ui KS5jbGljaygkLnByb3h5KG4uSXRlbUNsaWNrQ2xvc2VCLG4pKSl9LEl0ZW1DbGlj a0Nsb3NlQjpmdW5jdGlvbihuKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy5DbG9z ZUIoKX0sQ2xvc2VCOmZ1bmN0aW9uKCl7dGhpcy5faXNDbG9zZWR8fCgkKCIubXN0 SGRyX2RpdkNvbnRhaW5lciIpLnNsaWRlVXAoNjAwKSx0aGlzLl9pc0Nsb3NlZD0h MCx3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVPdXRJZFZhbCksJCgiLm1z dEhkcl9kaXZBIikuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpKX0sc2V0U2l6 ZTpmdW5jdGlvbigpe3ZhciBuPSQoIiNpbWFnZUNQU0IiKS53aWR0aCgpOyQoIi5t c3RIZHJfSW1hZ2UiKS53aWR0aChuLTIpfX0sTXN0LkFjY291bnRGbHlvdXQ9ZnVu Y3Rpb24obil7dmFyIHQ9dGhpczt0LkNvbnRyb2w9JCgiIyIrbiksdC5faWQ9bix0 Ll9pdGVtQ2xhc3M9Ii5tc3RIZHJfTWVudUl0ZW1BY2NvdW50Iix0Ll9mbHlvdXRD bGFzcz0iLm1zdEhkcl9GbHlvdXQiLHQuX2ZseW91dExpbmtDbGFzcz0iLm1zdEhk cl9NZW51SXRlbUFjY291bnRGbHlvdXRMaW5rIix0Ll9BY2NvdW50Rmx5b3V0TGlu a1RleHQ9Ii5tc3RIZHJfTWVudUl0ZW1BY2NvdW50Rmx5b3V0TGlua1RleHQiLHQu Q29udHJvbC5maW5kKHQuX2ZseW91dExpbmtDbGFzcykuY2xpY2soJC5wcm94eSh0 Lkl0ZW1DbGljayx0KSkua2V5ZG93bigkLnByb3h5KHQuSXRlbUtleURvd24sdCkp LCQoZG9jdW1lbnQpLmNsaWNrKCQucHJveHkodC5Eb2NDbGljayx0KSksdC5Db250 cm9sLmZpbmQodC5fZmx5b3V0TGlua0NsYXNzKS5tb3VzZWVudGVyKCQucHJveHko dC5Pbk1vdXNlRW50ZXJBY2NvdW50TGluayx0KSksdC5Db250cm9sLmZpbmQodC5f Zmx5b3V0TGlua0NsYXNzKS5tb3VzZWxlYXZlKCQucHJveHkodC5Pbk1vdXNlTGVh dmVBY2NvdW50TGluayx0KSl9LE1zdC5BY2NvdW50Rmx5b3V0LnByb3RvdHlwZT17 RG9jQ2xpY2s6ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5Db250cm9sLmZpbmQoIi5z ZWxlY3RlZCIpLGk7dC5zaXplKCk+MCYmKGk9JC5jb250YWlucyh0LmdldCgwKSxu LnRhcmdldCksaXx8dGhpcy5IaWRlRmx5b3V0cyhuKSl9LEl0ZW1DbGljazpmdW5j dGlvbihuKXtuLnByZXZlbnREZWZhdWx0KCksdGhpcy5Jc0ZseW91dFZpc2libGUo bik/dGhpcy5IaWRlRmx5b3V0cyhuKTp0aGlzLlNob3dGbHlvdXQobil9LEl0ZW1L ZXlEb3duOmZ1bmN0aW9uKG4pe24ud2hpY2g9PTkmJm4uc2hpZnRLZXkmJnRoaXMu SGlkZUZseW91dHMobil9LElzRmx5b3V0VmlzaWJsZTpmdW5jdGlvbihuKXtyZXR1 cm4gJChuLnRhcmdldCkucGFyZW50cyh0aGlzLl9pdGVtQ2xhc3MpLmZpbmQodGhp cy5fZmx5b3V0Q2xhc3MpLmNzcygiZGlzcGxheSIpIT0ibm9uZSJ9LFNob3dGbHlv dXQ6ZnVuY3Rpb24obil7dmFyIHQ9dGhpcyxpPSQobi50YXJnZXQpLnBhcmVudHMo dC5faXRlbUNsYXNzKS5hZGRDbGFzcygic2VsZWN0ZWQiKS5maW5kKHQuX2ZseW91 dENsYXNzKTt0LlBvc2l0aW9uRmx5b3V0KGkpLGpRdWVyeS5icm93c2VyLm9wZXJh fHxqUXVlcnkuYnJvd3Nlci5tc2llJiZkb2N1bWVudC5kb2N1bWVudE1vZGU8PTc/ aS5zaG93KCk6aS5zbGlkZURvd24oMjAwKSx0LkJpVHJhY2soMiw5LCIuIiskKG4u dGFyZ2V0KS5hdHRyKCJjbGFzcyIpKX0sSGlkZUZseW91dHM6ZnVuY3Rpb24obil7 dmFyIHQ9dGhpcztqUXVlcnkuYnJvd3Nlci5vcGVyYXx8alF1ZXJ5LmJyb3dzZXIu bXNpZSYmZG9jdW1lbnQuZG9jdW1lbnRNb2RlPD03PyQodC5fZmx5b3V0Q2xhc3Ms dC5Db250cm9sKS5oaWRlKCk6JCh0Ll9mbHlvdXRDbGFzcyx0LkNvbnRyb2wpLnNs aWRlVXAoMjAwKSwkKHQuX2l0ZW1DbGFzcykucmVtb3ZlQ2xhc3MoInNlbGVjdGVk IiksdC5CaVRyYWNrKDIsMTAsIi4iKyQobi50YXJnZXQpLmF0dHIoImNsYXNzIikp fSxPbk1vdXNlRW50ZXJBY2NvdW50TGluazpmdW5jdGlvbigpe3RoaXMuQ29udHJv bC5maW5kKHRoaXMuX0FjY291bnRGbHlvdXRMaW5rVGV4dCkuY3NzKCJ0ZXh0LWRl Y29yYXRpb24iLCJ1bmRlcmxpbmUiKX0sT25Nb3VzZUxlYXZlQWNjb3VudExpbms6 ZnVuY3Rpb24oKXt0aGlzLkNvbnRyb2wuZmluZCh0aGlzLl9BY2NvdW50Rmx5b3V0 TGlua1RleHQpLmNzcygidGV4dC1kZWNvcmF0aW9uIiwibm9uZSIpfSxCaVRyYWNr OmZ1bmN0aW9uKG4sdCxpKXt2YXIgdSxyLGY7aWYoJC5iaSYmJC5iaS5kYXRhUmV0 cmlldmVycy5zdHJ1Y3R1cmUpdHJ5e2k9dGhpcy5fZmx5b3V0TGlua0NsYXNzLHU9 dGhpcy5Db250cm9sLmZpbmQoaSkscj17dGl0bGU6JC50cmltKCQodSkudGV4dCgp KX07dHJ5eyQuZXh0ZW5kKHIsJC5iaS5iYXNlRGF0YSgpLCQuYmkuZGF0YVJldHJp ZXZlcnMuc3RydWN0dXJlLmdldERhdGEodSkpfWNhdGNoKG4pe31mPSQuZXh0ZW5k KHt9LHIse2ludGVyYWN0aW9udHlwZTp0LGNvdDo1LHBhcmVudHR5cGVzdHJ1Y3R1 cmU6ci5wYXJlbnR0eXBlc3RydWN0dXJlfSksJC5iaS5yZWNvcmQoZil9Y2F0Y2go bil7YWxlcnQoIkVycm9yOiIrbil9cmV0dXJuITB9LFBvc2l0aW9uRmx5b3V0OmZ1 bmN0aW9uKG4pe3ZhciB0PXRoaXMsYz0ibGVmdCIsdT1uLnBhcmVudHModC5faXRl bUNsYXNzKS53aWR0aCgpLGY9bi5wYXJlbnRzKHQuX2l0ZW1DbGFzcykucG9zaXRp b24oKS5sZWZ0LGE9bi5vdXRlcldpZHRoKCksbz1uLnBhcmVudHModC5fbWVudUNs YXNzKS53aWR0aCgpLGw9bi5wYXJlbnRzKHQuX21lbnVDbGFzcykucG9zaXRpb24o KS5sZWZ0LHM9byxyLGksaCxlO24ucGFyZW50cyh0Ll9mbHlvdXRSZWdpb25DbGFz cykuc2l6ZSgpPjAmJihzPW4ucGFyZW50cyh0Ll9mbHlvdXRSZWdpb25DbGFzcyku aW5uZXJXaWR0aCgpKSxyPWYrbCxpPW8tZi11LGRvY3VtZW50LmRvY3VtZW50RWxl bWVudC5kaXI9PSJydGwiJiYoYz0icmlnaHQiLHUtPTIsaT1zLWYtdSxoPXIscj1p LGk9aCksaTwwJiYoaT0wKSxyPDAmJihyPTApLGU9MCxkb2N1bWVudC5kb2N1bWVu dEVsZW1lbnQuZGlyPT0icnRsIj8obi5jc3MoImxlZnQiLGUpLG4uYWRkQ2xhc3Mo ImRvY2stbGVmdCIpKToobi5jc3MoInJpZ2h0IixlKSxuLmFkZENsYXNzKCJkb2Nr LXJpZ2h0IikpfX0sTXN0LkhlYWRlclYzPT09dW5kZWZpbmVkJiYoTXN0LkhlYWRl clYzPXt9KSxNc3QuSGVhZGVyVjM9ZnVuY3Rpb24obix0LGkpe3ZhciByPXRoaXM7 ci5TdGFnZVdpZHRoPXQsci5TdGFnZVBhZGRpbmc9aSxyLkNvbnRyb2w9JCgiIyIr biksJCgkLnByb3h5KHIuUmVhZHkscikpfSxNc3QuSGVhZGVyVjMucHJvdG90eXBl PXtSZWFkeTpmdW5jdGlvbigpe3RoaXMuU2V0QnJhbmRMaW5lKCksJCh3aW5kb3cp LnJlc2l6ZSgkLnByb3h5KHRoaXMuU2V0QnJhbmRMaW5lLHRoaXMpKX0sU2V0QnJh bmRMaW5lOmZ1bmN0aW9uKCl7dmFyIGU9InBhZGRpbmctcmlnaHQiLHU9InBhZGRp bmctbGVmdCIsdD10aGlzLG49JCh0LkNvbnRyb2wuZmluZCgiLm1zdEhkcl9CcmFu ZExpbmUiKSkscjtuLmNzcyh7bGVmdDoiMHB4IixyaWdodDoiMHB4Iix3aWR0aDoi MHB4In0pO3ZhciBpPXQuQ29udHJvbC5vZmZzZXQoKS5sZWZ0LGY9MCxoPXQuQ29u dHJvbC5oZWlnaHQoKSs2KyJweCIsbz1wYXJzZUludCh0LlN0YWdlV2lkdGg9PSIi PyQoIi5zdGFnZSIpLndpZHRoKCk6dC5TdGFnZVdpZHRoKSxzPXBhcnNlSW50KHQu U3RhZ2VQYWRkaW5nPT0iIj8kKCIuc3RhZ2UiKS5jc3ModSk6dC5TdGFnZVBhZGRp bmcpO2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXI9PSJsdHIiPyhuLmNzcygi bGVmdCIsaSotMSksbi5jc3ModSxpKSxuLmNzcyhlLGkpLGY9byk6KHI9aTxzP3M6 aSxuLmNzcygicmlnaHQiLHIqLTEpLG4uY3NzKHUsciksbi5jc3MoZSxyKSxmPW8p LG4uY3NzKCJ3aWR0aCIsZil9fTs= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomFooter.css Content-Type: text/css; name=oneMscomFooter.css Content-Location: http://support.microsoft.com/Styles/oneMscomFooter.css Content-Transfer-Encoding: 8bit .oneMscomFooter{_width:100%}.oneMscomFooter .subBrandLogo{overflow:visible}.oneMscomFooter .msLogo{position:relative;padding-bottom:7px;padding-top:11px}.oneMscomFooter .msLogo a{display:block}.oneMscomFooter .msLogo a:hover{text-decoration:none}.oneMscomFooter .copyright{margin-top:4px;font-size:55%}.oneMscomFooter .links{padding-top:10px}.oneMscomFooter .links-inner{padding-top:3px;clear:both}.oneMscomFooter ul.customLinks li,.oneMscomFooter ul.defaultLinks li{float:left;font-size:70%}.oneMscomFooter ul li a{padding:0 8px;border-width:1px;border-style:solid;border-color:transparent;_border-color:#ffc0cb;_filter:chroma(color=pink);display:inline-block}.oneMscomFooter .altText{width:133px;padding-top:6px;padding-bottom:3px}.oneMscomFooter .seo-item .png-img{padding-top:2px}.oneMscomFooter .seo-item .png-img .filter-img,.oneMscomFooter .seo-item .png-img .bg-img{width:13px;height:13px}.oneMscomFooter .seo-item .seo-item-tab{position:relative;z-index:5}.oneMscomFooter .seo-item-tab a{display:inline-block}.oneMscomFooter .seo-item-tab a:hover{text-decoration:none}.oneMscomFooter .selected .seo-item-tab a{padding-bottom:4px;border-bottom:none;_border:none}.oneMscomFooter li.selected{_border-width:1px;_border-style:solid;_border-bottom:none}.oneMscomFooter .seoCatergory{float:none;padding-top:10px}.oneMscomFooter .firstCategory{padding-top:0}.oneMscomFooter .seo-item .seo-link{float:left}.oneMscomFooter ul.seoCatergory li{display:block;float:none;font-size:100%;font-weight:bold}.oneMscomFooter ul.seoCatergory li a{padding:0 8px;border-width:1px;border-style:solid;border-color:transparent;_border-color:#ffc0cb;_filter:chroma(color=pink)}.oneMscomFooter ul.seoLinks{*float:left;_float:left;width:100%}.oneMscomFooter ul.seoLinks li{display:block;font-size:100%;font-weight:normal}.oneMscomFooter ul.seoLinks li a{padding:0 8px;border:1px soid transparent}.oneMscomFooter .seo-item-flyout{position:relative;z-index:4}.oneMscomFooter .seo-item-flyout-content{position:absolute;width:905px;display:none;border:1px solid transparent;top:-1px;z-index:3;padding:5px}.oneMscomFeedBack{display:inline-block;*display:inline-block;position:relative;*z-index:999;display:none}.oneMscomFeedBack .feedBack-flyout{display:none}.oneMscomFeedBack .feedBack-successmessage-flyout-body,.oneMscomFeedBack .feedBack-flyout-body{position:fixed;z-index:1001;left:0;right:0;top:10px;border:medium none;margin:0 auto;width:667px;_position:absolute;_left:-340px;_width:680px}.oneMscomFeedBack .feedBack-high-link{position:fixed;bottom:10px;_position:absolute;_width:150px}.oneMscomFeedBack .feedBack-high-link .feedBack-button-link a{display:inline-block;padding:0;border:none}.oneMscomFeedBack .feedBack-high-link .feedBack-button-link a.feedback-button-link-close-image{vertical-align:top}.oneMscomFeedBack .feedBack-high-link .feedBack-button-link{padding:10px;*zoom:1}.oneMscomFeedBack .feedBack-high-link .feedBack-button-link a:hover{text-decoration:none}.oneMscomFeedBack .feedBack-background{height:100%;left:0;position:fixed;top:0;width:100%;z-index:1000;_display:none}.oneMscomFeedBack .feedBack-successmessage-container,.oneMscomFeedBack .feedBack-container{padding:30px;border-width:1px;border-style:solid;width:580px}.feedback-element-text textarea{width:565px}.oneMscomFeedBack .feedback-item{margin-top:10px}.oneMscomFeedBack ul.feedback-item li{float:none}.oneMscomFeedBack ul.feedback-item li.feedback-element-container{margin:2.5px 5px;position:relative}.oneMscomFeedBack .feedBack-button{font-size:bold;margin-top:5px;display:block}.oneMscomFeedBack .feedBack-button a{display:block;width:90px;margin-left:10px;text-align:center;text-decoration:none;font-weight:bold;font-size:130%}.oneMscomFeedBack .feedBack-button a:hover{text-decoration:none}.oneMscomFeedBack .feedback-close{display:inline-block}.oneMscomFeedBack .feedback-successmessage-button-close,.oneMscomFeedBack .feedback-button-close{padding:0;border:none}.oneMscomFeedBack .feedBack-successmessage-container .feeback-heading{margin:105px 0}.oneMscomFeedBack .feedBack-successmessage-container{height:300px}.oneMscomFeedBack .feedBack-successmessage-flyout-body{display:none}.oneMscomFeedBack .feedBack-low-link-disabled{opacity:.6;filter:alpha(opacity="60.0")}.oneMscomFeedBack a.feedBack-low-link-disabled:hover{text-decoration:none}.oneMscomFooterV3{position:relative}.oneMscomFooterV3 ul{list-style-type:none}.mstFooterV3Backround{position:absolute;left:0;right:0}.mstFooterTop{position:relative;display:inline-block;margin-top:40px;_padding-top:40px;*padding-top:40px}.mstFooterMsLink{width:214px;padding-bottom:10px}.mstFooterMsLinkListTitle{padding-bottom:10px}.mstFooterMsLinkItem{position:relative}.mstFooterMsLinkItemText{margin-top:4px}.mstFooterMsLinkItemText a:hover{text-decoration:underline}.mstFooterMsLinkItemLink{width:26px;height:26px}.mstFooterMsLinkItemLi{display:inline-block;width:100%;padding-bottom:10px}.mstFooterDestLink{width:468px}.mstFooterDestLinkListOdd{list-style-type:none;width:214px}.mstFooterDestLinkListEven{width:214px}.mstFooterDestLinkListTitle{padding-bottom:10px}.mstFooterDestLinkListItem{padding-bottom:9px}.mstFooterDestLinkListItem a:hover{text-decoration:underline}.mstFooterDestLinkCatList{padding-bottom:11px}.mstFooterPopRes{width:214px}.mstFooterPopResList{padding-bottom:11px}.mstFooterPopResList li a:hover{text-decoration:underline}.mstFooterPopResListTitle{padding-bottom:10px}.mstFooterPopResListItem{padding-bottom:9px}.mstFooterBottom{margin-top:28px}.mstFooterLocale{_width:400px;*width:400px}.mstFooterLocaleLogo{position:relative;width:100%;display:inline-block;margin-bottom:8px}.mstFooterCorpLinkCopyright{position:relative;margin-bottom:10px;width:100%;display:inline-block}.msFooterCorpLinkLi{float:left}.msFooterCorpLinkLi a:hover{text-decoration:underline}#mstLocPickerCtl{font-weight:600}.mstLocPickerMenuText{padding-top:3px}.mstLcpBackground{position:absolute;left:0;right:0}.mstLcpFlyout{position:absolute;bottom:26px;z-index:1010;display:none}.mstLcpFlyout ul{list-style-type:none;width:214px}.mstLcpFlyout li{padding-bottom:4px;padding-top:3px}.mstLcpFlyout li a{text-decoration:none}.mstLcpFlyout li a:hover{text-decoration:underline}.mstLcpMenu a:hover span{text-decoration:underline}.mstLcpLangSites{width:916px;margin-bottom:20px;margin-top:40px}.mstLcpLangSiteText{position:relative;margin-bottom:17px;*width:100%;_width:100%}.mstLcpClose1{position:absolute;bottom:2px}.mstLcpSiteSites{display:inline-block;margin-bottom:16px}.mstLcpAllSites{position:relative;width:916px}.mstLcpSearch{position:absolute;top:0}.mstLcpAllSitesLinks{margin-bottom:36px;margin-top:27px}.mstLcpSearchContainter{display:inline-block;background-color:#fff}.mstLcpSearchBorder{display:inline-block;overflow:hidden;position:relative;min-height:20px}.mstLcpSearchText{width:350px;background-color:transparent;border:0 none;vertical-align:top;padding-top:3px}.mstLcpSearchImg{height:20px;width:20px;display:inline-block;vertical-align:top;background-position:-2px -2px} ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomFooter.js Content-Type: application/x-javascript; name=oneMscomFooter.js Content-Location: http://support.microsoft.com/scripts/oneMscomFooter.js Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gUmVjZWl2ZVNlcnZlckRhdGFGb3JGZWVkQmFjayhuKXt2YXIgaT0k KG4pLmZpbmQoIi5mZWVkQmFjay1mbHlvdXQtYm9keSIpLHQ7aS5oaWRlKCksdD0k KG4pLmZpbmQoIi5mZWVkQmFjay1zdWNjZXNzbWVzc2FnZS1mbHlvdXQtYm9keSIp LHQuc2hvdygpfXdpbmRvdy5Nc3Q9PT11bmRlZmluZWQmJih3aW5kb3cuTXN0PXt9 KSxNc3QuRmVlZEJhY2tGbHlvdXQ9PT11bmRlZmluZWQmJihNc3QuRmVlZEJhY2tG bHlvdXQ9e30pLE1zdC5TZW9NZW51PWZ1bmN0aW9uKG4sdCxpLHIsdSxmLGUsbyl7 dmFyIHM9dGhpcyxoLGM7cy5Db250cm9sPSQoIiMiK24pLHMuX21lbnVDbGFzcz0i LiIrdCxzLl9pdGVtQ2xhc3M9Ii4iK2kscy5fZmx5b3V0TGlua0NsYXNzPSIuIity LHMuX2ZseW91dENsYXNzPSIuIit1LHMuX2ZseW91dFJlZ2lvbkNsYXNzPSIuIitm LHMuX3N0YWdlRXhwYW5kPSExLHMuX29uT3BlbkNsaWNrPWUscy5fb25DbG9zZUV2 ZW50PW8scy5Db250cm9sLmZpbmQocy5fZmx5b3V0TGlua0NsYXNzKS5jbGljaygk LnByb3h5KHMuSXRlbUNsaWNrLHMpKS5rZXlkb3duKCQucHJveHkocy5JdGVtS2V5 RG93bixzKSksaD1zLkNvbnRyb2wuZmluZChzLl9mbHlvdXRDbGFzcykudG9BcnJh eSgpO2ZvcihjIGluIGgpJChoW2NdKS5maW5kKCJhOmxhc3QiKS5rZXlkb3duKCQu cHJveHkocy5MYXN0TGlua0tleURvd24scykpOyQoZG9jdW1lbnQpLmNsaWNrKCQu cHJveHkocy5Eb2NDbGljayxzKSl9LE1zdC5TZW9NZW51LnByb3RvdHlwZT17RG9j Q2xpY2s6ZnVuY3Rpb24obil7dmFyIHQ9dGhpcy5Db250cm9sLmZpbmQoIi5zZWxl Y3RlZCIpLGk7dC5zaXplKCk+MCYmKGk9JC5jb250YWlucyh0LmdldCgwKSxuLnRh cmdldCksaXx8dGhpcy5IaWRlRmx5b3V0cygpKX0sSXRlbUNsaWNrOmZ1bmN0aW9u KG4pe3ZhciB0PXRoaXM7JChuLnRhcmdldCkuaGFzQ2xhc3MoIm1zdExjcF9EdWFs TGFuZ0xpbmsiKXx8KG4ucHJldmVudERlZmF1bHQoKSx0LklzRmx5b3V0VmlzaWJs ZShuKT90LkhpZGVGbHlvdXRzKCk6KHQuSGlkZUZseW91dHMoKSx0LlNob3dGbHlv dXQobiksdC5fb25PcGVuQ2xpY2shPW51bGwmJnQuX29uT3BlbkNsaWNrKG4pKSl9 LEl0ZW1LZXlEb3duOmZ1bmN0aW9uKG4pe24ud2hpY2g9PTkmJm4uc2hpZnRLZXkm JnRoaXMuSGlkZUZseW91dHMoKX0sTGFzdExpbmtLZXlEb3duOmZ1bmN0aW9uKG4p e24ud2hpY2g9PTkmJihuLnNoaWZ0S2V5fHx0aGlzLkhpZGVGbHlvdXRzKCkpfSxJ c0ZseW91dFZpc2libGU6ZnVuY3Rpb24obil7cmV0dXJuICQobi50YXJnZXQpLnBh cmVudHModGhpcy5faXRlbUNsYXNzKS5maW5kKHRoaXMuX2ZseW91dENsYXNzKS5j c3MoImRpc3BsYXkiKSE9Im5vbmUifSxTaG93Rmx5b3V0OmZ1bmN0aW9uKG4pe3Zh ciByPSIuc3RhZ2UtY29udGVudCIsdD10aGlzLGk9JChuLnRhcmdldCkucGFyZW50 cyh0Ll9pdGVtQ2xhc3MpLmFkZENsYXNzKCJzZWxlY3RlZCIpLmZpbmQodC5fZmx5 b3V0Q2xhc3MpO3QuUG9zaXRpb25GbHlvdXQoaSksdC5fc3RhZ2VFeHBhbmR8fCgk KHIpLmFuaW1hdGUoe2hlaWdodDokKHIpLm91dGVySGVpZ2h0KCkrJCh0Ll9mbHlv dXRDbGFzcykub3V0ZXJIZWlnaHQoKX0sMjAwKSwkKCJodG1sIikuYW5pbWF0ZSh7 c2Nyb2xsVG9wOiQoZG9jdW1lbnQpLmhlaWdodCgpfSwyMDApLHQuX3N0YWdlRXhw YW5kPSEwKSxqUXVlcnkuYnJvd3Nlci5vcGVyYXx8alF1ZXJ5LmJyb3dzZXIubXNp ZSYmZG9jdW1lbnQuZG9jdW1lbnRNb2RlPD03P2kuc2hvdygpOmkuc2xpZGVEb3du KDIwMCl9LEhpZGVGbHlvdXRzOmZ1bmN0aW9uKCl7dmFyIGk9Ii5zdGFnZS1jb250 ZW50IixuPXRoaXMsdD1uO24uX3N0YWdlRXhwYW5kJiYoJChpKS5hbmltYXRlKHto ZWlnaHQ6JChpKS5vdXRlckhlaWdodCgpLSQobi5fZmx5b3V0Q2xhc3MpLm91dGVy SGVpZ2h0KCl9LDIwMCksbi5fc3RhZ2VFeHBhbmQ9ITEpLGpRdWVyeS5icm93c2Vy Lm9wZXJhfHxqUXVlcnkuYnJvd3Nlci5tc2llJiZkb2N1bWVudC5kb2N1bWVudE1v ZGU8PTc/JChuLl9mbHlvdXRDbGFzcyxuLkNvbnRyb2wpLmhpZGUoKTokKG4uX2Zs eW91dENsYXNzLG4uQ29udHJvbCkuc2xpZGVVcCgyMDAsZnVuY3Rpb24oKXt0LmZp eEZseW91dENvbnRlbnRPbGRJRSgpfSksbi5fb25DbG9zZUV2ZW50IT1udWxsJiYk KG4uX2l0ZW1DbGFzcykuZmlsdGVyKCIuc2VsZWN0ZWQiKS5lYWNoKGZ1bmN0aW9u KCl7dC5fb25DbG9zZUV2ZW50KCQodGhpcykuZmluZCh0Ll9mbHlvdXRMaW5rQ2xh c3MpKX0pLCQobi5faXRlbUNsYXNzKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKX0s Zml4Rmx5b3V0Q29udGVudE9sZElFOmZ1bmN0aW9uKCl7dmFyIG4saSxyLHQ7JC5i cm93c2VyLm1zaWUmJnBhcnNlSW50KCQuYnJvd3Nlci52ZXJzaW9uKTw9NyYmKG49 dGhpcyxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGk9ImRpc3BsYXkiO2ltZz1u LkNvbnRyb2wuZmluZCgiLmJnLWltZyIpLHQ9aW1nLmNzcyhpKSxpbWcuY3NzKGks IiIpLGltZy5jc3MoaSx0KX0sMSkpfSxpc0lFNjpmdW5jdGlvbigpe3JldHVybiBu YXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNU0lFIDYuIikhPS0xfSxQb3Np dGlvbkZseW91dDpmdW5jdGlvbihuKXt2YXIgcz0icnRsIixmPXRoaXMsbz0ibGVm dCIsdD1uLnBhcmVudHMoZi5faXRlbUNsYXNzKS53aWR0aCgpLGg9bi5wYXJlbnRz KGYuX2l0ZW1DbGFzcykucG9zaXRpb24oKS5sZWZ0LGU9bi5vdXRlcldpZHRoKCks Yz1uLnBhcmVudHMoZi5fbWVudUNsYXNzKS53aWR0aCgpLGE9bi5wYXJlbnRzKGYu X21lbnVDbGFzcykucG9zaXRpb24oKS5sZWZ0LGwsdSxpLHYscjtjPTkyMCxhPTAs bD1jLG4ucGFyZW50cyhmLl9mbHlvdXRSZWdpb25DbGFzcykuc2l6ZSgpPjAmJihs PW4ucGFyZW50cyhmLl9mbHlvdXRSZWdpb25DbGFzcykuaW5uZXJXaWR0aCgpKSx1 PWgrYSxpPWMtaC10LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXI9PSJsdHIi JiYoaSs9MTgpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5kaXI9PXMmJihvPSJy aWdodCIsdC09MixpPWwtaC10LHY9dSx1PWksaT12KSxpPDAmJihpPTApLHU8MCYm KHU9MCkscj0wLGU+dCtpP2U8dCt1PyhyPWRvY3VtZW50LmRvY3VtZW50RWxlbWVu dC5kaXI9PXM/LWUrdCsyOi1lK3Qsbi5jc3MobyxyKSxuLmFkZENsYXNzKCJkb2Nr LXJpZ2h0IikpOmU8dStpK3Q/KHI9LWUrKGkrdCksZG9jdW1lbnQuZG9jdW1lbnRF bGVtZW50LmRpcj09cyYmKHItPTIzLGYuaXNJRTYoKSYmKHIrPXQpKSxuLmNzcyhv LHIpKToocj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyPT1zPy11LTE6LXUt NixuLmNzcyhvLHIpKToobi5jc3MobyxyKSxuLmFkZENsYXNzKCJkb2NrLWxlZnQi KSl9fSxNc3QuRmVlZEJhY2tGbHlvdXQ9ZnVuY3Rpb24obix0LGkscix1LGYsZSxv LHMsaCxjLGwsYSx2LHkpe3ZhciB3PSIuIixwPXRoaXM7cC5JZD0iIyIrbixwLkZl ZWRCYWNrPSQocC5JZCkscC5EaXJlY3Rpb249YyxwLkZlZWRCYWNrRmx5b3V0Q2xh c3M9dyt0LHAuRmVlZEJhY2tGbHlvdXRCb2R5Q2xhc3M9dytpLHAuRmVlYmFja0hp Z2hCdXR0b25DbGFzcz13K2YscC5GZWViYWNrTG93QnV0dG9uPSIjIityLHAuRmVl YmFja0hpZ2hCdXR0b249IiMiK3UscC5GZWViYWNrSGlnaEJ1dHRvbkNsb3NlPSIj IitlLHAuRmVlZEJhY2tDbG9zZUJ1dHRvbkNsYXNzPXcrbyxwLkZlZWRCYWNrQ2Fu Y2VsQnV0dG9uQ2xhc3M9dytzLHAuRmVlZEJhY2tTdWJtaXRCdXR0b25DbGFzcz13 K2gscC5GZWVkYmFja0JhY2tncm91bmRDbGFzcz13K3kscC5Jc0Zvcm1TdWJtaXR0 ZWQ9ITEscC5GZWVkQmFja1N1Y2Nlc3NNZXNzYWdlRmx5b3V0Q2xhc3M9dytsLHAu RmVlZEJhY2tTdWNjZXNzTWVzc2FnZUZvcm1DbG9zZUNsYXNzPXcrYSxwLkZlZWRC YWNrU3VjY2Vzc01lc3NhZ2VDbG9zZUNsYXNzPXcrdixwLkZlZWRCYWNrLmZpbmQo cC5GZWViYWNrSGlnaEJ1dHRvbikuY2xpY2soJC5wcm94eShwLlNob3dGZWVkQmFj a0ZseW91dCxwKSkscC5GZWVkQmFjay5maW5kKHAuRmVlYmFja0xvd0J1dHRvbiku Y2xpY2soJC5wcm94eShwLlNob3dGZWVkQmFja0ZseW91dCxwKSkscC5GZWVkQmFj ay5maW5kKHAuRmVlYmFja0hpZ2hCdXR0b25DbG9zZSkuY2xpY2soJC5wcm94eShw LkhpZGVGZWVkQmFja0hpZ2hCdXR0b24scCkpLHAuRmVlZEJhY2suZmluZChwLkZl ZWRCYWNrQ2xvc2VCdXR0b25DbGFzcykuY2xpY2soJC5wcm94eShwLkhpZGVGZWVk QmFja0ZseW91dCxwKSkscC5GZWVkQmFjay5maW5kKHAuRmVlZEJhY2tDYW5jZWxC dXR0b25DbGFzcykuY2xpY2soJC5wcm94eShwLkhpZGVGZWVkQmFja0ZseW91dCxw KSkscC5GZWVkQmFjay5maW5kKHAuRmVlZGJhY2tCYWNrZ3JvdW5kQ2xhc3MpLmNs aWNrKCQucHJveHkocC5IaWRlRmVlZEJhY2tGbHlvdXQscCkpLHAuRmVlZEJhY2su ZmluZChwLkZlZWRCYWNrU3VjY2Vzc01lc3NhZ2VGb3JtQ2xvc2VDbGFzcykuY2xp Y2soJC5wcm94eShwLkhpZGVGZWVkQmFja0ZseW91dE9uU3VjZXNzLHApKSxwLkZl ZWRCYWNrLmZpbmQocC5GZWVkQmFja1N1Y2Nlc3NNZXNzYWdlQ2xvc2VDbGFzcyku Y2xpY2soJC5wcm94eShwLkhpZGVGZWVkQmFja0ZseW91dE9uU3VjZXNzLHApKSwk KGRvY3VtZW50KS5rZXlwcmVzcygkLnByb3h5KHAuRmVlZEJhY2tGbHlvdXRLZXlQ cmVzcyxwKSkscC5GZWVkQmFjay5maW5kKHAuRmVlZEJhY2tTdWJtaXRCdXR0b25D bGFzcykuY2xpY2soJC5wcm94eShwLlN1bWl0Rm9ybSxwKSkscC5GZWVkQmFjay5j c3MoImRpc3BsYXkiLCJpbmxpbmUtYmxvY2siKX0sTXN0LkZlZWRCYWNrRmx5b3V0 LnByb3RvdHlwZT17Q2VudGVyQWxpZ25Qb3B1cDpmdW5jdGlvbigpe3ZhciBpPSJw eCIsbj10aGlzLGU9JChuLkZlZWRCYWNrLmZpbmQobi5GZWVkQmFja0ZseW91dEJv ZHlDbGFzcykpLmhlaWdodCgpLG89JChuLkZlZWRCYWNrLmZpbmQobi5GZWVkQmFj a1N1Y2Nlc3NNZXNzYWdlRmx5b3V0Q2xhc3MpKS5oZWlnaHQoKSxzLGgscix0LGYs dSxjOyQuYnJvd3Nlci5tc2llJiZwYXJzZUludCgkLmJyb3dzZXIudmVyc2lvbik9 PTYmJihlPXBhcnNlSW50KCQod2luZG93KS5oZWlnaHQoKSkqNCxvPXBhcnNlSW50 KCQod2luZG93KS5oZWlnaHQoKSkqNCkscz1wYXJzZUludCgkKHdpbmRvdykuaGVp Z2h0KCkpLzItcGFyc2VJbnQoZSkvMiwkKG4uRmVlZEJhY2suZmluZChuLkZlZWRC YWNrRmx5b3V0Qm9keUNsYXNzKSkuY3NzKCJ0b3AiLHMpLGg9cGFyc2VJbnQoJCh3 aW5kb3cpLmhlaWdodCgpKS8yLXBhcnNlSW50KG8pLzIsJChuLkZlZWRCYWNrLmZp bmQobi5GZWVkQmFja1N1Y2Nlc3NNZXNzYWdlRmx5b3V0Q2xhc3MpKS5jc3MoInRv cCIsaCksJC5icm93c2VyLm1zaWUmJnBhcnNlSW50KCQuYnJvd3Nlci52ZXJzaW9u KTw9NyYmKHI9JChuLkZlZWRCYWNrLmZpbmQobi5GZWVkQmFja0ZseW91dEJvZHlD bGFzcykpLndpZHRoKCksJC5icm93c2VyLm1zaWUmJnBhcnNlSW50KCQuYnJvd3Nl ci52ZXJzaW9uKT09NiYmKHI9cGFyc2VJbnQoJCh3aW5kb3cpLndpZHRoKCkpK3Ip LHQ9cGFyc2VJbnQoJCh3aW5kb3cpLndpZHRoKCkpLzItcGFyc2VJbnQocikvMiwk LnRyaW0obi5EaXJlY3Rpb24udG9Mb3dlckNhc2UoKSk9PSJsdHIiPygkKG4uRmVl ZEJhY2suZmluZChuLkZlZWRCYWNrRmx5b3V0Qm9keUNsYXNzKSkuY3NzKCJsZWZ0 Iix0K2kpLCQobi5GZWVkQmFjay5maW5kKG4uRmVlZEJhY2tTdWNjZXNzTWVzc2Fn ZUZseW91dENsYXNzKSkuY3NzKCJsZWZ0Iix0K2kpKTooJChuLkZlZWRCYWNrLmZp bmQobi5GZWVkQmFja0ZseW91dEJvZHlDbGFzcykpLmNzcygicmlnaHQiLHQraSks JChuLkZlZWRCYWNrLmZpbmQobi5GZWVkQmFja1N1Y2Nlc3NNZXNzYWdlRmx5b3V0 Q2xhc3MpKS5jc3MoInJpZ2h0Iix0K2kpKSwkLmJyb3dzZXIubXNpZSYmcGFyc2VJ bnQoJC5icm93c2VyLnZlcnNpb24pPD03JiYoZj1uLHNldFRpbWVvdXQoZnVuY3Rp b24oKXt2YXIgbj0iZGlzcGxheSI7dT1mLkZlZWRCYWNrLmZpbmQoZi5GZWVkQmFj a0ZseW91dEJvZHlDbGFzcyksYz11LmNzcyhuKSx1LmNzcyhuLCIiKSx1LmNzcyhu LGMpfSwxKSkpfSxTaG93RmVlZEJhY2tGbHlvdXQ6ZnVuY3Rpb24obil7biYmbi5w cmV2ZW50RGVmYXVsdCgpO3ZhciB0PSQodGhpcy5GZWVkQmFjay5maW5kKHRoaXMu RmVlZEJhY2tGbHlvdXRDbGFzcykpO3Quc2xpZGVEb3duKDIwMCksdGhpcy5DZW50 ZXJBbGlnblBvcHVwKCl9LEhpZGVGZWVkQmFja0ZseW91dDpmdW5jdGlvbihuKXt2 YXIgdD10aGlzLGk7biYmbi5wcmV2ZW50RGVmYXVsdCgpLGk9JCh0LkZlZWRCYWNr LmZpbmQodC5GZWVkQmFja0ZseW91dENsYXNzKSksaS5oaWRlKCksdC5CaVRyYWNr KDIsMTAsIi4iKyQobi5jdXJyZW50VGFyZ2V0KS5hdHRyKCJjbGFzcyIpKSx0Lklz Rm9ybVN1Ym1pdHRlZD09ITAmJnQuRGlzYWJsZUZlZWJhY2sobil9LEhpZGVGZWVk QmFja0ZseW91dE9uU3VjZXNzOmZ1bmN0aW9uKG4pe3RoaXMuSGlkZUZlZWRCYWNr Rmx5b3V0KG4pLHRoaXMuRGlzYWJsZUZlZWJhY2sobil9LERpc2FibGVGZWViYWNr OmZ1bmN0aW9uKCl7dmFyIG49dGhpcyx0O24uRmVlZEJhY2suZmluZChuLkZlZWJh Y2tMb3dCdXR0b24pLmFkZENsYXNzKCJmZWVkQmFjay1sb3ctbGluay1kaXNhYmxl ZCIpLG4uRmVlZEJhY2suZmluZChuLkZlZWJhY2tMb3dCdXR0b24pLnVuYmluZCgi Y2xpY2siKSx0PSQobi5GZWVkQmFjay5maW5kKG4uRmVlYmFja0hpZ2hCdXR0b25D bGFzcykpLHQuaGlkZSgpfSxTaG93RmVlZEJhY2tGbHlvdXRPblN1Y2VzczpmdW5j dGlvbigpe3ZhciBuPXRoaXM7bi5GZWVkQmFjay5maW5kKG4uRmVlZEJhY2tGbHlv dXRCb2R5Q2xhc3MpLmhpZGUoKSxuLkZlZWRCYWNrLmZpbmQobi5GZWVkQmFja1N1 Y2Nlc3NNZXNzYWdlRmx5b3V0Q2xhc3MpLnNob3coKX0sRmVlZEJhY2tGbHlvdXRL ZXlQcmVzczpmdW5jdGlvbihuKXt2YXIgdD10aGlzO24ua2V5Q29kZT09MjcmJih0 LklzRm9ybVN1Ym1pdHRlZD09ITE/dC5IaWRlRmVlZEJhY2tGbHlvdXQobik6dC5I aWRlRmVlZEJhY2tGbHlvdXRPblN1Y2VzcyhuKSksdC5IYW5kbGVLZXlQcmVzcyhu KX0sSGFuZGxlS2V5UHJlc3M6ZnVuY3Rpb24obil7dGhpcy5GZWVkQmFjay5maW5k KCIuZmVlZGJhY2staXRlbSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQo Ii5mZWVkYmFjay1lbGVtZW50LWNvbnRyb2wiKS5lYWNoKGZ1bmN0aW9uKCl7dmFy IGk9JCh0aGlzKS5hdHRyKCJ0eXBlIiksdDtpPT0idGV4dGFyZWEiJiYodD0kKHRo aXMpLmF0dHIoIm1heGxlbmd0aCIpLCQodGhpcykudmFsKCkubGVuZ3RoKzE+dCYm bi5wcmV2ZW50RGVmYXVsdCgpKX0pfSl9LEhpZGVGZWVkQmFja0hpZ2hCdXR0b246 ZnVuY3Rpb24obil7dmFyIHQ9dGhpcyxpO24mJm4ucHJldmVudERlZmF1bHQoKSxp PSQodC5GZWVkQmFjay5maW5kKHQuRmVlYmFja0hpZ2hCdXR0b25DbGFzcykpLGku aGlkZSgpLHQuQmlUcmFjaygyLDEwLHQuRmVlYmFja0hpZ2hCdXR0b25DbG9zZSl9 LFN1bWl0Rm9ybTpmdW5jdGlvbihuKXt2YXIgdD10aGlzLGk7biYmbi5wcmV2ZW50 RGVmYXVsdCgpLHQuRmVlZEJhY2suZmluZCh0LkZlZWRCYWNrU3VibWl0QnV0dG9u Q2xhc3MpLnVuYmluZCgiY2xpY2siKSxpPSIiLHQuRmVlZEJhY2suZmluZCgiLmZl ZWRiYWNrLWl0ZW0iKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCIuZmVl ZGJhY2stZWxlbWVudC1jb250cm9sIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PSIg wrEgIixyPSJuYW1lIixuPXRoaXMsZT0kKG4pLmF0dHIoInR5cGUiKSx1LGY7c3dp dGNoKGUpe2Nhc2UicmFkaW8iOm4uY2hlY2tlZCYmKGkrPSLiiaQiKyQobikuYXR0 cihyKSt0KyQobikuYXR0cigiaWQiKSsi4omlIik7YnJlYWs7Y2FzZSJjaGVja2Jv eCI6bi5jaGVja2VkJiYoaSs9IuKJpCIrJChuKS5hdHRyKHIpK3QrJChuKS5hdHRy KCJpZCIpKyLiiaUiKTticmVhaztjYXNlInRleHRhcmVhIjp1PSQudHJpbSgkKG4p LnZhbCgpKSxmPSQobikuYXR0cigibWF4bGVuZ3RoIiksdS5sZW5ndGg+MCYmKGkr PSQobikudmFsKCkubGVuZ3RoPmY/IuKJpCIrJChuKS5hdHRyKHIpK3QrdS5zdWJz dHIoMCxmKSsi4omlIjoi4omkIiskKG4pLmF0dHIocikrdCt1KyLiiaUiKX19KX0p LHQuSXNGb3JtU3VibWl0dGVkPSEwLGkubGVuZ3RoPjA/KGkrPSLiiaAiK3QuSWQu dG9TdHJpbmcoKSxTZW5kRmVlZGJhY2tEYXRhVG9TZXJ2ZXIoaSwiIikpOnQuU2hv d0ZlZWRCYWNrRmx5b3V0T25TdWNlc3MobiksdC5CaVRyYWNrKDIsMTAsdC5GZWVk QmFja1N1Ym1pdEJ1dHRvbkNsYXNzKX0sQmlUcmFjazpmdW5jdGlvbihuLHQsaSl7 dmFyIHUscixmO2lmKCQuYmkmJiQuYmkuZGF0YVJldHJpZXZlcnMuc3RydWN0dXJl KXt1PXRoaXMuRmVlZEJhY2suZmluZChpKSxyPXt0aXRsZTokLnRyaW0oJCh1KS50 ZXh0KCkpfTt0cnl7JC5leHRlbmQociwkLmJpLmJhc2VEYXRhKCksJC5iaS5kYXRh UmV0cmlldmVycy5zdHJ1Y3R1cmUuZ2V0RGF0YSh1KSl9Y2F0Y2gobil7fWY9JC5l eHRlbmQoe30scix7aW50ZXJhY3Rpb250eXBlOnQsY290OjUscGFyZW50dHlwZXN0 cnVjdHVyZTpyLnBhcmVudHR5cGVzdHJ1Y3R1cmV9KSwkLmJpLnJlY29yZChmKX1y ZXR1cm4hMH19LE1zdC5Gb290ZXJWMz09PXVuZGVmaW5lZCYmKE1zdC5Gb290ZXJW Mz17fSksTXN0LkZvb3RlclYzPWZ1bmN0aW9uKG4sdCxpKXt2YXIgcj10aGlzO3Iu Q29udHJvbD0kKCIjIituKyJfbXN0Rm9vdGVyVjNDdGwiKSxyLklkPW4sci5TdGFn ZVdpZHRoPXQsci5TdGFnZVBhZGRpbmc9aSwkKCQucHJveHkoci5SZWFkeSxyKSks ci5GbHlvdXRIZWlnaHQ9MH0sTXN0LkZvb3RlclYzLnByb3RvdHlwZT17UmVhZHk6 ZnVuY3Rpb24oKXt2YXIgaT0iLm1zdEZvb3Rlck1zTGlua0l0ZW1MaW5rIix0PSIu bXN0TGNwU2VhcmNoVGV4dCIsbj10aGlzO24uU2V0QmFja2dyb3VuZCgpLCQod2lu ZG93KS5yZXNpemUoJC5wcm94eShuLlNldEJhY2tncm91bmQsbikpLG4uQ29udHJv bC5maW5kKCIubXN0TGNwTWVudSIpLmNsaWNrKCQucHJveHkobi5PcGVuTG9jYWxl UGlja2VyLG4pKSxuLkNvbnRyb2wuZmluZCgiLm1zdExjcENsb3NlMSIpLmNsaWNr KCQucHJveHkobi5DbG9zZUxvY2FsZVBpY2tlcixuKSksbi5Db250cm9sLmZpbmQo Ii5tc3RMY3BDbG9zZTIiKS5jbGljaygkLnByb3h5KG4uQ2xvc2VMb2NhbGVQaWNr ZXIsbikpLCQodCkuYmluZCgia2V5dXAiLCQucHJveHkobi5GaWx0ZXJMaXN0LG4p KSwkKGRvY3VtZW50KS5jbGljaygkLnByb3h5KG4uRG9DbGljayxuKSksbi5Db250 cm9sLmZpbmQodCkua2V5cHJlc3MoJC5wcm94eShuLkRvTm90aGluZyxuKSksbi5D b250cm9sLmZpbmQoaSkubW91c2VlbnRlcigkLnByb3h5KG4uT25Nb3VzZUVudGVy TXNMaW5rSW1hZ2UsbikpLG4uQ29udHJvbC5maW5kKGkpLm1vdXNlbGVhdmUoJC5w cm94eShuLk9uTW91c2VMZWF2ZU1zTGlua0ltYWdlLG4pKX0sRG9DbGljazpmdW5j dGlvbihuKXt2YXIgdD10aGlzLkNvbnRyb2wuZmluZCgiLnNlbGVjdGVkIiksaTt0 LnNpemUoKT4wJiYoaT0kLmNvbnRhaW5zKHQuZ2V0KDApLG4udGFyZ2V0KSxpfHx0 aGlzLkNsb3NlTG9jYWxlUGlja2VyKCkpfSxEb05vdGhpbmc6ZnVuY3Rpb24obil7 aWYobi5rZXlDb2RlPT0xMylyZXR1cm4hMX0sU2V0QmFja2dyb3VuZDpmdW5jdGlv bigpe3RoaXMuU2V0Rm9vdGVyQmFja2dyb3VuZCgpLHRoaXMuU2V0TG9jYWxlUGlj a2VyQmFja2dyb3VuZCgpfSxTZXRGb290ZXJCYWNrZ3JvdW5kOmZ1bmN0aW9uKCl7 dmFyIG89InBhZGRpbmctcmlnaHQiLGY9InBhZGRpbmctbGVmdCIscj0iMHB4Iix0 PXRoaXMsbj10LkNvbnRyb2wuZmluZCgiI21zdEZvb3RlclYzQmFja3JvdW5kIiks dTtuLmNzcyh7bGVmdDpyLHJpZ2h0OnIsd2lkdGg6cixoZWlnaHQ6cn0pO3ZhciBp PXQuQ29udHJvbC5vZmZzZXQoKS5sZWZ0LGU9MCxzPTY7JC5icm93c2VyLm1zaWUm JnBhcnNlRmxvYXQoJC5icm93c2VyLnZlcnNpb24pPDgmJihzPTMwKTt2YXIgbD10 LkNvbnRyb2wuaGVpZ2h0KCkrcysicHgiLGg9cGFyc2VJbnQodC5TdGFnZVdpZHRo PT0iIj8kKCIuc3RhZ2UiKS53aWR0aCgpOnQuU3RhZ2VXaWR0aCksYz1wYXJzZUlu dCh0LlN0YWdlUGFkZGluZz09IiI/JCgiLnN0YWdlIikuY3NzKGYpOnQuU3RhZ2VQ YWRkaW5nKTtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyPT0ibHRyIj8obi5j c3MoImxlZnQiLGkqLTEpLG4uY3NzKGYsaSksbi5jc3MobyxpKSxlPWgpOih1PWk8 Yz9jOmksbi5jc3MoInJpZ2h0Iix1Ki0xKSxuLmNzcyhmLHUpLG4uY3NzKG8sdSks ZT1oKSxuLmNzcygid2lkdGgiLGUpLG4uY3NzKCJoZWlnaHQiLGwpfSxTZXRMb2Nh bGVQaWNrZXJCYWNrZ3JvdW5kOmZ1bmN0aW9uKCl7dmFyIGU9InBhZGRpbmctcmln aHQiLHU9InBhZGRpbmctbGVmdCIsdD10aGlzLGk9dC5Db250cm9sLm9mZnNldCgp LmxlZnQsZj0wLG89cGFyc2VJbnQodC5TdGFnZVdpZHRoPT0iIj8kKCIuc3RhZ2Ui KS53aWR0aCgpOnQuU3RhZ2VXaWR0aCkscz1wYXJzZUludCh0LlN0YWdlUGFkZGlu Zz09IiI/JCgiLnN0YWdlIikuY3NzKHUpOnQuU3RhZ2VQYWRkaW5nKSxuPSQoIi5t c3RMY3BGbHlvdXQiKSxyO24uY3NzKHtsZWZ0OiIwcHgiLHJpZ2h0OiIwcHgiLHdp ZHRoOiIwcHgifSksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcj09Imx0ciI/ KG4uY3NzKCJsZWZ0IixpKi0xKSxuLmNzcyh1LGkpLG4uY3NzKGUsaSksZj1vKToo cj1pPHM/czppLG4uY3NzKCJyaWdodCIsciotMSksbi5jc3ModSxyKSxuLmNzcyhl LHIpLGY9byksbi5jc3MoIndpZHRoIixmKSx0LkZseW91dEhlaWdodD1uLmhlaWdo dCgpfSxPcGVuTG9jYWxlUGlja2VyOmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMsaTtu JiZuLnByZXZlbnREZWZhdWx0KCk7aWYodC5Db250cm9sLmZpbmQoIi5zZWxlY3Rl ZCIpLnNpemUoKT4wKXt0LkNsb3NlTG9jYWxlUGlja2VyKCk7cmV0dXJufWk9dC5D b250cm9sLmZpbmQoIi5tc3RMY3BGbHlvdXQiKSx0LkNvbnRyb2wuZmluZCgiLm1z dEZvb3RlckxvY2FsZSIpLmFkZENsYXNzKCJzZWxlY3RlZCIpLGkuaGVpZ2h0KHQu Rmx5b3V0SGVpZ2h0KSx0LlNldE1pbkZseW91dEhlaWdodCgpLGkuc2xpZGVEb3du KDIwMCksd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXskKCJodG1sIikuYW5p bWF0ZSh7c2Nyb2xsVG9wOmkub2Zmc2V0KCkudG9wLTIwfSwiMjAwIil9LDUwMCks JCgiLm1zdExjcFNlYXJjaFRleHQiKS5mb2N1cygpLHQuQmlUcmFjayhuLDkpfSxD bG9zZUxvY2FsZVBpY2tlcjpmdW5jdGlvbihuKXtuJiZuLnByZXZlbnREZWZhdWx0 KCk7dmFyIHQ9dGhpcy5Db250cm9sLmZpbmQoIi5tc3RMY3BGbHlvdXQiKTt0aGlz LkNvbnRyb2wuZmluZCgiLm1zdEZvb3RlckxvY2FsZSIpLnJlbW92ZUNsYXNzKCJz ZWxlY3RlZCIpLHQuc2xpZGVVcCgyMDApLHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0 aW9uKCl7JCgiLm1zdExjcFNlYXJjaFRleHQiKS52YWwoIiIpLCQoIi5tc3RMY3BB bGxTaXRlc0xpbmtzIHVsIGxpIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuY3Nz KCJkaXNwbGF5IiwiYmxvY2siKX0pfSw1MDApLCQuYnJvd3Nlci53ZWJraXQmJndp bmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5jc3MoImRpc3BsYXkiLCJub25l Iil9LDEwMCksdGhpcy5CaVRyYWNrKG4sMTApfSxTZXRNaW5GbHlvdXRIZWlnaHQ6 ZnVuY3Rpb24oKXt2YXIgdD0iLm1zdEZvb3RlckJvdHRvbSIsbj10aGlzLGk9bi5D b250cm9sLmZpbmQoIi5tc3RMY3BGbHlvdXQiKSxyPW4uQ29udHJvbC5oZWlnaHQo KTtpLmhlaWdodCgpPHItbi5Db250cm9sLmZpbmQodCkuaGVpZ2h0KCkmJmkuaGVp Z2h0KHItbi5Db250cm9sLmZpbmQodCkuaGVpZ2h0KCkpfSxGaWx0ZXJMaXN0OmZ1 bmN0aW9uKCl7dmFyIHQ9Ii5tc3RMY3BGbHlvdXQiLG47JCh0KS5jc3MoImhlaWdo dCIsIiIpLG49JCgiLm1zdExjcFNlYXJjaFRleHQiKS52YWwoKS50b0xvd2VyQ2Fz ZSgpLCQoIi5tc3RMY3BBbGxTaXRlc0xpbmtzIHVsIGxpIikuZWFjaChmdW5jdGlv bigpe3ZhciBpPSQodGhpcykuZmluZCgic3BhbiIpLnRleHQoKSx0PWkuc3BsaXQo Ii0iKSxyPSQudHJpbSh0WzBdKS50b0xvd2VyQ2FzZSgpLHU9JC50cmltKHRbMV0p LnRvTG93ZXJDYXNlKCk7ci5zdWJzdHIoMCxuLmxlbmd0aCk9PW58fHUuc3Vic3Ry KDAsbi5sZW5ndGgpPT1uPyQodGhpcykuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTok KHRoaXMpLmNzcygiZGlzcGxheSIsIm5vbmUiKX0pLHRoaXMuU2V0TWluRmx5b3V0 SGVpZ2h0KCksJChkb2N1bWVudCkuc2Nyb2xsVG9wKCQodCkub2Zmc2V0KCkudG9w LTIwKX0sT25Nb3VzZUVudGVyTXNMaW5rSW1hZ2U6ZnVuY3Rpb24obil7dmFyIHQ9 JChuLmN1cnJlbnRUYXJnZXQpLnBhcmVudHMoIi5tc3RGb290ZXJNc0xpbmtJdGVt TGkiKS5maW5kKCIubXN0Rm9vdGVyTXNMaW5rSXRlbVRleHQiKS5jc3MoInRleHQt ZGVjb3JhdGlvbiIsInVuZGVybGluZSIpfSxPbk1vdXNlTGVhdmVNc0xpbmtJbWFn ZTpmdW5jdGlvbihuKXt2YXIgdD0kKG4uY3VycmVudFRhcmdldCkucGFyZW50cygi Lm1zdEZvb3Rlck1zTGlua0l0ZW1MaSIpLmZpbmQoIi5tc3RGb290ZXJNc0xpbmtJ dGVtVGV4dCIpLmNzcygidGV4dC1kZWNvcmF0aW9uIiwibm9uZSIpfSxCaVRyYWNr OmZ1bmN0aW9uKG4sdCl7cmV0dXJuICQuYmkmJiQuYmkuZGF0YVJldHJpZXZlcnMu c3RydWN0dXJlJiYocGFyYW1zPXt9LHBhcmFtcy5pbnRlcmFjdGlvbnR5cGU9dCxw YXJhbXMuY290PTUscGFyYW1zLnBhcmVudHR5cGVzdHJ1Y3R1cmU9JC5iaS5kYXRh UmV0cmlldmVycy5zdHJ1Y3R1cmUuZ2V0VHlwZVN0cnVjdHVyZSh0aGlzLkNvbnRy b2wuZmluZCgiLm1zdExjcE1lbnUiKSksJC5iaS5yZWNvcmQocGFyYW1zKSksITB9 fTs= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomNav.css Content-Type: text/css; name=oneMscomNav.css Content-Location: http://support.microsoft.com/Styles/oneMscomNav.css Content-Transfer-Encoding: 8bit .oneMscomNav div.navMenu{position:relative;width:100%;z-index:994;font-size:100%}.oneMscomNav div.navigation-4level-strip{width:100%;background-color:#fff;height:30px;display:none}div.oneMscomNav .navigation-section{display:inline-block}div.oneMscomNav .navigation-item{padding:0 6px 0 6px;position:relative}div.oneMscomNav .navigation-item-tab a{display:inline-block}div.oneMscomNav a:hover span{text-decoration:underline}div.oneMscomNav .Menu-label a:hover span{text-decoration:none}div.oneMscomNav a:hover{text-decoration:underline}div.oneMscomNav .Menu-label a:hover{text-decoration:none}div.oneMscomNav .Group-label a:link,div.oneMscomNav .Group-label a:visited,div.oneMscomNav .Group-label a:active,div.oneMscomNav .Group-label a:hover{text-decoration:none;cursor:text}div.oneMscomNav .navigation-item-tab .navigation-item-tab-text,div.oneMscomNav .navigation-item-tab a#idPPScarab{padding:3px 15px 3px 15px}div.oneMscomNav .navigation-item-tab .navigation-item-text{display:block;float:Left}div.oneMscomNav .navigation-item-tab .navigation-item-img{float:Left;height:25px}div.oneMscomNav .navigation-item-flyout{position:relative;z-index:995}div.oneMscomNav .navigation-item-flyout-content{position:absolute;top:-1px;border:#a3a3a3 0 solid;display:none;z-index:99}div.oneMscomNav div.navigation-item-flyout-content-shown{display:block}div.oneMscomNav h3{font-size:120%;border-bottom:solid 1px #e1e1e1;padding-bottom:3px;margin-bottom:8px}.oneMscomNav div.navigation-sub{font-size:90%;display:block;width:100%}div.navigation-sub .navigation-sub-item{padding:0 5px 0 5px}div.navigation-sub .navigation-sub-item-tab a{display:block}div.navigation-sub .navigation-sub-item-tab .navigation-sub-item-tab-text,div.navigation-sub .navigation-sub-item-tab a#idPPScarab{padding:3px 10px 3px 10px}div.navigation-sub .navigation-sub-item-tab .navigation-sub-item-text{display:block;float:Left}div.navigation-sub .navigation-sub-item-tab .navigation-sub-item-img{float:Left;height:25px}div.navigation-sub .navigation-sub-item-tab .navigation-sub-flyout-arrow{display:block;float:Left;margin-top:9px;width:9px;height:5px;overflow:hidden}div.navigation-sub .navigation-sub-item-tab .navigation-sub-item-tab-text .navigation-sub-flyout-arrow{margin-top:4px}div.navigation-sub .selected a .navigation-sub-flyout-arrow{background-position:0 -6px}div.navigation-sub .navigation-sub-item-flyout{position:relative}div.navigation-sub .navigation-sub-item-flyout-content{position:absolute;top:-1px;border:#a3a3a3 1px solid;display:none}div.navigation-sub div.navigation-sub-item-flyout-content-shown{display:block}div.navigation-sub h3{font-size:120%;border-bottom:solid 1px #e1e1e1}div.oneMscomNav .navigation-bg{position:absolute;top:0;right:0;bottom:0;left:0}div.oneMscomNav .selected .navigation-item-tab{z-index:100;border-width:0 0 3px 0;border-style:solid}div.oneMscomNav .navigation-item-tab a{border-width:0 0 3px 0;border-style:solid}div.oneMscomNav .selected .navigation-item-tab a{border-width:0}div.oneMscomNav .navigation-item-tab a:hover{cursor:pointer}div.oneMscomNav .navigation-item-flyout .navigation-level2{padding:12px 10px 12px 10px}div.oneMscomNav .navigation-item-flyout .vertical_split{position:absolute;top:0;bottom:0;height:auto;margin-top:15px;margin-bottom:15px}div.oneMscomNav .navigation-item-flyout .links{overflow:hidden}div.oneMscomNav .navigation-item-flyout .navigation-level2 .links a,div.oneMscomNav .navigation-item-flyout .navigation-level2 .links a:link,div.oneMscomNav .navigation-item-flyout .navigation-level2 .links a:visited,div.oneMscomNav .navigation-item-flyout .navigation-level2 .links a:active,div.oneMscomNav .navigation-item-flyout .navigation-level2 .links a:hover{padding-top:3px;padding-bottom:3px;padding-left:5px;padding-right:5px;text-decoration:none;display:block;line-height:1.3}div.oneMscomNav .navigation-item-flyout .navigation-level3{padding:8px 10px 8px 10px}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .first{margin-top:4px}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .last{margin-bottom:4px}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .link-group a,div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .link-group a:link,div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .link-group a:visited,div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .link-group a:hover,div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .link-group a:active{font-weight:bold;padding-top:0;padding-bottom:0;padding-left:0;padding-right:0}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .link-group a:hover{text-decoration:underline}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .link-group a.link-label:hover{text-decoration:none}div.oneMscomNav .navigation-item-flyout .navigation-level3 .link-group{padding-top:7px;padding-left:5px;padding-right:5px;font-weight:bold}div.oneMscomNav .link-group-bottom-border{padding-bottom:3px}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links a,div.oneMscomNav .navigation-item-flyout .navigation-level3 .links a:link,div.oneMscomNav .navigation-item-flyout .navigation-level3 .links a:visited,div.oneMscomNav .navigation-item-flyout .navigation-level3 .links a:active,div.oneMscomNav .navigation-item-flyout .navigation-level3 .links a:hover{padding-top:3px;padding-bottom:3px;padding-left:5px;padding-right:5px;text-decoration:none;display:block;line-height:1.3}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links a{line-height:1.3}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .first{}div.oneMscomNav .navigation-item-flyout .navigation-level3 .links .last{}div.oneMscomNav .navigation-item-flyout .navigation-level4{width:960px}div.navigation-sub .navigation-sub-bg{position:absolute;top:0;right:0;bottom:0;left:0}div.navigation-sub .selected .navigation-sub-item-tab{z-index:100;border-width:0 1px 0 1px;border-style:solid}div.navigation-sub .navigation-sub-item-tab a:hover{cursor:pointer;text-decoration:none}div.oneMscomNav .navigation-sub-item-flyout .navigation-sub-level3{padding:14px 10px 10px 10px}div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3{white-space:nowrap}div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .link-group a,div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .link-group a:link,div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .link-group a:visited,div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .link-group a:hover,div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .link-group a:active{font-weight:bold}div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .links a,div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .links a:link,div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .links a:visited,div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .links a:hover,div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .links a:active{padding-bottom:10px}div.navigation-sub .navigation-sub-item-flyout .navigation-sub-level3 .links{padding-top:10px}div.oneMscomNav div.navigation-flyout-region,div.oneMscomNav .navigation-section{direction:ltr}div.oneMscomNav .navMenu{border-style:solid;border-width:0 0 1px 0}.oneMscomNavV3 a,.oneMscomNavV3 a:visited,.oneMscomNavV3 a:active{text-decoration:none;outline:none}.oneMscomNavV3 .mstNavMenuBkg{position:absolute;left:0;right:0;top:0;bottom:0}.oneMscomNavV3 .mstNavNavItem .mstNavNavItemTab a:hover{text-decoration:none}.oneMscomNavV3 .mstNavNavItem .mstNavNavItemTabText{padding-top:10px;padding-bottom:10px}.oneMscomNavV3 .mstNavNavItem .mstNavNavItemTabTextLink{padding-top:10px;padding-bottom:10px}.oneMscomNavV3 .mstNavNavItemTabText{display:inline-block}.oneMscomNavV3 .mstNavNavItemTabTextLink{display:inline-block}.oneMscomNavV3 .mstNav1stLvl{display:inline-block}.oneMscomNavV3 .mstNavNavItemFlyout{position:absolute;padding-top:30px;padding-bottom:10px;display:none;z-index:994;width:100%}.oneMscomNavV3 .mstNav4ColFlyoutList{width:214px}.oneMscomNavV3 .mstNavMenuListTitle{padding-bottom:10px}.oneMscomNavV3 .mstNavMenuList{padding-bottom:27px}.oneMscomNavV3 .mstNavMenuListItem{padding-bottom:3px}.oneMscomNavV3 .mstNavMenuLinks{width:136px}.oneMscomNavV3 .mstNavMenuImgs{width:780px;padding-bottom:10px}.oneMscomNavV3 .mstNavMenuImgsOnly{padding-bottom:10px}.oneMscomNavV3 .mstNavMenuListItem2{font-size:16.25px;padding-bottom:3px}.oneMscomNavV3 .mstNavListImg{overflow:hidden;padding-bottom:20px}.oneMscomNavV3 .mstNavListImgSmall{width:136px}.oneMscomNavV3 .mstNavListImgBig{width:370px}.oneMscomNavV3 .mstNavNavFirstItem{position:absolute;top:0;width:20px;display:none}.oneMscomNavV3 .mstNav4ColNotFirstRow{padding-top:27px} ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomNav.js Content-Type: application/x-javascript; name=oneMscomNav.js Content-Location: http://support.microsoft.com/scripts/oneMscomNav.js Content-Transfer-Encoding: Base64 d2luZG93Lk1zdD09PXVuZGVmaW5lZCYmKHdpbmRvdy5Nc3Q9e30pLE1zdC5GbHlv dXROYXZpZ2F0aW9uTWVudT1mdW5jdGlvbihuLHQsaSxyLHUsZixlLG8scyxoLGMs bCxhKXt2YXIgcD1udWxsLHk9Ii4iLHY9dGhpczt2Ll9tZW51PSQoIiMiK24pLHYu X21lbnVDbGFzcz15K3Qsdi5faXRlbUNsYXNzPXkraSx2Ll9mbHlvdXRMaW5rQ2xh c3M9eStyLHYuX3N0YXRpY0xpbmtDbGFzcz15K3Usdi5fZmx5b3V0Q2xhc3M9eStm LHYuX2ZseW91dFJlZ2lvbkNsYXNzPXkrZSx2Ll9tZW51U2VjdGlvbkNsYXNzPXkr byx2Ll9oaWRlVGltZXJJZD1wLHYuX3Nob3dUaW1lcklkPXAsdi5fcHJldmVudENs aWNrVGltZXJJZD1wLHYuX3ByZXZlbnREd2VsbFRpbWVySWQ9cCx2Ll9wcmV2ZW50 Q2xpY2s9ITEsdi5fcHJldmVudER3ZWxsPSExLHYuX0lzc3VibWVudT1jLHYuX3N1 YmZseW91dENsYXNzPXkrbCx2Ll9zdWJpdGVtQ2xhc3M9eSthLHYuX29uT3BlbkNs aWNrPXMsdi5fb25DbG9zZUV2ZW50PWgsJChkb2N1bWVudCkuY2xpY2soJC5wcm94 eSh2LkRvY0NsaWNrLHYpKSwkKHYuX2l0ZW1DbGFzcysiICIrdi5fZmx5b3V0TGlu a0NsYXNzLHYuX21lbnUpLmNsaWNrKCQucHJveHkodi5JdGVtQ2xpY2ssdikpLm1v dXNlb3ZlcigkLnByb3h5KHYuSXRlbU1vdXNlb3Zlcix2KSksJCh2Ll9pdGVtQ2xh c3MrIiAiK3YuX3N0YXRpY0xpbmtDbGFzcyx2Ll9tZW51KS5tb3VzZW92ZXIoJC5w cm94eSh2LkhpZGVGbHlvdXRzLHYpKSwkKHYuX2ZseW91dENsYXNzLHYuX21lbnUp Lm1vdXNlb3ZlcigkLnByb3h5KHYuS2VlcEZseW91dFZpc2libGUsdikpfSxNc3Qu Rmx5b3V0TmF2aWdhdGlvbk1lbnUucHJvdG90eXBlPXtEb2NDbGljazpmdW5jdGlv bihuKXt2YXIgdD10aGlzLl9tZW51LmZpbmQoIi5zZWxlY3RlZCIpLGk7dC5zaXpl KCk+MCYmKGk9JC5jb250YWlucyh0LmdldCgwKSxuLnRhcmdldCksaXx8dGhpcy5I aWRlRmx5b3V0cygpKX0sSXRlbUNsaWNrOmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXM7 bi5wcmV2ZW50RGVmYXVsdCgpLHQuQ2xlYXJIaWRlVGltZXIoKSx0LkNsZWFyU2hv d1RpbWVyKCksdC5DbGVhclByZXZlbnREd2VsbFRpbWVyKCksdC5fcHJldmVudER3 ZWxsPSEwLHQuX3ByZXZlbnRDbGljaz09ITEmJih0LlN0YXJ0UHJldmVudER3ZWxs VGltZXIoKSx0LklzRmx5b3V0VmlzaWJsZShuKT8odC5IaWRlRmx5b3V0cygpLHQu SGlkZVN1Yk1lbnVGbHlvdXRzKG4pKToodC5IaWRlRmx5b3V0cygpLHQuU2hvd0Zs eW91dChuKSx0Ll9vbk9wZW5DbGljayE9bnVsbCYmdC5fb25PcGVuQ2xpY2sobikp KX0sSXRlbUR3ZWxsOmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXM7dC5DbGVhclByZXZl bnRDbGlja1RpbWVyKCksdC5fcHJldmVudENsaWNrPSEwLHQuX3ByZXZlbnREd2Vs bD09ITEmJih0LlN0YXJ0UHJldmVudENsaWNrVGltZXIoKSx0LklzRmx5b3V0Vmlz aWJsZShuKT90LkhpZGVGbHlvdXRzKCk6KHQuSGlkZUZseW91dHMoKSx0LlNob3dG bHlvdXQobiksdC5fb25PcGVuRHdlbGwhPW51bGwmJnQuX29uT3BlbkR3ZWxsKG4p KSl9LElzRmx5b3V0VmlzaWJsZTpmdW5jdGlvbihuKXtyZXR1cm4gJChuLnRhcmdl dCkucGFyZW50cyh0aGlzLl9pdGVtQ2xhc3MpLmZpbmQodGhpcy5fZmx5b3V0Q2xh c3MpLmNzcygiZGlzcGxheSIpIT0ibm9uZSJ9LFNob3dGbHlvdXQ6ZnVuY3Rpb24o bil7dmFyIHQ9JChuLnRhcmdldCkucGFyZW50cyh0aGlzLl9pdGVtQ2xhc3MpLmFk ZENsYXNzKCJzZWxlY3RlZCIpLmZpbmQodGhpcy5fZmx5b3V0Q2xhc3MpO3RoaXMu UG9zaXRpb25GbHlvdXQodCksalF1ZXJ5LmJyb3dzZXIub3BlcmF8fGpRdWVyeS5i cm93c2VyLm1zaWUmJmRvY3VtZW50LmRvY3VtZW50TW9kZTw9Nz90LnNob3coKTp0 LnNsaWRlRG93bigyMDApfSxIaWRlRmx5b3V0czpmdW5jdGlvbihuKXt2YXIgdD10 aGlzLGk7dC5IaWRlU3ViTWVudUZseW91dHMobiksalF1ZXJ5LmJyb3dzZXIub3Bl cmF8fGpRdWVyeS5icm93c2VyLm1zaWUmJmRvY3VtZW50LmRvY3VtZW50TW9kZTw9 Nz8kKHQuX2ZseW91dENsYXNzLHQuX21lbnUpLmhpZGUoKTokKHQuX2ZseW91dENs YXNzLHQuX21lbnUpLnNsaWRlVXAoMjAwKSxpPXQsdC5fb25DbG9zZUV2ZW50IT1u dWxsJiYkKHQuX2l0ZW1DbGFzcykuZmlsdGVyKCIuc2VsZWN0ZWQiKS5lYWNoKGZ1 bmN0aW9uKCl7aS5fb25DbG9zZUV2ZW50KCQodGhpcykuZmluZChpLl9mbHlvdXRM aW5rQ2xhc3MpKX0pLCQodC5faXRlbUNsYXNzKS5yZW1vdmVDbGFzcygic2VsZWN0 ZWQiKX0sSGlkZVN1Yk1lbnVGbHlvdXRzOmZ1bmN0aW9uKCl7dmFyIG49dGhpcztu Ll9Jc3N1Ym1lbnU9PSExJiYoalF1ZXJ5LmJyb3dzZXIub3BlcmF8fGpRdWVyeS5i cm93c2VyLm1zaWUmJmRvY3VtZW50LmRvY3VtZW50TW9kZTw9Nz8kKG4uX3N1YmZs eW91dENsYXNzKS5oaWRlKCk6JChuLl9zdWJmbHlvdXRDbGFzcykuc2xpZGVVcCgy MDApLCQobi5fc3ViaXRlbUNsYXNzKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKSl9 LEtlZXBGbHlvdXRWaXNpYmxlOmZ1bmN0aW9uKG4pe24uc3RvcFByb3BhZ2F0aW9u KCksdGhpcy5DbGVhckhpZGVUaW1lcigpLHRoaXMuQ2xlYXJTaG93VGltZXIoKX0s UG9zaXRpb25GbHlvdXQ6ZnVuY3Rpb24obil7dmFyIGY9dGhpcyxvPSJsZWZ0Iix0 PW4ucGFyZW50cyhmLl9pdGVtQ2xhc3MpLndpZHRoKCkscz1uLnBhcmVudHMoZi5f aXRlbUNsYXNzKS5wb3NpdGlvbigpLmxlZnQsZT1uLm91dGVyV2lkdGgoKSxoPW4u cGFyZW50cyhmLl9tZW51Q2xhc3MpLndpZHRoKCksYT1uLnBhcmVudHMoZi5fbWVu dUNsYXNzKS5wb3NpdGlvbigpLmxlZnQsYz1oLGkscixsLHU7bi5wYXJlbnRzKGYu X2ZseW91dFJlZ2lvbkNsYXNzKS5zaXplKCk+MCYmKGM9bi5wYXJlbnRzKGYuX2Zs eW91dFJlZ2lvbkNsYXNzKS5pbm5lcldpZHRoKCkpLGk9cythLHI9aC1zLXQtNSxk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyPT0icnRsIiYmKG89InJpZ2h0Iix0 Kz03LHI9Yy1zLXQsbD1pLGk9cixyPWwpLHI8MCYmKHI9MCksaTwwJiYoaT0wKSx1 PTAsZT50K3I/ZTx0K2k/KHU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpcj09 InJ0bCI/LWUrdCsyOi1lK3Qsbi5jc3Mobyx1KSxuLmFkZENsYXNzKCJkb2NrLXJp Z2h0IikpOmU8aStyK3Q/KHU9LWUrKHIrdCksbi5jc3Mobyx1KSk6KHU9ZG9jdW1l bnQuZG9jdW1lbnRFbGVtZW50LmRpcj09InJ0bCI/LWktMTotaS02LG4uY3NzKG8s dSkpOihuLmNzcyhvLHUpLG4uYWRkQ2xhc3MoImRvY2stbGVmdCIpKX0sU3RhcnRT aG93VGltZXI6ZnVuY3Rpb24obil7dGhpcy5fc2hvd1RpbWVySWQ9d2luZG93LnNl dFRpbWVvdXQoJC5wcm94eShmdW5jdGlvbigpe3RoaXMuSXRlbUR3ZWxsKG4pfSx0 aGlzKSwxMDApfSxTdGFydEhpZGVUaW1lcjpmdW5jdGlvbigpe3RoaXMuX2hpZGVU aW1lcklkPXdpbmRvdy5zZXRUaW1lb3V0KCQucHJveHkodGhpcy5IaWRlRmx5b3V0 cyx0aGlzKSwxZTMpfSxTdGFydFByZXZlbnRDbGlja1RpbWVyOmZ1bmN0aW9uKCl7 dGhpcy5fcHJldmVudENsaWNrVGltZXJJZD13aW5kb3cuc2V0VGltZW91dCgkLnBy b3h5KGZ1bmN0aW9uKCl7dGhpcy5fcHJldmVudENsaWNrPSExfSx0aGlzKSwzNTAp fSxTdGFydFByZXZlbnREd2VsbFRpbWVyOmZ1bmN0aW9uKCl7dGhpcy5fcHJldmVu dER3ZWxsVGltZXJJZD13aW5kb3cuc2V0VGltZW91dCgkLnByb3h5KGZ1bmN0aW9u KCl7dGhpcy5fcHJldmVudER3ZWxsPSExfSx0aGlzKSwzNTApfSxDbGVhclNob3dU aW1lcjpmdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fc2hvd1Rp bWVySWQpLHRoaXMuX3Nob3dUaW1lcklkPW51bGx9LENsZWFySGlkZVRpbWVyOmZ1 bmN0aW9uKCl7d2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZXJJZCks dGhpcy5faGlkZVRpbWVySWQ9bnVsbH0sQ2xlYXJQcmV2ZW50Q2xpY2tUaW1lcjpm dW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fcHJldmVudENsaWNr VGltZXJJZCksdGhpcy5fcHJldmVudENsaWNrVGltZXJJZD1udWxsfSxDbGVhclBy ZXZlbnREd2VsbFRpbWVyOmZ1bmN0aW9uKCl7d2luZG93LmNsZWFyVGltZW91dCh0 aGlzLl9wcmV2ZW50RHdlbGxUaW1lcklkKSx0aGlzLl9wcmV2ZW50RHdlbGxUaW1l cklkPW51bGx9fSxNc3QuRmx5b3V0TmF2aWdhdGlvbk1lbnVWMz1mdW5jdGlvbihu LHQsaSl7dmFyIHU9bnVsbCxyPXRoaXM7ci5Db250cm9sPSQoIiMiK24rIl9tc3RO YXZNZW51Iiksci5TdGFnZVdpZHRoPXQsci5TdGFnZVBhZGRpbmc9aSxyLl9oaWRl VGltZXJJZD11LHIuX3Nob3dUaW1lcklkPXUsci5fcHJldmVudENsaWNrVGltZXJJ ZD11LHIuX3ByZXZlbnREd2VsbFRpbWVySWQ9dSxyLl9wcmV2ZW50Q2xpY2s9ITEs ci5fcHJldmVudER3ZWxsPSExLCQoJC5wcm94eShyLlJlYWR5LHIpKX0sTXN0LkZs eW91dE5hdmlnYXRpb25NZW51VjMucHJvdG90eXBlPXtSZWFkeTpmdW5jdGlvbigp e3ZhciBuPXRoaXM7JChkb2N1bWVudCkuY2xpY2soJC5wcm94eShuLkRvQ2xpY2ss bikpLG4uU2V0Rmx5b3V0QmFja2dyb3VuZCgpLCQod2luZG93KS5yZXNpemUoJC5w cm94eShuLlNldEZseW91dEJhY2tncm91bmQsbikpLCQoIi5tc3ROYXZOYXZJdGVt IC5tc3ROYXZOYXZJdGVtVGFiVGV4dCIpLmNsaWNrKCQucHJveHkobi5JdGVtQ2xp Y2ssbikpfSxEb0NsaWNrOmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXMuQ29udHJvbC5m aW5kKCIuc2VsZWN0ZWQiKSxpO3Quc2l6ZSgpPjAmJihpPSQuY29udGFpbnModC5n ZXQoMCksbi50YXJnZXQpLGl8fCh0aGlzLkhpZGVGbHlvdXRzKCksdGhpcy5CaVRy YWNrKG4sMTApKSl9LFNldEZseW91dEJhY2tncm91bmQ6ZnVuY3Rpb24oKXt2YXIg ZT0icGFkZGluZy1yaWdodCIsdT0icGFkZGluZy1sZWZ0Iix0PXRoaXMsaT10LkNv bnRyb2wub2Zmc2V0KCkubGVmdCxmPTAsbz1wYXJzZUludCh0LlN0YWdlV2lkdGg9 PSIiPyQoIi5zdGFnZSIpLndpZHRoKCk6dC5TdGFnZVdpZHRoKSxzPXBhcnNlSW50 KHQuU3RhZ2VQYWRkaW5nPT0iIj8kKCIuc3RhZ2UiKS5jc3ModSk6dC5TdGFnZVBh ZGRpbmcpLG49JCgiLm1zdE5hdk5hdkl0ZW1GbHlvdXQiKSxyO24uY3NzKHtsZWZ0 OiIwcHgiLHJpZ2h0OiIwcHgiLHdpZHRoOiIwcHgifSksZG9jdW1lbnQuZG9jdW1l bnRFbGVtZW50LmRpcj09Imx0ciI/KG4uY3NzKCJsZWZ0IixpKi0xKSxuLmNzcyh1 LGkpLG4uY3NzKGUsaSksZj1vKToocj1pPHM/czppLG4uY3NzKCJyaWdodCIsciot MSksbi5jc3ModSxyKSxuLmNzcyhlLHIpLGY9byksbi5jc3MoIndpZHRoIixmKX0s SXRlbUNsaWNrOmZ1bmN0aW9uKG4pe3ZhciB0PXRoaXM7bi5wcmV2ZW50RGVmYXVs dCgpLHQuQ2xlYXJIaWRlVGltZXIoKSx0LkNsZWFyU2hvd1RpbWVyKCksdC5DbGVh clByZXZlbnREd2VsbFRpbWVyKCksdC5fcHJldmVudER3ZWxsPSEwLHQuX3ByZXZl bnRDbGljaz09ITEmJih0LlN0YXJ0UHJldmVudER3ZWxsVGltZXIoKSx0LklzRmx5 b3V0VmlzaWJsZShuKT90LkhpZGVGbHlvdXRzKCk6KHQuSGlkZUZseW91dHMoKSx0 LlNob3dGbHlvdXQobiksdC5CaVRyYWNrKG4sOSkpKX0sSXNGbHlvdXRWaXNpYmxl OmZ1bmN0aW9uKG4pe3JldHVybiAkKG4udGFyZ2V0KS5wYXJlbnRzKCIubXN0TmF2 TmF2SXRlbSIpLmZpbmQoIi5tc3ROYXZOYXZJdGVtRmx5b3V0IikuY3NzKCJkaXNw bGF5IikhPSJub25lIn0sU2hvd0ZseW91dDpmdW5jdGlvbihuKXt2YXIgdT0ic2Vs ZWN0ZWQiLGk9Ii5tc3ROYXZOYXZJdGVtIixyPSQobi50YXJnZXQpLnBhcmVudHMo aSkuYWRkQ2xhc3ModSkuZmluZCgiLm1zdE5hdk5hdkl0ZW1GbHlvdXQiKSxlPSQo bi50YXJnZXQpLnBhcmVudHMoaSkucG9zaXRpb24oKS50b3Asbz0kKGkpLm91dGVy SGVpZ2h0KCksdCxmO3IuY3NzKCJ0b3AiLG8rZS0xKSwkKG4uY3VycmVudFRhcmdl dCkuZmluZCgiLm1zdE5hdk5hdkl0ZW1UZXh0IikuYWRkQ2xhc3ModSksdD0kKG4u dGFyZ2V0KS5wYXJlbnRzKGkpLmZpbmQoIi5tc3ROYXZOYXZGaXJzdEl0ZW0iKSx0 LnNpemUoKT4wJiYoZj0kKG4udGFyZ2V0KS5wYXJlbnRzKGkpLm91dGVySGVpZ2h0 KCEwKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyPT0ibHRyIj90LmNzcygi bGVmdCIsIi0yMHB4Iik6dC5jc3MoInJpZ2h0IiwiLTIwcHgiKSx0LmNzcygiaGVp Z2h0IixmKSx0LmNzcygiZGlzcGxheSIsImJsb2NrIikpLGpRdWVyeS5icm93c2Vy Lm9wZXJhfHxqUXVlcnkuYnJvd3Nlci5tc2llJiZkb2N1bWVudC5kb2N1bWVudE1v ZGU8PTc/ci5zaG93KCk6ci5zbGlkZURvd24oMjAwKX0sSGlkZUZseW91dHM6ZnVu Y3Rpb24oKXt2YXIgbj0ic2VsZWN0ZWQiLHQ9Ii5tc3ROYXZOYXZJdGVtRmx5b3V0 IjtqUXVlcnkuYnJvd3Nlci5vcGVyYXx8alF1ZXJ5LmJyb3dzZXIubXNpZSYmZG9j dW1lbnQuZG9jdW1lbnRNb2RlPD03PyQodCkuaGlkZSgpOiQodCkuc2xpZGVVcCgy MDApLCQoIi5tc3ROYXZOYXZJdGVtIikucmVtb3ZlQ2xhc3MobiksJCgiLm1zdE5h dk5hdkl0ZW1UZXh0IikucmVtb3ZlQ2xhc3MobiksJCgiLm1zdE5hdk5hdkZpcnN0 SXRlbSIpLmNzcygiZGlzcGxheSIsIm5vbmUiKX0sSXRlbUR3ZWxsOmZ1bmN0aW9u KG4pe3ZhciB0PXRoaXM7dC5DbGVhclByZXZlbnRDbGlja1RpbWVyKCksdC5fcHJl dmVudENsaWNrPSEwLHQuX3ByZXZlbnREd2VsbD09ITEmJih0LlN0YXJ0UHJldmVu dENsaWNrVGltZXIoKSx0LklzRmx5b3V0VmlzaWJsZShuKT90LkhpZGVGbHlvdXRz KCk6KHQuSGlkZUZseW91dHMoKSx0LlNob3dGbHlvdXQobikpKX0sU3RhcnRTaG93 VGltZXI6ZnVuY3Rpb24obil7dGhpcy5fc2hvd1RpbWVySWQ9d2luZG93LnNldFRp bWVvdXQoJC5wcm94eShmdW5jdGlvbigpe3RoaXMuSXRlbUR3ZWxsKG4pfSx0aGlz KSwxMDApfSxTdGFydEhpZGVUaW1lcjpmdW5jdGlvbigpe3RoaXMuX2hpZGVUaW1l cklkPXdpbmRvdy5zZXRUaW1lb3V0KCQucHJveHkodGhpcy5IaWRlRmx5b3V0cyx0 aGlzKSwxZTMpfSxTdGFydFByZXZlbnRDbGlja1RpbWVyOmZ1bmN0aW9uKCl7dGhp cy5fcHJldmVudENsaWNrVGltZXJJZD13aW5kb3cuc2V0VGltZW91dCgkLnByb3h5 KGZ1bmN0aW9uKCl7dGhpcy5fcHJldmVudENsaWNrPSExfSx0aGlzKSwzNTApfSxT dGFydFByZXZlbnREd2VsbFRpbWVyOmZ1bmN0aW9uKCl7dGhpcy5fcHJldmVudER3 ZWxsVGltZXJJZD13aW5kb3cuc2V0VGltZW91dCgkLnByb3h5KGZ1bmN0aW9uKCl7 dGhpcy5fcHJldmVudER3ZWxsPSExfSx0aGlzKSwzNTApfSxDbGVhclNob3dUaW1l cjpmdW5jdGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fc2hvd1RpbWVy SWQpLHRoaXMuX3Nob3dUaW1lcklkPW51bGx9LENsZWFySGlkZVRpbWVyOmZ1bmN0 aW9uKCl7d2luZG93LmNsZWFyVGltZW91dCh0aGlzLl9oaWRlVGltZXJJZCksdGhp cy5faGlkZVRpbWVySWQ9bnVsbH0sQ2xlYXJQcmV2ZW50Q2xpY2tUaW1lcjpmdW5j dGlvbigpe3dpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fcHJldmVudENsaWNrVGlt ZXJJZCksdGhpcy5fcHJldmVudENsaWNrVGltZXJJZD1udWxsfSxDbGVhclByZXZl bnREd2VsbFRpbWVyOmZ1bmN0aW9uKCl7d2luZG93LmNsZWFyVGltZW91dCh0aGlz Ll9wcmV2ZW50RHdlbGxUaW1lcklkKSx0aGlzLl9wcmV2ZW50RHdlbGxUaW1lcklk PW51bGx9LEJpVHJhY2s6ZnVuY3Rpb24obix0KXtyZXR1cm4gJC5iaSYmJC5iaS5k YXRhUmV0cmlldmVycy5zdHJ1Y3R1cmUmJihwYXJhbXM9e30scGFyYW1zLmludGVy YWN0aW9udHlwZT10LHBhcmFtcy5jb3Q9NSxwYXJhbXMucGFyZW50dHlwZXN0cnVj dHVyZT0kLmJpLmRhdGFSZXRyaWV2ZXJzLnN0cnVjdHVyZS5nZXRUeXBlU3RydWN0 dXJlKCQobi50YXJnZXQpLnBhcmVudHMoIi5tc3ROYXZOYXZJdGVtVGFiVGV4dCIp KSx0PT05JiYocGFyYW1zLnRpdGxlPSQobi50YXJnZXQpLnRleHQoKSksJC5iaS5y ZWNvcmQocGFyYW1zKSksITB9fTs= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=oneMscomJsCssLoader.js Content-Type: application/x-javascript; name=oneMscomJsCssLoader.js Content-Location: http://support.microsoft.com/scripts/oneMscomJsCssLoader.js Content-Transfer-Encoding: Base64 d2luZG93Lk1zdD09PXVuZGVmaW5lZCYmKHdpbmRvdy5Nc3Q9e30pLE1zdC5Kc0Nz c0xvYWRlcj1mdW5jdGlvbihuKXt0aGlzLk9wZW5HcmFwTWV0YVRhZ3M9biwkKCQu cHJveHkodGhpcy5SZWFkeSx0aGlzKSl9LE1zdC5Kc0Nzc0xvYWRlci5wcm90b3R5 cGU9e1JlYWR5OmZ1bmN0aW9uKCl7dmFyIG49dGhpcztuLkFkZE9wZW5HcmFwaE1l dGFUYWdzKCksbi5BZGRPcGVuR3JhcGhVcmwoKSxuLkFkZE9wZW5HcmFwaE5hbWVz cGFjZSgpLG4uQWRkRmFjZWJvb2tOYW1lc3BhY2UoKX0sQWRkT3BlbkdyYXBoTWV0 YVRhZ3M6ZnVuY3Rpb24oKXt2YXIgbj0iIix0LGk7Zm9yKHQgaW4gdGhpcy5PcGVu R3JhcE1ldGFUYWdzKXtmb3IoaSBpbiB0aGlzLk9wZW5HcmFwTWV0YVRhZ3NbdF0p bj1uKyIgIitkZWNvZGVVUklDb21wb25lbnQoaSkrJz0iJytkZWNvZGVVUklDb21w b25lbnQodGhpcy5PcGVuR3JhcE1ldGFUYWdzW3RdW2ldKSsnIic7JCgiPG1ldGEg IituKyIgLz4iKS5hcHBlbmRUbygiaGVhZCIpLG49IiJ9fSxBZGRPcGVuR3JhcGhV cmw6ZnVuY3Rpb24oKXt2YXIgaT0kKCJtZXRhW3Byb3BlcnR5PSdvZzp1cmwnXSIp LHQsbjtpLmxlbmd0aHx8JCgnPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVu dD0iJytlbmNvZGVVUkkod2luZG93LmxvY2F0aW9uKSsnIi8+JykuYXBwZW5kVG8o ImhlYWQiKSx0PSQoIm1ldGFbcHJvcGVydHk9J29nOmRlc2NyaXB0aW9uJ10iKSx0 Lmxlbmd0aHx8KG49JCgibWV0YVtuYW1lPSdkZXNjcmlwdGlvbiddIiksbi5sZW5n dGgmJiQoJzxtZXRhIHByb3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0i JytuLmF0dHIoImNvbnRlbnQiKSsnIi8+JykuYXBwZW5kVG8oImhlYWQiKSl9LEFk ZE9wZW5HcmFwaE5hbWVzcGFjZTpmdW5jdGlvbigpe3ZhciBuPSJ4bWxuczpvZyI7 JCgiaHRtbCIpLmF0dHIobik9PXVuZGVmaW5lZCYmJCgiaHRtbCIpLmF0dHIobiwi aHR0cDovL29ncC5tZS9ucyMiKX0sQWRkRmFjZWJvb2tOYW1lc3BhY2U6ZnVuY3Rp b24oKXt2YXIgbj0ieG1sbnM6ZmIiOyQoImh0bWwiKS5hdHRyKG4pPT11bmRlZmlu ZWQmJiQoImh0bWwiKS5hdHRyKG4sImh0dHA6Ly9vZ3AubWUvbnMvZmIjIil9fTs= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline Content-Type: image/png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/searchimages/searchv3.ltr.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADQAAAAoCAYAAACxbNkLAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9D BY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfy l5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT 0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq YAAAOpgAABdvkl/FRgAAApNJREFUeNrsmMFx2lAQhn95UoBOuXo1zj1KBYEO5GNO Rh2YCoIrAFcgcsoxdBB1gAoIk+Wak1IBOXifZxGrFyFkLHnYGQaQxQ+fd/d/+16w 2+3wluIKbywuQBegM8c76+L76XffZ0IACQBS15YA2L35M//SLyBPJAAygdLxFcAC wLSXGaqJEYAf8joH8A1ACeAzgHt5hADSofRQpsprLM8rycongZsIeO+BRtIzXJOB AsCjvL4bAlAszyvPPe5vNASgUjmcz/0Gsw4VyuVCT1lC23ffgVhg5gbURKwb4n69 t+1M9YZzshWAvwA+SuYga1Hed6BMIHQ/kaw7+tojgFnfF9YqzFJsO1ZZYclW2dtZ 7j8wrqeKIU3bIw/MILcPhSqhwcD4Sq4EEEnzFxhQBJdDkgvQBeisW/DqZL23mAZB cJQIEYUAwMwlAHTRz20zNAfwU+2TcIoOEcWvWXITecQClbT5YiLa0yGi5DWAYvmv 6tK7awHTic6pQCGeTn3CykSRtuibk3WaAk0a7omcIaTWlC3ldJSOM4YugTJjwnZx b/TK1BqLiCgDkFlQRGTqMHNn45UbfaogqQylrm/Wlc8tYJySRlF0oMPMS9U3BzrM /Kxj2fYHilyJVuPhF//O64DWhgWnsnFbV0okx9NBIwygo3SYeU/HAgqCADfXNFNn FgCQb7Y8tu53JTc2yicTW9Y/ggHcejLelc5ebLY8U7qlz0Cu1E3Wj4krzXvr22pL YzfSaWECDuJhs2Vuun0IPROA7itbTEYfseZaHddX1agrORc31zTabDn33m9cDI16 N03A9+UCdaCjTaAJUFcbPDfWhD4T8AEpZ3vWqZrAOYGgjqoWTY+orGlboBLJTvnS QP8GAKci9E2HWBgLAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=microsoftlogov3.png Content-Type: image/png; name=microsoftlogov3.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/headerimages/microsoftlogov3.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAF4AAAAUCAYAAAAEEYpkAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9D BY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfy l5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT 0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq YAAAOpgAABdvkl/FRgAABE9JREFUeNrs2HmIllUUBvDfp1a2WJNRVrZaQZZR2YLt KGbRIpZRZBSk9VcblOEfLRgEUdhGREiLKUbaZmVJNC1kktFGe2aaZZbRoo7RWFP0 9UfPC5ePGceIPpPmwHDfec/d3uee85znfrW1YwbVdWP95iytTW6tddtv8on1mh7b IOvVA0EP8P8r6/NvLzBx4sSBWaeOlfiti647oF/6fY927I2D8EL+3xRsEG7CyViF o/Bt2WHKlClNifiXsQTLcHoXfXpjLpam34i8n42ncPUmAnpfPIaz8SNW5NskiDZr JtVslYjvhQu76DMykdELtSITP8DPWLyJAH8MDg3gh+O4AP9WAnDLZgLfK/SyBqdm Y402Ie2atJU6ugjb4eEusqRvN9/QmW8LbL6eMbXM27sbf2c0vW3aFaEZ6I/Dsma9 2cCvwbxselyDf3+MxRudRPYNWJDIUaTsXfgYy/Epzo/vbryE4zEjtHVEfOfjlbxb htZOqO8cLMRX+BKTCt/22c978S3GdAyO/1ZMyfMBifAXcV9Rw54PdTZN1WyWqP0t wPcvfOdmH1M7KaBDMQw75/+D8RouTSYsie+E+IdhOO7NvLthG9yYgxiWAt8Wensa l2TsmZiFIXgXHTgyvpYEzvUYmFq0OS7A/IA/EHsW9DokwmCfQsgMrg6qT785Szfo 0vMPL0d98Xo+dCxOCxAtoZPvEwkXdzH+j7S3BehZGI91OYCB8Vep/Av2TYEbhWtS K04JUHAF7sB1eCD9JGonh2p2yrtJObQ3M8cPAX4WzsDNGJ2MmYV3kqUdGbcQ3+GQ ioL61B5a0+2NtH5eS83z3d9cjerycGqJ9mkBfkKAH41d87E/llW/wTqwR9TOr4m8 dfG15a+sDbeEDqRow5MF6JIVl0f+DQ39iABYHnWysij+FZ38UOzp9gB/RLK2vQiU jiIIqqBor+R0My9QW+JZvB8OPrTg+4e6Gft7EdUrwsHrs2XF84C0nzf0ac9hy9x3 hpP3wP34ECcl8qs5vmyY45vsrV++r/53Cl+zrFIJ04uoHI7nwqm6URrtRZHqv55+ GgD4qQC3Ud205Hl1InNUsqoVu4eCBhQHNKBhjh3D3W2hstp/EfjKHg6njwxPTtuA MVtETSwJWFcWvm2wXyeAlxc4GJPiXNlZGfdVFNW+qUUvRwG1hQb7FhR1eQpnZVVN erUhuBqztZKaLRsT+JV4Is8fVfJqA3/auDbtVViEZzqRfY32ePi9f6Rpa9rpxZxt kYrLMBOPpmi/HYq6NeuMyLpzI2fH53uub8i40pbjC2wdOTmvWcC/nYjqKN5Nzcbv SbFU3FQXFZePT/FZkeqzQwcvRnEMD020FuM/KOilyoJxAfhrHB2pNz8cPiP9FqTw jcWBeCRX/wq84XgwUT0yun46ji3uH6uy5w+L9dfiMnyCvbDLXyc0c3UzVE2P9fws 3AP8/9pq9Xq9B4WNYH8OAFfwGRuUZDyaAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=downarrow.png Content-Type: image/png; name=downarrow.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/headerimages/downarrow.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAcAAAAFCAYAAACJmvbYAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9D BY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfy l5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT 0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq YAAAOpgAABdvkl/FRgAAAFBJREFUeNpiVJZXEGBgYFjPgAkame4+fPCBgYHhIAMD gwMSZrj78MEBJiijgYGB4QJUxwcGBoZEBgYGBiYkYxJhxt19+OABhiXK8goOyHzA AHGlFFhlmBuXAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=search_mag_glass.png Content-Type: image/png; name=search_mag_glass.png Content-Location: http://support.microsoft.com/library/images/support/CN/search_mag_glass.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAIAAABGNLJTAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8x Mi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v eGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRv YmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9Inht cC5paWQ6RTlGMzBDNjVEQzA3MTFFMUE1RkJGQUJBRDVFMjMyNjUiIHhtcE1NOkRv Y3VtZW50SUQ9InhtcC5kaWQ6RTlGMzBDNjZEQzA3MTFFMUE1RkJGQUJBRDVFMjMy NjUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlp ZDpFOUYzMEM2M0RDMDcxMUUxQTVGQkZBQkFENUUyMzI2NSIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDpFOUYzMEM2NERDMDcxMUUxQTVGQkZBQkFENUUyMzI2NSIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/PjY2SEQAAAEgSURBVHjaYvz//z8DKlhw+vXEw88vPP0K 4Too89W7ywJJIJsRTXXiijtA1RC2gTQ3XM/8CJUEU1GG/0ig/+AzhqJjQARkQETe f/tdv+MRRHD/nY8oqhVaziIrhQOIBoepV5jgbgBa+uDdTwUh9gI7STSfQEQO3P2E UP3hx18gqSDIzoABBDhZgH4AMpjQJB68/8mADUC8i1ANDCOgGUDHAG1EUzrh0HNI ECG55PsfAU5mICNw/k1kDcAALdz4AMjIt5WEhjdQqeP0a/DQhZgkwMEMdBjQNiAX GNjAIAepRlMKdNKFZ9+AgnAv5ttKNLjLAtksaEohZkDCC64ZbiEjMMzhEnCluAAT 8UpBqiHBDrSu31+BgRBgxEyxeABAgAEAIJbGTZsQIGgAAAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=ss_dd_select1.png Content-Type: image/png; name=ss_dd_select1.png Content-Location: http://support.microsoft.com/library/images/support/cn/ss_dd_select1.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAA0AAAAYCAYAAAAh8HdUAAAAAXNSR0IArs4c6QAA AARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA OpgAABdwnLpRPAAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwA AAC6SURBVDhPpdAxCoMwGMXxFkFwc/MIIXMXN1eXB1065AjSG3gF505eIUfIFTyC V/AIWiL0EcThSQO/EBL+fJD74/3ZbldXjNZ1hWofErdlWaBiNM8zVIymaYKKUQgB Kkbee6gYjeMIFaNhGKBi1Pc9VIy6roOKkXMOP9vJSt8ZtW2LVNod3xjVdY2jGJ7d MzLGQMWoqiqoGOV5DhWjLMugYlQUBVSMyrKE6r+PsNY+VZzUNM1LxSgervgCpo4C FhApZbcAAAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=wayfinder.css Content-Type: text/css; charset=utf-8; name=wayfinder.css Content-Location: http://support.microsoft.com/common/css/gps/wayfinder.css?80 Content-Transfer-Encoding: 8bit .wayfinder { height: 143px; background: #0072c6; color: #333; position: relative; z-index: 10; } .wayfinder a, .wayfinder a:hover { color: #fff; text-decoration: none; } .wayfinder .products { margin-left: 220px; } .wayfinder .modalities { width: 220px; float: left; } .wayfinder .modalities a, .wayfinder .modalities a:hover { color: White; height: 100%; width: 100%; display: table; *display: block; *line-height: 47px; vertical-align: middle; font-size: 16px; } .wayfinder .modalities a span { display: table-cell; vertical-align: middle; height: 100%; overflow: hidden; padding-left: 15px; } .wayfinder .modalities a span > span { display: inline-block; max-width: 170px; padding-left: 3px; height: auto; *line-height: 20px; } .wayfinder .modalities a span > img { display: inline-block; } .wayfinder .modalities ul { background: #002050; height: 100%; } .wayfinder .modalities li { border-bottom: 1px solid #fff; border-right: 1px solid #fff; overflow: hidden; } .wayfinder .modalities li.selected { background: #0072c6; border-right-color: #0072c6; } .wayfinder .modalities li.selected a { font-weight: bold; } .wayfinder .modalities li .arrow { margin-left: 10px; display: none; } .wayfinder .modalities li.selected .arrow { display: inline; } .wayfinder .modalities li { height: 47px; } .wayfinder .products h3 { padding: 0; margin: 0; font-size: 16px; font-weight: normal; color: #fff; height: 48px; line-height: 45px; margin-left: 20px; } .wayfinder .products > ul { margin-left: 10px; } .wayfinder .products > ul > li { float: left; width: 80px; height: 95px; position: relative; } .wayfinder .products > ul > li.last { margin-left: 10px; width: 120px; } .wayfinder .products > ul > li.last span.icon img { position: absolute; top: 50px; right: 1px; } .wayfinder .products > ul > li.last span.title { text-align: center; width: 100px; } .wayfinder .products > ul > li a { display: block; height: 100%; text-align: left; font-size: 12px; overflow: hidden; line-height: 15px; cursor: pointer; } .wayfinder .products > ul > li span { display: block; } .wayfinder .products > ul > li span.icon { position: inherit; left: 0; top: 0; overflow: hidden; width: 100%; height: 100%; } .wayfinder .products > ul > li span.title { position: absolute; left: 0; top: 50px; text-align: center; width: 100%; } .wayfinder .products > ul > li span.selected-indicator { position: absolute; left: 0; bottom: 0; display: block; width: 100%; text-align: center; } .wayfinder .products > ul > li span.selected-indicator img { width: 15px; height: 7px; } .wayfinder .products > ul > li .show-when-selected { display: none !important; } .wayfinder .products > ul > li.selected .show-when-selected { display: block !important; } .wayfinder .products > ul ul { left: 0; top: 100%; position: absolute; background: #fff; border: 2px solid #d1d3d4; display: none; min-width: 200px; } .wayfinder .products > ul ul li:hover { background: #0072c6; } .wayfinder .products > ul ul li:hover a { color: #fff; } .wayfinder .products > ul ul li a { padding: 10px; padding-right: 30px; color: #333; text-align: left; white-space: nowrap; overflow: visible; } .wayfinder ul { list-style: none; padding: 0; margin: 0; } ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=wayfinder.js Content-Type: application/x-javascript; name=wayfinder.js Content-Location: http://support.microsoft.com/common/script/gps/wayfinder.js?80 Content-Transfer-Encoding: Base64 dmFyIE1pY3Jvc29mdD13aW5kb3cuTWljcm9zb2Z0fHx7fTtNaWNyb3NvZnQuU3Vw cG9ydD1NaWNyb3NvZnQuU3VwcG9ydHx8e30sTWljcm9zb2Z0LlN1cHBvcnQuR1NT PU1pY3Jvc29mdC5TdXBwb3J0LkdTU3x8e30sTWljcm9zb2Z0LlN1cHBvcnQuR1NT LldheUZpbmRlcj1mdW5jdGlvbihuLHQpe3ZhciBzPU1pY3Jvc29mdC5TdXBwb3J0 LkdTUy5TY29wZU5vZGVUeXBlLG89TWljcm9zb2Z0LlN1cHBvcnQuR1NTLlNjb3Bl Tm9kZSx1PXRoaXMsbD0kKHRoaXMpLGM9JChuKSx1dD17ZW5hYmxlOiEwLGxhbmd1 YWdlOiJlbi11cyIsaXNSVEw6ITEscGF0aDoiIixpc0Z1bGxUb3BpY1BhdGg6ITEs dG9waWNLZXlzOltdfSxmPSQuZXh0ZW5kKCEwLHt9LHV0LHQpLGE9JCgiLm1vZGFs aXRpZXMgbGkiLGMpLGU9JCgiLnByb2R1Y3RzIHVsOmZpcnN0ID4gbGkucHJvZHVj dC10aWxlIixjKSxydD0kKCIucHJvZHVjdHMgbGkucHJvZHVjdC1pdGVtIixjKSx2 PSQoInVsIixlKSx5PWEuZmlsdGVyKCIuc2VsZWN0ZWQiKSxudD1lLmZpbHRlcigi LnNlbGVjdGVkIiksZXQ9bnQsaD1udWxsLGQ9bmV3IG8ocy5Sb290KSxpPW51bGws cj1udWxsLHR0PW8ucHJvdG90eXBlLnBhcnNlUGF0aCxvdD1mdW5jdGlvbihuKXty ZXR1cm4gdHQobikuam9pbigiLyIpfSxnPWZ1bmN0aW9uKG4sdCl7dmFyIGY9aSx1 O2k9cj10LmRhdGEoIm5vZGUiKSx3KCksdT1sLnRyaWdnZXJIYW5kbGVyKCJwcm9k dWN0c2VsZWN0IixbcixuXSk9PT0hMSxmIT09aSYmbC50cmlnZ2VySGFuZGxlcigi c2NvcGVjaGFuZ2UiLFtpLGZdKT09PSExJiYodT0hMCksdSYmbi5wcmV2ZW50RGVm YXVsdCgpfSxwPWZ1bmN0aW9uKG4pe3JldHVybnt0eXBlOm4uZGF0YSgidHlwZSIp LHJvb3RQYXRoOm4uZGF0YSgicm9vdC1wYXRoIil9fSxrPWZ1bmN0aW9uKG4pe3Zh ciB0PW4uZGF0YSgibm9kZSIpO3JldHVybiB0IGluc3RhbmNlb2Ygb3x8KHQ9bmV3 IG8ocy5Qcm9kdWN0LG4uZGF0YSgia2V5IiksJC50cmltKG4uZmluZCgiPiBhIiku dGV4dCgpKSx7c2VhbUlkOm4uZGF0YSgic2VhbS1pZCIpLHByb2R1Y3RJZDpuLmRh dGEoInByb2R1Y3QtaWQiKX0pLG4uZGF0YSgibm9kZSIsdCkpLHR9LGI9ZnVuY3Rp b24oKXt2YXIgdD1bXSxuPVtdO3JldHVybiAkLmVhY2goYXJndW1lbnRzLGZ1bmN0 aW9uKHQsaSl7aSYmKCQuaXNBcnJheShpKT9uPW4uY29uY2F0KGkpOm4ucHVzaChp KSl9KSwkLmVhY2gobixmdW5jdGlvbihuLGkpe2k9JC50cmltKGkpLGkmJiQuZWFj aChpLnNwbGl0KC9bXFxcL10vKSxmdW5jdGlvbihuLGkpe2k9JC50cmltKGkpLGkm JnQucHVzaChpKX0pfSksIi8iKyh0Lmxlbmd0aD4wP3Quam9pbigiLyIpKyIvIjoi Iil9LHc9ZnVuY3Rpb24oKXskLmVhY2goYSxmdW5jdGlvbigpe3ZhciBuPSQodGhp cyksdD1wKG4pO24uZmluZCgiYSIpLmF0dHIoImhyZWYiLGIodC5yb290UGF0aCxp P2kuZ2V0UGF0aCgpOiIiKSl9KX0saXQ9ZnVuY3Rpb24oKXskLmVhY2gocnQsZnVu Y3Rpb24oKXt2YXIgbj0kKHRoaXMpO24uZmluZCgiYSIpLmF0dHIoImhyZWYiLGIo aC5yb290UGF0aCxuLmRhdGEoIm5vZGUiKS5nZXRQYXRoKCkpKX0pfSxmdD1mdW5j dGlvbigpe2g9cCh5KSxkPW5ldyBvKHMuUm9vdCkscj1udWxsLGUuZWFjaChmdW5j dGlvbigpe3ZhciBuPSQodGhpcyksdD1rKG4pO2QuYWRkQ2hpbGRyZW4odCksbi5m aW5kKCJsaS5wcm9kdWN0LWl0ZW0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49JCh0 aGlzKSxpPWsobik7dC5hZGRDaGlsZHJlbihpKX0pLHI9PT1udWxsJiZuLmlzKCIu c2VsZWN0ZWQiKSYmKHI9bi5maW5kKCJsaS5wcm9kdWN0LWl0ZW0uc2VsZWN0ZWQi KS5kYXRhKCJub2RlIil8fHQpfSksaT1yLGkmJiQuaXNBcnJheShmLnRvcGljS2V5 cykmJigkLmVhY2goZi50b3BpY0tleXMsZnVuY3Rpb24obix0KXtpZih0KXt2YXIg cj1uZXcgbyhzLlRvcGljLHQpO3Iuc2V0UGFyZW50KGksITApLGk9cn1lbHNlIHJl dHVybiExfSksaS5nZXQoInR5cGUiKT09PXMuVG9waWMmJihpLl9wcm9wcz17bGVh ZjpmLmlzRnVsbFRvcGljUGF0aH0pKSwkKCJhIixhKS5jbGljayhmdW5jdGlvbihu KXt2YXIgdCxpO2lmKCFmLmVuYWJsZSlyZXR1cm4hMTtuLnByZXZlbnREZWZhdWx0 KCksdD0kKHRoaXMpLnBhcmVudCgibGkiKSx5WzBdIT09dFswXSYmKGEubm90KHQp LnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpLHQuYWRkQ2xhc3MoInNlbGVjdGVkIiks aD1wKHQpLGwudHJpZ2dlcigibW9kYWxpdHlzZWxlY3QiLFtoLG5dKSx5PXQsaXQo KSxpPXQuZGF0YSgicHJvZHVjdHMtaGVhZC10aXRsZSIpLGkmJiQoIi5wcm9kdWN0 cyAuaGVhZC10aXRsZSIsYykuaHRtbChpKSl9KSwkKCI+IGEiLGUpLmNsaWNrKGZ1 bmN0aW9uKG4pe2lmKCFmLmVuYWJsZSlyZXR1cm4hMTt2YXIgaT0kKHRoaXMpLnBh cmVudCgibGkiKSx0PWkuZmluZCgiPiB1bCIpO3QubGVuZ3RoPjA/KHQuaXMoIjp2 aXNpYmxlIik/dC5oaWRlKCk6KHYubm90KHQpLmhpZGUoKSx0LnNob3coKSx3aW5k b3cuc2V0VGltZW91dChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9uZSgiY2xpY2si LGZ1bmN0aW9uKCl7dC5oaWRlKCl9KX0sMTAwKSksbi5wcmV2ZW50RGVmYXVsdCgp KTooZS5ub3QoaSkucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIiksdi5ub3QodCkuaGlk ZSgpLGkuYWRkQ2xhc3MoInNlbGVjdGVkIiksZyhuLGkpKX0pLHYuZWFjaChmdW5j dGlvbigpe3ZhciBuPSQodGhpcyk7aWYobi5pcygiOnZpc2libGUiKSkkKGRvY3Vt ZW50KS5vbmUoImNsaWNrIixmdW5jdGlvbigpe24uaGlkZSgpfSl9KSwkKCJsaSA+ IGEiLGUpLmNsaWNrKGZ1bmN0aW9uKG4pe2lmKCFmLmVuYWJsZSlyZXR1cm4hMTt2 YXIgaT0kKHRoaXMpLnBhcmVudCgibGkiKSx0PWkucGFyZW50KCJ1bCIpLHI9dC5w YXJlbnQoImxpIik7dC5oaWRlKCksZS5ub3QocikucmVtb3ZlQ2xhc3MoInNlbGVj dGVkIiksdi5ub3QodCkuaGlkZSgpLHIuYWRkQ2xhc3MoInNlbGVjdGVkIiksZyhu LGkpfSk7Yy5vbigia2V5cHJlc3MiLCJhIixmdW5jdGlvbihuKXtuLndoaWNoPT09 MTMmJiQodGhpcykuY2xpY2soKX0pOyQoZG9jdW1lbnQpLm9uKCJnZXQtaW5zdGFu Y2VzIixmdW5jdGlvbihuLHQsaSl7aT0kLmlzRnVuY3Rpb24oaSk/aTokLmlzRnVu Y3Rpb24odCk/dDpudWxsLHQ9JC5pc0FycmF5KHQpP3Q6W10sKGk9PT1udWxsfHxp KHUpPT09ITApJiZ0LnB1c2godSl9KX07ZnQoKSx1LmVuYWJsZT1mdW5jdGlvbihu KXtmLmVuYWJsZT1uIT09ITF9LHUuZ2V0Q3Q9ZnVuY3Rpb24oKXtyZXR1cm4gY30s dS5nZXRDdXJyZW50TW9kYWxpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gaD8kLmV4dGVu ZCh7fSxoKTpudWxsfSx1LmdldEN1cnJlbnRTY29wZT1mdW5jdGlvbigpe3JldHVy biBpfSx1LmdldEN1cnJlbnRQcm9kdWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHJ9LHUu Y2hhbmdlU2NvcGU9ZnVuY3Rpb24obil7dmFyIHQsdSxmO2lmKHImJm4gaW5zdGFu Y2VvZiBvKXt0PW4uZmluZFBhcmVudEJ5VHlwZShzLlByb2R1Y3QsITApLHU9bnVs bDtpZih0PT09biYmdC5nZXRQYXRoKCk9PT1yLmdldFBhdGgoKSl1PXI7ZWxzZXtp Zih0IT09cilpZih0LmdldFBhdGgoKT09PXIuZ2V0UGF0aCgpKXIucmVtb3ZlQ2hp bGRyZW4oci5maW5kQ2hpbGRyZW5CeVR5cGUocy5Ub3BpYykpLHIuYWRkQ2hpbGRy ZW4odC5nZXQoImNoaWxkcmVuIikpO2Vsc2UgcmV0dXJuITE7dT1ufXJldHVybiBp IT09dSYmKGY9aSxpPXUsdygpLGwudHJpZ2dlcigic2NvcGVjaGFuZ2UiLFtpLGZd KSksITB9cmV0dXJuITF9fSxNaWNyb3NvZnQuU3VwcG9ydC5HU1MuU2NvcGVOb2Rl PWZ1bmN0aW9uKG4sdCxpLHIsdSl7dmFyIGY9dGhpczskLmV4dGVuZChmLHtfdHlw ZTpwYXJzZUludChuLDEwKSxfa2V5OnQ/JC50cmltKHQpLnRvTG93ZXJDYXNlKCk6 IiIsX25hbWU6JC50cmltKGkpLF9wcm9wczokLmlzUGxhaW5PYmplY3Qocik/cjp7 fX0pLGYuYWRkQ2hpbGRyZW4odSl9LCQuZXh0ZW5kKE1pY3Jvc29mdC5TdXBwb3J0 LkdTUy5TY29wZU5vZGUucHJvdG90eXBlLHtfdHlwZTpudWxsLF9rZXk6bnVsbCxf bmFtZToiIixfcHJvcHM6e30sX3BhcmVudDpudWxsLF9jaGlsZHJlbjpudWxsLF9m aWx0ZXJTY29wZU5vZGVzOmZ1bmN0aW9uKG4pe3ZhciBpPXRoaXMuY29uc3RydWN0 b3IsdDtpZihuKXtpZihuIGluc3RhbmNlb2YgaSlyZXR1cm4gbjtpZigkLmlzQXJy YXkobikpcmV0dXJuIHQ9W10sJC5lYWNoKG4sZnVuY3Rpb24obixyKXtyIGluc3Rh bmNlb2YgaSYmdC5wdXNoKHIpfSksdH1yZXR1cm4gbnVsbH0scGFyc2VQYXRoOmZ1 bmN0aW9uKG4pe3ZhciB0PVtdO3JldHVybiB0eXBlb2Ygbj09InN0cmluZyImJm4m JiQuZWFjaChuLnNwbGl0KC9bXFxcL10vKSxmdW5jdGlvbihuLGkpe2k9JC50cmlt KGkpLGkmJnQucHVzaChpLnRvTG93ZXJDYXNlKCkpfSksdH0sYWRkQ2hpbGRyZW46 ZnVuY3Rpb24obil7dmFyIHQ9dGhpcztuPXQuX2ZpbHRlclNjb3BlTm9kZXMobiks biYmKCQuaXNBcnJheSh0Ll9jaGlsZHJlbil8fCh0Ll9jaGlsZHJlbj1bXSksJC5l YWNoKCQuaXNBcnJheShuKT9uOltuXSxmdW5jdGlvbihuLGkpe2lmKCQuaW5BcnJh eShpLHQuX2NoaWxkcmVuKT09PS0xKXt2YXIgcj1pLmdldCgicGFyZW50Iik7ciYm ciE9PXQmJnIucmVtb3ZlQ2hpbGRyZW4oaSksdC5fY2hpbGRyZW4ucHVzaChpKSxp LnNldFBhcmVudCh0LCEwKX19KSl9LHJlbW92ZUNoaWxkcmVuOmZ1bmN0aW9uKG4p e3ZhciB0PXRoaXM7JC5lYWNoKCQuaXNBcnJheShuKT9uOltuXSxmdW5jdGlvbihu LGkpe3ZhciByPSQuaW5BcnJheShpLHQuX2NoaWxkcmVuKTtyPi0xJiYodC5fY2hp bGRyZW4uc3BsaWNlKHIsMSksaS5zZXRQYXJlbnQobnVsbCkpfSl9LGNsZWFyQ2hp bGRyZW46ZnVuY3Rpb24oKXt0aGlzLl9jaGlsZHJlbj1bXX0sZmluZENoaWxkcmVu OmZ1bmN0aW9uKG4sdCl7dmFyIHI9dGhpcyxpO3JldHVybiB0PXQ9PT0hMCxpPVtd LCQuaXNGdW5jdGlvbihuKSYmci5fY2hpbGRyZW4mJiQuZWFjaChyLl9jaGlsZHJl bixmdW5jdGlvbihyLHUpe2lmKG4odSkpe2kucHVzaCh1KTtpZih0KXJldHVybiEx fX0pLGl9LGZpbmRDaGlsZHJlbkJ5VHlwZTpmdW5jdGlvbihuLHQpe3JldHVybiB0 aGlzLmZpbmRDaGlsZHJlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXQoInR5cGUi KT09PW59LHQpfSxmaW5kQ2hpbGRCeUtleTpmdW5jdGlvbihuKXt2YXIgdD10aGlz LmZpbmRDaGlsZHJlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXQoImtleSIpPT09 bn0sITApO3JldHVybiB0Lmxlbmd0aD4wP3RbMF06bnVsbH0sZmluZENoaWxkQnlQ YXRoOmZ1bmN0aW9uKG4sdCxpKXt2YXIgZj10aGlzLHU9JC5pc0FycmF5KG4pP246 Zi5wYXJzZVBhdGgobikscixlO2lmKGk9PT0hMCl7aWYodVswXSE9PWYua2V5KXJl dHVybiBudWxsO3U9dS5zbGljZSgxKX1yZXR1cm4gcj1mLGU9MCwkLmVhY2godSxm dW5jdGlvbihuLGkpe3ZhciB1PXIuZmluZENoaWxkQnlLZXkoaSk7aWYodSlyPXU7 ZWxzZSByZXR1cm4gdD09PSEwJiYocj1udWxsKSwhMX0pLHJ9LGZpbmRQYXJlbnRz OmZ1bmN0aW9uKG4sdCxpKXt2YXIgZj10aGlzLHUscjtpPWk9PT0hMCx1PVtdO2lm KCQuaXNGdW5jdGlvbihuKSl7cj10PT09ITA/ZjpmLl9wYXJlbnQ7d2hpbGUocil7 aWYobihyKSl7dS5wdXNoKHIpO2lmKGkpYnJlYWt9cj1yLl9wYXJlbnR9fXJldHVy biB1fSxmaW5kUGFyZW50QnlUeXBlOmZ1bmN0aW9uKG4sdCl7dmFyIGk9dGhpcy5m aW5kUGFyZW50cyhmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXQoInR5cGUiKT09PW59 LHQsITApO3JldHVybiBpLmxlbmd0aD4wP2lbMF06MH0sZ2V0OmZ1bmN0aW9uKG4p e3ZhciBpPXRoaXMsdD1pWyJfIituXTtpZih0PT09dW5kZWZpbmVkKXt0PWlbIl8i KyQudHJpbShuKS50b0xvd2VyQ2FzZSgpXTtpZih0PT09dW5kZWZpbmVkKXJldHVy biBudWxsfXJldHVybiAkLmlzUGxhaW5PYmplY3QodCk/JC5leHRlbmQoe30sdCk6 JC5pc0FycmF5KHQpP3QuY29uY2F0KCk6dH0sc2V0UGFyZW50OmZ1bmN0aW9uKG4s dCl7dmFyIGk9dGhpcztuPWkuX2ZpbHRlclNjb3BlTm9kZXMobik7aWYoaS5fcGFy ZW50PT09bilyZXR1cm47aS5fcGFyZW50JiYoaS5fcGFyZW50LnJlbW92ZUNoaWxk cmVuKGkpLGkuX3BhcmVudD1udWxsKSxuJiYoaS5fcGFyZW50PW4sdCE9PSEwJiZu LmFkZENoaWxkcmVuKGkpKX0sZ2V0UGF0aE5vZGVzOmZ1bmN0aW9uKG4pe3ZhciB0 PXRoaXMsaTtyZXR1cm4gbj09PSEwJiZ0Ll90eXBlPT09TWljcm9zb2Z0LlN1cHBv cnQuR1NTLlNjb3BlTm9kZVR5cGUuUm9vdD9bXTooaT10Ll9wYXJlbnQ/dC5fcGFy ZW50LmdldFBhdGhOb2RlcyhuKTpbXSxpLnB1c2godCksaSl9LGdldFBhdGg6ZnVu Y3Rpb24oKXt2YXIgbj10aGlzLHQ9bi5fcGFyZW50P24uX3BhcmVudC5nZXRQYXRo KCk6IiI7cmV0dXJuKHQ/dCsiLyI6IiIpK24uX2tleX19KSxNaWNyb3NvZnQuU3Vw cG9ydC5HU1MuU2NvcGVOb2RlVHlwZT17Um9vdDowLFByb2R1Y3Q6MSxUb3BpYzoy fTs= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-modality-carrot.png Content-Type: image/png; name=way-modality-carrot.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-modality-carrot.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8x Mi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v eGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRv YmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9Inht cC5paWQ6NDE4QzlEQ0REMDZBMTFFMTkyMDI5NkNCRjBGMjcyQzIiIHhtcE1NOkRv Y3VtZW50SUQ9InhtcC5kaWQ6NDE4QzlEQ0VEMDZBMTFFMTkyMDI5NkNCRjBGMjcy QzIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlp ZDo0MThDOURDQkQwNkExMUUxOTIwMjk2Q0JGMEYyNzJDMiIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDo0MThDOURDQ0QwNkExMUUxOTIwMjk2Q0JGMEYyNzJDMiIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/PtxxxWAAAABJSURBVHjaYvj//38DECcAMQM2zMQAAfOB OIEBC2BCYmNVxITGBykqwKcABPKBWAGXggtAbAjED7ApAEk6AvEHbFZglQQBgAAD AKR9IlYlnpcDAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-windows-selected.png Content-Type: image/png; name=way-windows-selected.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-windows-selected.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAYAAAB/R0B4AAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9D BY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfy l5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT 0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq YAAAOpgAABdvkl/FRgAAA1FJREFUeNrs3E9r02AcB/BvniTPkzZtl7Td1v3rtu4P OCYMX8DAo29AD4IHD8LOHgTFmwcPXt1RQfSgr0A8uNsERZkgCIqIzIk6JtN1deua 1kNbdVSdW1NN2u/3VAhP+vRDnj7Jk1+i4exiBW0UJ2KgL2EiE5fIJRUmui2MuBay rkRc6Th85amv32eEDUgXGpJRA2nbwIirMJq0MOwqjKUUcikL3TETaduAZYiGtpvF su/9CSxgKmog6yoMdkkMuwqT3RHkUgp9CYmBhETaNqALbV/7LHptBCh1DT0xEz0x E8NudaiNpy0srRQwv/ged05NYjaXgLFPpH+dlgLaUsCJGBhyFEaTqjbULIzVjqSe mIlkdHcXbj5exfwikIwagcdrCeC5owOYzkQw6CgMORKZuIQtxV+33ypV57SSF465 zXfAS8eGQnHk+BXh9w43tj10UgQYAhKQgARkCEhAAhKQ+f+AQmvuMq7eXLTgcrDZ voXqCKyEZJ3c98WE2avPDryYoGnAar4EADh56yViSvgKWSpXgg9oSx2mrh3oh+sC +LJVXYyISoGY0lH2aRFZ04AdLwSA984cQkzpB25//dFHnL79CtdOjGGm3/a1b/lt D/ELD4P9H9jsMKk3b8Hti5YMYd8Bm+1ifehXWjCLtGJe4nkgAQlIQAIyBCQgAQnI BAEw3sR1cBjj+2LCxbvLmM5EMdAlkXUkevdZXNTxgJfvr3z/HFM6HEv/Xt6WrZW3 jactZOImeuMm3MjuLlhGdS3R0LXOBPw5+W0P+W0Pbz8X8eDNxq5tUtfQGzfRbf8o sJxIR7D0bhMA8KlQQqlc6ewCyz+l6FWwvF7E8noRT1Y2G7Yfv/ECw67CwC9KfAe7 JFLR/Zf4thXgXlkrlLBWKDXgNlNkLnXROYC/i1euYDW/g9X8Dp5/+Nqwfa/HHPyO 1m7PifBEmoAEZAhIQAISkCEgAQlIQIaABCQgARkCEpCABGQISEACEpAhIAEJSECG gAQkIAEZAhKQgAQkIENAAhKQgAwBCUhAAjIEJCABCRiMzPTbeH3+iO+vAu0IwJl+ GwtzUxhJKizMTQUWUQQZz6m9EsWJGIFFFEHHqyeoiCIMeEFGFGHBCyqiCBNeEBG/ DQA8BLdt2OgdpQAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-windows.png Content-Type: image/png; name=way-windows.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-windows.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAYAAAB/R0B4AAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9D BY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfy l5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT 0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq YAAAOpgAABdvkl/FRgAAAxZJREFUeNrs28tqE1EcBvBvbudM5pJmcmlT0yZtegGh gk9QcOkL6EJw4cIXcOFC3Llw4dYuFUQX+gTiwmUERakgCIoLqRU1VKpNY5POJC7S VkvUmmaimeT7VoHhTE5+zMnJ/PMfBRdKTQxQEjEd43EDWVegmJSYy5iY8kzkPQFX ajh27Xmo76dHDUhTFSQtHWlbx5QnMZ00UfAkZlISxZSJjGMgbeswdbVt7Ga9Efp8 +hYwZenIexITIwIFT2I+E0MxJTEeF8jFBdK2Dk1VOjpnPRggQKEpGHUMjDoGCl5r qc2mTSyvVrFU+oB7Z+exWIxD7xDpX6engLZQkYjpmExITCflzlIzMbNzJY06BpLW /incflrGUglIWnrf4/UE8OKJHBayMUwkJCYTAllXwBbqX4/f8lt7mh9EY28LHfDK yclIXDlhRQ37hBu1AMMUFQwBCUhAAjIEJCABCcj8f0BV6e42bne42oPbwW7nFqkr sBmROnnoxYTF6y8OXUxQFKBc8QEAZ+68hiPVUCH9RrP/AW2hwdCUQ31wTQW+brWK EZZQ4UgNjZCKyIoCbAcRAHxw/igcqR16/M0nn3Du7hvcOD2D40fsUOdWqQVwLz3u 7+/AbpfJ7vAe/H3RkyUcOmC3U9xd+s0e7CK92Jf4O5CABCQgARkCEpCABGT6AdDt 4j44igm9mHD5/goWshZyIwL5hMBYh81FQw949eHq3mtHakiY2l57W36nvW02bSLr GhhzDXix/VMw9VYtUdeU4QT8OZVagEotwLsvdTx6u7HvmNAUjLkGMvaPBsu5dAzL 7zcBAJ+rPvxGc7gbLP+UetDEynodK+t1PFvdbDt+6tYrFDyJ3C9afCdGBFJW5y2+ AwV4UNaqPtaqfhtuN03mQlOHB/B3CRpNlCvbKFe28fLjt7bjBz3mEHaUQXtOhD+k CUhAhoAEJCABGQISkIAEZAhIQAISkCEgAQlIQIaABCQgARkCEpCABGQISEACEpAh IAEJSEACMgQkIAEJyBCQgAQkIENAAhKQgAwBCUhAAjIEJGC/5/sApXmgCYjFLOQA AAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-ie-selected.png Content-Type: image/png; name=way-ie-selected.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-ie-selected.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9Inht cC5kaWQ6M0U5RDlFQjZGNzdBMTFFMUI1MzlEQ0JENDUyOTFCMzIiIHhtcE1NOklu c3RhbmNlSUQ9InhtcC5paWQ6M0U5RDlFQjVGNzdBMTFFMUI1MzlEQ0JENDUyOTFC MzIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93 cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmRp ZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/PiLyYDIAAAZ8SURBVHja7Jt7TFNXHMfb2zdtoS0taHkW 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 rwADAOQNS50oTAdyAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-ie.png Content-Type: image/png; name=way-ie.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-ie.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9Inht cC5kaWQ6M0RFOTY1NDlGNzdBMTFFMUFBODQ5QzUwN0RFQzA0NzciIHhtcE1NOklu c3RhbmNlSUQ9InhtcC5paWQ6M0RFOTY1NDhGNzdBMTFFMUFBODQ5QzUwN0RFQzA0 NzciIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93 cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmRp ZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/Pnhzx1QAAAZKSURBVHja7Jp7TNNXFMfbX9+0BVpaUN4F 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 YACl6TQ5JKn2/QAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-office-selected.png Content-Type: image/png; name=way-office-selected.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-office-selected.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIg eG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQUVFQkFFMDU5REUxMUUyOUYwQTg5 N0Y4NEIwRUEzQSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQUVFQkFERjU5 REUxMUUyOUYwQTg5N0Y4NEIwRUEzQSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ aG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJl ZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY2MDc3RUFCQUMwOUUyMTFBNjkwRUNBQzcy QjU1MjMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdBQTFCNjk3Q0VGNkUx MTE4NjQ0QkNDQ0E0OEEyREUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpS REY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WWT/UwAAA+FJREFU eNrs29tP01AYAPCuu5Qx13XDCxKicpmMiWh8MEbREMQ7Gi/xyRcTffHB+OCbLyYm /gf+A/pgjDH65oMaNQoYhSAqGlFwk40x3YVt7bqu7Vo/JPGCEaJ2bcHvZDnJmrOu v37nfD3t2SzE2V7CoGK3Wqrd9n3N3iOtVVJJvfc+0xvm3iUKkwVZVcv1pTZDqODc tNK9Y7WnK+hdwVDTG/cEmJKi9n5kn4S5ZxFuaIIfTQmyojHdonOEOxo9W+vdnX6m rc49e8t3CaEvwg2Mcy9i/NMxjiuW5hO4cXFFV7N3ZxOzccWiqso/61YpXn77uXBn OHPhbtTsYMpGbvd7jrZWdfjpWg9FWv5+V8m8vOR8n0nHsNNO1vmogy2+Qy2+dTUu SE7/vk9eKpkxaUHX3bLKvTvA7A146QrrnO0/sRJ0V0hNbXW0y0HO0lJRzJSlGaet vYHeVk9Dpg0sdc7eeDwrvprgR1LCUJwHbXeIbV1eeftk8+xgc12Wrh7zdzTSMGJ/ 12AsUxyI5l/HC28+TSFBmxO+d9FKO0laCH2KNmAI76/aNC/3hNn+CPd8PA/BhGT7 I/KnzKmXVjMwSCBRzdh4qSd+8V5ULKmEmUoZh40gKWbTlhdMkoQJiykPCsEIRjCC EYxgBCMYwQhGMIIRvJDuh/V8cmMGsKKqJgRr/yBekJWeEHvjZerWUHrBghdR1oKk jKaEh6O564Opx6GcacewNuDuUO7lBH+5P/E6zps8aWkDPn5tZLHLvq3efWZrtVRS Q+nix8liJCOOJAvJvLwAwXFWSvFyUVaA1+n3nG6rrvVQybwE26frWFaM5cQo1Fkx PFkcz4o/flxWCN0SnGZJCwL7PinA6+ardLUbok0fXus7sMbnsFZONwBSQVbgpPCi AvEHP3SBSKY4nBBqPQ6bVadrWBnXh+Ey3FBVcajF1xX0rq9x/W4xUVHhXKjWuRaX tFofthKbT5TvdKZ5uTfMXulPPI/l4YgpG7nM7ZgxH4G3c05RYAjcH8lC3zF1hH8t NbSjvYFub6Q7/Uydj5pr3kI8G2NfxPjBWH4wxg9EOU0WbiyG/GwpuMwJg3xXE7M7 wFT8vOw4kRMffWD7vq45DicKM9LbfAV/m64Eljr3B737mr0wD+0Js90hFpzxnMhL yvxLWnh7iGAEIxjBCEYwghGMYAQjGMEIRjCCEYxgBCMYwQhGMIIRjGAEIxjBCEYw ghGMYAQjGMEIRjCCEYxgBCOYINbXuELnNkD9X4DB+eBUcJWPglp/M2mIlnFO/X0I av3NpFHa6aK/mTRQa4iZNFarv5k0XKuz+YsAAwCodLDOpqgoawAAAABJRU5ErkJg gg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-office.png Content-Type: image/png; name=way-office.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-office.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIg eG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpERTYyQUExODU5REUxMUUyOUMxQkFG Qjg4RjM1M0E0MSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpERTYyQUExNzU5 REUxMUUyOUMxQkFGQjg4RjM1M0E0MSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ aG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJl ZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkY2MDc3RUFCQUMwOUUyMTFBNjkwRUNBQzcy QjU1MjMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdBQTFCNjk3Q0VGNkUx MTE4NjQ0QkNDQ0E0OEEyREUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpS REY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+1drCdAAAA65JREFU eNrs2ttP01AYAPCtuzFgXbchICEol8mGiD4Zo0AIoqKgEY1Pvpjoq/HBP8DExP/A f0AfjDFG33xQYowCRiDcMXJzk40x3IVt7bqu7Vo/JVEuAaJ2o5DvZFmy5qzrr985 X0/7Tau526fZoWbQaUsthg637WqDQ8jI3TOxPi8zHUotp0RZztaP6neECs4TByxn Dlk762wVlGll43kXlZHkvm/0Ry/T72MmFtm5CCdKCtO1OY5wa421qcrS5qQaKy1b 95wOcQM+ZmiBGQ2wn+YZJp3ZTeCaorxOt+1sLXW8otCR/3fDKsKKX76nXk/F7r/x qx1s0hOnndZrDY5WJ1luNRHaf99VOCnuuzeg0jlsNhCVdtPlentXvf1oWQEkp//f Jytk1Ji0YOieOmhpd1EXXDYyT7dt/yVagOEKqamxkiwwElv0lCQ1ZWnKrG+pJpur SMi0rmLz1p0X4vz4Ijsb4SaCLGh7PHTD/vxXt9xbg9V1WXpy3dlaQ8KM3azDfCw9 5E9OBlOfl34iQZvg/gzRfANBaDW5acqAIbwbtVFW7PXSgz5meCEJwYRkuxq5JnPm SqsYGCSQqNZtfNgbfNDt5zOyRk0ti9OGEyS1abMLJgiNCpsqDwrBCEYwghGMYAQj GMEIRjCCEbyX7odz+eRGDWBJllUIVv5BPCdKvR76+Vjk5UR0z4ILTbqUIM1FuHdz iWcjkQ+ehGrnsDLgHk9ibJF9NBiaDLIqT1rKgG88nS0qMDRXWe40lQoZ2RNNf1tO +2L8bDgVTop7EBykhQgrpkUJeG1O6+3G0nKrKZwUYPvKeyDOBxK8H97jvHc5vRDn V39dlDQ5S3CKJS0I7EyYg9eL8WipBaJNXjliv3TYbtTlr3QAUkqU4KSwvATxBz8M AV8sPRXiyq1GvS5H17As1ofhMlztyOuqt3fW2Y6VFWxWTJRkOBeybrviklL1YZ3m 5M3snc4oK/Z56ceDoeFAEo7YpCdKLMZ16xH4uO0SBabA29k4jB1VR3hjKyONLdVk Sw3Z5qQq7abt1i2a/nl6NMCOBJIjAXbIzyhSuNHuyN+W6krMMMnP1VLtLipvbdlx McG//0oP/Ko5ToVS69LbbgX/Xq64is0X62wdbhusQ3u9dI+HBmcwwbOCtPuSFt4e IhjBCEYwghGMYAQjGMEIRjCCEYxgBCMYwQhGMIIRjGAEIxjBCEYwghGMYAQjGMEI RjCCEYxgBCMYwQhGMIIRjGAEI3iT9kOAAQBqUJlqM/VndgAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=Way-Surface-selected.png Content-Type: image/png; name=Way-Surface-selected.png Content-Location: http://support.microsoft.com/library/images/support/CN/Way-Surface-selected.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIg eG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4QjNCNzMwREZFOUIxMUUxQTRENDg2 REQxREIzMzg2QSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4QjNCNzMwQ0ZF OUIxMUUxQTRENDg2REQxREIzMzg2QSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ aG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJl ZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjlDQUFEREQ1OEJGQkUxMTE4NjQ0QkNDQ0E0 OEEyREUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdBQTFCNjk3Q0VGNkUx MTE4NjQ0QkNDQ0E0OEEyREUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpS REY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+rquyHAAAAk1JREFU eNrs279LG2EYB/C8713uvFzEI8ak+OOiQx0iolhr8R8IIlLRQRBEpQqlHevm0KGI Qotu/gMubRcHt07i4lKH4FDIZKmkQWzB35poLn1Dpowlz917bb7P8I5P7pP3ued9 3kBYYGk/UE/BA3UWAAMM8L8dKmGuJ+3m1vTjqKkqnJVKtWZjLOA4pct88fX20ZfM mR/BYV1Jxo3P6d+Z01tNYTVmuy+W2pq0F0Mxy1B8usOOU17X935+Pb4iSWhbugDX XizuvsOmRpazsUEhfzx6MGOMLBW6NMAAAwwwwAADDHDVRE03+xZpx2jyy0MlxD0p FOREqbivwZXH+zjTfXFXrH0MFptb+eLE7dqn4B9nhY29XFAhuz6IihZV/e3klvJu g9+l//OgLOnxnsjL4Xj+wSHMqav8U/rX1sGp78CdEX1zsqutSSPfk+FEOJ29Pszd +KikRR9dG7Xd0IqwDPX9WILqqKPJMtHbPNUXde/FS3Vb809jfgHblv5hLMGZi51G nHPvRjqSccMX4Lep9q6I7nZ3bQ6pq6O2fLDozHODLd6cKOKzFp/FZII7LG3jeUJ1 tZqrY2XE7nkUknYszQ62RM1g9rzgGTisKwtDsTc73zFaYrQEGGCAAQYYYIABBhhg gAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAEGGGCAAQYYYIABBhhggAH+ 2+hvNY+WB8RaF2Dh3H2V7IzoYvXezKVoLaP8fymxem/msrSV8N7MJWqlmLlcrfdm Ll3rsfmPAAMAq4F5zyMn3tkAAAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=Way-Surface.png Content-Type: image/png; name=Way-Surface.png Content-Location: http://support.microsoft.com/library/images/support/CN/Way-Surface.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIg eG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpBNkI0MDM1MUZFOUIxMUUxQTg1QUFE QkYwRTcxNEJDNSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpBNkI0MDM1MEZF OUIxMUUxQTg1QUFEQkYwRTcxNEJDNSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ aG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJl ZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjlDQUFEREQ1OEJGQkUxMTE4NjQ0QkNDQ0E0 OEEyREUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjdBQTFCNjk3Q0VGNkUx MTE4NjQ0QkNDQ0E0OEEyREUyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpS REY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A4fVWQAAAhhJREFU eNrs2L9LG2EYwPG8d5c780M8kpgI6qUOZlDEoanFf0BEpGIHQSit2ILgqLuDiIKi m/+Ai+3SoZujS5d2CB0KTi0tVkQF22qt1lx8SybnPGdO/T5Dxif3yfvc8z5PVGT2 feQ+hRG5ZwEYMODbHZZgrodtiY3xzkzCMg1VqdSaTamI71d+n5en337Z2jkOIzjp mF252JvS0c7BmW2qGrP9K1dam+zJvqwbM0N6wr7//3N1+8eH7yciCT3X0eDaiyXY dzhhi+VsbDDFH08erJQSS0WXBgwYMGDAgAEDvjZRy82+ZdkxWnx5qIbek+JRQyiV EWpw9fE2nxV+/S3XPgbrw63+cHq7Din42/HF2vZe1BRbH3RF66r+vH8mudvwv/Qd D8mSHulOTfXnzi99wZyOZbwuHW58PAgd+EHKWX/a0dpki59Jfz5Z2j39tPcnRCWt ++jSkBeEVocbs5aH81JXnUyW0Z70WG8muBdvoOBOPMqGBey5zspw3lABdhp9z80P tnflYqEAzw20daScoLtrOm4tDnn1B+vO/KLYfDM3iv6uV4+z9QS3u/bak7wVaDVf j4VBr7slXrdr6XmxOZOI7v68uDFw0jFf9mVn3n1ltGS0BAwYMGDAgAEDBgwYMGDA gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgEXi SoABAG1dYmvxfmGBAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-media-selected.png Content-Type: image/png; name=way-media-selected.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-media-selected.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9Inht cC5kaWQ6NDAxQTM2NTRGNzdBMTFFMTg1NkE4OUJBQTYwNDQ0N0QiIHhtcE1NOklu c3RhbmNlSUQ9InhtcC5paWQ6NDAxQTM2NTNGNzdBMTFFMTg1NkE4OUJBQTYwNDQ0 N0QiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93 cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmRp ZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/PvisZtkAAAVhSURBVHja7Jp7TFNXHMd7b2/fLaUtSFuB FijKa2AYcxMnxkUjs5NJNha3bMtEs2hmNpG4zG2SRfaAZOof+s9C5pz7Y8MQNxR8 RDPMZthEnMocYMajlAKD8qhtKS197YcXCtmy/bHcPga/E3Jyen4nvedz7jm/3/d3 KMUqb2YtpUJGyDxyl4sadqaNfJC3QSdd5MBcNlGt19wqy9any2LFnMrChKA+jgov bXGW/IvtOimfHehZq5WkxvB/H3UG6YlsVv7OsKAmK/hfvaQ7tCl+xO5+42xvs8Eu FVBAzqNIkiAudFqC9Fwi9E6LTRL7C1QVm+LFPPZ7F42ffD/g98+/3ut7s8YdHkXF zUWypddoJEeLNE9oJG1DjtxjbV6fP2B6IUdxpEg75vCU1RsWwxmW8Ngfb0ncu1ZJ f1QIqW9eTv3FNPn1ndFoPnVqe0qOWnSx01Ja2/WHzR28aYRoS+/Jjzu+LQk28z8N MNvdr9f1fHdvPNgzCfobXp0orilJyVYJa24MP5jybsuS62L4fxlz7IehgxeMLo8v BEsfRGARl6wsTCwrULUY7XBcbw9MQueBhj7wz9++thKWAD7+1GfbV2+AASE7WcEC Bg9UpddoZLz84/eAKtAvE1BvPqkE2slpX+UVU3XTQIi9JvPAj6iEhzcnwNaF9qB1 +pkMWaZSUHtnbNrrf3uDGkzQX9c29k6jsXvMyQp5YdJpcdgQYNVV+sS/m4Ac5IRS wjGMu8rPG87+Os4KU2HsDYPorylJTlHw+y3T17of5Gsl0A5Y1VFcqGEPf3jVBK86 jGKWAeAoPvvIVu2ux5dB+9NrgxWX+6fcPghAK2IFb61T7V4TB/2X71v2nzO0D0+F PVdhALj9wKrlUu6XrebddT3OudACCgqUY0FylNHiOnSp/3SrOULyUAaAgRZqp9u3 cYW02WADJZypFH72fDIIY1gFiDqWKU/kXAAw4LS2ZsjOlabRbVCFJosrL0HcNerc Udt1vde2CG88zrdP7DrTTacB4IfjJNyik52pVbcjkJYxL/15ywgEXgi50Ha4vfp0 Ge2rhmxuz0OfLOCQcRIOQbAgE4T4NO31DVndgVSJJFkqCRcyYZ/fT48ZtrnB80Eb hjR2TDS0T0RcWIL5weROtozES7mPJYrhSCtE1JZ0WWDApU4LyCzIH0AzJ0t4+gUm KD/2WoFTxKU8Pj9FEptXRgdMr+bFig7eiDhgUB3Ew3kvdMggpI8Waelk6PAV00KN WVmY8P7GeLrt9vohbn10dV5mFmXK6nfM+gU2EZFXPM9mykFUFmfJzXbPzf7ZZODn PjtkSIVp0SIuu3T1so6Rqd/mQnFTlxWWaH1KFH0H8pROKuVTgE1b75udELRLchTQ trm81U2DEQdckhOTpZxJgGCvjk4uYDba7w46nk6T8TkkAPSMudqGHLPM3VZQmoAK p5e+DIkWzDMDcGOH5blsBcRz0GcRnS2dKE5KkvNAY/IpEo42RGbY0vTV5OkXdTlq IW0C12V3+cYcnqi5W8t961QKIXXLNAlWP8s/aJ0Jchlxwv9Beli+Xv0fTFBeeTQW /hb2TDCqWyLlPw//NkWCWFrAEae0EBiBERiBERiBERiBQwzMDtrSMZsPMzZNISdY xJAeRmK2dKrVnJcgpjNbZsuZu6MMfhuBP0xDYARGYARGYARGYARGYARGYARGYARG YARGYARGYARGYARGYARGYARGYARGYARGYARGYARGYARGYARGYARGYARG4GCWVWpR 77u5UC8JYOBs2pOhlfOgDj0zGRbaaMHML/GhDj0zGS5auoSemQwjbViYyfDShp6Z DDttiJn/FGAAX+f9lGvWVvIAAAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-media.png Content-Type: image/png; name=way-media.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-media.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9Inht cC5kaWQ6M0Y2Njk5MkJGNzdBMTFFMTkwNDJFRTI3RjAyOEY5QjciIHhtcE1NOklu c3RhbmNlSUQ9InhtcC5paWQ6M0Y2Njk5MkFGNzdBMTFFMTkwNDJFRTI3RjAyOEY5 QjciIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93 cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmRp ZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/PkUK+7IAAAUxSURBVHja7Jp7TFNXHMd7H323lFKQtgLl UZTXYHHMTZwYF43MTibZWNyyLRPN4jKzicRlZpMssgckU/9w/yxkzrk/FEPcUPAR zTCbYRNxKnOAGY9SCgxKobaltPS1n14oZMv2x3Jb7vB30tyce34nvedz7jm/3/d3 WppX0cJ7mArJkXGsWCpt3J4x+mH+Or1ikQMLKKLGoLtRnmvIVMbJ+FVFiWF9HL2w tCU5MV9t1StEVKhldbI8PVb0+5g7TE+keAXbFwQ1VSX65mX9/g0Jo07vW6f7WoxO hZgGciFNkgRxrssWpucSkXdaFEnsKdRUbkiQCan3z5s+/X4wGJx7vVd35Yy7fKrK 64tkSa/SyQ8V657UyduHXSsOt/sDwZDpxTzVweJkq8tX3mBcDHtYLqQ+2ZS0a7Wa uVVJ6JOvpP9injxxayxaRB/bmpanlZ7vspXVdf/h8IZvGBFa0m8WxB/ZkgKL+Z86 WJzeN+p7v7szHu6RhP0Nr0yS1Zam5WoktddG7k35t+TE6GNFf+lz+IfhfedMHl8g AlMfRmCpgKwqSiov1LSanLBdbw5OQuPexn7wz9++vhymAG5/6nfsbjBCh4jtrHAB gweqNuh0SmHBkTtAFWpXium3n1ID7eR0oOqSuaZ5MMJek33gRzSSAxsTYelCfcg+ /WyWMlstrrtlnfYH312nBRO017db32sy9VjdvIgXNp0Wn4IAq602JP3dBOQgJ9Ry vnHcU3HWePrXcd4CFdbeMIj+2tLUNJVowDZ9pedeQbIc6iGrNkoAV1jDH102w6te QDHLAnCUiDq4OXnHE0ug/tmVocqLA1PeAASgZXHid9Zodq6Kh/aLd217zhg7RqYW PFdhAbhj76NLFYKv2yw763vds6EFFBQox8LUKJPNs//CwPE2C0fyUBaAgRaubm9g /TJFi9EBSjhbLfnihVQQxjALEHVsUz7uHACw4LQ2ZynPlGUwdVCFZpsnP1HWPebe Vtd9tc+xCE88znZM7DjVw6QB4Ifj5YLio13p1Tc5SMual/6ydRQCL4RcqLu8fkOm kvFVww6v74FPFvPJeDmfIHiQCUJ8mvYHhu3eUKpEkjyNXACZcCAYZPqMOLzg+aAO XZo6Jxo7JjgXlmB8MLijraMJCsHjSTLY0iopvSlTGepwocsGMgvyB9DMqXKhYZ4J yo99duCUCmhfIEiTxMbl0SHTa/lx0n3XOAcMqoN4MO75DhmE9KHiZCYZOnDJPF9j VhUlfrA+gal7/UGIWx9fnpOZxdnKhm0zfoEiOHnE81x2DIjKkpwYi9N3fWAmGfi5 3wkZUlFGtFRAla1c0jk69dtsKG7utsMUrU2LYs5AntYrFCIasBnrXYsbgnZpngrq Do+/pnmIc8ClebE56vsJEKzVscl5zCbn7SHXMxlKEZ8EgF6rp33YNcPcYwelCaiw e5nDkGjxHDMAN3Xans9VQTwHfcbpbOnzkpSUGCFoTBFNwtaGyAxLmjmaPP6SPk8r YUzgupyegNXli5o9tdy9RqOS0DfMk2AN8oJD9vtBLite8j9IDyvWav+DCcqrj8XB Z37LBKu6hSu/PPzbEAni4QLmnNJCYARGYARGYARGYASOMDAVtqljNx9mbZgSfriI IT3kYrZ0rM2SnyhjMlt2y6nbYyx+G4F/TENgBEZgBEZgBEZgBEZgBEZgBEZgBEZg BEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZgBEZg BEbgiJc/BRgAIcPmMFikzroAAAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-skype-selected.png Content-Type: image/png; name=way-skype-selected.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-skype-selected.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9Inht cC5kaWQ6NDZBNjQwQUJGNzdBMTFFMTg4N0JEQ0JDMTZEN0VDQzIiIHhtcE1NOklu c3RhbmNlSUQ9InhtcC5paWQ6NDZBNjQwQUFGNzdBMTFFMTg4N0JEQ0JDMTZEN0VD QzIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93 cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmRp ZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/Pkcy1akAAAdWSURBVHja7JwJTFN3HMfpQVsKpRcF5Go5 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 YII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-skype.png Content-Type: image/png; name=way-skype.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-skype.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAIAAADwJdcvAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9Inht cC5kaWQ6NDVFRkU0NTBGNzdBMTFFMUFGNjlFNkM5NDdFQUM2NUUiIHhtcE1NOklu c3RhbmNlSUQ9InhtcC5paWQ6NDVFRkU0NEZGNzdBMTFFMUFGNjlFNkM5NDdFQUM2 NUUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93 cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmRp ZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDo3QUExQjY5N0NFRjZFMTExODY0NEJDQ0NBNDhBMkRFMiIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/PuJxYZwAAAclSURBVHja7Jp7UFRVHMfZB7vLwrJvQF7L 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 gg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-phone-selected.png Content-Type: image/png; name=way-phone-selected.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-phone-selected.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAYAAAB/R0B4AAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9D BY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfy l5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT 0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq YAAAOpgAABdvkl/FRgAAA1FJREFUeNrs3E9r02AcB/BvniTPkzZtl7Td1v3rtu4P OCYMX8DAo29AD4IHD8LOHgTFmwcPXt1RQfSgr0A8uNsERZkgCIqIzIk6JtN1deua 1kNbdVSdW1NN2u/3VAhP+vRDnj7Jk1+i4exiBW0UJ2KgL2EiE5fIJRUmui2MuBay rkRc6Th85amv32eEDUgXGpJRA2nbwIirMJq0MOwqjKUUcikL3TETaduAZYiGtpvF su/9CSxgKmog6yoMdkkMuwqT3RHkUgp9CYmBhETaNqALbV/7LHptBCh1DT0xEz0x E8NudaiNpy0srRQwv/ged05NYjaXgLFPpH+dlgLaUsCJGBhyFEaTqjbULIzVjqSe mIlkdHcXbj5exfwikIwagcdrCeC5owOYzkQw6CgMORKZuIQtxV+33ypV57SSF465 zXfAS8eGQnHk+BXh9w43tj10UgQYAhKQgARkCEhAAhKQ+f+AQmvuMq7eXLTgcrDZ voXqCKyEZJ3c98WE2avPDryYoGnAar4EADh56yViSvgKWSpXgg9oSx2mrh3oh+sC +LJVXYyISoGY0lH2aRFZ04AdLwSA984cQkzpB25//dFHnL79CtdOjGGm3/a1b/lt D/ELD4P9H9jsMKk3b8Hti5YMYd8Bm+1ifehXWjCLtGJe4nkgAQlIQAIyBCQgAQnI BAEw3sR1cBjj+2LCxbvLmM5EMdAlkXUkevdZXNTxgJfvr3z/HFM6HEv/Xt6WrZW3 jactZOImeuMm3MjuLlhGdS3R0LXOBPw5+W0P+W0Pbz8X8eDNxq5tUtfQGzfRbf8o sJxIR7D0bhMA8KlQQqlc6ewCyz+l6FWwvF7E8noRT1Y2G7Yfv/ECw67CwC9KfAe7 JFLR/Zf4thXgXlkrlLBWKDXgNlNkLnXROYC/i1euYDW/g9X8Dp5/+Nqwfa/HHPyO 1m7PifBEmoAEZAhIQAISkCEgAQlIQIaABCQgARkCEpCABGQISEACEpAhIAEJSECG gAQkIAEZAhKQgAQkIENAAhKQgAwBCUhAAjIEJCABCRiMzPTbeH3+iO+vAu0IwJl+ GwtzUxhJKizMTQUWUQQZz6m9EsWJGIFFFEHHqyeoiCIMeEFGFGHBCyqiCBNeEBG/ DQA8BLdt2OgdpQAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-phone.png Content-Type: image/png; name=way-phone.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-phone.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFAAAABfCAYAAAB/R0B4AAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9D BY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfy l5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT 0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq YAAAOpgAABdvkl/FRgAAAxZJREFUeNrs28tqE1EcBvBvbudM5pJmcmlT0yZtegGh gk9QcOkL6EJw4cIXcOFC3Llw4dYuFUQX+gTiwmUERakgCIoLqRU1VKpNY5POJC7S VkvUmmaimeT7VoHhTE5+zMnJ/PMfBRdKTQxQEjEd43EDWVegmJSYy5iY8kzkPQFX ajh27Xmo76dHDUhTFSQtHWlbx5QnMZ00UfAkZlISxZSJjGMgbeswdbVt7Ga9Efp8 +hYwZenIexITIwIFT2I+E0MxJTEeF8jFBdK2Dk1VOjpnPRggQKEpGHUMjDoGCl5r qc2mTSyvVrFU+oB7Z+exWIxD7xDpX6engLZQkYjpmExITCflzlIzMbNzJY06BpLW /incflrGUglIWnrf4/UE8OKJHBayMUwkJCYTAllXwBbqX4/f8lt7mh9EY28LHfDK yclIXDlhRQ37hBu1AMMUFQwBCUhAAjIEJCABCcj8f0BV6e42bne42oPbwW7nFqkr sBmROnnoxYTF6y8OXUxQFKBc8QEAZ+68hiPVUCH9RrP/AW2hwdCUQ31wTQW+brWK EZZQ4UgNjZCKyIoCbAcRAHxw/igcqR16/M0nn3Du7hvcOD2D40fsUOdWqQVwLz3u 7+/AbpfJ7vAe/H3RkyUcOmC3U9xd+s0e7CK92Jf4O5CABCQgARkCEpCABGT6AdDt 4j44igm9mHD5/goWshZyIwL5hMBYh81FQw949eHq3mtHakiY2l57W36nvW02bSLr GhhzDXix/VMw9VYtUdeU4QT8OZVagEotwLsvdTx6u7HvmNAUjLkGMvaPBsu5dAzL 7zcBAJ+rPvxGc7gbLP+UetDEynodK+t1PFvdbDt+6tYrFDyJ3C9afCdGBFJW5y2+ AwV4UNaqPtaqfhtuN03mQlOHB/B3CRpNlCvbKFe28fLjt7bjBz3mEHaUQXtOhD+k CUhAhoAEJCABGQISkIAEZAhIQAISkCEgAQlIQIaABCQgARkCEpCABGQISEACEpAh IAEJSEACMgQkIAEJyBCQgAQkIENAAhKQgAwBCUhAAjIEJGC/5/sApXmgCYjFLOQA AAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-more.png Content-Type: image/png; name=way-more.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-more.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAG4AAAAsCAIAAAALqRrLAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8w Mi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v eGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRv YmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9Inht cC5paWQ6RjkzNTNGRDU0QUVEMTFFMjk4MjM5Q0UyRkQ0NEI3ODkiIHhtcE1NOkRv Y3VtZW50SUQ9InhtcC5kaWQ6RjkzNTNGRDY0QUVEMTFFMjk4MjM5Q0UyRkQ0NEI3 ODkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlp ZDpGOTM1M0ZEMzRBRUQxMUUyOTgyMzlDRTJGRDQ0Qjc4OSIgc3RSZWY6ZG9jdW1l bnRJRD0ieG1wLmRpZDpGOTM1M0ZENDRBRUQxMUUyOTgyMzlDRTJGRDQ0Qjc4OSIv PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94 cGFja2V0IGVuZD0iciI/PkbzjWcAAAHESURBVHja7Ni9SwJhAMdxPU/Tziy9IDOM JHqjyAgiMKqtgiKQqAanaIhqq38goqW1hqZoiVqk2oIKbMlFGooGybQhSxJKNC3z 7XrKITr0tKOt35cbnuOe6cPdc88dLVl0SlCeKKkkwxU7mYaXQB0GZs1qSqQyZHxw FVo/C3D5ZWUSyzTI8hV4SSppar5Hb9IpBxrLZZT01BsBpchcd9GLh9eRFq1STvXX a1Ry6sQTBqXI3MG3Y094wswSTUudRl+mOHSHOKyVApkNzGir9v1rZeQViacd3oi1 TUdeRLOWqkqGnty+5q2boPyuu1a9PGgsZua4mWUUzcOb7h+vewiKq0JF4wHP27k/ uuq4jydz7HeiiXSXUU2Wy+yp4ybMuyVByaOMkSPnJZOuZKGvmgzI+mi/fLLteJJp DpS/rtek2Z9qYks/rbZcwRm7L5XrGwiUBRprZ3dtDXKZlIw3nI9zez58OIqps4ZZ GTLePr9nOI4810tHfoHJUvzOEIhRUIk0l90/pgr92MBdKVQskSl+MvaVfxYoQQlK UCJQghKUoESgBCUoEShBCUpQIlCCEpQIlKAEJSgRKEEJSgRKUILyf/UhwACuzYL3 LaDMPgAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=way-product-carrot.png Content-Type: image/png; name=way-product-carrot.png Content-Location: http://support.microsoft.com/library/images/support/cn/way-product-carrot.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAA8AAAAHCAYAAADXhRcnAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8w Mi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNv bS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v eGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRv YmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAu aWlkOkM1RUNCMUY2RDBBOTExRTFBQ0JFRUJFMkFBQkJBM0FGIiB4bXBNTTpEb2N1 bWVudElEPSJ4bXAuZGlkOkM1RUNCMUY3RDBBOTExRTFBQ0JFRUJFMkFBQkJBM0FG Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6 QzVFQ0IxRjREMEE5MTFFMUFDQkVFQkUyQUFCQkEzQUYiIHN0UmVmOmRvY3VtZW50 SUQ9InhtcC5kaWQ6QzVFQ0IxRjVEMEE5MTFFMUFDQkVFQkUyQUFCQkEzQUYiLz4g PC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBh Y2tldCBlbmQ9InIiPz5qZM8RAAAAO0lEQVR42mL4//8/Aw5sAMT3oTRWNfg0vv8P Ae9xGUBI4398BhCjEacBxGrEagApGjEMIFUjigEAAQYA8RtsZI+7qAwAAAAASUVO RK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=uparrow.gif Content-Type: image/gif; name=uparrow.gif Content-Location: http://support.microsoft.com/library/images/support/en-us/uparrow.gif Content-Transfer-Encoding: Base64 R0lGODlhCgAKAJECAAByxszj9P///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0 IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6 eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUg WE1QIENvcmUgNS4wLWMwNjEgNjQuMTQwOTQ5LCAyMDEwLzEyLzA3LTEwOjU3OjAx ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJk ZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu MC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2Jl LmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlk OkJEMEJDMkRBRTA1Q0UxMTE4M0NCOTU3Qjg1NTNEQUQ5IiB4bXBNTTpEb2N1bWVu dElEPSJ4bXAuZGlkOkZFRDc1MzU1OTU1NTExRTFBNzgxOUQ4N0YyRUI0MDVFIiB4 bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkZFRDc1MzU0OTU1NTExRTFBNzgxOUQ4 N0YyRUI0MDVFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUu MSBXaW5kb3dzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9 InhtcC5paWQ6OTk2QzFBRTlFMjZFRTExMThDOTJBMTQ3MEQ5RDRBMEIiIHN0UmVm OmRvY3VtZW50SUQ9InhtcC5kaWQ6QkQwQkMyREFFMDVDRTExMTgzQ0I5NTdCODU1 M0RBRDkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1l dGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno 5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4 t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomI h4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllY V1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKiko JyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAAC ACwAAAAACgAKAAACE5SPCHngDEJcLYglIWvb0P1pSAEAOw== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=2525681.png Content-Type: image/png; name=2525681.png Content-Location: http://support.microsoft.com/Library/Images/2525681.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAm0AAADkCAYAAADKKxOHAAAACXBIWXMAAA7EAAAO xAGVKw4bAAAAB3RJTUUH2wMVAwYpguQaggAAAAd0RVh0QXV0aG9yAKmuzEgAAAAM dEVYdERlc2NyaXB0aW9uABMJISMAAAAKdEVYdENvcHlyaWdodACsD8w6AAAADnRF WHRDcmVhdGlvbiB0aW1lADX3DwkAAAAJdEVYdFNvZnR3YXJlAF1w/zoAAAALdEVY dERpc2NsYWltZXIAt8C0jwAAAAh0RVh0V2FybmluZwDAG+aHAAAAB3RFWHRTb3Vy Y2UA9f+D6wAAAAh0RVh0Q29tbWVudAD2zJa/AAAABnRFWHRUaXRsZQCo7tInAAAg AElEQVR4nOx9e5wVxZX/t3ouM4OuMQbdzS+bjQIzKopZTVaDmIgvlOERJRpi3E0w YGCzGnkYoonIQ4kajHEQkg0oKnmpJCoqMCJqJIlgfGV/EVFhUMwaf9n1AYo8ZuZ2 1e+PqlN1qrr73jvDhQHTh89luutx6tSpqlPfPlVdLb7z098rpQABQAH2fyjvDsL8 IAABAQUBIUycEDpeuDAIgYjidSYIYkYMy5CihMqFqNR0ydBESBgQlp/GmKJU6WS8 fBUkUIqLr+y9VApQClIBEgpKKUipeSmp0yilIKEASWkMj4Cvojh2re+Vn46V7/gw fuYaivPxy9M8FLtn5fB8CGVVhi+gpO5wiXSGPwksmTJJL/bO5nV1C9tAsXCrA+m0 xtsubDdNblToO8H6v8lk+r4Swo4DyioUbHoAUDwSpYeAHUdQXASPVBYngbTQDCYq K3vGVSajREhqHpHBKXP8dcZoKJdKJII7zc2lL2EcykaHBqGCQtOSqaQsaX2Wjx/O SfF+pFy/93h7Y0WlpHW2CcHYdHm1vfLj0niG5bkILqtNl2hDzpeVFdTTxUnvnsYy zDymx64Zw0JARELPYRAQUYRIuDjYeU5A0CAvSaEOkrLT3JAS4bVpqEeXhgeQTIHN NH8FL0LoPiMoDqZZhPDamIatMXnWpvE/Dg9QmNZxBKPfKIIQApEQiKIIUUR/ASGc jrmuo8i0S+TzgwAiobGBMAVGwthni0ecPJRGUHsbmcCu/TwOv1BteZzNZ/sR42n0 CI+nwEXDP4XRXxuLxb+8A6//77upvYbSemFBUMHa0AxjEoI1kjYKgBopzCncpUGg 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 W8qaePFnRXyJFp5/u47v/AyECLCoRbII4P9WMHFME78+0C3IkrmofBm3/HMNe0Nw 9aXdNmeC5LijdqD45Nhxdt5UzY69ec5SCbfk+p1EYoKpq6srwR4bW4hFo9Eeac7f Usoekzs681kjYemRxx1bAOTo0Rz9xjf49O/+jnA4jNvRz805TYrX642LM7sJoKCg gOnTp8f7t9nNoqppVKFQnMlkXbQpT1t2cAq2dA/CJUuWcO6cKv71n5fwTz9cFRts EBNseheG3oUwDaTtadM7kKY1ehQsQdF7M2UR366p4furQ1xMDe987QnGy6Rm0C/P 5+vUsPdd+IdeuqcJuj2CYDXnDjbOuKO218nui5AcKL4vsdXfPKlI8IilWOeM2mBP T+IMn5XcT8y5TfJ0Jfa2w4YNw+PpDi9lr/cJgUdKjrjdHO7sRP+3fyP6m9/QpWl0 uVxENA1D05BYk0TmSEmOlORKSa4Q+ByfXiHwxtZ7rB2S/YklFQqFIotkXbQpT1vm 6Y9gA8vuf/2Pvdz30Co6ImCaRoJgMyJdlvfN7tOmS6SwRpMCSCl697QB468tg/+5 gjVM5a5NgZ5i68UmfvvFMn4/AUzRwo/OrWHSq9u4zdF/bev3ivntF+tieYjVPeDd ctzY3jAhRELgeKdos0nl1XJ+7219qvzO7TRNwxurz/ZO2YumaXi9Xnw+X1yoeb1e vF5vDy9Wqk+naNN1nbPOOovcXB8jRoxIyDcsdsCjmoY/JrYiQiBcLkxpNR3Ynji3 lHiljAs056ct5txSWvmlRPnYFArF6UyqrjXJZF20KU9b5nn99deJRqMJTaKLFy9O m9+ep00YRoJgM/Qu6+Qyo0jhiYW2sgRb9Z+O8IPcfkz7MaGE66jiJwXN/EiCIMS6 0iA/iU/AVs7qv1YyPjadhzXzSIgnShx5vlhHy8buPLbNmSLZC2V7sexmxmTx09v3 dOt6y+tMt0XTiBEj4qMxvV6vNZWHzxcXbXYAe6/Xi9vt7lFXcvOo/f9cLheRSISR I0fi9eYycuTIBDv+37Ia7vmn7xAOh+no6KC9vZ2DBw+ye/du0HU8pok3FvLLbhK1 F9ser9dLa2srd955Z4LoVCgUitMVZxcbu6XG7m/sfPnPumhTnrbMc99996UddJAK Ia0+baYZRXMINjMattSRtMSaM+LQgQPHkBfIPj1tEGDhs5KFEMvb/bvbAFuMFfHD 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 +f+YVQMVBCj7WAAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=upArrow.gif Content-Type: image/gif; name=upArrow.gif Content-Location: http://support.microsoft.com/library/images/support/en-us/upArrow.gif Content-Transfer-Encoding: Base64 R0lGODlhCgAKAJECAAByxszj9P///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0 IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6 eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUg WE1QIENvcmUgNS4wLWMwNjEgNjQuMTQwOTQ5LCAyMDEwLzEyLzA3LTEwOjU3OjAx ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3Jn LzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJk ZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu MC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2Jl LmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlk OkJEMEJDMkRBRTA1Q0UxMTE4M0NCOTU3Qjg1NTNEQUQ5IiB4bXBNTTpEb2N1bWVu dElEPSJ4bXAuZGlkOkZFRDc1MzU1OTU1NTExRTFBNzgxOUQ4N0YyRUI0MDVFIiB4 bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkZFRDc1MzU0OTU1NTExRTFBNzgxOUQ4 N0YyRUI0MDVFIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUu MSBXaW5kb3dzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9 InhtcC5paWQ6OTk2QzFBRTlFMjZFRTExMThDOTJBMTQ3MEQ5RDRBMEIiIHN0UmVm OmRvY3VtZW50SUQ9InhtcC5kaWQ6QkQwQkMyREFFMDVDRTExMTgzQ0I5NTdCODU1 M0RBRDkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1l dGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno 5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4 t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomI h4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllY V1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKiko JyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAAC ACwAAAAACgAKAAACE5SPCHngDEJcLYglIWvb0P1pSAEAOw== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline Content-Type: image/png Content-Location: http://support.microsoft.com/library/images/support/CN/kb_dropdown_icon.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABEAAAASCAIAAAAym6IDAAAACXBIWXMAAA7DAAAO wwHHb6hkAAAAV0lEQVR4nGP5//8/AyngzoPnLCRpgIBRPZh6GBkZMRWhxQe6nv// /6Npw4xALG5D1oY1xrH7B6INVxLBGQZ40tRQih/q63n19iMDAwPLk1cfSNLGw8MD APoSI4dRumI0AAAAGnRFWHRBdXRob3IAVWxlYWQgU3lzdGVtcywgSW5jLskdPnYA AAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=180x150-SMB-ENUS1-Alicia.jpg Content-Type: image/jpeg; name=180x150-SMB-ENUS1-Alicia.jpg Content-Location: http://support.microsoft.com/library/images/support/en-US/180x150-SMB-ENUS1-Alicia.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQ DA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AA EQgAlgC0AwERAAIRAQMRAf/EALUAAAICAwEBAAAAAAAAAAAAAAUGAwQBAgcACAEA AgMBAQEBAAAAAAAAAAAAAgMAAQQFBwYIEAABAwMCBAMEBQYMBQUAAAABAgMEABEF IRIxQRMGUSIHYXEyFIGRoVIjscHRQhUW8OHxYnKCkqKywtIk4jODowhDU8M0FxEA AgECAwQGBwYGAwAAAAAAAAECEQMhMRJRouIEQXETYwUGYYEiMkMUFpGxwdGyJPDh QmKCNPFyFf/aAAwDAQACEQMRAD8A4KuKm4bA0VY+8BOn56y6ja4mBjvM4SPhB/NU 1k7M82wn5Yptru0qN4kSwNvlAQBb31WoLQWmoiUoSOfGglIZGB52MNt7UKkFKIMl NJBrRFmWaKTrQ40aYto8EDQ+OhqNkSNCkVCGridKpMpmiONWyEltKEs14GoQ3FCW eIqEMVCjNqhKHrVCUMEVZDXSoQ9aoWYtUINiQgSBY36en1/xUroNNcSN59IU6U8D x9xIqKJTkUoz4sq/6pJo5ICEi+jyo3Hl+ildI+mBtHc3ovxtVSLtvAkUQUkc6BDG BcgSlR8K0wMdwHKduPdTaCamEu3FShSZopevvqUJU3BumqLIhoasEnSLihLMKRrU LPAVRY7ei2AbzvqfgYTyA5Hbf+afSoXSUxUl6ygeIUpATb21cViVJ4H1iz2f2auZ lMlGjRnJGYjxAgBlspZYWlTbK0JKSBuWpaiedvZTaCqnPe7vR3tbLZxb/wAhksqv KJXfMwnYMaNDW2tEZlvpK+Wac8wJXtuo8gb6C4hKRCfRT0rdkBOJxeQyoTlThpyU yylEUoRvfkuKSlRAaCbAKtuUQOYqaUTUzDf/AI8enS8O6wDNakk/h5aW4WQA8+W2 FNkJMZwKTrs3bz5fh3VNCJrZb7f9GfTbH5dqbKwsqMMXMlMtN5GQHEzI8NoLOQWw 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 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline Content-Type: image/png Content-Location: http://support.microsoft.com/library/images/support/cs/left_button_RN.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABMAAAAPCAYAAAAGRPQsAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZhJREFUeNqM00soRFEYwPE715C3FBbK wsajPMJCWZCiZDN5FElSlJJCUSzIQlkoTVlQ8iosRFgp7Iiy8SwSSWJKKM8FJv6n vtFpujdO/abmnO9+53znftfhcrkMRjkWUYZl4/9jDsVIxqPJTxAGMW2TKBN5iLNY a4IDHeqPSpaPRPRbBA9hHwMItFh/gRv1CFbJSnCEcy0oAGNoxzwKcGNT6gpikOKU eg+1RbUwigp8yemn4NRiPOiW9Uu8IkkFhOBaC8yWRIYkqLQ4zT16JNkHvIhQwQ+I 1wLX0IgRKbcXWwjVYt4kiRrh8hI9KtkemuVBrwSM4wkzaMUmVm3uLANhODXlAhNQ 5Be0IH13JSUl2iRrkDu/VCc7kV1Vr21opzNkflXawmGRKAu1qMK3KZNt8lbdNrt/ anfkG7FYwrq0j+FLdoZqtGASUX98RjnYlpao8U2aWoDapVQcowtp0jqqzGhp3gns 4gKF0ia/fWT43VE6OuUt9uFZiw2Tr6UOs/7HdVqUcCfJhpGLVETiFgfYwbtV7T8C DABehVdpkhJ0NwAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline Content-Type: image/png Content-Location: http://support.microsoft.com/library/images/support/cs/right_button_RN.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABMAAAAPCAYAAAAGRPQsAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZ1JREFUeNqM00soRGEUwPExM155zBQR a5HksaKwkAx2U4pSSCysFKWUpiRLoVh5LiyIkJIkRdnYWEh5lZLHWCiP5NUw+J86 U7fbncmp30x3vvnOd8+550Z5vV4bkY5zLKLD9v9oxDxqsWXXH3vxji6LDZkoRb7F 2gJWMQyHJEtEK4bwYbEhFmM4wqDF+gDyUCLJCpGA9TClXKIMG/Bh1LQuh1zA4+Qj Cw+40cUY9CEZP/rbF/z6La1woxvPun6MXEnmwicChmRyB44IjZe2zGFXr6XfLkl2 pycl4UX7Vq29CsUbavSOv9FsSCSRhitJdqolZeMAQeyY7qRCR+ZVE60Z1uJQIE/V rsmkge1hSspBvz6IelMim95xKjad2mSZk0mM48TiaXq0PHNE60gty/9CQzuLfawg xbQhECaRxBQy0CMXoWTSpwatf0+HMFLIgUtoQh2ujckkbnU473GICZTr6Eg58dpo n86VvGJV2A4lcJpOlDGpRBs60aIzFNR1tx42jRE8Gjc7LUr4xYyWUYwifdmfcKa9 9VvV/ifAALfHXOAgShVQAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=Dynamic_banner_RN_css_style.css Content-Type: text/css; charset=utf-8; name=Dynamic_banner_RN_css_style.css Content-Location: http://support.microsoft.com/library/StyleSheet/support/en-GB/Dynamic_banner_RN_css_style.css Content-Transfer-Encoding: 8bit  #BrowserInfoBanner { position: relative; } #BrowserInfoBanner img { border: none; } .graphic, #slider0prev, #slider0next { display: block; margin: 0; padding: 0; } #slider ul, #slider li,#slider1 ul, #slider1 li { list-style: none; margin: 0; padding: 0; } #slider, #slider1 { margin-top: 10px; } #slider li, #slider1 li { width: 165px; height: 240px; overflow: hidden; } #sliderprev, #slidernext, #slider1prev, #slider1next { display: inline; width: 19px; height: 19px; /*position:absolute;*/ /* left: 90px;*/ /* top: 271px;*/ /*buttons moved up*/ margin-top: -240px; text-indent:-8000px; overflow: hidden; } #sliderprev, #slider1prev { position: absolute; left: 123px; } #slidernext, #slider1next { position: absolute; left: 143px; } #sliderprev a, #slider1prev a { display:block;position:relative;width:19px;height:19px;background:url(http://support.microsoft.com/library/images/support/cs/left_button_RN.png) no-repeat 0 0; } #slidernext a, #slider1next a { display:block;position:relative;width:19px;height:19px;background:url(http://support.microsoft.com/library/images/support/cs/right_button_RN.png) no-repeat 0 0; } #sliderprev a:hover, #slider1prev a:hover { display:block;position:relative;width:19px;height:19px;background:url(http://support.microsoft.com/library/images/support/cs/left_button_hover_RN.png) no-repeat 0 0; } #slidernext a:hover, #slider1next a:hover { display:block;position:relative;width:19px;height:19px;background:url(http://support.microsoft.com/library/images/support/cs/right_button_hover_RN.png) no-repeat 0 0; } #BrowserInfoBanner ul { padding-left:0px; } .display_block { margin-left:7px!important; margin-bottom:10px !important; display:block!important; } ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=BrowserInfoBanner_Slider_Script.js Content-Type: application/x-javascript; charset=utf-8; name=BrowserInfoBanner_Slider_Script.js Content-Location: http://support.microsoft.com/library/JavaScript/support/en-GB/BrowserInfoBanner_Slider_Script.js Content-Transfer-Encoding: Base64 77u/LyoNCiogICAgICAgICAgICBFYXN5IFNsaWRlciAxLjcgLSBqUXVlcnkgcGx1 Z2luDQoqICAgICAgICAgICAgd3JpdHRlbiBieSBBbGVuIEdyYWthbGljICAgICAg ICAgICAgICANCiogICAgICAgICAgICBodHRwOi8vY3NzZ2xvYmUuY29tL3Bvc3Qv NDAwNC9lYXN5LXNsaWRlci0xNS10aGUtZWFzaWVzdC1qcXVlcnktcGx1Z2luLWZv ci1zbGlkaW5nDQoqDQoqICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDA5IEFs ZW4gR3Jha2FsaWMgKGh0dHA6Ly9jc3NnbG9iZS5jb20pDQoqICAgICAgICAgICAg RHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIChNSVQtTElDRU5TRS50eHQpDQoq ICAgICAgICAgICAgYW5kIEdQTCAoR1BMLUxJQ0VOU0UudHh0KSBsaWNlbnNlcy4N CioNCiogICAgICAgICAgICBCdWlsdCBmb3IgalF1ZXJ5IGxpYnJhcnkNCiogICAg ICAgICAgICBodHRwOi8vanF1ZXJ5LmNvbQ0KKg0KKi8NCg0KDQogIChmdW5jdGlv biAoJCkgew0KICAgICAgICAkLmZuLlNsaWRlciA9IGZ1bmN0aW9uIChvcHRpb25z KSB7DQoNCiAgICAgICAgICAgIHZhciBkZWZhdWx0cyA9IHsNCiAgICAgICAgICAg ICAgICBwcmV2SWQ6ICdwcmV2QnRuJywNCiAgICAgICAgICAgICAgICBwcmV2VGV4 dDogJ1ByZXZpb3VzJywNCiAgICAgICAgICAgICAgICBuZXh0SWQ6ICduZXh0QnRu JywNCiAgICAgICAgICAgICAgICBuZXh0VGV4dDogJ05leHQnLA0KICAgICAgICAg ICAgICAgIGNvbnRyb2xzU2hvdzogdHJ1ZSwNCiAgICAgICAgICAgICAgICBjb250 cm9sc0JlZm9yZTogJycsDQogICAgICAgICAgICAgICAgY29udHJvbHNBZnRlcjog JycsDQogICAgICAgICAgICAgICAgY29udHJvbHNGYWRlOiB0cnVlLA0KICAgICAg ICAgICAgICAgIGZpcnN0SWQ6ICdmaXJzdEJ0bicsDQogICAgICAgICAgICAgICAg Zmlyc3RUZXh0OiAnRmlyc3QnLA0KICAgICAgICAgICAgICAgIGZpcnN0U2hvdzog ZmFsc2UsDQogICAgICAgICAgICAgICAgbGFzdElkOiAnbGFzdEJ0bicsDQogICAg ICAgICAgICAgICAgbGFzdFRleHQ6ICdMYXN0JywNCiAgICAgICAgICAgICAgICBs YXN0U2hvdzogZmFsc2UsDQogICAgICAgICAgICAgICAgdmVydGljYWw6IGZhbHNl LA0KICAgICAgICAgICAgICAgIHNwZWVkOiA4MDAsDQogICAgICAgICAgICAgICAg YXV0bzogZmFsc2UsDQogICAgICAgICAgICAgICAgcGF1c2U6IDUwMDAsDQogICAg ICAgICAgICAgICAgY29udGludW91czogZmFsc2UsDQogICAgICAgICAgICAgICAg bnVtZXJpYzogZmFsc2UsDQogICAgICAgICAgICAgICAgbnVtZXJpY0lkOiAnY29u dHJvbHMnDQogICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICB2YXIgb3B0aW9u cyA9ICQuZXh0ZW5kKGRlZmF1bHRzLCBvcHRpb25zKTsNCg0KICAgICAgICAgICAg dGhpcy5lYWNoKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICB2YXIgb2Jq ID0gJCh0aGlzKTsNCiAgICAgICAgICAgICAgICB2YXIgcyA9ICQoImxpIiwgb2Jq KS5sZW5ndGg7DQogICAgICAgICAgICAgICAgdmFyIHcgPSAkKCJsaSIsIG9iaiku d2lkdGgoKTsNCiAgICAgICAgICAgICAgICB2YXIgaCA9ICQoImxpIiwgb2JqKS5o ZWlnaHQoKTsNCiAgICAgICAgICAgICAgICB2YXIgY2xpY2thYmxlID0gdHJ1ZTsN CiAgICAgICAgICAgICAgICBvYmoud2lkdGgodyk7DQogICAgICAgICAgICAgICAg b2JqLmhlaWdodChoKTsNCiAgICAgICAgICAgICAgICBvYmouY3NzKCJvdmVyZmxv dyIsICJoaWRkZW4iKTsNCiAgICAgICAgICAgICAgICB2YXIgdHMgPSBzIC0gMTsN CiAgICAgICAgICAgICAgICB2YXIgdCA9IDA7DQogICAgICAgICAgICAgICAgJCgi dWwiLCBvYmopLmNzcygnd2lkdGgnLCBzICogdyk7DQoNCiAgICAgICAgICAgICAg ICBpZiAob3B0aW9ucy5jb250aW51b3VzKSB7DQogICAgICAgICAgICAgICAgICAg ICQoInVsIiwgb2JqKS5wcmVwZW5kKCQoInVsIGxpOmxhc3QtY2hpbGQiLCBvYmop LmNsb25lKCkuY3NzKCJtYXJnaW4tbGVmdCIsICItIiArIHcgKyAicHgiKSk7DQog ICAgICAgICAgICAgICAgICAgICQoInVsIiwgb2JqKS5hcHBlbmQoJCgidWwgbGk6 bnRoLWNoaWxkKDIpIiwgb2JqKS5jbG9uZSgpKTsNCiAgICAgICAgICAgICAgICAg ICAgJCgidWwiLCBvYmopLmNzcygnd2lkdGgnLCAocyArIDEpICogdyk7DQogICAg ICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy52 ZXJ0aWNhbCkgJCgibGkiLCBvYmopLmNzcygnZmxvYXQnLCAnbGVmdCcpOw0KDQog ICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMuY29udHJvbHNTaG93KSB7DQogICAg ICAgICAgICAgICAgICAgIHZhciBodG1sID0gb3B0aW9ucy5jb250cm9sc0JlZm9y ZTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMubnVtZXJpYykgew0K ICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCArPSAnPG9sIGlkPSInICsgb3B0 aW9ucy5udW1lcmljSWQgKyAnIj48L29sPic7DQogICAgICAgICAgICAgICAgICAg IH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5m aXJzdFNob3cpIGh0bWwgKz0gJzxzcGFuIGlkPSInICsgb3B0aW9ucy5maXJzdElk ICsgJyI+PGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIj4nICsgb3B0aW9u cy5maXJzdFRleHQgKyAnPC9hPjwvc3Bhbj4nOw0KICAgICAgICAgICAgICAgICAg ICAgICAgaHRtbCArPSAnIDxzcGFuIGlkPSInICsgb3B0aW9ucy5wcmV2SWQgKyAn Ij48YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiPicgKyBvcHRpb25zLnBy ZXZUZXh0ICsgJzwvYT48L3NwYW4+JzsNCiAgICAgICAgICAgICAgICAgICAgICAg IGh0bWwgKz0gJyA8c3BhbiBpZD0iJyArIG9wdGlvbnMubmV4dElkICsgJyI+PGEg aHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIj4nICsgb3B0aW9ucy5uZXh0VGV4 dCArICc8L2E+PC9zcGFuPic7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAo b3B0aW9ucy5sYXN0U2hvdykgaHRtbCArPSAnIDxzcGFuIGlkPSInICsgb3B0aW9u cy5sYXN0SWQgKyAnIj48YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiPicg KyBvcHRpb25zLmxhc3RUZXh0ICsgJzwvYT48L3NwYW4+JzsNCiAgICAgICAgICAg ICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgICAgICBodG1sICs9IG9wdGlv bnMuY29udHJvbHNBZnRlcjsNCiAgICAgICAgICAgICAgICAgICAgJChvYmopLmFm dGVyKGh0bWwpOw0KICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAg ICBpZiAob3B0aW9ucy5udW1lcmljKSB7DQogICAgICAgICAgICAgICAgICAgIGZv ciAodmFyIGkgPSAwOyBpIDwgczsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAg ICAgICAkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIikpDQoJCQkJCQkuYXR0 cignaWQnLCBvcHRpb25zLm51bWVyaWNJZCArIChpICsgMSkpDQoJCQkJCQkuaHRt bCgnPGEgcmVsPScgKyBpICsgJyBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wi PicgKyAoaSArIDEpICsgJzwvYT4nKQ0KCQkJCQkJLmFwcGVuZFRvKCQoIiMiICsg b3B0aW9ucy5udW1lcmljSWQpKQ0KCQkJCQkJLmNsaWNrKGZ1bmN0aW9uICgpIHsN CgkJCQkJCSAgICBhbmltYXRlKCQoImEiLCAkKHRoaXMpKS5hdHRyKCdyZWwnKSwg dHJ1ZSk7DQoJCQkJCQl9KTsNCiAgICAgICAgICAgICAgICAgICAgfTsNCiAgICAg ICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAkKCJhIiwg IiMiICsgb3B0aW9ucy5uZXh0SWQpLmNsaWNrKGZ1bmN0aW9uICgpIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgIGFuaW1hdGUoIm5leHQiLCB0cnVlKTsNCiAgICAg ICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICQoImEiLCAi IyIgKyBvcHRpb25zLnByZXZJZCkuY2xpY2soZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgYW5pbWF0ZSgicHJldiIsIHRydWUpOw0KICAgICAg ICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgICAgJCgiYSIsICIj IiArIG9wdGlvbnMuZmlyc3RJZCkuY2xpY2soZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgYW5pbWF0ZSgiZmlyc3QiLCB0cnVlKTsNCiAgICAg ICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICAgICQoImEiLCAi IyIgKyBvcHRpb25zLmxhc3RJZCkuY2xpY2soZnVuY3Rpb24gKCkgew0KICAgICAg ICAgICAgICAgICAgICAgICAgYW5pbWF0ZSgibGFzdCIsIHRydWUpOw0KICAgICAg ICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAg ICAgICAgICAgZnVuY3Rpb24gc2V0Q3VycmVudChpKSB7DQogICAgICAgICAgICAg ICAgICAgIGkgPSBwYXJzZUludChpKSArIDE7DQogICAgICAgICAgICAgICAgICAg ICQoImxpIiwgIiMiICsgb3B0aW9ucy5udW1lcmljSWQpLnJlbW92ZUNsYXNzKCJj dXJyZW50Iik7DQogICAgICAgICAgICAgICAgICAgICQoImxpIyIgKyBvcHRpb25z Lm51bWVyaWNJZCArIGkpLmFkZENsYXNzKCJjdXJyZW50Iik7DQogICAgICAgICAg ICAgICAgfTsNCg0KICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFkanVzdCgpIHsN CiAgICAgICAgICAgICAgICAgICAgaWYgKHQgPiB0cykgdCA9IDA7DQogICAgICAg ICAgICAgICAgICAgIGlmICh0IDwgMCkgdCA9IHRzOw0KICAgICAgICAgICAgICAg ICAgICBpZiAoIW9wdGlvbnMudmVydGljYWwpIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICQoInVsIiwgb2JqKS5jc3MoIm1hcmdpbi1sZWZ0IiwgKHQgKiB3ICog LTEpKTsNCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICQoInVsIiwgb2JqKS5jc3MoIm1hcmdpbi1sZWZ0IiwgKHQg KiBoICogLTEpKTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICBjbGlja2FibGUgPSB0cnVlOw0KICAgICAgICAgICAgICAgICAgICBp ZiAob3B0aW9ucy5udW1lcmljKSBzZXRDdXJyZW50KHQpOw0KICAgICAgICAgICAg ICAgIH07DQoNCiAgICAgICAgICAgICAgICBmdW5jdGlvbiBhbmltYXRlKGRpciwg Y2xpY2tlZCkgew0KICAgICAgICAgICAgICAgICAgICBpZiAoY2xpY2thYmxlKSB7 DQogICAgICAgICAgICAgICAgICAgICAgICBjbGlja2FibGUgPSBmYWxzZTsNCiAg ICAgICAgICAgICAgICAgICAgICAgIHZhciBvdCA9IHQ7DQogICAgICAgICAgICAg ICAgICAgICAgICBzd2l0Y2ggKGRpcikgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNhc2UgIm5leHQiOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0ID0gKG90ID49IHRzKSA/IChvcHRpb25zLmNvbnRpbnVvdXMgPyB0ICsg MSA6IHRzKSA6IHQgKyAxOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJwcmV2 IjoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdCA9ICh0IDw9IDAp ID8gKG9wdGlvbnMuY29udGludW91cyA/IHQgLSAxIDogMCkgOiB0IC0gMTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2FzZSAiZmlyc3QiOg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0ID0gMDsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fz ZSAibGFzdCI6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQgPSB0 czsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdCA9IGRpcjsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgICAgICAgICAgICB9Ow0K ICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpZmYgPSBNYXRoLmFicyhvdCAt IHQpOw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNwZWVkID0gZGlmZiAq IG9wdGlvbnMuc3BlZWQ7DQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9w dGlvbnMudmVydGljYWwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBw ID0gKHQgKiB3ICogLTEpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQo InVsIiwgb2JqKS5hbmltYXRlKA0KCQkJCQkJCXsgbWFyZ2luTGVmdDogcCB9LA0K CQkJCQkJCXsgcXVldWU6IGZhbHNlLCBkdXJhdGlvbjogc3BlZWQsIGNvbXBsZXRl OiBhZGp1c3QgfQ0KCQkJCQkJKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9ICh0ICogaCAq IC0xKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCJ1bCIsIG9iaiku YW5pbWF0ZSgNCgkJCQkJCQl7IG1hcmdpblRvcDogcCB9LA0KCQkJCQkJCXsgcXVl dWU6IGZhbHNlLCBkdXJhdGlvbjogc3BlZWQsIGNvbXBsZXRlOiBhZGp1c3QgfQ0K CQkJCQkJKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH07DQoNCiAgICAgICAg ICAgICAgICAgICAgICAgIGlmICghb3B0aW9ucy5jb250aW51b3VzICYmIG9wdGlv bnMuY29udHJvbHNGYWRlKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKHQgPT0gdHMpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JCgiYSIsICIjIiArIG9wdGlvbnMubmV4dElkKS5oaWRlKCk7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICQoImEiLCAiIyIgKyBvcHRpb25zLmxhc3RJ ZCkuaGlkZSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoImEiLCAiIyIgKyBv cHRpb25zLm5leHRJZCkuc2hvdygpOw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAkKCJhIiwgIiMiICsgb3B0aW9ucy5sYXN0SWQpLnNob3coKTsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmICh0ID09IDApIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJCgiYSIsICIjIiArIG9wdGlvbnMucHJldklkKS5oaWRlKCk7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoImEiLCAiIyIgKyBvcHRp b25zLmZpcnN0SWQpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCJh IiwgIiMiICsgb3B0aW9ucy5wcmV2SWQpLnNob3coKTsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJCgiYSIsICIjIiArIG9wdGlvbnMuZmlyc3RJZCku c2hvdygpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07DQogICAgICAg ICAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAgICAgICAgICAgICAgICAgICBp ZiAoY2xpY2tlZCkgY2xlYXJUaW1lb3V0KHRpbWVvdXQpOw0KICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKG9wdGlvbnMuYXV0byAmJiBkaXIgPT0gIm5leHQiICYm ICFjbGlja2VkKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1 bmN0aW9uICgpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5p bWF0ZSgibmV4dCIsIGZhbHNlKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9LCBkaWZmICogb3B0aW9ucy5zcGVlZCArIG9wdGlvbnMucGF1c2UpOw0KICAg ICAgICAgICAgICAgICAgICAgICAgfTsNCg0KICAgICAgICAgICAgICAgICAgICB9 Ow0KDQogICAgICAgICAgICAgICAgfTsNCiAgICAgICAgICAgICAgICAvLyBpbml0 DQogICAgICAgICAgICAgICAgdmFyIHRpbWVvdXQ7DQogICAgICAgICAgICAgICAg aWYgKG9wdGlvbnMuYXV0bykgew0KICAgICAgICAgICAgICAgICAgICA7DQogICAg ICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGUoIm5leHQiLCBmYWxz ZSk7DQogICAgICAgICAgICAgICAgICAgIH0sIG9wdGlvbnMucGF1c2UpOw0KICAg ICAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5u dW1lcmljKSBzZXRDdXJyZW50KDApOw0KDQogICAgICAgICAgICAgICAgaWYgKCFv cHRpb25zLmNvbnRpbnVvdXMgJiYgb3B0aW9ucy5jb250cm9sc0ZhZGUpIHsNCiAg ICAgICAgICAgICAgICAgICAgJCgiYSIsICIjIiArIG9wdGlvbnMucHJldklkKS5o aWRlKCk7DQogICAgICAgICAgICAgICAgICAgICQoImEiLCAiIyIgKyBvcHRpb25z LmZpcnN0SWQpLmhpZGUoKTsNCiAgICAgICAgICAgICAgICB9Ow0KDQogICAgICAg ICAgICB9KTsNCg0KICAgICAgICB9Ow0KDQogICAgfSkoalF1ZXJ5KTs= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=BrowserInfoBanner_Detect_Script.js Content-Type: application/x-javascript; name=BrowserInfoBanner_Detect_Script.js Content-Location: http://support.microsoft.com/library/JavaScript/support/en-GB/BrowserInfoBanner_Detect_Script.js Content-Transfer-Encoding: Base64 dmFyIEJyb3dzZXJEZXRlY3QgPSB7DQoNCglpbml0OiBmdW5jdGlvbiAoKSANCgl7 DQoJCXRoaXMuYnJvd3NlciA9IHRoaXMuc2VhcmNoU3RyaW5nKHRoaXMuZGF0YUJy b3dzZXIpIHx8ICJBbiB1bmtub3duIGJyb3dzZXIiOw0KCQl0aGlzLnZlcnNpb24g PSB0aGlzLnNlYXJjaFZlcnNpb24obmF2aWdhdG9yLnVzZXJBZ2VudCkNCgkJCXx8 IHRoaXMuc2VhcmNoVmVyc2lvbihuYXZpZ2F0b3IuYXBwVmVyc2lvbikNCgkJCXx8 ICJhbiB1bmtub3duIHZlcnNpb24iOw0KDQoNCgkJLyogQ29tcGF0aWJpbGl0eSBN b2RlcyAqLw0KDQogICAgICAgIGlmICggdGhpcy5icm93c2VyID09ICJJbnRlcm5l dCBFeHBsb3JlciIgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCdUcmlk ZW50LzYuMCcpICE9IC0xKQ0KCQkJCXRoaXMudmVyc2lvbiA9IDEwOyAgIC8qIENv bXBhdGliaWxpdHkgTW9kZSAqLw0KCQkJCQ0KICAgICAgICBpZiAoIHRoaXMuYnJv d3NlciA9PSAiSW50ZXJuZXQgRXhwbG9yZXIiICYmIG5hdmlnYXRvci51c2VyQWdl bnQuaW5kZXhPZignVHJpZGVudC81LjAnKSAhPSAtMSkNCgkJCQl0aGlzLnZlcnNp b24gPSA5OyAgIC8qIENvbXBhdGliaWxpdHkgTW9kZSAqLw0KCQkJCQ0KICAgICAg ICBpZiAoIHRoaXMuYnJvd3NlciA9PSAiSW50ZXJuZXQgRXhwbG9yZXIiICYmIG5h dmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZignVHJpZGVudC80LjAnKSAhPSAtMSkN CgkJCQl0aGlzLnZlcnNpb24gPSA4OyAgIC8qIENvbXBhdGliaWxpdHkgTW9kZSAq Lw0KDQoNCiAgICAgICAgdGhpcy5PUyA9IHRoaXMuc2VhcmNoU3RyaW5nKHRoaXMu ZGF0YU9TKSB8fCAiYW4gdW5rbm93biBPUyI7DQogICAgICAgIHRoaXMuT1NWZXJz aW9uICAgICAgICAgID0gdGhpcy5zZWFyY2hTdHJpbmcodGhpcy5kYXRhT1NWZXJz aW9uKSB8fCAiYW4gdW5rbm93biBPU1ZlcnNpb24iOyAgLyogV2Ugc2hvdWxkIHVz ZSBPU1ZlcnNpb25OYW1lICovDQoJCXRoaXMuT1NWZXJzaW9uTmFtZQkJPSB0aGlz LnNlYXJjaFN0cmluZyh0aGlzLmRhdGFPU1ZlcnNpb24pIHx8ICJhbiB1bmtub3du IE9TVmVyc2lvbiI7IA0KCQl0aGlzLk9TVmVyc2lvbk51bWJlcgk9IHRoaXMuc2Vh cmNoU3RyaW5nMih0aGlzLmRhdGFPU1ZlcnNpb24pOwkNCgkJDQoJCQ0KCQl0aGlz Lk5hbWUgPSB0aGlzLmJyb3dzZXIgKyAiICIgKyB0aGlzLnZlcnNpb247DQoJfSwN Cg0KCXNlYXJjaFN0cmluZzogZnVuY3Rpb24gKGRhdGEpIHsNCgkJZm9yICh2YXIg aT0wO2k8ZGF0YS5sZW5ndGg7aSsrKQl7DQoJCQl2YXIgZGF0YVN0cmluZyA9IGRh dGFbaV0uc3RyaW5nOw0KCQkJdmFyIGRhdGFQcm9wID0gZGF0YVtpXS5wcm9wOw0K CQkJdGhpcy52ZXJzaW9uU2VhcmNoU3RyaW5nID0gZGF0YVtpXS52ZXJzaW9uU2Vh cmNoIHx8IGRhdGFbaV0uaWRlbnRpdHk7DQoJCQlpZiAoZGF0YVN0cmluZykgew0K CQkJCWlmIChkYXRhU3RyaW5nLmluZGV4T2YoZGF0YVtpXS5zdWJTdHJpbmcpICE9 IC0xKQ0KCQkJCQlyZXR1cm4gZGF0YVtpXS5pZGVudGl0eTsNCgkJCX0NCgkJCWVs c2UgaWYgKGRhdGFQcm9wKQ0KCQkJCXJldHVybiBkYXRhW2ldLmlkZW50aXR5Ow0K CQl9DQoJfSwNCgkNCg0KCXNlYXJjaFN0cmluZzI6IGZ1bmN0aW9uIChkYXRhKSB7 DQoJCWZvciAodmFyIGk9MDtpPGRhdGEubGVuZ3RoO2krKykJew0KCQkJdmFyIGRh dGFTdHJpbmcgPSBkYXRhW2ldLnN0cmluZzsNCgkJCXZhciBkYXRhUHJvcCA9IGRh dGFbaV0ucHJvcDsNCgkJCXRoaXMudmVyc2lvblNlYXJjaFN0cmluZyA9IGRhdGFb aV0udmVyc2lvblNlYXJjaCB8fCBkYXRhW2ldLmlkZW50aXR5Ow0KCQkJaWYgKGRh dGFTdHJpbmcpIHsNCgkJCQlpZiAoZGF0YVN0cmluZy5pbmRleE9mKGRhdGFbaV0u c3ViU3RyaW5nKSAhPSAtMSkNCgkJCQkJcmV0dXJuIGRhdGFbaV0uT1NWZXJzaW9u TnVtYmVyOw0KCQkJfQ0KCQkJZWxzZSBpZiAoZGF0YVByb3ApDQoJCQkJcmV0dXJu IGRhdGFbaV0uT1NWZXJzaW9uTnVtYmVyOw0KCQl9DQoJfSwNCg0KCQ0KCXNlYXJj aFZlcnNpb246IGZ1bmN0aW9uIChkYXRhU3RyaW5nKSB7DQoJCXZhciBpbmRleCA9 IGRhdGFTdHJpbmcuaW5kZXhPZih0aGlzLnZlcnNpb25TZWFyY2hTdHJpbmcpOw0K CQlpZiAoaW5kZXggPT0gLTEpIHJldHVybjsNCgkJcmV0dXJuIHBhcnNlRmxvYXQo ZGF0YVN0cmluZy5zdWJzdHJpbmcoaW5kZXgrdGhpcy52ZXJzaW9uU2VhcmNoU3Ry aW5nLmxlbmd0aCsxKSk7DQoJfSwNCgkNCglkYXRhQnJvd3NlcjogWw0KCQl7DQoJ CQlzdHJpbmc6IG5hdmlnYXRvci51c2VyQWdlbnQsDQoJCQlzdWJTdHJpbmc6ICJD aHJvbWUiLA0KCQkJaWRlbnRpdHk6ICJDaHJvbWUiDQoJCX0sDQoJCXsgCXN0cmlu ZzogbmF2aWdhdG9yLnVzZXJBZ2VudCwNCgkJCXN1YlN0cmluZzogIk9tbmlXZWIi LA0KCQkJdmVyc2lvblNlYXJjaDogIk9tbmlXZWIvIiwNCgkJCWlkZW50aXR5OiAi T21uaVdlYiINCgkJfSwNCgkJew0KCQkJc3RyaW5nOiBuYXZpZ2F0b3IudmVuZG9y LA0KCQkJc3ViU3RyaW5nOiAiQXBwbGUiLA0KCQkJaWRlbnRpdHk6ICJTYWZhcmki LA0KCQkJdmVyc2lvblNlYXJjaDogIlZlcnNpb24iDQoJCX0sDQoJCXsNCgkJCXBy b3A6IHdpbmRvdy5vcGVyYSwNCgkJCWlkZW50aXR5OiAiT3BlcmEiDQoJCX0sDQoJ CXsNCgkJCXN0cmluZzogbmF2aWdhdG9yLnZlbmRvciwNCgkJCXN1YlN0cmluZzog ImlDYWIiLA0KCQkJaWRlbnRpdHk6ICJpQ2FiIg0KCQl9LA0KCQl7DQoJCQlzdHJp bmc6IG5hdmlnYXRvci52ZW5kb3IsDQoJCQlzdWJTdHJpbmc6ICJLREUiLA0KCQkJ aWRlbnRpdHk6ICJLb25xdWVyb3IiDQoJCX0sDQoJCXsNCgkJCXN0cmluZzogbmF2 aWdhdG9yLnVzZXJBZ2VudCwNCgkJCXN1YlN0cmluZzogIkZpcmVmb3giLA0KCQkJ aWRlbnRpdHk6ICJGaXJlZm94Ig0KCQl9LA0KCQl7DQoJCQlzdHJpbmc6IG5hdmln YXRvci52ZW5kb3IsDQoJCQlzdWJTdHJpbmc6ICJDYW1pbm8iLA0KCQkJaWRlbnRp dHk6ICJDYW1pbm8iDQoJCX0sDQoJCXsJCS8vIGZvciBuZXdlciBOZXRzY2FwZXMg KDYrKQ0KCQkJc3RyaW5nOiBuYXZpZ2F0b3IudXNlckFnZW50LA0KCQkJc3ViU3Ry aW5nOiAiTmV0c2NhcGUiLA0KCQkJaWRlbnRpdHk6ICJOZXRzY2FwZSINCgkJfSwN CgkJew0KCQkJc3RyaW5nOiBuYXZpZ2F0b3IudXNlckFnZW50LA0KCQkJc3ViU3Ry aW5nOiAiTVNJRSIsDQoJCQlpZGVudGl0eTogIkludGVybmV0IEV4cGxvcmVyIiwN CgkJCXZlcnNpb25TZWFyY2g6ICJNU0lFIg0KCQl9LA0KCQl7DQoJCQlzdHJpbmc6 IG5hdmlnYXRvci51c2VyQWdlbnQsDQoJCQlzdWJTdHJpbmc6ICJHZWNrbyIsDQoJ CQlpZGVudGl0eTogIk1vemlsbGEiLA0KCQkJdmVyc2lvblNlYXJjaDogInJ2Ig0K CQl9LA0KCQl7IAkJLy8gZm9yIG9sZGVyIE5ldHNjYXBlcyAoNC0pDQoJCQlzdHJp bmc6IG5hdmlnYXRvci51c2VyQWdlbnQsDQoJCQlzdWJTdHJpbmc6ICJNb3ppbGxh IiwNCgkJCWlkZW50aXR5OiAiTmV0c2NhcGUiLA0KCQkJdmVyc2lvblNlYXJjaDog Ik1vemlsbGEiDQoJCX0NCgldLA0KCWRhdGFPUyA6IFsNCgkJew0KCQkJc3RyaW5n OiBuYXZpZ2F0b3IucGxhdGZvcm0sDQoJCQlzdWJTdHJpbmc6ICJXaW4iLA0KCQkJ aWRlbnRpdHk6ICJXaW5kb3dzIg0KCQl9LA0KCQl7DQoJCQlzdHJpbmc6IG5hdmln YXRvci5wbGF0Zm9ybSwNCgkJCXN1YlN0cmluZzogIk1hYyIsDQoJCQlpZGVudGl0 eTogIk1hYyINCgkJfSwNCgkJew0KCQkJc3RyaW5nOiBuYXZpZ2F0b3IudXNlckFn ZW50LA0KCQkJc3ViU3RyaW5nOiAiaVBob25lIiwNCgkJCWlkZW50aXR5OiAiaVBo b25lL2lQb2QiDQoJICAgIH0sDQoJCXsNCgkJCXN0cmluZzogbmF2aWdhdG9yLnBs YXRmb3JtLA0KCQkJc3ViU3RyaW5nOiAiTGludXgiLA0KCQkJaWRlbnRpdHk6ICJM aW51eCINCgkJfQ0KCV0sDQoJZGF0YU9TVmVyc2lvbiA6IFsNCgkJew0KCQkJc3Ry aW5nOiBuYXZpZ2F0b3IudXNlckFnZW50LA0KCQkJc3ViU3RyaW5nOiAiV2luZG93 cyA5NSIsDQoJCQlpZGVudGl0eTogIldpbmRvd3MgOTUiLA0KCQkJT1NWZXJzaW9u TnVtYmVyOjQuMA0KCQl9LA0KCQl7DQoJCQlzdHJpbmc6IG5hdmlnYXRvci51c2Vy QWdlbnQsDQoJCQlzdWJTdHJpbmc6ICJXaW5kb3dzIDk4OyBXaW4gOXggNC45MCIs DQoJCQlpZGVudGl0eTogIldpbmRvd3MgTWlsbGVubml1bSBFZGl0aW9uIiwNCgkJ CU9TVmVyc2lvbk51bWJlcjo0LjkNCgkJfSwJCQ0KCQl7DQoJCQlzdHJpbmc6IG5h dmlnYXRvci51c2VyQWdlbnQsDQoJCQlzdWJTdHJpbmc6ICJXaW5kb3dzIDk4IiwN CgkJCWlkZW50aXR5OiAiV2luZG93cyA5OCIsDQoJCQlPU1ZlcnNpb25OdW1iZXI6 NC4xMA0KCQl9LA0KCQl7DQoJCQlzdHJpbmc6IG5hdmlnYXRvci51c2VyQWdlbnQs DQoJCQlzdWJTdHJpbmc6ICJXaW5kb3dzIE5UIDQuMCIsDQoJCQlpZGVudGl0eTog IldpbmRvd3MgTlQgNC4wIiwNCgkJCU9TVmVyc2lvbk51bWJlcjo0LjANCgkJfSwJ CQ0KCQkNCgkJew0KCQkJc3RyaW5nOiBuYXZpZ2F0b3IudXNlckFnZW50LA0KCQkJ c3ViU3RyaW5nOiAiV2luZG93cyBOVCA1LjAiLA0KCQkJaWRlbnRpdHk6ICJXaW5k b3dzIDIwMDAiLA0KCQkJT1NWZXJzaW9uTnVtYmVyOjUuMA0KCQl9LAkJDQoJCXsN CgkJCXN0cmluZzogbmF2aWdhdG9yLnVzZXJBZ2VudCwNCgkJCXN1YlN0cmluZzog IldpbmRvd3MgTlQgNS4wMSIsDQoJCQlpZGVudGl0eTogIldpbmRvd3MgMjAwMCBT ZXJ2aWNlIFBhY2sgMSIsDQoJCQlPU1ZlcnNpb25OdW1iZXI6NS4wMQ0KCQl9LAkN CgkJCQkNCgkJew0KCQkJc3RyaW5nOiBuYXZpZ2F0b3IudXNlckFnZW50LA0KCQkJ c3ViU3RyaW5nOiAiV2luZG93cyBOVCA1LjEiLA0KCQkJaWRlbnRpdHk6ICJXaW5k b3dzIFhQIiwNCgkJCU9TVmVyc2lvbk51bWJlcjo1LjENCgkJfSwNCgkJew0KCQkJ c3RyaW5nOiBuYXZpZ2F0b3IudXNlckFnZW50LA0KCQkJc3ViU3RyaW5nOiAiV2lu ZG93cyBOVCA1LjIiLA0KCQkJaWRlbnRpdHk6ICJXaW5kb3dzIFhQIDY0LUJpdCBF ZGl0aW9uIiwNCgkJCU9TVmVyc2lvbk51bWJlcjo1LjINCgkJfSwJCQ0KCQl7DQoJ CQlzdHJpbmc6IG5hdmlnYXRvci51c2VyQWdlbnQsDQoJCQlzdWJTdHJpbmc6ICJX aW5kb3dzIE5UIDYuMCIsDQoJCQlpZGVudGl0eTogIldpbmRvd3MgVmlzdGEiLA0K CQkJT1NWZXJzaW9uTnVtYmVyOjYuMA0KCQl9LAkJDQoJCXsNCgkJCXN0cmluZzog bmF2aWdhdG9yLnVzZXJBZ2VudCwNCgkJCXN1YlN0cmluZzogIldpbmRvd3MgTlQg Ni4xIiwNCgkJCWlkZW50aXR5OiAiV2luZG93cyA3IiwNCgkJCU9TVmVyc2lvbk51 bWJlcjo2LjENCgkJfSwNCgkJew0KCQkJc3RyaW5nOiBuYXZpZ2F0b3IudXNlckFn ZW50LA0KCQkJc3ViU3RyaW5nOiAiV2luZG93cyBOVCA2LjIiLA0KCQkJaWRlbnRp dHk6ICJXaW5kb3dzIDgiLA0KCQkJT1NWZXJzaW9uTnVtYmVyOjYuMg0KCQl9LA0K CQl7DQoJCQlzdHJpbmc6IG5hdmlnYXRvci51c2VyQWdlbnQsDQoJCQlzdWJTdHJp bmc6ICJNYWNfUG93ZXJQQyIsDQoJCQlpZGVudGl0eTogIk1hYyBPUyA5LjIiLA0K CQkJT1NWZXJzaW9uTnVtYmVyOjkuMg0KCQl9DQoJXQ0KDQp9Ow== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=dynamic_banner_rn_init_script_v3.js Content-Type: application/x-javascript; name=dynamic_banner_rn_init_script_v3.js Content-Location: http://support.microsoft.com/library/JavaScript/Support/CN/dynamic_banner_rn_init_script_v3.js Content-Transfer-Encoding: Base64 ZnVuY3Rpb24gQnJvd3NlaW5mb2Jhbm5lcigpIHsNCg0KICAgIEJyb3dzZXJEZXRl Y3QuaW5pdCgpOw0KICAgIA0KICAgIC8qIHdpbjggLSBpZTEwLGllOSBhbmQgbG93 ZXIsIG90aGVyIGJyb3dzZXJzICovDQogICAgDQogICAgaWYgKEJyb3dzZXJEZXRl Y3QuT1MgPT0gIldpbmRvd3MiICYmIChCcm93c2VyRGV0ZWN0Lk9TVmVyc2lvbiA9 PSAiV2luZG93cyA4IikpIHsNCiAgICAgICAgaWYgKEJyb3dzZXJEZXRlY3QuYnJv d3NlciA9PSAiSW50ZXJuZXQgRXhwbG9yZXIiICYmIEJyb3dzZXJEZXRlY3QudmVy c2lvbiA9PSAxMCkgew0KICAgICAgICAgICAgcmV0dXJuICdpZTEwX3dpbjgnOw0K ICAgICAgICB9IGVsc2UgaWYgKEJyb3dzZXJEZXRlY3QuYnJvd3NlciA9PSAiSW50 ZXJuZXQgRXhwbG9yZXIiICYmIEJyb3dzZXJEZXRlY3QudmVyc2lvbiA8PSA5KSB7 DQogICAgICAgICAgICByZXR1cm4gJ2llOV9sb3dlcl93aW44JzsNCiAgICAgICAg fSBlbHNlIGlmIChCcm93c2VyRGV0ZWN0LmJyb3dzZXIgIT0gIkludGVybmV0IEV4 cGxvcmVyIikgew0KICAgICAgICAgICAgcmV0dXJuICczcmRfd2luOCc7DQogICAg ICAgIH07DQogICAgfTsNCg0KICAgIC8qIHdpbjcgLSBpZTEwLCBpZTksIGllOCwg aWU3IGFuZCBvdGhlciBicm93c2VycyAqLw0KDQogICAgaWYgKEJyb3dzZXJEZXRl Y3QuT1MgPT0gIldpbmRvd3MiICYmIChCcm93c2VyRGV0ZWN0Lk9TVmVyc2lvbiA9 PSAiV2luZG93cyA3IiB8fCBCcm93c2VyRGV0ZWN0Lk9TVmVyc2lvbiA9PSAiV2lu ZG93cyBWaXN0YSIpKSB7DQogICAgICAgIGlmIChCcm93c2VyRGV0ZWN0LmJyb3dz ZXIgPT0gIkludGVybmV0IEV4cGxvcmVyIiAmJiBCcm93c2VyRGV0ZWN0LnZlcnNp b24gPT0gMTApIHsNCiAgICAgICAgICAgIHJldHVybiAnaWUxMF93aW43JzsNCiAg ICAgICAgfSBlbHNlIGlmIChCcm93c2VyRGV0ZWN0LmJyb3dzZXIgPT0gIkludGVy bmV0IEV4cGxvcmVyIiAmJiBCcm93c2VyRGV0ZWN0LnZlcnNpb24gPD0gOSkgew0K ICAgICAgICAgICAgcmV0dXJuICdpZTlfbG93ZXJfd2luNyc7DQogICAgICAgIH0g ZWxzZSBpZiAoQnJvd3NlckRldGVjdC5icm93c2VyICE9ICJJbnRlcm5ldCBFeHBs b3JlciIpIHsNCiAgICAgICAgICAgIHJldHVybiAnM3JkX3dpbjcnOw0KICAgICAg ICB9Ow0KICAgIH07DQogICAgDQogICAgLyogdmlzdGEgLSBpZTksIGllOCwgaWU3 IGFuZCBvdGhlciBicm93c2VycyAqLw0KDQogICAgaWYgKEJyb3dzZXJEZXRlY3Qu T1MgPT0gIldpbmRvd3MiICYmIChCcm93c2VyRGV0ZWN0Lk9TVmVyc2lvbiA9PSAi V2luZG93cyA3IiB8fCBCcm93c2VyRGV0ZWN0Lk9TVmVyc2lvbiA9PSAiV2luZG93 cyBWaXN0YSIpKSB7DQogICAgICAgIGlmIChCcm93c2VyRGV0ZWN0LmJyb3dzZXIg PT0gIkludGVybmV0IEV4cGxvcmVyIiAmJiBCcm93c2VyRGV0ZWN0LnZlcnNpb24g PT0gOSkgew0KICAgICAgICAgICAgcmV0dXJuICdpZTlfdmlzdGEnOw0KICAgICAg ICB9IGVsc2UgaWYgKChCcm93c2VyRGV0ZWN0LmJyb3dzZXIgPT0gIkludGVybmV0 IEV4cGxvcmVyIiAmJiBCcm93c2VyRGV0ZWN0LnZlcnNpb24gPD0gOCkgfHwgKEJy b3dzZXJEZXRlY3QuYnJvd3NlciAhPSAiSW50ZXJuZXQgRXhwbG9yZXIiKSkgew0K ICAgICAgICAgICAgcmV0dXJuICdpZThfbG93ZXJfM3JkX3Zpc3RhJzsNCiAgICAg ICAgfTsNCiAgICB9Ow0KICAgIA0KICAgIC8qIHdpbmRvd3NYUCAtIGllOCwgaWU3 IGFuZCBsb3dlciAqLw0KDQogICAgaWYgKEJyb3dzZXJEZXRlY3QuT1MgPT0gIldp bmRvd3MiICYmIChCcm93c2VyRGV0ZWN0Lk9TVmVyc2lvbiA9PSAiV2luZG93cyBY UCBQcm9mZXNzaW9uYWwiKSkgew0KICAgICAgICBpZiAoQnJvd3NlckRldGVjdC5i cm93c2VyID09ICJJbnRlcm5ldCBFeHBsb3JlciIgJiYgQnJvd3NlckRldGVjdC52 ZXJzaW9uID09IDgpIHsNCiAgICAgICAgICAgIHJldHVybiAnaWU4X3dpbnhwJzsN CiAgICAgICAgfSBlbHNlIGlmICgoQnJvd3NlckRldGVjdC5icm93c2VyID09ICJJ bnRlcm5ldCBFeHBsb3JlciIgJiYgQnJvd3NlckRldGVjdC52ZXJzaW9uIDw9IDcp IHx8IChCcm93c2VyRGV0ZWN0LmJyb3dzZXIgIT0gIkludGVybmV0IEV4cGxvcmVy IikpIHsNCiAgICAgICAgICAgIHJldHVybiAnaWU3X2xvd2VyXzNyZF93aW54cCc7 DQogICAgICAgIH07DQogICAgfTsNCg0KICAgIC8qIG90aGVyIHdpbmRvd3MgLSBp ZTgsIGllNyBhbmQgbG93ZXIsIG90aGVyIGJyb3dzZXJzICovDQoNCiAgICBpZiAo QnJvd3NlckRldGVjdC5PUyA9PSAiV2luZG93cyIgJiYgKEJyb3dzZXJEZXRlY3Qu T1NWZXJzaW9uICE9ICJXaW5kb3dzIFhQIFByb2Zlc3Npb25hbCIgJiYgQnJvd3Nl ckRldGVjdC5PU1ZlcnNpb24gIT0gIldpbmRvd3MgVmlzdGEiICYmIEJyb3dzZXJE ZXRlY3QuT1NWZXJzaW9uICE9ICJXaW5kb3dzIDciICYmIEJyb3dzZXJEZXRlY3Qu T1NWZXJzaW9uICE9ICJXaW5kb3dzIDgiKSkgew0KICAgICAgICBpZiAoQnJvd3Nl ckRldGVjdC5icm93c2VyID09ICJJbnRlcm5ldCBFeHBsb3JlciIgJiYgQnJvd3Nl ckRldGVjdC52ZXJzaW9uID09IDgpIHsNCiAgICAgICAgICAgIHJldHVybiAnaWU4 X290aGVyX3dpbic7DQogICAgICAgIH0gZWxzZSBpZiAoKEJyb3dzZXJEZXRlY3Qu YnJvd3NlciA9PSAiSW50ZXJuZXQgRXhwbG9yZXIiICYmIEJyb3dzZXJEZXRlY3Qu dmVyc2lvbiA8PSA3KSB8fCAoQnJvd3NlckRldGVjdC5icm93c2VyICE9ICJJbnRl cm5ldCBFeHBsb3JlciIpKSB7DQogICAgICAgICAgICByZXR1cm4gJ2llN19sb3dl cl8zcmRfb3RoZXJfd2luJzsNCiAgICAgICAgfTsNCiAgICB9Ow0KDQogICAgLyog bm9uIHdpbmRvd3MgLSBsaW51eCwgZXRjLiovDQoNCiAgICBpZiAoKEJyb3dzZXJE ZXRlY3QuT1MgIT0gIldpbmRvd3MiKSAmJiAoQnJvd3NlckRldGVjdC5PUyAhPSAi TWFjIikpIHsNCiAgICAgICAgcmV0dXJuICdub25fd2luJzsNCiAgICB9Ow0KICAg IA0KICAgIC8qIG1hYyAqLw0KICAgIA0KICAgIGlmIChCcm93c2VyRGV0ZWN0Lk9T ID09ICJNYWMiKSB7DQogICAgICAgIHJldHVybiAnbWFjX29zJzsNCiAgICB9Ow0K fQ0KDQoNCg0KZnVuY3Rpb24gYmFubmVyX2luaXQoIFNsaWRlcklkICwgQ29uZmln dXJhdGlvbikgew0KICAgIA0KICAgIHZhciBpbmZvYmFubmVyID0gQnJvd3NlaW5m b2Jhbm5lcigpOw0KICAgIHZhciBTbGlkZXJDb250ZW50ID0gbnVsbDsNCiAgICAN CiAgICBzd2l0Y2ggKGluZm9iYW5uZXIpIHsNCgljYXNlICdpZTEwX3dpbjgnOg0K CSAgICBTbGlkZXJDb250ZW50ID0gQ29uZmlndXJhdGlvbi5yaWdodG5hdl9pZTEw X3dpbjg7IA0KICAgICAgICBicmVhazsNCiAgICAgICAgCQkNCiAgICAgICAgY2Fz ZSAnaWU5X2xvd2VyX3dpbjgnOg0KICAgICAgICAgICAgU2xpZGVyQ29udGVudCA9 IENvbmZpZ3VyYXRpb24ucmlnaHRuYXZfaWU5X2xvd2VyX3dpbjg7DQogICAgICAg IGJyZWFrOw0KICAgIA0KCWNhc2UgJzNyZF93aW44JzoNCiAgICAgICAgICAgIFNs aWRlckNvbnRlbnQgPSBDb25maWd1cmF0aW9uLnJpZ2h0bmF2XzNyZF93aW44Ow0K ICAgICAgICBicmVhazsNCiAgICAgICAgICAgIA0KICAgICAgICBjYXNlICdpZTEw X3dpbjcnOg0KICAgICAgICAgICAgU2xpZGVyQ29udGVudCA9IENvbmZpZ3VyYXRp b24ucmlnaHRuYXZfaWUxMF93aW43OyAgICAgICAgICAgICAgICAgDQogICAgICAg IGJyZWFrOw0KICAgICAgICAgICAgICAgIA0KICAgICAgICBjYXNlICdpZTlfbG93 ZXJfd2luNyc6DQogICAgICAgICAgICBTbGlkZXJDb250ZW50ID0gQ29uZmlndXJh dGlvbi5yaWdodG5hdl9pZTlfbG93ZXJfd2luNzsgICAgICAgICAgICAgICAgIA0K ICAgICAgICBicmVhazsNCiAgICANCgljYXNlICczcmRfd2luNyc6DQogICAgICAg ICAgICBTbGlkZXJDb250ZW50ID0gQ29uZmlndXJhdGlvbi5yaWdodG5hdl8zcmRf d2luNzsgICAgICAgICAgICAgICAgIA0KICAgICAgICBicmVhazsNCiAgICANCglj YXNlICdpZTlfdmlzdGEnOg0KICAgICAgICAgICAgU2xpZGVyQ29udGVudCA9IENv bmZpZ3VyYXRpb24ucmlnaHRuYXZfaWU5X3Zpc3RhOyAgICAgICAgICAgICAgICAg DQogICAgICAgIGJyZWFrOw0KICAgIA0KCWNhc2UgJ2llOF9sb3dlcl8zcmRfdmlz dGEnOg0KICAgICAgICAgICAgU2xpZGVyQ29udGVudCA9IENvbmZpZ3VyYXRpb24u cmlnaHRuYXZfaWU4X2xvd2VyXzNyZF92aXN0YTsgICAgICAgICAgICAgICAgIA0K ICAgICAgICBicmVhazsNCiAgICAgICAgDQoJY2FzZSAnaWU4X3dpbnhwJzoNCiAg ICAgICAgICAgU2xpZGVyQ29udGVudCA9IENvbmZpZ3VyYXRpb24ucmlnaHRuYXZf aWU4X3dpbnhwOw0KICAgICAgIAlicmVhazsNCiAgICAgICAJCQ0KCWNhc2UgJ2ll N19sb3dlcl8zcmRfd2lueHAnOg0KICAgICAgICAgICBTbGlkZXJDb250ZW50ID0g Q29uZmlndXJhdGlvbi5yaWdodG5hdl9pZTdfbG93ZXJfM3JkX3dpbnhwOyAgICAg ICAJCSANCiAgICAgICAJYnJlYWs7DQogICAgICAgCQkNCiAgICAgICAJY2FzZSAn aWU4X290aGVyX3dpbic6DQogICAgICAgCSAgICBTbGlkZXJDb250ZW50ID0gQ29u ZmlndXJhdGlvbi5yaWdodG5hdl9pZThfb3RoZXJfd2luOw0KCWJyZWFrOw0KCQkJ DQogICAgICAgIGNhc2UgJ2llN19sb3dlcl8zcmRfb3RoZXJfd2luJzoNCiAgICAg ICAgICAgIFNsaWRlckNvbnRlbnQgPSBDb25maWd1cmF0aW9uLnJpZ2h0bmF2X2ll N19sb3dlcl8zcmRfb3RoZXJfd2luOw0KICAgICAgICBicmVhazsNCiAgICAgICAg CQ0KICAgICAgICBjYXNlICdub25fd2luJzoNCiAgICAgICAgICAgIFNsaWRlckNv bnRlbnQgPSBDb25maWd1cmF0aW9uLnJpZ2h0bmF2X25vbl93aW47DQogICAgICAg IGJyZWFrOw0KICAgICAgICAJDQogICAgICAgIGNhc2UgJ21hY19vcyc6DQogICAg ICAgICAgICBTbGlkZXJDb250ZW50ID0gQ29uZmlndXJhdGlvbi5yaWdodG5hdl9t YWM7DQogICAgICAgIGJyZWFrOw0KICAgICAgICB9DQogICAgICAgIA0KDQogICAg ICAgIGlmICggU2xpZGVyQ29udGVudCAhPSBudWxsICl7DQogICAgICAgICAgICAN CiAgICAgICAgJCgnIycrU2xpZGVySWQpLmFwcGVuZCgnPHVsPicgKyBTbGlkZXJD b250ZW50ICsgJzwvdWw+Jyk7DQoNCiAgICAgICAgLyogaWYgb25seSBvbmUgc2xp ZGUsIG1ha2UgdGhlIGltYWdlIHN0YXRpYyAqLyAgICAgICAgDQoNCiAgICAgICAg aWYgKCQoJyMnICsgU2xpZGVySWQgKyAnIHVsIGxpJykubGVuZ3RoIDwgMikgeyAg DQogICAgICAgICQoJyMnICsgU2xpZGVySWQpLlNsaWRlcih7IGF1dG86IGZhbHNl LCBjb250aW51b3VzOiB0cnVlLCBuZXh0VGV4dDogIiIsIHByZXZUZXh0OiAiIiB9 KTsgICAgICAgIAkgICAgDQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICQoJyMn ICsgU2xpZGVySWQpLlNsaWRlcih7IGF1dG86IHRydWUsIGNvbnRpbnVvdXM6IHRy dWUsIG5leHRUZXh0OiAiIiwgbmV4dElkOiBTbGlkZXJJZCArICJuZXh0IiwgcHJl dlRleHQ6ICIiLCBwcmV2SWQ6IFNsaWRlcklkICsgInByZXYiLCBwYXVzZTogNTAw MCB9KTsNCiAgICAgICAgfQ0KICAgIH0gICAgICANCiAgICAgICAgDQp9DQoNCg0K ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=onepix.gif Content-Type: image/gif; name=onepix.gif Content-Location: http://support.microsoft.com/library/images/support/cn/onepix.gif Content-Transfer-Encoding: Base64 R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=store_link_modifier.js Content-Type: application/x-javascript; name=store_link_modifier.js Content-Location: http://support.microsoft.com/library/javascript/support/en-gb/store_link_modifier.js?1 Content-Transfer-Encoding: Base64 KGZ1bmN0aW9uICgpIHsNCiAgICAkKGZ1bmN0aW9uICgpIHsNCiAgICAgICAgJCgi Lm9uZU1zY29tRm9vdGVyVjMgYVtocmVmPSdodHRwOi8vZW1lYS5taWNyb3NvZnRz dG9yZS5jb20vVUsvZW4tR0I/V1QubWNfaWQ9TVNDT01fSFBfR0JfTmF2X0J1eVNo b3BOb3cnXSIpLmVhY2goZnVuY3Rpb24gKCkgew0KICAgICAgICAgICAgdmFyIGhy ZWYgPSAkKHRoaXMpLmF0dHIoImhyZWYiKTsNCiAgICAgICAgICAgIGhyZWYgPSBo cmVmLnN1YnN0cigwLCBocmVmLmluZGV4T2YoJz8nKSk7DQogICAgICAgICAgICAk KHRoaXMpLmF0dHIoImhyZWYiLCBocmVmICsgIj9XVC5tY19pZD1TTUNNU0NPTV9F TkdCX05BVl9CVVlBTEwiKTsNCiAgICAgICAgfSk7DQogICAgIA0KICAgIH0pOw0K fSkoKTsNCg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=pinpoint_link_modifier.js Content-Type: application/x-javascript; name=pinpoint_link_modifier.js Content-Location: http://support.microsoft.com/library/javascript/support/en-gb/pinpoint_link_modifier.js?2 Content-Transfer-Encoding: Base64 KGZ1bmN0aW9uKCkgew0KICB2YXIgJHN0b3JlTGluayA9ICQoIiNtdGhkcjIyIGEi KSwNCiAgICAgIGxpbmtIcmVmID0gJHN0b3JlTGluay5hdHRyKCJocmVmIiksDQog ICAgICBuZXdMaW5rSHJlZiA9ICJodHRwOi8vcGlucG9pbnQubWljcm9zb2Z0LmNv bS9lbi1HQi9ob21lP1dULm1jX2lkPWVuLUdCX1Blcm1fTGlua19TdXBwb3J0TWVu dV8ySFAiOw0KICAgICAgDQogIGlmICh0eXBlb2YgbGlua0hyZWYgPT09ICdzdHJp bmcnICYmIGxpbmtIcmVmLmxlbmd0aCA+IDApIHsNCiAgICAkKCIubXN0SGRyIGFb aHJlZj0nIiArIGxpbmtIcmVmICsgIiddIikuYXR0cigiaHJlZiIsIG5ld0xpbmtI cmVmKTsNCiAgfQ0KfSkoKTsNCg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=windowslogo.png Content-Type: image/png; name=windowslogo.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/footerimages/windowslogo.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAABHNCSVQICAgIfAhk iAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmly ZXdvcmtzIENTNXG14zYAAAFWSURBVGiB7ZrdbYMwEIA/V31FzQbNBmGDIrFQN0gy QVfpApbaEbpBRqjkAdyH8uOglAB24iu6T/KTBb4PH0Lc2XjvWRMPuQNIzWPuAOZg rKuADVAC22aUwJOvCwMChcaCnnJ9FiFjXclv0BXnwT/H3vvmQsa6A4mDHiNKqEkP OH/SG2DX5jSwj1ljLqNCxrphLrdjck7fm07IWPdKn9cALzkCiiXcobdsUSRkdR9W FZKOCklHhaSjQtJRIemokHRUSDpGC43CCX/Bk25VWyRJfd9r661uh1RIOiokHRWS jgpJR4Wko0LSUSHphEJH4BP4yhRLErofPF8Xh3DCWLelbxCHHW7Rvdc/u+C+Lk7A CfgYzgXd8cUnPm7FonMKvi6+6UXfh/PN7rYc6c8x7JasN4e7V30upHLVTEWlclfD kFTGunDQY/J7K1JojGuy/05oKqv7sP4Aw4lQePs1ml4AAAAASUVORK5CYII= ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=officelogo.png Content-Type: image/png; name=officelogo.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/footerimages/officelogo.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADQAAAA0BAMAAAA3VgbYAAAAA3NCSVQICAjb4U/g AAAAMFBMVEX////qPiPqPiPqPiPqPiPqPiPqPiPqPiPqPiPqPiPqPiPqPiPqPiPq PiPqPiPqPiPBf6lAAAAAEHRSTlMAESIzRFVmd4iZqrvM3e7/dpUBFQAAAAlwSFlz AAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENT Nui8sowAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDEvMTQvMTOKujLIAAAA20lEQVQ4 jWNgIBYwZt8MwC7DOu///39TBbDIWNz/DwK/EtElmGr+w8B2BRQZsfX/EeBPAZJM 5Pv/yOADwrDe//+xS4mf/49DKgthR9t5ZCmWeTCJ1yUCDPuRpfihEjeLQTwsUieC IIZjSk2AuQhTqmFUalSKTlI/DXBJPVdgwCF1jIEBh9QSBlxSjGlOuKQYmPv+7Wp3 wSoFzeO7O0IEMKXgJcPtGffRpRgYc/6jACQpBgb1+8hSG5ClGJgRZcdLjFIKWuL8 aUaXAAJWkGuWK2CRARWVLwOxSqACAGS3S/36yYkcAAAAAElFTkSuQmCC ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=phonelogo.png Content-Type: image/png; name=phonelogo.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/footerimages/phonelogo.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAo5JREFUeNrsmrlOw0AQhjc2AZFwh3Af IQGRhqNCAkrgGSh4Ap6BggqJmoYW0dPRgYREAyUSHUJIHAUFEuIKhCSYGeU3WowJ lnAcx9qRfvlYZ3e+9a7jGW/IMAwRJKsxd5aTK9Xmd5zUTRogpTcv1ta/AfnU6XZS F6mflIRSOO5CuUbKk3wD1AjH2MkEnB4jjZM6SE0O6nj8MeTKbHVwdAhOp3Dcj2HD QLWuziEXe7oXw+AQIFukKYBonj0UHFoUk5F7eBK9zJOyj9RJagPEEWmGFCbNA9Tb pxysHo13wtEBOD0Ip3kituK6UvaKLf8nZCry2CbbI42il6NV/z9ENuug531vms0w CQyQUEAKSAEpIAWkgBSQAlJAVQvkZsjQgG3IYU7gvxa1Cx920LghBWdPpA84Zhpn WJ4tFXL5G8R2gW2WtIrwPCvVY+BYtne0ZVqOVJDqz6Ft8ziPcyH89gfQUhl6jhvc qFSAt0jS4YSw6Qn5XMFyTqB38yi/I51iSCfRjjVFm7fckf8Y13NpBdoWLqWSyPZJ C5hLB8hF2DnhVh76XhTTYd+AnpFPcMPepf1aUf78X72Xj+0PD9ooeAnk6ecNzYOe y6k3BQWkgBRQ4IDCQQPS1ZBTQH8D6UEDegkCkPxaP03qEcXvqglR/ATP+/zpvQOh RbiagK6gY5vrmgCVFsVFEeYaA1YcsPovCRe9UkCl7BE6J+1awvEWQPVBI6QHKRbK +BGoVKxzD53ZlPN32znSMO5myjKUY6RmPwE5sWvI7m0ihnxDL0B5KE/gLnNZxI9A vxkHfrfQiaUsgnlpDmNzFZa5GCQOYE2a4xUHKmUZ6MamrE66swzHq1y6vyZ10FY0 Bu7V51OAAQBJCGsRy20deAAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=xboxlogo.png Content-Type: image/png; name=xboxlogo.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/footerimages/xboxlogo.png Content-Transfer-Encoding: Base64 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 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=skypelogo.png Content-Type: image/png; name=skypelogo.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/footerimages/skypelogo.png Content-Transfer-Encoding: Base64 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 AABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=binglogo.png Content-Type: image/png; name=binglogo.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/footerimages/binglogo.png Content-Transfer-Encoding: Base64 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 ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=storelogo.png Content-Type: image/png; name=storelogo.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/footerimages/storelogo.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAABHNCSVQICAgIfAhk iAAAAAlwSFlzAAAt+wAALfsB/IdK5wAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmly ZXdvcmtzIENTNXG14zYAAACbSURBVGiB7dixDQJBEATBWYSLRA7EAj42yXwy2PgQ CzkgEcBiQQScaE5d1nt/rfWmujszWf36Ad+2fn88j7thp9pc7pUky62G/WPZdyUT XsggOoPoDKIziM4gOoPoDKIziM4gOoPopgsqh0a4z9BY58ewU/VpW0mS67ihMQeH xv9gEJ1BdAbRGURnEJ1BdAbRGURnEJ1BdA6NdC/E/hhhFHHsDQAAAABJRU5ErkJg gg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=footer_globe.png Content-Type: image/png; name=footer_globe.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/footerimages/footer_globe.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9D BY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfy l5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT 0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq YAAAOpgAABdvkl/FRgAAAXpJREFUeNqsVMFtwzAMvGYCj6ARPIJGcDfQCOkG2sAj eASP4HYCZQNnA2cD93MKrgRVx0UJEAHi0+lIHfmG4+iZQf77BHAD8MAf4wpgBbDz d5HcmTOAeIa0J9kGIAMYSDAwawxy0QigOyJOokiVa1qlkULKbxdEHt6ovkYxrelF SG1TxRSPuDMqNx5KLD8TF6RVK6uzlWVLnh1Qzd5gRyrcRIg9o85yARMVah8DiRe+ S61wa6mPDeJW+4oonom154u2pKpZD9w0NVpX30vnABceegD44OSVVzzrVHQnx7vM CzLL0yFaRFE032amVT8K7jkPmWQaiyn56lRjMfroO4BwYTnBHPwy4NGxpGJushoq 7q432cOlocybjSwOm0ybURz7LY11YC1cpMKO+ASz4XZnpxSnZXaDaswtO9cPnT7K CTumxtb8MX1F7JhOEuejYahLaXXKHlhhlvkorxDrBVlcMhnneKMfT070c3d7xHVp JfxTBCp8ee98DwAkgMVUfLRljQAAAABJRU5ErkJggg== ------------qHryB7dFAJpRddSST4zzSx Content-Disposition: inline; filename=flyoutclosebtnround.png Content-Type: image/png; name=flyoutclosebtnround.png Content-Location: http://www.microsoft.com/global/onemscomsettings/publishingimages/commonimages/flyoutclosebtnround.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAAL EwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj33 3vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEs DIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIe EeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH /w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAn f+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJ V2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4 mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHg g/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl 7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/A V/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5 WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQ WHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAA RKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv 1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4 IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGy UT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPE bDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPE NyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD 5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2h tlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0 dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHK CpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2ep O6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN 2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIp G6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3n U9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36 p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYP jGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLn m+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cR p7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0H DYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dn F2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofc n8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh 7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJ gUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85 ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7 F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/R NtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9 MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo 1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5 sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWF fevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTP ZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJ zs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ +7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3v dy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtb Ylu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ7 52PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7 nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9 zsu72Xcn7q28T7xf9ED