<?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>187253</bug_id>
          
          <creation_ts>2018-07-02 09:42:15 -0700</creation_ts>
          <short_desc>[WK1] editing/spelling/markers.html is failing on recent builds of macOS Mojave</short_desc>
          <delta_ts>2018-07-05 08:47:46 -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>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1438503</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-07-02 09:42:15 -0700</bug_when>
    <thetext>This started in recent builds of macOS Mojave. What appears to be happening is that the system spell checker is now returning both grammar and spelling results for the &quot;I have a issue.&quot; portion of the test, and our test isn&apos;t robust enough to handle this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438595</commentid>
    <comment_count>1</comment_count>
      <attachid>344129</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-07-02 13:17:53 -0700</bug_when>
    <thetext>Created attachment 344129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438598</commentid>
    <comment_count>2</comment_count>
      <attachid>344129</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-07-02 13:28:51 -0700</bug_when>
    <thetext>Comment on attachment 344129
Patch

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

&gt; Tools/TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:228
&gt; +            auto resultsObject = JSValueToObject(context, JSObjectGetPropertyAtIndex(context, resultsArray, resultIndex, nullptr), nullptr);

Someday we should make this use the modern ObjC JSC API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438606</commentid>
    <comment_count>3</comment_count>
      <attachid>344129</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-07-02 13:42:23 -0700</bug_when>
    <thetext>Comment on attachment 344129
Patch

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

&gt;&gt; Tools/TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:228
&gt;&gt; +            auto resultsObject = JSValueToObject(context, JSObjectGetPropertyAtIndex(context, resultsArray, resultIndex, nullptr), nullptr);
&gt; 
&gt; Someday we should make this use the modern ObjC JSC API.

Sounds good! I&apos;ll refactor this the next time I touch add new functionality here, and add a FIXME to remind myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438627</commentid>
    <comment_count>4</comment_count>
      <attachid>344135</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-07-02 14:14:47 -0700</bug_when>
    <thetext>Created attachment 344135
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438656</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-02 15:04:13 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 344135:

imported/blink/fast/events/click-focus-anchor-no-ring.html bug 187275 (author: jhoneycutt@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438657</commentid>
    <comment_count>6</comment_count>
      <attachid>344135</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-02 15:04:59 -0700</bug_when>
    <thetext>Comment on attachment 344135
Patch for landing

Clearing flags on attachment: 344135

Committed r233439: &lt;https://trac.webkit.org/changeset/233439&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438678</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-02 15:45:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/41745021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439400</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-05 08:47:46 -0700</bug_when>
    <thetext>It looks like once r233439 was pushed and fixed the Mojave test, High Sierra began to have a flakey timeout. 

test history:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=editing%2Fspelling%2Fmarkers.html

Example of timeout:
https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK1%20(Tests)/builds/6423/steps/layout-test/logs/stdio</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344129</attachid>
            <date>2018-07-02 13:17:53 -0700</date>
            <delta_ts>2018-07-02 13:28:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187253-20180702131750.patch</filename>
            <type>text/plain</type>
            <size>30383</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDIxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGJlNzEzM2Y4YTkwNTU5OWZmYTdlZjI3N2JkN2U0Mjhm
ZmQyNDU1OS4uOWVhY2MzMGY0N2Q4YzNlZWEwNTk4NTVjZWFmYTM5ZDk4NDI2Y2E5YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDE4LTA3LTAyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzFdIGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIGlzIGZhaWxpbmcg
b24gcmVjZW50IGJ1aWxkcyBvZiBtYWNPUyBNb2phdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzI1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuaGFuY2VzIGFuZCByZWZhY3RvcnMgTGF5b3V0VGVz
dFNwZWxsQ2hlY2tlciwgd2hpY2ggd2FzIGludHJvZHVjZWQgaW4gcjIzMzQxMi4KKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoc2V0U3BlbGxDaGVj
a2VyUmVzdWx0c0NhbGxiYWNrKToKKworICAgICAgICBSZW5hbWUgc2V0U3BlbGxDaGVja2VyVGV4
dFJlcGxhY2VtZW50cyB0byBzZXRTcGVsbENoZWNrZXJSZXN1bHRzLgorCisgICAgICAgIChUZXN0
UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAoc2V0U3BlbGxDaGVja2VyVGV4dFJl
cGxhY2VtZW50c0NhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMu
bW06CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRTcGVsbENoZWNrZXJSZXN1bHRzKToKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlclRleHRSZXBsYWNlbWVudHMpOiBEZWxldGVk
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDoKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlclJlc3VsdHMpOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6c2V0U3BlbGxDaGVja2VyVGV4dFJlcGxhY2VtZW50cyk6IERlbGV0ZWQuCisgICAgICAg
ICogVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLmg6CisgICAg
ICAgICogVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tOgor
ICAgICAgICAoLVtMYXlvdXRUZXN0VGV4dENoZWNraW5nUmVzdWx0IGluaXRXaXRoVHlwZTpyYW5n
ZTpyZXBsYWNlbWVudDpkZXRhaWxzOl0pOgorICAgICAgICAoLVtMYXlvdXRUZXN0VGV4dENoZWNr
aW5nUmVzdWx0IGdyYW1tYXJEZXRhaWxzXSk6CisgICAgICAgICgtW0xheW91dFRlc3RTcGVsbENo
ZWNrZXIgcmVzZXRdKToKKyAgICAgICAgKC1bTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciByZXN1bHRz
XSk6CisgICAgICAgICgtW0xheW91dFRlc3RTcGVsbENoZWNrZXIgc2V0UmVzdWx0czpdKToKKyAg
ICAgICAgKC1bTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciBzZXRSZXN1bHRzRnJvbUpTT2JqZWN0Omlu
Q29udGV4dDpdKToKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcGFzc2luZyBpbiBhIGxpc3Qg
b2YgZ3JhbW1hciBjb3JyZWN0aW9uIGRldGFpbCByYW5nZXMuIE5lY2Vzc2FyeSBmb3Igc2ltdWxh
dGluZyBncmFtbWFyIGVycm9ycy4KKworICAgICAgICAoLVtMYXlvdXRUZXN0U3BlbGxDaGVja2Vy
IGNoZWNrU3RyaW5nOnJhbmdlOnR5cGVzOm9wdGlvbnM6aW5TcGVsbERvY3VtZW50V2l0aFRhZzpv
cnRob2dyYXBoeTp3b3JkQ291bnQ6XSk6CisKKyAgICAgICAgVHdlYWtlZCB0byBhbHdheXMgY2Fs
bCB0aGUgc3VwZXJjbGFzcyBtZXRob2QuIFRoaXMgZW5zdXJlcyB0aGF0IHdlIHNldCB0aGUgYG9y
dGhvZ3JhcGh5YCBhbmQgYHdvcmRDb3VudGAKKyAgICAgICAgb3V0cG9pbnRlcnMgaWYgYXBwbGlj
YWJsZS4KKworICAgICAgICAoLVtMYXlvdXRUZXN0U3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nOnJhbmdlOnR5cGVzOm9wdGlvbnM6aW5TcGVsbERvY3VtZW50V2l0aFRhZzpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKworICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBzaW11bGF0aW5n
IGFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2luZy4KKworICAgICAgICAoLVtMYXlvdXRUZXN0VGV4
dENoZWNraW5nUmVzdWx0IGluaXRXaXRoVHlwZTpyYW5nZTpyZXBsYWNlbWVudDpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciByZXBsYWNlbWVudHNdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciBzZXRSZXBsYWNlbWVudHM6
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW0xheW91dFRlc3RTcGVsbENoZWNrZXIgc2V0UmVwbGFj
ZW1lbnRzRnJvbUpTT2JqZWN0OmluQ29udGV4dDpdKTogRGVsZXRlZC4KKwogMjAxOC0wNy0wMiAg
WmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gQWRk
IHRvdWNoIHN1cHBvcnQgdG8gV2luZG93Vmlld0JhY2tlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggN2U4ZWM5YmQ0NWIwYjc1ZjRlOGU5MjZiYTVjN2Q2MzhlNjI2ZTQ2My4u
YTVjMGQ4MDlkYzMwYjYxMWNiNDMzMmZiNjkwZTZlZDNlYThjM2JhOSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTE3ODgsMTMgKzE3ODgsMTMgQEAgc3RhdGljIEpTVmFsdWVS
ZWYgc2V0U3BlbGxDaGVja2VyTG9nZ2luZ0VuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlMKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAK
LXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNwZWxsQ2hlY2tlclRleHRSZXBsYWNlbWVudHNDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTcGVs
bENoZWNrZXJSZXN1bHRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewog
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogCiAgICAgYXV0byogcnVubmVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1
bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgcnVubmVyLT5zZXRT
cGVsbENoZWNrZXJUZXh0UmVwbGFjZW1lbnRzKGNvbnRleHQsIEpTVmFsdWVUb09iamVjdChjb250
ZXh0LCBhcmd1bWVudHNbMF0sIG51bGxwdHIpKTsKKyAgICBydW5uZXItPnNldFNwZWxsQ2hlY2tl
clJlc3VsdHMoY29udGV4dCwgSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIGFyZ3VtZW50c1swXSwg
bnVsbHB0cikpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0K
IApAQCAtMjI2NSw3ICsyMjY1LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3Rh
dGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAicnVuVUlTY3JpcHQiLCBydW5VSVNjcmlwdENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgImltYWdlQ291bnRJbkdlbmVyYWxQYXN0ZWJvYXJkIiwg
aW1hZ2VDb3VudEluR2VuZXJhbFBhc3RlYm9hcmRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRTcGVsbENoZWNrZXJMb2dnaW5nRW5hYmxlZCIsIHNldFNwZWxsQ2hlY2tlckxvZ2dpbmdF
bmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0U3BlbGxDaGVja2VyVGV4dFJl
cGxhY2VtZW50cyIsIHNldFNwZWxsQ2hlY2tlclRleHRSZXBsYWNlbWVudHNDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAorICAgICAgICB7ICJzZXRTcGVsbENoZWNrZXJSZXN1bHRzIiwgc2V0U3BlbGxDaGVja2Vy
UmVzdWx0c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE9wZW5QYW5lbEZpbGVzIiwg
c2V0T3BlblBhbmVsRmlsZXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJmb3JjZUltbWVk
aWF0ZUNvbXBsZXRpb24iLCBmb3JjZUltbWVkaWF0ZUNvbXBsZXRpb25DYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7IDAsIDAsIDAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGRi
ZjE0ZmViNjE3OGJjYWQ2Nzk2YTAxYzQ0NTdhYjI1YmNkMjIxY2IuLjRiNTAyNDVjNzVhNWMyMTIw
OWYxMjA5MDdjZjA0ZjBiODk5YmVlZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAg
LTM3Niw3ICszNzYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkdW1wSlNDb25zb2xlTG9nSW5TdGRF
cnIoKSBjb25zdCB7IHJldHVybiBtX2R1bXBKU0NvbnNvbGVMb2dJblN0ZEVycjsgfQogCiAgICAg
dm9pZCBzZXRTcGVsbENoZWNrZXJMb2dnaW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHNldFNw
ZWxsQ2hlY2tlclRleHRSZXBsYWNlbWVudHMoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZiByZXBs
YWNlbWVudHMpOworICAgIHZvaWQgc2V0U3BlbGxDaGVja2VyUmVzdWx0cyhKU0NvbnRleHRSZWYs
IEpTT2JqZWN0UmVmIHJlc3VsdHMpOwogCiAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8c3RkOjpzdHJp
bmc+JiBvcGVuUGFuZWxGaWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fb3BlblBhbmVsRmlsZXM7IH0K
ICAgICB2b2lkIHNldE9wZW5QYW5lbEZpbGVzKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IGRjMzMyYWU1Mzlj
MmRlMTc3ZjE0MGMwNmRkM2YxOWRkNjAwNzJlN2EuLjFmOGE1NGE3YzVhNWY3NmIzZjBiZmY4ZGY4
ZTYxNzAyMjdlNzQ4ZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0
UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFj
Lm1tCkBAIC0yMTksMTIgKzIxOSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tl
ckxvZ2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldFNwZWxsQ2hlY2tlclRleHRSZXBsYWNlbWVudHMoSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIHJlcGxhY2VtZW50cykKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVj
a2VyUmVzdWx0cyhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgcmVzdWx0cykKIHsK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgW1tMYXlvdXRUZXN0U3BlbGxDaGVja2VyIGNoZWNrZXJd
IHNldFJlcGxhY2VtZW50c0Zyb21KU09iamVjdDpyZXBsYWNlbWVudHMgaW5Db250ZXh0OmNvbnRl
eHRdOworICAgIFtbTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciBjaGVja2VyXSBzZXRSZXN1bHRzRnJv
bUpTT2JqZWN0OnJlc3VsdHMgaW5Db250ZXh0OmNvbnRleHRdOwogI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0ocmVwbGFjZW1lbnRzKTsKKyAgICBVTlVTRURfUEFSQU0ocmVzdWx0cyk7CiAgICAgVU5V
U0VEX1BBUkFNKGNvbnRleHQpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggNzgwMzMzMTE2YWFkMGQ1OTM5Zjg3NDZmODAyZTI3ODU2
ZGI5ZGJhMi4uYzFkYTkxOWVkN2YzNGRjNDBiNWYzNmI2OTc0ODE3N2EyNmIwZmJkNiAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtMTQwNyw3ICsxNDA3
LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTcGVsbENoZWNrZXJMb2dnaW5nRW5hYmxlZChib29s
IGVuYWJsZWQpCiAgICAgZnByaW50Zih0ZXN0UmVzdWx0LCAiRVJST1I6IFRlc3RSdW5uZXI6OnNl
dFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVkKCkgbm90IGltcGxlbWVudGVkXG4iKTsKIH0KIAot
dm9pZCBUZXN0UnVubmVyOjpzZXRTcGVsbENoZWNrZXJUZXh0UmVwbGFjZW1lbnRzKEpTQ29udGV4
dFJlZiwgSlNPYmplY3RSZWYpCit2b2lkIFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlclJlc3Vs
dHMoSlNDb250ZXh0UmVmLCBKU09iamVjdFJlZikKIHsKLSAgICBmcHJpbnRmKHRlc3RSZXN1bHQs
ICJFUlJPUjogVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyVGV4dFJlcGxhY2VtZW50cygpIG5v
dCBpbXBsZW1lbnRlZFxuIik7CisgICAgZnByaW50Zih0ZXN0UmVzdWx0LCAiRVJST1I6IFRlc3RS
dW5uZXI6OnNldFNwZWxsQ2hlY2tlclJlc3VsdHMoKSBub3QgaW1wbGVtZW50ZWRcbiIpOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxD
aGVja2VyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENo
ZWNrZXIuaAppbmRleCBjMDdjZTdmZTJjNzE1MjgxNTM0MThmMDA3ZGFkN2RlNjQ0YTMxZTlhLi5k
NzQ2ZjY3OGE2ODc1YWI0MjI2YTgxZmVmYTBjMjE5NDJkNGJmYmVlIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIuaAorKysgYi9U
b29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIuaApAQCAt
MzQsMTcgKzM0LDE5IEBACiAKIEBjbGFzcyBMYXlvdXRUZXN0VGV4dENoZWNraW5nUmVzdWx0Owog
Cit1c2luZyBUZXh0Q2hlY2tpbmdSZXN1bHRzRGljdGlvbmFyeSA9IE5TRGljdGlvbmFyeTxOU1N0
cmluZyAqLCBOU0FycmF5PExheW91dFRlc3RUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKj47CisKIEBp
bnRlcmZhY2UgTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciA6IE5TU3BlbGxDaGVja2VyIHsKIEBwcml2
YXRlCi0gICAgUmV0YWluUHRyPE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBMYXlvdXRUZXN0VGV4
dENoZWNraW5nUmVzdWx0ICo+PiBfcmVwbGFjZW1lbnRzOworICAgIFJldGFpblB0cjxUZXh0Q2hl
Y2tpbmdSZXN1bHRzRGljdGlvbmFyeT4gX3Jlc3VsdHM7CiAgICAgQk9PTCBfc3BlbGxDaGVja2Vy
TG9nZ2luZ0VuYWJsZWQ7CiB9CiAKICsgKGluc3RhbmNldHlwZSljaGVja2VyOwogKyAodm9pZCl1
bmluc3RhbGxBbmRSZXNldDsKIAotLSAodm9pZClzZXRSZXBsYWNlbWVudHNGcm9tSlNPYmplY3Q6
KEpTT2JqZWN0UmVmKXJlcGxhY2VtZW50cyBpbkNvbnRleHQ6KEpTQ29udGV4dFJlZiljb250ZXh0
OwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBM
YXlvdXRUZXN0VGV4dENoZWNraW5nUmVzdWx0ICo+ICpyZXBsYWNlbWVudHM7CistICh2b2lkKXNl
dFJlc3VsdHNGcm9tSlNPYmplY3Q6KEpTT2JqZWN0UmVmKXJlc3VsdHNPYmplY3QgaW5Db250ZXh0
OihKU0NvbnRleHRSZWYpY29udGV4dDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBUZXh0
Q2hlY2tpbmdSZXN1bHRzRGljdGlvbmFyeSAqcmVzdWx0czsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIHNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVkOwogQGVuZAogCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIubW0gYi9U
b29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIubW0KaW5k
ZXggMzVmODY1YjhhOTU0ZDUyZTM4NjFjYzYxNjNjYTllNjMwOTMyMDY0YS4uMmU0NTM2NzY5ODYw
MzU2MDUzOTIxMjdlNDIzNThlZWQ4MDBiZDU4NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tCisrKyBiL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbQpAQCAtMjksOSArMjks
MTIgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAjaW1wb3J0IDxv
YmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0IDx3dGYv
QmxvY2tQdHIuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKIAordXNpbmcgVGV4dENoZWNraW5nQ29t
cGxldGlvbkhhbmRsZXIgPSB2b2lkKF4pKE5TSW50ZWdlciwgTlNBcnJheTxOU1RleHRDaGVja2lu
Z1Jlc3VsdCAqPiAqLCBOU09ydGhvZ3JhcGh5ICosIE5TSW50ZWdlcik7CisKIHN0YXRpYyBMYXlv
dXRUZXN0U3BlbGxDaGVja2VyICpnbG9iYWxTcGVsbENoZWNrZXIgPSBuaWw7CiBzdGF0aWMgQk9P
TCBoYXNTd2l6emxlZExheW91dFRlc3RTcGVsbENoZWNrZXIgPSBOTzsKIHN0YXRpYyBJTVAgZ2xv
YmFsbHlTd2l6emxlZFNoYXJlZFNwZWxsQ2hlY2tlckltcGxlbWVudGF0aW9uOwpAQCAtMTE2LDI1
ICsxMTksMzIgQEAgQHByaXZhdGUKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9yZXBsYWNlbWVu
dDsKICAgICBOU1RleHRDaGVja2luZ1R5cGUgX3R5cGU7CiAgICAgTlNSYW5nZSBfcmFuZ2U7Cisg
ICAgUmV0YWluUHRyPE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+PiBfZGV0YWlsczsKIH0KIAotLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoVHlwZTooTlNUZXh0Q2hlY2tpbmdUeXBlKXR5cGUgcmFuZ2U6
KE5TUmFuZ2UpcmFuZ2UgcmVwbGFjZW1lbnQ6KE5TU3RyaW5nICopcmVwbGFjZW1lbnQ7CistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihOU1RleHRDaGVja2luZ1R5cGUpdHlwZSByYW5nZToo
TlNSYW5nZSlyYW5nZSByZXBsYWNlbWVudDooTlNTdHJpbmcgKilyZXBsYWNlbWVudCBkZXRhaWxz
OihOU0FycmF5PE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKj4gKilkZXRhaWxzOwogQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gTGF5b3V0VGVzdFRleHRDaGVja2luZ1Jlc3VsdAogCi0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihOU1RleHRDaGVja2luZ1R5cGUpdHlwZSByYW5nZToo
TlNSYW5nZSlyYW5nZSByZXBsYWNlbWVudDooTlNTdHJpbmcgKilyZXBsYWNlbWVudAorLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoVHlwZTooTlNUZXh0Q2hlY2tpbmdUeXBlKXR5cGUgcmFuZ2U6KE5T
UmFuZ2UpcmFuZ2UgcmVwbGFjZW1lbnQ6KE5TU3RyaW5nICopcmVwbGFjZW1lbnQgZGV0YWlsczoo
TlNBcnJheTxOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICo+ICopZGV0YWlscwogewogICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAg
X3R5cGUgPSB0eXBlOwogICAgIF9yYW5nZSA9IHJhbmdlOwotICAgIF9yZXBsYWNlbWVudCA9IHJl
cGxhY2VtZW50OworICAgIF9yZXBsYWNlbWVudCA9IGFkb3B0TlMocmVwbGFjZW1lbnQuY29weSk7
CisgICAgX2RldGFpbHMgPSBhZG9wdE5TKGRldGFpbHMuY29weSk7CiAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAorLSAoTlNBcnJheTxOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICo+ICopZ3Jh
bW1hckRldGFpbHMKK3sKKyAgICByZXR1cm4gX2RldGFpbHMuZ2V0KCk7Cit9CisKIC0gKE5TUmFu
Z2UpcmFuZ2UKIHsKICAgICByZXR1cm4gX3JhbmdlOwpAQCAtMTg1LDU1ICsxOTUsNzkgQEAgKyAo
dm9pZCl1bmluc3RhbGxBbmRSZXNldAogCiAtICh2b2lkKXJlc2V0CiB7Ci0gICAgc2VsZi5yZXBs
YWNlbWVudHMgPSBuaWw7CisgICAgc2VsZi5yZXN1bHRzID0gbmlsOwogICAgIHNlbGYuc3BlbGxD
aGVja2VyTG9nZ2luZ0VuYWJsZWQgPSBOTzsKIH0KIAotLSAoTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIExheW91dFRlc3RUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKilyZXBsYWNlbWVudHMKKy0gKFRl
eHRDaGVja2luZ1Jlc3VsdHNEaWN0aW9uYXJ5ICopcmVzdWx0cwogewotICAgIHJldHVybiBfcmVw
bGFjZW1lbnRzLmdldCgpOworICAgIHJldHVybiBfcmVzdWx0cy5nZXQoKTsKIH0KIAotLSAodm9p
ZClzZXRSZXBsYWNlbWVudHM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBMYXlvdXRUZXN0VGV4
dENoZWNraW5nUmVzdWx0ICo+ICopcmVwbGFjZW1lbnRzCistICh2b2lkKXNldFJlc3VsdHM6KFRl
eHRDaGVja2luZ1Jlc3VsdHNEaWN0aW9uYXJ5ICopcmVzdWx0cwogewotICAgIF9yZXBsYWNlbWVu
dHMgPSBhZG9wdE5TKHJlcGxhY2VtZW50cy5jb3B5KTsKKyAgICBfcmVzdWx0cyA9IGFkb3B0TlMo
cmVzdWx0cy5jb3B5KTsKIH0KIAotLSAodm9pZClzZXRSZXBsYWNlbWVudHNGcm9tSlNPYmplY3Q6
KEpTT2JqZWN0UmVmKXJlcGxhY2VtZW50cyBpbkNvbnRleHQ6KEpTQ29udGV4dFJlZiljb250ZXh0
CistICh2b2lkKXNldFJlc3VsdHNGcm9tSlNPYmplY3Q6KEpTT2JqZWN0UmVmKXJlc3VsdHNPYmpl
Y3QgaW5Db250ZXh0OihKU0NvbnRleHRSZWYpY29udGV4dAogewogICAgIGF1dG8gZnJvbVByb3Bl
cnR5TmFtZSA9IGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJmcm9tIikpOwog
ICAgIGF1dG8gdG9Qcm9wZXJ0eU5hbWUgPSBhZG9wdChKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygidG8iKSk7CiAgICAgYXV0byB0eXBlUHJvcGVydHlOYW1lID0gYWRvcHQoSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoInR5cGUiKSk7CiAgICAgYXV0byByZXBsYWNlbWVudFByb3Bl
cnR5TmFtZSA9IGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJyZXBsYWNlbWVu
dCIpKTsKLSAgICBhdXRvIHByb3BlcnRpZXMgPSBKU09iamVjdENvcHlQcm9wZXJ0eU5hbWVzKGNv
bnRleHQsIHJlcGxhY2VtZW50cyk7Ci0gICAgYXV0byByZXN1bHQgPSBhZG9wdE5TKFtbTlNNdXRh
YmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGV0YWlsc1Byb3BlcnR5TmFt
ZSA9IGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJkZXRhaWxzIikpOworICAg
IGF1dG8gcmVzdWx0cyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
XSk7CisKKyAgICBhdXRvIHByb3BlcnRpZXMgPSBKU09iamVjdENvcHlQcm9wZXJ0eU5hbWVzKGNv
bnRleHQsIHJlc3VsdHNPYmplY3QpOwogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXgg
PCBKU1Byb3BlcnR5TmFtZUFycmF5R2V0Q291bnQocHJvcGVydGllcyk7ICsraW5kZXgpIHsKLSAg
ICAgICAgSlNTdHJpbmdSZWYgd29yZFRvUmVwbGFjZSA9IEpTUHJvcGVydHlOYW1lQXJyYXlHZXRO
YW1lQXRJbmRleChwcm9wZXJ0aWVzLCBpbmRleCk7Ci0gICAgICAgIEpTT2JqZWN0UmVmIHJlcGxh
Y2VtZW50ID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIEpTT2JqZWN0R2V0UHJvcGVydHkoY29u
dGV4dCwgcmVwbGFjZW1lbnRzLCB3b3JkVG9SZXBsYWNlLCBudWxscHRyKSwgbnVsbHB0cik7Ci0g
ICAgICAgIGxvbmcgZnJvbVZhbHVlID0gbHJvdW5kbChKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwg
SlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCByZXBsYWNlbWVudCwgZnJvbVByb3BlcnR5TmFt
ZS5nZXQoKSwgbnVsbHB0ciksIG51bGxwdHIpKTsKLSAgICAgICAgbG9uZyB0b1ZhbHVlID0gbHJv
dW5kbChKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0
LCByZXBsYWNlbWVudCwgdG9Qcm9wZXJ0eU5hbWUuZ2V0KCksIG51bGxwdHIpLCBudWxscHRyKSk7
Ci0gICAgICAgIGF1dG8gdHlwZVZhbHVlID0gYWRvcHQoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250
ZXh0LCBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHJlcGxhY2VtZW50LCB0eXBlUHJvcGVy
dHlOYW1lLmdldCgpLCBudWxscHRyKSwgbnVsbHB0cikpOwotICAgICAgICBhdXRvIHJlcGxhY2Vt
ZW50VmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHJlcGxhY2VtZW50LCByZXBs
YWNlbWVudFByb3BlcnR5TmFtZS5nZXQoKSwgbnVsbHB0cik7Ci0gICAgICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gcmVwbGFjZW1lbnRUZXh0OwotICAgICAgICBpZiAoIUpTVmFsdWVJc1VuZGVm
aW5lZChjb250ZXh0LCByZXBsYWNlbWVudFZhbHVlKSkgewotICAgICAgICAgICAgYXV0byByZXBs
YWNlbWVudEpTU3RyaW5nID0gYWRvcHQoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCByZXBs
YWNlbWVudFZhbHVlLCBudWxscHRyKSk7Ci0gICAgICAgICAgICByZXBsYWNlbWVudFRleHQgPSBh
ZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJlcGxhY2Vt
ZW50SlNTdHJpbmcuZ2V0KCkpKTsKKyAgICAgICAgSlNTdHJpbmdSZWYgdGV4dFRvQ2hlY2sgPSBK
U1Byb3BlcnR5TmFtZUFycmF5R2V0TmFtZUF0SW5kZXgocHJvcGVydGllcywgaW5kZXgpOworICAg
ICAgICBKU09iamVjdFJlZiByZXN1bHRzQXJyYXkgPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwg
SlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCByZXN1bHRzT2JqZWN0LCB0ZXh0VG9DaGVjaywg
bnVsbHB0ciksIG51bGxwdHIpOworICAgICAgICBhdXRvIHJlc3VsdHNBcnJheVByb3BlcnR5TmFt
ZXMgPSBKU09iamVjdENvcHlQcm9wZXJ0eU5hbWVzKGNvbnRleHQsIHJlc3VsdHNBcnJheSk7Cisg
ICAgICAgIGF1dG8gcmVzdWx0c0ZvcldvcmQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRdKTsKKyAgICAgICAgZm9yIChzaXplX3QgcmVzdWx0SW5kZXggPSAwOyByZXN1bHRJ
bmRleCA8IEpTUHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChyZXN1bHRzQXJyYXlQcm9wZXJ0eU5h
bWVzKTsgKytyZXN1bHRJbmRleCkgeworICAgICAgICAgICAgYXV0byByZXN1bHRzT2JqZWN0ID0g
SlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIEpTT2JqZWN0R2V0UHJvcGVydHlBdEluZGV4KGNvbnRl
eHQsIHJlc3VsdHNBcnJheSwgcmVzdWx0SW5kZXgsIG51bGxwdHIpLCBudWxscHRyKTsKKyAgICAg
ICAgICAgIGxvbmcgZnJvbVZhbHVlID0gbHJvdW5kbChKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwg
SlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCByZXN1bHRzT2JqZWN0LCBmcm9tUHJvcGVydHlO
YW1lLmdldCgpLCBudWxscHRyKSwgbnVsbHB0cikpOworICAgICAgICAgICAgbG9uZyB0b1ZhbHVl
ID0gbHJvdW5kbChKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgSlNPYmplY3RHZXRQcm9wZXJ0eShj
b250ZXh0LCByZXN1bHRzT2JqZWN0LCB0b1Byb3BlcnR5TmFtZS5nZXQoKSwgbnVsbHB0ciksIG51
bGxwdHIpKTsKKyAgICAgICAgICAgIGF1dG8gdHlwZVZhbHVlID0gYWRvcHQoSlNWYWx1ZVRvU3Ry
aW5nQ29weShjb250ZXh0LCBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHJlc3VsdHNPYmpl
Y3QsIHR5cGVQcm9wZXJ0eU5hbWUuZ2V0KCksIG51bGxwdHIpLCBudWxscHRyKSk7CisgICAgICAg
ICAgICBhdXRvIHJlcGxhY2VtZW50VmFsdWUgPSBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQs
IHJlc3VsdHNPYmplY3QsIHJlcGxhY2VtZW50UHJvcGVydHlOYW1lLmdldCgpLCBudWxscHRyKTsK
KyAgICAgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gcmVwbGFjZW1lbnRUZXh0OworICAg
ICAgICAgICAgaWYgKCFKU1ZhbHVlSXNVbmRlZmluZWQoY29udGV4dCwgcmVwbGFjZW1lbnRWYWx1
ZSkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHJlcGxhY2VtZW50SlNTdHJpbmcgPSBhZG9wdChK
U1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHJlcGxhY2VtZW50VmFsdWUsIG51bGxwdHIpKTsK
KyAgICAgICAgICAgICAgICByZXBsYWNlbWVudFRleHQgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNG
U3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHJlcGxhY2VtZW50SlNTdHJpbmcuZ2V0KCkpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF1dG8gZGV0YWlscyA9IGFkb3B0TlMoW1tOU011
dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgICAgICAgICAgYXV0byBkZXRhaWxzVmFsdWUg
PSBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHJlc3VsdHNPYmplY3QsIGRldGFpbHNQcm9w
ZXJ0eU5hbWUuZ2V0KCksIG51bGxwdHIpOworICAgICAgICAgICAgaWYgKCFKU1ZhbHVlSXNVbmRl
ZmluZWQoY29udGV4dCwgZGV0YWlsc1ZhbHVlKSkgeworICAgICAgICAgICAgICAgIGF1dG8gZGV0
YWlsc09iamVjdCA9IEpTVmFsdWVUb09iamVjdChjb250ZXh0LCBkZXRhaWxzVmFsdWUsIG51bGxw
dHIpOworICAgICAgICAgICAgICAgIGF1dG8gZGV0YWlsc09iamVjdFByb3BlcnRpZXMgPSBKU09i
amVjdENvcHlQcm9wZXJ0eU5hbWVzKGNvbnRleHQsIGRldGFpbHNPYmplY3QpOworICAgICAgICAg
ICAgICAgIGZvciAoc2l6ZV90IGRldGFpbEluZGV4ID0gMDsgZGV0YWlsSW5kZXggPCBKU1Byb3Bl
cnR5TmFtZUFycmF5R2V0Q291bnQoZGV0YWlsc09iamVjdFByb3BlcnRpZXMpOyArK2RldGFpbElu
ZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gZGV0YWlsID0gYWRvcHROUyhbW05TTXV0
YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBk
ZXRhaWxPYmplY3QgPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwgSlNPYmplY3RHZXRQcm9wZXJ0
eUF0SW5kZXgoY29udGV4dCwgZGV0YWlsc09iamVjdCwgZGV0YWlsSW5kZXgsIG51bGxwdHIpLCBu
dWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZyBmcm9tID0gbHJvdW5kbChKU1ZhbHVl
VG9OdW1iZXIoY29udGV4dCwgSlNPYmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCBkZXRhaWxPYmpl
Y3QsIGZyb21Qcm9wZXJ0eU5hbWUuZ2V0KCksIG51bGxwdHIpLCBudWxscHRyKSk7CisgICAgICAg
ICAgICAgICAgICAgIGxvbmcgdG8gPSBscm91bmRsKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBK
U09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIGRldGFpbE9iamVjdCwgdG9Qcm9wZXJ0eU5hbWUu
Z2V0KCksIG51bGxwdHIpLCBudWxscHRyKSk7CisgICAgICAgICAgICAgICAgICAgIFtkZXRhaWwg
c2V0T2JqZWN0OltOU1ZhbHVlIHZhbHVlV2l0aFJhbmdlOk5TTWFrZVJhbmdlKGZyb20sIHRvIC0g
ZnJvbSldIGZvcktleTpOU0dyYW1tYXJSYW5nZV07CisgICAgICAgICAgICAgICAgICAgIFtkZXRh
aWxzIGFkZE9iamVjdDpkZXRhaWwuZ2V0KCldOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBKU1Byb3BlcnR5TmFtZUFycmF5UmVsZWFzZShkZXRhaWxzT2JqZWN0UHJvcGVydGll
cyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBbcmVzdWx0c0ZvcldvcmQgYWRkT2JqZWN0
OltbW0xheW91dFRlc3RUZXh0Q2hlY2tpbmdSZXN1bHQgYWxsb2NdIGluaXRXaXRoVHlwZTpuc1Rl
eHRDaGVja2luZ1R5cGUoV1RGTW92ZSh0eXBlVmFsdWUpKSByYW5nZTpOU01ha2VSYW5nZShmcm9t
VmFsdWUsIHRvVmFsdWUgLSBmcm9tVmFsdWUpIHJlcGxhY2VtZW50OihOU1N0cmluZyAqKXJlcGxh
Y2VtZW50VGV4dC5nZXQoKSBkZXRhaWxzOmRldGFpbHMuZ2V0KCldIGF1dG9yZWxlYXNlXV07CiAg
ICAgICAgIH0KLSAgICAgICAgYXV0byBzcGVsbENoZWNrUmVzdWx0ID0gYWRvcHROUyhbW0xheW91
dFRlc3RUZXh0Q2hlY2tpbmdSZXN1bHQgYWxsb2NdIGluaXRXaXRoVHlwZTpuc1RleHRDaGVja2lu
Z1R5cGUoV1RGTW92ZSh0eXBlVmFsdWUpKSByYW5nZTpOU01ha2VSYW5nZShmcm9tVmFsdWUsIHRv
VmFsdWUgLSBmcm9tVmFsdWUpIHJlcGxhY2VtZW50OihOU1N0cmluZyAqKXJlcGxhY2VtZW50VGV4
dC5nZXQoKV0pOwotICAgICAgICBhdXRvIGNmV29yZFRvUmVwbGFjZSA9IGFkb3B0Q0YoSlNTdHJp
bmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgd29yZFRvUmVwbGFjZSkpOwotICAg
ICAgICBbcmVzdWx0IHNldE9iamVjdDpzcGVsbENoZWNrUmVzdWx0LmdldCgpIGZvcktleTooTlNT
dHJpbmcgKiljZldvcmRUb1JlcGxhY2UuZ2V0KCldOworICAgICAgICBhdXRvIGNmVGV4dFRvQ2hl
Y2sgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHRl
eHRUb0NoZWNrKSk7CisgICAgICAgIFtyZXN1bHRzIHNldE9iamVjdDpyZXN1bHRzRm9yV29yZC5n
ZXQoKSBmb3JLZXk6KE5TU3RyaW5nICopY2ZUZXh0VG9DaGVjay5nZXQoKV07CisgICAgICAgIEpT
UHJvcGVydHlOYW1lQXJyYXlSZWxlYXNlKHJlc3VsdHNBcnJheVByb3BlcnR5TmFtZXMpOwogICAg
IH0KICAgICBKU1Byb3BlcnR5TmFtZUFycmF5UmVsZWFzZShwcm9wZXJ0aWVzKTsKIAotICAgIF9y
ZXBsYWNlbWVudHMgPSBXVEZNb3ZlKHJlc3VsdCk7CisgICAgX3Jlc3VsdHMgPSBXVEZNb3ZlKHJl
c3VsdHMpOwogfQogCiAtIChOU0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICopY2hlY2tT
dHJpbmc6KE5TU3RyaW5nICopc3RyaW5nVG9DaGVjayByYW5nZTooTlNSYW5nZSlyYW5nZSB0eXBl
czooTlNUZXh0Q2hlY2tpbmdUeXBlcyljaGVja2luZ1R5cGVzIG9wdGlvbnM6KE5TRGljdGlvbmFy
eTxOU1N0cmluZyAqLCBpZD4gKilvcHRpb25zIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6KE5TSW50
ZWdlcil0YWcgb3J0aG9ncmFwaHk6KE5TT3J0aG9ncmFwaHkgKiopb3J0aG9ncmFwaHkgd29yZENv
dW50OihOU0ludGVnZXIgKil3b3JkQ291bnQKIHsKLSAgICBpZiAoYXV0byAqcmVzdWx0ID0gW19y
ZXBsYWNlbWVudHMgb2JqZWN0Rm9yS2V5OnN0cmluZ1RvQ2hlY2tdKQotICAgICAgICByZXR1cm4g
QFsgcmVzdWx0IF07CisgICAgTlNBcnJheSAqcmVzdWx0ID0gW3N1cGVyIGNoZWNrU3RyaW5nOnN0
cmluZ1RvQ2hlY2sgcmFuZ2U6cmFuZ2UgdHlwZXM6Y2hlY2tpbmdUeXBlcyBvcHRpb25zOm9wdGlv
bnMgaW5TcGVsbERvY3VtZW50V2l0aFRhZzp0YWcgb3J0aG9ncmFwaHk6b3J0aG9ncmFwaHkgd29y
ZENvdW50OndvcmRDb3VudF07CisgICAgaWYgKGF1dG8gKm92ZXJyaWRlUmVzdWx0ID0gW19yZXN1
bHRzIG9iamVjdEZvcktleTpzdHJpbmdUb0NoZWNrXSkKKyAgICAgICAgcmV0dXJuIG92ZXJyaWRl
UmVzdWx0OwogCi0gICAgcmV0dXJuIFtzdXBlciBjaGVja1N0cmluZzpzdHJpbmdUb0NoZWNrIHJh
bmdlOnJhbmdlIHR5cGVzOmNoZWNraW5nVHlwZXMgb3B0aW9uczpvcHRpb25zIGluU3BlbGxEb2N1
bWVudFdpdGhUYWc6dGFnIG9ydGhvZ3JhcGh5Om9ydGhvZ3JhcGh5IHdvcmRDb3VudDp3b3JkQ291
bnRdOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIC0gKHZvaWQpcmVjb3JkUmVzcG9uc2U6KE5T
Q29ycmVjdGlvblJlc3BvbnNlKXJlc3BvbnNlIHRvQ29ycmVjdGlvbjooTlNTdHJpbmcgKiljb3Jy
ZWN0aW9uIGZvcldvcmQ6KE5TU3RyaW5nICopd29yZCBsYW5ndWFnZTooTlNTdHJpbmcgKilsYW5n
dWFnZSBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOihOU0ludGVnZXIpdGFnCkBAIC0yNDQsNiArMjc4
LDE4IEBAIC0gKHZvaWQpcmVjb3JkUmVzcG9uc2U6KE5TQ29ycmVjdGlvblJlc3BvbnNlKXJlc3Bv
bnNlIHRvQ29ycmVjdGlvbjooTlNTdHJpbmcgKiljCiAgICAgW3N1cGVyIHJlY29yZFJlc3BvbnNl
OnJlc3BvbnNlIHRvQ29ycmVjdGlvbjpjb3JyZWN0aW9uIGZvcldvcmQ6d29yZCBsYW5ndWFnZTps
YW5ndWFnZSBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnRhZ107CiB9CiAKKy0gKE5TSW50ZWdlcily
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzooTlNTdHJpbmcgKilzdHJpbmdUb0NoZWNrIHJhbmdlOihO
U1JhbmdlKXJhbmdlIHR5cGVzOihOU1RleHRDaGVja2luZ1R5cGVzKWNoZWNraW5nVHlwZXMgb3B0
aW9uczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKW9wdGlvbnMgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzooTlNJbnRlZ2VyKXRhZyBjb21wbGV0aW9uSGFuZGxlcjooVGV4dENoZWNraW5n
Q29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICByZXR1cm4gW3N1cGVy
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnN0cmluZ1RvQ2hlY2sgcmFuZ2U6cmFuZ2UgdHlwZXM6
Y2hlY2tpbmdUeXBlcyBvcHRpb25zOm9wdGlvbnMgaW5TcGVsbERvY3VtZW50V2l0aFRhZzp0YWcg
Y29tcGxldGlvbkhhbmRsZXI6W292ZXJyaWRlUmVzdWx0ID0gcmV0YWluUHRyKFtfcmVzdWx0cyBv
YmplY3RGb3JLZXk6c3RyaW5nVG9DaGVja10pLCBjb21wbGV0aW9uID0gbWFrZUJsb2NrUHRyKGNv
bXBsZXRpb25IYW5kbGVyKSwgc3RyaW5nVG9DaGVjayA9IHJldGFpblB0cihzdHJpbmdUb0NoZWNr
KV0gKE5TSW50ZWdlciBzZXF1ZW5jZU51bWJlciwgTlNBcnJheTxOU1RleHRDaGVja2luZ1Jlc3Vs
dCAqPiAqcmVzdWx0LCBOU09ydGhvZ3JhcGh5ICpvcnRob2dyYXBoeSwgTlNJbnRlZ2VyIHdvcmRD
b3VudCkgeworICAgICAgICBpZiAob3ZlcnJpZGVSZXN1bHQpIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb24oc2VxdWVuY2VOdW1iZXIsIG92ZXJyaWRlUmVzdWx0LmdldCgpLCBvcnRob2dyYXBoeSwg
d29yZENvdW50KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNv
bXBsZXRpb24oc2VxdWVuY2VOdW1iZXIsIHJlc3VsdCwgb3J0aG9ncmFwaHksIHdvcmRDb3VudCk7
CisgICAgfV07Cit9CisKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1
OTY4NDc5OTU3ZmZhNWQyMzVhYWIxMTI2ODM1N2E1MDdlMzZhMzFmLi5jYWQyYTdhMTYxY2Y2OWJk
YzNlYzFhYTMxYmY2MzM0MGJmMTFlYjllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDct
MDIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dL
MV0gZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwgaXMgZmFpbGluZyBvbiByZWNlbnQgYnVp
bGRzIG9mIG1hY09TIE1vamF2ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg3MjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW4gcmVjZW50IGJ1aWxkcyBvZiBtYWNPUyBNb2phdmUsIE5TU3BlbGxDaGVj
a2VyIHJldHVybnMgYm90aCBncmFtbWFyIGFuZCBzcGVsbGluZyBlcnJvcnMgd2hlbiBhc2tlZCB0
byBhbmFseXplCisgICAgICAgIHRoZSBzdHJpbmcgIkkgaGF2ZSBhIGlzc3Vlcy4iLiBXaGlsZSBh
cmd1YWJseSBjb3JyZWN0LCB0aGUgY2hhbmdlIGNhdXNlcyB0aGlzIGV4aXN0aW5nIGxheW91dCB0
ZXN0IHRvIGZhaWwgZHVlCisgICAgICAgIHRvIG9uZSBvZiB0aGUgY2FsbHMgdG8gYHZlcmlmeVVu
ZXhwZWN0ZWRNYXJrZXJzYCBleHBlY3RpbmcgZWl0aGVyIGdyYW1tYXIgbWFya2VycyBhbmQgbm90
IHNwZWxsaW5nIG1hcmtlcnMsIG9yCisgICAgICAgIHZpY2UgdmVyc2EuCisKKyAgICAgICAgVG8g
Zml4IHRoaXMsIHdlIGNhbiBsZXZlcmFnZSB0aGUgbWVjaGFuaXNtIGFkZGVkIGluIHIyMzM0MTIg
dG8gc2ltdWxhdGUgZGlmZmVyZW50IHJlc3VsdHMgZnJvbSB0aGUgcGxhdGZvcm0KKyAgICAgICAg
c3BlbGxjaGVja2VyLCBzdWNoIHRoYXQgdGhlIHRlc3Qgbm93IGV4ZXJjaXNlcyBhbGwgY29tYmlu
YXRpb25zIG9mIGdyYW1tYXIgYW5kIHNwZWxsaW5nIGNvcnJlY3Rpb25zIG9ic2VydmVkIG9uCisg
ICAgICAgIGVhY2ggbWFjT1MgcGxhdGZvcm0sIHJlZ2FyZGxlc3Mgb2YgdGhlIGFjdHVhbCBwbGF0
Zm9ybSB3aGVyZSB0aGUgdGVzdCBpcyBiZWluZyBydW4uCisKKyAgICAgICAgVGhpcyBwYXRjaCBh
bHNvIGVuaGFuY2VzIHRoZSBjYXBhYmlsaXRpZXMgb2YgYExheW91dFRlc3RTcGVsbENoZWNrZXJg
LiBTZWUgYFRvb2xzL0NoYW5nZUxvZ2AgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIGVk
aXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9z
cGVsbGluZy9tYXJrZXJzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy90ZXh0LXJl
cGxhY2VtZW50LWFmdGVyLXR5cGluZy10by13b3JkLmh0bWw6CisKKyAgICAgICAgQWRqdXN0ZWQg
Zm9yIGEgcmVuYW1lZCBUZXN0UnVubmVyIG1ldGhvZC4KKwogMjAxOC0wNy0wMiAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBXUEUgZ2Fy
ZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBl
Y3RlZC50eHQKaW5kZXggNzkxYzlkZTgxMjVhMjBhNzE3MjEyMTJiNzdmMjA3ZjNjNDYyZDRlMC4u
OTIzNTY3M2ZhZTdjODcwZDhiM2E3M2Q4ZjcxNTM2NjhkZGM1OTU3MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMs
MTggQEAgVGVzdHMgc3BlbGxpbmcgYW5kIGdyYW1tYXIgbWFya2VycyBmb3IgbWlzc3BlbGxpbmdz
LgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAn
SSBoYXZlIGEgaXNzdWUuJworUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1l
bnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZm
ZXJlbnQgZnJvbSBudWxsCitQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMgImEiCisKK0NoZWNraW5n
IGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNzdWUuJworUEFTUyBpbnRlcm5hbHMubWFya2VyUmFu
Z2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIs
IDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMg
ImEiCisKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNzdWUuJworUEFTUyBpbnRl
cm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxs
aW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHJhbmdl
LnRvU3RyaW5nKCkgaXMgImEiCisKIENoZWNraW5nIGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNz
dWUuJwogUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGls
ZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBu
dWxsCiBQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMgImEiCkBAIC0yMiw2ICszNCw5IEBAIFBBU1Mg
cmFuZ2UudG9TdHJpbmcoKSBpcyAib3JhbmdlLHp6LGFwcGxlIgogQ2hlY2tpbmcgZm9yIG5vIG90
aGVyIGlzc3VlcyBvbiAnSSBoYXZlIGEgaXNzdWUuJwogUEFTUyBpbnRlcm5hbHMubWFya2VyQ291
bnRGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgb3Bwb3NpdGVNYXJrZXIpIGJlY2FtZSAwCiAK
K0NoZWNraW5nIGZvciBubyBvdGhlciBpc3N1ZXMgb24gJ0kgaGF2ZSBhIGlzc3VlLicKK1BBU1Mg
aW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlbGVtZW50LmZpcnN0Q2hpbGQsIG9wcG9zaXRl
TWFya2VyKSBiZWNhbWUgMAorCiBDaGVja2luZyBmb3Igbm8gb3RoZXIgaXNzdWVzIG9uICd6ei4n
CiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZWxlbWVudC5maXJzdENoaWxkLCBv
cHBvc2l0ZU1hcmtlcikgYmVjYW1lIDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9tYXJrZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21h
cmtlcnMuaHRtbAppbmRleCA5NGI1Y2I3OTg5Yzk2ZjNiMzY3ZDYzOTM1MGY3NGY3ZDE3ZTdlM2Vj
Li4zYTM1Y2FhNGYzODM2ZGRmMjJjNjU0YzA4N2NkNDIwMzFhNDE5ZjgyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbApAQCAtMjUsOSArMjUsMTAgQEAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7CiB9CiAKLWZ1bmN0aW9uIGNyZWF0ZUVkaXRhYmxl
RWxlbWVudChwYXJlbnQpIHsKK2Z1bmN0aW9uIGNyZWF0ZUVkaXRhYmxlRWxlbWVudChwYXJlbnQs
IHRleHRDb250ZW50KSB7CiAgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKICAgICBlLnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwgInRydWUiKTsKKyAgICBl
LnRleHRDb250ZW50ID0gdGV4dENvbnRlbnQ7CiAgICAgZS5jbGFzc05hbWUgPSAnZWRpdGluZyc7
CiAKICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZSk7CkBAIC0zNiw1MiArMzcsNzcgQEAgZnVuY3Rp
b24gY3JlYXRlRWRpdGFibGVFbGVtZW50KHBhcmVudCkgewogCiBmdW5jdGlvbiB0eXBlVGV4dChl
bGVtLCB0ZXh0KSB7CiAgICAgZWxlbS5mb2N1cygpOworICAgIHNlbGVjdEFsbENvbW1hbmQoKTsK
KyAgICBkZWxldGVDb21tYW5kKCk7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0
aDsgKytpKQogICAgICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCh0ZXh0W2ldKTsKIH0KIAotdmFy
IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKK2NvbnN0
IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKK2NvbnN0
IGVsZW1lbnRXaXRoR3JhbW1hcklzc3VlID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGNvbnRhaW5l
ciwgIkkgaGF2ZSBhIGlzc3VlLiIpOworY29uc3QgZWxlbWVudFdpdGhTcGVsbGluZ0lzc3VlICA9
IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChjb250YWluZXIsICJ6ei4iKTsKK2NvbnN0IGVsZW1lbnRX
aXRoR3JhbW1hckFuZFNwZWxsaW5nSXNzdWUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoY29udGFp
bmVyLCAib3JhbmdlLHp6LGFwcGxlLiIpOwogCi12YXIgZWxlbWVudFdpdGhHcmFtbWFySXNzdWUg
PSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoY29udGFpbmVyKTsKLXR5cGVUZXh0KGVsZW1lbnRXaXRo
R3JhbW1hcklzc3VlLCAnSSBoYXZlIGEgaXNzdWUuJyk7Ci0KLXZhciBlbGVtZW50V2l0aFNwZWxs
aW5nSXNzdWUgID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGNvbnRhaW5lcik7Ci10eXBlVGV4dChl
bGVtZW50V2l0aFNwZWxsaW5nSXNzdWUsICd6ei4nKTsKLQotdmFyIGVsZW1lbnRXaXRoR3JhbW1h
ckFuZFNwZWxsaW5nSXNzdWUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoY29udGFpbmVyKTsKLXR5
cGVUZXh0KGVsZW1lbnRXaXRoR3JhbW1hckFuZFNwZWxsaW5nSXNzdWUsICdvcmFuZ2UsenosYXBw
bGUuJyk7Ci0KLXZhciBtaXNzcGVsbGluZ3MgPSBbCi0gICAgeyBtYXJrZXI6IGludGVybmFscy5z
ZW50ZW5jZVJldHJvQ29ycmVjdGlvbkVuYWJsZWQgPyAnc3BlbGxpbmcnIDogJ2dyYW1tYXInLCAg
aXNzdWU6ICdhJyB9LAorY29uc3QgbWlzc3BlbGxpbmdzID0gWworICAgIHsgbWFya2VyOiAnc3Bl
bGxpbmcnLCAgaXNzdWU6ICdhJyB9LAorICAgIHsgbWFya2VyOiAnZ3JhbW1hcicsICBpc3N1ZTog
J2EnIH0sCisgICAgeyBtYXJrZXI6ICdncmFtbWFyJywgIGlzc3VlOiAnSSBoYXZlIGEgaXNzdWUu
JyB9LAogICAgIHsgbWFya2VyOiAnc3BlbGxpbmcnLCBpc3N1ZTogJ3p6JyB9LAogICAgIHsgbWFy
a2VyOiAnZ3JhbW1hcicsICBpc3N1ZTogJ29yYW5nZSx6eixhcHBsZS4nIH0sCiAgICAgeyBtYXJr
ZXI6ICdzcGVsbGluZycsICBpc3N1ZTogJ29yYW5nZSx6eixhcHBsZScgfSwKIF07CiAKK2NvbnN0
IHJlc3VsdHMgPSBbCisgICAgeyAidHlwZSI6ICJzcGVsbGluZyIsICJmcm9tIjogNywgInRvIjog
OCB9LAorICAgIHsKKyAgICAgICAgInR5cGUiOiAiZ3JhbW1hciIsCisgICAgICAgICJmcm9tIjog
NywKKyAgICAgICAgInRvIjogOCwKKyAgICAgICAgImRldGFpbHMiOiBbeyAiZnJvbSI6IDAsICJ0
byI6IDEgfV0KKyAgICB9LAorICAgIHsKKyAgICAgICAgInR5cGUiOiAiZ3JhbW1hciIsCisgICAg
ICAgICJmcm9tIjogMCwKKyAgICAgICAgInRvIjogMTUsCisgICAgICAgICJkZXRhaWxzIjogW3sg
ImZyb20iOiA3LCAidG8iOiA4IH1dCisgICAgfQorXTsKKwogdmFyIHRlc3RzID0gWwotICAgIGZ1
bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdyYW1tYXJJc3N1ZSwg
bWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpKSB9LAotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNp
cmVkTWFya2VycyhlbGVtZW50V2l0aFNwZWxsaW5nSXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgx
LCAyKSkgfSwKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdp
dGhHcmFtbWFyQW5kU3BlbGxpbmdJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDIsIDQpKSB9LAor
ICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdyYW1tYXJJ
c3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpLCByZXN1bHRzLnNsaWNlKDAsIDEpKSB9LAor
ICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdyYW1tYXJJ
c3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDEsIDIpLCByZXN1bHRzLnNsaWNlKDEsIDIpKSB9LAor
ICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aEdyYW1tYXJJ
c3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDIpLCByZXN1bHRzLnNsaWNlKDAsIDIpKSB9LAor
ICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aFNwZWxsaW5n
SXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgzLCA0KSkgfSwKKyAgICBmdW5jdGlvbigpIHsgdmVy
aWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdpdGhHcmFtbWFyQW5kU3BlbGxpbmdJc3N1ZSwgbWlz
c3BlbGxpbmdzLnNsaWNlKDQsIDYpKSB9LAogCiAgICAgLy8gVGhvc2UgZXhwZWN0IHRvIGhhdmUg
b25seSBvbmUga2luZCBvZiBtYXJrZXJzIGVpdGhlciBzcGVsbGluZyBvciBncmFtbWFyLgotICAg
IGZ1bmN0aW9uKCkgeyB2ZXJpZnlVbmV4cGVjdGVkTWFya2VycyhlbGVtZW50V2l0aEdyYW1tYXJJ
c3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpKSB9LAotICAgIGZ1bmN0aW9uKCkgeyB2ZXJp
ZnlVbmV4cGVjdGVkTWFya2VycyhlbGVtZW50V2l0aFNwZWxsaW5nSXNzdWUsIG1pc3NwZWxsaW5n
cy5zbGljZSgxLCAyKSkgfSwKKyAgICBmdW5jdGlvbigpIHsgdmVyaWZ5VW5leHBlY3RlZE1hcmtl
cnMoZWxlbWVudFdpdGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgwLCAxKSksIHJl
c3VsdHMuc2xpY2UoMCwgMSkgfSwKKyAgICBmdW5jdGlvbigpIHsgdmVyaWZ5VW5leHBlY3RlZE1h
cmtlcnMoZWxlbWVudFdpdGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgxLCAyKSks
IHJlc3VsdHMuc2xpY2UoMSwgMikgfSwKKyAgICBmdW5jdGlvbigpIHsgdmVyaWZ5VW5leHBlY3Rl
ZE1hcmtlcnMoZWxlbWVudFdpdGhTcGVsbGluZ0lzc3VlLCBtaXNzcGVsbGluZ3Muc2xpY2UoMywg
NCkpIH0sCiBdOwogCiB2YXIgZWxlbWVudDsKIHZhciBuZXh0TWlzc3BlbGxpbmdEYXRhOwogCi1m
dW5jdGlvbiB2ZXJpZnlEZXNpcmVkTWFya2VycyhlLCBtaXNzcGVsbGluZ3MpCitmdW5jdGlvbiB2
ZXJpZnlEZXNpcmVkTWFya2VycyhlLCBtaXNzcGVsbGluZ3MsIG92ZXJyaWRlU3BlbGxDaGVja2lu
Z1Jlc3VsdHMpCiB7CiAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm4g
ZG9uZSgpOwogCisgICAgY29uc3QgdGV4dFRvQ2hlY2sgPSBlLmZpcnN0Q2hpbGQubm9kZVZhbHVl
OworICAgIGNvbnN0IHNwZWxsQ2hlY2tlclJlc3VsdHMgPSB7IH07CisgICAgaWYgKG92ZXJyaWRl
U3BlbGxDaGVja2luZ1Jlc3VsdHMpCisgICAgICAgIHNwZWxsQ2hlY2tlclJlc3VsdHNbdGV4dFRv
Q2hlY2tdID0gb3ZlcnJpZGVTcGVsbENoZWNraW5nUmVzdWx0czsKKyAgICB0ZXN0UnVubmVyLnNl
dFNwZWxsQ2hlY2tlclJlc3VsdHMoc3BlbGxDaGVja2VyUmVzdWx0cyk7CisKKyAgICB0eXBlVGV4
dChlLCB0ZXh0VG9DaGVjayk7CisKICAgICBlbGVtZW50ID0gZTsKICAgICBuZXh0TWlzc3BlbGxp
bmdEYXRhID0gbWlzc3BlbGxpbmdzLnNoaWZ0KCk7CiAgICAgaWYgKCFuZXh0TWlzc3BlbGxpbmdE
YXRhKQogICAgICAgICByZXR1cm4gZG9uZSgpOwogCi0gICAgZGVidWcoIkNoZWNraW5nIGZvciBp
c3N1ZSBvbiAnIiArIGVsZW1lbnQuZmlyc3RDaGlsZC5ub2RlVmFsdWUgKyAiJyIpOworICAgIGRl
YnVnKGBDaGVja2luZyBmb3IgaXNzdWUgb24gJyR7dGV4dFRvQ2hlY2t9J2ApOwogCiAgICAgc2hv
dWxkQmVjb21lRGlmZmVyZW50KCdpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQu
Zmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApJywgIm51bGwiLCBmdW5j
dGlvbigpIHsKICAgICAgICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVs
ZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApOwpAQCAtOTIs
OCArMTE4LDE2IEBAIGZ1bmN0aW9uIHZlcmlmeURlc2lyZWRNYXJrZXJzKGUsIG1pc3NwZWxsaW5n
cykKIH0KIAogdmFyIG9wcG9zaXRlTWFya2VyOwotZnVuY3Rpb24gdmVyaWZ5VW5leHBlY3RlZE1h
cmtlcnMoZSwgbWlzc3BlbGxpbmdzKQorZnVuY3Rpb24gdmVyaWZ5VW5leHBlY3RlZE1hcmtlcnMo
ZSwgbWlzc3BlbGxpbmdzLCBvdmVycmlkZVNwZWxsQ2hlY2tpbmdSZXN1bHRzKQogeworICAgIGNv
bnN0IHRleHRUb0NoZWNrID0gZS5maXJzdENoaWxkLm5vZGVWYWx1ZTsKKyAgICBjb25zdCBzcGVs
bENoZWNrZXJSZXN1bHRzID0geyB9OworICAgIGlmIChvdmVycmlkZVNwZWxsQ2hlY2tpbmdSZXN1
bHRzKQorICAgICAgICBzcGVsbENoZWNrZXJSZXN1bHRzW3RleHRUb0NoZWNrXSA9IG92ZXJyaWRl
U3BlbGxDaGVja2luZ1Jlc3VsdHM7CisgICAgdGVzdFJ1bm5lci5zZXRTcGVsbENoZWNrZXJSZXN1
bHRzKHNwZWxsQ2hlY2tlclJlc3VsdHMpOworCisgICAgdHlwZVRleHQoZSwgdGV4dFRvQ2hlY2sp
OworCiAgICAgZWxlbWVudCA9IGU7CiAgICAgbmV4dE1pc3NwZWxsaW5nRGF0YSA9IG1pc3NwZWxs
aW5ncy5zaGlmdCgpOwogCkBAIC0xMDIsNyArMTM2LDcgQEAgZnVuY3Rpb24gdmVyaWZ5VW5leHBl
Y3RlZE1hcmtlcnMoZSwgbWlzc3BlbGxpbmdzKQogICAgIGVsc2UgaWYgKG5leHRNaXNzcGVsbGlu
Z0RhdGEubWFya2VyID09ICdzcGVsbGluZycpCiAgICAgICAgIG9wcG9zaXRlTWFya2VyID0gJ2dy
YW1tYXInOwogCi0gICAgZGVidWcoIkNoZWNraW5nIGZvciBubyBvdGhlciBpc3N1ZXMgb24gJyIg
KyBlbGVtZW50LmZpcnN0Q2hpbGQubm9kZVZhbHVlICsgIiciKTsKKyAgICBkZWJ1ZyhgQ2hlY2tp
bmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAnJHt0ZXh0VG9DaGVja30nYCk7CiAKICAgICBzaG91
bGRCZWNvbWVFcXVhbCgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlbGVtZW50LmZpcnN0
Q2hpbGQsIG9wcG9zaXRlTWFya2VyKScsICcwJywgZnVuY3Rpb24oKSB7CiAgICAgICAgIGRlYnVn
KCIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvdGV4dC1yZXBs
YWNlbWVudC1hZnRlci10eXBpbmctdG8td29yZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy90ZXh0LXJlcGxhY2VtZW50LWFmdGVyLXR5cGluZy10by13b3JkLmh0bWwKaW5kZXgg
OGM5NDk1ZDg2NjJmMDZmZDlmZjE3YzM2MDc1MmU3NDJkMzI5MmJlNy4uYmEwNjg2NzVlNGEwNjU5
NWUwZmMyNDk3MDllZWRlZDg0YmFiYjRmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy90ZXh0LXJlcGxhY2VtZW50LWFmdGVyLXR5cGluZy10by13b3JkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy90ZXh0LXJlcGxhY2VtZW50LWFmdGVyLXR5
cGluZy10by13b3JkLmh0bWwKQEAgLTE3LDE5ICsxNywyMyBAQCBhc3luYyBmdW5jdGlvbiBydW5U
ZXN0KCkKICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKGZhbHNlKTsKICAgICAgICAgaW50ZXJuYWxzLnNldEF1dG9tYXRpY1RleHRS
ZXBsYWNlbWVudEVuYWJsZWQodHJ1ZSk7CiAgICAgICAgIGludGVybmFscy5zZXRBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLnNldFNw
ZWxsQ2hlY2tlclRleHRSZXBsYWNlbWVudHMoewotICAgICAgICAgICAgIllUPyI6IHsKLSAgICAg
ICAgICAgICAgICAicmVwbGFjZW1lbnQiOiAiWW91IHRoZXJlPyIsCi0gICAgICAgICAgICAgICAg
InR5cGUiOiAicmVwbGFjZW1lbnQiLAotICAgICAgICAgICAgICAgICJmcm9tIjogMCwKLSAgICAg
ICAgICAgICAgICAidG8iOiAzCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgIllUP1xuIjog
ewotICAgICAgICAgICAgICAgICJyZXBsYWNlbWVudCI6ICJZb3UgdGhlcmU/IiwKLSAgICAgICAg
ICAgICAgICAidHlwZSI6ICJyZXBsYWNlbWVudCIsCi0gICAgICAgICAgICAgICAgImZyb20iOiAw
LAotICAgICAgICAgICAgICAgICJ0byI6IDMKLSAgICAgICAgICAgIH0KKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRTcGVsbENoZWNrZXJSZXN1bHRzKHsKKyAgICAgICAgICAgICJZVD8iOiBbCisgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAicmVwbGFjZW1lbnQiOiAiWW91IHRo
ZXJlPyIsCisgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInJlcGxhY2VtZW50IiwKKyAgICAg
ICAgICAgICAgICAgICAgImZyb20iOiAwLAorICAgICAgICAgICAgICAgICAgICAidG8iOiAzCisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJZVD9cbiI6IFsK
KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJyZXBsYWNlbWVudCI6ICJZ
b3UgdGhlcmU/IiwKKyAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAicmVwbGFjZW1lbnQiLAor
ICAgICAgICAgICAgICAgICAgICAiZnJvbSI6IDAsCisgICAgICAgICAgICAgICAgICAgICJ0byI6
IDMKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCiAgICAgICAgIH0pOwogICAgIH0K
IAo=
</data>
<flag name="review"
          id="362174"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344135</attachid>
            <date>2018-07-02 14:14:47 -0700</date>
            <delta_ts>2018-07-02 15:04:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-187253-20180702141446.patch</filename>
            <type>text/plain</type>
            <size>30455</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNDIxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGJlNzEzM2Y4YTkwNTU5OWZmYTdlZjI3N2JkN2U0Mjhm
ZmQyNDU1OS4uMWJmMWZhNWVkMGJmNGUyZDIzNWRkMWFlMmNlODMyMjEyZDA1YjhhNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDE4LTA3LTAyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtXSzFdIGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIGlzIGZhaWxpbmcg
b24gcmVjZW50IGJ1aWxkcyBvZiBtYWNPUyBNb2phdmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzI1MworCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgRW5oYW5jZXMgYW5kIHJlZmFjdG9ycyBMYXlvdXRUZXN0U3Bl
bGxDaGVja2VyLCB3aGljaCB3YXMgaW50cm9kdWNlZCBpbiByMjMzNDEyLgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChzZXRTcGVsbENoZWNrZXJS
ZXN1bHRzQ2FsbGJhY2spOgorCisgICAgICAgIFJlbmFtZSBzZXRTcGVsbENoZWNrZXJUZXh0UmVw
bGFjZW1lbnRzIHRvIHNldFNwZWxsQ2hlY2tlclJlc3VsdHMuCisKKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgIChzZXRTcGVsbENoZWNrZXJUZXh0UmVwbGFj
ZW1lbnRzQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToK
KyAgICAgICAgKFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlclJlc3VsdHMpOgorICAgICAgICAo
VGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyVGV4dFJlcGxhY2VtZW50cyk6IERlbGV0ZWQuCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAo
VGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cyk6CisgICAgICAgIChUZXN0UnVubmVy
OjpzZXRTcGVsbENoZWNrZXJUZXh0UmVwbGFjZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKiBU
ZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIuaDoKKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIubW06CisgICAg
ICAgICgtW0xheW91dFRlc3RUZXh0Q2hlY2tpbmdSZXN1bHQgaW5pdFdpdGhUeXBlOnJhbmdlOnJl
cGxhY2VtZW50OmRldGFpbHM6XSk6CisgICAgICAgICgtW0xheW91dFRlc3RUZXh0Q2hlY2tpbmdS
ZXN1bHQgZ3JhbW1hckRldGFpbHNdKToKKyAgICAgICAgKC1bTGF5b3V0VGVzdFNwZWxsQ2hlY2tl
ciByZXNldF0pOgorICAgICAgICAoLVtMYXlvdXRUZXN0U3BlbGxDaGVja2VyIHJlc3VsdHNdKToK
KyAgICAgICAgKC1bTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciBzZXRSZXN1bHRzOl0pOgorICAgICAg
ICAoLVtMYXlvdXRUZXN0U3BlbGxDaGVja2VyIHNldFJlc3VsdHNGcm9tSlNPYmplY3Q6aW5Db250
ZXh0Ol0pOgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBwYXNzaW5nIGluIGEgbGlzdCBvZiBn
cmFtbWFyIGNvcnJlY3Rpb24gZGV0YWlsIHJhbmdlcy4gTmVjZXNzYXJ5IGZvciBzaW11bGF0aW5n
IGdyYW1tYXIgZXJyb3JzLgorCisgICAgICAgICgtW0xheW91dFRlc3RTcGVsbENoZWNrZXIgY2hl
Y2tTdHJpbmc6cmFuZ2U6dHlwZXM6b3B0aW9uczppblNwZWxsRG9jdW1lbnRXaXRoVGFnOm9ydGhv
Z3JhcGh5OndvcmRDb3VudDpdKToKKworICAgICAgICBUd2Vha2VkIHRvIGFsd2F5cyBjYWxsIHRo
ZSBzdXBlcmNsYXNzIG1ldGhvZC4gVGhpcyBlbnN1cmVzIHRoYXQgd2Ugc2V0IHRoZSBgb3J0aG9n
cmFwaHlgIGFuZCBgd29yZENvdW50YAorICAgICAgICBvdXRwb2ludGVycyBpZiBhcHBsaWNhYmxl
LgorCisgICAgICAgICgtW0xheW91dFRlc3RTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmc6cmFuZ2U6dHlwZXM6b3B0aW9uczppblNwZWxsRG9jdW1lbnRXaXRoVGFnOmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHNpbXVsYXRpbmcgYXN5
bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nLgorCisgICAgICAgICgtW0xheW91dFRlc3RUZXh0Q2hl
Y2tpbmdSZXN1bHQgaW5pdFdpdGhUeXBlOnJhbmdlOnJlcGxhY2VtZW50Ol0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtMYXlvdXRUZXN0U3BlbGxDaGVja2VyIHJlcGxhY2VtZW50c10pOiBEZWxldGVk
LgorICAgICAgICAoLVtMYXlvdXRUZXN0U3BlbGxDaGVja2VyIHNldFJlcGxhY2VtZW50czpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciBzZXRSZXBsYWNlbWVu
dHNGcm9tSlNPYmplY3Q6aW5Db250ZXh0Ol0pOiBEZWxldGVkLgorCiAyMDE4LTA3LTAyICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBBZGQgdG91
Y2ggc3VwcG9ydCB0byBXaW5kb3dWaWV3QmFja2VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcAppbmRleCA3ZThlYzliZDQ1YjBiNzVmNGU4ZTkyNmJhNWM3ZDYzOGU2MjZlNDYzLi5hNWMw
ZDgwOWRjMzBiNjExY2I0MzMyZmI2OTBlNmVkM2VhOGMzYmE5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcApAQCAtMTc4OCwxMyArMTc4OCwxMyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTcGVsbENoZWNrZXJMb2dnaW5nRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKUwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3Rh
dGljIEpTVmFsdWVSZWYgc2V0U3BlbGxDaGVja2VyVGV4dFJlcGxhY2VtZW50c0NhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldFNwZWxsQ2hl
Y2tlclJlc3VsdHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
aWYgKGFyZ3VtZW50Q291bnQgPCAxKQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CiAKICAgICBhdXRvKiBydW5uZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVy
Kj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBydW5uZXItPnNldFNwZWxs
Q2hlY2tlclRleHRSZXBsYWNlbWVudHMoY29udGV4dCwgSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQs
IGFyZ3VtZW50c1swXSwgbnVsbHB0cikpOworICAgIHJ1bm5lci0+c2V0U3BlbGxDaGVja2VyUmVz
dWx0cyhjb250ZXh0LCBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwgYXJndW1lbnRzWzBdLCBudWxs
cHRyKSk7CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCkBA
IC0yMjY1LDcgKzIyNjUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNG
dW5jdGlvbnMoKQogICAgICAgICB7ICJydW5VSVNjcmlwdCIsIHJ1blVJU2NyaXB0Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAiaW1hZ2VDb3VudEluR2VuZXJhbFBhc3RlYm9hcmQiLCBpbWFn
ZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNl
dFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVkIiwgc2V0U3BlbGxDaGVja2VyTG9nZ2luZ0VuYWJs
ZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTcGVsbENoZWNrZXJUZXh0UmVwbGFj
ZW1lbnRzIiwgc2V0U3BlbGxDaGVja2VyVGV4dFJlcGxhY2VtZW50c0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CisgICAgICAgIHsgInNldFNwZWxsQ2hlY2tlclJlc3VsdHMiLCBzZXRTcGVsbENoZWNrZXJSZXN1
bHRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0T3BlblBhbmVsRmlsZXMiLCBzZXRP
cGVuUGFuZWxGaWxlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImZvcmNlSW1tZWRpYXRl
Q29tcGxldGlvbiIsIGZvcmNlSW1tZWRpYXRlQ29tcGxldGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgMCwgMCwgMCB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggZGJmMTRm
ZWI2MTc4YmNhZDY3OTZhMDFjNDQ1N2FiMjViY2QyMjFjYi4uNGI1MDI0NWM3NWE1YzIxMjA5ZjEy
MDkwN2NmMDRmMGI4OTliZWVkZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMzc2
LDcgKzM3Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGR1bXBKU0NvbnNvbGVMb2dJblN0ZEVycigp
IGNvbnN0IHsgcmV0dXJuIG1fZHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyOyB9CiAKICAgICB2b2lk
IHNldFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U3BlbGxD
aGVja2VyVGV4dFJlcGxhY2VtZW50cyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIHJlcGxhY2Vt
ZW50cyk7CisgICAgdm9pZCBzZXRTcGVsbENoZWNrZXJSZXN1bHRzKEpTQ29udGV4dFJlZiwgSlNP
YmplY3RSZWYgcmVzdWx0cyk7CiAKICAgICBjb25zdCBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4m
IG9wZW5QYW5lbEZpbGVzKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuUGFuZWxGaWxlczsgfQogICAg
IHZvaWQgc2V0T3BlblBhbmVsRmlsZXMoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggZGMzMzJhZTUzOWMyZGUx
NzdmMTQwYzA2ZGQzZjE5ZGQ2MDA3MmU3YS4uMWY4YTU0YTdjNWE1Zjc2YjNmMGJmZjhkZjhlNjE3
MDIyN2U3NDhkYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5u
ZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0K
QEAgLTIxOSwxMiArMjE5LDEyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyTG9n
Z2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U3BlbGxDaGVja2VyVGV4dFJlcGxhY2VtZW50cyhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgcmVwbGFjZW1lbnRzKQordm9pZCBUZXN0UnVubmVyOjpzZXRTcGVsbENoZWNrZXJS
ZXN1bHRzKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiByZXN1bHRzKQogewogI2lm
IFBMQVRGT1JNKE1BQykKLSAgICBbW0xheW91dFRlc3RTcGVsbENoZWNrZXIgY2hlY2tlcl0gc2V0
UmVwbGFjZW1lbnRzRnJvbUpTT2JqZWN0OnJlcGxhY2VtZW50cyBpbkNvbnRleHQ6Y29udGV4dF07
CisgICAgW1tMYXlvdXRUZXN0U3BlbGxDaGVja2VyIGNoZWNrZXJdIHNldFJlc3VsdHNGcm9tSlNP
YmplY3Q6cmVzdWx0cyBpbkNvbnRleHQ6Y29udGV4dF07CiAjZWxzZQotICAgIFVOVVNFRF9QQVJB
TShyZXBsYWNlbWVudHMpOworICAgIFVOVVNFRF9QQVJBTShyZXN1bHRzKTsKICAgICBVTlVTRURf
UEFSQU0oY29udGV4dCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
UnVubmVyV2luLmNwcAppbmRleCA3ODAzMzMxMTZhYWQwZDU5MzlmODc0NmY4MDJlMjc4NTZkYjlk
YmEyLi5jMWRhOTE5ZWQ3ZjM0ZGM0MGI1ZjM2YjY5NzQ4MTc3YTI2YjBmYmQ2IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC0xNDA3LDcgKzE0MDcsNyBA
QCB2b2lkIFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlckxvZ2dpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCkKICAgICBmcHJpbnRmKHRlc3RSZXN1bHQsICJFUlJPUjogVGVzdFJ1bm5lcjo6c2V0U3Bl
bGxDaGVja2VyTG9nZ2luZ0VuYWJsZWQoKSBub3QgaW1wbGVtZW50ZWRcbiIpOwogfQogCi12b2lk
IFRlc3RSdW5uZXI6OnNldFNwZWxsQ2hlY2tlclRleHRSZXBsYWNlbWVudHMoSlNDb250ZXh0UmVm
LCBKU09iamVjdFJlZikKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cyhK
U0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmKQogewotICAgIGZwcmludGYodGVzdFJlc3VsdCwgIkVS
Uk9SOiBUZXN0UnVubmVyOjpzZXRTcGVsbENoZWNrZXJUZXh0UmVwbGFjZW1lbnRzKCkgbm90IGlt
cGxlbWVudGVkXG4iKTsKKyAgICBmcHJpbnRmKHRlc3RSZXN1bHQsICJFUlJPUjogVGVzdFJ1bm5l
cjo6c2V0U3BlbGxDaGVja2VyUmVzdWx0cygpIG5vdCBpbXBsZW1lbnRlZFxuIik7CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNr
ZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tl
ci5oCmluZGV4IGMwN2NlN2ZlMmM3MTUyODE1MzQxOGYwMDdkYWQ3ZGU2NDRhMzFlOWEuLmQ3NDZm
Njc4YTY4NzVhYjQyMjZhODFmZWZhMGMyMTk0MmQ0YmZiZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oCkBAIC0zNCwx
NyArMzQsMTkgQEAKIAogQGNsYXNzIExheW91dFRlc3RUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAKK3Vz
aW5nIFRleHRDaGVja2luZ1Jlc3VsdHNEaWN0aW9uYXJ5ID0gTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIE5TQXJyYXk8TGF5b3V0VGVzdFRleHRDaGVja2luZ1Jlc3VsdCAqPiAqPjsKKwogQGludGVy
ZmFjZSBMYXlvdXRUZXN0U3BlbGxDaGVja2VyIDogTlNTcGVsbENoZWNrZXIgewogQHByaXZhdGUK
LSAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIExheW91dFRlc3RUZXh0Q2hl
Y2tpbmdSZXN1bHQgKj4+IF9yZXBsYWNlbWVudHM7CisgICAgUmV0YWluUHRyPFRleHRDaGVja2lu
Z1Jlc3VsdHNEaWN0aW9uYXJ5PiBfcmVzdWx0czsKICAgICBCT09MIF9zcGVsbENoZWNrZXJMb2dn
aW5nRW5hYmxlZDsKIH0KIAogKyAoaW5zdGFuY2V0eXBlKWNoZWNrZXI7CiArICh2b2lkKXVuaW5z
dGFsbEFuZFJlc2V0OwogCi0tICh2b2lkKXNldFJlcGxhY2VtZW50c0Zyb21KU09iamVjdDooSlNP
YmplY3RSZWYpcmVwbGFjZW1lbnRzIGluQ29udGV4dDooSlNDb250ZXh0UmVmKWNvbnRleHQ7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIExheW91
dFRlc3RUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKnJlcGxhY2VtZW50czsKKy0gKHZvaWQpc2V0UmVz
dWx0c0Zyb21KU09iamVjdDooSlNPYmplY3RSZWYpcmVzdWx0c09iamVjdCBpbkNvbnRleHQ6KEpT
Q29udGV4dFJlZiljb250ZXh0OworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIFRleHRDaGVj
a2luZ1Jlc3VsdHNEaWN0aW9uYXJ5ICpyZXN1bHRzOwogQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgc3BlbGxDaGVja2VyTG9nZ2luZ0VuYWJsZWQ7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbQppbmRleCAz
NWY4NjViOGE5NTRkNTJlMzg2MWNjNjE2M2NhOWU2MzA5MzIwNjRhLi4yMTc1YTAxYmJiZGM0MTdj
NTc5MTZjZmZjZGNjMjMwNTkwZmY4NGEzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIubW0KKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tCkBAIC0yOSw5ICsyOSwxMiBA
QAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIuaD4KICNpbXBvcnQgPG9iamMv
cnVudGltZS5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9CbG9j
a1B0ci5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogCit1c2luZyBUZXh0Q2hlY2tpbmdDb21wbGV0
aW9uSGFuZGxlciA9IHZvaWQoXikoTlNJbnRlZ2VyLCBOU0FycmF5PE5TVGV4dENoZWNraW5nUmVz
dWx0ICo+ICosIE5TT3J0aG9ncmFwaHkgKiwgTlNJbnRlZ2VyKTsKKwogc3RhdGljIExheW91dFRl
c3RTcGVsbENoZWNrZXIgKmdsb2JhbFNwZWxsQ2hlY2tlciA9IG5pbDsKIHN0YXRpYyBCT09MIGhh
c1N3aXp6bGVkTGF5b3V0VGVzdFNwZWxsQ2hlY2tlciA9IE5POwogc3RhdGljIElNUCBnbG9iYWxs
eVN3aXp6bGVkU2hhcmVkU3BlbGxDaGVja2VySW1wbGVtZW50YXRpb247CkBAIC0xMTYsMjUgKzEx
OSwzMiBAQCBAcHJpdmF0ZQogICAgIFJldGFpblB0cjxOU1N0cmluZz4gX3JlcGxhY2VtZW50Owog
ICAgIE5TVGV4dENoZWNraW5nVHlwZSBfdHlwZTsKICAgICBOU1JhbmdlIF9yYW5nZTsKKyAgICBS
ZXRhaW5QdHI8TlNBcnJheTxOU0RpY3Rpb25hcnkgKj4+IF9kZXRhaWxzOwogfQogCi0tIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhUeXBlOihOU1RleHRDaGVja2luZ1R5cGUpdHlwZSByYW5nZTooTlNS
YW5nZSlyYW5nZSByZXBsYWNlbWVudDooTlNTdHJpbmcgKilyZXBsYWNlbWVudDsKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aFR5cGU6KE5TVGV4dENoZWNraW5nVHlwZSl0eXBlIHJhbmdlOihOU1Jh
bmdlKXJhbmdlIHJlcGxhY2VtZW50OihOU1N0cmluZyAqKXJlcGxhY2VtZW50IGRldGFpbHM6KE5T
QXJyYXk8TlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqPiAqKWRldGFpbHM7CiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBMYXlvdXRUZXN0VGV4dENoZWNraW5nUmVzdWx0CiAKLS0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aFR5cGU6KE5TVGV4dENoZWNraW5nVHlwZSl0eXBlIHJhbmdlOihOU1Jh
bmdlKXJhbmdlIHJlcGxhY2VtZW50OihOU1N0cmluZyAqKXJlcGxhY2VtZW50CistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhUeXBlOihOU1RleHRDaGVja2luZ1R5cGUpdHlwZSByYW5nZTooTlNSYW5n
ZSlyYW5nZSByZXBsYWNlbWVudDooTlNTdHJpbmcgKilyZXBsYWNlbWVudCBkZXRhaWxzOihOU0Fy
cmF5PE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKj4gKilkZXRhaWxzCiB7CiAgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBfdHlw
ZSA9IHR5cGU7CiAgICAgX3JhbmdlID0gcmFuZ2U7Ci0gICAgX3JlcGxhY2VtZW50ID0gcmVwbGFj
ZW1lbnQ7CisgICAgX3JlcGxhY2VtZW50ID0gYWRvcHROUyhyZXBsYWNlbWVudC5jb3B5KTsKKyAg
ICBfZGV0YWlscyA9IGFkb3B0TlMoZGV0YWlscy5jb3B5KTsKIAogICAgIHJldHVybiBzZWxmOwog
fQogCistIChOU0FycmF5PE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKj4gKilncmFtbWFy
RGV0YWlscworeworICAgIHJldHVybiBfZGV0YWlscy5nZXQoKTsKK30KKwogLSAoTlNSYW5nZSly
YW5nZQogewogICAgIHJldHVybiBfcmFuZ2U7CkBAIC0xODUsNTUgKzE5NSw4MCBAQCArICh2b2lk
KXVuaW5zdGFsbEFuZFJlc2V0CiAKIC0gKHZvaWQpcmVzZXQKIHsKLSAgICBzZWxmLnJlcGxhY2Vt
ZW50cyA9IG5pbDsKKyAgICBzZWxmLnJlc3VsdHMgPSBuaWw7CiAgICAgc2VsZi5zcGVsbENoZWNr
ZXJMb2dnaW5nRW5hYmxlZCA9IE5POwogfQogCi0tIChOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwg
TGF5b3V0VGVzdFRleHRDaGVja2luZ1Jlc3VsdCAqPiAqKXJlcGxhY2VtZW50cworLSAoVGV4dENo
ZWNraW5nUmVzdWx0c0RpY3Rpb25hcnkgKilyZXN1bHRzCiB7Ci0gICAgcmV0dXJuIF9yZXBsYWNl
bWVudHMuZ2V0KCk7CisgICAgcmV0dXJuIF9yZXN1bHRzLmdldCgpOwogfQogCi0tICh2b2lkKXNl
dFJlcGxhY2VtZW50czooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIExheW91dFRlc3RUZXh0Q2hl
Y2tpbmdSZXN1bHQgKj4gKilyZXBsYWNlbWVudHMKKy0gKHZvaWQpc2V0UmVzdWx0czooVGV4dENo
ZWNraW5nUmVzdWx0c0RpY3Rpb25hcnkgKilyZXN1bHRzCiB7Ci0gICAgX3JlcGxhY2VtZW50cyA9
IGFkb3B0TlMocmVwbGFjZW1lbnRzLmNvcHkpOworICAgIF9yZXN1bHRzID0gYWRvcHROUyhyZXN1
bHRzLmNvcHkpOwogfQogCi0tICh2b2lkKXNldFJlcGxhY2VtZW50c0Zyb21KU09iamVjdDooSlNP
YmplY3RSZWYpcmVwbGFjZW1lbnRzIGluQ29udGV4dDooSlNDb250ZXh0UmVmKWNvbnRleHQKKy0g
KHZvaWQpc2V0UmVzdWx0c0Zyb21KU09iamVjdDooSlNPYmplY3RSZWYpcmVzdWx0c09iamVjdCBp
bkNvbnRleHQ6KEpTQ29udGV4dFJlZiljb250ZXh0CiB7CiAgICAgYXV0byBmcm9tUHJvcGVydHlO
YW1lID0gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImZyb20iKSk7CiAgICAg
YXV0byB0b1Byb3BlcnR5TmFtZSA9IGFkb3B0KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJ0byIpKTsKICAgICBhdXRvIHR5cGVQcm9wZXJ0eU5hbWUgPSBhZG9wdChKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygidHlwZSIpKTsKICAgICBhdXRvIHJlcGxhY2VtZW50UHJvcGVydHlO
YW1lID0gYWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoInJlcGxhY2VtZW50Iikp
OwotICAgIGF1dG8gcHJvcGVydGllcyA9IEpTT2JqZWN0Q29weVByb3BlcnR5TmFtZXMoY29udGV4
dCwgcmVwbGFjZW1lbnRzKTsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0TlMoW1tOU011dGFibGVE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZXRhaWxzUHJvcGVydHlOYW1lID0g
YWRvcHQoSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImRldGFpbHMiKSk7CisgICAgYXV0
byByZXN1bHRzID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsK
KworICAgIC8vIEZJWE1FOiBVc2luZyB0aGUgT2JqZWN0aXZlLUMgQVBJIHdvdWxkIG1ha2UgdGhp
cyBsb2dpYyBlYXNpZXIgdG8gZm9sbG93LgorICAgIGF1dG8gcHJvcGVydGllcyA9IEpTT2JqZWN0
Q29weVByb3BlcnR5TmFtZXMoY29udGV4dCwgcmVzdWx0c09iamVjdCk7CiAgICAgZm9yIChzaXpl
X3QgaW5kZXggPSAwOyBpbmRleCA8IEpTUHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChwcm9wZXJ0
aWVzKTsgKytpbmRleCkgewotICAgICAgICBKU1N0cmluZ1JlZiB3b3JkVG9SZXBsYWNlID0gSlNQ
cm9wZXJ0eU5hbWVBcnJheUdldE5hbWVBdEluZGV4KHByb3BlcnRpZXMsIGluZGV4KTsKLSAgICAg
ICAgSlNPYmplY3RSZWYgcmVwbGFjZW1lbnQgPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwgSlNP
YmplY3RHZXRQcm9wZXJ0eShjb250ZXh0LCByZXBsYWNlbWVudHMsIHdvcmRUb1JlcGxhY2UsIG51
bGxwdHIpLCBudWxscHRyKTsKLSAgICAgICAgbG9uZyBmcm9tVmFsdWUgPSBscm91bmRsKEpTVmFs
dWVUb051bWJlcihjb250ZXh0LCBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHJlcGxhY2Vt
ZW50LCBmcm9tUHJvcGVydHlOYW1lLmdldCgpLCBudWxscHRyKSwgbnVsbHB0cikpOwotICAgICAg
ICBsb25nIHRvVmFsdWUgPSBscm91bmRsKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBKU09iamVj
dEdldFByb3BlcnR5KGNvbnRleHQsIHJlcGxhY2VtZW50LCB0b1Byb3BlcnR5TmFtZS5nZXQoKSwg
bnVsbHB0ciksIG51bGxwdHIpKTsKLSAgICAgICAgYXV0byB0eXBlVmFsdWUgPSBhZG9wdChKU1Zh
bHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgcmVw
bGFjZW1lbnQsIHR5cGVQcm9wZXJ0eU5hbWUuZ2V0KCksIG51bGxwdHIpLCBudWxscHRyKSk7Ci0g
ICAgICAgIGF1dG8gcmVwbGFjZW1lbnRWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4
dCwgcmVwbGFjZW1lbnQsIHJlcGxhY2VtZW50UHJvcGVydHlOYW1lLmdldCgpLCBudWxscHRyKTsK
LSAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiByZXBsYWNlbWVudFRleHQ7Ci0gICAgICAg
IGlmICghSlNWYWx1ZUlzVW5kZWZpbmVkKGNvbnRleHQsIHJlcGxhY2VtZW50VmFsdWUpKSB7Ci0g
ICAgICAgICAgICBhdXRvIHJlcGxhY2VtZW50SlNTdHJpbmcgPSBhZG9wdChKU1ZhbHVlVG9TdHJp
bmdDb3B5KGNvbnRleHQsIHJlcGxhY2VtZW50VmFsdWUsIG51bGxwdHIpKTsKLSAgICAgICAgICAg
IHJlcGxhY2VtZW50VGV4dCA9IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgcmVwbGFjZW1lbnRKU1N0cmluZy5nZXQoKSkpOworICAgICAgICBKU1N0cmlu
Z1JlZiB0ZXh0VG9DaGVjayA9IEpTUHJvcGVydHlOYW1lQXJyYXlHZXROYW1lQXRJbmRleChwcm9w
ZXJ0aWVzLCBpbmRleCk7CisgICAgICAgIEpTT2JqZWN0UmVmIHJlc3VsdHNBcnJheSA9IEpTVmFs
dWVUb09iamVjdChjb250ZXh0LCBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHJlc3VsdHNP
YmplY3QsIHRleHRUb0NoZWNrLCBudWxscHRyKSwgbnVsbHB0cik7CisgICAgICAgIGF1dG8gcmVz
dWx0c0FycmF5UHJvcGVydHlOYW1lcyA9IEpTT2JqZWN0Q29weVByb3BlcnR5TmFtZXMoY29udGV4
dCwgcmVzdWx0c0FycmF5KTsKKyAgICAgICAgYXV0byByZXN1bHRzRm9yV29yZCA9IGFkb3B0TlMo
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgICAgICBmb3IgKHNpemVfdCByZXN1
bHRJbmRleCA9IDA7IHJlc3VsdEluZGV4IDwgSlNQcm9wZXJ0eU5hbWVBcnJheUdldENvdW50KHJl
c3VsdHNBcnJheVByb3BlcnR5TmFtZXMpOyArK3Jlc3VsdEluZGV4KSB7CisgICAgICAgICAgICBh
dXRvIHJlc3VsdHNPYmplY3QgPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwgSlNPYmplY3RHZXRQ
cm9wZXJ0eUF0SW5kZXgoY29udGV4dCwgcmVzdWx0c0FycmF5LCByZXN1bHRJbmRleCwgbnVsbHB0
ciksIG51bGxwdHIpOworICAgICAgICAgICAgbG9uZyBmcm9tVmFsdWUgPSBscm91bmRsKEpTVmFs
dWVUb051bWJlcihjb250ZXh0LCBKU09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHJlc3VsdHNP
YmplY3QsIGZyb21Qcm9wZXJ0eU5hbWUuZ2V0KCksIG51bGxwdHIpLCBudWxscHRyKSk7CisgICAg
ICAgICAgICBsb25nIHRvVmFsdWUgPSBscm91bmRsKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBK
U09iamVjdEdldFByb3BlcnR5KGNvbnRleHQsIHJlc3VsdHNPYmplY3QsIHRvUHJvcGVydHlOYW1l
LmdldCgpLCBudWxscHRyKSwgbnVsbHB0cikpOworICAgICAgICAgICAgYXV0byB0eXBlVmFsdWUg
PSBhZG9wdChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIEpTT2JqZWN0R2V0UHJvcGVydHko
Y29udGV4dCwgcmVzdWx0c09iamVjdCwgdHlwZVByb3BlcnR5TmFtZS5nZXQoKSwgbnVsbHB0ciks
IG51bGxwdHIpKTsKKyAgICAgICAgICAgIGF1dG8gcmVwbGFjZW1lbnRWYWx1ZSA9IEpTT2JqZWN0
R2V0UHJvcGVydHkoY29udGV4dCwgcmVzdWx0c09iamVjdCwgcmVwbGFjZW1lbnRQcm9wZXJ0eU5h
bWUuZ2V0KCksIG51bGxwdHIpOworICAgICAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBy
ZXBsYWNlbWVudFRleHQ7CisgICAgICAgICAgICBpZiAoIUpTVmFsdWVJc1VuZGVmaW5lZChjb250
ZXh0LCByZXBsYWNlbWVudFZhbHVlKSkgeworICAgICAgICAgICAgICAgIGF1dG8gcmVwbGFjZW1l
bnRKU1N0cmluZyA9IGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgcmVwbGFjZW1l
bnRWYWx1ZSwgbnVsbHB0cikpOworICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50VGV4dCA9IGFk
b3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmVwbGFjZW1l
bnRKU1N0cmluZy5nZXQoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBkZXRh
aWxzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgICAg
ICBhdXRvIGRldGFpbHNWYWx1ZSA9IEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgcmVzdWx0
c09iamVjdCwgZGV0YWlsc1Byb3BlcnR5TmFtZS5nZXQoKSwgbnVsbHB0cik7CisgICAgICAgICAg
ICBpZiAoIUpTVmFsdWVJc1VuZGVmaW5lZChjb250ZXh0LCBkZXRhaWxzVmFsdWUpKSB7CisgICAg
ICAgICAgICAgICAgYXV0byBkZXRhaWxzT2JqZWN0ID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQs
IGRldGFpbHNWYWx1ZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgYXV0byBkZXRhaWxzT2Jq
ZWN0UHJvcGVydGllcyA9IEpTT2JqZWN0Q29weVByb3BlcnR5TmFtZXMoY29udGV4dCwgZGV0YWls
c09iamVjdCk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgZGV0YWlsSW5kZXggPSAwOyBk
ZXRhaWxJbmRleCA8IEpTUHJvcGVydHlOYW1lQXJyYXlHZXRDb3VudChkZXRhaWxzT2JqZWN0UHJv
cGVydGllcyk7ICsrZGV0YWlsSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBkZXRh
aWwgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0pOworICAgICAg
ICAgICAgICAgICAgICBhdXRvIGRldGFpbE9iamVjdCA9IEpTVmFsdWVUb09iamVjdChjb250ZXh0
LCBKU09iamVjdEdldFByb3BlcnR5QXRJbmRleChjb250ZXh0LCBkZXRhaWxzT2JqZWN0LCBkZXRh
aWxJbmRleCwgbnVsbHB0ciksIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBsb25nIGZy
b20gPSBscm91bmRsKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBKU09iamVjdEdldFByb3BlcnR5
KGNvbnRleHQsIGRldGFpbE9iamVjdCwgZnJvbVByb3BlcnR5TmFtZS5nZXQoKSwgbnVsbHB0ciks
IG51bGxwdHIpKTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZyB0byA9IGxyb3VuZGwoSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsIEpTT2JqZWN0R2V0UHJvcGVydHkoY29udGV4dCwgZGV0YWlsT2Jq
ZWN0LCB0b1Byb3BlcnR5TmFtZS5nZXQoKSwgbnVsbHB0ciksIG51bGxwdHIpKTsKKyAgICAgICAg
ICAgICAgICAgICAgW2RldGFpbCBzZXRPYmplY3Q6W05TVmFsdWUgdmFsdWVXaXRoUmFuZ2U6TlNN
YWtlUmFuZ2UoZnJvbSwgdG8gLSBmcm9tKV0gZm9yS2V5Ok5TR3JhbW1hclJhbmdlXTsKKyAgICAg
ICAgICAgICAgICAgICAgW2RldGFpbHMgYWRkT2JqZWN0OmRldGFpbC5nZXQoKV07CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWxlYXNlKGRl
dGFpbHNPYmplY3RQcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFtyZXN1
bHRzRm9yV29yZCBhZGRPYmplY3Q6W1tbTGF5b3V0VGVzdFRleHRDaGVja2luZ1Jlc3VsdCBhbGxv
Y10gaW5pdFdpdGhUeXBlOm5zVGV4dENoZWNraW5nVHlwZShXVEZNb3ZlKHR5cGVWYWx1ZSkpIHJh
bmdlOk5TTWFrZVJhbmdlKGZyb21WYWx1ZSwgdG9WYWx1ZSAtIGZyb21WYWx1ZSkgcmVwbGFjZW1l
bnQ6KE5TU3RyaW5nICopcmVwbGFjZW1lbnRUZXh0LmdldCgpIGRldGFpbHM6ZGV0YWlscy5nZXQo
KV0gYXV0b3JlbGVhc2VdXTsKICAgICAgICAgfQotICAgICAgICBhdXRvIHNwZWxsQ2hlY2tSZXN1
bHQgPSBhZG9wdE5TKFtbTGF5b3V0VGVzdFRleHRDaGVja2luZ1Jlc3VsdCBhbGxvY10gaW5pdFdp
dGhUeXBlOm5zVGV4dENoZWNraW5nVHlwZShXVEZNb3ZlKHR5cGVWYWx1ZSkpIHJhbmdlOk5TTWFr
ZVJhbmdlKGZyb21WYWx1ZSwgdG9WYWx1ZSAtIGZyb21WYWx1ZSkgcmVwbGFjZW1lbnQ6KE5TU3Ry
aW5nICopcmVwbGFjZW1lbnRUZXh0LmdldCgpXSk7Ci0gICAgICAgIGF1dG8gY2ZXb3JkVG9SZXBs
YWNlID0gYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB3
b3JkVG9SZXBsYWNlKSk7Ci0gICAgICAgIFtyZXN1bHQgc2V0T2JqZWN0OnNwZWxsQ2hlY2tSZXN1
bHQuZ2V0KCkgZm9yS2V5OihOU1N0cmluZyAqKWNmV29yZFRvUmVwbGFjZS5nZXQoKV07CisgICAg
ICAgIGF1dG8gY2ZUZXh0VG9DaGVjayA9IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgdGV4dFRvQ2hlY2spKTsKKyAgICAgICAgW3Jlc3VsdHMgc2V0T2Jq
ZWN0OnJlc3VsdHNGb3JXb3JkLmdldCgpIGZvcktleTooTlNTdHJpbmcgKiljZlRleHRUb0NoZWNr
LmdldCgpXTsKKyAgICAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlbGVhc2UocmVzdWx0c0FycmF5
UHJvcGVydHlOYW1lcyk7CiAgICAgfQogICAgIEpTUHJvcGVydHlOYW1lQXJyYXlSZWxlYXNlKHBy
b3BlcnRpZXMpOwogCi0gICAgX3JlcGxhY2VtZW50cyA9IFdURk1vdmUocmVzdWx0KTsKKyAgICBf
cmVzdWx0cyA9IFdURk1vdmUocmVzdWx0cyk7CiB9CiAKIC0gKE5TQXJyYXk8TlNUZXh0Q2hlY2tp
bmdSZXN1bHQgKj4gKiljaGVja1N0cmluZzooTlNTdHJpbmcgKilzdHJpbmdUb0NoZWNrIHJhbmdl
OihOU1JhbmdlKXJhbmdlIHR5cGVzOihOU1RleHRDaGVja2luZ1R5cGVzKWNoZWNraW5nVHlwZXMg
b3B0aW9uczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKW9wdGlvbnMgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzooTlNJbnRlZ2VyKXRhZyBvcnRob2dyYXBoeTooTlNPcnRob2dyYXBoeSAq
KilvcnRob2dyYXBoeSB3b3JkQ291bnQ6KE5TSW50ZWdlciAqKXdvcmRDb3VudAogewotICAgIGlm
IChhdXRvICpyZXN1bHQgPSBbX3JlcGxhY2VtZW50cyBvYmplY3RGb3JLZXk6c3RyaW5nVG9DaGVj
a10pCi0gICAgICAgIHJldHVybiBAWyByZXN1bHQgXTsKKyAgICBOU0FycmF5ICpyZXN1bHQgPSBb
c3VwZXIgY2hlY2tTdHJpbmc6c3RyaW5nVG9DaGVjayByYW5nZTpyYW5nZSB0eXBlczpjaGVja2lu
Z1R5cGVzIG9wdGlvbnM6b3B0aW9ucyBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOnRhZyBvcnRob2dy
YXBoeTpvcnRob2dyYXBoeSB3b3JkQ291bnQ6d29yZENvdW50XTsKKyAgICBpZiAoYXV0byAqb3Zl
cnJpZGVSZXN1bHQgPSBbX3Jlc3VsdHMgb2JqZWN0Rm9yS2V5OnN0cmluZ1RvQ2hlY2tdKQorICAg
ICAgICByZXR1cm4gb3ZlcnJpZGVSZXN1bHQ7CiAKLSAgICByZXR1cm4gW3N1cGVyIGNoZWNrU3Ry
aW5nOnN0cmluZ1RvQ2hlY2sgcmFuZ2U6cmFuZ2UgdHlwZXM6Y2hlY2tpbmdUeXBlcyBvcHRpb25z
Om9wdGlvbnMgaW5TcGVsbERvY3VtZW50V2l0aFRhZzp0YWcgb3J0aG9ncmFwaHk6b3J0aG9ncmFw
aHkgd29yZENvdW50OndvcmRDb3VudF07CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogLSAodm9p
ZClyZWNvcmRSZXNwb25zZTooTlNDb3JyZWN0aW9uUmVzcG9uc2UpcmVzcG9uc2UgdG9Db3JyZWN0
aW9uOihOU1N0cmluZyAqKWNvcnJlY3Rpb24gZm9yV29yZDooTlNTdHJpbmcgKil3b3JkIGxhbmd1
YWdlOihOU1N0cmluZyAqKWxhbmd1YWdlIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6KE5TSW50ZWdl
cil0YWcKQEAgLTI0NCw2ICsyNzksMTggQEAgLSAodm9pZClyZWNvcmRSZXNwb25zZTooTlNDb3Jy
ZWN0aW9uUmVzcG9uc2UpcmVzcG9uc2UgdG9Db3JyZWN0aW9uOihOU1N0cmluZyAqKWMKICAgICBb
c3VwZXIgcmVjb3JkUmVzcG9uc2U6cmVzcG9uc2UgdG9Db3JyZWN0aW9uOmNvcnJlY3Rpb24gZm9y
V29yZDp3b3JkIGxhbmd1YWdlOmxhbmd1YWdlIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6dGFnXTsK
IH0KIAorLSAoTlNJbnRlZ2VyKXJlcXVlc3RDaGVja2luZ09mU3RyaW5nOihOU1N0cmluZyAqKXN0
cmluZ1RvQ2hlY2sgcmFuZ2U6KE5TUmFuZ2UpcmFuZ2UgdHlwZXM6KE5TVGV4dENoZWNraW5nVHlw
ZXMpY2hlY2tpbmdUeXBlcyBvcHRpb25zOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICop
b3B0aW9ucyBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOihOU0ludGVnZXIpdGFnIGNvbXBsZXRpb25I
YW5kbGVyOihUZXh0Q2hlY2tpbmdDb21wbGV0aW9uSGFuZGxlciljb21wbGV0aW9uSGFuZGxlcgor
eworICAgIHJldHVybiBbc3VwZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6c3RyaW5nVG9DaGVj
ayByYW5nZTpyYW5nZSB0eXBlczpjaGVja2luZ1R5cGVzIG9wdGlvbnM6b3B0aW9ucyBpblNwZWxs
RG9jdW1lbnRXaXRoVGFnOnRhZyBjb21wbGV0aW9uSGFuZGxlcjpbb3ZlcnJpZGVSZXN1bHQgPSBy
ZXRhaW5QdHIoW19yZXN1bHRzIG9iamVjdEZvcktleTpzdHJpbmdUb0NoZWNrXSksIGNvbXBsZXRp
b24gPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpLCBzdHJpbmdUb0NoZWNrID0gcmV0
YWluUHRyKHN0cmluZ1RvQ2hlY2spXSAoTlNJbnRlZ2VyIHNlcXVlbmNlTnVtYmVyLCBOU0FycmF5
PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICpyZXN1bHQsIE5TT3J0aG9ncmFwaHkgKm9ydGhvZ3Jh
cGh5LCBOU0ludGVnZXIgd29yZENvdW50KSB7CisgICAgICAgIGlmIChvdmVycmlkZVJlc3VsdCkg
eworICAgICAgICAgICAgY29tcGxldGlvbihzZXF1ZW5jZU51bWJlciwgb3ZlcnJpZGVSZXN1bHQu
Z2V0KCksIG9ydGhvZ3JhcGh5LCB3b3JkQ291bnQpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgY29tcGxldGlvbihzZXF1ZW5jZU51bWJlciwgcmVzdWx0LCBvcnRo
b2dyYXBoeSwgd29yZENvdW50KTsKKyAgICB9XTsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gUExB
VEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDU5Njg0Nzk5NTdmZmE1ZDIzNWFhYjExMjY4MzU3YTUwN2UzNmEz
MWYuLmMyYzE0M2YzYjEzOWZmZjMwOGZmMzFhOTRmZDYxZjQ5NWUzNjdkNDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxOC0wNy0wMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbV0sxXSBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbCBpcyBm
YWlsaW5nIG9uIHJlY2VudCBidWlsZHMgb2YgbWFjT1MgTW9qYXZlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcyNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEluIHJlY2VudCBidWlsZHMgb2YgbWFjT1MgTW9q
YXZlLCBOU1NwZWxsQ2hlY2tlciByZXR1cm5zIGJvdGggZ3JhbW1hciBhbmQgc3BlbGxpbmcgZXJy
b3JzIHdoZW4gYXNrZWQgdG8gYW5hbHl6ZQorICAgICAgICB0aGUgc3RyaW5nICJJIGhhdmUgYSBp
c3N1ZS4iLiBXaGlsZSBhcmd1YWJseSBjb3JyZWN0LCB0aGUgY2hhbmdlIGNhdXNlcyB0aGlzIGV4
aXN0aW5nIGxheW91dCB0ZXN0IHRvIGZhaWwgZHVlCisgICAgICAgIHRvIG9uZSBvZiB0aGUgY2Fs
bHMgdG8gYHZlcmlmeVVuZXhwZWN0ZWRNYXJrZXJzYCBleHBlY3RpbmcgZWl0aGVyIGdyYW1tYXIg
bWFya2VycyBhbmQgbm90IHNwZWxsaW5nIG1hcmtlcnMsIG9yCisgICAgICAgIHZpY2UgdmVyc2Eu
CisKKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGNhbiBsZXZlcmFnZSB0aGUgbWVjaGFuaXNtIGFk
ZGVkIGluIHIyMzM0MTIgdG8gc2ltdWxhdGUgZGlmZmVyZW50IHJlc3VsdHMgZnJvbSB0aGUgcGxh
dGZvcm0KKyAgICAgICAgc3BlbGxjaGVja2VyLCBzdWNoIHRoYXQgdGhlIHRlc3Qgbm93IGV4ZXJj
aXNlcyBhbGwgY29tYmluYXRpb25zIG9mIGdyYW1tYXIgYW5kIHNwZWxsaW5nIGNvcnJlY3Rpb25z
IG9ic2VydmVkIG9uCisgICAgICAgIGVhY2ggbWFjT1MgcGxhdGZvcm0sIHJlZ2FyZGxlc3Mgb2Yg
dGhlIGFjdHVhbCBwbGF0Zm9ybSB3aGVyZSB0aGUgdGVzdCBpcyBiZWluZyBydW4uCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGVuaGFuY2VzIHRoZSBjYXBhYmlsaXRpZXMgb2YgYExheW91dFRl
c3RTcGVsbENoZWNrZXJgLiBTZWUgYFRvb2xzL0NoYW5nZUxvZ2AgZm9yIG1vcmUgZGV0YWlscy4K
KworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9z
cGVsbGluZy90ZXh0LXJlcGxhY2VtZW50LWFmdGVyLXR5cGluZy10by13b3JkLmh0bWw6CisKKyAg
ICAgICAgQWRqdXN0ZWQgZm9yIGEgcmVuYW1lZCBUZXN0UnVubmVyIG1ldGhvZC4KKwogMjAxOC0w
Ny0wMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBXUEUgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9tYXJrZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvbWFya2Vycy1leHBlY3RlZC50eHQKaW5kZXggNzkxYzlkZTgxMjVhMjBhNzE3MjEyMTJiNzdm
MjA3ZjNjNDYyZDRlMC4uOTIzNTY3M2ZhZTdjODcwZDhiM2E3M2Q4ZjcxNTM2NjhkZGM1OTU3MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMtZXhwZWN0ZWQu
dHh0CkBAIC0zLDYgKzMsMTggQEAgVGVzdHMgc3BlbGxpbmcgYW5kIGdyYW1tYXIgbWFya2VycyBm
b3IgbWlzc3BlbGxpbmdzLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKK0NoZWNraW5n
IGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNzdWUuJworUEFTUyBpbnRlcm5hbHMubWFya2VyUmFu
Z2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIs
IDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMg
ImEiCisKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNzdWUuJworUEFTUyBpbnRl
cm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxs
aW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBudWxsCitQQVNTIHJhbmdl
LnRvU3RyaW5nKCkgaXMgImEiCisKK0NoZWNraW5nIGZvciBpc3N1ZSBvbiAnSSBoYXZlIGEgaXNz
dWUuJworUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGls
ZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBkaWZmZXJlbnQgZnJvbSBu
dWxsCitQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMgImEiCisKIENoZWNraW5nIGZvciBpc3N1ZSBv
biAnSSBoYXZlIGEgaXNzdWUuJwogUEFTUyBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGVs
ZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDApIGJlY2FtZSBk
aWZmZXJlbnQgZnJvbSBudWxsCiBQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMgImEiCkBAIC0yMiw2
ICszNCw5IEBAIFBBU1MgcmFuZ2UudG9TdHJpbmcoKSBpcyAib3JhbmdlLHp6LGFwcGxlIgogQ2hl
Y2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAnSSBoYXZlIGEgaXNzdWUuJwogUEFTUyBpbnRl
cm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgb3Bwb3NpdGVNYXJr
ZXIpIGJlY2FtZSAwCiAKK0NoZWNraW5nIGZvciBubyBvdGhlciBpc3N1ZXMgb24gJ0kgaGF2ZSBh
IGlzc3VlLicKK1BBU1MgaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlbGVtZW50LmZpcnN0
Q2hpbGQsIG9wcG9zaXRlTWFya2VyKSBiZWNhbWUgMAorCiBDaGVja2luZyBmb3Igbm8gb3RoZXIg
aXNzdWVzIG9uICd6ei4nCiBQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZWxlbWVu
dC5maXJzdENoaWxkLCBvcHBvc2l0ZU1hcmtlcikgYmVjYW1lIDAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAppbmRleCA5NGI1Y2I3OTg5Yzk2ZjNiMzY3ZDYzOTM1
MGY3NGY3ZDE3ZTdlM2VjLi4zYTM1Y2FhNGYzODM2ZGRmMjJjNjU0YzA4N2NkNDIwMzFhNDE5Zjgy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbApAQCAtMjUsOSAr
MjUsMTAgQEAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7CiB9CiAKLWZ1bmN0aW9u
IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChwYXJlbnQpIHsKK2Z1bmN0aW9uIGNyZWF0ZUVkaXRhYmxl
RWxlbWVudChwYXJlbnQsIHRleHRDb250ZW50KSB7CiAgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKICAgICBlLnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwg
InRydWUiKTsKKyAgICBlLnRleHRDb250ZW50ID0gdGV4dENvbnRlbnQ7CiAgICAgZS5jbGFzc05h
bWUgPSAnZWRpdGluZyc7CiAKICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZSk7CkBAIC0zNiw1MiAr
MzcsNzcgQEAgZnVuY3Rpb24gY3JlYXRlRWRpdGFibGVFbGVtZW50KHBhcmVudCkgewogCiBmdW5j
dGlvbiB0eXBlVGV4dChlbGVtLCB0ZXh0KSB7CiAgICAgZWxlbS5mb2N1cygpOworICAgIHNlbGVj
dEFsbENvbW1hbmQoKTsKKyAgICBkZWxldGVDb21tYW5kKCk7CiAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0ZXh0Lmxlbmd0aDsgKytpKQogICAgICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCh0ZXh0
W2ldKTsKIH0KIAotdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250
YWluZXInKTsKK2NvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250
YWluZXInKTsKK2NvbnN0IGVsZW1lbnRXaXRoR3JhbW1hcklzc3VlID0gY3JlYXRlRWRpdGFibGVF
bGVtZW50KGNvbnRhaW5lciwgIkkgaGF2ZSBhIGlzc3VlLiIpOworY29uc3QgZWxlbWVudFdpdGhT
cGVsbGluZ0lzc3VlICA9IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChjb250YWluZXIsICJ6ei4iKTsK
K2NvbnN0IGVsZW1lbnRXaXRoR3JhbW1hckFuZFNwZWxsaW5nSXNzdWUgPSBjcmVhdGVFZGl0YWJs
ZUVsZW1lbnQoY29udGFpbmVyLCAib3JhbmdlLHp6LGFwcGxlLiIpOwogCi12YXIgZWxlbWVudFdp
dGhHcmFtbWFySXNzdWUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoY29udGFpbmVyKTsKLXR5cGVU
ZXh0KGVsZW1lbnRXaXRoR3JhbW1hcklzc3VlLCAnSSBoYXZlIGEgaXNzdWUuJyk7Ci0KLXZhciBl
bGVtZW50V2l0aFNwZWxsaW5nSXNzdWUgID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGNvbnRhaW5l
cik7Ci10eXBlVGV4dChlbGVtZW50V2l0aFNwZWxsaW5nSXNzdWUsICd6ei4nKTsKLQotdmFyIGVs
ZW1lbnRXaXRoR3JhbW1hckFuZFNwZWxsaW5nSXNzdWUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQo
Y29udGFpbmVyKTsKLXR5cGVUZXh0KGVsZW1lbnRXaXRoR3JhbW1hckFuZFNwZWxsaW5nSXNzdWUs
ICdvcmFuZ2UsenosYXBwbGUuJyk7Ci0KLXZhciBtaXNzcGVsbGluZ3MgPSBbCi0gICAgeyBtYXJr
ZXI6IGludGVybmFscy5zZW50ZW5jZVJldHJvQ29ycmVjdGlvbkVuYWJsZWQgPyAnc3BlbGxpbmcn
IDogJ2dyYW1tYXInLCAgaXNzdWU6ICdhJyB9LAorY29uc3QgbWlzc3BlbGxpbmdzID0gWworICAg
IHsgbWFya2VyOiAnc3BlbGxpbmcnLCAgaXNzdWU6ICdhJyB9LAorICAgIHsgbWFya2VyOiAnZ3Jh
bW1hcicsICBpc3N1ZTogJ2EnIH0sCisgICAgeyBtYXJrZXI6ICdncmFtbWFyJywgIGlzc3VlOiAn
SSBoYXZlIGEgaXNzdWUuJyB9LAogICAgIHsgbWFya2VyOiAnc3BlbGxpbmcnLCBpc3N1ZTogJ3p6
JyB9LAogICAgIHsgbWFya2VyOiAnZ3JhbW1hcicsICBpc3N1ZTogJ29yYW5nZSx6eixhcHBsZS4n
IH0sCiAgICAgeyBtYXJrZXI6ICdzcGVsbGluZycsICBpc3N1ZTogJ29yYW5nZSx6eixhcHBsZScg
fSwKIF07CiAKK2NvbnN0IHJlc3VsdHMgPSBbCisgICAgeyAidHlwZSI6ICJzcGVsbGluZyIsICJm
cm9tIjogNywgInRvIjogOCB9LAorICAgIHsKKyAgICAgICAgInR5cGUiOiAiZ3JhbW1hciIsCisg
ICAgICAgICJmcm9tIjogNywKKyAgICAgICAgInRvIjogOCwKKyAgICAgICAgImRldGFpbHMiOiBb
eyAiZnJvbSI6IDAsICJ0byI6IDEgfV0KKyAgICB9LAorICAgIHsKKyAgICAgICAgInR5cGUiOiAi
Z3JhbW1hciIsCisgICAgICAgICJmcm9tIjogMCwKKyAgICAgICAgInRvIjogMTUsCisgICAgICAg
ICJkZXRhaWxzIjogW3sgImZyb20iOiA3LCAidG8iOiA4IH1dCisgICAgfQorXTsKKwogdmFyIHRl
c3RzID0gWwotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0
aEdyYW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpKSB9LAotICAgIGZ1bmN0aW9u
KCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVtZW50V2l0aFNwZWxsaW5nSXNzdWUsIG1pc3Nw
ZWxsaW5ncy5zbGljZSgxLCAyKSkgfSwKLSAgICBmdW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1h
cmtlcnMoZWxlbWVudFdpdGhHcmFtbWFyQW5kU3BlbGxpbmdJc3N1ZSwgbWlzc3BlbGxpbmdzLnNs
aWNlKDIsIDQpKSB9LAorICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVt
ZW50V2l0aEdyYW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpLCByZXN1bHRzLnNs
aWNlKDAsIDEpKSB9LAorICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVt
ZW50V2l0aEdyYW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDEsIDIpLCByZXN1bHRzLnNs
aWNlKDEsIDIpKSB9LAorICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVt
ZW50V2l0aEdyYW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDIpLCByZXN1bHRzLnNs
aWNlKDAsIDIpKSB9LAorICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlEZXNpcmVkTWFya2VycyhlbGVt
ZW50V2l0aFNwZWxsaW5nSXNzdWUsIG1pc3NwZWxsaW5ncy5zbGljZSgzLCA0KSkgfSwKKyAgICBm
dW5jdGlvbigpIHsgdmVyaWZ5RGVzaXJlZE1hcmtlcnMoZWxlbWVudFdpdGhHcmFtbWFyQW5kU3Bl
bGxpbmdJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDQsIDYpKSB9LAogCiAgICAgLy8gVGhvc2Ug
ZXhwZWN0IHRvIGhhdmUgb25seSBvbmUga2luZCBvZiBtYXJrZXJzIGVpdGhlciBzcGVsbGluZyBv
ciBncmFtbWFyLgotICAgIGZ1bmN0aW9uKCkgeyB2ZXJpZnlVbmV4cGVjdGVkTWFya2VycyhlbGVt
ZW50V2l0aEdyYW1tYXJJc3N1ZSwgbWlzc3BlbGxpbmdzLnNsaWNlKDAsIDEpKSB9LAotICAgIGZ1
bmN0aW9uKCkgeyB2ZXJpZnlVbmV4cGVjdGVkTWFya2VycyhlbGVtZW50V2l0aFNwZWxsaW5nSXNz
dWUsIG1pc3NwZWxsaW5ncy5zbGljZSgxLCAyKSkgfSwKKyAgICBmdW5jdGlvbigpIHsgdmVyaWZ5
VW5leHBlY3RlZE1hcmtlcnMoZWxlbWVudFdpdGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5ncy5z
bGljZSgwLCAxKSksIHJlc3VsdHMuc2xpY2UoMCwgMSkgfSwKKyAgICBmdW5jdGlvbigpIHsgdmVy
aWZ5VW5leHBlY3RlZE1hcmtlcnMoZWxlbWVudFdpdGhHcmFtbWFySXNzdWUsIG1pc3NwZWxsaW5n
cy5zbGljZSgxLCAyKSksIHJlc3VsdHMuc2xpY2UoMSwgMikgfSwKKyAgICBmdW5jdGlvbigpIHsg
dmVyaWZ5VW5leHBlY3RlZE1hcmtlcnMoZWxlbWVudFdpdGhTcGVsbGluZ0lzc3VlLCBtaXNzcGVs
bGluZ3Muc2xpY2UoMywgNCkpIH0sCiBdOwogCiB2YXIgZWxlbWVudDsKIHZhciBuZXh0TWlzc3Bl
bGxpbmdEYXRhOwogCi1mdW5jdGlvbiB2ZXJpZnlEZXNpcmVkTWFya2VycyhlLCBtaXNzcGVsbGlu
Z3MpCitmdW5jdGlvbiB2ZXJpZnlEZXNpcmVkTWFya2VycyhlLCBtaXNzcGVsbGluZ3MsIG92ZXJy
aWRlU3BlbGxDaGVja2luZ1Jlc3VsdHMpCiB7CiAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICByZXR1cm4gZG9uZSgpOwogCisgICAgY29uc3QgdGV4dFRvQ2hlY2sgPSBlLmZpcnN0
Q2hpbGQubm9kZVZhbHVlOworICAgIGNvbnN0IHNwZWxsQ2hlY2tlclJlc3VsdHMgPSB7IH07Cisg
ICAgaWYgKG92ZXJyaWRlU3BlbGxDaGVja2luZ1Jlc3VsdHMpCisgICAgICAgIHNwZWxsQ2hlY2tl
clJlc3VsdHNbdGV4dFRvQ2hlY2tdID0gb3ZlcnJpZGVTcGVsbENoZWNraW5nUmVzdWx0czsKKyAg
ICB0ZXN0UnVubmVyLnNldFNwZWxsQ2hlY2tlclJlc3VsdHMoc3BlbGxDaGVja2VyUmVzdWx0cyk7
CisKKyAgICB0eXBlVGV4dChlLCB0ZXh0VG9DaGVjayk7CisKICAgICBlbGVtZW50ID0gZTsKICAg
ICBuZXh0TWlzc3BlbGxpbmdEYXRhID0gbWlzc3BlbGxpbmdzLnNoaWZ0KCk7CiAgICAgaWYgKCFu
ZXh0TWlzc3BlbGxpbmdEYXRhKQogICAgICAgICByZXR1cm4gZG9uZSgpOwogCi0gICAgZGVidWco
IkNoZWNraW5nIGZvciBpc3N1ZSBvbiAnIiArIGVsZW1lbnQuZmlyc3RDaGlsZC5ub2RlVmFsdWUg
KyAiJyIpOworICAgIGRlYnVnKGBDaGVja2luZyBmb3IgaXNzdWUgb24gJyR7dGV4dFRvQ2hlY2t9
J2ApOwogCiAgICAgc2hvdWxkQmVjb21lRGlmZmVyZW50KCdpbnRlcm5hbHMubWFya2VyUmFuZ2VG
b3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJrZXIsIDAp
JywgIm51bGwiLCBmdW5jdGlvbigpIHsKICAgICAgICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2Vy
UmFuZ2VGb3JOb2RlKGVsZW1lbnQuZmlyc3RDaGlsZCwgbmV4dE1pc3NwZWxsaW5nRGF0YS5tYXJr
ZXIsIDApOwpAQCAtOTIsOCArMTE4LDE2IEBAIGZ1bmN0aW9uIHZlcmlmeURlc2lyZWRNYXJrZXJz
KGUsIG1pc3NwZWxsaW5ncykKIH0KIAogdmFyIG9wcG9zaXRlTWFya2VyOwotZnVuY3Rpb24gdmVy
aWZ5VW5leHBlY3RlZE1hcmtlcnMoZSwgbWlzc3BlbGxpbmdzKQorZnVuY3Rpb24gdmVyaWZ5VW5l
eHBlY3RlZE1hcmtlcnMoZSwgbWlzc3BlbGxpbmdzLCBvdmVycmlkZVNwZWxsQ2hlY2tpbmdSZXN1
bHRzKQogeworICAgIGNvbnN0IHRleHRUb0NoZWNrID0gZS5maXJzdENoaWxkLm5vZGVWYWx1ZTsK
KyAgICBjb25zdCBzcGVsbENoZWNrZXJSZXN1bHRzID0geyB9OworICAgIGlmIChvdmVycmlkZVNw
ZWxsQ2hlY2tpbmdSZXN1bHRzKQorICAgICAgICBzcGVsbENoZWNrZXJSZXN1bHRzW3RleHRUb0No
ZWNrXSA9IG92ZXJyaWRlU3BlbGxDaGVja2luZ1Jlc3VsdHM7CisgICAgdGVzdFJ1bm5lci5zZXRT
cGVsbENoZWNrZXJSZXN1bHRzKHNwZWxsQ2hlY2tlclJlc3VsdHMpOworCisgICAgdHlwZVRleHQo
ZSwgdGV4dFRvQ2hlY2spOworCiAgICAgZWxlbWVudCA9IGU7CiAgICAgbmV4dE1pc3NwZWxsaW5n
RGF0YSA9IG1pc3NwZWxsaW5ncy5zaGlmdCgpOwogCkBAIC0xMDIsNyArMTM2LDcgQEAgZnVuY3Rp
b24gdmVyaWZ5VW5leHBlY3RlZE1hcmtlcnMoZSwgbWlzc3BlbGxpbmdzKQogICAgIGVsc2UgaWYg
KG5leHRNaXNzcGVsbGluZ0RhdGEubWFya2VyID09ICdzcGVsbGluZycpCiAgICAgICAgIG9wcG9z
aXRlTWFya2VyID0gJ2dyYW1tYXInOwogCi0gICAgZGVidWcoIkNoZWNraW5nIGZvciBubyBvdGhl
ciBpc3N1ZXMgb24gJyIgKyBlbGVtZW50LmZpcnN0Q2hpbGQubm9kZVZhbHVlICsgIiciKTsKKyAg
ICBkZWJ1ZyhgQ2hlY2tpbmcgZm9yIG5vIG90aGVyIGlzc3VlcyBvbiAnJHt0ZXh0VG9DaGVja30n
YCk7CiAKICAgICBzaG91bGRCZWNvbWVFcXVhbCgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9k
ZShlbGVtZW50LmZpcnN0Q2hpbGQsIG9wcG9zaXRlTWFya2VyKScsICcwJywgZnVuY3Rpb24oKSB7
CiAgICAgICAgIGRlYnVnKCIiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvdGV4dC1yZXBsYWNlbWVudC1hZnRlci10eXBpbmctdG8td29yZC5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy90ZXh0LXJlcGxhY2VtZW50LWFmdGVyLXR5cGluZy10by13
b3JkLmh0bWwKaW5kZXggOGM5NDk1ZDg2NjJmMDZmZDlmZjE3YzM2MDc1MmU3NDJkMzI5MmJlNy4u
YmEwNjg2NzVlNGEwNjU5NWUwZmMyNDk3MDllZWRlZDg0YmFiYjRmNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy90ZXh0LXJlcGxhY2VtZW50LWFmdGVyLXR5cGluZy10
by13b3JkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy90ZXh0LXJlcGxh
Y2VtZW50LWFmdGVyLXR5cGluZy10by13b3JkLmh0bWwKQEAgLTE3LDE5ICsxNywyMyBAQCBhc3lu
YyBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGZhbHNlKTsKICAgICAgICAgaW50ZXJuYWxzLnNl
dEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQodHJ1ZSk7CiAgICAgICAgIGludGVybmFs
cy5zZXRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKHRydWUpOwotICAgICAgICB0
ZXN0UnVubmVyLnNldFNwZWxsQ2hlY2tlclRleHRSZXBsYWNlbWVudHMoewotICAgICAgICAgICAg
IllUPyI6IHsKLSAgICAgICAgICAgICAgICAicmVwbGFjZW1lbnQiOiAiWW91IHRoZXJlPyIsCi0g
ICAgICAgICAgICAgICAgInR5cGUiOiAicmVwbGFjZW1lbnQiLAotICAgICAgICAgICAgICAgICJm
cm9tIjogMCwKLSAgICAgICAgICAgICAgICAidG8iOiAzCi0gICAgICAgICAgICB9LAotICAgICAg
ICAgICAgIllUP1xuIjogewotICAgICAgICAgICAgICAgICJyZXBsYWNlbWVudCI6ICJZb3UgdGhl
cmU/IiwKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJyZXBsYWNlbWVudCIsCi0gICAgICAgICAg
ICAgICAgImZyb20iOiAwLAotICAgICAgICAgICAgICAgICJ0byI6IDMKLSAgICAgICAgICAgIH0K
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTcGVsbENoZWNrZXJSZXN1bHRzKHsKKyAgICAgICAgICAg
ICJZVD8iOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAicmVwbGFj
ZW1lbnQiOiAiWW91IHRoZXJlPyIsCisgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInJlcGxh
Y2VtZW50IiwKKyAgICAgICAgICAgICAgICAgICAgImZyb20iOiAwLAorICAgICAgICAgICAgICAg
ICAgICAidG8iOiAzCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICJZVD9cbiI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICJy
ZXBsYWNlbWVudCI6ICJZb3UgdGhlcmU/IiwKKyAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAi
cmVwbGFjZW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAiZnJvbSI6IDAsCisgICAgICAgICAg
ICAgICAgICAgICJ0byI6IDMKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCiAgICAg
ICAgIH0pOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>