<?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>92855</bug_id>
          
          <creation_ts>2012-08-01 02:17:40 -0700</creation_ts>
          <short_desc>REGRESSION(r124313): Compilation failed on Chromium ports (Requested by yosin on #webkit).</short_desc>
          <delta_ts>2012-08-01 02:37:13 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>92398</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>dpranke</cc>
    
    <cc>kbalazs</cc>
    
    <cc>yosin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>684006</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 02:17:40 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/124313 broke the build:
Compilation failed on Chromium ports (Requested by yosin on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684009</commentid>
    <comment_count>1</comment_count>
      <attachid>155761</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 02:18:20 -0700</bug_when>
    <thetext>Created attachment 155761
ROLLOUT of r124313

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684013</commentid>
    <comment_count>2</comment_count>
      <attachid>155761</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-01 02:21:02 -0700</bug_when>
    <thetext>Comment on attachment 155761
ROLLOUT of r124313

Rejecting attachment 155761 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
geLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 [CSS] Add selectors for multiple fields time input UI.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.

Full output: http://queues.webkit.org/results/13410331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684019</commentid>
    <comment_count>3</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-01 02:29:07 -0700</bug_when>
    <thetext>* Chromium Android log:
http://build.webkit.org/builders/Chromium%20Android%20Release/builds/22686/steps/compile-webkit/logs/stdio

* Chromium Linux log:
http://build.webkit.org/builders/Chromium%20Linux%20Release/builds/56496/steps/compile-webkit/logs/stdio

In file included from Tools/DumpRenderTree/AccessibilityUIElement.h:29,
                 from Tools/DumpRenderTree/AccessibilityController.h:29,
                 from Tools/DumpRenderTree/chromium/TestShell.h:34,
                 from Tools/DumpRenderTree/chromium/DumpRenderTree.cpp:35:
Tools/DumpRenderTree/AccessibilityTextMarker.h:29:40: error: JavaScriptCore/JSObjectRef.h: No such file or directory

* Chromium Mac log:
http://build.webkit.org/builders/Chromium%20Mac%20Release/builds/41235/steps/compile-webkit/logs/stdio


/Volumes/data/b/WebKit-BuildSlave/chromium-mac-release/build/Tools/DumpRenderTree/DumpRenderTree.gyp/../chromium/WebViewHost.cpp:639:45: error: no member named &apos;setFocusedElement&apos; in &apos;AccessibilityController&apos;; did you mean &apos;focusedElement&apos;?
        m_shell-&gt;accessibilityController()-&gt;setFocusedElement(obj);
                                            ^~~~~~~~~~~~~~~~~
                                            focusedElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684023</commentid>
    <comment_count>4</comment_count>
      <attachid>155761</attachid>
    <who name="">yosin</who>
    <bug_when>2012-08-01 02:33:57 -0700</bug_when>
    <thetext>Comment on attachment 155761
ROLLOUT of r124313

Clearing flags on attachment: 155761

Committed r124319: &lt;http://trac.webkit.org/changeset/124319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684025</commentid>
    <comment_count>5</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-01 02:34:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684031</commentid>
    <comment_count>6</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-08-01 02:37:13 -0700</bug_when>
    <thetext>* Chromium Win
http://build.webkit.org/builders/Chromium%20Win%20Release/builds/46908/steps/compile-webkit/logs/stdio


5&gt;e:\google-windows-1\chromium-win-release\build\tools\dumprendertree\AccessibilityTextMarker.h(29): fatal error C1083: Cannot open include file: &apos;JavaScriptCore/JSObjectRef.h&apos;: No such file or directory
5&gt;  MockSpellCheck.cpp</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155761</attachid>
            <date>2012-08-01 02:18:20 -0700</date>
            <delta_ts>2012-08-01 02:33:57 -0700</delta_ts>
            <desc>ROLLOUT of r124313</desc>
            <filename>bug-92855-20120801092354.patch</filename>
            <type>text/plain</type>
            <size>51230</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzEzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTQzNGRkNTlmNzc5OTlhNTQ0YmUxNGYxMjg1ODEzMGMw
ZTRmYjc3Ni4uY2FkM2ZmYmE4NjdhYjA4MjMxN2ZlZWI2Y2M5MmZlZjU1NmI4OGNlOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgw
IEBACisyMDEyLTA4LTAxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI0MzEzLgorICAgICAgICBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjQzMTMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODU1CisKKyAgICAgICAgQ29tcGlsYXRp
b24gZmFpbGVkIG9uIENocm9taXVtIHBvcnRzIChSZXF1ZXN0ZWQgYnkgeW9zaW4gb24KKyAgICAg
ICAgI3dlYmtpdCkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5n
eXAvRHVtcFJlbmRlclRyZWUuZ3lwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5k
ZXJUcmVlLmd5cGk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlQ29tbW9u
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKG1haW4pOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0
U2hlbGw6OlRlc3RTaGVsbCk6CisgICAgICAgIChUZXN0U2hlbGw6OnJ1bkZpbGVUZXN0KToKKyAg
ICAgICAgKFRlc3RTaGVsbDo6ZHVtcCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFNoZWxsLmg6CisgICAgICAgIChUZXN0UGFyYW1zKToKKyAgICAgICAgKFRlc3RQYXJh
bXM6OlRlc3RQYXJhbXMpOgorICAgICAgICAoVGVzdFNoZWxsKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHBhcnNlQ29tbWFuZExpbmVPcHRpb25zKToK
KyAgICAgICAgKGdldEZpbmFsVGVzdFVSTCk6CisgICAgICAgIChnZXRFeHBlY3RlZFBpeGVsSGFz
aCk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKHNob3VsZER1bXBQaXhlbHNBbmRDb21w
YXJlV2l0aEV4cGVjdGVkKToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChpbml0aWFsaXplR2xvYmFsc0Zy
b21Db21tYW5kTGluZU9wdGlvbnMpOgorICAgICAgICAoZHVtcCk6CisgICAgICAgIChydW5UZXN0
KToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbToKKyAgICAgICAgKGluaXRpYWxpemVHbG9iYWxzRnJvbUNvbW1hbmRMaW5lT3B0
aW9ucyk6CisgICAgICAgIChkdW1wUmVuZGVyVHJlZSk6CisgICAgICAgIChkdW1wKToKKyAgICAg
ICAgKHJ1blRlc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
LnBybzoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkR1bXBSZW5kZXJUcmVlOjpwcm9jZXNzTGluZSk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKGR1bXAp
OgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgIChkbGxMYXVuY2hlckVudHJ5UG9pbnQpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS52Y3Byb2o6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd3NjcmlwdDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93
eC9EdW1wUmVuZGVyVHJlZVd4LmNwcDoKKyAgICAgICAgKGR1bXApOgorICAgICAgICAocnVuVGVz
dCk6CisgICAgICAgIChNeUFwcDo6T25Jbml0KToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KyAgICAgICAgKiBTY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzOgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuc3Vw
cG9ydHNfc3dpdGNoaW5nX3BpeGVsX3Rlc3RzX3Blcl90ZXN0KToKKyAgICAgICAgKFBvcnQpOgor
ICAgICAgICAoUG9ydC5fc3VwcG9ydHNfc3dpdGNoaW5nX3BpeGVsX3Rlc3RzX3Blcl90ZXN0KToK
KyAgICAgICAgKFBvcnQuc2hvdWxkX3J1bl9hc19waXhlbF90ZXN0KToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weToKKyAgICAgICAgKERyaXZl
ci5jbWRfbGluZSk6CisgICAgICAgIChEcml2ZXIuX2NvbW1hbmRfZnJvbV9kcml2ZXJfaW5wdXQp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHk6Cisg
ICAgICAgIChRdFBvcnQuX3N1cHBvcnRzX3N3aXRjaGluZ19waXhlbF90ZXN0c19wZXJfdGVzdCk6
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5Ogor
ICAgICAgICAoVGVzdFBvcnQuc3VwcG9ydHNfc3dpdGNoaW5nX3BpeGVsX3Rlc3RzX3Blcl90ZXN0
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OlRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cnVuVGVzdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
OgorICAgICAgICAoVGVzdENvbnRyb2xsZXIpOgorCiAyMDEyLTA4LTAxICBCYWxhenMgS2VsZW1l
biAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBBbGwgcG9ydHMgc2hvdWxkIHN1cHBv
cnQgcGVyIHRlc3Qgc3dpdGNoaW5nIG9mIHBpeGVsIHRlc3RpbmcKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cC9EdW1wUmVuZGVyVHJlZS5neXAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXAvRHVtcFJlbmRlclRyZWUuZ3lw
CmluZGV4IGQ1NTBhNDdhODY0NTY0MDQ2MzA3MmM3NzZhZjA5Njk5OWNiYzM3OTQuLmUzOGM4ZDhk
NDljYzMxYmE0ZDE0ODAwNjYyYzk1Mjg0NTNkNDFiMmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cC9EdW1wUmVuZGVyVHJlZS5neXAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwL0R1bXBSZW5kZXJUcmVlLmd5cApA
QCAtMTMzLDcgKzEzMyw2IEBACiAgICAgICAgICAgICAnaW5jbHVkZV9kaXJzJzogWwogICAgICAg
ICAgICAgICAgICc8KGNocm9taXVtX3NyY19kaXIpJywKICAgICAgICAgICAgICAgICAnPChzb3Vy
Y2VfZGlyKS9XZWJLaXQvY2hyb21pdW0vcHVibGljJywKLSAgICAgICAgICAgICAgICAnPCh0b29s
c19kaXIpL0R1bXBSZW5kZXJUcmVlJywKICAgICAgICAgICAgICAgICAnPChERVBUSCknLAogICAg
ICAgICAgICAgXSwKICAgICAgICAgICAgICdkZWZpbmVzJzogWwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLmd5cGkKaW5kZXggNDE2YmIwNzMyNTg4N2Q1N2I5MDllOTMxMjIzNTRm
MDhiN2RmYmE0Ni4uZjJiYzczZDdiZGY2Zjc0ZDE0NTY3N2Q3ZGZjNDNhZTM1ZGQyYzZhNCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpCkBAIC01NCw4ICs1NCw2IEBA
CiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViVmlld0hvc3QuaCcsCiAgICAgICAgIF0sCiAgICAg
ICAgICd0ZXN0X3J1bm5lcl9maWxlcyc6IFsKLSAgICAgICAgICAgICdEdW1wUmVuZGVyVHJlZS5o
JywKLSAgICAgICAgICAgICdEdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAnLAogICAgICAgICAgICAg
J2Nocm9taXVtL1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgnLAog
ICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHAnLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmgKaW5kZXggMThkOGNkYTBlYjE3
ZmE4M2JlZTIwODliNmQ0ODVhNjQ5ZGJiODY3MC4uMGU1OThiZTRhZTNkZDYyNWYwYjQ1ZWZlNmIy
OGZhMzVmNjdmNTJmMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRl
clRyZWUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oCkBAIC02
NSwxNCArNjUsNCBAQCBleHRlcm4gUmVmUHRyPExheW91dFRlc3RDb250cm9sbGVyPiBnTGF5b3V0
VGVzdENvbnRyb2xsZXI7CiB2b2lkIGR1bXAoKTsKIHZvaWQgZGlzcGxheVdlYlZpZXcoKTsKIAot
c3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBUZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVs
cyhmYWxzZSkgeyB9Ci0KLSAgICBzdGQ6OnN0cmluZyBwYXRoT3JVUkw7Ci0gICAgYm9vbCBzaG91
bGREdW1wUGl4ZWxzOwotICAgIHN0ZDo6c3RyaW5nIGV4cGVjdGVkUGl4ZWxIYXNoOwotfTsKLQot
VGVzdENvbW1hbmQgcGFyc2VJbnB1dExpbmUoY29uc3Qgc3RkOjpzdHJpbmcmKTsKLQogI2VuZGlm
IC8vIER1bXBSZW5kZXJUcmVlX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1
bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ4MTA2
NGViMDViMzM1YTNjZjU2MGQwMGRjYTYyNmM5M2YyOGI4ZTYuLjgzYmZmZDQ0ODQxYWExMjJlZWRl
ZDQ3MjUxMzRjNjkxNTIwMGRkNWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1
bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODks
NyArODksNiBAQAogCQk4Q0NEQTgyQTE1MUE3MkQxMDAwM0Y5MzcgLyogU2FtcGxlRm9udC5zZm9u
dCBpbiBDb3B5IEZvbnQgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OENDREE4MUYxNTFBNTY1NTAwMDNGOTM3IC8qIFNhbXBsZUZvbnQuc2ZvbnQgKi87IH07CiAJCTkz
NDA5OTRDMDg1NDBDQUUwMDdGM0JDOCAvKiBEdW1wUmVuZGVyVHJlZVByZWZpeC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzJBNzBBQUIwMzcwNUUxRjAw
QzkxNzgzIC8qIER1bXBSZW5kZXJUcmVlUHJlZml4LmggKi87IH07CiAJCTkzNDA5OTUxMDg1NDBD
QUUwMDdGM0JDOCAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzNTQzNUYwM0Q3NTUwMjAwODYzNUNFIC8qIFdlYktp
dC5mcmFtZXdvcmsgKi87IH07Ci0JCTk4MzBGMzFGMTVDODExODEwMDVBQjIwNiAvKiBEdW1wUmVu
ZGVyVHJlZUNvbW1vbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5ODMwRjMxRTE1QzgxMTgxMDA1QUIyMDYgLyogRHVtcFJlbmRlclRyZWVDb21tb24u
Y3BwICovOyB9OwogCQlBODE3MDkwMDA4QjE2M0VGMDBDQ0I5RkIgLyogQ29jb2EuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg0RjYw
ODkwOEIxMzZEQTAwRTk3NDVGIC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKIAkJQTgxNzA5MDQw
OEIxNjREMzAwQ0NCOUZCIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTcwOTAzMDhCMTY0RDMwMEND
QjlGQiAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCUE4NEY2MDhBMDhCMTM2
REEwMEU5NzQ1RiAvKiBDb2NvYS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODRGNjA4OTA4QjEzNkRBMDBFOTc0NUYgLyogQ29jb2Eu
ZnJhbWV3b3JrICovOyB9OwpAQCAtMjkwLDcgKzI4OSw2IEBACiAJCThDQ0RBODFGMTUxQTU2NTUw
MDAzRjkzNyAvKiBTYW1wbGVGb250LnNmb250ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54bWw7IG5hbWUgPSBT
YW1wbGVGb250LnNmb250OyBwYXRoID0gZm9udHMvU2FtcGxlRm9udC5zZm9udDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzNTQzNUYwM0Q3NTUwMjAwODYzNUNFIC8qIFdlYktpdC5m
cmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgcGF0aCA9IFdlYktpdC5mcmFtZXdvcms7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzNDA5OTU0MDg1NDBDQUYwMDdGM0JDOCAvKiBE
dW1wUmVuZGVyVHJlZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gRHVtcFJlbmRlclRyZWU7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
Ci0JCTk4MzBGMzFFMTVDODExODEwMDVBQjIwNiAvKiBEdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEdW1wUmVuZGVyVHJlZUNvbW1v
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MDNGRjc0MDlDQUFEMDgwMDlC
MkEzNyAvKiBEdW1wUmVuZGVyVHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRo
ID0gRHVtcFJlbmRlclRyZWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgxNzA5
MDMwOEIxNjREMzAwQ0NCOUZCIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBwYXRoID0gSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwogCQlBODRGNjA4OTA4QjEzNkRBMDBFOTc0NUYgLyogQ29jb2EuZnJhbWV3
b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3Jh
cHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb2NvYS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9Db2NvYS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CkBAIC00MjMsNyArNDIxLDYgQEAKIAkJMDhGQjc3OTRGRTg0MTU1REMwMkFBQzA3IC8q
IER1bXBSZW5kZXJUcmVlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKLQkJCQk5ODMwRjMxRTE1QzgxMTgxMDA1QUIyMDYgLyogRHVtcFJlbmRlclRyZWVDb21tb24u
Y3BwICovLAogCQkJCTMyQTcwQUFCMDM3MDVFMUYwMEM5MTc4MyAvKiBEdW1wUmVuZGVyVHJlZVBy
ZWZpeC5oICovLAogCQkJCTE0MjJBMjc1MEFGNkY0QkQwMEUxQTg4MyAvKiBEZWxlZ2F0ZXMgKi8s
CiAJCQkJMTQyMkEyNjkwQUY2RjQ1MjAwRTFBODgzIC8qIENvbnRyb2xsZXJzICovLApAQCAtOTU4
LDcgKzk1NSw2IEBACiAJCQkJMjlDRkJBMkUxMjI3M0ExMDAwQkMzMEMwIC8qIEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJM0E1NjI2Q0IxMzFDQTAyQTAw
MkJFNkQ5IC8qIFN0b3JhZ2VUcmFja2VyRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
MDA0NUFFRTE0NzcxOEU3MDA4MjkwQTggLyogQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbkhhbmRs
ZXIubW0gaW4gU291cmNlcyAqLywKLQkJCQk5ODMwRjMxRjE1QzgxMTgxMDA1QUIyMDYgLyogRHVt
cFJlbmRlclRyZWVDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZUNvbW1vbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ4ZDgzMjI1OGIzODIxYzQ3MTUwZjA3YTgwMzQ4MzYzOTVkNDIwMWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
RHVtcFJlbmRlclRyZWVDb21tb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlLmgiCi0KLSNpbmNs
dWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8Y3R5cGUuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgot
I2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZz4KLQotY2xhc3MgQ29tbWFuZFRv
a2VuaXplciB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29tbWFuZFRva2VuaXplcihjb25zdCBz
dGQ6OnN0cmluZyYgaW5wdXQpCi0gICAgICAgIDogbV9pbnB1dChpbnB1dCkKLSAgICAgICAgLCBt
X3Bvc05leHRTZXBhcmF0b3IoMCkKLSAgICB7Ci0gICAgICAgIHB1bXAoKTsKLSAgICB9Ci0KLSAg
ICBib29sIGhhc05leHQoKSBjb25zdDsKLSAgICBzdGQ6OnN0cmluZyBuZXh0KCk7Ci0KLXByaXZh
dGU6Ci0gICAgdm9pZCBwdW1wKCk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIga1NlcGFyYXRvciA9
ICdcJyc7Ci0gICAgY29uc3Qgc3RkOjpzdHJpbmcmIG1faW5wdXQ7Ci0gICAgc3RkOjpzdHJpbmcg
bV9uZXh0OwotICAgIHNpemVfdCBtX3Bvc05leHRTZXBhcmF0b3I7Ci19OwotCi12b2lkIENvbW1h
bmRUb2tlbml6ZXI6OnB1bXAoKQotewotICAgIGlmIChtX3Bvc05leHRTZXBhcmF0b3IgPT0gc3Rk
OjpzdHJpbmc6Om5wb3MgfHwgbV9wb3NOZXh0U2VwYXJhdG9yID09IG1faW5wdXQuc2l6ZSgpKSB7
Ci0gICAgICAgIG1fbmV4dCA9IHN0ZDo6c3RyaW5nKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgc2l6ZV90IHN0YXJ0ID0gbV9wb3NOZXh0U2VwYXJhdG9yID8gbV9wb3NOZXh0U2VwYXJh
dG9yICsgMSA6IDA7Ci0gICAgbV9wb3NOZXh0U2VwYXJhdG9yID0gbV9pbnB1dC5maW5kKGtTZXBh
cmF0b3IsIHN0YXJ0KTsKLSAgICBzaXplX3Qgc2l6ZSA9IG1fcG9zTmV4dFNlcGFyYXRvciA9PSBz
dGQ6OnN0cmluZzo6bnBvcyA/IHN0ZDo6c3RyaW5nOjpucG9zIDogbV9wb3NOZXh0U2VwYXJhdG9y
IC0gc3RhcnQ7Ci0gICAgbV9uZXh0ID0gc3RkOjpzdHJpbmcobV9pbnB1dCwgc3RhcnQsIHNpemUp
OwotfQotCi1zdGQ6OnN0cmluZyBDb21tYW5kVG9rZW5pemVyOjpuZXh0KCkKLXsKLSAgICBBU1NF
UlQoaGFzTmV4dCgpKTsKLQotICAgIHN0ZDo6c3RyaW5nIG9sZE5leHQgPSBtX25leHQ7Ci0gICAg
cHVtcCgpOwotICAgIHJldHVybiBvbGROZXh0OwotfQotCi1ib29sIENvbW1hbmRUb2tlbml6ZXI6
Omhhc05leHQoKSBjb25zdAotewotICAgIHJldHVybiAhbV9uZXh0LmVtcHR5KCk7Ci19Ci0KLU5P
X1JFVFVSTiBzdGF0aWMgdm9pZCBkaWUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKLXsK
LSAgICBmcHJpbnRmKHN0ZGVyciwgIlVuZXhwZWN0ZWQgaW5wdXQgbGluZTogJXNcbiIsIGlucHV0
TGluZS5jX3N0cigpKTsKLSAgICBleGl0KDEpOwotfQotCi1UZXN0Q29tbWFuZCBwYXJzZUlucHV0
TGluZShjb25zdCBzdGQ6OnN0cmluZyYgaW5wdXRMaW5lKQotewotICAgIFRlc3RDb21tYW5kIHJl
c3VsdDsKLSAgICBDb21tYW5kVG9rZW5pemVyIHRva2VuaXplcihpbnB1dExpbmUpOwotICAgIGlm
ICghdG9rZW5pemVyLmhhc05leHQoKSkKLSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0KLSAgICBy
ZXN1bHQucGF0aE9yVVJMID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICBpZiAoIXRva2VuaXplci5o
YXNOZXh0KCkpCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0KLSAgICBzdGQ6OnN0cmluZyBhcmcg
PSB0b2tlbml6ZXIubmV4dCgpOwotICAgIGlmIChhcmcgIT0gc3RkOjpzdHJpbmcoIi1wIikgJiYg
YXJnICE9IHN0ZDo6c3RyaW5nKCItLXBpeGVsLXRlc3QiKSkKLSAgICAgICAgZGllKGlucHV0TGlu
ZSk7Ci0gICAgcmVzdWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOwotCi0gICAgaWYgKHRva2Vu
aXplci5oYXNOZXh0KCkpCi0gICAgICAgIHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2Vu
aXplci5uZXh0KCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGI1NTk0ODQzNmMyOGI1
NGYyY2Y3NjliZTllZTkyNTdkMzAxOTIxMzQuLjYxNTVmNDQxZjVkOGJiM2M0NGU1MTc5MDgwZGNi
MTc0NDVlODk4NzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1
bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1w
UmVuZGVyVHJlZS5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRHVtcFJlbmRlclRyZWUuaCIKIAogI2luY2x1ZGUgIk1vY2tXZWJLaXRQ
bGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJUZXN0U2hlbGwuaCIKQEAgLTQ1LDYgKzQ0LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkNvbXBsZXhU
ZXh0W10gPSAiLS1jb21wbGV4LXRleHQiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRHVtcEFs
bFBpeGVsc1tdID0gIi0tZHVtcC1hbGwtcGl4ZWxzIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlv
bk5vdHJlZVtdID0gIi0tbm90cmVlIjsKK3N0YXRpYyBjb25zdCBjaGFyIG9wdGlvblBpeGVsVGVz
dHNbXSA9ICItLXBpeGVsLXRlc3RzIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvblRocmVhZGVk
W10gPSAiLS10aHJlYWRlZCI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25EZWJ1Z1JlbmRlclRy
ZWVbXSA9ICItLWRlYnVnLXJlbmRlci10cmVlIjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkRl
YnVnTGF5ZXJUcmVlW10gPSAiLS1kZWJ1Zy1sYXllci10cmVlIjsKQEAgLTg1LDEyICs4NSwxNyBA
QCBwcml2YXRlOgogICAgIE93blB0cjxNb2NrV2ViS2l0UGxhdGZvcm1TdXBwb3J0PiBtX21vY2tQ
bGF0Zm9ybTsKIH07CiAKLXN0YXRpYyB2b2lkIHJ1blRlc3QoVGVzdFNoZWxsJiBzaGVsbCwgVGVz
dFBhcmFtcyYgcGFyYW1zLCBjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKK3N0YXRpYyB2b2lkIHJ1
blRlc3QoVGVzdFNoZWxsJiBzaGVsbCwgVGVzdFBhcmFtcyYgcGFyYW1zLCBjb25zdCBzdHJpbmcm
IHRlc3ROYW1lKQogewogICAgIGludCBvbGRUaW1lb3V0TXNlYyA9IHNoZWxsLmxheW91dFRlc3RU
aW1lb3V0KCk7Ci0gICAgVGVzdENvbW1hbmQgY29tbWFuZCA9IHBhcnNlSW5wdXRMaW5lKGlucHV0
TGluZSk7Ci0gICAgcGFyYW1zLnRlc3RVcmwgPSB3ZWJraXRfc3VwcG9ydDo6Q3JlYXRlVVJMRm9y
UGF0aE9yVVJMKGNvbW1hbmQucGF0aE9yVVJMKTsKLSAgICBwYXJhbXMucGl4ZWxIYXNoID0gY29t
bWFuZC5zaG91bGREdW1wUGl4ZWxzOworICAgIHBhcmFtcy5waXhlbEhhc2ggPSAiIjsKKyAgICBz
dHJpbmcgcGF0aE9yVVJMID0gdGVzdE5hbWU7CisgICAgc3RyaW5nOjpzaXplX3R5cGUgc2VwYXJh
dG9yUG9zaXRpb24gPSBwYXRoT3JVUkwuZmluZCgiJyIpOworICAgIGlmIChzZXBhcmF0b3JQb3Np
dGlvbiAhPSBzdHJpbmc6Om5wb3MpIHsKKyAgICAgICAgcGFyYW1zLnBpeGVsSGFzaCA9IHBhdGhP
clVSTC5zdWJzdHIoc2VwYXJhdG9yUG9zaXRpb24gKyAxKTsKKyAgICAgICAgcGF0aE9yVVJMLmVy
YXNlKHNlcGFyYXRvclBvc2l0aW9uKTsKKyAgICB9CisgICAgcGFyYW1zLnRlc3RVcmwgPSB3ZWJr
aXRfc3VwcG9ydDo6Q3JlYXRlVVJMRm9yUGF0aE9yVVJMKHBhdGhPclVSTCk7CiAgICAgd2Via2l0
X3N1cHBvcnQ6OlNldEN1cnJlbnREaXJlY3RvcnlGb3JGaWxlVVJMKHBhcmFtcy50ZXN0VXJsKTsK
ICAgICB2ODo6Vjg6OlNldEZsYWdzRnJvbVN0cmluZyhzaGVsbC5qYXZhU2NyaXB0RmxhZ3MoKS5j
X3N0cigpLCBzaGVsbC5qYXZhU2NyaXB0RmxhZ3MoKS5sZW5ndGgoKSk7CiAgICAgaWYgKHNoZWxs
LnN0cmVzc09wdCgpIHx8IHNoZWxsLnN0cmVzc0Rlb3B0KCkpIHsKQEAgLTEwMywxMSArMTA4LDEx
IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoVGVzdFNoZWxsJiBzaGVsbCwgVGVzdFBhcmFtcyYgcGFy
YW1zLCBjb25zdCBzdHJpbmcmIGlucHV0TGluCiAgICAgICAgICAgYm9vbCBpc0xhc3RMb2FkID0g
KGkgPT0gKHY4OjpUZXN0aW5nOjpHZXRTdHJlc3NSdW5zKCkgLSAxKSk7CiAgICAgICAgICAgc2hl
bGwuc2V0RHVtcFdoZW5GaW5pc2hlZChpc0xhc3RMb2FkKTsKICAgICAgICAgICBzaGVsbC5yZXNl
dFRlc3RDb250cm9sbGVyKCk7Ci0gICAgICAgICAgc2hlbGwucnVuRmlsZVRlc3QocGFyYW1zLCBj
b21tYW5kLnNob3VsZER1bXBQaXhlbHMpOworICAgICAgICAgIHNoZWxsLnJ1bkZpbGVUZXN0KHBh
cmFtcyk7CiAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgIHNoZWxsLnJlc2V0VGVzdENvbnRy
b2xsZXIoKTsKLSAgICAgIHNoZWxsLnJ1bkZpbGVUZXN0KHBhcmFtcywgY29tbWFuZC5zaG91bGRE
dW1wUGl4ZWxzKTsKKyAgICAgIHNoZWxsLnJ1bkZpbGVUZXN0KHBhcmFtcyk7CiAgICAgfQogICAg
IHNoZWxsLnNldExheW91dFRlc3RUaW1lb3V0KG9sZFRpbWVvdXRNc2VjKTsKIH0KQEAgLTE0MSw2
ICsxNDYsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICAgICAg
c2VydmVyTW9kZSA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvbk5v
dHJlZSkKICAgICAgICAgICAgIHBhcmFtcy5kdW1wVHJlZSA9IGZhbHNlOworICAgICAgICBlbHNl
IGlmIChhcmd1bWVudCA9PSBvcHRpb25QaXhlbFRlc3RzKQorICAgICAgICAgICAgcGFyYW1zLmR1
bXBQaXhlbHMgPSB0cnVlOwogICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25EZWJ1
Z1JlbmRlclRyZWUpCiAgICAgICAgICAgICBwYXJhbXMuZGVidWdSZW5kZXJUcmVlID0gdHJ1ZTsK
ICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRGVidWdMYXllclRyZWUpCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRleCBlNTNhMWYyZDg3
NjNmMDY0NGNjM2I2MDdmNjEzOTdjYmY2ZmVlYjI1Li5mMTIyZTFkMmJlZTMyYTU0MTE1YTMzM2Vh
ZjBiZGViNjljZWViYWRjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHAKQEAgLTEwNiw3ICsxMDYsNiBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbCgpCiAgICAg
LCBtX3Rlc3RJc1ByZXBhcmluZyhmYWxzZSkKICAgICAsIG1fZm9jdXNlZFdpZGdldCgwKQogICAg
ICwgbV9kZXZUb29scygwKQotICAgICwgbV9kdW1wUGl4ZWxzRm9yQ3VycmVudFRlc3QoZmFsc2Up
CiAgICAgLCBtX2FsbG93RXh0ZXJuYWxQYWdlcyhmYWxzZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZChmYWxzZSkKICAgICAsIG1fdGhyZWFkZWRDb21wb3Np
dGluZ0VuYWJsZWQoZmFsc2UpCkBAIC0yMzMsMTYgKzIzMiwxMyBAQCB2b2lkIFRlc3RTaGVsbDo6
cmVzZXRXZWJTZXR0aW5ncyhXZWJWaWV3JiB3ZWJWaWV3KQogICAgIG1fcHJlZnMuYXBwbHlUbygm
d2ViVmlldyk7CiB9CiAKLXZvaWQgVGVzdFNoZWxsOjpydW5GaWxlVGVzdChjb25zdCBUZXN0UGFy
YW1zJiBwYXJhbXMsIGJvb2wgc2hvdWxkRHVtcFBpeGVscykKK3ZvaWQgVGVzdFNoZWxsOjpydW5G
aWxlVGVzdChjb25zdCBUZXN0UGFyYW1zJiBwYXJhbXMpCiB7CiAgICAgQVNTRVJUKHBhcmFtcy50
ZXN0VXJsLmlzVmFsaWQoKSk7Ci0gICAgbV9kdW1wUGl4ZWxzRm9yQ3VycmVudFRlc3QgPSBzaG91
bGREdW1wUGl4ZWxzOwogICAgIG1fdGVzdElzUHJlcGFyaW5nID0gdHJ1ZTsKICAgICBtX3BhcmFt
cyA9IHBhcmFtczsKICAgICBzdHJpbmcgdGVzdFVybCA9IG1fcGFyYW1zLnRlc3RVcmwuc3BlYygp
OwogCi0gICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+c2V0U2hvdWxkR2VuZXJhdGVQaXhlbFJl
c3VsdHMoc2hvdWxkRHVtcFBpeGVscyk7Ci0KICAgICBpZiAodGVzdFVybC5maW5kKCJsb2FkaW5n
LyIpICE9IHN0cmluZzo6bnBvcwogICAgICAgICB8fCB0ZXN0VXJsLmZpbmQoImxvYWRpbmdcXCIp
ICE9IHN0cmluZzo6bnBvcykKICAgICAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlci0+c2V0U2hv
dWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyh0cnVlKTsKQEAgLTYwNyw3ICs2MDMsNyBAQCB2b2lk
IFRlc3RTaGVsbDo6ZHVtcCgpCiAgICAgaWYgKGR1bXBlZEFueXRoaW5nICYmIG1fcGFyYW1zLnBy
aW50U2VwYXJhdG9ycykKICAgICAgICAgbV9wcmludGVyLmhhbmRsZVRleHRGb290ZXIoKTsKIAot
ICAgIGlmIChtX2R1bXBQaXhlbHNGb3JDdXJyZW50VGVzdCAmJiBzaG91bGRHZW5lcmF0ZVBpeGVs
UmVzdWx0cykgeworICAgIGlmIChtX3BhcmFtcy5kdW1wUGl4ZWxzICYmIHNob3VsZEdlbmVyYXRl
UGl4ZWxSZXN1bHRzKSB7CiAgICAgICAgIC8vIEltYWdlIG91dHB1dDogd2Ugd3JpdGUgdGhlIGlt
YWdlIGRhdGEgdG8gdGhlIGZpbGUgZ2l2ZW4gb24gdGhlCiAgICAgICAgIC8vIGNvbW1hbmQgbGlu
ZSAoZm9yIHRoZSBkdW1wIHBpeGVscyBhcmd1bWVudCksIGFuZCB0aGUgTUQ1IHN1bSB0bwogICAg
ICAgICAvLyBzdGRvdXQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0U2hlbGwuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5o
CmluZGV4IDJlNjVjMGRkZGM4Y2I3NzE1YTE1ZjBiOTMwZDg0ZDhiZjMzYTAxNGEuLmRiZmMxZDFj
OWExM2IxY2NjMWVkOGNmNGFlOGJmOThmZWI2MWI5NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RTaGVsbC5oCkBAIC02Myw2ICs2Myw3IEBAIGNsYXNzIFdlYlBlcm1pc3Np
b25zOwogCiBzdHJ1Y3QgVGVzdFBhcmFtcyB7CiAgICAgYm9vbCBkdW1wVHJlZTsKKyAgICBib29s
IGR1bXBQaXhlbHM7CiAgICAgYm9vbCBkZWJ1Z1JlbmRlclRyZWU7CiAgICAgYm9vbCBkZWJ1Z0xh
eWVyVHJlZTsKICAgICBib29sIHByaW50U2VwYXJhdG9yczsKQEAgLTcxLDYgKzcyLDcgQEAgc3Ry
dWN0IFRlc3RQYXJhbXMgewogCiAgICAgVGVzdFBhcmFtcygpCiAgICAgICAgIDogZHVtcFRyZWUo
dHJ1ZSkKKyAgICAgICAgLCBkdW1wUGl4ZWxzKGZhbHNlKQogICAgICAgICAsIGRlYnVnUmVuZGVy
VHJlZShmYWxzZSkKICAgICAgICAgLCBkZWJ1Z0xheWVyVHJlZShmYWxzZSkKICAgICAgICAgLCBw
cmludFNlcGFyYXRvcnMoZmFsc2UpIHsgfQpAQCAtMTAxLDcgKzEwMyw3IEBAIHB1YmxpYzoKICAg
ICBXZWJQZXJtaXNzaW9ucyogd2ViUGVybWlzc2lvbnMoKSB7IHJldHVybiBtX3dlYlBlcm1pc3Np
b25zLmdldCgpOyB9CiAKICAgICB2b2lkIGJpbmRKU09iamVjdHNUb1dpbmRvdyhXZWJLaXQ6Oldl
YkZyYW1lKik7Ci0gICAgdm9pZCBydW5GaWxlVGVzdChjb25zdCBUZXN0UGFyYW1zJiwgYm9vbCBz
aG91bGREdW1wUGl4ZWxUZXN0cyk7CisgICAgdm9pZCBydW5GaWxlVGVzdChjb25zdCBUZXN0UGFy
YW1zJik7CiAgICAgdm9pZCBjYWxsSlNHQygpOwogICAgIHZvaWQgcmVzZXRUZXN0Q29udHJvbGxl
cigpOwogICAgIHZvaWQgd2FpdFRlc3RGaW5pc2hlZCgpOwpAQCAtMjIyLDcgKzIyNCw2IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIFRlc3RQYXJhbXMgbV9wYXJhbXM7Ci0gICAgYm9vbCBtX2R1
bXBQaXhlbHNGb3JDdXJyZW50VGVzdDsKICAgICBpbnQgbV90aW1lb3V0OyAvLyB0aW1lb3V0IHZh
bHVlIGluIG1pbGxpc2Vjb25kCiAgICAgYm9vbCBtX2FsbG93RXh0ZXJuYWxQYWdlczsKICAgICBi
b29sIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9DTWFrZUxpc3RzLnR4dAppbmRleCAwNjdkYmQzMmI3YWE5MWY1YTU0N2NiN2Jl
NTdmZjRiZGY1OTk5MzI5Li5lMWRhY2Y5MDFiYTA2MjVhNWExZTgwN2VjNmI5NDUzNDM0OTg0Y2Fh
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvQ01ha2VMaXN0cy50eHQKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0NNYWtlTGlzdHMudHh0CkBAIC0xLDUgKzEsNCBA
QAogU0VUKER1bXBSZW5kZXJUcmVlX1NPVVJDRVMKLSAgICAke1RPT0xTX0RJUn0vRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwCiAgICAgJHtUT09MU19ESVJ9L0R1bXBSZW5k
ZXJUcmVlL0N5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAKICAgICAke1RPT0xTX0RJUn0vRHVtcFJl
bmRlclRyZWUvR0NDb250cm9sbGVyLmNwcAogICAgICR7VE9PTFNfRElSfS9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVt
cFJlbmRlclRyZWUuY3BwCmluZGV4IDlhNDdlNDQ4ZmI3ZjJjMDhjMTgwMDgwYTc1MWQ2ODEwNjE0
Y2Q2ZmIuLmQ2MjU1ZmRjOTk3OTNkN2E4MDkzNGRmMjczYmE4NmYwNDNmY2Y5MDcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNjUsNyArNjUsNyBA
QCBleHRlcm4gRXdrX0hpc3RvcnlfSXRlbSogcHJldlRlc3RCRkl0ZW07CiBSZWZQdHI8TGF5b3V0
VGVzdENvbnRyb2xsZXI+IGdMYXlvdXRUZXN0Q29udHJvbGxlcjsKIHZvbGF0aWxlIGJvb2wgZG9u
ZSA9IGZhbHNlOwogCi1zdGF0aWMgYm9vbCBkdW1wUGl4ZWxzRm9yQ3VycmVudFRlc3Q7CitzdGF0
aWMgaW50IGR1bXBQaXhlbHMgPSBmYWxzZTsKIHN0YXRpYyBpbnQgZHVtcFRyZWUgPSB0cnVlOwog
c3RhdGljIGludCBwcmludFNlcGFyYXRvcnMgPSB0cnVlOwogc3RhdGljIGludCB1c2VYMTFXaW5k
b3cgPSBmYWxzZTsKQEAgLTE5Myw2ICsxOTMsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZUNvbW1hbmRM
aW5lT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiB7CiAgICAgc3RhdGljIGNvbnN0IG9w
dGlvbiBvcHRpb25zW10gPSB7CiAgICAgICAgIHsibm90cmVlIiwgbm9fYXJndW1lbnQsICZkdW1w
VHJlZSwgZmFsc2V9LAorICAgICAgICB7InBpeGVsLXRlc3RzIiwgbm9fYXJndW1lbnQsICZkdW1w
UGl4ZWxzLCB0cnVlfSwKICAgICAgICAgeyJ0cmVlIiwgbm9fYXJndW1lbnQsICZkdW1wVHJlZSwg
dHJ1ZX0sCiAgICAgICAgIHsiZ3VpIiwgbm9fYXJndW1lbnQsICZ1c2VYMTFXaW5kb3csIHRydWV9
LAogICAgICAgICB7MCwgMCwgMCwgMH0KQEAgLTIxMCw2ICsyMTEsMzIgQEAgc3RhdGljIGJvb2wg
cGFyc2VDb21tYW5kTGluZU9wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIHJldHVy
biB0cnVlOwogfQogCitzdGF0aWMgU3RyaW5nIGdldEZpbmFsVGVzdFVSTChjb25zdCBTdHJpbmcm
IHRlc3RVUkwpCit7CisgICAgY29uc3Qgc2l6ZV90IGhhc2hTZXBhcmF0b3JQb3MgPSB0ZXN0VVJM
LmZpbmQoIiciKTsKKyAgICBpZiAoaGFzaFNlcGFyYXRvclBvcyAhPSBub3RGb3VuZCkKKyAgICAg
ICAgcmV0dXJuIGdldEZpbmFsVGVzdFVSTCh0ZXN0VVJMLmxlZnQoaGFzaFNlcGFyYXRvclBvcykp
OworCisgICAgLy8gQ29udmVydCB0aGUgcGF0aCBpbnRvIGEgZnVsbCBmaWxlIFVSTCBpZiBpdCBk
b2VzIG5vdCBsb29rCisgICAgLy8gbGlrZSBhbiBIVFRQL1MgVVJMIChkb2Vzbid0IHN0YXJ0IHdp
dGggaHR0cDovLyBvciBodHRwczovLykuCisgICAgaWYgKCF0ZXN0VVJMLnN0YXJ0c1dpdGgoImh0
dHA6Ly8iKSAmJiAhdGVzdFVSTC5zdGFydHNXaXRoKCJodHRwczovLyIpKSB7CisgICAgICAgIGNo
YXIqIGNGaWxlUGF0aCA9IGVjb3JlX2ZpbGVfcmVhbHBhdGgodGVzdFVSTC51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZpbGVQYXRoID0gU3RyaW5nOjpmcm9tVVRGOChjRmls
ZVBhdGgpOworICAgICAgICBmcmVlKGNGaWxlUGF0aCk7CisKKyAgICAgICAgaWYgKGVjb3JlX2Zp
bGVfZXhpc3RzKGZpbGVQYXRoLnV0ZjgoKS5kYXRhKCkpKQorICAgICAgICAgICAgcmV0dXJuIFN0
cmluZygiZmlsZTovLyIpICsgZmlsZVBhdGg7CisgICAgfQorCisgICAgcmV0dXJuIHRlc3RVUkw7
Cit9CisKK3N0YXRpYyBTdHJpbmcgZ2V0RXhwZWN0ZWRQaXhlbEhhc2goY29uc3QgU3RyaW5nJiB0
ZXN0VVJMKQoreworICAgIGNvbnN0IHNpemVfdCBoYXNoU2VwYXJhdG9yUG9zID0gdGVzdFVSTC5m
aW5kKCInIik7CisgICAgcmV0dXJuIChoYXNoU2VwYXJhdG9yUG9zICE9IG5vdEZvdW5kKSA/IHRl
c3RVUkwuc3Vic3RyaW5nKGhhc2hTZXBhcmF0b3JQb3MgKyAxKSA6IFN0cmluZygpOworfQorCiBz
dGF0aWMgaW5saW5lIGJvb2wgaXNHbG9iYWxIaXN0b3J5VGVzdChjb25zdCBTdHJpbmcmIGNUZXN0
UGF0aE9yVVJMKQogewogICAgIHJldHVybiBjVGVzdFBhdGhPclVSTC5jb250YWlucygiL2dsb2Jh
bGhpc3RvcnkvIik7CkBAIC0yNDEsMTMgKzI2OCwxMyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVMYXlv
dXRUZXN0Q29udHJvbGxlcihjb25zdCBTdHJpbmcmIHRlc3RVUkwsIGNvbnN0IFN0cmluZyYgZXhw
ZQogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBjaGFyKiBpbnB1dExpbmUp
CitzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IGNoYXIqIGNUZXN0UGF0aE9yVVJMKQogewotICAg
IFRlc3RDb21tYW5kIGNvbW1hbmQgPSBwYXJzZUlucHV0TGluZShpbnB1dExpbmUpOwotICAgIGNv
bnN0IFN0cmluZyB0ZXN0VVJMKGNvbW1hbmQucGF0aE9yVVJMLmNfc3RyKCkpOwotICAgIEFTU0VS
VCghdGVzdFVSTC5pc0VtcHR5KCkpOwotICAgIGR1bXBQaXhlbHNGb3JDdXJyZW50VGVzdCA9IGNv
bW1hbmQuc2hvdWxkRHVtcFBpeGVsczsKLSAgICBjb25zdCBTdHJpbmcgZXhwZWN0ZWRQaXhlbEhh
c2goY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaC5jX3N0cigpKTsKKyAgICBjb25zdCBTdHJpbmcg
dGVzdFBhdGhPclVSTCA9IFN0cmluZzo6ZnJvbVVURjgoY1Rlc3RQYXRoT3JVUkwpOworICAgIEFT
U0VSVCghdGVzdFBhdGhPclVSTC5pc0VtcHR5KCkpOworCisgICAgY29uc3QgU3RyaW5nIHRlc3RV
UkwgPSBnZXRGaW5hbFRlc3RVUkwodGVzdFBhdGhPclVSTCk7CisgICAgY29uc3QgU3RyaW5nIGV4
cGVjdGVkUGl4ZWxIYXNoID0gZ2V0RXhwZWN0ZWRQaXhlbEhhc2godGVzdFBhdGhPclVSTCk7CiAK
ICAgICBicm93c2VyLT5yZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCk7CiAgICAgY3Jl
YXRlTGF5b3V0VGVzdENvbnRyb2xsZXIodGVzdFVSTCwgZXhwZWN0ZWRQaXhlbEhhc2gpOwpAQCAt
MzI1LDcgKzM1Miw3IEBAIHN0YXRpYyBib29sIHNob3VsZER1bXBGcmFtZVNjcm9sbFBvc2l0aW9u
KCkKIAogc3RhdGljIGJvb2wgc2hvdWxkRHVtcFBpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQo
KQogewotICAgIHJldHVybiBkdW1wUGl4ZWxzRm9yQ3VycmVudFRlc3QgJiYgZ0xheW91dFRlc3RD
b250cm9sbGVyLT5nZW5lcmF0ZVBpeGVsUmVzdWx0cygpICYmICFnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1w
U291cmNlQXNXZWJBcmNoaXZlKCk7CisgICAgcmV0dXJuIGR1bXBQaXhlbHMgJiYgZ0xheW91dFRl
c3RDb250cm9sbGVyLT5nZW5lcmF0ZVBpeGVsUmVzdWx0cygpICYmICFnTGF5b3V0VGVzdENvbnRy
b2xsZXItPmR1bXBET01Bc1dlYkFyY2hpdmUoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT5k
dW1wU291cmNlQXNXZWJBcmNoaXZlKCk7CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZER1bXBCYWNr
Rm9yd2FyZExpc3QoKQpAQCAtNDM0LDcgKzQ2MSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKICAgICAgICAgcHJpbnRTZXBhcmF0b3JzID0gdHJ1ZTsKICAgICAgICAgcnVuVGVz
dGluZ1NlcnZlckxvb3AoKTsKICAgICB9IGVsc2UgewotICAgICAgICBwcmludFNlcGFyYXRvcnMg
PSAob3B0aW5kIDwgYXJnYyAtIDEgfHwgKGR1bXBQaXhlbHNGb3JDdXJyZW50VGVzdCAmJiBkdW1w
VHJlZSkpOworICAgICAgICBwcmludFNlcGFyYXRvcnMgPSAob3B0aW5kIDwgYXJnYyAtIDEgfHwg
KGR1bXBQaXhlbHMgJiYgZHVtcFRyZWUpKTsKICAgICAgICAgZm9yIChpbnQgaSA9IG9wdGluZDsg
aSAhPSBhcmdjOyArK2kpCiAgICAgICAgICAgICBydW5UZXN0KGFyZ3ZbaV0pOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGViZGE1Y2Zi
MjMxODlmYzJhNzk1YzRjOTgwNWUwYmNiZWFmNWNmODcuLjU3Y2QwNTkxN2U4MjI1NThiNDgzNzZl
MDEwMmQ4MDBhNmJjZmNjZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9E
dW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5k
ZXJUcmVlLmNwcApAQCAtNzMsNyArNzMsNyBAQCBleHRlcm4gZ2NoYXIqIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X3Jlc3BvbnNlX21pbWVfdHlwZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpOwogCiB2b2xh
dGlsZSBib29sIGRvbmU7CiBzdGF0aWMgYm9vbCBwcmludFNlcGFyYXRvcnM7Ci1zdGF0aWMgYm9v
bCBkdW1wUGl4ZWxzRm9yQ3VycmVudFRlc3Q7CitzdGF0aWMgaW50IGR1bXBQaXhlbHM7CiBzdGF0
aWMgaW50IGR1bXBUcmVlID0gMTsKIHN0YXRpYyBpbnQgdXNlVGltZW91dFdhdGNoZG9nID0gMTsK
IApAQCAtNTQ0LDYgKzU0NCw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVHbG9iYWxzRnJvbUNv
bW1hbmRMaW5lT3B0aW9ucyhpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogICAgIHN0cnVjdCBv
cHRpb24gb3B0aW9uc1tdID0gewogICAgICAgICB7Im5vdHJlZSIsIG5vX2FyZ3VtZW50LCAmZHVt
cFRyZWUsIGZhbHNlfSwKKyAgICAgICAgeyJwaXhlbC10ZXN0cyIsIG5vX2FyZ3VtZW50LCAmZHVt
cFBpeGVscywgdHJ1ZX0sCiAgICAgICAgIHsidHJlZSIsIG5vX2FyZ3VtZW50LCAmZHVtcFRyZWUs
IHRydWV9LAogICAgICAgICB7Im5vLXRpbWVvdXQiLCBub19hcmd1bWVudCwgJnVzZVRpbWVvdXRX
YXRjaGRvZywgZmFsc2V9LAogICAgICAgICB7TlVMTCwgMCwgTlVMTCwgMH0KQEAgLTYyMyw3ICs2
MjQsNyBAQCB2b2lkIGR1bXAoKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGR1bXBQaXhl
bHNGb3JDdXJyZW50VGVzdAorICAgIGlmIChkdW1wUGl4ZWxzCiAgICAgICYmIGdMYXlvdXRUZXN0
Q29udHJvbGxlci0+Z2VuZXJhdGVQaXhlbFJlc3VsdHMoKQogICAgICAmJiAhZ0xheW91dFRlc3RD
b250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkKICAgICAgJiYgIWdMYXlvdXRUZXN0Q29u
dHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKSB7CkBAIC02ODYsMTMgKzY4NywxOCBA
QCBzdGF0aWMgdm9pZCBzZW5kUGl4ZWxSZXN1bHRzRU9GKCkKICAgICBmZmx1c2goc3RkZXJyKTsK
IH0KIAotc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKK3N0YXRp
YyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiB0ZXN0UGF0aE9yVVJMKQogewogICAgIEFTU0VS
VCghdGVzdFBhdGhPclVSTC5lbXB0eSgpKTsKIAotICAgIFRlc3RDb21tYW5kIGNvbW1hbmQgPSBw
YXJzZUlucHV0TGluZShpbnB1dExpbmUpOwotICAgIHN0cmluZyYgdGVzdFVSTCA9IGNvbW1hbmQu
cGF0aE9yVVJMOwotICAgIGR1bXBQaXhlbHNGb3JDdXJyZW50VGVzdCA9IGNvbW1hbmQuc2hvdWxk
RHVtcFBpeGVsczsKKyAgICAvLyBMb29rIGZvciAiJyIgYXMgYSBzZXBhcmF0b3IgYmV0d2VlbiB0
aGUgcGF0aCBvciBVUkwsIGFuZCB0aGUgcGl4ZWwgZHVtcCBoYXNoIHRoYXQgZm9sbG93cy4KKyAg
ICBzdHJpbmcgdGVzdFVSTCh0ZXN0UGF0aE9yVVJMKTsKKyAgICBzdHJpbmcgZXhwZWN0ZWRQaXhl
bEhhc2g7CisgICAgc2l6ZV90IHNlcGFyYXRvclBvcyA9IHRlc3RVUkwuZmluZCgiJyIpOworICAg
IGlmIChzZXBhcmF0b3JQb3MgIT0gc3RyaW5nOjpucG9zKSB7CisgICAgICAgIHRlc3RVUkwgPSBz
dHJpbmcodGVzdFBhdGhPclVSTCwgMCwgc2VwYXJhdG9yUG9zKTsKKyAgICAgICAgZXhwZWN0ZWRQ
aXhlbEhhc2ggPSBzdHJpbmcodGVzdFBhdGhPclVSTCwgc2VwYXJhdG9yUG9zICsgMSk7CisgICAg
fQogCiAgICAgLy8gQ29udmVydCB0aGUgcGF0aCBpbnRvIGEgZnVsbCBmaWxlIFVSTCBpZiBpdCBk
b2VzIG5vdCBsb29rCiAgICAgLy8gbGlrZSBhbiBIVFRQL1MgVVJMIChkb2Vzbid0IHN0YXJ0IHdp
dGggaHR0cDovLyBvciBodHRwczovLykuCkBAIC03MDYsNyArNzEyLDcgQEAgc3RhdGljIHZvaWQg
cnVuVGVzdChjb25zdCBzdHJpbmcmIGlucHV0TGluZSkKIAogICAgIHJlc2V0RGVmYXVsdHNUb0Nv
bnNpc3RlbnRWYWx1ZXMoKTsKIAotICAgIGdMYXlvdXRUZXN0Q29udHJvbGxlciA9IExheW91dFRl
c3RDb250cm9sbGVyOjpjcmVhdGUodGVzdFVSTCwgY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaCk7
CisgICAgZ0xheW91dFRlc3RDb250cm9sbGVyID0gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNyZWF0
ZSh0ZXN0VVJMLCBleHBlY3RlZFBpeGVsSGFzaCk7CiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsK
ICAgICBkb25lID0gZmFsc2U7CiAKQEAgLTE0NDEsNyArMTQ0Nyw3IEBAIGludCBtYWluKGludCBh
cmdjLCBjaGFyKiBhcmd2W10pCiAgICAgICAgIHByaW50U2VwYXJhdG9ycyA9IHRydWU7CiAgICAg
ICAgIHJ1blRlc3RpbmdTZXJ2ZXJMb29wKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHJpbnRT
ZXBhcmF0b3JzID0gKG9wdGluZCA8IGFyZ2MtMSB8fCAoZHVtcFBpeGVsc0ZvckN1cnJlbnRUZXN0
ICYmIGR1bXBUcmVlKSk7CisgICAgICAgIHByaW50U2VwYXJhdG9ycyA9IChvcHRpbmQgPCBhcmdj
LTEgfHwgKGR1bXBQaXhlbHMgJiYgZHVtcFRyZWUpKTsKICAgICAgICAgZm9yIChpbnQgaSA9IG9w
dGluZDsgaSAhPSBhcmdjOyArK2kpCiAgICAgICAgICAgICBydW5UZXN0KGFyZ3ZbaV0pOwogICAg
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCAzZjlk
NDI2NjQ1MWZhY2JlMTE1MDk2MjAzNTU5NzkwMzJiZWJlNmZiLi5hYmJhNTM1ZWRkYzg4YTM5NDkw
Mjk0ZmQ0NTFhMzkxOTY4ZmNjM2QxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCkBAIC0xNDAsNyArMTQwLDcgQEAgc3RhdGljIEhpc3RvcnlEZWxlZ2F0ZSAq
aGlzdG9yeURlbGVnYXRlOwogUG9saWN5RGVsZWdhdGUgKnBvbGljeURlbGVnYXRlOwogU3RvcmFn
ZVRyYWNrZXJEZWxlZ2F0ZSAqc3RvcmFnZURlbGVnYXRlOwogCi1zdGF0aWMgYm9vbCBkdW1wUGl4
ZWxzRm9yQ3VycmVudFRlc3Q7CitzdGF0aWMgaW50IGR1bXBQaXhlbHM7CiBzdGF0aWMgaW50IHRo
cmVhZGVkOwogc3RhdGljIGludCBkdW1wVHJlZSA9IFlFUzsKIHN0YXRpYyBpbnQgdXNlVGltZW91
dFdhdGNoZG9nID0gWUVTOwpAQCAtNzgwLDYgKzc4MCw3IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxp
emVHbG9iYWxzRnJvbUNvbW1hbmRMaW5lT3B0aW9ucyhpbnQgYXJnYywgY29uc3QgY2hhciAqYXJn
dltdCiB7CiAgICAgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CiAgICAgICAgIHsibm90cmVl
Iiwgbm9fYXJndW1lbnQsICZkdW1wVHJlZSwgTk99LAorICAgICAgICB7InBpeGVsLXRlc3RzIiwg
bm9fYXJndW1lbnQsICZkdW1wUGl4ZWxzLCBZRVN9LAogICAgICAgICB7InRyZWUiLCBub19hcmd1
bWVudCwgJmR1bXBUcmVlLCBZRVN9LAogICAgICAgICB7InRocmVhZGVkIiwgbm9fYXJndW1lbnQs
ICZ0aHJlYWRlZCwgWUVTfSwKICAgICAgICAgeyJjb21wbGV4LXRleHQiLCBub19hcmd1bWVudCwg
JmZvcmNlQ29tcGxleFRleHQsIFlFU30sCkBAIC04NDgsNyArODQ5LDcgQEAgdm9pZCBkdW1wUmVu
ZGVyVHJlZShpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQogICAgIGluaXRpYWxpemVHbG9i
YWxzRnJvbUNvbW1hbmRMaW5lT3B0aW9ucyhhcmdjLCBhcmd2KTsKICAgICBwcmVwYXJlQ29uc2lz
dGVudFRlc3RpbmdFbnZpcm9ubWVudCgpOwogICAgIGFkZFRlc3RQbHVnaW5zVG9QbHVnaW5TZWFy
Y2hQYXRoKGFyZ3ZbMF0pOwotICAgIGlmIChkdW1wUGl4ZWxzRm9yQ3VycmVudFRlc3QpCisgICAg
aWYgKGR1bXBQaXhlbHMpCiAgICAgICAgIGluc3RhbGxTaWduYWxIYW5kbGVycygpOwogCiAgICAg
aWYgKGZvcmNlQ29tcGxleFRleHQpCkBAIC04NzMsNyArODc0LDcgQEAgdm9pZCBkdW1wUmVuZGVy
VHJlZShpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQogICAgICAgICBwcmludFNlcGFyYXRv
cnMgPSBZRVM7CiAgICAgICAgIHJ1blRlc3RpbmdTZXJ2ZXJMb29wKCk7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgcHJpbnRTZXBhcmF0b3JzID0gKG9wdGluZCA8IGFyZ2MgLSAxIHx8IChkdW1wUGl4
ZWxzRm9yQ3VycmVudFRlc3QgJiYgZHVtcFRyZWUpKTsKKyAgICAgICAgcHJpbnRTZXBhcmF0b3Jz
ID0gKG9wdGluZCA8IGFyZ2MtMSB8fCAoZHVtcFBpeGVscyAmJiBkdW1wVHJlZSkpOwogICAgICAg
ICBmb3IgKGludCBpID0gb3B0aW5kOyBpICE9IGFyZ2M7ICsraSkKICAgICAgICAgICAgIHJ1blRl
c3QoYXJndltpXSk7CiAgICAgfQpAQCAtMTE5NCw3ICsxMTk1LDcgQEAgdm9pZCBkdW1wKCkKICAg
ICAgICAgfSAgICAgICAgICAgIAogICAgIH0KIAotICAgIGlmIChkdW1wUGl4ZWxzRm9yQ3VycmVu
dFRlc3QgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5nZW5lcmF0ZVBpeGVsUmVzdWx0cygpKQor
ICAgIGlmIChkdW1wUGl4ZWxzICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+Z2VuZXJhdGVQaXhl
bFJlc3VsdHMoKSkKICAgICAgICAgLy8gRklYTUU6IHdoZW4gaXNQcmludGluZyBpcyBzZXQsIGR1
bXAgdGhlIGltYWdlIHdpdGggcGFnZSBzZXBhcmF0b3JzLgogICAgICAgICBkdW1wV2ViVmlld0Fz
UGl4ZWxzQW5kQ29tcGFyZVdpdGhFeHBlY3RlZChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmV4cGVj
dGVkUGl4ZWxIYXNoKCkpOwogCkBAIC0xMjc1LDEzICsxMjc2LDE5IEBAIHN0YXRpYyB2b2lkIHJl
c2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgW21haW5GcmFt
ZSBfY2xlYXJPcGVuZXJdOwogfQogCi1zdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYg
aW5wdXRMaW5lKQorc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIHRlc3RQYXRoT3JV
UkwpCiB7Ci0gICAgQVNTRVJUKCFpbnB1dExpbmUuZW1wdHkoKSk7Ci0KLSAgICBUZXN0Q29tbWFu
ZCBjb21tYW5kID0gcGFyc2VJbnB1dExpbmUoaW5wdXRMaW5lKTsKLSAgICBjb25zdCBzdHJpbmcm
IHBhdGhPclVSTCA9IGNvbW1hbmQucGF0aE9yVVJMOwotICAgIGR1bXBQaXhlbHNGb3JDdXJyZW50
VGVzdCA9IGNvbW1hbmQuc2hvdWxkRHVtcFBpeGVsczsKKyAgICBBU1NFUlQoIXRlc3RQYXRoT3JV
UkwuZW1wdHkoKSk7CisgICAgCisgICAgLy8gTG9vayBmb3IgIiciIGFzIGEgc2VwYXJhdG9yIGJl
dHdlZW4gdGhlIHBhdGggb3IgVVJMLCBhbmQgdGhlIHBpeGVsIGR1bXAgaGFzaCB0aGF0IGZvbGxv
d3MuCisgICAgc3RyaW5nIHBhdGhPclVSTCh0ZXN0UGF0aE9yVVJMKTsKKyAgICBzdHJpbmcgZXhw
ZWN0ZWRQaXhlbEhhc2g7CisgICAgCisgICAgc2l6ZV90IHNlcGFyYXRvclBvcyA9IHBhdGhPclVS
TC5maW5kKCInIik7CisgICAgaWYgKHNlcGFyYXRvclBvcyAhPSBzdHJpbmc6Om5wb3MpIHsKKyAg
ICAgICAgcGF0aE9yVVJMID0gc3RyaW5nKHRlc3RQYXRoT3JVUkwsIDAsIHNlcGFyYXRvclBvcyk7
CisgICAgICAgIGV4cGVjdGVkUGl4ZWxIYXNoID0gc3RyaW5nKHRlc3RQYXRoT3JVUkwsIHNlcGFy
YXRvclBvcyArIDEpOworICAgIH0KIAogICAgIE5TU3RyaW5nICpwYXRoT3JVUkxTdHJpbmcgPSBb
TlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6cGF0aE9yVVJMLmNfc3RyKCldOwogICAgIGlm
ICghcGF0aE9yVVJMU3RyaW5nKSB7CkBAIC0xMzAzLDcgKzEzMTAsNyBAQCBzdGF0aWMgdm9pZCBy
dW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIAogICAgIHJlc2V0V2ViVmlld1Rv
Q29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpOwogCi0gICAgZ0xheW91dFRlc3RDb250cm9s
bGVyID0gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNyZWF0ZSh0ZXN0VVJMLCBjb21tYW5kLmV4cGVj
dGVkUGl4ZWxIYXNoKTsKKyAgICBnTGF5b3V0VGVzdENvbnRyb2xsZXIgPSBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6Y3JlYXRlKHRlc3RVUkwsIGV4cGVjdGVkUGl4ZWxIYXNoKTsKICAgICB0b3BMb2Fk
aW5nRnJhbWUgPSBuaWw7CiAgICAgQVNTRVJUKCFkcmFnZ2luZ0luZm8pOyAvLyB0aGUgcHJldmlv
dXMgdGVzdCBzaG91bGQgaGF2ZSBjYWxsZWQgZXZlbnRTZW5kZXIubW91c2VVcCB0byBkcm9wIQog
ICAgIHJlbGVhc2VBbmRaZXJvKCZkcmFnZ2luZ0luZm8pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWUucHJvIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvRHVtcFJlbmRlclRyZWUucHJvCmluZGV4IDgzMzg3MGJjYWM5YTgyZWRjZWU4MWVkNWRiYTMx
OTEwYWNmMGYwZjIuLmY0N2ZiNDM0NGI5ZWY4M2E1YWE0NmJiNTY4M2Q5MjMxNDk0YWExMjUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybworKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8KQEAgLTI1LDcgKzI1
LDYgQEAgY29udGFpbnMoREVGSU5FUywgSEFWRV9GT05UQ09ORklHPTEpOiBQS0dDT05GSUcgKz0g
Zm9udGNvbmZpZwogCiBIRUFERVJTICs9IFwKICAgICAkJFBXRC8uLi9Xb3JrUXVldWUuaCBcCi0g
ICAgJCRQV0QvLi4vRHVtcFJlbmRlclRyZWUuaCBcCiAgICAgRHVtcFJlbmRlclRyZWVRdC5oIFwK
ICAgICBFdmVudFNlbmRlclF0LmggXAogICAgIFRleHRJbnB1dENvbnRyb2xsZXJRdC5oIFwKQEAg
LTM3LDcgKzM2LDYgQEAgSEVBREVSUyArPSBcCiAKIFNPVVJDRVMgKz0gXAogICAgICQkUFdELy4u
L1dvcmtRdWV1ZS5jcHAgXAotICAgICQkUFdELy4uL0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCBc
CiAgICAgRHVtcFJlbmRlclRyZWVRdC5jcHAgXAogICAgIEV2ZW50U2VuZGVyUXQuY3BwIFwKICAg
ICBUZXh0SW5wdXRDb250cm9sbGVyUXQuY3BwIFwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
RHVtcFJlbmRlclRyZWVRdC5jcHAKaW5kZXggMjg3MDFjYTc5ZTE3M2FhMTcyMGJkMzkwYjA4Zjkz
MGIyNjFlYWExYS4uMGVjZjYyMmYzZjhkZGE1NmM0Yzg4Y2VmY2YwOGEzYzk4Y2YyMzdjNCAxMDA3
NTUKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTMwLDcg
KzMwLDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRHVtcFJlbmRl
clRyZWUuaCIKIAogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlUXQuaCIKICNpbmNsdWRlICJEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oIgpAQCAtNzYsOCArNzUsNiBAQAogCiAjaW5jbHVkZSA8cWRl
YnVnLmg+CiAKLSNpbmNsdWRlIDxpb3N0cmVhbT4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
b25zdCBpbnQgZGF0YWJhc2VEZWZhdWx0UXVvdGEgPSA1ICogMTAyNCAqIDEwMjQ7CkBAIC02OTMs
MjcgKzY5MCw0NCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpsb2FkTmV4dFRlc3RJblN0YW5kQWxv
bmVNb2RlKCkKIAogdm9pZCBEdW1wUmVuZGVyVHJlZTo6cHJvY2Vzc0xpbmUoY29uc3QgUVN0cmlu
ZyAmaW5wdXQpCiB7Ci0gICAgVGVzdENvbW1hbmQgY29tbWFuZCA9IHBhcnNlSW5wdXRMaW5lKHN0
ZDo6c3RyaW5nKGlucHV0LnRvTGF0aW4xKCkuY29uc3REYXRhKCkpKTsKLSAgICBRU3RyaW5nIHBh
dGhPclVSTCA9IFFMYXRpbjFTdHJpbmcoY29tbWFuZC5wYXRoT3JVUkwuY19zdHIoKSk7Ci0gICAg
bV9kdW1wUGl4ZWxzRm9yQ3VycmVudFRlc3QgPSBjb21tYW5kLnNob3VsZER1bXBQaXhlbHM7Ci0g
ICAgbV9leHBlY3RlZEhhc2ggPSBRTGF0aW4xU3RyaW5nKGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhh
c2guY19zdHIoKSk7Ci0KLSAgICBpZiAocGF0aE9yVVJMLnN0YXJ0c1dpdGgoUUxhdGluMVN0cmlu
ZygiaHR0cDoiKSkKLSAgICAgICAgICAgIHx8IHBhdGhPclVSTC5zdGFydHNXaXRoKFFMYXRpbjFT
dHJpbmcoImh0dHBzOiIpKQotICAgICAgICAgICAgfHwgcGF0aE9yVVJMLnN0YXJ0c1dpdGgoUUxh
dGluMVN0cmluZygiZmlsZToiKSkKLSAgICAgICAgICAgIHx8IHBhdGhPclVSTCA9PSBRTGF0aW4x
U3RyaW5nKCJhYm91dDpibGFuayIpKSB7Ci0gICAgICAgIG9wZW4oUVVybChwYXRoT3JVUkwpKTsK
KyAgICBRU3RyaW5nIGxpbmUgPSBpbnB1dDsKKworICAgIG1fZHVtcFBpeGVsc0ZvckN1cnJlbnRU
ZXN0ID0gZmFsc2U7CisgICAgbV9leHBlY3RlZEhhc2ggPSBRU3RyaW5nKCk7CisgICAgLy8gc2lu
Z2xlIHF1b3RlIG1hcmtzIHRoZSBwaXhlbCBkdW1wIGhhc2gKKyAgICBpbnQgaW5kZXhPZkZpcnN0
U2VwYXJhdG9yID0gbGluZS5pbmRleE9mKCdcJycpOworICAgIGludCBpbmRleE9mU2Vjb25kU2Vw
YXJhdG9yID0gbGluZS5pbmRleE9mKCdcJycsIGluZGV4T2ZGaXJzdFNlcGFyYXRvciArIDEpOwor
ICAgIGlmIChpbmRleE9mRmlyc3RTZXBhcmF0b3IgPiAtMSkgeworICAgICAgICBpbnQgaW5kZXhP
ZlBpeGVsSGFzaCA9IGluZGV4T2ZGaXJzdFNlcGFyYXRvciArIDE7CisKKyAgICAgICAgLy8gTlJX
VCBwYXNzZXMgLS1waXhlbC10ZXN0IGlmIHdlIHNob3VsZCBkdW1wIHBpeGVscyBmb3IgdGhlIHRl
c3QuCisgICAgICAgIGNvbnN0IFFTdHJpbmcgZXhwZWN0ZWRBcmcoUUxhdGluMVN0cmluZygiLS1w
aXhlbC10ZXN0IikpOworICAgICAgICBRU3RyaW5nIGFyZ1Rlc3QgPSBsaW5lLm1pZChpbmRleE9m
Rmlyc3RTZXBhcmF0b3IgKyAxLCBleHBlY3RlZEFyZy5sZW5ndGgoKSk7CisgICAgICAgIGlmIChh
cmdUZXN0ID09IGV4cGVjdGVkQXJnKSB7CisgICAgICAgICAgICBtX2R1bXBQaXhlbHNGb3JDdXJy
ZW50VGVzdCA9IHRydWU7CisgICAgICAgICAgICBpbmRleE9mUGl4ZWxIYXNoID0gaW5kZXhPZlNl
Y29uZFNlcGFyYXRvciA9PSAtMSA/IC0xIDogaW5kZXhPZlNlY29uZFNlcGFyYXRvciArIDE7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4T2ZQaXhlbEhhc2ggIT0gLTEgJiYgaW5kZXhPZlBp
eGVsSGFzaCA8IGxpbmUuc2l6ZSgpKQorICAgICAgICAgICAgbV9leHBlY3RlZEhhc2ggPSBsaW5l
Lm1pZChpbmRleE9mUGl4ZWxIYXNoKTsKKyAgICAgICAgbGluZS5yZW1vdmUoaW5kZXhPZkZpcnN0
U2VwYXJhdG9yLCBsaW5lLmxlbmd0aCgpKTsKKyAgICB9CisKKyAgICBpZiAobGluZS5zdGFydHNX
aXRoKFFMYXRpbjFTdHJpbmcoImh0dHA6IikpCisgICAgICAgICAgICB8fCBsaW5lLnN0YXJ0c1dp
dGgoUUxhdGluMVN0cmluZygiaHR0cHM6IikpCisgICAgICAgICAgICB8fCBsaW5lLnN0YXJ0c1dp
dGgoUUxhdGluMVN0cmluZygiZmlsZToiKSkKKyAgICAgICAgICAgIHx8IGxpbmUgPT0gUUxhdGlu
MVN0cmluZygiYWJvdXQ6YmxhbmsiKSkgeworICAgICAgICBvcGVuKFFVcmwobGluZSkpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIFFGaWxlSW5mbyBmaShwYXRoT3JVUkwpOworICAgICAgICBRRmls
ZUluZm8gZmkobGluZSk7CiAKICAgICAgICAgaWYgKCFmaS5leGlzdHMoKSkgewogICAgICAgICAg
ICAgUURpciBjdXJyZW50RGlyID0gUURpcjo6Y3VycmVudFBhdGgoKTsKIAogICAgICAgICAgICAg
Ly8gVHJ5IHRvIGJlIHNtYXJ0IGFib3V0IHdoZXJlIHRoZSB0ZXN0IGlzIGxvY2F0ZWQKICAgICAg
ICAgICAgIGlmIChjdXJyZW50RGlyLmRpck5hbWUoKSA9PSBRTGF0aW4xU3RyaW5nKCJMYXlvdXRU
ZXN0cyIpKQotICAgICAgICAgICAgICAgIGZpID0gUUZpbGVJbmZvKGN1cnJlbnREaXIsIHBhdGhP
clVSTC5yZXBsYWNlKFFSZWdFeHAoIi4qP0xheW91dFRlc3RzLyguKikiKSwgIlxcMSIpKTsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKCFwYXRoT3JVUkwuY29udGFpbnMoUUxhdGluMVN0cmluZygiTGF5
b3V0VGVzdHMiKSkpCi0gICAgICAgICAgICAgICAgZmkgPSBRRmlsZUluZm8oY3VycmVudERpciwg
cGF0aE9yVVJMLnByZXBlbmQoUUxhdGluMVN0cmluZygiTGF5b3V0VGVzdHMvIikpKTsKKyAgICAg
ICAgICAgICAgICBmaSA9IFFGaWxlSW5mbyhjdXJyZW50RGlyLCBsaW5lLnJlcGxhY2UoUVJlZ0V4
cCgiLio/TGF5b3V0VGVzdHMvKC4qKSIpLCAiXFwxIikpOworICAgICAgICAgICAgZWxzZSBpZiAo
IWxpbmUuY29udGFpbnMoUUxhdGluMVN0cmluZygiTGF5b3V0VGVzdHMiKSkpCisgICAgICAgICAg
ICAgICAgZmkgPSBRRmlsZUluZm8oY3VycmVudERpciwgbGluZS5wcmVwZW5kKFFMYXRpbjFTdHJp
bmcoIkxheW91dFRlc3RzLyIpKSk7CiAKICAgICAgICAgICAgIGlmICghZmkuZXhpc3RzKCkpIHsK
ICAgICAgICAgICAgICAgICBlbWl0IHJlYWR5KCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCAzMTI0MzBkNTY5ODk1NDhiYzNlY2FkMTNmOGRmMTgz
MDk2YzE3Yzg1Li5mNDAyYTAyY2EzNjJjNTI3OWRlNWE1YzhjMWUwY2U5ZGYzNjJhYmFkIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTgwLDcgKzgw
LDcgQEAgc3RhdGljIExQQ1dTVFIgZm9udHNFbnZpcm9ubWVudFZhcmlhYmxlID0gTCJXRUJLSVRf
VEVTVEZPTlRTIjsKIGNvbnN0IExQQ1dTVFIga0R1bXBSZW5kZXJUcmVlQ2xhc3NOYW1lID0gTCJE
dW1wUmVuZGVyVHJlZVdpbmRvdyI7CiAKIHN0YXRpYyBib29sIGR1bXBUcmVlID0gdHJ1ZTsKLXN0
YXRpYyBib29sIGR1bXBQaXhlbHNGb3JDdXJyZW50VGVzdDsKK3N0YXRpYyBib29sIGR1bXBQaXhl
bHM7CiBzdGF0aWMgYm9vbCBkdW1wQWxsUGl4ZWxzOwogc3RhdGljIGJvb2wgcHJpbnRTZXBhcmF0
b3JzOwogc3RhdGljIGJvb2wgbGVha0NoZWNraW5nID0gZmFsc2U7CkBAIC03NTksNyArNzU5LDcg
QEAgdm9pZCBkdW1wKCkKICAgICAgICAgZmZsdXNoKHN0ZGVycik7CiAgICAgfQogCi0gICAgaWYg
KGR1bXBQaXhlbHNGb3JDdXJyZW50VGVzdAorICAgIGlmIChkdW1wUGl4ZWxzCiAgICAgICYmIGdM
YXlvdXRUZXN0Q29udHJvbGxlci0+Z2VuZXJhdGVQaXhlbFJlc3VsdHMoKQogICAgICAmJiAhZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5kdW1wRE9NQXNXZWJBcmNoaXZlKCkKICAgICAgJiYgIWdMYXlv
dXRUZXN0Q29udHJvbGxlci0+ZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSgpKQpAQCAtOTQ4LDE0ICs5
NDgsMjAgQEAgc3RhdGljIHZvaWQgc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCgpCiAgICAgOjpT
ZXRXaW5kb3dQb3Mod2ViVmlld1dpbmRvdywgMCwgMCwgMCwgd2lkdGgsIGhlaWdodCwgU1dQX05P
TU9WRSk7CiB9CiAKLXN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUp
CitzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgdGVzdFBhdGhPclVSTCkKIHsKLSAg
ICBUZXN0Q29tbWFuZCBjb21tYW5kID0gcGFyc2VJbnB1dExpbmUoaW5wdXRMaW5lKTsKLSAgICBj
b25zdCBzdHJpbmcmIHBhdGhPclVSTCA9IGNvbW1hbmQucGF0aE9yVVJMOwotICAgIGR1bXBQaXhl
bHNGb3JDdXJyZW50VGVzdCA9IGNvbW1hbmQuc2hvdWxkRHVtcFBpeGVsczsKLQogICAgIHN0YXRp
YyBCU1RSIG1ldGhvZEJTdHIgPSBTeXNBbGxvY1N0cmluZyhURVhUKCJHRVQiKSk7CiAKKyAgICAv
LyBMb29rIGZvciAiJyIgYXMgYSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgcGF0aCBvciBVUkwsIGFu
ZCB0aGUgcGl4ZWwgZHVtcCBoYXNoIHRoYXQgZm9sbG93cy4KKyAgICBzdHJpbmcgcGF0aE9yVVJM
KHRlc3RQYXRoT3JVUkwpOworICAgIHN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKKyAgICAKKyAg
ICBzaXplX3Qgc2VwYXJhdG9yUG9zID0gcGF0aE9yVVJMLmZpbmQoIiciKTsKKyAgICBpZiAoc2Vw
YXJhdG9yUG9zICE9IHN0cmluZzo6bnBvcykgeworICAgICAgICBwYXRoT3JVUkwgPSBzdHJpbmco
dGVzdFBhdGhPclVSTCwgMCwgc2VwYXJhdG9yUG9zKTsKKyAgICAgICAgZXhwZWN0ZWRQaXhlbEhh
c2ggPSBzdHJpbmcodGVzdFBhdGhPclVSTCwgc2VwYXJhdG9yUG9zICsgMSk7CisgICAgfQorICAg
IAogICAgIEJTVFIgdXJsQlN0cjsKICAKICAgICBDRlN0cmluZ1JlZiBzdHIgPSBDRlN0cmluZ0Ny
ZWF0ZVdpdGhDU3RyaW5nKDAsIHBhdGhPclVSTC5jX3N0cigpLCBrQ0ZTdHJpbmdFbmNvZGluZ1dp
bmRvd3NMYXRpbjEpOwpAQCAtOTc3LDcgKzk4Myw3IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29u
c3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAKICAgICBDRlJlbGVhc2UodXJsKTsKIAotICAgIDo6Z0xh
eW91dFRlc3RDb250cm9sbGVyID0gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNyZWF0ZShwYXRoT3JV
UkwsIGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOworICAgIDo6Z0xheW91dFRlc3RDb250cm9s
bGVyID0gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNyZWF0ZShwYXRoT3JVUkwsIGV4cGVjdGVkUGl4
ZWxIYXNoKTsKICAgICBkb25lID0gZmFsc2U7CiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsKIApA
QCAtMTMzMSw2ICsxMzM3LDExIEBAIGV4dGVybiAiQyIgX19kZWNsc3BlYyhkbGxleHBvcnQpIGlu
dCBXSU5BUEkgZGxsTGF1bmNoZXJFbnRyeVBvaW50KGludCBhcmdjLCBjb25zCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgfQogCisgICAgICAgIGlmICghc3RyaWNtcChhcmd2W2ldLCAi
LS1waXhlbC10ZXN0cyIpKSB7CisgICAgICAgICAgICBkdW1wUGl4ZWxzID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKICAgICAgICAgaWYgKCFzdHJpY21wKGFyZ3Zb
aV0sICItLWNvbXBsZXgtdGV4dCIpKSB7CiAgICAgICAgICAgICBmb3JjZUNvbXBsZXhUZXh0ID0g
dHJ1ZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLnZjcHJvaiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS52Y3Byb2oKaW5kZXggN2UyNDJhMWNkZTRhMmZjY2MxYTI0NzFiNjE2
OWIzZTMzZWFkY2RjZC4uNDg0M2MzOTBlN2M2YjUyZTI0ZTJiMzc3MDY1NDc4ZDA3NmMwOTdmYSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLnZjcHJv
agorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUudmNwcm9qCkBA
IC01NjMsMTAgKzU2Myw2IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKLQkJCVJlbGF0aXZl
UGF0aD0iLi5cRHVtcFJlbmRlclRyZWVDb21tb24uY3BwIgotCQkJPgotCQk8L0ZpbGU+Ci0JCTxG
aWxlCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXER1bXBSZW5kZXJUcmVlUHJlZml4LmgiCiAJCQk+CiAJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dzY3JpcHQgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93c2NyaXB0CmluZGV4IGIzMjkyOTQ1MGIyOGFhODg5MmMzM2UzYmUw
ZDk2ZjBlNmUxMTM0MTguLjY0NWM3ZDY0MTU5OGFmZTJmMTRlMTYzYWQ0Y2NlZjI3YzUyOGI3NjQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dzY3JpcHQKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd3NjcmlwdApAQCAtNDAsNyArNDAsNiBAQCBpbmNsdWRlX3BhdGhzID0gWwog
ICAgICAgICAgICAgICAgICd3eCcKICAgICAgICAgICAgICAgICBdCiBzb3VyY2VzID0gWwotICAg
ICAgICAgICAgJ0R1bXBSZW5kZXJUcmVlQ29tbW9uLmNwcCcsCiAgICAgICAgICAgICAnTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdXb3JrUXVldWUuY3BwJywKICAgICAg
ICAgICAgICd3eC9EdW1wUmVuZGVyVHJlZVd4LmNwcCcsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93eC9EdW1wUmVuZGVyVHJlZVd4LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwCmluZGV4IDQ1Yjg1MmQ4OGFiOWJkYTI5MWZiMWVkMjc3
YWNhNzUxZGZkMzUwOTcuLjMxYWRkMTFhMmViNzRkMWY0ZDgzMjk0NzlmNDE5ZjEwN2ZmYmE4OGYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0R1bXBSZW5kZXJUcmVlV3guY3BwCkBAIC01
MCw3ICs1MCw3IEBACiB2b2xhdGlsZSBib29sIGRvbmUgPSB0cnVlOwogdm9sYXRpbGUgYm9vbCBu
b3RpZmllZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgcHJpbnRTZXBhcmF0b3JzID0gdHJ1ZTsKLXN0
YXRpYyBpbnQgZHVtcFBpeGVsc0ZvckN1cnJlbnRUZXN0Oworc3RhdGljIGludCBkdW1wUGl4ZWxz
Owogc3RhdGljIGludCBkdW1wVHJlZSA9IDE7CiB0aW1lX3Qgc3RhcnRUaW1lOyAvLyB0byBkZXRl
Y3QgdGltZW91dHMgLyBmYWlsZWQgdGVzdHMKIApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgZHVt
cCgpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoZHVtcFBpeGVsc0ZvckN1cnJlbnRUZXN0
CisgICAgaWYgKGR1bXBQaXhlbHMKICAgICAgICAgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5n
ZW5lcmF0ZVBpeGVsUmVzdWx0cygpCiAgICAgICAgICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXIt
PmR1bXBET01Bc1dlYkFyY2hpdmUoKQogICAgICAgICAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wU291cmNlQXNXZWJBcmNoaXZlKCkpIHsKQEAgLTIxOCwyMSArMjE4LDI2IEBAIHZvaWQg
ZHVtcCgpCiAgICAgZ0xheW91dFRlc3RDb250cm9sbGVyLmNsZWFyKCk7CiB9CiAKLXN0YXRpYyB2
b2lkIHJ1blRlc3QoY29uc3Qgd3hTdHJpbmcgaW5wdXRMaW5lKQorc3RhdGljIHZvaWQgcnVuVGVz
dChjb25zdCB3eFN0cmluZyB0ZXN0UGF0aE9yVVJMKQogewogICAgIGRvbmUgPSBmYWxzZTsKICAg
ICB0aW1lKCZzdGFydFRpbWUpOwotCi0gICAgVGVzdENvbW1hbmQgY29tbWFuZCA9IHBhcnNlSW5w
dXRMaW5lKHN0ZDo6c3RyaW5nKGlucHV0TGluZS5Ub0FzY2lpKCkpKTsKLSAgICBzdHJpbmcmIHBh
dGhPclVSTCA9IGNvbW1hbmQucGF0aE9yVVJMOwotICAgIGR1bXBQaXhlbHNGb3JDdXJyZW50VGVz
dCA9IGNvbW1hbmQuc2hvdWxkRHVtcFBpeGVsczsKKyAgICBzdHJpbmcgcGF0aE9yVVJMU3RyaW5n
KHRlc3RQYXRoT3JVUkwuY2hhcl9zdHIoKSk7CisgICAgc3RyaW5nIHBhdGhPclVSTChwYXRoT3JV
UkxTdHJpbmcpOworICAgIHN0cmluZyBleHBlY3RlZFBpeGVsSGFzaDsKKworICAgIHNpemVfdCBz
ZXBhcmF0b3JQb3MgPSBwYXRoT3JVUkwuZmluZCgiJyIpOworICAgIGlmIChzZXBhcmF0b3JQb3Mg
IT0gc3RyaW5nOjpucG9zKSB7CisgICAgICAgIHBhdGhPclVSTCA9IHN0cmluZyhwYXRoT3JVUkxT
dHJpbmcsIDAsIHNlcGFyYXRvclBvcyk7CisgICAgICAgIGV4cGVjdGVkUGl4ZWxIYXNoID0gc3Ry
aW5nKHBhdGhPclVSTFN0cmluZywgc2VwYXJhdG9yUG9zICsgMSk7CisgICAgfQogICAgIAogICAg
IC8vIENVUkwgaXNuJ3QgaGFwcHkgaWYgd2UgZG9uJ3QgaGF2ZSBhIHByb3RvY29sLgogICAgIHNp
emVfdCBodHRwID0gcGF0aE9yVVJMLmZpbmQoImh0dHA6Ly8iKTsKICAgICBpZiAoaHR0cCA9PSBz
dHJpbmc6Om5wb3MpCiAgICAgICAgIHBhdGhPclVSTC5pbnNlcnQoMCwgImZpbGU6Ly8iKTsKICAg
ICAKLSAgICBnTGF5b3V0VGVzdENvbnRyb2xsZXIgPSBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlKHBhdGhPclVSTCwgY29tbWFuZC5leHBlY3RlZFBpeGVsSGFzaCk7CisgICAgZ0xheW91dFRl
c3RDb250cm9sbGVyID0gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNyZWF0ZShwYXRoT3JVUkwsIGV4
cGVjdGVkUGl4ZWxIYXNoKTsKICAgICBpZiAoIWdMYXlvdXRUZXN0Q29udHJvbGxlcikgewogICAg
ICAgICB3eFRoZUFwcC0+RXhpdE1haW5Mb29wKCk7CiAgICAgfQpAQCAtMjc3LDYgKzI4MiwxMSBA
QCBib29sIE15QXBwOjpPbkluaXQoKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
ICAgICAgICAgCisgICAgICAgIGlmICghb3B0aW9uLkNtcE5vQ2FzZShfVCgiLS1waXhlbC10ZXN0
cyIpKSkgeworICAgICAgICAgICAgZHVtcFBpeGVscyA9IHRydWU7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgaWYgKCFvcHRpb24uQ21wTm9DYXNl
KF9UKCItLXRyZWUiKSkpIHsKICAgICAgICAgICAgIGR1bXBUcmVlID0gdHJ1ZTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwpAQCAtMzEzLDcgKzMyMyw3IEBAIGJvb2wgTXlBcHA6Ok9uSW5pdCgpCiAg
ICAgICAgIH0KICAgICAKICAgICB9IGVsc2UgewotICAgICAgICBwcmludFNlcGFyYXRvcnMgPSAo
b3B0aW5kIDwgYXJnYyAtIDEgfHwgKGR1bXBQaXhlbHNGb3JDdXJyZW50VGVzdCAmJiBkdW1wVHJl
ZSkpOworICAgICAgICBwcmludFNlcGFyYXRvcnMgPSAob3B0aW5kIDwgYXJnYy0xIHx8IChkdW1w
UGl4ZWxzICYmIGR1bXBUcmVlKSk7CiAgICAgICAgIGZvciAoaW50IGkgPSBvcHRpbmQ7IGkgIT0g
YXJnYzsgKytpKSB7CiAgICAgICAgICAgICBydW5UZXN0KHd4VGhlQXBwLT5hcmd2WzFdKTsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvR05VbWFrZWZpbGUuYW0gYi9Ub29scy9HTlVtYWtl
ZmlsZS5hbQppbmRleCBmODVhOWQxMmViNzQ1NDIzMTUyMjUxMTA2MmVlMjdmNWE0MDg5ZDQyLi5k
ZjlhNzFmMThmOTU4MDdlZjRmZDZmN2Q3YzI3ZDMxMWZhMzIxYWMyIDEwMDY0NAotLS0gYS9Ub29s
cy9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9HTlVtYWtlZmlsZS5hbQpAQCAtMTA2LDcgKzEw
Niw2IEBAIGVuZGlmCiAKIFByb2dyYW1zX0R1bXBSZW5kZXJUcmVlX1NPVVJDRVMgPSBcCiAJVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuaCBcCi0JVG9vbHMvRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWVDb21tb24uY3BwIFwKIAlUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1w
UmVuZGVyVHJlZVByZWZpeC5oIFwKIAlUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5jcHAgXAogCVRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmggXApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0
cyBiL1Rvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKaW5kZXggMThhZTA1NmExNTk0
NjZhNTJmMzdlZTI2OTQ2NDVkYjNlODc0NjNlMi4uMDk0NDNjODdjMDJmMWU4Y2Y1YmRlNmQxYjA0
NWM0ZGI5YmFiMDg4MiAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10
ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCkBAIC03NDgsMTYg
Kzc0OCwxMiBAQCBmb3IgbXkgJHRlc3QgKEB0ZXN0cykgewogICAgIHByaW50ICR0ZXN0c19ydW5f
ZmggIiR0ZXN0XG4iOwogCiAgICAgIyBUcnkgdG8gcmVhZCBleHBlY3RlZCBoYXNoIGZpbGUgZm9y
IHBpeGVsIHRlc3RzCi0gICAgbXkgJHN1ZmZpeFBpeGVsVGVzdCA9ICIiOwotICAgIGlmICgkcGl4
ZWxUZXN0cykgewotICAgICAgICAjICcgaXMgdGhlIHNlcGFyYXRvciBiZXR3ZWVuIGFyZ3VtZW50
cy4KLSAgICAgICAgJHN1ZmZpeFBpeGVsVGVzdCA9ICInLS1waXhlbC10ZXN0IjsKLSAgICAgICAg
aWYgKCEkcmVzZXRSZXN1bHRzKSB7Ci0gICAgICAgICAgICBteSAkZXhwZWN0ZWRQaXhlbERpciA9
IGV4cGVjdGVkRGlyZWN0b3J5Rm9yVGVzdCgkYmFzZSwgMCwgInBuZyIpOwotICAgICAgICAgICAg
aWYgKG15ICRleHBlY3RlZEhhc2ggPSByZWFkQ2hlY2tzdW1Gcm9tUG5nKEZpbGU6OlNwZWMtPmNh
dGZpbGUoJGV4cGVjdGVkUGl4ZWxEaXIsICIkYmFzZS0kZXhwZWN0ZWRUYWcucG5nIikpKSB7Ci0g
ICAgICAgICAgICAgICAgIyBGb3JtYXQgZXhwZWN0ZWQgaGFzaCBpbnRvIGEgc3VmZml4IHN0cmlu
ZyB0aGF0IGlzIGFwcGVuZGVkIHRvIHRoZSBwYXRoIC8gVVJMIHBhc3NlZCB0byBEUlQuCi0gICAg
ICAgICAgICAgICAgJHN1ZmZpeFBpeGVsVGVzdCA9ICInLS1waXhlbC10ZXN0JyRleHBlY3RlZEhh
c2giOwotICAgICAgICAgICAgfQorICAgIG15ICRzdWZmaXhFeHBlY3RlZEhhc2ggPSAiIjsKKyAg
ICBpZiAoJHBpeGVsVGVzdHMgJiYgISRyZXNldFJlc3VsdHMpIHsKKyAgICAgICAgbXkgJGV4cGVj
dGVkUGl4ZWxEaXIgPSBleHBlY3RlZERpcmVjdG9yeUZvclRlc3QoJGJhc2UsIDAsICJwbmciKTsK
KyAgICAgICAgaWYgKG15ICRleHBlY3RlZEhhc2ggPSByZWFkQ2hlY2tzdW1Gcm9tUG5nKEZpbGU6
OlNwZWMtPmNhdGZpbGUoJGV4cGVjdGVkUGl4ZWxEaXIsICIkYmFzZS0kZXhwZWN0ZWRUYWcucG5n
IikpKSB7CisgICAgICAgICAgICAjIEZvcm1hdCBleHBlY3RlZCBoYXNoIGludG8gYSBzdWZmaXgg
c3RyaW5nIHRoYXQgaXMgYXBwZW5kZWQgdG8gdGhlIHBhdGggLyBVUkwgcGFzc2VkIHRvIERSVC4K
KyAgICAgICAgICAgICRzdWZmaXhFeHBlY3RlZEhhc2ggPSAiJyRleHBlY3RlZEhhc2giOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC03OTMsMTEgKzc4OSwxMSBAQCBmb3IgbXkgJHRlc3QgKEB0ZXN0
cykgewogICAgICAgICB9IGVsc2lmICgkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9sb2NhbFwvLyAm
JiAkdGVzdCAhfiAvXmh0dHBcL3Rlc3RzXC9zc2xcLy8pIHsKICAgICAgICAgICAgIG15ICRwYXRo
ID0gY2Fub25wYXRoKCR0ZXN0KTsKICAgICAgICAgICAgICRwYXRoID1+IHMvXmh0dHBcL3Rlc3Rz
XC8vLzsKLSAgICAgICAgICAgIHByaW50IE9VVCAiaHR0cDovLzEyNy4wLjAuMTokaHR0cGRQb3J0
LyRwYXRoJHN1ZmZpeFBpeGVsVGVzdFxuIjsKKyAgICAgICAgICAgIHByaW50IE9VVCAiaHR0cDov
LzEyNy4wLjAuMTokaHR0cGRQb3J0LyRwYXRoJHN1ZmZpeEV4cGVjdGVkSGFzaFxuIjsKICAgICAg
ICAgfSBlbHNpZiAoJHRlc3QgPX4gL15odHRwXC90ZXN0c1wvc3NsXC8vKSB7CiAgICAgICAgICAg
ICBteSAkcGF0aCA9IGNhbm9ucGF0aCgkdGVzdCk7CiAgICAgICAgICAgICAkcGF0aCA9fiBzL15o
dHRwXC90ZXN0c1wvLy87Ci0gICAgICAgICAgICBwcmludCBPVVQgImh0dHBzOi8vMTI3LjAuMC4x
OiRodHRwZFNTTFBvcnQvJHBhdGgkc3VmZml4UGl4ZWxUZXN0XG4iOworICAgICAgICAgICAgcHJp
bnQgT1VUICJodHRwczovLzEyNy4wLjAuMTokaHR0cGRTU0xQb3J0LyRwYXRoJHN1ZmZpeEV4cGVj
dGVkSGFzaFxuIjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG15ICR0ZXN0UGF0aCA9
ICIkdGVzdERpcmVjdG9yeS8kdGVzdCI7CiAgICAgICAgICAgICBpZiAoaXNDeWd3aW4oKSkgewpA
QCAtODA1LDcgKzgwMSw3IEBAIGZvciBteSAkdGVzdCAoQHRlc3RzKSB7CiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgICR0ZXN0UGF0aCA9IGNhbm9ucGF0aCgkdGVzdFBhdGgp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnQgT1VUICIkdGVzdFBhdGgkc3VmZml4
UGl4ZWxUZXN0XG4iOworICAgICAgICAgICAgcHJpbnQgT1VUICIkdGVzdFBhdGgkc3VmZml4RXhw
ZWN0ZWRIYXNoXG4iOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgbXkgJHRlc3RQ
YXRoID0gIiR0ZXN0RGlyZWN0b3J5LyR0ZXN0IjsKQEAgLTgxNCw3ICs4MTAsNyBAQCBmb3IgbXkg
JHRlc3QgKEB0ZXN0cykgewogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgJHRlc3RQYXRo
ID0gY2Fub25wYXRoKCR0ZXN0UGF0aCk7CiAgICAgICAgIH0KLSAgICAgICAgcHJpbnQgT1VUICIk
dGVzdFBhdGgkc3VmZml4UGl4ZWxUZXN0XG4iIGlmIGRlZmluZWQgJHRlc3RQYXRoOworICAgICAg
ICBwcmludCBPVVQgIiR0ZXN0UGF0aCRzdWZmaXhFeHBlY3RlZEhhc2hcbiIgaWYgZGVmaW5lZCAk
dGVzdFBhdGg7CiAgICAgfQogCiAgICAgIyBEdW1wUmVuZGVyVHJlZSBpcyBleHBlY3RlZCB0byBk
dW1wIHR3byAiYmxvY2tzIiB0byBzdGRvdXQgZm9yIGVhY2ggdGVzdC4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCA5NDIxNTYyNGZl
MjdlYTQyNWFhNzNlODkxNTc3Y2M1ZTZlOTkwZTI5Li5hZDcwZjA0MmRlOWVjYjYwMDYzYmVhNmY1
MGMyODViZjllZmQ5YzEyIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9iYXNlLnB5CkBAIC0xMjc3LDkgKzEyNzcsMjEgQEAgY2xhc3MgUG9ydChvYmpl
Y3QpOgogICAgICAgICAgICAgICAgIHJldHVybiBzdWl0ZS5hcmdzCiAgICAgICAgIHJldHVybiBb
XQogCisgICAgZGVmIHN1cHBvcnRzX3N3aXRjaGluZ19waXhlbF90ZXN0c19wZXJfdGVzdChzZWxm
KToKKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCd3ZWJraXRfdGVzdF9ydW5uZXInKToKKyAg
ICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBzZWxmLl9zdXBwb3J0c19zd2l0
Y2hpbmdfcGl4ZWxfdGVzdHNfcGVyX3Rlc3QoKQorCisgICAgZGVmIF9zdXBwb3J0c19zd2l0Y2hp
bmdfcGl4ZWxfdGVzdHNfcGVyX3Rlc3Qoc2VsZik6CisgICAgICAgICMgRklYTUU6IGFsbCBwb3J0
cyBzaG91bGQgc3VwcG9ydCBpdC4KKyAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICBkZWYgc2hv
dWxkX3J1bl9hc19waXhlbF90ZXN0KHNlbGYsIHRlc3RfaW5wdXQpOgogICAgICAgICBpZiBub3Qg
c2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0czoKICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg
ICAgICBpZiBub3Qgc2VsZi5zdXBwb3J0c19zd2l0Y2hpbmdfcGl4ZWxfdGVzdHNfcGVyX3Rlc3Qo
KToKKyAgICAgICAgICAgICMgQ2Fubm90IGRvIG1vcmUgZmlsdGVyaW5nIHdpdGhvdXQgdGhpcy4K
KyAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMucGl4ZWxf
dGVzdF9kaXJlY3RvcmllczoKICAgICAgICAgICAgIHJldHVybiBhbnkodGVzdF9pbnB1dC50ZXN0
X25hbWUuc3RhcnRzd2l0aChkaXJlY3RvcnkpIGZvciBkaXJlY3RvcnkgaW4gc2VsZi5fb3B0aW9u
cy5waXhlbF90ZXN0X2RpcmVjdG9yaWVzKQogICAgICAgICByZXR1cm4gc2VsZi5fc2hvdWxkX3J1
bl9hc19waXhlbF90ZXN0KHRlc3RfaW5wdXQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2RyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvZHJpdmVyLnB5CmluZGV4IDIwMjE1ODdmYmI0ZGE2ZDU5YmFm
MjY3OGNmMDAwMmM0ZTE3MmQ2MDcuLjc4MTgyM2I4ZDY3MGE2ZWI4ZTUyZTA3NjhiZTY2NGIxMWQ2
MzAzM2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvZHJpdmVyLnB5CkBAIC0yOTMsNiArMjkzLDggQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAK
ICAgICAgICAgY21kLmV4dGVuZChzZWxmLl9wb3J0LmdldF9vcHRpb24oJ2FkZGl0aW9uYWxfZHJ0
X2ZsYWcnLCBbXSkpCiAKKyAgICAgICAgaWYgcGl4ZWxfdGVzdHMgYW5kIG5vdCBzZWxmLl9wb3J0
LnN1cHBvcnRzX3N3aXRjaGluZ19waXhlbF90ZXN0c19wZXJfdGVzdCgpOgorICAgICAgICAgICAg
Y21kLmFwcGVuZCgnLS1waXhlbC10ZXN0cycpCiAgICAgICAgIGNtZC5leHRlbmQocGVyX3Rlc3Rf
YXJncykKIAogICAgICAgICBjbWQuYXBwZW5kKCctJykKQEAgLTMzMyw5ICszMzUsMTEgQEAgY2xh
c3MgRHJpdmVyKG9iamVjdCk6CiAKICAgICAgICAgYXNzZXJ0IG5vdCBkcml2ZXJfaW5wdXQuaW1h
Z2VfaGFzaCBvciBkcml2ZXJfaW5wdXQuc2hvdWxkX3J1bl9waXhlbF90ZXN0CiAKLSAgICAgICAg
IyAnIGlzIHRoZSBzZXBhcmF0b3IgYmV0d2VlbiBhcmd1bWVudHMuCiAgICAgICAgIGlmIGRyaXZl
cl9pbnB1dC5zaG91bGRfcnVuX3BpeGVsX3Rlc3Q6Ci0gICAgICAgICAgICBjb21tYW5kICs9ICIn
LS1waXhlbC10ZXN0IgorICAgICAgICAgICAgaWYgc2VsZi5fcG9ydC5zdXBwb3J0c19zd2l0Y2hp
bmdfcGl4ZWxfdGVzdHNfcGVyX3Rlc3QoKToKKyAgICAgICAgICAgICAgICAjIFdlIGRpZCBub3Qg
c3RhcnQgdGhlIGRyaXZlciB3aXRoIC0tcGl4ZWwtdGVzdHMsIGluc3RlYWQgd2Ugc3BlY2lmeSBp
dCBwZXIgdGVzdC4KKyAgICAgICAgICAgICAgICAjICInIiBpcyB0aGUgc2VwYXJhdG9yIG9mIGNv
bW1hbmQgZmllbGRzLgorICAgICAgICAgICAgICAgIGNvbW1hbmQgKz0gIiciICsgJy0tcGl4ZWwt
dGVzdCcKICAgICAgICAgaWYgZHJpdmVyX2lucHV0LmltYWdlX2hhc2g6CiAgICAgICAgICAgICBj
b21tYW5kICs9ICInIiArIGRyaXZlcl9pbnB1dC5pbWFnZV9oYXNoCiAgICAgICAgIHJldHVybiBj
b21tYW5kICsgIlxuIgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9xdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvcXQucHkKaW5kZXggNmU3YjA5ODhkNWE3N2VmYzVmYzM3MmZhNzUxNjc4MzQwMGE2OWYwOC4u
ZTIzOWM3ZTNhYWY2ZjYwMmIwYzM1MWVjMjJkY2ZhNjgwNjRlYTI2OSAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CkBAIC0xODQsMyArMTg0LDYg
QEAgY2xhc3MgUXRQb3J0KFBvcnQpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAg
IHJldHVybiByZXN1bHQKIAorICAgIGRlZiBfc3VwcG9ydHNfc3dpdGNoaW5nX3BpeGVsX3Rlc3Rz
X3Blcl90ZXN0KHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKaW5kZXggMGNkMTcxZjNiY2E2
YWJlYmRiMjFiOThlMmE0NWMyMWExNGE5MDExMi4uNTcxNDY2MWZkMjAzNjc2ODM5ZDZjNzZmNDcz
NWJlYzgxMzJiODliOCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvdGVzdC5weQpAQCAtNTEzLDYgKzUxMywxMCBAQCBjbGFzcyBUZXN0UG9ydChQb3J0
KToKICAgICAgICAgICAgIFZpcnR1YWxUZXN0U3VpdGUoJ3ZpcnR1YWwvc2tpcHBlZCcsICdmYWls
dXJlcy9leHBlY3RlZCcsIFsnLS12aXJ0dWFsLWFyZzInXSksCiAgICAgICAgIF0KIAorICAgIGRl
ZiBzdXBwb3J0c19zd2l0Y2hpbmdfcGl4ZWxfdGVzdHNfcGVyX3Rlc3Qoc2VsZik6CisgICAgICAg
ICMgTGV0IGl0IHRydWUgc28gd2UgY2FuIHRlc3QgdGhlIC0tcGl4ZWwtdGVzdC1kaXJlY3Rvcnkg
b3B0aW9uLgorICAgICAgICByZXR1cm4gVHJ1ZQorCiAKIGNsYXNzIFRlc3REcml2ZXIoRHJpdmVy
KToKICAgICAiIiJUZXN0L0R1bW15IGltcGxlbWVudGF0aW9uIG9mIHRoZSBEdW1wUmVuZGVyVHJl
ZSBpbnRlcmZhY2UuIiIiCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IGUxZWQ1ZDlmODUyZmRkZTNiOTFiMjdhOGE0MDJlNDY0ZjgwYjU1MjcuLmQwMjMyOTky
NzMxZDFiYzk3MTI2OGZjMzkzMWY0YjcwYWIzNjdhYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zNSwxMSArMzUsNyBAQAogI2luY2x1ZGUgPFdlYktp
dDIvV0tQYWdlUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8YWxnb3Jp
dGhtPgogI2luY2x1ZGUgPGNzdGRpbz4KLSNpbmNsdWRlIDxjdHlwZS5oPgotI2luY2x1ZGUgPHN0
ZGxpYi5oPgotI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgog
CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNzEsNyArNjcsOCBAQCBUZXN0Q29udHJvbGxlciYgVGVz
dENvbnRyb2xsZXI6OnNoYXJlZCgpCiB9CiAKIFRlc3RDb250cm9sbGVyOjpUZXN0Q29udHJvbGxl
cihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQotICAgIDogbV92ZXJib3NlKGZhbHNlKQor
ICAgIDogbV9kdW1wUGl4ZWxzRm9yQWxsVGVzdHMoZmFsc2UpCisgICAgLCBtX3ZlcmJvc2UoZmFs
c2UpCiAgICAgLCBtX3ByaW50U2VwYXJhdG9ycyhmYWxzZSkKICAgICAsIG1fdXNpbmdTZXJ2ZXJN
b2RlKGZhbHNlKQogICAgICwgbV9nY0JldHdlZW5UZXN0cyhmYWxzZSkKQEAgLTI3MCw2ICsyNjcs
MTAgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hh
ciogYXJndltdKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAorICAgICAgICBp
ZiAoYXJndW1lbnQgPT0gIi0tcGl4ZWwtdGVzdHMiKSB7CisgICAgICAgICAgICBtX2R1bXBQaXhl
bHNGb3JBbGxUZXN0cyA9IHRydWU7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQog
ICAgICAgICBpZiAoYXJndW1lbnQgPT0gIi0tdmVyYm9zZSIpIHsKICAgICAgICAgICAgIG1fdmVy
Ym9zZSA9IHRydWU7CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTUwMyw4OSArNTA0LDcgQEAg
Ym9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lzdGVudFZhbHVlcygpCiAgICAg
cmV0dXJuIG1fZG9uZVJlc2V0dGluZzsKIH0KIAotc3RydWN0IFRlc3RDb21tYW5kIHsKLSAgICBU
ZXN0Q29tbWFuZCgpIDogc2hvdWxkRHVtcFBpeGVscyhmYWxzZSkgeyB9Ci0KLSAgICBzdGQ6OnN0
cmluZyBwYXRoT3JVUkw7Ci0gICAgYm9vbCBzaG91bGREdW1wUGl4ZWxzOwotICAgIHN0ZDo6c3Ry
aW5nIGV4cGVjdGVkUGl4ZWxIYXNoOwotfTsKLQotY2xhc3MgQ29tbWFuZFRva2VuaXplciB7Ci1w
dWJsaWM6Ci0gICAgZXhwbGljaXQgQ29tbWFuZFRva2VuaXplcihjb25zdCBzdGQ6OnN0cmluZyYg
aW5wdXQpCi0gICAgICAgIDogbV9pbnB1dChpbnB1dCkKLSAgICAgICAgLCBtX3Bvc05leHRTZXBh
cmF0b3IoMCkKLSAgICB7Ci0gICAgICAgIHB1bXAoKTsKLSAgICB9Ci0KLSAgICBib29sIGhhc05l
eHQoKSBjb25zdDsKLSAgICBzdGQ6OnN0cmluZyBuZXh0KCk7Ci0KLXByaXZhdGU6Ci0gICAgdm9p
ZCBwdW1wKCk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIga1NlcGFyYXRvciA9ICdcJyc7Ci0gICAg
Y29uc3Qgc3RkOjpzdHJpbmcmIG1faW5wdXQ7Ci0gICAgc3RkOjpzdHJpbmcgbV9uZXh0OwotICAg
IHNpemVfdCBtX3Bvc05leHRTZXBhcmF0b3I7Ci19OwotCi12b2lkIENvbW1hbmRUb2tlbml6ZXI6
OnB1bXAoKQotewotICAgIGlmIChtX3Bvc05leHRTZXBhcmF0b3IgPT0gc3RkOjpzdHJpbmc6Om5w
b3MgfHwgbV9wb3NOZXh0U2VwYXJhdG9yID09IG1faW5wdXQuc2l6ZSgpKSB7Ci0gICAgICAgIG1f
bmV4dCA9IHN0ZDo6c3RyaW5nKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc2l6ZV90
IHN0YXJ0ID0gbV9wb3NOZXh0U2VwYXJhdG9yID8gbV9wb3NOZXh0U2VwYXJhdG9yICsgMSA6IDA7
Ci0gICAgbV9wb3NOZXh0U2VwYXJhdG9yID0gbV9pbnB1dC5maW5kKGtTZXBhcmF0b3IsIHN0YXJ0
KTsKLSAgICBzaXplX3Qgc2l6ZSA9IG1fcG9zTmV4dFNlcGFyYXRvciA9PSBzdGQ6OnN0cmluZzo6
bnBvcyA/IHN0ZDo6c3RyaW5nOjpucG9zIDogbV9wb3NOZXh0U2VwYXJhdG9yIC0gc3RhcnQ7Ci0g
ICAgbV9uZXh0ID0gc3RkOjpzdHJpbmcobV9pbnB1dCwgc3RhcnQsIHNpemUpOwotfQotCi1zdGQ6
OnN0cmluZyBDb21tYW5kVG9rZW5pemVyOjpuZXh0KCkKLXsKLSAgICBBU1NFUlQoaGFzTmV4dCgp
KTsKLQotICAgIHN0ZDo6c3RyaW5nIG9sZE5leHQgPSBtX25leHQ7Ci0gICAgcHVtcCgpOwotICAg
IHJldHVybiBvbGROZXh0OwotfQotCi1ib29sIENvbW1hbmRUb2tlbml6ZXI6Omhhc05leHQoKSBj
b25zdAotewotICAgIHJldHVybiAhbV9uZXh0LmVtcHR5KCk7Ci19Ci0KLU5PX1JFVFVSTiBzdGF0
aWMgdm9pZCBkaWUoY29uc3Qgc3RkOjpzdHJpbmcmIGlucHV0TGluZSkKLXsKLSAgICBmcHJpbnRm
KHN0ZGVyciwgIlVuZXhwZWN0ZWQgaW5wdXQgbGluZTogJXNcbiIsIGlucHV0TGluZS5jX3N0cigp
KTsKLSAgICBleGl0KDEpOwotfQotCi1UZXN0Q29tbWFuZCBwYXJzZUlucHV0TGluZShjb25zdCBz
dGQ6OnN0cmluZyYgaW5wdXRMaW5lKQotewotICAgIFRlc3RDb21tYW5kIHJlc3VsdDsKLSAgICBD
b21tYW5kVG9rZW5pemVyIHRva2VuaXplcihpbnB1dExpbmUpOwotICAgIGlmICghdG9rZW5pemVy
Lmhhc05leHQoKSkKLSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0KLSAgICByZXN1bHQucGF0aE9y
VVJMID0gdG9rZW5pemVyLm5leHQoKTsKLSAgICBpZiAoIXRva2VuaXplci5oYXNOZXh0KCkpCi0g
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0KLSAgICBzdGQ6OnN0cmluZyBhcmcgPSB0b2tlbml6ZXIu
bmV4dCgpOwotICAgIGlmIChhcmcgIT0gc3RkOjpzdHJpbmcoIi1wIikgJiYgYXJnICE9IHN0ZDo6
c3RyaW5nKCItLXBpeGVsLXRlc3QiKSkKLSAgICAgICAgZGllKGlucHV0TGluZSk7Ci0gICAgcmVz
dWx0LnNob3VsZER1bXBQaXhlbHMgPSB0cnVlOwotCi0gICAgaWYgKHRva2VuaXplci5oYXNOZXh0
KCkpCi0gICAgICAgIHJlc3VsdC5leHBlY3RlZFBpeGVsSGFzaCA9IHRva2VuaXplci5uZXh0KCk7
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1ib29sIFRlc3RDb250cm9sbGVyOjpydW5UZXN0
KGNvbnN0IGNoYXIqIGlucHV0TGluZSkKK2Jvb2wgVGVzdENvbnRyb2xsZXI6OnJ1blRlc3QoY29u
c3QgY2hhciogdGVzdCkKIHsKICAgICBpZiAoIXJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMo
KSkgewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTU5OCwxMyArNTE3LDMyIEBAIGJvb2wgVGVzdENv
bnRyb2xsZXI6OnJ1blRlc3QoY29uc3QgY2hhciogaW5wdXRMaW5lKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCi0gICAgVGVzdENvbW1hbmQgY29tbWFuZCA9IHBhcnNlSW5wdXRMaW5l
KHN0ZDo6c3RyaW5nKGlucHV0TGluZSkpOworICAgIGJvb2wgZHVtcFBpeGVsc1Rlc3QgPSBtX2R1
bXBQaXhlbHNGb3JBbGxUZXN0czsKKyAgICBzdGQ6OnN0cmluZyBjb21tYW5kKHRlc3QpOworICAg
IHN0ZDo6c3RyaW5nIHBhdGhPclVSTCA9IGNvbW1hbmQ7CisgICAgc3RkOjpzdHJpbmcgZXhwZWN0
ZWRQaXhlbEhhc2g7CisgICAgc2l6ZV90IGZpcnN0U2VwYXJhdG9yUG9zID0gY29tbWFuZC5maW5k
X2ZpcnN0X29mKCdcJycpOworICAgIHNpemVfdCBzZWNvbmRTZXBhcmF0b3JQb3MgPSBjb21tYW5k
LmZpbmRfZmlyc3Rfb2YoJ1wnJywgZmlyc3RTZXBhcmF0b3JQb3MgKyAxKTsKKyAgICBpZiAoZmly
c3RTZXBhcmF0b3JQb3MgIT0gc3RkOjpzdHJpbmc6Om5wb3MpIHsKKyAgICAgICAgcGF0aE9yVVJM
ID0gc3RkOjpzdHJpbmcoY29tbWFuZCwgMCwgZmlyc3RTZXBhcmF0b3JQb3MpOworICAgICAgICBz
aXplX3QgcGl4ZWxIYXNoUG9zID0gZmlyc3RTZXBhcmF0b3JQb3MgKyAxOworCisgICAgICAgIC8v
IE5SV1QgcGFzc2VzIC0tcGl4ZWwtdGVzdCBpZiB3ZSBzaG91bGQgZHVtcCBwaXhlbHMgZm9yIHRo
ZSB0ZXN0LgorICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBleHBlY3RlZFBpeGVsVGVzdEFyZygi
LS1waXhlbC10ZXN0Iik7CisgICAgICAgIHN0ZDo6c3RyaW5nIGFyZ1Rlc3QgPSBzdGQ6OnN0cmlu
Zyhjb21tYW5kLCBmaXJzdFNlcGFyYXRvclBvcyArIDEsIGV4cGVjdGVkUGl4ZWxUZXN0QXJnLnNp
emUoKSk7CisgICAgICAgIGlmIChhcmdUZXN0ID09IGV4cGVjdGVkUGl4ZWxUZXN0QXJnKSB7Cisg
ICAgICAgICAgICBkdW1wUGl4ZWxzVGVzdCA9IHRydWU7CisgICAgICAgICAgICBwaXhlbEhhc2hQ
b3MgPSBzZWNvbmRTZXBhcmF0b3JQb3MgPT0gc3RkOjpzdHJpbmc6Om5wb3MgPyBzdGQ6OnN0cmlu
Zzo6bnBvcyA6IHNlY29uZFNlcGFyYXRvclBvcyArIDE7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHBpeGVsSGFzaFBvcyAhPSBzdGQ6OnN0cmluZzo6bnBvcyAmJiBwaXhlbEhhc2hQb3MgPCBjb21t
YW5kLnNpemUoKSkKKyAgICAgICAgICAgIGV4cGVjdGVkUGl4ZWxIYXNoID0gc3RkOjpzdHJpbmco
Y29tbWFuZCwgcGl4ZWxIYXNoUG9zKTsKKyAgICB9CiAKICAgICBtX3N0YXRlID0gUnVubmluZ1Rl
c3Q7CiAKLSAgICBtX2N1cnJlbnRJbnZvY2F0aW9uID0gYWRvcHRQdHIobmV3IFRlc3RJbnZvY2F0
aW9uKGNvbW1hbmQucGF0aE9yVVJMKSk7Ci0gICAgaWYgKGNvbW1hbmQuc2hvdWxkRHVtcFBpeGVs
cykKLSAgICAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+c2V0SXNQaXhlbFRlc3QoY29tbWFuZC5l
eHBlY3RlZFBpeGVsSGFzaCk7CisgICAgbV9jdXJyZW50SW52b2NhdGlvbiA9IGFkb3B0UHRyKG5l
dyBUZXN0SW52b2NhdGlvbihwYXRoT3JVUkwpKTsKKyAgICBpZiAoZHVtcFBpeGVsc1Rlc3QpCisg
ICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPnNldElzUGl4ZWxUZXN0KGV4cGVjdGVkUGl4ZWxI
YXNoKTsKIAogICAgIG1fY3VycmVudEludm9jYXRpb24tPmludm9rZSgpOwogICAgIG1fY3VycmVu
dEludm9jYXRpb24uY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aAppbmRleCA1ZTIwZDYxMWI0NjlkZjE4N2MzNzhlZTYyZWQwY2FjMzE4ZGFlZDIxLi5hOTllMTZl
YTg3MDI3YzM0ZjA3Yjg5NjJiMDk4YzIzMzRkOTQyMWJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0ZToKIAogICAgIE93
blB0cjxUZXN0SW52b2NhdGlvbj4gbV9jdXJyZW50SW52b2NhdGlvbjsKIAorICAgIGJvb2wgbV9k
dW1wUGl4ZWxzRm9yQWxsVGVzdHM7CiAgICAgYm9vbCBtX3ZlcmJvc2U7CiAgICAgYm9vbCBtX3By
aW50U2VwYXJhdG9yczsKICAgICBib29sIG1fdXNpbmdTZXJ2ZXJNb2RlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>