<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>127448</bug_id>
          
          <creation_ts>2014-01-22 14:58:43 -0800</creation_ts>
          <short_desc>Make WebKitTestRunner work with iOS</short_desc>
          <delta_ts>2025-01-31 17:36:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210643</blocked>
    
    <blocked>286846</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Farler">dfarler</reporter>
          <assigned_to name="David Farler">dfarler</assigned_to>
          <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrowe</cc>
    
    <cc>ossy</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>970890</commentid>
    <comment_count>0</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-01-22 14:58:43 -0800</bug_when>
    <thetext>Make it build - make it launch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970896</commentid>
    <comment_count>1</comment_count>
      <attachid>221911</attachid>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-01-22 15:03:54 -0800</bug_when>
    <thetext>Created attachment 221911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970912</commentid>
    <comment_count>2</comment_count>
      <attachid>221911</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2014-01-22 15:35:24 -0800</bug_when>
    <thetext>Comment on attachment 221911
Patch

I&apos;m not sure why this changing a bunch of ATK code. It doesn&apos;t seem related to iOS at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971099</commentid>
    <comment_count>3</comment_count>
      <attachid>221911</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-01-23 03:44:26 -0800</bug_when>
    <thetext>Comment on attachment 221911
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=221911&amp;action=review

&gt; Tools/WebKitTestRunner/GNUmakefile.am:65
&gt; +	-no-fast-install \

How is it related to iOS?

&gt; Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:65
&gt; -    m_globalNotificationHandler = nullptr;
&gt; +    m_globalNotificationHandler = 0;

Why do you use 0 instead of nullptr? c++11 is mandatory now for all platform.

&gt; Tools/WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:71
&gt; -        return nullptr;
&gt; +        return 0;

ditto

&gt; Tools/WebKitTestRunner/TestController.cpp:-271
&gt; -    Options options(defaultLongTimeout, defaultShortTimeout);
&gt; -    OptionsHandler optionsHandler(options);

Please don&apos;t revert http://trac.webkit.org/changeset/160627 to make it work on iOS

&gt; Tools/WebKitTestRunner/cairo/TestInvocationCairo.cpp:58
&gt; -    MD5::Digest hash;
&gt; +    Vector&lt;uint8_t, 16&gt; hash;

ditto

&gt; Tools/WebKitTestRunner/cg/TestInvocationCG.cpp:111
&gt; -
&gt; +    
&gt;      hashString[0] = &apos;\0&apos;;
&gt; -    for (size_t i = 0; i &lt; MD5::hashSize; i++)
&gt; +    for (int i = 0; i &lt; 16; i++)

Please don&apos;t revert http://trac.webkit.org/changeset/160386

&gt; Tools/WebKitTestRunner/efl/TestControllerEfl.cpp:106
&gt; -void TestController::setHidden(bool hidden)
&gt; +void TestController::setHidden(bool)
&gt;  {
&gt; -    PlatformWKView view = mainWebView()-&gt;platformView();
&gt; -
&gt; -    if (!view) {
&gt; -        fprintf(stderr, &quot;ERROR: view is null.\n&quot;);
&gt; -        return;
&gt; -    }
&gt; -
&gt; -    if (hidden)
&gt; -        evas_object_hide(view);
&gt; -    else
&gt; -        evas_object_show(view);
&gt; +    // FIXME: Need to implement this to test visibilityState.

Why did you remove this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971164</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-01-23 09:13:18 -0800</bug_when>
    <thetext>This pretty much looks like a rebase/merge gone wrong, so I don&apos;t think there&apos;s reason to panic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971254</commentid>
    <comment_count>5</comment_count>
      <attachid>221911</attachid>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-01-23 11:39:08 -0800</bug_when>
    <thetext>Comment on attachment 221911
Patch

Sorry, this was a botched rebase. I&apos;ll repost a clean patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971405</commentid>
    <comment_count>6</comment_count>
      <attachid>222044</attachid>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-01-23 17:14:37 -0800</bug_when>
    <thetext>Created attachment 222044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971408</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-23 17:15:29 -0800</bug_when>
    <thetext>Attachment 222044 did not pass style-queue:


ERROR: Tools/ChangeLog:17:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Tools/ChangeLog:18:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Tools/ChangeLog:19:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Tools/ChangeLog:21:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 4 in 34 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971711</commentid>
    <comment_count>8</comment_count>
      <attachid>222142</attachid>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-01-24 12:52:21 -0800</bug_when>
    <thetext>Created attachment 222142
Patch

More inclusive excluded source files for macosx, make style checker happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971728</commentid>
    <comment_count>9</comment_count>
      <attachid>222142</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-24 13:25:36 -0800</bug_when>
    <thetext>Comment on attachment 222142
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=222142&amp;action=review

&gt; Tools/WebKitTestRunner/InjectedBundle/ios/ActivateFontsIOS.mm:2
&gt; + * Copyright (C) 2013 Apple Inc. All rights reserved.

These should all be 2014

&gt; Tools/WebKitTestRunner/TestController.cpp:315
&gt; +#if !PLATFORM(IOS)
&gt;  #if PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt; 1080

I think we do want this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971775</commentid>
    <comment_count>10</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-01-24 15:15:37 -0800</bug_when>
    <thetext>Committed r162729: &lt;http://trac.webkit.org/changeset/162729&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221911</attachid>
            <date>2014-01-22 15:03:54 -0800</date>
            <delta_ts>2014-01-23 11:39:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127448-20140122150353.patch</filename>
            <type>text/plain</type>
            <size>232451</size>
            <attacher name="David Farler">dfarler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNTQ1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGRlYWUxMTA3MjNlOWMzYTY4ZWI5NmNmZjRjOGM0ZmUy
Mzk1MjUzNS4uZjc0NjA1ZjY0YzI2OTQ2YjUyNzBiYTM0N2MzODU2YWJiMTZlYzJmZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
NyBAQAorMjAxNC0wMS0yMiAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgMjAxNC0wMS0xNiAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgICAgICAgICBNYWtlIFdlYktpdFRlc3RSdW5uZXIgd29yayB3aXRoIGlPUworICAgICAg
ICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc0NDgK
KworICAgICAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICAgICAgICAgKiBNYWtlZmlsZToKKyAgICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NvbmZp
Z3VyYXRpb25zL0Jhc2UueGNjb25maWc6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0NvbmZpZ3VyYXRpb25zL0luamVjdGVkQnVuZGxlLnhjY29uZmlnOgorICAgICAgICAgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVyLnhj
Y29uZmlnOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9HTlVtYWtlZmlsZS5h
bToKKyAgICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRl
ck1vY2suY3BwOgorICAgICAgICAgICAgICAgIChXVFI6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2Nr
OjpHZW9sb2NhdGlvblByb3ZpZGVyTW9jayk6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9nQWNjZXNzaWJpbGl0
eUV2ZW50cyk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAgICAgICAg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcDoKKyAgICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5pZGw6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsOgorICAgICAgICAgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoK
KyAgICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
ICAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOgor
ICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmg6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHA6CisgICAgICAgICAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmxvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAg
ICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZXNldFRvQ29uc2lz
dGVudFN0YXRlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpjaGlsZEVsZW1lbnRCeUlkKToKKyAg
ICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVs
ZW1lbnRCeUlkKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXJBdGsuY3BwOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyOjpzZXROb3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAg
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlcjo6cmVtb3ZlQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIpOgorICAgICAgICAgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXJBdGsuaDoKKyAgICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRBdGsuY3BwOgorICAgICAgICAgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRBdFBvaW50KToKKyAgICAgICAg
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZEF0SW5kZXgpOgorICAg
ICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmtlZFVJRWxlbWVu
dEF0SW5kZXgpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFyaWFPd25zRWxlbWVudEF0SW5kZXgpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCk6CisgICAgICAgICAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCk6Cisg
ICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRleCk6
CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRD
aGlsZEF0SW5kZXgpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNlbGVjdGVkUm93QXRJbmRleCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6dGl0bGVVSUVsZW1lbnQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmVudEVsZW1lbnQpOgorICAgICAgICAgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KToKKyAgICAgICAgICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1
ZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRy
aWJ1dGVTZXR0YWJsZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cm9sZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6b3JpZW50YXRpb24pOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzUHJlc3NBY3Rpb25TdXBwb3J0ZWQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKToKKyAgICAgICAgICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUp
OgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JD
b2x1bW5BbmRSb3cpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6Omhvcml6b250YWxTY3JvbGxiYXIpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKToKKyAgICAgICAgICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcik6Cisg
ICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJh
bmdlRm9yRWxlbWVudCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cHJldmlvdXNUZXh0TWFya2VyKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpuZXh0VGV4dE1hcmtlcik6CisgICAgICAgICAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yTWFya2Vycyk6CisgICAg
ICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2Vy
Rm9yVGV4dE1hcmtlclJhbmdlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKToKKyAgICAgICAgICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yQm91bmRz
KToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRl
eHRNYXJrZXJGb3JCb3VuZHMpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JQb2ludCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKToK
KyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2Vy
Rm9ySW5kZXgpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN1cHBvcnRlZEFjdGlvbnMpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbik6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6bWF0aFBvc3RzY3JpcHRzRGVzY3JpcHRpb24pOgorICAgICAgICAg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3Jp
cHRpb24pOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNs
YXNzTGlzdCk6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0UnVu
bmVyOjpwbGF0Zm9ybU5hbWUpOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9ndGsvQWN0aXZhdGVGb250c0d0ay5jcHA6CisgICAgICAgICAgICAgICAg
KFdUUjo6aW5pdGlhbGl6ZUZvbnRDb25maWdTZXR0aW5nKToKKyAgICAgICAgICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwOgorICAg
ICAgICAgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSk6CisgICAgICAgICAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcklPUy5tbTogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAuCisgICAgICAgICAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKToKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0
aW9uTGlzdGVuZXIpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgICAg
ICAgICAgKFdUUjo6ZmluZEFjY2Vzc2libGVPYmplY3RCeUlkKToKKyAgICAgICAgICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKToKKyAg
ICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJJT1MubW06IENvcGllZCBmcm9tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsLgorICAgICAgICAgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjppc0VxdWFsKToKKyAgICAgICAgICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW06IEFkZGVkLgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQpOgorICAgICAgICAgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VxdWFsKToKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRMaW5rZWRVSUVsZW1l
bnRzKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRE
b2N1bWVudExpbmtzKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpnZXRDaGlsZHJlbik6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UpOgorICAgICAgICAgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnQpOgorICAgICAgICAgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRBdFBvaW50KToKKyAgICAgICAgICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9mQ2hpbGQpOgorICAgICAg
ICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkQXRJbmRleCk6Cisg
ICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVt
ZW50QXRJbmRleCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXJpYU93bnNFbGVtZW50QXRJbmRleCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KToKKyAgICAgICAgICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KToK
KyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dBdEluZGV4
KToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3Rl
ZENoaWxkQXRJbmRleCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5kZXgpOgorICAgICAgICAgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KToKKyAgICAgICAg
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJlbnRFbGVtZW50KToKKyAg
ICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRCeVJv
dyk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mTGlua2VkVUlFbGVtZW50cyk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mRG9jdW1lbnRMaW5rcyk6CisgICAgICAgICAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ2hpbGRyZW4pOgor
ICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0
ZXMpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmlu
Z0F0dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpudW1iZXJBdHRyaWJ1dGVWYWx1ZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXR0cmlidXRlVmFsdWUpOgorICAgICAgICAg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRyaWJ1dGVWYWx1ZSk6
CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1
dGVTZXR0YWJsZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1lcyk6CisgICAgICAgICAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZSk6CisgICAgICAgICAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vicm9sZSk6CisgICAgICAgICAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKToKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZSk6CisgICAgICAg
ICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVzY3JpcHRpb24pOgorICAg
ICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uKToK
KyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1
ZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGFuZ3Vh
Z2UpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlbHBU
ZXh0KToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp4KToK
KyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KToKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3aWR0aCk6CisgICAgICAg
ICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KToKKyAgICAgICAg
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCk6CisgICAg
ICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFkpOgor
ICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKToK
KyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptaW5WYWx1ZSk6
CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUp
OgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVz
Y3JpcHRpb24pOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
Omluc2VydGlvblBvaW50TGluZU51bWJlcik6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCk6CisgICAgICAgICAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmNyZW1lbnRBY3Rpb25TdXBwb3J0
ZWQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVj
cmVtZW50QWN0aW9uU3VwcG9ydGVkKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0VuYWJsZWQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZCk6CisgICAgICAgICAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAgICAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKToKKyAgICAgICAgICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoaWVyYXJjaGljYWxMZXZlbCk6CisgICAgICAg
ICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xhc3NMaXN0KToKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzcGVhayk6CisgICAgICAg
ICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUlzR3JhYmJlZCk6Cisg
ICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYURyb3BFZmZl
Y3RzKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5l
Rm9ySW5kZXgpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJhbmdlRm9yTGluZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cmFuZ2VGb3JQb3NpdGlvbik6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Ym91bmRzRm9yUmFuZ2UpOgorICAgICAgICAgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKToKKyAgICAgICAgICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2UpOgor
ICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRT
dHJpbmdSYW5nZUlzTWlzc3BlbGxlZCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJlZGljYXRlKToKKyAgICAgICAgICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFk
ZXJzKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVzT2ZSb3dIZWFkZXJzKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5zKToKKyAgICAgICAgICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dzKToKKyAgICAgICAgICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMp
OgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0
ZXNPZkhlYWRlcik6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cm93Q291bnQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNvbHVtbkNvdW50KToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjppbmRleEluVGFibGUpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJvd0luZGV4UmFuZ2UpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UpOgorICAgICAgICAgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRSb3cpOgorICAgICAg
ICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhvcml6b250YWxTY3JvbGxi
YXIpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRp
Y2FsU2Nyb2xsYmFyKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgICAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAg
ICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCk6CisgICAg
ICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVjcmVtZW50KToKKyAg
ICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzaG93TWVudSk6Cisg
ICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MpOgorICAg
ICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hp
bGQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vz
c2liaWxpdHlWYWx1ZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZG9jdW1lbnRFbmNvZGluZyk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRVUkkpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnVybCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVy
KToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0ZvY3Vz
YWJsZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNT
ZWxlY3RhYmxlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc011bHRpU2VsZWN0YWJsZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNWaXNpYmxlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc09mZlNjcmVlbik6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSWdub3JlZCk6CisgICAgICAgICAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXApOgorICAgICAgICAgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRha2VGb2N1cyk6CisgICAgICAgICAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbik6CisgICAgICAgICAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKToKKyAgICAgICAg
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb24pOgor
ICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJS
YW5nZUZvckVsZW1lbnQpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUxlbmd0aCk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNUZXh0TWFya2VyKToKKyAgICAgICAgICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0VGV4dE1hcmtlcik6CisgICAgICAg
ICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yVGV4dE1hcmtl
clJhbmdlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UpOgorICAg
ICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJG
b3JUZXh0TWFya2VyUmFuZ2UpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JCb3VuZHMpOgorICAgICAgICAgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvckJvdW5kcyk6CisgICAg
ICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvclBv
aW50KToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nl
c3NpYmlsaXR5RWxlbWVudEZvclRleHRNYXJrZXIpOgorICAgICAgICAgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VD
b250YWluc0F0dHJpYnV0ZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aW5kZXhGb3JUZXh0TWFya2VyKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc1RleHRNYXJrZXJWYWxpZCk6CisgICAgICAgICAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvckluZGV4KToKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXIp
OgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRN
YXJrZXIpOgorICAgICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1h
dGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjptYXRoUHJlc2NyaXB0c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXRoRGVzY3JpcHRpb24pOgorICAg
ICAgICAgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlv
bnMpOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvQWN0aXZhdGVGb250c0lPUy5tbTogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwuCisg
ICAgICAgICAgICAgICAgKFdUUjo6YWN0aXZhdGVGb250cyk6CisgICAgICAgICAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1t
OiBBZGRlZC4KKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpFdmVudFNl
bmRlclByb3h5KToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp+RXZl
bnRTZW5kZXJQcm94eSk6CisgICAgICAgICAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6
dXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbik6CisgICAgICAgICAgICAgICAgKFdUUjo6RXZlbnRT
ZW5kZXJQcm94eTo6bW91c2VEb3duKToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRl
clByb3h5Ojptb3VzZVVwKToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5
Ojptb3VzZU1vdmVUbyk6CisgICAgICAgICAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6
bGVhcEZvcndhcmQpOgorICAgICAgICAgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Omtl
eURvd24pOgorICAgICAgICAgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Ny
b2xsQnkpOgorICAgICAgICAgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVv
dXNNb3VzZVNjcm9sbEJ5KToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5
OjphZGRUb3VjaFBvaW50KToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5
Ojp1cGRhdGVUb3VjaFBvaW50KToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRlclBy
b3h5OjpzZXRUb3VjaE1vZGlmaWVyKToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRl
clByb3h5OjpzZXRUb3VjaFBvaW50UmFkaXVzKToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVu
dFNlbmRlclByb3h5Ojp0b3VjaFN0YXJ0KToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNl
bmRlclByb3h5Ojp0b3VjaE1vdmUpOgorICAgICAgICAgICAgICAgIChXVFI6OkV2ZW50U2VuZGVy
UHJveHk6OnRvdWNoRW5kKToKKyAgICAgICAgICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5
Ojp0b3VjaENhbmNlbCk6CisgICAgICAgICAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6
Y2xlYXJUb3VjaFBvaW50cyk6CisgICAgICAgICAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94
eTo6cmVsZWFzZVRvdWNoUG9pbnQpOgorICAgICAgICAgICAgICAgIChXVFI6OkV2ZW50U2VuZGVy
UHJveHk6OmNhbmNlbFRvdWNoUG9pbnQpOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJT1MubW06IENvcGllZCBmcm9t
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaWRsLgorICAgICAgICAgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
OjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVQYWdlSU9TLm1tOiBDb3BpZWQgZnJv
bSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmlkbC4KKyAgICAgICAgICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnBsYXRmb3JtRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAg
ICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW06CisgICAgICAg
ICAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkKToKKyAgICAg
ICAgICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFy
Y2hQcmVkaWNhdGUpOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0
UnVubmVyOjpwbGF0Zm9ybU5hbWUpOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgICAgICAgICAg
KFdUUjo6VGVzdFJ1bm5lcjo6cGxhdGZvcm1OYW1lKToKKyAgICAgICAgICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAgICAgICAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0
SW52b2NhdGlvbjo6aW52b2tlKToKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAg
ICAgICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2Vi
S2l0VGVzdFJ1bm5lclByZWZpeC5oOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9jYWlyby9UZXN0SW52b2NhdGlvbkNhaXJvLmNwcDoKKyAgICAgICAgICAgICAgICAoV1RSOjpj
b21wdXRlTUQ1SGFzaFN0cmluZ0ZvckNhaXJvU3VyZmFjZSk6CisgICAgICAgICAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2NnL1Rlc3RJbnZvY2F0aW9uQ0cuY3BwOgorICAgICAgICAgICAgICAg
IChXVFI6OmNvbXB1dGVNRDVIYXNoU3RyaW5nRm9yQ29udGV4dCk6CisgICAgICAgICAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL2VmbC9UZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgICAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEhpZGRlbik6CisgICAgICAgICAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL2lvcy9JbmZvUGxpc3Quc3RyaW5nczogQWRkZWQuCisgICAgICAg
ICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW06IEFk
ZGVkLgorICAgICAgICAgICAgICAgICgtW1Rlc3RSdW5uZXJXS1ZpZXcgaW5pdFdpdGhGcmFtZTpj
b250ZXh0UmVmOnBhZ2VHcm91cFJlZjpyZWxhdGVkVG9QYWdlOnVzZVRpbGVkRHJhd2luZzpdKToK
KyAgICAgICAgICAgICAgICAoLVtUZXN0UnVubmVyV0tWaWV3IF9zaG91bGRVc2VUaWxlZERyYXdp
bmdBcmVhXSk6CisgICAgICAgICAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lcldpbmRvdyBpc0tl
eVdpbmRvd10pOgorICAgICAgICAgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgc2V0
RnJhbWVPcmlnaW46XSk6CisgICAgICAgICAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lcldpbmRv
dyBzZXRGcmFtZTpdKToKKyAgICAgICAgICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyV2luZG93
IGZyYW1lUmVzcGVjdGluZ0Zha2VPcmlnaW5dKToKKyAgICAgICAgICAgICAgICAoLVtXZWJLaXRU
ZXN0UnVubmVyV2luZG93IGJhY2tpbmdTY2FsZUZhY3Rvcl0pOgorICAgICAgICAgICAgICAgIChX
VFI6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKyAgICAgICAgICAgICAgICAo
V1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKToKKyAgICAgICAgICAgICAgICAoV1RSOjpQ
bGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAgICAgICAgIChXVFI6
OlBsYXRmb3JtV2ViVmlldzo6cGFnZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6UGxhdGZvcm1X
ZWJWaWV3Ojpmb2N1cyk6CisgICAgICAgICAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3
aW5kb3dGcmFtZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpzZXRX
aW5kb3dGcmFtZSk6CisgICAgICAgICAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpkaWRJ
bml0aWFsaXplQ2xpZW50cyk6CisgICAgICAgICAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3
OjphZGRDaHJvbWVJbnB1dEZpZWxkKToKKyAgICAgICAgICAgICAgICAoV1RSOjpQbGF0Zm9ybVdl
YlZpZXc6OnJlbW92ZUNocm9tZUlucHV0RmllbGQpOgorICAgICAgICAgICAgICAgIChXVFI6OlBs
YXRmb3JtV2ViVmlldzo6bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcik6CisgICAgICAgICAgICAg
ICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKToKKyAgICAgICAg
ICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnZpZXdTdXBwb3J0c09wdGlvbnMpOgorICAg
ICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW06
IEFkZGVkLgorICAgICAgICAgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpub3RpZnlEb25l
KToKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFs
aXplKToKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0
cm95KToKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0SGlkZGVuKToK
KyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVk
QnVuZGxlUGF0aCk6CisgICAgICAgICAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRp
YWxpemVUZXN0UGx1Z2luRGlyZWN0b3J5KToKKyAgICAgICAgICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbCk6CisgICAgICAgICAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQpOgorICAgICAgICAgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpydW5Nb2RhbCk6CisgICAgICAgICAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKToKKyAgICAgICAgICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1dlYkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbTog
Q29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwuCisgICAgICAgICAgICAgICAgKGNyZWF0ZUNG
VVJMUmVzcG9uc2VGcm9tUmVzcG9uc2VEYXRhKToKKyAgICAgICAgICAgICAgICAoc3VwcG9ydGVk
Tm9uSW1hZ2VNSU1FVHlwZXMpOgorICAgICAgICAgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9p
b3MvbWFpbklPUy5tbTogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRU
ZXN0UnVubmVyUHJlZml4LmguCisgICAgICAgICAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lckFw
cCBfcnVuVGVzdENvbnRyb2xsZXJdKToKKyAgICAgICAgICAgICAgICAoLVtXZWJLaXRUZXN0UnVu
bmVyQXBwIGFwcGxpY2F0aW9uRGlkRmluaXNoTGF1bmNoaW5nOl0pOgorICAgICAgICAgICAgICAg
IChtYWluKToKKyAgICAgICAgICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3Jt
V2ViVmlld01hYy5tbToKKyAgICAgICAgICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyk6CisgICAgICAgICAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9t
YWluLm1tOgorICAgICAgICAgICAgICAgIChzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlc0Zv
clRlc3RpbmcpOgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiAoT09QUyEpLgor
ICAgICAgICBOZWVkIHRoZSBidWcgVVJMIChPT1BTISkuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2Nv
bmZpZzoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0luamVjdGVk
QnVuZGxlLnhjY29uZmlnOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlv
bnMvV2ViS2l0VGVzdFJ1bm5lci54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0NvbmZpZ3VyYXRpb25zL2lPUy54Y2NvbmZpZzogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9HTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0dlb2xv
Y2F0aW9uUHJvdmlkZXJNb2NrLmNwcDoKKyAgICAgICAgKFdUUjo6R2VvbG9jYXRpb25Qcm92aWRl
ck1vY2s6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmxvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5j
cHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjppbml0aWFsaXplKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQ
YWdlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAoV1RS
OjpjaGlsZEVsZW1lbnRCeUlkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmFjY2Vzc2libGVFbGVtZW50QnlJZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcik6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXJBdGsuY3BwOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlcjo6c2V0Tm90aWZpY2F0aW9uRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyOjpyZW1vdmVBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXJBdGsuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
QXRrLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxlbWVudEF0
UG9pbnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZEF0SW5k
ZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1l
bnRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93
bnNFbGVtZW50QXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmRpc2Nsb3NlZFJvd0F0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpyb3dBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0ZWRDaGlsZEF0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZWxlY3RlZFJvd0F0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0aXRsZVVJRWxlbWVudCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnBhcmVudEVsZW1lbnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpkaXNjbG9zZWRCeVJvdyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnJvbGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpvcmllbnRhdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzUHJlc3NBY3Rpb25TdXBwb3J0ZWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdHJpbmdGb3JSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZSk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRSb3cpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcik6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZv
ckVsZW1lbnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwcmV2aW91
c1RleHRNYXJrZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0
VGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRN
YXJrZXJSYW5nZUZvck1hcmtlcnMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvckJv
dW5kcyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1h
cmtlckZvckJvdW5kcyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRl
eHRNYXJrZXJGb3JQb2ludCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlFbGVtZW50Rm9yVGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JJbmRleCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlvbnMpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXRoRGVzY3JpcHRpb24pOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYXRoUG9zdHNjcmlwdHNEZXNjcmlwdGlvbik6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3JpcHRp
b24pOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGFzc0xpc3QpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5uZXJF
ZmwuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRlRm9udHNHdGsu
Y3BwOgorICAgICAgICAoV1RSOjppbml0aWFsaXplRm9udENvbmZpZ1NldHRpbmcpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
SU9TLm1tOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L3dpbi9UZXN0UnVubmVyV2luLmNwcC4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmxvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZSk6CisgICAgICAgIChXVFI6OmZpbmRBY2Nlc3NpYmxlT2JqZWN0QnlJZCk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tOiBDb3BpZWQg
ZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmlkbC4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI6OmlzRXF1YWwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06IEFkZGVkLgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6fkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VxdWFsKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0TGlua2VkVUlFbGVtZW50cyk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldERvY3VtZW50TGlua3MpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbik6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRBdFBvaW50KToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5k
ZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxl
bWVudEF0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNj
bG9zZWRSb3dBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm93QXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVj
dGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0ZWRDaGlsZHJlbkNvdW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6dGl0bGVVSUVsZW1lbnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpwYXJlbnRFbGVtZW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZGlzY2xvc2VkQnlSb3cpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mRG9jdW1lbnRMaW5rcyk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNoaWxkcmVuKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxsQXR0cmlidXRlcyk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1
dGVWYWx1ZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRy
aWJ1dGVWYWx1ZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0
cmlidXRlU2V0dGFibGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0F0dHJpYnV0ZVN1cHBvcnRlZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1lcyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnJvbGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzdWJyb2xlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9s
ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0
bGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbik6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9uKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nVmFsdWUpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsYW5ndWFnZSk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlbHBUZXh0KToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6eCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnkpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3aWR0aCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlaWdodCk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRYKToKKyAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFkpOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Om1pblZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bWF4VmFsdWUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2
YWx1ZURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzSW5jcmVtZW50QWN0aW9uU3VwcG9ydGVkKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNEZWNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWQpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc0NoZWNrZWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpoaWVyYXJjaGljYWxMZXZlbCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNsYXNzTGlzdCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNwZWFrKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUlzR3Jh
YmJlZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9wRWZm
ZWN0cyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRl
eCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZSk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRpb24p
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib3VuZHNGb3JSYW5nZSk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0Zv
clJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
ZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJlZGljYXRlKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1uSGVhZGVycyk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlJvd0hlYWRlcnMpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5z
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93
cyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlZp
c2libGVDZWxscyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZkhlYWRlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJv
d0NvdW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uQ291
bnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEluVGFibGUp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dJbmRleFJhbmdlKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSW5kZXhSYW5nZSk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRS
b3cpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Ny
b2xsYmFyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVydGljYWxT
Y3JvbGxiYXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxU
b01ha2VWaXNpYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Vs
ZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
ZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmluY3JlbWVudCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRl
Y3JlbWVudCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNob3dNZW51
KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZyk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcik6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RhYmxlKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aVNlbGVjdGFibGUpOgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zpc2libGUpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc09mZlNjcmVlbik6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aGFzUG9wdXApOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0YWtlRm9jdXMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0YWtlU2VsZWN0aW9uKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YWRkU2VsZWN0aW9uKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVt
b3ZlU2VsZWN0aW9uKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4
dE1hcmtlclJhbmdlRm9yRWxlbWVudCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUxlbmd0aCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnByZXZpb3VzVGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKToKKyAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yTWFya2Vycyk6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRN
YXJrZXJSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRl
eHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yQm91bmRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvclBvaW50KToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0
TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
ZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhGb3JUZXh0TWFya2VyKToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0TWFya2VyVmFsaWQpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyRm9ySW5kZXgpOgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXIpOgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFBvc3RzY3JpcHRzRGVzY3JpcHRp
b24pOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYXRoUHJlc2NyaXB0
c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGF0
aERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vw
cG9ydGVkQWN0aW9ucyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvQWN0aXZhdGVGb250c0lPUy5tbTogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwu
CisgICAgICAgIChXVFI6OmFjdGl2YXRlRm9udHMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW06IEFkZGVkLgorICAg
ICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRlclByb3h5KToKKyAgICAgICAg
KFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkpOgorICAgICAgICAoV1RS
OjpFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uKToKKyAgICAgICAg
KFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3duKToKKyAgICAgICAgKFdUUjo6RXZlbnRT
ZW5kZXJQcm94eTo6bW91c2VVcCk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlTW92ZVRvKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQp
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjprZXlEb3duKToKKyAgICAgICAgKFdU
Ujo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeSk6CisgICAgICAgIChXVFI6OkV2ZW50
U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KToKKyAgICAgICAgKFdUUjo6RXZl
bnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludCk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVy
UHJveHk6OnVwZGF0ZVRvdWNoUG9pbnQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5
OjpzZXRUb3VjaE1vZGlmaWVyKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6c2V0
VG91Y2hQb2ludFJhZGl1cyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnRvdWNo
U3RhcnQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp0b3VjaE1vdmUpOgorICAg
ICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCk6CisgICAgICAgIChXVFI6OkV2
ZW50U2VuZGVyUHJveHk6OnRvdWNoQ2FuY2VsKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQ
cm94eTo6Y2xlYXJUb3VjaFBvaW50cyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6
OnJlbGVhc2VUb3VjaFBvaW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6Y2Fu
Y2VsVG91Y2hQb2ludCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvSW5qZWN0ZWRCdW5kbGVJT1MubW06IENvcGllZCBmcm9tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRs
LgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9JbmplY3RlZEJ1bmRs
ZVBhZ2VJT1MubW06IENvcGllZCBmcm9tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsLgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnBsYXRmb3JtRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkKToKKyAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJlZGljYXRlKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9UZXN0UnVubmVyTWFj
Lm1tOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVh
dGVPdGhlclBhZ2UpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMp
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dEludm9jYXRpb246Omludm9rZSk6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1J
bmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RS
dW5uZXJQcmVmaXguaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NhaXJvL1Rlc3RJbnZv
Y2F0aW9uQ2Fpcm8uY3BwOgorICAgICAgICAoV1RSOjpjb21wdXRlTUQ1SGFzaFN0cmluZ0ZvckNh
aXJvU3VyZmFjZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jZy9UZXN0SW52b2NhdGlv
bkNHLmNwcDoKKyAgICAgICAgKFdUUjo6Y29tcHV0ZU1ENUhhc2hTdHJpbmdGb3JDb250ZXh0KToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9UZXN0Q29udHJvbGxlckVmbC5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRIaWRkZW4pOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvaW9zL0luZm9QbGlzdC5zdHJpbmdzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW06IEFkZGVkLgorICAgICAgICAo
LVtUZXN0UnVubmVyV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dFJlZjpwYWdlR3JvdXBSZWY6
cmVsYXRlZFRvUGFnZTp1c2VUaWxlZERyYXdpbmc6XSk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJX
S1ZpZXcgX3Nob3VsZFVzZVRpbGVkRHJhd2luZ0FyZWFdKToKKyAgICAgICAgKC1bV2ViS2l0VGVz
dFJ1bm5lcldpbmRvdyBpc0tleVdpbmRvd10pOgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVy
V2luZG93IHNldEZyYW1lT3JpZ2luOl0pOgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyV2lu
ZG93IHNldEZyYW1lOl0pOgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyV2luZG93IGZyYW1l
UmVzcGVjdGluZ0Zha2VPcmlnaW5dKToKKyAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lcldpbmRv
dyBiYWNraW5nU2NhbGVGYWN0b3JdKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpQ
bGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRv
KToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KToKKyAg
ICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpwYWdlKToKKyAgICAgICAgKFdUUjo6UGxhdGZv
cm1XZWJWaWV3Ojpmb2N1cyk6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6d2luZG93
RnJhbWUpOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0ZyYW1lKToK
KyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpkaWRJbml0aWFsaXplQ2xpZW50cyk6Cisg
ICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6YWRkQ2hyb21lSW5wdXRGaWVsZCk6CisgICAg
ICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCk6CisgICAg
ICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcik6Cisg
ICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFnZSk6CisgICAg
ICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6dmlld1N1cHBvcnRzT3B0aW9ucyk6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW06IEFkZGVkLgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6bm90aWZ5RG9uZSk6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnNldEhpZGRlbik6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplSW5q
ZWN0ZWRCdW5kbGVQYXRoKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmluaXRpYWxp
emVUZXN0UGx1Z2luRGlyZWN0b3J5KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtUnVuVW50aWwpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1J
bml0aWFsaXplQ29udGV4dCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpydW5Nb2Rh
bCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQYXRoRm9y
VGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvV2ViQXJjaGl2ZUR1bXBT
dXBwb3J0SU9TLm1tOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbC4KKyAgICAgICAgKGNy
ZWF0ZUNGVVJMUmVzcG9uc2VGcm9tUmVzcG9uc2VEYXRhKToKKyAgICAgICAgKHN1cHBvcnRlZE5v
bkltYWdlTUlNRVR5cGVzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9tYWluSU9T
Lm1tOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJQ
cmVmaXguaC4KKyAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lckFwcCBfcnVuVGVzdENvbnRyb2xs
ZXJdKToKKyAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lckFwcCBhcHBsaWNhdGlvbkRpZEZpbmlz
aExhdW5jaGluZzpdKToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJW
aWV3OjpQbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL21h
aW4ubW06CisgICAgICAgIChzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlc0ZvclRlc3Rpbmcp
OgorCiAyMDE0LTAxLTE1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXVtDTWFrZV0gYnVpbGQtd2Via2l0IHNob3VsZCB0cnkgaGFyZGVyIHRv
IGF2b2lkIHJlLXJ1bm5pbmcgY21ha2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0
CmluZGV4IDVhMzQ2ZDc0MDUzZDE1OTUyMzMxMGFkOTZmMjcwNmFlYjQ3NTAzOWUuLjU1MGY4ZGZl
YWY5M2M1M2RlZDY4N2Y3YzVjMjIwZTg2ZDg2ZjU1NjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9D
TWFrZUxpc3RzLnR4dApAQCAtNiw3ICs2LDYgQEAgZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklW
RURfU09VUkNFU19ESVJ9L0luamVjdGVkQnVuZGxlKQogc2V0KFdlYktpdFRlc3RSdW5uZXJfU09V
UkNFUwogICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9DeWNsaWNSZWR1bmRhbmN5Q2hlY2su
Y3BwCiAgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L0dlb2xvY2F0aW9uUHJvdmlkZXJNb2Nr
LmNwcAotICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9PcHRpb25zLmNwcAogICAgICR7V0VC
S0lUX1RFU1RSVU5ORVJfRElSfS9QaXhlbER1bXBTdXBwb3J0LmNwcAogICAgICR7V0VCS0lUX1RF
U1RSVU5ORVJfRElSfS9UZXN0Q29udHJvbGxlci5jcHAKICAgICAke1dFQktJVF9URVNUUlVOTkVS
X0RJUn0vVGVzdEludm9jYXRpb24uY3BwCkBAIC0zNiwxNSArMzUsMTggQEAgc2V0KFdlYktpdFRl
c3RSdW5uZXJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L25ldHdvcmsKICAgICAke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0CiAgICAgJHtXRUJDT1JF
X0RJUn0vdGVzdGluZy9qcwotICAgICR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL0lQQwogICAgICR7
V0VCS0lUMl9ESVJ9L1NoYXJlZAogICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYwogICAg
ICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9QbHVnaW5zCiAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL2VmbAogICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwCiAgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZQogICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MKICAgICAke1dURl9ESVJ9CisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09S
RV9ESVJ9CisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L2luY2x1ZGUKKyAgICAk
e0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZQogICAgICR7REVSSVZFRF9TT1VS
Q0VTX0RJUn0vSW5qZWN0ZWRCdW5kbGUKICAgICAke0NNQUtFX0JJTkFSWV9ESVJ9CiAgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UKQEAgLTgwLDYgKzgyLDEyIEBAIHNldChXZWJLaXRUZXN0
UnVubmVySW5qZWN0ZWRCdW5kbGVfSURMX0ZJTEVTCiAKIHNldChXZWJLaXRUZXN0UnVubmVySW5q
ZWN0ZWRCdW5kbGVfTElCUkFSSUVTCiAgICAgJHtXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFU30K
KyAgICAke0FUS19MSUJSQVJJRVN9CisgICAgJHtFQ09SRV9MSUJSQVJJRVN9CisgICAgJHtFQ09S
RV9GSUxFX0xJQlJBUklFU30KKyAgICAke0ZPTlRDT05GSUdfTElCUkFSSUVTfQorICAgICR7R0xJ
Ql9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElCUkFSSUVTfQogKQogCiBHRU5FUkFU
RV9CSU5ESU5HUyhXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUwpAQCAtMTAx
LDMgKzEwOSw0IEBAIGFkZF9leGVjdXRhYmxlKFdlYktpdFRlc3RSdW5uZXIgJHtXZWJLaXRUZXN0
UnVubmVyX1NPVVJDRVN9KQogdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdlYktpdFRlc3RSdW5uZXIg
JHtXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFU30pCiAKIGFkZF9kZXBlbmRlbmNpZXMoV2ViS2l0
MiAke0ZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9OQU1FfSkKK2FkZF9kZXBl
bmRlbmNpZXMoV2ViS2l0MiAke0ZvcndhcmRpbmdOZXR3b3JrSGVhZGVyc0ZvcldlYktpdFRlc3RS
dW5uZXJfTkFNRX0pCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3Vy
YXRpb25zL0Jhc2UueGNjb25maWcgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWcKaW5kZXggNDg1MWZjMWQxZDg4OTZiYTM3OTYyMmZlNmM1ZTM1OTZk
MGIxNjRhZC4uZTQxMzFhMGRhNmYzNDk4NDI5MDlhOWJjMmFlMGEwMmJkNDA4YzU4NyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmln
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZp
ZwpAQCAtMjEsNiArMjEsOCBAQAogLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAvLyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKIAor
I2luY2x1ZGUgImlPUy54Y2NvbmZpZyIKKwogQ0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0g
Z251KysweDsKIENMQU5HX0NYWF9MSUJSQVJZID0gbGliYysrOwogQ0xBTkdfV0FSTl9DWFgwWF9F
WFRFTlNJT05TID0gTk87CkBAIC0zNyw2ICszOSw4IEBAIEdDQ19WRVJTSU9OID0gY29tLmFwcGxl
LmNvbXBpbGVycy5sbHZtLmNsYW5nLjFfMDsKIEdDQ19XQVJOX0FCT1VUX0RFUFJFQ0FURURfRlVO
Q1RJT05TID0gTk8KIEdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUwogR0NDX1dBUk5fVU5V
U0VEX1ZBUklBQkxFID0gWUVTCitHQ0NfV0FSTl82NF9UT18zMl9CSVRfQ09OVkVSU0lPTlthcmNo
PWFybTY0XSA9IE5POworR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT05bYXJjaD14ODZf
NjRdID0gTk87CiBXQVJOSU5HX0NGTEFHUyA9IC1XYWxsIC1XIC1Xbm8tdW51c2VkLXBhcmFtZXRl
ciAtV3VuZGVmCiBMSU5LRVJfRElTUExBWVNfTUFOR0xFRF9OQU1FUyA9IFlFUzsKIEdDQ19QUkVG
SVhfSEVBREVSID0gV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0luamVjdGVkQnVuZGxlLnhjY29uZmlnIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9JbmplY3RlZEJ1bmRsZS54Y2Nv
bmZpZwppbmRleCA3ZDc4ZTNlODFiODIzM2VmY2I2MzZmMjc4MzMxYWVlMGVlY2I1Mzk3Li5jZTVk
NDUyZWIwZGY5ZDYzYTU0MzU5NGFhMjgyNGUyMWIyYjRmMmM0IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL0luamVjdGVkQnVuZGxlLnhjY29uZmlnCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvSW5qZWN0ZWRCdW5kbGUu
eGNjb25maWcKQEAgLTI4LDQgKzI4LDEzIEBAIFBST0RVQ1RfTkFNRSA9IFdlYktpdFRlc3RSdW5u
ZXJJbmplY3RlZEJ1bmRsZTsKIAogSU5TVEFMTF9QQVRIID0gJChTWVNURU1fTElCUkFSWV9ESVIp
L0ZyYW1ld29ya3MvV2ViS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlczsKIFNLSVBf
SU5TVEFMTCA9IE5POwotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtbCQoV0VCS0lUX1NZ
U1RFTV9JTlRFUkZBQ0VfTElCUkFSWSk7CitPVEhFUl9MREZMQUdTX0JBU0UgPSAkKGluaGVyaXRl
ZCkgLWwkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUlkpIC1mcmFtZXdvcmsgUXVhcnR6
Q29yZTsKK09USEVSX0xERkxBR1MgPSAkKE9USEVSX0xERkxBR1NfJChQTEFURk9STV9OQU1FKSk7
CitPVEhFUl9MREZMQUdTX2lwaG9uZW9zID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdv
cmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3Jh
cGhpY3MgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgVUlLaXQ7CitPVEhFUl9MREZM
QUdTX2lwaG9uZXNpbXVsYXRvciA9ICQoT1RIRVJfTERGTEFHU19pcGhvbmVvcyk7CitPVEhFUl9M
REZMQUdTX21hY29zeCA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENhcmJvbiAt
ZnJhbWV3b3JrIENvY29hOworCitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyA9ICQoRVhDTFVE
RURfU09VUkNFX0ZJTEVfTkFNRVNfJChQTEFURk9STV9OQU1FKSk7CitFWENMVURFRF9TT1VSQ0Vf
RklMRV9OQU1FU19pcGhvbmVvcyA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyTWFjLm1tIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gQWN0
aXZhdGVGb250cy5tbSBJbmplY3RlZEJ1bmRsZU1hYy5tbSBJbmplY3RlZEJ1bmRsZVBhZ2VNYWMu
bW0gV2ViQXJjaGl2ZUR1bXBTdXBwb3J0TWFjLm1tOworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFN
RVNfaXBob25lc2ltdWxhdG9yID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVv
cyk7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19tYWNvc3ggPSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SVBob25lLm1tOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25m
aWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVyLnhjY29uZmlnIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9Db25maWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVyLnhjY29uZmlnCmluZGV4IDA3MTAx
NmVmMjZiNjNiNWFkNGQ1MDllODVhOTdmOTlhYTU0ODdjZDkuLjg1ZjVjMDE0YTE4ZThlZWVjY2Y0
MGFkOGM3ZTUxM2VkYjlhYTZmNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Q29uZmlndXJhdGlvbnMvV2ViS2l0VGVzdFJ1bm5lci54Y2NvbmZpZworKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXIueGNjb25maWcKQEAg
LTI4LDMgKzI4LDE0IEBAIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVTCiAKIElOU1RB
TExfUEFUSCA9ICQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzL1dlYktpdC5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9SZXNvdXJjZXM7CiBTS0lQX0lOU1RBTEwgPSBOTzsKKworT1RIRVJfTERG
TEFHU19CQVNFID0gLWwkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUlkpIC1mcmFtZXdv
cmsgV2ViS2l0MjsKK09USEVSX0xERkxBR1MgPSAkKE9USEVSX0xERkxBR1NfJChQTEFURk9STV9O
QU1FKSk7CitPVEhFUl9MREZMQUdTX2lwaG9uZW9zID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1m
cmFtZXdvcmsgSmF2YVNjcmlwdENvcmUgLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29y
ayBJbWFnZUlPIC1mcmFtZXdvcmsgVUlLaXQ7CitPVEhFUl9MREZMQUdTX2lwaG9uZXNpbXVsYXRv
ciA9ICQoT1RIRVJfTERGTEFHU19pcGhvbmVvcyk7CitPVEhFUl9MREZMQUdTX21hY29zeCA9ICQo
T1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENhcmJvbiAtZnJhbWV3b3JrIENvY29hOwor
CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyA9ICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFN
RVNfJChQTEFURk9STV9OQU1FKSk7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVz
ID0gRXZlbnRTZW5kZXJQcm94eS5tbSBtYWluLm1tIFBsYXRmb3JtV2ViVmlld01hYy5tbSBUZXN0
Q29udHJvbGxlck1hYy5tbTsKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2lwaG9uZXNpbXVs
YXRvciA9ICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfaXBob25lb3MpOworRVhDTFVERURf
U09VUkNFX0ZJTEVfTkFNRVNfbWFjb3N4ID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudElQaG9uZS5t
bTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvaU9T
LnhjY29uZmlnIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9pT1MueGNj
b25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTc3YjMxOTg5YzVlMWZhZGE2ZDUwNjNhYzc0NjZiNDVmMDZjMGEy
MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlv
bnMvaU9TLnhjY29uZmlnCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICI8REVWRUxPUEVSX0RJUj4v
QXBwbGVJbnRlcm5hbC9YY29kZUNvbmZpZy9Bc3BlbkZhbWlseS54Y2NvbmZpZyIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR05VbWFrZWZpbGUuYW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDBlMTc4MzUyNWFlMTRkZjk4YTQyZDRiYjE5
YTk3YzBmMmI5MGExZTEuLmIwMDQzNThmYmRmYTY5NzU3NmI1ZTFiMTZjNGI1NWU2YzlkOWVmNWUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR05VbWFrZWZpbGUuYW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9HTlVtYWtlZmlsZS5hbQpAQCAtMjEsOCArMjEsNiBAQCBQ
cm9ncmFtc19XZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMgPSBcCiAJVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9DeWNsaWNSZWR1bmRhbmN5Q2hlY2suaCBcCiAJVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9H
ZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgXAogCVRvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2Vv
bG9jYXRpb25Qcm92aWRlck1vY2suaCBcCi0JVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25z
LmNwcCBcCi0JVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmggXAogCVRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvUGl4ZWxEdW1wU3VwcG9ydC5jcHAgXAogCVRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvUGl4ZWxEdW1wU3VwcG9ydC5oIFwKIAlUb29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3Jt
V2ViVmlldy5oIFwKQEAgLTY0LDYgKzYyLDcgQEAgUHJvZ3JhbXNfV2ViS2l0VGVzdFJ1bm5lcl9M
REFERCA9IFwKIAkkKFhUX0xJQlMpCiAKIFByb2dyYW1zX1dlYktpdFRlc3RSdW5uZXJfTERGTEFH
UyA9IFwKKwktbm8tZmFzdC1pbnN0YWxsIFwKIAktbm8taW5zdGFsbAogCiAjIFRoZSBJbmplY3Rl
ZEJ1bmRsZSBsaWJyYXJ5IGFsbG93cyB0aGUgcmVuZGVyIHByb2Nlc3MgdG8gbG9hZCBoYXJuZXNz
IGNvZGUuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJv
dmlkZXJNb2NrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRl
ck1vY2suY3BwCmluZGV4IDkxMjAyNThjNzVlZGNlODI4M2E5YjMwMzg4MGQzNGMxOGY1ZjYyZmMu
LmM5Njg2NmYxODczMTkyMDAyNTIyMmVjMWI3MjFmMzMyZGZjNzA4ZmMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCkBAIC01MSwx
MCArNTEsMTAgQEAgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6Okdlb2xvY2F0aW9uUHJvdmlkZXJN
b2NrKFdLQ29udGV4dFJlZiBjb250ZXh0KQogewogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyID0g
V0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5hZ2VyKGNvbnRleHQpOwogCi0gICAgV0tHZW9sb2Nh
dGlvblByb3ZpZGVyVjEgcHJvdmlkZXJDYWxsYmFjazsKKyAgICBXS0dlb2xvY2F0aW9uUHJvdmlk
ZXJWMCBwcm92aWRlckNhbGxiYWNrOworICAgIHByb3ZpZGVyQ2FsbGJhY2suc3RhcnRVcGRhdGlu
ZyA9IHN0YXJ0VXBkYXRpbmdDYWxsYmFjazsKKyAgICBwcm92aWRlckNhbGxiYWNrLnN0b3BVcGRh
dGluZyA9IHN0b3BVcGRhdGluZ0NhbGxiYWNrOwogICAgIG1lbXNldCgmcHJvdmlkZXJDYWxsYmFj
aywgMCwgc2l6ZW9mKFdLR2VvbG9jYXRpb25Qcm92aWRlcikpOwotICAgIHByb3ZpZGVyQ2FsbGJh
Y2suYmFzZS52ZXJzaW9uID0gMTsKLSAgICBwcm92aWRlckNhbGxiYWNrLmJhc2UuY2xpZW50SW5m
byA9IHRoaXM7CiAgICAgcHJvdmlkZXJDYWxsYmFjay5zdGFydFVwZGF0aW5nID0gc3RhcnRVcGRh
dGluZ0NhbGxiYWNrOwogICAgIHByb3ZpZGVyQ2FsbGJhY2suc3RvcFVwZGF0aW5nID0gc3RvcFVw
ZGF0aW5nQ2FsbGJhY2s7CiAgICAgV0tHZW9sb2NhdGlvbk1hbmFnZXJTZXRQcm92aWRlcihtX2dl
b2xvY2F0aW9uTWFuYWdlciwgJnByb3ZpZGVyQ2FsbGJhY2suYmFzZSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4IGY1ZDFiZDU4Yjg5OWQ4MTY1NTMxYzkwY2I2NTIwYTUw
OWU4MDFhOTIuLjBiYjY0YTQwMDFhOGRlZWVhYjIyMDliMGI3ZWJkNGQyZDVmNmNjZGMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC04NywxOCArODcsMjEgQEAgUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZWxl
bWVudEF0UG9pbnQoaW50IHgKIAogLy8gVW5zdXBwb3J0ZWQgbWV0aG9kcyBvbiB2YXJpb3VzIHBs
YXRmb3Jtcy4KIC8vIEFzIHRoZXkncmUgaW1wbGVtZW50ZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRo
aXMgbGlzdCBzaG91bGQgYmUgbW9kaWZpZWQuCi0jaWYgKCFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShFRkwpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQorI2lm
ICFQTEFURk9STShHVEspICYmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShFRkwpCiBib29s
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVl
UmVmKSB7IHJldHVybiBmYWxzZTsgfQogYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVt
b3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKSB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisKKyNp
ZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKQogUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgeyByZXR1cm4gbnVs
bHB0cjsgfQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6bG9nQWNjZXNzaWJpbGl0eUV2
ZW50cygpIHsgfQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZSgpIHsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSB7IHJldHVybiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4o
QWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCIiKSk7IH0KICNlbmRpZgogCi0j
aWYgIUhBVkUoQUNDRVNTSUJJTElUWSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZM
KSkKLVBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnJvb3RFbGVtZW50KCkgeyByZXR1cm4gbnVsbHB0cjsgfQotUGFzc1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1l
bnQoKSB7IHJldHVybiBudWxscHRyOyB9CisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JN
KEVGTCkgJiYgIVBMQVRGT1JNKE1BQykKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6Omxv
Z0FjY2Vzc2liaWxpdHlFdmVudHMoKSB7IH0KK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKSB7IH0KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBX
VFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCA3Y2UxYTQ1YzNiNjEyMDIxYzg4
OTZmOTgzZDc1NTI2NzA4ZjkyNGEyLi4zNDcwNDQ3NmJlYTg5M2ExYjVhMDU2OWE0ZTRkYzk1YWNi
ODVlZTE4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCkBAIC0zMCw3ICszMCw3IEBA
CiAjaW5jbHVkZSAiSlNXcmFwcGFibGUuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09i
amVjdFJlZi5oPgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgotI2lmIEhBVkUoQUNDRVNTSUJJ
TElUWSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKKyNpZiBQTEFURk9STShH
VEspIHx8IChQTEFURk9STShFRkwpICYmIEhBVkUoQUNDRVNTSUJJTElUWSkpCiAjaW5jbHVkZSAi
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXJBdGsuaCIKICNlbmRpZgogCkBAIC00NCw4
ICs0NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIG1ha2VXaW5kb3dPYmplY3QoSlNDb250ZXh0UmVm
LCBKU09iamVjdFJlZiB3aW5kb3dPYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAgICAg
dmlydHVhbCBKU0NsYXNzUmVmIHdyYXBwZXJDbGFzcygpOwogICAgIAotICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoKTsKLQogICAgIC8vIENvbnRyb2xsZXIgTWV0aG9k
cyAtIHBsYXRmb3JtLWluZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucy4KICAgICBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IHJvb3RFbGVtZW50KCk7CiAgICAgUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBmb2N1c2VkRWxlbWVudCgpOwpAQCAtNzAsNyArNjgsNyBA
QCBwcml2YXRlOgogICAgIFJldGFpblB0cjxOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5v
dGlmaWNhdGlvbkhhbmRsZXI7CiAjZW5kaWYKIAotI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYg
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSkKKyNpZiBQTEFURk9STShHVEspIHx8IChQ
TEFURk9STShFRkwpICYmIEhBVkUoQUNDRVNTSUJJTElUWSkpCiAgICAgUmVmUHRyPEFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7CiAj
ZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCBkZDgxMWRlMjg1
ZjI2MjA3YWI3Y2ZmMTY4NDE4ODEzMjk4MGE5NzEyLi43NjUwNjM4OWVmOWViYzNjODRiOTU5MGM1
YTBlZDIxOTBjZWE1YWMzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTU0
LDE0ICs1NCw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWYWxpZCgpIGNvbnN0
CiB9CiAKIC8vIFVuc3VwcG9ydGVkIG1ldGhvZHMgb24gdmFyaW91cyBwbGF0Zm9ybXMuIEFzIHRo
ZXkncmUgaW1wbGVtZW50ZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRoaXMgbGlzdCBzaG91bGQgYmUg
bW9kaWZpZWQuCi0jaWYgKCFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpKSB8fCAhSEFW
RShBQ0NFU1NJQklMSVRZKQotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkgeyByZXR1cm4gMDsgfQotSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQp
IHsgcmV0dXJuIDA7IH0KLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpsaW5lQXRPZmZzZXQoaW50KSB7IHJldHVybiAwOyB9Ci1KU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpIHsg
cmV0dXJuIDA7IH0KLSNlbmRpZgotCi0jaWYgKCFQTEFURk9STShNQUMpICYmICFQTEFURk9STShH
VEspICYmICFQTEFURk9STShFRkwpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQorI2lmICFQTEFU
Rk9STShNQUMpICYmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpCiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KFBsYXRmb3JtVUlFbGVtZW50KSB7
IH0KIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoY29uc3Qg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCYpIHsgfQogQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6fkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQoKSB7IH0KQEAgLTg3LDcgKzgwLDYgQEAgdm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpkZWNyZW1lbnQoKSB7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2hvd01lbnUoKSB7IH0KIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3Mo
KSB7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZikgeyByZXR1cm4gMDsgfQotSlNWYWx1ZVJl
ZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJheUF0dHJpYnV0ZVZhbHVlKEpT
U3RyaW5nUmVmKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiBQYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0
ZVZhbHVlKEpTU3RyaW5nUmVmKSBjb25zdCB7IHJldHVybiAwOyB9CiBkb3VibGUgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpIHsgcmV0dXJu
IDA7IH0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym9vbEF0dHJpYnV0ZVZhbHVlKEpT
U3RyaW5nUmVmKSB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTIxLDcgKzExMyw2IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNSZXF1aXJlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxl
Y3RlZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci1ib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzU2VsZWN0ZWRPcHRpb25BY3RpdmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGFibGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNl
dFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopIGNvbnN0IHsgfQpAQCAtMTcw
LDcgKzE2MSw2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0
UmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKSB7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JSYW5nZSh1bnNpZ25lZCwgdW5zaWduZWQp
IHsgcmV0dXJuIDA7IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKSB7IHJl
dHVybiAwOyB9CiBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdS
YW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCwgdW5zaWduZWQpIHsgcmV0dXJuIGZhbHNlOyB9Ci11
bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRDb3VudEZvclNlYXJjaFBy
ZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1Zh
bHVlUmVmLCBKU1N0cmluZ1JlZiwgYm9vbCkgeyByZXR1cm4gMDsgfQogUGFzc1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JT
ZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9v
bCwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wpIHsgcmV0dXJuIDA7IH0KIFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZv
ckNvbHVtbkFuZFJvdyh1bnNpZ25lZCwgdW5zaWduZWQpIHsgcmV0dXJuIDA7IH0KIFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aG9yaXpv
bnRhbFNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgKaW5kZXggMmY3ZWRkY2Q0ZGYxMDMyMGQ4NzQ2ZGE2NDM1OWJiMWFjZDc2Yzk1NS4uNzU5
NzQ0MmQ1Y2QzYzYyYWQ3MDk5OGY3MjkzOTE3MzRkMzgzYjcxYSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgdHlwZWRlZiBpZCBQbGF0Zm9ybVVJRWxlbWVu
dDsKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBvYmpjX29iamVjdCogUGxhdGZvcm1VSUVsZW1lbnQ7
CiAjZW5kaWYKLSNlbGlmIEhBVkUoQUNDRVNTSUJJTElUWSkgJiYgKFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oRUZMKSkKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgKFBMQVRGT1JNKEVGTCkgJiYg
SEFWRShBQ0NFU1NJQklMSVRZKSkKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9u
SGFuZGxlckF0ay5oIgogI2luY2x1ZGUgPGF0ay9hdGsuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HUmVmUHRyLmg+CkBAIC0xMDIsNyArMTAyLDYgQEAgcHVibGljOgogICAgIC8vIEF0dHJpYnV0
ZXMgLSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBpbXBsZW1lbnRhdGlvbnMKICAgICBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gc3RyaW5nQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRl
KTsKICAgICBkb3VibGUgbnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRl
KTsKLSAgICBKU1ZhbHVlUmVmIHVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdS
ZWYgYXR0cmlidXRlKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IHVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3Q7
CiAgICAgYm9vbCBib29sQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKTsKICAg
ICBib29sIGlzQXR0cmlidXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSk7CkBAIC0x
MzYsNyArMTM1LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0OwogICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0Owot
ICAgIGJvb2wgaXNTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNTZWxl
Y3RhYmxlKCkgY29uc3Q7CiAgICAgYm9vbCBpc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0OwogICAg
IHZvaWQgc2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikgY29uc3Q7CkBA
IC0xNDYsNyArMTQ0LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogICAg
IGJvb2wgaXNFeHBhbmRlZCgpIGNvbnN0OwogICAgIGJvb2wgaXNDaGVja2VkKCkgY29uc3Q7Ci0g
ICAgYm9vbCBpc0luZGV0ZXJtaW5hdGUoKSBjb25zdDsKICAgICBib29sIGlzVmlzaWJsZSgpIGNv
bnN0OwogICAgIGJvb2wgaXNPZmZTY3JlZW4oKSBjb25zdDsKICAgICBib29sIGlzQ29sbGFwc2Vk
KCkgY29uc3Q7CkBAIC0yMDAsMTQgKzE5Nyw3IEBAIHB1YmxpYzoKICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gc3RyaW5nRm9yUmFuZ2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxl
bmd0aCk7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGF0dHJpYnV0ZWRTdHJpbmdGb3JS
YW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBib29sIGF0dHJp
YnV0ZWRTdHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQg
bGVuZ3RoKTsKLSAgICB1bnNpZ25lZCB1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShK
U0NvbnRleHRSZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIHN0YXJ0RWxlbWVudCwgYm9vbCBp
c0RpcmVjdGlvbk5leHQsIEpTVmFsdWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hU
ZXh0LCBib29sIHZpc2libGVPbmx5KTsKICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IHVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQqIHN0YXJ0RWxlbWVudCwgYm9vbCBpc0RpcmVjdGlvbk5leHQsIEpTVmFs
dWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hUZXh0LCBib29sIHZpc2libGVPbmx5
KTsKLQotICAgIC8vIFRleHQtc3BlY2lmaWMKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
Y2hhcmFjdGVyQXRPZmZzZXQoaW50IG9mZnNldCk7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHdvcmRBdE9mZnNldChpbnQgb2Zmc2V0KTsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gbGluZUF0T2Zmc2V0KGludCBvZmZzZXQpOwotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBzZW50ZW5jZUF0T2Zmc2V0KGludCBvZmZzZXQpOwogICAgIAogICAgIC8vIFRhYmxlLXNwZWNp
ZmljCiAgICAgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBjZWxsRm9yQ29sdW1u
QW5kUm93KHVuc2lnbmVkIGNvbHVtbiwgdW5zaWduZWQgcm93KTsKQEAgLTI1OCwyNSArMjQ4LDIx
IEBAIHByaXZhdGU6CiAgICAgUGxhdGZvcm1VSUVsZW1lbnQgbV9lbGVtZW50OwogICAgIAogICAg
IC8vIEEgcmV0YWluZWQsIHBsYXRmb3JtIHNwZWNpZmljIG9iamVjdCB1c2VkIHRvIGhlbHAgbWFu
YWdlIG5vdGlmaWNhdGlvbnMgZm9yIHRoaXMgb2JqZWN0LgotI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgTm90aWZpY2F0aW9uSGFuZGxlciBtX25vdGlmaWNh
dGlvbkhhbmRsZXI7CiAKICAgICB2b2lkIGdldExpbmtlZFVJRWxlbWVudHMoVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+Jik7CiAgICAgdm9pZCBnZXREb2N1bWVudExpbmtz
KFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYpOwotICAgIAotICAgIHZv
aWQgZ2V0VUlFbGVtZW50c1dpdGhBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShNQUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQorI2lmIFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oRUZMKSAmJiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpKQogICAgIHZvaWQgZ2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiA+Jik7CiAgICAgdm9pZCBnZXRDaGlsZHJlbldpdGhSYW5nZShWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mLCB1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQg
bGVuZ3RoKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCisj
aWYgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oRUZMKSAmJiBIQVZFKEFDQ0VTU0lCSUxJVFkp
KQogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9ub3RpZmlj
YXRpb25IYW5kbGVyOwogI2VuZGlmCi0jZW5kaWYKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBX
VFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwKaW5k
ZXggYmY3YTZlNDVlZTY0MjQxODQ3YjIxMjJmNzk2MGEwZTVmMThiOTMwYS4uNTY2MWMwYzhjYWE3
Y2IxZmQyNTE2ZTEyZTg2YzBiNWY1MzU5YWRmYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5p
ZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwKQEAgLTI0LDcgKzI0LDYgQEAKICAqLwogCiBpbnRl
cmZhY2UgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgcGxhdGZvcm1OYW1lOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50IHJvb3RFbGVtZW50OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50IGZvY3VzZWRFbGVtZW50OwogICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQgZWxlbWVudEF0UG9pbnQoaW50IHgsIGludCB5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IDE3YjIxNmJhYjg0OTU5ZjRlNTViM2FlZWU2
MWVmZTY5YjYyOTk3YTIuLmY0NWE4YzIxZWNkOWU1MjU3YjBmOGEzMDExNGI5Njc4MmM0NTJmNmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmlkbApAQCAt
NTYsNyArNTYsNiBAQCBpbnRlcmZhY2UgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB7CiAKICAgICBE
T01TdHJpbmcgc3RyaW5nQXR0cmlidXRlVmFsdWUoRE9NU3RyaW5nIGF0dHIpOwogICAgIGRvdWJs
ZSBudW1iZXJBdHRyaWJ1dGVWYWx1ZShET01TdHJpbmcgYXR0cik7Ci0gICAgb2JqZWN0IHVpRWxl
bWVudEFycmF5QXR0cmlidXRlVmFsdWUoRE9NU3RyaW5nIGF0dHIpOwogICAgIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQgdWlFbGVtZW50QXR0cmlidXRlVmFsdWUoRE9NU3RyaW5nIGF0dHIpOyAgCiAg
ICAgYm9vbGVhbiBib29sQXR0cmlidXRlVmFsdWUoRE9NU3RyaW5nIGF0dHIpOwogICAgIGJvb2xl
YW4gaXNBdHRyaWJ1dGVTdXBwb3J0ZWQoRE9NU3RyaW5nIGF0dHIpOwpAQCAtNzYsMTEgKzc1LDkg
QEAgaW50ZXJmYWNlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgewogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGlzRm9jdXNhYmxlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IGlzU2VsZWN0YWJsZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1NlbGVjdGVk
OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzU2VsZWN0ZWRPcHRpb25BY3RpdmU7
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNNdWx0aVNlbGVjdGFibGU7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNFeHBhbmRlZDsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBpc0NoZWNrZWQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
aXNJbmRldGVybWluYXRlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzVmlzaWJs
ZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc0NvbGxhcHNlZDsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgYm9vbGVhbiBoYXNQb3B1cDsKQEAgLTExNSwxMiArMTEyLDYgQEAgaW50
ZXJmYWNlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgewogICAgIERPTVN0cmluZyBhdHRyaWJ1dGVz
T2ZDaGlsZHJlbigpOwogICAgIERPTVN0cmluZyBhdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRz
KCk7CiAgICAgRE9NU3RyaW5nIGF0dHJpYnV0ZXNPZkRvY3VtZW50TGlua3MoKTsKLQotICAgIC8v
IFRleHQgaW5mby4KLSAgICBET01TdHJpbmcgY2hhcmFjdGVyQXRPZmZzZXQoaW50IG9mZnNldCk7
Ci0gICAgRE9NU3RyaW5nIHdvcmRBdE9mZnNldChpbnQgb2Zmc2V0KTsKLSAgICBET01TdHJpbmcg
bGluZUF0T2Zmc2V0KGludCBvZmZzZXQpOwotICAgIERPTVN0cmluZyBzZW50ZW5jZUF0T2Zmc2V0
KGludCBvZmZzZXQpOwogICAgIAogICAgIC8vIFRhYmxlIGluZm8uCiAgICAgRE9NU3RyaW5nIGF0
dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKTsKQEAgLTE1Miw3ICsxNDMsNiBAQCBpbnRlcmZhY2Ug
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCB7CiAgICAgRE9NU3RyaW5nIHN0cmluZ0ZvclJhbmdlKHVu
c2lnbmVkIGxvbmcgbG9jYXRpb24sIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKTsKICAgICBET01TdHJp
bmcgYXR0cmlidXRlZFN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkIGxvbmcgbG9jYXRpb24sIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoKTsKICAgICBib29sZWFuIGF0dHJpYnV0ZWRTdHJpbmdSYW5nZUlzTWlz
c3BlbGxlZCh1bnNpZ25lZCBsb25nIGxvY2F0aW9uLCB1bnNpZ25lZCBsb25nIGxlbmd0aCk7Ci0g
ICAgW1Bhc3NDb250ZXh0XSB1bnNpZ25lZCBpbnQgdWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVk
aWNhdGUoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBzdGFydEVsZW1lbnQsIGJvb2xlYW4gaXNEaXJl
Y3Rpb25OZXh0LCBvYmplY3Qgc2VhcmNoS2V5LCBET01TdHJpbmcgc2VhcmNoVGV4dCwgYm9vbGVh
biB2aXNpYmxlT25seSk7CiAgICAgW1Bhc3NDb250ZXh0XSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
IHVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHN0YXJ0
RWxlbWVudCwgYm9vbGVhbiBpc0RpcmVjdGlvbk5leHQsIG9iamVjdCBzZWFyY2hLZXksIERPTVN0
cmluZyBzZWFyY2hUZXh0LCBib29sZWFuIHZpc2libGVPbmx5KTsKICAgICB2b2lkIHNldFNlbGVj
dGVkVGV4dFJhbmdlKHVuc2lnbmVkIGxvbmcgbG9jYXRpb24sIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZTI5ZGE1MWY5YWUzZDc5ODg0ODY1
NWJlNDdlNTk2MjI1NTBjYmRiNS4uYzJmZjgzYTg4YWYzNmEyNGIyZTQzMTVkNWI3MGJiMWM0Zjkx
ZDkxYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9C
aW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0xNTUsNiArMTU1LDggQEAgaW50
ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoRE9NU3RyaW5n
IHN0YXRlKTsKICAgICB2b2lkIHJlc2V0UGFnZVZpc2liaWxpdHkoKTsKIAorICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm1OYW1lOworCiAgICAgLy8gQ29udHJvbCBmdWxs
IHNjcmVlbiBiZWhhdmlvci4KICAgICB2b2lkIHNldEhhc0N1c3RvbUZ1bGxTY3JlZW5CZWhhdmlv
cihib29sZWFuIHZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAKaW5kZXgg
OTZjNzljNDUyOWM0NjgxM2NhYTM0N2IzOTkxMjc2ZDM1NmNiZDc2My4uNjVlMzU1NjUyZjlkMzBj
OTNmMDYxZjE4MmNjOGJmODI2OTIyMTg3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
Y3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0cnVjdCBNZW51SXRlbVByaXZhdGVEYXRhIHsKICAgICBX
S1JldGFpblB0cjxXS0NvbnRleHRNZW51SXRlbVJlZj4gbV9pdGVtOwogfTsKIAotCisjaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCiBzdGF0aWMgSlNWYWx1ZVJlZiBtZW51SXRlbUNsaWNrQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIE1lbnVJdGVtUHJpdmF0ZURh
dGEqIHByaXZhdGVEYXRhID0gc3RhdGljX2Nhc3Q8TWVudUl0ZW1Qcml2YXRlRGF0YSo+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0xMDQsNiArMTA0LDcgQEAgc3RhdGljIEpT
Q2xhc3NSZWYgZ2V0TWVudUl0ZW1DbGFzcygpCiAKICAgICByZXR1cm4gbWVudUl0ZW1DbGFzczsK
IH0KKyNlbmRpZgogCiBzdGF0aWMgV0tFdmVudE1vZGlmaWVycyBwYXJzZU1vZGlmaWVyKEpTU3Ry
aW5nUmVmIG1vZGlmaWVyKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBmNzFmZTkzNjA4MDE4MjY5
Mzc0YWI2NTViZmM5Y2YzMmI0ODAwYjUwLi41ZjIzZjliMDE4N2YyYjM1N2RlZTVlMmRjZDUzZGY5
MjRhZDkzYzdiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtODksNyArODksMTAgQEAgdm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJlZiBpbml0
aWFsaXphdGlvblVzZXIKICAgICBtX2J1bmRsZSA9IGJ1bmRsZTsKIAogICAgIFdLQnVuZGxlQ2xp
ZW50VjEgY2xpZW50ID0gewotICAgICAgICB7IDEsIHRoaXMgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAga1dLQnVuZGxlQ2xpZW50Q3VycmVudFZlcnNpb24sCisgICAgICAgICAgICB0aGlzCisg
ICAgICAgIH0sCiAgICAgICAgIGRpZENyZWF0ZVBhZ2UsCiAgICAgICAgIHdpbGxEZXN0cm95UGFn
ZSwKICAgICAgICAgZGlkSW5pdGlhbGl6ZVBhZ2VHcm91cCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cAppbmRleCBlMTYxMTU2YTc1Y2Q0OGY0NzJlZDM5ZjYxNTk3YTQ5ZDEyZDI4YzgwLi4xNWZiNjM0
ODY0OWIwMWNjM2I2YzU5MDdlZWZlOWQwMDVkNWNmOWFiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwCkBAIC0yNjksNyArMjY5LDEwIEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5k
bGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogICAgICwgbV93b3JsZChBZG9wdFdLLCBXS0J1
bmRsZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKSkKIHsKICAgICBXS0J1bmRsZVBhZ2VMb2FkZXJD
bGllbnRWNyBsb2FkZXJDbGllbnQgPSB7Ci0gICAgICAgIHsgNywgdGhpcyB9LAorICAgICAgICB7
CisgICAgICAgICAgICBrV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Q3VycmVudFZlcnNpb24sCisg
ICAgICAgICAgICB0aGlzCisgICAgICAgIH0sCiAgICAgICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUsCiAgICAgICAgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lLAogICAgICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9y
Rm9yRnJhbWUsCkBAIC0zMDksNyArMzEyLDEwIEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0
ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogICAgIFdLQnVuZGxlUGFnZVNldFBh
Z2VMb2FkZXJDbGllbnQobV9wYWdlLCAmbG9hZGVyQ2xpZW50LmJhc2UpOwogCiAgICAgV0tCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50VjEgcmVzb3VyY2VMb2FkQ2xpZW50ID0gewotICAgICAg
ICB7IDEsIHRoaXMgfSwKKyAgICAgICAgeworICAgICAgICAgICAga1dLQnVuZGxlUGFnZVJlc291
cmNlTG9hZENsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICAgICAgdGhpcworICAgICAgICB9
LAogICAgICAgICBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSwKICAgICAgICAgd2lsbFNlbmRS
ZXF1ZXN0Rm9yRnJhbWUsCiAgICAgICAgIGRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNlLApA
QCAtMzIyLDcgKzMyOCwxMCBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFn
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKICAgICBXS0J1bmRsZVBhZ2VTZXRSZXNvdXJjZUxvYWRD
bGllbnQobV9wYWdlLCAmcmVzb3VyY2VMb2FkQ2xpZW50LmJhc2UpOwogCiAgICAgV0tCdW5kbGVQ
YWdlUG9saWN5Q2xpZW50VjAgcG9saWN5Q2xpZW50ID0gewotICAgICAgICB7IDAsIHRoaXMgfSwK
KyAgICAgICAgeworICAgICAgICAgICAga1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudEN1cnJlbnRW
ZXJzaW9uLAorICAgICAgICAgICAgdGhpcworICAgICAgICB9LAogICAgICAgICBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uLAogICAgICAgICBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24sCiAgICAgICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlLApAQCAtMzMxLDcgKzM0MCwx
MCBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSkKICAgICBXS0J1bmRsZVBhZ2VTZXRQb2xpY3lDbGllbnQobV9wYWdlLCAmcG9saWN5
Q2xpZW50LmJhc2UpOwogCiAgICAgV0tCdW5kbGVQYWdlVUlDbGllbnRWMiB1aUNsaWVudCA9IHsK
LSAgICAgICAgeyAyLCB0aGlzIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIGtXS0J1bmRsZVBh
Z2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICAgICAgdGhpcworICAgICAgICB9LAog
ICAgICAgICB3aWxsQWRkTWVzc2FnZVRvQ29uc29sZSwKICAgICAgICAgd2lsbFNldFN0YXR1c2Jh
clRleHQsCiAgICAgICAgIHdpbGxSdW5KYXZhU2NyaXB0QWxlcnQsCkBAIC0zNTYsNyArMzY4LDEw
IEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlKQogICAgIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50KG1fcGFnZSwgJnVpQ2xpZW50LmJh
c2UpOwogCiAgICAgV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50VjEgZWRpdG9yQ2xpZW50ID0gewot
ICAgICAgICB7IDEsIHRoaXMgfSwKKyAgICAgICAgeworICAgICAgICAgICAga1dLQnVuZGxlUGFn
ZUVkaXRvckNsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICAgICAgdGhpcworICAgICAgICB9
LAogICAgICAgICBzaG91bGRCZWdpbkVkaXRpbmcsCiAgICAgICAgIHNob3VsZEVuZEVkaXRpbmcs
CiAgICAgICAgIHNob3VsZEluc2VydE5vZGUsCkBAIC0zNzUsOCArMzkwLDkgQEAgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAg
V0tCdW5kbGVQYWdlU2V0RWRpdG9yQ2xpZW50KG1fcGFnZSwgJmVkaXRvckNsaWVudC5iYXNlKTsK
IAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBXS0J1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50VjEgZnVsbFNjcmVlbkNsaWVudCA9IHsKLSAgICAgICAgeyAxLCB0aGlzIH0sCisgICAg
V0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCBmdWxsU2NyZWVuQ2xpZW50ID0geworICAgICAg
ICBrV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICB0
aGlzLAogICAgICAgICBzdXBwb3J0c0Z1bGxTY3JlZW4sCiAgICAgICAgIGVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQsCiAgICAgICAgIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCwKQEAgLTM4NCw3
ICs0MDAsNyBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSkKICAgICAgICAgYmVnYW5FeGl0RnVsbFNjcmVlbiwKICAgICAgICAgY2xv
c2VGdWxsU2NyZWVuLAogICAgIH07Ci0gICAgV0tCdW5kbGVQYWdlU2V0RnVsbFNjcmVlbkNsaWVu
dChtX3BhZ2UsICZmdWxsU2NyZWVuQ2xpZW50LmJhc2UpOworICAgIFdLQnVuZGxlUGFnZVNldEZ1
bGxTY3JlZW5DbGllbnQobV9wYWdlLCAmZnVsbFNjcmVlbkNsaWVudCk7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aAppbmRleCBjZWZiNmE1ZDFmNTUxYTU3N2I4MmY2YzM4ZmY2ZjUwNGQ0ZDg5NDc1Li41ZWYzMmFl
NTMyMzQ3ZWM0MmEwNmY0MDExZTA3NGVmNmJmY2I3NTViIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMjU3LDYgKzI1Nyw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBs
YXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBKU1ZhbHVlUmVmIGFs
dGl0dWRlLCBKU1ZhbHVlUmVmIGFsdGl0dWRlQWNjdXJhY3ksIEpTVmFsdWVSZWYgaGVhZGluZywg
SlNWYWx1ZVJlZiBzcGVlZCk7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvblVu
YXZhaWxhYmxlRXJyb3IoSlNTdHJpbmdSZWYgbWVzc2FnZSk7CiAKKyAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKCk7CisKICAgICB2b2lkIHNldFBhZ2VWaXNpYmlsaXR5
KEpTU3RyaW5nUmVmIHN0YXRlKTsKICAgICB2b2lkIHJlc2V0UGFnZVZpc2liaWxpdHkoKTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCmluZGV4IDRlMTEx
NTBjNzUzYzIwOGQ3ZjExNzk5MTQ0Njg0YzExYjJjMTkzMDUuLmJhYzFlZGZhMjExZTA4ZDQxZTQ4
MmIwOGEzZDlmNTc4NDNmOTYzYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlckF0ay5jcHAKQEAgLTI4LDggKzI4LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgogCi0jaWYgSEFWRShBQ0NFU1NJQklM
SVRZKQotCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1
bmRsZVBhZ2UuaCIKIApAQCAtNTYsNyArNTQsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCkKIAogICAgIC8vIEVuc3VyZSB0aGUgQXRrIGlu
dGVyZmFjZSB0eXBlcyBhcmUgcmVnaXN0ZXJlZCwgb3RoZXJ3aXNlCiAgICAgLy8gdGhlIEF0a0Rv
Y3VtZW50IHNpZ25hbCBoYW5kbGVycyBiZWxvdyB3b24ndCBnZXQgcmVnaXN0ZXJlZC4KLSAgICBH
T2JqZWN0KiBkdW1teUF4T2JqZWN0ID0gR19PQkpFQ1QoZ19vYmplY3RfbmV3KEFUS19UWVBFX09C
SkVDVCwgbnVsbHB0cikpOworICAgIEdPYmplY3QqIGR1bW15QXhPYmplY3QgPSBHX09CSkVDVChn
X29iamVjdF9uZXcoQVRLX1RZUEVfT0JKRUNULCAwKSk7CiAgICAgQXRrT2JqZWN0KiBkdW1teU5v
T3BBeE9iamVjdCA9IGF0a19ub19vcF9vYmplY3RfbmV3KGR1bW15QXhPYmplY3QpOwogICAgIGdf
b2JqZWN0X3VucmVmKEdfT0JKRUNUKGR1bW15Tm9PcEF4T2JqZWN0KSk7CiAgICAgZ19vYmplY3Rf
dW5yZWYoZHVtbXlBeE9iamVjdCk7CkBAIC02NCwxMyArNjIsMTMgQEAgdm9pZCBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6bG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpCiAKIHZvaWQgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogewotICAgIG1fZ2xvYmFs
Tm90aWZpY2F0aW9uSGFuZGxlciA9IG51bGxwdHI7CisgICAgbV9nbG9iYWxOb3RpZmljYXRpb25I
YW5kbGVyID0gMDsKIH0KIAogc3RhdGljIEF0a09iamVjdCogY2hpbGRFbGVtZW50QnlJZChBdGtP
YmplY3QqIHBhcmVudCwgY29uc3QgY2hhciogaWQpCiB7CiAgICAgaWYgKCFBVEtfSVNfT0JKRUNU
KHBhcmVudCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gMDsKIAog
ICAgIGJvb2wgcGFyZW50Rm91bmQgPSBmYWxzZTsKICAgICBBdGtBdHRyaWJ1dGVTZXQqIGF0dHJp
YnV0ZVNldCA9IGF0a19vYmplY3RfZ2V0X2F0dHJpYnV0ZXMocGFyZW50KTsKQEAgLTk0LDE0ICs5
MiwxNCBAQCBzdGF0aWMgQXRrT2JqZWN0KiBjaGlsZEVsZW1lbnRCeUlkKEF0a09iamVjdCogcGFy
ZW50LCBjb25zdCBjaGFyKiBpZCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQog
Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmFjY2Vzc2libGVF
bGVtZW50QnlJZChKU1N0cmluZ1JlZiBpZCkKIHsKICAgICBBdGtPYmplY3QqIHJvb3QgPSBBVEtf
T0JKRUNUKFdLQWNjZXNzaWJpbGl0eVJvb3RPYmplY3QoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnBhZ2UoKS0+cGFnZSgpKSk7CiAgICAgaWYgKCFyb290KQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IEpTU3RyaW5n
R2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShpZCk7CiAgICAgR093blB0cjxnY2hhcj4gaWRCdWZm
ZXIoc3RhdGljX2Nhc3Q8Z2NoYXIqPihnX21hbGxvYyhidWZmZXJTaXplKSkpOwpAQCAtMTExLDEz
ICsxMDksNyBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SQogICAgIGlmIChBVEtfSVNfT0JKRUNU
KHJlc3VsdCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUo
cmVzdWx0KTsKIAotICAgIHJldHVybiBudWxscHRyOwotfQotCi1KU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpCi17Ci0gICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoImF0ayIpKTsKLSAgICByZXR1cm4gcGxhdGZvcm1OYW1lOworICAgIHJl
dHVybiAwOwogfQogCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCkBAIC0xNTQsMTAgKzE0Niw4IEBAIGJvb2wg
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKICAg
ICAvLyBQcm9ncmFtbWVycyBzaG91bGQgbm90IGJlIHRyeWluZyB0byByZW1vdmUgYSBsaXN0ZW5l
ciB0aGF0J3MgYWxyZWFkeSByZW1vdmVkLgogICAgIEFTU0VSVChtX2dsb2JhbE5vdGlmaWNhdGlv
bkhhbmRsZXIpOwogCi0gICAgbV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyID0gbnVsbHB0cjsK
KyAgICBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIgPSAwOwogICAgIHJldHVybiBmYWxzZTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV1RSCi0KLSNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFkp
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9B
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxl
ckF0ay5jcHAKaW5kZXggOTE1NTU5ODY4ZDNlZjRiN2M3ZmEzOTVhOTZlMmViM2JkNjNjNjE3ZC4u
Y2U5NmEzMzhlNmRhYTczOGM1ZWM5N2Y1Nzc4YmMyNDlkMjY1NjU2YSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXJBdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmNwcApAQCAt
MjAsOCArMjAsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmgiCiAKLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0K
ICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFn
ZS5oIgogI2luY2x1ZGUgIkpTV3JhcHBlci5oIgpAQCAtNDcsNyArNDUsNyBAQCB1bnNpZ25lZCBw
cm9wZXJ0eUNoYW5nZWRMaXN0ZW5lcklkID0gMDsKIHVuc2lnbmVkIHZpc2libGVEYXRhQ2hhbmdl
ZExpc3RlbmVySWQgPSAwOwogdW5zaWduZWQgbG9hZENvbXBsZXRlTGlzdGVuZXJJZCA9IDA7CiBO
b3RpZmljYXRpb25IYW5kbGVyc01hcCBub3RpZmljYXRpb25IYW5kbGVyczsKLUFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyKiBnbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyID0gbnVsbHB0
cjsKK0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyKiBnbG9iYWxOb3RpZmljYXRpb25I
YW5kbGVyID0gMDsKIGJvb2wgbG9nZ2luZ0FjY2Vzc2liaWxpdHlFdmVudHMgPSBmYWxzZTsKIAog
dm9pZCBwcmludEFjY2Vzc2liaWxpdHlFdmVudChBdGtPYmplY3QqIGFjY2Vzc2libGUsIGNvbnN0
IGNoYXIqIHNpZ25hbE5hbWUsIGNvbnN0IGNoYXIqIHNpZ25hbFZhbHVlKQpAQCAtODUsNyArODMs
NyBAQCBnYm9vbGVhbiBheE9iamVjdEV2ZW50TGlzdGVuZXIoR1NpZ25hbEludm9jYXRpb25IaW50
KiBzaWduYWxIaW50LCB1bnNpZ25lZCBudW1QYQogICAgIEdTaWduYWxRdWVyeSBzaWduYWxRdWVy
eTsKICAgICBHT3duUHRyPGNoYXI+IHNpZ25hbE5hbWU7CiAgICAgR093blB0cjxjaGFyPiBzaWdu
YWxWYWx1ZTsKLSAgICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lID0gbnVsbHB0cjsKKyAg
ICBjb25zdCBjaGFyKiBub3RpZmljYXRpb25OYW1lID0gMDsKIAogICAgIGdfc2lnbmFsX3F1ZXJ5
KHNpZ25hbEhpbnQtPnNpZ25hbF9pZCwgJnNpZ25hbFF1ZXJ5KTsKIApAQCAtMTAyLDEwICsxMDAs
OCBAQCBnYm9vbGVhbiBheE9iamVjdEV2ZW50TGlzdGVuZXIoR1NpZ25hbEludm9jYXRpb25IaW50
KiBzaWduYWxIaW50LCB1bnNpZ25lZCBudW1QYQogICAgICAgICBpZiAoZ192YWx1ZV9nZXRfYm9v
bGVhbigmcGFyYW1WYWx1ZXNbMV0pKQogICAgICAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICJB
WEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkIjsKICAgICB9IGVsc2UgaWYgKCFnX3N0cmNtcDAoc2ln
bmFsUXVlcnkuc2lnbmFsX25hbWUsICJjaGlsZHJlbi1jaGFuZ2VkIikpIHsKLSAgICAgICAgY29u
c3QgZ2NoYXIqIGNoaWxkcmVuQ2hhbmdlZERldGFpbCA9IGdfcXVhcmtfdG9fc3RyaW5nKHNpZ25h
bEhpbnQtPmRldGFpbCk7Ci0gICAgICAgIHNpZ25hbE5hbWUuc2V0KGdfc3RyZHVwX3ByaW50Zigi
Y2hpbGRyZW4tY2hhbmdlZDolcyIsIGNoaWxkcmVuQ2hhbmdlZERldGFpbCkpOworICAgICAgICBz
aWduYWxOYW1lLnNldChnX3N0cmR1cCgiY2hpbGRyZW4tY2hhbmdlZCIpKTsKICAgICAgICAgc2ln
bmFsVmFsdWUuc2V0KGdfc3RyZHVwX3ByaW50ZigiJWQiLCBnX3ZhbHVlX2dldF91aW50KCZwYXJh
bVZhbHVlc1sxXSkpKTsKLSAgICAgICAgbm90aWZpY2F0aW9uTmFtZSA9ICFnX3N0cmNtcDAoY2hp
bGRyZW5DaGFuZ2VkRGV0YWlsLCAiYWRkIikgPyAiQVhDaGlsZHJlbkFkZGVkIiA6ICJBWENoaWxk
cmVuUmVtb3ZlZCI7CiAgICAgfSBlbHNlIGlmICghZ19zdHJjbXAwKHNpZ25hbFF1ZXJ5LnNpZ25h
bF9uYW1lLCAicHJvcGVydHktY2hhbmdlIikpIHsKICAgICAgICAgc2lnbmFsTmFtZS5zZXQoZ19z
dHJkdXBfcHJpbnRmKCJwcm9wZXJ0eS1jaGFuZ2U6JXMiLCBnX3F1YXJrX3RvX3N0cmluZyhzaWdu
YWxIaW50LT5kZXRhaWwpKSk7CiAgICAgICAgIGlmICghZ19zdHJjbXAwKGdfcXVhcmtfdG9fc3Ry
aW5nKHNpZ25hbEhpbnQtPmRldGFpbCksICJhY2Nlc3NpYmxlLXZhbHVlIikpCkBAIC0xMjMsNyAr
MTE5LDcgQEAgZ2Jvb2xlYW4gYXhPYmplY3RFdmVudExpc3RlbmVyKEdTaWduYWxJbnZvY2F0aW9u
SGludCogc2lnbmFsSGludCwgdW5zaWduZWQgbnVtUGEKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1h
aW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShwYWdlKTsKICAgICBKU0NvbnRleHRS
ZWYganNDb250ZXh0ID0gV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KG1haW5GcmFt
ZSk7CiAjZWxzZQotICAgIEpTQ29udGV4dFJlZiBqc0NvbnRleHQgPSBudWxscHRyOworICAgIEpT
Q29udGV4dFJlZiBqc0NvbnRleHQgPSAwOwogI2VuZGlmCiAgICAgaWYgKCFqc0NvbnRleHQpCiAg
ICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTg0LDcgKzE4MCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXI6OnNldE5vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2soSlNW
YWx1ZVJlCiAgICAgV0tCdW5kbGVGcmFtZVJlZiBtYWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRN
YWluRnJhbWUocGFnZSk7CiAgICAgSlNDb250ZXh0UmVmIGpzQ29udGV4dCA9IFdLQnVuZGxlRnJh
bWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJhbWUpOwogI2Vsc2UKLSAgICBKU0NvbnRleHRS
ZWYganNDb250ZXh0ID0gbnVsbHB0cjsKKyAgICBKU0NvbnRleHRSZWYganNDb250ZXh0ID0gMDsK
ICNlbmRpZgogICAgIGlmICghanNDb250ZXh0KQogICAgICAgICByZXR1cm47CkBAIC0yMTUsMTQg
KzIxMSwxNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyOjpyZW1vdmVB
Y2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlcigpCiAgICAgV0tCdW5kbGVGcmFtZVJlZiBt
YWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUocGFnZSk7CiAgICAgSlNDb250ZXh0
UmVmIGpzQ29udGV4dCA9IFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dChtYWluRnJh
bWUpOwogI2Vsc2UKLSAgICBKU0NvbnRleHRSZWYganNDb250ZXh0ID0gbnVsbHB0cjsKKyAgICBK
U0NvbnRleHRSZWYganNDb250ZXh0ID0gMDsKICNlbmRpZgogICAgIGlmICghanNDb250ZXh0KQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlciA9PSB0
aGlzKSB7CiAgICAgICAgIEpTVmFsdWVVbnByb3RlY3QoanNDb250ZXh0LCBnbG9iYWxOb3RpZmlj
YXRpb25IYW5kbGVyLT5ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrKCkpOwotICAgICAgICBn
bG9iYWxOb3RpZmljYXRpb25IYW5kbGVyID0gbnVsbHB0cjsKKyAgICAgICAgZ2xvYmFsTm90aWZp
Y2F0aW9uSGFuZGxlciA9IDA7CiAgICAgfSBlbHNlIGlmIChtX3BsYXRmb3JtRWxlbWVudC5nZXQo
KSkgewogICAgICAgICBOb3RpZmljYXRpb25IYW5kbGVyc01hcDo6aXRlcmF0b3IgcmVtb3ZlTm90
aWZpY2F0aW9uSGFuZGxlciA9IG5vdGlmaWNhdGlvbkhhbmRsZXJzLmZpbmQobV9wbGF0Zm9ybUVs
ZW1lbnQuZ2V0KCkpOwogICAgICAgICBpZiAocmVtb3ZlTm90aWZpY2F0aW9uSGFuZGxlciAhPSBu
b3RpZmljYXRpb25IYW5kbGVycy5lbmQoKSkgewpAQCAtMjg3LDUgKzI4MywzIEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXI6OmRpc2Nvbm5lY3RBY2Nlc3NpYmlsaXR5Q2Fs
bGJhY2tzKCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RSCi0KLSNlbmRpZiAvLyBIQVZFKEFDQ0VT
U0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bkhhbmRsZXJBdGsuaAppbmRleCAzNDQzYmNlMmMyYjgxYmQyNjY4ZWFmYjFkMDYwMWZhZmNmNGM4
NDkzLi5kNzlkZWMyZjk5YzlmOGI5NTgyNDU3ZjQzM2Q0ZGI4M2YxM2YxMDEwIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyQXRrLmgKQEAg
LTIwLDggKzIwLDYgQEAKICNpZm5kZWYgQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXJB
dGtfaAogI2RlZmluZSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0a19oCiAKLSNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVj
dFJlZi5oPgogI2luY2x1ZGUgPGF0ay9hdGsuaD4KICNpbmNsdWRlIDxhdGsvYXRrb2JqZWN0Lmg+
CkBAIC01Niw2ICs1NCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgogCi0jZW5k
aWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQotCiAjZW5kaWYgLy8gQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXJBdGtfaApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eVVJRWxlbWVudEF0ay5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
QXRrLmNwcAppbmRleCA1ZTUwNzZjMzliMDg3Yzg4MmZmNzJlNzlmZmI1OGU0NTRhMTMyMjZjLi5l
ZjAyMzBkYmNlYzI2OGE1YzZjNjg3YzM5YTllNTVhMDE5NDljZjA5IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50QXRrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0
ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRrLmNwcApAQCAtODUsMjcgKzg1LDEzIEBAIGNvbnN0
IFN0cmluZyBhdHRyaWJ1dGVzTWFwW11bMl0gPSB7CiAgICAgeyAiQVhVbmtub3duU29ydERpcmVj
dGlvbiIsICJ1bmtub3duIiB9CiB9OwogCi0jaWYgQVRLX0NIRUNLX1ZFUlNJT04oMiwgMTEsIDMp
Ci1jb25zdCBjaGFyKiBsYW5kbWFya1N0cmluZ0Jhbm5lciA9ICJBWExhbmRtYXJrQmFubmVyIjsK
LWNvbnN0IGNoYXIqIGxhbmRtYXJrU3RyaW5nQ29tcGxlbWVudGFyeSA9ICJBWExhbmRtYXJrQ29t
cGxlbWVudGFyeSI7Ci1jb25zdCBjaGFyKiBsYW5kbWFya1N0cmluZ0NvbnRlbnRpbmZvID0gIkFY
TGFuZG1hcmtDb250ZW50SW5mbyI7Ci1jb25zdCBjaGFyKiBsYW5kbWFya1N0cmluZ01haW4gPSAi
QVhMYW5kbWFya01haW4iOwotY29uc3QgY2hhciogbGFuZG1hcmtTdHJpbmdOYXZpZ2F0aW9uID0g
IkFYTGFuZG1hcmtOYXZpZ2F0aW9uIjsKLWNvbnN0IGNoYXIqIGxhbmRtYXJrU3RyaW5nU2VhcmNo
ID0gIkFYTGFuZG1hcmtTZWFyY2giOwotI2VuZGlmCi0KLVN0cmluZyBqc1N0cmluZ1RvV1RGU3Ry
aW5nKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK1N0cmluZyBjb3JlQXR0cmlidXRlVG9BdGtBdHRy
aWJ1dGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQogewogICAgIHNpemVfdCBidWZmZXJTaXplID0g
SlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKGF0dHJpYnV0ZSk7CiAgICAgR093blB0
cjxnY2hhcj4gYnVmZmVyKHN0YXRpY19jYXN0PGdjaGFyKj4oZ19tYWxsb2MoYnVmZmVyU2l6ZSkp
KTsKICAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKGF0dHJpYnV0ZSwgYnVmZmVyLmdldCgpLCBi
dWZmZXJTaXplKTsKIAotICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGJ1ZmZlci5nZXQoKSk7
Ci19Ci0KLVN0cmluZyBjb3JlQXR0cmlidXRlVG9BdGtBdHRyaWJ1dGUoSlNTdHJpbmdSZWYgYXR0
cmlidXRlKQotewotICAgIFN0cmluZyBhdHRyaWJ1dGVTdHJpbmcgPSBqc1N0cmluZ1RvV1RGU3Ry
aW5nKGF0dHJpYnV0ZSk7CisgICAgU3RyaW5nIGF0dHJpYnV0ZVN0cmluZyA9IFN0cmluZzo6ZnJv
bVVURjgoYnVmZmVyLmdldCgpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IE51bWJlck9mQXR0
cmlidXRlczsgKytpKSB7CiAgICAgICAgIGlmIChhdHRyaWJ1dGVzTWFwW2ldW0NvcmVEb21haW5d
ID09IGF0dHJpYnV0ZVN0cmluZykKICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVzTWFwW2ld
W0F0a0RvbWFpbl07CkBAIC0xNDQsMTMgKzEzMCwxMyBAQCBBdGtBdHRyaWJ1dGVTZXQqIGdldEF0
dHJpYnV0ZVNldChBdGtPYmplY3QqIGFjY2Vzc2libGUsIEF0a0F0dHJpYnV0ZVR5cGUgdHlwZSkK
IAogICAgIGlmICh0eXBlID09IFRleHRBdHRyaWJ1dGVUeXBlKSB7CiAgICAgICAgIGlmICghQVRL
X0lTX1RFWFQoYWNjZXNzaWJsZSkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIHJldHVybiBhdGtfdGV4dF9nZXRfZGVmYXVsdF9h
dHRyaWJ1dGVzKEFUS19URVhUKGFjY2Vzc2libGUpKTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gMDsKIH0KIAogU3Ry
aW5nIGdldEF0dHJpYnV0ZVNldFZhbHVlRm9ySWQoQXRrT2JqZWN0KiBhY2Nlc3NpYmxlLCBBdGtB
dHRyaWJ1dGVUeXBlIHR5cGUsIFN0cmluZyBpZCkKQEAgLTI3NiwzMyArMjYyLDExIEBAIGdjaGFy
KiByZXBsYWNlQ2hhcmFjdGVyc0ZvclJlc3VsdHMoZ2NoYXIqIHN0cikKICAgICByZXR1cm4gZ19z
dHJkdXAodVN0cmluZy51dGY4KCkuZGF0YSgpKTsKIH0KIAotY29uc3QgZ2NoYXIqIHJvbGVUb1N0
cmluZyhBdGtPYmplY3QqIG9iamVjdCkKLXsKLSAgICBBdGtSb2xlIHJvbGUgPSBhdGtfb2JqZWN0
X2dldF9yb2xlKG9iamVjdCk7Ci0KLSNpZiBBVEtfQ0hFQ0tfVkVSU0lPTigyLCAxMSwgMykKLSAg
ICBpZiAocm9sZSA9PSBBVEtfUk9MRV9MQU5ETUFSSykgewotICAgICAgICBTdHJpbmcgeG1sUm9s
ZXNWYWx1ZSA9IGdldEF0dHJpYnV0ZVNldFZhbHVlRm9ySWQob2JqZWN0LCBPYmplY3RBdHRyaWJ1
dGVUeXBlLCAieG1sLXJvbGVzIik7Ci0gICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh4bWxS
b2xlc1ZhbHVlLCAiYmFubmVyIikpCi0gICAgICAgICAgICByZXR1cm4gbGFuZG1hcmtTdHJpbmdC
YW5uZXI7Ci0gICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh4bWxSb2xlc1ZhbHVlLCAiY29t
cGxlbWVudGFyeSIpKQotICAgICAgICAgICAgcmV0dXJuIGxhbmRtYXJrU3RyaW5nQ29tcGxlbWVu
dGFyeTsKLSAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHhtbFJvbGVzVmFsdWUsICJjb250
ZW50aW5mbyIpKQotICAgICAgICAgICAgcmV0dXJuIGxhbmRtYXJrU3RyaW5nQ29udGVudGluZm87
Ci0gICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh4bWxSb2xlc1ZhbHVlLCAibWFpbiIpKQot
ICAgICAgICAgICAgcmV0dXJuIGxhbmRtYXJrU3RyaW5nTWFpbjsKLSAgICAgICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKHhtbFJvbGVzVmFsdWUsICJuYXZpZ2F0aW9uIikpCi0gICAgICAgICAgICBy
ZXR1cm4gbGFuZG1hcmtTdHJpbmdOYXZpZ2F0aW9uOwotICAgICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UoeG1sUm9sZXNWYWx1ZSwgInNlYXJjaCIpKQotICAgICAgICAgICAgcmV0dXJuIGxhbmRt
YXJrU3RyaW5nU2VhcmNoOwotICAgIH0KLSNlbmRpZgotCitjb25zdCBnY2hhciogcm9sZVRvU3Ry
aW5nKEF0a1JvbGUgcm9sZSkKK3sKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFUS19S
T0xFX0FMRVJUOgogICAgICAgICByZXR1cm4gIkFYQWxlcnQiOwotICAgIGNhc2UgQVRLX1JPTEVf
RElBTE9HOgotICAgICAgICByZXR1cm4gIkFYRGlhbG9nIjsKICAgICBjYXNlIEFUS19ST0xFX0NB
TlZBUzoKICAgICAgICAgcmV0dXJuICJBWENhbnZhcyI7CiAgICAgY2FzZSBBVEtfUk9MRV9DSEVD
S19CT1g6CkBAIC0zMTMsMTQgKzI3Nyw4IEBAIGNvbnN0IGdjaGFyKiByb2xlVG9TdHJpbmcoQXRr
T2JqZWN0KiBvYmplY3QpCiAgICAgICAgIHJldHVybiAiQVhDb2x1bW5IZWFkZXIiOwogICAgIGNh
c2UgQVRLX1JPTEVfQ09NQk9fQk9YOgogICAgICAgICByZXR1cm4gIkFYQ29tYm9Cb3giOwotICAg
IGNhc2UgQVRLX1JPTEVfQ09NTUVOVDoKLSAgICAgICAgcmV0dXJuICJBWENvbW1lbnQiOwogICAg
IGNhc2UgQVRLX1JPTEVfRE9DVU1FTlRfRlJBTUU6Ci0gICAgICAgIHJldHVybiAiQVhEb2N1bWVu
dCI7Ci0gICAgY2FzZSBBVEtfUk9MRV9ET0NVTUVOVF9XRUI6CiAgICAgICAgIHJldHVybiAiQVhX
ZWJBcmVhIjsKLSAgICBjYXNlIEFUS19ST0xFX0VNQkVEREVEOgotICAgICAgICByZXR1cm4gIkFY
RW1iZWRkZWQiOwogICAgIGNhc2UgQVRLX1JPTEVfRU5UUlk6CiAgICAgICAgIHJldHVybiAiQVhU
ZXh0RmllbGQiOwogICAgIGNhc2UgQVRLX1JPTEVfRk9PVEVSOgpAQCAtMzcxLDggKzMyOSw2IEBA
IGNvbnN0IGdjaGFyKiByb2xlVG9TdHJpbmcoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIHJl
dHVybiAiQVhSYWRpb01lbnVJdGVtIjsKICAgICBjYXNlIEFUS19ST0xFX1JPV19IRUFERVI6CiAg
ICAgICAgIHJldHVybiAiQVhSb3dIZWFkZXIiOwotICAgIGNhc2UgQVRLX1JPTEVfQ0hFQ0tfTUVO
VV9JVEVNOgotICAgICAgICByZXR1cm4gIkFYQ2hlY2tNZW51SXRlbSI7CiAgICAgY2FzZSBBVEtf
Uk9MRV9SVUxFUjoKICAgICAgICAgcmV0dXJuICJBWFJ1bGVyIjsKICAgICBjYXNlIEFUS19ST0xF
X1NDUk9MTF9CQVI6CkBAIC0zODAsMTUgKzMzNiwxMyBAQCBjb25zdCBnY2hhciogcm9sZVRvU3Ry
aW5nKEF0a09iamVjdCogb2JqZWN0KQogICAgIGNhc2UgQVRLX1JPTEVfU0NST0xMX1BBTkU6CiAg
ICAgICAgIHJldHVybiAiQVhTY3JvbGxBcmVhIjsKICAgICBjYXNlIEFUS19ST0xFX1NFQ1RJT046
Ci0gICAgICAgIHJldHVybiAiQVhTZWN0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWERpdiI7CiAg
ICAgY2FzZSBBVEtfUk9MRV9TRVBBUkFUT1I6Ci0gICAgICAgIHJldHVybiAiQVhTZXBhcmF0b3Ii
OworICAgICAgICByZXR1cm4gIkFYSG9yaXpvbnRhbFJ1bGUiOwogICAgIGNhc2UgQVRLX1JPTEVf
U0xJREVSOgogICAgICAgICByZXR1cm4gIkFYU2xpZGVyIjsKICAgICBjYXNlIEFUS19ST0xFX1NQ
SU5fQlVUVE9OOgogICAgICAgICByZXR1cm4gIkFYU3BpbkJ1dHRvbiI7Ci0gICAgY2FzZSBBVEtf
Uk9MRV9TVEFUVVNCQVI6Ci0gICAgICAgIHJldHVybiAiQVhTdGF0dXNCYXIiOwogICAgIGNhc2Ug
QVRLX1JPTEVfVEFCTEU6CiAgICAgICAgIHJldHVybiAiQVhUYWJsZSI7CiAgICAgY2FzZSBBVEtf
Uk9MRV9UQUJMRV9DRUxMOgpAQCAtNDE1LDI4ICszNjksNiBAQCBjb25zdCBnY2hhciogcm9sZVRv
U3RyaW5nKEF0a09iamVjdCogb2JqZWN0KQogICAgICAgICByZXR1cm4gIkFYV2luZG93IjsKICAg
ICBjYXNlIEFUS19ST0xFX1VOS05PV046CiAgICAgICAgIHJldHVybiAiQVhVbmtub3duIjsKLSNp
ZiBBVEtfQ0hFQ0tfVkVSU0lPTigyLCAxMSwgMykKLSAgICBjYXNlIEFUS19ST0xFX0FSVElDTEU6
Ci0gICAgICAgIHJldHVybiAiQVhBcnRpY2xlIjsKLSAgICBjYXNlIEFUS19ST0xFX0RFRklOSVRJ
T046Ci0gICAgICAgIHJldHVybiAiQVhEZWZpbml0aW9uIjsKLSAgICBjYXNlIEFUS19ST0xFX0xP
RzoKLSAgICAgICAgcmV0dXJuICJBWExvZyI7Ci0gICAgY2FzZSBBVEtfUk9MRV9NQVJRVUVFOgot
ICAgICAgICByZXR1cm4gIkFYTWFycXVlZSI7Ci0gICAgY2FzZSBBVEtfUk9MRV9NQVRIOgotICAg
ICAgICByZXR1cm4gIkFYTWF0aCI7Ci0gICAgY2FzZSBBVEtfUk9MRV9USU1FUjoKLSAgICAgICAg
cmV0dXJuICJBWFRpbWVyIjsKLSNlbmRpZgotI2lmIEFUS19DSEVDS19WRVJTSU9OKDIsIDExLCA0
KQotICAgIGNhc2UgQVRLX1JPTEVfREVTQ1JJUFRJT05fTElTVDoKLSAgICAgICAgcmV0dXJuICJB
WERlc2NyaXB0aW9uTGlzdCI7Ci0gICAgY2FzZSBBVEtfUk9MRV9ERVNDUklQVElPTl9URVJNOgot
ICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb25UZXJtIjsKLSAgICBjYXNlIEFUS19ST0xFX0RF
U0NSSVBUSU9OX1ZBTFVFOgotICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb25WYWx1ZSI7Ci0j
ZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICAvLyBXZSB3YW50IHRvIGRpc3Rpbmd1aXNoIEFU
S19ST0xFX1VOS05PV04gZnJvbSBhIGtub3duIEF0a1JvbGUgd2hpY2gKICAgICAgICAgLy8gb3Vy
IERSVCBpc24ndCBwcm9wZXJseSBoYW5kbGluZy4KQEAgLTQ1Myw5ICszODUsOSBAQCBTdHJpbmcg
YXR0cmlidXRlc09mRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KQogICAg
IC8vIEZvciB0aGUgcGFyZW50IHdlIHByaW50IGl0cyByb2xlIGFuZCBpdHMgbmFtZSwgaWYgYXZh
aWxhYmxlLgogICAgIGJ1aWxkZXIuYXBwZW5kKCJBWFBhcmVudDogIik7CiAgICAgUmVmUHRyPEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ+IHBhcmVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsK
LSAgICBBdGtPYmplY3QqIGF0a1BhcmVudCA9IHBhcmVudCA/IHBhcmVudC0+cGxhdGZvcm1VSUVs
ZW1lbnQoKS5nZXQoKSA6IG51bGxwdHI7CisgICAgQXRrT2JqZWN0KiBhdGtQYXJlbnQgPSBwYXJl
bnQgPyBwYXJlbnQtPnBsYXRmb3JtVUlFbGVtZW50KCkuZ2V0KCkgOiAwOwogICAgIGlmIChhdGtQ
YXJlbnQpIHsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQocm9sZVRvU3RyaW5nKGF0a1BhcmVudCkp
OworICAgICAgICBidWlsZGVyLmFwcGVuZChyb2xlVG9TdHJpbmcoYXRrX29iamVjdF9nZXRfcm9s
ZShhdGtQYXJlbnQpKSk7CiAgICAgICAgIGNvbnN0IGNoYXIqIHBhcmVudE5hbWUgPSBhdGtfb2Jq
ZWN0X2dldF9uYW1lKGF0a1BhcmVudCk7CiAgICAgICAgIGlmIChwYXJlbnROYW1lICYmIGdfdXRm
OF9zdHJsZW4ocGFyZW50TmFtZSwgLTEpKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nOjpmb3JtYXQoIjogJXMiLCBwYXJlbnROYW1lKSk7CkBAIC02MDYsNyArNTM4LDcgQEAgaW50
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnQoKQogUGFzc1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50QXRQb2lu
dChpbnQgeCwgaW50IHkpCiB7CiAgICAgaWYgKCFBVEtfSVNfQ09NUE9ORU5UKG1fZWxlbWVudC5n
ZXQoKSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gMDsKIAogICAg
IEdSZWZQdHI8QXRrT2JqZWN0PiBvYmplY3RBdFBvaW50ID0gYWRvcHRHUmVmKGF0a19jb21wb25l
bnRfcmVmX2FjY2Vzc2libGVfYXRfcG9pbnQoQVRLX0NPTVBPTkVOVChtX2VsZW1lbnQuZ2V0KCkp
LCB4LCB5LCBBVEtfWFlfV0lORE9XKSk7CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNyZWF0ZShvYmplY3RBdFBvaW50ID8gb2JqZWN0QXRQb2ludC5nZXQoKSA6IG1fZWxlbWVu
dC5nZXQoKSk7CkBAIC02MzEsNyArNTYzLDcgQEAgdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aW5kZXhPZkNoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpCiBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNo
aWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKICAgICBpZiAoIUFUS19JU19PQkpFQ1QobV9l
bGVtZW50LmdldCgpKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiAw
OwogCiAgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+IGNoaWxkcmVu
OwogICAgIGdldENoaWxkcmVuV2l0aFJhbmdlKGNoaWxkcmVuLCBpbmRleCwgMSk7CkBAIC02Mzks
MTkgKzU3MSwxOSBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNoaWxkQXRJbmRleCh1bnNpZ25lZAogICAgIGlmIChjaGlsZHJlbi5z
aXplKCkgPT0gMSkKICAgICAgICAgcmV0dXJuIGNoaWxkcmVuWzBdOwogCi0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCh1bnNp
Z25lZCBpbmRleCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIG51bGxw
dHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93bnNFbGVtZW50QXRJbmRleCh1bnNpZ25l
ZCBpbmRleCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIG51bGxwdHI7
CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVk
IGluZGV4KQpAQCAtNjgwLDE5ICs2MTIsMTkgQEAgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW4KIFBh
c3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKIHsKICAgICAvLyBGSVhNRTogaW1w
bGVtZW50Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJ
bmRleCh1bnNpZ25lZCBpbmRleCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgo
dW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiAwOwogfQogCiB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdApAQCAtNzA0LDE5ICs2MzYs
MTkgQEAgdW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNv
dW50KCkgY29uc3QKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQogewogICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gMDsK
IH0KIAogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0aXRsZVVJRWxlbWVudCgpCiB7CiAgICAgaWYgKCFBVEtfSVNfT0JKRUNUKG1fZWxl
bWVudC5nZXQoKSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gMDsK
IAogICAgIEF0a1JlbGF0aW9uU2V0KiBzZXQgPSBhdGtfb2JqZWN0X3JlZl9yZWxhdGlvbl9zZXQo
QVRLX09CSkVDVChtX2VsZW1lbnQuZ2V0KCkpKTsKICAgICBpZiAoIXNldCkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiAwOwogCi0gICAgQXRrT2JqZWN0KiB0YXJnZXQg
PSBudWxscHRyOworICAgIEF0a09iamVjdCogdGFyZ2V0ID0gMDsKICAgICBpbnQgY291bnQgPSBh
dGtfcmVsYXRpb25fc2V0X2dldF9uX3JlbGF0aW9ucyhzZXQpOwogICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICBBdGtSZWxhdGlvbiogcmVsYXRpb24gPSBhdGtf
cmVsYXRpb25fc2V0X2dldF9yZWxhdGlvbihzZXQsIGkpOwpAQCAtNzI4LDIyICs2NjAsMjIgQEAg
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0aXRsZVVJRWxlbWVudCgpCiAgICAgfQogCiAgICAgZ19vYmplY3RfdW5yZWYoc2V0KTsKLSAg
ICByZXR1cm4gdGFyZ2V0ID8gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHRhcmdldCkg
OiBudWxscHRyOworICAgIHJldHVybiB0YXJnZXQgPyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
cmVhdGUodGFyZ2V0KSA6IDA7CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCiB7CiAgICAgaWYgKCFB
VEtfSVNfT0JKRUNUKG1fZWxlbWVudC5nZXQoKSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICByZXR1cm4gMDsKIAogICAgIEF0a09iamVjdCogcGFyZW50ID0gYXRrX29iamVjdF9n
ZXRfcGFyZW50KEFUS19PQkpFQ1QobV9lbGVtZW50LmdldCgpKSk7Ci0gICAgcmV0dXJuIHBhcmVu
dCA/IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShwYXJlbnQpIDogbnVsbHB0cjsKKyAg
ICByZXR1cm4gcGFyZW50ID8gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKHBhcmVudCkg
OiAwOwogfQogCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50
Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZMaW5rZWRVSUVs
ZW1lbnRzKCkKQEAgLTgxNCwxNiArNzQ2LDEwIEBAIGRvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpudW1iZXJBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCiAgICAgcmV0
dXJuIDA7CiB9CiAKLUpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50
QXJyYXlBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0Ci17Ci0gICAg
Ly8gRklYTUU6IGltcGxlbWVudAotICAgIHJldHVybiBudWxscHRyOwotfQotCiBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVu
dEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKIHsKICAgICAvLyBG
SVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAK
IGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym9vbEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5n
UmVmIGF0dHJpYnV0ZSkKQEAgLTgzNCwxMyArNzYwLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojpib29sQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQogCiBib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFibGUoSlNTdHJpbmdSZWYg
YXR0cmlidXRlKQogewotICAgIGlmICghQVRLX0lTX09CSkVDVChtX2VsZW1lbnQuZ2V0KCkpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBTdHJpbmcgYXR0cmlidXRlU3RyaW5nID0ganNT
dHJpbmdUb1dURlN0cmluZyhhdHRyaWJ1dGUpOwotICAgIGlmIChhdHRyaWJ1dGVTdHJpbmcgPT0g
IkFYVmFsdWUiKQotICAgICAgICByZXR1cm4gY2hlY2tFbGVtZW50U3RhdGUobV9lbGVtZW50Lmdl
dCgpLCBBVEtfU1RBVEVfRURJVEFCTEUpOwotCisgICAgLy8gRklYTUU6IGltcGxlbWVudAogICAg
IHJldHVybiBmYWxzZTsKIH0KIApAQCAtODcyLDEwICs3OTIsMTEgQEAgSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGUoKQogICAgIGlmICghQVRLX0lT
X09CSkVDVChtX2VsZW1lbnQuZ2V0KCkpKQogICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygwLCAwKTsKIAotICAgIGlmICghYXRrX29iamVjdF9nZXRfcm9sZShBVEtf
T0JKRUNUKG1fZWxlbWVudC5nZXQoKSkpKQorICAgIEF0a1JvbGUgcm9sZSA9IGF0a19vYmplY3Rf
Z2V0X3JvbGUoQVRLX09CSkVDVChtX2VsZW1lbnQuZ2V0KCkpKTsKKyAgICBpZiAoIXJvbGUpCiAg
ICAgICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwogCi0gICAg
R093blB0cjxjaGFyPiByb2xlU3RyaW5nV2l0aFByZWZpeChnX3N0cmR1cF9wcmludGYoIkFYUm9s
ZTogJXMiLCByb2xlVG9TdHJpbmcoQVRLX09CSkVDVChtX2VsZW1lbnQuZ2V0KCkpKSkpOworICAg
IEdPd25QdHI8Y2hhcj4gcm9sZVN0cmluZ1dpdGhQcmVmaXgoZ19zdHJkdXBfcHJpbnRmKCJBWFJv
bGU6ICVzIiwgcm9sZVRvU3RyaW5nKHJvbGUpKSk7CiAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKHJvbGVTdHJpbmdXaXRoUHJlZml4LmdldCgpKTsKIH0KIApAQCAtOTIx
LDcgKzg0Miw3IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpvcmllbnRhdGlvbigpIGNvbnN0CiAgICAgaWYgKCFBVEtfSVNfT0JKRUNUKG1fZWxlbWVu
dC5nZXQoKSkpCiAgICAgICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAs
IDApOwogCi0gICAgY29uc3QgZ2NoYXIqIGF4T3JpZW50YXRpb24gPSBudWxscHRyOworICAgIGNv
bnN0IGdjaGFyKiBheE9yaWVudGF0aW9uID0gMDsKICAgICBpZiAoY2hlY2tFbGVtZW50U3RhdGUo
bV9lbGVtZW50LmdldCgpLCBBVEtfU1RBVEVfSE9SSVpPTlRBTCkpCiAgICAgICAgIGF4T3JpZW50
YXRpb24gPSAiQVhPcmllbnRhdGlvbjogQVhIb3Jpem9udGFsT3JpZW50YXRpb24iOwogICAgIGVs
c2UgaWYgKGNoZWNrRWxlbWVudFN0YXRlKG1fZWxlbWVudC5nZXQoKSwgQVRLX1NUQVRFX1ZFUlRJ
Q0FMKSkKQEAgLTExMDQsOCArMTAyNSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCiAgICAgaWYgKCFBVEtfSVNfQUNUSU9OKG1fZWxlbWVu
dC5nZXQoKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGNvbnN0IGdjaGFyKiBhY3Rp
b25OYW1lID0gYXRrX2FjdGlvbl9nZXRfbmFtZShBVEtfQUNUSU9OKG1fZWxlbWVudC5nZXQoKSks
IDApOwotICAgIHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShhY3Rpb25OYW1lLCBTdHJpbmcoInBy
ZXNzIikpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGFjdGlvbk5hbWUsIFN0cmluZygianVtcCIpKTsK
KyAgICByZXR1cm4gZXF1YWxJZ25vcmluZ0Nhc2UoYXRrX2FjdGlvbl9nZXRfbmFtZShBVEtfQUNU
SU9OKG1fZWxlbWVudC5nZXQoKSksIDApLCBTdHJpbmcoInByZXNzIikpOwogfQogCiBib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSW5jcmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKQEAgLTEx
NDAsMTEgKzEwNjAsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQo
KSBjb25zdAogICAgIHJldHVybiBjaGVja0VsZW1lbnRTdGF0ZShtX2VsZW1lbnQuZ2V0KCksIEFU
S19TVEFURV9TRUxFQ1RFRCk7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNT
ZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNoZWNrRWxlbWVudFN0
YXRlKG1fZWxlbWVudC5nZXQoKSwgQVRLX1NUQVRFX0FDVElWRSk7Ci19Ci0KIGJvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNoZWNr
RWxlbWVudFN0YXRlKG1fZWxlbWVudC5nZXQoKSwgQVRLX1NUQVRFX0VYUEFOREVEKTsKQEAgLTEx
NTUsMTEgKzEwNzAsNiBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCgp
IGNvbnN0CiAgICAgcmV0dXJuIGNoZWNrRWxlbWVudFN0YXRlKG1fZWxlbWVudC5nZXQoKSwgQVRL
X1NUQVRFX0NIRUNLRUQpOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSW5k
ZXRlcm1pbmF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNoZWNrRWxlbWVudFN0YXRlKG1fZWxl
bWVudC5nZXQoKSwgQVRLX1NUQVRFX0lOREVURVJNSU5BVEUpOwotfQotCiBpbnQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aGllcmFyY2hpY2FsTGV2ZWwoKSBjb25zdAogewogICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKQEAgLTEyMjMsMTEgKzExMzMsOCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym91bmRzRm9yUmFuZ2UodW5zaWduZWQgbG9jYXRp
bwogCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Ry
aW5nRm9yUmFuZ2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBp
ZiAoIUFUS19JU19URVhUKG1fZWxlbWVudC5nZXQoKSkpCi0gICAgICAgIHJldHVybiBKU1N0cmlu
Z0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwotCi0gICAgU3RyaW5nIHN0cmluZyA9IGF0a190
ZXh0X2dldF90ZXh0KEFUS19URVhUKG1fZWxlbWVudC5nZXQoKSksIGxvY2F0aW9uLCBsb2NhdGlv
biArIGxlbmd0aCk7Ci0gICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHN0
cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJu
IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7CiB9CiAKIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFu
Z2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCkKQEAgLTEyNDIsMTYgKzExNDks
MTAgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nUmFuZ2VJ
c01pc3NwZWxsZWQodW5zaWduZWQgbG9jYXRpb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXVu
c2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJl
ZGljYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBzdGFy
dEVsZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNT
dHJpbmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSkKLXsKLSAgICAvLyBGSVhNRTog
aW1wbGVtZW50Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNoUHJlZGlj
YXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBzdGFydEVs
ZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwgSlNTdHJp
bmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSkKIHsKICAgICAvLyBGSVhNRTogaW1w
bGVtZW50Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1
bW5IZWFkZXJzKCkKQEAgLTEzMzYsMjQgKzEyMzcsMjQgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQogUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9y
Q29sdW1uQW5kUm93KHVuc2lnbmVkIGNvbCwgdW5zaWduZWQgcm93KQogewogICAgIGlmICghQVRL
X0lTX1RBQkxFKG1fZWxlbWVudC5nZXQoKSkpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICByZXR1cm4gMDsKIAogICAgIC8vIEFkb3B0IHRoZSBBdGtPYmplY3QgcmVwcmVzZW50aW5n
IHRoZSBjZWxsIGJlY2F1c2UKICAgICAvLyBhdF90YWJsZV9yZWZfYXQoKSB0cmFuc2ZlcnMgZnVs
bCBvd25lcnNoaXAuCiAgICAgR1JlZlB0cjxBdGtPYmplY3Q+IGZvdW5kQ2VsbCA9IGFkb3B0R1Jl
ZihhdGtfdGFibGVfcmVmX2F0KEFUS19UQUJMRShtX2VsZW1lbnQuZ2V0KCkpLCByb3csIGNvbCkp
OwotICAgIHJldHVybiBmb3VuZENlbGwgPyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUo
Zm91bmRDZWxsLmdldCgpKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGZvdW5kQ2VsbCA/IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShmb3VuZENlbGwuZ2V0KCkpIDogMDsKIH0KIAogUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpo
b3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVydGljYWxTY3JvbGxi
YXIoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gMDsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dFJhbmdlKCkKQEAgLTE0NjksNyArMTM3MCw3IEBA
IGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KQogewogICAgIC8vIFByb2dyYW1tZXJzIHNob3VsZCBub3QgYmUgdHJ5aW5nIHRvIHJlbW92ZSBh
IGxpc3RlbmVyIHRoYXQncyBhbHJlYWR5IHJlbW92ZWQuCiAgICAgQVNTRVJUKG1fbm90aWZpY2F0
aW9uSGFuZGxlcik7Ci0gICAgbV9ub3RpZmljYXRpb25IYW5kbGVyID0gbnVsbHB0cjsKKyAgICBt
X25vdGlmaWNhdGlvbkhhbmRsZXIgPSAwOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xNTQ1
LDcgKzE0NDYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlv
bigpCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvckVsZW1lbnQoQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCogZWxlbWVudCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2Up
CkBAIC0xNTU3LDEzICsxNDU4LDEzIEBAIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0
TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSoKIFBhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZp
b3VzVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKIHsKICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7
CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiB0ZXh0TWFy
a2VyKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gMDsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlKiBtYXJrZXJSYW5nZSkKQEAgLTE1NzUsNDMgKzE0NzYsNDMgQEAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclRleHRNYXJrZXJS
YW5nZShBY2Nlc3MKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlciogc3RhcnRNYXJrZXIsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiBlbmRN
YXJrZXIpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudAotICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiAwOwogfQogCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2Uo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UpCiB7CiAgICAgLy8gRklYTUU6IGlt
cGxlbWVudAotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAwOwogfQogCiBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRU
ZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2Uq
IHJhbmdlKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICByZXR1cm4gMDsKIH0KIAogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvckJvdW5kcyhpbnQgeCwgaW50
IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAKIFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtl
ckZvckJvdW5kcyhpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKICAgICAv
LyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9
CiAKIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnRleHRNYXJrZXJGb3JQb2ludChpbnQgeCwgaW50IHkpCiB7CiAgICAgLy8gRklYTUU6
IGltcGxlbWVudAotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAwOwogfQogCiBQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFj
Y2Vzc2liaWxpdHlFbGVtZW50Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciog
bWFya2VyKQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICByZXR1cm4gMDsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJpbmdSZWYg
YXR0cmlidXRlLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiByYW5nZSkKQEAgLTE2MzUs
NyArMTUzNiw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0TWFya2VyVmFs
aWQoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJrCiBQYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyRm9ySW5k
ZXgoaW50IHRleHRJbmRleCkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci0gICAgcmV0dXJu
IG51bGxwdHI7CisgICAgcmV0dXJuIDA7CiB9CiAgICAgCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXIoKQpA
QCAtMTY1OCw4OCArMTU1OSwzMyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9s
bFRvTWFrZVZpc2libGUoKQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlvbnMoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gMDsKIH0KIAogSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbigp
IGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gMDsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAwOwogfQogCiBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNj
cmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gMDsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsYXNzTGlzdCgpIGNvbnN0CiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IHN0cmluZ0F0T2Zmc2V0KFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQsIEF0a1Rl
eHRCb3VuZGFyeSBib3VuZGFyeSwgaW50IG9mZnNldCkKLXsKLSAgICBpZiAoIUFUS19JU19URVhU
KGVsZW1lbnQuZ2V0KCkpKQotICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFj
dGVycygwLCAwKTsKLQotICAgIGdpbnQgc3RhcnRPZmZzZXQsIGVuZE9mZnNldDsKLSAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0KLSNpZiBBVEtfQ0hFQ0tfVkVSU0lPTigyLCAxMCwgMCkKLSAg
ICBBdGtUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHk7Ci0gICAgc3dpdGNoIChib3VuZGFyeSkg
ewotICAgIGNhc2UgQVRLX1RFWFRfQk9VTkRBUllfQ0hBUjoKLSAgICAgICAgZ3JhbnVsYXJpdHkg
PSBBVEtfVEVYVF9HUkFOVUxBUklUWV9DSEFSOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFU
S19URVhUX0JPVU5EQVJZX1dPUkRfU1RBUlQ6Ci0gICAgICAgIGdyYW51bGFyaXR5ID0gQVRLX1RF
WFRfR1JBTlVMQVJJVFlfV09SRDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBVEtfVEVYVF9C
T1VOREFSWV9MSU5FX1NUQVJUOgotICAgICAgICBncmFudWxhcml0eSA9IEFUS19URVhUX0dSQU5V
TEFSSVRZX0xJTkU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVRLX1RFWFRfQk9VTkRBUllf
U0VOVEVOQ0VfU1RBUlQ6Ci0gICAgICAgIGdyYW51bGFyaXR5ID0gQVRLX1RFWFRfR1JBTlVMQVJJ
VFlfU0VOVEVOQ0U7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVy
biBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwotICAgIH0KLQotICAgIGJ1aWxk
ZXIuYXBwZW5kKGF0a190ZXh0X2dldF9zdHJpbmdfYXRfb2Zmc2V0KEFUS19URVhUKGVsZW1lbnQu
Z2V0KCkpLCBvZmZzZXQsIGdyYW51bGFyaXR5LCAmc3RhcnRPZmZzZXQsICZlbmRPZmZzZXQpKTsK
LSNlbHNlCi0gICAgYnVpbGRlci5hcHBlbmQoYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KEFU
S19URVhUKGVsZW1lbnQuZ2V0KCkpLCBvZmZzZXQsIGJvdW5kYXJ5LCAmc3RhcnRPZmZzZXQsICZl
bmRPZmZzZXQpKTsKLSNlbmRpZgotICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCIs
ICVpLCAlaSIsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpKTsKLSAgICByZXR1cm4gSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoYnVpbGRlci50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwot
fQotCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hh
cmFjdGVyQXRPZmZzZXQoaW50IG9mZnNldCkKLXsKLSAgICByZXR1cm4gc3RyaW5nQXRPZmZzZXQo
bV9lbGVtZW50LCBBVEtfVEVYVF9CT1VOREFSWV9DSEFSLCBvZmZzZXQpOwotfQotCi1KU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGlu
dCBvZmZzZXQpCi17Ci0gICAgcmV0dXJuIHN0cmluZ0F0T2Zmc2V0KG1fZWxlbWVudCwgQVRLX1RF
WFRfQk9VTkRBUllfV09SRF9TVEFSVCwgb2Zmc2V0KTsKLX0KLQotSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQgb2Zmc2V0KQot
ewotICAgIHJldHVybiBzdHJpbmdBdE9mZnNldChtX2VsZW1lbnQsIEFUS19URVhUX0JPVU5EQVJZ
X0xJTkVfU1RBUlQsIG9mZnNldCk7Ci19Ci0KLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzZW50ZW5jZUF0T2Zmc2V0KGludCBvZmZzZXQpCi17Ci0gICAg
cmV0dXJuIHN0cmluZ0F0T2Zmc2V0KG1fZWxlbWVudCwgQVRLX1RFWFRfQk9VTkRBUllfU0VOVEVO
Q0VfU1RBUlQsIG9mZnNldCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdU
UgogCi0jZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQorI2VuZGlmCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5uZXJF
ZmwuY3BwCmluZGV4IDZhOTI2YjhiYjMyYzg1MWJmMzJmZmYxN2UyZGU5NjMzOThiOTUxMjQuLjk2
ODE2MTE0ZGJjZDI3OWZjMTliZWE4ZjlkYjUxYmY5OGFiNmEyYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5uZXJF
ZmwuY3BwCkBAIC04Myw0ICs4MywxMCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1
bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZiB1cmwpCiAgICAgcmV0dXJuIEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGZ1bGxQYXRoVG9VcmwudXRmOCgpLmRhdGEoKSk7
CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUo
KQoreworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJlZmwiKSk7CisgICAgcmV0dXJuIHBsYXRmb3Jt
TmFtZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0ay9BY3RpdmF0ZUZvbnRzR3RrLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRlRm9udHNHdGsuY3Bw
CmluZGV4IDFhYzVhM2E4MTk4YTQyMDkwZWIxNmExYWI2YzhkNWMwNmYyZTQ4ZDcuLmU2MmRiZmVl
ODQ1ZjBjZDllOGFiZDFlYWY3ZWU5ZmNjYWM4NDQ0ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRlRm9udHNHdGsuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL0FjdGl2YXRlRm9udHNH
dGsuY3BwCkBAIC04Miw5ICs4Miw2IEBAIHN0YXRpYyBDU3RyaW5nIGdldEZvbnRzUGF0aCgpCiAK
IHZvaWQgaW5pdGlhbGl6ZUZvbnRDb25maWdTZXR0aW5nKCkKIHsKLSAgICBpZiAoZ19nZXRlbnYo
IldFQktJVF9TS0lQX1dFQktJVFRFU1RSVU5ORVJfRk9OVENPTkZJR19JTklUSUFMSVpBVElPTiIp
KQotICAgICAgICByZXR1cm47Ci0KICAgICBGY0luaXQoKTsKIAogICAgIC8vIElmIGEgdGVzdCBy
ZXN1bHRlZCBhIGZvbnQgYmVpbmcgYWRkZWQgb3IgcmVtb3ZlZCB2aWEgdGhlIEBmb250LWZhY2Ug
cnVsZSwgdGhlbgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCBkZjQwNDNhNjVlMzQ2OTFkOGYw
MTVhMTRmMTVlZWY1ZDhmNTMwZTUwLi40MjdjZjJlY2U1ZTU3MTIxZmRiYjg1NTBmNjgzMDI3YTJk
ZjI4OTZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2d0ay9UZXN0UnVubmVyR3RrLmNwcApAQCAtNzgsNCArNzgsMTAgQEAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlNTdHJp
bmdSZWYgdXJsKQogICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyh0ZXN0
VVJJLmdldCgpKTsKIH0KIAorSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBs
YXRmb3JtTmFtZSgpCit7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFt
ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImd0ayIpKTsKKyAgICByZXR1
cm4gcGxhdGZvcm1OYW1lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZhZDQwZTkzYjQwYWEy
Nzc3NzhhYzIwYTZkODNlNzRlNzRjYjM3MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9T
Lm1tCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkFjY2Vzc2liaWxpdHlDb21tb25NYWMuaCIKKyNpbXBvcnQgIkFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmgiCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5o
IgorI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGUuaCIKKyNpbXBvcnQgIkluamVjdGVkQnVuZGxlUGFn
ZS5oIgorCisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgorI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pT
U3RyaW5nUmVmQ0YuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tCdW5kbGUuaD4KKyNpbXBvcnQgPFdl
YktpdDIvV0tCdW5kbGVQYWdlLmg+CisjaW1wb3J0IDxXZWJLaXQyL1dLQnVuZGxlUGFnZVByaXZh
dGUuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVSZWYgZnVuY3Rpb25DYWxsYmFjaykKK3sK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJl
bW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmxvZ0FjY2Vzc2liaWxpdHlFdmVudHMoKQorewor
fQorCit2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
KCkKK3sKKyAgICBpZiAobV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyKQorICAgICAgICByZW1v
dmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOworfQorCitzdGF0aWMgaWQgZmluZEFjY2Vzc2libGVP
YmplY3RCeUlkKGlkIG9iaiwgTlNTdHJpbmcgKmlkQXR0cmlidXRlKQoreworICAgIHJldHVybiAw
OworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWRBdHRyaWJ1dGUp
Cit7CisgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
cGFnZSgpLT5wYWdlKCk7CisgICAgaWQgcm9vdCA9IHN0YXRpY19jYXN0PFBsYXRmb3JtVUlFbGVt
ZW50PihXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KHBhZ2UpKTsKKworICAgIGlkIHJlc3VsdCA9
IGZpbmRBY2Nlc3NpYmxlT2JqZWN0QnlJZChyb290LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3Ry
aW5nUmVmOmlkQXR0cmlidXRlXSk7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxNjA4ODc1YWZhYTk1ZTEyZjIwMzcx
NTU3ZGFlZDdmMTA2ODRhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXJf
aAorI2RlZmluZSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlcl9oCisKKyNpbXBvcnQg
PEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+CisKK0BpbnRlcmZhY2UgQWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbkhhbmRsZXIgOiBOU09iamVjdCB7CisgICAgaWQgbV9wbGF0Zm9ybUVsZW1l
bnQ7CisgICAgSlNWYWx1ZVJlZiBtX25vdGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2s7Cit9CisK
Ky0gKGlkKWluaXQ7CistICh2b2lkKXNldFBsYXRmb3JtRWxlbWVudDooaWQpcGxhdGZvcm1FbGVt
ZW50OworLSAodm9pZClzZXRDYWxsYmFjazooSlNWYWx1ZVJlZiljYWxsYmFjazsKKy0gKHZvaWQp
c3RhcnRPYnNlcnZpbmc7CistICh2b2lkKXN0b3BPYnNlcnZpbmc7CisKK0BlbmQKKworI2VuZGlm
IC8vIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlUZXh0TWFy
a2VySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGRjNjhkNzJmZGQ4YTk0YmQz
ZmI3NTliOTYxZjE4N2RhNjhkOTEwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1t
CkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlci5oIgorCituYW1lc3BhY2UgV1RSIHsKKworYm9vbCBBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlcjo6aXNFcXVhbChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogb3RoZXIpCit7CisgICAgcmV0
dXJuIFsoaWQpcGxhdGZvcm1UZXh0TWFya2VyKCkgaXNFcXVhbDooaWQpb3RoZXItPnBsYXRmb3Jt
VGV4dE1hcmtlcigpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCisKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZGQzYWIxZDM0MzkwYmU1
NGE4OGUyMmZlY2Q0OWVkMGNmY2QyNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1t
CkBAIC0wLDAgKzEsNzUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oIgorI2ltcG9ydCAiQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oIgorI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGUuaCIKKyNpbXBvcnQg
IkluamVjdGVkQnVuZGxlUGFnZS5oIgorI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKworbmFtZXNw
YWNlIFdUUiB7CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQoUGxhdGZvcm1VSUVsZW1lbnQgZWxlbWVudCkKKyAgICA6IG1fZWxlbWVudChlbGVtZW50KQor
eworICAgIC8vIEZJWE1FOiBhcEB3ZWJraXQub3JnIHNheXMgT2JqQyBvYmplY3RzIG5lZWQgdG8g
YmUgQ0ZSZXRhaW5lZC9DRlJlbGVhc2UgdG8gYmUgR0MtY29tcGxpYW50IG9uIHRoZSBtYWMuCisg
ICAgW21fZWxlbWVudCByZXRhaW5dOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmIG90aGVyKQor
ICAgIDogSlNXcmFwcGFibGUoKQorICAgICwgbV9lbGVtZW50KG90aGVyLm1fZWxlbWVudCkKK3sK
KyAgICBbbV9lbGVtZW50IHJldGFpbl07Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KCkKK3sKKyAgICBbbV9lbGVtZW50IHJlbGVhc2VdOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCogb3RoZXJFbGVtZW50KQoreworICAgIGlmICghb3RoZXJFbGVtZW50KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBsYXRmb3JtVUlFbGVtZW50KCkgPT0gb3RoZXJFbGVt
ZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpOworfQorICAgIAordm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpnZXRMaW5rZWRVSUVsZW1lbnRzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gPiYgZWxlbWVudFZlY3RvcikKK3sKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gPiYgZWxlbWVudFZlY3RvcikKK3sKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4m
IGVsZW1lbnRWZWN0b3IpCit7CisgICAgTlNJbnRlZ2VyIGNoaWxkQ291bnQgPSBbbV9lbGVtZW50
IGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOworICAgIGZvciAoTlNJbnRlZ2VyIGsgPSAwOyBr
IDwgY2hpbGRDb3VudDsgKytrKQorICAgICAgICBlbGVtZW50VmVjdG9yLmFwcGVuZChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RWxlbWVudEF0
SW5kZXg6a10pKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJl
bldpdGhSYW5nZShWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1l
bnRWZWN0b3IsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgTlNV
SW50ZWdlciBjaGlsZENvdW50ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RWxlbWVudENvdW50
XTsKKyAgICBmb3IgKE5TVUludGVnZXIgayA9IGxvY2F0aW9uOyBrIDwgY2hpbGRDb3VudCAmJiBr
IDwgKGxvY2F0aW9uK2xlbmd0aCk7ICsraykKKyAgICAgICAgZWxlbWVudFZlY3Rvci5hcHBlbmQo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUVs
ZW1lbnRBdEluZGV4OmtdKSk7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGls
ZHJlbkNvdW50KCkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
PiBjaGlsZHJlbjsKKyAgICBnZXRDaGlsZHJlbihjaGlsZHJlbik7CisgICAgCisgICAgcmV0dXJu
IGNoaWxkcmVuLnNpemUoKTsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50QXRQb2ludChpbnQgeCwgaW50IHkpCit7
CisgICAgcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlu
ZGV4T2ZDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KQoreworICAgIHJldHVy
biAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICBWZWN0b3I8
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4gY2hpbGRyZW47CisgICAgZ2V0Q2hpbGRy
ZW5XaXRoUmFuZ2UoY2hpbGRyZW4sIGluZGV4LCAxKTsKKworICAgIGlmIChjaGlsZHJlbi5zaXpl
KCkgPT0gMSkKKyAgICAgICAgcmV0dXJuIGNoaWxkcmVuWzBdOworICAgIHJldHVybiAwOworfQor
CitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmxpbmtlZFVJRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJu
IDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXJpYU93bnNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5zaWduZWQgaW5k
ZXgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25l
ZCBpbmRleCkKK3sKKyAgICByZXR1cm4gMDsKK30KKyAgICAKK1Bhc3NSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRleCh1bnNpZ25l
ZCBpbmRleCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1
bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordW5zaWduZWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7
CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGVVSUVsZW1lbnQoKQoreworICAgIHJldHVybiAw
OworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnBhcmVudEVsZW1lbnQoKQoreworICAgIHJldHVybiBuaWw7Cit9CisKK1Bhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlz
Y2xvc2VkQnlSb3coKQoreworICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlFbGVtZW50
cygpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVzT2ZEb2N1bWVudExpbmtzKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNoaWxkcmVuKCkKK3sKKyAgICByZXR1cm4gSlNT
dHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIHJl
dHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFs
dWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdp
dGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIHJldHVy
biAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0
ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKyAgICAKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Ym9vbEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRy
aWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU3VwcG9ydGVk
KEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJhbWV0ZXJpemVk
QXR0cmlidXRlTmFtZXMoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0
ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cm9sZSgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdWJyb2xlKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFj
dGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnJvbGVEZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRl
V2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZSgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRl
V2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJuIEpTU3RyaW5n
Q3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpvcmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7Cisg
ICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsYW5ndWFnZSgpCit7
CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWxwVGV4dCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7
Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp4KCkKK3sKKyAgICBDR1JlY3Qg
ZnJhbWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlGcmFtZV07CisgICAgcmV0dXJuIGZyYW1l
Lm9yaWdpbi54OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eSgpCit7Cisg
ICAgQ0dSZWN0IGZyYW1lID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RnJhbWVdOworICAgIHJl
dHVybiBmcmFtZS5vcmlnaW4ueTsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OndpZHRoKCkKK3sKKyAgICBDR1JlY3QgZnJhbWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlG
cmFtZV07CisgICAgcmV0dXJuIGZyYW1lLnNpemUud2lkdGg7Cit9CisKK2RvdWJsZSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpoZWlnaHQoKQoreworICAgIENHUmVjdCBmcmFtZSA9IFttX2VsZW1l
bnQgYWNjZXNzaWJpbGl0eUZyYW1lXTsKKyAgICByZXR1cm4gZnJhbWUuc2l6ZS5oZWlnaHQ7Cit9
CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCit7CisgICAg
cmV0dXJuIDA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50
WSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjppbnRWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2RvdWJsZSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjptaW5WYWx1ZSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2RvdWJs
ZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYXhWYWx1ZSgpCit7CisgICAgcmV0dXJuIDA7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2YWx1
ZURlc2NyaXB0aW9uKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVy
cygwLCAwKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omluc2VydGlvblBvaW50
TGluZU51bWJlcigpCit7CisgICAgcmV0dXJuIC0xOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzUHJlc3NBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0luY3JlbWVudEFjdGlvblN1cHBv
cnRlZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzRGVjcmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNSZXF1aXJl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Nl
bGVjdGVkKCkgY29uc3QKK3sKKyAgICBVSUFjY2Vzc2liaWxpdHlUcmFpdHMgdHJhaXRzID0gW21f
ZWxlbWVudCBhY2Nlc3NpYmlsaXR5VHJhaXRzXTsKKyAgICByZXR1cm4gKHRyYWl0cyAmIFVJQWNj
ZXNzaWJpbGl0eVRyYWl0U2VsZWN0ZWQpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzRXhwYW5kZWQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0NoZWNrZWQoKSBjb25zdAoreworICAgIHJldHVybiBm
YWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVs
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzcGVhaygpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXJpYUlzR3JhYmJlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXJpYURyb3BFZmZlY3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworLy8gcGFyYW1ldGVyaXplZCBhdHRyaWJ1dGVzCitp
bnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUZvckluZGV4KGludCBpbmRleCkKK3sKKyAg
ICByZXR1cm4gLTE7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpyYW5nZUZvckxpbmUoaW50IGxpbmUpCit7CisgICAgcmV0dXJuIDA7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZv
clBvc2l0aW9uKGludCB4LCBpbnQgeSkKK3sKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5kc0ZvclJhbmdlKHVu
c2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5n
Q3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JSYW5nZSh1bnNpZ25lZCBsb2NhdGlv
biwgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFy
YWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1
bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoMCwgMCk7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0
cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgp
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0
ZShKU0NvbnRleHRSZWYgY29udGV4dCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogc3RhcnRFbGVt
ZW50LCBib29sIGlzRGlyZWN0aW9uTmV4dCwgSlNWYWx1ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5n
UmVmIHNlYXJjaFRleHQsIGJvb2wgdmlzaWJsZU9ubHkpCit7CisgICAgcmV0dXJuIDA7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVzT2ZDb2x1bW5IZWFkZXJzKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hh
cmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlJvd0hlYWRlcnMoKQoreworICAgIHJldHVybiBKU1N0
cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1ucygpCit7Cisg
ICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZS
b3dzKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0
dHJpYnV0ZXNPZlZpc2libGVDZWxscygpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0
aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIHJldHVybiBKU1N0
cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cm93Q291bnQoKQoreworICAgIHJldHVybiAtMTsKK30KKworaW50IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sKKyAgICByZXR1cm4gLTE7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEluVGFibGUoKQoreworICAgIHJldHVybiAt
MTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnJvd0luZGV4UmFuZ2UoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0
ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Y29sdW1uSW5kZXhSYW5nZSgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRl
V2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25l
ZCBjb2wsIHVuc2lnbmVkIHJvdykKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFs
U2Nyb2xsYmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9s
bGJhcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZSgpCit7Cit9CisgICAgCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKQor
eworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVk
IGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aW5jcmVtZW50KCkKK3sKKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlJbmNy
ZW1lbnRdOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudCgpCit7
CisgICAgW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RGVjcmVtZW50XTsKK30KKwordm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzaG93TWVudSgpCit7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cHJlc3MoKQoreworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZWxlbWVudCkgY29uc3QK
K3sKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAor
ICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNv
ZGluZygpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpk
b2N1bWVudFVSSSgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMo
MCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp1cmwoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAs
IDApOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxp
c3RlbmVyKEpTVmFsdWVSZWYgZnVuY3Rpb25DYWxsYmFjaykKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlz
dGVuZXIoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAg
Ly8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklY
TUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1Zpc2libGUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNP
ZmZTY3JlZW4oKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQoKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXAo
KSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0YWtlRm9jdXMoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlU2VsZWN0aW9uKCkKK3sKKyAgICAvLyBGSVhN
RTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0
aW9uKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50
Cit9CisKKy8vIFRleHQgbWFya2VycworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50
KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIDA7Cit9CisK
K2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bh
c3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnByZXZpb3VzVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikK
K3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
cj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXIqIHRleHRNYXJrZXIpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2Vy
UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogbWFya2VyUmFuZ2UpCit7CisgICAg
cmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlciogc3RhcnRNYXJrZXIsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiBl
bmRNYXJrZXIpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRl
eHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiByYW5nZSkKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiByYW5nZSkKK3sKKyAgICByZXR1cm4gMDsKK30KKwor
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6ZW5kVGV4dE1hcmtlckZvckJvdW5kcyhpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl
aWdodCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9y
Qm91bmRzKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIHJldHVy
biBudWxscHRyOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyRm9yUG9pbnQoaW50IHgsIGludCB5KQorewor
ICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlFbGVtZW50Rm9yVGV4dE1hcmtlcihB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogbWFya2VyKQoreworICAgIHJldHVybiAwOworfQorICAg
IAorYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlLCBBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlKiByYW5nZSkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9Cisg
ICAgCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhGb3JUZXh0TWFya2VyKEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyKiBtYXJrZXIpCit7CisgICAgcmV0dXJuIC0xOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dE1hcmtlclZhbGlkKEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyKiB0ZXh0TWFya2VyKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworUGFzc1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4
dE1hcmtlckZvckluZGV4KGludCB0ZXh0SW5kZXgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bh
c3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0YXJ0VGV4dE1hcmtlcigpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Bhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRl
eHRNYXJrZXIoKQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFBvc3RzY3JpcHRzRGVzY3JpcHRp
b24oKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlwdHNEZXNjcmlwdGlvbigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisgICAgCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGF0aERlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKyAgICAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzdXBwb3J0ZWRBY3Rpb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30K
KworfSAvLyBuYW1lc3BhY2UgV1RSCisKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjdGl2YXRlRm9udHNJT1MubW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY3RpdmF0ZUZvbnRzSU9TLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmNzM0YjhkNjUzMDdhZWIyYjFlMjRhMDcyNDI2YTI4NTBiYjI2ZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY3RpdmF0
ZUZvbnRzSU9TLm1tCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCituYW1lc3BhY2UgV1RSIHsKKwor
dm9pZCBhY3RpdmF0ZUZvbnRzKCkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKworfQorCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNl
bmRlclByb3h5SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjVhOTg2NmNlNjI2MzkxYWFk
YTMxNTBjN2I5ZjVkNTdjZjA4YmRjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQpAQCAtMCww
ICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXZl
bnRTZW5kZXJQcm94eS5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQg
IlN0cmluZ0Z1bmN0aW9ucy5oIgorI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKKyNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdUUiB7CisKK0V2ZW50U2VuZGVyUHJveHk6OkV2ZW50U2VuZGVyUHJveHkoVGVzdENvbnRy
b2xsZXIqIHRlc3RDb250cm9sbGVyKQorICAgIDogbV90ZXN0Q29udHJvbGxlcih0ZXN0Q29udHJv
bGxlcikKKyAgICAsIG1fdGltZSgwKQorICAgICwgbV9wb3NpdGlvbigpCisgICAgLCBtX2xlZnRN
b3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkKKyAgICAsIG1fY2xp
Y2tUaW1lKDApCisgICAgLCBtX2NsaWNrUG9zaXRpb24oKQorICAgICwgbV9jbGlja0J1dHRvbihr
V0tFdmVudE1vdXNlQnV0dG9uTm9CdXR0b24pCisgICAgLCBldmVudE51bWJlcigwKQoreworICAg
IFVOVVNFRF9QQVJBTShtX3Rlc3RDb250cm9sbGVyKTsKKyAgICBVTlVTRURfUEFSQU0obV9sZWZ0
TW91c2VCdXR0b25Eb3duKTsKKyAgICBVTlVTRURfUEFSQU0oZXZlbnROdW1iZXIpOworfQorCitF
dmVudFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6dXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbihpbnQgYnV0dG9uKQoreworICAg
IGlmIChtX3RpbWUgLSBtX2NsaWNrVGltZSA8IDEgJiYgbV9wb3NpdGlvbiA9PSBtX2NsaWNrUG9z
aXRpb24gJiYgYnV0dG9uID09IG1fY2xpY2tCdXR0b24pIHsKKyAgICAgICAgKyttX2NsaWNrQ291
bnQ7CisgICAgICAgIG1fY2xpY2tUaW1lID0gbV90aW1lOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9jbGlja0NvdW50ID0gMTsKKyAgICBtX2NsaWNrVGltZSA9IG1fdGltZTsKKyAg
ICBtX2NsaWNrUG9zaXRpb24gPSBtX3Bvc2l0aW9uOworICAgIG1fY2xpY2tCdXR0b24gPSBidXR0
b247Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3duKHVuc2lnbmVkIGJ1dHRv
bk51bWJlciwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMpCit7CisgICAgLy8gV3JpdGUgbWUu
Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCh1bnNpZ25lZCBidXR0b25OdW1i
ZXIsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzKQoreworICAgIC8vIFdyaXRlIG1lLgorfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSB4LCBkb3VibGUgeSkK
K3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9y
d2FyZChpbnQgbWlsbGlzZWNvbmRzKQoreworICAgIG1fdGltZSArPSBtaWxsaXNlY29uZHMgLyAx
MDAwLjA7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiBr
ZXksIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCB1bnNpZ25lZCBrZXlMb2NhdGlvbikKK3sK
KyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5KGludCB4LCBpbnQgeSkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFn
ZWQpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
dm9pZCBFdmVudFNlbmRlclByb3h5OjphZGRUb3VjaFBvaW50KGludCB4LCBpbnQgeSkKK3sKKyAg
ICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBv
aW50KGludCBpbmRleCwgaW50IHgsIGludCB5KQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoTW9kaWZpZXIoV0tFdmVudE1vZGlmaWVycywg
Ym9vbCBlbmFibGUpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhpbnQgcmFkaXVzWCwgaW50IHJhZGl1c1kpCit7Cisg
ICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hTdGFydCgp
Cit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hN
b3ZlKCkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0
b3VjaEVuZCgpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6dG91Y2hDYW5jZWwoKQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2b2lkIEV2ZW50U2Vu
ZGVyUHJveHk6OmNsZWFyVG91Y2hQb2ludHMoKQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCBpbmRleCkKK3sKKyAg
ICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBv
aW50KGludCBpbmRleCkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKyNlbmRpZgorCit9IC8vIG5h
bWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0luamVjdGVkQnVuZGxlSU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjZjYjIw
YzViOWE4MmE5ZTg1YTg5ODQ4ODNlNGE0OWFmOWJlMjc4YwotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVuZGxlSU9T
Lm1tCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJJbmplY3RlZEJ1bmRs
ZS5oIgorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworQGludGVyZmFjZSBO
U1VSTFJlcXVlc3QgKFByaXZhdGVUaGluZ3NXZVNob3VsZG50UmVhbGx5VXNlKQorKyh2b2lkKXNl
dEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGU6KEJPT0wpYWxsb3cgZm9ySG9zdDooTlNTdHJpbmcg
Kilob3N0OworQGVuZAorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6
cGxhdGZvcm1Jbml0aWFsaXplKFdLVHlwZVJlZikKK3sKKyAgICBOU0RpY3Rpb25hcnkgKmRpY3Qg
PSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6CisgICAgICAgIG5p
bF07CisKKyAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRWb2xh
dGlsZURvbWFpbjpkaWN0IGZvck5hbWU6TlNBcmd1bWVudERvbWFpbl07CisKKyAgICBbTlNVUkxS
ZXF1ZXN0IHNldEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGU6WUVTIGZvckhvc3Q6QCJsb2NhbGhv
c3QiXTsKKyAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGU6WUVT
IGZvckhvc3Q6QCIxMjcuMC4wLjEiXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9JbmplY3RlZEJ1
bmRsZVBhZ2VJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lv
cy9JbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI0MTYxNWIzZmY5ZTI3MjJh
MDJhNjBhNWMzNWRjNWM1MDc4ZWZlOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVuZGxlUGFnZUlPUy5tbQpAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJJ
bmplY3RlZEJ1bmRsZVBhZ2UuaCIKKworI2ltcG9ydCAiU3RyaW5nRnVuY3Rpb25zLmgiCisjaW1w
b3J0IDxXZWJLaXQyL1dLQnVuZGxlRnJhbWUuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tVUkxDRi5o
PgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW1wb3J0IDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK3VzaW5nIG5hbWVzcGFjZSBX
VEY7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpwbGF0Zm9ybURpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCmluZGV4IDM0
MDNiNzA2YTA0NzA5ZmE3NTdhOTUzZDM1MDE2OWYzNzQ2NzIyZWQuLjJmMjBmZTlhNGNiOWE5OTdl
ZWRlMjcxNjM4ZmMyMDc3YTRmZjA2YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyTWFjLm1tCkBAIC0zMSw5ICszMSw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNp
bXBvcnQgIkFjY2Vzc2liaWxpdHlDb21tb25NYWMuaCIKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmgiCi0KLSNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0KICNpbXBvcnQgIkFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgiCiAjaW1wb3J0ICJJbmplY3RlZEJ1bmRsZS5o
IgogI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGVQYWdlLmgiCkBAIC0xMTIsMTIgKzEwOSw0IEBAIFBh
c3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OmFjY2Vzc2libGVFbGVtZW50QnlJCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkK
LXsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKEFkb3B0LCBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibWFjIikpOwotICAgIHJldHVybiBwbGF0Zm9ybU5h
bWU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdUUgotCi0jZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklM
SVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KaW5kZXggZDEx
OGE5OTU3NTA4YmZlOWJkNWUxZGIxOWIwODAwNTBhODMxYzU1OS4uMWFhNjJjNTJjNGZhYTkxZTUx
MjRhNDcxZDNjODE2MDczMWM1MWY0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tCkBAIC0yNSw5ICsyNSw2IEBACiAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5oIgotCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQotCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oIgogI2ltcG9y
dCAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgogI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGUuaCIK
QEAgLTIxMCw1NiArMjA3LDYgQEAgc3RhdGljIEpTU3RyaW5nUmVmIGRlc2NyaXB0aW9uT2ZFbGVt
ZW50cyhWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4KICAgICByZXR1cm4g
W2FsbEVsZW1lbnRTdHJpbmcgY3JlYXRlSlNTdHJpbmdSZWZdOwogfQogCi1zdGF0aWMgTlNEaWN0
aW9uYXJ5ICpzZWFyY2hQcmVkaWNhdGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yU2VhcmNoQ3Jp
dGVyaWEoSlNDb250ZXh0UmVmIGNvbnRleHQsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgKnN0YXJ0
RWxlbWVudCwgYm9vbCBpc0RpcmVjdGlvbk5leHQsIHVuc2lnbmVkIHJlc3VsdHNMaW1pdCwgSlNW
YWx1ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5nUmVmIHNlYXJjaFRleHQsIGJvb2wgdmlzaWJsZU9u
bHkpCi17Ci0gICAgTlNNdXRhYmxlRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSA9
IFtOU011dGFibGVEaWN0aW9uYXJ5IGRpY3Rpb25hcnldOwotICAgIAotICAgIGlmIChzdGFydEVs
ZW1lbnQgJiYgc3RhcnRFbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgpKQotICAgICAgICBbcGFy
YW1ldGVyaXplZEF0dHJpYnV0ZSBzZXRPYmplY3Q6KGlkKXN0YXJ0RWxlbWVudC0+cGxhdGZvcm1V
SUVsZW1lbnQoKSBmb3JLZXk6QCJBWFN0YXJ0RWxlbWVudCJdOwotICAgIAotICAgIFtwYXJhbWV0
ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDooaXNEaXJlY3Rpb25OZXh0KSA/IEAiQVhEaXJlY3Rp
b25OZXh0IiA6IEAiQVhEaXJlY3Rpb25QcmV2aW91cyIgZm9yS2V5OkAiQVhEaXJlY3Rpb24iXTsK
LSAgICAKLSAgICBbcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBzZXRPYmplY3Q6QChyZXN1bHRzTGlt
aXQpIGZvcktleTpAIkFYUmVzdWx0c0xpbWl0Il07Ci0gICAgCi0gICAgaWYgKHNlYXJjaEtleSkg
ewotICAgICAgICBpZCBzZWFyY2hLZXlQYXJhbWV0ZXIgPSBuaWw7Ci0gICAgICAgIGlmIChKU1Zh
bHVlSXNTdHJpbmcoY29udGV4dCwgc2VhcmNoS2V5KSkgewotICAgICAgICAgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IHNlYXJjaEtleVN0cmluZyhBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29w
eShjb250ZXh0LCBzZWFyY2hLZXksIG51bGxwdHIpKTsKLSAgICAgICAgICAgIGlmIChzZWFyY2hL
ZXlTdHJpbmcpCi0gICAgICAgICAgICAgICAgc2VhcmNoS2V5UGFyYW1ldGVyID0gW05TU3RyaW5n
IHN0cmluZ1dpdGhKU1N0cmluZ1JlZjpzZWFyY2hLZXlTdHJpbmcuZ2V0KCldOwotICAgICAgICB9
Ci0gICAgICAgIGVsc2UgaWYgKEpTVmFsdWVJc09iamVjdChjb250ZXh0LCBzZWFyY2hLZXkpKSB7
Ci0gICAgICAgICAgICBKU09iamVjdFJlZiBzZWFyY2hLZXlBcnJheSA9IEpTVmFsdWVUb09iamVj
dChjb250ZXh0LCBzZWFyY2hLZXksIG51bGxwdHIpOwotICAgICAgICAgICAgdW5zaWduZWQgc2Vh
cmNoS2V5QXJyYXlMZW5ndGggPSAwOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gbGVuZ3RoUHJvcGVydHlTdHJpbmcoQWRvcHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJsZW5ndGgiKSk7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVmIHNl
YXJjaEtleUFycmF5TGVuZ3RoVmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHNl
YXJjaEtleUFycmF5LCBsZW5ndGhQcm9wZXJ0eVN0cmluZy5nZXQoKSwgbnVsbHB0cik7Ci0gICAg
ICAgICAgICBpZiAoc2VhcmNoS2V5QXJyYXlMZW5ndGhWYWx1ZSAmJiBKU1ZhbHVlSXNOdW1iZXIo
Y29udGV4dCwgc2VhcmNoS2V5QXJyYXlMZW5ndGhWYWx1ZSkpCi0gICAgICAgICAgICAgICAgc2Vh
cmNoS2V5QXJyYXlMZW5ndGggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNWYWx1ZVRvTnVtYmVy
KGNvbnRleHQsIHNlYXJjaEtleUFycmF5TGVuZ3RoVmFsdWUsIG51bGxwdHIpKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNlYXJjaEtleUFycmF5
TGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBKU1ZhbHVlUmVmIHNlYXJjaEtleVZhbHVl
ID0gSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoY29udGV4dCwgc2VhcmNoS2V5QXJyYXksIGks
IG51bGxwdHIpOwotICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNlYXJjaEtleVN0cmluZyA9
IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgc2VhcmNoS2V5VmFsdWUsIG51bGxwdHIpOwot
ICAgICAgICAgICAgICAgIGlmIChzZWFyY2hLZXlTdHJpbmcpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFzZWFyY2hLZXlQYXJhbWV0ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWFy
Y2hLZXlQYXJhbWV0ZXIgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOwotICAgICAgICAgICAgICAg
ICAgICBbc2VhcmNoS2V5UGFyYW1ldGVyIGFkZE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEpT
U3RyaW5nUmVmOnNlYXJjaEtleVN0cmluZ11dOwotICAgICAgICAgICAgICAgICAgICBKU1N0cmlu
Z1JlbGVhc2Uoc2VhcmNoS2V5U3RyaW5nKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHNlYXJjaEtleVBhcmFtZXRlcikKLSAgICAgICAg
ICAgIFtwYXJhbWV0ZXJpemVkQXR0cmlidXRlIHNldE9iamVjdDpzZWFyY2hLZXlQYXJhbWV0ZXIg
Zm9yS2V5OkAiQVhTZWFyY2hLZXkiXTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHNlYXJjaFRleHQg
JiYgSlNTdHJpbmdHZXRMZW5ndGgoc2VhcmNoVGV4dCkpCi0gICAgICAgIFtwYXJhbWV0ZXJpemVk
QXR0cmlidXRlIHNldE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOnNlYXJj
aFRleHRdIGZvcktleTpAIkFYU2VhcmNoVGV4dCJdOwotICAgIAotICAgIFtwYXJhbWV0ZXJpemVk
QXR0cmlidXRlIHNldE9iamVjdDpAKHZpc2libGVPbmx5KSBmb3JLZXk6QCJBWFZpc2libGVPbmx5
Il07Ci0gICAgCi0gICAgcmV0dXJuIHBhcmFtZXRlcml6ZWRBdHRyaWJ1dGU7Ci19Ci0KIHZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0TGlua2VkVUlFbGVtZW50cyhWZWN0b3I8UmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRWZWN0b3IpCiB7CiAgICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCkBAIC0yNzYsMTUgKzIyMyw2IEBAIHZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Z2V0RG9jdW1lbnRMaW5rcyhWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lCiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogfQogCi12b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmdldFVJRWxlbWVudHNXaXRoQXR0cmlidXRlKEpTU3RyaW5nUmVmIGF0dHJp
YnV0ZSwgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiBlbGVtZW50cykg
Y29uc3QKLXsKLSAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9IFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOltOU1N0cmluZyBzdHJpbmdXaXRo
SlNTdHJpbmdSZWY6YXR0cmlidXRlXV07Ci0gICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltO
U0FycmF5IGNsYXNzXV0pCi0gICAgICAgIGNvbnZlcnROU0FycmF5VG9WZWN0b3IodmFsdWUsIGVs
ZW1lbnRzKTsKLSAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCi19Ci0KIHZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiA+JiBlbGVtZW50VmVjdG9yKQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9O
UwpAQCAtNTAxLDIyICs0MzksNiBAQCBkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVt
YmVyQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQogICAgIHJldHVybiAwOwog
fQogCi1KU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEFycmF5QXR0
cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKSBjb25zdAotewotICAgIFdLQnVuZGxl
RnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7Ci0gICAgSlNDb250ZXh0UmVmIGNvbnRleHQg
PSBXS0J1bmRsZUZyYW1lR2V0SmF2YVNjcmlwdENvbnRleHQobWFpbkZyYW1lKTsKLSAgICAKLSAg
ICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4gZWxlbWVudHM7Ci0gICAg
Z2V0VUlFbGVtZW50c1dpdGhBdHRyaWJ1dGUoYXR0cmlidXRlLCBlbGVtZW50cyk7Ci0gICAgCi0g
ICAgc2l6ZV90IGVsZW1lbnRDb3VudCA9IGVsZW1lbnRzLnNpemUoKTsKLSAgICBhdXRvIHZhbHVl
RWxlbWVudHMgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTVmFsdWVSZWZbXT4oZWxlbWVudENvdW50KTsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVsZW1lbnRDb3VudDsgKytpKQotICAgICAgICB2
YWx1ZUVsZW1lbnRzW2ldID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIGVsZW1lbnRzW2ldLT53cmFw
cGVyQ2xhc3MoKSwgZWxlbWVudHNbaV0uZ2V0KCkpOwotICAgIAotICAgIHJldHVybiBKU09iamVj
dE1ha2VBcnJheShjb250ZXh0LCBlbGVtZW50Q291bnQsIHZhbHVlRWxlbWVudHMuZ2V0KCksIDAp
OwotfQotCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkg
Y29uc3QKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKQEAgLTgyNywxMiArNzQ5LDcg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKIAogYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0ZvY3VzZWQoKSBjb25zdAogewotICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Rm9jdXNlZEF0dHJpYnV0ZV07Ci0gICAg
aWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFzc11dKQotICAgICAgICByZXR1
cm4gW3ZhbHVlIGJvb2xWYWx1ZV07Ci0gICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIAor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTg0Nywx
OCArNzY0LDYgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkKCkgY29u
c3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVu
dAotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0luZGV0ZXJtaW5hdGUoKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KIGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRl
ZCgpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCkBAIC0xMDUxLDI1ICs5
NTYsNjAgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nUmFu
Z2VJc01pc3NwZWxsZWQodW5zaWduZWQgbG9jYXRpb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXVuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNo
UHJlZGljYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50ICpz
dGFydEVsZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJjaEtleSwg
SlNTdHJpbmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSkKK1Bhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9y
U2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KiBzdGFydEVsZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVmIHNlYXJj
aEtleSwgSlNTdHJpbmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSkKIHsKICAgICBC
RUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGUgPSBzZWFyY2hQcmVkaWNhdGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlRm9yU2VhcmNo
Q3JpdGVyaWEoY29udGV4dCwgc3RhcnRFbGVtZW50LCBpc0RpcmVjdGlvbk5leHQsIFVJTlRfTUFY
LCBzZWFyY2hLZXksIHNlYXJjaFRleHQsIHZpc2libGVPbmx5KTsKLSAgICBpZCB2YWx1ZSA9IFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhVSUVsZW1lbnRDb3VudEZv
clNlYXJjaFByZWRpY2F0ZSIgZm9yUGFyYW1ldGVyOnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVdOwot
ICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkKLSAgICAgICAg
cmV0dXJuIFt2YWx1ZSB1bnNpZ25lZEludFZhbHVlXTsKLSAgICBFTkRfQVhfT0JKQ19FWENFUFRJ
T05TCisgICAgTlNNdXRhYmxlRGljdGlvbmFyeSogcGFyYW1ldGVyID0gW05TTXV0YWJsZURpY3Rp
b25hcnkgZGljdGlvbmFyeV07CisgICAgW3BhcmFtZXRlciBzZXRPYmplY3Q6KGlzRGlyZWN0aW9u
TmV4dCkgPyBAIkFYRGlyZWN0aW9uTmV4dCIgOiBAIkFYRGlyZWN0aW9uUHJldmlvdXMiIGZvcktl
eTpAIkFYRGlyZWN0aW9uIl07CisgICAgaWYgKHZpc2libGVPbmx5KQorICAgICAgICBbcGFyYW1l
dGVyIHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSBmb3JLZXk6QCJBWFZp
c2libGVPbmx5Il07CisgICAgW3BhcmFtZXRlciBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldp
dGhJbnQ6MV0gZm9yS2V5OkAiQVhSZXN1bHRzTGltaXQiXTsKKyAgICBpZiAoc3RhcnRFbGVtZW50
ICYmIHN0YXJ0RWxlbWVudC0+cGxhdGZvcm1VSUVsZW1lbnQoKSkKKyAgICAgICAgW3BhcmFtZXRl
ciBzZXRPYmplY3Q6KGlkKXN0YXJ0RWxlbWVudC0+cGxhdGZvcm1VSUVsZW1lbnQoKSBmb3JLZXk6
QCJBWFN0YXJ0RWxlbWVudCJdOworICAgIGlmIChzZWFyY2hLZXkpIHsKKyAgICAgICAgaWYgKEpT
VmFsdWVJc1N0cmluZyhjb250ZXh0LCBzZWFyY2hLZXkpKSB7CisgICAgICAgICAgICBOU1N0cmlu
ZyAqc2VhcmNoS2V5UGFyYW1ldGVyID0gbmlsOworICAgICAgICAgICAgSlNTdHJpbmdSZWYgc2lu
Z2xlU2VhcmNoS2V5ID0gSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBzZWFyY2hLZXksIDAp
OworICAgICAgICAgICAgaWYgKHNpbmdsZVNlYXJjaEtleSkgeworICAgICAgICAgICAgICAgIHNl
YXJjaEtleVBhcmFtZXRlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoSlNTdHJpbmdSZWY6c2luZ2xl
U2VhcmNoS2V5XTsKKyAgICAgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2Uoc2luZ2xlU2VhcmNo
S2V5KTsKKyAgICAgICAgICAgICAgICBpZiAoc2VhcmNoS2V5UGFyYW1ldGVyKQorICAgICAgICAg
ICAgICAgICAgICBbcGFyYW1ldGVyIHNldE9iamVjdDpzZWFyY2hLZXlQYXJhbWV0ZXIgZm9yS2V5
OkAiQVhTZWFyY2hLZXkiXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNl
IGlmIChKU1ZhbHVlSXNPYmplY3QoY29udGV4dCwgc2VhcmNoS2V5KSkgeworICAgICAgICAgICAg
TlNNdXRhYmxlQXJyYXkgKnNlYXJjaEtleVBhcmFtZXRlciA9IG5pbDsKKyAgICAgICAgICAgIEpT
T2JqZWN0UmVmIGFycmF5ID0gY29uc3RfY2FzdDxKU09iamVjdFJlZj4oc2VhcmNoS2V5KTsKKyAg
ICAgICAgICAgIHVuc2lnbmVkIGFycmF5TGVuZ3RoID0gMDsKKyAgICAgICAgICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBhcnJheUxlbmd0aFN0cmluZyhBZG9wdCwgSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoImxlbmd0aCIpKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWYgYXJyYXlM
ZW5ndGhWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgYXJyYXksIGFycmF5TGVu
Z3RoU3RyaW5nLmdldCgpLCAwKTsKKyAgICAgICAgICAgIGlmIChhcnJheUxlbmd0aFZhbHVlICYm
IEpTVmFsdWVJc051bWJlcihjb250ZXh0LCBhcnJheUxlbmd0aFZhbHVlKSkKKyAgICAgICAgICAg
ICAgICBhcnJheUxlbmd0aCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1ZhbHVlVG9OdW1iZXIo
Y29udGV4dCwgYXJyYXlMZW5ndGhWYWx1ZSwgMCkpOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYXJyYXlMZW5ndGg7ICsraSkgeworICAgICAgICAg
ICAgICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKKyAgICAgICAgICAgICAgICBKU1ZhbHVl
UmVmIHZhbHVlID0gSlNPYmplY3RHZXRQcm9wZXJ0eUF0SW5kZXgoY29udGV4dCwgYXJyYXksIGks
ICZleGNlcHRpb24pOworICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIEpTU3RyaW5nUmVmIHNpbmdsZVNlYXJj
aEtleSA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgdmFsdWUsICZleGNlcHRpb24pOwor
ICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGlmIChzaW5nbGVTZWFyY2hLZXkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFzZWFyY2hLZXlQYXJhbWV0ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBz
ZWFyY2hLZXlQYXJhbWV0ZXIgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgICAgICAgICAg
ICAgICAgICBbc2VhcmNoS2V5UGFyYW1ldGVyIGFkZE9iamVjdDpbTlNTdHJpbmcgc3RyaW5nV2l0
aEpTU3RyaW5nUmVmOnNpbmdsZVNlYXJjaEtleV1dOworICAgICAgICAgICAgICAgICAgICBKU1N0
cmluZ1JlbGVhc2Uoc2luZ2xlU2VhcmNoS2V5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBpZiAoc2VhcmNoS2V5UGFyYW1ldGVyKQorICAgICAgICAgICAg
ICAgIFtwYXJhbWV0ZXIgc2V0T2JqZWN0OnNlYXJjaEtleVBhcmFtZXRlciBmb3JLZXk6QCJBWFNl
YXJjaEtleSJdOworICAgICAgICB9CisgICAgfQorICAgIGlmIChzZWFyY2hUZXh0ICYmIEpTU3Ry
aW5nR2V0TGVuZ3RoKHNlYXJjaFRleHQpKQorICAgICAgICBbcGFyYW1ldGVyIHNldE9iamVjdDpb
TlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOnNlYXJjaFRleHRdIGZvcktleTpAIkFYU2Vh
cmNoVGV4dCJdOwogICAgIAotICAgIHJldHVybiAwOwotfQotCi1QYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJj
aFByZWRpY2F0ZShKU0NvbnRleHRSZWYgY29udGV4dCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCAq
c3RhcnRFbGVtZW50LCBib29sIGlzRGlyZWN0aW9uTmV4dCwgSlNWYWx1ZVJlZiBzZWFyY2hLZXks
IEpTU3RyaW5nUmVmIHNlYXJjaFRleHQsIGJvb2wgdmlzaWJsZU9ubHkpCi17Ci0gICAgQkVHSU5f
QVhfT0JKQ19FWENFUFRJT05TCi0gICAgTlNEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVkQXR0cmli
dXRlID0gc2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvclNlYXJjaENyaXRl
cmlhKGNvbnRleHQsIHN0YXJ0RWxlbWVudCwgaXNEaXJlY3Rpb25OZXh0LCAxLCBzZWFyY2hLZXks
IHNlYXJjaFRleHQsIHZpc2libGVPbmx5KTsKLSAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhVSUVsZW1lbnRzRm9yU2VhcmNoUHJlZGljYXRl
IiBmb3JQYXJhbWV0ZXI6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZV07Ci0gICAgaWYgKFt2YWx1ZSBp
c0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjcmVhdGUoW3ZhbHVlIGxhc3RPYmplY3RdKTsKKyAgICBpZCB1aUVsZW1l
bnQgPSBbW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFVJRWxlbWVu
dHNGb3JTZWFyY2hQcmVkaWNhdGUiIGZvclBhcmFtZXRlcjpwYXJhbWV0ZXJdIGxhc3RPYmplY3Rd
OworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUodWlFbGVtZW50KTsK
ICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAgICAgCiAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC0xNzAwLDQgKzE2NDAsMyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c3VwcG9ydGVkQWN0aW9ucygpIGNvbnN0CiAKIH0gLy8gbmFtZXNwYWNlIFdU
UgogCi0jZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5k
ZXggYTkyNDExNzVhNWEyMzViOTM2Zjk4ZmMwODNjMWNkNzYyMzFiODM2Mi4uYzliZjNjYWY5YWVh
MWU4ZGEzNjg5MjllZWQwODEyODIxYzBhOTU1MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC02
MCw1ICs2MCwxMSBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGF0aFRv
TG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZiB1cmwpCiB7CiAgICAgcmV0dXJuIEpTU3RyaW5nUmV0
YWluKHVybCk7IC8vIERvIG5vdGhpbmcgb24gbWFjLgogfQorICAgIAorSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSgpCit7CisgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIm1hYyIpKTsKKyAgICByZXR1cm4gcGxhdGZvcm1OYW1lOworfQogCiB9IC8vIG5hbWVz
cGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggNGFjNmY0ZGEyNDQ1MTI5MzhmZTk5
ZTBhN2M3NWVlNzIyOWVhMmM3Ni4uMjI1Mzk0Mjc2MjNiYmJjMTc1MTkwNjdmYjkxYjE0ZDRhYmI0
MDU0MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
aW4vVGVzdFJ1bm5lcldpbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKQEAgLTY0LDQgKzY0LDEwIEBAIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5n
UmVmIHVybCkKICAgICByZXR1cm4gSlNTdHJpbmdSZXRhaW4odXJsKTsgLy8gVE9ETy4KIH0KIAor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSgpCit7Cisg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIndpbiIpKTsKKyAgICByZXR1cm4gcGxhdGZvcm1OYW1lOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvUGxhdGZvcm1FZmwuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtRWZs
LmNtYWtlCmluZGV4IGZiYWFmZGU2YmFjNTI5MmMzNTdkNWZiNzc3MmYxNDQzNzc0NTM5MTYuLjlk
MjZkODkzOThmYzJmNjcyN2M0YjM3Y2JkYTdjM2EzYjJmZTUxNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMSw5ICsxLDEzIEBACiBhZGRfY3VzdG9tX3Rh
cmdldChmb3J3YXJkaW5nLWhlYWRlcnNFZmxGb3JXZWJLaXRUZXN0UnVubmVyCiAgICAgQ09NTUFO
RCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1mb3J3
YXJkaW5nLWhlYWRlcnMucGwgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9ICR7REVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSfS9pbmNsdWRlIGVmbAotICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFC
TEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBs
ICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0v
aW5jbHVkZSBzb3VwCiApCiBzZXQoRm9yd2FyZGluZ0hlYWRlcnNGb3JXZWJLaXRUZXN0UnVubmVy
X05BTUUgZm9yd2FyZGluZy1oZWFkZXJzRWZsRm9yV2ViS2l0VGVzdFJ1bm5lcikKIAorYWRkX2N1
c3RvbV90YXJnZXQoZm9yd2FyZGluZy1oZWFkZXJzU291cEZvcldlYktpdFRlc3RSdW5uZXIKKyAg
ICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVy
YXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0gJHtERVJJ
VkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L2luY2x1ZGUgc291cAorKQorc2V0KEZvcndhcmRpbmdO
ZXR3b3JrSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRSBmb3J3YXJkaW5nLWhlYWRlcnNT
b3VwRm9yV2ViS2l0VGVzdFJ1bm5lcikKKwogbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9T
T1VSQ0VTCiAgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2NhaXJvL1Rlc3RJbnZvY2F0aW9u
Q2Fpcm8uY3BwCiAKQEAgLTE0LDEyICsxOCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5u
ZXJfU09VUkNFUwogKQogCiBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElS
RUNUT1JJRVMKLSAgICAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KLSAgICAke0RFUklW
RURfU09VUkNFU19XRUJDT1JFX0RJUn0vaW5jbHVkZQotICAgICR7REVSSVZFRF9TT1VSQ0VTX1dF
QktJVDJfRElSfS9pbmNsdWRlCi0KLSAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mv
ZWZsCi0KICAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRlclRyZWUvZWZsLwogICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvZWZsCiAgICAgIiR7V1RGX0RJUn0vd3RmL2dvYmplY3QiCkBA
IC00MCwxOCArMzgsMTEgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9MSUJSQVJJRVMK
ICAgICAke0VJTkFfTElCUkFSSUVTfQogICAgICR7RU9fTElCUkFSSUVTfQogICAgICR7RVZBU19M
SUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KICAgICAke09QRU5HTF9MSUJSQVJJRVN9
CiAgICAgV1RGCiApCiAKLWxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZV9MSUJSQVJJRVMKLSAgICAke0FUS19MSUJSQVJJRVN9Ci0gICAgJHtFQ09SRV9MSUJSQVJJRVN9
Ci0gICAgJHtFQ09SRV9GSUxFX0xJQlJBUklFU30KLSAgICAke0ZPTlRDT05GSUdfTElCUkFSSUVT
fQotICAgICR7R0xJQl9HT0JKRUNUX0xJQlJBUklFU30KLSkKLQogaWYgKEVOQUJMRV9FQ09SRV9Y
KQogICAgIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICAgICAke0VDT1JFX1hfSU5DTFVERV9ESVJTfQpAQCAtNjYsMTAgKzU3LDYgQEAgZW5kaWYg
KCkKIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9TT1VSQ0VTCiAg
ICAgJHtUT09MU19ESVJ9L0R1bXBSZW5kZXJUcmVlL2VmbC9Gb250TWFuYWdlbWVudC5jcHAKIAot
ICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS9hdGsvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJBdGsuY3BwCi0gICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJV
TkRMRV9ESVJ9L2F0ay9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5jcHAKLSAg
ICAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vYXRrL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRBdGsuY3BwCi0KICAgICAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVO
RExFX0RJUn0vZWZsL0FjdGl2YXRlRm9udHNFZmwuY3BwCiAgICAgJHtXRUJLSVRfVEVTVFJVTk5F
Ul9JTkpFQ1RFREJVTkRMRV9ESVJ9L2VmbC9JbmplY3RlZEJ1bmRsZUVmbC5jcHAKICAgICAke1dF
QktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vZWZsL1Rlc3RSdW5uZXJFZmwuY3Bw
CkBAIC03OCw5ICs2NSwxNCBAQCBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRC
dW5kbGVfU09VUkNFUwogIyBGSVhNRTogRE9XTkxPQURFRF9GT05UU19ESVIgc2hvdWxkIG5vdCBo
YXJkY29kZSB0aGUgZGlyZWN0b3J5CiAjIHN0cnVjdHVyZS4gU2VlIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0NzU+LgogYWRkX2RlZmluaXRpb25zKC1ERk9OVFNf
Q09ORl9ESVI9IiR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJlZS9ndGsvZm9udHMiCi0gICAgICAg
ICAgICAgICAgLURET1dOTE9BREVEX0ZPTlRTX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfS9XZWJL
aXRCdWlsZC9EZXBlbmRlbmNpZXMvU291cmNlL3dlYmtpdGd0ay10ZXN0LWZvbnRzIikKKyAgICAg
ICAgICAgICAgICAtRERPV05MT0FERURfRk9OVFNfRElSPSIke0NNQUtFX1NPVVJDRV9ESVJ9L1dl
YktpdEJ1aWxkL0RlcGVuZGVuY2llcy9Tb3VyY2Uvd2Via2l0Z3RrLXRlc3QtZm9udHMtMC4wLjMi
KQogCiBpZiAoRU5BQkxFX0FDQ0VTU0lCSUxJVFkpCisgICAgbGlzdChBUFBFTkQgV2ViS2l0VGVz
dFJ1bm5lckluamVjdGVkQnVuZGxlX1NPVVJDRVMKKyAgICAgICAgJHtXRUJLSVRfVEVTVFJVTk5F
Ul9JTkpFQ1RFREJVTkRMRV9ESVJ9L2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAK
KyAgICAgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L2F0ay9BY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlckF0ay5jcHAKKyAgICAgICAgJHtXRUJLSVRfVEVT
VFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L2F0ay9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50QXRr
LmNwcAorICAgICkKICAgICBsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElS
RUNUT1JJRVMKICAgICAgICAgJHtBVEtfSU5DTFVERV9ESVJTfQogICAgICkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZjliY2E1ODIzZGU0NDdhZmRlY2M1
YzcyYTcwZTk4M2JmODE0ZTViNi4uN2Q2MzQ4YzQ1MGQ4ZjNhNmUwZDNkZGZjMDQxMmQzZTM2MGQ1
MDhkMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTI3
LDcgKzI3LDYgQEAKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogCiAjaW5jbHVkZSAiRXZl
bnRTZW5kZXJQcm94eS5oIgotI2luY2x1ZGUgIk9wdGlvbnMuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVdlYlZpZXcuaCIKICNpbmNsdWRlICJTdHJpbmdGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJUZXN0
SW52b2NhdGlvbi5oIgpAQCAtMTk1LDcgKzE5NCwxMCBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1ZXN0UmVmLCBX
SwogICAgIHZpZXctPnJlc2l6ZVRvKDgwMCwgNjAwKTsKIAogICAgIFdLUGFnZVVJQ2xpZW50VjIg
b3RoZXJQYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgMiwgdmlldyB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiwKKyAgICAgICAgICAgIHZp
ZXcKKyAgICAgICAgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIGNsb3NlT3RoZXJQYWdl
LApAQCAtMjY3LDI5ICsyNjksNzQgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShp
bnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgp
OwogCi0gICAgT3B0aW9ucyBvcHRpb25zKGRlZmF1bHRMb25nVGltZW91dCwgZGVmYXVsdFNob3J0
VGltZW91dCk7Ci0gICAgT3B0aW9uc0hhbmRsZXIgb3B0aW9uc0hhbmRsZXIob3B0aW9ucyk7Ci0K
ICAgICBpZiAoYXJnYyA8IDIpIHsKLSAgICAgICAgb3B0aW9uc0hhbmRsZXIucHJpbnRIZWxwKCk7
CisgICAgICAgIGZwdXRzKCJVc2FnZTogV2ViS2l0VGVzdFJ1bm5lciBbb3B0aW9uc10gZmlsZW5h
bWUgW2ZpbGVuYW1lMi4ubl1cbiIsIHN0ZGVycik7CisgICAgICAgIC8vIEZJWE1FOiBSZWZhY3Rv
ciBvcHRpb24gcGFyc2luZyB0byBhbGxvdyB1cyB0byBwcmludAorICAgICAgICAvLyBhbiBhdXRv
LWdlbmVyYXRlZCBsaXN0IG9mIG9wdGlvbnMuCiAgICAgICAgIGV4aXQoMSk7CiAgICAgfQotICAg
IGlmICghb3B0aW9uc0hhbmRsZXIucGFyc2UoYXJnYywgYXJndikpCi0gICAgICAgIGV4aXQoMSk7
CiAKLSAgICBtX2xvbmdUaW1lb3V0ID0gb3B0aW9ucy5sb25nVGltZW91dDsKLSAgICBtX3Nob3J0
VGltZW91dCA9IG9wdGlvbnMuc2hvcnRUaW1lb3V0OwotICAgIG1fdXNlV2FpdFRvRHVtcFdhdGNo
ZG9nVGltZXIgPSBvcHRpb25zLnVzZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyOwotICAgIG1fZm9y
Y2VOb1RpbWVvdXQgPSBvcHRpb25zLmZvcmNlTm9UaW1lb3V0OwotICAgIG1fdmVyYm9zZSA9IG9w
dGlvbnMudmVyYm9zZTsKLSAgICBtX2djQmV0d2VlblRlc3RzID0gb3B0aW9ucy5nY0JldHdlZW5U
ZXN0czsKLSAgICBtX3Nob3VsZER1bXBQaXhlbHNGb3JBbGxUZXN0cyA9IG9wdGlvbnMuc2hvdWxk
RHVtcFBpeGVsc0ZvckFsbFRlc3RzOwotICAgIG1fZm9yY2VDb21wbGV4VGV4dCA9IG9wdGlvbnMu
Zm9yY2VDb21wbGV4VGV4dDsKLSAgICBtX3Nob3VsZFVzZUFjY2VsZXJhdGVkRHJhd2luZyA9IG9w
dGlvbnMuc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nOwotICAgIG1fc2hvdWxkVXNlUmVtb3Rl
TGF5ZXJUcmVlID0gb3B0aW9ucy5zaG91bGRVc2VSZW1vdGVMYXllclRyZWU7Ci0gICAgbV9wYXRo
cyA9IG9wdGlvbnMucGF0aHM7Ci0KLSAgICBpZiAob3B0aW9ucy5wcmludFN1cHBvcnRlZEZlYXR1
cmVzKSB7CisgICAgYm9vbCBwcmludFN1cHBvcnRlZEZlYXR1cmVzID0gZmFsc2U7CisKKyAgICBm
b3IgKGludCBpID0gMTsgaSA8IGFyZ2M7ICsraSkgeworICAgICAgICBzdGQ6OnN0cmluZyBhcmd1
bWVudChhcmd2W2ldKTsKKworICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0tdGltZW91dCIgJiYg
aSArIDEgPCBhcmdjKSB7CisgICAgICAgICAgICBtX2xvbmdUaW1lb3V0ID0gYXRvaShhcmd2Wysr
aV0pOworICAgICAgICAgICAgLy8gU2NhbGUgdXAgdGhlIHNob3J0IHRpbWVvdXQgdG8gbWF0Y2gu
CisgICAgICAgICAgICBtX3Nob3J0VGltZW91dCA9IGRlZmF1bHRTaG9ydFRpbWVvdXQgKiBtX2xv
bmdUaW1lb3V0IC8gZGVmYXVsdExvbmdUaW1lb3V0OworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0tbm8tdGltZW91dCIpIHsKKyAg
ICAgICAgICAgIG1fdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIgPSBmYWxzZTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFyZ3VtZW50ID09ICItLW5v
LXRpbWVvdXQtYXQtYWxsIikgeworICAgICAgICAgICAgbV91c2VXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lciA9IGZhbHNlOworICAgICAgICAgICAgbV9mb3JjZU5vVGltZW91dCA9IHRydWU7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChhcmd1bWVudCA9PSAi
LS12ZXJib3NlIikgeworICAgICAgICAgICAgbV92ZXJib3NlID0gdHJ1ZTsKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChhcmd1bWVudCA9PSAiLS1nYy1iZXR3
ZWVuLXRlc3RzIikgeworICAgICAgICAgICAgbV9nY0JldHdlZW5UZXN0cyA9IHRydWU7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0t
cGl4ZWwtdGVzdHMiIHx8IGFyZ3VtZW50ID09ICItcCIpIHsKKyAgICAgICAgICAgIG1fc2hvdWxk
RHVtcFBpeGVsc0ZvckFsbFRlc3RzID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CisgICAgICAgIGlmIChhcmd1bWVudCA9PSAiLS1wcmludC1zdXBwb3J0ZWQtZmVhdHVy
ZXMiKSB7CisgICAgICAgICAgICBwcmludFN1cHBvcnRlZEZlYXR1cmVzID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChhcmd1bWVudCA9PSAiLS1jb21w
bGV4LXRleHQiKSB7CisgICAgICAgICAgICBtX2ZvcmNlQ29tcGxleFRleHQgPSB0cnVlOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFyZ3VtZW50ID09ICIt
LWFjY2VsZXJhdGVkLWRyYXdpbmciKSB7CisgICAgICAgICAgICBtX3Nob3VsZFVzZUFjY2VsZXJh
dGVkRHJhd2luZyA9IHRydWU7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoYXJndW1lbnQgPT0gIi0tcmVtb3RlLWxheWVyLXRyZWUiKSB7CisgICAgICAgICAg
ICBtX3Nob3VsZFVzZVJlbW90ZUxheWVyVHJlZSA9IHRydWU7CisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgfQorCisKKyAgICAgICAgLy8gU2tpcCBhbnkgb3RoZXIgYXJndW1lbnRzIHRo
YXQgYmVnaW4gd2l0aCAnLS0nLgorICAgICAgICBpZiAoYXJndW1lbnQubGVuZ3RoKCkgPj0gMiAm
JiBhcmd1bWVudFswXSA9PSAnLScgJiYgYXJndW1lbnRbMV0gPT0gJy0nKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgbV9wYXRocy5wdXNoX2JhY2soYXJndW1lbnQpOworICAgIH0K
KworICAgIGlmIChwcmludFN1cHBvcnRlZEZlYXR1cmVzKSB7CiAgICAgICAgIC8vIEZJWE1FOiBP
biBXaW5kb3dzLCBEdW1wUmVuZGVyVHJlZSB1c2VzIHRoaXMgdG8gZXhwb3NlIHdoZXRoZXIgaXQg
c3VwcG9ydHMgM2QKICAgICAgICAgLy8gdHJhbnNmb3JtcyBhbmQgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcuIFdoZW4gd2Ugc3VwcG9ydCB0aG9zZSBmZWF0dXJlcywgd2UKICAgICAgICAgLy8gc2hv
dWxkIG1hdGNoIERSVCdzIGJlaGF2aW9yLgpAQCAtMzExLDEwICszNTgsMTIgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAg
IG1fY29udGV4dC5hZG9wdChXS0NvbnRleHRDcmVhdGVXaXRoSW5qZWN0ZWRCdW5kbGVQYXRoKGlu
amVjdGVkQnVuZGxlUGF0aCgpKSk7CiAgICAgbV9nZW9sb2NhdGlvblByb3ZpZGVyID0gYWRvcHRQ
dHIobmV3IEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrKG1fY29udGV4dC5nZXQoKSkpOwogCisjaWYg
IVBMQVRGT1JNKElPUykKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPiAxMDgwCiAgICAgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNzKG1f
Y29udGV4dC5nZXQoKSwgdHJ1ZSk7CiAgICAgV0tDb250ZXh0U2V0UHJvY2Vzc01vZGVsKG1fY29u
dGV4dC5nZXQoKSwga1dLUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXMpOwog
I2VuZGlmCisjZW5kaWYKIAogICAgIGlmIChjb25zdCBjaGFyKiBkdW1wUmVuZGVyVHJlZVRlbXAg
PSBsaWJyYXJ5UGF0aEZvclRlc3RpbmcoKSkgewogICAgICAgICBTdHJpbmcgdGVtcG9yYXJ5Rm9s
ZGVyID0gU3RyaW5nOjpmcm9tVVRGOChkdW1wUmVuZGVyVHJlZVRlbXApOwpAQCAtMzM3LDcgKzM4
NiwxMCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpOwogCiAgICAgV0tD
b250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnRWMSBpbmplY3RlZEJ1bmRsZUNsaWVudCA9IHsKLSAg
ICAgICAgeyAxLCB0aGlzIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIGtXS0NvbnRleHRJbmpl
Y3RlZEJ1bmRsZUNsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICAgICAgdGhpcworICAgICAg
ICB9LAogICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSwKICAgICAg
ICAgZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSwKICAgICAg
ICAgMCAvLyBnZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEKQEAgLTM3Miw3
ICs0MjQsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25z
KFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQogewogICAgIG1fbWFpbldlYlZpZXcgPSBhZG9wdFB0
cihuZXcgUGxhdGZvcm1XZWJWaWV3KG1fY29udGV4dC5nZXQoKSwgbV9wYWdlR3JvdXAuZ2V0KCks
IDAsIG9wdGlvbnMpKTsKICAgICBXS1BhZ2VVSUNsaWVudFYyIHBhZ2VVSUNsaWVudCA9IHsKLSAg
ICAgICAgeyAyLCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
IGtXS1BhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uLAorICAgICAgICAgICAgbV9tYWluV2ViVmll
dy5nZXQoKQorICAgICAgICB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xv
c2UKQEAgLTQ2NSw3ICs1MjAsMTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmll
d1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQogICAgIFdLUGFnZVNldFBhZ2VM
b2FkZXJDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZUxvYWRlckNsaWVudC5iYXNl
KTsKIAogICAgIFdLUGFnZVBvbGljeUNsaWVudFYxIHBhZ2VQb2xpY3lDbGllbnQgPSB7Ci0gICAg
ICAgIHsgMSwgdGhpcyB9LAorICAgICAgICB7CisgICAgICAgICAgICBrV0tQYWdlUG9saWN5Q2xp
ZW50Q3VycmVudFZlcnNpb24sCisgICAgICAgICAgICB0aGlzCisgICAgICAgIH0sCiAgICAgICAg
IDAsIC8vIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25fZGVwcmVjYXRlZEZvclVzZVdp
dGhWMAogICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24KICAgICAg
ICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDIyYTBhZGI0ZDQ0MjQ4
NDYzMjIwN2IyZmZlYWUwMmY0YTM4M2VhZjguLjEwMDMxYTE3NmEzNjQzY2JjNDExYmQ1N2E1NTA0
YmJlMmQ2NzIzMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAg
LTI2LDkgKzI2LDkgQEAKICNpZm5kZWYgVGVzdENvbnRyb2xsZXJfaAogI2RlZmluZSBUZXN0Q29u
dHJvbGxlcl9oCiAKKyNpbmNsdWRlICJHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oIgogI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlTWFuYWdl
ci5oIgotI2luY2x1ZGUgPEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0Mi9XS1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDJjY2ZmMDc0
NDMwMjMxM2U1ZGZjNjM3OGM3NDE4N2Y5Yjk3ZTkzNDUuLmNhYzJiYThiODE1YzQ0MzM4YjUwOTdk
MGNlYjZjMjBmZGVlOWIyMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRp
b24uY3BwCkBAIC00Miw3ICs0Miw5IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
CiAjaWYgUExBVEZPUk0oTUFDKQorI2lmICFQTEFURk9STShJT1MpCiAjaW5jbHVkZSA8Q2FyYm9u
L0NhcmJvbi5oPgorI2VuZGlmCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VQcml2YXRlTWFjLmg+
CiAjZW5kaWYKIApAQCAtMTI5LDcgKzEzMSw3IEBAIHN0YXRpYyBib29sIHNob3VsZExvZ0ZyYW1l
TG9hZERlbGVnYXRlcyhjb25zdCBjaGFyKiBwYXRoT3JVUkwpCiAgICAgcmV0dXJuIHN0cnN0cihw
YXRoT3JVUkwsICJsb2FkaW5nLyIpOwogfQogCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKSAmJiAhUExBVEZPUk0oSU9TKQogc3RhdGljIGJvb2wgc2hvdWxkT3Bl
bldlYkluc3BlY3Rvcihjb25zdCBjaGFyKiBwYXRoT3JVUkwpCiB7CiAgICAgcmV0dXJuIHN0cnN0
cihwYXRoT3JVUkwsICJpbnNwZWN0b3IvIikgfHwgc3Ryc3RyKHBhdGhPclVSTCwgImluc3BlY3Rv
clxcIik7CkBAIC0yMjYsNyArMjI4LDcgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkK
ICAgICBpZiAobV9lcnJvcikKICAgICAgICAgZ290byBlbmQ7CiAKLSNpZiBFTkFCTEUoSU5TUEVD
VE9SKQorI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKHNo
b3VsZE9wZW5XZWJJbnNwZWN0b3IobV9wYXRoT3JVUkwuY19zdHIoKSkpCiAgICAgICAgIFdLSW5z
cGVjdG9yU2hvdyhXS1BhZ2VHZXRJbnNwZWN0b3IoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1h
aW5XZWJWaWV3KCktPnBhZ2UoKSkpOwogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpICAgICAg
ICAKQEAgLTI1MSw3ICsyNTMsNyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2UoKQogICAg
IGR1bXBSZXN1bHRzKCk7CiAKIGVuZDoKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQorI2lmIEVOQUJM
RShJTlNQRUNUT1IpICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1fZ290SW5pdGlhbFJlc3Bv
bnNlKQogICAgICAgICBXS0luc3BlY3RvckNsb3NlKFdLUGFnZUdldEluc3BlY3RvcihUZXN0Q29u
dHJvbGxlcjo6c2hhcmVkKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpKSk7CiAjZW5kaWYgLy8gRU5B
QkxFKElOU1BFQ1RPUikKQEAgLTY3Niw3ICs2NzgsNyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+
IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVk
QgogICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VO
YW1lLCAiU2VjdXJlRXZlbnRJbnB1dElzRW5hYmxlZCIpKSB7Ci0jaWYgUExBVEZPUk0oTUFDKQor
I2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKICAgICAgICAgV0tSZXRhaW5QdHI8
V0tCb29sZWFuUmVmPiByZXN1bHQoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKElzU2VjdXJlRXZl
bnRJbnB1dEVuYWJsZWQoKSkpOwogI2Vsc2UKICAgICAgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFu
UmVmPiByZXN1bHQoQWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKGZhbHNlKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDliMzdmZWMxZTc4NWFiMjZiMjcwMDU1MzkwYTZi
OWFjMGY0MjUwYWEuLmE5ZTBiOTg2YzcyY2ViMzZhMWNkMmE0MTJmNzAzMzlmMDgzNjNhODEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVz
dFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMSw5ICsyMSwzNiBAQAogLyog
RW5kIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEJ1aWxkRmls
ZSBzZWN0aW9uICovCisJCTBGMjIwNUNFMTgzRDRCN0QwMDhFN0U1RSAvKiBGb3VuZGF0aW9uLmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMjIwNUNEMTgzRDRCN0QwMDhFN0U1RSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsK
KwkJMEYyMjA1RDAxODNENEI3RDAwOEU3RTVFIC8qIENvcmVHcmFwaGljcy5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIyMDVDRjE4
M0Q0QjdEMDA4RTdFNUUgLyogQ29yZUdyYXBoaWNzLmZyYW1ld29yayAqLzsgfTsKKwkJMEYyMjA1
RDIxODNENEI3RDAwOEU3RTVFIC8qIFVJS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjIwNUQxMTgzRDRCN0QwMDhFN0U1RSAv
KiBVSUtpdC5mcmFtZXdvcmsgKi87IH07CisJCTBGMjIwNUZDMTgzRDRDNTgwMDhFN0U1RSAvKiBF
dmVudFNlbmRlclByb3h5SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZGRjg5MkExODNDNENERTAwRUEwMzlFIC8qIEV2ZW50U2VuZGVyUHJveHlJ
T1MubW0gKi87IH07CisJCTBGMjIwNUZEMTgzRDRDNTgwMDhFN0U1RSAvKiBtYWluSU9TLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRjg5MzAxODND
NTAxNDAwRUEwMzlFIC8qIG1haW5JT1MubW0gKi87IH07CisJCTBGMjIwNUZFMTgzRDRDNTgwMDhF
N0U1RSAvKiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGODkyQzE4M0M0RUVEMDBFQTAzOUUgLyogUGxhdGZvcm1X
ZWJWaWV3SU9TLm1tICovOyB9OworCQkwRjIyMDVGRjE4M0Q0QzU4MDA4RTdFNUUgLyogVGVzdENv
bnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkZGODkyRDE4M0M0RUVEMDBFQTAzOUUgLyogVGVzdENvbnRyb2xsZXJJT1MubW0gKi87
IH07CisJCTBGMjIwNjAwMTgzRDRDNUIwMDhFN0U1RSAvKiBUZXN0SW52b2NhdGlvbkNHLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTE5MjA0MTMz
M0U0RjgwMDMwMTFEQyAvKiBUZXN0SW52b2NhdGlvbkNHLmNwcCAqLzsgfTsKKwkJMEYyMjA2MDEx
ODNENEM2RTAwOEU3RTVFIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIyRkI0MTEzRkRBMENEMDA0MUFC
Q0MgLyogQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcCAqLzsgfTsKKwkJMEYyMjA2MDIxODNENEM2
RTAwOEU3RTVFIC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RDc1OEU1MTYwQkVDREMwMDI2ODQ3MiAv
KiBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgKi87IH07CisJCTBGMjIwNjAzMTgzRDRDNkUw
MDhFN0U1RSAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjJGQjQ0MTNGREEwRUEwMDQxQUJDQyAvKiBQaXhlbER1
bXBTdXBwb3J0LmNwcCAqLzsgfTsKKwkJMEYyMjA2MDQxODNENEM2RTAwOEU3RTVFIC8qIFRlc3RD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDNzkzNDMwMTE4RjdGMTkwMDVFQThFMiAvKiBUZXN0Q29udHJvbGxlci5jcHAgKi87IH07
CisJCTBGMjIwNjA1MTgzRDRDNkUwMDhFN0U1RSAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q3RDJGNzExOTIxMjc4
MDA2REI3RUUgLyogVGVzdEludm9jYXRpb24uY3BwICovOyB9OworCQkwRjIyMDYwNjE4M0Q0QzZF
MDA4RTdFNUUgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8q
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJMEYyMjA2MDcxODNENEM2RTAw
OEU3RTVFIC8qIFdvcmtRdWV1ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyOUZDNUUxNjI3MDg5NjAwRjY2RDhCIC8qIFdvcmtRdWV1
ZU1hbmFnZXIuY3BwICovOyB9OwogCQkwRjUxNjlDQjE0NDUyMjJEMDBFMEE5RDcgLyogV2ViS2l0
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNTE2OUNBMTQ0NTIyMkQwMEUwQTlENyAvKiBXZWJLaXQuZnJhbWV3b3JrICovOyB9Owog
CQkwRjUxNjlDQzE0NDUyMjJEMDBFMEE5RDcgLyogV2ViS2l0LmZyYW1ld29yayBpbiBGcmFtZXdv
cmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE2OUNBMTQ0NTIyMkQw
MEUwQTlENyAvKiBXZWJLaXQuZnJhbWV3b3JrICovOyB9OworCQkwRjVBRThGNDE4NEVCRDdFMDBG
NkQyRjMgLyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTE4NjIxMUQxNUQ1NDAw
MkVCQzAxIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi87IH07CiAJ
CTBGQUY2N0VGMTYwRDZDMTAwMDc3Q0IyQiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkFGNjdFRTE2MEQ2
QzEwMDA3N0NCMkIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTWFjLm1tICovOyB9OworCQkwRkZGODkx
QzE4M0M0MDIwMDBFQTAzOUUgLyogV2ViQXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRjg5MUIxODNDNDAyMDAw
RUEwMzlFIC8qIFdlYkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbSAqLzsgfTsKKwkJMEZGRjg5MUUx
ODNDNDA4MTAwRUEwMzlFIC8qIEFjdGl2YXRlRm9udHNJT1MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGODkxRDE4M0M0MDgxMDBFQTAzOUUgLyog
QWN0aXZhdGVGb250c0lPUy5tbSAqLzsgfTsKKwkJMEZGRjg5MjAxODNDNDExRjAwRUEwMzlFIC8q
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGODkxRjE4M0M0MTFGMDBFQTAzOUUgLyogQWNjZXNzaWJp
bGl0eVVJRWxlbWVudElPUy5tbSAqLzsgfTsKKwkJMEZGRjg5MjIxODNDNDVGRjAwRUEwMzlFIC8q
IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRjg5MjExODNDNDVGRjAwRUEwMzlFIC8qIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VySU9TLm1tICovOyB9OworCQkwRkZGODkyNDE4M0M0QTg0MDBFQTAzOUUg
LyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGODkyMzE4M0M0QTg0MDBFQTAzOUUgLyogQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gKi87IH07CisJCTBGRkY4OTI3MTgzQzRBRTQwMEVBMDM5
RSAvKiBJbmplY3RlZEJ1bmRsZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRkY4OTI1MTgzQzRBRTQwMEVBMDM5RSAvKiBJbmplY3RlZEJ1bmRs
ZUlPUy5tbSAqLzsgfTsKKwkJMEZGRjg5MjgxODNDNEFFNDAwRUEwMzlFIC8qIEluamVjdGVkQnVu
ZGxlUGFnZUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRkY4OTI2MTgzQzRBRTQwMEVBMDM5RSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW0g
Ki87IH07CisJCTBGRkY4OTJCMTgzQzRDREUwMEVBMDM5RSAvKiBFdmVudFNlbmRlclByb3h5SU9T
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRjg5
MkExODNDNENERTAwRUEwMzlFIC8qIEV2ZW50U2VuZGVyUHJveHlJT1MubW0gKi87IH07CisJCTBG
RkY4OTJFMTgzQzRFRUQwMEVBMDM5RSAvKiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGODkyQzE4M0M0RUVEMDBF
QTAzOUUgLyogUGxhdGZvcm1XZWJWaWV3SU9TLm1tICovOyB9OworCQkwRkZGODkyRjE4M0M0RUVE
MDBFQTAzOUUgLyogVGVzdENvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkZGODkyRDE4M0M0RUVEMDBFQTAzOUUgLyogVGVzdENv
bnRyb2xsZXJJT1MubW0gKi87IH07CisJCTBGRkY4OTMxMTgzQzUwMTQwMEVBMDM5RSAvKiBtYWlu
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZG
Rjg5MzAxODNDNTAxNDAwRUEwMzlFIC8qIG1haW5JT1MubW0gKi87IH07CiAJCTI2RDc1OEU3MTYw
QkVDREQwMDI2ODQ3MiAvKiBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkQ3NThFNTE2MEJFQ0RDMDAyNjg0
NzIgLyogR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwICovOyB9OwogCQkyOTIxMEVBRTE0NENB
Q0I3MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTIxMEVBOTE0NENBQ0IyMDA4MzVCQjUg
LyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgKi87IH07CiAJCTI5MjEwRUIwMTQ0Q0FDQkQw
MDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTIxMEVBMjE0NENBQUE1MDA4MzVCQjUgLyog
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwICovOyB9OwpAQCAtNTksMTggKzg2LDE1IEBACiAJ
CTY1RUI4NUEwMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3RpdmF0ZUZvbnRzLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFQjg1OUYxMUVDNjdDQzAwMzRE
MzAwIC8qIEFjdGl2YXRlRm9udHMubW0gKi87IH07CiAJCTgwMzRDNjYyMTQ4NzYzNjQwMEFDMzJF
OSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgwMzRDNjYxMTQ4NzYzNjQwMEFDMzJFOSAvKiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJODA5NzMzOEExNDg3NEE1QTAwODE1
NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODA5NzMzODkxNDg3NEE1QTAwODE1NkQ5
IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tICovOyB9OwotCQk4NDFDQzAw
RjE4MTE4NUJGMDA0MkU5QjYgLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDFDQzAwRDE4MTE4NUJGMDA0MkU5QjYgLyogT3B0aW9u
cy5jcHAgKi87IH07CiAJCThDQ0RBODIzMTUxQTU3MEIwMDAzRjkzNyAvKiBTYW1wbGVGb250LnNm
b250IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Q0NE
QTgyMjE1MUE1NzBCMDAwM0Y5MzcgLyogU2FtcGxlRm9udC5zZm9udCAqLzsgfTsKIAkJQTY2NEJD
NzYxM0E1RjNBOTAwOUE3QjI1IC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjMwRTE2MTM4Qzc4
QkYwMEJDQ0ZDQSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIgKi87IH07CiAJCUJDMTRF
NERCMTIwRTAyRDAwMDgyNkMwQyAvKiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNEU0RDkxMjBFMDJEMDAwODI2QzBDIC8q
IEdDQ29udHJvbGxlci5jcHAgKi87IH07CiAJCUJDMTRFNEVBMTIwRTAzRDgwMDgyNkMwQyAvKiBK
U0dDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzE0RTRFODEyMEUwM0Q4MDA4MjZDMEMgLyogSlNHQ0NvbnRyb2xsZXIuY3BwICov
OyB9OwotCQlCQzI1MTkzRTExRDE1RDhCMDAyRUJDMDEgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3OTM0QTQxMTkw
NjU4NDAwNUVBOEUyIC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKIAkJQkMyNTE5M0YxMUQxNUQ4
QjAwMkVCQzAxIC8qIFdlYktpdDIuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3OTM0QUIxMTkwNjU4QzAwNUVBOEUyIC8qIFdlYktp
dDIuZnJhbWV3b3JrICovOyB9OwogCQlCQzI1MTk0MDExRDE1RDhCMDAyRUJDMDEgLyogSmF2YVNj
cmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNEQTJCOTkxMTkxMDUxRjAwQzNCQzQ3IC8qIEphdmFTY3JpcHRDb3JlLmZy
YW1ld29yayAqLzsgfTsKIAkJQkMyNTFBM0UxMUQxNjgzMTAwMkVCQzAxIC8qIEluamVjdGVkQnVu
ZGxlTWFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzI1MTg0NjExRDE1NzY3MDAyRUJDMDEgLyogSW5qZWN0ZWRCdW5kbGVNYWluLmNwcCAqLzsg
fTsKIAkJQkM3OTM0MDAxMThGN0M4NDAwNUVBOEUyIC8qIG1haW4ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc5MzNGRjExOEY3Qzg0MDA1RUE4RTIg
LyogbWFpbi5tbSAqLzsgfTsKIAkJQkM3OTM0MzExMThGN0YxOTAwNUVBOEUyIC8qIFRlc3RDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNzkzNDMwMTE4RjdGMTkwMDVFQThFMiAvKiBUZXN0Q29udHJvbGxlci5jcHAgKi87IH07Ci0J
CUJDNzkzNEE1MTE5MDY1ODQwMDVFQThFMiAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc5MzRBNDExOTA2NTg0MDA1
RUE4RTIgLyogQ29jb2EuZnJhbWV3b3JrICovOyB9OwogCQlCQzc5MzRBQzExOTA2NThDMDA1RUE4
RTIgLyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzc5MzRBQjExOTA2NThDMDA1RUE4RTIgLyogV2ViS2l0Mi5mcmFt
ZXdvcmsgKi87IH07CiAJCUJDNzkzNEU4MTE5MDY4NDYwMDVFQThFMiAvKiBQbGF0Zm9ybVdlYlZp
ZXdNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Qzc5MzRFNzExOTA2ODQ2MDA1RUE4RTIgLyogUGxhdGZvcm1XZWJWaWV3TWFjLm1tICovOyB9Owog
CQlCQzhDNzk1QzExRDI3ODVEMDA0NTM1QTEgLyogVGVzdENvbnRyb2xsZXJNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzhDNzk1QjExRDI3ODVE
MDA0NTM1QTEgLyogVGVzdENvbnRyb2xsZXJNYWMubW0gKi87IH07CkBAIC04OCwxMiArMTEyLDE4
IEBACiAJCUMwQ0U3MjBCMTI0N0M5MzMwMEJDMEVDNCAvKiBUZXN0UnVubmVyTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDRTcyMEExMjQ3Qzkz
MzAwQkMwRUM0IC8qIFRlc3RSdW5uZXJNYWMubW0gKi87IH07CiAJCUUxMzJBQTNBMTdDRDVGMTAw
MDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzMkFBMzgxN0NENUYxMDAwNjExREYw
IC8qIFdlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8ubW0gKi87IH07CiAJCUUxMzJBQTNEMTdD
RTc3NkYwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRXZlbnQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMyQUEzQjE3Q0U3NzZGMDA2MTFERjAg
LyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tICovOyB9OwotCQlFMUJBNjcxRTE3NDJEQTZBMDBD
MjAyNTEgLyogQ2FyYm9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkE2NzFEMTc0MkRBNUEwMEMyMDI1MSAvKiBDYXJib24uZnJh
bWV3b3JrICovOyB9OwogCQlFMUM2NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3Mu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJD
MTE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0gKi87IH07CiAJCUUxQzY0MkM2MTdD
QkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY0MkM0MTdDQkNENEMwMEQ2
NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSAqLzsgfTsKIC8qIEVuZCBQQlhC
dWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2Vj
dGlvbiAqLworCQkwRjdBQjQxQTE4NEVCN0VGMDBCNDNFNUQgLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVy
UG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwor
CQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gQkMyNTE4NjExMUQx
NUQ1NDAwMkVCQzAxOworCQkJcmVtb3RlSW5mbyA9IFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1
bmRsZTsKKwkJfTsKIAkJQkMyNTE5NDExMUQxNUQ5NDAwMkVCQzAxIC8qIFBCWENvbnRhaW5lckl0
ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRh
aW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAq
LzsKQEAgLTExMSw4ICsxNDEsMjYgQEAKIC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KKwkJMEYyMjA1
Q0IxODNENEI3QzAwOEU3RTVFIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAuYXBwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmFwcGxpY2F0aW9u
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXRUZXN0UnVubmVyQXBwLmFwcDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMEYyMjA1Q0QxODNENEI3RDAwOEU3
RTVFIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBGb3VuZGF0aW9u
LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRm91bmRhdGlvbi5m
cmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworCQkwRjIyMDVDRjE4M0Q0QjdEMDA4
RTdFNUUgLyogQ29yZUdyYXBoaWNzLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZUdy
YXBoaWNzLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUdy
YXBoaWNzLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CisJCTBGMjIwNUQxMTgz
RDRCN0QwMDhFN0U1RSAvKiBVSUtpdC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFVJS2l0
LmZyYW1ld29yazsgcGF0aCA9IExpYnJhcnkvRnJhbWV3b3Jrcy9VSUtpdC5mcmFtZXdvcms7IHNv
dXJjZVRyZWUgPSBERVZFTE9QRVJfRElSOyB9OworCQkwRjIyMDVENTE4M0Q0QjdEMDA4RTdFNUUg
LyogV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0OyBwYXRoID0gIldlYktp
dFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYyMjA1RTYxODNENEI3RTAwOEU3RTVFIC8qIFhDVGVzdC5mcmFtZXdvcmsgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1l
d29yazsgbmFtZSA9IFhDVGVzdC5mcmFtZXdvcms7IHBhdGggPSBMaWJyYXJ5L0ZyYW1ld29ya3Mv
WENUZXN0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IERFVkVMT1BFUl9ESVI7IH07CiAJCTBGNTE2
OUNBMTQ0NTIyMkQwMEUwQTlENyAvKiBXZWJLaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IHBhdGgg
PSBXZWJLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQkwRkFGNjdFRTE2MEQ2QzEwMDA3N0NCMkIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkZGODkxNzE4M0MzMjJFMDBF
QTAzOUUgLyogaU9TLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IGlPUy54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZGRjg5MUIxODNDNDAyMDAwRUEwMzlFIC8qIFdlYkFy
Y2hpdmVEdW1wU3VwcG9ydElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFdlYkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbTsgcGF0aCA9IGlvcy9XZWJBcmNoaXZl
RHVtcFN1cHBvcnRJT1MubW07IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJMEZGRjg5
MUQxODNDNDA4MTAwRUEwMzlFIC8qIEFjdGl2YXRlRm9udHNJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBY3RpdmF0ZUZvbnRzSU9TLm1tOyBwYXRoID0gaW9z
L0FjdGl2YXRlRm9udHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkY4
OTFGMTgzQzQxMUYwMEVBMDM5RSAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dElPUy5tbTsgcGF0aCA9IGlvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRkZGODkyMTE4M0M0NUZGMDBFQTAzOUUgLyogQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbTsgcGF0aCA9IGlvcy9BY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZG
Rjg5MjMxODNDNEE4NDAwRUEwMzlFIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJJT1MubW07IHBhdGggPSBpb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRkY4OTI1MTgzQzRBRTQwMEVBMDM5RSAvKiBJ
bmplY3RlZEJ1bmRsZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IEluamVjdGVkQnVuZGxlSU9TLm1tOyBwYXRoID0gaW9zL0luamVjdGVkQnVuZGxlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkZGODkyNjE4M0M0QUU0MDBFQTAzOUUg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gSW5qZWN0ZWRCdW5kbGVQYWdlSU9TLm1tOyBwYXRoID0gaW9zL0luamVjdGVk
QnVuZGxlUGFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZGRjg5MkEx
ODNDNENERTAwRUEwMzlFIC8qIEV2ZW50U2VuZGVyUHJveHlJT1MubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBFdmVudFNlbmRlclByb3h5SU9TLm1tOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGRkY4OTJDMTgzQzRFRUQwMEVBMDM5RSAvKiBQbGF0Zm9ybVdlYlZp
ZXdJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQbGF0Zm9y
bVdlYlZpZXdJT1MubW07IHBhdGggPSBpb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRkZGODkyRDE4M0M0RUVEMDBFQTAzOUUgLyogVGVzdENv
bnRyb2xsZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBU
ZXN0Q29udHJvbGxlcklPUy5tbTsgcGF0aCA9IGlvcy9UZXN0Q29udHJvbGxlcklPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZGRjg5MzAxODNDNTAxNDAwRUEwMzlFIC8qIG1h
aW5JT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBtYWluSU9T
Lm1tOyBwYXRoID0gaW9zL21haW5JT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI2RDc1OEU1MTYwQkVDREMwMDI2ODQ3MiAvKiBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW9sb2NhdGlvblByb3ZpZGVy
TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2RDc1OEU2MTYwQkVDREQw
MDI2ODQ3MiAvKiBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyOTIxMEVBMjE0NENBQUE1MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIw
LDggKzE2OCw4IEBACiAJCTI5MjEwRUE4MTQ0Q0FCODgwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTIxMEVBOTE0NENBQ0Iy
MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkyMTBFQUExNDRDQUNCMjAwODM1QkI1IC8qIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyOTIxMEVB
QjE0NENBQ0IyMDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW07IHBhdGggPSBtYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkyMTBFQUIxNDRDQUNCMjAwODM1QkI2IC8qIEFjY2Vzc2li
aWxpdHlDb21tb25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBBY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tOyBwYXRoID0gbWFjL0FjY2Vzc2liaWxpdHlDb21t
b25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5MjEwRUFCMTQ0Q0FDQjIw
MDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjkyMTBFQUIxNDRDQUNCMjAwODM1QkI2IC8qIEFj
Y2Vzc2liaWxpdHlDb21tb25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBBY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyOTIxMEVCMTE0NENBQ0Q0MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTIxMEVCMjE0
NENBQ0Q0MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkyMTBFQjMxNDRDQUNENDAwODM1QkI1IC8qIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW07IHBhdGggPSBtYWMvQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzYs
NyArMTg0LDcgQEAKIAkJMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyUmFuZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktp
dFRlc3RSdW5uZXIvSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE3IC8q
IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXIvSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTI5QThGQ0U0MTQ1RjA0
NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZU1hYy5tbTsgcGF0aCA9IG1hYy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOUE4RkNFNDE0NUYwNDY0MDA5MDQ1QTYg
LyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMTBCRTBGMTVCQTAxMTQwMEQyMTZBQyAv
KiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRp
b25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTY0QzhFRjE1RDFB
REExMDBFRjFGRTAgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzhENDQyMjEzMzQ2RDAwMDA2QTc3N0IgLyogY29u
ZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTcyLDExICsyMjAsOSBAQAogCQk2NTEwQTc4MTExRUM2NDM4MDA0MTA4NjcgLyogV2Vi
S2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGY7
IHBhdGggPSBmb250cy9XZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0Zjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjVFQjg1OUQxMUVDNjdDQzAwMzREMzAwIC8qIEFjdGl2YXRlRm9udHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWN0aXZhdGVGb250cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUVCODU5RjExRUM2N0NDMDAzNEQzMDAgLyogQWN0
aXZhdGVGb250cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFj
dGl2YXRlRm9udHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgwMzRDNjYxMTQ4
NzYzNjQwMEFDMzJFOSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFj
Lm1tOyBwYXRoID0gbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MDM0QzY2MTE0ODc2MzY0MDBBQzMyRTkgLyogQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODA5NzMzODgxNDg3NEE1QTAwODE1NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg7IHBhdGggPSBtYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODA5NzMzODkx
NDg3NEE1QTAwODE1NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW07IHBhdGggPSBtYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg0MUNDMDBEMTgxMTg1QkYw
MDQyRTlCNiAvKiBPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NDFDQzAwRTE4
MTE4NUJGMDA0MkU5QjYgLyogT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThDQ0RBODIyMTUx
QTU3MEIwMDAzRjkzNyAvKiBTYW1wbGVGb250LnNmb250ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5h
bWUgPSBTYW1wbGVGb250LnNmb250OyBwYXRoID0gZm9udHMvU2FtcGxlRm9udC5zZm9udDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOERENzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIFdl
YktpdFRlc3RSdW5uZXIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsg
cGF0aCA9IFdlYktpdFRlc3RSdW5uZXI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCUJDMTRFNEQ4MTIwRTAyRDAwMDgyNkMwQyAvKiBHQ0NvbnRyb2xsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR0NDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xOTUsNyArMjQxLDYgQEAKIAkJQkM3OTM0MjcxMThGN0RBRjAwNUVB
OEUyIC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBh
dGggPSBEZWJ1Z1JlbGVhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDNzkzNDJGMTE4RjdGMTkwMDVFQThFMiAvKiBUZXN0Q29udHJvbGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzc5MzQzMDExOEY3RjE5MDA1RUE4RTIgLyogVGVzdENvbnRyb2xsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGVzdENvbnRyb2xsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzc5MzRBNDExOTA2NTg0MDA1RUE4
RTIgLyogQ29jb2EuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb2NvYS5mcmFtZXdvcms7
IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZyYW1ld29yazsgc291cmNl
VHJlZSA9IFNES1JPT1Q7IH07CiAJCUJDNzkzNEFCMTE5MDY1OEMwMDVFQThFMiAvKiBXZWJLaXQy
LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBwYXRoID0gV2ViS2l0Mi5mcmFtZXdvcms7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUJDNzkzNEREMTE5MDY2RUMwMDVFQThFMiAv
KiBQbGF0Zm9ybVdlYlZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxh
dGZvcm1XZWJWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNzkzNEU3MTE5
MDY4NDYwMDVFQThFMiAvKiBQbGF0Zm9ybVdlYlZpZXdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVdlYlZpZXdNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMzAsNyArMjc1LDYgQEAKIAkJRTEzMkFBMzkxN0NENUYxMDAw
NjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0luZm8uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMTMyQUEzQjE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0
VGVzdFJ1bm5lckV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTMyQUEzQzE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJFdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJBNjcxRDE3NDJEQTVBMDBDMjAyNTEgLyog
Q2FyYm9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ2FyYm9uLmZyYW1ld29yazsgcGF0
aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yazsgc291cmNlVHJl
ZSA9IFNES1JPT1Q7IH07CiAJCUUxQzY0MkMxMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFz
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvc2VBc0NsYXNz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2NDJDMjE3Q0JDQzczMDBENjZB
M0MgLyogUG9zZUFzQ2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9z
ZUFzQ2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNjQyQzQxN0NCQ0Q0
QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzgsMTQgKzI4MiwyMiBAQAogLyogRW5k
IFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVp
bGRQaGFzZSBzZWN0aW9uICovCisJCTBGMjIwNUM4MTgzRDRCN0MwMDhFN0U1RSAvKiBGcmFtZXdv
cmtzICovID0geworCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJMEYyMjA1RDAxODNENEI3
RDAwOEU3RTVFIC8qIENvcmVHcmFwaGljcy5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJ
CQkwRjIyMDVEMjE4M0Q0QjdEMDA4RTdFNUUgLyogVUlLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8sCisJCQkJMEYyMjA1Q0UxODNENEI3RDAwOEU3RTVFIC8qIEZvdW5kYXRpb24uZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCThERDc2RjlCMDQ4NkFBNzYwMEQ5NkI1RSAvKiBGcmFt
ZXdvcmtzICovID0gewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQkM3OTM0QTUxMTkw
NjU4NDAwNUVBOEUyIC8qIENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCUJD
REEyQjlBMTE5MTA1MUYwMEMzQkM0NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJh
bWV3b3JrcyAqLywKIAkJCQkwRjUxNjlDQjE0NDUyMjJEMDBFMEE5RDcgLyogV2ViS2l0LmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCUUxQkE2NzFFMTc0MkRBNkEwMEMyMDI1MSAvKiBD
YXJib24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJQkM3OTM0QUMxMTkwNjU4QzAw
NUVBOEUyIC8qIFdlYktpdDIuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yNTQsNyArMzA2LDYg
QEAKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCUJDMjUxOTNFMTFEMTVEOEIwMDJFQkMw
MSAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzI1MTk0MDExRDE1
RDhCMDAyRUJDMDEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8s
CiAJCQkJQTY2NEJDNzYxM0E1RjNBOTAwOUE3QjI1IC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5k
eWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCTBGNTE2OUNDMTQ0NTIyMkQwMEUwQTlENyAvKiBX
ZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCkBAIC0yNzIsOSArMzIzLDExIEBACiAJ
CQkJQkM5OUNCRjExMjA3NjQyRDAwRkRFRTc2IC8qIFNoYXJlZCAqLywKIAkJCQkwOEZCNzc5NUZF
ODQxNTVEQzAyQUFDMDcgLyogVGVzdFJ1bm5lciAqLywKIAkJCQlCQzI1MTgzNTExRDE1NzFEMDAy
RUJDMDEgLyogSW5qZWN0ZWRCdW5kbGUgKi8sCisJCQkJMEYyMjA1RDMxODNENEI3RDAwOEU3RTVF
IC8qIFdlYktpdFRlc3RSdW5uZXJBcHAgKi8sCiAJCQkJQkM3OTM0MDExMThGN0M4QTAwNUVBOEUy
IC8qIENvbmZpZ3VyYXRpb25zICovLAogCQkJCTA4RkI3NzlERkU4NDE1NURDMDJBQUMwNyAvKiBF
eHRlcm5hbCBGcmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMgKi8sCiAJCQkJQkMyNTE5NDQxMUQxNURC
RTAwMkVCQzAxIC8qIFJlc291cmNlcyAqLywKKwkJCQkwRjIyMDVDQzE4M0Q0QjdEMDA4RTdFNUUg
LyogRnJhbWV3b3JrcyAqLywKIAkJCQkxQUI2NzRBREZFOUQ1NEI1MTFDQTJDQkIgLyogUHJvZHVj
dHMgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFdlYktpdFRlc3RSdW5uZXI7CkBAIC0yODMsOCArMzM2
LDcgQEAKIAkJMDhGQjc3OTVGRTg0MTU1REMwMkFBQzA3IC8qIFRlc3RSdW5uZXIgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTg0MUNDMDBEMTgxMTg1QkYw
MDQyRTlCNiAvKiBPcHRpb25zLmNwcCAqLywKLQkJCQk4NDFDQzAwRTE4MTE4NUJGMDA0MkU5QjYg
LyogT3B0aW9ucy5oICovLAorCQkJCTBGRkY4OTI5MTgzQzRDRDYwMEVBMDM5RSAvKiBpb3MgKi8s
CiAJCQkJQkM5MTkyMDIxMzMzRTRDRDAwMzAxMURDIC8qIGNnICovLAogCQkJCUJDNzkzM0ZFMTE4
RjdDNzQwMDVFQThFMiAvKiBtYWMgKi8sCiAJCQkJNTMyMkZCNDExM0ZEQTBDRDAwNDFBQkNDIC8q
IEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgKi8sCkBAIC0zMTEsOCArMzYzLDYgQEAKIAkJMDhG
Qjc3OURGRTg0MTU1REMwMkFBQzA3IC8qIEV4dGVybmFsIEZyYW1ld29ya3MgYW5kIExpYnJhcmll
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJRTFCQTY3
MUQxNzQyREE1QTAwQzIwMjUxIC8qIENhcmJvbi5mcmFtZXdvcmsgKi8sCi0JCQkJQkM3OTM0QTQx
MTkwNjU4NDAwNUVBOEUyIC8qIENvY29hLmZyYW1ld29yayAqLywKIAkJCQlCQ0RBMkI5OTExOTEw
NTFGMDBDM0JDNDcgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovLAogCQkJCTQxMjMwRTE2
MTM4Qzc4QkYwMEJDQ0ZDQSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIgKi8sCiAJCQkJ
NDE4MTczMUIxMzhBRDM5RDAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oICovLApAQCAt
MzIyLDExICszNzIsNjQgQEAKIAkJCW5hbWUgPSAiRXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGli
cmFyaWVzIjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTBGMjIwNUNDMTgz
RDRCN0QwMDhFN0U1RSAvKiBGcmFtZXdvcmtzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQkwRjIyMDVDRDE4M0Q0QjdEMDA4RTdFNUUgLyogRm91bmRhdGlv
bi5mcmFtZXdvcmsgKi8sCisJCQkJMEYyMjA1Q0YxODNENEI3RDAwOEU3RTVFIC8qIENvcmVHcmFw
aGljcy5mcmFtZXdvcmsgKi8sCisJCQkJMEYyMjA1RDExODNENEI3RDAwOEU3RTVFIC8qIFVJS2l0
LmZyYW1ld29yayAqLywKKwkJCQkwRjIyMDVFNjE4M0Q0QjdFMDA4RTdFNUUgLyogWENUZXN0LmZy
YW1ld29yayAqLywKKwkJCSk7CisJCQluYW1lID0gRnJhbWV3b3JrczsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CisJCTBGMjIwNUQzMTgzRDRCN0QwMDhFN0U1RSAvKiBXZWJLaXRU
ZXN0UnVubmVyQXBwICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQkwRjIyMDVENDE4M0Q0QjdEMDA4RTdFNUUgLyogU3VwcG9ydGluZyBGaWxlcyAqLywKKwkJ
CSk7CisJCQlwYXRoID0gV2ViS2l0VGVzdFJ1bm5lckFwcDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CisJCTBGMjIwNUQ0MTgzRDRCN0QwMDhFN0U1RSAvKiBTdXBwb3J0aW5nIEZp
bGVzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkwRjIy
MDVENTE4M0Q0QjdEMDA4RTdFNUUgLyogV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxp
c3QgKi8sCisJCQkpOworCQkJbmFtZSA9ICJTdXBwb3J0aW5nIEZpbGVzIjsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTBGRkY4OTE4MTgzQzNFQ0QwMEVBMDM5RSAvKiBpb3Mg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTBGRkY4OTFG
MTgzQzQxMUYwMEVBMDM5RSAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICovLAorCQkJ
CTBGRkY4OTIzMTgzQzRBODQwMEVBMDM5RSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5t
bSAqLywKKwkJCQkwRkZGODkyMTE4M0M0NUZGMDBFQTAzOUUgLyogQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJJT1MubW0gKi8sCisJCQkJMEZGRjg5MUQxODNDNDA4MTAwRUEwMzlFIC8qIEFjdGl2YXRl
Rm9udHNJT1MubW0gKi8sCisJCQkJMEZGRjg5MUIxODNDNDAyMDAwRUEwMzlFIC8qIFdlYkFyY2hp
dmVEdW1wU3VwcG9ydElPUy5tbSAqLywKKwkJCQkwRkZGODkyNTE4M0M0QUU0MDBFQTAzOUUgLyog
SW5qZWN0ZWRCdW5kbGVJT1MubW0gKi8sCisJCQkJMEZGRjg5MjYxODNDNEFFNDAwRUEwMzlFIC8q
IEluamVjdGVkQnVuZGxlUGFnZUlPUy5tbSAqLywKKwkJCSk7CisJCQluYW1lID0gaW9zOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMEZGRjg5MjkxODNDNENENjAwRUEwMzlF
IC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MEZGRjg5MkExODNDNENERTAwRUEwMzlFIC8qIEV2ZW50U2VuZGVyUHJveHlJT1MubW0gKi8sCisJ
CQkJMEZGRjg5MzAxODNDNTAxNDAwRUEwMzlFIC8qIG1haW5JT1MubW0gKi8sCisJCQkJMEZGRjg5
MkMxODNDNEVFRDAwRUEwMzlFIC8qIFBsYXRmb3JtV2ViVmlld0lPUy5tbSAqLywKKwkJCQkwRkZG
ODkyRDE4M0M0RUVEMDBFQTAzOUUgLyogVGVzdENvbnRyb2xsZXJJT1MubW0gKi8sCisJCQkpOwor
CQkJbmFtZSA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTFBQjY3
NEFERkU5RDU0QjUxMUNBMkNCQiAvKiBQcm9kdWN0cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOERENzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIFdlYktp
dFRlc3RSdW5uZXIgKi8sCiAJCQkJQkMyNTE4NjIxMUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktpdFRl
c3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi8sCisJCQkJMEYyMjA1Q0IxODNENEI3QzAw
OEU3RTVFIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAuYXBwICovLAogCQkJKTsKIAkJCW5hbWUgPSBQ
cm9kdWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMzQsMTAgKzQzNyw4IEBA
CiAJCTI5QThGQ0UwMTQ1RjAzNUQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5ICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkyOTIxMEVBQjE0NENBQ0IyMDA4
MzVCQjYgLyogQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbSAqLywKIAkJCQkyOTIxMEVBMjE0NENB
QUE1MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwICovLAogCQkJCTI5MjEw
RUEzMTQ0Q0FBQTUwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oICovLAotCQkJ
CTgwMzRDNjYxMTQ4NzYzNjQwMEFDMzJFOSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5t
bSAqLywKIAkJCQk4MDk3MzM4ODE0ODc0QTVBMDA4MTU2RDkgLyogQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIuaCAqLywKIAkJCQk4MDk3MzM4OTE0ODc0QTVBMDA4MTU2RDkgLyogQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gKi8sCiAJCQkJMjkyMTBFQjExNDRDQUNE
NDAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmNwcCAqLywKQEAgLTM0NSwxMCAr
NDQ2LDggQEAKIAkJCQkyOTIxMEVCMzE0NENBQ0Q0MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJNYWMubW0gKi8sCiAJCQkJMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovLAogCQkJCTI5QThGQ0RGMTQ1RjAzNTgwMDkw
NDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmggKi8sCi0JCQkJMjlBOEZDRTQx
NDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gKi8s
CiAJCQkJMjkyMTBFQTkxNDRDQUNCMjAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwICovLAogCQkJCTI5MjEwRUFBMTQ0Q0FDQjIwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmggKi8sCi0JCQkJMjkyMTBFQUIxNDRDQUNCMjAwODM1QkI1IC8qIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IEFjY2Vzc2liaWxpdHk7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzY1LDYgKzQ2NCwxMCBAQAogCQk2NUVCODU5
RTExRUM2N0NDMDAzNEQzMDAgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQkyOTIxMEVBQjE0NENBQ0IyMDA4MzVCQjYgLyogQWNjZXNzaWJpbGl0
eUNvbW1vbk1hYy5tbSAqLywKKwkJCQk4MDM0QzY2MTE0ODc2MzY0MDBBQzMyRTkgLyogQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJNYWMubW0gKi8sCisJCQkJMjlBOEZDRTQxNDVGMDQ2NDAwOTA0NUE2
IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gKi8sCisJCQkJMjkyMTBFQUIx
NDRDQUNCMjAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gKi8sCiAJCQkJ
NUM0NUMzMEUxNzM5OEUyOTAwNzk3MTRFIC8qIFdlYkFyY2hpdmVEdW1wU3VwcG9ydE1hYy5tbSAq
LywKIAkJCQk2NUVCODU5RjExRUM2N0NDMDAzNEQzMDAgLyogQWN0aXZhdGVGb250cy5tbSAqLywK
IAkJCQlCQzhEQUQ3NzEzMTZEN0I5MDBFQzk2RkMgLyogSW5qZWN0ZWRCdW5kbGVNYWMubW0gKi8s
CkBAIC0zOTcsNiArNTAwLDcgQEAKIAkJCQlCQzk1MkMwQTExRjNCOTM5MDAzMzk4QjQgLyogQmlu
ZGluZ3MgKi8sCiAJCQkJQkMxNEU0RTAxMjBFMDJGOTAwODI2QzBDIC8qIENvbnRyb2xsZXJzICov
LAogCQkJCUJDOTUyRDNBMTFGM0JGMUYwMDMzOThCNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCisJ
CQkJMEZGRjg5MTgxODNDM0VDRDAwRUEwMzlFIC8qIGlvcyAqLywKIAkJCQk2NUVCODU5RTExRUM2
N0NDMDAzNEQzMDAgLyogbWFjICovLAogCQkJCTY1RUI4NTlEMTFFQzY3Q0MwMDM0RDMwMCAvKiBB
Y3RpdmF0ZUZvbnRzLmggKi8sCiAJCQkJQkNDOTk3QTAxMUQzQzhGNjAwMTdCQ0EyIC8qIEluamVj
dGVkQnVuZGxlLmNwcCAqLywKQEAgLTQ0OSwxMCArNTUzLDExIEBACiAJCUJDNzkzNDAxMTE4RjdD
OEEwMDVFQThFMiAvKiBDb25maWd1cmF0aW9ucyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJMEZGRjg5MTcxODNDMzIyRTAwRUEwMzlFIC8qIGlPUy54Y2Nv
bmZpZyAqLywKIAkJCQlCQzc5MzQyNjExOEY3RDNDMDA1RUE4RTIgLyogQmFzZS54Y2NvbmZpZyAq
LywKIAkJCQlCQzc5MzQyNzExOEY3REFGMDA1RUE4RTIgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovLAotCQkJCUJDMjUxOTcxMTFEMTVFNjEwMDJFQkMwMSAvKiBJbmplY3RlZEJ1bmRsZS54Y2Nv
bmZpZyAqLywKIAkJCQlCQzI1MUExODExRDE2Nzk1MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5l
ci54Y2NvbmZpZyAqLywKKwkJCQlCQzI1MTk3MTExRDE1RTYxMDAyRUJDMDEgLyogSW5qZWN0ZWRC
dW5kbGUueGNjb25maWcgKi8sCiAJCQkpOwogCQkJcGF0aCA9IENvbmZpZ3VyYXRpb25zOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUxOSw2ICs2MjQsMjQgQEAKIC8qIEVuZCBQQlhH
cm91cCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisJ
CTBGMjIwNUNBMTgzRDRCN0MwMDhFN0U1RSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwICovID0gewor
CQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDBG
MjIwNUZBMTgzRDRCN0UwMDhFN0U1RSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBC
WE5hdGl2ZVRhcmdldCAiV2ViS2l0VGVzdFJ1bm5lckFwcCIgKi87CisJCQlidWlsZFBoYXNlcyA9
ICgKKwkJCQkwRjIyMDVDNzE4M0Q0QjdDMDA4RTdFNUUgLyogU291cmNlcyAqLywKKwkJCQkwRjIy
MDVDODE4M0Q0QjdDMDA4RTdFNUUgLyogRnJhbWV3b3JrcyAqLywKKwkJCQkwRjIyMDVDOTE4M0Q0
QjdDMDA4RTdFNUUgLyogUmVzb3VyY2VzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJ
CQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTBGN0FCNDFCMTg0RUI3RUYwMEI0M0U1RCAv
KiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJKTsKKwkJCW5hbWUgPSBXZWJLaXRUZXN0UnVu
bmVyQXBwOworCQkJcHJvZHVjdE5hbWUgPSBXZWJLaXRUZXN0UnVubmVyQXBwOworCQkJcHJvZHVj
dFJlZmVyZW5jZSA9IDBGMjIwNUNCMTgzRDRCN0MwMDhFN0U1RSAvKiBXZWJLaXRUZXN0UnVubmVy
QXBwLmFwcCAqLzsKKwkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUuYXBw
bGljYXRpb24iOworCQl9OwogCQk4REQ3NkY5NjA0ODZBQTc2MDBEOTZCNUUgLyogV2ViS2l0VGVz
dFJ1bm5lciAqLyA9IHsKIAkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKIAkJCWJ1aWxkQ29uZmln
dXJhdGlvbkxpc3QgPSAxREVCOTI3NDA4NzMzREQ0MDAxMEU5Q0QgLyogQnVpbGQgY29uZmlndXJh
dGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYktpdFRlc3RSdW5uZXIiICovOwpAQCAt
NTcxLDExICs2OTQsMTMgQEAKIAkJCQlKYXBhbmVzZSwKIAkJCQlGcmVuY2gsCiAJCQkJR2VybWFu
LAorCQkJCWVuLAogCQkJKTsKIAkJCW1haW5Hcm91cCA9IDA4RkI3Nzk0RkU4NDE1NURDMDJBQUMw
NyAvKiBXZWJLaXRUZXN0UnVubmVyICovOwogCQkJcHJvamVjdERpclBhdGggPSAiIjsKIAkJCXBy
b2plY3RSb290ID0gIiI7CiAJCQl0YXJnZXRzID0gKAorCQkJCTBGMjIwNUNBMTgzRDRCN0MwMDhF
N0U1RSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwICovLAogCQkJCThERDc2Rjk2MDQ4NkFBNzYwMEQ5
NkI1RSAvKiBXZWJLaXRUZXN0UnVubmVyICovLAogCQkJCUJDMjUxODYxMTFEMTVENTQwMDJFQkMw
MSAvKiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgKi8sCiAJCQkJQkM5NTJENzcxMUYz
QkY1RDAwMzM5OEI0IC8qIERlcml2ZWQgU291cmNlcyAqLywKQEAgLTU4NCw2ICs3MDksMTQgQEAK
IC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYUmVzb3VyY2VzQnVp
bGRQaGFzZSBzZWN0aW9uICovCisJCTBGMjIwNUM5MTgzRDRCN0MwMDhFN0U1RSAvKiBSZXNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTBGNUFFOEY0MTg0RUJEN0Uw
MEY2RDJGMyAvKiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlIGluIFJlc291
cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKKwkJfTsKIAkJQkMyNTE4NUUxMUQxNUQ1NDAwMkVCQzAxIC8qIFJlc291cmNlcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OwpAQCAtNjE3LDExICs3NTAsMzAgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlz
aGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291
cmNlcy9XZWJLaXRUZXN0UnVubmVyXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2
ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXJcIlxuXG5leHBvcnQgV2ViS2l0VGVzdFJ1bm5lcj1c
IiR7U1JDUk9PVH1cIlxuZXhwb3J0IFdlYkNvcmVTY3JpcHRzPVwiJHtXRUJDT1JFX1BSSVZBVEVf
SEVBREVSU19ESVJ9XCJcblxuaWYgWyAhICRDQyBdOyB0aGVuXG4gICAgZXhwb3J0IENDPVwiYHhj
cnVuIC1maW5kIGNsYW5nYFwiXG5maVxuXG5pZiBbIFwiJHtBQ1RJT059XCIgPSBcImJ1aWxkXCIg
LW8gXCIke0FDVElPTn1cIiA9IFwiaW5zdGFsbFwiIC1vIFwiJHtBQ1RJT059XCIgPSBcImluc3Rh
bGxoZHJzXCIgXTsgdGhlblxuICAgIG1ha2UgLWYgXCIke1dlYktpdFRlc3RSdW5uZXJ9L0Rlcml2
ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgXG5m
aVxuIjsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdFRlc3RSdW5uZXJcIlxuY2QgXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0VGVzdFJ1bm5lclwiXG5cbmV4cG9ydCBXZWJLaXRU
ZXN0UnVubmVyPVwiJHtTUkNST09UfVwiXG5leHBvcnQgV2ViQ29yZVNjcmlwdHM9XCIke1dFQkNP
UkVfUFJJVkFURV9IRUFERVJTX0RJUn1cIlxuXG5pZiBbICEgJENDIF07IHRoZW5cbiAgICBleHBv
cnQgQ0M9XCJgeGNydW4gLWZpbmQgY2xhbmdgXCJcbmZpXG5cbmlmIFsgXCIke0FDVElPTn1cIiA9
IFwiYnVpbGRcIiAtbyBcIiR7QUNUSU9OfVwiID0gXCJpbnN0YWxsXCIgLW8gXCIke0FDVElPTn1c
IiA9IFwiaW5zdGFsbGhkcnNcIiBdOyB0aGVuXG4gICAgbWFrZSAtZiBcIiR7V2ViS2l0VGVzdFJ1
bm5lcn0vRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3Lmxv
Z2ljYWxjcHVgXG5maVxuIjsKIAkJfTsKIC8qIEVuZCBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ug
c2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCisJ
CTBGMjIwNUM3MTgzRDRCN0MwMDhFN0U1RSAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJY
U291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJ
ZmlsZXMgPSAoCisJCQkJMEYyMjA2MDMxODNENEM2RTAwOEU3RTVFIC8qIFBpeGVsRHVtcFN1cHBv
cnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYyMjA2MDUxODNENEM2RTAwOEU3RTVFIC8qIFRl
c3RJbnZvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMjIwNjAwMTgzRDRDNUIwMDhF
N0U1RSAvKiBUZXN0SW52b2NhdGlvbkNHLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMjIwNUZG
MTgzRDRDNTgwMDhFN0U1RSAvKiBUZXN0Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTBGMjIwNjA0MTgzRDRDNkUwMDhFN0U1RSAvKiBUZXN0Q29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRjIyMDYwMTE4M0Q0QzZFMDA4RTdFNUUgLyogQ3ljbGljUmVkdW5kYW5j
eUNoZWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMjIwNjA2MTgzRDRDNkUwMDhFN0U1RSAv
KiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjIyMDVG
RDE4M0Q0QzU4MDA4RTdFNUUgLyogbWFpbklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTBGMjIw
NUZFMTgzRDRDNTgwMDhFN0U1RSAvKiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0gaW4gU291cmNlcyAq
LywKKwkJCQkwRjIyMDVGQzE4M0Q0QzU4MDA4RTdFNUUgLyogRXZlbnRTZW5kZXJQcm94eUlPUy5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTBGMjIwNjA3MTgzRDRDNkUwMDhFN0U1RSAvKiBXb3JrUXVl
dWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMjIwNjAyMTgzRDRDNkUwMDhFN0U1
RSAvKiBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCSk7CisJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJOERENzZG
OTkwNDg2QUE3NjAwRDk2QjVFIC8qIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2Vz
QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC02MjksMjAg
Kzc4MSwyMyBAQAogCQkJCTUzMjJGQjQzMTNGREEwQ0QwMDQxQUJDQyAvKiBDeWNsaWNSZWR1bmRh
bmN5Q2hlY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDNjQyQzMxN0NCQ0M3MzAwRDY2QTND
IC8qIFBvc2VBc0NsYXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEzMkFBM0QxN0NFNzc2RjAw
NjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTBG
RkY4OTJGMTgzQzRFRUQwMEVBMDM5RSAvKiBUZXN0Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGRkY4OTMxMTgzQzUwMTQwMEVBMDM5RSAvKiBtYWluSU9TLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTY3MEI4MjgxMzg2RkNBNTAwMkVCMzU1IC8qIEV2ZW50U2VuZGVyUHJveHku
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyNkQ3NThFNzE2MEJFQ0REMDAyNjg0NzIgLyogR2VvbG9j
YXRpb25Qcm92aWRlck1vY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3OTM0MDAxMThGN0M4
NDAwNUVBOEUyIC8qIG1haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MzIyRkI0NjEzRkRBMEVB
MDA0MUFCQ0MgLyogUGl4ZWxEdW1wU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUM2
NDJDNjE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gaW4g
U291cmNlcyAqLywKKwkJCQkwRkZGODkyQjE4M0M0Q0RFMDBFQTAzOUUgLyogRXZlbnRTZW5kZXJQ
cm94eUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNzkzNEU4MTE5MDY4NDYwMDVFQThFMiAv
KiBQbGF0Zm9ybVdlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzc5MzQzMTExOEY3
RjE5MDA1RUE4RTIgLyogVGVzdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4
Qzc5NUMxMUQyNzg1RDAwNDUzNUExIC8qIFRlc3RDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNEN0QyRjgxMTkyMTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZvY2F0aW9uLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTBGRkY4OTJFMTgzQzRFRUQwMEVBMDM5RSAvKiBQbGF0Zm9ybVdl
YlZpZXdJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzkxOTIwNTEzMzNFNEY4MDAzMDExREMg
LyogVGVzdEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTMyQUEzQTE3Q0Q1
RjEwMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTMxNjRDOEYwMTVEMUFEQTEwMEVGMUZFMCAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDI5RkM1RjE2MjcwODk2MDBGNjZEOEIgLyog
V29ya1F1ZXVlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk4NDFDQzAwRjE4MTE4NUJG
MDA0MkU5QjYgLyogT3B0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY2MSwxMSArODE2LDE0
IEBACiAJCQkJMjkyMTBFQUUxNDRDQUNCNzAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkyMTBFREExNDRDQzNFQTAwODM1QkI1IC8qIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk2NUVCODVBMDEx
RUM2N0NDMDAzNEQzMDAgLyogQWN0aXZhdGVGb250cy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTBG
RkY4OTIyMTgzQzQ1RkYwMEVBMDM5RSAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUJDOEZEOENBMTIwRTUyN0YwMEYzRTcxQSAvKiBFdmVudFNlbmRp
bmdDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRkY4OTIwMTgzQzQxMUYwMEVB
MDM5RSAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkMxNEU0REIxMjBFMDJEMDAwODI2QzBDIC8qIEdDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0M5OTdBNDExRDNDOEY2MDAxN0JDQTIgLyogSW5qZWN0ZWRCdW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM4REFEN0IxMzE2RDkxMDAwRUM5NkZDIC8qIEluamVjdGVkQnVu
ZGxlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNTFBM0UxMUQxNjgzMTAwMkVCQzAxIC8q
IEluamVjdGVkQnVuZGxlTWFpbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkZGODkyNDE4M0M0
QTg0MDBFQTAzOUUgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAq
LywKIAkJCQlCQ0M5OTdBNTExRDNDOEY2MDAxN0JDQTIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQUY2N0VGMTYwRDZDMTAwMDc3Q0IyQiAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyOTIxMEVEQjE0NENENDc5MDA4
MzVCQjUgLyogSlNBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTY3NCwyMCArODMyLDI5IEBACiAJCQkJMjkyMTBFRTExNDRDREIyNjAwODM1QkI1IC8qIEpTQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzhGRDhEMjEyMEU1
NDVCMDBGM0U3MUEgLyogSlNFdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDMTRFNEVBMTIwRTAzRDgwMDgyNkMwQyAvKiBKU0dDQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwRkZGODkyNzE4M0M0QUU0MDBFQTAzOUUgLyogSW5qZWN0ZWRCdW5k
bGVJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzk1MkYxRjExRjNDNjUyMDAzMzk4QjQgLyog
SlNUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU2NDFFMkQwMTQzMzVFOTUwMDgz
MDdFNSAvKiBKU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5
NTJDMEQxMUYzQjk2NTAwMzM5OEI0IC8qIEpTV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0M5OTgxODExRDNGNTFFMDAxN0JDQTIgLyogVGVzdFJ1bm5lci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkwRkZGODkyODE4M0M0QUU0MDBFQTAzOUUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlSU9T
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0NUMzMEYxNzM5OEUyOTAwNzk3MTRFIC8qIFdlYkFy
Y2hpdmVEdW1wU3VwcG9ydE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDNDVDMzEzMTczOThF
NDgwMDc5NzE0RSAvKiBXZWJBcmNoaXZlRHVtcFN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzBDRTcyMEIxMjQ3QzkzMzAwQkMwRUM0IC8qIFRlc3RSdW5uZXJNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1NjY0QTQ5QTE0MzI2Mzg0MDA4ODgxQkUgLyogVGV4dElucHV0Q29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkZGODkxQzE4M0M0MDIwMDBFQTAzOUUgLyogV2Vi
QXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGRjg5MUUxODND
NDA4MTAwRUEwMzlFIC8qIEFjdGl2YXRlRm9udHNJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKIC8qIEVu
ZCBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFRhcmdldERl
cGVuZGVuY3kgc2VjdGlvbiAqLworCQkwRjdBQjQxQjE4NEVCN0VGMDBCNDNFNUQgLyogUEJYVGFy
Z2V0RGVwZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0
YXJnZXQgPSBCQzI1MTg2MTExRDE1RDU0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lckluamVj
dGVkQnVuZGxlICovOworCQkJdGFyZ2V0UHJveHkgPSAwRjdBQjQxQTE4NEVCN0VGMDBCNDNFNUQg
LyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9OwogCQlCQzI1MTk0MjExRDE1RDk0MDAy
RUJDMDEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERl
cGVuZGVuY3k7CiAJCQl0YXJnZXQgPSBCQzI1MTg2MTExRDE1RDU0MDAyRUJDMDEgLyogV2ViS2l0
VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlICovOwpAQCAtNzAxLDYgKzg2OCw5MyBAQAogLyogRW5k
IFBCWFRhcmdldERlcGVuZGVuY3kgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBYQ0J1aWxkQ29uZmln
dXJhdGlvbiBzZWN0aW9uICovCisJCTBGMjIwNUY0MTgzRDRCN0UwMDhFN0U1RSAvKiBEZWJ1ZyAq
LyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZpZ3VyYXRp
b25SZWZlcmVuY2UgPSBCQzI1MUExODExRDE2Nzk1MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5l
ci54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9V
U0VSX1BBVEhTID0gTk87CisJCQkJQVJDSFMgPSAiJChBUkNIU19TVEFOREFSRF9JTkNMVURJTkdf
NjRfQklUKSI7CisJCQkJQVNTRVRDQVRBTE9HX0NPTVBJTEVSX0FQUElDT05fTkFNRSA9IEFwcElj
b247CisJCQkJQVNTRVRDQVRBTE9HX0NPTVBJTEVSX0xBVU5DSElNQUdFX05BTUUgPSBMYXVuY2hJ
bWFnZTsKKwkJCQlDTEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKKwkJCQkiQ09ERV9TSUdOX0lE
RU5USVRZW3Nkaz1pcGhvbmVvcypdIiA9ICJpUGhvbmUgRGV2ZWxvcGVyIjsKKwkJCQlDT1BZX1BI
QVNFX1NUUklQID0gTk87CisJCQkJRlJBTUVXT1JLX1NFQVJDSF9QQVRIUyA9ICgKKwkJCQkJIiQo
aW5oZXJpdGVkKSIsCisJCQkJCSIkKERFVkVMT1BFUl9GUkFNRVdPUktTX0RJUikiLAorCQkJCSk7
CisJCQkJR0NDX1BSRUNPTVBJTEVfUFJFRklYX0hFQURFUiA9IFlFUzsKKwkJCQlHQ0NfUFJFRklY
X0hFQURFUiA9IFdlYktpdFRlc3RSdW5uZXJQcmVmaXguaDsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09S
X0RFRklOSVRJT05TID0gKAorCQkJCQkiREVCVUc9MSIsCisJCQkJCSIkKGluaGVyaXRlZCkiLAor
CQkJCSk7CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAiJChTUkNST09UKS9XZWJLaXRUZXN0UnVubmVy
QXBwVGVzdHMtSW5mby5wbGlzdCI7CisJCQkJSVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVQgPSA4
LjA7CisJCQkJT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChU
QVJHRVRfTkFNRSkiOworCQkJCVNES1JPT1QgPSBpcGhvbmVvczsKKwkJCQlUQVJHRVRFRF9ERVZJ
Q0VfRkFNSUxZID0gIjEsMiI7CisJCQkJV1JBUFBFUl9FWFRFTlNJT04gPSBhcHA7CisJCQl9Owor
CQkJbmFtZSA9IERlYnVnOworCQl9OworCQkwRjIyMDVGNTE4M0Q0QjdFMDA4RTdFNUUgLyogUmVs
ZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSBCQzI1MUExODExRDE2Nzk1MDAyRUJDMDEgLyogV2ViS2l0VGVz
dFJ1bm5lci54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQUxXQVlTX1NF
QVJDSF9VU0VSX1BBVEhTID0gTk87CisJCQkJQVJDSFMgPSAiJChBUkNIU19TVEFOREFSRF9JTkNM
VURJTkdfNjRfQklUKSI7CisJCQkJQVNTRVRDQVRBTE9HX0NPTVBJTEVSX0FQUElDT05fTkFNRSA9
IEFwcEljb247CisJCQkJQVNTRVRDQVRBTE9HX0NPTVBJTEVSX0xBVU5DSElNQUdFX05BTUUgPSBM
YXVuY2hJbWFnZTsKKwkJCQlDTEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKKwkJCQkiQ09ERV9T
SUdOX0lERU5USVRZW3Nkaz1pcGhvbmVvcypdIiA9ICJpUGhvbmUgRGV2ZWxvcGVyIjsKKwkJCQlD
T1BZX1BIQVNFX1NUUklQID0gWUVTOworCQkJCUVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87CisJ
CQkJRlJBTUVXT1JLX1NFQVJDSF9QQVRIUyA9ICgKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJ
CSIkKERFVkVMT1BFUl9GUkFNRVdPUktTX0RJUikiLAorCQkJCSk7CisJCQkJR0NDX1BSRUNPTVBJ
TEVfUFJFRklYX0hFQURFUiA9IFlFUzsKKwkJCQlHQ0NfUFJFRklYX0hFQURFUiA9IFdlYktpdFRl
c3RSdW5uZXJQcmVmaXguaDsKKwkJCQlJTkZPUExJU1RfRklMRSA9ICIkKFNSQ1JPT1QpL1dlYktp
dFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0IjsKKwkJCQlJUEhPTkVPU19ERVBMT1lNRU5U
X1RBUkdFVCA9IDguMDsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
CVNES1JPT1QgPSBpcGhvbmVvczsKKwkJCQlUQVJHRVRFRF9ERVZJQ0VfRkFNSUxZID0gIjEsMiI7
CisJCQkJVkFMSURBVEVfUFJPRFVDVCA9IFlFUzsKKwkJCQlXUkFQUEVSX0VYVEVOU0lPTiA9IGFw
cDsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJMEYyMjA1RjYxODNENEI3RTAw
OEU3RTVFIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlv
bjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkMyNTFBMTgxMUQxNjc5NTAwMkVC
QzAxIC8qIFdlYktpdFRlc3RSdW5uZXIueGNjb25maWcgKi87CisJCQlidWlsZFNldHRpbmdzID0g
eworCQkJCUFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POworCQkJCUFSQ0hTID0gIiQoQVJD
SFNfU1RBTkRBUkRfSU5DTFVESU5HXzY0X0JJVCkiOworCQkJCUFTU0VUQ0FUQUxPR19DT01QSUxF
Ul9BUFBJQ09OX05BTUUgPSBBcHBJY29uOworCQkJCUFTU0VUQ0FUQUxPR19DT01QSUxFUl9MQVVO
Q0hJTUFHRV9OQU1FID0gTGF1bmNoSW1hZ2U7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZ
RVM7CisJCQkJIkNPREVfU0lHTl9JREVOVElUWVtzZGs9aXBob25lb3MqXSIgPSAiaVBob25lIERl
dmVsb3BlciI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IFlFUzsKKwkJCQlFTkFCTEVfTlNfQVNT
RVJUSU9OUyA9IE5POworCQkJCUZSQU1FV09SS19TRUFSQ0hfUEFUSFMgPSAoCisJCQkJCSIkKGlu
aGVyaXRlZCkiLAorCQkJCQkiJChERVZFTE9QRVJfRlJBTUVXT1JLU19ESVIpIiwKKwkJCQkpOwor
CQkJCUdDQ19QUkVDT01QSUxFX1BSRUZJWF9IRUFERVIgPSBZRVM7CisJCQkJR0NDX1BSRUZJWF9I
RUFERVIgPSBXZWJLaXRUZXN0UnVubmVyUHJlZml4Lmg7CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAi
JChTUkNST09UKS9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdCI7CisJCQkJSVBI
T05FT1NfREVQTE9ZTUVOVF9UQVJHRVQgPSA4LjA7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKKwkJCQlTREtST09UID0gaXBob25lb3M7CisJCQkJVEFSR0VURURfREVWSUNF
X0ZBTUlMWSA9ICIxLDIiOworCQkJCVZBTElEQVRFX1BST0RVQ1QgPSBZRVM7CisJCQkJV1JBUFBF
Ul9FWFRFTlNJT04gPSBhcHA7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247CisJCX07CiAJ
CTFERUI5Mjc1MDg3MzNERDQwMDEwRTlDRCAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQzI1MUEx
ODExRDE2Nzk1MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lci54Y2NvbmZpZyAqLzsKQEAgLTc5
MCw2ICsxMDQ0LDE2IEBACiAvKiBFbmQgWENCdWlsZENvbmZpZ3VyYXRpb24gc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KKwkJMEYyMjA1RkExODNE
NEI3RTAwOEU3RTVFIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFy
Z2V0ICJXZWJLaXRUZXN0UnVubmVyQXBwIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlv
bkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTBGMjIwNUY0MTgzRDRCN0Uw
MDhFN0U1RSAvKiBEZWJ1ZyAqLywKKwkJCQkwRjIyMDVGNTE4M0Q0QjdFMDA4RTdFNUUgLyogUmVs
ZWFzZSAqLywKKwkJCQkwRjIyMDVGNjE4M0Q0QjdFMDA4RTdFNUUgLyogUHJvZHVjdGlvbiAqLywK
KwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0
Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQkxREVCOTI3NDA4NzMzREQ0
MDAxMEU5Q0QgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
IldlYktpdFRlc3RSdW5uZXIiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsK
IAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0IGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kZGExMDJhYTc5M2ZlMWE5ZGU3MzUxZDA3NWE5YmMxYzgwNjI4MzgzCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5m
by5wbGlzdApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJV
VEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAv
L0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8
cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJl
Z2lvbjwva2V5PgorCTxzdHJpbmc+ZW48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJs
ZTwva2V5PgorCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPm9yZy53ZWJraXQuJHtQUk9EVUNUX05BTUU6
cmZjMTAzNGlkZW50aWZpZXJ9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5
VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVBhY2th
Z2VUeXBlPC9rZXk+CisJPHN0cmluZz5CTkRMPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNob3J0
VmVyc2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+MS4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRs
ZVNpZ25hdHVyZTwva2V5PgorCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVW
ZXJzaW9uPC9rZXk+CisJPHN0cmluZz4xPC9zdHJpbmc+Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyUHJlZml4Lmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguaAppbmRleCBk
ODMxNDNiOTJmZjM2MmRlNjY2Zjk0ZTVlMTFhYTMxOWI2NWRlM2Y4Li5kYzk1OGMxMGUxOTgyZWQz
NDY0OWFhNjcwNzVjOGQxZWU4MzJjNTRhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1dlYktpdFRlc3RSdW5uZXJQcmVmaXguaApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpZmRl
ZiBfX09CSkNfXwotI2luY2x1ZGUgPENvY29hL0NvY29hLmg+CisjaW1wb3J0IDxGb3VuZGF0aW9u
L0ZvdW5kYXRpb24uaD4KICNlbmRpZgogCiAjaWYgZGVmaW5lZChCVUlMRElOR19HVEtfXykKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY2Fpcm8vVGVzdEludm9jYXRpb25DYWly
by5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NhaXJvL1Rlc3RJbnZvY2F0aW9uQ2Fpcm8u
Y3BwCmluZGV4IDgyOGU2NWIxYmI3YzM1ZGI3YjQ2YzRiMTMwN2M2NzI4Zjg4YjkxMDQuLjMzODg4
ZGU5NjEzMDM3ZmFhMzBlNWY1OTA4ZTUxMjFlMzg1ZDRlYzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY2Fpcm8vVGVzdEludm9jYXRpb25DYWlyby5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jYWlyby9UZXN0SW52b2NhdGlvbkNhaXJvLmNwcApAQCAtNTUsNyAr
NTUsNyBAQCB2b2lkIGNvbXB1dGVNRDVIYXNoU3RyaW5nRm9yQ2Fpcm9TdXJmYWNlKGNhaXJvX3N1
cmZhY2VfdCogc3VyZmFjZSwgY2hhciBoYXNoU3RyaQogICAgICAgICBtZDVDb250ZXh0LmFkZEJ5
dGVzKGJpdG1hcERhdGEsIDQgKiBwaXhlbHNXaWRlKTsKICAgICAgICAgYml0bWFwRGF0YSArPSBi
eXRlc1BlclJvdzsKICAgICB9Ci0gICAgTUQ1OjpEaWdlc3QgaGFzaDsKKyAgICBWZWN0b3I8dWlu
dDhfdCwgMTY+IGhhc2g7CiAgICAgbWQ1Q29udGV4dC5jaGVja3N1bShoYXNoKTsKIAogICAgIHNu
cHJpbnRmKGhhc2hTdHJpbmcsIDMzLCAiJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngl
MDJ4JTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4JTAyeCIsCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NnL1Rlc3RJbnZvY2F0aW9uQ0cuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9jZy9UZXN0SW52b2NhdGlvbkNHLmNwcAppbmRleCBiOGNmYTkwNDAxNmYwOTdjODI0ZDI4
OWE3NjMzNWUwNGY3YThhNDlhLi45NjM1OGU5NjA4ODI2NzRlY2YwYWIzYTIyZTExZjJiNDNlOThh
MTJjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NnL1Rlc3RJbnZvY2F0aW9u
Q0cuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY2cvVGVzdEludm9jYXRpb25DRy5j
cHAKQEAgLTM1LDEwICszNSwxNSBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNs
dWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAKLSNpZiBQTEFURk9STShNQUMpCisjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPExhdW5jaFNlcnZpY2VzL1VUQ29y
ZVR5cGVzLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKy8vIEZJWE1FOiBnZXQga1VU
VHlwZVBORyBmcm9tIE1vYmlsZUNvcmVTZXJ2aWNlcyBvbiBpT1MKK3N0YXRpYyBjb25zdCBDRlN0
cmluZ1JlZiBrVVRUeXBlUE5HID0gQ0ZTVFIoInB1YmxpYy5wbmciKTsKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV1RSIHsKIAogZW51bSBGbGlwR3JhcGhpY3NDb250ZXh0T3JOb3QgewpAQCAtMTAxLDkg
KzEwNiw5IEBAIHZvaWQgY29tcHV0ZU1ENUhhc2hTdHJpbmdGb3JDb250ZXh0KENHQ29udGV4dFJl
ZiBiaXRtYXBDb250ZXh0LCBjaGFyIGhhc2hTdHJpbmdbCiAKICAgICBNRDU6OkRpZ2VzdCBoYXNo
OwogICAgIG1kNS5jaGVja3N1bShoYXNoKTsKLQorICAgIAogICAgIGhhc2hTdHJpbmdbMF0gPSAn
XDAnOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTUQ1OjpoYXNoU2l6ZTsgaSsrKQorICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgMTY7IGkrKykKICAgICAgICAgc25wcmludGYoaGFzaFN0cmlu
ZywgMzMsICIlcyUwMngiLCBoYXNoU3RyaW5nLCBoYXNoW2ldKTsKIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9lZmwvVGVzdENvbnRyb2xsZXJFZmwuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9lZmwvVGVzdENvbnRyb2xsZXJFZmwuY3BwCmluZGV4IGRmOGRjZDkx
MzViN2E1MjRhY2JhNTMzZGU5MTQ0OGM2ZjMzNDM3NTQuLjc1MGJjMjE1YmRmNTJiMWY5MzE4MDE1
YzkxYTRkZDM0NjgzYWQwNDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZWZs
L1Rlc3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9U
ZXN0Q29udHJvbGxlckVmbC5jcHAKQEAgLTIwLDkgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgogCi0jaW5jbHVkZSAiUGxhdGZvcm1XZWJW
aWV3LmgiCiAjaW5jbHVkZSA8RWNvcmUuaD4KLSNpbmNsdWRlIDxFdmFzLmg+CiAjaW5jbHVkZSA8
c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KQEAgLTEw
MywxOSArMTAxLDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplQ29u
dGV4dCgpCiB7CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEhpZGRlbihib29sIGhpZGRl
bikKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEhpZGRlbihib29sKQogewotICAgIFBsYXRmb3Jt
V0tWaWV3IHZpZXcgPSBtYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKLQotICAgIGlmICgh
dmlldykgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiB2aWV3IGlzIG51bGwuXG4i
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChoaWRkZW4pCi0gICAgICAgIGV2
YXNfb2JqZWN0X2hpZGUodmlldyk7Ci0gICAgZWxzZQotICAgICAgICBldmFzX29iamVjdF9zaG93
KHZpZXcpOworICAgIC8vIEZJWE1FOiBOZWVkIHRvIGltcGxlbWVudCB0aGlzIHRvIHRlc3Qgdmlz
aWJpbGl0eVN0YXRlLgogfQogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpydW5Nb2RhbChQbGF0Zm9y
bVdlYlZpZXcqKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSW5mb1Bs
aXN0LnN0cmluZ3MgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9JbmZvUGxpc3Quc3RyaW5n
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NzdiMjhmZjhmODZhMzE1OGE3MWM0OTM0ZmJkM2EyNDU2NzE3ZDdhCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvSW5mb1BsaXN0LnN0
cmluZ3MKQEAgLTAsMCArMSwyIEBACisvKiBMb2NhbGl6ZWQgdmVyc2lvbnMgb2YgSW5mby5wbGlz
dCBrZXlzICovCisKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRm
b3JtV2ViVmlld0lPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2Vi
Vmlld0lPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZmU0MDcwNDNlMzU2MzU0N2I1ODVmYmVjMTk3MWI3MzZi
ZDI2ZDZmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxh
dGZvcm1XZWJWaWV3SU9TLm1tCkBAIC0wLDAgKzEsMjI0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRl
c3RDb250cm9sbGVyLmgiCisKKyNpbXBvcnQgPFdlYktpdDIvV0tJbWFnZUNHLmg+CisjaW1wb3J0
IDxXZWJLaXQyL1dLVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBXZWJL
aXRUZXN0UnVubmVyV2luZG93IDogVUlXaW5kb3cgeworICAgIFdUUjo6UGxhdGZvcm1XZWJWaWV3
KiBfcGxhdGZvcm1XZWJWaWV3OworICAgIENHUG9pbnQgX2Zha2VPcmlnaW47Cit9CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgYXNzaWduKSBXVFI6OlBsYXRmb3JtV2ViVmlldyogcGxhdGZvcm1XZWJW
aWV3OworQGVuZAorCitAaW50ZXJmYWNlIFRlc3RSdW5uZXJXS1ZpZXcgOiBXS1ZpZXcgeworICAg
IEJPT0wgX3VzZVRpbGVkRHJhd2luZzsKK30KKworLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0
KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjoo
V0tQYWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6KFdLUGFnZVJlZilyZWxh
dGVkUGFnZSB1c2VUaWxlZERyYXdpbmc6KEJPT0wpdXNlVGlsZWREcmF3aW5nOworCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgYXNzaWduKSBCT09MIHVzZVRpbGVkRHJhd2luZzsKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFRlc3RSdW5uZXJXS1ZpZXcKKworQHN5bnRoZXNpemUgdXNlVGlsZWREcmF3
aW5nID0gX3VzZVRpbGVkRHJhd2luZzsKKworLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZy
YW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQ
YWdlR3JvdXBSZWYpcGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6KFdLUGFnZVJlZilyZWxhdGVk
UGFnZSB1c2VUaWxlZERyYXdpbmc6KEJPT0wpdXNlVGlsZWREcmF3aW5nCit7CisgICAgX3VzZVRp
bGVkRHJhd2luZyA9IHVzZVRpbGVkRHJhd2luZzsKKyAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRo
RnJhbWU6ZnJhbWUgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBS
ZWZdOworfQorCistIChCT09MKV9zaG91bGRVc2VUaWxlZERyYXdpbmdBcmVhCit7CisgICAgcmV0
dXJuIF91c2VUaWxlZERyYXdpbmc7Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYktp
dFRlc3RSdW5uZXJXaW5kb3cKK0BzeW50aGVzaXplIHBsYXRmb3JtV2ViVmlldyA9IF9wbGF0Zm9y
bVdlYlZpZXc7CisKKy0gKEJPT0wpaXNLZXlXaW5kb3cKK3sKKyAgICByZXR1cm4gX3BsYXRmb3Jt
V2ViVmlldyA/IF9wbGF0Zm9ybVdlYlZpZXctPndpbmRvd0lzS2V5KCkgOiBZRVM7Cit9CisKKy0g
KHZvaWQpc2V0RnJhbWVPcmlnaW46KENHUG9pbnQpcG9pbnQKK3sKKyAgICBfZmFrZU9yaWdpbiA9
IHBvaW50OworfQorCisvLyBGSVhNRTogdGhlc2UgZnJhbWUgZ3lyYXRpb25zIGNhdXNlIHRoZSB3
aW5kb3cgdG8gZ28gaGFsZiBvZmZzY3JlZW4uCistICh2b2lkKXNldEZyYW1lOihDR1JlY3Qpd2lu
ZG93RnJhbWUKK3sKKyAgICBDR1JlY3QgY3VycmVudEZyYW1lID0gW3N1cGVyIGZyYW1lXTsKKwor
ICAgIF9mYWtlT3JpZ2luID0gd2luZG93RnJhbWUub3JpZ2luOworCisgICAgW3N1cGVyIHNldEZy
YW1lOkNHUmVjdE1ha2UoY3VycmVudEZyYW1lLm9yaWdpbi54LCBjdXJyZW50RnJhbWUub3JpZ2lu
LnksIHdpbmRvd0ZyYW1lLnNpemUud2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0KV07Cit9
CisKKy0gKENHUmVjdClmcmFtZVJlc3BlY3RpbmdGYWtlT3JpZ2luCit7CisgICAgQ0dSZWN0IGN1
cnJlbnRGcmFtZSA9IFtzZWxmIGZyYW1lXTsKKyAgICByZXR1cm4gQ0dSZWN0TWFrZShfZmFrZU9y
aWdpbi54LCBfZmFrZU9yaWdpbi55LCBjdXJyZW50RnJhbWUuc2l6ZS53aWR0aCwgY3VycmVudEZy
YW1lLnNpemUuaGVpZ2h0KTsKK30KKworLSAoQ0dGbG9hdCliYWNraW5nU2NhbGVGYWN0b3IKK3sK
KyAgICByZXR1cm4gMTsKK30KKworQGVuZAorCitAaW50ZXJmYWNlIFVJV2luZG93IChEZXRhaWxz
KQorCistICh2b2lkKV9zZXRXaW5kb3dSZXNvbHV0aW9uOihDR0Zsb2F0KXJlc29sdXRpb24gZGlz
cGxheUlmQ2hhbmdlZDooQk9PTClkaXNwbGF5SWZDaGFuZ2VkOworCitAZW5kCisKK25hbWVzcGFj
ZSBXVFIgeworCitQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYg
Y29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBXS1BhZ2VSZWYgcmVsYXRl
ZFBhZ2UsIFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQorICAgIDogbV93aW5kb3dJc0tleSh0cnVl
KQorICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHVzZVRpbGVkRHJhd2luZ0tleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVGlsZWREcmF3aW5nIikpOworICAgIFdLVHlwZVJlZiB1c2VUaWxlZERyYXdpbmdWYWx1
ZSA9IG9wdGlvbnMgPyBXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG9wdGlvbnMsIHVzZVRpbGVk
RHJhd2luZ0tleS5nZXQoKSkgOiBOVUxMOworICAgIGJvb2wgdXNlVGlsZWREcmF3aW5nID0gdXNl
VGlsZWREcmF3aW5nVmFsdWUgJiYgV0tCb29sZWFuR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29s
ZWFuUmVmPih1c2VUaWxlZERyYXdpbmdWYWx1ZSkpOworCisgICAgQ0dSZWN0IHJlY3QgPSBDR1Jl
Y3RNYWtlKDAsIDAsIFRlc3RDb250cm9sbGVyOjp2aWV3V2lkdGgsIFRlc3RDb250cm9sbGVyOjp2
aWV3SGVpZ2h0KTsKKyAgICBtX3ZpZXcgPSBbW1Rlc3RSdW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6cmVjdCBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91
cFJlZiByZWxhdGVkVG9QYWdlOnJlbGF0ZWRQYWdlIHVzZVRpbGVkRHJhd2luZzp1c2VUaWxlZERy
YXdpbmddOworCisgICAgV0tQcmVmZXJlbmNlc1NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUo
V0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXBSZWYpLCBZRVMpOworICAgIFdLUHJl
ZmVyZW5jZXNTZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUoV0tQYWdlR3JvdXBH
ZXRQcmVmZXJlbmNlcyhwYWdlR3JvdXBSZWYpLCBZRVMpOworCisgICAgQ0dSZWN0IHdpbmRvd1Jl
Y3QgPSByZWN0OworICAgIG1fd2luZG93ID0gW1tXZWJLaXRUZXN0UnVubmVyV2luZG93IGFsbG9j
XSBpbml0V2l0aEZyYW1lOndpbmRvd1JlY3RdOworICAgIG1fd2luZG93LnBsYXRmb3JtV2ViVmll
dyA9IHRoaXM7CisKKyAgICBbbV93aW5kb3cgYWRkU3VidmlldzptX3ZpZXddOworICAgIFttX3dp
bmRvdyBtYWtlS2V5QW5kVmlzaWJsZV07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNp
emVUbyh1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQoreworICAgIENHUmVjdCB3aW5k
b3dGcmFtZSA9IFttX3dpbmRvdyBmcmFtZV07CisgICAgd2luZG93RnJhbWUuc2l6ZS53aWR0aCA9
IHdpZHRoOworICAgIHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0ID0gaGVpZ2h0OworICAgIFttX3dp
bmRvdyBzZXRGcmFtZTp3aW5kb3dGcmFtZV07CisgICAgW21fdmlldyBzZXRGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIHdpZHRoLCBoZWlnaHQpXTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZv
cm1XZWJWaWV3KCkKK3sKKyAgICBtX3dpbmRvdy5wbGF0Zm9ybVdlYlZpZXcgPSAwOworLy8gICAg
W21fd2luZG93IGNsb3NlXTsKKyAgICBbbV92aWV3IHJlbGVhc2VdOworICAgIFttX3dpbmRvdyBy
ZWxlYXNlXTsKK30KKworV0tQYWdlUmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpCit7CisgICAg
cmV0dXJuIFttX3ZpZXcgcGFnZVJlZl07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1
cygpCit7CisvLyAgICBbbV93aW5kb3cgbWFrZUZpcnN0UmVzcG9uZGVyOm1fdmlld107IC8vIEZJ
WE1FOiBpT1MgZXF1aXZhbGVudD8KKyAgICBzZXRXaW5kb3dJc0tleSh0cnVlKTsKK30KKworV0tS
ZWN0IFBsYXRmb3JtV2ViVmlldzo6d2luZG93RnJhbWUoKQoreworICAgIENHUmVjdCBmcmFtZSA9
IFttX3dpbmRvdyBmcmFtZVJlc3BlY3RpbmdGYWtlT3JpZ2luXTsKKworICAgIFdLUmVjdCB3a0Zy
YW1lOworICAgIHdrRnJhbWUub3JpZ2luLnggPSBmcmFtZS5vcmlnaW4ueDsKKyAgICB3a0ZyYW1l
Lm9yaWdpbi55ID0gZnJhbWUub3JpZ2luLnk7CisgICAgd2tGcmFtZS5zaXplLndpZHRoID0gZnJh
bWUuc2l6ZS53aWR0aDsKKyAgICB3a0ZyYW1lLnNpemUuaGVpZ2h0ID0gZnJhbWUuc2l6ZS5oZWln
aHQ7CisgICAgcmV0dXJuIHdrRnJhbWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRX
aW5kb3dGcmFtZShXS1JlY3QgZnJhbWUpCit7CisgICAgW21fd2luZG93IHNldEZyYW1lOkNHUmVj
dE1ha2UoZnJhbWUub3JpZ2luLngsIGZyYW1lLm9yaWdpbi55LCBmcmFtZS5zaXplLndpZHRoLCBm
cmFtZS5zaXplLmhlaWdodCldOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6ZGlkSW5pdGlh
bGl6ZUNsaWVudHMoKQoreworICAgIC8vIFNldCBhIHRlbXBvcmFyeSAxeDEgd2luZG93IGZyYW1l
IHRvIGZvcmNlIGEgV2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQgbm90aWZpY2F0aW9uLiA8cmRh
cjovL3Byb2JsZW0vMTMzODAxNDU+CisgICAgV0tSZWN0IHdrRnJhbWUgPSB3aW5kb3dGcmFtZSgp
OworICAgIFttX3dpbmRvdyBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEsIDEpXTsKKyAgICBz
ZXRXaW5kb3dGcmFtZSh3a0ZyYW1lKTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZENo
cm9tZUlucHV0RmllbGQoKQoreworICAgIFVJVGV4dEZpZWxkKiB0ZXh0RmllbGQgPSBbW1VJVGV4
dEZpZWxkIGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMTAwLCAyMCldOwor
ICAgIHRleHRGaWVsZC50YWcgPSAxOworICAgIFttX3dpbmRvdyBhZGRTdWJ2aWV3OnRleHRGaWVs
ZF07CisgICAgW3RleHRGaWVsZCByZWxlYXNlXTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6
OnJlbW92ZUNocm9tZUlucHV0RmllbGQoKQoreworICAgIFVJVGV4dEZpZWxkKiB0ZXh0RmllbGQg
PSAoVUlUZXh0RmllbGQqKVttX3dpbmRvdyB2aWV3V2l0aFRhZzoxXTsKKyAgICBpZiAodGV4dEZp
ZWxkKSB7CisgICAgICAgIFt0ZXh0RmllbGQgcmVtb3ZlRnJvbVN1cGVydmlld107CisgICAgICAg
IG1ha2VXZWJWaWV3Rmlyc3RSZXNwb25kZXIoKTsKKyAgICAgICAgW3RleHRGaWVsZCByZWxlYXNl
XTsKKyAgICB9Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjptYWtlV2ViVmlld0ZpcnN0UmVz
cG9uZGVyKCkKK3sKKy8vICAgIFttX3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6bV92aWV3XTsK
K30KKworV0tSZXRhaW5QdHI8V0tJbWFnZVJlZj4gUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFw
c2hvdEltYWdlKCkKK3sKKyAgICByZXR1cm4gMDsgLy8gRklYTUUgZm9yIGlPUz8KK30KKworYm9v
bCBQbGF0Zm9ybVdlYlZpZXc6OnZpZXdTdXBwb3J0c09wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9w
dGlvbnMpIGNvbnN0Cit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVzZVRpbGVkRHJh
d2luZ0tleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGlsZWREcmF3
aW5nIikpOworICAgIFdLVHlwZVJlZiB1c2VUaWxlZERyYXdpbmdWYWx1ZSA9IFdLRGljdGlvbmFy
eUdldEl0ZW1Gb3JLZXkob3B0aW9ucywgdXNlVGlsZWREcmF3aW5nS2V5LmdldCgpKTsKKyAgICBi
b29sIHVzZVRpbGVkRHJhd2luZyA9IHVzZVRpbGVkRHJhd2luZ1ZhbHVlICYmIFdLQm9vbGVhbkdl
dFZhbHVlKHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4odXNlVGlsZWREcmF3aW5nVmFsdWUpKTsK
KworICAgIHJldHVybiB1c2VUaWxlZERyYXdpbmcgPT0gWyhUZXN0UnVubmVyV0tWaWV3ICopbV92
aWV3IHVzZVRpbGVkRHJhd2luZ107Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MjM4OTdjZmY0ZTFhM2E5MDFmMTgzYWJkZDc0N2FlNzYxZGY4NDQ2Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KQEAgLTAs
MCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVGVz
dENvbnRyb2xsZXIuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0IDxX
ZWJLaXQyL1dLU3RyaW5nQ0YuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1l
c3BhY2UgV1RSIHsKKwordm9pZCBUZXN0Q29udHJvbGxlcjo6bm90aWZ5RG9uZSgpCit7Cit9CisK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVzdHJveSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldEhpZGRlbihib29sIGhpZGRlbikKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAgTlNTdHJpbmcgKm5zQnVu
ZGxlUGF0aCA9IFtbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhdIHN0cmluZ0J5QXBw
ZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5k
bGUiXTsKKyAgICBtX2luamVjdGVkQnVuZGxlUGF0aC5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhD
RlN0cmluZygoQ0ZTdHJpbmdSZWYpbnNCdW5kbGVQYXRoKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OmluaXRpYWxpemVUZXN0UGx1Z2luRGlyZWN0b3J5KCkKK3sKKyAgICBtX3Rlc3RQbHVn
aW5EaXJlY3RvcnkuYWRvcHQoV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5nUmVm
KVtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF0pKTsKK30KKwordm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBkb25lLCBkb3VibGUgdGltZW91dCkKK3sK
KyAgICBOU0RhdGUgKmVuZERhdGUgPSAodGltZW91dCA+IDApID8gW05TRGF0ZSBkYXRlV2l0aFRp
bWVJbnRlcnZhbFNpbmNlTm93OnRpbWVvdXRdIDogW05TRGF0ZSBkaXN0YW50RnV0dXJlXTsKKwor
ICAgIHdoaWxlICghZG9uZSAmJiBbZW5kRGF0ZSBjb21wYXJlOltOU0RhdGUgZGF0ZV1dID09IE5T
T3JkZXJlZERlc2NlbmRpbmcpCisgICAgICAgIFtbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXSBy
dW5Nb2RlOk5TRGVmYXVsdFJ1bkxvb3BNb2RlIGJlZm9yZURhdGU6ZW5kRGF0ZV07Cit9CisKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQoKQoreworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqIHZpZXcpCit7Cisg
ICAgVUlXaW5kb3cgKndpbmRvdyA9IFt2aWV3LT5wbGF0Zm9ybVZpZXcoKSB3aW5kb3ddOworICAg
IGlmICghd2luZG93KQorICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IGhvdyB0byBwZXJm
b3JtIG9uIGlPUz8KKy8vICAgIFtbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcnVu
TW9kYWxGb3JXaW5kb3c6d2luZG93XTsKK30KKworY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gW1tAIn4vTGli
cmFyeS9BcHBsaWNhdGlvbiBTdXBwb3J0L1dlYktpdFRlc3RSdW5uZXIiIHN0cmluZ0J5RXhwYW5k
aW5nVGlsZGVJblBhdGhdIFVURjhTdHJpbmddOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1dlYkFyY2hpdmVEdW1wU3VwcG9y
dElPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1dlYkFyY2hpdmVEdW1wU3VwcG9y
dElPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hZmIwYjQ2MGU4MzcxNzAyZWYyNzQ0MzljZWY4Zjk5N2RmMTQ2
YTYwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvV2ViQXJj
aGl2ZUR1bXBTdXBwb3J0SU9TLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYkFyY2hpdmVEdW1wU3VwcG9ydC5oIgorCisjaWYg
UExBVEZPUk0oSU9TKQorCitDRlVSTFJlc3BvbnNlUmVmIGNyZWF0ZUNGVVJMUmVzcG9uc2VGcm9t
UmVzcG9uc2VEYXRhKENGRGF0YVJlZiAvKnJlc3BvbnNlRGF0YSovKQoreworICAgIHJldHVybiAw
OworfQorCitDRkFycmF5UmVmIHN1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGVzKCkKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2lvcy9tYWluSU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ZjQ4N2Q2YjI2MzM0NDkyMTFkNWE3MjU5NTkz
NGZlZjhlODdjZDUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lv
cy9tYWluSU9TLm1tCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKworI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKKworCitzdGF0aWMgaW50IF9hcmdj
Oworc3RhdGljIGNvbnN0IGNoYXIgKipfYXJndjsKKworQGludGVyZmFjZSBXZWJLaXRUZXN0UnVu
bmVyQXBwIDogVUlBcHBsaWNhdGlvbgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViS2l0VGVz
dFJ1bm5lckFwcAorCistICh2b2lkKV9ydW5UZXN0Q29udHJvbGxlcgoreworICAgIFdUUjo6VGVz
dENvbnRyb2xsZXIgY29udHJvbGxlcihfYXJnYywgX2FyZ3YpOworfQorCistICh2b2lkKWFwcGxp
Y2F0aW9uRGlkRmluaXNoTGF1bmNoaW5nOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgor
eworICAgIFtzZWxmIHBlcmZvcm1TZWxlY3Rvck9uTWFpblRocmVhZDpAc2VsZWN0b3IoX3J1blRl
c3RDb250cm9sbGVyKSB3aXRoT2JqZWN0Om5pbCB3YWl0VW50aWxEb25lOk5PXTsKK30KKworQGVu
ZAorCitpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQoreworICAgIF9hcmdj
ID0gYXJnYzsKKyAgICBfYXJndiA9IGFyZ3Y7CisKKyAgICBVSUFwcGxpY2F0aW9uTWFpbihhcmdj
LCAoY2hhcioqKWFyZ3YsIE5TU3RyaW5nRnJvbUNsYXNzKFtXZWJLaXRUZXN0UnVubmVyQXBwIGNs
YXNzXSksIG5pbCk7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggYjZjNTNhMmUxOGQ5NjI1Njc4OTlh
YzYzYzQ5ZmExZmExNTM3YjgwNi4uZDQ0ZThhNmY1Mzk1NDBmMTI0NmE2OTA4MmE2MzlmNWJkZmNj
NGQyOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJW
aWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmll
d01hYy5tbQpAQCAtMTM3LDcgKzEzNyw3IEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJW
aWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvCiAgICAg
W21fdmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOk5PXTsKIAogICAgIE5T
UmVjdCB3aW5kb3dSZWN0ID0gTlNPZmZzZXRSZWN0KHJlY3QsIC0xMDAwMCwgWyhOU1NjcmVlbiAq
KVtbTlNTY3JlZW4gc2NyZWVuc10gb2JqZWN0QXRJbmRleDowXSBmcmFtZV0uc2l6ZS5oZWlnaHQg
LSByZWN0LnNpemUuaGVpZ2h0ICsgMTAwMDApOwotICAgIG1fd2luZG93ID0gW1tXZWJLaXRUZXN0
UnVubmVyV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVN
YXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzooTlNCYWNraW5nU3RvcmVUeXBlKV9O
U0JhY2tpbmdTdG9yZVVuYnVmZmVyZWQgZGVmZXI6WUVTXTsKKyAgICBtX3dpbmRvdyA9IFtbV2Vi
S2l0VGVzdFJ1bm5lcldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDp3aW5kb3dSZWN0
IHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6X05TQmFja2luZ1N0b3Jl
VW5idWZmZXJlZCBkZWZlcjpZRVNdOwogICAgIG1fd2luZG93LnBsYXRmb3JtV2ViVmlldyA9IHRo
aXM7CiAgICAgW21fd2luZG93IHNldENvbG9yU3BhY2U6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBj
b2xvclNwYWNlXV07CiAgICAgW21fd2luZG93IHNldENvbGxlY3Rpb25CZWhhdmlvcjpOU1dpbmRv
d0NvbGxlY3Rpb25CZWhhdmlvclN0YXRpb25hcnldOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvbWFpbi5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL21haW4u
bW0KaW5kZXggNzliMTkyZWYzZGJhY2RiZjJhYzU5MTMyNzM2Mzg3YjlmYmJjNTE3Ni4uYmI4N2Mx
ZDBjMjNiMGM2NmIwZWI1NTM4NDAxNzkwNTkyY2YyNWE2YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvbWFpbi5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21h
Yy9tYWluLm1tCkBAIC0yOSw2ICsyOSw4IEBACiAKIHN0YXRpYyB2b2lkIHNldERlZmF1bHRzVG9D
b25zaXN0ZW50VmFsdWVzRm9yVGVzdGluZygpCiB7CisgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gcmVtb3ZlUGVyc2lzdGVudERvbWFpbkZvck5hbWU6QCJXZWJLaXRU
ZXN0UnVubmVyIl07CisKICAgICBOU0RpY3Rpb25hcnkgKmRpY3QgPSBAewogICAgICAgICBAIkFw
cGxlS2V5Ym9hcmRVSU1vZGUiOiBAMSwKICAgICAgICAgQCJBcHBsZU1hZ25pZmllZE1vZGUiOiBA
WUVTLAo=
</data>
<flag name="review"
          id="245890"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222044</attachid>
            <date>2014-01-23 17:14:37 -0800</date>
            <delta_ts>2014-01-24 12:52:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127448-20140123171437.patch</filename>
            <type>text/plain</type>
            <size>136119</size>
            <attacher name="David Farler">dfarler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNjQwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWE1MDljNGI5NTNhYjgxNDI2ZTg2ZmJhN2QyODc1MWY1
NWI4NDMzNC4uNzNhMjY3MWE3MGQwN2E2NjgwOTE5ZThiNmQ1MzQ4MjAzY2FjY2ZkYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
NiBAQAorMjAxNC0wMS0yMyAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgTWFrZSBXZWJLaXRUZXN0UnVubmVyIHdvcmsgd2l0aCBpT1MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQ0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbWJpbmVkIHBhdGNoIGZyb20gU2lt
b24gYmVsb3cgd2l0aCBzb21lIGFkZGl0aW9uYWwgeGNjb25maWcgY2xlYW51cHMsCisgICAgICAg
IHJlYmFzaW5nIGFuZCBzdHViYmluZyBvdXQgYSBjb3VwbGUgb2YgbmV3IGZ1bmN0aW9ucyB0aGF0
IHBvcHBlZCB1cAorICAgICAgICBzaW5jZSB0aGVuLgorCisgICAgICAgIDIwMTMtMTItMDMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTU1MTU0Njk+IEdldCBXZWJLaXRUZXN0UnVubmVyIHdvcmtpbmcgb24g
aU9TCisKKyAgICAgICAgICAgICAgICBHZXQgV2ViS2l0VGVzdFJ1bm5lciBsaW1waW5nIG9uIGlP
Uy4gTWFpbiBwYXJ0czoKKyAgICAgICAgICAgICAgICAqIFN0dWIgb3V0IGxvdHMgb2YgYWNjZXNz
aWJpbGl0eS1yZWxhdGVkIGZ1bmN0aW9ucy4KKyAgICAgICAgICAgICAgICAqIFN0dWIgb3V0IEV2
ZW50U2VuZGVyCisgICAgICAgICAgICAgICAgKiBDcmVhdGUgdGFyZ2V0IHRvIG1ha2UgYSBidW5k
bGVkIGFwcCB0aGF0IHJ1bnMgaW4gdGhlIHNpbXVsYXRvciwKKyAgICAgICAgICAgICAgICAgIGFu
ZCBjb3B5IHRoZSBpbmplY3RlZCBidW5kbGUgbGlicmFyeSBpbnRvIGl0LgorICAgICAgICAgICAg
ICAgICogTWFrZSBhIFVJV2luZG93IGFuZCBXS1ZpZXcgdG8gbG9hZCB0ZXN0cyBpbgorCisgICAg
ICAgICAgICAgICAgSXQgcnVucywgbG9hZCB0ZXN0cywgYW5kIGR1bXBzIHJlc3VsdHMgdG8gb3V0
cHV0LiBNb3JlIHdvcmsgd2lsbCBiZQorICAgICAgICAgICAgICAgIHJlcXVpcmVkIG9uY2Ugd2Ug
Y2FuIGV4ZWN1dGUgaXQgdmlhIHRoZSB3ZWJraXRweSBzY3JpcHRzLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvSW5qZWN0ZWRCdW5kbGUueGNjb25maWc6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVy
LnhjY29uZmlnOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZl
bnRTZW5kaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW06IEFkZGVkLgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZp
Y2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
cGxhdGZvcm1OYW1lKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6Omxv
Z0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXVFI6OmZpbmRBY2Nlc3Np
YmxlT2JqZWN0QnlJZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjph
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg6IEFkZGVkLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxp
dHlUZXh0TWFya2VySU9TLm1tOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1dl
YktpdFRlc3RSdW5uZXJQcmVmaXguaC4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI6OmlzRXF1YWwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06IEFkZGVkLgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6fkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VxdWFsKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0TGlua2VkVUlFbGVtZW50cyk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldERvY3VtZW50TGlua3MpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbik6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRBdFBvaW50KToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5k
ZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxl
bWVudEF0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNj
bG9zZWRSb3dBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm93QXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVj
dGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0ZWRDaGlsZHJlbkNvdW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6dGl0bGVVSUVsZW1lbnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpwYXJlbnRFbGVtZW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZGlzY2xvc2VkQnlSb3cpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mRG9jdW1lbnRMaW5rcyk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNoaWxkcmVuKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxsQXR0cmlidXRlcyk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJheUF0
dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlF
bGVtZW50QXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpib29sQXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpwYXJhbWV0ZXJpemVkQXR0cmlidXRlTmFtZXMpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3Vicm9sZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnJvbGVEZXNjcmlwdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnRpdGxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZGVzY3JpcHRpb24pOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpvcmll
bnRhdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ1Zh
bHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGFuZ3VhZ2UpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWxwVGV4dCk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OngpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp5KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6d2lkdGgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHQp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW50VmFsdWUpOgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptaW5WYWx1ZSk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dmFsdWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Omluc2VydGlvblBvaW50TGluZU51bWJlcik6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUHJlc3NBY3Rpb25TdXBwb3J0ZWQpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0luY3JlbWVudEFjdGlvblN1cHBvcnRlZCk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVjcmVtZW50QWN0aW9u
U3VwcG9ydGVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFi
bGVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNSZXF1aXJlZCk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCk6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkT3B0aW9uQWN0aXZlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmRldGVybWluYXRlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVsKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xhc3NMaXN0KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWspOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXJpYURyb3BFZmZlY3RzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bGluZUZvckluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cmFuZ2VGb3JMaW5lKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cmFuZ2VGb3JQb3NpdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmJvdW5kc0ZvclJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c3RyaW5nRm9yUmFuZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nUmFuZ2VJc01pc3NwZWxsZWQpOgorICAgICAgICAo
V1RSOjp1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZSk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNo
UHJlZGljYXRlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mQ29sdW1uSGVhZGVycyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmF0dHJpYnV0ZXNPZlJvd0hlYWRlcnMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5zKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93cyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlZpc2libGVDZWxscyk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkhlYWRlcik6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0NvdW50KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uQ291bnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjppbmRleEluVGFibGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojpyb3dJbmRleFJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y29sdW1uSW5kZXhSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRSb3cpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNob3dNZW51KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cHJlc3MpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZXRTZWxlY3RlZENoaWxkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmRvY3VtZW50VVJJKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6dXJsKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNTZWxlY3RhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNNdWx0aVNlbGVjdGFibGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1Zpc2libGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc09mZlNjcmVlbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
Q29sbGFwc2VkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25v
cmVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXApOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlRm9jdXMpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlU2VsZWN0aW9uKToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yRWxlbWVudCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUxlbmd0
aCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzVGV4dE1h
cmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFy
a2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yVGV4
dE1hcmtlclJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4
dE1hcmtlclJhbmdlRm9yTWFya2Vycyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZSk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2Up
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9y
Qm91bmRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0
TWFya2VyRm9yQm91bmRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
dGV4dE1hcmtlckZvclBvaW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNv
bnRhaW5zQXR0cmlidXRlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aW5kZXhGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNUZXh0TWFya2VyVmFsaWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0ZXh0TWFya2VyRm9ySW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdGFydFRleHRNYXJrZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjplbmRUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bWF0aFBvc3RzY3JpcHRzRGVzY3JpcHRpb24pOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjptYXRoUHJlc2NyaXB0c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGF0aERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3VwcG9ydGVkQWN0aW9ucyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWN0aXZhdGVGb250c0lPUy5tbTog
Q29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyUHJlZml4
LmguCisgICAgICAgIChXVFI6OmFjdGl2YXRlRm9udHMpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW06IEFkZGVkLgor
ICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRlclByb3h5KToKKyAgICAg
ICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkpOgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uKToKKyAgICAg
ICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3duKToKKyAgICAgICAgKFdUUjo6RXZl
bnRTZW5kZXJQcm94eTo6bW91c2VVcCk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6
Om1vdXNlTW92ZVRvKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndh
cmQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjprZXlEb3duKToKKyAgICAgICAg
KFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeSk6CisgICAgICAgIChXVFI6OkV2
ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KToKKyAgICAgICAgKFdUUjo6
RXZlbnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludCk6CisgICAgICAgIChXVFI6OkV2ZW50U2Vu
ZGVyUHJveHk6OnVwZGF0ZVRvdWNoUG9pbnQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclBy
b3h5OjpzZXRUb3VjaE1vZGlmaWVyKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6
c2V0VG91Y2hQb2ludFJhZGl1cyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnRv
dWNoU3RhcnQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp0b3VjaE1vdmUpOgor
ICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCk6CisgICAgICAgIChXVFI6
OkV2ZW50U2VuZGVyUHJveHk6OnRvdWNoQ2FuY2VsKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5k
ZXJQcm94eTo6Y2xlYXJUb3VjaFBvaW50cyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJv
eHk6OnJlbGVhc2VUb3VjaFBvaW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6
Y2FuY2VsVG91Y2hQb2ludCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJT1MubW06IENvcGllZCBmcm9tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oLgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2lvcy9JbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW06IENvcGllZCBmcm9t
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oLgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnBsYXRmb3JtRGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9NYWtlZmlsZToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246Omludm9rZSk6CisgICAgICAg
IChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5u
ZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1dlYktpdFRlc3RSdW5uZXJBcHAvQXBwRGVsZWdhdGUuaDogQWRkZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL0FwcERlbGVnYXRlLm06IEFkZGVkLgor
ICAgICAgICAoLVtBcHBEZWxlZ2F0ZSBhcHBsaWNhdGlvbjpkaWRGaW5pc2hMYXVuY2hpbmdXaXRo
T3B0aW9uczpdKToKKyAgICAgICAgKC1bQXBwRGVsZWdhdGUgYXBwbGljYXRpb25XaWxsUmVzaWdu
QWN0aXZlOl0pOgorICAgICAgICAoLVtBcHBEZWxlZ2F0ZSBhcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZDpdKToKKyAgICAgICAgKC1bQXBwRGVsZWdhdGUgYXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kOl0pOgorICAgICAgICAoLVtBcHBEZWxlZ2F0ZSBhcHBsaWNhdGlvbkRpZEJlY29t
ZUFjdGl2ZTpdKToKKyAgICAgICAgKC1bQXBwRGVsZWdhdGUgYXBwbGljYXRpb25XaWxsVGVybWlu
YXRlOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9J
bWFnZXMueGNhc3NldHMvQXBwSWNvbi5hcHBpY29uc2V0L0NvbnRlbnRzLmpzb246IEFkZGVkLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9JbWFnZXMueGNh
c3NldHMvTGF1bmNoSW1hZ2UubGF1bmNoaW1hZ2UvQ29udGVudHMuanNvbjogQWRkZWQuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL1dlYktpdFRlc3RSdW5u
ZXJBcHAtSW5mby5wbGlzdDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyQXBwL1dlYktpdFRlc3RSdW5uZXJBcHAtUHJlZml4LnBjaDogQWRkZWQuCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL2VuLmxwcm9qL0lu
Zm9QbGlzdC5zdHJpbmdzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXJBcHAvbWFpbi5tOiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3Q6IEFk
ZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3Rz
L1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVy
QXBwVGVzdHMubTogQWRkZWQuCisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cyBz
ZXRVcF0pOgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMgdGVhckRvd25dKToK
KyAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzIHRlc3RFeGFtcGxlXSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMvZW4ubHByb2ov
SW5mb1BsaXN0LnN0cmluZ3M6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2Vi
S2l0VGVzdFJ1bm5lclByZWZpeC5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY2cvVGVz
dEludm9jYXRpb25DRy5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pT1MueGNjb25m
aWc6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmll
d0lPUy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1ZpZXcgaW5pdFdpdGhGcmFt
ZTpjb250ZXh0UmVmOnBhZ2VHcm91cFJlZjpyZWxhdGVkVG9QYWdlOnVzZVRpbGVkRHJhd2luZzpd
KToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLVmlldyBfc2hvdWxkVXNlVGlsZWREcmF3aW5nQXJl
YV0pOgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyV2luZG93IGlzS2V5V2luZG93XSk6Cisg
ICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgc2V0RnJhbWVPcmlnaW46XSk6CisgICAg
ICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgc2V0RnJhbWU6XSk6CisgICAgICAgICgtW1dl
YktpdFRlc3RSdW5uZXJXaW5kb3cgZnJhbWVSZXNwZWN0aW5nRmFrZU9yaWdpbl0pOgorICAgICAg
ICAoLVtXZWJLaXRUZXN0UnVubmVyV2luZG93IGJhY2tpbmdTY2FsZUZhY3Rvcl0pOgorICAgICAg
ICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChXVFI6
OlBsYXRmb3JtV2ViVmlldzo6cmVzaXplVG8pOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZp
ZXc6On5QbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnBh
Z2UpOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKToKKyAgICAgICAgKFdU
Ujo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSk6CisgICAgICAgIChXVFI6OlBsYXRmb3Jt
V2ViVmlldzo6c2V0V2luZG93RnJhbWUpOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6
OmRpZEluaXRpYWxpemVDbGllbnRzKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojph
ZGRDaHJvbWVJbnB1dEZpZWxkKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpyZW1v
dmVDaHJvbWVJbnB1dEZpZWxkKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjptYWtl
V2ViVmlld0ZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3
aW5kb3dTbmFwc2hvdEltYWdlKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp2aWV3
U3VwcG9ydHNPcHRpb25zKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29u
dHJvbGxlcklPUy5tbTogQWRkZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpub3Rp
ZnlEb25lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdpbkRpcmVj
dG9yeSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJ1blVudGlsKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1dlYkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbTogQ29w
aWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyUHJlZml4Lmgu
CisgICAgICAgIChjcmVhdGVDRlVSTFJlc3BvbnNlRnJvbVJlc3BvbnNlRGF0YSk6CisgICAgICAg
IChzdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvbWFpbklPUy5tbTogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyUHJlZml4LmguCisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJBcHAgX3J1
blRlc3RDb250cm9sbGVyXSk6CisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJBcHAgYXBwbGlj
YXRpb25EaWRGaW5pc2hMYXVuY2hpbmc6XSk6CisgICAgICAgIChtYWluKToKKwogMjAxNC0wMS0y
MyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQREZQ
bHVnaW46IFVzZSBQREZQbHVnaW4gZXZlbiBpZiB0aGVyZSdzIGFuIGV4dGVybmFsIHBsdWdpbiBp
bnN0YWxsZWQsIGlmIGl0J3MgYmxvY2tlZApkaWZmIC0tZ2l0IGEvVG9vbHMvTWFrZWZpbGUgYi9U
b29scy9NYWtlZmlsZQppbmRleCAyODgwNjAzMTE2ODM1MmY4MjhmMDI2ZmM1MWUyYWE4ZjhhYzBk
N2U4Li5iYWFkNTgzZjNiMTJiZDAwZGM0OTJmMDJiNGY4YWJjN2ZmZjcyMTMxIDEwMDY0NAotLS0g
YS9Ub29scy9NYWtlZmlsZQorKysgYi9Ub29scy9NYWtlZmlsZQpAQCAtMyw3ICszLDcgQEAgTU9E
VUxFUyA9IER1bXBSZW5kZXJUcmVlIFdlYktpdFRlc3RSdW5uZXIgTWluaUJyb3dzZXIgLi4vU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QKIGlmbmVxICgsJChmaW5kc3RyaW5nIGlwaG9uZSwkKFNES1JP
T1QpKSkKIAkjIEZJWE1FOiBCdWlsZCBwcm9qZWN0cyAuLi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC94Y29kZSwgVGVzdFdlYktpdEFQSSBmb3IgYm90aCBkZXZpY2UgYW5kIHNpbXVsYXRvcgogCSMg
YW5kIGJ1aWxkIHByb2plY3QgRHVtcFJlbmRlclRyZWUgZm9yIHNpbXVsYXRvci4KLQlNT0RVTEVT
ID0KKwlNT0RVTEVTID0gV2ViS2l0VGVzdFJ1bm5lcgogZW5kaWYKIAogYWxsOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4
IDQ4NTFmYzFkMWQ4ODk2YmEzNzk2MjJmZTZjNWUzNTk2ZDBiMTY0YWQuLmU0MTMxYTBkYTZmMzQ5
ODQyOTA5YTliYzJhZTBhMDJiZDQwOGM1ODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTIxLDYgKzIxLDggQEAKIC8v
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAKKyNpbmNsdWRlICJpT1MueGNjb25maWci
CisKIENMQU5HX0NYWF9MQU5HVUFHRV9TVEFOREFSRCA9IGdudSsrMHg7CiBDTEFOR19DWFhfTElC
UkFSWSA9IGxpYmMrKzsKIENMQU5HX1dBUk5fQ1hYMFhfRVhURU5TSU9OUyA9IE5POwpAQCAtMzcs
NiArMzksOCBAQCBHQ0NfVkVSU0lPTiA9IGNvbS5hcHBsZS5jb21waWxlcnMubGx2bS5jbGFuZy4x
XzA7CiBHQ0NfV0FSTl9BQk9VVF9ERVBSRUNBVEVEX0ZVTkNUSU9OUyA9IE5PCiBHQ0NfV0FSTl9V
TlVTRURfRlVOQ1RJT04gPSBZRVMKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUworR0ND
X1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT05bYXJjaD1hcm02NF0gPSBOTzsKK0dDQ19XQVJO
XzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OW2FyY2g9eDg2XzY0XSA9IE5POwogV0FSTklOR19DRkxB
R1MgPSAtV2FsbCAtVyAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVd1bmRlZgogTElOS0VSX0RJU1BM
QVlTX01BTkdMRURfTkFNRVMgPSBZRVM7CiBHQ0NfUFJFRklYX0hFQURFUiA9IFdlYktpdFRlc3RS
dW5uZXJQcmVmaXguaApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1
cmF0aW9ucy9JbmplY3RlZEJ1bmRsZS54Y2NvbmZpZyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Q29uZmlndXJhdGlvbnMvSW5qZWN0ZWRCdW5kbGUueGNjb25maWcKaW5kZXggN2Q3OGUzZTgxYjgy
MzNlZmNiNjM2ZjI3ODMzMWFlZTBlZWNiNTM5Ny4uYzMzMzg3ZTJmZjFmNmY3ZDk3ZmQ2MmUxYWI2
Yjg5YWRkMTZmMGYxNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1
cmF0aW9ucy9JbmplY3RlZEJ1bmRsZS54Y2NvbmZpZworKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0NvbmZpZ3VyYXRpb25zL0luamVjdGVkQnVuZGxlLnhjY29uZmlnCkBAIC0yOCw0ICsyOCwx
NCBAQCBQUk9EVUNUX05BTUUgPSBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGU7CiAKIElO
U1RBTExfUEFUSCA9ICQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzL1dlYktpdC5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXM7CiBTS0lQX0lOU1RBTEwgPSBOTzsKLU9USEVSX0xE
RkxBR1MgPSAkKGluaGVyaXRlZCkgLWwkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUlkp
OworCitPVEhFUl9MREZMQUdTX0JBU0UgPSAkKGluaGVyaXRlZCkgLWwkKFdFQktJVF9TWVNURU1f
SU5URVJGQUNFX0xJQlJBUlkpIC1mcmFtZXdvcmsgUXVhcnR6Q29yZTsKK09USEVSX0xERkxBR1Mg
PSAkKE9USEVSX0xERkxBR1NfJChQTEFURk9STV9OQU1FKSk7CitPVEhFUl9MREZMQUdTX2lwaG9u
ZW9zID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdv
cmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBGb3Vu
ZGF0aW9uIC1mcmFtZXdvcmsgVUlLaXQ7CitPVEhFUl9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9
ICQoT1RIRVJfTERGTEFHU19pcGhvbmVvcyk7CitPVEhFUl9MREZMQUdTX21hY29zeCA9ICQoT1RI
RVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENhcmJvbiAtZnJhbWV3b3JrIENvY29hOworCitF
WENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyA9ICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNf
JChQTEFURk9STV9OQU1FKSk7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyA9
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFj
Lm1tIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gQWN0aXZhdGVGb250cy5tbSBJbmplY3Rl
ZEJ1bmRsZU1hYy5tbSBJbmplY3RlZEJ1bmRsZVBhZ2VNYWMubW0gV2ViQXJjaGl2ZUR1bXBTdXBw
b3J0TWFjLm1tOworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfaXBob25lc2ltdWxhdG9yID0g
JChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyk7CitFWENMVURFRF9TT1VSQ0Vf
RklMRV9OQU1FU19tYWNvc3ggPSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50SVBob25lLm1tOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9XZWJLaXRUZXN0
UnVubmVyLnhjY29uZmlnIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9X
ZWJLaXRUZXN0UnVubmVyLnhjY29uZmlnCmluZGV4IDA3MTAxNmVmMjZiNjNiNWFkNGQ1MDllODVh
OTdmOTlhYTU0ODdjZDkuLmMwN2FkMjRkMWEyZGQ3ZThlOWNkNTVkY2MyZjI5YmEzYTdiYjYzZTUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0
VGVzdFJ1bm5lci54Y2NvbmZpZworKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3Vy
YXRpb25zL1dlYktpdFRlc3RSdW5uZXIueGNjb25maWcKQEAgLTI2LDUgKzI2LDE2IEBACiBQUk9E
VUNUX05BTUUgPSBXZWJLaXRUZXN0UnVubmVyCiBHQ0NfRU5BQkxFX09CSkNfRVhDRVBUSU9OUyA9
IFlFUwogCitPVEhFUl9MREZMQUdTX0JBU0UgPSAtbCQoV0VCS0lUX1NZU1RFTV9JTlRFUkZBQ0Vf
TElCUkFSWSkgLWZyYW1ld29yayBXZWJLaXQyOworT1RIRVJfTERGTEFHUyA9ICQoT1RIRVJfTERG
TEFHU18kKFBMQVRGT1JNX05BTUUpKTsKK09USEVSX0xERkxBR1NfaXBob25lb3MgPSAkKE9USEVS
X0xERkxBR1NfQkFTRSkgLWZyYW1ld29yayBKYXZhU2NyaXB0Q29yZSAtZnJhbWV3b3JrIENvcmVH
cmFwaGljcyAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBVSUtpdDsKK09USEVSX0xERkxB
R1NfaXBob25lc2ltdWxhdG9yID0gJChPVEhFUl9MREZMQUdTX2lwaG9uZW9zKTsKK09USEVSX0xE
RkxBR1NfbWFjb3N4ID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ2FyYm9uIC1m
cmFtZXdvcmsgQ29jb2E7CisKIElOU1RBTExfUEFUSCA9ICQoU1lTVEVNX0xJQlJBUllfRElSKS9G
cmFtZXdvcmtzL1dlYktpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXM7CiBTS0lQX0lO
U1RBTEwgPSBOTzsKKworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVMgPSAkKEVYQ0xVREVEX1NP
VVJDRV9GSUxFX05BTUVTXyQoUExBVEZPUk1fTkFNRSkpOworRVhDTFVERURfU09VUkNFX0ZJTEVf
TkFNRVNfaXBob25lb3MgPSBFdmVudFNlbmRlclByb3h5Lm1tIG1haW4ubW0gUGxhdGZvcm1XZWJW
aWV3TWFjLm1tIFRlc3RDb250cm9sbGVyTWFjLm1tIG1hYy8qOworRVhDTFVERURfU09VUkNFX0ZJ
TEVfTkFNRVNfaXBob25lc2ltdWxhdG9yID0gJChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19p
cGhvbmVvcyk7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19tYWNvc3ggPSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50SVBob25lLm1tOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAKaW5k
ZXggOTZjNzljNDUyOWM0NjgxM2NhYTM0N2IzOTkxMjc2ZDM1NmNiZDc2My4uNjVlMzU1NjUyZjlk
MzBjOTNmMDYxZjE4MmNjOGJmODI2OTIyMTg3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0cnVjdCBNZW51SXRlbVByaXZhdGVEYXRhIHsKICAg
ICBXS1JldGFpblB0cjxXS0NvbnRleHRNZW51SXRlbVJlZj4gbV9pdGVtOwogfTsKIAotCisjaWYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCiBzdGF0aWMgSlNWYWx1ZVJlZiBtZW51SXRlbUNsaWNrQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIE1lbnVJdGVtUHJpdmF0
ZURhdGEqIHByaXZhdGVEYXRhID0gc3RhdGljX2Nhc3Q8TWVudUl0ZW1Qcml2YXRlRGF0YSo+KEpT
T2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0xMDQsNiArMTA0LDcgQEAgc3RhdGlj
IEpTQ2xhc3NSZWYgZ2V0TWVudUl0ZW1DbGFzcygpCiAKICAgICByZXR1cm4gbWVudUl0ZW1DbGFz
czsKIH0KKyNlbmRpZgogCiBzdGF0aWMgV0tFdmVudE1vZGlmaWVycyBwYXJzZU1vZGlmaWVyKEpT
U3RyaW5nUmVmIG1vZGlmaWVyKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcklPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmZkMWM2MTIxZWU5NGU3NzUyYjc0NzYwNjZmNTNmYWM1
YWQ2NWE0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0KQEAgLTAsMCArMSw4NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQWNjZXNzaWJpbGl0
eUNvbW1vbk1hYy5oIgorI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCIKKyNpbXBv
cnQgIkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgiCisjaW1wb3J0ICJJbmplY3Rl
ZEJ1bmRsZS5oIgorI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGVQYWdlLmgiCisKKyNpbXBvcnQgPEph
dmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU1N0
cmluZ1JlZi5oPgorI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWZDRi5oPgorI2lt
cG9ydCA8V2ViS2l0Mi9XS0J1bmRsZS5oPgorI2ltcG9ydCA8V2ViS2l0Mi9XS0J1bmRsZVBhZ2Uu
aD4KKyNpbXBvcnQgPFdlYktpdDIvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oPgorCituYW1lc3BhY2Ug
V1RSIHsKKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlz
dGVuZXIoSlNWYWx1ZVJlZiBmdW5jdGlvbkNhbGxiYWNrKQoreworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTGlz
dGVuZXIoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpCit7CisgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoImlvcyIpKTsKKyAgICByZXR1cm4gcGxhdGZvcm1OYW1lOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCkKK3sK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0
ZSgpCit7CisgICAgaWYgKG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlcikKKyAgICAgICAgcmVt
b3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKK30KKworc3RhdGljIGlkIGZpbmRBY2Nlc3NpYmxl
T2JqZWN0QnlJZChpZCBvYmosIE5TU3RyaW5nICppZEF0dHJpYnV0ZSkKK3sKKyAgICByZXR1cm4g
MDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkQXR0cmlidXRl
KQoreworICAgIFdLQnVuZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LnBhZ2UoKS0+cGFnZSgpOworICAgIGlkIHJvb3QgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVVJRWxl
bWVudD4oV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChwYWdlKSk7CisKKyAgICBpZCByZXN1bHQg
PSBmaW5kQWNjZXNzaWJsZU9iamVjdEJ5SWQocm9vdCwgW05TU3RyaW5nIHN0cmluZ1dpdGhKU1N0
cmluZ1JlZjppZEF0dHJpYnV0ZV0pOworICAgIGlmIChyZXN1bHQpCisgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUocmVzdWx0KTsKKworICAgIHJldHVybiAwOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjMTYwODg3NWFmYWE5NWUxMmYyMDM3
MTU1N2RhZWQ3ZjEwNjg0YTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVy
X2gKKyNkZWZpbmUgQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXJfaAorCisjaW1wb3J0
IDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFJlZi5oPgorCitAaW50ZXJmYWNlIEFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb25IYW5kbGVyIDogTlNPYmplY3QgeworICAgIGlkIG1fcGxhdGZvcm1FbGVt
ZW50OworICAgIEpTVmFsdWVSZWYgbV9ub3RpZmljYXRpb25GdW5jdGlvbkNhbGxiYWNrOworfQor
CistIChpZClpbml0OworLSAodm9pZClzZXRQbGF0Zm9ybUVsZW1lbnQ6KGlkKXBsYXRmb3JtRWxl
bWVudDsKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KEpTVmFsdWVSZWYpY2FsbGJhY2s7CistICh2b2lk
KXN0YXJ0T2JzZXJ2aW5nOworLSAodm9pZClzdG9wT2JzZXJ2aW5nOworCitAZW5kCisKKyNlbmRp
ZiAvLyBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlcl9oCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0Fj
Y2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkYzY4ZDcyZmRkOGE5NGJk
M2ZiNzU5Yjk2MWYxODdkYTY4ZDkxMDgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5t
bQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIG90aGVyKQoreworICAgIHJl
dHVybiBbKGlkKXBsYXRmb3JtVGV4dE1hcmtlcigpIGlzRXF1YWw6KGlkKW90aGVyLT5wbGF0Zm9y
bVRleHRNYXJrZXIoKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzZkYjFlYmM2YzVmZDcw
YWFiMzk2OGM2Y2M2MWIzMDZlNWI5MDk3Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5t
bQpAQCAtMCwwICsxLDc3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCIKKyNpbXBvcnQgIkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQuaCIKKyNpbXBvcnQgIkluamVjdGVkQnVuZGxlLmgiCisjaW1wb3J0
ICJJbmplY3RlZEJ1bmRsZVBhZ2UuaCIKKyNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CisKK25hbWVz
cGFjZSBXVFIgeworCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lbnQpCisgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkK
K3sKKyAgICAvLyBGSVhNRTogYXBAd2Via2l0Lm9yZyBzYXlzIE9iakMgb2JqZWN0cyBuZWVkIHRv
IGJlIENGUmV0YWluZWQvQ0ZSZWxlYXNlIHRvIGJlIEdDLWNvbXBsaWFudCBvbiB0aGUgbWFjLgor
ICAgIFttX2VsZW1lbnQgcmV0YWluXTsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudChjb25zdCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50JiBvdGhlcikK
KyAgICA6IEpTV3JhcHBhYmxlKCkKKyAgICAsIG1fZWxlbWVudChvdGhlci5tX2VsZW1lbnQpCit7
CisgICAgW21fZWxlbWVudCByZXRhaW5dOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp+
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCgpCit7CisgICAgW21fZWxlbWVudCByZWxlYXNlXTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VxdWFsKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQqIG90aGVyRWxlbWVudCkKK3sKKyAgICBpZiAoIW90aGVyRWxlbWVudCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwbGF0Zm9ybVVJRWxlbWVudCgpID09IG90aGVyRWxl
bWVudC0+cGxhdGZvcm1VSUVsZW1lbnQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpnZXRMaW5rZWRVSUVsZW1lbnRzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gPiYgZWxlbWVudFZlY3RvcikKK3sKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpnZXREb2N1bWVudExpbmtzKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gPiYgZWxlbWVudFZlY3RvcikKK3sKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpnZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVs
ZW1lbnRWZWN0b3IpCit7CisgICAgTlNJbnRlZ2VyIGNoaWxkQ291bnQgPSBbbV9lbGVtZW50IGFj
Y2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOworICAgIGZvciAoTlNJbnRlZ2VyIGsgPSAwOyBrIDwg
Y2hpbGRDb3VudDsgKytrKQorICAgICAgICBlbGVtZW50VmVjdG9yLmFwcGVuZChBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpjcmVhdGUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5k
ZXg6a10pKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbldp
dGhSYW5nZShWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mIGVsZW1lbnRW
ZWN0b3IsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgTlNVSW50
ZWdlciBjaGlsZENvdW50ID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RWxlbWVudENvdW50XTsK
KyAgICBmb3IgKE5TVUludGVnZXIgayA9IGxvY2F0aW9uOyBrIDwgY2hpbGRDb3VudCAmJiBrIDwg
KGxvY2F0aW9uK2xlbmd0aCk7ICsraykKKyAgICAgICAgZWxlbWVudFZlY3Rvci5hcHBlbmQoQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUVsZW1l
bnRBdEluZGV4OmtdKSk7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJl
bkNvdW50KCkKK3sKKyAgICBWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+PiBj
aGlsZHJlbjsKKyAgICBnZXRDaGlsZHJlbihjaGlsZHJlbik7CisKKyAgICByZXR1cm4gY2hpbGRy
ZW4uc2l6ZSgpOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRBdFBvaW50KGludCB4LCBpbnQgeSkKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKwordW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNo
aWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIDA7Cit9
CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIFZlY3RvcjxSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiBjaGlsZHJlbjsKKyAgICBnZXRDaGlsZHJlbldpdGhS
YW5nZShjaGlsZHJlbiwgaW5kZXgsIDEpOworCisgICAgaWYgKGNoaWxkcmVuLnNpemUoKSA9PSAx
KQorICAgICAgICByZXR1cm4gY2hpbGRyZW5bMF07CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlu
a2VkVUlFbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gMDsKK30K
KworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVy
biAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmFyaWFGbG93VG9FbGVtZW50QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sK
KyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4
KQoreworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7
CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQgaW5k
ZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnNlbGVjdGVkQ2hpbGRyZW5Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7
Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVy
biAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpw
YXJlbnRFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gbmlsOworfQorCitQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93
KCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkxpbmtlZFVJRWxlbWVudHMoKQoreworICAg
IHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mRG9j
dW1lbnRMaW5rcygpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMo
MCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRl
V2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphbGxBdHRyaWJ1dGVzKCkKK3sKKyAgICByZXR1cm4gSlNTdHJp
bmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKEpTU3RyaW5n
UmVmIGF0dHJpYnV0ZSkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVy
cygwLCAwKTsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om51bWJlckF0dHJp
YnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICByZXR1cm4gMDsKK30KKwor
SlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJheUF0dHJpYnV0
ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30K
KworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym9v
bEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJs
ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVm
IGF0dHJpYnV0ZSkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJhbWV0ZXJpemVkQXR0cmlidXRlTmFt
ZXMoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOwor
fQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9s
ZSgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdWJy
b2xlKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJv
bGVEZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0aXRsZSgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpkZXNjcmlwdGlvbigpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENo
YXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpvcmllbnRhdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIEpTU3RyaW5n
Q3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgcmV0dXJuIEpT
U3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsYW5ndWFnZSgpCit7CisgICAgcmV0dXJu
IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWxwVGV4dCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK2RvdWJs
ZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp4KCkKK3sKKyAgICBDR1JlY3QgZnJhbWUgPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlGcmFtZV07CisgICAgcmV0dXJuIGZyYW1lLm9yaWdpbi54Owor
fQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eSgpCit7CisgICAgQ0dSZWN0IGZy
YW1lID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RnJhbWVdOworICAgIHJldHVybiBmcmFtZS5v
cmlnaW4ueTsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndpZHRoKCkKK3sK
KyAgICBDR1JlY3QgZnJhbWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlGcmFtZV07CisgICAg
cmV0dXJuIGZyYW1lLnNpemUud2lkdGg7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpoZWlnaHQoKQoreworICAgIENHUmVjdCBmcmFtZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJp
bGl0eUZyYW1lXTsKKyAgICByZXR1cm4gZnJhbWUuc2l6ZS5oZWlnaHQ7Cit9CisKK2RvdWJsZSBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCit7CisgICAgcmV0dXJuIDA7Cit9
CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WSgpCit7CisgICAg
cmV0dXJuIDA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnRWYWx1ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjptaW5WYWx1ZSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjptYXhWYWx1ZSgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2YWx1ZURlc2NyaXB0aW9u
KCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30K
KworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omluc2VydGlvblBvaW50TGluZU51bWJlcigp
Cit7CisgICAgcmV0dXJuIC0xOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
UHJlc3NBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0luY3JlbWVudEFjdGlvblN1cHBvcnRlZCgpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVj
cmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNSZXF1aXJlZCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
Rm9jdXNlZCgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkKCkgY29u
c3QKK3sKKyAgICBVSUFjY2Vzc2liaWxpdHlUcmFpdHMgdHJhaXRzID0gW21fZWxlbWVudCBhY2Nl
c3NpYmlsaXR5VHJhaXRzXTsKKyAgICByZXR1cm4gKHRyYWl0cyAmIFVJQWNjZXNzaWJpbGl0eVRy
YWl0U2VsZWN0ZWQpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0
ZWRPcHRpb25BY3RpdmUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmRldGVy
bWluYXRlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0NoZWNrZWQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVsKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzcGVhaygpCit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJp
YUlzR3JhYmJlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYURyb3BFZmZlY3RzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsK
K30KKworLy8gcGFyYW1ldGVyaXplZCBhdHRyaWJ1dGVzCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bGluZUZvckluZGV4KGludCBpbmRleCkKK3sKKyAgICByZXR1cm4gLTE7Cit9CisKK0pT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvckxp
bmUoaW50IGxpbmUpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvclBvc2l0aW9uKGludCB4LCBpbnQg
eSkKK3sKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5kc0ZvclJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNp
Z25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMo
MCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzdHJpbmdGb3JSYW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGVuZ3RoKQor
eworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
ZFN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7Cisg
ICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVk
KHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit1bnNpZ25lZCB1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRl
eHRSZWYsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIHN0YXJ0RWxlbWVudCwgYm9vbCBpc0RpcmVj
dGlvbk5leHQsIEpTVmFsdWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBzZWFyY2hUZXh0LCBi
b29sIHZpc2libGVPbmx5KQoreworICAgIHJldHVybiAwOworfQorCit1bnNpZ25lZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRl
eHRSZWYgY29udGV4dCwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogc3RhcnRFbGVtZW50LCBib29s
IGlzRGlyZWN0aW9uTmV4dCwgSlNWYWx1ZVJlZiBzZWFyY2hLZXksIEpTU3RyaW5nUmVmIHNlYXJj
aFRleHQsIGJvb2wgdmlzaWJsZU9ubHkpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVt
ZW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KiBzdGFydEVsZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVlUmVm
IHNlYXJjaEtleSwgSlNTdHJpbmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSkKK3sK
KyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAgIHJldHVybiBK
U1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93SGVhZGVycygp
Cit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVzT2ZDb2x1bW5zKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVy
cygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmF0dHJpYnV0ZXNPZlJvd3MoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdp
dGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mVmlzaWJsZUNlbGxzKCkKK3sKKyAgICByZXR1
cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkhlYWRlcigp
Cit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisK
K2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dDb3VudCgpCit7CisgICAgcmV0dXJuIC0x
OworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uQ291bnQoKQoreworICAg
IHJldHVybiAtMTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4SW5UYWJs
ZSgpCit7CisgICAgcmV0dXJuIC0xOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93SW5kZXhSYW5nZSgpCit7CisgICAgcmV0dXJuIEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5JbmRleFJhbmdlKCkKK3sKKyAgICBy
ZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9y
Q29sdW1uQW5kUm93KHVuc2lnbmVkIGNvbCwgdW5zaWduZWQgcm93KQoreworICAgIHJldHVybiAw
OworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Omhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKK3sKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVj
dGVkVGV4dFJhbmdlKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVy
cygwLCAwKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFRl
eHRSYW5nZSh1bnNpZ25lZCBsb2NhdGlvbiwgdW5zaWduZWQgbGVuZ3RoKQoreworfQorCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7CisgICAgW21fZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5SW5jcmVtZW50XTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpkZWNyZW1lbnQoKQoreworICAgIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eURlY3JlbWVudF07
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2hvd01lbnUoKQoreworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXNzKCkKK3sKK30KKwordm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQq
IGVsZW1lbnQpIGNvbnN0Cit7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5VmFsdWUoKSBjb25zdAoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygw
LCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRvY3VtZW50RW5jb2RpbmcoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhD
aGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRVUkkoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0
ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJhY2spCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92
ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAoreworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGFibGUo
KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25z
dAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNWaXNpYmxlKCkgY29uc3QKK3sKKyAgICAvLyBG
SVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSWdub3JlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZUZvY3VzKCkKK3sKKyAgICAvLyBGSVhNRTogaW1w
bGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigp
Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmFkZFNlbGVjdGlvbigpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlvbigpCit7CisgICAgLy8g
RklYTUU6IGltcGxlbWVudAorfQorCisvLyBUZXh0IG1hcmtlcnMKK1Bhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtl
clJhbmdlRm9yRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KQoreworICAg
IHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJh
bmdlTGVuZ3RoKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIHJhbmdlKQoreworICAgIHJl
dHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXIqIHRleHRNYXJrZXIpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2Vy
KEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiB0ZXh0TWFya2VyKQoreworICAgIHJldHVybiAwOwor
fQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Ry
aW5nRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIG1hcmtl
clJhbmdlKQoreworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZv
ck1hcmtlcnMoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIHN0YXJ0TWFya2VyLCBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlciogZW5kTWFya2VyKQoreworICAgIHJldHVybiAwOworfQorCitQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFy
dFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5n
ZSogcmFuZ2UpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JUZXh0
TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UpCit7CisgICAg
cmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JCb3VuZHMoaW50IHgsIGludCB5LCBp
bnQgd2lkdGgsIGludCBoZWlnaHQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Bhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0
YXJ0VGV4dE1hcmtlckZvckJvdW5kcyhpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo
dCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvclBvaW50KGlu
dCB4LCBpbnQgeSkKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVu
dEZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIG1hcmtlcikKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3Ry
aW5nRm9yVGV4dE1hcmtlclJhbmdlQ29udGFpbnNBdHRyaWJ1dGUoSlNTdHJpbmdSZWYgYXR0cmli
dXRlLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiByYW5nZSkKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEZvclRleHRNYXJr
ZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqIG1hcmtlcikKK3sKKyAgICByZXR1cm4gLTE7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0TWFya2VyVmFsaWQoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqIHRleHRNYXJrZXIpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQor
CitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0ZXh0TWFya2VyRm9ySW5kZXgoaW50IHRleHRJbmRleCkKK3sKKyAgICByZXR1cm4gMDsK
K30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RhcnRUZXh0TWFya2VyKCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
UGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6ZW5kVGV4dE1hcmtlcigpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYXRoUG9zdHNjcmlwdHNE
ZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptYXRoUHJlc2NyaXB0c0Rlc2NyaXB0
aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzdXBwb3J0ZWRBY3Rpb25zKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30K
KworfSAvLyBuYW1lc3BhY2UgV1RSCisKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjdGl2YXRlRm9udHNJT1MubW0gYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY3RpdmF0ZUZvbnRzSU9TLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdmNzM0YjhkNjUzMDdhZWIyYjFlMjRhMDcyNDI2YTI4NTBiYjI2ZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY3RpdmF0
ZUZvbnRzSU9TLm1tCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCituYW1lc3BhY2UgV1RSIHsKKwor
dm9pZCBhY3RpdmF0ZUZvbnRzKCkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKworfQorCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNl
bmRlclByb3h5SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZjVhOTg2NmNlNjI2MzkxYWFk
YTMxNTBjN2I5ZjVkNTdjZjA4YmRjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbQpAQCAtMCww
ICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXZl
bnRTZW5kZXJQcm94eS5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbXBvcnQg
IlN0cmluZ0Z1bmN0aW9ucy5oIgorI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKKyNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdUUiB7CisKK0V2ZW50U2VuZGVyUHJveHk6OkV2ZW50U2VuZGVyUHJveHkoVGVzdENvbnRy
b2xsZXIqIHRlc3RDb250cm9sbGVyKQorICAgIDogbV90ZXN0Q29udHJvbGxlcih0ZXN0Q29udHJv
bGxlcikKKyAgICAsIG1fdGltZSgwKQorICAgICwgbV9wb3NpdGlvbigpCisgICAgLCBtX2xlZnRN
b3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkKKyAgICAsIG1fY2xp
Y2tUaW1lKDApCisgICAgLCBtX2NsaWNrUG9zaXRpb24oKQorICAgICwgbV9jbGlja0J1dHRvbihr
V0tFdmVudE1vdXNlQnV0dG9uTm9CdXR0b24pCisgICAgLCBldmVudE51bWJlcigwKQoreworICAg
IFVOVVNFRF9QQVJBTShtX3Rlc3RDb250cm9sbGVyKTsKKyAgICBVTlVTRURfUEFSQU0obV9sZWZ0
TW91c2VCdXR0b25Eb3duKTsKKyAgICBVTlVTRURfUEFSQU0oZXZlbnROdW1iZXIpOworfQorCitF
dmVudFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6dXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbihpbnQgYnV0dG9uKQoreworICAg
IGlmIChtX3RpbWUgLSBtX2NsaWNrVGltZSA8IDEgJiYgbV9wb3NpdGlvbiA9PSBtX2NsaWNrUG9z
aXRpb24gJiYgYnV0dG9uID09IG1fY2xpY2tCdXR0b24pIHsKKyAgICAgICAgKyttX2NsaWNrQ291
bnQ7CisgICAgICAgIG1fY2xpY2tUaW1lID0gbV90aW1lOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9jbGlja0NvdW50ID0gMTsKKyAgICBtX2NsaWNrVGltZSA9IG1fdGltZTsKKyAg
ICBtX2NsaWNrUG9zaXRpb24gPSBtX3Bvc2l0aW9uOworICAgIG1fY2xpY2tCdXR0b24gPSBidXR0
b247Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3duKHVuc2lnbmVkIGJ1dHRv
bk51bWJlciwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMpCit7CisgICAgLy8gV3JpdGUgbWUu
Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCh1bnNpZ25lZCBidXR0b25OdW1i
ZXIsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzKQoreworICAgIC8vIFdyaXRlIG1lLgorfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSB4LCBkb3VibGUgeSkK
K3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9y
d2FyZChpbnQgbWlsbGlzZWNvbmRzKQoreworICAgIG1fdGltZSArPSBtaWxsaXNlY29uZHMgLyAx
MDAwLjA7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiBr
ZXksIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCB1bnNpZ25lZCBrZXlMb2NhdGlvbikKK3sK
KyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5KGludCB4LCBpbnQgeSkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgeCwgaW50IHksIGJvb2wgcGFn
ZWQpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
dm9pZCBFdmVudFNlbmRlclByb3h5OjphZGRUb3VjaFBvaW50KGludCB4LCBpbnQgeSkKK3sKKyAg
ICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBv
aW50KGludCBpbmRleCwgaW50IHgsIGludCB5KQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoTW9kaWZpZXIoV0tFdmVudE1vZGlmaWVycywg
Ym9vbCBlbmFibGUpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhpbnQgcmFkaXVzWCwgaW50IHJhZGl1c1kpCit7Cisg
ICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hTdGFydCgp
Cit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hN
b3ZlKCkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0
b3VjaEVuZCgpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6dG91Y2hDYW5jZWwoKQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2b2lkIEV2ZW50U2Vu
ZGVyUHJveHk6OmNsZWFyVG91Y2hQb2ludHMoKQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCBpbmRleCkKK3sKKyAg
ICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBv
aW50KGludCBpbmRleCkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKyNlbmRpZgorCit9IC8vIG5h
bWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0luamVjdGVkQnVuZGxlSU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjZjYjIw
YzViOWE4MmE5ZTg1YTg5ODQ4ODNlNGE0OWFmOWJlMjc4YwotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVuZGxlSU9T
Lm1tCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJJbmplY3RlZEJ1bmRs
ZS5oIgorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworQGludGVyZmFjZSBO
U1VSTFJlcXVlc3QgKFByaXZhdGVUaGluZ3NXZVNob3VsZG50UmVhbGx5VXNlKQorKyh2b2lkKXNl
dEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGU6KEJPT0wpYWxsb3cgZm9ySG9zdDooTlNTdHJpbmcg
Kilob3N0OworQGVuZAorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6
cGxhdGZvcm1Jbml0aWFsaXplKFdLVHlwZVJlZikKK3sKKyAgICBOU0RpY3Rpb25hcnkgKmRpY3Qg
PSBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtleXM6CisgICAgICAgIG5p
bF07CisKKyAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRWb2xh
dGlsZURvbWFpbjpkaWN0IGZvck5hbWU6TlNBcmd1bWVudERvbWFpbl07CisKKyAgICBbTlNVUkxS
ZXF1ZXN0IHNldEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGU6WUVTIGZvckhvc3Q6QCJsb2NhbGhv
c3QiXTsKKyAgICBbTlNVUkxSZXF1ZXN0IHNldEFsbG93c0FueUhUVFBTQ2VydGlmaWNhdGU6WUVT
IGZvckhvc3Q6QCIxMjcuMC4wLjEiXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9JbmplY3RlZEJ1
bmRsZVBhZ2VJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lv
cy9JbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI0MTYxNWIzZmY5ZTI3MjJh
MDJhNjBhNWMzNWRjNWM1MDc4ZWZlOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVuZGxlUGFnZUlPUy5tbQpAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJJ
bmplY3RlZEJ1bmRsZVBhZ2UuaCIKKworI2ltcG9ydCAiU3RyaW5nRnVuY3Rpb25zLmgiCisjaW1w
b3J0IDxXZWJLaXQyL1dLQnVuZGxlRnJhbWUuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tVUkxDRi5o
PgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWlu
UHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW1wb3J0IDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK3VzaW5nIG5hbWVzcGFjZSBX
VEY7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpwbGF0Zm9ybURpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL01ha2VmaWxlIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9NYWtlZmlsZQppbmRleCA0NjQ4Zjk4MDc3ZDg4MGMyYjgxODkwMWRi
NzRhNDgxNjAyM2M0NDljLi41ODlmNzI2YjY2Y2FmNTZhOTZlN2M3ZDRkYjdiMjVkYjU1OGRkNTNj
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL01ha2VmaWxlCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvTWFrZWZpbGUKQEAgLTUsNiArNSwxMCBAQCBCVUlMRF9XRUJLSVRU
RVNUUlVOTkVSID0gJChzaGVsbCAoKCAkKE9TWF9WRVJTSU9OKSA+PSA2ICkpICYmIGVjaG8gIllF
UyIgKQogCiBpZmVxICIkKEJVSUxEX1dFQktJVFRFU1RSVU5ORVIpIiAiWUVTIgogCitpZm5lcSAo
LCQoZmluZHN0cmluZyBpcGhvbmUsJChTREtST09UKSkpCisJT1RIRVJfT1BUSU9OUyArPSAtdGFy
Z2V0IFdlYktpdFRlc3RSdW5uZXJBcHAKK2VuZGlmCisKIFNDUklQVFNfUEFUSCA9IC4uL1Njcmlw
dHMKIGluY2x1ZGUgLi4vLi4vTWFrZWZpbGUuc2hhcmVkCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNzBmYTRhMjk4MGMzOTYxN2RjMzZjYjA0MjQ1NjYx
NDI1NzQzNzljOS4uYzVhNDJhZWJlNGNlODRlNzgwNjViODYwZDNiN2QyYTlkMmY4YzMxZiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTMxMSwxMCArMzEx
LDEyIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNo
YXIqIGFyZ3ZbXSkKICAgICBtX2NvbnRleHQuYWRvcHQoV0tDb250ZXh0Q3JlYXRlV2l0aEluamVj
dGVkQnVuZGxlUGF0aChpbmplY3RlZEJ1bmRsZVBhdGgoKSkpOwogICAgIG1fZ2VvbG9jYXRpb25Q
cm92aWRlciA9IGFkb3B0UHRyKG5ldyBHZW9sb2NhdGlvblByb3ZpZGVyTW9jayhtX2NvbnRleHQu
Z2V0KCkpKTsKIAorI2lmICFQTEFURk9STShJT1MpCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID4gMTA4MAogICAgIFdLQ29udGV4dFNldFVzZXNO
ZXR3b3JrUHJvY2VzcyhtX2NvbnRleHQuZ2V0KCksIHRydWUpOwogICAgIFdLQ29udGV4dFNldFBy
b2Nlc3NNb2RlbChtX2NvbnRleHQuZ2V0KCksIGtXS1Byb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25k
YXJ5UHJvY2Vzc2VzKTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBpZiAoY29uc3QgY2hhciogZHVt
cFJlbmRlclRyZWVUZW1wID0gbGlicmFyeVBhdGhGb3JUZXN0aW5nKCkpIHsKICAgICAgICAgU3Ry
aW5nIHRlbXBvcmFyeUZvbGRlciA9IFN0cmluZzo6ZnJvbVVURjgoZHVtcFJlbmRlclRyZWVUZW1w
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBjMzRkMTAyMmJi
MmJmMzVkZTk5ODIzY2IwMDEyOWYxOTljYjI3NDMxLi43Y2Q4ZTRhMjc0ZjA4ODQ0MGVkNWUyMzg5
NjlhNWRmYjFmZjU2ZWVhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CkBAIC0yNiw5ICsyNiw5IEBACiAjaWZuZGVmIFRlc3RDb250cm9sbGVyX2gKICNkZWZpbmUgVGVz
dENvbnRyb2xsZXJfaAogCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qcm92aWRlck1vY2suaCIKICNp
bmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIldvcmtRdWV1ZU1h
bmFnZXIuaCIKLSNpbmNsdWRlIDxHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oPgogI2luY2x1ZGUg
PFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxzdHJpbmc+CiAjaW5jbHVkZSA8dmVj
dG9yPgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAyY2Nm
ZjA3NDQzMDIzMTNlNWRmYzYzNzhjNzQxODdmOWI5N2U5MzQ1Li5jYWMyYmE4YjgxNWM0NDMzOGI1
MDk3ZDBjZWI2YzIwZmRlZTliMjI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcApAQCAtNDIsNyArNDIsOSBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KIAogI2lmIFBMQVRGT1JNKE1BQykKKyNpZiAhUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPENh
cmJvbi9DYXJib24uaD4KKyNlbmRpZgogI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlUHJpdmF0ZU1h
Yy5oPgogI2VuZGlmCiAKQEAgLTEyOSw3ICsxMzEsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRMb2dG
cmFtZUxvYWREZWxlZ2F0ZXMoY29uc3QgY2hhciogcGF0aE9yVVJMKQogICAgIHJldHVybiBzdHJz
dHIocGF0aE9yVVJMLCAibG9hZGluZy8iKTsKIH0KIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpCisj
aWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgIVBMQVRGT1JNKElPUykKIHN0YXRpYyBib29sIHNob3Vs
ZE9wZW5XZWJJbnNwZWN0b3IoY29uc3QgY2hhciogcGF0aE9yVVJMKQogewogICAgIHJldHVybiBz
dHJzdHIocGF0aE9yVVJMLCAiaW5zcGVjdG9yLyIpIHx8IHN0cnN0cihwYXRoT3JVUkwsICJpbnNw
ZWN0b3JcXCIpOwpAQCAtMjI2LDcgKzIyOCw3IEBAIHZvaWQgVGVzdEludm9jYXRpb246Omludm9r
ZSgpCiAgICAgaWYgKG1fZXJyb3IpCiAgICAgICAgIGdvdG8gZW5kOwogCi0jaWYgRU5BQkxFKElO
U1BFQ1RPUikKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIGlm
IChzaG91bGRPcGVuV2ViSW5zcGVjdG9yKG1fcGF0aE9yVVJMLmNfc3RyKCkpKQogICAgICAgICBX
S0luc3BlY3RvclNob3coV0tQYWdlR2V0SW5zcGVjdG9yKFRlc3RDb250cm9sbGVyOjpzaGFyZWQo
KS5tYWluV2ViVmlldygpLT5wYWdlKCkpKTsKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKSAg
ICAgICAgCkBAIC0yNTEsNyArMjUzLDcgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkK
ICAgICBkdW1wUmVzdWx0cygpOwogCiBlbmQ6Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIGlmIChtX2dvdEluaXRpYWxS
ZXNwb25zZSkKICAgICAgICAgV0tJbnNwZWN0b3JDbG9zZShXS1BhZ2VHZXRJbnNwZWN0b3IoVGVz
dENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSkpOwogI2VuZGlmIC8v
IEVOQUJMRShJTlNQRUNUT1IpCkBAIC02NzYsNyArNjc4LDcgQEAgV0tSZXRhaW5QdHI8V0tUeXBl
UmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21Jbmpl
Y3RlZEIKICAgICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNz
YWdlTmFtZSwgIlNlY3VyZUV2ZW50SW5wdXRJc0VuYWJsZWQiKSkgewotI2lmIFBMQVRGT1JNKE1B
QykKKyNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCiAgICAgICAgIFdLUmV0YWlu
UHRyPFdLQm9vbGVhblJlZj4gcmVzdWx0KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShJc1NlY3Vy
ZUV2ZW50SW5wdXRFbmFibGVkKCkpKTsKICNlbHNlCiAgICAgICAgIFdLUmV0YWluUHRyPFdLQm9v
bGVhblJlZj4gcmVzdWx0KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZShmYWxzZSkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YjM3ZmVjMWU3ODVhYjI2YjI3MDA1NTM5
MGE2YjlhYzBmNDI1MGFhLi5lMDM2NmM1ZmMxNWRkMzcwZDI2N2NmNGIwMjgxN2Y4OGY1NzUwODkz
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzcsNiArMzcsMzkgQEAK
IAkJMjlBOEZDREQxNDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
OUE4RkNFMTM0NUU3MDIxMDA2QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
LmNwcCAqLzsgfTsKIAkJMjlBOEZDRTIxNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyUmFuZ2UuY3BwICovOyB9OwogCQkyOUE4RkNFNTE0NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovOyB9OworCQkyRTYzRUQ4QTE4OTFBRDdFMDAyQTdB
RkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gKi87IH07CisJCTJFNjNFRDhCMTg5MUFEN0UwMDJB
N0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDc3MTg5MUFDRTkwMDJBN0FGQyAvKiBB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLzsgfTsKKwkJMkU2M0VEOEQxODkxQUQ3RTAw
MkE3QUZDIC8qIEFjdGl2YXRlRm9udHNJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3OTE4OTFBQ0U5MDAyQTdBRkMgLyogQWN0aXZhdGVG
b250c0lPUy5tbSAqLzsgfTsKKwkJMkU2M0VEOEUxODkxQUQ3RTAwMkE3QUZDIC8qIEV2ZW50U2Vu
ZGVyUHJveHlJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTYzRUQ3QTE4OTFBQ0U5MDAyQTdBRkMgLyogRXZlbnRTZW5kZXJQcm94eUlPUy5tbSAq
LzsgfTsKKwkJMkU2M0VEOEYxODkxQUQ3RTAwMkE3QUZDIC8qIEluamVjdGVkQnVuZGxlSU9TLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VEN0Ix
ODkxQUNFOTAwMkE3QUZDIC8qIEluamVjdGVkQnVuZGxlSU9TLm1tICovOyB9OworCQkyRTYzRUQ5
MDE4OTFBRDdFMDAyQTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlSU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU2M0VEN0MxODkxQUNFOTAwMkE3
QUZDIC8qIEluamVjdGVkQnVuZGxlUGFnZUlPUy5tbSAqLzsgfTsKKwkJMkU2M0VEOTExODkxQURB
RDAwMkE3QUZDIC8qIFBsYXRmb3JtV2ViVmlld0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUyRDEzMTg5MEE5RkIwMDEwRUQyMSAvKiBQbGF0
Zm9ybVdlYlZpZXdJT1MubW0gKi87IH07CisJCTJFNjNFRDkyMTg5MUFEQUQwMDJBN0FGQyAvKiBU
ZXN0Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJFRTUyRDE0MTg5MEE5RkIwMDEwRUQyMSAvKiBUZXN0Q29udHJvbGxlcklPUy5t
bSAqLzsgfTsKKwkJMkU2M0VEOTQxODkxQURBRDAwMkE3QUZDIC8qIG1haW5JT1MubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUU1MkQxNjE4OTBBOUZC
MDAxMEVEMjEgLyogbWFpbklPUy5tbSAqLzsgfTsKKwkJMkU2M0VEOTUxODkxQURDNzAwMkE3QUZD
IC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIyRkI0MTEzRkRBMENEMDA0MUFCQ0MgLyogQ3ljbGljUmVk
dW5kYW5jeUNoZWNrLmNwcCAqLzsgfTsKKwkJMkU2M0VEOTYxODkxQURDNzAwMkE3QUZDIC8qIEdl
b2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI2RDc1OEU1MTYwQkVDREMwMDI2ODQ3MiAvKiBHZW9sb2NhdGlvblBy
b3ZpZGVyTW9jay5jcHAgKi87IH07CisJCTJFNjNFRDk3MTg5MUFEQzcwMDJBN0FGQyAvKiBQaXhl
bER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzMjJGQjQ0MTNGREEwRUEwMDQxQUJDQyAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCAq
LzsgfTsKKwkJMkU2M0VEOTgxODkxQURDNzAwMkE3QUZDIC8qIFRlc3RDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzkzNDMwMTE4
RjdGMTkwMDVFQThFMiAvKiBUZXN0Q29udHJvbGxlci5jcHAgKi87IH07CisJCTJFNjNFRDk5MTg5
MUFEQzcwMDJBN0FGQyAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q3RDJGNzExOTIxMjc4MDA2REI3RUUgLyogVGVz
dEludm9jYXRpb24uY3BwICovOyB9OworCQkyRTYzRUQ5QTE4OTFBREM3MDAyQTdBRkMgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlv
blByb3ZpZGVyLmNwcCAqLzsgfTsKKwkJMkU2M0VEOUIxODkxQURDNzAwMkE3QUZDIC8qIFdvcmtR
dWV1ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDQyOUZDNUUxNjI3MDg5NjAwRjY2RDhCIC8qIFdvcmtRdWV1ZU1hbmFnZXIuY3BwICov
OyB9OworCQkyRTYzRUQ5QzE4OTFBREM3MDAyQTdBRkMgLyogQXBwRGVsZWdhdGUubSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUyQ0YyMTg5MEE5QTgw
MDEwRUQyMSAvKiBBcHBEZWxlZ2F0ZS5tICovOyB9OworCQkyRTYzRUQ5RTE4OTFBRUMxMDAyQTdB
RkMgLyogV2ViQXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNTJEMTUxODkwQTlGQjAwMTBFRDIxIC8qIFdlYkFy
Y2hpdmVEdW1wU3VwcG9ydElPUy5tbSAqLzsgfTsKKwkJMkU2M0VEQTExODkxQjI5MTAwMkE3QUZD
IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3ODE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNz
aWJpbGl0eVVJRWxlbWVudElPUy5tbSAqLzsgfTsKKwkJMkU2M0VEQTUxODkxQkQ4RTAwMkE3QUZD
IC8qIFRlc3RJbnZvY2F0aW9uQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM5MTkyMDQxMzMzRTRGODAwMzAxMURDIC8qIFRlc3RJbnZvY2F0aW9u
Q0cuY3BwICovOyB9OworCQkyRTYzRURBNjE4OTFCREMwMDAyQTdBRkMgLyogVGVzdFJ1bm5lci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M5OTgx
NzExRDNGNTFFMDAxN0JDQTIgLyogVGVzdFJ1bm5lci5jcHAgKi87IH07CisJCTJFNzQ5QkVGMTg5
MUU5MzkwMDdGQzE3NSAvKiBPcHRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg0MUNDMDBEMTgxMTg1QkYwMDQyRTlCNiAvKiBPcHRpb25zLmNw
cCAqLzsgfTsKKwkJMkU3NDlCRjIxODkxRUJGQTAwN0ZDMTc1IC8qIEV2ZW50U2VuZGVyUHJveHlJ
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYz
RUQ3QTE4OTFBQ0U5MDAyQTdBRkMgLyogRXZlbnRTZW5kZXJQcm94eUlPUy5tbSAqLzsgfTsKKwkJ
MkVFNTJDRTMxODkwQTlBODAwMTBFRDIxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNTJDRTIxODkwQTlB
ODAwMTBFRDIxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OworCQkyRUU1MkNFNTE4OTBB
OUE4MDAxMEVEMjEgLyogQ29yZUdyYXBoaWNzLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUyQ0U0MTg5MEE5QTgwMDEwRUQyMSAv
KiBDb3JlR3JhcGhpY3MuZnJhbWV3b3JrICovOyB9OworCQkyRUU1MkNFNzE4OTBBOUE4MDAxMEVE
MjEgLyogVUlLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkVFNTJDRTYxODkwQTlBODAwMTBFRDIxIC8qIFVJS2l0LmZyYW1ld29y
ayAqLzsgfTsKKwkJMkVFNTJDRUQxODkwQTlBODAwMTBFRDIxIC8qIEluZm9QbGlzdC5zdHJpbmdz
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUU1MkNF
QjE4OTBBOUE4MDAxMEVEMjEgLyogSW5mb1BsaXN0LnN0cmluZ3MgKi87IH07CisJCTJFRTUyQ0ZD
MTg5MEE5QTkwMDEwRUQyMSAvKiBYQ1Rlc3QuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNTJDRkIxODkwQTlBOTAwMTBFRDIxIC8q
IFhDVGVzdC5mcmFtZXdvcmsgKi87IH07CisJCTJFRTUyQ0ZEMTg5MEE5QTkwMDEwRUQyMSAvKiBG
b3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFRTUyQ0UyMTg5MEE5QTgwMDEwRUQyMSAvKiBGb3VuZGF0aW9uLmZyYW1l
d29yayAqLzsgfTsKKwkJMkVFNTJDRkUxODkwQTlBOTAwMTBFRDIxIC8qIFVJS2l0LmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUy
Q0U2MTg5MEE5QTgwMDEwRUQyMSAvKiBVSUtpdC5mcmFtZXdvcmsgKi87IH07CisJCTJFRTUyRDA2
MTg5MEE5QTkwMDEwRUQyMSAvKiBJbmZvUGxpc3Quc3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNTJEMDQxODkwQTlBOTAwMTBFRDIxIC8q
IEluZm9QbGlzdC5zdHJpbmdzICovOyB9OworCQkyRUU1MkQwODE4OTBBOUE5MDAxMEVEMjEgLyog
V2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRUU1MkQwNzE4OTBBOUE5MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1
bm5lckFwcFRlc3RzLm0gKi87IH07CisJCTJFRTUyRDExMTg5MEE5QkIwMDEwRUQyMSAvKiBXZWJL
aXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI1MTg2MjExRDE1RDU0MDAyRUJDMDEgLyogV2Vi
S2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSAqLzsgfTsKIAkJMzE2NEM4RjAxNUQx
QURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjRDOEVGMTVEMUFEQTEwMEVGMUZF
MCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi87IH07CiAJCTQ0MjlGQzVGMTYyNzA4
OTYwMEY2NkQ4QiAvKiBXb3JrUXVldWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjlGQzVFMTYyNzA4OTYwMEY2NkQ4QiAvKiBXb3Jr
UXVldWVNYW5hZ2VyLmNwcCAqLzsgfTsKIAkJNTMyMkZCNDMxM0ZEQTBDRDAwNDFBQkNDIC8qIEN5
Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MzIyRkI0MTEzRkRBMENEMDA0MUFCQ0MgLyogQ3ljbGljUmVkdW5kYW5j
eUNoZWNrLmNwcCAqLzsgfTsKQEAgLTY0LDEzICs5NywxMSBAQAogCQlBNjY0QkM3NjEzQTVGM0E5
MDA5QTdCMjUgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyMzBFMTYxMzhDNzhCRjAwQkNDRkNB
IC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiAqLzsgfTsKIAkJQkMxNEU0REIxMjBFMDJE
MDAwODI2QzBDIC8qIEdDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE0RTREOTEyMEUwMkQwMDA4MjZDMEMgLyogR0NDb250cm9s
bGVyLmNwcCAqLzsgfTsKIAkJQkMxNEU0RUExMjBFMDNEODAwODI2QzBDIC8qIEpTR0NDb250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MTRFNEU4MTIwRTAzRDgwMDgyNkMwQyAvKiBKU0dDQ29udHJvbGxlci5jcHAgKi87IH07Ci0JCUJD
MjUxOTNFMTFEMTVEOEIwMDJFQkMwMSAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc5MzRBNDExOTA2NTg0MDA1RUE4
RTIgLyogQ29jb2EuZnJhbWV3b3JrICovOyB9OwogCQlCQzI1MTkzRjExRDE1RDhCMDAyRUJDMDEg
LyogV2ViS2l0Mi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzc5MzRBQjExOTA2NThDMDA1RUE4RTIgLyogV2ViS2l0Mi5mcmFtZXdv
cmsgKi87IH07CiAJCUJDMjUxOTQwMTFEMTVEOEIwMDJFQkMwMSAvKiBKYXZhU2NyaXB0Q29yZS5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQ0RBMkI5OTExOTEwNTFGMDBDM0JDNDcgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICov
OyB9OwogCQlCQzI1MUEzRTExRDE2ODMxMDAyRUJDMDEgLyogSW5qZWN0ZWRCdW5kbGVNYWluLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjUxODQ2
MTFEMTU3NjcwMDJFQkMwMSAvKiBJbmplY3RlZEJ1bmRsZU1haW4uY3BwICovOyB9OwogCQlCQzc5
MzQwMDExOEY3Qzg0MDA1RUE4RTIgLyogbWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzkzM0ZGMTE4RjdDODQwMDVFQThFMiAvKiBtYWluLm1t
ICovOyB9OwogCQlCQzc5MzQzMTExOEY3RjE5MDA1RUE4RTIgLyogVGVzdENvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3OTM0MzAx
MThGN0YxOTAwNUVBOEUyIC8qIFRlc3RDb250cm9sbGVyLmNwcCAqLzsgfTsKLQkJQkM3OTM0QTUx
MTkwNjU4NDAwNUVBOEUyIC8qIENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzkzNEE0MTE5MDY1ODQwMDVFQThFMiAvKiBD
b2NvYS5mcmFtZXdvcmsgKi87IH07CiAJCUJDNzkzNEFDMTE5MDY1OEMwMDVFQThFMiAvKiBXZWJL
aXQyLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNzkzNEFCMTE5MDY1OEMwMDVFQThFMiAvKiBXZWJLaXQyLmZyYW1ld29yayAqLzsg
fTsKIAkJQkM3OTM0RTgxMTkwNjg0NjAwNUVBOEUyIC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzkzNEU3MTE5
MDY4NDYwMDVFQThFMiAvKiBQbGF0Zm9ybVdlYlZpZXdNYWMubW0gKi87IH07CiAJCUJDOEM3OTVD
MTFEMjc4NUQwMDQ1MzVBMSAvKiBUZXN0Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOEM3OTVCMTFEMjc4NUQwMDQ1MzVBMSAv
KiBUZXN0Q29udHJvbGxlck1hYy5tbSAqLzsgfTsKQEAgLTgyLDE4ICsxMTMsMzAgQEAKIAkJQkM5
NTJGMUYxMUYzQzY1MjAwMzM5OEI0IC8qIEpTVGVzdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk1MkYxRDExRjNDNjUyMDAzMzk4QjQg
LyogSlNUZXN0UnVubmVyLmNwcCAqLzsgfTsKIAkJQkNDOTk3QTQxMUQzQzhGNjAwMTdCQ0EyIC8q
IEluamVjdGVkQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQzk5N0EwMTFEM0M4RjYwMDE3QkNBMiAvKiBJbmplY3RlZEJ1bmRsZS5jcHAg
Ki87IH07CiAJCUJDQzk5N0E1MTFEM0M4RjYwMDE3QkNBMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDOTk3
QTIxMUQzQzhGNjAwMTdCQ0EyIC8qIEluamVjdGVkQnVuZGxlUGFnZS5jcHAgKi87IH07Ci0JCUJD
Qzk5ODE4MTFEM0Y1MUUwMDE3QkNBMiAvKiBUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzk5ODE3MTFEM0Y1MUUwMDE3QkNBMiAv
KiBUZXN0UnVubmVyLmNwcCAqLzsgfTsKIAkJQkNEN0QyRjgxMTkyMTI3ODAwNkRCN0VFIC8qIFRl
c3RJbnZvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDRDdEMkY3MTE5MjEyNzgwMDZEQjdFRSAvKiBUZXN0SW52b2NhdGlvbi5jcHAgKi87
IH07CiAJCUJDREEyQjlBMTE5MTA1MUYwMEMzQkM0NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0RB
MkI5OTExOTEwNTFGMDBDM0JDNDcgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9Owog
CQlDMENFNzIwQjEyNDdDOTMzMDBCQzBFQzQgLyogVGVzdFJ1bm5lck1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQ0U3MjBBMTI0N0M5MzMwMEJD
MEVDNCAvKiBUZXN0UnVubmVyTWFjLm1tICovOyB9OwogCQlFMTMyQUEzQTE3Q0Q1RjEwMDA2MTFE
RjAgLyogV2ViS2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzJBQTM4MTdDRDVGMTAwMDYxMURGMCAvKiBX
ZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tICovOyB9OwogCQlFMTMyQUEzRDE3Q0U3NzZG
MDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzMkFBM0IxN0NFNzc2RjAwNjExREYwIC8qIFdl
YktpdFRlc3RSdW5uZXJFdmVudC5tbSAqLzsgfTsKLQkJRTFCQTY3MUUxNzQyREE2QTAwQzIwMjUx
IC8qIENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUJBNjcxRDE3NDJEQTVBMDBDMjAyNTEgLyogQ2FyYm9uLmZyYW1ld29y
ayAqLzsgfTsKIAkJRTFDNjQyQzMxN0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjQyQzExN0NC
Q0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLm1tICovOyB9OwogCQlFMUM2NDJDNjE3Q0JDRDRD
MDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDNDE3Q0JDRDRDMDBENjZBM0Mg
LyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gKi87IH07CiAvKiBFbmQgUEJYQnVpbGRG
aWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24g
Ki8KKwkJMkU2M0VEODgxODkxQUQ0NzAwMkE3QUZDIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRh
bCA9IDA4RkI3NzkzRkU4NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXBy
b3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEJDMjUxODYxMTFEMTVENTQw
MDJFQkMwMTsKKwkJCXJlbW90ZUluZm8gPSBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGU7
CisJCX07CisJCTJFRTUyQ0ZGMTg5MEE5QTkwMDEwRUQyMSAvKiBQQlhDb250YWluZXJJdGVtUHJv
eHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQ
b3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CisJ
CQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSAyRUU1MkNERjE4OTBB
OUE4MDAxMEVEMjE7CisJCQlyZW1vdGVJbmZvID0gV2ViS2l0VGVzdFJ1bm5lckFwcDsKKwkJfTsK
IAkJQkMyNTE5NDExMUQxNUQ5NDAwMkVCQzAxIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9
IDA4RkI3NzkzRkU4NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTEyMCw4
ICsxNjMsOCBAQAogCQkyOTIxMEVBODE0NENBQjg4MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkyMTBFQTkxNDRDQUNCMjAw
ODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI5MjEwRUFBMTQ0Q0FDQjIwMDgzNUJCNSAvKiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkyMTBFQUIx
NDRDQUNCMjAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFj
Lm1tOyBwYXRoID0gbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTI5MjEwRUFCMTQ0Q0FDQjIwMDgzNUJCNiAvKiBBY2Nlc3NpYmls
aXR5Q29tbW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
QWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbTsgcGF0aCA9IG1hYy9BY2Nlc3NpYmlsaXR5Q29tbW9u
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyOTIxMEVBQjE0NENBQ0IyMDA4
MzVCQjUgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5MjEwRUFCMTQ0Q0FDQjIwMDgzNUJCNiAvKiBBY2Nl
c3NpYmlsaXR5Q29tbW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjkyMTBFQjExNDRDQUNENDAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkyMTBFQjIxNDRD
QUNENDAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTI5MjEwRUIzMTQ0Q0FDRDQwMDgzNUJCNSAvKiBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tOyBwYXRoID0gbWFjL0FjY2Vzc2liaWxp
dHlUZXh0TWFya2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM2LDcg
KzE3OSwzMiBAQAogCQkyOUE4RkNFMTE0NUYwMzdCMDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjlBOEZDRTEzNDVFNzAyMTAwNkFBNUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0FjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
VGVzdFJ1bm5lci9KU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkyOUE4RkNFMTM0NUU3MDIxMDA2QUE1QTcgLyog
SlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0VGVzdFJ1bm5lci9KU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2Uu
aDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJMjlBOEZDRTQxNDVGMDQ2
NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlTWFjLm1tOyBwYXRoID0gbWFjL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAv
KiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8q
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJFNjNFRDc2MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmls
aXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRTYzRUQ3NzE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkU2M0VENzgxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTYzRUQ3OTE4OTFB
Q0U5MDAyQTdBRkMgLyogQWN0aXZhdGVGb250c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEFjdGl2YXRlRm9udHNJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJFNjNFRDdBMTg5MUFDRTkwMDJBN0FGQyAvKiBFdmVudFNlbmRlclByb3h5
SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRTZW5k
ZXJQcm94eUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU2M0VEN0IxODkx
QUNFOTAwMkE3QUZDIC8qIEluamVjdGVkQnVuZGxlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJFNjNFRDdDMTg5MUFDRTkwMDJBN0FGQyAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZVBhZ2VJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRTUy
Q0UwMTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwLmFwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlv
bjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lckFwcC5hcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTJFRTUyQ0UyMTg5MEE5QTgwMDEw
RUQyMSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gRm91bmRhdGlv
bi5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ZvdW5kYXRpb24u
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKKwkJMkVFNTJDRTQxODkwQTlBODAw
MTBFRDIxIC8qIENvcmVHcmFwaGljcy5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENvcmVH
cmFwaGljcy5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVH
cmFwaGljcy5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OworCQkyRUU1MkNFNjE4
OTBBOUE4MDAxMEVEMjEgLyogVUlLaXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBVSUtp
dC5mcmFtZXdvcms7IHBhdGggPSBMaWJyYXJ5L0ZyYW1ld29ya3MvVUlLaXQuZnJhbWV3b3JrOyBz
b3VyY2VUcmVlID0gREVWRUxPUEVSX0RJUjsgfTsKKwkJMkVFNTJDRUExODkwQTlBODAwMTBFRDIx
IC8qIFdlYktpdFRlc3RSdW5uZXJBcHAtSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBuYW1lID0gIldlYktp
dFRlc3RSdW5uZXJBcHAtSW5mby5wbGlzdCI7IHBhdGggPSAiV2ViS2l0VGVzdFJ1bm5lckFwcC9X
ZWJLaXRUZXN0UnVubmVyQXBwLUluZm8ucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyRUU1MkNFQzE4OTBBOUE4MDAxMEVEMjEgLyogZW4gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3M7IG5hbWUgPSBl
bjsgcGF0aCA9IGVuLmxwcm9qL0luZm9QbGlzdC5zdHJpbmdzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRUU1MkNGMTE4OTBBOUE4MDAxMEVEMjEgLyogQXBwRGVsZWdhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXBwRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkVFNTJDRjIxODkwQTlBODAwMTBFRDIxIC8qIEFwcERlbGVnYXRlLm0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0
aCA9IEFwcERlbGVnYXRlLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRTUyQ0ZB
MTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMueGN0ZXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmNmYnVu
ZGxlOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMu
eGN0ZXN0OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkyRUU1MkNGQjE4
OTBBOUE5MDAxMEVEMjEgLyogWENUZXN0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gWENU
ZXN0LmZyYW1ld29yazsgcGF0aCA9IExpYnJhcnkvRnJhbWV3b3Jrcy9YQ1Rlc3QuZnJhbWV3b3Jr
OyBzb3VyY2VUcmVlID0gREVWRUxPUEVSX0RJUjsgfTsKKwkJMkVFNTJEMDMxODkwQTlBOTAwMTBF
RDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGgg
PSAiV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRUU1MkQwNTE4OTBBOUE5MDAxMEVEMjEgLyogZW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3M7
IG5hbWUgPSBlbjsgcGF0aCA9IGVuLmxwcm9qL0luZm9QbGlzdC5zdHJpbmdzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRUU1MkQwNzE4OTBBOUE5MDAxMEVEMjEgLyogV2ViS2l0VGVz
dFJ1bm5lckFwcFRlc3RzLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJBcHBU
ZXN0cy5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUU1MkQxMzE4OTBBOUZCMDAx
MEVEMjEgLyogUGxhdGZvcm1XZWJWaWV3SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUGxhdGZvcm1XZWJWaWV3SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRUU1MkQxNDE4OTBBOUZCMDAxMEVEMjEgLyogVGVzdENvbnRyb2xsZXJJT1Mu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0Q29udHJvbGxl
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVFNTJEMTUxODkwQTlGQjAw
MTBFRDIxIC8qIFdlYkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVFNTJEMTYxODkwQTlGQjAwMTBFRDIxIC8qIG1haW5J
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBtYWluSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTEwQkUwRjE1QkEwMTE0MDBEMjE2QUMg
LyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2NEM4RUYxNUQx
QURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc4RDQ0MjIxMzM0NkQwMDAwNkE3NzdCIC8qIGNv
bmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE3Miw3ICsyNDAsNyBAQAogCQk2NTEwQTc4MTExRUM2NDM4MDA0MTA4NjcgLyogV2Vi
S2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50dGY7
IHBhdGggPSBmb250cy9XZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0Zjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjVFQjg1OUQxMUVDNjdDQzAwMzREMzAwIC8qIEFjdGl2YXRlRm9udHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWN0aXZhdGVGb250cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUVCODU5RjExRUM2N0NDMDAzNEQzMDAgLyogQWN0
aXZhdGVGb250cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFj
dGl2YXRlRm9udHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgwMzRDNjYxMTQ4
NzYzNjQwMEFDMzJFOSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFj
Lm1tOyBwYXRoID0gbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MDM0QzY2MTE0ODc2MzY0MDBBQzMyRTkgLyogQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODA5NzMzODgxNDg3NEE1QTAwODE1NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg7IHBhdGggPSBtYWMvQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODA5NzMzODkx
NDg3NEE1QTAwODE1NkQ5IC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWNjZXNzaWJpbGl0eU5vdGlm
aWNhdGlvbkhhbmRsZXIubW07IHBhdGggPSBtYWMvQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhh
bmRsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MUNDMDBEMTgxMTg1QkYw
MDQyRTlCNiAvKiBPcHRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM4LDE0ICsz
MDYsMzIgQEAKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4g
UEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQkyRUU1MkNERDE4OTBBOUE4MDAx
MEVEMjEgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBo
YXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJ
CTJFRTUyQ0U1MTg5MEE5QTgwMDEwRUQyMSAvKiBDb3JlR3JhcGhpY3MuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8sCisJCQkJMkVFNTJDRTcxODkwQTlBODAwMTBFRDIxIC8qIFVJS2l0LmZyYW1l
d29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJCTJFRTUyQ0UzMTg5MEE5QTgwMDEwRUQyMSAvKiBG
b3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OworCQkyRUU1MkNGNzE4OTBBOUE4
MDAxMEVEMjEgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWls
ZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAor
CQkJCTJFRTUyQ0ZDMTg5MEE5QTkwMDEwRUQyMSAvKiBYQ1Rlc3QuZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8sCisJCQkJMkVFNTJDRkUxODkwQTlBOTAwMTBFRDIxIC8qIFVJS2l0LmZyYW1ld29y
ayBpbiBGcmFtZXdvcmtzICovLAorCQkJCTJFRTUyQ0ZEMTg5MEE5QTkwMDEwRUQyMSAvKiBGb3Vu
ZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk4REQ3NkY5QjA0ODZBQTc2MDBE
OTZCNUUgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29ya3NCdWlsZFBo
YXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJ
CUJDNzkzNEE1MTE5MDY1ODQwMDVFQThFMiAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3Jr
cyAqLywKIAkJCQlCQ0RBMkI5QTExOTEwNTFGMDBDM0JDNDcgLyogSmF2YVNjcmlwdENvcmUuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJMEY1MTY5Q0IxNDQ1MjIyRDAwRTBBOUQ3IC8q
IFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQlFMUJBNjcxRTE3NDJEQTZB
MDBDMjAyNTEgLyogQ2FyYm9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCUJDNzkz
NEFDMTE5MDY1OEMwMDVFQThFMiAvKiBXZWJLaXQyLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAt
MjU0LDcgKzM0MCw2IEBACiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQlCQzI1MTkzRTEx
RDE1RDhCMDAyRUJDMDEgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJ
QkMyNTE5NDAxMUQxNUQ4QjAwMkVCQzAxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovLAogCQkJCUE2NjRCQzc2MTNBNUYzQTkwMDlBN0IyNSAvKiBsaWJXZWJDb3Jl
VGVzdFN1cHBvcnQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQkwRjUxNjlDQzE0NDUyMjJE
MDBFMEE5RDcgLyogV2ViS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLApAQCAtMjY5LDEy
ICszNTQsMTYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQkM5
NTJFQzUxMUYzQzEwRjAwMzM5OEI0IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCisJCQkJMkVF
NTJDRUExODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAtSW5mby5wbGlzdCAq
LywKIAkJCQlCQzk5Q0JGMTEyMDc2NDJEMDBGREVFNzYgLyogU2hhcmVkICovLAogCQkJCTA4RkI3
Nzk1RkU4NDE1NURDMDJBQUMwNyAvKiBUZXN0UnVubmVyICovLAogCQkJCUJDMjUxODM1MTFEMTU3
MUQwMDJFQkMwMSAvKiBJbmplY3RlZEJ1bmRsZSAqLywKIAkJCQlCQzc5MzQwMTExOEY3QzhBMDA1
RUE4RTIgLyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJMDhGQjc3OURGRTg0MTU1REMwMkFBQzA3
IC8qIEV4dGVybmFsIEZyYW1ld29ya3MgYW5kIExpYnJhcmllcyAqLywKIAkJCQlCQzI1MTk0NDEx
RDE1REJFMDAyRUJDMDEgLyogUmVzb3VyY2VzICovLAorCQkJCTJFRTUyQ0U4MTg5MEE5QTgwMDEw
RUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwICovLAorCQkJCTJFRTUyRDAxMTg5MEE5QTkwMDEw
RUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMgKi8sCisJCQkJMkVFNTJDRTExODkwQTlB
ODAwMTBFRDIxIC8qIEZyYW1ld29ya3MgKi8sCiAJCQkJMUFCNjc0QURGRTlENTRCNTExQ0EyQ0JC
IC8qIFByb2R1Y3RzICovLAogCQkJKTsKIAkJCW5hbWUgPSBXZWJLaXRUZXN0UnVubmVyOwpAQCAt
MjgzLDYgKzM3Miw3IEBACiAJCTA4RkI3Nzk1RkU4NDE1NURDMDJBQUMwNyAvKiBUZXN0UnVubmVy
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRUU1MkQx
MjE4OTBBOUZCMDAxMEVEMjEgLyogaW9zICovLAogCQkJCTg0MUNDMDBEMTgxMTg1QkYwMDQyRTlC
NiAvKiBPcHRpb25zLmNwcCAqLywKIAkJCQk4NDFDQzAwRTE4MTE4NUJGMDA0MkU5QjYgLyogT3B0
aW9ucy5oICovLAogCQkJCUJDOTE5MjAyMTMzM0U0Q0QwMDMwMTFEQyAvKiBjZyAqLywKQEAgLTMy
Nyw2ICs0MTcsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOERENzZGQTEwNDg2QUE3NjAwRDk2
QjVFIC8qIFdlYktpdFRlc3RSdW5uZXIgKi8sCiAJCQkJQkMyNTE4NjIxMUQxNUQ1NDAwMkVCQzAx
IC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi8sCisJCQkJMkVFNTJD
RTAxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAuYXBwICovLAorCQkJCTJF
RTUyQ0ZBMTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMueGN0ZXN0
ICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0zMzQsMTAgKzQyNiw4IEBACiAJCTI5QThGQ0UwMTQ1RjAzNUQwMDkwNDVBNiAvKiBB
Y2Nlc3NpYmlsaXR5ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
LQkJCQkyOTIxMEVBQjE0NENBQ0IyMDA4MzVCQjYgLyogQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5t
bSAqLywKIAkJCQkyOTIxMEVBMjE0NENBQUE1MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwICovLAogCQkJCTI5MjEwRUEzMTQ0Q0FBQTUwMDgzNUJCNSAvKiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5oICovLAotCQkJCTgwMzRDNjYxMTQ4NzYzNjQwMEFDMzJFOSAvKiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAqLywKIAkJCQk4MDk3MzM4ODE0ODc0QTVBMDA4MTU2
RDkgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLywKIAkJCQk4MDk3MzM4
OTE0ODc0QTVBMDA4MTU2RDkgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0g
Ki8sCiAJCQkJMjkyMTBFQjExNDRDQUNENDAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyLmNwcCAqLywKQEAgLTM0NSwxNCArNDM1LDc3IEBACiAJCQkJMjkyMTBFQjMxNDRDQUNENDAw
ODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tICovLAogCQkJCTI5QThGQ0Ux
MTQ1RjAzN0IwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLywK
IAkJCQkyOUE4RkNERjE0NUYwMzU4MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJS
YW5nZS5oICovLAotCQkJCTI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlTWFjLm1tICovLAogCQkJCTI5MjEwRUE5MTQ0Q0FDQjIwMDgzNUJCNSAv
KiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCAqLywKIAkJCQkyOTIxMEVBQTE0NENBQ0IyMDA4
MzVCQjUgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICovLAotCQkJCTI5MjEwRUFCMTQ0Q0FD
QjIwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBBY2Nlc3NpYmlsaXR5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsK
KwkJMkU2M0VENzQxODkxQUNFOTAwMkE3QUZDIC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkU2M0VENzUxODkxQUNFOTAwMkE3QUZDIC8qIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tICovLAorCQkJCTJFNjNFRDc2MTg5MUFDRTkwMDJB
N0FGQyAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oICovLAorCQkJCTJFNjNF
RDc3MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLywK
KwkJCQkyRTYzRUQ3ODE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbSAqLywKKwkJCQkyRTYzRUQ3OTE4OTFBQ0U5MDAyQTdBRkMgLyogQWN0aXZhdGVGb250c0lP
Uy5tbSAqLywKKwkJCQkyRTYzRUQ3QTE4OTFBQ0U5MDAyQTdBRkMgLyogRXZlbnRTZW5kZXJQcm94
eUlPUy5tbSAqLywKKwkJCQkyRTYzRUQ3QjE4OTFBQ0U5MDAyQTdBRkMgLyogSW5qZWN0ZWRCdW5k
bGVJT1MubW0gKi8sCisJCQkJMkU2M0VEN0MxODkxQUNFOTAwMkE3QUZDIC8qIEluamVjdGVkQnVu
ZGxlUGFnZUlPUy5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMkVFNTJDRTExODkwQTlBODAwMTBFRDIxIC8qIEZyYW1ld29y
a3MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJFRTUy
Q0UyMTg5MEE5QTgwMDEwRUQyMSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKKwkJCQkyRUU1
MkNFNDE4OTBBOUE4MDAxMEVEMjEgLyogQ29yZUdyYXBoaWNzLmZyYW1ld29yayAqLywKKwkJCQky
RUU1MkNFNjE4OTBBOUE4MDAxMEVEMjEgLyogVUlLaXQuZnJhbWV3b3JrICovLAorCQkJCTJFRTUy
Q0ZCMTg5MEE5QTkwMDEwRUQyMSAvKiBYQ1Rlc3QuZnJhbWV3b3JrICovLAorCQkJKTsKKwkJCW5h
bWUgPSBGcmFtZXdvcmtzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMkVF
NTJDRTgxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAgKi8gPSB7CisJCQlp
c2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJFRTUyQ0YxMTg5MEE5QTgwMDEw
RUQyMSAvKiBBcHBEZWxlZ2F0ZS5oICovLAorCQkJCTJFRTUyQ0YyMTg5MEE5QTgwMDEwRUQyMSAv
KiBBcHBEZWxlZ2F0ZS5tICovLAorCQkJKTsKKwkJCXBhdGggPSBXZWJLaXRUZXN0UnVubmVyQXBw
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMkVFNTJEMDExODkwQTlBOTAw
MTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkVFNTJEMDcxODkwQTlBOTAwMTBFRDIxIC8qIFdl
YktpdFRlc3RSdW5uZXJBcHBUZXN0cy5tICovLAorCQkJCTJFRTUyRDAyMTg5MEE5QTkwMDEwRUQy
MSAvKiBTdXBwb3J0aW5nIEZpbGVzICovLAorCQkJKTsKKwkJCXBhdGggPSBXZWJLaXRUZXN0UnVu
bmVyQXBwVGVzdHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkyRUU1MkQw
MjE4OTBBOUE5MDAxMEVEMjEgLyogU3VwcG9ydGluZyBGaWxlcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkVFNTJEMDMxODkwQTlBOTAwMTBFRDIxIC8q
IFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0ICovLAorCQkJCTJFRTUyRDA0MTg5
MEE5QTkwMDEwRUQyMSAvKiBJbmZvUGxpc3Quc3RyaW5ncyAqLywKKwkJCSk7CisJCQluYW1lID0g
IlN1cHBvcnRpbmcgRmlsZXMiOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJ
MkVFNTJEMTIxODkwQTlGQjAwMTBFRDIxIC8qIGlvcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkVFNTJDRUIxODkwQTlBODAwMTBFRDIxIC8qIEluZm9Q
bGlzdC5zdHJpbmdzICovLAorCQkJCTJFRTUyRDEzMTg5MEE5RkIwMDEwRUQyMSAvKiBQbGF0Zm9y
bVdlYlZpZXdJT1MubW0gKi8sCisJCQkJMkVFNTJEMTQxODkwQTlGQjAwMTBFRDIxIC8qIFRlc3RD
b250cm9sbGVySU9TLm1tICovLAorCQkJCTJFRTUyRDE1MTg5MEE5RkIwMDEwRUQyMSAvKiBXZWJB
cmNoaXZlRHVtcFN1cHBvcnRJT1MubW0gKi8sCisJCQkJMkVFNTJEMTYxODkwQTlGQjAwMTBFRDIx
IC8qIG1haW5JT1MubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CiAJCTVDNDVDMzEwMTczOThFMzcwMDc5NzE0RSAvKiBjZiAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zNjUsNiArNTE4LDEw
IEBACiAJCTY1RUI4NTlFMTFFQzY3Q0MwMDM0RDMwMCAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTI5MjEwRUFCMTQ0Q0FDQjIwMDgzNUJCNiAv
KiBBY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tICovLAorCQkJCTgwMzRDNjYxMTQ4NzYzNjQwMEFD
MzJFOSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAqLywKKwkJCQkyOUE4RkNFNDE0
NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbSAqLywK
KwkJCQkyOTIxMEVBQjE0NENBQ0IyMDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1h
Yy5tbSAqLywKIAkJCQk1QzQ1QzMwRTE3Mzk4RTI5MDA3OTcxNEUgLyogV2ViQXJjaGl2ZUR1bXBT
dXBwb3J0TWFjLm1tICovLAogCQkJCTY1RUI4NTlGMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3RpdmF0
ZUZvbnRzLm1tICovLAogCQkJCUJDOERBRDc3MTMxNkQ3QjkwMEVDOTZGQyAvKiBJbmplY3RlZEJ1
bmRsZU1hYy5tbSAqLywKQEAgLTM5Myw2ICs1NTAsNyBAQAogCQlCQzI1MTgzNTExRDE1NzFEMDAy
RUJDMDEgLyogSW5qZWN0ZWRCdW5kbGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTJFNjNFRDc0MTg5MUFDRTkwMDJBN0FGQyAvKiBpb3MgKi8sCiAJCQkJ
NUM0NUMzMTAxNzM5OEUzNzAwNzk3MTRFIC8qIGNmICovLAogCQkJCUJDOTUyQzBBMTFGM0I5Mzkw
MDMzOThCNCAvKiBCaW5kaW5ncyAqLywKIAkJCQlCQzE0RTRFMDEyMEUwMkY5MDA4MjZDMEMgLyog
Q29udHJvbGxlcnMgKi8sCkBAIC01MTksNiArNjc3LDQyIEBACiAvKiBFbmQgUEJYR3JvdXAgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLworCQkyRUU1MkNE
RjE4OTBBOUE4MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcCAqLyA9IHsKKwkJCWlzYSA9
IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAyRUU1MkQwRjE4
OTBBOUE5MDAxMEVEMjEgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVU
YXJnZXQgIldlYktpdFRlc3RSdW5uZXJBcHAiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJ
MkVFNTJDREMxODkwQTlBODAwMTBFRDIxIC8qIFNvdXJjZXMgKi8sCisJCQkJMkVFNTJDREQxODkw
QTlBODAwMTBFRDIxIC8qIEZyYW1ld29ya3MgKi8sCisJCQkJMkVFNTJDREUxODkwQTlBODAwMTBF
RDIxIC8qIFJlc291cmNlcyAqLywKKwkJCSk7CisJCQlidWlsZFJ1bGVzID0gKAorCQkJKTsKKwkJ
CWRlcGVuZGVuY2llcyA9ICgKKwkJCQkyRTYzRUQ4OTE4OTFBRDQ3MDAyQTdBRkMgLyogUEJYVGFy
Z2V0RGVwZW5kZW5jeSAqLywKKwkJCSk7CisJCQluYW1lID0gV2ViS2l0VGVzdFJ1bm5lckFwcDsK
KwkJCXByb2R1Y3ROYW1lID0gV2ViS2l0VGVzdFJ1bm5lckFwcDsKKwkJCXByb2R1Y3RSZWZlcmVu
Y2UgPSAyRUU1MkNFMDE4OTBBOUE4MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcC5hcHAg
Ki87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmFwcGxpY2F0aW9u
IjsKKwkJfTsKKwkJMkVFNTJDRjkxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJB
cHBUZXN0cyAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmln
dXJhdGlvbkxpc3QgPSAyRUU1MkQxMDE4OTBBOUE5MDAxMEVEMjEgLyogQnVpbGQgY29uZmlndXJh
dGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYktpdFRlc3RSdW5uZXJBcHBUZXN0cyIg
Ki87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQkyRUU1MkNGNjE4OTBBOUE4MDAxMEVEMjEgLyog
U291cmNlcyAqLywKKwkJCQkyRUU1MkNGNzE4OTBBOUE4MDAxMEVEMjEgLyogRnJhbWV3b3JrcyAq
LywKKwkJCQkyRUU1MkNGODE4OTBBOUE4MDAxMEVEMjEgLyogUmVzb3VyY2VzICovLAorCQkJKTsK
KwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTJFRTUy
RDAwMTg5MEE5QTkwMDEwRUQyMSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJKTsKKwkJ
CW5hbWUgPSBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHM7CisJCQlwcm9kdWN0TmFtZSA9IFdlYktp
dFRlc3RSdW5uZXJBcHBUZXN0czsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSAyRUU1MkNGQTE4OTBB
OUE4MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLnhjdGVzdCAqLzsKKwkJCXBy
b2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUuYnVuZGxlLnVuaXQtdGVzdCI7CisJ
CX07CiAJCThERDc2Rjk2MDQ4NkFBNzYwMEQ5NkI1RSAvKiBXZWJLaXRUZXN0UnVubmVyICovID0g
ewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9
IDFERUI5Mjc0MDg3MzNERDQwMDEwRTlDRCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9y
IFBCWE5hdGl2ZVRhcmdldCAiV2ViS2l0VGVzdFJ1bm5lciIgKi87CkBAIC01NjEsNiArNzU1LDEx
IEBACiAJCTA4RkI3NzkzRkU4NDE1NURDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLyA9IHsK
IAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlhdHRyaWJ1dGVzID0geworCQkJCVRhcmdldEF0dHJp
YnV0ZXMgPSB7CisJCQkJCTJFRTUyQ0Y5MTg5MEE5QTgwMDEwRUQyMSA9IHsKKwkJCQkJCVRlc3RU
YXJnZXRJRCA9IDJFRTUyQ0RGMTg5MEE5QTgwMDEwRUQyMTsKKwkJCQkJfTsKKwkJCQl9OwogCQkJ
fTsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxREVCOTI3ODA4NzMzREQ0MDAxMEU5Q0Qg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJLaXRUZXN0UnVu
bmVyIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2RlIDMuMSI7CkBAIC01NzEs
NiArNzcwLDcgQEAKIAkJCQlKYXBhbmVzZSwKIAkJCQlGcmVuY2gsCiAJCQkJR2VybWFuLAorCQkJ
CWVuLAogCQkJKTsKIAkJCW1haW5Hcm91cCA9IDA4RkI3Nzk0RkU4NDE1NURDMDJBQUMwNyAvKiBX
ZWJLaXRUZXN0UnVubmVyICovOwogCQkJcHJvamVjdERpclBhdGggPSAiIjsKQEAgLTU3OSwxMSAr
Nzc5LDMwIEBACiAJCQkJOERENzZGOTYwNDg2QUE3NjAwRDk2QjVFIC8qIFdlYktpdFRlc3RSdW5u
ZXIgKi8sCiAJCQkJQkMyNTE4NjExMUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktpdFRlc3RSdW5uZXJJ
bmplY3RlZEJ1bmRsZSAqLywKIAkJCQlCQzk1MkQ3NzExRjNCRjVEMDAzMzk4QjQgLyogRGVyaXZl
ZCBTb3VyY2VzICovLAorCQkJCTJFRTUyQ0RGMTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0
UnVubmVyQXBwICovLAorCQkJCTJFRTUyQ0Y5MTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0
UnVubmVyQXBwVGVzdHMgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlv
biAqLwogCiAvKiBCZWdpbiBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMkVF
NTJDREUxODkwQTlBODAwMTBFRDIxIC8qIFJlc291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFJl
c291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJ
ZmlsZXMgPSAoCisJCQkJMkVFNTJDRUQxODkwQTlBODAwMTBFRDIxIC8qIEluZm9QbGlzdC5zdHJp
bmdzIGluIFJlc291cmNlcyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKKwkJfTsKKwkJMkVFNTJDRjgxODkwQTlBODAwMTBFRDIxIC8qIFJlc291
cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJMkVFNTJEMTExODkwQTlC
QjAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgaW4gUmVz
b3VyY2VzICovLAorCQkJCTJFRTUyRDA2MTg5MEE5QTkwMDEwRUQyMSAvKiBJbmZvUGxpc3Quc3Ry
aW5ncyBpbiBSZXNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCUJDMjUxODVFMTFEMTVENTQwMDJFQkMwMSAvKiBSZXNv
dXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTYyMiw2ICs4NDEsMzUgQEAKIC8qIEVuZCBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhTb3VyY2VzQnVp
bGRQaGFzZSBzZWN0aW9uICovCisJCTJFRTUyQ0RDMTg5MEE5QTgwMDEwRUQyMSAvKiBTb3VyY2Vz
ICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJMkU2M0VEOTUxODkxQURDNzAwMkE3
QUZDIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTc0
OUJGMjE4OTFFQkZBMDA3RkMxNzUgLyogRXZlbnRTZW5kZXJQcm94eUlPUy5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCTJFNjNFRDk2MTg5MUFEQzcwMDJBN0FGQyAvKiBHZW9sb2NhdGlvblByb3ZpZGVy
TW9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTYzRUQ5NDE4OTFBREFEMDAyQTdBRkMgLyog
bWFpbklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFRDk3MTg5MUFEQzcwMDJBN0FGQyAv
KiBQaXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFRDk4MTg5MUFE
QzcwMDJBN0FGQyAvKiBUZXN0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTYz
RUQ5MjE4OTFBREFEMDAyQTdBRkMgLyogVGVzdENvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAq
LywKKwkJCQkyRTYzRUQ5OTE4OTFBREM3MDAyQTdBRkMgLyogVGVzdEludm9jYXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEQTUxODkxQkQ4RTAwMkE3QUZDIC8qIFRlc3RJbnZvY2F0
aW9uQ0cuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEOUExODkxQURDNzAwMkE3QUZDIC8q
IFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFRDlC
MTg5MUFEQzcwMDJBN0FGQyAvKiBXb3JrUXVldWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTJFNzQ5QkVGMTg5MUU5MzkwMDdGQzE3NSAvKiBPcHRpb25zLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTJFNjNFRDlDMTg5MUFEQzcwMDJBN0FGQyAvKiBBcHBEZWxlZ2F0ZS5tIGluIFNvdXJj
ZXMgKi8sCisJCQkJMkU2M0VEOTExODkxQURBRDAwMkE3QUZDIC8qIFBsYXRmb3JtV2ViVmlld0lP
Uy5tbSBpbiBTb3VyY2VzICovLAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOworCQl9OworCQkyRUU1MkNGNjE4OTBBOUE4MDAxMEVEMjEgLyogU291cmNl
cyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJCTJFRTUyRDA4MTg5MEE5QTkwMDEw
RUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMubSBpbiBTb3VyY2VzICovLAorCQkJKTsK
KwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OwogCQk4REQ3
NkY5OTA0ODZBQTc2MDBEOTZCNUUgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJj
ZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTY1MCw2
ICs4OTgsMTUgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTJFNjNFREE2MTg5MUJEQzAw
MDJBN0FGQyAvKiBUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFREExMTg5
MUIyOTEwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMkU2M0VEOUUxODkxQUVDMTAwMkE3QUZDIC8qIFdlYkFyY2hpdmVEdW1wU3VwcG9y
dElPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFRDhBMTg5MUFEN0UwMDJBN0FGQyAvKiBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFRDhC
MTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTJFNjNFRDhEMTg5MUFEN0UwMDJBN0FGQyAvKiBBY3RpdmF0ZUZvbnRzSU9T
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEOEUxODkxQUQ3RTAwMkE3QUZDIC8qIEV2ZW50
U2VuZGVyUHJveHlJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkyRTYzRUQ4RjE4OTFBRDdFMDAy
QTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkyRTYzRUQ5
MDE4OTFBRDdFMDAyQTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlSU9TLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMjkyMTBFREExNDRDQzNFQTAwODM1QkI2IC8qIEFjY2Vzc2liaWxpdHlDb21tb25N
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyOTIxMEVCMDE0NENBQ0JEMDA4MzVCQjUgLyogQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODAzNEM2NjIxNDg3
NjM2NDAwQUMzMkU5IC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC02NzcsNyArOTM0LDYgQEAKIAkJCQlCQzk1MkYxRjExRjNDNjUyMDAzMzk4QjQgLyog
SlNUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU2NDFFMkQwMTQzMzVFOTUwMDgz
MDdFNSAvKiBKU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5
NTJDMEQxMUYzQjk2NTAwMzM5OEI0IC8qIEpTV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlCQ0M5OTgxODExRDNGNTFFMDAxN0JDQTIgLyogVGVzdFJ1bm5lci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1QzQ1QzMwRjE3Mzk4RTI5MDA3OTcxNEUgLyogV2ViQXJjaGl2ZUR1bXBTdXBwb3J0
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0NUMzMTMxNzM5OEU0ODAwNzk3MTRFIC8qIFdl
YkFyY2hpdmVEdW1wU3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMENFNzIwQjEyNDdD
OTMzMDBCQzBFQzQgLyogVGVzdFJ1bm5lck1hYy5tbSBpbiBTb3VyY2VzICovLApAQCAtNjg4LDYg
Kzk0NCwxNiBAQAogLyogRW5kIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyog
QmVnaW4gUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCisJCTJFNjNFRDg5MTg5MUFENDcw
MDJBN0FGQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0
RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IEJDMjUxODYxMTFEMTVENTQwMDJFQkMwMSAvKiBXZWJL
aXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUgKi87CisJCQl0YXJnZXRQcm94eSA9IDJFNjNFRDg4
MTg5MUFENDcwMDJBN0FGQyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CisJCTJF
RTUyRDAwMTg5MEE5QTkwMDEwRUQyMSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJ
aXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDJFRTUyQ0RGMTg5MEE5QTgw
MDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwICovOworCQkJdGFyZ2V0UHJveHkgPSAyRUU1
MkNGRjE4OTBBOUE5MDAxMEVEMjEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOworCQl9Owog
CQlCQzI1MTk0MjExRDE1RDk0MDAyRUJDMDEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
IAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJnZXQgPSBCQzI1MTg2MTExRDE1
RDU0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlICovOwpAQCAtNzAw
LDYgKzk2NiwyNiBAQAogCQl9OwogLyogRW5kIFBCWFRhcmdldERlcGVuZGVuY3kgc2VjdGlvbiAq
LwogCisvKiBCZWdpbiBQQlhWYXJpYW50R3JvdXAgc2VjdGlvbiAqLworCQkyRUU1MkNFQjE4OTBB
OUE4MDAxMEVEMjEgLyogSW5mb1BsaXN0LnN0cmluZ3MgKi8gPSB7CisJCQlpc2EgPSBQQlhWYXJp
YW50R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkyRUU1MkNFQzE4OTBBOUE4MDAxMEVEMjEg
LyogZW4gKi8sCisJCQkpOworCQkJbmFtZSA9IEluZm9QbGlzdC5zdHJpbmdzOworCQkJcGF0aCA9
IC4uL1dlYktpdFRlc3RSdW5uZXJBcHA7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OworCQkyRUU1MkQwNDE4OTBBOUE5MDAxMEVEMjEgLyogSW5mb1BsaXN0LnN0cmluZ3MgKi8gPSB7
CisJCQlpc2EgPSBQQlhWYXJpYW50R3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkyRUU1MkQw
NTE4OTBBOUE5MDAxMEVEMjEgLyogZW4gKi8sCisJCQkpOworCQkJbmFtZSA9IEluZm9QbGlzdC5z
dHJpbmdzOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKy8qIEVuZCBQQlhWYXJp
YW50R3JvdXAgc2VjdGlvbiAqLworCiAvKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0
aW9uICovCiAJCTFERUI5Mjc1MDg3MzNERDQwMDEwRTlDRCAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwpAQCAtNzMxLDYgKzEwMTcsMTg3IEBACiAJCQl9Owog
CQkJbmFtZSA9IFJlbGVhc2U7CiAJCX07CisJCTJFRTUyRDA5MTg5MEE5QTkwMDEwRUQyMSAvKiBE
ZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYmFzZUNvbmZp
Z3VyYXRpb25SZWZlcmVuY2UgPSBCQzI1MUExODExRDE2Nzk1MDAyRUJDMDEgLyogV2ViS2l0VGVz
dFJ1bm5lci54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQVNTRVRDQVRB
TE9HX0NPTVBJTEVSX0FQUElDT05fTkFNRSA9IEFwcEljb247CisJCQkJQVNTRVRDQVRBTE9HX0NP
TVBJTEVSX0xBVU5DSElNQUdFX05BTUUgPSBMYXVuY2hJbWFnZTsKKwkJCQlHQ0NfRFlOQU1JQ19O
T19QSUMgPSBOTzsKKwkJCQlHQ0NfU1lNQk9MU19QUklWQVRFX0VYVEVSTiA9IE5POworCQkJCUlO
Rk9QTElTVF9GSUxFID0gIldlYktpdFRlc3RSdW5uZXJBcHAvV2ViS2l0VGVzdFJ1bm5lckFwcC1J
bmZvLnBsaXN0IjsKKwkJCQlJUEhPTkVPU19ERVBMT1lNRU5UX1RBUkdFVCA9IDguMDsKKwkJCQlQ
Uk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJCVRBUkdFVEVEX0RFVklDRV9GQU1J
TFkgPSAiMSwyIjsKKwkJCQlXUkFQUEVSX0VYVEVOU0lPTiA9IGFwcDsKKwkJCX07CisJCQluYW1l
ID0gRGVidWc7CisJCX07CisJCTJFRTUyRDBBMTg5MEE5QTkwMDEwRUQyMSAvKiBSZWxlYXNlICov
ID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlv
blJlZmVyZW5jZSA9IEJDMjUxQTE4MTFEMTY3OTUwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVy
LnhjY29uZmlnICovOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBU1NFVENBVEFMT0dfQ09N
UElMRVJfQVBQSUNPTl9OQU1FID0gQXBwSWNvbjsKKwkJCQlBU1NFVENBVEFMT0dfQ09NUElMRVJf
TEFVTkNISU1BR0VfTkFNRSA9IExhdW5jaEltYWdlOworCQkJCUlORk9QTElTVF9GSUxFID0gIldl
YktpdFRlc3RSdW5uZXJBcHAvV2ViS2l0VGVzdFJ1bm5lckFwcC1JbmZvLnBsaXN0IjsKKwkJCQlJ
UEhPTkVPU19ERVBMT1lNRU5UX1RBUkdFVCA9IDguMDsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChU
QVJHRVRfTkFNRSkiOworCQkJCVRBUkdFVEVEX0RFVklDRV9GQU1JTFkgPSAiMSwyIjsKKwkJCQlX
UkFQUEVSX0VYVEVOU0lPTiA9IGFwcDsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsK
KwkJMkVFNTJEMEIxODkwQTlBOTAwMTBFRDIxIC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2Eg
PSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0g
QkMyNTFBMTgxMUQxNjc5NTAwMkVCQzAxIC8qIFdlYktpdFRlc3RSdW5uZXIueGNjb25maWcgKi87
CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFTU0VUQ0FUQUxPR19DT01QSUxFUl9BUFBJQ09O
X05BTUUgPSBBcHBJY29uOworCQkJCUFTU0VUQ0FUQUxPR19DT01QSUxFUl9MQVVOQ0hJTUFHRV9O
QU1FID0gTGF1bmNoSW1hZ2U7CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAiV2ViS2l0VGVzdFJ1bm5l
ckFwcC9XZWJLaXRUZXN0UnVubmVyQXBwLUluZm8ucGxpc3QiOworCQkJCUlQSE9ORU9TX0RFUExP
WU1FTlRfVEFSR0VUID0gOC4wOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7
CisJCQkJVEFSR0VURURfREVWSUNFX0ZBTUlMWSA9ICIxLDIiOworCQkJCVdSQVBQRVJfRVhURU5T
SU9OID0gYXBwOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OworCQkyRUU1MkQw
QzE4OTBBOUE5MDAxMEVEMjEgLyogRGVidWcgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BB
VEhTID0gTk87CisJCQkJQVJDSFMgPSAiJChBUkNIU19TVEFOREFSRF9JTkNMVURJTkdfNjRfQklU
KSI7CisJCQkJQlVORExFX0xPQURFUiA9ICIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0VGVz
dFJ1bm5lckFwcC5hcHAvV2ViS2l0VGVzdFJ1bm5lckFwcCI7CisJCQkJQ0xBTkdfQ1hYX0xBTkdV
QUdFX1NUQU5EQVJEID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJSQVJZID0gImxpYmMr
KyI7CisJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xBTkdfRU5BQkxFX09C
SkNfQVJDID0gWUVTOworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9OID0gWUVTOworCQkJ
CUNMQU5HX1dBUk5fQ09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0RJ
UkVDVF9PQkpDX0lTQV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX0VNUFRZX0JP
RFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xB
TkdfV0FSTl9JTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09CSkNfUk9PVF9D
TEFTUyA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENI
ID0gWUVTOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBOTzsKKwkJCQlGUkFNRVdPUktfU0VBUkNI
X1BBVEhTID0gKAorCQkJCQkiJChTREtST09UKS9EZXZlbG9wZXIvTGlicmFyeS9GcmFtZXdvcmtz
IiwKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJCSIkKERFVkVMT1BFUl9GUkFNRVdPUktTX0RJ
UikiLAorCQkJCSk7CisJCQkJR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlH
Q0NfRFlOQU1JQ19OT19QSUMgPSBOTzsKKwkJCQlHQ0NfUFJFQ09NUElMRV9QUkVGSVhfSEVBREVS
ID0gWUVTOworCQkJCUdDQ19QUkVGSVhfSEVBREVSID0gIldlYktpdFRlc3RSdW5uZXJBcHAvV2Vi
S2l0VGVzdFJ1bm5lckFwcC1QcmVmaXgucGNoIjsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09SX0RFRklO
SVRJT05TID0gKAorCQkJCQkiREVCVUc9MSIsCisJCQkJCSIkKGluaGVyaXRlZCkiLAorCQkJCSk7
CisJCQkJR0NDX1NZTUJPTFNfUFJJVkFURV9FWFRFUk4gPSBOTzsKKwkJCQlHQ0NfV0FSTl82NF9U
T18zMl9CSVRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQ
RSA9IFlFU19FUlJPUjsKKwkJCQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOwor
CQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5V
U0VEX0ZVTkNUSU9OID0gWUVTOworCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsK
KwkJCQlJTkZPUExJU1RfRklMRSA9ICJXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMvV2ViS2l0VGVz
dFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3QiOworCQkJCUlQSE9ORU9TX0RFUExPWU1FTlRfVEFS
R0VUID0gOC4wOworCQkJCU9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7CisJCQkJUFJPRFVDVF9OQU1F
ID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlTREtST09UID0gaXBob25lb3M7CisJCQkJVEVTVF9I
T1NUID0gIiQoQlVORExFX0xPQURFUikiOworCQkJCVdSQVBQRVJfRVhURU5TSU9OID0geGN0ZXN0
OworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMkVFNTJEMEQxODkwQTlBOTAwMTBF
RDIxIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJ
CWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQUxXQVlTX1NFQVJDSF9VU0VSX1BBVEhTID0gTk87CisJ
CQkJQVJDSFMgPSAiJChBUkNIU19TVEFOREFSRF9JTkNMVURJTkdfNjRfQklUKSI7CisJCQkJQlVO
RExFX0xPQURFUiA9ICIkKEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViS2l0VGVzdFJ1bm5lckFwcC5h
cHAvV2ViS2l0VGVzdFJ1bm5lckFwcCI7CisJCQkJQ0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJE
ID0gImdudSsrMHgiOworCQkJCUNMQU5HX0NYWF9MSUJSQVJZID0gImxpYmMrKyI7CisJCQkJQ0xB
TkdfRU5BQkxFX01PRFVMRVMgPSBZRVM7CisJCQkJQ0xBTkdfRU5BQkxFX09CSkNfQVJDID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fQk9PTF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5f
Q09OU1RBTlRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0RJUkVDVF9PQkpDX0lT
QV9VU0FHRSA9IFlFU19FUlJPUjsKKwkJCQlDTEFOR19XQVJOX0VNUFRZX0JPRFkgPSBZRVM7CisJ
CQkJQ0xBTkdfV0FSTl9FTlVNX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9JTlRf
Q09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX09CSkNfUk9PVF9DTEFTUyA9IFlFU19F
UlJPUjsKKwkJCQlDTEFOR19XQVJOX19EVVBMSUNBVEVfTUVUSE9EX01BVENIID0gWUVTOworCQkJ
CUNPUFlfUEhBU0VfU1RSSVAgPSBZRVM7CisJCQkJRU5BQkxFX05TX0FTU0VSVElPTlMgPSBOTzsK
KwkJCQlGUkFNRVdPUktfU0VBUkNIX1BBVEhTID0gKAorCQkJCQkiJChTREtST09UKS9EZXZlbG9w
ZXIvTGlicmFyeS9GcmFtZXdvcmtzIiwKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJCSIkKERF
VkVMT1BFUl9GUkFNRVdPUktTX0RJUikiLAorCQkJCSk7CisJCQkJR0NDX0NfTEFOR1VBR0VfU1RB
TkRBUkQgPSBnbnU5OTsKKwkJCQlHQ0NfUFJFQ09NUElMRV9QUkVGSVhfSEVBREVSID0gWUVTOwor
CQkJCUdDQ19QUkVGSVhfSEVBREVSID0gIldlYktpdFRlc3RSdW5uZXJBcHAvV2ViS2l0VGVzdFJ1
bm5lckFwcC1QcmVmaXgucGNoIjsKKwkJCQlHQ0NfV0FSTl82NF9UT18zMl9CSVRfQ09OVkVSU0lP
TiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9SRVRVUk5fVFlQRSA9IFlFU19FUlJPUjsKKwkJ
CQlHQ0NfV0FSTl9VTkRFQ0xBUkVEX1NFTEVDVE9SID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5J
VElBTElaRURfQVVUT1MgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVT
OworCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKKwkJCQlJTkZPUExJU1RfRklM
RSA9ICJXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUlu
Zm8ucGxpc3QiOworCQkJCUlQSE9ORU9TX0RFUExPWU1FTlRfVEFSR0VUID0gOC4wOworCQkJCVBS
T0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJU0RLUk9PVCA9IGlwaG9uZW9zOwor
CQkJCVRFU1RfSE9TVCA9ICIkKEJVTkRMRV9MT0FERVIpIjsKKwkJCQlWQUxJREFURV9QUk9EVUNU
ID0gWUVTOworCQkJCVdSQVBQRVJfRVhURU5TSU9OID0geGN0ZXN0OworCQkJfTsKKwkJCW5hbWUg
PSBSZWxlYXNlOworCQl9OworCQkyRUU1MkQwRTE4OTBBOUE5MDAxMEVEMjEgLyogUHJvZHVjdGlv
biAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBOTzsKKwkJCQlBUkNIUyA9ICIk
KEFSQ0hTX1NUQU5EQVJEX0lOQ0xVRElOR182NF9CSVQpIjsKKwkJCQlCVU5ETEVfTE9BREVSID0g
IiQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJLaXRUZXN0UnVubmVyQXBwLmFwcC9XZWJLaXRUZXN0
UnVubmVyQXBwIjsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251KysweCI7
CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19FTkFCTEVfTU9E
VUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJQ0xBTkdf
V0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05TVEFOVF9DT05W
RVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0gWUVT
X0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0g
WUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOworCQkJCUNM
QU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09QWV9QSEFTRV9T
VFJJUCA9IFlFUzsKKwkJCQlFTkFCTEVfTlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUZSQU1FV09S
S19TRUFSQ0hfUEFUSFMgPSAoCisJCQkJCSIkKFNES1JPT1QpL0RldmVsb3Blci9MaWJyYXJ5L0Zy
YW1ld29ya3MiLAorCQkJCQkiJChpbmhlcml0ZWQpIiwKKwkJCQkJIiQoREVWRUxPUEVSX0ZSQU1F
V09SS1NfRElSKSIsCisJCQkJKTsKKwkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5
OworCQkJCUdDQ19QUkVDT01QSUxFX1BSRUZJWF9IRUFERVIgPSBZRVM7CisJCQkJR0NDX1BSRUZJ
WF9IRUFERVIgPSAiV2ViS2l0VGVzdFJ1bm5lckFwcC9XZWJLaXRUZXN0UnVubmVyQXBwLVByZWZp
eC5wY2giOworCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVTOworCQkJ
CUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworCQkJCUdDQ19XQVJOX1VO
REVDTEFSRURfU0VMRUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRP
UyA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dB
Uk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCUlORk9QTElTVF9GSUxFID0gIldlYktpdFRl
c3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdCI7CisJ
CQkJSVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVQgPSA4LjA7CisJCQkJUFJPRFVDVF9OQU1FID0g
IiQoVEFSR0VUX05BTUUpIjsKKwkJCQlTREtST09UID0gaXBob25lb3M7CisJCQkJVEVTVF9IT1NU
ID0gIiQoQlVORExFX0xPQURFUikiOworCQkJCVZBTElEQVRFX1BST0RVQ1QgPSBZRVM7CisJCQkJ
V1JBUFBFUl9FWFRFTlNJT04gPSB4Y3Rlc3Q7CisJCQl9OworCQkJbmFtZSA9IFByb2R1Y3Rpb247
CisJCX07CiAJCUJDMjUxODY0MTFEMTVENTUwMDJFQkMwMSAvKiBEZWJ1ZyAqLyA9IHsKIAkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2Ug
PSBCQzI1MTk3MTExRDE1RTYxMDAyRUJDMDEgLyogSW5qZWN0ZWRCdW5kbGUueGNjb25maWcgKi87
CkBAIC04MTAsNiArMTI3NywyNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUg
PSAwOwogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKKwkJ
MkVFNTJEMEYxODkwQTlBOTAwMTBFRDIxIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJXZWJLaXRUZXN0UnVubmVyQXBwIiAqLyA9IHsKKwkJCWlzYSA9IFhD
Q29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTJFRTUy
RDA5MTg5MEE5QTkwMDEwRUQyMSAvKiBEZWJ1ZyAqLywKKwkJCQkyRUU1MkQwQTE4OTBBOUE5MDAx
MEVEMjEgLyogUmVsZWFzZSAqLywKKwkJCQkyRUU1MkQwQjE4OTBBOUE5MDAxMEVEMjEgLyogUHJv
ZHVjdGlvbiAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7
CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OworCQkyRUU1
MkQxMDE4OTBBOUE5MDAxMEVEMjEgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhO
YXRpdmVUYXJnZXQgIldlYktpdFRlc3RSdW5uZXJBcHBUZXN0cyIgKi8gPSB7CisJCQlpc2EgPSBY
Q0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQkyRUU1
MkQwQzE4OTBBOUE5MDAxMEVEMjEgLyogRGVidWcgKi8sCisJCQkJMkVFNTJEMEQxODkwQTlBOTAw
MTBFRDIxIC8qIFJlbGVhc2UgKi8sCisJCQkJMkVFNTJEMEUxODkwQTlBOTAwMTBFRDIxIC8qIFBy
b2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAw
OworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJQkMy
NTE4NjYxMUQxNUQ1NTAwMkVCQzAxIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
TmF0aXZlVGFyZ2V0ICJXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUiICovID0gewogCQkJ
aXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHAvQXBw
RGVsZWdhdGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9B
cHBEZWxlZ2F0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3NzUyOTA4YjdjMDFhZjVkNWJmYjAzMjM0ODhlOGZi
ZmVlMWZhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXJBcHAvQXBwRGVsZWdhdGUuaApAQCAtMCwwICsxLDE1IEBACisvLworLy8gIEFw
cERlbGVnYXRlLmgKKy8vICBXZWJLaXRUZXN0UnVubmVyQXBwCisvLworLy8gIENyZWF0ZWQgYnkg
RGF2aWQgRmFybGVyIG9uIDEvMjIvMTQuCisvLworLy8KKworI2ltcG9ydCA8VUlLaXQvVUlLaXQu
aD4KKworQGludGVyZmFjZSBBcHBEZWxlZ2F0ZSA6IFVJUmVzcG9uZGVyIDxVSUFwcGxpY2F0aW9u
RGVsZWdhdGU+CisKK0Bwcm9wZXJ0eSAoc3Ryb25nLCBub25hdG9taWMpIFVJV2luZG93ICp3aW5k
b3c7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVz
dFJ1bm5lckFwcC9BcHBEZWxlZ2F0ZS5tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRU
ZXN0UnVubmVyQXBwL0FwcERlbGVnYXRlLm0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI0YjFiMjI5ZjM3YzcxODk1
NGM3NTM5ODAwMzQ5ODRjNzYxOWQ0MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9BcHBEZWxlZ2F0ZS5tCkBAIC0wLDAgKzEsNDkg
QEAKKy8vCisvLyAgQXBwRGVsZWdhdGUubQorLy8gIFdlYktpdFRlc3RSdW5uZXJBcHAKKy8vCisv
LyAgQ3JlYXRlZCBieSBEYXZpZCBGYXJsZXIgb24gMS8yMi8xNC4KKy8vCisvLworCisjaW1wb3J0
ICJBcHBEZWxlZ2F0ZS5oIgorCitAaW1wbGVtZW50YXRpb24gQXBwRGVsZWdhdGUKKworLSAoQk9P
TClhcHBsaWNhdGlvbjooVUlBcHBsaWNhdGlvbiAqKWFwcGxpY2F0aW9uIGRpZEZpbmlzaExhdW5j
aGluZ1dpdGhPcHRpb25zOihOU0RpY3Rpb25hcnkgKilsYXVuY2hPcHRpb25zCit7CisgICAgc2Vs
Zi53aW5kb3cgPSBbW1VJV2luZG93IGFsbG9jXSBpbml0V2l0aEZyYW1lOltbVUlTY3JlZW4gbWFp
blNjcmVlbl0gYm91bmRzXV07CisgICAgLy8gT3ZlcnJpZGUgcG9pbnQgZm9yIGN1c3RvbWl6YXRp
b24gYWZ0ZXIgYXBwbGljYXRpb24gbGF1bmNoLgorICAgIHNlbGYud2luZG93LmJhY2tncm91bmRD
b2xvciA9IFtVSUNvbG9yIHdoaXRlQ29sb3JdOworICAgIFtzZWxmLndpbmRvdyBtYWtlS2V5QW5k
VmlzaWJsZV07CisgICAgcmV0dXJuIFlFUzsKK30KKworLSAodm9pZClhcHBsaWNhdGlvbldpbGxS
ZXNpZ25BY3RpdmU6KFVJQXBwbGljYXRpb24gKilhcHBsaWNhdGlvbgoreworICAgIC8vIFNlbnQg
d2hlbiB0aGUgYXBwbGljYXRpb24gaXMgYWJvdXQgdG8gbW92ZSBmcm9tIGFjdGl2ZSB0byBpbmFj
dGl2ZSBzdGF0ZS4gVGhpcyBjYW4gb2NjdXIgZm9yIGNlcnRhaW4gdHlwZXMgb2YgdGVtcG9yYXJ5
IGludGVycnVwdGlvbnMgKHN1Y2ggYXMgYW4gaW5jb21pbmcgcGhvbmUgY2FsbCBvciBTTVMgbWVz
c2FnZSkgb3Igd2hlbiB0aGUgdXNlciBxdWl0cyB0aGUgYXBwbGljYXRpb24gYW5kIGl0IGJlZ2lu
cyB0aGUgdHJhbnNpdGlvbiB0byB0aGUgYmFja2dyb3VuZCBzdGF0ZS4KKyAgICAvLyBVc2UgdGhp
cyBtZXRob2QgdG8gcGF1c2Ugb25nb2luZyB0YXNrcywgZGlzYWJsZSB0aW1lcnMsIGFuZCB0aHJv
dHRsZSBkb3duIE9wZW5HTCBFUyBmcmFtZSByYXRlcy4gR2FtZXMgc2hvdWxkIHVzZSB0aGlzIG1l
dGhvZCB0byBwYXVzZSB0aGUgZ2FtZS4KK30KKworLSAodm9pZClhcHBsaWNhdGlvbkRpZEVudGVy
QmFja2dyb3VuZDooVUlBcHBsaWNhdGlvbiAqKWFwcGxpY2F0aW9uCit7CisgICAgLy8gVXNlIHRo
aXMgbWV0aG9kIHRvIHJlbGVhc2Ugc2hhcmVkIHJlc291cmNlcywgc2F2ZSB1c2VyIGRhdGEsIGlu
dmFsaWRhdGUgdGltZXJzLCBhbmQgc3RvcmUgZW5vdWdoIGFwcGxpY2F0aW9uIHN0YXRlIGluZm9y
bWF0aW9uIHRvIHJlc3RvcmUgeW91ciBhcHBsaWNhdGlvbiB0byBpdHMgY3VycmVudCBzdGF0ZSBp
biBjYXNlIGl0IGlzIHRlcm1pbmF0ZWQgbGF0ZXIuIAorICAgIC8vIElmIHlvdXIgYXBwbGljYXRp
b24gc3VwcG9ydHMgYmFja2dyb3VuZCBleGVjdXRpb24sIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBp
bnN0ZWFkIG9mIGFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZTogd2hlbiB0aGUgdXNlciBxdWl0cy4K
K30KKworLSAodm9pZClhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQ6KFVJQXBwbGljYXRp
b24gKilhcHBsaWNhdGlvbgoreworICAgIC8vIENhbGxlZCBhcyBwYXJ0IG9mIHRoZSB0cmFuc2l0
aW9uIGZyb20gdGhlIGJhY2tncm91bmQgdG8gdGhlIGluYWN0aXZlIHN0YXRlOyBoZXJlIHlvdSBj
YW4gdW5kbyBtYW55IG9mIHRoZSBjaGFuZ2VzIG1hZGUgb24gZW50ZXJpbmcgdGhlIGJhY2tncm91
bmQuCit9CisKKy0gKHZvaWQpYXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmU6KFVJQXBwbGljYXRp
b24gKilhcHBsaWNhdGlvbgoreworICAgIC8vIFJlc3RhcnQgYW55IHRhc2tzIHRoYXQgd2VyZSBw
YXVzZWQgKG9yIG5vdCB5ZXQgc3RhcnRlZCkgd2hpbGUgdGhlIGFwcGxpY2F0aW9uIHdhcyBpbmFj
dGl2ZS4gSWYgdGhlIGFwcGxpY2F0aW9uIHdhcyBwcmV2aW91c2x5IGluIHRoZSBiYWNrZ3JvdW5k
LCBvcHRpb25hbGx5IHJlZnJlc2ggdGhlIHVzZXIgaW50ZXJmYWNlLgorfQorCistICh2b2lkKWFw
cGxpY2F0aW9uV2lsbFRlcm1pbmF0ZTooVUlBcHBsaWNhdGlvbiAqKWFwcGxpY2F0aW9uCit7Cisg
ICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIGFib3V0IHRvIHRlcm1pbmF0ZS4g
U2F2ZSBkYXRhIGlmIGFwcHJvcHJpYXRlLiBTZWUgYWxzbyBhcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZDouCit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
V2ViS2l0VGVzdFJ1bm5lckFwcC9XZWJLaXRUZXN0UnVubmVyQXBwLUluZm8ucGxpc3QgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHAvV2ViS2l0VGVzdFJ1bm5lckFw
cC1JbmZvLnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjZjk3YjMxZTZiODVhOWVjY2RlYTQ5ZWQ4ODBhYThi
Mzc0NzYyOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXJBcHAvV2ViS2l0VGVzdFJ1bm5lckFwcC1JbmZvLnBsaXN0CkBAIC0wLDAgKzEs
NDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUg
cGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFw
cGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAi
PgorPGRpY3Q+CisJPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+CisJPHN0cmlu
Zz5lbjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVEaXNwbGF5TmFtZTwva2V5PgorCTxzdHJpbmc+
JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4K
Kwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJZGVu
dGlmaWVyPC9rZXk+CisJPHN0cmluZz5vcmcud2Via2l0LiR7UFJPRFVDVF9OQU1FOnJmYzEwMzRp
ZGVudGlmaWVyfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248
L2tleT4KKwk8c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+CisJ
PHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5
cGU8L2tleT4KKwk8c3RyaW5nPkFQUEw8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJz
aW9uU3RyaW5nPC9rZXk+CisJPHN0cmluZz4xLjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2ln
bmF0dXJlPC9rZXk+CisJPHN0cmluZz4/Pz8/PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVZlcnNp
b248L2tleT4KKwk8c3RyaW5nPjEuMDwvc3RyaW5nPgorCTxrZXk+TFNSZXF1aXJlc0lQaG9uZU9T
PC9rZXk+CisJPHRydWUvPgorCTxrZXk+VUlSZXF1aXJlZERldmljZUNhcGFiaWxpdGllczwva2V5
PgorCTxhcnJheT4KKwkJPHN0cmluZz5hcm12Nzwvc3RyaW5nPgorCTwvYXJyYXk+CisJPGtleT5V
SVN1cHBvcnRlZEludGVyZmFjZU9yaWVudGF0aW9uczwva2V5PgorCTxhcnJheT4KKwkJPHN0cmlu
Zz5VSUludGVyZmFjZU9yaWVudGF0aW9uUG9ydHJhaXQ8L3N0cmluZz4KKwkJPHN0cmluZz5VSUlu
dGVyZmFjZU9yaWVudGF0aW9uTGFuZHNjYXBlTGVmdDwvc3RyaW5nPgorCQk8c3RyaW5nPlVJSW50
ZXJmYWNlT3JpZW50YXRpb25MYW5kc2NhcGVSaWdodDwvc3RyaW5nPgorCTwvYXJyYXk+CisJPGtl
eT5VSVN1cHBvcnRlZEludGVyZmFjZU9yaWVudGF0aW9uc35pcGFkPC9rZXk+CisJPGFycmF5Pgor
CQk8c3RyaW5nPlVJSW50ZXJmYWNlT3JpZW50YXRpb25Qb3J0cmFpdDwvc3RyaW5nPgorCQk8c3Ry
aW5nPlVJSW50ZXJmYWNlT3JpZW50YXRpb25Qb3J0cmFpdFVwc2lkZURvd248L3N0cmluZz4KKwkJ
PHN0cmluZz5VSUludGVyZmFjZU9yaWVudGF0aW9uTGFuZHNjYXBlTGVmdDwvc3RyaW5nPgorCQk8
c3RyaW5nPlVJSW50ZXJmYWNlT3JpZW50YXRpb25MYW5kc2NhcGVSaWdodDwvc3RyaW5nPgorCTwv
YXJyYXk+Cis8L2RpY3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL2VuLmxwcm9qL0luZm9QbGlzdC5zdHJpbmdzIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL2VuLmxwcm9qL0luZm9QbGlz
dC5zdHJpbmdzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3N2IyOGZmOGY4NmEzMTU4YTcxYzQ5MzRmYmQzYTI0NTY3
MTdkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRl
c3RSdW5uZXJBcHAvZW4ubHByb2ovSW5mb1BsaXN0LnN0cmluZ3MKQEAgLTAsMCArMSwyIEBACisv
KiBMb2NhbGl6ZWQgdmVyc2lvbnMgb2YgSW5mby5wbGlzdCBrZXlzICovCisKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxp
c3QgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZv
LnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRkYTEwMmFhNzkzZmUxYTlkZTczNTFkMDc1YTliYzFjODA2Mjgz
ODMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RS
dW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0CkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBs
ZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5
TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5DRkJ1
bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+CisJPHN0cmluZz5lbjwvc3RyaW5nPgorCTxrZXk+
Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0
cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgorCTxzdHJpbmc+b3JnLndlYmtp
dC4ke1BST0RVQ1RfTkFNRTpyZmMxMDM0aWRlbnRpZmllcn08L3N0cmluZz4KKwk8a2V5PkNGQnVu
ZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmluZz42LjA8L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5nPkJOREw8L3N0cmluZz4KKwk8
a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJPHN0cmluZz4xLjA8L3N0cmlu
Zz4KKwk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJPHN0cmluZz4/Pz8/PC9zdHJpbmc+
CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5nPjE8L3N0cmluZz4KKzwvZGlj
dD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRl
c3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL1dlYktpdFRlc3RS
dW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkYTEwMmFhNzkzZmUxYTlkZTcz
NTFkMDc1YTliYzFjODA2MjgzODMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMt
SW5mby5wbGlzdApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5n
PSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAx
LjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+
Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVu
dFJlZ2lvbjwva2V5PgorCTxzdHJpbmc+ZW48L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlRXhlY3V0
YWJsZTwva2V5PgorCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+CisJPGtleT5D
RkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPm9yZy53ZWJraXQuJHtQUk9EVUNUX05B
TUU6cmZjMTAzNGlkZW50aWZpZXJ9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9u
YXJ5VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVBh
Y2thZ2VUeXBlPC9rZXk+CisJPHN0cmluZz5CTkRMPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVNo
b3J0VmVyc2lvblN0cmluZzwva2V5PgorCTxzdHJpbmc+MS4wPC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZVNpZ25hdHVyZTwva2V5PgorCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5k
bGVWZXJzaW9uPC9rZXk+CisJPHN0cmluZz4xPC9zdHJpbmc+Cis8L2RpY3Q+Cis8L3BsaXN0Pgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwVGVz
dHMvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLm0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dl
YktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMubQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kZjI4YmNkYzhlZjU4YWVmMjk3ZDNiY2ZhMjI1OGY5MWZiYjI1NjVlCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMv
V2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLm0KQEAgLTAsMCArMSwzNCBAQAorLy8KKy8vICBXZWJL
aXRUZXN0UnVubmVyQXBwVGVzdHMubQorLy8gIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cworLy8K
Ky8vICBDcmVhdGVkIGJ5IERhdmlkIEZhcmxlciBvbiAxLzIyLzE0LgorLy8KKy8vCisKKyNpbXBv
cnQgPFhDVGVzdC9YQ1Rlc3QuaD4KKworQGludGVyZmFjZSBXZWJLaXRUZXN0UnVubmVyQXBwVGVz
dHMgOiBYQ1Rlc3RDYXNlCisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYktpdFRlc3RSdW5u
ZXJBcHBUZXN0cworCistICh2b2lkKXNldFVwCit7CisgICAgW3N1cGVyIHNldFVwXTsKKyAgICAv
LyBQdXQgc2V0dXAgY29kZSBoZXJlLiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYmVmb3JlIHRoZSBp
bnZvY2F0aW9uIG9mIGVhY2ggdGVzdCBtZXRob2QgaW4gdGhlIGNsYXNzLgorfQorCistICh2b2lk
KXRlYXJEb3duCit7CisgICAgLy8gUHV0IHRlYXJkb3duIGNvZGUgaGVyZS4gVGhpcyBtZXRob2Qg
aXMgY2FsbGVkIGFmdGVyIHRoZSBpbnZvY2F0aW9uIG9mIGVhY2ggdGVzdCBtZXRob2QgaW4gdGhl
IGNsYXNzLgorICAgIFtzdXBlciB0ZWFyRG93bl07Cit9CisKKy0gKHZvaWQpdGVzdEV4YW1wbGUK
K3sKKyAgICBYQ1RGYWlsKEAiTm8gaW1wbGVtZW50YXRpb24gZm9yIFwiJXNcIiIsIF9fUFJFVFRZ
X0ZVTkNUSU9OX18pOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9lbi5scHJvai9JbmZvUGxpc3Quc3RyaW5ncyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL2VuLmxwcm9q
L0luZm9QbGlzdC5zdHJpbmdzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3N2IyOGZmOGY4NmEzMTU4YTcxYzQ5MzRm
YmQzYTI0NTY3MTdkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9lbi5scHJvai9JbmZvUGxpc3Quc3RyaW5ncwpAQCAt
MCwwICsxLDIgQEAKKy8qIExvY2FsaXplZCB2ZXJzaW9ucyBvZiBJbmZvLnBsaXN0IGtleXMgKi8K
KwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyUHJl
Zml4LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguaApp
bmRleCBkODMxNDNiOTJmZjM2MmRlNjY2Zjk0ZTVlMTFhYTMxOWI2NWRlM2Y4Li5kYzk1OGMxMGUx
OTgyZWQzNDY0OWFhNjcwNzVjOGQxZWU4MzJjNTRhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguaApAQCAtMjQsNyArMjQsNyBAQAogICovCiAK
ICNpZmRlZiBfX09CSkNfXwotI2luY2x1ZGUgPENvY29hL0NvY29hLmg+CisjaW1wb3J0IDxGb3Vu
ZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNlbmRpZgogCiAjaWYgZGVmaW5lZChCVUlMRElOR19HVEtf
XykKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY2cvVGVzdEludm9jYXRpb25D
Ry5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NnL1Rlc3RJbnZvY2F0aW9uQ0cuY3BwCmlu
ZGV4IGI4Y2ZhOTA0MDE2ZjA5N2M4MjRkMjg5YTc2MzM1ZTA0ZjdhOGE0OWEuLjczMDQ1ZTk3YWM1
ZmEyMzkxNThkMzdhMjM3ZGFmOGI0M2JjNmNkNDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY2cvVGVzdEludm9jYXRpb25DRy5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9jZy9UZXN0SW52b2NhdGlvbkNHLmNwcApAQCAtMzUsMTAgKzM1LDE1IEBACiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAotI2lm
IFBMQVRGT1JNKE1BQykKKyNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCiAjaW5j
bHVkZSA8TGF1bmNoU2VydmljZXMvVVRDb3JlVHlwZXMuaD4KICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oSU9TKQorLy8gRklYTUU6IGdldCBrVVRUeXBlUE5HIGZyb20gTW9iaWxlQ29yZVNlcnZpY2Vz
IG9uIGlPUworc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIGtVVFR5cGVQTkcgPSBDRlNUUigicHVi
bGljLnBuZyIpOworI2VuZGlmCisKIG5hbWVzcGFjZSBXVFIgewogCiBlbnVtIEZsaXBHcmFwaGlj
c0NvbnRleHRPck5vdCB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lPUy54
Y2NvbmZpZyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaU9TLnhjY29uZmlnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjE3N2IzMTk4OWM1ZTFmYWRhNmQ1MDYzYWM3NDY2YjQ1ZjA2YzBhMjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lPUy54Y2NvbmZpZwpAQCAtMCwwICsxIEBACisj
aW5jbHVkZSAiPERFVkVMT1BFUl9ESVI+L0FwcGxlSW50ZXJuYWwvWGNvZGVDb25maWcvQXNwZW5G
YW1pbHkueGNjb25maWciCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9Q
bGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9y
bVdlYlZpZXdJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWZlNDA3MDQzZTM1NjM1NDdiNTg1ZmJlYzE5NzFi
NzM2YmQyNmQ2ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9z
L1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtMCwwICsxLDIyNCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRl
ICJUZXN0Q29udHJvbGxlci5oIgorCisjaW1wb3J0IDxXZWJLaXQyL1dLSW1hZ2VDRy5oPgorI2lt
cG9ydCA8V2ViS2l0Mi9XS1ZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQyL1dLUHJlZmVy
ZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZhY2Ug
V2ViS2l0VGVzdFJ1bm5lcldpbmRvdyA6IFVJV2luZG93IHsKKyAgICBXVFI6OlBsYXRmb3JtV2Vi
VmlldyogX3BsYXRmb3JtV2ViVmlldzsKKyAgICBDR1BvaW50IF9mYWtlT3JpZ2luOworfQorQHBy
b3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV1RSOjpQbGF0Zm9ybVdlYlZpZXcqIHBsYXRmb3Jt
V2ViVmlldzsKK0BlbmQKKworQGludGVyZmFjZSBUZXN0UnVubmVyV0tWaWV3IDogV0tWaWV3IHsK
KyAgICBCT09MIF91c2VUaWxlZERyYXdpbmc7Cit9CisKKy0gKGlkKWluaXRXaXRoRnJhbWU6KENH
UmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBS
ZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYp
cmVsYXRlZFBhZ2UgdXNlVGlsZWREcmF3aW5nOihCT09MKXVzZVRpbGVkRHJhd2luZzsKKworQHBy
b3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCB1c2VUaWxlZERyYXdpbmc7CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBUZXN0UnVubmVyV0tWaWV3CisKK0BzeW50aGVzaXplIHVzZVRpbGVk
RHJhd2luZyA9IF91c2VUaWxlZERyYXdpbmc7CisKKy0gKGlkKWluaXRXaXRoRnJhbWU6KENHUmVj
dClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6
KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOihXS1BhZ2VSZWYpcmVs
YXRlZFBhZ2UgdXNlVGlsZWREcmF3aW5nOihCT09MKXVzZVRpbGVkRHJhd2luZworeworICAgIF91
c2VUaWxlZERyYXdpbmcgPSB1c2VUaWxlZERyYXdpbmc7CisgICAgcmV0dXJuIFtzdXBlciBpbml0
V2l0aEZyYW1lOmZyYW1lIGNvbnRleHRSZWY6Y29udGV4dFJlZiBwYWdlR3JvdXBSZWY6cGFnZUdy
b3VwUmVmXTsKK30KKworLSAoQk9PTClfc2hvdWxkVXNlVGlsZWREcmF3aW5nQXJlYQoreworICAg
IHJldHVybiBfdXNlVGlsZWREcmF3aW5nOworfQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBX
ZWJLaXRUZXN0UnVubmVyV2luZG93CitAc3ludGhlc2l6ZSBwbGF0Zm9ybVdlYlZpZXcgPSBfcGxh
dGZvcm1XZWJWaWV3OworCistIChCT09MKWlzS2V5V2luZG93Cit7CisgICAgcmV0dXJuIF9wbGF0
Zm9ybVdlYlZpZXcgPyBfcGxhdGZvcm1XZWJWaWV3LT53aW5kb3dJc0tleSgpIDogWUVTOworfQor
CistICh2b2lkKXNldEZyYW1lT3JpZ2luOihDR1BvaW50KXBvaW50Cit7CisgICAgX2Zha2VPcmln
aW4gPSBwb2ludDsKK30KKworLy8gRklYTUU6IHRoZXNlIGZyYW1lIGd5cmF0aW9ucyBjYXVzZSB0
aGUgd2luZG93IHRvIGdvIGhhbGYgb2Zmc2NyZWVuLgorLSAodm9pZClzZXRGcmFtZTooQ0dSZWN0
KXdpbmRvd0ZyYW1lCit7CisgICAgQ0dSZWN0IGN1cnJlbnRGcmFtZSA9IFtzdXBlciBmcmFtZV07
CisKKyAgICBfZmFrZU9yaWdpbiA9IHdpbmRvd0ZyYW1lLm9yaWdpbjsKKworICAgIFtzdXBlciBz
ZXRGcmFtZTpDR1JlY3RNYWtlKGN1cnJlbnRGcmFtZS5vcmlnaW4ueCwgY3VycmVudEZyYW1lLm9y
aWdpbi55LCB3aW5kb3dGcmFtZS5zaXplLndpZHRoLCB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCld
OworfQorCistIChDR1JlY3QpZnJhbWVSZXNwZWN0aW5nRmFrZU9yaWdpbgoreworICAgIENHUmVj
dCBjdXJyZW50RnJhbWUgPSBbc2VsZiBmcmFtZV07CisgICAgcmV0dXJuIENHUmVjdE1ha2UoX2Zh
a2VPcmlnaW4ueCwgX2Zha2VPcmlnaW4ueSwgY3VycmVudEZyYW1lLnNpemUud2lkdGgsIGN1cnJl
bnRGcmFtZS5zaXplLmhlaWdodCk7Cit9CisKKy0gKENHRmxvYXQpYmFja2luZ1NjYWxlRmFjdG9y
Cit7CisgICAgcmV0dXJuIDE7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBVSVdpbmRvdyAoRGV0
YWlscykKKworLSAodm9pZClfc2V0V2luZG93UmVzb2x1dGlvbjooQ0dGbG9hdClyZXNvbHV0aW9u
IGRpc3BsYXlJZkNoYW5nZWQ6KEJPT0wpZGlzcGxheUlmQ2hhbmdlZDsKKworQGVuZAorCituYW1l
c3BhY2UgV1RSIHsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgV0tQYWdlUmVmIHJl
bGF0ZWRQYWdlLCBXS0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKKyAgICA6IG1fd2luZG93SXNLZXko
dHJ1ZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQoreworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiB1c2VUaWxlZERyYXdpbmdLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIlRpbGVkRHJhd2luZyIpKTsKKyAgICBXS1R5cGVSZWYgdXNlVGlsZWREcmF3aW5n
VmFsdWUgPSBvcHRpb25zID8gV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShvcHRpb25zLCB1c2VU
aWxlZERyYXdpbmdLZXkuZ2V0KCkpIDogTlVMTDsKKyAgICBib29sIHVzZVRpbGVkRHJhd2luZyA9
IHVzZVRpbGVkRHJhd2luZ1ZhbHVlICYmIFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdL
Qm9vbGVhblJlZj4odXNlVGlsZWREcmF3aW5nVmFsdWUpKTsKKworICAgIENHUmVjdCByZWN0ID0g
Q0dSZWN0TWFrZSgwLCAwLCBUZXN0Q29udHJvbGxlcjo6dmlld1dpZHRoLCBUZXN0Q29udHJvbGxl
cjo6dmlld0hlaWdodCk7CisgICAgbV92aWV3ID0gW1tUZXN0UnVubmVyV0tWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOnJlY3QgY29udGV4dFJlZjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdl
R3JvdXBSZWYgcmVsYXRlZFRvUGFnZTpyZWxhdGVkUGFnZSB1c2VUaWxlZERyYXdpbmc6dXNlVGls
ZWREcmF3aW5nXTsKKworICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNp
YmxlKFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwUmVmKSwgWUVTKTsKKyAgICBX
S1ByZWZlcmVuY2VzU2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKFdLUGFnZUdy
b3VwR2V0UHJlZmVyZW5jZXMocGFnZUdyb3VwUmVmKSwgWUVTKTsKKworICAgIENHUmVjdCB3aW5k
b3dSZWN0ID0gcmVjdDsKKyAgICBtX3dpbmRvdyA9IFtbV2ViS2l0VGVzdFJ1bm5lcldpbmRvdyBh
bGxvY10gaW5pdFdpdGhGcmFtZTp3aW5kb3dSZWN0XTsKKyAgICBtX3dpbmRvdy5wbGF0Zm9ybVdl
YlZpZXcgPSB0aGlzOworCisgICAgW21fd2luZG93IGFkZFN1YnZpZXc6bV92aWV3XTsKKyAgICBb
bV93aW5kb3cgbWFrZUtleUFuZFZpc2libGVdOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
cmVzaXplVG8odW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKK3sKKyAgICBDR1JlY3Qg
d2luZG93RnJhbWUgPSBbbV93aW5kb3cgZnJhbWVdOworICAgIHdpbmRvd0ZyYW1lLnNpemUud2lk
dGggPSB3aWR0aDsKKyAgICB3aW5kb3dGcmFtZS5zaXplLmhlaWdodCA9IGhlaWdodDsKKyAgICBb
bV93aW5kb3cgc2V0RnJhbWU6d2luZG93RnJhbWVdOworICAgIFttX3ZpZXcgc2V0RnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KV07Cit9CisKK1BsYXRmb3JtV2ViVmlldzo6flBs
YXRmb3JtV2ViVmlldygpCit7CisgICAgbV93aW5kb3cucGxhdGZvcm1XZWJWaWV3ID0gMDsKKy8v
ICAgIFttX3dpbmRvdyBjbG9zZV07CisgICAgW21fdmlldyByZWxlYXNlXTsKKyAgICBbbV93aW5k
b3cgcmVsZWFzZV07Cit9CisKK1dLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKQorewor
ICAgIHJldHVybiBbbV92aWV3IHBhZ2VSZWZdOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
Zm9jdXMoKQoreworLy8gICAgW21fd2luZG93IG1ha2VGaXJzdFJlc3BvbmRlcjptX3ZpZXddOyAv
LyBGSVhNRTogaU9TIGVxdWl2YWxlbnQ/CisgICAgc2V0V2luZG93SXNLZXkodHJ1ZSk7Cit9CisK
K1dLUmVjdCBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd0ZyYW1lKCkKK3sKKyAgICBDR1JlY3QgZnJh
bWUgPSBbbV93aW5kb3cgZnJhbWVSZXNwZWN0aW5nRmFrZU9yaWdpbl07CisKKyAgICBXS1JlY3Qg
d2tGcmFtZTsKKyAgICB3a0ZyYW1lLm9yaWdpbi54ID0gZnJhbWUub3JpZ2luLng7CisgICAgd2tG
cmFtZS5vcmlnaW4ueSA9IGZyYW1lLm9yaWdpbi55OworICAgIHdrRnJhbWUuc2l6ZS53aWR0aCA9
IGZyYW1lLnNpemUud2lkdGg7CisgICAgd2tGcmFtZS5zaXplLmhlaWdodCA9IGZyYW1lLnNpemUu
aGVpZ2h0OworICAgIHJldHVybiB3a0ZyYW1lOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
c2V0V2luZG93RnJhbWUoV0tSZWN0IGZyYW1lKQoreworICAgIFttX3dpbmRvdyBzZXRGcmFtZTpD
R1JlY3RNYWtlKGZyYW1lLm9yaWdpbi54LCBmcmFtZS5vcmlnaW4ueSwgZnJhbWUuc2l6ZS53aWR0
aCwgZnJhbWUuc2l6ZS5oZWlnaHQpXTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmRpZElu
aXRpYWxpemVDbGllbnRzKCkKK3sKKyAgICAvLyBTZXQgYSB0ZW1wb3JhcnkgMXgxIHdpbmRvdyBm
cmFtZSB0byBmb3JjZSBhIFdpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkIG5vdGlmaWNhdGlvbi4g
PHJkYXI6Ly9wcm9ibGVtLzEzMzgwMTQ1PgorICAgIFdLUmVjdCB3a0ZyYW1lID0gd2luZG93RnJh
bWUoKTsKKyAgICBbbV93aW5kb3cgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAxLCAxKV07Cisg
ICAgc2V0V2luZG93RnJhbWUod2tGcmFtZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojph
ZGRDaHJvbWVJbnB1dEZpZWxkKCkKK3sKKyAgICBVSVRleHRGaWVsZCogdGV4dEZpZWxkID0gW1tV
SVRleHRGaWVsZCBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMjAp
XTsKKyAgICB0ZXh0RmllbGQudGFnID0gMTsKKyAgICBbbV93aW5kb3cgYWRkU3Vidmlldzp0ZXh0
RmllbGRdOworICAgIFt0ZXh0RmllbGQgcmVsZWFzZV07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJW
aWV3OjpyZW1vdmVDaHJvbWVJbnB1dEZpZWxkKCkKK3sKKyAgICBVSVRleHRGaWVsZCogdGV4dEZp
ZWxkID0gKFVJVGV4dEZpZWxkKilbbV93aW5kb3cgdmlld1dpdGhUYWc6MV07CisgICAgaWYgKHRl
eHRGaWVsZCkgeworICAgICAgICBbdGV4dEZpZWxkIHJlbW92ZUZyb21TdXBlcnZpZXddOworICAg
ICAgICBtYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCk7CisgICAgICAgIFt0ZXh0RmllbGQgcmVs
ZWFzZV07CisgICAgfQorfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6bWFrZVdlYlZpZXdGaXJz
dFJlc3BvbmRlcigpCit7CisvLyAgICBbbV93aW5kb3cgbWFrZUZpcnN0UmVzcG9uZGVyOm1fdmll
d107Cit9CisKK1dLUmV0YWluUHRyPFdLSW1hZ2VSZWY+IFBsYXRmb3JtV2ViVmlldzo6d2luZG93
U25hcHNob3RJbWFnZSgpCit7CisgICAgcmV0dXJuIDA7IC8vIEZJWE1FIGZvciBpT1M/Cit9CisK
K2Jvb2wgUGxhdGZvcm1XZWJWaWV3Ojp2aWV3U3VwcG9ydHNPcHRpb25zKFdLRGljdGlvbmFyeVJl
ZiBvcHRpb25zKSBjb25zdAoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB1c2VUaWxl
ZERyYXdpbmdLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRpbGVk
RHJhd2luZyIpKTsKKyAgICBXS1R5cGVSZWYgdXNlVGlsZWREcmF3aW5nVmFsdWUgPSBXS0RpY3Rp
b25hcnlHZXRJdGVtRm9yS2V5KG9wdGlvbnMsIHVzZVRpbGVkRHJhd2luZ0tleS5nZXQoKSk7Cisg
ICAgYm9vbCB1c2VUaWxlZERyYXdpbmcgPSB1c2VUaWxlZERyYXdpbmdWYWx1ZSAmJiBXS0Jvb2xl
YW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KHVzZVRpbGVkRHJhd2luZ1ZhbHVl
KSk7CisKKyAgICByZXR1cm4gdXNlVGlsZWREcmF3aW5nID09IFsoVGVzdFJ1bm5lcldLVmlldyAq
KW1fdmlldyB1c2VUaWxlZERyYXdpbmddOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTY1YzllZjNhY2MxNDBiODkzNDczNDk3OTg3MDEzMGQ2NTRiYzM0ZQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tCkBA
IC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlRlc3RDb250cm9sbGVyLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgorI2ltcG9y
dCA8V2ViS2l0Mi9XS1N0cmluZ0NGLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKwor
bmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUoKQorewor
fQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCit2b2lkIFRlc3RD
b250cm9sbGVyOjppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBOU1N0cmlu
ZyAqbnNCdW5kbGVQYXRoID0gW1tbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlUGF0aF0gc3Ry
aW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVu
ZGxlLmJ1bmRsZSJdOworICAgIG1faW5qZWN0ZWRCdW5kbGVQYXRoLmFkb3B0KFdLU3RyaW5nQ3Jl
YXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZiluc0J1bmRsZVBhdGgpKTsKK30KKwordm9pZCBU
ZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKQoreworICAgIG1f
dGVzdFBsdWdpbkRpcmVjdG9yeS5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZT
dHJpbmdSZWYpW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXSkpOworfQorCit2b2lk
IFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGRvbmUsIGRvdWJsZSB0aW1l
b3V0KQoreworICAgIE5TRGF0ZSAqZW5kRGF0ZSA9ICh0aW1lb3V0ID4gMCkgPyBbTlNEYXRlIGRh
dGVXaXRoVGltZUludGVydmFsU2luY2VOb3c6dGltZW91dF0gOiBbTlNEYXRlIGRpc3RhbnRGdXR1
cmVdOworCisgICAgd2hpbGUgKCFkb25lICYmIFtlbmREYXRlIGNvbXBhcmU6W05TRGF0ZSBkYXRl
XV0gPT0gTlNPcmRlcmVkRGVzY2VuZGluZykKKyAgICAgICAgW1tOU1J1bkxvb3AgY3VycmVudFJ1
bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTplbmREYXRlXTsK
K30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpCit7
Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyogdmll
dykKK3sKKyAgICBVSVdpbmRvdyAqd2luZG93ID0gW3ZpZXctPnBsYXRmb3JtVmlldygpIHdpbmRv
d107CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogaG93
IHRvIHBlcmZvcm0gb24gaU9TPworLy8gICAgW1tVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0
aW9uXSBydW5Nb2RhbEZvcldpbmRvdzp3aW5kb3ddOworfQorCitjb25zdCBjaGFyKiBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQoreworICAgIHJldHVybiBb
W0Aifi9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvV2ViS2l0VGVzdFJ1bm5lciIgc3RyaW5n
QnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gVVRGOFN0cmluZ107Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldEhpZGRlbihib29sKSB7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCBmb3IgaU9T
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvV2ViQXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvV2ViQXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYjBiNDYw
ZTgzNzE3MDJlZjI3NDQzOWNlZjhmOTk3ZGYxNDZhNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2lvcy9XZWJBcmNoaXZlRHVtcFN1cHBvcnRJT1MubW0KQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2Vi
QXJjaGl2ZUR1bXBTdXBwb3J0LmgiCisKKyNpZiBQTEFURk9STShJT1MpCisKK0NGVVJMUmVzcG9u
c2VSZWYgY3JlYXRlQ0ZVUkxSZXNwb25zZUZyb21SZXNwb25zZURhdGEoQ0ZEYXRhUmVmIC8qcmVz
cG9uc2VEYXRhKi8pCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0NGQXJyYXlSZWYgc3VwcG9ydGVk
Tm9uSW1hZ2VNSU1FVHlwZXMoKQoreworICAgIHJldHVybiAwOworfQorCisjZW5kaWYgLy8gUExB
VEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvbWFpbklP
Uy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjhmNDg3ZDZiMjYzMzQ0OTIxMWQ1YTcyNTk1OTM0ZmVmOGU4N2NkNQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL21haW5JT1MubW0KQEAgLTAsMCArMSw1OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJUZXN0Q29udHJv
bGxlci5oIgorCisKK3N0YXRpYyBpbnQgX2FyZ2M7CitzdGF0aWMgY29uc3QgY2hhciAqKl9hcmd2
OworCitAaW50ZXJmYWNlIFdlYktpdFRlc3RSdW5uZXJBcHAgOiBVSUFwcGxpY2F0aW9uCitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBXZWJLaXRUZXN0UnVubmVyQXBwCisKKy0gKHZvaWQpX3J1blRl
c3RDb250cm9sbGVyCit7CisgICAgV1RSOjpUZXN0Q29udHJvbGxlciBjb250cm9sbGVyKF9hcmdj
LCBfYXJndik7Cit9CisKKy0gKHZvaWQpYXBwbGljYXRpb25EaWRGaW5pc2hMYXVuY2hpbmc6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgW3NlbGYgcGVyZm9ybVNlbGVjdG9y
T25NYWluVGhyZWFkOkBzZWxlY3RvcihfcnVuVGVzdENvbnRyb2xsZXIpIHdpdGhPYmplY3Q6bmls
IHdhaXRVbnRpbERvbmU6Tk9dOworfQorCitAZW5kCisKK2ludCBtYWluKGludCBhcmdjLCBjb25z
dCBjaGFyKiBhcmd2W10pCit7CisgICAgX2FyZ2MgPSBhcmdjOworICAgIF9hcmd2ID0gYXJndjsK
KworICAgIFVJQXBwbGljYXRpb25NYWluKGFyZ2MsIChjaGFyKiopYXJndiwgTlNTdHJpbmdGcm9t
Q2xhc3MoW1dlYktpdFRlc3RSdW5uZXJBcHAgY2xhc3NdKSwgbmlsKTsKKyAgICByZXR1cm4gMDsK
K30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222142</attachid>
            <date>2014-01-24 12:52:21 -0800</date>
            <delta_ts>2014-01-24 13:25:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127448-20140124125220.patch</filename>
            <type>text/plain</type>
            <size>136094</size>
            <attacher name="David Farler">dfarler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNjQwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWE1MDljNGI5NTNhYjgxNDI2ZTg2ZmJhN2QyODc1MWY1
NWI4NDMzNC4uOGJiZjUwZWJiY2RjZWI5Y2E0YWExYjc0YzMxODQxZDZjZmYzODcxYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
NiBAQAorMjAxNC0wMS0yMyAgRGF2aWQgRmFybGVyICA8ZGZhcmxlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgTWFrZSBXZWJLaXRUZXN0UnVubmVyIHdvcmsgd2l0aCBpT1MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzQ0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbWJpbmVkIHBhdGNoIGZyb20gU2lt
b24gYmVsb3cgd2l0aCBzb21lIGFkZGl0aW9uYWwgeGNjb25maWcgY2xlYW51cHMsCisgICAgICAg
IHJlYmFzaW5nIGFuZCBzdHViYmluZyBvdXQgYSBjb3VwbGUgb2YgbmV3IGZ1bmN0aW9ucyB0aGF0
IHBvcHBlZCB1cAorICAgICAgICBzaW5jZSB0aGVuLgorCisgICAgICAgIDIwMTMtMTItMDMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTU1MTU0Njk+IEdldCBXZWJLaXRUZXN0UnVubmVyIHdvcmtpbmcgb24g
aU9TCisKKyAgICAgICAgICAgICAgICBHZXQgV2ViS2l0VGVzdFJ1bm5lciBsaW1waW5nIG9uIGlP
Uy4gTWFpbiBwYXJ0czoKKyAgICAgICAgICAgICAgICAtIFN0dWIgb3V0IGxvdHMgb2YgYWNjZXNz
aWJpbGl0eS1yZWxhdGVkIGZ1bmN0aW9ucy4KKyAgICAgICAgICAgICAgICAtIFN0dWIgb3V0IEV2
ZW50U2VuZGVyCisgICAgICAgICAgICAgICAgLSBDcmVhdGUgdGFyZ2V0IHRvIG1ha2UgYSBidW5k
bGVkIGFwcCB0aGF0IHJ1bnMgaW4gdGhlIHNpbXVsYXRvciwKKyAgICAgICAgICAgICAgICAgIGFu
ZCBjb3B5IHRoZSBpbmplY3RlZCBidW5kbGUgbGlicmFyeSBpbnRvIGl0LgorICAgICAgICAgICAg
ICAgIC0gTWFrZSBhIFVJV2luZG93IGFuZCBXS1ZpZXcgdG8gbG9hZCB0ZXN0cyBpbgorCisgICAg
ICAgICAgICAgICAgSXQgcnVucywgbG9hZCB0ZXN0cywgYW5kIGR1bXBzIHJlc3VsdHMgdG8gb3V0
cHV0LiBNb3JlIHdvcmsgd2lsbCBiZQorICAgICAgICAgICAgICAgIHJlcXVpcmVkIG9uY2Ugd2Ug
Y2FuIGV4ZWN1dGUgaXQgdmlhIHRoZSB3ZWJraXRweSBzY3JpcHRzLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvSW5qZWN0ZWRCdW5kbGUueGNjb25maWc6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVy
LnhjY29uZmlnOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZl
bnRTZW5kaW5nQ29udHJvbGxlci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW06IEFkZGVkLgorICAg
ICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZp
Y2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
cGxhdGZvcm1OYW1lKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6Omxv
Z0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXVFI6OmZpbmRBY2Nlc3Np
YmxlT2JqZWN0QnlJZCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjph
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmg6IEFkZGVkLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxp
dHlUZXh0TWFya2VySU9TLm1tOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1dl
YktpdFRlc3RSdW5uZXJQcmVmaXguaC4KKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI6OmlzRXF1YWwpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW06IEFkZGVkLgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6fkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VxdWFsKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0TGlua2VkVUlFbGVtZW50cyk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldERvY3VtZW50TGlua3MpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpnZXRDaGlsZHJlbik6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRyZW5Db3VudCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVsZW1lbnRBdFBvaW50KToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5k
ZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxl
bWVudEF0SW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNj
bG9zZWRSb3dBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm93QXRJbmRleCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVj
dGVkQ2hpbGRBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0ZWRDaGlsZHJlbkNvdW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6dGl0bGVVSUVsZW1lbnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpwYXJlbnRFbGVtZW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6ZGlzY2xvc2VkQnlSb3cpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZMaW5rZWRVSUVsZW1lbnRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mRG9jdW1lbnRMaW5rcyk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNoaWxkcmVuKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWxsQXR0cmlidXRlcyk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0F0dHJpYnV0ZVZhbHVlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJheUF0
dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlF
bGVtZW50QXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpib29sQXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpwYXJhbWV0ZXJpemVkQXR0cmlidXRlTmFtZXMpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3Vicm9sZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnJvbGVEZXNjcmlwdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnRpdGxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZGVzY3JpcHRpb24pOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpvcmll
bnRhdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ1Zh
bHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGFuZ3VhZ2UpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWxwVGV4dCk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OngpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp5KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6d2lkdGgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpoZWlnaHQp
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGlja1BvaW50WCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW50VmFsdWUpOgorICAgICAgICAoV1RS
OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptaW5WYWx1ZSk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dmFsdWVEZXNjcmlwdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Omluc2VydGlvblBvaW50TGluZU51bWJlcik6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUHJlc3NBY3Rpb25TdXBwb3J0ZWQpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0luY3JlbWVudEFjdGlvblN1cHBvcnRlZCk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVjcmVtZW50QWN0aW9u
U3VwcG9ydGVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFi
bGVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNSZXF1aXJlZCk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCk6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NlbGVjdGVkT3B0aW9uQWN0aXZlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmRldGVybWluYXRlKToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVsKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xhc3NMaXN0KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWspOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXJpYURyb3BFZmZlY3RzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bGluZUZvckluZGV4KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cmFuZ2VGb3JMaW5lKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cmFuZ2VGb3JQb3NpdGlvbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmJvdW5kc0ZvclJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c3RyaW5nRm9yUmFuZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nUmFuZ2VJc01pc3NwZWxsZWQpOgorICAgICAgICAo
V1RSOjp1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZSk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Rm9yU2VhcmNo
UHJlZGljYXRlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mQ29sdW1uSGVhZGVycyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmF0dHJpYnV0ZXNPZlJvd0hlYWRlcnMpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5zKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93cyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZlZpc2libGVDZWxscyk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkhlYWRlcik6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0NvdW50KToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uQ291bnQpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjppbmRleEluVGFibGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojpyb3dJbmRleFJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y29sdW1uSW5kZXhSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRSb3cpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojpob3Jpem9udGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAoV1RSOjpB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UpOgorICAgICAgICAo
V1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFRleHRSYW5nZSk6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCk6CisgICAgICAgIChX
VFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNob3dNZW51KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cHJlc3MpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzZXRTZWxlY3RlZENoaWxkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmRvY3VtZW50VVJJKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6dXJsKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNTZWxlY3RhYmxlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNNdWx0aVNlbGVjdGFibGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1Zpc2libGUpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc09mZlNjcmVlbik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
Q29sbGFwc2VkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25v
cmVkKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXApOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlRm9jdXMpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0YWtlU2VsZWN0aW9uKToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yRWxlbWVudCk6Cisg
ICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUxlbmd0
aCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzVGV4dE1h
cmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFy
a2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yVGV4
dE1hcmtlclJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4
dE1hcmtlclJhbmdlRm9yTWFya2Vycyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZSk6CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2Up
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9y
Qm91bmRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0
TWFya2VyRm9yQm91bmRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
dGV4dE1hcmtlckZvclBvaW50KToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNv
bnRhaW5zQXR0cmlidXRlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aW5kZXhGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNUZXh0TWFya2VyVmFsaWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0ZXh0TWFya2VyRm9ySW5kZXgpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdGFydFRleHRNYXJrZXIpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjplbmRUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bWF0aFBvc3RzY3JpcHRzRGVzY3JpcHRpb24pOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjptYXRoUHJlc2NyaXB0c0Rlc2NyaXB0aW9uKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGF0aERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3VwcG9ydGVkQWN0aW9ucyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWN0aXZhdGVGb250c0lPUy5tbTog
Q29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyUHJlZml4
LmguCisgICAgICAgIChXVFI6OmFjdGl2YXRlRm9udHMpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW06IEFkZGVkLgor
ICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRlclByb3h5KToKKyAgICAg
ICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkpOgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVDbGlja0NvdW50Rm9yQnV0dG9uKToKKyAgICAg
ICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3duKToKKyAgICAgICAgKFdUUjo6RXZl
bnRTZW5kZXJQcm94eTo6bW91c2VVcCk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6
Om1vdXNlTW92ZVRvKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndh
cmQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjprZXlEb3duKToKKyAgICAgICAg
KFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeSk6CisgICAgICAgIChXVFI6OkV2
ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KToKKyAgICAgICAgKFdUUjo6
RXZlbnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludCk6CisgICAgICAgIChXVFI6OkV2ZW50U2Vu
ZGVyUHJveHk6OnVwZGF0ZVRvdWNoUG9pbnQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclBy
b3h5OjpzZXRUb3VjaE1vZGlmaWVyKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6
c2V0VG91Y2hQb2ludFJhZGl1cyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnRv
dWNoU3RhcnQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp0b3VjaE1vdmUpOgor
ICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCk6CisgICAgICAgIChXVFI6
OkV2ZW50U2VuZGVyUHJveHk6OnRvdWNoQ2FuY2VsKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5k
ZXJQcm94eTo6Y2xlYXJUb3VjaFBvaW50cyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJv
eHk6OnJlbGVhc2VUb3VjaFBvaW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6
Y2FuY2VsVG91Y2hQb2ludCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJT1MubW06IENvcGllZCBmcm9tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oLgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2lvcy9JbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW06IENvcGllZCBmcm9t
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oLgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnBsYXRmb3JtRGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9NYWtlZmlsZToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246Omludm9rZSk6CisgICAgICAg
IChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5u
ZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1dlYktpdFRlc3RSdW5uZXJBcHAvQXBwRGVsZWdhdGUuaDogQWRkZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL0FwcERlbGVnYXRlLm06IEFkZGVkLgor
ICAgICAgICAoLVtBcHBEZWxlZ2F0ZSBhcHBsaWNhdGlvbjpkaWRGaW5pc2hMYXVuY2hpbmdXaXRo
T3B0aW9uczpdKToKKyAgICAgICAgKC1bQXBwRGVsZWdhdGUgYXBwbGljYXRpb25XaWxsUmVzaWdu
QWN0aXZlOl0pOgorICAgICAgICAoLVtBcHBEZWxlZ2F0ZSBhcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZDpdKToKKyAgICAgICAgKC1bQXBwRGVsZWdhdGUgYXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kOl0pOgorICAgICAgICAoLVtBcHBEZWxlZ2F0ZSBhcHBsaWNhdGlvbkRpZEJlY29t
ZUFjdGl2ZTpdKToKKyAgICAgICAgKC1bQXBwRGVsZWdhdGUgYXBwbGljYXRpb25XaWxsVGVybWlu
YXRlOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9J
bWFnZXMueGNhc3NldHMvQXBwSWNvbi5hcHBpY29uc2V0L0NvbnRlbnRzLmpzb246IEFkZGVkLgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9JbWFnZXMueGNh
c3NldHMvTGF1bmNoSW1hZ2UubGF1bmNoaW1hZ2UvQ29udGVudHMuanNvbjogQWRkZWQuCisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL1dlYktpdFRlc3RSdW5u
ZXJBcHAtSW5mby5wbGlzdDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyQXBwL1dlYktpdFRlc3RSdW5uZXJBcHAtUHJlZml4LnBjaDogQWRkZWQuCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL2VuLmxwcm9qL0lu
Zm9QbGlzdC5zdHJpbmdzOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXJBcHAvbWFpbi5tOiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3Q6IEFk
ZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3Rz
L1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0OiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVy
QXBwVGVzdHMubTogQWRkZWQuCisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cyBz
ZXRVcF0pOgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMgdGVhckRvd25dKToK
KyAgICAgICAgKC1bV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzIHRlc3RFeGFtcGxlXSk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMvZW4ubHByb2ov
SW5mb1BsaXN0LnN0cmluZ3M6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2Vi
S2l0VGVzdFJ1bm5lclByZWZpeC5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY2cvVGVz
dEludm9jYXRpb25DRy5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pT1MueGNjb25m
aWc6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmll
d0lPUy5tbTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1ZpZXcgaW5pdFdpdGhGcmFt
ZTpjb250ZXh0UmVmOnBhZ2VHcm91cFJlZjpyZWxhdGVkVG9QYWdlOnVzZVRpbGVkRHJhd2luZzpd
KToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLVmlldyBfc2hvdWxkVXNlVGlsZWREcmF3aW5nQXJl
YV0pOgorICAgICAgICAoLVtXZWJLaXRUZXN0UnVubmVyV2luZG93IGlzS2V5V2luZG93XSk6Cisg
ICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgc2V0RnJhbWVPcmlnaW46XSk6CisgICAg
ICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgc2V0RnJhbWU6XSk6CisgICAgICAgICgtW1dl
YktpdFRlc3RSdW5uZXJXaW5kb3cgZnJhbWVSZXNwZWN0aW5nRmFrZU9yaWdpbl0pOgorICAgICAg
ICAoLVtXZWJLaXRUZXN0UnVubmVyV2luZG93IGJhY2tpbmdTY2FsZUZhY3Rvcl0pOgorICAgICAg
ICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChXVFI6
OlBsYXRmb3JtV2ViVmlldzo6cmVzaXplVG8pOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZp
ZXc6On5QbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnBh
Z2UpOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKToKKyAgICAgICAgKFdU
Ujo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSk6CisgICAgICAgIChXVFI6OlBsYXRmb3Jt
V2ViVmlldzo6c2V0V2luZG93RnJhbWUpOgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6
OmRpZEluaXRpYWxpemVDbGllbnRzKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojph
ZGRDaHJvbWVJbnB1dEZpZWxkKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpyZW1v
dmVDaHJvbWVJbnB1dEZpZWxkKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjptYWtl
V2ViVmlld0ZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3
aW5kb3dTbmFwc2hvdEltYWdlKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp2aWV3
U3VwcG9ydHNPcHRpb25zKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29u
dHJvbGxlcklPUy5tbTogQWRkZWQuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpub3Rp
ZnlEb25lKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdpbkRpcmVj
dG9yeSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJ1blVudGlsKToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQp
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwpOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1dlYkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbTogQ29w
aWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyUHJlZml4Lmgu
CisgICAgICAgIChjcmVhdGVDRlVSTFJlc3BvbnNlRnJvbVJlc3BvbnNlRGF0YSk6CisgICAgICAg
IChzdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvbWFpbklPUy5tbTogQ29waWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyUHJlZml4LmguCisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJBcHAgX3J1
blRlc3RDb250cm9sbGVyXSk6CisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJBcHAgYXBwbGlj
YXRpb25EaWRGaW5pc2hMYXVuY2hpbmc6XSk6CisgICAgICAgIChtYWluKToKKwogMjAxNC0wMS0y
MyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQREZQ
bHVnaW46IFVzZSBQREZQbHVnaW4gZXZlbiBpZiB0aGVyZSdzIGFuIGV4dGVybmFsIHBsdWdpbiBp
bnN0YWxsZWQsIGlmIGl0J3MgYmxvY2tlZApkaWZmIC0tZ2l0IGEvVG9vbHMvTWFrZWZpbGUgYi9U
b29scy9NYWtlZmlsZQppbmRleCAyODgwNjAzMTE2ODM1MmY4MjhmMDI2ZmM1MWUyYWE4ZjhhYzBk
N2U4Li5iYWFkNTgzZjNiMTJiZDAwZGM0OTJmMDJiNGY4YWJjN2ZmZjcyMTMxIDEwMDY0NAotLS0g
YS9Ub29scy9NYWtlZmlsZQorKysgYi9Ub29scy9NYWtlZmlsZQpAQCAtMyw3ICszLDcgQEAgTU9E
VUxFUyA9IER1bXBSZW5kZXJUcmVlIFdlYktpdFRlc3RSdW5uZXIgTWluaUJyb3dzZXIgLi4vU291
cmNlL1RoaXJkUGFydHkvZ3Rlc3QKIGlmbmVxICgsJChmaW5kc3RyaW5nIGlwaG9uZSwkKFNES1JP
T1QpKSkKIAkjIEZJWE1FOiBCdWlsZCBwcm9qZWN0cyAuLi9Tb3VyY2UvVGhpcmRQYXJ0eS9ndGVz
dC94Y29kZSwgVGVzdFdlYktpdEFQSSBmb3IgYm90aCBkZXZpY2UgYW5kIHNpbXVsYXRvcgogCSMg
YW5kIGJ1aWxkIHByb2plY3QgRHVtcFJlbmRlclRyZWUgZm9yIHNpbXVsYXRvci4KLQlNT0RVTEVT
ID0KKwlNT0RVTEVTID0gV2ViS2l0VGVzdFJ1bm5lcgogZW5kaWYKIAogYWxsOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4
IDQ4NTFmYzFkMWQ4ODk2YmEzNzk2MjJmZTZjNWUzNTk2ZDBiMTY0YWQuLmU0MTMxYTBkYTZmMzQ5
ODQyOTA5YTliYzJhZTBhMDJiZDQwOGM1ODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTIxLDYgKzIxLDggQEAKIC8v
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAKKyNpbmNsdWRlICJpT1MueGNjb25maWci
CisKIENMQU5HX0NYWF9MQU5HVUFHRV9TVEFOREFSRCA9IGdudSsrMHg7CiBDTEFOR19DWFhfTElC
UkFSWSA9IGxpYmMrKzsKIENMQU5HX1dBUk5fQ1hYMFhfRVhURU5TSU9OUyA9IE5POwpAQCAtMzcs
NiArMzksOCBAQCBHQ0NfVkVSU0lPTiA9IGNvbS5hcHBsZS5jb21waWxlcnMubGx2bS5jbGFuZy4x
XzA7CiBHQ0NfV0FSTl9BQk9VVF9ERVBSRUNBVEVEX0ZVTkNUSU9OUyA9IE5PCiBHQ0NfV0FSTl9V
TlVTRURfRlVOQ1RJT04gPSBZRVMKIEdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUworR0ND
X1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT05bYXJjaD1hcm02NF0gPSBOTzsKK0dDQ19XQVJO
XzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OW2FyY2g9eDg2XzY0XSA9IE5POwogV0FSTklOR19DRkxB
R1MgPSAtV2FsbCAtVyAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVd1bmRlZgogTElOS0VSX0RJU1BM
QVlTX01BTkdMRURfTkFNRVMgPSBZRVM7CiBHQ0NfUFJFRklYX0hFQURFUiA9IFdlYktpdFRlc3RS
dW5uZXJQcmVmaXguaApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1
cmF0aW9ucy9JbmplY3RlZEJ1bmRsZS54Y2NvbmZpZyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Q29uZmlndXJhdGlvbnMvSW5qZWN0ZWRCdW5kbGUueGNjb25maWcKaW5kZXggN2Q3OGUzZTgxYjgy
MzNlZmNiNjM2ZjI3ODMzMWFlZTBlZWNiNTM5Ny4uM2YyODE5NDNlYTU4OTU2OTJlZGY4YWRiY2Q1
MGU3ZGY0NGZlNzM5MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Db25maWd1
cmF0aW9ucy9JbmplY3RlZEJ1bmRsZS54Y2NvbmZpZworKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0NvbmZpZ3VyYXRpb25zL0luamVjdGVkQnVuZGxlLnhjY29uZmlnCkBAIC0yOCw0ICsyOCwx
NCBAQCBQUk9EVUNUX05BTUUgPSBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGU7CiAKIElO
U1RBTExfUEFUSCA9ICQoU1lTVEVNX0xJQlJBUllfRElSKS9GcmFtZXdvcmtzL1dlYktpdC5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXM7CiBTS0lQX0lOU1RBTEwgPSBOTzsKLU9USEVSX0xE
RkxBR1MgPSAkKGluaGVyaXRlZCkgLWwkKFdFQktJVF9TWVNURU1fSU5URVJGQUNFX0xJQlJBUlkp
OworCitPVEhFUl9MREZMQUdTX0JBU0UgPSAkKGluaGVyaXRlZCkgLWwkKFdFQktJVF9TWVNURU1f
SU5URVJGQUNFX0xJQlJBUlkpIC1mcmFtZXdvcmsgUXVhcnR6Q29yZTsKK09USEVSX0xERkxBR1Mg
PSAkKE9USEVSX0xERkxBR1NfJChQTEFURk9STV9OQU1FKSk7CitPVEhFUl9MREZMQUdTX2lwaG9u
ZW9zID0gJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdv
cmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBGb3Vu
ZGF0aW9uIC1mcmFtZXdvcmsgVUlLaXQ7CitPVEhFUl9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9
ICQoT1RIRVJfTERGTEFHU19pcGhvbmVvcyk7CitPVEhFUl9MREZMQUdTX21hY29zeCA9ICQoT1RI
RVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIENhcmJvbiAtZnJhbWV3b3JrIENvY29hOworCitF
WENMVURFRF9TT1VSQ0VfRklMRV9OQU1FUyA9ICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNf
JChQTEFURk9STV9OQU1FKSk7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyA9
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFj
Lm1tIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gQWN0aXZhdGVGb250cy5tbSBJbmplY3Rl
ZEJ1bmRsZU1hYy5tbSBJbmplY3RlZEJ1bmRsZVBhZ2VNYWMubW0gV2ViQXJjaGl2ZUR1bXBTdXBw
b3J0TWFjLm1tOworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfaXBob25lc2ltdWxhdG9yID0g
JChFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyk7CitFWENMVURFRF9TT1VSQ0Vf
RklMRV9OQU1FU19tYWNvc3ggPSAqSU9TLio7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXIueGNjb25maWcgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0NvbmZpZ3VyYXRpb25zL1dlYktpdFRlc3RSdW5uZXIueGNjb25maWcK
aW5kZXggMDcxMDE2ZWYyNmI2M2I1YWQ0ZDUwOWU4NWE5N2Y5OWFhNTQ4N2NkOS4uYzA3YWQyNGQx
YTJkZDdlOGU5Y2Q1NWRjYzJmMjliYTNhN2JiNjNlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9Db25maWd1cmF0aW9ucy9XZWJLaXRUZXN0UnVubmVyLnhjY29uZmlnCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ29uZmlndXJhdGlvbnMvV2ViS2l0VGVzdFJ1bm5lci54
Y2NvbmZpZwpAQCAtMjYsNSArMjYsMTYgQEAKIFBST0RVQ1RfTkFNRSA9IFdlYktpdFRlc3RSdW5u
ZXIKIEdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVTCiAKK09USEVSX0xERkxBR1NfQkFT
RSA9IC1sJChXRUJLSVRfU1lTVEVNX0lOVEVSRkFDRV9MSUJSQVJZKSAtZnJhbWV3b3JrIFdlYktp
dDI7CitPVEhFUl9MREZMQUdTID0gJChPVEhFUl9MREZMQUdTXyQoUExBVEZPUk1fTkFNRSkpOwor
T1RIRVJfTERGTEFHU19pcGhvbmVvcyA9ICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3Jr
IEphdmFTY3JpcHRDb3JlIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgSW1hZ2VJ
TyAtZnJhbWV3b3JrIFVJS2l0OworT1RIRVJfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAkKE9U
SEVSX0xERkxBR1NfaXBob25lb3MpOworT1RIRVJfTERGTEFHU19tYWNvc3ggPSAkKE9USEVSX0xE
RkxBR1NfQkFTRSkgLWZyYW1ld29yayBDYXJib24gLWZyYW1ld29yayBDb2NvYTsKKwogSU5TVEFM
TF9QQVRIID0gJChTWVNURU1fTElCUkFSWV9ESVIpL0ZyYW1ld29ya3MvV2ViS2l0LmZyYW1ld29y
ay9WZXJzaW9ucy9BL1Jlc291cmNlczsKIFNLSVBfSU5TVEFMTCA9IE5POworCitFWENMVURFRF9T
T1VSQ0VfRklMRV9OQU1FUyA9ICQoRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVNfJChQTEFURk9S
TV9OQU1FKSk7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVvcyA9IEV2ZW50U2Vu
ZGVyUHJveHkubW0gbWFpbi5tbSBQbGF0Zm9ybVdlYlZpZXdNYWMubW0gVGVzdENvbnRyb2xsZXJN
YWMubW0gbWFjLyo7CitFWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU19pcGhvbmVzaW11bGF0b3Ig
PSAkKEVYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2lwaG9uZW9zKTsKK0VYQ0xVREVEX1NPVVJD
RV9GSUxFX05BTUVTX21hY29zeCA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRJUGhvbmUubW07CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcAppbmRleCA5NmM3OWM0NTI5YzQ2ODEzY2FhMzQ3
YjM5OTEyNzZkMzU2Y2JkNzYzLi42NWUzNTU2NTJmOWQzMGM5M2YwNjFmMTgyY2M4YmY4MjY5MjIx
ODdjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAg
c3RydWN0IE1lbnVJdGVtUHJpdmF0ZURhdGEgewogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dE1l
bnVJdGVtUmVmPiBtX2l0ZW07CiB9OwogCi0KKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIHN0
YXRpYyBKU1ZhbHVlUmVmIG1lbnVJdGVtQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCiB7CiAgICAgTWVudUl0ZW1Qcml2YXRlRGF0YSogcHJpdmF0ZURhdGEgPSBzdGF0
aWNfY2FzdDxNZW51SXRlbVByaXZhdGVEYXRhKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKQEAgLTEwNCw2ICsxMDQsNyBAQCBzdGF0aWMgSlNDbGFzc1JlZiBnZXRNZW51SXRlbUNs
YXNzKCkKIAogICAgIHJldHVybiBtZW51SXRlbUNsYXNzOwogfQorI2VuZGlmCiAKIHN0YXRpYyBX
S0V2ZW50TW9kaWZpZXJzIHBhcnNlTW9kaWZpZXIoSlNTdHJpbmdSZWYgbW9kaWZpZXIpCiB7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJi
ZmQxYzYxMjFlZTk0ZTc3NTJiNzQ3NjA2NmY1M2ZhYzVhZDY1YTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcklPUy5tbQpAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLmgiCisjaW1wb3J0ICJB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgorI2ltcG9ydCAiQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbkhhbmRsZXIuaCIKKyNpbXBvcnQgIkluamVjdGVkQnVuZGxlLmgiCisjaW1wb3J0ICJJbmpl
Y3RlZEJ1bmRsZVBhZ2UuaCIKKworI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIu
aD4KKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmLmg+CisjaW1wb3J0IDxKYXZh
U2NyaXB0Q29yZS9KU1N0cmluZ1JlZkNGLmg+CisjaW1wb3J0IDxXZWJLaXQyL1dLQnVuZGxlLmg+
CisjaW1wb3J0IDxXZWJLaXQyL1dLQnVuZGxlUGFnZS5oPgorI2ltcG9ydCA8V2ViS2l0Mi9XS0J1
bmRsZVBhZ2VQcml2YXRlLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitib29sIEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9u
Q2FsbGJhY2spCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6cGxhdGZvcm1OYW1lKCkKK3sKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxh
dGZvcm1OYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiaW9zIikpOwor
ICAgIHJldHVybiBwbGF0Zm9ybU5hbWU7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmxvZ0FjY2Vzc2liaWxpdHlFdmVudHMoKQoreworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKK3sKKyAgICBpZiAobV9nbG9iYWxO
b3RpZmljYXRpb25IYW5kbGVyKQorICAgICAgICByZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigp
OworfQorCitzdGF0aWMgaWQgZmluZEFjY2Vzc2libGVPYmplY3RCeUlkKGlkIG9iaiwgTlNTdHJp
bmcgKmlkQXR0cmlidXRlKQoreworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxl
bWVudEJ5SWQoSlNTdHJpbmdSZWYgaWRBdHRyaWJ1dGUpCit7CisgICAgV0tCdW5kbGVQYWdlUmVm
IHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCk7CisgICAgaWQg
cm9vdCA9IHN0YXRpY19jYXN0PFBsYXRmb3JtVUlFbGVtZW50PihXS0FjY2Vzc2liaWxpdHlSb290
T2JqZWN0KHBhZ2UpKTsKKworICAgIGlkIHJlc3VsdCA9IGZpbmRBY2Nlc3NpYmxlT2JqZWN0QnlJ
ZChyb290LCBbTlNTdHJpbmcgc3RyaW5nV2l0aEpTU3RyaW5nUmVmOmlkQXR0cmlidXRlXSk7Cisg
ICAgaWYgKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNy
ZWF0ZShyZXN1bHQpOworCisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmMxNjA4ODc1YWZhYTk1ZTEyZjIwMzcxNTU3ZGFlZDdmMTA2ODRhMgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0Fj
Y2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXJfaAorI2RlZmluZSBBY2Nlc3NpYmlsaXR5
Tm90aWZpY2F0aW9uSGFuZGxlcl9oCisKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0
UmVmLmg+CisKK0BpbnRlcmZhY2UgQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIgOiBO
U09iamVjdCB7CisgICAgaWQgbV9wbGF0Zm9ybUVsZW1lbnQ7CisgICAgSlNWYWx1ZVJlZiBtX25v
dGlmaWNhdGlvbkZ1bmN0aW9uQ2FsbGJhY2s7Cit9CisKKy0gKGlkKWluaXQ7CistICh2b2lkKXNl
dFBsYXRmb3JtRWxlbWVudDooaWQpcGxhdGZvcm1FbGVtZW50OworLSAodm9pZClzZXRDYWxsYmFj
azooSlNWYWx1ZVJlZiljYWxsYmFjazsKKy0gKHZvaWQpc3RhcnRPYnNlcnZpbmc7CistICh2b2lk
KXN0b3BPYnNlcnZpbmc7CisKK0BlbmQKKworI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb25IYW5kbGVyX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJJT1Mu
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGRjNjhkNzJmZGQ4YTk0YmQzZmI3NTliOTYxZjE4N2RhNjhkOTEwOAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5oIgorCituYW1lc3BhY2Ug
V1RSIHsKKworYm9vbCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6aXNFcXVhbChBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlciogb3RoZXIpCit7CisgICAgcmV0dXJuIFsoaWQpcGxhdGZvcm1UZXh0TWFy
a2VyKCkgaXNFcXVhbDooaWQpb3RoZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV1RSCisKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW0gYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9T
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI3NmRiMWViYzZjNWZkNzBhYWIzOTY4YzZjYzYxYjMwNmU1YjkwOTcK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2lvcy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tCkBAIC0wLDAgKzEsNzc4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5oIgorI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgorI2lt
cG9ydCAiSW5qZWN0ZWRCdW5kbGUuaCIKKyNpbXBvcnQgIkluamVjdGVkQnVuZGxlUGFnZS5oIgor
I2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQgZWxl
bWVudCkKKyAgICA6IG1fZWxlbWVudChlbGVtZW50KQoreworICAgIC8vIEZJWE1FOiBhcEB3ZWJr
aXQub3JnIHNheXMgT2JqQyBvYmplY3RzIG5lZWQgdG8gYmUgQ0ZSZXRhaW5lZC9DRlJlbGVhc2Ug
dG8gYmUgR0MtY29tcGxpYW50IG9uIHRoZSBtYWMuCisgICAgW21fZWxlbWVudCByZXRhaW5dOwor
fQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmIG90aGVyKQorICAgIDogSlNXcmFwcGFibGUoKQorICAg
ICwgbV9lbGVtZW50KG90aGVyLm1fZWxlbWVudCkKK3sKKyAgICBbbV9lbGVtZW50IHJldGFpbl07
Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3NpYmlsaXR5VUlFbGVtZW50KCkK
K3sKKyAgICBbbV9lbGVtZW50IHJlbGVhc2VdOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogb3RoZXJFbGVtZW50KQorewor
ICAgIGlmICghb3RoZXJFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHBsYXRmb3JtVUlFbGVtZW50KCkgPT0gb3RoZXJFbGVtZW50LT5wbGF0Zm9ybVVJRWxlbWVudCgp
OworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldExpbmtlZFVJRWxlbWVudHMo
VmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiBlbGVtZW50VmVjdG9yKQor
eworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldERvY3VtZW50TGlua3MoVmVj
dG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiBlbGVtZW50VmVjdG9yKQorewor
fQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuKFZlY3RvcjxSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYgZWxlbWVudFZlY3RvcikKK3sKKyAgICBOU0lu
dGVnZXIgY2hpbGRDb3VudCA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUVsZW1lbnRDb3VudF07
CisgICAgZm9yIChOU0ludGVnZXIgayA9IDA7IGsgPCBjaGlsZENvdW50OyArK2spCisgICAgICAg
IGVsZW1lbnRWZWN0b3IuYXBwZW5kKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50QXRJbmRleDprXSkpOworfQorCit2b2lkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYgZWxlbWVudFZlY3RvciwgdW5zaWduZWQgbG9jYXRpb24s
IHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBOU1VJbnRlZ2VyIGNoaWxkQ291bnQgPSBbbV9lbGVt
ZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Q291bnRdOworICAgIGZvciAoTlNVSW50ZWdlciBrID0g
bG9jYXRpb247IGsgPCBjaGlsZENvdW50ICYmIGsgPCAobG9jYXRpb24rbGVuZ3RoKTsgKytrKQor
ICAgICAgICBlbGVtZW50VmVjdG9yLmFwcGVuZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVh
dGUoW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RWxlbWVudEF0SW5kZXg6a10pKTsKK30KKworaW50
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnQoKQoreworICAgIFZlY3RvcjxS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+IGNoaWxkcmVuOworICAgIGdldENoaWxkcmVu
KGNoaWxkcmVuKTsKKworICAgIHJldHVybiBjaGlsZHJlbi5zaXplKCk7Cit9CisKK1Bhc3NSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxlbWVu
dEF0UG9pbnQoaW50IHgsIGludCB5KQoreworICAgIHJldHVybiAwOworfQorCit1bnNpZ25lZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9mQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZEF0SW5kZXgodW5zaWdu
ZWQgaW5kZXgpCit7CisgICAgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+
IGNoaWxkcmVuOworICAgIGdldENoaWxkcmVuV2l0aFJhbmdlKGNoaWxkcmVuLCBpbmRleCwgMSk7
CisKKyAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpID09IDEpCisgICAgICAgIHJldHVybiBjaGlsZHJl
blswXTsKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVuc2ln
bmVkIGluZGV4KQoreworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFPd25zRWxlbWVudEF0SW5k
ZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0Vs
ZW1lbnRBdEluZGV4KHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiAwOworfQorCitQYXNz
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRp
c2Nsb3NlZFJvd0F0SW5kZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIDA7Cit9CisK
K1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cm93QXRJbmRleCh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFz
c1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
ZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4g
MDsKK30KKwordW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJl
bkNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5k
ZXgodW5zaWduZWQgaW5kZXgpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGVVSUVsZW1l
bnQoKQoreworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmVudEVsZW1lbnQoKQoreworICAgIHJl
dHVybiBuaWw7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkQnlSb3coKQoreworICAgIHJldHVybiAwOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mTGlua2VkVUlFbGVtZW50cygpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0
aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZEb2N1bWVudExpbmtzKCkKK3sKKyAgICByZXR1
cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNoaWxkcmVu
KCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0
dHJpYnV0ZXMoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAs
IDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIHJl
dHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitkb3VibGUgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0
cmlidXRlKQoreworICAgIHJldHVybiAwOworfQorCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnVpRWxlbWVudEFycmF5QXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYgYXR0cmli
dXRlKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZh
bHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdS
ZWYgYXR0cmlidXRlKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0F0dHJpYnV0ZVNldHRhYmxlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIHJldHVy
biBmYWxzZTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1lcygpCit7CisgICAgcmV0dXJuIEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlKCkKK3sKKyAgICByZXR1cm4gSlNTdHJp
bmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1YnJvbGUoKQoreworICAgIHJldHVybiBKU1N0
cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKCkKK3sKKyAgICBy
ZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRpdGxlKCkKK3sKKyAgICBy
ZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlc2NyaXB0aW9uKCkKK3sK
KyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9u
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAw
KTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0cmluZ1ZhbHVlKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVy
cygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFj
dGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmhlbHBUZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OngoKQoreworICAgIENHUmVjdCBmcmFtZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUZyYW1l
XTsKKyAgICByZXR1cm4gZnJhbWUub3JpZ2luLng7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBDR1JlY3QgZnJhbWUgPSBbbV9lbGVtZW50IGFjY2Vzc2li
aWxpdHlGcmFtZV07CisgICAgcmV0dXJuIGZyYW1lLm9yaWdpbi55OworfQorCitkb3VibGUgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQoreworICAgIENHUmVjdCBmcmFtZSA9IFttX2Vs
ZW1lbnQgYWNjZXNzaWJpbGl0eUZyYW1lXTsKKyAgICByZXR1cm4gZnJhbWUuc2l6ZS53aWR0aDsK
K30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlaWdodCgpCit7CisgICAgQ0dS
ZWN0IGZyYW1lID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5RnJhbWVdOworICAgIHJldHVybiBm
cmFtZS5zaXplLmhlaWdodDsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNs
aWNrUG9pbnRYKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNsaWNrUG9pbnRZKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsK
K30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pblZhbHVlKCkKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKCkK
K3sKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24oKQoreworICAgIHJldHVybiBKU1N0cmlu
Z0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyKCkKK3sKKyAgICByZXR1cm4gLTE7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
SW5jcmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNEZWNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQor
eworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0VuYWJsZWQoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2VkKCkgY29uc3QKK3sKKyAgICAv
LyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQoKSBjb25zdAoreworICAgIFVJQWNjZXNzaWJpbGl0
eVRyYWl0cyB0cmFpdHMgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlUcmFpdHNdOworICAgIHJl
dHVybiAodHJhaXRzICYgVUlBY2Nlc3NpYmlsaXR5VHJhaXRTZWxlY3RlZCk7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIGNvbnN0Cit7
CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ2hlY2tlZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGllcmFy
Y2hpY2FsTGV2ZWwoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xhc3NMaXN0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNwZWFrKCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphcmlhRHJvcEVmZmVjdHMoKSBjb25zdAoreworICAgIHJldHVybiBKU1N0
cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCisvLyBwYXJhbWV0ZXJpemVkIGF0
dHJpYnV0ZXMKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lRm9ySW5kZXgoaW50IGlu
ZGV4KQoreworICAgIHJldHVybiAtMTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQgbGluZSkKK3sKKyAgICByZXR1
cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnJhbmdlRm9yUG9zaXRpb24oaW50IHgsIGludCB5KQoreworICAgIHJldHVybiAwOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Ym91bmRz
Rm9yUmFuZ2UodW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1
cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKHVuc2ln
bmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3Jl
YXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2UodW5zaWduZWQg
bG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
dHRyaWJ1dGVkU3RyaW5nUmFuZ2VJc01pc3NwZWxsZWQodW5zaWduZWQgbG9jYXRpb24sIHVuc2ln
bmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIHVpRWxlbWVu
dENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiwgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCogc3RhcnRFbGVtZW50LCBib29sIGlzRGlyZWN0aW9uTmV4dCwgSlNWYWx1ZVJlZiBzZWFy
Y2hLZXksIEpTU3RyaW5nUmVmIHNlYXJjaFRleHQsIGJvb2wgdmlzaWJsZU9ubHkpCit7CisgICAg
cmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVu
dENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KiBzdGFydEVsZW1lbnQsIGJvb2wgaXNEaXJlY3Rpb25OZXh0LCBKU1ZhbHVl
UmVmIHNlYXJjaEtleSwgSlNTdHJpbmdSZWYgc2VhcmNoVGV4dCwgYm9vbCB2aXNpYmxlT25seSkK
K3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUoSlND
b250ZXh0UmVmIGNvbnRleHQsIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqIHN0YXJ0RWxlbWVudCwg
Ym9vbCBpc0RpcmVjdGlvbk5leHQsIEpTVmFsdWVSZWYgc2VhcmNoS2V5LCBKU1N0cmluZ1JlZiBz
ZWFyY2hUZXh0LCBib29sIHZpc2libGVPbmx5KQoreworICAgIHJldHVybiAwOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09m
Q29sdW1uSGVhZGVycygpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3Rl
cnMoMCwgMCk7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdD
cmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbnMoKQoreworICAgIHJl
dHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93cygp
Cit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFy
YWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXR0cmlidXRlc09mSGVhZGVyKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdD
cmVhdGVXaXRoQ2hhcmFjdGVycygwLCAwKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnJvd0NvdW50KCkKK3sKKyAgICByZXR1cm4gLTE7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpjb2x1bW5Db3VudCgpCit7CisgICAgcmV0dXJuIC0xOworfQorCitpbnQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICByZXR1cm4gLTE7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dJ
bmRleFJhbmdlKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygw
LCAwKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhD
aGFyYWN0ZXJzKDAsIDApOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNlbGxGb3JDb2x1bW5BbmRSb3codW5zaWduZWQgY29s
LCB1bnNpZ25lZCByb3cpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aG9yaXpvbnRhbFNjcm9s
bGJhcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dmVydGljYWxTY3JvbGxiYXIo
KSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnNjcm9sbFRvTWFrZVZpc2libGUoKQoreworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKQoreworICAgIHJl
dHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCit2b2lkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkIGxvY2F0aW9u
LCB1bnNpZ25lZCBsZW5ndGgpCit7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aW5jcmVtZW50KCkKK3sKKyAgICBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlJbmNyZW1lbnRdOwor
fQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRlY3JlbWVudCgpCit7CisgICAgW21f
ZWxlbWVudCBhY2Nlc3NpYmlsaXR5RGVjcmVtZW50XTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzaG93TWVudSgpCit7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cHJlc3MoKQoreworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVj
dGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCogZWxlbWVudCkgY29uc3QKK3sKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFjY2Vzc2li
aWxpdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVy
biBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygpCit7
CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9CisKK0pT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb2N1bWVudFVS
SSgpCit7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoMCwgMCk7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1cmwo
KQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKDAsIDApOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpT
VmFsdWVSZWYgZnVuY3Rpb25DYWxsYmFjaykKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQor
eworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0ZvY3VzYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6
IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IGltcGxl
bWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc1Zpc2libGUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4o
KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDb2xsYXBzZWQoKSBjb25zdAorewor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGFzUG9wdXAoKSBjb25zdAor
eworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
YWtlRm9jdXMoKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKwordm9pZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp0YWtlU2VsZWN0aW9uKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKCkKK3sK
KyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKKy8v
IFRleHQgbWFya2VycworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSogcmFuZ2UpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3Vz
VGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1hcmtlcikKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6bmV4dFRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIq
IHRleHRNYXJrZXIpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSogbWFya2VyUmFuZ2UpCit7CisgICAgcmV0dXJuIDA7
Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yTWFya2VycyhBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlciogc3RhcnRNYXJrZXIsIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiBlbmRNYXJrZXIp
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXJS
YW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKiByYW5nZSkKK3sKKyAgICByZXR1cm4g
MDsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlKiByYW5nZSkKK3sKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4
dE1hcmtlckZvckJvdW5kcyhpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKGlu
dCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICAgIHJldHVybiBudWxscHRy
OworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0ZXh0TWFya2VyRm9yUG9pbnQoaW50IHgsIGludCB5KQoreworICAgIHJldHVy
biAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlFbGVtZW50Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlciogbWFya2VyKQoreworICAgIHJldHVybiAwOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VDb250
YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUsIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyUmFuZ2UqIHJhbmdlKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmluZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
ciogbWFya2VyKQoreworICAgIHJldHVybiAtMTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogdGV4dE1h
cmtlcikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Bhc3NSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JJbmRleChp
bnQgdGV4dEluZGV4KQoreworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXIo
KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3JpcHRpb24oKSBjb25zdAoreworICAgIHJldHVy
biAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cGF0aERlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlv
bnMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvQWN0
aXZhdGVGb250c0lPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0FjdGl2YXRlRm9udHNJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y3MzRiOGQ2NTMwN2FlYjJiMWUy
NGEwNzI0MjZhMjg1MGJiMjZkOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjdGl2YXRlRm9udHNJT1MubW0KQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY3RpdmF0
ZUZvbnRzLmgiCisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIGFjdGl2YXRlRm9udHMoKQorewor
ICAgIC8vIFdyaXRlIG1lLgorfQorCit9CisKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0gYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlmNWE5ODY2Y2U2MjYzOTFhYWRhMzE1MGM3YjlmNWQ1N2NmMDhiZGMKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lv
cy9FdmVudFNlbmRlclByb3h5SU9TLm1tCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJFdmVudFNlbmRlclByb3h5LmgiCisKKyNpbXBv
cnQgIlBsYXRmb3JtV2ViVmlldy5oIgorI2ltcG9ydCAiU3RyaW5nRnVuY3Rpb25zLmgiCisjaW1w
b3J0ICJUZXN0Q29udHJvbGxlci5oIgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9y
dCA8V2ViS2l0Mi9XS1N0cmluZy5oPgorCituYW1lc3BhY2UgV1RSIHsKKworRXZlbnRTZW5kZXJQ
cm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIpCisg
ICAgOiBtX3Rlc3RDb250cm9sbGVyKHRlc3RDb250cm9sbGVyKQorICAgICwgbV90aW1lKDApCisg
ICAgLCBtX3Bvc2l0aW9uKCkKKyAgICAsIG1fbGVmdE1vdXNlQnV0dG9uRG93bihmYWxzZSkKKyAg
ICAsIG1fY2xpY2tDb3VudCgwKQorICAgICwgbV9jbGlja1RpbWUoMCkKKyAgICAsIG1fY2xpY2tQ
b3NpdGlvbigpCisgICAgLCBtX2NsaWNrQnV0dG9uKGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRv
bikKKyAgICAsIGV2ZW50TnVtYmVyKDApCit7CisgICAgVU5VU0VEX1BBUkFNKG1fdGVzdENvbnRy
b2xsZXIpOworICAgIFVOVVNFRF9QQVJBTShtX2xlZnRNb3VzZUJ1dHRvbkRvd24pOworICAgIFVO
VVNFRF9QQVJBTShldmVudE51bWJlcik7Cit9CisKK0V2ZW50U2VuZGVyUHJveHk6On5FdmVudFNl
bmRlclByb3h5KCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVDbGlja0Nv
dW50Rm9yQnV0dG9uKGludCBidXR0b24pCit7CisgICAgaWYgKG1fdGltZSAtIG1fY2xpY2tUaW1l
IDwgMSAmJiBtX3Bvc2l0aW9uID09IG1fY2xpY2tQb3NpdGlvbiAmJiBidXR0b24gPT0gbV9jbGlj
a0J1dHRvbikgeworICAgICAgICArK21fY2xpY2tDb3VudDsKKyAgICAgICAgbV9jbGlja1RpbWUg
PSBtX3RpbWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2NsaWNrQ291bnQgPSAx
OworICAgIG1fY2xpY2tUaW1lID0gbV90aW1lOworICAgIG1fY2xpY2tQb3NpdGlvbiA9IG1fcG9z
aXRpb247CisgICAgbV9jbGlja0J1dHRvbiA9IGJ1dHRvbjsKK30KKwordm9pZCBFdmVudFNlbmRl
clByb3h5Ojptb3VzZURvd24odW5zaWduZWQgYnV0dG9uTnVtYmVyLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycykKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclBy
b3h5Ojptb3VzZVVwKHVuc2lnbmVkIGJ1dHRvbk51bWJlciwgV0tFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnMpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
bW91c2VNb3ZlVG8oZG91YmxlIHgsIGRvdWJsZSB5KQoreworICAgIC8vIFdyaXRlIG1lLgorfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCBtaWxsaXNlY29uZHMpCit7
CisgICAgbV90aW1lICs9IG1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUmVmIGtleSwgV0tFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnMsIHVuc2lnbmVkIGtleUxvY2F0aW9uKQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50IHgsIGludCB5KQoreworICAg
IC8vIFdyaXRlIG1lLgorfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3Vz
ZVNjcm9sbEJ5KGludCB4LCBpbnQgeSwgYm9vbCBwYWdlZCkKK3sKKyAgICAvLyBXcml0ZSBtZS4K
K30KKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmFk
ZFRvdWNoUG9pbnQoaW50IHgsIGludCB5KQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OnVwZGF0ZVRvdWNoUG9pbnQoaW50IGluZGV4LCBpbnQgeCwgaW50
IHkpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0
VG91Y2hNb2RpZmllcihXS0V2ZW50TW9kaWZpZXJzLCBib29sIGVuYWJsZSkKK3sKKyAgICAvLyBX
cml0ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpzZXRUb3VjaFBvaW50UmFkaXVz
KGludCByYWRpdXNYLCBpbnQgcmFkaXVzWSkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30KKwordm9p
ZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaFN0YXJ0KCkKK3sKKyAgICAvLyBXcml0ZSBtZS4KK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaE1vdmUoKQoreworICAgIC8vIFdyaXRlIG1l
LgorfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoRW5kKCkKK3sKKyAgICAvLyBXcml0
ZSBtZS4KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaENhbmNlbCgpCit7CisgICAg
Ly8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y2xlYXJUb3VjaFBvaW50
cygpCit7CisgICAgLy8gV3JpdGUgbWUuCit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6cmVs
ZWFzZVRvdWNoUG9pbnQoaW50IGluZGV4KQoreworICAgIC8vIFdyaXRlIG1lLgorfQorCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OmNhbmNlbFRvdWNoUG9pbnQoaW50IGluZGV4KQoreworICAgIC8v
IFdyaXRlIG1lLgorfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJ
T1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9JbmplY3Rl
ZEJ1bmRsZUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNmNiMjBjNWI5YTgyYTllODVhODk4NDg4M2U0YTQ5
YWY5YmUyNzhjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJT1MubW0KQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgIkluamVjdGVkQnVuZGxlLmgiCisKKyNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgorCitAaW50ZXJmYWNlIE5TVVJMUmVxdWVzdCAoUHJpdmF0ZVRoaW5n
c1dlU2hvdWxkbnRSZWFsbHlVc2UpCisrKHZvaWQpc2V0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0
ZTooQk9PTClhbGxvdyBmb3JIb3N0OihOU1N0cmluZyAqKWhvc3Q7CitAZW5kCisKK25hbWVzcGFj
ZSBXVFIgeworCit2b2lkIEluamVjdGVkQnVuZGxlOjpwbGF0Zm9ybUluaXRpYWxpemUoV0tUeXBl
UmVmKQoreworICAgIE5TRGljdGlvbmFyeSAqZGljdCA9IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFy
eVdpdGhPYmplY3RzQW5kS2V5czoKKyAgICAgICAgbmlsXTsKKworICAgIFtbTlNVc2VyRGVmYXVs
dHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldFZvbGF0aWxlRG9tYWluOmRpY3QgZm9yTmFtZTpO
U0FyZ3VtZW50RG9tYWluXTsKKworICAgIFtOU1VSTFJlcXVlc3Qgc2V0QWxsb3dzQW55SFRUUFND
ZXJ0aWZpY2F0ZTpZRVMgZm9ySG9zdDpAImxvY2FsaG9zdCJdOworICAgIFtOU1VSTFJlcXVlc3Qg
c2V0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZTpZRVMgZm9ySG9zdDpAIjEyNy4wLjAuMSJdOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVuZGxlUGFnZUlPUy5tbSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVuZGxlUGFnZUlPUy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44MjQxNjE1YjNmZjllMjcyMmEwMmE2MGE1YzM1ZGM1YzUwNzhlZmU5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9p
b3MvSW5qZWN0ZWRCdW5kbGVQYWdlSU9TLm1tCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkluamVjdGVkQnVuZGxlUGFnZS5oIgorCisj
aW1wb3J0ICJTdHJpbmdGdW5jdGlvbnMuaCIKKyNpbXBvcnQgPFdlYktpdDIvV0tCdW5kbGVGcmFt
ZS5oPgorI2ltcG9ydCA8V2ViS2l0Mi9XS1VSTENGLmg+CisjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1l
c3BhY2UgV1RSIHsKKwordXNpbmcgbmFtZXNwYWNlIFdURjsKKwordm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnBsYXRmb3JtRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZUZy
YW1lUmVmKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvTWFrZWZpbGUgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL01ha2VmaWxl
CmluZGV4IDQ2NDhmOTgwNzdkODgwYzJiODE4OTAxZGI3NGE0ODE2MDIzYzQ0OWMuLjU4OWY3MjZi
NjZjYWY1NmE5NmU3YzdkNGRiN2IyNWRiNTU4ZGQ1M2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvTWFrZWZpbGUKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9NYWtlZmls
ZQpAQCAtNSw2ICs1LDEwIEBAIEJVSUxEX1dFQktJVFRFU1RSVU5ORVIgPSAkKHNoZWxsICgoICQo
T1NYX1ZFUlNJT04pID49IDYgKSkgJiYgZWNobyAiWUVTIiApCiAKIGlmZXEgIiQoQlVJTERfV0VC
S0lUVEVTVFJVTk5FUikiICJZRVMiCiAKK2lmbmVxICgsJChmaW5kc3RyaW5nIGlwaG9uZSwkKFNE
S1JPT1QpKSkKKwlPVEhFUl9PUFRJT05TICs9IC10YXJnZXQgV2ViS2l0VGVzdFJ1bm5lckFwcAor
ZW5kaWYKKwogU0NSSVBUU19QQVRIID0gLi4vU2NyaXB0cwogaW5jbHVkZSAuLi8uLi9NYWtlZmls
ZS5zaGFyZWQKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCA3MGZhNGEyOTgwYzM5NjE3ZGMzNmNiMDQyNDU2NjE0MjU3NDM3OWM5Li5jNWE0MmFlYmU0Y2U4
NGU3ODA2NWI4NjBkM2I3ZDJhOWQyZjhjMzFmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtMzExLDEwICszMTEsMTIgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgIG1fY29udGV4
dC5hZG9wdChXS0NvbnRleHRDcmVhdGVXaXRoSW5qZWN0ZWRCdW5kbGVQYXRoKGluamVjdGVkQnVu
ZGxlUGF0aCgpKSk7CiAgICAgbV9nZW9sb2NhdGlvblByb3ZpZGVyID0gYWRvcHRQdHIobmV3IEdl
b2xvY2F0aW9uUHJvdmlkZXJNb2NrKG1fY29udGV4dC5nZXQoKSkpOwogCisjaWYgIVBMQVRGT1JN
KElPUykKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPiAxMDgwCiAgICAgV0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNzKG1fY29udGV4dC5n
ZXQoKSwgdHJ1ZSk7CiAgICAgV0tDb250ZXh0U2V0UHJvY2Vzc01vZGVsKG1fY29udGV4dC5nZXQo
KSwga1dLUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXMpOwogI2VuZGlmCisj
ZW5kaWYKIAogICAgIGlmIChjb25zdCBjaGFyKiBkdW1wUmVuZGVyVHJlZVRlbXAgPSBsaWJyYXJ5
UGF0aEZvclRlc3RpbmcoKSkgewogICAgICAgICBTdHJpbmcgdGVtcG9yYXJ5Rm9sZGVyID0gU3Ry
aW5nOjpmcm9tVVRGOChkdW1wUmVuZGVyVHJlZVRlbXApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5oCmluZGV4IGMzNGQxMDIyYmIyYmYzNWRlOTk4MjNjYjAwMTI5ZjE5OWNi
Mjc0MzEuLjdjZDhlNGEyNzRmMDg4NDQwZWQ1ZTIzODk2OWE1ZGZiMWZmNTZlZWEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTI2LDkgKzI2LDkgQEAKICNpZm5k
ZWYgVGVzdENvbnRyb2xsZXJfaAogI2RlZmluZSBUZXN0Q29udHJvbGxlcl9oCiAKKyNpbmNsdWRl
ICJHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlTWFuYWdlci5oIgotI2luY2x1ZGUgPEdlb2xv
Y2F0aW9uUHJvdmlkZXJNb2NrLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgog
I2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx2ZWN0b3I+CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDJjY2ZmMDc0NDMwMjMxM2U1ZGZjNjM3OGM3NDE4
N2Y5Yjk3ZTkzNDUuLmNhYzJiYThiODE1YzQ0MzM4YjUwOTdkMGNlYjZjMjBmZGVlOWIyMjggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC00Miw3ICs0Miw5
IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQor
I2lmICFQTEFURk9STShJT1MpCiAjaW5jbHVkZSA8Q2FyYm9uL0NhcmJvbi5oPgorI2VuZGlmCiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VQcml2YXRlTWFjLmg+CiAjZW5kaWYKIApAQCAtMTI5LDcg
KzEzMSw3IEBAIHN0YXRpYyBib29sIHNob3VsZExvZ0ZyYW1lTG9hZERlbGVnYXRlcyhjb25zdCBj
aGFyKiBwYXRoT3JVUkwpCiAgICAgcmV0dXJuIHN0cnN0cihwYXRoT3JVUkwsICJsb2FkaW5nLyIp
OwogfQogCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiAh
UExBVEZPUk0oSU9TKQogc3RhdGljIGJvb2wgc2hvdWxkT3BlbldlYkluc3BlY3Rvcihjb25zdCBj
aGFyKiBwYXRoT3JVUkwpCiB7CiAgICAgcmV0dXJuIHN0cnN0cihwYXRoT3JVUkwsICJpbnNwZWN0
b3IvIikgfHwgc3Ryc3RyKHBhdGhPclVSTCwgImluc3BlY3RvclxcIik7CkBAIC0yMjYsNyArMjI4
LDcgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6aW52b2tlKCkKICAgICBpZiAobV9lcnJvcikKICAg
ICAgICAgZ290byBlbmQ7CiAKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQorI2lmIEVOQUJMRShJTlNQ
RUNUT1IpICYmICFQTEFURk9STShJT1MpCiAgICAgaWYgKHNob3VsZE9wZW5XZWJJbnNwZWN0b3Io
bV9wYXRoT3JVUkwuY19zdHIoKSkpCiAgICAgICAgIFdLSW5zcGVjdG9yU2hvdyhXS1BhZ2VHZXRJ
bnNwZWN0b3IoVGVzdENvbnRyb2xsZXI6OnNoYXJlZCgpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSkp
OwogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpICAgICAgICAKQEAgLTI1MSw3ICsyNTMsNyBA
QCB2b2lkIFRlc3RJbnZvY2F0aW9uOjppbnZva2UoKQogICAgIGR1bXBSZXN1bHRzKCk7CiAKIGVu
ZDoKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQorI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmICFQTEFU
Rk9STShJT1MpCiAgICAgaWYgKG1fZ290SW5pdGlhbFJlc3BvbnNlKQogICAgICAgICBXS0luc3Bl
Y3RvckNsb3NlKFdLUGFnZUdldEluc3BlY3RvcihUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubWFp
bldlYlZpZXcoKS0+cGFnZSgpKSk7CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKQEAgLTY3
Niw3ICs2NzgsNyBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgIH0KIAogICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2VjdXJlRXZlbnRJbnB1
dElzRW5hYmxlZCIpKSB7Ci0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgJiYg
IVBMQVRGT1JNKElPUykKICAgICAgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiByZXN1bHQo
QWRvcHRXSywgV0tCb29sZWFuQ3JlYXRlKElzU2VjdXJlRXZlbnRJbnB1dEVuYWJsZWQoKSkpOwog
I2Vsc2UKICAgICAgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiByZXN1bHQoQWRvcHRXSywg
V0tCb29sZWFuQ3JlYXRlKGZhbHNlKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDliMzdmZWMxZTc4NWFiMjZiMjcwMDU1MzkwYTZiOWFjMGY0MjUwYWEuLmUwMzY2YzVm
YzE1ZGQzNzBkMjY3Y2Y0YjAyODE3Zjg4ZjU3NTA4OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zNyw2ICszNywzOSBAQAogCQkyOUE4RkNERDE0NUYwMzM3MDA5MDQ1
QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNiAv
KiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovOyB9OwogCQkyOUE4RkNFMjE0
NUYwMzdCMDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4RkNFMTE0NUYwMzdC
MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgKi87IH07CiAJCTI5
QThGQ0U1MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBOEZD
RTQxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0g
Ki87IH07CisJCTJFNjNFRDhBMTg5MUFEN0UwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNjNFRDc1MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5t
bSAqLzsgfTsKKwkJMkU2M0VEOEIxODkxQUQ3RTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkU2M0VENzcxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9T
Lm1tICovOyB9OworCQkyRTYzRUQ4RDE4OTFBRDdFMDAyQTdBRkMgLyogQWN0aXZhdGVGb250c0lP
Uy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNF
RDc5MTg5MUFDRTkwMDJBN0FGQyAvKiBBY3RpdmF0ZUZvbnRzSU9TLm1tICovOyB9OworCQkyRTYz
RUQ4RTE4OTFBRDdFMDAyQTdBRkMgLyogRXZlbnRTZW5kZXJQcm94eUlPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDdBMTg5MUFDRTkwMDJB
N0FGQyAvKiBFdmVudFNlbmRlclByb3h5SU9TLm1tICovOyB9OworCQkyRTYzRUQ4RjE4OTFBRDdF
MDAyQTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3QjE4OTFBQ0U5MDAyQTdBRkMgLyogSW5qZWN0
ZWRCdW5kbGVJT1MubW0gKi87IH07CisJCTJFNjNFRDkwMTg5MUFEN0UwMDJBN0FGQyAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTYzRUQ3QzE4OTFBQ0U5MDAyQTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
SU9TLm1tICovOyB9OworCQkyRTYzRUQ5MTE4OTFBREFEMDAyQTdBRkMgLyogUGxhdGZvcm1XZWJW
aWV3SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkVFNTJEMTMxODkwQTlGQjAwMTBFRDIxIC8qIFBsYXRmb3JtV2ViVmlld0lPUy5tbSAqLzsgfTsK
KwkJMkU2M0VEOTIxODkxQURBRDAwMkE3QUZDIC8qIFRlc3RDb250cm9sbGVySU9TLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNTJEMTQxODkwQTlG
QjAwMTBFRDIxIC8qIFRlc3RDb250cm9sbGVySU9TLm1tICovOyB9OworCQkyRTYzRUQ5NDE4OTFB
REFEMDAyQTdBRkMgLyogbWFpbklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFRTUyRDE2MTg5MEE5RkIwMDEwRUQyMSAvKiBtYWluSU9TLm1tICov
OyB9OworCQkyRTYzRUQ5NTE4OTFBREM3MDAyQTdBRkMgLyogQ3ljbGljUmVkdW5kYW5jeUNoZWNr
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjJG
QjQxMTNGREEwQ0QwMDQxQUJDQyAvKiBDeWNsaWNSZWR1bmRhbmN5Q2hlY2suY3BwICovOyB9Owor
CQkyRTYzRUQ5NjE4OTFBREM3MDAyQTdBRkMgLyogR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjZENzU4RTUx
NjBCRUNEQzAwMjY4NDcyIC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCAqLzsgfTsKKwkJ
MkU2M0VEOTcxODkxQURDNzAwMkE3QUZDIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMyMkZCNDQxM0ZEQTBFQTAw
NDFBQkNDIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwICovOyB9OworCQkyRTYzRUQ5ODE4OTFBREM3
MDAyQTdBRkMgLyogVGVzdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3OTM0MzAxMThGN0YxOTAwNUVBOEUyIC8qIFRlc3RDb250
cm9sbGVyLmNwcCAqLzsgfTsKKwkJMkU2M0VEOTkxODkxQURDNzAwMkE3QUZDIC8qIFRlc3RJbnZv
Y2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRDdEMkY3MTE5MjEyNzgwMDZEQjdFRSAvKiBUZXN0SW52b2NhdGlvbi5jcHAgKi87IH07CisJ
CTJFNjNFRDlBMTg5MUFEQzcwMDJBN0FGQyAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTY0QzhFRjE1
RDFBREExMDBFRjFGRTAgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovOyB9OworCQky
RTYzRUQ5QjE4OTFBREM3MDAyQTdBRkMgLyogV29ya1F1ZXVlTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI5RkM1RTE2MjcwODk2MDBG
NjZEOEIgLyogV29ya1F1ZXVlTWFuYWdlci5jcHAgKi87IH07CisJCTJFNjNFRDlDMTg5MUFEQzcw
MDJBN0FGQyAvKiBBcHBEZWxlZ2F0ZS5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkVFNTJDRjIxODkwQTlBODAwMTBFRDIxIC8qIEFwcERlbGVnYXRlLm0g
Ki87IH07CisJCTJFNjNFRDlFMTg5MUFFQzEwMDJBN0FGQyAvKiBXZWJBcmNoaXZlRHVtcFN1cHBv
cnRJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RUU1MkQxNTE4OTBBOUZCMDAxMEVEMjEgLyogV2ViQXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tICov
OyB9OworCQkyRTYzRURBMTE4OTFCMjkxMDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dElPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJF
NjNFRDc4MTg5MUFDRTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICov
OyB9OworCQkyRTYzRURBNTE4OTFCRDhFMDAyQTdBRkMgLyogVGVzdEludm9jYXRpb25DRy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzkxOTIwNDEz
MzNFNEY4MDAzMDExREMgLyogVGVzdEludm9jYXRpb25DRy5jcHAgKi87IH07CisJCTJFNjNFREE2
MTg5MUJEQzAwMDJBN0FGQyAvKiBUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzk5ODE3MTFEM0Y1MUUwMDE3QkNBMiAvKiBUZXN0
UnVubmVyLmNwcCAqLzsgfTsKKwkJMkU3NDlCRUYxODkxRTkzOTAwN0ZDMTc1IC8qIE9wdGlvbnMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxQ0Mw
MEQxODExODVCRjAwNDJFOUI2IC8qIE9wdGlvbnMuY3BwICovOyB9OworCQkyRTc0OUJGMjE4OTFF
QkZBMDA3RkMxNzUgLyogRXZlbnRTZW5kZXJQcm94eUlPUy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNFRDdBMTg5MUFDRTkwMDJBN0FGQyAvKiBF
dmVudFNlbmRlclByb3h5SU9TLm1tICovOyB9OworCQkyRUU1MkNFMzE4OTBBOUE4MDAxMEVEMjEg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRUU1MkNFMjE4OTBBOUE4MDAxMEVEMjEgLyogRm91bmRhdGlvbi5m
cmFtZXdvcmsgKi87IH07CisJCTJFRTUyQ0U1MTg5MEE5QTgwMDEwRUQyMSAvKiBDb3JlR3JhcGhp
Y3MuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVFNTJDRTQxODkwQTlBODAwMTBFRDIxIC8qIENvcmVHcmFwaGljcy5mcmFtZXdvcmsg
Ki87IH07CisJCTJFRTUyQ0U3MTg5MEE5QTgwMDEwRUQyMSAvKiBVSUtpdC5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUU1MkNFNjE4
OTBBOUE4MDAxMEVEMjEgLyogVUlLaXQuZnJhbWV3b3JrICovOyB9OworCQkyRUU1MkNFRDE4OTBB
OUE4MDAxMEVEMjEgLyogSW5mb1BsaXN0LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUyQ0VCMTg5MEE5QTgwMDEwRUQyMSAvKiBJbmZv
UGxpc3Quc3RyaW5ncyAqLzsgfTsKKwkJMkVFNTJDRkMxODkwQTlBOTAwMTBFRDIxIC8qIFhDVGVz
dC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUU1MkNGQjE4OTBBOUE5MDAxMEVEMjEgLyogWENUZXN0LmZyYW1ld29yayAqLzsgfTsK
KwkJMkVFNTJDRkQxODkwQTlBOTAwMTBFRDIxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNTJDRTIxODkw
QTlBODAwMTBFRDIxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OworCQkyRUU1MkNGRTE4
OTBBOUE5MDAxMEVEMjEgLyogVUlLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNTJDRTYxODkwQTlBODAwMTBFRDIxIC8qIFVJ
S2l0LmZyYW1ld29yayAqLzsgfTsKKwkJMkVFNTJEMDYxODkwQTlBOTAwMTBFRDIxIC8qIEluZm9Q
bGlzdC5zdHJpbmdzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRUU1MkQwNDE4OTBBOUE5MDAxMEVEMjEgLyogSW5mb1BsaXN0LnN0cmluZ3MgKi87IH07
CisJCTJFRTUyRDA4MTg5MEE5QTkwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMu
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUyRDA3
MTg5MEE5QTkwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMubSAqLzsgfTsKKwkJ
MkVFNTJEMTExODkwQTlCQjAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZS5idW5kbGUgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMjUxODYyMTFEMTVENTQwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5k
bGUuYnVuZGxlICovOyB9OwogCQkzMTY0QzhGMDE1RDFBREExMDBFRjFGRTAgLyogV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmNwcCAqLzsgfTsKIAkJNDQyOUZDNUYxNjI3MDg5NjAwRjY2RDhCIC8qIFdvcmtRdWV1ZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQyOUZDNUUxNjI3MDg5NjAwRjY2RDhCIC8qIFdvcmtRdWV1ZU1hbmFnZXIuY3BwICovOyB9Owog
CQk1MzIyRkI0MzEzRkRBMENEMDA0MUFCQ0MgLyogQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjJGQjQxMTNG
REEwQ0QwMDQxQUJDQyAvKiBDeWNsaWNSZWR1bmRhbmN5Q2hlY2suY3BwICovOyB9OwpAQCAtNjQs
MTMgKzk3LDExIEBACiAJCUE2NjRCQzc2MTNBNUYzQTkwMDlBN0IyNSAvKiBsaWJXZWJDb3JlVGVz
dFN1cHBvcnQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTIzMEUxNjEzOEM3OEJGMDBCQ0NGQ0EgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0
LmR5bGliICovOyB9OwogCQlCQzE0RTREQjEyMEUwMkQwMDA4MjZDMEMgLyogR0NDb250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTRF
NEQ5MTIwRTAyRDAwMDgyNkMwQyAvKiBHQ0NvbnRyb2xsZXIuY3BwICovOyB9OwogCQlCQzE0RTRF
QTEyMEUwM0Q4MDA4MjZDMEMgLyogSlNHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNEU0RTgxMjBFMDNEODAwODI2QzBDIC8q
IEpTR0NDb250cm9sbGVyLmNwcCAqLzsgfTsKLQkJQkMyNTE5M0UxMUQxNUQ4QjAwMkVCQzAxIC8q
IENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNzkzNEE0MTE5MDY1ODQwMDVFQThFMiAvKiBDb2NvYS5mcmFtZXdvcmsgKi87
IH07CiAJCUJDMjUxOTNGMTFEMTVEOEIwMDJFQkMwMSAvKiBXZWJLaXQyLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNzkzNEFCMTE5
MDY1OEMwMDVFQThFMiAvKiBXZWJLaXQyLmZyYW1ld29yayAqLzsgfTsKIAkJQkMyNTE5NDAxMUQx
NUQ4QjAwMkVCQzAxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREEyQjk5MTE5MTA1MUYwMEMzQkM0
NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCUJDMjUxQTNFMTFEMTY4MzEw
MDJFQkMwMSAvKiBJbmplY3RlZEJ1bmRsZU1haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTE4NDYxMUQxNTc2NzAwMkVCQzAxIC8qIEluamVj
dGVkQnVuZGxlTWFpbi5jcHAgKi87IH07CiAJCUJDNzkzNDAwMTE4RjdDODQwMDVFQThFMiAvKiBt
YWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3
OTMzRkYxMThGN0M4NDAwNUVBOEUyIC8qIG1haW4ubW0gKi87IH07CiAJCUJDNzkzNDMxMTE4RjdG
MTkwMDVFQThFMiAvKiBUZXN0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzc5MzQzMDExOEY3RjE5MDA1RUE4RTIgLyogVGVzdENv
bnRyb2xsZXIuY3BwICovOyB9OwotCQlCQzc5MzRBNTExOTA2NTg0MDA1RUE4RTIgLyogQ29jb2Eu
ZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM3OTM0QTQxMTkwNjU4NDAwNUVBOEUyIC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKIAkJ
QkM3OTM0QUMxMTkwNjU4QzAwNUVBOEUyIC8qIFdlYktpdDIuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3OTM0QUIxMTkwNjU4QzAw
NUVBOEUyIC8qIFdlYktpdDIuZnJhbWV3b3JrICovOyB9OwogCQlCQzc5MzRFODExOTA2ODQ2MDA1
RUE4RTIgLyogUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3OTM0RTcxMTkwNjg0NjAwNUVBOEUyIC8qIFBsYXRmb3Jt
V2ViVmlld01hYy5tbSAqLzsgfTsKIAkJQkM4Qzc5NUMxMUQyNzg1RDAwNDUzNUExIC8qIFRlc3RD
b250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM4Qzc5NUIxMUQyNzg1RDAwNDUzNUExIC8qIFRlc3RDb250cm9sbGVyTWFjLm1tICov
OyB9OwpAQCAtODIsMTggKzExMywzMCBAQAogCQlCQzk1MkYxRjExRjNDNjUyMDAzMzk4QjQgLyog
SlNUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDOTUyRjFEMTFGM0M2NTIwMDMzOThCNCAvKiBKU1Rlc3RSdW5uZXIuY3BwICovOyB9
OwogCQlCQ0M5OTdBNDExRDNDOEY2MDAxN0JDQTIgLyogSW5qZWN0ZWRCdW5kbGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDOTk3QTAxMUQzQzhG
NjAwMTdCQ0EyIC8qIEluamVjdGVkQnVuZGxlLmNwcCAqLzsgfTsKIAkJQkNDOTk3QTUxMUQzQzhG
NjAwMTdCQ0EyIC8qIEluamVjdGVkQnVuZGxlUGFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M5OTdBMjExRDNDOEY2MDAxN0JDQTIgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlLmNwcCAqLzsgfTsKLQkJQkNDOTk4MTgxMUQzRjUxRTAwMTdCQ0EyIC8q
IFRlc3RSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkNDOTk4MTcxMUQzRjUxRTAwMTdCQ0EyIC8qIFRlc3RSdW5uZXIuY3BwICovOyB9Owog
CQlCQ0Q3RDJGODExOTIxMjc4MDA2REI3RUUgLyogVGVzdEludm9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEN0QyRjcxMTkyMTI3ODAw
NkRCN0VFIC8qIFRlc3RJbnZvY2F0aW9uLmNwcCAqLzsgfTsKIAkJQkNEQTJCOUExMTkxMDUxRjAw
QzNCQzQ3IC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDREEyQjk5MTE5MTA1MUYwMEMzQkM0NyAvKiBK
YXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCUMwQ0U3MjBCMTI0N0M5MzMwMEJDMEVD
NCAvKiBUZXN0UnVubmVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzBDRTcyMEExMjQ3QzkzMzAwQkMwRUM0IC8qIFRlc3RSdW5uZXJNYWMubW0g
Ki87IH07CiAJCUUxMzJBQTNBMTdDRDVGMTAwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRHJh
Z2dpbmdJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTEzMkFBMzgxN0NENUYxMDAwNjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJEcmFnZ2luZ0lu
Zm8ubW0gKi87IH07CiAJCUUxMzJBQTNEMTdDRTc3NkYwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVu
bmVyRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTMyQUEzQjE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tICov
OyB9OwotCQlFMUJBNjcxRTE3NDJEQTZBMDBDMjAyNTEgLyogQ2FyYm9uLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkE2NzFEMTc0
MkRBNUEwMEMyMDI1MSAvKiBDYXJib24uZnJhbWV3b3JrICovOyB9OwogCQlFMUM2NDJDMzE3Q0JD
QzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDMTE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xh
c3MubW0gKi87IH07CiAJCUUxQzY0MkM2MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVu
bmVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxQzY0MkM0MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVi
b2FyZC5tbSAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdp
biBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCQkyRTYzRUQ4ODE4OTFBRDQ3MDAy
QTdBRkMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJYQ29udGFp
bmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFB
QzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJlbW90ZUds
b2JhbElEU3RyaW5nID0gQkMyNTE4NjExMUQxNUQ1NDAwMkVCQzAxOworCQkJcmVtb3RlSW5mbyA9
IFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZTsKKwkJfTsKKwkJMkVFNTJDRkYxODkwQTlB
OTAwMTBFRDIxIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENv
bnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4NDE1NURD
MDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1v
dGVHbG9iYWxJRFN0cmluZyA9IDJFRTUyQ0RGMTg5MEE5QTgwMDEwRUQyMTsKKwkJCXJlbW90ZUlu
Zm8gPSBXZWJLaXRUZXN0UnVubmVyQXBwOworCQl9OwogCQlCQzI1MTk0MTExRDE1RDk0MDAyRUJD
MDEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVy
SXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3
IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtMTIwLDggKzE2Myw4IEBACiAJCTI5MjEwRUE4MTQ0
Q0FCODgwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyOTIxMEVBOTE0NENBQ0IyMDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkyMTBF
QUExNDRDQUNCMjAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkyOTIxMEVBQjE0NENBQ0IyMDA4MzVCQjUgLyogQWNjZXNz
aWJpbGl0eVVJRWxlbWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW07IHBhdGggPSBtYWMvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjkyMTBF
QUIxNDRDQUNCMjAwODM1QkI2IC8qIEFjY2Vzc2liaWxpdHlDb21tb25NYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBBY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1t
OyBwYXRoID0gbWFjL0FjY2Vzc2liaWxpdHlDb21tb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI5MjEwRUFCMTQ0Q0FDQjIwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MjkyMTBFQUIxNDRDQUNCMjAwODM1QkI2IC8qIEFjY2Vzc2liaWxpdHlDb21tb25NYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5Q29tbW9u
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTIxMEVCMTE0NENBQ0Q0MDA4
MzVCQjUgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyOTIxMEVCMjE0NENBQ0Q0MDA4MzVCQjUgLyogQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkyMTBF
QjMxNDRDQUNENDAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJNYWMubW07IHBhdGggPSBtYWMvQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzYsNyArMTc5LDMyIEBACiAJCTI5QThGQ0UxMTQ1
RjAzN0IwMDkwNDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFu
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUE4RkNFMTM0NUU3MDIxMDA2
QUE1QTYgLyogSlNBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXRUZXN0UnVubmVyL0pTQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTI5QThGQ0UxMzQ1RTcwMjEwMDZBQTVBNyAvKiBKU0FjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlclJhbmdlLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXRUZXN0UnVubmVy
L0pTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwotCQkyOUE4RkNFNDE0NUYwNDY0MDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW07IHBhdGggPSBtYWMvQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMjlBOEZDRTQxNDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJ
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU2M0VE
NzYxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b25IYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFNjNFRDc3MTg5MUFD
RTkwMDJBN0FGQyAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcklPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTYzRUQ3ODE4OTFBQ0U5MDAyQTdBRkMg
LyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRJT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJFNjNFRDc5MTg5MUFDRTkwMDJBN0FGQyAvKiBBY3RpdmF0ZUZv
bnRzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWN0aXZh
dGVGb250c0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU2M0VEN0ExODkx
QUNFOTAwMkE3QUZDIC8qIEV2ZW50U2VuZGVyUHJveHlJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudFNlbmRlclByb3h5SU9TLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRTYzRUQ3QjE4OTFBQ0U5MDAyQTdBRkMgLyogSW5qZWN0ZWRC
dW5kbGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbmpl
Y3RlZEJ1bmRsZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkU2M0VEN0Mx
ODkxQUNFOTAwMkE3QUZDIC8qIEluamVjdGVkQnVuZGxlUGFnZUlPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUlPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVFNTJDRTAxODkwQTlBODAwMTBFRDIxIC8qIFdl
YktpdFRlc3RSdW5uZXJBcHAuYXBwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxp
Y2l0RmlsZVR5cGUgPSB3cmFwcGVyLmFwcGxpY2F0aW9uOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBXZWJLaXRUZXN0UnVubmVyQXBwLmFwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKKwkJMkVFNTJDRTIxODkwQTlBODAwMTBFRDIxIC8qIEZvdW5kYXRpb24uZnJhbWV3
b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3Jh
cHBlci5mcmFtZXdvcms7IG5hbWUgPSBGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvRm91bmRhdGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBT
REtST09UOyB9OworCQkyRUU1MkNFNDE4OTBBOUE4MDAxMEVEMjEgLyogQ29yZUdyYXBoaWNzLmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29yZUdyYXBoaWNzLmZyYW1ld29yazsgcGF0aCA9
IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZUdyYXBoaWNzLmZyYW1ld29yazsgc291cmNl
VHJlZSA9IFNES1JPT1Q7IH07CisJCTJFRTUyQ0U2MTg5MEE5QTgwMDEwRUQyMSAvKiBVSUtpdC5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFVJS2l0LmZyYW1ld29yazsgcGF0aCA9IExpYnJh
cnkvRnJhbWV3b3Jrcy9VSUtpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBERVZFTE9QRVJfRElS
OyB9OworCQkyRUU1MkNFQTE4OTBBOUE4MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcC1J
bmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5wbGlzdC54bWw7IG5hbWUgPSAiV2ViS2l0VGVzdFJ1bm5lckFwcC1JbmZvLnBsaXN0
IjsgcGF0aCA9ICJXZWJLaXRUZXN0UnVubmVyQXBwL1dlYktpdFRlc3RSdW5uZXJBcHAtSW5mby5w
bGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRTUyQ0VDMTg5MEE5QTgwMDEw
RUQyMSAvKiBlbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQucGxpc3Quc3RyaW5nczsgbmFtZSA9IGVuOyBwYXRoID0gZW4ubHByb2ovSW5mb1Bs
aXN0LnN0cmluZ3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRTUyQ0YxMTg5MEE5
QTgwMDEwRUQyMSAvKiBBcHBEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBEZWxlZ2F0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUU1MkNGMjE4OTBBOUE4MDAxMEVEMjEg
LyogQXBwRGVsZWdhdGUubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gQXBwRGVsZWdhdGUubTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVFNTJDRkExODkwQTlBODAwMTBFRDIxIC8qIFdlYktp
dFRlc3RSdW5uZXJBcHBUZXN0cy54Y3Rlc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuY2ZidW5kbGU7IGluY2x1ZGVJbkluZGV4ID0gMDsg
cGF0aCA9IFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy54Y3Rlc3Q7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCTJFRTUyQ0ZCMTg5MEE5QTkwMDEwRUQyMSAvKiBYQ1Rlc3Qu
ZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBYQ1Rlc3QuZnJhbWV3b3JrOyBwYXRoID0gTGli
cmFyeS9GcmFtZXdvcmtzL1hDVGVzdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBERVZFTE9QRVJf
RElSOyB9OworCQkyRUU1MkQwMzE4OTBBOUE5MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFw
cFRlc3RzLUluZm8ucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9ICJXZWJLaXRUZXN0UnVubmVyQXBwVGVz
dHMtSW5mby5wbGlzdCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRTUyRDA1MTg5
MEE5QTkwMDEwRUQyMSAvKiBlbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3RyaW5nczsgbmFtZSA9IGVuOyBwYXRoID0gZW4ubHBy
b2ovSW5mb1BsaXN0LnN0cmluZ3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRTUy
RDA3MTg5MEE5QTkwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMubSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5v
YmpjOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLm07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJFRTUyRDEzMTg5MEE5RkIwMDEwRUQyMSAvKiBQbGF0Zm9ybVdlYlZpZXdJ
T1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVdl
YlZpZXdJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFRTUyRDE0MTg5MEE5
RkIwMDEwRUQyMSAvKiBUZXN0Q29udHJvbGxlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFRlc3RDb250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRUU1MkQxNTE4OTBBOUZCMDAxMEVEMjEgLyogV2ViQXJjaGl2ZUR1bXBT
dXBwb3J0SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
QXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RUU1MkQxNjE4OTBBOUZCMDAxMEVEMjEgLyogbWFpbklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IG1haW5JT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxMTBCRTBGMTVCQTAxMTQwMEQyMTZBQyAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzMTY0QzhFRjE1RDFBREExMDBFRjFGRTAgLyogV2ViTm90aWZp
Y2F0aW9uUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzNzhENDQyMjEzMzQ2RDAwMDA2QTc3N0IgLyogY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNv
bmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcyLDcgKzI0MCw3IEBACiAJ
CTY1MTBBNzgxMTFFQzY0MzgwMDQxMDg2NyAvKiBXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5h
bWUgPSBXZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZjsgcGF0aCA9IGZvbnRzL1dlYktpdFdlaWdo
dFdhdGNoZXI5MDAudHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NUVCODU5RDEx
RUM2N0NDMDAzNEQzMDAgLyogQWN0aXZhdGVGb250cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBY3RpdmF0ZUZvbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTY1RUI4NTlGMTFFQzY3Q0MwMDM0RDMwMCAvKiBBY3RpdmF0ZUZvbnRzLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWN0aXZhdGVGb250cy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODAzNEM2NjExNDg3NjM2NDAwQUMzMkU5IC8qIEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW07IHBhdGggPSBtYWMvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgwMzRD
NjYxMTQ4NzYzNjQwMEFDMzJFOSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MDk3MzM4ODE0ODc0QTVB
MDA4MTU2RDkgLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIu
aDsgcGF0aCA9IG1hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MDk3MzM4OTE0ODc0QTVBMDA4MTU2RDkgLyogQWNjZXNz
aWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbTsgcGF0aCA9
IG1hYy9BY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODQxQ0MwMEQxODExODVCRjAwNDJFOUI2IC8qIE9wdGlvbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT3B0aW9ucy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzgsMTQgKzMwNiwzMiBAQAogLyogRW5kIFBCWEZpbGVS
ZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCisJCTJFRTUyQ0REMTg5MEE5QTgwMDEwRUQyMSAvKiBGcmFtZXdvcmtzICovID0g
eworCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJMkVFNTJDRTUxODkwQTlBODAwMTBFRDIx
IC8qIENvcmVHcmFwaGljcy5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQkyRUU1MkNF
NzE4OTBBOUE4MDAxMEVEMjEgLyogVUlLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJ
CQkJMkVFNTJDRTMxODkwQTlBODAwMTBFRDIxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CisJCX07CisJCTJFRTUyQ0Y3MTg5MEE5QTgwMDEwRUQyMSAvKiBGcmFtZXdvcmtzICov
ID0geworCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJMkVFNTJDRkMxODkwQTlBOTAwMTBF
RDIxIC8qIFhDVGVzdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKKwkJCQkyRUU1MkNGRTE4
OTBBOUE5MDAxMEVEMjEgLyogVUlLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkJ
MkVFNTJDRkQxODkwQTlBOTAwMTBFRDIxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CisJCX07CiAJCThERDc2RjlCMDQ4NkFBNzYwMEQ5NkI1RSAvKiBGcmFtZXdvcmtzICovID0g
ewogCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQkM3OTM0QTUxMTkwNjU4NDAwNUVBOEUy
IC8qIENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAogCQkJCUJDREEyQjlBMTE5MTA1
MUYwMEMzQkM0NyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywK
IAkJCQkwRjUxNjlDQjE0NDUyMjJEMDBFMEE5RDcgLyogV2ViS2l0LmZyYW1ld29yayBpbiBGcmFt
ZXdvcmtzICovLAotCQkJCUUxQkE2NzFFMTc0MkRBNkEwMEMyMDI1MSAvKiBDYXJib24uZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJQkM3OTM0QUMxMTkwNjU4QzAwNUVBOEUyIC8qIFdl
YktpdDIuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkBAIC0yNTQsNyArMzQwLDYgQEAKIAkJCWlzYSA9
IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKIAkJCWZpbGVzID0gKAotCQkJCUJDMjUxOTNFMTFEMTVEOEIwMDJFQkMwMSAvKiBDb2NvYS5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlCQzI1MTk0MDExRDE1RDhCMDAyRUJDMDEg
LyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJQTY2NEJD
NzYxM0E1RjNBOTAwOUE3QjI1IC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYiBpbiBGcmFt
ZXdvcmtzICovLAogCQkJCTBGNTE2OUNDMTQ0NTIyMkQwMEUwQTlENyAvKiBXZWJLaXQuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCkBAIC0yNjksMTIgKzM1NCwxNiBAQAogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlCQzk1MkVDNTExRjNDMTBGMDAzMzk4QjQgLyog
RGVyaXZlZFNvdXJjZXMubWFrZSAqLywKKwkJCQkyRUU1MkNFQTE4OTBBOUE4MDAxMEVEMjEgLyog
V2ViS2l0VGVzdFJ1bm5lckFwcC1JbmZvLnBsaXN0ICovLAogCQkJCUJDOTlDQkYxMTIwNzY0MkQw
MEZERUU3NiAvKiBTaGFyZWQgKi8sCiAJCQkJMDhGQjc3OTVGRTg0MTU1REMwMkFBQzA3IC8qIFRl
c3RSdW5uZXIgKi8sCiAJCQkJQkMyNTE4MzUxMUQxNTcxRDAwMkVCQzAxIC8qIEluamVjdGVkQnVu
ZGxlICovLAogCQkJCUJDNzkzNDAxMTE4RjdDOEEwMDVFQThFMiAvKiBDb25maWd1cmF0aW9ucyAq
LywKIAkJCQkwOEZCNzc5REZFODQxNTVEQzAyQUFDMDcgLyogRXh0ZXJuYWwgRnJhbWV3b3JrcyBh
bmQgTGlicmFyaWVzICovLAogCQkJCUJDMjUxOTQ0MTFEMTVEQkUwMDJFQkMwMSAvKiBSZXNvdXJj
ZXMgKi8sCisJCQkJMkVFNTJDRTgxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJB
cHAgKi8sCisJCQkJMkVFNTJEMDExODkwQTlBOTAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJB
cHBUZXN0cyAqLywKKwkJCQkyRUU1MkNFMTE4OTBBOUE4MDAxMEVEMjEgLyogRnJhbWV3b3JrcyAq
LywKIAkJCQkxQUI2NzRBREZFOUQ1NEI1MTFDQTJDQkIgLyogUHJvZHVjdHMgKi8sCiAJCQkpOwog
CQkJbmFtZSA9IFdlYktpdFRlc3RSdW5uZXI7CkBAIC0yODMsNiArMzcyLDcgQEAKIAkJMDhGQjc3
OTVGRTg0MTU1REMwMkFBQzA3IC8qIFRlc3RSdW5uZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFRTUyRDEyMTg5MEE5RkIwMDEwRUQyMSAvKiBpb3Mg
Ki8sCiAJCQkJODQxQ0MwMEQxODExODVCRjAwNDJFOUI2IC8qIE9wdGlvbnMuY3BwICovLAogCQkJ
CTg0MUNDMDBFMTgxMTg1QkYwMDQyRTlCNiAvKiBPcHRpb25zLmggKi8sCiAJCQkJQkM5MTkyMDIx
MzMzRTRDRDAwMzAxMURDIC8qIGNnICovLApAQCAtMzI3LDYgKzQxNyw4IEBACiAJCQljaGlsZHJl
biA9ICgKIAkJCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogV2ViS2l0VGVzdFJ1bm5lciAq
LywKIAkJCQlCQzI1MTg2MjExRDE1RDU0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lckluamVj
dGVkQnVuZGxlLmJ1bmRsZSAqLywKKwkJCQkyRUU1MkNFMDE4OTBBOUE4MDAxMEVEMjEgLyogV2Vi
S2l0VGVzdFJ1bm5lckFwcC5hcHAgKi8sCisJCQkJMkVFNTJDRkExODkwQTlBODAwMTBFRDIxIC8q
IFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy54Y3Rlc3QgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFBy
b2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTMzNCwxMCArNDI2LDggQEAK
IAkJMjlBOEZDRTAxNDVGMDM1RDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHkgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTI5MjEwRUFCMTQ0Q0FDQjIwMDgz
NUJCNiAvKiBBY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tICovLAogCQkJCTI5MjEwRUEyMTQ0Q0FB
QTUwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJMjkyMTBF
QTMxNDRDQUFBNTAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmggKi8sCi0JCQkJ
ODAzNEM2NjExNDg3NjM2NDAwQUMzMkU5IC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1t
ICovLAogCQkJCTgwOTczMzg4MTQ4NzRBNUEwMDgxNTZEOSAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uSGFuZGxlci5oICovLAogCQkJCTgwOTczMzg5MTQ4NzRBNUEwMDgxNTZEOSAvKiBBY2Nl
c3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSAqLywKIAkJCQkyOTIxMEVCMTE0NENBQ0Q0
MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIuY3BwICovLApAQCAtMzQ1LDE0ICs0
MzUsNzcgQEAKIAkJCQkyOTIxMEVCMzE0NENBQ0Q0MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJNYWMubW0gKi8sCiAJCQkJMjlBOEZDRTExNDVGMDM3QjAwOTA0NUE2IC8qIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2UuY3BwICovLAogCQkJCTI5QThGQ0RGMTQ1RjAzNTgwMDkw
NDVBNiAvKiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlLmggKi8sCi0JCQkJMjlBOEZDRTQx
NDVGMDQ2NDAwOTA0NUE2IC8qIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2VNYWMubW0gKi8s
CiAJCQkJMjkyMTBFQTkxNDRDQUNCMjAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQu
Y3BwICovLAogCQkJCTI5MjEwRUFBMTQ0Q0FDQjIwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmggKi8sCi0JCQkJMjkyMTBFQUIxNDRDQUNCMjAwODM1QkI1IC8qIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnRNYWMubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IEFjY2Vzc2liaWxpdHk7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkyRTYzRUQ3NDE4OTFBQ0U5MDAyQTdB
RkMgLyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CQkyRTYzRUQ3NTE4OTFBQ0U5MDAyQTdBRkMgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1Mu
bW0gKi8sCisJCQkJMkU2M0VENzYxODkxQUNFOTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb25IYW5kbGVyLmggKi8sCisJCQkJMkU2M0VENzcxODkxQUNFOTAwMkE3QUZDIC8qIEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VySU9TLm1tICovLAorCQkJCTJFNjNFRDc4MTg5MUFDRTkwMDJB
N0FGQyAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50SU9TLm1tICovLAorCQkJCTJFNjNFRDc5MTg5
MUFDRTkwMDJBN0FGQyAvKiBBY3RpdmF0ZUZvbnRzSU9TLm1tICovLAorCQkJCTJFNjNFRDdBMTg5
MUFDRTkwMDJBN0FGQyAvKiBFdmVudFNlbmRlclByb3h5SU9TLm1tICovLAorCQkJCTJFNjNFRDdC
MTg5MUFDRTkwMDJBN0FGQyAvKiBJbmplY3RlZEJ1bmRsZUlPUy5tbSAqLywKKwkJCQkyRTYzRUQ3
QzE4OTFBQ0U5MDAyQTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlSU9TLm1tICovLAorCQkJKTsK
KwkJCXBhdGggPSBpb3M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkyRUU1
MkNFMTE4OTBBOUE4MDAxMEVEMjEgLyogRnJhbWV3b3JrcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMkVFNTJDRTIxODkwQTlBODAwMTBFRDIxIC8qIEZv
dW5kYXRpb24uZnJhbWV3b3JrICovLAorCQkJCTJFRTUyQ0U0MTg5MEE5QTgwMDEwRUQyMSAvKiBD
b3JlR3JhcGhpY3MuZnJhbWV3b3JrICovLAorCQkJCTJFRTUyQ0U2MTg5MEE5QTgwMDEwRUQyMSAv
KiBVSUtpdC5mcmFtZXdvcmsgKi8sCisJCQkJMkVFNTJDRkIxODkwQTlBOTAwMTBFRDIxIC8qIFhD
VGVzdC5mcmFtZXdvcmsgKi8sCisJCQkpOworCQkJbmFtZSA9IEZyYW1ld29ya3M7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkyRUU1MkNFODE4OTBBOUE4MDAxMEVEMjEgLyog
V2ViS2l0VGVzdFJ1bm5lckFwcCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMkVFNTJDRjExODkwQTlBODAwMTBFRDIxIC8qIEFwcERlbGVnYXRlLmggKi8s
CisJCQkJMkVFNTJDRjIxODkwQTlBODAwMTBFRDIxIC8qIEFwcERlbGVnYXRlLm0gKi8sCisJCQkp
OworCQkJcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJBcHA7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OworCQkyRUU1MkQwMTE4OTBBOUE5MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5l
ckFwcFRlc3RzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJ
CQkyRUU1MkQwNzE4OTBBOUE5MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLm0g
Ki8sCisJCQkJMkVFNTJEMDIxODkwQTlBOTAwMTBFRDIxIC8qIFN1cHBvcnRpbmcgRmlsZXMgKi8s
CisJCQkpOworCQkJcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0czsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTJFRTUyRDAyMTg5MEE5QTkwMDEwRUQyMSAvKiBTdXBw
b3J0aW5nIEZpbGVzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgK
KwkJCQkyRUU1MkQwMzE4OTBBOUE5MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3Rz
LUluZm8ucGxpc3QgKi8sCisJCQkJMkVFNTJEMDQxODkwQTlBOTAwMTBFRDIxIC8qIEluZm9QbGlz
dC5zdHJpbmdzICovLAorCQkJKTsKKwkJCW5hbWUgPSAiU3VwcG9ydGluZyBGaWxlcyI7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkyRUU1MkQxMjE4OTBBOUZCMDAxMEVEMjEg
LyogaW9zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQky
RUU1MkNFQjE4OTBBOUE4MDAxMEVEMjEgLyogSW5mb1BsaXN0LnN0cmluZ3MgKi8sCisJCQkJMkVF
NTJEMTMxODkwQTlGQjAwMTBFRDIxIC8qIFBsYXRmb3JtV2ViVmlld0lPUy5tbSAqLywKKwkJCQky
RUU1MkQxNDE4OTBBOUZCMDAxMEVEMjEgLyogVGVzdENvbnRyb2xsZXJJT1MubW0gKi8sCisJCQkJ
MkVFNTJEMTUxODkwQTlGQjAwMTBFRDIxIC8qIFdlYkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbSAq
LywKKwkJCQkyRUU1MkQxNjE4OTBBOUZCMDAxMEVEMjEgLyogbWFpbklPUy5tbSAqLywKKwkJCSk7
CisJCQlwYXRoID0gaW9zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNUM0
NUMzMTAxNzM5OEUzNzAwNzk3MTRFIC8qIGNmICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTM2NSw2ICs1MTgsMTAgQEAKIAkJNjVFQjg1OUUxMUVDNjdDQzAw
MzREMzAwIC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJMjkyMTBFQUIxNDRDQUNCMjAwODM1QkI2IC8qIEFjY2Vzc2liaWxpdHlDb21tb25NYWMu
bW0gKi8sCisJCQkJODAzNEM2NjExNDg3NjM2NDAwQUMzMkU5IC8qIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyTWFjLm1tICovLAorCQkJCTI5QThGQ0U0MTQ1RjA0NjQwMDkwNDVBNiAvKiBBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlTWFjLm1tICovLAorCQkJCTI5MjEwRUFCMTQ0Q0FDQjIwMDgz
NUJCNSAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tICovLAogCQkJCTVDNDVDMzBFMTcz
OThFMjkwMDc5NzE0RSAvKiBXZWJBcmNoaXZlRHVtcFN1cHBvcnRNYWMubW0gKi8sCiAJCQkJNjVF
Qjg1OUYxMUVDNjdDQzAwMzREMzAwIC8qIEFjdGl2YXRlRm9udHMubW0gKi8sCiAJCQkJQkM4REFE
NzcxMzE2RDdCOTAwRUM5NkZDIC8qIEluamVjdGVkQnVuZGxlTWFjLm1tICovLApAQCAtMzkzLDYg
KzU1MCw3IEBACiAJCUJDMjUxODM1MTFEMTU3MUQwMDJFQkMwMSAvKiBJbmplY3RlZEJ1bmRsZSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkU2M0VENzQx
ODkxQUNFOTAwMkE3QUZDIC8qIGlvcyAqLywKIAkJCQk1QzQ1QzMxMDE3Mzk4RTM3MDA3OTcxNEUg
LyogY2YgKi8sCiAJCQkJQkM5NTJDMEExMUYzQjkzOTAwMzM5OEI0IC8qIEJpbmRpbmdzICovLAog
CQkJCUJDMTRFNEUwMTIwRTAyRjkwMDgyNkMwQyAvKiBDb250cm9sbGVycyAqLywKQEAgLTUxOSw2
ICs2NzcsNDIgQEAKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWE5h
dGl2ZVRhcmdldCBzZWN0aW9uICovCisJCTJFRTUyQ0RGMTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJL
aXRUZXN0UnVubmVyQXBwICovID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVp
bGRDb25maWd1cmF0aW9uTGlzdCA9IDJFRTUyRDBGMTg5MEE5QTkwMDEwRUQyMSAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViS2l0VGVzdFJ1bm5lckFw
cCIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQkyRUU1MkNEQzE4OTBBOUE4MDAxMEVEMjEg
LyogU291cmNlcyAqLywKKwkJCQkyRUU1MkNERDE4OTBBOUE4MDAxMEVEMjEgLyogRnJhbWV3b3Jr
cyAqLywKKwkJCQkyRUU1MkNERTE4OTBBOUE4MDAxMEVEMjEgLyogUmVzb3VyY2VzICovLAorCQkJ
KTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTJF
NjNFRDg5MTg5MUFENDcwMDJBN0FGQyAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAorCQkJKTsK
KwkJCW5hbWUgPSBXZWJLaXRUZXN0UnVubmVyQXBwOworCQkJcHJvZHVjdE5hbWUgPSBXZWJLaXRU
ZXN0UnVubmVyQXBwOworCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDJFRTUyQ0UwMTg5MEE5QTgwMDEw
RUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwLmFwcCAqLzsKKwkJCXByb2R1Y3RUeXBlID0gImNv
bS5hcHBsZS5wcm9kdWN0LXR5cGUuYXBwbGljYXRpb24iOworCQl9OworCQkyRUU1MkNGOTE4OTBB
OUE4MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzICovID0geworCQkJaXNhID0g
UEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDJFRTUyRDEwMTg5
MEE5QTkwMDEwRUQyMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRh
cmdldCAiV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAor
CQkJCTJFRTUyQ0Y2MTg5MEE5QTgwMDEwRUQyMSAvKiBTb3VyY2VzICovLAorCQkJCTJFRTUyQ0Y3
MTg5MEE5QTgwMDEwRUQyMSAvKiBGcmFtZXdvcmtzICovLAorCQkJCTJFRTUyQ0Y4MTg5MEE5QTgw
MDEwRUQyMSAvKiBSZXNvdXJjZXMgKi8sCisJCQkpOworCQkJYnVpbGRSdWxlcyA9ICgKKwkJCSk7
CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJMkVFNTJEMDAxODkwQTlBOTAwMTBFRDIxIC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8sCisJCQkpOworCQkJbmFtZSA9IFdlYktpdFRlc3RSdW5uZXJB
cHBUZXN0czsKKwkJCXByb2R1Y3ROYW1lID0gV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzOworCQkJ
cHJvZHVjdFJlZmVyZW5jZSA9IDJFRTUyQ0ZBMTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0
UnVubmVyQXBwVGVzdHMueGN0ZXN0ICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnBy
b2R1Y3QtdHlwZS5idW5kbGUudW5pdC10ZXN0IjsKKwkJfTsKIAkJOERENzZGOTYwNDg2QUE3NjAw
RDk2QjVFIC8qIFdlYktpdFRlc3RSdW5uZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJn
ZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMURFQjkyNzQwODczM0RENDAwMTBFOUNE
IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJLaXRU
ZXN0UnVubmVyIiAqLzsKQEAgLTU2MSw2ICs3NTUsMTEgQEAKIAkJMDhGQjc3OTNGRTg0MTU1REMw
MkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovID0gewogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJ
CWF0dHJpYnV0ZXMgPSB7CisJCQkJVGFyZ2V0QXR0cmlidXRlcyA9IHsKKwkJCQkJMkVFNTJDRjkx
ODkwQTlBODAwMTBFRDIxID0geworCQkJCQkJVGVzdFRhcmdldElEID0gMkVFNTJDREYxODkwQTlB
ODAwMTBFRDIxOworCQkJCQl9OworCQkJCX07CiAJCQl9OwogCQkJYnVpbGRDb25maWd1cmF0aW9u
TGlzdCA9IDFERUI5Mjc4MDg3MzNERDQwMDEwRTlDRCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWFByb2plY3QgIldlYktpdFRlc3RSdW5uZXIiICovOwogCQkJY29tcGF0aWJpbGl0
eVZlcnNpb24gPSAiWGNvZGUgMy4xIjsKQEAgLTU3MSw2ICs3NzAsNyBAQAogCQkJCUphcGFuZXNl
LAogCQkJCUZyZW5jaCwKIAkJCQlHZXJtYW4sCisJCQkJZW4sCiAJCQkpOwogCQkJbWFpbkdyb3Vw
ID0gMDhGQjc3OTRGRTg0MTU1REMwMkFBQzA3IC8qIFdlYktpdFRlc3RSdW5uZXIgKi87CiAJCQlw
cm9qZWN0RGlyUGF0aCA9ICIiOwpAQCAtNTc5LDExICs3NzksMzAgQEAKIAkJCQk4REQ3NkY5NjA0
ODZBQTc2MDBEOTZCNUUgLyogV2ViS2l0VGVzdFJ1bm5lciAqLywKIAkJCQlCQzI1MTg2MTExRDE1
RDU0MDAyRUJDMDEgLyogV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlICovLAogCQkJCUJD
OTUyRDc3MTFGM0JGNUQwMDMzOThCNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCisJCQkJMkVFNTJD
REYxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAgKi8sCisJCQkJMkVFNTJD
RjkxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cyAqLywKIAkJCSk7
CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWFJlc291
cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQkyRUU1MkNERTE4OTBBOUE4MDAxMEVEMjEgLyog
UmVzb3VyY2VzICovID0geworCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1
aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQkyRUU1MkNFRDE4
OTBBOUE4MDAxMEVEMjEgLyogSW5mb1BsaXN0LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovLAorCQkJ
KTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQl9OworCQky
RUU1MkNGODE4OTBBOUE4MDAxMEVEMjEgLyogUmVzb3VyY2VzICovID0geworCQkJaXNhID0gUEJY
UmVzb3VyY2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJ
CQlmaWxlcyA9ICgKKwkJCQkyRUU1MkQxMTE4OTBBOUJCMDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1
bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMkVFNTJEMDYx
ODkwQTlBOTAwMTBFRDIxIC8qIEluZm9QbGlzdC5zdHJpbmdzIGluIFJlc291cmNlcyAqLywKKwkJ
CSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKIAkJ
QkMyNTE4NUUxMUQxNUQ1NDAwMkVCQzAxIC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpA
QCAtNjIyLDYgKzg0MSwzNSBAQAogLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0
aW9uICovCiAKIC8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJMkVF
NTJDREMxODkwQTlBODAwMTBFRDIxIC8qIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhTb3Vy
Y2VzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxl
cyA9ICgKKwkJCQkyRTYzRUQ5NTE4OTFBREM3MDAyQTdBRkMgLyogQ3ljbGljUmVkdW5kYW5jeUNo
ZWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFNzQ5QkYyMTg5MUVCRkEwMDdGQzE3NSAvKiBF
dmVudFNlbmRlclByb3h5SU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEOTYxODkxQURD
NzAwMkE3QUZDIC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTJFNjNFRDk0MTg5MUFEQUQwMDJBN0FGQyAvKiBtYWluSU9TLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJMkU2M0VEOTcxODkxQURDNzAwMkE3QUZDIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEOTgxODkxQURDNzAwMkE3QUZDIC8qIFRlc3RDb250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFRDkyMTg5MUFEQUQwMDJBN0FGQyAvKiBU
ZXN0Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFRDk5MTg5MUFEQzcw
MDJBN0FGQyAvKiBUZXN0SW52b2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTYzRURB
NTE4OTFCRDhFMDAyQTdBRkMgLyogVGVzdEludm9jYXRpb25DRy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkyRTYzRUQ5QTE4OTFBREM3MDAyQTdBRkMgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEOUIxODkxQURDNzAwMkE3QUZDIC8qIFdvcmtR
dWV1ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU3NDlCRUYxODkxRTkzOTAwN0ZD
MTc1IC8qIE9wdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEOUMxODkxQURDNzAw
MkE3QUZDIC8qIEFwcERlbGVnYXRlLm0gaW4gU291cmNlcyAqLywKKwkJCQkyRTYzRUQ5MTE4OTFB
REFEMDAyQTdBRkMgLyogUGxhdGZvcm1XZWJWaWV3SU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkp
OworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CisJCTJF
RTUyQ0Y2MTg5MEE5QTgwMDEwRUQyMSAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291
cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmls
ZXMgPSAoCisJCQkJMkVFNTJEMDgxODkwQTlBOTAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJB
cHBUZXN0cy5tIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CiAJCThERDc2Rjk5MDQ4NkFBNzYwMEQ5NkI1RSAvKiBT
b3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtNjUwLDYgKzg5OCwxNSBAQAogCQkJaXNhID0gUEJY
U291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCisJCQkJMkU2M0VEQTYxODkxQkRDMDAwMkE3QUZDIC8qIFRlc3RSdW5uZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEQTExODkxQjI5MTAwMkE3QUZDIC8qIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnRJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkyRTYzRUQ5RTE4OTFBRUMx
MDAyQTdBRkMgLyogV2ViQXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMkU2M0VEOEExODkxQUQ3RTAwMkE3QUZDIC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVySU9T
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEOEIxODkxQUQ3RTAwMkE3QUZDIC8qIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VySU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkU2M0VEOEQxODkx
QUQ3RTAwMkE3QUZDIC8qIEFjdGl2YXRlRm9udHNJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQky
RTYzRUQ4RTE4OTFBRDdFMDAyQTdBRkMgLyogRXZlbnRTZW5kZXJQcm94eUlPUy5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTJFNjNFRDhGMTg5MUFEN0UwMDJBN0FGQyAvKiBJbmplY3RlZEJ1bmRsZUlP
Uy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJFNjNFRDkwMTg5MUFEN0UwMDJBN0FGQyAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkyOTIxMEVEQTE0NENDM0VB
MDA4MzVCQjYgLyogQWNjZXNzaWJpbGl0eUNvbW1vbk1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTI5MjEwRUIwMTQ0Q0FDQkQwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4MDM0QzY2MjE0ODc2MzY0MDBBQzMyRTkgLyogQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTY3Nyw3ICs5MzQsNiBAQAog
CQkJCUJDOTUyRjFGMTFGM0M2NTIwMDMzOThCNCAvKiBKU1Rlc3RSdW5uZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTY0MUUyRDAxNDMzNUU5NTAwODMwN0U1IC8qIEpTVGV4dElucHV0Q29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzk1MkMwRDExRjNCOTY1MDAzMzk4QjQgLyog
SlNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQzk5ODE4MTFEM0Y1MUUwMDE3QkNB
MiAvKiBUZXN0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDNDVDMzBGMTczOThFMjkw
MDc5NzE0RSAvKiBXZWJBcmNoaXZlRHVtcFN1cHBvcnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1QzQ1QzMxMzE3Mzk4RTQ4MDA3OTcxNEUgLyogV2ViQXJjaGl2ZUR1bXBTdXBwb3J0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUMwQ0U3MjBCMTI0N0M5MzMwMEJDMEVDNCAvKiBUZXN0UnVubmVy
TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02ODgsNiArOTQ0LDE2IEBACiAvKiBFbmQgUEJYU291
cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhUYXJnZXREZXBlbmRlbmN5
IHNlY3Rpb24gKi8KKwkJMkU2M0VEODkxODkxQUQ0NzAwMkE3QUZDIC8qIFBCWFRhcmdldERlcGVu
ZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0g
QkMyNTE4NjExMUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZSAqLzsKKwkJCXRhcmdldFByb3h5ID0gMkU2M0VEODgxODkxQUQ0NzAwMkE3QUZDIC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKwkJMkVFNTJEMDAxODkwQTlBOTAwMTBFRDIxIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OworCQkJdGFyZ2V0ID0gMkVFNTJDREYxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5u
ZXJBcHAgKi87CisJCQl0YXJnZXRQcm94eSA9IDJFRTUyQ0ZGMTg5MEE5QTkwMDEwRUQyMSAvKiBQ
QlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CiAJCUJDMjUxOTQyMTFEMTVEOTQwMDJFQkMw
MSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5k
ZW5jeTsKIAkJCXRhcmdldCA9IEJDMjUxODYxMTFEMTVENTQwMDJFQkMwMSAvKiBXZWJLaXRUZXN0
UnVubmVySW5qZWN0ZWRCdW5kbGUgKi87CkBAIC03MDAsNiArOTY2LDI2IEBACiAJCX07CiAvKiBF
bmQgUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCiAKKy8qIEJlZ2luIFBCWFZhcmlhbnRH
cm91cCBzZWN0aW9uICovCisJCTJFRTUyQ0VCMTg5MEE5QTgwMDEwRUQyMSAvKiBJbmZvUGxpc3Qu
c3RyaW5ncyAqLyA9IHsKKwkJCWlzYSA9IFBCWFZhcmlhbnRHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTJFRTUyQ0VDMTg5MEE5QTgwMDEwRUQyMSAvKiBlbiAqLywKKwkJCSk7CisJCQluYW1l
ID0gSW5mb1BsaXN0LnN0cmluZ3M7CisJCQlwYXRoID0gLi4vV2ViS2l0VGVzdFJ1bm5lckFwcDsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTJFRTUyRDA0MTg5MEE5QTkwMDEw
RUQyMSAvKiBJbmZvUGxpc3Quc3RyaW5ncyAqLyA9IHsKKwkJCWlzYSA9IFBCWFZhcmlhbnRHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTJFRTUyRDA1MTg5MEE5QTkwMDEwRUQyMSAvKiBlbiAq
LywKKwkJCSk7CisJCQluYW1lID0gSW5mb1BsaXN0LnN0cmluZ3M7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OworLyogRW5kIFBCWFZhcmlhbnRHcm91cCBzZWN0aW9uICovCisKIC8q
IEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KIAkJMURFQjkyNzUwODczM0RE
NDAwMTBFOUNEIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CkBAIC03MzEsNiArMTAxNywxODcgQEAKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKIAkJfTsK
KwkJMkVFNTJEMDkxODkwQTlBOTAwMTBFRDIxIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDMjUx
QTE4MTFEMTY3OTUwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVyLnhjY29uZmlnICovOworCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBU1NFVENBVEFMT0dfQ09NUElMRVJfQVBQSUNPTl9OQU1F
ID0gQXBwSWNvbjsKKwkJCQlBU1NFVENBVEFMT0dfQ09NUElMRVJfTEFVTkNISU1BR0VfTkFNRSA9
IExhdW5jaEltYWdlOworCQkJCUdDQ19EWU5BTUlDX05PX1BJQyA9IE5POworCQkJCUdDQ19TWU1C
T0xTX1BSSVZBVEVfRVhURVJOID0gTk87CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAiV2ViS2l0VGVz
dFJ1bm5lckFwcC9XZWJLaXRUZXN0UnVubmVyQXBwLUluZm8ucGxpc3QiOworCQkJCUlQSE9ORU9T
X0RFUExPWU1FTlRfVEFSR0VUID0gOC4wOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9O
QU1FKSI7CisJCQkJVEFSR0VURURfREVWSUNFX0ZBTUlMWSA9ICIxLDIiOworCQkJCVdSQVBQRVJf
RVhURU5TSU9OID0gYXBwOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJMkVFNTJE
MEExODkwQTlBOTAwMTBFRDIxIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKKwkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQkMyNTFBMTgxMUQx
Njc5NTAwMkVCQzAxIC8qIFdlYktpdFRlc3RSdW5uZXIueGNjb25maWcgKi87CisJCQlidWlsZFNl
dHRpbmdzID0geworCQkJCUFTU0VUQ0FUQUxPR19DT01QSUxFUl9BUFBJQ09OX05BTUUgPSBBcHBJ
Y29uOworCQkJCUFTU0VUQ0FUQUxPR19DT01QSUxFUl9MQVVOQ0hJTUFHRV9OQU1FID0gTGF1bmNo
SW1hZ2U7CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAiV2ViS2l0VGVzdFJ1bm5lckFwcC9XZWJLaXRU
ZXN0UnVubmVyQXBwLUluZm8ucGxpc3QiOworCQkJCUlQSE9ORU9TX0RFUExPWU1FTlRfVEFSR0VU
ID0gOC4wOworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJVEFSR0VU
RURfREVWSUNFX0ZBTUlMWSA9ICIxLDIiOworCQkJCVdSQVBQRVJfRVhURU5TSU9OID0gYXBwOwor
CQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQkyRUU1MkQwQjE4OTBBOUE5MDAxMEVE
MjEgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwor
CQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSBCQzI1MUExODExRDE2Nzk1MDAyRUJDMDEg
LyogV2ViS2l0VGVzdFJ1bm5lci54Y2NvbmZpZyAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJ
CQkJQVNTRVRDQVRBTE9HX0NPTVBJTEVSX0FQUElDT05fTkFNRSA9IEFwcEljb247CisJCQkJQVNT
RVRDQVRBTE9HX0NPTVBJTEVSX0xBVU5DSElNQUdFX05BTUUgPSBMYXVuY2hJbWFnZTsKKwkJCQlJ
TkZPUExJU1RfRklMRSA9ICJXZWJLaXRUZXN0UnVubmVyQXBwL1dlYktpdFRlc3RSdW5uZXJBcHAt
SW5mby5wbGlzdCI7CisJCQkJSVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVQgPSA4LjA7CisJCQkJ
UFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlUQVJHRVRFRF9ERVZJQ0VfRkFN
SUxZID0gIjEsMiI7CisJCQkJV1JBUFBFUl9FWFRFTlNJT04gPSBhcHA7CisJCQl9OworCQkJbmFt
ZSA9IFByb2R1Y3Rpb247CisJCX07CisJCTJFRTUyRDBDMTg5MEE5QTkwMDEwRUQyMSAvKiBEZWJ1
ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5n
cyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBOTzsKKwkJCQlBUkNIUyA9ICIk
KEFSQ0hTX1NUQU5EQVJEX0lOQ0xVRElOR182NF9CSVQpIjsKKwkJCQlCVU5ETEVfTE9BREVSID0g
IiQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJLaXRUZXN0UnVubmVyQXBwLmFwcC9XZWJLaXRUZXN0
UnVubmVyQXBwIjsKKwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251KysweCI7
CisJCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19FTkFCTEVfTU9E
VUxFUyA9IFlFUzsKKwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJQ0xBTkdf
V0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05TVEFOVF9DT05W
RVJTSU9OID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0gWUVT
X0VSUk9SOworCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlDTEFOR19XQVJO
X0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0g
WUVTOworCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOworCQkJCUNM
QU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09QWV9QSEFTRV9T
VFJJUCA9IE5POworCQkJCUZSQU1FV09SS19TRUFSQ0hfUEFUSFMgPSAoCisJCQkJCSIkKFNES1JP
T1QpL0RldmVsb3Blci9MaWJyYXJ5L0ZyYW1ld29ya3MiLAorCQkJCQkiJChpbmhlcml0ZWQpIiwK
KwkJCQkJIiQoREVWRUxPUEVSX0ZSQU1FV09SS1NfRElSKSIsCisJCQkJKTsKKwkJCQlHQ0NfQ19M
QU5HVUFHRV9TVEFOREFSRCA9IGdudTk5OworCQkJCUdDQ19EWU5BTUlDX05PX1BJQyA9IE5POwor
CQkJCUdDQ19QUkVDT01QSUxFX1BSRUZJWF9IRUFERVIgPSBZRVM7CisJCQkJR0NDX1BSRUZJWF9I
RUFERVIgPSAiV2ViS2l0VGVzdFJ1bm5lckFwcC9XZWJLaXRUZXN0UnVubmVyQXBwLVByZWZpeC5w
Y2giOworCQkJCUdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAoCisJCQkJCSJERUJVRz0x
IiwKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJKTsKKwkJCQlHQ0NfU1lNQk9MU19QUklWQVRF
X0VYVEVSTiA9IE5POworCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVT
OworCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworCQkJCUdDQ19X
QVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpF
RF9BVVRPUyA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJ
R0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCUlORk9QTElTVF9GSUxFID0gIldl
YktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlz
dCI7CisJCQkJSVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVQgPSA4LjA7CisJCQkJT05MWV9BQ1RJ
VkVfQVJDSCA9IFlFUzsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
CVNES1JPT1QgPSBpcGhvbmVvczsKKwkJCQlURVNUX0hPU1QgPSAiJChCVU5ETEVfTE9BREVSKSI7
CisJCQkJV1JBUFBFUl9FWFRFTlNJT04gPSB4Y3Rlc3Q7CisJCQl9OworCQkJbmFtZSA9IERlYnVn
OworCQl9OworCQkyRUU1MkQwRDE4OTBBOUE5MDAxMEVEMjEgLyogUmVsZWFzZSAqLyA9IHsKKwkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlB
TFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBOTzsKKwkJCQlBUkNIUyA9ICIkKEFSQ0hTX1NUQU5E
QVJEX0lOQ0xVRElOR182NF9CSVQpIjsKKwkJCQlCVU5ETEVfTE9BREVSID0gIiQoQlVJTFRfUFJP
RFVDVFNfRElSKS9XZWJLaXRUZXN0UnVubmVyQXBwLmFwcC9XZWJLaXRUZXN0UnVubmVyQXBwIjsK
KwkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251KysweCI7CisJCQkJQ0xBTkdf
Q1hYX0xJQlJBUlkgPSAibGliYysrIjsKKwkJCQlDTEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsK
KwkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9CT09MX0NP
TlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9DT05TVEFOVF9DT05WRVJTSU9OID0gWUVT
OworCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0gWUVTX0VSUk9SOworCQkJ
CUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0VOVU1fQ09OVkVS
U0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUNM
QU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOworCQkJCUNMQU5HX1dBUk5fX0RV
UExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IFlFUzsK
KwkJCQlFTkFCTEVfTlNfQVNTRVJUSU9OUyA9IE5POworCQkJCUZSQU1FV09SS19TRUFSQ0hfUEFU
SFMgPSAoCisJCQkJCSIkKFNES1JPT1QpL0RldmVsb3Blci9MaWJyYXJ5L0ZyYW1ld29ya3MiLAor
CQkJCQkiJChpbmhlcml0ZWQpIiwKKwkJCQkJIiQoREVWRUxPUEVSX0ZSQU1FV09SS1NfRElSKSIs
CisJCQkJKTsKKwkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5OworCQkJCUdDQ19Q
UkVDT01QSUxFX1BSRUZJWF9IRUFERVIgPSBZRVM7CisJCQkJR0NDX1BSRUZJWF9IRUFERVIgPSAi
V2ViS2l0VGVzdFJ1bm5lckFwcC9XZWJLaXRUZXN0UnVubmVyQXBwLVByZWZpeC5wY2giOworCQkJ
CUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUdDQ19XQVJOX0FC
T1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOworCQkJCUdDQ19XQVJOX1VOREVDTEFSRURfU0VM
RUNUT1IgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKKwkJ
CQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZB
UklBQkxFID0gWUVTOworCQkJCUlORk9QTElTVF9GSUxFID0gIldlYktpdFRlc3RSdW5uZXJBcHBU
ZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdCI7CisJCQkJSVBIT05FT1Nf
REVQTE9ZTUVOVF9UQVJHRVQgPSA4LjA7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05B
TUUpIjsKKwkJCQlTREtST09UID0gaXBob25lb3M7CisJCQkJVEVTVF9IT1NUID0gIiQoQlVORExF
X0xPQURFUikiOworCQkJCVZBTElEQVRFX1BST0RVQ1QgPSBZRVM7CisJCQkJV1JBUFBFUl9FWFRF
TlNJT04gPSB4Y3Rlc3Q7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisJCTJFRTUy
RDBFMTg5MEE5QTkwMDEwRUQyMSAvKiBQcm9kdWN0aW9uICovID0geworCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hf
VVNFUl9QQVRIUyA9IE5POworCQkJCUFSQ0hTID0gIiQoQVJDSFNfU1RBTkRBUkRfSU5DTFVESU5H
XzY0X0JJVCkiOworCQkJCUJVTkRMRV9MT0FERVIgPSAiJChCVUlMVF9QUk9EVUNUU19ESVIpL1dl
YktpdFRlc3RSdW5uZXJBcHAuYXBwL1dlYktpdFRlc3RSdW5uZXJBcHAiOworCQkJCUNMQU5HX0NY
WF9MQU5HVUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKKwkJCQlDTEFOR19DWFhfTElCUkFSWSA9
ICJsaWJjKysiOworCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVTOworCQkJCUNMQU5HX0VO
QUJMRV9PQkpDX0FSQyA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0JPT0xfQ09OVkVSU0lPTiA9IFlF
UzsKKwkJCQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdf
V0FSTl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9F
TVBUWV9CT0RZID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05WRVJTSU9OID0gWUVTOwor
CQkJCUNMQU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9PQkpD
X1JPT1RfQ0xBU1MgPSBZRVNfRVJST1I7CisJCQkJQ0xBTkdfV0FSTl9fRFVQTElDQVRFX01FVEhP
RF9NQVRDSCA9IFlFUzsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gWUVTOworCQkJCUVOQUJMRV9O
U19BU1NFUlRJT05TID0gTk87CisJCQkJRlJBTUVXT1JLX1NFQVJDSF9QQVRIUyA9ICgKKwkJCQkJ
IiQoU0RLUk9PVCkvRGV2ZWxvcGVyL0xpYnJhcnkvRnJhbWV3b3JrcyIsCisJCQkJCSIkKGluaGVy
aXRlZCkiLAorCQkJCQkiJChERVZFTE9QRVJfRlJBTUVXT1JLU19ESVIpIiwKKwkJCQkpOworCQkJ
CUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX1BSRUNPTVBJTEVfUFJF
RklYX0hFQURFUiA9IFlFUzsKKwkJCQlHQ0NfUFJFRklYX0hFQURFUiA9ICJXZWJLaXRUZXN0UnVu
bmVyQXBwL1dlYktpdFRlc3RSdW5uZXJBcHAtUHJlZml4LnBjaCI7CisJCQkJR0NDX1dBUk5fNjRf
VE9fMzJfQklUX0NPTlZFUlNJT04gPSBZRVM7CisJCQkJR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZ
UEUgPSBZRVNfRVJST1I7CisJCQkJR0NDX1dBUk5fVU5ERUNMQVJFRF9TRUxFQ1RPUiA9IFlFUzsK
KwkJCQlHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOworCQkJCUdDQ19XQVJOX1VO
VVNFRF9GVU5DVElPTiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7
CisJCQkJSU5GT1BMSVNUX0ZJTEUgPSAiV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL1dlYktpdFRl
c3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0IjsKKwkJCQlJUEhPTkVPU19ERVBMT1lNRU5UX1RB
UkdFVCA9IDguMDsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJCVNE
S1JPT1QgPSBpcGhvbmVvczsKKwkJCQlURVNUX0hPU1QgPSAiJChCVU5ETEVfTE9BREVSKSI7CisJ
CQkJVkFMSURBVEVfUFJPRFVDVCA9IFlFUzsKKwkJCQlXUkFQUEVSX0VYVEVOU0lPTiA9IHhjdGVz
dDsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJQkMyNTE4NjQxMUQxNUQ1
NTAwMkVCQzAxIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247
CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDMjUxOTcxMTFEMTVFNjEwMDJFQkMw
MSAvKiBJbmplY3RlZEJ1bmRsZS54Y2NvbmZpZyAqLzsKQEAgLTgxMCw2ICsxMjc3LDI2IEBACiAJ
CQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJh
dGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OworCQkyRUU1MkQwRjE4OTBBOUE5MDAxMEVEMjEg
LyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYktpdFRl
c3RSdW5uZXJBcHAiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1
aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJMkVFNTJEMDkxODkwQTlBOTAwMTBFRDIxIC8qIERl
YnVnICovLAorCQkJCTJFRTUyRDBBMTg5MEE5QTkwMDEwRUQyMSAvKiBSZWxlYXNlICovLAorCQkJ
CTJFRTUyRDBCMTg5MEE5QTkwMDEwRUQyMSAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRl
ZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9u
TmFtZSA9IFByb2R1Y3Rpb247CisJCX07CisJCTJFRTUyRDEwMTg5MEE5QTkwMDEwRUQyMSAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViS2l0VGVzdFJ1
bm5lckFwcFRlc3RzIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQli
dWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTJFRTUyRDBDMTg5MEE5QTkwMDEwRUQyMSAvKiBE
ZWJ1ZyAqLywKKwkJCQkyRUU1MkQwRDE4OTBBOUE5MDAxMEVEMjEgLyogUmVsZWFzZSAqLywKKwkJ
CQkyRUU1MkQwRTE4OTBBOUE5MDAxMEVEMjEgLyogUHJvZHVjdGlvbiAqLywKKwkJCSk7CisJCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlv
bk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQlCQzI1MTg2NjExRDE1RDU1MDAyRUJDMDEgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYktpdFRlc3RS
dW5uZXJJbmplY3RlZEJ1bmRsZSIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0
OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9BcHBEZWxlZ2F0ZS5oIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL0FwcERlbGVnYXRlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mjc3NTI5MDhiN2MwMWFmNWQ1YmZiMDMyMzQ4OGU4ZmJmZWUxZmEzMAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9BcHBEZWxlZ2F0
ZS5oCkBAIC0wLDAgKzEsMTUgQEAKKy8vCisvLyAgQXBwRGVsZWdhdGUuaAorLy8gIFdlYktpdFRl
c3RSdW5uZXJBcHAKKy8vCisvLyAgQ3JlYXRlZCBieSBEYXZpZCBGYXJsZXIgb24gMS8yMi8xNC4K
Ky8vCisvLworCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorCitAaW50ZXJmYWNlIEFwcERlbGVn
YXRlIDogVUlSZXNwb25kZXIgPFVJQXBwbGljYXRpb25EZWxlZ2F0ZT4KKworQHByb3BlcnR5IChz
dHJvbmcsIG5vbmF0b21pYykgVUlXaW5kb3cgKndpbmRvdzsKKworQGVuZApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL0FwcERlbGVnYXRlLm0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHAvQXBwRGVsZWdhdGUu
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYjRiMWIyMjlmMzdjNzE4OTU0Yzc1Mzk4MDAzNDk4NGM3NjE5ZDQyCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVy
QXBwL0FwcERlbGVnYXRlLm0KQEAgLTAsMCArMSw0OSBAQAorLy8KKy8vICBBcHBEZWxlZ2F0ZS5t
CisvLyAgV2ViS2l0VGVzdFJ1bm5lckFwcAorLy8KKy8vICBDcmVhdGVkIGJ5IERhdmlkIEZhcmxl
ciBvbiAxLzIyLzE0LgorLy8KKy8vCisKKyNpbXBvcnQgIkFwcERlbGVnYXRlLmgiCisKK0BpbXBs
ZW1lbnRhdGlvbiBBcHBEZWxlZ2F0ZQorCistIChCT09MKWFwcGxpY2F0aW9uOihVSUFwcGxpY2F0
aW9uICopYXBwbGljYXRpb24gZGlkRmluaXNoTGF1bmNoaW5nV2l0aE9wdGlvbnM6KE5TRGljdGlv
bmFyeSAqKWxhdW5jaE9wdGlvbnMKK3sKKyAgICBzZWxmLndpbmRvdyA9IFtbVUlXaW5kb3cgYWxs
b2NdIGluaXRXaXRoRnJhbWU6W1tVSVNjcmVlbiBtYWluU2NyZWVuXSBib3VuZHNdXTsKKyAgICAv
LyBPdmVycmlkZSBwb2ludCBmb3IgY3VzdG9taXphdGlvbiBhZnRlciBhcHBsaWNhdGlvbiBsYXVu
Y2guCisgICAgc2VsZi53aW5kb3cuYmFja2dyb3VuZENvbG9yID0gW1VJQ29sb3Igd2hpdGVDb2xv
cl07CisgICAgW3NlbGYud2luZG93IG1ha2VLZXlBbmRWaXNpYmxlXTsKKyAgICByZXR1cm4gWUVT
OworfQorCistICh2b2lkKWFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZTooVUlBcHBsaWNhdGlv
biAqKWFwcGxpY2F0aW9uCit7CisgICAgLy8gU2VudCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBpcyBh
Ym91dCB0byBtb3ZlIGZyb20gYWN0aXZlIHRvIGluYWN0aXZlIHN0YXRlLiBUaGlzIGNhbiBvY2N1
ciBmb3IgY2VydGFpbiB0eXBlcyBvZiB0ZW1wb3JhcnkgaW50ZXJydXB0aW9ucyAoc3VjaCBhcyBh
biBpbmNvbWluZyBwaG9uZSBjYWxsIG9yIFNNUyBtZXNzYWdlKSBvciB3aGVuIHRoZSB1c2VyIHF1
aXRzIHRoZSBhcHBsaWNhdGlvbiBhbmQgaXQgYmVnaW5zIHRoZSB0cmFuc2l0aW9uIHRvIHRoZSBi
YWNrZ3JvdW5kIHN0YXRlLgorICAgIC8vIFVzZSB0aGlzIG1ldGhvZCB0byBwYXVzZSBvbmdvaW5n
IHRhc2tzLCBkaXNhYmxlIHRpbWVycywgYW5kIHRocm90dGxlIGRvd24gT3BlbkdMIEVTIGZyYW1l
IHJhdGVzLiBHYW1lcyBzaG91bGQgdXNlIHRoaXMgbWV0aG9kIHRvIHBhdXNlIHRoZSBnYW1lLgor
fQorCistICh2b2lkKWFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOihVSUFwcGxpY2F0aW9u
ICopYXBwbGljYXRpb24KK3sKKyAgICAvLyBVc2UgdGhpcyBtZXRob2QgdG8gcmVsZWFzZSBzaGFy
ZWQgcmVzb3VyY2VzLCBzYXZlIHVzZXIgZGF0YSwgaW52YWxpZGF0ZSB0aW1lcnMsIGFuZCBzdG9y
ZSBlbm91Z2ggYXBwbGljYXRpb24gc3RhdGUgaW5mb3JtYXRpb24gdG8gcmVzdG9yZSB5b3VyIGFw
cGxpY2F0aW9uIHRvIGl0cyBjdXJyZW50IHN0YXRlIGluIGNhc2UgaXQgaXMgdGVybWluYXRlZCBs
YXRlci4gCisgICAgLy8gSWYgeW91ciBhcHBsaWNhdGlvbiBzdXBwb3J0cyBiYWNrZ3JvdW5kIGV4
ZWN1dGlvbiwgdGhpcyBtZXRob2QgaXMgY2FsbGVkIGluc3RlYWQgb2YgYXBwbGljYXRpb25XaWxs
VGVybWluYXRlOiB3aGVuIHRoZSB1c2VyIHF1aXRzLgorfQorCistICh2b2lkKWFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZDooVUlBcHBsaWNhdGlvbiAqKWFwcGxpY2F0aW9uCit7CisgICAg
Ly8gQ2FsbGVkIGFzIHBhcnQgb2YgdGhlIHRyYW5zaXRpb24gZnJvbSB0aGUgYmFja2dyb3VuZCB0
byB0aGUgaW5hY3RpdmUgc3RhdGU7IGhlcmUgeW91IGNhbiB1bmRvIG1hbnkgb2YgdGhlIGNoYW5n
ZXMgbWFkZSBvbiBlbnRlcmluZyB0aGUgYmFja2dyb3VuZC4KK30KKworLSAodm9pZClhcHBsaWNh
dGlvbkRpZEJlY29tZUFjdGl2ZTooVUlBcHBsaWNhdGlvbiAqKWFwcGxpY2F0aW9uCit7CisgICAg
Ly8gUmVzdGFydCBhbnkgdGFza3MgdGhhdCB3ZXJlIHBhdXNlZCAob3Igbm90IHlldCBzdGFydGVk
KSB3aGlsZSB0aGUgYXBwbGljYXRpb24gd2FzIGluYWN0aXZlLiBJZiB0aGUgYXBwbGljYXRpb24g
d2FzIHByZXZpb3VzbHkgaW4gdGhlIGJhY2tncm91bmQsIG9wdGlvbmFsbHkgcmVmcmVzaCB0aGUg
dXNlciBpbnRlcmZhY2UuCit9CisKKy0gKHZvaWQpYXBwbGljYXRpb25XaWxsVGVybWluYXRlOihV
SUFwcGxpY2F0aW9uICopYXBwbGljYXRpb24KK3sKKyAgICAvLyBDYWxsZWQgd2hlbiB0aGUgYXBw
bGljYXRpb24gaXMgYWJvdXQgdG8gdGVybWluYXRlLiBTYXZlIGRhdGEgaWYgYXBwcm9wcmlhdGUu
IFNlZSBhbHNvIGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOi4KK30KKworQGVuZApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwL1dlYktp
dFRlc3RSdW5uZXJBcHAtSW5mby5wbGlzdCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0
VGVzdFJ1bm5lckFwcC9XZWJLaXRUZXN0UnVubmVyQXBwLUluZm8ucGxpc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmNmOTdiMzFlNmI4NWE5ZWNjZGVhNDllZDg4MGFhOGIzNzQ3NjI5OQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9XZWJLaXRUZXN0
UnVubmVyQXBwLUluZm8ucGxpc3QKQEAgLTAsMCArMSw0NSBAQAorPD94bWwgdmVyc2lvbj0iMS4w
IiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9E
VEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0
LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxl
RGV2ZWxvcG1lbnRSZWdpb248L2tleT4KKwk8c3RyaW5nPmVuPC9zdHJpbmc+CisJPGtleT5DRkJ1
bmRsZURpc3BsYXlOYW1lPC9rZXk+CisJPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4K
Kwk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgorCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05B
TUV9PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KKwk8c3RyaW5nPm9y
Zy53ZWJraXQuJHtQUk9EVUNUX05BTUU6cmZjMTAzNGlkZW50aWZpZXJ9PC9zdHJpbmc+CisJPGtl
eT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgorCTxzdHJpbmc+Ni4wPC9zdHJp
bmc+CisJPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KKwk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwv
c3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgorCTxzdHJpbmc+QVBQTDwv
c3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KKwk8c3RyaW5n
PjEuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KKwk8c3RyaW5nPj8/
Pz88L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgorCTxzdHJpbmc+MS4wPC9z
dHJpbmc+CisJPGtleT5MU1JlcXVpcmVzSVBob25lT1M8L2tleT4KKwk8dHJ1ZS8+CisJPGtleT5V
SVJlcXVpcmVkRGV2aWNlQ2FwYWJpbGl0aWVzPC9rZXk+CisJPGFycmF5PgorCQk8c3RyaW5nPmFy
bXY3PC9zdHJpbmc+CisJPC9hcnJheT4KKwk8a2V5PlVJU3VwcG9ydGVkSW50ZXJmYWNlT3JpZW50
YXRpb25zPC9rZXk+CisJPGFycmF5PgorCQk8c3RyaW5nPlVJSW50ZXJmYWNlT3JpZW50YXRpb25Q
b3J0cmFpdDwvc3RyaW5nPgorCQk8c3RyaW5nPlVJSW50ZXJmYWNlT3JpZW50YXRpb25MYW5kc2Nh
cGVMZWZ0PC9zdHJpbmc+CisJCTxzdHJpbmc+VUlJbnRlcmZhY2VPcmllbnRhdGlvbkxhbmRzY2Fw
ZVJpZ2h0PC9zdHJpbmc+CisJPC9hcnJheT4KKwk8a2V5PlVJU3VwcG9ydGVkSW50ZXJmYWNlT3Jp
ZW50YXRpb25zfmlwYWQ8L2tleT4KKwk8YXJyYXk+CisJCTxzdHJpbmc+VUlJbnRlcmZhY2VPcmll
bnRhdGlvblBvcnRyYWl0PC9zdHJpbmc+CisJCTxzdHJpbmc+VUlJbnRlcmZhY2VPcmllbnRhdGlv
blBvcnRyYWl0VXBzaWRlRG93bjwvc3RyaW5nPgorCQk8c3RyaW5nPlVJSW50ZXJmYWNlT3JpZW50
YXRpb25MYW5kc2NhcGVMZWZ0PC9zdHJpbmc+CisJCTxzdHJpbmc+VUlJbnRlcmZhY2VPcmllbnRh
dGlvbkxhbmRzY2FwZVJpZ2h0PC9zdHJpbmc+CisJPC9hcnJheT4KKzwvZGljdD4KKzwvcGxpc3Q+
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHAv
ZW4ubHByb2ovSW5mb1BsaXN0LnN0cmluZ3MgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXJBcHAvZW4ubHByb2ovSW5mb1BsaXN0LnN0cmluZ3MKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDc3
YjI4ZmY4Zjg2YTMxNThhNzFjNDkzNGZiZDNhMjQ1NjcxN2Q3YQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcC9lbi5scHJvai9JbmZv
UGxpc3Quc3RyaW5ncwpAQCAtMCwwICsxLDIgQEAKKy8qIExvY2FsaXplZCB2ZXJzaW9ucyBvZiBJ
bmZvLnBsaXN0IGtleXMgKi8KKwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9X
ZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRhMTAy
YWE3OTNmZTFhOWRlNzM1MWQwNzVhOWJjMWM4MDYyODM4MwotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3QK
QEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
KzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0
dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZl
cnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tl
eT4KKwk8c3RyaW5nPmVuPC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4K
Kwk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJZGVu
dGlmaWVyPC9rZXk+CisJPHN0cmluZz5vcmcud2Via2l0LiR7UFJPRFVDVF9OQU1FOnJmYzEwMzRp
ZGVudGlmaWVyfTwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248
L2tleT4KKwk8c3RyaW5nPjYuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwv
a2V5PgorCTxzdHJpbmc+Qk5ETDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25T
dHJpbmc8L2tleT4KKwk8c3RyaW5nPjEuMDwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVTaWduYXR1
cmU8L2tleT4KKwk8c3RyaW5nPj8/Pz88L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlVmVyc2lvbjwv
a2V5PgorCTxzdHJpbmc+MTwvc3RyaW5nPgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL1dlYktpdFRl
c3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyQXBwVGVzdHMvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGRhMTAyYWE3OTNmZTFhOWRlNzM1MWQwNzVhOWJjMWM4MDYyODM4MwotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFw
cFRlc3RzL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0CkBAIC0wLDAgKzEsMjIg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxp
c3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxl
LmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgor
PGRpY3Q+CisJPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+CisJPHN0cmluZz5l
bjwvc3RyaW5nPgorCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+CisJPHN0cmluZz4ke0VY
RUNVVEFCTEVfTkFNRX08L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5Pgor
CTxzdHJpbmc+b3JnLndlYmtpdC4ke1BST0RVQ1RfTkFNRTpyZmMxMDM0aWRlbnRpZmllcn08L3N0
cmluZz4KKwk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+CisJPHN0cmlu
Zz42LjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KKwk8c3RyaW5n
PkJOREw8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+CisJ
PHN0cmluZz4xLjA8L3N0cmluZz4KKwk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+CisJPHN0
cmluZz4/Pz8/PC9zdHJpbmc+CisJPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KKwk8c3RyaW5n
PjE8L3N0cmluZz4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVz
dHMubSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL1dl
YktpdFRlc3RSdW5uZXJBcHBUZXN0cy5tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmMjhiY2RjOGVmNThhZWYyOTdk
M2JjZmEyMjU4ZjkxZmJiMjU2NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMu
bQpAQCAtMCwwICsxLDM0IEBACisvLworLy8gIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy5tCisv
LyAgV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzCisvLworLy8gIENyZWF0ZWQgYnkgRGF2aWQgRmFy
bGVyIG9uIDEvMjIvMTQuCisvLworLy8KKworI2ltcG9ydCA8WENUZXN0L1hDVGVzdC5oPgorCitA
aW50ZXJmYWNlIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cyA6IFhDVGVzdENhc2UKKworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzCisKKy0gKHZvaWQpc2V0
VXAKK3sKKyAgICBbc3VwZXIgc2V0VXBdOworICAgIC8vIFB1dCBzZXR1cCBjb2RlIGhlcmUuIFRo
aXMgbWV0aG9kIGlzIGNhbGxlZCBiZWZvcmUgdGhlIGludm9jYXRpb24gb2YgZWFjaCB0ZXN0IG1l
dGhvZCBpbiB0aGUgY2xhc3MuCit9CisKKy0gKHZvaWQpdGVhckRvd24KK3sKKyAgICAvLyBQdXQg
dGVhcmRvd24gY29kZSBoZXJlLiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGludm9j
YXRpb24gb2YgZWFjaCB0ZXN0IG1ldGhvZCBpbiB0aGUgY2xhc3MuCisgICAgW3N1cGVyIHRlYXJE
b3duXTsKK30KKworLSAodm9pZCl0ZXN0RXhhbXBsZQoreworICAgIFhDVEZhaWwoQCJObyBpbXBs
ZW1lbnRhdGlvbiBmb3IgXCIlc1wiIiwgX19QUkVUVFlfRlVOQ1RJT05fXyk7Cit9CisKK0BlbmQK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRl
c3RzL2VuLmxwcm9qL0luZm9QbGlzdC5zdHJpbmdzIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9X
ZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMvZW4ubHByb2ovSW5mb1BsaXN0LnN0cmluZ3MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDc3YjI4ZmY4Zjg2YTMxNThhNzFjNDkzNGZiZDNhMjQ1NjcxN2Q3YQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3Rz
L2VuLmxwcm9qL0luZm9QbGlzdC5zdHJpbmdzCkBAIC0wLDAgKzEsMiBAQAorLyogTG9jYWxpemVk
IHZlcnNpb25zIG9mIEluZm8ucGxpc3Qga2V5cyAqLworCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJQcmVmaXguaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvV2ViS2l0VGVzdFJ1bm5lclByZWZpeC5oCmluZGV4IGQ4MzE0M2I5MmZmMzYyZGU2NjZm
OTRlNWUxMWFhMzE5YjY1ZGUzZjguLmRjOTU4YzEwZTE5ODJlZDM0NjQ5YWE2NzA3NWM4ZDFlZTgz
MmM1NGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5l
clByZWZpeC5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lclBy
ZWZpeC5oCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2lmZGVmIF9fT0JKQ19fCi0jaW5jbHVk
ZSA8Q29jb2EvQ29jb2EuaD4KKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2Vu
ZGlmCiAKICNpZiBkZWZpbmVkKEJVSUxESU5HX0dUS19fKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jZy9UZXN0SW52b2NhdGlvbkNHLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY2cvVGVzdEludm9jYXRpb25DRy5jcHAKaW5kZXggYjhjZmE5MDQwMTZmMDk3YzgyNGQy
ODlhNzYzMzVlMDRmN2E4YTQ5YS4uNzMwNDVlOTdhYzVmYTIzOTE1OGQzN2EyMzdkYWY4YjQzYmM2
Y2Q0NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jZy9UZXN0SW52b2NhdGlv
bkNHLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NnL1Rlc3RJbnZvY2F0aW9uQ0cu
Y3BwCkBAIC0zNSwxMCArMzUsMTUgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRG
T1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKICNpbmNsdWRlIDxMYXVuY2hTZXJ2aWNlcy9VVENv
cmVUeXBlcy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisvLyBGSVhNRTogZ2V0IGtV
VFR5cGVQTkcgZnJvbSBNb2JpbGVDb3JlU2VydmljZXMgb24gaU9TCitzdGF0aWMgY29uc3QgQ0ZT
dHJpbmdSZWYga1VUVHlwZVBORyA9IENGU1RSKCJwdWJsaWMucG5nIik7CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdUUiB7CiAKIGVudW0gRmxpcEdyYXBoaWNzQ29udGV4dE9yTm90IHsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaU9TLnhjY29uZmlnIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9pT1MueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTc3YjMxOTg5YzVlMWZhZGE2ZDUwNjNh
Yzc0NjZiNDVmMDZjMGEyMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvaU9TLnhjY29uZmlnCkBAIC0wLDAgKzEgQEAKKyNpbmNsdWRlICI8REVWRUxPUEVSX0RJUj4v
QXBwbGVJbnRlcm5hbC9YY29kZUNvbmZpZy9Bc3BlbkZhbWlseS54Y2NvbmZpZyIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZmU0MDcwNDNlMzU2MzU0N2I1ODVmYmVjMTk3MWI3MzZiZDI2ZDZmCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCkBA
IC0wLDAgKzEsMjI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCisKKyNp
bXBvcnQgPFdlYktpdDIvV0tJbWFnZUNHLmg+CisjaW1wb3J0IDxXZWJLaXQyL1dLVmlld1ByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdDIvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKworQGludGVyZmFjZSBXZWJLaXRUZXN0UnVubmVyV2luZG93IDog
VUlXaW5kb3cgeworICAgIFdUUjo6UGxhdGZvcm1XZWJWaWV3KiBfcGxhdGZvcm1XZWJWaWV3Owor
ICAgIENHUG9pbnQgX2Zha2VPcmlnaW47Cit9CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWdu
KSBXVFI6OlBsYXRmb3JtV2ViVmlldyogcGxhdGZvcm1XZWJWaWV3OworQGVuZAorCitAaW50ZXJm
YWNlIFRlc3RSdW5uZXJXS1ZpZXcgOiBXS1ZpZXcgeworICAgIEJPT0wgX3VzZVRpbGVkRHJhd2lu
ZzsKK30KKworLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdL
Q29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdy
b3VwUmVmIHJlbGF0ZWRUb1BhZ2U6KFdLUGFnZVJlZilyZWxhdGVkUGFnZSB1c2VUaWxlZERyYXdp
bmc6KEJPT0wpdXNlVGlsZWREcmF3aW5nOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWdu
KSBCT09MIHVzZVRpbGVkRHJhd2luZzsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRlc3RSdW5u
ZXJXS1ZpZXcKKworQHN5bnRoZXNpemUgdXNlVGlsZWREcmF3aW5nID0gX3VzZVRpbGVkRHJhd2lu
ZzsKKworLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIGNvbnRleHRSZWY6KFdLQ29u
dGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFJlZjooV0tQYWdlR3JvdXBSZWYpcGFnZUdyb3Vw
UmVmIHJlbGF0ZWRUb1BhZ2U6KFdLUGFnZVJlZilyZWxhdGVkUGFnZSB1c2VUaWxlZERyYXdpbmc6
KEJPT0wpdXNlVGlsZWREcmF3aW5nCit7CisgICAgX3VzZVRpbGVkRHJhd2luZyA9IHVzZVRpbGVk
RHJhd2luZzsKKyAgICByZXR1cm4gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29udGV4dFJl
Zjpjb250ZXh0UmVmIHBhZ2VHcm91cFJlZjpwYWdlR3JvdXBSZWZdOworfQorCistIChCT09MKV9z
aG91bGRVc2VUaWxlZERyYXdpbmdBcmVhCit7CisgICAgcmV0dXJuIF91c2VUaWxlZERyYXdpbmc7
Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cKK0Bz
eW50aGVzaXplIHBsYXRmb3JtV2ViVmlldyA9IF9wbGF0Zm9ybVdlYlZpZXc7CisKKy0gKEJPT0wp
aXNLZXlXaW5kb3cKK3sKKyAgICByZXR1cm4gX3BsYXRmb3JtV2ViVmlldyA/IF9wbGF0Zm9ybVdl
YlZpZXctPndpbmRvd0lzS2V5KCkgOiBZRVM7Cit9CisKKy0gKHZvaWQpc2V0RnJhbWVPcmlnaW46
KENHUG9pbnQpcG9pbnQKK3sKKyAgICBfZmFrZU9yaWdpbiA9IHBvaW50OworfQorCisvLyBGSVhN
RTogdGhlc2UgZnJhbWUgZ3lyYXRpb25zIGNhdXNlIHRoZSB3aW5kb3cgdG8gZ28gaGFsZiBvZmZz
Y3JlZW4uCistICh2b2lkKXNldEZyYW1lOihDR1JlY3Qpd2luZG93RnJhbWUKK3sKKyAgICBDR1Jl
Y3QgY3VycmVudEZyYW1lID0gW3N1cGVyIGZyYW1lXTsKKworICAgIF9mYWtlT3JpZ2luID0gd2lu
ZG93RnJhbWUub3JpZ2luOworCisgICAgW3N1cGVyIHNldEZyYW1lOkNHUmVjdE1ha2UoY3VycmVu
dEZyYW1lLm9yaWdpbi54LCBjdXJyZW50RnJhbWUub3JpZ2luLnksIHdpbmRvd0ZyYW1lLnNpemUu
d2lkdGgsIHdpbmRvd0ZyYW1lLnNpemUuaGVpZ2h0KV07Cit9CisKKy0gKENHUmVjdClmcmFtZVJl
c3BlY3RpbmdGYWtlT3JpZ2luCit7CisgICAgQ0dSZWN0IGN1cnJlbnRGcmFtZSA9IFtzZWxmIGZy
YW1lXTsKKyAgICByZXR1cm4gQ0dSZWN0TWFrZShfZmFrZU9yaWdpbi54LCBfZmFrZU9yaWdpbi55
LCBjdXJyZW50RnJhbWUuc2l6ZS53aWR0aCwgY3VycmVudEZyYW1lLnNpemUuaGVpZ2h0KTsKK30K
KworLSAoQ0dGbG9hdCliYWNraW5nU2NhbGVGYWN0b3IKK3sKKyAgICByZXR1cm4gMTsKK30KKwor
QGVuZAorCitAaW50ZXJmYWNlIFVJV2luZG93IChEZXRhaWxzKQorCistICh2b2lkKV9zZXRXaW5k
b3dSZXNvbHV0aW9uOihDR0Zsb2F0KXJlc29sdXRpb24gZGlzcGxheUlmQ2hhbmdlZDooQk9PTClk
aXNwbGF5SWZDaGFuZ2VkOworCitAZW5kCisKK25hbWVzcGFjZSBXVFIgeworCitQbGF0Zm9ybVdl
YlZpZXc6OlBsYXRmb3JtV2ViVmlldyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3Jv
dXBSZWYgcGFnZUdyb3VwUmVmLCBXS1BhZ2VSZWYgcmVsYXRlZFBhZ2UsIFdLRGljdGlvbmFyeVJl
ZiBvcHRpb25zKQorICAgIDogbV93aW5kb3dJc0tleSh0cnVlKQorICAgICwgbV9vcHRpb25zKG9w
dGlvbnMpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVzZVRpbGVkRHJhd2luZ0tl
eShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGlsZWREcmF3aW5nIikp
OworICAgIFdLVHlwZVJlZiB1c2VUaWxlZERyYXdpbmdWYWx1ZSA9IG9wdGlvbnMgPyBXS0RpY3Rp
b25hcnlHZXRJdGVtRm9yS2V5KG9wdGlvbnMsIHVzZVRpbGVkRHJhd2luZ0tleS5nZXQoKSkgOiBO
VUxMOworICAgIGJvb2wgdXNlVGlsZWREcmF3aW5nID0gdXNlVGlsZWREcmF3aW5nVmFsdWUgJiYg
V0tCb29sZWFuR2V0VmFsdWUoc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPih1c2VUaWxlZERyYXdp
bmdWYWx1ZSkpOworCisgICAgQ0dSZWN0IHJlY3QgPSBDR1JlY3RNYWtlKDAsIDAsIFRlc3RDb250
cm9sbGVyOjp2aWV3V2lkdGgsIFRlc3RDb250cm9sbGVyOjp2aWV3SGVpZ2h0KTsKKyAgICBtX3Zp
ZXcgPSBbW1Rlc3RSdW5uZXJXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6cmVjdCBjb250ZXh0
UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOnBhZ2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOnJl
bGF0ZWRQYWdlIHVzZVRpbGVkRHJhd2luZzp1c2VUaWxlZERyYXdpbmddOworCisgICAgV0tQcmVm
ZXJlbmNlc1NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUoV0tQYWdlR3JvdXBHZXRQcmVmZXJl
bmNlcyhwYWdlR3JvdXBSZWYpLCBZRVMpOworICAgIFdLUHJlZmVyZW5jZXNTZXRDb21wb3NpdGlu
Z1JlcGFpbnRDb3VudGVyc1Zpc2libGUoV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyhwYWdlR3Jv
dXBSZWYpLCBZRVMpOworCisgICAgQ0dSZWN0IHdpbmRvd1JlY3QgPSByZWN0OworICAgIG1fd2lu
ZG93ID0gW1tXZWJLaXRUZXN0UnVubmVyV2luZG93IGFsbG9jXSBpbml0V2l0aEZyYW1lOndpbmRv
d1JlY3RdOworICAgIG1fd2luZG93LnBsYXRmb3JtV2ViVmlldyA9IHRoaXM7CisKKyAgICBbbV93
aW5kb3cgYWRkU3VidmlldzptX3ZpZXddOworICAgIFttX3dpbmRvdyBtYWtlS2V5QW5kVmlzaWJs
ZV07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCB3aWR0aCwg
dW5zaWduZWQgaGVpZ2h0KQoreworICAgIENHUmVjdCB3aW5kb3dGcmFtZSA9IFttX3dpbmRvdyBm
cmFtZV07CisgICAgd2luZG93RnJhbWUuc2l6ZS53aWR0aCA9IHdpZHRoOworICAgIHdpbmRvd0Zy
YW1lLnNpemUuaGVpZ2h0ID0gaGVpZ2h0OworICAgIFttX3dpbmRvdyBzZXRGcmFtZTp3aW5kb3dG
cmFtZV07CisgICAgW21fdmlldyBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBoZWln
aHQpXTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKK3sKKyAgICBt
X3dpbmRvdy5wbGF0Zm9ybVdlYlZpZXcgPSAwOworLy8gICAgW21fd2luZG93IGNsb3NlXTsKKyAg
ICBbbV92aWV3IHJlbGVhc2VdOworICAgIFttX3dpbmRvdyByZWxlYXNlXTsKK30KKworV0tQYWdl
UmVmIFBsYXRmb3JtV2ViVmlldzo6cGFnZSgpCit7CisgICAgcmV0dXJuIFttX3ZpZXcgcGFnZVJl
Zl07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCit7CisvLyAgICBbbV93aW5k
b3cgbWFrZUZpcnN0UmVzcG9uZGVyOm1fdmlld107IC8vIEZJWE1FOiBpT1MgZXF1aXZhbGVudD8K
KyAgICBzZXRXaW5kb3dJc0tleSh0cnVlKTsKK30KKworV0tSZWN0IFBsYXRmb3JtV2ViVmlldzo6
d2luZG93RnJhbWUoKQoreworICAgIENHUmVjdCBmcmFtZSA9IFttX3dpbmRvdyBmcmFtZVJlc3Bl
Y3RpbmdGYWtlT3JpZ2luXTsKKworICAgIFdLUmVjdCB3a0ZyYW1lOworICAgIHdrRnJhbWUub3Jp
Z2luLnggPSBmcmFtZS5vcmlnaW4ueDsKKyAgICB3a0ZyYW1lLm9yaWdpbi55ID0gZnJhbWUub3Jp
Z2luLnk7CisgICAgd2tGcmFtZS5zaXplLndpZHRoID0gZnJhbWUuc2l6ZS53aWR0aDsKKyAgICB3
a0ZyYW1lLnNpemUuaGVpZ2h0ID0gZnJhbWUuc2l6ZS5oZWlnaHQ7CisgICAgcmV0dXJuIHdrRnJh
bWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFtZShXS1JlY3QgZnJh
bWUpCit7CisgICAgW21fd2luZG93IHNldEZyYW1lOkNHUmVjdE1ha2UoZnJhbWUub3JpZ2luLngs
IGZyYW1lLm9yaWdpbi55LCBmcmFtZS5zaXplLndpZHRoLCBmcmFtZS5zaXplLmhlaWdodCldOwor
fQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6ZGlkSW5pdGlhbGl6ZUNsaWVudHMoKQoreworICAg
IC8vIFNldCBhIHRlbXBvcmFyeSAxeDEgd2luZG93IGZyYW1lIHRvIGZvcmNlIGEgV2luZG93QW5k
Vmlld0ZyYW1lc0NoYW5nZWQgbm90aWZpY2F0aW9uLiA8cmRhcjovL3Byb2JsZW0vMTMzODAxNDU+
CisgICAgV0tSZWN0IHdrRnJhbWUgPSB3aW5kb3dGcmFtZSgpOworICAgIFttX3dpbmRvdyBzZXRG
cmFtZTpDR1JlY3RNYWtlKDAsIDAsIDEsIDEpXTsKKyAgICBzZXRXaW5kb3dGcmFtZSh3a0ZyYW1l
KTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZENocm9tZUlucHV0RmllbGQoKQorewor
ICAgIFVJVGV4dEZpZWxkKiB0ZXh0RmllbGQgPSBbW1VJVGV4dEZpZWxkIGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMTAwLCAyMCldOworICAgIHRleHRGaWVsZC50YWcgPSAx
OworICAgIFttX3dpbmRvdyBhZGRTdWJ2aWV3OnRleHRGaWVsZF07CisgICAgW3RleHRGaWVsZCBy
ZWxlYXNlXTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlbW92ZUNocm9tZUlucHV0Rmll
bGQoKQoreworICAgIFVJVGV4dEZpZWxkKiB0ZXh0RmllbGQgPSAoVUlUZXh0RmllbGQqKVttX3dp
bmRvdyB2aWV3V2l0aFRhZzoxXTsKKyAgICBpZiAodGV4dEZpZWxkKSB7CisgICAgICAgIFt0ZXh0
RmllbGQgcmVtb3ZlRnJvbVN1cGVydmlld107CisgICAgICAgIG1ha2VXZWJWaWV3Rmlyc3RSZXNw
b25kZXIoKTsKKyAgICAgICAgW3RleHRGaWVsZCByZWxlYXNlXTsKKyAgICB9Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjptYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCkKK3sKKy8vICAgIFtt
X3dpbmRvdyBtYWtlRmlyc3RSZXNwb25kZXI6bV92aWV3XTsKK30KKworV0tSZXRhaW5QdHI8V0tJ
bWFnZVJlZj4gUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKK3sKKyAgICBy
ZXR1cm4gMDsgLy8gRklYTUUgZm9yIGlPUz8KK30KKworYm9vbCBQbGF0Zm9ybVdlYlZpZXc6OnZp
ZXdTdXBwb3J0c09wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpIGNvbnN0Cit7CisgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHVzZVRpbGVkRHJhd2luZ0tleShBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGlsZWREcmF3aW5nIikpOworICAgIFdLVHlwZVJl
ZiB1c2VUaWxlZERyYXdpbmdWYWx1ZSA9IFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkob3B0aW9u
cywgdXNlVGlsZWREcmF3aW5nS2V5LmdldCgpKTsKKyAgICBib29sIHVzZVRpbGVkRHJhd2luZyA9
IHVzZVRpbGVkRHJhd2luZ1ZhbHVlICYmIFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0PFdL
Qm9vbGVhblJlZj4odXNlVGlsZWREcmF3aW5nVmFsdWUpKTsKKworICAgIHJldHVybiB1c2VUaWxl
ZERyYXdpbmcgPT0gWyhUZXN0UnVubmVyV0tWaWV3ICopbV92aWV3IHVzZVRpbGVkRHJhd2luZ107
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lv
cy9UZXN0Q29udHJvbGxlcklPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjVjOWVmM2FjYzE0MGI4OTM0NzM0
OTc5ODcwMTMwZDY1NGJjMzRlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVGVzdENvbnRyb2xsZXIuaCIKKworI2lt
cG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQyL1dLU3RyaW5nQ0YuaD4K
KyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBU
ZXN0Q29udHJvbGxlcjo6bm90aWZ5RG9uZSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtRGVzdHJveSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemVJbmpl
Y3RlZEJ1bmRsZVBhdGgoKQoreworICAgIE5TU3RyaW5nICpuc0J1bmRsZVBhdGggPSBbW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25l
bnQ6QCJXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuYnVuZGxlIl07CisgICAgbV9pbmpl
Y3RlZEJ1bmRsZVBhdGguYWRvcHQoV0tTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoKENGU3RyaW5n
UmVmKW5zQnVuZGxlUGF0aCkpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXpl
VGVzdFBsdWdpbkRpcmVjdG9yeSgpCit7CisgICAgbV90ZXN0UGx1Z2luRGlyZWN0b3J5LmFkb3B0
KFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbW05TQnVuZGxlIG1haW5C
dW5kbGVdIGJ1bmRsZVBhdGhdKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3Jt
UnVuVW50aWwoYm9vbCYgZG9uZSwgZG91YmxlIHRpbWVvdXQpCit7CisgICAgTlNEYXRlICplbmRE
YXRlID0gKHRpbWVvdXQgPiAwKSA/IFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZU5v
dzp0aW1lb3V0XSA6IFtOU0RhdGUgZGlzdGFudEZ1dHVyZV07CisKKyAgICB3aGlsZSAoIWRvbmUg
JiYgW2VuZERhdGUgY29tcGFyZTpbTlNEYXRlIGRhdGVdXSA9PSBOU09yZGVyZWREZXNjZW5kaW5n
KQorICAgICAgICBbW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0gcnVuTW9kZTpOU0RlZmF1bHRS
dW5Mb29wTW9kZSBiZWZvcmVEYXRlOmVuZERhdGVdOworfQorCit2b2lkIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxl
cjo6cnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3KiB2aWV3KQoreworICAgIFVJV2luZG93ICp3aW5k
b3cgPSBbdmlldy0+cGxhdGZvcm1WaWV3KCkgd2luZG93XTsKKyAgICBpZiAoIXdpbmRvdykKKyAg
ICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBob3cgdG8gcGVyZm9ybSBvbiBpT1M/CisvLyAg
ICBbW1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIHJ1bk1vZGFsRm9yV2luZG93Ondp
bmRvd107Cit9CisKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQ
YXRoRm9yVGVzdGluZygpCit7CisgICAgcmV0dXJuIFtbQCJ+L0xpYnJhcnkvQXBwbGljYXRpb24g
U3VwcG9ydC9XZWJLaXRUZXN0UnVubmVyIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBV
VEY4U3RyaW5nXTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGlkZGVuKGJvb2wpIHsK
KyAgICAvLyBGSVhNRTogaW1wbGVtZW50IGZvciBpT1MKK30KKworfSAvLyBuYW1lc3BhY2UgV1RS
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9XZWJBcmNoaXZlRHVtcFN1
cHBvcnRJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9XZWJBcmNoaXZlRHVtcFN1
cHBvcnRJT1MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZiMGI0NjBlODM3MTcwMmVmMjc0NDM5Y2VmOGY5OTdk
ZjE0NmE2MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1dl
YkFyY2hpdmVEdW1wU3VwcG9ydElPUy5tbQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJBcmNoaXZlRHVtcFN1cHBvcnQuaCIKKwor
I2lmIFBMQVRGT1JNKElPUykKKworQ0ZVUkxSZXNwb25zZVJlZiBjcmVhdGVDRlVSTFJlc3BvbnNl
RnJvbVJlc3BvbnNlRGF0YShDRkRhdGFSZWYgLypyZXNwb25zZURhdGEqLykKK3sKKyAgICByZXR1
cm4gMDsKK30KKworQ0ZBcnJheVJlZiBzdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlcygpCit7Cisg
ICAgcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9tYWluSU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvbWFpbklPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOGY0ODdkNmIyNjMzNDQ5MjExZDVhNzI1
OTU5MzRmZWY4ZTg3Y2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvbWFpbklPUy5tbQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisKKyNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCisKKworc3RhdGljIGludCBf
YXJnYzsKK3N0YXRpYyBjb25zdCBjaGFyICoqX2FyZ3Y7CisKK0BpbnRlcmZhY2UgV2ViS2l0VGVz
dFJ1bm5lckFwcCA6IFVJQXBwbGljYXRpb24KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYktp
dFRlc3RSdW5uZXJBcHAKKworLSAodm9pZClfcnVuVGVzdENvbnRyb2xsZXIKK3sKKyAgICBXVFI6
OlRlc3RDb250cm9sbGVyIGNvbnRyb2xsZXIoX2FyZ2MsIF9hcmd2KTsKK30KKworLSAodm9pZClh
cHBsaWNhdGlvbkRpZEZpbmlzaExhdW5jaGluZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KK3sKKyAgICBbc2VsZiBwZXJmb3JtU2VsZWN0b3JPbk1haW5UaHJlYWQ6QHNlbGVjdG9yKF9y
dW5UZXN0Q29udHJvbGxlcikgd2l0aE9iamVjdDpuaWwgd2FpdFVudGlsRG9uZTpOT107Cit9CisK
K0BlbmQKKworaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKK3sKKyAgICBf
YXJnYyA9IGFyZ2M7CisgICAgX2FyZ3YgPSBhcmd2OworCisgICAgVUlBcHBsaWNhdGlvbk1haW4o
YXJnYywgKGNoYXIqKilhcmd2LCBOU1N0cmluZ0Zyb21DbGFzcyhbV2ViS2l0VGVzdFJ1bm5lckFw
cCBjbGFzc10pLCBuaWwpOworICAgIHJldHVybiAwOworfQo=
</data>
<flag name="review"
          id="246109"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>