<?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>201596</bug_id>
          
          <creation_ts>2019-09-08 17:37:19 -0700</creation_ts>
          <short_desc>Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html</short_desc>
          <delta_ts>2024-08-13 19:51:15 -0700</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>201546</blocked>
    
    <blocked>278073</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1569040</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-08 17:37:19 -0700</bug_when>
    <thetext>Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html as it is a hack which does not work truly using a private session in WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569046</commentid>
    <comment_count>1</comment_count>
      <attachid>378343</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-08 18:49:12 -0700</bug_when>
    <thetext>Created attachment 378343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569308</commentid>
    <comment_count>2</comment_count>
      <attachid>378343</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-09-09 15:00:43 -0700</bug_when>
    <thetext>Comment on attachment 378343
Patch

Changes to the test case look good. Do we have a suitable reviewer for the TestRunner changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569309</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 15:01:21 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #2)
&gt; Comment on attachment 378343 [details]
&gt; Patch
&gt; 
&gt; Changes to the test case look good. Do we have a suitable reviewer for the
&gt; TestRunner changes?

I asked Alex to take a look.
Thanks for double checking the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569310</commentid>
    <comment_count>4</comment_count>
      <attachid>378343</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-09 15:05:25 -0700</bug_when>
    <thetext>Comment on attachment 378343
Patch

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

&gt; Source/WebKit/UIProcess/API/C/WKFramePolicyListener.cpp:-58
&gt; -        RELEASE_ASSERT_WITH_MESSAGE(sessionID.isEphemeral() || sessionID == PAL::SessionID::defaultSessionID(), &quot;If WebsitePolicies specifies a WebsiteDataStore, the data store&apos;s session must be default or non-persistent.&quot;);

Please remove the corresponding check in the ObjC API.  It&apos;s also no longer needed.

&gt; Tools/DumpRenderTree/TestRunner.cpp:2567
&gt; +    ASSERT(!(m_shouldSwapToEphemeralSessionOnNextNavigation &amp;&amp; m_shouldSwapToDefaultSessionOnNextNavigation));

ditto with comment below.

&gt; Tools/WebKitTestRunner/TestController.cpp:2822
&gt; +                ASSERT(!(shouldSwapToEphemeralSessionOnNextNavigation &amp;&amp; shouldSwapToDefaultSessionOnNextNavigation));

You could just assert that they are unequal.

&gt; Tools/WebKitTestRunner/TestController.cpp:2824
&gt; +                WKRetainPtr&lt;WKWebsiteDataStoreRef&gt; newSession = TestController::websiteDataStore();

There&apos;s no need to retain this.  Just use a plain old WKWebsiteDataStoreRef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569316</commentid>
    <comment_count>5</comment_count>
      <attachid>378343</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 15:36:14 -0700</bug_when>
    <thetext>Comment on attachment 378343
Patch

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

&gt;&gt; Tools/WebKitTestRunner/TestController.cpp:2824
&gt;&gt; +                WKRetainPtr&lt;WKWebsiteDataStoreRef&gt; newSession = TestController::websiteDataStore();
&gt; 
&gt; There&apos;s no need to retain this.  Just use a plain old WKWebsiteDataStoreRef

This is needed for the assignment of WKWebsiteDataStoreCreateNonPersistentDataStore() 2 lines below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569324</commentid>
    <comment_count>6</comment_count>
      <attachid>378413</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 15:51:48 -0700</bug_when>
    <thetext>Created attachment 378413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569338</commentid>
    <comment_count>7</comment_count>
      <attachid>378413</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 16:35:18 -0700</bug_when>
    <thetext>Comment on attachment 378413
Patch

Clearing flags on attachment: 378413

Committed r249675: &lt;https://trac.webkit.org/changeset/249675&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569339</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 16:35:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569340</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-09 16:36:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/55203697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569363</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-09-09 17:32:30 -0700</bug_when>
    <thetext>It appears that this change introduced an API test failure:


    TestWebKitAPI.WebKit.UpdateWebsitePoliciesInvalid
        _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
        _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
        
        /Volumes/Data/slave/mojave-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:1546
        Value of: sawException
          Actual: false
        Expected: true

https://build.webkit.org/builders/Apple%20Mojave%20Release%20WK2%20(Tests)/builds/6506</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569444</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-09 21:51:15 -0700</bug_when>
    <thetext>http://trac.webkit.org/r249705</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569446</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-09 21:56:06 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #11)
&gt; http://trac.webkit.org/r249705

Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378343</attachid>
            <date>2019-09-08 18:49:12 -0700</date>
            <delta_ts>2019-09-09 15:51:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201596-20190908184856.patch</filename>
            <type>text/plain</type>
            <size>30127</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiNjE5OThjNThlY2VhZDdl
Y2ZlMDA0NjFjOWJiYTA3ZDg2MDYzMWMuLjZlZWQ1NGY4MTMyMWMwNDVhZTk5YjJlOTQ0Y2E2OTA5
YWFmYThmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDktMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIHRlc3RSdW5uZXIu
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBSRUNBVEVEKCkgaW4gaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5o
dG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE1
OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxv
dyBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMoKSBDIEFQSSB0byBzd2l0Y2gg
dG8gYSBwZXJzaXN0ZW50IG5vbi1kZWZhdWx0IHNlc3Npb24uCisgICAgICAgIFRoaXMgaXMgaW1w
b3J0YW50IHNpbmNlIFdlYktpdFRlc3RSdW5uZXIgaXMgbm90IHVzaW5nIHRoZSBkZWZhdWx0IHNl
c3Npb24gYW55bW9yZSBhbmQgSSBuZWVkIHRvCisgICAgICAgIGJlIGFibGUgdG8gc3dpdGNoIGl0
IGJhY2sgdG8gaXRzIG5vcm1hbCBzZXNzaW9uIGFmdGVyIGdvaW5nIHRvIGFuIGVwaGVtZXJhbCBv
bmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmNw
cDoKKyAgICAgICAgKHVzZVdpdGhQb2xpY2llcyk6CisKIDIwMTktMDktMDcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXdyaXRlIGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItcHJpdmF0ZS1icm93c2luZy5odHRwcy5odG1sIGFzIGFu
IEFQSSB0ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0Zy
YW1lUG9saWN5TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tG
cmFtZVBvbGljeUxpc3RlbmVyLmNwcAppbmRleCBhODViNWJjZDdjYTVkNjg1MmI2Yjk4MGUwNWFi
Y2RmNWJkNGQ0YzNhLi5iZTkyZDBhMTk5NDIyZjNkOWQwNmRmYjM5N2VhNDRhZjBmN2Y3Yjk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlz
dGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xp
Y3lMaXN0ZW5lci5jcHAKQEAgLTUzLDExICs1Myw2IEBAIHZvaWQgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyVXNlSW5OZXdQcm9jZXNzKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBwb2xpY3lMaXN0ZW5l
CiAKIHN0YXRpYyB2b2lkIHVzZVdpdGhQb2xpY2llcyhXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYg
cG9saWN5TGlzdGVuZXJSZWYsIFdLV2Vic2l0ZVBvbGljaWVzUmVmIHdlYnNpdGVQb2xpY2llcywg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
KQogewotICAgIGlmIChhdXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gdG9JbXBsKHdlYnNpdGVQb2xp
Y2llcyktPndlYnNpdGVEYXRhU3RvcmUoKSkgewotICAgICAgICBhdXRvIHNlc3Npb25JRCA9IHdl
YnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKTsKLSAgICAgICAg
UkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpIHx8IHNl
c3Npb25JRCA9PSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCAiSWYgV2Vic2l0
ZVBvbGljaWVzIHNwZWNpZmllcyBhIFdlYnNpdGVEYXRhU3RvcmUsIHRoZSBkYXRhIHN0b3JlJ3Mg
c2Vzc2lvbiBtdXN0IGJlIGRlZmF1bHQgb3Igbm9uLXBlcnNpc3RlbnQuIik7Ci0gICAgfQotCiAg
ICAgdG9JbXBsKHBvbGljeUxpc3RlbmVyUmVmKS0+dXNlKHRvSW1wbCh3ZWJzaXRlUG9saWNpZXMp
LCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBhNjY2NjE5YzBkNmE5ODUwNjJkODM3
MDAwNzg4NTI0ZWFjMjViZDUuLmI0ZTBiYzMyM2ZiN2JmMzIwMTMwMTZmNDE1MDg3YWNhYzNiMTc4
MjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOCBAQAorMjAxOS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFN0b3AgdXNpbmcgdGVzdFJ1bm5lci5zZXRQcml2YXRlQnJvd3NpbmdFbmFi
bGVkX0RFUFJFQ0FURUQoKSBpbiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJz
aW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTU5NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgdGVzdFJ1bm5lci5zZXRTaG91
bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbigpIC8gdGVzdFJ1bm5lci5z
ZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oKQorICAgICAgICB0
ZXN0IGZ1bmN0aW9ucyB0byBzdXBwb3J0IGR5bmFtaWMgc3dpdGNoaW5nIGJldHdlZW4gZXBoZW1l
cmFsIGFuZCBkZWZhdWx0L3BlcnNpc3RlbnQgc2Vzc2lvbiBpbiBsYXlvdXQgdGVzdHMuIFRoZSBu
ZXcgbWV0aG9kcworICAgICAgICBkbyB0aGUgcmlnaHQgdGhpbmcgZm9yIFdlYktpdDIgYW5kIHRy
dWx5IHN3aXRjaCBzZXNzaW9uLCB1bmxpa2Ugc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBS
RUNBVEVEKCkgd2hpY2ggd2FzIG1lcmVseSBtYWtpbmcKKyAgICAgICAgdGhlIFdlYkNvcmU6OkRv
Y3VtZW50IHRoaW5rIGl0IGNoYW5nZWQgc2Vzc2lvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vz
c2lvbk9uTmV4dE5hdmlnYXRpb25DYWxsYmFjayk6CisgICAgICAgIChzZXRTaG91bGRTd2FwVG9E
ZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb25DYWxsYmFjayk6CisgICAgICAgIChUZXN0UnVu
bmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6d2lsbE5hdmlnYXRl
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0
UnVubmVyOjpzZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbik6
CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxl
Z2F0ZS5tbToKKyAgICAgICAgKC1bRnJhbWVMb2FkRGVsZWdhdGUgd2ViVmlldzpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6c2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24p
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lv
bk9uTmV4dE5hdmlnYXRpb24pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkU3dhcFRvRXBo
ZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6c2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdU
Ujo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0
ZWRCdW5kbGUpOgorCiAyMDE5LTA5LTA3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV3cml0ZSBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29y
a2VyLXByaXZhdGUtYnJvd3NpbmcuaHR0cHMuaHRtbCBhcyBhbiBBUEkgdGVzdApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRGVmYXVsdFBvbGljeURlbGVnYXRlLm0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9EZWZhdWx0UG9saWN5RGVsZWdhdGUubQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDY4YzllNWY5YmUxMjk4MWU4MTFjNWQyNGQzNjlkODQ0M2ZkOTYzNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9EZWZhdWx0UG9saWN5RGVsZWdhdGUubQorKysgL2Rldi9udWxsCkBAIC0xLDM0ICsw
LDAgQEAKLS8vCi0vLyAgRGVmYXVsdFBvbGljeURlbGVnYXRlLm0KLS8vICBEdW1wUmVuZGVyVHJl
ZQotLy8KLS8vICBDcmVhdGVkIGJ5IEFuZGVycyBDYXJsc3NvbiBvbiA3LzkvMTMuCi0vLwotLy8K
LQotI2ltcG9ydCAiRGVmYXVsdFBvbGljeURlbGVnYXRlLmgiCi0KLSNpbXBvcnQgPFdlYktpdC9X
ZWJQb2xpY3lEZWxlZ2F0ZVByaXZhdGUuaD4KLSNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0
ZS5oPgotCi1AaW1wbGVtZW50YXRpb24gRGVmYXVsdFBvbGljeURlbGVnYXRlCi0KLS0gKHZvaWQp
d2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjooTlNEaWN0aW9uYXJ5ICopYWN0aW9uSW5mb3JtYXRpb24gcmVxdWVzdDooTlNVUkxSZXF1ZXN0
ICopcmVxdWVzdCBmcmFtZTooV2ViRnJhbWUgKilmcmFtZSBkZWNpc2lvbkxpc3RlbmVyOihpZCA8
V2ViUG9saWN5RGVjaXNpb25MaXN0ZW5lcj4pbGlzdGVuZXIKLXsKLSAgICBpZiAoW1dlYlZpZXcg
X2NhbkhhbmRsZVJlcXVlc3Q6cmVxdWVzdF0pIHsKLSAgICAgICAgW2xpc3RlbmVyIHVzZV07Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBXZWJOYXZpZ2F0aW9uVHlwZSBuYXZUeXBlID0g
KFdlYk5hdmlnYXRpb25UeXBlKVtbYWN0aW9uSW5mb3JtYXRpb24gb2JqZWN0Rm9yS2V5OldlYkFj
dGlvbk5hdmlnYXRpb25UeXBlS2V5XSBpbnRWYWx1ZV07Ci0gICAgaWYgKG5hdlR5cGUgPT0gV2Vi
TmF2aWdhdGlvblR5cGVQbHVnSW5SZXF1ZXN0KSB7Ci0gICAgICAgIFtsaXN0ZW5lciB1c2VdOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gVGhlIGRlZmF1bHQgV2ViS2l0IHBvbGlj
eSBkZWxlZ2F0ZSBwYXNzZXMgdGhlIFVSTCBhbG9uZyB0byAtW05TV29ya3NwYWNlIG9wZW5VUkw6
XSBoZXJlLAotICAgIC8vIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGRvIHRoYXQgc28gd2UganVzdCBp
Z25vcmUgdGhlIG5hdmlnYXRpb24gY29tcGxldGVseS4KLSAgICBbbGlzdGVuZXIgaWdub3JlXTsK
LX0KLQotQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRGVmYXVsdFBvbGlj
eURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRGVmYXVsdFBvbGljeURlbGVnYXRl
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMxODBlMjlhMTJiNzdkYmQxZDYwNzJlMDllOWQ5NjQ1NjUzNzc2YTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EZWZhdWx0UG9saWN5RGVs
ZWdhdGUubW0KQEAgLTAsMCArMSw0MSBAQAorLy8KKy8vICBEZWZhdWx0UG9saWN5RGVsZWdhdGUu
bQorLy8gIER1bXBSZW5kZXJUcmVlCisvLworLy8gIENyZWF0ZWQgYnkgQW5kZXJzIENhcmxzc29u
IG9uIDcvOS8xMy4KKy8vCisvLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRlZmF1
bHRQb2xpY3lEZWxlZ2F0ZS5oIgorCisjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZS5oIgorI2ltcG9y
dCAiVGVzdFJ1bm5lci5oIgorI2ltcG9ydCA8V2ViS2l0L1dlYlBvbGljeURlbGVnYXRlUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdQcml2YXRlLmg+CisKK0BpbXBsZW1lbnRhdGlv
biBEZWZhdWx0UG9saWN5RGVsZWdhdGUKKworLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2Vi
VmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOihOU0RpY3Rpb25hcnkgKilhY3Rp
b25JbmZvcm1hdGlvbiByZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGZyYW1lOihXZWJG
cmFtZSAqKWZyYW1lIGRlY2lzaW9uTGlzdGVuZXI6KGlkIDxXZWJQb2xpY3lEZWNpc2lvbkxpc3Rl
bmVyPilsaXN0ZW5lcgoreworICAgIGlmIChbV2ViVmlldyBfY2FuSGFuZGxlUmVxdWVzdDpyZXF1
ZXN0XSkgeworICAgICAgICBpZiAoIVtmcmFtZSBmcmFtZUVsZW1lbnRdKQorICAgICAgICAgICAg
Z1Rlc3RSdW5uZXItPndpbGxOYXZpZ2F0ZSgpOworICAgICAgICBbbGlzdGVuZXIgdXNlXTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFdlYk5hdmlnYXRpb25UeXBlIG5hdlR5cGUgPSAo
V2ViTmF2aWdhdGlvblR5cGUpW1thY3Rpb25JbmZvcm1hdGlvbiBvYmplY3RGb3JLZXk6V2ViQWN0
aW9uTmF2aWdhdGlvblR5cGVLZXldIGludFZhbHVlXTsKKyAgICBpZiAoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KG5hdlR5cGUpID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPihXZWJOYXZpZ2F0aW9uVHlw
ZVBsdWdJblJlcXVlc3QpKSB7CisgICAgICAgIGlmICghW2ZyYW1lIGZyYW1lRWxlbWVudF0pCisg
ICAgICAgICAgICBnVGVzdFJ1bm5lci0+d2lsbE5hdmlnYXRlKCk7CisgICAgICAgIFtsaXN0ZW5l
ciB1c2VdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gVGhlIGRlZmF1bHQgV2Vi
S2l0IHBvbGljeSBkZWxlZ2F0ZSBwYXNzZXMgdGhlIFVSTCBhbG9uZyB0byAtW05TV29ya3NwYWNl
IG9wZW5VUkw6XSBoZXJlLAorICAgIC8vIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGRvIHRoYXQgc28g
d2UganVzdCBpZ25vcmUgdGhlIG5hdmlnYXRpb24gY29tcGxldGVseS4KKyAgICBbbGlzdGVuZXIg
aWdub3JlXTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVt
cFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTJiYTNj
YjZiYWIzZTI5MGEwMzA5NTE3OTY2YjFlZjU2YmU1ZjNjMC4uNGQ4ZTIzOWRjOTc4MmMzNjE4YjFj
ZDkyMmQyNzgyMDU2M2YzOTc3NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVt
cFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02Niw3
ICs2Niw3IEBACiAJCTFBMjE1QTgyMTFGMjYwOUMwMDhBRDBGNSAvKiBQbHVnaW5UZXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIxNUE4MDExRjI2
MDlDMDA4QUQwRjUgLyogUGx1Z2luVGVzdC5oICovOyB9OwogCQkxQTIxNUJFNzExRjI3NjU4MDA4
QUQwRjUgLyogRG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjE1QTc1MTFGMjYwNzIwMDhBRDBGNSAv
KiBEb2N1bWVudE9wZW5JbkRlc3Ryb3lTdHJlYW0uY3BwICovOyB9OwogCQkxQTI0QkFBOTEyMDcz
NEVFMDBGQkIwNTkgLyogTlBSdW50aW1lT2JqZWN0RnJvbURlc3Ryb3llZFBsdWdpbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTI0QkFBODEyMDcz
NEVFMDBGQkIwNTkgLyogTlBSdW50aW1lT2JqZWN0RnJvbURlc3Ryb3llZFBsdWdpbi5jcHAgKi87
IH07Ci0JCTFBMkZCODRGMTc4QzgwOTMwMDU5RkQ5NiAvKiBEZWZhdWx0UG9saWN5RGVsZWdhdGUu
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkZCODRE
MTc4QzgwOTMwMDU5RkQ5NiAvKiBEZWZhdWx0UG9saWN5RGVsZWdhdGUubSAqLzsgfTsKKwkJMUEy
RkI4NEYxNzhDODA5MzAwNTlGRDk2IC8qIERlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMkZCODREMTc4QzgwOTMw
MDU5RkQ5NiAvKiBEZWZhdWx0UG9saWN5RGVsZWdhdGUubW0gKi87IH07CiAJCTFBMzFFQjM4MTM0
NjZBQzEwMDAxNzM3MiAvKiBDb252ZXJ0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzMUVCMzcxMzQ2NkFDMTAwMDE3MzcyIC8qIENvbnZl
cnRQb2ludC5jcHAgKi87IH07CiAJCTFBM0UyOEFBMTMxMUQ3M0IwMDUwMTM0OSAvKiBHZXRVUkxX
aXRoSmF2YVNjcmlwdFVSTERlc3Ryb3lpbmdQbHVnaW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzRTI4QTkxMzExRDczQjAwNTAxMzQ5IC8qIEdl
dFVSTFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdpbi5jcHAgKi87IH07CiAJCTFBNEND
RDRGMTcxMzc1QTMwMDk4MTA0MCAvKiBUb1N0cmluZ0FuZFZhbHVlT2ZPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0Q0NENEUxNzEzNzVB
MzAwOTgxMDQwIC8qIFRvU3RyaW5nQW5kVmFsdWVPZk9iamVjdC5jcHAgKi87IH07CkBAIC0yNjgs
NyArMjY4LDcgQEAKIAkJMUEyMTVBODAxMUYyNjA5QzAwOEFEMEY1IC8qIFBsdWdpblRlc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luVGVzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTI0QkFBODEyMDczNEVFMDBGQkIwNTkgLyogTlBSdW50aW1l
T2JqZWN0RnJvbURlc3Ryb3llZFBsdWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOUFJ1bnRpbWVPYmplY3RGcm9tRGVzdHJveWVkUGx1Z2luLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyRkI4NEMxNzhDODA5MjAwNTlGRDk2IC8qIERlZmF1
bHRQb2xpY3lEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWZh
dWx0UG9saWN5RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUEyRkI4
NEQxNzhDODA5MzAwNTlGRDk2IC8qIERlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLm9iamM7IHBhdGggPSBEZWZhdWx0UG9saWN5RGVsZWdhdGUubTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUEyRkI4NEQxNzhDODA5MzAwNTlGRDk2IC8qIERlZmF1
bHRQb2xpY3lEZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUEzMUVCMzcxMzQ2NkFDMTAwMDE3MzcyIC8qIENvbnZlcnRQb2ludC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb252ZXJ0UG9pbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQTNFMjhBOTEzMTFENzNCMDA1MDEzNDkgLyogR2V0VVJMV2l0
aEphdmFTY3JpcHRVUkxEZXN0cm95aW5nUGx1Z2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEdldFVSTFdpdGhKYXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdpbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNENDRDRFMTcxMzc1QTMwMDk4MTA0
MCAvKiBUb1N0cmluZ0FuZFZhbHVlT2ZPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVG9TdHJpbmdBbmRWYWx1ZU9mT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4Miw3ICs0ODIsNyBAQAogCQkJCUExMTU4RDZBMTg5MjdDRTEw
MDg4QzE3QiAvKiBpb3MgKi8sCiAJCQkJQTEzNEU1MzQxODkwNUU2QzAwOTAxRDA2IC8qIGNvbmZp
Zy5oICovLAogCQkJCTFBMkZCODRDMTc4QzgwOTIwMDU5RkQ5NiAvKiBEZWZhdWx0UG9saWN5RGVs
ZWdhdGUuaCAqLywKLQkJCQkxQTJGQjg0RDE3OEM4MDkzMDA1OUZEOTYgLyogRGVmYXVsdFBvbGlj
eURlbGVnYXRlLm0gKi8sCisJCQkJMUEyRkI4NEQxNzhDODA5MzAwNTlGRDk2IC8qIERlZmF1bHRQ
b2xpY3lEZWxlZ2F0ZS5tbSAqLywKIAkJCQk5ODMwRjMxRTE1QzgxMTgxMDA1QUIyMDYgLyogRHVt
cFJlbmRlclRyZWVDb21tb24uY3BwICovLAogCQkJCTMyQTcwQUFCMDM3MDVFMUYwMEM5MTc4MyAv
KiBEdW1wUmVuZGVyVHJlZVByZWZpeC5oICovLAogCQkJCTE0MjJBMjc1MEFGNkY0QkQwMEUxQTg4
MyAvKiBEZWxlZ2F0ZXMgKi8sCkBAIC0xMTYyLDcgKzExNjIsNyBAQAogCQkJCUJDQTE4QjM5MEM5
QjAyMTkwMDExNDM2OSAvKiBBcHBsZVNjcmlwdENvbnRyb2xsZXIubSBpbiBTb3VyY2VzICovLAog
CQkJCUY0NEE1MzFEMjFCODlBNEQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTNDQkI4MzIxMzRFNDJGMzAwMUNFNkE0IC8qIEN5Y2xpY1JlZHVu
ZGFuY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQTJGQjg0RjE3OEM4MDkzMDA1OUZE
OTYgLyogRGVmYXVsdFBvbGljeURlbGVnYXRlLm0gaW4gU291cmNlcyAqLywKKwkJCQkxQTJGQjg0
RjE3OEM4MDkzMDA1OUZEOTYgLyogRGVmYXVsdFBvbGljeURlbGVnYXRlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNBMThDNDcwQzlCNUI5NDAwMTE0MzY5IC8qIER1bXBSZW5kZXJUcmVlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTExNThENTgxODkyNzQwQzAwODhDMTdCIC8qIER1bXBSZW5kZXJU
cmVlQnJvd3NlclZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQk5ODMwRjMxRjE1QzgxMTgxMDA1
QUIyMDYgLyogRHVtcFJlbmRlclRyZWVDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDYxYmYwODM0NWQ4YWVlYjY0M2Q1MjFiZmRmMzQx
YWQxMTcwOWEyODcuLmU4MjQ3ODhiNDAxNzZmZTZjOTY2YmYzZGI4MmFjMzYyNzRkMTVmZjcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xMTI4LDYgKzExMjgsMzAgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamUKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNl
c3Npb25Pbk5leHROYXZpZ2F0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQoreworICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCisgICAgaWYgKGFy
Z3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CisKKyAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1
bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+
c2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oSlNWYWx1ZVRv
Qm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKKworICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKworc3RhdGljIEpTVmFsdWVSZWYgc2V0U2hvdWxkU3dh
cFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQoreworICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9u
CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7CisKKyAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAg
Y29udHJvbGxlci0+c2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9u
KEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7CisKKyAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIHNl
dEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1wbGVtZW50YXRpb24KQEAg
LTIyMjAsNiArMjI0NCw4IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1
bmN0aW9ucygpCiAgICAgICAgIHsgInNldFBsdWdpbnNFbmFibGVkIiwgc2V0UGx1Z2luc0VuYWJs
ZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQcmludGluZyIsIHNldFByaW50aW5n
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9E
RVBSRUNBVEVEIiwgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisg
ICAgICAgIHsgInNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9u
Iiwgc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb25DYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24iLCBzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRp
b25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZXJpYWxpemVIVFRQTG9hZHMiLCBz
ZXRTZXJpYWxpemVIVFRQTG9hZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQiLCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzIiwgc2V0
U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2Fkc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkBAIC0yNTM1LDMgKzI1
NjEsMTAgQEAgdm9pZCBUZXN0UnVubmVyOjpjbGVhbnVwKCkKIHsKICAgICBjbGVhclRlc3RSdW5u
ZXJDYWxsYmFja3MoKTsKIH0KKwordm9pZCBUZXN0UnVubmVyOjp3aWxsTmF2aWdhdGUoKQorewor
ICAgIEFTU0VSVCghKG1fc2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRp
b24gJiYgbV9zaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24pKTsKKyAg
ICBpZiAobV9zaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiB8fCBt
X3Nob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbikKKyAgICAgICAgc2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChtX3Nob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5l
eHROYXZpZ2F0aW9uKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCAyOWE0ZWYy
ZTc4Yjc2MTFiZTFiYmI2MWNkYTExZGUzNTBhYzkyNzQyLi4xZTI2OThiNmJlMjA4YzZkOGViZWU4
ODE4ZTY2ZjY1MDY2YTI4YWRmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC0xMTYs
NiArMTE2LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwog
ICAgIHZvaWQgc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wpOworCisgICAgdm9pZCB3aWxsTmF2aWdhdGUoKTsKKyAg
ICB2b2lkIHNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKGJv
b2wgc2hvdWxkU3dhcCkgeyBtX3Nob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZp
Z2F0aW9uID0gc2hvdWxkU3dhcDsgfQorICAgIHZvaWQgc2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNl
c3Npb25Pbk5leHROYXZpZ2F0aW9uKGJvb2wgc2hvdWxkU3dhcCkgeyBtX3Nob3VsZFN3YXBUb0Rl
ZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiA9IHNob3VsZFN3YXA7IH0KKwogICAgIHZvaWQg
c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlclN0
eWxlU2hlZXRFbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExv
Y2F0aW9uKEpTU3RyaW5nUmVmIHBhdGgpOwpAQCAtNDU4LDYgKzQ2Myw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2hhc1BlbmRpbmdXZWJOb3RpZmljYXRpb25DbGljayB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Rp
ZENhbmNlbENsaWVudFJlZGlyZWN0IHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkU3dhcFRv
RXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9z
aG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24geyBmYWxzZSB9OwogCiAg
ICAgZG91YmxlIG1fZGF0YWJhc2VEZWZhdWx0UXVvdGEgeyAtMSB9OwogICAgIGRvdWJsZSBtX2Rh
dGFiYXNlTWF4UXVvdGEgeyAtMSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1BvbGljeURlbGVnYXRlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BvbGljeURl
bGVnYXRlLm1tCmluZGV4IDZjZDQ4OTM3ZjU1MzRjYjBjMGVmOTZhMzEzNzA1MjUwYWY3MGNlZjgu
LjU3ODI1ZjRhMTU4MmJmMzU5YzU2ODA4MjA1ZmQ0ZjNlNGYwZjU2YzggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Qb2xpY3lEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvUG9saWN5RGVsZWdhdGUubW0KQEAgLTg1LDkgKzg1LDExIEBAIC0gKHZv
aWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjooTlNEaWN0aW9uYXJ5CiAKICAgICBwcmludGYoIiVzXG4iLCBbbWVzc2FnZSBVVEY4U3Ry
aW5nXSk7CiAKLSAgICBpZiAocGVybWlzc2l2ZURlbGVnYXRlKQorICAgIGlmIChwZXJtaXNzaXZl
RGVsZWdhdGUpIHsKKyAgICAgICAgaWYgKCFbZnJhbWUgZnJhbWVFbGVtZW50XSkKKyAgICAgICAg
ICAgIGdUZXN0UnVubmVyLT53aWxsTmF2aWdhdGUoKTsKICAgICAgICAgW2xpc3RlbmVyIHVzZV07
Ci0gICAgZWxzZQorICAgIH0gZWxzZQogICAgICAgICBbbGlzdGVuZXIgaWdub3JlXTsKIAogICAg
IGlmIChjb250cm9sbGVyVG9Ob3RpZnlEb25lKSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApp
bmRleCBiOTQ5ZGM3NjExZmI3YzMxMjg1YjIwNDVlZjkyNDEyYzlhZWY1YmYxLi4yYzhkMTNmMDFj
N2FkOTNlZmYwNDgwOGE1Y2E4YmQ1NzlkYmRmOTU4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKQEAgLTEwNSw3ICsxMDUsOCBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBz
ZXRJZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyhib29sZWFuIHZhbHVlKTsKICAgICB2b2lkIHNl
dFNob3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyhib29sZWFuIHZhbHVlKTsKICAg
ICAKLSAgICAvLyBERVBSRUNBVEVEOiBVc2UgPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VF
cGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4gaW5zdGVhZC4KKyAgICAvLyBERVBSRUNBVEVEOiBV
c2UgPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAt
LT4gaW5zdGVhZCwgb3IKKyAgICAvLyB0ZXN0UnVubmVyLnNldFNob3VsZFN3YXBUb0VwaGVtZXJh
bFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKCkgLyB0ZXN0UnVubmVyLnNldFNob3VsZFN3YXBUb0Rl
ZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbigpLgogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZF9ERVBSRUNBVEVEKGJvb2xlYW4gdmFsdWUpOwogCiAgICAgLy8gU3BlY2lhbCBE
T00gZnVuY3Rpb25zLgpAQCAtMjUzLDYgKzI1NCw5IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsK
IAogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbGVhbiB2YWx1ZSk7CiAK
KyAgICB2b2lkIHNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9u
KGJvb2xlYW4gdmFsdWUpOworICAgIHZvaWQgc2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25P
bk5leHROYXZpZ2F0aW9uKGJvb2xlYW4gdmFsdWUpOworCiAgICAgLy8gU2VjdXJlIHRleHQgaW5w
dXQgbW9kZSAoTWFjIG9ubHkpCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gc2VjdXJl
RXZlbnRJbnB1dElzRW5hYmxlZDsKICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDA2NTI0YTMwNGI4Yzk1Mjhl
MWI4NTlkNzU3NjJlNWZiMmQ5YWRiYWUuLmVlZTQ5MzE0NjJlNzM2NmViNzg3MTJlZmIzZTM1ZWU4
YTI1OWQyZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtNTAwLDYgKzUwMCwyNCBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wgZW5hYmxlZCkKICAgICBXS0J1bmRsZVBh
Z2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhpbmplY3RlZEJ1bmRsZS5wYWdlKCkt
PnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsK
IH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25O
ZXh0TmF2aWdhdGlvbihib29sIHNob3VsZFN3YXApCit7CisgICAgYXV0byYgaW5qZWN0ZWRCdW5k
bGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJTZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiIpKTsK
KyAgICBXS1JldGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0Jv
b2xlYW5DcmVhdGUoc2hvdWxkU3dhcCkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91
c01lc3NhZ2VGb3JUZXN0aW5nKGluamVjdGVkQnVuZGxlLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdl
TmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOworfQorCit2b2lkIFRlc3RS
dW5uZXI6OnNldFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbihib29s
IHNob3VsZFN3YXApCit7CisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5h
bWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTaG91bGRTd2Fw
VG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tC
b29sZWFuUmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tCb29sZWFuQ3JlYXRlKHNob3VsZFN3
YXApKTsKKyAgICBXS0J1bmRsZVBhZ2VQb3N0U3luY2hyb25vdXNNZXNzYWdlRm9yVGVzdGluZyhp
bmplY3RlZEJ1bmRsZS5wYWdlKCktPnBhZ2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VC
b2R5LmdldCgpLCBudWxscHRyKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRBbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhib29sIGVuYWJsZWQpCiB7CiAgICAgYXV0byYgaW5qZWN0
ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDFkMzIzMDcz
Zjg1MGQ0ZGEzYjM0Yjc5NDc0MjRjYTRiZTk4MTNlZjQuLmVlNDg2ZTEwYjEwYmVmZmMzZjQwMzI0
OTVlZTIwNzc4MTQ5ZDAyMWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0xMjcsNiArMTI3LDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Q2FjaGVNb2RlbChpbnQpOwogICAgIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0
ZShib29sKTsKKyAgICB2b2lkIHNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHRO
YXZpZ2F0aW9uKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25P
bk5leHROYXZpZ2F0aW9uKGJvb2wpOwogICAgIHZvaWQgc2V0RW5jcnlwdGVkTWVkaWFBUElFbmFi
bGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TWVkaWFEZXZpY2VzRW5hYmxlZChib29sKTsKICAgICB2
b2lkIHNldFdlYlJUQ01ETlNJQ0VDYW5kaWRhdGVzRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMzI2NzgzMjNkNzA2NDFkMDIwMGQ1
NDcxOTBiYTBhNzM1NTdjMGI5Zi4uNGE5MGNjOWQzNTg4OGE4ZWEyMjI1YmExMjAyZjU5MzY0Zjdj
MTg3NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTY4
LDYgKzY4LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2su
aD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZi5o
PgogI2luY2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tXZWJzaXRlUG9saWNpZXMuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVk
ZSA8Y3N0ZGlvPgogI2luY2x1ZGUgPGN0eXBlLmg+CkBAIC0yODExLDE0ICsyODEyLDI2IEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV0tOYXZp
Z2F0aW9uQWN0aW9uUmVmIG5hdmlnCiAgICAgV0tSZXRhaW5QdHI8V0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmPiByZXRhaW5lZExpc3RlbmVyIHsgbGlzdGVuZXIgfTsKICAgICBXS1JldGFpblB0cjxX
S05hdmlnYXRpb25BY3Rpb25SZWY+IHJldGFpbmVkTmF2aWdhdGlvbkFjdGlvbiB7IG5hdmlnYXRp
b25BY3Rpb24gfTsKICAgICBjb25zdCBib29sIHNob3VsZElnbm9yZSB7IG1fcG9saWN5RGVsZWdh
dGVFbmFibGVkICYmICFtX3BvbGljeURlbGVnYXRlUGVybWlzc2l2ZSB9OwotICAgIGF1dG8gZGVj
aXNpb25GdW5jdGlvbiA9IFtzaG91bGRJZ25vcmUsIHJldGFpbmVkTGlzdGVuZXIsIHJldGFpbmVk
TmF2aWdhdGlvbkFjdGlvbl0oKSB7CisgICAgYXV0byBkZWNpc2lvbkZ1bmN0aW9uID0gW3Nob3Vs
ZElnbm9yZSwgcmV0YWluZWRMaXN0ZW5lciwgcmV0YWluZWROYXZpZ2F0aW9uQWN0aW9uLCBzaG91
bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiA9IG1fc2hvdWxkU3dhcFRv
RXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24sIHNob3VsZFN3YXBUb0RlZmF1bHRTZXNz
aW9uT25OZXh0TmF2aWdhdGlvbiA9IG1fc2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHRO
YXZpZ2F0aW9uXSgpIHsKICAgICAgICAgaWYgKHNob3VsZElnbm9yZSkKICAgICAgICAgICAgIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lcklnbm9yZShyZXRhaW5lZExpc3RlbmVyLmdldCgpKTsKICAgICAg
ICAgZWxzZSBpZiAoV0tOYXZpZ2F0aW9uQWN0aW9uU2hvdWxkUGVyZm9ybURvd25sb2FkKHJldGFp
bmVkTmF2aWdhdGlvbkFjdGlvbi5nZXQoKSkpCiAgICAgICAgICAgICBXS0ZyYW1lUG9saWN5TGlz
dGVuZXJEb3dubG9hZChyZXRhaW5lZExpc3RlbmVyLmdldCgpKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKHJldGFpbmVkTGlzdGVuZXIuZ2V0KCkp
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChzaG91bGRTd2FwVG9FcGhlbWVyYWxT
ZXNzaW9uT25OZXh0TmF2aWdhdGlvbiB8fCBzaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24pIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIShzaG91bGRTd2FwVG9FcGhl
bWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiAmJiBzaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lv
bk9uTmV4dE5hdmlnYXRpb24pKTsKKyAgICAgICAgICAgICAgICBhdXRvIHBvbGljaWVzID0gYWRv
cHRXSyhXS1dlYnNpdGVQb2xpY2llc0NyZWF0ZSgpKTsKKyAgICAgICAgICAgICAgICBXS1JldGFp
blB0cjxXS1dlYnNpdGVEYXRhU3RvcmVSZWY+IG5ld1Nlc3Npb24gPSBUZXN0Q29udHJvbGxlcjo6
d2Vic2l0ZURhdGFTdG9yZSgpOworICAgICAgICAgICAgICAgIGlmIChzaG91bGRTd2FwVG9FcGhl
bWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgbmV3U2Vz
c2lvbiA9IGFkb3B0V0soV0tXZWJzaXRlRGF0YVN0b3JlQ3JlYXRlTm9uUGVyc2lzdGVudERhdGFT
dG9yZSgpKTsKKyAgICAgICAgICAgICAgICBXS1dlYnNpdGVQb2xpY2llc1NldERhdGFTdG9yZShw
b2xpY2llcy5nZXQoKSwgbmV3U2Vzc2lvbi5nZXQoKSk7CisgICAgICAgICAgICAgICAgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzKHJldGFpbmVkTGlzdGVuZXIuZ2V0KCksIHBv
bGljaWVzLmdldCgpKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lclVzZShyZXRhaW5lZExpc3RlbmVyLmdldCgpKTsKKyAgICAgICAgfQog
ICAgIH07CisgICAgbV9zaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlv
biA9IGZhbHNlOworICAgIG1fc2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0
aW9uID0gZmFsc2U7CiAKICAgICBpZiAobV9zaG91bGREZWNpZGVOYXZpZ2F0aW9uUG9saWN5QWZ0
ZXJEZWxheSkKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoZGVjaXNp
b25GdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4
IGMzY2M1MGQ3ZDI5YmY5NmFlZjM3N2YxMjYwMjg0ODJhZGI1ZWQ5N2MuLjgzN2U0YWIyY2IwZTY2
MTcxY2RlZjQwYmRiMTQ4NmM2ZTBiZDcxNDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKQEAgLTE4Niw2ICsxODYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdXRo
ZW50aWNhdGlvblVzZXJuYW1lKFN0cmluZyB1c2VybmFtZSkgeyBtX2F1dGhlbnRpY2F0aW9uVXNl
cm5hbWUgPSB1c2VybmFtZTsgfQogICAgIHZvaWQgc2V0QXV0aGVudGljYXRpb25QYXNzd29yZChT
dHJpbmcgcGFzc3dvcmQpIHsgbV9hdXRoZW50aWNhdGlvblBhc3N3b3JkID0gcGFzc3dvcmQ7IH0K
ICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOworICAgIHZvaWQgc2V0
U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oYm9vbCB2YWx1ZSkg
eyBtX3Nob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uID0gdmFsdWU7
IH0KKyAgICB2b2lkIHNldFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlv
bihib29sIHZhbHVlKSB7IG1fc2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0
aW9uID0gdmFsdWU7IH0KIAogICAgIHZvaWQgc2V0QmxvY2tBbGxQbHVnaW5zKGJvb2wgc2hvdWxk
QmxvY2spOwogICAgIHZvaWQgc2V0UGx1Z2luU3VwcG9ydGVkTW9kZShjb25zdCBTdHJpbmcmKTsK
QEAgLTU5Myw2ICs1OTUsOCBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fc2VydmVyVHJ1c3RF
dmFsdWF0aW9uQ2FsbGJhY2tDYWxsc0NvdW50IHsgMCB9OwogICAgIGJvb2wgbV9zaG91bGREaXNt
aXNzSmF2YVNjcmlwdEFsZXJ0c0FzeW5jaHJvbm91c2x5IHsgZmFsc2UgfTsKICAgICBib29sIG1f
YWxsb3dzQW55U1NMQ2VydGlmaWNhdGUgeyB0cnVlIH07CisgICAgYm9vbCBtX3Nob3VsZFN3YXBU
b0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
c2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uIHsgZmFsc2UgfTsKIH07
CiAKIHN0cnVjdCBUZXN0Q29tbWFuZCB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCmluZGV4IGY5YjViNzQxNDcwNjAzMWYxNjE5MmVkMjgwNjEyMDMzYjdjZjY5Zjcu
LjYwN2U1YmJkYjRiMDU2ZWI2YjViNjRlYjAwMTdkYjgwNWMwN2E5OTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC05MjUsNiArOTI1LDE2IEBAIFdLUmV0
YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01l
c3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5z
ZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2FzdDxX
S0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KSkpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CisgICAgCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5h
bWUsICJTZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiIpKSB7
CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRTd2FwVG9FcGhl
bWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbihXS0Jvb2xlYW5HZXRWYWx1ZShzdGF0aWNfY2Fz
dDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisgICAgCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2Fn
ZU5hbWUsICJTZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24iKSkg
eworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U2hvdWxkU3dhcFRvRGVm
YXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKFdLQm9vbGVhbkdldFZhbHVlKHN0YXRpY19jYXN0
PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1l
LCAiSW1hZ2VDb3VudEluR2VuZXJhbFBhc3RlYm9hcmQiKSkgewogICAgICAgICB1bnNpZ25lZCBj
b3VudCA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5pbWFnZUNvdW50SW5HZW5lcmFsUGFz
dGVib2FyZCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGIyOGVlMDVmOGFlMzMxYWMzNGM5ZWU2NmIyY2M0NTBiODc5MDIy
ZWEuLjg0ZjEzZDY1MjI0YTUwOWQ2YzM0NTdkODQyNDgzMTllZDM1YTZmNTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxOS0wOS0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgdGVzdFJ1bm5lci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
X0RFUFJFQ0FURUQoKSBpbiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9u
LWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTU5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBsYXlvdXQgdGVzdCB0byB1c2UgdGVz
dFJ1bm5lci5zZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbigp
ICYKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24oKSBpbnN0ZWFkIG9mIHRoZSBsZWdhY3kKKyAgICAgICAgdGVzdFJ1bm5lci5z
ZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkX0RFUFJFQ0FURUQoKS4gVGhlIHRlc3QgbmVlZGVkIHNv
bWUgZXh0cmEgc3RlcHMgdG8KKyAgICAgICAgbmF2aWdhdGUgd2hlbmV2ZXIgd2Ugc3dpdGNoIHNl
c3Npb24gYnV0IGl0IGlzIGEgbG90IG1vcmUgcmVhbGlzdGljIGFuZCBpcyByZWFsbHkgc3dpdGNo
aW5nCisgICAgICAgIHNlc3Npb24gb24gV2ViS2l0Mi4gVGhlIHRlc3RSdW5uZXIuc2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZF9ERVBSRUNBVEVEKCkgd2FzIG5vdCB0cnVseQorICAgICAgICBzd2l0
Y2hpbmcgc2Vzc2lvbiwganVzdCBtYWtpbmcgdGhlIGRvY3VtZW50IHRoaW5rIGl0IGRpZC4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJs
ZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbDoKKwogMjAxOS0wOS0wOCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3luYyBzZXJ2aWNlIHdvcmtlcnMgV1BU
IHRlc3RzIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Np
b24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZl
cnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbAppbmRleCA2NjljMWJkMjNm
YmJjMTIxMmJkNzYxMmMwNjU0MTc4NjAzZmUxYzNhLi45YThmMTg0ZmE5ZjE2MmY2NmM5NDVmMzYz
Mzg0NGU0MGI2OWVkNWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xp
Y2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVy
c2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sCkBAIC00NSw3ICs0NSw2IEBA
CiAgICAgZnVuY3Rpb24gYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKSB7CiAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbigpOwogICAgICAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRMaW5r
IikpOwotICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJwaXhlbCIpKTsKIAogICAgICAgICBhcHBlbmRJZnJhbWUoImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL2dldENvbnZlcnNpb25EYXRhLnBo
cD90aW1lb3V0X21zPTEwMDAmbm9uY2U9IiArIG5vbmNlLCBmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgIHRlYXJEb3duQW5kRmluaXNoKCk7CkBAIC01NSwxNCArNTQsMTkgQEAKICAgICBmdW5jdGlv
biBydW5UZXN0KCkgewogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAg
ICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7Ci0gICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkX0RFUFJFQ0FURUQo
dHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9FcGhlbWVy
YWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbih0cnVlKTsKKyAgICAgICAgICAgICAgICB3aW5kb3cu
bG9jYXRpb24gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252
ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw/c3RlcFRocmVlIjsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhy
ZWUiKSB7CiAgICAgICAgICAgICAgICAgbGV0IGltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImltZyIpOwogICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5zcmMgPSAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9hZENsaWNrQXR0cmlidXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0
VG9Db252ZXJzaW9uLnBocD9jb252ZXJzaW9uRGF0YT0xMiZub25jZT0iICsgbm9uY2U7CiAgICAg
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50LmlkID0gInBpeGVsIjsKICAgICAgICAgICAgICAgICBp
bWFnZUVsZW1lbnQub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBh
cHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlzaCgpOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlv
bih0cnVlKTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1l
cGhlbWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBGb3VyIjsKICAgICAgICAgICAgICAgICB9OwogICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2VFbGVtZW50KTsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwRm91
ciIpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmRDb252ZXJzaW9uRGF0YUlmcmFtZUFuZEZpbmlz
aCgpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5jb29r
aWUgPSAiY29va2llU2V0QXNGaXJzdFBhcnR5PTE7IHBhdGg9LyI7CiAgICAgICAgICAgICAgICAg
YWN0aXZhdGVFbGVtZW50KCJ0YXJnZXRMaW5rIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378413</attachid>
            <date>2019-09-09 15:51:48 -0700</date>
            <delta_ts>2019-09-09 16:35:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201596-20190909155148.patch</filename>
            <type>text/plain</type>
            <size>31217</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhjMzU4NzlkZDViYzJiNjVl
MzVmYTg0NGQxOTMwNzFhNjY2MTgwNWUuLmUxNGJhZmRkMjE5MTc3NDMxNDQ3ODY3MDRkYmIzYWE5
ZmRiNjUzMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDktMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIHRlc3RSdW5uZXIu
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBSRUNBVEVEKCkgaW4gaHR0cC90ZXN0cy9hZENs
aWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5o
dG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE1
OTYKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFs
bG93IFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZVdpdGhQb2xpY2llcygpIEMgQVBJIHRvIHN3aXRj
aCB0byBhIHBlcnNpc3RlbnQgbm9uLWRlZmF1bHQgc2Vzc2lvbi4KKyAgICAgICAgVGhpcyBpcyBp
bXBvcnRhbnQgc2luY2UgV2ViS2l0VGVzdFJ1bm5lciBpcyBub3QgdXNpbmcgdGhlIGRlZmF1bHQg
c2Vzc2lvbiBhbnltb3JlIGFuZCBJIG5lZWQgdG8KKyAgICAgICAgYmUgYWJsZSB0byBzd2l0Y2gg
aXQgYmFjayB0byBpdHMgbm9ybWFsIHNlc3Npb24gYWZ0ZXIgZ29pbmcgdG8gYW4gZXBoZW1lcmFs
IG9uZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIu
Y3BwOgorICAgICAgICAodXNlV2l0aFBvbGljaWVzKToKKwogMjAxOS0wOS0wOSAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIERlcHJlY2F0ZSB1
bnVzZWQgU1BJIHRvIHByZWNvbm5lY3QgdG8gYSBzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuY3BwCmluZGV4IGE4
NWI1YmNkN2NhNWQ2ODUyYjZiOTgwZTA1YWJjZGY1YmQ0ZDRjM2EuLmJlOTJkMGExOTk0MjJmM2Q5
ZDA2ZGZiMzk3ZWE0NGFmMGY3ZjdiOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmNwcApAQCAtNTMsMTEgKzUzLDYg
QEAgdm9pZCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VJbk5ld1Byb2Nlc3MoV0tGcmFtZVBvbGlj
eUxpc3RlbmVyUmVmIHBvbGljeUxpc3RlbmUKIAogc3RhdGljIHZvaWQgdXNlV2l0aFBvbGljaWVz
KFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBwb2xpY3lMaXN0ZW5lclJlZiwgV0tXZWJzaXRlUG9s
aWNpZXNSZWYgd2Vic2l0ZVBvbGljaWVzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQpCiB7Ci0gICAgaWYgKGF1dG8qIHdlYnNpdGVEYXRh
U3RvcmUgPSB0b0ltcGwod2Vic2l0ZVBvbGljaWVzKS0+d2Vic2l0ZURhdGFTdG9yZSgpKSB7Ci0g
ICAgICAgIGF1dG8gc2Vzc2lvbklEID0gd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9y
ZSgpLnNlc3Npb25JRCgpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX01FU1NBR0Uoc2Vz
c2lvbklELmlzRXBoZW1lcmFsKCkgfHwgc2Vzc2lvbklEID09IFBBTDo6U2Vzc2lvbklEOjpkZWZh
dWx0U2Vzc2lvbklEKCksICJJZiBXZWJzaXRlUG9saWNpZXMgc3BlY2lmaWVzIGEgV2Vic2l0ZURh
dGFTdG9yZSwgdGhlIGRhdGEgc3RvcmUncyBzZXNzaW9uIG11c3QgYmUgZGVmYXVsdCBvciBub24t
cGVyc2lzdGVudC4iKTsKLSAgICB9Ci0KICAgICB0b0ltcGwocG9saWN5TGlzdGVuZXJSZWYpLT51
c2UodG9JbXBsKHdlYnNpdGVQb2xpY2llcyksIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0
aW9uU3RhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KaW5kZXggMzY1NjAzZTJkMjVkODE3YTNjYWYwMjEyNzVhNWYxYzhkMzAzYjBmYi4uN2Ez
MzY0MjNiYjExNjU1YjQ0M2ZmZTI5MzNiZTZkNWYzZWM1NzJlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQpAQCAtNTk0LDkgKzU5NCw2
IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQCiAKICAgICAgICAgaWYgKGFwaVdlYnNpdGVQb2xp
Y2llcykgewogICAgICAgICAgICAgaWYgKGF1dG8qIHdlYnNpdGVEYXRhU3RvcmUgPSBhcGlXZWJz
aXRlUG9saWNpZXMtPndlYnNpdGVEYXRhU3RvcmUoKSkgewotICAgICAgICAgICAgICAgIGF1dG8g
c2Vzc2lvbklEID0gd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnNlc3Npb25J
RCgpOwotICAgICAgICAgICAgICAgIGlmICghc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgJiYgc2Vz
c2lvbklEICE9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCi0gICAgICAgICAg
ICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBm
b3JtYXQ6QCJXS1dlYnBhZ2VQcmVmZXJlbmNlcy5fd2Vic2l0ZURhdGFTdG9yZSBtdXN0IGJlIG5p
bCwgZGVmYXVsdCwgb3Igbm9uLXBlcnNpc3RlbnQuIl07CiAgICAgICAgICAgICAgICAgaWYgKHN1
YmZyYW1lTmF2aWdhdGlvbikKICAgICAgICAgICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNl
Ok5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIldLV2VicGFnZVByZWZlcmVuY2Vz
Ll93ZWJzaXRlRGF0YVN0b3JlIG11c3QgYmUgbmlsIGZvciBzdWJmcmFtZSBuYXZpZ2F0aW9ucy4i
XTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA5MjFmMjQwMGFkM2E4NDBlNjhiYjUyMjE1MjNlNzQ3ZGIwNjA0MjgyLi5h
ODk4ZmY4MmYxY2YwNzlkODAwNzcyOTBjYzYxNmQ2ZTE1ZTgxYjVmIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTkt
MDktMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVz
aW5nIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBSRUNBVEVEKCkgaW4g
aHR0cC90ZXN0cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhl
bWVyYWwtc2Vzc2lvbi5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDE1OTYKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2Vu
LgorCisgICAgICAgIEFkZCBuZXcgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxT
ZXNzaW9uT25OZXh0TmF2aWdhdGlvbigpIC8gdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9EZWZh
dWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oKQorICAgICAgICB0ZXN0IGZ1bmN0aW9ucyB0byBz
dXBwb3J0IGR5bmFtaWMgc3dpdGNoaW5nIGJldHdlZW4gZXBoZW1lcmFsIGFuZCBkZWZhdWx0L3Bl
cnNpc3RlbnQgc2Vzc2lvbiBpbiBsYXlvdXQgdGVzdHMuIFRoZSBuZXcgbWV0aG9kcworICAgICAg
ICBkbyB0aGUgcmlnaHQgdGhpbmcgZm9yIFdlYktpdDIgYW5kIHRydWx5IHN3aXRjaCBzZXNzaW9u
LCB1bmxpa2Ugc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBSRUNBVEVEKCkgd2hpY2ggd2Fz
IG1lcmVseSBtYWtpbmcKKyAgICAgICAgdGhlIFdlYkNvcmU6OkRvY3VtZW50IHRoaW5rIGl0IGNo
YW5nZWQgc2Vzc2lvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3Bw
OgorICAgICAgICAoc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRp
b25DYWxsYmFjayk6CisgICAgICAgIChzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb25DYWxsYmFjayk6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlv
bnMpOgorICAgICAgICAoVGVzdFJ1bm5lcjo6d2lsbE5hdmlnYXRlKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRTaG91bGRT
d2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbik6CisgICAgICAgIChUZXN0UnVu
bmVyOjpzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24pOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9GcmFtZUxvYWREZWxlZ2F0ZS5tbToKKyAgICAgICAg
KC1bRnJhbWVMb2FkRGVsZWdhdGUgd2ViVmlldzpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U2hvdWxk
U3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24pOgorICAgICAgICAoV1RSOjpU
ZXN0UnVubmVyOjpzZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24p
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24pOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkU3dh
cFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246
OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDE5
LTA5LTA5ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBF
V1MgdGVzdHR1YmUgZW1vamkgZG9lc24ndCBleGlzdCBvbiBtYWNPUyBNb2phdmUKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0RlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvRGVmYXVsdFBvbGljeURlbGVnYXRlLm0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQ2OGM5ZTVmOWJlMTI5ODFlODExYzVkMjRkMzY5ZDg0NDNmZDk2MzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvRGVmYXVsdFBvbGljeURlbGVnYXRlLm0KKysrIC9kZXYvbnVsbApAQCAtMSwzNCAr
MCwwIEBACi0vLwotLy8gIERlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5tCi0vLyAgRHVtcFJlbmRlclRy
ZWUKLS8vCi0vLyAgQ3JlYXRlZCBieSBBbmRlcnMgQ2FybHNzb24gb24gNy85LzEzLgotLy8KLS8v
Ci0KLSNpbXBvcnQgIkRlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5oIgotCi0jaW1wb3J0IDxXZWJLaXQv
V2ViUG9saWN5RGVsZWdhdGVQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZh
dGUuaD4KLQotQGltcGxlbWVudGF0aW9uIERlZmF1bHRQb2xpY3lEZWxlZ2F0ZQotCi0tICh2b2lk
KXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b246KE5TRGljdGlvbmFyeSAqKWFjdGlvbkluZm9ybWF0aW9uIHJlcXVlc3Q6KE5TVVJMUmVxdWVz
dCAqKXJlcXVlc3QgZnJhbWU6KFdlYkZyYW1lICopZnJhbWUgZGVjaXNpb25MaXN0ZW5lcjooaWQg
PFdlYlBvbGljeURlY2lzaW9uTGlzdGVuZXI+KWxpc3RlbmVyCi17Ci0gICAgaWYgKFtXZWJWaWV3
IF9jYW5IYW5kbGVSZXF1ZXN0OnJlcXVlc3RdKSB7Ci0gICAgICAgIFtsaXN0ZW5lciB1c2VdOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgV2ViTmF2aWdhdGlvblR5cGUgbmF2VHlwZSA9
IChXZWJOYXZpZ2F0aW9uVHlwZSlbW2FjdGlvbkluZm9ybWF0aW9uIG9iamVjdEZvcktleTpXZWJB
Y3Rpb25OYXZpZ2F0aW9uVHlwZUtleV0gaW50VmFsdWVdOwotICAgIGlmIChuYXZUeXBlID09IFdl
Yk5hdmlnYXRpb25UeXBlUGx1Z0luUmVxdWVzdCkgewotICAgICAgICBbbGlzdGVuZXIgdXNlXTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIFRoZSBkZWZhdWx0IFdlYktpdCBwb2xp
Y3kgZGVsZWdhdGUgcGFzc2VzIHRoZSBVUkwgYWxvbmcgdG8gLVtOU1dvcmtzcGFjZSBvcGVuVVJM
Ol0gaGVyZSwKLSAgICAvLyBidXQgd2UgZG9uJ3Qgd2FudCB0byBkbyB0aGF0IHNvIHdlIGp1c3Qg
aWdub3JlIHRoZSBuYXZpZ2F0aW9uIGNvbXBsZXRlbHkuCi0gICAgW2xpc3RlbmVyIGlnbm9yZV07
Ci19Ci0KLUBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0RlZmF1bHRQb2xp
Y3lEZWxlZ2F0ZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0RlZmF1bHRQb2xpY3lEZWxlZ2F0
ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMTgwZTI5YTEyYjc3ZGJkMWQ2MDcyZTA5ZTlkOTY0NTY1Mzc3NmE2
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRGVmYXVsdFBvbGljeURl
bGVnYXRlLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8vCisvLyAgRGVmYXVsdFBvbGljeURlbGVnYXRl
Lm0KKy8vICBEdW1wUmVuZGVyVHJlZQorLy8KKy8vICBDcmVhdGVkIGJ5IEFuZGVycyBDYXJsc3Nv
biBvbiA3LzkvMTMuCisvLworLy8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJEZWZh
dWx0UG9saWN5RGVsZWdhdGUuaCIKKworI2ltcG9ydCAiRHVtcFJlbmRlclRyZWUuaCIKKyNpbXBv
cnQgIlRlc3RSdW5uZXIuaCIKKyNpbXBvcnQgPFdlYktpdC9XZWJQb2xpY3lEZWxlZ2F0ZVByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgorCitAaW1wbGVtZW50YXRp
b24gRGVmYXVsdFBvbGljeURlbGVnYXRlCisKKy0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdl
YlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooTlNEaWN0aW9uYXJ5ICopYWN0
aW9uSW5mb3JtYXRpb24gcmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBmcmFtZTooV2Vi
RnJhbWUgKilmcmFtZSBkZWNpc2lvbkxpc3RlbmVyOihpZCA8V2ViUG9saWN5RGVjaXNpb25MaXN0
ZW5lcj4pbGlzdGVuZXIKK3sKKyAgICBpZiAoW1dlYlZpZXcgX2NhbkhhbmRsZVJlcXVlc3Q6cmVx
dWVzdF0pIHsKKyAgICAgICAgaWYgKCFbZnJhbWUgZnJhbWVFbGVtZW50XSkKKyAgICAgICAgICAg
IGdUZXN0UnVubmVyLT53aWxsTmF2aWdhdGUoKTsKKyAgICAgICAgW2xpc3RlbmVyIHVzZV07Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXZWJOYXZpZ2F0aW9uVHlwZSBuYXZUeXBlID0g
KFdlYk5hdmlnYXRpb25UeXBlKVtbYWN0aW9uSW5mb3JtYXRpb24gb2JqZWN0Rm9yS2V5OldlYkFj
dGlvbk5hdmlnYXRpb25UeXBlS2V5XSBpbnRWYWx1ZV07CisgICAgaWYgKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihuYXZUeXBlKSA9PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oV2ViTmF2aWdhdGlvblR5
cGVQbHVnSW5SZXF1ZXN0KSkgeworICAgICAgICBpZiAoIVtmcmFtZSBmcmFtZUVsZW1lbnRdKQor
ICAgICAgICAgICAgZ1Rlc3RSdW5uZXItPndpbGxOYXZpZ2F0ZSgpOworICAgICAgICBbbGlzdGVu
ZXIgdXNlXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFRoZSBkZWZhdWx0IFdl
YktpdCBwb2xpY3kgZGVsZWdhdGUgcGFzc2VzIHRoZSBVUkwgYWxvbmcgdG8gLVtOU1dvcmtzcGFj
ZSBvcGVuVVJMOl0gaGVyZSwKKyAgICAvLyBidXQgd2UgZG9uJ3Qgd2FudCB0byBkbyB0aGF0IHNv
IHdlIGp1c3QgaWdub3JlIHRoZSBuYXZpZ2F0aW9uIGNvbXBsZXRlbHkuCisgICAgW2xpc3RlbmVy
IGlnbm9yZV07Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1
bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkyYmEz
Y2I2YmFiM2UyOTBhMDMwOTUxNzk2NmIxZWY1NmJlNWYzYzAuLjRkOGUyMzlkYzk3ODJjMzYxOGIx
Y2Q5MjJkMjc4MjA1NjNmMzk3NzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1
bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjYs
NyArNjYsNyBAQAogCQkxQTIxNUE4MjExRjI2MDlDMDA4QUQwRjUgLyogUGx1Z2luVGVzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMTVBODAxMUYy
NjA5QzAwOEFEMEY1IC8qIFBsdWdpblRlc3QuaCAqLzsgfTsKIAkJMUEyMTVCRTcxMUYyNzY1ODAw
OEFEMEY1IC8qIERvY3VtZW50T3BlbkluRGVzdHJveVN0cmVhbS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIxNUE3NTExRjI2MDcyMDA4QUQwRjUg
LyogRG9jdW1lbnRPcGVuSW5EZXN0cm95U3RyZWFtLmNwcCAqLzsgfTsKIAkJMUEyNEJBQTkxMjA3
MzRFRTAwRkJCMDU5IC8qIE5QUnVudGltZU9iamVjdEZyb21EZXN0cm95ZWRQbHVnaW4uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyNEJBQTgxMjA3
MzRFRTAwRkJCMDU5IC8qIE5QUnVudGltZU9iamVjdEZyb21EZXN0cm95ZWRQbHVnaW4uY3BwICov
OyB9OwotCQkxQTJGQjg0RjE3OEM4MDkzMDA1OUZEOTYgLyogRGVmYXVsdFBvbGljeURlbGVnYXRl
Lm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTJGQjg0
RDE3OEM4MDkzMDA1OUZEOTYgLyogRGVmYXVsdFBvbGljeURlbGVnYXRlLm0gKi87IH07CisJCTFB
MkZCODRGMTc4QzgwOTMwMDU5RkQ5NiAvKiBEZWZhdWx0UG9saWN5RGVsZWdhdGUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTJGQjg0RDE3OEM4MDkz
MDA1OUZEOTYgLyogRGVmYXVsdFBvbGljeURlbGVnYXRlLm1tICovOyB9OwogCQkxQTMxRUIzODEz
NDY2QUMxMDAwMTczNzIgLyogQ29udmVydFBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMzFFQjM3MTM0NjZBQzEwMDAxNzM3MiAvKiBDb252
ZXJ0UG9pbnQuY3BwICovOyB9OwogCQkxQTNFMjhBQTEzMTFENzNCMDA1MDEzNDkgLyogR2V0VVJM
V2l0aEphdmFTY3JpcHRVUkxEZXN0cm95aW5nUGx1Z2luLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBM0UyOEE5MTMxMUQ3M0IwMDUwMTM0OSAvKiBH
ZXRVUkxXaXRoSmF2YVNjcmlwdFVSTERlc3Ryb3lpbmdQbHVnaW4uY3BwICovOyB9OwogCQkxQTRD
Q0Q0RjE3MTM3NUEzMDA5ODEwNDAgLyogVG9TdHJpbmdBbmRWYWx1ZU9mT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNENDRDRFMTcxMzc1
QTMwMDk4MTA0MCAvKiBUb1N0cmluZ0FuZFZhbHVlT2ZPYmplY3QuY3BwICovOyB9OwpAQCAtMjY4
LDcgKzI2OCw3IEBACiAJCTFBMjE1QTgwMTFGMjYwOUMwMDhBRDBGNSAvKiBQbHVnaW5UZXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsdWdpblRlc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEyNEJBQTgxMjA3MzRFRTAwRkJCMDU5IC8qIE5QUnVudGlt
ZU9iamVjdEZyb21EZXN0cm95ZWRQbHVnaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTlBSdW50aW1lT2JqZWN0RnJvbURlc3Ryb3llZFBsdWdpbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMkZCODRDMTc4QzgwOTIwMDU5RkQ5NiAvKiBEZWZh
dWx0UG9saWN5RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVm
YXVsdFBvbGljeURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBMkZC
ODREMTc4QzgwOTMwMDU5RkQ5NiAvKiBEZWZhdWx0UG9saWN5RGVsZWdhdGUubSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gRGVmYXVsdFBvbGljeURlbGVnYXRlLm07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMkZCODREMTc4QzgwOTMwMDU5RkQ5NiAvKiBEZWZh
dWx0UG9saWN5RGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBEZWZhdWx0UG9saWN5RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBMzFFQjM3MTM0NjZBQzEwMDAxNzM3MiAvKiBDb252ZXJ0UG9pbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udmVydFBvaW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEzRTI4QTkxMzExRDczQjAwNTAxMzQ5IC8qIEdldFVSTFdp
dGhKYXZhU2NyaXB0VVJMRGVzdHJveWluZ1BsdWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHZXRVUkxXaXRoSmF2YVNjcmlwdFVSTERlc3Ryb3lpbmdQbHVnaW4u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTRDQ0Q0RTE3MTM3NUEzMDA5ODEw
NDAgLyogVG9TdHJpbmdBbmRWYWx1ZU9mT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFRvU3RyaW5nQW5kVmFsdWVPZk9iamVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC00ODIsNyArNDgyLDcgQEAKIAkJCQlBMTE1OEQ2QTE4OTI3Q0Ux
MDA4OEMxN0IgLyogaW9zICovLAogCQkJCUExMzRFNTM0MTg5MDVFNkMwMDkwMUQwNiAvKiBjb25m
aWcuaCAqLywKIAkJCQkxQTJGQjg0QzE3OEM4MDkyMDA1OUZEOTYgLyogRGVmYXVsdFBvbGljeURl
bGVnYXRlLmggKi8sCi0JCQkJMUEyRkI4NEQxNzhDODA5MzAwNTlGRDk2IC8qIERlZmF1bHRQb2xp
Y3lEZWxlZ2F0ZS5tICovLAorCQkJCTFBMkZCODREMTc4QzgwOTMwMDU5RkQ5NiAvKiBEZWZhdWx0
UG9saWN5RGVsZWdhdGUubW0gKi8sCiAJCQkJOTgzMEYzMUUxNUM4MTE4MTAwNUFCMjA2IC8qIER1
bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCAqLywKIAkJCQkzMkE3MEFBQjAzNzA1RTFGMDBDOTE3ODMg
LyogRHVtcFJlbmRlclRyZWVQcmVmaXguaCAqLywKIAkJCQkxNDIyQTI3NTBBRjZGNEJEMDBFMUE4
ODMgLyogRGVsZWdhdGVzICovLApAQCAtMTE2Miw3ICsxMTYyLDcgQEAKIAkJCQlCQ0ExOEIzOTBD
OUIwMjE5MDAxMTQzNjkgLyogQXBwbGVTY3JpcHRDb250cm9sbGVyLm0gaW4gU291cmNlcyAqLywK
IAkJCQlGNDRBNTMxRDIxQjg5QTREMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTUzQ0JCODMyMTM0RTQyRjMwMDFDRTZBNCAvKiBDeWNsaWNSZWR1
bmRhbmN5Q2hlY2suY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMUEyRkI4NEYxNzhDODA5MzAwNTlG
RDk2IC8qIERlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5tIGluIFNvdXJjZXMgKi8sCisJCQkJMUEyRkI4
NEYxNzhDODA5MzAwNTlGRDk2IC8qIERlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDQTE4QzQ3MEM5QjVCOTQwMDExNDM2OSAvKiBEdW1wUmVuZGVyVHJlZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCUExMTU4RDU4MTg5Mjc0MEMwMDg4QzE3QiAvKiBEdW1wUmVuZGVy
VHJlZUJyb3dzZXJWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTgzMEYzMUYxNUM4MTE4MTAw
NUFCMjA2IC8qIER1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCA2MWJmMDgzNDVkOGFlZWI2NDNkNTIxYmZkZjM0
MWFkMTE3MDlhMjg3Li5jODMxN2QyOTU3ZWFmMjhkYjI4OWQ0OGUzNmM5MDZmZmE2MTdjNDU2IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtMTEyOCw2ICsxMTI4LDMwIEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxT
ZXNzaW9uT25OZXh0TmF2aWdhdGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlvbgorICAgIGlmIChh
cmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOworCisgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RS
dW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXIt
PnNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKEpTVmFsdWVU
b0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldFNob3VsZFN3
YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMgbWFjICYgd2luZG93cyBpbXBsZW1lbnRhdGlv
bgorICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRp
Y19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAg
IGNvbnRyb2xsZXItPnNldFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlv
bihKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOworCisgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3Qg
YXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCkBA
IC0yMjIwLDYgKzIyNDQsOCBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNG
dW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRQbHVnaW5zRW5hYmxlZCIsIHNldFBsdWdpbnNFbmFi
bGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UHJpbnRpbmciLCBzZXRQcmludGlu
Z0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRf
REVQUkVDQVRFRCIsIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAor
ICAgICAgICB7ICJzZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlv
biIsIHNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5l
eHROYXZpZ2F0aW9uIiwgc2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0
aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExvYWRzIiwg
c2V0U2VyaWFsaXplSFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkIiwgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2FkcyIsIHNl
dFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApAQCAtMjUzNSwzICsy
NTYxLDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6Y2xlYW51cCgpCiB7CiAgICAgY2xlYXJUZXN0UnVu
bmVyQ2FsbGJhY2tzKCk7CiB9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6d2lsbE5hdmlnYXRlKCkKK3sK
KyAgICBpZiAobV9zaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiB8
fCBtX3Nob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbikgeworICAgICAg
ICBBU1NFUlQobV9zaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiAh
PSBtX3Nob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbik7CisgICAgICAg
IHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQobV9zaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9u
T25OZXh0TmF2aWdhdGlvbik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmlu
ZGV4IDI5YTRlZjJlNzhiNzYxMWJlMWJiYjYxY2RhMTFkZTM1MGFjOTI3NDIuLjFlMjY5OGI2YmUy
MDhjNmQ4ZWJlZTg4MThlNjZmNjUwNjZhMjhhZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmgKQEAgLTExNiw2ICsxMTYsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJs
ZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sKTsKICAgICB2
b2lkIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7CisKKyAgICB2b2lkIHdpbGxOYXZp
Z2F0ZSgpOworICAgIHZvaWQgc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5h
dmlnYXRpb24oYm9vbCBzaG91bGRTd2FwKSB7IG1fc2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lv
bk9uTmV4dE5hdmlnYXRpb24gPSBzaG91bGRTd2FwOyB9CisgICAgdm9pZCBzZXRTaG91bGRTd2Fw
VG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oYm9vbCBzaG91bGRTd2FwKSB7IG1fc2hv
dWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uID0gc2hvdWxkU3dhcDsgfQor
CiAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCk7CiAgICAgdm9p
ZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFVzZXJT
dHlsZVNoZWV0TG9jYXRpb24oSlNTdHJpbmdSZWYgcGF0aCk7CkBAIC00NTgsNiArNDYzLDggQEAg
cHJpdmF0ZToKICAgICBib29sIG1faGFzUGVuZGluZ1dlYk5vdGlmaWNhdGlvbkNsaWNrIHsgZmFs
c2UgfTsKICAgICBib29sIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QgeyBmYWxzZSB9OworICAgIGJvb2wgbV9z
aG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX3Nob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiB7IGZh
bHNlIH07CiAKICAgICBkb3VibGUgbV9kYXRhYmFzZURlZmF1bHRRdW90YSB7IC0xIH07CiAgICAg
ZG91YmxlIG1fZGF0YWJhc2VNYXhRdW90YSB7IC0xIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvUG9saWN5RGVsZWdhdGUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvUG9saWN5RGVsZWdhdGUubW0KaW5kZXggNmNkNDg5MzdmNTUzNGNiMGMwZWY5NmEzMTM3MDUy
NTBhZjcwY2VmOC4uNTc4MjVmNGExNTgyYmYzNTljNTY4MDgyMDVmZDRmM2U0ZjBmNTZjOCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1BvbGljeURlbGVnYXRlLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9Qb2xpY3lEZWxlZ2F0ZS5tbQpAQCAtODUsOSArODUs
MTEgQEAgLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOihOU0RpY3Rpb25hcnkKIAogICAgIHByaW50ZigiJXNcbiIsIFttZXNz
YWdlIFVURjhTdHJpbmddKTsKIAotICAgIGlmIChwZXJtaXNzaXZlRGVsZWdhdGUpCisgICAgaWYg
KHBlcm1pc3NpdmVEZWxlZ2F0ZSkgeworICAgICAgICBpZiAoIVtmcmFtZSBmcmFtZUVsZW1lbnRd
KQorICAgICAgICAgICAgZ1Rlc3RSdW5uZXItPndpbGxOYXZpZ2F0ZSgpOwogICAgICAgICBbbGlz
dGVuZXIgdXNlXTsKLSAgICBlbHNlCisgICAgfSBlbHNlCiAgICAgICAgIFtsaXN0ZW5lciBpZ25v
cmVdOwogCiAgICAgaWYgKGNvbnRyb2xsZXJUb05vdGlmeURvbmUpIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCmluZGV4IGI5NDlkYzc2MTFmYjdjMzEyODViMjA0NWVmOTI0MTJjOWFlZjViZjEu
LjJjOGQxM2YwMWM3YWQ5M2VmZjA0ODA4YTVjYThiZDU3OWRiZGY5NTggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbApAQCAtMTA1LDcgKzEwNSw4IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsK
ICAgICB2b2lkIHNldElnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKGJvb2xlYW4gdmFsdWUpOwog
ICAgIHZvaWQgc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKGJvb2xlYW4g
dmFsdWUpOwogICAgIAotICAgIC8vIERFUFJFQ0FURUQ6IFVzZSA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Npb249dHJ1ZSBdIC0tPiBpbnN0ZWFkLgorICAgIC8vIERF
UFJFQ0FURUQ6IFVzZSA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUVwaGVtZXJhbFNlc3Np
b249dHJ1ZSBdIC0tPiBpbnN0ZWFkLCBvcgorICAgIC8vIHRlc3RSdW5uZXIuc2V0U2hvdWxkU3dh
cFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oKSAvIHRlc3RSdW5uZXIuc2V0U2hv
dWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKCkuCiAgICAgdm9pZCBzZXRQ
cml2YXRlQnJvd3NpbmdFbmFibGVkX0RFUFJFQ0FURUQoYm9vbGVhbiB2YWx1ZSk7CiAKICAgICAv
LyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCkBAIC0yNTMsNiArMjU0LDkgQEAgaW50ZXJmYWNlIFRl
c3RSdW5uZXIgewogCiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZShib29sZWFu
IHZhbHVlKTsKIAorICAgIHZvaWQgc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24oYm9vbGVhbiB2YWx1ZSk7CisgICAgdm9pZCBzZXRTaG91bGRTd2FwVG9EZWZh
dWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oYm9vbGVhbiB2YWx1ZSk7CisKICAgICAvLyBTZWN1
cmUgdGV4dCBpbnB1dCBtb2RlIChNYWMgb25seSkKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBzZWN1cmVFdmVudElucHV0SXNFbmFibGVkOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMDY1MjRh
MzA0YjhjOTUyOGUxYjg1OWQ3NTc2MmU1ZmIyZDlhZGJhZS4uZWVlNDkzMTQ2MmU3MzY2ZWI3ODcx
MmVmYjNlMzVlZThhMjU5ZDJlYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC01MDAsNiArNTAwLDI0IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCBlbmFibGVkKQogICAg
IFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VGb3JUZXN0aW5nKGluamVjdGVkQnVu
ZGxlLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCks
IG51bGxwdHIpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZFN3YXBUb0VwaGVtZXJh
bFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKGJvb2wgc2hvdWxkU3dhcCkKK3sKKyAgICBhdXRvJiBp
bmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKworICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZp
Z2F0aW9uIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkgPSBh
ZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShzaG91bGRTd2FwKSk7CisgICAgV0tCdW5kbGVQYWdlUG9z
dFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoaW5qZWN0ZWRCdW5kbGUucGFnZSgpLT5wYWdl
KCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7Cit9CisK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHROYXZp
Z2F0aW9uKGJvb2wgc2hvdWxkU3dhcCkKK3sKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNl
dFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiIpKTsKKyAgICBXS1Jl
dGFpblB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVh
dGUoc2hvdWxkU3dhcCkpOworICAgIFdLQnVuZGxlUGFnZVBvc3RTeW5jaHJvbm91c01lc3NhZ2VG
b3JUZXN0aW5nKGluamVjdGVkQnVuZGxlLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQo
KSwgbWVzc2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNl
dEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wgZW5hYmxlZCkKIHsKICAgICBh
dXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggMWQzMjMwNzNmODUwZDRkYTNiMzRiNzk0NzQyNGNhNGJlOTgxM2VmNC4uZWU0ODZlMTBiMTBi
ZWZmYzNmNDAzMjQ5NWVlMjA3NzgxNDlkMDIxYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTEyNyw2ICsxMjcsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKGludCk7CiAgICAgdm9pZCBzZXRBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEFsbG93c0FueVNT
TENlcnRpZmljYXRlKGJvb2wpOworICAgIHZvaWQgc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vz
c2lvbk9uTmV4dE5hdmlnYXRpb24oYm9vbCk7CisgICAgdm9pZCBzZXRTaG91bGRTd2FwVG9EZWZh
dWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oYm9vbCk7CiAgICAgdm9pZCBzZXRFbmNyeXB0ZWRN
ZWRpYUFQSUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRNZWRpYURldmljZXNFbmFibGVkKGJv
b2wpOwogICAgIHZvaWQgc2V0V2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkKGJvb2wpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAzMjY3ODMyM2Q3
MDY0MWQwMjAwZDU0NzE5MGJhMGE3MzU1N2MwYjlmLi41YzY2ODQ2OWVlZmRmNjA0ODU3NjBkZjAy
N2Q3NDM5NzM4YzY2ZmQ5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcApAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVjay5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVQb2xpY2llcy5oPgogI2luY2x1ZGUgPGFsZ29yaXRo
bT4KICNpbmNsdWRlIDxjc3RkaW8+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KQEAgLTI4MTEsMTQgKzI4
MTIsMjYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWcKICAgICBXS1JldGFpblB0cjxXS0ZyYW1l
UG9saWN5TGlzdGVuZXJSZWY+IHJldGFpbmVkTGlzdGVuZXIgeyBsaXN0ZW5lciB9OwogICAgIFdL
UmV0YWluUHRyPFdLTmF2aWdhdGlvbkFjdGlvblJlZj4gcmV0YWluZWROYXZpZ2F0aW9uQWN0aW9u
IHsgbmF2aWdhdGlvbkFjdGlvbiB9OwogICAgIGNvbnN0IGJvb2wgc2hvdWxkSWdub3JlIHsgbV9w
b2xpY3lEZWxlZ2F0ZUVuYWJsZWQgJiYgIW1fcG9saWN5RGVsZWdhdGVQZXJtaXNzaXZlIH07Ci0g
ICAgYXV0byBkZWNpc2lvbkZ1bmN0aW9uID0gW3Nob3VsZElnbm9yZSwgcmV0YWluZWRMaXN0ZW5l
ciwgcmV0YWluZWROYXZpZ2F0aW9uQWN0aW9uXSgpIHsKKyAgICBhdXRvIGRlY2lzaW9uRnVuY3Rp
b24gPSBbc2hvdWxkSWdub3JlLCByZXRhaW5lZExpc3RlbmVyLCByZXRhaW5lZE5hdmlnYXRpb25B
Y3Rpb24sIHNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uID0gbV9z
aG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiwgc2hvdWxkU3dhcFRv
RGVmYXVsdFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uID0gbV9zaG91bGRTd2FwVG9EZWZhdWx0U2Vz
c2lvbk9uTmV4dE5hdmlnYXRpb25dKCkgewogICAgICAgICBpZiAoc2hvdWxkSWdub3JlKQogICAg
ICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVySWdub3JlKHJldGFpbmVkTGlzdGVuZXIuZ2V0
KCkpOwogICAgICAgICBlbHNlIGlmIChXS05hdmlnYXRpb25BY3Rpb25TaG91bGRQZXJmb3JtRG93
bmxvYWQocmV0YWluZWROYXZpZ2F0aW9uQWN0aW9uLmdldCgpKSkKICAgICAgICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKHJldGFpbmVkTGlzdGVuZXIuZ2V0KCkpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UocmV0YWluZWRMaXN0
ZW5lci5nZXQoKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKHNob3VsZFN3YXBU
b0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uIHx8IHNob3VsZFN3YXBUb0RlZmF1bHRT
ZXNzaW9uT25OZXh0TmF2aWdhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVChzaG91bGRT
d2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbiAhPSBzaG91bGRTd2FwVG9EZWZh
dWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24pOworICAgICAgICAgICAgICAgIGF1dG8gcG9saWNp
ZXMgPSBhZG9wdFdLKFdLV2Vic2l0ZVBvbGljaWVzQ3JlYXRlKCkpOworICAgICAgICAgICAgICAg
IFdLUmV0YWluUHRyPFdLV2Vic2l0ZURhdGFTdG9yZVJlZj4gbmV3U2Vzc2lvbiA9IFRlc3RDb250
cm9sbGVyOjp3ZWJzaXRlRGF0YVN0b3JlKCk7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZFN3
YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKQorICAgICAgICAgICAgICAgICAg
ICBuZXdTZXNzaW9uID0gYWRvcHRXSyhXS1dlYnNpdGVEYXRhU3RvcmVDcmVhdGVOb25QZXJzaXN0
ZW50RGF0YVN0b3JlKCkpOworICAgICAgICAgICAgICAgIFdLV2Vic2l0ZVBvbGljaWVzU2V0RGF0
YVN0b3JlKHBvbGljaWVzLmdldCgpLCBuZXdTZXNzaW9uLmdldCgpKTsKKyAgICAgICAgICAgICAg
ICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMocmV0YWluZWRMaXN0ZW5lci5n
ZXQoKSwgcG9saWNpZXMuZ2V0KCkpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKHJldGFpbmVkTGlzdGVuZXIuZ2V0KCkpOworICAg
ICAgICB9CiAgICAgfTsKKyAgICBtX3Nob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHRO
YXZpZ2F0aW9uID0gZmFsc2U7CisgICAgbV9zaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24gPSBmYWxzZTsKIAogICAgIGlmIChtX3Nob3VsZERlY2lkZU5hdmlnYXRpb25Q
b2xpY3lBZnRlckRlbGF5KQogICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92
ZShkZWNpc2lvbkZ1bmN0aW9uKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggYzNjYzUwZDdkMjliZjk2YWVmMzc3ZjEyNjAyODQ4MmFkYjVlZDk3Yy4uODM3ZTRh
YjJjYjBlNjYxNzFjZGVmNDBiZGIxNDg2YzZlMGJkNzE0OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMTg2LDYgKzE4Niw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUoU3RyaW5nIHVzZXJuYW1lKSB7IG1fYXV0aGVudGlj
YXRpb25Vc2VybmFtZSA9IHVzZXJuYW1lOyB9CiAgICAgdm9pZCBzZXRBdXRoZW50aWNhdGlvblBh
c3N3b3JkKFN0cmluZyBwYXNzd29yZCkgeyBtX2F1dGhlbnRpY2F0aW9uUGFzc3dvcmQgPSBwYXNz
d29yZDsgfQogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CisgICAg
dm9pZCBzZXRTaG91bGRTd2FwVG9FcGhlbWVyYWxTZXNzaW9uT25OZXh0TmF2aWdhdGlvbihib29s
IHZhbHVlKSB7IG1fc2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24g
PSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNlc3Npb25Pbk5leHRO
YXZpZ2F0aW9uKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4
dE5hdmlnYXRpb24gPSB2YWx1ZTsgfQogCiAgICAgdm9pZCBzZXRCbG9ja0FsbFBsdWdpbnMoYm9v
bCBzaG91bGRCbG9jayk7CiAgICAgdm9pZCBzZXRQbHVnaW5TdXBwb3J0ZWRNb2RlKGNvbnN0IFN0
cmluZyYpOwpAQCAtNTkzLDYgKzU5NSw4IEBAIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV9zZXJ2
ZXJUcnVzdEV2YWx1YXRpb25DYWxsYmFja0NhbGxzQ291bnQgeyAwIH07CiAgICAgYm9vbCBtX3No
b3VsZERpc21pc3NKYXZhU2NyaXB0QWxlcnRzQXN5bmNocm9ub3VzbHkgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZSB7IHRydWUgfTsKKyAgICBib29sIG1fc2hv
dWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24geyBmYWxzZSB9OworICAg
IGJvb2wgbV9zaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24geyBmYWxz
ZSB9OwogfTsKIAogc3RydWN0IFRlc3RDb21tYW5kIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggZjliNWI3NDE0NzA2MDMxZjE2MTkyZWQyODA2MTIwMzNi
N2NmNjlmNy4uNjA3ZTViYmRiNGIwNTZlYjZiNWI2NGViMDAxN2RiODA1YzA3YTk5MiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTkyNSw2ICs5MjUsMTYg
QEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKFdLQm9vbGVhbkdldFZhbHVlKHN0YXRp
Y19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpKSk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KKyAgICAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIlNldFNob3VsZFN3YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0
aW9uIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFNob3VsZFN3
YXBUb0VwaGVtZXJhbFNlc3Npb25Pbk5leHROYXZpZ2F0aW9uKFdLQm9vbGVhbkdldFZhbHVlKHN0
YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2FnZUJvZHkpKSk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKyAgICAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZFN3YXBUb0RlZmF1bHRTZXNzaW9uT25OZXh0TmF2aWdh
dGlvbiIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRT
d2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24oV0tCb29sZWFuR2V0VmFsdWUoc3Rh
dGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSkpKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgfQogCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVz
c2FnZU5hbWUsICJJbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZCIpKSB7CiAgICAgICAgIHVu
c2lnbmVkIGNvdW50ID0gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmltYWdlQ291bnRJbkdl
bmVyYWxQYXN0ZWJvYXJkKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjAzNmZjYWE4NGM0ZTFkMzUxOGFmOTQ3ZTc1NDcy
OGQ0MDAzMjRiZC4uMTM0YzViZjZlYmY0NGFlMzg1ODE1NzExMjYwOWY2M2UwYzdhNjk1NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDE5LTA5LTA5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyB0ZXN0UnVubmVyLnNldFByaXZhdGVCcm93c2lu
Z0VuYWJsZWRfREVQUkVDQVRFRCgpIGluIGh0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9uL2Nv
bnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNTk2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBVcGRhdGUgbGF5b3V0IHRlc3Qg
dG8gdXNlIHRlc3RSdW5uZXIuc2V0U2hvdWxkU3dhcFRvRXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5h
dmlnYXRpb24oKSAmCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkU3dhcFRvRGVmYXVsdFNl
c3Npb25Pbk5leHROYXZpZ2F0aW9uKCkgaW5zdGVhZCBvZiB0aGUgbGVnYWN5CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBSRUNBVEVEKCkuIFRoZSB0ZXN0
IG5lZWRlZCBzb21lIGV4dHJhIHN0ZXBzIHRvCisgICAgICAgIG5hdmlnYXRlIHdoZW5ldmVyIHdl
IHN3aXRjaCBzZXNzaW9uIGJ1dCBpdCBpcyBhIGxvdCBtb3JlIHJlYWxpc3RpYyBhbmQgaXMgcmVh
bGx5IHN3aXRjaGluZworICAgICAgICBzZXNzaW9uIG9uIFdlYktpdDIuIFRoZSB0ZXN0UnVubmVy
LnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRfREVQUkVDQVRFRCgpIHdhcyBub3QgdHJ1bHkKKyAg
ICAgICAgc3dpdGNoaW5nIHNlc3Npb24sIGp1c3QgbWFraW5nIHRoZSBkb2N1bWVudCB0aGluayBp
dCBkaWQuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJz
aW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWw6CisKIDIwMTktMDktMDkgIEpp
ZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgVGVzdCBo
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtdTJm
LXNpbGVudC5odHRwcy5odG1sIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlvbi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJh
bC1zZXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FkQ2xpY2tBdHRyaWJ1dGlv
bi9jb252ZXJzaW9uLWRpc2FibGVkLWluLWVwaGVtZXJhbC1zZXNzaW9uLmh0bWwKaW5kZXggNjY5
YzFiZDIzZmJiYzEyMTJiZDc2MTJjMDY1NDE3ODYwM2ZlMWMzYS4uOWE4ZjE4NGZhOWYxNjJmNjZj
OTQ1ZjM2MzM4NDRlNDBiNjllZDVmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hZENsaWNrQXR0cmlidXRpb24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vz
c2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYWRDbGlja0F0dHJpYnV0aW9u
L2NvbnZlcnNpb24tZGlzYWJsZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbApAQCAtNDUsNyAr
NDUsNiBAQAogICAgIGZ1bmN0aW9uIGFwcGVuZENvbnZlcnNpb25EYXRhSWZyYW1lQW5kRmluaXNo
KCkgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBZENsaWNrQXR0cmlidXRpb24oKTsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0TGluayIpKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicGl4ZWwiKSk7CiAKICAgICAgICAgYXBwZW5kSWZyYW1lKCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9nZXRDb252ZXJzaW9u
RGF0YS5waHA/dGltZW91dF9tcz0xMDAwJm5vbmNlPSIgKyBub25jZSwgZnVuY3Rpb24oKSB7CiAg
ICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOwpAQCAtNTUsMTQgKzU0LDE5IEBACiAgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVHdvIikgewot
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZF9ERVBS
RUNBVEVEKHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkU3dhcFRv
RXBoZW1lcmFsU2Vzc2lvbk9uTmV4dE5hdmlnYXRpb24odHJ1ZSk7CisgICAgICAgICAgICAgICAg
d2luZG93LmxvY2F0aW9uID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9hZENsaWNrQXR0cmlidXRp
b24vY29udmVyc2lvbi1kaXNhYmxlZC1pbi1lcGhlbWVyYWwtc2Vzc2lvbi5odG1sP3N0ZXBUaHJl
ZSI7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/
c3RlcFRocmVlIikgewogICAgICAgICAgICAgICAgIGxldCBpbWFnZUVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbWciKTsKICAgICAgICAgICAgICAgICBpbWFnZUVsZW1lbnQuc3Jj
ID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvYWRDbGlja0F0dHJpYnV0aW9uL3Jlc291cmNlcy9y
ZWRpcmVjdFRvQ29udmVyc2lvbi5waHA/Y29udmVyc2lvbkRhdGE9MTImbm9uY2U9IiArIG5vbmNl
OwogICAgICAgICAgICAgICAgIGltYWdlRWxlbWVudC5pZCA9ICJwaXhlbCI7CiAgICAgICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVBbmRGaW5pc2goKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRTd2FwVG9EZWZhdWx0U2Vzc2lvbk9uTmV4dE5h
dmlnYXRpb24odHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvYWRDbGlja0F0dHJpYnV0aW9uL2NvbnZlcnNpb24tZGlzYWJs
ZWQtaW4tZXBoZW1lcmFsLXNlc3Npb24uaHRtbD9zdGVwRm91ciI7CiAgICAgICAgICAgICAgICAg
fTsKICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlRWxlbWVu
dCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/
c3RlcEZvdXIiKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kQ29udmVyc2lvbkRhdGFJZnJhbWVB
bmRGaW5pc2goKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuY29va2llID0gImNvb2tpZVNldEFzRmlyc3RQYXJ0eT0xOyBwYXRoPS8iOwogICAgICAgICAg
ICAgICAgIGFjdGl2YXRlRWxlbWVudCgidGFyZ2V0TGluayIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>