<?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>188564</bug_id>
          
          <creation_ts>2018-08-14 11:01:52 -0700</creation_ts>
          <short_desc>Storage Access API: Maintain access through same-site navigations</short_desc>
          <delta_ts>2019-06-07 09:26:17 -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>Frames</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=198663</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dima Voytenko">dvoytenko</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1450024</commentid>
    <comment_count>0</comment_count>
    <who name="Dima Voytenko">dvoytenko</who>
    <bug_when>2018-08-14 11:01:52 -0700</bug_when>
    <thetext>An approved `document.requestStorageAccess` will include cookies in the subsequent XHR requests. However, in many cases, it&apos;d be much easier to simply reload the iframe once the storage access has been approved. This seems to fit well within the intent of `requestStorageAccess` API. This especially helps cases that rely on server-side rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451281</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-17 16:54:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/43445160&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451284</commentid>
    <comment_count>2</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-17 16:56:22 -0700</bug_when>
    <thetext>Thanks! We&apos;ve received other requests on allowing persisted storage access on same-origin navigations of the iframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451657</commentid>
    <comment_count>3</comment_count>
    <who name="Dima Voytenko">dvoytenko</who>
    <bug_when>2018-08-20 11:57:37 -0700</bug_when>
    <thetext>Thanks, John! Please notice that this wouldn&apos;t only be useful for a clean internal page state, but also security-specific headers such as CSP config.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451661</commentid>
    <comment_count>4</comment_count>
    <who name="Dima Voytenko">dvoytenko</who>
    <bug_when>2018-08-20 12:03:53 -0700</bug_when>
    <thetext>RE: navigations: this would certainly be helpful. For this report, however, I intentionally narrowed the scope as much as possible in hopes that this would be more agreeable and possibly faster to implement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451667</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-20 12:07:38 -0700</bug_when>
    <thetext>1(In reply to Dima Voytenko from comment #4)
&gt; RE: navigations: this would certainly be helpful. For this report, however,
&gt; I intentionally narrowed the scope as much as possible in hopes that this
&gt; would be more agreeable and possibly faster to implement.

As stated, I&apos;m talking about iframe navigations, not top frame navigations. Reloading the iframe is an iframe navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451672</commentid>
    <comment_count>6</comment_count>
    <who name="Dima Voytenko">dvoytenko</who>
    <bug_when>2018-08-20 12:14:02 -0700</bug_when>
    <thetext>&gt; I&apos;m talking about iframe navigations, not top frame navigations.

I&apos;m likewise talking about iframe navigation/reload. Not sure where confusion has come from. Are iframes in Safari not observing CSP headers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1451677</commentid>
    <comment_count>7</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-20 12:21:23 -0700</bug_when>
    <thetext>(In reply to Dima Voytenko from comment #6)
&gt; &gt; I&apos;m talking about iframe navigations, not top frame navigations.
&gt; 
&gt; I&apos;m likewise talking about iframe navigation/reload. Not sure where
&gt; confusion has come from. Are iframes in Safari not observing CSP headers?

I&apos;m commenting on &quot;RE: navigations: this would certainly be helpful. For this report, however, I intentionally narrowed the scope as much as possible …&quot;

Your scope is for iframe reloads which are iframe navigations. I can see that a reload would preserve the whole URL and not just the origin, but the significant change request is whether same-origin iframe navigations should be allowed or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455429</commentid>
    <comment_count>8</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-30 14:47:16 -0700</bug_when>
    <thetext>New title to reflect the proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455487</commentid>
    <comment_count>9</comment_count>
      <attachid>348574</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-30 17:28:40 -0700</bug_when>
    <thetext>Created attachment 348574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455488</commentid>
    <comment_count>10</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-30 17:30:01 -0700</bug_when>
    <thetext>The style checker error about &quot;Inline functions should not be in classes annotated with WEBCORE_EXPORT&quot; is not applicable. The whole class is marked for export and has several inline functions, including the one I&apos;m adding two parameters to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455489</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-30 17:33:59 -0700</bug_when>
    <thetext>Attachment 348574 did not pass style-queue:


ERROR: Source/WebCore/loader/FrameLoaderClient.h:169:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455793</commentid>
    <comment_count>12</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-31 11:56:06 -0700</bug_when>
    <thetext>I will add another correctness step to one of the test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455810</commentid>
    <comment_count>13</comment_count>
      <attachid>348664</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-31 12:50:45 -0700</bug_when>
    <thetext>Created attachment 348664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455812</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-31 12:51:54 -0700</bug_when>
    <thetext>Attachment 348664 did not pass style-queue:


ERROR: Source/WebCore/loader/FrameLoaderClient.h:169:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455841</commentid>
    <comment_count>15</comment_count>
      <attachid>348664</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-08-31 13:43:22 -0700</bug_when>
    <thetext>Comment on attachment 348664
Patch

Thank you, Alex!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455849</commentid>
    <comment_count>16</comment_count>
      <attachid>348664</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-31 14:09:43 -0700</bug_when>
    <thetext>Comment on attachment 348664
Patch

Clearing flags on attachment: 348664

Committed r235569: &lt;https://trac.webkit.org/changeset/235569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455850</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-08-31 14:09:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348574</attachid>
            <date>2018-08-30 17:28:40 -0700</date>
            <delta_ts>2018-08-31 12:50:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188564-20180830172839.patch</filename>
            <type>text/plain</type>
            <size>32721</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUwMzNjYjI5MDE4MGYy
YTQxMmMxZWQ4ZmZlNzNkZmFkZDFhNzQ1NC4uNmFhYjU5MGJkNDExY2JjNDcyNzJhY2VmNTliODVl
YzNjYjAzOGQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA4LTMwICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JhZ2UgQWNjZXNz
IEFQSTogTWFpbnRhaW4gYWNjZXNzIHRocm91Z2ggc2FtZS1zaXRlIG5hdmlnYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg1NjQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQzNDQ1MTYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90
LWhhdmUtYWNjZXNzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxk
LWhhdmUtYWNjZXNzLmh0bWwKKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxOC0wOC0zMCAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgd2lkdGggb2YgYSBu
dWxscHRyIFRleHRSdW4gc2hvdWxkIGJlIHplcm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOTY4OGE5YTE2MmVjZmYz
YTQ0Y2YzZjljMDRmNTA0ZjM1MDM4MzM4Ny4uODljODA5Mjg5Y2VhZmZkYmM0M2JjZjQ3Y2JhNWNm
NjNmNzQ3ZTg4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wOC0zMCAgSm9obiBX
aWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yYWdlIEFjY2VzcyBB
UEk6IE1haW50YWluIGFjY2VzcyB0aHJvdWdoIHNhbWUtc2l0ZSBuYXZpZ2F0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NTY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80MzQ0NTE2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hXaWxsQ2hhbmdlRG9jdW1lbnQpOgorICAgICAgICAgICAgTm93IHRha2VzIHRoZSBj
dXJyZW50IFVSTCBhbmQgdGhlIG5ldyBVUkwgYXMgcGFyYW1ldGVycworICAgICAgICAgICAgYW5k
IG9ubHkgY2xlYXJzIG91dCBzdG9yYWdlIGFjY2VzcyBpZiB0aGUgbmF2aWdhdGlvbiBpcworICAg
ICAgICAgICAgY3Jvc3Mtc2l0ZSwgaS5lLiB3aXRoIGRpZmZlcmluZyBlVExEKzFzLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwog
MjAxOC0wOC0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNb2NrIHZpZGVvIGRldmljZXMgc2hvdWxkIG9ubHkgc3VwcG9ydCBkaXNjcmV0ZSBzaXpl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggMjM0NzQ5ZjFm
Njc0OWZhNGU5YmZiNDQyYzIyZjAxOGI0ZDEyNmM2Yy4uNDMwNjA2OTJjZGI2MGU3MmU4OGM5NDFh
ZDQ4OGIyNzhmNTk0MzFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6d2lsbFNlbmRSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmMKICAgICBGcmFt
ZUxvYWRlcjo6YWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQobmV3UmVxdWVzdCwgbV9m
cmFtZS0+ZG9jdW1lbnQoKSk7CiAKICAgICBpZiAoIWRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNl
KQotICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5kaXNwYXRjaFdpbGxDaGFuZ2VEb2N1
bWVudCgpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5kaXNwYXRjaFdpbGxDaGFu
Z2VEb2N1bWVudChtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgbmV3UmVxdWVzdC51cmwoKSk7
CiAKICAgICAvLyBJZiB3ZSdyZSBmaWVsZGluZyBhIHJlZGlyZWN0IGluIHJlc3BvbnNlIHRvIGEg
UE9TVCwgZm9yY2UgYSBsb2FkIGZyb20gb3JpZ2luLCBzaW5jZQogICAgIC8vIHRoaXMgaXMgYSBj
b21tb24gc2l0ZSB0ZWNobmlxdWUgdG8gcmV0dXJuIHRvIGEgcGFnZSB2aWV3aW5nIHNvbWUgZGF0
YSB0aGF0IHRoZSBQT1NUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDA3NGU1NDFmM2JjYTVhMWFkZmZiNTE2NjUxNTRlZGFmZmU1M2MyYmUuLjFiYTkxNjI0
N2I2MWRiZWU4MjI2Mjk0NmYwOTc0ZjE5MWZkYzE4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNjYsNyArMTY2LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgVVJMJiwg
ZG91YmxlIGludGVydmFsLCBXYWxsVGltZSBmaXJlRGF0ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaFdpbGxDaGFuZ2VEb2N1bWVudCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aFdpbGxDaGFuZ2VEb2N1bWVudChjb25zdCBVUkwmLCBjb25zdCBVUkwmKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWROYXZpZ2F0ZVdpdGhpblBhZ2UoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDFiOTRiYmM3MGFkN2E4MTQzNDliYzg3ZjQ4MTVi
YzNiNGY2M2MwYzkuLjI1ODdhM2NjN2I0ZGFjNGI2MTcxYjY3NzU4MWY2YzQzOWUwYjQxMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODMsNiArODMsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvUG9saWN5Q2hlY2tlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvZ3Jlc3NU
cmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRy
b2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTM4Myw3ICszODQsNyBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgpCiAgICAgd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VNYWluRG9jdW1lbnQobV9m
cmFtZS0+ZnJhbWVJRCgpKSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoV2lsbENoYW5nZURvY3VtZW50KCkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoV2lsbENoYW5nZURvY3VtZW50KGNvbnN0IFVSTCYgY3VycmVudFVybCwgY29uc3QgVVJMJiBu
ZXdVcmwpCiB7CiAjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAg
aWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCkBAIC0zOTMsNyArMzk0LDcgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsQ2hhbmdlRG9jdW1lbnQoKQogICAgIGlmICgh
d2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faGFzRnJhbWVTcGVjaWZpY1N0
b3JhZ2VBY2Nlc3MpIHsKKyAgICBpZiAobV9oYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcyAm
JiAhV2ViQ29yZTo6cmVnaXN0cmFibGVEb21haW5zQXJlRXF1YWwoY3VycmVudFVybCwgbmV3VXJs
KSkgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShzZXNzaW9uSUQoKSwg
ZnJhbWVJRCgpLnZhbHVlKCksIHBhZ2VJRCgpLnZhbHVlKCkpLCAwKTsKICAgICAgICAgbV9oYXNG
cmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcyA9IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggMjU0NTY4ZTQyN2QxNDI3NGRlMjQwNTIzNWYzYTlkYTRkNTA2MmVh
MS4uMGRkZTdiZDdkOWM1N2NjYTYxYjRiZjg0YjY1YTlmZjA5ODc2ZWM0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
c3BhdGNoRGlkRmluaXNoRGF0YURldGVjdGlvbihOU0FycmF5ICpkZXRlY3Rpb25SZXN1bHRzKSBm
aW5hbDsKICNlbmRpZgogICAgIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VNYWluRG9jdW1lbnQoKSBm
aW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KCkgZmluYWw7CisgICAg
dm9pZCBkaXNwYXRjaFdpbGxDaGFuZ2VEb2N1bWVudChjb25zdCBXZWJDb3JlOjpVUkwmIGN1cnJl
bnRVcmwsIGNvbnN0IFdlYkNvcmU6OlVSTCYgbmV3VXJsKSBmaW5hbDsKIAogICAgIHZvaWQgZGlz
cGF0Y2hEaWREaXNwYXRjaE9ubG9hZEV2ZW50cygpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmMGViNDVlNzc5ZWZmMzk0Y2Q4ZjRhMTZhZDZlNTU5Y2ZjNTgxZTlkLi5jNTdhZmI0NTU2MWU1
ZGM3YTZlYWIyOTk0MzI0YzI4NDhhNWJhYzZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTgt
MDgtMzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgU3Rv
cmFnZSBBY2Nlc3MgQVBJOiBNYWludGFpbiBhY2Nlc3MgdGhyb3VnaCBzYW1lLXNpdGUgbmF2aWdh
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
ODU2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDM0NDUxNjA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nl
c3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1l
LWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1m
cm9tLXJpZ2h0LWZyYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQt
aWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFj
Y2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLmh0bWw6CisgICAgICAgICAgICBBZGRlZCBhIGNyb3NzLXNp
dGUgbmF2aWdhdGlvbiB0byB0aGUgc3ViIGZyYW1lIHNvIHRoYXQgdGhlIGZpbmFsIHRlc3QgcmVz
dWx0IHN0YXlzIHRoZSBzYW1lLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9y
ZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1jcm9zcy1zaXRlLXNob3VsZC1u
b3QtaGF2ZS1hY2Nlc3MtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdh
dGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRl
LWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy5odG1sOiBDb3BpZWQgZnJvbSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNz
LXRoZW4tbmF2aWdhdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy5odG1sLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZp
Z2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFu
dC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWV4cGVjdGVkLnR4
dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQt
YWNjZXNzLXRoZW4tbmF2aWdhdGUtc2FtZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qt
YW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MuaHRt
bC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NlbGYtbmF2
aWdhdGluZy1mcmFtZS1hZnRlci1ncmFudGVkLWFjY2Vzcy5odG1sOgorICAgICAgICAgICAgU3Vw
cG9ydCBmb3IgdGhlIG5ldyB0ZXN0IHNjZW5hcmlvcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAgICBNYXJrZWQgdGhlIG5ldyBhbmQgdGhl
IHJlbmFtZWQgdGVzdHMgYXMgWyBQYXNzIF0uCisKIDIwMTgtMDgtMzAgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVGhlIHdpZHRoIG9mIGEgbnVsbHB0ciBU
ZXh0UnVuIHNob3VsZCBiZSB6ZXJvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5k
Ym94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24t
YW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3Jp
Z2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IGQ2
YmM3Nzc1Mzc1MDEzZGIzOGY2MDRlNjJiMjU1MWU5YzY4Zjg3M2YuLmEzOTQ3MGY5ZDc4MzFmY2My
ZWY0ZTBmYTJlMzZkMjc2MTAyZjAyZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNh
bmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlv
bi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jv
c3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUtZXhwZWN0ZWQudHh0CkBA
IC00Miw3ICs0Miw3IEBAIENsaWVudC1zaWRlIGRvY3VtZW50LmNvb2tpZToKIC0tLS0tLS0tCiBG
cmFtZTogJzwhLS1mcmFtZTUtLT4nCiAtLS0tLS0tLQotQWZ0ZXIgdGhlIHRvcCBmcmFtZSBuYXZp
Z2F0ZXMgdGhlIHN1YiBmcmFtZSwgdGhlIHN1YiBmcmFtZSBzaG91bGQgbm8gbG9uZ2VyIGhhdmUg
YWNjZXNzIHRvIGNvb2tpZXMuCitBZnRlciB0aGUgdG9wIGZyYW1lIG5hdmlnYXRlcyB0aGUgc3Vi
IGZyYW1lIGNyb3NzLXNpdGUgYW5kIGJhY2ssIHRoZSBzdWIgZnJhbWUgc2hvdWxkIG5vIGxvbmdl
ciBoYXZlIGFjY2VzcyB0byBjb29raWVzLgogRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAn
Zmlyc3RQYXJ0eUNvb2tpZScuCiBEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICdwYXJ0aXRp
b25lZENvb2tpZScuCiBDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13
aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13
aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLmh0bWwKaW5k
ZXggZjE2MDEwMzkwYTk0NDM3Njk3YTA0ZjRjMGZlZmMwNGY2OTY4ZTBkNC4uNmYyN2YwMjQ4OTQx
ODI0ZTliYmI4ZjJkNjQ3ZjA0YjVjZmNjNmY4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1vcmln
aW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWludGVy
YWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mt
b3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1p
bnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUuaHRtbApAQCAtMTE5LDEyICsx
MTksMTkgQEAKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA3IjoKICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwOCI7Ci0gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgbm8gY29va2llIGdl
dHMgc2VudCBmb3IgbG9jYWxob3N0IHVuZGVyIDEyNy4wLjAuMSBzaW5jZSB3ZSdyZSBvcGVuaW5n
IGluIHRoZSBmcmFtZSB0aGF0IHdhcyBncmFudGVkIGFjY2Vzcy4KKyAgICAgICAgICAgICAgICAg
ICAgLy8gTmF2aWdhdGUgdGhlIGZyYW1lIGNyb3NzLXNpdGUuCiAgICAgICAgICAgICAgICAgICAg
IGxldCBleGlzdGluZ0lmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUaGVJZnJhbWVU
aGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CiAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5n
SWZyYW1lLm9ubG9hZCA9IHJ1blRlc3Q7Ci0gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSWZy
YW1lLnNyYyA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVz
c2FnZT1BZnRlciB0aGUgdG9wIGZyYW1lIG5hdmlnYXRlcyB0aGUgc3ViIGZyYW1lLCB0aGUgc3Vi
IGZyYW1lIHNob3VsZCBubyBsb25nZXIgaGF2ZSBhY2Nlc3MgdG8gY29va2llcy4iOworICAgICAg
ICAgICAgICAgICAgICBleGlzdGluZ0lmcmFtZS5zcmMgPSAiaHR0cDovLyIgKyBwYXJ0aXRpb25I
b3N0OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlICIj
c3RlcDgiOgorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5oYXNoID0gInN0
ZXA5IjsKKyAgICAgICAgICAgICAgICAgICAgLy8gQWdhaW4gb3BlbiBsb2NhbGhvc3QgaW4gdGhl
IGV4aXN0aW5nIGZyYW1lIGFuZCBjaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxv
Y2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2UgaXQgaGFzIGJlZW4gbmF2aWdhdGVkIGNyb3Nz
LXNpdGUuCisgICAgICAgICAgICAgICAgICAgIGxldCBleGlzdGluZ0lmcmFtZUFnYWluID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3Mi
KTsKKyAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdJZnJhbWVBZ2Fpbi5vbmxvYWQgPSBydW5U
ZXN0OworICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0lmcmFtZUFnYWluLnNyYyA9IHRoaXJk
UGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1BZnRlciB0aGUg
dG9wIGZyYW1lIG5hdmlnYXRlcyB0aGUgc3ViIGZyYW1lIGNyb3NzLXNpdGUgYW5kIGJhY2ssIHRo
ZSBzdWIgZnJhbWUgc2hvdWxkIG5vIGxvbmdlciBoYXZlIGFjY2VzcyB0byBjb29raWVzLiI7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6
CiAgICAgICAgICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhh
dmUtYWNjZXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTBmNGQ5MDYwMTViNGEzNGZhYzY3
OGNlNzYzODJmY2I2OTM1MDAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRl
LWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMyBAQAorVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZhbGVu
dCBkb21haW4gdGhhdCBpcyBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIGFuZCB0aGVuIG5hdmlnYXRl
cyBpdHNlbGYgY3Jvc3Mtc2l0ZSBkb2VzIG5vdCBoYXZlIHN0b3JhZ2UgYWNjZXNzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5jb29raWUgPT0gCitQQVNT
IFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVkLgorUEFTUyBkb2N1bWVudC5jb29raWUgPT0gY29v
a2llU2V0Q2xpZW50U2lkZUFmdGVyR3JhbnRlZFN0b3JhZ2VBY2Nlc3M9dmFsdWU7IGZpcnN0UGFy
dHlDb29raWU9dmFsdWUKK1BBU1MgTm8gc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9
PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lkZSA9PSAiTm8gY29va2llcyIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNz
LXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjVmMWJmNzViZmUwYjk2ODkzMjMwOTVjNTc2NGIxN2Q4Zjc5MjdiNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1
ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1jcm9zcy1zaXRlLXNob3VsZC1ub3Qt
aGF2ZS1hY2Nlc3MuaHRtbApAQCAtMCwwICsxLDkwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZhbGVu
dCBkb21haW4gdGhhdCBpcyBncmFudGVkIHN0b3JhZ2UgYWNjZXNzIGFuZCB0aGVuIG5hdmlnYXRl
cyBpdHNlbGYgY3Jvc3Mtc2l0ZSBkb2VzIG5vdCBoYXZlIHN0b3JhZ2UgYWNjZXNzLiIpOworICAg
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZp
bmlzaEpTVGVzdCk7CisgICAgICAgIH0KKworICAgICAgICBjb25zdCBleHBlY3RlZFBhc3NNZXNz
YWdlcyA9IDI7CisgICAgICAgIHZhciBwYXNzTWVzc2FnZXNSZWNlaXZlZCA9IDA7CisgICAgICAg
IGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgICAgICBpZiAoZXZlbnQu
b3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgICAgIGlm
IChldmVudC5kYXRhLmluZGV4T2YoImRvY3VtZW50LmNvb2tpZSIpID09PSAwKSB7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgfSBl
bHNlIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSAhPT0gLTEpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAg
ICAgICAgICAgICAgICAgICAgcGFzc01lc3NhZ2VzUmVjZWl2ZWQrKzsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKHBhc3NNZXNzYWdlc1JlY2VpdmVkID49IGV4cGVjdGVkUGFzc01lc3NhZ2VzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7CisgICAg
ICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVz
c2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxlbWVudElkKSB7CisgICAgICAgICAgICB2
YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7CisgICAgICAg
ICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lk
dGggLyAyOworICAgICAgICAgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVs
ZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQo
Y2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJlc2NhcGUiKTsKKyAgICAgICAgICAgICAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJObyBldmVu
dFNlbmRlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVj
dGVkLiIpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CisgICAgICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0
c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGhvc3RVbmRlclRl
c3QgPSAibG9jYWxob3N0OjgwMDAiOworICAgICAgICBjb25zdCBzdGF0aXN0aWNzVXJsID0gImh0
dHA6Ly8iICsgaG9zdFVuZGVyVGVzdDsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLmhh
c2ggIT09ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIpIHsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRp
b24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1j
b29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2YWx1ZT12YWx1ZSNodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZp
Z2F0ZS1jcm9zcy1zaXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MuaHRtbCNmaXJzdFBhcnR5Q29v
a2llU2V0IjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNl
ckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0
aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgi
SG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzYW5kYm94IiwgImFsbG93LXN0b3JhZ2UtYWNj
ZXNzLWJ5LXVzZXItYWN0aXZhdGlvbiBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luIGFs
bG93LW1vZGFscyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxv
YWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9
ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdl
QWNjZXNzL3Jlc291cmNlcy9zZWxmLW5hdmlnYXRpbmctZnJhbWUtYWZ0ZXItZ3JhbnRlZC1hY2Nl
c3MuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGlj
eVNob3VsZEdyYW50QWNjZXNzLGNyb3NzU2l0ZU5hdmlnYXRpb24iOworICAgICAgICAgICAgICAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5h
dmlnYXRlLXNhbWUtc2l0ZS1zaG91bGQtaGF2ZS1hY2Nlc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10
aGVuLW5hdmlnYXRlLXNhbWUtc2l0ZS1zaG91bGQtaGF2ZS1hY2Nlc3MtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI3NDVkYjU5NGU5Y2Y4MzBhMjhjNDYxMjEwZjc4ZTQ5MTU4ZTkwNDQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2FtZS1zaXRlLXNob3VsZC1oYXZlLWFj
Y2Vzcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhhdCBhIGNyb3NzLW9y
aWdpbiBpZnJhbWUgZnJvbSBhIHByZXZhbGVudCBkb21haW4gdGhhdCBpcyBncmFudGVkIHN0b3Jh
Z2UgYWNjZXNzIGFuZCB0aGVuIG5hdmlnYXRlcyBpdHNlbGYgc2FtZS1zaXRlIHN0aWxsIGhhcyBz
dG9yYWdlIGFjY2Vzcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9j
dW1lbnQuY29va2llID09IAorUEFTUyBTdG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4KK1BBU1Mg
ZG9jdW1lbnQuY29va2llID09IGNvb2tpZVNldENsaWVudFNpZGVBZnRlckdyYW50ZWRTdG9yYWdl
QWNjZXNzPXZhbHVlOyBmaXJzdFBhcnR5Q29va2llPXZhbHVlCitQQVNTIEhhcyBzdG9yYWdlIGFj
Y2Vzcy4gZG9jdW1lbnQuY29va2llID09IGNvb2tpZVNldENsaWVudFNpZGVBZnRlckdyYW50ZWRT
dG9yYWdlQWNjZXNzPXZhbHVlOyBmaXJzdFBhcnR5Q29va2llPXZhbHVlLCBjb29raWVzIHNlZW4g
c2VydmVyLXNpZGUgPT0geyJjb29raWVTZXRDbGllbnRTaWRlQWZ0ZXJHcmFudGVkU3RvcmFnZUFj
Y2VzcyI6InZhbHVlIiwiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRo
ZW4tbmF2aWdhdGUtc2FtZS1zaXRlLXNob3VsZC1oYXZlLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVu
LW5hdmlnYXRlLXNhbWUtc2l0ZS1zaG91bGQtaGF2ZS1hY2Nlc3MuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZmE0ZmVkNTIzMWZhMWFjYTM2NDBjMWJkOGZhOTUxYmMyZmYwMDViCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy10aGVuLW5hdmlnYXRlLXNhbWUtc2l0ZS1zaG91bGQtaGF2ZS1hY2Nlc3MuaHRtbApA
QCAtMCwwICsxLDkwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhh
dCBhIGNyb3NzLW9yaWdpbiBpZnJhbWUgZnJvbSBhIHByZXZhbGVudCBkb21haW4gdGhhdCBpcyBn
cmFudGVkIHN0b3JhZ2UgYWNjZXNzIGFuZCB0aGVuIG5hdmlnYXRlcyBpdHNlbGYgc2FtZS1zaXRl
IHN0aWxsIGhhcyBzdG9yYWdlIGFjY2Vzcy4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZl
TWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9
CisKKyAgICAgICAgY29uc3QgZXhwZWN0ZWRQYXNzTWVzc2FnZXMgPSAyOworICAgICAgICB2YXIg
cGFzc01lc3NhZ2VzUmVjZWl2ZWQgPSAwOworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2Fn
ZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJk
b2N1bWVudC5jb29raWUiKSA9PT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YS5pbmRl
eE9mKCJQQVNTIikgIT09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZl
bnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgICAgIHBhc3NN
ZXNzYWdlc1JlY2VpdmVkKys7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXNzTWVzc2FnZXNS
ZWNlaXZlZCA+PSBleHBlY3RlZFBhc3NNZXNzYWdlcykKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVk
IG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYWN0aXZhdGVF
bGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4o
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAg
ICAgIH0KKworICAgICAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsK
KyAgICAgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Q7
CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2ZpcnN0UGFydHlDb29r
aWVTZXQiKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBzdGF0aXN0aWNzVXJs
ICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZXQtY29va2llLnBocD9uYW1lPWZpcnN0UGFy
dHlDb29raWUmdmFsdWU9dmFsdWUjaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2FtZS1zaXRlLXNob3VsZC1o
YXZlLWFjY2Vzcy5odG1sI2ZpcnN0UGFydHlDb29raWVTZXQiOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3Rh
dGlzdGljc1VybCkpCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5v
dCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCwg
dHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5p
c1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24oc3RhdGlzdGljc1VybCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IGxvZ2dlZCBmb3Ig
dXNlciBpbnRlcmFjdGlvbi4iKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0
aXN0aWNzVXBkYXRlQ29va2llQmxvY2tpbmcoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFt
ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUo
InNhbmRib3giLCAiYWxsb3ctc3RvcmFnZS1hY2Nlc3MtYnktdXNlci1hY3RpdmF0aW9uIGFsbG93
LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4gYWxsb3ctbW9kYWxzIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZnJhbWVFbGVtZW50Lm9ubG9hZCA9IHJ1blRlc3Q7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZnJhbWVFbGVtZW50LmlkID0gIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3Jh
Z2VBY2Nlc3MiOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NlbGYtbmF2aWdh
dGluZy1mcmFtZS1hZnRlci1ncmFudGVkLWFjY2Vzcy5odG1sI3VzZXJTaG91bGRHcmFudEFjY2Vz
cyx1c2VyU2hvdWxkQmVDb25zdWx0ZWQscG9saWN5U2hvdWxkR3JhbnRBY2Nlc3Msc2FtZVNpdGVO
YXZpZ2F0aW9uIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1
ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1
ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDA5YTI1MjBjNjBk
ZmJhYmVhOTAwOGMxOGFlMzhjOWJkZTVhMWU2NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2hvdWxkLW5vdC1oYXZlLWFj
Y2Vzcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1UZXN0cyB0
aGF0IGEgY3Jvc3Mtb3JpZ2luIGlmcmFtZSBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB0aGF0IGlz
IGdyYW50ZWQgc3RvcmFnZSBhY2Nlc3MgYW5kIHRoZW4gbmF2aWdhdGVzIGl0c2VsZiBkb2VzIG5v
dCBoYXZlIHN0b3JhZ2UgYWNjZXNzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQot
UEFTUyBkb2N1bWVudC5jb29raWUgPT0gCi1QQVNTIFN0b3JhZ2UgYWNjZXNzIHdhcyBncmFudGVk
LgotUEFTUyBkb2N1bWVudC5jb29raWUgPT0gY29va2llU2V0Q2xpZW50U2lkZUFmdGVyR3JhbnRl
ZFN0b3JhZ2VBY2Nlc3M9dmFsdWU7IGZpcnN0UGFydHlDb29raWU9dmFsdWUKLVBBU1MgTm8gc3Rv
cmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9PSAsIGNvb2tpZXMgc2VlbiBzZXJ2ZXItc2lk
ZSA9PSAiTm8gY29va2llcyIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2hvdWxkLW5vdC1o
YXZlLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jl
cXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nl
c3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjkzMTBhNmExZTYwODYwMmE3
MGI5MWI4ZWZhN2RhODIzYTMxNmU0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVz
dC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdD4KLSAgICAgICAgZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgYSBjcm9zcy1vcmlnaW4gaWZyYW1lIGZyb20gYSBwcmV2YWxl
bnQgZG9tYWluIHRoYXQgaXMgZ3JhbnRlZCBzdG9yYWdlIGFjY2VzcyBhbmQgdGhlbiBuYXZpZ2F0
ZXMgaXRzZWxmIGRvZXMgbm90IGhhdmUgc3RvcmFnZSBhY2Nlc3MuIik7Ci0gICAgICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwotCi0gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKLQotICAgICAgICBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgewotICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IGV4cGVjdGVkUGFzc01lc3NhZ2VzID0gMjsK
LSAgICAgICAgdmFyIHBhc3NNZXNzYWdlc1JlY2VpdmVkID0gMDsKLSAgICAgICAgZnVuY3Rpb24g
cmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKLSAgICAgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiZG9jdW1lbnQuY29va2llIikgPT09IDApIHsKLSAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZChldmVudC5kYXRhKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2
ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOwotICAgICAgICAgICAg
ICAgICAgICBwYXNzTWVzc2FnZXNSZWNlaXZlZCsrOwotICAgICAgICAgICAgICAgICAgICBpZiAo
cGFzc01lc3NhZ2VzUmVjZWl2ZWQgPj0gZXhwZWN0ZWRQYXNzTWVzc2FnZXMpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKLSAgICAgICAgICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20g
YW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOwotICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0
aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKLSAgICAgICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAgICAgICAgICAgIHZhciBj
ZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7Ci0g
ICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZz
ZXRIZWlnaHQgLyAyOwotICAgICAgICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBj
ZW50ZXJZKS50aGVuKAotICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOwotICAgICAgICAgICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIk5vIGV2ZW50U2VuZGVyLiIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByb21pc2UgcmVqZWN0ZWQuIik7Ci0g
ICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICApOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAg
ICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFj
Y2VzcyIpOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgaG9zdFVuZGVyVGVzdCA9ICJsb2Nh
bGhvc3Q6ODAwMCI7Ci0gICAgICAgIGNvbnN0IHN0YXRpc3RpY3NVcmwgPSAiaHR0cDovLyIgKyBo
b3N0VW5kZXJUZXN0OwotICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uaGFzaCAhPT0gIiNm
aXJzdFBhcnR5Q29va2llU2V0IikgewotICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVl
LCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
c3RhdGlzdGljc1VybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS5waHA/
bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVlPXZhbHVlI2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
dG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLXNob3Vs
ZC1ub3QtaGF2ZS1hY2Nlc3MuaHRtbCNmaXJzdFBhcnR5Q29va2llU2V0IjsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGljc1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291
cmNlKHN0YXRpc3RpY3NVcmwpKQotICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0
IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQgcmVzb3VyY2UuIik7Ci0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3Rp
Y3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dn
ZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2NraW5nKGZ1bmN0aW9uKCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc2V0QXR0
cmlidXRlKCJzYW5kYm94IiwgImFsbG93LXN0b3JhZ2UtYWNjZXNzLWJ5LXVzZXItYWN0aXZhdGlv
biBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3JpZ2luIGFsbG93LW1vZGFscyIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5vbmxvYWQgPSBydW5UZXN0OwotICAgICAg
ICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVz
dHNTdG9yYWdlQWNjZXNzIjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQu
c3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZWxm
LW5hdmlnYXRpbmctZnJhbWUtYWZ0ZXItZ3JhbnRlZC1hY2Nlc3MuaHRtbCN1c2VyU2hvdWxkR3Jh
bnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVkLHBvbGljeVNob3VsZEdyYW50QWNjZXNzIjsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1l
RWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2VsZi1u
YXZpZ2F0aW5nLWZyYW1lLWFmdGVyLWdyYW50ZWQtYWNjZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NlbGYtbmF2aWdhdGluZy1mcmFtZS1h
ZnRlci1ncmFudGVkLWFjY2Vzcy5odG1sCmluZGV4IDY0ODFkNTlhZWFmYjk4MzE1M2ViZTYwMDEx
N2NlYWYyZTgxZmY0NmQuLmRiZGE3ZWEyNDMwYjY4N2FjZmQ1N2ZlMzUzYmMwNDQ4Yjg1YTM3ZDMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJj
ZXMvc2VsZi1uYXZpZ2F0aW5nLWZyYW1lLWFmdGVyLWdyYW50ZWQtYWNjZXNzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZWxmLW5hdmln
YXRpbmctZnJhbWUtYWZ0ZXItZ3JhbnRlZC1hY2Nlc3MuaHRtbApAQCAtNSw2ICs1LDcgQEAKICAg
ICAgICAgY29uc3QgdXNlclNob3VsZEdyYW50QWNjZXNzID0gaGFzaEFyZ3VtZW50c1swXSA9PT0g
InVzZXJTaG91bGRHcmFudEFjY2VzcyI7CiAgICAgICAgIGNvbnN0IHVzZXJTaG91bGRCZUNvbnN1
bHRlZCA9IGhhc2hBcmd1bWVudHNbMV0gPT09ICJ1c2VyU2hvdWxkQmVDb25zdWx0ZWQiOwogICAg
ICAgICBjb25zdCBwb2xpY3lTaG91bGRHcmFudEFjY2VzcyA9IGhhc2hBcmd1bWVudHNbMl0gPT09
ICJwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7CisgICAgICAgIGNvbnN0IHNhbWVTaXRlTmF2aWdh
dGlvbiA9IGhhc2hBcmd1bWVudHNbM10gPT09ICJzYW1lU2l0ZU5hdmlnYXRpb24iOwogCiAgICAg
ICAgIGlmIChpbnRlcm5hbHMgJiYgdXNlclNob3VsZEdyYW50QWNjZXNzKQogICAgICAgICAgICAg
aW50ZXJuYWxzLnNldFVzZXJHcmFudHNTdG9yYWdlQWNjZXNzKHRydWUpOwpAQCAtMjYsNyArMjcs
MTEgQEAKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIG5hdmlnYXRlKCkgewotICAgICAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3Rv
cmFnZUFjY2Vzcy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sI3BvbGlj
eVNob3VsZE5vdEdyYW50QWNjZXNzIgorICAgICAgICAgICAgaWYgKHNhbWVTaXRlTmF2aWdhdGlv
bikgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1p
ZnJhbWUuaHRtbCNwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD9y
ZWRpcmVjdFRvPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9o
YXMtc3RvcmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwiOworICAgICAgICAgICAgfQogICAgICAgICB9
CiAKICAgICAgICAgZnVuY3Rpb24gc2V0Q29va2llQW5kTmF2aWdhdGUoKSB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGVlYmZkZmZmNzU3
YzhjMjI2YWExZmMyYjhmOGMyMGMxNjQzOTVmMi4uMGIyNGU4ZmU0NmNmZDZjMjUxNDY0ZmY2NWM1
NjhiMjYxNDk3OTE4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNjk1LDcgKzY5NSw4IEBAIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy91c2VyLWludGVyYWN0aW9uLXJlcG9ydGVkLWFmdGVyLXdlYnNpdGUtZGF0YS1yCiBb
IEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3Qtc3RvcmFnZS1h
Y2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtd2l0aG91dC11c2VyLWdlc3R1cmUu
aHRtbCBbIFBhc3MgXQogWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9o
YXMtc3RvcmFnZS1hY2Nlc3MtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFj
dGlvbi5odG1sIFsgUGFzcyBdCiBbIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUt
YWNjZXNzLmh0bWwgWyBQYXNzIF0KLVsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtc2hvdWxkLW5vdC1o
YXZlLWFjY2Vzcy5odG1sIFsgUGFzcyBdCitbIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3NzLXNp
dGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy5odG1sIFsgUGFzcyBdCitbIEhpZ2hTaWVycmErIF0g
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5h
dmlnYXRlLXNhbWUtc2l0ZS1zaG91bGQtaGF2ZS1hY2Nlc3MuaHRtbCBbIFBhc3MgXQogWyBIaWdo
U2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVu
ZGVyLW9wZW5lci5odG1sIFsgUGFzcyBdCiBbIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci5odG1sIFsgUGFzcyBd
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348664</attachid>
            <date>2018-08-31 12:50:45 -0700</date>
            <delta_ts>2018-08-31 14:09:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188564-20180831125044.patch</filename>
            <type>text/plain</type>
            <size>36553</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUwMzNjYjI5MDE4MGYy
YTQxMmMxZWQ4ZmZlNzNkZmFkZDFhNzQ1NC4uN2NmZGUyMTNkNzE3MDM4M2Q2MGZkODM2N2E4OTNi
YjdlYTEwNjJiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTA4LTMxICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JhZ2UgQWNjZXNz
IEFQSTogTWFpbnRhaW4gYWNjZXNzIHRocm91Z2ggc2FtZS1zaXRlIG5hdmlnYXRpb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg1NjQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzQzNDQ1MTYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVx
dWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90
LWhhdmUtYWNjZXNzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxk
LWhhdmUtYWNjZXNzLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAg
ICAgUmVtb3ZlZCB1bnVzZWQgbWVtYmVyIHZhcmlhYmxlIG1faGFzRnJhbWVTcGVjaWZpY1N0b3Jh
Z2VBY2Nlc3MuCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE4LTA4LTMwICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFRoZSB3aWR0aCBvZiBhIG51bGxwdHIgVGV4
dFJ1biBzaG91bGQgYmUgemVybwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5Njg4YTlhMTYyZWNmZjNhNDRjZjNmOWMw
NGY1MDRmMzUwMzgzMzg3Li5jYWNjMWQyOTAwZTcwZDkzM2FlZTg4MWI5ZmZkNWJlZTBmNGI5MjAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA4LTMxICBKb2huIFdpbGFuZGVyICA8
d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JhZ2UgQWNjZXNzIEFQSTogTWFpbnRh
aW4gYWNjZXNzIHRocm91Z2ggc2FtZS1zaXRlIG5hdmlnYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg1NjQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQzNDQ1MTYwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdp
bGxDaGFuZ2VEb2N1bWVudCk6CisgICAgICAgICAgICBOb3cgdGFrZXMgdGhlIGN1cnJlbnQgVVJM
IGFuZCB0aGUgbmV3IFVSTCBhcyBwYXJhbWV0ZXJzCisgICAgICAgICAgICBhbmQgb25seSBjbGVh
cnMgb3V0IHN0b3JhZ2UgYWNjZXNzIGlmIHRoZSBuYXZpZ2F0aW9uIGlzCisgICAgICAgICAgICBj
cm9zcy1zaXRlLCBpLmUuIHdpdGggZGlmZmVyaW5nIGVUTEQrMXMuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE4LTA4LTMw
ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE1vY2sg
dmlkZW8gZGV2aWNlcyBzaG91bGQgb25seSBzdXBwb3J0IGRpc2NyZXRlIHNpemVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDllM2MzMTg1M2YxMjNlYzliZWEzZjY5MGI4NWUxN2JhZDA3Njc1ZDUu
LjBjMjY1NjUxODVmYzhhZDQwYjdiYTYyYWI5OTVmN2ExNzQ3MWE4N2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xOTg4LDcgKzE5ODgsNiBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGJvb2wg
aGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGU7CiAKLSAgICBib29sIG1faGFzRnJhbWVTcGVj
aWZpY1N0b3JhZ2VBY2Nlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9ncmFudFN0b3JhZ2VBY2Nl
c3NPdmVycmlkZSB7IGZhbHNlIH07CiAKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
RElTUExBWV9NT05JVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
aW5kZXggMjM0NzQ5ZjFmNjc0OWZhNGU5YmZiNDQyYzIyZjAxOGI0ZDEyNmM2Yy4uNDMwNjA2OTJj
ZGI2MGU3MmU4OGM5NDFhZDQ4OGIyNzhmNTk0MzFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QsIGNvbnN0IFJl
c291cmMKICAgICBGcmFtZUxvYWRlcjo6YWRkU2FtZVNpdGVJbmZvVG9SZXF1ZXN0SWZOZWVkZWQo
bmV3UmVxdWVzdCwgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAKICAgICBpZiAoIWRpZFJlY2VpdmVS
ZWRpcmVjdFJlc3BvbnNlKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5kaXNwYXRj
aFdpbGxDaGFuZ2VEb2N1bWVudCgpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5k
aXNwYXRjaFdpbGxDaGFuZ2VEb2N1bWVudChtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgbmV3
UmVxdWVzdC51cmwoKSk7CiAKICAgICAvLyBJZiB3ZSdyZSBmaWVsZGluZyBhIHJlZGlyZWN0IGlu
IHJlc3BvbnNlIHRvIGEgUE9TVCwgZm9yY2UgYSBsb2FkIGZyb20gb3JpZ2luLCBzaW5jZQogICAg
IC8vIHRoaXMgaXMgYSBjb21tb24gc2l0ZSB0ZWNobmlxdWUgdG8gcmV0dXJuIHRvIGEgcGFnZSB2
aWV3aW5nIHNvbWUgZGF0YSB0aGF0IHRoZSBQT1NUCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDA3NGU1NDFmM2JjYTVhMWFkZmZiNTE2NjUxNTRlZGFmZmU1
M2MyYmUuLjFiYTkxNjI0N2I2MWRiZWU4MjI2Mjk0NmYwOTc0ZjE5MWZkYzE4YzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNjYsNyArMTY2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgVVJMJiwgZG91YmxlIGludGVydmFsLCBXYWxsVGltZSBmaXJlRGF0ZSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVudCgpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxDaGFuZ2VEb2N1bWVudCgpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaFdpbGxDaGFuZ2VEb2N1bWVudChjb25zdCBVUkwmLCBjb25zdCBVUkwm
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWROYXZpZ2F0ZVdpdGhpblBhZ2UoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2Uo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDFiOTRiYmM3MGFkN2E4
MTQzNDliYzg3ZjQ4MTViYzNiNGY2M2MwYzkuLjI1ODdhM2NjN2I0ZGFjNGI2MTcxYjY3NzU4MWY2
YzQzOWUwYjQxMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODMsNiAr
ODMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUG9saWN5Q2hlY2tlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUHJvZ3Jlc3NUcmFja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9y
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KQEAgLTM4Myw3ICszODQsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZU1haW5Eb2N1bWVu
dCgpCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VN
YWluRG9jdW1lbnQobV9mcmFtZS0+ZnJhbWVJRCgpKSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KCkKK3ZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KGNvbnN0IFVSTCYgY3VycmVudFVy
bCwgY29uc3QgVVJMJiBuZXdVcmwpCiB7CiAjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJU
SVRJT05JTkcpCiAgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCkBAIC0zOTMsNyArMzk0
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsQ2hhbmdlRG9jdW1l
bnQoKQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1faGFz
RnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MpIHsKKyAgICBpZiAobV9oYXNGcmFtZVNwZWNpZmlj
U3RvcmFnZUFjY2VzcyAmJiAhV2ViQ29yZTo6cmVnaXN0cmFibGVEb21haW5zQXJlRXF1YWwoY3Vy
cmVudFVybCwgbmV3VXJsKSkgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZShzZXNzaW9uSUQoKSwgZnJhbWVJRCgpLnZhbHVlKCksIHBhZ2VJRCgpLnZhbHVlKCkpLCAwKTsK
ICAgICAgICAgbV9oYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcyA9IGZhbHNlOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMjU0NTY4ZTQyN2QxNDI3NGRlMjQwNTIz
NWYzYTlkYTRkNTA2MmVhMS4uMGRkZTdiZDdkOWM1N2NjYTYxYjRiZjg0YjY1YTlmZjA5ODc2ZWM0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRGF0YURldGVjdGlvbihOU0FycmF5ICpkZXRl
Y3Rpb25SZXN1bHRzKSBmaW5hbDsKICNlbmRpZgogICAgIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VN
YWluRG9jdW1lbnQoKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50
KCkgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaFdpbGxDaGFuZ2VEb2N1bWVudChjb25zdCBXZWJD
b3JlOjpVUkwmIGN1cnJlbnRVcmwsIGNvbnN0IFdlYkNvcmU6OlVSTCYgbmV3VXJsKSBmaW5hbDsK
IAogICAgIHZvaWQgZGlzcGF0Y2hEaWREaXNwYXRjaE9ubG9hZEV2ZW50cygpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQo
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmMGViNDVlNzc5ZWZmMzk0Y2Q4ZjRhMTZhZDZlNTU5Y2ZjNTgxZTlk
Li4zMWM5ZmU3NjAyM2QyNTZiYWEzMDRmNTZjY2RiMGM0MjFmOTJhNWYwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTgtMDgtMzEgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+
CisKKyAgICAgICAgU3RvcmFnZSBBY2Nlc3MgQVBJOiBNYWludGFpbiBhY2Nlc3MgdGhyb3VnaCBz
YW1lLXNpdGUgbmF2aWdhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4ODU2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDM0NDUxNjA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1z
YW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rp
b24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9y
aWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50
ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLmh0bWw6CisgICAgICAgICAgICBB
ZGRlZCBib3RoIGEgc2FtZS1zaXRlIGFuZCBhIGNyb3NzLXNpdGUgbmF2aWdhdGlvbiB0byB0aGUg
c3ViIGZyYW1lIHRvIHRlc3QgbWFpbnRhaW5lZCBhbmQgY2xlYXJlZCBhY2Nlc3MuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVu
LW5hdmlnYXRlLWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1leHBlY3RlZC50eHQ6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0
LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1h
bmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUt
YWNjZXNzLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zaG91bGQtbm90LWhh
dmUtYWNjZXNzLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVl
c3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLXNhbWUtc2l0ZS1zaG91bGQtaGF2ZS1h
Y2Nlc3MtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLXNob3Vs
ZC1ub3QtaGF2ZS1hY2Nlc3MtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNp
dGUtc2hvdWxkLWhhdmUtYWNjZXNzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdh
dGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXNvdXJjZXMvZ2V0LWNvb2tpZXMucGhwOgorICAgICAgICAgICAgU3VwcG9y
dCBmb3IgdGhlIG5ldyB0ZXN0IHNjZW5hcmlvcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvcmVzb3VyY2VzL3NlbGYtbmF2aWdhdGluZy1mcmFtZS1hZnRlci1ncmFudGVkLWFj
Y2Vzcy5odG1sOgorICAgICAgICAgICAgU3VwcG9ydCBmb3IgdGhlIG5ldyB0ZXN0IHNjZW5hcmlv
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICAgICBNYXJrZWQgdGhlIG5ldyBhbmQgdGhlIHJlbmFtZWQgdGVzdHMgYXMgWyBQYXNzIF0uCisK
IDIwMTgtMDgtMzAgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgVGhlIHdpZHRoIG9mIGEgbnVsbHB0ciBUZXh0UnVuIHNob3VsZCBiZSB6ZXJvCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3Jh
bnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRv
bWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24tYW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0
LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2
YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQt
ZnJhbWUtZXhwZWN0ZWQudHh0CmluZGV4IGQ2YmM3Nzc1Mzc1MDEzZGIzOGY2MDRlNjJiMjU1MWU5
YzY4Zjg3M2YuLjBhODRlN2YwN2RhYmYzZTM1NzkxMjkwZjNlZGU5NzAwNzM1NTQzZjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1n
cmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQt
ZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20tcmlnaHQtZnJhbWUt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9y
ZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hlZC1pZnJhbWUtZnJv
bS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1hbmQtYWNjZXNzLWZyb20t
cmlnaHQtZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC00LDYgKzQsOCBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURQogCiAKIFBBU1MgU3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQuIGRvY3VtZW50LmNv
b2tpZSA9PSBmaXJzdFBhcnR5Q29va2llPXZhbHVlLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUg
PT0geyJmaXJzdFBhcnR5Q29va2llIjoidmFsdWUifQorRGlkIG5hdmlnYXRlIGlmcmFtZSBzYW1l
LXNpdGUgYW5kIHdpbGwgbm93IGNoZWNrIHRoYXQgaXQgc3RpbGwgaGFzIHN0b3JhZ2UgYWNjZXNz
LgorUEFTUyBkb2N1bWVudC5jb29raWUgPT0gZmlyc3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2ll
cyBzZWVuIHNlcnZlci1zaWRlID09IHsiZmlyc3RQYXJ0eUNvb2tpZSI6InZhbHVlIn0KIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpAQCAtNDIsNyArNDQs
NyBAQCBDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CiAtLS0tLS0tLQogRnJhbWU6ICc8IS0t
ZnJhbWU1LS0+JwogLS0tLS0tLS0KLUFmdGVyIHRoZSB0b3AgZnJhbWUgbmF2aWdhdGVzIHRoZSBz
dWIgZnJhbWUsIHRoZSBzdWIgZnJhbWUgc2hvdWxkIG5vIGxvbmdlciBoYXZlIGFjY2VzcyB0byBj
b29raWVzLgorQWZ0ZXIgdGhlIHRvcCBmcmFtZSBuYXZpZ2F0ZXMgdGhlIHN1YiBmcmFtZSBjcm9z
cy1zaXRlIGFuZCBiYWNrLCB0aGUgc3ViIGZyYW1lIHNob3VsZCBubyBsb25nZXIgaGF2ZSBhY2Nl
c3MgdG8gY29va2llcy4KIERpZCBub3QgcmVjZWl2ZSBjb29raWUgbmFtZWQgJ2ZpcnN0UGFydHlD
b29raWUnLgogRGlkIG5vdCByZWNlaXZlIGNvb2tpZSBuYW1lZCAncGFydGl0aW9uZWRDb29raWUn
LgogQ2xpZW50LXNpZGUgZG9jdW1lbnQuY29va2llOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1v
cmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWlu
dGVyYWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy1jcm9zcy1v
cmlnaW4tc2FuZGJveGVkLWlmcmFtZS1mcm9tLXByZXZhbGVudC1kb21haW4td2l0aC11c2VyLWlu
dGVyYWN0aW9uLWFuZC1hY2Nlc3MtZnJvbS1yaWdodC1mcmFtZS5odG1sCmluZGV4IGYxNjAxMDM5
MGE5NDQzNzY5N2EwNGY0YzBmZWZjMDRmNjk2OGUwZDQuLjJiOGUxZTk1NWUyM2Q0MGIyOWZkOTJh
N2M2YzExYzY2NDNlNDYwYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtY3Jvc3Mtb3JpZ2luLXNhbmRib3hl
ZC1pZnJhbWUtZnJvbS1wcmV2YWxlbnQtZG9tYWluLXdpdGgtdXNlci1pbnRlcmFjdGlvbi1hbmQt
YWNjZXNzLWZyb20tcmlnaHQtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5k
Ym94ZWQtaWZyYW1lLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRoLXVzZXItaW50ZXJhY3Rpb24t
YW5kLWFjY2Vzcy1mcm9tLXJpZ2h0LWZyYW1lLmh0bWwKQEAgLTExOSwxMiArMTE5LDMwIEBACiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNhc2UgIiNzdGVwNyI6
CiAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDgiOwot
ICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9y
IGxvY2FsaG9zdCB1bmRlciAxMjcuMC4wLjEgc2luY2Ugd2UncmUgb3BlbmluZyBpbiB0aGUgZnJh
bWUgdGhhdCB3YXMgZ3JhbnRlZCBhY2Nlc3MuCi0gICAgICAgICAgICAgICAgICAgIGxldCBleGlz
dGluZ0lmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUaGVJZnJhbWVUaGF0UmVxdWVz
dHNTdG9yYWdlQWNjZXNzIik7Ci0gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSWZyYW1lLm9u
bG9hZCA9IHJ1blRlc3Q7Ci0gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSWZyYW1lLnNyYyA9
IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1BZnRl
ciB0aGUgdG9wIGZyYW1lIG5hdmlnYXRlcyB0aGUgc3ViIGZyYW1lLCB0aGUgc3ViIGZyYW1lIHNo
b3VsZCBubyBsb25nZXIgaGF2ZSBhY2Nlc3MgdG8gY29va2llcy4iOworICAgICAgICAgICAgICAg
ICAgICAvLyBOYXZpZ2F0ZSB0aGUgZnJhbWUgc2FtZS1zaXRlLgorICAgICAgICAgICAgICAgICAg
ICBsZXQgZXhpc3RpbmdJZnJhbWUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlRoZUlmcmFt
ZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgZXhpc3Rp
bmdJZnJhbWUxLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGRlYnVnKCJEaWQgbmF2aWdhdGUgaWZyYW1lIHNhbWUtc2l0ZSBhbmQgd2lsbCBub3cgY2hlY2sg
dGhhdCBpdCBzdGlsbCBoYXMgc3RvcmFnZSBhY2Nlc3MuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlRoZUlmcmFtZVRoYXRS
ZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFtZS5j
b250ZW50V2luZG93LnBvc3RNZXNzYWdlKCJyZXBvcnRCYWNrQ29va2llcyIsICJodHRwOi8vbG9j
YWxob3N0OjgwMDAiKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAg
ICAgZXhpc3RpbmdJZnJhbWUxLnNyYyA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRvR2V0
Q29va2llczsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2Fz
ZSAiI3N0ZXA4IjoKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaGFzaCA9
ICJzdGVwOSI7CisgICAgICAgICAgICAgICAgICAgIC8vIE5hdmlnYXRlIHRoZSBmcmFtZSBjcm9z
cy1zaXRlLiBUaGlzIHNob3VsZCBjbGVhciBvdXQgc3RvcmFnZSBhY2Nlc3MuCisgICAgICAgICAg
ICAgICAgICAgIGxldCBleGlzdGluZ0lmcmFtZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
VGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAgICAgICAg
ICBleGlzdGluZ0lmcmFtZTIub25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAgICAgICAgICAg
ZXhpc3RpbmdJZnJhbWUyLnNyYyA9ICJodHRwOi8vIiArIHBhcnRpdGlvbkhvc3Q7CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgIiNzdGVwOSI6CisgICAg
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggPSAic3RlcDEwIjsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gQWdhaW4gb3BlbiBsb2NhbGhvc3QgaW4gdGhlIGV4aXN0aW5nIGZy
YW1lIGFuZCBjaGVjayB0aGF0IG5vIGNvb2tpZSBnZXRzIHNlbnQgZm9yIGxvY2FsaG9zdCB1bmRl
ciAxMjcuMC4wLjEgc2luY2UgaXQgaGFzIGJlZW4gbmF2aWdhdGVkIGNyb3NzLXNpdGUuCisgICAg
ICAgICAgICAgICAgICAgIGxldCBleGlzdGluZ0lmcmFtZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICAgICAg
ICAgICAgICBleGlzdGluZ0lmcmFtZTMub25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAgICAgICAg
ICAgICAgZXhpc3RpbmdJZnJhbWUzLnNyYyA9IHRoaXJkUGFydHlCYXNlVXJsICsgc3ViUGF0aFRv
R2V0Q29va2llcyArICImbWVzc2FnZT1BZnRlciB0aGUgdG9wIGZyYW1lIG5hdmlnYXRlcyB0aGUg
c3ViIGZyYW1lIGNyb3NzLXNpdGUgYW5kIGJhY2ssIHRoZSBzdWIgZnJhbWUgc2hvdWxkIG5vIGxv
bmdlciBoYXZlIGFjY2VzcyB0byBjb29raWVzLiI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgIGNhc2UgIiNzdGVwMTAiOgogICAgICAgICAgICAgICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1j
cm9zcy1zaXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVu
LW5hdmlnYXRlLWNyb3NzLXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODkwZjRkOTA2MDE1YjRhMzRmYWM2NzhjZTc2MzgyZmNiNjkzNTAwMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1
ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1jcm9zcy1zaXRlLXNob3VsZC1ub3Qt
aGF2ZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgYSBj
cm9zcy1vcmlnaW4gaWZyYW1lIGZyb20gYSBwcmV2YWxlbnQgZG9tYWluIHRoYXQgaXMgZ3JhbnRl
ZCBzdG9yYWdlIGFjY2VzcyBhbmQgdGhlbiBuYXZpZ2F0ZXMgaXRzZWxmIGNyb3NzLXNpdGUgZG9l
cyBub3QgaGF2ZSBzdG9yYWdlIGFjY2Vzcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZG9jdW1lbnQuY29va2llID09IAorUEFTUyBTdG9yYWdlIGFjY2VzcyB3YXMgZ3Jh
bnRlZC4KK1BBU1MgZG9jdW1lbnQuY29va2llID09IGNvb2tpZVNldENsaWVudFNpZGVBZnRlckdy
YW50ZWRTdG9yYWdlQWNjZXNzPXZhbHVlOyBmaXJzdFBhcnR5Q29va2llPXZhbHVlCitQQVNTIE5v
IHN0b3JhZ2UgYWNjZXNzLiBkb2N1bWVudC5jb29raWUgPT0gLCBjb29raWVzIHNlZW4gc2VydmVy
LXNpZGUgPT0gIk5vIGNvb2tpZXMiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3NzLXNp
dGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
dG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLWNyb3Nz
LXNpdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1ZjFiZjc1YmZl
MGI5Njg5MzIzMDk1YzU3NjRiMTdkOGY3OTI3YjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRo
ZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwKQEAgLTAs
MCArMSw5MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBj
cm9zcy1vcmlnaW4gaWZyYW1lIGZyb20gYSBwcmV2YWxlbnQgZG9tYWluIHRoYXQgaXMgZ3JhbnRl
ZCBzdG9yYWdlIGFjY2VzcyBhbmQgdGhlbiBuYXZpZ2F0ZXMgaXRzZWxmIGNyb3NzLXNpdGUgZG9l
cyBub3QgaGF2ZSBzdG9yYWdlIGFjY2Vzcy4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZl
TWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgICAgICB9
CisKKyAgICAgICAgY29uc3QgZXhwZWN0ZWRQYXNzTWVzc2FnZXMgPSAyOworICAgICAgICB2YXIg
cGFzc01lc3NhZ2VzUmVjZWl2ZWQgPSAwOworICAgICAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2Fn
ZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJk
b2N1bWVudC5jb29raWUiKSA9PT0gMCkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZGF0YS5pbmRl
eE9mKCJQQVNTIikgIT09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZl
bnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgICAgICAgICAgICAgIHBhc3NN
ZXNzYWdlc1JlY2VpdmVkKys7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXNzTWVzc2FnZXNS
ZWNlaXZlZCA+PSBleHBlY3RlZFBhc3NNZXNzYWdlcykKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgICAgICBmaW5pc2hU
ZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVk
IG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gYWN0aXZhdGVF
bGVtZW50KGVsZW1lbnRJZCkgeworICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOworICAgICAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgICAgIHZh
ciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNlbnRlclkpLnRoZW4o
CisgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiZXNjYXBlIik7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiTm8gZXZlbnRTZW5kZXIuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiUHJvbWlzZSByZWplY3RlZC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICk7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICAgICAgYWN0
aXZhdGVFbGVtZW50KCJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIik7CisgICAg
ICAgIH0KKworICAgICAgICBjb25zdCBob3N0VW5kZXJUZXN0ID0gImxvY2FsaG9zdDo4MDAwIjsK
KyAgICAgICAgY29uc3Qgc3RhdGlzdGljc1VybCA9ICJodHRwOi8vIiArIGhvc3RVbmRlclRlc3Q7
CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5oYXNoICE9PSAiI2ZpcnN0UGFydHlDb29r
aWVTZXQiKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBzdGF0aXN0aWNzVXJs
ICsgIi9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZXQtY29va2llLnBocD9uYW1lPWZpcnN0UGFy
dHlDb29raWUmdmFsdWU9dmFsdWUjaHR0cDovLzEyNy4wLjAuMTo4MDAwL3N0b3JhZ2VBY2Nlc3Mv
cmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRoZW4tbmF2aWdhdGUtY3Jvc3Mtc2l0ZS1zaG91bGQt
bm90LWhhdmUtYWNjZXNzLmh0bWwjZmlyc3RQYXJ0eUNvb2tpZVNldCI7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJj
ZShzdGF0aXN0aWNzVXJsKSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBk
aWQgbm90IGdldCBzZXQgYXMgcHJldmFsZW50IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNz
VXJsLCB0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVu
bmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2Vk
IGZvciB1c2VyIGludGVyYWN0aW9uLiIpOworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnN0YXRpc3RpY3NVcGRhdGVDb29raWVCbG9ja2luZyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aWZyYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJp
YnV0ZSgic2FuZGJveCIsICJhbGxvdy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24g
YWxsb3ctc2NyaXB0cyBhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQub25sb2FkID0gcnVuVGVzdDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3Rz
U3RvcmFnZUFjY2VzcyI7CisgICAgICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNy
YyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2VsZi1u
YXZpZ2F0aW5nLWZyYW1lLWFmdGVyLWdyYW50ZWQtYWNjZXNzLmh0bWwjdXNlclNob3VsZEdyYW50
QWNjZXNzLHVzZXJTaG91bGRCZUNvbnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2Vzcyxjcm9z
c1NpdGVOYXZpZ2F0aW9uIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vz
cy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxk
LWhhdmUtYWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUt
c2hvdWxkLWhhdmUtYWNjZXNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNzQ1ZGI1OTRlOWNm
ODMwYTI4YzQ2MTIxMGY3OGU0OTE1OGU5MDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVu
LW5hdmlnYXRlLXNhbWUtc2l0ZS1zaG91bGQtaGF2ZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgYSBjcm9zcy1vcmlnaW4gaWZyYW1lIGZyb20gYSBwcmV2
YWxlbnQgZG9tYWluIHRoYXQgaXMgZ3JhbnRlZCBzdG9yYWdlIGFjY2VzcyBhbmQgdGhlbiBuYXZp
Z2F0ZXMgaXRzZWxmIHNhbWUtc2l0ZSBzdGlsbCBoYXMgc3RvcmFnZSBhY2Nlc3MuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmNvb2tpZSA9PSAKK1BBU1Mg
U3RvcmFnZSBhY2Nlc3Mgd2FzIGdyYW50ZWQuCitQQVNTIGRvY3VtZW50LmNvb2tpZSA9PSBjb29r
aWVTZXRDbGllbnRTaWRlQWZ0ZXJHcmFudGVkU3RvcmFnZUFjY2Vzcz12YWx1ZTsgZmlyc3RQYXJ0
eUNvb2tpZT12YWx1ZQorUEFTUyBIYXMgc3RvcmFnZSBhY2Nlc3MuIGRvY3VtZW50LmNvb2tpZSA9
PSBjb29raWVTZXRDbGllbnRTaWRlQWZ0ZXJHcmFudGVkU3RvcmFnZUFjY2Vzcz12YWx1ZTsgZmly
c3RQYXJ0eUNvb2tpZT12YWx1ZSwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09IHsiY29va2ll
U2V0Q2xpZW50U2lkZUFmdGVyR3JhbnRlZFN0b3JhZ2VBY2Nlc3MiOiJ2YWx1ZSIsImZpcnN0UGFy
dHlDb29raWUiOiJ2YWx1ZSJ9CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRlLXNhbWUtc2l0ZS1z
aG91bGQtaGF2ZS1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hv
dWxkLWhhdmUtYWNjZXNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZhNGZlZDUyMzFmYTFhY2EzNjQwYzFi
ZDhmYTk1MWJjMmZmMDA1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1z
YW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBjcm9zcy1vcmlnaW4gaWZyYW1l
IGZyb20gYSBwcmV2YWxlbnQgZG9tYWluIHRoYXQgaXMgZ3JhbnRlZCBzdG9yYWdlIGFjY2VzcyBh
bmQgdGhlbiBuYXZpZ2F0ZXMgaXRzZWxmIHNhbWUtc2l0ZSBzdGlsbCBoYXMgc3RvcmFnZSBhY2Nl
c3MuIik7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAg
ICAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVy
ZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IGV4cGVj
dGVkUGFzc01lc3NhZ2VzID0gMjsKKyAgICAgICAgdmFyIHBhc3NNZXNzYWdlc1JlY2VpdmVkID0g
MDsKKyAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAg
IGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiZG9jdW1lbnQuY29va2llIikgPT09IDAp
IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhKTsKKyAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkgewor
ICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAi
LCAiIikpOworICAgICAgICAgICAgICAgICAgICBwYXNzTWVzc2FnZXNSZWNlaXZlZCsrOworICAg
ICAgICAgICAgICAgICAgICBpZiAocGFzc01lc3NhZ2VzUmVjZWl2ZWQgPj0gZXhwZWN0ZWRQYXNz
TWVzc2FnZXMpCisgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5k
YXRhKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVj
ZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmln
aW4pOworICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SWQpIHsKKyAg
ICAgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElk
KTsKKyAgICAgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVu
dC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zm
c2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgVUlIZWxwZXIu
YWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAgICAgICAgICAgIGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImVzY2FwZSIpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoIk5vIGV2ZW50U2VuZGVyLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVz
dCgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlBy
b21pc2UgcmVqZWN0ZWQuIik7CisgICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGFjdGl2YXRlRWxlbWVudCgiVGhlSWZyYW1l
VGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyIpOworICAgICAgICB9CisKKyAgICAgICAgY29uc3Qg
aG9zdFVuZGVyVGVzdCA9ICJsb2NhbGhvc3Q6ODAwMCI7CisgICAgICAgIGNvbnN0IHN0YXRpc3Rp
Y3NVcmwgPSAiaHR0cDovLyIgKyBob3N0VW5kZXJUZXN0OworICAgICAgICBpZiAoZG9jdW1lbnQu
bG9jYXRpb24uaGFzaCAhPT0gIiNmaXJzdFBhcnR5Q29va2llU2V0IikgeworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5ocmVmID0gc3RhdGlzdGljc1VybCArICIvc3RvcmFnZUFjY2Vzcy9yZXNv
dXJjZXMvc2V0LWNvb2tpZS5waHA/bmFtZT1maXJzdFBhcnR5Q29va2llJnZhbHVlPXZhbHVlI2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vz
cy10aGVuLW5hdmlnYXRlLXNhbWUtc2l0ZS1zaG91bGQtaGF2ZS1hY2Nlc3MuaHRtbCNmaXJzdFBh
cnR5Q29va2llU2V0IjsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uoc3RhdGlzdGlj
c1VybCwgdHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LmlzU3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKCJIb3N0IGRpZCBub3QgZ2V0IHNldCBhcyBwcmV2YWxlbnQg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFz
SGFkVXNlckludGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlcklu
dGVyYWN0aW9uKHN0YXRpc3RpY3NVcmwpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIik7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlzdGljc1VwZGF0ZUNvb2tpZUJsb2Nr
aW5nKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzYW5kYm94IiwgImFsbG93LXN0b3Jh
Z2UtYWNjZXNzLWJ5LXVzZXItYWN0aXZhdGlvbiBhbGxvdy1zY3JpcHRzIGFsbG93LXNhbWUtb3Jp
Z2luIGFsbG93LW1vZGFscyIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVu
dC5vbmxvYWQgPSBydW5UZXN0OworICAgICAgICAgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVu
dC5pZCA9ICJUaGVJZnJhbWVUaGF0UmVxdWVzdHNTdG9yYWdlQWNjZXNzIjsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9z
dG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZWxmLW5hdmlnYXRpbmctZnJhbWUtYWZ0ZXItZ3JhbnRl
ZC1hY2Nlc3MuaHRtbCN1c2VyU2hvdWxkR3JhbnRBY2Nlc3MsdXNlclNob3VsZEJlQ29uc3VsdGVk
LHBvbGljeVNob3VsZEdyYW50QWNjZXNzLHNhbWVTaXRlTmF2aWdhdGlvbiI7CisgICAgICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOwor
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRo
ZW4tbmF2aWdhdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNjZXNzLXRo
ZW4tbmF2aWdhdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwOWEyNTIwYzYwZGZiYWJlYTkwMDhjMThhZTM4YzliZGU1
YTFlNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vz
cy10aGVuLW5hdmlnYXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiBpZnJh
bWUgZnJvbSBhIHByZXZhbGVudCBkb21haW4gdGhhdCBpcyBncmFudGVkIHN0b3JhZ2UgYWNjZXNz
IGFuZCB0aGVuIG5hdmlnYXRlcyBpdHNlbGYgZG9lcyBub3QgaGF2ZSBzdG9yYWdlIGFjY2Vzcy4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgZG9jdW1lbnQuY29va2llID09
IAotUEFTUyBTdG9yYWdlIGFjY2VzcyB3YXMgZ3JhbnRlZC4KLVBBU1MgZG9jdW1lbnQuY29va2ll
ID09IGNvb2tpZVNldENsaWVudFNpZGVBZnRlckdyYW50ZWRTdG9yYWdlQWNjZXNzPXZhbHVlOyBm
aXJzdFBhcnR5Q29va2llPXZhbHVlCi1QQVNTIE5vIHN0b3JhZ2UgYWNjZXNzLiBkb2N1bWVudC5j
b29raWUgPT0gLCBjb29raWVzIHNlZW4gc2VydmVyLXNpZGUgPT0gIk5vIGNvb2tpZXMiCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50
LWFjY2Vzcy10aGVuLW5hdmlnYXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3Mt
dGhlbi1uYXZpZ2F0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI5MzEwYTZhMWU2MDg2MDJhNzBiOTFiOGVmYTdkYTgyM2EzMTZlNGMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVu
LW5hdmlnYXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDkwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0
IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEg
Y3Jvc3Mtb3JpZ2luIGlmcmFtZSBmcm9tIGEgcHJldmFsZW50IGRvbWFpbiB0aGF0IGlzIGdyYW50
ZWQgc3RvcmFnZSBhY2Nlc3MgYW5kIHRoZW4gbmF2aWdhdGVzIGl0c2VsZiBkb2VzIG5vdCBoYXZl
IHN0b3JhZ2UgYWNjZXNzLiIpOwotICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotICAg
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBm
YWxzZSk7Ci0KLSAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgICAgICAgICAgIHNl
dEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBjb25zdCBleHBlY3RlZFBhc3NNZXNzYWdlcyA9IDI7Ci0gICAgICAgIHZhciBwYXNzTWVzc2Fn
ZXNSZWNlaXZlZCA9IDA7Ci0gICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7
Ci0gICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAw
IikgewotICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoImRvY3VtZW50LmNv
b2tpZSIpID09PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0
YSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1Mi
KSAhPT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJl
cGxhY2UoIlBBU1MgIiwgIiIpKTsKLSAgICAgICAgICAgICAgICAgICAgcGFzc01lc3NhZ2VzUmVj
ZWl2ZWQrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBhc3NNZXNzYWdlc1JlY2VpdmVkID49
IGV4cGVjdGVkUGFzc01lc3NhZ2VzKQotICAgICAgICAgICAgICAgICAgICAgICAgZmluaXNoVGVz
dCgpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoZXZlbnQuZGF0YSk7Ci0gICAgICAgICAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHRl
c3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAi
ICsgZXZlbnQub3JpZ2luKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBhY3RpdmF0ZUVsZW1lbnQoZWxl
bWVudElkKSB7Ci0gICAgICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJZCk7Ci0gICAgICAgICAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0
TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICAgICAgdmFyIGNlbnRlclkg
PSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAg
ICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSkudGhlbigKLSAgICAgICAg
ICAgICAgICBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJl
c2NhcGUiKTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJObyBldmVudFNlbmRlci4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbmlzaFRlc3QoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCJQcm9taXNlIHJlamVjdGVkLiIpOwotICAgICAgICAgICAgICAgICAgICBmaW5p
c2hUZXN0KCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgICAgICBhY3RpdmF0ZUVsZW1l
bnQoIlRoZUlmcmFtZVRoYXRSZXF1ZXN0c1N0b3JhZ2VBY2Nlc3MiKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGNvbnN0IGhvc3RVbmRlclRlc3QgPSAibG9jYWxob3N0OjgwMDAiOwotICAgICAgICBj
b25zdCBzdGF0aXN0aWNzVXJsID0gImh0dHA6Ly8iICsgaG9zdFVuZGVyVGVzdDsKLSAgICAgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLmhhc2ggIT09ICIjZmlyc3RQYXJ0eUNvb2tpZVNldCIpIHsK
LSAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHN0YXRpc3RpY3NVcmwgKyAiL3N0b3Jh
Z2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUucGhwP25hbWU9Zmlyc3RQYXJ0eUNvb2tpZSZ2
YWx1ZT12YWx1ZSNodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFu
ZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwj
Zmlyc3RQYXJ0eUNvb2tpZVNldCI7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlKHN0
YXRpc3RpY3NVcmwsIHRydWUsIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShzdGF0aXN0aWNzVXJsKSkKLSAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBzZXQgYXMgcHJl
dmFsZW50IHJlc291cmNlLiIpOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlz
dGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsLCB0cnVlLCBmdW5jdGlvbigp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hh
ZFVzZXJJbnRlcmFjdGlvbihzdGF0aXN0aWNzVXJsKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgbG9nZ2VkIGZvciB1c2VyIGludGVyYWN0aW9u
LiIpOwotICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnN0YXRpc3RpY3NVcGRhdGVDb29r
aWVCbG9ja2luZyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZnJh
bWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2FuZGJveCIsICJhbGxv
dy1zdG9yYWdlLWFjY2Vzcy1ieS11c2VyLWFjdGl2YXRpb24gYWxsb3ctc2NyaXB0cyBhbGxvdy1z
YW1lLW9yaWdpbiBhbGxvdy1tb2RhbHMiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFt
ZUVsZW1lbnQub25sb2FkID0gcnVuVGVzdDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmcmFt
ZUVsZW1lbnQuaWQgPSAiVGhlSWZyYW1lVGhhdFJlcXVlc3RzU3RvcmFnZUFjY2VzcyI7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2VsZi1uYXZpZ2F0aW5nLWZyYW1lLWFmdGVy
LWdyYW50ZWQtYWNjZXNzLmh0bWwjdXNlclNob3VsZEdyYW50QWNjZXNzLHVzZXJTaG91bGRCZUNv
bnN1bHRlZCxwb2xpY3lTaG91bGRHcmFudEFjY2VzcyI7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOwotICAgICAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICB9Ci0gICAgPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTwvYm9keT4KLTwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2dldC1jb29raWVzLnBocCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvZ2V0LWNvb2tpZXMucGhwCmluZGV4
IGRhZDhiNWE0MjdlMDM2YWNmMTFhZWJlNjEyODY1NDdkMDZiZWE2NzMuLmE0ZmI2YTg2ZWEzOTg2
ZTMxNjBhZWJkNTlkNmMyY2NmZGY3YTQ2YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvZ2V0LWNvb2tpZXMucGhwCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvZ2V0LWNvb2tpZXMucGhw
CkBAIC0yMSw0ICsyMSwyOSBAQCBpZighZW1wdHkoJF9HRVRbIm5hbWUzIl0pKSB7CiA8cCBpZD0i
b3V0cHV0Ij48L3A+CiA8c2NyaXB0PgogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRw
dXQiKS50ZXh0Q29udGVudCA9ICJDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6ICIgKyBkb2N1
bWVudC5jb29raWU7CisKKyAgICBmdW5jdGlvbiBtZXNzYWdlVG9Ub3AobWVzc2FnZVByZWZpeCwg
ZmV0Y2hEYXRhKSB7CisgICAgICAgIHRvcC5wb3N0TWVzc2FnZShtZXNzYWdlUHJlZml4ICsgIiBk
b2N1bWVudC5jb29raWUgPT0gIiArIGRvY3VtZW50LmNvb2tpZSArCisgICAgICAgICAgICAoZmV0
Y2hEYXRhID8gIiwgY29va2llcyBzZWVuIHNlcnZlci1zaWRlID09ICIgKyBKU09OLnN0cmluZ2lm
eShmZXRjaERhdGEpIDogIiIpLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIik7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50Lm9y
aWdpbiA9PT0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpIHsKKyAgICAgICAgICAgIGlmIChldmVu
dC5kYXRhLmluZGV4T2YoInJlcG9ydEJhY2tDb29raWVzIikgIT09IC0xKSB7CisgICAgICAgICAg
ICAgICAgZmV0Y2goImVjaG8taW5jb21pbmctY29va2llcy1hcy1qc29uLnBocCIsIHsgY3JlZGVu
dGlhbHM6ICJzYW1lLW9yaWdpbiIgfSkudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpOworICAgICAgICAgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVG9Ub3Ao
IlBBU1MiLCBkYXRhKTsKKyAgICAgICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbihlcnJvcikg
eworICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5tZXNzYWdlKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbWVz
c2FnZVRvVG9wKCJGQUlMIFVua25vd24gcmVxdWVzdC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1lc3NhZ2VUb1RvcCgiRmFpbCBSZWNlaXZlZCBhIG1l
c3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJl
Y2VpdmVNZXNzYWdlLCBmYWxzZSk7CiA8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVz
b3VyY2VzL3NlbGYtbmF2aWdhdGluZy1mcmFtZS1hZnRlci1ncmFudGVkLWFjY2Vzcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9zZWxmLW5hdmln
YXRpbmctZnJhbWUtYWZ0ZXItZ3JhbnRlZC1hY2Nlc3MuaHRtbAppbmRleCA2NDgxZDU5YWVhZmI5
ODMxNTNlYmU2MDAxMTdjZWFmMmU4MWZmNDZkLi5kYmRhN2VhMjQzMGI2ODdhY2ZkNTdmZTM1M2Jj
MDQ0OGI4NWEzN2QzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvcmVzb3VyY2VzL3NlbGYtbmF2aWdhdGluZy1mcmFtZS1hZnRlci1ncmFudGVkLWFjY2Vz
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJj
ZXMvc2VsZi1uYXZpZ2F0aW5nLWZyYW1lLWFmdGVyLWdyYW50ZWQtYWNjZXNzLmh0bWwKQEAgLTUs
NiArNSw3IEBACiAgICAgICAgIGNvbnN0IHVzZXJTaG91bGRHcmFudEFjY2VzcyA9IGhhc2hBcmd1
bWVudHNbMF0gPT09ICJ1c2VyU2hvdWxkR3JhbnRBY2Nlc3MiOwogICAgICAgICBjb25zdCB1c2Vy
U2hvdWxkQmVDb25zdWx0ZWQgPSBoYXNoQXJndW1lbnRzWzFdID09PSAidXNlclNob3VsZEJlQ29u
c3VsdGVkIjsKICAgICAgICAgY29uc3QgcG9saWN5U2hvdWxkR3JhbnRBY2Nlc3MgPSBoYXNoQXJn
dW1lbnRzWzJdID09PSAicG9saWN5U2hvdWxkR3JhbnRBY2Nlc3MiOworICAgICAgICBjb25zdCBz
YW1lU2l0ZU5hdmlnYXRpb24gPSBoYXNoQXJndW1lbnRzWzNdID09PSAic2FtZVNpdGVOYXZpZ2F0
aW9uIjsKIAogICAgICAgICBpZiAoaW50ZXJuYWxzICYmIHVzZXJTaG91bGRHcmFudEFjY2VzcykK
ICAgICAgICAgICAgIGludGVybmFscy5zZXRVc2VyR3JhbnRzU3RvcmFnZUFjY2Vzcyh0cnVlKTsK
QEAgLTI2LDcgKzI3LDExIEBACiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBuYXZpZ2F0
ZSgpIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL2hhcy1zdG9yYWdlLWFjY2Vzcy1pZnJh
bWUuaHRtbCNwb2xpY3lTaG91bGROb3RHcmFudEFjY2VzcyIKKyAgICAgICAgICAgIGlmIChzYW1l
U2l0ZU5hdmlnYXRpb24pIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zdG9yYWdlQWNjZXNzL3Jlc291cmNlcy9oYXMtc3Rv
cmFnZS1hY2Nlc3MtaWZyYW1lLmh0bWwjcG9saWN5U2hvdWxkR3JhbnRBY2Nlc3MiOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9y
ZWRpcmVjdC5waHA/cmVkaXJlY3RUbz1odHRwOi8vbG9jYWxob3N0OjgwMDAvc3RvcmFnZUFjY2Vz
cy9yZXNvdXJjZXMvaGFzLXN0b3JhZ2UtYWNjZXNzLWlmcmFtZS5odG1sIjsKKyAgICAgICAgICAg
IH0KICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHNldENvb2tpZUFuZE5hdmlnYXRlKCkg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDhlZWJmZGZmZjc1N2M4YzIyNmFhMWZjMmI4ZjhjMjBjMTY0Mzk1ZjIuLjBiMjRlOGZlNDZjZmQ2
YzI1MTQ2NGZmNjVjNTY4YjI2MTQ5NzkxODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY5NSw3ICs2OTUsOCBAQCBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pbnRlcmFjdGlvbi1yZXBvcnRlZC1hZnRlci13ZWJz
aXRlLWRhdGEtcgogWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1
ZXN0LXN0b3JhZ2UtYWNjZXNzLWNyb3NzLW9yaWdpbi1zYW5kYm94ZWQtaWZyYW1lLXdpdGhvdXQt
dXNlci1nZXN0dXJlLmh0bWwgWyBQYXNzIF0KIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvaGFzLXN0b3JhZ2UtYWNjZXNzLWZyb20tcHJldmFsZW50LWRvbWFpbi13aXRo
LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBbIFBhc3MgXQogWyBIaWdoU2llcnJhKyBdIGh0dHAvdGVz
dHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1kZXRhY2gtc2hv
dWxkLW5vdC1oYXZlLWFjY2Vzcy5odG1sIFsgUGFzcyBdCi1bIEhpZ2hTaWVycmErIF0gaHR0cC90
ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vzcy10aGVuLW5hdmlnYXRl
LXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MuaHRtbCBbIFBhc3MgXQorWyBIaWdoU2llcnJhKyBdIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1hY2Nlc3MtdGhlbi1uYXZp
Z2F0ZS1jcm9zcy1zaXRlLXNob3VsZC1ub3QtaGF2ZS1hY2Nlc3MuaHRtbCBbIFBhc3MgXQorWyBI
aWdoU2llcnJhKyBdIGh0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXF1ZXN0LWFuZC1ncmFudC1h
Y2Nlc3MtdGhlbi1uYXZpZ2F0ZS1zYW1lLXNpdGUtc2hvdWxkLWhhdmUtYWNjZXNzLmh0bWwgWyBQ
YXNzIF0KIFsgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9y
YWdlLWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbCBbIFBhc3MgXQogWyBIaWdoU2llcnJhKyBdIGh0
dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFudC1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXIu
aHRtbCBbIFBhc3MgXQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>