Content-Type: multipart/related; start=<op.mhtml.1317708488541.ecb9ae43313831d2@192.168.0.78>; boundary=----------lklIDkRqA33x7wS7VvfJGW
Content-Location: http://acer--uk.custhelp.com/app/answers/detail/a_id/3009/~/hotkeys-and-key-combinations-on-aspire-one-netbooks
Subject: =?utf-8?Q?Hotkeys=20And=20Key=20Combinations=20On=20Aspire=20One=20Netbooks?=
MIME-Version: 1.0

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=hotkeys-and-key-combinations-on-aspire-one-netbooks.htm
Content-Type: text/html; charset=UTF-8; name=hotkeys-and-key-combinations-on-aspire-one-netbooks.htm
Content-ID: <op.mhtml.1317708488541.ecb9ae43313831d2@192.168.0.78>
Content-Location: http://acer--uk.custhelp.com/app/answers/detail/a_id/3009/~/hotkeys-and-key-combinations-on-aspire-one-netbooks
Content-Transfer-Encoding: Quoted-Printable

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en-GB" xml:lang=3D"=
en-GB" style=3D"background-image:none;">
<head>
    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3Dut=
f-8" />
    <meta http-equiv=3D"Content-Style-Type" content=3D"text/css" />
    <meta http-equiv=3D"Content-Script-Type" content=3D"text/javascript"=
 />
    <meta http-equiv=3D"X-UA-Compatible" content=3D"chrome=3D1" />
    <title>Hotkeys And Key Combinations On Aspire One Netbooks</title>
    <link rel=3D"search" type=3D"application/opensearchdescription+xml" =
title=3D"Support Home Page Search" href=3D"/ci/browserSearch/desc/http%3=
A%2F%2Facer--uk.custhelp.com%2Fapp%2Fanswers%2Flist%2Fkw%2F%7BsearchTerm=
s%7D/Support+Home+Page+Search/Support+Home+Page+Search/images%2Ficons%2F=
Search16.png"/>
    =

    <link rel=3D'canonical' href=3D'http://acer--uk.custhelp.com/app/ans=
wers/detail/a_id/3009/~/hotkeys-and-key-combinations-on-aspire-one-netbo=
oks'/>
<meta http-equiv=3D"Pragma" content=3D"no-cache"/>
<meta http-equiv=3D"Expires" content=3D"-1"/>
<style type=3D'text/css'>
.rn_ScreenReaderOnly{position:absolute; height:1px; left:-10000px; overf=
low:hidden; top:auto; width:1px;}
.rn_Hidden{display:none}
</style>
<base href=3D'http://acer--uk.custhelp.com/euf/rightnow/optimized/131646=
8885/themes/standard/'></base>
<link href=3D'/euf/rightnow/optimized/templates/standard1316468885.theme=
s.standard.SITE.css' rel=3D'stylesheet' type=3D'text/css' media=3D'all' =
/>
<link href=3D'/euf/rightnow/optimized/templates/standard1316468885.theme=
s.standard.css' rel=3D'stylesheet' type=3D'text/css' media=3D'all' />
<link href=3D'/euf/rightnow/optimized/pages//answers/detail1316468885.th=
emes.standard.css' rel=3D'stylesheet' type=3D'text/css' media=3D'all' />=


    <!-- Add HTML/PHP view code here -->
    <link rel=3D"shortcut icon" href=3D"/euf/assets/favicon.ico" type=3D=
"image/x-icon" />
    <link href=3D"/euf/assets/themes/standard/upgrades.css" type=3D"text=
/css" rel=3D"stylesheet">

    <link href=3D"/euf/assets/themes/standard/acer/acer.css" type=3D"tex=
t/css" rel=3D"stylesheet">
    <link href=3D"/euf/assets/themes/standard/acer/units.css" type=3D"te=
xt/css" rel=3D"stylesheet">
    <link href=3D"/euf/assets/themes/standard/acer/global.css" type=3D"t=
ext/css" rel=3D"stylesheet">

</head>
<body class=3D"yui-skin-sam">
<script type=3D'text/javascript' src=3D"/euf/rightnow/js/10.2.0.1.6.140/=
min/RightNow.js"></script>
<script type=3D'text/javascript' src=3D'/euf/rightnow/optimized/template=
s/standard1316468885.js'></script>
<script type=3D'text/javascript' src=3D'/euf/rightnow/optimized/pages/an=
swers/detail1316468885.js'></script>
<script type=3D'text/javascript' src=3D'/euf/rightnow/js/10.2.0.1.6.140/=
deprecated/combined.js'></script>
<script type=3D"text/javascript">
/* <![CDATA[ */
RightNow.Url.setParameterSegment(5);
RightNow.Url.setSession('L2F2LzEvc2lkLzJRN0Z6SEZr');
RightNow.Interface.Constants =3D =

{"ACTION_ADD":1,"ANY_FILTER_VALUE":"~any~","EUF_DT_CHECK":12,"EUF_DT_DAT=
E":1,"EUF_DT_DATETIME":2,"EUF_DT_FATTACH":11,"EUF_DT_HIERMENU":9,"EUF_DT=
_INT":5,"EUF_DT_MEMO":6,"EUF_DT_PASSWORD":7,"EUF_DT_RADIO":3,"EUF_DT_SEL=
ECT":4,"EUF_DT_THREAD":10,"EUF_DT_VARCHAR":8,"INT_NULL":-2147483647,"CAN=
_USE_ARIA":false};
YAHOO.util.Event.onDOMReady(function(){RightNow.UI.Dialog.setRenderDiv()=
; RightNow.UI.prepareVirtualBufferUpdateTrigger(); RightNow.UI.ariaHideF=
rames();});
RightNow.Interface.setMessagebase(function(){return {"WARNING_LBL":"Warn=
ing","INFORMATION_LBL":"Information","HELP_LBL":"Help","ERROR_REQUEST_AC=
TION_COMPLETED_MSG":"There was an error with the request and the action =
could not be completed.","OK_LBL":"OK","DIALOG_LBL":"dialogue","DIALOG_P=
LEASE_READ_TEXT_DIALOG_MSG_MSG":"Dialogue. Please read text above for di=
alogue message","BEG_DIALOG_PLS_DISMISS_DIALOG_BEF_MSG":"Beginning of di=
alogue. Please dismiss dialogue before continuing","END_DIALOG_PLS_DISMI=
SS_DIALOG_BEF_MSG":"End of dialogue. Please dismiss dialogue before cont=
inuing","ERR_SUBMITTING_FORM_DUE_INV_INPUT":"There was an error submitti=
ng the form, due to invalid input","PCT_S_CONTAIN_THAN_MSG":"%s must not=
 contain either '<' or '>'","PCT_S_MUST_NOT_CONTAIN_QUOTES_MSG":"%s must=
 not contain quotes","PCT_S_MUST_NOT_CONTAIN_MSG":"%s must not contain '=
&'","PCT_S_IS_REQUIRED_MSG":"%s is required","PLEASE_ENTER_SINGLE_EMAIL_=
ADDRESS_MSG":"Please enter a single email address.","PCT_S_IS_INVALID_MS=
G":"%s is invalid","PCT_S_IS_TOO_LONG_MSG":"%s is too long","NOTIFY_REQU=
EST_FAILED_HDG":"Notification Request Submission Failed","NOTIFY_SUBMIT_=
FAILED_MSG":"An internal error prevented your request from being submitt=
ed successfully.","NOTIFY_REQUEST_SUCCESS_HDG":"Notification Request Sub=
mitted Successfully","NOTIFY_SUBMIT_SUCCESS_MSG":"Your request has been =
successfully submitted.","NOTIFY_REQUEST_RENEWAL_HDG":"Notification Requ=
est Renewal Succeeded","NOTIFY_RENEWAL_SUCCESS_MSG":"Your existing notif=
ication request has been successfully renewed.","YOUR_ANSWER_NOTIFICATIO=
N_LBL":"Your answer notification","YOU_ARE_ALREADY_NOTIFIED_ANSWER_MSG":=
"You are already notified about this answer.","ANSWERFEEDBACK2_DIALOG_MI=
SSING_REQD_MSG":"AnswerFeedback2 dialogue is missing required element %s=
.","PCT_D_OF_PCT_D_SELECTED_LBL":"%d of %d selected","THANKS_FOR_YOUR_FE=
EDBACK_MSG":"Thanks for your feedback.","USERNAME_FIELD_CONTAIN_SPACES_M=
SG":"Email field cannot contain spaces.","USERNAME_FIELD_CONT_QUOTE_CHAR=
S_MSG":"Email field cannot contain quotation characters.","USERNAME_FIEL=
D_CONTAIN_THAN_CHARS_MSG":"Email field cannot contain \u2019>\u2019 or \=
u2019<\u2019 characters.","SITEFEEDBACK2_DIALOG_MISSING_REQD_MSG":"SiteF=
eedback2 dialogue is missing required element %s.","FIELD_IS_NOT_A_VALID=
_EMAIL_ADDRESS_MSG":"field is not a valid email address."};});
RightNow.Interface.setConfigbase(function(){return {"DE_VALID_EMAIL_PATT=
ERN":"^(([-!#$%&'*+\/=3D?^~`{|}\\w]+(\\.[-!#$%&'*+\/=3D?^~`{|}\\w]+)*)|(=
\"[^\"]+\"))@[0-9A-Za-z]+(-[0-9A-Za-z]+)*(\\.[0-9A-Za-z]+(-[0-9A-Za-z]+)=
*)+$"};});
RNT.MessageBase.WARN =3D 'Warning';RNT.MessageBase.INFO =3D 'Information=
';RNT.MessageBase.HELP =3D 'Help';RNT.Widgets.parm_segment =3D '5';RNT.M=
essageBase.EMAIL_REGEX =3D new RegExp('^(([-!#$%&\'*+/=3D?^~`{|}\\w]+(\\=
.[-!#$%&\'*+/=3D?^~`{|}\\w]+)*)|(\"[^\"]+\"))@[0-9A-Za-z]+(-[0-9A-Za-z]+=
)*(\\.[0-9A-Za-z]+(-[0-9A-Za-z]+)*)+$$', 'i');RNT.MessageBase.INVALID_EM=
AIL_FIELD=3D'field is not a valid email address.';RNT.MessageBase.REQUES=
T_ERROR=3D'There was an error with the request and the action could not =
be completed.';RNT.MessageBase.OK=3D'OK';RNT.ASSETS_ROOT=3D"/euf/assets/=
";RNT.Profile.kw =3D '';RNT.Profile.st =3D '';RNT.Profile.p =3D '';RNT.P=
rofile.c =3D '';YAHOO.util.Event.onDOMReady(function(){var evt_dispatch =
=3D new Events(); evt_dispatch.init('/session/L2F2LzEvc2lkLzJRN0Z6SEZr')=
;});
/* ]]> */
</script>
<form class=3D'rn_Hidden' action=3D''><input id=3D'rn_History_Field' typ=
e=3D'hidden'/></form>


    <!-- Add HTML/PHP view code here -->
	<div id=3D"page_content">
		<div id=3D"page_header">
			<div id=3D"logo"></div>
			<div id=3D"slogan">Empowering people</div>
			<div id=3D"header_sub">
	     		<span class=3D" value"><a href=3D"http://www.acer.com/worldwide"=
 title=3D"">United Kingdom</a></span>
		    </div>
		</div>
		<div id=3D"bar">
			<div id=3D"menu">
				<ul>
                    <li class=3D"first_item">
                            <img src=3D"images/acer/home.gif" alt=3D"" s=
tyle=3D"padding-right:5px;cursor:pointer;" =

onClick=3D"window.open('http://www.acer.co.uk')"/>&nbsp;</li>
					<li class=3D"item">
                        <a href=3D"http://www.acer.co.uk/acer/products.d=
o">Products</a>
                    </li>
                    <li class=3D"item">
                        <a href=3D"http://www.acer.co.uk/acer/service.do=
">Service & Support</a>
                    </li>
                    <li class=3D"item">
                        <a href=3D"http://www.acer.co.uk/acer/buy.do">Wh=
ere to buy</a>
                    </li>
				</ul>
			</div>
			<div id=3D"bar_sub"><a href=3D"http://registration.acer.com">Product =
Registration</a></div>
		</div>
		<div id=3D"page_main" class=3D"page_content_main">
<div id=3D"rn_Container" >
    <div id=3D"rn_SkipNav"><a href=3D"#rn_MainContent">Skip Navigation</=
a></div>
    <div id=3D"rn_Header">
    <noscript><h1>Scripting must be enabled to use this site.</h1></nosc=
ript>
        =

    </div>
        =

    =

    <div id=3D"rn_Navigation">
    	<div style=3D"display:inline-block;">
    		<span class=3D"rn_MainTitle"><a href=3D"/app/home/"  class=3D"noIn=
tercept">Online Support</a>
</span>
    	</div>
    <!--Login Changes -->
      		<div id=3D"rn_LoginDialog2_4" class=3D"rn_LoginDialog2 rn_Hidden=
">
    <div id=3D"rn_account_create" class=3D"rn_CreateAccountInfo1">
    	<h2>Not registered yet?</h2>
      <ul>
          <li class=3D"rn_Communicate">Allow us to serve you better by e=
nabling a faster line of communication.</li>
          <li class=3D"rn_Feedback">Get notifications when information y=
ou care about is updated.</li>
          <li class=3D"rn_Customize">Customise your support interests.</=
li>
      </ul><br/>
    	Don't have an account?<br/>
<a href=3D"/app/utils/create_account">Sign up today!</a>
    </div>
    <div id=3D"rn_LoginDialog2_4_Content" class=3D"existing_account">
        <div id=3D"rn_LoginDialog2_4_ErrorMessage"></div>
        <form method=3D"post" action=3D"" id=3D"rn_LoginDialog2_4_Form">=

            <label for=3D"rn_LoginDialog2_4_Username">Email</label>
            <input id=3D"rn_LoginDialog2_4_Username" type=3D"text" maxle=
ngth=3D"80" value=3D"" />
                    <label for=3D"rn_LoginDialog2_4_Password">Password</=
label>
            <input id=3D"rn_LoginDialog2_4_Password" type=3D"password" m=
axlength=3D"20" value=3D'' />
                </form>
        <span><a href=3D"/app/utils/account_assistance/session/L2F2LzEvc=
2lkLzJRN0Z6SEZr" >Forgot your email or password?</a>
        </span>
    </div>
</div>
        <!--Ends here -->
    =

            <div id=3D"rn_NavigationBar" style=3D"display:inline-block;"=
>
            <ul>
                                <li><span id=3D"rn_FirstTab_6" class=3D"=
rn_NavigationTab2 ">
    <a class=3D"rn_SelectedTab" href=3D"/app/answers/list/session/L2F2Lz=
Evc2lkLzJRN0Z6SEZr"  target=3D"_self">
        <span>Answers</span>
    </a>
</span>
</li>
                <li>
                	                	<span id=3D"rn_LoginTab_7" class=3D"rn=
_NavigationTab2 ">
<a class=3D"" id=3D"rn_LoginLink"  href=3D"javascript:void(0);/session/L=
2F2LzEvc2lkLzJRN0Z6SEZr"  target=3D"_self">
        <span>Ask a Question</span>
    </a>
</span>
                	                </li>
<!--                <li><rn:widget path=3D"navigation/NavigationTab2" la=
bel_tab=3D"Chat" link=3D"/app/chat/chat_launch" pages=3D"chat/chat_launc=
h,chat/chat_landing"/></li>-->
                <li >
                	                	<span id=3D"rn_LoginTab_8" class=3D"rn=
_NavigationTab2 ">
<a class=3D"" id=3D"rn_LoginLink2"  href=3D"javascript:void(0);/session/=
L2F2LzEvc2lkLzJRN0Z6SEZr"  target=3D"_self">
        <span>Login</span>
    </a>
</span>
                	<!--<a href=3D"javascript:void(0);" id=3D"rn_LoginLink"=
>My Account</a>-->
                	                </li>
            </ul>
        </div>
        </div>
    <div id=3D"rn_Body">
        <div id=3D"rn_MainColumn">
            <a name=3D"rn_MainContent" id=3D"rn_MainContent"></a>
<div id=3D"rn_PageTitle" class=3D"rn_AnswerDetail">
	<a class=3D"rn_link2" href=3D"javascript:history.back()" class=3D"noInt=
ercept">< back to search results</a>
	|
	<a class=3D"rn_link2 noIntercept" href=3D"/app/answers/list/" class=3D"=
noIntercept">New Search</a>
</div>
<div id=3D"rn_PageContent" class=3D"rn_AnswerDetail">
			<div class=3D"rn_AnswerDocId">
			<span>Document ID:
 3009</span>
		</div>
    <div id=3D"rn_DetailTools">
        <div id=3D"rn_SocialBookmarkLink_12" class=3D"rn_SocialBookmarkL=
ink">
    <a id=3D"rn_SocialBookmarkLink_12_Link" href=3D"javascript:void(0);"=
 title=3D"Share this page on social networks">
                <img src=3D"images/Share.png" alt=3D""/>
                <span>Share</span>
    </a>
    <div id=3D"rn_SocialBookmarkLink_12_Panel" class=3D"rn_Panel rn_Hidd=
en">
        <ul>
                    <li class=3D"rn_Link1">
                <a href=3D" http://del.icio.us/post?url=3Dhttp://acer--u=
k.custhelp.com/app/answers/detail/a_id/3009&amp;title=3DHotkeys And Key =
Combinations On Aspire One Netbooks" target=3D"_blank" title=3D" Post to=
 Delicious ">Delicious </a>
            </li>
                    <li class=3D"rn_Link2">
                <a href=3D" http://digg.com/submit?url=3Dhttp://acer--uk=
.custhelp.com/app/answers/detail/a_id/3009&amp;title=3DHotkeys And Key C=
ombinations On Aspire One Netbooks" target=3D"_blank" title=3D" Post to =
Digg ">
         Digg </a>
            </li>
                    <li class=3D"rn_Link3">
                <a href=3D" http://facebook.com/sharer.php?u=3Dhttp://ac=
er--uk.custhelp.com/app/answers/detail/a_id/3009" target=3D"_blank" titl=
e=3D" Post to Facebook ">
         Facebook </a>
            </li>
                    <li class=3D"rn_Link4">
                <a href=3D" http://reddit.com/submit?url=3Dhttp://acer--=
uk.custhelp.com/app/answers/detail/a_id/3009&amp;title=3DHotkeys And Key=
 Combinations On Aspire One Netbooks" target=3D"_blank" title=3D" Post t=
o Reddit ">
         Reddit </a>
            </li>
                    <li class=3D"rn_Link5">
                <a href=3D" http://stumbleupon.com/submit?url=3Dhttp://a=
cer--uk.custhelp.com/app/answers/detail/a_id/3009&amp;title=3DHotkeys An=
d Key Combinations On Aspire One Netbooks" target=3D"_blank" title=3D" P=
ost to StumbleUpon ">
         StumbleUpon </a>
            </li>
                    <li class=3D"rn_Link6">
                <a href=3D" http://twitter.com/home?status=3DHotkeys And=
 Key Combinations On Aspire One Netbooks http://acer--uk.custhelp.com/ap=
p/answers/detail/a_id/3009" target=3D"_blank" title=3D" Tweet this ">
         Twitter </a>
            </li>
                </ul>
    </div>
</div>
        <span id=3D"rn_PrintPageLink_13" class=3D"rn_PrintPageLink">
    <a onclick=3D"window.print(); return false;" href=3D"javascript:void=
(0);" title=3D"Print this page" >
                    <img src=3D"images/Print.png" alt=3D""/>
                <span>Print</span>
    </a>
</span>
        <div id=3D"rn_EmailAnswerLink_14" class=3D"rn_EmailAnswerLink">
    <a id=3D"rn_EmailAnswerLink_14_Link" href=3D"javascript:void(0);" ti=
tle=3D"Email a link to this answer" >
                    <img src=3D"images/Email.png" alt=3D""/>
                <span>Email this page</span>
    </a>
        <div id=3D"rn_EmailAnswerLink_14_EmailAnswerLinkForm" class=3D"r=
n_EmailAnswerLinkForm rn_Hidden">
        <div id=3D"rn_EmailAnswerLink_14_ErrorMessage"></div>
        <label id=3D"rn_EmailAnswerLink_14_LabelRecipientEmail" for=3D"r=
n_EmailAnswerLink_14_InputRecipientEmail">
            Recipient Email            <span class=3D"rn_Required"> *</s=
pan><span class=3D"rn_ScreenReaderOnly">Required</span>
        </label>
        <input id=3D"rn_EmailAnswerLink_14_InputRecipientEmail" type=3D"=
text"  value=3D"" />
                    <label id=3D"rn_EmailAnswerLink_14_LabelSenderEmail"=
 for=3D"rn_EmailAnswerLink_14_InputSenderEmail">
                Your Email                <span class=3D"rn_Required"> *=
</span><span class=3D"rn_ScreenReaderOnly">Required</span>
            </label>
            <input id=3D"rn_EmailAnswerLink_14_InputSenderEmail" type=3D=
"text"  value=3D"" />
            <label id=3D"rn_EmailAnswerLink_14_LabelSenderName" for=3D"r=
n_EmailAnswerLink_14_InputSenderName">
                 Your Name                 <span class=3D"rn_Required"> =
*</span><span class=3D"rn_ScreenReaderOnly">Required</span>
            </label>
            <input id=3D"rn_EmailAnswerLink_14_InputSenderName" type=3D"=
text"   value=3D'' />
            </div>
</div>
        <div id=3D"rn_AnswerNotificationIcon3_15" class=3D"rn_AnswerNoti=
ficationIcon3">
    <a href=3D"javascript:void(0);" id=3D"rn_AnswerNotificationIcon3_15_=
Trigger" title=3D"Notify me by email if this answer is updated" >
            <img src=3D"images/Notification.png" alt=3D""/>
               <span>Notify Me</span>
        </a>
            <div id=3D"rn_LoginDialog2_16" class=3D"rn_LoginDialog2 rn_H=
idden">
    <div id=3D"rn_account_create" class=3D"rn_CreateAccountInfo1">
    	<h2>Not registered yet?</h2>
      <ul>
          <li class=3D"rn_Communicate">Allow us to serve you better by e=
nabling a faster line of communication.</li>
          <li class=3D"rn_Feedback">Get notifications when information y=
ou care about is updated.</li>
          <li class=3D"rn_Customize">Customise your support interests.</=
li>
      </ul><br/>
    	Don't have an account?<br/>
<a href=3D"/app/utils/create_account">Sign up today!</a>
    </div>
    <div id=3D"rn_LoginDialog2_16_Content" class=3D"existing_account">
        <div id=3D"rn_LoginDialog2_16_ErrorMessage"></div>
        <form method=3D"post" action=3D"" id=3D"rn_LoginDialog2_16_Form"=
>
            <label for=3D"rn_LoginDialog2_16_Username">Email</label>
            <input id=3D"rn_LoginDialog2_16_Username" type=3D"text" maxl=
ength=3D"80" value=3D"" />
                    <label for=3D"rn_LoginDialog2_16_Password">Password<=
/label>
            <input id=3D"rn_LoginDialog2_16_Password" type=3D"password" =
maxlength=3D"20" value=3D'' />
                </form>
        <span><a href=3D"/app/utils/account_assistance/session/L2F2LzEvc=
2lkLzJRN0Z6SEZr" >Forgot your email or password?</a>
        </span>
    </div>
</div>
    </div>
    </div>
        <div style=3D"width:100%">
    <h1 id=3D"rn_Summary">Hotkeys And Key Combinations On Aspire One Net=
books</h1>
  </div>
    <span style=3D"font-weight:bold">How do I use the hotkeys and key co=
mbinations on my Aspire One?</span>
    <div id=3D"rn_AnswerText">
        <p>The computer uses hotkeys or key combinations to access most =
of the computer's controls like screen brightness and volume output. To =
use a hotkey to perform a specific function, press and hold down the Fn =
key, press the system key with the desired image on it, and then release=
 both keys. To cancel the function, repeat the sequence.</p>
<p>&#160;</p>
<p>For Aspire One models: AOA-150, AOD-110, AOD-150, AO531h:</p>
<table bordercolor=3D"black" cellspacing=3D"0" cellpadding=3D"5" width=3D=
"100%" border=3D"1">
<tbody>
<tr>
<th align=3D"center"><b>Hotkey</b></th>
<th align=3D"center"><b>Icon</b></th>
<th align=3D"center"><b>Function</b></th>
<th align=3D"center"><b>Description</b></th>
</tr>
<tr>
<td>Fn + F1</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_hotKeyHelp.png" /></td>
<td>Hot key help</td>
<td>Displays the hot key help file.</td>
</tr>
<tr>
<td>Fn + F2</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_systemProperties.png" /></td>
<td>System Properties</td>
<td>Launch System Properties.</td>
</tr>
<tr>
<td>Fn + F3</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_F3_PowerOptions.png" /></td>
<td>Power Options</td>
<td>Launch Power Options.</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p>For Aspire One models: AO751h:</p>
<table bordercolor=3D"black" cellspacing=3D"0" cellpadding=3D"5" width=3D=
"100%" border=3D"1">
<tbody>
<tr>
<th align=3D"center"><b>Hotkey</b></th>
<th align=3D"center"><b>Icon</b></th>
<th align=3D"center"><b>Function</b></th>
<th align=3D"center"><b>Description</b></th>
</tr>
<tr>
<td>Fn + F1</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_F3_PowerOptions.png" /></td>
<td>Power Options</td>
<td>Launch Power Options.</td>
</tr>
<tr>
<td>Fn + F2</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_systemProperties.png" /></td>
<td>System Properties</td>
<td>Launch System Properties.</td>
</tr>
<tr>
<td>Fn + F3</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_bluetooth.png" /></td>
<td>Bluetooth toggle</td>
<td>Enables or disables the Bluetooth functionality, if equipped.</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p><strong>All Aspire One models:</strong></p>
<table bordercolor=3D"black" cellspacing=3D"0" cellpadding=3D"5" width=3D=
"100%" border=3D"1">
<tbody>
<tr>
<th align=3D"center"><b>Hotkey</b></th>
<th align=3D"center"><b>Icon</b></th>
<th align=3D"center"><b>Function</b></th>
<th align=3D"center"><b>Description</b></th>
</tr>
<tr>
<td>Fn + F4</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_F4_zz.gif" /></td>
<td>Sleep</td>
<td>Puts the computer in Sleep mode.</td>
</tr>
<tr>
<td>Fn + F5</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_F5_displaytoggle_nobutton.gif" /></td>
<td>Display toggle</td>
<td>Switches display output between the display screen, external monitor=
 (if connected) and both.</td>
</tr>
<tr>
<td>Fn + F6</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_F6_brighttoggle_nobutton.gif" /></td>
<td>Screen blank</td>
<td>Switches off the display backlight. Press any key to enable the back=
light again.</td>
</tr>
<tr>
<td>Fn + F7</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/icon_touchpad.png" /></td>
<td>Touchpad toggle</td>
<td>Turns the internal touchpad on and off.</td>
</tr>
<tr>
<td>Fn + F8</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/F8.gif" /></td>
<td>Speaker toggle</td>
<td>Turns the speakers on and off.</td>
</tr>
<tr>
<td>Fn + F11</td>
<td>Num Lk</td>
<td>Num Lock</td>
<td>Enable or disable the Number Lock function.</td>
</tr>
<tr>
<td>Fn + F12</td>
<td>Scr Lk</td>
<td>Scoll Lock</td>
<td>Enable or disable the Scroll Lock function.</td>
</tr>
<tr>
<td>Fn + Right Arrow</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/FRightArrow.gif" /></td>
<td>Brightness up</td>
<td>Increases the screen brightness.</td>
</tr>
<tr>
<td>Fn + Left Arrow</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/FLeftArrow.gif" /></td>
<td>Brightness down</td>
<td>Decreases the screen brightness.</td>
</tr>
<tr>
<td>Fn + Up Arrow</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/FUpArrow.gif" /></td>
<td>Volume up</td>
<td>Increases the sound volume.</td>
</tr>
<tr>
<td>Fn + Down Arrow</td>
<td align=3D"center"><img alt=3D"Icon" src=3D"http://support.gateway.com=
/s/images/FDnArrow.gif" /></td>
<td>Volume down</td>
<td>Decreases the sound volume.</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p><b>Note</b>: Bluetooth toggle will only function if the netbook is eq=
uipped with an internal Bluetooth adapter.</p>    </div>
    <div id=3D"rn_FileAttach">
        =

    </div>
    <div id=3D"rn_AnswerFeedback2_20" class=3D"rn_AnswerFeedback2">
        <div id=3D"rn_AnswerFeedback2_20_AnswerFeedback2Control" class=3D=
"rn_AnswerFeedback2Control">
                    <div class=3D"rn_Title">Was this answer helpful?</di=
v>
                        <div id=3D"rn_AnswerFeedback2_20_RatingButtons">=

          <button id=3D"rn_AnswerFeedback2_20_RatingYesButton">Yes</butt=
on>
          <button id=3D"rn_AnswerFeedback2_20_RatingNoButton">No</button=
>
            <span id=3D"rn_AnswerFeedback2_20_ThanksLabel" class=3D"rn_T=
hanksLabel">&nbsp;</span>
        </div>
            </div>
        <div id=3D"rn_AnswerFeedback2_20_AnswerFeedback2Form" class=3D"r=
n_AnswerFeedback2Form rn_Hidden">
        <div class=3D"rn_DialogSubtitle">Please tell us how we can make =
this answer more useful.</div>
        <div id=3D"rn_AnswerFeedback2_20_ErrorMessage"></div>
        <label for=3D"rn_AnswerFeedback2_20_FeedbackTextarea">Your Feedb=
ack<span class=3D"rn_ScreenReaderOnly">Required</span></label>
        <textarea id=3D"rn_AnswerFeedback2_20_FeedbackTextarea" class=3D=
"rn_Textarea" rows=3D"4" cols=3D"60" ></textarea>
        <!--            <label for=3D"rn_AnswerFeedback2_20_EmailInput">=
Email<span class=3D"rn_ScreenReaderOnly">Required</span></label>
            <input id=3D"rn_AnswerFeedback2_20_EmailInput"  class=3D"rn_=
EmailField" type=3D"text"  value=3D""></input>
        -->
    </div>
    </div>
    <br/>
    <div id=3D"rn_RelatedAnswers2_21" class=3D"rn_RelatedAnswers2">
    <h2>Answers others found helpful</h2>
    <ul>
            <li><a href=3D"/app/answers/detail/a_id/3469/related/1/sessi=
on/L2F2LzEvc2lkLzJRN0Z6SEZr" target=3D"_self" > On Screen Display Not Wo=
rking</a></li>
            <li><a href=3D"/app/answers/detail/a_id/3422/related/1/sessi=
on/L2F2LzEvc2lkLzJRN0Z6SEZr" target=3D"_self" > Touchpad not responding<=
/a></li>
            <li><a href=3D"/app/answers/detail/a_id/3448/related/1/sessi=
on/L2F2LzEvc2lkLzJRN0Z6SEZr" target=3D"_self" > StickyKeys feature in Wi=
ndows XP</a></li>
            <li><a href=3D"/app/answers/detail/a_id/454/related/1/sessio=
n/L2F2LzEvc2lkLzJRN0Z6SEZr" target=3D"_self" > System does not detect wi=
reless network</a></li>
            <li><a href=3D"/app/answers/detail/a_id/3024/related/1/sessi=
on/L2F2LzEvc2lkLzJRN0Z6SEZr" target=3D"_self" > Enable or disable NumLoc=
k on a netbook</a></li>
        </ul>
</div>
    </div>

        </div>
    </div>

    <div id=3D"rn_Footer">
    </div>
</div>
    <!-- Add HTML/PHP view code here -->
		</div>
		<div id=3D"page_footer">
		=

		<!--div>
			<ul>
							<li class=3D"first_item">
								<a href=3D"about_us.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att1=3D=
25&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D453&amp;ctx1.att21k=3D=
1&amp;CRC=3D3529792491">About Acer</a>
							</li>
							<li class=3D"item">
								<a href=3D"contact_us.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att=
1=3D25&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D453&amp;ctx1.att2=
1k=3D1&amp;CRC=3D3529792491">Contact us</a>
							</li>
							<li class=3D"item">
								<a href=3D"news.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att1=3D25=
&amp;link=3Dpage13.link&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D=
453&amp;ctx1.att21k=3D1&amp;CRC=3D2195927820">News</a>
							</li>
							<li class=3D"item">
								<a href=3D"partner.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att1=3D=
25&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D453&amp;ctx1.att21k=3D=
1&amp;CRC=3D3529792491">Partner</a>
							</li>
							<li class=3D"item">
								<a href=3D"privacy.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att1=3D=
25&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D453&amp;ctx1.att21k=3D=
1&amp;CRC=3D3529792491">Privacy</a>
							</li>
							<li class=3D"item">
								<a href=3D"disclaimer.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att=
1=3D25&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D453&amp;ctx1.att2=
1k=3D1&amp;CRC=3D3529792491">Disclaimer</a>
							</li>
							<li class=3D"item">
								<a href=3D"hot_buys.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att1=3D=
25&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D453&amp;ctx1.att21k=3D=
1&amp;CRC=3D3529792491">Hot buys</a>
							</li>
							<li class=3D"item">
								<a href=3D"pricelist.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att1=
=3D25&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D453&amp;ctx1.att21=
k=3D1&amp;CRC=3D3529792491">Pricing &amp; Upgrades</a>
							</li>
							<li class=3D"item">
								<a href=3D"technology.do?LanguageISOCtxParam=3Den&amp;ctx2.c2att=
1=3D25&amp;CountryISOCtxParam=3DUS&amp;ctx1g.c2att92=3D453&amp;ctx1.att2=
1k=3D1&amp;CRC=3D3529792491">Acer Technology</a>
							</li>
      				<li class=3D"item"> <a href=3D"http://www.acer-group.com">Acer=
 Group</a> </li>
              					<li class=3D"item">				=

    					<a href=3D"http://customercare.acer-euro.com/customercare/AcerU=
pdate.aspx?CID=3DUS&amp;LID=3DENG&amp;IType=3DJM31" target=3D"_blank">Re=
call</a>
    				</li>
              		=

			</ul>
			</div-->
			<div id=3D"copyright">Copyright&copy; 2010 Acer Inc. All Rights Reser=
ved | =

            <a href=3D"http://us.acer.com/acer-v2/privacy.do;jsessionid=3D=
2F4ECFEC95214FE918D50A906C70015E.public_a_us003?LanguageISOCtxParam=3Den=
&ctx2.c2att1=3D25&CountryISOCtxParam=3DUS&ctx1g.c2att92=3D453&ctx1.att21=
k=3D1&CRC=3D3529792491"> Privacy</a></div>
		</div>		=

	</div>
	<!-- GOOGLE --> =

	<script type=3D"text/javascript"> =

    var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? "ht=
tps://ssl." : "http://www.");
    document.write(unescape("%3Cscript src=3D'" + gaJsHost + "google-ana=
lytics.com/ga.js' type=3D'text/javascript'%3E%3C/script%3E"));
    </script> =

    <script type=3D"text/javascript"> =

    try {
    var pageTracker =3D _gat._getTracker("UA-490315-25");
    pageTracker._trackPageview();
    } catch(err) {}</script> =

    <!-- END GOOGLE -->
<script type=3D"text/javascript">YAHOO.util.Event.onDOMReady(function(){=

var W =3D RightNow.Widget,
c =3D 'createWidgetInstance';
W[c]({"i":{"c":"LoginDialog2","n":"LoginDialog2_4","w":4},"a":{"tabindex=
":"","trigger_element":"rn_LoginLink,rn_LoginLink2,rn_LoginLink3","label=
_username":"Email","label_password":"Password","label_login_button":"Log=
 In","label_cancel_button":"Cancel","label_dialog_title":"Please log in =
to continue","label_assistance":"Forgot your email or password?","disabl=
e_password":false,"append_to_url":"","redirect_url":"\/app\/ask,\/app\/a=
ccount\/overview,\/app\/ask","assistance_url":"\/app\/utils\/account_ass=
istance"},"j":[]},'LoginDialog2_4','custom/login/LoginDialog2','LoginDia=
log2','4');
W[c]({"i":{"c":"FirstTab","n":"FirstTab_6","w":6},"a":{"tabindex":"","la=
bel_tab":"Answers","link":"\/app\/answers\/list\/session\/L2F2LzEvc2lkLz=
JRN0Z6SEZr","pages":["answers\/list","answers\/detail","answers\/websear=
ch_list"],"subpages":"","css_class":"rn_SelectedTab","target":"_self","e=
xternal":false,"searches_done":0},"j":[]},'FirstTab_6','custom/navigatio=
n/FirstTab','FirstTab','6');
W[c]({"i":{"c":"SocialBookmarkLink","n":"SocialBookmarkLink_12","w":12},=
"a":{"tabindex":"","icon_path":"images\/Share.png","label_icon_alt":"","=
label_link":"Share","label_tooltip":"Share this page on social networks"=
,"sites":"Delicious > Post to Delicious > http:\/\/del.icio.us\/post?url=
=3D|URL|&amp;title=3D|TITLE|,\n         Digg > Post to Digg > http:\/\/d=
igg.com\/submit?url=3D|URL|&amp;title=3D|TITLE|,\n         Facebook > Po=
st to Facebook > http:\/\/facebook.com\/sharer.php?u=3D|URL|,\n         =
Reddit > Post to Reddit > http:\/\/reddit.com\/submit?url=3D|URL|&amp;ti=
tle=3D|TITLE|,\n         StumbleUpon > Post to StumbleUpon > http:\/\/st=
umbleupon.com\/submit?url=3D|URL|&amp;title=3D|TITLE|,\n         Twitter=
 > Tweet this > http:\/\/twitter.com\/home?status=3D|TITLE| |URL|"},"j":=
[]},'SocialBookmarkLink_12','standard/utils/SocialBookmarkLink','SocialB=
ookmarkLink','12');
W[c]({"i":{"c":"EmailAnswerLink","n":"EmailAnswerLink_14","w":14},"a":{"=
tabindex":"","label_link":"Email this page","label_dialog_title":"Email =
Answer","label_tooltip":"Email a link to this answer","icon_path":"image=
s\/Email.png","label_icon_alt":"","label_to":"Recipient Email","label_se=
nder_name":"Your Name","label_sender_email":"Your Email","label_send_but=
ton":"Send Email","label_cancel_button":"Cancel","label_email_sent":"Ema=
il has been sent."},"j":{"answerID":"3009","emailAnswerToken":"ap3_k2iZa=
JlwmXiZdJl_mVKZTplCmVyZUAf0B~A5gBsVQQcpnw!!","idProfile":false,"senderEm=
ail":""}},'EmailAnswerLink_14','standard/utils/EmailAnswerLink','EmailAn=
swerLink','14');
W[c]({"i":{"c":"AnswerNotificationIcon3","n":"AnswerNotificationIcon3_15=
","w":15},"a":{"tabindex":"","label_link":"Notify Me","label_tooltip":"N=
otify me by email if this answer is updated","icon_path":"images\/Notifi=
cation.png","label_icon_alt":"","label_notification_link":"You may also =
request notification of new and updated answers by product and category =
here","notifications_url":"\/app\/account\/notif\/list\/session\/L2F2LzE=
vc2lkLzJRN0Z6SEZr"},"j":{"answerID":"3009","statusNewNotification":-3,"s=
tatusAlreadyRegistered":0,"statusCreateSucceeded":1,"statusRenewalSucced=
ed":2,"statusNoRenewal":3,"loggedIn":false,"autoOpen":null}},'AnswerNoti=
ficationIcon3_15','standard/notifications/AnswerNotificationIcon3','Answ=
erNotificationIcon3','15');
W[c]({"i":{"c":"LoginDialog2","n":"LoginDialog2_16","w":16},"a":{"tabind=
ex":"","trigger_element":"rn_AnswerNotificationIcon3_15_Trigger","label_=
username":"Email","label_password":"Password","label_login_button":"Log =
In","label_cancel_button":"Cancel","label_dialog_title":"Please log in t=
o continue","label_assistance":"Forgot your email or password?","disable=
_password":false,"append_to_url":"\/notif\/1","redirect_url":"","assista=
nce_url":"\/app\/utils\/account_assistance","label_window_title":"Please=
 log in to get a notification"},"j":[]},'LoginDialog2_16','custom/login/=
LoginDialog2','LoginDialog2','16');
W[c]({"i":{"c":"AnswerFeedback2","n":"AnswerFeedback2_20","w":20},"a":{"=
tabindex":"","label_title":"Was this answer helpful?","label_accessible_=
option_description":"Rate answer %d of %d","label_dialog_title":"Rating =
submitted","options_count":2,"options_descending":false,"label_yes_butto=
n":"Yes","label_no_button":"No","feedback_page_url":"","dialog_threshold=
":1,"label_feedback_submit":"Thanks for your feedback.","label_email_add=
ress":"Email","label_comment_box":"Your Feedback","label_send_button":"S=
ubmit","label_cancel_button":"Cancel","show_star_view":"true"},"j":{"but=
tonView":true,"summary":"Hotkeys And Key Combinations On Aspire One Netb=
ooks","answerID":"3009","isProfile":false,"email":""}},'AnswerFeedback2_=
20','custom/feedback/AnswerFeedback2','AnswerFeedback2','20');
RightNow.Url.transformLinks();});
</script>
</body>

</html>

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=standard1316468885.themes.standard.SITE.css
Content-Type: text/css; charset=utf-8; name=standard1316468885.themes.standard.SITE.css
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/templates/standard1316468885.themes.standard.SITE.css
Content-Transfer-Encoding: 8bit

@charset "utf-8";body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td{margin: 0px;padding: 0px;}
body{background: #fff none;font-family: 'Verdana', 'Arial', 'Garamond', sans-serif;text-align: left;font-size: 12px;color: #000;}
h1, h2, h3, h4, h5, h6{font-size: 100%;font-weight: bold;}
h1{line-height: 1.8em;font-size: 2.083em;}
h2{line-height: 1.4em;font-size: 1.333em;}
h3{line-height: 1.3em;font-size: 1.167em;}
h4{line-height: 1.3em;font-size: 1em;}
h5{line-height: 1em;font-size: 0.917em;}
h6{line-height: 0.8em;font-size: 0.833em;}
a{text-decoration: none;}
a:link, a:visited, a:focus, a:active, a:hover{text-decoration: underline;}
a:hover, a:hover *{cursor: pointer;}
ul, ol, li, dl, dt, dd{list-style: none;}
p{margin-bottom: 1em;line-height: 1.4em;}
hr{margin: 10px 0px;}
strong{font-weight: bolder;}
blockquote{margin: 1em 3em;}
q:before, q:after{content: '';}
address, caption, cite, code, dfn, th, var{font-style: normal;font-weight: normal;}
abbr, acronym{border: none;font-variant: normal;}
sup{vertical-align: text-top;}
sub{vertical-align: text-bottom;}
table{border-collapse: collapse;border-spacing: 0px;}
caption, th{text-align: left;}
img, iframe, fieldset{border: none;}
input, textarea, select, legend{margin: 0px;padding: 2px;font-family: inherit;font-size: inherit;font-weight: inherit;}
legend{color: #000;}
body{background: #fff none;font-family: 'Helvetica', 'Arial', sans-serif;text-align: left;font-size: 12px;color: #000;}
html[lang="ja-JP"] body, html[lang="ja-JP"] input, html[lang="ja-JP"] select, html[lang="ja-JP"] textarea, html:lang(ja-JP) body, html:lang(ja-JP) input, html:lang(ja-JP) select, html:lang(ja-JP) textarea{font-family: 'Hiragino Kaku Gothic Pro', 'ãƒ’ãƒ©ã‚®ãƒŽè§’ã‚´ Pro W3', 'Meiryo', 'ãƒ¡ã‚¤ãƒªã‚ª', 'MS PGothic', 'MS Pã‚´ã‚·ãƒƒã‚¯', 'Helvetica', 'Arial', sans-serif;}
h1, h2, h3, h4, h5, h6{font-family: 'Helvetica', 'Arial', sans-serif;font-weight: bold;}
h1{font-weight: normal;}
h3{color: #2F2F2F;}
h4{color: #404040;}
h5{color: #505050;}
h6{color: #505050;}
a{text-decoration: none;color: #555;}
a:link{color: #00C;}
a:visited{color: #3C0D68;}
a:hover *{cursor: pointer;}
blockquote{margin: 10px 30px;}
table{border-collapse: separate;border-spacing: 0.3em;}
caption{text-align: left;line-height: 1.3em;font-size: 1em;font-weight: bold;color: #404040;}
fieldset{padding-left: 8px;}
legend{padding: 0px;visibility: hidden;font-size: 0px;}
fieldset legend{visibility: visible;font-size: 1em;color: #000;}
input, textarea, select{border: 1px solid #B1B1B1;font-family: 'Verdana', 'Arial', 'Garamond', sans-serif;}
input[type="text"], input[type="password"]{height: 18px;}
input[type="radio"], input[type="checkbox"]{border: none;}
input[type="text"]:focus, input[type="password"]:focus, textarea:focus, select:focus{background-color: #F8F8F8;border-color: #AAA;}
input[type="submit"][disabled], input[type="reset"][disabled], input[type="button"][disabled], button[disabled]{background-color:#304764;background-position: 0px -40px;border-color: #333;color: #DDD;}
input[type="submit"], input[type="reset"], input[type="button"], button{margin-right: 6px;border: 1px outset #304764;-moz-border-radius: 4px;-moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.5);-webkit-border-radius: 4px;-webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.5);padding: 6px 8px;*width: auto;*overflow: visible;background: #0E53A7 url('/euf/rightnow/optimized/1316468885/themes/standard/images/buttonGradientCombo.png') repeat-x 0px 0px;font-family: 'Helvetica', 'Arial', sans-serif;font-size: 12px;line-height: normal;text-decoration: none;text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.25);font-weight: bold;color: #fefefe;cursor: pointer;}
input[type="submit"]:focus, input[type="submit"]:hover, input[type="reset"]:focus, input[type="reset"]:hover, input[type="button"]:focus, input[type="button"]:hover, button:focus, button:hover{background-position: 0px -40px;border-color: #46494D;cursor: pointer;}
input[type="submit"]:focus, button:focus{outline :#000 dotted 1px\9}
#rn_Container{margin: 0px auto;overflow: visible;text-align: left;}
#rn_Logo{position: relative;float: left;margin-top: 4px;width: 32%;height: 70px;font-family: 'Lucida Sans Unicode', 'Lucida Grande', 'Garuda', sans-serif;letter-spacing: -0.8px;cursor: pointer;}
#rn_Logo a{left: 0px;bottom: 0px;text-decoration: none;line-height: 1em;font-weight: normal;font-size: 2.083em;color: #FFF;cursor: pointer;}
#rn_Logo a span.rn_LogoTitle{position: relative;top: 20px;cursor: pointer;}
#rn_Logo a span.rn_LogoTitleMinor{color: #DEDEDE;}
#rn_Logo a img{display: block;}
#rn_LoginStatus{text-align: right;font-size: 0.917em;}
#rn_LoginStatus a{text-decoration: none;font-weight: bold;}
#rn_Navigation{padding: 3px 10px 0px 0px;height: 31px;_height: 28px;background: transparent none;}
#rn_NavigationBar{float: left;height: 14px;}
#rn_NavigationBar ul li{float: left;}
#rn_Footer, #rn_Body{border-right: 1px solid #DDD;border-left: 1px solid #DDD;-moz-box-shadow: 3px 3px 3px #888;-webkit-box-shadow: 3px 3px 3px #888;padding: 0px 0px 20px 10px;background: #FFF;text-align: left;}
#rn_MainColumn{height: auto;min-height: auto;overflow: visible;background: #FFF;}
#rn_SideBar{float: right;margin-right: 12px;width: 23%;}
#rn_RightNowCredit{clear: both;margin: auto 20px;border-top: 1px solid #DDD;padding: 10px 0px;text-align: right;}
fieldset legend{color:#000;}
a:link{text-decoration: underline;color: #00c;}
a:visited{text-decoration: underline;color: #c0c;}
a:focus, a:active, a:hover{text-decoration: underline;color: #c00;}
#rn_SideBar .rn_Padding{padding: 16px 4px 2px 10px;overflow: auto;}
.rn_HelpResources{margin: 0px 4px 10px 4px;}
.rn_HelpResources .rn_Questions, .rn_HelpResources .rn_Community, .rn_HelpResources .rn_Contact, .rn_HelpResources .rn_Chat, .rn_HelpResources .rn_Feedback{margin-top: 10px;}
.rn_HelpResources a{display: block;padding: 10px 0px 0px 40px;height: 22px;min-height:22px;*height: auto;background: url('/euf/rightnow/optimized/1316468885/themes/standard/images/layout/contactDiscs.png') no-repeat 0px 0px;text-decoration: none;font-size: 1.25em;font-weight: bold;color: #464646;}
.rn_HelpResources a:hover{text-decoration: underline;}
.rn_HelpResources span{display: block;margin: 0px 0px 0px 44px;}
.rn_HelpResources .rn_Questions a{background-position: 0px -4px;}
.rn_HelpResources .rn_Contact a{background-position: 0px -48px;}
.rn_HelpResources .rn_Chat a{background-position: 0px -96px;}
.rn_HelpResources .rn_Feedback a{background-position: 0px -140px;}
.rn_HelpResources .rn_Community a{background-position: 0px -184px;}
#rn_SearchControls{display: inline-block;}
#rn_SearchControls{display: block;padding: 0px 0px 0px 12px;overflow: visible;}
#rn_SearchControls form fieldset{padding: 0px 0px 6px 0px;_margin-bottom:20px;}
#rn_SearchControls form input[type="submit"], #rn_SearchControls form input[type="image"]{margin: 1.3em 0px 0px 1.3em;padding: 0.4em 1em;}
#rn_SearchControls input{_margin:1.3em 0 0 1.3em;_padding:.4em 1em;}
#rn_SearchControls .rn_SearchInput{position: relative;float: left;width: 50%;}
#rn_SearchControls .rn_SearchInput a{display: block;float: right;margin-right: -8px;text-decoration: none;font-size: 0.917em;color:#FFFF00;}
#rn_SearchControls .rn_SearchInput label{position: absolute;bottom: 0px;}
#rn_SearchControls .rn_SearchInput input{_margin: 0px;padding: 4px 4px 3px;width: 100%;height: 1.3em;font-weight: bold;}
#rn_PageTitle{border-bottom: 1px solid #E2E2E0;padding: 16px 0px 0px;overflow: hidden;color: #25383C;}
#rn_PageTitle.rn_Home, #rn_PageTitle.rn_QuestionList, #rn_PageTitle.rn_AnswerList{border-bottom: 0px;overflow: visible;}
#rn_PageTitle.rn_Home{margin-bottom: 10px;}
#rn_PageContent{clear: both;}
#rn_PageContent form h2, .rn_HeadingBar{clear: both;margin: 20px 0px 10px 0px;border: 1px solid #CCC;padding: 4px;background: #F9F9F9 none;letter-spacing: -0.03em;color: #414142;}
form .rn_Column{margin-bottom: 10px;}
.rn_HintBox{border: 1px solid #DBDBDB;-webkit-border-top-right-radius: 10px;-webkit-border-bottom-right-radius: 10px;-moz-border-radius-bottomright: 10px;-moz-border-radius-topright: 10px;padding: 4px 16px 2px;background-color: #F2F2F2;color: #222;opacity: 0.7;}
.rn_Required, .rn_ErrorLabel{color: #C10000;}
.rn_ErrorField{background-color: #FEFDA0 !important;}
.rn_MessageBox{margin: 10px 0px;border: 1px solid #808080;padding: 6px;background-color: #FFFFE0;color: #900;font-size:13px;}
.rn_ErrorMessage{padding: 8px 6px 8px 40px !important;background: #FFFFE0 url('/euf/rightnow/optimized/1316468885/themes/standard/images/layout/important.png') no-repeat 0px 0px;}
.rn_ErrorMessage a{color: #900;}
.rn_InfoMessage{padding: 6px 6px 11px 40px !important;background: #FFFFE0 url('/euf/rightnow/optimized/1316468885/themes/standard/images/layout/info.png') no-repeat 0px 0px;}
.rn_Dialog{overflow: visible;}
.rn_Dialog ol, .rn_Dialog ul{padding: 0.4em 0px 0px 1.8em;}
.rn_Dialog ol li{list-style: decimal outside none;}
.rn_Dialog ul li{list-style: disc outside none;}
.rn_Module{clear: both;margin-bottom: 12px;border: 1px solid #CCC;overflow: hidden;background: #F7F7F7 none;padding-bottom: 8px;}
.rn_Module h3, .rn_Module h2{margin-bottom: 8px;border-bottom: 1px solid #CCC;padding: 4px;background: #EBEFF5 url('/euf/rightnow/optimized/1316468885/themes/standard/images/layout/whitePixel.png') repeat-x scroll 0px 0px;font-family: 'Lucida Sans Unicode', 'Lucida Grande', 'Garuda', sans-serif;font-weight: normal;}
.rn_Module button{margin:4px;}
.rn_FloatRight{float: right;}
.rn_FloatLeft{float: left;}
.rn_Padding{display: inline-block;}
.rn_Padding{display: block;padding: 10px;overflow: auto;}
.rn_ClearBoth{clear: both;}
.rn_Hidden{display: none;}
.rn_Highlight{text-decoration: inherit;font-style: normal;font-weight: bold;}
.rn_ColumnContainer{display: inline-block;}
.rn_ColumnContainer{display: block;overflow: auto;}
.rn_Column{width: 48%;}
.rn_LeftColumn{float: left;padding: 0px 4px 0px 0px;}
.rn_RightColumn{float: right;padding: 0px 0px 0px 4px;}
#rn_Summary{padding: 7px 0px 0px 0px;line-height: 1em;letter-spacing: -0.01em;}
#rn_AnswerInfo{margin: 6px 0px 20px 0px;color: #888;}
#rn_AnswerInfo div{display: inline;}
#rn_AnswerText{clear: both;padding: 5px 0px 15px 0px;line-height: 1.4em;}
#rn_FileAttach{padding-bottom: 1em;}
.rn_QuestionDetail ol, .rn_QuestionDetail ul, .rn_AnswerDetail ol, .rn_AnswerDetail ul{clear: both;margin-bottom: 1em;padding-left: 2em;}
.rn_QuestionDetail li, .rn_AnswerDetail li{margin: 4px;line-height: 1.4em;}
.rn_QuestionDetail ol ol, .rn_QuestionDetail ol ul, .rn_QuestionDetail ul ol, .rn_QuestionDetail ul ul, .rn_AnswerDetail ol ol, .rn_AnswerDetail ol ul, .rn_AnswerDetail ul ol, .rn_AnswerDetail ul ul{margin-bottom: 0px;}
.rn_QuestionDetail ol li, .rn_QuestionDetail ul li ol li, .rn_AnswerDetail ol li, .rn_AnswerDetail ul li ol li{list-style: decimal outside;}
.rn_QuestionDetail ol li ol li, .rn_AnswerDetail ol li ol li{list-style: lower-alpha outside;}
.rn_QuestionDetail ul li, .rn_AnswerDetail ul li{list-style: disc outside;}
.rn_QuestionDetail ul li ul li, .rn_QuestionDetail ol li ul li, .rn_AnswerDetail ul li ul li, .rn_AnswerDetail ol li ul li{list-style: circle outside;}
#rn_UpdateQuestion textarea{width: 98%;margin-top:4px;}
#rn_QuestionThread{margin: 4px;}
#rn_AdditionalInfo, #rn_DetailTools{border: 1px solid #BBB;background: #EEE url('/euf/rightnow/optimized/1316468885/themes/standard/images/layout/whitePixel.png') repeat-x 0px 0px;}
#rn_AdditionalInfo{margin: 1em;padding: 12px;width: 560px;overflow: hidden;}
#rn_DetailTools{margin-top: 2em;padding: 8px 0px;line-height: 1em;text-align: right;}
#rn_PageContent.rn_Home ol{display: inline;}
#rn_PageContent.rn_Home ol{display: block;overflow: hidden;}
#rn_PageContent.rn_Home ol li{float: left;margin: 0px;padding: 0px;width: 48%;}
#rn_PageContent.rn_Home ol li img{display:none;}
#rn_PageContent.rn_Home ol li a{font-size: 0.8em;}
#rn_PageContent.rn_Home .rn_AnswersLink{display: inline-block;margin: 10px 0px 10px 16px;font-size: 120%;font-weight: bold;}
.rn_Overview{padding: 12px 10px 2px;}
.rn_Overview h2{margin-top: 10px;border: 1px solid #DDD;background-color: #F9F9F9;}
.rn_Overview h2 a, .rn_Overview h2 b{display: block;margin: 4px;padding: 8px 0px 0px 40px;height: 26px;background: url('/euf/rightnow/optimized/1316468885/themes/standard/images/layout/accountOverview.png') no-repeat 0px 0px;outline: none;text-decoration: none;color: #505050;}
.rn_Overview a:focus, .rn_Overview a:hover{text-decoration: underline;}
.rn_Overview a.rn_Questions{background-position: 0px 2px;}
.rn_Overview a.rn_Profile{background-position: 2px -38px;}
.rn_Overview a.rn_Notifs{background-position: 0px -74px;}
.rn_Overview b.rn_Contracts{background-position: 0px -114px;}
.rn_Overview div.rn_Questions, .rn_Overview div.rn_Notifs, .rn_Overview div.rn_Profile, .rn_Overview div.rn_Contracts{margin: 10px 0px 40px 40px;}
.rn_QuestionList caption{line-height: 1.4em;font-size: 1.333em;font-weight: bold;}
.rn_CreateAccountInfo{border: 1px solid #ECECEC;padding: 8px;background: #FAF9F5 none;color: #454545;}
.rn_CreateAccountInfo h2{text-align: center;}
.rn_CreateAccountInfo button{display: block;margin: auto;width: 60%;}
.rn_CreateAccountInfo ul{margin-top: 10px;}
.rn_CreateAccountInfo li{margin: 4px 0px 16px;padding: 4px 0px 4px 40px;height: 32px;background: url('/euf/rightnow/optimized/1316468885/themes/standard/images/layout/createAccount.png') no-repeat 0px 0px;list-style-type: none;}
.rn_CreateAccountInfo li.rn_Communicate{background-position: 0px 0px;}
.rn_CreateAccountInfo li.rn_Feedback{background-position: 0px -46px;}
.rn_CreateAccountInfo li.rn_Customize{background-position: 0px -96px;}
#rn_SkipNav{position: absolute;left: 0px;top: -500px;overflow: hidden;background-color: #FFF;}
@media print{body{font-size: 1em;}
#rn_ChatDialogHeaderContainer, #rn_InChatButtonContainer, #rn_PreChatButtonContainer, #rn_ChatQueueSearchContainer, #rn_ChatLogo{display: none;}
#rn_ChatContainer{border: none;}
#rn_Navigation, #rn_DetailTools{display: none;}
.rn_AnswerDocId{float: none !important;}
}
#rn_ChatContainer{margin: 0px auto;height: 100%;overflow: visible;text-align: left;}
#rn_ChatDialogContainer{position: relative;border: 1px solid #555;height: auto;_height:445px;min-height: 440px;overflow: hidden;_overflow-y: auto;background-color: #EBEFF5;}
#rn_ChatDialogContainer[id="RN_CHATDIALOGCONTAINER"]{height: 445px;overflow-y: auto;}
#rn_ChatDialogHeaderContainer{padding: 4px;height: 30px;overflow: visible;vertical-align: middle;}
#rn_ChatDialogTitle{margin-top: 8px;}
#rn_ChatDialogHeaderButtonContainer button{margin-right: 0.25em;border-color: transparent;-moz-box-shadow: 0px 0px 0px transparent;-webkit-box-shadow: 0px 0px 0px transparent;padding: 2px;background: transparent none;color: #555;}
#rn_ChatDialogHeaderButtonContainer button:hover, #rn_ChatDialogHeaderButtonContainer button:focus{border-color: #CCC #555 #555 #CCC;background-color: #F8F8F8;color: #000;}
#rn_InChatButtonContainer{overflow: visible;}
#rn_PreChatButtonContainer{overflow: visible;}
#rn_ChatQueueSearchContainer{position: absolute;bottom: 0px;width: 100%;}
#rn_ChatLogo{position: absolute;right: 10px;top: 10px;width: 135px;height: 100px;}
#rn_accountOverview_leftcol{display:inline-block;*display:inline;zoom:1;width:150px;vertical-align:top;}
#rn_accountOverview_rightcol{display:inline-block;*display:inline;zoom:1;width:620px;vertical-align:top;margin-left:20px;}
.rn_account_right{display:inline-block;*display:inline;zoom:1;width:700px;vertical-align:top;margin-left:20px;}
#rn_profileLeftCol{width: 300px;display: inline-block;vertical-align: top;}
#rn_profileRightCol{width: 300px;display: inline-block;vertical-align: top;}
#rn_CreateAccount_left{width:400px;display:inline-block;zoom: 1;*display: inline;vertical-align:top;}
#rn_CreateAccount_right{width:400px;display:inline-block;zoom: 1;*display: inline;vertical-align:top;}
#rn_accountOverview_left_options{display:inline-block;*display:inline;zoom:1;width:300px;vertical-align:top;border-right:1px solid #CCCCCC;margin-right:5px;}
#rn_accountOverview_right_options{display:inline-block;*display:inline;zoom:1;width:280px;vertical-align:top;margin-left:5px;}
.yui-overlay,.yui-panel-container{visibility:hidden;position:absolute;z-index:2;}
.yui-panel{position:relative;}
.yui-panel-container form{margin:0;}
.mask{z-index:1;display:none;position:absolute;top:0;left:0;right:0;bottom:0;}
.mask.block-scrollbars{overflow:auto;}
.masked select,.drag select,.hide-select select{_visibility:hidden;}
.yui-panel-container select{_visibility:inherit;}
.hide-scrollbars,.hide-scrollbars *{overflow:hidden;}
.hide-scrollbars select{display:none;}
.show-scrollbars{overflow:auto;}
.yui-panel-container.show-scrollbars,.yui-tt.show-scrollbars{overflow:visible;}
.yui-panel-container.show-scrollbars .underlay,.yui-tt.show-scrollbars .yui-tt-shadow{overflow:auto;}
.yui-panel-container.shadow .underlay.yui-force-redraw{padding-bottom:1px;}
.yui-effect-fade .underlay,.yui-effect-fade .yui-tt-shadow{display:none;}
.yui-tt-shadow{position:absolute;}
.yui-override-padding{padding:0!important;}
.yui-panel-container .container-close{overflow:hidden;text-indent:-10000em;text-decoration:none;}
.yui-overlay.yui-force-redraw,.yui-panel-container.yui-force-redraw{margin-bottom:1px;}
.yui-skin-sam .mask{background-color:#000;opacity:.25;filter:alpha(opacity=25);}
.yui-skin-sam .yui-panel-container{padding:0 1px;*padding:2px;}
.yui-skin-sam .yui-panel{position:relative;left:0;top:0;border-style:solid;border-width:1px 0;border-color:#808080;z-index:1;*border-width:1px;*zoom:1;_zoom:normal;}
.yui-skin-sam .yui-panel .hd,.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{border-style:solid;border-width:0 1px;border-color:#808080;margin:0 -1px;*margin:0;*border:0;}
.yui-skin-sam .yui-panel .hd{border-bottom:solid 1px #ccc;}
.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{background-color:#F2F2F2;}
.yui-skin-sam .yui-panel .hd{padding:0 10px;font-size:93%;line-height:2;*line-height:1.9;font-weight:bold;color:#000;background:url(/rnt/rnw/yui_2.7/assets/skins/sam/sprite.png) repeat-x 0 -200px;}
.yui-skin-sam .yui-panel .bd{padding:10px;}
.yui-skin-sam .yui-panel .ft{border-top:solid 1px #808080;padding:5px 10px;font-size:77%;}
.yui-skin-sam .container-close{position:absolute;top:5px;right:6px;width:25px;height:15px;background:url(/rnt/rnw/yui_2.7/assets/skins/sam/sprite.png) no-repeat 0 -300px;cursor:pointer;}
.yui-skin-sam .yui-panel-container .underlay{right:-1px;left:-1px;}
.yui-skin-sam .yui-panel-container.matte{padding:9px 10px;background-color:#fff;}
.yui-skin-sam .yui-panel-container.shadow{_padding:2px 4px 0 2px;}
.yui-skin-sam .yui-panel-container.shadow .underlay{position:absolute;top:2px;left:-3px;right:-3px;bottom:-3px;*top:4px;*left:-1px;*right:-1px;*bottom:-1px;_top:0;_left:0;_right:0;_bottom:0;_margin-top:3px;_margin-left:-1px;background-color:#000;opacity:.12;filter:alpha(opacity=12);}
.yui-skin-sam .yui-dialog .ft{border-top:none;padding:0 10px 10px 10px;font-size:100%;}
.yui-skin-sam .yui-dialog .ft .button-group{display:block;text-align:right;}
.yui-skin-sam .yui-dialog .ft button.default{font-weight:bold;}
.yui-skin-sam .yui-dialog .ft span.default{border-color:#304369;background-position:0 -1400px;}
.yui-skin-sam .yui-dialog .ft span.default .first-child{border-color:#304369;}
.yui-skin-sam .yui-dialog .ft span.default button{color:#fff;}
.yui-skin-sam .yui-dialog .ft span.yui-button-disabled{background-position:0 -1500px;border-color:#ccc;}
.yui-skin-sam .yui-dialog .ft span.yui-button-disabled .first-child{border-color:#ccc;}
.yui-skin-sam .yui-dialog .ft span.yui-button-disabled button{color:#a6a6a6;}
.yui-skin-sam .yui-simple-dialog .bd .yui-icon{background:url(/rnt/rnw/yui_2.7/assets/skins/sam/sprite.png) no-repeat 0 0;width:16px;height:16px;margin-right:10px;float:left;}
.yui-skin-sam .yui-simple-dialog .bd span.blckicon{background-position:0 -1100px;}
.yui-skin-sam .yui-simple-dialog .bd span.alrticon{background-position:0 -1050px;}
.yui-skin-sam .yui-simple-dialog .bd span.hlpicon{background-position:0 -1150px;}
.yui-skin-sam .yui-simple-dialog .bd span.infoicon{background-position:0 -1200px;}
.yui-skin-sam .yui-simple-dialog .bd span.warnicon{background-position:0 -1900px;}
.yui-skin-sam .yui-simple-dialog .bd span.tipicon{background-position:0 -1250px;}
.yui-skin-sam .yui-tt .bd{position:relative;top:0;left:0;z-index:1;color:#000;padding:2px 5px;border-color:#D4C237 #A6982B #A6982B #A6982B;border-width:1px;border-style:solid;background-color:#FFEE69;}
.yui-skin-sam .yui-tt.show-scrollbars .bd{overflow:auto;}
.yui-skin-sam .yui-tt-shadow{top:2px;right:-3px;left:-3px;bottom:-3px;background-color:#000;}
.yui-skin-sam .yui-tt-shadow-visible{opacity:.12;filter:alpha(opacity=12);}
------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=standard1316468885.themes.standard.css
Content-Type: text/css; charset=UTF-8; name=standard1316468885.themes.standard.css
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/templates/standard1316468885.themes.standard.css
Content-Transfer-Encoding: 8bit

.rn_LoginDialog2{width: 710px;height: 120px;text-align: left;}
.rn_LoginDialog2.rn_ContentLoading{background:url(/euf/rightnow/optimized/1316468885/themes/standard/images/loading.gif) no-repeat center center;}
.rn_LoginDialog2 input{margin-bottom:5px;}
.rn_LoginDialog2 input[type="text"], .rn_LoginDialog2 input[type="password"]{width:200px;}
.rn_LoginDialog2 label{margin-bottom:5px;display:block;}
.rn_LoginDialog2 div{margin-bottom: 5px;}
.yui-skin-sam .yui-dialog .ft .button-group{display: block;text-align: left;}
#rn_account_create{float: right;width: 320px;}
.existing_account .rn_ErrorMessage a{text-decoration:none;}
.rn_NavigationTab2{display:inline-block;}
.rn_NavigationTab2 a{cursor:pointer;float:left;font-size:1em;font-weight:bold;height:20px;_height:18px;margin-right:4px;padding:5px 20px;position:relative;}
.rn_NavigationTab2 .rn_DropDown{padding-right:28px;}
.rn_NavigationTab2 a em{display:block;font-size:xx-small;height:18px;margin:3px 4px 0 0;position:absolute;right:0;top:0;width:20px;}
.rn_NavigationTab2 .rn_SubNavigation{display:block;float:none;position:absolute;z-index:1;width:150px;}
.rn_NavigationTab2 .rn_SubNavigation.rn_Hidden, .rn_NavigationTab2.rn_Hidden{display:none;}
.rn_NavigationTab2 .rn_SubNavigation a{display:block;float:none;margin:0;padding:5px 0 0 10px;width:140px;}
.rn_NavigationTab2 a{background:#EEEEEE url(/euf/rightnow/optimized/1316468885/themes/standard/images/tabBackground.png) repeat-x scroll 0 -22px;border-top:1px solid #FFF;color:#202020;text-decoration:none;margin-right:0px;}
.rn_NavigationTab2 a:hover, .rn_NavigationTab2 a:focus{background-color: #F8F8F8;background-position:0 -18px;color:#000;}
.rn_NavigationTab2 a:focus{outline:thin dotted #FFF;}
.rn_NavigationTab2 a.rn_SelectedTab{background:#FFF none repeat scroll 0 0;color:#000;}
.rn_NavigationTab2 a em{background:url(/euf/rightnow/optimized/1316468885/themes/standard/images/tabBackground.png) no-repeat 0 0;color:#000;font-size:0em;}
.rn_NavigationTab2 a:hover em, .rn_NavigationTab2 a:focus em{background-position:-20px 0;}
.rn_NavigationTab2 .rn_SubNavigation{background:#FFF none repeat scroll 0 0;border:1px solid #CCC;padding:10px 0 0;top:100px;}
.rn_NavigationTab2 .rn_SubNavigation a{background:#FFF;border:none;color:#404040;height:auto !important;height:23px;margin-bottom:1px;min-height:23px;text-transform: none;}
.rn_NavigationTab2 .rn_SubNavigation a:hover{background:#EEE;}
.rn_NavigationTab2 .rn_SubNavigation a:focus{outline:thin dotted #777;}
.rn_NavigationTab2 a{background:#EEEEEE url(/euf/rightnow/optimized/1316468885/themes/standard/images/tabBackground.png) repeat-x scroll 0 -22px;border-top:1px solid #FFF;color:#202020;text-decoration:none;margin-right:0px;}
.rn_NavigationTab2 a:hover, .rn_NavigationTab2 a:focus{background-color: #F8F8F8;background-position:0 -18px;color:#000;}
.rn_NavigationTab2 a:focus{outline:thin dotted #FFF;}
.rn_NavigationTab2 a.rn_SelectedTab{background:#FFF none repeat scroll 0 0;color:#000;}
.rn_NavigationTab2 a em{background:url(/euf/rightnow/optimized/1316468885/themes/standard/images/tabBackground.png) no-repeat 0 0;color:#000;font-size:0em;}
.rn_NavigationTab2 a:hover em, .rn_NavigationTab2 a:focus em{background-position:-20px 0;}
.rn_NavigationTab2 .rn_SubNavigation{background:#FFF none repeat scroll 0 0;border:1px solid #CCC;padding:10px 0 0;top:100px;}
.rn_NavigationTab2 .rn_SubNavigation a{background:#FFF;border:none;color:#404040;height:auto !important;height:23px;margin-bottom:1px;min-height:23px;text-transform: none;}
.rn_NavigationTab2 .rn_SubNavigation a:hover{background:#EEE;}
.rn_NavigationTab2 .rn_SubNavigation a:focus{outline:thin dotted #777;}
.rn_NavigationTab2{display:inline-block;}
.rn_NavigationTab2 a{cursor:pointer;float:left;font-size:1em;font-weight:bold;height:20px;_height:18px;margin-right:4px;padding:5px 20px;position:relative;}
.rn_NavigationTab2 .rn_DropDown{padding-right:28px;}
.rn_NavigationTab2 a em{display:block;font-size:xx-small;height:18px;margin:3px 4px 0 0;position:absolute;right:0;top:0;width:20px;}
.rn_NavigationTab2 .rn_SubNavigation{display:block;float:none;position:absolute;z-index:1;width:150px;}
.rn_NavigationTab2 .rn_SubNavigation.rn_Hidden, .rn_NavigationTab2.rn_Hidden{display:none;}
.rn_NavigationTab2 .rn_SubNavigation a{display:block;float:none;margin:0;padding:5px 0 0 10px;width:140px;}
.rn_NavigationTab2 a{background:#EEEEEE url(/euf/rightnow/optimized/1316468885/themes/standard/images/tabBackground.png) repeat-x scroll 0 -22px;border-top:1px solid #FFF;color:#202020;text-decoration:none;margin-right:0px;}
.rn_NavigationTab2 a:hover, .rn_NavigationTab2 a:focus{background-color: #F8F8F8;background-position:0 -18px;color:#000;}
.rn_NavigationTab2 a:focus{outline:thin dotted #FFF;}
.rn_NavigationTab2 a.rn_SelectedTab{background:#FFF none repeat scroll 0 0;color:#000;}
.rn_NavigationTab2 a em{background:url(/euf/rightnow/optimized/1316468885/themes/standard/images/tabBackground.png) no-repeat 0 0;color:#000;font-size:0em;}
.rn_NavigationTab2 a:hover em, .rn_NavigationTab2 a:focus em{background-position:-20px 0;}
.rn_NavigationTab2 .rn_SubNavigation{background:#FFF none repeat scroll 0 0;border:1px solid #CCC;padding:10px 0 0;top:100px;}
.rn_NavigationTab2 .rn_SubNavigation a{background:#FFF;border:none;color:#404040;height:auto !important;height:23px;margin-bottom:1px;min-height:23px;text-transform: none;}
.rn_NavigationTab2 .rn_SubNavigation a:hover{background:#EEE;}
.rn_NavigationTab2 .rn_SubNavigation a:focus{outline:thin dotted #777;}
.rn_SimpleSearch{position:relative;}
.rn_SimpleSearch .rn_SearchField{width:97%;}
.rn_SimpleSearch .rn_SearchImage{border:none;padding:0;position:absolute;right:0.2em;top:0.46em;*right:0.28em;*top:0.6em;}
.rn_SimpleSearch{margin:auto;max-width:400px;width:180px;}
.rn_SimpleSearch form{background-color:#FFF;border:1px solid #B1B1B1;}
.rn_SimpleSearch .rn_SearchField{border:0px none;color:#222;font-weight:bold;height:1.8em;max-width:200px;padding:4px 4px 0px;width:85%;}
.yui-panel.rn_Dialog.rn_FeedbackDialog{width:375px;}
.rn_SiteFeedback2Form label{clear:left;display:block;}
.rn_SiteFeedback2Form .rn_EmailField{clear:left;display:block;margin-bottom:1em;width:200px;}
.rn_SiteFeedback2Form .rn_Textarea{clear:left;display:block;margin-bottom:1em;width:340px;}
.rn_RightNowLogo a{background:url(/euf/rightnow/images/RightNowLogo.png) no-repeat scroll 0 0 !important;display:block !important;height:22px !important;width:134px !important;}
.rn_RightNowLogo a:focus, .rn_RightNowLogo a:hover{background-position:0 -22px !important;}

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=detail1316468885.themes.standard.css
Content-Type: text/css; charset=UTF-8; name=detail1316468885.themes.standard.css
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/pages//answers/detail1316468885.themes.standard.css
Content-Transfer-Encoding: 8bit

.rn_link1{text-decoration:underline;margin-right:7px;margin-left:7px;}
.rn_link2{margin-right:7px;margin-left:7px;}
.rn_SocialBookmarkLink{display:inline;margin-right:10px;}
.rn_SocialBookmarkLink img{vertical-align:middle;}
.rn_SocialBookmarkLink .rn_Panel{overflow:hidden;_position:absolute;}
.rn_SocialBookmarkLink ul{padding:0;margin:0;}
.rn_SocialBookmarkLink ul li{display:inline;float:left;list-style-type:none;}
.rn_SocialBookmarkLink a{color:#222;text-decoration:none;}
.rn_SocialBookmarkLink a:hover{white-space:normal;}
.rn_SocialBookmarkLink a:hover span{text-decoration:underline;}
.rn_SocialBookmarkLink .rn_Panel{background-color:#FFF;padding:6px;}
.rn_SocialBookmarkLink .rn_Panel .hd{border:none !important;}
.rn_SocialBookmarkLink .rn_Panel li{background:url(/euf/rightnow/optimized/1316468885/themes/standard/images/icons/socialBookmark.png) no-repeat;height:16px;line-height:1.4em;margin:4px;padding-left:20px;}
.rn_SocialBookmarkLink li.rn_Link1{background-position:0 0;}
.rn_SocialBookmarkLink li.rn_Link2{background-position:0 -16px;}
.rn_SocialBookmarkLink li.rn_Link3{background-position:0 -32px;}
.rn_SocialBookmarkLink li.rn_Link4{background-position:0 -48px;}
.rn_SocialBookmarkLink li.rn_Link5{background-position:0 -64px;}
.rn_SocialBookmarkLink li.rn_Link6{background-position:0 -80px;}
.rn_PrintPageLink{margin-right:10px;}
.rn_PrintPageLink a img{border:none;vertical-align:middle;}
.rn_PrintPageLink a{color:#222;text-decoration:underline;}
.rn_PrintPageLink a:hover{white-space:normal;}
.rn_PrintPageLink a:hover span{text-decoration:underline;}
.rn_PrintPageLink a img{}
.rn_EmailAnswerLink{display:inline;margin-right:10px;}
.rn_EmailAnswerLink a img{cursor:pointer;vertical-align:middle;}
.rn_EmailAnswerLink a{color:#222222;cursor:pointer;text-decoration:underline;}
.rn_EmailAnswerLink a:hover{white-space:normal;}
.rn_EmailAnswerLink a:hover span{cursor:pointer;text-decoration:underline;}
.rn_EmailAnswerLinkForm label{clear:left;display:block;}
.rn_EmailAnswerLinkForm input{clear:left;display:block;margin-bottom:1em;width:200px;}
.rn_AnswerNotificationIcon3{display:inline;}
.rn_AnswerNotificationIcon3 img{vertical-align:middle;}
.rn_AnswerNotificationIcon3{margin-right:10px;}
.rn_AnswerNotificationIcon3 a{color:#222;text-decoration:underline;}
.rn_AnswerNotificationIcon3 a:hover{white-space:normal;}
.rn_AnswerNotificationIcon3 a:hover span{text-decoration:underline;}
.rn_AnswerNotificationIcon3 img{}
.rn_IncidentThreadDisplay .rn_ThreadContent{word-wrap:break-word;}
.rn_IncidentThreadDisplay .rn_ThreadHeader{background-color:#EEE;border: 1px solid #CCC;text-shadow: 0px 1px 1px #FFF;font-size:1.083em;font-weight:bold;padding:0.25em;position:relative;}
.rn_IncidentThreadDisplay .rn_ThreadHeader .rn_ThreadTime{position:absolute;right:1em;}
.rn_IncidentThreadDisplay .rn_ThreadHeader.rn_Customer{background-color:#CCC;}
.rn_IncidentThreadDisplay .rn_ThreadContent{background-color:#FFF;border:1px solid #DDD;border-width:0 1px 1px;color:#404040;font-size:1em;margin-bottom:0px;overflow:hidden;padding:1em 10px;}
.rn_ProductCategoryDisplay .rn_DataLabel{float:left;font-weight:bold;}
.rn_ProductCategoryDisplay .rn_DataValue{margin-left:180px;}
.rn_ProductCategoryDisplay .rn_DataValue ul{clear:none;}
.rn_ProductCategoryDisplay .rn_DataValue.rn_LeftJustify{clear:left;margin-left:0;padding-bottom:.5em;}
.rn_FileListDisplay .rn_DataLabel{float:left;font-weight:bold;}
.rn_FileListDisplay .rn_DataValue{margin-left:180px;}
.rn_FileListDisplay .rn_DataValue ul{clear:none;}
.rn_FileListDisplay .rn_DataValue.rn_LeftJustify{clear:left;margin-left:0;padding-bottom:.5em;}
.rn_FileListDisplay .rn_FileSize{font-style:italic;padding-left:4px;}
.rn_FieldDisplay .rn_DataLabel{float:left;font-weight:bold;}
.rn_FieldDisplay .rn_DataValue{margin-left:180px;word-wrap:break-word;}
.rn_FieldDisplay .rn_DataValue.rn_LeftJustify{clear:left;margin-left:0;padding-bottom:.5em;}
.rn_AnswerFeedback2 .rn_ThanksLabel{margin-left:3em;overflow:hidden;}
.yui-panel.rn_Dialog.rn_FeedbackDialog{width:375px;}
.rn_AnswerFeedback2 .rn_Title{border-bottom:1px solid #BBB;margin-bottom:10px;padding-bottom:2px;font-size:1.333em;font-weight:bold;line-height:1.4em;}
.rn_AnswerFeedback2 .rn_RatingMeter a.rn_RatingCell{background:url(/euf/rightnow/optimized/1316468885/themes/standard/images/RatingStars.png) 0 0 no-repeat;display: -moz-inline-box;display: inline-block;height:18px;margin:4px 0;text-decoration:none;width:20px;}
.rn_AnswerFeedback2 .rn_RatingMeter a.rn_RatingCellOver{background-position:0px -18px;cursor:pointer;}
.rn_AnswerFeedback2Form .rn_DialogSubtitle{margin-bottom:6px;text-align:left;}
.rn_AnswerFeedback2Form label{clear:left;display:block;}
.rn_AnswerFeedback2Form .rn_EmailField{clear:left;display:block;margin-bottom:1em;width:200px;}
.rn_AnswerFeedback2Form .rn_Textarea{clear:left;display:block;margin-bottom:1em;width:340px;}
@media print{.rn_AnswerFeedback2{display:none;}
}
.rn_RelatedAnswers2{padding:10px 0;}
.rn_RelatedAnswers2 h2{border-bottom:1px solid #BBB;margin-bottom:10px;padding-bottom:2px;}
@media print{.rn_RelatedAnswers2{display:none;}
}
.rn_PreviousAnswers2{padding:10px 0;}
.rn_PreviousAnswers2 h2{border-bottom:1px solid #BBB;margin-bottom:10px;padding-bottom:2px;}
@media print{.rn_PreviousAnswers2{display:none;}
}

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=favicon.ico
Content-Type: image/x-icon; name=favicon.ico
Content-Location: http://acer--uk.custhelp.com/euf/assets/favicon.ico
Content-Transfer-Encoding: Base64

AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAEAAAAA
AAAAAAAAAAEAAAABAAAAAAAARU0AAEdQAwBJUQYATVUNAFBYDwBQWBEAVFwVAFVe
GABYYB0AW2MgAFtkIQBcZCIAYWkpAGVsLgBmbTAAanAzAGtyNgBtdDkAcnk/AHR7
QgB3fkYAc3hUAHV5VwB7gUsAfYNNAH+GUgB9gWEAg4lXAIWLWgCGjFoAjZB3AJid
cwCip4IApKiDAKWnlgCuspIAs7eXALS4mgC8wKUAwMKpAMPGrgDFyLEAzM67AM/S
vgDQ0sAA1dfGANze0ADf4dQA4ePXAOLj2ADl59wAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ACoZDAkNEiYAAAAAAAAAKwYBCSgAAAAoEiYAAAAAMgMBBgAAAAAAAAAmIQAAABkB
ASQAAAAAAAAAAAAAAAAGAQExAAAAAAAAAAAAAAAACAIBMAAAAAAAAAAAAAAAABQB
ASAAAAAAAAAAAAAAAAAuAQEEHRMPCAYMDR4oAAAAAA0CAjEAAAAAAC4cBAMiAAAA
BgEQAAAAAAAAAAAGASAAAC8GARoAAAAAAAAAJwEEAAAAABABFAAAAAAAACwBDAAA
AAAAJw0GJDIAAC4IDAAAAAAAAAAAAB8bFhYbIwAAAAAAAAAAAAAAAAAAAAAAAP//
AADgPwAAg48AAA/nAAAP/wAAD/8AAA//AAAP/wAAAAcAAIfBAADH+AAAw/gAAPH4
AAD4MQAA/wMAAP//AAA=

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=upgrades.css
Content-Type: text/css; charset=UTF-8; name=upgrades.css
Content-Location: http://acer--uk.custhelp.com/euf/assets/themes/standard/upgrades.css
Content-Transfer-Encoding: 8bit

.yui-skin-sam .yui-panel .hd {
	background: none;
	background-color: #F2F2F2;
	border-bottom: none;
	font-size: 1.333em;
}
.yui-skin-sam .yui-panel .bd {
	padding: 20px;
}

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline
Content-Type: image/png
Content-Location: http://acer--uk.custhelp.com/euf/assets/themes/standard/images/titleBackground.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAABQAAAB4CAMAAADFYSIeAAAAAXNSR0IArs4c6QAA
AARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA
OpgAABdwnLpRPAAAAwBQTFRFwMDAwcHBwsLCw8PDxMTExcXFxsbGx8fHyMjIycnJ
ysrKy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW19fX2NjY2dnZ
2tra29vb3Nzc3d3d3t7e39/f4ODg4eHh4uLi4+Pj5OTk5eXl5ubm5+fn6Ojo6enp
6urq6+vr7Ozs7e3t7u7u7+/v8PDw8fHx8vLy8/Pz9PT09fX19vb29/f3+Pj4+fn5
+vr6+/v7/Pz8/f39/v7+////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAArsZdoAAAABl0RVh0U29mdHdhcmUAUGFpbnQuTkVU
IHYzLjUuND6NzHYAAAD9SURBVEhLxcrXVsJQFAbhsRfEHnvvCoklKiio7/9WkhU8
CTlz73e11+yf7+AnoIrVxZfwOBRoHAg0fgo0fgj6wmNPoPFdoPFNoPFVkP+pPasY
vnnOi/D4LND4JND4KNCYCdJIlklMU7rCY0eg8UGg8V6g8U6g8Vag8UZw3VBsolhs
uBIeLwUaLwQazwVnhcajjA2cCo8nAo3HAo1HAo2HgoMJ5aIRywX7wuOeQOOuQOOO
IEmSKBcx4nFboHFLsFk3HkzG8YAN4XFdoHFNoHFV0G7HdRRjrAiPLYHGZYHGJYHG
RcFCJbzrMbyZFx7nBBpnBRpnBBqnBVPCI//pF4/4GmegrvoUAAAAAElFTkSuQmCC

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=acer.css
Content-Type: text/css; charset=UTF-8; name=acer.css
Content-Location: http://acer--uk.custhelp.com/euf/assets/themes/standard/acer/acer.css
Content-Transfer-Encoding: 8bit

/**
 * Global Style
 *
 * Index:
 *  01. Reset
 *  02. Font multiplier table
 *  03. Global Settings for Common HTML elements
 *  04. Template Structure
 *  05. Text Colors
 *  06. Navigation Bar
 *  07. Shared/General Components
 *  08. Answer & Question Detail Pages
 *  09. Home Page
 *  10. Account Pages
 *  11. General Accessiblity
 *  12. Print Style
 *  13. Chat Related
 */
@charset "utf-8";

/**
 * 01. Reset
 */

/**
 * 02. Font multiplier table
 *
 * Pixels  EMs   Percent    Points
 * (9px is absolute minimum)
 *  9px     0.750     75.00%     7pt
 * 10px     0.833     83.30%     8pt
 * 11px     0.917     91.70%     8pt
 * (12px is our body default)
 * 12px     1.000     100.0%     9pt
 * 13px     1.083     108.3%     10pt
 * 14px     1.167     116.7%     11pt
 * 15px     1.250     125.0%     11pt
 * 16px     1.333     133.3%     12pt
 * 17px     1.417     141.7%     13pt
 * 18px     1.500     150.0%     14pt
 * 19px     1.583     158.3%     14pt
 * 20px     1.667     166.7%     15pt
 * 21px     1.750     175.0%     16pt
 * 22px     1.833     183.3%     17pt
 * 23px     1.917     191.7%     17pt
 * 24px     2.000     200.0%     18pt
 */

/**
 * 03. Global Settings for Common HTML elements
 */
body {
	background: #F4F4F4 none;
	font-family: 'Verdana', 'Arial', 'Garamond', sans-serif;
	text-align: left;
	font-size: 11px;
	color: #555;
}
a {
	color: #555;
}
a:link {
	text-decoration: none;
	color: #0059FF;
}
a:visited {
	text-decoration: none;
	color: #3C0D68;
}
a:focus, a:active, a:hover {
	text-decoration: underline;
	color: #0E53A7;
}
input[type="text"]:focus, input[type="password"]:focus, textarea:focus, select:focus {
	background-color: #F8F8F8;
	border-color: #AAA;
}
input[type="submit"], input[type="reset"], input[type="button"], button,
.rn_SearchButton2 .rn_SubmitButton {
		/*background:url("../images/bg_greenbutton.gif") repeat-x scroll left center #6A6B6E;*/
	background:#267d74;
	color: #fff;
}
input[type="submit"]:focus, input[type="submit"]:hover, input[type="reset"]:focus, input[type="reset"]:hover,
input[type="button"]:focus, input[type="button"]:hover, button:focus, button:hover {
	background: #FFF;
	color: #000;
}
input[type="submit"][disabled], input[type="reset"][disabled], input[type="button"][disabled], button[disabled] {
	background-color: #064d44;
	border-color: #ccc;
	color: #999;
}

/* Start CSS for standard/page_header */
#bar #menu {
	padding-left: 4px;
}
#bar #menu, #bar #menu * {
	line-height: 1.2em;
}
#bar #menu li {
	display: block;
}
#bar #menu li {
	float: left;
	display: block !important;
	margin: 0px !important;
	padding: 6px 0px 0px 0px !important;
}
#bar #menu li.first_item img, #bar #menu li.first_item_current img {
	padding-right: 8px !important;
}
#bar #menu li a, #bar #menu li img {
	display: inline-block;
}
#bar #menu li a {
	display: inline;
	border-left: 1px solid #666;
	padding: 0px 10px;
	color: #555;
	text-decoration: none;
}
#bar #menu a:hover {
	text-decoration: underline;
}
/* End CSS for standard/page_header */

/* Begin CSS for standard/navigation */
#rn_Navigation {
	position: relative;
	margin: 6px 0px 0px 0px;
	border-bottom: 1px solid #CCC;
	height: 45px;
	overflow: visible;
	background: none;
}
#rn_Navigation .rn_MainTitle {
	float: none;
	display: block;
	padding: 10px 15px;
	font-family: 'Arial', 'Helvetica', sans-serif;
	font-size: 15pt;
	font-weight: bold;
	color: #267D74;
}
#rn_Navigation .rn_MainTitle a {
	color: #267D74;
}
#rn_Logo {
	display: none; /* 95% of the time we will not need the logo */
}
#rn_Header {
	height: auto;
	min-height: 0px;
}
#rn_Header, #rn_Header a {
	color: #000;
}
/* End CSS for standard/navigation */

/* Begin CSS for custom/Level1ProductSelector */

#rn_level1productlist{
width:100%;

}

#rn_level1productlist li a {
	display: -moz-inline-block;
	display: inline-block;
}
#rn_level1productlist li a:hover {
	-moz-border-radius: 5px;
	background: #ddd none;
}
#rn_level1productsel h2 {
	margin: 0px;
	padding-left: 12px;
}
/* End CSS for custom/Level1ProductSelector */

/* Begin CSS for standard/navigation/NavigationBar(s) */
#rn_NavigationBar {
	position: absolute;
	right: 20px;
	bottom: 0px;
	height: 20px;
}
#rn_NavigationBar2 {
	float: none !important;
	margin: 10px 20px 0px 20px;
	border-bottom: 1px solid #ccc;
	padding: 0px 20px;
}
#rn_NavigationBar ul, #rn_NavigationBar2 ul {
	height: 20px;
}
#rn_NavigationBar ul li, #rn_NavigationBar2 ul li {
	float: left;
	font-size: 11px;
}
#rn_NavigationBar a, #rn_NavigationBar2 a {
	position: relative;
	float: none;
	display: block;
	margin: 0px;
	border: solid #aaa;
	border-width: 1px 1px 0px 1px;
	padding: 3px 10px 0px 10px;
	height: 16px;
	_height: 16px;
	background: #efefef none;
	font-weight: bold;
	font-size: 11px;
}
#rn_NavigationBar a:link, #rn_NavigationBar a:visited,
#rn_NavigationBar2 a:link, #rn_NavigationBar2 a:visited {
	text-decoration: none;
	color: #555;
}
#rn_NavigationBar a:focus, #rn_NavigationBar a:active, #rn_NavigationBar a:hover,
#rn_NavigationBar2 a:focus, #rn_NavigationBar2 a:active, #rn_NavigationBar2 a:hover {
	background: #fff none;
	color: #555;
}
#rn_NavigationBar a:focus, #rn_NavigationBar2 a:focus {
	outline: thin dotted #FFF;
}
#rn_NavigationBar a.rn_SelectedTab, #rn_NavigationBar2 a.rn_SelectedTab {
	margin-bottom: -1px;
	height: 17px;
	background: #FFF none;
	color: #267D74;
}
/* Begin CSS for standard/navigation/NavigationBar(s) */

/* Begin CSS for standard/navigation/NavigationTab2 OVERRIDE!!! */
.rn_NavigationTab2 {
	display: inline;
}
.rn_NavigationTab2 .rn_ButtonOff {
	display: none;
}
.rn_NavigationTab2 .rn_SubNavigation {
	display: none;
}
/* End CSS for standard/navigation/NavigationTab2 OVERRIDE!!! */

#page_footer {
	margin: 0px !important;
	padding: 10px 0px !important;
	margin-top:15px;
}
#rn_Footer, #rn_Body {
	border: none;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	margin: 0px;
	padding: 0px;
	width: 100%;
}
#rn_Footer {
	border-bottom: 1px solid #E2E2E2;
}
.rn_Module h3, .rn_Module h2, #rn_SearchControls {
	background: transparent none;
}

/**
 * Updates quick styles, uncomment a style to quickly edit
 */
.rn_Hidden, #page_content .rn_Hidden {
	display: none;
}
#rn_MainColumn {
	margin: 0px;
	padding: 0px;
	width: 100%;
	height: auto;
	min-height: 0px;
	overflow: visible;
}
.rn_Padding {
	display: inline-block; /* trigger IE hasLayout */
}
.rn_Padding {
	display: block; /* set mode */
	padding: 10px 20px;
	overflow: hidden; /* contain floats */
}

.rn_Padding .rn_FormSubmit{
padding-left:0px;

}

#rn_QuestionSubmit .rn_Padding .rn_FormSubmit{
padding-left:0px;

}

#page_main {
	float: none !important;
}
#rn_Container {
	width: 100%;
} 
#rn_SideBar {
	display: none;
}
.rn_Multiline2 {
	overflow: visible;
}
.rn_Multiline2 li {
	margin-bottom: 12px;
}
.rn_Multiline2 .rn_Element1, .rn_Multiline2 .rn_Element2, .rn_Multiline2 .rn_Element3,
.rn_Multiline2 .rn_ElementsHeader, .rn_Multiline2 .rn_ElementsData {
	font-weight: normal;
}
#rn_PageTitle {
	display: inline-block; /* trigger IE hasLayout */
}
#rn_PageTitle {
	display: block; /* set mode */
	border-bottom: 1px solid #E2E2E0;
	padding: 20px 20px;
	overflow: hidden !important; /* contain floats */
	background: #EEE url('../images/titleBackground.png') repeat-x 0px 0px;
	color: #666;
}



.rn_KeywordText2 #rn_KeywordText2_10_Text{


}


#rn_PageTitle .rn_mastheadintro {
	float: right;
	width: 500px;
}
#rn_PageTitle.rn_Home {
	padding: 20px 20px 0px 20px;
	color: #000;
}
#rn_PageTitle.rn_Home #rn_productselector_serial {
	font-size: 14px;
	/*color: #3F8C82;*/
}
#rn_PageContent.rn_Home .rn_Module {
	border: none;
	padding:0px 20px 20px;
	background: none;
}
#rn_PageContent.rn_Home .rn_Module h2 {
	border: none;
}
#rn_PageContent.rn_Home .rn_Module ol {
	margin: 0px;
}
#rn_PageContent.rn_Home .rn_Module ol li {
	padding: 0px 4px;
}
#rn_PageContent.rn_Home .rn_Module ol li a {
	margin: 4px 0px;
}
#rn_SearchControls {
	border: none;
}
.rn_Home #rn_SearchControls {
	border-top: 1px solid #CCC;
	padding-bottom: 25px;
}
#rn_SearchControls .rn_SearchInput a {
	color: #FFF;
}
#rn_SearchControls .rn_SearchInput label {
	position: relative;
	top: 0px !important;
	left: 0px !important;
	font-weight: bold;
	color: #333;
		
}
#rn_SearchControls .rn_SearchInput input {
	margin: 0px;
	width: 160px;
	font-weight: normal;
	margin-top:0px;
}
#rn_SearchControls .rn_SearchInput {
	width:  285px;
}
#rn_SearchControls .rn_QuestionsSearchInput {
	width: 360px;
}


#rn_PageContent.rn_Home ol li{
width: 49%;
}
.rn_SearchForm .rn_ProductCategorySearchFilter{
padding-top: 10px;
width: 150px;
}

 
.rn_DialogContent label {
padding-right: 10px;
}

 
.rn_DialogContent div{
padding-bottom:5px;

}



#rn_SearchControls form input[type="submit"], #rn_SearchControls form input[type="image"] {
	margin: 0px;
}
#rn_SearchControls .rn_SearchForm {
	float: left;
	width: 98%;
	vertical-align:bottom;
}
#rn_SearchControls .rn_ProductCategorySearchFilter {
	display: inline;
	vertical-align:bottom;
	padding-top:10px;
	
}
#rn_SearchControls .rn_ProductCategorySearchFilter .rn_Label {
	float: none;
	
}

 
#rn_SearchControls .rn_SearchButton2 .rn_SubmitButton {
margin-top:0px;
vertical-align:bottom;
}


.rn_QuestionList #rn_SearchControls .rn_SearchButton2 .rn_SubmitButton {
margin-top:0px;
vertical-align:middle;
margin-left:6px;
}

#rn_SearchControls .rn_BrowseAnswerFor {
	margin-bottom: 10px;
	border-bottom: 1px solid #BBB;
	padding-bottom: 10px;
}
.rn_BrowseAnswerFor a {
	font-size: 1.1em;
	font-weight: bold;
}
.rn_Home #rn_SearchControls {
	border: solid #BBB;
	border-width: 1px 0px 0px 0px;
	padding-top: 15px;
}
.rn_ProductCategorySearchFilter button.rn_DisplayButton {
	margin-top: 0px;
}
#rn_SearchControls .rn_BrowseAnswerForLabel {
	font-size: 1.3em;
	font-weight: bold;
	color: #333;
}
#rn_SearchControls .rn_BrowseAnswerForOr {
	font-size: 1em;
	font-weight: bold;
	color: #333;
}
#rn_PageTitle.rn_AnswerDetail {
	padding: 20px 20px 0px 20px;
	min-height: 40px;
}
#rn_PageContent.rn_AnswerDetail {
	padding: 5px 20px;
}
#rn_PageContent.rn_AnswerDetail .rn_AnswerDocId {
	float: left;
	padding: 8px 0px;
	width: 150px;
	text-align: left;
}

#rn_Summary{
padding-bottom:10px;
}
#rn_AnswerText {
line-height:18px;
}

#rn_AnswerText p a{
font-size:0.9em;

}

.rn_ChatStatus2 {
	color: #091B59;
}
.aspire_one_logo {
	float: left;
	display: -moz-inline-block;
	display: inline-block;
	padding-top: 20px;
}
.rn_Paging {
	display: inline-block; /* trigger IE hasLayout */
}
.rn_Paging {
	display: block; /* set mode */
	margin: 0px 10px 10px 00px;
	/*border-bottom: 1px solid #DDD;*/
	padding-left: 00px;
	overflow: auto; /* contain floats */
}
.rn_ResultInfo2 {
	padding-top: 5px;
}
.rn_ResultInfo2 .rn_Results {
	float: right;
}

.rn_Padding .rn_ResultInfo2{


}
.rn_Grid2 {
clear:both;

}

.rn_Paginator {
	clear: none;
	padding-top: 5px;
	padding-right:0px;
	text-align:right;
	width:480px;
}
.rn_Paginator a {
	display: inline-block;
	border: 1px solid #ddd;
	padding: 0px 4px;
}
.rn_Paginator input, .rn_Paginator select {
	vertical-align: middle;
}
.rn_AnswerDetail #rn_AdditionalInfo, #rn_DetailTools {
	margin-top: 0px;
	border: none;
	background: none;
}
#rn_PageTitle.rn_AskQuestion {
	margin-left: 130px;
	border: none;
	background: none;
	color: #000;
}
#rn_PageContent.rn_AskQuestion {
	margin-left: 150px;
	margin-bottom:35px;
	border: 1px solid #DDD;
	width: 570px;
	background: #EEE url('../images/contentBackground.png') repeat-x 0px 0px;
}
.rn_AskQuestion h1 {
	/*font-size: 1.3em;
	font-weight: bold;*/
	line-height: 1.8em;
	font-size: 2.083em;
	color:#267D74;
}
.rn_AskQuestion .rn_Padding {
	padding: 8px 35px 15px;
}
.rn_AskQuestion .rn_AskYourProduct {
	margin-top: 10px;
	margin-bottom: 20px;
	border-bottom: 1px solid #DDD;
	padding-bottom: 10px;
	font-size: 1.3em;
	font-weight:700;  
}
.rn_AskQuestion .rn_AskCategory {
	margin-top: 10px;
	margin-bottom: 20px;
	border-bottom: 1px solid #DDD;
	padding-bottom: 10px;
}
.rn_AskQuestion .rn_TextInput .rn_TextArea {
 	width: 100%;
}
.rn_AskQuestion .rn_Serial {
	display: inline;
	width: 600px;
}
.rn_AskQuestion .rn_Text {
	width: 245px;
}
.rn_AskQuestion .rn_Serial .rn_TextInput {
	float: left;
}
.rn_AskQuestion .rn_Serial .rn_SerialHelp {
	float: left;
	margin-top: 12px;
	margin-left: 8px;
	width:240px;
	/*width: 170px;*/
}

.rn_AskQuestion .rn_Serial .rn_AutoDetect {
	float: left;
	margin-left: 8px;
	/*width: 170px;*/
}

.rn_AskQuestion .rn_Serial .rn_Text {
width:245px;
}
.rn_AskQuestion .rn_AskYourProductName {
	padding-bottom: 10px;
	font-size: 1.3em;
	font-weight: bold;
}
#rn_PageTitle.rn_LiveHelp {
	display: none;
}
.rn_Live .rn_LiveLeftCol {
	float: left;
	padding: 20px;
	width: 45%;
}

.rn_Live .rn_LiveLeftCol h2{
color:#267D74;
font:20px 'Trebuchet MS','Arial','Helvetica',sans-serif;
margin:0 0 10px;
}

.rn_Live .rn_LiveRightCol {
	float: left;
	border: 1px solid #DDD;
	padding: 20px;
	width: 43%;
}
.rn_Live .rn_LiveLine {
	margin-top: 10px;
	margin-bottom: 20px;
	border-bottom: 1px solid #DDD;
	padding-bottom: 10px;
}
.rn_Live p, .rn_Live p img {
	vertical-align: top;
}
.overlay_alphacube {
	background-color: #FFF;
	filter: alpha(opacity=0);
	-moz-opacity: 0;
	opacity: 0;
}
.img_banner_home {
	float: left;
	border: none;
	width: 60px;
}
.text_banner_home {
	margin-left: 70px;
}
#banner {
	height: 95px;
	background: #FFF url('../images/acer/bar_bg_bottom.gif') repeat-x left bottom;
}
#acerHomePublic #banner {
	height: 315px;
	background: #FFF url('../images/acer/bar_bg_bottom.gif') repeat-x left bottom;
}
#acerHomePublic #float_menu {
	display: none;
}
#acerHomePublic #grid {
	width: 100%;
}
#productpage #float_menu {
	display: none;
}
#productpage #grid {
	width: 100%;
	border-left: none;
}
#product_intro #grid {
	width: 100%;
	border-left: none;
}
#country_list #float_menu {
	display: none;
}
#product_intro #banner {
	height: 80px;
}
#productpage #banner {
	height: 80px;
}
#country_list #banner {
	height: 15px;
}
#acer_product_menu {
	width: 100%;
	z-index: 10;
	filter: alpha(opacity=100);
	-moz-opacity: 1;
	opacity: 1;
}
#acer_product_menu_t {
	width: 100%;
	padding-top: 5px;
	background-color: #E4E4E4;
}
#acer_product_menu table {
	width: 100%;
	background-color: #E4E4E4;
}
#acer_product_menu #tab {
	height: 35px;
	background: url('../images/acer/bar_bg_bottom.gif') repeat-x left top;
}
#acer_product_menu #tab ul {
	float: left;
	margin: 0px;
	padding: 0px 0px 0px 280px;
	width: auto !important;
	list-style: none;
}
#acer_product_menu #tab li {
	margin: 0px;
	padding: 0px 0px 0px 20px;
	height: 35px;
	cursor: pointer;
}
#acer_product_menu #tab span {
	display: block;
	padding: 5px 20px 0px 0px;
	width: auto !important;
	height: 35px;
	text-align: center;
}
.product_menu_tab {
	font-weight: bold;
}
#product_intro #acer_product_menu #tab ul {
	display: none;
}
.ie_product_menu_bg {
	background-color: #E4E4E4;
}
#float_menu td {
	white-space: normal;
}
div.homecustomlinks {
	padding: 0px 0px 4px 18px;
	background: url('../images/acer/bullet_pixel.gif') no-repeat left center;
}
#productSKUs {
	float: left;
	margin: 0px;
	padding: 0px;
	width: 920px;
	list-style: none;
}
#productSKUs li {
	float: left;
	display: block;
	margin: 0px;
	border: 1px solid #AAA;
	padding: 2px 5px 0px;
	height: 20px;
	background-color: #EBEBEB;
	cursor: pointer;
}
#productSKUs li.currentTab {
	border-bottom: 1px solid #FFF;
	background-color: #FFF;
	color: #F60;
}
#productSKUs li.currentTab a {
	color: #F60;
}
div.SKUs a, table.techSpec a {
	text-decoration: underline;
}
div.SKUs #part_number {
	margin-top: 5px;
	float: right;
}
div.SKUs span.part_number_label {
	color:#F60;
	margin-right: 5px;
}
div.SKUs a.part_number_link {
	text-decoration: none;
	color:#F60;
}
div.SKUs a.part_number_link:hover {
	text-decoration: underline;
	color:#F60;
}
table.techSpec {
	width: 100%;
}
table.techSpec td.header {
	border-bottom: 1px dotted #AAA;
	padding-top: 25px;
	font-size: 12px;
}
table.techSpec td.label {
	width: 30%;
	text-align: right;
	vertical-align: top;
	font-weight: bold;
}
table.techSpec td.value {
	padding-left: 10px;
	width: 70%;
	text-align: justify;
	vertical-align: top;
}
table.techSpec td.value p {
	margin: 0px;
	padding: 0px;
}
table.techSpec td.value ul {
	margin: 0px 0px 0px 17px;
	padding: 0px;
}
table.techSpec td.value li {
	margin: 0px;
	padding-left: 17px;
	background: url('../images/acer/bullet_pixel.gif') no-repeat left center;
	list-style-type: none;
}
table.techSpec td.value ul li {
	margin: 0px;
	padding: 0px;
	background-image: none;
	list-style-image: url('../images/acer/bullet_pixel.gif');
}
.benefit_description {
	padding-bottom: 10px;
	text-align: justify;
}
.tagline {
	display: block;
	margin: 0px 20px 10px;
	padding: 14px 0px 0px;
	font-family: 'Verdana', 'Arial', 'Helvetica', sans-serif;
	line-height: 18px;
	font-size: 12px;
	text-decoration: none;
	font-weight: bold;
	color: #000;
}
.tagline2 {
	float: right;
	margin: 0px 20px;
	padding: 0px 0px 14px;
	width: 600px;
	font-family: 'Verdana', 'Arial', 'Helvetica', sans-serif;
	line-height: 18px;
	text-align: right;
	font-size: 12px;
	text-decoration: none;
	font-weight: bold;
	color: #000;
}
div.product_family_links {
	text-align: right;
}
div.product_family_links ul {
	float: right;
	margin: 0px;
	padding: 0px;
	list-style: none;
}
div.product_family_links ul li {
	float: left;
	padding: 0px 5px;
	line-height: 24px;
}
div.product_family_links ul li a {
	float: left;
	padding-left: 28px;
	line-height: 24px;
	font-weight: bold;
}
div.product_family_links ul li a:hover {
	float: left;
	padding-left: 28px;
	line-height: 24px;
	color: #005046;
}
.product_name {
	display: block;
	margin-bottom: 5px;
	font-size: 16px;
	font-weight: bold;
	color: #F60;
}
.product_image {
	margin-right: 10px;
}
.product_descr {
	margin-right: 3px;
}
div#list_award ul {
	float: left;
	margin: 0px;
	padding: 0px;
	width: 100%;
	list-style: none;
}
#productpage div#list_award ul li.single_award {
	float: left;
	padding: 0px 0px 30px;
	width: 33%;
}
#productpage .award_logo {
	float: left;
	margin-right: 5px;
}
div#printable_sku ul {
	float: left;
	margin: 0px;
	padding: 0px;
	width: 800px;
	list-style: none;
}
#printable_sku .single_sku {
	float: left;
	padding-bottom: 15px;
}
#printable_sku .sku_model {
	float: left;
	display: block;
	color: #F60;
}
#printable_sku .sku_pn {
	float: right;
	display: block;
	color: #F60;
}
#printable_sku .sku_descr {
	clear: both;
	display: block;
	text-align: justify;
}
.intel {
	float: left;
	line-height: 24px;
	font-weight: bold;
}
.intel a {
	padding-bottom: 14px;
	padding-top: 14px;
	font-family: 'Verdana', 'Arial', 'Helvetica', sans-serif;
	font-size: 11px;
	text-decoration: underline;
	font-weight: bold;
	color: #000;
}
.intel a:hover {
	color: #005046;
}
div.infochunk_headline {
	font-size: 14px;
	font-weight: bold;
	color: #005046;
}
div.infochunk_subheadline {
	margin: 3px 0px 8px 0px;
	font-style: italic;
}
div.infochunk_text {
	text-align: justify;
}
div.infochunk_image_right {
	float: right;
	margin-left: 10px;
}
div.infochunk_image_left {
	float: left;
	margin-right: 10px;
}
div.infochunk_image_center {
	text-align: center;
}
div.infochunk_separator {
	clear: both;
}
.infochunk_text a, .infochunk_subheadline a {
	text-decoration: underline;
	color: #F60;
}
ul.infochunk_links {
	float: left;
	margin: 0px;
	padding: 0px;
	list-style: none;
}
ul.infochunk_links li {
	float: left;
	padding: 0px 5px;
	line-height: 16px;
}
ul.infochunk_links li a {
	float: left;
	padding-left: 20px;
	line-height: 16px;
	font-weight: bold;
}
ul.infochunk_links li a:hover {
	float: left;
	padding-left: 20px;
	line-height: 16px;
	color: #005046;
}
#float_menu ul.menu_links {
	margin: 0px;
	padding: 0px;
	width: 230px;
	list-style: none;
}
#float_menu ul.menu_links li {
	padding: 2px 5px;
	line-height: 18px;
}
#float_menu ul.menu_links li.firstlevel {
	padding: 2px 5px 2px 18px;
	background: url('../images/acer/bullet_pixel_green.gif') no-repeat left center;
}
#float_menu ul.menu_links li.secondlevel {
	margin-left: 15px;
	padding: 2px 5px 2px 18px;
	background: url('../images/acer/bullet_pixel.gif') no-repeat left center;
}
#float_menu ul.menu_links li a:hover {
	color: #005046;
}
#float_menu table.page_links {
	text-align: left;
}
#float_menu table.page_links tr td ul {
	margin: 0px;
	padding: 0px 0px 0px 3px;
	width: 230px;
	list-style: none;
}
#float_menu table.page_links tr td ul li {
	padding: 2px 5px 2px 18px;
	background: url('../images/acer/bullet_pixel_green.gif') no-repeat left center;
}
#float_menu table.page_links a:hover {
	color: #005046;
}
#float_menu .orange a {
	color: #F60;
}
#float_menu ul.menu_links li.link_RSS_left {
	padding: 2px 5px 2px 18px;
}
#wheretobuy #resultTable ul {
	margin: 0px;
	padding: 0px;
	width: 100%;
	list-style: none;
}
#wheretobuy #resultTable ul li {
	float: left;
	padding:0px 0px 10px 0px;
	width: 50%;
	height: 50px;
}
#wheretobuy .geo_company {
	display: block;
	font-weight: bold;
}
#wheretobuy .geo_zip {
	float: left;
	display: block;
	padding-right: 10px;
}
#wheretobuy .geo_city {
	display: block;
}
#wheretobuy .geo_fax {
	clear: both;
	display: block;
}
#wheretobuy .geo_phone {
	clear: both;
	display: block;
}
#wheretobuy .label {
	font-style: italic;
}
div.noresult {
	margin: 10px 0px 0px 0px;
	text-align: center;
}
#wheretobuy #multipleResult_empty {
	display: none;
	padding: 10px 0px;
	text-align: center;
}
#wheretobuy #multipleResult_message {
	display: none;
	padding: 10px 0px;
	text-align: center;
}
#wheretobuy #multipleResult .geolocator_select {
	display: block;
	padding: 1px 0px 1px 15px;
}
#wheretobuy #multipleResult .geolocator_select:hover {
	color: #F60;
}
#wheretobuy div.singlerow {
	clear: both;
	float: left;
	display: block;
	padding: 0px 0px 50px 0px;
	width: 100%;
}
#wheretobuy div.singlerow ul {
	margin: 0px;
	padding: 5px 0px 0px 0px;
	width: 100%;
	list-style: none;
}
#wheretobuy div.singlerow ul li {
	float: left;
	margin: 0px 0px 5px 0px;
	padding: 0px 0px 10px 0px;
	width: 50%;
	height: 50px;
}
#wheretobuy .geo_program {
	display: block;
	border-bottom: 1px solid #AAA;
	padding: 0px 0px 5px 0px;
	font-size: 14px;
	font-weight: bold;
}
#news div.scrollable {
	margin: 0px 0px 10px 0px;
	border-bottom: 1px solid #E4E4E4;
	padding: 10px 0px;
	text-align: right;
}
#news div#list_news ul {
	float: left;
	margin: 0px;
	padding: 0px;
	width: 100%;
	list-style: none;
}
#news div#list_news ul li.single_news {
	float: left;
	padding: 0px 0px 30px 0px;
}
#news div#list_news ul li ul li {
	padding: 0px 0px 2px 0px;
}
#news .news_date {
	display: inline;
	font-style: italic;
	font-weight: bold;
}
#news .news_headline {
	font-weight: bold;
	color: #005046;
}
#news .news_headline_big {
	font-size: 14px;
	font-weight: bold;
	color: #005046;
}
#news .news_headline a {
	color: #005046;
}
#news .news_headline a:hover {
	text-decoration: underline;
}
#news .news_summary {
	display: inline;
	text-align: justify;
}
#news .news_summary p {
	display: inline;
	margin: 0px;
	padding: 0px;
}
#news .news_content {
	float: left;
	margin: 0px;
	padding: 0px;
	width: 100%;
	list-style: none;
}
#news .news_body {
	padding: 15px 0px;
	text-align: justify;
}
#news .news_image {
	float: right;
	margin: 0px 0px 0px 10px;
}
#news .news_file a {
	padding-left: 20px;
	line-height: 16px;
	font-weight: bold;
}
a.download_link {
	float: left;
	padding-left: 20px;
	line-height: 16px;
	font-weight: bold;
}
a.download_link:hover {
	color: #004056;
}
div#list_flyer ul {
	float: left;
	margin: 0px;
	padding: 0px;
	width: 100%;
	list-style: none;
}
#flyer div#list_flyer ul li.single_flyer {
	float: left;
	padding: 0px 0px 30px 0px;
	width: 50%;
}
#flyer div#list_flyer ul li ul li {
	padding: 0px 0px 2px 0px;
}
#flyer .flyer_date {
	float: left;
	display: block;
	margin-right: 10px;
	width: 70px;
	background: url('../images/acer/bullet_pixel.gif') no-repeat right center;
	line-height: 20px;
	font-weight: normal;
}
#flyer .flyer_headline {
	float: left;
	font-size: 14px;
	line-height: 20px;
	font-weight: bold;
	color: #005046;
}
#flyer .flyer_description {
	clear: both;
	float: left;
	display: inline;
	text-align: justify;
}
#flyer .flyer_file {
	clear: both;
	float: left;
	margin-top: 10px;
}
#technology_list, #technology_list ul {
	float: left;
	margin: 0px;
	padding: 0px;
	width: 100%;
	list-style: none;
}
#technology_list li {
	clear: both;
}
#technology_list li ul {
	clear: both;
	float: left;
	padding: 5px 0px;
}
#technology_list li ul li {
	clear: none;
	padding: 0px;
}
#technology_list .technology_groupname {
	clear: both;
	font-size: 13px;
	font-weight: bold;
	cursor: pointer;
}
#technology_list .technology_name a {
	color: #F60;
	cursor: pointer;
}
#technology_list .technology_icon {
	float: left;
	margin: 0px 10px 0px 0px;
	width: 80px;
	cursor: pointer;
}
#technology_list .technology_summary {
	text-align: justify;
	cursor: pointer;
}
#technology_list li.single_technology {
	float: left;
	margin: 0px 20px 0px 0px;
	width: 47%;
}
.adobe_download {
	position: absolute;
	left: 10px;
	bottom: 20px;
	display: block;
	width: 158px;
	height: 40px;
}
#genuineTooltip {
	text-align: left;
}
#genuineTooltip a, div.SKUs a, table.techSpec a {
	text-decoration: underline;
	color: #00C;
}

 
.rn_Overview ul li{
line-height:18px;
font-size:12px;

}

#rn_account_create ul li{
list-style-type: none;
line-height:18px;
}

.rn_CreateAccountInfo1{
background:#fff8ec;
border:1px solid gray;
padding:3px;
}

.rn_CreateAccountInfo1 ul{
margin-top:10px;
}

.rn_CreateAccountInfo1 li{
background:url(../images/createAccount.png) no-repeat;
height:32px;
list-style-type: none;
list-style:none;
margin:4px 0 16px;
padding:4px 0px 4px 40px;
}

.rn_CreateAccountInfo1 li.rn_Communicate{background-position: 0px 0px;}
.rn_CreateAccountInfo1 li.rn_Feedback{background-position: 0px -46px;}
.rn_CreateAccountInfo1 li.rn_Customize{background-position: 0px -96px;}

.contentHgt{
height:450px;

}



.rn_QuestionList caption {
padding-bottom:10px;
margin-top:10px;
font-family:Arial, Helvetica, sans-serif;
font-weight:normal;
font-size:16px;
font-weight:bold;

}

#rn_SearchButton2_11{
padding-top:5px;

}


.rn_AdvancedSearchDialog{

}

.yui-skin-sam .yui-panel .hd {
color:#267D74;
}


#rn_ProductCategorySearchFilter_15_Tree{
border-width:1px;
border-color:#f2f2f2;
background:#fff;
}

#rn_ProductCategoryInput_16_Tree{
background:#fff;
}


.rn_Dialog {
border-color:#000000 !important;
border-width:3px !important;
overflow:visible;
}

.yui-skin-sam .yui-panel{
background:#F2F2F2;
}

.yui-skin-sam .yui-panel .bd{
padding:10px 20px 10px 20px;
}

.yui-skin-sam .yui-panel .ft{
height:130px;
padding-left:20px;
padding-top:40px;
background:none;


}

#rn_LoginDialog2_3_Form{
padding:30px 0px 0px 0px;


}


input[type="submit"], button {
	/*background:url("../images/bg_greenbutton.gif") repeat-x scroll left center #6A6B6E;*/
}

input[type="submit"]:hover,
input[type="submit"]:focus,
button:hover,
button:focus {
   /* background:url("../images/bg_greenbutton_hover.gif") repeat-x scroll left center;*/
	color:#000000;
}

#yui-gen0-button input[type="submit"]:hover, #yui-gen0-button input[type="submit"]:focus{
color:#000000;
}

.yui-skin-sam .yui-dialog .ft span.first-child button:focus, .yui-skin-sam .yui-dialog .ft span.first-child button:hover {
color:#000000;
}

/*-------------------------------------------*/


#rn_product_sel_error{
font-size:12px;
font-weight:bold;
margin-bottom:5px;
}

#rn_product_sel_label{
font-size:12px;
font-weight:bold;
padding-bottom:10px;
}

.rn_DialogContent p{
font-weight:normal;
font-size:11px;d
padding:2px 6px 3px;

}

/*----------------------------------------------*/

#rn_accountOverview_rightcol #rn_PageTitle {
	display: block; /* set mode */
	border-bottom: 0px solid #E2E2E0;
	padding: 0px 0px 0px;
	overflow: hidden !important; /* contain floats */
	background: #fdfdfd;
	color: #666;
}


#rn_accountOverview_rightcol h2{

font-size:1.8em;
line-height:1.5em;
padding:2px 0px 10px 0px;
font-weight:normal;
color:#267D74;

}

#rn_accountOverview_rightcol h3{

font-size:1.1em;
line-height:1.3em;
padding:2px 0px 5px 0px;
font-weight:normal;
color:#666666;
font-size:15px;

}


.rn_AnswerNotificationManager, .rn_ProdCatNotificationManager { 
background:#f5fffe;
}

#rn_accountOverview_rightcol .rn_Account h2{

font-size:1.4em;
line-height:1.5em;
padding:2px 0px 10px 0px;
font-weight:normal;


}

#rn_accountOverview_rightcol h2{
color:#267D74;

}

#rn_accountOverview_rightcol h1{

font-size:25px;
line-height:1.5em;
padding:2px 0px 5px 0px;
font-weight:normal;
color:#267D74;

}



#rn_accountOverview_rightcol h3 a{
/*color:#267D74;*/

}

#rn_accountOverview_rightcol h3{
padding-bottom:6px;
}


#rn_accountOverview_leftnav .rn_leftNav a{
/*color:#267D74;*/
}


/*------------------------------------------------*/

.rn_TextInput .rn_Text, .rn_TextInput .rn_Password, .rn_TextInput .rn_TextArea{

width:160px;

}


#rn_level1productlist li{
padding:0px 0px;
width:12.4%;

}


.rn_TextInput .rn_HintBox {
opacity:1;
width:210px;
line-height:16px;
padding-bottom:6px;
}

/*-----------------------------------------------*/


.rn_Module h2 {
font:20px 'Trebuchet MS','Arial','Helvetica',sans-serif normal;
margin:0 0 10px;
color:#267D74;
}

h1#rn_Summary{
color:#267D74;
}

/*---------------------*/
#rn_Container .loginStatus {
padding:2px 25px;
position:absolute;
right:0;
top:0;
z-index:10;
}

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=units.css
Content-Type: text/css; charset=UTF-8; name=units.css
Content-Location: http://acer--uk.custhelp.com/euf/assets/themes/standard/acer/units.css
Content-Transfer-Encoding: 8bit

/***************************************************************/
/*                        GENERAL                              */
/*  The classes determine the behaviour of all WebRatio Units */
/***************************************************************/

/* The css class used to render WebRatio css classes divs*/
.plain {
	display:inline;
	clear:none;
}

/* Fix for Internet Explorer for input with background image */
input[type="submit"] {
	border: 1px outset
}
/* Fix for Internet Explorer for input with background image */
input[type="button"] {
	border: 1px outset
}

/* The css classes used to align numbers right */
.integer, .float, .decimal{
	text-align:right
}

/* The css class used to render headers and attribute names */
.header {}

/* The css class used to render headers and attribute names of current elements */
.headerCurrent {}

/* The alternate css class used to render headers and attribute names */
.headerAlternate {}

/* The alternate css class used to render headers and attribute names of current elements */
.headerCurrentAlternate {}

/* The css class used to render attribute values */
.value {}

/* The css class used to render attribute values of current elements */
.valueCurrent {}

/* The alternate css class used to render attribute values */
.valueAlternate {}

/* The alternate css class used to render attribute values of current elements */
.valueCurrentAlternate {}

/* The css class used to render bullets */
.bullet {}

/* The css class used to render bullets of current elements */
.bulletCurrent{}

/* The alternate css class used to render bullets */
.bulletAlternate {}

/* The alternate css class used to render bullets of current elements */
.bulletCurrentAlternate{}

/* The css class used to render rows */
.row {}

/* The css class used to render rows of current elements*/
.rowCurrent {}

/* The alternate css class used to render rows */
.rowAlternate {}

/* The alternate css class used to render rows of current elements */
.rowCurrentAlternate {}

/* The css class used to render links */
.button {}

/* The css class used to render links */
.link {}

/* The css class used to render links of current elements */
.linkCurrent {}

/* The alternate css class used to render links */
.linkAlternate {}

/* The alternate css class used to render links of current elements */
.linkCurrentAlternate {}

/* The css class used to render scroll links */
.scroll {}

/* The css class used to render the text between scroll links (i.e. 1-10 of 20) */
.scrollText {}

/* The css class used to render jump bundles */
.jump {}

/* The css class used to render sorting links */
.sort {}

/* The css class used to render ascending sort links */
.sortAscending {}

/* The css class used to render descending sort links */
.sortDescending {}

/* The css class used to render the selectAll link */
.selectAll {}

/* The css class used to render the unSelectAll link */
.unSelectAll {}

/* The css class used to render fields */
.field {}

/* The css class used to render selection fields and selects */
.selectionfield{}

/* The css class used to render multi selection fields */
.multiselectionfield {}

/* The css class used to render error messages */
.error {}

/* The css class used to render checkboxes */
.checkBox {}

/* The css class used to render the days of calendars */
.day{}

/* The css class used to render the month names of calendars */
.month{}

/* The css class used to render the previous year link of calendars */
.previousYear{}

/* The css class used to render the next year link of calendars */
.nextYear{}

/* The css class used to render horizontal spacing */
.horizontalSpacer {}

/* The css class used to render vertical spacing */
.verticalSpacer {}

/*********************************************************************************/
/*  This classes determine the behaviour of units accordigly to their unit type  */
/*********************************************************************************/

/*******************/
/*  ALPHABET UNIT  */
/*******************/

/* The css class used to render Alphabet Units values */
.AlphabetUnit .value {}

/* The css class used to render Alphabet Units links */
.AlphabetUnit .link {}

/***************/
/*  DATA UNIT  */
/***************/

/* The css class used to render Data Units headers and attribute names */
.DataUnit .header {}

/* The css class used to render Data Units attribute values */
.DataUnit .value {}

/* The css class used to render Data Units rows */
.DataUnit .row {}

/* The alternate css class used to render Data Units rows */
.DataUnit .rowAlternate {}

/* The css class used to render Data Units links */
.DataUnit .link {}

/****************/
/*  ENTRY UNIT  */
/****************/

/* The css class used to render Entry Units headers and field names */
.EntryUnit .header {}

/* The css class used to render Entry Units fields */
.EntryUnit .value {}

/* The css class used to render Entry Units rows */
.EntryUnit .row {}

/* The alternate css class used to render Entry Units rows */
.EntryUnit .rowAlternate {}

/* The css class used to render Entry Units links */
.EntryUnit .button {}

/* The css class used to render Entry Units fields */
.EntryUnit .field {}

/* The css class used to render Entry Units selection fields and selects */
.EntryUnit .selectionfield{}

/* The css class used to render Entry Units multi selection fields */
.EntryUnit .multiselectionfield {}

/* The css class used to render Entry Units error messages */
.EntryUnit .error {}


/*************************/
/*  EVENT CALENDAR UNIT  */
/*************************/

/* The css class used to render Event Calendar Units values */
.EventCalendarUnit .value {}

/* The css class used to render Event Calendar Units values of the current element*/
.EventCalendarUnit .valueCurrent {}

/* The css class used to render Event Calendar Units links */
.EventCalendarUnit .button {}

/* The css class used to render Event Calendar Units links */
.EventCalendarUnit .link {}

/* The css class used to render Event Calendar Units links of current elements */
.EventCalendarUnit .linkCurrent {}

/* The css class used to render the days of Event Calendar Units */
.EventCalendatUnit .day{}

/* The css class used to render the month names of Event Calendar Units */
.EventCalendatUnit .month{}

/* The css class used to render the previous year link of Event Calendar Units */
.EventCalendatUnit .previousYear{}

/* The css class used to render the next year link of Event Calendar Units */
.EventCalendatUnit .nextYear{}

/* The css class used to render Event Calendar Units horizontal spacing */
.EventCalendatUnit .horizontalSpacer {}

/* The css class used to render Event Calendar Units vertical spacing */
.EventCalendatUnit .verticalSpacer {}

/*****************************/
/*  HIERARCHICAL INDEX UNIT  */
/*****************************/

/* The css class used to render Hierarchical Index Units headers and attribute names */
.HierarchicalIndexUnit .header {}

/* The css class used to render Hierarchical Index Units attribute values */
.HierarchicalIndexUnit .value {}

/* The css class used to render Hierarchical Index Units bullets */
.HierarchicalIndexUnit .bullet {}

/* The css class used to render Hierarchical Index Units  rows */
.HierarchicalIndexUnit .row {}

/* The alternate css class used to render Hierarchical Index Units  rows */
.HierarchicalIndexUnit .rowAlternate {}

/* The css class used to render Hierarchical Index Units links */
.HierarchicalIndexUnit .link {}

/****************/
/*  INDEX UNIT  */
/****************/

/* The css class used to render Index Units headers and attribute names */
.IndexUnit .header {}

/* The css class used to render Index Units headers and attribute names of current elements */
.IndexUnit .headerCurrent {}

/* The alternate css class used to render Index Units headers and attribute names */
.IndexUnit .headerAlternate {}

/* The alternate css class used to render Index Units headers and attribute names of current elements */
.IndexUnit .headerCurrentAlternate {}

/* The css class used to render Index Units attribute values */
.IndexUnit .informal {}

/* The css class used to render Index Units attribute values */
.IndexUnit .value {}

/* The css class used to render Index Units attribute values of current elements */
.IndexUnit .valueCurrent {}

/* The alternate css class used to render Index Units attribute values */
.IndexUnit .valueAlternate {}

/* The alternate css class used to render Index Units attribute values of current elements */
.IndexUnit .valueCurrentAlternate {}

/* The css class used to render Index Units attribute values in dropdown*/
.IndexUnit .selectionfield {}

/* The css class used to render Index Units bullets */
.IndexUnit .bullet {}

/* The css class used to render Index Units bullets of current elements */
.IndexUnit .bulletCurrent{}

/* The alternate css class used to Index Units render bullets */
.IndexUnit .bulletAlternate {}

/* The alternate css class used to render Index Units bullets of current elements */
.IndexUnit .bulletCurrentAlternate{}

/* The css class used to render Index Units  rows */
.IndexUnit .row {}

/* The css class used to render Index Units rows of current elements*/
.IndexUnit .rowCurrent {}

/* The alternate css class used to render Index Units  rows */
.IndexUnit .rowAlternate {}

/* The alternate css class used to render Index Units  rows of current elements */
.IndexUnit .rowCurrentAlternate {}

/* The css class used to render Index Units links */
.IndexUnit .link {}

/* The css class used to render Index Units links of current elements */
.IndexUnit .linkCurrent {}

/* The alternate css class used to render Index Units links */
.IndexUnit .linkAlternate {}

/* The alternate css class used to render Index Units links of current elements */
.IndexUnit .linkCurrentAlternate {}

/*****************************/
/*  MULTI CHOICE INDEX UNIT  */
/*****************************/

/* The css class used to render Multi Choice Index Units headers and attribute names */
.MultiChoiceIndexUnit .header {}

/* The css class used to render Multi Choice Index Units attribute values */
.MultiChoiceIndexUnit .value {}

/* The css class used to render Multi Choice Index Units  rows */
.MultiChoiceIndexUnit .row {}

/* The alternate css class used to render Multi Choice Index Units  rows */
.MultiChoiceIndexUnit .rowAlternate {}

/* The css class used to render Multi Choice Index Units links */
.MultiChoiceIndexUnit .button {}

/* The css class used to render the Multi Choice Index Units errors */
.MultiChoiceIndexUnit .error {}

/* The css class used to render the Multi Choice Index Units checkboxes */
.MultiChoiceIndexUnit .checkBox {}

/* The css class used to render the Multi Choice Index Units selectAll link */
.MultiChoiceIndexUnit .selectAll {}

/*********************/
/*  MULTI DATA UNIT  */
/*********************/

/* The css class used to render Multi Data Units headers and attribute names */
.MultiDataUnit .header {}

/* The css class used to render Multi Data Units attribute values */
.MultiDataUnit .value {}

/* The css class used to render Multi Data Units bullets */
.IndexUnit .bullet {}

/* The css class used to render Multi Data Units links */
.MultiDataUnit .link {}

/**********************/
/*  MULTI ENTRY UNIT  */
/**********************/

/* The css class used to render Multi Entry Units headers and field names */
.MultiEntryUnit .header {}

/* The css class used to render Multi Entry Units links */
.MultiEntryUnit .button {}

/* The css class used to render Multi Entry Units fields */
.MultiEntryUnit .field {}

/* The css class used to render Multi Entry Units selection fields and selects */
.MultiEntryUnit .selectionfield{}

/* The css class used to render the Multi Entry Units selectAll link */
.selectAll {}

/* The css class used to render Multi Entry Units error messages */
.MultiEntryUnit .error {}

/************************/
/*  MULTI MESSAGE UNIT  */
/************************/

/* The css class used to render Multi Message Units values */
.MultiMessageUnit .value {}

/*******************************/
/*  NO OPERATION CONTENT UNIT  */
/*******************************/

/* The css class used to render No Operation Content Units links */
.NoOpContentUnit .link {}

/**********************/
/*  POWER INDEX UNIT  */
/**********************/

/* The css class used to render Power Index Units headers and attribute names */
.PowerIndexUnit .header {}

/* The css class used to render Power Index Units headers and attribute names of current elements */
.PowerIndexUnit .headerCurrent {}

/* The alternate css class used to render Power Index Units headers and attribute names */
.PowerIndexUnit .headerAlternate {}

/* The alternate css class used to render Power Index Units headers and attribute names of current elements */
.PowerIndexUnit .headerCurrentAlternate {}

/* The css class used to render Power Index Units attribute values */
.PowerIndexUnit .value {}

/* The css class used to render Power Index Units attribute values of current elements */
.PowerIndexUnit .valueCurrent {}

/* The alternate css class used to render Power Index Units attribute values */
.PowerIndexUnit .valueAlternate {}

/* The alternate css class used to render Power Index Units attribute values of current elements */
.PowerIndexUnit .valueCurrentAlternate {}

/* The css class used to render Power Index Units bullets */
.PowerIndexUnit .bullet {}

/* The css class used to render Power Index Units bullets of current elements */
.PowerIndexUnit .bulletCurrent{}

/* The alternate css class used to Power Index Units render bullets */
.PowerIndexUnit .bulletAlternate {}

/* The alternate css class used to render Power Index Units bullets of current elements */
.PowerIndexUnit .bulletCurrentAlternate{}

/* The css class used to render Power Index Units  rows */
.PowerIndexUnit .row {}

/* The css class used to render Power Index Units rows of current elements*/
.PowerIndexUnit .rowCurrent {}

/* The alternate css class used to render Power Index Units  rows */
.PowerIndexUnit .rowAlternate {}

/* The alternate css class used to render Power Index Units  rows of current elements */
.PowerIndexUnit .rowCurrentAlternate {}

/* The css class used to render Power Index Units links */
.PowerIndexUnit .link {}

/* The css class used to render Power Index Units links of current elements */
.PowerIndexUnit .linkCurrent {}

/* The alternate css class used to render Power Index Units links */
.PowerIndexUnit .linkAlternate {}

/* The alternate css class used to render Power Index Units links of current elements */
.PowerIndexUnit .linkCurrentAlternate {}

/* The css class used to render Power Index Units scroll links */
.PowerIndexUnit .scroll {}

/* The css class used to render the text between Power Index Units scroll links (i.e. 1-10 of 20) */
.PowerIndexUnit .scrollText {}

/* The css class used to render Power Index Units jump bundles */
.PowerIndexUnit .jump {}

/* The css class used to render Power Index Units sorting links */
.PowerIndexUnit .sort {}

/***************************************/
/*  RECURSIVE HIERARCHICAL INDEX UNIT  */
/***************************************/

/* The css class used to render Recursive Hierarchical Index Units headers and attribute names */
.RecursiveHierarchicalIndexUnit .header {}

/* The css class used to render Recursive Hierarchical Index Units attribute values */
.RecursiveHierarchicalIndexUnit .value {}

/* The css class used to render Recursive Hierarchical Index Units attribute values of current elements */
.RecursiveHierarchicalIndexUnit .valueCurrent {}

/* The css class used to render Recursive Hierarchical Index Units links */
.RecursiveHierarchicalIndexUnit .link {}

/*****************/
/*  SCRIPT UNIT  */
/*****************/

/* The css class used to render Script Units results */
.ScriptUnit .value {}

/*******************/
/*  SCROLLER UNIT  */
/*******************/

/* The css class used to render Scroller Units links */
.ScrollerUnit .link {}

/* The css class used to render Scroller Units scroll links */
.ScrollerUnit .scroll {}

/* The css class used to render the text between Scroller Units scroll links (i.e. 1-10 of 20) */
.ScrollerUnit .scrollText {}

/* The css class used to render Scroller Units jump bundles */
.ScrollerUnit .jump {}
------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline
Content-Type: text/css; charset=UTF-8
Content-Location: http://acer--uk.custhelp.com/euf/assets/themes/standard/acer/default.css
Content-Transfer-Encoding: 8bit

/* NO FIREFOX FOCUS ON LINK */
:-moz-any-link:focus { OUTLINE: none; }
a {outline: none;}


/* FONT SIZE */
.f09 { FONT-SIZE: 9px; }
.f10 { FONT-SIZE: 10px; }
.f11 { FONT-SIZE: 11px; }
.f12 { FONT-SIZE: 12px; }
.f13 { FONT-SIZE: 13px; }
.f14 { FONT-SIZE: 14px; }
.f16 { FONT-SIZE: 16px; }
.f18 { FONT-SIZE: 18px; }
.f20 { FONT-SIZE: 20px; }
.f22 { FONT-SIZE: 22px; }
.f24 { FONT-SIZE: 24px; }
.f26 { FONT-SIZE: 26px; }

/* FONT COLOR */
.acerColor { COLOR: #005046; }
.gray { COLOR: #AAAAAA; }
.default_gray { COLOR: #555555; }
.orange { COLOR: #FF6600; }
.green { COLOR: #26994F; }
.blue { COLOR: #5693B9; }
.red { COLOR: #FF0000; }
.white { COLOR: #FFFFFF; }

/* FONT STYLE */
.bold { FONT-WEIGHT:bold; }
.italic { FONT-STYLE:italic; }
.underline { TEXT-DECORATION:underline; }

/* TEXT ALIGN */
.valign_top, .top { VERTICAL-ALIGN:top; }
.valign_middle, .middle { VERTICAL-ALIGN:middle; }
.valign_bottom, .bottom { VERTICAL-ALIGN:bottom; }
.align_left, .left { TEXT-ALIGN:left; }
.align_center, .center { TEXT-ALIGN:center; }
.align_right, .right { TEXT-ALIGN:right; }

.nowrap { WHITE-SPACE: pre; }

/* TEXT TRANSFORMATIONS */
.capitalize { TEXT-TRANSFORM: capitalize; }
.uppercase { TEXT-TRANSFORM: uppercase; }
.lowercase { TEXT-TRANSFORM: lowercase; }
.justify { TEXT-ALIGN:justify; }

/* FONT STYLE */
.arial { FONT-FAMILY: Arial, Garamond, sans-serif; }
.verdana { FONT-FAMILY: Verdana, Arial, Garamond, sans-serif; }

/* CURSORS */
.pointer { CURSOR:pointer; }

/* VISIBILITY */
/* .hidden { VISIBILITY: hidden; } */
.visible { VISIBILITY: visible; }
.none { DISPLAY:none; }
.block { DISPLAY:block; }
.full { WIDTH:100%; clear:both; }

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=global.css
Content-Type: text/css; charset=UTF-8; name=global.css
Content-Location: http://acer--uk.custhelp.com/euf/assets/themes/standard/acer/global.css
Content-Transfer-Encoding: 8bit

@import "default.css";

/* BODY */
BODY {FONT-FAMILY: Verdana, Arial, Garamond, sans-serif; FONT-SIZE: 11px; COLOR:#555555; MARGIN:0px; /* TEXT-ALIGN:center; */ BACKGROUND-COLOR: #ffffff; }
.basic_font { FONT-FAMILY: Verdana, Arial, Garamond, sans-serif; FONT-SIZE: 11px; COLOR:#555555; }

a { COLOR:#555555; TEXT-DECORATION:none; }
a:hover table { cursor:pointer; }

/* FORM */
form { margin:0; padding:0; }
INPUT { FONT-FAMILY: Verdana, Arial, Garamond, sans-serif; FONT-SIZE: 11px; COLOR:#555555; }
SELECT { FONT-FAMILY: Verdana, Arial, Garamond, sans-serif; FONT-SIZE: 11px; COLOR:#555555; }

/* PAGE */
#page_content { BORDER-LEFT: 1px solid #e4e4e4; BORDER-RIGHT: 1px solid #e4e4e4; WIDTH:850px; MARGIN:0px auto; /* POSITION:relative; */ BACKGROUND-COLOR: #fff;}
#page_main { /* POSITION:relative; */ float:left; width:100%; } 

#float_menu { FLOAT:left; width:249px; }
#grid { FLOAT:left; width:620px; BORDER-LEFT: 1px solid #E4E4E4; }

/* HEADER */
#page_header { 
POSITION:relative; WIDTH:100%; HEIGHT:60px; BACKGROUND: url(../images/acer/header_bg.gif) repeat-x left bottom; 
display:none;
}
#page_header #logo { WIDTH: 250px; HEIGHT: 60px; BACKGROUND: url(../images/acer/header_logo.jpg) no-repeat left bottom; FLOAT: left; MARGIN-LEFT: 25px;}
#page_header #slogan { COLOR: #FFF; FONT-FAMILY: Verdana, Arial, Garamond, sans-serif; FONT-SIZE: 14px; FONT-STYLE: italic; POSITION: absolute; LEFT: 200px; TOP: 0px; LINE-HEIGHT:60px; }
#page_header #header_sub { WIDTH: 400px; HEIGHT: 60px; POSITION: absolute; RIGHT: 25px; TOP: 0px;}
#page_header #header_sub span { POSITION:absolute; right:0px; width:400px; text-align:right; }
#page_header #header_sub a { FONT-WEIGHT:bold; COLOR: #FFF; FONT-SIZE: 13px; LINE-HEIGHT:60px; background:url(../images/acer/change.gif) no-repeat right center; padding-right:15px; }


#bar { 
COLOR: #555; POSITION: relative; HEIGHT: 25px; WIDTH:100%; BACKGROUND: url(../images/acer/bar_bg.jpg) repeat-x center center; 
display:none;
}
#bar #bar_sub { position:absolute; TOP: 0px; RIGHT: 25px; WIDTH: 150px; HEIGHT: 25px; LINE-HEIGHT:25px; TEXT-ALIGN:right; }
#bar #menu { POSITION: absolute; TOP: 0px; LEFT: 25px; HEIGHT: 25px; LINE-HEIGHT:25px; TEXT-ALIGN:left; }
#bar #menu UL { list-style-type: none; margin: 0; padding: 0; display:inline; }
#bar #menu LI { background: url(../images/acer/pipe.gif) no-repeat 0 center; display:inline; padding: 0 3px 0 8px; margin: 0;}
#bar #menu LI.first_item {background: none; padding: 0 3px 0 0;}
#bar #menu LI.first_item_current {background: none; padding: 0 3px 0 0; font-weight: bold; }
#bar #menu LI.item_current { font-weight: bold; background: url(../images/acer/pipe.gif) no-repeat 0 center; display:inline; padding: 0 3px 0 8px; margin: 0;}
#bar #menu A { COLOR: #555; TEXT-DECORATION: none; }
#bar #menu A:hover { TEXT-DECORATION: underline;  }
#bar #bar_sub A { COLOR: #555; TEXT-DECORATION: none; }
#bar #bar_sub A:hover { TEXT-DECORATION: underline;  }

#page_footer { 
color: #AAAAAA; clear:both; margin:10px 0px 20px 0px; padding:10px 0 10px 0; text-align:center; 
display:none;
}
#page_footer UL { list-style-type: none; margin: 0; padding: 0; display:inline; }
#page_footer LI { background: url(../images/acer/pipe_light.gif) no-repeat 0 center; display:inline; padding: 0 3px 0 8px; margin: 0;}
#page_footer LI.first_item { background: none; padding: 0 3px 0 0;}
#page_footer A { COLOR: #AAA; TEXT-DECORATION: none; }
#page_footer A:hover { TEXT-DECORATION: underline;  }
#page_footer #copyright { margin:10px 0px 0px 0px; } 

#banner { DISPLAY: block; position:relative; }
.banner_image { width:950px; height:300px; border:0; }
.banner_productname { POSITION:absolute; top:35px; left:30px; COLOR:#005046; font-size:13px; font-weight:bold; }


.frame { border-bottom:1px solid #AAA; }
.frame_title { width:100%; }
.frame_button_opened { cursor:pointer; padding:2px 2px 0px 2px; width:18px; height:18px; background:url(../images/acer/frame_open.gif) no-repeat center center; }
.frame_button_closed { cursor:pointer; padding:2px 2px 0px 2px; width:18px; height:18px; background:url(../images/acer/frame_close.gif) no-repeat center center; }



.frame_baseline { padding:0 0 10px 0; background:url(../images/acer/frame_baseline.gif) no-repeat center bottom; }



select { FONT-FAMILY: Verdana, Arial, Garamond, sans-serif; FONT-SIZE: 11px; COLOR:#555555; PADDING:2px; }
input { FONT-FAMILY: Verdana, Arial, Garamond, sans-serif; FONT-SIZE: 11px; COLOR:#555555; }

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=RightNow.js
Content-Type: application/x-javascript; charset=UTF-8; name=RightNow.js
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/js/10.2.0.1.6.140/min/RightNow.js
Content-Transfer-Encoding: Base64

LyoKQ29weXJpZ2h0IChjKSAyMDA5LCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgpDb2RlIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZToKaHR0
cDovL2RldmVsb3Blci55YWhvby5uZXQveXVpL2xpY2Vuc2UudHh0CnZlcnNpb246
IDIuNy4wCiovCmlmKHR5cGVvZiBZQUhPTz09InVuZGVmaW5lZCJ8fCFZQUhPTyl7
dmFyIFlBSE9PPXt9O31ZQUhPTy5uYW1lc3BhY2U9ZnVuY3Rpb24oKXt2YXIgQT1h
cmd1bWVudHMsRT1udWxsLEMsQixEO2ZvcihDPTA7QzxBLmxlbmd0aDtDPUMrMSl7
RD0oIiIrQVtDXSkuc3BsaXQoIi4iKTtFPVlBSE9PO2ZvcihCPShEWzBdPT0iWUFI
T08iKT8xOjA7QjxELmxlbmd0aDtCPUIrMSl7RVtEW0JdXT1FW0RbQl1dfHx7fTtF
PUVbRFtCXV07fX1yZXR1cm4gRTt9O1lBSE9PLmxvZz1mdW5jdGlvbihELEEsQyl7
dmFyIEI9WUFIT08ud2lkZ2V0LkxvZ2dlcjtpZihCJiZCLmxvZyl7cmV0dXJuIEIu
bG9nKEQsQSxDKTt9ZWxzZXtyZXR1cm4gZmFsc2U7fX07WUFIT08ucmVnaXN0ZXI9
ZnVuY3Rpb24oQSxFLEQpe3ZhciBJPVlBSE9PLmVudi5tb2R1bGVzLEIsSCxHLEYs
QztpZighSVtBXSl7SVtBXT17dmVyc2lvbnM6W10sYnVpbGRzOltdfTt9Qj1JW0Fd
O0g9RC52ZXJzaW9uO0c9RC5idWlsZDtGPVlBSE9PLmVudi5saXN0ZW5lcnM7Qi5u
YW1lPUE7Qi52ZXJzaW9uPUg7Qi5idWlsZD1HO0IudmVyc2lvbnMucHVzaChIKTtC
LmJ1aWxkcy5wdXNoKEcpO0IubWFpbkNsYXNzPUU7Zm9yKEM9MDtDPEYubGVuZ3Ro
O0M9QysxKXtGW0NdKEIpO31pZihFKXtFLlZFUlNJT049SDtFLkJVSUxEPUc7fWVs
c2V7WUFIT08ubG9nKCJtYWluQ2xhc3MgaXMgdW5kZWZpbmVkIGZvciBtb2R1bGUg
IitBLCJ3YXJuIik7fX07WUFIT08uZW52PVlBSE9PLmVudnx8e21vZHVsZXM6W10s
bGlzdGVuZXJzOltdfTtZQUhPTy5lbnYuZ2V0VmVyc2lvbj1mdW5jdGlvbihBKXty
ZXR1cm4gWUFIT08uZW52Lm1vZHVsZXNbQV18fG51bGw7fTtZQUhPTy5lbnYudWE9
ZnVuY3Rpb24oKXt2YXIgQz17aWU6MCxvcGVyYTowLGdlY2tvOjAsd2Via2l0OjAs
bW9iaWxlOm51bGwsYWlyOjAsY2FqYTowfSxCPW5hdmlnYXRvci51c2VyQWdlbnQs
QTtpZigoL0tIVE1MLykudGVzdChCKSl7Qy53ZWJraXQ9MTt9QT1CLm1hdGNoKC9B
cHBsZVdlYktpdFwvKFteXHNdKikvKTtpZihBJiZBWzFdKXtDLndlYmtpdD1wYXJz
ZUZsb2F0KEFbMV0pO2lmKC8gTW9iaWxlXC8vLnRlc3QoQikpe0MubW9iaWxlPSJB
cHBsZSI7fWVsc2V7QT1CLm1hdGNoKC9Ob2tpYU5bXlwvXSovKTtpZihBKXtDLm1v
YmlsZT1BWzBdO319QT1CLm1hdGNoKC9BZG9iZUFJUlwvKFteXHNdKikvKTtpZihB
KXtDLmFpcj1BWzBdO319aWYoIUMud2Via2l0KXtBPUIubWF0Y2goL09wZXJhW1xz
XC9dKFteXHNdKikvKTtpZihBJiZBWzFdKXtDLm9wZXJhPXBhcnNlRmxvYXQoQVsx
XSk7QT1CLm1hdGNoKC9PcGVyYSBNaW5pW147XSovKTtpZihBKXtDLm1vYmlsZT1B
WzBdO319ZWxzZXtBPUIubWF0Y2goL01TSUVccyhbXjtdKikvKTtpZihBJiZBWzFd
KXtDLmllPXBhcnNlRmxvYXQoQVsxXSk7fWVsc2V7QT1CLm1hdGNoKC9HZWNrb1wv
KFteXHNdKikvKTtpZihBKXtDLmdlY2tvPTE7QT1CLm1hdGNoKC9ydjooW15cc1wp
XSopLyk7aWYoQSYmQVsxXSl7Qy5nZWNrbz1wYXJzZUZsb2F0KEFbMV0pO319fX19
QT1CLm1hdGNoKC9DYWphXC8oW15cc10qKS8pO2lmKEEmJkFbMV0pe0MuY2FqYT1w
YXJzZUZsb2F0KEFbMV0pO31yZXR1cm4gQzt9KCk7KGZ1bmN0aW9uKCl7WUFIT08u
bmFtZXNwYWNlKCJ1dGlsIiwid2lkZ2V0IiwiZXhhbXBsZSIpO2lmKCJ1bmRlZmlu
ZWQiIT09dHlwZW9mIFlBSE9PX2NvbmZpZyl7dmFyIEI9WUFIT09fY29uZmlnLmxp
c3RlbmVyLEE9WUFIT08uZW52Lmxpc3RlbmVycyxEPXRydWUsQztpZihCKXtmb3Io
Qz0wO0M8QS5sZW5ndGg7Qz1DKzEpe2lmKEFbQ109PUIpe0Q9ZmFsc2U7YnJlYWs7
fX1pZihEKXtBLnB1c2goQik7fX19fSkoKTtZQUhPTy5sYW5nPVlBSE9PLmxhbmd8
fHt9OyhmdW5jdGlvbigpe3ZhciBCPVlBSE9PLmxhbmcsRj0iW29iamVjdCBBcnJh
eV0iLEM9IltvYmplY3QgRnVuY3Rpb25dIixBPU9iamVjdC5wcm90b3R5cGUsRT1b
InRvU3RyaW5nIiwidmFsdWVPZiJdLEQ9e2lzQXJyYXk6ZnVuY3Rpb24oRyl7cmV0
dXJuIEEudG9TdHJpbmcuYXBwbHkoRyk9PT1GO30saXNCb29sZWFuOmZ1bmN0aW9u
KEcpe3JldHVybiB0eXBlb2YgRz09PSJib29sZWFuIjt9LGlzRnVuY3Rpb246ZnVu
Y3Rpb24oRyl7cmV0dXJuIEEudG9TdHJpbmcuYXBwbHkoRyk9PT1DO30saXNOdWxs
OmZ1bmN0aW9uKEcpe3JldHVybiBHPT09bnVsbDt9LGlzTnVtYmVyOmZ1bmN0aW9u
KEcpe3JldHVybiB0eXBlb2YgRz09PSJudW1iZXIiJiZpc0Zpbml0ZShHKTt9LGlz
T2JqZWN0OmZ1bmN0aW9uKEcpe3JldHVybihHJiYodHlwZW9mIEc9PT0ib2JqZWN0
Inx8Qi5pc0Z1bmN0aW9uKEcpKSl8fGZhbHNlO30saXNTdHJpbmc6ZnVuY3Rpb24o
Ryl7cmV0dXJuIHR5cGVvZiBHPT09InN0cmluZyI7fSxpc1VuZGVmaW5lZDpmdW5j
dGlvbihHKXtyZXR1cm4gdHlwZW9mIEc9PT0idW5kZWZpbmVkIjt9LF9JRUVudW1G
aXg6KFlBSE9PLmVudi51YS5pZSk/ZnVuY3Rpb24oSSxIKXt2YXIgRyxLLEo7Zm9y
KEc9MDtHPEUubGVuZ3RoO0c9RysxKXtLPUVbR107Sj1IW0tdO2lmKEIuaXNGdW5j
dGlvbihKKSYmSiE9QVtLXSl7SVtLXT1KO319fTpmdW5jdGlvbigpe30sZXh0ZW5k
OmZ1bmN0aW9uKEosSyxJKXtpZighS3x8IUope3Rocm93IG5ldyBFcnJvcigiZXh0
ZW5kIGZhaWxlZCwgcGxlYXNlIGNoZWNrIHRoYXQgIisiYWxsIGRlcGVuZGVuY2ll
cyBhcmUgaW5jbHVkZWQuIik7fXZhciBIPWZ1bmN0aW9uKCl7fSxHO0gucHJvdG90
eXBlPUsucHJvdG90eXBlO0oucHJvdG90eXBlPW5ldyBIKCk7Si5wcm90b3R5cGUu
Y29uc3RydWN0b3I9SjtKLnN1cGVyY2xhc3M9Sy5wcm90b3R5cGU7aWYoSy5wcm90
b3R5cGUuY29uc3RydWN0b3I9PUEuY29uc3RydWN0b3Ipe0sucHJvdG90eXBlLmNv
bnN0cnVjdG9yPUs7fWlmKEkpe2ZvcihHIGluIEkpe2lmKEIuaGFzT3duUHJvcGVy
dHkoSSxHKSl7Si5wcm90b3R5cGVbR109SVtHXTt9fUIuX0lFRW51bUZpeChKLnBy
b3RvdHlwZSxJKTt9fSxhdWdtZW50T2JqZWN0OmZ1bmN0aW9uKEssSil7aWYoIUp8
fCFLKXt0aHJvdyBuZXcgRXJyb3IoIkFic29yYiBmYWlsZWQsIHZlcmlmeSBkZXBl
bmRlbmNpZXMuIik7fXZhciBHPWFyZ3VtZW50cyxJLEwsSD1HWzJdO2lmKEgmJkgh
PT10cnVlKXtmb3IoST0yO0k8Ry5sZW5ndGg7ST1JKzEpe0tbR1tJXV09SltHW0ld
XTt9fWVsc2V7Zm9yKEwgaW4gSil7aWYoSHx8IShMIGluIEspKXtLW0xdPUpbTF07
fX1CLl9JRUVudW1GaXgoSyxKKTt9fSxhdWdtZW50UHJvdG86ZnVuY3Rpb24oSixJ
KXtpZighSXx8IUope3Rocm93IG5ldyBFcnJvcigiQXVnbWVudCBmYWlsZWQsIHZl
cmlmeSBkZXBlbmRlbmNpZXMuIik7fXZhciBHPVtKLnByb3RvdHlwZSxJLnByb3Rv
dHlwZV0sSDtmb3IoSD0yO0g8YXJndW1lbnRzLmxlbmd0aDtIPUgrMSl7Ry5wdXNo
KGFyZ3VtZW50c1tIXSk7fUIuYXVnbWVudE9iamVjdC5hcHBseSh0aGlzLEcpO30s
ZHVtcDpmdW5jdGlvbihHLEwpe3ZhciBJLEssTj1bXSxPPSJ7Li4ufSIsSD0iZigp
ey4uLn0iLE09IiwgIixKPSIgPT4gIjtpZighQi5pc09iamVjdChHKSl7cmV0dXJu
IEcrIiI7fWVsc2V7aWYoRyBpbnN0YW5jZW9mIERhdGV8fCgibm9kZVR5cGUiIGlu
IEcmJiJ0YWdOYW1lIiBpbiBHKSl7cmV0dXJuIEc7fWVsc2V7aWYoQi5pc0Z1bmN0
aW9uKEcpKXtyZXR1cm4gSDt9fX1MPShCLmlzTnVtYmVyKEwpKT9MOjM7aWYoQi5p
c0FycmF5KEcpKXtOLnB1c2goIlsiKTtmb3IoST0wLEs9Ry5sZW5ndGg7STxLO0k9
SSsxKXtpZihCLmlzT2JqZWN0KEdbSV0pKXtOLnB1c2goKEw+MCk/Qi5kdW1wKEdb
SV0sTC0xKTpPKTt9ZWxzZXtOLnB1c2goR1tJXSk7fU4ucHVzaChNKTt9aWYoTi5s
ZW5ndGg+MSl7Ti5wb3AoKTt9Ti5wdXNoKCJdIik7fWVsc2V7Ti5wdXNoKCJ7Iik7
Zm9yKEkgaW4gRyl7aWYoQi5oYXNPd25Qcm9wZXJ0eShHLEkpKXtOLnB1c2goSStK
KTtpZihCLmlzT2JqZWN0KEdbSV0pKXtOLnB1c2goKEw+MCk/Qi5kdW1wKEdbSV0s
TC0xKTpPKTt9ZWxzZXtOLnB1c2goR1tJXSk7fU4ucHVzaChNKTt9fWlmKE4ubGVu
Z3RoPjEpe04ucG9wKCk7fU4ucHVzaCgifSIpO31yZXR1cm4gTi5qb2luKCIiKTt9
LHN1YnN0aXR1dGU6ZnVuY3Rpb24oVixILE8pe3ZhciBMLEssSixSLFMsVSxRPVtd
LEksTT0iZHVtcCIsUD0iICIsRz0ieyIsVD0ifSIsTjtmb3IoOzspe0w9Vi5sYXN0
SW5kZXhPZihHKTtpZihMPDApe2JyZWFrO31LPVYuaW5kZXhPZihULEwpO2lmKEwr
MT49Syl7YnJlYWs7fUk9Vi5zdWJzdHJpbmcoTCsxLEspO1I9STtVPW51bGw7Sj1S
LmluZGV4T2YoUCk7aWYoSj4tMSl7VT1SLnN1YnN0cmluZyhKKzEpO1I9Ui5zdWJz
dHJpbmcoMCxKKTt9Uz1IW1JdO2lmKE8pe1M9TyhSLFMsVSk7fWlmKEIuaXNPYmpl
Y3QoUykpe2lmKEIuaXNBcnJheShTKSl7Uz1CLmR1bXAoUyxwYXJzZUludChVLDEw
KSk7fWVsc2V7VT1VfHwiIjtOPVUuaW5kZXhPZihNKTtpZihOPi0xKXtVPVUuc3Vi
c3RyaW5nKDQpO31pZihTLnRvU3RyaW5nPT09QS50b1N0cmluZ3x8Tj4tMSl7Uz1C
LmR1bXAoUyxwYXJzZUludChVLDEwKSk7fWVsc2V7Uz1TLnRvU3RyaW5nKCk7fX19
ZWxzZXtpZighQi5pc1N0cmluZyhTKSYmIUIuaXNOdW1iZXIoUykpe1M9In4tIitR
Lmxlbmd0aCsiLX4iO1FbUS5sZW5ndGhdPUk7fX1WPVYuc3Vic3RyaW5nKDAsTCkr
UytWLnN1YnN0cmluZyhLKzEpO31mb3IoTD1RLmxlbmd0aC0xO0w+PTA7TD1MLTEp
e1Y9Vi5yZXBsYWNlKG5ldyBSZWdFeHAoIn4tIitMKyItfiIpLCJ7IitRW0xdKyJ9
IiwiZyIpO31yZXR1cm4gVjt9LHRyaW06ZnVuY3Rpb24oRyl7dHJ5e3JldHVybiBH
LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKTt9Y2F0Y2goSCl7cmV0dXJuIEc7fX0s
bWVyZ2U6ZnVuY3Rpb24oKXt2YXIgSj17fSxIPWFyZ3VtZW50cyxHPUgubGVuZ3Ro
LEk7Zm9yKEk9MDtJPEc7ST1JKzEpe0IuYXVnbWVudE9iamVjdChKLEhbSV0sdHJ1
ZSk7fXJldHVybiBKO30sbGF0ZXI6ZnVuY3Rpb24oTixILE8sSixLKXtOPU58fDA7
SD1IfHx7fTt2YXIgST1PLE09SixMLEc7aWYoQi5pc1N0cmluZyhPKSl7ST1IW09d
O31pZighSSl7dGhyb3cgbmV3IFR5cGVFcnJvcigibWV0aG9kIHVuZGVmaW5lZCIp
O31pZighQi5pc0FycmF5KE0pKXtNPVtKXTt9TD1mdW5jdGlvbigpe0kuYXBwbHko
SCxNKTt9O0c9KEspP3NldEludGVydmFsKEwsTik6c2V0VGltZW91dChMLE4pO3Jl
dHVybntpbnRlcnZhbDpLLGNhbmNlbDpmdW5jdGlvbigpe2lmKHRoaXMuaW50ZXJ2
YWwpe2NsZWFySW50ZXJ2YWwoRyk7fWVsc2V7Y2xlYXJUaW1lb3V0KEcpO319fTt9
LGlzVmFsdWU6ZnVuY3Rpb24oRyl7cmV0dXJuKEIuaXNPYmplY3QoRyl8fEIuaXNT
dHJpbmcoRyl8fEIuaXNOdW1iZXIoRyl8fEIuaXNCb29sZWFuKEcpKTt9fTtCLmhh
c093blByb3BlcnR5PShBLmhhc093blByb3BlcnR5KT9mdW5jdGlvbihHLEgpe3Jl
dHVybiBHJiZHLmhhc093blByb3BlcnR5KEgpO306ZnVuY3Rpb24oRyxIKXtyZXR1
cm4gIUIuaXNVbmRlZmluZWQoR1tIXSkmJkcuY29uc3RydWN0b3IucHJvdG90eXBl
W0hdIT09R1tIXTt9O0QuYXVnbWVudE9iamVjdChCLEQsdHJ1ZSk7WUFIT08udXRp
bC5MYW5nPUI7Qi5hdWdtZW50PUIuYXVnbWVudFByb3RvO1lBSE9PLmF1Z21lbnQ9
Qi5hdWdtZW50UHJvdG87WUFIT08uZXh0ZW5kPUIuZXh0ZW5kO30pKCk7WUFIT08u
cmVnaXN0ZXIoInlhaG9vIixZQUhPTyx7dmVyc2lvbjoiMi43LjAiLGJ1aWxkOiIx
Nzk5In0pOyhmdW5jdGlvbigpe1lBSE9PLmVudi5faWRfY291bnRlcj1ZQUhPTy5l
bnYuX2lkX2NvdW50ZXJ8fDA7dmFyIEU9WUFIT08udXRpbCxMPVlBSE9PLmxhbmcs
bT1ZQUhPTy5lbnYudWEsQT1ZQUhPTy5sYW5nLnRyaW0sZD17fSxoPXt9LE49L150
KD86YWJsZXxkfGgpJC9pLFg9L2NvbG9yJC9pLEs9d2luZG93LmRvY3VtZW50LFc9
Sy5kb2N1bWVudEVsZW1lbnQsZT0ib3duZXJEb2N1bWVudCIsbj0iZGVmYXVsdFZp
ZXciLHY9ImRvY3VtZW50RWxlbWVudCIsdD0iY29tcGF0TW9kZSIsYj0ib2Zmc2V0
TGVmdCIsUD0ib2Zmc2V0VG9wIix1PSJvZmZzZXRQYXJlbnQiLFo9InBhcmVudE5v
ZGUiLGw9Im5vZGVUeXBlIixDPSJ0YWdOYW1lIixPPSJzY3JvbGxMZWZ0IixpPSJz
Y3JvbGxUb3AiLFE9ImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsdz0iZ2V0Q29tcHV0
ZWRTdHlsZSIsYT0iY3VycmVudFN0eWxlIixNPSJDU1MxQ29tcGF0IixjPSJCYWNr
Q29tcGF0IixnPSJjbGFzcyIsRj0iY2xhc3NOYW1lIixKPSIiLEI9IiAiLHM9Iig/
Ol58XFxzKSIsaz0iKD89IHwkKSIsVT0iZyIscD0icG9zaXRpb24iLGY9ImZpeGVk
IixWPSJyZWxhdGl2ZSIsaj0ibGVmdCIsbz0idG9wIixyPSJtZWRpdW0iLHE9ImJv
cmRlckxlZnRXaWR0aCIsUj0iYm9yZGVyVG9wV2lkdGgiLEQ9bS5vcGVyYSxJPW0u
d2Via2l0LEg9bS5nZWNrbyxUPW0uaWU7RS5Eb209e0NVU1RPTV9BVFRSSUJVVEVT
OighVy5oYXNBdHRyaWJ1dGUpP3siZm9yIjoiaHRtbEZvciIsImNsYXNzIjpGfTp7
Imh0bWxGb3IiOiJmb3IiLCJjbGFzc05hbWUiOmd9LGdldDpmdW5jdGlvbih5KXt2
YXIgQUEsWSx6LHgsRztpZih5KXtpZih5W2xdfHx5Lml0ZW0pe3JldHVybiB5O31p
Zih0eXBlb2YgeT09PSJzdHJpbmciKXtBQT15O3k9Sy5nZXRFbGVtZW50QnlJZCh5
KTtpZih5JiZ5LmlkPT09QUEpe3JldHVybiB5O31lbHNle2lmKHkmJksuYWxsKXt5
PW51bGw7WT1LLmFsbFtBQV07Zm9yKHg9MCxHPVkubGVuZ3RoO3g8RzsrK3gpe2lm
KFlbeF0uaWQ9PT1BQSl7cmV0dXJuIFlbeF07fX19fXJldHVybiB5O31pZih5LkRP
TV9FVkVOVFMpe3k9eS5nZXQoImVsZW1lbnQiKTt9aWYoImxlbmd0aCIgaW4geSl7
ej1bXTtmb3IoeD0wLEc9eS5sZW5ndGg7eDxHOysreCl7elt6Lmxlbmd0aF09RS5E
b20uZ2V0KHlbeF0pO31yZXR1cm4gejt9cmV0dXJuIHk7fXJldHVybiBudWxsO30s
Z2V0Q29tcHV0ZWRTdHlsZTpmdW5jdGlvbihHLFkpe2lmKHdpbmRvd1t3XSl7cmV0
dXJuIEdbZV1bbl1bd10oRyxudWxsKVtZXTt9ZWxzZXtpZihHW2FdKXtyZXR1cm4g
RS5Eb20uSUVfQ29tcHV0ZWRTdHlsZS5nZXQoRyxZKTt9fX0sZ2V0U3R5bGU6ZnVu
Y3Rpb24oRyxZKXtyZXR1cm4gRS5Eb20uYmF0Y2goRyxFLkRvbS5fZ2V0U3R5bGUs
WSk7fSxfZ2V0U3R5bGU6ZnVuY3Rpb24oKXtpZih3aW5kb3dbd10pe3JldHVybiBm
dW5jdGlvbihHLHkpe3k9KHk9PT0iZmxvYXQiKT95PSJjc3NGbG9hdCI6RS5Eb20u
X3RvQ2FtZWwoeSk7dmFyIHg9Ry5zdHlsZVt5XSxZO2lmKCF4KXtZPUdbZV1bbl1b
d10oRyxudWxsKTtpZihZKXt4PVlbeV07fX1yZXR1cm4geDt9O31lbHNle2lmKFdb
YV0pe3JldHVybiBmdW5jdGlvbihHLHkpe3ZhciB4O3N3aXRjaCh5KXtjYXNlIm9w
YWNpdHkiOng9MTAwO3RyeXt4PUcuZmlsdGVyc1siRFhJbWFnZVRyYW5zZm9ybS5N
aWNyb3NvZnQuQWxwaGEiXS5vcGFjaXR5O31jYXRjaCh6KXt0cnl7eD1HLmZpbHRl
cnMoImFscGhhIikub3BhY2l0eTt9Y2F0Y2goWSl7fX1yZXR1cm4geC8xMDA7Y2Fz
ZSJmbG9hdCI6eT0ic3R5bGVGbG9hdCI7ZGVmYXVsdDp5PUUuRG9tLl90b0NhbWVs
KHkpO3g9R1thXT9HW2FdW3ldOm51bGw7cmV0dXJuKEcuc3R5bGVbeV18fHgpO319
O319fSgpLHNldFN0eWxlOmZ1bmN0aW9uKEcsWSx4KXtFLkRvbS5iYXRjaChHLEUu
RG9tLl9zZXRTdHlsZSx7cHJvcDpZLHZhbDp4fSk7fSxfc2V0U3R5bGU6ZnVuY3Rp
b24oKXtpZihUKXtyZXR1cm4gZnVuY3Rpb24oWSxHKXt2YXIgeD1FLkRvbS5fdG9D
YW1lbChHLnByb3ApLHk9Ry52YWw7aWYoWSl7c3dpdGNoKHgpe2Nhc2Uib3BhY2l0
eSI6aWYoTC5pc1N0cmluZyhZLnN0eWxlLmZpbHRlcikpe1kuc3R5bGUuZmlsdGVy
PSJhbHBoYShvcGFjaXR5PSIreSoxMDArIikiO2lmKCFZW2FdfHwhWVthXS5oYXNM
YXlvdXQpe1kuc3R5bGUuem9vbT0xO319YnJlYWs7Y2FzZSJmbG9hdCI6eD0ic3R5
bGVGbG9hdCI7ZGVmYXVsdDpZLnN0eWxlW3hdPXk7fX1lbHNle319O31lbHNle3Jl
dHVybiBmdW5jdGlvbihZLEcpe3ZhciB4PUUuRG9tLl90b0NhbWVsKEcucHJvcCks
eT1HLnZhbDtpZihZKXtpZih4PT0iZmxvYXQiKXt4PSJjc3NGbG9hdCI7fVkuc3R5
bGVbeF09eTt9ZWxzZXt9fTt9fSgpLGdldFhZOmZ1bmN0aW9uKEcpe3JldHVybiBF
LkRvbS5iYXRjaChHLEUuRG9tLl9nZXRYWSk7fSxfY2FuUG9zaXRpb246ZnVuY3Rp
b24oRyl7cmV0dXJuKEUuRG9tLl9nZXRTdHlsZShHLCJkaXNwbGF5IikhPT0ibm9u
ZSImJkUuRG9tLl9pbkRvYyhHKSk7fSxfZ2V0WFk6ZnVuY3Rpb24oKXtpZihLW3Zd
W1FdKXtyZXR1cm4gZnVuY3Rpb24oeSl7dmFyIHosWSxBQSxBRixBRSxBRCxBQyxH
LHgsQUI9TWF0aC5mbG9vcixBRz1mYWxzZTtpZihFLkRvbS5fY2FuUG9zaXRpb24o
eSkpe0FBPXlbUV0oKTtBRj15W2VdO3o9RS5Eb20uZ2V0RG9jdW1lbnRTY3JvbGxM
ZWZ0KEFGKTtZPUUuRG9tLmdldERvY3VtZW50U2Nyb2xsVG9wKEFGKTtBRz1bQUIo
QUFbal0pLEFCKEFBW29dKV07aWYoVCYmbS5pZTw4KXtBRT0yO0FEPTI7QUM9QUZb
dF07Rz1TKEFGW3ZdLHEpO3g9UyhBRlt2XSxSKTtpZihtLmllPT09Nil7aWYoQUMh
PT1jKXtBRT0wO0FEPTA7fX1pZigoQUM9PWMpKXtpZihHIT09cil7QUU9cGFyc2VJ
bnQoRywxMCk7fWlmKHghPT1yKXtBRD1wYXJzZUludCh4LDEwKTt9fUFHWzBdLT1B
RTtBR1sxXS09QUQ7fWlmKChZfHx6KSl7QUdbMF0rPXo7QUdbMV0rPVk7fUFHWzBd
PUFCKEFHWzBdKTtBR1sxXT1BQihBR1sxXSk7fWVsc2V7fXJldHVybiBBRzt9O31l
bHNle3JldHVybiBmdW5jdGlvbih5KXt2YXIgeCxZLEFBLEFCLEFDLHo9ZmFsc2Us
Rz15O2lmKEUuRG9tLl9jYW5Qb3NpdGlvbih5KSl7ej1beVtiXSx5W1BdXTt4PUUu
RG9tLmdldERvY3VtZW50U2Nyb2xsTGVmdCh5W2VdKTtZPUUuRG9tLmdldERvY3Vt
ZW50U2Nyb2xsVG9wKHlbZV0pO0FDPSgoSHx8bS53ZWJraXQ+NTE5KT90cnVlOmZh
bHNlKTt3aGlsZSgoRz1HW3VdKSl7elswXSs9R1tiXTt6WzFdKz1HW1BdO2lmKEFD
KXt6PUUuRG9tLl9jYWxjQm9yZGVycyhHLHopO319aWYoRS5Eb20uX2dldFN0eWxl
KHkscCkhPT1mKXtHPXk7d2hpbGUoKEc9R1taXSkmJkdbQ10pe0FBPUdbaV07QUI9
R1tPXTtpZihIJiYoRS5Eb20uX2dldFN0eWxlKEcsIm92ZXJmbG93IikhPT0idmlz
aWJsZSIpKXt6PUUuRG9tLl9jYWxjQm9yZGVycyhHLHopO31pZihBQXx8QUIpe3pb
MF0tPUFCO3pbMV0tPUFBO319elswXSs9eDt6WzFdKz1ZO31lbHNle2lmKEQpe3pb
MF0tPXg7elsxXS09WTt9ZWxzZXtpZihJfHxIKXt6WzBdKz14O3pbMV0rPVk7fX19
elswXT1NYXRoLmZsb29yKHpbMF0pO3pbMV09TWF0aC5mbG9vcih6WzFdKTt9ZWxz
ZXt9cmV0dXJuIHo7fTt9fSgpLGdldFg6ZnVuY3Rpb24oRyl7dmFyIFk9ZnVuY3Rp
b24oeCl7cmV0dXJuIEUuRG9tLmdldFhZKHgpWzBdO307cmV0dXJuIEUuRG9tLmJh
dGNoKEcsWSxFLkRvbSx0cnVlKTt9LGdldFk6ZnVuY3Rpb24oRyl7dmFyIFk9ZnVu
Y3Rpb24oeCl7cmV0dXJuIEUuRG9tLmdldFhZKHgpWzFdO307cmV0dXJuIEUuRG9t
LmJhdGNoKEcsWSxFLkRvbSx0cnVlKTt9LHNldFhZOmZ1bmN0aW9uKEcseCxZKXtF
LkRvbS5iYXRjaChHLEUuRG9tLl9zZXRYWSx7cG9zOngsbm9SZXRyeTpZfSk7fSxf
c2V0WFk6ZnVuY3Rpb24oRyx6KXt2YXIgQUE9RS5Eb20uX2dldFN0eWxlKEcscCks
eT1FLkRvbS5zZXRTdHlsZSxBRD16LnBvcyxZPXoubm9SZXRyeSxBQj1bcGFyc2VJ
bnQoRS5Eb20uZ2V0Q29tcHV0ZWRTdHlsZShHLGopLDEwKSxwYXJzZUludChFLkRv
bS5nZXRDb21wdXRlZFN0eWxlKEcsbyksMTApXSxBQyx4O2lmKEFBPT0ic3RhdGlj
Iil7QUE9Vjt5KEcscCxBQSk7fUFDPUUuRG9tLl9nZXRYWShHKTtpZighQUR8fEFD
PT09ZmFsc2Upe3JldHVybiBmYWxzZTt9aWYoaXNOYU4oQUJbMF0pKXtBQlswXT0o
QUE9PVYpPzA6R1tiXTt9aWYoaXNOYU4oQUJbMV0pKXtBQlsxXT0oQUE9PVYpPzA6
R1tQXTt9aWYoQURbMF0hPT1udWxsKXt5KEcsaixBRFswXS1BQ1swXStBQlswXSsi
cHgiKTt9aWYoQURbMV0hPT1udWxsKXt5KEcsbyxBRFsxXS1BQ1sxXStBQlsxXSsi
cHgiKTt9aWYoIVkpe3g9RS5Eb20uX2dldFhZKEcpO2lmKChBRFswXSE9PW51bGwm
JnhbMF0hPUFEWzBdKXx8KEFEWzFdIT09bnVsbCYmeFsxXSE9QURbMV0pKXtFLkRv
bS5fc2V0WFkoRyx7cG9zOkFELG5vUmV0cnk6dHJ1ZX0pO319fSxzZXRYOmZ1bmN0
aW9uKFksRyl7RS5Eb20uc2V0WFkoWSxbRyxudWxsXSk7fSxzZXRZOmZ1bmN0aW9u
KEcsWSl7RS5Eb20uc2V0WFkoRyxbbnVsbCxZXSk7fSxnZXRSZWdpb246ZnVuY3Rp
b24oRyl7dmFyIFk9ZnVuY3Rpb24oeCl7dmFyIHk9ZmFsc2U7aWYoRS5Eb20uX2Nh
blBvc2l0aW9uKHgpKXt5PUUuUmVnaW9uLmdldFJlZ2lvbih4KTt9ZWxzZXt9cmV0
dXJuIHk7fTtyZXR1cm4gRS5Eb20uYmF0Y2goRyxZLEUuRG9tLHRydWUpO30sZ2V0
Q2xpZW50V2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gRS5Eb20uZ2V0Vmlld3BvcnRX
aWR0aCgpO30sZ2V0Q2xpZW50SGVpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIEUuRG9t
LmdldFZpZXdwb3J0SGVpZ2h0KCk7fSxnZXRFbGVtZW50c0J5Q2xhc3NOYW1lOmZ1
bmN0aW9uKEFCLEFGLEFDLEFFLHgsQUQpe0FCPUwudHJpbShBQik7QUY9QUZ8fCIq
IjtBQz0oQUMpP0UuRG9tLmdldChBQyk6bnVsbHx8SztpZighQUMpe3JldHVybltd
O312YXIgWT1bXSxHPUFDLmdldEVsZW1lbnRzQnlUYWdOYW1lKEFGKSx6PUUuRG9t
Lmhhc0NsYXNzO2Zvcih2YXIgeT0wLEFBPUcubGVuZ3RoO3k8QUE7Kyt5KXtpZih6
KEdbeV0sQUIpKXtZW1kubGVuZ3RoXT1HW3ldO319aWYoQUUpe0UuRG9tLmJhdGNo
KFksQUUseCxBRCk7fXJldHVybiBZO30saGFzQ2xhc3M6ZnVuY3Rpb24oWSxHKXty
ZXR1cm4gRS5Eb20uYmF0Y2goWSxFLkRvbS5faGFzQ2xhc3MsRyk7fSxfaGFzQ2xh
c3M6ZnVuY3Rpb24oeCxZKXt2YXIgRz1mYWxzZSx5O2lmKHgmJlkpe3k9RS5Eb20u
Z2V0QXR0cmlidXRlKHgsRil8fEo7aWYoWS5leGVjKXtHPVkudGVzdCh5KTt9ZWxz
ZXtHPVkmJihCK3krQikuaW5kZXhPZihCK1krQik+LTE7fX1lbHNle31yZXR1cm4g
Rzt9LGFkZENsYXNzOmZ1bmN0aW9uKFksRyl7cmV0dXJuIEUuRG9tLmJhdGNoKFks
RS5Eb20uX2FkZENsYXNzLEcpO30sX2FkZENsYXNzOmZ1bmN0aW9uKHgsWSl7dmFy
IEc9ZmFsc2UseTtpZih4JiZZKXt5PUUuRG9tLmdldEF0dHJpYnV0ZSh4LEYpfHxK
O2lmKCFFLkRvbS5faGFzQ2xhc3MoeCxZKSl7RS5Eb20uc2V0QXR0cmlidXRlKHgs
RixBKHkrQitZKSk7Rz10cnVlO319ZWxzZXt9cmV0dXJuIEc7fSxyZW1vdmVDbGFz
czpmdW5jdGlvbihZLEcpe3JldHVybiBFLkRvbS5iYXRjaChZLEUuRG9tLl9yZW1v
dmVDbGFzcyxHKTt9LF9yZW1vdmVDbGFzczpmdW5jdGlvbih5LHgpe3ZhciBZPWZh
bHNlLEFBLHosRztpZih5JiZ4KXtBQT1FLkRvbS5nZXRBdHRyaWJ1dGUoeSxGKXx8
SjtFLkRvbS5zZXRBdHRyaWJ1dGUoeSxGLEFBLnJlcGxhY2UoRS5Eb20uX2dldENs
YXNzUmVnZXgoeCksSikpO3o9RS5Eb20uZ2V0QXR0cmlidXRlKHksRik7aWYoQUEh
PT16KXtFLkRvbS5zZXRBdHRyaWJ1dGUoeSxGLEEoeikpO1k9dHJ1ZTtpZihFLkRv
bS5nZXRBdHRyaWJ1dGUoeSxGKT09PSIiKXtHPSh5Lmhhc0F0dHJpYnV0ZSYmeS5o
YXNBdHRyaWJ1dGUoZykpP2c6Rjt5LnJlbW92ZUF0dHJpYnV0ZShHKTt9fX1lbHNl
e31yZXR1cm4gWTt9LHJlcGxhY2VDbGFzczpmdW5jdGlvbih4LFksRyl7cmV0dXJu
IEUuRG9tLmJhdGNoKHgsRS5Eb20uX3JlcGxhY2VDbGFzcyx7ZnJvbTpZLHRvOkd9
KTsKfSxfcmVwbGFjZUNsYXNzOmZ1bmN0aW9uKHkseCl7dmFyIFksQUIsQUEsRz1m
YWxzZSx6O2lmKHkmJngpe0FCPXguZnJvbTtBQT14LnRvO2lmKCFBQSl7Rz1mYWxz
ZTt9ZWxzZXtpZighQUIpe0c9RS5Eb20uX2FkZENsYXNzKHkseC50byk7fWVsc2V7
aWYoQUIhPT1BQSl7ej1FLkRvbS5nZXRBdHRyaWJ1dGUoeSxGKXx8SjtZPShCK3ou
cmVwbGFjZShFLkRvbS5fZ2V0Q2xhc3NSZWdleChBQiksQitBQSkpLnNwbGl0KEUu
RG9tLl9nZXRDbGFzc1JlZ2V4KEFBKSk7WS5zcGxpY2UoMSwwLEIrQUEpO0UuRG9t
LnNldEF0dHJpYnV0ZSh5LEYsQShZLmpvaW4oSikpKTtHPXRydWU7fX19fWVsc2V7
fXJldHVybiBHO30sZ2VuZXJhdGVJZDpmdW5jdGlvbihHLHgpe3g9eHx8Inl1aS1n
ZW4iO3ZhciBZPWZ1bmN0aW9uKHkpe2lmKHkmJnkuaWQpe3JldHVybiB5LmlkO312
YXIgej14K1lBSE9PLmVudi5faWRfY291bnRlcisrO2lmKHkpe2lmKHlbZV0uZ2V0
RWxlbWVudEJ5SWQoeikpe3JldHVybiBFLkRvbS5nZW5lcmF0ZUlkKHkseit4KTt9
eS5pZD16O31yZXR1cm4gejt9O3JldHVybiBFLkRvbS5iYXRjaChHLFksRS5Eb20s
dHJ1ZSl8fFkuYXBwbHkoRS5Eb20sYXJndW1lbnRzKTt9LGlzQW5jZXN0b3I6ZnVu
Y3Rpb24oWSx4KXtZPUUuRG9tLmdldChZKTt4PUUuRG9tLmdldCh4KTt2YXIgRz1m
YWxzZTtpZigoWSYmeCkmJihZW2xdJiZ4W2xdKSl7aWYoWS5jb250YWlucyYmWSE9
PXgpe0c9WS5jb250YWlucyh4KTt9ZWxzZXtpZihZLmNvbXBhcmVEb2N1bWVudFBv
c2l0aW9uKXtHPSEhKFkuY29tcGFyZURvY3VtZW50UG9zaXRpb24oeCkmMTYpO319
fWVsc2V7fXJldHVybiBHO30saW5Eb2N1bWVudDpmdW5jdGlvbihHLFkpe3JldHVy
biBFLkRvbS5faW5Eb2MoRS5Eb20uZ2V0KEcpLFkpO30sX2luRG9jOmZ1bmN0aW9u
KFkseCl7dmFyIEc9ZmFsc2U7aWYoWSYmWVtDXSl7eD14fHxZW2VdO0c9RS5Eb20u
aXNBbmNlc3Rvcih4W3ZdLFkpO31lbHNle31yZXR1cm4gRzt9LGdldEVsZW1lbnRz
Qnk6ZnVuY3Rpb24oWSxBRixBQixBRCx5LEFDLEFFKXtBRj1BRnx8IioiO0FCPShB
Qik/RS5Eb20uZ2V0KEFCKTpudWxsfHxLO2lmKCFBQil7cmV0dXJuW107fXZhciB4
PVtdLEc9QUIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoQUYpO2Zvcih2YXIgej0wLEFB
PUcubGVuZ3RoO3o8QUE7Kyt6KXtpZihZKEdbel0pKXtpZihBRSl7eD1HW3pdO2Jy
ZWFrO31lbHNle3hbeC5sZW5ndGhdPUdbel07fX19aWYoQUQpe0UuRG9tLmJhdGNo
KHgsQUQseSxBQyk7fXJldHVybiB4O30sZ2V0RWxlbWVudEJ5OmZ1bmN0aW9uKHgs
RyxZKXtyZXR1cm4gRS5Eb20uZ2V0RWxlbWVudHNCeSh4LEcsWSxudWxsLG51bGws
bnVsbCx0cnVlKTt9LGJhdGNoOmZ1bmN0aW9uKHgsQUIsQUEseil7dmFyIHk9W10s
WT0oeik/QUE6d2luZG93O3g9KHgmJih4W0NdfHx4Lml0ZW0pKT94OkUuRG9tLmdl
dCh4KTtpZih4JiZBQil7aWYoeFtDXXx8eC5sZW5ndGg9PT11bmRlZmluZWQpe3Jl
dHVybiBBQi5jYWxsKFkseCxBQSk7fWZvcih2YXIgRz0wO0c8eC5sZW5ndGg7KytH
KXt5W3kubGVuZ3RoXT1BQi5jYWxsKFkseFtHXSxBQSk7fX1lbHNle3JldHVybiBm
YWxzZTt9cmV0dXJuIHk7fSxnZXREb2N1bWVudEhlaWdodDpmdW5jdGlvbigpe3Zh
ciBZPShLW3RdIT1NfHxJKT9LLmJvZHkuc2Nyb2xsSGVpZ2h0Olcuc2Nyb2xsSGVp
Z2h0LEc9TWF0aC5tYXgoWSxFLkRvbS5nZXRWaWV3cG9ydEhlaWdodCgpKTtyZXR1
cm4gRzt9LGdldERvY3VtZW50V2lkdGg6ZnVuY3Rpb24oKXt2YXIgWT0oS1t0XSE9
TXx8SSk/Sy5ib2R5LnNjcm9sbFdpZHRoOlcuc2Nyb2xsV2lkdGgsRz1NYXRoLm1h
eChZLEUuRG9tLmdldFZpZXdwb3J0V2lkdGgoKSk7cmV0dXJuIEc7fSxnZXRWaWV3
cG9ydEhlaWdodDpmdW5jdGlvbigpe3ZhciBHPXNlbGYuaW5uZXJIZWlnaHQsWT1L
W3RdO2lmKChZfHxUKSYmIUQpe0c9KFk9PU0pP1cuY2xpZW50SGVpZ2h0OksuYm9k
eS5jbGllbnRIZWlnaHQ7fXJldHVybiBHO30sZ2V0Vmlld3BvcnRXaWR0aDpmdW5j
dGlvbigpe3ZhciBHPXNlbGYuaW5uZXJXaWR0aCxZPUtbdF07aWYoWXx8VCl7Rz0o
WT09TSk/Vy5jbGllbnRXaWR0aDpLLmJvZHkuY2xpZW50V2lkdGg7fXJldHVybiBH
O30sZ2V0QW5jZXN0b3JCeTpmdW5jdGlvbihHLFkpe3doaWxlKChHPUdbWl0pKXtp
ZihFLkRvbS5fdGVzdEVsZW1lbnQoRyxZKSl7cmV0dXJuIEc7fX1yZXR1cm4gbnVs
bDt9LGdldEFuY2VzdG9yQnlDbGFzc05hbWU6ZnVuY3Rpb24oWSxHKXtZPUUuRG9t
LmdldChZKTtpZighWSl7cmV0dXJuIG51bGw7fXZhciB4PWZ1bmN0aW9uKHkpe3Jl
dHVybiBFLkRvbS5oYXNDbGFzcyh5LEcpO307cmV0dXJuIEUuRG9tLmdldEFuY2Vz
dG9yQnkoWSx4KTt9LGdldEFuY2VzdG9yQnlUYWdOYW1lOmZ1bmN0aW9uKFksRyl7
WT1FLkRvbS5nZXQoWSk7aWYoIVkpe3JldHVybiBudWxsO312YXIgeD1mdW5jdGlv
bih5KXtyZXR1cm4geVtDXSYmeVtDXS50b1VwcGVyQ2FzZSgpPT1HLnRvVXBwZXJD
YXNlKCk7fTtyZXR1cm4gRS5Eb20uZ2V0QW5jZXN0b3JCeShZLHgpO30sZ2V0UHJl
dmlvdXNTaWJsaW5nQnk6ZnVuY3Rpb24oRyxZKXt3aGlsZShHKXtHPUcucHJldmlv
dXNTaWJsaW5nO2lmKEUuRG9tLl90ZXN0RWxlbWVudChHLFkpKXtyZXR1cm4gRzt9
fXJldHVybiBudWxsO30sZ2V0UHJldmlvdXNTaWJsaW5nOmZ1bmN0aW9uKEcpe0c9
RS5Eb20uZ2V0KEcpO2lmKCFHKXtyZXR1cm4gbnVsbDt9cmV0dXJuIEUuRG9tLmdl
dFByZXZpb3VzU2libGluZ0J5KEcpO30sZ2V0TmV4dFNpYmxpbmdCeTpmdW5jdGlv
bihHLFkpe3doaWxlKEcpe0c9Ry5uZXh0U2libGluZztpZihFLkRvbS5fdGVzdEVs
ZW1lbnQoRyxZKSl7cmV0dXJuIEc7fX1yZXR1cm4gbnVsbDt9LGdldE5leHRTaWJs
aW5nOmZ1bmN0aW9uKEcpe0c9RS5Eb20uZ2V0KEcpO2lmKCFHKXtyZXR1cm4gbnVs
bDt9cmV0dXJuIEUuRG9tLmdldE5leHRTaWJsaW5nQnkoRyk7fSxnZXRGaXJzdENo
aWxkQnk6ZnVuY3Rpb24oRyx4KXt2YXIgWT0oRS5Eb20uX3Rlc3RFbGVtZW50KEcu
Zmlyc3RDaGlsZCx4KSk/Ry5maXJzdENoaWxkOm51bGw7cmV0dXJuIFl8fEUuRG9t
LmdldE5leHRTaWJsaW5nQnkoRy5maXJzdENoaWxkLHgpO30sZ2V0Rmlyc3RDaGls
ZDpmdW5jdGlvbihHLFkpe0c9RS5Eb20uZ2V0KEcpO2lmKCFHKXtyZXR1cm4gbnVs
bDt9cmV0dXJuIEUuRG9tLmdldEZpcnN0Q2hpbGRCeShHKTt9LGdldExhc3RDaGls
ZEJ5OmZ1bmN0aW9uKEcseCl7aWYoIUcpe3JldHVybiBudWxsO312YXIgWT0oRS5E
b20uX3Rlc3RFbGVtZW50KEcubGFzdENoaWxkLHgpKT9HLmxhc3RDaGlsZDpudWxs
O3JldHVybiBZfHxFLkRvbS5nZXRQcmV2aW91c1NpYmxpbmdCeShHLmxhc3RDaGls
ZCx4KTt9LGdldExhc3RDaGlsZDpmdW5jdGlvbihHKXtHPUUuRG9tLmdldChHKTty
ZXR1cm4gRS5Eb20uZ2V0TGFzdENoaWxkQnkoRyk7fSxnZXRDaGlsZHJlbkJ5OmZ1
bmN0aW9uKFkseSl7dmFyIHg9RS5Eb20uZ2V0Rmlyc3RDaGlsZEJ5KFkseSksRz14
P1t4XTpbXTtFLkRvbS5nZXROZXh0U2libGluZ0J5KHgsZnVuY3Rpb24oeil7aWYo
IXl8fHkoeikpe0dbRy5sZW5ndGhdPXo7fXJldHVybiBmYWxzZTt9KTtyZXR1cm4g
Rzt9LGdldENoaWxkcmVuOmZ1bmN0aW9uKEcpe0c9RS5Eb20uZ2V0KEcpO2lmKCFH
KXt9cmV0dXJuIEUuRG9tLmdldENoaWxkcmVuQnkoRyk7fSxnZXREb2N1bWVudFNj
cm9sbExlZnQ6ZnVuY3Rpb24oRyl7Rz1HfHxLO3JldHVybiBNYXRoLm1heChHW3Zd
LnNjcm9sbExlZnQsRy5ib2R5LnNjcm9sbExlZnQpO30sZ2V0RG9jdW1lbnRTY3Jv
bGxUb3A6ZnVuY3Rpb24oRyl7Rz1HfHxLO3JldHVybiBNYXRoLm1heChHW3ZdLnNj
cm9sbFRvcCxHLmJvZHkuc2Nyb2xsVG9wKTt9LGluc2VydEJlZm9yZTpmdW5jdGlv
bihZLEcpe1k9RS5Eb20uZ2V0KFkpO0c9RS5Eb20uZ2V0KEcpO2lmKCFZfHwhR3x8
IUdbWl0pe3JldHVybiBudWxsO31yZXR1cm4gR1taXS5pbnNlcnRCZWZvcmUoWSxH
KTt9LGluc2VydEFmdGVyOmZ1bmN0aW9uKFksRyl7WT1FLkRvbS5nZXQoWSk7Rz1F
LkRvbS5nZXQoRyk7aWYoIVl8fCFHfHwhR1taXSl7cmV0dXJuIG51bGw7fWlmKEcu
bmV4dFNpYmxpbmcpe3JldHVybiBHW1pdLmluc2VydEJlZm9yZShZLEcubmV4dFNp
YmxpbmcpO31lbHNle3JldHVybiBHW1pdLmFwcGVuZENoaWxkKFkpO319LGdldENs
aWVudFJlZ2lvbjpmdW5jdGlvbigpe3ZhciB4PUUuRG9tLmdldERvY3VtZW50U2Ny
b2xsVG9wKCksWT1FLkRvbS5nZXREb2N1bWVudFNjcm9sbExlZnQoKSx5PUUuRG9t
LmdldFZpZXdwb3J0V2lkdGgoKStZLEc9RS5Eb20uZ2V0Vmlld3BvcnRIZWlnaHQo
KSt4O3JldHVybiBuZXcgRS5SZWdpb24oeCx5LEcsWSk7fSxzZXRBdHRyaWJ1dGU6
ZnVuY3Rpb24oWSxHLHgpe0c9RS5Eb20uQ1VTVE9NX0FUVFJJQlVURVNbR118fEc7
WS5zZXRBdHRyaWJ1dGUoRyx4KTt9LGdldEF0dHJpYnV0ZTpmdW5jdGlvbihZLEcp
e0c9RS5Eb20uQ1VTVE9NX0FUVFJJQlVURVNbR118fEc7cmV0dXJuIFkuZ2V0QXR0
cmlidXRlKEcpO30sX3RvQ2FtZWw6ZnVuY3Rpb24oWSl7dmFyIHg9ZDtmdW5jdGlv
biBHKHkseil7cmV0dXJuIHoudG9VcHBlckNhc2UoKTt9cmV0dXJuIHhbWV18fCh4
W1ldPVkuaW5kZXhPZigiLSIpPT09LTE/WTpZLnJlcGxhY2UoLy0oW2Etel0pL2dp
LEcpKTt9LF9nZXRDbGFzc1JlZ2V4OmZ1bmN0aW9uKFkpe3ZhciBHO2lmKFkhPT11
bmRlZmluZWQpe2lmKFkuZXhlYyl7Rz1ZO31lbHNle0c9aFtZXTtpZighRyl7WT1Z
LnJlcGxhY2UoRS5Eb20uX3BhdHRlcm5zLkNMQVNTX1JFX1RPS0VOUywiXFwkMSIp
O0c9aFtZXT1uZXcgUmVnRXhwKHMrWStrLFUpO319fXJldHVybiBHO30sX3BhdHRl
cm5zOntST09UX1RBRzovXmJvZHl8aHRtbCQvaSxDTEFTU19SRV9UT0tFTlM6Lyhb
XC5cKFwpXF5cJFwqXCtcP1x8XFtcXVx7XH1dKS9nfSxfdGVzdEVsZW1lbnQ6ZnVu
Y3Rpb24oRyxZKXtyZXR1cm4gRyYmR1tsXT09MSYmKCFZfHxZKEcpKTt9LF9jYWxj
Qm9yZGVyczpmdW5jdGlvbih4LHkpe3ZhciBZPXBhcnNlSW50KEUuRG9tW3ddKHgs
UiksMTApfHwwLEc9cGFyc2VJbnQoRS5Eb21bd10oeCxxKSwxMCl8fDA7aWYoSCl7
aWYoTi50ZXN0KHhbQ10pKXtZPTA7Rz0wO319eVswXSs9Rzt5WzFdKz1ZO3JldHVy
biB5O319O3ZhciBTPUUuRG9tW3ddO2lmKG0ub3BlcmEpe0UuRG9tW3ddPWZ1bmN0
aW9uKFksRyl7dmFyIHg9UyhZLEcpO2lmKFgudGVzdChHKSl7eD1FLkRvbS5Db2xv
ci50b1JHQih4KTt9cmV0dXJuIHg7fTt9aWYobS53ZWJraXQpe0UuRG9tW3ddPWZ1
bmN0aW9uKFksRyl7dmFyIHg9UyhZLEcpO2lmKHg9PT0icmdiYSgwLCAwLCAwLCAw
KSIpe3g9InRyYW5zcGFyZW50Ijt9cmV0dXJuIHg7fTt9fSkoKTtZQUhPTy51dGls
LlJlZ2lvbj1mdW5jdGlvbihDLEQsQSxCKXt0aGlzLnRvcD1DO3RoaXMueT1DO3Ro
aXNbMV09Qzt0aGlzLnJpZ2h0PUQ7dGhpcy5ib3R0b209QTt0aGlzLmxlZnQ9Qjt0
aGlzLng9Qjt0aGlzWzBdPUI7dGhpcy53aWR0aD10aGlzLnJpZ2h0LXRoaXMubGVm
dDt0aGlzLmhlaWdodD10aGlzLmJvdHRvbS10aGlzLnRvcDt9O1lBSE9PLnV0aWwu
UmVnaW9uLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihBKXtyZXR1cm4oQS5s
ZWZ0Pj10aGlzLmxlZnQmJkEucmlnaHQ8PXRoaXMucmlnaHQmJkEudG9wPj10aGlz
LnRvcCYmQS5ib3R0b208PXRoaXMuYm90dG9tKTt9O1lBSE9PLnV0aWwuUmVnaW9u
LnByb3RvdHlwZS5nZXRBcmVhPWZ1bmN0aW9uKCl7cmV0dXJuKCh0aGlzLmJvdHRv
bS10aGlzLnRvcCkqKHRoaXMucmlnaHQtdGhpcy5sZWZ0KSk7fTtZQUhPTy51dGls
LlJlZ2lvbi5wcm90b3R5cGUuaW50ZXJzZWN0PWZ1bmN0aW9uKEUpe3ZhciBDPU1h
dGgubWF4KHRoaXMudG9wLEUudG9wKSxEPU1hdGgubWluKHRoaXMucmlnaHQsRS5y
aWdodCksQT1NYXRoLm1pbih0aGlzLmJvdHRvbSxFLmJvdHRvbSksQj1NYXRoLm1h
eCh0aGlzLmxlZnQsRS5sZWZ0KTtpZihBPj1DJiZEPj1CKXtyZXR1cm4gbmV3IFlB
SE9PLnV0aWwuUmVnaW9uKEMsRCxBLEIpOwp9ZWxzZXtyZXR1cm4gbnVsbDt9fTtZ
QUhPTy51dGlsLlJlZ2lvbi5wcm90b3R5cGUudW5pb249ZnVuY3Rpb24oRSl7dmFy
IEM9TWF0aC5taW4odGhpcy50b3AsRS50b3ApLEQ9TWF0aC5tYXgodGhpcy5yaWdo
dCxFLnJpZ2h0KSxBPU1hdGgubWF4KHRoaXMuYm90dG9tLEUuYm90dG9tKSxCPU1h
dGgubWluKHRoaXMubGVmdCxFLmxlZnQpO3JldHVybiBuZXcgWUFIT08udXRpbC5S
ZWdpb24oQyxELEEsQik7fTtZQUhPTy51dGlsLlJlZ2lvbi5wcm90b3R5cGUudG9T
dHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4oIlJlZ2lvbiB7IisidG9wOiAiK3RoaXMu
dG9wKyIsIHJpZ2h0OiAiK3RoaXMucmlnaHQrIiwgYm90dG9tOiAiK3RoaXMuYm90
dG9tKyIsIGxlZnQ6ICIrdGhpcy5sZWZ0KyIsIGhlaWdodDogIit0aGlzLmhlaWdo
dCsiLCB3aWR0aDogIit0aGlzLndpZHRoKyJ9Iik7fTtZQUhPTy51dGlsLlJlZ2lv
bi5nZXRSZWdpb249ZnVuY3Rpb24oRCl7dmFyIEY9WUFIT08udXRpbC5Eb20uZ2V0
WFkoRCksQz1GWzFdLEU9RlswXStELm9mZnNldFdpZHRoLEE9RlsxXStELm9mZnNl
dEhlaWdodCxCPUZbMF07cmV0dXJuIG5ldyBZQUhPTy51dGlsLlJlZ2lvbihDLEUs
QSxCKTt9O1lBSE9PLnV0aWwuUG9pbnQ9ZnVuY3Rpb24oQSxCKXtpZihZQUhPTy5s
YW5nLmlzQXJyYXkoQSkpe0I9QVsxXTtBPUFbMF07fVlBSE9PLnV0aWwuUG9pbnQu
c3VwZXJjbGFzcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsQixBLEIsQSk7fTtZQUhP
Ty5leHRlbmQoWUFIT08udXRpbC5Qb2ludCxZQUhPTy51dGlsLlJlZ2lvbik7KGZ1
bmN0aW9uKCl7dmFyIEI9WUFIT08udXRpbCxBPSJjbGllbnRUb3AiLEY9ImNsaWVu
dExlZnQiLEo9InBhcmVudE5vZGUiLEs9InJpZ2h0IixXPSJoYXNMYXlvdXQiLEk9
InB4IixVPSJvcGFjaXR5IixMPSJhdXRvIixEPSJib3JkZXJMZWZ0V2lkdGgiLEc9
ImJvcmRlclRvcFdpZHRoIixQPSJib3JkZXJSaWdodFdpZHRoIixWPSJib3JkZXJC
b3R0b21XaWR0aCIsUz0idmlzaWJsZSIsUT0idHJhbnNwYXJlbnQiLE49ImhlaWdo
dCIsRT0id2lkdGgiLEg9InN0eWxlIixUPSJjdXJyZW50U3R5bGUiLFI9L153aWR0
aHxoZWlnaHQkLyxPPS9eKFxkWy5cZF0qKSsoZW18ZXh8cHh8Z2R8cmVtfHZ3fHZo
fHZtfGNofG1tfGNtfGlufHB0fHBjfGRlZ3xyYWR8bXN8c3xoenxraHp8JSl7MX0/
L2ksTT17Z2V0OmZ1bmN0aW9uKFgsWil7dmFyIFk9IiIsYT1YW1RdW1pdO2lmKFo9
PT1VKXtZPUIuRG9tLmdldFN0eWxlKFgsVSk7fWVsc2V7aWYoIWF8fChhLmluZGV4
T2YmJmEuaW5kZXhPZihJKT4tMSkpe1k9YTt9ZWxzZXtpZihCLkRvbS5JRV9DT01Q
VVRFRFtaXSl7WT1CLkRvbS5JRV9DT01QVVRFRFtaXShYLFopO31lbHNle2lmKE8u
dGVzdChhKSl7WT1CLkRvbS5JRS5Db21wdXRlZFN0eWxlLmdldFBpeGVsKFgsWik7
fWVsc2V7WT1hO319fX1yZXR1cm4gWTt9LGdldE9mZnNldDpmdW5jdGlvbihaLGUp
e3ZhciBiPVpbVF1bZV0sWD1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc3Vi
c3RyKDEpLGM9Im9mZnNldCIrWCxZPSJwaXhlbCIrWCxhPSIiLGQ7aWYoYj09TCl7
ZD1aW2NdO2lmKGQ9PT11bmRlZmluZWQpe2E9MDt9YT1kO2lmKFIudGVzdChlKSl7
WltIXVtlXT1kO2lmKFpbY10+ZCl7YT1kLShaW2NdLWQpO31aW0hdW2VdPUw7fX1l
bHNle2lmKCFaW0hdW1ldJiYhWltIXVtlXSl7WltIXVtlXT1iO31hPVpbSF1bWV07
fXJldHVybiBhK0k7fSxnZXRCb3JkZXJXaWR0aDpmdW5jdGlvbihYLFope3ZhciBZ
PW51bGw7aWYoIVhbVF1bV10pe1hbSF0uem9vbT0xO31zd2l0Y2goWil7Y2FzZSBH
Olk9WFtBXTticmVhaztjYXNlIFY6WT1YLm9mZnNldEhlaWdodC1YLmNsaWVudEhl
aWdodC1YW0FdO2JyZWFrO2Nhc2UgRDpZPVhbRl07YnJlYWs7Y2FzZSBQOlk9WC5v
ZmZzZXRXaWR0aC1YLmNsaWVudFdpZHRoLVhbRl07YnJlYWs7fXJldHVybiBZK0k7
fSxnZXRQaXhlbDpmdW5jdGlvbihZLFgpe3ZhciBhPW51bGwsYj1ZW1RdW0tdLFo9
WVtUXVtYXTtZW0hdW0tdPVo7YT1ZW0hdLnBpeGVsUmlnaHQ7WVtIXVtLXT1iO3Jl
dHVybiBhK0k7fSxnZXRNYXJnaW46ZnVuY3Rpb24oWSxYKXt2YXIgWjtpZihZW1Rd
W1hdPT1MKXtaPTArSTt9ZWxzZXtaPUIuRG9tLklFLkNvbXB1dGVkU3R5bGUuZ2V0
UGl4ZWwoWSxYKTt9cmV0dXJuIFo7fSxnZXRWaXNpYmlsaXR5OmZ1bmN0aW9uKFks
WCl7dmFyIFo7d2hpbGUoKFo9WVtUXSkmJlpbWF09PSJpbmhlcml0Iil7WT1ZW0pd
O31yZXR1cm4oWik/WltYXTpTO30sZ2V0Q29sb3I6ZnVuY3Rpb24oWSxYKXtyZXR1
cm4gQi5Eb20uQ29sb3IudG9SR0IoWVtUXVtYXSl8fFE7fSxnZXRCb3JkZXJDb2xv
cjpmdW5jdGlvbihZLFgpe3ZhciBaPVlbVF0sYT1aW1hdfHxaLmNvbG9yO3JldHVy
biBCLkRvbS5Db2xvci50b1JHQihCLkRvbS5Db2xvci50b0hleChhKSk7fX0sQz17
fTtDLnRvcD1DLnJpZ2h0PUMuYm90dG9tPUMubGVmdD1DW0VdPUNbTl09TS5nZXRP
ZmZzZXQ7Qy5jb2xvcj1NLmdldENvbG9yO0NbR109Q1tQXT1DW1ZdPUNbRF09TS5n
ZXRCb3JkZXJXaWR0aDtDLm1hcmdpblRvcD1DLm1hcmdpblJpZ2h0PUMubWFyZ2lu
Qm90dG9tPUMubWFyZ2luTGVmdD1NLmdldE1hcmdpbjtDLnZpc2liaWxpdHk9TS5n
ZXRWaXNpYmlsaXR5O0MuYm9yZGVyQ29sb3I9Qy5ib3JkZXJUb3BDb2xvcj1DLmJv
cmRlclJpZ2h0Q29sb3I9Qy5ib3JkZXJCb3R0b21Db2xvcj1DLmJvcmRlckxlZnRD
b2xvcj1NLmdldEJvcmRlckNvbG9yO0IuRG9tLklFX0NPTVBVVEVEPUM7Qi5Eb20u
SUVfQ29tcHV0ZWRTdHlsZT1NO30pKCk7KGZ1bmN0aW9uKCl7dmFyIEM9InRvU3Ry
aW5nIixBPXBhcnNlSW50LEI9UmVnRXhwLEQ9WUFIT08udXRpbDtELkRvbS5Db2xv
cj17S0VZV09SRFM6e2JsYWNrOiIwMDAiLHNpbHZlcjoiYzBjMGMwIixncmF5OiI4
MDgwODAiLHdoaXRlOiJmZmYiLG1hcm9vbjoiODAwMDAwIixyZWQ6ImYwMCIscHVy
cGxlOiI4MDAwODAiLGZ1Y2hzaWE6ImYwZiIsZ3JlZW46IjAwODAwMCIsbGltZToi
MGYwIixvbGl2ZToiODA4MDAwIix5ZWxsb3c6ImZmMCIsbmF2eToiMDAwMDgwIixi
bHVlOiIwMGYiLHRlYWw6IjAwODA4MCIsYXF1YToiMGZmIn0scmVfUkdCOi9ecmdi
XCgoWzAtOV0rKVxzKixccyooWzAtOV0rKVxzKixccyooWzAtOV0rKVwpJC9pLHJl
X2hleDovXiM/KFswLTlBLUZdezJ9KShbMC05QS1GXXsyfSkoWzAtOUEtRl17Mn0p
JC9pLHJlX2hleDM6LyhbMC05QS1GXSkvZ2ksdG9SR0I6ZnVuY3Rpb24oRSl7aWYo
IUQuRG9tLkNvbG9yLnJlX1JHQi50ZXN0KEUpKXtFPUQuRG9tLkNvbG9yLnRvSGV4
KEUpO31pZihELkRvbS5Db2xvci5yZV9oZXguZXhlYyhFKSl7RT0icmdiKCIrW0Eo
Qi4kMSwxNiksQShCLiQyLDE2KSxBKEIuJDMsMTYpXS5qb2luKCIsICIpKyIpIjt9
cmV0dXJuIEU7fSx0b0hleDpmdW5jdGlvbihIKXtIPUQuRG9tLkNvbG9yLktFWVdP
UkRTW0hdfHxIO2lmKEQuRG9tLkNvbG9yLnJlX1JHQi5leGVjKEgpKXt2YXIgRz0o
Qi4kMS5sZW5ndGg9PT0xKT8iMCIrQi4kMTpOdW1iZXIoQi4kMSksRj0oQi4kMi5s
ZW5ndGg9PT0xKT8iMCIrQi4kMjpOdW1iZXIoQi4kMiksRT0oQi4kMy5sZW5ndGg9
PT0xKT8iMCIrQi4kMzpOdW1iZXIoQi4kMyk7SD1bR1tDXSgxNiksRltDXSgxNiks
RVtDXSgxNildLmpvaW4oIiIpO31pZihILmxlbmd0aDw2KXtIPUgucmVwbGFjZShE
LkRvbS5Db2xvci5yZV9oZXgzLCIkMSQxIik7fWlmKEghPT0idHJhbnNwYXJlbnQi
JiZILmluZGV4T2YoIiMiKTwwKXtIPSIjIitIO31yZXR1cm4gSC50b0xvd2VyQ2Fz
ZSgpO319O30oKSk7WUFIT08ucmVnaXN0ZXIoImRvbSIsWUFIT08udXRpbC5Eb20s
e3ZlcnNpb246IjIuNy4wIixidWlsZDoiMTc5OSJ9KTtZQUhPTy51dGlsLkN1c3Rv
bUV2ZW50PWZ1bmN0aW9uKEQsQyxCLEEpe3RoaXMudHlwZT1EO3RoaXMuc2NvcGU9
Q3x8d2luZG93O3RoaXMuc2lsZW50PUI7dGhpcy5zaWduYXR1cmU9QXx8WUFIT08u
dXRpbC5DdXN0b21FdmVudC5MSVNUO3RoaXMuc3Vic2NyaWJlcnM9W107aWYoIXRo
aXMuc2lsZW50KXt9dmFyIEU9Il9ZVUlDRU9uU3Vic2NyaWJlIjtpZihEIT09RSl7
dGhpcy5zdWJzY3JpYmVFdmVudD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudChF
LHRoaXMsdHJ1ZSk7fXRoaXMubGFzdEVycm9yPW51bGw7fTtZQUhPTy51dGlsLkN1
c3RvbUV2ZW50LkxJU1Q9MDtZQUhPTy51dGlsLkN1c3RvbUV2ZW50LkZMQVQ9MTtZ
QUhPTy51dGlsLkN1c3RvbUV2ZW50LnByb3RvdHlwZT17c3Vic2NyaWJlOmZ1bmN0
aW9uKEEsQixDKXtpZighQSl7dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNhbGxi
YWNrIGZvciBzdWJzY3JpYmVyIHRvICciK3RoaXMudHlwZSsiJyIpO31pZih0aGlz
LnN1YnNjcmliZUV2ZW50KXt0aGlzLnN1YnNjcmliZUV2ZW50LmZpcmUoQSxCLEMp
O310aGlzLnN1YnNjcmliZXJzLnB1c2gobmV3IFlBSE9PLnV0aWwuU3Vic2NyaWJl
cihBLEIsQykpO30sdW5zdWJzY3JpYmU6ZnVuY3Rpb24oRCxGKXtpZighRCl7cmV0
dXJuIHRoaXMudW5zdWJzY3JpYmVBbGwoKTt9dmFyIEU9ZmFsc2U7Zm9yKHZhciBC
PTAsQT10aGlzLnN1YnNjcmliZXJzLmxlbmd0aDtCPEE7KytCKXt2YXIgQz10aGlz
LnN1YnNjcmliZXJzW0JdO2lmKEMmJkMuY29udGFpbnMoRCxGKSl7dGhpcy5fZGVs
ZXRlKEIpO0U9dHJ1ZTt9fXJldHVybiBFO30sZmlyZTpmdW5jdGlvbigpe3RoaXMu
bGFzdEVycm9yPW51bGw7dmFyIEs9W10sRT10aGlzLnN1YnNjcmliZXJzLmxlbmd0
aDtpZighRSYmdGhpcy5zaWxlbnQpe3JldHVybiB0cnVlO312YXIgST1bXS5zbGlj
ZS5jYWxsKGFyZ3VtZW50cywwKSxHPXRydWUsRCxKPWZhbHNlO2lmKCF0aGlzLnNp
bGVudCl7fXZhciBDPXRoaXMuc3Vic2NyaWJlcnMuc2xpY2UoKSxBPVlBSE9PLnV0
aWwuRXZlbnQudGhyb3dFcnJvcnM7Zm9yKEQ9MDtEPEU7KytEKXt2YXIgTT1DW0Rd
O2lmKCFNKXtKPXRydWU7fWVsc2V7aWYoIXRoaXMuc2lsZW50KXt9dmFyIEw9TS5n
ZXRTY29wZSh0aGlzLnNjb3BlKTtpZih0aGlzLnNpZ25hdHVyZT09WUFIT08udXRp
bC5DdXN0b21FdmVudC5GTEFUKXt2YXIgQj1udWxsO2lmKEkubGVuZ3RoPjApe0I9
SVswXTt9dHJ5e0c9TS5mbi5jYWxsKEwsQixNLm9iaik7fWNhdGNoKEYpe3RoaXMu
bGFzdEVycm9yPUY7aWYoQSl7dGhyb3cgRjt9fX1lbHNle3RyeXtHPU0uZm4uY2Fs
bChMLHRoaXMudHlwZSxJLE0ub2JqKTt9Y2F0Y2goSCl7dGhpcy5sYXN0RXJyb3I9
SDtpZihBKXt0aHJvdyBIO319fWlmKGZhbHNlPT09Ryl7aWYoIXRoaXMuc2lsZW50
KXt9YnJlYWs7fX19cmV0dXJuKEchPT1mYWxzZSk7fSx1bnN1YnNjcmliZUFsbDpm
dW5jdGlvbigpe3ZhciBBPXRoaXMuc3Vic2NyaWJlcnMubGVuZ3RoLEI7Zm9yKEI9
QS0xO0I+LTE7Qi0tKXt0aGlzLl9kZWxldGUoQik7fXRoaXMuc3Vic2NyaWJlcnM9
W107cmV0dXJuIEE7fSxfZGVsZXRlOmZ1bmN0aW9uKEEpe3ZhciBCPXRoaXMuc3Vi
c2NyaWJlcnNbQV07aWYoQil7ZGVsZXRlIEIuZm47ZGVsZXRlIEIub2JqO310aGlz
LnN1YnNjcmliZXJzLnNwbGljZShBLDEpO30sdG9TdHJpbmc6ZnVuY3Rpb24oKXty
ZXR1cm4iQ3VzdG9tRXZlbnQ6ICIrIiciK3RoaXMudHlwZSsiJywgIisiY29udGV4
dDogIit0aGlzLnNjb3BlO319O1lBSE9PLnV0aWwuU3Vic2NyaWJlcj1mdW5jdGlv
bihBLEIsQyl7dGhpcy5mbj1BO3RoaXMub2JqPVlBSE9PLmxhbmcuaXNVbmRlZmlu
ZWQoQik/bnVsbDpCO3RoaXMub3ZlcnJpZGVDb250ZXh0PUM7fTtZQUhPTy51dGls
LlN1YnNjcmliZXIucHJvdG90eXBlLmdldFNjb3BlPWZ1bmN0aW9uKEEpe2lmKHRo
aXMub3ZlcnJpZGVDb250ZXh0KXtpZih0aGlzLm92ZXJyaWRlQ29udGV4dD09PXRy
dWUpe3JldHVybiB0aGlzLm9iajt9ZWxzZXtyZXR1cm4gdGhpcy5vdmVycmlkZUNv
bnRleHQ7fX1yZXR1cm4gQTt9O1lBSE9PLnV0aWwuU3Vic2NyaWJlci5wcm90b3R5
cGUuY29udGFpbnM9ZnVuY3Rpb24oQSxCKXtpZihCKXtyZXR1cm4odGhpcy5mbj09
QSYmdGhpcy5vYmo9PUIpO31lbHNle3JldHVybih0aGlzLmZuPT1BKTt9fTtZQUhP
Ty51dGlsLlN1YnNjcmliZXIucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7
cmV0dXJuIlN1YnNjcmliZXIgeyBvYmo6ICIrdGhpcy5vYmorIiwgb3ZlcnJpZGVD
b250ZXh0OiAiKyh0aGlzLm92ZXJyaWRlQ29udGV4dHx8Im5vIikrIiB9Ijt9O2lm
KCFZQUhPTy51dGlsLkV2ZW50KXtZQUhPTy51dGlsLkV2ZW50PWZ1bmN0aW9uKCl7
dmFyIEg9ZmFsc2U7dmFyIEk9W107dmFyIEo9W107dmFyIEc9W107dmFyIEU9W107
dmFyIEM9MDt2YXIgRj1bXTt2YXIgQj1bXTt2YXIgQT0wO3ZhciBEPXs2MzIzMjoz
OCw2MzIzMzo0MCw2MzIzNDozNyw2MzIzNTozOSw2MzI3NjozMyw2MzI3NzozNCwy
NTo5fTt2YXIgSz1ZQUhPTy5lbnYudWEuaWU/ImZvY3VzaW4iOiJmb2N1cyI7dmFy
IEw9WUFIT08uZW52LnVhLmllPyJmb2N1c291dCI6ImJsdXIiO3JldHVybntQT0xM
X1JFVFJZUzoyMDAwLFBPTExfSU5URVJWQUw6MjAsRUw6MCxUWVBFOjEsRk46MixX
Rk46MyxVTkxPQURfT0JKOjMsQURKX1NDT1BFOjQsT0JKOjUsT1ZFUlJJREU6Nixs
YXN0RXJyb3I6bnVsbCxpc1NhZmFyaTpZQUhPTy5lbnYudWEud2Via2l0LHdlYmtp
dDpZQUhPTy5lbnYudWEud2Via2l0LGlzSUU6WUFIT08uZW52LnVhLmllLF9pbnRl
cnZhbDpudWxsLF9kcmk6bnVsbCxET01SZWFkeTpmYWxzZSx0aHJvd0Vycm9yczpm
YWxzZSxzdGFydEludGVydmFsOmZ1bmN0aW9uKCl7aWYoIXRoaXMuX2ludGVydmFs
KXt2YXIgTT10aGlzO3ZhciBOPWZ1bmN0aW9uKCl7TS5fdHJ5UHJlbG9hZEF0dGFj
aCgpO307dGhpcy5faW50ZXJ2YWw9c2V0SW50ZXJ2YWwoTix0aGlzLlBPTExfSU5U
RVJWQUwpO319LG9uQXZhaWxhYmxlOmZ1bmN0aW9uKFMsTyxRLFIsUCl7dmFyIE09
KFlBSE9PLmxhbmcuaXNTdHJpbmcoUykpP1tTXTpTO2Zvcih2YXIgTj0wO048TS5s
ZW5ndGg7Tj1OKzEpe0YucHVzaCh7aWQ6TVtOXSxmbjpPLG9iajpRLG92ZXJyaWRl
Q29udGV4dDpSLGNoZWNrUmVhZHk6UH0pO31DPXRoaXMuUE9MTF9SRVRSWVM7dGhp
cy5zdGFydEludGVydmFsKCk7fSxvbkNvbnRlbnRSZWFkeTpmdW5jdGlvbihQLE0s
TixPKXt0aGlzLm9uQXZhaWxhYmxlKFAsTSxOLE8sdHJ1ZSk7fSxvbkRPTVJlYWR5
OmZ1bmN0aW9uKE0sTixPKXtpZih0aGlzLkRPTVJlYWR5KXtzZXRUaW1lb3V0KGZ1
bmN0aW9uKCl7dmFyIFA9d2luZG93O2lmKE8pe2lmKE89PT10cnVlKXtQPU47fWVs
c2V7UD1PO319TS5jYWxsKFAsIkRPTVJlYWR5IixbXSxOKTt9LDApO31lbHNle3Ro
aXMuRE9NUmVhZHlFdmVudC5zdWJzY3JpYmUoTSxOLE8pO319LF9hZGRMaXN0ZW5l
cjpmdW5jdGlvbihPLE0sWSxTLFcsYil7aWYoIVl8fCFZLmNhbGwpe3JldHVybiBm
YWxzZTt9aWYodGhpcy5faXNWYWxpZENvbGxlY3Rpb24oTykpe3ZhciBaPXRydWU7
Zm9yKHZhciBUPTAsVj1PLmxlbmd0aDtUPFY7KytUKXtaPXRoaXMub24oT1tUXSxN
LFksUyxXKSYmWjt9cmV0dXJuIFo7fWVsc2V7aWYoWUFIT08ubGFuZy5pc1N0cmlu
ZyhPKSl7dmFyIFI9dGhpcy5nZXRFbChPKTtpZihSKXtPPVI7fWVsc2V7dGhpcy5v
bkF2YWlsYWJsZShPLGZ1bmN0aW9uKCl7WUFIT08udXRpbC5FdmVudC5vbihPLE0s
WSxTLFcpO30pO3JldHVybiB0cnVlO319fWlmKCFPKXtyZXR1cm4gZmFsc2U7fWlm
KCJ1bmxvYWQiPT1NJiZTIT09dGhpcyl7SltKLmxlbmd0aF09W08sTSxZLFMsV107
cmV0dXJuIHRydWU7fXZhciBOPU87aWYoVyl7aWYoVz09PXRydWUpe049Uzt9ZWxz
ZXtOPVc7fX12YXIgUD1mdW5jdGlvbihjKXtyZXR1cm4gWS5jYWxsKE4sWUFIT08u
dXRpbC5FdmVudC5nZXRFdmVudChjLE8pLFMpO307dmFyIGE9W08sTSxZLFAsTixT
LFddO3ZhciBVPUkubGVuZ3RoO0lbVV09YTtpZih0aGlzLnVzZUxlZ2FjeUV2ZW50
KE8sTSkpe3ZhciBRPXRoaXMuZ2V0TGVnYWN5SW5kZXgoTyxNKTtpZihRPT0tMXx8
TyE9R1tRXVswXSl7UT1HLmxlbmd0aDtCW08uaWQrTV09UTtHW1FdPVtPLE0sT1si
b24iK01dXTtFW1FdPVtdO09bIm9uIitNXT1mdW5jdGlvbihjKXtZQUhPTy51dGls
LkV2ZW50LmZpcmVMZWdhY3lFdmVudChZQUhPTy51dGlsLkV2ZW50LmdldEV2ZW50
KGMpLFEpO307fUVbUV0ucHVzaChhKTt9ZWxzZXt0cnl7dGhpcy5fc2ltcGxlQWRk
KE8sTSxQLGIpO31jYXRjaChYKXt0aGlzLmxhc3RFcnJvcj1YO3RoaXMucmVtb3Zl
TGlzdGVuZXIoTyxNLFkpO3JldHVybiBmYWxzZTt9fXJldHVybiB0cnVlO30sYWRk
TGlzdGVuZXI6ZnVuY3Rpb24oTixRLE0sTyxQKXtyZXR1cm4gdGhpcy5fYWRkTGlz
dGVuZXIoTixRLE0sTyxQLGZhbHNlKTt9LGFkZEZvY3VzTGlzdGVuZXI6ZnVuY3Rp
b24oTixNLE8sUCl7cmV0dXJuIHRoaXMuX2FkZExpc3RlbmVyKE4sSyxNLE8sUCx0
cnVlKTt9LHJlbW92ZUZvY3VzTGlzdGVuZXI6ZnVuY3Rpb24oTixNKXtyZXR1cm4g
dGhpcy5yZW1vdmVMaXN0ZW5lcihOLEssTSk7fSxhZGRCbHVyTGlzdGVuZXI6ZnVu
Y3Rpb24oTixNLE8sUCl7cmV0dXJuIHRoaXMuX2FkZExpc3RlbmVyKE4sTCxNLE8s
UCx0cnVlKTt9LHJlbW92ZUJsdXJMaXN0ZW5lcjpmdW5jdGlvbihOLE0pe3JldHVy
biB0aGlzLnJlbW92ZUxpc3RlbmVyKE4sTCxNKTt9LGZpcmVMZWdhY3lFdmVudDpm
dW5jdGlvbihSLFApe3ZhciBUPXRydWUsTSxWLFUsTixTO1Y9RVtQXS5zbGljZSgp
O2Zvcih2YXIgTz0wLFE9Vi5sZW5ndGg7TzxROysrTyl7VT1WW09dO2lmKFUmJlVb
dGhpcy5XRk5dKXtOPVVbdGhpcy5BREpfU0NPUEVdO1M9VVt0aGlzLldGTl0uY2Fs
bChOLFIpO1Q9KFQmJlMpO319TT1HW1BdO2lmKE0mJk1bMl0pe01bMl0oUik7fXJl
dHVybiBUO30sZ2V0TGVnYWN5SW5kZXg6ZnVuY3Rpb24oTixPKXt2YXIgTT10aGlz
LmdlbmVyYXRlSWQoTikrTztpZih0eXBlb2YgQltNXT09InVuZGVmaW5lZCIpe3Jl
dHVybiAtMTt9ZWxzZXtyZXR1cm4gQltNXTt9fSx1c2VMZWdhY3lFdmVudDpmdW5j
dGlvbihNLE4pe3JldHVybih0aGlzLndlYmtpdCYmdGhpcy53ZWJraXQ8NDE5JiYo
ImNsaWNrIj09Tnx8ImRibGNsaWNrIj09TikpO30scmVtb3ZlTGlzdGVuZXI6ZnVu
Y3Rpb24oTixNLFYpe3ZhciBRLFQsWDtpZih0eXBlb2YgTj09InN0cmluZyIpe049
dGhpcy5nZXRFbChOKTt9ZWxzZXtpZih0aGlzLl9pc1ZhbGlkQ29sbGVjdGlvbihO
KSl7dmFyIFc9dHJ1ZTtmb3IoUT1OLmxlbmd0aC0xO1E+LTE7US0tKXtXPSh0aGlz
LnJlbW92ZUxpc3RlbmVyKE5bUV0sTSxWKSYmVyk7fXJldHVybiBXO319aWYoIVZ8
fCFWLmNhbGwpe3JldHVybiB0aGlzLnB1cmdlRWxlbWVudChOLGZhbHNlLE0pO31p
ZigidW5sb2FkIj09TSl7Zm9yKFE9Si5sZW5ndGgtMTtRPi0xO1EtLSl7WD1KW1Fd
O2lmKFgmJlhbMF09PU4mJlhbMV09PU0mJlhbMl09PVYpe0ouc3BsaWNlKFEsMSk7
cmV0dXJuIHRydWU7fX1yZXR1cm4gZmFsc2U7fXZhciBSPW51bGw7dmFyIFM9YXJn
dW1lbnRzWzNdO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIFMpe1M9dGhpcy5fZ2V0
Q2FjaGVJbmRleChOLE0sVik7fWlmKFM+PTApe1I9SVtTXTt9aWYoIU58fCFSKXty
ZXR1cm4gZmFsc2U7fWlmKHRoaXMudXNlTGVnYWN5RXZlbnQoTixNKSl7dmFyIFA9
dGhpcy5nZXRMZWdhY3lJbmRleChOLE0pO3ZhciBPPUVbUF07aWYoTyl7Zm9yKFE9
MCxUPU8ubGVuZ3RoO1E8VDsrK1Epe1g9T1tRXTtpZihYJiZYW3RoaXMuRUxdPT1O
JiZYW3RoaXMuVFlQRV09PU0mJlhbdGhpcy5GTl09PVYpe08uc3BsaWNlKFEsMSk7
YnJlYWs7fX19fWVsc2V7dHJ5e3RoaXMuX3NpbXBsZVJlbW92ZShOLE0sUlt0aGlz
LldGTl0sZmFsc2UpO31jYXRjaChVKXt0aGlzLmxhc3RFcnJvcj1VO3JldHVybiBm
YWxzZTt9fWRlbGV0ZSBJW1NdW3RoaXMuV0ZOXTtkZWxldGUgSVtTXVt0aGlzLkZO
XTsKSS5zcGxpY2UoUywxKTtyZXR1cm4gdHJ1ZTt9LGdldFRhcmdldDpmdW5jdGlv
bihPLE4pe3ZhciBNPU8udGFyZ2V0fHxPLnNyY0VsZW1lbnQ7cmV0dXJuIHRoaXMu
cmVzb2x2ZVRleHROb2RlKE0pO30scmVzb2x2ZVRleHROb2RlOmZ1bmN0aW9uKE4p
e3RyeXtpZihOJiYzPT1OLm5vZGVUeXBlKXtyZXR1cm4gTi5wYXJlbnROb2RlO319
Y2F0Y2goTSl7fXJldHVybiBOO30sZ2V0UGFnZVg6ZnVuY3Rpb24oTil7dmFyIE09
Ti5wYWdlWDtpZighTSYmMCE9PU0pe009Ti5jbGllbnRYfHwwO2lmKHRoaXMuaXNJ
RSl7TSs9dGhpcy5fZ2V0U2Nyb2xsTGVmdCgpO319cmV0dXJuIE07fSxnZXRQYWdl
WTpmdW5jdGlvbihNKXt2YXIgTj1NLnBhZ2VZO2lmKCFOJiYwIT09Til7Tj1NLmNs
aWVudFl8fDA7aWYodGhpcy5pc0lFKXtOKz10aGlzLl9nZXRTY3JvbGxUb3AoKTt9
fXJldHVybiBOO30sZ2V0WFk6ZnVuY3Rpb24oTSl7cmV0dXJuW3RoaXMuZ2V0UGFn
ZVgoTSksdGhpcy5nZXRQYWdlWShNKV07fSxnZXRSZWxhdGVkVGFyZ2V0OmZ1bmN0
aW9uKE4pe3ZhciBNPU4ucmVsYXRlZFRhcmdldDtpZighTSl7aWYoTi50eXBlPT0i
bW91c2VvdXQiKXtNPU4udG9FbGVtZW50O31lbHNle2lmKE4udHlwZT09Im1vdXNl
b3ZlciIpe009Ti5mcm9tRWxlbWVudDt9fX1yZXR1cm4gdGhpcy5yZXNvbHZlVGV4
dE5vZGUoTSk7fSxnZXRUaW1lOmZ1bmN0aW9uKE8pe2lmKCFPLnRpbWUpe3ZhciBO
PW5ldyBEYXRlKCkuZ2V0VGltZSgpO3RyeXtPLnRpbWU9Tjt9Y2F0Y2goTSl7dGhp
cy5sYXN0RXJyb3I9TTtyZXR1cm4gTjt9fXJldHVybiBPLnRpbWU7fSxzdG9wRXZl
bnQ6ZnVuY3Rpb24oTSl7dGhpcy5zdG9wUHJvcGFnYXRpb24oTSk7dGhpcy5wcmV2
ZW50RGVmYXVsdChNKTt9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbihNKXtpZihN
LnN0b3BQcm9wYWdhdGlvbil7TS5zdG9wUHJvcGFnYXRpb24oKTt9ZWxzZXtNLmNh
bmNlbEJ1YmJsZT10cnVlO319LHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKE0pe2lm
KE0ucHJldmVudERlZmF1bHQpe00ucHJldmVudERlZmF1bHQoKTt9ZWxzZXtNLnJl
dHVyblZhbHVlPWZhbHNlO319LGdldEV2ZW50OmZ1bmN0aW9uKE8sTSl7dmFyIE49
T3x8d2luZG93LmV2ZW50O2lmKCFOKXt2YXIgUD10aGlzLmdldEV2ZW50LmNhbGxl
cjt3aGlsZShQKXtOPVAuYXJndW1lbnRzWzBdO2lmKE4mJkV2ZW50PT1OLmNvbnN0
cnVjdG9yKXticmVhazt9UD1QLmNhbGxlcjt9fXJldHVybiBOO30sZ2V0Q2hhckNv
ZGU6ZnVuY3Rpb24oTil7dmFyIE09Ti5rZXlDb2RlfHxOLmNoYXJDb2RlfHwwO2lm
KFlBSE9PLmVudi51YS53ZWJraXQmJihNIGluIEQpKXtNPURbTV07fXJldHVybiBN
O30sX2dldENhY2hlSW5kZXg6ZnVuY3Rpb24oUSxSLFApe2Zvcih2YXIgTz0wLE49
SS5sZW5ndGg7TzxOO089TysxKXt2YXIgTT1JW09dO2lmKE0mJk1bdGhpcy5GTl09
PVAmJk1bdGhpcy5FTF09PVEmJk1bdGhpcy5UWVBFXT09Uil7cmV0dXJuIE87fX1y
ZXR1cm4gLTE7fSxnZW5lcmF0ZUlkOmZ1bmN0aW9uKE0pe3ZhciBOPU0uaWQ7aWYo
IU4pe049Inl1aWV2dGF1dG9pZC0iK0E7KytBO00uaWQ9Tjt9cmV0dXJuIE47fSxf
aXNWYWxpZENvbGxlY3Rpb246ZnVuY3Rpb24oTil7dHJ5e3JldHVybihOJiZ0eXBl
b2YgTiE9PSJzdHJpbmciJiZOLmxlbmd0aCYmIU4udGFnTmFtZSYmIU4uYWxlcnQm
JnR5cGVvZiBOWzBdIT09InVuZGVmaW5lZCIpO31jYXRjaChNKXtyZXR1cm4gZmFs
c2U7fX0sZWxDYWNoZTp7fSxnZXRFbDpmdW5jdGlvbihNKXtyZXR1cm4odHlwZW9m
IE09PT0ic3RyaW5nIik/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoTSk6TTt9LGNs
ZWFyQ2FjaGU6ZnVuY3Rpb24oKXt9LERPTVJlYWR5RXZlbnQ6bmV3IFlBSE9PLnV0
aWwuQ3VzdG9tRXZlbnQoIkRPTVJlYWR5Iix0aGlzKSxfbG9hZDpmdW5jdGlvbihO
KXtpZighSCl7SD10cnVlO3ZhciBNPVlBSE9PLnV0aWwuRXZlbnQ7TS5fcmVhZHko
KTtNLl90cnlQcmVsb2FkQXR0YWNoKCk7fX0sX3JlYWR5OmZ1bmN0aW9uKE4pe3Zh
ciBNPVlBSE9PLnV0aWwuRXZlbnQ7aWYoIU0uRE9NUmVhZHkpe00uRE9NUmVhZHk9
dHJ1ZTtNLkRPTVJlYWR5RXZlbnQuZmlyZSgpO00uX3NpbXBsZVJlbW92ZShkb2N1
bWVudCwiRE9NQ29udGVudExvYWRlZCIsTS5fcmVhZHkpO319LF90cnlQcmVsb2Fk
QXR0YWNoOmZ1bmN0aW9uKCl7aWYoRi5sZW5ndGg9PT0wKXtDPTA7aWYodGhpcy5f
aW50ZXJ2YWwpe2NsZWFySW50ZXJ2YWwodGhpcy5faW50ZXJ2YWwpO3RoaXMuX2lu
dGVydmFsPW51bGw7fXJldHVybjt9aWYodGhpcy5sb2NrZWQpe3JldHVybjt9aWYo
dGhpcy5pc0lFKXtpZighdGhpcy5ET01SZWFkeSl7dGhpcy5zdGFydEludGVydmFs
KCk7cmV0dXJuO319dGhpcy5sb2NrZWQ9dHJ1ZTt2YXIgUz0hSDtpZighUyl7Uz0o
Qz4wJiZGLmxlbmd0aD4wKTt9dmFyIFI9W107dmFyIFQ9ZnVuY3Rpb24oVixXKXt2
YXIgVT1WO2lmKFcub3ZlcnJpZGVDb250ZXh0KXtpZihXLm92ZXJyaWRlQ29udGV4
dD09PXRydWUpe1U9Vy5vYmo7fWVsc2V7VT1XLm92ZXJyaWRlQ29udGV4dDt9fVcu
Zm4uY2FsbChVLFcub2JqKTt9O3ZhciBOLE0sUSxQLE89W107Zm9yKE49MCxNPUYu
bGVuZ3RoO048TTtOPU4rMSl7UT1GW05dO2lmKFEpe1A9dGhpcy5nZXRFbChRLmlk
KTtpZihQKXtpZihRLmNoZWNrUmVhZHkpe2lmKEh8fFAubmV4dFNpYmxpbmd8fCFT
KXtPLnB1c2goUSk7RltOXT1udWxsO319ZWxzZXtUKFAsUSk7RltOXT1udWxsO319
ZWxzZXtSLnB1c2goUSk7fX19Zm9yKE49MCxNPU8ubGVuZ3RoO048TTtOPU4rMSl7
UT1PW05dO1QodGhpcy5nZXRFbChRLmlkKSxRKTt9Qy0tO2lmKFMpe2ZvcihOPUYu
bGVuZ3RoLTE7Tj4tMTtOLS0pe1E9RltOXTtpZighUXx8IVEuaWQpe0Yuc3BsaWNl
KE4sMSk7fX10aGlzLnN0YXJ0SW50ZXJ2YWwoKTt9ZWxzZXtpZih0aGlzLl9pbnRl
cnZhbCl7Y2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCk7dGhpcy5faW50ZXJ2
YWw9bnVsbDt9fXRoaXMubG9ja2VkPWZhbHNlO30scHVyZ2VFbGVtZW50OmZ1bmN0
aW9uKFEsUixUKXt2YXIgTz0oWUFIT08ubGFuZy5pc1N0cmluZyhRKSk/dGhpcy5n
ZXRFbChRKTpRO3ZhciBTPXRoaXMuZ2V0TGlzdGVuZXJzKE8sVCksUCxNO2lmKFMp
e2ZvcihQPVMubGVuZ3RoLTE7UD4tMTtQLS0pe3ZhciBOPVNbUF07dGhpcy5yZW1v
dmVMaXN0ZW5lcihPLE4udHlwZSxOLmZuKTt9fWlmKFImJk8mJk8uY2hpbGROb2Rl
cyl7Zm9yKFA9MCxNPU8uY2hpbGROb2Rlcy5sZW5ndGg7UDxNOysrUCl7dGhpcy5w
dXJnZUVsZW1lbnQoTy5jaGlsZE5vZGVzW1BdLFIsVCk7fX19LGdldExpc3RlbmVy
czpmdW5jdGlvbihPLE0pe3ZhciBSPVtdLE47aWYoIU0pe049W0ksSl07fWVsc2V7
aWYoTT09PSJ1bmxvYWQiKXtOPVtKXTt9ZWxzZXtOPVtJXTt9fXZhciBUPShZQUhP
Ty5sYW5nLmlzU3RyaW5nKE8pKT90aGlzLmdldEVsKE8pOk87Zm9yKHZhciBRPTA7
UTxOLmxlbmd0aDtRPVErMSl7dmFyIFY9TltRXTtpZihWKXtmb3IodmFyIFM9MCxV
PVYubGVuZ3RoO1M8VTsrK1Mpe3ZhciBQPVZbU107aWYoUCYmUFt0aGlzLkVMXT09
PVQmJighTXx8TT09PVBbdGhpcy5UWVBFXSkpe1IucHVzaCh7dHlwZTpQW3RoaXMu
VFlQRV0sZm46UFt0aGlzLkZOXSxvYmo6UFt0aGlzLk9CSl0sYWRqdXN0OlBbdGhp
cy5PVkVSUklERV0sc2NvcGU6UFt0aGlzLkFESl9TQ09QRV0saW5kZXg6U30pO319
fX1yZXR1cm4oUi5sZW5ndGgpP1I6bnVsbDt9LF91bmxvYWQ6ZnVuY3Rpb24oVCl7
dmFyIE49WUFIT08udXRpbC5FdmVudCxRLFAsTyxTLFIsVT1KLnNsaWNlKCksTTtm
b3IoUT0wLFM9Si5sZW5ndGg7UTxTOysrUSl7Tz1VW1FdO2lmKE8pe009d2luZG93
O2lmKE9bTi5BREpfU0NPUEVdKXtpZihPW04uQURKX1NDT1BFXT09PXRydWUpe009
T1tOLlVOTE9BRF9PQkpdO31lbHNle009T1tOLkFESl9TQ09QRV07fX1PW04uRk5d
LmNhbGwoTSxOLmdldEV2ZW50KFQsT1tOLkVMXSksT1tOLlVOTE9BRF9PQkpdKTtV
W1FdPW51bGw7fX1PPW51bGw7TT1udWxsO0o9bnVsbDtpZihJKXtmb3IoUD1JLmxl
bmd0aC0xO1A+LTE7UC0tKXtPPUlbUF07aWYoTyl7Ti5yZW1vdmVMaXN0ZW5lcihP
W04uRUxdLE9bTi5UWVBFXSxPW04uRk5dLFApO319Tz1udWxsO31HPW51bGw7Ti5f
c2ltcGxlUmVtb3ZlKHdpbmRvdywidW5sb2FkIixOLl91bmxvYWQpO30sX2dldFNj
cm9sbExlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZ2V0U2Nyb2xsKClbMV07
fSxfZ2V0U2Nyb2xsVG9wOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2dldFNjcm9s
bCgpWzBdO30sX2dldFNjcm9sbDpmdW5jdGlvbigpe3ZhciBNPWRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudCxOPWRvY3VtZW50LmJvZHk7aWYoTSYmKE0uc2Nyb2xsVG9w
fHxNLnNjcm9sbExlZnQpKXtyZXR1cm5bTS5zY3JvbGxUb3AsTS5zY3JvbGxMZWZ0
XTt9ZWxzZXtpZihOKXtyZXR1cm5bTi5zY3JvbGxUb3AsTi5zY3JvbGxMZWZ0XTt9
ZWxzZXtyZXR1cm5bMCwwXTt9fX0scmVnQ0U6ZnVuY3Rpb24oKXt9LF9zaW1wbGVB
ZGQ6ZnVuY3Rpb24oKXtpZih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcil7cmV0dXJu
IGZ1bmN0aW9uKE8sUCxOLE0pe08uYWRkRXZlbnRMaXN0ZW5lcihQLE4sKE0pKTt9
O31lbHNle2lmKHdpbmRvdy5hdHRhY2hFdmVudCl7cmV0dXJuIGZ1bmN0aW9uKE8s
UCxOLE0pe08uYXR0YWNoRXZlbnQoIm9uIitQLE4pO307fWVsc2V7cmV0dXJuIGZ1
bmN0aW9uKCl7fTt9fX0oKSxfc2ltcGxlUmVtb3ZlOmZ1bmN0aW9uKCl7aWYod2lu
ZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIpe3JldHVybiBmdW5jdGlvbihPLFAsTixN
KXtPLnJlbW92ZUV2ZW50TGlzdGVuZXIoUCxOLChNKSk7fTt9ZWxzZXtpZih3aW5k
b3cuZGV0YWNoRXZlbnQpe3JldHVybiBmdW5jdGlvbihOLE8sTSl7Ti5kZXRhY2hF
dmVudCgib24iK08sTSk7fTt9ZWxzZXtyZXR1cm4gZnVuY3Rpb24oKXt9O319fSgp
fTt9KCk7KGZ1bmN0aW9uKCl7dmFyIEVVPVlBSE9PLnV0aWwuRXZlbnQ7RVUub249
RVUuYWRkTGlzdGVuZXI7RVUub25Gb2N1cz1FVS5hZGRGb2N1c0xpc3RlbmVyO0VV
Lm9uQmx1cj1FVS5hZGRCbHVyTGlzdGVuZXI7Ci8qIERPTVJlYWR5OiBiYXNlZCBv
biB3b3JrIGJ5OiBEZWFuIEVkd2FyZHMvSm9obiBSZXNpZy9NYXR0aGlhcyBNaWxs
ZXIgKi8KaWYoRVUuaXNJRSl7WUFIT08udXRpbC5FdmVudC5vbkRPTVJlYWR5KFlB
SE9PLnV0aWwuRXZlbnQuX3RyeVByZWxvYWRBdHRhY2gsWUFIT08udXRpbC5FdmVu
dCx0cnVlKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7RVUuX2Ry
aT1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3RyeXtuLmRvU2Nyb2xsKCJsZWZ0Iik7
Y2xlYXJJbnRlcnZhbChFVS5fZHJpKTtFVS5fZHJpPW51bGw7RVUuX3JlYWR5KCk7
bj1udWxsO31jYXRjaChleCl7fX0sRVUuUE9MTF9JTlRFUlZBTCk7fWVsc2V7aWYo
RVUud2Via2l0JiZFVS53ZWJraXQ8NTI1KXtFVS5fZHJpPXNldEludGVydmFsKGZ1
bmN0aW9uKCl7dmFyIHJzPWRvY3VtZW50LnJlYWR5U3RhdGU7aWYoImxvYWRlZCI9
PXJzfHwiY29tcGxldGUiPT1ycyl7Y2xlYXJJbnRlcnZhbChFVS5fZHJpKTtFVS5f
ZHJpPW51bGw7RVUuX3JlYWR5KCk7fX0sRVUuUE9MTF9JTlRFUlZBTCk7fWVsc2V7
RVUuX3NpbXBsZUFkZChkb2N1bWVudCwiRE9NQ29udGVudExvYWRlZCIsRVUuX3Jl
YWR5KTt9fUVVLl9zaW1wbGVBZGQod2luZG93LCJsb2FkIixFVS5fbG9hZCk7RVUu
X3NpbXBsZUFkZCh3aW5kb3csInVubG9hZCIsRVUuX3VubG9hZCk7RVUuX3RyeVBy
ZWxvYWRBdHRhY2goKTt9KSgpO31ZQUhPTy51dGlsLkV2ZW50UHJvdmlkZXI9ZnVu
Y3Rpb24oKXt9O1lBSE9PLnV0aWwuRXZlbnRQcm92aWRlci5wcm90b3R5cGU9e19f
eXVpX2V2ZW50czpudWxsLF9feXVpX3N1YnNjcmliZXJzOm51bGwsc3Vic2NyaWJl
OmZ1bmN0aW9uKEEsQyxGLEUpe3RoaXMuX195dWlfZXZlbnRzPXRoaXMuX195dWlf
ZXZlbnRzfHx7fTt2YXIgRD10aGlzLl9feXVpX2V2ZW50c1tBXTtpZihEKXtELnN1
YnNjcmliZShDLEYsRSk7Cn1lbHNle3RoaXMuX195dWlfc3Vic2NyaWJlcnM9dGhp
cy5fX3l1aV9zdWJzY3JpYmVyc3x8e307dmFyIEI9dGhpcy5fX3l1aV9zdWJzY3Jp
YmVycztpZighQltBXSl7QltBXT1bXTt9QltBXS5wdXNoKHtmbjpDLG9iajpGLG92
ZXJyaWRlQ29udGV4dDpFfSk7fX0sdW5zdWJzY3JpYmU6ZnVuY3Rpb24oQyxFLEcp
e3RoaXMuX195dWlfZXZlbnRzPXRoaXMuX195dWlfZXZlbnRzfHx7fTt2YXIgQT10
aGlzLl9feXVpX2V2ZW50cztpZihDKXt2YXIgRj1BW0NdO2lmKEYpe3JldHVybiBG
LnVuc3Vic2NyaWJlKEUsRyk7fX1lbHNle3ZhciBCPXRydWU7Zm9yKHZhciBEIGlu
IEEpe2lmKFlBSE9PLmxhbmcuaGFzT3duUHJvcGVydHkoQSxEKSl7Qj1CJiZBW0Rd
LnVuc3Vic2NyaWJlKEUsRyk7fX1yZXR1cm4gQjt9cmV0dXJuIGZhbHNlO30sdW5z
dWJzY3JpYmVBbGw6ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMudW5zdWJzY3JpYmUo
QSk7fSxjcmVhdGVFdmVudDpmdW5jdGlvbihHLEQpe3RoaXMuX195dWlfZXZlbnRz
PXRoaXMuX195dWlfZXZlbnRzfHx7fTt2YXIgQT1EfHx7fTt2YXIgST10aGlzLl9f
eXVpX2V2ZW50cztpZihJW0ddKXt9ZWxzZXt2YXIgSD1BLnNjb3BlfHx0aGlzO3Zh
ciBFPShBLnNpbGVudCk7dmFyIEI9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQo
RyxILEUsWUFIT08udXRpbC5DdXN0b21FdmVudC5GTEFUKTtJW0ddPUI7aWYoQS5v
blN1YnNjcmliZUNhbGxiYWNrKXtCLnN1YnNjcmliZUV2ZW50LnN1YnNjcmliZShB
Lm9uU3Vic2NyaWJlQ2FsbGJhY2spO310aGlzLl9feXVpX3N1YnNjcmliZXJzPXRo
aXMuX195dWlfc3Vic2NyaWJlcnN8fHt9O3ZhciBGPXRoaXMuX195dWlfc3Vic2Ny
aWJlcnNbR107aWYoRil7Zm9yKHZhciBDPTA7QzxGLmxlbmd0aDsrK0Mpe0Iuc3Vi
c2NyaWJlKEZbQ10uZm4sRltDXS5vYmosRltDXS5vdmVycmlkZUNvbnRleHQpO319
fXJldHVybiBJW0ddO30sZmlyZUV2ZW50OmZ1bmN0aW9uKEUsRCxBLEMpe3RoaXMu
X195dWlfZXZlbnRzPXRoaXMuX195dWlfZXZlbnRzfHx7fTt2YXIgRz10aGlzLl9f
eXVpX2V2ZW50c1tFXTtpZighRyl7cmV0dXJuIG51bGw7fXZhciBCPVtdO2Zvcih2
YXIgRj0xO0Y8YXJndW1lbnRzLmxlbmd0aDsrK0Ype0IucHVzaChhcmd1bWVudHNb
Rl0pO31yZXR1cm4gRy5maXJlLmFwcGx5KEcsQik7fSxoYXNFdmVudDpmdW5jdGlv
bihBKXtpZih0aGlzLl9feXVpX2V2ZW50cyl7aWYodGhpcy5fX3l1aV9ldmVudHNb
QV0pe3JldHVybiB0cnVlO319cmV0dXJuIGZhbHNlO319OyhmdW5jdGlvbigpe3Zh
ciBBPVlBSE9PLnV0aWwuRXZlbnQsQz1ZQUhPTy5sYW5nO1lBSE9PLnV0aWwuS2V5
TGlzdGVuZXI9ZnVuY3Rpb24oRCxJLEUsRil7aWYoIUQpe31lbHNle2lmKCFJKXt9
ZWxzZXtpZighRSl7fX19aWYoIUYpe0Y9WUFIT08udXRpbC5LZXlMaXN0ZW5lci5L
RVlET1dOO312YXIgRz1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgia2V5UHJl
c3NlZCIpO3RoaXMuZW5hYmxlZEV2ZW50PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2
ZW50KCJlbmFibGVkIik7dGhpcy5kaXNhYmxlZEV2ZW50PW5ldyBZQUhPTy51dGls
LkN1c3RvbUV2ZW50KCJkaXNhYmxlZCIpO2lmKEMuaXNTdHJpbmcoRCkpe0Q9ZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoRCk7fWlmKEMuaXNGdW5jdGlvbihFKSl7Ry5z
dWJzY3JpYmUoRSk7fWVsc2V7Ry5zdWJzY3JpYmUoRS5mbixFLnNjb3BlLEUuY29y
cmVjdFNjb3BlKTt9ZnVuY3Rpb24gSChPLE4pe2lmKCFJLnNoaWZ0KXtJLnNoaWZ0
PWZhbHNlO31pZighSS5hbHQpe0kuYWx0PWZhbHNlO31pZighSS5jdHJsKXtJLmN0
cmw9ZmFsc2U7fWlmKE8uc2hpZnRLZXk9PUkuc2hpZnQmJk8uYWx0S2V5PT1JLmFs
dCYmTy5jdHJsS2V5PT1JLmN0cmwpe3ZhciBKLE09SS5rZXlzLEw7aWYoWUFIT08u
bGFuZy5pc0FycmF5KE0pKXtmb3IodmFyIEs9MDtLPE0ubGVuZ3RoO0srKyl7Sj1N
W0tdO0w9QS5nZXRDaGFyQ29kZShPKTtpZihKPT1MKXtHLmZpcmUoTCxPKTticmVh
azt9fX1lbHNle0w9QS5nZXRDaGFyQ29kZShPKTtpZihNPT1MKXtHLmZpcmUoTCxP
KTt9fX19dGhpcy5lbmFibGU9ZnVuY3Rpb24oKXtpZighdGhpcy5lbmFibGVkKXtB
Lm9uKEQsRixIKTt0aGlzLmVuYWJsZWRFdmVudC5maXJlKEkpO310aGlzLmVuYWJs
ZWQ9dHJ1ZTt9O3RoaXMuZGlzYWJsZT1mdW5jdGlvbigpe2lmKHRoaXMuZW5hYmxl
ZCl7QS5yZW1vdmVMaXN0ZW5lcihELEYsSCk7dGhpcy5kaXNhYmxlZEV2ZW50LmZp
cmUoSSk7fXRoaXMuZW5hYmxlZD1mYWxzZTt9O3RoaXMudG9TdHJpbmc9ZnVuY3Rp
b24oKXtyZXR1cm4iS2V5TGlzdGVuZXIgWyIrSS5rZXlzKyJdICIrRC50YWdOYW1l
KyhELmlkPyJbIitELmlkKyJdIjoiIik7fTt9O3ZhciBCPVlBSE9PLnV0aWwuS2V5
TGlzdGVuZXI7Qi5LRVlET1dOPSJrZXlkb3duIjtCLktFWVVQPSJrZXl1cCI7Qi5L
RVk9e0FMVDoxOCxCQUNLX1NQQUNFOjgsQ0FQU19MT0NLOjIwLENPTlRST0w6MTcs
REVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01F
OjM2LExFRlQ6MzcsTUVUQToyMjQsTlVNX0xPQ0s6MTQ0LFBBR0VfRE9XTjozNCxQ
QUdFX1VQOjMzLFBBVVNFOjE5LFBSSU5UU0NSRUVOOjQ0LFJJR0hUOjM5LFNDUk9M
TF9MT0NLOjE0NSxTSElGVDoxNixTUEFDRTozMixUQUI6OSxVUDozOH07fSkoKTtZ
QUhPTy5yZWdpc3RlcigiZXZlbnQiLFlBSE9PLnV0aWwuRXZlbnQse3ZlcnNpb246
IjIuNy4wIixidWlsZDoiMTc5OSJ9KTtZQUhPTy5yZWdpc3RlcigieWFob28tZG9t
LWV2ZW50IiwgWUFIT08sIHt2ZXJzaW9uOiAiMi43LjAiLCBidWlsZDogIjE3OTki
fSk7Ci8qCkNvcHlyaWdodCAoYykgMjAwOSwgWWFob28hIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KQ29kZSBsaWNlbnNlZCB1bmRlciB0aGUgQlNEIExpY2Vuc2U6
Cmh0dHA6Ly9kZXZlbG9wZXIueWFob28ubmV0L3l1aS9saWNlbnNlLnR4dAp2ZXJz
aW9uOiAyLjcuMAoqLwpZQUhPTy51dGlsLkNvbm5lY3Q9e19tc3htbF9wcm9naWQ6
WyJNaWNyb3NvZnQuWE1MSFRUUCIsIk1TWE1MMi5YTUxIVFRQLjMuMCIsIk1TWE1M
Mi5YTUxIVFRQIl0sX2h0dHBfaGVhZGVyczp7fSxfaGFzX2h0dHBfaGVhZGVyczpm
YWxzZSxfdXNlX2RlZmF1bHRfcG9zdF9oZWFkZXI6dHJ1ZSxfZGVmYXVsdF9wb3N0
X2hlYWRlcjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFy
c2V0PVVURi04IixfZGVmYXVsdF9mb3JtX2hlYWRlcjoiYXBwbGljYXRpb24veC13
d3ctZm9ybS11cmxlbmNvZGVkIixfdXNlX2RlZmF1bHRfeGhyX2hlYWRlcjp0cnVl
LF9kZWZhdWx0X3hocl9oZWFkZXI6IlhNTEh0dHBSZXF1ZXN0IixfaGFzX2RlZmF1
bHRfaGVhZGVyczp0cnVlLF9kZWZhdWx0X2hlYWRlcnM6e30sX2lzRm9ybVN1Ym1p
dDpmYWxzZSxfaXNGaWxlVXBsb2FkOmZhbHNlLF9mb3JtTm9kZTpudWxsLF9zRm9y
bURhdGE6bnVsbCxfcG9sbDp7fSxfdGltZU91dDp7fSxfcG9sbGluZ19pbnRlcnZh
bDo1MCxfdHJhbnNhY3Rpb25faWQ6MCxfc3VibWl0RWxlbWVudFZhbHVlOm51bGws
X2hhc1N1Ym1pdExpc3RlbmVyOihmdW5jdGlvbigpe2lmKFlBSE9PLnV0aWwuRXZl
bnQpe1lBSE9PLnV0aWwuRXZlbnQuYWRkTGlzdGVuZXIoZG9jdW1lbnQsImNsaWNr
IixmdW5jdGlvbihDKXt2YXIgQj1ZQUhPTy51dGlsLkV2ZW50LmdldFRhcmdldChD
KSxBPUIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZigoQT09PSJpbnB1dCJ8fEE9
PT0iYnV0dG9uIikmJihCLnR5cGUmJkIudHlwZS50b0xvd2VyQ2FzZSgpPT0ic3Vi
bWl0Iikpe1lBSE9PLnV0aWwuQ29ubmVjdC5fc3VibWl0RWxlbWVudFZhbHVlPWVu
Y29kZVVSSUNvbXBvbmVudChCLm5hbWUpKyI9IitlbmNvZGVVUklDb21wb25lbnQo
Qi52YWx1ZSk7fX0pO3JldHVybiB0cnVlO31yZXR1cm4gZmFsc2U7fSkoKSxzdGFy
dEV2ZW50Om5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJzdGFydCIpLGNvbXBs
ZXRlRXZlbnQ6bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImNvbXBsZXRlIiks
c3VjY2Vzc0V2ZW50Om5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJzdWNjZXNz
IiksZmFpbHVyZUV2ZW50Om5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJmYWls
dXJlIiksdXBsb2FkRXZlbnQ6bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoInVw
bG9hZCIpLGFib3J0RXZlbnQ6bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImFi
b3J0IiksX2N1c3RvbUV2ZW50czp7b25TdGFydDpbInN0YXJ0RXZlbnQiLCJzdGFy
dCJdLG9uQ29tcGxldGU6WyJjb21wbGV0ZUV2ZW50IiwiY29tcGxldGUiXSxvblN1
Y2Nlc3M6WyJzdWNjZXNzRXZlbnQiLCJzdWNjZXNzIl0sb25GYWlsdXJlOlsiZmFp
bHVyZUV2ZW50IiwiZmFpbHVyZSJdLG9uVXBsb2FkOlsidXBsb2FkRXZlbnQiLCJ1
cGxvYWQiXSxvbkFib3J0OlsiYWJvcnRFdmVudCIsImFib3J0Il19LHNldFByb2dJ
ZDpmdW5jdGlvbihBKXt0aGlzLl9tc3htbF9wcm9naWQudW5zaGlmdChBKTt9LHNl
dERlZmF1bHRQb3N0SGVhZGVyOmZ1bmN0aW9uKEEpe2lmKHR5cGVvZiBBPT0ic3Ry
aW5nIil7dGhpcy5fZGVmYXVsdF9wb3N0X2hlYWRlcj1BO31lbHNle2lmKHR5cGVv
ZiBBPT0iYm9vbGVhbiIpe3RoaXMuX3VzZV9kZWZhdWx0X3Bvc3RfaGVhZGVyPUE7
fX19LHNldERlZmF1bHRYaHJIZWFkZXI6ZnVuY3Rpb24oQSl7aWYodHlwZW9mIEE9
PSJzdHJpbmciKXt0aGlzLl9kZWZhdWx0X3hocl9oZWFkZXI9QTt9ZWxzZXt0aGlz
Ll91c2VfZGVmYXVsdF94aHJfaGVhZGVyPUE7fX0sc2V0UG9sbGluZ0ludGVydmFs
OmZ1bmN0aW9uKEEpe2lmKHR5cGVvZiBBPT0ibnVtYmVyIiYmaXNGaW5pdGUoQSkp
e3RoaXMuX3BvbGxpbmdfaW50ZXJ2YWw9QTt9fSxjcmVhdGVYaHJPYmplY3Q6ZnVu
Y3Rpb24oRil7dmFyIEUsQTt0cnl7QT1uZXcgWE1MSHR0cFJlcXVlc3QoKTtFPXtj
b25uOkEsdElkOkZ9O31jYXRjaChEKXtmb3IodmFyIEI9MDtCPHRoaXMuX21zeG1s
X3Byb2dpZC5sZW5ndGg7KytCKXt0cnl7QT1uZXcgQWN0aXZlWE9iamVjdCh0aGlz
Ll9tc3htbF9wcm9naWRbQl0pO0U9e2Nvbm46QSx0SWQ6Rn07YnJlYWs7fWNhdGNo
KEMpe319fWZpbmFsbHl7cmV0dXJuIEU7fX0sZ2V0Q29ubmVjdGlvbk9iamVjdDpm
dW5jdGlvbihBKXt2YXIgQzt2YXIgRD10aGlzLl90cmFuc2FjdGlvbl9pZDt0cnl7
aWYoIUEpe0M9dGhpcy5jcmVhdGVYaHJPYmplY3QoRCk7fWVsc2V7Qz17fTtDLnRJ
ZD1EO0MuaXNVcGxvYWQ9dHJ1ZTt9aWYoQyl7dGhpcy5fdHJhbnNhY3Rpb25faWQr
Kzt9fWNhdGNoKEIpe31maW5hbGx5e3JldHVybiBDO319LGFzeW5jUmVxdWVzdDpm
dW5jdGlvbihGLEMsRSxBKXt2YXIgRD0odGhpcy5faXNGaWxlVXBsb2FkKT90aGlz
LmdldENvbm5lY3Rpb25PYmplY3QodHJ1ZSk6dGhpcy5nZXRDb25uZWN0aW9uT2Jq
ZWN0KCk7dmFyIEI9KEUmJkUuYXJndW1lbnQpP0UuYXJndW1lbnQ6bnVsbDtpZigh
RCl7cmV0dXJuIG51bGw7fWVsc2V7aWYoRSYmRS5jdXN0b21ldmVudHMpe3RoaXMu
aW5pdEN1c3RvbUV2ZW50cyhELEUpO31pZih0aGlzLl9pc0Zvcm1TdWJtaXQpe2lm
KHRoaXMuX2lzRmlsZVVwbG9hZCl7dGhpcy51cGxvYWRGaWxlKEQsRSxDLEEpO3Jl
dHVybiBEO31pZihGLnRvVXBwZXJDYXNlKCk9PSJHRVQiKXtpZih0aGlzLl9zRm9y
bURhdGEubGVuZ3RoIT09MCl7Qys9KChDLmluZGV4T2YoIj8iKT09LTEpPyI/Ijoi
JiIpK3RoaXMuX3NGb3JtRGF0YTt9fWVsc2V7aWYoRi50b1VwcGVyQ2FzZSgpPT0i
UE9TVCIpe0E9QT90aGlzLl9zRm9ybURhdGErIiYiK0E6dGhpcy5fc0Zvcm1EYXRh
O319fWlmKEYudG9VcHBlckNhc2UoKT09IkdFVCImJihFJiZFLmNhY2hlPT09ZmFs
c2UpKXtDKz0oKEMuaW5kZXhPZigiPyIpPT0tMSk/Ij8iOiImIikrInJuZD0iK25l
dyBEYXRlKCkudmFsdWVPZigpLnRvU3RyaW5nKCk7fUQuY29ubi5vcGVuKEYsQyx0
cnVlKTtpZih0aGlzLl91c2VfZGVmYXVsdF94aHJfaGVhZGVyKXtpZighdGhpcy5f
ZGVmYXVsdF9oZWFkZXJzWyJYLVJlcXVlc3RlZC1XaXRoIl0pe3RoaXMuaW5pdEhl
YWRlcigiWC1SZXF1ZXN0ZWQtV2l0aCIsdGhpcy5fZGVmYXVsdF94aHJfaGVhZGVy
LHRydWUpO319aWYoKEYudG9VcHBlckNhc2UoKT09PSJQT1NUIiYmdGhpcy5fdXNl
X2RlZmF1bHRfcG9zdF9oZWFkZXIpJiZ0aGlzLl9pc0Zvcm1TdWJtaXQ9PT1mYWxz
ZSl7dGhpcy5pbml0SGVhZGVyKCJDb250ZW50LVR5cGUiLHRoaXMuX2RlZmF1bHRf
cG9zdF9oZWFkZXIpO31pZih0aGlzLl9oYXNfZGVmYXVsdF9oZWFkZXJzfHx0aGlz
Ll9oYXNfaHR0cF9oZWFkZXJzKXt0aGlzLnNldEhlYWRlcihEKTt9dGhpcy5oYW5k
bGVSZWFkeVN0YXRlKEQsRSk7RC5jb25uLnNlbmQoQXx8IiIpO2lmKHRoaXMuX2lz
Rm9ybVN1Ym1pdD09PXRydWUpe3RoaXMucmVzZXRGb3JtU3RhdGUoKTt9dGhpcy5z
dGFydEV2ZW50LmZpcmUoRCxCKTtpZihELnN0YXJ0RXZlbnQpe0Quc3RhcnRFdmVu
dC5maXJlKEQsQik7fXJldHVybiBEO319LGluaXRDdXN0b21FdmVudHM6ZnVuY3Rp
b24oQSxDKXt2YXIgQjtmb3IoQiBpbiBDLmN1c3RvbWV2ZW50cyl7aWYodGhpcy5f
Y3VzdG9tRXZlbnRzW0JdWzBdKXtBW3RoaXMuX2N1c3RvbUV2ZW50c1tCXVswXV09
bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQodGhpcy5fY3VzdG9tRXZlbnRzW0Jd
WzFdLChDLnNjb3BlKT9DLnNjb3BlOm51bGwpO0FbdGhpcy5fY3VzdG9tRXZlbnRz
W0JdWzBdXS5zdWJzY3JpYmUoQy5jdXN0b21ldmVudHNbQl0pO319fSxoYW5kbGVS
ZWFkeVN0YXRlOmZ1bmN0aW9uKEMsRCl7dmFyIEI9dGhpczt2YXIgQT0oRCYmRC5h
cmd1bWVudCk/RC5hcmd1bWVudDpudWxsO2lmKEQmJkQudGltZW91dCl7dGhpcy5f
dGltZU91dFtDLnRJZF09d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtCLmFi
b3J0KEMsRCx0cnVlKTt9LEQudGltZW91dCk7fXRoaXMuX3BvbGxbQy50SWRdPXdp
bmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKEMuY29ubiYmQy5jb25uLnJl
YWR5U3RhdGU9PT00KXt3aW5kb3cuY2xlYXJJbnRlcnZhbChCLl9wb2xsW0MudElk
XSk7ZGVsZXRlIEIuX3BvbGxbQy50SWRdO2lmKEQmJkQudGltZW91dCl7d2luZG93
LmNsZWFyVGltZW91dChCLl90aW1lT3V0W0MudElkXSk7ZGVsZXRlIEIuX3RpbWVP
dXRbQy50SWRdO31CLmNvbXBsZXRlRXZlbnQuZmlyZShDLEEpO2lmKEMuY29tcGxl
dGVFdmVudCl7Qy5jb21wbGV0ZUV2ZW50LmZpcmUoQyxBKTt9Qi5oYW5kbGVUcmFu
c2FjdGlvblJlc3BvbnNlKEMsRCk7fX0sdGhpcy5fcG9sbGluZ19pbnRlcnZhbCk7
fSxoYW5kbGVUcmFuc2FjdGlvblJlc3BvbnNlOmZ1bmN0aW9uKEYsRyxBKXt2YXIg
RCxDO3ZhciBCPShHJiZHLmFyZ3VtZW50KT9HLmFyZ3VtZW50Om51bGw7dHJ5e2lm
KEYuY29ubi5zdGF0dXMhPT11bmRlZmluZWQmJkYuY29ubi5zdGF0dXMhPT0wKXtE
PUYuY29ubi5zdGF0dXM7fWVsc2V7RD0xMzAzMDt9fWNhdGNoKEUpe0Q9MTMwMzA7
fWlmKEQ+PTIwMCYmRDwzMDB8fEQ9PT0xMjIzKXtDPXRoaXMuY3JlYXRlUmVzcG9u
c2VPYmplY3QoRixCKTtpZihHJiZHLnN1Y2Nlc3Mpe2lmKCFHLnNjb3BlKXtHLnN1
Y2Nlc3MoQyk7fWVsc2V7Ry5zdWNjZXNzLmFwcGx5KEcuc2NvcGUsW0NdKTt9fXRo
aXMuc3VjY2Vzc0V2ZW50LmZpcmUoQyk7aWYoRi5zdWNjZXNzRXZlbnQpe0Yuc3Vj
Y2Vzc0V2ZW50LmZpcmUoQyk7fX1lbHNle3N3aXRjaChEKXtjYXNlIDEyMDAyOmNh
c2UgMTIwMjk6Y2FzZSAxMjAzMDpjYXNlIDEyMDMxOmNhc2UgMTIxNTI6Y2FzZSAx
MzAzMDpDPXRoaXMuY3JlYXRlRXhjZXB0aW9uT2JqZWN0KEYudElkLEIsKEE/QTpm
YWxzZSkpO2lmKEcmJkcuZmFpbHVyZSl7aWYoIUcuc2NvcGUpe0cuZmFpbHVyZShD
KTt9ZWxzZXtHLmZhaWx1cmUuYXBwbHkoRy5zY29wZSxbQ10pO319YnJlYWs7ZGVm
YXVsdDpDPXRoaXMuY3JlYXRlUmVzcG9uc2VPYmplY3QoRixCKTtpZihHJiZHLmZh
aWx1cmUpe2lmKCFHLnNjb3BlKXtHLmZhaWx1cmUoQyk7fWVsc2V7Ry5mYWlsdXJl
LmFwcGx5KEcuc2NvcGUsW0NdKTt9fX10aGlzLmZhaWx1cmVFdmVudC5maXJlKEMp
O2lmKEYuZmFpbHVyZUV2ZW50KXtGLmZhaWx1cmVFdmVudC5maXJlKEMpO319dGhp
cy5yZWxlYXNlT2JqZWN0KEYpO0M9bnVsbDt9LGNyZWF0ZVJlc3BvbnNlT2JqZWN0
OmZ1bmN0aW9uKEEsRyl7dmFyIEQ9e307dmFyIEk9e307dHJ5e3ZhciBDPUEuY29u
bi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTt2YXIgRj1DLnNwbGl0KCJcbiIpO2Zv
cih2YXIgRT0wO0U8Ri5sZW5ndGg7RSsrKXt2YXIgQj1GW0VdLmluZGV4T2YoIjoi
KTtpZihCIT0tMSl7SVtGW0VdLnN1YnN0cmluZygwLEIpXT1GW0VdLnN1YnN0cmlu
ZyhCKzIpO319fWNhdGNoKEgpe31ELnRJZD1BLnRJZDtELnN0YXR1cz0oQS5jb25u
LnN0YXR1cz09MTIyMyk/MjA0OkEuY29ubi5zdGF0dXM7RC5zdGF0dXNUZXh0PShB
LmNvbm4uc3RhdHVzPT0xMjIzKT8iTm8gQ29udGVudCI6QS5jb25uLnN0YXR1c1Rl
eHQ7RC5nZXRSZXNwb25zZUhlYWRlcj1JO0QuZ2V0QWxsUmVzcG9uc2VIZWFkZXJz
PUM7RC5yZXNwb25zZVRleHQ9QS5jb25uLnJlc3BvbnNlVGV4dDtELnJlc3BvbnNl
WE1MPUEuY29ubi5yZXNwb25zZVhNTDtpZihHKXtELmFyZ3VtZW50PUc7fXJldHVy
biBEO30sY3JlYXRlRXhjZXB0aW9uT2JqZWN0OmZ1bmN0aW9uKEgsRCxBKXt2YXIg
Rj0wO3ZhciBHPSJjb21tdW5pY2F0aW9uIGZhaWx1cmUiO3ZhciBDPS0xO3ZhciBC
PSJ0cmFuc2FjdGlvbiBhYm9ydGVkIjt2YXIgRT17fTtFLnRJZD1IO2lmKEEpe0Uu
c3RhdHVzPUM7RS5zdGF0dXNUZXh0PUI7fWVsc2V7RS5zdGF0dXM9RjtFLnN0YXR1
c1RleHQ9Rzt9aWYoRCl7RS5hcmd1bWVudD1EO31yZXR1cm4gRTt9LGluaXRIZWFk
ZXI6ZnVuY3Rpb24oQSxELEMpe3ZhciBCPShDKT90aGlzLl9kZWZhdWx0X2hlYWRl
cnM6dGhpcy5faHR0cF9oZWFkZXJzO0JbQV09RDtpZihDKXt0aGlzLl9oYXNfZGVm
YXVsdF9oZWFkZXJzPXRydWU7Cn1lbHNle3RoaXMuX2hhc19odHRwX2hlYWRlcnM9
dHJ1ZTt9fSxzZXRIZWFkZXI6ZnVuY3Rpb24oQSl7dmFyIEI7aWYodGhpcy5faGFz
X2RlZmF1bHRfaGVhZGVycyl7Zm9yKEIgaW4gdGhpcy5fZGVmYXVsdF9oZWFkZXJz
KXtpZihZQUhPTy5sYW5nLmhhc093blByb3BlcnR5KHRoaXMuX2RlZmF1bHRfaGVh
ZGVycyxCKSl7QS5jb25uLnNldFJlcXVlc3RIZWFkZXIoQix0aGlzLl9kZWZhdWx0
X2hlYWRlcnNbQl0pO319fWlmKHRoaXMuX2hhc19odHRwX2hlYWRlcnMpe2ZvcihC
IGluIHRoaXMuX2h0dHBfaGVhZGVycyl7aWYoWUFIT08ubGFuZy5oYXNPd25Qcm9w
ZXJ0eSh0aGlzLl9odHRwX2hlYWRlcnMsQikpe0EuY29ubi5zZXRSZXF1ZXN0SGVh
ZGVyKEIsdGhpcy5faHR0cF9oZWFkZXJzW0JdKTt9fWRlbGV0ZSB0aGlzLl9odHRw
X2hlYWRlcnM7dGhpcy5faHR0cF9oZWFkZXJzPXt9O3RoaXMuX2hhc19odHRwX2hl
YWRlcnM9ZmFsc2U7fX0scmVzZXREZWZhdWx0SGVhZGVyczpmdW5jdGlvbigpe2Rl
bGV0ZSB0aGlzLl9kZWZhdWx0X2hlYWRlcnM7dGhpcy5fZGVmYXVsdF9oZWFkZXJz
PXt9O3RoaXMuX2hhc19kZWZhdWx0X2hlYWRlcnM9ZmFsc2U7fSxzZXRGb3JtOmZ1
bmN0aW9uKE0sSCxDKXt2YXIgTCxCLEssSSxQLEo9ZmFsc2UsRj1bXSxPPTAsRSxH
LEQsTixBO3RoaXMucmVzZXRGb3JtU3RhdGUoKTtpZih0eXBlb2YgTT09InN0cmlu
ZyIpe0w9KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKE0pfHxkb2N1bWVudC5mb3Jt
c1tNXSk7fWVsc2V7aWYodHlwZW9mIE09PSJvYmplY3QiKXtMPU07fWVsc2V7cmV0
dXJuO319aWYoSCl7dGhpcy5jcmVhdGVGcmFtZShDP0M6bnVsbCk7dGhpcy5faXNG
b3JtU3VibWl0PXRydWU7dGhpcy5faXNGaWxlVXBsb2FkPXRydWU7dGhpcy5fZm9y
bU5vZGU9TDtyZXR1cm47fWZvcihFPTAsRz1MLmVsZW1lbnRzLmxlbmd0aDtFPEc7
KytFKXtCPUwuZWxlbWVudHNbRV07UD1CLmRpc2FibGVkO0s9Qi5uYW1lO2lmKCFQ
JiZLKXtLPWVuY29kZVVSSUNvbXBvbmVudChLKSsiPSI7ST1lbmNvZGVVUklDb21w
b25lbnQoQi52YWx1ZSk7c3dpdGNoKEIudHlwZSl7Y2FzZSJzZWxlY3Qtb25lIjpp
ZihCLnNlbGVjdGVkSW5kZXg+LTEpe0E9Qi5vcHRpb25zW0Iuc2VsZWN0ZWRJbmRl
eF07RltPKytdPUsrZW5jb2RlVVJJQ29tcG9uZW50KChBLmF0dHJpYnV0ZXMudmFs
dWUmJkEuYXR0cmlidXRlcy52YWx1ZS5zcGVjaWZpZWQpP0EudmFsdWU6QS50ZXh0
KTt9YnJlYWs7Y2FzZSJzZWxlY3QtbXVsdGlwbGUiOmlmKEIuc2VsZWN0ZWRJbmRl
eD4tMSl7Zm9yKEQ9Qi5zZWxlY3RlZEluZGV4LE49Qi5vcHRpb25zLmxlbmd0aDtE
PE47KytEKXtBPUIub3B0aW9uc1tEXTtpZihBLnNlbGVjdGVkKXtGW08rK109Sytl
bmNvZGVVUklDb21wb25lbnQoKEEuYXR0cmlidXRlcy52YWx1ZSYmQS5hdHRyaWJ1
dGVzLnZhbHVlLnNwZWNpZmllZCk/QS52YWx1ZTpBLnRleHQpO319fWJyZWFrO2Nh
c2UicmFkaW8iOmNhc2UiY2hlY2tib3giOmlmKEIuY2hlY2tlZCl7RltPKytdPUsr
STt9YnJlYWs7Y2FzZSJmaWxlIjpjYXNlIHVuZGVmaW5lZDpjYXNlInJlc2V0Ijpj
YXNlImJ1dHRvbiI6YnJlYWs7Y2FzZSJzdWJtaXQiOmlmKEo9PT1mYWxzZSl7aWYo
dGhpcy5faGFzU3VibWl0TGlzdGVuZXImJnRoaXMuX3N1Ym1pdEVsZW1lbnRWYWx1
ZSl7RltPKytdPXRoaXMuX3N1Ym1pdEVsZW1lbnRWYWx1ZTt9Sj10cnVlO31icmVh
aztkZWZhdWx0OkZbTysrXT1LK0k7fX19dGhpcy5faXNGb3JtU3VibWl0PXRydWU7
dGhpcy5fc0Zvcm1EYXRhPUYuam9pbigiJiIpO3RoaXMuaW5pdEhlYWRlcigiQ29u
dGVudC1UeXBlIix0aGlzLl9kZWZhdWx0X2Zvcm1faGVhZGVyKTtyZXR1cm4gdGhp
cy5fc0Zvcm1EYXRhO30scmVzZXRGb3JtU3RhdGU6ZnVuY3Rpb24oKXt0aGlzLl9p
c0Zvcm1TdWJtaXQ9ZmFsc2U7dGhpcy5faXNGaWxlVXBsb2FkPWZhbHNlO3RoaXMu
X2Zvcm1Ob2RlPW51bGw7dGhpcy5fc0Zvcm1EYXRhPSIiO30sY3JlYXRlRnJhbWU6
ZnVuY3Rpb24oQSl7dmFyIEI9Inl1aUlPIit0aGlzLl90cmFuc2FjdGlvbl9pZDt2
YXIgQztpZihZQUhPTy5lbnYudWEuaWUpe0M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnPGlmcmFtZSBpZD0iJytCKyciIG5hbWU9IicrQisnIiAvPicpO2lmKHR5cGVv
ZiBBPT0iYm9vbGVhbiIpe0Muc3JjPSJqYXZhc2NyaXB0OmZhbHNlIjt9fWVsc2V7
Qz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtDLmlkPUI7Qy5uYW1l
PUI7fUMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtDLnN0eWxlLnRvcD0iLTEw
MDBweCI7Qy5zdHlsZS5sZWZ0PSItMTAwMHB4Ijtkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKEMpO30sYXBwZW5kUG9zdERhdGE6ZnVuY3Rpb24oQSl7dmFyIEQ9W10s
Qj1BLnNwbGl0KCImIiksQyxFO2ZvcihDPTA7QzxCLmxlbmd0aDtDKyspe0U9QltD
XS5pbmRleE9mKCI9Iik7aWYoRSE9LTEpe0RbQ109ZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKTtEW0NdLnR5cGU9ImhpZGRlbiI7RFtDXS5uYW1lPWRlY29k
ZVVSSUNvbXBvbmVudChCW0NdLnN1YnN0cmluZygwLEUpKTtEW0NdLnZhbHVlPWRl
Y29kZVVSSUNvbXBvbmVudChCW0NdLnN1YnN0cmluZyhFKzEpKTt0aGlzLl9mb3Jt
Tm9kZS5hcHBlbmRDaGlsZChEW0NdKTt9fXJldHVybiBEO30sdXBsb2FkRmlsZTpm
dW5jdGlvbihELE4sRSxDKXt2YXIgST0ieXVpSU8iK0QudElkLEo9Im11bHRpcGFy
dC9mb3JtLWRhdGEiLEw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSSksTz10aGlz
LEs9KE4mJk4uYXJndW1lbnQpP04uYXJndW1lbnQ6bnVsbCxNLEgsQixHO3ZhciBB
PXthY3Rpb246dGhpcy5fZm9ybU5vZGUuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKSxt
ZXRob2Q6dGhpcy5fZm9ybU5vZGUuZ2V0QXR0cmlidXRlKCJtZXRob2QiKSx0YXJn
ZXQ6dGhpcy5fZm9ybU5vZGUuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKX07dGhpcy5f
Zm9ybU5vZGUuc2V0QXR0cmlidXRlKCJhY3Rpb24iLEUpO3RoaXMuX2Zvcm1Ob2Rl
LnNldEF0dHJpYnV0ZSgibWV0aG9kIiwiUE9TVCIpO3RoaXMuX2Zvcm1Ob2RlLnNl
dEF0dHJpYnV0ZSgidGFyZ2V0IixJKTtpZihZQUhPTy5lbnYudWEuaWUpe3RoaXMu
X2Zvcm1Ob2RlLnNldEF0dHJpYnV0ZSgiZW5jb2RpbmciLEopO31lbHNle3RoaXMu
X2Zvcm1Ob2RlLnNldEF0dHJpYnV0ZSgiZW5jdHlwZSIsSik7fWlmKEMpe009dGhp
cy5hcHBlbmRQb3N0RGF0YShDKTt9dGhpcy5fZm9ybU5vZGUuc3VibWl0KCk7dGhp
cy5zdGFydEV2ZW50LmZpcmUoRCxLKTtpZihELnN0YXJ0RXZlbnQpe0Quc3RhcnRF
dmVudC5maXJlKEQsSyk7fWlmKE4mJk4udGltZW91dCl7dGhpcy5fdGltZU91dFtE
LnRJZF09d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtPLmFib3J0KEQsTix0
cnVlKTt9LE4udGltZW91dCk7fWlmKE0mJk0ubGVuZ3RoPjApe2ZvcihIPTA7SDxN
Lmxlbmd0aDtIKyspe3RoaXMuX2Zvcm1Ob2RlLnJlbW92ZUNoaWxkKE1bSF0pO319
Zm9yKEIgaW4gQSl7aWYoWUFIT08ubGFuZy5oYXNPd25Qcm9wZXJ0eShBLEIpKXtp
ZihBW0JdKXt0aGlzLl9mb3JtTm9kZS5zZXRBdHRyaWJ1dGUoQixBW0JdKTt9ZWxz
ZXt0aGlzLl9mb3JtTm9kZS5yZW1vdmVBdHRyaWJ1dGUoQik7fX19dGhpcy5yZXNl
dEZvcm1TdGF0ZSgpO3ZhciBGPWZ1bmN0aW9uKCl7aWYoTiYmTi50aW1lb3V0KXt3
aW5kb3cuY2xlYXJUaW1lb3V0KE8uX3RpbWVPdXRbRC50SWRdKTtkZWxldGUgTy5f
dGltZU91dFtELnRJZF07fU8uY29tcGxldGVFdmVudC5maXJlKEQsSyk7aWYoRC5j
b21wbGV0ZUV2ZW50KXtELmNvbXBsZXRlRXZlbnQuZmlyZShELEspO31HPXt0SWQ6
RC50SWQsYXJndW1lbnQ6Ti5hcmd1bWVudH07dHJ5e0cucmVzcG9uc2VUZXh0PUwu
Y29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5P0wuY29udGVudFdpbmRvdy5kb2N1
bWVudC5ib2R5LmlubmVySFRNTDpMLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LnRleHRDb250ZW50O0cucmVzcG9uc2VYTUw9TC5jb250ZW50
V2luZG93LmRvY3VtZW50LlhNTERvY3VtZW50P0wuY29udGVudFdpbmRvdy5kb2N1
bWVudC5YTUxEb2N1bWVudDpMLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7fWNhdGNo
KFApe31pZihOJiZOLnVwbG9hZCl7aWYoIU4uc2NvcGUpe04udXBsb2FkKEcpO31l
bHNle04udXBsb2FkLmFwcGx5KE4uc2NvcGUsW0ddKTt9fU8udXBsb2FkRXZlbnQu
ZmlyZShHKTtpZihELnVwbG9hZEV2ZW50KXtELnVwbG9hZEV2ZW50LmZpcmUoRyk7
fVlBSE9PLnV0aWwuRXZlbnQucmVtb3ZlTGlzdGVuZXIoTCwibG9hZCIsRik7c2V0
VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoTCk7
Ty5yZWxlYXNlT2JqZWN0KEQpO30sMTAwKTt9O1lBSE9PLnV0aWwuRXZlbnQuYWRk
TGlzdGVuZXIoTCwibG9hZCIsRik7fSxhYm9ydDpmdW5jdGlvbihFLEcsQSl7dmFy
IEQ7dmFyIEI9KEcmJkcuYXJndW1lbnQpP0cuYXJndW1lbnQ6bnVsbDtpZihFJiZF
LmNvbm4pe2lmKHRoaXMuaXNDYWxsSW5Qcm9ncmVzcyhFKSl7RS5jb25uLmFib3J0
KCk7d2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5fcG9sbFtFLnRJZF0pO2RlbGV0
ZSB0aGlzLl9wb2xsW0UudElkXTtpZihBKXt3aW5kb3cuY2xlYXJUaW1lb3V0KHRo
aXMuX3RpbWVPdXRbRS50SWRdKTtkZWxldGUgdGhpcy5fdGltZU91dFtFLnRJZF07
fUQ9dHJ1ZTt9fWVsc2V7aWYoRSYmRS5pc1VwbG9hZD09PXRydWUpe3ZhciBDPSJ5
dWlJTyIrRS50SWQ7dmFyIEY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoQyk7aWYo
Ril7WUFIT08udXRpbC5FdmVudC5yZW1vdmVMaXN0ZW5lcihGLCJsb2FkIik7ZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChGKTtpZihBKXt3aW5kb3cuY2xlYXJUaW1l
b3V0KHRoaXMuX3RpbWVPdXRbRS50SWRdKTtkZWxldGUgdGhpcy5fdGltZU91dFtF
LnRJZF07fUQ9dHJ1ZTt9fWVsc2V7RD1mYWxzZTt9fWlmKEQ9PT10cnVlKXt0aGlz
LmFib3J0RXZlbnQuZmlyZShFLEIpO2lmKEUuYWJvcnRFdmVudCl7RS5hYm9ydEV2
ZW50LmZpcmUoRSxCKTt9dGhpcy5oYW5kbGVUcmFuc2FjdGlvblJlc3BvbnNlKEUs
Ryx0cnVlKTt9cmV0dXJuIEQ7fSxpc0NhbGxJblByb2dyZXNzOmZ1bmN0aW9uKEIp
e2lmKEImJkIuY29ubil7cmV0dXJuIEIuY29ubi5yZWFkeVN0YXRlIT09NCYmQi5j
b25uLnJlYWR5U3RhdGUhPT0wO31lbHNle2lmKEImJkIuaXNVcGxvYWQ9PT10cnVl
KXt2YXIgQT0ieXVpSU8iK0IudElkO3JldHVybiBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChBKT90cnVlOmZhbHNlO31lbHNle3JldHVybiBmYWxzZTt9fX0scmVsZWFz
ZU9iamVjdDpmdW5jdGlvbihBKXtpZihBJiZBLmNvbm4pe0EuY29ubj1udWxsO0E9
bnVsbDt9fX07WUFIT08ucmVnaXN0ZXIoImNvbm5lY3Rpb24iLFlBSE9PLnV0aWwu
Q29ubmVjdCx7dmVyc2lvbjoiMi43LjAiLGJ1aWxkOiIxNzk5In0pOy8qCkNvcHly
aWdodCAoYykgMjAwOSwgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Q29kZSBsaWNlbnNlZCB1bmRlciB0aGUgQlNEIExpY2Vuc2U6Cmh0dHA6Ly9kZXZl
bG9wZXIueWFob28ubmV0L3l1aS9saWNlbnNlLnR4dAp2ZXJzaW9uOiAyLjcuMAoq
LwooZnVuY3Rpb24oKXt2YXIgQj1ZQUhPTy51dGlsO3ZhciBBPWZ1bmN0aW9uKEQs
QyxFLEYpe2lmKCFEKXt9dGhpcy5pbml0KEQsQyxFLEYpO307QS5OQU1FPSJBbmlt
IjtBLnByb3RvdHlwZT17dG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgQz10aGlzLmdl
dEVsKCl8fHt9O3ZhciBEPUMuaWR8fEMudGFnTmFtZTtyZXR1cm4odGhpcy5jb25z
dHJ1Y3Rvci5OQU1FKyI6ICIrRCk7fSxwYXR0ZXJuczp7bm9OZWdhdGl2ZXM6L3dp
ZHRofGhlaWdodHxvcGFjaXR5fHBhZGRpbmcvaSxvZmZzZXRBdHRyaWJ1dGU6L14o
KHdpZHRofGhlaWdodCl8KHRvcHxsZWZ0KSkkLyxkZWZhdWx0VW5pdDovd2lkdGh8
aGVpZ2h0fHRvcCR8Ym90dG9tJHxsZWZ0JHxyaWdodCQvaSxvZmZzZXRVbml0Oi9c
ZCsoZW18JXxlbnxleHxwdHxpbnxjbXxtbXxwYykkL2l9LGRvTWV0aG9kOmZ1bmN0
aW9uKEMsRSxEKXtyZXR1cm4gdGhpcy5tZXRob2QodGhpcy5jdXJyZW50RnJhbWUs
RSxELUUsdGhpcy50b3RhbEZyYW1lcyk7fSxzZXRBdHRyaWJ1dGU6ZnVuY3Rpb24o
QyxGLEUpe3ZhciBEPXRoaXMuZ2V0RWwoKTtpZih0aGlzLnBhdHRlcm5zLm5vTmVn
YXRpdmVzLnRlc3QoQykpe0Y9KEY+MCk/RjowO31pZigic3R5bGUiIGluIEQpe0Iu
RG9tLnNldFN0eWxlKEQsQyxGK0UpO31lbHNle2lmKEMgaW4gRCl7RFtDXT1GO319
fSxnZXRBdHRyaWJ1dGU6ZnVuY3Rpb24oQyl7dmFyIEU9dGhpcy5nZXRFbCgpO3Zh
ciBHPUIuRG9tLmdldFN0eWxlKEUsQyk7aWYoRyE9PSJhdXRvIiYmIXRoaXMucGF0
dGVybnMub2Zmc2V0VW5pdC50ZXN0KEcpKXtyZXR1cm4gcGFyc2VGbG9hdChHKTt9
dmFyIEQ9dGhpcy5wYXR0ZXJucy5vZmZzZXRBdHRyaWJ1dGUuZXhlYyhDKXx8W107
dmFyIEg9ISEoRFszXSk7dmFyIEY9ISEoRFsyXSk7aWYoInN0eWxlIiBpbiBFKXtp
ZihGfHwoQi5Eb20uZ2V0U3R5bGUoRSwicG9zaXRpb24iKT09ImFic29sdXRlIiYm
SCkpe0c9RVsib2Zmc2V0IitEWzBdLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK0Rb
MF0uc3Vic3RyKDEpXTt9ZWxzZXtHPTA7fX1lbHNle2lmKEMgaW4gRSl7Rz1FW0Nd
O319cmV0dXJuIEc7fSxnZXREZWZhdWx0VW5pdDpmdW5jdGlvbihDKXtpZih0aGlz
LnBhdHRlcm5zLmRlZmF1bHRVbml0LnRlc3QoQykpe3JldHVybiJweCI7fXJldHVy
biIiO30sc2V0UnVudGltZUF0dHJpYnV0ZTpmdW5jdGlvbihEKXt2YXIgSTt2YXIg
RTt2YXIgRj10aGlzLmF0dHJpYnV0ZXM7dGhpcy5ydW50aW1lQXR0cmlidXRlc1tE
XT17fTt2YXIgSD1mdW5jdGlvbihKKXtyZXR1cm4odHlwZW9mIEohPT0idW5kZWZp
bmVkIik7fTtpZighSChGW0RdWyJ0byJdKSYmIUgoRltEXVsiYnkiXSkpe3JldHVy
biBmYWxzZTt9ST0oSChGW0RdWyJmcm9tIl0pKT9GW0RdWyJmcm9tIl06dGhpcy5n
ZXRBdHRyaWJ1dGUoRCk7aWYoSChGW0RdWyJ0byJdKSl7RT1GW0RdWyJ0byJdO31l
bHNle2lmKEgoRltEXVsiYnkiXSkpe2lmKEkuY29uc3RydWN0b3I9PUFycmF5KXtF
PVtdO2Zvcih2YXIgRz0wLEM9SS5sZW5ndGg7RzxDOysrRyl7RVtHXT1JW0ddK0Zb
RF1bImJ5Il1bR10qMTt9fWVsc2V7RT1JK0ZbRF1bImJ5Il0qMTt9fX10aGlzLnJ1
bnRpbWVBdHRyaWJ1dGVzW0RdLnN0YXJ0PUk7dGhpcy5ydW50aW1lQXR0cmlidXRl
c1tEXS5lbmQ9RTt0aGlzLnJ1bnRpbWVBdHRyaWJ1dGVzW0RdLnVuaXQ9KEgoRltE
XS51bml0KSk/RltEXVsidW5pdCJdOnRoaXMuZ2V0RGVmYXVsdFVuaXQoRCk7cmV0
dXJuIHRydWU7fSxpbml0OmZ1bmN0aW9uKEUsSixJLEMpe3ZhciBEPWZhbHNlO3Zh
ciBGPW51bGw7dmFyIEg9MDtFPUIuRG9tLmdldChFKTt0aGlzLmF0dHJpYnV0ZXM9
Snx8e307dGhpcy5kdXJhdGlvbj0hWUFIT08ubGFuZy5pc1VuZGVmaW5lZChJKT9J
OjE7dGhpcy5tZXRob2Q9Q3x8Qi5FYXNpbmcuZWFzZU5vbmU7dGhpcy51c2VTZWNv
bmRzPXRydWU7dGhpcy5jdXJyZW50RnJhbWU9MDt0aGlzLnRvdGFsRnJhbWVzPUIu
QW5pbU1nci5mcHM7dGhpcy5zZXRFbD1mdW5jdGlvbihNKXtFPUIuRG9tLmdldChN
KTt9O3RoaXMuZ2V0RWw9ZnVuY3Rpb24oKXtyZXR1cm4gRTt9O3RoaXMuaXNBbmlt
YXRlZD1mdW5jdGlvbigpe3JldHVybiBEO307dGhpcy5nZXRTdGFydFRpbWU9ZnVu
Y3Rpb24oKXtyZXR1cm4gRjt9O3RoaXMucnVudGltZUF0dHJpYnV0ZXM9e307dGhp
cy5hbmltYXRlPWZ1bmN0aW9uKCl7aWYodGhpcy5pc0FuaW1hdGVkKCkpe3JldHVy
biBmYWxzZTt9dGhpcy5jdXJyZW50RnJhbWU9MDt0aGlzLnRvdGFsRnJhbWVzPSh0
aGlzLnVzZVNlY29uZHMpP01hdGguY2VpbChCLkFuaW1NZ3IuZnBzKnRoaXMuZHVy
YXRpb24pOnRoaXMuZHVyYXRpb247aWYodGhpcy5kdXJhdGlvbj09PTAmJnRoaXMu
dXNlU2Vjb25kcyl7dGhpcy50b3RhbEZyYW1lcz0xO31CLkFuaW1NZ3IucmVnaXN0
ZXJFbGVtZW50KHRoaXMpO3JldHVybiB0cnVlO307dGhpcy5zdG9wPWZ1bmN0aW9u
KE0pe2lmKCF0aGlzLmlzQW5pbWF0ZWQoKSl7cmV0dXJuIGZhbHNlO31pZihNKXt0
aGlzLmN1cnJlbnRGcmFtZT10aGlzLnRvdGFsRnJhbWVzO3RoaXMuX29uVHdlZW4u
ZmlyZSgpO31CLkFuaW1NZ3Iuc3RvcCh0aGlzKTt9O3ZhciBMPWZ1bmN0aW9uKCl7
dGhpcy5vblN0YXJ0LmZpcmUoKTt0aGlzLnJ1bnRpbWVBdHRyaWJ1dGVzPXt9O2Zv
cih2YXIgTSBpbiB0aGlzLmF0dHJpYnV0ZXMpe3RoaXMuc2V0UnVudGltZUF0dHJp
YnV0ZShNKTt9RD10cnVlO0g9MDtGPW5ldyBEYXRlKCk7fTt2YXIgSz1mdW5jdGlv
bigpe3ZhciBPPXtkdXJhdGlvbjpuZXcgRGF0ZSgpLXRoaXMuZ2V0U3RhcnRUaW1l
KCksY3VycmVudEZyYW1lOnRoaXMuY3VycmVudEZyYW1lfTtPLnRvU3RyaW5nPWZ1
bmN0aW9uKCl7cmV0dXJuKCJkdXJhdGlvbjogIitPLmR1cmF0aW9uKyIsIGN1cnJl
bnRGcmFtZTogIitPLmN1cnJlbnRGcmFtZSk7fTt0aGlzLm9uVHdlZW4uZmlyZShP
KTt2YXIgTj10aGlzLnJ1bnRpbWVBdHRyaWJ1dGVzO2Zvcih2YXIgTSBpbiBOKXt0
aGlzLnNldEF0dHJpYnV0ZShNLHRoaXMuZG9NZXRob2QoTSxOW01dLnN0YXJ0LE5b
TV0uZW5kKSxOW01dLnVuaXQpO31IKz0xO307dmFyIEc9ZnVuY3Rpb24oKXt2YXIg
TT0obmV3IERhdGUoKS1GKS8xMDAwO3ZhciBOPXtkdXJhdGlvbjpNLGZyYW1lczpI
LGZwczpIL019O04udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4oImR1cmF0aW9u
OiAiK04uZHVyYXRpb24rIiwgZnJhbWVzOiAiK04uZnJhbWVzKyIsIGZwczogIitO
LmZwcyk7fTtEPWZhbHNlO0g9MDt0aGlzLm9uQ29tcGxldGUuZmlyZShOKTt9O3Ro
aXMuX29uU3RhcnQ9bmV3IEIuQ3VzdG9tRXZlbnQoIl9zdGFydCIsdGhpcyx0cnVl
KTt0aGlzLm9uU3RhcnQ9bmV3IEIuQ3VzdG9tRXZlbnQoInN0YXJ0Iix0aGlzKTt0
aGlzLm9uVHdlZW49bmV3IEIuQ3VzdG9tRXZlbnQoInR3ZWVuIix0aGlzKTt0aGlz
Ll9vblR3ZWVuPW5ldyBCLkN1c3RvbUV2ZW50KCJfdHdlZW4iLHRoaXMsdHJ1ZSk7
dGhpcy5vbkNvbXBsZXRlPW5ldyBCLkN1c3RvbUV2ZW50KCJjb21wbGV0ZSIsdGhp
cyk7dGhpcy5fb25Db21wbGV0ZT1uZXcgQi5DdXN0b21FdmVudCgiX2NvbXBsZXRl
Iix0aGlzLHRydWUpO3RoaXMuX29uU3RhcnQuc3Vic2NyaWJlKEwpO3RoaXMuX29u
VHdlZW4uc3Vic2NyaWJlKEspO3RoaXMuX29uQ29tcGxldGUuc3Vic2NyaWJlKEcp
O319O0IuQW5pbT1BO30pKCk7WUFIT08udXRpbC5BbmltTWdyPW5ldyBmdW5jdGlv
bigpe3ZhciBDPW51bGw7dmFyIEI9W107dmFyIEE9MDt0aGlzLmZwcz0xMDAwO3Ro
aXMuZGVsYXk9MTt0aGlzLnJlZ2lzdGVyRWxlbWVudD1mdW5jdGlvbihGKXtCW0Iu
bGVuZ3RoXT1GO0ErPTE7Ri5fb25TdGFydC5maXJlKCk7dGhpcy5zdGFydCgpO307
dGhpcy51blJlZ2lzdGVyPWZ1bmN0aW9uKEcsRil7Rj1GfHxFKEcpO2lmKCFHLmlz
QW5pbWF0ZWQoKXx8Rj09LTEpe3JldHVybiBmYWxzZTt9Ry5fb25Db21wbGV0ZS5m
aXJlKCk7Qi5zcGxpY2UoRiwxKTtBLT0xO2lmKEE8PTApe3RoaXMuc3RvcCgpO31y
ZXR1cm4gdHJ1ZTt9O3RoaXMuc3RhcnQ9ZnVuY3Rpb24oKXtpZihDPT09bnVsbCl7
Qz1zZXRJbnRlcnZhbCh0aGlzLnJ1bix0aGlzLmRlbGF5KTt9fTt0aGlzLnN0b3A9
ZnVuY3Rpb24oSCl7aWYoIUgpe2NsZWFySW50ZXJ2YWwoQyk7Zm9yKHZhciBHPTAs
Rj1CLmxlbmd0aDtHPEY7KytHKXt0aGlzLnVuUmVnaXN0ZXIoQlswXSwwKTt9Qj1b
XTtDPW51bGw7QT0wO31lbHNle3RoaXMudW5SZWdpc3RlcihIKTt9fTt0aGlzLnJ1
bj1mdW5jdGlvbigpe2Zvcih2YXIgSD0wLEY9Qi5sZW5ndGg7SDxGOysrSCl7dmFy
IEc9QltIXTtpZighR3x8IUcuaXNBbmltYXRlZCgpKXtjb250aW51ZTt9aWYoRy5j
dXJyZW50RnJhbWU8Ry50b3RhbEZyYW1lc3x8Ry50b3RhbEZyYW1lcz09PW51bGwp
e0cuY3VycmVudEZyYW1lKz0xO2lmKEcudXNlU2Vjb25kcyl7RChHKTt9Ry5fb25U
d2Vlbi5maXJlKCk7fWVsc2V7WUFIT08udXRpbC5BbmltTWdyLnN0b3AoRyxIKTt9
fX07dmFyIEU9ZnVuY3Rpb24oSCl7Zm9yKHZhciBHPTAsRj1CLmxlbmd0aDtHPEY7
KytHKXtpZihCW0ddPT1IKXtyZXR1cm4gRzt9fXJldHVybiAtMTt9O3ZhciBEPWZ1
bmN0aW9uKEcpe3ZhciBKPUcudG90YWxGcmFtZXM7dmFyIEk9Ry5jdXJyZW50RnJh
bWU7dmFyIEg9KEcuY3VycmVudEZyYW1lKkcuZHVyYXRpb24qMTAwMC9HLnRvdGFs
RnJhbWVzKTt2YXIgRj0obmV3IERhdGUoKS1HLmdldFN0YXJ0VGltZSgpKTt2YXIg
Sz0wO2lmKEY8Ry5kdXJhdGlvbioxMDAwKXtLPU1hdGgucm91bmQoKEYvSC0xKSpH
LmN1cnJlbnRGcmFtZSk7fWVsc2V7Sz1KLShJKzEpO31pZihLPjAmJmlzRmluaXRl
KEspKXtpZihHLmN1cnJlbnRGcmFtZStLPj1KKXtLPUotKEkrMSk7fUcuY3VycmVu
dEZyYW1lKz1LO319O307WUFIT08udXRpbC5CZXppZXI9bmV3IGZ1bmN0aW9uKCl7
dGhpcy5nZXRQb3NpdGlvbj1mdW5jdGlvbihFLEQpe3ZhciBGPUUubGVuZ3RoO3Zh
ciBDPVtdO2Zvcih2YXIgQj0wO0I8RjsrK0Ipe0NbQl09W0VbQl1bMF0sRVtCXVsx
XV07fWZvcih2YXIgQT0xO0E8RjsrK0Epe2ZvcihCPTA7QjxGLUE7KytCKXtDW0Jd
WzBdPSgxLUQpKkNbQl1bMF0rRCpDW3BhcnNlSW50KEIrMSwxMCldWzBdO0NbQl1b
MV09KDEtRCkqQ1tCXVsxXStEKkNbcGFyc2VJbnQoQisxLDEwKV1bMV07fX1yZXR1
cm5bQ1swXVswXSxDWzBdWzFdXTt9O307KGZ1bmN0aW9uKCl7dmFyIEE9ZnVuY3Rp
b24oRixFLEcsSCl7QS5zdXBlcmNsYXNzLmNvbnN0cnVjdG9yLmNhbGwodGhpcyxG
LEUsRyxIKTt9O0EuTkFNRT0iQ29sb3JBbmltIjtBLkRFRkFVTFRfQkdDT0xPUj0i
I2ZmZiI7dmFyIEM9WUFIT08udXRpbDtZQUhPTy5leHRlbmQoQSxDLkFuaW0pO3Zh
ciBEPUEuc3VwZXJjbGFzczt2YXIgQj1BLnByb3RvdHlwZTtCLnBhdHRlcm5zLmNv
bG9yPS9jb2xvciQvaTtCLnBhdHRlcm5zLnJnYj0vXnJnYlwoKFswLTldKylccyos
XHMqKFswLTldKylccyosXHMqKFswLTldKylcKSQvaTtCLnBhdHRlcm5zLmhleD0v
XiM/KFswLTlBLUZdezJ9KShbMC05QS1GXXsyfSkoWzAtOUEtRl17Mn0pJC9pO0Iu
cGF0dGVybnMuaGV4Mz0vXiM/KFswLTlBLUZdezF9KShbMC05QS1GXXsxfSkoWzAt
OUEtRl17MX0pJC9pO0IucGF0dGVybnMudHJhbnNwYXJlbnQ9L150cmFuc3BhcmVu
dHxyZ2JhXCgwLCAwLCAwLCAwXCkkLztCLnBhcnNlQ29sb3I9ZnVuY3Rpb24oRSl7
aWYoRS5sZW5ndGg9PTMpe3JldHVybiBFO312YXIgRj10aGlzLnBhdHRlcm5zLmhl
eC5leGVjKEUpO2lmKEYmJkYubGVuZ3RoPT00KXtyZXR1cm5bcGFyc2VJbnQoRlsx
XSwxNikscGFyc2VJbnQoRlsyXSwxNikscGFyc2VJbnQoRlszXSwxNildO31GPXRo
aXMucGF0dGVybnMucmdiLmV4ZWMoRSk7aWYoRiYmRi5sZW5ndGg9PTQpe3JldHVy
bltwYXJzZUludChGWzFdLDEwKSxwYXJzZUludChGWzJdLDEwKSxwYXJzZUludChG
WzNdLDEwKV07fUY9dGhpcy5wYXR0ZXJucy5oZXgzLmV4ZWMoRSk7aWYoRiYmRi5s
ZW5ndGg9PTQpe3JldHVybltwYXJzZUludChGWzFdK0ZbMV0sMTYpLHBhcnNlSW50
KEZbMl0rRlsyXSwxNikscGFyc2VJbnQoRlszXStGWzNdLDE2KV07Cn1yZXR1cm4g
bnVsbDt9O0IuZ2V0QXR0cmlidXRlPWZ1bmN0aW9uKEUpe3ZhciBHPXRoaXMuZ2V0
RWwoKTtpZih0aGlzLnBhdHRlcm5zLmNvbG9yLnRlc3QoRSkpe3ZhciBJPVlBSE9P
LnV0aWwuRG9tLmdldFN0eWxlKEcsRSk7dmFyIEg9dGhpcztpZih0aGlzLnBhdHRl
cm5zLnRyYW5zcGFyZW50LnRlc3QoSSkpe3ZhciBGPVlBSE9PLnV0aWwuRG9tLmdl
dEFuY2VzdG9yQnkoRyxmdW5jdGlvbihKKXtyZXR1cm4gIUgucGF0dGVybnMudHJh
bnNwYXJlbnQudGVzdChJKTt9KTtpZihGKXtJPUMuRG9tLmdldFN0eWxlKEYsRSk7
fWVsc2V7ST1BLkRFRkFVTFRfQkdDT0xPUjt9fX1lbHNle0k9RC5nZXRBdHRyaWJ1
dGUuY2FsbCh0aGlzLEUpO31yZXR1cm4gSTt9O0IuZG9NZXRob2Q9ZnVuY3Rpb24o
RixKLEcpe3ZhciBJO2lmKHRoaXMucGF0dGVybnMuY29sb3IudGVzdChGKSl7ST1b
XTtmb3IodmFyIEg9MCxFPUoubGVuZ3RoO0g8RTsrK0gpe0lbSF09RC5kb01ldGhv
ZC5jYWxsKHRoaXMsRixKW0hdLEdbSF0pO31JPSJyZ2IoIitNYXRoLmZsb29yKElb
MF0pKyIsIitNYXRoLmZsb29yKElbMV0pKyIsIitNYXRoLmZsb29yKElbMl0pKyIp
Ijt9ZWxzZXtJPUQuZG9NZXRob2QuY2FsbCh0aGlzLEYsSixHKTt9cmV0dXJuIEk7
fTtCLnNldFJ1bnRpbWVBdHRyaWJ1dGU9ZnVuY3Rpb24oRil7RC5zZXRSdW50aW1l
QXR0cmlidXRlLmNhbGwodGhpcyxGKTtpZih0aGlzLnBhdHRlcm5zLmNvbG9yLnRl
c3QoRikpe3ZhciBIPXRoaXMuYXR0cmlidXRlczt2YXIgSj10aGlzLnBhcnNlQ29s
b3IodGhpcy5ydW50aW1lQXR0cmlidXRlc1tGXS5zdGFydCk7dmFyIEc9dGhpcy5w
YXJzZUNvbG9yKHRoaXMucnVudGltZUF0dHJpYnV0ZXNbRl0uZW5kKTtpZih0eXBl
b2YgSFtGXVsidG8iXT09PSJ1bmRlZmluZWQiJiZ0eXBlb2YgSFtGXVsiYnkiXSE9
PSJ1bmRlZmluZWQiKXtHPXRoaXMucGFyc2VDb2xvcihIW0ZdLmJ5KTtmb3IodmFy
IEk9MCxFPUoubGVuZ3RoO0k8RTsrK0kpe0dbSV09SltJXStHW0ldO319dGhpcy5y
dW50aW1lQXR0cmlidXRlc1tGXS5zdGFydD1KO3RoaXMucnVudGltZUF0dHJpYnV0
ZXNbRl0uZW5kPUc7fX07Qy5Db2xvckFuaW09QTt9KSgpOwovKgpURVJNUyBPRiBV
U0UgLSBFQVNJTkcgRVFVQVRJT05TCk9wZW4gc291cmNlIHVuZGVyIHRoZSBCU0Qg
TGljZW5zZS4KQ29weXJpZ2h0IDIwMDEgUm9iZXJ0IFBlbm5lciBBbGwgcmlnaHRz
IHJlc2VydmVkLgoKUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgbWV0OgoKICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCiAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGF1dGhvciBub3Ig
dGhlIG5hbWVzIG9mIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiovCllBSE9PLnV0aWwuRWFz
aW5nPXtlYXNlTm9uZTpmdW5jdGlvbihCLEEsRCxDKXtyZXR1cm4gRCpCL0MrQTt9
LGVhc2VJbjpmdW5jdGlvbihCLEEsRCxDKXtyZXR1cm4gRCooQi89QykqQitBO30s
ZWFzZU91dDpmdW5jdGlvbihCLEEsRCxDKXtyZXR1cm4gLUQqKEIvPUMpKihCLTIp
K0E7fSxlYXNlQm90aDpmdW5jdGlvbihCLEEsRCxDKXtpZigoQi89Qy8yKTwxKXty
ZXR1cm4gRC8yKkIqQitBO31yZXR1cm4gLUQvMiooKC0tQikqKEItMiktMSkrQTt9
LGVhc2VJblN0cm9uZzpmdW5jdGlvbihCLEEsRCxDKXtyZXR1cm4gRCooQi89Qykq
QipCKkIrQTt9LGVhc2VPdXRTdHJvbmc6ZnVuY3Rpb24oQixBLEQsQyl7cmV0dXJu
IC1EKigoQj1CL0MtMSkqQipCKkItMSkrQTt9LGVhc2VCb3RoU3Ryb25nOmZ1bmN0
aW9uKEIsQSxELEMpe2lmKChCLz1DLzIpPDEpe3JldHVybiBELzIqQipCKkIqQitB
O31yZXR1cm4gLUQvMiooKEItPTIpKkIqQipCLTIpK0E7fSxlbGFzdGljSW46ZnVu
Y3Rpb24oQyxBLEcsRixCLEUpe2lmKEM9PTApe3JldHVybiBBO31pZigoQy89Rik9
PTEpe3JldHVybiBBK0c7fWlmKCFFKXtFPUYqMC4zO31pZighQnx8QjxNYXRoLmFi
cyhHKSl7Qj1HO3ZhciBEPUUvNDt9ZWxzZXt2YXIgRD1FLygyKk1hdGguUEkpKk1h
dGguYXNpbihHL0IpO31yZXR1cm4gLShCKk1hdGgucG93KDIsMTAqKEMtPTEpKSpN
YXRoLnNpbigoQypGLUQpKigyKk1hdGguUEkpL0UpKStBO30sZWxhc3RpY091dDpm
dW5jdGlvbihDLEEsRyxGLEIsRSl7aWYoQz09MCl7cmV0dXJuIEE7fWlmKChDLz1G
KT09MSl7cmV0dXJuIEErRzt9aWYoIUUpe0U9RiowLjM7fWlmKCFCfHxCPE1hdGgu
YWJzKEcpKXtCPUc7dmFyIEQ9RS80O31lbHNle3ZhciBEPUUvKDIqTWF0aC5QSSkq
TWF0aC5hc2luKEcvQik7fXJldHVybiBCKk1hdGgucG93KDIsLTEwKkMpKk1hdGgu
c2luKChDKkYtRCkqKDIqTWF0aC5QSSkvRSkrRytBO30sZWxhc3RpY0JvdGg6ZnVu
Y3Rpb24oQyxBLEcsRixCLEUpe2lmKEM9PTApe3JldHVybiBBO31pZigoQy89Ri8y
KT09Mil7cmV0dXJuIEErRzt9aWYoIUUpe0U9RiooMC4zKjEuNSk7fWlmKCFCfHxC
PE1hdGguYWJzKEcpKXtCPUc7dmFyIEQ9RS80O31lbHNle3ZhciBEPUUvKDIqTWF0
aC5QSSkqTWF0aC5hc2luKEcvQik7fWlmKEM8MSl7cmV0dXJuIC0wLjUqKEIqTWF0
aC5wb3coMiwxMCooQy09MSkpKk1hdGguc2luKChDKkYtRCkqKDIqTWF0aC5QSSkv
RSkpK0E7fXJldHVybiBCKk1hdGgucG93KDIsLTEwKihDLT0xKSkqTWF0aC5zaW4o
KEMqRi1EKSooMipNYXRoLlBJKS9FKSowLjUrRytBO30sYmFja0luOmZ1bmN0aW9u
KEIsQSxFLEQsQyl7aWYodHlwZW9mIEM9PSJ1bmRlZmluZWQiKXtDPTEuNzAxNTg7
fXJldHVybiBFKihCLz1EKSpCKigoQysxKSpCLUMpK0E7fSxiYWNrT3V0OmZ1bmN0
aW9uKEIsQSxFLEQsQyl7aWYodHlwZW9mIEM9PSJ1bmRlZmluZWQiKXtDPTEuNzAx
NTg7fXJldHVybiBFKigoQj1CL0QtMSkqQiooKEMrMSkqQitDKSsxKStBO30sYmFj
a0JvdGg6ZnVuY3Rpb24oQixBLEUsRCxDKXtpZih0eXBlb2YgQz09InVuZGVmaW5l
ZCIpe0M9MS43MDE1ODt9aWYoKEIvPUQvMik8MSl7cmV0dXJuIEUvMiooQipCKigo
KEMqPSgxLjUyNSkpKzEpKkItQykpK0E7fXJldHVybiBFLzIqKChCLT0yKSpCKigo
KEMqPSgxLjUyNSkpKzEpKkIrQykrMikrQTt9LGJvdW5jZUluOmZ1bmN0aW9uKEIs
QSxELEMpe3JldHVybiBELVlBSE9PLnV0aWwuRWFzaW5nLmJvdW5jZU91dChDLUIs
MCxELEMpK0E7fSxib3VuY2VPdXQ6ZnVuY3Rpb24oQixBLEQsQyl7aWYoKEIvPUMp
PCgxLzIuNzUpKXtyZXR1cm4gRCooNy41NjI1KkIqQikrQTt9ZWxzZXtpZihCPCgy
LzIuNzUpKXtyZXR1cm4gRCooNy41NjI1KihCLT0oMS41LzIuNzUpKSpCKzAuNzUp
K0E7fWVsc2V7aWYoQjwoMi41LzIuNzUpKXtyZXR1cm4gRCooNy41NjI1KihCLT0o
Mi4yNS8yLjc1KSkqQiswLjkzNzUpK0E7fX19cmV0dXJuIEQqKDcuNTYyNSooQi09
KDIuNjI1LzIuNzUpKSpCKzAuOTg0Mzc1KStBO30sYm91bmNlQm90aDpmdW5jdGlv
bihCLEEsRCxDKXtpZihCPEMvMil7cmV0dXJuIFlBSE9PLnV0aWwuRWFzaW5nLmJv
dW5jZUluKEIqMiwwLEQsQykqMC41K0E7fXJldHVybiBZQUhPTy51dGlsLkVhc2lu
Zy5ib3VuY2VPdXQoQioyLUMsMCxELEMpKjAuNStEKjAuNStBO319OyhmdW5jdGlv
bigpe3ZhciBBPWZ1bmN0aW9uKEgsRyxJLEope2lmKEgpe0Euc3VwZXJjbGFzcy5j
b25zdHJ1Y3Rvci5jYWxsKHRoaXMsSCxHLEksSik7fX07QS5OQU1FPSJNb3Rpb24i
O3ZhciBFPVlBSE9PLnV0aWw7WUFIT08uZXh0ZW5kKEEsRS5Db2xvckFuaW0pO3Zh
ciBGPUEuc3VwZXJjbGFzczt2YXIgQz1BLnByb3RvdHlwZTtDLnBhdHRlcm5zLnBv
aW50cz0vXnBvaW50cyQvaTtDLnNldEF0dHJpYnV0ZT1mdW5jdGlvbihHLEksSCl7
aWYodGhpcy5wYXR0ZXJucy5wb2ludHMudGVzdChHKSl7SD1IfHwicHgiO0Yuc2V0
QXR0cmlidXRlLmNhbGwodGhpcywibGVmdCIsSVswXSxIKTtGLnNldEF0dHJpYnV0
ZS5jYWxsKHRoaXMsInRvcCIsSVsxXSxIKTt9ZWxzZXtGLnNldEF0dHJpYnV0ZS5j
YWxsKHRoaXMsRyxJLEgpO319O0MuZ2V0QXR0cmlidXRlPWZ1bmN0aW9uKEcpe2lm
KHRoaXMucGF0dGVybnMucG9pbnRzLnRlc3QoRykpe3ZhciBIPVtGLmdldEF0dHJp
YnV0ZS5jYWxsKHRoaXMsImxlZnQiKSxGLmdldEF0dHJpYnV0ZS5jYWxsKHRoaXMs
InRvcCIpXTt9ZWxzZXtIPUYuZ2V0QXR0cmlidXRlLmNhbGwodGhpcyxHKTt9cmV0
dXJuIEg7fTtDLmRvTWV0aG9kPWZ1bmN0aW9uKEcsSyxIKXt2YXIgSj1udWxsO2lm
KHRoaXMucGF0dGVybnMucG9pbnRzLnRlc3QoRykpe3ZhciBJPXRoaXMubWV0aG9k
KHRoaXMuY3VycmVudEZyYW1lLDAsMTAwLHRoaXMudG90YWxGcmFtZXMpLzEwMDtK
PUUuQmV6aWVyLmdldFBvc2l0aW9uKHRoaXMucnVudGltZUF0dHJpYnV0ZXNbR10s
SSk7fWVsc2V7Sj1GLmRvTWV0aG9kLmNhbGwodGhpcyxHLEssSCk7fXJldHVybiBK
O307Qy5zZXRSdW50aW1lQXR0cmlidXRlPWZ1bmN0aW9uKFApe2lmKHRoaXMucGF0
dGVybnMucG9pbnRzLnRlc3QoUCkpe3ZhciBIPXRoaXMuZ2V0RWwoKTt2YXIgSj10
aGlzLmF0dHJpYnV0ZXM7dmFyIEc7dmFyIEw9SlsicG9pbnRzIl1bImNvbnRyb2wi
XXx8W107dmFyIEk7dmFyIE0sTztpZihMLmxlbmd0aD4wJiYhKExbMF0gaW5zdGFu
Y2VvZiBBcnJheSkpe0w9W0xdO31lbHNle3ZhciBLPVtdO2ZvcihNPTAsTz1MLmxl
bmd0aDtNPE87KytNKXtLW01dPUxbTV07fUw9Szt9aWYoRS5Eb20uZ2V0U3R5bGUo
SCwicG9zaXRpb24iKT09InN0YXRpYyIpe0UuRG9tLnNldFN0eWxlKEgsInBvc2l0
aW9uIiwicmVsYXRpdmUiKTt9aWYoRChKWyJwb2ludHMiXVsiZnJvbSJdKSl7RS5E
b20uc2V0WFkoSCxKWyJwb2ludHMiXVsiZnJvbSJdKTsKfWVsc2V7RS5Eb20uc2V0
WFkoSCxFLkRvbS5nZXRYWShIKSk7fUc9dGhpcy5nZXRBdHRyaWJ1dGUoInBvaW50
cyIpO2lmKEQoSlsicG9pbnRzIl1bInRvIl0pKXtJPUIuY2FsbCh0aGlzLEpbInBv
aW50cyJdWyJ0byJdLEcpO3ZhciBOPUUuRG9tLmdldFhZKHRoaXMuZ2V0RWwoKSk7
Zm9yKE09MCxPPUwubGVuZ3RoO008TzsrK00pe0xbTV09Qi5jYWxsKHRoaXMsTFtN
XSxHKTt9fWVsc2V7aWYoRChKWyJwb2ludHMiXVsiYnkiXSkpe0k9W0dbMF0rSlsi
cG9pbnRzIl1bImJ5Il1bMF0sR1sxXStKWyJwb2ludHMiXVsiYnkiXVsxXV07Zm9y
KE09MCxPPUwubGVuZ3RoO008TzsrK00pe0xbTV09W0dbMF0rTFtNXVswXSxHWzFd
K0xbTV1bMV1dO319fXRoaXMucnVudGltZUF0dHJpYnV0ZXNbUF09W0ddO2lmKEwu
bGVuZ3RoPjApe3RoaXMucnVudGltZUF0dHJpYnV0ZXNbUF09dGhpcy5ydW50aW1l
QXR0cmlidXRlc1tQXS5jb25jYXQoTCk7fXRoaXMucnVudGltZUF0dHJpYnV0ZXNb
UF1bdGhpcy5ydW50aW1lQXR0cmlidXRlc1tQXS5sZW5ndGhdPUk7fWVsc2V7Ri5z
ZXRSdW50aW1lQXR0cmlidXRlLmNhbGwodGhpcyxQKTt9fTt2YXIgQj1mdW5jdGlv
bihHLEkpe3ZhciBIPUUuRG9tLmdldFhZKHRoaXMuZ2V0RWwoKSk7Rz1bR1swXS1I
WzBdK0lbMF0sR1sxXS1IWzFdK0lbMV1dO3JldHVybiBHO307dmFyIEQ9ZnVuY3Rp
b24oRyl7cmV0dXJuKHR5cGVvZiBHIT09InVuZGVmaW5lZCIpO307RS5Nb3Rpb249
QTt9KSgpOyhmdW5jdGlvbigpe3ZhciBEPWZ1bmN0aW9uKEYsRSxHLEgpe2lmKEYp
e0Quc3VwZXJjbGFzcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMsRixFLEcsSCk7fX07
RC5OQU1FPSJTY3JvbGwiO3ZhciBCPVlBSE9PLnV0aWw7WUFIT08uZXh0ZW5kKEQs
Qi5Db2xvckFuaW0pO3ZhciBDPUQuc3VwZXJjbGFzczt2YXIgQT1ELnByb3RvdHlw
ZTtBLmRvTWV0aG9kPWZ1bmN0aW9uKEUsSCxGKXt2YXIgRz1udWxsO2lmKEU9PSJz
Y3JvbGwiKXtHPVt0aGlzLm1ldGhvZCh0aGlzLmN1cnJlbnRGcmFtZSxIWzBdLEZb
MF0tSFswXSx0aGlzLnRvdGFsRnJhbWVzKSx0aGlzLm1ldGhvZCh0aGlzLmN1cnJl
bnRGcmFtZSxIWzFdLEZbMV0tSFsxXSx0aGlzLnRvdGFsRnJhbWVzKV07fWVsc2V7
Rz1DLmRvTWV0aG9kLmNhbGwodGhpcyxFLEgsRik7fXJldHVybiBHO307QS5nZXRB
dHRyaWJ1dGU9ZnVuY3Rpb24oRSl7dmFyIEc9bnVsbDt2YXIgRj10aGlzLmdldEVs
KCk7aWYoRT09InNjcm9sbCIpe0c9W0Yuc2Nyb2xsTGVmdCxGLnNjcm9sbFRvcF07
fWVsc2V7Rz1DLmdldEF0dHJpYnV0ZS5jYWxsKHRoaXMsRSk7fXJldHVybiBHO307
QS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oRSxILEcpe3ZhciBGPXRoaXMuZ2V0RWwo
KTtpZihFPT0ic2Nyb2xsIil7Ri5zY3JvbGxMZWZ0PUhbMF07Ri5zY3JvbGxUb3A9
SFsxXTt9ZWxzZXtDLnNldEF0dHJpYnV0ZS5jYWxsKHRoaXMsRSxILEcpO319O0Iu
U2Nyb2xsPUQ7fSkoKTtZQUhPTy5yZWdpc3RlcigiYW5pbWF0aW9uIixZQUhPTy51
dGlsLkFuaW0se3ZlcnNpb246IjIuNy4wIixidWlsZDoiMTc5OSJ9KTsvKgpDb3B5
cmlnaHQgKGMpIDIwMDksIFlhaG9vISBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CkNvZGUgbGljZW5zZWQgdW5kZXIgdGhlIEJTRCBMaWNlbnNlOgpodHRwOi8vZGV2
ZWxvcGVyLnlhaG9vLm5ldC95dWkvbGljZW5zZS50eHQKdmVyc2lvbjogMi43LjAK
Ki8KKGZ1bmN0aW9uKCl7WUFIT08udXRpbC5Db25maWc9ZnVuY3Rpb24oRCl7aWYo
RCl7dGhpcy5pbml0KEQpO319O3ZhciBCPVlBSE9PLmxhbmcsQz1ZQUhPTy51dGls
LkN1c3RvbUV2ZW50LEE9WUFIT08udXRpbC5Db25maWc7QS5DT05GSUdfQ0hBTkdF
RF9FVkVOVD0iY29uZmlnQ2hhbmdlZCI7QS5CT09MRUFOX1RZUEU9ImJvb2xlYW4i
O0EucHJvdG90eXBlPXtvd25lcjpudWxsLHF1ZXVlSW5Qcm9ncmVzczpmYWxzZSxj
b25maWc6bnVsbCxpbml0aWFsQ29uZmlnOm51bGwsZXZlbnRRdWV1ZTpudWxsLGNv
bmZpZ0NoYW5nZWRFdmVudDpudWxsLGluaXQ6ZnVuY3Rpb24oRCl7dGhpcy5vd25l
cj1EO3RoaXMuY29uZmlnQ2hhbmdlZEV2ZW50PXRoaXMuY3JlYXRlRXZlbnQoQS5D
T05GSUdfQ0hBTkdFRF9FVkVOVCk7dGhpcy5jb25maWdDaGFuZ2VkRXZlbnQuc2ln
bmF0dXJlPUMuTElTVDt0aGlzLnF1ZXVlSW5Qcm9ncmVzcz1mYWxzZTt0aGlzLmNv
bmZpZz17fTt0aGlzLmluaXRpYWxDb25maWc9e307dGhpcy5ldmVudFF1ZXVlPVtd
O30sY2hlY2tCb29sZWFuOmZ1bmN0aW9uKEQpe3JldHVybih0eXBlb2YgRD09QS5C
T09MRUFOX1RZUEUpO30sY2hlY2tOdW1iZXI6ZnVuY3Rpb24oRCl7cmV0dXJuKCFp
c05hTihEKSk7fSxmaXJlRXZlbnQ6ZnVuY3Rpb24oRCxGKXt2YXIgRT10aGlzLmNv
bmZpZ1tEXTtpZihFJiZFLmV2ZW50KXtFLmV2ZW50LmZpcmUoRik7fX0sYWRkUHJv
cGVydHk6ZnVuY3Rpb24oRSxEKXtFPUUudG9Mb3dlckNhc2UoKTt0aGlzLmNvbmZp
Z1tFXT1EO0QuZXZlbnQ9dGhpcy5jcmVhdGVFdmVudChFLHtzY29wZTp0aGlzLm93
bmVyfSk7RC5ldmVudC5zaWduYXR1cmU9Qy5MSVNUO0Qua2V5PUU7aWYoRC5oYW5k
bGVyKXtELmV2ZW50LnN1YnNjcmliZShELmhhbmRsZXIsdGhpcy5vd25lcik7fXRo
aXMuc2V0UHJvcGVydHkoRSxELnZhbHVlLHRydWUpO2lmKCFELnN1cHByZXNzRXZl
bnQpe3RoaXMucXVldWVQcm9wZXJ0eShFLEQudmFsdWUpO319LGdldENvbmZpZzpm
dW5jdGlvbigpe3ZhciBEPXt9LEY9dGhpcy5jb25maWcsRyxFO2ZvcihHIGluIEYp
e2lmKEIuaGFzT3duUHJvcGVydHkoRixHKSl7RT1GW0ddO2lmKEUmJkUuZXZlbnQp
e0RbR109RS52YWx1ZTt9fX1yZXR1cm4gRDt9LGdldFByb3BlcnR5OmZ1bmN0aW9u
KEQpe3ZhciBFPXRoaXMuY29uZmlnW0QudG9Mb3dlckNhc2UoKV07aWYoRSYmRS5l
dmVudCl7cmV0dXJuIEUudmFsdWU7fWVsc2V7cmV0dXJuIHVuZGVmaW5lZDt9fSxy
ZXNldFByb3BlcnR5OmZ1bmN0aW9uKEQpe0Q9RC50b0xvd2VyQ2FzZSgpO3ZhciBF
PXRoaXMuY29uZmlnW0RdO2lmKEUmJkUuZXZlbnQpe2lmKHRoaXMuaW5pdGlhbENv
bmZpZ1tEXSYmIUIuaXNVbmRlZmluZWQodGhpcy5pbml0aWFsQ29uZmlnW0RdKSl7
dGhpcy5zZXRQcm9wZXJ0eShELHRoaXMuaW5pdGlhbENvbmZpZ1tEXSk7cmV0dXJu
IHRydWU7fX1lbHNle3JldHVybiBmYWxzZTt9fSxzZXRQcm9wZXJ0eTpmdW5jdGlv
bihFLEcsRCl7dmFyIEY7RT1FLnRvTG93ZXJDYXNlKCk7aWYodGhpcy5xdWV1ZUlu
UHJvZ3Jlc3MmJiFEKXt0aGlzLnF1ZXVlUHJvcGVydHkoRSxHKTtyZXR1cm4gdHJ1
ZTt9ZWxzZXtGPXRoaXMuY29uZmlnW0VdO2lmKEYmJkYuZXZlbnQpe2lmKEYudmFs
aWRhdG9yJiYhRi52YWxpZGF0b3IoRykpe3JldHVybiBmYWxzZTt9ZWxzZXtGLnZh
bHVlPUc7aWYoIUQpe3RoaXMuZmlyZUV2ZW50KEUsRyk7dGhpcy5jb25maWdDaGFu
Z2VkRXZlbnQuZmlyZShbRSxHXSk7fXJldHVybiB0cnVlO319ZWxzZXtyZXR1cm4g
ZmFsc2U7fX19LHF1ZXVlUHJvcGVydHk6ZnVuY3Rpb24oUyxQKXtTPVMudG9Mb3dl
ckNhc2UoKTt2YXIgUj10aGlzLmNvbmZpZ1tTXSxLPWZhbHNlLEosRyxILEksTyxR
LEYsTSxOLEQsTCxULEU7aWYoUiYmUi5ldmVudCl7aWYoIUIuaXNVbmRlZmluZWQo
UCkmJlIudmFsaWRhdG9yJiYhUi52YWxpZGF0b3IoUCkpe3JldHVybiBmYWxzZTt9
ZWxzZXtpZighQi5pc1VuZGVmaW5lZChQKSl7Ui52YWx1ZT1QO31lbHNle1A9Ui52
YWx1ZTt9Sz1mYWxzZTtKPXRoaXMuZXZlbnRRdWV1ZS5sZW5ndGg7Zm9yKEw9MDtM
PEo7TCsrKXtHPXRoaXMuZXZlbnRRdWV1ZVtMXTtpZihHKXtIPUdbMF07ST1HWzFd
O2lmKEg9PVMpe3RoaXMuZXZlbnRRdWV1ZVtMXT1udWxsO3RoaXMuZXZlbnRRdWV1
ZS5wdXNoKFtTLCghQi5pc1VuZGVmaW5lZChQKT9QOkkpXSk7Sz10cnVlO2JyZWFr
O319fWlmKCFLJiYhQi5pc1VuZGVmaW5lZChQKSl7dGhpcy5ldmVudFF1ZXVlLnB1
c2goW1MsUF0pO319aWYoUi5zdXBlcmNlZGVzKXtPPVIuc3VwZXJjZWRlcy5sZW5n
dGg7Zm9yKFQ9MDtUPE87VCsrKXtRPVIuc3VwZXJjZWRlc1tUXTtGPXRoaXMuZXZl
bnRRdWV1ZS5sZW5ndGg7Zm9yKEU9MDtFPEY7RSsrKXtNPXRoaXMuZXZlbnRRdWV1
ZVtFXTtpZihNKXtOPU1bMF07RD1NWzFdO2lmKE49PVEudG9Mb3dlckNhc2UoKSl7
dGhpcy5ldmVudFF1ZXVlLnB1c2goW04sRF0pO3RoaXMuZXZlbnRRdWV1ZVtFXT1u
dWxsO2JyZWFrO319fX19cmV0dXJuIHRydWU7fWVsc2V7cmV0dXJuIGZhbHNlO319
LHJlZmlyZUV2ZW50OmZ1bmN0aW9uKEQpe0Q9RC50b0xvd2VyQ2FzZSgpO3ZhciBF
PXRoaXMuY29uZmlnW0RdO2lmKEUmJkUuZXZlbnQmJiFCLmlzVW5kZWZpbmVkKEUu
dmFsdWUpKXtpZih0aGlzLnF1ZXVlSW5Qcm9ncmVzcyl7dGhpcy5xdWV1ZVByb3Bl
cnR5KEQpO31lbHNle3RoaXMuZmlyZUV2ZW50KEQsRS52YWx1ZSk7fX19LGFwcGx5
Q29uZmlnOmZ1bmN0aW9uKEQsRyl7dmFyIEYsRTtpZihHKXtFPXt9O2ZvcihGIGlu
IEQpe2lmKEIuaGFzT3duUHJvcGVydHkoRCxGKSl7RVtGLnRvTG93ZXJDYXNlKCld
PURbRl07fX10aGlzLmluaXRpYWxDb25maWc9RTt9Zm9yKEYgaW4gRCl7aWYoQi5o
YXNPd25Qcm9wZXJ0eShELEYpKXt0aGlzLnF1ZXVlUHJvcGVydHkoRixEW0ZdKTt9
fX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciBEO2ZvcihEIGluIHRoaXMuY29uZmln
KXtpZihCLmhhc093blByb3BlcnR5KHRoaXMuY29uZmlnLEQpKXt0aGlzLnJlZmly
ZUV2ZW50KEQpO319fSxmaXJlUXVldWU6ZnVuY3Rpb24oKXt2YXIgRSxILEQsRyxG
O3RoaXMucXVldWVJblByb2dyZXNzPXRydWU7Zm9yKEU9MDtFPHRoaXMuZXZlbnRR
dWV1ZS5sZW5ndGg7RSsrKXtIPXRoaXMuZXZlbnRRdWV1ZVtFXTtpZihIKXtEPUhb
MF07Rz1IWzFdO0Y9dGhpcy5jb25maWdbRF07Ri52YWx1ZT1HO3RoaXMuZXZlbnRR
dWV1ZVtFXT1udWxsO3RoaXMuZmlyZUV2ZW50KEQsRyk7fX10aGlzLnF1ZXVlSW5Q
cm9ncmVzcz1mYWxzZTt0aGlzLmV2ZW50UXVldWU9W107fSxzdWJzY3JpYmVUb0Nv
bmZpZ0V2ZW50OmZ1bmN0aW9uKEUsRixILEQpe3ZhciBHPXRoaXMuY29uZmlnW0Uu
dG9Mb3dlckNhc2UoKV07aWYoRyYmRy5ldmVudCl7aWYoIUEuYWxyZWFkeVN1YnNj
cmliZWQoRy5ldmVudCxGLEgpKXtHLmV2ZW50LnN1YnNjcmliZShGLEgsRCk7fXJl
dHVybiB0cnVlO31lbHNle3JldHVybiBmYWxzZTt9fSx1bnN1YnNjcmliZUZyb21D
b25maWdFdmVudDpmdW5jdGlvbihELEUsRyl7dmFyIEY9dGhpcy5jb25maWdbRC50
b0xvd2VyQ2FzZSgpXTtpZihGJiZGLmV2ZW50KXtyZXR1cm4gRi5ldmVudC51bnN1
YnNjcmliZShFLEcpO31lbHNle3JldHVybiBmYWxzZTt9fSx0b1N0cmluZzpmdW5j
dGlvbigpe3ZhciBEPSJDb25maWciO2lmKHRoaXMub3duZXIpe0QrPSIgWyIrdGhp
cy5vd25lci50b1N0cmluZygpKyJdIjt9cmV0dXJuIEQ7fSxvdXRwdXRFdmVudFF1
ZXVlOmZ1bmN0aW9uKCl7dmFyIEQ9IiIsRyxFLEY9dGhpcy5ldmVudFF1ZXVlLmxl
bmd0aDtmb3IoRT0wO0U8RjtFKyspe0c9dGhpcy5ldmVudFF1ZXVlW0VdO2lmKEcp
e0QrPUdbMF0rIj0iK0dbMV0rIiwgIjt9fXJldHVybiBEO30sZGVzdHJveTpmdW5j
dGlvbigpe3ZhciBFPXRoaXMuY29uZmlnLEQsRjtmb3IoRCBpbiBFKXtpZihCLmhh
c093blByb3BlcnR5KEUsRCkpe0Y9RVtEXTtGLmV2ZW50LnVuc3Vic2NyaWJlQWxs
KCk7Ri5ldmVudD1udWxsO319dGhpcy5jb25maWdDaGFuZ2VkRXZlbnQudW5zdWJz
Y3JpYmVBbGwoKTt0aGlzLmNvbmZpZ0NoYW5nZWRFdmVudD1udWxsO3RoaXMub3du
ZXI9bnVsbDt0aGlzLmNvbmZpZz1udWxsO3RoaXMuaW5pdGlhbENvbmZpZz1udWxs
O3RoaXMuZXZlbnRRdWV1ZT1udWxsO319O0EuYWxyZWFkeVN1YnNjcmliZWQ9ZnVu
Y3Rpb24oRSxILEkpe3ZhciBGPUUuc3Vic2NyaWJlcnMubGVuZ3RoLEQsRztpZihG
PjApe0c9Ri0xO2Rve0Q9RS5zdWJzY3JpYmVyc1tHXTtpZihEJiZELm9iaj09SSYm
RC5mbj09SCl7cmV0dXJuIHRydWU7fX13aGlsZShHLS0pO31yZXR1cm4gZmFsc2U7
fTtZQUhPTy5sYW5nLmF1Z21lbnRQcm90byhBLFlBSE9PLnV0aWwuRXZlbnRQcm92
aWRlcik7fSgpKTsoZnVuY3Rpb24oKXtZQUhPTy53aWRnZXQuTW9kdWxlPWZ1bmN0
aW9uKFIsUSl7aWYoUil7dGhpcy5pbml0KFIsUSk7fWVsc2V7fX07dmFyIEY9WUFI
T08udXRpbC5Eb20sRD1ZQUhPTy51dGlsLkNvbmZpZyxOPVlBSE9PLnV0aWwuRXZl
bnQsTT1ZQUhPTy51dGlsLkN1c3RvbUV2ZW50LEc9WUFIT08ud2lkZ2V0Lk1vZHVs
ZSxJPVlBSE9PLmVudi51YSxILFAsTyxFLEE9eyJCRUZPUkVfSU5JVCI6ImJlZm9y
ZUluaXQiLCJJTklUIjoiaW5pdCIsIkFQUEVORCI6ImFwcGVuZCIsIkJFRk9SRV9S
RU5ERVIiOiJiZWZvcmVSZW5kZXIiLCJSRU5ERVIiOiJyZW5kZXIiLCJDSEFOR0Vf
SEVBREVSIjoiY2hhbmdlSGVhZGVyIiwiQ0hBTkdFX0JPRFkiOiJjaGFuZ2VCb2R5
IiwiQ0hBTkdFX0ZPT1RFUiI6ImNoYW5nZUZvb3RlciIsIkNIQU5HRV9DT05URU5U
IjoiY2hhbmdlQ29udGVudCIsIkRFU1RPUlkiOiJkZXN0cm95IiwiQkVGT1JFX1NI
T1ciOiJiZWZvcmVTaG93IiwiU0hPVyI6InNob3ciLCJCRUZPUkVfSElERSI6ImJl
Zm9yZUhpZGUiLCJISURFIjoiaGlkZSJ9LEo9eyJWSVNJQkxFIjp7a2V5OiJ2aXNp
YmxlIix2YWx1ZTp0cnVlLHZhbGlkYXRvcjpZQUhPTy5sYW5nLmlzQm9vbGVhbn0s
IkVGRkVDVCI6e2tleToiZWZmZWN0IixzdXBwcmVzc0V2ZW50OnRydWUsc3VwZXJj
ZWRlczpbInZpc2libGUiXX0sIk1PTklUT1JfUkVTSVpFIjp7a2V5OiJtb25pdG9y
cmVzaXplIix2YWx1ZTp0cnVlfSwiQVBQRU5EX1RPX0RPQ1VNRU5UX0JPRFkiOntr
ZXk6ImFwcGVuZHRvZG9jdW1lbnRib2R5Iix2YWx1ZTpmYWxzZX19O0cuSU1HX1JP
T1Q9bnVsbDtHLklNR19ST09UX1NTTD1udWxsO0cuQ1NTX01PRFVMRT0ieXVpLW1v
ZHVsZSI7Ry5DU1NfSEVBREVSPSJoZCI7Ry5DU1NfQk9EWT0iYmQiO0cuQ1NTX0ZP
T1RFUj0iZnQiO0cuUkVTSVpFX01PTklUT1JfU0VDVVJFX1VSTD0iamF2YXNjcmlw
dDpmYWxzZTsiO0cuUkVTSVpFX01PTklUT1JfQlVGRkVSPTE7Ry50ZXh0UmVzaXpl
RXZlbnQ9bmV3IE0oInRleHRSZXNpemUiKTtHLmZvcmNlRG9jdW1lbnRSZWRyYXc9
ZnVuY3Rpb24oKXt2YXIgUT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYoUSl7
US5jbGFzc05hbWUrPSIgIjtRLmNsYXNzTmFtZT1ZQUhPTy5sYW5nLnRyaW0oUS5j
bGFzc05hbWUpO319O2Z1bmN0aW9uIEwoKXtpZighSCl7SD1kb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTtILmlubmVySFRNTD0oJzxkaXYgY2xhc3M9IicrRy5D
U1NfSEVBREVSKyciPjwvZGl2PicrJzxkaXYgY2xhc3M9IicrRy5DU1NfQk9EWSsn
Ij48L2Rpdj48ZGl2IGNsYXNzPSInK0cuQ1NTX0ZPT1RFUisnIj48L2Rpdj4nKTtQ
PUguZmlyc3RDaGlsZDtPPVAubmV4dFNpYmxpbmc7RT1PLm5leHRTaWJsaW5nO31y
ZXR1cm4gSDt9ZnVuY3Rpb24gSygpe2lmKCFQKXtMKCk7fXJldHVybihQLmNsb25l
Tm9kZShmYWxzZSkpO31mdW5jdGlvbiBCKCl7aWYoIU8pe0woKTt9cmV0dXJuKE8u
Y2xvbmVOb2RlKGZhbHNlKSk7fWZ1bmN0aW9uIEMoKXtpZighRSl7TCgpO31yZXR1
cm4oRS5jbG9uZU5vZGUoZmFsc2UpKTt9Ry5wcm90b3R5cGU9e2NvbnN0cnVjdG9y
OkcsZWxlbWVudDpudWxsLGhlYWRlcjpudWxsLGJvZHk6bnVsbCxmb290ZXI6bnVs
bCxpZDpudWxsLGltYWdlUm9vdDpHLklNR19ST09ULGluaXRFdmVudHM6ZnVuY3Rp
b24oKXt2YXIgUT1NLkxJU1Q7CnRoaXMuYmVmb3JlSW5pdEV2ZW50PXRoaXMuY3Jl
YXRlRXZlbnQoQS5CRUZPUkVfSU5JVCk7dGhpcy5iZWZvcmVJbml0RXZlbnQuc2ln
bmF0dXJlPVE7dGhpcy5pbml0RXZlbnQ9dGhpcy5jcmVhdGVFdmVudChBLklOSVQp
O3RoaXMuaW5pdEV2ZW50LnNpZ25hdHVyZT1RO3RoaXMuYXBwZW5kRXZlbnQ9dGhp
cy5jcmVhdGVFdmVudChBLkFQUEVORCk7dGhpcy5hcHBlbmRFdmVudC5zaWduYXR1
cmU9UTt0aGlzLmJlZm9yZVJlbmRlckV2ZW50PXRoaXMuY3JlYXRlRXZlbnQoQS5C
RUZPUkVfUkVOREVSKTt0aGlzLmJlZm9yZVJlbmRlckV2ZW50LnNpZ25hdHVyZT1R
O3RoaXMucmVuZGVyRXZlbnQ9dGhpcy5jcmVhdGVFdmVudChBLlJFTkRFUik7dGhp
cy5yZW5kZXJFdmVudC5zaWduYXR1cmU9UTt0aGlzLmNoYW5nZUhlYWRlckV2ZW50
PXRoaXMuY3JlYXRlRXZlbnQoQS5DSEFOR0VfSEVBREVSKTt0aGlzLmNoYW5nZUhl
YWRlckV2ZW50LnNpZ25hdHVyZT1RO3RoaXMuY2hhbmdlQm9keUV2ZW50PXRoaXMu
Y3JlYXRlRXZlbnQoQS5DSEFOR0VfQk9EWSk7dGhpcy5jaGFuZ2VCb2R5RXZlbnQu
c2lnbmF0dXJlPVE7dGhpcy5jaGFuZ2VGb290ZXJFdmVudD10aGlzLmNyZWF0ZUV2
ZW50KEEuQ0hBTkdFX0ZPT1RFUik7dGhpcy5jaGFuZ2VGb290ZXJFdmVudC5zaWdu
YXR1cmU9UTt0aGlzLmNoYW5nZUNvbnRlbnRFdmVudD10aGlzLmNyZWF0ZUV2ZW50
KEEuQ0hBTkdFX0NPTlRFTlQpO3RoaXMuY2hhbmdlQ29udGVudEV2ZW50LnNpZ25h
dHVyZT1RO3RoaXMuZGVzdHJveUV2ZW50PXRoaXMuY3JlYXRlRXZlbnQoQS5ERVNU
T1JZKTt0aGlzLmRlc3Ryb3lFdmVudC5zaWduYXR1cmU9UTt0aGlzLmJlZm9yZVNo
b3dFdmVudD10aGlzLmNyZWF0ZUV2ZW50KEEuQkVGT1JFX1NIT1cpO3RoaXMuYmVm
b3JlU2hvd0V2ZW50LnNpZ25hdHVyZT1RO3RoaXMuc2hvd0V2ZW50PXRoaXMuY3Jl
YXRlRXZlbnQoQS5TSE9XKTt0aGlzLnNob3dFdmVudC5zaWduYXR1cmU9UTt0aGlz
LmJlZm9yZUhpZGVFdmVudD10aGlzLmNyZWF0ZUV2ZW50KEEuQkVGT1JFX0hJREUp
O3RoaXMuYmVmb3JlSGlkZUV2ZW50LnNpZ25hdHVyZT1RO3RoaXMuaGlkZUV2ZW50
PXRoaXMuY3JlYXRlRXZlbnQoQS5ISURFKTt0aGlzLmhpZGVFdmVudC5zaWduYXR1
cmU9UTt9LHBsYXRmb3JtOmZ1bmN0aW9uKCl7dmFyIFE9bmF2aWdhdG9yLnVzZXJB
Z2VudC50b0xvd2VyQ2FzZSgpO2lmKFEuaW5kZXhPZigid2luZG93cyIpIT0tMXx8
US5pbmRleE9mKCJ3aW4zMiIpIT0tMSl7cmV0dXJuIndpbmRvd3MiO31lbHNle2lm
KFEuaW5kZXhPZigibWFjaW50b3NoIikhPS0xKXtyZXR1cm4ibWFjIjt9ZWxzZXty
ZXR1cm4gZmFsc2U7fX19KCksYnJvd3NlcjpmdW5jdGlvbigpe3ZhciBRPW5hdmln
YXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtpZihRLmluZGV4T2YoIm9wZXJh
IikhPS0xKXtyZXR1cm4ib3BlcmEiO31lbHNle2lmKFEuaW5kZXhPZigibXNpZSA3
IikhPS0xKXtyZXR1cm4iaWU3Ijt9ZWxzZXtpZihRLmluZGV4T2YoIm1zaWUiKSE9
LTEpe3JldHVybiJpZSI7fWVsc2V7aWYoUS5pbmRleE9mKCJzYWZhcmkiKSE9LTEp
e3JldHVybiJzYWZhcmkiO31lbHNle2lmKFEuaW5kZXhPZigiZ2Vja28iKSE9LTEp
e3JldHVybiJnZWNrbyI7fWVsc2V7cmV0dXJuIGZhbHNlO319fX19fSgpLGlzU2Vj
dXJlOmZ1bmN0aW9uKCl7aWYod2luZG93LmxvY2F0aW9uLmhyZWYudG9Mb3dlckNh
c2UoKS5pbmRleE9mKCJodHRwcyIpPT09MCl7cmV0dXJuIHRydWU7fWVsc2V7cmV0
dXJuIGZhbHNlO319KCksaW5pdERlZmF1bHRDb25maWc6ZnVuY3Rpb24oKXt0aGlz
LmNmZy5hZGRQcm9wZXJ0eShKLlZJU0lCTEUua2V5LHtoYW5kbGVyOnRoaXMuY29u
ZmlnVmlzaWJsZSx2YWx1ZTpKLlZJU0lCTEUudmFsdWUsdmFsaWRhdG9yOkouVklT
SUJMRS52YWxpZGF0b3J9KTt0aGlzLmNmZy5hZGRQcm9wZXJ0eShKLkVGRkVDVC5r
ZXkse3N1cHByZXNzRXZlbnQ6Si5FRkZFQ1Quc3VwcHJlc3NFdmVudCxzdXBlcmNl
ZGVzOkouRUZGRUNULnN1cGVyY2VkZXN9KTt0aGlzLmNmZy5hZGRQcm9wZXJ0eShK
Lk1PTklUT1JfUkVTSVpFLmtleSx7aGFuZGxlcjp0aGlzLmNvbmZpZ01vbml0b3JS
ZXNpemUsdmFsdWU6Si5NT05JVE9SX1JFU0laRS52YWx1ZX0pO3RoaXMuY2ZnLmFk
ZFByb3BlcnR5KEouQVBQRU5EX1RPX0RPQ1VNRU5UX0JPRFkua2V5LHt2YWx1ZTpK
LkFQUEVORF9UT19ET0NVTUVOVF9CT0RZLnZhbHVlfSk7fSxpbml0OmZ1bmN0aW9u
KFYsVSl7dmFyIFMsVzt0aGlzLmluaXRFdmVudHMoKTt0aGlzLmJlZm9yZUluaXRF
dmVudC5maXJlKEcpO3RoaXMuY2ZnPW5ldyBEKHRoaXMpO2lmKHRoaXMuaXNTZWN1
cmUpe3RoaXMuaW1hZ2VSb290PUcuSU1HX1JPT1RfU1NMO31pZih0eXBlb2YgVj09
InN0cmluZyIpe1M9VjtWPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFYpO2lmKCFW
KXtWPShMKCkpLmNsb25lTm9kZShmYWxzZSk7Vi5pZD1TO319dGhpcy5pZD1GLmdl
bmVyYXRlSWQoVik7dGhpcy5lbGVtZW50PVY7Vz10aGlzLmVsZW1lbnQuZmlyc3RD
aGlsZDtpZihXKXt2YXIgUj1mYWxzZSxRPWZhbHNlLFQ9ZmFsc2U7ZG97aWYoMT09
Vy5ub2RlVHlwZSl7aWYoIVImJkYuaGFzQ2xhc3MoVyxHLkNTU19IRUFERVIpKXt0
aGlzLmhlYWRlcj1XO1I9dHJ1ZTt9ZWxzZXtpZighUSYmRi5oYXNDbGFzcyhXLEcu
Q1NTX0JPRFkpKXt0aGlzLmJvZHk9VztRPXRydWU7fWVsc2V7aWYoIVQmJkYuaGFz
Q2xhc3MoVyxHLkNTU19GT09URVIpKXt0aGlzLmZvb3Rlcj1XO1Q9dHJ1ZTt9fX19
fXdoaWxlKChXPVcubmV4dFNpYmxpbmcpKTt9dGhpcy5pbml0RGVmYXVsdENvbmZp
ZygpO0YuYWRkQ2xhc3ModGhpcy5lbGVtZW50LEcuQ1NTX01PRFVMRSk7aWYoVSl7
dGhpcy5jZmcuYXBwbHlDb25maWcoVSx0cnVlKTt9aWYoIUQuYWxyZWFkeVN1YnNj
cmliZWQodGhpcy5yZW5kZXJFdmVudCx0aGlzLmNmZy5maXJlUXVldWUsdGhpcy5j
ZmcpKXt0aGlzLnJlbmRlckV2ZW50LnN1YnNjcmliZSh0aGlzLmNmZy5maXJlUXVl
dWUsdGhpcy5jZmcsdHJ1ZSk7fXRoaXMuaW5pdEV2ZW50LmZpcmUoRyk7fSxpbml0
UmVzaXplTW9uaXRvcjpmdW5jdGlvbigpe3ZhciBSPShJLmdlY2tvJiZ0aGlzLnBs
YXRmb3JtPT0id2luZG93cyIpO2lmKFIpe3ZhciBRPXRoaXM7c2V0VGltZW91dChm
dW5jdGlvbigpe1EuX2luaXRSZXNpemVNb25pdG9yKCk7fSwwKTt9ZWxzZXt0aGlz
Ll9pbml0UmVzaXplTW9uaXRvcigpO319LF9pbml0UmVzaXplTW9uaXRvcjpmdW5j
dGlvbigpe3ZhciBRLFMsVTtmdW5jdGlvbiBXKCl7Ry50ZXh0UmVzaXplRXZlbnQu
ZmlyZSgpO31pZighSS5vcGVyYSl7Uz1GLmdldCgiX3l1aVJlc2l6ZU1vbml0b3Ii
KTt2YXIgVj10aGlzLl9zdXBwb3J0c0NXUmVzaXplKCk7aWYoIVMpe1M9ZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7aWYodGhpcy5pc1NlY3VyZSYmRy5S
RVNJWkVfTU9OSVRPUl9TRUNVUkVfVVJMJiZJLmllKXtTLnNyYz1HLlJFU0laRV9N
T05JVE9SX1NFQ1VSRV9VUkw7fWlmKCFWKXtVPVsiPGh0bWw+PGhlYWQ+PHNjcmlw
dCAiLCd0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPicsIndpbmRvdy5vbnJlc2l6ZT1m
dW5jdGlvbigpe3dpbmRvdy5wYXJlbnQuIiwiWUFIT08ud2lkZ2V0Lk1vZHVsZS50
ZXh0UmVzaXplRXZlbnQuIiwiZmlyZSgpO307PCIsIi9zY3JpcHQ+PC9oZWFkPiIs
Ijxib2R5PjwvYm9keT48L2h0bWw+Il0uam9pbigiIik7Uy5zcmM9ImRhdGE6dGV4
dC9odG1sO2NoYXJzZXQ9dXRmLTgsIitlbmNvZGVVUklDb21wb25lbnQoVSk7fVMu
aWQ9Il95dWlSZXNpemVNb25pdG9yIjtTLnRpdGxlPSJUZXh0IFJlc2l6ZSBNb25p
dG9yIjtTLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7Uy5zdHlsZS52aXNpYmls
aXR5PSJoaWRkZW4iO3ZhciBSPWRvY3VtZW50LmJvZHksVD1SLmZpcnN0Q2hpbGQ7
aWYoVCl7Ui5pbnNlcnRCZWZvcmUoUyxUKTt9ZWxzZXtSLmFwcGVuZENoaWxkKFMp
O31TLnN0eWxlLndpZHRoPSIyZW0iO1Muc3R5bGUuaGVpZ2h0PSIyZW0iO1Muc3R5
bGUudG9wPSgtMSooUy5vZmZzZXRIZWlnaHQrRy5SRVNJWkVfTU9OSVRPUl9CVUZG
RVIpKSsicHgiO1Muc3R5bGUubGVmdD0iMCI7Uy5zdHlsZS5ib3JkZXJXaWR0aD0i
MCI7Uy5zdHlsZS52aXNpYmlsaXR5PSJ2aXNpYmxlIjtpZihJLndlYmtpdCl7UT1T
LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7US5vcGVuKCk7US5jbG9zZSgpO319aWYo
UyYmUy5jb250ZW50V2luZG93KXtHLnRleHRSZXNpemVFdmVudC5zdWJzY3JpYmUo
dGhpcy5vbkRvbVJlc2l6ZSx0aGlzLHRydWUpO2lmKCFHLnRleHRSZXNpemVJbml0
aWFsaXplZCl7aWYoVil7aWYoIU4ub24oUy5jb250ZW50V2luZG93LCJyZXNpemUi
LFcpKXtOLm9uKFMsInJlc2l6ZSIsVyk7fX1HLnRleHRSZXNpemVJbml0aWFsaXpl
ZD10cnVlO310aGlzLnJlc2l6ZU1vbml0b3I9Uzt9fX0sX3N1cHBvcnRzQ1dSZXNp
emU6ZnVuY3Rpb24oKXt2YXIgUT10cnVlO2lmKEkuZ2Vja28mJkkuZ2Vja288PTEu
OCl7UT1mYWxzZTt9cmV0dXJuIFE7fSxvbkRvbVJlc2l6ZTpmdW5jdGlvbihTLFIp
e3ZhciBRPS0xKih0aGlzLnJlc2l6ZU1vbml0b3Iub2Zmc2V0SGVpZ2h0K0cuUkVT
SVpFX01PTklUT1JfQlVGRkVSKTt0aGlzLnJlc2l6ZU1vbml0b3Iuc3R5bGUudG9w
PVErInB4Ijt0aGlzLnJlc2l6ZU1vbml0b3Iuc3R5bGUubGVmdD0iMCI7fSxzZXRI
ZWFkZXI6ZnVuY3Rpb24oUil7dmFyIFE9dGhpcy5oZWFkZXJ8fCh0aGlzLmhlYWRl
cj1LKCkpO2lmKFIubm9kZU5hbWUpe1EuaW5uZXJIVE1MPSIiO1EuYXBwZW5kQ2hp
bGQoUik7fWVsc2V7US5pbm5lckhUTUw9Ujt9dGhpcy5jaGFuZ2VIZWFkZXJFdmVu
dC5maXJlKFIpO3RoaXMuY2hhbmdlQ29udGVudEV2ZW50LmZpcmUoKTt9LGFwcGVu
ZFRvSGVhZGVyOmZ1bmN0aW9uKFIpe3ZhciBRPXRoaXMuaGVhZGVyfHwodGhpcy5o
ZWFkZXI9SygpKTtRLmFwcGVuZENoaWxkKFIpO3RoaXMuY2hhbmdlSGVhZGVyRXZl
bnQuZmlyZShSKTt0aGlzLmNoYW5nZUNvbnRlbnRFdmVudC5maXJlKCk7fSxzZXRC
b2R5OmZ1bmN0aW9uKFIpe3ZhciBRPXRoaXMuYm9keXx8KHRoaXMuYm9keT1CKCkp
O2lmKFIubm9kZU5hbWUpe1EuaW5uZXJIVE1MPSIiO1EuYXBwZW5kQ2hpbGQoUik7
fWVsc2V7US5pbm5lckhUTUw9Ujt9dGhpcy5jaGFuZ2VCb2R5RXZlbnQuZmlyZShS
KTt0aGlzLmNoYW5nZUNvbnRlbnRFdmVudC5maXJlKCk7fSxhcHBlbmRUb0JvZHk6
ZnVuY3Rpb24oUil7dmFyIFE9dGhpcy5ib2R5fHwodGhpcy5ib2R5PUIoKSk7US5h
cHBlbmRDaGlsZChSKTt0aGlzLmNoYW5nZUJvZHlFdmVudC5maXJlKFIpO3RoaXMu
Y2hhbmdlQ29udGVudEV2ZW50LmZpcmUoKTt9LHNldEZvb3RlcjpmdW5jdGlvbihS
KXt2YXIgUT10aGlzLmZvb3Rlcnx8KHRoaXMuZm9vdGVyPUMoKSk7aWYoUi5ub2Rl
TmFtZSl7US5pbm5lckhUTUw9IiI7US5hcHBlbmRDaGlsZChSKTt9ZWxzZXtRLmlu
bmVySFRNTD1SO310aGlzLmNoYW5nZUZvb3RlckV2ZW50LmZpcmUoUik7dGhpcy5j
aGFuZ2VDb250ZW50RXZlbnQuZmlyZSgpO30sYXBwZW5kVG9Gb290ZXI6ZnVuY3Rp
b24oUil7dmFyIFE9dGhpcy5mb290ZXJ8fCh0aGlzLmZvb3Rlcj1DKCkpO1EuYXBw
ZW5kQ2hpbGQoUik7dGhpcy5jaGFuZ2VGb290ZXJFdmVudC5maXJlKFIpO3RoaXMu
Y2hhbmdlQ29udGVudEV2ZW50LmZpcmUoKTt9LHJlbmRlcjpmdW5jdGlvbihTLFEp
e3ZhciBUPXRoaXMsVTtmdW5jdGlvbiBSKFYpe2lmKHR5cGVvZiBWPT0ic3RyaW5n
Iil7Vj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChWKTt9aWYoVil7VC5fYWRkVG9Q
YXJlbnQoVixULmVsZW1lbnQpO1QuYXBwZW5kRXZlbnQuZmlyZSgpO319dGhpcy5i
ZWZvcmVSZW5kZXJFdmVudC5maXJlKCk7aWYoIVEpe1E9dGhpcy5lbGVtZW50O31p
ZihTKXtSKFMpO31lbHNle2lmKCFGLmluRG9jdW1lbnQodGhpcy5lbGVtZW50KSl7
cmV0dXJuIGZhbHNlO319aWYodGhpcy5oZWFkZXImJiFGLmluRG9jdW1lbnQodGhp
cy5oZWFkZXIpKXtVPVEuZmlyc3RDaGlsZDsKaWYoVSl7US5pbnNlcnRCZWZvcmUo
dGhpcy5oZWFkZXIsVSk7fWVsc2V7US5hcHBlbmRDaGlsZCh0aGlzLmhlYWRlcik7
fX1pZih0aGlzLmJvZHkmJiFGLmluRG9jdW1lbnQodGhpcy5ib2R5KSl7aWYodGhp
cy5mb290ZXImJkYuaXNBbmNlc3Rvcih0aGlzLm1vZHVsZUVsZW1lbnQsdGhpcy5m
b290ZXIpKXtRLmluc2VydEJlZm9yZSh0aGlzLmJvZHksdGhpcy5mb290ZXIpO31l
bHNle1EuYXBwZW5kQ2hpbGQodGhpcy5ib2R5KTt9fWlmKHRoaXMuZm9vdGVyJiYh
Ri5pbkRvY3VtZW50KHRoaXMuZm9vdGVyKSl7US5hcHBlbmRDaGlsZCh0aGlzLmZv
b3Rlcik7fXRoaXMucmVuZGVyRXZlbnQuZmlyZSgpO3JldHVybiB0cnVlO30sZGVz
dHJveTpmdW5jdGlvbigpe3ZhciBRO2lmKHRoaXMuZWxlbWVudCl7Ti5wdXJnZUVs
ZW1lbnQodGhpcy5lbGVtZW50LHRydWUpO1E9dGhpcy5lbGVtZW50LnBhcmVudE5v
ZGU7fWlmKFEpe1EucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTt9dGhpcy5lbGVt
ZW50PW51bGw7dGhpcy5oZWFkZXI9bnVsbDt0aGlzLmJvZHk9bnVsbDt0aGlzLmZv
b3Rlcj1udWxsO0cudGV4dFJlc2l6ZUV2ZW50LnVuc3Vic2NyaWJlKHRoaXMub25E
b21SZXNpemUsdGhpcyk7dGhpcy5jZmcuZGVzdHJveSgpO3RoaXMuY2ZnPW51bGw7
dGhpcy5kZXN0cm95RXZlbnQuZmlyZSgpO30sc2hvdzpmdW5jdGlvbigpe3RoaXMu
Y2ZnLnNldFByb3BlcnR5KCJ2aXNpYmxlIix0cnVlKTt9LGhpZGU6ZnVuY3Rpb24o
KXt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgidmlzaWJsZSIsZmFsc2UpO30sY29uZmln
VmlzaWJsZTpmdW5jdGlvbihSLFEsUyl7dmFyIFQ9UVswXTtpZihUKXt0aGlzLmJl
Zm9yZVNob3dFdmVudC5maXJlKCk7Ri5zZXRTdHlsZSh0aGlzLmVsZW1lbnQsImRp
c3BsYXkiLCJibG9jayIpO3RoaXMuc2hvd0V2ZW50LmZpcmUoKTt9ZWxzZXt0aGlz
LmJlZm9yZUhpZGVFdmVudC5maXJlKCk7Ri5zZXRTdHlsZSh0aGlzLmVsZW1lbnQs
ImRpc3BsYXkiLCJub25lIik7dGhpcy5oaWRlRXZlbnQuZmlyZSgpO319LGNvbmZp
Z01vbml0b3JSZXNpemU6ZnVuY3Rpb24oUyxSLFQpe3ZhciBRPVJbMF07aWYoUSl7
dGhpcy5pbml0UmVzaXplTW9uaXRvcigpO31lbHNle0cudGV4dFJlc2l6ZUV2ZW50
LnVuc3Vic2NyaWJlKHRoaXMub25Eb21SZXNpemUsdGhpcyx0cnVlKTt0aGlzLnJl
c2l6ZU1vbml0b3I9bnVsbDt9fSxfYWRkVG9QYXJlbnQ6ZnVuY3Rpb24oUSxSKXtp
ZighdGhpcy5jZmcuZ2V0UHJvcGVydHkoImFwcGVuZHRvZG9jdW1lbnRib2R5Iikm
JlE9PT1kb2N1bWVudC5ib2R5JiZRLmZpcnN0Q2hpbGQpe1EuaW5zZXJ0QmVmb3Jl
KFIsUS5maXJzdENoaWxkKTt9ZWxzZXtRLmFwcGVuZENoaWxkKFIpO319LHRvU3Ry
aW5nOmZ1bmN0aW9uKCl7cmV0dXJuIk1vZHVsZSAiK3RoaXMuaWQ7fX07WUFIT08u
bGFuZy5hdWdtZW50UHJvdG8oRyxZQUhPTy51dGlsLkV2ZW50UHJvdmlkZXIpO30o
KSk7KGZ1bmN0aW9uKCl7WUFIT08ud2lkZ2V0Lk92ZXJsYXk9ZnVuY3Rpb24oUCxP
KXtZQUhPTy53aWRnZXQuT3ZlcmxheS5zdXBlcmNsYXNzLmNvbnN0cnVjdG9yLmNh
bGwodGhpcyxQLE8pO307dmFyIEk9WUFIT08ubGFuZyxNPVlBSE9PLnV0aWwuQ3Vz
dG9tRXZlbnQsRz1ZQUhPTy53aWRnZXQuTW9kdWxlLE49WUFIT08udXRpbC5FdmVu
dCxGPVlBSE9PLnV0aWwuRG9tLEQ9WUFIT08udXRpbC5Db25maWcsSz1ZQUhPTy5l
bnYudWEsQj1ZQUhPTy53aWRnZXQuT3ZlcmxheSxIPSJzdWJzY3JpYmUiLEU9InVu
c3Vic2NyaWJlIixDPSJjb250YWluZWQiLEosQT17IkJFRk9SRV9NT1ZFIjoiYmVm
b3JlTW92ZSIsIk1PVkUiOiJtb3ZlIn0sTD17IlgiOntrZXk6IngiLHZhbGlkYXRv
cjpJLmlzTnVtYmVyLHN1cHByZXNzRXZlbnQ6dHJ1ZSxzdXBlcmNlZGVzOlsiaWZy
YW1lIl19LCJZIjp7a2V5OiJ5Iix2YWxpZGF0b3I6SS5pc051bWJlcixzdXBwcmVz
c0V2ZW50OnRydWUsc3VwZXJjZWRlczpbImlmcmFtZSJdfSwiWFkiOntrZXk6Inh5
IixzdXBwcmVzc0V2ZW50OnRydWUsc3VwZXJjZWRlczpbImlmcmFtZSJdfSwiQ09O
VEVYVCI6e2tleToiY29udGV4dCIsc3VwcHJlc3NFdmVudDp0cnVlLHN1cGVyY2Vk
ZXM6WyJpZnJhbWUiXX0sIkZJWEVEX0NFTlRFUiI6e2tleToiZml4ZWRjZW50ZXIi
LHZhbHVlOmZhbHNlLHN1cGVyY2VkZXM6WyJpZnJhbWUiLCJ2aXNpYmxlIl19LCJX
SURUSCI6e2tleToid2lkdGgiLHN1cHByZXNzRXZlbnQ6dHJ1ZSxzdXBlcmNlZGVz
OlsiY29udGV4dCIsImZpeGVkY2VudGVyIiwiaWZyYW1lIl19LCJIRUlHSFQiOntr
ZXk6ImhlaWdodCIsc3VwcHJlc3NFdmVudDp0cnVlLHN1cGVyY2VkZXM6WyJjb250
ZXh0IiwiZml4ZWRjZW50ZXIiLCJpZnJhbWUiXX0sIkFVVE9fRklMTF9IRUlHSFQi
OntrZXk6ImF1dG9maWxsaGVpZ2h0IixzdXBlcmNlZGVzOlsiaGVpZ2h0Il0sdmFs
dWU6ImJvZHkifSwiWklOREVYIjp7a2V5OiJ6aW5kZXgiLHZhbHVlOm51bGx9LCJD
T05TVFJBSU5fVE9fVklFV1BPUlQiOntrZXk6ImNvbnN0cmFpbnRvdmlld3BvcnQi
LHZhbHVlOmZhbHNlLHZhbGlkYXRvcjpJLmlzQm9vbGVhbixzdXBlcmNlZGVzOlsi
aWZyYW1lIiwieCIsInkiLCJ4eSJdfSwiSUZSQU1FIjp7a2V5OiJpZnJhbWUiLHZh
bHVlOihLLmllPT02P3RydWU6ZmFsc2UpLHZhbGlkYXRvcjpJLmlzQm9vbGVhbixz
dXBlcmNlZGVzOlsiemluZGV4Il19LCJQUkVWRU5UX0NPTlRFWFRfT1ZFUkxBUCI6
e2tleToicHJldmVudGNvbnRleHRvdmVybGFwIix2YWx1ZTpmYWxzZSx2YWxpZGF0
b3I6SS5pc0Jvb2xlYW4sc3VwZXJjZWRlczpbImNvbnN0cmFpbnRvdmlld3BvcnQi
XX19O0IuSUZSQU1FX1NSQz0iamF2YXNjcmlwdDpmYWxzZTsiO0IuSUZSQU1FX09G
RlNFVD0zO0IuVklFV1BPUlRfT0ZGU0VUPTEwO0IuVE9QX0xFRlQ9InRsIjtCLlRP
UF9SSUdIVD0idHIiO0IuQk9UVE9NX0xFRlQ9ImJsIjtCLkJPVFRPTV9SSUdIVD0i
YnIiO0IuQ1NTX09WRVJMQVk9Inl1aS1vdmVybGF5IjtCLlNURF9NT0RfUkU9L15c
cyo/KGJvZHl8Zm9vdGVyfGhlYWRlcilccyo/JC9pO0Iud2luZG93U2Nyb2xsRXZl
bnQ9bmV3IE0oIndpbmRvd1Njcm9sbCIpO0Iud2luZG93UmVzaXplRXZlbnQ9bmV3
IE0oIndpbmRvd1Jlc2l6ZSIpO0Iud2luZG93U2Nyb2xsSGFuZGxlcj1mdW5jdGlv
bihQKXt2YXIgTz1OLmdldFRhcmdldChQKTtpZighT3x8Tz09PXdpbmRvd3x8Tz09
PXdpbmRvdy5kb2N1bWVudCl7aWYoSy5pZSl7aWYoIXdpbmRvdy5zY3JvbGxFbmQp
e3dpbmRvdy5zY3JvbGxFbmQ9LTE7fWNsZWFyVGltZW91dCh3aW5kb3cuc2Nyb2xs
RW5kKTt3aW5kb3cuc2Nyb2xsRW5kPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtCLndp
bmRvd1Njcm9sbEV2ZW50LmZpcmUoKTt9LDEpO31lbHNle0Iud2luZG93U2Nyb2xs
RXZlbnQuZmlyZSgpO319fTtCLndpbmRvd1Jlc2l6ZUhhbmRsZXI9ZnVuY3Rpb24o
Tyl7aWYoSy5pZSl7aWYoIXdpbmRvdy5yZXNpemVFbmQpe3dpbmRvdy5yZXNpemVF
bmQ9LTE7fWNsZWFyVGltZW91dCh3aW5kb3cucmVzaXplRW5kKTt3aW5kb3cucmVz
aXplRW5kPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtCLndpbmRvd1Jlc2l6ZUV2ZW50
LmZpcmUoKTt9LDEwMCk7fWVsc2V7Qi53aW5kb3dSZXNpemVFdmVudC5maXJlKCk7
fX07Qi5faW5pdGlhbGl6ZWQ9bnVsbDtpZihCLl9pbml0aWFsaXplZD09PW51bGwp
e04ub24od2luZG93LCJzY3JvbGwiLEIud2luZG93U2Nyb2xsSGFuZGxlcik7Ti5v
bih3aW5kb3csInJlc2l6ZSIsQi53aW5kb3dSZXNpemVIYW5kbGVyKTtCLl9pbml0
aWFsaXplZD10cnVlO31CLl9UUklHR0VSX01BUD17IndpbmRvd1Njcm9sbCI6Qi53
aW5kb3dTY3JvbGxFdmVudCwid2luZG93UmVzaXplIjpCLndpbmRvd1Jlc2l6ZUV2
ZW50LCJ0ZXh0UmVzaXplIjpHLnRleHRSZXNpemVFdmVudH07WUFIT08uZXh0ZW5k
KEIsRyx7Q09OVEVYVF9UUklHR0VSUzpbXSxpbml0OmZ1bmN0aW9uKFAsTyl7Qi5z
dXBlcmNsYXNzLmluaXQuY2FsbCh0aGlzLFApO3RoaXMuYmVmb3JlSW5pdEV2ZW50
LmZpcmUoQik7Ri5hZGRDbGFzcyh0aGlzLmVsZW1lbnQsQi5DU1NfT1ZFUkxBWSk7
aWYoTyl7dGhpcy5jZmcuYXBwbHlDb25maWcoTyx0cnVlKTt9aWYodGhpcy5wbGF0
Zm9ybT09Im1hYyImJksuZ2Vja28pe2lmKCFELmFscmVhZHlTdWJzY3JpYmVkKHRo
aXMuc2hvd0V2ZW50LHRoaXMuc2hvd01hY0dlY2tvU2Nyb2xsYmFycyx0aGlzKSl7
dGhpcy5zaG93RXZlbnQuc3Vic2NyaWJlKHRoaXMuc2hvd01hY0dlY2tvU2Nyb2xs
YmFycyx0aGlzLHRydWUpO31pZighRC5hbHJlYWR5U3Vic2NyaWJlZCh0aGlzLmhp
ZGVFdmVudCx0aGlzLmhpZGVNYWNHZWNrb1Njcm9sbGJhcnMsdGhpcykpe3RoaXMu
aGlkZUV2ZW50LnN1YnNjcmliZSh0aGlzLmhpZGVNYWNHZWNrb1Njcm9sbGJhcnMs
dGhpcyx0cnVlKTt9fXRoaXMuaW5pdEV2ZW50LmZpcmUoQik7fSxpbml0RXZlbnRz
OmZ1bmN0aW9uKCl7Qi5zdXBlcmNsYXNzLmluaXRFdmVudHMuY2FsbCh0aGlzKTt2
YXIgTz1NLkxJU1Q7dGhpcy5iZWZvcmVNb3ZlRXZlbnQ9dGhpcy5jcmVhdGVFdmVu
dChBLkJFRk9SRV9NT1ZFKTt0aGlzLmJlZm9yZU1vdmVFdmVudC5zaWduYXR1cmU9
Tzt0aGlzLm1vdmVFdmVudD10aGlzLmNyZWF0ZUV2ZW50KEEuTU9WRSk7dGhpcy5t
b3ZlRXZlbnQuc2lnbmF0dXJlPU87fSxpbml0RGVmYXVsdENvbmZpZzpmdW5jdGlv
bigpe0Iuc3VwZXJjbGFzcy5pbml0RGVmYXVsdENvbmZpZy5jYWxsKHRoaXMpO3Zh
ciBPPXRoaXMuY2ZnO08uYWRkUHJvcGVydHkoTC5YLmtleSx7aGFuZGxlcjp0aGlz
LmNvbmZpZ1gsdmFsaWRhdG9yOkwuWC52YWxpZGF0b3Isc3VwcHJlc3NFdmVudDpM
Llguc3VwcHJlc3NFdmVudCxzdXBlcmNlZGVzOkwuWC5zdXBlcmNlZGVzfSk7Ty5h
ZGRQcm9wZXJ0eShMLlkua2V5LHtoYW5kbGVyOnRoaXMuY29uZmlnWSx2YWxpZGF0
b3I6TC5ZLnZhbGlkYXRvcixzdXBwcmVzc0V2ZW50OkwuWS5zdXBwcmVzc0V2ZW50
LHN1cGVyY2VkZXM6TC5ZLnN1cGVyY2VkZXN9KTtPLmFkZFByb3BlcnR5KEwuWFku
a2V5LHtoYW5kbGVyOnRoaXMuY29uZmlnWFksc3VwcHJlc3NFdmVudDpMLlhZLnN1
cHByZXNzRXZlbnQsc3VwZXJjZWRlczpMLlhZLnN1cGVyY2VkZXN9KTtPLmFkZFBy
b3BlcnR5KEwuQ09OVEVYVC5rZXkse2hhbmRsZXI6dGhpcy5jb25maWdDb250ZXh0
LHN1cHByZXNzRXZlbnQ6TC5DT05URVhULnN1cHByZXNzRXZlbnQsc3VwZXJjZWRl
czpMLkNPTlRFWFQuc3VwZXJjZWRlc30pO08uYWRkUHJvcGVydHkoTC5GSVhFRF9D
RU5URVIua2V5LHtoYW5kbGVyOnRoaXMuY29uZmlnRml4ZWRDZW50ZXIsdmFsdWU6
TC5GSVhFRF9DRU5URVIudmFsdWUsdmFsaWRhdG9yOkwuRklYRURfQ0VOVEVSLnZh
bGlkYXRvcixzdXBlcmNlZGVzOkwuRklYRURfQ0VOVEVSLnN1cGVyY2VkZXN9KTtP
LmFkZFByb3BlcnR5KEwuV0lEVEgua2V5LHtoYW5kbGVyOnRoaXMuY29uZmlnV2lk
dGgsc3VwcHJlc3NFdmVudDpMLldJRFRILnN1cHByZXNzRXZlbnQsc3VwZXJjZWRl
czpMLldJRFRILnN1cGVyY2VkZXN9KTtPLmFkZFByb3BlcnR5KEwuSEVJR0hULmtl
eSx7aGFuZGxlcjp0aGlzLmNvbmZpZ0hlaWdodCxzdXBwcmVzc0V2ZW50OkwuSEVJ
R0hULnN1cHByZXNzRXZlbnQsc3VwZXJjZWRlczpMLkhFSUdIVC5zdXBlcmNlZGVz
fSk7Ty5hZGRQcm9wZXJ0eShMLkFVVE9fRklMTF9IRUlHSFQua2V5LHtoYW5kbGVy
OnRoaXMuY29uZmlnQXV0b0ZpbGxIZWlnaHQsdmFsdWU6TC5BVVRPX0ZJTExfSEVJ
R0hULnZhbHVlLHZhbGlkYXRvcjp0aGlzLl92YWxpZGF0ZUF1dG9GaWxsLHN1cGVy
Y2VkZXM6TC5BVVRPX0ZJTExfSEVJR0hULnN1cGVyY2VkZXN9KTtPLmFkZFByb3Bl
cnR5KEwuWklOREVYLmtleSx7aGFuZGxlcjp0aGlzLmNvbmZpZ3pJbmRleCx2YWx1
ZTpMLlpJTkRFWC52YWx1ZX0pO08uYWRkUHJvcGVydHkoTC5DT05TVFJBSU5fVE9f
VklFV1BPUlQua2V5LHtoYW5kbGVyOnRoaXMuY29uZmlnQ29uc3RyYWluVG9WaWV3
cG9ydCx2YWx1ZTpMLkNPTlNUUkFJTl9UT19WSUVXUE9SVC52YWx1ZSx2YWxpZGF0
b3I6TC5DT05TVFJBSU5fVE9fVklFV1BPUlQudmFsaWRhdG9yLHN1cGVyY2VkZXM6
TC5DT05TVFJBSU5fVE9fVklFV1BPUlQuc3VwZXJjZWRlc30pOwpPLmFkZFByb3Bl
cnR5KEwuSUZSQU1FLmtleSx7aGFuZGxlcjp0aGlzLmNvbmZpZ0lmcmFtZSx2YWx1
ZTpMLklGUkFNRS52YWx1ZSx2YWxpZGF0b3I6TC5JRlJBTUUudmFsaWRhdG9yLHN1
cGVyY2VkZXM6TC5JRlJBTUUuc3VwZXJjZWRlc30pO08uYWRkUHJvcGVydHkoTC5Q
UkVWRU5UX0NPTlRFWFRfT1ZFUkxBUC5rZXkse3ZhbHVlOkwuUFJFVkVOVF9DT05U
RVhUX09WRVJMQVAudmFsdWUsdmFsaWRhdG9yOkwuUFJFVkVOVF9DT05URVhUX09W
RVJMQVAudmFsaWRhdG9yLHN1cGVyY2VkZXM6TC5QUkVWRU5UX0NPTlRFWFRfT1ZF
UkxBUC5zdXBlcmNlZGVzfSk7fSxtb3ZlVG86ZnVuY3Rpb24oTyxQKXt0aGlzLmNm
Zy5zZXRQcm9wZXJ0eSgieHkiLFtPLFBdKTt9LGhpZGVNYWNHZWNrb1Njcm9sbGJh
cnM6ZnVuY3Rpb24oKXtGLnJlcGxhY2VDbGFzcyh0aGlzLmVsZW1lbnQsInNob3ct
c2Nyb2xsYmFycyIsImhpZGUtc2Nyb2xsYmFycyIpO30sc2hvd01hY0dlY2tvU2Ny
b2xsYmFyczpmdW5jdGlvbigpe0YucmVwbGFjZUNsYXNzKHRoaXMuZWxlbWVudCwi
aGlkZS1zY3JvbGxiYXJzIiwic2hvdy1zY3JvbGxiYXJzIik7fSxfc2V0RG9tVmlz
aWJpbGl0eTpmdW5jdGlvbihPKXtGLnNldFN0eWxlKHRoaXMuZWxlbWVudCwidmlz
aWJpbGl0eSIsKE8pPyJ2aXNpYmxlIjoiaGlkZGVuIik7aWYoTyl7Ri5yZW1vdmVD
bGFzcyh0aGlzLmVsZW1lbnQsInl1aS1vdmVybGF5LWhpZGRlbiIpO31lbHNle0Yu
YWRkQ2xhc3ModGhpcy5lbGVtZW50LCJ5dWktb3ZlcmxheS1oaWRkZW4iKTt9fSxj
b25maWdWaXNpYmxlOmZ1bmN0aW9uKFIsTyxYKXt2YXIgUT1PWzBdLFM9Ri5nZXRT
dHlsZSh0aGlzLmVsZW1lbnQsInZpc2liaWxpdHkiKSxZPXRoaXMuY2ZnLmdldFBy
b3BlcnR5KCJlZmZlY3QiKSxWPVtdLFU9KHRoaXMucGxhdGZvcm09PSJtYWMiJiZL
LmdlY2tvKSxnPUQuYWxyZWFkeVN1YnNjcmliZWQsVyxQLGYsYyxiLGEsZCxaLFQ7
aWYoUz09ImluaGVyaXQiKXtmPXRoaXMuZWxlbWVudC5wYXJlbnROb2RlO3doaWxl
KGYubm9kZVR5cGUhPTkmJmYubm9kZVR5cGUhPTExKXtTPUYuZ2V0U3R5bGUoZiwi
dmlzaWJpbGl0eSIpO2lmKFMhPSJpbmhlcml0Iil7YnJlYWs7fWY9Zi5wYXJlbnRO
b2RlO31pZihTPT0iaW5oZXJpdCIpe1M9InZpc2libGUiO319aWYoWSl7aWYoWSBp
bnN0YW5jZW9mIEFycmF5KXtaPVkubGVuZ3RoO2ZvcihjPTA7YzxaO2MrKyl7Vz1Z
W2NdO1ZbVi5sZW5ndGhdPVcuZWZmZWN0KHRoaXMsVy5kdXJhdGlvbik7fX1lbHNl
e1ZbVi5sZW5ndGhdPVkuZWZmZWN0KHRoaXMsWS5kdXJhdGlvbik7fX1pZihRKXtp
ZihVKXt0aGlzLnNob3dNYWNHZWNrb1Njcm9sbGJhcnMoKTt9aWYoWSl7aWYoUSl7
aWYoUyE9InZpc2libGUifHxTPT09IiIpe3RoaXMuYmVmb3JlU2hvd0V2ZW50LmZp
cmUoKTtUPVYubGVuZ3RoO2ZvcihiPTA7YjxUO2IrKyl7UD1WW2JdO2lmKGI9PT0w
JiYhZyhQLmFuaW1hdGVJbkNvbXBsZXRlRXZlbnQsdGhpcy5zaG93RXZlbnQuZmly
ZSx0aGlzLnNob3dFdmVudCkpe1AuYW5pbWF0ZUluQ29tcGxldGVFdmVudC5zdWJz
Y3JpYmUodGhpcy5zaG93RXZlbnQuZmlyZSx0aGlzLnNob3dFdmVudCx0cnVlKTt9
UC5hbmltYXRlSW4oKTt9fX19ZWxzZXtpZihTIT0idmlzaWJsZSJ8fFM9PT0iIil7
dGhpcy5iZWZvcmVTaG93RXZlbnQuZmlyZSgpO3RoaXMuX3NldERvbVZpc2liaWxp
dHkodHJ1ZSk7dGhpcy5jZmcucmVmaXJlRXZlbnQoImlmcmFtZSIpO3RoaXMuc2hv
d0V2ZW50LmZpcmUoKTt9ZWxzZXt0aGlzLl9zZXREb21WaXNpYmlsaXR5KHRydWUp
O319fWVsc2V7aWYoVSl7dGhpcy5oaWRlTWFjR2Vja29TY3JvbGxiYXJzKCk7fWlm
KFkpe2lmKFM9PSJ2aXNpYmxlIil7dGhpcy5iZWZvcmVIaWRlRXZlbnQuZmlyZSgp
O1Q9Vi5sZW5ndGg7Zm9yKGE9MDthPFQ7YSsrKXtkPVZbYV07aWYoYT09PTAmJiFn
KGQuYW5pbWF0ZU91dENvbXBsZXRlRXZlbnQsdGhpcy5oaWRlRXZlbnQuZmlyZSx0
aGlzLmhpZGVFdmVudCkpe2QuYW5pbWF0ZU91dENvbXBsZXRlRXZlbnQuc3Vic2Ny
aWJlKHRoaXMuaGlkZUV2ZW50LmZpcmUsdGhpcy5oaWRlRXZlbnQsdHJ1ZSk7fWQu
YW5pbWF0ZU91dCgpO319ZWxzZXtpZihTPT09IiIpe3RoaXMuX3NldERvbVZpc2li
aWxpdHkoZmFsc2UpO319fWVsc2V7aWYoUz09InZpc2libGUifHxTPT09IiIpe3Ro
aXMuYmVmb3JlSGlkZUV2ZW50LmZpcmUoKTt0aGlzLl9zZXREb21WaXNpYmlsaXR5
KGZhbHNlKTt0aGlzLmhpZGVFdmVudC5maXJlKCk7fWVsc2V7dGhpcy5fc2V0RG9t
VmlzaWJpbGl0eShmYWxzZSk7fX19fSxkb0NlbnRlck9uRE9NRXZlbnQ6ZnVuY3Rp
b24oKXt2YXIgTz10aGlzLmNmZyxQPU8uZ2V0UHJvcGVydHkoImZpeGVkY2VudGVy
Iik7aWYoTy5nZXRQcm9wZXJ0eSgidmlzaWJsZSIpKXtpZihQJiYoUCE9PUN8fHRo
aXMuZml0c0luVmlld3BvcnQoKSkpe3RoaXMuY2VudGVyKCk7fX19LGZpdHNJblZp
ZXdwb3J0OmZ1bmN0aW9uKCl7dmFyIFM9Qi5WSUVXUE9SVF9PRkZTRVQsUT10aGlz
LmVsZW1lbnQsVD1RLm9mZnNldFdpZHRoLFI9US5vZmZzZXRIZWlnaHQsTz1GLmdl
dFZpZXdwb3J0V2lkdGgoKSxQPUYuZ2V0Vmlld3BvcnRIZWlnaHQoKTtyZXR1cm4o
KFQrUzxPKSYmKFIrUzxQKSk7fSxjb25maWdGaXhlZENlbnRlcjpmdW5jdGlvbihT
LFEsVCl7dmFyIFU9UVswXSxQPUQuYWxyZWFkeVN1YnNjcmliZWQsUj1CLndpbmRv
d1Jlc2l6ZUV2ZW50LE89Qi53aW5kb3dTY3JvbGxFdmVudDtpZihVKXt0aGlzLmNl
bnRlcigpO2lmKCFQKHRoaXMuYmVmb3JlU2hvd0V2ZW50LHRoaXMuY2VudGVyKSl7
dGhpcy5iZWZvcmVTaG93RXZlbnQuc3Vic2NyaWJlKHRoaXMuY2VudGVyKTt9aWYo
IVAoUix0aGlzLmRvQ2VudGVyT25ET01FdmVudCx0aGlzKSl7Ui5zdWJzY3JpYmUo
dGhpcy5kb0NlbnRlck9uRE9NRXZlbnQsdGhpcyx0cnVlKTt9aWYoIVAoTyx0aGlz
LmRvQ2VudGVyT25ET01FdmVudCx0aGlzKSl7Ty5zdWJzY3JpYmUodGhpcy5kb0Nl
bnRlck9uRE9NRXZlbnQsdGhpcyx0cnVlKTt9fWVsc2V7dGhpcy5iZWZvcmVTaG93
RXZlbnQudW5zdWJzY3JpYmUodGhpcy5jZW50ZXIpO1IudW5zdWJzY3JpYmUodGhp
cy5kb0NlbnRlck9uRE9NRXZlbnQsdGhpcyk7Ty51bnN1YnNjcmliZSh0aGlzLmRv
Q2VudGVyT25ET01FdmVudCx0aGlzKTt9fSxjb25maWdIZWlnaHQ6ZnVuY3Rpb24o
UixQLFMpe3ZhciBPPVBbMF0sUT10aGlzLmVsZW1lbnQ7Ri5zZXRTdHlsZShRLCJo
ZWlnaHQiLE8pO3RoaXMuY2ZnLnJlZmlyZUV2ZW50KCJpZnJhbWUiKTt9LGNvbmZp
Z0F1dG9GaWxsSGVpZ2h0OmZ1bmN0aW9uKFQsUyxQKXt2YXIgVj1TWzBdLFE9dGhp
cy5jZmcsVT0iYXV0b2ZpbGxoZWlnaHQiLFc9ImhlaWdodCIsUj1RLmdldFByb3Bl
cnR5KFUpLE89dGhpcy5fYXV0b0ZpbGxPbkhlaWdodENoYW5nZTtRLnVuc3Vic2Ny
aWJlRnJvbUNvbmZpZ0V2ZW50KFcsTyk7Ry50ZXh0UmVzaXplRXZlbnQudW5zdWJz
Y3JpYmUoTyk7dGhpcy5jaGFuZ2VDb250ZW50RXZlbnQudW5zdWJzY3JpYmUoTyk7
aWYoUiYmViE9PVImJnRoaXNbUl0pe0Yuc2V0U3R5bGUodGhpc1tSXSxXLCIiKTt9
aWYoVil7Vj1JLnRyaW0oVi50b0xvd2VyQ2FzZSgpKTtRLnN1YnNjcmliZVRvQ29u
ZmlnRXZlbnQoVyxPLHRoaXNbVl0sdGhpcyk7Ry50ZXh0UmVzaXplRXZlbnQuc3Vi
c2NyaWJlKE8sdGhpc1tWXSx0aGlzKTt0aGlzLmNoYW5nZUNvbnRlbnRFdmVudC5z
dWJzY3JpYmUoTyx0aGlzW1ZdLHRoaXMpO1Euc2V0UHJvcGVydHkoVSxWLHRydWUp
O319LGNvbmZpZ1dpZHRoOmZ1bmN0aW9uKFIsTyxTKXt2YXIgUT1PWzBdLFA9dGhp
cy5lbGVtZW50O0Yuc2V0U3R5bGUoUCwid2lkdGgiLFEpO3RoaXMuY2ZnLnJlZmly
ZUV2ZW50KCJpZnJhbWUiKTt9LGNvbmZpZ3pJbmRleDpmdW5jdGlvbihRLE8sUil7
dmFyIFM9T1swXSxQPXRoaXMuZWxlbWVudDtpZighUyl7Uz1GLmdldFN0eWxlKFAs
InpJbmRleCIpO2lmKCFTfHxpc05hTihTKSl7Uz0wO319aWYodGhpcy5pZnJhbWV8
fHRoaXMuY2ZnLmdldFByb3BlcnR5KCJpZnJhbWUiKT09PXRydWUpe2lmKFM8PTAp
e1M9MTt9fUYuc2V0U3R5bGUoUCwiekluZGV4IixTKTt0aGlzLmNmZy5zZXRQcm9w
ZXJ0eSgiekluZGV4IixTLHRydWUpO2lmKHRoaXMuaWZyYW1lKXt0aGlzLnN0YWNr
SWZyYW1lKCk7fX0sY29uZmlnWFk6ZnVuY3Rpb24oUSxQLFIpe3ZhciBUPVBbMF0s
Tz1UWzBdLFM9VFsxXTt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgieCIsTyk7dGhpcy5j
Zmcuc2V0UHJvcGVydHkoInkiLFMpO3RoaXMuYmVmb3JlTW92ZUV2ZW50LmZpcmUo
W08sU10pO089dGhpcy5jZmcuZ2V0UHJvcGVydHkoIngiKTtTPXRoaXMuY2ZnLmdl
dFByb3BlcnR5KCJ5Iik7dGhpcy5jZmcucmVmaXJlRXZlbnQoImlmcmFtZSIpO3Ro
aXMubW92ZUV2ZW50LmZpcmUoW08sU10pO30sY29uZmlnWDpmdW5jdGlvbihRLFAs
Uil7dmFyIE89UFswXSxTPXRoaXMuY2ZnLmdldFByb3BlcnR5KCJ5Iik7dGhpcy5j
Zmcuc2V0UHJvcGVydHkoIngiLE8sdHJ1ZSk7dGhpcy5jZmcuc2V0UHJvcGVydHko
InkiLFMsdHJ1ZSk7dGhpcy5iZWZvcmVNb3ZlRXZlbnQuZmlyZShbTyxTXSk7Tz10
aGlzLmNmZy5nZXRQcm9wZXJ0eSgieCIpO1M9dGhpcy5jZmcuZ2V0UHJvcGVydHko
InkiKTtGLnNldFgodGhpcy5lbGVtZW50LE8sdHJ1ZSk7dGhpcy5jZmcuc2V0UHJv
cGVydHkoInh5IixbTyxTXSx0cnVlKTt0aGlzLmNmZy5yZWZpcmVFdmVudCgiaWZy
YW1lIik7dGhpcy5tb3ZlRXZlbnQuZmlyZShbTyxTXSk7fSxjb25maWdZOmZ1bmN0
aW9uKFEsUCxSKXt2YXIgTz10aGlzLmNmZy5nZXRQcm9wZXJ0eSgieCIpLFM9UFsw
XTt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgieCIsTyx0cnVlKTt0aGlzLmNmZy5zZXRQ
cm9wZXJ0eSgieSIsUyx0cnVlKTt0aGlzLmJlZm9yZU1vdmVFdmVudC5maXJlKFtP
LFNdKTtPPXRoaXMuY2ZnLmdldFByb3BlcnR5KCJ4Iik7Uz10aGlzLmNmZy5nZXRQ
cm9wZXJ0eSgieSIpO0Yuc2V0WSh0aGlzLmVsZW1lbnQsUyx0cnVlKTt0aGlzLmNm
Zy5zZXRQcm9wZXJ0eSgieHkiLFtPLFNdLHRydWUpO3RoaXMuY2ZnLnJlZmlyZUV2
ZW50KCJpZnJhbWUiKTt0aGlzLm1vdmVFdmVudC5maXJlKFtPLFNdKTt9LHNob3dJ
ZnJhbWU6ZnVuY3Rpb24oKXt2YXIgUD10aGlzLmlmcmFtZSxPO2lmKFApe089dGhp
cy5lbGVtZW50LnBhcmVudE5vZGU7aWYoTyE9UC5wYXJlbnROb2RlKXt0aGlzLl9h
ZGRUb1BhcmVudChPLFApO31QLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjt9fSxoaWRl
SWZyYW1lOmZ1bmN0aW9uKCl7aWYodGhpcy5pZnJhbWUpe3RoaXMuaWZyYW1lLnN0
eWxlLmRpc3BsYXk9Im5vbmUiO319LHN5bmNJZnJhbWU6ZnVuY3Rpb24oKXt2YXIg
Tz10aGlzLmlmcmFtZSxRPXRoaXMuZWxlbWVudCxTPUIuSUZSQU1FX09GRlNFVCxQ
PShTKjIpLFI7aWYoTyl7Ty5zdHlsZS53aWR0aD0oUS5vZmZzZXRXaWR0aCtQKyJw
eCIpO08uc3R5bGUuaGVpZ2h0PShRLm9mZnNldEhlaWdodCtQKyJweCIpO1I9dGhp
cy5jZmcuZ2V0UHJvcGVydHkoInh5Iik7aWYoIUkuaXNBcnJheShSKXx8KGlzTmFO
KFJbMF0pfHxpc05hTihSWzFdKSkpe3RoaXMuc3luY1Bvc2l0aW9uKCk7Uj10aGlz
LmNmZy5nZXRQcm9wZXJ0eSgieHkiKTt9Ri5zZXRYWShPLFsoUlswXS1TKSwoUlsx
XS1TKV0pO319LHN0YWNrSWZyYW1lOmZ1bmN0aW9uKCl7aWYodGhpcy5pZnJhbWUp
e3ZhciBPPUYuZ2V0U3R5bGUodGhpcy5lbGVtZW50LCJ6SW5kZXgiKTtpZighWUFI
T08ubGFuZy5pc1VuZGVmaW5lZChPKSYmIWlzTmFOKE8pKXtGLnNldFN0eWxlKHRo
aXMuaWZyYW1lLCJ6SW5kZXgiLChPLTEpKTt9fX0sY29uZmlnSWZyYW1lOmZ1bmN0
aW9uKFIsUSxTKXt2YXIgTz1RWzBdO2Z1bmN0aW9uIFQoKXt2YXIgVj10aGlzLmlm
cmFtZSxXPXRoaXMuZWxlbWVudCxYO2lmKCFWKXtpZighSil7Sj1kb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpZnJhbWUiKTtpZih0aGlzLmlzU2VjdXJlKXtKLnNyYz1C
LklGUkFNRV9TUkM7fWlmKEsuaWUpe0ouc3R5bGUuZmlsdGVyPSJhbHBoYShvcGFj
aXR5PTApIjsKSi5mcmFtZUJvcmRlcj0wO31lbHNle0ouc3R5bGUub3BhY2l0eT0i
MCI7fUouc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtKLnN0eWxlLmJvcmRlcj0i
bm9uZSI7Si5zdHlsZS5tYXJnaW49IjAiO0ouc3R5bGUucGFkZGluZz0iMCI7Si5z
dHlsZS5kaXNwbGF5PSJub25lIjtKLnRhYkluZGV4PS0xO31WPUouY2xvbmVOb2Rl
KGZhbHNlKTtYPVcucGFyZW50Tm9kZTt2YXIgVT1YfHxkb2N1bWVudC5ib2R5O3Ro
aXMuX2FkZFRvUGFyZW50KFUsVik7dGhpcy5pZnJhbWU9Vjt9dGhpcy5zaG93SWZy
YW1lKCk7dGhpcy5zeW5jSWZyYW1lKCk7dGhpcy5zdGFja0lmcmFtZSgpO2lmKCF0
aGlzLl9oYXNJZnJhbWVFdmVudExpc3RlbmVycyl7dGhpcy5zaG93RXZlbnQuc3Vi
c2NyaWJlKHRoaXMuc2hvd0lmcmFtZSk7dGhpcy5oaWRlRXZlbnQuc3Vic2NyaWJl
KHRoaXMuaGlkZUlmcmFtZSk7dGhpcy5jaGFuZ2VDb250ZW50RXZlbnQuc3Vic2Ny
aWJlKHRoaXMuc3luY0lmcmFtZSk7dGhpcy5faGFzSWZyYW1lRXZlbnRMaXN0ZW5l
cnM9dHJ1ZTt9fWZ1bmN0aW9uIFAoKXtULmNhbGwodGhpcyk7dGhpcy5iZWZvcmVT
aG93RXZlbnQudW5zdWJzY3JpYmUoUCk7dGhpcy5faWZyYW1lRGVmZXJyZWQ9ZmFs
c2U7fWlmKE8pe2lmKHRoaXMuY2ZnLmdldFByb3BlcnR5KCJ2aXNpYmxlIikpe1Qu
Y2FsbCh0aGlzKTt9ZWxzZXtpZighdGhpcy5faWZyYW1lRGVmZXJyZWQpe3RoaXMu
YmVmb3JlU2hvd0V2ZW50LnN1YnNjcmliZShQKTt0aGlzLl9pZnJhbWVEZWZlcnJl
ZD10cnVlO319fWVsc2V7dGhpcy5oaWRlSWZyYW1lKCk7aWYodGhpcy5faGFzSWZy
YW1lRXZlbnRMaXN0ZW5lcnMpe3RoaXMuc2hvd0V2ZW50LnVuc3Vic2NyaWJlKHRo
aXMuc2hvd0lmcmFtZSk7dGhpcy5oaWRlRXZlbnQudW5zdWJzY3JpYmUodGhpcy5o
aWRlSWZyYW1lKTt0aGlzLmNoYW5nZUNvbnRlbnRFdmVudC51bnN1YnNjcmliZSh0
aGlzLnN5bmNJZnJhbWUpO3RoaXMuX2hhc0lmcmFtZUV2ZW50TGlzdGVuZXJzPWZh
bHNlO319fSxfcHJpbWVYWUZyb21ET006ZnVuY3Rpb24oKXtpZihZQUhPTy5sYW5n
LmlzVW5kZWZpbmVkKHRoaXMuY2ZnLmdldFByb3BlcnR5KCJ4eSIpKSl7dGhpcy5z
eW5jUG9zaXRpb24oKTt0aGlzLmNmZy5yZWZpcmVFdmVudCgieHkiKTt0aGlzLmJl
Zm9yZVNob3dFdmVudC51bnN1YnNjcmliZSh0aGlzLl9wcmltZVhZRnJvbURPTSk7
fX0sY29uZmlnQ29uc3RyYWluVG9WaWV3cG9ydDpmdW5jdGlvbihQLE8sUSl7dmFy
IFI9T1swXTtpZihSKXtpZighRC5hbHJlYWR5U3Vic2NyaWJlZCh0aGlzLmJlZm9y
ZU1vdmVFdmVudCx0aGlzLmVuZm9yY2VDb25zdHJhaW50cyx0aGlzKSl7dGhpcy5i
ZWZvcmVNb3ZlRXZlbnQuc3Vic2NyaWJlKHRoaXMuZW5mb3JjZUNvbnN0cmFpbnRz
LHRoaXMsdHJ1ZSk7fWlmKCFELmFscmVhZHlTdWJzY3JpYmVkKHRoaXMuYmVmb3Jl
U2hvd0V2ZW50LHRoaXMuX3ByaW1lWFlGcm9tRE9NKSl7dGhpcy5iZWZvcmVTaG93
RXZlbnQuc3Vic2NyaWJlKHRoaXMuX3ByaW1lWFlGcm9tRE9NKTt9fWVsc2V7dGhp
cy5iZWZvcmVTaG93RXZlbnQudW5zdWJzY3JpYmUodGhpcy5fcHJpbWVYWUZyb21E
T00pO3RoaXMuYmVmb3JlTW92ZUV2ZW50LnVuc3Vic2NyaWJlKHRoaXMuZW5mb3Jj
ZUNvbnN0cmFpbnRzLHRoaXMpO319LGNvbmZpZ0NvbnRleHQ6ZnVuY3Rpb24oVCxT
LFApe3ZhciBXPVNbMF0sUSxPLFUsUixWPXRoaXMuQ09OVEVYVF9UUklHR0VSUztp
ZihXKXtRPVdbMF07Tz1XWzFdO1U9V1syXTtSPVdbM107aWYoViYmVi5sZW5ndGg+
MCl7Uj0oUnx8W10pLmNvbmNhdChWKTt9aWYoUSl7aWYodHlwZW9mIFE9PSJzdHJp
bmciKXt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgiY29udGV4dCIsW2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKFEpLE8sVSxSXSx0cnVlKTt9aWYoTyYmVSl7dGhpcy5hbGln
bihPLFUpO31pZih0aGlzLl9jb250ZXh0VHJpZ2dlcnMpe3RoaXMuX3Byb2Nlc3NU
cmlnZ2Vycyh0aGlzLl9jb250ZXh0VHJpZ2dlcnMsRSx0aGlzLl9hbGlnbk9uVHJp
Z2dlcik7fWlmKFIpe3RoaXMuX3Byb2Nlc3NUcmlnZ2VycyhSLEgsdGhpcy5fYWxp
Z25PblRyaWdnZXIpO3RoaXMuX2NvbnRleHRUcmlnZ2Vycz1SO319fX0sX2FsaWdu
T25UcmlnZ2VyOmZ1bmN0aW9uKFAsTyl7dGhpcy5hbGlnbigpO30sX2ZpbmRUcmln
Z2VyQ0U6ZnVuY3Rpb24oTyl7dmFyIFA9bnVsbDtpZihPIGluc3RhbmNlb2YgTSl7
UD1PO31lbHNle2lmKEIuX1RSSUdHRVJfTUFQW09dKXtQPUIuX1RSSUdHRVJfTUFQ
W09dO319cmV0dXJuIFA7fSxfcHJvY2Vzc1RyaWdnZXJzOmZ1bmN0aW9uKFMsVSxS
KXt2YXIgUSxUO2Zvcih2YXIgUD0wLE89Uy5sZW5ndGg7UDxPOysrUCl7UT1TW1Bd
O1Q9dGhpcy5fZmluZFRyaWdnZXJDRShRKTtpZihUKXtUW1VdKFIsdGhpcyx0cnVl
KTt9ZWxzZXt0aGlzW1VdKFEsUik7fX19LGFsaWduOmZ1bmN0aW9uKFAsTyl7dmFy
IFU9dGhpcy5jZmcuZ2V0UHJvcGVydHkoImNvbnRleHQiKSxUPXRoaXMsUyxSLFY7
ZnVuY3Rpb24gUShXLFgpe3N3aXRjaChQKXtjYXNlIEIuVE9QX0xFRlQ6VC5tb3Zl
VG8oWCxXKTticmVhaztjYXNlIEIuVE9QX1JJR0hUOlQubW92ZVRvKChYLVIub2Zm
c2V0V2lkdGgpLFcpO2JyZWFrO2Nhc2UgQi5CT1RUT01fTEVGVDpULm1vdmVUbyhY
LChXLVIub2Zmc2V0SGVpZ2h0KSk7YnJlYWs7Y2FzZSBCLkJPVFRPTV9SSUdIVDpU
Lm1vdmVUbygoWC1SLm9mZnNldFdpZHRoKSwoVy1SLm9mZnNldEhlaWdodCkpO2Jy
ZWFrO319aWYoVSl7Uz1VWzBdO1I9dGhpcy5lbGVtZW50O1Q9dGhpcztpZighUCl7
UD1VWzFdO31pZighTyl7Tz1VWzJdO31pZihSJiZTKXtWPUYuZ2V0UmVnaW9uKFMp
O3N3aXRjaChPKXtjYXNlIEIuVE9QX0xFRlQ6UShWLnRvcCxWLmxlZnQpO2JyZWFr
O2Nhc2UgQi5UT1BfUklHSFQ6UShWLnRvcCxWLnJpZ2h0KTticmVhaztjYXNlIEIu
Qk9UVE9NX0xFRlQ6UShWLmJvdHRvbSxWLmxlZnQpO2JyZWFrO2Nhc2UgQi5CT1RU
T01fUklHSFQ6UShWLmJvdHRvbSxWLnJpZ2h0KTticmVhazt9fX19LGVuZm9yY2VD
b25zdHJhaW50czpmdW5jdGlvbihQLE8sUSl7dmFyIFM9T1swXTt2YXIgUj10aGlz
LmdldENvbnN0cmFpbmVkWFkoU1swXSxTWzFdKTt0aGlzLmNmZy5zZXRQcm9wZXJ0
eSgieCIsUlswXSx0cnVlKTt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgieSIsUlsxXSx0
cnVlKTt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgieHkiLFIsdHJ1ZSk7fSxnZXRDb25z
dHJhaW5lZFg6ZnVuY3Rpb24oVil7dmFyIFM9dGhpcyxPPVMuZWxlbWVudCxlPU8u
b2Zmc2V0V2lkdGgsYz1CLlZJRVdQT1JUX09GRlNFVCxoPUYuZ2V0Vmlld3BvcnRX
aWR0aCgpLGQ9Ri5nZXREb2N1bWVudFNjcm9sbExlZnQoKSxZPShlK2M8aCksYj10
aGlzLmNmZy5nZXRQcm9wZXJ0eSgiY29udGV4dCIpLFEsWCxqLFQ9ZmFsc2UsZixX
LGc9ZCtjLFA9ZCtoLWUtYyxpPVYsVT17InRsdHIiOnRydWUsImJsYnIiOnRydWUs
ImJyYmwiOnRydWUsInRydGwiOnRydWV9O3ZhciBaPWZ1bmN0aW9uKCl7dmFyIGs7
aWYoKFMuY2ZnLmdldFByb3BlcnR5KCJ4IiktZCk+WCl7az0oWC1lKTt9ZWxzZXtr
PShYK2opO31TLmNmZy5zZXRQcm9wZXJ0eSgieCIsKGsrZCksdHJ1ZSk7cmV0dXJu
IGs7fTt2YXIgUj1mdW5jdGlvbigpe2lmKChTLmNmZy5nZXRQcm9wZXJ0eSgieCIp
LWQpPlgpe3JldHVybihXLWMpO31lbHNle3JldHVybihmLWMpO319O3ZhciBhPWZ1
bmN0aW9uKCl7dmFyIGs9UigpLGw7aWYoZT5rKXtpZihUKXtaKCk7fWVsc2V7Wigp
O1Q9dHJ1ZTtsPWEoKTt9fXJldHVybiBsO307aWYoVjxnfHxWPlApe2lmKFkpe2lm
KHRoaXMuY2ZnLmdldFByb3BlcnR5KCJwcmV2ZW50Y29udGV4dG92ZXJsYXAiKSYm
YiYmVVsoYlsxXStiWzJdKV0pe1E9YlswXTtYPUYuZ2V0WChRKS1kO2o9US5vZmZz
ZXRXaWR0aDtmPVg7Vz0oaC0oWCtqKSk7YSgpO2k9dGhpcy5jZmcuZ2V0UHJvcGVy
dHkoIngiKTt9ZWxzZXtpZihWPGcpe2k9Zzt9ZWxzZXtpZihWPlApe2k9UDt9fX19
ZWxzZXtpPWMrZDt9fXJldHVybiBpO30sZ2V0Q29uc3RyYWluZWRZOmZ1bmN0aW9u
KFope3ZhciBXPXRoaXMsUD1XLmVsZW1lbnQsaT1QLm9mZnNldEhlaWdodCxoPUIu
VklFV1BPUlRfT0ZGU0VULGQ9Ri5nZXRWaWV3cG9ydEhlaWdodCgpLGc9Ri5nZXRE
b2N1bWVudFNjcm9sbFRvcCgpLGU9KGkraDxkKSxmPXRoaXMuY2ZnLmdldFByb3Bl
cnR5KCJjb250ZXh0IiksVSxhLGIsWD1mYWxzZSxWLFEsYz1nK2gsUz1nK2QtaS1o
LE89WixZPXsidHJiciI6dHJ1ZSwidGxibCI6dHJ1ZSwiYmx0bCI6dHJ1ZSwiYnJ0
ciI6dHJ1ZX07dmFyIFQ9ZnVuY3Rpb24oKXt2YXIgaztpZigoVy5jZmcuZ2V0UHJv
cGVydHkoInkiKS1nKT5hKXtrPShhLWkpO31lbHNle2s9KGErYik7fVcuY2ZnLnNl
dFByb3BlcnR5KCJ5IiwoaytnKSx0cnVlKTtyZXR1cm4gazt9O3ZhciBSPWZ1bmN0
aW9uKCl7aWYoKFcuY2ZnLmdldFByb3BlcnR5KCJ5IiktZyk+YSl7cmV0dXJuKFEt
aCk7fWVsc2V7cmV0dXJuKFYtaCk7fX07dmFyIGo9ZnVuY3Rpb24oKXt2YXIgbD1S
KCksaztpZihpPmwpe2lmKFgpe1QoKTt9ZWxzZXtUKCk7WD10cnVlO2s9aigpO319
cmV0dXJuIGs7fTtpZihaPGN8fFo+Uyl7aWYoZSl7aWYodGhpcy5jZmcuZ2V0UHJv
cGVydHkoInByZXZlbnRjb250ZXh0b3ZlcmxhcCIpJiZmJiZZWyhmWzFdK2ZbMl0p
XSl7VT1mWzBdO2I9VS5vZmZzZXRIZWlnaHQ7YT0oRi5nZXRZKFUpLWcpO1Y9YTtR
PShkLShhK2IpKTtqKCk7Tz1XLmNmZy5nZXRQcm9wZXJ0eSgieSIpO31lbHNle2lm
KFo8Yyl7Tz1jO31lbHNle2lmKFo+Uyl7Tz1TO319fX1lbHNle089aCtnO319cmV0
dXJuIE87fSxnZXRDb25zdHJhaW5lZFhZOmZ1bmN0aW9uKE8sUCl7cmV0dXJuW3Ro
aXMuZ2V0Q29uc3RyYWluZWRYKE8pLHRoaXMuZ2V0Q29uc3RyYWluZWRZKFApXTt9
LGNlbnRlcjpmdW5jdGlvbigpe3ZhciBSPUIuVklFV1BPUlRfT0ZGU0VULFM9dGhp
cy5lbGVtZW50Lm9mZnNldFdpZHRoLFE9dGhpcy5lbGVtZW50Lm9mZnNldEhlaWdo
dCxQPUYuZ2V0Vmlld3BvcnRXaWR0aCgpLFQ9Ri5nZXRWaWV3cG9ydEhlaWdodCgp
LE8sVTtpZihTPFApe089KFAvMiktKFMvMikrRi5nZXREb2N1bWVudFNjcm9sbExl
ZnQoKTt9ZWxzZXtPPVIrRi5nZXREb2N1bWVudFNjcm9sbExlZnQoKTt9aWYoUTxU
KXtVPShULzIpLShRLzIpK0YuZ2V0RG9jdW1lbnRTY3JvbGxUb3AoKTt9ZWxzZXtV
PVIrRi5nZXREb2N1bWVudFNjcm9sbFRvcCgpO310aGlzLmNmZy5zZXRQcm9wZXJ0
eSgieHkiLFtwYXJzZUludChPLDEwKSxwYXJzZUludChVLDEwKV0pO3RoaXMuY2Zn
LnJlZmlyZUV2ZW50KCJpZnJhbWUiKTtpZihLLndlYmtpdCl7dGhpcy5mb3JjZUNv
bnRhaW5lclJlZHJhdygpO319LHN5bmNQb3NpdGlvbjpmdW5jdGlvbigpe3ZhciBP
PUYuZ2V0WFkodGhpcy5lbGVtZW50KTt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgieCIs
T1swXSx0cnVlKTt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgieSIsT1sxXSx0cnVlKTt0
aGlzLmNmZy5zZXRQcm9wZXJ0eSgieHkiLE8sdHJ1ZSk7fSxvbkRvbVJlc2l6ZTpm
dW5jdGlvbihRLFApe3ZhciBPPXRoaXM7Qi5zdXBlcmNsYXNzLm9uRG9tUmVzaXpl
LmNhbGwodGhpcyxRLFApO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtPLnN5bmNQb3Np
dGlvbigpO08uY2ZnLnJlZmlyZUV2ZW50KCJpZnJhbWUiKTtPLmNmZy5yZWZpcmVF
dmVudCgiY29udGV4dCIpO30sMCk7fSxfZ2V0Q29tcHV0ZWRIZWlnaHQ6KGZ1bmN0
aW9uKCl7aWYoZG9jdW1lbnQuZGVmYXVsdFZpZXcmJmRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldENvbXB1dGVkU3R5bGUpe3JldHVybiBmdW5jdGlvbihQKXt2YXIgTz1u
dWxsO2lmKFAub3duZXJEb2N1bWVudCYmUC5vd25lckRvY3VtZW50LmRlZmF1bHRW
aWV3KXt2YXIgUT1QLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0
ZWRTdHlsZShQLCIiKTtpZihRKXtPPXBhcnNlSW50KFEuaGVpZ2h0LDEwKTt9fXJl
dHVybihJLmlzTnVtYmVyKE8pKT9POm51bGw7fTt9ZWxzZXtyZXR1cm4gZnVuY3Rp
b24oUCl7dmFyIE89bnVsbDsKaWYoUC5zdHlsZS5waXhlbEhlaWdodCl7Tz1QLnN0
eWxlLnBpeGVsSGVpZ2h0O31yZXR1cm4oSS5pc051bWJlcihPKSk/TzpudWxsO307
fX0pKCksX3ZhbGlkYXRlQXV0b0ZpbGxIZWlnaHQ6ZnVuY3Rpb24oTyl7cmV0dXJu
KCFPKXx8KEkuaXNTdHJpbmcoTykmJkIuU1REX01PRF9SRS50ZXN0KE8pKTt9LF9h
dXRvRmlsbE9uSGVpZ2h0Q2hhbmdlOmZ1bmN0aW9uKFIsUCxRKXt2YXIgTz10aGlz
LmNmZy5nZXRQcm9wZXJ0eSgiaGVpZ2h0Iik7aWYoKE8mJk8hPT0iYXV0byIpfHwo
Tz09PTApKXt0aGlzLmZpbGxIZWlnaHQoUSk7fX0sX2dldFByZWNpc2VIZWlnaHQ6
ZnVuY3Rpb24oUCl7dmFyIE89UC5vZmZzZXRIZWlnaHQ7aWYoUC5nZXRCb3VuZGlu
Z0NsaWVudFJlY3Qpe3ZhciBRPVAuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Tz1R
LmJvdHRvbS1RLnRvcDt9cmV0dXJuIE87fSxmaWxsSGVpZ2h0OmZ1bmN0aW9uKFIp
e2lmKFIpe3ZhciBQPXRoaXMuaW5uZXJFbGVtZW50fHx0aGlzLmVsZW1lbnQsTz1b
dGhpcy5oZWFkZXIsdGhpcy5ib2R5LHRoaXMuZm9vdGVyXSxWLFc9MCxYPTAsVD0w
LFE9ZmFsc2U7Zm9yKHZhciBVPTAsUz1PLmxlbmd0aDtVPFM7VSsrKXtWPU9bVV07
aWYoVil7aWYoUiE9PVYpe1grPXRoaXMuX2dldFByZWNpc2VIZWlnaHQoVik7fWVs
c2V7UT10cnVlO319fWlmKFEpe2lmKEsuaWV8fEsub3BlcmEpe0Yuc2V0U3R5bGUo
UiwiaGVpZ2h0IiwwKyJweCIpO31XPXRoaXMuX2dldENvbXB1dGVkSGVpZ2h0KFAp
O2lmKFc9PT1udWxsKXtGLmFkZENsYXNzKFAsInl1aS1vdmVycmlkZS1wYWRkaW5n
Iik7Vz1QLmNsaWVudEhlaWdodDtGLnJlbW92ZUNsYXNzKFAsInl1aS1vdmVycmlk
ZS1wYWRkaW5nIik7fVQ9TWF0aC5tYXgoVy1YLDApO0Yuc2V0U3R5bGUoUiwiaGVp
Z2h0IixUKyJweCIpO2lmKFIub2Zmc2V0SGVpZ2h0IT1UKXtUPU1hdGgubWF4KFQt
KFIub2Zmc2V0SGVpZ2h0LVQpLDApO31GLnNldFN0eWxlKFIsImhlaWdodCIsVCsi
cHgiKTt9fX0sYnJpbmdUb1RvcDpmdW5jdGlvbigpe3ZhciBTPVtdLFI9dGhpcy5l
bGVtZW50O2Z1bmN0aW9uIFYoWixZKXt2YXIgYj1GLmdldFN0eWxlKFosInpJbmRl
eCIpLGE9Ri5nZXRTdHlsZShZLCJ6SW5kZXgiKSxYPSghYnx8aXNOYU4oYikpPzA6
cGFyc2VJbnQoYiwxMCksVz0oIWF8fGlzTmFOKGEpKT8wOnBhcnNlSW50KGEsMTAp
O2lmKFg+Vyl7cmV0dXJuIC0xO31lbHNle2lmKFg8Vyl7cmV0dXJuIDE7fWVsc2V7
cmV0dXJuIDA7fX19ZnVuY3Rpb24gUShZKXt2YXIgWD1GLmhhc0NsYXNzKFksQi5D
U1NfT1ZFUkxBWSksVz1ZQUhPTy53aWRnZXQuUGFuZWw7aWYoWCYmIUYuaXNBbmNl
c3RvcihSLFkpKXtpZihXJiZGLmhhc0NsYXNzKFksVy5DU1NfUEFORUwpKXtTW1Mu
bGVuZ3RoXT1ZLnBhcmVudE5vZGU7fWVsc2V7U1tTLmxlbmd0aF09WTt9fX1GLmdl
dEVsZW1lbnRzQnkoUSwiRElWIixkb2N1bWVudC5ib2R5KTtTLnNvcnQoVik7dmFy
IE89U1swXSxVO2lmKE8pe1U9Ri5nZXRTdHlsZShPLCJ6SW5kZXgiKTtpZighaXNO
YU4oVSkpe3ZhciBUPWZhbHNlO2lmKE8hPVIpe1Q9dHJ1ZTt9ZWxzZXtpZihTLmxl
bmd0aD4xKXt2YXIgUD1GLmdldFN0eWxlKFNbMV0sInpJbmRleCIpO2lmKCFpc05h
TihQKSYmKFU9PVApKXtUPXRydWU7fX19aWYoVCl7dGhpcy5jZmcuc2V0UHJvcGVy
dHkoInppbmRleCIsKHBhcnNlSW50KFUsMTApKzIpKTt9fX19LGRlc3Ryb3k6ZnVu
Y3Rpb24oKXtpZih0aGlzLmlmcmFtZSl7dGhpcy5pZnJhbWUucGFyZW50Tm9kZS5y
ZW1vdmVDaGlsZCh0aGlzLmlmcmFtZSk7fXRoaXMuaWZyYW1lPW51bGw7Qi53aW5k
b3dSZXNpemVFdmVudC51bnN1YnNjcmliZSh0aGlzLmRvQ2VudGVyT25ET01FdmVu
dCx0aGlzKTtCLndpbmRvd1Njcm9sbEV2ZW50LnVuc3Vic2NyaWJlKHRoaXMuZG9D
ZW50ZXJPbkRPTUV2ZW50LHRoaXMpO0cudGV4dFJlc2l6ZUV2ZW50LnVuc3Vic2Ny
aWJlKHRoaXMuX2F1dG9GaWxsT25IZWlnaHRDaGFuZ2UpO0Iuc3VwZXJjbGFzcy5k
ZXN0cm95LmNhbGwodGhpcyk7fSxmb3JjZUNvbnRhaW5lclJlZHJhdzpmdW5jdGlv
bigpe3ZhciBPPXRoaXM7Ri5hZGRDbGFzcyhPLmVsZW1lbnQsInl1aS1mb3JjZS1y
ZWRyYXciKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ri5yZW1vdmVDbGFzcyhPLmVs
ZW1lbnQsInl1aS1mb3JjZS1yZWRyYXciKTt9LDApO30sdG9TdHJpbmc6ZnVuY3Rp
b24oKXtyZXR1cm4iT3ZlcmxheSAiK3RoaXMuaWQ7fX0pO30oKSk7KGZ1bmN0aW9u
KCl7WUFIT08ud2lkZ2V0Lk92ZXJsYXlNYW5hZ2VyPWZ1bmN0aW9uKEcpe3RoaXMu
aW5pdChHKTt9O3ZhciBEPVlBSE9PLndpZGdldC5PdmVybGF5LEM9WUFIT08udXRp
bC5FdmVudCxFPVlBSE9PLnV0aWwuRG9tLEI9WUFIT08udXRpbC5Db25maWcsRj1Z
QUhPTy51dGlsLkN1c3RvbUV2ZW50LEE9WUFIT08ud2lkZ2V0Lk92ZXJsYXlNYW5h
Z2VyO0EuQ1NTX0ZPQ1VTRUQ9ImZvY3VzZWQiO0EucHJvdG90eXBlPXtjb25zdHJ1
Y3RvcjpBLG92ZXJsYXlzOm51bGwsaW5pdERlZmF1bHRDb25maWc6ZnVuY3Rpb24o
KXt0aGlzLmNmZy5hZGRQcm9wZXJ0eSgib3ZlcmxheXMiLHtzdXBwcmVzc0V2ZW50
OnRydWV9KTt0aGlzLmNmZy5hZGRQcm9wZXJ0eSgiZm9jdXNldmVudCIse3ZhbHVl
OiJtb3VzZWRvd24ifSk7fSxpbml0OmZ1bmN0aW9uKEkpe3RoaXMuY2ZnPW5ldyBC
KHRoaXMpO3RoaXMuaW5pdERlZmF1bHRDb25maWcoKTtpZihJKXt0aGlzLmNmZy5h
cHBseUNvbmZpZyhJLHRydWUpO310aGlzLmNmZy5maXJlUXVldWUoKTt2YXIgSD1u
dWxsO3RoaXMuZ2V0QWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIEg7fTt0aGlzLmZv
Y3VzPWZ1bmN0aW9uKEope3ZhciBLPXRoaXMuZmluZChKKTtpZihLKXtLLmZvY3Vz
KCk7fX07dGhpcy5yZW1vdmU9ZnVuY3Rpb24oSyl7dmFyIE09dGhpcy5maW5kKEsp
LEo7aWYoTSl7aWYoSD09TSl7SD1udWxsO312YXIgTD0oTS5lbGVtZW50PT09bnVs
bCYmTS5jZmc9PT1udWxsKT90cnVlOmZhbHNlO2lmKCFMKXtKPUUuZ2V0U3R5bGUo
TS5lbGVtZW50LCJ6SW5kZXgiKTtNLmNmZy5zZXRQcm9wZXJ0eSgiekluZGV4Iiwt
MTAwMCx0cnVlKTt9dGhpcy5vdmVybGF5cy5zb3J0KHRoaXMuY29tcGFyZVpJbmRl
eERlc2MpO3RoaXMub3ZlcmxheXM9dGhpcy5vdmVybGF5cy5zbGljZSgwLCh0aGlz
Lm92ZXJsYXlzLmxlbmd0aC0xKSk7TS5oaWRlRXZlbnQudW5zdWJzY3JpYmUoTS5i
bHVyKTtNLmRlc3Ryb3lFdmVudC51bnN1YnNjcmliZSh0aGlzLl9vbk92ZXJsYXlE
ZXN0cm95LE0pO00uZm9jdXNFdmVudC51bnN1YnNjcmliZSh0aGlzLl9vbk92ZXJs
YXlGb2N1c0hhbmRsZXIsTSk7TS5ibHVyRXZlbnQudW5zdWJzY3JpYmUodGhpcy5f
b25PdmVybGF5Qmx1ckhhbmRsZXIsTSk7aWYoIUwpe0MucmVtb3ZlTGlzdGVuZXIo
TS5lbGVtZW50LHRoaXMuY2ZnLmdldFByb3BlcnR5KCJmb2N1c2V2ZW50IiksdGhp
cy5fb25PdmVybGF5RWxlbWVudEZvY3VzKTtNLmNmZy5zZXRQcm9wZXJ0eSgieklu
ZGV4IixKLHRydWUpO00uY2ZnLnNldFByb3BlcnR5KCJtYW5hZ2VyIixudWxsKTt9
aWYoTS5mb2N1c0V2ZW50Ll9tYW5hZ2VkKXtNLmZvY3VzRXZlbnQ9bnVsbDt9aWYo
TS5ibHVyRXZlbnQuX21hbmFnZWQpe00uYmx1ckV2ZW50PW51bGw7fWlmKE0uZm9j
dXMuX21hbmFnZWQpe00uZm9jdXM9bnVsbDt9aWYoTS5ibHVyLl9tYW5hZ2VkKXtN
LmJsdXI9bnVsbDt9fX07dGhpcy5ibHVyQWxsPWZ1bmN0aW9uKCl7dmFyIEs9dGhp
cy5vdmVybGF5cy5sZW5ndGgsSjtpZihLPjApe0o9Sy0xO2Rve3RoaXMub3Zlcmxh
eXNbSl0uYmx1cigpO313aGlsZShKLS0pO319O3RoaXMuX21hbmFnZUJsdXI9ZnVu
Y3Rpb24oSil7dmFyIEs9ZmFsc2U7aWYoSD09Sil7RS5yZW1vdmVDbGFzcyhILmVs
ZW1lbnQsQS5DU1NfRk9DVVNFRCk7SD1udWxsO0s9dHJ1ZTt9cmV0dXJuIEs7fTt0
aGlzLl9tYW5hZ2VGb2N1cz1mdW5jdGlvbihKKXt2YXIgSz1mYWxzZTtpZihIIT1K
KXtpZihIKXtILmJsdXIoKTt9SD1KO3RoaXMuYnJpbmdUb1RvcChIKTtFLmFkZENs
YXNzKEguZWxlbWVudCxBLkNTU19GT0NVU0VEKTtLPXRydWU7fXJldHVybiBLO307
dmFyIEc9dGhpcy5jZmcuZ2V0UHJvcGVydHkoIm92ZXJsYXlzIik7aWYoIXRoaXMu
b3ZlcmxheXMpe3RoaXMub3ZlcmxheXM9W107fWlmKEcpe3RoaXMucmVnaXN0ZXIo
Ryk7dGhpcy5vdmVybGF5cy5zb3J0KHRoaXMuY29tcGFyZVpJbmRleERlc2MpO319
LF9vbk92ZXJsYXlFbGVtZW50Rm9jdXM6ZnVuY3Rpb24oSSl7dmFyIEc9Qy5nZXRU
YXJnZXQoSSksSD10aGlzLmNsb3NlO2lmKEgmJihHPT1IfHxFLmlzQW5jZXN0b3Io
SCxHKSkpe3RoaXMuYmx1cigpO31lbHNle3RoaXMuZm9jdXMoKTt9fSxfb25PdmVy
bGF5RGVzdHJveTpmdW5jdGlvbihILEcsSSl7dGhpcy5yZW1vdmUoSSk7fSxfb25P
dmVybGF5Rm9jdXNIYW5kbGVyOmZ1bmN0aW9uKEgsRyxJKXt0aGlzLl9tYW5hZ2VG
b2N1cyhJKTt9LF9vbk92ZXJsYXlCbHVySGFuZGxlcjpmdW5jdGlvbihILEcsSSl7
dGhpcy5fbWFuYWdlQmx1cihJKTt9LF9iaW5kRm9jdXM6ZnVuY3Rpb24oRyl7dmFy
IEg9dGhpcztpZighRy5mb2N1c0V2ZW50KXtHLmZvY3VzRXZlbnQ9Ry5jcmVhdGVF
dmVudCgiZm9jdXMiKTtHLmZvY3VzRXZlbnQuc2lnbmF0dXJlPUYuTElTVDtHLmZv
Y3VzRXZlbnQuX21hbmFnZWQ9dHJ1ZTt9ZWxzZXtHLmZvY3VzRXZlbnQuc3Vic2Ny
aWJlKEguX29uT3ZlcmxheUZvY3VzSGFuZGxlcixHLEgpO31pZighRy5mb2N1cyl7
Qy5vbihHLmVsZW1lbnQsSC5jZmcuZ2V0UHJvcGVydHkoImZvY3VzZXZlbnQiKSxI
Ll9vbk92ZXJsYXlFbGVtZW50Rm9jdXMsbnVsbCxHKTtHLmZvY3VzPWZ1bmN0aW9u
KCl7aWYoSC5fbWFuYWdlRm9jdXModGhpcykpe2lmKHRoaXMuY2ZnLmdldFByb3Bl
cnR5KCJ2aXNpYmxlIikmJnRoaXMuZm9jdXNGaXJzdCl7dGhpcy5mb2N1c0ZpcnN0
KCk7fXRoaXMuZm9jdXNFdmVudC5maXJlKCk7fX07Ry5mb2N1cy5fbWFuYWdlZD10
cnVlO319LF9iaW5kQmx1cjpmdW5jdGlvbihHKXt2YXIgSD10aGlzO2lmKCFHLmJs
dXJFdmVudCl7Ry5ibHVyRXZlbnQ9Ry5jcmVhdGVFdmVudCgiYmx1ciIpO0cuYmx1
ckV2ZW50LnNpZ25hdHVyZT1GLkxJU1Q7Ry5mb2N1c0V2ZW50Ll9tYW5hZ2VkPXRy
dWU7fWVsc2V7Ry5ibHVyRXZlbnQuc3Vic2NyaWJlKEguX29uT3ZlcmxheUJsdXJI
YW5kbGVyLEcsSCk7fWlmKCFHLmJsdXIpe0cuYmx1cj1mdW5jdGlvbigpe2lmKEgu
X21hbmFnZUJsdXIodGhpcykpe3RoaXMuYmx1ckV2ZW50LmZpcmUoKTt9fTtHLmJs
dXIuX21hbmFnZWQ9dHJ1ZTt9Ry5oaWRlRXZlbnQuc3Vic2NyaWJlKEcuYmx1cik7
fSxfYmluZERlc3Ryb3k6ZnVuY3Rpb24oRyl7dmFyIEg9dGhpcztHLmRlc3Ryb3lF
dmVudC5zdWJzY3JpYmUoSC5fb25PdmVybGF5RGVzdHJveSxHLEgpO30sX3N5bmNa
SW5kZXg6ZnVuY3Rpb24oRyl7dmFyIEg9RS5nZXRTdHlsZShHLmVsZW1lbnQsInpJ
bmRleCIpO2lmKCFpc05hTihIKSl7Ry5jZmcuc2V0UHJvcGVydHkoInpJbmRleCIs
cGFyc2VJbnQoSCwxMCkpO31lbHNle0cuY2ZnLnNldFByb3BlcnR5KCJ6SW5kZXgi
LDApO319LHJlZ2lzdGVyOmZ1bmN0aW9uKEcpe3ZhciBKPWZhbHNlLEgsSTtpZihH
IGluc3RhbmNlb2YgRCl7Ry5jZmcuYWRkUHJvcGVydHkoIm1hbmFnZXIiLHt2YWx1
ZTp0aGlzfSk7dGhpcy5fYmluZEZvY3VzKEcpO3RoaXMuX2JpbmRCbHVyKEcpO3Ro
aXMuX2JpbmREZXN0cm95KEcpO3RoaXMuX3N5bmNaSW5kZXgoRyk7dGhpcy5vdmVy
bGF5cy5wdXNoKEcpO3RoaXMuYnJpbmdUb1RvcChHKTtKPXRydWU7fWVsc2V7aWYo
RyBpbnN0YW5jZW9mIEFycmF5KXtmb3IoSD0wLEk9Ry5sZW5ndGg7SDxJO0grKyl7
Sj10aGlzLnJlZ2lzdGVyKEdbSF0pfHxKO319fXJldHVybiBKO30sYnJpbmdUb1Rv
cDpmdW5jdGlvbihNKXt2YXIgST10aGlzLmZpbmQoTSksTCxHLEo7aWYoSSl7Sj10
aGlzLm92ZXJsYXlzO0ouc29ydCh0aGlzLmNvbXBhcmVaSW5kZXhEZXNjKTtHPUpb
MF07aWYoRyl7TD1FLmdldFN0eWxlKEcuZWxlbWVudCwiekluZGV4Iik7CmlmKCFp
c05hTihMKSl7dmFyIEs9ZmFsc2U7aWYoRyE9PUkpe0s9dHJ1ZTt9ZWxzZXtpZihK
Lmxlbmd0aD4xKXt2YXIgSD1FLmdldFN0eWxlKEpbMV0uZWxlbWVudCwiekluZGV4
Iik7aWYoIWlzTmFOKEgpJiYoTD09SCkpe0s9dHJ1ZTt9fX1pZihLKXtJLmNmZy5z
ZXRQcm9wZXJ0eSgiemluZGV4IiwocGFyc2VJbnQoTCwxMCkrMikpO319Si5zb3J0
KHRoaXMuY29tcGFyZVpJbmRleERlc2MpO319fSxmaW5kOmZ1bmN0aW9uKEcpe3Zh
ciBLPUcgaW5zdGFuY2VvZiBELEk9dGhpcy5vdmVybGF5cyxNPUkubGVuZ3RoLEo9
bnVsbCxMLEg7aWYoS3x8dHlwZW9mIEc9PSJzdHJpbmciKXtmb3IoSD1NLTE7SD49
MDtILS0pe0w9SVtIXTtpZigoSyYmKEw9PT1HKSl8fChMLmlkPT1HKSl7Sj1MO2Jy
ZWFrO319fXJldHVybiBKO30sY29tcGFyZVpJbmRleERlc2M6ZnVuY3Rpb24oSixJ
KXt2YXIgSD0oSi5jZmcpP0ouY2ZnLmdldFByb3BlcnR5KCJ6SW5kZXgiKTpudWxs
LEc9KEkuY2ZnKT9JLmNmZy5nZXRQcm9wZXJ0eSgiekluZGV4Iik6bnVsbDtpZihI
PT09bnVsbCYmRz09PW51bGwpe3JldHVybiAwO31lbHNle2lmKEg9PT1udWxsKXty
ZXR1cm4gMTt9ZWxzZXtpZihHPT09bnVsbCl7cmV0dXJuIC0xO31lbHNle2lmKEg+
Ryl7cmV0dXJuIC0xO31lbHNle2lmKEg8Ryl7cmV0dXJuIDE7fWVsc2V7cmV0dXJu
IDA7fX19fX19LHNob3dBbGw6ZnVuY3Rpb24oKXt2YXIgSD10aGlzLm92ZXJsYXlz
LEk9SC5sZW5ndGgsRztmb3IoRz1JLTE7Rz49MDtHLS0pe0hbR10uc2hvdygpO319
LGhpZGVBbGw6ZnVuY3Rpb24oKXt2YXIgSD10aGlzLm92ZXJsYXlzLEk9SC5sZW5n
dGgsRztmb3IoRz1JLTE7Rz49MDtHLS0pe0hbR10uaGlkZSgpO319LHRvU3RyaW5n
OmZ1bmN0aW9uKCl7cmV0dXJuIk92ZXJsYXlNYW5hZ2VyIjt9fTt9KCkpOyhmdW5j
dGlvbigpe1lBSE9PLndpZGdldC5Ub29sdGlwPWZ1bmN0aW9uKFAsTyl7WUFIT08u
d2lkZ2V0LlRvb2x0aXAuc3VwZXJjbGFzcy5jb25zdHJ1Y3Rvci5jYWxsKHRoaXMs
UCxPKTt9O3ZhciBFPVlBSE9PLmxhbmcsTj1ZQUhPTy51dGlsLkV2ZW50LE09WUFI
T08udXRpbC5DdXN0b21FdmVudCxDPVlBSE9PLnV0aWwuRG9tLEo9WUFIT08ud2lk
Z2V0LlRvb2x0aXAsSD1ZQUhPTy5lbnYudWEsRz0oSC5pZSYmKEguaWU8PTZ8fGRv
Y3VtZW50LmNvbXBhdE1vZGU9PSJCYWNrQ29tcGF0IikpLEYsST17IlBSRVZFTlRf
T1ZFUkxBUCI6e2tleToicHJldmVudG92ZXJsYXAiLHZhbHVlOnRydWUsdmFsaWRh
dG9yOkUuaXNCb29sZWFuLHN1cGVyY2VkZXM6WyJ4IiwieSIsInh5Il19LCJTSE9X
X0RFTEFZIjp7a2V5OiJzaG93ZGVsYXkiLHZhbHVlOjIwMCx2YWxpZGF0b3I6RS5p
c051bWJlcn0sIkFVVE9fRElTTUlTU19ERUxBWSI6e2tleToiYXV0b2Rpc21pc3Nk
ZWxheSIsdmFsdWU6NTAwMCx2YWxpZGF0b3I6RS5pc051bWJlcn0sIkhJREVfREVM
QVkiOntrZXk6ImhpZGVkZWxheSIsdmFsdWU6MjUwLHZhbGlkYXRvcjpFLmlzTnVt
YmVyfSwiVEVYVCI6e2tleToidGV4dCIsc3VwcHJlc3NFdmVudDp0cnVlfSwiQ09O
VEFJTkVSIjp7a2V5OiJjb250YWluZXIifSwiRElTQUJMRUQiOntrZXk6ImRpc2Fi
bGVkIix2YWx1ZTpmYWxzZSxzdXBwcmVzc0V2ZW50OnRydWV9fSxBPXsiQ09OVEVY
VF9NT1VTRV9PVkVSIjoiY29udGV4dE1vdXNlT3ZlciIsIkNPTlRFWFRfTU9VU0Vf
T1VUIjoiY29udGV4dE1vdXNlT3V0IiwiQ09OVEVYVF9UUklHR0VSIjoiY29udGV4
dFRyaWdnZXIifTtKLkNTU19UT09MVElQPSJ5dWktdHQiO2Z1bmN0aW9uIEsoUSxP
KXt2YXIgUD10aGlzLmNmZyxSPVAuZ2V0UHJvcGVydHkoIndpZHRoIik7aWYoUj09
Tyl7UC5zZXRQcm9wZXJ0eSgid2lkdGgiLFEpO319ZnVuY3Rpb24gRChQLE8pe2lm
KCJfb3JpZ2luYWxXaWR0aCIgaW4gdGhpcyl7Sy5jYWxsKHRoaXMsdGhpcy5fb3Jp
Z2luYWxXaWR0aCx0aGlzLl9mb3JjZWRXaWR0aCk7fXZhciBRPWRvY3VtZW50LmJv
ZHksVT10aGlzLmNmZyxUPVUuZ2V0UHJvcGVydHkoIndpZHRoIiksUixTO2lmKCgh
VHx8VD09ImF1dG8iKSYmKFUuZ2V0UHJvcGVydHkoImNvbnRhaW5lciIpIT1RfHxV
LmdldFByb3BlcnR5KCJ4Iik+PUMuZ2V0Vmlld3BvcnRXaWR0aCgpfHxVLmdldFBy
b3BlcnR5KCJ5Iik+PUMuZ2V0Vmlld3BvcnRIZWlnaHQoKSkpe1M9dGhpcy5lbGVt
ZW50LmNsb25lTm9kZSh0cnVlKTtTLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7
Uy5zdHlsZS50b3A9IjBweCI7Uy5zdHlsZS5sZWZ0PSIwcHgiO1EuYXBwZW5kQ2hp
bGQoUyk7Uj0oUy5vZmZzZXRXaWR0aCsicHgiKTtRLnJlbW92ZUNoaWxkKFMpO1M9
bnVsbDtVLnNldFByb3BlcnR5KCJ3aWR0aCIsUik7VS5yZWZpcmVFdmVudCgieHki
KTt0aGlzLl9vcmlnaW5hbFdpZHRoPVR8fCIiO3RoaXMuX2ZvcmNlZFdpZHRoPVI7
fX1mdW5jdGlvbiBCKFAsTyxRKXt0aGlzLnJlbmRlcihRKTt9ZnVuY3Rpb24gTCgp
e04ub25ET01SZWFkeShCLHRoaXMuY2ZnLmdldFByb3BlcnR5KCJjb250YWluZXIi
KSx0aGlzKTt9WUFIT08uZXh0ZW5kKEosWUFIT08ud2lkZ2V0Lk92ZXJsYXkse2lu
aXQ6ZnVuY3Rpb24oUCxPKXtKLnN1cGVyY2xhc3MuaW5pdC5jYWxsKHRoaXMsUCk7
dGhpcy5iZWZvcmVJbml0RXZlbnQuZmlyZShKKTtDLmFkZENsYXNzKHRoaXMuZWxl
bWVudCxKLkNTU19UT09MVElQKTtpZihPKXt0aGlzLmNmZy5hcHBseUNvbmZpZyhP
LHRydWUpO310aGlzLmNmZy5xdWV1ZVByb3BlcnR5KCJ2aXNpYmxlIixmYWxzZSk7
dGhpcy5jZmcucXVldWVQcm9wZXJ0eSgiY29uc3RyYWludG92aWV3cG9ydCIsdHJ1
ZSk7dGhpcy5zZXRCb2R5KCIiKTt0aGlzLnN1YnNjcmliZSgiY2hhbmdlQ29udGVu
dCIsRCk7dGhpcy5zdWJzY3JpYmUoImluaXQiLEwpO3RoaXMuc3Vic2NyaWJlKCJy
ZW5kZXIiLHRoaXMub25SZW5kZXIpO3RoaXMuaW5pdEV2ZW50LmZpcmUoSik7fSxp
bml0RXZlbnRzOmZ1bmN0aW9uKCl7Si5zdXBlcmNsYXNzLmluaXRFdmVudHMuY2Fs
bCh0aGlzKTt2YXIgTz1NLkxJU1Q7dGhpcy5jb250ZXh0TW91c2VPdmVyRXZlbnQ9
dGhpcy5jcmVhdGVFdmVudChBLkNPTlRFWFRfTU9VU0VfT1ZFUik7dGhpcy5jb250
ZXh0TW91c2VPdmVyRXZlbnQuc2lnbmF0dXJlPU87dGhpcy5jb250ZXh0TW91c2VP
dXRFdmVudD10aGlzLmNyZWF0ZUV2ZW50KEEuQ09OVEVYVF9NT1VTRV9PVVQpO3Ro
aXMuY29udGV4dE1vdXNlT3V0RXZlbnQuc2lnbmF0dXJlPU87dGhpcy5jb250ZXh0
VHJpZ2dlckV2ZW50PXRoaXMuY3JlYXRlRXZlbnQoQS5DT05URVhUX1RSSUdHRVIp
O3RoaXMuY29udGV4dFRyaWdnZXJFdmVudC5zaWduYXR1cmU9Tzt9LGluaXREZWZh
dWx0Q29uZmlnOmZ1bmN0aW9uKCl7Si5zdXBlcmNsYXNzLmluaXREZWZhdWx0Q29u
ZmlnLmNhbGwodGhpcyk7dGhpcy5jZmcuYWRkUHJvcGVydHkoSS5QUkVWRU5UX09W
RVJMQVAua2V5LHt2YWx1ZTpJLlBSRVZFTlRfT1ZFUkxBUC52YWx1ZSx2YWxpZGF0
b3I6SS5QUkVWRU5UX09WRVJMQVAudmFsaWRhdG9yLHN1cGVyY2VkZXM6SS5QUkVW
RU5UX09WRVJMQVAuc3VwZXJjZWRlc30pO3RoaXMuY2ZnLmFkZFByb3BlcnR5KEku
U0hPV19ERUxBWS5rZXkse2hhbmRsZXI6dGhpcy5jb25maWdTaG93RGVsYXksdmFs
dWU6MjAwLHZhbGlkYXRvcjpJLlNIT1dfREVMQVkudmFsaWRhdG9yfSk7dGhpcy5j
ZmcuYWRkUHJvcGVydHkoSS5BVVRPX0RJU01JU1NfREVMQVkua2V5LHtoYW5kbGVy
OnRoaXMuY29uZmlnQXV0b0Rpc21pc3NEZWxheSx2YWx1ZTpJLkFVVE9fRElTTUlT
U19ERUxBWS52YWx1ZSx2YWxpZGF0b3I6SS5BVVRPX0RJU01JU1NfREVMQVkudmFs
aWRhdG9yfSk7dGhpcy5jZmcuYWRkUHJvcGVydHkoSS5ISURFX0RFTEFZLmtleSx7
aGFuZGxlcjp0aGlzLmNvbmZpZ0hpZGVEZWxheSx2YWx1ZTpJLkhJREVfREVMQVku
dmFsdWUsdmFsaWRhdG9yOkkuSElERV9ERUxBWS52YWxpZGF0b3J9KTt0aGlzLmNm
Zy5hZGRQcm9wZXJ0eShJLlRFWFQua2V5LHtoYW5kbGVyOnRoaXMuY29uZmlnVGV4
dCxzdXBwcmVzc0V2ZW50OkkuVEVYVC5zdXBwcmVzc0V2ZW50fSk7dGhpcy5jZmcu
YWRkUHJvcGVydHkoSS5DT05UQUlORVIua2V5LHtoYW5kbGVyOnRoaXMuY29uZmln
Q29udGFpbmVyLHZhbHVlOmRvY3VtZW50LmJvZHl9KTt0aGlzLmNmZy5hZGRQcm9w
ZXJ0eShJLkRJU0FCTEVELmtleSx7aGFuZGxlcjp0aGlzLmNvbmZpZ0NvbnRhaW5l
cix2YWx1ZTpJLkRJU0FCTEVELnZhbHVlLHN1cHJlc3NFdmVudDpJLkRJU0FCTEVE
LnN1cHByZXNzRXZlbnR9KTt9LGNvbmZpZ1RleHQ6ZnVuY3Rpb24oUCxPLFEpe3Zh
ciBSPU9bMF07aWYoUil7dGhpcy5zZXRCb2R5KFIpO319LGNvbmZpZ0NvbnRhaW5l
cjpmdW5jdGlvbihRLFAsUil7dmFyIE89UFswXTtpZih0eXBlb2YgTz09InN0cmlu
ZyIpe3RoaXMuY2ZnLnNldFByb3BlcnR5KCJjb250YWluZXIiLGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKE8pLHRydWUpO319LF9yZW1vdmVFdmVudExpc3RlbmVyczpm
dW5jdGlvbigpe3ZhciBSPXRoaXMuX2NvbnRleHQsTyxRLFA7aWYoUil7Tz1SLmxl
bmd0aDtpZihPPjApe1A9Ty0xO2Rve1E9UltQXTtOLnJlbW92ZUxpc3RlbmVyKFEs
Im1vdXNlb3ZlciIsdGhpcy5vbkNvbnRleHRNb3VzZU92ZXIpO04ucmVtb3ZlTGlz
dGVuZXIoUSwibW91c2Vtb3ZlIix0aGlzLm9uQ29udGV4dE1vdXNlTW92ZSk7Ti5y
ZW1vdmVMaXN0ZW5lcihRLCJtb3VzZW91dCIsdGhpcy5vbkNvbnRleHRNb3VzZU91
dCk7fXdoaWxlKFAtLSk7fX19LGNvbmZpZ0NvbnRleHQ6ZnVuY3Rpb24oVCxQLFUp
e3ZhciBTPVBbMF0sVixPLFIsUTtpZihTKXtpZighKFMgaW5zdGFuY2VvZiBBcnJh
eSkpe2lmKHR5cGVvZiBTPT0ic3RyaW5nIil7dGhpcy5jZmcuc2V0UHJvcGVydHko
ImNvbnRleHQiLFtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChTKV0sdHJ1ZSk7fWVs
c2V7dGhpcy5jZmcuc2V0UHJvcGVydHkoImNvbnRleHQiLFtTXSx0cnVlKTt9Uz10
aGlzLmNmZy5nZXRQcm9wZXJ0eSgiY29udGV4dCIpO310aGlzLl9yZW1vdmVFdmVu
dExpc3RlbmVycygpO3RoaXMuX2NvbnRleHQ9UztWPXRoaXMuX2NvbnRleHQ7aWYo
Vil7Tz1WLmxlbmd0aDtpZihPPjApe1E9Ty0xO2Rve1I9VltRXTtOLm9uKFIsIm1v
dXNlb3ZlciIsdGhpcy5vbkNvbnRleHRNb3VzZU92ZXIsdGhpcyk7Ti5vbihSLCJt
b3VzZW1vdmUiLHRoaXMub25Db250ZXh0TW91c2VNb3ZlLHRoaXMpO04ub24oUiwi
bW91c2VvdXQiLHRoaXMub25Db250ZXh0TW91c2VPdXQsdGhpcyk7fXdoaWxlKFEt
LSk7fX19fSxvbkNvbnRleHRNb3VzZU1vdmU6ZnVuY3Rpb24oUCxPKXtPLnBhZ2VY
PU4uZ2V0UGFnZVgoUCk7Ty5wYWdlWT1OLmdldFBhZ2VZKFApO30sb25Db250ZXh0
TW91c2VPdmVyOmZ1bmN0aW9uKFEsUCl7dmFyIE89dGhpcztpZihPLnRpdGxlKXtQ
Ll90ZW1wVGl0bGU9Ty50aXRsZTtPLnRpdGxlPSIiO31pZihQLmZpcmVFdmVudCgi
Y29udGV4dE1vdXNlT3ZlciIsTyxRKSE9PWZhbHNlJiYhUC5jZmcuZ2V0UHJvcGVy
dHkoImRpc2FibGVkIikpe2lmKFAuaGlkZVByb2NJZCl7Y2xlYXJUaW1lb3V0KFAu
aGlkZVByb2NJZCk7UC5oaWRlUHJvY0lkPW51bGw7fU4ub24oTywibW91c2Vtb3Zl
IixQLm9uQ29udGV4dE1vdXNlTW92ZSxQKTtQLnNob3dQcm9jSWQ9UC5kb1Nob3co
USxPKTt9fSxvbkNvbnRleHRNb3VzZU91dDpmdW5jdGlvbihRLFApe3ZhciBPPXRo
aXM7aWYoUC5fdGVtcFRpdGxlKXtPLnRpdGxlPVAuX3RlbXBUaXRsZTtQLl90ZW1w
VGl0bGU9bnVsbDt9aWYoUC5zaG93UHJvY0lkKXtjbGVhclRpbWVvdXQoUC5zaG93
UHJvY0lkKTtQLnNob3dQcm9jSWQ9bnVsbDt9aWYoUC5oaWRlUHJvY0lkKXtjbGVh
clRpbWVvdXQoUC5oaWRlUHJvY0lkKTtQLmhpZGVQcm9jSWQ9bnVsbDt9UC5maXJl
RXZlbnQoImNvbnRleHRNb3VzZU91dCIsTyxRKTtQLmhpZGVQcm9jSWQ9c2V0VGlt
ZW91dChmdW5jdGlvbigpe1AuaGlkZSgpO30sUC5jZmcuZ2V0UHJvcGVydHkoImhp
ZGVkZWxheSIpKTt9LGRvU2hvdzpmdW5jdGlvbihRLE8pe3ZhciBSPTI1LFA9dGhp
czsKaWYoSC5vcGVyYSYmTy50YWdOYW1lJiZPLnRhZ05hbWUudG9VcHBlckNhc2Uo
KT09IkEiKXtSKz0xMjt9cmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIg
Uz1QLmNmZy5nZXRQcm9wZXJ0eSgidGV4dCIpO2lmKFAuX3RlbXBUaXRsZSYmKFM9
PT0iInx8WUFIT08ubGFuZy5pc1VuZGVmaW5lZChTKXx8WUFIT08ubGFuZy5pc051
bGwoUykpKXtQLnNldEJvZHkoUC5fdGVtcFRpdGxlKTt9ZWxzZXtQLmNmZy5yZWZp
cmVFdmVudCgidGV4dCIpO31QLm1vdmVUbyhQLnBhZ2VYLFAucGFnZVkrUik7aWYo
UC5jZmcuZ2V0UHJvcGVydHkoInByZXZlbnRvdmVybGFwIikpe1AucHJldmVudE92
ZXJsYXAoUC5wYWdlWCxQLnBhZ2VZKTt9Ti5yZW1vdmVMaXN0ZW5lcihPLCJtb3Vz
ZW1vdmUiLFAub25Db250ZXh0TW91c2VNb3ZlKTtQLmNvbnRleHRUcmlnZ2VyRXZl
bnQuZmlyZShPKTtQLnNob3coKTtQLmhpZGVQcm9jSWQ9UC5kb0hpZGUoKTt9LHRo
aXMuY2ZnLmdldFByb3BlcnR5KCJzaG93ZGVsYXkiKSk7fSxkb0hpZGU6ZnVuY3Rp
b24oKXt2YXIgTz10aGlzO3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Ty5o
aWRlKCk7fSx0aGlzLmNmZy5nZXRQcm9wZXJ0eSgiYXV0b2Rpc21pc3NkZWxheSIp
KTt9LHByZXZlbnRPdmVybGFwOmZ1bmN0aW9uKFMsUil7dmFyIE89dGhpcy5lbGVt
ZW50Lm9mZnNldEhlaWdodCxRPW5ldyBZQUhPTy51dGlsLlBvaW50KFMsUiksUD1D
LmdldFJlZ2lvbih0aGlzLmVsZW1lbnQpO1AudG9wLT01O1AubGVmdC09NTtQLnJp
Z2h0Kz01O1AuYm90dG9tKz01O2lmKFAuY29udGFpbnMoUSkpe3RoaXMuY2ZnLnNl
dFByb3BlcnR5KCJ5IiwoUi1PLTUpKTt9fSxvblJlbmRlcjpmdW5jdGlvbihTLFIp
e2Z1bmN0aW9uIFQoKXt2YXIgVz10aGlzLmVsZW1lbnQsVj10aGlzLnVuZGVybGF5
O2lmKFYpe1Yuc3R5bGUud2lkdGg9KFcub2Zmc2V0V2lkdGgrNikrInB4IjtWLnN0
eWxlLmhlaWdodD0oVy5vZmZzZXRIZWlnaHQrMSkrInB4Ijt9fWZ1bmN0aW9uIFAo
KXtDLmFkZENsYXNzKHRoaXMudW5kZXJsYXksInl1aS10dC1zaGFkb3ctdmlzaWJs
ZSIpO2lmKEguaWUpe3RoaXMuZm9yY2VVbmRlcmxheVJlZHJhdygpO319ZnVuY3Rp
b24gTygpe0MucmVtb3ZlQ2xhc3ModGhpcy51bmRlcmxheSwieXVpLXR0LXNoYWRv
dy12aXNpYmxlIik7fWZ1bmN0aW9uIFUoKXt2YXIgWD10aGlzLnVuZGVybGF5LFcs
VixaLFk7aWYoIVgpe1c9dGhpcy5lbGVtZW50O1Y9WUFIT08ud2lkZ2V0Lk1vZHVs
ZTtaPUguaWU7WT10aGlzO2lmKCFGKXtGPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpO0YuY2xhc3NOYW1lPSJ5dWktdHQtc2hhZG93Ijt9WD1GLmNsb25lTm9k
ZShmYWxzZSk7Vy5hcHBlbmRDaGlsZChYKTt0aGlzLnVuZGVybGF5PVg7dGhpcy5f
c2hhZG93PXRoaXMudW5kZXJsYXk7UC5jYWxsKHRoaXMpO3RoaXMuc3Vic2NyaWJl
KCJiZWZvcmVTaG93IixQKTt0aGlzLnN1YnNjcmliZSgiaGlkZSIsTyk7aWYoRyl7
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtULmNhbGwoWSk7fSwwKTt0aGlz
LmNmZy5zdWJzY3JpYmVUb0NvbmZpZ0V2ZW50KCJ3aWR0aCIsVCk7dGhpcy5jZmcu
c3Vic2NyaWJlVG9Db25maWdFdmVudCgiaGVpZ2h0IixUKTt0aGlzLnN1YnNjcmli
ZSgiY2hhbmdlQ29udGVudCIsVCk7Vi50ZXh0UmVzaXplRXZlbnQuc3Vic2NyaWJl
KFQsdGhpcyx0cnVlKTt0aGlzLnN1YnNjcmliZSgiZGVzdHJveSIsZnVuY3Rpb24o
KXtWLnRleHRSZXNpemVFdmVudC51bnN1YnNjcmliZShULHRoaXMpO30pO319fWZ1
bmN0aW9uIFEoKXtVLmNhbGwodGhpcyk7dGhpcy51bnN1YnNjcmliZSgiYmVmb3Jl
U2hvdyIsUSk7fWlmKHRoaXMuY2ZnLmdldFByb3BlcnR5KCJ2aXNpYmxlIikpe1Uu
Y2FsbCh0aGlzKTt9ZWxzZXt0aGlzLnN1YnNjcmliZSgiYmVmb3JlU2hvdyIsUSk7
fX0sZm9yY2VVbmRlcmxheVJlZHJhdzpmdW5jdGlvbigpe3ZhciBPPXRoaXM7Qy5h
ZGRDbGFzcyhPLnVuZGVybGF5LCJ5dWktZm9yY2UtcmVkcmF3Iik7c2V0VGltZW91
dChmdW5jdGlvbigpe0MucmVtb3ZlQ2xhc3MoTy51bmRlcmxheSwieXVpLWZvcmNl
LXJlZHJhdyIpO30sMCk7fSxkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fcmVtb3Zl
RXZlbnRMaXN0ZW5lcnMoKTtKLnN1cGVyY2xhc3MuZGVzdHJveS5jYWxsKHRoaXMp
O30sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iVG9vbHRpcCAiK3RoaXMuaWQ7
fX0pO30oKSk7KGZ1bmN0aW9uKCl7WUFIT08ud2lkZ2V0LlBhbmVsPWZ1bmN0aW9u
KFYsVSl7WUFIT08ud2lkZ2V0LlBhbmVsLnN1cGVyY2xhc3MuY29uc3RydWN0b3Iu
Y2FsbCh0aGlzLFYsVSk7fTt2YXIgUz1udWxsO3ZhciBFPVlBSE9PLmxhbmcsRj1Z
QUhPTy51dGlsLEE9Ri5Eb20sVD1GLkV2ZW50LE09Ri5DdXN0b21FdmVudCxLPVlB
SE9PLnV0aWwuS2V5TGlzdGVuZXIsST1GLkNvbmZpZyxIPVlBSE9PLndpZGdldC5P
dmVybGF5LE89WUFIT08ud2lkZ2V0LlBhbmVsLEw9WUFIT08uZW52LnVhLFA9KEwu
aWUmJihMLmllPD02fHxkb2N1bWVudC5jb21wYXRNb2RlPT0iQmFja0NvbXBhdCIp
KSxHLFEsQyxEPXsiU0hPV19NQVNLIjoic2hvd01hc2siLCJISURFX01BU0siOiJo
aWRlTWFzayIsIkRSQUciOiJkcmFnIn0sTj17IkNMT1NFIjp7a2V5OiJjbG9zZSIs
dmFsdWU6dHJ1ZSx2YWxpZGF0b3I6RS5pc0Jvb2xlYW4sc3VwZXJjZWRlczpbInZp
c2libGUiXX0sIkRSQUdHQUJMRSI6e2tleToiZHJhZ2dhYmxlIix2YWx1ZTooRi5E
RD90cnVlOmZhbHNlKSx2YWxpZGF0b3I6RS5pc0Jvb2xlYW4sc3VwZXJjZWRlczpb
InZpc2libGUiXX0sIkRSQUdfT05MWSI6e2tleToiZHJhZ29ubHkiLHZhbHVlOmZh
bHNlLHZhbGlkYXRvcjpFLmlzQm9vbGVhbixzdXBlcmNlZGVzOlsiZHJhZ2dhYmxl
Il19LCJVTkRFUkxBWSI6e2tleToidW5kZXJsYXkiLHZhbHVlOiJzaGFkb3ciLHN1
cGVyY2VkZXM6WyJ2aXNpYmxlIl19LCJNT0RBTCI6e2tleToibW9kYWwiLHZhbHVl
OmZhbHNlLHZhbGlkYXRvcjpFLmlzQm9vbGVhbixzdXBlcmNlZGVzOlsidmlzaWJs
ZSIsInppbmRleCJdfSwiS0VZX0xJU1RFTkVSUyI6e2tleToia2V5bGlzdGVuZXJz
IixzdXBwcmVzc0V2ZW50OnRydWUsc3VwZXJjZWRlczpbInZpc2libGUiXX0sIlNU
UklOR1MiOntrZXk6InN0cmluZ3MiLHN1cGVyY2VkZXM6WyJjbG9zZSJdLHZhbGlk
YXRvcjpFLmlzT2JqZWN0LHZhbHVlOntjbG9zZToiQ2xvc2UifX19O08uQ1NTX1BB
TkVMPSJ5dWktcGFuZWwiO08uQ1NTX1BBTkVMX0NPTlRBSU5FUj0ieXVpLXBhbmVs
LWNvbnRhaW5lciI7Ty5GT0NVU0FCTEU9WyJhIiwiYnV0dG9uIiwic2VsZWN0Iiwi
dGV4dGFyZWEiLCJpbnB1dCIsImlmcmFtZSJdO2Z1bmN0aW9uIEooVixVKXtpZigh
dGhpcy5oZWFkZXImJnRoaXMuY2ZnLmdldFByb3BlcnR5KCJkcmFnZ2FibGUiKSl7
dGhpcy5zZXRIZWFkZXIoIiYjMTYwOyIpO319ZnVuY3Rpb24gUihWLFUsVyl7dmFy
IFo9V1swXSxYPVdbMV0sWT10aGlzLmNmZyxhPVkuZ2V0UHJvcGVydHkoIndpZHRo
Iik7aWYoYT09WCl7WS5zZXRQcm9wZXJ0eSgid2lkdGgiLFopO310aGlzLnVuc3Vi
c2NyaWJlKCJoaWRlIixSLFcpO31mdW5jdGlvbiBCKFYsVSl7dmFyIFksWCxXO2lm
KFApe1k9dGhpcy5jZmc7WD1ZLmdldFByb3BlcnR5KCJ3aWR0aCIpO2lmKCFYfHxY
PT0iYXV0byIpe1c9KHRoaXMuZWxlbWVudC5vZmZzZXRXaWR0aCsicHgiKTtZLnNl
dFByb3BlcnR5KCJ3aWR0aCIsVyk7dGhpcy5zdWJzY3JpYmUoImhpZGUiLFIsWyhY
fHwiIiksV10pO319fVlBSE9PLmV4dGVuZChPLEgse2luaXQ6ZnVuY3Rpb24oVixV
KXtPLnN1cGVyY2xhc3MuaW5pdC5jYWxsKHRoaXMsVik7dGhpcy5iZWZvcmVJbml0
RXZlbnQuZmlyZShPKTtBLmFkZENsYXNzKHRoaXMuZWxlbWVudCxPLkNTU19QQU5F
TCk7dGhpcy5idWlsZFdyYXBwZXIoKTtpZihVKXt0aGlzLmNmZy5hcHBseUNvbmZp
ZyhVLHRydWUpO310aGlzLnN1YnNjcmliZSgic2hvd01hc2siLHRoaXMuX2FkZEZv
Y3VzSGFuZGxlcnMpO3RoaXMuc3Vic2NyaWJlKCJoaWRlTWFzayIsdGhpcy5fcmVt
b3ZlRm9jdXNIYW5kbGVycyk7dGhpcy5zdWJzY3JpYmUoImJlZm9yZVJlbmRlciIs
Sik7dGhpcy5zdWJzY3JpYmUoInJlbmRlciIsZnVuY3Rpb24oKXt0aGlzLnNldEZp
cnN0TGFzdEZvY3VzYWJsZSgpO3RoaXMuc3Vic2NyaWJlKCJjaGFuZ2VDb250ZW50
Iix0aGlzLnNldEZpcnN0TGFzdEZvY3VzYWJsZSk7fSk7dGhpcy5zdWJzY3JpYmUo
InNob3ciLHRoaXMuZm9jdXNGaXJzdCk7dGhpcy5pbml0RXZlbnQuZmlyZShPKTt9
LF9vbkVsZW1lbnRGb2N1czpmdW5jdGlvbihaKXtpZihTPT09dGhpcyl7dmFyIFk9
VC5nZXRUYXJnZXQoWiksWD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsVj0oWSE9
PVgmJlkhPT13aW5kb3cpO2lmKFYmJlkhPT10aGlzLmVsZW1lbnQmJlkhPT10aGlz
Lm1hc2smJiFBLmlzQW5jZXN0b3IodGhpcy5lbGVtZW50LFkpKXt0cnl7aWYodGhp
cy5maXJzdEVsZW1lbnQpe3RoaXMuZmlyc3RFbGVtZW50LmZvY3VzKCk7fWVsc2V7
aWYodGhpcy5fbW9kYWxGb2N1cyl7dGhpcy5fbW9kYWxGb2N1cy5mb2N1cygpO31l
bHNle3RoaXMuaW5uZXJFbGVtZW50LmZvY3VzKCk7fX19Y2F0Y2goVyl7dHJ5e2lm
KFYmJlkhPT1kb2N1bWVudC5ib2R5KXtZLmJsdXIoKTt9fWNhdGNoKFUpe319fX19
LF9hZGRGb2N1c0hhbmRsZXJzOmZ1bmN0aW9uKFYsVSl7aWYoIXRoaXMuZmlyc3RF
bGVtZW50KXtpZihMLndlYmtpdHx8TC5vcGVyYSl7aWYoIXRoaXMuX21vZGFsRm9j
dXMpe3RoaXMuX2NyZWF0ZUhpZGRlbkZvY3VzRWxlbWVudCgpO319ZWxzZXt0aGlz
LmlubmVyRWxlbWVudC50YWJJbmRleD0wO319dGhpcy5zZXRUYWJMb29wKHRoaXMu
Zmlyc3RFbGVtZW50LHRoaXMubGFzdEVsZW1lbnQpO1Qub25Gb2N1cyhkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQsdGhpcy5fb25FbGVtZW50Rm9jdXMsdGhpcyx0cnVl
KTtTPXRoaXM7fSxfY3JlYXRlSGlkZGVuRm9jdXNFbGVtZW50OmZ1bmN0aW9uKCl7
dmFyIFU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7VS5zdHlsZS5o
ZWlnaHQ9IjFweCI7VS5zdHlsZS53aWR0aD0iMXB4IjtVLnN0eWxlLnBvc2l0aW9u
PSJhYnNvbHV0ZSI7VS5zdHlsZS5sZWZ0PSItMTAwMDBlbSI7VS5zdHlsZS5vcGFj
aXR5PTA7VS50YWJJbmRleD0tMTt0aGlzLmlubmVyRWxlbWVudC5hcHBlbmRDaGls
ZChVKTt0aGlzLl9tb2RhbEZvY3VzPVU7fSxfcmVtb3ZlRm9jdXNIYW5kbGVyczpm
dW5jdGlvbihWLFUpe1QucmVtb3ZlRm9jdXNMaXN0ZW5lcihkb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQsdGhpcy5fb25FbGVtZW50Rm9jdXMsdGhpcyk7aWYoUz09dGhp
cyl7Uz1udWxsO319LGZvY3VzRmlyc3Q6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPXRo
aXMuZmlyc3RFbGVtZW50O2lmKFUmJlVbMV0pe1Quc3RvcEV2ZW50KFVbMV0pO31p
ZihWKXt0cnl7Vi5mb2N1cygpO31jYXRjaChYKXt9fX0sZm9jdXNMYXN0OmZ1bmN0
aW9uKFcsVSxZKXt2YXIgVj10aGlzLmxhc3RFbGVtZW50O2lmKFUmJlVbMV0pe1Qu
c3RvcEV2ZW50KFVbMV0pO31pZihWKXt0cnl7Vi5mb2N1cygpO31jYXRjaChYKXt9
fX0sc2V0VGFiTG9vcDpmdW5jdGlvbihYLFope3ZhciBWPXRoaXMucHJldmVudEJh
Y2tUYWIsVz10aGlzLnByZXZlbnRUYWJPdXQsVT10aGlzLnNob3dFdmVudCxZPXRo
aXMuaGlkZUV2ZW50O2lmKFYpe1YuZGlzYWJsZSgpO1UudW5zdWJzY3JpYmUoVi5l
bmFibGUsVik7WS51bnN1YnNjcmliZShWLmRpc2FibGUsVik7Vj10aGlzLnByZXZl
bnRCYWNrVGFiPW51bGw7fWlmKFcpe1cuZGlzYWJsZSgpO1UudW5zdWJzY3JpYmUo
Vy5lbmFibGUsVyk7WS51bnN1YnNjcmliZShXLmRpc2FibGUsVyk7Vz10aGlzLnBy
ZXZlbnRUYWJPdXQ9bnVsbDt9aWYoWCl7dGhpcy5wcmV2ZW50QmFja1RhYj1uZXcg
SyhYLHtzaGlmdDp0cnVlLGtleXM6OX0se2ZuOnRoaXMuZm9jdXNMYXN0LHNjb3Bl
OnRoaXMsY29ycmVjdFNjb3BlOnRydWV9KTtWPXRoaXMucHJldmVudEJhY2tUYWI7
VS5zdWJzY3JpYmUoVi5lbmFibGUsVix0cnVlKTsKWS5zdWJzY3JpYmUoVi5kaXNh
YmxlLFYsdHJ1ZSk7fWlmKFope3RoaXMucHJldmVudFRhYk91dD1uZXcgSyhaLHtz
aGlmdDpmYWxzZSxrZXlzOjl9LHtmbjp0aGlzLmZvY3VzRmlyc3Qsc2NvcGU6dGhp
cyxjb3JyZWN0U2NvcGU6dHJ1ZX0pO1c9dGhpcy5wcmV2ZW50VGFiT3V0O1Uuc3Vi
c2NyaWJlKFcuZW5hYmxlLFcsdHJ1ZSk7WS5zdWJzY3JpYmUoVy5kaXNhYmxlLFcs
dHJ1ZSk7fX0sZ2V0Rm9jdXNhYmxlRWxlbWVudHM6ZnVuY3Rpb24oVSl7VT1VfHx0
aGlzLmlubmVyRWxlbWVudDt2YXIgWD17fTtmb3IodmFyIFc9MDtXPE8uRk9DVVNB
QkxFLmxlbmd0aDtXKyspe1hbTy5GT0NVU0FCTEVbV11dPXRydWU7fWZ1bmN0aW9u
IFYoWSl7aWYoWS5mb2N1cyYmWS50eXBlIT09ImhpZGRlbiImJiFZLmRpc2FibGVk
JiZYW1kudGFnTmFtZS50b0xvd2VyQ2FzZSgpXSl7cmV0dXJuIHRydWU7fXJldHVy
biBmYWxzZTt9cmV0dXJuIEEuZ2V0RWxlbWVudHNCeShWLG51bGwsVSk7fSxzZXRG
aXJzdExhc3RGb2N1c2FibGU6ZnVuY3Rpb24oKXt0aGlzLmZpcnN0RWxlbWVudD1u
dWxsO3RoaXMubGFzdEVsZW1lbnQ9bnVsbDt2YXIgVT10aGlzLmdldEZvY3VzYWJs
ZUVsZW1lbnRzKCk7dGhpcy5mb2N1c2FibGVFbGVtZW50cz1VO2lmKFUubGVuZ3Ro
PjApe3RoaXMuZmlyc3RFbGVtZW50PVVbMF07dGhpcy5sYXN0RWxlbWVudD1VW1Uu
bGVuZ3RoLTFdO31pZih0aGlzLmNmZy5nZXRQcm9wZXJ0eSgibW9kYWwiKSl7dGhp
cy5zZXRUYWJMb29wKHRoaXMuZmlyc3RFbGVtZW50LHRoaXMubGFzdEVsZW1lbnQp
O319LGluaXRFdmVudHM6ZnVuY3Rpb24oKXtPLnN1cGVyY2xhc3MuaW5pdEV2ZW50
cy5jYWxsKHRoaXMpO3ZhciBVPU0uTElTVDt0aGlzLnNob3dNYXNrRXZlbnQ9dGhp
cy5jcmVhdGVFdmVudChELlNIT1dfTUFTSyk7dGhpcy5zaG93TWFza0V2ZW50LnNp
Z25hdHVyZT1VO3RoaXMuaGlkZU1hc2tFdmVudD10aGlzLmNyZWF0ZUV2ZW50KEQu
SElERV9NQVNLKTt0aGlzLmhpZGVNYXNrRXZlbnQuc2lnbmF0dXJlPVU7dGhpcy5k
cmFnRXZlbnQ9dGhpcy5jcmVhdGVFdmVudChELkRSQUcpO3RoaXMuZHJhZ0V2ZW50
LnNpZ25hdHVyZT1VO30saW5pdERlZmF1bHRDb25maWc6ZnVuY3Rpb24oKXtPLnN1
cGVyY2xhc3MuaW5pdERlZmF1bHRDb25maWcuY2FsbCh0aGlzKTt0aGlzLmNmZy5h
ZGRQcm9wZXJ0eShOLkNMT1NFLmtleSx7aGFuZGxlcjp0aGlzLmNvbmZpZ0Nsb3Nl
LHZhbHVlOk4uQ0xPU0UudmFsdWUsdmFsaWRhdG9yOk4uQ0xPU0UudmFsaWRhdG9y
LHN1cGVyY2VkZXM6Ti5DTE9TRS5zdXBlcmNlZGVzfSk7dGhpcy5jZmcuYWRkUHJv
cGVydHkoTi5EUkFHR0FCTEUua2V5LHtoYW5kbGVyOnRoaXMuY29uZmlnRHJhZ2dh
YmxlLHZhbHVlOihGLkREKT90cnVlOmZhbHNlLHZhbGlkYXRvcjpOLkRSQUdHQUJM
RS52YWxpZGF0b3Isc3VwZXJjZWRlczpOLkRSQUdHQUJMRS5zdXBlcmNlZGVzfSk7
dGhpcy5jZmcuYWRkUHJvcGVydHkoTi5EUkFHX09OTFkua2V5LHt2YWx1ZTpOLkRS
QUdfT05MWS52YWx1ZSx2YWxpZGF0b3I6Ti5EUkFHX09OTFkudmFsaWRhdG9yLHN1
cGVyY2VkZXM6Ti5EUkFHX09OTFkuc3VwZXJjZWRlc30pO3RoaXMuY2ZnLmFkZFBy
b3BlcnR5KE4uVU5ERVJMQVkua2V5LHtoYW5kbGVyOnRoaXMuY29uZmlnVW5kZXJs
YXksdmFsdWU6Ti5VTkRFUkxBWS52YWx1ZSxzdXBlcmNlZGVzOk4uVU5ERVJMQVku
c3VwZXJjZWRlc30pO3RoaXMuY2ZnLmFkZFByb3BlcnR5KE4uTU9EQUwua2V5LHto
YW5kbGVyOnRoaXMuY29uZmlnTW9kYWwsdmFsdWU6Ti5NT0RBTC52YWx1ZSx2YWxp
ZGF0b3I6Ti5NT0RBTC52YWxpZGF0b3Isc3VwZXJjZWRlczpOLk1PREFMLnN1cGVy
Y2VkZXN9KTt0aGlzLmNmZy5hZGRQcm9wZXJ0eShOLktFWV9MSVNURU5FUlMua2V5
LHtoYW5kbGVyOnRoaXMuY29uZmlnS2V5TGlzdGVuZXJzLHN1cHByZXNzRXZlbnQ6
Ti5LRVlfTElTVEVORVJTLnN1cHByZXNzRXZlbnQsc3VwZXJjZWRlczpOLktFWV9M
SVNURU5FUlMuc3VwZXJjZWRlc30pO3RoaXMuY2ZnLmFkZFByb3BlcnR5KE4uU1RS
SU5HUy5rZXkse3ZhbHVlOk4uU1RSSU5HUy52YWx1ZSxoYW5kbGVyOnRoaXMuY29u
ZmlnU3RyaW5ncyx2YWxpZGF0b3I6Ti5TVFJJTkdTLnZhbGlkYXRvcixzdXBlcmNl
ZGVzOk4uU1RSSU5HUy5zdXBlcmNlZGVzfSk7fSxjb25maWdDbG9zZTpmdW5jdGlv
bihYLFYsWSl7dmFyIFo9VlswXSxXPXRoaXMuY2xvc2UsVT10aGlzLmNmZy5nZXRQ
cm9wZXJ0eSgic3RyaW5ncyIpO2lmKFope2lmKCFXKXtpZighQyl7Qz1kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJhIik7Qy5jbGFzc05hbWU9ImNvbnRhaW5lci1jbG9z
ZSI7Qy5ocmVmPSIjIjt9Vz1DLmNsb25lTm9kZSh0cnVlKTt0aGlzLmlubmVyRWxl
bWVudC5hcHBlbmRDaGlsZChXKTtXLmlubmVySFRNTD0oVSYmVS5jbG9zZSk/VS5j
bG9zZToiJiMxNjA7IjtULm9uKFcsImNsaWNrIix0aGlzLl9kb0Nsb3NlLHRoaXMs
dHJ1ZSk7dGhpcy5jbG9zZT1XO31lbHNle1cuc3R5bGUuZGlzcGxheT0iYmxvY2si
O319ZWxzZXtpZihXKXtXLnN0eWxlLmRpc3BsYXk9Im5vbmUiO319fSxfZG9DbG9z
ZTpmdW5jdGlvbihVKXtULnByZXZlbnREZWZhdWx0KFUpO3RoaXMuaGlkZSgpO30s
Y29uZmlnRHJhZ2dhYmxlOmZ1bmN0aW9uKFYsVSxXKXt2YXIgWD1VWzBdO2lmKFgp
e2lmKCFGLkREKXt0aGlzLmNmZy5zZXRQcm9wZXJ0eSgiZHJhZ2dhYmxlIixmYWxz
ZSk7cmV0dXJuO31pZih0aGlzLmhlYWRlcil7QS5zZXRTdHlsZSh0aGlzLmhlYWRl
ciwiY3Vyc29yIiwibW92ZSIpO3RoaXMucmVnaXN0ZXJEcmFnRHJvcCgpO310aGlz
LnN1YnNjcmliZSgiYmVmb3JlU2hvdyIsQik7fWVsc2V7aWYodGhpcy5kZCl7dGhp
cy5kZC51bnJlZygpO31pZih0aGlzLmhlYWRlcil7QS5zZXRTdHlsZSh0aGlzLmhl
YWRlciwiY3Vyc29yIiwiYXV0byIpO310aGlzLnVuc3Vic2NyaWJlKCJiZWZvcmVT
aG93IixCKTt9fSxjb25maWdVbmRlcmxheTpmdW5jdGlvbihkLGMsWil7dmFyIGI9
KHRoaXMucGxhdGZvcm09PSJtYWMiJiZMLmdlY2tvKSxlPWNbMF0udG9Mb3dlckNh
c2UoKSxWPXRoaXMudW5kZXJsYXksVz10aGlzLmVsZW1lbnQ7ZnVuY3Rpb24gWCgp
e3ZhciBmPWZhbHNlO2lmKCFWKXtpZighUSl7UT1kb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTtRLmNsYXNzTmFtZT0idW5kZXJsYXkiO31WPVEuY2xvbmVOb2Rl
KGZhbHNlKTt0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQoVik7dGhpcy51bmRlcmxh
eT1WO2lmKFApe3RoaXMuc2l6ZVVuZGVybGF5KCk7dGhpcy5jZmcuc3Vic2NyaWJl
VG9Db25maWdFdmVudCgid2lkdGgiLHRoaXMuc2l6ZVVuZGVybGF5KTt0aGlzLmNm
Zy5zdWJzY3JpYmVUb0NvbmZpZ0V2ZW50KCJoZWlnaHQiLHRoaXMuc2l6ZVVuZGVy
bGF5KTt0aGlzLmNoYW5nZUNvbnRlbnRFdmVudC5zdWJzY3JpYmUodGhpcy5zaXpl
VW5kZXJsYXkpO1lBSE9PLndpZGdldC5Nb2R1bGUudGV4dFJlc2l6ZUV2ZW50LnN1
YnNjcmliZSh0aGlzLnNpemVVbmRlcmxheSx0aGlzLHRydWUpO31pZihMLndlYmtp
dCYmTC53ZWJraXQ8NDIwKXt0aGlzLmNoYW5nZUNvbnRlbnRFdmVudC5zdWJzY3Jp
YmUodGhpcy5mb3JjZVVuZGVybGF5UmVkcmF3KTt9Zj10cnVlO319ZnVuY3Rpb24g
YSgpe3ZhciBmPVguY2FsbCh0aGlzKTtpZighZiYmUCl7dGhpcy5zaXplVW5kZXJs
YXkoKTt9dGhpcy5fdW5kZXJsYXlEZWZlcnJlZD1mYWxzZTt0aGlzLmJlZm9yZVNo
b3dFdmVudC51bnN1YnNjcmliZShhKTt9ZnVuY3Rpb24gWSgpe2lmKHRoaXMuX3Vu
ZGVybGF5RGVmZXJyZWQpe3RoaXMuYmVmb3JlU2hvd0V2ZW50LnVuc3Vic2NyaWJl
KGEpO3RoaXMuX3VuZGVybGF5RGVmZXJyZWQ9ZmFsc2U7fWlmKFYpe3RoaXMuY2Zn
LnVuc3Vic2NyaWJlRnJvbUNvbmZpZ0V2ZW50KCJ3aWR0aCIsdGhpcy5zaXplVW5k
ZXJsYXkpO3RoaXMuY2ZnLnVuc3Vic2NyaWJlRnJvbUNvbmZpZ0V2ZW50KCJoZWln
aHQiLHRoaXMuc2l6ZVVuZGVybGF5KTt0aGlzLmNoYW5nZUNvbnRlbnRFdmVudC51
bnN1YnNjcmliZSh0aGlzLnNpemVVbmRlcmxheSk7dGhpcy5jaGFuZ2VDb250ZW50
RXZlbnQudW5zdWJzY3JpYmUodGhpcy5mb3JjZVVuZGVybGF5UmVkcmF3KTtZQUhP
Ty53aWRnZXQuTW9kdWxlLnRleHRSZXNpemVFdmVudC51bnN1YnNjcmliZSh0aGlz
LnNpemVVbmRlcmxheSx0aGlzLHRydWUpO3RoaXMuZWxlbWVudC5yZW1vdmVDaGls
ZChWKTt0aGlzLnVuZGVybGF5PW51bGw7fX1zd2l0Y2goZSl7Y2FzZSJzaGFkb3ci
OkEucmVtb3ZlQ2xhc3MoVywibWF0dGUiKTtBLmFkZENsYXNzKFcsInNoYWRvdyIp
O2JyZWFrO2Nhc2UibWF0dGUiOmlmKCFiKXtZLmNhbGwodGhpcyk7fUEucmVtb3Zl
Q2xhc3MoVywic2hhZG93Iik7QS5hZGRDbGFzcyhXLCJtYXR0ZSIpO2JyZWFrO2Rl
ZmF1bHQ6aWYoIWIpe1kuY2FsbCh0aGlzKTt9QS5yZW1vdmVDbGFzcyhXLCJzaGFk
b3ciKTtBLnJlbW92ZUNsYXNzKFcsIm1hdHRlIik7YnJlYWs7fWlmKChlPT0ic2hh
ZG93Iil8fChiJiYhVikpe2lmKHRoaXMuY2ZnLmdldFByb3BlcnR5KCJ2aXNpYmxl
Iikpe3ZhciBVPVguY2FsbCh0aGlzKTtpZighVSYmUCl7dGhpcy5zaXplVW5kZXJs
YXkoKTt9fWVsc2V7aWYoIXRoaXMuX3VuZGVybGF5RGVmZXJyZWQpe3RoaXMuYmVm
b3JlU2hvd0V2ZW50LnN1YnNjcmliZShhKTt0aGlzLl91bmRlcmxheURlZmVycmVk
PXRydWU7fX19fSxjb25maWdNb2RhbDpmdW5jdGlvbihWLFUsWCl7dmFyIFc9VVsw
XTtpZihXKXtpZighdGhpcy5faGFzTW9kYWxpdHlFdmVudExpc3RlbmVycyl7dGhp
cy5zdWJzY3JpYmUoImJlZm9yZVNob3ciLHRoaXMuYnVpbGRNYXNrKTt0aGlzLnN1
YnNjcmliZSgiYmVmb3JlU2hvdyIsdGhpcy5icmluZ1RvVG9wKTt0aGlzLnN1YnNj
cmliZSgiYmVmb3JlU2hvdyIsdGhpcy5zaG93TWFzayk7dGhpcy5zdWJzY3JpYmUo
ImhpZGUiLHRoaXMuaGlkZU1hc2spO0gud2luZG93UmVzaXplRXZlbnQuc3Vic2Ny
aWJlKHRoaXMuc2l6ZU1hc2ssdGhpcyx0cnVlKTt0aGlzLl9oYXNNb2RhbGl0eUV2
ZW50TGlzdGVuZXJzPXRydWU7fX1lbHNle2lmKHRoaXMuX2hhc01vZGFsaXR5RXZl
bnRMaXN0ZW5lcnMpe2lmKHRoaXMuY2ZnLmdldFByb3BlcnR5KCJ2aXNpYmxlIikp
e3RoaXMuaGlkZU1hc2soKTt0aGlzLnJlbW92ZU1hc2soKTt9dGhpcy51bnN1YnNj
cmliZSgiYmVmb3JlU2hvdyIsdGhpcy5idWlsZE1hc2spO3RoaXMudW5zdWJzY3Jp
YmUoImJlZm9yZVNob3ciLHRoaXMuYnJpbmdUb1RvcCk7dGhpcy51bnN1YnNjcmli
ZSgiYmVmb3JlU2hvdyIsdGhpcy5zaG93TWFzayk7dGhpcy51bnN1YnNjcmliZSgi
aGlkZSIsdGhpcy5oaWRlTWFzayk7SC53aW5kb3dSZXNpemVFdmVudC51bnN1YnNj
cmliZSh0aGlzLnNpemVNYXNrLHRoaXMpO3RoaXMuX2hhc01vZGFsaXR5RXZlbnRM
aXN0ZW5lcnM9ZmFsc2U7fX19LHJlbW92ZU1hc2s6ZnVuY3Rpb24oKXt2YXIgVj10
aGlzLm1hc2ssVTtpZihWKXt0aGlzLmhpZGVNYXNrKCk7VT1WLnBhcmVudE5vZGU7
aWYoVSl7VS5yZW1vdmVDaGlsZChWKTt9dGhpcy5tYXNrPW51bGw7fX0sY29uZmln
S2V5TGlzdGVuZXJzOmZ1bmN0aW9uKFgsVSxhKXt2YXIgVz1VWzBdLFosWSxWO2lm
KFcpe2lmKFcgaW5zdGFuY2VvZiBBcnJheSl7WT1XLmxlbmd0aDtmb3IoVj0wO1Y8
WTtWKyspe1o9V1tWXTtpZighSS5hbHJlYWR5U3Vic2NyaWJlZCh0aGlzLnNob3dF
dmVudCxaLmVuYWJsZSxaKSl7dGhpcy5zaG93RXZlbnQuc3Vic2NyaWJlKFouZW5h
YmxlLFosdHJ1ZSk7fWlmKCFJLmFscmVhZHlTdWJzY3JpYmVkKHRoaXMuaGlkZUV2
ZW50LFouZGlzYWJsZSxaKSl7dGhpcy5oaWRlRXZlbnQuc3Vic2NyaWJlKFouZGlz
YWJsZSxaLHRydWUpO3RoaXMuZGVzdHJveUV2ZW50LnN1YnNjcmliZShaLmRpc2Fi
bGUsWix0cnVlKTt9fX1lbHNle2lmKCFJLmFscmVhZHlTdWJzY3JpYmVkKHRoaXMu
c2hvd0V2ZW50LFcuZW5hYmxlLFcpKXt0aGlzLnNob3dFdmVudC5zdWJzY3JpYmUo
Vy5lbmFibGUsVyx0cnVlKTt9aWYoIUkuYWxyZWFkeVN1YnNjcmliZWQodGhpcy5o
aWRlRXZlbnQsVy5kaXNhYmxlLFcpKXt0aGlzLmhpZGVFdmVudC5zdWJzY3JpYmUo
Vy5kaXNhYmxlLFcsdHJ1ZSk7CnRoaXMuZGVzdHJveUV2ZW50LnN1YnNjcmliZShX
LmRpc2FibGUsVyx0cnVlKTt9fX19LGNvbmZpZ1N0cmluZ3M6ZnVuY3Rpb24oVixV
LFcpe3ZhciBYPUUubWVyZ2UoTi5TVFJJTkdTLnZhbHVlLFVbMF0pO3RoaXMuY2Zn
LnNldFByb3BlcnR5KE4uU1RSSU5HUy5rZXksWCx0cnVlKTt9LGNvbmZpZ0hlaWdo
dDpmdW5jdGlvbihYLFYsWSl7dmFyIFU9VlswXSxXPXRoaXMuaW5uZXJFbGVtZW50
O0Euc2V0U3R5bGUoVywiaGVpZ2h0IixVKTt0aGlzLmNmZy5yZWZpcmVFdmVudCgi
aWZyYW1lIik7fSxfYXV0b0ZpbGxPbkhlaWdodENoYW5nZTpmdW5jdGlvbihYLFYs
Vyl7Ty5zdXBlcmNsYXNzLl9hdXRvRmlsbE9uSGVpZ2h0Q2hhbmdlLmFwcGx5KHRo
aXMsYXJndW1lbnRzKTtpZihQKXt2YXIgVT10aGlzO3NldFRpbWVvdXQoZnVuY3Rp
b24oKXtVLnNpemVVbmRlcmxheSgpO30sMCk7fX0sY29uZmlnV2lkdGg6ZnVuY3Rp
b24oWCxVLFkpe3ZhciBXPVVbMF0sVj10aGlzLmlubmVyRWxlbWVudDtBLnNldFN0
eWxlKFYsIndpZHRoIixXKTt0aGlzLmNmZy5yZWZpcmVFdmVudCgiaWZyYW1lIik7
fSxjb25maWd6SW5kZXg6ZnVuY3Rpb24oVixVLFgpe08uc3VwZXJjbGFzcy5jb25m
aWd6SW5kZXguY2FsbCh0aGlzLFYsVSxYKTtpZih0aGlzLm1hc2t8fHRoaXMuY2Zn
LmdldFByb3BlcnR5KCJtb2RhbCIpPT09dHJ1ZSl7dmFyIFc9QS5nZXRTdHlsZSh0
aGlzLmVsZW1lbnQsInpJbmRleCIpO2lmKCFXfHxpc05hTihXKSl7Vz0wO31pZihX
PT09MCl7dGhpcy5jZmcuc2V0UHJvcGVydHkoInpJbmRleCIsMSk7fWVsc2V7dGhp
cy5zdGFja01hc2soKTt9fX0sYnVpbGRXcmFwcGVyOmZ1bmN0aW9uKCl7dmFyIFc9
dGhpcy5lbGVtZW50LnBhcmVudE5vZGUsVT10aGlzLmVsZW1lbnQsVj1kb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTtWLmNsYXNzTmFtZT1PLkNTU19QQU5FTF9D
T05UQUlORVI7Vi5pZD1VLmlkKyJfYyI7aWYoVyl7Vy5pbnNlcnRCZWZvcmUoVixV
KTt9Vi5hcHBlbmRDaGlsZChVKTt0aGlzLmVsZW1lbnQ9Vjt0aGlzLmlubmVyRWxl
bWVudD1VO0Euc2V0U3R5bGUodGhpcy5pbm5lckVsZW1lbnQsInZpc2liaWxpdHki
LCJpbmhlcml0Iik7fSxzaXplVW5kZXJsYXk6ZnVuY3Rpb24oKXt2YXIgVj10aGlz
LnVuZGVybGF5LFU7aWYoVil7VT10aGlzLmVsZW1lbnQ7Vi5zdHlsZS53aWR0aD1V
Lm9mZnNldFdpZHRoKyJweCI7Vi5zdHlsZS5oZWlnaHQ9VS5vZmZzZXRIZWlnaHQr
InB4Ijt9fSxyZWdpc3RlckRyYWdEcm9wOmZ1bmN0aW9uKCl7dmFyIFY9dGhpcztp
Zih0aGlzLmhlYWRlcil7aWYoIUYuREQpe3JldHVybjt9dmFyIFU9KHRoaXMuY2Zn
LmdldFByb3BlcnR5KCJkcmFnb25seSIpPT09dHJ1ZSk7dGhpcy5kZD1uZXcgRi5E
RCh0aGlzLmVsZW1lbnQuaWQsdGhpcy5pZCx7ZHJhZ09ubHk6VX0pO2lmKCF0aGlz
LmhlYWRlci5pZCl7dGhpcy5oZWFkZXIuaWQ9dGhpcy5pZCsiX2giO310aGlzLmRk
LnN0YXJ0RHJhZz1mdW5jdGlvbigpe3ZhciBYLFosVyxjLGIsYTtpZihZQUhPTy5l
bnYudWEuaWU9PTYpe0EuYWRkQ2xhc3MoVi5lbGVtZW50LCJkcmFnIik7fWlmKFYu
Y2ZnLmdldFByb3BlcnR5KCJjb25zdHJhaW50b3ZpZXdwb3J0Iikpe3ZhciBZPUgu
VklFV1BPUlRfT0ZGU0VUO1g9Vi5lbGVtZW50Lm9mZnNldEhlaWdodDtaPVYuZWxl
bWVudC5vZmZzZXRXaWR0aDtXPUEuZ2V0Vmlld3BvcnRXaWR0aCgpO2M9QS5nZXRW
aWV3cG9ydEhlaWdodCgpO2I9QS5nZXREb2N1bWVudFNjcm9sbExlZnQoKTthPUEu
Z2V0RG9jdW1lbnRTY3JvbGxUb3AoKTtpZihYK1k8Yyl7dGhpcy5taW5ZPWErWTt0
aGlzLm1heFk9YStjLVgtWTt9ZWxzZXt0aGlzLm1pblk9YStZO3RoaXMubWF4WT1h
K1k7fWlmKForWTxXKXt0aGlzLm1pblg9YitZO3RoaXMubWF4WD1iK1ctWi1ZO31l
bHNle3RoaXMubWluWD1iK1k7dGhpcy5tYXhYPWIrWTt9dGhpcy5jb25zdHJhaW5Y
PXRydWU7dGhpcy5jb25zdHJhaW5ZPXRydWU7fWVsc2V7dGhpcy5jb25zdHJhaW5Y
PWZhbHNlO3RoaXMuY29uc3RyYWluWT1mYWxzZTt9Vi5kcmFnRXZlbnQuZmlyZSgi
c3RhcnREcmFnIixhcmd1bWVudHMpO307dGhpcy5kZC5vbkRyYWc9ZnVuY3Rpb24o
KXtWLnN5bmNQb3NpdGlvbigpO1YuY2ZnLnJlZmlyZUV2ZW50KCJpZnJhbWUiKTtp
Zih0aGlzLnBsYXRmb3JtPT0ibWFjIiYmWUFIT08uZW52LnVhLmdlY2tvKXt0aGlz
LnNob3dNYWNHZWNrb1Njcm9sbGJhcnMoKTt9Vi5kcmFnRXZlbnQuZmlyZSgib25E
cmFnIixhcmd1bWVudHMpO307dGhpcy5kZC5lbmREcmFnPWZ1bmN0aW9uKCl7aWYo
WUFIT08uZW52LnVhLmllPT02KXtBLnJlbW92ZUNsYXNzKFYuZWxlbWVudCwiZHJh
ZyIpO31WLmRyYWdFdmVudC5maXJlKCJlbmREcmFnIixhcmd1bWVudHMpO1YubW92
ZUV2ZW50LmZpcmUoVi5jZmcuZ2V0UHJvcGVydHkoInh5IikpO307dGhpcy5kZC5z
ZXRIYW5kbGVFbElkKHRoaXMuaGVhZGVyLmlkKTt0aGlzLmRkLmFkZEludmFsaWRI
YW5kbGVUeXBlKCJJTlBVVCIpO3RoaXMuZGQuYWRkSW52YWxpZEhhbmRsZVR5cGUo
IlNFTEVDVCIpO3RoaXMuZGQuYWRkSW52YWxpZEhhbmRsZVR5cGUoIlRFWFRBUkVB
Iik7fX0sYnVpbGRNYXNrOmZ1bmN0aW9uKCl7dmFyIFU9dGhpcy5tYXNrO2lmKCFV
KXtpZighRyl7Rz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtHLmNsYXNz
TmFtZT0ibWFzayI7Ry5pbm5lckhUTUw9IiYjMTYwOyI7fVU9Ry5jbG9uZU5vZGUo
dHJ1ZSk7VS5pZD10aGlzLmlkKyJfbWFzayI7ZG9jdW1lbnQuYm9keS5pbnNlcnRC
ZWZvcmUoVSxkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpO3RoaXMubWFzaz1VO2lm
KFlBSE9PLmVudi51YS5nZWNrbyYmdGhpcy5wbGF0Zm9ybT09Im1hYyIpe0EuYWRk
Q2xhc3ModGhpcy5tYXNrLCJibG9jay1zY3JvbGxiYXJzIik7fXRoaXMuc3RhY2tN
YXNrKCk7fX0saGlkZU1hc2s6ZnVuY3Rpb24oKXtpZih0aGlzLmNmZy5nZXRQcm9w
ZXJ0eSgibW9kYWwiKSYmdGhpcy5tYXNrKXt0aGlzLm1hc2suc3R5bGUuZGlzcGxh
eT0ibm9uZSI7QS5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCJtYXNrZWQiKTt0
aGlzLmhpZGVNYXNrRXZlbnQuZmlyZSgpO319LHNob3dNYXNrOmZ1bmN0aW9uKCl7
aWYodGhpcy5jZmcuZ2V0UHJvcGVydHkoIm1vZGFsIikmJnRoaXMubWFzayl7QS5h
ZGRDbGFzcyhkb2N1bWVudC5ib2R5LCJtYXNrZWQiKTt0aGlzLnNpemVNYXNrKCk7
dGhpcy5tYXNrLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjt0aGlzLnNob3dNYXNrRXZl
bnQuZmlyZSgpO319LHNpemVNYXNrOmZ1bmN0aW9uKCl7aWYodGhpcy5tYXNrKXt2
YXIgVj10aGlzLm1hc2ssVz1BLmdldFZpZXdwb3J0V2lkdGgoKSxVPUEuZ2V0Vmll
d3BvcnRIZWlnaHQoKTtpZihWLm9mZnNldEhlaWdodD5VKXtWLnN0eWxlLmhlaWdo
dD1VKyJweCI7fWlmKFYub2Zmc2V0V2lkdGg+Vyl7Vi5zdHlsZS53aWR0aD1XKyJw
eCI7fVYuc3R5bGUuaGVpZ2h0PUEuZ2V0RG9jdW1lbnRIZWlnaHQoKSsicHgiO1Yu
c3R5bGUud2lkdGg9QS5nZXREb2N1bWVudFdpZHRoKCkrInB4Ijt9fSxzdGFja01h
c2s6ZnVuY3Rpb24oKXtpZih0aGlzLm1hc2spe3ZhciBVPUEuZ2V0U3R5bGUodGhp
cy5lbGVtZW50LCJ6SW5kZXgiKTtpZighWUFIT08ubGFuZy5pc1VuZGVmaW5lZChV
KSYmIWlzTmFOKFUpKXtBLnNldFN0eWxlKHRoaXMubWFzaywiekluZGV4IixVLTEp
O319fSxyZW5kZXI6ZnVuY3Rpb24oVSl7cmV0dXJuIE8uc3VwZXJjbGFzcy5yZW5k
ZXIuY2FsbCh0aGlzLFUsdGhpcy5pbm5lckVsZW1lbnQpO30sZGVzdHJveTpmdW5j
dGlvbigpe0gud2luZG93UmVzaXplRXZlbnQudW5zdWJzY3JpYmUodGhpcy5zaXpl
TWFzayx0aGlzKTt0aGlzLnJlbW92ZU1hc2soKTtpZih0aGlzLmNsb3NlKXtULnB1
cmdlRWxlbWVudCh0aGlzLmNsb3NlKTt9Ty5zdXBlcmNsYXNzLmRlc3Ryb3kuY2Fs
bCh0aGlzKTt9LGZvcmNlVW5kZXJsYXlSZWRyYXc6ZnVuY3Rpb24oKXt2YXIgVT10
aGlzLnVuZGVybGF5O0EuYWRkQ2xhc3MoVSwieXVpLWZvcmNlLXJlZHJhdyIpO3Nl
dFRpbWVvdXQoZnVuY3Rpb24oKXtBLnJlbW92ZUNsYXNzKFUsInl1aS1mb3JjZS1y
ZWRyYXciKTt9LDApO30sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iUGFuZWwg
Iit0aGlzLmlkO319KTt9KCkpOyhmdW5jdGlvbigpe1lBSE9PLndpZGdldC5EaWFs
b2c9ZnVuY3Rpb24oSixJKXtZQUhPTy53aWRnZXQuRGlhbG9nLnN1cGVyY2xhc3Mu
Y29uc3RydWN0b3IuY2FsbCh0aGlzLEosSSk7fTt2YXIgQj1ZQUhPTy51dGlsLkV2
ZW50LEc9WUFIT08udXRpbC5DdXN0b21FdmVudCxFPVlBSE9PLnV0aWwuRG9tLEE9
WUFIT08ud2lkZ2V0LkRpYWxvZyxGPVlBSE9PLmxhbmcsSD17IkJFRk9SRV9TVUJN
SVQiOiJiZWZvcmVTdWJtaXQiLCJTVUJNSVQiOiJzdWJtaXQiLCJNQU5VQUxfU1VC
TUlUIjoibWFudWFsU3VibWl0IiwiQVNZTkNfU1VCTUlUIjoiYXN5bmNTdWJtaXQi
LCJGT1JNX1NVQk1JVCI6ImZvcm1TdWJtaXQiLCJDQU5DRUwiOiJjYW5jZWwifSxD
PXsiUE9TVF9NRVRIT0QiOntrZXk6InBvc3RtZXRob2QiLHZhbHVlOiJhc3luYyJ9
LCJQT1NUX0RBVEEiOntrZXk6InBvc3RkYXRhIix2YWx1ZTpudWxsfSwiQlVUVE9O
UyI6e2tleToiYnV0dG9ucyIsdmFsdWU6Im5vbmUiLHN1cGVyY2VkZXM6WyJ2aXNp
YmxlIl19LCJISURFQUZURVJTVUJNSVQiOntrZXk6ImhpZGVhZnRlcnN1Ym1pdCIs
dmFsdWU6dHJ1ZX19O0EuQ1NTX0RJQUxPRz0ieXVpLWRpYWxvZyI7ZnVuY3Rpb24g
RCgpe3ZhciBMPXRoaXMuX2FCdXR0b25zLEosSyxJO2lmKEYuaXNBcnJheShMKSl7
Sj1MLmxlbmd0aDtpZihKPjApe0k9Si0xO2Rve0s9TFtJXTtpZihZQUhPTy53aWRn
ZXQuQnV0dG9uJiZLIGluc3RhbmNlb2YgWUFIT08ud2lkZ2V0LkJ1dHRvbil7Sy5k
ZXN0cm95KCk7fWVsc2V7aWYoSy50YWdOYW1lLnRvVXBwZXJDYXNlKCk9PSJCVVRU
T04iKXtCLnB1cmdlRWxlbWVudChLKTtCLnB1cmdlRWxlbWVudChLLGZhbHNlKTt9
fX13aGlsZShJLS0pO319fVlBSE9PLmV4dGVuZChBLFlBSE9PLndpZGdldC5QYW5l
bCx7Zm9ybTpudWxsLGluaXREZWZhdWx0Q29uZmlnOmZ1bmN0aW9uKCl7QS5zdXBl
cmNsYXNzLmluaXREZWZhdWx0Q29uZmlnLmNhbGwodGhpcyk7dGhpcy5jYWxsYmFj
az17c3VjY2VzczpudWxsLGZhaWx1cmU6bnVsbCxhcmd1bWVudDpudWxsfTt0aGlz
LmNmZy5hZGRQcm9wZXJ0eShDLlBPU1RfTUVUSE9ELmtleSx7aGFuZGxlcjp0aGlz
LmNvbmZpZ1Bvc3RNZXRob2QsdmFsdWU6Qy5QT1NUX01FVEhPRC52YWx1ZSx2YWxp
ZGF0b3I6ZnVuY3Rpb24oSSl7aWYoSSE9ImZvcm0iJiZJIT0iYXN5bmMiJiZJIT0i
bm9uZSImJkkhPSJtYW51YWwiKXtyZXR1cm4gZmFsc2U7fWVsc2V7cmV0dXJuIHRy
dWU7fX19KTt0aGlzLmNmZy5hZGRQcm9wZXJ0eShDLlBPU1RfREFUQS5rZXkse3Zh
bHVlOkMuUE9TVF9EQVRBLnZhbHVlfSk7dGhpcy5jZmcuYWRkUHJvcGVydHkoQy5I
SURFQUZURVJTVUJNSVQua2V5LHt2YWx1ZTpDLkhJREVBRlRFUlNVQk1JVC52YWx1
ZX0pO3RoaXMuY2ZnLmFkZFByb3BlcnR5KEMuQlVUVE9OUy5rZXkse2hhbmRsZXI6
dGhpcy5jb25maWdCdXR0b25zLHZhbHVlOkMuQlVUVE9OUy52YWx1ZSxzdXBlcmNl
ZGVzOkMuQlVUVE9OUy5zdXBlcmNlZGVzfSk7fSxpbml0RXZlbnRzOmZ1bmN0aW9u
KCl7QS5zdXBlcmNsYXNzLmluaXRFdmVudHMuY2FsbCh0aGlzKTt2YXIgST1HLkxJ
U1Q7dGhpcy5iZWZvcmVTdWJtaXRFdmVudD10aGlzLmNyZWF0ZUV2ZW50KEguQkVG
T1JFX1NVQk1JVCk7dGhpcy5iZWZvcmVTdWJtaXRFdmVudC5zaWduYXR1cmU9STt0
aGlzLnN1Ym1pdEV2ZW50PXRoaXMuY3JlYXRlRXZlbnQoSC5TVUJNSVQpO3RoaXMu
c3VibWl0RXZlbnQuc2lnbmF0dXJlPUk7dGhpcy5tYW51YWxTdWJtaXRFdmVudD10
aGlzLmNyZWF0ZUV2ZW50KEguTUFOVUFMX1NVQk1JVCk7dGhpcy5tYW51YWxTdWJt
aXRFdmVudC5zaWduYXR1cmU9STt0aGlzLmFzeW5jU3VibWl0RXZlbnQ9dGhpcy5j
cmVhdGVFdmVudChILkFTWU5DX1NVQk1JVCk7CnRoaXMuYXN5bmNTdWJtaXRFdmVu
dC5zaWduYXR1cmU9STt0aGlzLmZvcm1TdWJtaXRFdmVudD10aGlzLmNyZWF0ZUV2
ZW50KEguRk9STV9TVUJNSVQpO3RoaXMuZm9ybVN1Ym1pdEV2ZW50LnNpZ25hdHVy
ZT1JO3RoaXMuY2FuY2VsRXZlbnQ9dGhpcy5jcmVhdGVFdmVudChILkNBTkNFTCk7
dGhpcy5jYW5jZWxFdmVudC5zaWduYXR1cmU9STt9LGluaXQ6ZnVuY3Rpb24oSixJ
KXtBLnN1cGVyY2xhc3MuaW5pdC5jYWxsKHRoaXMsSik7dGhpcy5iZWZvcmVJbml0
RXZlbnQuZmlyZShBKTtFLmFkZENsYXNzKHRoaXMuZWxlbWVudCxBLkNTU19ESUFM
T0cpO3RoaXMuY2ZnLnNldFByb3BlcnR5KCJ2aXNpYmxlIixmYWxzZSk7aWYoSSl7
dGhpcy5jZmcuYXBwbHlDb25maWcoSSx0cnVlKTt9dGhpcy5zaG93RXZlbnQuc3Vi
c2NyaWJlKHRoaXMuZm9jdXNGaXJzdCx0aGlzLHRydWUpO3RoaXMuYmVmb3JlSGlk
ZUV2ZW50LnN1YnNjcmliZSh0aGlzLmJsdXJCdXR0b25zLHRoaXMsdHJ1ZSk7dGhp
cy5zdWJzY3JpYmUoImNoYW5nZUJvZHkiLHRoaXMucmVnaXN0ZXJGb3JtKTt0aGlz
LmluaXRFdmVudC5maXJlKEEpO30sZG9TdWJtaXQ6ZnVuY3Rpb24oKXt2YXIgUD1Z
QUhPTy51dGlsLkNvbm5lY3QsUT10aGlzLmZvcm0sSz1mYWxzZSxOPWZhbHNlLFIs
TSxMLEk7c3dpdGNoKHRoaXMuY2ZnLmdldFByb3BlcnR5KCJwb3N0bWV0aG9kIikp
e2Nhc2UiYXN5bmMiOlI9US5lbGVtZW50cztNPVIubGVuZ3RoO2lmKE0+MCl7TD1N
LTE7ZG97aWYoUltMXS50eXBlPT0iZmlsZSIpe0s9dHJ1ZTticmVhazt9fXdoaWxl
KEwtLSk7fWlmKEsmJllBSE9PLmVudi51YS5pZSYmdGhpcy5pc1NlY3VyZSl7Tj10
cnVlO31JPXRoaXMuX2dldEZvcm1BdHRyaWJ1dGVzKFEpO1Auc2V0Rm9ybShRLEss
Tik7dmFyIEo9dGhpcy5jZmcuZ2V0UHJvcGVydHkoInBvc3RkYXRhIik7dmFyIE89
UC5hc3luY1JlcXVlc3QoSS5tZXRob2QsSS5hY3Rpb24sdGhpcy5jYWxsYmFjayxK
KTt0aGlzLmFzeW5jU3VibWl0RXZlbnQuZmlyZShPKTticmVhaztjYXNlImZvcm0i
OlEuc3VibWl0KCk7dGhpcy5mb3JtU3VibWl0RXZlbnQuZmlyZSgpO2JyZWFrO2Nh
c2Uibm9uZSI6Y2FzZSJtYW51YWwiOnRoaXMubWFudWFsU3VibWl0RXZlbnQuZmly
ZSgpO2JyZWFrO319LF9nZXRGb3JtQXR0cmlidXRlczpmdW5jdGlvbihLKXt2YXIg
ST17bWV0aG9kOm51bGwsYWN0aW9uOm51bGx9O2lmKEspe2lmKEsuZ2V0QXR0cmli
dXRlTm9kZSl7dmFyIEo9Sy5nZXRBdHRyaWJ1dGVOb2RlKCJhY3Rpb24iKTt2YXIg
TD1LLmdldEF0dHJpYnV0ZU5vZGUoIm1ldGhvZCIpO2lmKEope0kuYWN0aW9uPUou
dmFsdWU7fWlmKEwpe0kubWV0aG9kPUwudmFsdWU7fX1lbHNle0kuYWN0aW9uPUsu
Z2V0QXR0cmlidXRlKCJhY3Rpb24iKTtJLm1ldGhvZD1LLmdldEF0dHJpYnV0ZSgi
bWV0aG9kIik7fX1JLm1ldGhvZD0oRi5pc1N0cmluZyhJLm1ldGhvZCk/SS5tZXRo
b2Q6IlBPU1QiKS50b1VwcGVyQ2FzZSgpO0kuYWN0aW9uPUYuaXNTdHJpbmcoSS5h
Y3Rpb24pP0kuYWN0aW9uOiIiO3JldHVybiBJO30scmVnaXN0ZXJGb3JtOmZ1bmN0
aW9uKCl7dmFyIEk9dGhpcy5lbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJm
b3JtIilbMF07aWYodGhpcy5mb3JtKXtpZih0aGlzLmZvcm09PUkmJkUuaXNBbmNl
c3Rvcih0aGlzLmVsZW1lbnQsdGhpcy5mb3JtKSl7cmV0dXJuO31lbHNle0IucHVy
Z2VFbGVtZW50KHRoaXMuZm9ybSk7dGhpcy5mb3JtPW51bGw7fX1pZighSSl7ST1k
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7SS5uYW1lPSJmcm1fIit0aGlz
LmlkO3RoaXMuYm9keS5hcHBlbmRDaGlsZChJKTt9aWYoSSl7dGhpcy5mb3JtPUk7
Qi5vbihJLCJzdWJtaXQiLHRoaXMuX3N1Ym1pdEhhbmRsZXIsdGhpcyx0cnVlKTt9
fSxfc3VibWl0SGFuZGxlcjpmdW5jdGlvbihJKXtCLnN0b3BFdmVudChJKTt0aGlz
LnN1Ym1pdCgpO3RoaXMuZm9ybS5ibHVyKCk7fSxzZXRUYWJMb29wOmZ1bmN0aW9u
KEksSil7ST1JfHx0aGlzLmZpcnN0QnV0dG9uO0o9dGhpcy5sYXN0QnV0dG9ufHxK
O0Euc3VwZXJjbGFzcy5zZXRUYWJMb29wLmNhbGwodGhpcyxJLEopO30sc2V0Rmly
c3RMYXN0Rm9jdXNhYmxlOmZ1bmN0aW9uKCl7QS5zdXBlcmNsYXNzLnNldEZpcnN0
TGFzdEZvY3VzYWJsZS5jYWxsKHRoaXMpO3ZhciBKLEksSyxMPXRoaXMuZm9jdXNh
YmxlRWxlbWVudHM7dGhpcy5maXJzdEZvcm1FbGVtZW50PW51bGw7dGhpcy5sYXN0
Rm9ybUVsZW1lbnQ9bnVsbDtpZih0aGlzLmZvcm0mJkwmJkwubGVuZ3RoPjApe0k9
TC5sZW5ndGg7Zm9yKEo9MDtKPEk7KytKKXtLPUxbSl07aWYodGhpcy5mb3JtPT09
Sy5mb3JtKXt0aGlzLmZpcnN0Rm9ybUVsZW1lbnQ9SzticmVhazt9fWZvcihKPUkt
MTtKPj0wOy0tSil7Sz1MW0pdO2lmKHRoaXMuZm9ybT09PUsuZm9ybSl7dGhpcy5s
YXN0Rm9ybUVsZW1lbnQ9SzticmVhazt9fX19LGNvbmZpZ0Nsb3NlOmZ1bmN0aW9u
KEosSSxLKXtBLnN1cGVyY2xhc3MuY29uZmlnQ2xvc2UuYXBwbHkodGhpcyxhcmd1
bWVudHMpO30sX2RvQ2xvc2U6ZnVuY3Rpb24oSSl7Qi5wcmV2ZW50RGVmYXVsdChJ
KTt0aGlzLmNhbmNlbCgpO30sY29uZmlnQnV0dG9uczpmdW5jdGlvbihTLFIsTSl7
dmFyIE49WUFIT08ud2lkZ2V0LkJ1dHRvbixVPVJbMF0sSz10aGlzLmlubmVyRWxl
bWVudCxULFAsSixRLE8sSSxMO0QuY2FsbCh0aGlzKTt0aGlzLl9hQnV0dG9ucz1u
dWxsO2lmKEYuaXNBcnJheShVKSl7Tz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7Ty5jbGFzc05hbWU9ImJ1dHRvbi1ncm91cCI7UT1VLmxlbmd0aDt0aGlz
Ll9hQnV0dG9ucz1bXTt0aGlzLmRlZmF1bHRIdG1sQnV0dG9uPW51bGw7Zm9yKEw9
MDtMPFE7TCsrKXtUPVVbTF07aWYoTil7Sj1uZXcgTih7bGFiZWw6VC50ZXh0fSk7
Si5hcHBlbmRUbyhPKTtQPUouZ2V0KCJlbGVtZW50Iik7aWYoVC5pc0RlZmF1bHQp
e0ouYWRkQ2xhc3MoImRlZmF1bHQiKTt0aGlzLmRlZmF1bHRIdG1sQnV0dG9uPVA7
fWlmKEYuaXNGdW5jdGlvbihULmhhbmRsZXIpKXtKLnNldCgib25jbGljayIse2Zu
OlQuaGFuZGxlcixvYmo6dGhpcyxzY29wZTp0aGlzfSk7fWVsc2V7aWYoRi5pc09i
amVjdChULmhhbmRsZXIpJiZGLmlzRnVuY3Rpb24oVC5oYW5kbGVyLmZuKSl7Si5z
ZXQoIm9uY2xpY2siLHtmbjpULmhhbmRsZXIuZm4sb2JqOigoIUYuaXNVbmRlZmlu
ZWQoVC5oYW5kbGVyLm9iaikpP1QuaGFuZGxlci5vYmo6dGhpcyksc2NvcGU6KFQu
aGFuZGxlci5zY29wZXx8dGhpcyl9KTt9fXRoaXMuX2FCdXR0b25zW3RoaXMuX2FC
dXR0b25zLmxlbmd0aF09Sjt9ZWxzZXtQPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImJ1dHRvbiIpO1Auc2V0QXR0cmlidXRlKCJ0eXBlIiwiYnV0dG9uIik7aWYoVC5p
c0RlZmF1bHQpe1AuY2xhc3NOYW1lPSJkZWZhdWx0Ijt0aGlzLmRlZmF1bHRIdG1s
QnV0dG9uPVA7fVAuaW5uZXJIVE1MPVQudGV4dDtpZihGLmlzRnVuY3Rpb24oVC5o
YW5kbGVyKSl7Qi5vbihQLCJjbGljayIsVC5oYW5kbGVyLHRoaXMsdHJ1ZSk7fWVs
c2V7aWYoRi5pc09iamVjdChULmhhbmRsZXIpJiZGLmlzRnVuY3Rpb24oVC5oYW5k
bGVyLmZuKSl7Qi5vbihQLCJjbGljayIsVC5oYW5kbGVyLmZuLCgoIUYuaXNVbmRl
ZmluZWQoVC5oYW5kbGVyLm9iaikpP1QuaGFuZGxlci5vYmo6dGhpcyksKFQuaGFu
ZGxlci5zY29wZXx8dGhpcykpO319Ty5hcHBlbmRDaGlsZChQKTt0aGlzLl9hQnV0
dG9uc1t0aGlzLl9hQnV0dG9ucy5sZW5ndGhdPVA7fVQuaHRtbEJ1dHRvbj1QO2lm
KEw9PT0wKXt0aGlzLmZpcnN0QnV0dG9uPVA7fWlmKEw9PShRLTEpKXt0aGlzLmxh
c3RCdXR0b249UDt9fXRoaXMuc2V0Rm9vdGVyKE8pO0k9dGhpcy5mb290ZXI7aWYo
RS5pbkRvY3VtZW50KHRoaXMuZWxlbWVudCkmJiFFLmlzQW5jZXN0b3IoSyxJKSl7
Sy5hcHBlbmRDaGlsZChJKTt9dGhpcy5idXR0b25TcGFuPU87fWVsc2V7Tz10aGlz
LmJ1dHRvblNwYW47ST10aGlzLmZvb3RlcjtpZihPJiZJKXtJLnJlbW92ZUNoaWxk
KE8pO3RoaXMuYnV0dG9uU3Bhbj1udWxsO3RoaXMuZmlyc3RCdXR0b249bnVsbDt0
aGlzLmxhc3RCdXR0b249bnVsbDt0aGlzLmRlZmF1bHRIdG1sQnV0dG9uPW51bGw7
fX10aGlzLmNoYW5nZUNvbnRlbnRFdmVudC5maXJlKCk7fSxnZXRCdXR0b25zOmZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FCdXR0b25zfHxudWxsO30sZm9jdXNGaXJz
dDpmdW5jdGlvbihLLEksTSl7dmFyIEo9dGhpcy5maXJzdEZvcm1FbGVtZW50O2lm
KEkmJklbMV0pe0Iuc3RvcEV2ZW50KElbMV0pO31pZihKKXt0cnl7Si5mb2N1cygp
O31jYXRjaChMKXt9fWVsc2V7aWYodGhpcy5kZWZhdWx0SHRtbEJ1dHRvbil7dGhp
cy5mb2N1c0RlZmF1bHRCdXR0b24oKTt9ZWxzZXt0aGlzLmZvY3VzRmlyc3RCdXR0
b24oKTt9fX0sZm9jdXNMYXN0OmZ1bmN0aW9uKEssSSxNKXt2YXIgTj10aGlzLmNm
Zy5nZXRQcm9wZXJ0eSgiYnV0dG9ucyIpLEo9dGhpcy5sYXN0Rm9ybUVsZW1lbnQ7
aWYoSSYmSVsxXSl7Qi5zdG9wRXZlbnQoSVsxXSk7fWlmKE4mJkYuaXNBcnJheShO
KSl7dGhpcy5mb2N1c0xhc3RCdXR0b24oKTt9ZWxzZXtpZihKKXt0cnl7Si5mb2N1
cygpO31jYXRjaChMKXt9fX19LF9nZXRCdXR0b246ZnVuY3Rpb24oSil7dmFyIEk9
WUFIT08ud2lkZ2V0LkJ1dHRvbjtpZihJJiZKJiZKLm5vZGVOYW1lJiZKLmlkKXtK
PUkuZ2V0QnV0dG9uKEouaWQpfHxKO31yZXR1cm4gSjt9LGZvY3VzRGVmYXVsdEJ1
dHRvbjpmdW5jdGlvbigpe3ZhciBJPXRoaXMuX2dldEJ1dHRvbih0aGlzLmRlZmF1
bHRIdG1sQnV0dG9uKTtpZihJKXt0cnl7SS5mb2N1cygpO31jYXRjaChKKXt9fX0s
Ymx1ckJ1dHRvbnM6ZnVuY3Rpb24oKXt2YXIgTj10aGlzLmNmZy5nZXRQcm9wZXJ0
eSgiYnV0dG9ucyIpLEssTSxKLEk7aWYoTiYmRi5pc0FycmF5KE4pKXtLPU4ubGVu
Z3RoO2lmKEs+MCl7ST0oSy0xKTtkb3tNPU5bSV07aWYoTSl7Sj10aGlzLl9nZXRC
dXR0b24oTS5odG1sQnV0dG9uKTtpZihKKXt0cnl7Si5ibHVyKCk7fWNhdGNoKEwp
e319fX13aGlsZShJLS0pO319fSxmb2N1c0ZpcnN0QnV0dG9uOmZ1bmN0aW9uKCl7
dmFyIEw9dGhpcy5jZmcuZ2V0UHJvcGVydHkoImJ1dHRvbnMiKSxLLEk7aWYoTCYm
Ri5pc0FycmF5KEwpKXtLPUxbMF07aWYoSyl7ST10aGlzLl9nZXRCdXR0b24oSy5o
dG1sQnV0dG9uKTtpZihJKXt0cnl7SS5mb2N1cygpO31jYXRjaChKKXt9fX19fSxm
b2N1c0xhc3RCdXR0b246ZnVuY3Rpb24oKXt2YXIgTT10aGlzLmNmZy5nZXRQcm9w
ZXJ0eSgiYnV0dG9ucyIpLEosTCxJO2lmKE0mJkYuaXNBcnJheShNKSl7Sj1NLmxl
bmd0aDtpZihKPjApe0w9TVsoSi0xKV07aWYoTCl7ST10aGlzLl9nZXRCdXR0b24o
TC5odG1sQnV0dG9uKTtpZihJKXt0cnl7SS5mb2N1cygpO31jYXRjaChLKXt9fX19
fX0sY29uZmlnUG9zdE1ldGhvZDpmdW5jdGlvbihKLEksSyl7dGhpcy5yZWdpc3Rl
ckZvcm0oKTt9LHZhbGlkYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRydWU7fSxzdWJt
aXQ6ZnVuY3Rpb24oKXtpZih0aGlzLnZhbGlkYXRlKCkpe3RoaXMuYmVmb3JlU3Vi
bWl0RXZlbnQuZmlyZSgpO3RoaXMuZG9TdWJtaXQoKTt0aGlzLnN1Ym1pdEV2ZW50
LmZpcmUoKTtpZih0aGlzLmNmZy5nZXRQcm9wZXJ0eSgiaGlkZWFmdGVyc3VibWl0
Iikpe3RoaXMuaGlkZSgpO31yZXR1cm4gdHJ1ZTt9ZWxzZXtyZXR1cm4gZmFsc2U7
fX0sY2FuY2VsOmZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxFdmVudC5maXJlKCk7dGhp
cy5oaWRlKCk7fSxnZXREYXRhOmZ1bmN0aW9uKCl7dmFyIFk9dGhpcy5mb3JtLEss
UixVLE0sUyxQLE8sSixWLEwsVyxaLEksTixhLFgsVDtmdW5jdGlvbiBRKGMpe3Zh
ciBiPWMudGFnTmFtZS50b1VwcGVyQ2FzZSgpO3JldHVybigoYj09IklOUFVUInx8
Yj09IlRFWFRBUkVBInx8Yj09IlNFTEVDVCIpJiZjLm5hbWU9PU0pO31pZihZKXtL
PVkuZWxlbWVudHM7Uj1LLmxlbmd0aDtVPXt9O2ZvcihYPTA7WDxSO1grKyl7TT1L
W1hdLm5hbWU7Uz1FLmdldEVsZW1lbnRzQnkoUSwiKiIsWSk7ClA9Uy5sZW5ndGg7
aWYoUD4wKXtpZihQPT0xKXtTPVNbMF07Tz1TLnR5cGU7Sj1TLnRhZ05hbWUudG9V
cHBlckNhc2UoKTtzd2l0Y2goSil7Y2FzZSJJTlBVVCI6aWYoTz09ImNoZWNrYm94
Iil7VVtNXT1TLmNoZWNrZWQ7fWVsc2V7aWYoTyE9InJhZGlvIil7VVtNXT1TLnZh
bHVlO319YnJlYWs7Y2FzZSJURVhUQVJFQSI6VVtNXT1TLnZhbHVlO2JyZWFrO2Nh
c2UiU0VMRUNUIjpWPVMub3B0aW9ucztMPVYubGVuZ3RoO1c9W107Zm9yKFQ9MDtU
PEw7VCsrKXtaPVZbVF07aWYoWi5zZWxlY3RlZCl7ST1aLnZhbHVlO2lmKCFJfHxJ
PT09IiIpe0k9Wi50ZXh0O31XW1cubGVuZ3RoXT1JO319VVtNXT1XO2JyZWFrO319
ZWxzZXtPPVNbMF0udHlwZTtzd2l0Y2goTyl7Y2FzZSJyYWRpbyI6Zm9yKFQ9MDtU
PFA7VCsrKXtOPVNbVF07aWYoTi5jaGVja2VkKXtVW01dPU4udmFsdWU7YnJlYWs7
fX1icmVhaztjYXNlImNoZWNrYm94IjpXPVtdO2ZvcihUPTA7VDxQO1QrKyl7YT1T
W1RdO2lmKGEuY2hlY2tlZCl7V1tXLmxlbmd0aF09YS52YWx1ZTt9fVVbTV09Vzti
cmVhazt9fX19fXJldHVybiBVO30sZGVzdHJveTpmdW5jdGlvbigpe0QuY2FsbCh0
aGlzKTt0aGlzLl9hQnV0dG9ucz1udWxsO3ZhciBJPXRoaXMuZWxlbWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiZm9ybSIpLEo7aWYoSS5sZW5ndGg+MCl7Sj1JWzBd
O2lmKEope0IucHVyZ2VFbGVtZW50KEopO2lmKEoucGFyZW50Tm9kZSl7Si5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKEopO310aGlzLmZvcm09bnVsbDt9fUEuc3VwZXJj
bGFzcy5kZXN0cm95LmNhbGwodGhpcyk7fSx0b1N0cmluZzpmdW5jdGlvbigpe3Jl
dHVybiJEaWFsb2cgIit0aGlzLmlkO319KTt9KCkpOyhmdW5jdGlvbigpe1lBSE9P
LndpZGdldC5TaW1wbGVEaWFsb2c9ZnVuY3Rpb24oRSxEKXtZQUhPTy53aWRnZXQu
U2ltcGxlRGlhbG9nLnN1cGVyY2xhc3MuY29uc3RydWN0b3IuY2FsbCh0aGlzLEUs
RCk7fTt2YXIgQz1ZQUhPTy51dGlsLkRvbSxCPVlBSE9PLndpZGdldC5TaW1wbGVE
aWFsb2csQT17IklDT04iOntrZXk6Imljb24iLHZhbHVlOiJub25lIixzdXBwcmVz
c0V2ZW50OnRydWV9LCJURVhUIjp7a2V5OiJ0ZXh0Iix2YWx1ZToiIixzdXBwcmVz
c0V2ZW50OnRydWUsc3VwZXJjZWRlczpbImljb24iXX19O0IuSUNPTl9CTE9DSz0i
Ymxja2ljb24iO0IuSUNPTl9BTEFSTT0iYWxydGljb24iO0IuSUNPTl9IRUxQPSJo
bHBpY29uIjtCLklDT05fSU5GTz0iaW5mb2ljb24iO0IuSUNPTl9XQVJOPSJ3YXJu
aWNvbiI7Qi5JQ09OX1RJUD0idGlwaWNvbiI7Qi5JQ09OX0NTU19DTEFTU05BTUU9
Inl1aS1pY29uIjtCLkNTU19TSU1QTEVESUFMT0c9Inl1aS1zaW1wbGUtZGlhbG9n
IjtZQUhPTy5leHRlbmQoQixZQUhPTy53aWRnZXQuRGlhbG9nLHtpbml0RGVmYXVs
dENvbmZpZzpmdW5jdGlvbigpe0Iuc3VwZXJjbGFzcy5pbml0RGVmYXVsdENvbmZp
Zy5jYWxsKHRoaXMpO3RoaXMuY2ZnLmFkZFByb3BlcnR5KEEuSUNPTi5rZXkse2hh
bmRsZXI6dGhpcy5jb25maWdJY29uLHZhbHVlOkEuSUNPTi52YWx1ZSxzdXBwcmVz
c0V2ZW50OkEuSUNPTi5zdXBwcmVzc0V2ZW50fSk7dGhpcy5jZmcuYWRkUHJvcGVy
dHkoQS5URVhULmtleSx7aGFuZGxlcjp0aGlzLmNvbmZpZ1RleHQsdmFsdWU6QS5U
RVhULnZhbHVlLHN1cHByZXNzRXZlbnQ6QS5URVhULnN1cHByZXNzRXZlbnQsc3Vw
ZXJjZWRlczpBLlRFWFQuc3VwZXJjZWRlc30pO30saW5pdDpmdW5jdGlvbihFLEQp
e0Iuc3VwZXJjbGFzcy5pbml0LmNhbGwodGhpcyxFKTt0aGlzLmJlZm9yZUluaXRF
dmVudC5maXJlKEIpO0MuYWRkQ2xhc3ModGhpcy5lbGVtZW50LEIuQ1NTX1NJTVBM
RURJQUxPRyk7dGhpcy5jZmcucXVldWVQcm9wZXJ0eSgicG9zdG1ldGhvZCIsIm1h
bnVhbCIpO2lmKEQpe3RoaXMuY2ZnLmFwcGx5Q29uZmlnKEQsdHJ1ZSk7fXRoaXMu
YmVmb3JlUmVuZGVyRXZlbnQuc3Vic2NyaWJlKGZ1bmN0aW9uKCl7aWYoIXRoaXMu
Ym9keSl7dGhpcy5zZXRCb2R5KCIiKTt9fSx0aGlzLHRydWUpO3RoaXMuaW5pdEV2
ZW50LmZpcmUoQik7fSxyZWdpc3RlckZvcm06ZnVuY3Rpb24oKXtCLnN1cGVyY2xh
c3MucmVnaXN0ZXJGb3JtLmNhbGwodGhpcyk7dGhpcy5mb3JtLmlubmVySFRNTCs9
JzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IicrdGhpcy5pZCsnIiB2YWx1ZT0i
Ii8+Jzt9LGNvbmZpZ0ljb246ZnVuY3Rpb24oRixFLEope3ZhciBLPUVbMF0sRD10
aGlzLmJvZHksST1CLklDT05fQ1NTX0NMQVNTTkFNRSxILEc7aWYoSyYmSyE9Im5v
bmUiKXtIPUMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShJLCIqIixEKTtpZihIKXtH
PUgucGFyZW50Tm9kZTtpZihHKXtHLnJlbW92ZUNoaWxkKEgpO0g9bnVsbDt9fWlm
KEsuaW5kZXhPZigiLiIpPT0tMSl7SD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7SC5jbGFzc05hbWU9KEkrIiAiK0spO0guaW5uZXJIVE1MPSImIzE2MDsi
O31lbHNle0g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7SC5zcmM9KHRo
aXMuaW1hZ2VSb290K0spO0guY2xhc3NOYW1lPUk7fWlmKEgpe0QuaW5zZXJ0QmVm
b3JlKEgsRC5maXJzdENoaWxkKTt9fX0sY29uZmlnVGV4dDpmdW5jdGlvbihFLEQs
Ril7dmFyIEc9RFswXTtpZihHKXt0aGlzLnNldEJvZHkoRyk7dGhpcy5jZmcucmVm
aXJlRXZlbnQoImljb24iKTt9fSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJT
aW1wbGVEaWFsb2cgIit0aGlzLmlkO319KTt9KCkpOyhmdW5jdGlvbigpe1lBSE9P
LndpZGdldC5Db250YWluZXJFZmZlY3Q9ZnVuY3Rpb24oRSxILEcsRCxGKXtpZigh
Ril7Rj1ZQUhPTy51dGlsLkFuaW07fXRoaXMub3ZlcmxheT1FO3RoaXMuYXR0cklu
PUg7dGhpcy5hdHRyT3V0PUc7dGhpcy50YXJnZXRFbGVtZW50PUR8fEUuZWxlbWVu
dDt0aGlzLmFuaW1DbGFzcz1GO307dmFyIEI9WUFIT08udXRpbC5Eb20sQz1ZQUhP
Ty51dGlsLkN1c3RvbUV2ZW50LEE9WUFIT08ud2lkZ2V0LkNvbnRhaW5lckVmZmVj
dDtBLkZBREU9ZnVuY3Rpb24oRCxGKXt2YXIgRz1ZQUhPTy51dGlsLkVhc2luZyxJ
PXthdHRyaWJ1dGVzOntvcGFjaXR5Ontmcm9tOjAsdG86MX19LGR1cmF0aW9uOkYs
bWV0aG9kOkcuZWFzZUlufSxFPXthdHRyaWJ1dGVzOntvcGFjaXR5Ont0bzowfX0s
ZHVyYXRpb246RixtZXRob2Q6Ry5lYXNlT3V0fSxIPW5ldyBBKEQsSSxFLEQuZWxl
bWVudCk7SC5oYW5kbGVVbmRlcmxheVN0YXJ0PWZ1bmN0aW9uKCl7dmFyIEs9dGhp
cy5vdmVybGF5LnVuZGVybGF5O2lmKEsmJllBSE9PLmVudi51YS5pZSl7dmFyIEo9
KEsuZmlsdGVycyYmSy5maWx0ZXJzLmxlbmd0aD4wKTtpZihKKXtCLmFkZENsYXNz
KEQuZWxlbWVudCwieXVpLWVmZmVjdC1mYWRlIik7fX19O0guaGFuZGxlVW5kZXJs
YXlDb21wbGV0ZT1mdW5jdGlvbigpe3ZhciBKPXRoaXMub3ZlcmxheS51bmRlcmxh
eTtpZihKJiZZQUhPTy5lbnYudWEuaWUpe0IucmVtb3ZlQ2xhc3MoRC5lbGVtZW50
LCJ5dWktZWZmZWN0LWZhZGUiKTt9fTtILmhhbmRsZVN0YXJ0QW5pbWF0ZUluPWZ1
bmN0aW9uKEssSixMKXtCLmFkZENsYXNzKEwub3ZlcmxheS5lbGVtZW50LCJoaWRl
LXNlbGVjdCIpO2lmKCFMLm92ZXJsYXkudW5kZXJsYXkpe0wub3ZlcmxheS5jZmcu
cmVmaXJlRXZlbnQoInVuZGVybGF5Iik7fUwuaGFuZGxlVW5kZXJsYXlTdGFydCgp
O0wub3ZlcmxheS5fc2V0RG9tVmlzaWJpbGl0eSh0cnVlKTtCLnNldFN0eWxlKEwu
b3ZlcmxheS5lbGVtZW50LCJvcGFjaXR5IiwwKTt9O0guaGFuZGxlQ29tcGxldGVB
bmltYXRlSW49ZnVuY3Rpb24oSyxKLEwpe0IucmVtb3ZlQ2xhc3MoTC5vdmVybGF5
LmVsZW1lbnQsImhpZGUtc2VsZWN0Iik7aWYoTC5vdmVybGF5LmVsZW1lbnQuc3R5
bGUuZmlsdGVyKXtMLm92ZXJsYXkuZWxlbWVudC5zdHlsZS5maWx0ZXI9bnVsbDt9
TC5oYW5kbGVVbmRlcmxheUNvbXBsZXRlKCk7TC5vdmVybGF5LmNmZy5yZWZpcmVF
dmVudCgiaWZyYW1lIik7TC5hbmltYXRlSW5Db21wbGV0ZUV2ZW50LmZpcmUoKTt9
O0guaGFuZGxlU3RhcnRBbmltYXRlT3V0PWZ1bmN0aW9uKEssSixMKXtCLmFkZENs
YXNzKEwub3ZlcmxheS5lbGVtZW50LCJoaWRlLXNlbGVjdCIpO0wuaGFuZGxlVW5k
ZXJsYXlTdGFydCgpO307SC5oYW5kbGVDb21wbGV0ZUFuaW1hdGVPdXQ9ZnVuY3Rp
b24oSyxKLEwpe0IucmVtb3ZlQ2xhc3MoTC5vdmVybGF5LmVsZW1lbnQsImhpZGUt
c2VsZWN0Iik7aWYoTC5vdmVybGF5LmVsZW1lbnQuc3R5bGUuZmlsdGVyKXtMLm92
ZXJsYXkuZWxlbWVudC5zdHlsZS5maWx0ZXI9bnVsbDt9TC5vdmVybGF5Ll9zZXRE
b21WaXNpYmlsaXR5KGZhbHNlKTtCLnNldFN0eWxlKEwub3ZlcmxheS5lbGVtZW50
LCJvcGFjaXR5IiwxKTtMLmhhbmRsZVVuZGVybGF5Q29tcGxldGUoKTtMLm92ZXJs
YXkuY2ZnLnJlZmlyZUV2ZW50KCJpZnJhbWUiKTtMLmFuaW1hdGVPdXRDb21wbGV0
ZUV2ZW50LmZpcmUoKTt9O0guaW5pdCgpO3JldHVybiBIO307QS5TTElERT1mdW5j
dGlvbihGLEQpe3ZhciBJPVlBSE9PLnV0aWwuRWFzaW5nLEw9Ri5jZmcuZ2V0UHJv
cGVydHkoIngiKXx8Qi5nZXRYKEYuZWxlbWVudCksSz1GLmNmZy5nZXRQcm9wZXJ0
eSgieSIpfHxCLmdldFkoRi5lbGVtZW50KSxNPUIuZ2V0Q2xpZW50V2lkdGgoKSxI
PUYuZWxlbWVudC5vZmZzZXRXaWR0aCxKPXthdHRyaWJ1dGVzOntwb2ludHM6e3Rv
OltMLEtdfX0sZHVyYXRpb246RCxtZXRob2Q6SS5lYXNlSW59LEU9e2F0dHJpYnV0
ZXM6e3BvaW50czp7dG86WyhNKzI1KSxLXX19LGR1cmF0aW9uOkQsbWV0aG9kOkku
ZWFzZU91dH0sRz1uZXcgQShGLEosRSxGLmVsZW1lbnQsWUFIT08udXRpbC5Nb3Rp
b24pO0cuaGFuZGxlU3RhcnRBbmltYXRlSW49ZnVuY3Rpb24oTyxOLFApe1Aub3Zl
cmxheS5lbGVtZW50LnN0eWxlLmxlZnQ9KCgtMjUpLUgpKyJweCI7UC5vdmVybGF5
LmVsZW1lbnQuc3R5bGUudG9wPUsrInB4Ijt9O0cuaGFuZGxlVHdlZW5BbmltYXRl
SW49ZnVuY3Rpb24oUSxQLFIpe3ZhciBTPUIuZ2V0WFkoUi5vdmVybGF5LmVsZW1l
bnQpLE89U1swXSxOPVNbMV07aWYoQi5nZXRTdHlsZShSLm92ZXJsYXkuZWxlbWVu
dCwidmlzaWJpbGl0eSIpPT0iaGlkZGVuIiYmTzxMKXtSLm92ZXJsYXkuX3NldERv
bVZpc2liaWxpdHkodHJ1ZSk7fVIub3ZlcmxheS5jZmcuc2V0UHJvcGVydHkoInh5
IixbTyxOXSx0cnVlKTtSLm92ZXJsYXkuY2ZnLnJlZmlyZUV2ZW50KCJpZnJhbWUi
KTt9O0cuaGFuZGxlQ29tcGxldGVBbmltYXRlSW49ZnVuY3Rpb24oTyxOLFApe1Au
b3ZlcmxheS5jZmcuc2V0UHJvcGVydHkoInh5IixbTCxLXSx0cnVlKTtQLnN0YXJ0
WD1MO1Auc3RhcnRZPUs7UC5vdmVybGF5LmNmZy5yZWZpcmVFdmVudCgiaWZyYW1l
Iik7UC5hbmltYXRlSW5Db21wbGV0ZUV2ZW50LmZpcmUoKTt9O0cuaGFuZGxlU3Rh
cnRBbmltYXRlT3V0PWZ1bmN0aW9uKE8sTixSKXt2YXIgUD1CLmdldFZpZXdwb3J0
V2lkdGgoKSxTPUIuZ2V0WFkoUi5vdmVybGF5LmVsZW1lbnQpLFE9U1sxXTtSLmFu
aW1PdXQuYXR0cmlidXRlcy5wb2ludHMudG89WyhQKzI1KSxRXTt9O0cuaGFuZGxl
VHdlZW5BbmltYXRlT3V0PWZ1bmN0aW9uKFAsTyxRKXt2YXIgUz1CLmdldFhZKFEu
b3ZlcmxheS5lbGVtZW50KSxOPVNbMF0sUj1TWzFdO1Eub3ZlcmxheS5jZmcuc2V0
UHJvcGVydHkoInh5IixbTixSXSx0cnVlKTtRLm92ZXJsYXkuY2ZnLnJlZmlyZUV2
ZW50KCJpZnJhbWUiKTt9O0cuaGFuZGxlQ29tcGxldGVBbmltYXRlT3V0PWZ1bmN0
aW9uKE8sTixQKXtQLm92ZXJsYXkuX3NldERvbVZpc2liaWxpdHkoZmFsc2UpO1Au
b3ZlcmxheS5jZmcuc2V0UHJvcGVydHkoInh5IixbTCxLXSk7UC5hbmltYXRlT3V0
Q29tcGxldGVFdmVudC5maXJlKCk7fTtHLmluaXQoKTtyZXR1cm4gRzt9O0EucHJv
dG90eXBlPXtpbml0OmZ1bmN0aW9uKCl7dGhpcy5iZWZvcmVBbmltYXRlSW5FdmVu
dD10aGlzLmNyZWF0ZUV2ZW50KCJiZWZvcmVBbmltYXRlSW4iKTt0aGlzLmJlZm9y
ZUFuaW1hdGVJbkV2ZW50LnNpZ25hdHVyZT1DLkxJU1Q7dGhpcy5iZWZvcmVBbmlt
YXRlT3V0RXZlbnQ9dGhpcy5jcmVhdGVFdmVudCgiYmVmb3JlQW5pbWF0ZU91dCIp
Owp0aGlzLmJlZm9yZUFuaW1hdGVPdXRFdmVudC5zaWduYXR1cmU9Qy5MSVNUO3Ro
aXMuYW5pbWF0ZUluQ29tcGxldGVFdmVudD10aGlzLmNyZWF0ZUV2ZW50KCJhbmlt
YXRlSW5Db21wbGV0ZSIpO3RoaXMuYW5pbWF0ZUluQ29tcGxldGVFdmVudC5zaWdu
YXR1cmU9Qy5MSVNUO3RoaXMuYW5pbWF0ZU91dENvbXBsZXRlRXZlbnQ9dGhpcy5j
cmVhdGVFdmVudCgiYW5pbWF0ZU91dENvbXBsZXRlIik7dGhpcy5hbmltYXRlT3V0
Q29tcGxldGVFdmVudC5zaWduYXR1cmU9Qy5MSVNUO3RoaXMuYW5pbUluPW5ldyB0
aGlzLmFuaW1DbGFzcyh0aGlzLnRhcmdldEVsZW1lbnQsdGhpcy5hdHRySW4uYXR0
cmlidXRlcyx0aGlzLmF0dHJJbi5kdXJhdGlvbix0aGlzLmF0dHJJbi5tZXRob2Qp
O3RoaXMuYW5pbUluLm9uU3RhcnQuc3Vic2NyaWJlKHRoaXMuaGFuZGxlU3RhcnRB
bmltYXRlSW4sdGhpcyk7dGhpcy5hbmltSW4ub25Ud2Vlbi5zdWJzY3JpYmUodGhp
cy5oYW5kbGVUd2VlbkFuaW1hdGVJbix0aGlzKTt0aGlzLmFuaW1Jbi5vbkNvbXBs
ZXRlLnN1YnNjcmliZSh0aGlzLmhhbmRsZUNvbXBsZXRlQW5pbWF0ZUluLHRoaXMp
O3RoaXMuYW5pbU91dD1uZXcgdGhpcy5hbmltQ2xhc3ModGhpcy50YXJnZXRFbGVt
ZW50LHRoaXMuYXR0ck91dC5hdHRyaWJ1dGVzLHRoaXMuYXR0ck91dC5kdXJhdGlv
bix0aGlzLmF0dHJPdXQubWV0aG9kKTt0aGlzLmFuaW1PdXQub25TdGFydC5zdWJz
Y3JpYmUodGhpcy5oYW5kbGVTdGFydEFuaW1hdGVPdXQsdGhpcyk7dGhpcy5hbmlt
T3V0Lm9uVHdlZW4uc3Vic2NyaWJlKHRoaXMuaGFuZGxlVHdlZW5BbmltYXRlT3V0
LHRoaXMpO3RoaXMuYW5pbU91dC5vbkNvbXBsZXRlLnN1YnNjcmliZSh0aGlzLmhh
bmRsZUNvbXBsZXRlQW5pbWF0ZU91dCx0aGlzKTt9LGFuaW1hdGVJbjpmdW5jdGlv
bigpe3RoaXMuYmVmb3JlQW5pbWF0ZUluRXZlbnQuZmlyZSgpO3RoaXMuYW5pbUlu
LmFuaW1hdGUoKTt9LGFuaW1hdGVPdXQ6ZnVuY3Rpb24oKXt0aGlzLmJlZm9yZUFu
aW1hdGVPdXRFdmVudC5maXJlKCk7dGhpcy5hbmltT3V0LmFuaW1hdGUoKTt9LGhh
bmRsZVN0YXJ0QW5pbWF0ZUluOmZ1bmN0aW9uKEUsRCxGKXt9LGhhbmRsZVR3ZWVu
QW5pbWF0ZUluOmZ1bmN0aW9uKEUsRCxGKXt9LGhhbmRsZUNvbXBsZXRlQW5pbWF0
ZUluOmZ1bmN0aW9uKEUsRCxGKXt9LGhhbmRsZVN0YXJ0QW5pbWF0ZU91dDpmdW5j
dGlvbihFLEQsRil7fSxoYW5kbGVUd2VlbkFuaW1hdGVPdXQ6ZnVuY3Rpb24oRSxE
LEYpe30saGFuZGxlQ29tcGxldGVBbmltYXRlT3V0OmZ1bmN0aW9uKEUsRCxGKXt9
LHRvU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIEQ9IkNvbnRhaW5lckVmZmVjdCI7aWYo
dGhpcy5vdmVybGF5KXtEKz0iIFsiK3RoaXMub3ZlcmxheS50b1N0cmluZygpKyJd
Ijt9cmV0dXJuIEQ7fX07WUFIT08ubGFuZy5hdWdtZW50UHJvdG8oQSxZQUhPTy51
dGlsLkV2ZW50UHJvdmlkZXIpO30pKCk7WUFIT08ucmVnaXN0ZXIoImNvbnRhaW5l
ciIsWUFIT08ud2lkZ2V0Lk1vZHVsZSx7dmVyc2lvbjoiMi43LjAiLGJ1aWxkOiIx
Nzk5In0pOy8qCkNvcHlyaWdodCAoYykgMjAwOSwgWWFob28hIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KQ29kZSBsaWNlbnNlZCB1bmRlciB0aGUgQlNEIExpY2Vu
c2U6Cmh0dHA6Ly9kZXZlbG9wZXIueWFob28ubmV0L3l1aS9saWNlbnNlLnR4dAp2
ZXJzaW9uOiAyLjcuMAoqLwpZQUhPTy51dGlsLkhpc3Rvcnk9KGZ1bmN0aW9uKCl7
dmFyIEM9bnVsbDt2YXIgSz1udWxsO3ZhciBGPWZhbHNlO3ZhciBEPVtdO3ZhciBC
PVtdO2Z1bmN0aW9uIEkoKXt2YXIgTSxMO0w9dG9wLmxvY2F0aW9uLmhyZWY7TT1M
LmluZGV4T2YoIiMiKTtyZXR1cm4gTT49MD9MLnN1YnN0cihNKzEpOm51bGw7fWZ1
bmN0aW9uIEEoKXt2YXIgTSxOLE89W10sTD1bXTtmb3IoTSBpbiBEKXtpZihZQUhP
Ty5sYW5nLmhhc093blByb3BlcnR5KEQsTSkpe049RFtNXTtPLnB1c2goTSsiPSIr
Ti5pbml0aWFsU3RhdGUpO0wucHVzaChNKyI9IitOLmN1cnJlbnRTdGF0ZSk7fX1L
LnZhbHVlPU8uam9pbigiJiIpKyJ8IitMLmpvaW4oIiYiKTtpZihZQUhPTy5lbnYu
dWEud2Via2l0KXtLLnZhbHVlKz0ifCIrQi5qb2luKCIsIik7fX1mdW5jdGlvbiBI
KEwpe3ZhciBRLFIsTSxPLFAsVCxTLE47aWYoIUwpe2ZvcihNIGluIEQpe2lmKFlB
SE9PLmxhbmcuaGFzT3duUHJvcGVydHkoRCxNKSl7Tz1EW01dO08uY3VycmVudFN0
YXRlPU8uaW5pdGlhbFN0YXRlO08ub25TdGF0ZUNoYW5nZSh1bmVzY2FwZShPLmN1
cnJlbnRTdGF0ZSkpO319cmV0dXJuO31QPVtdO1Q9TC5zcGxpdCgiJiIpO2ZvcihR
PTAsUj1ULmxlbmd0aDtRPFI7USsrKXtTPVRbUV0uc3BsaXQoIj0iKTtpZihTLmxl
bmd0aD09PTIpe009U1swXTtOPVNbMV07UFtNXT1OO319Zm9yKE0gaW4gRCl7aWYo
WUFIT08ubGFuZy5oYXNPd25Qcm9wZXJ0eShELE0pKXtPPURbTV07Tj1QW01dO2lm
KCFOfHxPLmN1cnJlbnRTdGF0ZSE9PU4pe08uY3VycmVudFN0YXRlPU58fE8uaW5p
dGlhbFN0YXRlO08ub25TdGF0ZUNoYW5nZSh1bmVzY2FwZShPLmN1cnJlbnRTdGF0
ZSkpO319fX1mdW5jdGlvbiBKKE8pe3ZhciBMLE47TD0nPGh0bWw+PGJvZHk+PGRp
diBpZD0ic3RhdGUiPicrTysiPC9kaXY+PC9ib2R5PjwvaHRtbD4iO3RyeXtOPUMu
Y29udGVudFdpbmRvdy5kb2N1bWVudDtOLm9wZW4oKTtOLndyaXRlKEwpO04uY2xv
c2UoKTtyZXR1cm4gdHJ1ZTt9Y2F0Y2goTSl7cmV0dXJuIGZhbHNlO319ZnVuY3Rp
b24gRygpe3ZhciBPLEwsTixNO2lmKCFDLmNvbnRlbnRXaW5kb3d8fCFDLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQpe3NldFRpbWVvdXQoRywxMCk7cmV0dXJuO31PPUMu
Y29udGVudFdpbmRvdy5kb2N1bWVudDtMPU8uZ2V0RWxlbWVudEJ5SWQoInN0YXRl
Iik7Tj1MP0wuaW5uZXJUZXh0Om51bGw7TT1JKCk7c2V0SW50ZXJ2YWwoZnVuY3Rp
b24oKXt2YXIgVSxRLFIsUyxULFA7Tz1DLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7
TD1PLmdldEVsZW1lbnRCeUlkKCJzdGF0ZSIpO1U9TD9MLmlubmVyVGV4dDpudWxs
O1Q9SSgpO2lmKFUhPT1OKXtOPVU7SChOKTtpZighTil7UT1bXTtmb3IoUiBpbiBE
KXtpZihZQUhPTy5sYW5nLmhhc093blByb3BlcnR5KEQsUikpe1M9RFtSXTtRLnB1
c2goUisiPSIrUy5pbml0aWFsU3RhdGUpO319VD1RLmpvaW4oIiYiKTt9ZWxzZXtU
PU47fXRvcC5sb2NhdGlvbi5oYXNoPVQ7TT1UO0EoKTt9ZWxzZXtpZihUIT09TSl7
TT1UO0ooVCk7fX19LDUwKTtGPXRydWU7WUFIT08udXRpbC5IaXN0b3J5Lm9uTG9h
ZEV2ZW50LmZpcmUoKTt9ZnVuY3Rpb24gRSgpe3ZhciBTLFUsUSxXLE0sTyxWLFAs
VCxOLEwsUjtRPUsudmFsdWUuc3BsaXQoInwiKTtpZihRLmxlbmd0aD4xKXtWPVFb
MF0uc3BsaXQoIiYiKTtmb3IoUz0wLFU9Vi5sZW5ndGg7UzxVO1MrKyl7Vz1WW1Nd
LnNwbGl0KCI9Iik7aWYoVy5sZW5ndGg9PT0yKXtNPVdbMF07UD1XWzFdO089RFtN
XTtpZihPKXtPLmluaXRpYWxTdGF0ZT1QO319fVQ9UVsxXS5zcGxpdCgiJiIpO2Zv
cihTPTAsVT1ULmxlbmd0aDtTPFU7UysrKXtXPVRbU10uc3BsaXQoIj0iKTtpZihX
Lmxlbmd0aD49Mil7TT1XWzBdO049V1sxXTtPPURbTV07aWYoTyl7Ty5jdXJyZW50
U3RhdGU9Tjt9fX19aWYoUS5sZW5ndGg+Mil7Qj1RWzJdLnNwbGl0KCIsIik7fWlm
KFlBSE9PLmVudi51YS5pZSl7aWYodHlwZW9mIGRvY3VtZW50LmRvY3VtZW50TW9k
ZT09PSJ1bmRlZmluZWQifHxkb2N1bWVudC5kb2N1bWVudE1vZGU8OCl7RygpO31l
bHNle1lBSE9PLnV0aWwuRXZlbnQub24odG9wLCJoYXNoY2hhbmdlIixmdW5jdGlv
bigpe3ZhciBYPUkoKTtIKFgpO0EoKTt9KTtGPXRydWU7WUFIT08udXRpbC5IaXN0
b3J5Lm9uTG9hZEV2ZW50LmZpcmUoKTt9fWVsc2V7TD1oaXN0b3J5Lmxlbmd0aDtS
PUkoKTtzZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBaLFgsWTtYPUkoKTtZPWhp
c3RvcnkubGVuZ3RoO2lmKFghPT1SKXtSPVg7TD1ZO0goUik7QSgpO31lbHNle2lm
KFkhPT1MJiZZQUhPTy5lbnYudWEud2Via2l0KXtSPVg7TD1ZO1o9QltMLTFdO0go
Wik7QSgpO319fSw1MCk7Rj10cnVlO1lBSE9PLnV0aWwuSGlzdG9yeS5vbkxvYWRF
dmVudC5maXJlKCk7fX1yZXR1cm57b25Mb2FkRXZlbnQ6bmV3IFlBSE9PLnV0aWwu
Q3VzdG9tRXZlbnQoIm9uTG9hZCIpLG9uUmVhZHk6ZnVuY3Rpb24oTSxOLEwpe2lm
KEYpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgTz13aW5kb3c7aWYoTCl7aWYo
TD09PXRydWUpe089Tjt9ZWxzZXtPPUw7fX1NLmNhbGwoTywib25Mb2FkIixbXSxO
KTt9LDApO31lbHNle1lBSE9PLnV0aWwuSGlzdG9yeS5vbkxvYWRFdmVudC5zdWJz
Y3JpYmUoTSxOLEwpO319LHJlZ2lzdGVyOmZ1bmN0aW9uKE8sTCxRLFIsTil7dmFy
IFAsTTtpZih0eXBlb2YgTyE9PSJzdHJpbmcifHxZQUhPTy5sYW5nLnRyaW0oTyk9
PT0iInx8dHlwZW9mIEwhPT0ic3RyaW5nInx8dHlwZW9mIFEhPT0iZnVuY3Rpb24i
KXt0aHJvdyBuZXcgRXJyb3IoIk1pc3Npbmcgb3IgaW52YWxpZCBhcmd1bWVudCIp
O31pZihEW09dKXtyZXR1cm47fWlmKEYpe3Rocm93IG5ldyBFcnJvcigiQWxsIG1v
ZHVsZXMgbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBjYWxsaW5nIFlBSE9PLnV0
aWwuSGlzdG9yeS5pbml0aWFsaXplIik7fU89ZXNjYXBlKE8pO0w9ZXNjYXBlKEwp
O1A9bnVsbDtpZihOPT09dHJ1ZSl7UD1SO31lbHNle1A9Tjt9TT1mdW5jdGlvbihT
KXtyZXR1cm4gUS5jYWxsKFAsUyxSKTt9O0RbT109e25hbWU6Tyxpbml0aWFsU3Rh
dGU6TCxjdXJyZW50U3RhdGU6TCxvblN0YXRlQ2hhbmdlOk19O30saW5pdGlhbGl6
ZTpmdW5jdGlvbihMLE0pe2lmKEYpe3JldHVybjt9aWYoWUFIT08uZW52LnVhLm9w
ZXJhJiZ0eXBlb2YgaGlzdG9yeS5uYXZpZ2F0aW9uTW9kZSE9PSJ1bmRlZmluZWQi
KXtoaXN0b3J5Lm5hdmlnYXRpb25Nb2RlPSJjb21wYXRpYmxlIjt9aWYodHlwZW9m
IEw9PT0ic3RyaW5nIil7TD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChMKTt9aWYo
IUx8fEwudGFnTmFtZS50b1VwcGVyQ2FzZSgpIT09IlRFWFRBUkVBIiYmKEwudGFn
TmFtZS50b1VwcGVyQ2FzZSgpIT09IklOUFVUInx8TC50eXBlIT09ImhpZGRlbiIm
JkwudHlwZSE9PSJ0ZXh0Iikpe3Rocm93IG5ldyBFcnJvcigiTWlzc2luZyBvciBp
bnZhbGlkIGFyZ3VtZW50Iik7fUs9TDtpZihZQUhPTy5lbnYudWEuaWUmJih0eXBl
b2YgZG9jdW1lbnQuZG9jdW1lbnRNb2RlPT09InVuZGVmaW5lZCJ8fGRvY3VtZW50
LmRvY3VtZW50TW9kZTw4KSl7aWYodHlwZW9mIE09PT0ic3RyaW5nIil7TT1kb2N1
bWVudC5nZXRFbGVtZW50QnlJZChNKTt9aWYoIU18fE0udGFnTmFtZS50b1VwcGVy
Q2FzZSgpIT09IklGUkFNRSIpe3Rocm93IG5ldyBFcnJvcigiTWlzc2luZyBvciBp
bnZhbGlkIGFyZ3VtZW50Iik7fUM9TTt9WUFIT08udXRpbC5FdmVudC5vbkRPTVJl
YWR5KEUpO30sbmF2aWdhdGU6ZnVuY3Rpb24oTSxOKXt2YXIgTDtpZih0eXBlb2Yg
TSE9PSJzdHJpbmcifHx0eXBlb2YgTiE9PSJzdHJpbmciKXt0aHJvdyBuZXcgRXJy
b3IoIk1pc3Npbmcgb3IgaW52YWxpZCBhcmd1bWVudCIpO31MPXt9O0xbTV09Tjty
ZXR1cm4gWUFIT08udXRpbC5IaXN0b3J5Lm11bHRpTmF2aWdhdGUoTCk7fSxtdWx0
aU5hdmlnYXRlOmZ1bmN0aW9uKE0pe3ZhciBMLE4sUCxPLFE7aWYodHlwZW9mIE0h
PT0ib2JqZWN0Iil7dGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9yIGludmFsaWQg
YXJndW1lbnQiKTt9aWYoIUYpe3Rocm93IG5ldyBFcnJvcigiVGhlIEJyb3dzZXIg
SGlzdG9yeSBNYW5hZ2VyIGlzIG5vdCBpbml0aWFsaXplZCIpO31mb3IoTiBpbiBN
KXtpZighRFtOXSl7dGhyb3cgbmV3IEVycm9yKCJUaGUgZm9sbG93aW5nIG1vZHVs
ZSBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZDogIitOKTt9fUw9W107Zm9yKE4gaW4g
RCl7aWYoWUFIT08ubGFuZy5oYXNPd25Qcm9wZXJ0eShELE4pKXtQPURbTl07aWYo
WUFIT08ubGFuZy5oYXNPd25Qcm9wZXJ0eShNLE4pKXtPPU1bdW5lc2NhcGUoTild
O31lbHNle089dW5lc2NhcGUoUC5jdXJyZW50U3RhdGUpO31OPWVzY2FwZShOKTtP
PWVzY2FwZShPKTtMLnB1c2goTisiPSIrTyk7fX1RPUwuam9pbigiJiIpO2lmKFlB
SE9PLmVudi51YS5pZSYmKHR5cGVvZiBkb2N1bWVudC5kb2N1bWVudE1vZGU9PT0i
dW5kZWZpbmVkInx8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlPDgpKXtyZXR1cm4gSihR
KTt9ZWxzZXt0b3AubG9jYXRpb24uaGFzaD1RO2lmKFlBSE9PLmVudi51YS53ZWJr
aXQpe0JbaGlzdG9yeS5sZW5ndGhdPVE7QSgpO31yZXR1cm4gdHJ1ZTt9fSxnZXRD
dXJyZW50U3RhdGU6ZnVuY3Rpb24oTCl7dmFyIE07aWYodHlwZW9mIEwhPT0ic3Ry
aW5nIil7dGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9yIGludmFsaWQgYXJndW1l
bnQiKTt9aWYoIUYpe3Rocm93IG5ldyBFcnJvcigiVGhlIEJyb3dzZXIgSGlzdG9y
eSBNYW5hZ2VyIGlzIG5vdCBpbml0aWFsaXplZCIpO31NPURbTF07aWYoIU0pe3Ro
cm93IG5ldyBFcnJvcigiTm8gc3VjaCByZWdpc3RlcmVkIG1vZHVsZTogIitMKTt9
cmV0dXJuIHVuZXNjYXBlKE0uY3VycmVudFN0YXRlKTt9LGdldEJvb2ttYXJrZWRT
dGF0ZTpmdW5jdGlvbihRKXt2YXIgUCxNLEwsUyxOLFIsTztpZih0eXBlb2YgUSE9
PSJzdHJpbmciKXt0aHJvdyBuZXcgRXJyb3IoIk1pc3Npbmcgb3IgaW52YWxpZCBh
cmd1bWVudCIpO31MPXRvcC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIiMiKTtpZihM
Pj0wKXtTPXRvcC5sb2NhdGlvbi5ocmVmLnN1YnN0cihMKzEpO049Uy5zcGxpdCgi
JiIpO2ZvcihQPTAsTT1OLmxlbmd0aDtQPE07UCsrKXtSPU5bUF0uc3BsaXQoIj0i
KTtpZihSLmxlbmd0aD09PTIpe089UlswXTtpZihPPT09USl7cmV0dXJuIHVuZXNj
YXBlKFJbMV0pO319fX1yZXR1cm4gbnVsbDt9LGdldFF1ZXJ5U3RyaW5nUGFyYW1l
dGVyOmZ1bmN0aW9uKFEsTil7dmFyIE8sTSxMLFMsUixQO049Tnx8dG9wLmxvY2F0
aW9uLmhyZWY7TD1OLmluZGV4T2YoIj8iKTtTPUw+PTA/Ti5zdWJzdHIoTCsxKTpO
O0w9Uy5sYXN0SW5kZXhPZigiIyIpO1M9TD49MD9TLnN1YnN0cigwLEwpOlM7Uj1T
LnNwbGl0KCImIik7Zm9yKE89MCxNPVIubGVuZ3RoO088TTtPKyspe1A9UltPXS5z
cGxpdCgiPSIpO2lmKFAubGVuZ3RoPj0yKXtpZihQWzBdPT09USl7cmV0dXJuIHVu
ZXNjYXBlKFBbMV0pO319fXJldHVybiBudWxsO319O30pKCk7WUFIT08ucmVnaXN0
ZXIoImhpc3RvcnkiLFlBSE9PLnV0aWwuSGlzdG9yeSx7dmVyc2lvbjoiMi43LjAi
LGJ1aWxkOiIxNzk5In0pOy8qCkNvcHlyaWdodCAoYykgMjAwOSwgWWFob28hIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KQ29kZSBsaWNlbnNlZCB1bmRlciB0aGUg
QlNEIExpY2Vuc2U6Cmh0dHA6Ly9kZXZlbG9wZXIueWFob28ubmV0L3l1aS9saWNl
bnNlLnR4dAp2ZXJzaW9uOiAyLjcuMAoqLwpZQUhPTy5sYW5nLkpTT049KGZ1bmN0
aW9uKCl7dmFyIGw9WUFIT08ubGFuZyxfVU5JQ09ERV9FWENFUFRJT05TPS9bXHUw
MDAwXHUwMGFkXHUwNjAwLVx1MDYwNFx1MDcwZlx1MTdiNFx1MTdiNVx1MjAwYy1c
dTIwMGZcdTIwMjgtXHUyMDJmXHUyMDYwLVx1MjA2Zlx1ZmVmZlx1ZmZmMC1cdWZm
ZmZdL2csX0VTQ0FQRVM9L1xcKD86WyJcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0
fSkvZyxfVkFMVUVTPS8iW14iXFxcblxyXSoifHRydWV8ZmFsc2V8bnVsbHwtP1xk
Kyg/OlwuXGQqKT8oPzpbZUVdWytcLV0/XGQrKT8vZyxfQlJBQ0tFVFM9Lyg/Ol58
OnwsKSg/OlxzKlxbKSsvZyxfSU5WQUxJRD0vXltcXSw6e31cc10qJC8sX1NQRUNJ
QUxfQ0hBUlM9L1tcXFwiXHgwMC1ceDFmXHg3Zi1ceDlmXHUwMGFkXHUwNjAwLVx1
MDYwNFx1MDcwZlx1MTdiNFx1MTdiNVx1MjAwYy1cdTIwMGZcdTIwMjgtXHUyMDJm
XHUyMDYwLVx1MjA2Zlx1ZmVmZlx1ZmZmMC1cdWZmZmZdL2csX0NIQVJTPXsiXGIi
OiJcXGIiLCJcdCI6IlxcdCIsIlxuIjoiXFxuIiwiXGYiOiJcXGYiLCJcciI6Ilxc
ciIsJyInOidcXCInLCJcXCI6IlxcXFwifTtmdW5jdGlvbiBfcmV2aXZlKGRhdGEs
cmV2aXZlcil7dmFyIHdhbGs9ZnVuY3Rpb24obyxrZXkpe3ZhciBrLHYsdmFsdWU9
b1trZXldO2lmKHZhbHVlJiZ0eXBlb2YgdmFsdWU9PT0ib2JqZWN0Iil7Zm9yKGsg
aW4gdmFsdWUpe2lmKGwuaGFzT3duUHJvcGVydHkodmFsdWUsaykpe3Y9d2Fsayh2
YWx1ZSxrKTtpZih2PT09dW5kZWZpbmVkKXtkZWxldGUgdmFsdWVba107fWVsc2V7
dmFsdWVba109djt9fX19cmV0dXJuIHJldml2ZXIuY2FsbChvLGtleSx2YWx1ZSk7
fTtyZXR1cm4gdHlwZW9mIHJldml2ZXI9PT0iZnVuY3Rpb24iP3dhbGsoeyIiOmRh
dGF9LCIiKTpkYXRhO31mdW5jdGlvbiBfY2hhcihjKXtpZighX0NIQVJTW2NdKXtf
Q0hBUlNbY109IlxcdSIrKCIwMDAwIisoKyhjLmNoYXJDb2RlQXQoMCkpKS50b1N0
cmluZygxNikpLnNsaWNlKC00KTt9cmV0dXJuIF9DSEFSU1tjXTt9ZnVuY3Rpb24g
X3ByZXBhcmUocyl7cmV0dXJuIHMucmVwbGFjZShfVU5JQ09ERV9FWENFUFRJT05T
LF9jaGFyKTt9ZnVuY3Rpb24gX2lzVmFsaWQoc3RyKXtyZXR1cm4gbC5pc1N0cmlu
ZyhzdHIpJiZfSU5WQUxJRC50ZXN0KHN0ci5yZXBsYWNlKF9FU0NBUEVTLCJAIiku
cmVwbGFjZShfVkFMVUVTLCJdIikucmVwbGFjZShfQlJBQ0tFVFMsIiIpKTt9ZnVu
Y3Rpb24gX3N0cmluZyhzKXtyZXR1cm4nIicrcy5yZXBsYWNlKF9TUEVDSUFMX0NI
QVJTLF9jaGFyKSsnIic7fWZ1bmN0aW9uIF9zdHJpbmdpZnkoaCxrZXksZCx3LHBz
dGFjayl7dmFyIG89dHlwZW9mIHc9PT0iZnVuY3Rpb24iP3cuY2FsbChoLGtleSxo
W2tleV0pOmhba2V5XSxpLGxlbixqLGssdixpc0FycmF5LGE7aWYobyBpbnN0YW5j
ZW9mIERhdGUpe289bC5KU09OLmRhdGVUb1N0cmluZyhvKTt9ZWxzZXtpZihvIGlu
c3RhbmNlb2YgU3RyaW5nfHxvIGluc3RhbmNlb2YgQm9vbGVhbnx8byBpbnN0YW5j
ZW9mIE51bWJlcil7bz1vLnZhbHVlT2YoKTt9fXN3aXRjaCh0eXBlb2Ygbyl7Y2Fz
ZSJzdHJpbmciOnJldHVybiBfc3RyaW5nKG8pO2Nhc2UibnVtYmVyIjpyZXR1cm4g
aXNGaW5pdGUobyk/U3RyaW5nKG8pOiJudWxsIjtjYXNlImJvb2xlYW4iOnJldHVy
biBTdHJpbmcobyk7Y2FzZSJvYmplY3QiOmlmKG89PT1udWxsKXtyZXR1cm4ibnVs
bCI7fWZvcihpPXBzdGFjay5sZW5ndGgtMTtpPj0wOy0taSl7aWYocHN0YWNrW2ld
PT09byl7cmV0dXJuIm51bGwiO319cHN0YWNrW3BzdGFjay5sZW5ndGhdPW87YT1b
XTtpc0FycmF5PWwuaXNBcnJheShvKTtpZihkPjApe2lmKGlzQXJyYXkpe2Zvcihp
PW8ubGVuZ3RoLTE7aT49MDstLWkpe2FbaV09X3N0cmluZ2lmeShvLGksZC0xLHcs
cHN0YWNrKXx8Im51bGwiO319ZWxzZXtqPTA7aWYobC5pc0FycmF5KHcpKXtmb3Io
aT0wLGxlbj13Lmxlbmd0aDtpPGxlbjsrK2kpe2s9d1tpXTt2PV9zdHJpbmdpZnko
byxrLGQtMSx3LHBzdGFjayk7aWYodil7YVtqKytdPV9zdHJpbmcoaykrIjoiK3Y7
fX19ZWxzZXtmb3IoayBpbiBvKXtpZih0eXBlb2Ygaz09PSJzdHJpbmciJiZsLmhh
c093blByb3BlcnR5KG8saykpe3Y9X3N0cmluZ2lmeShvLGssZC0xLHcscHN0YWNr
KTtpZih2KXthW2orK109X3N0cmluZyhrKSsiOiIrdjt9fX19YS5zb3J0KCk7fX1w
c3RhY2sucG9wKCk7cmV0dXJuIGlzQXJyYXk/IlsiK2Euam9pbigiLCIpKyJdIjoi
eyIrYS5qb2luKCIsIikrIn0iO31yZXR1cm4gdW5kZWZpbmVkO31yZXR1cm57aXNW
YWxpZDpmdW5jdGlvbihzKXtyZXR1cm4gX2lzVmFsaWQoX3ByZXBhcmUocykpO30s
cGFyc2U6ZnVuY3Rpb24ocyxyZXZpdmVyKXtzPV9wcmVwYXJlKHMpO2lmKF9pc1Zh
bGlkKHMpKXtyZXR1cm4gX3Jldml2ZShldmFsKCIoIitzKyIpIikscmV2aXZlcik7
fXRocm93IG5ldyBTeW50YXhFcnJvcigicGFyc2VKU09OIik7fSxzdHJpbmdpZnk6
ZnVuY3Rpb24obyx3LGQpe2lmKG8hPT11bmRlZmluZWQpe2lmKGwuaXNBcnJheSh3
KSl7dz0oZnVuY3Rpb24oYSl7dmFyIHVuaXE9W10sbWFwPXt9LHYsaSxqLGxlbjtm
b3IoaT0wLGo9MCxsZW49YS5sZW5ndGg7aTxsZW47KytpKXt2PWFbaV07aWYodHlw
ZW9mIHY9PT0ic3RyaW5nIiYmbWFwW3ZdPT09dW5kZWZpbmVkKXt1bmlxWyhtYXBb
dl09aisrKV09djt9fXJldHVybiB1bmlxO30pKHcpO31kPWQ+PTA/ZDoxLzA7cmV0
dXJuIF9zdHJpbmdpZnkoeyIiOm99LCIiLGQsdyxbXSk7fXJldHVybiB1bmRlZmlu
ZWQ7fSxkYXRlVG9TdHJpbmc6ZnVuY3Rpb24oZCl7ZnVuY3Rpb24gX3plcm9QYWQo
dil7cmV0dXJuIHY8MTA/IjAiK3Y6djt9cmV0dXJuIGQuZ2V0VVRDRnVsbFllYXIo
KSsiLSIrX3plcm9QYWQoZC5nZXRVVENNb250aCgpKzEpKyItIitfemVyb1BhZChk
LmdldFVUQ0RhdGUoKSkrIlQiK196ZXJvUGFkKGQuZ2V0VVRDSG91cnMoKSkrIjoi
K196ZXJvUGFkKGQuZ2V0VVRDTWludXRlcygpKSsiOiIrX3plcm9QYWQoZC5nZXRV
VENTZWNvbmRzKCkpKyJaIjt9LHN0cmluZ1RvRGF0ZTpmdW5jdGlvbihzdHIpe2lm
KC9eKFxkezR9KS0oXGR7Mn0pLShcZHsyfSlUKFxkezJ9KTooXGR7Mn0pOihcZHsy
fSlaJC8udGVzdChzdHIpKXt2YXIgZD1uZXcgRGF0ZSgpO2Quc2V0VVRDRnVsbFll
YXIoUmVnRXhwLiQxLChSZWdFeHAuJDJ8MCktMSxSZWdFeHAuJDMpO2Quc2V0VVRD
SG91cnMoUmVnRXhwLiQ0LFJlZ0V4cC4kNSxSZWdFeHAuJDYpO3JldHVybiBkO31y
ZXR1cm4gc3RyO319O30pKCk7WUFIT08ucmVnaXN0ZXIoImpzb24iLFlBSE9PLmxh
bmcuSlNPTix7dmVyc2lvbjoiMi43LjAiLGJ1aWxkOiIxNzk5In0pOy8qCkNvcHly
aWdodCAoYykgMjAwOSwgWWFob28hIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
Q29kZSBsaWNlbnNlZCB1bmRlciB0aGUgQlNEIExpY2Vuc2U6Cmh0dHA6Ly9kZXZl
bG9wZXIueWFob28ubmV0L3l1aS9saWNlbnNlLnR4dAp2ZXJzaW9uOiAyLjcuMAoq
LwpZQUhPTy51dGlsLkF0dHJpYnV0ZT1mdW5jdGlvbihCLEEpe2lmKEEpe3RoaXMu
b3duZXI9QTt0aGlzLmNvbmZpZ3VyZShCLHRydWUpO319O1lBSE9PLnV0aWwuQXR0
cmlidXRlLnByb3RvdHlwZT17bmFtZTp1bmRlZmluZWQsdmFsdWU6bnVsbCxvd25l
cjpudWxsLHJlYWRPbmx5OmZhbHNlLHdyaXRlT25jZTpmYWxzZSxfaW5pdGlhbENv
bmZpZzpudWxsLF93cml0dGVuOmZhbHNlLG1ldGhvZDpudWxsLHNldHRlcjpudWxs
LGdldHRlcjpudWxsLHZhbGlkYXRvcjpudWxsLGdldFZhbHVlOmZ1bmN0aW9uKCl7
dmFyIEE9dGhpcy52YWx1ZTtpZih0aGlzLmdldHRlcil7QT10aGlzLmdldHRlci5j
YWxsKHRoaXMub3duZXIsdGhpcy5uYW1lKTt9cmV0dXJuIEE7fSxzZXRWYWx1ZTpm
dW5jdGlvbihGLEIpe3ZhciBFLEE9dGhpcy5vd25lcixDPXRoaXMubmFtZTt2YXIg
RD17dHlwZTpDLHByZXZWYWx1ZTp0aGlzLmdldFZhbHVlKCksbmV3VmFsdWU6Rn07
aWYodGhpcy5yZWFkT25seXx8KHRoaXMud3JpdGVPbmNlJiZ0aGlzLl93cml0dGVu
KSl7cmV0dXJuIGZhbHNlO31pZih0aGlzLnZhbGlkYXRvciYmIXRoaXMudmFsaWRh
dG9yLmNhbGwoQSxGKSl7cmV0dXJuIGZhbHNlO31pZighQil7RT1BLmZpcmVCZWZv
cmVDaGFuZ2VFdmVudChEKTtpZihFPT09ZmFsc2Upe3JldHVybiBmYWxzZTt9fWlm
KHRoaXMuc2V0dGVyKXtGPXRoaXMuc2V0dGVyLmNhbGwoQSxGLHRoaXMubmFtZSk7
aWYoRj09PXVuZGVmaW5lZCl7fX1pZih0aGlzLm1ldGhvZCl7dGhpcy5tZXRob2Qu
Y2FsbChBLEYsdGhpcy5uYW1lKTt9dGhpcy52YWx1ZT1GO3RoaXMuX3dyaXR0ZW49
dHJ1ZTtELnR5cGU9QztpZighQil7dGhpcy5vd25lci5maXJlQ2hhbmdlRXZlbnQo
RCk7fXJldHVybiB0cnVlO30sY29uZmlndXJlOmZ1bmN0aW9uKEIsQyl7Qj1CfHx7
fTtpZihDKXt0aGlzLl93cml0dGVuPWZhbHNlO310aGlzLl9pbml0aWFsQ29uZmln
PXRoaXMuX2luaXRpYWxDb25maWd8fHt9O2Zvcih2YXIgQSBpbiBCKXtpZihCLmhh
c093blByb3BlcnR5KEEpKXt0aGlzW0FdPUJbQV07aWYoQyl7dGhpcy5faW5pdGlh
bENvbmZpZ1tBXT1CW0FdO319fX0scmVzZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVy
biB0aGlzLnNldFZhbHVlKHRoaXMuX2luaXRpYWxDb25maWcudmFsdWUpO30scmVz
ZXRDb25maWc6ZnVuY3Rpb24oKXt0aGlzLmNvbmZpZ3VyZSh0aGlzLl9pbml0aWFs
Q29uZmlnLHRydWUpO30scmVmcmVzaDpmdW5jdGlvbihBKXt0aGlzLnNldFZhbHVl
KHRoaXMudmFsdWUsQSk7fX07KGZ1bmN0aW9uKCl7dmFyIEE9WUFIT08udXRpbC5M
YW5nO1lBSE9PLnV0aWwuQXR0cmlidXRlUHJvdmlkZXI9ZnVuY3Rpb24oKXt9O1lB
SE9PLnV0aWwuQXR0cmlidXRlUHJvdmlkZXIucHJvdG90eXBlPXtfY29uZmlnczpu
dWxsLGdldDpmdW5jdGlvbihDKXt0aGlzLl9jb25maWdzPXRoaXMuX2NvbmZpZ3N8
fHt9O3ZhciBCPXRoaXMuX2NvbmZpZ3NbQ107aWYoIUJ8fCF0aGlzLl9jb25maWdz
Lmhhc093blByb3BlcnR5KEMpKXtyZXR1cm4gbnVsbDt9cmV0dXJuIEIuZ2V0VmFs
dWUoKTt9LHNldDpmdW5jdGlvbihELEUsQil7dGhpcy5fY29uZmlncz10aGlzLl9j
b25maWdzfHx7fTt2YXIgQz10aGlzLl9jb25maWdzW0RdO2lmKCFDKXtyZXR1cm4g
ZmFsc2U7fXJldHVybiBDLnNldFZhbHVlKEUsQik7fSxnZXRBdHRyaWJ1dGVLZXlz
OmZ1bmN0aW9uKCl7dGhpcy5fY29uZmlncz10aGlzLl9jb25maWdzO3ZhciBDPVtd
LEI7Zm9yKEIgaW4gdGhpcy5fY29uZmlncyl7aWYoQS5oYXNPd25Qcm9wZXJ0eSh0
aGlzLl9jb25maWdzLEIpJiYhQS5pc1VuZGVmaW5lZCh0aGlzLl9jb25maWdzW0Jd
KSl7Q1tDLmxlbmd0aF09Qjt9fXJldHVybiBDO30sc2V0QXR0cmlidXRlczpmdW5j
dGlvbihELEIpe2Zvcih2YXIgQyBpbiBEKXtpZihBLmhhc093blByb3BlcnR5KEQs
Qykpe3RoaXMuc2V0KEMsRFtDXSxCKTt9fX0scmVzZXRWYWx1ZTpmdW5jdGlvbihD
LEIpe3RoaXMuX2NvbmZpZ3M9dGhpcy5fY29uZmlnc3x8e307aWYodGhpcy5fY29u
Zmlnc1tDXSl7dGhpcy5zZXQoQyx0aGlzLl9jb25maWdzW0NdLl9pbml0aWFsQ29u
ZmlnLnZhbHVlLEIpO3JldHVybiB0cnVlO31yZXR1cm4gZmFsc2U7fSxyZWZyZXNo
OmZ1bmN0aW9uKEUsQyl7dGhpcy5fY29uZmlncz10aGlzLl9jb25maWdzfHx7fTt2
YXIgRj10aGlzLl9jb25maWdzO0U9KChBLmlzU3RyaW5nKEUpKT9bRV06RSl8fHRo
aXMuZ2V0QXR0cmlidXRlS2V5cygpO2Zvcih2YXIgRD0wLEI9RS5sZW5ndGg7RDxC
OysrRCl7aWYoRi5oYXNPd25Qcm9wZXJ0eShFW0RdKSl7dGhpcy5fY29uZmlnc1tF
W0RdXS5yZWZyZXNoKEMpO319fSxyZWdpc3RlcjpmdW5jdGlvbihCLEMpe3RoaXMu
c2V0QXR0cmlidXRlQ29uZmlnKEIsQyk7fSxnZXRBdHRyaWJ1dGVDb25maWc6ZnVu
Y3Rpb24oQyl7dGhpcy5fY29uZmlncz10aGlzLl9jb25maWdzfHx7fTt2YXIgQj10
aGlzLl9jb25maWdzW0NdfHx7fTt2YXIgRD17fTtmb3IoQyBpbiBCKXtpZihBLmhh
c093blByb3BlcnR5KEIsQykpe0RbQ109QltDXTt9fXJldHVybiBEO30sc2V0QXR0
cmlidXRlQ29uZmlnOmZ1bmN0aW9uKEIsQyxEKXt0aGlzLl9jb25maWdzPXRoaXMu
X2NvbmZpZ3N8fHt9O0M9Q3x8e307aWYoIXRoaXMuX2NvbmZpZ3NbQl0pe0MubmFt
ZT1CO3RoaXMuX2NvbmZpZ3NbQl09dGhpcy5jcmVhdGVBdHRyaWJ1dGUoQyk7fWVs
c2V7dGhpcy5fY29uZmlnc1tCXS5jb25maWd1cmUoQyxEKTt9fSxjb25maWd1cmVB
dHRyaWJ1dGU6ZnVuY3Rpb24oQixDLEQpe3RoaXMuc2V0QXR0cmlidXRlQ29uZmln
KEIsQyxEKTt9LHJlc2V0QXR0cmlidXRlQ29uZmlnOmZ1bmN0aW9uKEIpe3RoaXMu
X2NvbmZpZ3M9dGhpcy5fY29uZmlnc3x8e307dGhpcy5fY29uZmlnc1tCXS5yZXNl
dENvbmZpZygpO30sc3Vic2NyaWJlOmZ1bmN0aW9uKEIsQyl7dGhpcy5fZXZlbnRz
PXRoaXMuX2V2ZW50c3x8e307aWYoIShCIGluIHRoaXMuX2V2ZW50cykpe3RoaXMu
X2V2ZW50c1tCXT10aGlzLmNyZWF0ZUV2ZW50KEIpO31ZQUhPTy51dGlsLkV2ZW50
UHJvdmlkZXIucHJvdG90eXBlLnN1YnNjcmliZS5hcHBseSh0aGlzLGFyZ3VtZW50
cyk7fSxvbjpmdW5jdGlvbigpe3RoaXMuc3Vic2NyaWJlLmFwcGx5KHRoaXMsYXJn
dW1lbnRzKTt9LGFkZExpc3RlbmVyOmZ1bmN0aW9uKCl7dGhpcy5zdWJzY3JpYmUu
YXBwbHkodGhpcyxhcmd1bWVudHMpO30sZmlyZUJlZm9yZUNoYW5nZUV2ZW50OmZ1
bmN0aW9uKEMpe3ZhciBCPSJiZWZvcmUiO0IrPUMudHlwZS5jaGFyQXQoMCkudG9V
cHBlckNhc2UoKStDLnR5cGUuc3Vic3RyKDEpKyJDaGFuZ2UiO0MudHlwZT1CO3Jl
dHVybiB0aGlzLmZpcmVFdmVudChDLnR5cGUsQyk7fSxmaXJlQ2hhbmdlRXZlbnQ6
ZnVuY3Rpb24oQil7Qi50eXBlKz0iQ2hhbmdlIjtyZXR1cm4gdGhpcy5maXJlRXZl
bnQoQi50eXBlLEIpO30sY3JlYXRlQXR0cmlidXRlOmZ1bmN0aW9uKEIpe3JldHVy
biBuZXcgWUFIT08udXRpbC5BdHRyaWJ1dGUoQix0aGlzKTt9fTtZQUhPTy5hdWdt
ZW50KFlBSE9PLnV0aWwuQXR0cmlidXRlUHJvdmlkZXIsWUFIT08udXRpbC5FdmVu
dFByb3ZpZGVyKTt9KSgpOyhmdW5jdGlvbigpe3ZhciBCPVlBSE9PLnV0aWwuRG9t
LEM9WUFIT08udXRpbC5BdHRyaWJ1dGVQcm92aWRlcjt2YXIgQT1mdW5jdGlvbihE
LEUpe3RoaXMuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fTtBLkRPTV9FVkVO
VFM9eyJjbGljayI6dHJ1ZSwiZGJsY2xpY2siOnRydWUsImtleWRvd24iOnRydWUs
ImtleXByZXNzIjp0cnVlLCJrZXl1cCI6dHJ1ZSwibW91c2Vkb3duIjp0cnVlLCJt
b3VzZW1vdmUiOnRydWUsIm1vdXNlb3V0Ijp0cnVlLCJtb3VzZW92ZXIiOnRydWUs
Im1vdXNldXAiOnRydWUsImZvY3VzIjp0cnVlLCJibHVyIjp0cnVlLCJzdWJtaXQi
OnRydWUsImNoYW5nZSI6dHJ1ZX07QS5wcm90b3R5cGU9e0RPTV9FVkVOVFM6bnVs
bCxERUZBVUxUX0hUTUxfU0VUVEVSOmZ1bmN0aW9uKEYsRCl7dmFyIEU9dGhpcy5n
ZXQoImVsZW1lbnQiKTtpZihFKXtFW0RdPUY7fX0sREVGQVVMVF9IVE1MX0dFVFRF
UjpmdW5jdGlvbihEKXt2YXIgRT10aGlzLmdldCgiZWxlbWVudCIpLEY7aWYoRSl7
Rj1FW0RdO31yZXR1cm4gRjt9LGFwcGVuZENoaWxkOmZ1bmN0aW9uKEQpe0Q9RC5n
ZXQ/RC5nZXQoImVsZW1lbnQiKTpEO3JldHVybiB0aGlzLmdldCgiZWxlbWVudCIp
LmFwcGVuZENoaWxkKEQpO30sZ2V0RWxlbWVudHNCeVRhZ05hbWU6ZnVuY3Rpb24o
RCl7cmV0dXJuIHRoaXMuZ2V0KCJlbGVtZW50IikuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoRCk7fSxoYXNDaGlsZE5vZGVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0
KCJlbGVtZW50IikuaGFzQ2hpbGROb2RlcygpO30saW5zZXJ0QmVmb3JlOmZ1bmN0
aW9uKEQsRSl7RD1ELmdldD9ELmdldCgiZWxlbWVudCIpOkQ7RT0oRSYmRS5nZXQp
P0UuZ2V0KCJlbGVtZW50Iik6RTtyZXR1cm4gdGhpcy5nZXQoImVsZW1lbnQiKS5p
bnNlcnRCZWZvcmUoRCxFKTt9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKEQpe0Q9RC5n
ZXQ/RC5nZXQoImVsZW1lbnQiKTpEO3JldHVybiB0aGlzLmdldCgiZWxlbWVudCIp
LnJlbW92ZUNoaWxkKEQpO30scmVwbGFjZUNoaWxkOmZ1bmN0aW9uKEQsRSl7RD1E
LmdldD9ELmdldCgiZWxlbWVudCIpOkQ7RT1FLmdldD9FLmdldCgiZWxlbWVudCIp
OkU7cmV0dXJuIHRoaXMuZ2V0KCJlbGVtZW50IikucmVwbGFjZUNoaWxkKEQsRSk7
fSxpbml0QXR0cmlidXRlczpmdW5jdGlvbihEKXt9LGFkZExpc3RlbmVyOmZ1bmN0
aW9uKEgsRyxJLEYpe3ZhciBFPXRoaXMuZ2V0KCJlbGVtZW50Iil8fHRoaXMuZ2V0
KCJpZCIpO0Y9Rnx8dGhpczt2YXIgRD10aGlzO2lmKCF0aGlzLl9ldmVudHNbSF0p
e2lmKEUmJnRoaXMuRE9NX0VWRU5UU1tIXSl7WUFIT08udXRpbC5FdmVudC5hZGRM
aXN0ZW5lcihFLEgsZnVuY3Rpb24oSil7aWYoSi5zcmNFbGVtZW50JiYhSi50YXJn
ZXQpe0oudGFyZ2V0PUouc3JjRWxlbWVudDt9RC5maXJlRXZlbnQoSCxKKTt9LEks
Rik7fXRoaXMuY3JlYXRlRXZlbnQoSCx0aGlzKTt9cmV0dXJuIFlBSE9PLnV0aWwu
RXZlbnRQcm92aWRlci5wcm90b3R5cGUuc3Vic2NyaWJlLmFwcGx5KHRoaXMsYXJn
dW1lbnRzKTt9LG9uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIu
YXBwbHkodGhpcyxhcmd1bWVudHMpO30sc3Vic2NyaWJlOmZ1bmN0aW9uKCl7cmV0
dXJuIHRoaXMuYWRkTGlzdGVuZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpO30scmVt
b3ZlTGlzdGVuZXI6ZnVuY3Rpb24oRSxEKXtyZXR1cm4gdGhpcy51bnN1YnNjcmli
ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fSxhZGRDbGFzczpmdW5jdGlvbihEKXtC
LmFkZENsYXNzKHRoaXMuZ2V0KCJlbGVtZW50IiksRCk7fSxnZXRFbGVtZW50c0J5
Q2xhc3NOYW1lOmZ1bmN0aW9uKEUsRCl7cmV0dXJuIEIuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZShFLEQsdGhpcy5nZXQoImVsZW1lbnQiKSk7fSxoYXNDbGFzczpmdW5j
dGlvbihEKXtyZXR1cm4gQi5oYXNDbGFzcyh0aGlzLmdldCgiZWxlbWVudCIpLEQp
O30scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oRCl7cmV0dXJuIEIucmVtb3ZlQ2xhc3Mo
dGhpcy5nZXQoImVsZW1lbnQiKSxEKTt9LHJlcGxhY2VDbGFzczpmdW5jdGlvbihF
LEQpe3JldHVybiBCLnJlcGxhY2VDbGFzcyh0aGlzLmdldCgiZWxlbWVudCIpLEUs
RCk7fSxzZXRTdHlsZTpmdW5jdGlvbihFLEQpe3JldHVybiBCLnNldFN0eWxlKHRo
aXMuZ2V0KCJlbGVtZW50IiksRSxEKTt9LGdldFN0eWxlOmZ1bmN0aW9uKEQpe3Jl
dHVybiBCLmdldFN0eWxlKHRoaXMuZ2V0KCJlbGVtZW50IiksRCk7fSxmaXJlUXVl
dWU6ZnVuY3Rpb24oKXt2YXIgRT10aGlzLl9xdWV1ZTtmb3IodmFyIEY9MCxEPUUu
bGVuZ3RoO0Y8RDsrK0Ype3RoaXNbRVtGXVswXV0uYXBwbHkodGhpcyxFW0ZdWzFd
KTt9fSxhcHBlbmRUbzpmdW5jdGlvbihFLEYpe0U9KEUuZ2V0KT9FLmdldCgiZWxl
bWVudCIpOkIuZ2V0KEUpO3RoaXMuZmlyZUV2ZW50KCJiZWZvcmVBcHBlbmRUbyIs
e3R5cGU6ImJlZm9yZUFwcGVuZFRvIix0YXJnZXQ6RX0pOwpGPShGJiZGLmdldCk/
Ri5nZXQoImVsZW1lbnQiKTpCLmdldChGKTt2YXIgRD10aGlzLmdldCgiZWxlbWVu
dCIpO2lmKCFEKXtyZXR1cm4gZmFsc2U7fWlmKCFFKXtyZXR1cm4gZmFsc2U7fWlm
KEQucGFyZW50IT1FKXtpZihGKXtFLmluc2VydEJlZm9yZShELEYpO31lbHNle0Uu
YXBwZW5kQ2hpbGQoRCk7fX10aGlzLmZpcmVFdmVudCgiYXBwZW5kVG8iLHt0eXBl
OiJhcHBlbmRUbyIsdGFyZ2V0OkV9KTtyZXR1cm4gRDt9LGdldDpmdW5jdGlvbihE
KXt2YXIgRj10aGlzLl9jb25maWdzfHx7fSxFPUYuZWxlbWVudDtpZihFJiYhRltE
XSYmIVlBSE9PLmxhbmcuaXNVbmRlZmluZWQoRS52YWx1ZVtEXSkpe3RoaXMuX3Nl
dEhUTUxBdHRyQ29uZmlnKEQpO31yZXR1cm4gQy5wcm90b3R5cGUuZ2V0LmNhbGwo
dGhpcyxEKTt9LHNldEF0dHJpYnV0ZXM6ZnVuY3Rpb24oSixHKXt2YXIgRT17fSxI
PXRoaXMuX2NvbmZpZ09yZGVyO2Zvcih2YXIgST0wLEQ9SC5sZW5ndGg7STxEOysr
SSl7aWYoSltIW0ldXSE9PXVuZGVmaW5lZCl7RVtIW0ldXT10cnVlO3RoaXMuc2V0
KEhbSV0sSltIW0ldXSxHKTt9fWZvcih2YXIgRiBpbiBKKXtpZihKLmhhc093blBy
b3BlcnR5KEYpJiYhRVtGXSl7dGhpcy5zZXQoRixKW0ZdLEcpO319fSxzZXQ6ZnVu
Y3Rpb24oRSxHLEQpe3ZhciBGPXRoaXMuZ2V0KCJlbGVtZW50Iik7aWYoIUYpe3Ro
aXMuX3F1ZXVlW3RoaXMuX3F1ZXVlLmxlbmd0aF09WyJzZXQiLGFyZ3VtZW50c107
aWYodGhpcy5fY29uZmlnc1tFXSl7dGhpcy5fY29uZmlnc1tFXS52YWx1ZT1HO31y
ZXR1cm47fWlmKCF0aGlzLl9jb25maWdzW0VdJiYhWUFIT08ubGFuZy5pc1VuZGVm
aW5lZChGW0VdKSl7dGhpcy5fc2V0SFRNTEF0dHJDb25maWcoRSk7fXJldHVybiBD
LnByb3RvdHlwZS5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO30sc2V0QXR0cmli
dXRlQ29uZmlnOmZ1bmN0aW9uKEQsRSxGKXt0aGlzLl9jb25maWdPcmRlci5wdXNo
KEQpO0MucHJvdG90eXBlLnNldEF0dHJpYnV0ZUNvbmZpZy5hcHBseSh0aGlzLGFy
Z3VtZW50cyk7fSxjcmVhdGVFdmVudDpmdW5jdGlvbihFLEQpe3RoaXMuX2V2ZW50
c1tFXT10cnVlO3JldHVybiBDLnByb3RvdHlwZS5jcmVhdGVFdmVudC5hcHBseSh0
aGlzLGFyZ3VtZW50cyk7fSxpbml0OmZ1bmN0aW9uKEUsRCl7dGhpcy5faW5pdEVs
ZW1lbnQoRSxEKTt9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgRD10aGlzLmdldCgi
ZWxlbWVudCIpO1lBSE9PLnV0aWwuRXZlbnQucHVyZ2VFbGVtZW50KEQsdHJ1ZSk7
dGhpcy51bnN1YnNjcmliZUFsbCgpO2lmKEQmJkQucGFyZW50Tm9kZSl7RC5wYXJl
bnROb2RlLnJlbW92ZUNoaWxkKEQpO310aGlzLl9xdWV1ZT1bXTt0aGlzLl9ldmVu
dHM9e307dGhpcy5fY29uZmlncz17fTt0aGlzLl9jb25maWdPcmRlcj1bXTt9LF9p
bml0RWxlbWVudDpmdW5jdGlvbihGLEUpe3RoaXMuX3F1ZXVlPXRoaXMuX3F1ZXVl
fHxbXTt0aGlzLl9ldmVudHM9dGhpcy5fZXZlbnRzfHx7fTt0aGlzLl9jb25maWdz
PXRoaXMuX2NvbmZpZ3N8fHt9O3RoaXMuX2NvbmZpZ09yZGVyPVtdO0U9RXx8e307
RS5lbGVtZW50PUUuZWxlbWVudHx8Rnx8bnVsbDt2YXIgSD1mYWxzZTt2YXIgRD1B
LkRPTV9FVkVOVFM7dGhpcy5ET01fRVZFTlRTPXRoaXMuRE9NX0VWRU5UU3x8e307
Zm9yKHZhciBHIGluIEQpe2lmKEQuaGFzT3duUHJvcGVydHkoRykpe3RoaXMuRE9N
X0VWRU5UU1tHXT1EW0ddO319aWYodHlwZW9mIEUuZWxlbWVudD09PSJzdHJpbmci
KXt0aGlzLl9zZXRIVE1MQXR0ckNvbmZpZygiaWQiLHt2YWx1ZTpFLmVsZW1lbnR9
KTt9aWYoQi5nZXQoRS5lbGVtZW50KSl7SD10cnVlO3RoaXMuX2luaXRIVE1MRWxl
bWVudChFKTt0aGlzLl9pbml0Q29udGVudChFKTt9WUFIT08udXRpbC5FdmVudC5v
bkF2YWlsYWJsZShFLmVsZW1lbnQsZnVuY3Rpb24oKXtpZighSCl7dGhpcy5faW5p
dEhUTUxFbGVtZW50KEUpO310aGlzLmZpcmVFdmVudCgiYXZhaWxhYmxlIix7dHlw
ZToiYXZhaWxhYmxlIix0YXJnZXQ6Qi5nZXQoRS5lbGVtZW50KX0pO30sdGhpcyx0
cnVlKTtZQUhPTy51dGlsLkV2ZW50Lm9uQ29udGVudFJlYWR5KEUuZWxlbWVudCxm
dW5jdGlvbigpe2lmKCFIKXt0aGlzLl9pbml0Q29udGVudChFKTt9dGhpcy5maXJl
RXZlbnQoImNvbnRlbnRSZWFkeSIse3R5cGU6ImNvbnRlbnRSZWFkeSIsdGFyZ2V0
OkIuZ2V0KEUuZWxlbWVudCl9KTt9LHRoaXMsdHJ1ZSk7fSxfaW5pdEhUTUxFbGVt
ZW50OmZ1bmN0aW9uKEQpe3RoaXMuc2V0QXR0cmlidXRlQ29uZmlnKCJlbGVtZW50
Iix7dmFsdWU6Qi5nZXQoRC5lbGVtZW50KSxyZWFkT25seTp0cnVlfSk7fSxfaW5p
dENvbnRlbnQ6ZnVuY3Rpb24oRCl7dGhpcy5pbml0QXR0cmlidXRlcyhEKTt0aGlz
LnNldEF0dHJpYnV0ZXMoRCx0cnVlKTt0aGlzLmZpcmVRdWV1ZSgpO30sX3NldEhU
TUxBdHRyQ29uZmlnOmZ1bmN0aW9uKEQsRil7dmFyIEU9dGhpcy5nZXQoImVsZW1l
bnQiKTtGPUZ8fHt9O0YubmFtZT1EO0Yuc2V0dGVyPUYuc2V0dGVyfHx0aGlzLkRF
RkFVTFRfSFRNTF9TRVRURVI7Ri5nZXR0ZXI9Ri5nZXR0ZXJ8fHRoaXMuREVGQVVM
VF9IVE1MX0dFVFRFUjtGLnZhbHVlPUYudmFsdWV8fEVbRF07dGhpcy5fY29uZmln
c1tEXT1uZXcgWUFIT08udXRpbC5BdHRyaWJ1dGUoRix0aGlzKTt9fTtZQUhPTy5h
dWdtZW50KEEsQyk7WUFIT08udXRpbC5FbGVtZW50PUE7fSkoKTtZQUhPTy5yZWdp
c3RlcigiZWxlbWVudCIsWUFIT08udXRpbC5FbGVtZW50LHt2ZXJzaW9uOiIyLjcu
MCIsYnVpbGQ6IjE3OTkifSk7aWYoUmlnaHROb3cpdGhyb3cgbmV3IEVycm9yKCJU
aGUgUmlnaHROb3cgbmFtZXNwYWNlIHZhcmlhYmxlIGhhcyBhbHJlYWR5IGJlZW4g
ZGVmaW5lZCBzb21ld2hlcmUuIik7dmFyIFJpZ2h0Tm93PXtuYW1lc3BhY2U6ZnVu
Y3Rpb24oKXt2YXIgYT1hcmd1bWVudHMsYz1udWxsLGUsZixoO2ZvcihlPTA7ZTxh
Lmxlbmd0aDtlKz0xKXtoPWFbZV0uc3BsaXQoIi4iKTtjPVJpZ2h0Tm93O2Zvcihm
PWhbMF09PT0iUmlnaHROb3ciPzE6MDtmPGgubGVuZ3RoO2YrKyl7Y1toW2ZdXT1j
W2hbZl1dfHx7fTtjPWNbaFtmXV19fXJldHVybiBjfX07ClJpZ2h0Tm93LldpZGdl
dD17X3dpZGdldEluc3RhbmNlczp7fSxjcmVhdGVXaWRnZXRJbnN0YW5jZTpmdW5j
dGlvbihhLGMsZSxmLGgsZyl7dmFyIGo9e2luZm86e2NvbnRyb2xsZXJfbmFtZTph
LmkuYyxuYW1lOmEuaS5uLHdfaWQ6YS5pLnd9LGF0dHJzOmEuYSxqczphLmp9O2lm
KGEuaS50KWouaW5mby50eXBlPWEuaS50O3RoaXMuX3dpZGdldEluc3RhbmNlc1tj
XT17amF2YVNjcmlwdFBhdGg6ZSxjbGFzc05hbWU6ZixzdWZmaXg6aH07aWYodHlw
ZW9mIHdpbmRvd1tmXT09PSJmdW5jdGlvbiIpe3RoaXMuX3dpZGdldEluc3RhbmNl
c1tjXS5pbnN0YW5jZT1uZXcgd2luZG93W2ZdKGopO3RoaXMuX3dpZGdldEluc3Rh
bmNlc1tjXS5pbnN0YW5jZS5pbml0KCk7d2luZG93WyJqc18iK2ouaW5mby53X2lk
XT10aGlzLl93aWRnZXRJbnN0YW5jZXNbY10uaW5zdGFuY2V9ZWxzZSBpZih0eXBl
b2YgUmlnaHROb3cuV2lkZ2V0W2ZdPT09ImZ1bmN0aW9uIil0aGlzLl93aWRnZXRJ
bnN0YW5jZXNbY10uaW5zdGFuY2U9Cm5ldyBSaWdodE5vdy5XaWRnZXRbZl0oaixj
KTtlbHNlIGcmJmFsZXJ0KFJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJG
T0xMT1dJTkdfV0lER0VUX0pBVkFTQ1JJUFRfU1lOVEFYX01TRyIpK2UpfSxnZXRX
aWRnZXRJbmZvcm1hdGlvbjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5fd2lkZ2V0
SW5zdGFuY2VzW2FdfHxudWxsfSxnZXRXaWRnZXRJbnN0YW5jZTpmdW5jdGlvbihh
KXtpZih0aGlzLl93aWRnZXRJbnN0YW5jZXNbYV0pcmV0dXJuIHRoaXMuX3dpZGdl
dEluc3RhbmNlc1thXS5pbnN0YW5jZTtyZXR1cm4gbnVsbH19OwpSaWdodE5vdy5J
bnRlcmZhY2U9e19jb25maWdCYXNlSW5pdGlhbGl6ZXI6bnVsbCxfY29uZmlnYmFz
ZUVudHJpZXM6bnVsbCxfbWVzc2FnZWJhc2VFbnRyaWVzOm51bGwsX21lc3NhZ2VC
YXNlSW5pdGlhbGl6ZXI6bnVsbCxDb25zdGFudHM6e30sZ2V0Q29uZmlnOmZ1bmN0
aW9uKGEpe2lmKHRoaXMuX2NvbmZpZ2Jhc2VFbnRyaWVzPT1udWxsKXRoaXMuX2Nv
bmZpZ2Jhc2VFbnRyaWVzPXRoaXMuX2NvbmZpZ0Jhc2VJbml0aWFsaXplcigpO2lm
KHRoaXMuX2NvbmZpZ2Jhc2VFbnRyaWVzW2FdIT09dW5kZWZpbmVkKXJldHVybiB0
aGlzLl9jb25maWdiYXNlRW50cmllc1thXTtyZXR1cm4iIn0sZ2V0TWVzc2FnZTpm
dW5jdGlvbihhKXtpZih0aGlzLl9tZXNzYWdlYmFzZUVudHJpZXM9PW51bGwpdGhp
cy5fbWVzc2FnZWJhc2VFbnRyaWVzPXRoaXMuX21lc3NhZ2VCYXNlSW5pdGlhbGl6
ZXIoKTtpZih0aGlzLl9tZXNzYWdlYmFzZUVudHJpZXNbYV0hPT11bmRlZmluZWQp
cmV0dXJuIHRoaXMuX21lc3NhZ2ViYXNlRW50cmllc1thXTsKcmV0dXJuIiJ9LEFT
VFJnZXRNZXNzYWdlOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzZXRDb25maWdiYXNl
OmZ1bmN0aW9uKGEpe3RoaXMuX2NvbmZpZ0Jhc2VJbml0aWFsaXplcj1hfSxzZXRN
ZXNzYWdlYmFzZTpmdW5jdGlvbihhKXt0aGlzLl9tZXNzYWdlQmFzZUluaXRpYWxp
emVyPWF9fTsKUmlnaHROb3cuSlNPTj17X2NhblVzZU5hdGl2ZVN0cmluZ2lmeTpm
dW5jdGlvbigpe3JldHVybiB0eXBlb2YgSlNPTj09PSJvYmplY3QiJiYoIVlBSE9P
LmVudi51YS5pZXx8SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbnB1dCIpLnZhbHVlKSk9PT0iIil9LHBhcnNlOmZ1bmN0
aW9uKGEpe3ZhciBjPXR5cGVvZiBKU09OPT09Im9iamVjdCI/SlNPTi5wYXJzZTpZ
QUhPTy5sYW5nLkpTT04ucGFyc2U7cmV0dXJuKFJpZ2h0Tm93LkpTT04ucGFyc2U9
ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBjKGUpfWNhdGNoKGYpe3JldHVybiBmYWxz
ZX19KShhKX0sc3RyaW5naWZ5OmZ1bmN0aW9uKGEpe3ZhciBjPVJpZ2h0Tm93LkpT
T04uX2NhblVzZU5hdGl2ZVN0cmluZ2lmeSgpP0pTT04uc3RyaW5naWZ5OllBSE9P
LmxhbmcuSlNPTi5zdHJpbmdpZnk7cmV0dXJuKFJpZ2h0Tm93LkpTT04uc3RyaW5n
aWZ5PWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gYyhlKX1jYXRjaChmKXtyZXR1cm4g
ZmFsc2V9fSkoYSl9fTsKUmlnaHROb3cuTGFuZz17YXJyYXlGaWx0ZXI6ZnVuY3Rp
b24oYSxjKXtpZih0eXBlb2YgYz09PSJ1bmRlZmluZWQiKWM9ZnVuY3Rpb24oaCl7
cmV0dXJuIGghPW51bGwmJmghPWZhbHNlfTtlbHNlIGlmKHR5cGVvZiBjIT09ImZ1
bmN0aW9uIil0aHJvdyBuZXcgVHlwZUVycm9yO3ZhciBlPVtdLGY7Zm9yKGYgaW4g
YSlpZih0eXBlb2YgYVtmXSE9PSJmdW5jdGlvbiImJmMoYVtmXSkpZVtmXT1hW2Zd
O3JldHVybiBlfSxjbG9uZU9iamVjdDpmdW5jdGlvbihhKXtpZihhPT09bnVsbCly
ZXR1cm4gbnVsbDt2YXIgYz17fTtpZih0eXBlb2YgYT09PSJvYmplY3QiKXtpZih0
eXBlb2YgYS5sZW5ndGghPT0idW5kZWZpbmVkIiljPVtdO2Zvcih2YXIgZSBpbiBh
KWlmKHR5cGVvZiBhW2VdPT09Im9iamVjdCIpY1tlXT1SaWdodE5vdy5MYW5nLmNs
b25lT2JqZWN0KGFbZV0pO2Vsc2UgaWYodHlwZW9mIGFbZV09PT0ic3RyaW5nInx8
dHlwZW9mIGFbZV09PT0ibnVtYmVyIiljW2VdPWFbZV07ZWxzZSBpZih0eXBlb2Yg
YVtlXT09PQoiYm9vbGVhbiIpY1tlXT1hW2VdP3RydWU6ZmFsc2V9cmV0dXJuIGN9
fTtSaWdodE5vdy5Qcm9maWxlPXtrZXl3b3JkOiIiLHNlYXJjaFR5cGU6IiIscHJv
ZHVjdDoiIixjYXRlZ29yeToiIn07aWYoUmlnaHROb3cuQWpheCl0aHJvdyBuZXcg
RXJyb3IoIlRoZSBSaWdodE5vdy5BamF4IG5hbWVzcGFjZSB2YXJpYWJsZSBoYXMg
YWxyZWFkeSBiZWVuIGRlZmluZWQgc29tZXdoZXJlLiIpOwpSaWdodE5vdy5BamF4
PXtjb252ZXJ0T2JqZWN0VG9Qb3N0U3RyaW5nOmZ1bmN0aW9uKGEpe3ZhciBjPSIi
O2Zvcih2YXIgZSBpbiBhKXR5cGVvZiBhW2VdPT09ImZ1bmN0aW9uInx8dHlwZW9m
IGFbZV09PT0ib2JqZWN0Inx8YVtlXT09PXVuZGVmaW5lZHx8KGMrPWVuY29kZVVS
SUNvbXBvbmVudChlKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFbZV0pKyImIik7
aWYoYy5sZW5ndGg+MCljPWMuc3Vic3RyaW5nKDAsYy5sZW5ndGgtMSk7cmV0dXJu
IGN9LG1ha2VSZXF1ZXN0OmZ1bmN0aW9uKGEsYyxlKXtpZihlPT09bnVsbHx8ZT09
PXVuZGVmaW5lZCllPXt9O2lmKCFlLnR5cGUpZS50eXBlPSJQT1NUIjtlLnVybD1h
O2UucG9zdD1jO2UuZGF0YT1SaWdodE5vdy5MYW5nLmNsb25lT2JqZWN0KGUuZGF0
YSk7UmlnaHROb3cuRXZlbnQuZmlyZSgib25fYmVmb3JlX2FqYXhfcmVxdWVzdCIs
ZSk7YT17fTthLnN1Y2Nlc3M9ZS5zdWNjZXNzSGFuZGxlcnx8dGhpcy5nZW5lcmlj
U3VjY2VzczsKYS5mYWlsdXJlPWUuZmFpbHVyZUhhbmRsZXJ8fHRoaXMuZ2VuZXJp
Y0ZhaWx1cmU7aWYoZS51cGxvYWRIYW5kbGVyKWEudXBsb2FkPWUudXBsb2FkSGFu
ZGxlcjtpZihlLnNjb3BlKWEuc2NvcGU9ZS5zY29wZTtpZihlLmRhdGEhPT1udWxs
JiZlLmRhdGEhPT11bmRlZmluZWQpYS5hcmd1bWVudD1lLmRhdGE7aWYoUmlnaHRO
b3cuVXJsLmdldFNlc3Npb24oKSE9PSIiKWUudXJsPVJpZ2h0Tm93LlVybC5hZGRQ
YXJhbWV0ZXIoZS51cmwsInNlc3Npb24iLFJpZ2h0Tm93LlVybC5nZXRTZXNzaW9u
KCkpO2UucG9zdD10aGlzLmNvbnZlcnRPYmplY3RUb1Bvc3RTdHJpbmcoZS5wb3N0
KTtyZXR1cm4gZT1lLnBvc3Q9PT0iIj9ZQUhPTy51dGlsLkNvbm5lY3QuYXN5bmNS
ZXF1ZXN0KGUudHlwZSxlLnVybCxhKTpZQUhPTy51dGlsLkNvbm5lY3QuYXN5bmNS
ZXF1ZXN0KGUudHlwZSxlLnVybCxhLGUucG9zdCl9LGdlbmVyaWNTdWNjZXNzOmZ1
bmN0aW9uKGEpe2lmKGEucmVzcG9uc2VUZXh0IT09CiJudWxsIil7dHJ5e3ZhciBj
PVJpZ2h0Tm93LkpTT04ucGFyc2UoYS5yZXNwb25zZVRleHQpfWNhdGNoKGUpe1Jp
Z2h0Tm93LlVJLkRpYWxvZy5tZXNzYWdlRGlhbG9nKFJpZ2h0Tm93LkludGVyZmFj
ZS5nZXRNZXNzYWdlKCJFUlJPUl9SRVFVRVNUX0FDVElPTl9DT01QTEVURURfTVNH
Iikse2ljb246IldBUk4ifSl9aWYoYS5hcmd1bWVudClpZihhLmFyZ3VtZW50LmV2
ZW50TmFtZSlhLmFyZ3VtZW50LmRhdGE/UmlnaHROb3cuRXZlbnQuZmlyZShhLmFy
Z3VtZW50LmV2ZW50TmFtZSxjLGEuYXJndW1lbnQuZGF0YSk6UmlnaHROb3cuRXZl
bnQuZmlyZShhLmFyZ3VtZW50LmV2ZW50TmFtZSxjKX1lbHNlIFJpZ2h0Tm93LlVJ
LkRpYWxvZy5tZXNzYWdlRGlhbG9nKFJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNz
YWdlKCJFUlJPUl9SRVFVRVNUX0FDVElPTl9DT01QTEVURURfTVNHIikse2ljb246
IldBUk4ifSl9LGdlbmVyaWNGYWlsdXJlOmZ1bmN0aW9uKGEpe2lmKCFhLmFyZ3Vt
ZW50fHwKIWEuYXJndW1lbnQuaWdub3JlRmFpbHVyZSlSaWdodE5vdy5VSS5EaWFs
b2cubWVzc2FnZURpYWxvZyhSaWdodE5vdy5JbnRlcmZhY2UuZ2V0TWVzc2FnZSgi
RVJST1JfUkVRVUVTVF9BQ1RJT05fQ09NUExFVEVEX01TRyIpLHtpY29uOiJXQVJO
In0pfSxhYm9ydFJlcXVlc3Q6ZnVuY3Rpb24oYSxjKXtyZXR1cm4gWUFIT08udXRp
bC5Db25uZWN0LmFib3J0KGEsYyl9LENUOntDTElDS1NUUkVBTToxLFNPTFZFRF9D
T1VOVDoyLExJTktTOjMsQU5TX1NUQVRTOjQsU1RBVFM6NSxLRVlXT1JEX1NFQVJD
SEVTOjgsV0lER0VUX1NUQVRTOjksRFFBX1NFUlZJQ0U6Ii9jaS9kcWEvcHVibGlz
aCIsX2VudHJpZXM6W10sX2luc2VydDpmdW5jdGlvbigpe3RoaXMuX2VudHJpZXMm
JnRoaXMuX2VudHJpZXMubGVuZ3RoPjAmJlJpZ2h0Tm93LkFqYXgubWFrZVJlcXVl
c3QodGhpcy5EUUFfU0VSVklDRSx7ZGF0YTpSaWdodE5vdy5KU09OLnN0cmluZ2lm
eSh0aGlzLl9lbnRyaWVzKX0pO3RoaXMuX2VudHJpZXMubGVuZ3RoPQowfSxhZGRB
Y3Rpb246ZnVuY3Rpb24oYSxjKXt0aGlzLl9lbnRyaWVzLnB1c2goe3R5cGU6YSxh
Y3Rpb246Y30pfSxjb21taXRBY3Rpb25zOmZ1bmN0aW9uKCl7dGhpcy5faW5zZXJ0
KCl9LHN1Ym1pdEFjdGlvbjpmdW5jdGlvbihhLGMpe3RoaXMuYWRkQWN0aW9uKGEs
Yyk7dGhpcy5faW5zZXJ0KCl9fX07aWYoUmlnaHROb3cuVGV4dCl0aHJvdyBuZXcg
RXJyb3IoIlRoZSBSaWdodE5vdy5UZXh0IG5hbWVzcGFjZSB2YXJpYWJsZSBoYXMg
YWxyZWFkeSBiZWVuIGRlZmluZWQgc29tZXdoZXJlLiIpOwpSaWdodE5vdy5UZXh0
PXtnZXRTdWJzdHJpbmdBZnRlcjpmdW5jdGlvbihhLGMpe3ZhciBlPWEuaW5kZXhP
ZihjKTtpZihlPT09LTEpcmV0dXJuIGZhbHNlO3JldHVybiBhLnN1YnN0cihlK2Mu
bGVuZ3RoKX0sc3ByaW50ZjpmdW5jdGlvbihhKXt2YXIgYz0xLGU9YXJndW1lbnRz
O2Z1bmN0aW9uIGYoaCxnLGope2lmKGg9PT0iJSUiKXJldHVybiIlIjtpZihjPj1l
Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlJpZ2h0Tm93LlRleHQuc3ByaW50Zjog
TW9yZSBwbGFjZWhvbGRlcnMgKCIrYysiKSBhcmUgcHJlc2VudCBpbiB0aGUgZm9y
bWF0IHN0cmluZyAoJyIraisiJykgdGhhbiBhcmd1bWVudHMgKCIrKGUubGVuZ3Ro
LTEpKyIpIHdlcmUgcHJvdmlkZWQuIik7cmV0dXJuIGVbYysrXX1yZXR1cm4gYS5y
ZXBsYWNlKC8lWyVzZF0vZyxmKX0sdHJpbUNvbW1hOmZ1bmN0aW9uKGEpe2Zvcih2
YXIgYz1hLmxlbmd0aCxlPXRydWU7ZTspaWYoYS5sYXN0SW5kZXhPZigiLCIpPT1j
LTEpe2MtLTsKYT1hLnN1YnN0cigwLGMpfWVsc2UgZT1mYWxzZTtyZXR1cm4gYX0s
aXNWYWxpZEVtYWlsQWRkcmVzczpmdW5jdGlvbihhKXtpZihSaWdodE5vdy5JbnRl
cmZhY2UuZ2V0Q29uZmlnKCJERV9WQUxJRF9FTUFJTF9QQVRURVJOIik9PT0iIily
ZXR1cm4gdHJ1ZTt0aGlzLmlzVmFsaWRFbWFpbEFkZHJlc3MuX2VtYWlsUmVnZXg9
dGhpcy5pc1ZhbGlkRW1haWxBZGRyZXNzLl9lbWFpbFJlZ2V4fHxuZXcgUmVnRXhw
KCJeIitSaWdodE5vdy5JbnRlcmZhY2UuZ2V0Q29uZmlnKCJERV9WQUxJRF9FTUFJ
TF9QQVRURVJOIikrIiQiLCJpIik7cmV0dXJuIHRoaXMuaXNWYWxpZEVtYWlsQWRk
cmVzcy5fZW1haWxSZWdleC50ZXN0KGEpfSxFbmNvZGluZzp7X2Jhc2U2NGNoYXJh
Y3Rlck1hcDoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlfLy4iLGJhc2U2NERlY29kZTpmdW5jdGlv
bihhKXtmb3IodmFyIGM9W10sZT0wO2U8YS5sZW5ndGg7KXt2YXIgZj0KdGhpcy5f
YmFzZTY0Y2hhcmFjdGVyTWFwLmluZGV4T2YoYS5jaGFyQXQoZSsrKSksaD10aGlz
Ll9iYXNlNjRjaGFyYWN0ZXJNYXAuaW5kZXhPZihhLmNoYXJBdChlKyspKTtjLnB1
c2goU3RyaW5nLmZyb21DaGFyQ29kZShmPDwyfGg+PjQpKTtmPXRoaXMuX2Jhc2U2
NGNoYXJhY3Rlck1hcC5pbmRleE9mKGEuY2hhckF0KGUrKykpO2lmKDY0PT09Zili
cmVhaztjLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgoaCYxNSk8PDR8Zj4+Mikp
O2g9dGhpcy5fYmFzZTY0Y2hhcmFjdGVyTWFwLmluZGV4T2YoYS5jaGFyQXQoZSsr
KSk7aCE9PTY0JiZjLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgoZiYzKTw8Nnxo
KSl9cmV0dXJuIHRoaXMudXRmOERlY29kZShjLmpvaW4oIiIpKX0sYmFzZTY0RW5j
b2RlOmZ1bmN0aW9uKGEpe2E9dGhpcy51dGY4RW5jb2RlKGEpO2Zvcih2YXIgYz1b
XSxlPTA7ZTxhLmxlbmd0aDspe3ZhciBmPWEuY2hhckNvZGVBdChlKyspO2MucHVz
aCh0aGlzLl9iYXNlNjRjaGFyYWN0ZXJNYXAuY2hhckF0KGY+PgoyKSk7dmFyIGg9
YS5jaGFyQ29kZUF0KGUrKyk7Yy5wdXNoKHRoaXMuX2Jhc2U2NGNoYXJhY3Rlck1h
cC5jaGFyQXQoKGYmMyk8PDR8aD4+NCkpO2lmKGlzTmFOKGgpKXtjLnB1c2godGhp
cy5fYmFzZTY0Y2hhcmFjdGVyTWFwLmNoYXJBdCg2NCkpO2MucHVzaCh0aGlzLl9i
YXNlNjRjaGFyYWN0ZXJNYXAuY2hhckF0KDY0KSl9ZWxzZXtmPWEuY2hhckNvZGVB
dChlKyspO2MucHVzaCh0aGlzLl9iYXNlNjRjaGFyYWN0ZXJNYXAuY2hhckF0KCho
JjE1KTw8MnxmPj42KSk7aXNOYU4oZik/Yy5wdXNoKHRoaXMuX2Jhc2U2NGNoYXJh
Y3Rlck1hcC5jaGFyQXQoNjQpKTpjLnB1c2godGhpcy5fYmFzZTY0Y2hhcmFjdGVy
TWFwLmNoYXJBdChmJjYzKSl9fXJldHVybiBjLmpvaW4oIiIpfSxnZXRBc2NpaVBy
ZWZpeDpmdW5jdGlvbihhKXtmb3IodmFyIGM9MDtjPGEubGVuZ3RoOysrYylpZigx
Mjg8PWEuY2hhckNvZGVBdChjKSlicmVhaztpZihjPj1hLmxlbmd0aClyZXR1cm4g
YTtyZXR1cm4gYS5zdWJzdHJpbmcoMCwKYyl9LHV0ZjhEZWNvZGU6ZnVuY3Rpb24o
YSl7dmFyIGM9dGhpcy5nZXRBc2NpaVByZWZpeChhKTtpZihjLmxlbmd0aD09PWEu
bGVuZ3RoKXJldHVybiBjO2Zvcih2YXIgZT1bXSxmLGgsZz1jLmxlbmd0aDtnPGEu
bGVuZ3RoOysrZyl7dmFyIGo9YS5jaGFyQ29kZUF0KGcpO2lmKGo8MTI4KWUucHVz
aChTdHJpbmcuZnJvbUNoYXJDb2RlKGopKTtlbHNlIGlmKGo8MTkyKXRocm93IG5l
dyBFcnJvcigiSSBjYW4ndCBkZWNvZGUgdGhlIGNoYXJhY3RlciBhdCBpbmRleCAi
K2crIiBvZiAiK2ErIiBiZWNhdXNlIGl0J3Mgbm90IGEgdmFsaWQgVVRGOCBzZXF1
ZW5jZS4iKTtlbHNlIGlmKGo8MjI0KXtpZihhLmxlbmd0aDw9KytnKXRocm93IG5l
dyBFcnJvcigiSSBjYW4ndCBkZWNvZGUgdGhlIGNoYXJhY3RlciBhdCBpbmRleCAi
K2crIiBvZiAiK2ErIiBiZWNhdXNlIGl0J3Mgbm90IGEgdmFsaWQgVVRGOCBzZXF1
ZW5jZS4iKTtmPWEuY2hhckNvZGVBdChnKTtlLnB1c2goU3RyaW5nLmZyb21DaGFy
Q29kZSgoaiYKMzEpPDw2fGYmNjMpKX1lbHNle2Y9YS5jaGFyQ29kZUF0KCsrZyk7
aD1hLmNoYXJDb2RlQXQoKytnKTtpZihhLmxlbmd0aDw9Zyl0aHJvdyBuZXcgRXJy
b3IoIkkgY2FuJ3QgZGVjb2RlIHRoZSBjaGFyYWN0ZXIgYXQgaW5kZXggIitnKyIg
b2YgIithKyIgYmVjYXVzZSBpdCdzIG5vdCBhIHZhbGlkIFVURjggc2VxdWVuY2Uu
Iik7ZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoKGomMTUpPDwxMnwoZiY2Myk8
PDZ8aCY2MykpfX1yZXR1cm4gYytlLmpvaW4oIiIpfSx1dGY4RW5jb2RlOmZ1bmN0
aW9uKGEpe3ZhciBjPXRoaXMuZ2V0QXNjaWlQcmVmaXgoYSk7aWYoYy5sZW5ndGg9
PT1hLmxlbmd0aClyZXR1cm4gYztmb3IodmFyIGU9W10sZj1jLmxlbmd0aDtmPGEu
bGVuZ3RoOysrZil7dmFyIGg9YS5jaGFyQ29kZUF0KGYpO2lmKGg8MTI4KWUucHVz
aChhLmNoYXJBdChmKSk7ZWxzZXtpZihoPDIwNDgpZS5wdXNoKFN0cmluZy5mcm9t
Q2hhckNvZGUoaD4+NnwxOTIpKTtlbHNle2UucHVzaChTdHJpbmcuZnJvbUNoYXJD
b2RlKGg+PgoxMnwyMjQpKTtlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShoPj42
JjYzfDEyOCkpfWUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGgmNjN8MTI4KSl9
fXJldHVybiBjK2Uuam9pbigiIil9LHV0ZjhMZW5ndGg6ZnVuY3Rpb24oYSl7dmFy
IGMsZSxmPTA7Yz0wO2ZvcihlPWEubGVuZ3RoO2M8ZTtjKyspZis9YS5jaGFyQ29k
ZUF0KGMpPDEyOD8xOmEuY2hhckNvZGVBdChjKTwyMDQ4PzI6MztyZXR1cm4gZn19
fTtpZihSaWdodE5vdy5VSSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBSaWdodE5vdy5V
SSBuYW1lc3BhY2UgdmFyaWFibGUgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkIHNv
bWV3aGVyZS4iKTsKUmlnaHROb3cuVUk9e3ZpcnR1YWxCdWZmZXJVcGRhdGVUcmln
Z2VyOm51bGwscHJlcGFyZVZpcnR1YWxCdWZmZXJVcGRhdGVUcmlnZ2VyOmZ1bmN0
aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpO1lBSE9PLnV0
aWwuRG9tLnNldFN0eWxlKGEsImRpc3BsYXkiLCJpbmxpbmUiKTt0aGlzLnZpcnR1
YWxCdWZmZXJVcGRhdGVUcmlnZ2VyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlu
cHV0Iik7dGhpcy52aXJ0dWFsQnVmZmVyVXBkYXRlVHJpZ2dlci5zZXRBdHRyaWJ1
dGUoInR5cGUiLCJoaWRkZW4iKTt0aGlzLnZpcnR1YWxCdWZmZXJVcGRhdGVUcmln
Z2VyLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIxIik7dGhpcy52aXJ0dWFsQnVmZmVy
VXBkYXRlVHJpZ2dlci5zZXRBdHRyaWJ1dGUoImlkIiwicm5fVmlydHVhbEJ1ZmZl
clVwZGF0ZVRyaWdnZXIiKTt0aGlzLnZpcnR1YWxCdWZmZXJVcGRhdGVUcmlnZ2Vy
LnNldEF0dHJpYnV0ZSgibmFtZSIsInJuX1ZpcnR1YWxCdWZmZXJVcGRhdGVUcmln
Z2VyIik7CmEuYXBwZW5kQ2hpbGQodGhpcy52aXJ0dWFsQnVmZmVyVXBkYXRlVHJp
Z2dlcik7WUFIT08udXRpbC5Eb20uaW5zZXJ0QmVmb3JlKGEsZG9jdW1lbnQuYm9k
eS5maXJzdENoaWxkKX0sYXJpYUhpZGVGcmFtZXM6ZnVuY3Rpb24oKXtpZihSaWdo
dE5vdy5JbnRlcmZhY2UuQ29uc3RhbnRzLkNBTl9VU0VfQVJJQSl7dmFyIGE9ZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJuX0hpc3RvcnlfSWZyYW1lIik7aWYoYSl7
YS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJwcmVzZW50YXRpb24iKTthLnRhYkluZGV4
PS0xfWlmKGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIl95dWlSZXNpemVNb25p
dG9yIikpe2Euc2V0QXR0cmlidXRlKCJyb2xlIiwicHJlc2VudGF0aW9uIik7YS50
YWJJbmRleD0tMX19fSx1cGRhdGVWaXJ0dWFsQnVmZmVyOmZ1bmN0aW9uKCl7aWYo
IVJpZ2h0Tm93LlVJLnZpcnR1YWxCdWZmZXJVcGRhdGVUcmlnZ2VyKVJpZ2h0Tm93
LlVJLnZpcnR1YWxCdWZmZXJVcGRhdGVUcmlnZ2VyPQpkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicm5fVmlydHVhbEJ1ZmZlclVwZGF0ZVRyaWdnZXIiKTtpZihSaWdo
dE5vdy5VSS52aXJ0dWFsQnVmZmVyVXBkYXRlVHJpZ2dlcilSaWdodE5vdy5VSS52
aXJ0dWFsQnVmZmVyVXBkYXRlVHJpZ2dlci5nZXRBdHRyaWJ1dGUoInZhbHVlIik9
PT0iMSI/UmlnaHROb3cuVUkudmlydHVhbEJ1ZmZlclVwZGF0ZVRyaWdnZXIuc2V0
QXR0cmlidXRlKCJ2YWx1ZSIsIjAiKTpSaWdodE5vdy5VSS52aXJ0dWFsQnVmZmVy
VXBkYXRlVHJpZ2dlci5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiMSIpfSxhZGREZXZl
bG9wbWVudEhlYWRlckVycm9yOmZ1bmN0aW9uKGEpe1JpZ2h0Tm93LlVJLkRldmVs
b3BtZW50SGVhZGVyJiZSaWdodE5vdy5VSS5EZXZlbG9wbWVudEhlYWRlci5hZGRK
YXZhc2NyaXB0RXJyb3IoYSl9LGFkZERldmVsb3BtZW50SGVhZGVyV2FybmluZzpm
dW5jdGlvbihhKXtSaWdodE5vdy5VSS5EZXZlbG9wbWVudEhlYWRlciYmUmlnaHRO
b3cuVUkuRGV2ZWxvcG1lbnRIZWFkZXIuYWRkSmF2YXNjcmlwdFdhcm5pbmcoYSl9
LApjaGFuZ2VDaGlsZENzc0NsYXNzOmZ1bmN0aW9uKGEsYyl7aWYoYS5oYXNDaGls
ZE5vZGVzKCkpZm9yKHZhciBlPTA7ZTxhLmNoaWxkTm9kZXMubGVuZ3RoO2UrKyl7
YS5jaGlsZE5vZGVzW2VdLmhhc0NoaWxkTm9kZXMoKSYmUmlnaHROb3cuVUkuY2hh
bmdlQ2hpbGRDc3NDbGFzcyhhLmNoaWxkTm9kZXNbZV0sYyk7YS5jaGlsZE5vZGVz
W2VdLmNsYXNzTmFtZSYmWUFIT08udXRpbC5Eb20uYWRkQ2xhc3MoYS5jaGlsZE5v
ZGVzW2VdLmlkLGMpfX0sY2xlYXJIaWdobGlnaHRzOmZ1bmN0aW9uKGEpe3ZhciBj
PW5ldyBSZWdFeHAoJzxTUEFOIGNsYXNzPSI/aGlnaGxpZ2h0Ij8+KFtePF0rKTwv
U1BBTj4nLCJnaSIpO3JldHVybiBhLnJlcGxhY2UoYywiJDEiKX0sZmluZFBhcmVu
dEZvcm06ZnVuY3Rpb24oYSl7aWYoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChh
KSlmb3IoO2EucGFyZW50Tm9kZS50YWdOYW1lIT09IkJPRFkiOyl7YT1hLnBhcmVu
dE5vZGU7aWYoYS50YWdOYW1lPT09IkZPUk0iKXtpZihhLmlkPT09CiIiKXJldHVy
biBudWxsO3JldHVybiBhLmlkfX1yZXR1cm4gbnVsbH0saGlkZVNob3c6ZnVuY3Rp
b24oYSxjLGUsZil7aWYoYz09PXVuZGVmaW5lZCljPSJvcGVuZXJfYnV0dG9uIjth
PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpO2lmKGEuc3R5bGUuZGlzcGxheT09
Im5vbmUiKXthLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjt2YXIgaD0iL2V1Zi9hc3Nl
dHMvaW1hZ2VzL2Fycm93c191cC5naWYiLGc9Zn1lbHNlIGlmKGEuc3R5bGUuZGlz
cGxheT09ImJsb2NrIil7YS5zdHlsZS5kaXNwbGF5PSJub25lIjtoPSIvZXVmL2Fz
c2V0cy9pbWFnZXMvYXJyb3dzX2Rvd24uZ2lmIjtnPWV9aWYoYyE9PSIiJiZoIT11
bmRlZmluZWQpaWYoYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChjKSl7Yy5zcmM9
aDtpZihnIT11bmRlZmluZWQpYy5hbHQ9Z319LGhpZ2hsaWdodEVsZW1lbnQ6ZnVu
Y3Rpb24oYSxjKXtmb3IodmFyIGU9IjxzcGFuIGNsYXNzPSdoaWdobGlnaHQnPiIs
Zj0iPC9zcGFuPiIsaD0KIiIsZz0tMSxqPWMudG9Mb3dlckNhc2UoKS5yZXBsYWNl
KC8mL2csIiZhbXA7IiksbD1hLnRvTG93ZXJDYXNlKCk7YS5sZW5ndGg+MDspe2c9
bC5pbmRleE9mKGosZysxKTtpZihnPDApe2grPWE7YT0iIn1lbHNlIGlmKGEubGFz
dEluZGV4T2YoIj4iLGcpPj1hLmxhc3RJbmRleE9mKCI8IixnKSlpZihsLmxhc3RJ
bmRleE9mKCIvc2NyaXB0PiIsZyk+PWwubGFzdEluZGV4T2YoIjxzY3JpcHQiLGcp
KXtoKz1hLnN1YnN0cmluZygwLGcpK2UrYS5zdWJzdHIoZyxjLmxlbmd0aCkrZjth
PWEuc3Vic3RyKGcrYy5sZW5ndGgpO2w9YS50b0xvd2VyQ2FzZSgpO2c9LTF9fXJl
dHVybiBofSxnZXRJbnB1dEZpZWxkQnlDb2x1bW5OYW1lOmZ1bmN0aW9uKGEsYyl7
YT1uZXcgUmVnRXhwKCJeIithKTtpZih0eXBlb2YgYyE9PSJvYmplY3QiKWM9ZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoYyk7Zm9yKHZhciBlPTA7ZTxjLmVsZW1lbnRz
Lmxlbmd0aDtlKyspaWYoYy5lbGVtZW50c1tlXSYmYy5lbGVtZW50c1tlXS5uYW1l
JiYKYS50ZXN0KGMuZWxlbWVudHNbZV0ubmFtZSkpcmV0dXJuIGU7cmV0dXJuIG51
bGx9LHN1YnNjcmliZU9uY2U6ZnVuY3Rpb24oYSxjLGUpe3ZhciBmPXRydWU7aWYo
WUFIT08ubGFuZy5pc09iamVjdChhKSlmb3IodmFyIGg9MDtoPGEubGVuZ3RoO2gr
KylmPXRoaXMuc3Vic2NyaWJlT25jZUhlbHBlcihhW2hdLGMsZSkmJmY7ZWxzZSBm
PXRoaXMuc3Vic2NyaWJlT25jZUhlbHBlcihhLGMsZSk7cmV0dXJuIGZ9LHN1YnNj
cmliZU9uY2VIZWxwZXI6ZnVuY3Rpb24oYSxjLGUpe3ZhciBmPVlBSE9PLnV0aWwu
RXZlbnQuZ2V0TGlzdGVuZXJzKGEsYyksaD10cnVlLGc9dHJ1ZTtpZihmKWZvcih2
YXIgaj0wO2o8Zi5sZW5ndGgmJmg7KXtpZihmW2pdLmZuPT1lKWg9ZmFsc2U7aisr
fWlmKGgpZz1ZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVyKGEsYyxlKTtyZXR1
cm4gZ30sdG9nZ2xlVmlzaWJpbGl0eUFuZFRleHQ6ZnVuY3Rpb24oYSxjLGUsZil7
aWYoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSlpZihhLnN0eWxlLmRpc3Bs
YXk9PT0KIm5vbmUiKXthLnN0eWxlLmRpc3BsYXk9ImJsb2NrIjtkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChjKS5pbm5lckhUTUw9ZX1lbHNlIGlmKGEuc3R5bGUuZGlz
cGxheT09PSJibG9jayIpe2Euc3R5bGUuZGlzcGxheT0ibm9uZSI7ZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoYykuaW5uZXJIVE1MPWZ9fSxGb3JtOntjaGF0U3VibWl0
OjAsY3VycmVudFByb2R1Y3Q6MCxlcnJvckNvdW50OjAsZm9ybTpudWxsLGZvcm1F
cnJvcjpmYWxzZSxmb3JtVG9rZW46bnVsbCxmb3JtRmllbGRzOltdLGxpbmtpbmdG
aWx0ZXI6IiIsbGlua2luZ09uOmZhbHNlLGxvZ291dEluUHJvZ3Jlc3M6ZmFsc2Us
cGFzc3dvcmRSZXNldDpmYWxzZSx3aWRnZXRzVG9Qcm9jZXNzOjAsd2lkZ2V0c1Rv
VmFsaWRhdGU6MH0sRGlhbG9nOntfZGlhbG9nQ291bnQ6MCxfdG9wUmVuZGVyRGl2
OiIiLHNldFJlbmRlckRpdjpmdW5jdGlvbigpe3RoaXMuX3RvcFJlbmRlckRpdj1k
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKWUFIT08udXRpbC5Eb20uaW5z
ZXJ0QmVmb3JlKHRoaXMuX3RvcFJlbmRlckRpdixkb2N1bWVudC5ib2R5LmZpcnN0
Q2hpbGQpfSxhY3Rpb25EaWFsb2c6ZnVuY3Rpb24oYSxjLGUpe2lmKCFhfHwhY3x8
IWMubm9kZVR5cGUpcmV0dXJuIG51bGw7Yz10aGlzLl9jcmVhdGVEaWFsb2coYSxj
LGUpO2UmJmUuaGlkZU9uRW50ZXJLZXlQcmVzcyYmZS5oaWRlT25FbnRlcktleVBy
ZXNzPT09dHJ1ZSYmdGhpcy5hZGREaWFsb2dFbnRlcktleUxpc3RlbmVyKGMsYy5o
aWRlKCkpO3ZhciBmPVlBSE9PLnV0aWwuRG9tLmdldEVsZW1lbnRCeShmdW5jdGlv
bihnKXtyZXR1cm4oZy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9PT0iaW5wdXQifHxn
LnRhZ05hbWUudG9Mb3dlckNhc2UoKT09PSJ0ZXh0YXJlYSIpJiZnLnR5cGUhPT0i
aGlkZGVuIn0sbnVsbCxjLmVsZW1lbnQpO2lmKGYuaWQpe2MuZmlyc3RGb3JtRWxl
bWVudD1mO2U9WUFIT08udXRpbC5Eb20uZ2V0UHJldmlvdXNTaWJsaW5nKGYpO3Zh
ciBoPQpmdW5jdGlvbihnKXtyZXR1cm4gZy50YWdOYW1lLnRvTG93ZXJDYXNlKCk9
PT0ibGFiZWwiJiZZQUhPTy51dGlsLkRvbS5nZXRBdHRyaWJ1dGUoZywiZm9yIik9
PT1mLmlkfTtpZihlPWUmJmgoZSk/ZTpZQUhPTy51dGlsLkRvbS5nZXRFbGVtZW50
QnkoaCwibGFiZWwiLGMuZWxlbWVudCkpZS5pbm5lckhUTUw9JzxzcGFuIGNsYXNz
PSJybl9TY3JlZW5SZWFkZXJPbmx5Ij4nK2ErIiAiK1JpZ2h0Tm93LkludGVyZmFj
ZS5nZXRNZXNzYWdlKCJESUFMT0dfTEJMIikrIiA8L3NwYW4+IitlLmlubmVySFRN
TH1lbHNlIGlmKGMuZGVmYXVsdEh0bWxCdXR0b24pe2MuZGVmYXVsdEh0bWxCdXR0
b24uaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0icm5fU2NyZWVuUmVhZGVyT25seSI+
JythKyIgIitSaWdodE5vdy5JbnRlcmZhY2UuZ2V0TWVzc2FnZSgiRElBTE9HX1BM
RUFTRV9SRUFEX1RFWFRfRElBTE9HX01TR19NU0ciKSsiIDwvc3Bhbj4iK2MuZGVm
YXVsdEh0bWxCdXR0b24uaW5uZXJIVE1MO2Muc2hvd0V2ZW50LnN1YnNjcmliZShj
LmZvY3VzRGVmYXVsdEJ1dHRvbil9cmV0dXJuIGN9LAphZGREaWFsb2dFbnRlcktl
eUxpc3RlbmVyOmZ1bmN0aW9uKGEsYyxlKXtpZighYXx8IWMpcmV0dXJuIG51bGw7
Yz1uZXcgWUFIT08udXRpbC5LZXlMaXN0ZW5lcihkb2N1bWVudCx7a2V5czoxM30s
e2ZuOmMsc2NvcGU6ZSxjb3JyZWN0U2NvcGU6dHJ1ZX0pO2EuY2ZnLnNldFByb3Bl
cnR5KCJrZXlsaXN0ZW5lcnMiLGMpO3JldHVybiBjfSxfY3JlYXRlRGlhbG9nOmZ1
bmN0aW9uKGEsYyxlKXt0aGlzLl9kaWFsb2dDb3VudCsrO3ZhciBmPSJybkRpYWxv
ZyIrdGhpcy5fZGlhbG9nQ291bnQ7aWYoZT09PW51bGx8fGU9PT11bmRlZmluZWQp
ZT17fTt2YXIgaD1jO2lmKFlBSE9PLmxhbmcuaXNPYmplY3QoYykmJmMubm9kZVZh
bHVlKWg9Yy5ub2RlVmFsdWU7aWYoIWUuYnV0dG9ucyllLmJ1dHRvbnM9W3t0ZXh0
OlJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJPS19MQkwiKSxoYW5kbGVy
OmUuZXhpdENhbGxiYWNrfHxmdW5jdGlvbigpe3RoaXMuaGlkZSgpfSxpc0RlZmF1
bHQ6dHJ1ZX1dOwphPSc8c3BhbiBjbGFzcz0icm5fU2NyZWVuUmVhZGVyT25seSI+
JytSaWdodE5vdy5JbnRlcmZhY2UuZ2V0TWVzc2FnZSgiQkVHX0RJQUxPR19QTFNf
RElTTUlTU19ESUFMT0dfQkVGX01TRyIpKyI8YnIgLz48L3NwYW4+IithO2g9bmV3
IFlBSE9PLndpZGdldC5TaW1wbGVEaWFsb2coZix7dmlzaWJsZTpmYWxzZSx6SW5k
ZXg6OTk5OSxkcmFnZ2FibGU6ZmFsc2UsZml4ZWRjZW50ZXI6ImNvbnRhaW5lZCIs
bW9kYWw6dHJ1ZSxwb3NpdGlvbjoiYWJzb2x1dGUiLGNvbnN0cmFpbnRvdmlld3Bv
cnQ6dHJ1ZSx1bmRlcmxheToibm9uZSIsYnV0dG9uczplLmJ1dHRvbnMsY2xvc2U6
dHJ1ZX0pO2guc2V0SGVhZGVyKGEpO2guc2V0Qm9keShjKTtSaWdodE5vdy5JbnRl
cmZhY2UuQ29uc3RhbnRzLkNBTl9VU0VfQVJJQSYmaC5jZmcuc2V0UHJvcGVydHko
InJvbGUiLCJkaWFsb2ciKTtlLndpZHRoJiZoLmNmZy5xdWV1ZVByb3BlcnR5KCJ3
aWR0aCIsZS53aWR0aCk7aC5yZW5kZXJFdmVudC5zdWJzY3JpYmUoUmlnaHROb3cu
VUkudXBkYXRlVmlydHVhbEJ1ZmZlcik7CmgucmVuZGVyKHRoaXMuX3RvcFJlbmRl
ckRpdik7YT1ZQUhPTy51dGlsLkRvbTthLnNldFN0eWxlKGguY2xvc2UsIm92ZXJm
bG93IiwiaGlkZGVuIik7YS5zZXRTdHlsZShoLmNsb3NlLCJ0ZXh0LWluZGVudCIs
Ii0xMDAwMGVtIik7YS5zZXRTdHlsZShoLmNsb3NlLCJ0ZXh0LWRlY29yYXRpb24i
LCJub25lIik7aC5icmluZ1RvVG9wJiZoLmJyaW5nVG9Ub3AoKTthLmFkZENsYXNz
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGYpLCJybl9EaWFsb2ciKTtmPWRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtmLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImJyIikpO2YuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoUmlnaHROb3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIkVORF9E
SUFMT0dfUExTX0RJU01JU1NfRElBTE9HX0JFRl9NU0ciKSkpO2EuYWRkQ2xhc3Mo
Ziwicm5fU2NyZWVuUmVhZGVyT25seSIpO2guYXBwZW5kVG9Gb290ZXIoZik7aWYo
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7Zj0KZnVuY3Rpb24oKXtpZih0aGlzLmZv
Y3VzKXRyeXt0aGlzLmZvY3VzKCl9Y2F0Y2goZyl7fX07aC5oaWRlRXZlbnQuc3Vi
c2NyaWJlKGYsZG9jdW1lbnQuYWN0aXZlRWxlbWVudCx0cnVlKX1oLmhpZGVFdmVu
dC5zdWJzY3JpYmUoUmlnaHROb3cuVUkudXBkYXRlVmlydHVhbEJ1ZmZlcik7aC5z
aG93RXZlbnQuc3Vic2NyaWJlKFJpZ2h0Tm93LlVJLnVwZGF0ZVZpcnR1YWxCdWZm
ZXIpO3JldHVybiBofSxkaXNhYmxlRGlhbG9nQnV0dG9uczpmdW5jdGlvbihhKXth
PWEuZ2V0QnV0dG9ucygpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWFbY10u
ZGlzYWJsZWQ9dHJ1ZX0sZGlzYWJsZURpYWxvZ0NvbnRyb2xzOmZ1bmN0aW9uKGEs
Yyl7dGhpcy5kaXNhYmxlRGlhbG9nS2V5TGlzdGVuZXIoYSxjKTt0aGlzLmRpc2Fi
bGVEaWFsb2dCdXR0b25zKGEpfSxkaXNhYmxlRGlhbG9nS2V5TGlzdGVuZXI6ZnVu
Y3Rpb24oYSxjKXtpZighYXx8IWMpcmV0dXJuIG51bGw7YS5jZmcuc2V0UHJvcGVy
dHkoImtleWxpc3RlbmVycyIsCm51bGwpO2MuZGlzYWJsZSgpfSxlbmFibGVEaWFs
b2dCdXR0b25zOmZ1bmN0aW9uKGEpe2E9YS5nZXRCdXR0b25zKCk7Zm9yKHZhciBj
PTA7YzxhLmxlbmd0aDtjKyspYVtjXS5kaXNhYmxlZD1mYWxzZX0sZW5hYmxlRGlh
bG9nQ29udHJvbHM6ZnVuY3Rpb24oYSxjLGUpe3RoaXMuZW5hYmxlRGlhbG9nS2V5
TGlzdGVuZXIoYSxjKTt0aGlzLmVuYWJsZURpYWxvZ0J1dHRvbnMoYSk7ZSYmZS5m
b2N1cygpfSxlbmFibGVEaWFsb2dLZXlMaXN0ZW5lcjpmdW5jdGlvbihhLGMpe2lm
KCFhfHwhYylyZXR1cm4gbnVsbDthLmNmZy5zZXRQcm9wZXJ0eSgia2V5bGlzdGVu
ZXJzIixjKTtjLmVuYWJsZSgpfSxtZXNzYWdlRGlhbG9nOmZ1bmN0aW9uKGEsYyl7
aWYoIWEpcmV0dXJuIGZhbHNlO2lmKGM9PT1udWxsfHxjPT09dW5kZWZpbmVkKWM9
e307dmFyIGUsZixoO2Y9WUFIT08ud2lkZ2V0LlNpbXBsZURpYWxvZztzd2l0Y2go
Yy5pY29uKXtjYXNlICJIRUxQIjplPVJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNz
YWdlKCJIRUxQX0xCTCIpOwpmPWYuSUNPTl9IRUxQO2JyZWFrO2Nhc2UgIldBUk4i
OmU9UmlnaHROb3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIldBUk5JTkdfTEJMIik7
Zj1mLklDT05fV0FSTjticmVhaztjYXNlICJUSVAiOmU9UmlnaHROb3cuSW50ZXJm
YWNlLmdldE1lc3NhZ2UoIlRJUF9MQkwiKTtmPWYuSUNPTl9USVA7YnJlYWs7Y2Fz
ZSAiQUxBUk0iOmU9UmlnaHROb3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIkFMQVJN
X0xCTCIpO2Y9Zi5JQ09OX0FMQVJNO2JyZWFrO2Nhc2UgIkJMT0NLIjplPVJpZ2h0
Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJCTE9DS19MQkwiKTtmPWYuSUNPTl9C
TE9DSzticmVhaztjYXNlICJJTkZPIjpkZWZhdWx0OmU9UmlnaHROb3cuSW50ZXJm
YWNlLmdldE1lc3NhZ2UoIklORk9STUFUSU9OX0xCTCIpO2Y9Zi5JQ09OX0lORk87
YnJlYWt9ZT1jLnRpdGxlfHxlO2lmKCFjLndpZHRoKWMud2lkdGg9IjIwZW0iO2g9
Yy5leGl0Q2FsbGJhY2t8fGMuZm9jdXNFbGVtZW50P2Z1bmN0aW9uKCl7dGhpcy5o
aWRlKCk7CmlmKGMuZXhpdENhbGxiYWNrJiZ0eXBlb2YgYy5leGl0Q2FsbGJhY2s9
PT0iZnVuY3Rpb24iKWMuZXhpdENhbGxiYWNrKGMuZm9jdXNFbGVtZW50KTtlbHNl
IGlmKGMuZXhpdENhbGxiYWNrJiZjLmV4aXRDYWxsYmFjay5mbiYmYy5leGl0Q2Fs
bGJhY2suc2NvcGUpYy5leGl0Q2FsbGJhY2suZm4uY2FsbChjLmV4aXRDYWxsYmFj
ay5zY29wZSxjLmZvY3VzRWxlbWVudCk7ZWxzZSBpZihjLmZvY3VzRWxlbWVudCl7
dmFyIGo9dHlwZW9mIGMuZm9jdXNFbGVtZW50PT09InN0cmluZyI/ZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoYy5mb2N1c0VsZW1lbnQpOmMuZm9jdXNFbGVtZW50O2om
JmouZm9jdXMmJmouZm9jdXMoKX19OmZ1bmN0aW9uKCl7dGhpcy5oaWRlKCl9O3Zh
ciBnPXRoaXMuX2NyZWF0ZURpYWxvZyhlLGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KGEpLHt3aWR0aDpjLndpZHRoLGV4aXRDYWxsYmFjazpofSk7Zy5jZmcuc2V0UHJv
cGVydHkoImljb24iLGYpO1JpZ2h0Tm93LkludGVyZmFjZS5Db25zdGFudHMuQ0FO
X1VTRV9BUklBJiYKZy5jZmcuc2V0UHJvcGVydHkoInJvbGUiLCJhbGVydGRpYWxv
ZyIpO2cuZGVmYXVsdEh0bWxCdXR0b24uaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0i
cm5fU2NyZWVuUmVhZGVyT25seSI+JytlKyIgIitSaWdodE5vdy5JbnRlcmZhY2Uu
Z2V0TWVzc2FnZSgiRElBTE9HX0xCTCIpKyIgIithKyIgPC9zcGFuPiIrZy5kZWZh
dWx0SHRtbEJ1dHRvbi5pbm5lckhUTUw7Zy5oaWRlRXZlbnQuc3Vic2NyaWJlKGgp
O1lBSE9PLmxhbmcubGF0ZXIoMUUzLGcsInNob3ciKTtyZXR1cm4gZ319fTtZQUhP
Ty53aWRnZXQuU2ltcGxlRGlhbG9nLnByb3RvdHlwZS5mb2N1c0ZpcnN0PVlBSE9P
LndpZGdldC5QYW5lbC5wcm90b3R5cGUuZm9jdXNGaXJzdDtZQUhPTy53aWRnZXQu
U2ltcGxlRGlhbG9nLnByb3RvdHlwZS5kaXNhYmxlQnV0dG9ucz1mdW5jdGlvbigp
e2Zvcih2YXIgYT10aGlzLmdldEJ1dHRvbnMoKSxjPTA7YzxhLmxlbmd0aDtjKysp
YVtjXS5kaXNhYmxlZD10cnVlfTsKWUFIT08ud2lkZ2V0LlNpbXBsZURpYWxvZy5w
cm90b3R5cGUuZW5hYmxlQnV0dG9ucz1mdW5jdGlvbigpe2Zvcih2YXIgYT10aGlz
LmdldEJ1dHRvbnMoKSxjPTA7YzxhLmxlbmd0aDtjKyspYVtjXS5kaXNhYmxlZD1m
YWxzZX07WUFIT08ud2lkZ2V0LlNpbXBsZURpYWxvZy5wcm90b3R5cGUuZW5hYmxl
U2Vjb25kQnV0dG9uPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5nZXRCdXR0b25zKCk7
aWYoYVsxXSlhWzFdLmRpc2FibGVkPWZhbHNlfTtpZihSaWdodE5vdy5VcmwpdGhy
b3cgbmV3IEVycm9yKCJUaGUgUmlnaHROb3cuVXJsIG5hbWVzcGFjZSB2YXJpYWJs
ZSBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgc29tZXdoZXJlLiIpOwpSaWdodE5v
dy5Vcmw9e19wYXJhbWV0ZXJTZWdtZW50OjAsX3Nlc3Npb25QYXJtOiIiLGFkZFBh
cmFtZXRlcjpmdW5jdGlvbihhLGMsZSl7aWYoZT09bnVsbClyZXR1cm4gYTt2YXIg
Zj1hLmluZGV4T2YoIiMiKSxoPWZhbHNlO2lmKGY+PTApe3ZhciBnPWEuc3Vic3Ry
KGYpO2E9YS5zdWJzdHIoMCxmKTtoPXRydWV9aWYoZS50b1N0cmluZygpLmxlbmd0
aD4wKXtlPWU9PT0iLiJ8fGU9PT0iLi4iPyIgIitlOmU7ZT1lbmNvZGVVUklDb21w
b25lbnQoZSk7aWYoYS5pbmRleE9mKCI/Iik+PTApe2Y9bmV3IFJlZ0V4cCgiJiIr
YysiPVteJl0rIik7Yz0iJiIrYysiPSI7dmFyIGo9IiYifWVsc2V7Zj1uZXcgUmVn
RXhwKCIvIitjKyIvW14vXSsiKTtjPSIvIitjKyIvIjtqPSIvIn1pZihhLmluZGV4
T2YoYyk+PTApYT1hLnJlcGxhY2UoZixjK2UpO2Vsc2V7aWYoYS5jaGFyQXQoYS5s
ZW5ndGgtMSk9PT1qKWE9YS5zdWJzdHIoMCxhLmxlbmd0aC0xKTthKz1jK2V9fWlm
KGgpcmV0dXJuIGErZzsKcmV0dXJuIGF9LGJ1aWxkVXJsTGlua1N0cmluZzpmdW5j
dGlvbihhKXtmb3IodmFyIGM9IiIsZT1hLmZvcm1hdC5wYXJtTGlzdD9hLmZvcm1h
dC5wYXJtTGlzdC5zcGxpdCgiLCIpOltdLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFy
IGg9ZVtmXSxnPWVbZl0saj10aGlzLmdldFBhcmFtZXRlcihoKTtpZihqIT09bnVs
bCljPXRoaXMuYWRkUGFyYW1ldGVyKGMsaCxqKTtnPWc9PT0ia3ciPyJrZXl3b3Jk
IjpnO2c9Zz09PSJzdCI/InNlYXJjaFR5cGUiOmc7Zz1nPT09InNvcnQiPyJzb3J0
X2FyZ3MiOmc7aWYoZz09PSJwYWdlIiljPXRoaXMuYWRkUGFyYW1ldGVyKGMsZyxh
W2hdKTtlbHNlIGlmKGEuZmlsdGVyc1tnXSYmYS5maWx0ZXJzW2ddLmZpbHRlcnMm
JmEuZmlsdGVyc1tnXS5maWx0ZXJzLmRhdGEhPW51bGwpe2o9YS5maWx0ZXJzW2dd
LmZpbHRlcnMuZGF0YS52YWwhPW51bGw/YS5maWx0ZXJzW2ddLmZpbHRlcnMuZGF0
YS52YWw6YS5maWx0ZXJzW2ddLmZpbHRlcnMuZGF0YTtpZihnPT09CiJzb3J0X2Fy
Z3MiKWo9YS5maWx0ZXJzW2ddLmZpbHRlcnMuZGF0YS5jb2xfaWQrIiwiK2EuZmls
dGVyc1tnXS5maWx0ZXJzLmRhdGEuc29ydF9kaXJlY3Rpb247ZWxzZSBpZihnPT09
Im9yZyIpaj1hLmZpbHRlcnNbZ10uZmlsdGVycy5kYXRhLnNlbGVjdGVkO2Vsc2Ug
aWYoZz09PSJwInx8Zz09PSJjIilqPWpbMF07aWYoWUFIT08ubGFuZy5pc0FycmF5
KGopKWo9ai5qb2luKCIsIik7aWYoaiE9bnVsbCljPXRoaXMuYWRkUGFyYW1ldGVy
KGMsaCxqKX19cmV0dXJuIGN9LGNvbnZlcnRTZWFyY2hGaWx0ZXJzOmZ1bmN0aW9u
KGEsYyxlLGYpe3ZhciBoPWE7Zm9yKHZhciBnIGluIGMpaWYodHlwZW9mIGNbZ10h
PT0iZnVuY3Rpb24iKXt2YXIgaj1nLGw9IiI7aWYoZz09PSJrZXl3b3JkIil7aj0i
a3ciO2w9Y1tnXS5maWx0ZXJzLmRhdGEudmFsIT1udWxsP2NbZ10uZmlsdGVycy5k
YXRhLnZhbDpjW2ddLmZpbHRlcnMuZGF0YTtpZihSaWdodE5vdy5Qcm9maWxlLmtl
eXdvcmQhPSIiJiZSaWdodE5vdy5Qcm9maWxlLmtleXdvcmQhPQpsfHxjW2ddLmZp
bHRlcnMucmVwb3J0X2RlZiYmY1tnXS5maWx0ZXJzLnJlcG9ydF9kZWYhPWx8fCFj
W2ddLmZpbHRlcnMucmVwb3J0X2RlZiYmbCE9IiIpaWYodHlwZW9mIGwhPT0ib2Jq
ZWN0Iil7bD1sPT0iIj8iICI6bDthPXRoaXMuYWRkUGFyYW1ldGVyKGEsaixsKX19
ZWxzZSBpZihnPT09InNlYXJjaFR5cGUiKXtqPSJzdCI7aWYoKGw9Y1tnXS5maWx0
ZXJzLmZsdHJfaWQpJiZjW2ddLmZpbHRlcnMuY2hhbmdlZClhPXRoaXMuYWRkUGFy
YW1ldGVyKGEsaixsKX1lbHNlIGlmKGc9PT0icGFnZSIpe2lmKGNbZ10+MSl7aj0i
cGFnZSI7bD1jW2ddO2E9dGhpcy5hZGRQYXJhbWV0ZXIoYSxqLGwpfX1lbHNlIGlm
KGc9PT0ic29ydF9hcmdzIil7bD1jW2ddLmZpbHRlcnMuZGF0YSYmY1tnXS5maWx0
ZXJzLmRhdGEuY29sX2lkP2NbZ10uZmlsdGVycy5kYXRhLmNvbF9pZDpjW2ddLmZp
bHRlcnMuY29sX2lkO3ZhciB3PWNbZ10uZmlsdGVycy5kYXRhJiZjW2ddLmZpbHRl
cnMuZGF0YS5zb3J0X2RpcmVjdGlvbj8KY1tnXS5maWx0ZXJzLmRhdGEuc29ydF9k
aXJlY3Rpb246Y1tnXS5maWx0ZXJzLnNvcnRfZGlyZWN0aW9uO2lmKGwhPXVuZGVm
aW5lZCYmbD49MCl7aj0ic29ydCI7bD1sKyIsIit3O2E9dGhpcy5hZGRQYXJhbWV0
ZXIoYSxqLGwpfX1lbHNlIGlmKGc9PT0icCJ8fGc9PT0iYyIpe2w9Y1tnXS5maWx0
ZXJzLmRhdGEudG9TdHJpbmcoKTtqPWNbZ10uZmlsdGVycy5yZXBvcnRfZGVmO2o9
aj09dW5kZWZpbmVkfHxqPT1SaWdodE5vdy5JbnRlcmZhY2UuQ29uc3RhbnRzLkFO
WV9GSUxURVJfVkFMVUU/IiI6ai50b1N0cmluZygpO3c9Zz09PSJwIj9SaWdodE5v
dy5UZXh0LnRyaW1Db21tYShSaWdodE5vdy5Qcm9maWxlLnByb2R1Y3QpOlJpZ2h0
Tm93LlRleHQudHJpbUNvbW1hKFJpZ2h0Tm93LlByb2ZpbGUuY2F0ZWdvcnkpO2lm
KGwhPSIiJiZqIT1sJiZ3IT1sKWE9dGhpcy5hZGRQYXJhbWV0ZXIoYSxnLGwpO2Vs
c2UgaWYobD09IiImJihqIT0iInx8dyE9IiIpKWE9dGhpcy5hZGRQYXJhbWV0ZXIo
YSwKZywiICIpfWVsc2UgaWYoZz09PSJvcmciJiZjW2ddLmZpbHRlcnMmJmNbZ10u
ZmlsdGVycy5kYXRhJiZjW2ddLmZpbHRlcnMuZGF0YS5zZWxlY3RlZCE9bnVsbCl7
bD1jW2ddLmZpbHRlcnMuZGF0YS5zZWxlY3RlZDthPXRoaXMuYWRkUGFyYW1ldGVy
KGEsaixsKX1lbHNlIGlmKGNbZ10mJmNbZ10uZmlsdGVycyYmY1tnXS5maWx0ZXJz
LmRhdGEhPW51bGwpe2w9Y1tnXS5maWx0ZXJzLmRhdGEudmFsP2NbZ10uZmlsdGVy
cy5kYXRhLnZhbDpjW2ddLmZpbHRlcnMuZGF0YTtpZih0eXBlb2YgbCE9PSJvYmpl
Y3QiKWE9dGhpcy5hZGRQYXJhbWV0ZXIoYSxqLGwpfX1pZihoLmxlbmd0aCE9YS5s
ZW5ndGgpYT10aGlzLmFkZFBhcmFtZXRlcihhLCJyX2lkIixlKTtpZihmIT1udWxs
KWE9dGhpcy5hZGRQYXJhbWV0ZXIoYSwic25vIixmKTtyZXR1cm4gYX0sY29udmVy
dFNlYXJjaEZpbHRlcnNUb1Bhcm1zOmZ1bmN0aW9uKGEsYyxlKXtmb3IodmFyIGYg
aW4gYylpZih0eXBlb2YgY1tmXSE9PSJmdW5jdGlvbiIpe3ZhciBoPQpmLGc9IiI7
aWYoZj09PSJrZXl3b3JkIil7aD0ia3ciO2c9Y1tmXS5maWx0ZXJzLmRhdGE7aWYo
ZyE9IiIpYT10aGlzLmFkZFBhcmFtZXRlcihhLGgsZyl9ZWxzZSBpZihmPT09InNl
YXJjaFR5cGUiKXtoPSJzdCI7aWYoKGc9Y1tmXS5maWx0ZXJzLmZsdHJfaWQpJiZj
W2ZdLmZpbHRlcnMuY2hhbmdlZClhPXRoaXMuYWRkUGFyYW1ldGVyKGEsaCxnKX1l
bHNlIGlmKGY9PT0icGFnZSIpe2lmKGNbZl0+MSl7aD0icGFnZSI7Zz1jW2ZdO2E9
dGhpcy5hZGRQYXJhbWV0ZXIoYSxoLGcpfX1lbHNlIGlmKGY9PT0ic29ydF9hcmdz
Iil7Zz1jW2ZdLmZpbHRlcnMuZGF0YSYmY1tmXS5maWx0ZXJzLmRhdGEuY29sX2lk
P2NbZl0uZmlsdGVycy5kYXRhLmNvbF9pZDpjW2ZdLmZpbHRlcnMuY29sX2lkO3Zh
ciBqPWNbZl0uZmlsdGVycy5kYXRhJiZjW2ZdLmZpbHRlcnMuZGF0YS5zb3J0X2Rp
cmVjdGlvbj9jW2ZdLmZpbHRlcnMuZGF0YS5zb3J0X2RpcmVjdGlvbjpjW2ZdLmZp
bHRlcnMuc29ydF9kaXJlY3Rpb247CmlmKGchPXVuZGVmaW5lZCYmZz49MCl7aD0i
c29ydCI7Zz1nKyIsIitqO2E9dGhpcy5hZGRQYXJhbWV0ZXIoYSxoLGcpfX1lbHNl
IGlmKGY9PT0icCJ8fGY9PT0iYyIpe2c9Y1tmXS5maWx0ZXJzLmRhdGFbMF0uam9p
bigpO2lmKGchPT0iIilhPXRoaXMuYWRkUGFyYW1ldGVyKGEsZixnKX1lbHNlIGlm
KGY9PT0ib3JnIiYmY1tmXS5maWx0ZXJzJiZjW2ZdLmZpbHRlcnMuZGF0YSYmY1tm
XS5maWx0ZXJzLmRhdGEuc2VsZWN0ZWQhPW51bGwpe2c9Y1tmXS5maWx0ZXJzLmRh
dGEuc2VsZWN0ZWQ7YT10aGlzLmFkZFBhcmFtZXRlcihhLGgsZyl9ZWxzZSBpZihj
W2ZdJiZjW2ZdLmZpbHRlcnMmJmNbZl0uZmlsdGVycy5kYXRhIT1udWxsKXtnPWNb
Zl0uZmlsdGVycy5kYXRhLnZhbD9jW2ZdLmZpbHRlcnMuZGF0YS52YWw6Y1tmXS5m
aWx0ZXJzLmRhdGE7aWYodHlwZW9mIGchPT0ib2JqZWN0IilhPXRoaXMuYWRkUGFy
YW1ldGVyKGEsaCxnKX19aWYoZSE9bnVsbClhPXRoaXMuYWRkUGFyYW1ldGVyKGEs
CiJzbm8iLGUpO3JldHVybiBhfSxjb252ZXJ0VG9BcnJheTpmdW5jdGlvbihhKXtp
Zih0eXBlb2YgYT09PSJ1bmRlZmluZWQifHxpc05hTihwYXJzZUludChhLDEwKSkp
YT10aGlzLl9wYXJhbWV0ZXJTZWdtZW50O3ZhciBjPXdpbmRvdy5sb2NhdGlvbi5w
YXRobmFtZSxlPVtdLGY9L1wvKy9nO2M9Yy5yZXBsYWNlKGYsIi8iKTtjPWMuc3Bs
aXQoIi9hcHAiKTtpZihjLmxlbmd0aD4xKXtjPWNbMV0uc3BsaXQoIi8iKTtmb3Io
YT1hLTI7YTxjLmxlbmd0aDthKz0yKWlmKGErMTxjLmxlbmd0aCllW2NbYV1dPWRl
Y29kZVVSSUNvbXBvbmVudChjW2ErMV0pfXJldHVybiBlfSxkZWxldGVQYXJhbWV0
ZXI6ZnVuY3Rpb24oYSxjKXtpZihhLmluZGV4T2YoIi8iK2MrIi8iKT49MClyZXR1
cm4gYS5yZXBsYWNlKG5ldyBSZWdFeHAoIi8iK2MrIi9bXiMvXSsiKSwiIik7cmV0
dXJuIGF9LGdldFNlc3Npb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2Vzc2lv
blBhcm19LGdldFBhcmFtZXRlclNlZ21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5fcGFyYW1ldGVyU2VnbWVudH0sCmdldFBhcmFtZXRlcjpmdW5jdGlvbihhKXt2
YXIgYz10aGlzLmNvbnZlcnRUb0FycmF5KHRoaXMuZ2V0UGFyYW1ldGVyU2VnbWVu
dCgpKTtyZXR1cm4gY1thXXx8bnVsbH0sZ2V0VXJsUGFyYW1ldGVyc0Zyb21MaXN0
OmZ1bmN0aW9uKGEsYyl7aWYoYz09PXVuZGVmaW5lZCljPVtdO3ZhciBlPSIiO2E9
YS5yZXBsYWNlKC8gL2csIiIpLnNwbGl0KCIsIik7Zm9yKHZhciBmPTA7ZjxhLmxl
bmd0aDtmKyspe2Zvcih2YXIgaD1mYWxzZSxnPTA7ZzxjLmxlbmd0aDtnKyspaWYo
Y1tnXT09PWFbZl0pe2g9dHJ1ZTticmVha31pZighaCl7aD10aGlzLmdldFBhcmFt
ZXRlcihhW2ZdKTtpZihoIT09bnVsbCllKz0iLyIrYVtmXSsiLyIraH19cmV0dXJu
IGV9LG5hdmlnYXRlOmZ1bmN0aW9uKGEsYyl7aWYoIWMmJnRoaXMuZ2V0U2Vzc2lv
bigpIT09IiIpYT10aGlzLmFkZFBhcmFtZXRlcihhLCJzZXNzaW9uIix0aGlzLmdl
dFNlc3Npb24oKSk7aWYod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lPT09YSl3aW5k
b3cubG9jYXRpb24ucmVsb2FkKHRydWUpOwplbHNlIHdpbmRvdy5sb2NhdGlvbj1h
fSxzZXRQYXJhbWV0ZXJTZWdtZW50OmZ1bmN0aW9uKGEpe3RoaXMuX3BhcmFtZXRl
clNlZ21lbnQ9YX0sc2V0U2Vzc2lvbjpmdW5jdGlvbihhKXt0aGlzLl9zZXNzaW9u
UGFybT1hfSx0cmFuc2Zvcm1MaW5rczpmdW5jdGlvbihhKXtpZighYSlhPWRvY3Vt
ZW50LmJvZHk7ZnVuY3Rpb24gYyhoKXt0cnl7dmFyIGc9aC5ocmVmO3JldHVybiEo
Zy5pbmRleE9mKCJqYXZhc2NyaXB0OiIpPi0xfHxnPT09IiJ8fGguaG9zdG5hbWUh
PT13aW5kb3cubG9jYXRpb24uaG9zdG5hbWV8fGcuaW5kZXhPZigiZG9jX3ZpZXcu
cGhwIik+LTF8fGcuaW5kZXhPZigiZG9jX3N1Ym1pdC5waHAiKT4tMXx8Zy5pbmRl
eE9mKCJkb2Nfc2VydmUucGhwIik+LTF8fGcuaW5kZXhPZigidmVyaWZ5X2FjY3Rf
bG9naW4ucGhwIik+LTF8fGcuaW5kZXhPZigiL2NpLyIpPi0xJiYhKGcuaW5kZXhP
ZigiL2NpL29wZW5zZWFyY2giKT4tMSl8fGcuaW5kZXhPZigicWF1dGlscy5waHAi
KT4KLTEpfWNhdGNoKGope3JldHVybiBmYWxzZX19dmFyIGU9ZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImJhc2UiKTtlPWUubGVuZ3RoPjA/ZVswXS5ocmVm
OiIiO2Z1bmN0aW9uIGYoaCl7dmFyIGc9aC5ocmVmLnNwbGl0KCIjIiksaj1oLmlu
bmVySFRNTDtpZihnWzFdIT09dW5kZWZpbmVkJiZnWzBdPT09ZSl7aC5ocmVmPXdp
bmRvdy5sb2NhdGlvbi5wYXRobmFtZSsiIyIrZ1sxXTtpZihqLmluZGV4T2YoIkAi
KT4tMSloLmlubmVySFRNTD1qfWlmKFJpZ2h0Tm93LlVybC5nZXRTZXNzaW9uKCkh
PT0iIiYmZ1swXSE9PWUpe2guaHJlZj1SaWdodE5vdy5VcmwuYWRkUGFyYW1ldGVy
KGguaHJlZiwic2Vzc2lvbiIsUmlnaHROb3cuVXJsLmdldFNlc3Npb24oKSk7aWYo
ai5pbmRleE9mKCJAIik+LTEpaC5pbm5lckhUTUw9an19WUFIT08udXRpbC5Eb20u
Z2V0RWxlbWVudHNCeShjLCJhIixhLGYpfX07aWYoUmlnaHROb3cuRXZlbnQpdGhy
b3cgbmV3IEVycm9yKCJUaGUgUmlnaHROb3cuRXZlbnQgbmFtZXNwYWNlIHZhcmlh
YmxlIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBzb21ld2hlcmUuIik7ClJpZ2h0
Tm93LkV2ZW50PXtfZXZlbnRJbnN0YW5jZXM6e30sY3JlYXRlOmZ1bmN0aW9uKGEs
Yyl7dGhpcy5fZXZlbnRJbnN0YW5jZXNbYV18fCh0aGlzLl9ldmVudEluc3RhbmNl
c1thXT1jP25ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KGEsYyk6bmV3IFlBSE9P
LnV0aWwuQ3VzdG9tRXZlbnQoYSkpfSxmaXJlOmZ1bmN0aW9uKGEpe2lmKHRoaXMu
X2V2ZW50SW5zdGFuY2VzW2FdKXt2YXIgYz1bXS5zbGljZS5jYWxsKGFyZ3VtZW50
cywxKTt0aGlzLl9ldmVudEluc3RhbmNlc1thXS5maXJlLmFwcGx5KHRoaXMuX2V2
ZW50SW5zdGFuY2VzW2FdLGMpfX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlz
Ll9ldmVudEluc3RhbmNlc1thXXx8bnVsbH0sZ2V0U3Vic2NyaWJlckxlbmd0aDpm
dW5jdGlvbihhKXtyZXR1cm4gdGhpcy5fZXZlbnRJbnN0YW5jZXNbYV0/dGhpcy5f
ZXZlbnRJbnN0YW5jZXNbYV0uc3Vic2NyaWJlcnMubGVuZ3RoOjB9LHN1YnNjcmli
ZTpmdW5jdGlvbihhLGMsZSwKZil7dGhpcy5fZXZlbnRJbnN0YW5jZXNbYV18fHRo
aXMuY3JlYXRlKGEsZSk7dGhpcy5fZXZlbnRJbnN0YW5jZXNbYV0uc3Vic2NyaWJl
KGMsZixlKX0sdW5zdWJzY3JpYmU6ZnVuY3Rpb24oYSxjKXt0aGlzLl9ldmVudElu
c3RhbmNlc1thXSYmdGhpcy5fZXZlbnRJbnN0YW5jZXNbYV0udW5zdWJzY3JpYmUo
Yyl9LGNyZWF0ZURlbGVnYXRlOmZ1bmN0aW9uKGEsYyl7cmV0dXJuIGZ1bmN0aW9u
KCl7cmV0dXJuIGMuYXBwbHkoYSxhcmd1bWVudHMpfX0saXNTYW1lUmVwb3J0SUQ6
ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYSYmYVswXSYmYVswXS5maWx0ZXJzJiZhWzBd
LmZpbHRlcnMucmVwb3J0X2lkPT1jfSxnZXREYXRhRnJvbUZpbHRlcnNFdmVudFJl
c3BvbnNlOmZ1bmN0aW9uKGEsYyxlKXthPWFbMF07dmFyIGY9bnVsbDtpZihhLmZp
bHRlcnMmJmEuZmlsdGVycy5yZXBvcnRfaWQ9PWUpZj1hLmZpbHRlcnMuYWxsRmls
dGVycyYmYS5maWx0ZXJzLmFsbEZpbHRlcnMuZmlsdGVycyYmYS5maWx0ZXJzLmFs
bEZpbHRlcnMuZmlsdGVyc1tjXSYmCmEuZmlsdGVycy5hbGxGaWx0ZXJzLmZpbHRl
cnNbY10uZmlsdGVycz9hLmZpbHRlcnMuYWxsRmlsdGVycy5maWx0ZXJzW2NdLmZp
bHRlcnMuZGF0YTphLmZpbHRlcnMuZGF0YTtyZXR1cm4gZn0sYnJvd3Nlckhpc3Rv
cnlNYW5hZ2VtZW50S2V5OiJzIixpc0hpc3RvcnlNYW5hZ2VyRnJhZ21lbnQ6ZnVu
Y3Rpb24oKXt2YXIgYT13aW5kb3cubG9jYXRpb24uaGFzaCxjPSIjIitSaWdodE5v
dy5FdmVudC5icm93c2VySGlzdG9yeU1hbmFnZW1lbnRLZXkrIj0iLGU9YS5pbmRl
eE9mKGMpLGY9IiI7aWYoZT49MClmPWEuc3Vic3RyKGUpO3JldHVybiBmLmxlbmd0
aD5jLmxlbmd0aH0sRXZlbnRPYmplY3Q6ZnVuY3Rpb24oKXt0aGlzLndfaWQ9bnVs
bDt0aGlzLmRhdGE9e307dGhpcy5maWx0ZXJzPXt9fSxFdmVudEJ1czpmdW5jdGlv
bigpe2Z1bmN0aW9uIGEoZCxiKXtkPWJbMF0uZGF0YS5zdGF0dXM9PT0tND97ZXZl
bnROYW1lOiJldnRfYW5zd2VyTm90aWZpY2F0aW9uRGVsZXRlUmVzcG9uc2UifToK
e2V2ZW50TmFtZToiZXZ0X2Fuc3dlck5vdGlmaWNhdGlvblJlc3BvbnNlIn07dmFy
IGk9e2FfaWQ6YlswXS5kYXRhLmFuc3dlcklELHN0YXR1czpiWzBdLmRhdGEuc3Rh
dHVzfTtpZihiWzBdLmRhdGEuY29udGFjdElEKWkuY2lkPWJbMF0uZGF0YS5jb250
YWN0SUQ7UmlnaHROb3cuQWpheC5tYWtlUmVxdWVzdCgiL2NpL2FqYXhSZXF1ZXN0
L2Fuc3dlck5vdGlmaWNhdGlvbiIsaSx7ZGF0YTpkfSl9ZnVuY3Rpb24gYyhkLGIp
e2I9YlswXTtkPXtsb2dpbjpiLmRhdGEudXNlcm5hbWUscGFzc3dvcmQ6Yi5kYXRh
LnBhc3N3b3JkLHVybDpiLmRhdGEudXJsLHdfaWQ6Yi53X2lkfTtSaWdodE5vdy5B
amF4Lm1ha2VSZXF1ZXN0KCIvY2kvYWpheFJlcXVlc3QvZG9Mb2dpbiIsZCx7ZGF0
YTp7ZXZlbnROYW1lOiJldnRfbG9naW5Gb3JtU3VibWl0UmVzcG9uc2UifX0pfWZ1
bmN0aW9uIGUoZCxiKXtSaWdodE5vdy5BamF4Lm1ha2VSZXF1ZXN0KCIvY2kvYWph
eFJlcXVlc3QvZG9Mb2dvdXQiLHt1cmw6YlswXS5kYXRhLmN1cnJlbnRVcmwsCnJl
ZGlyZWN0VXJsOmJbMF0uZGF0YS5yZWRpcmVjdFVybH0se2RhdGE6e2V2ZW50TmFt
ZToiZXZ0X2xvZ291dFJlc3BvbnNlIn19KX1mdW5jdGlvbiBmKGQsYil7dHJ5e2Jb
MF0uZGF0YS51cGxvYWRfdHlwZT09PSJjaGF0Ij9SaWdodE5vdy5BamF4Lm1ha2VS
ZXF1ZXN0KCIvY2kvZmF0dGFjaC91cGxvYWRDaGF0LyIrYlswXS5kYXRhLmVuZ2Fn
ZW1lbnRfaWQrIi8iK2JbMF0uZGF0YS5jaGF0X3NpZCxudWxsLHtkYXRhOntldmVu
dE5hbWU6ImV2dF9maWxlVXBsb2FkUmVzcG9uc2UifSx1cGxvYWRIYW5kbGVyOlJp
Z2h0Tm93LkFqYXguZ2VuZXJpY1N1Y2Nlc3N9KTpSaWdodE5vdy5BamF4Lm1ha2VS
ZXF1ZXN0KCIvY2kvZmF0dGFjaC91cGxvYWQiLG51bGwse2RhdGE6e2V2ZW50TmFt
ZToiZXZ0X2ZpbGVVcGxvYWRSZXNwb25zZSJ9LHVwbG9hZEhhbmRsZXI6UmlnaHRO
b3cuQWpheC5nZW5lcmljU3VjY2Vzc30pfWNhdGNoKGkpe2Q9e3Jlc3Bvc25lVGV4
dDoneyJlcnJvciI6ODh9J307dGhpcy5maXJlKCJldnRfZmlsZVVwbG9hZFJlc3Bv
bnNlIiwKZCl9fWZ1bmN0aW9uIGgoZCxiKXtiPWJbMF07UmlnaHROb3cuVUkuRm9y
bS5lcnJvckNvdW50PTA7UmlnaHROb3cuVUkuRm9ybS5mb3JtRmllbGRzPVtdO1Jp
Z2h0Tm93LlVJLkZvcm0uZm9ybT1iLmRhdGEuZm9ybTtSaWdodE5vdy5VSS5Gb3Jt
LndpZGdldHNUb1ZhbGlkYXRlPVJpZ2h0Tm93LlVJLkZvcm0ud2lkZ2V0c1RvUHJv
Y2Vzcz10aGlzLmdldFN1YnNjcmliZXJMZW5ndGgoImV2dF9mb3JtRmllbGRWYWxp
ZGF0ZVJlcXVlc3QiKTtSaWdodE5vdy5VSS5Gb3JtLmZvcm1Ub2tlbj1iLmRhdGEu
Zl90b2s7UmlnaHROb3cuVUkuRm9ybS53aWRnZXRzVG9WYWxpZGF0ZSE9PTA/dGhp
cy5maXJlKCJldnRfZm9ybUZpZWxkVmFsaWRhdGVSZXF1ZXN0IixiKTp0aGlzLmZp
cmUoImV2dF9mb3JtVmFsaWRhdGVkUmVzcG9uc2UiLGIpfWZ1bmN0aW9uIGcoZCxi
KXstLVJpZ2h0Tm93LlVJLkZvcm0ud2lkZ2V0c1RvVmFsaWRhdGU7aWYoYlswXS5k
YXRhLmZvcm09PT1SaWdodE5vdy5VSS5Gb3JtLmZvcm0pe2RlbGV0ZSBiWzBdLmRh
dGEuZm9ybTsKUmlnaHROb3cuVUkuRm9ybS5mb3JtRmllbGRzLnB1c2goYlswXS5k
YXRhKX1pZihSaWdodE5vdy5VSS5Gb3JtLndpZGdldHNUb1ZhbGlkYXRlPT09MCl7
dGhpcy5maXJlKCJldnRfZm9ybVZhbGlkYXRlZFJlc3BvbnNlIik7IVJpZ2h0Tm93
LlVJLkZvcm0uY2hhdFN1Ym1pdCYmIVJpZ2h0Tm93LlVJLkZvcm0ucGFzc3dvcmRS
ZXNldCYmSCgpfX1mdW5jdGlvbiBqKCl7LS1SaWdodE5vdy5VSS5Gb3JtLndpZGdl
dHNUb1Byb2Nlc3M7UmlnaHROb3cuVUkuRm9ybS53aWRnZXRzVG9Qcm9jZXNzPT09
MCYmUmlnaHROb3cuVUkuRm9ybS53aWRnZXRzVG9WYWxpZGF0ZSE9PTAmJnRoaXMu
ZmlyZSgiZXZ0X2Zvcm1GYWlsVmFsaWRhdGlvblJlc3BvbnNlIil9ZnVuY3Rpb24g
bChkLGIpe2lmKGwuY2FjaGUmJmwuY2FjaGVbYlswXS5kYXRhLmNvdW50cnlfaWRd
KXRoaXMuZmlyZSgiZXZ0X2Zvcm1GaWVsZFByb3ZpbmNlUmVzcG9uc2UiLGwuY2Fj
aGVbYlswXS5kYXRhLmNvdW50cnlfaWRdKTtlbHNle2Q9Cntjb3VudHJ5X2lkOmJb
MF0uZGF0YS5jb3VudHJ5X2lkfTtSaWdodE5vdy5BamF4Lm1ha2VSZXF1ZXN0KCIv
Y2kvYWpheFJlcXVlc3RNaW4vZ2V0Q291bnRyeVZhbHVlcyIsZCx7c3VjY2Vzc0hh
bmRsZXI6dyxzY29wZTp0aGlzLGRhdGE6Yn0pfX1mdW5jdGlvbiB3KGQpe2lmKGQu
YXJndW1lbnQmJmQuYXJndW1lbnRbMF0pe3ZhciBiPWQuYXJndW1lbnRbMF07aWYo
ZC5yZXNwb25zZVRleHQhPT11bmRlZmluZWQpe3ZhciBpPVJpZ2h0Tm93LkpTT04u
cGFyc2UoZC5yZXNwb25zZVRleHQpO2lmKGkpe2lmKCFsLmNhY2hlKWwuY2FjaGU9
W107bC5jYWNoZVtiLmRhdGEuY291bnRyeV9pZF09aX19dGhpcy5maXJlKCJldnRf
Zm9ybUZpZWxkUHJvdmluY2VSZXNwb25zZSIsaSl9fWZ1bmN0aW9uIFIoZCxiKXtk
PWJbMF0uZGF0YTtiPXtrZXl3b3JkOmQuc2VhcmNoVGVybSxsaW1pdDpkLmxpbWl0
LGhpZ2hsaWdodDpkLmhpZ2hsaWdodCx0cnVuY2F0ZTpkLnRydW5jYXRlLHJlc291
cmNlOmQucmVzb3VyY2V9OwppZihkLnJlc291cmNlKWIucmVzb3VyY2U9ZC5yZXNv
dXJjZTtSaWdodE5vdy5BamF4Lm1ha2VSZXF1ZXN0KCIvY2kvYWpheFJlcXVlc3Qv
Z2V0Q29tbXVuaXR5RGF0YSIsYix7ZGF0YTp7ZXZlbnROYW1lOiJldnRfY29tbXVu
aXR5U2VhcmNoUmVzcG9uc2UifX0pfWZ1bmN0aW9uIFMoZCxiKXtkPXthY3Rpb246
YlswXS5kYXRhLmFjdGlvbixkYXRhOlJpZ2h0Tm93LkpTT04uc3RyaW5naWZ5KGJb
MF0uZGF0YS5jb250ZW50KSxhbnN3ZXJJRDpiWzBdLmRhdGEuYW5zd2VySUR9O1Jp
Z2h0Tm93LkFqYXgubWFrZVJlcXVlc3QoIi9jaS9hamF4UmVxdWVzdC9zdWJtaXRB
bnN3ZXJDb21tZW50QWN0aW9uIixkLHtkYXRhOntldmVudE5hbWU6ImV2dF9hbnN3
ZXJDb21tZW50QWN0aW9uUmVzcG9uc2UifX0pfWZ1bmN0aW9uIFQoZCxiKXtkPXt9
O2lmKGJbMF0uZGF0YS5lbWFpbClkLmVtYWlsPWJbMF0uZGF0YS5lbWFpbDtlbHNl
IGlmKGJbMF0uZGF0YS5sb2dpbilkLmxvZ2luPWJbMF0uZGF0YS5sb2dpbjsKZC5j
b250YWN0VG9rZW49YlswXS5kYXRhLmNvbnRhY3RUb2tlbjtkLnB3UmVzZXQ9Umln
aHROb3cuVUkuRm9ybS5wYXNzd29yZFJlc2V0O1JpZ2h0Tm93LkFqYXgubWFrZVJl
cXVlc3QoIi9jaS9hamF4UmVxdWVzdC9jaGVja0ZvckV4aXN0aW5nQ29udGFjdCIs
ZCx7ZGF0YTp7ZXZlbnROYW1lOiJldnRfZm9ybUZpZWxkQWNjb3VudEV4aXN0c1Jl
c3BvbnNlIixpZ25vcmVGYWlsdXJlOnRydWV9fSl9ZnVuY3Rpb24gVShkLGIpe3Ro
aXMuZmlyZSgiZXZ0X3NlYXJjaFR5cGVSZXNwb25zZSIsYlswXSl9ZnVuY3Rpb24g
VihkLGIpe3RoaXMuZmlyZSgiZXZ0X3NvcnRUeXBlUmVzcG9uc2UiLGJbMF0pfWZ1
bmN0aW9uIFcoZCxiKXt0aGlzLmZpcmUoImV2dF9vcmdUeXBlUmVzcG9uc2UiLGJb
MF0pfWZ1bmN0aW9uIFgoZCxiKXt0aGlzLmZpcmUoImV2dF9jdXN0b21NZW51UmVz
cG9uc2UiLGJbMF0pfWZ1bmN0aW9uIFkoZCxiKXtSaWdodE5vdy5BamF4Lm1ha2VS
ZXF1ZXN0KCIvY2kvYWpheFJlcXVlc3QvZW1haWxBbnN3ZXIiLApiWzBdLmRhdGEs
e2RhdGE6e2V2ZW50TmFtZToiZXZ0X2VtYWlsTGlua1N1Ym1pdFJlc3BvbnNlIixk
YXRhOmJ9fSl9ZnVuY3Rpb24gWihkLGIpe1JpZ2h0Tm93LkFqYXgubWFrZVJlcXVl
c3QoIi9jaS9hamF4UmVxdWVzdC9lbWFpbFBhc3N3b3JkIix7bG9naW46YlswXS5k
YXRhLnZhbHVlfSx7ZGF0YTp7ZXZlbnROYW1lOiJldnRfZW1haWxQYXNzd29yZFJl
c3BvbnNlIn19KX1mdW5jdGlvbiAkKGQsYil7UmlnaHROb3cuQWpheC5tYWtlUmVx
dWVzdCgiL2NpL2FqYXhSZXF1ZXN0L2VtYWlsVXNlcm5hbWUiLHtlbWFpbDpiWzBd
LmRhdGEudmFsdWV9LHtkYXRhOntldmVudE5hbWU6ImV2dF9lbWFpbFVzZXJuYW1l
UmVzcG9uc2UifX0pfWZ1bmN0aW9uIGFhKGQsYil7ZD17ZW1haWw6YlswXS5kYXRh
LmVtYWlsLG1lc3NhZ2U6YlswXS5kYXRhLm1lc3NhZ2UsYV9pZDpiWzBdLmRhdGEu
YV9pZCxyYXRlOmJbMF0uZGF0YS5yYXRlLHN1Ym1pdGZlZWRiYWNrOmJbMF0uZGF0
YS5zdWJtaXRmZWVkYmFja307ClJpZ2h0Tm93LkFqYXgubWFrZVJlcXVlc3QoIi9j
aS9hamF4UmVxdWVzdC9zdWJtaXRTaXRlRmVlZGJhY2siLGQse2RhdGE6e2V2ZW50
TmFtZToiZXZ0X3NpdGVGZWVkYmFja1N1Ym1pdFJlc3BvbnNlIixkYXRhOmJ9fSl9
ZnVuY3Rpb24gYmEoZCxiKXtkPXtlbWFpbDpiWzBdLmRhdGEuZW1haWwsbWVzc2Fn
ZTpiWzBdLmRhdGEubWVzc2FnZSxzdW1tYXJ5OmJbMF0uZGF0YS5zdW1tYXJ5LGFf
aWQ6YlswXS5kYXRhLmFfaWQscmF0ZTpiWzBdLmRhdGEucmF0ZSx0aHJlc2hvbGQ6
YlswXS5kYXRhLmRpYWxvZ190aHJlc2hvbGQsc3VibWl0ZmVlZGJhY2s6YlswXS5k
YXRhLnN1Ym1pdGZlZWRiYWNrLG9wdGlvbnNfY291bnQ6YlswXS5kYXRhLm9wdGlv
bnNfY291bnR9O1JpZ2h0Tm93LkFqYXgubWFrZVJlcXVlc3QoIi9jaS9hamF4UmVx
dWVzdC9zdWJtaXRBbnN3ZXJGZWVkYmFjayIsZCx7ZGF0YTp7ZXZlbnROYW1lOiJl
dnRfYW5zd2VyRmVlZGJhY2tTdWJtaXRSZXNwb25zZSIsZGF0YTpifX0pfQpmdW5j
dGlvbiBjYShkLGIpe2Q9e2FfaWQ6YlswXS5kYXRhLmFfaWQscmF0ZTpiWzBdLmRh
dGEucmF0ZSx0aHJlc2hvbGQ6YlswXS5kYXRhLmRpYWxvZ190aHJlc2hvbGQsb3B0
aW9uc19jb3VudDpiWzBdLmRhdGEub3B0aW9uc19jb3VudH07UmlnaHROb3cuQWph
eC5tYWtlUmVxdWVzdCgiL2NpL2FqYXhSZXF1ZXN0L3N1Ym1pdEFuc3dlclJhdGlu
ZyIsZCl9ZnVuY3Rpb24gZGEoZCxiKXt0aGlzLmZpcmUoImV2dF9rZXl3b3JkQ2hh
bmdlZFJlc3BvbnNlIixiWzBdKX1mdW5jdGlvbiBlYShkLGIpe2I9YlswXTtkPXto
bV90eXBlOmIuZGF0YS5obV90eXBlLGxpbmtpbmdfb246Yi5kYXRhLmxpbmtpbmdQ
cm9kdWN0fTtSaWdodE5vdy5BamF4Lm1ha2VSZXF1ZXN0KCIvY2kvYWpheFJlcXVl
c3RNaW4vZ2V0QWNjZXNzaWJsZVRyZWVWaWV3IixkLHtzdWNjZXNzSGFuZGxlcjpm
YSxzY29wZTp0aGlzLGRhdGE6Yn0pfWZ1bmN0aW9uIGZhKGQpe2lmKGQuYXJndW1l
bnQhPW51bGwpe3ZhciBiPWQuYXJndW1lbnQ7CmlmKGQucmVzcG9uc2VUZXh0IT09
dW5kZWZpbmVkKWlmKGQ9UmlnaHROb3cuSlNPTi5wYXJzZShkLnJlc3BvbnNlVGV4
dCkpe2IuZGF0YS5hY2Nlc3NpYmxlTGlua3M9ZDt0aGlzLmZpcmUoImV2dF9hY2Nl
c3NpYmxlVHJlZVZpZXdHZXRSZXNwb25zZSIsYil9ZWxzZSBSaWdodE5vdy5VSS5E
aWFsb2cubWVzc2FnZURpYWxvZyhSaWdodE5vdy5JbnRlcmZhY2UuZ2V0TWVzc2Fn
ZSgiRVJST1JfUkVRVUVTVF9BQ1RJT05fQ09NUExFVEVEX01TRyIpLHtpY29uOiJX
QVJOIn0pfX1mdW5jdGlvbiBnYShkLGIpe2I9YlswXTtpZihiLmRhdGEubGlua19t
YXAmJnUhPT1udWxsKXU9Yi5kYXRhLmxpbmtfbWFwO2lmKGIuZGF0YS5saW5raW5n
X29uKXtpZihiLmRhdGEuZGF0YV90eXBlLmluZGV4T2YoImNhdCIpPi0xJiZ1JiZ1
W2IuZGF0YS52YWx1ZV0pe2Q9UmlnaHROb3cuTGFuZy5jbG9uZU9iamVjdChiKTtk
LmRhdGEucmVzZXR8fGQuZGF0YS5sZXZlbCsrO2QuZGF0YS5oaWVyX2RhdGE9dVtk
LmRhdGEudmFsdWVdOwp0aGlzLmZpcmUoImV2dF9tZW51RmlsdGVyR2V0UmVzcG9u
c2UiLGQpO3JldHVybn19ZWxzZXtpZihiLmRhdGEubGV2ZWw+NSlyZXR1cm47aWYo
Yi5kYXRhLnZhbHVlPDEpe2IuZGF0YS5sZXZlbD0xO2IuZGF0YS5oaWVyX2RhdGE9
W107dGhpcy5maXJlKCJldnRfbWVudUZpbHRlckdldFJlc3BvbnNlIixiKTtyZXR1
cm59aWYoYi5kYXRhLmNhY2hlW2IuZGF0YS52YWx1ZV0pe2Q9bmV3IHRoaXMuRXZl
bnRPYmplY3Q7ZC5kYXRhPXtoaWVyX2RhdGE6Yi5kYXRhLmNhY2hlW2IuZGF0YS52
YWx1ZV0sbGV2ZWw6Yi5kYXRhLmxldmVsKzF9O3RoaXMuZmlyZSgiZXZ0X21lbnVG
aWx0ZXJHZXRSZXNwb25zZSIsZCk7cmV0dXJufX1pZihiLmRhdGEubGV2ZWwhPT02
KXtkPXtmaWx0ZXI6Yi5kYXRhLmRhdGFfdHlwZSxsdmw6Yi5kYXRhLmxldmVsKzEs
aWQ6Yi5kYXRhLnZhbHVlLGxpbmtpbmc6Yi5kYXRhLmxpbmtpbmdfb259O1JpZ2h0
Tm93LkFqYXgubWFrZVJlcXVlc3QoIi9jaS9hamF4UmVxdWVzdE1pbi9nZXRIaWVy
VmFsdWVzIiwKZCx7c3VjY2Vzc0hhbmRsZXI6aGEsc2NvcGU6dGhpcyxkYXRhOmJ9
KX19ZnVuY3Rpb24gaGEoZCl7aWYoZC5hcmd1bWVudCE9bnVsbCl7dmFyIGI9ZC5h
cmd1bWVudDtpZihkLnJlc3BvbnNlVGV4dCE9PXVuZGVmaW5lZClpZihkPVJpZ2h0
Tm93LkpTT04ucGFyc2UoZC5yZXNwb25zZVRleHQpKXtiLmRhdGEuY2FjaGVbYi5k
YXRhLnZhbHVlXT1kWzBdO2IuZGF0YS5oaWVyX2RhdGE9ZFswXTtiLmRhdGEubGV2
ZWwrPTE7dGhpcy5maXJlKCJldnRfbWVudUZpbHRlckdldFJlc3BvbnNlIixiKTtp
ZihiLmRhdGEubGlua2luZ19vbiYmYi5kYXRhLmRhdGFfdHlwZS5pbmRleE9mKCJw
cm9kIik+LTEpe3U9ZC5saW5rX21hcDtkPW5ldyB0aGlzLkV2ZW50T2JqZWN0O2Qu
ZGF0YT17bGV2ZWw6MSxoaWVyX2RhdGE6dVswXSxkYXRhX3R5cGU6Yi5kYXRhLmRh
dGFfdHlwZS5yZXBsYWNlKCJwcm9kdWN0cyIsImNhdGVnb3JpZXMiKSxyZXNldF9s
aW5rZWRfY2F0ZWdvcnk6dHJ1ZX07ZC5maWx0ZXJzLnJlcG9ydF9pZD0KYi5maWx0
ZXJzLnJlcG9ydF9pZDt0aGlzLmZpcmUoImV2dF9tZW51RmlsdGVyR2V0UmVzcG9u
c2UiLGQpO2lmKGIuZGF0YS52YWx1ZT09PS0xKXU9bnVsbH19ZWxzZSBSaWdodE5v
dy5VSS5EaWFsb2cubWVzc2FnZURpYWxvZyhSaWdodE5vdy5JbnRlcmZhY2UuZ2V0
TWVzc2FnZSgiRVJST1JfUkVRVUVTVF9BQ1RJT05fQ09NUExFVEVEX01TRyIpLHtp
Y29uOiJXQVJOIn0pfX1mdW5jdGlvbiBpYShkLGIpe2Q9YlswXS5kYXRhLmhpZXJT
ZXREYXRhO2Zvcih2YXIgaT1kWzFdLmlkLG09MjttPGQubGVuZ3RoOysrbSlpZihk
W21dLmlkPjApaSs9IiwiK2RbbV0uaWQ7Yj17Y2hhaW46aSxmaWx0ZXJfdHlwZTpi
WzBdLmRhdGEuZGF0YV90eXBlfTt0aGlzLmZpcmUoImV2dF9tZW51RmlsdGVyU2V0
dGluZ1Jlc3BvbnNlIik7UmlnaHROb3cuQWpheC5tYWtlUmVxdWVzdCgiL2NpL2Fq
YXhSZXF1ZXN0L3Byb2RjYXRBZGROb3RpZmljYXRpb24iLGIse2RhdGE6e2V2ZW50
TmFtZToiZXZ0X21lbnVGaWx0ZXJTZWxlY3RSZXNwb25zZSJ9fSl9CmZ1bmN0aW9u
IGphKGQsYil7ZD17ZmlsdGVyX3R5cGU6YlswXS5kYXRhLmZpbHRlcl90eXBlLGNo
YWluOmJbMF0uZGF0YS5jaGFpbn07aWYoYlswXS5kYXRhLmNfaWQpZC5jaWQ9Ylsw
XS5kYXRhLmNfaWQ7UmlnaHROb3cuQWpheC5tYWtlUmVxdWVzdCgiL2NpL2FqYXhS
ZXF1ZXN0L3Byb2RjYXRBZGROb3RpZmljYXRpb24iLGQse2RhdGE6e2V2ZW50TmFt
ZToiZXZ0X3Byb2RDYXRBZGRSZXNwb25zZSJ9fSl9ZnVuY3Rpb24ga2EoZCxiKXti
PWJbMF07ZD17ZmlsdGVyX3R5cGU6Yi5kYXRhLmZpbHRlcl90eXBlLGNoYWluOmIu
ZGF0YS5jaGFpbix0aW1lc3RhbXA6Yi5kYXRhLnRpbWV9O2lmKGIuZGF0YS5jX2lk
KWQuY2lkPWIuZGF0YS5jX2lkO1JpZ2h0Tm93LkFqYXgubWFrZVJlcXVlc3QoIi9j
aS9hamF4UmVxdWVzdC9wcm9kY2F0RGVsZXRlTm90aWZpY2F0aW9uIixkLHtkYXRh
OntldmVudE5hbWU6ImV2dF9wcm9kQ2F0RGVsZXRlUmVzcG9uc2UifX0pfWZ1bmN0
aW9uIGxhKGQsYil7ZD0Ke2ZpbHRlcl90eXBlOmJbMF0uZGF0YS5maWx0ZXJfdHlw
ZSxjaGFpbjpiWzBdLmRhdGEuY2hhaW4sdGltZXN0YW1wOmJbMF0uZGF0YS50aW1l
fTtpZihiWzBdLmRhdGEuY19pZClkLmNpZD1iWzBdLmRhdGEuY19pZDtSaWdodE5v
dy5BamF4Lm1ha2VSZXF1ZXN0KCIvY2kvYWpheFJlcXVlc3QvcHJvZGNhdFJlbmV3
Tm90aWZpY2F0aW9uIixkLHtkYXRhOntldmVudE5hbWU6ImV2dF9wcm9kQ2F0UmVu
ZXdSZXNwb25zZSJ9fSl9ZnVuY3Rpb24gbWEoZCxiKXtiPWJbMF07ZD13aW5kb3cu
bG9jYXRpb24ucGF0aG5hbWUudG9TdHJpbmcoKTtkPWQuc3BsaXQoIi9hcHAiKTt2
YXIgaT0iL2FwcCIrKGQubGVuZ3RoPjE/ZFsxXToiIiksbT1iLmZpbHRlcnMucmVw
b3J0UGFnZT9iLmZpbHRlcnMucmVwb3J0UGFnZToiIjt5IT1udWxsJiZ5Kys7aWYo
bT09IiJ8fG09PT0ie2N1cnJlbnRfcGFnZX0ifHxpLnN1YnN0cmluZygwLG0ubGVu
Z3RoKT09bSl7a1tiLmZpbHRlcnMucmVwb3J0X2lkXXx8KGtbYi5maWx0ZXJzLnJl
cG9ydF9pZF09CntmaWx0ZXJzOnt9LGZvcm1hdDp7fX0pO2tbYi5maWx0ZXJzLnJl
cG9ydF9pZF0uZmlsdGVycy5wYWdlPTE7a1tiLmZpbHRlcnMucmVwb3J0X2lkXS5m
aWx0ZXJzLnNlYXJjaD0xO3AuYWN0aW9uPUk7cT1iLmZpbHRlcnMucmVwb3J0X2lk
O3RoaXMuZmlyZSgiZXZ0X3NlYXJjaEluUHJvZ3Jlc3NSZXF1ZXN0IixiKX1lbHNl
e3AudGFyZ2V0PWIuZmlsdGVycy50YXJnZXQ/Yi5maWx0ZXJzLnRhcmdldDoiX3Nl
bGYiO3AuYWN0aW9uPUo7aWYoZFswXS5zbGljZSgtMSk9PSIvIilkWzBdPWRbMF0u
c2xpY2UoMCwtMSk7cC51cmw9ZFswXSttO2lmKGtbYi5maWx0ZXJzLnJlcG9ydF9p
ZF0mJmtbYi5maWx0ZXJzLnJlcG9ydF9pZF0uZmlsdGVycylrW2IuZmlsdGVycy5y
ZXBvcnRfaWRdLmZpbHRlcnMucGFnZT0xfXAuc3Vic2NyaWJlZD10aGlzLmdldFN1
YnNjcmliZXJMZW5ndGgoImV2dF9nZXRGaWx0ZXJzUmVxdWVzdCIpO3AuYWN0dWFs
PTA7cC5yZXBvcnRfaWQ9Yi5maWx0ZXJzLnJlcG9ydF9pZDsKbmEoYi5maWx0ZXJz
LnJlcG9ydF9pZCl9ZnVuY3Rpb24gbmEoZCl7dmFyIGI9bmV3IFJpZ2h0Tm93LkV2
ZW50LkV2ZW50T2JqZWN0O2IuZmlsdGVycy5yZXBvcnRfaWQ9ZDtSaWdodE5vdy5F
dmVudC5maXJlKCJldnRfZ2V0RmlsdGVyc1JlcXVlc3QiLGIpfWZ1bmN0aW9uIG9h
KGQsYil7QihiWzBdKTtwLmFjdHVhbCsrO2lmKHAuc3Vic2NyaWJlZD09PXAuYWN0
dWFsKXt0aGlzLmZpcmUoImV2dF9iZWZvcmVTZWFyY2hSZXF1ZXN0IixrW3AucmVw
b3J0X2lkXSk7aWYocC5hY3Rpb249PUkpRCgpO2Vsc2UgcC5hY3Rpb249PUomJnBh
KHAudGFyZ2V0KX19ZnVuY3Rpb24gQihkKXtpZihkIT1udWxsKXtrW2QuZmlsdGVy
cy5yZXBvcnRfaWRdfHwoa1tkLmZpbHRlcnMucmVwb3J0X2lkXT17ZmlsdGVyczp7
fSxmb3JtYXQ6e319KTtpZihkLmZpbHRlcnMuc2VhcmNoTmFtZSlrW2QuZmlsdGVy
cy5yZXBvcnRfaWRdLmZpbHRlcnNbZC5maWx0ZXJzLnNlYXJjaE5hbWVdPWR9fWZ1
bmN0aW9uIHBhKGQpe3ZhciBiPQpwLnVybDtiPVJpZ2h0Tm93LlVybC5jb252ZXJ0
U2VhcmNoRmlsdGVyc1RvUGFybXMoYixrW3AucmVwb3J0X2lkXS5maWx0ZXJzLHkp
O2I9UmlnaHROb3cuVXJsLmFkZFBhcmFtZXRlcihiLCJzZWFyY2giLCIxIik7Yj1S
aWdodE5vdy5VcmwuYWRkUGFyYW1ldGVyKGIsInNlc3Npb24iLFJpZ2h0Tm93LlVy
bC5nZXRTZXNzaW9uKCkpO3dpbmRvdy5vcGVuKGIsZCl9ZnVuY3Rpb24gcWEoZCxi
KXtiPWJbMF07QihiKTtrW2IuZmlsdGVycy5yZXBvcnRfaWRdLnRva2VuPWIuZmls
dGVycy50b2tlbjtrW2IuZmlsdGVycy5yZXBvcnRfaWRdLmZpbHRlcnMubm9fdHJ1
bmNhdGU9MDtrW2IuZmlsdGVycy5yZXBvcnRfaWRdLmZpbHRlcnMucGFnZT0xO2Zv
cih2YXIgaSBpbiBiLmZpbHRlcnMuZm9ybWF0KWlmKGkhPXVuZGVmaW5lZCYmdHlw
ZW9mIGIuZmlsdGVycy5mb3JtYXRbaV0hPT0iZnVuY3Rpb24iKWtbYi5maWx0ZXJz
LnJlcG9ydF9pZF0uZm9ybWF0W2ldPWIuZmlsdGVycy5mb3JtYXRbaV07CmZvcihp
IGluIGIuZmlsdGVycy5hbGxGaWx0ZXJzKWlmKGkhPXVuZGVmaW5lZCYmdHlwZW9m
IGIuZmlsdGVycy5hbGxGaWx0ZXJzW2ldIT09ImZ1bmN0aW9uIilrW2IuZmlsdGVy
cy5yZXBvcnRfaWRdLmZpbHRlcnNbaV09Yi5maWx0ZXJzLmFsbEZpbHRlcnNbaV07
aWYoIUspaWYodG9wPT09c2VsZil7Sz10cnVlO2Q9KGQ9WUFIT08udXRpbC5IaXN0
b3J5LmdldEJvb2ttYXJrZWRTdGF0ZShSaWdodE5vdy5FdmVudC5icm93c2VySGlz
dG9yeU1hbmFnZW1lbnRLZXkpKXx8IiI7RXx8KEU9cmEoTCgpKSk7WUFIT08udXRp
bC5IaXN0b3J5LnJlZ2lzdGVyKFJpZ2h0Tm93LkV2ZW50LmJyb3dzZXJIaXN0b3J5
TWFuYWdlbWVudEtleSxkLE0pO3RyeXtZQUhPTy51dGlsLkhpc3Rvcnkub25SZWFk
eShmdW5jdGlvbigpe3ZhciBvPVlBSE9PLnV0aWwuSGlzdG9yeS5nZXRDdXJyZW50
U3RhdGUoUmlnaHROb3cuRXZlbnQuYnJvd3Nlckhpc3RvcnlNYW5hZ2VtZW50S2V5
KTtvIT09IiImJk0obyl9KTsKWUFIT08udXRpbC5IaXN0b3J5LmluaXRpYWxpemUo
InJuX0hpc3RvcnlfRmllbGQiLCJybl9IaXN0b3J5X0lmcmFtZSIpO3o9dHJ1ZX1j
YXRjaChtKXt6PWZhbHNlfX19ZnVuY3Rpb24gc2EoZCxiKXtiPWJbMF07QihiKTtr
W2IuZmlsdGVycy5yZXBvcnRfaWRdLmZpbHRlcnMubm9fdHJ1bmNhdGU9MTtrW2Iu
ZmlsdGVycy5yZXBvcnRfaWRdLmZpbHRlcnMuc2VhcmNoPTA7cT1iLmZpbHRlcnMu
cmVwb3J0X2lkO0QoKX1mdW5jdGlvbiB0YShkLGIpe3RoaXMuZmlyZSgiZXZ0X3Nl
YXJjaEluUHJvZ3Jlc3NSZXNwb25zZSIsYlswXSl9ZnVuY3Rpb24gdWEoZCxiKXti
PWJbMF07dGhpcy5maXJlKCJldnRfc2VhcmNoSW5Qcm9ncmVzc1JlcXVlc3QiLGIp
O0IoYik7a1tiLmZpbHRlcnMucmVwb3J0X2lkXS5maWx0ZXJzLnBhZ2U9Yi5kYXRh
LnBhZ2U7ZGVsZXRlIGtbYi5maWx0ZXJzLnJlcG9ydF9pZF0uZmlsdGVycy5zZWFy
Y2g7aWYoYiYmYi5maWx0ZXJzKXtxPWIuZmlsdGVycy5yZXBvcnRfaWQ7CkQoKX19
ZnVuY3Rpb24gRCgpe3ZhciBkPUYocSk7aWYoeil0cnl7TCgpO2lmKFlBSE9PLmVu
di51YS5pZT4wKXt2YXIgYj13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIj
Iik+LTE/d2luZG93LmxvY2F0aW9uLmhyZWYuc3Vic3RyKDAsd2luZG93LmxvY2F0
aW9uLmhyZWYuaW5kZXhPZigiIyIpKS5sZW5ndGgrci5sZW5ndGg6d2luZG93Lmxv
Y2F0aW9uLmhyZWYubGVuZ3RoK3IubGVuZ3RoO2lmKGI+MjA4MCl7RyhkKTtyZXR1
cm59fVlBSE9PLnV0aWwuSGlzdG9yeS5uYXZpZ2F0ZShSaWdodE5vdy5FdmVudC5i
cm93c2VySGlzdG9yeU1hbmFnZW1lbnRLZXkscil9Y2F0Y2goaSl7YWxlcnQoImVy
cm9yOiAiK2kubWVzc2FnZSl9ZWxzZSBHKGQpfWZ1bmN0aW9uIE4oZCl7aWYoZD09
PSIiKXtxPTA7cmV0dXJuIE4oRSl9cmV0dXJuIFJpZ2h0Tm93LkpTT04ucGFyc2Uo
UmlnaHROb3cuVGV4dC5FbmNvZGluZy5iYXNlNjREZWNvZGUoZCkpfWZ1bmN0aW9u
IHJhKGQpe3JldHVybiBSaWdodE5vdy5UZXh0LkVuY29kaW5nLmJhc2U2NEVuY29k
ZShSaWdodE5vdy5KU09OLnN0cmluZ2lmeShkKSl9CmZ1bmN0aW9uIE0oZCl7ZD1O
KGQpLnNmO3I9UmlnaHROb3cuVGV4dC5FbmNvZGluZy5iYXNlNjRFbmNvZGUoUmln
aHROb3cuSlNPTi5zdHJpbmdpZnkoZCkpO3ZhKCk7Zm9yKHZhciBiIGluIGQpaWYo
dHlwZW9mIGRbYl0hPT0iZnVuY3Rpb24iKXtxPXE/cTpiO2Zvcih2YXIgaSBpbiBk
W2JdLmZpbHRlcnMpaWYoaT09PSJub190cnVuY2F0ZSJ8fGk9PT0icGFnZSJ8fGk9
PSJwYXJtTGlzdCIpa1tiXS5maWx0ZXJzW2ldPWRbYl0uZmlsdGVyc1tpXTtlbHNl
IGlmKGRbYl0uZmlsdGVyc1tpXSYmZFtiXS5maWx0ZXJzW2ldLmZpbHRlcnMpe2tb
Yl0uZmlsdGVyc1tpXXx8KGtbYl0uZmlsdGVyc1tpXT17ZmlsdGVyczp7ZGF0YTp7
fX19KTt2YXIgbT1kW2JdLmZpbHRlcnNbaV0uZmlsdGVycy5kYXRhO2lmKHR5cGVv
ZiBtPT09Im9iamVjdCImJnR5cGVvZiBtIT09ImZ1bmN0aW9uIil7a1tiXS5maWx0
ZXJzW2ldLmZpbHRlcnMuZGF0YT17fTtmb3IodmFyIG8gaW4gZFtiXS5maWx0ZXJz
W2ldLmZpbHRlcnMuZGF0YSlpZih0eXBlb2YgbyE9PQoiZnVuY3Rpb24iJiZvIT09
InVuZGVmaW5lZCImJmtbYl0uZmlsdGVyc1tpXS5maWx0ZXJzLmRhdGEpa1tiXS5m
aWx0ZXJzW2ldLmZpbHRlcnMuZGF0YVtvXT1kW2JdLmZpbHRlcnNbaV0uZmlsdGVy
cy5kYXRhW29dfWVsc2Uga1tiXS5maWx0ZXJzW2ldLmZpbHRlcnMuZGF0YT1kW2Jd
LmZpbHRlcnNbaV0uZmlsdGVycy5kYXRhfWVsc2UgaWYoa1tiXS5maWx0ZXJzW2ld
JiZrW2JdLmZpbHRlcnNbaV0uZmlsdGVycylrW2JdLmZpbHRlcnNbaV0uZmlsdGVy
cy5kYXRhPW51bGx9Yj1uZXcgUmlnaHROb3cuRXZlbnQuRXZlbnRPYmplY3Q7Yi5k
YXRhPWs7UmlnaHROb3cuRXZlbnQuZmlyZSgiZXZ0X3NlYXJjaEZpbHRlckNoYW5n
ZVJlc3BvbnNlIixiKTtpZihuW3JdKXE9bltyXS5yZXBvcnRJRDtpZihxPT0wKXE9
dDtHKEYocSkpfWZ1bmN0aW9uIHZhKCl7Zm9yKHZhciBkIGluIGspaWYodHlwZW9m
IGtbZF0hPT0iZnVuY3Rpb24iKWlmKGtbZF0uZmlsdGVycylmb3IodmFyIGIgaW4g
a1tkXS5maWx0ZXJzKWlmKHR5cGVvZiBrW2RdIT09CiJmdW5jdGlvbiIpaWYoa1tk
XS5maWx0ZXJzW2JdJiZrW2RdLmZpbHRlcnNbYl0uZmlsdGVycyYma1tkXS5maWx0
ZXJzW2JdLmZpbHRlcnMuZGF0YSlrW2RdLmZpbHRlcnNbYl0uZmlsdGVycy5kYXRh
PW51bGx9ZnVuY3Rpb24gRihkKXtmb3IodmFyIGIgaW4gaylpZihrW2JdLmZvcm1h
dClrW2JdLmZvcm1hdC51cmxQYXJtcz1SaWdodE5vdy5VcmwuYnVpbGRVcmxMaW5r
U3RyaW5nKGtbYl0pO2I9a1tkXS5maWx0ZXJzO3ZhciBpPWtbZF0uZm9ybWF0LG09
a1tkXS50b2tlbjtyZXR1cm57c2Y6YixyZXBvcnRfaWQ6ZCx0b2tlbjptLGZtdDpp
LGM6TysrfX1mdW5jdGlvbiBMKCl7dmFyIGQ9e307Zm9yKHZhciBiIGluIGspaWYo
dHlwZW9mIGRbYl0hPT0iZnVuY3Rpb24iKXtkW2JdPXtmaWx0ZXJzOnt9fTtmb3Io
dmFyIGkgaW4ga1tiXS5maWx0ZXJzKWlmKGkhPT0iZnVuY3Rpb24iKWlmKGk9PT0i
bm9fdHJ1bmNhdGUifHxpPT09InBhZ2UifHxpPT0icGFybUxpc3QiKWRbYl0uZmls
dGVyc1tpXT0Ka1tiXS5maWx0ZXJzW2ldO2Vsc2UgaWYoa1tiXS5maWx0ZXJzW2ld
JiZrW2JdLmZpbHRlcnNbaV0uZmlsdGVycyl7ZFtiXS5maWx0ZXJzW2ldPXtmaWx0
ZXJzOntkYXRhOnt9fX07aWYodHlwZW9mIGtbYl0uZmlsdGVyc1tpXS5maWx0ZXJz
LmRhdGE9PT0ib2JqZWN0Iilmb3IodmFyIG0gaW4ga1tiXS5maWx0ZXJzW2ldLmZp
bHRlcnMuZGF0YSlkW2JdLmZpbHRlcnNbaV0uZmlsdGVycy5kYXRhW21dPWtbYl0u
ZmlsdGVyc1tpXS5maWx0ZXJzLmRhdGFbbV07ZWxzZSBkW2JdLmZpbHRlcnNbaV0u
ZmlsdGVycy5kYXRhPWtbYl0uZmlsdGVyc1tpXS5maWx0ZXJzLmRhdGF9fWQ9e3Nm
OmQsYzpPKyt9O3I9UmlnaHROb3cuVGV4dC5FbmNvZGluZy5iYXNlNjRFbmNvZGUo
UmlnaHROb3cuSlNPTi5zdHJpbmdpZnkoZCkpO3JldHVybiBkfWZ1bmN0aW9uIEco
ZCl7eiYmbltyXT93YSgpOlAoZCx4YSk7dD1xfWZ1bmN0aW9uIFAoZCxiKXtkPXtm
aWx0ZXJzOlJpZ2h0Tm93LkpTT04uc3RyaW5naWZ5KGQuc2YpLApyZXBvcnRfaWQ6
ZC5yZXBvcnRfaWQscl90b2s6ZC50b2tlbixmb3JtYXQ6UmlnaHROb3cuSlNPTi5z
dHJpbmdpZnkoZC5mbXQpfTtSaWdodE5vdy5BamF4Lm1ha2VSZXF1ZXN0KCIvY2kv
YWpheFJlcXVlc3QvZ2V0UmVwb3J0RGF0YSIsZCx7c3VjY2Vzc0hhbmRsZXI6Yixz
Y29wZTp0aGlzfSl9ZnVuY3Rpb24geGEoZCl7aWYoZC5yZXNwb25zZVRleHQhPT11
bmRlZmluZWQpaWYoZD1SaWdodE5vdy5KU09OLnBhcnNlKGQucmVzcG9uc2VUZXh0
KSl7aWYoeil7bltyXT17ZmlsdGVyczprLGRhdGE6ZCxyZXBvcnRJRDpkLnJlcG9y
dF9pZCxzdGF0ZTorK3Z9O0Nbdl09cn12YXIgYj1SaWdodE5vdy5MYW5nLmNsb25l
T2JqZWN0KGtbZC5yZXBvcnRfaWRdKTt4KGQsZC5yZXBvcnRfaWQsa1tkLnJlcG9y
dF9pZF0pO2tbZC5yZXBvcnRfaWRdPWI7a1tkLnJlcG9ydF9pZF0uZmlsdGVycy5u
b190cnVuY2F0ZT0wfX1mdW5jdGlvbiB5YShkKXtpZihkLnJlc3BvbnNlVGV4dCE9
PXVuZGVmaW5lZClpZihkPQpSaWdodE5vdy5KU09OLnBhcnNlKGQucmVzcG9uc2VU
ZXh0KSl7bi5kZWZhdWx0RGF0YXx8KG4uZGVmYXVsdERhdGE9W10pO24uZGVmYXVs
dERhdGFbZC5yZXBvcnRfaWRdPWQ7eChkLGQucmVwb3J0X2lkLGtbZC5yZXBvcnRf
aWRdKX19ZnVuY3Rpb24gd2EoKXt2YXIgZD12O3Y9bltyXS5zdGF0ZTtpZihxPT10
KXgobltyXS5kYXRhLHEsbltyXS5maWx0ZXJzW3FdKTtlbHNle2lmKGQ8PXYpe2Zv
cihkPXY7ZD49MDtkLS0pe3ZhciBiPUNbZF07aWYoYiYmbltiXSYmdD09bltiXS5y
ZXBvcnRJRCl7eChuW2JdLmRhdGEsbltiXS5yZXBvcnRJRCxuW2JdLmZpbHRlcnNb
bltiXS5yZXBvcnRJRF0pO3JldHVybn19bi5kZWZhdWx0RGF0YSYmbi5kZWZhdWx0
RGF0YVt0XSYmeChuLmRlZmF1bHREYXRhW3RdLmRhdGEsdCxudWxsKX1lbHNlIGZv
cihkPXY7ZDw9Qy5sZW5ndGg7ZCsrKWlmKChiPUNbZF0pJiZuW2JdJiZ0PT1uW2Jd
LnJlcG9ydElEJiZ2Pm5bYl0uc3RhdGUpe3gobltiXS5kYXRhLG5bYl0ucmVwb3J0
SUQsCm5bYl0uZmlsdGVyc1tuW2JdLnJlcG9ydElEXSk7cmV0dXJufVAoRih0KSx5
YSl9fWZ1bmN0aW9uIHgoZCxiLGkpe3ZhciBtPW5ldyBSaWdodE5vdy5FdmVudC5F
dmVudE9iamVjdDttLmRhdGE9ZDttLmZpbHRlcnMucmVwb3J0X2lkPWI7bS5maWx0
ZXJzLmFsbEZpbHRlcnM9aTtSaWdodE5vdy5FdmVudC5maXJlKCJldnRfcmVwb3J0
UmVzcG9uc2UiLG0pfWZ1bmN0aW9uIEgoKXt2YXIgZD1SaWdodE5vdy5KU09OLnN0
cmluZ2lmeShSaWdodE5vdy5VSS5Gb3JtLmZvcm1GaWVsZHMpO2Q9e2lfaWQ6USxm
X3RvazpSaWdodE5vdy5VSS5Gb3JtLmZvcm1Ub2tlbixmb3JtOmR9O2lmKFJpZ2h0
Tm93LlVJLkZvcm0uc21hcnRBc3Npc3RhbnQhPW51bGwpZC5zbXJ0X2Fzc3Q9Umln
aHROb3cuVUkuRm9ybS5zbWFydEFzc2lzdGFudDtSaWdodE5vdy5BamF4Lm1ha2VS
ZXF1ZXN0KCIvY2kvYWpheFJlcXVlc3Qvc2VuZEZvcm0iLGQse2RhdGE6e2V2ZW50
TmFtZToiZXZ0X2Zvcm1CdXR0b25TdWJtaXRSZXNwb25zZSJ9LApmYWlsdXJlSGFu
ZGxlcjpmdW5jdGlvbihiKXtiLnN0YXR1cz09PTQxOCYmYi5hcmd1bWVudCYmYi5h
cmd1bWVudC5ldmVudE5hbWUmJlJpZ2h0Tm93LkV2ZW50LmZpcmUoYi5hcmd1bWVu
dC5ldmVudE5hbWUse21lc3NhZ2U6UmlnaHROb3cuSW50ZXJmYWNlLmdldE1lc3Nh
Z2UoIkVSUl9TVUJNSVRUSU5HX0ZPUk1fRFVFX0lOVl9JTlBVVF9MQkwiKX0pfX0p
fWZ1bmN0aW9uIHphKGQsYil7Yj1iWzBdO2Q9e3B3X3Jlc2V0OmIuZGF0YS5yZXNl
dFN0cmluZ307dHJ5e3ZhciBpPVJpZ2h0Tm93LkpTT04uc3RyaW5naWZ5KFJpZ2h0
Tm93LlVJLkZvcm0uZm9ybUZpZWxkcyk7ZC5mX3Rvaz1SaWdodE5vdy5VSS5Gb3Jt
LmZvcm1Ub2tlbjtkLmZvcm09aX1jYXRjaChtKXt9UmlnaHROb3cuQWpheC5tYWtl
UmVxdWVzdCgiL2NpL2FqYXhSZXF1ZXN0L3Jlc2V0UGFzc3dvcmQiLGQse2RhdGE6
e2V2ZW50TmFtZToiZXZ0X2Zvcm1CdXR0b25TdWJtaXRSZXNwb25zZSJ9fSl9ZnVu
Y3Rpb24gQWEoZCwKYil7Yj1iWzBdO2Q9e2ludGVyZmFjZV9pZDpiLmRhdGEuaW50
ZXJmYWNlX2lkfTtpZihiLmRhdGEucWlkKWQucWlkPWIuZGF0YS5xaWQ7aWYoYi5k
YXRhLmNfaWQpZC5jX2lkPWIuZGF0YS5jX2lkO2lmKGIuZGF0YS5vcmdfaWQpZC5v
cmdfaWQ9Yi5kYXRhLm9yZ19pZDtpZihiLmRhdGEuY29udGFjdF9lbWFpbClkLmNv
bnRhY3RfZW1haWw9Yi5kYXRhLmNvbnRhY3RfZW1haWw7aWYoYi5kYXRhLmNvbnRh
Y3RfZm5hbWUpZC5jb250YWN0X2ZuYW1lPWIuZGF0YS5jb250YWN0X2ZuYW1lO2lm
KGIuZGF0YS5jb250YWN0X2xuYW1lKWQuY29udGFjdF9sbmFtZT1iLmRhdGEuY29u
dGFjdF9sbmFtZTtpZihiLmRhdGEucHJvZClkLnByb2Q9Yi5kYXRhLnByb2Q7aWYo
Yi5kYXRhLmNhdClkLmNhdD1iLmRhdGEuY2F0O1JpZ2h0Tm93LkFqYXgubWFrZVJl
cXVlc3QoIi9jaS9hamF4UmVxdWVzdE9wdGlvbmFsL2NoZWNrQ2hhdFF1ZXVlIixk
LHtkYXRhOntldmVudE5hbWU6ImV2dF9jaGF0UXVldWVSZXNwb25zZSJ9fSl9CmZ1
bmN0aW9uIEJhKGQsYil7ZD17ZW5nYWdlbWVudElkOmJbMF0uZGF0YS5lbmdhZ2Vt
ZW50X2lkLGNoYXRTSWQ6YlswXS5kYXRhLmNoYXRfc2lkfTtSaWdodE5vdy5BamF4
Lm1ha2VSZXF1ZXN0KCIvY2kvYWpheFJlcXVlc3Qvbm90aWZ5Q2hhdFNlcnZpY2VG
QXR0YWNoIixkLHtkYXRhOntldmVudE5hbWU6ImV2dF9jaGF0Tm90aWZ5RmF0dGFj
aFJlc3BvbnNlIn19KX1mdW5jdGlvbiBDYShkLGIpe2I9YlswXTtkPVtdO3ZhciBp
PWIuZGF0YS5jaGF0TGFuZGluZ1VybCxtPVJpZ2h0Tm93LlVJLkZvcm0sbz1SaWdo
dE5vdy5Vcmw7Zm9yKHZhciBzIGluIG0uZm9ybUZpZWxkcyl7c3dpdGNoKG0uZm9y
bUZpZWxkc1tzXS5uYW1lKXtjYXNlICJwcm9kIjpjYXNlICJjYXQiOnZhciBBPSIi
O0E9bS5mb3JtRmllbGRzW3NdLnZhbHVlLmxlbmd0aC0xO2lmKEE+PTApe0E9bS5m
b3JtRmllbGRzW3NdLnZhbHVlW0FdO2k9by5hZGRQYXJhbWV0ZXIoaSxtLmZvcm1G
aWVsZHNbc10ubmFtZSxBKX1icmVhazsKY2FzZSAiZmlyc3RfbmFtZSI6Y2FzZSAi
bGFzdF9uYW1lIjpjYXNlICJlbWFpbCI6Y2FzZSAic3ViamVjdCI6aT1vLmFkZFBh
cmFtZXRlcihpLG0uZm9ybUZpZWxkc1tzXS5uYW1lLG0uZm9ybUZpZWxkc1tzXS52
YWx1ZSk7YnJlYWt9aWYobS5mb3JtRmllbGRzW3NdLmN1c3RvbSlpZihiLmRhdGEu
cmV0dXJuQ3VzdG9tRmllbGRzSW5BcnJheSYmbS5mb3JtRmllbGRzW3NdLnZhbHVl
KWRbIl9pY2ZfIittLmZvcm1GaWVsZHNbc10uY3VzdG9tSURdPW0uZm9ybUZpZWxk
c1tzXS52YWx1ZTtlbHNlIGk9by5hZGRQYXJhbWV0ZXIoaSwiX2ljZl8iK20uZm9y
bUZpZWxkc1tzXS5jdXN0b21JRCxtLmZvcm1GaWVsZHNbc10udmFsdWUpfWk9by5h
ZGRQYXJhbWV0ZXIoaSwicV9pZCIsby5nZXRQYXJhbWV0ZXIoInFfaWQiKSk7aT1v
LmFkZFBhcmFtZXRlcihpLCJwYWMiLG8uZ2V0UGFyYW1ldGVyKCJwYWMiKSk7aT1v
LmFkZFBhcmFtZXRlcihpLCJzdXJ2ZXlfc2VuZF9pZCIsby5nZXRQYXJhbWV0ZXIo
InN1cnZleV9zZW5kX2lkIikpOwppPW8uYWRkUGFyYW1ldGVyKGksInN1cnZleV9z
ZW5kX2RlbGF5IixvLmdldFBhcmFtZXRlcigic3VydmV5X3NlbmRfZGVsYXkiKSk7
aT1vLmFkZFBhcmFtZXRlcihpLCJzdXJ2ZXlfY29tcF9pZCIsby5nZXRQYXJhbWV0
ZXIoInN1cnZleV9jb21wX2lkIikpO2k9by5hZGRQYXJhbWV0ZXIoaSwic3VydmV5
X3Rlcm1faWQiLG8uZ2V0UGFyYW1ldGVyKCJzdXJ2ZXlfdGVybV9pZCIpKTtiLmRh
dGEuY2hhdExhbmRpbmdVcmw9aTtiLmRhdGEuY3VzdG9tRmllbGRzPWQ7dGhpcy5m
aXJlKCJldnRfY2hhdFRyYW5zbGF0ZUZvcm1GaWVsZHNSZXNwb25zZSIsYil9dmFy
IGs9e30seT1udWxsLHA9e30sdT1udWxsLFE9MCxJPTEsSj0yLHo9ZmFsc2UsRT1m
YWxzZSxuPVtdLHI9IiIscT0wLHY9MCx0LEM9W10sTz0wLEs9ZmFsc2U7dGhpcy5p
bml0aWFsaXplRXZlbnRCdXM9ZnVuY3Rpb24oKXtpZihSaWdodE5vdy5VcmwuZ2V0
U2Vzc2lvbigpIT0iIikoeT1SaWdodE5vdy5VcmwuZ2V0UGFyYW1ldGVyKCJzbm8i
KSl8fAooeT0wKTtRPVJpZ2h0Tm93LlVybC5nZXRQYXJhbWV0ZXIoImlfaWQiKXx8
MDt2YXIgZD0ic3Vic2NyaWJlIjt0aGlzW2RdKCJldnRfYW5zd2VyTm90aWZpY2F0
aW9uVXBkYXRlUmVxdWVzdCIsYSx0aGlzKTt0aGlzW2RdKCJldnRfbWVudUZpbHRl
clNlbGVjdFJlcXVlc3QiLGlhLHRoaXMpO3RoaXNbZF0oImV2dF9wcm9kQ2F0RGVs
ZXRlUmVxdWVzdCIsa2EsdGhpcyk7dGhpc1tkXSgiZXZ0X3Byb2RDYXRSZW5ld1Jl
cXVlc3QiLGxhLHRoaXMpO3RoaXNbZF0oImV2dF9wcm9kQ2F0QWRkUmVxdWVzdCIs
amEsdGhpcyk7dGhpc1tkXSgiZXZ0X2ZpbGVVcGxvYWRSZXF1ZXN0IixmLHRoaXMp
O3RoaXNbZF0oImV2dF9mb3JtQnV0dG9uU3VibWl0UmVxdWVzdCIsaCx0aGlzKTt0
aGlzW2RdKCJldnRfZm9ybUZpZWxkVmFsaWRhdGVSZXNwb25zZSIsZyx0aGlzKTt0
aGlzW2RdKCJldnRfZm9ybUZpZWxkQ291bnRSZXF1ZXN0IixqLHRoaXMpO3RoaXNb
ZF0oImV2dF9mb3JtRmllbGRQcm92aW5jZVJlcXVlc3QiLApsLHRoaXMpO3RoaXNb
ZF0oImV2dF9mb3JtRmllbGRBY2NvdW50RXhpc3RzUmVxdWVzdCIsVCx0aGlzKTt0
aGlzW2RdKCJldnRfZm9ybVN1Ym1pdFJlcXVlc3QiLEgsdGhpcyk7dGhpc1tkXSgi
ZXZ0X3Bhc3N3b3JkUmVzZXRTdWJtaXRSZXF1ZXN0Iix6YSx0aGlzKTt0aGlzW2Rd
KCJldnRfZW1haWxMaW5rUmVxdWVzdCIsWSx0aGlzKTt0aGlzW2RdKCJldnRfZW1h
aWxQYXNzd29yZFJlcXVlc3QiLFosdGhpcyk7dGhpc1tkXSgiZXZ0X2VtYWlsVXNl
cm5hbWVSZXF1ZXN0IiwkLHRoaXMpO3RoaXNbZF0oImV2dF9hbnN3ZXJGZWVkYmFj
a1JlcXVlc3QiLGJhLHRoaXMpO3RoaXNbZF0oImV2dF9zaXRlRmVlZGJhY2tSZXF1
ZXN0IixhYSx0aGlzKTt0aGlzW2RdKCJldnRfYW5zd2VyUmF0aW5nUmVxdWVzdCIs
Y2EsdGhpcyk7dGhpc1tkXSgiZXZ0X2xvZ2luRm9ybVN1Ym1pdFJlcXVlc3QiLGMs
dGhpcyk7dGhpc1tkXSgiZXZ0X2xvZ291dFJlcXVlc3QiLGUsdGhpcyk7dGhpc1tk
XSgiZXZ0X21lbnVGaWx0ZXJSZXF1ZXN0IiwKZ2EsdGhpcyk7dGhpc1tkXSgiZXZ0
X2FjY2Vzc2libGVUcmVlVmlld1JlcXVlc3QiLGVhLHRoaXMpO3RoaXNbZF0oImV2
dF9zZWFyY2hUeXBlUmVxdWVzdCIsVSx0aGlzKTt0aGlzW2RdKCJldnRfc29ydFR5
cGVSZXF1ZXN0IixWLHRoaXMpO3RoaXNbZF0oImV2dF9vcmdUeXBlUmVxdWVzdCIs
Vyx0aGlzKTt0aGlzW2RdKCJldnRfY3VzdG9tTWVudVJlcXVlc3QiLFgsdGhpcyk7
dGhpc1tkXSgiZXZ0X2tleXdvcmRDaGFuZ2VkUmVxdWVzdCIsZGEsdGhpcyk7dGhp
c1tkXSgiZXZ0X3NlYXJjaFJlcXVlc3QiLG1hLHRoaXMpO3RoaXNbZF0oImV2dF9z
ZWFyY2hGaWx0ZXJzUmVzcG9uc2UiLG9hLHRoaXMpO3RoaXNbZF0oImV2dF9zZWFy
Y2hJblByb2dyZXNzUmVxdWVzdCIsdGEsdGhpcyk7dGhpc1tkXSgiZXZ0X21vcmVS
ZXN1bHRzUmVxdWVzdCIsc2EsdGhpcyk7dGhpc1tkXSgiZXZ0X3BhZ2VSZXF1ZXN0
Iix1YSx0aGlzKTt0aGlzW2RdKCJldnRfc2V0SW5pdGlhbEZpbHRlcnNSZXF1ZXN0
IiwKcWEsdGhpcyk7dGhpc1tkXSgiZXZ0X2NoYXRRdWV1ZVJlcXVlc3QiLEFhLHRo
aXMpO3RoaXNbZF0oImV2dF9jaGF0Tm90aWZ5RmF0dGFjaFJlcXVlc3QiLEJhLHRo
aXMpO3RoaXNbZF0oImV2dF9jaGF0VHJhbnNsYXRlRm9ybUZpZWxkc1JlcXVlc3Qi
LENhLHRoaXMpO3RoaXNbZF0oImV2dF9jb21tdW5pdHlTZWFyY2hSZXF1ZXN0IixS
LHRoaXMpO3RoaXNbZF0oImV2dF9hbnN3ZXJDb21tZW50QWN0aW9uUmVxdWVzdCIs
Uyx0aGlzKX19fTtZQUhPTy51dGlsLkV2ZW50Lm9uRE9NUmVhZHkoZnVuY3Rpb24o
KXt2YXIgYT1SaWdodE5vdy5FdmVudDthLkV2ZW50QnVzPW5ldyBhLkV2ZW50QnVz
O2EuRXZlbnRCdXMuaW5pdGlhbGl6ZUV2ZW50QnVzLmNhbGwoYSl9KTsK

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=standard1316468885.js
Content-Type: application/x-javascript; charset=UTF-8; name=standard1316468885.js
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/templates/standard1316468885.js
Content-Transfer-Encoding: Base64

ClJpZ2h0Tm93LldpZGdldC5Mb2dvdXRMaW5rMj1mdW5jdGlvbihkYXRhLGluc3Rh
bmNlSUQpe3RoaXMuZGF0YT1kYXRhO3RoaXMuaW5zdGFuY2VJRD1pbnN0YW5jZUlE
O2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJybl8iK3RoaXMuaW5zdGFuY2VJ
RCkpCntZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVyKCJybl8iK3RoaXMuaW5z
dGFuY2VJRCsiX0xvZ291dExpbmsiLCJjbGljayIsdGhpcy5fb25Mb2dvdXRDbGlj
ayxudWxsLHRoaXMpO1JpZ2h0Tm93LkV2ZW50LnN1YnNjcmliZSgiZXZ0X2xvZ291
dFJlc3BvbnNlIix0aGlzLl9vbkxvZ291dENvbXBsZXRlZCx0aGlzKTt9fTtSaWdo
dE5vdy5XaWRnZXQuTG9nb3V0TGluazIucHJvdG90eXBlPXtfb25Mb2dvdXRDb21w
bGV0ZWQ6ZnVuY3Rpb24odHlwZSxhcmcpCnt2YXIgcmVzdWx0PWFyZ1swXTtpZihy
ZXN1bHQuc3VjY2Vzcz09PTEmJiFSaWdodE5vdy5VSS5Gb3JtLmxvZ291dEluUHJv
Z3Jlc3MpCntSaWdodE5vdy5VSS5Gb3JtLmxvZ291dEluUHJvZ3Jlc3M9dHJ1ZTtp
ZihyZXN1bHQuc29jaWFsTG9nb3V0KQpSaWdodE5vdy5VcmwubmF2aWdhdGUocmVz
dWx0LnNvY2lhbExvZ291dCx0cnVlKTtlbHNlIGlmKHRoaXMuZGF0YS5hdHRycy5y
ZWRpcmVjdF91cmw9PT0nJykKUmlnaHROb3cuVXJsLm5hdmlnYXRlKHJlc3VsdC51
cmwsdHJ1ZSk7ZWxzZQpSaWdodE5vdy5VcmwubmF2aWdhdGUodGhpcy5kYXRhLmF0
dHJzLnJlZGlyZWN0X3VybCtyZXN1bHQuc2Vzc2lvbix0cnVlKTt9fSxfb25Mb2dv
dXRDbGljazpmdW5jdGlvbigpCnt2YXIgZW89bmV3IFJpZ2h0Tm93LkV2ZW50LkV2
ZW50T2JqZWN0KCk7ZW8ud19pZD10aGlzLmluc3RhbmNlSUQ7ZW8uZGF0YS5jdXJy
ZW50VXJsPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtlby5kYXRhLnJlZGlyZWN0
VXJsPXRoaXMuZGF0YS5hdHRycy5yZWRpcmVjdF91cmw7UmlnaHROb3cuRXZlbnQu
ZmlyZSgiZXZ0X2xvZ291dFJlcXVlc3QiLGVvKTt9fTsKUmlnaHROb3cuV2lkZ2V0
LkxvZ2luRGlhbG9nMj1mdW5jdGlvbihkYXRhLGluc3RhbmNlSUQpe3RoaXMuZGF0
YT1kYXRhO3RoaXMuaW5zdGFuY2VJRD1pbnN0YW5jZUlEO3RoaXMuX2RpYWxvZz10
aGlzLl9rZXlMaXN0ZW5lcj1udWxsO3RoaXMuX2Vycm9yRGlzcGxheT1kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNlSUQrIl9FcnJvck1l
c3NhZ2UiKTt0aGlzLl9jb250YWluZXI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJuXyIrdGhpcy5pbnN0YW5jZUlEKTtpZih0aGlzLl9jb250YWluZXIpCnt2YXIg
cm5fdHJpZ2dlcl9lbGVtZW50cz10aGlzLmRhdGEuYXR0cnMudHJpZ2dlcl9lbGVt
ZW50LnNwbGl0KCIsIik7dmFyIHJuX3JlZGlyZWN0X3VybHM9dGhpcy5kYXRhLmF0
dHJzLnJlZGlyZWN0X3VybC5zcGxpdCgiLCIpO2Zvcih2YXIgaSBpbiBybl90cmln
Z2VyX2VsZW1lbnRzKXtZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVyKHJuX3Ry
aWdnZXJfZWxlbWVudHNbaV0sImNsaWNrIix0aGlzLl9vbkxvZ2luVHJpZ2dlckNs
aWNrLHJuX3JlZGlyZWN0X3VybHNbaV0sdGhpcyk7fQpSaWdodE5vdy5FdmVudC5z
dWJzY3JpYmUoImV2dF9sb2dpbkZvcm1TdWJtaXRSZXNwb25zZSIsdGhpcy5fb25S
ZXNwb25zZVJlY2VpdmVkLHRoaXMpO319O1JpZ2h0Tm93LldpZGdldC5Mb2dpbkRp
YWxvZzIucHJvdG90eXBlPXtfb25Mb2dpblRyaWdnZXJDbGljazpmdW5jdGlvbih0
eXBlLGFyZyl7WUFIT08udXRpbC5Eb20uYWRkQ2xhc3ModGhpcy5fZXJyb3JEaXNw
bGF5LCdybl9IaWRkZW4nKTtpZihhcmcpe3RoaXMuZGF0YS5hdHRycy5yZWRpcmVj
dF91cmw9YXJnO30KaWYoIXRoaXMuX2RpYWxvZyl7dmFyIGRpYWxvZ1RpdGxlPXRo
aXMuZGF0YS5hdHRycy5sYWJlbF9kaWFsb2dfdGl0bGU7dmFyIGJ1dHRvbnM9W3t0
ZXh0OnRoaXMuZGF0YS5hdHRycy5sYWJlbF9sb2dpbl9idXR0b24saGFuZGxlcjp7
Zm46dGhpcy5fb25TdWJtaXQsc2NvcGU6dGhpc319XTt0aGlzLl9kaWFsb2c9Umln
aHROb3cuVUkuRGlhbG9nLmFjdGlvbkRpYWxvZyhkaWFsb2dUaXRsZSxkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNlSUQpLHsiYnV0dG9u
cyI6YnV0dG9uc30pO3RoaXMuX2tleUxpc3RlbmVyPVJpZ2h0Tm93LlVJLkRpYWxv
Zy5hZGREaWFsb2dFbnRlcktleUxpc3RlbmVyKHRoaXMuX2RpYWxvZyx0aGlzLl9v
blN1Ym1pdCx0aGlzKTt0aGlzLl9kaWFsb2cudmFsaWRhdGU9ZnVuY3Rpb24oKXty
ZXR1cm4gZmFsc2U7fTt9CmlmKHRoaXMuX2Vycm9yRGlzcGxheSkKdGhpcy5fZXJy
b3JEaXNwbGF5LmlubmVySFRNTD0iIjtZQUhPTy51dGlsLkRvbS5yZW1vdmVDbGFz
cygicm5fIit0aGlzLmluc3RhbmNlSUQsJ3JuX0hpZGRlbicpO3RoaXMuX2RpYWxv
Zy5zaG93KCk7dmFyIGZvY3VzRWxlbWVudD1udWxsO3RoaXMuX3VzZXJuYW1lRmll
bGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJuXyIrdGhpcy5pbnN0YW5jZUlE
KyJfVXNlcm5hbWUiKTt0aGlzLl9wYXNzd29yZEZpZWxkPWRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX1Bhc3N3b3JkIik7aWYo
dGhpcy5fdXNlcm5hbWVGaWVsZCkKe2lmKHRoaXMuX3VzZXJuYW1lRmllbGQudmFs
dWU9PT0nJykKZm9jdXNFbGVtZW50PXRoaXMuX3VzZXJuYW1lRmllbGQ7ZWxzZQpm
b2N1c0VsZW1lbnQ9dGhpcy5fcGFzc3dvcmRGaWVsZDtSaWdodE5vdy5VSS5EaWFs
b2cuZW5hYmxlRGlhbG9nQ29udHJvbHModGhpcy5fZGlhbG9nLHRoaXMuX2tleUxp
c3RlbmVyLGZvY3VzRWxlbWVudCk7Zm9jdXNFbGVtZW50LmZvY3VzKCk7fX0sX29u
Q2FuY2VsOmZ1bmN0aW9uKHR5cGUsYXJnKXtpZih0aGlzLl9lcnJvckRpc3BsYXkp
Cnt0aGlzLl9lcnJvckRpc3BsYXkuaW5uZXJIVE1MPSIiO1lBSE9PLnV0aWwuRG9t
LnJlbW92ZUNsYXNzKHRoaXMuX2Vycm9yRGlzcGxheSwncm5fTWVzc2FnZUJveCBy
bl9FcnJvck1lc3NhZ2UnKTtZQUhPTy51dGlsLkRvbS5hZGRDbGFzcyh0aGlzLl9l
cnJvckRpc3BsYXksJ3JuX0hpZGRlbicpO30KaWYodGhpcy5fZGlhbG9nKQp7Umln
aHROb3cuVUkuRGlhbG9nLmRpc2FibGVEaWFsb2dDb250cm9scyh0aGlzLl9kaWFs
b2csdGhpcy5fa2V5TGlzdGVuZXIpO3RoaXMuX2RpYWxvZy5oaWRlKCk7fX0sX29u
U3VibWl0OmZ1bmN0aW9uKHR5cGUsYXJncyl7aWYodHlwZT09PSJrZXlQcmVzc2Vk
IiYmKFlBSE9PLnV0aWwuRXZlbnQuZ2V0VGFyZ2V0KGFyZ3NbMV0pLnRhZ05hbWU9
PT0nQSd8fFlBSE9PLnV0aWwuRXZlbnQuZ2V0VGFyZ2V0KGFyZ3NbMV0pLmlubmVy
SFRNTD09PXRoaXMuZGF0YS5hdHRycy5sYWJlbF9sb2dpbl9idXR0b258fFlBSE9P
LnV0aWwuRXZlbnQuZ2V0VGFyZ2V0KGFyZ3NbMV0pLmlubmVySFRNTD09PXRoaXMu
ZGF0YS5hdHRycy5sYWJlbF9jYW5jZWxfYnV0dG9uKSkKcmV0dXJuO3ZhciBlbz1u
ZXcgUmlnaHROb3cuRXZlbnQuRXZlbnRPYmplY3QoKTtlby53X2lkPXRoaXMuaW5z
dGFuY2VJRDtlby5kYXRhLnVzZXJuYW1lPSh0aGlzLl91c2VybmFtZUZpZWxkKT9Z
QUhPTy5sYW5nLnRyaW0odGhpcy5fdXNlcm5hbWVGaWVsZC52YWx1ZSk6IiI7dmFy
IGVycm9yTWVzc2FnZT0iIjtpZihlby5kYXRhLnVzZXJuYW1lLmluZGV4T2YoJyAn
KT4tMSkKZXJyb3JNZXNzYWdlPVJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdl
KCJVU0VSTkFNRV9GSUVMRF9DT05UQUlOX1NQQUNFU19NU0ciKTtlbHNlIGlmKGVv
LmRhdGEudXNlcm5hbWUuaW5kZXhPZigiJyIpPi0xfHxlby5kYXRhLnVzZXJuYW1l
LmluZGV4T2YoJyInKT4tMSkKZXJyb3JNZXNzYWdlPVJpZ2h0Tm93LkludGVyZmFj
ZS5nZXRNZXNzYWdlKCJVU0VSTkFNRV9GSUVMRF9DT05UX1FVT1RFX0NIQVJTX01T
RyIpO2Vsc2UgaWYoZW8uZGF0YS51c2VybmFtZS5pbmRleE9mKCI8Iik+LTF8fGVv
LmRhdGEudXNlcm5hbWUuaW5kZXhPZigiPiIpPi0xKQplcnJvck1lc3NhZ2U9Umln
aHROb3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIlVTRVJOQU1FX0ZJRUxEX0NPTlRB
SU5fVEhBTl9DSEFSU19NU0ciKTtpZihlcnJvck1lc3NhZ2UhPT0iIikKe3RoaXMu
X2FkZEVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UsJ3JuXycrdGhpcy5pbnN0YW5j
ZUlEKydfVXNlcm5hbWUnKTtyZXR1cm4gZmFsc2U7fQppZighdGhpcy5kYXRhLmF0
dHJzLmRpc2FibGVfcGFzc3dvcmQmJnRoaXMuX3Bhc3N3b3JkRmllbGQpCmVvLmRh
dGEucGFzc3dvcmQ9dGhpcy5fcGFzc3dvcmRGaWVsZC52YWx1ZTtlbHNlCmVvLmRh
dGEucGFzc3dvcmQ9IiI7ZW8uZGF0YS51cmw9d2luZG93LmxvY2F0aW9uLnBhdGhu
YW1lO1JpZ2h0Tm93LkV2ZW50LmZpcmUoImV2dF9sb2dpbkZvcm1TdWJtaXRSZXF1
ZXN0Iixlbyk7bmV3IFlBSE9PLnV0aWwuQW5pbSgicm5fIit0aGlzLmluc3RhbmNl
SUQrIl9Db250ZW50Iix7b3BhY2l0eTp7dG86MH19LDAuNSxZQUhPTy51dGlsLkVh
c2luZy5lYXNlT3V0KS5hbmltYXRlKCk7WUFIT08udXRpbC5Eb20uYWRkQ2xhc3Mo
InJuXyIrdGhpcy5pbnN0YW5jZUlELCdybl9Db250ZW50TG9hZGluZycpO2lmKFlB
SE9PLmVudi51YS5pZT4wKQp7aWYod2luZG93LmV4dGVybmFsJiYiQXV0b0NvbXBs
ZXRlU2F2ZUZvcm0iaW4gd2luZG93LmV4dGVybmFsKQp7dmFyIGZvcm09ZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfRm9ybSIp
O2lmKGZvcm0pCndpbmRvdy5leHRlcm5hbC5BdXRvQ29tcGxldGVTYXZlRm9ybShm
b3JtKTt9fQpyZXR1cm4gZmFsc2U7fSxfb25SZXNwb25zZVJlY2VpdmVkOmZ1bmN0
aW9uKHR5cGUscmVzdWx0KXtyZXN1bHQ9cmVzdWx0WzBdO25ldyBZQUhPTy51dGls
LkFuaW0oInJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfQ29udGVudCIse29wYWNpdHk6
e3RvOjF9fSwwLjUsWUFIT08udXRpbC5FYXNpbmcuZWFzZUluKS5hbmltYXRlKCk7
WUFIT08udXRpbC5Eb20ucmVtb3ZlQ2xhc3MoInJuXyIrdGhpcy5pbnN0YW5jZUlE
LCdybl9Db250ZW50TG9hZGluZycpO2lmKHRoaXMuaW5zdGFuY2VJRD09cmVzdWx0
LndfaWQpCntpZihyZXN1bHQuc3VjY2Vzcz09MSkKe3RoaXMuX2RpYWxvZy5zZXRG
b290ZXIoIiIpO2lmKHRoaXMuX2NvbnRhaW5lcikKZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJuXyIrdGhpcy5pbnN0YW5jZUlEKS5pbm5lckhUTUw9cmVzdWx0Lm1l
c3NhZ2U7UmlnaHROb3cuVXJsLm5hdmlnYXRlKHRoaXMuX2dldFJlZGlyZWN0VXJs
KHJlc3VsdCkpO30KZWxzZQp7dGhpcy5fYWRkRXJyb3JNZXNzYWdlKHJlc3VsdC5t
ZXNzYWdlLCdybl8nK3RoaXMuaW5zdGFuY2VJRCsnX1VzZXJuYW1lJyk7fX19LF9n
ZXRSZWRpcmVjdFVybDpmdW5jdGlvbihyZXN1bHQpe2lmKHRoaXMuZGF0YS5qcy5y
ZWRpcmVjdE92ZXJyaWRlKQp7dmFyIHNlc3Npb25WYWx1ZT1yZXN1bHQuc2Vzc2lv
blBhcm0uc3Vic3RyKHJlc3VsdC5zZXNzaW9uUGFybS5sYXN0SW5kZXhPZigiLyIp
KzEpO2lmKCFzZXNzaW9uVmFsdWUmJnRoaXMuZGF0YS5qcy5yZWRpcmVjdFNlc3Np
b24pCnNlc3Npb25WYWx1ZT10aGlzLmRhdGEuanMucmVkaXJlY3RTZXNzaW9uO3Jl
dHVybiBSaWdodE5vdy5VcmwuYWRkUGFyYW1ldGVyKHRoaXMuZGF0YS5qcy5yZWRp
cmVjdE92ZXJyaWRlLCdzZXNzaW9uJyxzZXNzaW9uVmFsdWUpK3RoaXMuZGF0YS5h
dHRycy5hcHBlbmRfdG9fdXJsO30KaWYodGhpcy5kYXRhLmF0dHJzLnJlZGlyZWN0
X3VybD09PScnKQp7aWYocmVzdWx0LmFkZFNlc3Npb24pCnJldHVybiByZXN1bHQu
dXJsK3RoaXMuZGF0YS5hdHRycy5hcHBlbmRfdG9fdXJsK3Jlc3VsdC5zZXNzaW9u
UGFybTtyZXR1cm4gcmVzdWx0LnVybCt0aGlzLmRhdGEuYXR0cnMuYXBwZW5kX3Rv
X3VybDt9CmlmKHJlc3VsdC5hZGRTZXNzaW9uKQpyZXR1cm4gdGhpcy5kYXRhLmF0
dHJzLnJlZGlyZWN0X3VybCtyZXN1bHQuc2Vzc2lvblBhcm07cmV0dXJuIHRoaXMu
ZGF0YS5hdHRycy5yZWRpcmVjdF91cmw7fSxfYWRkRXJyb3JNZXNzYWdlOmZ1bmN0
aW9uKG1lc3NhZ2UsZm9jdXNFbGVtZW50KXtpZih0aGlzLl9lcnJvckRpc3BsYXkp
CntZQUhPTy51dGlsLkRvbS5hZGRDbGFzcyh0aGlzLl9lcnJvckRpc3BsYXksJ3Ju
X01lc3NhZ2VCb3ggcm5fRXJyb3JNZXNzYWdlJyk7WUFIT08udXRpbC5Eb20ucmVt
b3ZlQ2xhc3ModGhpcy5fZXJyb3JEaXNwbGF5LCdybl9IaWRkZW4nKTt0aGlzLl9l
cnJvckRpc3BsYXkuaW5uZXJIVE1MPW1lc3NhZ2U7dGhpcy5fZXJyb3JEaXNwbGF5
LmZpcnN0Q2hpbGQuZm9jdXMoKTt9fX07ClJpZ2h0Tm93LldpZGdldC5OYXZpZ2F0
aW9uVGFiMj1mdW5jdGlvbihkYXRhLGluc3RhbmNlSUQpCnt0aGlzLmRhdGE9ZGF0
YTt0aGlzLmluc3RhbmNlSUQ9aW5zdGFuY2VJRDtpZih0aGlzLmRhdGEuYXR0cnMu
c3VicGFnZXMpCnt0aGlzLl90b2dnbGVFbGVtZW50PWRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX0Ryb3Bkb3duQnV0dG9uIik7
aWYoIXRoaXMuX3RvZ2dsZUVsZW1lbnQpcmV0dXJuO1lBSE9PLnV0aWwuRXZlbnQu
YWRkTGlzdGVuZXIodGhpcy5fdG9nZ2xlRWxlbWVudCwnY2xpY2snLHRoaXMuX3Rv
Z2dsZURyb3Bkb3duLG51bGwsdGhpcyk7dGhpcy5fdGFiRWxlbWVudD1kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNlSUQpO3RoaXMuX2Ry
b3Bkb3duRWxlbWVudD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm5fIit0aGlz
Lmluc3RhbmNlSUQrIl9TdWJOYXZpZ2F0aW9uIik7dGhpcy5fbGlua0VsZW1lbnRz
PVlBSE9PLnV0aWwuRG9tLmdldENoaWxkcmVuKHRoaXMuX2Ryb3Bkb3duRWxlbWVu
dCk7WUFIT08udXRpbC5FdmVudC5hZGRMaXN0ZW5lcih0aGlzLl9saW5rRWxlbWVu
dHNbdGhpcy5fbGlua0VsZW1lbnRzLmxlbmd0aC0xXSwnZm9jdXMnLHRoaXMuX3Rv
Z2dsZURyb3Bkb3duLG51bGwsdGhpcyk7WUFIT08udXRpbC5FdmVudC5hZGRMaXN0
ZW5lcih0aGlzLl9saW5rRWxlbWVudHNbMF0sJ2ZvY3VzJyx0aGlzLl90b2dnbGVE
cm9wZG93bixudWxsLHRoaXMpO1lBSE9PLnV0aWwuRXZlbnQuYWRkTGlzdGVuZXIo
InJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfTGluayIsImtleWRvd24iLGZ1bmN0aW9u
KGV2dCl7aWYoZXZ0LmtleUNvZGUmJmV2dC5zaGlmdEtleSYmZXZ0LmtleUNvZGU9
PT1ZQUhPTy51dGlsLktleUxpc3RlbmVyLktFWS5UQUIpCnRoaXMuX2Nsb3NlRHJv
cGRvd24oe3R5cGU6ImNsaWNrIn0sbnVsbCk7fSxudWxsLHRoaXMpO30KaWYodGhp
cy5kYXRhLmF0dHJzLnNlYXJjaGVzX2RvbmU+MCYmdGhpcy5kYXRhLmpzLnNlYXJj
aGVzPHRoaXMuZGF0YS5hdHRycy5zZWFyY2hlc19kb25lKQpSaWdodE5vdy5FdmVu
dC5zdWJzY3JpYmUoImV2dF9zZWFyY2hJblByb2dyZXNzUmVxdWVzdCIsdGhpcy5f
b25TZWFyY2hDb3VudENoYW5nZWQsdGhpcyk7fTtSaWdodE5vdy5XaWRnZXQuTmF2
aWdhdGlvblRhYjIucHJvdG90eXBlPXtfdG9nZ2xlRHJvcGRvd246ZnVuY3Rpb24o
ZXZ0LGFyZ3MpCntZQUhPTy51dGlsLkV2ZW50LnN0b3BFdmVudChldnQpO2lmKHRo
aXMuX2Ryb3Bkb3duT3BlbiYmWUFIT08udXRpbC5FdmVudC5nZXRUYXJnZXQoZXZ0
KT09PXRoaXMuX3RvZ2dsZUVsZW1lbnQpCnRoaXMuX2Nsb3NlRHJvcGRvd24oe3R5
cGU6ImNsaWNrIn0sbnVsbCk7ZWxzZQp0aGlzLl9vcGVuRHJvcGRvd24oKTtyZXR1
cm4gZmFsc2U7fSxfb3BlbkRyb3Bkb3duOmZ1bmN0aW9uKCkKe2lmKCF0aGlzLl9k
cm9wZG93bk9wZW4pCnt0aGlzLl90YWJSZWdpb249WUFIT08udXRpbC5Eb20uZ2V0
UmVnaW9uKHRoaXMuX3RhYkVsZW1lbnQpO1lBSE9PLnV0aWwuRG9tLnNldFN0eWxl
KHRoaXMuX2Ryb3Bkb3duRWxlbWVudCwidG9wIiwodGhpcy5fdGFiUmVnaW9uLmJv
dHRvbS00KSsicHgiKTt2YXIgbGVmdD1ZQUhPTy51dGlsLkRvbS5oYXNDbGFzcyh0
aGlzLl90YWJFbGVtZW50LHRoaXMuZGF0YS5hdHRycy5jc3NfY2xhc3MpPzQ6MDtZ
QUhPTy51dGlsLkRvbS5zZXRTdHlsZSh0aGlzLl9kcm9wZG93bkVsZW1lbnQsImxl
ZnQiLCh0aGlzLl90YWJSZWdpb24ubGVmdC1sZWZ0KSsicHgiKTtZQUhPTy51dGls
LkRvbS5yZW1vdmVDbGFzcyh0aGlzLl9kcm9wZG93bkVsZW1lbnQsInJuX1NjcmVl
blJlYWRlck9ubHkiKTtZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVyKFt0aGlz
Ll90YWJFbGVtZW50LHRoaXMuX2Ryb3Bkb3duRWxlbWVudF0sJ21vdXNlb3V0Jyx0
aGlzLl9jbG9zZURyb3Bkb3duLG51bGwsdGhpcyk7WUFIT08udXRpbC5FdmVudC5h
ZGRMaXN0ZW5lcihbdGhpcy5fZHJvcGRvd25FbGVtZW50LGRvY3VtZW50XSwnY2xp
Y2snLHRoaXMuX2Nsb3NlRHJvcGRvd24sbnVsbCx0aGlzKTt2YXIgbGFzdERyb3Bk
b3duRWxlbWVudD10aGlzLl9saW5rRWxlbWVudHNbdGhpcy5fbGlua0VsZW1lbnRz
Lmxlbmd0aC0xXTtZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVyKGxhc3REcm9w
ZG93bkVsZW1lbnQsImtleWRvd24iLGZ1bmN0aW9uKGV2dCl7aWYoZXZ0LmtleUNv
ZGUmJiFldnQuc2hpZnRLZXkmJmV2dC5rZXlDb2RlPT09WUFIT08udXRpbC5LZXlM
aXN0ZW5lci5LRVkuVEFCKQp0aGlzLl9jbG9zZURyb3Bkb3duKGV2dCk7fSxudWxs
LHRoaXMpO3RoaXMuX2Ryb3Bkb3duT3Blbj10cnVlO319LF9jbG9zZURyb3Bkb3du
OmZ1bmN0aW9uKGV2dCxhcmdzKQp7aWYodGhpcy5fZHJvcGRvd25PcGVuKQp7aWYo
ZXZ0LnR5cGUhPT0ia2V5ZG93biImJmV2dC50eXBlIT09ImNsaWNrIikKe3ZhciBj
b29yZGluYXRlcz1ZQUhPTy51dGlsLkV2ZW50LmdldFhZKGV2dCk7Y29vcmRpbmF0
ZXM9bmV3IFlBSE9PLnV0aWwuUG9pbnQoY29vcmRpbmF0ZXNbMF0sY29vcmRpbmF0
ZXNbMV0pO3RoaXMuX2Ryb3Bkb3duUmVnaW9uPXRoaXMuX2Ryb3Bkb3duUmVnaW9u
fHxZQUhPTy51dGlsLkRvbS5nZXRSZWdpb24odGhpcy5fZHJvcGRvd25FbGVtZW50
KTtpZigodGhpcy5fdGFiUmVnaW9uJiZ0aGlzLl90YWJSZWdpb24uY29udGFpbnMo
Y29vcmRpbmF0ZXMpKXx8KHRoaXMuX2Ryb3Bkb3duUmVnaW9uJiZ0aGlzLl9kcm9w
ZG93blJlZ2lvbi5jb250YWlucyhjb29yZGluYXRlcykpKQpyZXR1cm47fQpZQUhP
Ty51dGlsLkV2ZW50LnB1cmdlRWxlbWVudChkb2N1bWVudCxmYWxzZSk7WUFIT08u
dXRpbC5Eb20uc2V0U3R5bGUodGhpcy5fZHJvcGRvd25FbGVtZW50LCJ0b3AiLCJh
dXRvIik7WUFIT08udXRpbC5Eb20uc2V0U3R5bGUodGhpcy5fZHJvcGRvd25FbGVt
ZW50LCJsZWZ0IiwiLTEwMDAwcHgiKTtZQUhPTy51dGlsLkRvbS5hZGRDbGFzcyh0
aGlzLl9kcm9wZG93bkVsZW1lbnQsInJuX1NjcmVlblJlYWRlck9ubHkiKTt0aGlz
Ll9kcm9wZG93bk9wZW49ZmFsc2U7fX0sX29uU2VhcmNoQ291bnRDaGFuZ2VkOmZ1
bmN0aW9uKCkKe3RoaXMuZGF0YS5qcy5zZWFyY2hlcysrO2lmKHRoaXMuZGF0YS5q
cy5zZWFyY2hlcz49dGhpcy5kYXRhLmF0dHJzLnNlYXJjaGVzX2RvbmUpCntSaWdo
dE5vdy5FdmVudC51bnN1YnNjcmliZSgiZXZ0X3NlYXJjaEluUHJvZ3Jlc3NSZXF1
ZXN0Iix0aGlzLl9vblNlYXJjaENvdW50Q2hhbmdlZCk7dmFyIHRhYkVsZW1lbnQ9
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JuXycrdGhpcy5pbnN0YW5jZUlEKTtp
Zih0YWJFbGVtZW50KQpZQUhPTy51dGlsLkRvbS5yZW1vdmVDbGFzcyh0YWJFbGVt
ZW50LCdybl9IaWRkZW4nKTt9fX07ClJpZ2h0Tm93LldpZGdldC5GaXJzdFRhYj1m
dW5jdGlvbihkYXRhLGluc3RhbmNlSUQpCnt0aGlzLmRhdGE9ZGF0YTt0aGlzLmlu
c3RhbmNlSUQ9aW5zdGFuY2VJRDtpZih0aGlzLmRhdGEuYXR0cnMuc3VicGFnZXMp
Cnt0aGlzLl90b2dnbGVFbGVtZW50PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
bl8iK3RoaXMuaW5zdGFuY2VJRCsiX0Ryb3Bkb3duQnV0dG9uIik7aWYoIXRoaXMu
X3RvZ2dsZUVsZW1lbnQpcmV0dXJuO1lBSE9PLnV0aWwuRXZlbnQuYWRkTGlzdGVu
ZXIodGhpcy5fdG9nZ2xlRWxlbWVudCwnY2xpY2snLHRoaXMuX3RvZ2dsZURyb3Bk
b3duLG51bGwsdGhpcyk7dGhpcy5fdGFiRWxlbWVudD1kb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNlSUQpO3RoaXMuX2Ryb3Bkb3duRWxl
bWVudD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNl
SUQrIl9TdWJOYXZpZ2F0aW9uIik7dGhpcy5fbGlua0VsZW1lbnRzPVlBSE9PLnV0
aWwuRG9tLmdldENoaWxkcmVuKHRoaXMuX2Ryb3Bkb3duRWxlbWVudCk7WUFIT08u
dXRpbC5FdmVudC5hZGRMaXN0ZW5lcih0aGlzLl9saW5rRWxlbWVudHNbdGhpcy5f
bGlua0VsZW1lbnRzLmxlbmd0aC0xXSwnZm9jdXMnLHRoaXMuX3RvZ2dsZURyb3Bk
b3duLG51bGwsdGhpcyk7WUFIT08udXRpbC5FdmVudC5hZGRMaXN0ZW5lcih0aGlz
Ll9saW5rRWxlbWVudHNbMF0sJ2ZvY3VzJyx0aGlzLl90b2dnbGVEcm9wZG93bixu
dWxsLHRoaXMpO1lBSE9PLnV0aWwuRXZlbnQuYWRkTGlzdGVuZXIoInJuXyIrdGhp
cy5pbnN0YW5jZUlEKyJfTGluayIsImtleWRvd24iLGZ1bmN0aW9uKGV2dCl7aWYo
ZXZ0LmtleUNvZGUmJmV2dC5zaGlmdEtleSYmZXZ0LmtleUNvZGU9PT1ZQUhPTy51
dGlsLktleUxpc3RlbmVyLktFWS5UQUIpCnRoaXMuX2Nsb3NlRHJvcGRvd24oe3R5
cGU6ImNsaWNrIn0sbnVsbCk7fSxudWxsLHRoaXMpO30KaWYodGhpcy5kYXRhLmF0
dHJzLnNlYXJjaGVzX2RvbmU+MCYmdGhpcy5kYXRhLmpzLnNlYXJjaGVzPHRoaXMu
ZGF0YS5hdHRycy5zZWFyY2hlc19kb25lKQpSaWdodE5vdy5FdmVudC5zdWJzY3Jp
YmUoImV2dF9zZWFyY2hJblByb2dyZXNzUmVxdWVzdCIsdGhpcy5fb25TZWFyY2hD
b3VudENoYW5nZWQsdGhpcyk7fTtSaWdodE5vdy5XaWRnZXQuRmlyc3RUYWIucHJv
dG90eXBlPXtfdG9nZ2xlRHJvcGRvd246ZnVuY3Rpb24oZXZ0LGFyZ3MpCntZQUhP
Ty51dGlsLkV2ZW50LnN0b3BFdmVudChldnQpO2lmKHRoaXMuX2Ryb3Bkb3duT3Bl
biYmWUFIT08udXRpbC5FdmVudC5nZXRUYXJnZXQoZXZ0KT09PXRoaXMuX3RvZ2ds
ZUVsZW1lbnQpCnRoaXMuX2Nsb3NlRHJvcGRvd24oe3R5cGU6ImNsaWNrIn0sbnVs
bCk7ZWxzZQp0aGlzLl9vcGVuRHJvcGRvd24oKTtyZXR1cm4gZmFsc2U7fSxfb3Bl
bkRyb3Bkb3duOmZ1bmN0aW9uKCkKe2lmKCF0aGlzLl9kcm9wZG93bk9wZW4pCnt0
aGlzLl90YWJSZWdpb249WUFIT08udXRpbC5Eb20uZ2V0UmVnaW9uKHRoaXMuX3Rh
YkVsZW1lbnQpO1lBSE9PLnV0aWwuRG9tLnNldFN0eWxlKHRoaXMuX2Ryb3Bkb3du
RWxlbWVudCwidG9wIiwodGhpcy5fdGFiUmVnaW9uLmJvdHRvbS00KSsicHgiKTt2
YXIgbGVmdD1ZQUhPTy51dGlsLkRvbS5oYXNDbGFzcyh0aGlzLl90YWJFbGVtZW50
LHRoaXMuZGF0YS5hdHRycy5jc3NfY2xhc3MpPzQ6MDtZQUhPTy51dGlsLkRvbS5z
ZXRTdHlsZSh0aGlzLl9kcm9wZG93bkVsZW1lbnQsImxlZnQiLCh0aGlzLl90YWJS
ZWdpb24ubGVmdC1sZWZ0KSsicHgiKTtZQUhPTy51dGlsLkRvbS5yZW1vdmVDbGFz
cyh0aGlzLl9kcm9wZG93bkVsZW1lbnQsInJuX1NjcmVlblJlYWRlck9ubHkiKTtZ
QUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVyKFt0aGlzLl90YWJFbGVtZW50LHRo
aXMuX2Ryb3Bkb3duRWxlbWVudF0sJ21vdXNlb3V0Jyx0aGlzLl9jbG9zZURyb3Bk
b3duLG51bGwsdGhpcyk7WUFIT08udXRpbC5FdmVudC5hZGRMaXN0ZW5lcihbdGhp
cy5fZHJvcGRvd25FbGVtZW50LGRvY3VtZW50XSwnY2xpY2snLHRoaXMuX2Nsb3Nl
RHJvcGRvd24sbnVsbCx0aGlzKTt2YXIgbGFzdERyb3Bkb3duRWxlbWVudD10aGlz
Ll9saW5rRWxlbWVudHNbdGhpcy5fbGlua0VsZW1lbnRzLmxlbmd0aC0xXTtZQUhP
Ty51dGlsLkV2ZW50LmFkZExpc3RlbmVyKGxhc3REcm9wZG93bkVsZW1lbnQsImtl
eWRvd24iLGZ1bmN0aW9uKGV2dCl7aWYoZXZ0LmtleUNvZGUmJiFldnQuc2hpZnRL
ZXkmJmV2dC5rZXlDb2RlPT09WUFIT08udXRpbC5LZXlMaXN0ZW5lci5LRVkuVEFC
KQp0aGlzLl9jbG9zZURyb3Bkb3duKGV2dCk7fSxudWxsLHRoaXMpO3RoaXMuX2Ry
b3Bkb3duT3Blbj10cnVlO319LF9jbG9zZURyb3Bkb3duOmZ1bmN0aW9uKGV2dCxh
cmdzKQp7aWYodGhpcy5fZHJvcGRvd25PcGVuKQp7aWYoZXZ0LnR5cGUhPT0ia2V5
ZG93biImJmV2dC50eXBlIT09ImNsaWNrIikKe3ZhciBjb29yZGluYXRlcz1ZQUhP
Ty51dGlsLkV2ZW50LmdldFhZKGV2dCk7Y29vcmRpbmF0ZXM9bmV3IFlBSE9PLnV0
aWwuUG9pbnQoY29vcmRpbmF0ZXNbMF0sY29vcmRpbmF0ZXNbMV0pO3RoaXMuX2Ry
b3Bkb3duUmVnaW9uPXRoaXMuX2Ryb3Bkb3duUmVnaW9ufHxZQUhPTy51dGlsLkRv
bS5nZXRSZWdpb24odGhpcy5fZHJvcGRvd25FbGVtZW50KTtpZigodGhpcy5fdGFi
UmVnaW9uJiZ0aGlzLl90YWJSZWdpb24uY29udGFpbnMoY29vcmRpbmF0ZXMpKXx8
KHRoaXMuX2Ryb3Bkb3duUmVnaW9uJiZ0aGlzLl9kcm9wZG93blJlZ2lvbi5jb250
YWlucyhjb29yZGluYXRlcykpKQpyZXR1cm47fQpZQUhPTy51dGlsLkV2ZW50LnB1
cmdlRWxlbWVudChkb2N1bWVudCxmYWxzZSk7WUFIT08udXRpbC5Eb20uc2V0U3R5
bGUodGhpcy5fZHJvcGRvd25FbGVtZW50LCJ0b3AiLCJhdXRvIik7WUFIT08udXRp
bC5Eb20uc2V0U3R5bGUodGhpcy5fZHJvcGRvd25FbGVtZW50LCJsZWZ0IiwiLTEw
MDAwcHgiKTtZQUhPTy51dGlsLkRvbS5hZGRDbGFzcyh0aGlzLl9kcm9wZG93bkVs
ZW1lbnQsInJuX1NjcmVlblJlYWRlck9ubHkiKTt0aGlzLl9kcm9wZG93bk9wZW49
ZmFsc2U7fX0sX29uU2VhcmNoQ291bnRDaGFuZ2VkOmZ1bmN0aW9uKCkKe3RoaXMu
ZGF0YS5qcy5zZWFyY2hlcysrO2lmKHRoaXMuZGF0YS5qcy5zZWFyY2hlcz49dGhp
cy5kYXRhLmF0dHJzLnNlYXJjaGVzX2RvbmUpCntSaWdodE5vdy5FdmVudC51bnN1
YnNjcmliZSgiZXZ0X3NlYXJjaEluUHJvZ3Jlc3NSZXF1ZXN0Iix0aGlzLl9vblNl
YXJjaENvdW50Q2hhbmdlZCk7dmFyIHRhYkVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3JuXycrdGhpcy5pbnN0YW5jZUlEKTtpZih0YWJFbGVtZW50KQpZ
QUhPTy51dGlsLkRvbS5yZW1vdmVDbGFzcyh0YWJFbGVtZW50LCdybl9IaWRkZW4n
KTt9fX07ClJpZ2h0Tm93LldpZGdldC5TaW1wbGVTZWFyY2g9ZnVuY3Rpb24oZGF0
YSxpbnN0YW5jZUlEKXt0aGlzLmRhdGE9ZGF0YTt0aGlzLmluc3RhbmNlSUQ9aW5z
dGFuY2VJRDt0aGlzLl9zZWFyY2hGaWVsZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicm5fIit0aGlzLmluc3RhbmNlSUQrIl9TZWFyY2hGaWVsZCIpO2lmKCF0aGlz
Ll9zZWFyY2hGaWVsZClyZXR1cm47aWYodGhpcy5kYXRhLmF0dHJzLmluaXRpYWxf
Zm9jdXMmJnRoaXMuX3NlYXJjaEZpZWxkLmZvY3VzKQp0aGlzLl9zZWFyY2hGaWVs
ZC5mb2N1cygpO2lmKHRoaXMuZGF0YS5hdHRycy5sYWJlbF9oaW50KQp7WUFIT08u
dXRpbC5FdmVudC5hZGRMaXN0ZW5lcih0aGlzLl9zZWFyY2hGaWVsZCwiZm9jdXMi
LHRoaXMuX29uRm9jdXMsbnVsbCx0aGlzKTtZQUhPTy51dGlsLkV2ZW50LmFkZExp
c3RlbmVyKHRoaXMuX3NlYXJjaEZpZWxkLCJibHVyIix0aGlzLl9vbkJsdXIsbnVs
bCx0aGlzKTt9CllBSE9PLnV0aWwuRXZlbnQuYWRkTGlzdGVuZXIoInJuXyIrdGhp
cy5pbnN0YW5jZUlEKyJfU3VibWl0IiwiY2xpY2siLHRoaXMuX29uU2VhcmNoLG51
bGwsdGhpcyk7fTtSaWdodE5vdy5XaWRnZXQuU2ltcGxlU2VhcmNoLnByb3RvdHlw
ZT17X29uU2VhcmNoOmZ1bmN0aW9uKCl7aWYoWUFIT08uZW52LnVhLmllIT09MCkK
e2lmKCF0aGlzLl9wYXJlbnRGb3JtKQp0aGlzLl9wYXJlbnRGb3JtPWRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX1NlYXJjaEZv
cm0iKTtpZih0aGlzLl9wYXJlbnRGb3JtJiZ3aW5kb3cuZXh0ZXJuYWwmJiJBdXRv
Q29tcGxldGVTYXZlRm9ybSJpbiB3aW5kb3cuZXh0ZXJuYWwpCnt3aW5kb3cuZXh0
ZXJuYWwuQXV0b0NvbXBsZXRlU2F2ZUZvcm0odGhpcy5fcGFyZW50Rm9ybSk7fX0K
dmFyIHNlYXJjaFN0cmluZz0odGhpcy5fc2VhcmNoRmllbGQudmFsdWU9PT10aGlz
LmRhdGEuYXR0cnMubGFiZWxfaGludCk/IiI6dGhpcy5fc2VhcmNoRmllbGQudmFs
dWU7c2VhcmNoU3RyaW5nPVJpZ2h0Tm93LlVybC5hZGRQYXJhbWV0ZXIodGhpcy5k
YXRhLmF0dHJzLnJlcG9ydF9wYWdlX3VybCwia3ciLHNlYXJjaFN0cmluZyk7c2Vh
cmNoU3RyaW5nPVJpZ2h0Tm93LlVybC5hZGRQYXJhbWV0ZXIoc2VhcmNoU3RyaW5n
LCJzZWFyY2giLDEpO3NlYXJjaFN0cmluZz1SaWdodE5vdy5VcmwuYWRkUGFyYW1l
dGVyKHNlYXJjaFN0cmluZywic2Vzc2lvbiIsUmlnaHROb3cuVXJsLmdldFNlc3Np
b24oKSk7UmlnaHROb3cuVXJsLm5hdmlnYXRlKHNlYXJjaFN0cmluZyk7fSxfb25G
b2N1czpmdW5jdGlvbigpe2lmKHRoaXMuX3NlYXJjaEZpZWxkLnZhbHVlPT09dGhp
cy5kYXRhLmF0dHJzLmxhYmVsX2hpbnQpCnRoaXMuX3NlYXJjaEZpZWxkLnZhbHVl
PSIiO30sX29uQmx1cjpmdW5jdGlvbigpe2lmKHRoaXMuX3NlYXJjaEZpZWxkLnZh
bHVlPT09IiIpCnRoaXMuX3NlYXJjaEZpZWxkLnZhbHVlPXRoaXMuZGF0YS5hdHRy
cy5sYWJlbF9oaW50O319OwpSaWdodE5vdy5XaWRnZXQuU2l0ZUZlZWRiYWNrMj1m
dW5jdGlvbihkYXRhLGluc3RhbmNlSUQpCnt0aGlzLmRhdGE9ZGF0YTt0aGlzLmlu
c3RhbmNlSUQ9aW5zdGFuY2VJRDt0aGlzLl9kaWFsb2c9bnVsbDt0aGlzLl9lcnJv
ckRpc3BsYXk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJuXyIrdGhpcy5pbnN0
YW5jZUlEKyJfRXJyb3JNZXNzYWdlIik7dGhpcy5fZW1haWxGaWVsZD1kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNlSUQrIl9FbWFpbElu
cHV0Iik7dGhpcy5fZmVlZGJhY2tGaWVsZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicm5fIit0aGlzLmluc3RhbmNlSUQrIl9GZWVkYmFja1RleHRhcmVhIik7aWYo
IXRoaXMuX2ZlZWRiYWNrRmllbGQpCntSaWdodE5vdy5VSS5EZXZlbG9wbWVudEhl
YWRlci5hZGRKYXZhc2NyaXB0RXJyb3IoUmlnaHROb3cuVGV4dC5zcHJpbnRmKFJp
Z2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJTSVRFRkVFREJBQ0syX0RJQUxP
R19NSVNTSU5HX1JFUURfTVNHIiksInJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfRmVl
ZGJhY2tUZXh0YXJlYSIpKTtyZXR1cm47fQpZQUhPTy51dGlsLkV2ZW50LmFkZExp
c3RlbmVyKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX0ZlZWRiYWNrTGluayIsImNs
aWNrIix0aGlzLl9vbkdpdmVGZWVkYmFja0NsaWNrLG51bGwsdGhpcyk7UmlnaHRO
b3cuRXZlbnQuc3Vic2NyaWJlKCJldnRfc2l0ZUZlZWRiYWNrU3VibWl0UmVzcG9u
c2UiLHRoaXMuX29uUmVzcG9uc2VSZWNlaXZlZCx0aGlzKTt9O1JpZ2h0Tm93Lldp
ZGdldC5TaXRlRmVlZGJhY2syLnByb3RvdHlwZT17X29uR2l2ZUZlZWRiYWNrQ2xp
Y2s6ZnVuY3Rpb24oKQp7aWYodGhpcy5kYXRhLmF0dHJzLmZlZWRiYWNrX3BhZ2Vf
dXJsKQp7d2luZG93Lm9wZW4oUmlnaHROb3cuVXJsLmFkZFBhcmFtZXRlcih0aGlz
LmRhdGEuYXR0cnMuZmVlZGJhY2tfcGFnZV91cmwsInNlc3Npb24iLFJpZ2h0Tm93
LlVybC5nZXRTZXNzaW9uKCkpLCIiLCJyZXNpemFibGUsIHNjcm9sbGJhcnMsIHdp
ZHRoPTYzMCwgaGVpZ2h0PTQwMCIpO30KZWxzZQp7dGhpcy5fc2hvd0RpYWxvZygp
O319LF9zaG93RGlhbG9nOmZ1bmN0aW9uKCkKe2lmKCF0aGlzLl9kaWFsb2cpCnt2
YXIgYnV0dG9ucz1be3RleHQ6dGhpcy5kYXRhLmF0dHJzLmxhYmVsX3NlbmRfYnV0
dG9uLGhhbmRsZXI6e2ZuOnRoaXMuX29uU3VibWl0LHNjb3BlOnRoaXN9LGlzRGVm
YXVsdDp0cnVlfSx7dGV4dDp0aGlzLmRhdGEuYXR0cnMubGFiZWxfY2FuY2VsX2J1
dHRvbixoYW5kbGVyOntmbjp0aGlzLl9vbkNhbmNlbCxzY29wZTp0aGlzfSxpc0Rl
ZmF1bHQ6ZmFsc2V9XTt0aGlzLl9kaWFsb2c9UmlnaHROb3cuVUkuRGlhbG9nLmFj
dGlvbkRpYWxvZyh0aGlzLmRhdGEuYXR0cnMubGFiZWxfZGlhbG9nX3RpdGxlLGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX1Np
dGVGZWVkYmFjazJGb3JtIikseyJidXR0b25zIjpidXR0b25zfSk7WUFIT08udXRp
bC5Eb20uYWRkQ2xhc3ModGhpcy5fZGlhbG9nLmlkLCdybl9TaXRlRmVlZGJhY2sy
RGlhbG9nJyk7fQppZih0aGlzLl9lcnJvckRpc3BsYXkpCnt0aGlzLl9lcnJvckRp
c3BsYXkuaW5uZXJIVE1MPSIiO1lBSE9PLnV0aWwuRG9tLnJlbW92ZUNsYXNzKHRo
aXMuX2Vycm9yRGlzcGxheSwncm5fTWVzc2FnZUJveCBybl9FcnJvck1lc3NhZ2Un
KTt9CnRoaXMuX2RpYWxvZy5zaG93KCk7dmFyIGZvY3VzRWxlbWVudDtpZih0aGlz
Ll9lbWFpbEZpZWxkJiZ0aGlzLl9lbWFpbEZpZWxkLnZhbHVlPT09JycpCmZvY3Vz
RWxlbWVudD10aGlzLl9lbWFpbEZpZWxkO2Vsc2UKZm9jdXNFbGVtZW50PXRoaXMu
X2ZlZWRiYWNrRmllbGQ7Zm9jdXNFbGVtZW50LmZvY3VzKCk7dGhpcy5fZGlhbG9n
LmVuYWJsZUJ1dHRvbnMoKTt9LF9vblN1Ym1pdDpmdW5jdGlvbigpCnt0aGlzLl9k
aWFsb2cuZGlzYWJsZUJ1dHRvbnMoKTtpZighdGhpcy5fdmFsaWRhdGVEaWFsb2dE
YXRhKCkpCnt0aGlzLl9kaWFsb2cuZW5hYmxlQnV0dG9ucygpO3JldHVybjt9CnRo
aXMuX3N1Ym1pdEZlZWRiYWNrKCk7fSxfb25DYW5jZWw6ZnVuY3Rpb24oKQp7dGhp
cy5fZGlhbG9nLmRpc2FibGVCdXR0b25zKCk7dGhpcy5fY2xvc2VEaWFsb2codHJ1
ZSk7fSxfdmFsaWRhdGVEaWFsb2dEYXRhOmZ1bmN0aW9uKCkKe1lBSE9PLnV0aWwu
RG9tLnJlbW92ZUNsYXNzKHRoaXMuX2Vycm9yRGlzcGxheSwncm5fTWVzc2FnZUJv
eCBybl9FcnJvck1lc3NhZ2UnKTt0aGlzLl9lcnJvckRpc3BsYXkuaW5uZXJIVE1M
PSIiO3ZhciByZXR1cm5WYWx1ZT10cnVlO2lmKHRoaXMuX2VtYWlsRmllbGQpCnt0
aGlzLl9lbWFpbEZpZWxkLnZhbHVlPVlBSE9PLmxhbmcudHJpbSh0aGlzLl9lbWFp
bEZpZWxkLnZhbHVlKTtpZih0aGlzLl9lbWFpbEZpZWxkLnZhbHVlPT09IiIpCnt0
aGlzLl9hZGRFcnJvck1lc3NhZ2UoUmlnaHROb3cuVGV4dC5zcHJpbnRmKFJpZ2h0
Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJQQ1RfU19JU19SRVFVSVJFRF9NU0ci
KSx0aGlzLmRhdGEuYXR0cnMubGFiZWxfZW1haWxfYWRkcmVzcyksdGhpcy5fZW1h
aWxGaWVsZC5pZCk7cmV0dXJuVmFsdWU9ZmFsc2U7fQplbHNlIGlmKCFSaWdodE5v
dy5UZXh0LmlzVmFsaWRFbWFpbEFkZHJlc3ModGhpcy5fZW1haWxGaWVsZC52YWx1
ZSkpCnt0aGlzLl9hZGRFcnJvck1lc3NhZ2UodGhpcy5kYXRhLmF0dHJzLmxhYmVs
X2VtYWlsX2FkZHJlc3MrJyAnK1JpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdl
KCJGSUVMRF9JU19OT1RfQV9WQUxJRF9FTUFJTF9BRERSRVNTX01TRyIpLHRoaXMu
X2VtYWlsRmllbGQuaWQpO3JldHVyblZhbHVlPWZhbHNlO319CnRoaXMuX2ZlZWRi
YWNrRmllbGQudmFsdWU9WUFIT08ubGFuZy50cmltKHRoaXMuX2ZlZWRiYWNrRmll
bGQudmFsdWUpO2lmKHRoaXMuX2ZlZWRiYWNrRmllbGQudmFsdWU9PT0iIikKe3Ro
aXMuX2FkZEVycm9yTWVzc2FnZShSaWdodE5vdy5UZXh0LnNwcmludGYoUmlnaHRO
b3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIlBDVF9TX0lTX1JFUVVJUkVEX01TRyIp
LHRoaXMuZGF0YS5hdHRycy5sYWJlbF9jb21tZW50X2JveCksdGhpcy5fZmVlZGJh
Y2tGaWVsZC5pZCk7cmV0dXJuVmFsdWU9ZmFsc2U7fQpyZXR1cm4gcmV0dXJuVmFs
dWU7fSxfY2xvc2VEaWFsb2c6ZnVuY3Rpb24oY2FuY2VsbGVkKQp7aWYoIWNhbmNl
bGxlZCkKe3RoaXMuX2ZlZWRiYWNrRmllbGQudmFsdWU9IiI7fQppZih0aGlzLl9l
cnJvckRpc3BsYXkpCnt0aGlzLl9lcnJvckRpc3BsYXkuaW5uZXJIVE1MPSIiO1lB
SE9PLnV0aWwuRG9tLnJlbW92ZUNsYXNzKHRoaXMuX2Vycm9yRGlzcGxheSwncm5f
TWVzc2FnZUJveCBybl9FcnJvck1lc3NhZ2UnKTt9CmlmKHRoaXMuX2RpYWxvZykK
dGhpcy5fZGlhbG9nLmhpZGUoKTt9LF9zdWJtaXRGZWVkYmFjazpmdW5jdGlvbigp
Cnt2YXIgZXZlbnRPYmplY3Q9bmV3IFJpZ2h0Tm93LkV2ZW50LkV2ZW50T2JqZWN0
KCk7ZXZlbnRPYmplY3Qud19pZD10aGlzLmluc3RhbmNlSUQ7ZXZlbnRPYmplY3Qu
ZGF0YT17ImFfaWQiOm51bGwsInJhdGUiOjAsIm1lc3NhZ2UiOnRoaXMuX2ZlZWRi
YWNrRmllbGQudmFsdWV9O2lmKHRoaXMuZGF0YS5qcy5pc1Byb2ZpbGUpCmV2ZW50
T2JqZWN0LmRhdGEuZW1haWw9dGhpcy5kYXRhLmpzLmVtYWlsO2Vsc2UgaWYodGhp
cy5fZW1haWxGaWVsZCkKZXZlbnRPYmplY3QuZGF0YS5lbWFpbD10aGlzLl9lbWFp
bEZpZWxkLnZhbHVlO1JpZ2h0Tm93LkV2ZW50LmZpcmUoImV2dF9zaXRlRmVlZGJh
Y2tSZXF1ZXN0IixldmVudE9iamVjdCk7cmV0dXJuIGZhbHNlO30sX29uUmVzcG9u
c2VSZWNlaXZlZDpmdW5jdGlvbih0eXBlLGFyZykKe2lmKGFyZ1sxXVswXS53X2lk
PT09dGhpcy5pbnN0YW5jZUlEKQp7aWYodHlwZW9mKGFyZ1swXSk9PT0ic3RyaW5n
IikKe1JpZ2h0Tm93LlVJLkRpYWxvZy5tZXNzYWdlRGlhbG9nKGFyZ1swXSx7aWNv
bjoiV0FSTiIsZXhpdENhbGxiYWNrOntmbjp0aGlzLl9lbmFibGVEaWFsb2csc2Nv
cGU6dGhpc319KTt9CmVsc2UKe1JpZ2h0Tm93LlVJLkRpYWxvZy5tZXNzYWdlRGlh
bG9nKHRoaXMuZGF0YS5hdHRycy5sYWJlbF9mZWVkYmFja19jb25maXJtYXRpb24s
e2V4aXRDYWxsYmFjazp7Zm46dGhpcy5fY2xvc2VEaWFsb2csc2NvcGU6dGhpc319
KTt9fX0sX2FkZEVycm9yTWVzc2FnZTpmdW5jdGlvbihtZXNzYWdlLGZvY3VzRWxl
bWVudCkKe2lmKHRoaXMuX2Vycm9yRGlzcGxheSkKe1lBSE9PLnV0aWwuRG9tLmFk
ZENsYXNzKHRoaXMuX2Vycm9yRGlzcGxheSwncm5fTWVzc2FnZUJveCBybl9FcnJv
ck1lc3NhZ2UnKTt2YXIgbmV3TWVzc2FnZT0nPGEgaHJlZj0iamF2YXNjcmlwdDp2
b2lkKDApOyIgb25jbGljaz0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCcnK2Zv
Y3VzRWxlbWVudCsnXCcpLmZvY3VzKCk7IHJldHVybiBmYWxzZTsiPicrbWVzc2Fn
ZSsnPC9hPic7dmFyIG9sZE1lc3NhZ2U9dGhpcy5fZXJyb3JEaXNwbGF5LmlubmVy
SFRNTDtpZihvbGRNZXNzYWdlPT09IiIpCnt0aGlzLl9lcnJvckRpc3BsYXkuaW5u
ZXJIVE1MPW5ld01lc3NhZ2U7fQplbHNlCnt0aGlzLl9lcnJvckRpc3BsYXkuaW5u
ZXJIVE1MPW9sZE1lc3NhZ2UrJzxici8+JytuZXdNZXNzYWdlO30KdGhpcy5fZXJy
b3JEaXNwbGF5LmZpcnN0Q2hpbGQuZm9jdXMoKTt9fX07

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=detail1316468885.js
Content-Type: application/x-javascript; charset=UTF-8; name=detail1316468885.js
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/pages/answers/detail1316468885.js
Content-Transfer-Encoding: Base64

ClJpZ2h0Tm93LldpZGdldC5Tb2NpYWxCb29rbWFya0xpbms9ZnVuY3Rpb24oZGF0
YSxpbnN0YW5jZUlEKXt0aGlzLmRhdGE9ZGF0YTt0aGlzLmluc3RhbmNlSUQ9aW5z
dGFuY2VJRDtZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVyKCJybl8iK3RoaXMu
aW5zdGFuY2VJRCsiX0xpbmsiLCJjbGljayIsdGhpcy5fb25DbGljayxudWxsLHRo
aXMpO307UmlnaHROb3cuV2lkZ2V0LlNvY2lhbEJvb2ttYXJrTGluay5wcm90b3R5
cGU9e19vbkNsaWNrOmZ1bmN0aW9uKGV2ZW50KQp7WUFIT08udXRpbC5FdmVudC5z
dG9wRXZlbnQoZXZlbnQpO2lmKCF0aGlzLl9wYW5lbCkKe3ZhciBwYW5lbE1hcmt1
cD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNlSUQr
Il9QYW5lbCIpO1lBSE9PLnV0aWwuRG9tLnJlbW92ZUNsYXNzKHBhbmVsTWFya3Vw
LCJybl9IaWRkZW4iKTt0aGlzLl9wYW5lbD1uZXcgWUFIT08ud2lkZ2V0LlBhbmVs
KHBhbmVsTWFya3VwLHtjbG9zZTpmYWxzZSx2aXNpYmxlOmZhbHNlLGNvbnN0cmFp
bnRvdmlld3BvcnQ6dHJ1ZX0pO3RoaXMuX3BhbmVsLnNldEhlYWRlcigiIik7dGhp
cy5fcGFuZWwucmVuZGVyKCk7fQplbHNlIGlmKHRoaXMuX3BhbmVsJiZ0aGlzLl9w
YW5lbC5jZmcuZ2V0UHJvcGVydHkoInZpc2libGUiKT09PXRydWUpCnt0aGlzLl9j
bG9zZVBhbmVsKCk7cmV0dXJuIGZhbHNlO30KdGhpcy5fcGFuZWwuc2hvdygpO3Zh
ciBwYW5lbE1hcmt1cD1wYW5lbE1hcmt1cHx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfUGFuZWwiKSxsaW5rcz1ZQUhPTy51
dGlsLkRvbS5nZXRFbGVtZW50c0J5KGZ1bmN0aW9uKCl7cmV0dXJuIHRydWU7fSwi
YSIscGFuZWxNYXJrdXApO2lmKGxpbmtzLmxlbmd0aCkKe2xpbmtzWzBdLmZvY3Vz
KCk7WUFIT08udXRpbC5FdmVudC5hZGRMaXN0ZW5lcihsaW5rc1tsaW5rcy5sZW5n
dGgtMV0sImtleWRvd24iLGZ1bmN0aW9uKGV2ZW50KXtpZihldmVudC5rZXlDb2Rl
JiYhZXZlbnQuc2hpZnRLZXkmJmV2ZW50LmtleUNvZGU9PT1ZQUhPTy51dGlsLktl
eUxpc3RlbmVyLktFWS5UQUIpCnt0aGlzLl9jbG9zZVBhbmVsKCk7aWYoWUFIT08u
ZW52LnVhLmllJiZZQUhPTy5lbnYudWEuaWU8PTcpCmRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX0xpbmsiKS5mb2N1cygpO319
LG51bGwsdGhpcyk7fQp2YXIgcGFuZWxSZWdpb249WUFIT08udXRpbC5Eb20uZ2V0
UmVnaW9uKHBhbmVsTWFya3VwKTtZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVy
KGRvY3VtZW50LCJjbGljayIsZnVuY3Rpb24oZXZ0KQp7dmFyIGNvb3JkaW5hdGVz
PVlBSE9PLnV0aWwuRXZlbnQuZ2V0WFkoZXZ0KTtpZihjb29yZGluYXRlc1swXT09
PTAmJmNvb3JkaW5hdGVzWzFdPT09MClyZXR1cm47Y29vcmRpbmF0ZXM9bmV3IFlB
SE9PLnV0aWwuUG9pbnQoY29vcmRpbmF0ZXNbMF0sY29vcmRpbmF0ZXNbMV0pO2lm
KHBhbmVsUmVnaW9uJiYhcGFuZWxSZWdpb24uY29udGFpbnMoY29vcmRpbmF0ZXMp
KQp7dGhpcy5fY2xvc2VQYW5lbCgpO319LG51bGwsdGhpcyk7cmV0dXJuIGZhbHNl
O30sX2Nsb3NlUGFuZWw6ZnVuY3Rpb24oKQp7WUFIT08udXRpbC5FdmVudC5wdXJn
ZUVsZW1lbnQoZG9jdW1lbnQpO3RoaXMuX3BhbmVsLmhpZGUoKTt9fTsKUmlnaHRO
b3cuV2lkZ2V0LkVtYWlsQW5zd2VyTGluaz1mdW5jdGlvbihkYXRhLGluc3RhbmNl
SUQpCnt0aGlzLmRhdGE9ZGF0YTt0aGlzLmluc3RhbmNlSUQ9aW5zdGFuY2VJRDt0
aGlzLl9kaWFsb2dFbGVtZW50PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdybl8n
K3RoaXMuaW5zdGFuY2VJRCsnX0VtYWlsQW5zd2VyTGlua0Zvcm0nKTt0aGlzLl9y
ZWNpcGllbnRFbWFpbEVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJu
XyIrdGhpcy5pbnN0YW5jZUlEKyJfSW5wdXRSZWNpcGllbnRFbWFpbCIpO3RoaXMu
X3NlbmRlckVtYWlsRWxlbWVudD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm5f
Iit0aGlzLmluc3RhbmNlSUQrIl9JbnB1dFNlbmRlckVtYWlsIik7dGhpcy5fc2Vu
ZGVyTmFtZUVsZW1lbnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJuXyIrdGhp
cy5pbnN0YW5jZUlEKyJfSW5wdXRTZW5kZXJOYW1lIik7dGhpcy5fZXJyb3JEaXNw
bGF5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJybl8iK3RoaXMuaW5zdGFuY2VJ
RCsiX0Vycm9yTWVzc2FnZSIpO2lmKHRoaXMuX2RpYWxvZ0VsZW1lbnQpCntZQUhP
Ty51dGlsLkV2ZW50LmFkZExpc3RlbmVyKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsi
X0xpbmsiLCJjbGljayIsdGhpcy5fb25FbWFpbExpbmtDbGljayxudWxsLHRoaXMp
O30KUmlnaHROb3cuRXZlbnQuc3Vic2NyaWJlKCJldnRfZW1haWxMaW5rU3VibWl0
UmVzcG9uc2UiLHRoaXMuX29uUmVzcG9uc2VSZWNlaXZlZCx0aGlzKTt9O1JpZ2h0
Tm93LldpZGdldC5FbWFpbEFuc3dlckxpbmsucHJvdG90eXBlPXtfb25FbWFpbExp
bmtDbGljazpmdW5jdGlvbih0eXBlLGFyZykKe2lmKCEodGhpcy5fZGlhbG9nKSkK
e3ZhciBidXR0b25zPVt7dGV4dDp0aGlzLmRhdGEuYXR0cnMubGFiZWxfc2VuZF9i
dXR0b24saGFuZGxlcjp7Zm46dGhpcy5fc3VibWl0Q2xpY2tlZCxzY29wZTp0aGlz
fSxpc0RlZmF1bHQ6dHJ1ZX0se3RleHQ6dGhpcy5kYXRhLmF0dHJzLmxhYmVsX2Nh
bmNlbF9idXR0b24saGFuZGxlcjp7Zm46dGhpcy5fY2xvc2VEaWFsb2csc2NvcGU6
dGhpc30saXNEZWZhdWx0OmZhbHNlfV07dGhpcy5fZGlhbG9nPVJpZ2h0Tm93LlVJ
LkRpYWxvZy5hY3Rpb25EaWFsb2codGhpcy5kYXRhLmF0dHJzLmxhYmVsX2RpYWxv
Z190aXRsZSx0aGlzLl9kaWFsb2dFbGVtZW50LHsiYnV0dG9ucyI6YnV0dG9ucywi
d2lkdGgiOiczMDBweCd9KTtZQUhPTy51dGlsLkRvbS5yZW1vdmVDbGFzcyh0aGlz
Ll9kaWFsb2dFbGVtZW50LCJybl9IaWRkZW4iKTtZQUhPTy51dGlsLkRvbS5hZGRD
bGFzcyh0aGlzLl9kaWFsb2cuaWQsJ3JuX0VtYWlsTGlua0RpYWxvZycpO30KaWYo
dGhpcy5fZXJyb3JEaXNwbGF5KQp7dGhpcy5fZXJyb3JEaXNwbGF5LmlubmVySFRN
TD0iIjtZQUhPTy51dGlsLkRvbS5yZW1vdmVDbGFzcyh0aGlzLl9lcnJvckRpc3Bs
YXksJ3JuX01lc3NhZ2VCb3ggcm5fRXJyb3JNZXNzYWdlJyk7fQp0aGlzLl9kaWFs
b2cuc2hvdygpO2lmKHRoaXMuX3JlY2lwaWVudEVtYWlsRWxlbWVudCkKdGhpcy5f
cmVjaXBpZW50RW1haWxFbGVtZW50LmZvY3VzKCk7dGhpcy5fZGlhbG9nLmVuYWJs
ZUJ1dHRvbnMoKTt9LF9jbG9zZURpYWxvZzpmdW5jdGlvbih0eXBlLGFyZykKe2lm
KHRoaXMuX2Vycm9yRGlzcGxheSkKe3RoaXMuX2Vycm9yRGlzcGxheS5pbm5lckhU
TUw9IiI7WUFIT08udXRpbC5Eb20ucmVtb3ZlQ2xhc3ModGhpcy5fZXJyb3JEaXNw
bGF5LCdybl9NZXNzYWdlQm94IHJuX0Vycm9yTWVzc2FnZScpO30KdGhpcy5fZGlh
bG9nLmVuYWJsZVNlY29uZEJ1dHRvbigpO3RoaXMuX2RpYWxvZy5oaWRlKCk7fSxf
c3VibWl0Q2xpY2tlZDpmdW5jdGlvbigpCnt0aGlzLl9kaWFsb2cuZGlzYWJsZUJ1
dHRvbnMoKTtpZih0aGlzLl92YWxpZGF0ZUZvcm1EYXRhKCkpCnt0aGlzLl9zdWJt
aXRSZXF1ZXN0KCk7fQplbHNlCnt0aGlzLl9kaWFsb2cuZW5hYmxlQnV0dG9ucygp
O319LF92YWxpZGF0ZUZvcm1EYXRhOmZ1bmN0aW9uKCkKe3ZhciByZXR1cm5WYWx1
ZT10cnVlO2lmKHRoaXMuX2Vycm9yRGlzcGxheSkKe3RoaXMuX2Vycm9yRGlzcGxh
eS5pbm5lckhUTUw9IiI7WUFIT08udXRpbC5Eb20ucmVtb3ZlQ2xhc3ModGhpcy5f
ZXJyb3JEaXNwbGF5LCdybl9NZXNzYWdlQm94IHJuX0Vycm9yTWVzc2FnZScpO30K
aWYoIXRoaXMuX3ZhbGlkYXRlRW1haWxBZGRyZXNzKHRoaXMuX3JlY2lwaWVudEVt
YWlsRWxlbWVudCx0aGlzLmRhdGEuYXR0cnMubGFiZWxfdG8pKQp7cmV0dXJuVmFs
dWU9ZmFsc2U7fQppZih0aGlzLl9zZW5kZXJFbWFpbEVsZW1lbnQmJiF0aGlzLl92
YWxpZGF0ZUVtYWlsQWRkcmVzcyh0aGlzLl9zZW5kZXJFbWFpbEVsZW1lbnQsdGhp
cy5kYXRhLmF0dHJzLmxhYmVsX3NlbmRlcl9lbWFpbCkpCntyZXR1cm5WYWx1ZT1m
YWxzZTt9CmlmKHRoaXMuX3NlbmRlck5hbWVFbGVtZW50KQp7dGhpcy5fc2VuZGVy
TmFtZUVsZW1lbnQudmFsdWU9WUFIT08ubGFuZy50cmltKHRoaXMuX3NlbmRlck5h
bWVFbGVtZW50LnZhbHVlKTtpZih0aGlzLl9zZW5kZXJOYW1lRWxlbWVudC52YWx1
ZSE9PSIiKQp7aWYodGhpcy5fc2VuZGVyTmFtZUVsZW1lbnQudmFsdWUuaW5kZXhP
ZigiPCIpPi0xfHx0aGlzLl9zZW5kZXJOYW1lRWxlbWVudC52YWx1ZS5pbmRleE9m
KCI+Iik+LTEpCnt0aGlzLl9hZGRFcnJvck1lc3NhZ2UoUmlnaHROb3cuVGV4dC5z
cHJpbnRmKFJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJQQ1RfU19DT05U
QUlOX1RIQU5fTVNHIiksdGhpcy5kYXRhLmF0dHJzLmxhYmVsX3NlbmRlcl9uYW1l
KSx0aGlzLl9zZW5kZXJOYW1lRWxlbWVudC5pZCk7cmV0dXJuVmFsdWU9ZmFsc2U7
fQppZih0aGlzLl9zZW5kZXJOYW1lRWxlbWVudC52YWx1ZS5pbmRleE9mKCInIik+
LTF8fHRoaXMuX3NlbmRlck5hbWVFbGVtZW50LnZhbHVlLmluZGV4T2YoJyInKT4t
MSkKe3RoaXMuX2FkZEVycm9yTWVzc2FnZShSaWdodE5vdy5UZXh0LnNwcmludGYo
UmlnaHROb3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIlBDVF9TX01VU1RfTk9UX0NP
TlRBSU5fUVVPVEVTX01TRyIpLHRoaXMuZGF0YS5hdHRycy5sYWJlbF9zZW5kZXJf
bmFtZSksdGhpcy5fc2VuZGVyTmFtZUVsZW1lbnQuaWQpO3JldHVyblZhbHVlPWZh
bHNlO30KaWYodGhpcy5fc2VuZGVyTmFtZUVsZW1lbnQudmFsdWUuaW5kZXhPZigi
JiIpPi0xKQp7dGhpcy5fYWRkRXJyb3JNZXNzYWdlKFJpZ2h0Tm93LlRleHQuc3By
aW50ZihSaWdodE5vdy5JbnRlcmZhY2UuZ2V0TWVzc2FnZSgiUENUX1NfTVVTVF9O
T1RfQ09OVEFJTl9NU0ciKSx0aGlzLmRhdGEuYXR0cnMubGFiZWxfc2VuZGVyX25h
bWUpLHRoaXMuX3NlbmRlck5hbWVFbGVtZW50LmlkKTtyZXR1cm5WYWx1ZT1mYWxz
ZTt9fQplbHNlCnt0aGlzLl9hZGRFcnJvck1lc3NhZ2UoUmlnaHROb3cuVGV4dC5z
cHJpbnRmKFJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJQQ1RfU19JU19S
RVFVSVJFRF9NU0ciKSx0aGlzLmRhdGEuYXR0cnMubGFiZWxfc2VuZGVyX25hbWUp
LHRoaXMuX3NlbmRlck5hbWVFbGVtZW50LmlkKTtyZXR1cm5WYWx1ZT1mYWxzZTt9
fQpyZXR1cm4gcmV0dXJuVmFsdWU7fSxfdmFsaWRhdGVFbWFpbEFkZHJlc3M6ZnVu
Y3Rpb24oZW1haWxGaWVsZCxsYWJlbCkKe2lmKGVtYWlsRmllbGQpCntlbWFpbEZp
ZWxkLnZhbHVlPVlBSE9PLmxhbmcudHJpbShlbWFpbEZpZWxkLnZhbHVlKTt2YXIg
ZW1haWxGaWVsZFZhbHVlPWVtYWlsRmllbGQudmFsdWU7aWYoZW1haWxGaWVsZFZh
bHVlPT09IiIpCnt0aGlzLl9hZGRFcnJvck1lc3NhZ2UoUmlnaHROb3cuVGV4dC5z
cHJpbnRmKFJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJQQ1RfU19JU19S
RVFVSVJFRF9NU0ciKSxsYWJlbCksZW1haWxGaWVsZC5pZCk7cmV0dXJuIGZhbHNl
O30KaWYoZW1haWxGaWVsZFZhbHVlLmluZGV4T2YoIjsiKT49MHx8ZW1haWxGaWVs
ZFZhbHVlLmluZGV4T2YoIiwiKT49MHx8ZW1haWxGaWVsZFZhbHVlLmluZGV4T2Yo
IiAiKT49MCkKe3RoaXMuX2FkZEVycm9yTWVzc2FnZShSaWdodE5vdy5JbnRlcmZh
Y2UuZ2V0TWVzc2FnZSgiUExFQVNFX0VOVEVSX1NJTkdMRV9FTUFJTF9BRERSRVNT
X01TRyIpLGVtYWlsRmllbGQuaWQpO3JldHVybiBmYWxzZTt9CmlmKCFSaWdodE5v
dy5UZXh0LmlzVmFsaWRFbWFpbEFkZHJlc3MoZW1haWxGaWVsZFZhbHVlKSkKe3Ro
aXMuX2FkZEVycm9yTWVzc2FnZShSaWdodE5vdy5UZXh0LnNwcmludGYoUmlnaHRO
b3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIlBDVF9TX0lTX0lOVkFMSURfTVNHIiks
bGFiZWwpLGVtYWlsRmllbGQuaWQpO3JldHVybiBmYWxzZTt9CmlmKGVtYWlsRmll
bGRWYWx1ZS5sZW5ndGg+ODApCnt0aGlzLl9hZGRFcnJvck1lc3NhZ2UoUmlnaHRO
b3cuVGV4dC5zcHJpbnRmKFJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJQ
Q1RfU19JU19UT09fTE9OR19NU0ciKSxsYWJlbCksZW1haWxGaWVsZC5pZCk7cmV0
dXJuIGZhbHNlO30KcmV0dXJuIHRydWU7fQpyZXR1cm4gZmFsc2U7fSxfc3VibWl0
UmVxdWVzdDpmdW5jdGlvbigpCnt2YXIgZXZlbnRPYmplY3Q9bmV3IFJpZ2h0Tm93
LkV2ZW50LkV2ZW50T2JqZWN0KCk7ZXZlbnRPYmplY3Qud19pZD10aGlzLmluc3Rh
bmNlSUQ7ZXZlbnRPYmplY3QuZGF0YT17ImVtYWlsQW5zd2VyVG9rZW4iOnRoaXMu
ZGF0YS5qcy5lbWFpbEFuc3dlclRva2VuLCJ0byI6dGhpcy5fcmVjaXBpZW50RW1h
aWxFbGVtZW50LnZhbHVlLCJhX2lkIjp0aGlzLmRhdGEuanMuYW5zd2VySUR9O2lm
KHRoaXMuZGF0YS5qcy5pc1Byb2ZpbGUpCntldmVudE9iamVjdC5kYXRhLmZyb209
dGhpcy5kYXRhLmpzLnNlbmRlckVtYWlsO2V2ZW50T2JqZWN0LmRhdGEubmFtZT10
aGlzLmRhdGEuanMuc2VuZGVyTmFtZTt9CmVsc2UKe2lmKHRoaXMuX3NlbmRlckVt
YWlsRWxlbWVudCkKe2V2ZW50T2JqZWN0LmRhdGEuZnJvbT10aGlzLl9zZW5kZXJF
bWFpbEVsZW1lbnQudmFsdWU7fQppZih0aGlzLl9zZW5kZXJOYW1lRWxlbWVudCkK
e2V2ZW50T2JqZWN0LmRhdGEubmFtZT10aGlzLl9zZW5kZXJOYW1lRWxlbWVudC52
YWx1ZTt9fQpSaWdodE5vdy5FdmVudC5maXJlKCJldnRfZW1haWxMaW5rUmVxdWVz
dCIsZXZlbnRPYmplY3QpO3RoaXMuX2Nsb3NlRGlhbG9nKCk7fSxfb25SZXNwb25z
ZVJlY2VpdmVkOmZ1bmN0aW9uKHR5cGUsYXJnKQp7aWYoYXJnWzFdWzBdLndfaWQh
PT10aGlzLmluc3RhbmNlSUQpCntyZXR1cm4gZmFsc2U7fQp2YXIgbWVzc2FnZVN0
cmluZz0oYXJnWzBdJiZhcmdbMF0hPT10cnVlKT9hcmdbMF06dGhpcy5kYXRhLmF0
dHJzLmxhYmVsX2VtYWlsX3NlbnQ7UmlnaHROb3cuVUkuRGlhbG9nLm1lc3NhZ2VE
aWFsb2cobWVzc2FnZVN0cmluZyk7cmV0dXJuIGZhbHNlO30sX2FkZEVycm9yTWVz
c2FnZTpmdW5jdGlvbihtZXNzYWdlLGZvY3VzRWxlbWVudCl7aWYodGhpcy5fZXJy
b3JEaXNwbGF5KXtZQUhPTy51dGlsLkRvbS5hZGRDbGFzcyh0aGlzLl9lcnJvckRp
c3BsYXksJ3JuX01lc3NhZ2VCb3ggcm5fRXJyb3JNZXNzYWdlJyk7dmFyIG5ld01l
c3NhZ2U9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIG9uY2xpY2s9ImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwnJytmb2N1c0VsZW1lbnQrJ1wnKS5mb2N1
cygpOyByZXR1cm4gZmFsc2U7Ij4nK21lc3NhZ2UrJzwvYT4nO3ZhciBvbGRNZXNz
YWdlPXRoaXMuX2Vycm9yRGlzcGxheS5pbm5lckhUTUw7aWYob2xkTWVzc2FnZT09
PSIiKQp0aGlzLl9lcnJvckRpc3BsYXkuaW5uZXJIVE1MPW5ld01lc3NhZ2U7ZWxz
ZQp0aGlzLl9lcnJvckRpc3BsYXkuaW5uZXJIVE1MPW9sZE1lc3NhZ2UrJzxici8+
JytuZXdNZXNzYWdlO3RoaXMuX2Vycm9yRGlzcGxheS5maXJzdENoaWxkLmZvY3Vz
KCk7fX19OwpSaWdodE5vdy5XaWRnZXQuQW5zd2VyTm90aWZpY2F0aW9uSWNvbjM9
ZnVuY3Rpb24oZGF0YSxpbnN0YW5jZUlEKQp7dGhpcy5kYXRhPWRhdGE7dGhpcy5p
bnN0YW5jZUlEPWluc3RhbmNlSUQ7aWYodGhpcy5kYXRhLmpzLnB0YSkKcmV0dXJu
IGZhbHNlO3RoaXMuX3N1Ym1pdHRpbmc9ZmFsc2U7aWYodGhpcy5kYXRhLmpzLmxv
Z2dlZEluKQpZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVyKCJybl8iK3RoaXMu
aW5zdGFuY2VJRCsiX1RyaWdnZXIiLCJjbGljayIsdGhpcy5fb25UcmlnZ2VyQ2xp
Y2ssbnVsbCx0aGlzKTtSaWdodE5vdy5FdmVudC5zdWJzY3JpYmUoImV2dF9hbnN3
ZXJOb3RpZmljYXRpb25SZXNwb25zZSIsdGhpcy5fb25Ob3RpZmljYXRpb25SZXNw
b25zZSx0aGlzKTtpZih0aGlzLmRhdGEuanMuYXV0b09wZW49PTEpCnRoaXMuX29u
VHJpZ2dlckNsaWNrKCk7fTtSaWdodE5vdy5XaWRnZXQuQW5zd2VyTm90aWZpY2F0
aW9uSWNvbjMucHJvdG90eXBlPXtfb25UcmlnZ2VyQ2xpY2s6ZnVuY3Rpb24odHlw
ZSxhcmdzKQp7aWYoIXRoaXMuX3N1Ym1pdHRpbmcpCnt0aGlzLl9zdWJtaXR0aW5n
PXRydWU7dGhpcy5fY3JlYXRlTm90aWZpY2F0aW9uKHRoaXMuZGF0YS5qcy5zdGF0
dXNOZXdOb3RpZmljYXRpb24pO30KcmV0dXJuIGZhbHNlO30sX2NyZWF0ZU5vdGlm
aWNhdGlvbjpmdW5jdGlvbihzdGF0dXNDb2RlKQp7dmFyIGVvPW5ldyBSaWdodE5v
dy5FdmVudC5FdmVudE9iamVjdCgpO2VvLndfaWQ9dGhpcy5pbnN0YW5jZUlEO2Vv
LmRhdGEuYW5zd2VySUQ9dGhpcy5kYXRhLmpzLmFuc3dlcklEO2VvLmRhdGEuc3Rh
dHVzPXN0YXR1c0NvZGU7UmlnaHROb3cuRXZlbnQuZmlyZSgiZXZ0X2Fuc3dlck5v
dGlmaWNhdGlvblVwZGF0ZVJlcXVlc3QiLGVvKTt9LF9vbk5vdGlmaWNhdGlvblJl
c3BvbnNlOmZ1bmN0aW9uKHR5cGUscmVzdWx0KQp7dmFyIHN0YXR1cz1yZXN1bHRb
MF0uc3RhdHVzLHRpdGxlLGJvZHk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7aWYoc3RhdHVzPDApCnt0aXRsZT1SaWdodE5vdy5JbnRlcmZhY2UuZ2V0TWVz
c2FnZSgiTk9USUZZX1JFUVVFU1RfRkFJTEVEX0hERyIpO2JvZHkuaW5uZXJIVE1M
PVJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJOT1RJRllfU1VCTUlUX0ZB
SUxFRF9NU0ciKTt9CmVsc2UKe3N3aXRjaChzdGF0dXMpCntjYXNlIHRoaXMuZGF0
YS5qcy5zdGF0dXNBbHJlYWR5UmVnaXN0ZXJlZDp0aGlzLl9jcmVhdGVOb3RpZmlj
YXRpb24odGhpcy5kYXRhLmpzLnN0YXR1c0FscmVhZHlSZWdpc3RlcmVkKTtyZXR1
cm4gZmFsc2U7Y2FzZSB0aGlzLmRhdGEuanMuc3RhdHVzQ3JlYXRlU3VjY2VlZGVk
OnRpdGxlPVJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJOT1RJRllfUkVR
VUVTVF9TVUNDRVNTX0hERyIpO2JvZHkuaW5uZXJIVE1MPVJpZ2h0Tm93LkludGVy
ZmFjZS5nZXRNZXNzYWdlKCJOT1RJRllfU1VCTUlUX1NVQ0NFU1NfTVNHIik7YnJl
YWs7Y2FzZSB0aGlzLmRhdGEuanMuc3RhdHVzUmVuZXdhbFN1Y2NlZGVkOnRpdGxl
PVJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJOT1RJRllfUkVRVUVTVF9S
RU5FV0FMX0hERyIpO2JvZHkuaW5uZXJIVE1MPVJpZ2h0Tm93LkludGVyZmFjZS5n
ZXRNZXNzYWdlKCJOT1RJRllfUkVORVdBTF9TVUNDRVNTX01TRyIpO2JyZWFrO2Nh
c2UgdGhpcy5kYXRhLmpzLnN0YXR1c05vUmVuZXdhbDp0aXRsZT1SaWdodE5vdy5J
bnRlcmZhY2UuZ2V0TWVzc2FnZSgiWU9VUl9BTlNXRVJfTk9USUZJQ0FUSU9OX0xC
TCIpO2JvZHkuaW5uZXJIVE1MPVJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdl
KCJZT1VfQVJFX0FMUkVBRFlfTk9USUZJRURfQU5TV0VSX01TRyIpO2JyZWFrO30K
Ym9keS5pbm5lckhUTUwrPSc8YnIvPjxici8+PGEgaHJlZj0iJyt0aGlzLmRhdGEu
YXR0cnMubm90aWZpY2F0aW9uc191cmwrJyI+Jyt0aGlzLmRhdGEuYXR0cnMubGFi
ZWxfbm90aWZpY2F0aW9uX2xpbmsrIjwvYT4iO30KdmFyIGNvbmZpcm1EaWFsb2c9
UmlnaHROb3cuVUkuRGlhbG9nLmFjdGlvbkRpYWxvZyh0aXRsZSxib2R5LHsid2lk
dGgiOiczMDBweCcsImhpZGVPbkVudGVyS2V5UHJlc3MiOnRydWV9KTtjb25maXJt
RGlhbG9nLnNob3coKTt0aGlzLl9zdWJtaXR0aW5nPWZhbHNlO3JldHVybiBmYWxz
ZTt9fTsKUmlnaHROb3cuV2lkZ2V0LkFuc3dlckZlZWRiYWNrMj1mdW5jdGlvbihk
YXRhLGluc3RhbmNlSUQpCnt0aGlzLmRhdGE9ZGF0YTt0aGlzLmluc3RhbmNlSUQ9
aW5zdGFuY2VJRDt0aGlzLl9yYXRlPTA7dGhpcy5fZW1haWxGaWVsZD1kb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNlSUQrIl9FbWFpbElu
cHV0Iik7dGhpcy5fZXJyb3JEaXNwbGF5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX0Vycm9yTWVzc2FnZSIpO3RoaXMuX2Zl
ZWRiYWNrRmllbGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJuXyIrdGhpcy5p
bnN0YW5jZUlEKyJfRmVlZGJhY2tUZXh0YXJlYSIpO2lmKCF0aGlzLl9mZWVkYmFj
a0ZpZWxkKQp7UmlnaHROb3cuVUkuRGV2ZWxvcG1lbnRIZWFkZXIuYWRkSmF2YXNj
cmlwdEVycm9yKFJpZ2h0Tm93LlRleHQuc3ByaW50ZihSaWdodE5vdy5JbnRlcmZh
Y2UuZ2V0TWVzc2FnZSgiQU5TV0VSRkVFREJBQ0syX0RJQUxPR19NSVNTSU5HX1JF
UURfTVNHIiksInJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfRmVlZGJhY2tUZXh0YXJl
YSIpKTtyZXR1cm47fQpSaWdodE5vdy5FdmVudC5zdWJzY3JpYmUoImV2dF9hbnN3
ZXJGZWVkYmFja1N1Ym1pdFJlc3BvbnNlIix0aGlzLl9vblJlc3BvbnNlUmVjZWl2
ZWQsdGhpcyk7aWYodGhpcy5kYXRhLmpzLmJ1dHRvblZpZXcpCnt2YXIgbm9CdXR0
b249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJuXyIrdGhpcy5pbnN0YW5jZUlE
KyJfUmF0aW5nTm9CdXR0b24iKSx5ZXNCdXR0b249ZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfUmF0aW5nWWVzQnV0dG9uIik7
WUFIT08udXRpbC5FdmVudC5hZGRMaXN0ZW5lcihub0J1dHRvbiwiY2xpY2siLHRo
aXMuX29uQ2xpY2ssMSx0aGlzKTtZQUhPTy51dGlsLkV2ZW50LmFkZExpc3RlbmVy
KHllc0J1dHRvbiwiY2xpY2siLHRoaXMuX29uQ2xpY2ssMix0aGlzKTtZQUhPTy51
dGlsLkV2ZW50LmFkZExpc3RlbmVyKFtub0J1dHRvbix5ZXNCdXR0b25dLCJtb3Vz
ZW92ZXIiLGZ1bmN0aW9uKCl7dGhpcy5fd2FzTW91c2U9dHJ1ZTt9LG51bGwsdGhp
cyk7WUFIT08udXRpbC5FdmVudC5hZGRMaXN0ZW5lcihbbm9CdXR0b24seWVzQnV0
dG9uXSwibW91c2VvdXQiLGZ1bmN0aW9uKCl7dGhpcy5fd2FzTW91c2U9ZmFsc2U7
fSxudWxsLHRoaXMpO30KZWxzZQp7Zm9yKHZhciBpPTA7aTw9dGhpcy5kYXRhLmF0
dHJzLm9wdGlvbnNfY291bnQ7KytpKQp7WUFIT08udXRpbC5FdmVudC5hZGRMaXN0
ZW5lcigicm5fIit0aGlzLmluc3RhbmNlSUQrIl9SYXRpbmdDZWxsXyIraSwibW91
c2VvdmVyIix0aGlzLl9vbkNlbGxPdmVyLGksdGhpcyk7WUFIT08udXRpbC5FdmVu
dC5hZGRMaXN0ZW5lcigicm5fIit0aGlzLmluc3RhbmNlSUQrIl9SYXRpbmdDZWxs
XyIraSwiZm9jdXMiLHRoaXMuX29uQ2VsbE92ZXIsaSx0aGlzKTtZQUhPTy51dGls
LkV2ZW50LmFkZExpc3RlbmVyKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX1JhdGlu
Z0NlbGxfIitpLCJtb3VzZW91dCIsdGhpcy5fb25DZWxsT3V0LGksdGhpcyk7WUFI
T08udXRpbC5FdmVudC5hZGRMaXN0ZW5lcigicm5fIit0aGlzLmluc3RhbmNlSUQr
Il9SYXRpbmdDZWxsXyIraSwiYmx1ciIsdGhpcy5fb25DZWxsT3V0LGksdGhpcyk7
WUFIT08udXRpbC5FdmVudC5hZGRMaXN0ZW5lcigicm5fIit0aGlzLmluc3RhbmNl
SUQrIl9SYXRpbmdDZWxsXyIraSwiY2xpY2siLHRoaXMuX29uQ2xpY2ssaSx0aGlz
KTt9fX07UmlnaHROb3cuV2lkZ2V0LkFuc3dlckZlZWRiYWNrMi5wcm90b3R5cGU9
e19vbkNsaWNrOmZ1bmN0aW9uKHR5cGUsYXJncykKe2lmKHRoaXMuZGF0YS5qcy5i
dXR0b25WaWV3KQp7dmFyIHJhdGluZ0J1dHRvbnM9ZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfUmF0aW5nQnV0dG9ucyIpO2lm
KHJhdGluZ0J1dHRvbnMpCllBSE9PLnV0aWwuRXZlbnQucHVyZ2VFbGVtZW50KHJh
dGluZ0J1dHRvbnMsdHJ1ZSk7fQplbHNlCnt0aGlzLl9vbkNlbGxPdmVyKDAsYXJn
cyk7WUFIT08udXRpbC5FdmVudC5wcmV2ZW50RGVmYXVsdCh0eXBlKTt2YXIgcmF0
ZU1ldGVyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJybl8iK3RoaXMuaW5zdGFu
Y2VJRCsiX1JhdGluZ01ldGVyIik7aWYocmF0ZU1ldGVyKQpZQUhPTy51dGlsLkV2
ZW50LnB1cmdlRWxlbWVudChyYXRlTWV0ZXIsdHJ1ZSk7Zm9yKHZhciBjZWxsLGk9
MDtpPD10aGlzLmRhdGEuYXR0cnMub3B0aW9uc19jb3VudDsrK2kpCntjZWxsPWRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJybl8iK3RoaXMuaW5zdGFuY2VJRCsiX1Jh
dGluZ0NlbGxfIitpKTtpZihjZWxsKQp7Zm9yKHZhciBqPTA7ajxjZWxsLmNoaWxk
cmVuLmxlbmd0aDtqKyspCntpZihjZWxsLmNoaWxkcmVuW2pdLnRhZ05hbWUudG9M
b3dlckNhc2UoKT09PSJzcGFuIiYmWUFIT08udXRpbC5Eb20uaGFzQ2xhc3MoY2Vs
bC5jaGlsZHJlbltqXSwicm5fU2NyZWVuUmVhZGVyT25seSIpKQpjZWxsLmNoaWxk
cmVuWzBdLmlubmVySFRNTD1SaWdodE5vdy5UZXh0LnNwcmludGYoUmlnaHROb3cu
SW50ZXJmYWNlLmdldE1lc3NhZ2UoIlBDVF9EX09GX1BDVF9EX1NFTEVDVEVEX0xC
TCIpLGFyZ3MsdGhpcy5kYXRhLmF0dHJzLm9wdGlvbnNfY291bnQpO319fX0KdGhp
cy5fcmF0ZT1hcmdzO3RoaXMuX3N1Ym1pdEFuc3dlclJhdGluZygpO2lmKHRoaXMu
X3JhdGU8PXRoaXMuZGF0YS5hdHRycy5kaWFsb2dfdGhyZXNob2xkKQp7aWYodGhp
cy5kYXRhLmF0dHJzLmZlZWRiYWNrX3BhZ2VfdXJsKQp7dmFyIHBhZ2VTdHJpbmc9
dGhpcy5kYXRhLmF0dHJzLmZlZWRiYWNrX3BhZ2VfdXJsO3BhZ2VTdHJpbmc9Umln
aHROb3cuVXJsLmFkZFBhcmFtZXRlcihwYWdlU3RyaW5nLCJhX2lkIix0aGlzLmRh
dGEuanMuYW5zd2VySUQpO3BhZ2VTdHJpbmc9UmlnaHROb3cuVXJsLmFkZFBhcmFt
ZXRlcihwYWdlU3RyaW5nLCJzZXNzaW9uIixSaWdodE5vdy5VcmwuZ2V0U2Vzc2lv
bigpKTt3aW5kb3cub3BlbihwYWdlU3RyaW5nLCcnLCJyZXNpemFibGUsIHNjcm9s
bGJhcnMsIHdpZHRoPTYzMCwgaGVpZ2h0PTQwMCIpO30KZWxzZQp7dGhpcy5fc2hv
d0RpYWxvZygpO319fSxfc2hvd0RpYWxvZzpmdW5jdGlvbigpCntpZighdGhpcy5f
ZGlhbG9nKQp7dmFyIGJ1dHRvbnM9W3t0ZXh0OnRoaXMuZGF0YS5hdHRycy5sYWJl
bF9zZW5kX2J1dHRvbixoYW5kbGVyOntmbjp0aGlzLl9vblN1Ym1pdCxzY29wZTp0
aGlzfSxpc0RlZmF1bHQ6dHJ1ZX0se3RleHQ6dGhpcy5kYXRhLmF0dHJzLmxhYmVs
X2NhbmNlbF9idXR0b24saGFuZGxlcjp7Zm46dGhpcy5fb25DYW5jZWwsc2NvcGU6
dGhpc30saXNEZWZhdWx0OmZhbHNlfV0sZGlhbG9nRm9ybT1kb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicm5fIit0aGlzLmluc3RhbmNlSUQrIl9BbnN3ZXJGZWVkYmFj
azJGb3JtIik7dGhpcy5fZGlhbG9nPVJpZ2h0Tm93LlVJLkRpYWxvZy5hY3Rpb25E
aWFsb2codGhpcy5kYXRhLmF0dHJzLmxhYmVsX2RpYWxvZ190aXRsZSxkaWFsb2dG
b3JtLHsiYnV0dG9ucyI6YnV0dG9uc30pO1lBSE9PLnV0aWwuRG9tLnJlbW92ZUNs
YXNzKGRpYWxvZ0Zvcm0sInJuX0hpZGRlbiIpO1lBSE9PLnV0aWwuRG9tLmFkZENs
YXNzKHRoaXMuX2RpYWxvZy5pZCwncm5fQW5zd2VyRmVlZGJhY2syRGlhbG9nJyk7
fQppZih0aGlzLl9lcnJvckRpc3BsYXkpCnt0aGlzLl9lcnJvckRpc3BsYXkuaW5u
ZXJIVE1MPSIiO1lBSE9PLnV0aWwuRG9tLnJlbW92ZUNsYXNzKHRoaXMuX2Vycm9y
RGlzcGxheSwncm5fTWVzc2FnZUJveCBybl9FcnJvck1lc3NhZ2UnKTt9CnRoaXMu
X2RpYWxvZy5zaG93KCk7dmFyIGZvY3VzRWxlbWVudDtpZih0aGlzLl9lbWFpbEZp
ZWxkJiZ0aGlzLl9lbWFpbEZpZWxkLnZhbHVlPT09JycpCmZvY3VzRWxlbWVudD10
aGlzLl9lbWFpbEZpZWxkO2Vsc2UKZm9jdXNFbGVtZW50PXRoaXMuX2ZlZWRiYWNr
RmllbGQ7Zm9jdXNFbGVtZW50LmZvY3VzKCk7dGhpcy5fZGlhbG9nLmVuYWJsZUJ1
dHRvbnMoKTt9LF9vblN1Ym1pdDpmdW5jdGlvbigpCnt0aGlzLl9kaWFsb2cuZGlz
YWJsZUJ1dHRvbnMoKTtpZighdGhpcy5fdmFsaWRhdGVEaWFsb2dEYXRhKCkpCnt0
aGlzLl9kaWFsb2cuZW5hYmxlQnV0dG9ucygpO3JldHVybjt9CnRoaXMuX2luY2lk
ZW50Q3JlYXRlRmxhZz10cnVlO3RoaXMuX3N1Ym1pdEZlZWRiYWNrKCk7fSxfb25D
YW5jZWw6ZnVuY3Rpb24oKQp7dGhpcy5fZGlhbG9nLmRpc2FibGVCdXR0b25zKCk7
dGhpcy5fY2xvc2VEaWFsb2codHJ1ZSk7fSxfdmFsaWRhdGVEaWFsb2dEYXRhOmZ1
bmN0aW9uKCkKe1lBSE9PLnV0aWwuRG9tLnJlbW92ZUNsYXNzKHRoaXMuX2Vycm9y
RGlzcGxheSwncm5fTWVzc2FnZUJveCBybl9FcnJvck1lc3NhZ2UnKTt0aGlzLl9l
cnJvckRpc3BsYXkuaW5uZXJIVE1MPSIiO3ZhciByZXR1cm5WYWx1ZT10cnVlO3Jl
dHVybiByZXR1cm5WYWx1ZTt9LF9jbG9zZURpYWxvZzpmdW5jdGlvbihjYW5jZWxs
ZWQpCntpZighY2FuY2VsbGVkKQp7dGhpcy5fZmVlZGJhY2tGaWVsZC52YWx1ZT0i
Ijt9CmlmKHRoaXMuX2Vycm9yRGlzcGxheSkKe3RoaXMuX2Vycm9yRGlzcGxheS5p
bm5lckhUTUw9IiI7WUFIT08udXRpbC5Eb20ucmVtb3ZlQ2xhc3ModGhpcy5fZXJy
b3JEaXNwbGF5LCdybl9NZXNzYWdlQm94IHJuX0Vycm9yTWVzc2FnZScpO30KaWYo
dGhpcy5fZGlhbG9nKQp0aGlzLl9kaWFsb2cuaGlkZSgpO30sX3N1Ym1pdEZlZWRi
YWNrOmZ1bmN0aW9uKCkKe3ZhciBldmVudE9iamVjdD1uZXcgUmlnaHROb3cuRXZl
bnQuRXZlbnRPYmplY3QoKTtldmVudE9iamVjdC53X2lkPXRoaXMuaW5zdGFuY2VJ
RDtldmVudE9iamVjdC5kYXRhPXsic3VtbWFyeSI6dGhpcy5kYXRhLmpzLnN1bW1h
cnksImFfaWQiOnRoaXMuZGF0YS5qcy5hbnN3ZXJJRCwicmF0ZSI6dGhpcy5fcmF0
ZSwiZGlhbG9nX3RocmVzaG9sZCI6dGhpcy5kYXRhLmF0dHJzLmRpYWxvZ190aHJl
c2hvbGQsIm9wdGlvbnNfY291bnQiOnRoaXMuZGF0YS5hdHRycy5vcHRpb25zX2Nv
dW50LCJtZXNzYWdlIjp0aGlzLl9mZWVkYmFja0ZpZWxkLnZhbHVlfTtpZih0aGlz
LmRhdGEuanMuaXNQcm9maWxlKQpldmVudE9iamVjdC5kYXRhLmVtYWlsPXRoaXMu
ZGF0YS5qcy5lbWFpbDtlbHNlIGlmKHRoaXMuX2VtYWlsRmllbGQpCmV2ZW50T2Jq
ZWN0LmRhdGEuZW1haWw9dGhpcy5fZW1haWxGaWVsZC52YWx1ZTtSaWdodE5vdy5F
dmVudC5maXJlKCJldnRfYW5zd2VyRmVlZGJhY2tSZXF1ZXN0IixldmVudE9iamVj
dCk7cmV0dXJuIGZhbHNlO30sX29uUmVzcG9uc2VSZWNlaXZlZDpmdW5jdGlvbih0
eXBlLGFyZykKe2lmKHRoaXMuX2luY2lkZW50Q3JlYXRlRmxhZyYmYXJnWzFdWzBd
LndfaWQ9PT10aGlzLmluc3RhbmNlSUQpCnt0aGlzLl9pbmNpZGVudENyZWF0ZUZs
YWc9ZmFsc2U7aWYodHlwZW9mKGFyZ1swXSk9PT0ic3RyaW5nIikKe1JpZ2h0Tm93
LlVJLkRpYWxvZy5tZXNzYWdlRGlhbG9nKGFyZ1swXSx7aWNvbjoiV0FSTiIsZXhp
dENhbGxiYWNrOntmbjp0aGlzLl9lbmFibGVEaWFsb2csc2NvcGU6dGhpc319KTt9
CmVsc2UKe1JpZ2h0Tm93LlVJLkRpYWxvZy5tZXNzYWdlRGlhbG9nKFJpZ2h0Tm93
LkludGVyZmFjZS5nZXRNZXNzYWdlKCJUSEFOS1NfRk9SX1lPVVJfRkVFREJBQ0tf
TVNHIikse2V4aXRDYWxsYmFjazp7Zm46dGhpcy5fY2xvc2VEaWFsb2csc2NvcGU6
dGhpc319KTt9fQplbHNlCnt0aGlzLl9jbG9zZURpYWxvZygpO319LF9zdWJtaXRB
bnN3ZXJSYXRpbmc6ZnVuY3Rpb24oKQp7dmFyIGV2ZW50T2JqZWN0PW5ldyBSaWdo
dE5vdy5FdmVudC5FdmVudE9iamVjdCgpO2V2ZW50T2JqZWN0LndfaWQ9dGhpcy5p
bnN0YW5jZUlEO2V2ZW50T2JqZWN0LmRhdGE9eyJhX2lkIjp0aGlzLmRhdGEuanMu
YW5zd2VySUQsInJhdGUiOnRoaXMuX3JhdGUsIm9wdGlvbnNfY291bnQiOnRoaXMu
ZGF0YS5hdHRycy5vcHRpb25zX2NvdW50LCJkaWFsb2dfdGhyZXNob2xkIjp0aGlz
LmRhdGEuYXR0cnMuZGlhbG9nX3RocmVzaG9sZH07UmlnaHROb3cuRXZlbnQuZmly
ZSgiZXZ0X2Fuc3dlclJhdGluZ1JlcXVlc3QiLGV2ZW50T2JqZWN0KTt2YXIgdGhh
bmtzTGFiZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJuXyIrdGhpcy5pbnN0
YW5jZUlEKyJfVGhhbmtzTGFiZWwiKTtpZih0aGFua3NMYWJlbCkKe2lmKHRoaXMu
X3dhc01vdXNlKQp7dGhhbmtzTGFiZWwuaW5uZXJIVE1MPXRoaXMuZGF0YS5hdHRy
cy5sYWJlbF9mZWVkYmFja19zdWJtaXQ7fQplbHNlIGlmKHRoaXMuX3JhdGU+dGhp
cy5kYXRhLmF0dHJzLmRpYWxvZ190aHJlc2hvbGQpCntSaWdodE5vdy5VSS5EaWFs
b2cubWVzc2FnZURpYWxvZyh0aGlzLmRhdGEuYXR0cnMubGFiZWxfZmVlZGJhY2tf
c3VibWl0KTt9fX0sX2FkZEVycm9yTWVzc2FnZTpmdW5jdGlvbihtZXNzYWdlLGZv
Y3VzRWxlbWVudCkKe2lmKHRoaXMuX2Vycm9yRGlzcGxheSkKe1lBSE9PLnV0aWwu
RG9tLmFkZENsYXNzKHRoaXMuX2Vycm9yRGlzcGxheSwncm5fTWVzc2FnZUJveCBy
bl9FcnJvck1lc3NhZ2UnKTt2YXIgbmV3TWVzc2FnZT0nPGEgaHJlZj0iamF2YXNj
cmlwdDp2b2lkKG51bGwpIiBvbmNsaWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChcJycrZm9jdXNFbGVtZW50KydcJykuZm9jdXMoKTsgcmV0dXJuIGZhbHNlOyI+
JyttZXNzYWdlKyc8L2E+Jzt2YXIgb2xkTWVzc2FnZT10aGlzLl9lcnJvckRpc3Bs
YXkuaW5uZXJIVE1MO2lmKG9sZE1lc3NhZ2U9PT0iIikKe3RoaXMuX2Vycm9yRGlz
cGxheS5pbm5lckhUTUw9bmV3TWVzc2FnZTt9CmVsc2UKe3RoaXMuX2Vycm9yRGlz
cGxheS5pbm5lckhUTUw9b2xkTWVzc2FnZSsnPGJyLz4nK25ld01lc3NhZ2U7fQp0
aGlzLl9lcnJvckRpc3BsYXkuZmlyc3RDaGlsZC5mb2N1cygpO319LF9vbkNlbGxP
dmVyOmZ1bmN0aW9uKHR5cGUsY2hvc2VuUmF0aW5nKQp7aWYodHlwZS50eXBlPT09
Im1vdXNlb3ZlciIpCnRoaXMuX3dhc01vdXNlPXRydWU7dGhpcy5fdXBkYXRlQ2Vs
bENsYXNzKDEsY2hvc2VuUmF0aW5nKzEsInJuX1JhdGluZ0NlbGxPdmVyIiwiYWRk
Iik7dGhpcy5fdXBkYXRlQ2VsbENsYXNzKGNob3NlblJhdGluZysxLHRoaXMuZGF0
YS5hdHRycy5vcHRpb25zX2NvdW50KzEsInJuX1JhdGluZ0NlbGxPdmVyIiwicmVt
b3ZlIik7fSxfdXBkYXRlQ2VsbENsYXNzOmZ1bmN0aW9uKG1pbkJvdW5kLG1heEJv
dW5kLGNzc0NsYXNzLHJlbW92ZU9yQWRkQ2xhc3MpCnt2YXIgY3NzRnVuYz0ocmVt
b3ZlT3JBZGRDbGFzcz09PSJhZGQiKT9ZQUhPTy51dGlsLkRvbS5hZGRDbGFzczpZ
QUhPTy51dGlsLkRvbS5yZW1vdmVDbGFzcztmb3IodmFyIGk9bWluQm91bmQ7aTxt
YXhCb3VuZDtpKyspCmNzc0Z1bmMoInJuXyIrdGhpcy5pbnN0YW5jZUlEKyJfUmF0
aW5nQ2VsbF8iK2ksY3NzQ2xhc3MpO30sX29uQ2VsbE91dDpmdW5jdGlvbih0eXBl
LGFyZ3MpCntpZih0eXBlLnR5cGU9PT0ibW91c2VvdXQiKQp0aGlzLl93YXNNb3Vz
ZT1mYWxzZTt0aGlzLl91cGRhdGVDZWxsQ2xhc3MoMSx0aGlzLmRhdGEuYXR0cnMu
b3B0aW9uc19jb3VudCsxLCJybl9SYXRpbmdDZWxsT3ZlciIsInJlbW92ZSIpO319
Ow==

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=combined.js
Content-Type: application/x-javascript; charset=UTF-8; name=combined.js
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/js/10.2.0.1.6.140/deprecated/combined.js
Content-Transfer-Encoding: Base64

LyoKQ29weXJpZ2h0IChjKSAyMDA5LCBZYWhvbyEgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgpDb2RlIGxpY2Vuc2VkIHVuZGVyIHRoZSBCU0QgTGljZW5zZToKaHR0
cDovL2RldmVsb3Blci55YWhvby5uZXQveXVpL2xpY2Vuc2UudHh0CnZlcnNpb246
IDIuNy4wCiovCihmdW5jdGlvbigpe3ZhciBHPVlBSE9PLnV0aWwuRG9tLE09WUFI
T08udXRpbC5FdmVudCxJPVlBSE9PLmxhbmcsTD1ZQUhPTy5lbnYudWEsQj1ZQUhP
Ty53aWRnZXQuT3ZlcmxheSxKPVlBSE9PLndpZGdldC5NZW51LEQ9e30sSz1udWxs
LEU9bnVsbCxDPW51bGw7ZnVuY3Rpb24gRihPLE4sUixQKXt2YXIgUyxRO2lmKEku
aXNTdHJpbmcoTykmJkkuaXNTdHJpbmcoTikpe2lmKEwuaWUpe1E9JzxpbnB1dCB0
eXBlPSInK08rJyIgbmFtZT0iJytOKyciJztpZihQKXtRKz0iIGNoZWNrZWQiO31R
Kz0iPiI7Uz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFEpO31lbHNle1M9ZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtTLm5hbWU9TjtTLnR5cGU9TztpZihQ
KXtTLmNoZWNrZWQ9dHJ1ZTt9fVMudmFsdWU9Ujt9cmV0dXJuIFM7fWZ1bmN0aW9u
IEgoTyxVKXt2YXIgTj1PLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCksUz10aGlzLFQs
UCxRO2Z1bmN0aW9uIFYoVyl7aWYoIShXIGluIFUpKXtUPU8uZ2V0QXR0cmlidXRl
Tm9kZShXKTtpZihUJiYoInZhbHVlIiBpbiBUKSl7VVtXXT1ULnZhbHVlO319fWZ1
bmN0aW9uIFIoKXtWKCJ0eXBlIik7aWYoVS50eXBlPT0iYnV0dG9uIil7VS50eXBl
PSJwdXNoIjt9aWYoISgiZGlzYWJsZWQiIGluIFUpKXtVLmRpc2FibGVkPU8uZGlz
YWJsZWQ7fVYoIm5hbWUiKTtWKCJ2YWx1ZSIpO1YoInRpdGxlIik7fXN3aXRjaChO
KXtjYXNlIkEiOlUudHlwZT0ibGluayI7VigiaHJlZiIpO1YoInRhcmdldCIpO2Jy
ZWFrO2Nhc2UiSU5QVVQiOlIoKTtpZighKCJjaGVja2VkIiBpbiBVKSl7VS5jaGVj
a2VkPU8uY2hlY2tlZDt9YnJlYWs7Y2FzZSJCVVRUT04iOlIoKTtQPU8ucGFyZW50
Tm9kZS5wYXJlbnROb2RlO2lmKEcuaGFzQ2xhc3MoUCx0aGlzLkNTU19DTEFTU19O
QU1FKyItY2hlY2tlZCIpKXtVLmNoZWNrZWQ9dHJ1ZTt9aWYoRy5oYXNDbGFzcyhQ
LHRoaXMuQ1NTX0NMQVNTX05BTUUrIi1kaXNhYmxlZCIpKXtVLmRpc2FibGVkPXRy
dWU7fU8ucmVtb3ZlQXR0cmlidXRlKCJ2YWx1ZSIpO08uc2V0QXR0cmlidXRlKCJ0
eXBlIiwiYnV0dG9uIik7YnJlYWs7fU8ucmVtb3ZlQXR0cmlidXRlKCJpZCIpO08u
cmVtb3ZlQXR0cmlidXRlKCJuYW1lIik7aWYoISgidGFiaW5kZXgiIGluIFUpKXtV
LnRhYmluZGV4PU8udGFiSW5kZXg7fWlmKCEoImxhYmVsIiBpbiBVKSl7UT1OPT0i
SU5QVVQiP08udmFsdWU6Ty5pbm5lckhUTUw7aWYoUSYmUS5sZW5ndGg+MCl7VS5s
YWJlbD1RO319fWZ1bmN0aW9uIEEoUCl7dmFyIE89UC5hdHRyaWJ1dGVzLE49Ty5z
cmNlbGVtZW50LFI9Ti5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpLFE9dGhpcztpZihS
PT10aGlzLk5PREVfTkFNRSl7UC5lbGVtZW50PU47UC5pZD1OLmlkO0cuZ2V0RWxl
bWVudHNCeShmdW5jdGlvbihTKXtzd2l0Y2goUy5ub2RlTmFtZS50b1VwcGVyQ2Fz
ZSgpKXtjYXNlIkJVVFRPTiI6Y2FzZSJBIjpjYXNlIklOUFVUIjpILmNhbGwoUSxT
LE8pO2JyZWFrO319LCIqIixOKTt9ZWxzZXtzd2l0Y2goUil7Y2FzZSJCVVRUT04i
OmNhc2UiQSI6Y2FzZSJJTlBVVCI6SC5jYWxsKHRoaXMsTixPKTticmVhazt9fX1Z
QUhPTy53aWRnZXQuQnV0dG9uPWZ1bmN0aW9uKFIsTyl7aWYoIUImJllBSE9PLndp
ZGdldC5PdmVybGF5KXtCPVlBSE9PLndpZGdldC5PdmVybGF5O31pZighSiYmWUFI
T08ud2lkZ2V0Lk1lbnUpe0o9WUFIT08ud2lkZ2V0Lk1lbnU7fXZhciBRPVlBSE9P
LndpZGdldC5CdXR0b24uc3VwZXJjbGFzcy5jb25zdHJ1Y3RvcixQLE47aWYoYXJn
dW1lbnRzLmxlbmd0aD09MSYmIUkuaXNTdHJpbmcoUikmJiFSLm5vZGVOYW1lKXtp
ZighUi5pZCl7Ui5pZD1HLmdlbmVyYXRlSWQoKTt9US5jYWxsKHRoaXMsKHRoaXMu
Y3JlYXRlQnV0dG9uRWxlbWVudChSLnR5cGUpKSxSKTt9ZWxzZXtQPXtlbGVtZW50
Om51bGwsYXR0cmlidXRlczooT3x8e30pfTtpZihJLmlzU3RyaW5nKFIpKXtOPUcu
Z2V0KFIpO2lmKE4pe2lmKCFQLmF0dHJpYnV0ZXMuaWQpe1AuYXR0cmlidXRlcy5p
ZD1SO31QLmF0dHJpYnV0ZXMuc3JjZWxlbWVudD1OO0EuY2FsbCh0aGlzLFApO2lm
KCFQLmVsZW1lbnQpe1AuZWxlbWVudD10aGlzLmNyZWF0ZUJ1dHRvbkVsZW1lbnQo
UC5hdHRyaWJ1dGVzLnR5cGUpO31RLmNhbGwodGhpcyxQLmVsZW1lbnQsUC5hdHRy
aWJ1dGVzKTt9fWVsc2V7aWYoUi5ub2RlTmFtZSl7aWYoIVAuYXR0cmlidXRlcy5p
ZCl7aWYoUi5pZCl7UC5hdHRyaWJ1dGVzLmlkPVIuaWQ7fWVsc2V7UC5hdHRyaWJ1
dGVzLmlkPUcuZ2VuZXJhdGVJZCgpO319UC5hdHRyaWJ1dGVzLnNyY2VsZW1lbnQ9
UjtBLmNhbGwodGhpcyxQKTtpZighUC5lbGVtZW50KXtQLmVsZW1lbnQ9dGhpcy5j
cmVhdGVCdXR0b25FbGVtZW50KFAuYXR0cmlidXRlcy50eXBlKTt9US5jYWxsKHRo
aXMsUC5lbGVtZW50LFAuYXR0cmlidXRlcyk7fX19fTtZQUhPTy5leHRlbmQoWUFI
T08ud2lkZ2V0LkJ1dHRvbixZQUhPTy51dGlsLkVsZW1lbnQse19idXR0b246bnVs
bCxfbWVudTpudWxsLF9oaWRkZW5GaWVsZHM6bnVsbCxfb25jbGlja0F0dHJpYnV0
ZVZhbHVlOm51bGwsX2FjdGl2YXRpb25LZXlQcmVzc2VkOmZhbHNlLF9hY3RpdmF0
aW9uQnV0dG9uUHJlc3NlZDpmYWxzZSxfaGFzS2V5RXZlbnRIYW5kbGVyczpmYWxz
ZSxfaGFzTW91c2VFdmVudEhhbmRsZXJzOmZhbHNlLF9uT3B0aW9uUmVnaW9uWDow
LE5PREVfTkFNRToiU1BBTiIsQ0hFQ0tfQUNUSVZBVElPTl9LRVlTOlszMl0sQUNU
SVZBVElPTl9LRVlTOlsxMywzMl0sT1BUSU9OX0FSRUFfV0lEVEg6MjAsQ1NTX0NM
QVNTX05BTUU6Inl1aS1idXR0b24iLFJBRElPX0RFRkFVTFRfVElUTEU6IlVuY2hl
Y2tlZC4gIENsaWNrIHRvIGNoZWNrLiIsUkFESU9fQ0hFQ0tFRF9USVRMRToiQ2hl
Y2tlZC4gIENsaWNrIGFub3RoZXIgYnV0dG9uIHRvIHVuY2hlY2siLENIRUNLQk9Y
X0RFRkFVTFRfVElUTEU6IlVuY2hlY2tlZC4gIENsaWNrIHRvIGNoZWNrLiIsQ0hF
Q0tCT1hfQ0hFQ0tFRF9USVRMRToiQ2hlY2tlZC4gIENsaWNrIHRvIHVuY2hlY2su
IixNRU5VQlVUVE9OX0RFRkFVTFRfVElUTEU6Ik1lbnUgY29sbGFwc2VkLiAgQ2xp
Y2sgdG8gZXhwYW5kLiIsTUVOVUJVVFRPTl9NRU5VX1ZJU0lCTEVfVElUTEU6Ik1l
bnUgZXhwYW5kZWQuICBDbGljayBvciBwcmVzcyBFc2MgdG8gY29sbGFwc2UuIixT
UExJVEJVVFRPTl9ERUZBVUxUX1RJVExFOigiTWVudSBjb2xsYXBzZWQuICBDbGlj
ayBpbnNpZGUgb3B0aW9uICIrInJlZ2lvbiBvciBwcmVzcyBkb3duIGFycm93IGtl
eSB0byBzaG93IHRoZSBtZW51LiIpLFNQTElUQlVUVE9OX09QVElPTl9WSVNJQkxF
X1RJVExFOiJNZW51IGV4cGFuZGVkLiAgUHJlc3MgRXNjIHRvIGhpZGUgdGhlIG1l
bnUuIixTVUJNSVRfVElUTEU6IkNsaWNrIHRvIHN1Ym1pdCBmb3JtLiIsX3NldFR5
cGU6ZnVuY3Rpb24oTil7aWYoTj09InNwbGl0Iil7dGhpcy5vbigib3B0aW9uIix0
aGlzLl9vbk9wdGlvbik7fX0sX3NldExhYmVsOmZ1bmN0aW9uKE8pe3RoaXMuX2J1
dHRvbi5pbm5lckhUTUw9Tzt2YXIgUCxOPUwuZ2Vja287aWYoTiYmTjwxLjkmJkcu
aW5Eb2N1bWVudCh0aGlzLmdldCgiZWxlbWVudCIpKSl7UD10aGlzLkNTU19DTEFT
U19OQU1FO3RoaXMucmVtb3ZlQ2xhc3MoUCk7SS5sYXRlcigwLHRoaXMsdGhpcy5h
ZGRDbGFzcyxQKTt9fSxfc2V0VGFiSW5kZXg6ZnVuY3Rpb24oTil7dGhpcy5fYnV0
dG9uLnRhYkluZGV4PU47fSxfc2V0VGl0bGU6ZnVuY3Rpb24oTyl7dmFyIE49Tztp
Zih0aGlzLmdldCgidHlwZSIpIT0ibGluayIpe2lmKCFOKXtzd2l0Y2godGhpcy5n
ZXQoInR5cGUiKSl7Y2FzZSJyYWRpbyI6Tj10aGlzLlJBRElPX0RFRkFVTFRfVElU
TEU7YnJlYWs7Y2FzZSJjaGVja2JveCI6Tj10aGlzLkNIRUNLQk9YX0RFRkFVTFRf
VElUTEU7YnJlYWs7Y2FzZSJtZW51IjpOPXRoaXMuTUVOVUJVVFRPTl9ERUZBVUxU
X1RJVExFO2JyZWFrO2Nhc2Uic3BsaXQiOk49dGhpcy5TUExJVEJVVFRPTl9ERUZB
VUxUX1RJVExFO2JyZWFrO2Nhc2Uic3VibWl0IjpOPXRoaXMuU1VCTUlUX1RJVExF
O2JyZWFrO319dGhpcy5fYnV0dG9uLnRpdGxlPU47fX0sX3NldERpc2FibGVkOmZ1
bmN0aW9uKE4pe2lmKHRoaXMuZ2V0KCJ0eXBlIikhPSJsaW5rIil7aWYoTil7aWYo
dGhpcy5fbWVudSl7dGhpcy5fbWVudS5oaWRlKCk7fWlmKHRoaXMuaGFzRm9jdXMo
KSl7dGhpcy5ibHVyKCk7fXRoaXMuX2J1dHRvbi5zZXRBdHRyaWJ1dGUoImRpc2Fi
bGVkIiwiZGlzYWJsZWQiKTt0aGlzLmFkZFN0YXRlQ1NTQ2xhc3NlcygiZGlzYWJs
ZWQiKTt0aGlzLnJlbW92ZVN0YXRlQ1NTQ2xhc3NlcygiaG92ZXIiKTt0aGlzLnJl
bW92ZVN0YXRlQ1NTQ2xhc3NlcygiYWN0aXZlIik7dGhpcy5yZW1vdmVTdGF0ZUNT
U0NsYXNzZXMoImZvY3VzIik7fWVsc2V7dGhpcy5fYnV0dG9uLnJlbW92ZUF0dHJp
YnV0ZSgiZGlzYWJsZWQiKTt0aGlzLnJlbW92ZVN0YXRlQ1NTQ2xhc3NlcygiZGlz
YWJsZWQiKTt9fX0sX3NldEhyZWY6ZnVuY3Rpb24oTil7aWYodGhpcy5nZXQoInR5
cGUiKT09ImxpbmsiKXt0aGlzLl9idXR0b24uaHJlZj1OO319LF9zZXRUYXJnZXQ6
ZnVuY3Rpb24oTil7aWYodGhpcy5nZXQoInR5cGUiKT09ImxpbmsiKXt0aGlzLl9i
dXR0b24uc2V0QXR0cmlidXRlKCJ0YXJnZXQiLE4pO319LF9zZXRDaGVja2VkOmZ1
bmN0aW9uKE8pe3ZhciBQPXRoaXMuZ2V0KCJ0eXBlIiksTjtpZihQPT0iY2hlY2ti
b3gifHxQPT0icmFkaW8iKXtpZihPKXt0aGlzLmFkZFN0YXRlQ1NTQ2xhc3Nlcygi
Y2hlY2tlZCIpO049KFA9PSJyYWRpbyIpP3RoaXMuUkFESU9fQ0hFQ0tFRF9USVRM
RTp0aGlzLkNIRUNLQk9YX0NIRUNLRURfVElUTEU7fWVsc2V7dGhpcy5yZW1vdmVT
dGF0ZUNTU0NsYXNzZXMoImNoZWNrZWQiKTtOPShQPT0icmFkaW8iKT90aGlzLlJB
RElPX0RFRkFVTFRfVElUTEU6dGhpcy5DSEVDS0JPWF9ERUZBVUxUX1RJVExFO31p
ZighdGhpcy5faGFzRGVmYXVsdFRpdGxlKXt0aGlzLnNldCgidGl0bGUiLE4pO319
fSxfc2V0TWVudTpmdW5jdGlvbihVKXt2YXIgUD10aGlzLmdldCgibGF6eWxvYWRt
ZW51IiksUj10aGlzLmdldCgiZWxlbWVudCIpLE4sVz1mYWxzZSxYLE8sUTtmdW5j
dGlvbiBWKCl7WC5yZW5kZXIoUi5wYXJlbnROb2RlKTt0aGlzLnJlbW92ZUxpc3Rl
bmVyKCJhcHBlbmRUbyIsVik7fWZ1bmN0aW9uIFQoKXtYLmNmZy5xdWV1ZVByb3Bl
cnR5KCJjb250YWluZXIiLFIucGFyZW50Tm9kZSk7dGhpcy5yZW1vdmVMaXN0ZW5l
cigiYXBwZW5kVG8iLFQpO31mdW5jdGlvbiBTKCl7dmFyIFk7aWYoWCl7Ry5hZGRD
bGFzcyhYLmVsZW1lbnQsdGhpcy5nZXQoIm1lbnVjbGFzc25hbWUiKSk7Ry5hZGRD
bGFzcyhYLmVsZW1lbnQsInl1aS0iK3RoaXMuZ2V0KCJ0eXBlIikrIi1idXR0b24t
bWVudSIpO1guc2hvd0V2ZW50LnN1YnNjcmliZSh0aGlzLl9vbk1lbnVTaG93LG51
bGwsdGhpcyk7WC5oaWRlRXZlbnQuc3Vic2NyaWJlKHRoaXMuX29uTWVudUhpZGUs
bnVsbCx0aGlzKTtYLnJlbmRlckV2ZW50LnN1YnNjcmliZSh0aGlzLl9vbk1lbnVS
ZW5kZXIsbnVsbCx0aGlzKTtpZihKJiZYIGluc3RhbmNlb2YgSil7aWYoUCl7WT10
aGlzLmdldCgiY29udGFpbmVyIik7aWYoWSl7WC5jZmcucXVldWVQcm9wZXJ0eSgi
Y29udGFpbmVyIixZKTt9ZWxzZXt0aGlzLm9uKCJhcHBlbmRUbyIsVCk7fX1YLmNm
Zy5xdWV1ZVByb3BlcnR5KCJjbGlja3RvaGlkZSIsZmFsc2UpO1gua2V5RG93bkV2
ZW50LnN1YnNjcmliZSh0aGlzLl9vbk1lbnVLZXlEb3duLHRoaXMsdHJ1ZSk7WC5z
dWJzY3JpYmUoImNsaWNrIix0aGlzLl9vbk1lbnVDbGljayx0aGlzLHRydWUpO3Ro
aXMub24oInNlbGVjdGVkTWVudUl0ZW1DaGFuZ2UiLHRoaXMuX29uU2VsZWN0ZWRN
ZW51SXRlbUNoYW5nZSk7UT1YLnNyY0VsZW1lbnQ7aWYoUSYmUS5ub2RlTmFtZS50
b1VwcGVyQ2FzZSgpPT0iU0VMRUNUIil7US5zdHlsZS5kaXNwbGF5PSJub25lIjtR
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoUSk7fX1lbHNle2lmKEImJlggaW5zdGFu
Y2VvZiBCKXtpZighSyl7Sz1uZXcgWUFIT08ud2lkZ2V0Lk92ZXJsYXlNYW5hZ2Vy
KCk7Cn1LLnJlZ2lzdGVyKFgpO319dGhpcy5fbWVudT1YO2lmKCFXJiYhUCl7aWYo
Ry5pbkRvY3VtZW50KFIpKXtYLnJlbmRlcihSLnBhcmVudE5vZGUpO31lbHNle3Ro
aXMub24oImFwcGVuZFRvIixWKTt9fX19aWYoQil7aWYoSil7Tj1KLnByb3RvdHlw
ZS5DU1NfQ0xBU1NfTkFNRTt9aWYoVSYmSiYmKFUgaW5zdGFuY2VvZiBKKSl7WD1V
O1c9dHJ1ZTtTLmNhbGwodGhpcyk7fWVsc2V7aWYoQiYmVSYmKFUgaW5zdGFuY2Vv
ZiBCKSl7WD1VO1c9dHJ1ZTtYLmNmZy5xdWV1ZVByb3BlcnR5KCJ2aXNpYmxlIixm
YWxzZSk7Uy5jYWxsKHRoaXMpO31lbHNle2lmKEomJkkuaXNBcnJheShVKSl7WD1u
ZXcgSihHLmdlbmVyYXRlSWQoKSx7bGF6eWxvYWQ6UCxpdGVtZGF0YTpVfSk7dGhp
cy5fbWVudT1YO3RoaXMub24oImFwcGVuZFRvIixTKTt9ZWxzZXtpZihJLmlzU3Ry
aW5nKFUpKXtPPUcuZ2V0KFUpO2lmKE8pe2lmKEomJkcuaGFzQ2xhc3MoTyxOKXx8
Ty5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT0iU0VMRUNUIil7WD1uZXcgSihVLHts
YXp5bG9hZDpQfSk7Uy5jYWxsKHRoaXMpO31lbHNle2lmKEIpe1g9bmV3IEIoVSx7
dmlzaWJsZTpmYWxzZX0pO1MuY2FsbCh0aGlzKTt9fX19ZWxzZXtpZihVJiZVLm5v
ZGVOYW1lKXtpZihKJiZHLmhhc0NsYXNzKFUsTil8fFUubm9kZU5hbWUudG9VcHBl
ckNhc2UoKT09IlNFTEVDVCIpe1g9bmV3IEooVSx7bGF6eWxvYWQ6UH0pO1MuY2Fs
bCh0aGlzKTt9ZWxzZXtpZihCKXtpZighVS5pZCl7Ry5nZW5lcmF0ZUlkKFUpO31Y
PW5ldyBCKFUse3Zpc2libGU6ZmFsc2V9KTtTLmNhbGwodGhpcyk7fX19fX19fX19
LF9zZXRPbkNsaWNrOmZ1bmN0aW9uKE4pe2lmKHRoaXMuX29uY2xpY2tBdHRyaWJ1
dGVWYWx1ZSYmKHRoaXMuX29uY2xpY2tBdHRyaWJ1dGVWYWx1ZSE9Tikpe3RoaXMu
cmVtb3ZlTGlzdGVuZXIoImNsaWNrIix0aGlzLl9vbmNsaWNrQXR0cmlidXRlVmFs
dWUuZm4pO3RoaXMuX29uY2xpY2tBdHRyaWJ1dGVWYWx1ZT1udWxsO31pZighdGhp
cy5fb25jbGlja0F0dHJpYnV0ZVZhbHVlJiZJLmlzT2JqZWN0KE4pJiZJLmlzRnVu
Y3Rpb24oTi5mbikpe3RoaXMub24oImNsaWNrIixOLmZuLE4ub2JqLE4uc2NvcGUp
O3RoaXMuX29uY2xpY2tBdHRyaWJ1dGVWYWx1ZT1OO319LF9pc0FjdGl2YXRpb25L
ZXk6ZnVuY3Rpb24oTil7dmFyIFM9dGhpcy5nZXQoInR5cGUiKSxPPShTPT0iY2hl
Y2tib3gifHxTPT0icmFkaW8iKT90aGlzLkNIRUNLX0FDVElWQVRJT05fS0VZUzp0
aGlzLkFDVElWQVRJT05fS0VZUyxRPU8ubGVuZ3RoLFI9ZmFsc2UsUDtpZihRPjAp
e1A9US0xO2Rve2lmKE49PU9bUF0pe1I9dHJ1ZTticmVhazt9fXdoaWxlKFAtLSk7
fXJldHVybiBSO30sX2lzU3BsaXRCdXR0b25PcHRpb25LZXk6ZnVuY3Rpb24oUCl7
dmFyIE89KE0uZ2V0Q2hhckNvZGUoUCk9PTQwKTt2YXIgTj1mdW5jdGlvbihRKXtN
LnByZXZlbnREZWZhdWx0KFEpO3RoaXMucmVtb3ZlTGlzdGVuZXIoImtleXByZXNz
IixOKTt9O2lmKE8pe2lmKEwub3BlcmEpe3RoaXMub24oImtleXByZXNzIixOKTt9
TS5wcmV2ZW50RGVmYXVsdChQKTt9cmV0dXJuIE87fSxfYWRkTGlzdGVuZXJzVG9G
b3JtOmZ1bmN0aW9uKCl7dmFyIFQ9dGhpcy5nZXRGb3JtKCksUz1ZQUhPTy53aWRn
ZXQuQnV0dG9uLm9uRm9ybUtleVByZXNzLFIsTixRLFAsTztpZihUKXtNLm9uKFQs
InJlc2V0Iix0aGlzLl9vbkZvcm1SZXNldCxudWxsLHRoaXMpO00ub24oVCwic3Vi
bWl0Iix0aGlzLl9vbkZvcm1TdWJtaXQsbnVsbCx0aGlzKTtOPXRoaXMuZ2V0KCJz
cmNlbGVtZW50Iik7aWYodGhpcy5nZXQoInR5cGUiKT09InN1Ym1pdCJ8fChOJiZO
LnR5cGU9PSJzdWJtaXQiKSl7UT1NLmdldExpc3RlbmVycyhULCJrZXlwcmVzcyIp
O1I9ZmFsc2U7aWYoUSl7UD1RLmxlbmd0aDtpZihQPjApe089UC0xO2Rve2lmKFFb
T10uZm49PVMpe1I9dHJ1ZTticmVhazt9fXdoaWxlKE8tLSk7fX1pZighUil7TS5v
bihULCJrZXlwcmVzcyIsUyk7fX19fSxfc2hvd01lbnU6ZnVuY3Rpb24oUil7aWYo
WUFIT08ud2lkZ2V0Lk1lbnVNYW5hZ2VyKXtZQUhPTy53aWRnZXQuTWVudU1hbmFn
ZXIuaGlkZVZpc2libGUoKTt9aWYoSyl7Sy5oaWRlQWxsKCk7fXZhciBOPXRoaXMu
X21lbnUsUT10aGlzLmdldCgibWVudWFsaWdubWVudCIpLFA9dGhpcy5nZXQoImZv
Y3VzbWVudSIpLE87aWYodGhpcy5fcmVuZGVyZWRNZW51KXtOLmNmZy5zZXRQcm9w
ZXJ0eSgiY29udGV4dCIsW3RoaXMuZ2V0KCJlbGVtZW50IiksUVswXSxRWzFdXSk7
Ti5jZmcuc2V0UHJvcGVydHkoInByZXZlbnRjb250ZXh0b3ZlcmxhcCIsdHJ1ZSk7
Ti5jZmcuc2V0UHJvcGVydHkoImNvbnN0cmFpbnRvdmlld3BvcnQiLHRydWUpO31l
bHNle04uY2ZnLnF1ZXVlUHJvcGVydHkoImNvbnRleHQiLFt0aGlzLmdldCgiZWxl
bWVudCIpLFFbMF0sUVsxXV0pO04uY2ZnLnF1ZXVlUHJvcGVydHkoInByZXZlbnRj
b250ZXh0b3ZlcmxhcCIsdHJ1ZSk7Ti5jZmcucXVldWVQcm9wZXJ0eSgiY29uc3Ry
YWludG92aWV3cG9ydCIsdHJ1ZSk7fXRoaXMuZm9jdXMoKTtpZihKJiZOJiYoTiBp
bnN0YW5jZW9mIEopKXtPPU4uZm9jdXM7Ti5mb2N1cz1mdW5jdGlvbigpe307aWYo
dGhpcy5fcmVuZGVyZWRNZW51KXtOLmNmZy5zZXRQcm9wZXJ0eSgibWluc2Nyb2xs
aGVpZ2h0Iix0aGlzLmdldCgibWVudW1pbnNjcm9sbGhlaWdodCIpKTtOLmNmZy5z
ZXRQcm9wZXJ0eSgibWF4aGVpZ2h0Iix0aGlzLmdldCgibWVudW1heGhlaWdodCIp
KTt9ZWxzZXtOLmNmZy5xdWV1ZVByb3BlcnR5KCJtaW5zY3JvbGxoZWlnaHQiLHRo
aXMuZ2V0KCJtZW51bWluc2Nyb2xsaGVpZ2h0IikpO04uY2ZnLnF1ZXVlUHJvcGVy
dHkoIm1heGhlaWdodCIsdGhpcy5nZXQoIm1lbnVtYXhoZWlnaHQiKSk7fU4uc2hv
dygpO04uZm9jdXM9TztOLmFsaWduKCk7aWYoUi50eXBlPT0ibW91c2Vkb3duIil7
TS5zdG9wUHJvcGFnYXRpb24oUik7fWlmKFApe04uZm9jdXMoKTt9fWVsc2V7aWYo
QiYmTiYmKE4gaW5zdGFuY2VvZiBCKSl7aWYoIXRoaXMuX3JlbmRlcmVkTWVudSl7
Ti5yZW5kZXIodGhpcy5nZXQoImVsZW1lbnQiKS5wYXJlbnROb2RlKTt9Ti5zaG93
KCk7Ti5hbGlnbigpO319fSxfaGlkZU1lbnU6ZnVuY3Rpb24oKXt2YXIgTj10aGlz
Ll9tZW51O2lmKE4pe04uaGlkZSgpO319LF9vbk1vdXNlT3ZlcjpmdW5jdGlvbihP
KXt2YXIgUT10aGlzLmdldCgidHlwZSIpLE4sUDtpZihRPT09InNwbGl0Iil7Tj10
aGlzLmdldCgiZWxlbWVudCIpO1A9KEcuZ2V0WChOKSsoTi5vZmZzZXRXaWR0aC10
aGlzLk9QVElPTl9BUkVBX1dJRFRIKSk7dGhpcy5fbk9wdGlvblJlZ2lvblg9UDt9
aWYoIXRoaXMuX2hhc01vdXNlRXZlbnRIYW5kbGVycyl7aWYoUT09PSJzcGxpdCIp
e3RoaXMub24oIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3VzZU1vdmUpO310aGlzLm9u
KCJtb3VzZW91dCIsdGhpcy5fb25Nb3VzZU91dCk7dGhpcy5faGFzTW91c2VFdmVu
dEhhbmRsZXJzPXRydWU7fXRoaXMuYWRkU3RhdGVDU1NDbGFzc2VzKCJob3ZlciIp
O2lmKFE9PT0ic3BsaXQiJiYoTS5nZXRQYWdlWChPKT5QKSl7dGhpcy5hZGRTdGF0
ZUNTU0NsYXNzZXMoImhvdmVyb3B0aW9uIik7fWlmKHRoaXMuX2FjdGl2YXRpb25C
dXR0b25QcmVzc2VkKXt0aGlzLmFkZFN0YXRlQ1NTQ2xhc3NlcygiYWN0aXZlIik7
fWlmKHRoaXMuX2JPcHRpb25QcmVzc2VkKXt0aGlzLmFkZFN0YXRlQ1NTQ2xhc3Nl
cygiYWN0aXZlb3B0aW9uIik7fWlmKHRoaXMuX2FjdGl2YXRpb25CdXR0b25QcmVz
c2VkfHx0aGlzLl9iT3B0aW9uUHJlc3NlZCl7TS5yZW1vdmVMaXN0ZW5lcihkb2N1
bWVudCwibW91c2V1cCIsdGhpcy5fb25Eb2N1bWVudE1vdXNlVXApO319LF9vbk1v
dXNlTW92ZTpmdW5jdGlvbihOKXt2YXIgTz10aGlzLl9uT3B0aW9uUmVnaW9uWDtp
ZihPKXtpZihNLmdldFBhZ2VYKE4pPk8pe3RoaXMuYWRkU3RhdGVDU1NDbGFzc2Vz
KCJob3Zlcm9wdGlvbiIpO31lbHNle3RoaXMucmVtb3ZlU3RhdGVDU1NDbGFzc2Vz
KCJob3Zlcm9wdGlvbiIpO319fSxfb25Nb3VzZU91dDpmdW5jdGlvbihOKXt2YXIg
Tz10aGlzLmdldCgidHlwZSIpO3RoaXMucmVtb3ZlU3RhdGVDU1NDbGFzc2VzKCJo
b3ZlciIpO2lmKE8hPSJtZW51Iil7dGhpcy5yZW1vdmVTdGF0ZUNTU0NsYXNzZXMo
ImFjdGl2ZSIpO31pZih0aGlzLl9hY3RpdmF0aW9uQnV0dG9uUHJlc3NlZHx8dGhp
cy5fYk9wdGlvblByZXNzZWQpe00ub24oZG9jdW1lbnQsIm1vdXNldXAiLHRoaXMu
X29uRG9jdW1lbnRNb3VzZVVwLG51bGwsdGhpcyk7fWlmKE89PT0ic3BsaXQiJiYo
TS5nZXRQYWdlWChOKT50aGlzLl9uT3B0aW9uUmVnaW9uWCkpe3RoaXMucmVtb3Zl
U3RhdGVDU1NDbGFzc2VzKCJob3Zlcm9wdGlvbiIpO319LF9vbkRvY3VtZW50TW91
c2VVcDpmdW5jdGlvbihQKXt0aGlzLl9hY3RpdmF0aW9uQnV0dG9uUHJlc3NlZD1m
YWxzZTt0aGlzLl9iT3B0aW9uUHJlc3NlZD1mYWxzZTt2YXIgUT10aGlzLmdldCgi
dHlwZSIpLE4sTztpZihRPT0ibWVudSJ8fFE9PSJzcGxpdCIpe049TS5nZXRUYXJn
ZXQoUCk7Tz10aGlzLl9tZW51LmVsZW1lbnQ7aWYoTiE9TyYmIUcuaXNBbmNlc3Rv
cihPLE4pKXt0aGlzLnJlbW92ZVN0YXRlQ1NTQ2xhc3NlcygoUT09Im1lbnUiPyJh
Y3RpdmUiOiJhY3RpdmVvcHRpb24iKSk7dGhpcy5faGlkZU1lbnUoKTt9fU0ucmVt
b3ZlTGlzdGVuZXIoZG9jdW1lbnQsIm1vdXNldXAiLHRoaXMuX29uRG9jdW1lbnRN
b3VzZVVwKTt9LF9vbk1vdXNlRG93bjpmdW5jdGlvbihQKXt2YXIgUSxPPXRydWU7
ZnVuY3Rpb24gTigpe3RoaXMuX2hpZGVNZW51KCk7dGhpcy5yZW1vdmVMaXN0ZW5l
cigibW91c2V1cCIsTik7fWlmKChQLndoaWNofHxQLmJ1dHRvbik9PTEpe2lmKCF0
aGlzLmhhc0ZvY3VzKCkpe3RoaXMuZm9jdXMoKTt9UT10aGlzLmdldCgidHlwZSIp
O2lmKFE9PSJzcGxpdCIpe2lmKE0uZ2V0UGFnZVgoUCk+dGhpcy5fbk9wdGlvblJl
Z2lvblgpe3RoaXMuZmlyZUV2ZW50KCJvcHRpb24iLFApO089ZmFsc2U7fWVsc2V7
dGhpcy5hZGRTdGF0ZUNTU0NsYXNzZXMoImFjdGl2ZSIpO3RoaXMuX2FjdGl2YXRp
b25CdXR0b25QcmVzc2VkPXRydWU7fX1lbHNle2lmKFE9PSJtZW51Iil7aWYodGhp
cy5pc0FjdGl2ZSgpKXt0aGlzLl9oaWRlTWVudSgpO3RoaXMuX2FjdGl2YXRpb25C
dXR0b25QcmVzc2VkPWZhbHNlO31lbHNle3RoaXMuX3Nob3dNZW51KFApO3RoaXMu
X2FjdGl2YXRpb25CdXR0b25QcmVzc2VkPXRydWU7fX1lbHNle3RoaXMuYWRkU3Rh
dGVDU1NDbGFzc2VzKCJhY3RpdmUiKTt0aGlzLl9hY3RpdmF0aW9uQnV0dG9uUHJl
c3NlZD10cnVlO319aWYoUT09InNwbGl0Inx8UT09Im1lbnUiKXt0aGlzLl9oaWRl
TWVudVRpbWVyPUkubGF0ZXIoMjUwLHRoaXMsdGhpcy5vbixbIm1vdXNldXAiLE5d
KTt9fXJldHVybiBPO30sX29uTW91c2VVcDpmdW5jdGlvbihQKXt2YXIgUT10aGlz
LmdldCgidHlwZSIpLE49dGhpcy5faGlkZU1lbnVUaW1lcixPPXRydWU7aWYoTil7
Ti5jYW5jZWwoKTt9aWYoUT09ImNoZWNrYm94Inx8UT09InJhZGlvIil7dGhpcy5z
ZXQoImNoZWNrZWQiLCEodGhpcy5nZXQoImNoZWNrZWQiKSkpO310aGlzLl9hY3Rp
dmF0aW9uQnV0dG9uUHJlc3NlZD1mYWxzZTtpZihRIT0ibWVudSIpe3RoaXMucmVt
b3ZlU3RhdGVDU1NDbGFzc2VzKCJhY3RpdmUiKTt9aWYoUT09InNwbGl0IiYmTS5n
ZXRQYWdlWChQKT50aGlzLl9uT3B0aW9uUmVnaW9uWCl7Tz1mYWxzZTt9cmV0dXJu
IE87fSxfb25Gb2N1czpmdW5jdGlvbihPKXt2YXIgTjt0aGlzLmFkZFN0YXRlQ1NT
Q2xhc3NlcygiZm9jdXMiKTtpZih0aGlzLl9hY3RpdmF0aW9uS2V5UHJlc3NlZCl7
dGhpcy5hZGRTdGF0ZUNTU0NsYXNzZXMoImFjdGl2ZSIpO31DPXRoaXM7aWYoIXRo
aXMuX2hhc0tleUV2ZW50SGFuZGxlcnMpe049dGhpcy5fYnV0dG9uO00ub24oTiwi
Ymx1ciIsdGhpcy5fb25CbHVyLG51bGwsdGhpcyk7TS5vbihOLCJrZXlkb3duIix0
aGlzLl9vbktleURvd24sbnVsbCx0aGlzKTtNLm9uKE4sImtleXVwIix0aGlzLl9v
bktleVVwLG51bGwsdGhpcyk7CnRoaXMuX2hhc0tleUV2ZW50SGFuZGxlcnM9dHJ1
ZTt9dGhpcy5maXJlRXZlbnQoImZvY3VzIixPKTt9LF9vbkJsdXI6ZnVuY3Rpb24o
Til7dGhpcy5yZW1vdmVTdGF0ZUNTU0NsYXNzZXMoImZvY3VzIik7aWYodGhpcy5n
ZXQoInR5cGUiKSE9Im1lbnUiKXt0aGlzLnJlbW92ZVN0YXRlQ1NTQ2xhc3Nlcygi
YWN0aXZlIik7fWlmKHRoaXMuX2FjdGl2YXRpb25LZXlQcmVzc2VkKXtNLm9uKGRv
Y3VtZW50LCJrZXl1cCIsdGhpcy5fb25Eb2N1bWVudEtleVVwLG51bGwsdGhpcyk7
fUM9bnVsbDt0aGlzLmZpcmVFdmVudCgiYmx1ciIsTik7fSxfb25Eb2N1bWVudEtl
eVVwOmZ1bmN0aW9uKE4pe2lmKHRoaXMuX2lzQWN0aXZhdGlvbktleShNLmdldENo
YXJDb2RlKE4pKSl7dGhpcy5fYWN0aXZhdGlvbktleVByZXNzZWQ9ZmFsc2U7TS5y
ZW1vdmVMaXN0ZW5lcihkb2N1bWVudCwia2V5dXAiLHRoaXMuX29uRG9jdW1lbnRL
ZXlVcCk7fX0sX29uS2V5RG93bjpmdW5jdGlvbihPKXt2YXIgTj10aGlzLl9tZW51
O2lmKHRoaXMuZ2V0KCJ0eXBlIik9PSJzcGxpdCImJnRoaXMuX2lzU3BsaXRCdXR0
b25PcHRpb25LZXkoTykpe3RoaXMuZmlyZUV2ZW50KCJvcHRpb24iLE8pO31lbHNl
e2lmKHRoaXMuX2lzQWN0aXZhdGlvbktleShNLmdldENoYXJDb2RlKE8pKSl7aWYo
dGhpcy5nZXQoInR5cGUiKT09Im1lbnUiKXt0aGlzLl9zaG93TWVudShPKTt9ZWxz
ZXt0aGlzLl9hY3RpdmF0aW9uS2V5UHJlc3NlZD10cnVlO3RoaXMuYWRkU3RhdGVD
U1NDbGFzc2VzKCJhY3RpdmUiKTt9fX1pZihOJiZOLmNmZy5nZXRQcm9wZXJ0eSgi
dmlzaWJsZSIpJiZNLmdldENoYXJDb2RlKE8pPT0yNyl7Ti5oaWRlKCk7dGhpcy5m
b2N1cygpO319LF9vbktleVVwOmZ1bmN0aW9uKE4pe3ZhciBPO2lmKHRoaXMuX2lz
QWN0aXZhdGlvbktleShNLmdldENoYXJDb2RlKE4pKSl7Tz10aGlzLmdldCgidHlw
ZSIpO2lmKE89PSJjaGVja2JveCJ8fE89PSJyYWRpbyIpe3RoaXMuc2V0KCJjaGVj
a2VkIiwhKHRoaXMuZ2V0KCJjaGVja2VkIikpKTt9dGhpcy5fYWN0aXZhdGlvbktl
eVByZXNzZWQ9ZmFsc2U7aWYodGhpcy5nZXQoInR5cGUiKSE9Im1lbnUiKXt0aGlz
LnJlbW92ZVN0YXRlQ1NTQ2xhc3NlcygiYWN0aXZlIik7fX19LF9vbkNsaWNrOmZ1
bmN0aW9uKFEpe3ZhciBTPXRoaXMuZ2V0KCJ0eXBlIiksTixSLE8sUDtzd2l0Y2go
Uyl7Y2FzZSJyYWRpbyI6Y2FzZSJjaGVja2JveCI6aWYoIXRoaXMuX2hhc0RlZmF1
bHRUaXRsZSl7aWYodGhpcy5nZXQoImNoZWNrZWQiKSl7Tj0oUz09InJhZGlvIik/
dGhpcy5SQURJT19DSEVDS0VEX1RJVExFOnRoaXMuQ0hFQ0tCT1hfQ0hFQ0tFRF9U
SVRMRTt9ZWxzZXtOPShTPT0icmFkaW8iKT90aGlzLlJBRElPX0RFRkFVTFRfVElU
TEU6dGhpcy5DSEVDS0JPWF9ERUZBVUxUX1RJVExFO310aGlzLnNldCgidGl0bGUi
LE4pO31icmVhaztjYXNlInN1Ym1pdCI6aWYoUS5yZXR1cm5WYWx1ZSE9PWZhbHNl
KXt0aGlzLnN1Ym1pdEZvcm0oKTt9YnJlYWs7Y2FzZSJyZXNldCI6Uj10aGlzLmdl
dEZvcm0oKTtpZihSKXtSLnJlc2V0KCk7fWJyZWFrO2Nhc2UibWVudSI6Tj10aGlz
Ll9tZW51LmNmZy5nZXRQcm9wZXJ0eSgidmlzaWJsZSIpP3RoaXMuTUVOVUJVVFRP
Tl9NRU5VX1ZJU0lCTEVfVElUTEU6dGhpcy5NRU5VQlVUVE9OX0RFRkFVTFRfVElU
TEU7dGhpcy5zZXQoInRpdGxlIixOKTticmVhaztjYXNlInNwbGl0IjppZih0aGlz
Ll9uT3B0aW9uUmVnaW9uWD4wJiYoTS5nZXRQYWdlWChRKT50aGlzLl9uT3B0aW9u
UmVnaW9uWCkpe1A9ZmFsc2U7fWVsc2V7dGhpcy5faGlkZU1lbnUoKTtPPXRoaXMu
Z2V0KCJzcmNlbGVtZW50Iik7aWYoTyYmTy50eXBlPT0ic3VibWl0IiYmUS5yZXR1
cm5WYWx1ZSE9PWZhbHNlKXt0aGlzLnN1Ym1pdEZvcm0oKTt9fU49dGhpcy5fbWVu
dS5jZmcuZ2V0UHJvcGVydHkoInZpc2libGUiKT90aGlzLlNQTElUQlVUVE9OX09Q
VElPTl9WSVNJQkxFX1RJVExFOnRoaXMuU1BMSVRCVVRUT05fREVGQVVMVF9USVRM
RTt0aGlzLnNldCgidGl0bGUiLE4pO2JyZWFrO31yZXR1cm4gUDt9LF9vbkRibENs
aWNrOmZ1bmN0aW9uKE8pe3ZhciBOPXRydWU7aWYodGhpcy5nZXQoInR5cGUiKT09
InNwbGl0IiYmTS5nZXRQYWdlWChPKT50aGlzLl9uT3B0aW9uUmVnaW9uWCl7Tj1m
YWxzZTt9cmV0dXJuIE47fSxfb25BcHBlbmRUbzpmdW5jdGlvbihOKXtJLmxhdGVy
KDAsdGhpcyx0aGlzLl9hZGRMaXN0ZW5lcnNUb0Zvcm0pO30sX29uRm9ybVJlc2V0
OmZ1bmN0aW9uKE8pe3ZhciBQPXRoaXMuZ2V0KCJ0eXBlIiksTj10aGlzLl9tZW51
O2lmKFA9PSJjaGVja2JveCJ8fFA9PSJyYWRpbyIpe3RoaXMucmVzZXRWYWx1ZSgi
Y2hlY2tlZCIpO31pZihKJiZOJiYoTiBpbnN0YW5jZW9mIEopKXt0aGlzLnJlc2V0
VmFsdWUoInNlbGVjdGVkTWVudUl0ZW0iKTt9fSxfb25Gb3JtU3VibWl0OmZ1bmN0
aW9uKE4pe3RoaXMuY3JlYXRlSGlkZGVuRmllbGRzKCk7fSxfb25Eb2N1bWVudE1v
dXNlRG93bjpmdW5jdGlvbihRKXt2YXIgTj1NLmdldFRhcmdldChRKSxQPXRoaXMu
Z2V0KCJlbGVtZW50IiksTz10aGlzLl9tZW51LmVsZW1lbnQ7aWYoTiE9UCYmIUcu
aXNBbmNlc3RvcihQLE4pJiZOIT1PJiYhRy5pc0FuY2VzdG9yKE8sTikpe3RoaXMu
X2hpZGVNZW51KCk7TS5yZW1vdmVMaXN0ZW5lcihkb2N1bWVudCwibW91c2Vkb3du
Iix0aGlzLl9vbkRvY3VtZW50TW91c2VEb3duKTt9fSxfb25PcHRpb246ZnVuY3Rp
b24oTil7aWYodGhpcy5oYXNDbGFzcygieXVpLXNwbGl0LWJ1dHRvbi1hY3RpdmVv
cHRpb24iKSl7dGhpcy5faGlkZU1lbnUoKTt0aGlzLl9iT3B0aW9uUHJlc3NlZD1m
YWxzZTt9ZWxzZXt0aGlzLl9zaG93TWVudShOKTt0aGlzLl9iT3B0aW9uUHJlc3Nl
ZD10cnVlO319LF9vbk1lbnVTaG93OmZ1bmN0aW9uKE8pe00ub24oZG9jdW1lbnQs
Im1vdXNlZG93biIsdGhpcy5fb25Eb2N1bWVudE1vdXNlRG93bixudWxsLHRoaXMp
O3ZhciBOLFA7aWYodGhpcy5nZXQoInR5cGUiKT09InNwbGl0Iil7Tj10aGlzLlNQ
TElUQlVUVE9OX09QVElPTl9WSVNJQkxFX1RJVExFO1A9ImFjdGl2ZW9wdGlvbiI7
fWVsc2V7Tj10aGlzLk1FTlVCVVRUT05fTUVOVV9WSVNJQkxFX1RJVExFO1A9ImFj
dGl2ZSI7fXRoaXMuYWRkU3RhdGVDU1NDbGFzc2VzKFApO3RoaXMuc2V0KCJ0aXRs
ZSIsTik7fSxfb25NZW51SGlkZTpmdW5jdGlvbihQKXt2YXIgTz10aGlzLl9tZW51
LE4sUTtpZih0aGlzLmdldCgidHlwZSIpPT0ic3BsaXQiKXtOPXRoaXMuU1BMSVRC
VVRUT05fREVGQVVMVF9USVRMRTtRPSJhY3RpdmVvcHRpb24iO31lbHNle049dGhp
cy5NRU5VQlVUVE9OX0RFRkFVTFRfVElUTEU7UT0iYWN0aXZlIjt9dGhpcy5yZW1v
dmVTdGF0ZUNTU0NsYXNzZXMoUSk7dGhpcy5zZXQoInRpdGxlIixOKTtpZih0aGlz
LmdldCgidHlwZSIpPT0ic3BsaXQiKXt0aGlzLl9iT3B0aW9uUHJlc3NlZD1mYWxz
ZTt9fSxfb25NZW51S2V5RG93bjpmdW5jdGlvbihQLE8pe3ZhciBOPU9bMF07aWYo
TS5nZXRDaGFyQ29kZShOKT09Mjcpe3RoaXMuZm9jdXMoKTtpZih0aGlzLmdldCgi
dHlwZSIpPT0ic3BsaXQiKXt0aGlzLl9iT3B0aW9uUHJlc3NlZD1mYWxzZTt9fX0s
X29uTWVudVJlbmRlcjpmdW5jdGlvbihQKXt2YXIgUz10aGlzLmdldCgiZWxlbWVu
dCIpLE89Uy5wYXJlbnROb2RlLE49dGhpcy5fbWVudSxSPU4uZWxlbWVudCxRPU4u
c3JjRWxlbWVudDtpZihPIT1SLnBhcmVudE5vZGUpe08uYXBwZW5kQ2hpbGQoUik7
fXRoaXMuX3JlbmRlcmVkTWVudT10cnVlO2lmKFEmJlEubm9kZU5hbWUudG9Mb3dl
ckNhc2UoKT09PSJzZWxlY3QiJiZRLnZhbHVlKXt0aGlzLnNldCgic2VsZWN0ZWRN
ZW51SXRlbSIsTi5nZXRJdGVtKFEuc2VsZWN0ZWRJbmRleCkpO319LF9vbk1lbnVD
bGljazpmdW5jdGlvbihPLE4pe3ZhciBRPU5bMV0sUDtpZihRKXt0aGlzLnNldCgi
c2VsZWN0ZWRNZW51SXRlbSIsUSk7UD10aGlzLmdldCgic3JjZWxlbWVudCIpO2lm
KFAmJlAudHlwZT09InN1Ym1pdCIpe3RoaXMuc3VibWl0Rm9ybSgpO310aGlzLl9o
aWRlTWVudSgpO319LF9vblNlbGVjdGVkTWVudUl0ZW1DaGFuZ2U6ZnVuY3Rpb24o
Til7dmFyIE89Ti5wcmV2VmFsdWUsUD1OLm5ld1ZhbHVlO2lmKE8pe0cucmVtb3Zl
Q2xhc3MoTy5lbGVtZW50LCJ5dWktYnV0dG9uLXNlbGVjdGVkbWVudWl0ZW0iKTt9
aWYoUCl7Ry5hZGRDbGFzcyhQLmVsZW1lbnQsInl1aS1idXR0b24tc2VsZWN0ZWRt
ZW51aXRlbSIpO319LGNyZWF0ZUJ1dHRvbkVsZW1lbnQ6ZnVuY3Rpb24oTil7dmFy
IFA9dGhpcy5OT0RFX05BTUUsTz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFApO08u
aW5uZXJIVE1MPSI8IitQKycgY2xhc3M9ImZpcnN0LWNoaWxkIj4nKyhOPT0ibGlu
ayI/IjxhPjwvYT4iOic8YnV0dG9uIHR5cGU9ImJ1dHRvbiI+PC9idXR0b24+Jykr
IjwvIitQKyI+IjtyZXR1cm4gTzt9LGFkZFN0YXRlQ1NTQ2xhc3NlczpmdW5jdGlv
bihOKXt2YXIgTz10aGlzLmdldCgidHlwZSIpO2lmKEkuaXNTdHJpbmcoTikpe2lm
KE4hPSJhY3RpdmVvcHRpb24iJiZOIT0iaG92ZXJvcHRpb24iKXt0aGlzLmFkZENs
YXNzKHRoaXMuQ1NTX0NMQVNTX05BTUUrKCItIitOKSk7fXRoaXMuYWRkQ2xhc3Mo
Inl1aS0iK08rKCItYnV0dG9uLSIrTikpO319LHJlbW92ZVN0YXRlQ1NTQ2xhc3Nl
czpmdW5jdGlvbihOKXt2YXIgTz10aGlzLmdldCgidHlwZSIpO2lmKEkuaXNTdHJp
bmcoTikpe3RoaXMucmVtb3ZlQ2xhc3ModGhpcy5DU1NfQ0xBU1NfTkFNRSsoIi0i
K04pKTt0aGlzLnJlbW92ZUNsYXNzKCJ5dWktIitPKygiLWJ1dHRvbi0iK04pKTt9
fSxjcmVhdGVIaWRkZW5GaWVsZHM6ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUhpZGRl
bkZpZWxkcygpO3ZhciBWPXRoaXMuZ2V0Rm9ybSgpLFosTyxTLFgsWSxULFUsTixS
LFcsUCxRPWZhbHNlO2lmKFYmJiF0aGlzLmdldCgiZGlzYWJsZWQiKSl7Tz10aGlz
LmdldCgidHlwZSIpO1M9KE89PSJjaGVja2JveCJ8fE89PSJyYWRpbyIpO2lmKChT
JiZ0aGlzLmdldCgiY2hlY2tlZCIpKXx8KEU9PXRoaXMpKXtaPUYoKFM/TzoiaGlk
ZGVuIiksdGhpcy5nZXQoIm5hbWUiKSx0aGlzLmdldCgidmFsdWUiKSx0aGlzLmdl
dCgiY2hlY2tlZCIpKTtpZihaKXtpZihTKXtaLnN0eWxlLmRpc3BsYXk9Im5vbmUi
O31WLmFwcGVuZENoaWxkKFopO319WD10aGlzLl9tZW51O2lmKEomJlgmJihYIGlu
c3RhbmNlb2YgSikpe1k9dGhpcy5nZXQoInNlbGVjdGVkTWVudUl0ZW0iKTtQPVgu
c3JjRWxlbWVudDtRPShQJiZQLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PSJTRUxF
Q1QiKTtpZihZKXtVPShZLnZhbHVlPT09bnVsbHx8WS52YWx1ZT09PSIiKT9ZLmNm
Zy5nZXRQcm9wZXJ0eSgidGV4dCIpOlkudmFsdWU7VD10aGlzLmdldCgibmFtZSIp
O2lmKFEpe1c9UC5uYW1lO31lbHNle2lmKFQpe1c9KFQrIl9vcHRpb25zIik7fX1p
ZihVJiZXKXtOPUYoImhpZGRlbiIsVyxVKTtWLmFwcGVuZENoaWxkKE4pO319ZWxz
ZXtpZihRKXtWLmFwcGVuZENoaWxkKFApO319fWlmKFomJk4pe3RoaXMuX2hpZGRl
bkZpZWxkcz1bWixOXTt9ZWxzZXtpZighWiYmTil7dGhpcy5faGlkZGVuRmllbGRz
PU47fWVsc2V7aWYoWiYmIU4pe3RoaXMuX2hpZGRlbkZpZWxkcz1aO319fVI9dGhp
cy5faGlkZGVuRmllbGRzO31yZXR1cm4gUjt9LHJlbW92ZUhpZGRlbkZpZWxkczpm
dW5jdGlvbigpe3ZhciBRPXRoaXMuX2hpZGRlbkZpZWxkcyxPLFA7ZnVuY3Rpb24g
TihSKXtpZihHLmluRG9jdW1lbnQoUikpe1IucGFyZW50Tm9kZS5yZW1vdmVDaGls
ZChSKTt9fWlmKFEpe2lmKEkuaXNBcnJheShRKSl7Tz1RLmxlbmd0aDtpZihPPjAp
e1A9Ty0xO2Rve04oUVtQXSk7fXdoaWxlKFAtLSk7fX1lbHNle04oUSk7fXRoaXMu
X2hpZGRlbkZpZWxkcz1udWxsO319LHN1Ym1pdEZvcm06ZnVuY3Rpb24oKXt2YXIg
UT10aGlzLmdldEZvcm0oKSxQPXRoaXMuZ2V0KCJzcmNlbGVtZW50IiksTz1mYWxz
ZSxOO2lmKFEpe2lmKHRoaXMuZ2V0KCJ0eXBlIik9PSJzdWJtaXQifHwoUCYmUC50
eXBlPT0ic3VibWl0Iikpe0U9dGhpczsKfWlmKEwuaWUpe089US5maXJlRXZlbnQo
Im9uc3VibWl0Iik7fWVsc2V7Tj1kb2N1bWVudC5jcmVhdGVFdmVudCgiSFRNTEV2
ZW50cyIpO04uaW5pdEV2ZW50KCJzdWJtaXQiLHRydWUsdHJ1ZSk7Tz1RLmRpc3Bh
dGNoRXZlbnQoTik7fWlmKChMLmllfHxMLndlYmtpdCkmJk8pe1Euc3VibWl0KCk7
fX1yZXR1cm4gTzt9LGluaXQ6ZnVuY3Rpb24oTyxhKXt2YXIgUT1hLnR5cGU9PSJs
aW5rIj8iYSI6ImJ1dHRvbiIsVj1hLnNyY2VsZW1lbnQsWj1PLmdldEVsZW1lbnRz
QnlUYWdOYW1lKFEpWzBdLFg7aWYoIVope1g9Ty5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiaW5wdXQiKVswXTtpZihYKXtaPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1
dHRvbiIpO1ouc2V0QXR0cmlidXRlKCJ0eXBlIiwiYnV0dG9uIik7WC5wYXJlbnRO
b2RlLnJlcGxhY2VDaGlsZChaLFgpO319dGhpcy5fYnV0dG9uPVo7dGhpcy5faGFz
RGVmYXVsdFRpdGxlPShhLnRpdGxlJiZhLnRpdGxlLmxlbmd0aD4wKTtZQUhPTy53
aWRnZXQuQnV0dG9uLnN1cGVyY2xhc3MuaW5pdC5jYWxsKHRoaXMsTyxhKTt2YXIg
VD10aGlzLmdldCgiaWQiKSxOPVQrIi1idXR0b24iO1ouaWQ9Tjt2YXIgVSxXO3Zh
ciBkPWZ1bmN0aW9uKGUpe3JldHVybihlLmh0bWxGb3I9PT1UKTt9O3ZhciBTPWZ1
bmN0aW9uKCl7Vy5zZXRBdHRyaWJ1dGUoKEwuaWU/Imh0bWxGb3IiOiJmb3IiKSxO
KTt9O2lmKFYmJnRoaXMuZ2V0KCJ0eXBlIikhPSJsaW5rIil7VT1HLmdldEVsZW1l
bnRzQnkoZCwibGFiZWwiKTtpZihJLmlzQXJyYXkoVSkmJlUubGVuZ3RoPjApe1c9
VVswXTt9fURbVF09dGhpczt0aGlzLmFkZENsYXNzKHRoaXMuQ1NTX0NMQVNTX05B
TUUpO3RoaXMuYWRkQ2xhc3MoInl1aS0iK3RoaXMuZ2V0KCJ0eXBlIikrIi1idXR0
b24iKTtNLm9uKHRoaXMuX2J1dHRvbiwiZm9jdXMiLHRoaXMuX29uRm9jdXMsbnVs
bCx0aGlzKTt0aGlzLm9uKCJtb3VzZW92ZXIiLHRoaXMuX29uTW91c2VPdmVyKTt0
aGlzLm9uKCJtb3VzZWRvd24iLHRoaXMuX29uTW91c2VEb3duKTt0aGlzLm9uKCJt
b3VzZXVwIix0aGlzLl9vbk1vdXNlVXApO3RoaXMub24oImNsaWNrIix0aGlzLl9v
bkNsaWNrKTt2YXIgWT10aGlzLmdldCgib25jbGljayIpO3RoaXMuc2V0KCJvbmNs
aWNrIixudWxsKTt0aGlzLnNldCgib25jbGljayIsWSk7dGhpcy5vbigiZGJsY2xp
Y2siLHRoaXMuX29uRGJsQ2xpY2spO2lmKFcpe3RoaXMub24oImFwcGVuZFRvIixT
KTt9dGhpcy5vbigiYXBwZW5kVG8iLHRoaXMuX29uQXBwZW5kVG8pO3ZhciBjPXRo
aXMuZ2V0KCJjb250YWluZXIiKSxQPXRoaXMuZ2V0KCJlbGVtZW50IiksYj1HLmlu
RG9jdW1lbnQoUCksUjtpZihjKXtpZihWJiZWIT1QKXtSPVYucGFyZW50Tm9kZTtp
ZihSKXtSLnJlbW92ZUNoaWxkKFYpO319aWYoSS5pc1N0cmluZyhjKSl7TS5vbkNv
bnRlbnRSZWFkeShjLHRoaXMuYXBwZW5kVG8sYyx0aGlzKTt9ZWxzZXt0aGlzLm9u
KCJpbml0IixmdW5jdGlvbigpe0kubGF0ZXIoMCx0aGlzLHRoaXMuYXBwZW5kVG8s
Yyk7fSk7fX1lbHNle2lmKCFiJiZWJiZWIT1QKXtSPVYucGFyZW50Tm9kZTtpZihS
KXt0aGlzLmZpcmVFdmVudCgiYmVmb3JlQXBwZW5kVG8iLHt0eXBlOiJiZWZvcmVB
cHBlbmRUbyIsdGFyZ2V0OlJ9KTtSLnJlcGxhY2VDaGlsZChQLFYpO3RoaXMuZmly
ZUV2ZW50KCJhcHBlbmRUbyIse3R5cGU6ImFwcGVuZFRvIix0YXJnZXQ6Un0pO319
ZWxzZXtpZih0aGlzLmdldCgidHlwZSIpIT0ibGluayImJmImJlYmJlY9PVApe3Ro
aXMuX2FkZExpc3RlbmVyc1RvRm9ybSgpO319fXRoaXMuZmlyZUV2ZW50KCJpbml0
Iix7dHlwZToiaW5pdCIsdGFyZ2V0OnRoaXN9KTt9LGluaXRBdHRyaWJ1dGVzOmZ1
bmN0aW9uKE8pe3ZhciBOPU98fHt9O1lBSE9PLndpZGdldC5CdXR0b24uc3VwZXJj
bGFzcy5pbml0QXR0cmlidXRlcy5jYWxsKHRoaXMsTik7dGhpcy5zZXRBdHRyaWJ1
dGVDb25maWcoInR5cGUiLHt2YWx1ZTooTi50eXBlfHwicHVzaCIpLHZhbGlkYXRv
cjpJLmlzU3RyaW5nLHdyaXRlT25jZTp0cnVlLG1ldGhvZDp0aGlzLl9zZXRUeXBl
fSk7dGhpcy5zZXRBdHRyaWJ1dGVDb25maWcoImxhYmVsIix7dmFsdWU6Ti5sYWJl
bCx2YWxpZGF0b3I6SS5pc1N0cmluZyxtZXRob2Q6dGhpcy5fc2V0TGFiZWx9KTt0
aGlzLnNldEF0dHJpYnV0ZUNvbmZpZygidmFsdWUiLHt2YWx1ZTpOLnZhbHVlfSk7
dGhpcy5zZXRBdHRyaWJ1dGVDb25maWcoIm5hbWUiLHt2YWx1ZTpOLm5hbWUsdmFs
aWRhdG9yOkkuaXNTdHJpbmd9KTt0aGlzLnNldEF0dHJpYnV0ZUNvbmZpZygidGFi
aW5kZXgiLHt2YWx1ZTpOLnRhYmluZGV4LHZhbGlkYXRvcjpJLmlzTnVtYmVyLG1l
dGhvZDp0aGlzLl9zZXRUYWJJbmRleH0pO3RoaXMuY29uZmlndXJlQXR0cmlidXRl
KCJ0aXRsZSIse3ZhbHVlOk4udGl0bGUsdmFsaWRhdG9yOkkuaXNTdHJpbmcsbWV0
aG9kOnRoaXMuX3NldFRpdGxlfSk7dGhpcy5zZXRBdHRyaWJ1dGVDb25maWcoImRp
c2FibGVkIix7dmFsdWU6KE4uZGlzYWJsZWR8fGZhbHNlKSx2YWxpZGF0b3I6SS5p
c0Jvb2xlYW4sbWV0aG9kOnRoaXMuX3NldERpc2FibGVkfSk7dGhpcy5zZXRBdHRy
aWJ1dGVDb25maWcoImhyZWYiLHt2YWx1ZTpOLmhyZWYsdmFsaWRhdG9yOkkuaXNT
dHJpbmcsbWV0aG9kOnRoaXMuX3NldEhyZWZ9KTt0aGlzLnNldEF0dHJpYnV0ZUNv
bmZpZygidGFyZ2V0Iix7dmFsdWU6Ti50YXJnZXQsdmFsaWRhdG9yOkkuaXNTdHJp
bmcsbWV0aG9kOnRoaXMuX3NldFRhcmdldH0pO3RoaXMuc2V0QXR0cmlidXRlQ29u
ZmlnKCJjaGVja2VkIix7dmFsdWU6KE4uY2hlY2tlZHx8ZmFsc2UpLHZhbGlkYXRv
cjpJLmlzQm9vbGVhbixtZXRob2Q6dGhpcy5fc2V0Q2hlY2tlZH0pO3RoaXMuc2V0
QXR0cmlidXRlQ29uZmlnKCJjb250YWluZXIiLHt2YWx1ZTpOLmNvbnRhaW5lcix3
cml0ZU9uY2U6dHJ1ZX0pO3RoaXMuc2V0QXR0cmlidXRlQ29uZmlnKCJzcmNlbGVt
ZW50Iix7dmFsdWU6Ti5zcmNlbGVtZW50LHdyaXRlT25jZTp0cnVlfSk7dGhpcy5z
ZXRBdHRyaWJ1dGVDb25maWcoIm1lbnUiLHt2YWx1ZTpudWxsLG1ldGhvZDp0aGlz
Ll9zZXRNZW51LHdyaXRlT25jZTp0cnVlfSk7dGhpcy5zZXRBdHRyaWJ1dGVDb25m
aWcoImxhenlsb2FkbWVudSIse3ZhbHVlOihOLmxhenlsb2FkbWVudT09PWZhbHNl
P2ZhbHNlOnRydWUpLHZhbGlkYXRvcjpJLmlzQm9vbGVhbix3cml0ZU9uY2U6dHJ1
ZX0pO3RoaXMuc2V0QXR0cmlidXRlQ29uZmlnKCJtZW51Y2xhc3NuYW1lIix7dmFs
dWU6KE4ubWVudWNsYXNzbmFtZXx8Inl1aS1idXR0b24tbWVudSIpLHZhbGlkYXRv
cjpJLmlzU3RyaW5nLG1ldGhvZDp0aGlzLl9zZXRNZW51Q2xhc3NOYW1lLHdyaXRl
T25jZTp0cnVlfSk7dGhpcy5zZXRBdHRyaWJ1dGVDb25maWcoIm1lbnVtaW5zY3Jv
bGxoZWlnaHQiLHt2YWx1ZTooTi5tZW51bWluc2Nyb2xsaGVpZ2h0fHw5MCksdmFs
aWRhdG9yOkkuaXNOdW1iZXJ9KTt0aGlzLnNldEF0dHJpYnV0ZUNvbmZpZygibWVu
dW1heGhlaWdodCIse3ZhbHVlOihOLm1lbnVtYXhoZWlnaHR8fDApLHZhbGlkYXRv
cjpJLmlzTnVtYmVyfSk7dGhpcy5zZXRBdHRyaWJ1dGVDb25maWcoIm1lbnVhbGln
bm1lbnQiLHt2YWx1ZTooTi5tZW51YWxpZ25tZW50fHxbInRsIiwiYmwiXSksdmFs
aWRhdG9yOkkuaXNBcnJheX0pO3RoaXMuc2V0QXR0cmlidXRlQ29uZmlnKCJzZWxl
Y3RlZE1lbnVJdGVtIix7dmFsdWU6bnVsbH0pO3RoaXMuc2V0QXR0cmlidXRlQ29u
ZmlnKCJvbmNsaWNrIix7dmFsdWU6Ti5vbmNsaWNrLG1ldGhvZDp0aGlzLl9zZXRP
bkNsaWNrfSk7dGhpcy5zZXRBdHRyaWJ1dGVDb25maWcoImZvY3VzbWVudSIse3Zh
bHVlOihOLmZvY3VzbWVudT09PWZhbHNlP2ZhbHNlOnRydWUpLHZhbGlkYXRvcjpJ
LmlzQm9vbGVhbn0pO30sZm9jdXM6ZnVuY3Rpb24oKXtpZighdGhpcy5nZXQoImRp
c2FibGVkIikpe3RoaXMuX2J1dHRvbi5mb2N1cygpO319LGJsdXI6ZnVuY3Rpb24o
KXtpZighdGhpcy5nZXQoImRpc2FibGVkIikpe3RoaXMuX2J1dHRvbi5ibHVyKCk7
fX0saGFzRm9jdXM6ZnVuY3Rpb24oKXtyZXR1cm4oQz09dGhpcyk7fSxpc0FjdGl2
ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc0NsYXNzKHRoaXMuQ1NTX0NMQVNT
X05BTUUrIi1hY3RpdmUiKTt9LGdldE1lbnU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
cy5fbWVudTt9LGdldEZvcm06ZnVuY3Rpb24oKXt2YXIgTj10aGlzLl9idXR0b24s
TztpZihOKXtPPU4uZm9ybTt9cmV0dXJuIE87fSxnZXRIaWRkZW5GaWVsZHM6ZnVu
Y3Rpb24oKXtyZXR1cm4gdGhpcy5faGlkZGVuRmllbGRzO30sZGVzdHJveTpmdW5j
dGlvbigpe3ZhciBQPXRoaXMuZ2V0KCJlbGVtZW50IiksTz1QLnBhcmVudE5vZGUs
Tj10aGlzLl9tZW51LFI7aWYoTil7aWYoSyYmSy5maW5kKE4pKXtLLnJlbW92ZShO
KTt9Ti5kZXN0cm95KCk7fU0ucHVyZ2VFbGVtZW50KFApO00ucHVyZ2VFbGVtZW50
KHRoaXMuX2J1dHRvbik7TS5yZW1vdmVMaXN0ZW5lcihkb2N1bWVudCwibW91c2V1
cCIsdGhpcy5fb25Eb2N1bWVudE1vdXNlVXApO00ucmVtb3ZlTGlzdGVuZXIoZG9j
dW1lbnQsImtleXVwIix0aGlzLl9vbkRvY3VtZW50S2V5VXApO00ucmVtb3ZlTGlz
dGVuZXIoZG9jdW1lbnQsIm1vdXNlZG93biIsdGhpcy5fb25Eb2N1bWVudE1vdXNl
RG93bik7dmFyIFE9dGhpcy5nZXRGb3JtKCk7aWYoUSl7TS5yZW1vdmVMaXN0ZW5l
cihRLCJyZXNldCIsdGhpcy5fb25Gb3JtUmVzZXQpO00ucmVtb3ZlTGlzdGVuZXIo
USwic3VibWl0Iix0aGlzLl9vbkZvcm1TdWJtaXQpO310aGlzLnVuc3Vic2NyaWJl
QWxsKCk7aWYoTyl7Ty5yZW1vdmVDaGlsZChQKTt9ZGVsZXRlIERbdGhpcy5nZXQo
ImlkIildO1I9Ry5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHRoaXMuQ1NTX0NMQVNT
X05BTUUsdGhpcy5OT0RFX05BTUUsUSk7aWYoSS5pc0FycmF5KFIpJiZSLmxlbmd0
aD09PTApe00ucmVtb3ZlTGlzdGVuZXIoUSwia2V5cHJlc3MiLFlBSE9PLndpZGdl
dC5CdXR0b24ub25Gb3JtS2V5UHJlc3MpO319LGZpcmVFdmVudDpmdW5jdGlvbihP
LE4pe3ZhciBQPWFyZ3VtZW50c1swXTtpZih0aGlzLkRPTV9FVkVOVFNbUF0mJnRo
aXMuZ2V0KCJkaXNhYmxlZCIpKXtyZXR1cm4gZmFsc2U7fXJldHVybiBZQUhPTy53
aWRnZXQuQnV0dG9uLnN1cGVyY2xhc3MuZmlyZUV2ZW50LmFwcGx5KHRoaXMsYXJn
dW1lbnRzKTt9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuKCJCdXR0b24gIit0
aGlzLmdldCgiaWQiKSk7fX0pO1lBSE9PLndpZGdldC5CdXR0b24ub25Gb3JtS2V5
UHJlc3M9ZnVuY3Rpb24oUil7dmFyIFA9TS5nZXRUYXJnZXQoUiksUz1NLmdldENo
YXJDb2RlKFIpLFE9UC5ub2RlTmFtZSYmUC5ub2RlTmFtZS50b1VwcGVyQ2FzZSgp
LE49UC50eXBlLFQ9ZmFsc2UsVixYLE8sVztmdW5jdGlvbiBVKGEpe3ZhciBaLFk7
c3dpdGNoKGEubm9kZU5hbWUudG9VcHBlckNhc2UoKSl7Y2FzZSJJTlBVVCI6Y2Fz
ZSJCVVRUT04iOmlmKGEudHlwZT09InN1Ym1pdCImJiFhLmRpc2FibGVkKXtpZigh
VCYmIU8pe089YTt9fWJyZWFrO2RlZmF1bHQ6Wj1hLmlkO2lmKFope1Y9RFtaXTtp
ZihWKXtUPXRydWU7aWYoIVYuZ2V0KCJkaXNhYmxlZCIpKXtZPVYuZ2V0KCJzcmNl
bGVtZW50Iik7aWYoIVgmJihWLmdldCgidHlwZSIpPT0ic3VibWl0Inx8KFkmJlku
dHlwZT09InN1Ym1pdCIpKSl7WD1WO319fX1icmVhazt9fWlmKFM9PTEzJiYoKFE9
PSJJTlBVVCImJihOPT0idGV4dCJ8fE49PSJwYXNzd29yZCJ8fE49PSJjaGVja2Jv
eCJ8fE49PSJyYWRpbyJ8fE49PSJmaWxlIikpfHxRPT0iU0VMRUNUIikpe0cuZ2V0
RWxlbWVudHNCeShVLCIqIix0aGlzKTtpZihPKXtPLmZvY3VzKCk7fWVsc2V7aWYo
IU8mJlgpe00ucHJldmVudERlZmF1bHQoUik7aWYoTC5pZSl7WC5nZXQoImVsZW1l
bnQiKS5maXJlRXZlbnQoIm9uY2xpY2siKTt9ZWxzZXtXPWRvY3VtZW50LmNyZWF0
ZUV2ZW50KCJIVE1MRXZlbnRzIik7Vy5pbml0RXZlbnQoImNsaWNrIix0cnVlLHRy
dWUpO2lmKEwuZ2Vja288MS45KXtYLmZpcmVFdmVudCgiY2xpY2siLFcpOwp9ZWxz
ZXtYLmdldCgiZWxlbWVudCIpLmRpc3BhdGNoRXZlbnQoVyk7fX19fX19O1lBSE9P
LndpZGdldC5CdXR0b24uYWRkSGlkZGVuRmllbGRzVG9Gb3JtPWZ1bmN0aW9uKE4p
e3ZhciBTPUcuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShZQUhPTy53aWRnZXQuQnV0
dG9uLnByb3RvdHlwZS5DU1NfQ0xBU1NfTkFNRSwiKiIsTiksUT1TLmxlbmd0aCxS
LE8sUDtpZihRPjApe2ZvcihQPTA7UDxRO1ArKyl7Tz1TW1BdLmlkO2lmKE8pe1I9
RFtPXTtpZihSKXtSLmNyZWF0ZUhpZGRlbkZpZWxkcygpO319fX19O1lBSE9PLndp
ZGdldC5CdXR0b24uZ2V0QnV0dG9uPWZ1bmN0aW9uKE4pe3JldHVybiBEW05dO307
fSkoKTsoZnVuY3Rpb24oKXt2YXIgQz1ZQUhPTy51dGlsLkRvbSxCPVlBSE9PLnV0
aWwuRXZlbnQsRD1ZQUhPTy5sYW5nLEE9WUFIT08ud2lkZ2V0LkJ1dHRvbixFPXt9
O1lBSE9PLndpZGdldC5CdXR0b25Hcm91cD1mdW5jdGlvbihKLEgpe3ZhciBJPVlB
SE9PLndpZGdldC5CdXR0b25Hcm91cC5zdXBlcmNsYXNzLmNvbnN0cnVjdG9yLEss
RyxGO2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEmJiFELmlzU3RyaW5nKEopJiYhSi5u
b2RlTmFtZSl7aWYoIUouaWQpe0Y9Qy5nZW5lcmF0ZUlkKCk7Si5pZD1GO31JLmNh
bGwodGhpcywodGhpcy5fY3JlYXRlR3JvdXBFbGVtZW50KCkpLEopO31lbHNle2lm
KEQuaXNTdHJpbmcoSikpe0c9Qy5nZXQoSik7aWYoRyl7aWYoRy5ub2RlTmFtZS50
b1VwcGVyQ2FzZSgpPT10aGlzLk5PREVfTkFNRSl7SS5jYWxsKHRoaXMsRyxIKTt9
fX1lbHNle0s9Si5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpO2lmKEsmJks9PXRoaXMu
Tk9ERV9OQU1FKXtpZighSi5pZCl7Si5pZD1DLmdlbmVyYXRlSWQoKTt9SS5jYWxs
KHRoaXMsSixIKTt9fX19O1lBSE9PLmV4dGVuZChZQUhPTy53aWRnZXQuQnV0dG9u
R3JvdXAsWUFIT08udXRpbC5FbGVtZW50LHtfYnV0dG9uczpudWxsLE5PREVfTkFN
RToiRElWIixDU1NfQ0xBU1NfTkFNRToieXVpLWJ1dHRvbmdyb3VwIixfY3JlYXRl
R3JvdXBFbGVtZW50OmZ1bmN0aW9uKCl7dmFyIEY9ZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCh0aGlzLk5PREVfTkFNRSk7cmV0dXJuIEY7fSxfc2V0RGlzYWJsZWQ6ZnVu
Y3Rpb24oRyl7dmFyIEg9dGhpcy5nZXRDb3VudCgpLEY7aWYoSD4wKXtGPUgtMTtk
b3t0aGlzLl9idXR0b25zW0ZdLnNldCgiZGlzYWJsZWQiLEcpO313aGlsZShGLS0p
O319LF9vbktleURvd246ZnVuY3Rpb24oSyl7dmFyIEc9Qi5nZXRUYXJnZXQoSyks
ST1CLmdldENoYXJDb2RlKEspLEg9Ry5wYXJlbnROb2RlLnBhcmVudE5vZGUuaWQs
Sj1FW0hdLEY9LTE7aWYoST09Mzd8fEk9PTM4KXtGPShKLmluZGV4PT09MCk/KHRo
aXMuX2J1dHRvbnMubGVuZ3RoLTEpOihKLmluZGV4LTEpO31lbHNle2lmKEk9PTM5
fHxJPT00MCl7Rj0oSi5pbmRleD09PSh0aGlzLl9idXR0b25zLmxlbmd0aC0xKSk/
MDooSi5pbmRleCsxKTt9fWlmKEY+LTEpe3RoaXMuY2hlY2soRik7dGhpcy5nZXRC
dXR0b24oRikuZm9jdXMoKTt9fSxfb25BcHBlbmRUbzpmdW5jdGlvbihIKXt2YXIg
ST10aGlzLl9idXR0b25zLEc9SS5sZW5ndGgsRjtmb3IoRj0wO0Y8RztGKyspe0lb
Rl0uYXBwZW5kVG8odGhpcy5nZXQoImVsZW1lbnQiKSk7fX0sX29uQnV0dG9uQ2hl
Y2tlZENoYW5nZTpmdW5jdGlvbihHLEYpe3ZhciBJPUcubmV3VmFsdWUsSD10aGlz
LmdldCgiY2hlY2tlZEJ1dHRvbiIpO2lmKEkmJkghPUYpe2lmKEgpe0guc2V0KCJj
aGVja2VkIixmYWxzZSx0cnVlKTt9dGhpcy5zZXQoImNoZWNrZWRCdXR0b24iLEYp
O3RoaXMuc2V0KCJ2YWx1ZSIsRi5nZXQoInZhbHVlIikpO31lbHNle2lmKEgmJiFI
LnNldCgiY2hlY2tlZCIpKXtILnNldCgiY2hlY2tlZCIsdHJ1ZSx0cnVlKTt9fX0s
aW5pdDpmdW5jdGlvbihJLEgpe3RoaXMuX2J1dHRvbnM9W107WUFIT08ud2lkZ2V0
LkJ1dHRvbkdyb3VwLnN1cGVyY2xhc3MuaW5pdC5jYWxsKHRoaXMsSSxIKTt0aGlz
LmFkZENsYXNzKHRoaXMuQ1NTX0NMQVNTX05BTUUpO3ZhciBKPXRoaXMuZ2V0RWxl
bWVudHNCeUNsYXNzTmFtZSgieXVpLXJhZGlvLWJ1dHRvbiIpO2lmKEoubGVuZ3Ro
PjApe3RoaXMuYWRkQnV0dG9ucyhKKTt9ZnVuY3Rpb24gRihLKXtyZXR1cm4oSy50
eXBlPT0icmFkaW8iKTt9Sj1DLmdldEVsZW1lbnRzQnkoRiwiaW5wdXQiLHRoaXMu
Z2V0KCJlbGVtZW50IikpO2lmKEoubGVuZ3RoPjApe3RoaXMuYWRkQnV0dG9ucyhK
KTt9dGhpcy5vbigia2V5ZG93biIsdGhpcy5fb25LZXlEb3duKTt0aGlzLm9uKCJh
cHBlbmRUbyIsdGhpcy5fb25BcHBlbmRUbyk7dmFyIEc9dGhpcy5nZXQoImNvbnRh
aW5lciIpO2lmKEcpe2lmKEQuaXNTdHJpbmcoRykpe0Iub25Db250ZW50UmVhZHko
RyxmdW5jdGlvbigpe3RoaXMuYXBwZW5kVG8oRyk7fSxudWxsLHRoaXMpO31lbHNl
e3RoaXMuYXBwZW5kVG8oRyk7fX19LGluaXRBdHRyaWJ1dGVzOmZ1bmN0aW9uKEcp
e3ZhciBGPUd8fHt9O1lBSE9PLndpZGdldC5CdXR0b25Hcm91cC5zdXBlcmNsYXNz
LmluaXRBdHRyaWJ1dGVzLmNhbGwodGhpcyxGKTt0aGlzLnNldEF0dHJpYnV0ZUNv
bmZpZygibmFtZSIse3ZhbHVlOkYubmFtZSx2YWxpZGF0b3I6RC5pc1N0cmluZ30p
O3RoaXMuc2V0QXR0cmlidXRlQ29uZmlnKCJkaXNhYmxlZCIse3ZhbHVlOihGLmRp
c2FibGVkfHxmYWxzZSksdmFsaWRhdG9yOkQuaXNCb29sZWFuLG1ldGhvZDp0aGlz
Ll9zZXREaXNhYmxlZH0pO3RoaXMuc2V0QXR0cmlidXRlQ29uZmlnKCJ2YWx1ZSIs
e3ZhbHVlOkYudmFsdWV9KTt0aGlzLnNldEF0dHJpYnV0ZUNvbmZpZygiY29udGFp
bmVyIix7dmFsdWU6Ri5jb250YWluZXIsd3JpdGVPbmNlOnRydWV9KTt0aGlzLnNl
dEF0dHJpYnV0ZUNvbmZpZygiY2hlY2tlZEJ1dHRvbiIse3ZhbHVlOm51bGx9KTt9
LGFkZEJ1dHRvbjpmdW5jdGlvbihKKXt2YXIgTCxLLEcsRixILEk7aWYoSiBpbnN0
YW5jZW9mIEEmJkouZ2V0KCJ0eXBlIik9PSJyYWRpbyIpe0w9Sjt9ZWxzZXtpZigh
RC5pc1N0cmluZyhKKSYmIUoubm9kZU5hbWUpe0oudHlwZT0icmFkaW8iO0w9bmV3
IEEoSik7fWVsc2V7TD1uZXcgQShKLHt0eXBlOiJyYWRpbyJ9KTt9fWlmKEwpe0Y9
dGhpcy5fYnV0dG9ucy5sZW5ndGg7SD1MLmdldCgibmFtZSIpO0k9dGhpcy5nZXQo
Im5hbWUiKTtMLmluZGV4PUY7dGhpcy5fYnV0dG9uc1tGXT1MO0VbTC5nZXQoImlk
IildPUw7aWYoSCE9SSl7TC5zZXQoIm5hbWUiLEkpO31pZih0aGlzLmdldCgiZGlz
YWJsZWQiKSl7TC5zZXQoImRpc2FibGVkIix0cnVlKTt9aWYoTC5nZXQoImNoZWNr
ZWQiKSl7dGhpcy5zZXQoImNoZWNrZWRCdXR0b24iLEwpO31LPUwuZ2V0KCJlbGVt
ZW50Iik7Rz10aGlzLmdldCgiZWxlbWVudCIpO2lmKEsucGFyZW50Tm9kZSE9Ryl7
Ry5hcHBlbmRDaGlsZChLKTt9TC5vbigiY2hlY2tlZENoYW5nZSIsdGhpcy5fb25C
dXR0b25DaGVja2VkQ2hhbmdlLEwsdGhpcyk7fXJldHVybiBMO30sYWRkQnV0dG9u
czpmdW5jdGlvbihHKXt2YXIgSCxJLEosRjtpZihELmlzQXJyYXkoRykpe0g9Ry5s
ZW5ndGg7Sj1bXTtpZihIPjApe2ZvcihGPTA7RjxIO0YrKyl7ST10aGlzLmFkZEJ1
dHRvbihHW0ZdKTtpZihJKXtKW0oubGVuZ3RoXT1JO319fX1yZXR1cm4gSjt9LHJl
bW92ZUJ1dHRvbjpmdW5jdGlvbihIKXt2YXIgST10aGlzLmdldEJ1dHRvbihIKSxH
LEY7aWYoSSl7dGhpcy5fYnV0dG9ucy5zcGxpY2UoSCwxKTtkZWxldGUgRVtJLmdl
dCgiaWQiKV07SS5yZW1vdmVMaXN0ZW5lcigiY2hlY2tlZENoYW5nZSIsdGhpcy5f
b25CdXR0b25DaGVja2VkQ2hhbmdlKTtJLmRlc3Ryb3koKTtHPXRoaXMuX2J1dHRv
bnMubGVuZ3RoO2lmKEc+MCl7Rj10aGlzLl9idXR0b25zLmxlbmd0aC0xO2Rve3Ro
aXMuX2J1dHRvbnNbRl0uaW5kZXg9Rjt9d2hpbGUoRi0tKTt9fX0sZ2V0QnV0dG9u
OmZ1bmN0aW9uKEYpe3JldHVybiB0aGlzLl9idXR0b25zW0ZdO30sZ2V0QnV0dG9u
czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9idXR0b25zO30sZ2V0Q291bnQ6ZnVu
Y3Rpb24oKXtyZXR1cm4gdGhpcy5fYnV0dG9ucy5sZW5ndGg7fSxmb2N1czpmdW5j
dGlvbihIKXt2YXIgSSxHLEY7aWYoRC5pc051bWJlcihIKSl7ST10aGlzLl9idXR0
b25zW0hdO2lmKEkpe0kuZm9jdXMoKTt9fWVsc2V7Rz10aGlzLmdldENvdW50KCk7
Zm9yKEY9MDtGPEc7RisrKXtJPXRoaXMuX2J1dHRvbnNbRl07aWYoIUkuZ2V0KCJk
aXNhYmxlZCIpKXtJLmZvY3VzKCk7YnJlYWs7fX19fSxjaGVjazpmdW5jdGlvbihG
KXt2YXIgRz10aGlzLmdldEJ1dHRvbihGKTtpZihHKXtHLnNldCgiY2hlY2tlZCIs
dHJ1ZSk7fX0sZGVzdHJveTpmdW5jdGlvbigpe3ZhciBJPXRoaXMuX2J1dHRvbnMu
bGVuZ3RoLEg9dGhpcy5nZXQoImVsZW1lbnQiKSxGPUgucGFyZW50Tm9kZSxHO2lm
KEk+MCl7Rz10aGlzLl9idXR0b25zLmxlbmd0aC0xO2Rve3RoaXMuX2J1dHRvbnNb
R10uZGVzdHJveSgpO313aGlsZShHLS0pO31CLnB1cmdlRWxlbWVudChIKTtGLnJl
bW92ZUNoaWxkKEgpO30sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4oIkJ1dHRv
bkdyb3VwICIrdGhpcy5nZXQoImlkIikpO319KTt9KSgpO1lBSE9PLnJlZ2lzdGVy
KCJidXR0b24iLFlBSE9PLndpZGdldC5CdXR0b24se3ZlcnNpb246IjIuNy4wIixi
dWlsZDoiMTc5OSJ9KTt2YXIgUk5UPXt9O1JOVC5uYW1lc3BhY2U9ZnVuY3Rpb24o
bmFtZSkKe3ZhciBhPWFyZ3VtZW50cyxvPW51bGwsaSxqLGQ7Zm9yKGk9MDtpPGEu
bGVuZ3RoO2k9aSsxKXtkPWFbaV0uc3BsaXQoIi4iKTtvPVJOVDtmb3Ioaj0oZFsw
XT09IlJOVCIpPzE6MDtqPGQubGVuZ3RoO2orKyl7b1tkW2pdXT1vW2Rbal1dfHx7
fTtvPW9bZFtqXV07fX0KcmV0dXJuIG87fTtSTlQubmFtZXNwYWNlKCJNZXNzYWdl
QmFzZSIsIldpZGdldHMiLCJQcm9maWxlIiwiRXZlbnRzIik7Uk5ULldpZGdldHMu
dG9Hbz0wO1JOVC5XaWRnZXRzLmNfaWQ9MDtSTlQuV2lkZ2V0cy5hX2lkPTA7Uk5U
LldpZGdldHMuaV9pZD0wO1JOVC5XaWRnZXRzLnNtcnRfYXNzdD10cnVlO1JOVC5X
aWRnZXRzLmZvcm09bnVsbDtSTlQuV2lkZ2V0cy5mb3JtX2Vycm9yPWZhbHNlO1JO
VC5XaWRnZXRzLmVycm9yX2NvdW50PTA7Uk5ULldpZGdldHMuRm9ybUZpZWxkcz1u
ZXcgQXJyYXkoKTtSTlQuV2lkZ2V0cy5jaGF0U3VibWl0PTA7Uk5ULldpZGdldHMu
cGFzc3dvcmRSZXNldD0wO1JOVC5WSVNfRU5EVVNFUl9FRElUX1JXPTB4MDAwMDAw
MDQ7Uk5ULlZJU19FTkRVU0VSX0RJU1BMQVk9MHgwMDAwMDAwODtSTlQuVklTX0VO
RFVTRVJfRURJVF9STz0weDAwMDAwMDEwO1JOVC5FVUZfRFRfREFURT0xO1JOVC5F
VUZfRFRfREFURVRJTUU9MjtSTlQuRVVGX0RUX1JBRElPPTM7Uk5ULkVVRl9EVF9T
RUxFQ1Q9NDtSTlQuRVVGX0RUX0lOVD01O1JOVC5FVUZfRFRfTUVNTz02O1JOVC5F
VUZfRFRfUEFTU1dPUkQ9NztSTlQuRVVGX0RUX1ZBUkNIQVI9ODtSTlQuRVVGX0RU
X0hJRVJNRU5VPTk7Uk5ULkVVRl9EVF9USFJFQUQ9MTA7Uk5ULkVVRl9EVF9GQVRU
QUNIPTExO1JOVC5FVUZfRFRfQ0hFQ0s9MTI7Uk5ULlRCTF9JTkNJREVOVFM9MTtS
TlQuVEJMX0NPTlRBQ1RTPTI7Uk5ULlRCTF9BTlNXRVJTPTk7Uk5ULklOVF9OVUxM
PS0yMTQ3NDgzNjQ3O1JOVC5BQ1RJT05fQUREPTE7Uk5ULmJhc2U2NGNoYXJhY3Rl
ck1hcD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5ejAxMjM0NTY3ODlfLy4iO1JOVC5iYXNlNjRFbmNvZGU9ZnVuY3Rp
b24oaW5wdXRTdHJpbmcpCntyZXR1cm4gUmlnaHROb3cuVGV4dC5FbmNvZGluZy5i
YXNlNjRFbmNvZGUoaW5wdXRTdHJpbmcpO307Uk5ULmJhc2U2NERlY29kZT1mdW5j
dGlvbihpbnB1dFN0cmluZykKe3JldHVybiBSaWdodE5vdy5UZXh0LkVuY29kaW5n
LmJhc2U2NERlY29kZShpbnB1dFN0cmluZyk7fTtSTlQuZ2V0QXNjaWlQcmVmaXg9
ZnVuY3Rpb24oaW5wdXRTdHJpbmcpCntyZXR1cm4gUmlnaHROb3cuVGV4dC5FbmNv
ZGluZy5nZXRBc2NpaVByZWZpeChpbnB1dFN0cmluZyk7fTtSTlQudXRmOEVuY29k
ZT1mdW5jdGlvbihpbnB1dFN0cmluZykKe3JldHVybiBSaWdodE5vdy5UZXh0LkVu
Y29kaW5nLnV0ZjhFbmNvZGUoaW5wdXRTdHJpbmcpO307Uk5ULnV0ZjhEZWNvZGU9
ZnVuY3Rpb24oaW5wdXRTdHJpbmcpCntyZXR1cm4gUmlnaHROb3cuVGV4dC5FbmNv
ZGluZy51dGY4RGVjb2RlKGlucHV0U3RyaW5nKTt9O2Z1bmN0aW9uIEV2ZW50T2Jq
ZWN0KCkKe3JldHVybiBuZXcgUmlnaHROb3cuRXZlbnQuRXZlbnRPYmplY3QoKTt9
ClJOVC5nb1RvVXJsPWZ1bmN0aW9uKHVybCxleHRlcm5hbCkKe1JpZ2h0Tm93LlVy
bC5uYXZpZ2F0ZSh1cmwsZXh0ZXJuYWwpO307ZnVuY3Rpb24gaXNFbXB0eSgpCntp
Zih0eXBlb2YodGhpcyk9PSJvYmplY3QiKQp7Zm9yKHZhciBwcm9wIGluIHRoaXMp
CmlmKHRoaXMuaGFzT3duUHJvcGVydHkocHJvcCkpCnJldHVybiBmYWxzZTt9CnJl
dHVybiB0cnVlO30KT2JqZWN0LnByb3RvdHlwZS5pc0VtcHR5PWlzRW1wdHk7ZnVu
Y3Rpb24gZmFjdG9yaWFsKG4pCntpZihuPDApCnJldHVybiBudWxsO2lmKG49PTAp
CnJldHVybiAxO2Vsc2UKcmV0dXJuIG4qZmFjdG9yaWFsKG4tMSk7fQpmdW5jdGlv
biBmaW5kUGFyZW50Rm9ybShpZCkKe3ZhciBub2RlPWRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGlkKTtpZihub2RlKQp7d2hpbGUobm9kZS5wYXJlbnROb2RlLnRhZ05h
bWUhPSJCT0RZIikKe25vZGU9bm9kZS5wYXJlbnROb2RlO2lmKG5vZGUudGFnTmFt
ZT09IkZPUk0iKQpyZXR1cm4gbm9kZTt9fQpyZXR1cm4gbnVsbDt9CmZ1bmN0aW9u
IGlzQXJyYXkob2JqKQp7cmV0dXJuIFlBSE9PLmxhbmcuaXNBcnJheShvYmopO30K
ZnVuY3Rpb24gYWR2YW5jZWRNb2RlKGRpc3BFbGVtZW50LGxpbmtFbGVtZW50LGJh
c2ljVGV4dCxhZHZhbmNlZFRleHQpCntSaWdodE5vdy5VSS50b2dnbGVWaXNpYmls
aXR5QW5kVGV4dChkaXNwRWxlbWVudCxsaW5rRWxlbWVudCxiYXNpY1RleHQsYWR2
YW5jZWRUZXh0KTt9CmZ1bmN0aW9uIGhpZGVTaG93KGVsZW1lbnQsaW1hZ2VJZCxl
eHBhbmRUZXh0LGNvbGxhcHNlVGV4dCkKe1JpZ2h0Tm93LlVJLmhpZGVTaG93KGVs
ZW1lbnQsaW1hZ2VJZCxleHBhbmRUZXh0LGNvbGxhcHNlVGV4dCk7fQpmdW5jdGlv
biB1cmxQYXJtQWRkKHVybCxwYXJtX2tleSxwYXJtX3ZhbCkKe3JldHVybiBSaWdo
dE5vdy5VcmwuYWRkUGFyYW1ldGVyKHVybCxwYXJtX2tleSxwYXJtX3ZhbCk7fQpm
dW5jdGlvbiBnZXRVcmxQYXJtKHBhcm1fa2V5KQp7cmV0dXJuIFJpZ2h0Tm93LlVy
bC5nZXRQYXJhbWV0ZXIocGFybV9rZXkpO30KZnVuY3Rpb24gdXJsUGFybURlbGV0
ZSh1cmwscGFybV9rZXkpCntyZXR1cm4gUmlnaHROb3cuVXJsLmRlbGV0ZVBhcmFt
ZXRlcih1cmwscGFybV9rZXkpO30KZnVuY3Rpb24gc2VhcmNoRmlsdGVyc1RvVXJs
KHVybCxmaWx0ZXJzLHJlcG9ydElkLHNlYXJjaGVzKQp7cmV0dXJuIFJpZ2h0Tm93
LlVybC5jb252ZXJ0U2VhcmNoRmlsdGVycyh1cmwsZmlsdGVycyxyZXBvcnRJZCxz
ZWFyY2hlcyk7fQpmdW5jdGlvbiB0cmltQ29tbWEodmFsKQp7cmV0dXJuIFJpZ2h0
Tm93LlRleHQudHJpbUNvbW1hKHZhbCk7fQpmdW5jdGlvbiBnZXRTdWJzdHJpbmdB
ZnRlcihoYXlzdGFjayxuZWVkbGUpCntSaWdodE5vdy5UZXh0LmdldFN1YnN0cmlu
Z0FmdGVyKGhheXN0YWNrLG5lZWRsZSk7fQpmdW5jdGlvbiBoaWdobGlnaHRFbGVt
ZW50KGNvbnRlbnQsc2VhcmNoVGVybSkKe3JldHVybiBSaWdodE5vdy5VSS5oaWdo
bGlnaHRFbGVtZW50KGNvbnRlbnQsc2VhcmNoVGVybSk7fQpmdW5jdGlvbiBjbGVh
ckhpZ2hsaWdodHModGV4dCkKe3JldHVybiBSaWdodE5vdy5VSS5jbGVhckhpZ2hs
aWdodHModGV4dCk7fQpmdW5jdGlvbiBfY3JlYXRlQ29va2llU3RyaW5nKG5hbWUs
dmFsdWUsZW5jb2RlVmFsdWUsb3B0aW9ucyl7dmFyIGxhbmc9WUFIT08ubGFuZzt2
YXIgdGV4dD1lbmNvZGVVUklDb21wb25lbnQobmFtZSkrIj0iKyhlbmNvZGVWYWx1
ZT9lbmNvZGVVUklDb21wb25lbnQodmFsdWUpOnZhbHVlKTtpZihsYW5nLmlzT2Jq
ZWN0KG9wdGlvbnMpKXtpZihvcHRpb25zLmV4cGlyZXMgaW5zdGFuY2VvZiBEYXRl
KXt0ZXh0Kz0iOyBleHBpcmVzPSIrb3B0aW9ucy5leHBpcmVzLnRvR01UU3RyaW5n
KCk7fQppZihsYW5nLmlzU3RyaW5nKG9wdGlvbnMucGF0aCkmJm9wdGlvbnMucGF0
aCE9IiIpe3RleHQrPSI7IHBhdGg9IitvcHRpb25zLnBhdGg7fQppZihsYW5nLmlz
U3RyaW5nKG9wdGlvbnMuZG9tYWluKSYmb3B0aW9ucy5kb21haW4hPSIiKXt0ZXh0
Kz0iOyBkb21haW49IitvcHRpb25zLmRvbWFpbjt9CmlmKG9wdGlvbnMuc2VjdXJl
PT09dHJ1ZSl7dGV4dCs9Ijsgc2VjdXJlIjt9fQpyZXR1cm4gdGV4dDt9CmZ1bmN0
aW9uIF9wYXJzZUNvb2tpZVN0cmluZyh0ZXh0LGRlY29kZSl7dmFyIGNvb2tpZXM9
bmV3IE9iamVjdCgpO2lmKFlBSE9PLmxhbmcuaXNTdHJpbmcodGV4dCkmJnRleHQu
bGVuZ3RoPjApe3ZhciBkZWNvZGVWYWx1ZT0oZGVjb2RlPT09ZmFsc2U/ZnVuY3Rp
b24ocyl7cmV0dXJuIHM7fTpkZWNvZGVVUklDb21wb25lbnQpO2lmKC9bXj1dKz1b
Xj07XT8oPzo7IFtePV0rPVtePV0/KT8vLnRlc3QodGV4dCkpe3ZhciBjb29raWVQ
YXJ0cz10ZXh0LnNwbGl0KC87XHMvZyksY29va2llTmFtZT1udWxsLGNvb2tpZVZh
bHVlPW51bGwsY29va2llTmFtZVZhbHVlPW51bGw7Zm9yKHZhciBpPTAsbGVuPWNv
b2tpZVBhcnRzLmxlbmd0aDtpPGxlbjtpKyspe2Nvb2tpZU5hbWVWYWx1ZT1jb29r
aWVQYXJ0c1tpXS5tYXRjaCgvKFtePV0rKT0vaSk7aWYoY29va2llTmFtZVZhbHVl
IGluc3RhbmNlb2YgQXJyYXkpe3RyeXtjb29raWVOYW1lPWRlY29kZVVSSUNvbXBv
bmVudChjb29raWVOYW1lVmFsdWVbMV0pO2Nvb2tpZVZhbHVlPWRlY29kZVZhbHVl
KGNvb2tpZVBhcnRzW2ldLnN1YnN0cmluZyhjb29raWVOYW1lVmFsdWVbMV0ubGVu
Z3RoKzEpKTt9Y2F0Y2goZXgpe319ZWxzZXtjb29raWVOYW1lPWRlY29kZVVSSUNv
bXBvbmVudChjb29raWVQYXJ0c1tpXSk7Y29va2llVmFsdWU9Y29va2llTmFtZTt9
CmNvb2tpZXNbY29va2llTmFtZV09Y29va2llVmFsdWU7fX19CnJldHVybiBjb29r
aWVzO30KZnVuY3Rpb24gX2dldENvb2tpZShuYW1lLGNvbnZlcnRlcil7dmFyIGxh
bmc9WUFIT08ubGFuZzt2YXIgY29va2llcz1fcGFyc2VDb29raWVTdHJpbmcoZG9j
dW1lbnQuY29va2llKTtpZighbGFuZy5pc1N0cmluZyhuYW1lKXx8bmFtZT09PSIi
KXt0aHJvdyBuZXcgVHlwZUVycm9yKCJDb29raWUuZ2V0KCk6IENvb2tpZSBuYW1l
IG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nLiIpO30KaWYobGFuZy5pc1VuZGVm
aW5lZChjb29raWVzW25hbWVdKSl7cmV0dXJuIG51bGw7fQppZighbGFuZy5pc0Z1
bmN0aW9uKGNvbnZlcnRlcikpe3JldHVybiBjb29raWVzW25hbWVdO31lbHNle3Jl
dHVybiBjb252ZXJ0ZXIoY29va2llc1tuYW1lXSk7fX0KZnVuY3Rpb24gX3NldENv
b2tpZShuYW1lLHZhbHVlLG9wdGlvbnMpe3ZhciBsYW5nPVlBSE9PLmxhbmc7aWYo
IWxhbmcuaXNTdHJpbmcobmFtZSkpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkNvb2tp
ZS5zZXQoKTogQ29va2llIG5hbWUgbXVzdCBiZSBhIHN0cmluZy4iKTt9CmlmKGxh
bmcuaXNVbmRlZmluZWQodmFsdWUpKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJDb29r
aWUuc2V0KCk6IFZhbHVlIGNhbm5vdCBiZSB1bmRlZmluZWQuIik7fQp2YXIgdGV4
dD1fY3JlYXRlQ29va2llU3RyaW5nKG5hbWUsdmFsdWUsdHJ1ZSxvcHRpb25zKTtk
b2N1bWVudC5jb29raWU9dGV4dDtyZXR1cm4gdGV4dDt9CmZ1bmN0aW9uIHNldENv
b2tpZShuYW1lLHZhbHVlLGV4cGlyZXMscGF0aCxkb21haW4sc2VjdXJlKQp7dmFy
IG9wdGlvbnM9e3BhdGg6cGF0aCxkb21haW46ZG9tYWluLHNlY3VyZTpzZWN1cmV9
O2lmKGV4cGlyZXMpe3ZhciBleHBpcmVEYXRlPW5ldyBEYXRlKCk7ZXhwaXJlRGF0
ZS5zZXREYXRlKGV4cGlyZURhdGUuZ2V0RGF0ZSgpK2V4cGlyZXMpO29wdGlvbnMu
ZXhwaXJlcz1leHBpcmVEYXRlO30KcmV0dXJuIF9zZXRDb29raWUobmFtZSx2YWx1
ZSxvcHRpb25zKTt9CmZ1bmN0aW9uIGdldENvb2tpZShuYW1lKQp7cmV0dXJuIF9n
ZXRDb29raWUobmFtZSk7fQpmdW5jdGlvbiBnZXRJbnB1dEZpZWxkQnlDb2x1bW5O
YW1lKG5hbWUscGFyZW50Rm9ybSkKe3JldHVybiBSaWdodE5vdy5VSS5nZXRJbnB1
dEZpZWxkQnlDb2x1bW5OYW1lKG5hbWUscGFyZW50Rm9ybSk7fQpmdW5jdGlvbiB1
cmlUb0Fzc29jKHNlZ21lbnQpCntyZXR1cm4gUmlnaHROb3cuVXJsLmNvbnZlcnRU
b0FycmF5KHNlZ21lbnQpO30KZnVuY3Rpb24gc3Vic2NyaWJlT25jZShub2Rlcyxl
dmVudE5hbWUsaGFuZGxlcikKe3ZhciByZXN1bHQ9dHJ1ZTtpZihZQUhPTy5sYW5n
LmlzQXJyYXkobm9kZXMpfHxZQUhPTy5sYW5nLmlzT2JqZWN0KG5vZGVzKSkKe2Zv
cih2YXIgaT0wO2k8bm9kZXMubGVuZ3RoO2krKykKcmVzdWx0PXN1YnNjcmliZU9u
Y2VIZWxwZXIobm9kZXNbaV0sZXZlbnROYW1lLGhhbmRsZXIpJiZyZXN1bHQ7fQpl
bHNlCntyZXN1bHQ9c3Vic2NyaWJlT25jZUhlbHBlcihub2RlcyxldmVudE5hbWUs
aGFuZGxlcik7fQpyZXR1cm4gcmVzdWx0O30KZnVuY3Rpb24gc3Vic2NyaWJlT25j
ZUhlbHBlcihub2RlLGV2ZW50TmFtZSxoYW5kbGVyKQp7dmFyIGxpc3RlbmVycz1Z
QUhPTy51dGlsLkV2ZW50LmdldExpc3RlbmVycyhub2RlLGV2ZW50TmFtZSk7dmFy
IGNhbkFkZD10cnVlO3ZhciByZXN1bHQ9dHJ1ZTtpZihsaXN0ZW5lcnMpCnt2YXIg
aj0wO3doaWxlKGo8bGlzdGVuZXJzLmxlbmd0aCYmY2FuQWRkKQp7aWYobGlzdGVu
ZXJzW2pdLmZuPT1oYW5kbGVyKQpjYW5BZGQ9ZmFsc2U7aisrO319CmlmKGNhbkFk
ZCkKcmVzdWx0PVlBSE9PLnV0aWwuRXZlbnQuYWRkTGlzdGVuZXIobm9kZSxldmVu
dE5hbWUsaGFuZGxlcik7cmV0dXJuIHJlc3VsdDt9CnZhciBkaWFsb2dCdXR0b25O
YW1lPSJybl9kbGdfYnRuXyI7dmFyIGRpYWxvZ0NvdW50PTA7ZnVuY3Rpb24gYWN0
aW9uRGlhbG9nKHRpdGxlLGVsZW1lbnQsYnV0dG9ucyx3aWR0aCkKe2lmKCghKHRp
dGxlKSl8fCghKGVsZW1lbnQpKXx8KCEoYnV0dG9ucykpKQpyZXR1cm4gbnVsbDtZ
QUhPTy5uYW1lc3BhY2UoJ3dpZGdldC5hY3Rpb25EaWFsb2cnKTtkaWFsb2dDb3Vu
dCsrO3ZhciBlbGVtZW50TmFtZT0ncm5EaWFsb2cnK2RpYWxvZ0NvdW50O1lBSE9P
LndpZGdldC5hY3Rpb25EaWFsb2cuZGlhbG9nPW5ldyBZQUhPTy53aWRnZXQuU2lt
cGxlRGlhbG9nKGVsZW1lbnROYW1lLHt2aXNpYmxlOmZhbHNlLHpJbmRleDo5OTk5
LGNsb3NlOnRydWUsZHJhZ2dhYmxlOmZhbHNlLGZpeGVkY2VudGVyOnRydWUsbW9k
YWw6dHJ1ZSxwb3NpdGlvbjonYWJzb2x1dGUnLGNvbnN0cmFpbnRvdmlld3BvcnQ6
dHJ1ZSx1bmRlcmxheTonc2hhZG93J30pO1lBSE9PLndpZGdldC5hY3Rpb25EaWFs
b2cuZGlhbG9nLmRpYWxvZ051bWJlcj1kaWFsb2dDb3VudDtZQUhPTy53aWRnZXQu
YWN0aW9uRGlhbG9nLmRpYWxvZy5zZXRIZWFkZXIoIjxkaXYgY2xhc3M9J3RsJz48
L2Rpdj48c3BhbiBjbGFzcz0nRGlhbG9nSGVhZGVyJz4iK3RpdGxlKyI8L3NwYW4+
PGRpdiBjbGFzcz0ndHInPjwvZGl2PiIpO1lBSE9PLndpZGdldC5hY3Rpb25EaWFs
b2cuZGlhbG9nLnNldEJvZHkoZWxlbWVudCk7WUFIT08ud2lkZ2V0LmFjdGlvbkRp
YWxvZy5kaWFsb2cuc2V0Rm9vdGVyKCc8ZGl2IGNsYXNzPSJibCI+PC9kaXY+IDxz
cGFuIGlkPSJybl9kbGdfYnV0dG9ucyI+PC9zcGFuPjxkaXYgY2xhc3M9ImJyIj48
L2Rpdj4nKTtpZih3aWR0aCkKWUFIT08ud2lkZ2V0LmFjdGlvbkRpYWxvZy5kaWFs
b2cuY2ZnLnF1ZXVlUHJvcGVydHkoJ3dpZHRoJyx3aWR0aCk7WUFIT08ud2lkZ2V0
LmFjdGlvbkRpYWxvZy5kaWFsb2cucmVuZGVyKGRvY3VtZW50LmJvZHkpO1lBSE9P
LndpZGdldC5hY3Rpb25EaWFsb2cuZGlhbG9nLmNsb3NlLmlubmVySFRNTD0iIjt2
YXIgZGlhbG9nQnV0dG9uUHJlZml4PWRpYWxvZ0J1dHRvbk5hbWUrZGlhbG9nQ291
bnQ7dmFyIGJ1dHRvbkFycmF5PW5ldyBBcnJheSgpO2Zvcih2YXIgaT0wO2k8YnV0
dG9ucy5sZW5ndGg7aSsrKQp7YnV0dG9uQXJyYXlbaV09bmV3IFlBSE9PLndpZGdl
dC5CdXR0b24oe2lkOmRpYWxvZ0J1dHRvblByZWZpeCsnXycraSx0eXBlOiJidXR0
b24iLGxhYmVsOmJ1dHRvbnNbaV0udGV4dCxjb250YWluZXI6InJuX2RsZ19idXR0
b25zIn0pO2lmKGJ1dHRvbnNbaV0uaGFuZGxlcil7YnV0dG9uQXJyYXlbaV0uYWRk
TGlzdGVuZXIoJ2NsaWNrJyxidXR0b25zW2ldLmhhbmRsZXIpO319CmlmKFlBSE9P
LndpZGdldC5hY3Rpb25EaWFsb2cuZGlhbG9nLmJyaW5nVG9Ub3ApCllBSE9PLndp
ZGdldC5hY3Rpb25EaWFsb2cuZGlhbG9nLmJyaW5nVG9Ub3AoKTtZQUhPTy51dGls
LkRvbS5hZGRDbGFzcyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50TmFt
ZSksJ3JuX2RpYWxvZycpO3JldHVybiBZQUhPTy53aWRnZXQuYWN0aW9uRGlhbG9n
LmRpYWxvZzt9CmZ1bmN0aW9uIGRpc2FibGVEaWFsb2dCdXR0b25zKGRpYWxvZ19p
ZCkKe3ZhciBkaWFsb2dCdXR0b25QcmVmaXg9ZGlhbG9nQnV0dG9uTmFtZStkaWFs
b2dfaWQ7dmFyIHN1Ym1pdEJ1dHRvbj1ZQUhPTy53aWRnZXQuQnV0dG9uLmdldEJ1
dHRvbihkaWFsb2dCdXR0b25QcmVmaXgrJ18wJyk7aWYoc3VibWl0QnV0dG9uKQpz
dWJtaXRCdXR0b24uc2V0KCJkaXNhYmxlZCIsdHJ1ZSk7dmFyIGNhbmNlbEJ1dHRv
bj1ZQUhPTy53aWRnZXQuQnV0dG9uLmdldEJ1dHRvbihkaWFsb2dCdXR0b25QcmVm
aXgrJ18xJyk7aWYoY2FuY2VsQnV0dG9uKQpjYW5jZWxCdXR0b24uc2V0KCJkaXNh
YmxlZCIsdHJ1ZSk7fQpmdW5jdGlvbiBkaXNhYmxlRGlhbG9nU3VibWl0QnV0dG9u
KGRpYWxvZ19pZCkKe3ZhciBkaWFsb2dCdXR0b25QcmVmaXg9ZGlhbG9nQnV0dG9u
TmFtZStkaWFsb2dfaWQ7dmFyIHN1Ym1pdEJ1dHRvbj1ZQUhPTy53aWRnZXQuQnV0
dG9uLmdldEJ1dHRvbihkaWFsb2dCdXR0b25QcmVmaXgrJ18wJyk7aWYoc3VibWl0
QnV0dG9uKQpzdWJtaXRCdXR0b24uc2V0KCJkaXNhYmxlZCIsdHJ1ZSk7fQpmdW5j
dGlvbiBlbmFibGVEaWFsb2dCdXR0b25zKGRpYWxvZ19pZCkKe3ZhciBkaWFsb2dC
dXR0b25QcmVmaXg9ZGlhbG9nQnV0dG9uTmFtZStkaWFsb2dfaWQ7dmFyIHN1Ym1p
dEJ1dHRvbj1ZQUhPTy53aWRnZXQuQnV0dG9uLmdldEJ1dHRvbihkaWFsb2dCdXR0
b25QcmVmaXgrJ18wJyk7aWYoc3VibWl0QnV0dG9uKQpzdWJtaXRCdXR0b24uc2V0
KCJkaXNhYmxlZCIsZmFsc2UpO3ZhciBjYW5jZWxCdXR0b249WUFIT08ud2lkZ2V0
LkJ1dHRvbi5nZXRCdXR0b24oZGlhbG9nQnV0dG9uUHJlZml4KydfMScpO2lmKGNh
bmNlbEJ1dHRvbikKY2FuY2VsQnV0dG9uLnNldCgiZGlzYWJsZWQiLGZhbHNlKTt9
CmZ1bmN0aW9uIGFkZERpYWxvZ0VudGVyS2V5TGlzdGVuZXIoZGlhbG9nLGZ1bmN0
aW9uTmFtZSkKe2lmKCghKGRpYWxvZykpfHwoIShmdW5jdGlvbk5hbWUpKSkKcmV0
dXJuIG51bGw7dmFyIGtleUxpc3RlbmVyPW5ldyBZQUhPTy51dGlsLktleUxpc3Rl
bmVyKGRvY3VtZW50LHtrZXlzOjEzfSx7Zm46ZnVuY3Rpb25OYW1lLHNjb3BlOmRp
YWxvZyxjb3JyZWN0U2NvcGU6dHJ1ZX0pO2RpYWxvZy5jZmcuc2V0UHJvcGVydHko
ImtleWxpc3RlbmVycyIsa2V5TGlzdGVuZXIpO3JldHVybiBrZXlMaXN0ZW5lcjt9
CmZ1bmN0aW9uIGRpc2FibGVEaWFsb2dLZXlMaXN0ZW5lcihkaWFsb2csa2V5TGlz
dGVuZXIpCntpZigoIShkaWFsb2cpKXx8KCEoa2V5TGlzdGVuZXIpKSkKcmV0dXJu
IG51bGw7ZGlhbG9nLmNmZy5zZXRQcm9wZXJ0eSgia2V5bGlzdGVuZXJzIixudWxs
KTtrZXlMaXN0ZW5lci5kaXNhYmxlKCk7fQpmdW5jdGlvbiBlbmFibGVEaWFsb2dL
ZXlMaXN0ZW5lcihkaWFsb2csa2V5TGlzdGVuZXIpCntpZigoIShkaWFsb2cpKXx8
KCEoa2V5TGlzdGVuZXIpKSkKcmV0dXJuIG51bGw7ZGlhbG9nLmNmZy5zZXRQcm9w
ZXJ0eSgia2V5bGlzdGVuZXJzIixrZXlMaXN0ZW5lcik7a2V5TGlzdGVuZXIuZW5h
YmxlKCk7fQpmdW5jdGlvbiBkaXNhYmxlRGlhbG9nQ29udHJvbHMoZGlhbG9nLGtl
eUxpc3RlbmVyKQp7ZGlzYWJsZURpYWxvZ0tleUxpc3RlbmVyKGRpYWxvZyxrZXlM
aXN0ZW5lcik7ZGlzYWJsZURpYWxvZ0J1dHRvbnMoZGlhbG9nLmRpYWxvZ051bWJl
cik7fQpmdW5jdGlvbiBkaXNhYmxlRGlhbG9nU3VibWl0Q29udHJvbHMoZGlhbG9n
LGtleUxpc3RlbmVyKQp7ZGlzYWJsZURpYWxvZ0tleUxpc3RlbmVyKGRpYWxvZyxr
ZXlMaXN0ZW5lcik7ZGlzYWJsZURpYWxvZ1N1Ym1pdEJ1dHRvbihkaWFsb2cuaWQu
dG9TdHJpbmcoKSk7fQpmdW5jdGlvbiBlbmFibGVEaWFsb2dDb250cm9scyhkaWFs
b2csa2V5TGlzdGVuZXIsZm9jdXNFbGVtZW50KQp7ZW5hYmxlRGlhbG9nS2V5TGlz
dGVuZXIoZGlhbG9nLGtleUxpc3RlbmVyKTtlbmFibGVEaWFsb2dCdXR0b25zKGRp
YWxvZy5kaWFsb2dOdW1iZXIpO2lmKGZvY3VzRWxlbWVudCl7Zm9jdXNFbGVtZW50
LmZvY3VzKCk7fX0KZnVuY3Rpb24gbWVzc2FnZURpYWxvZyh0aXRsZSxtZXNzYWdl
LGljb24sZXhpdENhbGxiYWNrLGZvY3VzRWxlbWVudCkKe1lBSE9PLm5hbWVzcGFj
ZSgnd2lkZ2V0LmFsZXJ0Jyk7ZnVuY3Rpb24gaGFuZGxlT2soKQp7WUFIT08ud2lk
Z2V0LmFsZXJ0LmRsZy5kZXN0cm95KCk7aWYoZXhpdENhbGxiYWNrKXtpZihmb2N1
c0VsZW1lbnQpe2V4aXRDYWxsYmFjayhmb2N1c0VsZW1lbnQpO30KZWxzZQpleGl0
Q2FsbGJhY2soKTt9fQpmdW5jdGlvbiBmb2N1c0ZpcnN0QnV0dG9uKCkKe2lmKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJybl9kbGdfYnV0dG9ucyIpKQp7dmFyIG9r
QnRuTmFtZT1kaWFsb2dCdXR0b25OYW1lK1lBSE9PLndpZGdldC5hbGVydC5kbGcu
ZGlhbG9nTnVtYmVyKydfMCc7dmFyIG15T0tCdXR0b249WUFIT08ud2lkZ2V0LkJ1
dHRvbi5nZXRCdXR0b24ob2tCdG5OYW1lKTtpZihteU9LQnV0dG9uKQpteU9LQnV0
dG9uLmZvY3VzKCk7fQplbHNlCnthbGVydCgiQ29udGVudCBub3QgcmVhZHkiKTt9
fQpidXR0b25zPVt7dGV4dDpSTlQuTWVzc2FnZUJhc2UuT0ssaGFuZGxlcjpoYW5k
bGVPayxpc0RlZmF1bHQ6dHJ1ZX1dO3ZhciB0aXRsZVN0cj10aXRsZTtzd2l0Y2go
aWNvbikKe2Nhc2UiSEVMUCI6dmFyIGljb249WUFIT08ud2lkZ2V0LlNpbXBsZURp
YWxvZy5JQ09OX0hFTFA7YnJlYWs7Y2FzZSJJTkZPIjp2YXIgaWNvbj1ZQUhPTy53
aWRnZXQuU2ltcGxlRGlhbG9nLklDT05fSU5GTzticmVhaztjYXNlIldBUk4iOnZh
ciBpY29uPVlBSE9PLndpZGdldC5TaW1wbGVEaWFsb2cuSUNPTl9XQVJOO2JyZWFr
O2RlZmF1bHQ6YnJlYWs7fQpZQUhPTy53aWRnZXQuYWxlcnQuZGxnPWFjdGlvbkRp
YWxvZyh0aXRsZVN0cixkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSxi
dXR0b25zKTtpZihZQUhPTy53aWRnZXQuYWxlcnQuZGxnLmJyaW5nVG9Ub3ApCllB
SE9PLndpZGdldC5hbGVydC5kbGcuYnJpbmdUb1RvcCgpO2lmKGljb24pCllBSE9P
LndpZGdldC5hbGVydC5kbGcuY2ZnLnF1ZXVlUHJvcGVydHkoJ2ljb24nLGljb24p
O1lBSE9PLndpZGdldC5hbGVydC5kbGcuY2ZnLnF1ZXVlUHJvcGVydHkoJ3dpZHRo
JywnMjBlbScpO1lBSE9PLndpZGdldC5hbGVydC5kbGcuY2ZnLnF1ZXVlUHJvcGVy
dHkoJ2ZpeGVkY2VudGVyJyx0cnVlKTtZQUhPTy53aWRnZXQuYWxlcnQuZGxnLmNm
Zy5zZXRQcm9wZXJ0eSgncm9sZScsJ2FsZXJ0ZGlhbG9nJyk7dmFyIG1zZ0RsZ0sx
PW5ldyBZQUhPTy51dGlsLktleUxpc3RlbmVyKGRvY3VtZW50LHtrZXlzOjEzfSx7
Zm46aGFuZGxlT2ssc2NvcGU6WUFIT08ud2lkZ2V0LmFsZXJ0LmRsZyxjb3JyZWN0
U2NvcGU6dHJ1ZX0pO1lBSE9PLndpZGdldC5hbGVydC5kbGcuY2ZnLnF1ZXVlUHJv
cGVydHkoImtleWxpc3RlbmVycyIsbXNnRGxnSzEpO1lBSE9PLndpZGdldC5hbGVy
dC5kbGcuaGlkZUV2ZW50LnN1YnNjcmliZShoYW5kbGVPayk7WUFIT08udXRpbC5F
dmVudC5vbkNvbnRlbnRSZWFkeShZQUhPTy53aWRnZXQuYWxlcnQuZGxnLmlkLGZv
Y3VzRmlyc3RCdXR0b24sdGhpcyk7WUFIT08ud2lkZ2V0LmFsZXJ0LmRsZy5yZW5k
ZXIoKTtZQUhPTy53aWRnZXQuYWxlcnQuZGxnLnNob3coKTtyZXR1cm4gWUFIT08u
d2lkZ2V0LmFsZXJ0LmRsZzt9CmZ1bmN0aW9uIHVwZGF0ZVRpbWVyKGlkLHRpbWVy
LHN1Yl9sYWJlbCkKe3RpbWVyLS07aWYodGltZXI9PTApCmRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKGlkKS52YWx1ZT1zdWJfbGFiZWw7ZWxzZQp7ZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoaWQpLnZhbHVlPXRpbWVyO3NldFRpbWVvdXQoInVwZGF0ZVRp
bWVyKCciK2lkKyInLCIrdGltZXIrIiwnIitzdWJfbGFiZWwrIicpIiwxMDAwKTt9
fQpmdW5jdGlvbiB1cGRhdGVUaW1lcjIoaWQsdGltZXIpCnt2YXIgdGltZXJFbGVt
ZW50PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtpZih0aW1lckVsZW1lbnQp
e3RpbWVyLS07aWYodGltZXI9PTApe3RpbWVyRWxlbWVudC5pbm5lckhUTUw9IiI7
fQplbHNlCnt0aW1lckVsZW1lbnQuaW5uZXJIVE1MPXRpbWVyKycnO3NldFRpbWVv
dXQoInVwZGF0ZVRpbWVyMignIitpZCsiJywiK3RpbWVyKyIpIiwxMDAwKTt9fX0K
dmFyIGdsb2JhbERpYWxvZz1udWxsO3ZhciBnbG9iYWxLZXlMaXN0ZW5lcj1udWxs
O3ZhciBnbG9iYWxFcnJvckVsZW1lbnQ9bnVsbDtmdW5jdGlvbiByZXNldENvbnRy
b2xzQW5kVGV4dChkaWFsb2csa2V5TGlzdGVuZXIsZXJyb3JFbGVtZW50KQp7aWYo
KCEoZGlhbG9nKSl8fCghKGtleUxpc3RlbmVyKSl8fCghKGVycm9yRWxlbWVudCkp
KQpyZXR1cm4gbnVsbDtlbmFibGVEaWFsb2dDb250cm9scyhkaWFsb2csa2V5TGlz
dGVuZXIpO2Vycm9yRWxlbWVudC5pbm5lckhUTUw9Jyc7fQpmdW5jdGlvbiBhbGVy
dERpYWxvZyhtZXNzYWdlLGljb24pCntZQUhPTy5uYW1lc3BhY2UoJ3dpZGdldC5h
bGVydCcpO3RoaXMuaGFuZGxlT2s9ZnVuY3Rpb24oKQp7WUFIT08ud2lkZ2V0LmFs
ZXJ0LmRsZy5oaWRlKCk7fTtidXR0b25zPVt7dGV4dDonT2snLGhhbmRsZXI6aGFu
ZGxlT2ssaXNEZWZhdWx0OnRydWV9XTtZQUhPTy53aWRnZXQuYWxlcnQuZGxnPW5l
dyBZQUhPTy53aWRnZXQuU2ltcGxlRGlhbG9nKCd3aWRnZXRfYWxlcnQnLHtidXR0
b25zOmJ1dHRvbnMsdmlzaWJsZTpmYWxzZSx3aWR0aDonMjBlbScsekluZGV4Ojk5
OTksY2xvc2U6dHJ1ZSxmaXhlZGNlbnRlcjp0cnVlLG1vZGFsOmZhbHNlLGRyYWdn
YWJsZTpmYWxzZSxjb25zdHJhaW50b3ZpZXdwb3J0OnRydWV9KTtZQUhPTy53aWRn
ZXQuYWxlcnQuZGxnLnNldEJvZHkobWVzc2FnZSk7c3dpdGNoKGljb24pCntjYXNl
IkhFTFAiOllBSE9PLndpZGdldC5hbGVydC5kbGcuY2ZnLnF1ZXVlUHJvcGVydHko
J2ljb24nLFlBSE9PLndpZGdldC5TaW1wbGVEaWFsb2cuSUNPTl9IRUxQKTtZQUhP
Ty53aWRnZXQuYWxlcnQuZGxnLnNldEhlYWRlcihSTlQuTWVzc2FnZUJhc2UuSEVM
UCk7YnJlYWs7Y2FzZSJJTkZPIjpZQUhPTy53aWRnZXQuYWxlcnQuZGxnLmNmZy5x
dWV1ZVByb3BlcnR5KCdpY29uJyxZQUhPTy53aWRnZXQuU2ltcGxlRGlhbG9nLklD
T05fSU5GTyk7WUFIT08ud2lkZ2V0LmFsZXJ0LmRsZy5zZXRIZWFkZXIoUk5ULk1l
c3NhZ2VCYXNlLklORk8pO2JyZWFrO2RlZmF1bHQ6WUFIT08ud2lkZ2V0LmFsZXJ0
LmRsZy5jZmcucXVldWVQcm9wZXJ0eSgnaWNvbicsWUFIT08ud2lkZ2V0LlNpbXBs
ZURpYWxvZy5JQ09OX1dBUk4pO1lBSE9PLndpZGdldC5hbGVydC5kbGcuc2V0SGVh
ZGVyKFJOVC5NZXNzYWdlQmFzZS5XQVJOKTt9CllBSE9PLndpZGdldC5hbGVydC5k
bGcuY2ZnLnF1ZXVlUHJvcGVydHkoJ3pJbmRleCcsOTk5OSk7WUFIT08ud2lkZ2V0
LmFsZXJ0LmRsZy5yZW5kZXIoZG9jdW1lbnQuYm9keSk7aWYoWUFIT08ud2lkZ2V0
LmFsZXJ0LmRsZy5icmluZ1RvVG9wKQpZQUhPTy53aWRnZXQuYWxlcnQuZGxnLmJy
aW5nVG9Ub3AoKTtZQUhPTy53aWRnZXQuYWxlcnQuZGxnLnNob3coKTt9CmZ1bmN0
aW9uIHRleHREaWFsb2cobWVzc2FnZSxidXR0b25zLGljb24pCnt2YXIgZGxnPW5l
dyBZQUhPTy53aWRnZXQuU2ltcGxlRGlhbG9nKCd3aWRnZXRfYWxlcnQnLHtidXR0
b25zOmJ1dHRvbnMsdmlzaWJsZTpmYWxzZSx3aWR0aDonMjBlbScsekluZGV4Ojk5
OTksY2xvc2U6dHJ1ZSxmaXhlZGNlbnRlcjpmYWxzZSxtb2RhbDp0cnVlLGRyYWdn
YWJsZTpmYWxzZSxjb25zdHJhaW50b3ZpZXdwb3J0OnRydWV9KTtkbGcuc2V0Qm9k
eShtZXNzYWdlKTtzd2l0Y2goaWNvbikKe2Nhc2UiSEVMUCI6ZGxnLmNmZy5xdWV1
ZVByb3BlcnR5KCdpY29uJyxZQUhPTy53aWRnZXQuU2ltcGxlRGlhbG9nLklDT05f
SEVMUCk7ZGxnLnNldEhlYWRlcihSTlQuTWVzc2FnZUJhc2UuSEVMUCk7YnJlYWs7
Y2FzZSJJTkZPIjpkbGcuY2ZnLnF1ZXVlUHJvcGVydHkoJ2ljb24nLFlBSE9PLndp
ZGdldC5TaW1wbGVEaWFsb2cuSUNPTl9JTkZPKTtkbGcuc2V0SGVhZGVyKFJOVC5N
ZXNzYWdlQmFzZS5JTkZPKTticmVhaztkZWZhdWx0OmRsZy5jZmcucXVldWVQcm9w
ZXJ0eSgnaWNvbicsWUFIT08ud2lkZ2V0LlNpbXBsZURpYWxvZy5JQ09OX1dBUk4p
O2RsZy5zZXRIZWFkZXIoUk5ULk1lc3NhZ2VCYXNlLldBUk4pO30KZGxnLmNmZy5x
dWV1ZVByb3BlcnR5KCd6SW5kZXgnLDk5OTkpO2RsZy5yZW5kZXIoZG9jdW1lbnQu
Ym9keSk7aWYoZGxnLmJyaW5nVG9Ub3ApCmRsZy5icmluZ1RvVG9wKCk7cmV0dXJu
IGRsZzt9CmZ1bmN0aW9uIGFkdmFuY2VkX21vZGUoKQp7aWYoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImFkdnNlYXJjaCIpLnN0eWxlLmRpc3BsYXk9PSJub25lIikK
e2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhZHZzZWFyY2giKS5zdHlsZS5kaXNw
bGF5PSJibG9jayI7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFkdl9vcGVuIiku
aW5uZXJIVE1MPSIjcm46bXNnOkJBU0lDX1NFQVJDSF9MQkwjIjt9CmVsc2UgaWYo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFkdnNlYXJjaCIpLnN0eWxlLmRpc3Bs
YXk9PSJibG9jayIpCntkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWR2c2VhcmNo
Iikuc3R5bGUuZGlzcGxheT0ibm9uZSI7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImFkdl9vcGVuIikuaW5uZXJIVE1MPSIjcm46bXNnOkFEVkFOQ0VEX1NFQVJDSF9M
QkwjIjt9fQpmdW5jdGlvbiBsZW5ndGhXaXRob3V0U3BhY2VzKHN0cmluZykKe3N0
cmluZz1zdHJpbmcucmVwbGFjZSgvXlxzK3xccyskL2csJycpO3JldHVybihzdHJp
bmcubGVuZ3RoKTt9CmlmKCFPYmplY3QucHJvdG90eXBlLnRvSlNPTlN0cmluZyl7
QXJyYXkucHJvdG90eXBlLnRvSlNPTlN0cmluZz1mdW5jdGlvbigpe3ZhciBhPVsi
WyJdLGIsaSxsPXRoaXMubGVuZ3RoLHY7ZnVuY3Rpb24gcChzKXtpZihiKXthLnB1
c2goIiwiKTt9CmEucHVzaChzKTtiPXRydWU7fQpmb3IoaT0wO2k8bDtpKz0xKXt2
PXRoaXNbaV07c3dpdGNoKHR5cGVvZiB2KXtjYXNlIm9iamVjdCI6aWYodil7aWYo
dHlwZW9mIHYudG9KU09OU3RyaW5nPT09ImZ1bmN0aW9uIil7cCh2LnRvSlNPTlN0
cmluZygpKTt9fWVsc2V7cCgibnVsbCIpO30KYnJlYWs7Y2FzZSJzdHJpbmciOmNh
c2UibnVtYmVyIjpjYXNlImJvb2xlYW4iOnAodi50b0pTT05TdHJpbmcoKSk7fX0K
YS5wdXNoKCJdIik7cmV0dXJuIGEuam9pbigiIik7fTtCb29sZWFuLnByb3RvdHlw
ZS50b0pTT05TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gU3RyaW5nKHRoaXMpO307
RGF0ZS5wcm90b3R5cGUudG9KU09OU3RyaW5nPWZ1bmN0aW9uKCl7ZnVuY3Rpb24g
ZihuKXtyZXR1cm4gbjwxMD8iMCIrbjpuO30KcmV0dXJuIlwiIit0aGlzLmdldEZ1
bGxZZWFyKCkrIi0iK2YodGhpcy5nZXRNb250aCgpKzEpKyItIitmKHRoaXMuZ2V0
RGF0ZSgpKSsiVCIrZih0aGlzLmdldEhvdXJzKCkpKyI6IitmKHRoaXMuZ2V0TWlu
dXRlcygpKSsiOiIrZih0aGlzLmdldFNlY29uZHMoKSkrIlwiIjt9O051bWJlci5w
cm90b3R5cGUudG9KU09OU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGlzRmluaXRl
KHRoaXMpP1N0cmluZyh0aGlzKToibnVsbCI7fTtPYmplY3QucHJvdG90eXBlLnRv
SlNPTlN0cmluZz1mdW5jdGlvbigpe3ZhciBhPVsieyJdLGIsayx2O2Z1bmN0aW9u
IHAocyl7aWYoYil7YS5wdXNoKCIsIik7fQphLnB1c2goay50b0pTT05TdHJpbmco
KSwiOiIscyk7Yj10cnVlO30KZm9yKGsgaW4gdGhpcyl7aWYodGhpcy5oYXNPd25Q
cm9wZXJ0eShrKSl7dj10aGlzW2tdO3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJvYmpl
Y3QiOmlmKHYpe2lmKHR5cGVvZiB2LnRvSlNPTlN0cmluZz09PSJmdW5jdGlvbiIp
e3Aodi50b0pTT05TdHJpbmcoKSk7fX1lbHNle3AoIm51bGwiKTt9CmJyZWFrO2Nh
c2Uic3RyaW5nIjpjYXNlIm51bWJlciI6Y2FzZSJib29sZWFuIjpwKHYudG9KU09O
U3RyaW5nKCkpO319fQphLnB1c2goIn0iKTtyZXR1cm4gYS5qb2luKCIiKTt9Oyhm
dW5jdGlvbihzKXt2YXIgbT17IlxiIjoiXFxiIiwiXHQiOiJcXHQiLCJcbiI6Ilxc
biIsIlxmIjoiXFxmIiwiXHIiOiJcXHIiLCJcIiI6IlxcXCIiLCJcXCI6IlxcXFwi
fTtzLnBhcnNlSlNPTj1mdW5jdGlvbihfOCl7dmFyIGo7ZnVuY3Rpb24gd2Fsayhr
LHYpe3ZhciBpO2lmKHYmJnR5cGVvZiB2PT09Im9iamVjdCIpe2ZvcihpIGluIHYp
e2lmKHYuaGFzT3duUHJvcGVydHkoaSkpe3ZbaV09d2FsayhpLHZbaV0pO319fQpy
ZXR1cm4gXzgoayx2KTt9CmlmKC9eKCIoXFwufFteIlxcXG5ccl0pKj8ifFssOnt9
XFtcXTAtOS5cLStFYWVmbG5yLXUgXG5cclx0XSkrPyQvLnRlc3QodGhpcykpe3Ry
eXtqPWV2YWwoIigiK3RoaXMrIikiKTt9CmNhdGNoKGUpe3JldHVybiBmYWxzZTt9
fWVsc2V7cmV0dXJuIGZhbHNlO30KaWYodHlwZW9mIF84PT09ImZ1bmN0aW9uIil7
aj13YWxrKCIiLGopO30KcmV0dXJuIGo7fTtzLnRvSlNPTlN0cmluZz1mdW5jdGlv
bigpe2lmKC9bIlxcXHgwMC1ceDFmXS8udGVzdCh0aGlzKSl7cmV0dXJuIlwiIit0
aGlzLnJlcGxhY2UoLyhbXHgwMC1ceDFmXFwiXSkvZyxmdW5jdGlvbihhLGIpe3Zh
ciBjPW1bYl07aWYoYyl7cmV0dXJuIGM7fQpjPWIuY2hhckNvZGVBdCgpO3JldHVy
biJcXHUwMCIrTWF0aC5mbG9vcihjLzE2KS50b1N0cmluZygxNikrKGMlMTYpLnRv
U3RyaW5nKDE2KTt9KSsiXCIiO30KcmV0dXJuIlwiIit0aGlzKyJcIiI7fTt9KShT
dHJpbmcucHJvdG90eXBlKTt9aWYodHlwZW9mIFJOVD09PSJ1bmRlZmluZWQifHx0
eXBlb2YgUk5UIT09Im9iamVjdCIpe3ZhciBSTlQ9e307Uk5ULkV2ZW50cz17fTt9
CnZhciBvbl9iZWZvcmVfYWpheF9yZXF1ZXN0PW5ldyBZQUhPTy51dGlsLkN1c3Rv
bUV2ZW50KCJvbl9iZWZvcmVfYWpheF9yZXF1ZXN0Iik7dmFyIGV2dF9zb3J0X3R5
cGVfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X3NvcnRf
dHlwZV9yZXF1ZXN0Iik7dmFyIGV2dF9zb3J0X3R5cGVfdXBkYXRlPW5ldyBZQUhP
Ty51dGlsLkN1c3RvbUV2ZW50KCJldnRfc29ydF90eXBlX3VwZGF0ZSIpO3ZhciBl
dnRfb3JnX3R5cGVfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgi
ZXZ0X29yZ190eXBlX3JlcXVlc3QiKTt2YXIgZXZ0X29yZ190eXBlX3VwZGF0ZT1u
ZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X29yZ190eXBlX3VwZGF0ZSIp
O3ZhciBldnRfa2V5d29yZF9jaGFuZ2VkX3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwu
Q3VzdG9tRXZlbnQoImV2dF9rZXl3b3JkX2NoYW5nZWRfcmVxdWVzdCIpO3ZhciBl
dnRfa2V5d29yZF9jaGFuZ2VkX3VwZGF0ZT1uZXcgWUFIT08udXRpbC5DdXN0b21F
dmVudCgiZXZ0X2tleXdvcmRfY2hhbmdlZF91cGRhdGUiKTt2YXIgZXZ0X3NlYXJj
aF9yZXF1ZXN0PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfc2VhcmNo
X3JlcXVlc3QiKTt2YXIgZXZ0X3NlYXJjaF91cGRhdGU9bmV3IFlBSE9PLnV0aWwu
Q3VzdG9tRXZlbnQoImV2dF9zZWFyY2hfdXBkYXRlIik7dmFyIGV2dF9nZXRfZmls
dGVyc19yZXF1ZXN0PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfZ2V0
X2ZpbHRlcnNfcmVxdWVzdCIpO3ZhciBldnRfc2VhcmNoX2ZpbHRlcnNfdXBkYXRl
PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfc2VhcmNoX2ZpbHRlcnNf
dXBkYXRlIik7dmFyIGV2dF9zZWFyY2hfdHlwZV9yZXF1ZXN0PW5ldyBZQUhPTy51
dGlsLkN1c3RvbUV2ZW50KCJldnRfc2VhcmNoX3R5cGVfcmVxdWVzdCIpO3ZhciBl
dnRfc2VhcmNoX3R5cGVfdXBkYXRlPW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50
KCJldnRfc2VhcmNoX3R5cGVfdXBkYXRlIik7dmFyIGV2dF9jdXN0b21fbWVudV9y
ZXF1ZXN0PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfY3VzdG9tX21l
bnVfcmVxdWVzdCIpO3ZhciBldnRfY3VzdG9tX21lbnVfdXBkYXRlPW5ldyBZQUhP
Ty51dGlsLkN1c3RvbUV2ZW50KCJldnRfY3VzdG9tX21lbnVfdXBkYXRlIik7dmFy
IGV2dF9tZW51X2ZpbHRlcl9nZXRfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0
b21FdmVudCgiZXZ0X21lbnVfZmlsdGVyX2dldF9yZXF1ZXN0Iik7dmFyIGV2dF9t
ZW51X2ZpbHRlcl9zZWxlY3RfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21F
dmVudCgiZXZ0X21lbnVfZmlsdGVyX3NlbGVjdF9yZXF1ZXN0Iik7dmFyIGV2dF9t
ZW51X2ZpbHRlcl9nZXRfdXBkYXRlPW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50
KCJldnRfbWVudV9maWx0ZXJfZ2V0X3VwZGF0ZSIpO3ZhciBldnRfbWVudV9maWx0
ZXJfc2VsZWN0X3VwZGF0ZT1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0
X21lbnVfZmlsdGVyX3NlbGVjdF91cGRhdGUiKTt2YXIgZXZ0X21lbnVfZmlsdGVy
X3NldF91cGRhdGU9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9tZW51
X2ZpbHRlcl9zZXRfdXBkYXRlIik7dmFyIGV2dF9tZW51X2ZpbHRlcl9zZXR0aW5n
X3VwZGF0ZT1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X21lbnVfZmls
dGVyX3NldHRpbmdfdXBkYXRlIik7dmFyIGV2dF9tZW51X2ZpbHRlcl9zZXRfcmVx
dWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X21lbnVfZmlsdGVy
X3NldF9yZXF1ZXN0Iik7dmFyIGV2dF9zZWFyY2hfZmlsdGVyc191bnByb2Nlc3Nl
ZF9yZXF1ZXN0PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfc2VhcmNo
X2ZpbHRlcnNfdW5wcm9jZXNzZWRfcmVxdWVzdCIpO3ZhciBldnRfc2VhcmNoX2Zp
bHRlcnNfdW5wcm9jZXNzZWRfdXBkYXRlPW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2
ZW50KCJldnRfc2VhcmNoX2ZpbHRlcnNfdW5wcm9jZXNzZWRfdXBkYXRlIik7dmFy
IGV2dF9wYWdlX3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2
dF9wYWdlX3JlcXVlc3QiKTt2YXIgZXZ0X3JlcG9ydF91cGRhdGU9bmV3IFlBSE9P
LnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9yZXBvcnRfdXBkYXRlIik7dmFyIGV2dF9z
ZXRfaW5pdGlhbF9maWx0ZXJzX3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwuQ3VzdG9t
RXZlbnQoImV2dF9zZXRfaW5pdGlhbF9maWx0ZXJzX3JlcXVlc3QiKTt2YXIgZXZ0
X3NlYXJjaF9pbl9wcm9ncmVzc19yZXF1ZXN0PW5ldyBZQUhPTy51dGlsLkN1c3Rv
bUV2ZW50KCJldnRfc2VhcmNoX2luX3Byb2dyZXNzX3JlcXVlc3QiKTt2YXIgZXZ0
X3NlYXJjaF9pbl9wcm9ncmVzc191cGRhdGU9bmV3IFlBSE9PLnV0aWwuQ3VzdG9t
RXZlbnQoImV2dF9zZWFyY2hfaW5fcHJvZ3Jlc3NfdXBkYXRlIik7dmFyIGV2dF9t
b3JlX3Jlc3VsdHNfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgi
ZXZ0X21vcmVfcmVzdWx0c19yZXF1ZXN0Iik7dmFyIGV2dF9ncmlkX3dpZGdldF91
cGRhdGU9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9ncmlkX3dpZGdl
dF91cGRhdGUiKTt2YXIgZXZ0X3RvcGljX3dvcmRzX3VwZGF0ZT1uZXcgWUFIT08u
dXRpbC5DdXN0b21FdmVudCgiZXZ0X3RvcGljX3dvcmRzX3VwZGF0ZSIpO3ZhciBl
dnRfc2VhcmNoX3N1Z2dlc3RfdXBkYXRlPW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2
ZW50KCJldnRfc2VhcmNoX3N1Z2dlc3RfdXBkYXRlIik7dmFyIGV2dF9maWxlX3Vw
bG9hZF9yZXF1ZXN0PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfZmls
ZV91cGxvYWRfcmVxdWVzdCIpO3ZhciBldnRfZmlsZV91cGxvYWRfdXBkYXRlPW5l
dyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfZmlsZV91cGxvYWRfdXBkYXRl
Iik7dmFyIGV2dF9hX2lkX3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZl
bnQoImV2dF9hX2lkX3JlcXVlc3QiKTt2YXIgZXZ0X2FfaWRfdXBkYXRlPW5ldyBZ
QUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfYV9pZF91cGRhdGUiKTt2YXIgZXZ0
X2lfaWRfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X2lf
aWRfcmVxdWVzdCIpO3ZhciBldnRfaV9pZF91cGRhdGU9bmV3IFlBSE9PLnV0aWwu
Q3VzdG9tRXZlbnQoImV2dF9pX2lkX3VwZGF0ZSIpO3ZhciBldnRfZmZfdmFsaWRh
dGVfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X2ZmX3Zh
bGlkYXRlX3JlcXVlc3QiKTt2YXIgZXZ0X2ZmX3ZhbGlkYXRlX3VwZGF0ZT1uZXcg
WUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X2ZmX3ZhbGlkYXRlX3VwZGF0ZSIp
O3ZhciBldnRfZmZfY291bnQ9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2
dF9mZl9jb3VudCIpO3ZhciBldnRfZmZfcHJvdmluY2VfcmVxdWVzdD1uZXcgWUFI
T08udXRpbC5DdXN0b21FdmVudCgiZXZ0X2ZmX3Byb3ZpbmNlX3JlcXVlc3QiKTt2
YXIgZXZ0X2ZmX3Byb3ZpbmNlX3VwZGF0ZT1uZXcgWUFIT08udXRpbC5DdXN0b21F
dmVudCgiZXZ0X2ZmX3Byb3ZpbmNlX3VwZGF0ZSIpO3ZhciBldnRfZmZfYWNjb3Vu
dF9leGlzdHNfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0
X2ZmX2FjY291bnRfZXhpc3RzX3JlcXVlc3QiKTt2YXIgZXZ0X2ZmX2FjY291bnRf
ZXhpc3RzX3VwZGF0ZT1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X2Zm
X2FjY291bnRfZXhpc3RzX3VwZGF0ZSIpO3ZhciBldnRfZm9ybV9idXR0b25fc3Vi
bWl0PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfZm9ybV9idXR0b25f
c3VibWl0Iik7dmFyIGV2dF9mb3JtX2J1dHRvbl9zdWJtaXRfdXBkYXRlPW5ldyBZ
QUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfZm9ybV9idXR0b25fc3VibWl0X3Vw
ZGF0ZSIpO3ZhciBldnRfZm9ybV92YWxpZGF0ZWQ9bmV3IFlBSE9PLnV0aWwuQ3Vz
dG9tRXZlbnQoImV2dF9mb3JtX3ZhbGlkYXRlZCIpO3ZhciBldnRfZm9ybV9mYWls
X3ZhbGlkYXRpb249bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9mb3Jt
X2ZhaWxfdmFsaWRhdGlvbiIpO3ZhciBldnRfZm9ybV9vcGVuX2luZm9fcmVxdWVz
dD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgiZXZ0X2Zvcm1fb3Blbl9pbmZv
X3JlcXVlc3QiKTt2YXIgZXZ0X2Zvcm1fcGFzc3dkX3Jlc2V0PW5ldyBZQUhPTy51
dGlsLkN1c3RvbUV2ZW50KCJldnRfZm9ybV9wYXNzd2RfcmVzZXQiKTt2YXIgZXZ0
X2VtYWlsX2xpbmtfc3VibWl0X3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwuQ3VzdG9t
RXZlbnQoImV2dF9lbWFpbF9saW5rX3N1Ym1pdF9yZXF1ZXN0Iik7dmFyIGV2dF9l
bWFpbF9saW5rX3N1Ym1pdF91cGRhdGU9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZl
bnQoImV2dF9lbWFpbF9saW5rX3N1Ym1pdF91cGRhdGUiKTt2YXIgZXZ0X2VtYWls
X3Bhc3N3b3JkX3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2
dF9lbWFpbF9wYXNzd29yZF9yZXF1ZXN0Iik7dmFyIGV2dF9lbWFpbF9wYXNzd29y
ZF91cGRhdGU9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9lbWFpbF9w
YXNzd29yZF91cGRhdGUiKTt2YXIgZXZ0X2VtYWlsX3VzZXJuYW1lX3JlcXVlc3Q9
bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9lbWFpbF91c2VybmFtZV9y
ZXF1ZXN0Iik7dmFyIGV2dF9lbWFpbF91c2VybmFtZV91cGRhdGU9bmV3IFlBSE9P
LnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9lbWFpbF91c2VybmFtZV91cGRhdGUiKTt2
YXIgZXZ0X2xvZ2luX2Zvcm1fc3VibWl0X3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwu
Q3VzdG9tRXZlbnQoImV2dF9sb2dpbl9mb3JtX3N1Ym1pdF9yZXF1ZXN0Iik7dmFy
IGV2dF9sb2dpbl9mb3JtX3N1Ym1pdF91cGRhdGU9bmV3IFlBSE9PLnV0aWwuQ3Vz
dG9tRXZlbnQoImV2dF9sb2dpbl9mb3JtX3N1Ym1pdF91cGRhdGUiKTt2YXIgZXZ0
X2xvZ291dF9saW5rX3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQo
ImV2dF9sb2dvdXRfbGlua19yZXF1ZXN0Iik7dmFyIGV2dF9sb2dvdXRfbGlua191
cGRhdGU9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9sb2dvdXRfbGlu
a191cGRhdGUiKTt2YXIgZXZ0X2ZlZWRiYWNrX3N1Ym1pdF9yZXF1ZXN0PW5ldyBZ
QUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfZmVlZGJhY2tfc3VibWl0X3JlcXVl
c3QiKTt2YXIgZXZ0X2ZlZWRiYWNrX3N1Ym1pdF91cGRhdGU9bmV3IFlBSE9PLnV0
aWwuQ3VzdG9tRXZlbnQoImV2dF9mZWVkYmFja19zdWJtaXRfdXBkYXRlIik7dmFy
IGV2dF9hbnN3ZXJfbm90aWZpY2F0aW9uX3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwu
Q3VzdG9tRXZlbnQoImV2dF9hbnN3ZXJfbm90aWZpY2F0aW9uX3JlcXVlc3QiKTt2
YXIgZXZ0X2Fuc3dlcl9ub3RpZmljYXRpb25fdXBkYXRlPW5ldyBZQUhPTy51dGls
LkN1c3RvbUV2ZW50KCJldnRfYW5zd2VyX25vdGlmaWNhdGlvbl91cGRhdGUiKTt2
YXIgZXZ0X2Fuc3dlcl9ub3RpZmljYXRpb25fZGVsZXRlX3JlcXVlc3Q9bmV3IFlB
SE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9hbnN3ZXJfbm90aWZpY2F0aW9uX2Rl
bGV0ZV9yZXF1ZXN0Iik7dmFyIGV2dF9hbnN3ZXJfbm90aWZpY2F0aW9uX2RlbGV0
ZV91cGRhdGU9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9hbnN3ZXJf
bm90aWZpY2F0aW9uX2RlbGV0ZV91cGRhdGUiKTt2YXIgZXZ0X3Byb2RjYXRfbm90
aWZpY2F0aW9uX3JlbmV3YWxfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21F
dmVudCgiZXZ0X3Byb2RjYXRfbm90aWZpY2F0aW9uX3JlbmV3YWxfcmVxdWVzdCIp
O3ZhciBldnRfcHJvZGNhdF9ub3RpZmljYXRpb25fcmVuZXdhbF91cGRhdGU9bmV3
IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9wcm9kY2F0X25vdGlmaWNhdGlv
bl9yZW5ld2FsX3VwZGF0ZSIpO3ZhciBldnRfcHJvZGNhdF9ub3RpZmljYXRpb25f
ZGVsZXRlX3JlcXVlc3Q9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9w
cm9kY2F0X25vdGlmaWNhdGlvbl9kZWxldGVfcmVxdWVzdCIpO3ZhciBldnRfcHJv
ZGNhdF9ub3RpZmljYXRpb25fZGVsZXRlX3VwZGF0ZT1uZXcgWUFIT08udXRpbC5D
dXN0b21FdmVudCgiZXZ0X3Byb2RjYXRfbm90aWZpY2F0aW9uX2RlbGV0ZV91cGRh
dGUiKTt2YXIgZXZ0X3Byb2RjYXRfbm90aWZpY2F0aW9uX3JlcXVlc3Q9bmV3IFlB
SE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9wcm9kY2F0X25vdGlmaWNhdGlvbl9y
ZXF1ZXN0Iik7dmFyIGV2dF9wcm9kY2F0X25vdGlmaWNhdGlvbl91cGRhdGU9bmV3
IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9wcm9kY2F0X25vdGlmaWNhdGlv
bl91cGRhdGUiKTt2YXIgZXZ0X2NoYXRfcXVldWVfdXBkYXRlPW5ldyBZQUhPTy51
dGlsLkN1c3RvbUV2ZW50KCJldnRfY2hhdF9xdWV1ZV91cGRhdGUiKTt2YXIgZXZ0
X2NoYXRfcXVldWVfcmVxdWVzdD1uZXcgWUFIT08udXRpbC5DdXN0b21FdmVudCgi
ZXZ0X2NoYXRfcXVldWVfcmVxdWVzdCIpO3ZhciBldnRfY2hhdF9zZXR0aW5nc19y
ZXF1ZXN0PW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfY2hhdF9zZXR0
aW5nc19yZXF1ZXN0Iik7dmFyIGV2dF9jaGF0X25vdGlmeV9mYXR0YWNoX3JlcXVl
c3Q9bmV3IFlBSE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9jaGF0X25vdGlmeV9m
YXR0YWNoX3JlcXVlc3QiKTt2YXIgZXZ0X2NoYXRfbm90aWZ5X2ZhdHRhY2hfdXBk
YXRlPW5ldyBZQUhPTy51dGlsLkN1c3RvbUV2ZW50KCJldnRfY2hhdF9ub3RpZnlf
ZmF0dGFjaF91cGRhdGUiKTt2YXIgZXZ0X3BhY19zdGF0X3JlcXVlc3Q9bmV3IFlB
SE9PLnV0aWwuQ3VzdG9tRXZlbnQoImV2dF9wYWNfc3RhdF9yZXF1ZXN0Iik7ZnVu
Y3Rpb24gc2V0SW5pdGFsUmVwb3J0RmlsdGVycyhyZXBvcnRfaWQsdG9rZW4sZmls
dGVycyxmb3JtYXQpCnt2YXIgZW89bmV3IFJpZ2h0Tm93LkV2ZW50LkV2ZW50T2Jq
ZWN0KCk7ZW8udHlwZT0ncmVwb3J0Jztlby5maWx0ZXJzLnJlcG9ydF9pZD1yZXBv
cnRfaWQ7ZW8uZmlsdGVycy50b2tlbj10b2tlbjtlby5kYXRhLmZpbHRlcnM9Zmls
dGVycztlby5kYXRhLmZvcm1hdD1mb3JtYXQ7ZXZ0X3NldF9pbml0aWFsX2ZpbHRl
cnNfcmVxdWVzdC5maXJlKGVvKTt9CmZ1bmN0aW9uIHN0YXJ0U2VhcmNoKGRhdGEp
Cntlbz1uZXcgUmlnaHROb3cuRXZlbnQuRXZlbnRPYmplY3QoKTtlby5uYW1lPWRh
dGEuaW5mby5jb250cm9sbGVyX25hbWU7ZW8udHlwZT1kYXRhLmluZm8udHlwZTtl
by53X2lkPWRhdGEuaW5mby53X2lkO2VvLmZpbHRlcnMucmVwb3J0X2lkPWRhdGEu
YXR0cnMucmVwb3J0X2lkO2VvLmRhdGEucmVwb3J0X3BhZ2U9ZGF0YS5hdHRycy5y
ZXBvcnRfcGFnZTtldnRfc2VhcmNoX2luX3Byb2dyZXNzX3JlcXVlc3QuZmlyZShl
byk7ZXZ0X3NlYXJjaF9yZXF1ZXN0LmZpcmUoZW8pO30KZnVuY3Rpb24gaW50ZXJj
ZXB0SGVscGVyKHRlbXBVcmwpCnt2YXIgcGFybXM9UmlnaHROb3cuVXJsLmNvbnZl
cnRUb0FycmF5KFJpZ2h0Tm93LlVybC5nZXRQYXJhbWV0ZXJTZWdtZW50KCkpO2Zv
cih2YXIga2V5IGluIHBhcm1zKQp7aWYocGFybXMuaGFzT3duUHJvcGVydHkoa2V5
KSYma2V5IT0ic2Vzc2lvbiImJmtleSE9ImFfaWQiJiZrZXkhPSJpX2lkIiYma2V5
IT0icmVmbm8iJiZrZXkhPSJlcnJvcl9pZCImJmtleSE9InJlZGlyZWN0IiYma2V5
IT0ibm90aWYiJiZrZXkhPSJyZWxhdGVkIiYma2V5IT0ibXNnIiYma2V5IT0ic2Vh
cmNoIikKe3RlbXBVcmw9UmlnaHROb3cuVXJsLmFkZFBhcmFtZXRlcih0ZW1wVXJs
LGtleSxwYXJtc1trZXldKTt9fQpyZXR1cm4gdGVtcFVybDt9CmZ1bmN0aW9uIEV2
ZW50cygpCnt2YXIgc2VhcmNoX2ZpbHRlcnM9bmV3IE9iamVjdCgpO3ZhciBzZWFy
Y2hlcz1udWxsO3ZhciBmaWx0ZXJfY291bnQ9bmV3IE9iamVjdCgpO3ZhciBoaWVy
X21lbnVfbGlua19tYXA9ZmFsc2U7dmFyIHBsX25hbWU9IlBhZ2VMb2dpY0NvbnRy
b2xsZXIiO3ZhciBzZXNzaW9uO3ZhciBzZXNzaW9uVmFsdWU9IiI7dmFyIGNoYXQ9
bmV3IE9iamVjdCgpO3ZhciBHRVRfREFUQT0xO3ZhciBDSEFOR0VfUEFHRT0yO3Zh
ciBTRU5EX0ZJTFRFUlM9Mzt2YXIgX2Fuc3dlcklEPTA7dmFyIF9pbmNpZGVudElE
PTA7dmFyIGJyb3dzZXJIaXN0b3J5TWFuYWdlbWVudEtleT0icyI7dmFyIGlzQnJv
d3Nlckhpc3RvcnlNYW5hZ2VtZW50RW5hYmxlZD1mYWxzZTt2YXIgZW1wdHlIaXN0
b3J5U3RhdGU9ZmFsc2U7dmFyIGNhY2hlZFJlcG9ydFJlc3BvbnNlcz1bXTt0aGlz
LmluaXQ9ZnVuY3Rpb24oc2Vzc2lvblBhcm0pCntzZXNzaW9uPXNlc3Npb25QYXJt
O2lmKHNlc3Npb25QYXJtIT09IiIpCntzZXNzaW9uVmFsdWU9UmlnaHROb3cuVGV4
dC5nZXRTdWJzdHJpbmdBZnRlcihzZXNzaW9uLCcvc2Vzc2lvbi8nKTtzZWFyY2hl
cz1SaWdodE5vdy5VcmwuZ2V0UGFyYW1ldGVyKCJzbm8iKTtpZighc2VhcmNoZXMp
CnNlYXJjaGVzPTA7fQppbml0TGlua0ludGVyY2VwdGlvbigpO2V2dF9rZXl3b3Jk
X2NoYW5nZWRfcmVxdWVzdC5zdWJzY3JpYmUob25LZXl3b3JkQ2hhbmdlZFJlcXVl
c3QpO2V2dF9zZWFyY2hfcmVxdWVzdC5zdWJzY3JpYmUob25TZWFyY2hSZXF1ZXN0
KTtldnRfc2VhcmNoX2ZpbHRlcnNfdXBkYXRlLnN1YnNjcmliZShvblNlYXJjaEZp
bHRlcnNVcGRhdGUpO2V2dF9zZWFyY2hfdHlwZV9yZXF1ZXN0LnN1YnNjcmliZShv
blNlYXJjaFR5cGVSZXF1ZXN0KTtldnRfc29ydF90eXBlX3JlcXVlc3Quc3Vic2Ny
aWJlKG9uU29ydFR5cGVSZXF1ZXN0KTtldnRfb3JnX3R5cGVfcmVxdWVzdC5zdWJz
Y3JpYmUob25PcmdUeXBlUmVxdWVzdCk7ZXZ0X2N1c3RvbV9tZW51X3JlcXVlc3Qu
c3Vic2NyaWJlKG9uQ3VzdG9tTWVudVJlcXVlc3QpO2V2dF9wYWdlX3JlcXVlc3Qu
c3Vic2NyaWJlKG9uUGFnZVJlcXVlc3QpO2V2dF9zZXRfaW5pdGlhbF9maWx0ZXJz
X3JlcXVlc3Quc3Vic2NyaWJlKG9uU2V0SW5pdGlhbEZpbHRlcnNSZXF1ZXN0KTtl
dnRfc2VhcmNoX2luX3Byb2dyZXNzX3JlcXVlc3Quc3Vic2NyaWJlKG9uU2VhcmNo
SW5Qcm9ncmVzcyk7ZXZ0X21vcmVfcmVzdWx0c19yZXF1ZXN0LnN1YnNjcmliZShv
bk1vcmVSZXN1bHRzUmVxdWVzdCk7ZXZ0X2dyaWRfd2lkZ2V0X3VwZGF0ZS5zdWJz
Y3JpYmUoUmlnaHROb3cuVXJsLnRyYW5zZm9ybUxpbmtzKTtldnRfZ3JpZF93aWRn
ZXRfdXBkYXRlLnN1YnNjcmliZShpbml0TGlua0ludGVyY2VwdGlvbik7ZXZ0X21l
bnVfZmlsdGVyX2dldF9yZXF1ZXN0LnN1YnNjcmliZShvbk1lbnVGaWx0ZXJHZXQp
O2V2dF9tZW51X2ZpbHRlcl9zZWxlY3RfcmVxdWVzdC5zdWJzY3JpYmUob25NZW51
RmlsdGVyU2VsZWN0KTtldnRfbWVudV9maWx0ZXJfc2V0X3JlcXVlc3Quc3Vic2Ny
aWJlKG9uTWVudUZpbHRlclNldCk7ZXZ0X3NlYXJjaF9maWx0ZXJzX3VucHJvY2Vz
c2VkX3JlcXVlc3Quc3Vic2NyaWJlKG9uU2VhcmNoRmlsdGVyc1VucHJvY2Vzc2Vk
KTtldnRfZmlsZV91cGxvYWRfcmVxdWVzdC5zdWJzY3JpYmUob25GaWxlVXBsb2Fk
KTtldnRfZmZfdmFsaWRhdGVfcmVxdWVzdC5zdWJzY3JpYmUoZmZfdmFsaWRhdGVf
cmVxdWVzdCk7ZXZ0X2ZmX3Byb3ZpbmNlX3JlcXVlc3Quc3Vic2NyaWJlKG9uQ291
bnRyeVJlcXVlc3QpO2V2dF9mZl9hY2NvdW50X2V4aXN0c19yZXF1ZXN0LnN1YnNj
cmliZShvbkFjY291bnRFeGlzdHNSZXF1ZXN0KTtldnRfZmZfY291bnQuc3Vic2Ny
aWJlKG9uRkZDb3VudCk7ZXZ0X2Zvcm1fYnV0dG9uX3N1Ym1pdC5zdWJzY3JpYmUo
c3VibWl0X3JlcXVlc3QpO2V2dF9mb3JtX29wZW5faW5mb19yZXF1ZXN0LnN1YnNj
cmliZShnZXRUYWJsZUlkcyk7ZXZ0X2Zvcm1fcGFzc3dkX3Jlc2V0LnN1YnNjcmli
ZShvblNlbmRQYXNzd29yZFJlc2V0Rm9ybSk7ZXZ0X2VtYWlsX2xpbmtfc3VibWl0
X3JlcXVlc3Quc3Vic2NyaWJlKG9uRW1haWxMaW5rUmVxdWVzdCk7ZXZ0X2VtYWls
X3Bhc3N3b3JkX3JlcXVlc3Quc3Vic2NyaWJlKG9uRW1haWxQYXNzd29yZFJlcXVl
c3QpO2V2dF9lbWFpbF91c2VybmFtZV9yZXF1ZXN0LnN1YnNjcmliZShvbkVtYWls
VXNlcm5hbWVSZXF1ZXN0KTtldnRfbG9naW5fZm9ybV9zdWJtaXRfcmVxdWVzdC5z
dWJzY3JpYmUob25Mb2dpbkZvcm1SZXF1ZXN0KTtldnRfbG9nb3V0X2xpbmtfcmVx
dWVzdC5zdWJzY3JpYmUob25Mb2dvdXRMaW5rUmVxdWVzdCk7ZXZ0X2ZlZWRiYWNr
X3N1Ym1pdF9yZXF1ZXN0LnN1YnNjcmliZShvbkZlZWRiYWNrRm9ybVJlcXVlc3Qp
O2V2dF9hbnN3ZXJfbm90aWZpY2F0aW9uX3JlcXVlc3Quc3Vic2NyaWJlKG9uQW5z
d2VyTm90aWZpY2F0aW9uUmVxdWVzdCk7ZXZ0X2Fuc3dlcl9ub3RpZmljYXRpb25f
ZGVsZXRlX3JlcXVlc3Quc3Vic2NyaWJlKG9uQW5zd2VyTm90aWZpY2F0aW9uRGVs
ZXRlUmVxdWVzdCk7ZXZ0X3Byb2RjYXRfbm90aWZpY2F0aW9uX2RlbGV0ZV9yZXF1
ZXN0LnN1YnNjcmliZShvblByb2RDYXREZWxldGVSZXF1ZXN0KTtldnRfcHJvZGNh
dF9ub3RpZmljYXRpb25fcmVuZXdhbF9yZXF1ZXN0LnN1YnNjcmliZShvblByb2RD
YXRSZW5ld1JlcXVlc3QpO2V2dF9wcm9kY2F0X25vdGlmaWNhdGlvbl9yZXF1ZXN0
LnN1YnNjcmliZShvblByb2RDYXROb3RpZmljYXRpb25SZXF1ZXN0KTtldnRfaV9p
ZF9yZXF1ZXN0LnN1YnNjcmliZShvbkluY2lkZW50Q2hhbmdlZCk7ZXZ0X2FfaWRf
cmVxdWVzdC5zdWJzY3JpYmUob25BbnN3ZXJDaGFuZ2VkKTtldnRfY2hhdF9xdWV1
ZV9yZXF1ZXN0LnN1YnNjcmliZShvbkNoZWNrUXVldWUpO2V2dF9jaGF0X3NldHRp
bmdzX3JlcXVlc3Quc3Vic2NyaWJlKG9uQ2hhdFNldHRpbmdzUmVxdWVzdCk7ZXZ0
X2NoYXRfbm90aWZ5X2ZhdHRhY2hfcmVxdWVzdC5zdWJzY3JpYmUob25DaGF0Tm90
aWZ5RkF0dGFjaCk7fTtmdW5jdGlvbiBpbnRlcmNlcHRMaW5rQ2xpY2soZSkKe2lm
KCh0aGlzLmhyZWYuaW5kZXhPZignamF2YXNjcmlwdDonKT4tMXx8dGhpcy5ocmVm
PT0iIil8fHRoaXMuaHJlZi5pbmRleE9mKCdkb2Nfdmlldy5waHAnKT4tMXx8dGhp
cy5ocmVmLmluZGV4T2YoJ2RvY19zdWJtaXQucGhwJyk+LTF8fHRoaXMuaHJlZi5p
bmRleE9mKCdkb2Nfc2VydmUucGhwJyk+LTF8fHRoaXMuaHJlZi5pbmRleE9mKCdx
YXV0aWxzLnBocCcpPi0xfHx0aGlzLmhyZWYuaW5kZXhPZigndmVyaWZ5X2FjY3Rf
bG9naW4ucGhwJyk+LTF8fHRoaXMuaG9zdG5hbWUhPXdpbmRvdy5sb2NhdGlvbi5o
b3N0bmFtZXx8KHRoaXMuaHJlZi5pbmRleE9mKCIvY2kvIik+LTEmJiEodGhpcy5o
cmVmLmluZGV4T2YoIi9jaS9vcGVuc2VhcmNoIik+LTEpKSkKcmV0dXJuO2lmKCFZ
QUhPTy51dGlsLkRvbS5oYXNDbGFzcyh0aGlzLCJub0ludGVyY2VwdCIpKQp7dmFy
IHRlbXBVcmw9dGhpcy5ocmVmO2lmKHRoaXMuaHJlZi5pbmRleE9mKCdub0ludGVy
Y2VwdCcpPi0xKQp7dGVtcFVybD11cmxQYXJtRGVsZXRlKHRlbXBVcmwsIm5vSW50
ZXJjZXB0Iik7dGVtcFVybD11cmxQYXJtQWRkKHRlbXBVcmwsInNlYXJjaCIsMSk7
dGhpcy5ocmVmPXRlbXBVcmw7cmV0dXJuIHRydWU7fQp2YXIgZW1wdHlTZWFyY2hG
aWx0ZXJzPXRydWU7Zm9yKHZhciBwcm9wIGluIHNlYXJjaF9maWx0ZXJzKQp7aWYo
c2VhcmNoX2ZpbHRlcnMuaGFzT3duUHJvcGVydHkocHJvcCkpCntlbXB0eVNlYXJj
aEZpbHRlcnM9ZmFsc2U7YnJlYWs7fX0KaWYoZW1wdHlTZWFyY2hGaWx0ZXJzKQp7
dGVtcFVybD1pbnRlcmNlcHRIZWxwZXIodGVtcFVybCk7fQplbHNlCntmb3IodmFy
IHJlcG9ydCBpbiBzZWFyY2hfZmlsdGVycykKe2lmKHNlYXJjaF9maWx0ZXJzLmhh
c093blByb3BlcnR5KHJlcG9ydCkpCnt0ZW1wVXJsPVJpZ2h0Tm93LlVybC5jb252
ZXJ0U2VhcmNoRmlsdGVycyh0ZW1wVXJsLHNlYXJjaF9maWx0ZXJzW3JlcG9ydF0u
ZmlsdGVycyxyZXBvcnQsc2VhcmNoZXMpO2NvbnRpbnVlO319fQp0aGlzLmhyZWY9
dGVtcFVybDt9fQpmdW5jdGlvbiBpbml0TGlua0ludGVyY2VwdGlvbigpCnt2YXIg
bm9kZXM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKTtSaWdodE5v
dy5VSS5zdWJzY3JpYmVPbmNlKG5vZGVzLCJjbGljayIsaW50ZXJjZXB0TGlua0Ns
aWNrKTt9CmZ1bmN0aW9uIGFuc3dlck5vdGlmaWNhdGlvblVwZGF0ZShvKQp7aWYo
by5yZXNwb25zZVRleHQhPW51bGwpCmV2dF9hbnN3ZXJfbm90aWZpY2F0aW9uX3Vw
ZGF0ZS5maXJlKG8ucmVzcG9uc2VUZXh0KTt9CmZ1bmN0aW9uIG9uQW5zd2VyTm90
aWZpY2F0aW9uUmVxdWVzdCh0eXBlLGV2ZW50X29iaikKe3ZhciBldnRPYmo9ZXZl
bnRfb2JqWzBdO3ZhciBwb3N0PWV2dE9iai5kYXRhLnBvc3Q7dmFyIHVybD0iL2Np
L2FqYXhSZXF1ZXN0L2Fuc3dlck5vdGlmaWNhdGlvbiI7Uk5ULkV2ZW50cy5hamF4
UmVxdWVzdChwb3N0LHVybCwiYW5zd2VyTm90aWZpY2F0aW9uVXBkYXRlIik7fQpm
dW5jdGlvbiBhbnN3ZXJOb3RpZmljYXRpb25EZWxldGVVcGRhdGUobykKe2lmKG8u
cmVzcG9uc2VUZXh0IT1udWxsKQpldnRfYW5zd2VyX25vdGlmaWNhdGlvbl9kZWxl
dGVfdXBkYXRlLmZpcmUoby5yZXNwb25zZVRleHQpO30KZnVuY3Rpb24gb25BbnN3
ZXJOb3RpZmljYXRpb25EZWxldGVSZXF1ZXN0KHR5cGUsZXZlbnRfb2JqKQp7dmFy
IGV2dE9iaj1ldmVudF9vYmpbMF07dmFyIHBvc3Q9ZXZ0T2JqLmRhdGEucG9zdDt2
YXIgdXJsPSIvY2kvYWpheFJlcXVlc3QvYW5zd2VyTm90aWZpY2F0aW9uIjtSTlQu
RXZlbnRzLmFqYXhSZXF1ZXN0KHBvc3QsdXJsLCJhbnN3ZXJOb3RpZmljYXRpb25E
ZWxldGVVcGRhdGUiKTt9CmZ1bmN0aW9uIGxvZ2luU3VjY2VzcyhvKQp7aWYoby5y
ZXNwb25zZVRleHQhPW51bGwpCmV2dF9sb2dpbl9mb3JtX3N1Ym1pdF91cGRhdGUu
ZmlyZShvLnJlc3BvbnNlVGV4dCk7fQpmdW5jdGlvbiBsb2dvdXRTdWNjZXNzKG8p
CntpZihvLnJlc3BvbnNlVGV4dCE9bnVsbCkKZXZ0X2xvZ291dF9saW5rX3VwZGF0
ZS5maXJlKG8ucmVzcG9uc2VUZXh0KTt9CmZ1bmN0aW9uIG9uTG9naW5Gb3JtUmVx
dWVzdCh0eXBlLGV2ZW50X29iaikKe3ZhciBldnRPYmo9ZXZlbnRfb2JqWzBdO3Zh
ciBwb3N0PWV2dE9iai5kYXRhLnBvc3Q7dmFyIHVybD0iL2NpL2FqYXhSZXF1ZXN0
L2RvTG9naW4iO1JOVC5FdmVudHMuYWpheFJlcXVlc3QocG9zdCx1cmwsImxvZ2lu
U3VjY2VzcyIsImdlbmVyaWNBamF4RmFpbHVyZSIsZXZ0T2JqLndfaWQpO30KZnVu
Y3Rpb24gb25Mb2dvdXRMaW5rUmVxdWVzdCh0eXBlLGV2ZW50X29iaikKe3ZhciBl
dnRPYmo9ZXZlbnRfb2JqWzBdO3ZhciBwb3N0PWV2dE9iai5kYXRhLnBvc3Q7dmFy
IHVybD0iL2NpL2FqYXhSZXF1ZXN0L2RvTG9nb3V0IjtSTlQuRXZlbnRzLmFqYXhS
ZXF1ZXN0KHBvc3QsdXJsLCJsb2dvdXRTdWNjZXNzIik7fQpmdW5jdGlvbiBvbkZp
bGVVcGxvYWQodHlwZSxldmVudF9vYmopCnt2YXIgdXBsb2FkX3R5cGU9ZXZlbnRf
b2JqWzBdLmRhdGEudXBsb2FkX3R5cGU7dmFyIGNhbGxiYWNrPXt1cGxvYWQ6dXBs
b2FkQ2FsbGJhY2ssZmFpbHVyZTpnZW5lcmljQWpheEZhaWx1cmV9O3RyeQp7aWYo
dXBsb2FkX3R5cGU9PSJjaGF0IikKWUFIT08udXRpbC5Db25uZWN0LmFzeW5jUmVx
dWVzdCgnUE9TVCcsIi9jaS9mYXR0YWNoL3VwbG9hZENoYXQvIitldmVudF9vYmpb
MF0uZGF0YS5lbmdhZ2VtZW50X2lkKyIvIitldmVudF9vYmpbMF0uZGF0YS5jaGF0
X3NpZCxjYWxsYmFjayk7ZWxzZQpZQUhPTy51dGlsLkNvbm5lY3QuYXN5bmNSZXF1
ZXN0KCdQT1NUJywiL2NpL2ZhdHRhY2gvdXBsb2FkIitzZXNzaW9uLGNhbGxiYWNr
KTt9CmNhdGNoKGUpCnt2YXIgbz1uZXcgT2JqZWN0KCk7by5yZXNwb25zZVRleHQ9
IntcImVycm9yXCI6ODh9Ijt1cGxvYWRDYWxsYmFjayhvKTt9fQpmdW5jdGlvbiB1
cGxvYWRDYWxsYmFjayhvKQp7aWYoby5yZXNwb25zZVRleHQhPW51bGwpCmV2dF9m
aWxlX3VwbG9hZF91cGRhdGUuZmlyZShvLnJlc3BvbnNlVGV4dCk7fQpmdW5jdGlv
biBzZXRTZWFyY2hGaWx0ZXIoZXZ0T2JqKQp7aWYoIXNlYXJjaF9maWx0ZXJzW2V2
dE9iai5maWx0ZXJzLnJlcG9ydF9pZF0pCntzZWFyY2hfZmlsdGVyc1tldnRPYmou
ZmlsdGVycy5yZXBvcnRfaWRdPW5ldyBPYmplY3QoKTtzZWFyY2hfZmlsdGVyc1tl
dnRPYmouZmlsdGVycy5yZXBvcnRfaWRdWydmaWx0ZXJzJ109bmV3IE9iamVjdCgp
O3NlYXJjaF9maWx0ZXJzW2V2dE9iai5maWx0ZXJzLnJlcG9ydF9pZF1bJ2Zvcm1h
dCddPW5ldyBPYmplY3QoKTt9CnNlYXJjaF9maWx0ZXJzW2V2dE9iai5maWx0ZXJz
LnJlcG9ydF9pZF1bJ2ZpbHRlcnMnXVtldnRPYmoudHlwZV09ZXZ0T2JqO30KZnVu
Y3Rpb24gZ2V0VGFibGVJZHModHlwZSxldmVudF9vYmopCntfYW5zd2VySUQ9ZXZl
bnRfb2JqWzBdWzBdO19pbmNpZGVudElEPWV2ZW50X29ialswXVsxXTt9CmZ1bmN0
aW9uIHN1Ym1pdF9yZXF1ZXN0KHR5cGUsZXZlbnRfb2JqKQp7ZXZlbnRfb2JqPWV2
ZW50X29ialswXTtSaWdodE5vdy5VSS5Gb3JtLmVycm9yQ291bnQ9MDtSaWdodE5v
dy5VSS5Gb3JtLmZvcm1GaWVsZHM9bmV3IEFycmF5KCk7UmlnaHROb3cuVUkuRm9y
bS5mb3JtPWV2ZW50X29iai5kYXRhLmZvcm07UmlnaHROb3cuVUkuRm9ybS53aWRn
ZXRzVG9WYWxpZGF0ZT1ldnRfZmZfdmFsaWRhdGVfdXBkYXRlLnN1YnNjcmliZXJz
Lmxlbmd0aDtSaWdodE5vdy5VSS5Gb3JtLndpZGdldHNUb1Byb2Nlc3M9ZXZ0X2Zm
X3ZhbGlkYXRlX3VwZGF0ZS5zdWJzY3JpYmVycy5sZW5ndGg7UmlnaHROb3cuVUku
Rm9ybS5mb3JtVG9rZW49ZXZlbnRfb2JqLmRhdGEuZl90b2s7ZXZ0X2ZmX3ZhbGlk
YXRlX3VwZGF0ZS5maXJlKGV2ZW50X29iaik7fQpmdW5jdGlvbiBmZl92YWxpZGF0
ZV9yZXF1ZXN0KHR5cGUsZXZlbnRfb2JqKQp7LS1SaWdodE5vdy5VSS5Gb3JtLndp
ZGdldHNUb1ZhbGlkYXRlO2lmKGV2ZW50X29ialswXS5mb3JtKQp7aWYoZXZlbnRf
b2JqWzBdLmZvcm09PT1SaWdodE5vdy5VSS5Gb3JtLmZvcm18fGV2ZW50X29ialsw
XS5mb3JtLmlkPT09UmlnaHROb3cuVUkuRm9ybS5mb3JtKQpSaWdodE5vdy5VSS5G
b3JtLmZvcm1GaWVsZHMucHVzaChldmVudF9vYmpbMF0uZGF0YSk7fQppZihSaWdo
dE5vdy5VSS5Gb3JtLndpZGdldHNUb1ZhbGlkYXRlPT0wKQp7ZXZ0X2Zvcm1fdmFs
aWRhdGVkLmZpcmUoKTtpZighUmlnaHROb3cuVUkuRm9ybS5jaGF0U3VibWl0JiYh
UmlnaHROb3cuVUkuRm9ybS5wYXNzd29yZFJlc2V0KQpvblNlbmRGb3JtKCk7fX0K
ZnVuY3Rpb24gb25GRkNvdW50KHR5cGUsZXZlbnRfb2JqKQp7LS1SaWdodE5vdy5V
SS5Gb3JtLndpZGdldHNUb1Byb2Nlc3M7aWYoUmlnaHROb3cuVUkuRm9ybS53aWRn
ZXRzVG9Qcm9jZXNzPT0wJiZSaWdodE5vdy5VSS5Gb3JtLndpZGdldHNUb1ZhbGlk
YXRlIT0wKQpldnRfZm9ybV9mYWlsX3ZhbGlkYXRpb24uZmlyZSgpO30KZnVuY3Rp
b24gb25Db3VudHJ5UmVxdWVzdCh0eXBlLGV2dE9iaikKe3ZhciBwb3N0RGF0YT0i
Y291bnRyeV9pZD0iK2V2dE9ialswXS5kYXRhLmNvdW50cnlfaWQ7Uk5ULkV2ZW50
cy5hamF4UmVxdWVzdChwb3N0RGF0YSwiL2NpL2FqYXhSZXF1ZXN0TWluL2dldENv
dW50cnlWYWx1ZXMiLCJvblByb3ZpbmNlVXBkYXRlIixudWxsLGV2dE9iaik7fQpm
dW5jdGlvbiBvblByb3ZpbmNlVXBkYXRlKG8pCntpZihvLnJlc3BvbnNlVGV4dCE9
bnVsbCkKe3ZhciByZXN1bHQ9WUFIT08ubGFuZy5KU09OLnBhcnNlKG8ucmVzcG9u
c2VUZXh0KTtpZihyZXN1bHQpCmV2dF9mZl9wcm92aW5jZV91cGRhdGUuZmlyZShy
ZXN1bHQpO2Vsc2UKUmlnaHROb3cuVUkuRGlhbG9nLm1lc3NhZ2VEaWFsb2coUmln
aHROb3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIkVSUk9SX1JFUVVFU1RfQUNUSU9O
X0NPTVBMRVRFRF9NU0ciKSx7aWNvbjoiV0FSTiJ9KTt9fQpmdW5jdGlvbiBvbkFj
Y291bnRFeGlzdHNSZXF1ZXN0KHR5cGUsZXZ0T2JqKQp7dmFyIHBvc3Q9ZXZ0T2Jq
WzBdLmRhdGEucG9zdDtwb3N0Kz0oIiZwd1Jlc2V0PSIrUmlnaHROb3cuVUkuRm9y
bS5wYXNzd29yZFJlc2V0KTtSTlQuRXZlbnRzLmFqYXhSZXF1ZXN0KHBvc3QsIi9j
aS9hamF4UmVxdWVzdC9jaGVja0ZvckV4aXN0aW5nQ29udGFjdCIsIm9uRXhpc3Rp
bmdBY2NvdW50VXBkYXRlIik7fQpmdW5jdGlvbiBvbkV4aXN0aW5nQWNjb3VudFVw
ZGF0ZShvKQp7aWYoby5yZXNwb25zZVRleHQhPW51bGwpCmV2dF9mZl9hY2NvdW50
X2V4aXN0c191cGRhdGUuZmlyZShZQUhPTy5sYW5nLkpTT04ucGFyc2Uoby5yZXNw
b25zZVRleHQpKTt9CmZ1bmN0aW9uIG9uU2VhcmNoVHlwZVJlcXVlc3QodHlwZSxh
cmcpCnt2YXIgZXZ0T2JqPWFyZ1swXTtldnRfc2VhcmNoX3R5cGVfdXBkYXRlLmZp
cmUoZXZ0T2JqKTt9CmZ1bmN0aW9uIG9uU29ydFR5cGVSZXF1ZXN0KHR5cGUsYXJn
KQp7dmFyIGV2dE9iaj1hcmdbMF07ZXZ0X3NvcnRfdHlwZV91cGRhdGUuZmlyZShl
dnRPYmopO30KZnVuY3Rpb24gb25PcmdUeXBlUmVxdWVzdCh0eXBlLGFyZykKe3Zh
ciBldnRPYmo9YXJnWzBdO2V2dF9vcmdfdHlwZV91cGRhdGUuZmlyZShldnRPYmop
O30KZnVuY3Rpb24gb25DdXN0b21NZW51UmVxdWVzdCh0eXBlLGFyZykKe3ZhciBl
dnRPYmo9YXJnWzBdO2V2dF9jdXN0b21fbWVudV91cGRhdGUuZmlyZShldnRPYmop
O30KZnVuY3Rpb24gb25BbnN3ZXJDaGFuZ2VkKHR5cGUsYXJnKQp7dmFyIGV2dE9i
aj1hcmdbMF07dmFyIHBhY2tldD1uZXcgT2JqZWN0KCk7cGFja2V0LmFfaWQ9ZXZ0
T2JqLmFfaWQ7ZXZ0X2FfaWRfdXBkYXRlLmZpcmUocGFja2V0KTt9CmZ1bmN0aW9u
IG9uSW5jaWRlbnRDaGFuZ2VkKHR5cGUsYXJnKQp7dmFyIGV2dE9iaj1hcmdbMF07
dmFyIHBhY2tldD1uZXcgT2JqZWN0KCk7cGFja2V0LmlfaWQ9ZXZ0T2JqLmlfaWQ7
ZXZ0X2lfaWRfdXBkYXRlLmZpcmUocGFja2V0KTt9CmZ1bmN0aW9uIGVtYWlsTGlu
a1N1Y2Nlc3MobykKe2lmKG8ucmVzcG9uc2VUZXh0IT1udWxsKQp7dmFyIGV2dE9i
aj1vLmFyZ3VtZW50O2V2dF9lbWFpbF9saW5rX3N1Ym1pdF91cGRhdGUuZmlyZShv
LnJlc3BvbnNlVGV4dCxldnRPYmopO319CmZ1bmN0aW9uIG9uRW1haWxMaW5rUmVx
dWVzdCh0eXBlLGFyZykKe3ZhciBldnRPYmo9YXJnWzBdO3ZhciBwb3N0PWV2dE9i
ai5kYXRhLnBvc3Q7dmFyIHVybD0iL2NpL2FqYXhSZXF1ZXN0L2VtYWlsQW5zd2Vy
IjtSTlQuRXZlbnRzLmFqYXhSZXF1ZXN0KHBvc3QsdXJsLCJlbWFpbExpbmtTdWNj
ZXNzIixudWxsLGV2dE9iaik7fQpmdW5jdGlvbiBlbWFpbFBhc3N3b3JkU3VjY2Vz
cyhvKQp7aWYoby5yZXNwb25zZVRleHQhPW51bGwpCmV2dF9lbWFpbF9wYXNzd29y
ZF91cGRhdGUuZmlyZShvLnJlc3BvbnNlVGV4dCk7fQpmdW5jdGlvbiBvbkVtYWls
UGFzc3dvcmRSZXF1ZXN0KHR5cGUsYXJnKQp7dmFyIGV2dE9iaj1hcmdbMF07dmFy
IHBvc3Q9ZXZ0T2JqLmRhdGEucG9zdDt2YXIgdXJsPSIvY2kvYWpheFJlcXVlc3Qv
ZW1haWxQYXNzd29yZCI7Uk5ULkV2ZW50cy5hamF4UmVxdWVzdChwb3N0LHVybCwi
ZW1haWxQYXNzd29yZFN1Y2Nlc3MiKTt9CmZ1bmN0aW9uIGVtYWlsVXNlcm5hbWVT
dWNjZXNzKG8pCntpZihvLnJlc3BvbnNlVGV4dCE9bnVsbCkKZXZ0X2VtYWlsX3Vz
ZXJuYW1lX3VwZGF0ZS5maXJlKG8ucmVzcG9uc2VUZXh0KTt9CmZ1bmN0aW9uIG9u
RW1haWxVc2VybmFtZVJlcXVlc3QodHlwZSxhcmcpCnt2YXIgZXZ0T2JqPWFyZ1sw
XTt2YXIgcG9zdD1ldnRPYmouZGF0YS5wb3N0O3ZhciB1cmw9Ii9jaS9hamF4UmVx
dWVzdC9lbWFpbFVzZXJuYW1lIjtSTlQuRXZlbnRzLmFqYXhSZXF1ZXN0KHBvc3Qs
dXJsLCJlbWFpbFVzZXJuYW1lU3VjY2VzcyIpO30KZnVuY3Rpb24gZmVlZGJhY2tT
dWNjZXNzKG8pCntpZihvLnJlc3BvbnNlVGV4dCE9bnVsbCkKZXZ0X2ZlZWRiYWNr
X3N1Ym1pdF91cGRhdGUuZmlyZShvLnJlc3BvbnNlVGV4dCk7fQpmdW5jdGlvbiBv
bkZlZWRiYWNrRm9ybVJlcXVlc3QodHlwZSxhcmcpCnt2YXIgZXZ0T2JqPWFyZ1sw
XTt2YXIgcG9zdD1ldnRPYmouZGF0YS5wb3N0O3ZhciB1cmw9Ii9jaS9hamF4UmVx
dWVzdC9zdWJtaXRGZWVkYmFjayI7Uk5ULkV2ZW50cy5hamF4UmVxdWVzdChwb3N0
LHVybCwiZmVlZGJhY2tTdWNjZXNzIik7fQpmdW5jdGlvbiBvbktleXdvcmRDaGFu
Z2VkUmVxdWVzdCh0eXBlLGFyZykKe3ZhciBldnRfb2JqPWFyZ1swXTtpZihzZWFy
Y2hfZmlsdGVyc1tldnRfb2JqLmZpbHRlcnMucmVwb3J0X2lkXSkKc2VhcmNoX2Zp
bHRlcnNbZXZ0X29iai5maWx0ZXJzLnJlcG9ydF9pZF1bJ2Zvcm1hdCddLmhpZ2hs
aWdodExlbmd0aD1ldnRfb2JqLmRhdGEubGVuZ3RoO2V2dF9rZXl3b3JkX2NoYW5n
ZWRfdXBkYXRlLmZpcmUoZXZ0X29iaik7fQpmdW5jdGlvbiBtZW51RmlsdGVyR2V0
U3VjY2VzcyhvKQp7aWYoby5hcmd1bWVudCE9bnVsbCkKe3ZhciBldnRPYmo9by5h
cmd1bWVudDtpZihvLnJlc3BvbnNlVGV4dCE9PXVuZGVmaW5lZCkKe3ZhciByZXN1
bHRzPVlBSE9PLmxhbmcuSlNPTi5wYXJzZShvLnJlc3BvbnNlVGV4dCk7aWYocmVz
dWx0cykKe2V2dE9iai5kYXRhLmNhY2hlW2V2dE9iai5kYXRhLnZhbHVlXT1yZXN1
bHRzWzBdO2V2dE9iai5kYXRhLmhpZXJfZGF0YT1yZXN1bHRzWzBdO2V2dE9iai5k
YXRhLmxldmVsKz0xO2V2dF9tZW51X2ZpbHRlcl9nZXRfdXBkYXRlLmZpcmUoZXZ0
T2JqKTtpZihldnRPYmouZGF0YS5saW5raW5nX29uJiZldnRPYmouZGF0YS5maWx0
ZXJfbmFtZS5pbmRleE9mKCJwcm9kIik+LTEpCntoaWVyX21lbnVfbGlua19tYXA9
cmVzdWx0c1snbGlua19tYXAnXTtsaW5raW5nRXZ0T2JqPW5ldyBFdmVudE9iamVj
dCgpO2xpbmtpbmdFdnRPYmouZGF0YS5sZXZlbD0xO2xpbmtpbmdFdnRPYmouZGF0
YS5oaWVyX2RhdGE9aGllcl9tZW51X2xpbmtfbWFwWzBdO2lmKGV2dE9iai5kYXRh
LmZpbHRlcl9uYW1lLmluZGV4T2YoJ3Byb2R1Y3RzJykhPT0tMSkKbGlua2luZ0V2
dE9iai5kYXRhLmZpbHRlcl9uYW1lPWV2dE9iai5kYXRhLmZpbHRlcl9uYW1lLnJl
cGxhY2UoInByb2R1Y3RzIiwiY2F0ZWdvcmllcyIpO2Vsc2UKbGlua2luZ0V2dE9i
ai5kYXRhLmZpbHRlcl9uYW1lPWV2dE9iai5kYXRhLmZpbHRlcl9uYW1lLnJlcGxh
Y2UoInByb2QiLCJjYXQiKTtsaW5raW5nRXZ0T2JqLmZpbHRlcnMucmVwb3J0X2lk
PWV2dE9iai5maWx0ZXJzLnJlcG9ydF9pZDtldnRfbWVudV9maWx0ZXJfZ2V0X3Vw
ZGF0ZS5maXJlKGxpbmtpbmdFdnRPYmopO2lmKGV2dE9iai5kYXRhLnZhbHVlPT0t
MSkKaGllcl9tZW51X2xpbmtfbWFwPSIiO319CmVsc2UKe1JpZ2h0Tm93LlVJLkRp
YWxvZy5tZXNzYWdlRGlhbG9nKFJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdl
KCJFUlJPUl9SRVFVRVNUX0FDVElPTl9DT01QTEVURURfTVNHIikse2ljb246IldB
Uk4ifSk7fX19fQpmdW5jdGlvbiBvbk1lbnVGaWx0ZXJHZXQodHlwZSxhcmcpCnt2
YXIgZXZ0T2JqPWFyZ1swXTtpZihldnRPYmouZGF0YS5sZXZlbD41KQpyZXR1cm47
aWYoZXZ0T2JqLmRhdGEubGlua19tYXAmJmhpZXJfbWVudV9saW5rX21hcCE9IiIp
CmhpZXJfbWVudV9saW5rX21hcD1ldnRPYmouZGF0YS5saW5rX21hcDtpZighZXZ0
T2JqLmRhdGEubGlua2luZ19vbikKe2lmKGV2dE9iai5kYXRhLnZhbHVlPDEpCntl
dnRPYmouZGF0YS5sZXZlbCs9MTtldnRPYmouZGF0YS5oaWVyX2RhdGE9QXJyYXko
KTtldnRfbWVudV9maWx0ZXJfZ2V0X3VwZGF0ZS5maXJlKGV2dE9iaik7cmV0dXJu
O30KaWYoZXZ0T2JqLmRhdGEuY2FjaGVbZXZ0T2JqLmRhdGEudmFsdWVdKQp7ZXZ0
T2JqLmRhdGEuaGllcl9kYXRhPWV2dE9iai5kYXRhLmNhY2hlW2V2dE9iai5kYXRh
LnZhbHVlXTtldnRPYmouZGF0YS5sZXZlbCs9MTtldnRfbWVudV9maWx0ZXJfZ2V0
X3VwZGF0ZS5maXJlKGV2dE9iaik7cmV0dXJuO319CmVsc2UKe2lmKChldnRPYmou
ZGF0YS5maWx0ZXJfbmFtZS5pbmRleE9mKCJjYXQiKT4tMSkmJmhpZXJfbWVudV9s
aW5rX21hcCE9IiIpCntpZighZXZ0T2JqLmRhdGEucmVzZXQpCmV2dE9iai5kYXRh
LmxldmVsKz0xO2V2dE9iai5kYXRhLmhpZXJfZGF0YT1oaWVyX21lbnVfbGlua19t
YXBbZXZ0T2JqLmRhdGEudmFsdWVdO2V2dF9tZW51X2ZpbHRlcl9nZXRfdXBkYXRl
LmZpcmUoZXZ0T2JqKTtyZXR1cm47fX0KdmFyIHBvc3REYXRhPSJmaWx0ZXI9Iitl
dnRPYmouZGF0YS5maWx0ZXJfbmFtZSsiJmx2bD0iKyhldnRPYmouZGF0YS5sZXZl
bCsxKSsiJmlkPSIrZXZ0T2JqLmRhdGEudmFsdWUrIiZsaW5raW5nPSIrZXZ0T2Jq
LmRhdGEubGlua2luZ19vbjtSTlQuRXZlbnRzLmFqYXhSZXF1ZXN0KHBvc3REYXRh
LCIvY2kvYWpheFJlcXVlc3RNaW4vZ2V0SGllclZhbHVlcyIsIm1lbnVGaWx0ZXJH
ZXRTdWNjZXNzIixudWxsLGV2dE9iaik7fQpmdW5jdGlvbiBvbk1lbnVGaWx0ZXJT
ZWxlY3QodHlwZSxhcmcpCnt2YXIgZXZ0T2JqPWFyZ1swXTtldnRfbWVudV9maWx0
ZXJfc2VsZWN0X3VwZGF0ZS5maXJlKGV2dE9iaik7fQpmdW5jdGlvbiBvbk1lbnVG
aWx0ZXJTZXRTdWNjZXNzKG8pCntpZihvLnJlc3BvbnNlVGV4dCE9bnVsbCkKe3Jl
c3VsdD1ZQUhPTy5sYW5nLkpTT04ucGFyc2Uoby5yZXNwb25zZVRleHQpO2lmKHJl
c3VsdCkKZXZ0X21lbnVfZmlsdGVyX3NldF91cGRhdGUuZmlyZShyZXN1bHQpO2Vs
c2UKUmlnaHROb3cuVUkuRGlhbG9nLm1lc3NhZ2VEaWFsb2coUmlnaHROb3cuSW50
ZXJmYWNlLmdldE1lc3NhZ2UoIkVSUk9SX1JFUVVFU1RfQUNUSU9OX0NPTVBMRVRF
RF9NU0ciKSx7aWNvbjoiV0FSTiJ9KTt9fQpmdW5jdGlvbiBvbk1lbnVGaWx0ZXJT
ZXQodHlwZSxhcmcpCnt2YXIgY2hhaW47dmFyIGhpZXJWYWx1ZXM9YXJnWzBdLmRh
dGEuaGllclNldERhdGE7Y2hhaW49aGllclZhbHVlc1sxXVsnaWQnXTtmb3IodmFy
IGk9MjtpPGhpZXJWYWx1ZXMubGVuZ3RoOysraSkKe2lmKGhpZXJWYWx1ZXNbaV1b
J2lkJ10+MCkKY2hhaW4rPScsJytoaWVyVmFsdWVzW2ldWydpZCddO30KdmFyIHBv
c3REYXRhPSJjaGFpbj0iK2NoYWluKyImZmlsdGVyX3R5cGU9IithcmdbMF0uZGF0
YS5maWx0ZXJfbmFtZTtldnRfbWVudV9maWx0ZXJfc2V0dGluZ191cGRhdGUuZmly
ZSgpO1JOVC5FdmVudHMuYWpheFJlcXVlc3QocG9zdERhdGEsIi9jaS9hamF4UmVx
dWVzdC9wcm9kY2F0QWRkTm90aWZpY2F0aW9uIiwib25NZW51RmlsdGVyU2V0U3Vj
Y2VzcyIpO30KZnVuY3Rpb24gb25Qcm9kQ2F0Tm90aWZpY2F0aW9uUmVxdWVzdCh0
eXBlLGFyZykKe3ZhciBldnRPYmo9YXJnWzBdO3ZhciBwb3N0RGF0YT0iZmlsdGVy
X3R5cGU9IitldnRPYmouZGF0YS5maWx0ZXJfdHlwZSsiJmNoYWluPSIrZXZ0T2Jq
LmRhdGEuY2hhaW4rIiZjaWQ9IitldnRPYmouZGF0YS5jaWQ7Uk5ULkV2ZW50cy5h
amF4UmVxdWVzdChwb3N0RGF0YSwiL2NpL2FqYXhSZXF1ZXN0L3Byb2RjYXRBZGRO
b3RpZmljYXRpb24iLCJvblByb2RDYXROb3RpZmljYXRpb25VcGRhdGUiKTt9CmZ1
bmN0aW9uIG9uUHJvZENhdE5vdGlmaWNhdGlvblVwZGF0ZShvKQp7aWYoby5yZXNw
b25zZVRleHQhPW51bGwpCnt2YXIgcmVzdWx0PVlBSE9PLmxhbmcuSlNPTi5wYXJz
ZShvLnJlc3BvbnNlVGV4dCk7aWYocmVzdWx0KQpldnRfcHJvZGNhdF9ub3RpZmlj
YXRpb25fdXBkYXRlLmZpcmUocmVzdWx0KTtlbHNlClJpZ2h0Tm93LlVJLkRpYWxv
Zy5tZXNzYWdlRGlhbG9nKFJpZ2h0Tm93LkludGVyZmFjZS5nZXRNZXNzYWdlKCJF
UlJPUl9SRVFVRVNUX0FDVElPTl9DT01QTEVURURfTVNHIikse2ljb246IldBUk4i
fSk7fX0KZnVuY3Rpb24gb25Qcm9kQ2F0RGVsZXRlUmVxdWVzdFN1Y2Nlc3MobykK
e2lmKG8ucmVzcG9uc2VUZXh0IT1udWxsKQp7dmFyIHJlc3VsdD1ZQUhPTy5sYW5n
LkpTT04ucGFyc2Uoby5yZXNwb25zZVRleHQpO2lmKHJlc3VsdCkKZXZ0X3Byb2Rj
YXRfbm90aWZpY2F0aW9uX2RlbGV0ZV91cGRhdGUuZmlyZShyZXN1bHQpO2Vsc2UK
UmlnaHROb3cuVUkuRGlhbG9nLm1lc3NhZ2VEaWFsb2coUmlnaHROb3cuSW50ZXJm
YWNlLmdldE1lc3NhZ2UoIkVSUk9SX1JFUVVFU1RfQUNUSU9OX0NPTVBMRVRFRF9N
U0ciKSx7aWNvbjoiV0FSTiJ9KTt9fQpmdW5jdGlvbiBvblByb2RDYXREZWxldGVS
ZXF1ZXN0KHR5cGUsYXJnKQp7dmFyIGV2dE9iaj1hcmdbMF07dmFyIHBvc3REYXRh
PSJmaWx0ZXJfdHlwZT0iK2V2dE9iai5kYXRhLmZpbHRlcl90eXBlKyImY2hhaW49
IitldnRPYmouZGF0YS5jaGFpbisiJnRpbWVzdGFtcD0iK2V2dE9iai5kYXRhLnRp
bWU7cG9zdERhdGErPShldnRPYmouZGF0YS5jaWQpPygiJmNpZD0iK2V2dE9iai5k
YXRhLmNpZCk6Jyc7Uk5ULkV2ZW50cy5hamF4UmVxdWVzdChwb3N0RGF0YSwiL2Np
L2FqYXhSZXF1ZXN0L3Byb2RjYXREZWxldGVOb3RpZmljYXRpb24iLCJvblByb2RD
YXREZWxldGVSZXF1ZXN0U3VjY2VzcyIpO30KZnVuY3Rpb24gb25Qcm9kQ2F0UmVu
ZXdSZXF1ZXN0U3VjY2VzcyhvKQp7aWYoby5yZXNwb25zZVRleHQhPW51bGwpCnt2
YXIgcmVzdWx0PVlBSE9PLmxhbmcuSlNPTi5wYXJzZShvLnJlc3BvbnNlVGV4dCk7
aWYocmVzdWx0KQpldnRfcHJvZGNhdF9ub3RpZmljYXRpb25fcmVuZXdhbF91cGRh
dGUuZmlyZShyZXN1bHQpO2Vsc2UKUmlnaHROb3cuVUkuRGlhbG9nLm1lc3NhZ2VE
aWFsb2coUmlnaHROb3cuSW50ZXJmYWNlLmdldE1lc3NhZ2UoIkVSUk9SX1JFUVVF
U1RfQUNUSU9OX0NPTVBMRVRFRF9NU0ciKSx7aWNvbjoiV0FSTiJ9KTt9fQpmdW5j
dGlvbiBvblByb2RDYXRSZW5ld1JlcXVlc3QodHlwZSxhcmcpCnt2YXIgZXZ0T2Jq
PWFyZ1swXTt2YXIgcG9zdERhdGE9ImZpbHRlcl90eXBlPSIrZXZ0T2JqLmRhdGEu
ZmlsdGVyX3R5cGUrIiZjaGFpbj0iK2V2dE9iai5kYXRhLmNoYWluKyImdGltZXN0
YW1wPSIrZXZ0T2JqLmRhdGEudGltZTtSTlQuRXZlbnRzLmFqYXhSZXF1ZXN0KHBv
c3REYXRhLCIvY2kvYWpheFJlcXVlc3QvcHJvZGNhdFJlbmV3Tm90aWZpY2F0aW9u
Iiwib25Qcm9kQ2F0UmVuZXdSZXF1ZXN0U3VjY2VzcyIpO30KZnVuY3Rpb24gb25T
ZWFyY2hSZXF1ZXN0KHR5cGUsYXJnKQp7dmFyIGV2dE9iaj1hcmdbMF07dmFyIGxv
Y2F0aW9uPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b1N0cmluZygpO3ZhciBz
cGxpdFJlc3VsdD1sb2NhdGlvbi5zcGxpdCgiL2FwcCIpO3ZhciByZWxfcGF0aD0i
L2FwcCIrKChzcGxpdFJlc3VsdC5sZW5ndGg+MSk/c3BsaXRSZXN1bHRbMV06IiIp
O3ZhciB1cmw9ZXZ0T2JqLmRhdGEucmVwb3J0X3BhZ2U7aWYoc2VhcmNoZXMhPW51
bGwpCntzZWFyY2hlcysrO30KaWYodXJsPT0iInx8cmVsX3BhdGguc3Vic3RyaW5n
KDAsdXJsLmxlbmd0aCk9PXVybCkKe2lmKCFzZWFyY2hfZmlsdGVyc1tldnRPYmou
ZmlsdGVycy5yZXBvcnRfaWRdKQp7c2VhcmNoX2ZpbHRlcnNbZXZ0T2JqLmZpbHRl
cnMucmVwb3J0X2lkXT1uZXcgT2JqZWN0KCk7c2VhcmNoX2ZpbHRlcnNbZXZ0T2Jq
LmZpbHRlcnMucmVwb3J0X2lkXVsnZmlsdGVycyddPW5ldyBPYmplY3QoKTtzZWFy
Y2hfZmlsdGVyc1tldnRPYmouZmlsdGVycy5yZXBvcnRfaWRdWydmb3JtYXQnXT1u
ZXcgT2JqZWN0KCk7fQpzZWFyY2hfZmlsdGVyc1tldnRPYmouZmlsdGVycy5yZXBv
cnRfaWRdWydmaWx0ZXJzJ11bJ3BhZ2UnXT0xO3NlYXJjaF9maWx0ZXJzW2V2dE9i
ai5maWx0ZXJzLnJlcG9ydF9pZF1bJ2ZpbHRlcnMnXVsnc2VhcmNoJ109MTtmaWx0
ZXJfY291bnQuYWN0aW9uPUdFVF9EQVRBO2V2dF9zZWFyY2hfdXBkYXRlLmZpcmUo
ZXZ0T2JqKTt9CmVsc2UKe2ZpbHRlcl9jb3VudC5hY3Rpb249Q0hBTkdFX1BBR0U7
aWYoc3BsaXRSZXN1bHRbMF0uc2xpY2UoLTEpPT0nLycpCnNwbGl0UmVzdWx0WzBd
PXNwbGl0UmVzdWx0WzBdLnNsaWNlKDAsLTEpO2ZpbHRlcl9jb3VudC51cmw9c3Bs
aXRSZXN1bHRbMF0rdXJsO30KZmlsdGVyX2NvdW50LnN1YnNjcmliZWQ9ZXZ0X2dl
dF9maWx0ZXJzX3JlcXVlc3Quc3Vic2NyaWJlcnMubGVuZ3RoO2ZpbHRlcl9jb3Vu
dC5hY3R1YWw9MDtmaWx0ZXJfY291bnQucmVwb3J0X2lkPWV2dE9iai5maWx0ZXJz
LnJlcG9ydF9pZDtyZXF1ZXN0VXBkYXRlZFNlYXJjaEZpbHRlcnMoZXZ0T2JqLmZp
bHRlcnMucmVwb3J0X2lkKTt9CmZ1bmN0aW9uIHJlcXVlc3RVcGRhdGVkU2VhcmNo
RmlsdGVycyhyZXBvcnRfaWQpCnt2YXIgZXZ0T2JqPW5ldyBSaWdodE5vdy5FdmVu
dC5FdmVudE9iamVjdCgpO2V2dE9iai5maWx0ZXJzLnJlcG9ydF9pZD1yZXBvcnRf
aWQ7ZXZ0T2JqLm5hbWU9cGxfbmFtZTtldnRfZ2V0X2ZpbHRlcnNfcmVxdWVzdC5m
aXJlKGV2dE9iaik7fQpmdW5jdGlvbiBvblNlYXJjaEZpbHRlcnNVbnByb2Nlc3Nl
ZCh0eXBlLGFyZ3MpCntldnRPYmo9YXJnc1swXTtmaWx0ZXJfY291bnQuYWN0aW9u
PVNFTkRfRklMVEVSUztmaWx0ZXJfY291bnQuc3Vic2NyaWJlZD1ldnRfZ2V0X2Zp
bHRlcnNfcmVxdWVzdC5zdWJzY3JpYmVycy5sZW5ndGg7ZmlsdGVyX2NvdW50LmFj
dHVhbD0wO2ZpbHRlcl9jb3VudC5yZXBvcnRfaWQ9ZXZ0T2JqLmZpbHRlcnMucmVw
b3J0X2lkO2ZpbHRlcl9jb3VudC51cmw9ZXZ0T2JqLmRhdGEudXJsO2ZpbHRlcl9j
b3VudC5maWx0ZXJfbmFtZT1ldnRPYmouZGF0YS5maWx0ZXJfbmFtZTtyZXF1ZXN0
VXBkYXRlZFNlYXJjaEZpbHRlcnMoZXZ0T2JqLmZpbHRlcnMucmVwb3J0X2lkKTt9
CmZ1bmN0aW9uIG9uU2VhcmNoRmlsdGVyc1VwZGF0ZSh0eXBlLGFyZ3MpCntpZihh
cmdzWzBdIT1udWxsKQpzZXRTZWFyY2hGaWx0ZXIoYXJnc1swXSk7ZmlsdGVyX2Nv
dW50LmFjdHVhbCsrO2lmKGZpbHRlcl9jb3VudC5zdWJzY3JpYmVkPT1maWx0ZXJf
Y291bnQuYWN0dWFsKQp7aWYoZmlsdGVyX2NvdW50LmFjdGlvbj09MSkKe3JlcXVl
c3RSZXBvcnQoZmlsdGVyX2NvdW50LnJlcG9ydF9pZCk7fQplbHNlIGlmKGZpbHRl
cl9jb3VudC5hY3Rpb249PTIpCntyZXF1ZXN0TmV3UGFnZSgpO30KZWxzZSBpZihm
aWx0ZXJfY291bnQuYWN0aW9uPT0zKQp7dmFyIHVybD1maWx0ZXJfY291bnQudXJs
O3VybD1SaWdodE5vdy5VcmwuY29udmVydFNlYXJjaEZpbHRlcnModXJsLHNlYXJj
aF9maWx0ZXJzW2ZpbHRlcl9jb3VudC5yZXBvcnRfaWRdWydmaWx0ZXJzJ10sZmls
dGVyX2NvdW50LnJlcG9ydF9pZCxzZWFyY2hlcyk7dmFyIGVvPW5ldyBSaWdodE5v
dy5FdmVudC5FdmVudE9iamVjdCgpO2VvLm5hbWU9cGxfbmFtZTtlby5kYXRhLnVy
bD11cmw7ZW8uZGF0YS5yZXBvcnRfaWQ9ZmlsdGVyX2NvdW50LnJlcG9ydF9pZCsi
Ijtlby5kYXRhLmZpbHRlcl9uYW1lPWZpbHRlcl9jb3VudC5maWx0ZXJfbmFtZTtp
ZihlbXB0eUhpc3RvcnlTdGF0ZSkKWUFIT08udXRpbC5IaXN0b3J5Lm5hdmlnYXRl
KGJyb3dzZXJIaXN0b3J5TWFuYWdlbWVudEtleSwiIik7ZXZ0X3NlYXJjaF9maWx0
ZXJzX3VucHJvY2Vzc2VkX3VwZGF0ZS5maXJlKGVvKTt9fX0KZnVuY3Rpb24gcmVx
dWVzdE5ld1BhZ2UoKQp7dmFyIG5ld3VybD1maWx0ZXJfY291bnQudXJsO25ld3Vy
bD1SaWdodE5vdy5VcmwuY29udmVydFNlYXJjaEZpbHRlcnMobmV3dXJsLHNlYXJj
aF9maWx0ZXJzW2ZpbHRlcl9jb3VudC5yZXBvcnRfaWRdWydmaWx0ZXJzJ10sZmls
dGVyX2NvdW50LnJlcG9ydF9pZCxzZWFyY2hlcyk7bmV3dXJsPVJpZ2h0Tm93LlVy
bC5hZGRQYXJhbWV0ZXIobmV3dXJsLCJzZWFyY2giLCIxIik7bmV3dXJsKz1zZXNz
aW9uO1JpZ2h0Tm93LlVybC5uYXZpZ2F0ZShuZXd1cmwpO30KZnVuY3Rpb24gb25T
ZXRJbml0aWFsRmlsdGVyc1JlcXVlc3QodHlwZSxhcmdzKQp7dmFyIGV2dE9iaj1h
cmdzWzBdO2lmKCFzZWFyY2hfZmlsdGVyc1tldnRPYmouZmlsdGVycy5yZXBvcnRf
aWRdKQp7c2VhcmNoX2ZpbHRlcnNbZXZ0T2JqLmZpbHRlcnMucmVwb3J0X2lkXT1u
ZXcgT2JqZWN0KCk7c2VhcmNoX2ZpbHRlcnNbZXZ0T2JqLmZpbHRlcnMucmVwb3J0
X2lkXVsnZmlsdGVycyddPW5ldyBPYmplY3QoKTtzZWFyY2hfZmlsdGVyc1tldnRP
YmouZmlsdGVycy5yZXBvcnRfaWRdWydmb3JtYXQnXT1uZXcgT2JqZWN0KCk7fQpz
ZWFyY2hfZmlsdGVyc1tldnRPYmouZmlsdGVycy5yZXBvcnRfaWRdWyd0b2tlbidd
PWV2dE9iai5maWx0ZXJzLnRva2VuO2Zvcih2YXIgbm9kZSBpbiBldnRPYmouZGF0
YS5mb3JtYXQpCntpZihub2RlIT0ndW5kZWZpbmVkJykKc2VhcmNoX2ZpbHRlcnNb
ZXZ0T2JqLmZpbHRlcnMucmVwb3J0X2lkXVsnZm9ybWF0J11bbm9kZV09ZXZ0T2Jq
LmRhdGEuZm9ybWF0W25vZGVdO30KZm9yKHZhciBub2RlIGluIGV2dE9iai5kYXRh
LmZpbHRlcnMpCntpZihub2RlIT0ndW5kZWZpbmVkJykKc2VhcmNoX2ZpbHRlcnNb
ZXZ0T2JqLmZpbHRlcnMucmVwb3J0X2lkXVsnZmlsdGVycyddW25vZGVdPWV2dE9i
ai5kYXRhLmZpbHRlcnNbbm9kZV07fQp2YXIgYm9va21hcmtlZFN0YXRlPVlBSE9P
LnV0aWwuSGlzdG9yeS5nZXRCb29rbWFya2VkU3RhdGUoYnJvd3Nlckhpc3RvcnlN
YW5hZ2VtZW50S2V5KTt2YXIgaW5pdGlhbEhpc3RvcnlTdGF0ZT1ib29rbWFya2Vk
U3RhdGV8fCIiO2lmKCFlbXB0eUhpc3RvcnlTdGF0ZSkKZW1wdHlIaXN0b3J5U3Rh
dGU9Z2V0SGlzdG9yeVN0YXRlRm9yKGJ1aWxkUmVxdWVzdFBhcmFtZXRlcnMoZXZ0
T2JqLmZpbHRlcnMucmVwb3J0X2lkKSk7WUFIT08udXRpbC5IaXN0b3J5LnJlZ2lz
dGVyKGJyb3dzZXJIaXN0b3J5TWFuYWdlbWVudEtleSxpbml0aWFsSGlzdG9yeVN0
YXRlLHJlcXVlc3RSZXBvcnRIaXN0b3J5Q2FsbGJhY2spO3RyeQp7WUFIT08udXRp
bC5IaXN0b3J5Lm9uUmVhZHkoZnVuY3Rpb24oKXt2YXIgY3VycmVudFN0YXRlPVlB
SE9PLnV0aWwuSGlzdG9yeS5nZXRDdXJyZW50U3RhdGUoYnJvd3Nlckhpc3RvcnlN
YW5hZ2VtZW50S2V5KTtpZihjdXJyZW50U3RhdGUhPT0iIikKcmVxdWVzdFJlcG9y
dEhpc3RvcnlDYWxsYmFjayhjdXJyZW50U3RhdGUpO30pO1lBSE9PLnV0aWwuSGlz
dG9yeS5pbml0aWFsaXplKCJybl9IaXN0b3J5X0ZpZWxkIiwicm5fSGlzdG9yeV9J
ZnJhbWUiKTtpc0Jyb3dzZXJIaXN0b3J5TWFuYWdlbWVudEVuYWJsZWQ9dHJ1ZTt9
Y2F0Y2goZSl7aXNCcm93c2VySGlzdG9yeU1hbmFnZW1lbnRFbmFibGVkPWZhbHNl
O319CmZ1bmN0aW9uIG9uTW9yZVJlc3VsdHNSZXF1ZXN0KHR5cGUsYXJnKQp7dmFy
IGV2dE9iaj1hcmdbMF07aWYoIXNlYXJjaF9maWx0ZXJzW2V2dE9iai5maWx0ZXJz
LnJlcG9ydF9pZF0pCntzZWFyY2hfZmlsdGVyc1tldnRPYmouZmlsdGVycy5yZXBv
cnRfaWRdPW5ldyBPYmplY3QoKTtzZWFyY2hfZmlsdGVyc1tldnRPYmouZmlsdGVy
cy5yZXBvcnRfaWRdWydmaWx0ZXJzJ109bmV3IE9iamVjdCgpO3NlYXJjaF9maWx0
ZXJzW2V2dE9iai5maWx0ZXJzLnJlcG9ydF9pZF1bJ2Zvcm1hdCddPW5ldyBPYmpl
Y3QoKTt9CnNlYXJjaF9maWx0ZXJzW2V2dE9iai5maWx0ZXJzLnJlcG9ydF9pZF1b
J2ZpbHRlcnMnXVsnbm9fdHJ1bmNhdGUnXT0xO3NlYXJjaF9maWx0ZXJzW2V2dE9i
ai5maWx0ZXJzLnJlcG9ydF9pZF1bJ2ZpbHRlcnMnXVsnc2VhcmNoJ109MDtyZXF1
ZXN0UmVwb3J0KGV2dE9iai5maWx0ZXJzLnJlcG9ydF9pZCk7c2VhcmNoX2ZpbHRl
cnNbZXZ0T2JqLmZpbHRlcnMucmVwb3J0X2lkXVsnZmlsdGVycyddWydub190cnVu
Y2F0ZSddPTA7fQpmdW5jdGlvbiBvblNlYXJjaEluUHJvZ3Jlc3ModHlwZSxhcmcp
CntldnRfc2VhcmNoX2luX3Byb2dyZXNzX3VwZGF0ZS5maXJlKGFyZ1swXSk7fQpm
dW5jdGlvbiBvblBhZ2VSZXF1ZXN0KHR5cGUsYXJnKQp7dmFyIGV2dE9iaj1hcmdb
MF07aWYoIXNlYXJjaF9maWx0ZXJzW2V2dE9iai5maWx0ZXJzLnJlcG9ydF9pZF0p
CntzZWFyY2hfZmlsdGVyc1tldnRPYmouZmlsdGVycy5yZXBvcnRfaWRdPW5ldyBP
YmplY3QoKTtzZWFyY2hfZmlsdGVyc1tldnRPYmouZmlsdGVycy5yZXBvcnRfaWRd
WydmaWx0ZXJzJ109bmV3IE9iamVjdCgpO3NlYXJjaF9maWx0ZXJzW2V2dE9iai5m
aWx0ZXJzLnJlcG9ydF9pZF1bJ2Zvcm1hdCddPW5ldyBPYmplY3QoKTt9CnNlYXJj
aF9maWx0ZXJzW2V2dE9iai5maWx0ZXJzLnJlcG9ydF9pZF1bJ2ZpbHRlcnMnXVsn
cGFnZSddPWV2dE9iai5kYXRhLnBhZ2U7ZGVsZXRlIHNlYXJjaF9maWx0ZXJzW2V2
dE9iai5maWx0ZXJzLnJlcG9ydF9pZF1bJ2ZpbHRlcnMnXVsnc2VhcmNoJ107cmVx
dWVzdFJlcG9ydChldnRPYmouZmlsdGVycy5yZXBvcnRfaWQpO30KZnVuY3Rpb24g
cmVxdWVzdFJlcG9ydChyZXBvcnRfaWQpCnt2YXIgcmVxdWVzdFBhcmFtZXRlcnM9
YnVpbGRSZXF1ZXN0UGFyYW1ldGVycyhyZXBvcnRfaWQpO2lmKGlzQnJvd3Nlckhp
c3RvcnlNYW5hZ2VtZW50RW5hYmxlZCkKe3RyeXt2YXIgc3RhdGVTdHJpbmc9WUFI
T08ubGFuZy5KU09OLnN0cmluZ2lmeShyZXF1ZXN0UGFyYW1ldGVycyk7dmFyIHN0
YXRlT2JqZWN0PXJlcXVlc3RQYXJhbWV0ZXJzO2lmKCJwImluIHN0YXRlT2JqZWN0
LnNmJiYiZGF0YSJpbiBzdGF0ZU9iamVjdC5zZi5wJiYiY2FjaGUiaW4gc3RhdGVP
YmplY3Quc2YucC5kYXRhKQpkZWxldGUgc3RhdGVPYmplY3Quc2YucC5kYXRhLmNh
Y2hlO2lmKCJjImluIHN0YXRlT2JqZWN0LnNmJiYiZGF0YSJpbiBzdGF0ZU9iamVj
dC5zZi5jJiYiY2FjaGUiaW4gc3RhdGVPYmplY3Quc2YuYy5kYXRhKQpkZWxldGUg
c3RhdGVPYmplY3Quc2YuYy5kYXRhLmNhY2hlO3ZhciBzdGF0ZT1SaWdodE5vdy5U
ZXh0LkVuY29kaW5nLmJhc2U2NEVuY29kZShZQUhPTy5sYW5nLkpTT04uc3RyaW5n
aWZ5KHN0YXRlT2JqZWN0KSk7dmFyIG5ld0xlbmd0aDtpZih3aW5kb3cubG9jYXRp
b24uaHJlZi5pbmRleE9mKCcjJyk+LTEpCm5ld0xlbmd0aD13aW5kb3cubG9jYXRp
b24uaHJlZi5zdWJzdHIoMCx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCcj
JykpLmxlbmd0aCtzdGF0ZS5sZW5ndGg7ZWxzZQpuZXdMZW5ndGg9d2luZG93Lmxv
Y2F0aW9uLmhyZWYubGVuZ3RoK3N0YXRlLmxlbmd0aDtpZihZQUhPTy5lbnYudWEu
aWU+MCYmbmV3TGVuZ3RoPjIwODApCntyZXF1ZXN0UmVwb3J0V2l0aChyZXF1ZXN0
UGFyYW1ldGVycyk7cmV0dXJuO30KWUFIT08udXRpbC5IaXN0b3J5Lm5hdmlnYXRl
KGJyb3dzZXJIaXN0b3J5TWFuYWdlbWVudEtleSxzdGF0ZSk7fQpjYXRjaChlcnIp
e2FsZXJ0KCJlcnJvcjogIitlcnIubWVzc2FnZSk7fX0KZWxzZQpyZXF1ZXN0UmVw
b3J0V2l0aChyZXF1ZXN0UGFyYW1ldGVycyk7fQpmdW5jdGlvbiBnZXRSZXF1ZXN0
UGFyYW1ldGVyc0ZvcihoaXN0b3J5U3RhdGUpCntpZihoaXN0b3J5U3RhdGU9PT0i
IikKcmV0dXJuIGdldFJlcXVlc3RQYXJhbWV0ZXJzRm9yKGVtcHR5SGlzdG9yeVN0
YXRlKTtyZXR1cm4gWUFIT08ubGFuZy5KU09OLnBhcnNlKFJpZ2h0Tm93LlRleHQu
RW5jb2RpbmcuYmFzZTY0RGVjb2RlKGhpc3RvcnlTdGF0ZSkpO30KZnVuY3Rpb24g
Z2V0SGlzdG9yeVN0YXRlRm9yKHJlcXVlc3RQYXJhbWV0ZXJzKQp7cmV0dXJuIFJp
Z2h0Tm93LlRleHQuRW5jb2RpbmcuYmFzZTY0RW5jb2RlKFlBSE9PLmxhbmcuSlNP
Ti5zdHJpbmdpZnkocmVxdWVzdFBhcmFtZXRlcnMpKTt9CmZ1bmN0aW9uIGdldEVt
cHR5RXZlbnRPYmplY3RXaXRoKHJlcG9ydElkKQp7dmFyIG5ld2VvPW5ldyBSaWdo
dE5vdy5FdmVudC5FdmVudE9iamVjdCgpO25ld2VvLmZpbHRlcnMucmVwb3J0X2lk
PXJlcG9ydElkO25ld2VvLmZpbHRlcnMuZGF0YT0iIjtyZXR1cm4gbmV3ZW87fQpm
dW5jdGlvbiByZXF1ZXN0UmVwb3J0SGlzdG9yeUNhbGxiYWNrKGhpc3RvcnlTdGF0
ZSkKe3ZhciByZXF1ZXN0UGFyYW1ldGVycz1nZXRSZXF1ZXN0UGFyYW1ldGVyc0Zv
cihoaXN0b3J5U3RhdGUpO2V2dF9zZWFyY2hfaW5fcHJvZ3Jlc3NfcmVxdWVzdC5m
aXJlKG5ldyBSaWdodE5vdy5FdmVudC5FdmVudE9iamVjdCgpKTtpZihyZXF1ZXN0
UGFyYW1ldGVycy5zZi5zZWFyY2hUeXBlIT1udWxsKQpldnRfc2VhcmNoX3R5cGVf
dXBkYXRlLmZpcmUocmVxdWVzdFBhcmFtZXRlcnMuc2Yuc2VhcmNoVHlwZSk7aWYo
cmVxdWVzdFBhcmFtZXRlcnMuc2Yuc29ydF9hcmdzIT1udWxsKQpldnRfc29ydF90
eXBlX3VwZGF0ZS5maXJlKHJlcXVlc3RQYXJhbWV0ZXJzLnNmLnNvcnRfYXJncyk7
ZXZ0X2tleXdvcmRfY2hhbmdlZF91cGRhdGUuZmlyZShyZXF1ZXN0UGFyYW1ldGVy
cy5zZi5rZXl3b3JkfHxnZXRFbXB0eUV2ZW50T2JqZWN0V2l0aChyZXF1ZXN0UGFy
YW1ldGVycy5yZXBvcnRfaWQpKTtzZWFyY2hfZmlsdGVyc1tyZXF1ZXN0UGFyYW1l
dGVycy5yZXBvcnRfaWRdLmZpbHRlcnM9cmVxdWVzdFBhcmFtZXRlcnMuc2Y7cmVx
dWVzdFJlcG9ydFdpdGgocmVxdWVzdFBhcmFtZXRlcnMpO30KdmFyIHJlcXVlc3RQ
YXJhbWV0ZXJDb3VudGVyPTA7ZnVuY3Rpb24gYnVpbGRSZXF1ZXN0UGFyYW1ldGVy
cyhyZXBvcnRfaWQpCnt2YXIgc2Y9c2VhcmNoX2ZpbHRlcnNbcmVwb3J0X2lkXS5m
aWx0ZXJzO3ZhciBmbXQ9c2VhcmNoX2ZpbHRlcnNbcmVwb3J0X2lkXS5mb3JtYXQ7
dmFyIHRva2VuPXNlYXJjaF9maWx0ZXJzW3JlcG9ydF9pZF0udG9rZW47cmV0dXJu
eydzZic6c2YsJ3JlcG9ydF9pZCc6cmVwb3J0X2lkLCd0b2tlbic6dG9rZW4sJ2Zt
dCc6Zm10LCdjJzpyZXF1ZXN0UGFyYW1ldGVyQ291bnRlcisrfTt9CmZ1bmN0aW9u
IHJlcXVlc3RSZXBvcnRXaXRoKHJlcXVlc3RQYXJhbWV0ZXJzKQp7dmFyIHBvc3RE
YXRhPSJmaWx0ZXJzPSIrZW5jb2RlVVJJQ29tcG9uZW50KFlBSE9PLmxhbmcuSlNP
Ti5zdHJpbmdpZnkocmVxdWVzdFBhcmFtZXRlcnMuc2YpKSsiJnJlcG9ydF9pZD0i
K3JlcXVlc3RQYXJhbWV0ZXJzLnJlcG9ydF9pZCsiJnJfdG9rPSIrcmVxdWVzdFBh
cmFtZXRlcnMudG9rZW4rIiZmb3JtYXQ9IitZQUhPTy5sYW5nLkpTT04uc3RyaW5n
aWZ5KHJlcXVlc3RQYXJhbWV0ZXJzLmZtdCk7aWYoaXNCcm93c2VySGlzdG9yeU1h
bmFnZW1lbnRFbmFibGVkJiZjYWNoZWRSZXBvcnRSZXNwb25zZXNbcG9zdERhdGFd
KQphamF4UmVwb3J0RGF0YVN1Y2Nlc3MoY2FjaGVkUmVwb3J0UmVzcG9uc2VzW3Bv
c3REYXRhXSk7ZWxzZQpSTlQuRXZlbnRzLmFqYXhSZXF1ZXN0KHBvc3REYXRhLCIv
Y2kvYWpheFJlcXVlc3QvZ2V0UmVwb3J0RGF0YSIsImFqYXhSZXBvcnREYXRhU3Vj
Y2VzcyIpO30KZnVuY3Rpb24gYWpheFJlcG9ydERhdGFTdWNjZXNzKG8pCntpZihv
LnJlc3BvbnNlVGV4dCE9PXVuZGVmaW5lZCkKe2lmKGlzQnJvd3Nlckhpc3RvcnlN
YW5hZ2VtZW50RW5hYmxlZCkKY2FjaGVkUmVwb3J0UmVzcG9uc2VzW28uYXJndW1l
bnRdPW87dmFyIHJlc3VsdHM9WUFIT08ubGFuZy5KU09OLnBhcnNlKG8ucmVzcG9u
c2VUZXh0KTt2YXIgZW89bmV3IFJpZ2h0Tm93LkV2ZW50LkV2ZW50T2JqZWN0KCk7
ZW8ubmFtZT1wbF9uYW1lO2VvLmRhdGE9cmVzdWx0cztlby5maWx0ZXJzLnJlcG9y
dF9pZD1yZXN1bHRzLnJlcG9ydF9pZDtldnRfcmVwb3J0X3VwZGF0ZS5maXJlKGVv
KTtldnRfdG9waWNfd29yZHNfdXBkYXRlLmZpcmUoZW8pO2V2dF9zZWFyY2hfc3Vn
Z2VzdF91cGRhdGUuZmlyZShlbyk7UmlnaHROb3cuVXJsLnRyYW5zZm9ybUxpbmtz
KCk7aW5pdExpbmtJbnRlcmNlcHRpb24oKTt9fQpmdW5jdGlvbiBmb3JtRmllbGRT
ZW5kU3VjY2VzcyhvKQp7aWYoby5yZXNwb25zZVRleHQhPT11bmRlZmluZWQpCmV2
dF9mb3JtX2J1dHRvbl9zdWJtaXRfdXBkYXRlLmZpcmUoby5yZXNwb25zZVRleHQp
O30KZnVuY3Rpb24gb25TZW5kRm9ybSgpCntvblNlbmRGb3JtLl9zbWFydEFzc2lz
dGFudD0ob25TZW5kRm9ybS5fc21hcnRBc3Npc3RhbnQ9PT10cnVlKT9mYWxzZTp0
cnVlO3ZhciBmb3JtRmllbGRzPVlBSE9PLmxhbmcuSlNPTi5zdHJpbmdpZnkoUmln
aHROb3cuVUkuRm9ybS5mb3JtRmllbGRzKTt2YXIgcG9zdERhdGE9ImFfaWQ9Iitf
YW5zd2VySUQrIiZpX2lkPSIrX2luY2lkZW50SUQrIiZzbXJ0X2Fzc3Q9IitvblNl
bmRGb3JtLl9zbWFydEFzc2lzdGFudCsiJmZfdG9rPSIrUmlnaHROb3cuVUkuRm9y
bS5mb3JtVG9rZW4rIiZmb3JtPSIrZW5jb2RlVVJJQ29tcG9uZW50KGZvcm1GaWVs
ZHMpO1JOVC5FdmVudHMuYWpheFJlcXVlc3QocG9zdERhdGEsIi9jaS9hamF4UmVx
dWVzdC9zZW5kRm9ybSIsImZvcm1GaWVsZFNlbmRTdWNjZXNzIiwiZ2VuZXJpY0Fq
YXhGYWlsdXJlIik7fQpmdW5jdGlvbiBvblNlbmRQYXNzd29yZFJlc2V0Rm9ybSh0
eXBlLGFyZykKe3ZhciBldnRPYmo9YXJnWzBdO3ZhciBwb3N0RGF0YT0icHdfcmVz
ZXQ9IitldnRPYmoucHdfcmVzZXQ7dHJ5e3ZhciBmb3JtRmllbGRzPVlBSE9PLmxh
bmcuSlNPTi5zdHJpbmdpZnkoUmlnaHROb3cuVUkuRm9ybS5mb3JtRmllbGRzKTtm
b3JtRmllbGRzPWVuY29kZVVSSUNvbXBvbmVudChmb3JtRmllbGRzKTtwb3N0RGF0
YSs9IiZmX3Rvaz0iK1JpZ2h0Tm93LlVJLkZvcm0uZm9ybVRva2VuKyImZm9ybT0i
K2Zvcm1GaWVsZHM7fWNhdGNoKGUpe30KUk5ULkV2ZW50cy5hamF4UmVxdWVzdChw
b3N0RGF0YSwiL2NpL2FqYXhSZXF1ZXN0L3Jlc2V0UGFzc3dvcmQiLCJmb3JtRmll
bGRTZW5kU3VjY2VzcyIsImdlbmVyaWNBamF4RmFpbHVyZSIpO30KZnVuY3Rpb24g
Y2hhdFF1ZXVlQW5zd2VyKG8pCntpZihvLnJlc3BvbnNlVGV4dCE9PXVuZGVmaW5l
ZCkKZXZ0X2NoYXRfcXVldWVfdXBkYXRlLmZpcmUoby5yZXNwb25zZVRleHQpO30K
ZnVuY3Rpb24gb25DaGVja1F1ZXVlKHR5cGUsYXJncykKe3ZhciBldnRPYmo9WUFI
T08ubGFuZy5KU09OLnBhcnNlKGFyZ3NbMF0pO3ZhciBwb3N0RGF0YT0iaW50ZXJm
YWNlX2lkPSIrZXZ0T2JqLmRhdGEuaW50ZXJmYWNlX2lkO2lmKGV2dE9iai5kYXRh
LnFpZCkKcG9zdERhdGErPSImcWlkPSIrZXZ0T2JqLmRhdGEucWlkO2lmKGV2dE9i
ai5kYXRhLmNfaWQpCnBvc3REYXRhKz0iJmNfaWQ9IitldnRPYmouZGF0YS5jX2lk
O2lmKGV2dE9iai5kYXRhLm9yZ19pZCkKcG9zdERhdGErPSImb3JnX2lkPSIrZXZ0
T2JqLmRhdGEub3JnX2lkO2lmKGV2dE9iai5kYXRhLmNvbnRhY3RfZW1haWwpCnBv
c3REYXRhKz0iJmNvbnRhY3RfZW1haWw9IitldnRPYmouZGF0YS5jb250YWN0X2Vt
YWlsO2lmKGV2dE9iai5kYXRhLmNvbnRhY3RfZm5hbWUpCnBvc3REYXRhKz0iJmNv
bnRhY3RfZm5hbWU9IitldnRPYmouZGF0YS5jb250YWN0X2ZuYW1lO2lmKGV2dE9i
ai5kYXRhLmNvbnRhY3RfbG5hbWUpCnBvc3REYXRhKz0iJmNvbnRhY3RfbG5hbWU9
IitldnRPYmouZGF0YS5jb250YWN0X2xuYW1lO2lmKGV2dE9iai5kYXRhLnByb2Qp
CnBvc3REYXRhKz0iJnByb2Q9IitldnRPYmouZGF0YS5wcm9kO2lmKGV2dE9iai5k
YXRhLmNhdCkKcG9zdERhdGErPSImY2F0PSIrZXZ0T2JqLmRhdGEuY2F0O2lmKGV2
dE9iai5kYXRhLnRlc3QpCnBvc3REYXRhKz0iJnRlc3Q9IitldnRPYmouZGF0YS50
ZXN0O1JOVC5FdmVudHMuYWpheFJlcXVlc3QocG9zdERhdGEsIi9jaS9hamF4UmVx
dWVzdE9wdGlvbmFsL2NoZWNrQ2hhdFF1ZXVlIiwiY2hhdFF1ZXVlQW5zd2VyIik7
fQpmdW5jdGlvbiBvbkNoYXRTZXR0aW5nc1JlcXVlc3QodHlwZSxhcmdzKQp7dmFy
IGV2dE9iaj1hcmdzWzBdO2NoYXQud2FpdF90aHJlc2hvbGQ9ZXZ0T2JqLmRhdGEu
d2FpdF90aHJlc2hvbGQ7Y2hhdC5taW5fYWdlbnRzX2F2YWlsPWV2dE9iai5kYXRh
Lm1pbl9hZ2VudHNfYXZhaWw7fQpmdW5jdGlvbiBvbkNoYXROb3RpZnlGQXR0YWNo
KHR5cGUsYXJncykKe3ZhciBldnRPYmo9YXJnc1swXTtwb3N0RGF0YT0iZW5nYWdl
bWVudElkPSIrZXZ0T2JqLmRhdGEuZW5nYWdlbWVudF9pZDtwb3N0RGF0YSs9IiZj
aGF0U0lkPSIrZXZ0T2JqLmRhdGEuY2hhdF9zaWQ7Uk5ULkV2ZW50cy5hamF4UmVx
dWVzdChwb3N0RGF0YSwiL2NpL2FqYXhSZXF1ZXN0L25vdGlmeUNoYXRTZXJ2aWNl
RkF0dGFjaCIsImNoYXROb3RpZnlGQXR0YWNoQW5zd2VyIik7fQpmdW5jdGlvbiBj
aGF0Tm90aWZ5RkF0dGFjaEFuc3dlcihvKQp7aWYoby5yZXNwb25zZVRleHQhPW51
bGwpCmV2dF9jaGF0X25vdGlmeV9mYXR0YWNoX3VwZGF0ZS5maXJlKG8ucmVzcG9u
c2VUZXh0KTt9CmZ1bmN0aW9uIG9uUGFjU3RhdFJlcXVlc3QodHlwZSxhcmdzKQp7
dmFyIGV2dE9iaj1hcmdzWzBdO2lmKGV2dE9iaikKe3Bvc3REYXRhPSJ0eXBlPSIr
ZXZ0T2JqLmRhdGEuZHFhSW5zZXJ0VHlwZSsiJndpZGdldD0iK2V2dE9iai5kYXRh
LmRxYVdpZGdldFR5cGUrIiZjb2x1bW49IitldnRPYmouZGF0YS5kcWFBY3Rpb247
Uk5ULkV2ZW50cy5hamF4UmVxdWVzdChwb3N0RGF0YSwiL2NpL2FqYXhSZXF1ZXN0
L2luc2VydFdpZGdldFN0YXRzIik7fX0KZnVuY3Rpb24gZ2VuZXJpY0FqYXhGYWls
dXJlKG8pCntpZihvLnJlc3BvbnNlVGV4dCE9PXVuZGVmaW5lZCkKe2lmKG8ucmVz
cG9uc2VUZXh0PT0iQ2xlYW5zZSBFcnJvciIpCnthbGVydCgiQWpheCBkYXRhIGZh
aWx1cmU6IElsbGVnYWwgcGFyYW1ldGVyIHZhbHVlIik7fQplbHNlCnthbGVydCgi
QWpheCByZXF1ZXN0IGZhaWx1cmU6ICIrby5yZXNwb25zZVRleHQpO319fQpSTlQu
RXZlbnRzLmFqYXhSZXF1ZXN0PWZ1bmN0aW9uKHBvc3QsdXJsLHN1Y2Nlc3NIYW5k
bGVyLGZhaWx1cmVIYW5kbGVyLGRhdGEpCnt2YXIgcmVxdWVzdE9iamVjdD17InBv
c3QiOnBvc3QsInVybCI6dXJsLCJzdWNjZXNzSGFuZGxlciI6c3VjY2Vzc0hhbmRs
ZXIsImZhaWx1cmVIYW5kbGVyIjpmYWlsdXJlSGFuZGxlciwiZGF0YSI6ZGF0YX07
b25fYmVmb3JlX2FqYXhfcmVxdWVzdC5maXJlKHJlcXVlc3RPYmplY3QpO3JlcXVl
c3RPYmplY3Q9UmlnaHROb3cuTGFuZy5jbG9uZU9iamVjdChyZXF1ZXN0T2JqZWN0
KTt2YXIgY2FsbGJhY2s9e307Y2FsbGJhY2suc3VjY2Vzcz1ldmFsKHJlcXVlc3RP
YmplY3Quc3VjY2Vzc0hhbmRsZXIpOyhyZXF1ZXN0T2JqZWN0LmZhaWx1cmVIYW5k
bGVyPT1udWxsKT9jYWxsYmFjay5mYWlsdXJlPWdlbmVyaWNBamF4RmFpbHVyZTpj
YWxsYmFjay5mYWlsdXJlPWV2YWwocmVxdWVzdE9iamVjdC5mYWlsdXJlSGFuZGxl
cik7aWYocmVxdWVzdE9iamVjdC5kYXRhIT1udWxsKWNhbGxiYWNrLmFyZ3VtZW50
PXJlcXVlc3RPYmplY3QuZGF0YTtyZXF1ZXN0T2JqZWN0LnVybCs9c2Vzc2lvbjtp
ZihyZXF1ZXN0T2JqZWN0LnBvc3Q9PSIiKQp2YXIgcmVxdWVzdD1ZQUhPTy51dGls
LkNvbm5lY3QuYXN5bmNSZXF1ZXN0KCdQT1NUJyxyZXF1ZXN0T2JqZWN0LnVybCxj
YWxsYmFjayk7ZWxzZQp2YXIgcmVxdWVzdD1ZQUhPTy51dGlsLkNvbm5lY3QuYXN5
bmNSZXF1ZXN0KCdQT1NUJyxyZXF1ZXN0T2JqZWN0LnVybCxjYWxsYmFjayxyZXF1
ZXN0T2JqZWN0LnBvc3QpO307fQ==

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=home.gif
Content-Type: image/gif; name=home.gif
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/1316468885/themes/standard/images/acer/home.gif
Content-Transfer-Encoding: Base64

R0lGODlhDgALALMAAAAAAP////Pz8+fn58DAwL+/v3Z2dmlpaV1dXVBQUCsrK///
/wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAOAAsAAAQvcEkpTBozU6PU1VvXfVkl
iuQyHOf5DUnbXrE8S4SIILmCZAUdIugDCom/CVGWjAAAOw==

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=Share.png
Content-Type: image/png; name=Share.png
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/1316468885/themes/standard/images/Share.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAACXBIWXMAAABIAAAA
SABGyWs+AAAACXZwQWcAAAAUAAAAFACjOyrRAAAAyVBMVEUAAAANDQ0ODg4PDw8R
ERESEhITExMUFBQVFRUZGRkfHx8gHh8hHx8mJiYpJygsLCwvLy9nZ2doaGhqampr
a2tubm5vb290dHR5d3h5eXl6enp8fHx+fn6AgICEhISFhYWHh4eLi4uMjIyNjY2O
jo6SkpKUlJSXl5eYmJienp6fn5+hoaGioqKnp6epqamqqqqrq6usrKyurq62tra6
urq9vb3Av7/AwMDCwcHDw8PExMTHx8fIyMjJyMnKycng4ODq6ur+/v7///8D4h//
AAAAAXRSTlMAQObYZgAAAAFiS0dEQYnebE4AAACzSURBVBgZBcG7SgNRFADAObtn
EUUsxF9QAzYBe/+/i00KsRG7WBgkwUd27z3OAACAYPUOAKYv4X63BoD66C/h/LEB
gNj8pPqb4RPXoKTqC9St1wWUVDVDp8+gJFVQVAFS9TpiZDjgUkm1zP0B3GE7K6l9
HxsAp6ZJsCHWnguQhAGFAZBiiEAnBhCVYpxgYUwQUowTtK2YQEh5McIVQOyWNO1v
AEBOv/F0ejuAUGBcnQEAgH9qL0b+Zw97UgAAACV0RVh0Y3JlYXRlLWRhdGUAMjAw
OS0wOC0xN1QxNTo0ODowNyswMDowMLktnTAAAAAldEVYdG1vZGlmeS1kYXRlADIw
MDktMDgtMTdUMTU6NDg6MDcrMDA6MDDmnOsEAAAAAElFTkSuQmCC

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=Print.png
Content-Type: image/png; name=Print.png
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/1316468885/themes/standard/images/Print.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAACXBIWXMAAABIAAAA
SABGyWs+AAAACXZwQWcAAAAUAAAAFACjOyrRAAAA0lBMVEUAAAALCwsNDQ0VFRUX
GRsZGRkaGhoaHR8bGxsdHR0eHh4fHx8lJSUnKSsrKysvLy8vMTM9PT0/QENDQ0NE
REREREdHR0dKSkpLTE9NTU1OTk5SUlVWVlZbXF9cXFxjY2NnZ2dubm5wcHBxcXF4
eHh6enuEhISFg4OFhYWGhISGhoaIhoeLi42ZmZmampqcm5ufn5+np6mpqamtrKy2
tra8u7vIyMjR0NDX1tbd3d3h4ODh4eHi4uLt7e3u7u7w8PDy8vLz8/P19fX9/f3+
/v7///9ScSblAAAAAXRSTlMAQObYZgAAAAFiS0dERPm0mMEAAAC2SURBVBgZlcHZ
dsFQGIDRj0jMaiZKpKKaqhZBDCF1avX9X6lr8efUTS+6N/zPWOPX8CKGaL59ErZP
wmvsRcMj0al8iEqHq6Zllcy+MEuW1QRyUVR/1upRlAPycdx61FpxnAcKSnUHWlep
AlC8vM+W2mw6LQJmGE4W2iQMTSDtuuWqVnbdNJBynIzxIIyM46QAYxFkayNRywaB
AV+b+Wt7fRTr9svb6hNQu975W5x72wM3T3f4yw9gviZkBhQ0XQAAACV0RVh0Y3Jl
YXRlLWRhdGUAMjAwOS0wOC0xN1QxNTo0ODowNiswMDowMB9aloQAAAAldEVYdG1v
ZGlmeS1kYXRlADIwMDktMDgtMTdUMTU6NDg6MDYrMDA6MDBA6+CwAAAAAElFTkSu
QmCC

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=Email.png
Content-Type: image/png; name=Email.png
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/1316468885/themes/standard/images/Email.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABU0lEQVQ4y+2UwaqC
UBCGe4qiRXbfpm2tXLjqLXLnRgh6ATc9QmKSbZLIQlLBbS+QohRtooUS8t/mlJIE
Qve2bOCDM8w/P8eZg7XaNz4S9Xodn6BkeDweEQQB9vv9W1DP6XQqGzYaDbiui+Fw
iPP5jDiOEUVRJaQhLfWMx2OQR8nQcRxMJhOs12skSYLD4VAJaUhLPfP5vGxI191u
t9B1nSHLMpbLJa7XKy6XSwkyohppcj3xMkPbtjGdTgt6vR4GgwGyLEOapgw6h2HI
as9a4sVws9lAVdUCRVHQ6XTQ7XaLufE8j36/z2rPWqLSUBRFNp/ZbMZyQRAYeZ3m
LUlStSF9sqZpbDaGYbBzFYvFAqPRqMhfno3v+7AsC6ZpvgUtaLValbfcbDax2+3Y
pv+C53kgD2bm3R4012rd4NB+hrvzw2g/uOd5LddyD1zHxfdH9v/4BdviV7KvFAtH
AAAAAElFTkSuQmCC

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=Notification.png
Content-Type: image/png; name=Notification.png
Content-Location: http://acer--uk.custhelp.com/euf/rightnow/optimized/1316468885/themes/standard/images/Notification.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAACXBIWXMAAABIAAAA
SABGyWs+AAAACXZwQWcAAAAUAAAAFACjOyrRAAABtlBMVEUAAAANDQ0ODg4QEBAS
EhITExMUFBQWFhYXFxcZGRkaGhobGxsdHR0eHh4fHx8gICAjIyMkJCQmJiYoKCgp
KSkuLi4wMDAxMTEyMjI2NjY3Nzc6Ojo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJD
Q0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1PT09RUVFSUlJTU1NUVFRV
VVVWVlZZWVlaWlpbW1teXl5fX19gYGBhYWFkZGRoaGhpaWlra2tubm5vb29wcHBx
cXFzc3N0dHR1dXV4eHh5eXl6enp8fHx+fn5/f3+BgYGCgoKDg4OGhoaHh4eIiIiO
jo6Pj4+RkZGUlJSXl5eenp6goKChoaGjo6OkpKSmpqarq6usrKy0tLS2tra6urrC
wsLExMTGxsbHx8fLy8vMzMzNzc3Pz8/T09PU1NTV1NTW1tbX1tbX19fY2Njb2trc
3Nzd3d3h4eHi4uLj4+Pk5OTl49rl5OTn5+fo6Ojp6enq6err6urr6+vs7Ozt7e3v
7+/w8PDz8/P08eX09PT19PT29vb4+Pj5+fn6+vr8/Pz9/f3+/v7///+/WGNAAAAA
AXRSTlMAQObYZgAAAAFiS0dEkHgKjgwAAAEOSURBVBjTY2CAAWYWBnSgbBPgxI8m
LKTXFeQlrceLLKZW2NucGOni6C+HELMyT29O8VGQ1/TWtYALisQ0dhf6qsurW3oK
wAW5cyZ0N/nry6mZRrAhBHOBgoHGcqomYaxwQYn8CT3Noc6Kyua+fHDB6KbczPgQ
DxNNMzctmFhsQlJGdm5UuL2GrK01TFCxt7evtzktOcBKR1uP3RUimNo/sbEiK9gv
MtzdytSQESxmHKwmJcDD5ezMySEgZ+CgAhYU07EwUJW3bI+zkpTXMdIQgWjn4xMW
V1aqipKRERXk4bVDDhQmJgYCoK21obq8tLggL6+gqKSssr6pDSzc0drS1FBXU1Nb
19jS2tHJwAAA5+lAS4WfecMAAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMDgtMjVU
MTU6Mjg6MzYrMDA6MDCtWiXDAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5LTA4LTI1
VDE1OjI4OjM2KzAwOjAw8utT9wAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VS
ZWFkeXHJZTwAAAAASUVORK5CYII=

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=icon_hotKeyHelp.png
Content-Type: image/png; name=icon_hotKeyHelp.png
Content-Location: http://support.gateway.com/s/images/icon_hotKeyHelp.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAACAAAAAhCAIAAAA3RD4GAAAACXBIWXMAAAsTAAAL
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/FRgAAAcBJREFUeNpi/P//PwMtARMDjQHNLWAhqOL27dt79+y9
fPnSzm3bISLuXp66unrOLs6qqqoEtTPiiYN379719fauWLoMl4KI6KjMrCxpaWly
LHj37l1IUNCjBw/xO1BOQX7x0qV47MAZB329vXDTTc3NFi9fdufBfQhavHyZqbkZ
ROrRg4clRUXfv3/H6YT/2MCxY8eU5RUgKCIs7Nu3b2gKvn37lpWZCVezYf36/zgA
dh8cOXwYzm5qaeHk5ERTwMnJ2dzSAufu2rWLtCCaOW06PMHgSipCQkLpWZkQNjyB
EWUBcoBaWVnhiWEpKSly8gEnJ+edB/cZGBiePn2KGTjI4NixYxRlNPwJ/OnTp/CQ
gYcV1YqK79+/lxQVwbkBgYHUtODp06dJCQmnT56CcEvKy/GVGf9JBE+ePHG0t4fn
gKzMTPzqGSgxvbqqCjMPUmRBRFgY3PTp06YTo4UECzasX0+q6f///2ckvsp0cnCA
FH+m5mbLV66kco329OlTeOGaV1BA/Srz27dviDpATo62dTL+HE5ynQwBwsLCvRP6
yXAN44hpF23csEFFQRGCNm7YMJJadjS3gHG0dU0IAAYAE/QpQukrJAMAAAAASUVO
RK5CYII=

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=icon_systemProperties.png
Content-Type: image/png; name=icon_systemProperties.png
Content-Location: http://support.gateway.com/s/images/icon_systemProperties.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAACgAAAAhCAIAAAAkk37yAAAACXBIWXMAAAsTAAAL
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/FRgAAA31JREFUeNrkV29IE2EYPyM4dqnJOTIZuIHugx9UWmy2
FOZAWppBSCxxGRZNN7+UJQj+h9TUlFyGTuaHjamVoDMIRfzsQCcmhAp3Bm7cfanc
J3sPP10f3ng55u3PjYFEL/vw3LPf+/zeu+e53/NcGs/z2HmsC9g5rYtJ7GFZ1rfk
+7qzAwDAMIwgiGsajem2Sa1WJx4kTdKjZlm2p6t7a3OTAyDiLxlB3Cwvez00RJJk
6olv6HS/fvyMASDl2Vvb26nMMcdxNE175+ZkhCwaBsfxkdHRcDicMmKWZZ80NjZb
rdnZ2T19fTiOi7I+etxYXFx8v7b2zcgIx3FxgvLxFsMwRoMhX6nKV6pa7HYAQJPV
Ci+FvyarFQDQYrcLkTHCxrnjcDjcYLGEjoLwcm1l1eP2jDscl7OyhDClSjXucHjc
nrWVVSEy+eLq6uz8ODcf4XTOuJRK5b2au6enpxiGZWRmflld2Q4EXj5vjUAufl4u
KSmRnGOaphHr4uflOks9tG1PrQRBPHvRiuM4juNv3zlCoRBibW6xI+TQ4GAyOR4Z
HoYJ6+zo4HkeAFBnNkOP0WAAADRYHk47nWeL4Pj4GOXe7/eLBo9KDABAmymKQoWG
nJAj4jQMw0Dk1OQUgkkjpigK7qwzm4V+v9+PuGe9XlTGwvPxPC+8adHyjprj/b09
aBgqjEK/Xq9va2+Hdm9XNypj74d5oVaTJGmqroI2wzDJCEhu7tUIj81uQ0Hhamtv
1+v1EbCiomJoBIPBlLXFV/39eSoltE3VVTa77SwmIyMdGr9PTlJGTJLktMuFYZi2
VDc6NiaKOTg4gMaVnBwJ/fhS+t/zUhQlClCr1c4ZV2FhoUwm3ja+Hx5CQy6XS1Au
lmUNZeXQ/nawHy16DK3Vaa7H2B71USsUCm2pDtq7u7tSc7HwaQFVgPihYyjXss8n
1Ck+4SXUmWjKFau4bplMsHRDR8H3ExOJjwyDAwPQ1pbqzr5mCfXj9fV1dPapyam4
9ypsyRFalqhkooVUFwpvjFgURSHdhoIaI2z8YY/juIH+fmFXrrPU36mpycvLUygU
sHsGg0Hf0hKST6hloqoiecqcm53t7epOMM3OGVdlZWXKxluapj1u99mBJEK0zQ/M
iYzWaVK/nViW3Q4EAoGAf2MDzmLaUl1+QUGF0ajRaBKc5pMh/uc/2v4/4j8DAPG1
hKuH7svgAAAAAElFTkSuQmCC

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=icon_F3_PowerOptions.png
Content-Type: image/png; name=icon_F3_PowerOptions.png
Content-Location: http://support.gateway.com/s/images/icon_F3_PowerOptions.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAACsAAAAoCAIAAADoq5Q5AAAACXBIWXMAAAsTAAAL
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/FRgAABY1JREFUeNrsWH1MU1cUf7fvrXxUylfpF21faYHJR9FW
nUihaFQEhYpj2x/KmKAuxkXZFHQRXVx0aoybEmfcPxKRmYGZDhOwAs5lmgkFEf2D
jzqDqBShIJR+2Vfe690fbyEEI2DLQrJ4/rq595xzf+edc8/vvgsghMicCgOZa3mH
4P+AwGq1ziWC0lOnthVsKT1d6hUE6KmYzWZVwgJOUHB6WtrwyIjHfjz/BoTLhWEY
i8VisVgugpiDLEC3GwBAj8cHHgjmSfQE8cetW3q93ma3MxjTx2C32ymKYrPZs4Og
f2Dgm5IDutra2Ng4N0VNq3+vpeX40WMQwivVv81CFgwGw9b8/OqrV1AUBQzwL6cA
8CZy+f3mzU9yPtI3NSWp1bNwFjo7OzPS1oQGBslxaTiPn5qcIhGK+JywFZpU0+Dg
6/p1N25EyeQiHj8/L28KtzPNwrOnz3bu+KKttTU4JMTpdPqxWGsz1zEYjIa6+jXp
6YGv5Vin0+3eVWizWmNiY/cfPOhtP3A4HHuLilhMn0hphDCMu0SlqqioIAgCQtje
3v66/vXa6zFR0eE8ftz8+Xdu35na+YwQNN5tjIyQRYglYoFw0ULlteprUyg3NTYu
Vir5nLDQwKBvDx16/vy5twisVmtebq6IL8DDRe9HRl4sL59CuaOzc21GhpDLFfEF
X+/dV1VZuT4zy2AweIXgSXe3HJfKJDgvJHTH9u0Oh+PNWC1Fu/cIwrhCLm9teobR
aOzr65Pj0n3FxZ5XIoSwpbnZRRAohrGDgpKSk/38/BAE6enpaW9vx3E8JiYGRVFa
+XLV5QtlZSwWy+12F+0tFgqFEMI4Rbxer/e8EsfGxgp37ZKKxEIuLyNtzePHf0MI
627oli5aLBWJo2Xy7w4fdrvdEMK2+/cXxCvEfAE/lPPjmTP0JITw+LFjiUs+GB4e
9pCZIIT9L/rpzh8hi5DLIxEEufrrVYPBgKIoSZI/X6yor6u32+1l58+/HBwkXK5l
yeosrXacKXAcp6P0nBdIkoQQMn2Y7KBAkiQxDEtJ1XQZuvp6jRRFEQRRevr0iHnk
cmWVr69vgK9vQcEWiUQybg4QQEfiFTcCAMZcYxazhXazKTf3zNmz4aJwkiQBAE+6
u48eOeLv5+dwODbk5GRkrpto+8r5CiJwCgJjTLu3QCCEEFIk+expT/+LF/S8QqHY
+GluQEAAhNBFEFaLhaTc8qiorPVadMJmEMIHbW1Mpk9wcLCHCFAUVSerURRl+vgY
DI9u/3l7fGnrts85YWFutxsAwACMsTHX8hXLNRrNRHOKopqammJiYzy/oQAAEhOX
2mw2DMPMIyMdHR0TEozEKxT0USRJMio6OkurnWTe1nbfYh7dkPOhV3ekkNDQZI3G
5XL5+/tfr6m52dAwvqRJ1WAYRh/aqOjopKSkSbanvv8hNIyzctVqrxCw2ey8zZ9R
bgpF0UGT6WJ5udFopJeUKhVr3jyKong8nnb95A/w07lzLc3NOwsL38Mwb7nRZDJ9
nJMTzuXJJDgeLirYnG809kIIR0dHFyuVYoEwO0vrdDonmlRXVy+IV2zauHHSvIfc
CCFsbW1dqEgQ8QURYokcl6ao1bU1NTabbfXKVdEy+VeFX9JqFEWZTKYDJSVyXKpU
JExLjBBCMPO/94b6+uI9RS+HhjAMAwAAABKUCxMTlz140JaZmZmamjowMKDT6ap+
qXw5NCQSi8vKL8THx0/fbN7q/eDhw4cnT5xo/OuuzWZjMpkQQroSCYJwOp0AQRAA
eDyeWpOyv6REJpPNqN297QuG1WK5dOlSc7P+Uaeht7d31GxGAKALFsdxiVSyLkub
nZ1NU+h/goAWl8t1715LV0eXyWSiPXC4HJVKFRsbN/O9vULw7v3gHYJZln8GAO+y
WBEjnB4fAAAAAElFTkSuQmCC

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=icon_bluetooth.png
Content-Type: image/png; name=icon_bluetooth.png
Content-Location: http://support.gateway.com/s/images/icon_bluetooth.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAA
AARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA
OpgAABdwnLpRPAAAAwBQTFRFAAAAAQEBAgICAwMDBQUFBgYGBwcHCAgICQkJCgoK
CwsLDAwMDQ0NDg4ODw8PEBAQEREREhISFBQUFRUVGBgYGRkZGxsbHBwcHR0dICAg
IiIiIyMjJCQkJSUlKCgoKysrLCwsLi4uLy8vMDAwMTExNDQ0NjY2Nzc3Ojo6Ozs7
Pz8/QEBAQkJCRUVFSEhIS0tLUFBQVVVVX19fZGRkZWVlampqcHBwdHR0dXV1hYWF
h4eHioqKjY2Nj4+PkJCQkZGRkpKSlZWVmpqam5ubn5+fpKSkpaWlpqamp6enqamp
qqqqrKysr6+vs7OztbW1t7e3uLi4ubm5urq6vr6+xcXFx8fHyMjIysrKzc3Nzs7O
0tLS1NTU1dXV19fX2NjY2tra3Nzc3d3d3t7e39/f4eHh4+Pj5OTk5eXl5+fn6Ojo
6enp6urq6+vr7Ozs7e3t7+/v8fHx8vLy9PT09fX19vb29/f3+Pj4+fn5+vr6+/v7
/Pz8/f39/v7+////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAJ0aa0gAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVU
IHYzLjM2qefiJQAAAa5JREFUOE+tk1dXwkAQhUOAQAoBezcoKigqRgFF7F1E7GLB
hoAgKhERRdz/brJLQggPPui+ZM/Md+7Mzp1g4JeD/StQjK75fL5AWFCrVkvkZtsw
dCx8rIooQNQh5QgCItSyQsjAcyfMcJsG+MX3ZEIG/EidA2F0adUClAyAMNIIVoiK
QrLSn6gAdmAfE7VASIrpcJz7ck9/rJtwHO8tlSBSUeDFPD1vM/W/jVHBwipBEFQm
rwF0vYmT5sHcuP065aQtViv4VgFSBZwYiB2M5rwXCZeJZhrIOGoClYCAieFuz5/S
KRdjpNhGNlQHECwzdPWSGCFpUYCll8oaBcxAsn2Xwr2TYVmrzWaZe9cCOmPXnVB4
fXCYSZI0E1ufWgBrjwuT5an0o12vFwexrX5FxiV22ZHKOzjg7slmOWlsN+omgTSo
vuiwaJZbdGFNArI1wKLihdtb2pWc60aTlkd9pgAbYB+a5ak1C5gVu4/QUgU0gFcG
DlG+qagBki0wzsH64m5GtBsFjuHSUihPLdQtLQDZGWXtPadKXn4FDAiRIM/z/pVk
Na08Ux2qvf/95/0BegtMueIYF5kAAAAASUVORK5CYII=

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=icon_F4_zz.gif
Content-Type: image/gif; name=icon_F4_zz.gif
Content-Location: http://support.gateway.com/s/images/icon_F4_zz.gif
Content-Transfer-Encoding: Base64

R0lGODlhHAAjAPcAACEYISkhISkpKTEpKTEpMTExMTk5OUJCQlJSUlpSUlpaWmNj
Y2tra3Nzc3t7e4yMjJSUlJycnK2trbWtrbW1tb29vcbGxs7OztbW1t7e3ufn5+/v
7/f39///////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////ywAAAAAHAAjAAAItAA7CBxIsKDBgwgTKlzIsKHDhxAjFlyQ
AIECBhILBgCwMUBGgwoAQPhIUAIABBxICtTAMYNKgQgASGgYoSPHmzMlbLS4wGVC
CDZtzqxp0ydCDBCSQniwUUCFlxA4LniJQUAAARtUcihwlcJLBxsbvLSwsUBKkluv
XnjJgOODlxSsHjj7cYNVAQ8k6NVrISKGoDcDIPAr4IDhwwcMTIXIAUMGDI4hP9bw
srLly5gza97MmWRAAAA7

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=icon_F5_displaytoggle_nobutton.gif
Content-Type: image/gif; name=icon_F5_displaytoggle_nobutton.gif
Content-Location: http://support.gateway.com/s/images/icon_F5_displaytoggle_nobutton.gif
Content-Transfer-Encoding: Base64

R0lGODlhIwAoAPcAACEYIUI5OVpSUmtra3t7e4yMjJSUlKWlpa2trbWtrbW1tb29
vcbGxs7OztbW1t7e3ufn5+/v7/f39///////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////ywAAAAAIwAoAAAI0wAnCBxIsKDBgwgTKlzIsKHDhxAjSpxI
saLFixgzatyYMIIBAgEAiBwJQACBAxNQMiAwgCRJAgUcEHQwwEGEgw4aAJggYAIB
BDIXCB0qwYEBBDMJLNzZk4CDBS5HLkCAdKADpQqZ+nwaVeTUqgKvLuW5FWrXqQmS
jm3K9SxVtVnJOjUbFS3chFrndgXwdaaABQ4gEISQE0FeAw0eKBi6QMGDBT8JSkDw
UQDJAAQIJGAwocEEBwgyuxxA4KhgjqhTq17NurXr17Bjy55Nu7bt27gTBgQAOw==

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=icon_F6_brighttoggle_nobutton.gif
Content-Type: image/gif; name=icon_F6_brighttoggle_nobutton.gif
Content-Location: http://support.gateway.com/s/images/icon_F6_brighttoggle_nobutton.gif
Content-Transfer-Encoding: Base64

R0lGODlhIgAkAPcAACEYITExMTkxMUI5OVpSUlpaWmNjY2tra3Nzc3t7e4SEhIyM
jJSUlJycnKWlpa2lpa2trbWtrbW1tb29vcbGxs7OztbW1t7e3ufn5+/v7/f39///
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////ywAAAAAIgAkAAAI7QA3CBxIsKDBgwgTKlzIsKHDhxAjSpxI
saLFixgzStSwIIHHjx8lEHRQoAABkygLODg4YUAFCxYmNIB5AQIADAIvANjJsycA
CgYhrGSQoYKCDQsybDhgIafPpxCCRk2wQACAAgaUJni5wcJTnyILQoiwIUPPBgIT
NACgQOdXnlHFQsDa8wCAC1sJvOQZgC/PsATHCrS6c+WGBE03uH0LIG7gqRIQHFiQ
9XBir4wBkBVLliiFqEmXJl68s29PwANbvrwwwcEFmBNuCsQMwLRPoAU5gtxtWKAD
xmg1Ch9OvLjx48iTK1/OvLnz5xIDAgA7

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=icon_touchpad.png
Content-Type: image/png; name=icon_touchpad.png
Content-Location: http://support.gateway.com/s/images/icon_touchpad.png
Content-Transfer-Encoding: Base64

iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAA
AARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAA
OpgAABdwnLpRPAAAAwBQTFRFJyUlKCYmLCoqLiwsLi0tNDIyNTMzNjQ0ODc3Pz09
Q0JCRUNDR0VFTEtLT01NUU9PUlBQV1VVWVdXYV9fY2JiZGNjZ2ZmcXBwdHNzd3Z2
fXx8fn19jIuLj46OkZGRlJOTnJubnZ2dn5+foqGhpKSkqKenrKurvLy8vr29xcTE
xcXFzczM09LS1tbW2NjY3t3d5eXl5ubm6+vr7Ozs7e3t7u7u8fHx9vb2+Pj4+/v7
/f39////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAl2khpQAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVU
IHYzLjM2qefiJQAAAMZJREFUOE/tk+kWgiAQhafUNDOzsj2z0sp2zdKS93+vToDC
cTk9QN1fMPdjGAYA9EXwB3AHqvrguzfSoVIg3vQA2nEVEC4k+MjigcB1qNYzAdsA
LQ54NBQDqyNSF0C7cIAnBniWTDO/T0qgRXoynjyZDzt6zeQUBIgG2XowkyLg68zX
o/SdsAxnFSDdopv5XA0j0I5zmmPF3hnLsLdiNAZTElSl6ZQBOHZHp/AaGAXgULM9
pmV9m8+AJjKv4asAsEB+9CP/4g2o8cmV9FhFnwAAAABJRU5ErkJggg==

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=F8.gif
Content-Type: image/gif; name=F8.gif
Content-Location: http://support.gateway.com/s/images/F8.gif
Content-Transfer-Encoding: Base64

R0lGODlhJAAiAPcAACEYIUI5OVJSUlpSUmNjY2tra3Nzc3t7e4SEhIyMjJSUlJyU
lJycnKWlpa2lpbWtrb29vcbGxs7OztbW1t7e3ufn5+/v7/f39///////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////ywAAAAAJAAiAAAI/gAxCBxIsKDBgwgTKlzIsKHDhxAjSpx4
sIIFig0nAGCAkWEDAA06GowQUmABABJGloyo8YDACwAAXCgYAYDLiBUC2BQoAUCB
ghp3QggQoeGFAAEQ3Py4EoMFnTYtVFCAEmEFATFjNoBw86SECQOyZj0AAcCEBAMQ
PiAAAQKBAxe4YoAp84HYsUcHWDB78MFPDAUUYJDb86fduzvtWijwoO/fwINdMsVw
+K7LmhUONDb4QIACBQIMxHVJoGplsS4HBICZ0qAEqFq50p3ZE/GBniQDJLRAYULP
pLd9DuRNoWbMA1LLFmVo/MDkkccx1FzesOYBrwitC7wIMQKDmDOzGjeNWFikwgsD
qJtfz769+/fw48ufT7+++YAAADs=

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=FRightArrow.gif
Content-Type: image/gif; name=FRightArrow.gif
Content-Location: http://support.gateway.com/s/images/FRightArrow.gif
Content-Transfer-Encoding: Base64

R0lGODlhHwAjAPcAACEYITExMTkxMTk5OUI5OUpCQkpKSlJSUlpaWmNjY2tjY2tr
a3Nzc3t7e4R7hISEhIyEhIyMjJSUlJycnKWlpa2trbW1tb29vcbGxs7Ozt7e3ufn
5+/v7/f39///////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////ywAAAAAHwAjAAAI/gA9CBxIsKDBgwgTKlzIsKHDhxAFXrAQ
ceEFAAAuVEx4MeNGDxMwFMyAMQNBDg1MLnQAYIDKhBwOABDAYSEFjAgGVniwYEGD
CQJvAjjQkEIAkxkKYDwgE4CBCh4aLKj58CaBkBs2YJhAAACFihoGJNBY8EICjxAZ
AKB40EKBnA85AGjQIWEDABosWtB48WvCCl49YLhAtiDGjBcLH7wogSRGxQIPZ7AA
AGpCyhMcA3h5UAOABwofbPaQ4QJnhAkIQB6IoUCBiBcX5C2o4a5fiKITUKC64cIC
AAwgdqAqGkCCnmc/e9Cw+mBMASo1MDCA0UADjRoEBF7YVMJCzacNKMoMftLC7IE3
D1CFeXtghJYGM6yPKAHjR4QTZt7fz7+///8ABlhQQAAAOw==

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=FLeftArrow.gif
Content-Type: image/gif; name=FLeftArrow.gif
Content-Location: http://support.gateway.com/s/images/FLeftArrow.gif
Content-Transfer-Encoding: Base64

R0lGODlhIQAmAPcAACEYITExMTkxMTk5OUJCQkpCQlJSUlpaWmNjY2tra3Nzc4R7
hISEhJSUlJycnKWlpa2trbW1tb29vcbGxs7Ozt7e3u/v7/f39///////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////ywAAAAAIQAmAAAI/gAxCBxIsKDBgwgTKlzIsKHDhxAjSkx4
oYKFiQsNABBwESNCAAAIVPCIQcJIgiAHnBQIIcLDCAAGTCAoIYEDgg5AzmwIEwCC
gRAaIFjQ4GTKlQwfAHiAAUIBkFABMLDw4ACFiUqjRjXQUSIFrWAZYFQAFixShxa0
BoC6FmQDh0GLSigL9qeDBg26GkwAUkJPulATYIAqIWGDBAgqzAXZtqwCDAkQn004
oGxjADclkgUcU+9DC5UBv8VIITTYxxIfJLhoYXNbAxAwOLD6MOtoDBYkNIBA4YLA
AzGvNuQ7QHjC0gBcNrTAwLhAvpkHUohNku9tkgURALiOfaBiz93DC4sfT768+fPo
SQYEADs=

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=FUpArrow.gif
Content-Type: image/gif; name=FUpArrow.gif
Content-Location: http://support.gateway.com/s/images/FUpArrow.gif
Content-Transfer-Encoding: Base64

R0lGODlhHwAmAPcAACEYIUI5OVpSUmtra3t7e4yMjJSUlKWlpbWtrb29vcbGxtbW
1t7e3ufn5+/v7/f39///////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////ywAAAAAHwAmAAAI8QAhCBxIsKDBgwgTKlzIsKHDhxANNkAQ
cWGDAAQqJlQQAEBGjQYTABj5UWADkAZGkhT44AAABREfEFC5EoKDkQEeICTAsydP
ATRrQkAwMgHCoEhpEnBggMCDjgKOJk3KcyRTqwenUlUwEsGColm1Bs1I8kHXsGJV
ZpxJ1iPatG5nBoAwwK1BuGohzBwAoWNJgnhX1m1r4G1apyMLNDh7NzABogASiATA
wLBYAh0BPKg717JWAgwGHPgKoPBBnz6Bjh2o+uTDzashcAVQQGPKvAIR5ATpUigE
nSBl+w4+kAFG4gcbmEbOvLnz59CjS5/uMCAAOw==

------------lklIDkRqA33x7wS7VvfJGW
Content-Disposition: inline; filename=FDnArrow.gif
Content-Type: image/gif; name=FDnArrow.gif
Content-Location: http://support.gateway.com/s/images/FDnArrow.gif
Content-Transfer-Encoding: Base64

R0lGODlhHwAlAPcAACEYIUI5OVpSUmtra3t7e4yMjJSUlKWlpbWtrb29vcbGxtbW
1t7e3ufn5+/v7/f39///////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
/////////////////ywAAAAAHwAlAAAI3gAhCBxIsKDBgwgTKlzIsKHDhxAROoi4
8AEBBBQTPhgAAGNGgw0CAOj4seACkSMxPiig4KOCkTAxihTwQOOCBQxu5lxgAGZM
CAdGJki4wKfRoypnJmRwtGlKgUEBNEBY1ClSgQ2eHmRq1ahHCCIJUO3qdSABAGK3
kvX59SyAsWu1QnCLkGvctgAEwL07UADaunG1Ohh5YO9ajwlGLgAc2KPfAEQDk0wM
oDDCBwwya84cla0DkQEmUnzJdiXJjwxQnl5cEkIDv6dbD9wYW7bABwa+2h4oerfv
38CDCw8eEAA7

------------lklIDkRqA33x7wS7VvfJGW--
