<?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>139612</bug_id>
          
          <creation_ts>2014-12-12 18:18:14 -0800</creation_ts>
          <short_desc>Web Inspector: Show Pseudo Elements in DOM Tree</short_desc>
          <delta_ts>2015-08-05 21:37:57 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>hobbbz</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055370</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-12-12 18:18:14 -0800</bug_when>
    <thetext>* SUMMARY
It would be great to more directly see pseudo element styles for things like :before/:after/:first* content. They could naturally show up as some &quot;token&quot; in the DOMTree.

*NOTES
- Bug: 31749: Wanting :before and :after to show up in the Elements tab as &quot;nodes&quot; if there are styles assigned to these pseudo elements.  Would also like the ability to select the nodes and see the specific styles assigned to them, as well as hover over them and have them be highlighted in the page view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056428</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-12-17 11:23:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/19281529&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111058</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-21 14:30:11 -0700</bug_when>
    <thetext>*** Bug 147151 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111128</commentid>
    <comment_count>3</comment_count>
    <who name="Julian Kussman">hobbbz</who>
    <bug_when>2015-07-21 16:59:32 -0700</bug_when>
    <thetext>Please consider my use case in needing to see the computed values of pseudo elements in this request. This is not possible without a way to select them in them DOM list or through another method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111180</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-07-21 18:48:06 -0700</bug_when>
    <thetext>A second request for this on twitter today: https://twitter.com/benfrain/status/623596363075428352</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112133</commentid>
    <comment_count>5</comment_count>
      <attachid>257490</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-24 16:33:01 -0700</bug_when>
    <thetext>Created attachment 257490
[PATCH] Proposed Fix

A few remaining issues, that are relatively minor but I want to investigate before landing.

1. Fix &quot;New Rule&quot; button to create an appropriate selector.
2. Fix &quot;Hover&quot; and other pseudo elements to affect the host element.
3. Fix the &quot;matched&quot; selector list, shows every selector matching.
4. More testing in the frontend, specifically around a node with LOTS of children and ::after</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112134</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-24 16:34:37 -0700</bug_when>
    <thetext>Attachment 257490 did not pass style-queue:


ERROR: Source/WebCore/inspector/InspectorDOMAgent.h:238:  The parameter name &quot;element&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112136</commentid>
    <comment_count>7</comment_count>
      <attachid>257491</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-24 16:35:15 -0700</bug_when>
    <thetext>Created attachment 257491
[IMAGE] Pseudo Element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112137</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-24 16:36:25 -0700</bug_when>
    <thetext>&gt; 2. Fix &quot;Hover&quot; and other pseudo elements to affect the host element.

This should have read &quot;pseudo classes to affect the host element&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112153</commentid>
    <comment_count>9</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-07-24 17:54:01 -0700</bug_when>
    <thetext>Is there any better text we can use in the tree outline? The bare ::before and ::after bothers me.

Maybe the selector? p.both::after</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112155</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-24 18:00:41 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Is there any better text we can use in the tree outline? The bare ::before
&gt; and ::after bothers me.
&gt; 
&gt; Maybe the selector? p.both::after

Selector could work, but if there is a long selector or multiple different selectors that affect this before/after content it might look bad.

We could just use the tag name.

    p::before

Or perhaps making it appear more like an element would be good:

    &lt;::before&gt;
    &lt;pseudo::before&gt;
    [before]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112165</commentid>
    <comment_count>11</comment_count>
      <attachid>257500</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-24 18:22:03 -0700</bug_when>
    <thetext>Created attachment 257500
[PATCH] Proposed Fix

This fixes issues 1-3, I still have to do testing with large sets of children.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112179</commentid>
    <comment_count>12</comment_count>
      <attachid>257506</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-24 19:42:29 -0700</bug_when>
    <thetext>Created attachment 257506
[PATCH] Proposed Fix

This fixes &quot;Show All Nodes (# more)&quot; button and other miscellaneous handling. Other than tweaking the UI, I think this is functionally complete for ::before/::after.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112245</commentid>
    <comment_count>13</comment_count>
      <attachid>257506</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-07-25 17:00:29 -0700</bug_when>
    <thetext>Comment on attachment 257506
[PATCH] Proposed Fix

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

Do we still show ::before and ::after matching style rules when selecting a normal element? We might want to filter those out now.

&gt; Source/WebCore/inspector/InspectorCSSAgent.cpp:558
&gt; +                    InspectorStyleSheetForInlineStyle* styleSheet = asInspectorStyleSheet(parentElement);
&gt; +                    if (styleSheet)

Nit: One line.

&gt; Source/WebCore/inspector/InspectorDOMAgent.cpp:1364
&gt; +            auto pseudoElements = buildArrayForPseudoElements(element, nodesMap);
&gt; +            if (pseudoElements)

Nit: One line.

&gt; Source/WebInspectorUI/ChangeLog:33
&gt; +
&gt; +

Nit: Double lines.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js:296
&gt; +        // FIXME: Handle shadow roots.

We don&apos;t support shadow roots yet, and may never. Still worth adding this?

&gt; Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js:297
&gt; +        // FIXME: Handle template content.

What about template content do we not support? Should file a bug for this.

&gt; Source/WebInspectorUI/UserInterface/Models/DOMNode.js:82
&gt; +        // FIXME: Handle templateContent.

Nit: You say &quot;template content&quot; above.

&gt; Source/WebInspectorUI/UserInterface/Views/DOMTreeOutline.css:158
&gt; +    color: brown;

We usually only do keyword colors for white, black or transparent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112474</commentid>
    <comment_count>14</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-27 12:43:21 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 257506 [details]
&gt; [PATCH] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=257506&amp;action=review
&gt; 
&gt; Do we still show ::before and ::after matching style rules when selecting a
&gt; normal element? We might want to filter those out now.

Yes currently we do. I wanted to experiment with go-to buttons if the DOMNode has a before/after node.


&gt; &gt; Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js:296
&gt; &gt; +        // FIXME: Handle shadow roots.
&gt; 
&gt; We don&apos;t support shadow roots yet, and may never. Still worth adding this?

Well, we do support our Internal Shadow DOM, and I have to audit our implementation a little closer.

&gt; &gt; Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js:297
&gt; &gt; +        // FIXME: Handle template content.
&gt; 
&gt; What about template content do we not support? Should file a bug for this.

I&apos;ll have a follow-up for this. We already send the data we just don&apos;t use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112506</commentid>
    <comment_count>15</comment_count>
      <attachid>257592</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-27 14:43:22 -0700</bug_when>
    <thetext>Created attachment 257592
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112513</commentid>
    <comment_count>16</comment_count>
      <attachid>257592</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-27 14:50:12 -0700</bug_when>
    <thetext>Comment on attachment 257592
[PATCH] For Landing

Going to update the text in Tests a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112521</commentid>
    <comment_count>17</comment_count>
      <attachid>257598</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-27 15:07:29 -0700</bug_when>
    <thetext>Created attachment 257598
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112788</commentid>
    <comment_count>18</comment_count>
      <attachid>257598</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-28 11:48:41 -0700</bug_when>
    <thetext>Comment on attachment 257598
[PATCH] For Landing

Clearing flags on attachment: 257598

Committed r187496: &lt;http://trac.webkit.org/changeset/187496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112941</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-28 17:05:59 -0700</bug_when>
    <thetext>inspector/css/pseudo-element-matches-for-pseudo-element-node.html always times out on Windows, and is flaky slow on Apple Yosemite Debug WK2.

https://webkit-test-results.appspot.com/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=inspector%2Fcss%2Fpseudo-element-matches-for-pseudo-element-node.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257490</attachid>
            <date>2015-07-24 16:33:01 -0700</date>
            <delta_ts>2015-07-24 18:22:03 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>pseudo-1.patch</filename>
            <type>text/plain</type>
            <size>83339</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTcwYjFmLi45MGE2OTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTUtMDct
MjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9y
LXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rv
bS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGljLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMuaHRtbDog
QWRkZWQuCisKKzIwMTUtMDctMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KKwogICAgICAgICBDU1MgImNvbnRlbnQiIHByb3BlcnR5IGlzIG1pc3NpbmcgaW4gZ2V0Q29t
cHV0ZWRTdHlsZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NzI1NQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1
ZG8tZWxlbWVudC1ub2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40N2I3MDU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0aW5nIHRoYXQgd2UgY2FuIGdldCBjb21wdXRl
ZCBhbmQgbWF0Y2hlZCBydWxlcyBmb3IgcHNldWRvIGVsZW1lbnQgbm9kZXMuCisKK1RFU1QgRUxF
TUVOVDogSGFzIEJlZm9yZSBQc2V1ZG8gRWxlbWVudAorUEFTUzogR290IDo6YmVmb3JlIHBzZXVk
byBlbGVtZW50IGZvciAjeAorUmVmcmVzaGluZyBzdHlsZXMgZm9yIDo6YmVmb3JlIHBzZXVkbyBl
bGVtZW50CisKK1BBU1M6IE5vIElubGluZSBTdHlsZXMKK1BBU1M6IE5vIEF0dHJpYnV0ZSBTdHls
ZXMKK1BBU1M6IE5vIEluaGVyaXRlZCBTdHlsZXMKK1BBU1M6IE5vIFBzZXVkbyBFbGVtZW50IFN0
eWxlcworUEFTUzogSGFzIENvbXB1dGVkIFN0eWxlcworUFJPUEVSVFk6IGNvbnRlbnQ6IGJlZm9y
ZTsKK1BST1BFUlRZOiBjb2xvcjogcmdiKDAsIDAsIDI1NSk7CitNQVRDSEVEIFJVTEUgLSBTRUxF
Q1RPUjogI3g6OmJlZm9yZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hlcy1mb3ItcHNldWRv
LWVsZW1lbnQtbm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkw
MWY1YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbApAQCAtMCwwICsx
LDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB2YXIg
bm9kZVN0eWxlcyA9IG51bGw7CisKKyAgICBmdW5jdGlvbiB2YWxpZGF0ZVN0eWxlcygpIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdCghbm9kZVN0eWxlcy5pbmxpbmVTdHlsZSwgIk5vIElubGluZSBTdHlsZXMiKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFub2RlU3R5bGVzLmF0dHJpYnV0ZXNTdHls
ZSwgIk5vIEF0dHJpYnV0ZSBTdHlsZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KCFub2RlU3R5bGVzLmluaGVyaXRlZFJ1bGVzLmxlbmd0aCwgIk5vIEluaGVyaXRlZCBTdHls
ZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFPYmplY3Qua2V5cyhub2Rl
U3R5bGVzLnBzZXVkb0VsZW1lbnRzKS5sZW5ndGgsICJObyBQc2V1ZG8gRWxlbWVudCBTdHlsZXMi
KTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobm9kZVN0eWxlcy5jb21wdXRl
ZFN0eWxlLCAiSGFzIENvbXB1dGVkIFN0eWxlcyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUFJPUEVSVFk6ICIgKyBub2RlU3R5bGVzLmNvbXB1dGVkU3R5bGUucHJvcGVydHlGb3JOYW1l
KCJjb250ZW50IikudGV4dCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQUk9QRVJUWTog
IiArIG5vZGVTdHlsZXMuY29tcHV0ZWRTdHlsZS5wcm9wZXJ0eUZvck5hbWUoImNvbG9yIikudGV4
dCk7CisKKyAgICAgICAgZm9yICh2YXIgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJNQVRDSEVEIFJVTEUgLSBTRUxFQ1RPUjog
IiArIHJ1bGUuc2VsZWN0b3JUZXh0KTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOyAgICAgICAgICAgICAgICAKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJl
ZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAg
ICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUu
aWQsICIjeCIsIGZ1bmN0aW9uKGNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAgIHZhciBkb21O
b2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlk
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUpOworICAgICAgICAg
ICAgdmFyIGJlZm9yZVBzZXVkb0VsZW1lbnRET01Ob2RlID0gZG9tTm9kZS5iZWZvcmVQc2V1ZG9F
bGVtZW50KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoYmVmb3JlUHNl
dWRvRWxlbWVudERPTU5vZGUsICJHb3QgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQgZm9yICN4Iik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVmcmVzaGluZyBzdHlsZXMgZm9yIDo6
YmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICBub2RlU3R5bGVzID0gV2ViSW5z
cGVjdG9yLmNzc1N0eWxlTWFuYWdlci5zdHlsZXNGb3JOb2RlKGJlZm9yZVBzZXVkb0VsZW1lbnRE
T01Ob2RlKTsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRE9NTm9kZVN0eWxlcy5FdmVudC5SZWZyZXNoZWQsIHZhbGlkYXRlU3R5bGVzKTsKKyAg
ICAgICAgICAgIG5vZGVTdHlsZXMucmVmcmVzaCgpOworICAgICAgICB9KTsKKyAgICB9KTsKKwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+
VGVzdGluZyB0aGF0IHdlIGNhbiBnZXQgY29tcHV0ZWQgYW5kIG1hdGNoZWQgcnVsZXMgZm9yIHBz
ZXVkbyBlbGVtZW50IG5vZGVzLjwvcD4KKworICAgIDxzdHlsZT4KKyAgICAjeDpiZWZvcmUgeyBj
b250ZW50OiAiYmVmb3JlIjsgY29sb3I6IGJsdWU7IH0KKyAgICA8L3N0eWxlPgorCisgICAgPGRp
diBpZD0ieCI+VEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIFBzZXVkbyBFbGVtZW50PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3Bz
ZXVkby1lbGVtZW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5iYmEzN2UzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQ5IEBACitUZXN0IGZvciBiYXNpYyBET01Ob2RlIHBzZXVkbyBlbGVtZW50IHN1cHBv
cnQuCisKK1RFU1QgRUxFTUVOVAorCitQQVNTOiBHb3QgRE9NTm9kZSBmb3IgI3gKK1BBU1M6IERP
TU5vZGUgaGFzIG5vIHBzZXVkbyBlbGVtZW50cworCitBZGQgOmJlZm9yZQorRVZFTlQ6IE5vZGVJ
bnNlcnRlZAorCitWZXJpZnkgOmJlZm9yZSB3YXMgYWRkZWQKK1BBU1M6ICN4IERPTU5vZGUgaGFz
IHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMKK1BB
U1M6IERPTU5vZGUgaGFzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01Ob2RlIGRv
ZXMgbm90IGhhdmUgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6IE5ldyBET01Ob2RlIGlz
IHRoZSBiZWZvcmVQc2V1ZG9FbGVtZW50CitQQVNTOiBOZXcgRE9NTm9kZSBpcyBhIGNoaWxkIG9m
ICN4CitQQVNTOiBOZXcgRE9NTm9kZSBpcyBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudAorCitSZW1v
dmUgOmJlZm9yZQorRVZFTlQ6IE5vZGVSZW1vdmVkCisKK1ZlcmlmeSA6YmVmb3JlIHdhcyByZW1v
dmVkCitQQVNTOiAjeCBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IFJlbW92
ZWQgRE9NTm9kZSB3YXMgdGhlIGJlZm9yZSBwc2V1ZG8gZWxlbWVudAorUEFTUzogUmVtb3ZlZCBE
T01Ob2RlIGhhcyBubyBwYXJlbnQKK1BBU1M6IFJlbW92ZWQgRE9NTm9kZSB3YXMgYSBiZWZvcmUg
cHNldWRvIGVsZW1lbnQKKworQWRkIDphZnRlcgorRVZFTlQ6IE5vZGVJbnNlcnRlZAorCitWZXJp
ZnkgOmFmdGVyIHdhcyBhZGRlZAorUEFTUzogI3ggRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRz
CitQQVNTOiBET01Ob2RlIGhhcyAxIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBkb2Vz
IG5vdCBoYXZlIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01Ob2RlIGhhcyBhbiBh
ZnRlciBwc2V1ZG8gZWxlbWVudAorUEFTUzogTmV3IERPTU5vZGUgaXMgdGhlIGFmdGVyUHNldWRv
RWxlbWVudAorUEFTUzogTmV3IERPTU5vZGUgaXMgYSBjaGlsZCBvZiAjeAorUEFTUzogTmV3IERP
TU5vZGUgaXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKKworUmVtb3ZlIDphZnRlcgorRVZFTlQ6
IE5vZGVSZW1vdmVkCisKK1ZlcmlmeSA6YWZ0ZXIgd2FzIHJlbW92ZWQKK1BBU1M6ICN4IERPTU5v
ZGUgaGFzIG5vIHBzZXVkbyBlbGVtZW50cworUEFTUzogUmVtb3ZlZCBET01Ob2RlIHdhcyB0aGUg
YWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6IFJlbW92ZWQgRE9NTm9kZSBoYXMgbm8gcGFyZW50
CitQQVNTOiBSZW1vdmVkIERPTU5vZGUgd2FzIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1p
Yy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWlj
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThiMmRlMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHlu
YW1pYy5odG1sCkBAIC0wLDAgKzEsMTU2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7CisKKyAg
ICB2YXIgdGVzdERPTU5vZGUgPSBudWxsOworICAgIHZhciBpbnNlcnRlZE9yUmVtb3ZlZERPTU5v
ZGUgPSBudWxsOworICAgIHZhciBwcmV2aW91c0luc2VydGVkRE9NTm9kZSA9IG51bGw7CisKKyAg
ICB2YXIgc3RlcHMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJBZGQgOmJlZm9y
ZSIsCisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4Jyku
Y2xhc3NMaXN0LmFkZCgnYicpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgIG5hbWU6ICJWZXJpZnkgOmJlZm9yZSB3YXMgYWRkZWQiLAorICAgICAg
ICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQodGVzdERPTU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIiN4IERPTU5vZGUg
aGFzIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdCh0ZXN0RE9NTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDEsICJET01Ob2Rl
IGhhcyAxIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdCh0ZXN0RE9NTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhh
cyBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghdGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2Rl
IGRvZXMgbm90IGhhdmUgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUgPT09
IHRlc3RET01Ob2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSwgIk5ldyBET01Ob2RlIGlzIHRoZSBi
ZWZvcmVQc2V1ZG9FbGVtZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZS5wYXJlbnROb2RlID09PSB0ZXN0RE9NTm9k
ZSwgIk5ldyBET01Ob2RlIGlzIGEgY2hpbGQgb2YgI3giKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBzZXVkb1R5cGUo
KSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQmVmb3JlLCAiTmV3
IERPTU5vZGUgaXMgYSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAgICAg
IHByZXZpb3VzSW5zZXJ0ZWRET01Ob2RlID0gaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlOworICAg
ICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgbmFtZTogIlJlbW92ZSA6YmVmb3JlIiwKKyAgICAgICAgICAgIGFjdGlv
bjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gnKS5jbGFzc0xpc3QucmVtb3ZlKCdiJyki
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbmFt
ZTogIlZlcmlmeSA6YmVmb3JlIHdhcyByZW1vdmVkIiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0
RE9NTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAiI3ggRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVs
ZW1lbnRzIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQodGVzdERPTU5v
ZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAwKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9F
bGVtZW50KCkpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGlu
c2VydGVkT3JSZW1vdmVkRE9NTm9kZSA9PT0gcHJldmlvdXNJbnNlcnRlZERPTU5vZGUsICJSZW1v
dmVkIERPTU5vZGUgd2FzIHRoZSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBh
cmVudE5vZGUgPT09IG51bGwsICJSZW1vdmVkIERPTU5vZGUgaGFzIG5vIHBhcmVudCIpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERP
TU5vZGUucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50
VHlwZS5CZWZvcmUsICJSZW1vdmVkIERPTU5vZGUgd2FzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50
Iik7CisKKyAgICAgICAgICAgICAgICBwcmV2aW91c0luc2VydGVkRE9NTm9kZSA9IG51bGw7Cisg
ICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICBuYW1lOiAiQWRkIDphZnRlciIsCisgICAgICAgICAgICBhY3Rpb246
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4JykuY2xhc3NMaXN0LmFkZCgnYScpIik7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJW
ZXJpZnkgOmFmdGVyIHdhcyBhZGRlZCIsCisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCh0ZXN0RE9NTm9kZS5o
YXNQc2V1ZG9FbGVtZW50cygpLCAiI3ggRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzIik7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHRlc3RET01Ob2RlLnBzZXVk
b0VsZW1lbnRzKCkuc2l6ZSA9PT0gMSwgIkRPTU5vZGUgaGFzIDEgcHNldWRvIGVsZW1lbnRzIik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0RE9NTm9kZS5i
ZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGRvZXMgbm90IGhhdmUgYSBiZWZvcmUgcHNl
dWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
dGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhbiBhZnRlciBw
c2V1ZG8gZWxlbWVudCIpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZSA9PT0gdGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9F
bGVtZW50KCksICJOZXcgRE9NTm9kZSBpcyB0aGUgYWZ0ZXJQc2V1ZG9FbGVtZW50Iik7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9N
Tm9kZS5wYXJlbnROb2RlID09PSB0ZXN0RE9NTm9kZSwgIk5ldyBET01Ob2RlIGlzIGEgY2hpbGQg
b2YgI3giKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0
ZWRPclJlbW92ZWRET01Ob2RlLnBzZXVkb1R5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUu
UHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJOZXcgRE9NTm9kZSBpcyBhbiBhZnRlciBwc2V1ZG8g
ZWxlbWVudCIpOworCisgICAgICAgICAgICAgICAgcHJldmlvdXNJbnNlcnRlZERPTU5vZGUgPSBp
bnNlcnRlZE9yUmVtb3ZlZERPTU5vZGU7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAiUmVtb3Zl
IDphZnRlciIsCisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd4JykuY2xhc3NMaXN0LnJlbW92ZSgnYScpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJWZXJpZnkgOmFmdGVyIHdhcyByZW1vdmVk
IiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0RE9NTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAi
I3ggRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQodGVzdERPTU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAw
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUuYmVm
b3JlUHNldWRvRWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dCghdGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpOworCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZSA9PT0gcHJl
dmlvdXNJbnNlcnRlZERPTU5vZGUsICJSZW1vdmVkIERPTU5vZGUgd2FzIHRoZSBhZnRlciBwc2V1
ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChp
bnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucGFyZW50Tm9kZSA9PT0gbnVsbCwgIlJlbW92ZWQgRE9N
Tm9kZSBoYXMgbm8gcGFyZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkFmdGVyLCAiUmVtb3ZlZCBET01Ob2RlIHdh
cyBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudCIpOworCisgICAgICAgICAgICAgICAgcHJldmlvdXNJ
bnNlcnRlZERPTU5vZGUgPSBudWxsOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICBdOworCisgICAgZnVuY3Rpb24gbmV4dCgpCisgICAgewor
ICAgICAgICB2YXIgc3RlcCA9IHN0ZXBzLnNoaWZ0KCk7CisgICAgICAgIGlmIChzdGVwKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhzdGVwLm5hbWUpOworICAgICAgICAgICAgc3RlcC5hY3Rpb24oKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOworICAgIH0KKworICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5yZXF1ZXN0RG9j
dW1lbnQoZnVuY3Rpb24oZG9jdW1lbnROb2RlKSB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21U
cmVlTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiN4IiwgZnVuY3Rpb24o
bm9kZUlkKSB7CisgICAgICAgICAgICB0ZXN0RE9NTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVl
TWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCIiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCh0ZXN0RE9NTm9kZSwg
IkdvdCBET01Ob2RlIGZvciAjeCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
IXRlc3RET01Ob2RlLnBzZXVkb1R5cGUoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQoIXRlc3RET01Ob2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICJET01Ob2RlIGhhcyBu
byBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRl
c3RET01Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCF0ZXN0RE9NTm9kZS5hZnRlclBzZXVkb0Vs
ZW1lbnQoKSk7CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgIH0pOworICAgIH0pOworCisg
ICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVJbnNlcnRlZCwgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgLy8gVGVzdCBsb2dnaW5nIHdpbGwgYWRkIG5vZGVzIHRvIHRoZSB0ZXN0IHBhZ2Uu
IElnbm9yZSBhbnkgZWxlbWVudHMgYWRkZWQgdGhhdCBhcmUgbm90IGNoaWxkcmVuIG9mIG91ciB0
ZXN0IG5vZGUuCisgICAgICAgIGlmIChldmVudC5kYXRhLnBhcmVudCAhPT0gdGVzdERPTU5vZGUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVWRU5U
OiBOb2RlSW5zZXJ0ZWQiKTsKKyAgICAgICAgaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlID0gZXZl
bnQuZGF0YS5ub2RlOworICAgICAgICBuZXh0KCk7CisgICAgfSk7CisKKyAgICBXZWJJbnNwZWN0
b3IuZG9tVHJlZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NVHJlZU1h
bmFnZXIuRXZlbnQuTm9kZVJlbW92ZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJFVkVOVDogTm9kZVJlbW92ZWQiKTsKKyAgICAgICAgaW5zZXJ0ZWRPclJl
bW92ZWRET01Ob2RlID0gZXZlbnQuZGF0YS5ub2RlOworICAgICAgICBuZXh0KCk7CisgICAgfSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8
cD5UZXN0IGZvciBiYXNpYyBET01Ob2RlIHBzZXVkbyBlbGVtZW50IHN1cHBvcnQuPC9wPgorCisg
ICAgPHN0eWxlPgorICAgIC5iOmJlZm9yZSB7IGNvbnRlbnQ6ICJiZWZvcmUiOyB9CisgICAgLmE6
YWZ0ZXIgeyBjb250ZW50OiAiYWZ0ZXIiOyB9CisgICAgPC9zdHlsZT4KKworICAgIDxkaXYgaWQ9
IngiPlRFU1QgRUxFTUVOVDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ZWNmNmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0
YXRpYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorVGVzdCBmb3IgYmFzaWMgRE9NTm9k
ZSBwc2V1ZG8gZWxlbWVudCBzdXBwb3J0LgorCitURVNUIEVMRU1FTlQ6IE5vIFBzZXVkbyBFbGVt
ZW50cworVEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIFBzZXVkbyBFbGVtZW50CitURVNUIEVMRU1F
TlQ6IEhhcyBBZnRlciBQc2V1ZG8gRWxlbWVudAorVEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIGFu
ZCBBZnRlciBQc2V1ZG8gRWxlbWVudHMKKworUEFTUzogR290IERPTU5vZGUgZm9yICNub25lCitQ
QVNTOiBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKKworUEFTUzogR290IERPTU5vZGUg
Zm9yICNiCitQQVNTOiBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUg
aGFzIDEgcHNldWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1ZG8g
ZWxlbWVudAorUEFTUzogRE9NTm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFmdGVyIHBzZXVkbyBlbGVt
ZW50CitQQVNTOiBET01Ob2RlIGZvciBiZWZvcmUgcHNldWRvIGVsZW1lbnQgaGFzIHRoZSByaWdo
dCB0eXBlCisKK1BBU1M6IEdvdCBET01Ob2RlIGZvciAjYQorUEFTUzogRE9NTm9kZSBoYXMgcHNl
dWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhhcyAxIHBzZXVkbyBlbGVtZW50cworUEFTUzog
RE9NTm9kZSBkb2VzIG5vdCBoYXZlIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01O
b2RlIGhhcyBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudAorUEFTUzogRE9NTm9kZSBmb3IgYWZ0ZXIg
cHNldWRvIGVsZW1lbnQgaGFzIHRoZSByaWdodCB0eXBlCisKK1BBU1M6IEdvdCBET01Ob2RlIGZv
ciAjeAorUEFTUzogRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhh
cyAyIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgYSBiZWZvcmUgcHNldWRvIGVs
ZW1lbnQKK1BBU1M6IERPTU5vZGUgaGFzIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CitQQVNTOiBE
T01Ob2RlIGZvciBiZWZvcmUgcHNldWRvIGVsZW1lbnQgaGFzIHRoZSByaWdodCB0eXBlCitQQVNT
OiBET01Ob2RlIGZvciBhZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0
aWMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGlj
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRmMWM0MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3Rh
dGljLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIFdl
Ykluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoZnVuY3Rpb24oZG9jdW1l
bnROb2RlKSB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVj
dG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNub25lIiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAg
ICAgICB2YXIgZG9tTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQo
bm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNub25l
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZG9tTm9kZS5wc2V1ZG9UeXBl
KCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFkb21Ob2RlLmhhc1Bz
ZXVkb0VsZW1lbnRzKCksICJET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXpl
ID09PSAwKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFkb21Ob2RlLmJlZm9y
ZVBzZXVkb0VsZW1lbnQoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZG9t
Tm9kZS5hZnRlclBzZXVkb0VsZW1lbnQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIFdlYklu
c3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNi
IiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdlYkluc3Bl
Y3Rvci5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChk
b21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydCghZG9tTm9kZS5wc2V1ZG9UeXBlKCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGRvbU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIkRPTU5vZGUgaGFzIHBz
ZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRv
bU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAxLCAiRE9NTm9kZSBoYXMgMSBwc2V1ZG8g
ZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2Rl
LmJlZm9yZVBzZXVkb0VsZW1lbnQoKSwgIkRPTU5vZGUgaGFzIGEgYmVmb3JlIHBzZXVkbyBlbGVt
ZW50Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWRvbU5vZGUuYWZ0
ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGRvZXMgbm90IGhhdmUgYW4gYWZ0ZXIgcHNldWRv
IGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2Rl
LmJlZm9yZVBzZXVkb0VsZW1lbnQoKS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3BlY3Rvci5ET01O
b2RlLlBzZXVkb0VsZW1lbnRUeXBlLkJlZm9yZSwgIkRPTU5vZGUgZm9yIGJlZm9yZSBwc2V1ZG8g
ZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAi
I2EiLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV2ViSW5z
cGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGRvbU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI2EiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KCFkb21Ob2RlLnBzZXVkb1R5cGUoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAiRE9NTm9kZSBoYXMg
cHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
ZG9tTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDEsICJET01Ob2RlIGhhcyAxIHBzZXVk
byBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFkb21O
b2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSwgIkRPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9y
ZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhbiBhZnRlciBwc2V1
ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5v
ZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9N
Tm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5BZnRlciwgIkRPTU5vZGUgZm9yIGFmdGVyIHBzZXVkbyBl
bGVtZW50IGhhcyB0aGUgcmlnaHQgdHlwZSIpOworICAgICAgICB9KTsKKworICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIj
eCIsIGZ1bmN0aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXZWJJbnNw
ZWN0b3IuZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
ZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZvciAjeCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoIWRvbU5vZGUucHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChkb21Ob2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICJET01Ob2RlIGhhcyBw
c2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChk
b21Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMiwgIkRPTU5vZGUgaGFzIDIgcHNldWRv
IGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9k
ZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1ZG8gZWxl
bWVudCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYWZ0
ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudCIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYmVmb3JlUHNl
dWRvRWxlbWVudCgpLnBzZXVkb1R5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRv
RWxlbWVudFR5cGUuQmVmb3JlLCAiRE9NTm9kZSBmb3IgYmVmb3JlIHBzZXVkbyBlbGVtZW50IGhh
cyB0aGUgcmlnaHQgdHlwZSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0
b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5BZnRlciwgIkRPTU5vZGUgZm9yIGFmdGVyIHBz
ZXVkbyBlbGVtZW50IGhhcyB0aGUgcmlnaHQgdHlwZSIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0IGZvciBiYXNp
YyBET01Ob2RlIHBzZXVkbyBlbGVtZW50IHN1cHBvcnQuPC9wPgorCisgICAgPHN0eWxlPgorICAg
ICN4OmJlZm9yZSwgI2I6YmVmb3JlIHsgY29udGVudDogImJlZm9yZSI7IH0KKyAgICAjeDphZnRl
ciwgI2E6YWZ0ZXIgeyBjb250ZW50OiAiYWZ0ZXIiOyB9CisgICAgPC9zdHlsZT4KKworICAgIDxk
aXYgaWQ9Im5vbmUiPlRFU1QgRUxFTUVOVDogTm8gUHNldWRvIEVsZW1lbnRzPC9kaXY+CisgICAg
PGRpdiBpZD0iYiI+VEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIFBzZXVkbyBFbGVtZW50PC9kaXY+
CisgICAgPGRpdiBpZD0iYSI+VEVTVCBFTEVNRU5UOiBIYXMgQWZ0ZXIgUHNldWRvIEVsZW1lbnQ8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJ4Ij5URVNUIEVMRU1FTlQ6IEhhcyBCZWZvcmUgYW5kIEFmdGVy
IFBzZXVkbyBFbGVtZW50czwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAzZWE2ZDNlLi5iNmMwZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxNS0wNy0yNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNob3cgUHNldWRvIEVsZW1lbnRz
IGluIERPTSBUcmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzk2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbjoKKyAgICAgICAgQWRkIG5ldyBwcm9w
ZXJ0aWVzIHRvIERPTU5vZGUgaWYgaXQgaXMgYSBwc2V1ZG8gZWxlbWVudCBvciBpZiBpdCBoYXMK
KyAgICAgICAgcHNldWRvIGVsZW1lbnQgY2hpbGRyZW4uIEFkZCBuZXcgZXZlbnRzIGZvciBpZiBh
IHBzZXVkbyBlbGVtZW50IGlzCisgICAgICAgIGFkZGVkIG9yIHJlbW92ZWQgZHluYW1pY2FsbHkg
dG8gYW4gZXhpc3RpbmcgRE9NTm9kZS4KKwogMjAxNS0wNy0yMiAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lIHNo
b3VsZCBpbW1lZGlhdGVseSBzdGFydCBtb3ZpbmcgcGxheSBoZWFkIHdoZW4gc3RhcnRpbmcgYSBu
ZXcgcmVjb3JkaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL0RPTS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9ET00uanNvbgppbmRleCA1ZTI4ZGRhLi5iMzJiNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RPTS5qc29uCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KQEAgLTE0LDYgKzE0LDEy
IEBACiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIERPTSBub2RlIGlkZW50aWZp
ZXIgdXNlZCB0byByZWZlcmVuY2UgYSBub2RlIHRoYXQgbWF5IG5vdCBoYXZlIGJlZW4gcHVzaGVk
IHRvIHRoZSBmcm9udC1lbmQuIgogICAgICAgICB9LAogICAgICAgICB7CisgICAgICAgICAgICAi
aWQiOiAiUHNldWRvVHlwZSIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAg
ICAgICAgImVudW0iOiBbImJlZm9yZSIsICJhZnRlciJdLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIlBzZXVkbyBlbGVtZW50IHR5cGUuIgorICAgICAgICB9LAorICAgICAgICB7CiAgICAg
ICAgICAgICAiaWQiOiAiTGl2ZVJlZ2lvblJlbGV2YW50IiwKICAgICAgICAgICAgICJ0eXBlIjog
InN0cmluZyIsCiAgICAgICAgICAgICAiZW51bSI6IFsiYWRkaXRpb25zIiwgInJlbW92YWxzIiwg
InRleHQiXSwKQEAgLTM5LDEwICs0NSwxMiBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
eG1sVmVyc2lvbiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICI8Y29kZT5Eb2N1bWVudDwvY29kZT4ncyBYTUwgdmVyc2lvbiBpbiBjYXNlIG9mIFhN
TCBkb2N1bWVudHMuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICI8Y29kZT5BdHRy
PC9jb2RlPidzIG5hbWUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFsdWUiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+
QXR0cjwvY29kZT4ncyB2YWx1ZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwc2V1
ZG9UeXBlIiwgIiRyZWYiOiAiUHNldWRvVHlwZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJQc2V1ZG8gZWxlbWVudCB0eXBlIGZvciB0aGlzIG5vZGUuIiB9LAogICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBJRCBmb3IgZnJhbWUgb3duZXIg
ZWxlbWVudHMuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudERvY3VtZW50
IiwgIiRyZWYiOiAiTm9kZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb250
ZW50IGRvY3VtZW50IGZvciBmcmFtZSBvd25lciBlbGVtZW50cy4iIH0sCiAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzaGFkb3dSb290cyIsICJ0eXBlIjogImFycmF5IiwgIm9wdGlvbmFsIjog
dHJ1ZSwgIml0ZW1zIjogeyAiJHJlZiI6ICJOb2RlIiB9LCAiZGVzY3JpcHRpb24iOiAiU2hhZG93
IHJvb3QgbGlzdCBmb3IgZ2l2ZW4gZWxlbWVudCBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInRlbXBsYXRlQ29udGVudCIsICIkcmVmIjogIk5vZGUiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGVudCBkb2N1bWVudCBmcmFnbWVudCBmb3IgdGVtcGxh
dGUgZWxlbWVudHMiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwc2V1ZG9FbGVtZW50
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJOb2RlIiB9LCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnRzIGFzc29jaWF0ZWQgd2l0
aCB0aGlzIG5vZGUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicm9sZSIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb21wdXRlZCB2
YWx1ZSBmb3IgZmlyc3QgcmVjb2duaXplZCByb2xlIHRva2VuLCBkZWZhdWx0IHJvbGUgcGVyIGVs
ZW1lbnQsIG9yIG92ZXJyaWRkZW4gcm9sZS4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRE9NIGludGVyYWN0aW9uIGlzIGltcGxlbWVudGVkIGluIHRlcm1z
IG9mIG1pcnJvciBvYmplY3RzIHRoYXQgcmVwcmVzZW50IHRoZSBhY3R1YWwgRE9NIG5vZGVzLiBE
T01Ob2RlIGlzIGEgYmFzZSBub2RlIG1pcnJvciB0eXBlLiIKQEAgLTUyNiw2ICs1MzQsMjIgQEAK
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJvb3RJZCIsICIkcmVmIjogIk5vZGVJZCIsICJk
ZXNjcmlwdGlvbiI6ICJTaGFkb3cgcm9vdCBpZC4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiQ2FsbGVkIHdoZW4gc2hhZG93IHJvb3QgaXMgcG9wcGVkIGZy
b20gdGhlIGVsZW1lbnQuIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFt
ZSI6ICJwc2V1ZG9FbGVtZW50QWRkZWQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYXJlbnRJZCIsICIkcmVmIjogIk5vZGVJZCIsICJk
ZXNjcmlwdGlvbiI6ICJQc2V1ZG8gZWxlbWVudCdzIHBhcmVudCBlbGVtZW50IGlkLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInBzZXVkb0VsZW1lbnQiLCAiJHJlZiI6ICJOb2RlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBhZGRlZCBwc2V1ZG8gZWxlbWVudC4iIH0KKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ2FsbGVkIHdoZW4gYSBwc2V1ZG8gZWxl
bWVudCBpcyBhZGRlZCB0byBhbiBlbGVtZW50LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAicHNldWRvRWxlbWVudFJlbW92ZWQiLAorICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYXJlbnRJZCIsICIkcmVm
IjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJQc2V1ZG8gZWxlbWVudCdzIHBhcmVudCBlbGVt
ZW50IGlkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBzZXVkb0VsZW1lbnRJZCIs
ICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcmVtb3ZlZCBwc2V1ZG8gZWxl
bWVudCBpZC4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
Q2FsbGVkIHdoZW4gYSBwc2V1ZG8gZWxlbWVudCBpcyByZW1vdmVkIGZyb20gYW4gZWxlbWVudC4i
CiAgICAgICAgIH0KICAgICBdCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY2OGNhZi4uNDdkMWI4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDgwIEBACiAyMDE1LTA3LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2hvdyBQc2V1ZG8g
RWxlbWVudHMgaW4gRE9NIFRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzOTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMt
Zm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2Rv
bS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9k
b20vcHNldWRvLWVsZW1lbnQtc3RhdGljLmh0bWwKKworICAgICAgICBNdWNoIG9mIHRoaXMgcGF0
Y2ggd2FzIG1vZGVsbGVkIGFmdGVyIHRoZSBCbGluayBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAg
ICBwc2V1ZG8gZWxlbWVudCBpbnNwZWN0aW9uLgorCisgICAgICAgICogZG9tL1BzZXVkb0VsZW1l
bnQuaDoKKyAgICAgICAgKiBkb20vUHNldWRvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQc2V1ZG9FbGVtZW50Ojp+UHNldWRvRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQc2V1
ZG9FbGVtZW50OjpjbGVhckhvc3RFbGVtZW50KToKKyAgICAgICAgU2luY2UgSW5zcGVjdG9yRE9N
QWdlbnQgbWF5IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhpcyBQc2V1ZG9FbGVtZW50IHdlCisgICAg
ICAgIGNhbid0IHJlcG9ydCBpdCBhcyBkZXN0cm95ZWQgaW4gdGhlIGRlc3RydWN0b3IsIGFzIHRo
YXQgd291bGRuJ3QgYmUKKyAgICAgICAgcmVhY2hlZCBpZiB0aGUgaW5zcGVjdG9yIGhvbGRzIGEg
cmVmZXJlbmNlLiBNb3ZlIHRoaXMgdG8gd2hlbiB0aGUKKyAgICAgICAgcHN1ZWRvIGVsZW1lbnQg
aXMgZGlzY29ubmVjdGVkLCB3aGljaCBpcyBpbW1lZGlhdGVseSBiZWZvcmUgZGVzdHJ1Y3Rpb24u
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKToKKyAgICAgICAgV2hlbiBjb21w
dXRpbmcgc3R5bGVzIGZvciBhIHBzZXVkbyBlbGVtZW50LCBjb21wdXRlIHN0eWxlcyBmcm9tIHRo
ZQorICAgICAgICBob3N0IGVsZW1lbnQgZm9yIGp1c3QgdGhlIHBzZXVkbyBlbGVtZW50J3MgcHNl
dWRvIHR5cGUuIExpa2V3aXNlCisgICAgICAgIG9ubHkgaW5jbHVkZSBtYXRjaGVkIHJlc3VsdHMs
IG5vdCBpbmhlcml0ZWQgb3Igb3RoZXJzLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
U1NBZ2VudDo6YnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdCk6CisgICAgICAgIEFkZCB0aGUg
cHNldWRvIHR5cGUgdG8gdGhlIGNoZWNrZXIgY29udGV4dCB0byB0cnkgYW5kIGRldGVjdCBleGFj
dGx5CisgICAgICAgIHdoaWNoIHNlbGVjdG9yIGluIGEgbGlzdCBvZiBzZWxlY3RvcnMgbWF0Y2hl
ZCB0aGUgcHNldWRvIGVsZW1lbnQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZCk6CisgICAgICAgIFdoZW4g
dW5iaW5kaW5nIGFuIGVsZW1lbnQsIGFsc28gdW5iaW5kIGFueSBwc2V1ZG8gZWxlbWVudCBjaGls
ZHJlbgorICAgICAgICBpdCBtYXkgaGF2ZSBoYWQgYW5kIGJvdW5kLgorCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWRpdGFibGVOb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojphc3NlcnRFZGl0YWJsZUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlbW92ZU5vZGUpOgorICAgICAgICBJbXBy
b3ZlIGdyYW1tYXIgaW4gZXJyb3IgbWVzc2FnZS4gRG9uJ3QgYWxsb3cgZWRpdGluZyBwc2V1ZG8g
ZWxlbWVudHMuCisKKyAgICAgICAgKFdlYkNvcmU6OnBzZXVkb0VsZW1lbnRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvck5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVt
ZW50cyk6CisgICAgICAgIElmIGEgbm9kZSBpcyBhIHBzZXVkbyBlbGVtZW50IGluY2x1ZGUgaXRz
IHBzZXVkb1R5cGUuCisgICAgICAgIElmIGEgbm9kZSBoYXMgcHNldWRvIGVsZW1lbnQgY2hpbGRy
ZW4gaW5jbHVkZSB0aGVtLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
cHNldWRvRWxlbWVudENyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdl
bnQ6OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQpOgorICAgICAgICBXaGVuIHBzZXVkbyBlbGVtZW50
cyBhcmUgZHluYW1pY2FsbHkgY3JlYXRlZCBvciBkZXN0cm95ZWQKKyAgICAgICAgcHVzaCBwc2V1
ZG8gZWxlbWVudCBub2RlcyB0byB0aGUgZnJvbnRlbmQgaWYgbmVlZGVkLgorCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnRDcmVhdGVkSW1wbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnRE
ZXN0cm95ZWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVk
b0VsZW1lbnRDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmxheWVyVHJlZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlbmRlckxheWVyRGVzdHJveWVkKToKKyAgICAg
ICAgUGx1bWJpbmcgZm9yIHBzZXVkbyBlbGVtZW50IGNyZWF0ZWQvZGVzdHJveWVkIGV2ZW50cy4K
KworICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OmF0dGFjaEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50SWZOZWVkZWQpOgorICAg
ICAgICBUaGlzIGlzIHRoZSBvbmx5IHBsYWNlIGEgcHNldWRvIGVsZW1lbnQgaXMgY3JlYXRlZCwg
aW5mb3JtIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvckVsZW1lbnREYXRhKToK
KyAgICAgICAgVXBkYXRlIHRoZSBlbGVtZW50IGRhdGEgZm9yIHRoZSBub2RlIGhpZ2hsaWdodCBs
YWJlbCB0byBpbmNsdWRlIHRoZQorICAgICAgICBob3N0IGVsZW1lbnQncyBzZWxlY3RvciBhbmQg
dGhlIHBzZXVkbyBlbGVtZW50IHNlbGVjdG9yLgorCisyMDE1LTA3LTI0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgQ1NTICJjb250ZW50IiBwcm9wZXJ0
eSBpcyBtaXNzaW5nIGluIGdldENvbXB1dGVkU3R5bGVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0Vs
ZW1lbnQuY3BwCmluZGV4IDkzMmI3MWIuLmZlMTFmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRv
RWxlbWVudC5jcHAKQEAgLTY3LDcgKzY3LDEzIEBAIFBzZXVkb0VsZW1lbnQ6OlBzZXVkb0VsZW1l
bnQoRWxlbWVudCYgaG9zdCwgUHNldWRvSWQgcHNldWRvSWQpCiBQc2V1ZG9FbGVtZW50Ojp+UHNl
dWRvRWxlbWVudCgpCiB7CiAgICAgQVNTRVJUKCFtX2hvc3RFbGVtZW50KTsKK30KKwordm9pZCBQ
c2V1ZG9FbGVtZW50OjpjbGVhckhvc3RFbGVtZW50KCkKK3sKICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQoZG9jdW1lbnQoKS5wYWdlKCksICp0aGlz
KTsKKworICAgIG1faG9zdEVsZW1lbnQgPSBudWxscHRyOwogfQogCiBSZWZQdHI8UmVuZGVyU3R5
bGU+IFBzZXVkb0VsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoUmVuZGVyU3R5bGUmIHBh
cmVudFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmgKaW5kZXggOWNlMmJhYy4uNTgx
ZTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5Qc2V1ZG9FbGVtZW50KCk7CiAKICAgICBFbGVtZW50KiBob3N0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faG9zdEVsZW1lbnQ7IH0KLSAgICB2b2lkIGNsZWFy
SG9zdEVsZW1lbnQoKSB7IG1faG9zdEVsZW1lbnQgPSBudWxscHRyOyB9CisgICAgdm9pZCBjbGVh
ckhvc3RFbGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxSZW5kZXJTdHlsZT4gY3VzdG9t
U3R5bGVGb3JSZW5kZXJlcihSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDNkMDYyMDguLmFk
MWY0ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIk5hbWVkRmxvd0NvbGxlY3Rpb24uaCIK
ICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQc2V1
ZG9FbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJTVkdTdHlsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKQEAg
LTUwOSw0OSArNTEwLDYxIEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHls
ZXNGb3JOb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vCiAgICAgaWYgKCFlbGVt
ZW50KQogICAgICAgICByZXR1cm47CiAKKyAgICBFbGVtZW50KiBvcmlnaW5hbEVsZW1lbnQgPSBl
bGVtZW50OworICAgIFBzZXVkb0lkIGVsZW1lbnRQc2V1ZG9JZCA9IGVsZW1lbnQtPnBzZXVkb0lk
KCk7CisgICAgaWYgKGVsZW1lbnRQc2V1ZG9JZCkgeworICAgICAgICBlbGVtZW50ID0gZG93bmNh
c3Q8UHNldWRvRWxlbWVudD4oKmVsZW1lbnQpLmhvc3RFbGVtZW50KCk7CisgICAgICAgIGlmICgh
ZWxlbWVudCkgeworICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIlBzZXVk
byBlbGVtZW50IGhhcyBubyBwYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKwogICAgIC8vIE1hdGNoZWQgcnVsZXMuCiAgICAgU3R5bGVSZXNvbHZlciYgc3R5
bGVSZXNvbHZlciA9IGVsZW1lbnQtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpOwot
ICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5zdHlsZVJ1bGVzRm9yRWxlbWVu
dChlbGVtZW50LCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7Ci0gICAgbWF0Y2hlZENTU1J1
bGVzID0gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVz
b2x2ZXIsIGVsZW1lbnQpOworICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5w
c2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBlbGVtZW50UHNldWRvSWQsIFN0eWxl
UmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKKyAgICBtYXRjaGVkQ1NTUnVsZXMgPSBidWlsZEFycmF5
Rm9yTWF0Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgb3JpZ2luYWxF
bGVtZW50LCBOT1BTRVVETyk7CiAKLSAgICAvLyBQc2V1ZG8gZWxlbWVudHMuCi0gICAgaWYgKCFp
bmNsdWRlUHNldWRvIHx8ICppbmNsdWRlUHNldWRvKSB7Ci0gICAgICAgIGF1dG8gcHNldWRvRWxl
bWVudHMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpD
U1M6OlBzZXVkb0lkTWF0Y2hlcz46OmNyZWF0ZSgpOwotICAgICAgICBmb3IgKFBzZXVkb0lkIHBz
ZXVkb0lkID0gRklSU1RfUFVCTElDX1BTRVVET0lEOyBwc2V1ZG9JZCA8IEFGVEVSX0xBU1RfSU5U
RVJOQUxfUFNFVURPSUQ7IHBzZXVkb0lkID0gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+KHBzZXVkb0lk
ICsgMSkpIHsKLSAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5w
c2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBwc2V1ZG9JZCwgU3R5bGVSZXNvbHZl
cjo6QWxsQ1NTUnVsZXMpOwotICAgICAgICAgICAgaWYgKCFtYXRjaGVkUnVsZXMuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICAgICAgYXV0byBtYXRjaGVzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6
Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6OmNyZWF0ZSgpCi0gICAgICAgICAgICAgICAgICAgIC5zZXRQ
c2V1ZG9JZChzdGF0aWNfY2FzdDxpbnQ+KHBzZXVkb0lkKSkKLSAgICAgICAgICAgICAgICAgICAg
LnNldE1hdGNoZXMoYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0
eWxlUmVzb2x2ZXIsIGVsZW1lbnQpKQorICAgIGlmICghb3JpZ2luYWxFbGVtZW50LT5pc1BzZXVk
b0VsZW1lbnQoKSkgeworICAgICAgICAvLyBQc2V1ZG8gZWxlbWVudHMuCisgICAgICAgIGlmICgh
aW5jbHVkZVBzZXVkbyB8fCAqaW5jbHVkZVBzZXVkbykgeworICAgICAgICAgICAgYXV0byBwc2V1
ZG9FbGVtZW50cyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzPjo6Y3JlYXRlKCk7CisgICAgICAgICAgICBmb3IgKFBz
ZXVkb0lkIHBzZXVkb0lkID0gRklSU1RfUFVCTElDX1BTRVVET0lEOyBwc2V1ZG9JZCA8IEFGVEVS
X0xBU1RfSU5URVJOQUxfUFNFVURPSUQ7IHBzZXVkb0lkID0gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+
KHBzZXVkb0lkICsgMSkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZWRSdWxlcyA9IHN0
eWxlUmVzb2x2ZXIucHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgcHNldWRvSWQs
IFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1hdGNo
ZWRSdWxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVzID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6OmNyZWF0ZSgpCisgICAg
ICAgICAgICAgICAgICAgICAgICAuc2V0UHNldWRvSWQoc3RhdGljX2Nhc3Q8aW50Pihwc2V1ZG9J
ZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAuc2V0TWF0Y2hlcyhidWlsZEFycmF5Rm9yTWF0
Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgZWxlbWVudCwgcHNldWRv
SWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAg
ICAgICAgcHNldWRvRWxlbWVudHMtPmFkZEl0ZW0oV1RGOjptb3ZlKG1hdGNoZXMpKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBzZXVkb0lkTWF0Y2hl
cyA9IFdURjo6bW92ZShwc2V1ZG9FbGVtZW50cyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJ
bmhlcml0ZWQgc3R5bGVzLgorICAgICAgICBpZiAoIWluY2x1ZGVJbmhlcml0ZWQgfHwgKmluY2x1
ZGVJbmhlcml0ZWQpIHsKKyAgICAgICAgICAgIGF1dG8gZW50cmllcyA9IEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6SW5oZXJpdGVkU3R5bGVFbnRy
eT46OmNyZWF0ZSgpOworICAgICAgICAgICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgIHdoaWxlIChwYXJlbnRFbGVtZW50KSB7
CisgICAgICAgICAgICAgICAgU3R5bGVSZXNvbHZlciYgcGFyZW50U3R5bGVSZXNvbHZlciA9IHBh
cmVudEVsZW1lbnQtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpOworICAgICAgICAg
ICAgICAgIGF1dG8gcGFyZW50TWF0Y2hlZFJ1bGVzID0gcGFyZW50U3R5bGVSZXNvbHZlci5zdHls
ZVJ1bGVzRm9yRWxlbWVudChwYXJlbnRFbGVtZW50LCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxl
cyk7CisgICAgICAgICAgICAgICAgYXV0byBlbnRyeSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNT
Uzo6SW5oZXJpdGVkU3R5bGVFbnRyeTo6Y3JlYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgLnNl
dE1hdGNoZWRDU1NSdWxlcyhidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KHBhcmVudE1hdGNo
ZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgcGFyZW50RWxlbWVudCwgTk9QU0VVRE8pKQogICAgICAg
ICAgICAgICAgICAgICAucmVsZWFzZSgpOwotICAgICAgICAgICAgICAgIHBzZXVkb0VsZW1lbnRz
LT5hZGRJdGVtKFdURjo6bW92ZShtYXRjaGVzKSk7CisgICAgICAgICAgICAgICAgaWYgKHBhcmVu
dEVsZW1lbnQtPnN0eWxlKCkgJiYgcGFyZW50RWxlbWVudC0+c3R5bGUoKS0+bGVuZ3RoKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlKiBz
dHlsZVNoZWV0ID0gYXNJbnNwZWN0b3JTdHlsZVNoZWV0KHBhcmVudEVsZW1lbnQpOworICAgICAg
ICAgICAgICAgICAgICBpZiAoc3R5bGVTaGVldCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVu
dHJ5LT5zZXRJbmxpbmVTdHlsZShzdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclN0eWxlKHN0eWxl
U2hlZXQtPnN0eWxlRm9ySWQoSW5zcGVjdG9yQ1NTSWQoc3R5bGVTaGVldC0+aWQoKSwgMCkpKSk7
CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZW50cmllcy0+YWRkSXRlbShX
VEY6Om1vdmUoZW50cnkpKTsKKyAgICAgICAgICAgICAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50
RWxlbWVudC0+cGFyZW50RWxlbWVudCgpOwogICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAg
ICAgICAgcHNldWRvSWRNYXRjaGVzID0gV1RGOjptb3ZlKHBzZXVkb0VsZW1lbnRzKTsKLSAgICB9
CiAKLSAgICAvLyBJbmhlcml0ZWQgc3R5bGVzLgotICAgIGlmICghaW5jbHVkZUluaGVyaXRlZCB8
fCAqaW5jbHVkZUluaGVyaXRlZCkgewotICAgICAgICBhdXRvIGVudHJpZXMgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkluaGVyaXRlZFN0eWxl
RW50cnk+OjpjcmVhdGUoKTsKLSAgICAgICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKTsKLSAgICAgICAgd2hpbGUgKHBhcmVudEVsZW1lbnQpIHsKLSAg
ICAgICAgICAgIFN0eWxlUmVzb2x2ZXImIHBhcmVudFN0eWxlUmVzb2x2ZXIgPSBwYXJlbnRFbGVt
ZW50LT5kb2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2ZXIoKTsKLSAgICAgICAgICAgIGF1dG8g
cGFyZW50TWF0Y2hlZFJ1bGVzID0gcGFyZW50U3R5bGVSZXNvbHZlci5zdHlsZVJ1bGVzRm9yRWxl
bWVudChwYXJlbnRFbGVtZW50LCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7Ci0gICAgICAg
ICAgICBhdXRvIGVudHJ5ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRTdHls
ZUVudHJ5OjpjcmVhdGUoKQotICAgICAgICAgICAgICAgIC5zZXRNYXRjaGVkQ1NTUnVsZXMoYnVp
bGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChwYXJlbnRNYXRjaGVkUnVsZXMsIHN0eWxlUmVzb2x2
ZXIsIHBhcmVudEVsZW1lbnQpKQotICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7Ci0gICAgICAg
ICAgICBpZiAocGFyZW50RWxlbWVudC0+c3R5bGUoKSAmJiBwYXJlbnRFbGVtZW50LT5zdHlsZSgp
LT5sZW5ndGgoKSkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxp
bmVTdHlsZSogc3R5bGVTaGVldCA9IGFzSW5zcGVjdG9yU3R5bGVTaGVldChwYXJlbnRFbGVtZW50
KTsKLSAgICAgICAgICAgICAgICBpZiAoc3R5bGVTaGVldCkKLSAgICAgICAgICAgICAgICAgICAg
ZW50cnktPnNldElubGluZVN0eWxlKHN0eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yU3R5bGUoc3R5
bGVTaGVldC0+c3R5bGVGb3JJZChJbnNwZWN0b3JDU1NJZChzdHlsZVNoZWV0LT5pZCgpLCAwKSkp
KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZW50cmllcy0+YWRkSXRlbShXVEY6Om1v
dmUoZW50cnkpKTsKLSAgICAgICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LT5w
YXJlbnRFbGVtZW50KCk7CisgICAgICAgICAgICBpbmhlcml0ZWRFbnRyaWVzID0gV1RGOjptb3Zl
KGVudHJpZXMpOwogICAgICAgICB9Ci0KLSAgICAgICAgaW5oZXJpdGVkRW50cmllcyA9IFdURjo6
bW92ZShlbnRyaWVzKTsKICAgICB9CiB9CiAKQEAgLTkxMiwxMSArOTI1LDEyIEBAIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNTU0FnZW50OjpidWls
ZE9iamVjdEZvclJ1bGUoCiAgICAgcmV0dXJuIGluc3BlY3RvclN0eWxlU2hlZXQgPyBpbnNwZWN0
b3JTdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclJ1bGUocnVsZSwgbnVsbHB0cikgOiBudWxscHRy
OwogfQogCi1SZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRBcnJheUZvck1h
dGNoZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiBtYXRjaGVkUnVs
ZXMsIFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIEVsZW1lbnQqIGVsZW1lbnQpCitSZWZQ
dHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpS
dWxlTWF0Y2g+PiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlz
dChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiBtYXRjaGVkUnVsZXMsIFN0eWxlUmVz
b2x2ZXImIHN0eWxlUmVzb2x2ZXIsIEVsZW1lbnQqIGVsZW1lbnQsIFBzZXVkb0lkIHBzdWVkb0lk
KQogewogICAgIGF1dG8gcmVzdWx0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+OjpjcmVhdGUoKTsKIAogICAgIFNlbGVjdG9y
Q2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0IGNvbnRleHQoU2VsZWN0b3JDaGVja2VyOjpNb2RlOjpD
b2xsZWN0aW5nUnVsZXMpOworICAgIGNvbnRleHQucHNldWRvSWQgPSBwc3VlZG9JZCA/IHBzdWVk
b0lkIDogZWxlbWVudC0+cHNldWRvSWQoKTsKICAgICBTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JD
aGVja2VyKGVsZW1lbnQtPmRvY3VtZW50KCkpOwogCiAgICAgZm9yIChhdXRvJiBtYXRjaGVkUnVs
ZSA6IG1hdGNoZWRSdWxlcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuaAppbmRleCBhNjMwZmU1Li4yM2JlYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtMTQ4LDcgKzE0OCw3IEBAIHByaXZhdGU6
CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBidWlsZE9i
amVjdEZvclJ1bGUoU3R5bGVSdWxlKiwgU3R5bGVSZXNvbHZlciYsIEVsZW1lbnQqKTsKICAgICBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBidWlsZE9iamVjdEZvclJ1
bGUoQ1NTU3R5bGVSdWxlKik7Ci0gICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoPj4gYnVpbGRBcnJheUZvck1hdGNo
ZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiwgU3R5bGVSZXNvbHZl
ciYsIEVsZW1lbnQqKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1
bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4mLCBTdHlsZVJlc29sdmVyJiwg
RWxlbWVudCosIFBzZXVkb0lkKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpDU1NTdHlsZT4gYnVpbGRPYmplY3RGb3JBdHRyaWJ1dGVzU3R5bGUoRWxlbWVudCopOwogICAg
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpD
U1M6OlJlZ2lvbj4+IGJ1aWxkQXJyYXlGb3JSZWdpb25zKEVycm9yU3RyaW5nJiwgUmVmUHRyPE5v
ZGVMaXN0PiYmLCBpbnQgZG9jdW1lbnROb2RlSWQpOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDU1M6Ok5hbWVkRmxvdz4gYnVpbGRPYmplY3RGb3JOYW1lZEZsb3coRXJyb3JTdHJp
bmcmLCBXZWJLaXROYW1lZEZsb3cqLCBpbnQgZG9jdW1lbnROb2RlSWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNzE5Zjc2MS4uOTE3
Nzc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQu
aCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3Rh
bnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKQEAgLTMzMiw4ICszMzMsMTMgQEAgdm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBub2Rl
c01hcCkKICAgICB9CiAKICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpKSB7Ci0gICAgICAgIGlm
IChTaGFkb3dSb290KiByb290ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLnNoYWRvd1Jvb3Qo
KSkKKyAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsK
KyAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LnNoYWRvd1Jvb3QoKSkKICAg
ICAgICAgICAgIHVuYmluZChyb290LCBub2Rlc01hcCk7CisgICAgICAgIGlmIChQc2V1ZG9FbGVt
ZW50KiBiZWZvcmVFbGVtZW50ID0gZWxlbWVudC5iZWZvcmVQc2V1ZG9FbGVtZW50KCkpCisgICAg
ICAgICAgICB1bmJpbmQoYmVmb3JlRWxlbWVudCwgbm9kZXNNYXApOworICAgICAgICBpZiAoUHNl
dWRvRWxlbWVudCogYWZ0ZXJFbGVtZW50ID0gZWxlbWVudC5hZnRlclBzZXVkb0VsZW1lbnQoKSkK
KyAgICAgICAgICAgIHVuYmluZChhZnRlckVsZW1lbnQsIG5vZGVzTWFwKTsKICAgICB9CiAKICAg
ICBub2Rlc01hcC0+cmVtb3ZlKG5vZGUpOwpAQCAtMzkyLDcgKzM5OCwxMSBAQCBOb2RlKiBJbnNw
ZWN0b3JET01BZ2VudDo6YXNzZXJ0RWRpdGFibGVOb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmlu
ZywgaW50IG5vZGVJZAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgaWYgKG5vZGUtPmlzSW5TaGFkb3dUcmVlKCkpIHsKLSAgICAgICAgZXJyb3JTdHJpbmcgPSBB
U0NJSUxpdGVyYWwoIkNhbiBub3QgZWRpdCBub2RlcyBmcm9tIHNoYWRvdyB0cmVlcyIpOworICAg
ICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQgbm9kZXMgZnJvbSBz
aGFkb3cgdHJlZXMiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIGlmIChu
b2RlLT5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0
ZXJhbCgiQ2Fubm90IGVkaXQgcHNldWRvIGVsZW1lbnRzIik7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIH0KICAgICByZXR1cm4gbm9kZTsKQEAgLTQwNCw3ICs0MTQsMTEgQEAgRWxlbWVu
dCogSW5zcGVjdG9yRE9NQWdlbnQ6OmFzc2VydEVkaXRhYmxlRWxlbWVudChFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGludAogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgaWYgKGVsZW1lbnQtPmlzSW5TaGFkb3dUcmVlKCkpIHsKLSAgICAgICAgZXJyb3JT
dHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbiBub3QgZWRpdCBlbGVtZW50cyBmcm9tIHNoYWRvdyB0
cmVlcyIpOworICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQg
ZWxlbWVudHMgZnJvbSBzaGFkb3cgdHJlZXMiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorICAgIGlmIChlbGVtZW50LT5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICBlcnJv
clN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQgcHNldWRvIGVsZW1lbnRzIik7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICByZXR1cm4gZWxlbWVudDsKQEAgLTY5
OCw3ICs3MTIsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZW1vdmVOb2RlKEVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCkKIAogICAgIENvbnRhaW5lck5vZGUqIHBhcmVu
dE5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgaWYgKCFwYXJlbnROb2RlKSB7Ci0gICAg
ICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJDYW4gbm90IHJlbW92ZSBkZXRhY2hlZCBu
b2RlIik7CisgICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJDYW5ub3QgcmVtb3Zl
IGRldGFjaGVkIG5vZGUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTI1NCw2ICsx
MjY4LDIwIEBAIHN0YXRpYyBTdHJpbmcgZG9jdW1lbnRCYXNlVVJMU3RyaW5nKERvY3VtZW50KiBk
b2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKCIiKS5zdHJpbmcoKTsK
IH0KIAorc3RhdGljIGJvb2wgcHNldWRvRWxlbWVudFR5cGUoUHNldWRvSWQgcHNldWRvSWQsIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6UHNldWRvVHlwZSogdHlwZSkKK3sKKyAgICBzd2l0Y2gg
KHBzZXVkb0lkKSB7CisgICAgY2FzZSBCRUZPUkU6CisgICAgICAgICp0eXBlID0gSW5zcGVjdG9y
OjpQcm90b2NvbDo6RE9NOjpQc2V1ZG9UeXBlOjpCZWZvcmU7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGNhc2UgQUZURVI6CisgICAgICAgICp0eXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6
RE9NOjpQc2V1ZG9UeXBlOjpBZnRlcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogUmVmPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZShO
b2RlKiBub2RlLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCkKIHsKICAgICBpbnQg
aWQgPSBiaW5kKG5vZGUsIG5vZGVzTWFwKTsKQEAgLTEzMjcsNiArMTM1NSwxNiBAQCBSZWY8SW5z
cGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmpl
Y3RGb3JOb2RlKE5vZGUqCiAgICAgICAgICAgICB2YWx1ZS0+c2V0VGVtcGxhdGVDb250ZW50KGJ1
aWxkT2JqZWN0Rm9yTm9kZShkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50PihlbGVtZW50KS5j
b250ZW50KCksIDAsIG5vZGVzTWFwKSk7CiAjZW5kaWYKIAorICAgICAgICBpZiAoZWxlbWVudC5w
c2V1ZG9JZCgpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3I6OlByb3RvY29sOjpET006OlBzZXVk
b1R5cGUgcHNldWRvVHlwZTsKKyAgICAgICAgICAgIGlmIChwc2V1ZG9FbGVtZW50VHlwZShlbGVt
ZW50LnBzZXVkb0lkKCksICZwc2V1ZG9UeXBlKSkKKyAgICAgICAgICAgICAgICB2YWx1ZS0+c2V0
UHNldWRvVHlwZShwc2V1ZG9UeXBlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGF1
dG8gcHNldWRvRWxlbWVudHMgPSBidWlsZEFycmF5Rm9yUHNldWRvRWxlbWVudHMoZWxlbWVudCwg
bm9kZXNNYXApOworICAgICAgICAgICAgaWYgKHBzZXVkb0VsZW1lbnRzKQorICAgICAgICAgICAg
ICAgIHZhbHVlLT5zZXRQc2V1ZG9FbGVtZW50cyhXVEY6Om1vdmUocHNldWRvRWxlbWVudHMpKTsK
KyAgICAgICAgfQorCiAgICAgfSBlbHNlIGlmIChpczxEb2N1bWVudD4oKm5vZGUpKSB7CiAgICAg
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigqbm9kZSk7CiAgICAg
ICAgIHZhbHVlLT5zZXRGcmFtZUlkKG1fcGFnZUFnZW50LT5mcmFtZUlkKGRvY3VtZW50LmZyYW1l
KCkpKTsKQEAgLTEzOTQsNiArMTQzMiwyMSBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJy
YXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPj4gSW5zcGVjdG9yRE9NQWdlbgogICAg
IHJldHVybiBXVEY6Om1vdmUoY2hpbGRyZW4pOwogfQogCitSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPj4gSW5zcGVjdG9yRE9N
QWdlbnQ6OmJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVtZW50cyhjb25zdCBFbGVtZW50JiBlbGVtZW50
LCBOb2RlVG9JZE1hcCogbm9kZXNNYXApCit7CisgICAgUHNldWRvRWxlbWVudCogYmVmb3JlRWxl
bWVudCA9IGVsZW1lbnQuYmVmb3JlUHNldWRvRWxlbWVudCgpOworICAgIFBzZXVkb0VsZW1lbnQq
IGFmdGVyRWxlbWVudCA9IGVsZW1lbnQuYWZ0ZXJQc2V1ZG9FbGVtZW50KCk7CisgICAgaWYgKCFi
ZWZvcmVFbGVtZW50ICYmICFhZnRlckVsZW1lbnQpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgYXV0byBwc2V1ZG9FbGVtZW50cyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT46OmNyZWF0ZSgpOworICAgIGlmIChiZWZvcmVF
bGVtZW50KQorICAgICAgICBwc2V1ZG9FbGVtZW50cy0+YWRkSXRlbShidWlsZE9iamVjdEZvck5v
ZGUoYmVmb3JlRWxlbWVudCwgMCwgbm9kZXNNYXApKTsKKyAgICBpZiAoYWZ0ZXJFbGVtZW50KQor
ICAgICAgICBwc2V1ZG9FbGVtZW50cy0+YWRkSXRlbShidWlsZE9iamVjdEZvck5vZGUoYWZ0ZXJF
bGVtZW50LCAwLCBub2Rlc01hcCkpOworICAgIHJldHVybiBXVEY6Om1vdmUocHNldWRvRWxlbWVu
dHMpOworfQorCiBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExpc3RlbmVyPiBJ
bnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVyKGNvbnN0IFJlZ2lz
dGVyZWRFdmVudExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwgY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyogb2JqZWN0R3JvdXBJ
ZCkKIHsKICAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lciA9IHJlZ2lzdGVy
ZWRFdmVudExpc3RlbmVyLmxpc3RlbmVyOwpAQCAtMTk1Nyw2ICsyMDEwLDM2IEBAIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmZyYW1lRG9jdW1lbnRVcGRhdGVkKEZyYW1lKiBmcmFtZSkKICAgICBz
ZXREb2N1bWVudChkb2N1bWVudCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnBzZXVk
b0VsZW1lbnRDcmVhdGVkKFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAgRWxl
bWVudCogcGFyZW50ID0gcHNldWRvRWxlbWVudC5ob3N0RWxlbWVudCgpOworICAgIGlmICghcGFy
ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgcGFyZW50SWQgPSBtX2RvY3VtZW50Tm9k
ZVRvSWRNYXAuZ2V0KHBhcmVudCk7CisgICAgaWYgKCFwYXJlbnRJZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKHBhcmVudElkLCAxKTsKKyAgICBtX2Zy
b250ZW5kRGlzcGF0Y2hlci0+cHNldWRvRWxlbWVudEFkZGVkKHBhcmVudElkLCBidWlsZE9iamVj
dEZvck5vZGUoJnBzZXVkb0VsZW1lbnQsIDAsICZtX2RvY3VtZW50Tm9kZVRvSWRNYXApKTsKK30K
Kwordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHNldWRvRWxlbWVudERlc3Ryb3llZChQc2V1ZG9F
bGVtZW50JiBwc2V1ZG9FbGVtZW50KQoreworICAgIGludCBwc2V1ZG9FbGVtZW50SWQgPSBtX2Rv
Y3VtZW50Tm9kZVRvSWRNYXAuZ2V0KCZwc2V1ZG9FbGVtZW50KTsKKyAgICBpZiAoIXBzZXVkb0Vs
ZW1lbnRJZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgYSBQc2V1ZG9FbGVtZW50IGlz
IGJvdW5kLCBpdHMgcGFyZW50IGVsZW1lbnQgbXVzdCBoYXZlIGJlZW4gYm91bmQuCisgICAgRWxl
bWVudCogcGFyZW50ID0gcHNldWRvRWxlbWVudC5ob3N0RWxlbWVudCgpOworICAgIEFTU0VSVChw
YXJlbnQpOworICAgIGludCBwYXJlbnRJZCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQocGFy
ZW50KTsKKyAgICBBU1NFUlQocGFyZW50SWQpOworCisgICAgdW5iaW5kKCZwc2V1ZG9FbGVtZW50
LCAmbV9kb2N1bWVudE5vZGVUb0lkTWFwKTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHNl
dWRvRWxlbWVudFJlbW92ZWQocGFyZW50SWQsIHBzZXVkb0VsZW1lbnRJZCk7Cit9CisKIE5vZGUq
IEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAg
ICAgLy8gVGhlIHBhdGggaXMgb2YgZm9ybSAiMSxIVE1MLDIsQk9EWSwxLERJViIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXggYThhNTUzMS4uMzAz
NjA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgK
QEAgLTE2OSw2ICsxNjksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KE5v
ZGUmKTsKICAgICB2b2lkIGRpZENvbW1pdExvYWQoRG9jdW1lbnQqKTsKICAgICB2b2lkIGZyYW1l
RG9jdW1lbnRVcGRhdGVkKEZyYW1lKik7CisgICAgdm9pZCBwc2V1ZG9FbGVtZW50Q3JlYXRlZChQ
c2V1ZG9FbGVtZW50Jik7CisgICAgdm9pZCBwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBzZXVkb0Vs
ZW1lbnQmKTsKIAogICAgIC8vIENhbGxiYWNrcyB0aGF0IGRvbid0IGRpcmVjdGx5IGNvcnJlc3Bv
bmQgdG8gYW4gaW5zdHJ1bWVudGF0aW9uIGVudHJ5IHBvaW50LgogICAgIHZvaWQgc2V0RG9jdW1l
bnQoRG9jdW1lbnQqKTsKQEAgLTIzMyw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IGJ1aWxkT2JqZWN0Rm9yTm9kZShOb2RlKiwgaW50
IGRlcHRoLCBOb2RlVG9JZE1hcCopOwogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJh
eTxTdHJpbmc+PiBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMoRWxlbWVudCopOwogICAg
IFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpET006
Ok5vZGU+PiBidWlsZEFycmF5Rm9yQ29udGFpbmVyQ2hpbGRyZW4oTm9kZSogY29udGFpbmVyLCBp
bnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4+IGJ1aWxkQXJy
YXlGb3JQc2V1ZG9FbGVtZW50cyhjb25zdCBFbGVtZW50JiBlbGVtZW50LCBOb2RlVG9JZE1hcCog
bm9kZXNNYXApOwogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkV2ZW50TGlzdGVu
ZXI+IGJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lciYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiwgY29uc3QgU3RyaW5n
KiBvYmplY3RHcm91cElkKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpB
Y2Nlc3NpYmlsaXR5UHJvcGVydGllcz4gYnVpbGRPYmplY3RGb3JBY2Nlc3NpYmlsaXR5UHJvcGVy
dGllcyhOb2RlKik7CiAgICAgdm9pZCBwcm9jZXNzQWNjZXNzaWJpbGl0eUNoaWxkcmVuKFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiYmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJy
YXk8aW50Pj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDQxYzgyODA5Li41ZWViMGRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cApAQCAtMjA4LDYgKzIwOCwyMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bFBvcFNoYWRvd1Jvb3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydQogICAgICAgICBk
b21BZ2VudC0+d2lsbFBvcFNoYWRvd1Jvb3QoaG9zdCwgcm9vdCk7CiB9CiAKK3ZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50Q3JlYXRlZEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgUHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVu
dCkKK3sKKyAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGlu
Z0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpKQorICAgICAgICBkb21BZ2VudC0+cHNldWRvRWxl
bWVudENyZWF0ZWQocHNldWRvRWxlbWVudCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBQc2V1ZG9FbGVtZW50JiBwc2V1ZG9FbGVtZW50KQoreworICAg
IGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmlu
c3BlY3RvckRPTUFnZW50KCkpCisgICAgICAgIGRvbUFnZW50LT5wc2V1ZG9FbGVtZW50RGVzdHJv
eWVkKHBzZXVkb0VsZW1lbnQpOworICAgIGlmIChJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogbGF5
ZXJUcmVlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckxheWVyVHJlZUFnZW50
KCkpCisgICAgICAgIGxheWVyVHJlZUFnZW50LT5wc2V1ZG9FbGVtZW50RGVzdHJveWVkKHBzZXVk
b0VsZW1lbnQpOworfQorCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRl
TmFtZWRGbG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBE
b2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyYgbmFtZWRGbG93KQogewogICAgIGlm
ICghZG9jdW1lbnQpCkBAIC0xMjc0LDEwICsxMjg4LDQgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnJlbmRlckxheWVyRGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBp
bnMKICAgICAgICAgbGF5ZXJUcmVlQWdlbnQtPnJlbmRlckxheWVyRGVzdHJveWVkKHJlbmRlckxh
eWVyKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnRE
ZXN0cm95ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFBz
ZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCi17Ci0gICAgaWYgKEluc3BlY3RvckxheWVyVHJl
ZUFnZW50KiBsYXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yTGF5
ZXJUcmVlQWdlbnQoKSkKLSAgICAgICAgbGF5ZXJUcmVlQWdlbnQtPnBzZXVkb0VsZW1lbnREZXN0
cm95ZWQocHNldWRvRWxlbWVudCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApp
bmRleCBhMDM1NGFkLi42MWFiNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC03NSw5ICs3NSw5IEBAIGNsYXNzIERP
TVdpbmRvdzsKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIERhdGFiYXNlOwogY2xhc3Mg
RG9jdW1lbnQ7Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBE
b2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOworY2xhc3MgRWxlbWVudDsKIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJbnNwZWN0b3JDU1NBZ2Vu
dDsKQEAgLTg1LDcgKzg1LDYgQEAgY2xhc3MgSW5zcGVjdG9yQ1NTT01XcmFwcGVyczsKIGNsYXNz
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7
CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwotY2xhc3MgVVJMOwogY2xhc3MgTm9kZTsKIGNs
YXNzIFBzZXVkb0VsZW1lbnQ7CiBjbGFzcyBSZW5kZXJMYXllcjsKQEAgLTEwMCw2ICs5OSw3IEBA
IGNsYXNzIFN0b3JhZ2VBcmVhOwogY2xhc3MgU3R5bGVSZXNvbHZlcjsKIGNsYXNzIFN0eWxlUnVs
ZTsKIGNsYXNzIFRocmVhZGFibGVMb2FkZXJDbGllbnQ7CitjbGFzcyBVUkw7CiBjbGFzcyBXb3Jr
ZXJHbG9iYWxTY29wZTsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJveHk7CiBjbGFzcyBYTUxI
dHRwUmVxdWVzdDsKQEAgLTEyNiw2ICsxMjYsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQg
bWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRQ
dXNoU2hhZG93Um9vdChFbGVtZW50JiBob3N0LCBTaGFkb3dSb290Jik7CiAgICAgc3RhdGljIHZv
aWQgd2lsbFBvcFNoYWRvd1Jvb3QoRWxlbWVudCYgaG9zdCwgU2hhZG93Um9vdCYpOworICAgIHN0
YXRpYyB2b2lkIHBzZXVkb0VsZW1lbnRDcmVhdGVkKFBhZ2UqLCBQc2V1ZG9FbGVtZW50Jik7Cisg
ICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3llZChQYWdlKiwgUHNldWRvRWxlbWVu
dCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZU5hbWVkRmxvdyhEb2N1bWVudCosIFdlYktp
dE5hbWVkRmxvdyYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVOYW1lZEZsb3coRG9jdW1l
bnQqLCBXZWJLaXROYW1lZEZsb3cmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VSZWdpb25P
dmVyc2V0KERvY3VtZW50JiwgV2ViS2l0TmFtZWRGbG93Jik7CkBAIC0yNzUsNyArMjc3LDYgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlKFBhZ2UqKTsKICAg
ICBzdGF0aWMgdm9pZCByZW5kZXJMYXllckRlc3Ryb3llZChQYWdlKiwgY29uc3QgUmVuZGVyTGF5
ZXImKTsKLSAgICBzdGF0aWMgdm9pZCBwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBhZ2UqLCBQc2V1
ZG9FbGVtZW50Jik7CiAKICAgICBzdGF0aWMgdm9pZCBmcm9udGVuZENyZWF0ZWQoKSB7IHNfZnJv
bnRlbmRDb3VudGVyICs9IDE7IH0KICAgICBzdGF0aWMgdm9pZCBmcm9udGVuZERlbGV0ZWQoKSB7
IHNfZnJvbnRlbmRDb3VudGVyIC09IDE7IH0KQEAgLTMwNiw2ICszMDcsOCBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyB2b2lkIG1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJik7CiAgICAgc3RhdGljIHZvaWQgZGlkUHVzaFNoYWRvd1Jvb3RJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBFbGVtZW50JiBob3N0LCBTaGFkb3dSb290Jik7CiAgICAgc3RhdGljIHZv
aWQgd2lsbFBvcFNoYWRvd1Jvb3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBFbGVtZW50JiBo
b3N0LCBTaGFkb3dSb290Jik7CisgICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudENyZWF0ZWRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBQc2V1ZG9FbGVtZW50Jik7CisgICAgc3RhdGljIHZv
aWQgcHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFBzZXVk
b0VsZW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVOYW1lZEZsb3dJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyYpOwogICAgIHN0YXRp
YyB2b2lkIHdpbGxSZW1vdmVOYW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBEb2N1
bWVudCosIFdlYktpdE5hbWVkRmxvdyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVJlZ2lv
bk92ZXJzZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBEb2N1bWVudCYsIFdlYktpdE5hbWVk
RmxvdyYpOwpAQCAtNDQ5LDcgKzQ1Miw2IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgdm9pZCBs
YXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKICAgICBzdGF0aWMg
dm9pZCByZW5kZXJMYXllckRlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0
IFJlbmRlckxheWVyJik7Ci0gICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3llZElt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFBzZXVkb0VsZW1lbnQmKTsKIAogICAgIHN0YXRpYyBJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShQYWdlJik7CiAg
ICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFt
ZShGcmFtZSYpOwpAQCAtNTY3LDYgKzU2OSwyMCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxQb3BTaGFkb3dSb290KEVsZW1lbnQmIGhvc3QsIFNoYWRvd1Jvbwog
ICAgICAgICB3aWxsUG9wU2hhZG93Um9vdEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGhvc3Qs
IHJvb3QpOwogfQogCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVk
b0VsZW1lbnRDcmVhdGVkKFBhZ2UqIHBhZ2UsIFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQp
Cit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yUGFnZShwYWdlKSkKKyAgICAgICAgcHNldWRvRWxlbWVudENyZWF0ZWRJbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCBwc2V1ZG9FbGVtZW50KTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBhZ2UqIHBhZ2UsIFBz
ZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJP
TlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKKyAgICAgICAgcHNl
dWRvRWxlbWVudERlc3Ryb3llZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBzZXVkb0VsZW1l
bnQpOworfQorCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0
ZU5hbWVkRmxvdyhEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyYgbmFtZWRGbG93
KQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwpAQCAtMTMwOCwy
MiArMTMyNCwxOCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZp
cmVBbmltYXRpb25GcmFtZShjb25zdCBJbnNwZWN0b3JJbnN0cgogCiBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmxheWVyVHJlZURpZENoYW5nZShQYWdlKiBwYWdlKQogewor
ICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0Zv
clBhZ2UocGFnZSkpCiAgICAgICAgIGxheWVyVHJlZURpZENoYW5nZUltcGwoKmluc3RydW1lbnRp
bmdBZ2VudHMpOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJl
bmRlckxheWVyRGVzdHJveWVkKFBhZ2UqIHBhZ2UsIGNvbnN0IFJlbmRlckxheWVyJiByZW5kZXJM
YXllcikKIHsKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBp
ZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQogICAgICAgICByZW5kZXJMYXllckRlc3Ryb3llZEltcGwo
Kmluc3RydW1lbnRpbmdBZ2VudHMsIHJlbmRlckxheWVyKTsKIH0KIAotaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBhZ2UqIHBhZ2Us
IFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCi17Ci0gICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShw
YWdlKSkKLSAgICAgICAgcHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoKmluc3RydW1lbnRpbmdB
Z2VudHMsIHBzZXVkb0VsZW1lbnQpOwotfQotCiBpbmxpbmUgSW5zdHJ1bWVudGluZ0FnZW50cyog
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAgIGlmICghY29udGV4dCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA3Njdm
MzQzLi40Zjk5NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUG9seWdvblNoYXBlLmgiCisjaW5jbHVk
ZSAiUHNldWRvRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCkBA
IC02ODYsMTcgKzY4NywyNCBAQCBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok92
ZXJsYXlUeXBlczo6RWxlbWVudERhdGE+IGJ1aWxkT2JqZWN0Rm9yRWxlbQogICAgIGlmICghaXM8
RWxlbWVudD4obm9kZSkgfHwgIW5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4o
Km5vZGUpOworICAgIEVsZW1lbnQqIGVmZmVjdGl2ZUVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50
Pihub2RlKTsKKyAgICBpZiAobm9kZS0+aXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgRWxl
bWVudCogaG9zdEVsZW1lbnQgPSBkb3duY2FzdDxQc2V1ZG9FbGVtZW50Pigqbm9kZSkuaG9zdEVs
ZW1lbnQoKTsKKyAgICAgICAgaWYgKCFob3N0RWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICBlZmZlY3RpdmVFbGVtZW50ID0gaG9zdEVsZW1lbnQ7CisgICAgfQor
CisgICAgRWxlbWVudCYgZWxlbWVudCA9ICplZmZlY3RpdmVFbGVtZW50OwogICAgIGJvb2wgaXNY
SFRNTCA9IGVsZW1lbnQuZG9jdW1lbnQoKS5pc1hIVE1MRG9jdW1lbnQoKTsKLQogICAgIGF1dG8g
ZWxlbWVudERhdGEgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpPdmVybGF5VHlwZXM6OkVsZW1lbnRE
YXRhOjpjcmVhdGUoKQogICAgICAgICAuc2V0VGFnTmFtZShpc1hIVE1MID8gZWxlbWVudC5ub2Rl
TmFtZSgpIDogZWxlbWVudC5ub2RlTmFtZSgpLmxvd2VyKCkpCiAgICAgICAgIC5zZXRJZFZhbHVl
KGVsZW1lbnQuZ2V0SWRBdHRyaWJ1dGUoKSkKICAgICAgICAgLnJlbGVhc2UoKTsKIAotICAgIEhh
c2hTZXQ8QXRvbWljU3RyaW5nPiB1c2VkQ2xhc3NOYW1lczsKKyAgICBTdHJpbmdCdWlsZGVyIGNs
YXNzTmFtZXM7CiAgICAgaWYgKGVsZW1lbnQuaGFzQ2xhc3MoKSAmJiBpczxTdHlsZWRFbGVtZW50
PihlbGVtZW50KSkgewotICAgICAgICBTdHJpbmdCdWlsZGVyIGNsYXNzTmFtZXM7CisgICAgICAg
IEhhc2hTZXQ8QXRvbWljU3RyaW5nPiB1c2VkQ2xhc3NOYW1lczsKICAgICAgICAgY29uc3QgU3Bh
Y2VTcGxpdFN0cmluZyYgY2xhc3NOYW1lc1N0cmluZyA9IGRvd25jYXN0PFN0eWxlZEVsZW1lbnQ+
KGVsZW1lbnQpLmNsYXNzTmFtZXMoKTsKICAgICAgICAgc2l6ZV90IGNsYXNzTmFtZUNvdW50ID0g
Y2xhc3NOYW1lc1N0cmluZy5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
Y2xhc3NOYW1lQ291bnQ7ICsraSkgewpAQCAtNzA3LDggKzcxNSwxNSBAQCBzdGF0aWMgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok92ZXJsYXlUeXBlczo6RWxlbWVudERhdGE+IGJ1aWxkT2Jq
ZWN0Rm9yRWxlbQogICAgICAgICAgICAgY2xhc3NOYW1lcy5hcHBlbmQoJy4nKTsKICAgICAgICAg
ICAgIGNsYXNzTmFtZXMuYXBwZW5kKGNsYXNzTmFtZSk7CiAgICAgICAgIH0KKyAgICB9CisgICAg
aWYgKG5vZGUtPmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlmIChub2RlLT5wc2V1ZG9J
ZCgpID09IEJFRk9SRSkKKyAgICAgICAgICAgIGNsYXNzTmFtZXMuYXBwZW5kTGl0ZXJhbCgiOjpi
ZWZvcmUiKTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+cHNldWRvSWQoKSA9PSBBRlRFUikKKyAg
ICAgICAgICAgIGNsYXNzTmFtZXMuYXBwZW5kTGl0ZXJhbCgiOjphZnRlciIpOworICAgIH0KKyAg
ICBpZiAoIWNsYXNzTmFtZXMuaXNFbXB0eSgpKQogICAgICAgICBlbGVtZW50RGF0YS0+c2V0Q2xh
c3NOYW1lKGNsYXNzTmFtZXMudG9TdHJpbmcoKSk7Ci0gICAgfQogCiAgICAgUmVuZGVyRWxlbWVu
dCogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKaW5kZXggYzYwNDc4Yi4uYWNh
NWNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKICNpbmNsdWRlICJGbG93
VGhyZWFkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCisjaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3ku
aCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIK
QEAgLTQ2NCw2ICs0NjUsNyBAQCBzdGF0aWMgdm9pZCBhdHRhY2hCZWZvcmVPckFmdGVyUHNldWRv
RWxlbWVudElmTmVlZGVkKEVsZW1lbnQmIGN1cnJlbnQsIFBzZXVkb0lkCiAgICAgaWYgKCFuZWVk
c1BzZXVkb0VsZW1lbnQoY3VycmVudCwgcHNldWRvSWQpKQogICAgICAgICByZXR1cm47CiAgICAg
UmVmPFBzZXVkb0VsZW1lbnQ+IHBzZXVkb0VsZW1lbnQgPSBQc2V1ZG9FbGVtZW50OjpjcmVhdGUo
Y3VycmVudCwgcHNldWRvSWQpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRv
RWxlbWVudENyZWF0ZWQocHNldWRvRWxlbWVudC0+ZG9jdW1lbnQoKS5wYWdlKCksIHBzZXVkb0Vs
ZW1lbnQuZ2V0KCkpOwogICAgIHNldEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50KGN1cnJlbnQs
IHBzZXVkb0VsZW1lbnQuY29weVJlZigpLCBwc2V1ZG9JZCk7CiAgICAgYXR0YWNoUmVuZGVyVHJl
ZShwc2V1ZG9FbGVtZW50LmdldCgpLCAqY3VycmVudC5yZW5kZXJTdHlsZSgpLCByZW5kZXJUcmVl
UG9zaXRpb24sIG51bGxwdHIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNzYyMjdj
Zi4uYTgyMmI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNzMgQEAKIDIw
MTUtMDctMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBTaG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TVRyZWVNYW5hZ2VyLnByb3RvdHlwZS5fcHNldWRvRWxlbWVudEFkZGVkKToKKyAgICAgICAgSG9v
ayB1cCB0aGUgbmV3IHBzZXVkbyBlbGVtZW50IERPTU5vZGUgdG8gdGhlIHBhcmVudC4KKworICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLnByb3RvdHlwZS5fcHNldWRvRWxlbWVu
dFJlbW92ZWQpOgorICAgICAgICBVbmhvb2sgdGhlIHBzZXVkbyBlbGVtZW50IGZyb20gaXRzIHBh
cmVudC4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLnByb3RvdHlwZS5f
dW5iaW5kKToKKyAgICAgICAgV2hlbiB1bmJpbmRpbmcsIHVuYmluZCBhbnkgcHNldWRvIGVsZW1l
bnQgY2hpbGRyZW4gd2UgbWF5IGhhdmUgaGFkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9N
b2RlbHMvRE9NTm9kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlw
ZS5pc1BzZXVkb0VsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90
eXBlLnBzZXVkb1R5cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBl
Lmhhc1BzZXVkb0VsZW1lbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3Rv
dHlwZS5wc2V1ZG9FbGVtZW50cyk6CisgICAgICAgIE5ldyBzdGF0ZSBvZiBhIERPTU5vZGUgbWF5
IGluY2x1ZGUgcHNldWRvIGVsZW1lbnRzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90
b2NvbC9ET01PYnNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01PYnNlcnZlci5w
cm90b3R5cGUucHNldWRvRWxlbWVudEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01P
YnNlcnZlci5wcm90b3R5cGUucHNldWRvRWxlbWVudFJlbW92ZWQpOgorICAgICAgICBQYXNzIHRo
ZSBtZXNzYWdlIG9uIHRvIERPTVRyZWVNYW5hZ2VyLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVl
RWxlbWVudC5wcm90b3R5cGUuZ2V0IGVkaXRhYmxlKToKKyAgICAgICAgUHNldWRvIGVsZW1lbnQg
bm9kZXMgYXJlIG5vdCBlZGl0YWJsZS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVF
bGVtZW50LnByb3RvdHlwZS5zaG93Q2hpbGQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRy
ZWVFbGVtZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01UcmVlRWxlbWVudC5wcm90b3R5cGUudXBkYXRlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5fbm9kZVRpdGxlSW5mbyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl9zaW5nbGVUZXh0Q2hpbGQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5faGFzVmlz
aWJsZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90
b3R5cGUuX3Zpc2libGVDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVs
ZW1lbnQucHJvdG90eXBlLl91cGRhdGVDaGlsZHJlbik6CisgICAgICAgIEEgRE9NVHJlZUVsZW1l
bnQncyBjaGlsZHJlbiBhcmUgbm8gbG9uZ2VyIDEtdG8tMSB0byBET01Ob2RlJ3MgY2hpbGRyZW4u
CisgICAgICAgIEluc3RlYWQgYSBET01Ob2RlIG1heSBoYXZlIGEgYmVmb3JlL2FmdGVyIHBzZXVk
byBlbGVtZW50IGNoaWxkIHRoYXQKKyAgICAgICAgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgY2hp
bGRyZW4gbGlzdC4gVXBkYXRlIHBhcnRzIG9mIERPTVRyZWVFbGVtZW50CisgICAgICAgIHRvIHJl
c3BlY3QgdGhpcyBsaXN0IG9mIHZpc2libGUgY2hpbGRyZW4uCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQpOgorICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvUGF0aENvbXBvbmVudEljb25zLmNzczoKKyAgICAgICAgKC5kb20tcHNl
dWRvLWVsZW1lbnQtaWNvbiAuaWNvbik6CisgICAgICAgIFN0eWxpbmcgZm9yIHRoZSBwYXRoIGNv
bXBvbmVudCB3aGVuIGEgcHNldWRvIGVsZW1lbnQgaXMgc2VsZWN0ZWQuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNzczoKKyAgICAgICAgKC5kb20tdHJl
ZS1vdXRsaW5lIC5odG1sLXBzZXVkby1lbGVtZW50KToKKyAgICAgICAgKC5kb20tdHJlZS1vdXRs
aW5lIC5odG1sLWZyYWdtZW50LnNoYWRvdyk6CisgICAgICAgICgud2Via2l0LWh0bWwtZnJhZ21l
bnQuc2hhZG93KTogRGVsZXRlZC4KKyAgICAgICAgU3R5bGVzIGZvciBwc2V1ZG8gZWxlbWVudHMg
aW4gdGhlIERPTSB0cmVlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVl
T3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZS5wcm90b3R5
cGUuX2hpZGVFbGVtZW50KToKKyAgICAgICAgTWFrZSB0aGUgaGlkZSBlbGVtZW50IHNlbGVjdG9y
IGhpZGUgdGhlIGhvc3QgZWxlbWVudC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3Mv
UnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3M6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5k
ZXRhaWxzLmNzcy1zdHlsZSAucnVsZXMgPiAqOmZpcnN0LWNoaWxkOm1hdGNoZXMoLm5ldy1ydWxl
KSk6CisgICAgICAgIFNpbmNlIGEgcHNldWRvIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIHN0eWxl
IGF0dHJpYnV0ZSwKKyAgICAgICAgZ2l2ZSBzb21lIG1hcmdpbiBpbiB0aGUgc3R5bGUgc2lkZWJh
ciBhYm92ZSB0aGUgIk5ldyBSdWxlIgorICAgICAgICBidXR0b24gc28gaXQgbG9va3MgYmV0dGVy
LgorCisyMDE1LTA3LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGN1c3RvbSBwYXJhbWV0ZXIgbGlzdHMgZm9yIG5l
dyBET00gYXBwZW5kL3ByZXBlbmQvYmVmb3JlL2FmdGVyL3JlcGxhY2VXaXRoIG1ldGhvZHMKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI1NwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9ET01UcmVlTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzCmluZGV4IDhjMjA4M2YuLmU2ZGQ3ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0RPTVRyZWVNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzCkBAIC0yNDYsNyArMjQ2LDM4IEBAIFdl
Ykluc3BlY3Rvci5ET01UcmVlTWFuYWdlciA9IGNsYXNzIERPTVRyZWVNYW5hZ2VyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2Rl
W25vZGVJZF07CiAgICAgICAgIHBhcmVudC5fcmVtb3ZlQ2hpbGQobm9kZSk7CiAgICAgICAgIHRo
aXMuX3VuYmluZChub2RlKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVSZW1vdmVkLCB7bm9kZTpub2Rl
LCBwYXJlbnR9KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVSZW1vdmVkLCB7bm9kZSwgcGFyZW50fSk7
CisgICAgfQorCisgICAgX3BzZXVkb0VsZW1lbnRBZGRlZChwYXJlbnRJZCwgcHNldWRvRWxlbWVu
dCkKKyAgICB7CisgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLl9pZFRvRE9NTm9kZVtwYXJlbnRJ
ZF07CisgICAgICAgIGlmICghcGFyZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHZhciBub2RlID0gbmV3IFdlYkluc3BlY3Rvci5ET01Ob2RlKHRoaXMsIHBhcmVudC5vd25lckRv
Y3VtZW50LCBmYWxzZSwgcHNldWRvRWxlbWVudCk7CisgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9
IHBhcmVudDsKKyAgICAgICAgdGhpcy5faWRUb0RPTU5vZGVbbm9kZS5pZF0gPSBub2RlOworICAg
ICAgICBjb25zb2xlLmFzc2VydCghcGFyZW50LnBzZXVkb0VsZW1lbnRzKCkuZ2V0KG5vZGUucHNl
dWRvVHlwZSgpKSk7CisgICAgICAgIHBhcmVudC5wc2V1ZG9FbGVtZW50cygpLnNldChub2RlLnBz
ZXVkb1R5cGUoKSwgbm9kZSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5Ob2RlSW5zZXJ0ZWQsIHtub2RlLCBw
YXJlbnR9KTsKKyAgICB9CisKKyAgICBfcHNldWRvRWxlbWVudFJlbW92ZWQocGFyZW50SWQsIHBz
ZXVkb0VsZW1lbnRJZCkKKyAgICB7CisgICAgICAgIHZhciBwc2V1ZG9FbGVtZW50ID0gdGhpcy5f
aWRUb0RPTU5vZGVbcHNldWRvRWxlbWVudElkXTsKKyAgICAgICAgaWYgKCFwc2V1ZG9FbGVtZW50
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBwYXJlbnQgPSBwc2V1ZG9FbGVt
ZW50LnBhcmVudE5vZGU7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBhcmVudCk7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KHBhcmVudC5pZCA9PT0gcGFyZW50SWQpOworICAgICAgICBpZiAoIXBh
cmVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBwYXJlbnQuX3JlbW92ZUNoaWxk
KHBzZXVkb0VsZW1lbnQpOworICAgICAgICB0aGlzLl91bmJpbmQocHNldWRvRWxlbWVudCk7Cisg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01UcmVl
TWFuYWdlci5FdmVudC5Ob2RlUmVtb3ZlZCwge25vZGU6IHBzZXVkb0VsZW1lbnQsIHBhcmVudH0p
OwogICAgIH0KIAogICAgIF91bmJpbmQobm9kZSkKQEAgLTI1NCw4ICsyODUsMTYgQEAgV2ViSW5z
cGVjdG9yLkRPTVRyZWVNYW5hZ2VyID0gY2xhc3MgRE9NVHJlZU1hbmFnZXIgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX3JlbW92ZUNvbnRlbnROb2RlRnJvbUZsb3dJ
Zk5lZWRlZChub2RlKTsKIAogICAgICAgICBkZWxldGUgdGhpcy5faWRUb0RPTU5vZGVbbm9kZS5p
ZF07CisKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IG5vZGUuY2hpbGRyZW4gJiYgaSA8IG5vZGUu
Y2hpbGRyZW4ubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl91bmJpbmQobm9kZS5jaGls
ZHJlbltpXSk7CisKKyAgICAgICAgdmFyIHBzZXVkb0VsZW1lbnRzID0gbm9kZS5wc2V1ZG9FbGVt
ZW50cygpOworICAgICAgICBmb3IgKHZhciBwc2V1ZG9FbGVtZW50IG9mIHBzZXVkb0VsZW1lbnRz
KQorICAgICAgICAgICAgdGhpcy5fdW5iaW5kKHBzZXVkb0VsZW1lbnQpOworCisgICAgICAgIC8v
IEZJWE1FOiBIYW5kbGUgc2hhZG93IHJvb3RzLgorICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRl
bXBsYXRlIGNvbnRlbnQuCiAgICAgfQogCiAgICAgZ2V0IHJlc3RvcmVTZWxlY3RlZE5vZGVJc0Fs
bG93ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0RPTU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvRE9NTm9kZS5qcwppbmRleCBlMDY0NjI2Li4wYTY4ZDBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwpAQCAt
NDYsNiArNDYsNyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX25vZGVOYW1lID0gcGF5bG9hZC5u
b2RlTmFtZTsKICAgICAgICAgdGhpcy5fbG9jYWxOYW1lID0gcGF5bG9hZC5sb2NhbE5hbWU7CiAg
ICAgICAgIHRoaXMuX25vZGVWYWx1ZSA9IHBheWxvYWQubm9kZVZhbHVlOworICAgICAgICB0aGlz
Ll9wc2V1ZG9UeXBlID0gcGF5bG9hZC5wc2V1ZG9UeXBlOwogICAgICAgICB0aGlzLl9jb21wdXRl
ZFJvbGUgPSBwYXlsb2FkLnJvbGU7CiAKICAgICAgICAgaWYgKHRoaXMuX25vZGVUeXBlID09PSBO
b2RlLkRPQ1VNRU5UX05PREUpCkBAIC03OCw5ICs3OSwyMCBAQCBXZWJJbnNwZWN0b3IuRE9NTm9k
ZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIAorICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRlbXBsYXRlQ29udGVu
dC4KKwogICAgICAgICBpZiAocGF5bG9hZC5jaGlsZHJlbikKICAgICAgICAgICAgIHRoaXMuX3Nl
dENoaWxkcmVuUGF5bG9hZChwYXlsb2FkLmNoaWxkcmVuKTsKIAorICAgICAgICB0aGlzLl9wc2V1
ZG9FbGVtZW50cyA9IG5ldyBNYXA7CisgICAgICAgIGlmIChwYXlsb2FkLnBzZXVkb0VsZW1lbnRz
KSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBheWxvYWQucHNldWRvRWxlbWVu
dHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuRE9NTm9kZSh0aGlzLl9kb21BZ2VudCwgdGhpcy5vd25lckRvY3VtZW50LCB0aGlzLl9p
c0luU2hhZG93VHJlZSwgcGF5bG9hZC5wc2V1ZG9FbGVtZW50c1tpXSk7CisgICAgICAgICAgICAg
ICAgbm9kZS5wYXJlbnROb2RlID0gdGhpczsKKyAgICAgICAgICAgICAgICB0aGlzLl9wc2V1ZG9F
bGVtZW50cy5zZXQobm9kZS5wc2V1ZG9UeXBlKCksIG5vZGUpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKICAgICAgICAgaWYgKHBheWxvYWQuY29udGVudERvY3VtZW50KSB7CiAgICAgICAg
ICAgICB0aGlzLl9jb250ZW50RG9jdW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTU5vZGUoZG9t
QWdlbnQsIG51bGwsIGZhbHNlLCBwYXlsb2FkLmNvbnRlbnREb2N1bWVudCk7CiAgICAgICAgICAg
ICB0aGlzLl9jaGlsZHJlbiA9IFt0aGlzLl9jb250ZW50RG9jdW1lbnRdOwpAQCAtMjIxLDYgKzIz
MywxMSBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl9pc0luU2hhZG93VHJlZTsKICAg
ICB9CiAKKyAgICBpc1BzZXVkb0VsZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X3BzZXVkb1R5cGUgIT09IHVuZGVmaW5lZDsKKyAgICB9CisKICAgICBub2RlVHlwZSgpCiAgICAg
ewogICAgICAgICByZXR1cm4gdGhpcy5fbm9kZVR5cGU7CkBAIC0yNDYsNiArMjYzLDMxIEBAIFdl
Ykluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsTmFtZTsKICAgICB9CiAKKyAgICBwc2V1
ZG9UeXBlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wc2V1ZG9UeXBlOworICAgIH0K
KworICAgIGhhc1BzZXVkb0VsZW1lbnRzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9w
c2V1ZG9FbGVtZW50cy5zaXplID4gMDsKKyAgICB9CisKKyAgICBwc2V1ZG9FbGVtZW50cygpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcHNldWRvRWxlbWVudHM7CisgICAgfQorCisgICAg
YmVmb3JlUHNldWRvRWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcHNldWRv
RWxlbWVudHMuZ2V0KFdlYkluc3BlY3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkJlZm9y
ZSkgfHwgbnVsbDsKKyAgICB9CisKKyAgICBhZnRlclBzZXVkb0VsZW1lbnQoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3BzZXVkb0VsZW1lbnRzLmdldChXZWJJbnNwZWN0b3IuRE9NTm9k
ZS5Qc2V1ZG9FbGVtZW50VHlwZS5BZnRlcikgfHwgbnVsbDsKKyAgICB9CisKICAgICBub2RlVmFs
dWUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVWYWx1ZTsKQEAgLTQ3NSw3ICs1
MTcsMTIgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLk9iamVjdAogCiAgICAgX3JlbW92ZUNoaWxkKG5vZGUpCiAgICAgewotICAgICAg
ICB0aGlzLl9jaGlsZHJlbi5zcGxpY2UodGhpcy5fY2hpbGRyZW4uaW5kZXhPZihub2RlKSwgMSk7
CisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgcmVtb3ZhbCBpZiB0aGlzIGlzIGEgc2hhZG93IHJv
b3QuCisgICAgICAgIGlmIChub2RlLmlzUHNldWRvRWxlbWVudCgpKQorICAgICAgICAgICAgdGhp
cy5fcHNldWRvRWxlbWVudHMuZGVsZXRlKG5vZGUucHNldWRvVHlwZSgpKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW4uc3BsaWNlKHRoaXMuX2NoaWxkcmVuLmluZGV4
T2Yobm9kZSksIDEpOworCiAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7CiAgICAgICAg
IHRoaXMuX3JlbnVtYmVyKCk7CiAgICAgfQpAQCAtNDg4LDggKzUzNSw3IEBAIFdlYkluc3BlY3Rv
ci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAog
ICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IHRoaXMuX3NoYWRvd1Jvb3RzLnNsaWNlKCk7CiAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF5bG9hZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
ICAgIHZhciBwYXlsb2FkID0gcGF5bG9hZHNbaV07Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IG5l
dyBXZWJJbnNwZWN0b3IuRE9NTm9kZSh0aGlzLl9kb21BZ2VudCwgdGhpcy5vd25lckRvY3VtZW50
LCB0aGlzLl9pc0luU2hhZG93VHJlZSwgcGF5bG9hZCk7CisgICAgICAgICAgICB2YXIgbm9kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuRE9NTm9kZSh0aGlzLl9kb21BZ2VudCwgdGhpcy5vd25lckRvY3Vt
ZW50LCB0aGlzLl9pc0luU2hhZG93VHJlZSwgcGF5bG9hZHNbaV0pOwogICAgICAgICAgICAgdGhp
cy5fY2hpbGRyZW4ucHVzaChub2RlKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9yZW51bWJl
cigpOwpAQCAtNTk3LDMgKzY0Myw4IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLkV2ZW50ID0gewog
ICAgIEF0dHJpYnV0ZU1vZGlmaWVkOiAiZG9tLW5vZGUtYXR0cmlidXRlLW1vZGlmaWVkIiwKICAg
ICBBdHRyaWJ1dGVSZW1vdmVkOiAiZG9tLW5vZGUtYXR0cmlidXRlLXJlbW92ZWQiCiB9OworCitX
ZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZSA9IHsKKyAgICBCZWZvcmU6ICJi
ZWZvcmUiLAorICAgIEFmdGVyOiAiYWZ0ZXIiLAorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0RPTU9ic2VydmVyLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMKaW5k
ZXggYTAyMjhjOS4uNzBiOWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMKQEAgLTgxLDQgKzgx
LDE0IEBAIFdlYkluc3BlY3Rvci5ET01PYnNlcnZlciA9IGNsYXNzIERPTU9ic2VydmVyCiAgICAg
ewogICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIuX2NoaWxkTm9kZVJlbW92ZWQo
cGFyZW50Tm9kZUlkLCBub2RlSWQpOwogICAgIH0KKworICAgIHBzZXVkb0VsZW1lbnRBZGRlZChw
YXJlbnROb2RlSWQsIHBzZXVkb0VsZW1lbnQpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tVHJlZU1hbmFnZXIuX3BzZXVkb0VsZW1lbnRBZGRlZChwYXJlbnROb2RlSWQsIHBzZXVkb0Vs
ZW1lbnQpOworICAgIH0KKworICAgIHBzZXVkb0VsZW1lbnRSZW1vdmVkKHBhcmVudE5vZGVJZCwg
cHNldWRvRWxlbWVudElkKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5h
Z2VyLl9wc2V1ZG9FbGVtZW50UmVtb3ZlZChwYXJlbnROb2RlSWQsIHBzZXVkb0VsZW1lbnRJZCk7
CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMKaW5kZXggMjZjZjE3ZC4uN2RlNDNlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9N
VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvRE9NVHJlZUVsZW1lbnQuanMKQEAgLTM1LDcgKzM1LDcgQEAgV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
VHJlZUVsZW0KICAgICAgICAgc3VwZXIoIiIsIG5vZGUpOwogCiAgICAgICAgIHRoaXMuX2VsZW1l
bnRDbG9zZVRhZyA9IGVsZW1lbnRDbG9zZVRhZzsKLSAgICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9
ICFlbGVtZW50Q2xvc2VUYWcgJiYgbm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgIXRoaXMuX3Nob3dJ
bmxpbmVUZXh0KG5vZGUpOworICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0gIWVsZW1lbnRDbG9z
ZVRhZyAmJiB0aGlzLl9oYXNWaXNpYmxlQ2hpbGRyZW4obm9kZSk7CiAKICAgICAgICAgaWYgKHRo
aXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUoKSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYg
IWVsZW1lbnRDbG9zZVRhZykKICAgICAgICAgICAgIHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMgPSB0
cnVlOwpAQCAtMTU5LDcgKzE1OSwxMCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBj
bGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogCiAgICAg
Z2V0IGVkaXRhYmxlKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LmlzSW5TaGFkb3dUcmVlKCkpCisgICAgICAgIHZhciBub2RlID0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdDsKKyAgICAgICAgaWYgKG5vZGUuaXNJblNoYWRvd1RyZWUoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgcmV0dXJuIHRoaXMudHJlZU91dGxpbmUuZWRp
dGFibGU7CkBAIC0xOTIsNiArMTk1LDkgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0g
Y2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KIAogICAg
IHNob3dDaGlsZChpbmRleCkKICAgICB7CisgICAgICAgIC8vIEZJWE1FOiBJbnN0ZWFkIG9mIGlu
ZGV4LCB0aGlzIHNob3VsZCBjb21wdXRlIHRoZSBpbmRleCB1c2luZyB0aGUgbm9kZS4KKyAgICAg
ICAgLy8gT3RoZXJ3aXNlIHRoaXMgbWF5IG5vdCB3b3JrIHdpdGggOjpiZWZvcmUgLyA6OmFmdGVy
LgorCiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9lbGVtZW50Q2xvc2VUYWcpOwogICAg
ICAgICBpZiAodGhpcy5fZWxlbWVudENsb3NlVGFnKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMjg1LDcgKzI5MSw3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNz
IERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAKICAgICBvbnBv
cHVsYXRlKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCB8fCB0aGlz
Ll9zaG93SW5saW5lVGV4dCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0KSB8fCB0aGlzLl9lbGVtZW50
Q2xvc2VUYWcpCisgICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCB8fCAhdGhpcy5faGFz
VmlzaWJsZUNoaWxkcmVuKHRoaXMucmVwcmVzZW50ZWRPYmplY3QpIHx8IHRoaXMuX2VsZW1lbnRD
bG9zZVRhZykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLnVwZGF0ZUNoaWxk
cmVuKCk7CkBAIC0zMDAsNiArMzA2LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0g
Y2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICB7
CiAgICAgICAgIGlmICh0aGlzLl9lbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICByZXR1cm47
CisKICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5nZXRDaGlsZE5vZGVzKHRoaXMuX3Vw
ZGF0ZUNoaWxkcmVuLmJpbmQodGhpcywgZnVsbFJlZnJlc2gpKTsKICAgICB9CiAKQEAgLTMyNiw3
OCArMzMzLDg1IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVF
bGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW5JblByb2dyZXNzID0gdHJ1ZTsKKworICAg
ICAgICB2YXIgbm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgIHZhciBzZWxl
Y3RlZE5vZGUgPSB0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdGVkRE9NTm9kZSgpOwogICAgICAgICB2
YXIgb3JpZ2luYWxTY3JvbGxUb3AgPSAwOwotICAgICAgICBpZiAoZnVsbFJlZnJlc2gpIHsKKwor
ICAgICAgICB2YXIgaGFzVmlzaWJsZUNoaWxkcmVuID0gdGhpcy5faGFzVmlzaWJsZUNoaWxkcmVu
KG5vZGUpOworCisgICAgICAgIGlmIChmdWxsUmVmcmVzaCB8fCAhaGFzVmlzaWJsZUNoaWxkcmVu
KSB7CiAgICAgICAgICAgICB2YXIgdHJlZU91dGxpbmVDb250YWluZXJFbGVtZW50ID0gdGhpcy50
cmVlT3V0bGluZS5lbGVtZW50LnBhcmVudE5vZGU7CiAgICAgICAgICAgICBvcmlnaW5hbFNjcm9s
bFRvcCA9IHRyZWVPdXRsaW5lQ29udGFpbmVyRWxlbWVudC5zY3JvbGxUb3A7CiAgICAgICAgICAg
ICB2YXIgc2VsZWN0ZWRUcmVlRWxlbWVudCA9IHRoaXMudHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVl
RWxlbWVudDsKICAgICAgICAgICAgIGlmIChzZWxlY3RlZFRyZWVFbGVtZW50ICYmIHNlbGVjdGVk
VHJlZUVsZW1lbnQuaGFzQW5jZXN0b3IodGhpcykpCiAgICAgICAgICAgICAgICAgdGhpcy5zZWxl
Y3QoKTsKICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgfQogCi0g
ICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXM7Ci0gICAgICAgIHZhciB0cmVlQ2hpbGRJbmRl
eCA9IDA7Ci0gICAgICAgIHZhciBlbGVtZW50VG9TZWxlY3Q7Ci0KLSAgICAgICAgZnVuY3Rpb24g
dXBkYXRlQ2hpbGRyZW5PZk5vZGUobm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgdmFyIHRy
ZWVPdXRsaW5lID0gdHJlZUVsZW1lbnQudHJlZU91dGxpbmU7Ci0gICAgICAgICAgICB2YXIgY2hp
bGQgPSBub2RlLmZpcnN0Q2hpbGQ7Ci0gICAgICAgICAgICB3aGlsZSAoY2hpbGQpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgY3VycmVudFRyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQuY2hpbGRyZW5b
dHJlZUNoaWxkSW5kZXhdOwotICAgICAgICAgICAgICAgIGlmICghY3VycmVudFRyZWVFbGVtZW50
IHx8IGN1cnJlbnRUcmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCAhPT0gY2hpbGQpIHsKLSAg
ICAgICAgICAgICAgICAgICAgLy8gRmluZCBhbnkgZXhpc3RpbmcgZWxlbWVudCB0aGF0IGlzIGxh
dGVyIGluIHRoZSBjaGlsZHJlbiBsaXN0LgotICAgICAgICAgICAgICAgICAgICB2YXIgZXhpc3Rp
bmdUcmVlRWxlbWVudCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAo
dHJlZUNoaWxkSW5kZXggKyAxKSwgc2l6ZSA9IHRyZWVFbGVtZW50LmV4cGFuZGVkQ2hpbGRDb3Vu
dDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyZWVFbGVt
ZW50LmNoaWxkcmVuW2ldLnJlcHJlc2VudGVkT2JqZWN0ID09PSBjaGlsZCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nVHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVudC5jaGls
ZHJlbltpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChleGlzdGluZ1RyZWVFbGVtZW50ICYmIGV4aXN0aW5nVHJlZUVsZW1lbnQucGFyZW50
ID09PSB0cmVlRWxlbWVudCkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgYW4gZXhp
c3RpbmcgZWxlbWVudCB3YXMgZm91bmQgYW5kIGl0IGhhcyB0aGUgc2FtZSBwYXJlbnQsIGp1c3Qg
bW92ZSBpdC4KLSAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50Lm1vdmVDaGlsZChl
eGlzdGluZ1RyZWVFbGVtZW50LCB0cmVlQ2hpbGRJbmRleCk7Ci0gICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBleGlzdGluZyBlbGVtZW50
IGZvdW5kLCBpbnNlcnQgYSBuZXcgZWxlbWVudC4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICh0cmVlQ2hpbGRJbmRleCA8IHRyZWVFbGVtZW50LmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdFbGVtZW50ID0gdHJlZUVsZW1lbnQu
aW5zZXJ0Q2hpbGRFbGVtZW50KGNoaWxkLCB0cmVlQ2hpbGRJbmRleCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGNoaWxkID09PSBzZWxlY3RlZE5vZGUpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb1NlbGVjdCA9IG5ld0VsZW1lbnQ7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50LmV4cGFuZGVkQ2hpbGRDb3VudCA+
IHRyZWVFbGVtZW50LmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHJlZUVsZW1lbnQuZXhwYW5kZWRDaGlsZHJlbkxpbWl0Kys7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nOwotICAgICAg
ICAgICAgICAgICsrdHJlZUNoaWxkSW5kZXg7CisgICAgICAgICAgICAvLyBObyBsb25nZXIgaGF2
ZSBjaGlsZHJlbi4KKyAgICAgICAgICAgIGlmICghaGFzVmlzaWJsZUNoaWxkcmVuKSB7CisgICAg
ICAgICAgICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9IGZhbHNlOworICAgICAgICAgICAgICAgIHRo
aXMudXBkYXRlVGl0bGUoKTsKKyAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVDaGlsZHJlbklu
UHJvZ3Jlc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAorICAgICAgICAvLyBXZSBub3cgaGF2ZSBjaGlsZHJlbi4KKyAgICAgICAg
aWYgKCF0aGlzLmhhc0NoaWxkcmVuKSB7CisgICAgICAgICAgICB0aGlzLmhhc0NoaWxkcmVuID0g
dHJ1ZTsKKyAgICAgICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKKyAgICAgICAgfQorCiAgICAg
ICAgIC8vIFJlbW92ZSBhbnkgdHJlZSBlbGVtZW50cyB0aGF0IG5vIGxvbmdlciBoYXZlIHRoaXMg
bm9kZSAob3IgdGhpcyBub2RlJ3MgY29udGVudERvY3VtZW50KSBhcyB0aGVpciBwYXJlbnQuCisg
ICAgICAgIC8vIEtlZXAgYSBsaXN0IG9mIGV4aXN0aW5nIHRyZWUgZWxlbWVudHMgZm9yIG5vZGVz
IHRoYXQgd2UgY2FuIHVzZSBsYXRlci4KKyAgICAgICAgdmFyIGV4aXN0aW5nQ2hpbGRUcmVlRWxl
bWVudHMgPSBuZXcgTWFwOwogICAgICAgICBmb3IgKHZhciBpID0gKHRoaXMuY2hpbGRyZW4ubGVu
Z3RoIC0gMSk7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICB2YXIgY3VycmVudENoaWxkID0g
dGhpcy5jaGlsZHJlbltpXTsKLSAgICAgICAgICAgIHZhciBjdXJyZW50Tm9kZSA9IGN1cnJlbnRD
aGlsZC5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgICAgIHZhciBjdXJyZW50Q2hpbGRUcmVl
RWxlbWVudCA9IHRoaXMuY2hpbGRyZW5baV07CisgICAgICAgICAgICB2YXIgY3VycmVudE5vZGUg
PSBjdXJyZW50Q2hpbGRUcmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKICAgICAgICAgICAg
IHZhciBjdXJyZW50UGFyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGU7Ci0KLSAgICAg
ICAgICAgIGlmIChjdXJyZW50UGFyZW50Tm9kZSA9PT0gdGhpcy5yZXByZXNlbnRlZE9iamVjdCkK
KyAgICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50Tm9kZSA9PT0gbm9kZSkgeworICAgICAgICAg
ICAgICAgIGV4aXN0aW5nQ2hpbGRUcmVlRWxlbWVudHMuc2V0KGN1cnJlbnROb2RlLCBjdXJyZW50
Q2hpbGRUcmVlRWxlbWVudCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIHZhciBzZWxlY3RlZFRyZWVFbGVtZW50ID0gdGhpcy50cmVlT3V0
bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICAgICAgaWYgKHNlbGVjdGVkVHJlZUVs
ZW1lbnQgJiYgKHNlbGVjdGVkVHJlZUVsZW1lbnQgPT09IGN1cnJlbnRDaGlsZCB8fCBzZWxlY3Rl
ZFRyZWVFbGVtZW50Lmhhc0FuY2VzdG9yKGN1cnJlbnRDaGlsZCkpKQorICAgICAgICAgICAgaWYg
KHNlbGVjdGVkVHJlZUVsZW1lbnQgJiYgKHNlbGVjdGVkVHJlZUVsZW1lbnQgPT09IGN1cnJlbnRD
aGlsZFRyZWVFbGVtZW50IHx8IHNlbGVjdGVkVHJlZUVsZW1lbnQuaGFzQW5jZXN0b3IoY3VycmVu
dENoaWxkVHJlZUVsZW1lbnQpKSkKICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgpOwogCiAg
ICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkQXRJbmRleChpKTsKICAgICAgICAgfQogCi0gICAg
ICAgIHVwZGF0ZUNoaWxkcmVuT2ZOb2RlKHRoaXMucmVwcmVzZW50ZWRPYmplY3QpOworICAgICAg
ICAvLyBNb3ZlIC8gY3JlYXRlIFRyZWVFbGVtZW50cyBmb3Igb3VyIHZpc2libGUgY2hpbGRyZW4u
CisgICAgICAgIHZhciBjaGlsZEluZGV4ID0gMDsKKyAgICAgICAgdmFyIGVsZW1lbnRUb1NlbGVj
dCA9IG51bGw7CisgICAgICAgIHZhciB2aXNpYmxlQ2hpbGRyZW4gPSB0aGlzLl92aXNpYmxlQ2hp
bGRyZW4obm9kZSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmlzaWJsZUNoaWxkcmVu
Lmxlbmd0aCAmJiBpIDwgdGhpcy5leHBhbmRlZENoaWxkcmVuTGltaXQ7ICsraSkgeworICAgICAg
ICAgICAgdmFyIGNoaWxkTm9kZSA9IHZpc2libGVDaGlsZHJlbltpXTsKKworICAgICAgICAgICAg
Ly8gQWxyZWFkeSBoYXZlIGEgdHJlZSBlbGVtZW50IGZvciB0aGlzIGNoaWxkLCBqdXN0IG1vdmUg
aXQuCisgICAgICAgICAgICB2YXIgZXhpc3RpbmdDaGlsZFRyZWVFbGVtZW50ID0gZXhpc3RpbmdD
aGlsZFRyZWVFbGVtZW50cy5nZXQoY2hpbGROb2RlKTsKKyAgICAgICAgICAgIGlmIChleGlzdGlu
Z0NoaWxkVHJlZUVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLm1vdmVDaGlsZChleGlz
dGluZ0NoaWxkVHJlZUVsZW1lbnQsIGkpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBObyBleGlzdGluZyB0cmVlIGVsZW1lbnQgZm9y
IHRoaXMgY2hpbGQuIEluc2VydCBhIG5ldyBlbGVtZW50LgorICAgICAgICAgICAgdmFyIG5ld0No
aWxkVHJlZUVsZW1lbnQgPSB0aGlzLmluc2VydENoaWxkRWxlbWVudChjaGlsZE5vZGUsIGkpOwor
CisgICAgICAgICAgICAvLyBVcGRhdGUgc3RhdGUuCisgICAgICAgICAgICBpZiAoY2hpbGROb2Rl
ID09PSBzZWxlY3RlZE5vZGUpCisgICAgICAgICAgICAgICAgZWxlbWVudFRvU2VsZWN0ID0gbmV3
Q2hpbGRUcmVlRWxlbWVudDsKKyAgICAgICAgICAgIGlmICh0aGlzLmV4cGFuZGVkQ2hpbGRDb3Vu
dCA+IHRoaXMuZXhwYW5kZWRDaGlsZHJlbkxpbWl0KQorICAgICAgICAgICAgICAgIHRoaXMuZXhw
YW5kZWRDaGlsZHJlbkxpbWl0Kys7CisgICAgICAgIH0KKworICAgICAgICAvLyBVcGRhdGUgZXhw
YW5kIGFsbCBjaGlsZHJlbiBidXR0b24uCiAgICAgICAgIHRoaXMuYWRqdXN0Q29sbGFwc2VkUmFu
Z2UoKTsKIAorICAgICAgICAvLyBJbnNlcnQgY2xvc2luZyB0YWcgdHJlZSBlbGVtZW50LgogICAg
ICAgICB2YXIgbGFzdENoaWxkID0gdGhpcy5jaGlsZHJlbi5sYXN0VmFsdWU7Ci0gICAgICAgIGlm
ICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgPT09IE5vZGUuRUxFTUVOVF9OT0RF
ICYmICghbGFzdENoaWxkIHx8ICFsYXN0Q2hpbGQuX2VsZW1lbnRDbG9zZVRhZykpCisgICAgICAg
IGlmIChub2RlLm5vZGVUeXBlKCkgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmICghbGFzdENoaWxk
IHx8ICFsYXN0Q2hpbGQuX2VsZW1lbnRDbG9zZVRhZykpCiAgICAgICAgICAgICB0aGlzLmluc2Vy
dENoaWxkRWxlbWVudCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCB0aGlzLmNoaWxkcmVuLmxlbmd0
aCwgdHJ1ZSk7CiAKICAgICAgICAgLy8gV2Ugd2FudCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBz
ZWxlY3Rpb24gYW5kIHRyZWUgc2Nyb2xsIHBvc2l0aW9uIGFmdGVyIGEgZnVsbCByZWZyZXNoLCBp
ZiBwb3NzaWJsZS4KQEAgLTQxNyw2ICs0MzEsNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1l
bnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQog
ICAgICAgICBpZiAodGhpcy5leHBhbmRBbGxCdXR0b25FbGVtZW50ICYmIHRoaXMuZXhwYW5kQWxs
QnV0dG9uRWxlbWVudC5fX3RyZWVFbGVtZW50LnBhcmVudCkKICAgICAgICAgICAgIHRoaXMucmVt
b3ZlQ2hpbGQodGhpcy5leHBhbmRBbGxCdXR0b25FbGVtZW50Ll9fdHJlZUVsZW1lbnQpOwogCisg
ICAgICAgIC8vIEZJWE1FOiBEb2Vzbid0IHRha2UgaW50byBhY2NvdW50IGJlZm9yZS9hZnRlciBj
aGlsZHJlbi4KICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OwogICAg
ICAgICBpZiAoIW5vZGUuY2hpbGRyZW4pCiAgICAgICAgICAgICByZXR1cm47CkBAIC01NzUsNyAr
NTkwLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1l
bnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgaWYgKHRoaXMudHJlZU91
dGxpbmUuc2VsZWN0ZWRET01Ob2RlKCkgIT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuaXNJblNoYWRvd1RyZWUoKSkKKyAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
aXNJblNoYWRvd1RyZWUoKSB8fCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzUHNldWRvRWxlbWVu
dCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmICh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgIT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIHRoaXMucmVw
cmVzZW50ZWRPYmplY3Qubm9kZVR5cGUoKSAhPT0gTm9kZS5URVhUX05PREUpCkBAIC0xMTE0LDcg
KzExMjksNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxl
bWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogCiAgICAgICAgIHN3aXRjaCAobm9k
ZS5ub2RlVHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01FTlRf
Tk9ERToKLSAgICAgICAgICAgICAgICB2YXIgZnJhZ21lbnRFbGVtZW50ID0gaW5mby50aXRsZURP
TS5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC1mcmFnbWVudCIpOworICAgICAgICAg
ICAgICAgIHZhciBmcmFnbWVudEVsZW1lbnQgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxkKCJz
cGFuIiwgImh0bWwtZnJhZ21lbnQiKTsKICAgICAgICAgICAgICAgICBpZiAobm9kZS5pc0luU2hh
ZG93VHJlZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50RWxlbWVudC50ZXh0Q29u
dGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hhZG93IENvbnRlbnQiKTsKICAgICAgICAg
ICAgICAgICAgICAgZnJhZ21lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoInNoYWRvdyIpOwpAQCAt
MTEyOCw2ICsxMTQzLDE0IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERP
TVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6CisgICAgICAg
ICAgICAgICAgaWYgKG5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdmFyIHBzZXVkb0VsZW1lbnQgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxkKCJzcGFuIiwg
Imh0bWwtcHNldWRvLWVsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgcHNldWRvRWxlbWVu
dC50ZXh0Q29udGVudCA9ICI6OiIgKyBub2RlLnBzZXVkb1R5cGUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgaW5mby50aXRsZURPTS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
XHUyMDBCIikpOworICAgICAgICAgICAgICAgICAgICBpbmZvLmhhc0NoaWxkcmVuID0gZmFsc2U7
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKwogICAgICAg
ICAgICAgICAgIHZhciB0YWdOYW1lID0gbm9kZS5ub2RlTmFtZUluQ29ycmVjdENhc2UoKTsKICAg
ICAgICAgICAgICAgICBpZiAodGhpcy5fZWxlbWVudENsb3NlVGFnKSB7CiAgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX2J1aWxkVGFnRE9NKGluZm8udGl0bGVET00sIHRhZ05hbWUsIHRydWUsIHRy
dWUpOwpAQCAtMTIzNyw2ICsxMjYwLDggQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0g
Y2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KIAogICAg
ICAgICBpZiAobm9kZS5oYXNTaGFkb3dSb290cygpKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7
CisgICAgICAgIGlmIChub2RlLmhhc1BzZXVkb0VsZW1lbnRzKCkpCisgICAgICAgICAgICByZXR1
cm4gbnVsbDsKIAogICAgICAgICB2YXIgc2libGluZyA9IGZpcnN0Q2hpbGQubmV4dFNpYmxpbmc7
CiAgICAgICAgIHJldHVybiBzaWJsaW5nID8gbnVsbCA6IGZpcnN0Q2hpbGQ7CkBAIC0xMjUyLDYg
KzEyNzcsMzcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVs
ZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAorICAgIF9oYXNWaXNpYmxlQ2hpbGRyZW4obm9kZSkKKyAgICB7CisgICAgICAg
IGlmICh0aGlzLl9zaG93SW5saW5lVGV4dChub2RlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBpZiAobm9kZS5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBf
dmlzaWJsZUNoaWxkcmVuKG5vZGUpCisgICAgeworICAgICAgICB2YXIgdmlzaWJsZUNoaWxkcmVu
ID0gW107CisKKyAgICAgICAgdmFyIGJlZm9yZVBzZXVkb0VsZW1lbnQgPSBub2RlLmJlZm9yZVBz
ZXVkb0VsZW1lbnQoKTsKKyAgICAgICAgaWYgKGJlZm9yZVBzZXVkb0VsZW1lbnQpCisgICAgICAg
ICAgICB2aXNpYmxlQ2hpbGRyZW4ucHVzaChiZWZvcmVQc2V1ZG9FbGVtZW50KTsKKworICAgICAg
ICBpZiAobm9kZS5jaGlsZE5vZGVDb3VudCkKKyAgICAgICAgICAgIHZpc2libGVDaGlsZHJlbiA9
IHZpc2libGVDaGlsZHJlbi5jb25jYXQobm9kZS5jaGlsZHJlbik7CisKKyAgICAgICAgdmFyIGFm
dGVyUHNldWRvRWxlbWVudCA9IG5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCk7CisgICAgICAgIGlm
IChhZnRlclBzZXVkb0VsZW1lbnQpCisgICAgICAgICAgICB2aXNpYmxlQ2hpbGRyZW4ucHVzaChh
ZnRlclBzZXVkb0VsZW1lbnQpOworCisgICAgICAgIHJldHVybiB2aXNpYmxlQ2hpbGRyZW47Cisg
ICAgfQorCiAgICAgcmVtb3ZlKCkKICAgICB7CiAgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0g
dGhpcy5wYXJlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQu
anMKaW5kZXggMjEwOTRlMy4uNmY2ZTAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVt
ZW50UGF0aENvbXBvbmVudC5qcwpAQCAtMzQsOCArMzQsMTMgQEAgV2ViSW5zcGVjdG9yLkRPTVRy
ZWVFbGVtZW50UGF0aENvbXBvbmVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVu
dCBleHQKIAogICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUoKSkgewogICAgICAgICBjYXNl
IE5vZGUuRUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9y
LkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5ET01FbGVtZW50SWNvblN0eWxlQ2xhc3NOYW1l
OwotICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JOb2RlKG5v
ZGUpOworICAgICAgICAgICAgaWYgKG5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAg
ICAgICAgICBjbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9u
ZW50LkRPTVBzZXVkb0VsZW1lbnRJY29uU3R5bGVDbGFzc05hbWU7CisgICAgICAgICAgICAgICAg
dGl0bGUgPSAiOjoiICsgbm9kZS5wc2V1ZG9UeXBlKCk7CisgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgIGNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBh
dGhDb21wb25lbnQuRE9NRWxlbWVudEljb25TdHlsZUNsYXNzTmFtZTsKKyAgICAgICAgICAgICAg
ICB0aXRsZSA9IFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvck5vZGUobm9kZSk7CisgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIE5vZGUuVEVYVF9OT0RF
OgpAQCAtMTI5LDYgKzEzNCw3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21w
b25lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQgZXh0CiB9OwogCiBXZWJJ
bnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LkRPTUVsZW1lbnRJY29uU3R5bGVD
bGFzc05hbWUgPSAiZG9tLWVsZW1lbnQtaWNvbiI7CitXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1l
bnRQYXRoQ29tcG9uZW50LkRPTVBzZXVkb0VsZW1lbnRJY29uU3R5bGVDbGFzc05hbWUgPSAiZG9t
LXBzZXVkby1lbGVtZW50LWljb24iOwogV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENv
bXBvbmVudC5ET01UZXh0Tm9kZUljb25TdHlsZUNsYXNzTmFtZSA9ICJkb20tdGV4dC1ub2RlLWlj
b24iOwogV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5ET01Db21tZW50
SWNvblN0eWxlQ2xhc3NOYW1lID0gImRvbS1jb21tZW50LWljb24iOwogV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5ET01Eb2N1bWVudFR5cGVJY29uU3R5bGVDbGFzc05h
bWUgPSAiZG9tLWRvY3VtZW50LXR5cGUtaWNvbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MKaW5k
ZXggNWNhY2VmOC4uYTU4YmIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNzcwpAQCAtMTU0LDEy
ICsxNTQsMTYgQEAKICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7CiB9CiAKKy5kb20tdHJlZS1v
dXRsaW5lIC5odG1sLXBzZXVkby1lbGVtZW50IHsKKyAgICBjb2xvcjogYnJvd247Cit9CisKKy5k
b20tdHJlZS1vdXRsaW5lIC5odG1sLWZyYWdtZW50LnNoYWRvdyB7CisgICAgb3BhY2l0eTogMC42
OworfQorCiAuc2hvd2luZy1maW5kLWJhbm5lciAuZG9tLXRyZWUtb3V0bGluZSAuc2VhcmNoLWhp
Z2hsaWdodCB7CiAgICAgY29sb3I6IGJsYWNrOwogICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEo
NTMsIDgzJSwgNTMlLCAwLjIpOwogICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBoc2woNDcs
IDgyJSwgNjAlKTsKIH0KLQotLndlYmtpdC1odG1sLWZyYWdtZW50LnNoYWRvdyB7Ci0gICAgb3Bh
Y2l0eTogMC42OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qcwppbmRleCBmYTdlNTI2Li5lZjFiM2Rj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKQEAgLTU0OCwxMiArNTQ4LDE5IEBAIFdlYkluc3Bl
Y3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5z
cGVjdG9yLlRyZWVPdXRsCiAKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKIAotICAg
ICAgICB2YXIgc2VsZWN0ZWROb2RlID0gdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50LnJlcHJlc2Vu
dGVkT2JqZWN0OwotICAgICAgICBjb25zb2xlLmFzc2VydChzZWxlY3RlZE5vZGUpOwotICAgICAg
ICBpZiAoIXNlbGVjdGVkTm9kZSkKKyAgICAgICAgdmFyIGVmZmVjdGl2ZU5vZGUgPSB0aGlzLnNl
bGVjdGVkVHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KGVmZmVjdGl2ZU5vZGUpOworICAgICAgICBpZiAoIWVmZmVjdGl2ZU5vZGUpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHNlbGVjdGVkTm9kZS5ub2RlVHlwZSgpICE9PSBO
b2RlLkVMRU1FTlRfTk9ERSkKKyAgICAgICAgaWYgKGVmZmVjdGl2ZU5vZGUuaXNQc2V1ZG9FbGVt
ZW50KCkpIHsKKyAgICAgICAgICAgIGVmZmVjdGl2ZU5vZGUgPSBlZmZlY3RpdmVOb2RlLnBhcmVu
dE5vZGU7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChlZmZlY3RpdmVOb2RlKTsKKyAgICAg
ICAgICAgIGlmICghZWZmZWN0aXZlTm9kZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0gICAgICAgICAgICAKKworICAgICAgICBpZiAoZWZmZWN0aXZlTm9kZS5ub2RlVHlwZSgp
ICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBm
dW5jdGlvbiByZXNvbHZlZE5vZGUob2JqZWN0KQpAQCAtNTc5LDcgKzU4Niw3IEBAIFdlYkluc3Bl
Y3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5z
cGVjdG9yLlRyZWVPdXRsCiAgICAgICAgICAgICBvYmplY3QucmVsZWFzZSgpOwogICAgICAgICB9
CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZShzZWxlY3Rl
ZE5vZGUsICIiLCByZXNvbHZlZE5vZGUpOworICAgICAgICBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0LnJlc29sdmVOb2RlKGVmZmVjdGl2ZU5vZGUsICIiLCByZXNvbHZlZE5vZGUpOwogICAgIH0K
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1BhdGhDb21wb25lbnRJY29ucy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9QYXRoQ29tcG9uZW50SWNvbnMuY3NzCmluZGV4IDRkMzg3N2IuLjVlNjg5
MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1BhdGhDb21wb25lbnRJY29ucy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUGF0aENvbXBvbmVudEljb25zLmNzcwpAQCAtMzUsNiArMzUsMTAgQEAK
ICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0RPTUVsZW1lbnQuc3ZnKTsKIH0KIAorLmRvbS1w
c2V1ZG8tZWxlbWVudC1pY29uIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1Bz
ZXVkb0VsZW1lbnQuc3ZnKTsKK30KKwogLmRvbS10ZXh0LW5vZGUtaWNvbiAuaWNvbiB7CiAgICAg
Y29udGVudDogdXJsKC4uL0ltYWdlcy9ET01UZXh0Tm9kZS5zdmcpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFp
bHNQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9S
dWxlc1N0eWxlRGV0YWlsc1BhbmVsLmNzcwppbmRleCAxN2FiOTk4NC4uYTY0Y2Y3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHls
ZURldGFpbHNQYW5lbC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3MKQEAgLTUyLDYgKzUyLDEwIEBACiAg
ICAgb3BhY2l0eTogMC41OwogfQogCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHls
ZSAucnVsZXMgPiAqOmZpcnN0LWNoaWxkOm1hdGNoZXMoLm5ldy1ydWxlKSB7CisgICAgbWFyZ2lu
LXRvcDogOHB4OworfQorCiAuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHlsZSA+IC5j
b250ZW50LmZpbHRlci1pbi1wcm9ncmVzcyAubGFiZWwgewogICAgIHBhZGRpbmctdG9wOiAxNXB4
OwogfQo=
</data>
<flag name="commit-queue"
          id="282653"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>257491</attachid>
            <date>2015-07-24 16:35:15 -0700</date>
            <delta_ts>2015-07-24 16:35:15 -0700</delta_ts>
            <desc>[IMAGE] Pseudo Element</desc>
            <filename>pseudo.png</filename>
            <type>image/png</type>
            <size>149436</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">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
zMTU1Ad1AHBtAHwTTk1NHpqa+laJNPsIgPa0Wa0+bVjkD6bQQFkZK3f7XEA2+A/7B808Ckf/hAH9
AAABnmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpu
czptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRm
OkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8v
bnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4x
MTM5PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9u
PjYyMDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8
L3JkZjpSREY+CjwveDp4bXBtZXRhPgqwHs0hAABAAElEQVR4AexdB3xUVfb+Jp0UICEJvUmXKkpR
RAFdxEaxi7Ar9rairoquDXF3BSs2xLbu/rGgLiLoroIKgoAgilIUBCKdUBMI6ZnM/M95Mze5eXlv
SgqZCef+MnPvPffcc8/93uTNe9+ce5/DTQmSBAFBQBAIMQTk1BRiB0TcEQQEAUFAEBAEBAFBQBAQ
BMIUAYfDEaae27sdZd8kLYKAICAI1B4CQtbUHrZiWRAQBAQBQUAQEAQEAUFAEBAEyhHwd+8RjmSP
kDnlx1dKgoAgUEsI+Dt51tKwYlYQEAQEAUFAEBAEBAFBQBAQBAQBvwhY3a+EOsHjn8wpPAh3Vhwc
LZL8AmCn4P5tDVASD7RsB0dynJ1a3cud2Vi/fhvQoAnadWyLJP/o1L3P4oEgEIIIWJ0MQ9BNcUkQ
EAQEAUFAEBAEBAFBQBAQBAQBSwTM9zShRu5EWHrNQudOuMb3R2nKKXC986utmr8G98xr4bryH3D1
Pxeulh3h2lnor0vA7YUZ8zGa1r4xqJ5Xb7y4eEfA/Ssq7sCUvikY9/i96NWtHRr+4TUcq6ggNUFA
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
AgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAA
gdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4S
WSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAg
QIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQ
IECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOkt
RAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAA
AQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECA
AIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+
ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQ
IECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQI
ECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzp
LUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECA
AAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBA
gACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM
/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQI
ECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIE
CBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM
6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBA
gAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAg
QIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjm
jP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIE
CBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAEC
BAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQ
zOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAg
QIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQ
IECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso
5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAEC
BAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAAB
AgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAX
UMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQ
IECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQI
ECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdEL
KOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSAB
AgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAA
AQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECg
F1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQI
ECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIE
CBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHR
CyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+Elkg
AQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECA
AAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBA
oBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQE
CBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAEC
BAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB
0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZ
IAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBA
gAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAg
QKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1E
BAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAAB
AgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAA
gdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4S
WSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAg
QIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQ
IECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOkt
RAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAA
AQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECA
AIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+
ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQ
IECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQI
ECBAoBdQzOktRAQIECBAgAABAgQIECBAgACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzp
LUQECBAgQIAAAQIECBAgQIAAgdELKOaM/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECA
AAECBAgQIECAAIHRCyjmjP4SWSABAgQIECBAgAABAgQIECBAoBdQzOktRAQIECBAgAABAgQIECBA
gACB0Qso5oz+ElkgAQIECBAgQIAAAQIECBAgQKAXUMzpLUQECBAgQIAAAQIECBAgQIAAgdELKOaM
/hJZIAECBAgQIECAAAECBAgQIECgF1DM6S1EBAgQIECAAAECBAgQIECAAIHRCyjmjP4SWSABAgQI
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257500</attachid>
            <date>2015-07-24 18:22:03 -0700</date>
            <delta_ts>2015-07-24 19:42:29 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>pseudo-2.patch</filename>
            <type>text/plain</type>
            <size>86667</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTcwYjFmLi45MGE2OTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTUtMDct
MjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9y
LXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rv
bS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGljLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMuaHRtbDog
QWRkZWQuCisKKzIwMTUtMDctMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KKwogICAgICAgICBDU1MgImNvbnRlbnQiIHByb3BlcnR5IGlzIG1pc3NpbmcgaW4gZ2V0Q29t
cHV0ZWRTdHlsZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NzI1NQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1
ZG8tZWxlbWVudC1ub2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40N2I3MDU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0aW5nIHRoYXQgd2UgY2FuIGdldCBjb21wdXRl
ZCBhbmQgbWF0Y2hlZCBydWxlcyBmb3IgcHNldWRvIGVsZW1lbnQgbm9kZXMuCisKK1RFU1QgRUxF
TUVOVDogSGFzIEJlZm9yZSBQc2V1ZG8gRWxlbWVudAorUEFTUzogR290IDo6YmVmb3JlIHBzZXVk
byBlbGVtZW50IGZvciAjeAorUmVmcmVzaGluZyBzdHlsZXMgZm9yIDo6YmVmb3JlIHBzZXVkbyBl
bGVtZW50CisKK1BBU1M6IE5vIElubGluZSBTdHlsZXMKK1BBU1M6IE5vIEF0dHJpYnV0ZSBTdHls
ZXMKK1BBU1M6IE5vIEluaGVyaXRlZCBTdHlsZXMKK1BBU1M6IE5vIFBzZXVkbyBFbGVtZW50IFN0
eWxlcworUEFTUzogSGFzIENvbXB1dGVkIFN0eWxlcworUFJPUEVSVFk6IGNvbnRlbnQ6IGJlZm9y
ZTsKK1BST1BFUlRZOiBjb2xvcjogcmdiKDAsIDAsIDI1NSk7CitNQVRDSEVEIFJVTEUgLSBTRUxF
Q1RPUjogI3g6OmJlZm9yZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hlcy1mb3ItcHNldWRv
LWVsZW1lbnQtbm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkw
MWY1YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbApAQCAtMCwwICsx
LDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB2YXIg
bm9kZVN0eWxlcyA9IG51bGw7CisKKyAgICBmdW5jdGlvbiB2YWxpZGF0ZVN0eWxlcygpIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdCghbm9kZVN0eWxlcy5pbmxpbmVTdHlsZSwgIk5vIElubGluZSBTdHlsZXMiKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFub2RlU3R5bGVzLmF0dHJpYnV0ZXNTdHls
ZSwgIk5vIEF0dHJpYnV0ZSBTdHlsZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KCFub2RlU3R5bGVzLmluaGVyaXRlZFJ1bGVzLmxlbmd0aCwgIk5vIEluaGVyaXRlZCBTdHls
ZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFPYmplY3Qua2V5cyhub2Rl
U3R5bGVzLnBzZXVkb0VsZW1lbnRzKS5sZW5ndGgsICJObyBQc2V1ZG8gRWxlbWVudCBTdHlsZXMi
KTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobm9kZVN0eWxlcy5jb21wdXRl
ZFN0eWxlLCAiSGFzIENvbXB1dGVkIFN0eWxlcyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUFJPUEVSVFk6ICIgKyBub2RlU3R5bGVzLmNvbXB1dGVkU3R5bGUucHJvcGVydHlGb3JOYW1l
KCJjb250ZW50IikudGV4dCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQUk9QRVJUWTog
IiArIG5vZGVTdHlsZXMuY29tcHV0ZWRTdHlsZS5wcm9wZXJ0eUZvck5hbWUoImNvbG9yIikudGV4
dCk7CisKKyAgICAgICAgZm9yICh2YXIgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJNQVRDSEVEIFJVTEUgLSBTRUxFQ1RPUjog
IiArIHJ1bGUuc2VsZWN0b3JUZXh0KTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOyAgICAgICAgICAgICAgICAKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJl
ZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAg
ICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUu
aWQsICIjeCIsIGZ1bmN0aW9uKGNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAgIHZhciBkb21O
b2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlk
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUpOworICAgICAgICAg
ICAgdmFyIGJlZm9yZVBzZXVkb0VsZW1lbnRET01Ob2RlID0gZG9tTm9kZS5iZWZvcmVQc2V1ZG9F
bGVtZW50KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoYmVmb3JlUHNl
dWRvRWxlbWVudERPTU5vZGUsICJHb3QgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQgZm9yICN4Iik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVmcmVzaGluZyBzdHlsZXMgZm9yIDo6
YmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICBub2RlU3R5bGVzID0gV2ViSW5z
cGVjdG9yLmNzc1N0eWxlTWFuYWdlci5zdHlsZXNGb3JOb2RlKGJlZm9yZVBzZXVkb0VsZW1lbnRE
T01Ob2RlKTsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRE9NTm9kZVN0eWxlcy5FdmVudC5SZWZyZXNoZWQsIHZhbGlkYXRlU3R5bGVzKTsKKyAg
ICAgICAgICAgIG5vZGVTdHlsZXMucmVmcmVzaCgpOworICAgICAgICB9KTsKKyAgICB9KTsKKwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+
VGVzdGluZyB0aGF0IHdlIGNhbiBnZXQgY29tcHV0ZWQgYW5kIG1hdGNoZWQgcnVsZXMgZm9yIHBz
ZXVkbyBlbGVtZW50IG5vZGVzLjwvcD4KKworICAgIDxzdHlsZT4KKyAgICAjeDpiZWZvcmUgeyBj
b250ZW50OiAiYmVmb3JlIjsgY29sb3I6IGJsdWU7IH0KKyAgICA8L3N0eWxlPgorCisgICAgPGRp
diBpZD0ieCI+VEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIFBzZXVkbyBFbGVtZW50PC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3Bz
ZXVkby1lbGVtZW50LWR5bmFtaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5iYmEzN2UzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQ5IEBACitUZXN0IGZvciBiYXNpYyBET01Ob2RlIHBzZXVkbyBlbGVtZW50IHN1cHBv
cnQuCisKK1RFU1QgRUxFTUVOVAorCitQQVNTOiBHb3QgRE9NTm9kZSBmb3IgI3gKK1BBU1M6IERP
TU5vZGUgaGFzIG5vIHBzZXVkbyBlbGVtZW50cworCitBZGQgOmJlZm9yZQorRVZFTlQ6IE5vZGVJ
bnNlcnRlZAorCitWZXJpZnkgOmJlZm9yZSB3YXMgYWRkZWQKK1BBU1M6ICN4IERPTU5vZGUgaGFz
IHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMKK1BB
U1M6IERPTU5vZGUgaGFzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01Ob2RlIGRv
ZXMgbm90IGhhdmUgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6IE5ldyBET01Ob2RlIGlz
IHRoZSBiZWZvcmVQc2V1ZG9FbGVtZW50CitQQVNTOiBOZXcgRE9NTm9kZSBpcyBhIGNoaWxkIG9m
ICN4CitQQVNTOiBOZXcgRE9NTm9kZSBpcyBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudAorCitSZW1v
dmUgOmJlZm9yZQorRVZFTlQ6IE5vZGVSZW1vdmVkCisKK1ZlcmlmeSA6YmVmb3JlIHdhcyByZW1v
dmVkCitQQVNTOiAjeCBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IFJlbW92
ZWQgRE9NTm9kZSB3YXMgdGhlIGJlZm9yZSBwc2V1ZG8gZWxlbWVudAorUEFTUzogUmVtb3ZlZCBE
T01Ob2RlIGhhcyBubyBwYXJlbnQKK1BBU1M6IFJlbW92ZWQgRE9NTm9kZSB3YXMgYSBiZWZvcmUg
cHNldWRvIGVsZW1lbnQKKworQWRkIDphZnRlcgorRVZFTlQ6IE5vZGVJbnNlcnRlZAorCitWZXJp
ZnkgOmFmdGVyIHdhcyBhZGRlZAorUEFTUzogI3ggRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRz
CitQQVNTOiBET01Ob2RlIGhhcyAxIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBkb2Vz
IG5vdCBoYXZlIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01Ob2RlIGhhcyBhbiBh
ZnRlciBwc2V1ZG8gZWxlbWVudAorUEFTUzogTmV3IERPTU5vZGUgaXMgdGhlIGFmdGVyUHNldWRv
RWxlbWVudAorUEFTUzogTmV3IERPTU5vZGUgaXMgYSBjaGlsZCBvZiAjeAorUEFTUzogTmV3IERP
TU5vZGUgaXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKKworUmVtb3ZlIDphZnRlcgorRVZFTlQ6
IE5vZGVSZW1vdmVkCisKK1ZlcmlmeSA6YWZ0ZXIgd2FzIHJlbW92ZWQKK1BBU1M6ICN4IERPTU5v
ZGUgaGFzIG5vIHBzZXVkbyBlbGVtZW50cworUEFTUzogUmVtb3ZlZCBET01Ob2RlIHdhcyB0aGUg
YWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6IFJlbW92ZWQgRE9NTm9kZSBoYXMgbm8gcGFyZW50
CitQQVNTOiBSZW1vdmVkIERPTU5vZGUgd2FzIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1p
Yy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWlj
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThiMmRlMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHlu
YW1pYy5odG1sCkBAIC0wLDAgKzEsMTU2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKSB7CisKKyAg
ICB2YXIgdGVzdERPTU5vZGUgPSBudWxsOworICAgIHZhciBpbnNlcnRlZE9yUmVtb3ZlZERPTU5v
ZGUgPSBudWxsOworICAgIHZhciBwcmV2aW91c0luc2VydGVkRE9NTm9kZSA9IG51bGw7CisKKyAg
ICB2YXIgc3RlcHMgPSBbCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJBZGQgOmJlZm9y
ZSIsCisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4Jyku
Y2xhc3NMaXN0LmFkZCgnYicpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgIG5hbWU6ICJWZXJpZnkgOmJlZm9yZSB3YXMgYWRkZWQiLAorICAgICAg
ICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQodGVzdERPTU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIiN4IERPTU5vZGUg
aGFzIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdCh0ZXN0RE9NTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDEsICJET01Ob2Rl
IGhhcyAxIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdCh0ZXN0RE9NTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhh
cyBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghdGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2Rl
IGRvZXMgbm90IGhhdmUgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUgPT09
IHRlc3RET01Ob2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSwgIk5ldyBET01Ob2RlIGlzIHRoZSBi
ZWZvcmVQc2V1ZG9FbGVtZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZS5wYXJlbnROb2RlID09PSB0ZXN0RE9NTm9k
ZSwgIk5ldyBET01Ob2RlIGlzIGEgY2hpbGQgb2YgI3giKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBzZXVkb1R5cGUo
KSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQmVmb3JlLCAiTmV3
IERPTU5vZGUgaXMgYSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAgICAg
IHByZXZpb3VzSW5zZXJ0ZWRET01Ob2RlID0gaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlOworICAg
ICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgbmFtZTogIlJlbW92ZSA6YmVmb3JlIiwKKyAgICAgICAgICAgIGFjdGlv
bjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUlu
UGFnZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gnKS5jbGFzc0xpc3QucmVtb3ZlKCdiJyki
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbmFt
ZTogIlZlcmlmeSA6YmVmb3JlIHdhcyByZW1vdmVkIiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0
RE9NTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAiI3ggRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVs
ZW1lbnRzIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQodGVzdERPTU5v
ZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAwKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9F
bGVtZW50KCkpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGlu
c2VydGVkT3JSZW1vdmVkRE9NTm9kZSA9PT0gcHJldmlvdXNJbnNlcnRlZERPTU5vZGUsICJSZW1v
dmVkIERPTU5vZGUgd2FzIHRoZSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBh
cmVudE5vZGUgPT09IG51bGwsICJSZW1vdmVkIERPTU5vZGUgaGFzIG5vIHBhcmVudCIpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERP
TU5vZGUucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50
VHlwZS5CZWZvcmUsICJSZW1vdmVkIERPTU5vZGUgd2FzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50
Iik7CisKKyAgICAgICAgICAgICAgICBwcmV2aW91c0luc2VydGVkRE9NTm9kZSA9IG51bGw7Cisg
ICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICBuYW1lOiAiQWRkIDphZnRlciIsCisgICAgICAgICAgICBhY3Rpb246
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4JykuY2xhc3NMaXN0LmFkZCgnYScpIik7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJW
ZXJpZnkgOmFmdGVyIHdhcyBhZGRlZCIsCisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCh0ZXN0RE9NTm9kZS5o
YXNQc2V1ZG9FbGVtZW50cygpLCAiI3ggRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzIik7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHRlc3RET01Ob2RlLnBzZXVk
b0VsZW1lbnRzKCkuc2l6ZSA9PT0gMSwgIkRPTU5vZGUgaGFzIDEgcHNldWRvIGVsZW1lbnRzIik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0RE9NTm9kZS5i
ZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGRvZXMgbm90IGhhdmUgYSBiZWZvcmUgcHNl
dWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
dGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhbiBhZnRlciBw
c2V1ZG8gZWxlbWVudCIpOworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZSA9PT0gdGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9F
bGVtZW50KCksICJOZXcgRE9NTm9kZSBpcyB0aGUgYWZ0ZXJQc2V1ZG9FbGVtZW50Iik7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9N
Tm9kZS5wYXJlbnROb2RlID09PSB0ZXN0RE9NTm9kZSwgIk5ldyBET01Ob2RlIGlzIGEgY2hpbGQg
b2YgI3giKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0
ZWRPclJlbW92ZWRET01Ob2RlLnBzZXVkb1R5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUu
UHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJOZXcgRE9NTm9kZSBpcyBhbiBhZnRlciBwc2V1ZG8g
ZWxlbWVudCIpOworCisgICAgICAgICAgICAgICAgcHJldmlvdXNJbnNlcnRlZERPTU5vZGUgPSBp
bnNlcnRlZE9yUmVtb3ZlZERPTU5vZGU7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAiUmVtb3Zl
IDphZnRlciIsCisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd4JykuY2xhc3NMaXN0LnJlbW92ZSgnYScpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJWZXJpZnkgOmFmdGVyIHdhcyByZW1vdmVk
IiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0RE9NTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAi
I3ggRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQodGVzdERPTU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAw
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUuYmVm
b3JlUHNldWRvRWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dCghdGVzdERPTU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpOworCisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZSA9PT0gcHJl
dmlvdXNJbnNlcnRlZERPTU5vZGUsICJSZW1vdmVkIERPTU5vZGUgd2FzIHRoZSBhZnRlciBwc2V1
ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChp
bnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucGFyZW50Tm9kZSA9PT0gbnVsbCwgIlJlbW92ZWQgRE9N
Tm9kZSBoYXMgbm8gcGFyZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkFmdGVyLCAiUmVtb3ZlZCBET01Ob2RlIHdh
cyBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudCIpOworCisgICAgICAgICAgICAgICAgcHJldmlvdXNJ
bnNlcnRlZERPTU5vZGUgPSBudWxsOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICBdOworCisgICAgZnVuY3Rpb24gbmV4dCgpCisgICAgewor
ICAgICAgICB2YXIgc3RlcCA9IHN0ZXBzLnNoaWZ0KCk7CisgICAgICAgIGlmIChzdGVwKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhzdGVwLm5hbWUpOworICAgICAgICAgICAgc3RlcC5hY3Rpb24oKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOworICAgIH0KKworICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5yZXF1ZXN0RG9j
dW1lbnQoZnVuY3Rpb24oZG9jdW1lbnROb2RlKSB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21U
cmVlTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiN4IiwgZnVuY3Rpb24o
bm9kZUlkKSB7CisgICAgICAgICAgICB0ZXN0RE9NTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVl
TWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCIiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCh0ZXN0RE9NTm9kZSwg
IkdvdCBET01Ob2RlIGZvciAjeCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
IXRlc3RET01Ob2RlLnBzZXVkb1R5cGUoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQoIXRlc3RET01Ob2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICJET01Ob2RlIGhhcyBu
byBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRl
c3RET01Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCF0ZXN0RE9NTm9kZS5hZnRlclBzZXVkb0Vs
ZW1lbnQoKSk7CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgIH0pOworICAgIH0pOworCisg
ICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVJbnNlcnRlZCwgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgLy8gVGVzdCBsb2dnaW5nIHdpbGwgYWRkIG5vZGVzIHRvIHRoZSB0ZXN0IHBhZ2Uu
IElnbm9yZSBhbnkgZWxlbWVudHMgYWRkZWQgdGhhdCBhcmUgbm90IGNoaWxkcmVuIG9mIG91ciB0
ZXN0IG5vZGUuCisgICAgICAgIGlmIChldmVudC5kYXRhLnBhcmVudCAhPT0gdGVzdERPTU5vZGUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVWRU5U
OiBOb2RlSW5zZXJ0ZWQiKTsKKyAgICAgICAgaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlID0gZXZl
bnQuZGF0YS5ub2RlOworICAgICAgICBuZXh0KCk7CisgICAgfSk7CisKKyAgICBXZWJJbnNwZWN0
b3IuZG9tVHJlZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NVHJlZU1h
bmFnZXIuRXZlbnQuTm9kZVJlbW92ZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJFVkVOVDogTm9kZVJlbW92ZWQiKTsKKyAgICAgICAgaW5zZXJ0ZWRPclJl
bW92ZWRET01Ob2RlID0gZXZlbnQuZGF0YS5ub2RlOworICAgICAgICBuZXh0KCk7CisgICAgfSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8
cD5UZXN0IGZvciBiYXNpYyBET01Ob2RlIHBzZXVkbyBlbGVtZW50IHN1cHBvcnQuPC9wPgorCisg
ICAgPHN0eWxlPgorICAgIC5iOmJlZm9yZSB7IGNvbnRlbnQ6ICJiZWZvcmUiOyB9CisgICAgLmE6
YWZ0ZXIgeyBjb250ZW50OiAiYWZ0ZXIiOyB9CisgICAgPC9zdHlsZT4KKworICAgIDxkaXYgaWQ9
IngiPlRFU1QgRUxFTUVOVDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ZWNmNmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0
YXRpYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorVGVzdCBmb3IgYmFzaWMgRE9NTm9k
ZSBwc2V1ZG8gZWxlbWVudCBzdXBwb3J0LgorCitURVNUIEVMRU1FTlQ6IE5vIFBzZXVkbyBFbGVt
ZW50cworVEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIFBzZXVkbyBFbGVtZW50CitURVNUIEVMRU1F
TlQ6IEhhcyBBZnRlciBQc2V1ZG8gRWxlbWVudAorVEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIGFu
ZCBBZnRlciBQc2V1ZG8gRWxlbWVudHMKKworUEFTUzogR290IERPTU5vZGUgZm9yICNub25lCitQ
QVNTOiBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKKworUEFTUzogR290IERPTU5vZGUg
Zm9yICNiCitQQVNTOiBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUg
aGFzIDEgcHNldWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1ZG8g
ZWxlbWVudAorUEFTUzogRE9NTm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFmdGVyIHBzZXVkbyBlbGVt
ZW50CitQQVNTOiBET01Ob2RlIGZvciBiZWZvcmUgcHNldWRvIGVsZW1lbnQgaGFzIHRoZSByaWdo
dCB0eXBlCisKK1BBU1M6IEdvdCBET01Ob2RlIGZvciAjYQorUEFTUzogRE9NTm9kZSBoYXMgcHNl
dWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhhcyAxIHBzZXVkbyBlbGVtZW50cworUEFTUzog
RE9NTm9kZSBkb2VzIG5vdCBoYXZlIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01O
b2RlIGhhcyBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudAorUEFTUzogRE9NTm9kZSBmb3IgYWZ0ZXIg
cHNldWRvIGVsZW1lbnQgaGFzIHRoZSByaWdodCB0eXBlCisKK1BBU1M6IEdvdCBET01Ob2RlIGZv
ciAjeAorUEFTUzogRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhh
cyAyIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgYSBiZWZvcmUgcHNldWRvIGVs
ZW1lbnQKK1BBU1M6IERPTU5vZGUgaGFzIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CitQQVNTOiBE
T01Ob2RlIGZvciBiZWZvcmUgcHNldWRvIGVsZW1lbnQgaGFzIHRoZSByaWdodCB0eXBlCitQQVNT
OiBET01Ob2RlIGZvciBhZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0
aWMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGlj
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRmMWM0MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3Rh
dGljLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIFdl
Ykluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoZnVuY3Rpb24oZG9jdW1l
bnROb2RlKSB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVj
dG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNub25lIiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAg
ICAgICB2YXIgZG9tTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQo
bm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNub25l
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZG9tTm9kZS5wc2V1ZG9UeXBl
KCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFkb21Ob2RlLmhhc1Bz
ZXVkb0VsZW1lbnRzKCksICJET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXpl
ID09PSAwKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFkb21Ob2RlLmJlZm9y
ZVBzZXVkb0VsZW1lbnQoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZG9t
Tm9kZS5hZnRlclBzZXVkb0VsZW1lbnQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIFdlYklu
c3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNi
IiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdlYkluc3Bl
Y3Rvci5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChk
b21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydCghZG9tTm9kZS5wc2V1ZG9UeXBlKCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGRvbU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIkRPTU5vZGUgaGFzIHBz
ZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRv
bU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAxLCAiRE9NTm9kZSBoYXMgMSBwc2V1ZG8g
ZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2Rl
LmJlZm9yZVBzZXVkb0VsZW1lbnQoKSwgIkRPTU5vZGUgaGFzIGEgYmVmb3JlIHBzZXVkbyBlbGVt
ZW50Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWRvbU5vZGUuYWZ0
ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGRvZXMgbm90IGhhdmUgYW4gYWZ0ZXIgcHNldWRv
IGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2Rl
LmJlZm9yZVBzZXVkb0VsZW1lbnQoKS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3BlY3Rvci5ET01O
b2RlLlBzZXVkb0VsZW1lbnRUeXBlLkJlZm9yZSwgIkRPTU5vZGUgZm9yIGJlZm9yZSBwc2V1ZG8g
ZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAi
I2EiLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV2ViSW5z
cGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGRvbU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI2EiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KCFkb21Ob2RlLnBzZXVkb1R5cGUoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAiRE9NTm9kZSBoYXMg
cHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
ZG9tTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDEsICJET01Ob2RlIGhhcyAxIHBzZXVk
byBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFkb21O
b2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSwgIkRPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9y
ZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhbiBhZnRlciBwc2V1
ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5v
ZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9N
Tm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5BZnRlciwgIkRPTU5vZGUgZm9yIGFmdGVyIHBzZXVkbyBl
bGVtZW50IGhhcyB0aGUgcmlnaHQgdHlwZSIpOworICAgICAgICB9KTsKKworICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIj
eCIsIGZ1bmN0aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXZWJJbnNw
ZWN0b3IuZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
ZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZvciAjeCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoIWRvbU5vZGUucHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChkb21Ob2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICJET01Ob2RlIGhhcyBw
c2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChk
b21Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMiwgIkRPTU5vZGUgaGFzIDIgcHNldWRv
IGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9k
ZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1ZG8gZWxl
bWVudCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYWZ0
ZXJQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudCIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYmVmb3JlUHNl
dWRvRWxlbWVudCgpLnBzZXVkb1R5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRv
RWxlbWVudFR5cGUuQmVmb3JlLCAiRE9NTm9kZSBmb3IgYmVmb3JlIHBzZXVkbyBlbGVtZW50IGhh
cyB0aGUgcmlnaHQgdHlwZSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KGRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0
b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5BZnRlciwgIkRPTU5vZGUgZm9yIGFmdGVyIHBz
ZXVkbyBlbGVtZW50IGhhcyB0aGUgcmlnaHQgdHlwZSIpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0IGZvciBiYXNp
YyBET01Ob2RlIHBzZXVkbyBlbGVtZW50IHN1cHBvcnQuPC9wPgorCisgICAgPHN0eWxlPgorICAg
ICN4OmJlZm9yZSwgI2I6YmVmb3JlIHsgY29udGVudDogImJlZm9yZSI7IH0KKyAgICAjeDphZnRl
ciwgI2E6YWZ0ZXIgeyBjb250ZW50OiAiYWZ0ZXIiOyB9CisgICAgPC9zdHlsZT4KKworICAgIDxk
aXYgaWQ9Im5vbmUiPlRFU1QgRUxFTUVOVDogTm8gUHNldWRvIEVsZW1lbnRzPC9kaXY+CisgICAg
PGRpdiBpZD0iYiI+VEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIFBzZXVkbyBFbGVtZW50PC9kaXY+
CisgICAgPGRpdiBpZD0iYSI+VEVTVCBFTEVNRU5UOiBIYXMgQWZ0ZXIgUHNldWRvIEVsZW1lbnQ8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJ4Ij5URVNUIEVMRU1FTlQ6IEhhcyBCZWZvcmUgYW5kIEFmdGVy
IFBzZXVkbyBFbGVtZW50czwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAzZWE2ZDNlLi5iNmMwZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxNS0wNy0yNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNob3cgUHNldWRvIEVsZW1lbnRz
IGluIERPTSBUcmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzk2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbjoKKyAgICAgICAgQWRkIG5ldyBwcm9w
ZXJ0aWVzIHRvIERPTU5vZGUgaWYgaXQgaXMgYSBwc2V1ZG8gZWxlbWVudCBvciBpZiBpdCBoYXMK
KyAgICAgICAgcHNldWRvIGVsZW1lbnQgY2hpbGRyZW4uIEFkZCBuZXcgZXZlbnRzIGZvciBpZiBh
IHBzZXVkbyBlbGVtZW50IGlzCisgICAgICAgIGFkZGVkIG9yIHJlbW92ZWQgZHluYW1pY2FsbHkg
dG8gYW4gZXhpc3RpbmcgRE9NTm9kZS4KKwogMjAxNS0wNy0yMiAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lIHNo
b3VsZCBpbW1lZGlhdGVseSBzdGFydCBtb3ZpbmcgcGxheSBoZWFkIHdoZW4gc3RhcnRpbmcgYSBu
ZXcgcmVjb3JkaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3Byb3RvY29sL0RPTS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9ET00uanNvbgppbmRleCA1ZTI4ZGRhLi5iMzJiNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RPTS5qc29uCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KQEAgLTE0LDYgKzE0LDEy
IEBACiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIERPTSBub2RlIGlkZW50aWZp
ZXIgdXNlZCB0byByZWZlcmVuY2UgYSBub2RlIHRoYXQgbWF5IG5vdCBoYXZlIGJlZW4gcHVzaGVk
IHRvIHRoZSBmcm9udC1lbmQuIgogICAgICAgICB9LAogICAgICAgICB7CisgICAgICAgICAgICAi
aWQiOiAiUHNldWRvVHlwZSIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAg
ICAgICAgImVudW0iOiBbImJlZm9yZSIsICJhZnRlciJdLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIlBzZXVkbyBlbGVtZW50IHR5cGUuIgorICAgICAgICB9LAorICAgICAgICB7CiAgICAg
ICAgICAgICAiaWQiOiAiTGl2ZVJlZ2lvblJlbGV2YW50IiwKICAgICAgICAgICAgICJ0eXBlIjog
InN0cmluZyIsCiAgICAgICAgICAgICAiZW51bSI6IFsiYWRkaXRpb25zIiwgInJlbW92YWxzIiwg
InRleHQiXSwKQEAgLTM5LDEwICs0NSwxMiBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
eG1sVmVyc2lvbiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICI8Y29kZT5Eb2N1bWVudDwvY29kZT4ncyBYTUwgdmVyc2lvbiBpbiBjYXNlIG9mIFhN
TCBkb2N1bWVudHMuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICI8Y29kZT5BdHRy
PC9jb2RlPidzIG5hbWUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidmFsdWUiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+
QXR0cjwvY29kZT4ncyB2YWx1ZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwc2V1
ZG9UeXBlIiwgIiRyZWYiOiAiUHNldWRvVHlwZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJQc2V1ZG8gZWxlbWVudCB0eXBlIGZvciB0aGlzIG5vZGUuIiB9LAogICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGcmFtZSBJRCBmb3IgZnJhbWUgb3duZXIg
ZWxlbWVudHMuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGVudERvY3VtZW50
IiwgIiRyZWYiOiAiTm9kZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb250
ZW50IGRvY3VtZW50IGZvciBmcmFtZSBvd25lciBlbGVtZW50cy4iIH0sCiAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzaGFkb3dSb290cyIsICJ0eXBlIjogImFycmF5IiwgIm9wdGlvbmFsIjog
dHJ1ZSwgIml0ZW1zIjogeyAiJHJlZiI6ICJOb2RlIiB9LCAiZGVzY3JpcHRpb24iOiAiU2hhZG93
IHJvb3QgbGlzdCBmb3IgZ2l2ZW4gZWxlbWVudCBob3N0LiIgfSwKICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInRlbXBsYXRlQ29udGVudCIsICIkcmVmIjogIk5vZGUiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGVudCBkb2N1bWVudCBmcmFnbWVudCBmb3IgdGVtcGxh
dGUgZWxlbWVudHMiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwc2V1ZG9FbGVtZW50
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJOb2RlIiB9LCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnRzIGFzc29jaWF0ZWQgd2l0
aCB0aGlzIG5vZGUuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicm9sZSIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb21wdXRlZCB2
YWx1ZSBmb3IgZmlyc3QgcmVjb2duaXplZCByb2xlIHRva2VuLCBkZWZhdWx0IHJvbGUgcGVyIGVs
ZW1lbnQsIG9yIG92ZXJyaWRkZW4gcm9sZS4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiRE9NIGludGVyYWN0aW9uIGlzIGltcGxlbWVudGVkIGluIHRlcm1z
IG9mIG1pcnJvciBvYmplY3RzIHRoYXQgcmVwcmVzZW50IHRoZSBhY3R1YWwgRE9NIG5vZGVzLiBE
T01Ob2RlIGlzIGEgYmFzZSBub2RlIG1pcnJvciB0eXBlLiIKQEAgLTUyNiw2ICs1MzQsMjIgQEAK
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJvb3RJZCIsICIkcmVmIjogIk5vZGVJZCIsICJk
ZXNjcmlwdGlvbiI6ICJTaGFkb3cgcm9vdCBpZC4iIH0KICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiQ2FsbGVkIHdoZW4gc2hhZG93IHJvb3QgaXMgcG9wcGVkIGZy
b20gdGhlIGVsZW1lbnQuIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFt
ZSI6ICJwc2V1ZG9FbGVtZW50QWRkZWQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYXJlbnRJZCIsICIkcmVmIjogIk5vZGVJZCIsICJk
ZXNjcmlwdGlvbiI6ICJQc2V1ZG8gZWxlbWVudCdzIHBhcmVudCBlbGVtZW50IGlkLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInBzZXVkb0VsZW1lbnQiLCAiJHJlZiI6ICJOb2RlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBhZGRlZCBwc2V1ZG8gZWxlbWVudC4iIH0KKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ2FsbGVkIHdoZW4gYSBwc2V1ZG8gZWxl
bWVudCBpcyBhZGRlZCB0byBhbiBlbGVtZW50LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAicHNldWRvRWxlbWVudFJlbW92ZWQiLAorICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYXJlbnRJZCIsICIkcmVm
IjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJQc2V1ZG8gZWxlbWVudCdzIHBhcmVudCBlbGVt
ZW50IGlkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBzZXVkb0VsZW1lbnRJZCIs
ICIkcmVmIjogIk5vZGVJZCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcmVtb3ZlZCBwc2V1ZG8gZWxl
bWVudCBpZC4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
Q2FsbGVkIHdoZW4gYSBwc2V1ZG8gZWxlbWVudCBpcyByZW1vdmVkIGZyb20gYW4gZWxlbWVudC4i
CiAgICAgICAgIH0KICAgICBdCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY2OGNhZi4uNDdkMWI4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDgwIEBACiAyMDE1LTA3LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2hvdyBQc2V1ZG8g
RWxlbWVudHMgaW4gRE9NIFRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzOTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMt
Zm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2Rv
bS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwKKyAgICAgICAgICAgICAgIGluc3BlY3Rvci9k
b20vcHNldWRvLWVsZW1lbnQtc3RhdGljLmh0bWwKKworICAgICAgICBNdWNoIG9mIHRoaXMgcGF0
Y2ggd2FzIG1vZGVsbGVkIGFmdGVyIHRoZSBCbGluayBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAg
ICBwc2V1ZG8gZWxlbWVudCBpbnNwZWN0aW9uLgorCisgICAgICAgICogZG9tL1BzZXVkb0VsZW1l
bnQuaDoKKyAgICAgICAgKiBkb20vUHNldWRvRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQc2V1ZG9FbGVtZW50Ojp+UHNldWRvRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQc2V1
ZG9FbGVtZW50OjpjbGVhckhvc3RFbGVtZW50KToKKyAgICAgICAgU2luY2UgSW5zcGVjdG9yRE9N
QWdlbnQgbWF5IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhpcyBQc2V1ZG9FbGVtZW50IHdlCisgICAg
ICAgIGNhbid0IHJlcG9ydCBpdCBhcyBkZXN0cm95ZWQgaW4gdGhlIGRlc3RydWN0b3IsIGFzIHRo
YXQgd291bGRuJ3QgYmUKKyAgICAgICAgcmVhY2hlZCBpZiB0aGUgaW5zcGVjdG9yIGhvbGRzIGEg
cmVmZXJlbmNlLiBNb3ZlIHRoaXMgdG8gd2hlbiB0aGUKKyAgICAgICAgcHN1ZWRvIGVsZW1lbnQg
aXMgZGlzY29ubmVjdGVkLCB3aGljaCBpcyBpbW1lZGlhdGVseSBiZWZvcmUgZGVzdHJ1Y3Rpb24u
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKToKKyAgICAgICAgV2hlbiBjb21w
dXRpbmcgc3R5bGVzIGZvciBhIHBzZXVkbyBlbGVtZW50LCBjb21wdXRlIHN0eWxlcyBmcm9tIHRo
ZQorICAgICAgICBob3N0IGVsZW1lbnQgZm9yIGp1c3QgdGhlIHBzZXVkbyBlbGVtZW50J3MgcHNl
dWRvIHR5cGUuIExpa2V3aXNlCisgICAgICAgIG9ubHkgaW5jbHVkZSBtYXRjaGVkIHJlc3VsdHMs
IG5vdCBpbmhlcml0ZWQgb3Igb3RoZXJzLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
U1NBZ2VudDo6YnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdCk6CisgICAgICAgIEFkZCB0aGUg
cHNldWRvIHR5cGUgdG8gdGhlIGNoZWNrZXIgY29udGV4dCB0byB0cnkgYW5kIGRldGVjdCBleGFj
dGx5CisgICAgICAgIHdoaWNoIHNlbGVjdG9yIGluIGEgbGlzdCBvZiBzZWxlY3RvcnMgbWF0Y2hl
ZCB0aGUgcHNldWRvIGVsZW1lbnQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZCk6CisgICAgICAgIFdoZW4g
dW5iaW5kaW5nIGFuIGVsZW1lbnQsIGFsc28gdW5iaW5kIGFueSBwc2V1ZG8gZWxlbWVudCBjaGls
ZHJlbgorICAgICAgICBpdCBtYXkgaGF2ZSBoYWQgYW5kIGJvdW5kLgorCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWRpdGFibGVOb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojphc3NlcnRFZGl0YWJsZUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlbW92ZU5vZGUpOgorICAgICAgICBJbXBy
b3ZlIGdyYW1tYXIgaW4gZXJyb3IgbWVzc2FnZS4gRG9uJ3QgYWxsb3cgZWRpdGluZyBwc2V1ZG8g
ZWxlbWVudHMuCisKKyAgICAgICAgKFdlYkNvcmU6OnBzZXVkb0VsZW1lbnRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvck5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVt
ZW50cyk6CisgICAgICAgIElmIGEgbm9kZSBpcyBhIHBzZXVkbyBlbGVtZW50IGluY2x1ZGUgaXRz
IHBzZXVkb1R5cGUuCisgICAgICAgIElmIGEgbm9kZSBoYXMgcHNldWRvIGVsZW1lbnQgY2hpbGRy
ZW4gaW5jbHVkZSB0aGVtLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
cHNldWRvRWxlbWVudENyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdl
bnQ6OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQpOgorICAgICAgICBXaGVuIHBzZXVkbyBlbGVtZW50
cyBhcmUgZHluYW1pY2FsbHkgY3JlYXRlZCBvciBkZXN0cm95ZWQKKyAgICAgICAgcHVzaCBwc2V1
ZG8gZWxlbWVudCBub2RlcyB0byB0aGUgZnJvbnRlbmQgaWYgbmVlZGVkLgorCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnRDcmVhdGVkSW1wbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnRE
ZXN0cm95ZWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVk
b0VsZW1lbnRDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmxheWVyVHJlZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlbmRlckxheWVyRGVzdHJveWVkKToKKyAgICAg
ICAgUGx1bWJpbmcgZm9yIHBzZXVkbyBlbGVtZW50IGNyZWF0ZWQvZGVzdHJveWVkIGV2ZW50cy4K
KworICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OmF0dGFjaEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50SWZOZWVkZWQpOgorICAg
ICAgICBUaGlzIGlzIHRoZSBvbmx5IHBsYWNlIGEgcHNldWRvIGVsZW1lbnQgaXMgY3JlYXRlZCwg
aW5mb3JtIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yT3Zl
cmxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZvckVsZW1lbnREYXRhKToK
KyAgICAgICAgVXBkYXRlIHRoZSBlbGVtZW50IGRhdGEgZm9yIHRoZSBub2RlIGhpZ2hsaWdodCBs
YWJlbCB0byBpbmNsdWRlIHRoZQorICAgICAgICBob3N0IGVsZW1lbnQncyBzZWxlY3RvciBhbmQg
dGhlIHBzZXVkbyBlbGVtZW50IHNlbGVjdG9yLgorCisyMDE1LTA3LTI0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgQ1NTICJjb250ZW50IiBwcm9wZXJ0
eSBpcyBtaXNzaW5nIGluIGdldENvbXB1dGVkU3R5bGVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0Vs
ZW1lbnQuY3BwCmluZGV4IDkzMmI3MWIuLmZlMTFmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRv
RWxlbWVudC5jcHAKQEAgLTY3LDcgKzY3LDEzIEBAIFBzZXVkb0VsZW1lbnQ6OlBzZXVkb0VsZW1l
bnQoRWxlbWVudCYgaG9zdCwgUHNldWRvSWQgcHNldWRvSWQpCiBQc2V1ZG9FbGVtZW50Ojp+UHNl
dWRvRWxlbWVudCgpCiB7CiAgICAgQVNTRVJUKCFtX2hvc3RFbGVtZW50KTsKK30KKwordm9pZCBQ
c2V1ZG9FbGVtZW50OjpjbGVhckhvc3RFbGVtZW50KCkKK3sKICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQoZG9jdW1lbnQoKS5wYWdlKCksICp0aGlz
KTsKKworICAgIG1faG9zdEVsZW1lbnQgPSBudWxscHRyOwogfQogCiBSZWZQdHI8UmVuZGVyU3R5
bGU+IFBzZXVkb0VsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoUmVuZGVyU3R5bGUmIHBh
cmVudFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmgKaW5kZXggOWNlMmJhYy4uNTgx
ZTEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5Qc2V1ZG9FbGVtZW50KCk7CiAKICAgICBFbGVtZW50KiBob3N0
RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faG9zdEVsZW1lbnQ7IH0KLSAgICB2b2lkIGNsZWFy
SG9zdEVsZW1lbnQoKSB7IG1faG9zdEVsZW1lbnQgPSBudWxscHRyOyB9CisgICAgdm9pZCBjbGVh
ckhvc3RFbGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxSZW5kZXJTdHlsZT4gY3VzdG9t
U3R5bGVGb3JSZW5kZXJlcihSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDNkMDYyMDguLmYx
OTRiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIk5hbWVkRmxvd0NvbGxlY3Rpb24uaCIK
ICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQc2V1
ZG9FbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJTVkdTdHlsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKQEAg
LTUwOSw0OSArNTEwLDYxIEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHls
ZXNGb3JOb2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vCiAgICAgaWYgKCFlbGVt
ZW50KQogICAgICAgICByZXR1cm47CiAKKyAgICBFbGVtZW50KiBvcmlnaW5hbEVsZW1lbnQgPSBl
bGVtZW50OworICAgIFBzZXVkb0lkIGVsZW1lbnRQc2V1ZG9JZCA9IGVsZW1lbnQtPnBzZXVkb0lk
KCk7CisgICAgaWYgKGVsZW1lbnRQc2V1ZG9JZCkgeworICAgICAgICBlbGVtZW50ID0gZG93bmNh
c3Q8UHNldWRvRWxlbWVudD4oKmVsZW1lbnQpLmhvc3RFbGVtZW50KCk7CisgICAgICAgIGlmICgh
ZWxlbWVudCkgeworICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIlBzZXVk
byBlbGVtZW50IGhhcyBubyBwYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKwogICAgIC8vIE1hdGNoZWQgcnVsZXMuCiAgICAgU3R5bGVSZXNvbHZlciYgc3R5
bGVSZXNvbHZlciA9IGVsZW1lbnQtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpOwot
ICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5zdHlsZVJ1bGVzRm9yRWxlbWVu
dChlbGVtZW50LCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7Ci0gICAgbWF0Y2hlZENTU1J1
bGVzID0gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVz
b2x2ZXIsIGVsZW1lbnQpOworICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5w
c2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBlbGVtZW50UHNldWRvSWQsIFN0eWxl
UmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKKyAgICBtYXRjaGVkQ1NTUnVsZXMgPSBidWlsZEFycmF5
Rm9yTWF0Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgZWxlbWVudCwg
ZWxlbWVudFBzZXVkb0lkKTsKIAotICAgIC8vIFBzZXVkbyBlbGVtZW50cy4KLSAgICBpZiAoIWlu
Y2x1ZGVQc2V1ZG8gfHwgKmluY2x1ZGVQc2V1ZG8pIHsKLSAgICAgICAgYXV0byBwc2V1ZG9FbGVt
ZW50cyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNT
Uzo6UHNldWRvSWRNYXRjaGVzPjo6Y3JlYXRlKCk7Ci0gICAgICAgIGZvciAoUHNldWRvSWQgcHNl
dWRvSWQgPSBGSVJTVF9QVUJMSUNfUFNFVURPSUQ7IHBzZXVkb0lkIDwgQUZURVJfTEFTVF9JTlRF
Uk5BTF9QU0VVRE9JRDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4ocHNldWRvSWQg
KyAxKSkgewotICAgICAgICAgICAgYXV0byBtYXRjaGVkUnVsZXMgPSBzdHlsZVJlc29sdmVyLnBz
ZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQsIHBzZXVkb0lkLCBTdHlsZVJlc29sdmVy
OjpBbGxDU1NSdWxlcyk7Ci0gICAgICAgICAgICBpZiAoIW1hdGNoZWRSdWxlcy5pc0VtcHR5KCkp
IHsKLSAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpD
U1M6OlBzZXVkb0lkTWF0Y2hlczo6Y3JlYXRlKCkKLSAgICAgICAgICAgICAgICAgICAgLnNldFBz
ZXVkb0lkKHN0YXRpY19jYXN0PGludD4ocHNldWRvSWQpKQotICAgICAgICAgICAgICAgICAgICAu
c2V0TWF0Y2hlcyhidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5
bGVSZXNvbHZlciwgZWxlbWVudCkpCisgICAgaWYgKCFvcmlnaW5hbEVsZW1lbnQtPmlzUHNldWRv
RWxlbWVudCgpKSB7CisgICAgICAgIC8vIFBzZXVkbyBlbGVtZW50cy4KKyAgICAgICAgaWYgKCFp
bmNsdWRlUHNldWRvIHx8ICppbmNsdWRlUHNldWRvKSB7CisgICAgICAgICAgICBhdXRvIHBzZXVk
b0VsZW1lbnRzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM+OjpjcmVhdGUoKTsKKyAgICAgICAgICAgIGZvciAoUHNl
dWRvSWQgcHNldWRvSWQgPSBGSVJTVF9QVUJMSUNfUFNFVURPSUQ7IHBzZXVkb0lkIDwgQUZURVJf
TEFTVF9JTlRFUk5BTF9QU0VVRE9JRDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4o
cHNldWRvSWQgKyAxKSkgeworICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5
bGVSZXNvbHZlci5wc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBwc2V1ZG9JZCwg
U3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMpOworICAgICAgICAgICAgICAgIGlmICghbWF0Y2hl
ZFJ1bGVzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlczo6Y3JlYXRlKCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC5zZXRQc2V1ZG9JZChzdGF0aWNfY2FzdDxpbnQ+KHBzZXVkb0lk
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRNYXRjaGVzKGJ1aWxkQXJyYXlGb3JNYXRj
aGVkUnVsZUxpc3QobWF0Y2hlZFJ1bGVzLCBzdHlsZVJlc29sdmVyLCBlbGVtZW50LCBwc2V1ZG9J
ZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOworICAgICAgICAgICAgICAg
ICAgICBwc2V1ZG9FbGVtZW50cy0+YWRkSXRlbShXVEY6Om1vdmUobWF0Y2hlcykpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHNldWRvSWRNYXRjaGVz
ID0gV1RGOjptb3ZlKHBzZXVkb0VsZW1lbnRzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElu
aGVyaXRlZCBzdHlsZXMuCisgICAgICAgIGlmICghaW5jbHVkZUluaGVyaXRlZCB8fCAqaW5jbHVk
ZUluaGVyaXRlZCkgeworICAgICAgICAgICAgYXV0byBlbnRyaWVzID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5
Pjo6Y3JlYXRlKCk7CisgICAgICAgICAgICBFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxlbWVu
dC0+cGFyZW50RWxlbWVudCgpOworICAgICAgICAgICAgd2hpbGUgKHBhcmVudEVsZW1lbnQpIHsK
KyAgICAgICAgICAgICAgICBTdHlsZVJlc29sdmVyJiBwYXJlbnRTdHlsZVJlc29sdmVyID0gcGFy
ZW50RWxlbWVudC0+ZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJlc29sdmVyKCk7CisgICAgICAgICAg
ICAgICAgYXV0byBwYXJlbnRNYXRjaGVkUnVsZXMgPSBwYXJlbnRTdHlsZVJlc29sdmVyLnN0eWxl
UnVsZXNGb3JFbGVtZW50KHBhcmVudEVsZW1lbnQsIFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVz
KTsKKyAgICAgICAgICAgICAgICBhdXRvIGVudHJ5ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpJbmhlcml0ZWRTdHlsZUVudHJ5OjpjcmVhdGUoKQorICAgICAgICAgICAgICAgICAgICAuc2V0
TWF0Y2hlZENTU1J1bGVzKGJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVsZUxpc3QocGFyZW50TWF0Y2hl
ZFJ1bGVzLCBzdHlsZVJlc29sdmVyLCBwYXJlbnRFbGVtZW50LCBOT1BTRVVETykpCiAgICAgICAg
ICAgICAgICAgICAgIC5yZWxlYXNlKCk7Ci0gICAgICAgICAgICAgICAgcHNldWRvRWxlbWVudHMt
PmFkZEl0ZW0oV1RGOjptb3ZlKG1hdGNoZXMpKTsKKyAgICAgICAgICAgICAgICBpZiAocGFyZW50
RWxlbWVudC0+c3R5bGUoKSAmJiBwYXJlbnRFbGVtZW50LT5zdHlsZSgpLT5sZW5ndGgoKSkgewor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGUqIHN0
eWxlU2hlZXQgPSBhc0luc3BlY3RvclN0eWxlU2hlZXQocGFyZW50RWxlbWVudCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChzdHlsZVNoZWV0KQorICAgICAgICAgICAgICAgICAgICAgICAgZW50
cnktPnNldElubGluZVN0eWxlKHN0eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yU3R5bGUoc3R5bGVT
aGVldC0+c3R5bGVGb3JJZChJbnNwZWN0b3JDU1NJZChzdHlsZVNoZWV0LT5pZCgpLCAwKSkpKTsK
KyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBlbnRyaWVzLT5hZGRJdGVtKFdU
Rjo6bW92ZShlbnRyeSkpOworICAgICAgICAgICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRF
bGVtZW50LT5wYXJlbnRFbGVtZW50KCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAg
ICAgICBwc2V1ZG9JZE1hdGNoZXMgPSBXVEY6Om1vdmUocHNldWRvRWxlbWVudHMpOwotICAgIH0K
IAotICAgIC8vIEluaGVyaXRlZCBzdHlsZXMuCi0gICAgaWYgKCFpbmNsdWRlSW5oZXJpdGVkIHx8
ICppbmNsdWRlSW5oZXJpdGVkKSB7Ci0gICAgICAgIGF1dG8gZW50cmllcyA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6SW5oZXJpdGVkU3R5bGVF
bnRyeT46OmNyZWF0ZSgpOwotICAgICAgICBFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxlbWVu
dC0+cGFyZW50RWxlbWVudCgpOwotICAgICAgICB3aGlsZSAocGFyZW50RWxlbWVudCkgewotICAg
ICAgICAgICAgU3R5bGVSZXNvbHZlciYgcGFyZW50U3R5bGVSZXNvbHZlciA9IHBhcmVudEVsZW1l
bnQtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpOwotICAgICAgICAgICAgYXV0byBw
YXJlbnRNYXRjaGVkUnVsZXMgPSBwYXJlbnRTdHlsZVJlc29sdmVyLnN0eWxlUnVsZXNGb3JFbGVt
ZW50KHBhcmVudEVsZW1lbnQsIFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKLSAgICAgICAg
ICAgIGF1dG8gZW50cnkgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkluaGVyaXRlZFN0eWxl
RW50cnk6OmNyZWF0ZSgpCi0gICAgICAgICAgICAgICAgLnNldE1hdGNoZWRDU1NSdWxlcyhidWls
ZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KHBhcmVudE1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZl
ciwgcGFyZW50RWxlbWVudCkpCi0gICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKLSAgICAgICAg
ICAgIGlmIChwYXJlbnRFbGVtZW50LT5zdHlsZSgpICYmIHBhcmVudEVsZW1lbnQtPnN0eWxlKCkt
Pmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGlu
ZVN0eWxlKiBzdHlsZVNoZWV0ID0gYXNJbnNwZWN0b3JTdHlsZVNoZWV0KHBhcmVudEVsZW1lbnQp
OwotICAgICAgICAgICAgICAgIGlmIChzdHlsZVNoZWV0KQotICAgICAgICAgICAgICAgICAgICBl
bnRyeS0+c2V0SW5saW5lU3R5bGUoc3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JTdHlsZShzdHls
ZVNoZWV0LT5zdHlsZUZvcklkKEluc3BlY3RvckNTU0lkKHN0eWxlU2hlZXQtPmlkKCksIDApKSkp
OwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBlbnRyaWVzLT5hZGRJdGVtKFdURjo6bW92
ZShlbnRyeSkpOwotICAgICAgICAgICAgcGFyZW50RWxlbWVudCA9IHBhcmVudEVsZW1lbnQtPnBh
cmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgIGluaGVyaXRlZEVudHJpZXMgPSBXVEY6Om1vdmUo
ZW50cmllcyk7CiAgICAgICAgIH0KLQotICAgICAgICBpbmhlcml0ZWRFbnRyaWVzID0gV1RGOjpt
b3ZlKGVudHJpZXMpOwogICAgIH0KIH0KIApAQCAtOTEyLDExICs5MjUsMTIgQEAgUmVmUHRyPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yUnVsZSgKICAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldCA/IGluc3BlY3Rv
clN0eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yUnVsZShydWxlLCBudWxscHRyKSA6IG51bGxwdHI7
CiB9CiAKLVJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OlJ1bGVNYXRjaD4+IEluc3BlY3RvckNTU0FnZW50OjpidWlsZEFycmF5Rm9yTWF0
Y2hlZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4mIG1hdGNoZWRSdWxl
cywgU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciwgRWxlbWVudCogZWxlbWVudCkKK1JlZlB0
cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlJ1
bGVNYXRjaD4+IEluc3BlY3RvckNTU0FnZW50OjpidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0
KGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4mIG1hdGNoZWRSdWxlcywgU3R5bGVSZXNv
bHZlciYgc3R5bGVSZXNvbHZlciwgRWxlbWVudCogZWxlbWVudCwgUHNldWRvSWQgcHN1ZWRvSWQp
CiB7CiAgICAgYXV0byByZXN1bHQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0
b3I6OlByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaD46OmNyZWF0ZSgpOwogCiAgICAgU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQgY29udGV4dChTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OkNv
bGxlY3RpbmdSdWxlcyk7CisgICAgY29udGV4dC5wc2V1ZG9JZCA9IHBzdWVkb0lkID8gcHN1ZWRv
SWQgOiBlbGVtZW50LT5wc2V1ZG9JZCgpOwogICAgIFNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNo
ZWNrZXIoZWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAKICAgICBmb3IgKGF1dG8mIG1hdGNoZWRSdWxl
IDogbWF0Y2hlZFJ1bGVzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5oCmluZGV4IGE2MzBmZTUuLjIzYmVhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+IGJ1aWxkT2Jq
ZWN0Rm9yUnVsZShTdHlsZVJ1bGUqLCBTdHlsZVJlc29sdmVyJiwgRWxlbWVudCopOwogICAgIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+IGJ1aWxkT2JqZWN0Rm9yUnVs
ZShDU1NTdHlsZVJ1bGUqKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBidWlsZEFycmF5Rm9yTWF0Y2hl
ZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4mLCBTdHlsZVJlc29sdmVy
JiwgRWxlbWVudCopOworICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaD4+IGJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVs
ZUxpc3QoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGU+PiYsIFN0eWxlUmVzb2x2ZXImLCBF
bGVtZW50KiwgUHNldWRvSWQpOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OkNTU1N0eWxlPiBidWlsZE9iamVjdEZvckF0dHJpYnV0ZXNTdHlsZShFbGVtZW50Kik7CiAgICAg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNT
Uzo6UmVnaW9uPj4gYnVpbGRBcnJheUZvclJlZ2lvbnMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8Tm9k
ZUxpc3Q+JiYsIGludCBkb2N1bWVudE5vZGVJZCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6TmFtZWRGbG93PiBidWlsZE9iamVjdEZvck5hbWVkRmxvdyhFcnJvclN0cmlu
ZyYsIFdlYktpdE5hbWVkRmxvdyosIGludCBkb2N1bWVudE5vZGVJZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCA3MTlmNzYxLi45MTc3
Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCisjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFu
dHMuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgpAQCAtMzMyLDggKzMzMywxMyBAQCB2b2lk
IEluc3BlY3RvckRPTUFnZW50Ojp1bmJpbmQoTm9kZSogbm9kZSwgTm9kZVRvSWRNYXAqIG5vZGVz
TWFwKQogICAgIH0KIAogICAgIGlmIChpczxFbGVtZW50Pigqbm9kZSkpIHsKLSAgICAgICAgaWYg
KFNoYWRvd1Jvb3QqIHJvb3QgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuc2hhZG93Um9vdCgp
KQorICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOwor
ICAgICAgICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IGVsZW1lbnQuc2hhZG93Um9vdCgpKQogICAg
ICAgICAgICAgdW5iaW5kKHJvb3QsIG5vZGVzTWFwKTsKKyAgICAgICAgaWYgKFBzZXVkb0VsZW1l
bnQqIGJlZm9yZUVsZW1lbnQgPSBlbGVtZW50LmJlZm9yZVBzZXVkb0VsZW1lbnQoKSkKKyAgICAg
ICAgICAgIHVuYmluZChiZWZvcmVFbGVtZW50LCBub2Rlc01hcCk7CisgICAgICAgIGlmIChQc2V1
ZG9FbGVtZW50KiBhZnRlckVsZW1lbnQgPSBlbGVtZW50LmFmdGVyUHNldWRvRWxlbWVudCgpKQor
ICAgICAgICAgICAgdW5iaW5kKGFmdGVyRWxlbWVudCwgbm9kZXNNYXApOwogICAgIH0KIAogICAg
IG5vZGVzTWFwLT5yZW1vdmUobm9kZSk7CkBAIC0zOTIsNyArMzk4LDExIEBAIE5vZGUqIEluc3Bl
Y3RvckRPTUFnZW50Ojphc3NlcnRFZGl0YWJsZU5vZGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
LCBpbnQgbm9kZUlkCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBpZiAobm9kZS0+aXNJblNoYWRvd1RyZWUoKSkgewotICAgICAgICBlcnJvclN0cmluZyA9IEFT
Q0lJTGl0ZXJhbCgiQ2FuIG5vdCBlZGl0IG5vZGVzIGZyb20gc2hhZG93IHRyZWVzIik7CisgICAg
ICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJDYW5ub3QgZWRpdCBub2RlcyBmcm9tIHNo
YWRvdyB0cmVlcyIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgaWYgKG5v
ZGUtPmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRl
cmFsKCJDYW5ub3QgZWRpdCBwc2V1ZG8gZWxlbWVudHMiKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQogICAgIHJldHVybiBub2RlOwpAQCAtNDA0LDcgKzQxNCwxMSBAQCBFbGVtZW50
KiBJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWRpdGFibGVFbGVtZW50KEVycm9yU3RyaW5nJiBl
cnJvclN0cmluZywgaW50CiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBpZiAoZWxlbWVudC0+aXNJblNoYWRvd1RyZWUoKSkgewotICAgICAgICBlcnJvclN0
cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2FuIG5vdCBlZGl0IGVsZW1lbnRzIGZyb20gc2hhZG93IHRy
ZWVzIik7CisgICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJDYW5ub3QgZWRpdCBl
bGVtZW50cyBmcm9tIHNoYWRvdyB0cmVlcyIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisgICAgaWYgKGVsZW1lbnQtPmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGVycm9y
U3RyaW5nID0gQVNDSUlMaXRlcmFsKCJDYW5ub3QgZWRpdCBwc2V1ZG8gZWxlbWVudHMiKTsKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIHJldHVybiBlbGVtZW50OwpAQCAtNjk4
LDcgKzcxMiw3IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnJlbW92ZU5vZGUoRXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkKQogCiAgICAgQ29udGFpbmVyTm9kZSogcGFyZW50
Tm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICBpZiAoIXBhcmVudE5vZGUpIHsKLSAgICAg
ICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbiBub3QgcmVtb3ZlIGRldGFjaGVkIG5v
ZGUiKTsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbm5vdCByZW1vdmUg
ZGV0YWNoZWQgbm9kZSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjU0LDYgKzEy
NjgsMjAgQEAgc3RhdGljIFN0cmluZyBkb2N1bWVudEJhc2VVUkxTdHJpbmcoRG9jdW1lbnQqIGRv
Y3VtZW50KQogICAgIHJldHVybiBkb2N1bWVudC0+Y29tcGxldGVVUkwoIiIpLnN0cmluZygpOwog
fQogCitzdGF0aWMgYm9vbCBwc2V1ZG9FbGVtZW50VHlwZShQc2V1ZG9JZCBwc2V1ZG9JZCwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6RE9NOjpQc2V1ZG9UeXBlKiB0eXBlKQoreworICAgIHN3aXRjaCAo
cHNldWRvSWQpIHsKKyAgICBjYXNlIEJFRk9SRToKKyAgICAgICAgKnR5cGUgPSBJbnNwZWN0b3I6
OlByb3RvY29sOjpET006OlBzZXVkb1R5cGU6OkJlZm9yZTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgY2FzZSBBRlRFUjoKKyAgICAgICAgKnR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpE
T006OlBzZXVkb1R5cGU6OkFmdGVyOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0
OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiBSZWY8SW5zcGVjdG9yOjpQcm90
b2NvbDo6RE9NOjpOb2RlPiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JOb2RlKE5v
ZGUqIG5vZGUsIGludCBkZXB0aCwgTm9kZVRvSWRNYXAqIG5vZGVzTWFwKQogewogICAgIGludCBp
ZCA9IGJpbmQobm9kZSwgbm9kZXNNYXApOwpAQCAtMTMyNyw2ICsxMzU1LDE2IEBAIFJlZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVj
dEZvck5vZGUoTm9kZSoKICAgICAgICAgICAgIHZhbHVlLT5zZXRUZW1wbGF0ZUNvbnRlbnQoYnVp
bGRPYmplY3RGb3JOb2RlKGRvd25jYXN0PEhUTUxUZW1wbGF0ZUVsZW1lbnQ+KGVsZW1lbnQpLmNv
bnRlbnQoKSwgMCwgbm9kZXNNYXApKTsKICNlbmRpZgogCisgICAgICAgIGlmIChlbGVtZW50LnBz
ZXVkb0lkKCkpIHsKKyAgICAgICAgICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6UHNldWRv
VHlwZSBwc2V1ZG9UeXBlOworICAgICAgICAgICAgaWYgKHBzZXVkb0VsZW1lbnRUeXBlKGVsZW1l
bnQucHNldWRvSWQoKSwgJnBzZXVkb1R5cGUpKQorICAgICAgICAgICAgICAgIHZhbHVlLT5zZXRQ
c2V1ZG9UeXBlKHBzZXVkb1R5cGUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXV0
byBwc2V1ZG9FbGVtZW50cyA9IGJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVtZW50cyhlbGVtZW50LCBu
b2Rlc01hcCk7CisgICAgICAgICAgICBpZiAocHNldWRvRWxlbWVudHMpCisgICAgICAgICAgICAg
ICAgdmFsdWUtPnNldFBzZXVkb0VsZW1lbnRzKFdURjo6bW92ZShwc2V1ZG9FbGVtZW50cykpOwor
ICAgICAgICB9CisKICAgICB9IGVsc2UgaWYgKGlzPERvY3VtZW50Pigqbm9kZSkpIHsKICAgICAg
ICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpub2RlKTsKICAgICAg
ICAgdmFsdWUtPnNldEZyYW1lSWQobV9wYWdlQWdlbnQtPmZyYW1lSWQoZG9jdW1lbnQuZnJhbWUo
KSkpOwpAQCAtMTM5NCw2ICsxNDMyLDIxIEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJh
eTxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+PiBJbnNwZWN0b3JET01BZ2VuCiAgICAg
cmV0dXJuIFdURjo6bW92ZShjaGlsZHJlbik7CiB9CiAKK1JlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+PiBJbnNwZWN0b3JET01B
Z2VudDo6YnVpbGRBcnJheUZvclBzZXVkb0VsZW1lbnRzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQs
IE5vZGVUb0lkTWFwKiBub2Rlc01hcCkKK3sKKyAgICBQc2V1ZG9FbGVtZW50KiBiZWZvcmVFbGVt
ZW50ID0gZWxlbWVudC5iZWZvcmVQc2V1ZG9FbGVtZW50KCk7CisgICAgUHNldWRvRWxlbWVudCog
YWZ0ZXJFbGVtZW50ID0gZWxlbWVudC5hZnRlclBzZXVkb0VsZW1lbnQoKTsKKyAgICBpZiAoIWJl
Zm9yZUVsZW1lbnQgJiYgIWFmdGVyRWxlbWVudCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBhdXRvIHBzZXVkb0VsZW1lbnRzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5z
cGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPjo6Y3JlYXRlKCk7CisgICAgaWYgKGJlZm9yZUVs
ZW1lbnQpCisgICAgICAgIHBzZXVkb0VsZW1lbnRzLT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yTm9k
ZShiZWZvcmVFbGVtZW50LCAwLCBub2Rlc01hcCkpOworICAgIGlmIChhZnRlckVsZW1lbnQpCisg
ICAgICAgIHBzZXVkb0VsZW1lbnRzLT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yTm9kZShhZnRlckVs
ZW1lbnQsIDAsIG5vZGVzTWFwKSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShwc2V1ZG9FbGVtZW50
cyk7Cit9CisKIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkV2ZW50TGlzdGVuZXI+IElu
c3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIoY29uc3QgUmVnaXN0
ZXJlZEV2ZW50TGlzdGVuZXImIHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLCBjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cElk
KQogewogICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBldmVudExpc3RlbmVyID0gcmVnaXN0ZXJl
ZEV2ZW50TGlzdGVuZXIubGlzdGVuZXI7CkBAIC0xOTU3LDYgKzIwMTAsMzYgQEAgdm9pZCBJbnNw
ZWN0b3JET01BZ2VudDo6ZnJhbWVEb2N1bWVudFVwZGF0ZWQoRnJhbWUqIGZyYW1lKQogICAgIHNl
dERvY3VtZW50KGRvY3VtZW50KTsKIH0KIAordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHNldWRv
RWxlbWVudENyZWF0ZWQoUHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVudCkKK3sKKyAgICBFbGVt
ZW50KiBwYXJlbnQgPSBwc2V1ZG9FbGVtZW50Lmhvc3RFbGVtZW50KCk7CisgICAgaWYgKCFwYXJl
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBwYXJlbnRJZCA9IG1fZG9jdW1lbnROb2Rl
VG9JZE1hcC5nZXQocGFyZW50KTsKKyAgICBpZiAoIXBhcmVudElkKQorICAgICAgICByZXR1cm47
CisKKyAgICBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQocGFyZW50SWQsIDEpOworICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT5wc2V1ZG9FbGVtZW50QWRkZWQocGFyZW50SWQsIGJ1aWxkT2JqZWN0
Rm9yTm9kZSgmcHNldWRvRWxlbWVudCwgMCwgJm1fZG9jdW1lbnROb2RlVG9JZE1hcCkpOworfQor
Cit2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBzZXVkb0Vs
ZW1lbnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAgaW50IHBzZXVkb0VsZW1lbnRJZCA9IG1fZG9j
dW1lbnROb2RlVG9JZE1hcC5nZXQoJnBzZXVkb0VsZW1lbnQpOworICAgIGlmICghcHNldWRvRWxl
bWVudElkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiBhIFBzZXVkb0VsZW1lbnQgaXMg
Ym91bmQsIGl0cyBwYXJlbnQgZWxlbWVudCBtdXN0IGhhdmUgYmVlbiBib3VuZC4KKyAgICBFbGVt
ZW50KiBwYXJlbnQgPSBwc2V1ZG9FbGVtZW50Lmhvc3RFbGVtZW50KCk7CisgICAgQVNTRVJUKHBh
cmVudCk7CisgICAgaW50IHBhcmVudElkID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChwYXJl
bnQpOworICAgIEFTU0VSVChwYXJlbnRJZCk7CisKKyAgICB1bmJpbmQoJnBzZXVkb0VsZW1lbnQs
ICZtX2RvY3VtZW50Tm9kZVRvSWRNYXApOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wc2V1
ZG9FbGVtZW50UmVtb3ZlZChwYXJlbnRJZCwgcHNldWRvRWxlbWVudElkKTsKK30KKwogTm9kZSog
SW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAg
ICAvLyBUaGUgcGF0aCBpcyBvZiBmb3JtICIxLEhUTUwsMixCT0RZLDEsRElWIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCBhOGE1NTMxLi43ZGJl
MjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApA
QCAtMTY5LDYgKzE2OSw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhbmRsZVRvdWNoRXZlbnQoTm9k
ZSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZChEb2N1bWVudCopOwogICAgIHZvaWQgZnJhbWVE
b2N1bWVudFVwZGF0ZWQoRnJhbWUqKTsKKyAgICB2b2lkIHBzZXVkb0VsZW1lbnRDcmVhdGVkKFBz
ZXVkb0VsZW1lbnQmKTsKKyAgICB2b2lkIHBzZXVkb0VsZW1lbnREZXN0cm95ZWQoUHNldWRvRWxl
bWVudCYpOwogCiAgICAgLy8gQ2FsbGJhY2tzIHRoYXQgZG9uJ3QgZGlyZWN0bHkgY29ycmVzcG9u
ZCB0byBhbiBpbnN0cnVtZW50YXRpb24gZW50cnkgcG9pbnQuCiAgICAgdm9pZCBzZXREb2N1bWVu
dChEb2N1bWVudCopOwpAQCAtMjMzLDYgKzIzNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gYnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqLCBpbnQg
ZGVwdGgsIE5vZGVUb0lkTWFwKik7CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5
PFN0cmluZz4+IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhFbGVtZW50Kik7CiAgICAg
UmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6
Tm9kZT4+IGJ1aWxkQXJyYXlGb3JDb250YWluZXJDaGlsZHJlbihOb2RlKiBjb250YWluZXIsIGlu
dCBkZXB0aCwgTm9kZVRvSWRNYXAqIG5vZGVzTWFwKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPj4gYnVpbGRBcnJh
eUZvclBzZXVkb0VsZW1lbnRzKGNvbnN0IEVsZW1lbnQmLCBOb2RlVG9JZE1hcCogbm9kZXNNYXAp
OwogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkV2ZW50TGlzdGVuZXI+IGJ1aWxk
T2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYsIGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiwgY29uc3QgU3RyaW5nKiBvYmplY3RH
cm91cElkKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpBY2Nlc3NpYmls
aXR5UHJvcGVydGllcz4gYnVpbGRPYmplY3RGb3JBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyhOb2Rl
Kik7CiAgICAgdm9pZCBwcm9jZXNzQWNjZXNzaWJpbGl0eUNoaWxkcmVuKFJlZlB0cjxBY2Nlc3Np
YmlsaXR5T2JqZWN0PiYmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8aW50Pj4m
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwCmluZGV4IDQxYzgyODA5Li41ZWViMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMjA4
LDYgKzIwOCwyMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBvcFNoYWRv
d1Jvb3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydQogICAgICAgICBkb21BZ2VudC0+
d2lsbFBvcFNoYWRvd1Jvb3QoaG9zdCwgcm9vdCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50Q3JlYXRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYg
aW5zdHJ1bWVudGluZ0FnZW50cywgUHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVudCkKK3sKKyAg
ICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5p
bnNwZWN0b3JET01BZ2VudCgpKQorICAgICAgICBkb21BZ2VudC0+cHNldWRvRWxlbWVudENyZWF0
ZWQocHNldWRvRWxlbWVudCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpw
c2V1ZG9FbGVtZW50RGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBQc2V1ZG9FbGVtZW50JiBwc2V1ZG9FbGVtZW50KQoreworICAgIGlmIChJbnNw
ZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRP
TUFnZW50KCkpCisgICAgICAgIGRvbUFnZW50LT5wc2V1ZG9FbGVtZW50RGVzdHJveWVkKHBzZXVk
b0VsZW1lbnQpOworICAgIGlmIChJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogbGF5ZXJUcmVlQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckxheWVyVHJlZUFnZW50KCkpCisgICAg
ICAgIGxheWVyVHJlZUFnZW50LT5wc2V1ZG9FbGVtZW50RGVzdHJveWVkKHBzZXVkb0VsZW1lbnQp
OworfQorCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlTmFtZWRGbG93
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBEb2N1bWVudCog
ZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyYgbmFtZWRGbG93KQogewogICAgIGlmICghZG9jdW1l
bnQpCkBAIC0xMjc0LDEwICsxMjg4LDQgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnJlbmRlckxheWVyRGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnMKICAgICAg
ICAgbGF5ZXJUcmVlQWdlbnQtPnJlbmRlckxheWVyRGVzdHJveWVkKHJlbmRlckxheWVyKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFBzZXVkb0VsZW1l
bnQmIHBzZXVkb0VsZW1lbnQpCi17Ci0gICAgaWYgKEluc3BlY3RvckxheWVyVHJlZUFnZW50KiBs
YXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yTGF5ZXJUcmVlQWdl
bnQoKSkKLSAgICAgICAgbGF5ZXJUcmVlQWdlbnQtPnBzZXVkb0VsZW1lbnREZXN0cm95ZWQocHNl
dWRvRWxlbWVudCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBhMDM1
NGFkLi42MWFiNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC03NSw5ICs3NSw5IEBAIGNsYXNzIERPTVdpbmRvdzsK
IGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIERhdGFiYXNlOwogY2xhc3MgRG9jdW1lbnQ7
Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBEb2N1bWVudFN0
eWxlU2hlZXRDb2xsZWN0aW9uOworY2xhc3MgRWxlbWVudDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFzcyBJbnNwZWN0b3JDU1NBZ2VudDsKQEAgLTg1
LDcgKzg1LDYgQEAgY2xhc3MgSW5zcGVjdG9yQ1NTT01XcmFwcGVyczsKIGNsYXNzIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjsKIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CiBjbGFzcyBJ
bnN0cnVtZW50aW5nQWdlbnRzOwotY2xhc3MgVVJMOwogY2xhc3MgTm9kZTsKIGNsYXNzIFBzZXVk
b0VsZW1lbnQ7CiBjbGFzcyBSZW5kZXJMYXllcjsKQEAgLTEwMCw2ICs5OSw3IEBAIGNsYXNzIFN0
b3JhZ2VBcmVhOwogY2xhc3MgU3R5bGVSZXNvbHZlcjsKIGNsYXNzIFN0eWxlUnVsZTsKIGNsYXNz
IFRocmVhZGFibGVMb2FkZXJDbGllbnQ7CitjbGFzcyBVUkw7CiBjbGFzcyBXb3JrZXJHbG9iYWxT
Y29wZTsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlUHJveHk7CiBjbGFzcyBYTUxIdHRwUmVxdWVz
dDsKQEAgLTEyNiw2ICsxMjYsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgbWVkaWFRdWVy
eVJlc3VsdENoYW5nZWQoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRQdXNoU2hhZG93
Um9vdChFbGVtZW50JiBob3N0LCBTaGFkb3dSb290Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFBv
cFNoYWRvd1Jvb3QoRWxlbWVudCYgaG9zdCwgU2hhZG93Um9vdCYpOworICAgIHN0YXRpYyB2b2lk
IHBzZXVkb0VsZW1lbnRDcmVhdGVkKFBhZ2UqLCBQc2V1ZG9FbGVtZW50Jik7CisgICAgc3RhdGlj
IHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3llZChQYWdlKiwgUHNldWRvRWxlbWVudCYpOwogICAg
IHN0YXRpYyB2b2lkIGRpZENyZWF0ZU5hbWVkRmxvdyhEb2N1bWVudCosIFdlYktpdE5hbWVkRmxv
dyYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVOYW1lZEZsb3coRG9jdW1lbnQqLCBXZWJL
aXROYW1lZEZsb3cmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VSZWdpb25PdmVyc2V0KERv
Y3VtZW50JiwgV2ViS2l0TmFtZWRGbG93Jik7CkBAIC0yNzUsNyArMjc3LDYgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlkQ2hhbmdlKFBhZ2UqKTsKICAgICBzdGF0aWMg
dm9pZCByZW5kZXJMYXllckRlc3Ryb3llZChQYWdlKiwgY29uc3QgUmVuZGVyTGF5ZXImKTsKLSAg
ICBzdGF0aWMgdm9pZCBwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBhZ2UqLCBQc2V1ZG9FbGVtZW50
Jik7CiAKICAgICBzdGF0aWMgdm9pZCBmcm9udGVuZENyZWF0ZWQoKSB7IHNfZnJvbnRlbmRDb3Vu
dGVyICs9IDE7IH0KICAgICBzdGF0aWMgdm9pZCBmcm9udGVuZERlbGV0ZWQoKSB7IHNfZnJvbnRl
bmRDb3VudGVyIC09IDE7IH0KQEAgLTMwNiw2ICszMDcsOCBAQCBwcml2YXRlOgogICAgIHN0YXRp
YyB2b2lkIG1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7
CiAgICAgc3RhdGljIHZvaWQgZGlkUHVzaFNoYWRvd1Jvb3RJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmLCBFbGVtZW50JiBob3N0LCBTaGFkb3dSb290Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFBv
cFNoYWRvd1Jvb3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBFbGVtZW50JiBob3N0LCBTaGFk
b3dSb290Jik7CisgICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudENyZWF0ZWRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmLCBQc2V1ZG9FbGVtZW50Jik7CisgICAgc3RhdGljIHZvaWQgcHNldWRv
RWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFBzZXVkb0VsZW1lbnQm
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVOYW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyYpOwogICAgIHN0YXRpYyB2b2lkIHdp
bGxSZW1vdmVOYW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBEb2N1bWVudCosIFdl
YktpdE5hbWVkRmxvdyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENoYW5nZVJlZ2lvbk92ZXJzZXRJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBEb2N1bWVudCYsIFdlYktpdE5hbWVkRmxvdyYpOwpA
QCAtNDQ5LDcgKzQ1Miw2IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgdm9pZCBsYXllclRyZWVE
aWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKICAgICBzdGF0aWMgdm9pZCByZW5k
ZXJMYXllckRlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IFJlbmRlckxh
eWVyJik7Ci0gICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYsIFBzZXVkb0VsZW1lbnQmKTsKIAogICAgIHN0YXRpYyBJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShQYWdlJik7CiAgICAgc3RhdGlj
IEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShGcmFtZSYp
OwpAQCAtNTY3LDYgKzU2OSwyMCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxQb3BTaGFkb3dSb290KEVsZW1lbnQmIGhvc3QsIFNoYWRvd1JvbwogICAgICAgICB3
aWxsUG9wU2hhZG93Um9vdEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIGhvc3QsIHJvb3QpOwog
fQogCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnRD
cmVhdGVkKFBhZ2UqIHBhZ2UsIFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAg
RkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFn
ZShwYWdlKSkKKyAgICAgICAgcHNldWRvRWxlbWVudENyZWF0ZWRJbXBsKCppbnN0cnVtZW50aW5n
QWdlbnRzLCBwc2V1ZG9FbGVtZW50KTsKK30KKworaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBhZ2UqIHBhZ2UsIFBzZXVkb0VsZW1l
bnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZv
aWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKKyAgICAgICAgcHNldWRvRWxlbWVu
dERlc3Ryb3llZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBzZXVkb0VsZW1lbnQpOworfQor
CiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZU5hbWVkRmxv
dyhEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyYgbmFtZWRGbG93KQogewogICAg
IEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwpAQCAtMTMwOCwyMiArMTMyNCwx
OCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpcmVBbmltYXRp
b25GcmFtZShjb25zdCBJbnNwZWN0b3JJbnN0cgogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmxheWVyVHJlZURpZENoYW5nZShQYWdlKiBwYWdlKQogeworICAgIEZBU1Rf
UkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFn
ZSkpCiAgICAgICAgIGxheWVyVHJlZURpZENoYW5nZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMp
OwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlbmRlckxheWVy
RGVzdHJveWVkKFBhZ2UqIHBhZ2UsIGNvbnN0IFJlbmRlckxheWVyJiByZW5kZXJMYXllcikKIHsK
KyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNG
b3JQYWdlKHBhZ2UpKQogICAgICAgICByZW5kZXJMYXllckRlc3Ryb3llZEltcGwoKmluc3RydW1l
bnRpbmdBZ2VudHMsIHJlbmRlckxheWVyKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKFBhZ2UqIHBhZ2UsIFBzZXVkb0Vs
ZW1lbnQmIHBzZXVkb0VsZW1lbnQpCi17Ci0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKLSAg
ICAgICAgcHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBz
ZXVkb0VsZW1lbnQpOwotfQotCiBpbmxpbmUgSW5zdHJ1bWVudGluZ0FnZW50cyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4dChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAgIGlmICghY29udGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAppbmRleCA3NjdmMzQzLi40Zjk5
NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25m
aWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUG9seWdvblNoYXBlLmgiCisjaW5jbHVkZSAiUHNldWRv
RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlY3RhbmdsZVNoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Qm94TW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCkBAIC02ODYsMTcg
KzY4NywyNCBAQCBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok92ZXJsYXlUeXBl
czo6RWxlbWVudERhdGE+IGJ1aWxkT2JqZWN0Rm9yRWxlbQogICAgIGlmICghaXM8RWxlbWVudD4o
bm9kZSkgfHwgIW5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOwor
ICAgIEVsZW1lbnQqIGVmZmVjdGl2ZUVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pihub2RlKTsK
KyAgICBpZiAobm9kZS0+aXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgRWxlbWVudCogaG9z
dEVsZW1lbnQgPSBkb3duY2FzdDxQc2V1ZG9FbGVtZW50Pigqbm9kZSkuaG9zdEVsZW1lbnQoKTsK
KyAgICAgICAgaWYgKCFob3N0RWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICBlZmZlY3RpdmVFbGVtZW50ID0gaG9zdEVsZW1lbnQ7CisgICAgfQorCisgICAgRWxl
bWVudCYgZWxlbWVudCA9ICplZmZlY3RpdmVFbGVtZW50OwogICAgIGJvb2wgaXNYSFRNTCA9IGVs
ZW1lbnQuZG9jdW1lbnQoKS5pc1hIVE1MRG9jdW1lbnQoKTsKLQogICAgIGF1dG8gZWxlbWVudERh
dGEgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpPdmVybGF5VHlwZXM6OkVsZW1lbnREYXRhOjpjcmVh
dGUoKQogICAgICAgICAuc2V0VGFnTmFtZShpc1hIVE1MID8gZWxlbWVudC5ub2RlTmFtZSgpIDog
ZWxlbWVudC5ub2RlTmFtZSgpLmxvd2VyKCkpCiAgICAgICAgIC5zZXRJZFZhbHVlKGVsZW1lbnQu
Z2V0SWRBdHRyaWJ1dGUoKSkKICAgICAgICAgLnJlbGVhc2UoKTsKIAotICAgIEhhc2hTZXQ8QXRv
bWljU3RyaW5nPiB1c2VkQ2xhc3NOYW1lczsKKyAgICBTdHJpbmdCdWlsZGVyIGNsYXNzTmFtZXM7
CiAgICAgaWYgKGVsZW1lbnQuaGFzQ2xhc3MoKSAmJiBpczxTdHlsZWRFbGVtZW50PihlbGVtZW50
KSkgewotICAgICAgICBTdHJpbmdCdWlsZGVyIGNsYXNzTmFtZXM7CisgICAgICAgIEhhc2hTZXQ8
QXRvbWljU3RyaW5nPiB1c2VkQ2xhc3NOYW1lczsKICAgICAgICAgY29uc3QgU3BhY2VTcGxpdFN0
cmluZyYgY2xhc3NOYW1lc1N0cmluZyA9IGRvd25jYXN0PFN0eWxlZEVsZW1lbnQ+KGVsZW1lbnQp
LmNsYXNzTmFtZXMoKTsKICAgICAgICAgc2l6ZV90IGNsYXNzTmFtZUNvdW50ID0gY2xhc3NOYW1l
c1N0cmluZy5zaXplKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2xhc3NOYW1l
Q291bnQ7ICsraSkgewpAQCAtNzA3LDggKzcxNSwxNSBAQCBzdGF0aWMgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6Ok92ZXJsYXlUeXBlczo6RWxlbWVudERhdGE+IGJ1aWxkT2JqZWN0Rm9yRWxl
bQogICAgICAgICAgICAgY2xhc3NOYW1lcy5hcHBlbmQoJy4nKTsKICAgICAgICAgICAgIGNsYXNz
TmFtZXMuYXBwZW5kKGNsYXNzTmFtZSk7CiAgICAgICAgIH0KKyAgICB9CisgICAgaWYgKG5vZGUt
PmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlmIChub2RlLT5wc2V1ZG9JZCgpID09IEJF
Rk9SRSkKKyAgICAgICAgICAgIGNsYXNzTmFtZXMuYXBwZW5kTGl0ZXJhbCgiOjpiZWZvcmUiKTsK
KyAgICAgICAgZWxzZSBpZiAobm9kZS0+cHNldWRvSWQoKSA9PSBBRlRFUikKKyAgICAgICAgICAg
IGNsYXNzTmFtZXMuYXBwZW5kTGl0ZXJhbCgiOjphZnRlciIpOworICAgIH0KKyAgICBpZiAoIWNs
YXNzTmFtZXMuaXNFbXB0eSgpKQogICAgICAgICBlbGVtZW50RGF0YS0+c2V0Q2xhc3NOYW1lKGNs
YXNzTmFtZXMudG9TdHJpbmcoKSk7Ci0gICAgfQogCiAgICAgUmVuZGVyRWxlbWVudCogcmVuZGVy
ZXIgPSBlbGVtZW50LnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKaW5kZXggYzYwNDc4Yi4uYWNhNWNiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAKQEAgLTMzLDYgKzMzLDcg
QEAKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKICNpbmNsdWRlICJGbG93VGhyZWFkQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkluc2VydGlvblBvaW50LmgiCisjaW5jbHVkZSAiSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNs
dWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKQEAgLTQ2NCw2
ICs0NjUsNyBAQCBzdGF0aWMgdm9pZCBhdHRhY2hCZWZvcmVPckFmdGVyUHNldWRvRWxlbWVudElm
TmVlZGVkKEVsZW1lbnQmIGN1cnJlbnQsIFBzZXVkb0lkCiAgICAgaWYgKCFuZWVkc1BzZXVkb0Vs
ZW1lbnQoY3VycmVudCwgcHNldWRvSWQpKQogICAgICAgICByZXR1cm47CiAgICAgUmVmPFBzZXVk
b0VsZW1lbnQ+IHBzZXVkb0VsZW1lbnQgPSBQc2V1ZG9FbGVtZW50OjpjcmVhdGUoY3VycmVudCwg
cHNldWRvSWQpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudENy
ZWF0ZWQocHNldWRvRWxlbWVudC0+ZG9jdW1lbnQoKS5wYWdlKCksIHBzZXVkb0VsZW1lbnQuZ2V0
KCkpOwogICAgIHNldEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50KGN1cnJlbnQsIHBzZXVkb0Vs
ZW1lbnQuY29weVJlZigpLCBwc2V1ZG9JZCk7CiAgICAgYXR0YWNoUmVuZGVyVHJlZShwc2V1ZG9F
bGVtZW50LmdldCgpLCAqY3VycmVudC5yZW5kZXJTdHlsZSgpLCByZW5kZXJUcmVlUG9zaXRpb24s
IG51bGxwdHIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNzYyMjdjZi4uMzI2N2Qy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsODYgQEAKIDIwMTUtMDctMjQg
IEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiBTaG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0RPTVRyZWVNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5h
Z2VyLnByb3RvdHlwZS5fcHNldWRvRWxlbWVudEFkZGVkKToKKyAgICAgICAgSG9vayB1cCB0aGUg
bmV3IHBzZXVkbyBlbGVtZW50IERPTU5vZGUgdG8gdGhlIHBhcmVudC4KKworICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLnByb3RvdHlwZS5fcHNldWRvRWxlbWVudFJlbW92ZWQp
OgorICAgICAgICBVbmhvb2sgdGhlIHBzZXVkbyBlbGVtZW50IGZyb20gaXRzIHBhcmVudC4KKwor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLnByb3RvdHlwZS5fdW5iaW5kKToK
KyAgICAgICAgV2hlbiB1bmJpbmRpbmcsIHVuYmluZCBhbnkgcHNldWRvIGVsZW1lbnQgY2hpbGRy
ZW4gd2UgbWF5IGhhdmUgaGFkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9N
Tm9kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5pc1BzZXVk
b0VsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLnBzZXVk
b1R5cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLmhhc1BzZXVk
b0VsZW1lbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5wc2V1
ZG9FbGVtZW50cyk6CisgICAgICAgIE5ldyBzdGF0ZSBvZiBhIERPTU5vZGUgbWF5IGluY2x1ZGUg
cHNldWRvIGVsZW1lbnRzLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5
cGUuYXBwcm9wcmlhdGVTZWxlY3RvckZvcik6CisgICAgICAgIEEgc2VsZWN0b3IgZm9yIHRoaXMg
bm9kZSBpbmNsdWRlcyB0aGUgc2VsZWN0b3IgZm9yIHRoZSBub2RlIGFib3ZlIGl0LgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9ET01PYnNlcnZlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01PYnNlcnZlci5wcm90b3R5cGUucHNldWRvRWxlbWVudEFkZGVkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01PYnNlcnZlci5wcm90b3R5cGUucHNldWRvRWxlbWVudFJl
bW92ZWQpOgorICAgICAgICBQYXNzIHRoZSBtZXNzYWdlIG9uIHRvIERPTVRyZWVNYW5hZ2VyLgor
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgZWRpdGFibGUp
OgorICAgICAgICBQc2V1ZG8gZWxlbWVudCBub2RlcyBhcmUgbm90IGVkaXRhYmxlLgorCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLnNob3dDaGlsZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLm9ucG9wdWxhdGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS51cGRhdGVD
aGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll9ub2RlVGl0bGVJbmZvKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5w
cm90b3R5cGUuX3NpbmdsZVRleHRDaGlsZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJl
ZUVsZW1lbnQucHJvdG90eXBlLl9oYXNWaXNpYmxlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5fdmlzaWJsZUNoaWxkcmVuKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX3VwZGF0ZUNoaWxkcmVu
KToKKyAgICAgICAgQSBET01UcmVlRWxlbWVudCdzIGNoaWxkcmVuIGFyZSBubyBsb25nZXIgMS10
by0xIHRvIERPTU5vZGUncyBjaGlsZHJlbi4KKyAgICAgICAgSW5zdGVhZCBhIERPTU5vZGUgbWF5
IGhhdmUgYSBiZWZvcmUvYWZ0ZXIgcHNldWRvIGVsZW1lbnQgY2hpbGQgdGhhdAorICAgICAgICBh
cmUgbm90IGluY2x1ZGVkIGluIHRoZSBjaGlsZHJlbiBsaXN0LiBVcGRhdGUgcGFydHMgb2YgRE9N
VHJlZUVsZW1lbnQKKyAgICAgICAgdG8gcmVzcGVjdCB0aGlzIGxpc3Qgb2YgdmlzaWJsZSBjaGls
ZHJlbi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnRQYXRo
Q29tcG9uZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENv
bXBvbmVudCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9QYXRoQ29tcG9uZW50SWNv
bnMuY3NzOgorICAgICAgICAoLmRvbS1wc2V1ZG8tZWxlbWVudC1pY29uIC5pY29uKToKKyAgICAg
ICAgU3R5bGluZyBmb3IgdGhlIHBhdGggY29tcG9uZW50IHdoZW4gYSBwc2V1ZG8gZWxlbWVudCBp
cyBzZWxlY3RlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxp
bmUuY3NzOgorICAgICAgICAoLmRvbS10cmVlLW91dGxpbmUgLmh0bWwtcHNldWRvLWVsZW1lbnQp
OgorICAgICAgICAoLmRvbS10cmVlLW91dGxpbmUgLmh0bWwtZnJhZ21lbnQuc2hhZG93KToKKyAg
ICAgICAgKC53ZWJraXQtaHRtbC1mcmFnbWVudC5zaGFkb3cpOiBEZWxldGVkLgorICAgICAgICBT
dHlsZXMgZm9yIHBzZXVkbyBlbGVtZW50cyBpbiB0aGUgRE9NIHRyZWUuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRPTVRyZWVPdXRsaW5lLnByb3RvdHlwZS5faGlkZUVsZW1lbnQpOgorICAgICAgICBNYWtl
IHRoZSBoaWRlIGVsZW1lbnQgc2VsZWN0b3IgaGlkZSB0aGUgaG9zdCBlbGVtZW50LgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3Rv
dHlwZS5hZGRFdmVudExpc3RlbmVycyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVE
ZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVycyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5f
Zm9yY2VkUHNldWRvQ2xhc3NDaGVja2JveENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZVBzZXVkb0NsYXNz
Q2hlY2tib3hlcyk6CisgICAgICAgIFBzZXVkbyBjbGFzcyBjaGFuZ2VzIHdvbid0IGhhcHBlbiBv
biBwc2V1ZG8gZWxlbWVudHMsIGJ1dCB3aWxsCisgICAgICAgIGhhcHBlbiBvbiB0aGVpciBob3N0
IGVsZW1lbnQsIHNvIGxpc3RlbiB0byBhbmQgbWFrZSBwc2V1ZG8gY2xhc3MKKyAgICAgICAgY2hh
bmdlcyB0byB0aGUgaG9zdCBlbGVtZW50LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmNzczoKKyAgICAgICAgKC5zaWRlYmFyID4gLnBhbmVs
LmRldGFpbHMuY3NzLXN0eWxlIC5ydWxlcyA+ICo6Zmlyc3QtY2hpbGQ6bWF0Y2hlcygubmV3LXJ1
bGUpKToKKyAgICAgICAgU2luY2UgYSBwc2V1ZG8gZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgc3R5
bGUgYXR0cmlidXRlLAorICAgICAgICBnaXZlIHNvbWUgbWFyZ2luIGluIHRoZSBzdHlsZSBzaWRl
YmFyIGFib3ZlIHRoZSAiTmV3IFJ1bGUiCisgICAgICAgIGJ1dHRvbiBzbyBpdCBsb29rcyBiZXR0
ZXIuCisKKzIwMTUtMDctMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
KwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgY3VzdG9tIHBhcmFtZXRlciBsaXN0cyBmb3Ig
bmV3IERPTSBhcHBlbmQvcHJlcGVuZC9iZWZvcmUvYWZ0ZXIvcmVwbGFjZVdpdGggbWV0aG9kcwog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjU3CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0RPTVRyZWVNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMKaW5kZXggOGMyMDgzZi4uZTZkZDdmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvRE9NVHJlZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMKQEAgLTI0Niw3ICsyNDYsMzggQEAg
V2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyID0gY2xhc3MgRE9NVHJlZU1hbmFnZXIgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHZhciBub2RlID0gdGhpcy5faWRUb0RPTU5v
ZGVbbm9kZUlkXTsKICAgICAgICAgcGFyZW50Ll9yZW1vdmVDaGlsZChub2RlKTsKICAgICAgICAg
dGhpcy5fdW5iaW5kKG5vZGUpOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIuRXZlbnQuTm9kZVJlbW92ZWQsIHtub2RlOm5v
ZGUsIHBhcmVudH0pOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIuRXZlbnQuTm9kZVJlbW92ZWQsIHtub2RlLCBwYXJlbnR9
KTsKKyAgICB9CisKKyAgICBfcHNldWRvRWxlbWVudEFkZGVkKHBhcmVudElkLCBwc2V1ZG9FbGVt
ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMuX2lkVG9ET01Ob2RlW3BhcmVu
dElkXTsKKyAgICAgICAgaWYgKCFwYXJlbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTU5vZGUodGhpcywgcGFyZW50Lm93bmVy
RG9jdW1lbnQsIGZhbHNlLCBwc2V1ZG9FbGVtZW50KTsKKyAgICAgICAgbm9kZS5wYXJlbnROb2Rl
ID0gcGFyZW50OworICAgICAgICB0aGlzLl9pZFRvRE9NTm9kZVtub2RlLmlkXSA9IG5vZGU7Cisg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFwYXJlbnQucHNldWRvRWxlbWVudHMoKS5nZXQobm9kZS5w
c2V1ZG9UeXBlKCkpKTsKKyAgICAgICAgcGFyZW50LnBzZXVkb0VsZW1lbnRzKCkuc2V0KG5vZGUu
cHNldWRvVHlwZSgpLCBub2RlKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVJbnNlcnRlZCwge25vZGUs
IHBhcmVudH0pOworICAgIH0KKworICAgIF9wc2V1ZG9FbGVtZW50UmVtb3ZlZChwYXJlbnRJZCwg
cHNldWRvRWxlbWVudElkKQorICAgIHsKKyAgICAgICAgdmFyIHBzZXVkb0VsZW1lbnQgPSB0aGlz
Ll9pZFRvRE9NTm9kZVtwc2V1ZG9FbGVtZW50SWRdOworICAgICAgICBpZiAoIXBzZXVkb0VsZW1l
bnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHBhcmVudCA9IHBzZXVkb0Vs
ZW1lbnQucGFyZW50Tm9kZTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocGFyZW50KTsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQocGFyZW50LmlkID09PSBwYXJlbnRJZCk7CisgICAgICAgIGlmICgh
cGFyZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHBhcmVudC5fcmVtb3ZlQ2hp
bGQocHNldWRvRWxlbWVudCk7CisgICAgICAgIHRoaXMuX3VuYmluZChwc2V1ZG9FbGVtZW50KTsK
KyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTVRy
ZWVNYW5hZ2VyLkV2ZW50Lk5vZGVSZW1vdmVkLCB7bm9kZTogcHNldWRvRWxlbWVudCwgcGFyZW50
fSk7CiAgICAgfQogCiAgICAgX3VuYmluZChub2RlKQpAQCAtMjU0LDggKzI4NSwxNiBAQCBXZWJJ
bnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIgPSBjbGFzcyBET01UcmVlTWFuYWdlciBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fcmVtb3ZlQ29udGVudE5vZGVGcm9tRmxv
d0lmTmVlZGVkKG5vZGUpOwogCiAgICAgICAgIGRlbGV0ZSB0aGlzLl9pZFRvRE9NTm9kZVtub2Rl
LmlkXTsKKwogICAgICAgICBmb3IgKHZhciBpID0gMDsgbm9kZS5jaGlsZHJlbiAmJiBpIDwgbm9k
ZS5jaGlsZHJlbi5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX3VuYmluZChub2RlLmNo
aWxkcmVuW2ldKTsKKworICAgICAgICB2YXIgcHNldWRvRWxlbWVudHMgPSBub2RlLnBzZXVkb0Vs
ZW1lbnRzKCk7CisgICAgICAgIGZvciAodmFyIHBzZXVkb0VsZW1lbnQgb2YgcHNldWRvRWxlbWVu
dHMpCisgICAgICAgICAgICB0aGlzLl91bmJpbmQocHNldWRvRWxlbWVudCk7CisKKyAgICAgICAg
Ly8gRklYTUU6IEhhbmRsZSBzaGFkb3cgcm9vdHMuCisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUg
dGVtcGxhdGUgY29udGVudC4KICAgICB9CiAKICAgICBnZXQgcmVzdG9yZVNlbGVjdGVkTm9kZUlz
QWxsb3dlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Nb2RlbHMvRE9NTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9ET01Ob2RlLmpzCmluZGV4IGUwNjQ2MjYuLjJmNTZlNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzCkBA
IC00Niw2ICs0Niw3IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRl
bmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fbm9kZU5hbWUgPSBwYXlsb2Fk
Lm5vZGVOYW1lOwogICAgICAgICB0aGlzLl9sb2NhbE5hbWUgPSBwYXlsb2FkLmxvY2FsTmFtZTsK
ICAgICAgICAgdGhpcy5fbm9kZVZhbHVlID0gcGF5bG9hZC5ub2RlVmFsdWU7CisgICAgICAgIHRo
aXMuX3BzZXVkb1R5cGUgPSBwYXlsb2FkLnBzZXVkb1R5cGU7CiAgICAgICAgIHRoaXMuX2NvbXB1
dGVkUm9sZSA9IHBheWxvYWQucm9sZTsKIAogICAgICAgICBpZiAodGhpcy5fbm9kZVR5cGUgPT09
IE5vZGUuRE9DVU1FTlRfTk9ERSkKQEAgLTc4LDkgKzc5LDIwIEBAIFdlYkluc3BlY3Rvci5ET01O
b2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGVtcGxhdGVDb250
ZW50LgorCiAgICAgICAgIGlmIChwYXlsb2FkLmNoaWxkcmVuKQogICAgICAgICAgICAgdGhpcy5f
c2V0Q2hpbGRyZW5QYXlsb2FkKHBheWxvYWQuY2hpbGRyZW4pOwogCisgICAgICAgIHRoaXMuX3Bz
ZXVkb0VsZW1lbnRzID0gbmV3IE1hcDsKKyAgICAgICAgaWYgKHBheWxvYWQucHNldWRvRWxlbWVu
dHMpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF5bG9hZC5wc2V1ZG9FbGVt
ZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBub2RlID0gbmV3IFdlYklu
c3BlY3Rvci5ET01Ob2RlKHRoaXMuX2RvbUFnZW50LCB0aGlzLm93bmVyRG9jdW1lbnQsIHRoaXMu
X2lzSW5TaGFkb3dUcmVlLCBwYXlsb2FkLnBzZXVkb0VsZW1lbnRzW2ldKTsKKyAgICAgICAgICAg
ICAgICBub2RlLnBhcmVudE5vZGUgPSB0aGlzOworICAgICAgICAgICAgICAgIHRoaXMuX3BzZXVk
b0VsZW1lbnRzLnNldChub2RlLnBzZXVkb1R5cGUoKSwgbm9kZSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKwogICAgICAgICBpZiAocGF5bG9hZC5jb250ZW50RG9jdW1lbnQpIHsKICAgICAg
ICAgICAgIHRoaXMuX2NvbnRlbnREb2N1bWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NTm9kZShk
b21BZ2VudCwgbnVsbCwgZmFsc2UsIHBheWxvYWQuY29udGVudERvY3VtZW50KTsKICAgICAgICAg
ICAgIHRoaXMuX2NoaWxkcmVuID0gW3RoaXMuX2NvbnRlbnREb2N1bWVudF07CkBAIC0yMjEsNiAr
MjMzLDExIEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMuX2lzSW5TaGFkb3dUcmVlOwog
ICAgIH0KIAorICAgIGlzUHNldWRvRWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fcHNldWRvVHlwZSAhPT0gdW5kZWZpbmVkOworICAgIH0KKwogICAgIG5vZGVUeXBlKCkKICAg
ICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9ub2RlVHlwZTsKQEAgLTI0Niw2ICsyNjMsMzEgQEAg
V2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAogICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxOYW1lOwogICAgIH0KIAorICAgIHBz
ZXVkb1R5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BzZXVkb1R5cGU7CisgICAg
fQorCisgICAgaGFzUHNldWRvRWxlbWVudHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X3BzZXVkb0VsZW1lbnRzLnNpemUgPiAwOworICAgIH0KKworICAgIHBzZXVkb0VsZW1lbnRzKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wc2V1ZG9FbGVtZW50czsKKyAgICB9CisKKyAg
ICBiZWZvcmVQc2V1ZG9FbGVtZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wc2V1
ZG9FbGVtZW50cy5nZXQoV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQmVm
b3JlKSB8fCBudWxsOworICAgIH0KKworICAgIGFmdGVyUHNldWRvRWxlbWVudCgpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5fcHNldWRvRWxlbWVudHMuZ2V0KFdlYkluc3BlY3Rvci5ET01O
b2RlLlBzZXVkb0VsZW1lbnRUeXBlLkFmdGVyKSB8fCBudWxsOworICAgIH0KKwogICAgIG5vZGVW
YWx1ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fbm9kZVZhbHVlOwpAQCAtNDA3LDYg
KzQ0OSw5IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYmplY3QKIAogICAgIGFwcHJvcHJpYXRlU2VsZWN0b3JGb3IoanVzdFNlbGVj
dG9yKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuaXNQc2V1ZG9FbGVtZW50KCkpCisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5wYXJlbnROb2RlLmFwcHJvcHJpYXRlU2VsZWN0b3JGb3IoKSArICI6
OiIgKyB0aGlzLl9wc2V1ZG9UeXBlOworCiAgICAgICAgIHZhciBsb3dlckNhc2VOYW1lID0gdGhp
cy5sb2NhbE5hbWUoKSB8fCB0aGlzLm5vZGVOYW1lKCkudG9Mb3dlckNhc2UoKTsKIAogICAgICAg
ICB2YXIgaWQgPSB0aGlzLmdldEF0dHJpYnV0ZSgiaWQiKTsKQEAgLTQ3NSw3ICs1MjAsMTIgQEAg
V2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAogCiAgICAgX3JlbW92ZUNoaWxkKG5vZGUpCiAgICAgewotICAgICAgICB0aGlzLl9j
aGlsZHJlbi5zcGxpY2UodGhpcy5fY2hpbGRyZW4uaW5kZXhPZihub2RlKSwgMSk7CisgICAgICAg
IC8vIEZJWE1FOiBIYW5kbGUgcmVtb3ZhbCBpZiB0aGlzIGlzIGEgc2hhZG93IHJvb3QuCisgICAg
ICAgIGlmIChub2RlLmlzUHNldWRvRWxlbWVudCgpKQorICAgICAgICAgICAgdGhpcy5fcHNldWRv
RWxlbWVudHMuZGVsZXRlKG5vZGUucHNldWRvVHlwZSgpKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fY2hpbGRyZW4uc3BsaWNlKHRoaXMuX2NoaWxkcmVuLmluZGV4T2Yobm9kZSks
IDEpOworCiAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7CiAgICAgICAgIHRoaXMuX3Jl
bnVtYmVyKCk7CiAgICAgfQpAQCAtNDg4LDggKzUzOCw3IEBAIFdlYkluc3BlY3Rvci5ET01Ob2Rl
ID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgICAgICB0
aGlzLl9jaGlsZHJlbiA9IHRoaXMuX3NoYWRvd1Jvb3RzLnNsaWNlKCk7CiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcGF5bG9hZHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBw
YXlsb2FkID0gcGF5bG9hZHNbaV07Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuRE9NTm9kZSh0aGlzLl9kb21BZ2VudCwgdGhpcy5vd25lckRvY3VtZW50LCB0aGlzLl9p
c0luU2hhZG93VHJlZSwgcGF5bG9hZCk7CisgICAgICAgICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuRE9NTm9kZSh0aGlzLl9kb21BZ2VudCwgdGhpcy5vd25lckRvY3VtZW50LCB0aGlz
Ll9pc0luU2hhZG93VHJlZSwgcGF5bG9hZHNbaV0pOwogICAgICAgICAgICAgdGhpcy5fY2hpbGRy
ZW4ucHVzaChub2RlKTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9yZW51bWJlcigpOwpAQCAt
NTk3LDMgKzY0Niw4IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLkV2ZW50ID0gewogICAgIEF0dHJp
YnV0ZU1vZGlmaWVkOiAiZG9tLW5vZGUtYXR0cmlidXRlLW1vZGlmaWVkIiwKICAgICBBdHRyaWJ1
dGVSZW1vdmVkOiAiZG9tLW5vZGUtYXR0cmlidXRlLXJlbW92ZWQiCiB9OworCitXZWJJbnNwZWN0
b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZSA9IHsKKyAgICBCZWZvcmU6ICJiZWZvcmUiLAor
ICAgIEFmdGVyOiAiYWZ0ZXIiLAorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0RPTU9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMKaW5kZXggYTAyMjhj
OS4uNzBiOWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMKQEAgLTgxLDQgKzgxLDE0IEBAIFdl
Ykluc3BlY3Rvci5ET01PYnNlcnZlciA9IGNsYXNzIERPTU9ic2VydmVyCiAgICAgewogICAgICAg
ICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIuX2NoaWxkTm9kZVJlbW92ZWQocGFyZW50Tm9k
ZUlkLCBub2RlSWQpOwogICAgIH0KKworICAgIHBzZXVkb0VsZW1lbnRBZGRlZChwYXJlbnROb2Rl
SWQsIHBzZXVkb0VsZW1lbnQpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1h
bmFnZXIuX3BzZXVkb0VsZW1lbnRBZGRlZChwYXJlbnROb2RlSWQsIHBzZXVkb0VsZW1lbnQpOwor
ICAgIH0KKworICAgIHBzZXVkb0VsZW1lbnRSZW1vdmVkKHBhcmVudE5vZGVJZCwgcHNldWRvRWxl
bWVudElkKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLl9wc2V1
ZG9FbGVtZW50UmVtb3ZlZChwYXJlbnROb2RlSWQsIHBzZXVkb0VsZW1lbnRJZCk7CisgICAgfQog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCBh
YzM2NGM3Li4wODgxNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJh
clBhbmVsLmpzCkBAIC0xNTcsMTIgKzE1NywxNCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRh
aWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsIGV4dAog
CiAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoKQogICAgIHsKLSAgICAgICAgdGhpcy5kb21Ob2RlLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTU5vZGUuRXZlbnQuRW5hYmxlZFBzZXVkb0Ns
YXNzZXNDaGFuZ2VkLCB0aGlzLl91cGRhdGVQc2V1ZG9DbGFzc0NoZWNrYm94ZXMsIHRoaXMpOwor
ICAgICAgICB2YXIgZWZmZWN0aXZlRE9NTm9kZSA9IHRoaXMuZG9tTm9kZS5pc1BzZXVkb0VsZW1l
bnQoKSA/IHRoaXMuZG9tTm9kZS5wYXJlbnROb2RlIDogdGhpcy5kb21Ob2RlOworICAgICAgICBl
ZmZlY3RpdmVET01Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTU5vZGUuRXZl
bnQuRW5hYmxlZFBzZXVkb0NsYXNzZXNDaGFuZ2VkLCB0aGlzLl91cGRhdGVQc2V1ZG9DbGFzc0No
ZWNrYm94ZXMsIHRoaXMpOwogICAgIH0KIAogICAgIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuZG9tTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGws
IHRoaXMpOworICAgICAgICB2YXIgZWZmZWN0aXZlRE9NTm9kZSA9IHRoaXMuZG9tTm9kZS5pc1Bz
ZXVkb0VsZW1lbnQoKSA/IHRoaXMuZG9tTm9kZS5wYXJlbnROb2RlIDogdGhpcy5kb21Ob2RlOwor
ICAgICAgICBlZmZlY3RpdmVET01Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwg
dGhpcyk7CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQpAQCAtMjM1LDcgKzIzNyw5IEBAIFdlYklu
c3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDU1NTdHlsZURldGFp
bHNTaWRlYmFyUGFuZWwgZXh0CiAgICAgICAgIGlmICghdGhpcy5kb21Ob2RlKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuZG9tTm9kZS5zZXRQc2V1ZG9DbGFzc0VuYWJsZWQo
cHNldWRvQ2xhc3MsIGV2ZW50LnRhcmdldC5jaGVja2VkKTsKKyAgICAgICAgdmFyIGVmZmVjdGl2
ZURPTU5vZGUgPSB0aGlzLmRvbU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkgPyB0aGlzLmRvbU5vZGUu
cGFyZW50Tm9kZSA6IHRoaXMuZG9tTm9kZTsKKworICAgICAgICBlZmZlY3RpdmVET01Ob2RlLnNl
dFBzZXVkb0NsYXNzRW5hYmxlZChwc2V1ZG9DbGFzcywgZXZlbnQudGFyZ2V0LmNoZWNrZWQpOwog
ICAgIH0KIAogICAgIF91cGRhdGVQc2V1ZG9DbGFzc0NoZWNrYm94ZXMoKQpAQCAtMjQzLDcgKzI0
Nyw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBD
U1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0CiAgICAgICAgIGlmICghdGhpcy5kb21Ob2Rl
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciBlbmFibGVkUHNldWRvQ2xhc3Nl
cyA9IHRoaXMuZG9tTm9kZS5lbmFibGVkUHNldWRvQ2xhc3NlczsKKyAgICAgICAgdmFyIGVmZmVj
dGl2ZURPTU5vZGUgPSB0aGlzLmRvbU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkgPyB0aGlzLmRvbU5v
ZGUucGFyZW50Tm9kZSA6IHRoaXMuZG9tTm9kZTsKKworICAgICAgICB2YXIgZW5hYmxlZFBzZXVk
b0NsYXNzZXMgPSBlZmZlY3RpdmVET01Ob2RlLmVuYWJsZWRQc2V1ZG9DbGFzc2VzOwogCiAgICAg
ICAgIGZvciAodmFyIHBzZXVkb0NsYXNzIGluIHRoaXMuX2ZvcmNlZFBzZXVkb0NsYXNzQ2hlY2ti
b3hlcykgewogICAgICAgICAgICAgdmFyIGNoZWNrYm94RWxlbWVudCA9IHRoaXMuX2ZvcmNlZFBz
ZXVkb0NsYXNzQ2hlY2tib3hlc1twc2V1ZG9DbGFzc107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCmlu
ZGV4IDI2Y2YxN2QuLjdkZTQzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCkBAIC0zNSw3ICsz
NSw3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgIHN1cGVyKCIiLCBub2RlKTsK
IAogICAgICAgICB0aGlzLl9lbGVtZW50Q2xvc2VUYWcgPSBlbGVtZW50Q2xvc2VUYWc7Ci0gICAg
ICAgIHRoaXMuaGFzQ2hpbGRyZW4gPSAhZWxlbWVudENsb3NlVGFnICYmIG5vZGUuaGFzQ2hpbGRO
b2RlcygpICYmICF0aGlzLl9zaG93SW5saW5lVGV4dChub2RlKTsKKyAgICAgICAgdGhpcy5oYXND
aGlsZHJlbiA9ICFlbGVtZW50Q2xvc2VUYWcgJiYgdGhpcy5faGFzVmlzaWJsZUNoaWxkcmVuKG5v
ZGUpOwogCiAgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgPT09
IE5vZGUuRUxFTUVOVF9OT0RFICYmICFlbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICB0aGlz
Ll9jYW5BZGRBdHRyaWJ1dGVzID0gdHJ1ZTsKQEAgLTE1OSw3ICsxNTksMTAgQEAgV2ViSW5zcGVj
dG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuVHJlZUVsZW0KIAogICAgIGdldCBlZGl0YWJsZSgpCiAgICAgewotICAgICAgICBpZiAo
dGhpcy5yZXByZXNlbnRlZE9iamVjdC5pc0luU2hhZG93VHJlZSgpKQorICAgICAgICB2YXIgbm9k
ZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGlmIChub2RlLmlzSW5TaGFkb3dU
cmVlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChub2RlLmlzUHNl
dWRvRWxlbWVudCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJldHVy
biB0aGlzLnRyZWVPdXRsaW5lLmVkaXRhYmxlOwpAQCAtMTkyLDYgKzE5NSw5IEBAIFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5z
cGVjdG9yLlRyZWVFbGVtCiAKICAgICBzaG93Q2hpbGQoaW5kZXgpCiAgICAgeworICAgICAgICAv
LyBGSVhNRTogSW5zdGVhZCBvZiBpbmRleCwgdGhpcyBzaG91bGQgY29tcHV0ZSB0aGUgaW5kZXgg
dXNpbmcgdGhlIG5vZGUuCisgICAgICAgIC8vIE90aGVyd2lzZSB0aGlzIG1heSBub3Qgd29yayB3
aXRoIDo6YmVmb3JlIC8gOjphZnRlci4KKwogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5f
ZWxlbWVudENsb3NlVGFnKTsKICAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRDbG9zZVRhZykKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NSw3ICsyOTEsNyBAQCBXZWJJbnNwZWN0b3Iu
RE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rv
ci5UcmVlRWxlbQogCiAgICAgb25wb3B1bGF0ZSgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5j
aGlsZHJlbi5sZW5ndGggfHwgdGhpcy5fc2hvd0lubGluZVRleHQodGhpcy5yZXByZXNlbnRlZE9i
amVjdCkgfHwgdGhpcy5fZWxlbWVudENsb3NlVGFnKQorICAgICAgICBpZiAodGhpcy5jaGlsZHJl
bi5sZW5ndGggfHwgIXRoaXMuX2hhc1Zpc2libGVDaGlsZHJlbih0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0KSB8fCB0aGlzLl9lbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpOwpAQCAtMzAwLDYgKzMwNiw3IEBAIFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5z
cGVjdG9yLlRyZWVFbGVtCiAgICAgewogICAgICAgICBpZiAodGhpcy5fZWxlbWVudENsb3NlVGFn
KQogICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
Z2V0Q2hpbGROb2Rlcyh0aGlzLl91cGRhdGVDaGlsZHJlbi5iaW5kKHRoaXMsIGZ1bGxSZWZyZXNo
KSk7CiAgICAgfQogCkBAIC0zMjYsNzggKzMzMyw4NSBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVs
ZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxl
bQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuSW5Q
cm9ncmVzcyA9IHRydWU7CisKKyAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0OwogICAgICAgICB2YXIgc2VsZWN0ZWROb2RlID0gdGhpcy50cmVlT3V0bGluZS5zZWxlY3Rl
ZERPTU5vZGUoKTsKICAgICAgICAgdmFyIG9yaWdpbmFsU2Nyb2xsVG9wID0gMDsKLSAgICAgICAg
aWYgKGZ1bGxSZWZyZXNoKSB7CisKKyAgICAgICAgdmFyIGhhc1Zpc2libGVDaGlsZHJlbiA9IHRo
aXMuX2hhc1Zpc2libGVDaGlsZHJlbihub2RlKTsKKworICAgICAgICBpZiAoZnVsbFJlZnJlc2gg
fHwgIWhhc1Zpc2libGVDaGlsZHJlbikgewogICAgICAgICAgICAgdmFyIHRyZWVPdXRsaW5lQ29u
dGFpbmVyRWxlbWVudCA9IHRoaXMudHJlZU91dGxpbmUuZWxlbWVudC5wYXJlbnROb2RlOwogICAg
ICAgICAgICAgb3JpZ2luYWxTY3JvbGxUb3AgPSB0cmVlT3V0bGluZUNvbnRhaW5lckVsZW1lbnQu
c2Nyb2xsVG9wOwogICAgICAgICAgICAgdmFyIHNlbGVjdGVkVHJlZUVsZW1lbnQgPSB0aGlzLnRy
ZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CiAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRU
cmVlRWxlbWVudCAmJiBzZWxlY3RlZFRyZWVFbGVtZW50Lmhhc0FuY2VzdG9yKHRoaXMpKQogICAg
ICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCk7CiAgICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxk
cmVuKCk7Ci0gICAgICAgIH0KIAotICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzOwotICAg
ICAgICB2YXIgdHJlZUNoaWxkSW5kZXggPSAwOwotICAgICAgICB2YXIgZWxlbWVudFRvU2VsZWN0
OwotCi0gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUNoaWxkcmVuT2ZOb2RlKG5vZGUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHZhciB0cmVlT3V0bGluZSA9IHRyZWVFbGVtZW50LnRyZWVPdXRsaW5l
OwotICAgICAgICAgICAgdmFyIGNoaWxkID0gbm9kZS5maXJzdENoaWxkOwotICAgICAgICAgICAg
d2hpbGUgKGNoaWxkKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnJlbnRUcmVlRWxlbWVudCA9
IHRyZWVFbGVtZW50LmNoaWxkcmVuW3RyZWVDaGlsZEluZGV4XTsKLSAgICAgICAgICAgICAgICBp
ZiAoIWN1cnJlbnRUcmVlRWxlbWVudCB8fCBjdXJyZW50VHJlZUVsZW1lbnQucmVwcmVzZW50ZWRP
YmplY3QgIT09IGNoaWxkKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZpbmQgYW55IGV4aXN0
aW5nIGVsZW1lbnQgdGhhdCBpcyBsYXRlciBpbiB0aGUgY2hpbGRyZW4gbGlzdC4KLSAgICAgICAg
ICAgICAgICAgICAgdmFyIGV4aXN0aW5nVHJlZUVsZW1lbnQgPSBudWxsOwotICAgICAgICAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gKHRyZWVDaGlsZEluZGV4ICsgMSksIHNpemUgPSB0cmVlRWxl
bWVudC5leHBhbmRlZENoaWxkQ291bnQ7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5jaGlsZHJlbltpXS5yZXByZXNlbnRlZE9iamVjdCA9
PT0gY2hpbGQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ1RyZWVFbGVt
ZW50ID0gdHJlZUVsZW1lbnQuY2hpbGRyZW5baV07Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdUcmVlRWxlbWVudCAmJiBleGlz
dGluZ1RyZWVFbGVtZW50LnBhcmVudCA9PT0gdHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIElmIGFuIGV4aXN0aW5nIGVsZW1lbnQgd2FzIGZvdW5kIGFuZCBpdCBoYXMg
dGhlIHNhbWUgcGFyZW50LCBqdXN0IG1vdmUgaXQuCi0gICAgICAgICAgICAgICAgICAgICAgICB0
cmVlRWxlbWVudC5tb3ZlQ2hpbGQoZXhpc3RpbmdUcmVlRWxlbWVudCwgdHJlZUNoaWxkSW5kZXgp
OwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gTm8gZXhpc3RpbmcgZWxlbWVudCBmb3VuZCwgaW5zZXJ0IGEgbmV3IGVsZW1lbnQuCi0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAodHJlZUNoaWxkSW5kZXggPCB0cmVlRWxlbWVudC5leHBh
bmRlZENoaWxkcmVuTGltaXQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbmV3
RWxlbWVudCA9IHRyZWVFbGVtZW50Lmluc2VydENoaWxkRWxlbWVudChjaGlsZCwgdHJlZUNoaWxk
SW5kZXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZCA9PT0gc2VsZWN0
ZWROb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50VG9TZWxlY3Qg
PSBuZXdFbGVtZW50OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVu
dC5leHBhbmRlZENoaWxkQ291bnQgPiB0cmVlRWxlbWVudC5leHBhbmRlZENoaWxkcmVuTGltaXQp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50LmV4cGFuZGVkQ2hp
bGRyZW5MaW1pdCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgY2hpbGQgPSBjaGls
ZC5uZXh0U2libGluZzsKLSAgICAgICAgICAgICAgICArK3RyZWVDaGlsZEluZGV4OworICAgICAg
ICAgICAgLy8gTm8gbG9uZ2VyIGhhdmUgY2hpbGRyZW4uCisgICAgICAgICAgICBpZiAoIWhhc1Zp
c2libGVDaGlsZHJlbikgeworICAgICAgICAgICAgICAgIHRoaXMuaGFzQ2hpbGRyZW4gPSBmYWxz
ZTsKKyAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKCk7CisgICAgICAgICAgICAgICAg
dGhpcy5fdXBkYXRlQ2hpbGRyZW5JblByb2dyZXNzID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgLy8gV2Ugbm93IGhh
dmUgY2hpbGRyZW4uCisgICAgICAgIGlmICghdGhpcy5oYXNDaGlsZHJlbikgeworICAgICAgICAg
ICAgdGhpcy5oYXNDaGlsZHJlbiA9IHRydWU7CisgICAgICAgICAgICB0aGlzLnVwZGF0ZVRpdGxl
KCk7CisgICAgICAgIH0KKwogICAgICAgICAvLyBSZW1vdmUgYW55IHRyZWUgZWxlbWVudHMgdGhh
dCBubyBsb25nZXIgaGF2ZSB0aGlzIG5vZGUgKG9yIHRoaXMgbm9kZSdzIGNvbnRlbnREb2N1bWVu
dCkgYXMgdGhlaXIgcGFyZW50LgorICAgICAgICAvLyBLZWVwIGEgbGlzdCBvZiBleGlzdGluZyB0
cmVlIGVsZW1lbnRzIGZvciBub2RlcyB0aGF0IHdlIGNhbiB1c2UgbGF0ZXIuCisgICAgICAgIHZh
ciBleGlzdGluZ0NoaWxkVHJlZUVsZW1lbnRzID0gbmV3IE1hcDsKICAgICAgICAgZm9yICh2YXIg
aSA9ICh0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDEpOyBpID49IDA7IC0taSkgewotICAgICAgICAg
ICAgdmFyIGN1cnJlbnRDaGlsZCA9IHRoaXMuY2hpbGRyZW5baV07Ci0gICAgICAgICAgICB2YXIg
Y3VycmVudE5vZGUgPSBjdXJyZW50Q2hpbGQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgICAg
ICB2YXIgY3VycmVudENoaWxkVHJlZUVsZW1lbnQgPSB0aGlzLmNoaWxkcmVuW2ldOworICAgICAg
ICAgICAgdmFyIGN1cnJlbnROb2RlID0gY3VycmVudENoaWxkVHJlZUVsZW1lbnQucmVwcmVzZW50
ZWRPYmplY3Q7CiAgICAgICAgICAgICB2YXIgY3VycmVudFBhcmVudE5vZGUgPSBjdXJyZW50Tm9k
ZS5wYXJlbnROb2RlOwotCi0gICAgICAgICAgICBpZiAoY3VycmVudFBhcmVudE5vZGUgPT09IHRo
aXMucmVwcmVzZW50ZWRPYmplY3QpCisgICAgICAgICAgICBpZiAoY3VycmVudFBhcmVudE5vZGUg
PT09IG5vZGUpIHsKKyAgICAgICAgICAgICAgICBleGlzdGluZ0NoaWxkVHJlZUVsZW1lbnRzLnNl
dChjdXJyZW50Tm9kZSwgY3VycmVudENoaWxkVHJlZUVsZW1lbnQpOwogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRUcmVl
RWxlbWVudCA9IHRoaXMudHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudDsKLSAgICAgICAg
ICAgIGlmIChzZWxlY3RlZFRyZWVFbGVtZW50ICYmIChzZWxlY3RlZFRyZWVFbGVtZW50ID09PSBj
dXJyZW50Q2hpbGQgfHwgc2VsZWN0ZWRUcmVlRWxlbWVudC5oYXNBbmNlc3RvcihjdXJyZW50Q2hp
bGQpKSkKKyAgICAgICAgICAgIGlmIChzZWxlY3RlZFRyZWVFbGVtZW50ICYmIChzZWxlY3RlZFRy
ZWVFbGVtZW50ID09PSBjdXJyZW50Q2hpbGRUcmVlRWxlbWVudCB8fCBzZWxlY3RlZFRyZWVFbGVt
ZW50Lmhhc0FuY2VzdG9yKGN1cnJlbnRDaGlsZFRyZWVFbGVtZW50KSkpCiAgICAgICAgICAgICAg
ICAgdGhpcy5zZWxlY3QoKTsKIAogICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZEF0SW5kZXgo
aSk7CiAgICAgICAgIH0KIAotICAgICAgICB1cGRhdGVDaGlsZHJlbk9mTm9kZSh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0KTsKKyAgICAgICAgLy8gTW92ZSAvIGNyZWF0ZSBUcmVlRWxlbWVudHMgZm9y
IG91ciB2aXNpYmxlIGNoaWxkcmVuLgorICAgICAgICB2YXIgY2hpbGRJbmRleCA9IDA7CisgICAg
ICAgIHZhciBlbGVtZW50VG9TZWxlY3QgPSBudWxsOworICAgICAgICB2YXIgdmlzaWJsZUNoaWxk
cmVuID0gdGhpcy5fdmlzaWJsZUNoaWxkcmVuKG5vZGUpOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHZpc2libGVDaGlsZHJlbi5sZW5ndGggJiYgaSA8IHRoaXMuZXhwYW5kZWRDaGlsZHJl
bkxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgIHZhciBjaGlsZE5vZGUgPSB2aXNpYmxlQ2hpbGRy
ZW5baV07CisKKyAgICAgICAgICAgIC8vIEFscmVhZHkgaGF2ZSBhIHRyZWUgZWxlbWVudCBmb3Ig
dGhpcyBjaGlsZCwganVzdCBtb3ZlIGl0LgorICAgICAgICAgICAgdmFyIGV4aXN0aW5nQ2hpbGRU
cmVlRWxlbWVudCA9IGV4aXN0aW5nQ2hpbGRUcmVlRWxlbWVudHMuZ2V0KGNoaWxkTm9kZSk7Cisg
ICAgICAgICAgICBpZiAoZXhpc3RpbmdDaGlsZFRyZWVFbGVtZW50KSB7CisgICAgICAgICAgICAg
ICAgdGhpcy5tb3ZlQ2hpbGQoZXhpc3RpbmdDaGlsZFRyZWVFbGVtZW50LCBpKTsKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gTm8gZXhp
c3RpbmcgdHJlZSBlbGVtZW50IGZvciB0aGlzIGNoaWxkLiBJbnNlcnQgYSBuZXcgZWxlbWVudC4K
KyAgICAgICAgICAgIHZhciBuZXdDaGlsZFRyZWVFbGVtZW50ID0gdGhpcy5pbnNlcnRDaGlsZEVs
ZW1lbnQoY2hpbGROb2RlLCBpKTsKKworICAgICAgICAgICAgLy8gVXBkYXRlIHN0YXRlLgorICAg
ICAgICAgICAgaWYgKGNoaWxkTm9kZSA9PT0gc2VsZWN0ZWROb2RlKQorICAgICAgICAgICAgICAg
IGVsZW1lbnRUb1NlbGVjdCA9IG5ld0NoaWxkVHJlZUVsZW1lbnQ7CisgICAgICAgICAgICBpZiAo
dGhpcy5leHBhbmRlZENoaWxkQ291bnQgPiB0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCkKKyAg
ICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCsrOworICAgICAgICB9CisK
KyAgICAgICAgLy8gVXBkYXRlIGV4cGFuZCBhbGwgY2hpbGRyZW4gYnV0dG9uLgogICAgICAgICB0
aGlzLmFkanVzdENvbGxhcHNlZFJhbmdlKCk7CiAKKyAgICAgICAgLy8gSW5zZXJ0IGNsb3Npbmcg
dGFnIHRyZWUgZWxlbWVudC4KICAgICAgICAgdmFyIGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW4u
bGFzdFZhbHVlOwotICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlVHlwZSgp
ID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAoIWxhc3RDaGlsZCB8fCAhbGFzdENoaWxkLl9lbGVt
ZW50Q2xvc2VUYWcpKQorICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSgpID09PSBOb2RlLkVMRU1F
TlRfTk9ERSAmJiAoIWxhc3RDaGlsZCB8fCAhbGFzdENoaWxkLl9lbGVtZW50Q2xvc2VUYWcpKQog
ICAgICAgICAgICAgdGhpcy5pbnNlcnRDaGlsZEVsZW1lbnQodGhpcy5yZXByZXNlbnRlZE9iamVj
dCwgdGhpcy5jaGlsZHJlbi5sZW5ndGgsIHRydWUpOwogCiAgICAgICAgIC8vIFdlIHdhbnQgdG8g
cmVzdG9yZSB0aGUgb3JpZ2luYWwgc2VsZWN0aW9uIGFuZCB0cmVlIHNjcm9sbCBwb3NpdGlvbiBh
ZnRlciBhIGZ1bGwgcmVmcmVzaCwgaWYgcG9zc2libGUuCkBAIC00MTcsNiArNDMxLDcgQEAgV2Vi
SW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgaWYgKHRoaXMuZXhwYW5kQWxsQnV0dG9uRWxl
bWVudCAmJiB0aGlzLmV4cGFuZEFsbEJ1dHRvbkVsZW1lbnQuX190cmVlRWxlbWVudC5wYXJlbnQp
CiAgICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkKHRoaXMuZXhwYW5kQWxsQnV0dG9uRWxlbWVu
dC5fX3RyZWVFbGVtZW50KTsKIAorICAgICAgICAvLyBGSVhNRTogRG9lc24ndCB0YWtlIGludG8g
YWNjb3VudCBiZWZvcmUvYWZ0ZXIgY2hpbGRyZW4uCiAgICAgICAgIHZhciBub2RlID0gdGhpcy5y
ZXByZXNlbnRlZE9iamVjdDsKICAgICAgICAgaWYgKCFub2RlLmNoaWxkcmVuKQogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtNTc1LDcgKzU5MCw3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVu
dCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAg
ICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdGVkRE9NTm9kZSgpICE9PSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGlm
ICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzSW5TaGFkb3dUcmVlKCkpCisgICAgICAgIGlmICh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzSW5TaGFkb3dUcmVlKCkgfHwgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlVHlwZSgpICE9PSBOb2RlLkVM
RU1FTlRfTk9ERSAmJiB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgIT09IE5vZGUu
VEVYVF9OT0RFKQpAQCAtMTExNCw3ICsxMTI5LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVt
ZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0K
IAogICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUoKSkgewogICAgICAgICAgICAgY2FzZSBO
b2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6Ci0gICAgICAgICAgICAgICAgdmFyIGZyYWdtZW50
RWxlbWVudCA9IGluZm8udGl0bGVET00uY3JlYXRlQ2hpbGQoInNwYW4iLCAid2Via2l0LWh0bWwt
ZnJhZ21lbnQiKTsKKyAgICAgICAgICAgICAgICB2YXIgZnJhZ21lbnRFbGVtZW50ID0gaW5mby50
aXRsZURPTS5jcmVhdGVDaGlsZCgic3BhbiIsICJodG1sLWZyYWdtZW50Iik7CiAgICAgICAgICAg
ICAgICAgaWYgKG5vZGUuaXNJblNoYWRvd1RyZWUoKSkgewogICAgICAgICAgICAgICAgICAgICBm
cmFnbWVudEVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNoYWRv
dyBDb250ZW50Iik7CiAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50RWxlbWVudC5jbGFzc0xp
c3QuYWRkKCJzaGFkb3ciKTsKQEAgLTExMjgsNiArMTE0MywxNCBAQCBXZWJJbnNwZWN0b3IuRE9N
VHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5U
cmVlRWxlbQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlIE5vZGUu
RUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgICAgIGlmIChub2RlLmlzUHNldWRvRWxlbWVudCgp
KSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBwc2V1ZG9FbGVtZW50ID0gaW5mby50aXRsZURP
TS5jcmVhdGVDaGlsZCgic3BhbiIsICJodG1sLXBzZXVkby1lbGVtZW50Iik7CisgICAgICAgICAg
ICAgICAgICAgIHBzZXVkb0VsZW1lbnQudGV4dENvbnRlbnQgPSAiOjoiICsgbm9kZS5wc2V1ZG9U
eXBlKCk7CisgICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGVET00uYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpKTsKKyAgICAgICAgICAgICAgICAgICAgaW5m
by5oYXNDaGlsZHJlbiA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICB2YXIgdGFnTmFtZSA9IG5vZGUubm9kZU5h
bWVJbkNvcnJlY3RDYXNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2VsZW1lbnRDbG9z
ZVRhZykgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9idWlsZFRhZ0RPTShpbmZvLnRpdGxl
RE9NLCB0YWdOYW1lLCB0cnVlLCB0cnVlKTsKQEAgLTEyMzcsNiArMTI2MCw4IEBAIFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5z
cGVjdG9yLlRyZWVFbGVtCiAKICAgICAgICAgaWYgKG5vZGUuaGFzU2hhZG93Um9vdHMoKSkKICAg
ICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBpZiAobm9kZS5oYXNQc2V1ZG9FbGVtZW50
cygpKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAKICAgICAgICAgdmFyIHNpYmxpbmcgPSBm
aXJzdENoaWxkLm5leHRTaWJsaW5nOwogICAgICAgICByZXR1cm4gc2libGluZyA/IG51bGwgOiBm
aXJzdENoaWxkOwpAQCAtMTI1Miw2ICsxMjc3LDM3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxl
bWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVt
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBfaGFzVmlzaWJsZUNoaWxkcmVu
KG5vZGUpCisgICAgeworICAgICAgICBpZiAodGhpcy5fc2hvd0lubGluZVRleHQobm9kZSkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG5vZGUuaGFzQ2hpbGROb2Rl
cygpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChub2RlLmhhc1BzZXVk
b0VsZW1lbnRzKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgX3Zpc2libGVDaGlsZHJlbihub2RlKQorICAgIHsKKyAgICAg
ICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IFtdOworCisgICAgICAgIHZhciBiZWZvcmVQc2V1ZG9F
bGVtZW50ID0gbm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCk7CisgICAgICAgIGlmIChiZWZvcmVQ
c2V1ZG9FbGVtZW50KQorICAgICAgICAgICAgdmlzaWJsZUNoaWxkcmVuLnB1c2goYmVmb3JlUHNl
dWRvRWxlbWVudCk7CisKKyAgICAgICAgaWYgKG5vZGUuY2hpbGROb2RlQ291bnQpCisgICAgICAg
ICAgICB2aXNpYmxlQ2hpbGRyZW4gPSB2aXNpYmxlQ2hpbGRyZW4uY29uY2F0KG5vZGUuY2hpbGRy
ZW4pOworCisgICAgICAgIHZhciBhZnRlclBzZXVkb0VsZW1lbnQgPSBub2RlLmFmdGVyUHNldWRv
RWxlbWVudCgpOworICAgICAgICBpZiAoYWZ0ZXJQc2V1ZG9FbGVtZW50KQorICAgICAgICAgICAg
dmlzaWJsZUNoaWxkcmVuLnB1c2goYWZ0ZXJQc2V1ZG9FbGVtZW50KTsKKworICAgICAgICByZXR1
cm4gdmlzaWJsZUNoaWxkcmVuOworICAgIH0KKwogICAgIHJlbW92ZSgpCiAgICAgewogICAgICAg
ICB2YXIgcGFyZW50RWxlbWVudCA9IHRoaXMucGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9u
ZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJl
ZUVsZW1lbnRQYXRoQ29tcG9uZW50LmpzCmluZGV4IDIxMDk0ZTMuLjZmNmUwMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVt
ZW50UGF0aENvbXBvbmVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuanMKQEAgLTM0LDggKzM0LDEz
IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQgPSBjbGFzcyBET01U
cmVlRWxlbWVudFBhdGhDb21wb25lbnQgZXh0CiAKICAgICAgICAgc3dpdGNoIChub2RlLm5vZGVU
eXBlKCkpIHsKICAgICAgICAgY2FzZSBOb2RlLkVMRU1FTlRfTk9ERToKLSAgICAgICAgICAgIGNs
YXNzTmFtZSA9IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NRWxl
bWVudEljb25TdHlsZUNsYXNzTmFtZTsKLSAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9y
LmRpc3BsYXlOYW1lRm9yTm9kZShub2RlKTsKKyAgICAgICAgICAgIGlmIChub2RlLmlzUHNldWRv
RWxlbWVudCgpKSB7CisgICAgICAgICAgICAgICAgY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5ET01Qc2V1ZG9FbGVtZW50SWNvblN0eWxlQ2xhc3NO
YW1lOworICAgICAgICAgICAgICAgIHRpdGxlID0gIjo6IiArIG5vZGUucHNldWRvVHlwZSgpOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjbGFzc05hbWUgPSBXZWJJbnNw
ZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LkRPTUVsZW1lbnRJY29uU3R5bGVDbGFz
c05hbWU7CisgICAgICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVG
b3JOb2RlKG5vZGUpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg
ICAgY2FzZSBOb2RlLlRFWFRfTk9ERToKQEAgLTEyOSw2ICsxMzQsNyBAQCBXZWJJbnNwZWN0b3Iu
RE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnRQYXRoQ29t
cG9uZW50IGV4dAogfTsKIAogV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVu
dC5ET01FbGVtZW50SWNvblN0eWxlQ2xhc3NOYW1lID0gImRvbS1lbGVtZW50LWljb24iOworV2Vi
SW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5ET01Qc2V1ZG9FbGVtZW50SWNv
blN0eWxlQ2xhc3NOYW1lID0gImRvbS1wc2V1ZG8tZWxlbWVudC1pY29uIjsKIFdlYkluc3BlY3Rv
ci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NVGV4dE5vZGVJY29uU3R5bGVDbGFzc05h
bWUgPSAiZG9tLXRleHQtbm9kZS1pY29uIjsKIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBh
dGhDb21wb25lbnQuRE9NQ29tbWVudEljb25TdHlsZUNsYXNzTmFtZSA9ICJkb20tY29tbWVudC1p
Y29uIjsKIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NRG9jdW1l
bnRUeXBlSWNvblN0eWxlQ2xhc3NOYW1lID0gImRvbS1kb2N1bWVudC10eXBlLWljb24iOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJl
ZU91dGxpbmUuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZU91dGxpbmUuY3NzCmluZGV4IDVjYWNlZjguLmE1OGJiMzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNz
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVl
T3V0bGluZS5jc3MKQEAgLTE1NCwxMiArMTU0LDE2IEBACiAgICAgd2hpdGUtc3BhY2U6IHByZS13
cmFwOwogfQogCisuZG9tLXRyZWUtb3V0bGluZSAuaHRtbC1wc2V1ZG8tZWxlbWVudCB7CisgICAg
Y29sb3I6IGJyb3duOworfQorCisuZG9tLXRyZWUtb3V0bGluZSAuaHRtbC1mcmFnbWVudC5zaGFk
b3cgeworICAgIG9wYWNpdHk6IDAuNjsKK30KKwogLnNob3dpbmctZmluZC1iYW5uZXIgLmRvbS10
cmVlLW91dGxpbmUgLnNlYXJjaC1oaWdobGlnaHQgewogICAgIGNvbG9yOiBibGFjazsKICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDUzLCA4MyUsIDUzJSwgMC4yKTsKICAgICBib3JkZXItYm90
dG9tOiAxcHggc29saWQgaHNsKDQ3LCA4MiUsIDYwJSk7CiB9Ci0KLS53ZWJraXQtaHRtbC1mcmFn
bWVudC5zaGFkb3cgewotICAgIG9wYWNpdHk6IDAuNjsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMK
aW5kZXggZmE3ZTUyNi4uZWYxYjNkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzCkBAIC01NDgs
MTIgKzU0OCwxOSBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxpbmUgPSBjbGFzcyBET01UcmVl
T3V0bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlT3V0bAogCiAgICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CiAKLSAgICAgICAgdmFyIHNlbGVjdGVkTm9kZSA9IHRoaXMuc2VsZWN0
ZWRUcmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKLSAgICAgICAgY29uc29sZS5hc3NlcnQo
c2VsZWN0ZWROb2RlKTsKLSAgICAgICAgaWYgKCFzZWxlY3RlZE5vZGUpCisgICAgICAgIHZhciBl
ZmZlY3RpdmVOb2RlID0gdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0
OworICAgICAgICBjb25zb2xlLmFzc2VydChlZmZlY3RpdmVOb2RlKTsKKyAgICAgICAgaWYgKCFl
ZmZlY3RpdmVOb2RlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmIChzZWxlY3Rl
ZE5vZGUubm9kZVR5cGUoKSAhPT0gTm9kZS5FTEVNRU5UX05PREUpCisgICAgICAgIGlmIChlZmZl
Y3RpdmVOb2RlLmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgICAgICBlZmZlY3RpdmVOb2Rl
ID0gZWZmZWN0aXZlTm9kZS5wYXJlbnROb2RlOworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQo
ZWZmZWN0aXZlTm9kZSk7CisgICAgICAgICAgICBpZiAoIWVmZmVjdGl2ZU5vZGUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9ICAgICAgICAgICAgCisKKyAgICAgICAgaWYgKGVm
ZmVjdGl2ZU5vZGUubm9kZVR5cGUoKSAhPT0gTm9kZS5FTEVNRU5UX05PREUpCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgZnVuY3Rpb24gcmVzb2x2ZWROb2RlKG9iamVjdCkKQEAgLTU3
OSw3ICs1ODYsNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxpbmUgPSBjbGFzcyBET01UcmVl
T3V0bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlT3V0bAogICAgICAgICAgICAgb2JqZWN0
LnJlbGVhc2UoKTsKICAgICAgICAgfQogCi0gICAgICAgIFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QucmVzb2x2ZU5vZGUoc2VsZWN0ZWROb2RlLCAiIiwgcmVzb2x2ZWROb2RlKTsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZShlZmZlY3RpdmVOb2RlLCAiIiwg
cmVzb2x2ZWROb2RlKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9QYXRoQ29tcG9uZW50SWNvbnMuY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUGF0aENvbXBvbmVudEljb25zLmNz
cwppbmRleCA0ZDM4NzdiLi41ZTY4OTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9QYXRoQ29tcG9uZW50SWNvbnMuY3NzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1BhdGhDb21wb25lbnRJY29ucy5j
c3MKQEAgLTM1LDYgKzM1LDEwIEBACiAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9ET01FbGVt
ZW50LnN2Zyk7CiB9CiAKKy5kb20tcHNldWRvLWVsZW1lbnQtaWNvbiAuaWNvbiB7CisgICAgY29u
dGVudDogdXJsKC4uL0ltYWdlcy9Qc2V1ZG9FbGVtZW50LnN2Zyk7Cit9CisKIC5kb20tdGV4dC1u
b2RlLWljb24gLmljb24gewogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvRE9NVGV4dE5vZGUu
c3ZnKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3MKaW5kZXggMTdh
Yjk5ODQuLmE2NGNmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3NzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3Nz
CkBAIC01Miw2ICs1MiwxMCBAQAogICAgIG9wYWNpdHk6IDAuNTsKIH0KIAorLnNpZGViYXIgPiAu
cGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnJ1bGVzID4gKjpmaXJzdC1jaGlsZDptYXRjaGVzKC5u
ZXctcnVsZSkgeworICAgIG1hcmdpbi10b3A6IDhweDsKK30KKwogLnNpZGViYXIgPiAucGFuZWwu
ZGV0YWlscy5jc3Mtc3R5bGUgPiAuY29udGVudC5maWx0ZXItaW4tcHJvZ3Jlc3MgLmxhYmVsIHsK
ICAgICBwYWRkaW5nLXRvcDogMTVweDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257506</attachid>
            <date>2015-07-24 19:42:29 -0700</date>
            <delta_ts>2015-08-05 21:37:57 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>pseudo-3.patch</filename>
            <type>text/plain</type>
            <size>90470</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTcwYjFmLi45MGE2OTAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTUtMDct
MjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9y
LXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Rv
bS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGljLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMuaHRtbDog
QWRkZWQuCisKKzIwMTUtMDctMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KKwogICAgICAgICBDU1MgImNvbnRlbnQiIHByb3BlcnR5IGlzIG1pc3NpbmcgaW4gZ2V0Q29t
cHV0ZWRTdHlsZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NzI1NQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVk
by1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1
ZG8tZWxlbWVudC1ub2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41YmFlNDgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0aW5nIHRoYXQgd2UgY2FuIGdldCBjb21wdXRl
ZCBhbmQgbWF0Y2hlZCBydWxlcyBmb3IgcHNldWRvIGVsZW1lbnQgbm9kZXMuCisKK1RFU1QgRUxF
TUVOVDogSGFzIEJlZm9yZSBQc2V1ZG8gRWxlbWVudAorUEFTUzogR290IDo6YmVmb3JlIHBzZXVk
byBlbGVtZW50IGZvciAjeAorUmVmcmVzaGluZyBzdHlsZXMgZm9yIDo6YmVmb3JlIHBzZXVkbyBl
bGVtZW50CisKK1BBU1M6IE5vIElubGluZSBTdHlsZXMKK1BBU1M6IE5vIEF0dHJpYnV0ZSBTdHls
ZXMKK1BBU1M6IE5vIEluaGVyaXRlZCBTdHlsZXMKK1BBU1M6IE5vIFBzZXVkbyBFbGVtZW50IFN0
eWxlcworUEFTUzogSGFzIENvbXB1dGVkIFN0eWxlcworUFJPUEVSVFk6IGNvbnRlbnQ6IGJlZm9y
ZTsKK1BST1BFUlRZOiBjb2xvcjogcmdiKDAsIDAsIDI1NSk7CitNQVRDSEVEIFJVTEU6CisgIFNF
TEVDVE9SOiBpbnB1dDpiZWZvcmUKKyAgU0VMRUNUT1I6ICN4OmJlZm9yZSBbbWF0Y2hlZF0KKyAg
U0VMRUNUT1I6IGRpdgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3Bz
ZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hlcy1mb3ItcHNldWRvLWVs
ZW1lbnQtbm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiOWZm
MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVkby1l
bGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbApAQCAtMCwwICsxLDU4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB2YXIgbm9k
ZVN0eWxlcyA9IG51bGw7CisKKyAgICBmdW5jdGlvbiB2YWxpZGF0ZVN0eWxlcygpIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdCghbm9kZVN0eWxlcy5pbmxpbmVTdHlsZSwgIk5vIElubGluZSBTdHlsZXMiKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFub2RlU3R5bGVzLmF0dHJpYnV0ZXNTdHlsZSwg
Ik5vIEF0dHJpYnV0ZSBTdHlsZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KCFub2RlU3R5bGVzLmluaGVyaXRlZFJ1bGVzLmxlbmd0aCwgIk5vIEluaGVyaXRlZCBTdHlsZXMi
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFPYmplY3Qua2V5cyhub2RlU3R5
bGVzLnBzZXVkb0VsZW1lbnRzKS5sZW5ndGgsICJObyBQc2V1ZG8gRWxlbWVudCBTdHlsZXMiKTsK
KworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobm9kZVN0eWxlcy5jb21wdXRlZFN0
eWxlLCAiSGFzIENvbXB1dGVkIFN0eWxlcyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UFJPUEVSVFk6ICIgKyBub2RlU3R5bGVzLmNvbXB1dGVkU3R5bGUucHJvcGVydHlGb3JOYW1lKCJj
b250ZW50IikudGV4dCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQUk9QRVJUWTogIiAr
IG5vZGVTdHlsZXMuY29tcHV0ZWRTdHlsZS5wcm9wZXJ0eUZvck5hbWUoImNvbG9yIikudGV4dCk7
CisKKyAgICAgICAgZm9yICh2YXIgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxlcykgewor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIk1BVENIRUQgUlVMRToiKTsKKyAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZS5zZWxlY3RvcnMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICB2YXIgc2VsZWN0b3IgPSBydWxlLnNlbGVjdG9yc1tpXTsKKyAgICAgICAg
ICAgICAgICB2YXIgbWF0Y2hlZCA9IHJ1bGUubWF0Y2hlZFNlbGVjdG9ySW5kaWNlcy5pbmNsdWRl
cyhpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICBTRUxFQ1RPUjogIiAr
IHNlbGVjdG9yLnRleHQgKyAobWF0Y2hlZCA/ICIgW21hdGNoZWRdIiA6ICIiKSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OyAgICAgICAgICAgICAgICAKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFn
ZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIj
eCIsIGZ1bmN0aW9uKGNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAgIHZhciBkb21Ob2RlID0g
V2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlkKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUpOworICAgICAgICAgICAgdmFy
IGJlZm9yZVBzZXVkb0VsZW1lbnRET01Ob2RlID0gZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50
KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoYmVmb3JlUHNldWRvRWxl
bWVudERPTU5vZGUsICJHb3QgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQgZm9yICN4Iik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVmcmVzaGluZyBzdHlsZXMgZm9yIDo6YmVmb3Jl
IHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICBub2RlU3R5bGVzID0gV2ViSW5zcGVjdG9y
LmNzc1N0eWxlTWFuYWdlci5zdHlsZXNGb3JOb2RlKGJlZm9yZVBzZXVkb0VsZW1lbnRET01Ob2Rl
KTsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RE9NTm9kZVN0eWxlcy5FdmVudC5SZWZyZXNoZWQsIHZhbGlkYXRlU3R5bGVzKTsKKyAgICAgICAg
ICAgIG5vZGVTdHlsZXMucmVmcmVzaCgpOworICAgICAgICB9KTsKKyAgICB9KTsKKworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdGlu
ZyB0aGF0IHdlIGNhbiBnZXQgY29tcHV0ZWQgYW5kIG1hdGNoZWQgcnVsZXMgZm9yIHBzZXVkbyBl
bGVtZW50IG5vZGVzLjwvcD4KKworICAgIDxzdHlsZT4KKyAgICBpbnB1dDpiZWZvcmUsICN4OmJl
Zm9yZSwgZGl2IHsgY29udGVudDogImJlZm9yZSI7IGNvbG9yOiBibHVlOyB9CisgICAgPC9zdHls
ZT4KKworICAgIDxkaXYgaWQ9IngiPlRFU1QgRUxFTUVOVDogSGFzIEJlZm9yZSBQc2V1ZG8gRWxl
bWVudDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJhMzdlMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0OSBAQAorVGVzdCBmb3IgYmFzaWMgRE9NTm9kZSBwc2V1ZG8g
ZWxlbWVudCBzdXBwb3J0LgorCitURVNUIEVMRU1FTlQKKworUEFTUzogR290IERPTU5vZGUgZm9y
ICN4CitQQVNTOiBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKKworQWRkIDpiZWZvcmUK
K0VWRU5UOiBOb2RlSW5zZXJ0ZWQKKworVmVyaWZ5IDpiZWZvcmUgd2FzIGFkZGVkCitQQVNTOiAj
eCBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUgaGFzIDEgcHNldWRv
IGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudAorUEFT
UzogRE9NTm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CitQQVNTOiBO
ZXcgRE9NTm9kZSBpcyB0aGUgYmVmb3JlUHNldWRvRWxlbWVudAorUEFTUzogTmV3IERPTU5vZGUg
aXMgYSBjaGlsZCBvZiAjeAorUEFTUzogTmV3IERPTU5vZGUgaXMgYSBiZWZvcmUgcHNldWRvIGVs
ZW1lbnQKKworUmVtb3ZlIDpiZWZvcmUKK0VWRU5UOiBOb2RlUmVtb3ZlZAorCitWZXJpZnkgOmJl
Zm9yZSB3YXMgcmVtb3ZlZAorUEFTUzogI3ggRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVsZW1lbnRz
CitQQVNTOiBSZW1vdmVkIERPTU5vZGUgd2FzIHRoZSBiZWZvcmUgcHNldWRvIGVsZW1lbnQKK1BB
U1M6IFJlbW92ZWQgRE9NTm9kZSBoYXMgbm8gcGFyZW50CitQQVNTOiBSZW1vdmVkIERPTU5vZGUg
d2FzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CisKK0FkZCA6YWZ0ZXIKK0VWRU5UOiBOb2RlSW5z
ZXJ0ZWQKKworVmVyaWZ5IDphZnRlciB3YXMgYWRkZWQKK1BBU1M6ICN4IERPTU5vZGUgaGFzIHBz
ZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6
IERPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudAorUEFTUzogRE9N
Tm9kZSBoYXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6IE5ldyBET01Ob2RlIGlzIHRo
ZSBhZnRlclBzZXVkb0VsZW1lbnQKK1BBU1M6IE5ldyBET01Ob2RlIGlzIGEgY2hpbGQgb2YgI3gK
K1BBU1M6IE5ldyBET01Ob2RlIGlzIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CisKK1JlbW92ZSA6
YWZ0ZXIKK0VWRU5UOiBOb2RlUmVtb3ZlZAorCitWZXJpZnkgOmFmdGVyIHdhcyByZW1vdmVkCitQ
QVNTOiAjeCBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IFJlbW92ZWQgRE9N
Tm9kZSB3YXMgdGhlIGFmdGVyIHBzZXVkbyBlbGVtZW50CitQQVNTOiBSZW1vdmVkIERPTU5vZGUg
aGFzIG5vIHBhcmVudAorUEFTUzogUmVtb3ZlZCBET01Ob2RlIHdhcyBhbiBhZnRlciBwc2V1ZG8g
ZWxlbWVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1l
bGVtZW50LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVs
ZW1lbnQtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4
YjJkZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVk
by1lbGVtZW50LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDE1NiBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0
ZXN0KCkgeworCisgICAgdmFyIHRlc3RET01Ob2RlID0gbnVsbDsKKyAgICB2YXIgaW5zZXJ0ZWRP
clJlbW92ZWRET01Ob2RlID0gbnVsbDsKKyAgICB2YXIgcHJldmlvdXNJbnNlcnRlZERPTU5vZGUg
PSBudWxsOworCisgICAgdmFyIHN0ZXBzID0gWworICAgICAgICB7CisgICAgICAgICAgICBuYW1l
OiAiQWRkIDpiZWZvcmUiLAorICAgICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgneCcpLmNsYXNzTGlzdC5hZGQoJ2InKSIpOworICAgICAgICAgICAgfQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAiVmVyaWZ5IDpiZWZvcmUgd2FzIGFk
ZGVkIiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHRlc3RET01Ob2RlLmhhc1BzZXVkb0VsZW1lbnRzKCks
ICIjeCBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQodGVzdERPTU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09
PSAxLCAiRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQodGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgp
LCAiRE9NTm9kZSBoYXMgYSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIXRlc3RET01Ob2RlLmFmdGVyUHNldWRvRWxlbWVu
dCgpLCAiRE9NTm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50Iik7CisK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92
ZWRET01Ob2RlID09PSB0ZXN0RE9NTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJOZXcgRE9N
Tm9kZSBpcyB0aGUgYmVmb3JlUHNldWRvRWxlbWVudCIpOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucGFyZW50Tm9kZSA9
PT0gdGVzdERPTU5vZGUsICJOZXcgRE9NTm9kZSBpcyBhIGNoaWxkIG9mICN4Iik7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9k
ZS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3BlY3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBl
LkJlZm9yZSwgIk5ldyBET01Ob2RlIGlzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisKKyAg
ICAgICAgICAgICAgICBwcmV2aW91c0luc2VydGVkRE9NTm9kZSA9IGluc2VydGVkT3JSZW1vdmVk
RE9NTm9kZTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJSZW1vdmUgOmJlZm9yZSIsCisgICAg
ICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXZhbHVhdGVJblBhZ2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4JykuY2xhc3NMaXN0
LnJlbW92ZSgnYicpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG5hbWU6ICJWZXJpZnkgOmJlZm9yZSB3YXMgcmVtb3ZlZCIsCisgICAgICAgICAg
ICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdCghdGVzdERPTU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIiN4IERPTU5vZGUgaGFz
IG5vIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KHRlc3RET01Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMCk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRlc3RET01Ob2RlLmJlZm9yZVBzZXVkb0VsZW1l
bnQoKSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRlc3RET01Ob2Rl
LmFmdGVyUHNldWRvRWxlbWVudCgpKTsKKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUgPT09IHByZXZpb3VzSW5zZXJ0ZWRE
T01Ob2RlLCAiUmVtb3ZlZCBET01Ob2RlIHdhcyB0aGUgYmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1v
dmVkRE9NTm9kZS5wYXJlbnROb2RlID09PSBudWxsLCAiUmVtb3ZlZCBET01Ob2RlIGhhcyBubyBw
YXJlbnQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0
ZWRPclJlbW92ZWRET01Ob2RlLnBzZXVkb1R5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUu
UHNldWRvRWxlbWVudFR5cGUuQmVmb3JlLCAiUmVtb3ZlZCBET01Ob2RlIHdhcyBhIGJlZm9yZSBw
c2V1ZG8gZWxlbWVudCIpOworCisgICAgICAgICAgICAgICAgcHJldmlvdXNJbnNlcnRlZERPTU5v
ZGUgPSBudWxsOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZTogIkFkZCA6YWZ0ZXIiLAorICAgICAg
ICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneCcpLmNsYXNzTGlzdC5h
ZGQoJ2EnKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICBuYW1lOiAiVmVyaWZ5IDphZnRlciB3YXMgYWRkZWQiLAorICAgICAgICAgICAgYWN0aW9u
OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
dGVzdERPTU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIiN4IERPTU5vZGUgaGFzIHBzZXVkbyBl
bGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCh0ZXN0
RE9NTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDEsICJET01Ob2RlIGhhcyAxIHBzZXVk
byBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCgh
dGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBkb2VzIG5vdCBoYXZl
IGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KHRlc3RET01Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBo
YXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUgPT09IHRlc3RET01Ob2Rl
LmFmdGVyUHNldWRvRWxlbWVudCgpLCAiTmV3IERPTU5vZGUgaXMgdGhlIGFmdGVyUHNldWRvRWxl
bWVudCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRl
ZE9yUmVtb3ZlZERPTU5vZGUucGFyZW50Tm9kZSA9PT0gdGVzdERPTU5vZGUsICJOZXcgRE9NTm9k
ZSBpcyBhIGNoaWxkIG9mICN4Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkFmdGVyLCAiTmV3IERPTU5vZGUgaXMgYW4g
YWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAgICAgIHByZXZpb3VzSW5zZXJ0
ZWRET01Ob2RlID0gaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlOworICAgICAgICAgICAgICAgIG5l
eHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
bmFtZTogIlJlbW92ZSA6YWZ0ZXIiLAorICAgICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgneCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2EnKSIpOworICAgICAgICAgICAg
fQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAiVmVyaWZ5IDphZnRl
ciB3YXMgcmVtb3ZlZCIsCisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghdGVzdERPTU5vZGUuaGFzUHNldWRv
RWxlbWVudHMoKSwgIiN4IERPTU5vZGUgaGFzIG5vIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRlc3RET01Ob2RlLnBzZXVkb0VsZW1lbnRz
KCkuc2l6ZSA9PT0gMCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRl
c3RET01Ob2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoIXRlc3RET01Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpKTsKKworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERP
TU5vZGUgPT09IHByZXZpb3VzSW5zZXJ0ZWRET01Ob2RlLCAiUmVtb3ZlZCBET01Ob2RlIHdhcyB0
aGUgYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBhcmVudE5vZGUgPT09IG51bGws
ICJSZW1vdmVkIERPTU5vZGUgaGFzIG5vIHBhcmVudCIpOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucHNldWRvVHlwZSgp
ID09PSBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5BZnRlciwgIlJlbW92
ZWQgRE9NTm9kZSB3YXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAg
ICAgIHByZXZpb3VzSW5zZXJ0ZWRET01Ob2RlID0gbnVsbDsKKyAgICAgICAgICAgICAgICBuZXh0
KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgXTsKKworICAgIGZ1bmN0aW9uIG5l
eHQoKQorICAgIHsKKyAgICAgICAgdmFyIHN0ZXAgPSBzdGVwcy5zaGlmdCgpOworICAgICAgICBp
ZiAoc3RlcCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coc3RlcC5uYW1lKTsKKyAgICAgICAgICAgIHN0ZXAuYWN0aW9u
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFn
ZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIj
eCIsIGZ1bmN0aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgdGVzdERPTU5vZGUgPSBXZWJJbnNw
ZWN0b3IuZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
dGVzdERPTU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI3giKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KCF0ZXN0RE9NTm9kZS5wc2V1ZG9UeXBlKCkpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0RE9NTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAi
RE9NTm9kZSBoYXMgbm8gcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydCh0ZXN0RE9NTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDApOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRlc3RET01Ob2RlLmJlZm9yZVBzZXVkb0Vs
ZW1lbnQoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghdGVzdERPTU5vZGUu
YWZ0ZXJQc2V1ZG9FbGVtZW50KCkpOworICAgICAgICAgICAgbmV4dCgpOworICAgICAgICB9KTsK
KyAgICB9KTsKKworICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5Ob2RlSW5zZXJ0ZWQsIGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIC8vIFRlc3QgbG9nZ2luZyB3aWxsIGFkZCBub2RlcyB0byB0
aGUgdGVzdCBwYWdlLiBJZ25vcmUgYW55IGVsZW1lbnRzIGFkZGVkIHRoYXQgYXJlIG5vdCBjaGls
ZHJlbiBvZiBvdXIgdGVzdCBub2RlLgorICAgICAgICBpZiAoZXZlbnQuZGF0YS5wYXJlbnQgIT09
IHRlc3RET01Ob2RlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJFVkVOVDogTm9kZUluc2VydGVkIik7CisgICAgICAgIGluc2VydGVkT3JSZW1vdmVk
RE9NTm9kZSA9IGV2ZW50LmRhdGEubm9kZTsKKyAgICAgICAgbmV4dCgpOworICAgIH0pOworCisg
ICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVSZW1vdmVkLCBmdW5jdGlvbihldmVudCkgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRVZFTlQ6IE5vZGVSZW1vdmVkIik7CisgICAgICAg
IGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZSA9IGV2ZW50LmRhdGEubm9kZTsKKyAgICAgICAgbmV4
dCgpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+CisgICAgPHA+VGVzdCBmb3IgYmFzaWMgRE9NTm9kZSBwc2V1ZG8gZWxlbWVudCBzdXBw
b3J0LjwvcD4KKworICAgIDxzdHlsZT4KKyAgICAuYjpiZWZvcmUgeyBjb250ZW50OiAiYmVmb3Jl
IjsgfQorICAgIC5hOmFmdGVyIHsgY29udGVudDogImFmdGVyIjsgfQorICAgIDwvc3R5bGU+CisK
KyAgICA8ZGl2IGlkPSJ4Ij5URVNUIEVMRU1FTlQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGlj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQt
c3RhdGljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
OGVjZjZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1
ZG8tZWxlbWVudC1zdGF0aWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK1Rlc3QgZm9y
IGJhc2ljIERPTU5vZGUgcHNldWRvIGVsZW1lbnQgc3VwcG9ydC4KKworVEVTVCBFTEVNRU5UOiBO
byBQc2V1ZG8gRWxlbWVudHMKK1RFU1QgRUxFTUVOVDogSGFzIEJlZm9yZSBQc2V1ZG8gRWxlbWVu
dAorVEVTVCBFTEVNRU5UOiBIYXMgQWZ0ZXIgUHNldWRvIEVsZW1lbnQKK1RFU1QgRUxFTUVOVDog
SGFzIEJlZm9yZSBhbmQgQWZ0ZXIgUHNldWRvIEVsZW1lbnRzCisKK1BBU1M6IEdvdCBET01Ob2Rl
IGZvciAjbm9uZQorUEFTUzogRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVsZW1lbnRzCisKK1BBU1M6
IEdvdCBET01Ob2RlIGZvciAjYgorUEFTUzogRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzCitQ
QVNTOiBET01Ob2RlIGhhcyAxIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgYSBi
ZWZvcmUgcHNldWRvIGVsZW1lbnQKK1BBU1M6IERPTU5vZGUgZG9lcyBub3QgaGF2ZSBhbiBhZnRl
ciBwc2V1ZG8gZWxlbWVudAorUEFTUzogRE9NTm9kZSBmb3IgYmVmb3JlIHBzZXVkbyBlbGVtZW50
IGhhcyB0aGUgcmlnaHQgdHlwZQorCitQQVNTOiBHb3QgRE9NTm9kZSBmb3IgI2EKK1BBU1M6IERP
TU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxl
bWVudHMKK1BBU1M6IERPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVu
dAorUEFTUzogRE9NTm9kZSBoYXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6IERPTU5v
ZGUgZm9yIGFmdGVyIHBzZXVkbyBlbGVtZW50IGhhcyB0aGUgcmlnaHQgdHlwZQorCitQQVNTOiBH
b3QgRE9NTm9kZSBmb3IgI3gKK1BBU1M6IERPTU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50cworUEFT
UzogRE9NTm9kZSBoYXMgMiBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUgaGFzIGEgYmVm
b3JlIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01Ob2RlIGhhcyBhbiBhZnRlciBwc2V1ZG8gZWxl
bWVudAorUEFTUzogRE9NTm9kZSBmb3IgYmVmb3JlIHBzZXVkbyBlbGVtZW50IGhhcyB0aGUgcmln
aHQgdHlwZQorUEFTUzogRE9NTm9kZSBmb3IgYWZ0ZXIgcHNldWRvIGVsZW1lbnQgaGFzIHRoZSBy
aWdodCB0eXBlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRv
LWVsZW1lbnQtc3RhdGljLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1l
bGVtZW50LXN0YXRpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0
ZjFjNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVk
by1lbGVtZW50LXN0YXRpYy5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVz
dCgpIHsKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1
bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFn
ZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjbm9uZSIsIGZ1bmN0aW9uKG5vZGVJ
ZCkgeworICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFn
ZXIubm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSwgIkdvdCBET01O
b2RlIGZvciAjbm9uZSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWRvbU5v
ZGUucHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCgh
ZG9tTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAiRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVsZW1l
bnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChkb21Ob2RlLnBzZXVkb0Vs
ZW1lbnRzKCkuc2l6ZSA9PT0gMCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCgh
ZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoIWRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpOworICAgICAgICB9KTsKKwor
ICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVu
dE5vZGUuaWQsICIjYiIsIGZ1bmN0aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgdmFyIGRvbU5v
ZGUgPSBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZvciAjYiIpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoIWRvbU5vZGUucHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICJE
T01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChkb21Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMSwgIkRPTU5vZGUg
aGFzIDEgcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQoZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhIGJlZm9y
ZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KCFkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBkb2VzIG5vdCBoYXZlIGFu
IGFmdGVyIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQoZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCkucHNldWRvVHlwZSgpID09PSBXZWJJ
bnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5CZWZvcmUsICJET01Ob2RlIGZvciBi
ZWZvcmUgcHNldWRvIGVsZW1lbnQgaGFzIHRoZSByaWdodCB0eXBlIik7CisgICAgICAgIH0pOwor
CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3Vt
ZW50Tm9kZS5pZCwgIiNhIiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgICAgICB2YXIgZG9t
Tm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNhIik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZG9tTm9kZS5wc2V1ZG9UeXBlKCkpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwg
IkRPTU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGRvbU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAxLCAiRE9NTm9k
ZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdCghZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGRvZXMgbm90
IGhhdmUgYSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBoYXMg
YW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLnBzZXVkb1R5cGUoKSA9PT0gV2Vi
SW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJET01Ob2RlIGZvciBh
ZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1l
bnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgICAgIHZhciBkb21O
b2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGRvbU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI3giKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KCFkb21Ob2RlLnBzZXVkb1R5cGUoKSk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAi
RE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZG9tTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDIsICJET01Ob2Rl
IGhhcyAyIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KGRvbU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBoYXMgYSBiZWZv
cmUgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBoYXMgYW4gYWZ0ZXIgcHNl
dWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21O
b2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3BlY3Rvci5E
T01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkJlZm9yZSwgIkRPTU5vZGUgZm9yIGJlZm9yZSBwc2V1
ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLnBzZXVkb1R5cGUoKSA9
PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJET01Ob2Rl
IGZvciBhZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0pOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+
VGVzdCBmb3IgYmFzaWMgRE9NTm9kZSBwc2V1ZG8gZWxlbWVudCBzdXBwb3J0LjwvcD4KKworICAg
IDxzdHlsZT4KKyAgICAjeDpiZWZvcmUsICNiOmJlZm9yZSB7IGNvbnRlbnQ6ICJiZWZvcmUiOyB9
CisgICAgI3g6YWZ0ZXIsICNhOmFmdGVyIHsgY29udGVudDogImFmdGVyIjsgfQorICAgIDwvc3R5
bGU+CisKKyAgICA8ZGl2IGlkPSJub25lIj5URVNUIEVMRU1FTlQ6IE5vIFBzZXVkbyBFbGVtZW50
czwvZGl2PgorICAgIDxkaXYgaWQ9ImIiPlRFU1QgRUxFTUVOVDogSGFzIEJlZm9yZSBQc2V1ZG8g
RWxlbWVudDwvZGl2PgorICAgIDxkaXYgaWQ9ImEiPlRFU1QgRUxFTUVOVDogSGFzIEFmdGVyIFBz
ZXVkbyBFbGVtZW50PC9kaXY+CisgICAgPGRpdiBpZD0ieCI+VEVTVCBFTEVNRU5UOiBIYXMgQmVm
b3JlIGFuZCBBZnRlciBQc2V1ZG8gRWxlbWVudHM8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggM2VhNmQzZS4uYjZjMGU0MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDctMjQgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTaG93IFBz
ZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb246CisgICAgICAg
IEFkZCBuZXcgcHJvcGVydGllcyB0byBET01Ob2RlIGlmIGl0IGlzIGEgcHNldWRvIGVsZW1lbnQg
b3IgaWYgaXQgaGFzCisgICAgICAgIHBzZXVkbyBlbGVtZW50IGNoaWxkcmVuLiBBZGQgbmV3IGV2
ZW50cyBmb3IgaWYgYSBwc2V1ZG8gZWxlbWVudCBpcworICAgICAgICBhZGRlZCBvciByZW1vdmVk
IGR5bmFtaWNhbGx5IHRvIGFuIGV4aXN0aW5nIERPTU5vZGUuCisKIDIwMTUtMDctMjIgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBUaW1lbGluZSBzaG91bGQgaW1tZWRpYXRlbHkgc3RhcnQgbW92aW5nIHBsYXkgaGVhZCB3aGVu
IHN0YXJ0aW5nIGEgbmV3IHJlY29yZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KaW5kZXggNWUyOGRkYS4uYjMyYjRlMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RPTS5qc29uCkBA
IC0xNCw2ICsxNCwxMiBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBET00g
bm9kZSBpZGVudGlmaWVyIHVzZWQgdG8gcmVmZXJlbmNlIGEgbm9kZSB0aGF0IG1heSBub3QgaGF2
ZSBiZWVuIHB1c2hlZCB0byB0aGUgZnJvbnQtZW5kLiIKICAgICAgICAgfSwKICAgICAgICAgewor
ICAgICAgICAgICAgImlkIjogIlBzZXVkb1R5cGUiLAorICAgICAgICAgICAgInR5cGUiOiAic3Ry
aW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJiZWZvcmUiLCAiYWZ0ZXIiXSwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJQc2V1ZG8gZWxlbWVudCB0eXBlLiIKKyAgICAgICAgfSwKKyAg
ICAgICAgewogICAgICAgICAgICAgImlkIjogIkxpdmVSZWdpb25SZWxldmFudCIsCiAgICAgICAg
ICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImVudW0iOiBbImFkZGl0aW9ucyIs
ICJyZW1vdmFscyIsICJ0ZXh0Il0sCkBAIC0zOSwxMCArNDUsMTIgQEAKICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInhtbFZlcnNpb24iLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+RG9jdW1lbnQ8L2NvZGU+J3MgWE1MIHZlcnNpb24g
aW4gY2FzZSBvZiBYTUwgZG9jdW1lbnRzLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiPGNvZGU+QXR0cjwvY29kZT4ncyBuYW1lLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInZhbHVlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIjxjb2RlPkF0dHI8L2NvZGU+J3MgdmFsdWUuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicHNldWRvVHlwZSIsICIkcmVmIjogIlBzZXVkb1R5cGUiLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnQgdHlwZSBmb3IgdGhpcyBub2RlLiIg
fSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAiJHJlZiI6ICJOZXR3b3Jr
LkZyYW1lSWQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiRnJhbWUgSUQgZm9y
IGZyYW1lIG93bmVyIGVsZW1lbnRzLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNv
bnRlbnREb2N1bWVudCIsICIkcmVmIjogIk5vZGUiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiQ29udGVudCBkb2N1bWVudCBmb3IgZnJhbWUgb3duZXIgZWxlbWVudHMuIiB9LAog
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2hhZG93Um9vdHMiLCAidHlwZSI6ICJhcnJheSIs
ICJvcHRpb25hbCI6IHRydWUsICJpdGVtcyI6IHsgIiRyZWYiOiAiTm9kZSIgfSwgImRlc2NyaXB0
aW9uIjogIlNoYWRvdyByb290IGxpc3QgZm9yIGdpdmVuIGVsZW1lbnQgaG9zdC4iIH0sCiAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZW1wbGF0ZUNvbnRlbnQiLCAiJHJlZiI6ICJOb2RlIiwg
Im9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbnRlbnQgZG9jdW1lbnQgZnJhZ21l
bnQgZm9yIHRlbXBsYXRlIGVsZW1lbnRzIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
cHNldWRvRWxlbWVudHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiTm9k
ZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlBzZXVkbyBlbGVtZW50cyBh
c3NvY2lhdGVkIHdpdGggdGhpcyBub2RlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InJvbGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiQ29tcHV0ZWQgdmFsdWUgZm9yIGZpcnN0IHJlY29nbml6ZWQgcm9sZSB0b2tlbiwgZGVmYXVs
dCByb2xlIHBlciBlbGVtZW50LCBvciBvdmVycmlkZGVuIHJvbGUuIiB9CiAgICAgICAgICAgICBd
LAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRPTSBpbnRlcmFjdGlvbiBpcyBpbXBsZW1l
bnRlZCBpbiB0ZXJtcyBvZiBtaXJyb3Igb2JqZWN0cyB0aGF0IHJlcHJlc2VudCB0aGUgYWN0dWFs
IERPTSBub2Rlcy4gRE9NTm9kZSBpcyBhIGJhc2Ugbm9kZSBtaXJyb3IgdHlwZS4iCkBAIC01MjYs
NiArNTM0LDIyIEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyb290SWQiLCAiJHJlZiI6
ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiU2hhZG93IHJvb3QgaWQuIiB9CiAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNhbGxlZCB3aGVuIHNoYWRvdyByb290
IGlzIHBvcHBlZCBmcm9tIHRoZSBlbGVtZW50LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAicHNldWRvRWxlbWVudEFkZGVkIiwKKyAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFyZW50SWQiLCAiJHJlZiI6
ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnQncyBwYXJlbnQgZWxlbWVu
dCBpZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwc2V1ZG9FbGVtZW50IiwgIiRy
ZWYiOiAiTm9kZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkZWQgcHNldWRvIGVsZW1lbnQuIiB9
CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNhbGxlZCB3aGVu
IGEgcHNldWRvIGVsZW1lbnQgaXMgYWRkZWQgdG8gYW4gZWxlbWVudC4iCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBzZXVkb0VsZW1lbnRSZW1vdmVkIiwKKyAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFy
ZW50SWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnQn
cyBwYXJlbnQgZWxlbWVudCBpZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwc2V1
ZG9FbGVtZW50SWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlbW92
ZWQgcHNldWRvIGVsZW1lbnQgaWQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIkNhbGxlZCB3aGVuIGEgcHNldWRvIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9t
IGFuIGVsZW1lbnQuIgogICAgICAgICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE2NjhjYWYu
LjQ3ZDFiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw4MCBAQAogMjAxNS0wNy0yNCAgSm9zZXBo
IFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IFNob3cgUHNldWRvIEVsZW1lbnRzIGluIERPTSBUcmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxl
bWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLmh0bWwKKyAgICAgICAgICAgICAg
IGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy5odG1sCisgICAgICAgICAgICAg
ICBpbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0YXRpYy5odG1sCisKKyAgICAgICAgTXVj
aCBvZiB0aGlzIHBhdGNoIHdhcyBtb2RlbGxlZCBhZnRlciB0aGUgQmxpbmsgaW1wbGVtZW50YXRp
b24gb2YKKyAgICAgICAgcHNldWRvIGVsZW1lbnQgaW5zcGVjdGlvbi4KKworICAgICAgICAqIGRv
bS9Qc2V1ZG9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL1BzZXVkb0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UHNldWRvRWxlbWVudDo6flBzZXVkb0VsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UHNldWRvRWxlbWVudDo6Y2xlYXJIb3N0RWxlbWVudCk6CisgICAgICAgIFNpbmNl
IEluc3BlY3RvckRPTUFnZW50IG1heSBob2xkIGEgcmVmZXJlbmNlIHRvIHRoaXMgUHNldWRvRWxl
bWVudCB3ZQorICAgICAgICBjYW4ndCByZXBvcnQgaXQgYXMgZGVzdHJveWVkIGluIHRoZSBkZXN0
cnVjdG9yLCBhcyB0aGF0IHdvdWxkbid0IGJlCisgICAgICAgIHJlYWNoZWQgaWYgdGhlIGluc3Bl
Y3RvciBob2xkcyBhIHJlZmVyZW5jZS4gTW92ZSB0aGlzIHRvIHdoZW4gdGhlCisgICAgICAgIHBz
dWVkbyBlbGVtZW50IGlzIGRpc2Nvbm5lY3RlZCwgd2hpY2ggaXMgaW1tZWRpYXRlbHkgYmVmb3Jl
IGRlc3RydWN0aW9uLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9kZSk6CisgICAg
ICAgIFdoZW4gY29tcHV0aW5nIHN0eWxlcyBmb3IgYSBwc2V1ZG8gZWxlbWVudCwgY29tcHV0ZSBz
dHlsZXMgZnJvbSB0aGUKKyAgICAgICAgaG9zdCBlbGVtZW50IGZvciBqdXN0IHRoZSBwc2V1ZG8g
ZWxlbWVudCdzIHBzZXVkbyB0eXBlLiBMaWtld2lzZQorICAgICAgICBvbmx5IGluY2x1ZGUgbWF0
Y2hlZCByZXN1bHRzLCBub3QgaW5oZXJpdGVkIG9yIG90aGVycy4KKworICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVsZUxpc3QpOgorICAg
ICAgICBBZGQgdGhlIHBzZXVkbyB0eXBlIHRvIHRoZSBjaGVja2VyIGNvbnRleHQgdG8gdHJ5IGFu
ZCBkZXRlY3QgZXhhY3RseQorICAgICAgICB3aGljaCBzZWxlY3RvciBpbiBhIGxpc3Qgb2Ygc2Vs
ZWN0b3JzIG1hdGNoZWQgdGhlIHBzZXVkbyBlbGVtZW50LgorCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojp1bmJpbmQpOgor
ICAgICAgICBXaGVuIHVuYmluZGluZyBhbiBlbGVtZW50LCBhbHNvIHVuYmluZCBhbnkgcHNldWRv
IGVsZW1lbnQgY2hpbGRyZW4KKyAgICAgICAgaXQgbWF5IGhhdmUgaGFkIGFuZCBib3VuZC4KKwor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmFzc2VydEVkaXRhYmxlTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWRpdGFibGVFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpyZW1vdmVOb2RlKToK
KyAgICAgICAgSW1wcm92ZSBncmFtbWFyIGluIGVycm9yIG1lc3NhZ2UuIERvbid0IGFsbG93IGVk
aXRpbmcgcHNldWRvIGVsZW1lbnRzLgorCisgICAgICAgIChXZWJDb3JlOjpwc2V1ZG9FbGVtZW50
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RG
b3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZEFycmF5
Rm9yUHNldWRvRWxlbWVudHMpOgorICAgICAgICBJZiBhIG5vZGUgaXMgYSBwc2V1ZG8gZWxlbWVu
dCBpbmNsdWRlIGl0cyBwc2V1ZG9UeXBlLgorICAgICAgICBJZiBhIG5vZGUgaGFzIHBzZXVkbyBl
bGVtZW50IGNoaWxkcmVuIGluY2x1ZGUgdGhlbS4KKworICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRE9NQWdlbnQ6OnBzZXVkb0VsZW1lbnRDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTUFnZW50Ojpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKToKKyAgICAgICAgV2hlbiBw
c2V1ZG8gZWxlbWVudHMgYXJlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgb3IgZGVzdHJveWVkCisgICAg
ICAgIHB1c2ggcHNldWRvIGVsZW1lbnQgbm9kZXMgdG8gdGhlIGZyb250ZW5kIGlmIG5lZWRlZC4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50Q3Jl
YXRlZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpw
c2V1ZG9FbGVtZW50RGVzdHJveWVkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpwc2V1ZG9FbGVtZW50Q3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsYXllclRyZWVEaWRDaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpyZW5kZXJMYXllckRlc3Ry
b3llZCk6CisgICAgICAgIFBsdW1iaW5nIGZvciBwc2V1ZG8gZWxlbWVudCBjcmVhdGVkL2Rlc3Ry
b3llZCBldmVudHMuCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjphdHRhY2hCZWZvcmVPckFmdGVyUHNldWRvRWxlbWVudElm
TmVlZGVkKToKKyAgICAgICAgVGhpcyBpcyB0aGUgb25seSBwbGFjZSBhIHBzZXVkbyBlbGVtZW50
IGlzIGNyZWF0ZWQsIGluZm9ybSB0aGUgaW5zcGVjdG9yLgorCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRPYmplY3RGb3JF
bGVtZW50RGF0YSk6CisgICAgICAgIFVwZGF0ZSB0aGUgZWxlbWVudCBkYXRhIGZvciB0aGUgbm9k
ZSBoaWdobGlnaHQgbGFiZWwgdG8gaW5jbHVkZSB0aGUKKyAgICAgICAgaG9zdCBlbGVtZW50J3Mg
c2VsZWN0b3IgYW5kIHRoZSBwc2V1ZG8gZWxlbWVudCBzZWxlY3Rvci4KKworMjAxNS0wNy0yNCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIENTUyAiY29u
dGVudCIgcHJvcGVydHkgaXMgbWlzc2luZyBpbiBnZXRDb21wdXRlZFN0eWxlcwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjU1CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCA5MzJiNzFiLi5mZTExZmVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC02Nyw3ICs2NywxMyBAQCBQc2V1ZG9FbGVtZW50
OjpQc2V1ZG9FbGVtZW50KEVsZW1lbnQmIGhvc3QsIFBzZXVkb0lkIHBzZXVkb0lkKQogUHNldWRv
RWxlbWVudDo6flBzZXVkb0VsZW1lbnQoKQogewogICAgIEFTU0VSVCghbV9ob3N0RWxlbWVudCk7
Cit9CisKK3ZvaWQgUHNldWRvRWxlbWVudDo6Y2xlYXJIb3N0RWxlbWVudCgpCit7CiAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkKGRvY3VtZW50KCku
cGFnZSgpLCAqdGhpcyk7CisKKyAgICBtX2hvc3RFbGVtZW50ID0gbnVsbHB0cjsKIH0KIAogUmVm
UHRyPFJlbmRlclN0eWxlPiBQc2V1ZG9FbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVyKFJl
bmRlclN0eWxlJiBwYXJlbnRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
c2V1ZG9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5oCmluZGV4
IDljZTJiYWMuLjU4MWUxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuaApAQCAtNDMs
NyArNDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UHNldWRvRWxlbWVudCgpOwogCiAgICAg
RWxlbWVudCogaG9zdEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2hvc3RFbGVtZW50OyB9Ci0g
ICAgdm9pZCBjbGVhckhvc3RFbGVtZW50KCkgeyBtX2hvc3RFbGVtZW50ID0gbnVsbHB0cjsgfQor
ICAgIHZvaWQgY2xlYXJIb3N0RWxlbWVudCgpOwogCiAgICAgdmlydHVhbCBSZWZQdHI8UmVuZGVy
U3R5bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoUmVuZGVyU3R5bGUmIHBhcmVudFN0eWxlKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRl
eCAzZDA2MjA4Li5mMTk0YmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJOYW1lZEZsb3dD
b2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCisj
aW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd0ZyYWdt
ZW50LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JD
aGVja2VyLmgiCkBAIC01MDksNDkgKzUxMCw2MSBAQCB2b2lkIEluc3BlY3RvckNTU0FnZW50Ojpn
ZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludCBubwog
ICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgRWxlbWVudCogb3JpZ2lu
YWxFbGVtZW50ID0gZWxlbWVudDsKKyAgICBQc2V1ZG9JZCBlbGVtZW50UHNldWRvSWQgPSBlbGVt
ZW50LT5wc2V1ZG9JZCgpOworICAgIGlmIChlbGVtZW50UHNldWRvSWQpIHsKKyAgICAgICAgZWxl
bWVudCA9IGRvd25jYXN0PFBzZXVkb0VsZW1lbnQ+KCplbGVtZW50KS5ob3N0RWxlbWVudCgpOwor
ICAgICAgICBpZiAoIWVsZW1lbnQpIHsKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlM
aXRlcmFsKCJQc2V1ZG8gZWxlbWVudCBoYXMgbm8gcGFyZW50Iik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICB9CisKICAgICAvLyBNYXRjaGVkIHJ1bGVzLgogICAgIFN0eWxl
UmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIgPSBlbGVtZW50LT5kb2N1bWVudCgpLmVuc3VyZVN0eWxl
UmVzb2x2ZXIoKTsKLSAgICBhdXRvIG1hdGNoZWRSdWxlcyA9IHN0eWxlUmVzb2x2ZXIuc3R5bGVS
dWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgU3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMpOwotICAg
IG1hdGNoZWRDU1NSdWxlcyA9IGJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVsZUxpc3QobWF0Y2hlZFJ1
bGVzLCBzdHlsZVJlc29sdmVyLCBlbGVtZW50KTsKKyAgICBhdXRvIG1hdGNoZWRSdWxlcyA9IHN0
eWxlUmVzb2x2ZXIucHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgZWxlbWVudFBz
ZXVkb0lkLCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7CisgICAgbWF0Y2hlZENTU1J1bGVz
ID0gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVzb2x2
ZXIsIGVsZW1lbnQsIGVsZW1lbnRQc2V1ZG9JZCk7CiAKLSAgICAvLyBQc2V1ZG8gZWxlbWVudHMu
Ci0gICAgaWYgKCFpbmNsdWRlUHNldWRvIHx8ICppbmNsdWRlUHNldWRvKSB7Ci0gICAgICAgIGF1
dG8gcHNldWRvRWxlbWVudHMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz46OmNyZWF0ZSgpOwotICAgICAgICBmb3Ig
KFBzZXVkb0lkIHBzZXVkb0lkID0gRklSU1RfUFVCTElDX1BTRVVET0lEOyBwc2V1ZG9JZCA8IEFG
VEVSX0xBU1RfSU5URVJOQUxfUFNFVURPSUQ7IHBzZXVkb0lkID0gc3RhdGljX2Nhc3Q8UHNldWRv
SWQ+KHBzZXVkb0lkICsgMSkpIHsKLSAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5
bGVSZXNvbHZlci5wc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBwc2V1ZG9JZCwg
U3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMpOwotICAgICAgICAgICAgaWYgKCFtYXRjaGVkUnVs
ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBtYXRjaGVzID0gSW5zcGVjdG9y
OjpQcm90b2NvbDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6OmNyZWF0ZSgpCi0gICAgICAgICAgICAg
ICAgICAgIC5zZXRQc2V1ZG9JZChzdGF0aWNfY2FzdDxpbnQ+KHBzZXVkb0lkKSkKLSAgICAgICAg
ICAgICAgICAgICAgLnNldE1hdGNoZXMoYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRj
aGVkUnVsZXMsIHN0eWxlUmVzb2x2ZXIsIGVsZW1lbnQpKQorICAgIGlmICghb3JpZ2luYWxFbGVt
ZW50LT5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICAvLyBQc2V1ZG8gZWxlbWVudHMuCisg
ICAgICAgIGlmICghaW5jbHVkZVBzZXVkbyB8fCAqaW5jbHVkZVBzZXVkbykgeworICAgICAgICAg
ICAgYXV0byBwc2V1ZG9FbGVtZW50cyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzPjo6Y3JlYXRlKCk7CisgICAgICAg
ICAgICBmb3IgKFBzZXVkb0lkIHBzZXVkb0lkID0gRklSU1RfUFVCTElDX1BTRVVET0lEOyBwc2V1
ZG9JZCA8IEFGVEVSX0xBU1RfSU5URVJOQUxfUFNFVURPSUQ7IHBzZXVkb0lkID0gc3RhdGljX2Nh
c3Q8UHNldWRvSWQ+KHBzZXVkb0lkICsgMSkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIG1hdGNo
ZWRSdWxlcyA9IHN0eWxlUmVzb2x2ZXIucHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVu
dCwgcHNldWRvSWQsIFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIW1hdGNoZWRSdWxlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0
byBtYXRjaGVzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6OmNy
ZWF0ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAuc2V0UHNldWRvSWQoc3RhdGljX2Nhc3Q8
aW50Pihwc2V1ZG9JZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAuc2V0TWF0Y2hlcyhidWls
ZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgZWxl
bWVudCwgcHNldWRvSWQpKQorICAgICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcHNldWRvRWxlbWVudHMtPmFkZEl0ZW0oV1RGOjptb3ZlKG1hdGNo
ZXMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBz
ZXVkb0lkTWF0Y2hlcyA9IFdURjo6bW92ZShwc2V1ZG9FbGVtZW50cyk7CisgICAgICAgIH0KKwor
ICAgICAgICAvLyBJbmhlcml0ZWQgc3R5bGVzLgorICAgICAgICBpZiAoIWluY2x1ZGVJbmhlcml0
ZWQgfHwgKmluY2x1ZGVJbmhlcml0ZWQpIHsKKyAgICAgICAgICAgIGF1dG8gZW50cmllcyA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6SW5oZXJp
dGVkU3R5bGVFbnRyeT46OmNyZWF0ZSgpOworICAgICAgICAgICAgRWxlbWVudCogcGFyZW50RWxl
bWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsKKyAgICAgICAgICAgIHdoaWxlIChwYXJl
bnRFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgU3R5bGVSZXNvbHZlciYgcGFyZW50U3R5bGVS
ZXNvbHZlciA9IHBhcmVudEVsZW1lbnQtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigp
OworICAgICAgICAgICAgICAgIGF1dG8gcGFyZW50TWF0Y2hlZFJ1bGVzID0gcGFyZW50U3R5bGVS
ZXNvbHZlci5zdHlsZVJ1bGVzRm9yRWxlbWVudChwYXJlbnRFbGVtZW50LCBTdHlsZVJlc29sdmVy
OjpBbGxDU1NSdWxlcyk7CisgICAgICAgICAgICAgICAgYXV0byBlbnRyeSA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkNTUzo6SW5oZXJpdGVkU3R5bGVFbnRyeTo6Y3JlYXRlKCkKKyAgICAgICAgICAg
ICAgICAgICAgLnNldE1hdGNoZWRDU1NSdWxlcyhidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0
KHBhcmVudE1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgcGFyZW50RWxlbWVudCwgTk9QU0VV
RE8pKQogICAgICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOwotICAgICAgICAgICAgICAgIHBz
ZXVkb0VsZW1lbnRzLT5hZGRJdGVtKFdURjo6bW92ZShtYXRjaGVzKSk7CisgICAgICAgICAgICAg
ICAgaWYgKHBhcmVudEVsZW1lbnQtPnN0eWxlKCkgJiYgcGFyZW50RWxlbWVudC0+c3R5bGUoKS0+
bGVuZ3RoKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklu
bGluZVN0eWxlKiBzdHlsZVNoZWV0ID0gYXNJbnNwZWN0b3JTdHlsZVNoZWV0KHBhcmVudEVsZW1l
bnQpOworICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGVTaGVldCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGVudHJ5LT5zZXRJbmxpbmVTdHlsZShzdHlsZVNoZWV0LT5idWlsZE9iamVjdEZv
clN0eWxlKHN0eWxlU2hlZXQtPnN0eWxlRm9ySWQoSW5zcGVjdG9yQ1NTSWQoc3R5bGVTaGVldC0+
aWQoKSwgMCkpKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZW50cmll
cy0+YWRkSXRlbShXVEY6Om1vdmUoZW50cnkpKTsKKyAgICAgICAgICAgICAgICBwYXJlbnRFbGVt
ZW50ID0gcGFyZW50RWxlbWVudC0+cGFyZW50RWxlbWVudCgpOwogICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgcHNldWRvSWRNYXRjaGVzID0gV1RGOjptb3ZlKHBzZXVkb0VsZW1l
bnRzKTsKLSAgICB9CiAKLSAgICAvLyBJbmhlcml0ZWQgc3R5bGVzLgotICAgIGlmICghaW5jbHVk
ZUluaGVyaXRlZCB8fCAqaW5jbHVkZUluaGVyaXRlZCkgewotICAgICAgICBhdXRvIGVudHJpZXMg
PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6Oklu
aGVyaXRlZFN0eWxlRW50cnk+OjpjcmVhdGUoKTsKLSAgICAgICAgRWxlbWVudCogcGFyZW50RWxl
bWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsKLSAgICAgICAgd2hpbGUgKHBhcmVudEVs
ZW1lbnQpIHsKLSAgICAgICAgICAgIFN0eWxlUmVzb2x2ZXImIHBhcmVudFN0eWxlUmVzb2x2ZXIg
PSBwYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2ZXIoKTsKLSAgICAg
ICAgICAgIGF1dG8gcGFyZW50TWF0Y2hlZFJ1bGVzID0gcGFyZW50U3R5bGVSZXNvbHZlci5zdHls
ZVJ1bGVzRm9yRWxlbWVudChwYXJlbnRFbGVtZW50LCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxl
cyk7Ci0gICAgICAgICAgICBhdXRvIGVudHJ5ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJ
bmhlcml0ZWRTdHlsZUVudHJ5OjpjcmVhdGUoKQotICAgICAgICAgICAgICAgIC5zZXRNYXRjaGVk
Q1NTUnVsZXMoYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChwYXJlbnRNYXRjaGVkUnVsZXMs
IHN0eWxlUmVzb2x2ZXIsIHBhcmVudEVsZW1lbnQpKQotICAgICAgICAgICAgICAgIC5yZWxlYXNl
KCk7Ci0gICAgICAgICAgICBpZiAocGFyZW50RWxlbWVudC0+c3R5bGUoKSAmJiBwYXJlbnRFbGVt
ZW50LT5zdHlsZSgpLT5sZW5ndGgoKSkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclN0eWxl
U2hlZXRGb3JJbmxpbmVTdHlsZSogc3R5bGVTaGVldCA9IGFzSW5zcGVjdG9yU3R5bGVTaGVldChw
YXJlbnRFbGVtZW50KTsKLSAgICAgICAgICAgICAgICBpZiAoc3R5bGVTaGVldCkKLSAgICAgICAg
ICAgICAgICAgICAgZW50cnktPnNldElubGluZVN0eWxlKHN0eWxlU2hlZXQtPmJ1aWxkT2JqZWN0
Rm9yU3R5bGUoc3R5bGVTaGVldC0+c3R5bGVGb3JJZChJbnNwZWN0b3JDU1NJZChzdHlsZVNoZWV0
LT5pZCgpLCAwKSkpKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZW50cmllcy0+YWRk
SXRlbShXVEY6Om1vdmUoZW50cnkpKTsKLSAgICAgICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJl
bnRFbGVtZW50LT5wYXJlbnRFbGVtZW50KCk7CisgICAgICAgICAgICBpbmhlcml0ZWRFbnRyaWVz
ID0gV1RGOjptb3ZlKGVudHJpZXMpOwogICAgICAgICB9Ci0KLSAgICAgICAgaW5oZXJpdGVkRW50
cmllcyA9IFdURjo6bW92ZShlbnRyaWVzKTsKICAgICB9CiB9CiAKQEAgLTkxMiwxMSArOTI1LDEy
IEBAIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNT
U0FnZW50OjpidWlsZE9iamVjdEZvclJ1bGUoCiAgICAgcmV0dXJuIGluc3BlY3RvclN0eWxlU2hl
ZXQgPyBpbnNwZWN0b3JTdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclJ1bGUocnVsZSwgbnVsbHB0
cikgOiBudWxscHRyOwogfQogCi1SZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVp
bGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+
JiBtYXRjaGVkUnVsZXMsIFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIEVsZW1lbnQqIGVs
ZW1lbnQpCitSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRBcnJheUZvck1h
dGNoZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiBtYXRjaGVkUnVs
ZXMsIFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIEVsZW1lbnQqIGVsZW1lbnQsIFBzZXVk
b0lkIHBzdWVkb0lkKQogewogICAgIGF1dG8gcmVzdWx0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+OjpjcmVhdGUoKTsKIAog
ICAgIFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0IGNvbnRleHQoU2VsZWN0b3JDaGVj
a2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXMpOworICAgIGNvbnRleHQucHNldWRvSWQgPSBwc3Vl
ZG9JZCA/IHBzdWVkb0lkIDogZWxlbWVudC0+cHNldWRvSWQoKTsKICAgICBTZWxlY3RvckNoZWNr
ZXIgc2VsZWN0b3JDaGVja2VyKGVsZW1lbnQtPmRvY3VtZW50KCkpOwogCiAgICAgZm9yIChhdXRv
JiBtYXRjaGVkUnVsZSA6IG1hdGNoZWRSdWxlcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAppbmRleCBhNjMwZmU1Li4yM2JlYWUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtMTQ4LDcgKzE0OCw3
IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NS
dWxlPiBidWlsZE9iamVjdEZvclJ1bGUoU3R5bGVSdWxlKiwgU3R5bGVSZXNvbHZlciYsIEVsZW1l
bnQqKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBidWls
ZE9iamVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKik7Ci0gICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoPj4gYnVpbGRB
cnJheUZvck1hdGNoZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+Jiwg
U3R5bGVSZXNvbHZlciYsIEVsZW1lbnQqKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBidWlsZEFycmF5
Rm9yTWF0Y2hlZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4mLCBTdHls
ZVJlc29sdmVyJiwgRWxlbWVudCosIFBzZXVkb0lkKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4gYnVpbGRPYmplY3RGb3JBdHRyaWJ1dGVzU3R5bGUoRWxl
bWVudCopOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6
OlByb3RvY29sOjpDU1M6OlJlZ2lvbj4+IGJ1aWxkQXJyYXlGb3JSZWdpb25zKEVycm9yU3RyaW5n
JiwgUmVmUHRyPE5vZGVMaXN0PiYmLCBpbnQgZG9jdW1lbnROb2RlSWQpOwogICAgIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpDU1M6Ok5hbWVkRmxvdz4gYnVpbGRPYmplY3RGb3JOYW1lZEZs
b3coRXJyb3JTdHJpbmcmLCBXZWJLaXROYW1lZEZsb3cqLCBpbnQgZG9jdW1lbnROb2RlSWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXgg
NzE5Zjc2MS4uOTE3Nzc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBz
ZXVkb0VsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRl
clN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKQEAgLTMzMiw4ICsz
MzMsMTMgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVU
b0lkTWFwKiBub2Rlc01hcCkKICAgICB9CiAKICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpKSB7
Ci0gICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUp
LnNoYWRvd1Jvb3QoKSkKKyAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1l
bnQ+KCpub2RlKTsKKyAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LnNoYWRv
d1Jvb3QoKSkKICAgICAgICAgICAgIHVuYmluZChyb290LCBub2Rlc01hcCk7CisgICAgICAgIGlm
IChQc2V1ZG9FbGVtZW50KiBiZWZvcmVFbGVtZW50ID0gZWxlbWVudC5iZWZvcmVQc2V1ZG9FbGVt
ZW50KCkpCisgICAgICAgICAgICB1bmJpbmQoYmVmb3JlRWxlbWVudCwgbm9kZXNNYXApOworICAg
ICAgICBpZiAoUHNldWRvRWxlbWVudCogYWZ0ZXJFbGVtZW50ID0gZWxlbWVudC5hZnRlclBzZXVk
b0VsZW1lbnQoKSkKKyAgICAgICAgICAgIHVuYmluZChhZnRlckVsZW1lbnQsIG5vZGVzTWFwKTsK
ICAgICB9CiAKICAgICBub2Rlc01hcC0+cmVtb3ZlKG5vZGUpOwpAQCAtMzkyLDcgKzM5OCwxMSBA
QCBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWRpdGFibGVOb2RlKEVycm9yU3RyaW5n
JiBlcnJvclN0cmluZywgaW50IG5vZGVJZAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgaWYgKG5vZGUtPmlzSW5TaGFkb3dUcmVlKCkpIHsKLSAgICAgICAgZXJy
b3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbiBub3QgZWRpdCBub2RlcyBmcm9tIHNoYWRvdyB0
cmVlcyIpOworICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQg
bm9kZXMgZnJvbSBzaGFkb3cgdHJlZXMiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorICAgIGlmIChub2RlLT5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICBlcnJvclN0cmlu
ZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQgcHNldWRvIGVsZW1lbnRzIik7CiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KICAgICByZXR1cm4gbm9kZTsKQEAgLTQwNCw3ICs0MTQs
MTEgQEAgRWxlbWVudCogSW5zcGVjdG9yRE9NQWdlbnQ6OmFzc2VydEVkaXRhYmxlRWxlbWVudChF
cnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGludAogICAgIGlmICghZWxlbWVudCkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKGVsZW1lbnQtPmlzSW5TaGFkb3dUcmVlKCkpIHsKLSAg
ICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbiBub3QgZWRpdCBlbGVtZW50cyBm
cm9tIHNoYWRvdyB0cmVlcyIpOworICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgi
Q2Fubm90IGVkaXQgZWxlbWVudHMgZnJvbSBzaGFkb3cgdHJlZXMiKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQorICAgIGlmIChlbGVtZW50LT5pc1BzZXVkb0VsZW1lbnQoKSkgewor
ICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQgcHNldWRvIGVs
ZW1lbnRzIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICByZXR1cm4gZWxl
bWVudDsKQEAgLTY5OCw3ICs3MTIsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZW1vdmVO
b2RlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCkKIAogICAgIENvbnRhaW5l
ck5vZGUqIHBhcmVudE5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgaWYgKCFwYXJlbnRO
b2RlKSB7Ci0gICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJDYW4gbm90IHJlbW92
ZSBkZXRhY2hlZCBub2RlIik7CisgICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJD
YW5ub3QgcmVtb3ZlIGRldGFjaGVkIG5vZGUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTI1NCw2ICsxMjY4LDIwIEBAIHN0YXRpYyBTdHJpbmcgZG9jdW1lbnRCYXNlVVJMU3RyaW5n
KERvY3VtZW50KiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKCIi
KS5zdHJpbmcoKTsKIH0KIAorc3RhdGljIGJvb2wgcHNldWRvRWxlbWVudFR5cGUoUHNldWRvSWQg
cHNldWRvSWQsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6UHNldWRvVHlwZSogdHlwZSkKK3sK
KyAgICBzd2l0Y2ggKHBzZXVkb0lkKSB7CisgICAgY2FzZSBCRUZPUkU6CisgICAgICAgICp0eXBl
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpQc2V1ZG9UeXBlOjpCZWZvcmU7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIGNhc2UgQUZURVI6CisgICAgICAgICp0eXBlID0gSW5zcGVjdG9y
OjpQcm90b2NvbDo6RE9NOjpQc2V1ZG9UeXBlOjpBZnRlcjsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogUmVmPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2Jq
ZWN0Rm9yTm9kZShOb2RlKiBub2RlLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCkK
IHsKICAgICBpbnQgaWQgPSBiaW5kKG5vZGUsIG5vZGVzTWFwKTsKQEAgLTEzMjcsNiArMTM1NSwx
NiBAQCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPiBJbnNwZWN0b3JET01BZ2Vu
dDo6YnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqCiAgICAgICAgICAgICB2YWx1ZS0+c2V0VGVtcGxh
dGVDb250ZW50KGJ1aWxkT2JqZWN0Rm9yTm9kZShkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50
PihlbGVtZW50KS5jb250ZW50KCksIDAsIG5vZGVzTWFwKSk7CiAjZW5kaWYKIAorICAgICAgICBp
ZiAoZWxlbWVudC5wc2V1ZG9JZCgpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3I6OlByb3RvY29s
OjpET006OlBzZXVkb1R5cGUgcHNldWRvVHlwZTsKKyAgICAgICAgICAgIGlmIChwc2V1ZG9FbGVt
ZW50VHlwZShlbGVtZW50LnBzZXVkb0lkKCksICZwc2V1ZG9UeXBlKSkKKyAgICAgICAgICAgICAg
ICB2YWx1ZS0+c2V0UHNldWRvVHlwZShwc2V1ZG9UeXBlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGF1dG8gcHNldWRvRWxlbWVudHMgPSBidWlsZEFycmF5Rm9yUHNldWRvRWxlbWVu
dHMoZWxlbWVudCwgbm9kZXNNYXApOworICAgICAgICAgICAgaWYgKHBzZXVkb0VsZW1lbnRzKQor
ICAgICAgICAgICAgICAgIHZhbHVlLT5zZXRQc2V1ZG9FbGVtZW50cyhXVEY6Om1vdmUocHNldWRv
RWxlbWVudHMpKTsKKyAgICAgICAgfQorCiAgICAgfSBlbHNlIGlmIChpczxEb2N1bWVudD4oKm5v
ZGUpKSB7CiAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pigq
bm9kZSk7CiAgICAgICAgIHZhbHVlLT5zZXRGcmFtZUlkKG1fcGFnZUFnZW50LT5mcmFtZUlkKGRv
Y3VtZW50LmZyYW1lKCkpKTsKQEAgLTEzOTQsNiArMTQzMiwyMSBAQCBSZWY8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPj4gSW5zcGVjdG9y
RE9NQWdlbgogICAgIHJldHVybiBXVEY6Om1vdmUoY2hpbGRyZW4pOwogfQogCitSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPj4g
SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVtZW50cyhjb25zdCBFbGVt
ZW50JiBlbGVtZW50LCBOb2RlVG9JZE1hcCogbm9kZXNNYXApCit7CisgICAgUHNldWRvRWxlbWVu
dCogYmVmb3JlRWxlbWVudCA9IGVsZW1lbnQuYmVmb3JlUHNldWRvRWxlbWVudCgpOworICAgIFBz
ZXVkb0VsZW1lbnQqIGFmdGVyRWxlbWVudCA9IGVsZW1lbnQuYWZ0ZXJQc2V1ZG9FbGVtZW50KCk7
CisgICAgaWYgKCFiZWZvcmVFbGVtZW50ICYmICFhZnRlckVsZW1lbnQpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgYXV0byBwc2V1ZG9FbGVtZW50cyA9IEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT46OmNyZWF0ZSgpOworICAg
IGlmIChiZWZvcmVFbGVtZW50KQorICAgICAgICBwc2V1ZG9FbGVtZW50cy0+YWRkSXRlbShidWls
ZE9iamVjdEZvck5vZGUoYmVmb3JlRWxlbWVudCwgMCwgbm9kZXNNYXApKTsKKyAgICBpZiAoYWZ0
ZXJFbGVtZW50KQorICAgICAgICBwc2V1ZG9FbGVtZW50cy0+YWRkSXRlbShidWlsZE9iamVjdEZv
ck5vZGUoYWZ0ZXJFbGVtZW50LCAwLCBub2Rlc01hcCkpOworICAgIHJldHVybiBXVEY6Om1vdmUo
cHNldWRvRWxlbWVudHMpOworfQorCiBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVu
dExpc3RlbmVyPiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JFdmVudExpc3RlbmVy
KGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyog
b2JqZWN0R3JvdXBJZCkKIHsKICAgICBSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5l
ciA9IHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmxpc3RlbmVyOwpAQCAtMTk1Nyw2ICsyMDEwLDM2
IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmZyYW1lRG9jdW1lbnRVcGRhdGVkKEZyYW1lKiBm
cmFtZSkKICAgICBzZXREb2N1bWVudChkb2N1bWVudCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6OnBzZXVkb0VsZW1lbnRDcmVhdGVkKFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQp
Cit7CisgICAgRWxlbWVudCogcGFyZW50ID0gcHNldWRvRWxlbWVudC5ob3N0RWxlbWVudCgpOwor
ICAgIGlmICghcGFyZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgcGFyZW50SWQgPSBt
X2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KHBhcmVudCk7CisgICAgaWYgKCFwYXJlbnRJZCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKHBhcmVudElkLCAx
KTsKKyAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cHNldWRvRWxlbWVudEFkZGVkKHBhcmVudElk
LCBidWlsZE9iamVjdEZvck5vZGUoJnBzZXVkb0VsZW1lbnQsIDAsICZtX2RvY3VtZW50Tm9kZVRv
SWRNYXApKTsKK30KKwordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHNldWRvRWxlbWVudERlc3Ry
b3llZChQc2V1ZG9FbGVtZW50JiBwc2V1ZG9FbGVtZW50KQoreworICAgIGludCBwc2V1ZG9FbGVt
ZW50SWQgPSBtX2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KCZwc2V1ZG9FbGVtZW50KTsKKyAgICBp
ZiAoIXBzZXVkb0VsZW1lbnRJZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgYSBQc2V1
ZG9FbGVtZW50IGlzIGJvdW5kLCBpdHMgcGFyZW50IGVsZW1lbnQgbXVzdCBoYXZlIGJlZW4gYm91
bmQuCisgICAgRWxlbWVudCogcGFyZW50ID0gcHNldWRvRWxlbWVudC5ob3N0RWxlbWVudCgpOwor
ICAgIEFTU0VSVChwYXJlbnQpOworICAgIGludCBwYXJlbnRJZCA9IG1fZG9jdW1lbnROb2RlVG9J
ZE1hcC5nZXQocGFyZW50KTsKKyAgICBBU1NFUlQocGFyZW50SWQpOworCisgICAgdW5iaW5kKCZw
c2V1ZG9FbGVtZW50LCAmbV9kb2N1bWVudE5vZGVUb0lkTWFwKTsKKyAgICBtX2Zyb250ZW5kRGlz
cGF0Y2hlci0+cHNldWRvRWxlbWVudFJlbW92ZWQocGFyZW50SWQsIHBzZXVkb0VsZW1lbnRJZCk7
Cit9CisKIE5vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yUGF0aChjb25zdCBTdHJpbmcm
IHBhdGgpCiB7CiAgICAgLy8gVGhlIHBhdGggaXMgb2YgZm9ybSAiMSxIVE1MLDIsQk9EWSwxLERJ
ViIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKaW5kZXgg
YThhNTUzMS4uN2RiZTI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmgKQEAgLTE2OSw2ICsxNjksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVU
b3VjaEV2ZW50KE5vZGUmKTsKICAgICB2b2lkIGRpZENvbW1pdExvYWQoRG9jdW1lbnQqKTsKICAg
ICB2b2lkIGZyYW1lRG9jdW1lbnRVcGRhdGVkKEZyYW1lKik7CisgICAgdm9pZCBwc2V1ZG9FbGVt
ZW50Q3JlYXRlZChQc2V1ZG9FbGVtZW50Jik7CisgICAgdm9pZCBwc2V1ZG9FbGVtZW50RGVzdHJv
eWVkKFBzZXVkb0VsZW1lbnQmKTsKIAogICAgIC8vIENhbGxiYWNrcyB0aGF0IGRvbid0IGRpcmVj
dGx5IGNvcnJlc3BvbmQgdG8gYW4gaW5zdHJ1bWVudGF0aW9uIGVudHJ5IHBvaW50LgogICAgIHZv
aWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqKTsKQEAgLTIzMyw2ICsyMzUsNyBAQCBwcml2YXRlOgog
ICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+IGJ1aWxkT2JqZWN0Rm9yTm9k
ZShOb2RlKiwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCopOwogICAgIFJlZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBcnJheTxTdHJpbmc+PiBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMoRWxl
bWVudCopOwogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlBy
b3RvY29sOjpET006Ok5vZGU+PiBidWlsZEFycmF5Rm9yQ29udGFpbmVyQ2hpbGRyZW4oTm9kZSog
Y29udGFpbmVyLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CisgICAgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9k
ZT4+IGJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVtZW50cyhjb25zdCBFbGVtZW50JiwgTm9kZVRvSWRN
YXAqIG5vZGVzTWFwKTsKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpFdmVudExp
c3RlbmVyPiBidWlsZE9iamVjdEZvckV2ZW50TGlzdGVuZXIoY29uc3QgUmVnaXN0ZXJlZEV2ZW50
TGlzdGVuZXImLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSosIGNvbnN0IFN0
cmluZyogb2JqZWN0R3JvdXBJZCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRP
TTo6QWNjZXNzaWJpbGl0eVByb3BlcnRpZXM+IGJ1aWxkT2JqZWN0Rm9yQWNjZXNzaWJpbGl0eVBy
b3BlcnRpZXMoTm9kZSopOwogICAgIHZvaWQgcHJvY2Vzc0FjY2Vzc2liaWxpdHlDaGlsZHJlbihS
ZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4mJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkFycmF5PGludD4+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0MWM4MjgwOS4uNWVlYjBkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKQEAgLTIwOCw2ICsyMDgsMjAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxQb3BTaGFkb3dSb290SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnUKICAgICAg
ICAgZG9tQWdlbnQtPndpbGxQb3BTaGFkb3dSb290KGhvc3QsIHJvb3QpOwogfQogCit2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudENyZWF0ZWRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFBzZXVkb0VsZW1lbnQmIHBzZXVkb0Vs
ZW1lbnQpCit7CisgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKKyAgICAgICAgZG9tQWdlbnQtPnBzZXVk
b0VsZW1lbnRDcmVhdGVkKHBzZXVkb0VsZW1lbnQpOworfQorCit2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgUHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVudCkKK3sK
KyAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy5pbnNwZWN0b3JET01BZ2VudCgpKQorICAgICAgICBkb21BZ2VudC0+cHNldWRvRWxlbWVudERl
c3Ryb3llZChwc2V1ZG9FbGVtZW50KTsKKyAgICBpZiAoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQq
IGxheWVyVHJlZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JMYXllclRyZWVB
Z2VudCgpKQorICAgICAgICBsYXllclRyZWVBZ2VudC0+cHNldWRvRWxlbWVudERlc3Ryb3llZChw
c2V1ZG9FbGVtZW50KTsKK30KKwogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENy
ZWF0ZU5hbWVkRmxvd0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50
cywgRG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXROYW1lZEZsb3cmIG5hbWVkRmxvdykKIHsKICAg
ICBpZiAoIWRvY3VtZW50KQpAQCAtMTI3NCwxMCArMTI4OCw0IEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpyZW5kZXJMYXllckRlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50
cyYgaW5zCiAgICAgICAgIGxheWVyVHJlZUFnZW50LT5yZW5kZXJMYXllckRlc3Ryb3llZChyZW5k
ZXJMYXllcik7CiB9CiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVt
ZW50RGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBQc2V1ZG9FbGVtZW50JiBwc2V1ZG9FbGVtZW50KQotewotICAgIGlmIChJbnNwZWN0b3JMYXll
clRyZWVBZ2VudCogbGF5ZXJUcmVlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3Rv
ckxheWVyVHJlZUFnZW50KCkpCi0gICAgICAgIGxheWVyVHJlZUFnZW50LT5wc2V1ZG9FbGVtZW50
RGVzdHJveWVkKHBzZXVkb0VsZW1lbnQpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgKaW5kZXggYTAzNTRhZC4uNjFhYjRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtNzUsOSArNzUsOSBAQCBjbGFz
cyBET01XaW5kb3c7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBEYXRhYmFzZTsKIGNs
YXNzIERvY3VtZW50OwotY2xhc3MgRWxlbWVudDsKIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xh
c3MgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjsKK2NsYXNzIEVsZW1lbnQ7CiBjbGFzcyBH
cmFwaGljc0NvbnRleHQ7CiBjbGFzcyBIVFRQSGVhZGVyTWFwOwogY2xhc3MgSW5zcGVjdG9yQ1NT
QWdlbnQ7CkBAIC04NSw3ICs4NSw2IEBAIGNsYXNzIEluc3BlY3RvckNTU09NV3JhcHBlcnM7CiBj
bGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb247CiBjbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50OwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKLWNsYXNzIFVSTDsKIGNsYXNzIE5vZGU7
CiBjbGFzcyBQc2V1ZG9FbGVtZW50OwogY2xhc3MgUmVuZGVyTGF5ZXI7CkBAIC0xMDAsNiArOTks
NyBAQCBjbGFzcyBTdG9yYWdlQXJlYTsKIGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBTdHls
ZVJ1bGU7CiBjbGFzcyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50OworY2xhc3MgVVJMOwogY2xhc3Mg
V29ya2VyR2xvYmFsU2NvcGU7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZVByb3h5OwogY2xhc3Mg
WE1MSHR0cFJlcXVlc3Q7CkBAIC0xMjYsNiArMTI2LDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2
b2lkIG1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKERvY3VtZW50Jik7CiAgICAgc3RhdGljIHZvaWQg
ZGlkUHVzaFNoYWRvd1Jvb3QoRWxlbWVudCYgaG9zdCwgU2hhZG93Um9vdCYpOwogICAgIHN0YXRp
YyB2b2lkIHdpbGxQb3BTaGFkb3dSb290KEVsZW1lbnQmIGhvc3QsIFNoYWRvd1Jvb3QmKTsKKyAg
ICBzdGF0aWMgdm9pZCBwc2V1ZG9FbGVtZW50Q3JlYXRlZChQYWdlKiwgUHNldWRvRWxlbWVudCYp
OworICAgIHN0YXRpYyB2b2lkIHBzZXVkb0VsZW1lbnREZXN0cm95ZWQoUGFnZSosIFBzZXVkb0Vs
ZW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVOYW1lZEZsb3coRG9jdW1lbnQqLCBX
ZWJLaXROYW1lZEZsb3cmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUmVtb3ZlTmFtZWRGbG93KERv
Y3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlUmVn
aW9uT3ZlcnNldChEb2N1bWVudCYsIFdlYktpdE5hbWVkRmxvdyYpOwpAQCAtMjc1LDcgKzI3Nyw2
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5nZShQYWdlKik7
CiAgICAgc3RhdGljIHZvaWQgcmVuZGVyTGF5ZXJEZXN0cm95ZWQoUGFnZSosIGNvbnN0IFJlbmRl
ckxheWVyJik7Ci0gICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3llZChQYWdlKiwg
UHNldWRvRWxlbWVudCYpOwogCiAgICAgc3RhdGljIHZvaWQgZnJvbnRlbmRDcmVhdGVkKCkgeyBz
X2Zyb250ZW5kQ291bnRlciArPSAxOyB9CiAgICAgc3RhdGljIHZvaWQgZnJvbnRlbmREZWxldGVk
KCkgeyBzX2Zyb250ZW5kQ291bnRlciAtPSAxOyB9CkBAIC0zMDYsNiArMzA3LDggQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgdm9pZCBtZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFB1c2hTaGFkb3dSb290SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgRWxlbWVudCYgaG9zdCwgU2hhZG93Um9vdCYpOwogICAgIHN0YXRp
YyB2b2lkIHdpbGxQb3BTaGFkb3dSb290SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRWxlbWVu
dCYgaG9zdCwgU2hhZG93Um9vdCYpOworICAgIHN0YXRpYyB2b2lkIHBzZXVkb0VsZW1lbnRDcmVh
dGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgUHNldWRvRWxlbWVudCYpOworICAgIHN0YXRp
YyB2b2lkIHBzZXVkb0VsZW1lbnREZXN0cm95ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBQ
c2V1ZG9FbGVtZW50Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlTmFtZWRGbG93SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cmKTsKICAgICBz
dGF0aWMgdm9pZCB3aWxsUmVtb3ZlTmFtZWRGbG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
RG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDaGFuZ2VS
ZWdpb25PdmVyc2V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRG9jdW1lbnQmLCBXZWJLaXRO
YW1lZEZsb3cmKTsKQEAgLTQ0OSw3ICs0NTIsNiBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIHZv
aWQgbGF5ZXJUcmVlRGlkQ2hhbmdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CiAgICAgc3Rh
dGljIHZvaWQgcmVuZGVyTGF5ZXJEZXN0cm95ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBj
b25zdCBSZW5kZXJMYXllciYpOwotICAgIHN0YXRpYyB2b2lkIHBzZXVkb0VsZW1lbnREZXN0cm95
ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBQc2V1ZG9FbGVtZW50Jik7CiAKICAgICBzdGF0
aWMgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UoUGFnZSYp
OwogICAgIHN0YXRpYyBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzRm9y
RnJhbWUoRnJhbWUmKTsKQEAgLTU2Nyw2ICs1NjksMjAgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsUG9wU2hhZG93Um9vdChFbGVtZW50JiBob3N0LCBTaGFkb3dS
b28KICAgICAgICAgd2lsbFBvcFNoYWRvd1Jvb3RJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBo
b3N0LCByb290KTsKIH0KIAoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpw
c2V1ZG9FbGVtZW50Q3JlYXRlZChQYWdlKiBwYWdlLCBQc2V1ZG9FbGVtZW50JiBwc2V1ZG9FbGVt
ZW50KQoreworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOworICAgIGlm
IChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGlu
Z0FnZW50c0ZvclBhZ2UocGFnZSkpCisgICAgICAgIHBzZXVkb0VsZW1lbnRDcmVhdGVkSW1wbCgq
aW5zdHJ1bWVudGluZ0FnZW50cywgcHNldWRvRWxlbWVudCk7Cit9CisKK2lubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZChQYWdlKiBwYWdl
LCBQc2V1ZG9FbGVtZW50JiBwc2V1ZG9FbGVtZW50KQoreworICAgIEZBU1RfUkVUVVJOX0lGX05P
X0ZST05URU5EUyh2b2lkKCkpOworICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSkpCisgICAgICAg
IHBzZXVkb0VsZW1lbnREZXN0cm95ZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwc2V1ZG9F
bGVtZW50KTsKK30KKwogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
cmVhdGVOYW1lZEZsb3coRG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXROYW1lZEZsb3cmIG5hbWVk
RmxvdykKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKQEAgLTEz
MDgsMjIgKzEzMjQsMTggQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRGaXJlQW5pbWF0aW9uRnJhbWUoY29uc3QgSW5zcGVjdG9ySW5zdHIKIAogaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsYXllclRyZWVEaWRDaGFuZ2UoUGFnZSogcGFnZSkK
IHsKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JQYWdlKHBhZ2UpKQogICAgICAgICBsYXllclRyZWVEaWRDaGFuZ2VJbXBsKCppbnN0cnVt
ZW50aW5nQWdlbnRzKTsKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpyZW5kZXJMYXllckRlc3Ryb3llZChQYWdlKiBwYWdlLCBjb25zdCBSZW5kZXJMYXllciYgcmVu
ZGVyTGF5ZXIpCiB7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAg
ICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKICAgICAgICAgcmVuZGVyTGF5ZXJEZXN0cm95ZWRJ
bXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCByZW5kZXJMYXllcik7CiB9CiAKLWlubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZChQYWdlKiBw
YWdlLCBQc2V1ZG9FbGVtZW50JiBwc2V1ZG9FbGVtZW50KQotewotICAgIGlmIChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBh
Z2UocGFnZSkpCi0gICAgICAgIHBzZXVkb0VsZW1lbnREZXN0cm95ZWRJbXBsKCppbnN0cnVtZW50
aW5nQWdlbnRzLCBwc2V1ZG9FbGVtZW50KTsKLX0KLQogaW5saW5lIEluc3RydW1lbnRpbmdBZ2Vu
dHMqIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRl
eHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKICAgICBpZiAoIWNvbnRleHQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKaW5kZXgg
NzY3ZjM0My4uNGY5OTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlBvbHlnb25TaGFwZS5oIgorI2lu
Y2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKICNpbmNsdWRlICJSZWN0YW5nbGVTaGFwZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJveE1vZGVsT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5o
IgpAQCAtNjg2LDE3ICs2ODcsMjQgQEAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpPdmVybGF5VHlwZXM6OkVsZW1lbnREYXRhPiBidWlsZE9iamVjdEZvckVsZW0KICAgICBpZiAo
IWlzPEVsZW1lbnQ+KG5vZGUpIHx8ICFub2RlLT5kb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1l
bnQ+KCpub2RlKTsKKyAgICBFbGVtZW50KiBlZmZlY3RpdmVFbGVtZW50ID0gZG93bmNhc3Q8RWxl
bWVudD4obm9kZSk7CisgICAgaWYgKG5vZGUtPmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAg
IEVsZW1lbnQqIGhvc3RFbGVtZW50ID0gZG93bmNhc3Q8UHNldWRvRWxlbWVudD4oKm5vZGUpLmhv
c3RFbGVtZW50KCk7CisgICAgICAgIGlmICghaG9zdEVsZW1lbnQpCisgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICAgICAgZWZmZWN0aXZlRWxlbWVudCA9IGhvc3RFbGVtZW50OworICAg
IH0KKworICAgIEVsZW1lbnQmIGVsZW1lbnQgPSAqZWZmZWN0aXZlRWxlbWVudDsKICAgICBib29s
IGlzWEhUTUwgPSBlbGVtZW50LmRvY3VtZW50KCkuaXNYSFRNTERvY3VtZW50KCk7Ci0KICAgICBh
dXRvIGVsZW1lbnREYXRhID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6T3ZlcmxheVR5cGVzOjpFbGVt
ZW50RGF0YTo6Y3JlYXRlKCkKICAgICAgICAgLnNldFRhZ05hbWUoaXNYSFRNTCA/IGVsZW1lbnQu
bm9kZU5hbWUoKSA6IGVsZW1lbnQubm9kZU5hbWUoKS5sb3dlcigpKQogICAgICAgICAuc2V0SWRW
YWx1ZShlbGVtZW50LmdldElkQXR0cmlidXRlKCkpCiAgICAgICAgIC5yZWxlYXNlKCk7CiAKLSAg
ICBIYXNoU2V0PEF0b21pY1N0cmluZz4gdXNlZENsYXNzTmFtZXM7CisgICAgU3RyaW5nQnVpbGRl
ciBjbGFzc05hbWVzOwogICAgIGlmIChlbGVtZW50Lmhhc0NsYXNzKCkgJiYgaXM8U3R5bGVkRWxl
bWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBjbGFzc05hbWVzOworICAg
ICAgICBIYXNoU2V0PEF0b21pY1N0cmluZz4gdXNlZENsYXNzTmFtZXM7CiAgICAgICAgIGNvbnN0
IFNwYWNlU3BsaXRTdHJpbmcmIGNsYXNzTmFtZXNTdHJpbmcgPSBkb3duY2FzdDxTdHlsZWRFbGVt
ZW50PihlbGVtZW50KS5jbGFzc05hbWVzKCk7CiAgICAgICAgIHNpemVfdCBjbGFzc05hbWVDb3Vu
dCA9IGNsYXNzTmFtZXNTdHJpbmcuc2l6ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGNsYXNzTmFtZUNvdW50OyArK2kpIHsKQEAgLTcwNyw4ICs3MTUsMTUgQEAgc3RhdGljIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpPdmVybGF5VHlwZXM6OkVsZW1lbnREYXRhPiBidWls
ZE9iamVjdEZvckVsZW0KICAgICAgICAgICAgIGNsYXNzTmFtZXMuYXBwZW5kKCcuJyk7CiAgICAg
ICAgICAgICBjbGFzc05hbWVzLmFwcGVuZChjbGFzc05hbWUpOwogICAgICAgICB9CisgICAgfQor
ICAgIGlmIChub2RlLT5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICBpZiAobm9kZS0+cHNl
dWRvSWQoKSA9PSBCRUZPUkUpCisgICAgICAgICAgICBjbGFzc05hbWVzLmFwcGVuZExpdGVyYWwo
Ijo6YmVmb3JlIik7CisgICAgICAgIGVsc2UgaWYgKG5vZGUtPnBzZXVkb0lkKCkgPT0gQUZURVIp
CisgICAgICAgICAgICBjbGFzc05hbWVzLmFwcGVuZExpdGVyYWwoIjo6YWZ0ZXIiKTsKKyAgICB9
CisgICAgaWYgKCFjbGFzc05hbWVzLmlzRW1wdHkoKSkKICAgICAgICAgZWxlbWVudERhdGEtPnNl
dENsYXNzTmFtZShjbGFzc05hbWVzLnRvU3RyaW5nKCkpOwotICAgIH0KIAogICAgIFJlbmRlckVs
ZW1lbnQqIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVyZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCmluZGV4IGM2MDQ3OGIu
LmFjYTVjYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRy
ZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRhLmgiCiAjaW5jbHVkZSAi
Rmxvd1RocmVhZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgorI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvYWRlclN0cmF0
ZWd5LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxl
LmgiCkBAIC00NjQsNiArNDY1LDcgQEAgc3RhdGljIHZvaWQgYXR0YWNoQmVmb3JlT3JBZnRlclBz
ZXVkb0VsZW1lbnRJZk5lZWRlZChFbGVtZW50JiBjdXJyZW50LCBQc2V1ZG9JZAogICAgIGlmICgh
bmVlZHNQc2V1ZG9FbGVtZW50KGN1cnJlbnQsIHBzZXVkb0lkKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIFJlZjxQc2V1ZG9FbGVtZW50PiBwc2V1ZG9FbGVtZW50ID0gUHNldWRvRWxlbWVudDo6Y3Jl
YXRlKGN1cnJlbnQsIHBzZXVkb0lkKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBz
ZXVkb0VsZW1lbnRDcmVhdGVkKHBzZXVkb0VsZW1lbnQtPmRvY3VtZW50KCkucGFnZSgpLCBwc2V1
ZG9FbGVtZW50LmdldCgpKTsKICAgICBzZXRCZWZvcmVPckFmdGVyUHNldWRvRWxlbWVudChjdXJy
ZW50LCBwc2V1ZG9FbGVtZW50LmNvcHlSZWYoKSwgcHNldWRvSWQpOwogICAgIGF0dGFjaFJlbmRl
clRyZWUocHNldWRvRWxlbWVudC5nZXQoKSwgKmN1cnJlbnQucmVuZGVyU3R5bGUoKSwgcmVuZGVy
VHJlZVBvc2l0aW9uLCBudWxscHRyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc2
MjI3Y2YuLjk0YWYyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDg4IEBA
CiAyMDE1LTA3LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogU2hvdyBQc2V1ZG8gRWxlbWVudHMgaW4gRE9NIFRyZWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTYxMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9ET01UcmVlTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01UcmVlTWFuYWdlci5wcm90b3R5cGUuX3BzZXVkb0VsZW1lbnRBZGRlZCk6CisgICAgICAg
IEhvb2sgdXAgdGhlIG5ldyBwc2V1ZG8gZWxlbWVudCBET01Ob2RlIHRvIHRoZSBwYXJlbnQuCisK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5wcm90b3R5cGUuX3BzZXVkb0Vs
ZW1lbnRSZW1vdmVkKToKKyAgICAgICAgVW5ob29rIHRoZSBwc2V1ZG8gZWxlbWVudCBmcm9tIGl0
cyBwYXJlbnQuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5wcm90b3R5
cGUuX3VuYmluZCk6CisgICAgICAgIFdoZW4gdW5iaW5kaW5nLCB1bmJpbmQgYW55IHBzZXVkbyBl
bGVtZW50IGNoaWxkcmVuIHdlIG1heSBoYXZlIGhhZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvTW9kZWxzL0RPTU5vZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90
b3R5cGUuaXNQc2V1ZG9FbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnBy
b3RvdHlwZS5wc2V1ZG9UeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3Rv
dHlwZS5oYXNQc2V1ZG9FbGVtZW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5w
cm90b3R5cGUucHNldWRvRWxlbWVudHMpOgorICAgICAgICBOZXcgc3RhdGUgb2YgYSBET01Ob2Rl
IG1heSBpbmNsdWRlIHBzZXVkbyBlbGVtZW50cy4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TU5vZGUucHJvdG90eXBlLmFwcHJvcHJpYXRlU2VsZWN0b3JGb3IpOgorICAgICAgICBBIHNlbGVj
dG9yIGZvciB0aGlzIG5vZGUgaW5jbHVkZXMgdGhlIHNlbGVjdG9yIGZvciB0aGUgbm9kZSBhYm92
ZSBpdC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NT2JzZXJ2ZXIucHJvdG90eXBlLnBzZXVkb0VsZW1l
bnRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NT2JzZXJ2ZXIucHJvdG90eXBlLnBz
ZXVkb0VsZW1lbnRSZW1vdmVkKToKKyAgICAgICAgUGFzcyB0aGUgbWVzc2FnZSBvbiB0byBET01U
cmVlTWFuYWdlci4KKworCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxl
bWVudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUu
Z2V0IGVkaXRhYmxlKToKKyAgICAgICAgUHNldWRvIGVsZW1lbnQgbm9kZXMgYXJlIG5vdCBlZGl0
YWJsZS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5z
aG93Q2hpbGROb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90
b3R5cGUub25wb3B1bGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQu
cHJvdG90eXBlLnVwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVl
RWxlbWVudC5wcm90b3R5cGUuX25vZGVUaXRsZUluZm8pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5fc2luZ2xlVGV4dENoaWxkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX2hhc1Zpc2libGVDaGlsZHJlbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl92aXNpYmxl
Q2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlw
ZS5fdXBkYXRlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50
LnByb3RvdHlwZS5hZGp1c3RDb2xsYXBzZWRSYW5nZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLmhhbmRsZUxvYWRBbGxDaGlsZHJlbik6CisgICAgICAg
IEEgRE9NVHJlZUVsZW1lbnQncyBjaGlsZHJlbiBhcmUgbm8gbG9uZ2VyIDEtdG8tMSB0byBET01O
b2RlJ3MgY2hpbGRyZW4uCisgICAgICAgIEluc3RlYWQgYSBET01Ob2RlIG1heSBoYXZlIGEgYmVm
b3JlL2FmdGVyIHBzZXVkbyBlbGVtZW50IGNoaWxkIHRoYXQKKyAgICAgICAgYXJlIG5vdCBpbmNs
dWRlZCBpbiB0aGUgY2hpbGRyZW4gbGlzdC4gVXBkYXRlIHBhcnRzIG9mIERPTVRyZWVFbGVtZW50
CisgICAgICAgIHRvIHJlc3BlY3QgdGhpcyBsaXN0IG9mIHZpc2libGUgY2hpbGRyZW4uCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUGF0aENvbXBvbmVudEljb25zLmNzczoKKyAg
ICAgICAgKC5kb20tcHNldWRvLWVsZW1lbnQtaWNvbiAuaWNvbik6CisgICAgICAgIFN0eWxpbmcg
Zm9yIHRoZSBwYXRoIGNvbXBvbmVudCB3aGVuIGEgcHNldWRvIGVsZW1lbnQgaXMgc2VsZWN0ZWQu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNzczoKKyAg
ICAgICAgKC5kb20tdHJlZS1vdXRsaW5lIC5odG1sLXBzZXVkby1lbGVtZW50KToKKyAgICAgICAg
KC5kb20tdHJlZS1vdXRsaW5lIC5odG1sLWZyYWdtZW50LnNoYWRvdyk6CisgICAgICAgICgud2Vi
a2l0LWh0bWwtZnJhZ21lbnQuc2hhZG93KTogRGVsZXRlZC4KKyAgICAgICAgU3R5bGVzIGZvciBw
c2V1ZG8gZWxlbWVudHMgaW4gdGhlIERPTSB0cmVlLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVl
T3V0bGluZS5wcm90b3R5cGUuX2hpZGVFbGVtZW50KToKKyAgICAgICAgTWFrZSB0aGUgaGlkZSBl
bGVtZW50IHNlbGVjdG9yIGhpZGUgdGhlIGhvc3QgZWxlbWVudC4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuYWRkRXZl
bnRMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGVi
YXJQYW5lbC5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX2ZvcmNlZFBzZXVk
b0NsYXNzQ2hlY2tib3hDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
dGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl91cGRhdGVQc2V1ZG9DbGFzc0NoZWNrYm94ZXMp
OgorICAgICAgICBQc2V1ZG8gY2xhc3MgY2hhbmdlcyB3b24ndCBoYXBwZW4gb24gcHNldWRvIGVs
ZW1lbnRzLCBidXQgd2lsbAorICAgICAgICBoYXBwZW4gb24gdGhlaXIgaG9zdCBlbGVtZW50LCBz
byBsaXN0ZW4gdG8gYW5kIG1ha2UgcHNldWRvIGNsYXNzCisgICAgICAgIGNoYW5nZXMgdG8gdGhl
IGhvc3QgZWxlbWVudC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHls
ZURldGFpbHNQYW5lbC5jc3M6CisgICAgICAgICguc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNz
cy1zdHlsZSAucnVsZXMgPiAqOmZpcnN0LWNoaWxkOm1hdGNoZXMoLm5ldy1ydWxlKSk6CisgICAg
ICAgIFNpbmNlIGEgcHNldWRvIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIHN0eWxlIGF0dHJpYnV0
ZSwKKyAgICAgICAgZ2l2ZSBzb21lIG1hcmdpbiBpbiB0aGUgc3R5bGUgc2lkZWJhciBhYm92ZSB0
aGUgIk5ldyBSdWxlIgorICAgICAgICBidXR0b24gc28gaXQgbG9va3MgYmV0dGVyLgorCisyMDE1
LTA3LTI0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAg
V2ViIEluc3BlY3RvcjogQWRkIGN1c3RvbSBwYXJhbWV0ZXIgbGlzdHMgZm9yIG5ldyBET00gYXBw
ZW5kL3ByZXBlbmQvYmVmb3JlL2FmdGVyL3JlcGxhY2VXaXRoIG1ldGhvZHMKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI1NwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01UcmVl
TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0RPTVRyZWVNYW5hZ2VyLmpzCmluZGV4IDhjMjA4M2YuLmU2ZGQ3ZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVN
YW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0RPTVRyZWVNYW5hZ2VyLmpzCkBAIC0yNDYsNyArMjQ2LDM4IEBAIFdlYkluc3BlY3Rv
ci5ET01UcmVlTWFuYWdlciA9IGNsYXNzIERPTVRyZWVNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLk9iamVjdAogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07
CiAgICAgICAgIHBhcmVudC5fcmVtb3ZlQ2hpbGQobm9kZSk7CiAgICAgICAgIHRoaXMuX3VuYmlu
ZChub2RlKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVSZW1vdmVkLCB7bm9kZTpub2RlLCBwYXJlbnR9
KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRP
TVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVSZW1vdmVkLCB7bm9kZSwgcGFyZW50fSk7CisgICAgfQor
CisgICAgX3BzZXVkb0VsZW1lbnRBZGRlZChwYXJlbnRJZCwgcHNldWRvRWxlbWVudCkKKyAgICB7
CisgICAgICAgIHZhciBwYXJlbnQgPSB0aGlzLl9pZFRvRE9NTm9kZVtwYXJlbnRJZF07CisgICAg
ICAgIGlmICghcGFyZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBub2Rl
ID0gbmV3IFdlYkluc3BlY3Rvci5ET01Ob2RlKHRoaXMsIHBhcmVudC5vd25lckRvY3VtZW50LCBm
YWxzZSwgcHNldWRvRWxlbWVudCk7CisgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IHBhcmVudDsK
KyAgICAgICAgdGhpcy5faWRUb0RPTU5vZGVbbm9kZS5pZF0gPSBub2RlOworICAgICAgICBjb25z
b2xlLmFzc2VydCghcGFyZW50LnBzZXVkb0VsZW1lbnRzKCkuZ2V0KG5vZGUucHNldWRvVHlwZSgp
KSk7CisgICAgICAgIHBhcmVudC5wc2V1ZG9FbGVtZW50cygpLnNldChub2RlLnBzZXVkb1R5cGUo
KSwgbm9kZSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3Bl
Y3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5Ob2RlSW5zZXJ0ZWQsIHtub2RlLCBwYXJlbnR9KTsK
KyAgICB9CisKKyAgICBfcHNldWRvRWxlbWVudFJlbW92ZWQocGFyZW50SWQsIHBzZXVkb0VsZW1l
bnRJZCkKKyAgICB7CisgICAgICAgIHZhciBwc2V1ZG9FbGVtZW50ID0gdGhpcy5faWRUb0RPTU5v
ZGVbcHNldWRvRWxlbWVudElkXTsKKyAgICAgICAgaWYgKCFwc2V1ZG9FbGVtZW50KQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBwYXJlbnQgPSBwc2V1ZG9FbGVtZW50LnBhcmVu
dE5vZGU7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHBhcmVudCk7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHBhcmVudC5pZCA9PT0gcGFyZW50SWQpOworICAgICAgICBpZiAoIXBhcmVudCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBwYXJlbnQuX3JlbW92ZUNoaWxkKHBzZXVkb0Vs
ZW1lbnQpOworICAgICAgICB0aGlzLl91bmJpbmQocHNldWRvRWxlbWVudCk7CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5F
dmVudC5Ob2RlUmVtb3ZlZCwge25vZGU6IHBzZXVkb0VsZW1lbnQsIHBhcmVudH0pOwogICAgIH0K
IAogICAgIF91bmJpbmQobm9kZSkKQEAgLTI1NCw4ICsyODUsMTYgQEAgV2ViSW5zcGVjdG9yLkRP
TVRyZWVNYW5hZ2VyID0gY2xhc3MgRE9NVHJlZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgIHRoaXMuX3JlbW92ZUNvbnRlbnROb2RlRnJvbUZsb3dJZk5lZWRlZChu
b2RlKTsKIAogICAgICAgICBkZWxldGUgdGhpcy5faWRUb0RPTU5vZGVbbm9kZS5pZF07CisKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IG5vZGUuY2hpbGRyZW4gJiYgaSA8IG5vZGUuY2hpbGRyZW4u
bGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl91bmJpbmQobm9kZS5jaGlsZHJlbltpXSk7
CisKKyAgICAgICAgdmFyIHBzZXVkb0VsZW1lbnRzID0gbm9kZS5wc2V1ZG9FbGVtZW50cygpOwor
ICAgICAgICBmb3IgKHZhciBwc2V1ZG9FbGVtZW50IG9mIHBzZXVkb0VsZW1lbnRzKQorICAgICAg
ICAgICAgdGhpcy5fdW5iaW5kKHBzZXVkb0VsZW1lbnQpOworCisgICAgICAgIC8vIEZJWE1FOiBI
YW5kbGUgc2hhZG93IHJvb3RzLgorICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRlbXBsYXRlIGNv
bnRlbnQuCiAgICAgfQogCiAgICAgZ2V0IHJlc3RvcmVTZWxlY3RlZE5vZGVJc0FsbG93ZWQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RP
TU5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9N
Tm9kZS5qcwppbmRleCBlMDY0NjI2Li4yZjU2ZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcwpAQCAtNDYsNiArNDYs
NyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX25vZGVOYW1lID0gcGF5bG9hZC5ub2RlTmFtZTsK
ICAgICAgICAgdGhpcy5fbG9jYWxOYW1lID0gcGF5bG9hZC5sb2NhbE5hbWU7CiAgICAgICAgIHRo
aXMuX25vZGVWYWx1ZSA9IHBheWxvYWQubm9kZVZhbHVlOworICAgICAgICB0aGlzLl9wc2V1ZG9U
eXBlID0gcGF5bG9hZC5wc2V1ZG9UeXBlOwogICAgICAgICB0aGlzLl9jb21wdXRlZFJvbGUgPSBw
YXlsb2FkLnJvbGU7CiAKICAgICAgICAgaWYgKHRoaXMuX25vZGVUeXBlID09PSBOb2RlLkRPQ1VN
RU5UX05PREUpCkBAIC03OCw5ICs3OSwyMCBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNz
IERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAorICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRlbXBsYXRlQ29udGVudC4KKwogICAg
ICAgICBpZiAocGF5bG9hZC5jaGlsZHJlbikKICAgICAgICAgICAgIHRoaXMuX3NldENoaWxkcmVu
UGF5bG9hZChwYXlsb2FkLmNoaWxkcmVuKTsKIAorICAgICAgICB0aGlzLl9wc2V1ZG9FbGVtZW50
cyA9IG5ldyBNYXA7CisgICAgICAgIGlmIChwYXlsb2FkLnBzZXVkb0VsZW1lbnRzKSB7CisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBheWxvYWQucHNldWRvRWxlbWVudHMubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9N
Tm9kZSh0aGlzLl9kb21BZ2VudCwgdGhpcy5vd25lckRvY3VtZW50LCB0aGlzLl9pc0luU2hhZG93
VHJlZSwgcGF5bG9hZC5wc2V1ZG9FbGVtZW50c1tpXSk7CisgICAgICAgICAgICAgICAgbm9kZS5w
YXJlbnROb2RlID0gdGhpczsKKyAgICAgICAgICAgICAgICB0aGlzLl9wc2V1ZG9FbGVtZW50cy5z
ZXQobm9kZS5wc2V1ZG9UeXBlKCksIG5vZGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
ICAgICAgICAgaWYgKHBheWxvYWQuY29udGVudERvY3VtZW50KSB7CiAgICAgICAgICAgICB0aGlz
Ll9jb250ZW50RG9jdW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTU5vZGUoZG9tQWdlbnQsIG51
bGwsIGZhbHNlLCBwYXlsb2FkLmNvbnRlbnREb2N1bWVudCk7CiAgICAgICAgICAgICB0aGlzLl9j
aGlsZHJlbiA9IFt0aGlzLl9jb250ZW50RG9jdW1lbnRdOwpAQCAtMjIxLDYgKzIzMywxMSBAQCBX
ZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl9pc0luU2hhZG93VHJlZTsKICAgICB9CiAKKyAg
ICBpc1BzZXVkb0VsZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BzZXVkb1R5
cGUgIT09IHVuZGVmaW5lZDsKKyAgICB9CisKICAgICBub2RlVHlwZSgpCiAgICAgewogICAgICAg
ICByZXR1cm4gdGhpcy5fbm9kZVR5cGU7CkBAIC0yNDYsNiArMjYzLDMxIEBAIFdlYkluc3BlY3Rv
ci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAg
ICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsTmFtZTsKICAgICB9CiAKKyAgICBwc2V1ZG9UeXBlKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wc2V1ZG9UeXBlOworICAgIH0KKworICAgIGhh
c1BzZXVkb0VsZW1lbnRzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wc2V1ZG9FbGVt
ZW50cy5zaXplID4gMDsKKyAgICB9CisKKyAgICBwc2V1ZG9FbGVtZW50cygpCisgICAgeworICAg
ICAgICByZXR1cm4gdGhpcy5fcHNldWRvRWxlbWVudHM7CisgICAgfQorCisgICAgYmVmb3JlUHNl
dWRvRWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcHNldWRvRWxlbWVudHMu
Z2V0KFdlYkluc3BlY3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkJlZm9yZSkgfHwgbnVs
bDsKKyAgICB9CisKKyAgICBhZnRlclBzZXVkb0VsZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3BzZXVkb0VsZW1lbnRzLmdldChXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9F
bGVtZW50VHlwZS5BZnRlcikgfHwgbnVsbDsKKyAgICB9CisKICAgICBub2RlVmFsdWUoKQogICAg
IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVWYWx1ZTsKQEAgLTQwNyw2ICs0NDksOSBAQCBX
ZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAKICAgICBhcHByb3ByaWF0ZVNlbGVjdG9yRm9yKGp1c3RTZWxlY3RvcikKICAgICB7
CisgICAgICAgIGlmICh0aGlzLmlzUHNldWRvRWxlbWVudCgpKQorICAgICAgICAgICAgcmV0dXJu
IHRoaXMucGFyZW50Tm9kZS5hcHByb3ByaWF0ZVNlbGVjdG9yRm9yKCkgKyAiOjoiICsgdGhpcy5f
cHNldWRvVHlwZTsKKwogICAgICAgICB2YXIgbG93ZXJDYXNlTmFtZSA9IHRoaXMubG9jYWxOYW1l
KCkgfHwgdGhpcy5ub2RlTmFtZSgpLnRvTG93ZXJDYXNlKCk7CiAKICAgICAgICAgdmFyIGlkID0g
dGhpcy5nZXRBdHRyaWJ1dGUoImlkIik7CkBAIC00NzUsNyArNTIwLDEyIEBAIFdlYkluc3BlY3Rv
ci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAog
ICAgIF9yZW1vdmVDaGlsZChub2RlKQogICAgIHsKLSAgICAgICAgdGhpcy5fY2hpbGRyZW4uc3Bs
aWNlKHRoaXMuX2NoaWxkcmVuLmluZGV4T2Yobm9kZSksIDEpOworICAgICAgICAvLyBGSVhNRTog
SGFuZGxlIHJlbW92YWwgaWYgdGhpcyBpcyBhIHNoYWRvdyByb290LgorICAgICAgICBpZiAobm9k
ZS5pc1BzZXVkb0VsZW1lbnQoKSkKKyAgICAgICAgICAgIHRoaXMuX3BzZXVkb0VsZW1lbnRzLmRl
bGV0ZShub2RlLnBzZXVkb1R5cGUoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMu
X2NoaWxkcmVuLnNwbGljZSh0aGlzLl9jaGlsZHJlbi5pbmRleE9mKG5vZGUpLCAxKTsKKwogICAg
ICAgICBub2RlLnBhcmVudE5vZGUgPSBudWxsOwogICAgICAgICB0aGlzLl9yZW51bWJlcigpOwog
ICAgIH0KQEAgLTQ4OCw4ICs1MzgsNyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERP
TU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAgICAgdGhpcy5fY2hpbGRy
ZW4gPSB0aGlzLl9zaGFkb3dSb290cy5zbGljZSgpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHBheWxvYWRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcGF5bG9hZCA9IHBh
eWxvYWRzW2ldOwotICAgICAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTU5v
ZGUodGhpcy5fZG9tQWdlbnQsIHRoaXMub3duZXJEb2N1bWVudCwgdGhpcy5faXNJblNoYWRvd1Ry
ZWUsIHBheWxvYWQpOworICAgICAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRP
TU5vZGUodGhpcy5fZG9tQWdlbnQsIHRoaXMub3duZXJEb2N1bWVudCwgdGhpcy5faXNJblNoYWRv
d1RyZWUsIHBheWxvYWRzW2ldKTsKICAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVuLnB1c2gobm9k
ZSk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fcmVudW1iZXIoKTsKQEAgLTU5NywzICs2NDYs
OCBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZS5FdmVudCA9IHsKICAgICBBdHRyaWJ1dGVNb2RpZmll
ZDogImRvbS1ub2RlLWF0dHJpYnV0ZS1tb2RpZmllZCIsCiAgICAgQXR0cmlidXRlUmVtb3ZlZDog
ImRvbS1ub2RlLWF0dHJpYnV0ZS1yZW1vdmVkIgogfTsKKworV2ViSW5zcGVjdG9yLkRPTU5vZGUu
UHNldWRvRWxlbWVudFR5cGUgPSB7CisgICAgQmVmb3JlOiAiYmVmb3JlIiwKKyAgICBBZnRlcjog
ImFmdGVyIiwKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9ET01PYnNlcnZlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Byb3RvY29sL0RPTU9ic2VydmVyLmpzCmluZGV4IGEwMjI4YzkuLjcwYjliYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
L0RPTU9ic2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0RPTU9ic2VydmVyLmpzCkBAIC04MSw0ICs4MSwxNCBAQCBXZWJJbnNwZWN0b3Iu
RE9NT2JzZXJ2ZXIgPSBjbGFzcyBET01PYnNlcnZlcgogICAgIHsKICAgICAgICAgV2ViSW5zcGVj
dG9yLmRvbVRyZWVNYW5hZ2VyLl9jaGlsZE5vZGVSZW1vdmVkKHBhcmVudE5vZGVJZCwgbm9kZUlk
KTsKICAgICB9CisKKyAgICBwc2V1ZG9FbGVtZW50QWRkZWQocGFyZW50Tm9kZUlkLCBwc2V1ZG9F
bGVtZW50KQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLl9wc2V1
ZG9FbGVtZW50QWRkZWQocGFyZW50Tm9kZUlkLCBwc2V1ZG9FbGVtZW50KTsKKyAgICB9CisKKyAg
ICBwc2V1ZG9FbGVtZW50UmVtb3ZlZChwYXJlbnROb2RlSWQsIHBzZXVkb0VsZW1lbnRJZCkKKyAg
ICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5fcHNldWRvRWxlbWVudFJl
bW92ZWQocGFyZW50Tm9kZUlkLCBwc2V1ZG9FbGVtZW50SWQpOworICAgIH0KIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURl
dGFpbHNTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwuanMKaW5kZXggYWMzNjRjNy4uYjIz
ZGQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpA
QCAtMTU3LDEyICsxNTcsMjAgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQ
YW5lbCA9IGNsYXNzIENTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCBleHQKIAogICAgIGFkZEV2
ZW50TGlzdGVuZXJzKCkKICAgICB7Ci0gICAgICAgIHRoaXMuZG9tTm9kZS5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5ET01Ob2RlLkV2ZW50LkVuYWJsZWRQc2V1ZG9DbGFzc2VzQ2hhbmdl
ZCwgdGhpcy5fdXBkYXRlUHNldWRvQ2xhc3NDaGVja2JveGVzLCB0aGlzKTsKKyAgICAgICAgdmFy
IGVmZmVjdGl2ZURPTU5vZGUgPSB0aGlzLmRvbU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkgPyB0aGlz
LmRvbU5vZGUucGFyZW50Tm9kZSA6IHRoaXMuZG9tTm9kZTsKKyAgICAgICAgaWYgKCFlZmZlY3Rp
dmVET01Ob2RlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGVmZmVjdGl2ZURPTU5v
ZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NTm9kZS5FdmVudC5FbmFibGVkUHNl
dWRvQ2xhc3Nlc0NoYW5nZWQsIHRoaXMuX3VwZGF0ZVBzZXVkb0NsYXNzQ2hlY2tib3hlcywgdGhp
cyk7CiAgICAgfQogCiAgICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcnMoKQogICAgIHsKLSAgICAgICAg
dGhpcy5kb21Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CisgICAg
ICAgIHZhciBlZmZlY3RpdmVET01Ob2RlID0gdGhpcy5kb21Ob2RlLmlzUHNldWRvRWxlbWVudCgp
ID8gdGhpcy5kb21Ob2RlLnBhcmVudE5vZGUgOiB0aGlzLmRvbU5vZGU7CisgICAgICAgIGlmICgh
ZWZmZWN0aXZlRE9NTm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBlZmZlY3Rp
dmVET01Ob2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIobnVsbCwgbnVsbCwgdGhpcyk7CiAgICAgfQog
CiAgICAgLy8gUHJpdmF0ZQpAQCAtMjM1LDcgKzI0Myw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHls
ZURldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwg
ZXh0CiAgICAgICAgIGlmICghdGhpcy5kb21Ob2RlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIHRoaXMuZG9tTm9kZS5zZXRQc2V1ZG9DbGFzc0VuYWJsZWQocHNldWRvQ2xhc3MsIGV2
ZW50LnRhcmdldC5jaGVja2VkKTsKKyAgICAgICAgdmFyIGVmZmVjdGl2ZURPTU5vZGUgPSB0aGlz
LmRvbU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkgPyB0aGlzLmRvbU5vZGUucGFyZW50Tm9kZSA6IHRo
aXMuZG9tTm9kZTsKKworICAgICAgICBlZmZlY3RpdmVET01Ob2RlLnNldFBzZXVkb0NsYXNzRW5h
YmxlZChwc2V1ZG9DbGFzcywgZXZlbnQudGFyZ2V0LmNoZWNrZWQpOwogICAgIH0KIAogICAgIF91
cGRhdGVQc2V1ZG9DbGFzc0NoZWNrYm94ZXMoKQpAQCAtMjQzLDcgKzI1Myw5IEBAIFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDU1NTdHlsZURldGFpbHNT
aWRlYmFyUGFuZWwgZXh0CiAgICAgICAgIGlmICghdGhpcy5kb21Ob2RlKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIHZhciBlbmFibGVkUHNldWRvQ2xhc3NlcyA9IHRoaXMuZG9tTm9k
ZS5lbmFibGVkUHNldWRvQ2xhc3NlczsKKyAgICAgICAgdmFyIGVmZmVjdGl2ZURPTU5vZGUgPSB0
aGlzLmRvbU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkgPyB0aGlzLmRvbU5vZGUucGFyZW50Tm9kZSA6
IHRoaXMuZG9tTm9kZTsKKworICAgICAgICB2YXIgZW5hYmxlZFBzZXVkb0NsYXNzZXMgPSBlZmZl
Y3RpdmVET01Ob2RlLmVuYWJsZWRQc2V1ZG9DbGFzc2VzOwogCiAgICAgICAgIGZvciAodmFyIHBz
ZXVkb0NsYXNzIGluIHRoaXMuX2ZvcmNlZFBzZXVkb0NsYXNzQ2hlY2tib3hlcykgewogICAgICAg
ICAgICAgdmFyIGNoZWNrYm94RWxlbWVudCA9IHRoaXMuX2ZvcmNlZFBzZXVkb0NsYXNzQ2hlY2ti
b3hlc1twc2V1ZG9DbGFzc107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCmluZGV4IDI2Y2YxN2QuLmVl
ZThiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0RPTVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50LmpzCkBAIC0zNSw3ICszNSw3IEBAIFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5z
cGVjdG9yLlRyZWVFbGVtCiAgICAgICAgIHN1cGVyKCIiLCBub2RlKTsKIAogICAgICAgICB0aGlz
Ll9lbGVtZW50Q2xvc2VUYWcgPSBlbGVtZW50Q2xvc2VUYWc7Ci0gICAgICAgIHRoaXMuaGFzQ2hp
bGRyZW4gPSAhZWxlbWVudENsb3NlVGFnICYmIG5vZGUuaGFzQ2hpbGROb2RlcygpICYmICF0aGlz
Ll9zaG93SW5saW5lVGV4dChub2RlKTsKKyAgICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9ICFlbGVt
ZW50Q2xvc2VUYWcgJiYgdGhpcy5faGFzVmlzaWJsZUNoaWxkcmVuKCk7CiAKICAgICAgICAgaWYg
KHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUoKSA9PT0gTm9kZS5FTEVNRU5UX05PREUg
JiYgIWVsZW1lbnRDbG9zZVRhZykKICAgICAgICAgICAgIHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMg
PSB0cnVlOwpAQCAtMTU5LDcgKzE1OSwxMCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQg
PSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogCiAg
ICAgZ2V0IGVkaXRhYmxlKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0LmlzSW5TaGFkb3dUcmVlKCkpCisgICAgICAgIHZhciBub2RlID0gdGhpcy5yZXByZXNlbnRl
ZE9iamVjdDsKKyAgICAgICAgaWYgKG5vZGUuaXNJblNoYWRvd1RyZWUoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKG5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgcmV0dXJuIHRoaXMudHJlZU91dGxpbmUu
ZWRpdGFibGU7CkBAIC0xOTAsMTkgKzE5MywyMiBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1l
bnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQog
ICAgICAgICByZXR1cm4gY291bnQ7CiAgICAgfQogCi0gICAgc2hvd0NoaWxkKGluZGV4KQorICAg
IHNob3dDaGlsZE5vZGUobm9kZSkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlz
Ll9lbGVtZW50Q2xvc2VUYWcpOwogICAgICAgICBpZiAodGhpcy5fZWxlbWVudENsb3NlVGFnKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAg
ICAgICAgdmFyIGluZGV4ID0gdGhpcy5fdmlzaWJsZUNoaWxkcmVuKCkuaW5kZXhPZihub2RlKTsK
KyAgICAgICAgaWYgKGluZGV4ID09PSAtMSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOwogCiAg
ICAgICAgIGlmIChpbmRleCA+PSB0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCkgewogICAgICAg
ICAgICAgdGhpcy5fZXhwYW5kZWRDaGlsZHJlbkxpbWl0ID0gaW5kZXggKyAxOwogICAgICAgICAg
ICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW4odHJ1ZSk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBX
aGV0aGVyIGluZGV4LXRoIGNoaWxkIGlzIHZpc2libGUgaW4gdGhlIGNoaWxkcmVuIHRyZWUKLSAg
ICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRDaGlsZENvdW50ID4gaW5kZXg7CisgICAgICAgIHJl
dHVybiB0aGlzLmNoaWxkcmVuW2luZGV4XTsKICAgICB9CiAKICAgICBfY3JlYXRlVG9vbHRpcEZv
ck5vZGUoKQpAQCAtMjg1LDcgKzI5MSw3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9
IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAKICAg
ICBvbnBvcHVsYXRlKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCB8
fCB0aGlzLl9zaG93SW5saW5lVGV4dCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0KSB8fCB0aGlzLl9l
bGVtZW50Q2xvc2VUYWcpCisgICAgICAgIGlmICh0aGlzLmNoaWxkcmVuLmxlbmd0aCB8fCAhdGhp
cy5faGFzVmlzaWJsZUNoaWxkcmVuKCkgfHwgdGhpcy5fZWxlbWVudENsb3NlVGFnKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMudXBkYXRlQ2hpbGRyZW4oKTsKQEAgLTMwMCw2
ICszMDYsNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxl
bWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgIHsKICAgICAgICAgaWYgKHRo
aXMuX2VsZW1lbnRDbG9zZVRhZykKICAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LmdldENoaWxkTm9kZXModGhpcy5fdXBkYXRlQ2hpbGRyZW4uYmlu
ZCh0aGlzLCBmdWxsUmVmcmVzaCkpOwogICAgIH0KIApAQCAtMzI2LDc4ICszMzMsODUgQEAgV2Vi
SW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBX
ZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlz
Ll91cGRhdGVDaGlsZHJlbkluUHJvZ3Jlc3MgPSB0cnVlOworCisgICAgICAgIHZhciBub2RlID0g
dGhpcy5yZXByZXNlbnRlZE9iamVjdDsKICAgICAgICAgdmFyIHNlbGVjdGVkTm9kZSA9IHRoaXMu
dHJlZU91dGxpbmUuc2VsZWN0ZWRET01Ob2RlKCk7CiAgICAgICAgIHZhciBvcmlnaW5hbFNjcm9s
bFRvcCA9IDA7Ci0gICAgICAgIGlmIChmdWxsUmVmcmVzaCkgeworCisgICAgICAgIHZhciBoYXNW
aXNpYmxlQ2hpbGRyZW4gPSB0aGlzLl9oYXNWaXNpYmxlQ2hpbGRyZW4oKTsKKworICAgICAgICBp
ZiAoZnVsbFJlZnJlc2ggfHwgIWhhc1Zpc2libGVDaGlsZHJlbikgewogICAgICAgICAgICAgdmFy
IHRyZWVPdXRsaW5lQ29udGFpbmVyRWxlbWVudCA9IHRoaXMudHJlZU91dGxpbmUuZWxlbWVudC5w
YXJlbnROb2RlOwogICAgICAgICAgICAgb3JpZ2luYWxTY3JvbGxUb3AgPSB0cmVlT3V0bGluZUNv
bnRhaW5lckVsZW1lbnQuc2Nyb2xsVG9wOwogICAgICAgICAgICAgdmFyIHNlbGVjdGVkVHJlZUVs
ZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQ7CiAgICAgICAgICAg
ICBpZiAoc2VsZWN0ZWRUcmVlRWxlbWVudCAmJiBzZWxlY3RlZFRyZWVFbGVtZW50Lmhhc0FuY2Vz
dG9yKHRoaXMpKQogICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCk7CiAgICAgICAgICAgICB0
aGlzLnJlbW92ZUNoaWxkcmVuKCk7Ci0gICAgICAgIH0KIAotICAgICAgICB2YXIgdHJlZUVsZW1l
bnQgPSB0aGlzOwotICAgICAgICB2YXIgdHJlZUNoaWxkSW5kZXggPSAwOwotICAgICAgICB2YXIg
ZWxlbWVudFRvU2VsZWN0OwotCi0gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUNoaWxkcmVuT2ZOb2Rl
KG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciB0cmVlT3V0bGluZSA9IHRyZWVFbGVt
ZW50LnRyZWVPdXRsaW5lOwotICAgICAgICAgICAgdmFyIGNoaWxkID0gbm9kZS5maXJzdENoaWxk
OwotICAgICAgICAgICAgd2hpbGUgKGNoaWxkKSB7Ci0gICAgICAgICAgICAgICAgdmFyIGN1cnJl
bnRUcmVlRWxlbWVudCA9IHRyZWVFbGVtZW50LmNoaWxkcmVuW3RyZWVDaGlsZEluZGV4XTsKLSAg
ICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRUcmVlRWxlbWVudCB8fCBjdXJyZW50VHJlZUVsZW1l
bnQucmVwcmVzZW50ZWRPYmplY3QgIT09IGNoaWxkKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8v
IEZpbmQgYW55IGV4aXN0aW5nIGVsZW1lbnQgdGhhdCBpcyBsYXRlciBpbiB0aGUgY2hpbGRyZW4g
bGlzdC4KLSAgICAgICAgICAgICAgICAgICAgdmFyIGV4aXN0aW5nVHJlZUVsZW1lbnQgPSBudWxs
OwotICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gKHRyZWVDaGlsZEluZGV4ICsgMSks
IHNpemUgPSB0cmVlRWxlbWVudC5leHBhbmRlZENoaWxkQ291bnQ7IGkgPCBzaXplOyArK2kpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5jaGlsZHJlbltpXS5yZXBy
ZXNlbnRlZE9iamVjdCA9PT0gY2hpbGQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eGlzdGluZ1RyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQuY2hpbGRyZW5baV07Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdUcmVl
RWxlbWVudCAmJiBleGlzdGluZ1RyZWVFbGVtZW50LnBhcmVudCA9PT0gdHJlZUVsZW1lbnQpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIGFuIGV4aXN0aW5nIGVsZW1lbnQgd2FzIGZv
dW5kIGFuZCBpdCBoYXMgdGhlIHNhbWUgcGFyZW50LCBqdXN0IG1vdmUgaXQuCi0gICAgICAgICAg
ICAgICAgICAgICAgICB0cmVlRWxlbWVudC5tb3ZlQ2hpbGQoZXhpc3RpbmdUcmVlRWxlbWVudCwg
dHJlZUNoaWxkSW5kZXgpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gTm8gZXhpc3RpbmcgZWxlbWVudCBmb3VuZCwgaW5zZXJ0IGEgbmV3
IGVsZW1lbnQuCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJlZUNoaWxkSW5kZXggPCB0
cmVlRWxlbWVudC5leHBhbmRlZENoaWxkcmVuTGltaXQpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgbmV3RWxlbWVudCA9IHRyZWVFbGVtZW50Lmluc2VydENoaWxkRWxlbWVudChj
aGlsZCwgdHJlZUNoaWxkSW5kZXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj
aGlsZCA9PT0gc2VsZWN0ZWROb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bGVtZW50VG9TZWxlY3QgPSBuZXdFbGVtZW50OwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICh0cmVlRWxlbWVudC5leHBhbmRlZENoaWxkQ291bnQgPiB0cmVlRWxlbWVudC5leHBhbmRl
ZENoaWxkcmVuTGltaXQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVFbGVt
ZW50LmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZzsKLSAgICAgICAgICAgICAgICArK3RyZWVDaGls
ZEluZGV4OworICAgICAgICAgICAgLy8gTm8gbG9uZ2VyIGhhdmUgY2hpbGRyZW4uCisgICAgICAg
ICAgICBpZiAoIWhhc1Zpc2libGVDaGlsZHJlbikgeworICAgICAgICAgICAgICAgIHRoaXMuaGFz
Q2hpbGRyZW4gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKCk7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW5JblByb2dyZXNzID0gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKKyAgICAg
ICAgLy8gV2Ugbm93IGhhdmUgY2hpbGRyZW4uCisgICAgICAgIGlmICghdGhpcy5oYXNDaGlsZHJl
bikgeworICAgICAgICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9IHRydWU7CisgICAgICAgICAgICB0
aGlzLnVwZGF0ZVRpdGxlKCk7CisgICAgICAgIH0KKwogICAgICAgICAvLyBSZW1vdmUgYW55IHRy
ZWUgZWxlbWVudHMgdGhhdCBubyBsb25nZXIgaGF2ZSB0aGlzIG5vZGUgKG9yIHRoaXMgbm9kZSdz
IGNvbnRlbnREb2N1bWVudCkgYXMgdGhlaXIgcGFyZW50LgorICAgICAgICAvLyBLZWVwIGEgbGlz
dCBvZiBleGlzdGluZyB0cmVlIGVsZW1lbnRzIGZvciBub2RlcyB0aGF0IHdlIGNhbiB1c2UgbGF0
ZXIuCisgICAgICAgIHZhciBleGlzdGluZ0NoaWxkVHJlZUVsZW1lbnRzID0gbmV3IE1hcDsKICAg
ICAgICAgZm9yICh2YXIgaSA9ICh0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDEpOyBpID49IDA7IC0t
aSkgewotICAgICAgICAgICAgdmFyIGN1cnJlbnRDaGlsZCA9IHRoaXMuY2hpbGRyZW5baV07Ci0g
ICAgICAgICAgICB2YXIgY3VycmVudE5vZGUgPSBjdXJyZW50Q2hpbGQucmVwcmVzZW50ZWRPYmpl
Y3Q7CisgICAgICAgICAgICB2YXIgY3VycmVudENoaWxkVHJlZUVsZW1lbnQgPSB0aGlzLmNoaWxk
cmVuW2ldOworICAgICAgICAgICAgdmFyIGN1cnJlbnROb2RlID0gY3VycmVudENoaWxkVHJlZUVs
ZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgICAgICB2YXIgY3VycmVudFBhcmVudE5v
ZGUgPSBjdXJyZW50Tm9kZS5wYXJlbnROb2RlOwotCi0gICAgICAgICAgICBpZiAoY3VycmVudFBh
cmVudE5vZGUgPT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCisgICAgICAgICAgICBpZiAoY3Vy
cmVudFBhcmVudE5vZGUgPT09IG5vZGUpIHsKKyAgICAgICAgICAgICAgICBleGlzdGluZ0NoaWxk
VHJlZUVsZW1lbnRzLnNldChjdXJyZW50Tm9kZSwgY3VycmVudENoaWxkVHJlZUVsZW1lbnQpOwog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB2
YXIgc2VsZWN0ZWRUcmVlRWxlbWVudCA9IHRoaXMudHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxl
bWVudDsKLSAgICAgICAgICAgIGlmIChzZWxlY3RlZFRyZWVFbGVtZW50ICYmIChzZWxlY3RlZFRy
ZWVFbGVtZW50ID09PSBjdXJyZW50Q2hpbGQgfHwgc2VsZWN0ZWRUcmVlRWxlbWVudC5oYXNBbmNl
c3RvcihjdXJyZW50Q2hpbGQpKSkKKyAgICAgICAgICAgIGlmIChzZWxlY3RlZFRyZWVFbGVtZW50
ICYmIChzZWxlY3RlZFRyZWVFbGVtZW50ID09PSBjdXJyZW50Q2hpbGRUcmVlRWxlbWVudCB8fCBz
ZWxlY3RlZFRyZWVFbGVtZW50Lmhhc0FuY2VzdG9yKGN1cnJlbnRDaGlsZFRyZWVFbGVtZW50KSkp
CiAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoKTsKIAogICAgICAgICAgICAgdGhpcy5yZW1v
dmVDaGlsZEF0SW5kZXgoaSk7CiAgICAgICAgIH0KIAotICAgICAgICB1cGRhdGVDaGlsZHJlbk9m
Tm9kZSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgLy8gTW92ZSAvIGNyZWF0ZSBU
cmVlRWxlbWVudHMgZm9yIG91ciB2aXNpYmxlIGNoaWxkcmVuLgorICAgICAgICB2YXIgY2hpbGRJ
bmRleCA9IDA7CisgICAgICAgIHZhciBlbGVtZW50VG9TZWxlY3QgPSBudWxsOworICAgICAgICB2
YXIgdmlzaWJsZUNoaWxkcmVuID0gdGhpcy5fdmlzaWJsZUNoaWxkcmVuKCk7CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCAmJiBpIDwgdGhpcy5leHBh
bmRlZENoaWxkcmVuTGltaXQ7ICsraSkgeworICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9IHZp
c2libGVDaGlsZHJlbltpXTsKKworICAgICAgICAgICAgLy8gQWxyZWFkeSBoYXZlIGEgdHJlZSBl
bGVtZW50IGZvciB0aGlzIGNoaWxkLCBqdXN0IG1vdmUgaXQuCisgICAgICAgICAgICB2YXIgZXhp
c3RpbmdDaGlsZFRyZWVFbGVtZW50ID0gZXhpc3RpbmdDaGlsZFRyZWVFbGVtZW50cy5nZXQoY2hp
bGROb2RlKTsKKyAgICAgICAgICAgIGlmIChleGlzdGluZ0NoaWxkVHJlZUVsZW1lbnQpIHsKKyAg
ICAgICAgICAgICAgICB0aGlzLm1vdmVDaGlsZChleGlzdGluZ0NoaWxkVHJlZUVsZW1lbnQsIGkp
OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAvLyBObyBleGlzdGluZyB0cmVlIGVsZW1lbnQgZm9yIHRoaXMgY2hpbGQuIEluc2VydCBhIG5l
dyBlbGVtZW50LgorICAgICAgICAgICAgdmFyIG5ld0NoaWxkVHJlZUVsZW1lbnQgPSB0aGlzLmlu
c2VydENoaWxkRWxlbWVudChjaGlsZE5vZGUsIGkpOworCisgICAgICAgICAgICAvLyBVcGRhdGUg
c3RhdGUuCisgICAgICAgICAgICBpZiAoY2hpbGROb2RlID09PSBzZWxlY3RlZE5vZGUpCisgICAg
ICAgICAgICAgICAgZWxlbWVudFRvU2VsZWN0ID0gbmV3Q2hpbGRUcmVlRWxlbWVudDsKKyAgICAg
ICAgICAgIGlmICh0aGlzLmV4cGFuZGVkQ2hpbGRDb3VudCA+IHRoaXMuZXhwYW5kZWRDaGlsZHJl
bkxpbWl0KQorICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWRDaGlsZHJlbkxpbWl0Kys7Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBVcGRhdGUgZXhwYW5kIGFsbCBjaGlsZHJlbiBidXR0b24u
CiAgICAgICAgIHRoaXMuYWRqdXN0Q29sbGFwc2VkUmFuZ2UoKTsKIAorICAgICAgICAvLyBJbnNl
cnQgY2xvc2luZyB0YWcgdHJlZSBlbGVtZW50LgogICAgICAgICB2YXIgbGFzdENoaWxkID0gdGhp
cy5jaGlsZHJlbi5sYXN0VmFsdWU7Ci0gICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0
Lm5vZGVUeXBlKCkgPT09IE5vZGUuRUxFTUVOVF9OT0RFICYmICghbGFzdENoaWxkIHx8ICFsYXN0
Q2hpbGQuX2VsZW1lbnRDbG9zZVRhZykpCisgICAgICAgIGlmIChub2RlLm5vZGVUeXBlKCkgPT09
IE5vZGUuRUxFTUVOVF9OT0RFICYmICghbGFzdENoaWxkIHx8ICFsYXN0Q2hpbGQuX2VsZW1lbnRD
bG9zZVRhZykpCiAgICAgICAgICAgICB0aGlzLmluc2VydENoaWxkRWxlbWVudCh0aGlzLnJlcHJl
c2VudGVkT2JqZWN0LCB0aGlzLmNoaWxkcmVuLmxlbmd0aCwgdHJ1ZSk7CiAKICAgICAgICAgLy8g
V2Ugd2FudCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBzZWxlY3Rpb24gYW5kIHRyZWUgc2Nyb2xs
IHBvc2l0aW9uIGFmdGVyIGEgZnVsbCByZWZyZXNoLCBpZiBwb3NzaWJsZS4KQEAgLTQxOCwxNiAr
NDMyLDE4IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVt
ZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgICAgICB0aGlzLnJlbW92
ZUNoaWxkKHRoaXMuZXhwYW5kQWxsQnV0dG9uRWxlbWVudC5fX3RyZWVFbGVtZW50KTsKIAogICAg
ICAgICB2YXIgbm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7Ci0gICAgICAgIGlmICghbm9k
ZS5jaGlsZHJlbikKKyAgICAgICAgaWYgKCF0aGlzLl9oYXNWaXNpYmxlQ2hpbGRyZW4oKSkKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdmFyIGNoaWxkTm9kZUNvdW50ID0gbm9kZS5jaGls
ZHJlbi5sZW5ndGg7CisKKyAgICAgICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IHRoaXMuX3Zpc2li
bGVDaGlsZHJlbigpOworICAgICAgICB2YXIgdG90YWxDaGlsZHJlbkNvdW50ID0gdmlzaWJsZUNo
aWxkcmVuLmxlbmd0aDsKIAogICAgICAgICAvLyBJbiBjYXNlIHNvbWUgbm9kZXMgZnJvbSB0aGUg
ZXhwYW5kZWQgcmFuZ2Ugd2VyZSByZW1vdmVkLCBwdWxsIHNvbWUgbm9kZXMgZnJvbSB0aGUgY29s
bGFwc2VkIHJhbmdlIGludG8gdGhlIGV4cGFuZGVkIHJhbmdlIGF0IHRoZSBib3R0b20uCi0gICAg
ICAgIGZvciAodmFyIGkgPSB0aGlzLmV4cGFuZGVkQ2hpbGRDb3VudCwgbGltaXQgPSBNYXRoLm1p
bih0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCwgY2hpbGROb2RlQ291bnQpOyBpIDwgbGltaXQ7
ICsraSkKLSAgICAgICAgICAgIHRoaXMuaW5zZXJ0Q2hpbGRFbGVtZW50KG5vZGUuY2hpbGRyZW5b
aV0sIGkpOworICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5leHBhbmRlZENoaWxkQ291bnQsIGxp
bWl0ID0gTWF0aC5taW4odGhpcy5leHBhbmRlZENoaWxkcmVuTGltaXQsIHRvdGFsQ2hpbGRyZW5D
b3VudCk7IGkgPCBsaW1pdDsgKytpKQorICAgICAgICAgICAgdGhpcy5pbnNlcnRDaGlsZEVsZW1l
bnQodG90YWxDaGlsZHJlbkNvdW50W2ldLCBpKTsKIAogICAgICAgICB2YXIgZXhwYW5kZWRDaGls
ZENvdW50ID0gdGhpcy5leHBhbmRlZENoaWxkQ291bnQ7Ci0gICAgICAgIGlmIChjaGlsZE5vZGVD
b3VudCA+IHRoaXMuZXhwYW5kZWRDaGlsZENvdW50KSB7CisgICAgICAgIGlmICh0b3RhbENoaWxk
cmVuQ291bnQgPiB0aGlzLmV4cGFuZGVkQ2hpbGRDb3VudCkgewogICAgICAgICAgICAgdmFyIHRh
cmdldEJ1dHRvbkluZGV4ID0gZXhwYW5kZWRDaGlsZENvdW50OwogICAgICAgICAgICAgaWYgKCF0
aGlzLmV4cGFuZEFsbEJ1dHRvbkVsZW1lbnQpIHsKICAgICAgICAgICAgICAgICB2YXIgYnV0dG9u
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CkBAIC00NDUsMTQgKzQ2MSwxNiBA
QCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRl
bmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5l
eHBhbmRBbGxCdXR0b25FbGVtZW50Ll9fdHJlZUVsZW1lbnQucGFyZW50KQogICAgICAgICAgICAg
ICAgIHRoaXMuaW5zZXJ0Q2hpbGQodGhpcy5leHBhbmRBbGxCdXR0b25FbGVtZW50Ll9fdHJlZUVs
ZW1lbnQsIHRhcmdldEJ1dHRvbkluZGV4KTsKIAotICAgICAgICAgICAgdGhpcy5leHBhbmRBbGxC
dXR0b25FbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IEFs
bCBOb2RlcyAoJWQgTW9yZSkiKS5mb3JtYXQoY2hpbGROb2RlQ291bnQgLSBleHBhbmRlZENoaWxk
Q291bnQpOworICAgICAgICAgICAgdGhpcy5leHBhbmRBbGxCdXR0b25FbGVtZW50LnRleHRDb250
ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IEFsbCBOb2RlcyAoJWQgTW9yZSkiKS5m
b3JtYXQodG90YWxDaGlsZHJlbkNvdW50IC0gZXhwYW5kZWRDaGlsZENvdW50KTsKICAgICAgICAg
fSBlbHNlIGlmICh0aGlzLmV4cGFuZEFsbEJ1dHRvbkVsZW1lbnQpCiAgICAgICAgICAgICB0aGlz
LmV4cGFuZEFsbEJ1dHRvbkVsZW1lbnQgPSBudWxsOwogICAgIH0KIAogICAgIGhhbmRsZUxvYWRB
bGxDaGlsZHJlbigpCiAgICAgewotICAgICAgICB0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9
IE1hdGgubWF4KHRoaXMucmVwcmVzZW50ZWRPYmplY3QuY2hpbGROb2RlQ291bnQsIHRoaXMuZXhw
YW5kZWRDaGlsZHJlbkxpbWl0ICsgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LkluaXRpYWxD
aGlsZHJlbkxpbWl0KTsKKyAgICAgICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IHRoaXMuX3Zpc2li
bGVDaGlsZHJlbigpOworICAgICAgICB2YXIgdG90YWxDaGlsZHJlbkNvdW50ID0gdmlzaWJsZUNo
aWxkcmVuLmxlbmd0aDsKKyAgICAgICAgdGhpcy5leHBhbmRlZENoaWxkcmVuTGltaXQgPSBNYXRo
Lm1heCh2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoLCB0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCAr
IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5Jbml0aWFsQ2hpbGRyZW5MaW1pdCk7CiAgICAg
fQogCiAgICAgb25leHBhbmQoKQpAQCAtNTc1LDcgKzU5Myw3IEBAIFdlYkluc3BlY3Rvci5ET01U
cmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRy
ZWVFbGVtCiAgICAgICAgIGlmICh0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdGVkRE9NTm9kZSgpICE9
PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzSW5TaGFkb3dUcmVlKCkpCisgICAg
ICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzSW5TaGFkb3dUcmVlKCkgfHwgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2RlVHlwZSgpICE9
PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkg
IT09IE5vZGUuVEVYVF9OT0RFKQpAQCAtMTExNCw3ICsxMTMyLDcgQEAgV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
VHJlZUVsZW0KIAogICAgICAgICBzd2l0Y2ggKG5vZGUubm9kZVR5cGUoKSkgewogICAgICAgICAg
ICAgY2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6Ci0gICAgICAgICAgICAgICAgdmFy
IGZyYWdtZW50RWxlbWVudCA9IGluZm8udGl0bGVET00uY3JlYXRlQ2hpbGQoInNwYW4iLCAid2Vi
a2l0LWh0bWwtZnJhZ21lbnQiKTsKKyAgICAgICAgICAgICAgICB2YXIgZnJhZ21lbnRFbGVtZW50
ID0gaW5mby50aXRsZURPTS5jcmVhdGVDaGlsZCgic3BhbiIsICJodG1sLWZyYWdtZW50Iik7CiAg
ICAgICAgICAgICAgICAgaWYgKG5vZGUuaXNJblNoYWRvd1RyZWUoKSkgewogICAgICAgICAgICAg
ICAgICAgICBmcmFnbWVudEVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNoYWRvdyBDb250ZW50Iik7CiAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50RWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJzaGFkb3ciKTsKQEAgLTExMjgsNiArMTE0NiwxNCBAQCBXZWJJbnNw
ZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYklu
c3BlY3Rvci5UcmVlRWxlbQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBj
YXNlIE5vZGUuRUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgICAgIGlmIChub2RlLmlzUHNldWRv
RWxlbWVudCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBwc2V1ZG9FbGVtZW50ID0gaW5m
by50aXRsZURPTS5jcmVhdGVDaGlsZCgic3BhbiIsICJodG1sLXBzZXVkby1lbGVtZW50Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHBzZXVkb0VsZW1lbnQudGV4dENvbnRlbnQgPSAiOjoiICsgbm9k
ZS5wc2V1ZG9UeXBlKCk7CisgICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGVET00uYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlx1MjAwQiIpKTsKKyAgICAgICAgICAgICAg
ICAgICAgaW5mby5oYXNDaGlsZHJlbiA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICB2YXIgdGFnTmFtZSA9IG5v
ZGUubm9kZU5hbWVJbkNvcnJlY3RDYXNlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX2Vs
ZW1lbnRDbG9zZVRhZykgewogICAgICAgICAgICAgICAgICAgICB0aGlzLl9idWlsZFRhZ0RPTShp
bmZvLnRpdGxlRE9NLCB0YWdOYW1lLCB0cnVlLCB0cnVlKTsKQEAgLTEyMzcsNiArMTI2Myw4IEBA
IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAKICAgICAgICAgaWYgKG5vZGUuaGFzU2hhZG93Um9v
dHMoKSkKICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBpZiAobm9kZS5oYXNQc2V1
ZG9FbGVtZW50cygpKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAKICAgICAgICAgdmFyIHNp
YmxpbmcgPSBmaXJzdENoaWxkLm5leHRTaWJsaW5nOwogICAgICAgICByZXR1cm4gc2libGluZyA/
IG51bGwgOiBmaXJzdENoaWxkOwpAQCAtMTI1Miw2ICsxMjgwLDQxIEBAIFdlYkluc3BlY3Rvci5E
T01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9y
LlRyZWVFbGVtCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBfaGFzVmlzaWJs
ZUNoaWxkcmVuKCkKKyAgICB7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdDsKKworICAgICAgICBpZiAodGhpcy5fc2hvd0lubGluZVRleHQobm9kZSkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG5vZGUuaGFzQ2hpbGROb2RlcygpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChub2RlLmhhc1BzZXVkb0VsZW1l
bnRzKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgX3Zpc2libGVDaGlsZHJlbigpCisgICAgeworICAgICAgICB2YXIgbm9k
ZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CisKKyAgICAgICAgdmFyIHZpc2libGVDaGlsZHJl
biA9IFtdOworCisgICAgICAgIHZhciBiZWZvcmVQc2V1ZG9FbGVtZW50ID0gbm9kZS5iZWZvcmVQ
c2V1ZG9FbGVtZW50KCk7CisgICAgICAgIGlmIChiZWZvcmVQc2V1ZG9FbGVtZW50KQorICAgICAg
ICAgICAgdmlzaWJsZUNoaWxkcmVuLnB1c2goYmVmb3JlUHNldWRvRWxlbWVudCk7CisKKyAgICAg
ICAgaWYgKG5vZGUuY2hpbGROb2RlQ291bnQpCisgICAgICAgICAgICB2aXNpYmxlQ2hpbGRyZW4g
PSB2aXNpYmxlQ2hpbGRyZW4uY29uY2F0KG5vZGUuY2hpbGRyZW4pOworCisgICAgICAgIHZhciBh
ZnRlclBzZXVkb0VsZW1lbnQgPSBub2RlLmFmdGVyUHNldWRvRWxlbWVudCgpOworICAgICAgICBp
ZiAoYWZ0ZXJQc2V1ZG9FbGVtZW50KQorICAgICAgICAgICAgdmlzaWJsZUNoaWxkcmVuLnB1c2go
YWZ0ZXJQc2V1ZG9FbGVtZW50KTsKKworICAgICAgICByZXR1cm4gdmlzaWJsZUNoaWxkcmVuOwor
ICAgIH0KKwogICAgIHJlbW92ZSgpCiAgICAgewogICAgICAgICB2YXIgcGFyZW50RWxlbWVudCA9
IHRoaXMucGFyZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50
LmpzCmluZGV4IDIxMDk0ZTMuLjZmNmUwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxl
bWVudFBhdGhDb21wb25lbnQuanMKQEAgLTM0LDggKzM0LDEzIEBAIFdlYkluc3BlY3Rvci5ET01U
cmVlRWxlbWVudFBhdGhDb21wb25lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudFBhdGhDb21wb25l
bnQgZXh0CiAKICAgICAgICAgc3dpdGNoIChub2RlLm5vZGVUeXBlKCkpIHsKICAgICAgICAgY2Fz
ZSBOb2RlLkVMRU1FTlRfTk9ERToKLSAgICAgICAgICAgIGNsYXNzTmFtZSA9IFdlYkluc3BlY3Rv
ci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NRWxlbWVudEljb25TdHlsZUNsYXNzTmFt
ZTsKLSAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yTm9kZShu
b2RlKTsKKyAgICAgICAgICAgIGlmIChub2RlLmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAg
ICAgICAgICAgY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBv
bmVudC5ET01Qc2V1ZG9FbGVtZW50SWNvblN0eWxlQ2xhc3NOYW1lOworICAgICAgICAgICAgICAg
IHRpdGxlID0gIjo6IiArIG5vZGUucHNldWRvVHlwZSgpOworICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICBjbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQ
YXRoQ29tcG9uZW50LkRPTUVsZW1lbnRJY29uU3R5bGVDbGFzc05hbWU7CisgICAgICAgICAgICAg
ICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JOb2RlKG5vZGUpOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBOb2RlLlRFWFRfTk9E
RToKQEAgLTEyOSw2ICsxMzQsNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29t
cG9uZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50IGV4dAogfTsKIAogV2Vi
SW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5ET01FbGVtZW50SWNvblN0eWxl
Q2xhc3NOYW1lID0gImRvbS1lbGVtZW50LWljb24iOworV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVt
ZW50UGF0aENvbXBvbmVudC5ET01Qc2V1ZG9FbGVtZW50SWNvblN0eWxlQ2xhc3NOYW1lID0gImRv
bS1wc2V1ZG8tZWxlbWVudC1pY29uIjsKIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhD
b21wb25lbnQuRE9NVGV4dE5vZGVJY29uU3R5bGVDbGFzc05hbWUgPSAiZG9tLXRleHQtbm9kZS1p
Y29uIjsKIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NQ29tbWVu
dEljb25TdHlsZUNsYXNzTmFtZSA9ICJkb20tY29tbWVudC1pY29uIjsKIFdlYkluc3BlY3Rvci5E
T01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NRG9jdW1lbnRUeXBlSWNvblN0eWxlQ2xhc3NO
YW1lID0gImRvbS1kb2N1bWVudC10eXBlLWljb24iOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuY3NzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuY3NzCmlu
ZGV4IDVjYWNlZjguLmE1OGJiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmNzcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MKQEAgLTE1NCwx
MiArMTU0LDE2IEBACiAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogfQogCisuZG9tLXRyZWUt
b3V0bGluZSAuaHRtbC1wc2V1ZG8tZWxlbWVudCB7CisgICAgY29sb3I6IGJyb3duOworfQorCisu
ZG9tLXRyZWUtb3V0bGluZSAuaHRtbC1mcmFnbWVudC5zaGFkb3cgeworICAgIG9wYWNpdHk6IDAu
NjsKK30KKwogLnNob3dpbmctZmluZC1iYW5uZXIgLmRvbS10cmVlLW91dGxpbmUgLnNlYXJjaC1o
aWdobGlnaHQgewogICAgIGNvbG9yOiBibGFjazsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xh
KDUzLCA4MyUsIDUzJSwgMC4yKTsKICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgaHNsKDQ3
LCA4MiUsIDYwJSk7CiB9Ci0KLS53ZWJraXQtaHRtbC1mcmFnbWVudC5zaGFkb3cgewotICAgIG9w
YWNpdHk6IDAuNjsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKaW5kZXggZmE3ZTUyNi4uMzNhNTA2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
RE9NVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKQEAgLTIyOCwxNCArMjI4LDE1IEBAIFdlYkluc3Bl
Y3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5z
cGVjdG9yLlRyZWVPdXRsCiAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuZmluZFRyZWVF
bGVtZW50KG5vZGUpOwogICAgICAgICBpZiAodHJlZUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1
cm4gdHJlZUVsZW1lbnQ7CisKICAgICAgICAgaWYgKCFub2RlLnBhcmVudE5vZGUpCiAgICAgICAg
ICAgICByZXR1cm4gbnVsbDsKIAogICAgICAgICB0cmVlRWxlbWVudCA9IHRoaXMuY3JlYXRlVHJl
ZUVsZW1lbnRGb3Iobm9kZS5wYXJlbnROb2RlKTsKLSAgICAgICAgaWYgKHRyZWVFbGVtZW50ICYm
IHRyZWVFbGVtZW50LnNob3dDaGlsZChub2RlLmluZGV4KSkKLSAgICAgICAgICAgIHJldHVybiB0
cmVlRWxlbWVudC5jaGlsZHJlbltub2RlLmluZGV4XTsKKyAgICAgICAgaWYgKCF0cmVlRWxlbWVu
dCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOwogCi0gICAgICAgIHJldHVybiBudWxsOworICAg
ICAgICByZXR1cm4gdHJlZUVsZW1lbnQuc2hvd0NoaWxkTm9kZShub2RlKTsKICAgICB9CiAKICAg
ICBzZXQgc3VwcHJlc3NSZXZlYWxBbmRTZWxlY3QoeCkKQEAgLTU0OCwxMiArNTQ5LDE5IEBAIFdl
Ykluc3BlY3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLlRyZWVPdXRsCiAKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK
IAotICAgICAgICB2YXIgc2VsZWN0ZWROb2RlID0gdGhpcy5zZWxlY3RlZFRyZWVFbGVtZW50LnJl
cHJlc2VudGVkT2JqZWN0OwotICAgICAgICBjb25zb2xlLmFzc2VydChzZWxlY3RlZE5vZGUpOwot
ICAgICAgICBpZiAoIXNlbGVjdGVkTm9kZSkKKyAgICAgICAgdmFyIGVmZmVjdGl2ZU5vZGUgPSB0
aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KGVmZmVjdGl2ZU5vZGUpOworICAgICAgICBpZiAoIWVmZmVjdGl2ZU5vZGUpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKHNlbGVjdGVkTm9kZS5ub2RlVHlwZSgp
ICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkKKyAgICAgICAgaWYgKGVmZmVjdGl2ZU5vZGUuaXNQc2V1
ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgICAgIGVmZmVjdGl2ZU5vZGUgPSBlZmZlY3RpdmVOb2Rl
LnBhcmVudE5vZGU7CisgICAgICAgICAgICBjb25zb2xlLmFzc2VydChlZmZlY3RpdmVOb2RlKTsK
KyAgICAgICAgICAgIGlmICghZWZmZWN0aXZlTm9kZSkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0gICAgICAgICAgICAKKworICAgICAgICBpZiAoZWZmZWN0aXZlTm9kZS5ub2Rl
VHlwZSgpICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICBmdW5jdGlvbiByZXNvbHZlZE5vZGUob2JqZWN0KQpAQCAtNTc5LDcgKzU4Nyw3IEBAIFdl
Ykluc3BlY3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRyZWVPdXRsaW5lIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLlRyZWVPdXRsCiAgICAgICAgICAgICBvYmplY3QucmVsZWFzZSgpOwogICAg
ICAgICB9CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5yZXNvbHZlTm9kZShz
ZWxlY3RlZE5vZGUsICIiLCByZXNvbHZlZE5vZGUpOworICAgICAgICBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LnJlc29sdmVOb2RlKGVmZmVjdGl2ZU5vZGUsICIiLCByZXNvbHZlZE5vZGUpOwog
ICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1BhdGhDb21wb25lbnRJY29ucy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9QYXRoQ29tcG9uZW50SWNvbnMuY3NzCmluZGV4IDRkMzg3N2Iu
LjVlNjg5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1BhdGhDb21wb25lbnRJY29ucy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUGF0aENvbXBvbmVudEljb25zLmNzcwpAQCAtMzUsNiArMzUs
MTAgQEAKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL0RPTUVsZW1lbnQuc3ZnKTsKIH0KIAor
LmRvbS1wc2V1ZG8tZWxlbWVudC1pY29uIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoLi4vSW1h
Z2VzL1BzZXVkb0VsZW1lbnQuc3ZnKTsKK30KKwogLmRvbS10ZXh0LW5vZGUtaWNvbiAuaWNvbiB7
CiAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9ET01UZXh0Tm9kZS5zdmcpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHls
ZURldGFpbHNQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmNzcwppbmRleCAxN2FiOTk4NC4uYTY0Y2Y3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVs
ZXNTdHlsZURldGFpbHNQYW5lbC5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3MKQEAgLTUyLDYgKzUyLDEw
IEBACiAgICAgb3BhY2l0eTogMC41OwogfQogCisuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNz
cy1zdHlsZSAucnVsZXMgPiAqOmZpcnN0LWNoaWxkOm1hdGNoZXMoLm5ldy1ydWxlKSB7CisgICAg
bWFyZ2luLXRvcDogOHB4OworfQorCiAuc2lkZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHls
ZSA+IC5jb250ZW50LmZpbHRlci1pbi1wcm9ncmVzcyAubGFiZWwgewogICAgIHBhZGRpbmctdG9w
OiAxNXB4OwogfQo=
</data>
<flag name="review"
          id="282668"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257592</attachid>
            <date>2015-07-27 14:43:22 -0700</date>
            <delta_ts>2015-07-27 15:07:29 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>pseudo-for-landing.patch</filename>
            <type>text/plain</type>
            <size>90266</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZjA5ODBhLi5kNmJkYTQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDct
MjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9wc2V1
ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZv
ci1wc2V1ZG8tZWxlbWVudC1ub2RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
b20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0YXRpYy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGljLmh0bWw6
IEFkZGVkLgorCiAyMDE1LTA3LTI0ICBTYWppZCBBbndhciAgPHNhamlkYW53YXI5NEBnbWFpbC5j
b20+CiAKICAgICAgICAgW01TRV0gSW5jb3JyZWN0IHNhbXBsZSB0aW1lc3RhbXBzIHdoZW4gdXNp
bmcgInNlcXVlbmNlIiBtb2RlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZv
ci1wc2V1ZG8tZWxlbWVudC1ub2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41YmFlNDgzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2Rl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0aW5nIHRoYXQgd2UgY2FuIGdldCBj
b21wdXRlZCBhbmQgbWF0Y2hlZCBydWxlcyBmb3IgcHNldWRvIGVsZW1lbnQgbm9kZXMuCisKK1RF
U1QgRUxFTUVOVDogSGFzIEJlZm9yZSBQc2V1ZG8gRWxlbWVudAorUEFTUzogR290IDo6YmVmb3Jl
IHBzZXVkbyBlbGVtZW50IGZvciAjeAorUmVmcmVzaGluZyBzdHlsZXMgZm9yIDo6YmVmb3JlIHBz
ZXVkbyBlbGVtZW50CisKK1BBU1M6IE5vIElubGluZSBTdHlsZXMKK1BBU1M6IE5vIEF0dHJpYnV0
ZSBTdHlsZXMKK1BBU1M6IE5vIEluaGVyaXRlZCBTdHlsZXMKK1BBU1M6IE5vIFBzZXVkbyBFbGVt
ZW50IFN0eWxlcworUEFTUzogSGFzIENvbXB1dGVkIFN0eWxlcworUFJPUEVSVFk6IGNvbnRlbnQ6
IGJlZm9yZTsKK1BST1BFUlRZOiBjb2xvcjogcmdiKDAsIDAsIDI1NSk7CitNQVRDSEVEIFJVTEU6
CisgIFNFTEVDVE9SOiBpbnB1dDpiZWZvcmUKKyAgU0VMRUNUT1I6ICN4OmJlZm9yZSBbbWF0Y2hl
ZF0KKyAgU0VMRUNUT1I6IGRpdgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hlcy1mb3ItcHNl
dWRvLWVsZW1lbnQtbm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjhiOWZmMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3Bz
ZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbApAQCAtMCww
ICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB2
YXIgbm9kZVN0eWxlcyA9IG51bGw7CisKKyAgICBmdW5jdGlvbiB2YWxpZGF0ZVN0eWxlcygpIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdCghbm9kZVN0eWxlcy5pbmxpbmVTdHlsZSwgIk5vIElubGluZSBTdHlsZXMiKTsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFub2RlU3R5bGVzLmF0dHJpYnV0ZXNT
dHlsZSwgIk5vIEF0dHJpYnV0ZSBTdHlsZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KCFub2RlU3R5bGVzLmluaGVyaXRlZFJ1bGVzLmxlbmd0aCwgIk5vIEluaGVyaXRlZCBT
dHlsZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFPYmplY3Qua2V5cyhu
b2RlU3R5bGVzLnBzZXVkb0VsZW1lbnRzKS5sZW5ndGgsICJObyBQc2V1ZG8gRWxlbWVudCBTdHls
ZXMiKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobm9kZVN0eWxlcy5jb21w
dXRlZFN0eWxlLCAiSGFzIENvbXB1dGVkIFN0eWxlcyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiUFJPUEVSVFk6ICIgKyBub2RlU3R5bGVzLmNvbXB1dGVkU3R5bGUucHJvcGVydHlGb3JO
YW1lKCJjb250ZW50IikudGV4dCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQUk9QRVJU
WTogIiArIG5vZGVTdHlsZXMuY29tcHV0ZWRTdHlsZS5wcm9wZXJ0eUZvck5hbWUoImNvbG9yIiku
dGV4dCk7CisKKyAgICAgICAgZm9yICh2YXIgcnVsZSBvZiBub2RlU3R5bGVzLm1hdGNoZWRSdWxl
cykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIk1BVENIRUQgUlVMRToiKTsKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZS5zZWxlY3RvcnMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgICAgICB2YXIgc2VsZWN0b3IgPSBydWxlLnNlbGVjdG9yc1tpXTsKKyAg
ICAgICAgICAgICAgICB2YXIgbWF0Y2hlZCA9IHJ1bGUubWF0Y2hlZFNlbGVjdG9ySW5kaWNlcy5p
bmNsdWRlcyhpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICBTRUxFQ1RP
UjogIiArIHNlbGVjdG9yLnRleHQgKyAobWF0Y2hlZCA/ICIgW21hdGNoZWRdIiA6ICIiKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOyAgICAgICAgICAgICAgICAKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJl
ZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAg
ICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUu
aWQsICIjeCIsIGZ1bmN0aW9uKGNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAgIHZhciBkb21O
b2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChjb250ZW50Tm9kZUlk
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUpOworICAgICAgICAg
ICAgdmFyIGJlZm9yZVBzZXVkb0VsZW1lbnRET01Ob2RlID0gZG9tTm9kZS5iZWZvcmVQc2V1ZG9F
bGVtZW50KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoYmVmb3JlUHNl
dWRvRWxlbWVudERPTU5vZGUsICJHb3QgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQgZm9yICN4Iik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVmcmVzaGluZyBzdHlsZXMgZm9yIDo6
YmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICBub2RlU3R5bGVzID0gV2ViSW5z
cGVjdG9yLmNzc1N0eWxlTWFuYWdlci5zdHlsZXNGb3JOb2RlKGJlZm9yZVBzZXVkb0VsZW1lbnRE
T01Ob2RlKTsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRE9NTm9kZVN0eWxlcy5FdmVudC5SZWZyZXNoZWQsIHZhbGlkYXRlU3R5bGVzKTsKKyAg
ICAgICAgICAgIG5vZGVTdHlsZXMucmVmcmVzaCgpOworICAgICAgICB9KTsKKyAgICB9KTsKKwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+
VGVzdGluZyB0aGF0IHdlIGNhbiBnZXQgY29tcHV0ZWQgYW5kIG1hdGNoZWQgcnVsZXMgZm9yIHBz
ZXVkbyBlbGVtZW50IG5vZGVzLjwvcD4KKworICAgIDxzdHlsZT4KKyAgICBpbnB1dDpiZWZvcmUs
ICN4OmJlZm9yZSwgZGl2IHsgY29udGVudDogImJlZm9yZSI7IGNvbG9yOiBibHVlOyB9CisgICAg
PC9zdHlsZT4KKworICAgIDxkaXYgaWQ9IngiPlRFU1QgRUxFTUVOVDogSGFzIEJlZm9yZSBQc2V1
ZG8gRWxlbWVudDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJhMzdlMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1p
Yy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OSBAQAorVGVzdCBmb3IgYmFzaWMgRE9NTm9kZSBw
c2V1ZG8gZWxlbWVudCBzdXBwb3J0LgorCitURVNUIEVMRU1FTlQKKworUEFTUzogR290IERPTU5v
ZGUgZm9yICN4CitQQVNTOiBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKKworQWRkIDpi
ZWZvcmUKK0VWRU5UOiBOb2RlSW5zZXJ0ZWQKKworVmVyaWZ5IDpiZWZvcmUgd2FzIGFkZGVkCitQ
QVNTOiAjeCBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUgaGFzIDEg
cHNldWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVu
dAorUEFTUzogRE9NTm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CitQ
QVNTOiBOZXcgRE9NTm9kZSBpcyB0aGUgYmVmb3JlUHNldWRvRWxlbWVudAorUEFTUzogTmV3IERP
TU5vZGUgaXMgYSBjaGlsZCBvZiAjeAorUEFTUzogTmV3IERPTU5vZGUgaXMgYSBiZWZvcmUgcHNl
dWRvIGVsZW1lbnQKKworUmVtb3ZlIDpiZWZvcmUKK0VWRU5UOiBOb2RlUmVtb3ZlZAorCitWZXJp
ZnkgOmJlZm9yZSB3YXMgcmVtb3ZlZAorUEFTUzogI3ggRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVs
ZW1lbnRzCitQQVNTOiBSZW1vdmVkIERPTU5vZGUgd2FzIHRoZSBiZWZvcmUgcHNldWRvIGVsZW1l
bnQKK1BBU1M6IFJlbW92ZWQgRE9NTm9kZSBoYXMgbm8gcGFyZW50CitQQVNTOiBSZW1vdmVkIERP
TU5vZGUgd2FzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CisKK0FkZCA6YWZ0ZXIKK0VWRU5UOiBO
b2RlSW5zZXJ0ZWQKKworVmVyaWZ5IDphZnRlciB3YXMgYWRkZWQKK1BBU1M6ICN4IERPTU5vZGUg
aGFzIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMK
K1BBU1M6IERPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudAorUEFT
UzogRE9NTm9kZSBoYXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6IE5ldyBET01Ob2Rl
IGlzIHRoZSBhZnRlclBzZXVkb0VsZW1lbnQKK1BBU1M6IE5ldyBET01Ob2RlIGlzIGEgY2hpbGQg
b2YgI3gKK1BBU1M6IE5ldyBET01Ob2RlIGlzIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CisKK1Jl
bW92ZSA6YWZ0ZXIKK0VWRU5UOiBOb2RlUmVtb3ZlZAorCitWZXJpZnkgOmFmdGVyIHdhcyByZW1v
dmVkCitQQVNTOiAjeCBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IFJlbW92
ZWQgRE9NTm9kZSB3YXMgdGhlIGFmdGVyIHBzZXVkbyBlbGVtZW50CitQQVNTOiBSZW1vdmVkIERP
TU5vZGUgaGFzIG5vIHBhcmVudAorUEFTUzogUmVtb3ZlZCBET01Ob2RlIHdhcyBhbiBhZnRlciBw
c2V1ZG8gZWxlbWVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3Bz
ZXVkby1lbGVtZW50LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNl
dWRvLWVsZW1lbnQtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjE4YjJkZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9t
L3BzZXVkby1lbGVtZW50LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDE1NiBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiB0ZXN0KCkgeworCisgICAgdmFyIHRlc3RET01Ob2RlID0gbnVsbDsKKyAgICB2YXIgaW5z
ZXJ0ZWRPclJlbW92ZWRET01Ob2RlID0gbnVsbDsKKyAgICB2YXIgcHJldmlvdXNJbnNlcnRlZERP
TU5vZGUgPSBudWxsOworCisgICAgdmFyIHN0ZXBzID0gWworICAgICAgICB7CisgICAgICAgICAg
ICBuYW1lOiAiQWRkIDpiZWZvcmUiLAorICAgICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgneCcpLmNsYXNzTGlzdC5hZGQoJ2InKSIpOworICAgICAgICAgICAgfQor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAiVmVyaWZ5IDpiZWZvcmUg
d2FzIGFkZGVkIiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHRlc3RET01Ob2RlLmhhc1BzZXVkb0VsZW1l
bnRzKCksICIjeCBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQodGVzdERPTU5vZGUucHNldWRvRWxlbWVudHMoKS5z
aXplID09PSAxLCAiRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQodGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxl
bWVudCgpLCAiRE9NTm9kZSBoYXMgYSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIXRlc3RET01Ob2RlLmFmdGVyUHNldWRv
RWxlbWVudCgpLCAiRE9NTm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50
Iik7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRP
clJlbW92ZWRET01Ob2RlID09PSB0ZXN0RE9NTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJO
ZXcgRE9NTm9kZSBpcyB0aGUgYmVmb3JlUHNldWRvRWxlbWVudCIpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucGFyZW50
Tm9kZSA9PT0gdGVzdERPTU5vZGUsICJOZXcgRE9NTm9kZSBpcyBhIGNoaWxkIG9mICN4Iik7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1vdmVk
RE9NTm9kZS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3BlY3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1l
bnRUeXBlLkJlZm9yZSwgIk5ldyBET01Ob2RlIGlzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7
CisKKyAgICAgICAgICAgICAgICBwcmV2aW91c0luc2VydGVkRE9NTm9kZSA9IGluc2VydGVkT3JS
ZW1vdmVkRE9NTm9kZTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJSZW1vdmUgOmJlZm9yZSIs
CisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4JykuY2xh
c3NMaXN0LnJlbW92ZSgnYicpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgIG5hbWU6ICJWZXJpZnkgOmJlZm9yZSB3YXMgcmVtb3ZlZCIsCisgICAg
ICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghdGVzdERPTU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIiN4IERPTU5v
ZGUgaGFzIG5vIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KHRlc3RET01Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMCk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRlc3RET01Ob2RlLmJlZm9yZVBzZXVk
b0VsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRlc3RE
T01Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpKTsKKworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUgPT09IHByZXZpb3VzSW5z
ZXJ0ZWRET01Ob2RlLCAiUmVtb3ZlZCBET01Ob2RlIHdhcyB0aGUgYmVmb3JlIHBzZXVkbyBlbGVt
ZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVk
T3JSZW1vdmVkRE9NTm9kZS5wYXJlbnROb2RlID09PSBudWxsLCAiUmVtb3ZlZCBET01Ob2RlIGhh
cyBubyBwYXJlbnQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
aW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBzZXVkb1R5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLkRP
TU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQmVmb3JlLCAiUmVtb3ZlZCBET01Ob2RlIHdhcyBhIGJl
Zm9yZSBwc2V1ZG8gZWxlbWVudCIpOworCisgICAgICAgICAgICAgICAgcHJldmlvdXNJbnNlcnRl
ZERPTU5vZGUgPSBudWxsOworICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZTogIkFkZCA6YWZ0ZXIiLAor
ICAgICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneCcpLmNsYXNz
TGlzdC5hZGQoJ2EnKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICBuYW1lOiAiVmVyaWZ5IDphZnRlciB3YXMgYWRkZWQiLAorICAgICAgICAgICAg
YWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQodGVzdERPTU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIiN4IERPTU5vZGUgaGFzIHBz
ZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dCh0ZXN0RE9NTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDEsICJET01Ob2RlIGhhcyAx
IHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdCghdGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBkb2VzIG5v
dCBoYXZlIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KHRlc3RET01Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiRE9N
Tm9kZSBoYXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUgPT09IHRlc3RE
T01Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiTmV3IERPTU5vZGUgaXMgdGhlIGFmdGVyUHNl
dWRvRWxlbWVudCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChp
bnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucGFyZW50Tm9kZSA9PT0gdGVzdERPTU5vZGUsICJOZXcg
RE9NTm9kZSBpcyBhIGNoaWxkIG9mICN4Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZS5wc2V1ZG9UeXBlKCkgPT09IFdl
Ykluc3BlY3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkFmdGVyLCAiTmV3IERPTU5vZGUg
aXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAgICAgICAgICAgIHByZXZpb3Vz
SW5zZXJ0ZWRET01Ob2RlID0gaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlOworICAgICAgICAgICAg
ICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg
ICAgICAgbmFtZTogIlJlbW92ZSA6YWZ0ZXIiLAorICAgICAgICAgICAgYWN0aW9uOiBmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgneCcpLmNsYXNzTGlzdC5yZW1vdmUoJ2EnKSIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBuYW1lOiAiVmVyaWZ5
IDphZnRlciB3YXMgcmVtb3ZlZCIsCisgICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdCghdGVzdERPTU5vZGUuaGFz
UHNldWRvRWxlbWVudHMoKSwgIiN4IERPTU5vZGUgaGFzIG5vIHBzZXVkbyBlbGVtZW50cyIpOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRlc3RET01Ob2RlLnBzZXVkb0Vs
ZW1lbnRzKCkuc2l6ZSA9PT0gMCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoIXRlc3RET01Ob2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRlc3RET01Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpKTsK
KworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVt
b3ZlZERPTU5vZGUgPT09IHByZXZpb3VzSW5zZXJ0ZWRET01Ob2RlLCAiUmVtb3ZlZCBET01Ob2Rl
IHdhcyB0aGUgYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBhcmVudE5vZGUgPT09
IG51bGwsICJSZW1vdmVkIERPTU5vZGUgaGFzIG5vIHBhcmVudCIpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucHNldWRv
VHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5BZnRlciwg
IlJlbW92ZWQgRE9NTm9kZSB3YXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKworICAgICAg
ICAgICAgICAgIHByZXZpb3VzSW5zZXJ0ZWRET01Ob2RlID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgXTsKKworICAgIGZ1bmN0
aW9uIG5leHQoKQorICAgIHsKKyAgICAgICAgdmFyIHN0ZXAgPSBzdGVwcy5zaGlmdCgpOworICAg
ICAgICBpZiAoc3RlcCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coc3RlcC5uYW1lKTsKKyAgICAgICAgICAgIHN0ZXAu
YWN0aW9uKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJl
ZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAg
ICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUu
aWQsICIjeCIsIGZ1bmN0aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgdGVzdERPTU5vZGUgPSBX
ZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQodGVzdERPTU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI3giKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KCF0ZXN0RE9NTm9kZS5wc2V1ZG9UeXBlKCkpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0RE9NTm9kZS5oYXNQc2V1ZG9FbGVtZW50
cygpLCAiRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydCh0ZXN0RE9NTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDAp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRlc3RET01Ob2RlLmJlZm9yZVBz
ZXVkb0VsZW1lbnQoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghdGVzdERP
TU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpOworICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICB9KTsKKyAgICB9KTsKKworICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5Ob2RlSW5zZXJ0ZWQs
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIC8vIFRlc3QgbG9nZ2luZyB3aWxsIGFkZCBub2Rl
cyB0byB0aGUgdGVzdCBwYWdlLiBJZ25vcmUgYW55IGVsZW1lbnRzIGFkZGVkIHRoYXQgYXJlIG5v
dCBjaGlsZHJlbiBvZiBvdXIgdGVzdCBub2RlLgorICAgICAgICBpZiAoZXZlbnQuZGF0YS5wYXJl
bnQgIT09IHRlc3RET01Ob2RlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJFVkVOVDogTm9kZUluc2VydGVkIik7CisgICAgICAgIGluc2VydGVkT3JS
ZW1vdmVkRE9NTm9kZSA9IGV2ZW50LmRhdGEubm9kZTsKKyAgICAgICAgbmV4dCgpOworICAgIH0p
OworCisgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVSZW1vdmVkLCBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRVZFTlQ6IE5vZGVSZW1vdmVkIik7Cisg
ICAgICAgIGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZSA9IGV2ZW50LmRhdGEubm9kZTsKKyAgICAg
ICAgbmV4dCgpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdCBmb3IgYmFzaWMgRE9NTm9kZSBwc2V1ZG8gZWxlbWVu
dCBzdXBwb3J0LjwvcD4KKworICAgIDxzdHlsZT4KKyAgICAuYjpiZWZvcmUgeyBjb250ZW50OiAi
YmVmb3JlIjsgfQorICAgIC5hOmFmdGVyIHsgY29udGVudDogImFmdGVyIjsgfQorICAgIDwvc3R5
bGU+CisKKyAgICA8ZGl2IGlkPSJ4Ij5URVNUIEVMRU1FTlQ8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQt
c3RhdGljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVs
ZW1lbnQtc3RhdGljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5kOGVjZjZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKK1Rl
c3QgZm9yIGJhc2ljIERPTU5vZGUgcHNldWRvIGVsZW1lbnQgc3VwcG9ydC4KKworVEVTVCBFTEVN
RU5UOiBObyBQc2V1ZG8gRWxlbWVudHMKK1RFU1QgRUxFTUVOVDogSGFzIEJlZm9yZSBQc2V1ZG8g
RWxlbWVudAorVEVTVCBFTEVNRU5UOiBIYXMgQWZ0ZXIgUHNldWRvIEVsZW1lbnQKK1RFU1QgRUxF
TUVOVDogSGFzIEJlZm9yZSBhbmQgQWZ0ZXIgUHNldWRvIEVsZW1lbnRzCisKK1BBU1M6IEdvdCBE
T01Ob2RlIGZvciAjbm9uZQorUEFTUzogRE9NTm9kZSBoYXMgbm8gcHNldWRvIGVsZW1lbnRzCisK
K1BBU1M6IEdvdCBET01Ob2RlIGZvciAjYgorUEFTUzogRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1l
bnRzCitQQVNTOiBET01Ob2RlIGhhcyAxIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBo
YXMgYSBiZWZvcmUgcHNldWRvIGVsZW1lbnQKK1BBU1M6IERPTU5vZGUgZG9lcyBub3QgaGF2ZSBh
biBhZnRlciBwc2V1ZG8gZWxlbWVudAorUEFTUzogRE9NTm9kZSBmb3IgYmVmb3JlIHBzZXVkbyBl
bGVtZW50IGhhcyB0aGUgcmlnaHQgdHlwZQorCitQQVNTOiBHb3QgRE9NTm9kZSBmb3IgI2EKK1BB
U1M6IERPTU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgMSBwc2V1
ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9yZSBwc2V1ZG8g
ZWxlbWVudAorUEFTUzogRE9NTm9kZSBoYXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6
IERPTU5vZGUgZm9yIGFmdGVyIHBzZXVkbyBlbGVtZW50IGhhcyB0aGUgcmlnaHQgdHlwZQorCitQ
QVNTOiBHb3QgRE9NTm9kZSBmb3IgI3gKK1BBU1M6IERPTU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50
cworUEFTUzogRE9NTm9kZSBoYXMgMiBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUgaGFz
IGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01Ob2RlIGhhcyBhbiBhZnRlciBwc2V1
ZG8gZWxlbWVudAorUEFTUzogRE9NTm9kZSBmb3IgYmVmb3JlIHBzZXVkbyBlbGVtZW50IGhhcyB0
aGUgcmlnaHQgdHlwZQorUEFTUzogRE9NTm9kZSBmb3IgYWZ0ZXIgcHNldWRvIGVsZW1lbnQgaGFz
IHRoZSByaWdodCB0eXBlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20v
cHNldWRvLWVsZW1lbnQtc3RhdGljLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3Bz
ZXVkby1lbGVtZW50LXN0YXRpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmY0ZjFjNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9t
L3BzZXVkby1lbGVtZW50LXN0YXRpYy5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rp
b24gdGVzdCgpIHsKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucmVxdWVzdERvY3Vt
ZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkgeworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJl
ZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjbm9uZSIsIGZ1bmN0aW9u
KG5vZGVJZCkgeworICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tVHJl
ZU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSwgIkdv
dCBET01Ob2RlIGZvciAjbm9uZSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
IWRvbU5vZGUucHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdCghZG9tTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAiRE9NTm9kZSBoYXMgbm8gcHNldWRv
IGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChkb21Ob2RlLnBz
ZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydCghZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCkpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoIWRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpOworICAgICAgICB9
KTsKKworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihk
b2N1bWVudE5vZGUuaWQsICIjYiIsIGZ1bmN0aW9uKG5vZGVJZCkgeworICAgICAgICAgICAgdmFy
IGRvbU5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKG5vZGVJZCk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSwgIkdvdCBET01Ob2RlIGZvciAjYiIpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWRvbU5vZGUucHNldWRvVHlwZSgpKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLmhhc1BzZXVkb0VsZW1lbnRz
KCksICJET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMSwgIkRP
TU5vZGUgaGFzIDEgcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBh
IGJlZm9yZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KCFkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBkb2VzIG5vdCBo
YXZlIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCkucHNldWRvVHlwZSgpID09
PSBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5CZWZvcmUsICJET01Ob2Rl
IGZvciBiZWZvcmUgcHNldWRvIGVsZW1lbnQgaGFzIHRoZSByaWdodCB0eXBlIik7CisgICAgICAg
IH0pOworCisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVjdG9y
KGRvY3VtZW50Tm9kZS5pZCwgIiNhIiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgICAgICB2
YXIgZG9tTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQobm9kZUlk
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNhIik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZG9tTm9kZS5wc2V1ZG9UeXBlKCkpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuaGFzUHNldWRvRWxlbWVu
dHMoKSwgIkRPTU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAxLCAi
RE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCksICJET01Ob2RlIGRv
ZXMgbm90IGhhdmUgYSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiRE9NTm9k
ZSBoYXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLnBzZXVkb1R5cGUoKSA9
PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJET01Ob2Rl
IGZvciBhZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKKyAgICAgICAg
fSk7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnF1ZXJ5U2VsZWN0b3Io
ZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5jdGlvbihub2RlSWQpIHsKKyAgICAgICAgICAgIHZh
ciBkb21Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUsICJHb3QgRE9NTm9kZSBmb3IgI3giKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFkb21Ob2RlLnBzZXVkb1R5cGUoKSk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5oYXNQc2V1ZG9FbGVtZW50
cygpLCAiRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDIsICJE
T01Ob2RlIGhhcyAyIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KGRvbU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBoYXMg
YSBiZWZvcmUgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLCAiRE9NTm9kZSBoYXMgYW4gYWZ0
ZXIgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChkb21Ob2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkJlZm9yZSwgIkRPTU5vZGUgZm9yIGJlZm9y
ZSBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLmFmdGVyUHNldWRvRWxlbWVudCgpLnBzZXVkb1R5
cGUoKSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJE
T01Ob2RlIGZvciBhZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUiKTsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0pOworICAg
IH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cisg
ICAgPHA+VGVzdCBmb3IgYmFzaWMgRE9NTm9kZSBwc2V1ZG8gZWxlbWVudCBzdXBwb3J0LjwvcD4K
KworICAgIDxzdHlsZT4KKyAgICAjeDpiZWZvcmUsICNiOmJlZm9yZSB7IGNvbnRlbnQ6ICJiZWZv
cmUiOyB9CisgICAgI3g6YWZ0ZXIsICNhOmFmdGVyIHsgY29udGVudDogImFmdGVyIjsgfQorICAg
IDwvc3R5bGU+CisKKyAgICA8ZGl2IGlkPSJub25lIj5URVNUIEVMRU1FTlQ6IE5vIFBzZXVkbyBF
bGVtZW50czwvZGl2PgorICAgIDxkaXYgaWQ9ImIiPlRFU1QgRUxFTUVOVDogSGFzIEJlZm9yZSBQ
c2V1ZG8gRWxlbWVudDwvZGl2PgorICAgIDxkaXYgaWQ9ImEiPlRFU1QgRUxFTUVOVDogSGFzIEFm
dGVyIFBzZXVkbyBFbGVtZW50PC9kaXY+CisgICAgPGRpdiBpZD0ieCI+VEVTVCBFTEVNRU5UOiBI
YXMgQmVmb3JlIGFuZCBBZnRlciBQc2V1ZG8gRWxlbWVudHM8L2Rpdj4KKworPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNGJiNGNhNS4uZmUwMWQ5MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDctMjQgIEpvc2VwaCBQ
ZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBT
aG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
b3RoeSBIYXRjaGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29sL0RPTS5qc29uOgor
ICAgICAgICBBZGQgbmV3IHByb3BlcnRpZXMgdG8gRE9NTm9kZSBpZiBpdCBpcyBhIHBzZXVkbyBl
bGVtZW50IG9yIGlmIGl0IGhhcworICAgICAgICBwc2V1ZG8gZWxlbWVudCBjaGlsZHJlbi4gQWRk
IG5ldyBldmVudHMgZm9yIGlmIGEgcHNldWRvIGVsZW1lbnQgaXMKKyAgICAgICAgYWRkZWQgb3Ig
cmVtb3ZlZCBkeW5hbWljYWxseSB0byBhbiBleGlzdGluZyBET01Ob2RlLgorCiAyMDE1LTA3LTI0
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIEF2b2lk
IDIgdGltZXMgbmFtZSBpdGVyYXRpb24gaW4gT2JqZWN0LmFzc2lnbgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24KaW5kZXggNWUyOGRkYS4u
YjMyYjRlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9ET00uanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0RPTS5qc29uCkBAIC0xNCw2ICsxNCwxMiBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlVuaXF1ZSBET00gbm9kZSBpZGVudGlmaWVyIHVzZWQgdG8gcmVmZXJlbmNlIGEgbm9kZSB0
aGF0IG1heSBub3QgaGF2ZSBiZWVuIHB1c2hlZCB0byB0aGUgZnJvbnQtZW5kLiIKICAgICAgICAg
fSwKICAgICAgICAgeworICAgICAgICAgICAgImlkIjogIlBzZXVkb1R5cGUiLAorICAgICAgICAg
ICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJlbnVtIjogWyJiZWZvcmUiLCAiYWZ0
ZXIiXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQc2V1ZG8gZWxlbWVudCB0eXBlLiIK
KyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgICAgImlkIjogIkxpdmVSZWdpb25SZWxl
dmFudCIsCiAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAgImVudW0i
OiBbImFkZGl0aW9ucyIsICJyZW1vdmFscyIsICJ0ZXh0Il0sCkBAIC0zOSwxMCArNDUsMTIgQEAK
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInhtbFZlcnNpb24iLCAidHlwZSI6ICJzdHJpbmci
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+RG9jdW1lbnQ8L2NvZGU+
J3MgWE1MIHZlcnNpb24gaW4gY2FzZSBvZiBYTUwgZG9jdW1lbnRzLiIgfSwKICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiPGNvZGU+QXR0cjwvY29kZT4ncyBuYW1lLiIgfSwKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIjxjb2RlPkF0dHI8L2NvZGU+J3MgdmFsdWUuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAicHNldWRvVHlwZSIsICIkcmVmIjogIlBzZXVkb1R5cGUi
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnQgdHlwZSBm
b3IgdGhpcyBub2RlLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSWQiLCAi
JHJlZiI6ICJOZXR3b3JrLkZyYW1lSWQiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiRnJhbWUgSUQgZm9yIGZyYW1lIG93bmVyIGVsZW1lbnRzLiIgfSwKICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImNvbnRlbnREb2N1bWVudCIsICIkcmVmIjogIk5vZGUiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29udGVudCBkb2N1bWVudCBmb3IgZnJhbWUgb3duZXIg
ZWxlbWVudHMuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2hhZG93Um9vdHMiLCAi
dHlwZSI6ICJhcnJheSIsICJvcHRpb25hbCI6IHRydWUsICJpdGVtcyI6IHsgIiRyZWYiOiAiTm9k
ZSIgfSwgImRlc2NyaXB0aW9uIjogIlNoYWRvdyByb290IGxpc3QgZm9yIGdpdmVuIGVsZW1lbnQg
aG9zdC4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZW1wbGF0ZUNvbnRlbnQiLCAi
JHJlZiI6ICJOb2RlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbnRlbnQg
ZG9jdW1lbnQgZnJhZ21lbnQgZm9yIHRlbXBsYXRlIGVsZW1lbnRzIiB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicHNldWRvRWxlbWVudHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6
IHsgIiRyZWYiOiAiTm9kZSIgfSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlBz
ZXVkbyBlbGVtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBub2RlLiIgfSwKICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInJvbGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiQ29tcHV0ZWQgdmFsdWUgZm9yIGZpcnN0IHJlY29nbml6ZWQgcm9s
ZSB0b2tlbiwgZGVmYXVsdCByb2xlIHBlciBlbGVtZW50LCBvciBvdmVycmlkZGVuIHJvbGUuIiB9
CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRPTSBpbnRlcmFj
dGlvbiBpcyBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBtaXJyb3Igb2JqZWN0cyB0aGF0IHJlcHJl
c2VudCB0aGUgYWN0dWFsIERPTSBub2Rlcy4gRE9NTm9kZSBpcyBhIGJhc2Ugbm9kZSBtaXJyb3Ig
dHlwZS4iCkBAIC01MjYsNiArNTM0LDIyIEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
b290SWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiU2hhZG93IHJvb3QgaWQu
IiB9CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNhbGxlZCB3
aGVuIHNoYWRvdyByb290IGlzIHBvcHBlZCBmcm9tIHRoZSBlbGVtZW50LiIKKyAgICAgICAgfSwK
KyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicHNldWRvRWxlbWVudEFkZGVkIiwKKyAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicGFy
ZW50SWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnQn
cyBwYXJlbnQgZWxlbWVudCBpZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwc2V1
ZG9FbGVtZW50IiwgIiRyZWYiOiAiTm9kZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgYWRkZWQgcHNl
dWRvIGVsZW1lbnQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkNhbGxlZCB3aGVuIGEgcHNldWRvIGVsZW1lbnQgaXMgYWRkZWQgdG8gYW4gZWxlbWVudC4i
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInBzZXVkb0VsZW1l
bnRSZW1vdmVkIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicGFyZW50SWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRpb24iOiAi
UHNldWRvIGVsZW1lbnQncyBwYXJlbnQgZWxlbWVudCBpZC4iIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJwc2V1ZG9FbGVtZW50SWQiLCAiJHJlZiI6ICJOb2RlSWQiLCAiZGVzY3JpcHRp
b24iOiAiVGhlIHJlbW92ZWQgcHNldWRvIGVsZW1lbnQgaWQuIiB9CisgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNhbGxlZCB3aGVuIGEgcHNldWRvIGVsZW1lbnQg
aXMgcmVtb3ZlZCBmcm9tIGFuIGVsZW1lbnQuIgogICAgICAgICB9CiAgICAgXQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDFkZmZjNTIuLjk4YmEyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAx
NS0wNy0yNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFNob3cgUHNldWRvIEVsZW1lbnRzIGluIERPTSBUcmVlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2MTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgVGVzdHM6IGluc3BlY3Rv
ci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hlcy1mb3ItcHNldWRvLWVsZW1lbnQtbm9kZS5odG1s
CisgICAgICAgICAgICAgICBpbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LWR5bmFtaWMuaHRt
bAorICAgICAgICAgICAgICAgaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1zdGF0aWMuaHRt
bAorCisgICAgICAgIE11Y2ggb2YgdGhpcyBwYXRjaCB3YXMgbW9kZWxsZWQgYWZ0ZXIgdGhlIEJs
aW5rIGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIHBzZXVkbyBlbGVtZW50IGluc3BlY3Rpb24u
CisKKyAgICAgICAgKiBkb20vUHNldWRvRWxlbWVudC5oOgorICAgICAgICAqIGRvbS9Qc2V1ZG9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBzZXVkb0VsZW1lbnQ6On5Qc2V1ZG9FbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBzZXVkb0VsZW1lbnQ6OmNsZWFySG9zdEVsZW1lbnQp
OgorICAgICAgICBTaW5jZSBJbnNwZWN0b3JET01BZ2VudCBtYXkgaG9sZCBhIHJlZmVyZW5jZSB0
byB0aGlzIFBzZXVkb0VsZW1lbnQgd2UKKyAgICAgICAgY2FuJ3QgcmVwb3J0IGl0IGFzIGRlc3Ry
b3llZCBpbiB0aGUgZGVzdHJ1Y3RvciwgYXMgdGhhdCB3b3VsZG4ndCBiZQorICAgICAgICByZWFj
aGVkIGlmIHRoZSBpbnNwZWN0b3IgaG9sZHMgYSByZWZlcmVuY2UuIE1vdmUgdGhpcyB0byB3aGVu
IHRoZQorICAgICAgICBwc3VlZG8gZWxlbWVudCBpcyBkaXNjb25uZWN0ZWQsIHdoaWNoIGlzIGlt
bWVkaWF0ZWx5IGJlZm9yZSBkZXN0cnVjdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TWF0Y2hlZFN0eWxl
c0Zvck5vZGUpOgorICAgICAgICBXaGVuIGNvbXB1dGluZyBzdHlsZXMgZm9yIGEgcHNldWRvIGVs
ZW1lbnQsIGNvbXB1dGUgc3R5bGVzIGZyb20gdGhlCisgICAgICAgIGhvc3QgZWxlbWVudCBmb3Ig
anVzdCB0aGUgcHNldWRvIGVsZW1lbnQncyBwc2V1ZG8gdHlwZS4gTGlrZXdpc2UKKyAgICAgICAg
b25seSBpbmNsdWRlIG1hdGNoZWQgcmVzdWx0cywgbm90IGluaGVyaXRlZCBvciBvdGhlcnMuCisK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpidWlsZEFycmF5Rm9yTWF0Y2hl
ZFJ1bGVMaXN0KToKKyAgICAgICAgQWRkIHRoZSBwc2V1ZG8gdHlwZSB0byB0aGUgY2hlY2tlciBj
b250ZXh0IHRvIHRyeSBhbmQgZGV0ZWN0IGV4YWN0bHkKKyAgICAgICAgd2hpY2ggc2VsZWN0b3Ig
aW4gYSBsaXN0IG9mIHNlbGVjdG9ycyBtYXRjaGVkIHRoZSBwc2V1ZG8gZWxlbWVudC4KKworICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01B
Z2VudDo6dW5iaW5kKToKKyAgICAgICAgV2hlbiB1bmJpbmRpbmcgYW4gZWxlbWVudCwgYWxzbyB1
bmJpbmQgYW55IHBzZXVkbyBlbGVtZW50IGNoaWxkcmVuCisgICAgICAgIGl0IG1heSBoYXZlIGhh
ZCBhbmQgYm91bmQuCisKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojphc3Nl
cnRFZGl0YWJsZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmFz
c2VydEVkaXRhYmxlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2Vu
dDo6cmVtb3ZlTm9kZSk6CisgICAgICAgIEltcHJvdmUgZ3JhbW1hciBpbiBlcnJvciBtZXNzYWdl
LiBEb24ndCBhbGxvdyBlZGl0aW5nIHBzZXVkbyBlbGVtZW50cy4KKworICAgICAgICAoV2ViQ29y
ZTo6cHNldWRvRWxlbWVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdl
bnQ6OmJ1aWxkT2JqZWN0Rm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01B
Z2VudDo6YnVpbGRBcnJheUZvclBzZXVkb0VsZW1lbnRzKToKKyAgICAgICAgSWYgYSBub2RlIGlz
IGEgcHNldWRvIGVsZW1lbnQgaW5jbHVkZSBpdHMgcHNldWRvVHlwZS4KKyAgICAgICAgSWYgYSBu
b2RlIGhhcyBwc2V1ZG8gZWxlbWVudCBjaGlsZHJlbiBpbmNsdWRlIHRoZW0uCisKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpwc2V1ZG9FbGVtZW50Q3JlYXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHNldWRvRWxlbWVudERlc3Ryb3llZCk6
CisgICAgICAgIFdoZW4gcHNldWRvIGVsZW1lbnRzIGFyZSBkeW5hbWljYWxseSBjcmVhdGVkIG9y
IGRlc3Ryb3llZAorICAgICAgICBwdXNoIHBzZXVkbyBlbGVtZW50IG5vZGVzIHRvIHRoZSBmcm9u
dGVuZCBpZiBuZWVkZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
cHNldWRvRWxlbWVudENyZWF0ZWRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudENyZWF0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVk
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bGF5ZXJUcmVl
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
cmVuZGVyTGF5ZXJEZXN0cm95ZWQpOgorICAgICAgICBQbHVtYmluZyBmb3IgcHNldWRvIGVsZW1l
bnQgY3JlYXRlZC9kZXN0cm95ZWQgZXZlbnRzLgorCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNv
bHZlVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6YXR0YWNoQmVmb3JlT3JBZnRl
clBzZXVkb0VsZW1lbnRJZk5lZWRlZCk6CisgICAgICAgIFRoaXMgaXMgdGhlIG9ubHkgcGxhY2Ug
YSBwc2V1ZG8gZWxlbWVudCBpcyBjcmVhdGVkLCBpbmZvcm0gdGhlIGluc3BlY3Rvci4KKworICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmJ1aWxkT2JqZWN0Rm9yRWxlbWVudERhdGEpOgorICAgICAgICBVcGRhdGUgdGhlIGVsZW1lbnQg
ZGF0YSBmb3IgdGhlIG5vZGUgaGlnaGxpZ2h0IGxhYmVsIHRvIGluY2x1ZGUgdGhlCisgICAgICAg
IGhvc3QgZWxlbWVudCdzIHNlbGVjdG9yIGFuZCB0aGUgcHNldWRvIGVsZW1lbnQgc2VsZWN0b3Iu
CisKIDIwMTUtMDctMjQgIFNhamlkIEFud2FyICA8c2FqaWRhbndhcjk0QGdtYWlsLmNvbT4KIAog
ICAgICAgICBbTVNFXSBJbmNvcnJlY3Qgc2FtcGxlIHRpbWVzdGFtcHMgd2hlbiB1c2luZyAic2Vx
dWVuY2UiIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCA5MzJiNzFi
Li5mZTExZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC02Nyw3ICs2
NywxMyBAQCBQc2V1ZG9FbGVtZW50OjpQc2V1ZG9FbGVtZW50KEVsZW1lbnQmIGhvc3QsIFBzZXVk
b0lkIHBzZXVkb0lkKQogUHNldWRvRWxlbWVudDo6flBzZXVkb0VsZW1lbnQoKQogewogICAgIEFT
U0VSVCghbV9ob3N0RWxlbWVudCk7Cit9CisKK3ZvaWQgUHNldWRvRWxlbWVudDo6Y2xlYXJIb3N0
RWxlbWVudCgpCit7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50
RGVzdHJveWVkKGRvY3VtZW50KCkucGFnZSgpLCAqdGhpcyk7CisKKyAgICBtX2hvc3RFbGVtZW50
ID0gbnVsbHB0cjsKIH0KIAogUmVmUHRyPFJlbmRlclN0eWxlPiBQc2V1ZG9FbGVtZW50OjpjdXN0
b21TdHlsZUZvclJlbmRlcmVyKFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UHNldWRvRWxlbWVudC5oCmluZGV4IDljZTJiYWMuLjU4MWUxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bz
ZXVkb0VsZW1lbnQuaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UHNl
dWRvRWxlbWVudCgpOwogCiAgICAgRWxlbWVudCogaG9zdEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2hvc3RFbGVtZW50OyB9Ci0gICAgdm9pZCBjbGVhckhvc3RFbGVtZW50KCkgeyBtX2hvc3RF
bGVtZW50ID0gbnVsbHB0cjsgfQorICAgIHZvaWQgY2xlYXJIb3N0RWxlbWVudCgpOwogCiAgICAg
dmlydHVhbCBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoUmVuZGVy
U3R5bGUmIHBhcmVudFN0eWxlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNo
UmVuZGVyZXJzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU0FnZW50LmNwcAppbmRleCBkZGE5Yjg4Li4zNDVhZTdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAK
ICNpbmNsdWRlICJOYW1lZEZsb3dDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2lu
Y2x1ZGUgIk5vZGVMaXN0LmgiCisjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgogI2luY2x1ZGUg
IlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCkBAIC01MTAsNDkgKzUxMSw2MCBAQCB2b2lk
IEluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9yTm9kZShFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGludCBubwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwog
CisgICAgRWxlbWVudCogb3JpZ2luYWxFbGVtZW50ID0gZWxlbWVudDsKKyAgICBQc2V1ZG9JZCBl
bGVtZW50UHNldWRvSWQgPSBlbGVtZW50LT5wc2V1ZG9JZCgpOworICAgIGlmIChlbGVtZW50UHNl
dWRvSWQpIHsKKyAgICAgICAgZWxlbWVudCA9IGRvd25jYXN0PFBzZXVkb0VsZW1lbnQ+KCplbGVt
ZW50KS5ob3N0RWxlbWVudCgpOworICAgICAgICBpZiAoIWVsZW1lbnQpIHsKKyAgICAgICAgICAg
IGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJQc2V1ZG8gZWxlbWVudCBoYXMgbm8gcGFyZW50
Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKICAgICAvLyBNYXRj
aGVkIHJ1bGVzLgogICAgIFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIgPSBlbGVtZW50LT5k
b2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2ZXIoKTsKLSAgICBhdXRvIG1hdGNoZWRSdWxlcyA9
IHN0eWxlUmVzb2x2ZXIuc3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgU3R5bGVSZXNvbHZl
cjo6QWxsQ1NTUnVsZXMpOwotICAgIG1hdGNoZWRDU1NSdWxlcyA9IGJ1aWxkQXJyYXlGb3JNYXRj
aGVkUnVsZUxpc3QobWF0Y2hlZFJ1bGVzLCBzdHlsZVJlc29sdmVyLCBlbGVtZW50KTsKKyAgICBh
dXRvIG1hdGNoZWRSdWxlcyA9IHN0eWxlUmVzb2x2ZXIucHNldWRvU3R5bGVSdWxlc0ZvckVsZW1l
bnQoZWxlbWVudCwgZWxlbWVudFBzZXVkb0lkLCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7
CisgICAgbWF0Y2hlZENTU1J1bGVzID0gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRj
aGVkUnVsZXMsIHN0eWxlUmVzb2x2ZXIsIGVsZW1lbnQsIGVsZW1lbnRQc2V1ZG9JZCk7CiAKLSAg
ICAvLyBQc2V1ZG8gZWxlbWVudHMuCi0gICAgaWYgKCFpbmNsdWRlUHNldWRvIHx8ICppbmNsdWRl
UHNldWRvKSB7Ci0gICAgICAgIGF1dG8gcHNldWRvRWxlbWVudHMgPSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz46OmNy
ZWF0ZSgpOwotICAgICAgICBmb3IgKFBzZXVkb0lkIHBzZXVkb0lkID0gRklSU1RfUFVCTElDX1BT
RVVET0lEOyBwc2V1ZG9JZCA8IEFGVEVSX0xBU1RfSU5URVJOQUxfUFNFVURPSUQ7IHBzZXVkb0lk
ID0gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+KHBzZXVkb0lkICsgMSkpIHsKLSAgICAgICAgICAgIGF1
dG8gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5wc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVu
dChlbGVtZW50LCBwc2V1ZG9JZCwgU3R5bGVSZXNvbHZlcjo6QWxsQ1NTUnVsZXMpOwotICAgICAg
ICAgICAgaWYgKCFtYXRjaGVkUnVsZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgYXV0
byBtYXRjaGVzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6OmNy
ZWF0ZSgpCi0gICAgICAgICAgICAgICAgICAgIC5zZXRQc2V1ZG9JZChzdGF0aWNfY2FzdDxpbnQ+
KHBzZXVkb0lkKSkKLSAgICAgICAgICAgICAgICAgICAgLnNldE1hdGNoZXMoYnVpbGRBcnJheUZv
ck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVzb2x2ZXIsIGVsZW1lbnQpKQor
ICAgIGlmICghb3JpZ2luYWxFbGVtZW50LT5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICAv
LyBQc2V1ZG8gZWxlbWVudHMuCisgICAgICAgIGlmICghaW5jbHVkZVBzZXVkbyB8fCAqaW5jbHVk
ZVBzZXVkbykgeworICAgICAgICAgICAgYXV0byBwc2V1ZG9FbGVtZW50cyA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVz
Pjo6Y3JlYXRlKCk7CisgICAgICAgICAgICBmb3IgKFBzZXVkb0lkIHBzZXVkb0lkID0gRklSU1Rf
UFVCTElDX1BTRVVET0lEOyBwc2V1ZG9JZCA8IEFGVEVSX0xBU1RfSU5URVJOQUxfUFNFVURPSUQ7
IHBzZXVkb0lkID0gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+KHBzZXVkb0lkICsgMSkpIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIG1hdGNoZWRSdWxlcyA9IHN0eWxlUmVzb2x2ZXIucHNldWRvU3R5bGVS
dWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgcHNldWRvSWQsIFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1
bGVzKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZWRSdWxlcy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpQc2V1ZG9JZE1hdGNoZXM6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAuc2V0
UHNldWRvSWQoc3RhdGljX2Nhc3Q8aW50Pihwc2V1ZG9JZCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAuc2V0TWF0Y2hlcyhidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxl
cywgc3R5bGVSZXNvbHZlciwgZWxlbWVudCwgcHNldWRvSWQpKQorICAgICAgICAgICAgICAgICAg
ICAgICAgLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgcHNldWRvRWxlbWVudHMtPmFk
ZEl0ZW0oV1RGOjptb3ZlKG1hdGNoZXMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHBzZXVkb0lkTWF0Y2hlcyA9IFdURjo6bW92ZShwc2V1ZG9FbGVt
ZW50cyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbmhlcml0ZWQgc3R5bGVzLgorICAgICAg
ICBpZiAoIWluY2x1ZGVJbmhlcml0ZWQgfHwgKmluY2x1ZGVJbmhlcml0ZWQpIHsKKyAgICAgICAg
ICAgIGF1dG8gZW50cmllcyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkNTUzo6SW5oZXJpdGVkU3R5bGVFbnRyeT46OmNyZWF0ZSgpOworICAgICAgICAg
ICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKTsKKyAg
ICAgICAgICAgIHdoaWxlIChwYXJlbnRFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgU3R5bGVS
ZXNvbHZlciYgcGFyZW50U3R5bGVSZXNvbHZlciA9IHBhcmVudEVsZW1lbnQtPmRvY3VtZW50KCku
ZW5zdXJlU3R5bGVSZXNvbHZlcigpOworICAgICAgICAgICAgICAgIGF1dG8gcGFyZW50TWF0Y2hl
ZFJ1bGVzID0gcGFyZW50U3R5bGVSZXNvbHZlci5zdHlsZVJ1bGVzRm9yRWxlbWVudChwYXJlbnRF
bGVtZW50LCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7CisgICAgICAgICAgICAgICAgYXV0
byBlbnRyeSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6SW5oZXJpdGVkU3R5bGVFbnRyeTo6
Y3JlYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgLnNldE1hdGNoZWRDU1NSdWxlcyhidWlsZEFy
cmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KHBhcmVudE1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwg
cGFyZW50RWxlbWVudCwgTk9QU0VVRE8pKQogICAgICAgICAgICAgICAgICAgICAucmVsZWFzZSgp
OwotICAgICAgICAgICAgICAgIHBzZXVkb0VsZW1lbnRzLT5hZGRJdGVtKFdURjo6bW92ZShtYXRj
aGVzKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocGFy
ZW50RWxlbWVudC0+c3R5bGUoKSAmJiBwYXJlbnRFbGVtZW50LT5zdHlsZSgpLT5sZW5ndGgoKSkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0
eWxlKiBzdHlsZVNoZWV0ID0gYXNJbnNwZWN0b3JTdHlsZVNoZWV0KHBhcmVudEVsZW1lbnQpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZW50cnktPnNldElubGluZVN0eWxlKHN0eWxlU2hlZXQt
PmJ1aWxkT2JqZWN0Rm9yU3R5bGUoc3R5bGVTaGVldC0+c3R5bGVGb3JJZChJbnNwZWN0b3JDU1NJ
ZChzdHlsZVNoZWV0LT5pZCgpLCAwKSkpKTsKKyAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAg
cHNldWRvSWRNYXRjaGVzID0gV1RGOjptb3ZlKHBzZXVkb0VsZW1lbnRzKTsKLSAgICB9Ci0KLSAg
ICAvLyBJbmhlcml0ZWQgc3R5bGVzLgotICAgIGlmICghaW5jbHVkZUluaGVyaXRlZCB8fCAqaW5j
bHVkZUluaGVyaXRlZCkgewotICAgICAgICBhdXRvIGVudHJpZXMgPSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkluaGVyaXRlZFN0eWxlRW50cnk+
OjpjcmVhdGUoKTsKLSAgICAgICAgRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1lbnQtPnBh
cmVudEVsZW1lbnQoKTsKLSAgICAgICAgd2hpbGUgKHBhcmVudEVsZW1lbnQpIHsKLSAgICAgICAg
ICAgIFN0eWxlUmVzb2x2ZXImIHBhcmVudFN0eWxlUmVzb2x2ZXIgPSBwYXJlbnRFbGVtZW50LT5k
b2N1bWVudCgpLmVuc3VyZVN0eWxlUmVzb2x2ZXIoKTsKLSAgICAgICAgICAgIGF1dG8gcGFyZW50
TWF0Y2hlZFJ1bGVzID0gcGFyZW50U3R5bGVSZXNvbHZlci5zdHlsZVJ1bGVzRm9yRWxlbWVudChw
YXJlbnRFbGVtZW50LCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7Ci0gICAgICAgICAgICBh
dXRvIGVudHJ5ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5
OjpjcmVhdGUoKQotICAgICAgICAgICAgICAgIC5zZXRNYXRjaGVkQ1NTUnVsZXMoYnVpbGRBcnJh
eUZvck1hdGNoZWRSdWxlTGlzdChwYXJlbnRNYXRjaGVkUnVsZXMsIHN0eWxlUmVzb2x2ZXIsIHBh
cmVudEVsZW1lbnQpKQotICAgICAgICAgICAgICAgIC5yZWxlYXNlKCk7Ci0gICAgICAgICAgICBp
ZiAocGFyZW50RWxlbWVudC0+c3R5bGUoKSAmJiBwYXJlbnRFbGVtZW50LT5zdHlsZSgpLT5sZW5n
dGgoKSkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHls
ZSogc3R5bGVTaGVldCA9IGFzSW5zcGVjdG9yU3R5bGVTaGVldChwYXJlbnRFbGVtZW50KTsKLSAg
ICAgICAgICAgICAgICBpZiAoc3R5bGVTaGVldCkKLSAgICAgICAgICAgICAgICAgICAgZW50cnkt
PnNldElubGluZVN0eWxlKHN0eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yU3R5bGUoc3R5bGVTaGVl
dC0+c3R5bGVGb3JJZChJbnNwZWN0b3JDU1NJZChzdHlsZVNoZWV0LT5pZCgpLCAwKSkpKTsKKyAg
ICAgICAgICAgICAgICBlbnRyaWVzLT5hZGRJdGVtKFdURjo6bW92ZShlbnRyeSkpOworICAgICAg
ICAgICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRFbGVtZW50LT5wYXJlbnRFbGVtZW50KCk7
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGVudHJpZXMtPmFkZEl0ZW0oV1RGOjptb3Zl
KGVudHJ5KSk7Ci0gICAgICAgICAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC0+cGFy
ZW50RWxlbWVudCgpOworICAgICAgICAgICAgaW5oZXJpdGVkRW50cmllcyA9IFdURjo6bW92ZShl
bnRyaWVzKTsKICAgICAgICAgfQotCi0gICAgICAgIGluaGVyaXRlZEVudHJpZXMgPSBXVEY6Om1v
dmUoZW50cmllcyk7CiAgICAgfQogfQogCkBAIC05MjQsMTEgKzkzNiwxMiBAQCBSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRP
YmplY3RGb3JSdWxlKAogICAgIHJldHVybiBpbnNwZWN0b3JTdHlsZVNoZWV0ID8gaW5zcGVjdG9y
U3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JSdWxlKHJ1bGUsIG51bGxwdHIpIDogbnVsbHB0cjsK
IH0KIAotUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkNTUzo6UnVsZU1hdGNoPj4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkQXJyYXlGb3JNYXRj
aGVkUnVsZUxpc3QoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGU+PiYgbWF0Y2hlZFJ1bGVz
LCBTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBFbGVtZW50KiBlbGVtZW50KQorUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UnVs
ZU1hdGNoPj4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVsZUxpc3Qo
Y29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGU+PiYgbWF0Y2hlZFJ1bGVzLCBTdHlsZVJlc29s
dmVyJiBzdHlsZVJlc29sdmVyLCBFbGVtZW50KiBlbGVtZW50LCBQc2V1ZG9JZCBwc3VlZG9JZCkK
IHsKICAgICBhdXRvIHJlc3VsdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoPjo6Y3JlYXRlKCk7CiAKICAgICBTZWxlY3RvckNo
ZWNrZXI6OkNoZWNraW5nQ29udGV4dCBjb250ZXh0KFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6Q29s
bGVjdGluZ1J1bGVzKTsKKyAgICBjb250ZXh0LnBzZXVkb0lkID0gcHN1ZWRvSWQgPyBwc3VlZG9J
ZCA6IGVsZW1lbnQtPnBzZXVkb0lkKCk7CiAgICAgU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hl
Y2tlcihlbGVtZW50LT5kb2N1bWVudCgpKTsKIAogICAgIGZvciAoYXV0byYgbWF0Y2hlZFJ1bGUg
OiBtYXRjaGVkUnVsZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmgKaW5kZXggZWNlMDI5OS4uYjU5MmYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTE0OSw3ICsxNDksNyBAQCBwcml2YXRlOgog
CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gYnVpbGRPYmpl
Y3RGb3JSdWxlKFN0eWxlUnVsZSosIFN0eWxlUmVzb2x2ZXImLCBFbGVtZW50Kik7CiAgICAgUmVm
UHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gYnVpbGRPYmplY3RGb3JSdWxl
KENTU1N0eWxlUnVsZSopOwotICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJ
bnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaD4+IGJ1aWxkQXJyYXlGb3JNYXRjaGVk
UnVsZUxpc3QoY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGU+PiYsIFN0eWxlUmVzb2x2ZXIm
LCBFbGVtZW50Kik7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoPj4gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxl
TGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiwgU3R5bGVSZXNvbHZlciYsIEVs
ZW1lbnQqLCBQc2V1ZG9JZCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6
Q1NTU3R5bGU+IGJ1aWxkT2JqZWN0Rm9yQXR0cmlidXRlc1N0eWxlKEVsZW1lbnQqKTsKICAgICBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NT
OjpSZWdpb24+PiBidWlsZEFycmF5Rm9yUmVnaW9ucyhFcnJvclN0cmluZyYsIFJlZlB0cjxOb2Rl
TGlzdD4mJiwgaW50IGRvY3VtZW50Tm9kZUlkKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpOYW1lZEZsb3c+IGJ1aWxkT2JqZWN0Rm9yTmFtZWRGbG93KEVycm9yU3RyaW5n
JiwgV2ViS2l0TmFtZWRGbG93KiwgaW50IGRvY3VtZW50Tm9kZUlkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IDcxOWY3NjEuLjU2NDgy
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlICJQc2V1ZG9FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50
cy5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCkBAIC0zMzIsOCArMzMzLDEzIEBAIHZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZChOb2RlKiBub2RlLCBOb2RlVG9JZE1hcCogbm9kZXNN
YXApCiAgICAgfQogCiAgICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlKSkgewotICAgICAgICBpZiAo
U2hhZG93Um9vdCogcm9vdCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKS5zaGFkb3dSb290KCkp
CisgICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7Cisg
ICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZWxlbWVudC5zaGFkb3dSb290KCkpCiAgICAg
ICAgICAgICB1bmJpbmQocm9vdCwgbm9kZXNNYXApOworICAgICAgICBpZiAoUHNldWRvRWxlbWVu
dCogYmVmb3JlRWxlbWVudCA9IGVsZW1lbnQuYmVmb3JlUHNldWRvRWxlbWVudCgpKQorICAgICAg
ICAgICAgdW5iaW5kKGJlZm9yZUVsZW1lbnQsIG5vZGVzTWFwKTsKKyAgICAgICAgaWYgKFBzZXVk
b0VsZW1lbnQqIGFmdGVyRWxlbWVudCA9IGVsZW1lbnQuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpCisg
ICAgICAgICAgICB1bmJpbmQoYWZ0ZXJFbGVtZW50LCBub2Rlc01hcCk7CiAgICAgfQogCiAgICAg
bm9kZXNNYXAtPnJlbW92ZShub2RlKTsKQEAgLTM5Miw3ICszOTgsMTEgQEAgTm9kZSogSW5zcGVj
dG9yRE9NQWdlbnQ6OmFzc2VydEVkaXRhYmxlTm9kZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcs
IGludCBub2RlSWQKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IGlmIChub2RlLT5pc0luU2hhZG93VHJlZSgpKSB7Ci0gICAgICAgIGVycm9yU3RyaW5nID0gQVND
SUlMaXRlcmFsKCJDYW4gbm90IGVkaXQgbm9kZXMgZnJvbSBzaGFkb3cgdHJlZXMiKTsKKyAgICAg
ICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbm5vdCBlZGl0IG5vZGVzIGZyb20gc2hh
ZG93IHRyZWVzIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICBpZiAobm9k
ZS0+aXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVy
YWwoIkNhbm5vdCBlZGl0IHBzZXVkbyBlbGVtZW50cyIpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CiAgICAgcmV0dXJuIG5vZGU7CkBAIC00MDQsNyArNDE0LDExIEBAIEVsZW1lbnQq
IEluc3BlY3RvckRPTUFnZW50Ojphc3NlcnRFZGl0YWJsZUVsZW1lbnQoRXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBpbnQKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGlmIChlbGVtZW50LT5pc0luU2hhZG93VHJlZSgpKSB7Ci0gICAgICAgIGVycm9yU3Ry
aW5nID0gQVNDSUlMaXRlcmFsKCJDYW4gbm90IGVkaXQgZWxlbWVudHMgZnJvbSBzaGFkb3cgdHJl
ZXMiKTsKKyAgICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbm5vdCBlZGl0IGVs
ZW1lbnRzIGZyb20gc2hhZG93IHRyZWVzIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKyAgICBpZiAoZWxlbWVudC0+aXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgZXJyb3JT
dHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbm5vdCBlZGl0IHBzZXVkbyBlbGVtZW50cyIpOwogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAgICAgcmV0dXJuIGVsZW1lbnQ7CkBAIC02OTgs
NyArNzEyLDcgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVtb3ZlTm9kZShFcnJvclN0cmlu
ZyYgZXJyb3JTdHJpbmcsIGludCBub2RlSWQpCiAKICAgICBDb250YWluZXJOb2RlKiBwYXJlbnRO
b2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpOwogICAgIGlmICghcGFyZW50Tm9kZSkgewotICAgICAg
ICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2FuIG5vdCByZW1vdmUgZGV0YWNoZWQgbm9k
ZSIpOworICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IHJlbW92ZSBk
ZXRhY2hlZCBub2RlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyNTQsNiArMTI2
OCwyMCBAQCBzdGF0aWMgU3RyaW5nIGRvY3VtZW50QmFzZVVSTFN0cmluZyhEb2N1bWVudCogZG9j
dW1lbnQpCiAgICAgcmV0dXJuIGRvY3VtZW50LT5jb21wbGV0ZVVSTCgiIikuc3RyaW5nKCk7CiB9
CiAKK3N0YXRpYyBib29sIHBzZXVkb0VsZW1lbnRUeXBlKFBzZXVkb0lkIHBzZXVkb0lkLCBJbnNw
ZWN0b3I6OlByb3RvY29sOjpET006OlBzZXVkb1R5cGUqIHR5cGUpCit7CisgICAgc3dpdGNoIChw
c2V1ZG9JZCkgeworICAgIGNhc2UgQkVGT1JFOgorICAgICAgICAqdHlwZSA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkRPTTo6UHNldWRvVHlwZTo6QmVmb3JlOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBjYXNlIEFGVEVSOgorICAgICAgICAqdHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRP
TTo6UHNldWRvVHlwZTo6QWZ0ZXI7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIFJlZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpET006Ok5vZGU+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvck5vZGUoTm9k
ZSogbm9kZSwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApCiB7CiAgICAgaW50IGlk
ID0gYmluZChub2RlLCBub2Rlc01hcCk7CkBAIC0xMzI3LDYgKzEzNTUsMTUgQEAgUmVmPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0
Rm9yTm9kZShOb2RlKgogICAgICAgICAgICAgdmFsdWUtPnNldFRlbXBsYXRlQ29udGVudChidWls
ZE9iamVjdEZvck5vZGUoZG93bmNhc3Q8SFRNTFRlbXBsYXRlRWxlbWVudD4oZWxlbWVudCkuY29u
dGVudCgpLCAwLCBub2Rlc01hcCkpOwogI2VuZGlmCiAKKyAgICAgICAgaWYgKGVsZW1lbnQucHNl
dWRvSWQoKSkgeworICAgICAgICAgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpQc2V1ZG9U
eXBlIHBzZXVkb1R5cGU7CisgICAgICAgICAgICBpZiAocHNldWRvRWxlbWVudFR5cGUoZWxlbWVu
dC5wc2V1ZG9JZCgpLCAmcHNldWRvVHlwZSkpCisgICAgICAgICAgICAgICAgdmFsdWUtPnNldFBz
ZXVkb1R5cGUocHNldWRvVHlwZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAo
YXV0byBwc2V1ZG9FbGVtZW50cyA9IGJ1aWxkQXJyYXlGb3JQc2V1ZG9FbGVtZW50cyhlbGVtZW50
LCBub2Rlc01hcCkpCisgICAgICAgICAgICAgICAgdmFsdWUtPnNldFBzZXVkb0VsZW1lbnRzKFdU
Rjo6bW92ZShwc2V1ZG9FbGVtZW50cykpOworICAgICAgICB9CisKICAgICB9IGVsc2UgaWYgKGlz
PERvY3VtZW50Pigqbm9kZSkpIHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KCpub2RlKTsKICAgICAgICAgdmFsdWUtPnNldEZyYW1lSWQobV9wYWdlQWdl
bnQtPmZyYW1lSWQoZG9jdW1lbnQuZnJhbWUoKSkpOwpAQCAtMTM5NCw2ICsxNDMxLDIxIEBAIFJl
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpET006Ok5v
ZGU+PiBJbnNwZWN0b3JET01BZ2VuCiAgICAgcmV0dXJuIFdURjo6bW92ZShjaGlsZHJlbik7CiB9
CiAKK1JlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29s
OjpET006Ok5vZGU+PiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRBcnJheUZvclBzZXVkb0VsZW1l
bnRzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCkKK3sKKyAg
ICBQc2V1ZG9FbGVtZW50KiBiZWZvcmVFbGVtZW50ID0gZWxlbWVudC5iZWZvcmVQc2V1ZG9FbGVt
ZW50KCk7CisgICAgUHNldWRvRWxlbWVudCogYWZ0ZXJFbGVtZW50ID0gZWxlbWVudC5hZnRlclBz
ZXVkb0VsZW1lbnQoKTsKKyAgICBpZiAoIWJlZm9yZUVsZW1lbnQgJiYgIWFmdGVyRWxlbWVudCkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRvIHBzZXVkb0VsZW1lbnRzID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPjo6
Y3JlYXRlKCk7CisgICAgaWYgKGJlZm9yZUVsZW1lbnQpCisgICAgICAgIHBzZXVkb0VsZW1lbnRz
LT5hZGRJdGVtKGJ1aWxkT2JqZWN0Rm9yTm9kZShiZWZvcmVFbGVtZW50LCAwLCBub2Rlc01hcCkp
OworICAgIGlmIChhZnRlckVsZW1lbnQpCisgICAgICAgIHBzZXVkb0VsZW1lbnRzLT5hZGRJdGVt
KGJ1aWxkT2JqZWN0Rm9yTm9kZShhZnRlckVsZW1lbnQsIDAsIG5vZGVzTWFwKSk7CisgICAgcmV0
dXJuIFdURjo6bW92ZShwc2V1ZG9FbGVtZW50cyk7Cit9CisKIFJlZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpET006OkV2ZW50TGlzdGVuZXI+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZv
ckV2ZW50TGlzdGVuZXIoY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImIHJlZ2lzdGVyZWRF
dmVudExpc3RlbmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogbm9kZSwg
Y29uc3QgU3RyaW5nKiBvYmplY3RHcm91cElkKQogewogICAgIFJlZlB0cjxFdmVudExpc3RlbmVy
PiBldmVudExpc3RlbmVyID0gcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIubGlzdGVuZXI7CkBAIC0x
OTU3LDYgKzIwMDksMzYgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6ZnJhbWVEb2N1bWVudFVw
ZGF0ZWQoRnJhbWUqIGZyYW1lKQogICAgIHNldERvY3VtZW50KGRvY3VtZW50KTsKIH0KIAordm9p
ZCBJbnNwZWN0b3JET01BZ2VudDo6cHNldWRvRWxlbWVudENyZWF0ZWQoUHNldWRvRWxlbWVudCYg
cHNldWRvRWxlbWVudCkKK3sKKyAgICBFbGVtZW50KiBwYXJlbnQgPSBwc2V1ZG9FbGVtZW50Lmhv
c3RFbGVtZW50KCk7CisgICAgaWYgKCFwYXJlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlu
dCBwYXJlbnRJZCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQocGFyZW50KTsKKyAgICBpZiAo
IXBhcmVudElkKQorICAgICAgICByZXR1cm47CisKKyAgICBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRl
bmQocGFyZW50SWQsIDEpOworICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wc2V1ZG9FbGVtZW50
QWRkZWQocGFyZW50SWQsIGJ1aWxkT2JqZWN0Rm9yTm9kZSgmcHNldWRvRWxlbWVudCwgMCwgJm1f
ZG9jdW1lbnROb2RlVG9JZE1hcCkpOworfQorCit2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpwc2V1
ZG9FbGVtZW50RGVzdHJveWVkKFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAg
aW50IHBzZXVkb0VsZW1lbnRJZCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQoJnBzZXVkb0Vs
ZW1lbnQpOworICAgIGlmICghcHNldWRvRWxlbWVudElkKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBJZiBhIFBzZXVkb0VsZW1lbnQgaXMgYm91bmQsIGl0cyBwYXJlbnQgZWxlbWVudCBtdXN0
IGhhdmUgYmVlbiBib3VuZC4KKyAgICBFbGVtZW50KiBwYXJlbnQgPSBwc2V1ZG9FbGVtZW50Lmhv
c3RFbGVtZW50KCk7CisgICAgQVNTRVJUKHBhcmVudCk7CisgICAgaW50IHBhcmVudElkID0gbV9k
b2N1bWVudE5vZGVUb0lkTWFwLmdldChwYXJlbnQpOworICAgIEFTU0VSVChwYXJlbnRJZCk7CisK
KyAgICB1bmJpbmQoJnBzZXVkb0VsZW1lbnQsICZtX2RvY3VtZW50Tm9kZVRvSWRNYXApOworICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wc2V1ZG9FbGVtZW50UmVtb3ZlZChwYXJlbnRJZCwgcHNl
dWRvRWxlbWVudElkKTsKK30KKwogTm9kZSogSW5zcGVjdG9yRE9NQWdlbnQ6Om5vZGVGb3JQYXRo
KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAvLyBUaGUgcGF0aCBpcyBvZiBmb3JtICIxLEhU
TUwsMixCT0RZLDEsRElWIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaAppbmRleCBhOGE1NTMxLi43ZGJlMjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTY5LDYgKzE2OSw4IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhbmRsZVRvdWNoRXZlbnQoTm9kZSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZChE
b2N1bWVudCopOwogICAgIHZvaWQgZnJhbWVEb2N1bWVudFVwZGF0ZWQoRnJhbWUqKTsKKyAgICB2
b2lkIHBzZXVkb0VsZW1lbnRDcmVhdGVkKFBzZXVkb0VsZW1lbnQmKTsKKyAgICB2b2lkIHBzZXVk
b0VsZW1lbnREZXN0cm95ZWQoUHNldWRvRWxlbWVudCYpOwogCiAgICAgLy8gQ2FsbGJhY2tzIHRo
YXQgZG9uJ3QgZGlyZWN0bHkgY29ycmVzcG9uZCB0byBhbiBpbnN0cnVtZW50YXRpb24gZW50cnkg
cG9pbnQuCiAgICAgdm9pZCBzZXREb2N1bWVudChEb2N1bWVudCopOwpAQCAtMjMzLDYgKzIzNSw3
IEBAIHByaXZhdGU6CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gYnVp
bGRPYmplY3RGb3JOb2RlKE5vZGUqLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKik7CiAgICAgUmVm
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PFN0cmluZz4+IGJ1aWxkQXJyYXlGb3JFbGVtZW50
QXR0cmlidXRlcyhFbGVtZW50Kik7CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4+IGJ1aWxkQXJyYXlGb3JDb250YWluZXJD
aGlsZHJlbihOb2RlKiBjb250YWluZXIsIGludCBkZXB0aCwgTm9kZVRvSWRNYXAqIG5vZGVzTWFw
KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6RE9NOjpOb2RlPj4gYnVpbGRBcnJheUZvclBzZXVkb0VsZW1lbnRzKGNvbnN0IEVsZW1l
bnQmLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwogICAgIFJlZjxJbnNwZWN0b3I6OlByb3RvY29s
OjpET006OkV2ZW50TGlzdGVuZXI+IGJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBS
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBO
b2RlKiwgY29uc3QgU3RyaW5nKiBvYmplY3RHcm91cElkKTsKICAgICBSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6RE9NOjpBY2Nlc3NpYmlsaXR5UHJvcGVydGllcz4gYnVpbGRPYmplY3RGb3JB
Y2Nlc3NpYmlsaXR5UHJvcGVydGllcyhOb2RlKik7CiAgICAgdm9pZCBwcm9jZXNzQWNjZXNzaWJp
bGl0eUNoaWxkcmVuKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiYmLCBSZWZQdHI8SW5zcGVj
dG9yOjpQcm90b2NvbDo6QXJyYXk8aW50Pj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDQxYzgyODA5Li41
ZWViMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMjA4LDYgKzIwOCwyMCBAQCB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFBvcFNoYWRvd1Jvb3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGluc3RydQogICAgICAgICBkb21BZ2VudC0+d2lsbFBvcFNoYWRvd1Jvb3QoaG9zdCwgcm9vdCk7
CiB9CiAKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50Q3JlYXRl
ZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgUHNldWRvRWxl
bWVudCYgcHNldWRvRWxlbWVudCkKK3sKKyAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JET01BZ2VudCgpKQorICAgICAgICBk
b21BZ2VudC0+cHNldWRvRWxlbWVudENyZWF0ZWQocHNldWRvRWxlbWVudCk7Cit9CisKK3ZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJveWVkSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBQc2V1ZG9FbGVtZW50JiBwc2V1
ZG9FbGVtZW50KQoreworICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0
cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCkpCisgICAgICAgIGRvbUFnZW50LT5w
c2V1ZG9FbGVtZW50RGVzdHJveWVkKHBzZXVkb0VsZW1lbnQpOworICAgIGlmIChJbnNwZWN0b3JM
YXllclRyZWVBZ2VudCogbGF5ZXJUcmVlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3Bl
Y3RvckxheWVyVHJlZUFnZW50KCkpCisgICAgICAgIGxheWVyVHJlZUFnZW50LT5wc2V1ZG9FbGVt
ZW50RGVzdHJveWVkKHBzZXVkb0VsZW1lbnQpOworfQorCiB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkQ3JlYXRlTmFtZWRGbG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyYgbmFt
ZWRGbG93KQogewogICAgIGlmICghZG9jdW1lbnQpCkBAIC0xMjc0LDEwICsxMjg4LDQgQEAgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlbmRlckxheWVyRGVzdHJveWVkSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiBpbnMKICAgICAgICAgbGF5ZXJUcmVlQWdlbnQtPnJlbmRlckxheWVy
RGVzdHJveWVkKHJlbmRlckxheWVyKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCi17Ci0gICAgaWYg
KEluc3BlY3RvckxheWVyVHJlZUFnZW50KiBsYXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMuaW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSkKLSAgICAgICAgbGF5ZXJUcmVlQWdlbnQt
PnBzZXVkb0VsZW1lbnREZXN0cm95ZWQocHNldWRvRWxlbWVudCk7Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaAppbmRleCBhMDM1NGFkLi42MWFiNGVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC03NSw5
ICs3NSw5IEBAIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNz
IERhdGFiYXNlOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgRG9jdW1l
bnRMb2FkZXI7CiBjbGFzcyBEb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uOworY2xhc3MgRWxl
bWVudDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhUVFBIZWFkZXJNYXA7CiBjbGFz
cyBJbnNwZWN0b3JDU1NBZ2VudDsKQEAgLTg1LDcgKzg1LDYgQEAgY2xhc3MgSW5zcGVjdG9yQ1NT
T01XcmFwcGVyczsKIGNsYXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjsKIGNsYXNzIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwotY2xhc3MgVVJM
OwogY2xhc3MgTm9kZTsKIGNsYXNzIFBzZXVkb0VsZW1lbnQ7CiBjbGFzcyBSZW5kZXJMYXllcjsK
QEAgLTEwMCw2ICs5OSw3IEBAIGNsYXNzIFN0b3JhZ2VBcmVhOwogY2xhc3MgU3R5bGVSZXNvbHZl
cjsKIGNsYXNzIFN0eWxlUnVsZTsKIGNsYXNzIFRocmVhZGFibGVMb2FkZXJDbGllbnQ7CitjbGFz
cyBVUkw7CiBjbGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3Bl
UHJveHk7CiBjbGFzcyBYTUxIdHRwUmVxdWVzdDsKQEAgLTEyNiw2ICsxMjYsOCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgbWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoRG9jdW1lbnQmKTsKICAg
ICBzdGF0aWMgdm9pZCBkaWRQdXNoU2hhZG93Um9vdChFbGVtZW50JiBob3N0LCBTaGFkb3dSb290
Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFBvcFNoYWRvd1Jvb3QoRWxlbWVudCYgaG9zdCwgU2hh
ZG93Um9vdCYpOworICAgIHN0YXRpYyB2b2lkIHBzZXVkb0VsZW1lbnRDcmVhdGVkKFBhZ2UqLCBQ
c2V1ZG9FbGVtZW50Jik7CisgICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3llZChQ
YWdlKiwgUHNldWRvRWxlbWVudCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZU5hbWVkRmxv
dyhEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1v
dmVOYW1lZEZsb3coRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cmKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWRDaGFuZ2VSZWdpb25PdmVyc2V0KERvY3VtZW50JiwgV2ViS2l0TmFtZWRGbG93Jik7CkBA
IC0yNzUsNyArMjc3LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgbGF5ZXJUcmVlRGlk
Q2hhbmdlKFBhZ2UqKTsKICAgICBzdGF0aWMgdm9pZCByZW5kZXJMYXllckRlc3Ryb3llZChQYWdl
KiwgY29uc3QgUmVuZGVyTGF5ZXImKTsKLSAgICBzdGF0aWMgdm9pZCBwc2V1ZG9FbGVtZW50RGVz
dHJveWVkKFBhZ2UqLCBQc2V1ZG9FbGVtZW50Jik7CiAKICAgICBzdGF0aWMgdm9pZCBmcm9udGVu
ZENyZWF0ZWQoKSB7IHNfZnJvbnRlbmRDb3VudGVyICs9IDE7IH0KICAgICBzdGF0aWMgdm9pZCBm
cm9udGVuZERlbGV0ZWQoKSB7IHNfZnJvbnRlbmRDb3VudGVyIC09IDE7IH0KQEAgLTMwNiw2ICsz
MDcsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIG1lZGlhUXVlcnlSZXN1bHRDaGFuZ2Vk
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJik7CiAgICAgc3RhdGljIHZvaWQgZGlkUHVzaFNoYWRv
d1Jvb3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBFbGVtZW50JiBob3N0LCBTaGFkb3dSb290
Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFBvcFNoYWRvd1Jvb3RJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBFbGVtZW50JiBob3N0LCBTaGFkb3dSb290Jik7CisgICAgc3RhdGljIHZvaWQgcHNl
dWRvRWxlbWVudENyZWF0ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBQc2V1ZG9FbGVtZW50
Jik7CisgICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIFBzZXVkb0VsZW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVO
YW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBEb2N1bWVudCosIFdlYktpdE5hbWVk
RmxvdyYpOwogICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVOYW1lZEZsb3dJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyYpOwogICAgIHN0YXRpYyB2
b2lkIGRpZENoYW5nZVJlZ2lvbk92ZXJzZXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBEb2N1
bWVudCYsIFdlYktpdE5hbWVkRmxvdyYpOwpAQCAtNDQ5LDcgKzQ1Miw2IEBAIHByaXZhdGU6CiAK
ICAgICBzdGF0aWMgdm9pZCBsYXllclRyZWVEaWRDaGFuZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmKTsKICAgICBzdGF0aWMgdm9pZCByZW5kZXJMYXllckRlc3Ryb3llZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIGNvbnN0IFJlbmRlckxheWVyJik7Ci0gICAgc3RhdGljIHZvaWQgcHNldWRv
RWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFBzZXVkb0VsZW1lbnQm
KTsKIAogICAgIHN0YXRpYyBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
Rm9yUGFnZShQYWdlJik7CiAgICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHNGb3JGcmFtZShGcmFtZSYpOwpAQCAtNTY3LDYgKzU2OSwyMCBAQCBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3BTaGFkb3dSb290KEVsZW1lbnQm
IGhvc3QsIFNoYWRvd1JvbwogICAgICAgICB3aWxsUG9wU2hhZG93Um9vdEltcGwoKmluc3RydW1l
bnRpbmdBZ2VudHMsIGhvc3QsIHJvb3QpOwogfQogCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnRDcmVhdGVkKFBhZ2UqIHBhZ2UsIFBzZXVkb0VsZW1l
bnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZv
aWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMg
PSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKKyAgICAgICAgcHNldWRvRWxlbWVu
dENyZWF0ZWRJbXBsKCppbnN0cnVtZW50aW5nQWdlbnRzLCBwc2V1ZG9FbGVtZW50KTsKK30KKwor
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVzdHJv
eWVkKFBhZ2UqIHBhZ2UsIFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAgRkFT
VF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShw
YWdlKSkKKyAgICAgICAgcHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoKmluc3RydW1lbnRpbmdB
Z2VudHMsIHBzZXVkb0VsZW1lbnQpOworfQorCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENyZWF0ZU5hbWVkRmxvdyhEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5h
bWVkRmxvdyYgbmFtZWRGbG93KQogewogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2
b2lkKCkpOwpAQCAtMTMwOCwyMiArMTMyNCwxOCBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZEZpcmVBbmltYXRpb25GcmFtZShjb25zdCBJbnNwZWN0b3JJbnN0cgog
CiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxheWVyVHJlZURpZENoYW5n
ZShQYWdlKiBwYWdlKQogeworICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkp
OwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSkpCiAgICAgICAgIGxheWVyVHJlZURpZENoYW5n
ZUltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMpOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OnJlbmRlckxheWVyRGVzdHJveWVkKFBhZ2UqIHBhZ2UsIGNvbnN0IFJl
bmRlckxheWVyJiByZW5kZXJMYXllcikKIHsKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVO
RFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQogICAgICAgICByZW5kZXJM
YXllckRlc3Ryb3llZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHJlbmRlckxheWVyKTsKIH0K
IAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50RGVz
dHJveWVkKFBhZ2UqIHBhZ2UsIFBzZXVkb0VsZW1lbnQmIHBzZXVkb0VsZW1lbnQpCi17Ci0gICAg
aWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50
aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKLSAgICAgICAgcHNldWRvRWxlbWVudERlc3Ryb3llZElt
cGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBzZXVkb0VsZW1lbnQpOwotfQotCiBpbmxpbmUgSW5z
dHJ1bWVudGluZ0FnZW50cyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjppbnN0cnVtZW50aW5n
QWdlbnRzRm9yQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogewogICAg
IGlmICghY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVy
bGF5LmNwcAppbmRleCA3NjdmMzQzLi40Zjk5NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUG9seWdv
blNoYXBlLmgiCisjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgogI2luY2x1ZGUgIlJlY3Rhbmds
ZVNoYXBlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94TW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJFbGVtZW50LmgiCkBAIC02ODYsMTcgKzY4NywyNCBAQCBzdGF0aWMgUmVmUHRyPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6Ok92ZXJsYXlUeXBlczo6RWxlbWVudERhdGE+IGJ1aWxkT2JqZWN0Rm9y
RWxlbQogICAgIGlmICghaXM8RWxlbWVudD4obm9kZSkgfHwgIW5vZGUtPmRvY3VtZW50KCkuZnJh
bWUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBFbGVtZW50JiBlbGVtZW50ID0g
ZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpOworICAgIEVsZW1lbnQqIGVmZmVjdGl2ZUVsZW1lbnQg
PSBkb3duY2FzdDxFbGVtZW50Pihub2RlKTsKKyAgICBpZiAobm9kZS0+aXNQc2V1ZG9FbGVtZW50
KCkpIHsKKyAgICAgICAgRWxlbWVudCogaG9zdEVsZW1lbnQgPSBkb3duY2FzdDxQc2V1ZG9FbGVt
ZW50Pigqbm9kZSkuaG9zdEVsZW1lbnQoKTsKKyAgICAgICAgaWYgKCFob3N0RWxlbWVudCkKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBlZmZlY3RpdmVFbGVtZW50ID0gaG9z
dEVsZW1lbnQ7CisgICAgfQorCisgICAgRWxlbWVudCYgZWxlbWVudCA9ICplZmZlY3RpdmVFbGVt
ZW50OwogICAgIGJvb2wgaXNYSFRNTCA9IGVsZW1lbnQuZG9jdW1lbnQoKS5pc1hIVE1MRG9jdW1l
bnQoKTsKLQogICAgIGF1dG8gZWxlbWVudERhdGEgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpPdmVy
bGF5VHlwZXM6OkVsZW1lbnREYXRhOjpjcmVhdGUoKQogICAgICAgICAuc2V0VGFnTmFtZShpc1hI
VE1MID8gZWxlbWVudC5ub2RlTmFtZSgpIDogZWxlbWVudC5ub2RlTmFtZSgpLmxvd2VyKCkpCiAg
ICAgICAgIC5zZXRJZFZhbHVlKGVsZW1lbnQuZ2V0SWRBdHRyaWJ1dGUoKSkKICAgICAgICAgLnJl
bGVhc2UoKTsKIAotICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiB1c2VkQ2xhc3NOYW1lczsKKyAg
ICBTdHJpbmdCdWlsZGVyIGNsYXNzTmFtZXM7CiAgICAgaWYgKGVsZW1lbnQuaGFzQ2xhc3MoKSAm
JiBpczxTdHlsZWRFbGVtZW50PihlbGVtZW50KSkgewotICAgICAgICBTdHJpbmdCdWlsZGVyIGNs
YXNzTmFtZXM7CisgICAgICAgIEhhc2hTZXQ8QXRvbWljU3RyaW5nPiB1c2VkQ2xhc3NOYW1lczsK
ICAgICAgICAgY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgY2xhc3NOYW1lc1N0cmluZyA9IGRvd25j
YXN0PFN0eWxlZEVsZW1lbnQ+KGVsZW1lbnQpLmNsYXNzTmFtZXMoKTsKICAgICAgICAgc2l6ZV90
IGNsYXNzTmFtZUNvdW50ID0gY2xhc3NOYW1lc1N0cmluZy5zaXplKCk7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY2xhc3NOYW1lQ291bnQ7ICsraSkgewpAQCAtNzA3LDggKzcxNSwx
NSBAQCBzdGF0aWMgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok92ZXJsYXlUeXBlczo6RWxl
bWVudERhdGE+IGJ1aWxkT2JqZWN0Rm9yRWxlbQogICAgICAgICAgICAgY2xhc3NOYW1lcy5hcHBl
bmQoJy4nKTsKICAgICAgICAgICAgIGNsYXNzTmFtZXMuYXBwZW5kKGNsYXNzTmFtZSk7CiAgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKG5vZGUtPmlzUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAg
IGlmIChub2RlLT5wc2V1ZG9JZCgpID09IEJFRk9SRSkKKyAgICAgICAgICAgIGNsYXNzTmFtZXMu
YXBwZW5kTGl0ZXJhbCgiOjpiZWZvcmUiKTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+cHNldWRv
SWQoKSA9PSBBRlRFUikKKyAgICAgICAgICAgIGNsYXNzTmFtZXMuYXBwZW5kTGl0ZXJhbCgiOjph
ZnRlciIpOworICAgIH0KKyAgICBpZiAoIWNsYXNzTmFtZXMuaXNFbXB0eSgpKQogICAgICAgICBl
bGVtZW50RGF0YS0+c2V0Q2xhc3NOYW1lKGNsYXNzTmFtZXMudG9TdHJpbmcoKSk7Ci0gICAgfQog
CiAgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIgPSBlbGVtZW50LnJlbmRlcmVyKCk7CiAgICAg
aWYgKCFyZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVz
b2x2ZVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAK
aW5kZXggYzYwNDc4Yi4uYWNhNWNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVSZXNvbHZlVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNv
bHZlVHJlZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEu
aCIKICNpbmNsdWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc2VydGlv
blBvaW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKICNpbmNsdWRlICJO
b2RlUmVuZGVyU3R5bGUuaCIKQEAgLTQ2NCw2ICs0NjUsNyBAQCBzdGF0aWMgdm9pZCBhdHRhY2hC
ZWZvcmVPckFmdGVyUHNldWRvRWxlbWVudElmTmVlZGVkKEVsZW1lbnQmIGN1cnJlbnQsIFBzZXVk
b0lkCiAgICAgaWYgKCFuZWVkc1BzZXVkb0VsZW1lbnQoY3VycmVudCwgcHNldWRvSWQpKQogICAg
ICAgICByZXR1cm47CiAgICAgUmVmPFBzZXVkb0VsZW1lbnQ+IHBzZXVkb0VsZW1lbnQgPSBQc2V1
ZG9FbGVtZW50OjpjcmVhdGUoY3VycmVudCwgcHNldWRvSWQpOworICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudENyZWF0ZWQocHNldWRvRWxlbWVudC0+ZG9jdW1lbnQo
KS5wYWdlKCksIHBzZXVkb0VsZW1lbnQuZ2V0KCkpOwogICAgIHNldEJlZm9yZU9yQWZ0ZXJQc2V1
ZG9FbGVtZW50KGN1cnJlbnQsIHBzZXVkb0VsZW1lbnQuY29weVJlZigpLCBwc2V1ZG9JZCk7CiAg
ICAgYXR0YWNoUmVuZGVyVHJlZShwc2V1ZG9FbGVtZW50LmdldCgpLCAqY3VycmVudC5yZW5kZXJT
dHlsZSgpLCByZW5kZXJUcmVlUG9zaXRpb24sIG51bGxwdHIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKaW5kZXggN2NhYmM5Yi4uMTUzNzYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsODcgQEAKIDIwMTUtMDctMjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBTaG93IFBzZXVkbyBFbGVtZW50cyBp
biBET00gVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01UcmVlTWFuYWdlci5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5wcm90b3R5cGUuX3BzZXVkb0VsZW1lbnRB
ZGRlZCk6CisgICAgICAgIEhvb2sgdXAgdGhlIG5ldyBwc2V1ZG8gZWxlbWVudCBET01Ob2RlIHRv
IHRoZSBwYXJlbnQuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5wcm90
b3R5cGUuX3BzZXVkb0VsZW1lbnRSZW1vdmVkKToKKyAgICAgICAgVW5ob29rIHRoZSBwc2V1ZG8g
ZWxlbWVudCBmcm9tIGl0cyBwYXJlbnQuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVl
TWFuYWdlci5wcm90b3R5cGUuX3VuYmluZCk6CisgICAgICAgIFdoZW4gdW5iaW5kaW5nLCB1bmJp
bmQgYW55IHBzZXVkbyBlbGVtZW50IGNoaWxkcmVuIHdlIG1heSBoYXZlIGhhZC4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRE9NTm9kZS5wcm90b3R5cGUuaXNQc2V1ZG9FbGVtZW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLnByb3RvdHlwZS5wc2V1ZG9UeXBlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01Ob2RlLnByb3RvdHlwZS5oYXNQc2V1ZG9FbGVtZW50cyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUucHNldWRvRWxlbWVudHMpOgorICAgICAgICBOZXcgc3Rh
dGUgb2YgYSBET01Ob2RlIG1heSBpbmNsdWRlIHBzZXVkbyBlbGVtZW50cy4KKworICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLmFwcHJvcHJpYXRlU2VsZWN0b3JGb3IpOgor
ICAgICAgICBBIHNlbGVjdG9yIGZvciB0aGlzIG5vZGUgaW5jbHVkZXMgdGhlIHNlbGVjdG9yIGZv
ciB0aGUgbm9kZSBhYm92ZSBpdC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
RE9NT2JzZXJ2ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NT2JzZXJ2ZXIucHJvdG90
eXBlLnBzZXVkb0VsZW1lbnRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NT2JzZXJ2
ZXIucHJvdG90eXBlLnBzZXVkb0VsZW1lbnRSZW1vdmVkKToKKyAgICAgICAgUGFzcyB0aGUgbWVz
c2FnZSBvbiB0byBET01UcmVlTWFuYWdlci4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvRE9NVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1l
bnQucHJvdG90eXBlLmdldCBlZGl0YWJsZSk6CisgICAgICAgIFBzZXVkbyBlbGVtZW50IG5vZGVz
IGFyZSBub3QgZWRpdGFibGUuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVu
dC5wcm90b3R5cGUuc2hvd0NoaWxkTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJl
ZUVsZW1lbnQucHJvdG90eXBlLm9ucG9wdWxhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50LnByb3RvdHlwZS51cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl9ub2RlVGl0bGVJbmZvKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX3NpbmdsZVRleHRDaGlsZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLl9oYXNWaXNp
YmxlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5fdmlzaWJsZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxl
bWVudC5wcm90b3R5cGUuX3VwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01UcmVlRWxlbWVudC5wcm90b3R5cGUuYWRqdXN0Q29sbGFwc2VkUmFuZ2UpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5oYW5kbGVMb2FkQWxsQ2hpbGRy
ZW4pOgorICAgICAgICBBIERPTVRyZWVFbGVtZW50J3MgY2hpbGRyZW4gYXJlIG5vIGxvbmdlciAx
LXRvLTEgdG8gRE9NTm9kZSdzIGNoaWxkcmVuLgorICAgICAgICBJbnN0ZWFkIGEgRE9NTm9kZSBt
YXkgaGF2ZSBhIGJlZm9yZS9hZnRlciBwc2V1ZG8gZWxlbWVudCBjaGlsZCB0aGF0CisgICAgICAg
IGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIGNoaWxkcmVuIGxpc3QuIFVwZGF0ZSBwYXJ0cyBvZiBE
T01UcmVlRWxlbWVudAorICAgICAgICB0byByZXNwZWN0IHRoaXMgbGlzdCBvZiB2aXNpYmxlIGNo
aWxkcmVuLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudFBh
dGhDb21wb25lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRo
Q29tcG9uZW50KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1BhdGhDb21wb25lbnRJ
Y29ucy5jc3M6CisgICAgICAgICguZG9tLXBzZXVkby1lbGVtZW50LWljb24gLmljb24pOgorICAg
ICAgICBTdHlsaW5nIGZvciB0aGUgcGF0aCBjb21wb25lbnQgd2hlbiBhIHBzZXVkbyBlbGVtZW50
IGlzIHNlbGVjdGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0
bGluZS5jc3M6CisgICAgICAgICguZG9tLXRyZWUtb3V0bGluZSAuaHRtbC1wc2V1ZG8tZWxlbWVu
dCk6CisgICAgICAgICguZG9tLXRyZWUtb3V0bGluZSAuaHRtbC1mcmFnbWVudC5zaGFkb3cpOgor
ICAgICAgICAoLndlYmtpdC1odG1sLWZyYWdtZW50LnNoYWRvdyk6IERlbGV0ZWQuCisgICAgICAg
IFN0eWxlcyBmb3IgcHNldWRvIGVsZW1lbnRzIGluIHRoZSBET00gdHJlZS4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NVHJlZU91dGxpbmUucHJvdG90eXBlLl9oaWRlRWxlbWVudCk6CisgICAgICAgIE1h
a2UgdGhlIGhpZGUgZWxlbWVudCBzZWxlY3RvciBoaWRlIHRoZSBob3N0IGVsZW1lbnQuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwucHJv
dG90eXBlLmFkZEV2ZW50TGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXJzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBl
Ll9mb3JjZWRQc2V1ZG9DbGFzc0NoZWNrYm94Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fdXBkYXRlUHNldWRvQ2xh
c3NDaGVja2JveGVzKToKKyAgICAgICAgUHNldWRvIGNsYXNzIGNoYW5nZXMgd29uJ3QgaGFwcGVu
IG9uIHBzZXVkbyBlbGVtZW50cywgYnV0IHdpbGwKKyAgICAgICAgaGFwcGVuIG9uIHRoZWlyIGhv
c3QgZWxlbWVudCwgc28gbGlzdGVuIHRvIGFuZCBtYWtlIHBzZXVkbyBjbGFzcworICAgICAgICBj
aGFuZ2VzIHRvIHRoZSBob3N0IGVsZW1lbnQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3NzOgorICAgICAgICAoLnNpZGViYXIgPiAucGFu
ZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnJ1bGVzID4gKjpmaXJzdC1jaGlsZDptYXRjaGVzKC5uZXct
cnVsZSkpOgorICAgICAgICBTaW5jZSBhIHBzZXVkbyBlbGVtZW50IGRvZXMgbm90IGhhdmUgYSBz
dHlsZSBhdHRyaWJ1dGUsCisgICAgICAgIGdpdmUgc29tZSBtYXJnaW4gaW4gdGhlIHN0eWxlIHNp
ZGViYXIgYWJvdmUgdGhlICJOZXcgUnVsZSIKKyAgICAgICAgYnV0dG9uIHNvIGl0IGxvb2tzIGJl
dHRlci4KKworMjAxNS0wNy0yNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBjdXN0b20gcGFyYW1ldGVyIGxpc3RzIGZv
ciBuZXcgRE9NIGFwcGVuZC9wcmVwZW5kL2JlZm9yZS9hZnRlci9yZXBsYWNlV2l0aCBtZXRob2Rz
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyNTcK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvRE9NVHJlZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9ET01UcmVlTWFuYWdlci5qcwppbmRleCA4YzIwODNmLi5lNmRkN2Yw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9ET01UcmVlTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9ET01UcmVlTWFuYWdlci5qcwpAQCAtMjQ2LDcgKzI0NiwzOCBA
QCBXZWJJbnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIgPSBjbGFzcyBET01UcmVlTWFuYWdlciBleHRl
bmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9pZFRvRE9N
Tm9kZVtub2RlSWRdOwogICAgICAgICBwYXJlbnQuX3JlbW92ZUNoaWxkKG5vZGUpOwogICAgICAg
ICB0aGlzLl91bmJpbmQobm9kZSk7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5Ob2RlUmVtb3ZlZCwge25vZGU6
bm9kZSwgcGFyZW50fSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5ET01UcmVlTWFuYWdlci5FdmVudC5Ob2RlUmVtb3ZlZCwge25vZGUsIHBhcmVu
dH0pOworICAgIH0KKworICAgIF9wc2V1ZG9FbGVtZW50QWRkZWQocGFyZW50SWQsIHBzZXVkb0Vs
ZW1lbnQpCisgICAgeworICAgICAgICB2YXIgcGFyZW50ID0gdGhpcy5faWRUb0RPTU5vZGVbcGFy
ZW50SWRdOworICAgICAgICBpZiAoIXBhcmVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NTm9kZSh0aGlzLCBwYXJlbnQub3du
ZXJEb2N1bWVudCwgZmFsc2UsIHBzZXVkb0VsZW1lbnQpOworICAgICAgICBub2RlLnBhcmVudE5v
ZGUgPSBwYXJlbnQ7CisgICAgICAgIHRoaXMuX2lkVG9ET01Ob2RlW25vZGUuaWRdID0gbm9kZTsK
KyAgICAgICAgY29uc29sZS5hc3NlcnQoIXBhcmVudC5wc2V1ZG9FbGVtZW50cygpLmdldChub2Rl
LnBzZXVkb1R5cGUoKSkpOworICAgICAgICBwYXJlbnQucHNldWRvRWxlbWVudHMoKS5zZXQobm9k
ZS5wc2V1ZG9UeXBlKCksIG5vZGUpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIuRXZlbnQuTm9kZUluc2VydGVkLCB7bm9k
ZSwgcGFyZW50fSk7CisgICAgfQorCisgICAgX3BzZXVkb0VsZW1lbnRSZW1vdmVkKHBhcmVudElk
LCBwc2V1ZG9FbGVtZW50SWQpCisgICAgeworICAgICAgICB2YXIgcHNldWRvRWxlbWVudCA9IHRo
aXMuX2lkVG9ET01Ob2RlW3BzZXVkb0VsZW1lbnRJZF07CisgICAgICAgIGlmICghcHNldWRvRWxl
bWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YXIgcGFyZW50ID0gcHNldWRv
RWxlbWVudC5wYXJlbnROb2RlOworICAgICAgICBjb25zb2xlLmFzc2VydChwYXJlbnQpOworICAg
ICAgICBjb25zb2xlLmFzc2VydChwYXJlbnQuaWQgPT09IHBhcmVudElkKTsKKyAgICAgICAgaWYg
KCFwYXJlbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgcGFyZW50Ll9yZW1vdmVD
aGlsZChwc2V1ZG9FbGVtZW50KTsKKyAgICAgICAgdGhpcy5fdW5iaW5kKHBzZXVkb0VsZW1lbnQp
OworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9N
VHJlZU1hbmFnZXIuRXZlbnQuTm9kZVJlbW92ZWQsIHtub2RlOiBwc2V1ZG9FbGVtZW50LCBwYXJl
bnR9KTsKICAgICB9CiAKICAgICBfdW5iaW5kKG5vZGUpCkBAIC0yNTQsOCArMjg1LDE2IEBAIFdl
Ykluc3BlY3Rvci5ET01UcmVlTWFuYWdlciA9IGNsYXNzIERPTVRyZWVNYW5hZ2VyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICB0aGlzLl9yZW1vdmVDb250ZW50Tm9kZUZyb21G
bG93SWZOZWVkZWQobm9kZSk7CiAKICAgICAgICAgZGVsZXRlIHRoaXMuX2lkVG9ET01Ob2RlW25v
ZGUuaWRdOworCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBub2RlLmNoaWxkcmVuICYmIGkgPCBu
b2RlLmNoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgdGhpcy5fdW5iaW5kKG5vZGUu
Y2hpbGRyZW5baV0pOworCisgICAgICAgIHZhciBwc2V1ZG9FbGVtZW50cyA9IG5vZGUucHNldWRv
RWxlbWVudHMoKTsKKyAgICAgICAgZm9yICh2YXIgcHNldWRvRWxlbWVudCBvZiBwc2V1ZG9FbGVt
ZW50cykKKyAgICAgICAgICAgIHRoaXMuX3VuYmluZChwc2V1ZG9FbGVtZW50KTsKKworICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIHNoYWRvdyByb290cy4KKyAgICAgICAgLy8gRklYTUU6IEhhbmRs
ZSB0ZW1wbGF0ZSBjb250ZW50LgogICAgIH0KIAogICAgIGdldCByZXN0b3JlU2VsZWN0ZWROb2Rl
SXNBbGxvd2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9ET01Ob2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0RPTU5vZGUuanMKaW5kZXggZTA2NDYyNi4uMmY1NmU2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGUuanMK
QEAgLTQ2LDYgKzQ2LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICB0aGlzLl9ub2RlTmFtZSA9IHBheWxv
YWQubm9kZU5hbWU7CiAgICAgICAgIHRoaXMuX2xvY2FsTmFtZSA9IHBheWxvYWQubG9jYWxOYW1l
OwogICAgICAgICB0aGlzLl9ub2RlVmFsdWUgPSBwYXlsb2FkLm5vZGVWYWx1ZTsKKyAgICAgICAg
dGhpcy5fcHNldWRvVHlwZSA9IHBheWxvYWQucHNldWRvVHlwZTsKICAgICAgICAgdGhpcy5fY29t
cHV0ZWRSb2xlID0gcGF5bG9hZC5yb2xlOwogCiAgICAgICAgIGlmICh0aGlzLl9ub2RlVHlwZSA9
PT0gTm9kZS5ET0NVTUVOVF9OT0RFKQpAQCAtNzgsOSArNzksMjAgQEAgV2ViSW5zcGVjdG9yLkRP
TU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKKyAgICAgICAgLy8gRklYTUU6IEhhbmRsZSB0ZW1wbGF0ZUNv
bnRlbnQuCisKICAgICAgICAgaWYgKHBheWxvYWQuY2hpbGRyZW4pCiAgICAgICAgICAgICB0aGlz
Ll9zZXRDaGlsZHJlblBheWxvYWQocGF5bG9hZC5jaGlsZHJlbik7CiAKKyAgICAgICAgdGhpcy5f
cHNldWRvRWxlbWVudHMgPSBuZXcgTWFwOworICAgICAgICBpZiAocGF5bG9hZC5wc2V1ZG9FbGVt
ZW50cykgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXlsb2FkLnBzZXVkb0Vs
ZW1lbnRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRPTU5vZGUodGhpcy5fZG9tQWdlbnQsIHRoaXMub3duZXJEb2N1bWVudCwgdGhp
cy5faXNJblNoYWRvd1RyZWUsIHBheWxvYWQucHNldWRvRWxlbWVudHNbaV0pOworICAgICAgICAg
ICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IHRoaXM7CisgICAgICAgICAgICAgICAgdGhpcy5fcHNl
dWRvRWxlbWVudHMuc2V0KG5vZGUucHNldWRvVHlwZSgpLCBub2RlKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorCiAgICAgICAgIGlmIChwYXlsb2FkLmNvbnRlbnREb2N1bWVudCkgewogICAg
ICAgICAgICAgdGhpcy5fY29udGVudERvY3VtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5ET01Ob2Rl
KGRvbUFnZW50LCBudWxsLCBmYWxzZSwgcGF5bG9hZC5jb250ZW50RG9jdW1lbnQpOwogICAgICAg
ICAgICAgdGhpcy5fY2hpbGRyZW4gPSBbdGhpcy5fY29udGVudERvY3VtZW50XTsKQEAgLTIyMSw2
ICsyMzMsMTEgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICByZXR1cm4gdGhpcy5faXNJblNoYWRvd1RyZWU7
CiAgICAgfQogCisgICAgaXNQc2V1ZG9FbGVtZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9wc2V1ZG9UeXBlICE9PSB1bmRlZmluZWQ7CisgICAgfQorCiAgICAgbm9kZVR5cGUoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVUeXBlOwpAQCAtMjQ2LDYgKzI2MywzMSBA
QCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbE5hbWU7CiAgICAgfQogCisgICAg
cHNldWRvVHlwZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcHNldWRvVHlwZTsKKyAg
ICB9CisKKyAgICBoYXNQc2V1ZG9FbGVtZW50cygpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fcHNldWRvRWxlbWVudHMuc2l6ZSA+IDA7CisgICAgfQorCisgICAgcHNldWRvRWxlbWVudHMo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BzZXVkb0VsZW1lbnRzOworICAgIH0KKwor
ICAgIGJlZm9yZVBzZXVkb0VsZW1lbnQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Bz
ZXVkb0VsZW1lbnRzLmdldChXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5C
ZWZvcmUpIHx8IG51bGw7CisgICAgfQorCisgICAgYWZ0ZXJQc2V1ZG9FbGVtZW50KCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9wc2V1ZG9FbGVtZW50cy5nZXQoV2ViSW5zcGVjdG9yLkRP
TU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIpIHx8IG51bGw7CisgICAgfQorCiAgICAgbm9k
ZVZhbHVlKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9ub2RlVmFsdWU7CkBAIC00MDcs
NiArNDQ5LDkgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgYXBwcm9wcmlhdGVTZWxlY3RvckZvcihqdXN0U2Vs
ZWN0b3IpCiAgICAgeworICAgICAgICBpZiAodGhpcy5pc1BzZXVkb0VsZW1lbnQoKSkKKyAgICAg
ICAgICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGUuYXBwcm9wcmlhdGVTZWxlY3RvckZvcigpICsg
Ijo6IiArIHRoaXMuX3BzZXVkb1R5cGU7CisKICAgICAgICAgdmFyIGxvd2VyQ2FzZU5hbWUgPSB0
aGlzLmxvY2FsTmFtZSgpIHx8IHRoaXMubm9kZU5hbWUoKS50b0xvd2VyQ2FzZSgpOwogCiAgICAg
ICAgIHZhciBpZCA9IHRoaXMuZ2V0QXR0cmlidXRlKCJpZCIpOwpAQCAtNDc1LDcgKzUyMCwxMiBA
QCBXZWJJbnNwZWN0b3IuRE9NTm9kZSA9IGNsYXNzIERPTU5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuT2JqZWN0CiAKICAgICBfcmVtb3ZlQ2hpbGQobm9kZSkKICAgICB7Ci0gICAgICAgIHRoaXMu
X2NoaWxkcmVuLnNwbGljZSh0aGlzLl9jaGlsZHJlbi5pbmRleE9mKG5vZGUpLCAxKTsKKyAgICAg
ICAgLy8gRklYTUU6IEhhbmRsZSByZW1vdmFsIGlmIHRoaXMgaXMgYSBzaGFkb3cgcm9vdC4KKyAg
ICAgICAgaWYgKG5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpCisgICAgICAgICAgICB0aGlzLl9wc2V1
ZG9FbGVtZW50cy5kZWxldGUobm9kZS5wc2V1ZG9UeXBlKCkpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICB0aGlzLl9jaGlsZHJlbi5zcGxpY2UodGhpcy5fY2hpbGRyZW4uaW5kZXhPZihub2Rl
KSwgMSk7CisKICAgICAgICAgbm9kZS5wYXJlbnROb2RlID0gbnVsbDsKICAgICAgICAgdGhpcy5f
cmVudW1iZXIoKTsKICAgICB9CkBAIC00ODgsOCArNTM4LDcgQEAgV2ViSW5zcGVjdG9yLkRPTU5v
ZGUgPSBjbGFzcyBET01Ob2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgICAg
IHRoaXMuX2NoaWxkcmVuID0gdGhpcy5fc2hhZG93Um9vdHMuc2xpY2UoKTsKICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBwYXlsb2Fkcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFy
IHBheWxvYWQgPSBwYXlsb2Fkc1tpXTsKLSAgICAgICAgICAgIHZhciBub2RlID0gbmV3IFdlYklu
c3BlY3Rvci5ET01Ob2RlKHRoaXMuX2RvbUFnZW50LCB0aGlzLm93bmVyRG9jdW1lbnQsIHRoaXMu
X2lzSW5TaGFkb3dUcmVlLCBwYXlsb2FkKTsKKyAgICAgICAgICAgIHZhciBub2RlID0gbmV3IFdl
Ykluc3BlY3Rvci5ET01Ob2RlKHRoaXMuX2RvbUFnZW50LCB0aGlzLm93bmVyRG9jdW1lbnQsIHRo
aXMuX2lzSW5TaGFkb3dUcmVlLCBwYXlsb2Fkc1tpXSk7CiAgICAgICAgICAgICB0aGlzLl9jaGls
ZHJlbi5wdXNoKG5vZGUpOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3JlbnVtYmVyKCk7CkBA
IC01OTcsMyArNjQ2LDggQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUuRXZlbnQgPSB7CiAgICAgQXR0
cmlidXRlTW9kaWZpZWQ6ICJkb20tbm9kZS1hdHRyaWJ1dGUtbW9kaWZpZWQiLAogICAgIEF0dHJp
YnV0ZVJlbW92ZWQ6ICJkb20tbm9kZS1hdHRyaWJ1dGUtcmVtb3ZlZCIKIH07CisKK1dlYkluc3Bl
Y3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlID0geworICAgIEJlZm9yZTogImJlZm9yZSIs
CisgICAgQWZ0ZXI6ICJhZnRlciIsCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9ET01PYnNlcnZlci5qcwppbmRleCBhMDIy
OGM5Li43MGI5YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9ET01PYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9ET01PYnNlcnZlci5qcwpAQCAtODEsNCArODEsMTQgQEAg
V2ViSW5zcGVjdG9yLkRPTU9ic2VydmVyID0gY2xhc3MgRE9NT2JzZXJ2ZXIKICAgICB7CiAgICAg
ICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5fY2hpbGROb2RlUmVtb3ZlZChwYXJlbnRO
b2RlSWQsIG5vZGVJZCk7CiAgICAgfQorCisgICAgcHNldWRvRWxlbWVudEFkZGVkKHBhcmVudE5v
ZGVJZCwgcHNldWRvRWxlbWVudCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVl
TWFuYWdlci5fcHNldWRvRWxlbWVudEFkZGVkKHBhcmVudE5vZGVJZCwgcHNldWRvRWxlbWVudCk7
CisgICAgfQorCisgICAgcHNldWRvRWxlbWVudFJlbW92ZWQocGFyZW50Tm9kZUlkLCBwc2V1ZG9F
bGVtZW50SWQpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIuX3Bz
ZXVkb0VsZW1lbnRSZW1vdmVkKHBhcmVudE5vZGVJZCwgcHNldWRvRWxlbWVudElkKTsKKyAgICB9
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCmluZGV4
IGFjMzY0YzcuLmIyM2RkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFpbHNTaWRl
YmFyUGFuZWwuanMKQEAgLTE1NywxMiArMTU3LDIwIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
dGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBDU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwgZXh0
CiAKICAgICBhZGRFdmVudExpc3RlbmVycygpCiAgICAgewotICAgICAgICB0aGlzLmRvbU5vZGUu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NTm9kZS5FdmVudC5FbmFibGVkUHNldWRv
Q2xhc3Nlc0NoYW5nZWQsIHRoaXMuX3VwZGF0ZVBzZXVkb0NsYXNzQ2hlY2tib3hlcywgdGhpcyk7
CisgICAgICAgIHZhciBlZmZlY3RpdmVET01Ob2RlID0gdGhpcy5kb21Ob2RlLmlzUHNldWRvRWxl
bWVudCgpID8gdGhpcy5kb21Ob2RlLnBhcmVudE5vZGUgOiB0aGlzLmRvbU5vZGU7CisgICAgICAg
IGlmICghZWZmZWN0aXZlRE9NTm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBl
ZmZlY3RpdmVET01Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTU5vZGUuRXZl
bnQuRW5hYmxlZFBzZXVkb0NsYXNzZXNDaGFuZ2VkLCB0aGlzLl91cGRhdGVQc2V1ZG9DbGFzc0No
ZWNrYm94ZXMsIHRoaXMpOwogICAgIH0KIAogICAgIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuZG9tTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGws
IHRoaXMpOworICAgICAgICB2YXIgZWZmZWN0aXZlRE9NTm9kZSA9IHRoaXMuZG9tTm9kZS5pc1Bz
ZXVkb0VsZW1lbnQoKSA/IHRoaXMuZG9tTm9kZS5wYXJlbnROb2RlIDogdGhpcy5kb21Ob2RlOwor
ICAgICAgICBpZiAoIWVmZmVjdGl2ZURPTU5vZGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgZWZmZWN0aXZlRE9NTm9kZS5yZW1vdmVFdmVudExpc3RlbmVyKG51bGwsIG51bGwsIHRo
aXMpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTIzNSw3ICsyNDMsOSBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ1NTU3R5bGVEZXRhaWxz
U2lkZWJhclBhbmVsIGV4dAogICAgICAgICBpZiAoIXRoaXMuZG9tTm9kZSkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICB0aGlzLmRvbU5vZGUuc2V0UHNldWRvQ2xhc3NFbmFibGVkKHBz
ZXVkb0NsYXNzLCBldmVudC50YXJnZXQuY2hlY2tlZCk7CisgICAgICAgIHZhciBlZmZlY3RpdmVE
T01Ob2RlID0gdGhpcy5kb21Ob2RlLmlzUHNldWRvRWxlbWVudCgpID8gdGhpcy5kb21Ob2RlLnBh
cmVudE5vZGUgOiB0aGlzLmRvbU5vZGU7CisKKyAgICAgICAgZWZmZWN0aXZlRE9NTm9kZS5zZXRQ
c2V1ZG9DbGFzc0VuYWJsZWQocHNldWRvQ2xhc3MsIGV2ZW50LnRhcmdldC5jaGVja2VkKTsKICAg
ICB9CiAKICAgICBfdXBkYXRlUHNldWRvQ2xhc3NDaGVja2JveGVzKCkKQEAgLTI0Myw3ICsyNTMs
OSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ1NT
U3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsIGV4dAogICAgICAgICBpZiAoIXRoaXMuZG9tTm9kZSkK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgZW5hYmxlZFBzZXVkb0NsYXNzZXMg
PSB0aGlzLmRvbU5vZGUuZW5hYmxlZFBzZXVkb0NsYXNzZXM7CisgICAgICAgIHZhciBlZmZlY3Rp
dmVET01Ob2RlID0gdGhpcy5kb21Ob2RlLmlzUHNldWRvRWxlbWVudCgpID8gdGhpcy5kb21Ob2Rl
LnBhcmVudE5vZGUgOiB0aGlzLmRvbU5vZGU7CisKKyAgICAgICAgdmFyIGVuYWJsZWRQc2V1ZG9D
bGFzc2VzID0gZWZmZWN0aXZlRE9NTm9kZS5lbmFibGVkUHNldWRvQ2xhc3NlczsKIAogICAgICAg
ICBmb3IgKHZhciBwc2V1ZG9DbGFzcyBpbiB0aGlzLl9mb3JjZWRQc2V1ZG9DbGFzc0NoZWNrYm94
ZXMpIHsKICAgICAgICAgICAgIHZhciBjaGVja2JveEVsZW1lbnQgPSB0aGlzLl9mb3JjZWRQc2V1
ZG9DbGFzc0NoZWNrYm94ZXNbcHNldWRvQ2xhc3NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcwppbmRl
eCAyNmNmMTdkLi5lZWU4YmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qcwpAQCAtMzUsNyArMzUs
NyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBl
eHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgICAgICBzdXBlcigiIiwgbm9kZSk7CiAK
ICAgICAgICAgdGhpcy5fZWxlbWVudENsb3NlVGFnID0gZWxlbWVudENsb3NlVGFnOwotICAgICAg
ICB0aGlzLmhhc0NoaWxkcmVuID0gIWVsZW1lbnRDbG9zZVRhZyAmJiBub2RlLmhhc0NoaWxkTm9k
ZXMoKSAmJiAhdGhpcy5fc2hvd0lubGluZVRleHQobm9kZSk7CisgICAgICAgIHRoaXMuaGFzQ2hp
bGRyZW4gPSAhZWxlbWVudENsb3NlVGFnICYmIHRoaXMuX2hhc1Zpc2libGVDaGlsZHJlbigpOwog
CiAgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgPT09IE5vZGUu
RUxFTUVOVF9OT0RFICYmICFlbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICB0aGlzLl9jYW5B
ZGRBdHRyaWJ1dGVzID0gdHJ1ZTsKQEAgLTE1OSw3ICsxNTksMTAgQEAgV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
VHJlZUVsZW0KIAogICAgIGdldCBlZGl0YWJsZSgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5pc0luU2hhZG93VHJlZSgpKQorICAgICAgICB2YXIgbm9kZSA9IHRo
aXMucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIGlmIChub2RlLmlzSW5TaGFkb3dUcmVlKCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChub2RlLmlzUHNldWRvRWxl
bWVudCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJldHVybiB0aGlz
LnRyZWVPdXRsaW5lLmVkaXRhYmxlOwpAQCAtMTkwLDE5ICsxOTMsMjIgQEAgV2ViSW5zcGVjdG9y
LkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuVHJlZUVsZW0KICAgICAgICAgcmV0dXJuIGNvdW50OwogICAgIH0KIAotICAgIHNob3dDaGls
ZChpbmRleCkKKyAgICBzaG93Q2hpbGROb2RlKG5vZGUpCiAgICAgewogICAgICAgICBjb25zb2xl
LmFzc2VydCghdGhpcy5fZWxlbWVudENsb3NlVGFnKTsKICAgICAgICAgaWYgKHRoaXMuX2VsZW1l
bnRDbG9zZVRhZykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVy
biBudWxsOworCisgICAgICAgIHZhciBpbmRleCA9IHRoaXMuX3Zpc2libGVDaGlsZHJlbigpLmlu
ZGV4T2Yobm9kZSk7CisgICAgICAgIGlmIChpbmRleCA9PT0gLTEpCisgICAgICAgICAgICByZXR1
cm4gbnVsbDsKIAogICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5leHBhbmRlZENoaWxkcmVuTGlt
aXQpIHsKICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IGluZGV4ICsg
MTsKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuKHRydWUpOwogICAgICAgICB9CiAK
LSAgICAgICAgLy8gV2hldGhlciBpbmRleC10aCBjaGlsZCBpcyB2aXNpYmxlIGluIHRoZSBjaGls
ZHJlbiB0cmVlCi0gICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkQ2hpbGRDb3VudCA+IGluZGV4
OworICAgICAgICByZXR1cm4gdGhpcy5jaGlsZHJlbltpbmRleF07CiAgICAgfQogCiAgICAgX2Ny
ZWF0ZVRvb2x0aXBGb3JOb2RlKCkKQEAgLTI4NSw3ICsyOTEsNyBAQCBXZWJJbnNwZWN0b3IuRE9N
VHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5U
cmVlRWxlbQogCiAgICAgb25wb3B1bGF0ZSgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5jaGls
ZHJlbi5sZW5ndGggfHwgdGhpcy5fc2hvd0lubGluZVRleHQodGhpcy5yZXByZXNlbnRlZE9iamVj
dCkgfHwgdGhpcy5fZWxlbWVudENsb3NlVGFnKQorICAgICAgICBpZiAodGhpcy5jaGlsZHJlbi5s
ZW5ndGggfHwgIXRoaXMuX2hhc1Zpc2libGVDaGlsZHJlbigpIHx8IHRoaXMuX2VsZW1lbnRDbG9z
ZVRhZykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVu
KCk7CkBAIC0zMDAsNiArMzA2LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xh
c3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICB7CiAg
ICAgICAgIGlmICh0aGlzLl9lbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICByZXR1cm47CisK
ICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5nZXRDaGlsZE5vZGVzKHRoaXMuX3VwZGF0
ZUNoaWxkcmVuLmJpbmQodGhpcywgZnVsbFJlZnJlc2gpKTsKICAgICB9CiAKQEAgLTMyNiw3OCAr
MzMzLDg1IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVt
ZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW5JblByb2dyZXNzID0gdHJ1ZTsKKworICAgICAg
ICB2YXIgbm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgIHZhciBzZWxlY3Rl
ZE5vZGUgPSB0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdGVkRE9NTm9kZSgpOwogICAgICAgICB2YXIg
b3JpZ2luYWxTY3JvbGxUb3AgPSAwOwotICAgICAgICBpZiAoZnVsbFJlZnJlc2gpIHsKKworICAg
ICAgICB2YXIgaGFzVmlzaWJsZUNoaWxkcmVuID0gdGhpcy5faGFzVmlzaWJsZUNoaWxkcmVuKCk7
CisKKyAgICAgICAgaWYgKGZ1bGxSZWZyZXNoIHx8ICFoYXNWaXNpYmxlQ2hpbGRyZW4pIHsKICAg
ICAgICAgICAgIHZhciB0cmVlT3V0bGluZUNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLnRyZWVPdXRs
aW5lLmVsZW1lbnQucGFyZW50Tm9kZTsKICAgICAgICAgICAgIG9yaWdpbmFsU2Nyb2xsVG9wID0g
dHJlZU91dGxpbmVDb250YWluZXJFbGVtZW50LnNjcm9sbFRvcDsKICAgICAgICAgICAgIHZhciBz
ZWxlY3RlZFRyZWVFbGVtZW50ID0gdGhpcy50cmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50
OwogICAgICAgICAgICAgaWYgKHNlbGVjdGVkVHJlZUVsZW1lbnQgJiYgc2VsZWN0ZWRUcmVlRWxl
bWVudC5oYXNBbmNlc3Rvcih0aGlzKSkKICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgpOwog
ICAgICAgICAgICAgdGhpcy5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICB9CiAKLSAgICAgICAg
dmFyIHRyZWVFbGVtZW50ID0gdGhpczsKLSAgICAgICAgdmFyIHRyZWVDaGlsZEluZGV4ID0gMDsK
LSAgICAgICAgdmFyIGVsZW1lbnRUb1NlbGVjdDsKLQotICAgICAgICBmdW5jdGlvbiB1cGRhdGVD
aGlsZHJlbk9mTm9kZShub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdHJlZU91dGxp
bmUgPSB0cmVlRWxlbWVudC50cmVlT3V0bGluZTsKLSAgICAgICAgICAgIHZhciBjaGlsZCA9IG5v
ZGUuZmlyc3RDaGlsZDsKLSAgICAgICAgICAgIHdoaWxlIChjaGlsZCkgewotICAgICAgICAgICAg
ICAgIHZhciBjdXJyZW50VHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVudC5jaGlsZHJlblt0cmVlQ2hp
bGRJbmRleF07Ci0gICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50VHJlZUVsZW1lbnQgfHwgY3Vy
cmVudFRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0ICE9PSBjaGlsZCkgewotICAgICAgICAg
ICAgICAgICAgICAvLyBGaW5kIGFueSBleGlzdGluZyBlbGVtZW50IHRoYXQgaXMgbGF0ZXIgaW4g
dGhlIGNoaWxkcmVuIGxpc3QuCi0gICAgICAgICAgICAgICAgICAgIHZhciBleGlzdGluZ1RyZWVF
bGVtZW50ID0gbnVsbDsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9ICh0cmVlQ2hp
bGRJbmRleCArIDEpLCBzaXplID0gdHJlZUVsZW1lbnQuZXhwYW5kZWRDaGlsZENvdW50OyBpIDwg
c2l6ZTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQuY2hp
bGRyZW5baV0ucmVwcmVzZW50ZWRPYmplY3QgPT09IGNoaWxkKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXhpc3RpbmdUcmVlRWxlbWVudCA9IHRyZWVFbGVtZW50LmNoaWxkcmVuW2ld
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYg
KGV4aXN0aW5nVHJlZUVsZW1lbnQgJiYgZXhpc3RpbmdUcmVlRWxlbWVudC5wYXJlbnQgPT09IHRy
ZWVFbGVtZW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBhbiBleGlzdGluZyBl
bGVtZW50IHdhcyBmb3VuZCBhbmQgaXQgaGFzIHRoZSBzYW1lIHBhcmVudCwganVzdCBtb3ZlIGl0
LgotICAgICAgICAgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQubW92ZUNoaWxkKGV4aXN0aW5n
VHJlZUVsZW1lbnQsIHRyZWVDaGlsZEluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vIGV4aXN0aW5nIGVsZW1lbnQgZm91bmQs
IGluc2VydCBhIG5ldyBlbGVtZW50LgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyZWVD
aGlsZEluZGV4IDwgdHJlZUVsZW1lbnQuZXhwYW5kZWRDaGlsZHJlbkxpbWl0KSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdmFyIG5ld0VsZW1lbnQgPSB0cmVlRWxlbWVudC5pbnNlcnRD
aGlsZEVsZW1lbnQoY2hpbGQsIHRyZWVDaGlsZEluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoY2hpbGQgPT09IHNlbGVjdGVkTm9kZSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZWxlbWVudFRvU2VsZWN0ID0gbmV3RWxlbWVudDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQuZXhwYW5kZWRDaGlsZENvdW50ID4gdHJlZUVs
ZW1lbnQuZXhwYW5kZWRDaGlsZHJlbkxpbWl0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmVlRWxlbWVudC5leHBhbmRlZENoaWxkcmVuTGltaXQrKzsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmc7Ci0gICAgICAgICAgICAg
ICAgKyt0cmVlQ2hpbGRJbmRleDsKKyAgICAgICAgICAgIC8vIE5vIGxvbmdlciBoYXZlIGNoaWxk
cmVuLgorICAgICAgICAgICAgaWYgKCFoYXNWaXNpYmxlQ2hpbGRyZW4pIHsKKyAgICAgICAgICAg
ICAgICB0aGlzLmhhc0NoaWxkcmVuID0gZmFsc2U7CisgICAgICAgICAgICAgICAgdGhpcy51cGRh
dGVUaXRsZSgpOworICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuSW5Qcm9ncmVz
cyA9IGZhbHNlOworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogCisgICAgICAgIC8vIFdlIG5vdyBoYXZlIGNoaWxkcmVuLgorICAgICAgICBpZiAoIXRo
aXMuaGFzQ2hpbGRyZW4pIHsKKyAgICAgICAgICAgIHRoaXMuaGFzQ2hpbGRyZW4gPSB0cnVlOwor
ICAgICAgICAgICAgdGhpcy51cGRhdGVUaXRsZSgpOworICAgICAgICB9CisKICAgICAgICAgLy8g
UmVtb3ZlIGFueSB0cmVlIGVsZW1lbnRzIHRoYXQgbm8gbG9uZ2VyIGhhdmUgdGhpcyBub2RlIChv
ciB0aGlzIG5vZGUncyBjb250ZW50RG9jdW1lbnQpIGFzIHRoZWlyIHBhcmVudC4KKyAgICAgICAg
Ly8gS2VlcCBhIGxpc3Qgb2YgZXhpc3RpbmcgdHJlZSBlbGVtZW50cyBmb3Igbm9kZXMgdGhhdCB3
ZSBjYW4gdXNlIGxhdGVyLgorICAgICAgICB2YXIgZXhpc3RpbmdDaGlsZFRyZWVFbGVtZW50cyA9
IG5ldyBNYXA7CiAgICAgICAgIGZvciAodmFyIGkgPSAodGhpcy5jaGlsZHJlbi5sZW5ndGggLSAx
KTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgICAgIHZhciBjdXJyZW50Q2hpbGQgPSB0aGlzLmNo
aWxkcmVuW2ldOwotICAgICAgICAgICAgdmFyIGN1cnJlbnROb2RlID0gY3VycmVudENoaWxkLnJl
cHJlc2VudGVkT2JqZWN0OworICAgICAgICAgICAgdmFyIGN1cnJlbnRDaGlsZFRyZWVFbGVtZW50
ID0gdGhpcy5jaGlsZHJlbltpXTsKKyAgICAgICAgICAgIHZhciBjdXJyZW50Tm9kZSA9IGN1cnJl
bnRDaGlsZFRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OwogICAgICAgICAgICAgdmFyIGN1
cnJlbnRQYXJlbnROb2RlID0gY3VycmVudE5vZGUucGFyZW50Tm9kZTsKLQotICAgICAgICAgICAg
aWYgKGN1cnJlbnRQYXJlbnROb2RlID09PSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0KQorICAgICAg
ICAgICAgaWYgKGN1cnJlbnRQYXJlbnROb2RlID09PSBub2RlKSB7CisgICAgICAgICAgICAgICAg
ZXhpc3RpbmdDaGlsZFRyZWVFbGVtZW50cy5zZXQoY3VycmVudE5vZGUsIGN1cnJlbnRDaGlsZFRy
ZWVFbGVtZW50KTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgdmFyIHNlbGVjdGVkVHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLnNl
bGVjdGVkVHJlZUVsZW1lbnQ7Ci0gICAgICAgICAgICBpZiAoc2VsZWN0ZWRUcmVlRWxlbWVudCAm
JiAoc2VsZWN0ZWRUcmVlRWxlbWVudCA9PT0gY3VycmVudENoaWxkIHx8IHNlbGVjdGVkVHJlZUVs
ZW1lbnQuaGFzQW5jZXN0b3IoY3VycmVudENoaWxkKSkpCisgICAgICAgICAgICBpZiAoc2VsZWN0
ZWRUcmVlRWxlbWVudCAmJiAoc2VsZWN0ZWRUcmVlRWxlbWVudCA9PT0gY3VycmVudENoaWxkVHJl
ZUVsZW1lbnQgfHwgc2VsZWN0ZWRUcmVlRWxlbWVudC5oYXNBbmNlc3RvcihjdXJyZW50Q2hpbGRU
cmVlRWxlbWVudCkpKQogICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCk7CiAKICAgICAgICAg
ICAgIHRoaXMucmVtb3ZlQ2hpbGRBdEluZGV4KGkpOwogICAgICAgICB9CiAKLSAgICAgICAgdXBk
YXRlQ2hpbGRyZW5PZk5vZGUodGhpcy5yZXByZXNlbnRlZE9iamVjdCk7CisgICAgICAgIC8vIE1v
dmUgLyBjcmVhdGUgVHJlZUVsZW1lbnRzIGZvciBvdXIgdmlzaWJsZSBjaGlsZHJlbi4KKyAgICAg
ICAgdmFyIGNoaWxkSW5kZXggPSAwOworICAgICAgICB2YXIgZWxlbWVudFRvU2VsZWN0ID0gbnVs
bDsKKyAgICAgICAgdmFyIHZpc2libGVDaGlsZHJlbiA9IHRoaXMuX3Zpc2libGVDaGlsZHJlbigp
OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZpc2libGVDaGlsZHJlbi5sZW5ndGggJiYg
aSA8IHRoaXMuZXhwYW5kZWRDaGlsZHJlbkxpbWl0OyArK2kpIHsKKyAgICAgICAgICAgIHZhciBj
aGlsZE5vZGUgPSB2aXNpYmxlQ2hpbGRyZW5baV07CisKKyAgICAgICAgICAgIC8vIEFscmVhZHkg
aGF2ZSBhIHRyZWUgZWxlbWVudCBmb3IgdGhpcyBjaGlsZCwganVzdCBtb3ZlIGl0LgorICAgICAg
ICAgICAgdmFyIGV4aXN0aW5nQ2hpbGRUcmVlRWxlbWVudCA9IGV4aXN0aW5nQ2hpbGRUcmVlRWxl
bWVudHMuZ2V0KGNoaWxkTm9kZSk7CisgICAgICAgICAgICBpZiAoZXhpc3RpbmdDaGlsZFRyZWVF
bGVtZW50KSB7CisgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQ2hpbGQoZXhpc3RpbmdDaGlsZFRy
ZWVFbGVtZW50LCBpKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgLy8gTm8gZXhpc3RpbmcgdHJlZSBlbGVtZW50IGZvciB0aGlzIGNoaWxk
LiBJbnNlcnQgYSBuZXcgZWxlbWVudC4KKyAgICAgICAgICAgIHZhciBuZXdDaGlsZFRyZWVFbGVt
ZW50ID0gdGhpcy5pbnNlcnRDaGlsZEVsZW1lbnQoY2hpbGROb2RlLCBpKTsKKworICAgICAgICAg
ICAgLy8gVXBkYXRlIHN0YXRlLgorICAgICAgICAgICAgaWYgKGNoaWxkTm9kZSA9PT0gc2VsZWN0
ZWROb2RlKQorICAgICAgICAgICAgICAgIGVsZW1lbnRUb1NlbGVjdCA9IG5ld0NoaWxkVHJlZUVs
ZW1lbnQ7CisgICAgICAgICAgICBpZiAodGhpcy5leHBhbmRlZENoaWxkQ291bnQgPiB0aGlzLmV4
cGFuZGVkQ2hpbGRyZW5MaW1pdCkKKyAgICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkQ2hpbGRy
ZW5MaW1pdCsrOworICAgICAgICB9CisKKyAgICAgICAgLy8gVXBkYXRlIGV4cGFuZCBhbGwgY2hp
bGRyZW4gYnV0dG9uLgogICAgICAgICB0aGlzLmFkanVzdENvbGxhcHNlZFJhbmdlKCk7CiAKKyAg
ICAgICAgLy8gSW5zZXJ0IGNsb3NpbmcgdGFnIHRyZWUgZWxlbWVudC4KICAgICAgICAgdmFyIGxh
c3RDaGlsZCA9IHRoaXMuY2hpbGRyZW4ubGFzdFZhbHVlOwotICAgICAgICBpZiAodGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5ub2RlVHlwZSgpID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAoIWxhc3RD
aGlsZCB8fCAhbGFzdENoaWxkLl9lbGVtZW50Q2xvc2VUYWcpKQorICAgICAgICBpZiAobm9kZS5u
b2RlVHlwZSgpID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAoIWxhc3RDaGlsZCB8fCAhbGFzdENo
aWxkLl9lbGVtZW50Q2xvc2VUYWcpKQogICAgICAgICAgICAgdGhpcy5pbnNlcnRDaGlsZEVsZW1l
bnQodGhpcy5yZXByZXNlbnRlZE9iamVjdCwgdGhpcy5jaGlsZHJlbi5sZW5ndGgsIHRydWUpOwog
CiAgICAgICAgIC8vIFdlIHdhbnQgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgc2VsZWN0aW9uIGFu
ZCB0cmVlIHNjcm9sbCBwb3NpdGlvbiBhZnRlciBhIGZ1bGwgcmVmcmVzaCwgaWYgcG9zc2libGUu
CkBAIC00MTgsMTYgKzQzMiwxOCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFz
cyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgICAgICAg
ICAgdGhpcy5yZW1vdmVDaGlsZCh0aGlzLmV4cGFuZEFsbEJ1dHRvbkVsZW1lbnQuX190cmVlRWxl
bWVudCk7CiAKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OwotICAg
ICAgICBpZiAoIW5vZGUuY2hpbGRyZW4pCisgICAgICAgIGlmICghdGhpcy5faGFzVmlzaWJsZUNo
aWxkcmVuKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciBjaGlsZE5vZGVDb3Vu
dCA9IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOworCisgICAgICAgIHZhciB2aXNpYmxlQ2hpbGRyZW4g
PSB0aGlzLl92aXNpYmxlQ2hpbGRyZW4oKTsKKyAgICAgICAgdmFyIHRvdGFsQ2hpbGRyZW5Db3Vu
dCA9IHZpc2libGVDaGlsZHJlbi5sZW5ndGg7CiAKICAgICAgICAgLy8gSW4gY2FzZSBzb21lIG5v
ZGVzIGZyb20gdGhlIGV4cGFuZGVkIHJhbmdlIHdlcmUgcmVtb3ZlZCwgcHVsbCBzb21lIG5vZGVz
IGZyb20gdGhlIGNvbGxhcHNlZCByYW5nZSBpbnRvIHRoZSBleHBhbmRlZCByYW5nZSBhdCB0aGUg
Ym90dG9tLgotICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5leHBhbmRlZENoaWxkQ291bnQsIGxp
bWl0ID0gTWF0aC5taW4odGhpcy5leHBhbmRlZENoaWxkcmVuTGltaXQsIGNoaWxkTm9kZUNvdW50
KTsgaSA8IGxpbWl0OyArK2kpCi0gICAgICAgICAgICB0aGlzLmluc2VydENoaWxkRWxlbWVudChu
b2RlLmNoaWxkcmVuW2ldLCBpKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuZXhwYW5kZWRD
aGlsZENvdW50LCBsaW1pdCA9IE1hdGgubWluKHRoaXMuZXhwYW5kZWRDaGlsZHJlbkxpbWl0LCB0
b3RhbENoaWxkcmVuQ291bnQpOyBpIDwgbGltaXQ7ICsraSkKKyAgICAgICAgICAgIHRoaXMuaW5z
ZXJ0Q2hpbGRFbGVtZW50KHRvdGFsQ2hpbGRyZW5Db3VudFtpXSwgaSk7CiAKICAgICAgICAgdmFy
IGV4cGFuZGVkQ2hpbGRDb3VudCA9IHRoaXMuZXhwYW5kZWRDaGlsZENvdW50OwotICAgICAgICBp
ZiAoY2hpbGROb2RlQ291bnQgPiB0aGlzLmV4cGFuZGVkQ2hpbGRDb3VudCkgeworICAgICAgICBp
ZiAodG90YWxDaGlsZHJlbkNvdW50ID4gdGhpcy5leHBhbmRlZENoaWxkQ291bnQpIHsKICAgICAg
ICAgICAgIHZhciB0YXJnZXRCdXR0b25JbmRleCA9IGV4cGFuZGVkQ2hpbGRDb3VudDsKICAgICAg
ICAgICAgIGlmICghdGhpcy5leHBhbmRBbGxCdXR0b25FbGVtZW50KSB7CiAgICAgICAgICAgICAg
ICAgdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwpAQCAtNDQ1
LDE0ICs0NjEsMTYgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJl
ZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgICAgIH0gZWxz
ZSBpZiAoIXRoaXMuZXhwYW5kQWxsQnV0dG9uRWxlbWVudC5fX3RyZWVFbGVtZW50LnBhcmVudCkK
ICAgICAgICAgICAgICAgICB0aGlzLmluc2VydENoaWxkKHRoaXMuZXhwYW5kQWxsQnV0dG9uRWxl
bWVudC5fX3RyZWVFbGVtZW50LCB0YXJnZXRCdXR0b25JbmRleCk7CiAKLSAgICAgICAgICAgIHRo
aXMuZXhwYW5kQWxsQnV0dG9uRWxlbWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU2hvdyBBbGwgTm9kZXMgKCVkIE1vcmUpIikuZm9ybWF0KGNoaWxkTm9kZUNvdW50IC0g
ZXhwYW5kZWRDaGlsZENvdW50KTsKKyAgICAgICAgICAgIHRoaXMuZXhwYW5kQWxsQnV0dG9uRWxl
bWVudC50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBBbGwgTm9kZXMg
KCVkIE1vcmUpIikuZm9ybWF0KHRvdGFsQ2hpbGRyZW5Db3VudCAtIGV4cGFuZGVkQ2hpbGRDb3Vu
dCk7CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5leHBhbmRBbGxCdXR0b25FbGVtZW50KQogICAg
ICAgICAgICAgdGhpcy5leHBhbmRBbGxCdXR0b25FbGVtZW50ID0gbnVsbDsKICAgICB9CiAKICAg
ICBoYW5kbGVMb2FkQWxsQ2hpbGRyZW4oKQogICAgIHsKLSAgICAgICAgdGhpcy5leHBhbmRlZENo
aWxkcmVuTGltaXQgPSBNYXRoLm1heCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmNoaWxkTm9kZUNv
dW50LCB0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCArIFdlYkluc3BlY3Rvci5ET01UcmVlRWxl
bWVudC5Jbml0aWFsQ2hpbGRyZW5MaW1pdCk7CisgICAgICAgIHZhciB2aXNpYmxlQ2hpbGRyZW4g
PSB0aGlzLl92aXNpYmxlQ2hpbGRyZW4oKTsKKyAgICAgICAgdmFyIHRvdGFsQ2hpbGRyZW5Db3Vu
dCA9IHZpc2libGVDaGlsZHJlbi5sZW5ndGg7CisgICAgICAgIHRoaXMuZXhwYW5kZWRDaGlsZHJl
bkxpbWl0ID0gTWF0aC5tYXgodmlzaWJsZUNoaWxkcmVuLmxlbmd0aCwgdGhpcy5leHBhbmRlZENo
aWxkcmVuTGltaXQgKyBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQuSW5pdGlhbENoaWxkcmVu
TGltaXQpOwogICAgIH0KIAogICAgIG9uZXhwYW5kKCkKQEAgLTU3NSw3ICs1OTMsNyBAQCBXZWJJ
bnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdl
Ykluc3BlY3Rvci5UcmVlRWxlbQogICAgICAgICBpZiAodGhpcy50cmVlT3V0bGluZS5zZWxlY3Rl
ZERPTU5vZGUoKSAhPT0gdGhpcy5yZXByZXNlbnRlZE9iamVjdCkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5pc0luU2hhZG93
VHJlZSgpKQorICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5pc0luU2hhZG93VHJl
ZSgpIHx8IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaXNQc2V1ZG9FbGVtZW50KCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
bm9kZVR5cGUoKSAhPT0gTm9kZS5FTEVNRU5UX05PREUgJiYgdGhpcy5yZXByZXNlbnRlZE9iamVj
dC5ub2RlVHlwZSgpICE9PSBOb2RlLlRFWFRfTk9ERSkKQEAgLTExMTQsNyArMTEzMiw3IEBAIFdl
Ykluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMg
V2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAKICAgICAgICAgc3dpdGNoIChub2RlLm5vZGVUeXBlKCkp
IHsKICAgICAgICAgICAgIGNhc2UgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgotICAgICAg
ICAgICAgICAgIHZhciBmcmFnbWVudEVsZW1lbnQgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxk
KCJzcGFuIiwgIndlYmtpdC1odG1sLWZyYWdtZW50Iik7CisgICAgICAgICAgICAgICAgdmFyIGZy
YWdtZW50RWxlbWVudCA9IGluZm8udGl0bGVET00uY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRtbC1m
cmFnbWVudCIpOwogICAgICAgICAgICAgICAgIGlmIChub2RlLmlzSW5TaGFkb3dUcmVlKCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnRFbGVtZW50LnRleHRDb250ZW50ID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTaGFkb3cgQ29udGVudCIpOwogICAgICAgICAgICAgICAgICAgICBm
cmFnbWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2hhZG93Iik7CkBAIC0xMTI4LDYgKzExNDYs
MTQgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgICAgICAgICBicmVhazsKIAog
ICAgICAgICAgICAgY2FzZSBOb2RlLkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgICAgICBpZiAo
bm9kZS5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgcHNldWRv
RWxlbWVudCA9IGluZm8udGl0bGVET00uY3JlYXRlQ2hpbGQoInNwYW4iLCAiaHRtbC1wc2V1ZG8t
ZWxlbWVudCIpOworICAgICAgICAgICAgICAgICAgICBwc2V1ZG9FbGVtZW50LnRleHRDb250ZW50
ID0gIjo6IiArIG5vZGUucHNldWRvVHlwZSgpOworICAgICAgICAgICAgICAgICAgICBpbmZvLnRp
dGxlRE9NLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcdTIwMEIiKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGluZm8uaGFzQ2hpbGRyZW4gPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgdmFy
IHRhZ05hbWUgPSBub2RlLm5vZGVOYW1lSW5Db3JyZWN0Q2FzZSgpOwogICAgICAgICAgICAgICAg
IGlmICh0aGlzLl9lbGVtZW50Q2xvc2VUYWcpIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy5f
YnVpbGRUYWdET00oaW5mby50aXRsZURPTSwgdGFnTmFtZSwgdHJ1ZSwgdHJ1ZSk7CkBAIC0xMjM3
LDYgKzEyNjMsOCBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVl
RWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogCiAgICAgICAgIGlmIChub2Rl
Lmhhc1NoYWRvd1Jvb3RzKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgaWYg
KG5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOwogCiAg
ICAgICAgIHZhciBzaWJsaW5nID0gZmlyc3RDaGlsZC5uZXh0U2libGluZzsKICAgICAgICAgcmV0
dXJuIHNpYmxpbmcgPyBudWxsIDogZmlyc3RDaGlsZDsKQEAgLTEyNTIsNiArMTI4MCw0MSBAQCBX
ZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRz
IFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisg
ICAgX2hhc1Zpc2libGVDaGlsZHJlbigpCisgICAgeworICAgICAgICB2YXIgbm9kZSA9IHRoaXMu
cmVwcmVzZW50ZWRPYmplY3Q7CisKKyAgICAgICAgaWYgKHRoaXMuX3Nob3dJbmxpbmVUZXh0KG5v
ZGUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChub2RlLmhhc0No
aWxkTm9kZXMoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobm9kZS5o
YXNQc2V1ZG9FbGVtZW50cygpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIF92aXNpYmxlQ2hpbGRyZW4oKQorICAgIHsKKyAg
ICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OworCisgICAgICAgIHZhciB2
aXNpYmxlQ2hpbGRyZW4gPSBbXTsKKworICAgICAgICB2YXIgYmVmb3JlUHNldWRvRWxlbWVudCA9
IG5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpOworICAgICAgICBpZiAoYmVmb3JlUHNldWRvRWxl
bWVudCkKKyAgICAgICAgICAgIHZpc2libGVDaGlsZHJlbi5wdXNoKGJlZm9yZVBzZXVkb0VsZW1l
bnQpOworCisgICAgICAgIGlmIChub2RlLmNoaWxkTm9kZUNvdW50KQorICAgICAgICAgICAgdmlz
aWJsZUNoaWxkcmVuID0gdmlzaWJsZUNoaWxkcmVuLmNvbmNhdChub2RlLmNoaWxkcmVuKTsKKwor
ICAgICAgICB2YXIgYWZ0ZXJQc2V1ZG9FbGVtZW50ID0gbm9kZS5hZnRlclBzZXVkb0VsZW1lbnQo
KTsKKyAgICAgICAgaWYgKGFmdGVyUHNldWRvRWxlbWVudCkKKyAgICAgICAgICAgIHZpc2libGVD
aGlsZHJlbi5wdXNoKGFmdGVyUHNldWRvRWxlbWVudCk7CisKKyAgICAgICAgcmV0dXJuIHZpc2li
bGVDaGlsZHJlbjsKKyAgICB9CisKICAgICByZW1vdmUoKQogICAgIHsKICAgICAgICAgdmFyIHBh
cmVudEVsZW1lbnQgPSB0aGlzLnBhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50
UGF0aENvbXBvbmVudC5qcwppbmRleCAyMTA5NGUzLi42ZjZlMDMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudFBhdGhD
b21wb25lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LmpzCkBAIC0zNCw4ICszNCwxMyBAQCBXZWJJ
bnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1l
bnRQYXRoQ29tcG9uZW50IGV4dAogCiAgICAgICAgIHN3aXRjaCAobm9kZS5ub2RlVHlwZSgpKSB7
CiAgICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6Ci0gICAgICAgICAgICBjbGFzc05hbWUg
PSBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LkRPTUVsZW1lbnRJY29u
U3R5bGVDbGFzc05hbWU7Ci0gICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5kaXNwbGF5
TmFtZUZvck5vZGUobm9kZSk7CisgICAgICAgICAgICBpZiAobm9kZS5pc1BzZXVkb0VsZW1lbnQo
KSkgeworICAgICAgICAgICAgICAgIGNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5ET01UcmVlRWxl
bWVudFBhdGhDb21wb25lbnQuRE9NUHNldWRvRWxlbWVudEljb25TdHlsZUNsYXNzTmFtZTsKKyAg
ICAgICAgICAgICAgICB0aXRsZSA9ICI6OiIgKyBub2RlLnBzZXVkb1R5cGUoKTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5ET01FbGVtZW50SWNvblN0eWxlQ2xhc3NOYW1lOwor
ICAgICAgICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yTm9kZShu
b2RlKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2Ug
Tm9kZS5URVhUX05PREU6CkBAIC0xMjksNiArMTM0LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVF
bGVtZW50UGF0aENvbXBvbmVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudCBl
eHQKIH07CiAKIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NRWxl
bWVudEljb25TdHlsZUNsYXNzTmFtZSA9ICJkb20tZWxlbWVudC1pY29uIjsKK1dlYkluc3BlY3Rv
ci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NUHNldWRvRWxlbWVudEljb25TdHlsZUNs
YXNzTmFtZSA9ICJkb20tcHNldWRvLWVsZW1lbnQtaWNvbiI7CiBXZWJJbnNwZWN0b3IuRE9NVHJl
ZUVsZW1lbnRQYXRoQ29tcG9uZW50LkRPTVRleHROb2RlSWNvblN0eWxlQ2xhc3NOYW1lID0gImRv
bS10ZXh0LW5vZGUtaWNvbiI7CiBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9u
ZW50LkRPTUNvbW1lbnRJY29uU3R5bGVDbGFzc05hbWUgPSAiZG9tLWNvbW1lbnQtaWNvbiI7CiBX
ZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LkRPTURvY3VtZW50VHlwZUlj
b25TdHlsZUNsYXNzTmFtZSA9ICJkb20tZG9jdW1lbnQtdHlwZS1pY29uIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5l
LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVP
dXRsaW5lLmNzcwppbmRleCA1Y2FjZWY4Li43N2UzZDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUu
Y3NzCkBAIC0xNTQsMTIgKzE1NCwxNiBAQAogICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKIH0K
IAorLmRvbS10cmVlLW91dGxpbmUgLmh0bWwtcHNldWRvLWVsZW1lbnQgeworICAgIGNvbG9yOiBo
c2woMCwgNTklLCA0MSUpOworfQorCisuZG9tLXRyZWUtb3V0bGluZSAuaHRtbC1mcmFnbWVudC5z
aGFkb3cgeworICAgIG9wYWNpdHk6IDAuNjsKK30KKwogLnNob3dpbmctZmluZC1iYW5uZXIgLmRv
bS10cmVlLW91dGxpbmUgLnNlYXJjaC1oaWdobGlnaHQgewogICAgIGNvbG9yOiBibGFjazsKICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBoc2xhKDUzLCA4MyUsIDUzJSwgMC4yKTsKICAgICBib3JkZXIt
Ym90dG9tOiAxcHggc29saWQgaHNsKDQ3LCA4MiUsIDYwJSk7CiB9Ci0KLS53ZWJraXQtaHRtbC1m
cmFnbWVudC5zaGFkb3cgewotICAgIG9wYWNpdHk6IDAuNjsKLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUu
anMKaW5kZXggZmE3ZTUyNi4uMzNhNTA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91dGxpbmUuanMKQEAgLTIy
OCwxNCArMjI4LDE1IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNzIERPTVRy
ZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVPdXRsCiAgICAgICAgIHZhciB0cmVl
RWxlbWVudCA9IHRoaXMuZmluZFRyZWVFbGVtZW50KG5vZGUpOwogICAgICAgICBpZiAodHJlZUVs
ZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gdHJlZUVsZW1lbnQ7CisKICAgICAgICAgaWYgKCFu
b2RlLnBhcmVudE5vZGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKIAogICAgICAgICB0cmVl
RWxlbWVudCA9IHRoaXMuY3JlYXRlVHJlZUVsZW1lbnRGb3Iobm9kZS5wYXJlbnROb2RlKTsKLSAg
ICAgICAgaWYgKHRyZWVFbGVtZW50ICYmIHRyZWVFbGVtZW50LnNob3dDaGlsZChub2RlLmluZGV4
KSkKLSAgICAgICAgICAgIHJldHVybiB0cmVlRWxlbWVudC5jaGlsZHJlbltub2RlLmluZGV4XTsK
KyAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOwogCi0g
ICAgICAgIHJldHVybiBudWxsOworICAgICAgICByZXR1cm4gdHJlZUVsZW1lbnQuc2hvd0NoaWxk
Tm9kZShub2RlKTsKICAgICB9CiAKICAgICBzZXQgc3VwcHJlc3NSZXZlYWxBbmRTZWxlY3QoeCkK
QEAgLTU0OCwxMiArNTQ5LDE5IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNz
IERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVPdXRsCiAKICAgICAgICAg
ZXZlbnQucHJldmVudERlZmF1bHQoKTsKIAotICAgICAgICB2YXIgc2VsZWN0ZWROb2RlID0gdGhp
cy5zZWxlY3RlZFRyZWVFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OwotICAgICAgICBjb25zb2xl
LmFzc2VydChzZWxlY3RlZE5vZGUpOwotICAgICAgICBpZiAoIXNlbGVjdGVkTm9kZSkKKyAgICAg
ICAgdmFyIGVmZmVjdGl2ZU5vZGUgPSB0aGlzLnNlbGVjdGVkVHJlZUVsZW1lbnQucmVwcmVzZW50
ZWRPYmplY3Q7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGVmZmVjdGl2ZU5vZGUpOworICAgICAg
ICBpZiAoIWVmZmVjdGl2ZU5vZGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYg
KHNlbGVjdGVkTm9kZS5ub2RlVHlwZSgpICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkKKyAgICAgICAg
aWYgKGVmZmVjdGl2ZU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgICAgIGVmZmVj
dGl2ZU5vZGUgPSBlZmZlY3RpdmVOb2RlLnBhcmVudE5vZGU7CisgICAgICAgICAgICBjb25zb2xl
LmFzc2VydChlZmZlY3RpdmVOb2RlKTsKKyAgICAgICAgICAgIGlmICghZWZmZWN0aXZlTm9kZSkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gICAgICAgICAgICAKKworICAgICAg
ICBpZiAoZWZmZWN0aXZlTm9kZS5ub2RlVHlwZSgpICE9PSBOb2RlLkVMRU1FTlRfTk9ERSkKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBmdW5jdGlvbiByZXNvbHZlZE5vZGUob2JqZWN0
KQpAQCAtNTc5LDcgKzU4Nyw3IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZSA9IGNsYXNz
IERPTVRyZWVPdXRsaW5lIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVPdXRsCiAgICAgICAgICAg
ICBvYmplY3QucmVsZWFzZSgpOwogICAgICAgICB9CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLlJl
bW90ZU9iamVjdC5yZXNvbHZlTm9kZShzZWxlY3RlZE5vZGUsICIiLCByZXNvbHZlZE5vZGUpOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlKGVmZmVjdGl2ZU5v
ZGUsICIiLCByZXNvbHZlZE5vZGUpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1BhdGhDb21wb25lbnRJY29ucy5jc3Mg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9QYXRoQ29tcG9uZW50
SWNvbnMuY3NzCmluZGV4IDRkMzg3N2IuLjVlNjg5MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1BhdGhDb21wb25lbnRJY29ucy5jc3MKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUGF0aENvbXBvbmVu
dEljb25zLmNzcwpAQCAtMzUsNiArMzUsMTAgQEAKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2Vz
L0RPTUVsZW1lbnQuc3ZnKTsKIH0KIAorLmRvbS1wc2V1ZG8tZWxlbWVudC1pY29uIC5pY29uIHsK
KyAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2VzL1BzZXVkb0VsZW1lbnQuc3ZnKTsKK30KKwogLmRv
bS10ZXh0LW5vZGUtaWNvbiAuaWNvbiB7CiAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9ET01U
ZXh0Tm9kZS5zdmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmNzcwpp
bmRleCAxN2FiOTk4NC4uYTY0Y2Y3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQ
YW5lbC5jc3MKQEAgLTUyLDYgKzUyLDEwIEBACiAgICAgb3BhY2l0eTogMC41OwogfQogCisuc2lk
ZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHlsZSAucnVsZXMgPiAqOmZpcnN0LWNoaWxkOm1h
dGNoZXMoLm5ldy1ydWxlKSB7CisgICAgbWFyZ2luLXRvcDogOHB4OworfQorCiAuc2lkZWJhciA+
IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHlsZSA+IC5jb250ZW50LmZpbHRlci1pbi1wcm9ncmVzcyAu
bGFiZWwgewogICAgIHBhZGRpbmctdG9wOiAxNXB4OwogfQo=
</data>
<flag name="commit-queue"
          id="282754"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257598</attachid>
            <date>2015-07-27 15:07:29 -0700</date>
            <delta_ts>2015-07-28 11:48:41 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>for-landing-2.patch</filename>
            <type>text/plain</type>
            <size>90168</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NDZhZGNjLi5hNWQ1MmZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDct
MjQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBTaG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9wc2V1
ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZv
ci1wc2V1ZG8tZWxlbWVudC1ub2RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
b20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0YXRpYy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGljLmh0bWw6
IEFkZGVkLgorCiAyMDE1LTA3LTI3ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgogCiAgICAgICAgIFRlc3QgcmVzdWx0IGdhcmRlbmluZyBmb3IgRWwgQ2FwaXRhbi4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hlcy1m
b3ItcHNldWRvLWVsZW1lbnQtbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY3NzL3BzZXVkby1lbGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViYWU0ODMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL3BzZXVkby1lbGVtZW50
LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTggQEAKK1Rlc3RpbmcgdGhhdCB3ZSBjYW4gZ2V0IGNvbXB1dGVkIGFuZCBtYXRjaGVkIHJ1bGVz
IGZvciBwc2V1ZG8gZWxlbWVudCBub2Rlcy4KKworVEVTVCBFTEVNRU5UOiBIYXMgQmVmb3JlIFBz
ZXVkbyBFbGVtZW50CitQQVNTOiBHb3QgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQgZm9yICN4CitS
ZWZyZXNoaW5nIHN0eWxlcyBmb3IgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQKKworUEFTUzogTm8g
SW5saW5lIFN0eWxlcworUEFTUzogTm8gQXR0cmlidXRlIFN0eWxlcworUEFTUzogTm8gSW5oZXJp
dGVkIFN0eWxlcworUEFTUzogTm8gUHNldWRvIEVsZW1lbnQgU3R5bGVzCitQQVNTOiBIYXMgQ29t
cHV0ZWQgU3R5bGVzCitQUk9QRVJUWTogY29udGVudDogYmVmb3JlOworUFJPUEVSVFk6IGNvbG9y
OiByZ2IoMCwgMCwgMjU1KTsKK01BVENIRUQgUlVMRToKKyAgU0VMRUNUT1I6IGlucHV0OmJlZm9y
ZQorICBTRUxFQ1RPUjogI3g6YmVmb3JlIFttYXRjaGVkXQorICBTRUxFQ1RPUjogZGl2CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hl
cy1mb3ItcHNldWRvLWVsZW1lbnQtbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nz
cy9wc2V1ZG8tZWxlbWVudC1tYXRjaGVzLWZvci1wc2V1ZG8tZWxlbWVudC1ub2RlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUyOGU3ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvcHNldWRvLWVsZW1lbnQtbWF0Y2hlcy1mb3It
cHNldWRvLWVsZW1lbnQtbm9kZS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgp
IHsKKyAgICB2YXIgbm9kZVN0eWxlcyA9IG51bGw7CisKKyAgICBmdW5jdGlvbiB2YWxpZGF0ZVN0
eWxlcygpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworCisgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdCghbm9kZVN0eWxlcy5pbmxpbmVTdHlsZSwgIk5vIElubGluZSBT
dHlsZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFub2RlU3R5bGVzLmF0
dHJpYnV0ZXNTdHlsZSwgIk5vIEF0dHJpYnV0ZSBTdHlsZXMiKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KCFub2RlU3R5bGVzLmluaGVyaXRlZFJ1bGVzLmxlbmd0aCwgIk5vIElu
aGVyaXRlZCBTdHlsZXMiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFPYmpl
Y3Qua2V5cyhub2RlU3R5bGVzLnBzZXVkb0VsZW1lbnRzKS5sZW5ndGgsICJObyBQc2V1ZG8gRWxl
bWVudCBTdHlsZXMiKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQobm9kZVN0
eWxlcy5jb21wdXRlZFN0eWxlLCAiSGFzIENvbXB1dGVkIFN0eWxlcyIpOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUFJPUEVSVFk6ICIgKyBub2RlU3R5bGVzLmNvbXB1dGVkU3R5bGUucHJv
cGVydHlGb3JOYW1lKCJjb250ZW50IikudGV4dCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJQUk9QRVJUWTogIiArIG5vZGVTdHlsZXMuY29tcHV0ZWRTdHlsZS5wcm9wZXJ0eUZvck5hbWUo
ImNvbG9yIikudGV4dCk7CisKKyAgICAgICAgZm9yICh2YXIgcnVsZSBvZiBub2RlU3R5bGVzLm1h
dGNoZWRSdWxlcykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIk1BVENIRUQgUlVM
RToiKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcnVsZS5zZWxlY3RvcnMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgc2VsZWN0b3IgPSBydWxlLnNlbGVjdG9y
c1tpXTsKKyAgICAgICAgICAgICAgICB2YXIgbWF0Y2hlZCA9IHJ1bGUubWF0Y2hlZFNlbGVjdG9y
SW5kaWNlcy5pbmNsdWRlcyhpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
ICBTRUxFQ1RPUjogIiArIHNlbGVjdG9yLnRleHQgKyAobWF0Y2hlZCA/ICIgW21hdGNoZWRdIiA6
ICIiKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOyAgICAgICAgICAgICAgICAKKyAgICB9CisKKyAgICBXZWJJbnNwZWN0
b3IuZG9tVHJlZU1hbmFnZXIucmVxdWVzdERvY3VtZW50KGZ1bmN0aW9uKGRvY3VtZW50Tm9kZSkg
eworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1
bWVudE5vZGUuaWQsICIjeCIsIGZ1bmN0aW9uKGNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAg
IHZhciBkb21Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChjb250
ZW50Tm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUpOwor
ICAgICAgICAgICAgdmFyIGJlZm9yZVBzZXVkb0VsZW1lbnRET01Ob2RlID0gZG9tTm9kZS5iZWZv
cmVQc2V1ZG9FbGVtZW50KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
YmVmb3JlUHNldWRvRWxlbWVudERPTU5vZGUsICJHb3QgOjpiZWZvcmUgcHNldWRvIGVsZW1lbnQg
Zm9yICN4Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVmcmVzaGluZyBzdHls
ZXMgZm9yIDo6YmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICBub2RlU3R5bGVz
ID0gV2ViSW5zcGVjdG9yLmNzc1N0eWxlTWFuYWdlci5zdHlsZXNGb3JOb2RlKGJlZm9yZVBzZXVk
b0VsZW1lbnRET01Ob2RlKTsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5FdmVudC5SZWZyZXNoZWQsIHZhbGlkYXRlU3R5
bGVzKTsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMucmVmcmVzaCgpOworICAgICAgICB9KTsKKyAg
ICB9KTsKKworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
CisgICAgPHA+VGVzdGluZyB0aGF0IHdlIGNhbiBnZXQgY29tcHV0ZWQgYW5kIG1hdGNoZWQgcnVs
ZXMgZm9yIHBzZXVkbyBlbGVtZW50IG5vZGVzLjwvcD4KKworICAgIDxzdHlsZT4KKyAgICBpbnB1
dDpiZWZvcmUsICN4OmJlZm9yZSwgZGl2IHsgY29udGVudDogImJlZm9yZSI7IGNvbG9yOiBibHVl
OyB9CisgICAgPC9zdHlsZT4KKworICAgIDxkaXYgaWQ9IngiPlRFU1QgRUxFTUVOVDogSGFzIEJl
Zm9yZSBQc2V1ZG8gRWxlbWVudDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2MwOGZmZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1l
bnQtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OSBAQAorVGVzdCBmb3IgZHluYW1p
YyBET01Ob2RlIHBzZXVkbyBlbGVtZW50IHN1cHBvcnQsIHBzZXVkbyBlbGVtZW50cyBnZXR0aW5n
IGFkZGVkIGFuZCByZW1vdmVkIGR5bmFtaWNhbGx5LgorCitURVNUIEVMRU1FTlQKKworUEFTUzog
R290IERPTU5vZGUgZm9yICN4CitQQVNTOiBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMK
KworQWRkIDpiZWZvcmUKK0VWRU5UOiBOb2RlSW5zZXJ0ZWQKKworVmVyaWZ5IDpiZWZvcmUgd2Fz
IGFkZGVkCitQQVNTOiAjeCBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5v
ZGUgaGFzIDEgcHNldWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1
ZG8gZWxlbWVudAorUEFTUzogRE9NTm9kZSBkb2VzIG5vdCBoYXZlIGFuIGFmdGVyIHBzZXVkbyBl
bGVtZW50CitQQVNTOiBOZXcgRE9NTm9kZSBpcyB0aGUgYmVmb3JlUHNldWRvRWxlbWVudAorUEFT
UzogTmV3IERPTU5vZGUgaXMgYSBjaGlsZCBvZiAjeAorUEFTUzogTmV3IERPTU5vZGUgaXMgYSBi
ZWZvcmUgcHNldWRvIGVsZW1lbnQKKworUmVtb3ZlIDpiZWZvcmUKK0VWRU5UOiBOb2RlUmVtb3Zl
ZAorCitWZXJpZnkgOmJlZm9yZSB3YXMgcmVtb3ZlZAorUEFTUzogI3ggRE9NTm9kZSBoYXMgbm8g
cHNldWRvIGVsZW1lbnRzCitQQVNTOiBSZW1vdmVkIERPTU5vZGUgd2FzIHRoZSBiZWZvcmUgcHNl
dWRvIGVsZW1lbnQKK1BBU1M6IFJlbW92ZWQgRE9NTm9kZSBoYXMgbm8gcGFyZW50CitQQVNTOiBS
ZW1vdmVkIERPTU5vZGUgd2FzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50CisKK0FkZCA6YWZ0ZXIK
K0VWRU5UOiBOb2RlSW5zZXJ0ZWQKKworVmVyaWZ5IDphZnRlciB3YXMgYWRkZWQKK1BBU1M6ICN4
IERPTU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9NTm9kZSBoYXMgMSBwc2V1ZG8g
ZWxlbWVudHMKK1BBU1M6IERPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9yZSBwc2V1ZG8gZWxl
bWVudAorUEFTUzogRE9NTm9kZSBoYXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BBU1M6IE5l
dyBET01Ob2RlIGlzIHRoZSBhZnRlclBzZXVkb0VsZW1lbnQKK1BBU1M6IE5ldyBET01Ob2RlIGlz
IGEgY2hpbGQgb2YgI3gKK1BBU1M6IE5ldyBET01Ob2RlIGlzIGFuIGFmdGVyIHBzZXVkbyBlbGVt
ZW50CisKK1JlbW92ZSA6YWZ0ZXIKK0VWRU5UOiBOb2RlUmVtb3ZlZAorCitWZXJpZnkgOmFmdGVy
IHdhcyByZW1vdmVkCitQQVNTOiAjeCBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMKK1BB
U1M6IFJlbW92ZWQgRE9NTm9kZSB3YXMgdGhlIGFmdGVyIHBzZXVkbyBlbGVtZW50CitQQVNTOiBS
ZW1vdmVkIERPTU5vZGUgaGFzIG5vIHBhcmVudAorUEFTUzogUmVtb3ZlZCBET01Ob2RlIHdhcyBh
biBhZnRlciBwc2V1ZG8gZWxlbWVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZG9tL3BzZXVkby1lbGVtZW50LWR5bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20vcHNldWRvLWVsZW1lbnQtZHluYW1pYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjdmYzNkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LWR5bmFtaWMuaHRtbApAQCAtMCwwICsxLDE1NiBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsK
KworICAgIHZhciB0ZXN0RE9NTm9kZSA9IG51bGw7CisgICAgdmFyIGluc2VydGVkT3JSZW1vdmVk
RE9NTm9kZSA9IG51bGw7CisgICAgdmFyIHByZXZpb3VzSW5zZXJ0ZWRET01Ob2RlID0gbnVsbDsK
KworICAgIHZhciBzdGVwcyA9IFsKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZTogIkFkZCA6
YmVmb3JlIiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3gnKS5jbGFzc0xpc3QuYWRkKCdiJykiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgbmFtZTogIlZlcmlmeSA6YmVmb3JlIHdhcyBhZGRlZCIsCisg
ICAgICAgICAgICBhY3Rpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdCh0ZXN0RE9NTm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAiI3ggRE9N
Tm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KHRlc3RET01Ob2RlLnBzZXVkb0VsZW1lbnRzKCkuc2l6ZSA9PT0gMSwgIkRP
TU5vZGUgaGFzIDEgcHNldWRvIGVsZW1lbnRzIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KHRlc3RET01Ob2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSwgIkRPTU5v
ZGUgaGFzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KCF0ZXN0RE9NTm9kZS5hZnRlclBzZXVkb0VsZW1lbnQoKSwgIkRP
TU5vZGUgZG9lcyBub3QgaGF2ZSBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudCIpOworCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9k
ZSA9PT0gdGVzdERPTU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpLCAiTmV3IERPTU5vZGUgaXMg
dGhlIGJlZm9yZVBzZXVkb0VsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBhcmVudE5vZGUgPT09IHRlc3RE
T01Ob2RlLCAiTmV3IERPTU5vZGUgaXMgYSBjaGlsZCBvZiAjeCIpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucHNldWRv
VHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5CZWZvcmUs
ICJOZXcgRE9NTm9kZSBpcyBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCIpOworCisgICAgICAgICAg
ICAgICAgcHJldmlvdXNJbnNlcnRlZERPTU5vZGUgPSBpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGU7
CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICBuYW1lOiAiUmVtb3ZlIDpiZWZvcmUiLAorICAgICAgICAgICAg
YWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgneCcpLmNsYXNzTGlzdC5yZW1vdmUo
J2InKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICBuYW1lOiAiVmVyaWZ5IDpiZWZvcmUgd2FzIHJlbW92ZWQiLAorICAgICAgICAgICAgYWN0aW9u
OiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
IXRlc3RET01Ob2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICIjeCBET01Ob2RlIGhhcyBubyBwc2V1
ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0ZXN0
RE9NTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUgPT09IDApOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KCF0ZXN0RE9NTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCkpOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCF0ZXN0RE9NTm9kZS5hZnRlclBz
ZXVkb0VsZW1lbnQoKSk7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlID09PSBwcmV2aW91c0luc2VydGVkRE9NTm9kZSwg
IlJlbW92ZWQgRE9NTm9kZSB3YXMgdGhlIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChpbnNlcnRlZE9yUmVtb3ZlZERPTU5v
ZGUucGFyZW50Tm9kZSA9PT0gbnVsbCwgIlJlbW92ZWQgRE9NTm9kZSBoYXMgbm8gcGFyZW50Iik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGluc2VydGVkT3JSZW1v
dmVkRE9NTm9kZS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3BlY3Rvci5ET01Ob2RlLlBzZXVkb0Vs
ZW1lbnRUeXBlLkJlZm9yZSwgIlJlbW92ZWQgRE9NTm9kZSB3YXMgYSBiZWZvcmUgcHNldWRvIGVs
ZW1lbnQiKTsKKworICAgICAgICAgICAgICAgIHByZXZpb3VzSW5zZXJ0ZWRET01Ob2RlID0gbnVs
bDsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJBZGQgOmFmdGVyIiwKKyAgICAgICAgICAgIGFj
dGlvbjogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0
ZUluUGFnZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3gnKS5jbGFzc0xpc3QuYWRkKCdhJyki
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbmFt
ZTogIlZlcmlmeSA6YWZ0ZXIgd2FzIGFkZGVkIiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHRlc3RET01O
b2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICIjeCBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMi
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQodGVzdERPTU5vZGUu
cHNldWRvRWxlbWVudHMoKS5zaXplID09PSAxLCAiRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVu
dHMiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIXRlc3RET01O
b2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSwgIkRPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9y
ZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdCh0ZXN0RE9NTm9kZS5hZnRlclBzZXVkb0VsZW1lbnQoKSwgIkRPTU5vZGUgaGFzIGFuIGFm
dGVyIHBzZXVkbyBlbGVtZW50Iik7CisKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlID09PSB0ZXN0RE9NTm9kZS5hZnRlclBz
ZXVkb0VsZW1lbnQoKSwgIk5ldyBET01Ob2RlIGlzIHRoZSBhZnRlclBzZXVkb0VsZW1lbnQiKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92
ZWRET01Ob2RlLnBhcmVudE5vZGUgPT09IHRlc3RET01Ob2RlLCAiTmV3IERPTU5vZGUgaXMgYSBj
aGlsZCBvZiAjeCIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChp
bnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9N
Tm9kZS5Qc2V1ZG9FbGVtZW50VHlwZS5BZnRlciwgIk5ldyBET01Ob2RlIGlzIGFuIGFmdGVyIHBz
ZXVkbyBlbGVtZW50Iik7CisKKyAgICAgICAgICAgICAgICBwcmV2aW91c0luc2VydGVkRE9NTm9k
ZSA9IGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG5hbWU6ICJS
ZW1vdmUgOmFmdGVyIiwKKyAgICAgICAgICAgIGFjdGlvbjogZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZSgiZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3gnKS5jbGFzc0xpc3QucmVtb3ZlKCdhJykiKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbmFtZTogIlZlcmlmeSA6YWZ0ZXIgd2FzIHJl
bW92ZWQiLAorICAgICAgICAgICAgYWN0aW9uOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIXRlc3RET01Ob2RlLmhhc1BzZXVkb0VsZW1lbnRz
KCksICIjeCBET01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0ZXN0RE9NTm9kZS5wc2V1ZG9FbGVtZW50cygpLnNpemUg
PT09IDApOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCF0ZXN0RE9NTm9k
ZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCkpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KCF0ZXN0RE9NTm9kZS5hZnRlclBzZXVkb0VsZW1lbnQoKSk7CisKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlID09
PSBwcmV2aW91c0luc2VydGVkRE9NTm9kZSwgIlJlbW92ZWQgRE9NTm9kZSB3YXMgdGhlIGFmdGVy
IHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KGluc2VydGVkT3JSZW1vdmVkRE9NTm9kZS5wYXJlbnROb2RlID09PSBudWxsLCAiUmVtb3Zl
ZCBET01Ob2RlIGhhcyBubyBwYXJlbnQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQoaW5zZXJ0ZWRPclJlbW92ZWRET01Ob2RlLnBzZXVkb1R5cGUoKSA9PT0gV2Vi
SW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQWZ0ZXIsICJSZW1vdmVkIERPTU5v
ZGUgd2FzIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50Iik7CisKKyAgICAgICAgICAgICAgICBwcmV2
aW91c0luc2VydGVkRE9NTm9kZSA9IG51bGw7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAg
ICAgICAgICAgfQorICAgICAgICB9LAorICAgIF07CisKKyAgICBmdW5jdGlvbiBuZXh0KCkKKyAg
ICB7CisgICAgICAgIHZhciBzdGVwID0gc3RlcHMuc2hpZnQoKTsKKyAgICAgICAgaWYgKHN0ZXAp
IHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKHN0ZXAubmFtZSk7CisgICAgICAgICAgICBzdGVwLmFjdGlvbigpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7CisgICAgfQorCisgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnJlcXVl
c3REb2N1bWVudChmdW5jdGlvbihkb2N1bWVudE5vZGUpIHsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LmRvbVRyZWVNYW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI3giLCBmdW5j
dGlvbihub2RlSWQpIHsKKyAgICAgICAgICAgIHRlc3RET01Ob2RlID0gV2ViSW5zcGVjdG9yLmRv
bVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHRlc3RET01O
b2RlLCAiR290IERPTU5vZGUgZm9yICN4Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydCghdGVzdERPTU5vZGUucHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdCghdGVzdERPTU5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIkRPTU5vZGUg
aGFzIG5vIHBzZXVkbyBlbGVtZW50cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQodGVzdERPTU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAwKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KCF0ZXN0RE9NTm9kZS5iZWZvcmVQc2V1ZG9FbGVtZW50KCkp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIXRlc3RET01Ob2RlLmFmdGVyUHNl
dWRvRWxlbWVudCgpKTsKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIuRXZlbnQuTm9kZUluc2VydGVkLCBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICAvLyBUZXN0IGxvZ2dpbmcgd2lsbCBhZGQgbm9kZXMgdG8gdGhlIHRlc3Qg
cGFnZS4gSWdub3JlIGFueSBlbGVtZW50cyBhZGRlZCB0aGF0IGFyZSBub3QgY2hpbGRyZW4gb2Yg
b3VyIHRlc3Qgbm9kZS4KKyAgICAgICAgaWYgKGV2ZW50LmRhdGEucGFyZW50ICE9PSB0ZXN0RE9N
Tm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RVZFTlQ6IE5vZGVJbnNlcnRlZCIpOworICAgICAgICBpbnNlcnRlZE9yUmVtb3ZlZERPTU5vZGUg
PSBldmVudC5kYXRhLm5vZGU7CisgICAgICAgIG5leHQoKTsKKyAgICB9KTsKKworICAgIFdlYklu
c3BlY3Rvci5kb21UcmVlTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01U
cmVlTWFuYWdlci5FdmVudC5Ob2RlUmVtb3ZlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIkVWRU5UOiBOb2RlUmVtb3ZlZCIpOworICAgICAgICBpbnNlcnRl
ZE9yUmVtb3ZlZERPTU5vZGUgPSBldmVudC5kYXRhLm5vZGU7CisgICAgICAgIG5leHQoKTsKKyAg
ICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
ICAgIDxwPlRlc3QgZm9yIGR5bmFtaWMgRE9NTm9kZSBwc2V1ZG8gZWxlbWVudCBzdXBwb3J0LCBw
c2V1ZG8gZWxlbWVudHMgZ2V0dGluZyBhZGRlZCBhbmQgcmVtb3ZlZCBkeW5hbWljYWxseS48L3A+
CisKKyAgICA8c3R5bGU+CisgICAgLmI6YmVmb3JlIHsgY29udGVudDogImJlZm9yZSI7IH0KKyAg
ICAuYTphZnRlciB7IGNvbnRlbnQ6ICJhZnRlciI7IH0KKyAgICA8L3N0eWxlPgorCisgICAgPGRp
diBpZD0ieCI+VEVTVCBFTEVNRU5UPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0YXRpYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50LXN0YXRpYy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhlY2Y2ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcHNldWRvLWVsZW1l
bnQtc3RhdGljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitUZXN0IGZvciBiYXNpYyBE
T01Ob2RlIHBzZXVkbyBlbGVtZW50IHN1cHBvcnQuCisKK1RFU1QgRUxFTUVOVDogTm8gUHNldWRv
IEVsZW1lbnRzCitURVNUIEVMRU1FTlQ6IEhhcyBCZWZvcmUgUHNldWRvIEVsZW1lbnQKK1RFU1Qg
RUxFTUVOVDogSGFzIEFmdGVyIFBzZXVkbyBFbGVtZW50CitURVNUIEVMRU1FTlQ6IEhhcyBCZWZv
cmUgYW5kIEFmdGVyIFBzZXVkbyBFbGVtZW50cworCitQQVNTOiBHb3QgRE9NTm9kZSBmb3IgI25v
bmUKK1BBU1M6IERPTU5vZGUgaGFzIG5vIHBzZXVkbyBlbGVtZW50cworCitQQVNTOiBHb3QgRE9N
Tm9kZSBmb3IgI2IKK1BBU1M6IERPTU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50cworUEFTUzogRE9N
Tm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUgaGFzIGEgYmVmb3JlIHBz
ZXVkbyBlbGVtZW50CitQQVNTOiBET01Ob2RlIGRvZXMgbm90IGhhdmUgYW4gYWZ0ZXIgcHNldWRv
IGVsZW1lbnQKK1BBU1M6IERPTU5vZGUgZm9yIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCBoYXMgdGhl
IHJpZ2h0IHR5cGUKKworUEFTUzogR290IERPTU5vZGUgZm9yICNhCitQQVNTOiBET01Ob2RlIGhh
cyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5vZGUgaGFzIDEgcHNldWRvIGVsZW1lbnRzCitQ
QVNTOiBET01Ob2RlIGRvZXMgbm90IGhhdmUgYSBiZWZvcmUgcHNldWRvIGVsZW1lbnQKK1BBU1M6
IERPTU5vZGUgaGFzIGFuIGFmdGVyIHBzZXVkbyBlbGVtZW50CitQQVNTOiBET01Ob2RlIGZvciBh
ZnRlciBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUKKworUEFTUzogR290IERPTU5v
ZGUgZm9yICN4CitQQVNTOiBET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMKK1BBU1M6IERPTU5v
ZGUgaGFzIDIgcHNldWRvIGVsZW1lbnRzCitQQVNTOiBET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1
ZG8gZWxlbWVudAorUEFTUzogRE9NTm9kZSBoYXMgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQKK1BB
U1M6IERPTU5vZGUgZm9yIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJpZ2h0IHR5cGUK
K1BBU1M6IERPTU5vZGUgZm9yIGFmdGVyIHBzZXVkbyBlbGVtZW50IGhhcyB0aGUgcmlnaHQgdHlw
ZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3BzZXVkby1lbGVtZW50
LXN0YXRpYy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1z
dGF0aWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDI4MzU5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVu
dC1zdGF0aWMuaHRtbApAQCAtMCwwICsxLDczIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIFdlYkluc3BlY3Rvci5kb21UcmVl
TWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoZnVuY3Rpb24oZG9jdW1lbnROb2RlKSB7CisgICAgICAg
IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5p
ZCwgIiNub25lIiwgZnVuY3Rpb24obm9kZUlkKSB7CisgICAgICAgICAgICB2YXIgZG9tTm9kZSA9
IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5vZGUgZm9yICNub25lIik7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydCghZG9tTm9kZS5wc2V1ZG9UeXBlKCkpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFkb21Ob2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICJE
T01Ob2RlIGhhcyBubyBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGRvbU5vZGUucHNldWRvRWxlbWVudHMoKS5zaXplID09PSAwKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFkb21Ob2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKSk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZG9tTm9kZS5hZnRlclBzZXVkb0Vs
ZW1lbnQoKSk7CisgICAgICAgIH0pOworCisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFu
YWdlci5xdWVyeVNlbGVjdG9yKGRvY3VtZW50Tm9kZS5pZCwgIiNiIiwgZnVuY3Rpb24obm9kZUlk
KSB7CisgICAgICAgICAgICB2YXIgZG9tTm9kZSA9IFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdl
ci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLCAiR290IERPTU5v
ZGUgZm9yICNiIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZG9tTm9kZS5w
c2V1ZG9UeXBlKCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5v
ZGUuaGFzUHNldWRvRWxlbWVudHMoKSwgIkRPTU5vZGUgaGFzIHBzZXVkbyBlbGVtZW50cyIpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUucHNldWRvRWxlbWVu
dHMoKS5zaXplID09PSAxLCAiRE9NTm9kZSBoYXMgMSBwc2V1ZG8gZWxlbWVudHMiKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLmJlZm9yZVBzZXVkb0VsZW1l
bnQoKSwgIkRPTU5vZGUgaGFzIGEgYmVmb3JlIHBzZXVkbyBlbGVtZW50Iik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoIWRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCks
ICJET01Ob2RlIGRvZXMgbm90IGhhdmUgYW4gYWZ0ZXIgcHNldWRvIGVsZW1lbnQiKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLmJlZm9yZVBzZXVkb0VsZW1l
bnQoKS5wc2V1ZG9UeXBlKCkgPT09IFdlYkluc3BlY3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRU
eXBlLkJlZm9yZSwgIkRPTU5vZGUgZm9yIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCBoYXMgdGhlIHJp
Z2h0IHR5cGUiKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVN
YW5hZ2VyLnF1ZXJ5U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiI2EiLCBmdW5jdGlvbihub2Rl
SWQpIHsKKyAgICAgICAgICAgIHZhciBkb21Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5h
Z2VyLm5vZGVGb3JJZChub2RlSWQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUsICJHb3QgRE9N
Tm9kZSBmb3IgI2EiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFkb21Ob2Rl
LnBzZXVkb1R5cGUoKSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9t
Tm9kZS5oYXNQc2V1ZG9FbGVtZW50cygpLCAiRE9NTm9kZSBoYXMgcHNldWRvIGVsZW1lbnRzIik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5wc2V1ZG9FbGVt
ZW50cygpLnNpemUgPT09IDEsICJET01Ob2RlIGhhcyAxIHBzZXVkbyBlbGVtZW50cyIpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KCFkb21Ob2RlLmJlZm9yZVBzZXVkb0Vs
ZW1lbnQoKSwgIkRPTU5vZGUgZG9lcyBub3QgaGF2ZSBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYWZ0ZXJQc2V1
ZG9FbGVtZW50KCksICJET01Ob2RlIGhhcyBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudCIpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVt
ZW50KCkucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50
VHlwZS5BZnRlciwgIkRPTU5vZGUgZm9yIGFmdGVyIHBzZXVkbyBlbGVtZW50IGhhcyB0aGUgcmln
aHQgdHlwZSIpOworICAgICAgICB9KTsKKworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1h
bmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIjeCIsIGZ1bmN0aW9uKG5vZGVJ
ZCkgeworICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFn
ZXIubm9kZUZvcklkKG5vZGVJZCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZSwgIkdvdCBET01O
b2RlIGZvciAjeCIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWRvbU5vZGUu
cHNldWRvVHlwZSgpKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21O
b2RlLmhhc1BzZXVkb0VsZW1lbnRzKCksICJET01Ob2RlIGhhcyBwc2V1ZG8gZWxlbWVudHMiKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChkb21Ob2RlLnBzZXVkb0VsZW1l
bnRzKCkuc2l6ZSA9PT0gMiwgIkRPTU5vZGUgaGFzIDIgcHNldWRvIGVsZW1lbnRzIik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoZG9tTm9kZS5iZWZvcmVQc2V1ZG9FbGVt
ZW50KCksICJET01Ob2RlIGhhcyBhIGJlZm9yZSBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYWZ0ZXJQc2V1ZG9FbGVtZW50KCks
ICJET01Ob2RlIGhhcyBhbiBhZnRlciBwc2V1ZG8gZWxlbWVudCIpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYmVmb3JlUHNldWRvRWxlbWVudCgpLnBzZXVk
b1R5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNldWRvRWxlbWVudFR5cGUuQmVmb3Jl
LCAiRE9NTm9kZSBmb3IgYmVmb3JlIHBzZXVkbyBlbGVtZW50IGhhcyB0aGUgcmlnaHQgdHlwZSIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KGRvbU5vZGUuYWZ0ZXJQc2V1
ZG9FbGVtZW50KCkucHNldWRvVHlwZSgpID09PSBXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9F
bGVtZW50VHlwZS5BZnRlciwgIkRPTU5vZGUgZm9yIGFmdGVyIHBzZXVkbyBlbGVtZW50IGhhcyB0
aGUgcmlnaHQgdHlwZSIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0IGZvciBiYXNpYyBET01Ob2RlIHBzZXVkbyBl
bGVtZW50IHN1cHBvcnQuPC9wPgorCisgICAgPHN0eWxlPgorICAgICN4OmJlZm9yZSwgI2I6YmVm
b3JlIHsgY29udGVudDogImJlZm9yZSI7IH0KKyAgICAjeDphZnRlciwgI2E6YWZ0ZXIgeyBjb250
ZW50OiAiYWZ0ZXIiOyB9CisgICAgPC9zdHlsZT4KKworICAgIDxkaXYgaWQ9Im5vbmUiPlRFU1Qg
RUxFTUVOVDogTm8gUHNldWRvIEVsZW1lbnRzPC9kaXY+CisgICAgPGRpdiBpZD0iYiI+VEVTVCBF
TEVNRU5UOiBIYXMgQmVmb3JlIFBzZXVkbyBFbGVtZW50PC9kaXY+CisgICAgPGRpdiBpZD0iYSI+
VEVTVCBFTEVNRU5UOiBIYXMgQWZ0ZXIgUHNldWRvIEVsZW1lbnQ8L2Rpdj4KKyAgICA8ZGl2IGlk
PSJ4Ij5URVNUIEVMRU1FTlQ6IEhhcyBCZWZvcmUgYW5kIEFmdGVyIFBzZXVkbyBFbGVtZW50czwv
ZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBlNWIw
NzU3Li4xMmM2ZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxNS0wNy0yNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFNob3cgUHNldWRvIEVsZW1lbnRzIGluIERPTSBUcmVlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2MTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvdG9jb2wvRE9NLmpzb246CisgICAgICAgIEFkZCBuZXcgcHJvcGVydGllcyB0byBET01Ob2Rl
IGlmIGl0IGlzIGEgcHNldWRvIGVsZW1lbnQgb3IgaWYgaXQgaGFzCisgICAgICAgIHBzZXVkbyBl
bGVtZW50IGNoaWxkcmVuLiBBZGQgbmV3IGV2ZW50cyBmb3IgaWYgYSBwc2V1ZG8gZWxlbWVudCBp
cworICAgICAgICBhZGRlZCBvciByZW1vdmVkIGR5bmFtaWNhbGx5IHRvIGFuIGV4aXN0aW5nIERP
TU5vZGUuCisKIDIwMTUtMDctMjYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CiAKICAgICAgICAgUmVuYW1lIFByb3BlcnR5TmFtZU1vZGU6OkJvdGggdG8gUHJvcGVydHlO
YW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL0RPTS5qc29uCmluZGV4IDVlMjhkZGEuLmIzMmI0ZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRE9NLmpzb24K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9ET00uanNvbgpA
QCAtMTQsNiArMTQsMTIgQEAKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgRE9N
IG5vZGUgaWRlbnRpZmllciB1c2VkIHRvIHJlZmVyZW5jZSBhIG5vZGUgdGhhdCBtYXkgbm90IGhh
dmUgYmVlbiBwdXNoZWQgdG8gdGhlIGZyb250LWVuZC4iCiAgICAgICAgIH0sCiAgICAgICAgIHsK
KyAgICAgICAgICAgICJpZCI6ICJQc2V1ZG9UeXBlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0
cmluZyIsCisgICAgICAgICAgICAiZW51bSI6IFsiYmVmb3JlIiwgImFmdGVyIl0sCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiUHNldWRvIGVsZW1lbnQgdHlwZS4iCisgICAgICAgIH0sCisg
ICAgICAgIHsKICAgICAgICAgICAgICJpZCI6ICJMaXZlUmVnaW9uUmVsZXZhbnQiLAogICAgICAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAgICJlbnVtIjogWyJhZGRpdGlvbnMi
LCAicmVtb3ZhbHMiLCAidGV4dCJdLApAQCAtMzksMTAgKzQ1LDEyIEBACiAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ4bWxWZXJzaW9uIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIjxjb2RlPkRvY3VtZW50PC9jb2RlPidzIFhNTCB2ZXJzaW9u
IGluIGNhc2Ugb2YgWE1MIGRvY3VtZW50cy4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIjxjb2RlPkF0dHI8L2NvZGU+J3MgbmFtZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ2YWx1ZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICI8Y29kZT5BdHRyPC9jb2RlPidzIHZhbHVlLiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInBzZXVkb1R5cGUiLCAiJHJlZiI6ICJQc2V1ZG9UeXBlIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlBzZXVkbyBlbGVtZW50IHR5cGUgZm9yIHRoaXMgbm9kZS4i
IH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29y
ay5GcmFtZUlkIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkZyYW1lIElEIGZv
ciBmcmFtZSBvd25lciBlbGVtZW50cy4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJj
b250ZW50RG9jdW1lbnQiLCAiJHJlZiI6ICJOb2RlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIkNvbnRlbnQgZG9jdW1lbnQgZm9yIGZyYW1lIG93bmVyIGVsZW1lbnRzLiIgfSwK
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNoYWRvd1Jvb3RzIiwgInR5cGUiOiAiYXJyYXki
LCAib3B0aW9uYWwiOiB0cnVlLCAiaXRlbXMiOiB7ICIkcmVmIjogIk5vZGUiIH0sICJkZXNjcmlw
dGlvbiI6ICJTaGFkb3cgcm9vdCBsaXN0IGZvciBnaXZlbiBlbGVtZW50IGhvc3QuIiB9LAogICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAidGVtcGxhdGVDb250ZW50IiwgIiRyZWYiOiAiTm9kZSIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb250ZW50IGRvY3VtZW50IGZyYWdt
ZW50IGZvciB0ZW1wbGF0ZSBlbGVtZW50cyIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InBzZXVkb0VsZW1lbnRzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIk5v
ZGUiIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJQc2V1ZG8gZWxlbWVudHMg
YXNzb2NpYXRlZCB3aXRoIHRoaXMgbm9kZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJyb2xlIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIkNvbXB1dGVkIHZhbHVlIGZvciBmaXJzdCByZWNvZ25pemVkIHJvbGUgdG9rZW4sIGRlZmF1
bHQgcm9sZSBwZXIgZWxlbWVudCwgb3Igb3ZlcnJpZGRlbiByb2xlLiIgfQogICAgICAgICAgICAg
XSwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJET00gaW50ZXJhY3Rpb24gaXMgaW1wbGVt
ZW50ZWQgaW4gdGVybXMgb2YgbWlycm9yIG9iamVjdHMgdGhhdCByZXByZXNlbnQgdGhlIGFjdHVh
bCBET00gbm9kZXMuIERPTU5vZGUgaXMgYSBiYXNlIG5vZGUgbWlycm9yIHR5cGUuIgpAQCAtNTI2
LDYgKzUzNCwyMiBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicm9vdElkIiwgIiRyZWYi
OiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlNoYWRvdyByb290IGlkLiIgfQogICAgICAgICAg
ICAgXSwKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDYWxsZWQgd2hlbiBzaGFkb3cgcm9v
dCBpcyBwb3BwZWQgZnJvbSB0aGUgZWxlbWVudC4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInBzZXVkb0VsZW1lbnRBZGRlZCIsCisgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhcmVudElkIiwgIiRyZWYi
OiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlBzZXVkbyBlbGVtZW50J3MgcGFyZW50IGVsZW1l
bnQgaWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHNldWRvRWxlbWVudCIsICIk
cmVmIjogIk5vZGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGFkZGVkIHBzZXVkbyBlbGVtZW50LiIg
fQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDYWxsZWQgd2hl
biBhIHBzZXVkbyBlbGVtZW50IGlzIGFkZGVkIHRvIGFuIGVsZW1lbnQuIgorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJwc2V1ZG9FbGVtZW50UmVtb3ZlZCIsCisg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBh
cmVudElkIiwgIiRyZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlBzZXVkbyBlbGVtZW50
J3MgcGFyZW50IGVsZW1lbnQgaWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHNl
dWRvRWxlbWVudElkIiwgIiRyZWYiOiAiTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSByZW1v
dmVkIHBzZXVkbyBlbGVtZW50IGlkLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJDYWxsZWQgd2hlbiBhIHBzZXVkbyBlbGVtZW50IGlzIHJlbW92ZWQgZnJv
bSBhbiBlbGVtZW50LiIKICAgICAgICAgfQogICAgIF0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZWRiMzE1
Li43NmQ5ZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMTUtMDctMjQgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTaG93IFBzZXVkbyBFbGVtZW50cyBpbiBET00gVHJlZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgIFRlc3RzOiBpbnNwZWN0b3IvY3NzL3BzZXVkby1l
bGVtZW50LW1hdGNoZXMtZm9yLXBzZXVkby1lbGVtZW50LW5vZGUuaHRtbAorICAgICAgICAgICAg
ICAgaW5zcGVjdG9yL2RvbS9wc2V1ZG8tZWxlbWVudC1keW5hbWljLmh0bWwKKyAgICAgICAgICAg
ICAgIGluc3BlY3Rvci9kb20vcHNldWRvLWVsZW1lbnQtc3RhdGljLmh0bWwKKworICAgICAgICBN
dWNoIG9mIHRoaXMgcGF0Y2ggd2FzIG1vZGVsbGVkIGFmdGVyIHRoZSBCbGluayBpbXBsZW1lbnRh
dGlvbiBvZgorICAgICAgICBwc2V1ZG8gZWxlbWVudCBpbnNwZWN0aW9uLgorCisgICAgICAgICog
ZG9tL1BzZXVkb0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vUHNldWRvRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQc2V1ZG9FbGVtZW50Ojp+UHNldWRvRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpQc2V1ZG9FbGVtZW50OjpjbGVhckhvc3RFbGVtZW50KToKKyAgICAgICAgU2lu
Y2UgSW5zcGVjdG9yRE9NQWdlbnQgbWF5IGhvbGQgYSByZWZlcmVuY2UgdG8gdGhpcyBQc2V1ZG9F
bGVtZW50IHdlCisgICAgICAgIGNhbid0IHJlcG9ydCBpdCBhcyBkZXN0cm95ZWQgaW4gdGhlIGRl
c3RydWN0b3IsIGFzIHRoYXQgd291bGRuJ3QgYmUKKyAgICAgICAgcmVhY2hlZCBpZiB0aGUgaW5z
cGVjdG9yIGhvbGRzIGEgcmVmZXJlbmNlLiBNb3ZlIHRoaXMgdG8gd2hlbiB0aGUKKyAgICAgICAg
cHN1ZWRvIGVsZW1lbnQgaXMgZGlzY29ubmVjdGVkLCB3aGljaCBpcyBpbW1lZGlhdGVseSBiZWZv
cmUgZGVzdHJ1Y3Rpb24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKToKKyAg
ICAgICAgV2hlbiBjb21wdXRpbmcgc3R5bGVzIGZvciBhIHBzZXVkbyBlbGVtZW50LCBjb21wdXRl
IHN0eWxlcyBmcm9tIHRoZQorICAgICAgICBob3N0IGVsZW1lbnQgZm9yIGp1c3QgdGhlIHBzZXVk
byBlbGVtZW50J3MgcHNldWRvIHR5cGUuIExpa2V3aXNlCisgICAgICAgIG9ubHkgaW5jbHVkZSBt
YXRjaGVkIHJlc3VsdHMsIG5vdCBpbmhlcml0ZWQgb3Igb3RoZXJzLgorCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdCk6Cisg
ICAgICAgIEFkZCB0aGUgcHNldWRvIHR5cGUgdG8gdGhlIGNoZWNrZXIgY29udGV4dCB0byB0cnkg
YW5kIGRldGVjdCBleGFjdGx5CisgICAgICAgIHdoaWNoIHNlbGVjdG9yIGluIGEgbGlzdCBvZiBz
ZWxlY3RvcnMgbWF0Y2hlZCB0aGUgcHNldWRvIGVsZW1lbnQuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnVuYmluZCk6
CisgICAgICAgIFdoZW4gdW5iaW5kaW5nIGFuIGVsZW1lbnQsIGFsc28gdW5iaW5kIGFueSBwc2V1
ZG8gZWxlbWVudCBjaGlsZHJlbgorICAgICAgICBpdCBtYXkgaGF2ZSBoYWQgYW5kIGJvdW5kLgor
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWRpdGFibGVOb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojphc3NlcnRFZGl0YWJsZUVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlbW92ZU5vZGUp
OgorICAgICAgICBJbXByb3ZlIGdyYW1tYXIgaW4gZXJyb3IgbWVzc2FnZS4gRG9uJ3QgYWxsb3cg
ZWRpdGluZyBwc2V1ZG8gZWxlbWVudHMuCisKKyAgICAgICAgKFdlYkNvcmU6OnBzZXVkb0VsZW1l
bnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVj
dEZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkQXJy
YXlGb3JQc2V1ZG9FbGVtZW50cyk6CisgICAgICAgIElmIGEgbm9kZSBpcyBhIHBzZXVkbyBlbGVt
ZW50IGluY2x1ZGUgaXRzIHBzZXVkb1R5cGUuCisgICAgICAgIElmIGEgbm9kZSBoYXMgcHNldWRv
IGVsZW1lbnQgY2hpbGRyZW4gaW5jbHVkZSB0aGVtLgorCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01BZ2VudDo6cHNldWRvRWxlbWVudENyZWF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQpOgorICAgICAgICBXaGVu
IHBzZXVkbyBlbGVtZW50cyBhcmUgZHluYW1pY2FsbHkgY3JlYXRlZCBvciBkZXN0cm95ZWQKKyAg
ICAgICAgcHVzaCBwc2V1ZG8gZWxlbWVudCBub2RlcyB0byB0aGUgZnJvbnRlbmQgaWYgbmVlZGVk
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnRD
cmVhdGVkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnBzZXVkb0VsZW1lbnREZXN0cm95ZWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnBzZXVkb0VsZW1lbnRDcmVhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxheWVyVHJlZURpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnJlbmRlckxheWVyRGVz
dHJveWVkKToKKyAgICAgICAgUGx1bWJpbmcgZm9yIHBzZXVkbyBlbGVtZW50IGNyZWF0ZWQvZGVz
dHJveWVkIGV2ZW50cy4KKworICAgICAgICAqIHN0eWxlL1N0eWxlUmVzb2x2ZVRyZWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OmF0dGFjaEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50
SWZOZWVkZWQpOgorICAgICAgICBUaGlzIGlzIHRoZSBvbmx5IHBsYWNlIGEgcHNldWRvIGVsZW1l
bnQgaXMgY3JlYXRlZCwgaW5mb3JtIHRoZSBpbnNwZWN0b3IuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE9iamVjdEZv
ckVsZW1lbnREYXRhKToKKyAgICAgICAgVXBkYXRlIHRoZSBlbGVtZW50IGRhdGEgZm9yIHRoZSBu
b2RlIGhpZ2hsaWdodCBsYWJlbCB0byBpbmNsdWRlIHRoZQorICAgICAgICBob3N0IGVsZW1lbnQn
cyBzZWxlY3RvciBhbmQgdGhlIHBzZXVkbyBlbGVtZW50IHNlbGVjdG9yLgorCiAyMDE1LTA3LTI3
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0
aGUgYnVpbGQgYWZ0ZXIgcjE4NzM4MwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Bz
ZXVkb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCmlu
ZGV4IDkzMmI3MWIuLmZlMTFmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1
ZG9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAK
QEAgLTY3LDcgKzY3LDEzIEBAIFBzZXVkb0VsZW1lbnQ6OlBzZXVkb0VsZW1lbnQoRWxlbWVudCYg
aG9zdCwgUHNldWRvSWQgcHNldWRvSWQpCiBQc2V1ZG9FbGVtZW50Ojp+UHNldWRvRWxlbWVudCgp
CiB7CiAgICAgQVNTRVJUKCFtX2hvc3RFbGVtZW50KTsKK30KKwordm9pZCBQc2V1ZG9FbGVtZW50
OjpjbGVhckhvc3RFbGVtZW50KCkKK3sKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBz
ZXVkb0VsZW1lbnREZXN0cm95ZWQoZG9jdW1lbnQoKS5wYWdlKCksICp0aGlzKTsKKworICAgIG1f
aG9zdEVsZW1lbnQgPSBudWxscHRyOwogfQogCiBSZWZQdHI8UmVuZGVyU3R5bGU+IFBzZXVkb0Vs
ZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoUmVuZGVyU3R5bGUmIHBhcmVudFN0eWxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmgKaW5kZXggOWNlMmJhYy4uNTgxZTEyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUHNldWRvRWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5Qc2V1ZG9FbGVtZW50KCk7CiAKICAgICBFbGVtZW50KiBob3N0RWxlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1faG9zdEVsZW1lbnQ7IH0KLSAgICB2b2lkIGNsZWFySG9zdEVsZW1lbnQo
KSB7IG1faG9zdEVsZW1lbnQgPSBudWxscHRyOyB9CisgICAgdm9pZCBjbGVhckhvc3RFbGVtZW50
KCk7CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxSZW5kZXJTdHlsZT4gY3VzdG9tU3R5bGVGb3JSZW5k
ZXJlcihSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IGRkYTliODguLjM0NWFlN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNDUs
NiArNDUsNyBAQAogI2luY2x1ZGUgIk5hbWVkRmxvd0NvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJO
b2RlLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQc2V1ZG9FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaCIKICNpbmNsdWRlICJTVkdTdHls
ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKQEAgLTUxMCw0OSArNTEx
LDYwIEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1hdGNoZWRTdHlsZXNGb3JOb2RlKEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAg
ICByZXR1cm47CiAKKyAgICBFbGVtZW50KiBvcmlnaW5hbEVsZW1lbnQgPSBlbGVtZW50OworICAg
IFBzZXVkb0lkIGVsZW1lbnRQc2V1ZG9JZCA9IGVsZW1lbnQtPnBzZXVkb0lkKCk7CisgICAgaWYg
KGVsZW1lbnRQc2V1ZG9JZCkgeworICAgICAgICBlbGVtZW50ID0gZG93bmNhc3Q8UHNldWRvRWxl
bWVudD4oKmVsZW1lbnQpLmhvc3RFbGVtZW50KCk7CisgICAgICAgIGlmICghZWxlbWVudCkgewor
ICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIlBzZXVkbyBlbGVtZW50IGhh
cyBubyBwYXJlbnQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwog
ICAgIC8vIE1hdGNoZWQgcnVsZXMuCiAgICAgU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNvbHZlciA9
IGVsZW1lbnQtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpOwotICAgIGF1dG8gbWF0
Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5zdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBT
dHlsZVJlc29sdmVyOjpBbGxDU1NSdWxlcyk7Ci0gICAgbWF0Y2hlZENTU1J1bGVzID0gYnVpbGRB
cnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVzb2x2ZXIsIGVsZW1l
bnQpOworICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5wc2V1ZG9TdHlsZVJ1
bGVzRm9yRWxlbWVudChlbGVtZW50LCBlbGVtZW50UHNldWRvSWQsIFN0eWxlUmVzb2x2ZXI6OkFs
bENTU1J1bGVzKTsKKyAgICBtYXRjaGVkQ1NTUnVsZXMgPSBidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1
bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgZWxlbWVudCwgZWxlbWVudFBzZXVk
b0lkKTsKIAotICAgIC8vIFBzZXVkbyBlbGVtZW50cy4KLSAgICBpZiAoIWluY2x1ZGVQc2V1ZG8g
fHwgKmluY2x1ZGVQc2V1ZG8pIHsKLSAgICAgICAgYXV0byBwc2V1ZG9FbGVtZW50cyA9IEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UHNldWRvSWRN
YXRjaGVzPjo6Y3JlYXRlKCk7Ci0gICAgICAgIGZvciAoUHNldWRvSWQgcHNldWRvSWQgPSBGSVJT
VF9QVUJMSUNfUFNFVURPSUQ7IHBzZXVkb0lkIDwgQUZURVJfTEFTVF9JTlRFUk5BTF9QU0VVRE9J
RDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4ocHNldWRvSWQgKyAxKSkgewotICAg
ICAgICAgICAgYXV0byBtYXRjaGVkUnVsZXMgPSBzdHlsZVJlc29sdmVyLnBzZXVkb1N0eWxlUnVs
ZXNGb3JFbGVtZW50KGVsZW1lbnQsIHBzZXVkb0lkLCBTdHlsZVJlc29sdmVyOjpBbGxDU1NSdWxl
cyk7Ci0gICAgICAgICAgICBpZiAoIW1hdGNoZWRSdWxlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAg
ICAgICAgICBhdXRvIG1hdGNoZXMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OlBzZXVkb0lk
TWF0Y2hlczo6Y3JlYXRlKCkKLSAgICAgICAgICAgICAgICAgICAgLnNldFBzZXVkb0lkKHN0YXRp
Y19jYXN0PGludD4ocHNldWRvSWQpKQotICAgICAgICAgICAgICAgICAgICAuc2V0TWF0Y2hlcyhi
dWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwg
ZWxlbWVudCkpCisgICAgaWYgKCFvcmlnaW5hbEVsZW1lbnQtPmlzUHNldWRvRWxlbWVudCgpKSB7
CisgICAgICAgIC8vIFBzZXVkbyBlbGVtZW50cy4KKyAgICAgICAgaWYgKCFpbmNsdWRlUHNldWRv
IHx8ICppbmNsdWRlUHNldWRvKSB7CisgICAgICAgICAgICBhdXRvIHBzZXVkb0VsZW1lbnRzID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpQc2V1
ZG9JZE1hdGNoZXM+OjpjcmVhdGUoKTsKKyAgICAgICAgICAgIGZvciAoUHNldWRvSWQgcHNldWRv
SWQgPSBGSVJTVF9QVUJMSUNfUFNFVURPSUQ7IHBzZXVkb0lkIDwgQUZURVJfTEFTVF9JTlRFUk5B
TF9QU0VVRE9JRDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4ocHNldWRvSWQgKyAx
KSkgeworICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5bGVSZXNvbHZlci5w
c2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBwc2V1ZG9JZCwgU3R5bGVSZXNvbHZl
cjo6QWxsQ1NTUnVsZXMpOworICAgICAgICAgICAgICAgIGlmICghbWF0Y2hlZFJ1bGVzLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlczo6Y3JlYXRlKCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC5zZXRQc2V1ZG9JZChzdGF0aWNfY2FzdDxpbnQ+KHBzZXVkb0lkKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC5zZXRNYXRjaGVzKGJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVsZUxpc3Qo
bWF0Y2hlZFJ1bGVzLCBzdHlsZVJlc29sdmVyLCBlbGVtZW50LCBwc2V1ZG9JZCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOworICAgICAgICAgICAgICAgICAgICBwc2V1ZG9F
bGVtZW50cy0+YWRkSXRlbShXVEY6Om1vdmUobWF0Y2hlcykpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHNldWRvSWRNYXRjaGVzID0gV1RGOjptb3Zl
KHBzZXVkb0VsZW1lbnRzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEluaGVyaXRlZCBzdHls
ZXMuCisgICAgICAgIGlmICghaW5jbHVkZUluaGVyaXRlZCB8fCAqaW5jbHVkZUluaGVyaXRlZCkg
eworICAgICAgICAgICAgYXV0byBlbnRyaWVzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8
SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRTdHlsZUVudHJ5Pjo6Y3JlYXRlKCk7
CisgICAgICAgICAgICBFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxlbWVudC0+cGFyZW50RWxl
bWVudCgpOworICAgICAgICAgICAgd2hpbGUgKHBhcmVudEVsZW1lbnQpIHsKKyAgICAgICAgICAg
ICAgICBTdHlsZVJlc29sdmVyJiBwYXJlbnRTdHlsZVJlc29sdmVyID0gcGFyZW50RWxlbWVudC0+
ZG9jdW1lbnQoKS5lbnN1cmVTdHlsZVJlc29sdmVyKCk7CisgICAgICAgICAgICAgICAgYXV0byBw
YXJlbnRNYXRjaGVkUnVsZXMgPSBwYXJlbnRTdHlsZVJlc29sdmVyLnN0eWxlUnVsZXNGb3JFbGVt
ZW50KHBhcmVudEVsZW1lbnQsIFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKKyAgICAgICAg
ICAgICAgICBhdXRvIGVudHJ5ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpJbmhlcml0ZWRT
dHlsZUVudHJ5OjpjcmVhdGUoKQorICAgICAgICAgICAgICAgICAgICAuc2V0TWF0Y2hlZENTU1J1
bGVzKGJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVsZUxpc3QocGFyZW50TWF0Y2hlZFJ1bGVzLCBzdHls
ZVJlc29sdmVyLCBwYXJlbnRFbGVtZW50LCBOT1BTRVVETykpCiAgICAgICAgICAgICAgICAgICAg
IC5yZWxlYXNlKCk7Ci0gICAgICAgICAgICAgICAgcHNldWRvRWxlbWVudHMtPmFkZEl0ZW0oV1RG
Ojptb3ZlKG1hdGNoZXMpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmIChwYXJlbnRFbGVtZW50LT5zdHlsZSgpICYmIHBhcmVudEVsZW1lbnQtPnN0eWxlKCkt
Pmxlbmd0aCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChJbnNwZWN0b3JTdHlsZVNoZWV0
Rm9ySW5saW5lU3R5bGUqIHN0eWxlU2hlZXQgPSBhc0luc3BlY3RvclN0eWxlU2hlZXQocGFyZW50
RWxlbWVudCkpCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS0+c2V0SW5saW5lU3R5bGUo
c3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JTdHlsZShzdHlsZVNoZWV0LT5zdHlsZUZvcklkKElu
c3BlY3RvckNTU0lkKHN0eWxlU2hlZXQtPmlkKCksIDApKSkpOworICAgICAgICAgICAgICAgIH0K
IAotICAgICAgICBwc2V1ZG9JZE1hdGNoZXMgPSBXVEY6Om1vdmUocHNldWRvRWxlbWVudHMpOwot
ICAgIH0KLQotICAgIC8vIEluaGVyaXRlZCBzdHlsZXMuCi0gICAgaWYgKCFpbmNsdWRlSW5oZXJp
dGVkIHx8ICppbmNsdWRlSW5oZXJpdGVkKSB7Ci0gICAgICAgIGF1dG8gZW50cmllcyA9IEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6SW5oZXJpdGVk
U3R5bGVFbnRyeT46OmNyZWF0ZSgpOwotICAgICAgICBFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0g
ZWxlbWVudC0+cGFyZW50RWxlbWVudCgpOwotICAgICAgICB3aGlsZSAocGFyZW50RWxlbWVudCkg
ewotICAgICAgICAgICAgU3R5bGVSZXNvbHZlciYgcGFyZW50U3R5bGVSZXNvbHZlciA9IHBhcmVu
dEVsZW1lbnQtPmRvY3VtZW50KCkuZW5zdXJlU3R5bGVSZXNvbHZlcigpOwotICAgICAgICAgICAg
YXV0byBwYXJlbnRNYXRjaGVkUnVsZXMgPSBwYXJlbnRTdHlsZVJlc29sdmVyLnN0eWxlUnVsZXNG
b3JFbGVtZW50KHBhcmVudEVsZW1lbnQsIFN0eWxlUmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKLSAg
ICAgICAgICAgIGF1dG8gZW50cnkgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkluaGVyaXRl
ZFN0eWxlRW50cnk6OmNyZWF0ZSgpCi0gICAgICAgICAgICAgICAgLnNldE1hdGNoZWRDU1NSdWxl
cyhidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KHBhcmVudE1hdGNoZWRSdWxlcywgc3R5bGVS
ZXNvbHZlciwgcGFyZW50RWxlbWVudCkpCi0gICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKLSAg
ICAgICAgICAgIGlmIChwYXJlbnRFbGVtZW50LT5zdHlsZSgpICYmIHBhcmVudEVsZW1lbnQtPnN0
eWxlKCktPmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yU3R5bGVTaGVldEZv
cklubGluZVN0eWxlKiBzdHlsZVNoZWV0ID0gYXNJbnNwZWN0b3JTdHlsZVNoZWV0KHBhcmVudEVs
ZW1lbnQpOwotICAgICAgICAgICAgICAgIGlmIChzdHlsZVNoZWV0KQotICAgICAgICAgICAgICAg
ICAgICBlbnRyeS0+c2V0SW5saW5lU3R5bGUoc3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JTdHls
ZShzdHlsZVNoZWV0LT5zdHlsZUZvcklkKEluc3BlY3RvckNTU0lkKHN0eWxlU2hlZXQtPmlkKCks
IDApKSkpOworICAgICAgICAgICAgICAgIGVudHJpZXMtPmFkZEl0ZW0oV1RGOjptb3ZlKGVudHJ5
KSk7CisgICAgICAgICAgICAgICAgcGFyZW50RWxlbWVudCA9IHBhcmVudEVsZW1lbnQtPnBhcmVu
dEVsZW1lbnQoKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZW50cmllcy0+YWRkSXRl
bShXVEY6Om1vdmUoZW50cnkpKTsKLSAgICAgICAgICAgIHBhcmVudEVsZW1lbnQgPSBwYXJlbnRF
bGVtZW50LT5wYXJlbnRFbGVtZW50KCk7CisgICAgICAgICAgICBpbmhlcml0ZWRFbnRyaWVzID0g
V1RGOjptb3ZlKGVudHJpZXMpOwogICAgICAgICB9Ci0KLSAgICAgICAgaW5oZXJpdGVkRW50cmll
cyA9IFdURjo6bW92ZShlbnRyaWVzKTsKICAgICB9CiB9CiAKQEAgLTkyNCwxMSArOTM2LDEyIEBA
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNTU0Fn
ZW50OjpidWlsZE9iamVjdEZvclJ1bGUoCiAgICAgcmV0dXJuIGluc3BlY3RvclN0eWxlU2hlZXQg
PyBpbnNwZWN0b3JTdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclJ1bGUocnVsZSwgbnVsbHB0cikg
OiBudWxscHRyOwogfQogCi1SZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVj
dG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRB
cnJheUZvck1hdGNoZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiBt
YXRjaGVkUnVsZXMsIFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIEVsZW1lbnQqIGVsZW1l
bnQpCitSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpSdWxlTWF0Y2g+PiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRBcnJheUZvck1hdGNo
ZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiBtYXRjaGVkUnVsZXMs
IFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIEVsZW1lbnQqIGVsZW1lbnQsIFBzZXVkb0lk
IHBzdWVkb0lkKQogewogICAgIGF1dG8gcmVzdWx0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJy
YXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+OjpjcmVhdGUoKTsKIAogICAg
IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0IGNvbnRleHQoU2VsZWN0b3JDaGVja2Vy
OjpNb2RlOjpDb2xsZWN0aW5nUnVsZXMpOworICAgIGNvbnRleHQucHNldWRvSWQgPSBwc3VlZG9J
ZCA/IHBzdWVkb0lkIDogZWxlbWVudC0+cHNldWRvSWQoKTsKICAgICBTZWxlY3RvckNoZWNrZXIg
c2VsZWN0b3JDaGVja2VyKGVsZW1lbnQtPmRvY3VtZW50KCkpOwogCiAgICAgZm9yIChhdXRvJiBt
YXRjaGVkUnVsZSA6IG1hdGNoZWRSdWxlcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuaAppbmRleCBlY2UwMjk5Li5iNTkyZjFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtMTQ5LDcgKzE0OSw3IEBA
IHByaXZhdGU6CiAKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxl
PiBidWlsZE9iamVjdEZvclJ1bGUoU3R5bGVSdWxlKiwgU3R5bGVSZXNvbHZlciYsIEVsZW1lbnQq
KTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBidWlsZE9i
amVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKik7Ci0gICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoPj4gYnVpbGRBcnJh
eUZvck1hdGNoZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiwgU3R5
bGVSZXNvbHZlciYsIEVsZW1lbnQqKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6
QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBidWlsZEFycmF5Rm9y
TWF0Y2hlZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4mLCBTdHlsZVJl
c29sdmVyJiwgRWxlbWVudCosIFBzZXVkb0lkKTsKICAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90
b2NvbDo6Q1NTOjpDU1NTdHlsZT4gYnVpbGRPYmplY3RGb3JBdHRyaWJ1dGVzU3R5bGUoRWxlbWVu
dCopOwogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDU1M6OlJlZ2lvbj4+IGJ1aWxkQXJyYXlGb3JSZWdpb25zKEVycm9yU3RyaW5nJiwg
UmVmUHRyPE5vZGVMaXN0PiYmLCBpbnQgZG9jdW1lbnROb2RlSWQpOwogICAgIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpDU1M6Ok5hbWVkRmxvdz4gYnVpbGRPYmplY3RGb3JOYW1lZEZsb3co
RXJyb3JTdHJpbmcmLCBXZWJLaXROYW1lZEZsb3cqLCBpbnQgZG9jdW1lbnROb2RlSWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggNzE5
Zjc2MS4uNTY0ODI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NQWdlbnQuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBzZXVk
b0VsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0
eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKQEAgLTMzMiw4ICszMzMs
MTMgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lk
TWFwKiBub2Rlc01hcCkKICAgICB9CiAKICAgICBpZiAoaXM8RWxlbWVudD4oKm5vZGUpKSB7Ci0g
ICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0gZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLnNo
YWRvd1Jvb3QoKSkKKyAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+
KCpub2RlKTsKKyAgICAgICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSBlbGVtZW50LnNoYWRvd1Jv
b3QoKSkKICAgICAgICAgICAgIHVuYmluZChyb290LCBub2Rlc01hcCk7CisgICAgICAgIGlmIChQ
c2V1ZG9FbGVtZW50KiBiZWZvcmVFbGVtZW50ID0gZWxlbWVudC5iZWZvcmVQc2V1ZG9FbGVtZW50
KCkpCisgICAgICAgICAgICB1bmJpbmQoYmVmb3JlRWxlbWVudCwgbm9kZXNNYXApOworICAgICAg
ICBpZiAoUHNldWRvRWxlbWVudCogYWZ0ZXJFbGVtZW50ID0gZWxlbWVudC5hZnRlclBzZXVkb0Vs
ZW1lbnQoKSkKKyAgICAgICAgICAgIHVuYmluZChhZnRlckVsZW1lbnQsIG5vZGVzTWFwKTsKICAg
ICB9CiAKICAgICBub2Rlc01hcC0+cmVtb3ZlKG5vZGUpOwpAQCAtMzkyLDcgKzM5OCwxMSBAQCBO
b2RlKiBJbnNwZWN0b3JET01BZ2VudDo6YXNzZXJ0RWRpdGFibGVOb2RlKEVycm9yU3RyaW5nJiBl
cnJvclN0cmluZywgaW50IG5vZGVJZAogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgaWYgKG5vZGUtPmlzSW5TaGFkb3dUcmVlKCkpIHsKLSAgICAgICAgZXJyb3JT
dHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbiBub3QgZWRpdCBub2RlcyBmcm9tIHNoYWRvdyB0cmVl
cyIpOworICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQgbm9k
ZXMgZnJvbSBzaGFkb3cgdHJlZXMiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQor
ICAgIGlmIChub2RlLT5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAgICAgICBlcnJvclN0cmluZyA9
IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQgcHNldWRvIGVsZW1lbnRzIik7CiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIH0KICAgICByZXR1cm4gbm9kZTsKQEAgLTQwNCw3ICs0MTQsMTEg
QEAgRWxlbWVudCogSW5zcGVjdG9yRE9NQWdlbnQ6OmFzc2VydEVkaXRhYmxlRWxlbWVudChFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcsIGludAogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgaWYgKGVsZW1lbnQtPmlzSW5TaGFkb3dUcmVlKCkpIHsKLSAgICAg
ICAgZXJyb3JTdHJpbmcgPSBBU0NJSUxpdGVyYWwoIkNhbiBub3QgZWRpdCBlbGVtZW50cyBmcm9t
IHNoYWRvdyB0cmVlcyIpOworICAgICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fu
bm90IGVkaXQgZWxlbWVudHMgZnJvbSBzaGFkb3cgdHJlZXMiKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgfQorICAgIGlmIChlbGVtZW50LT5pc1BzZXVkb0VsZW1lbnQoKSkgeworICAg
ICAgICBlcnJvclN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGVkaXQgcHNldWRvIGVsZW1l
bnRzIik7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KICAgICByZXR1cm4gZWxlbWVu
dDsKQEAgLTY5OCw3ICs3MTIsNyBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpyZW1vdmVOb2Rl
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgaW50IG5vZGVJZCkKIAogICAgIENvbnRhaW5lck5v
ZGUqIHBhcmVudE5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAgaWYgKCFwYXJlbnROb2Rl
KSB7Ci0gICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJDYW4gbm90IHJlbW92ZSBk
ZXRhY2hlZCBub2RlIik7CisgICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJDYW5u
b3QgcmVtb3ZlIGRldGFjaGVkIG5vZGUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MTI1NCw2ICsxMjY4LDIwIEBAIHN0YXRpYyBTdHJpbmcgZG9jdW1lbnRCYXNlVVJMU3RyaW5nKERv
Y3VtZW50KiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKCIiKS5z
dHJpbmcoKTsKIH0KIAorc3RhdGljIGJvb2wgcHNldWRvRWxlbWVudFR5cGUoUHNldWRvSWQgcHNl
dWRvSWQsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkRPTTo6UHNldWRvVHlwZSogdHlwZSkKK3sKKyAg
ICBzd2l0Y2ggKHBzZXVkb0lkKSB7CisgICAgY2FzZSBCRUZPUkU6CisgICAgICAgICp0eXBlID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpQc2V1ZG9UeXBlOjpCZWZvcmU7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGNhc2UgQUZURVI6CisgICAgICAgICp0eXBlID0gSW5zcGVjdG9yOjpQ
cm90b2NvbDo6RE9NOjpQc2V1ZG9UeXBlOjpBZnRlcjsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogUmVmPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0
Rm9yTm9kZShOb2RlKiBub2RlLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCkKIHsK
ICAgICBpbnQgaWQgPSBiaW5kKG5vZGUsIG5vZGVzTWFwKTsKQEAgLTEzMjcsNiArMTM1NSwxNSBA
QCBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPiBJbnNwZWN0b3JET01BZ2VudDo6
YnVpbGRPYmplY3RGb3JOb2RlKE5vZGUqCiAgICAgICAgICAgICB2YWx1ZS0+c2V0VGVtcGxhdGVD
b250ZW50KGJ1aWxkT2JqZWN0Rm9yTm9kZShkb3duY2FzdDxIVE1MVGVtcGxhdGVFbGVtZW50Pihl
bGVtZW50KS5jb250ZW50KCksIDAsIG5vZGVzTWFwKSk7CiAjZW5kaWYKIAorICAgICAgICBpZiAo
ZWxlbWVudC5wc2V1ZG9JZCgpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3I6OlByb3RvY29sOjpE
T006OlBzZXVkb1R5cGUgcHNldWRvVHlwZTsKKyAgICAgICAgICAgIGlmIChwc2V1ZG9FbGVtZW50
VHlwZShlbGVtZW50LnBzZXVkb0lkKCksICZwc2V1ZG9UeXBlKSkKKyAgICAgICAgICAgICAgICB2
YWx1ZS0+c2V0UHNldWRvVHlwZShwc2V1ZG9UeXBlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvIHBzZXVkb0VsZW1lbnRzID0gYnVpbGRBcnJheUZvclBzZXVkb0VsZW1l
bnRzKGVsZW1lbnQsIG5vZGVzTWFwKSkKKyAgICAgICAgICAgICAgICB2YWx1ZS0+c2V0UHNldWRv
RWxlbWVudHMoV1RGOjptb3ZlKHBzZXVkb0VsZW1lbnRzKSk7CisgICAgICAgIH0KKwogICAgIH0g
ZWxzZSBpZiAoaXM8RG9jdW1lbnQ+KCpub2RlKSkgewogICAgICAgICBEb2N1bWVudCYgZG9jdW1l
bnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm5vZGUpOwogICAgICAgICB2YWx1ZS0+c2V0RnJhbWVJ
ZChtX3BhZ2VBZ2VudC0+ZnJhbWVJZChkb2N1bWVudC5mcmFtZSgpKSk7CkBAIC0xMzk0LDYgKzE0
MzEsMjEgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkRPTTo6Tm9kZT4+IEluc3BlY3RvckRPTUFnZW4KICAgICByZXR1cm4gV1RGOjptb3ZlKGNo
aWxkcmVuKTsKIH0KIAorUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkRPTTo6Tm9kZT4+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZEFycmF5Rm9y
UHNldWRvRWxlbWVudHMoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTm9kZVRvSWRNYXAqIG5vZGVz
TWFwKQoreworICAgIFBzZXVkb0VsZW1lbnQqIGJlZm9yZUVsZW1lbnQgPSBlbGVtZW50LmJlZm9y
ZVBzZXVkb0VsZW1lbnQoKTsKKyAgICBQc2V1ZG9FbGVtZW50KiBhZnRlckVsZW1lbnQgPSBlbGVt
ZW50LmFmdGVyUHNldWRvRWxlbWVudCgpOworICAgIGlmICghYmVmb3JlRWxlbWVudCAmJiAhYWZ0
ZXJFbGVtZW50KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gcHNldWRvRWxl
bWVudHMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpE
T006Ok5vZGU+OjpjcmVhdGUoKTsKKyAgICBpZiAoYmVmb3JlRWxlbWVudCkKKyAgICAgICAgcHNl
dWRvRWxlbWVudHMtPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JOb2RlKGJlZm9yZUVsZW1lbnQsIDAs
IG5vZGVzTWFwKSk7CisgICAgaWYgKGFmdGVyRWxlbWVudCkKKyAgICAgICAgcHNldWRvRWxlbWVu
dHMtPmFkZEl0ZW0oYnVpbGRPYmplY3RGb3JOb2RlKGFmdGVyRWxlbWVudCwgMCwgbm9kZXNNYXAp
KTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHBzZXVkb0VsZW1lbnRzKTsKK30KKwogUmVmPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1
aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYg
cmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBO
b2RlKiBub2RlLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwSWQpCiB7CiAgICAgUmVmUHRyPEV2
ZW50TGlzdGVuZXI+IGV2ZW50TGlzdGVuZXIgPSByZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5saXN0
ZW5lcjsKQEAgLTE5NTcsNiArMjAwOSwzNiBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpmcmFt
ZURvY3VtZW50VXBkYXRlZChGcmFtZSogZnJhbWUpCiAgICAgc2V0RG9jdW1lbnQoZG9jdW1lbnQp
OwogfQogCit2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpwc2V1ZG9FbGVtZW50Q3JlYXRlZChQc2V1
ZG9FbGVtZW50JiBwc2V1ZG9FbGVtZW50KQoreworICAgIEVsZW1lbnQqIHBhcmVudCA9IHBzZXVk
b0VsZW1lbnQuaG9zdEVsZW1lbnQoKTsKKyAgICBpZiAoIXBhcmVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaW50IHBhcmVudElkID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChwYXJlbnQp
OworICAgIGlmICghcGFyZW50SWQpCisgICAgICAgIHJldHVybjsKKworICAgIHB1c2hDaGlsZE5v
ZGVzVG9Gcm9udGVuZChwYXJlbnRJZCwgMSk7CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnBz
ZXVkb0VsZW1lbnRBZGRlZChwYXJlbnRJZCwgYnVpbGRPYmplY3RGb3JOb2RlKCZwc2V1ZG9FbGVt
ZW50LCAwLCAmbV9kb2N1bWVudE5vZGVUb0lkTWFwKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQoUHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVu
dCkKK3sKKyAgICBpbnQgcHNldWRvRWxlbWVudElkID0gbV9kb2N1bWVudE5vZGVUb0lkTWFwLmdl
dCgmcHNldWRvRWxlbWVudCk7CisgICAgaWYgKCFwc2V1ZG9FbGVtZW50SWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIC8vIElmIGEgUHNldWRvRWxlbWVudCBpcyBib3VuZCwgaXRzIHBhcmVudCBl
bGVtZW50IG11c3QgaGF2ZSBiZWVuIGJvdW5kLgorICAgIEVsZW1lbnQqIHBhcmVudCA9IHBzZXVk
b0VsZW1lbnQuaG9zdEVsZW1lbnQoKTsKKyAgICBBU1NFUlQocGFyZW50KTsKKyAgICBpbnQgcGFy
ZW50SWQgPSBtX2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KHBhcmVudCk7CisgICAgQVNTRVJUKHBh
cmVudElkKTsKKworICAgIHVuYmluZCgmcHNldWRvRWxlbWVudCwgJm1fZG9jdW1lbnROb2RlVG9J
ZE1hcCk7CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnBzZXVkb0VsZW1lbnRSZW1vdmVkKHBh
cmVudElkLCBwc2V1ZG9FbGVtZW50SWQpOworfQorCiBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6
bm9kZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIC8vIFRoZSBwYXRoIGlzIG9m
IGZvcm0gIjEsSFRNTCwyLEJPRFksMSxESVYiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5oCmluZGV4IGE4YTU1MzEuLjdkYmUyNGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xNjksNiArMTY5LDggQEAg
cHVibGljOgogICAgIGJvb2wgaGFuZGxlVG91Y2hFdmVudChOb2RlJik7CiAgICAgdm9pZCBkaWRD
b21taXRMb2FkKERvY3VtZW50Kik7CiAgICAgdm9pZCBmcmFtZURvY3VtZW50VXBkYXRlZChGcmFt
ZSopOworICAgIHZvaWQgcHNldWRvRWxlbWVudENyZWF0ZWQoUHNldWRvRWxlbWVudCYpOworICAg
IHZvaWQgcHNldWRvRWxlbWVudERlc3Ryb3llZChQc2V1ZG9FbGVtZW50Jik7CiAKICAgICAvLyBD
YWxsYmFja3MgdGhhdCBkb24ndCBkaXJlY3RseSBjb3JyZXNwb25kIHRvIGFuIGluc3RydW1lbnRh
dGlvbiBlbnRyeSBwb2ludC4KICAgICB2b2lkIHNldERvY3VtZW50KERvY3VtZW50Kik7CkBAIC0y
MzMsNiArMjM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9N
OjpOb2RlPiBidWlsZE9iamVjdEZvck5vZGUoTm9kZSosIGludCBkZXB0aCwgTm9kZVRvSWRNYXAq
KTsKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8U3RyaW5nPj4gYnVpbGRBcnJh
eUZvckVsZW1lbnRBdHRyaWJ1dGVzKEVsZW1lbnQqKTsKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90
b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6RE9NOjpOb2RlPj4gYnVpbGRBcnJheUZv
ckNvbnRhaW5lckNoaWxkcmVuKE5vZGUqIGNvbnRhaW5lciwgaW50IGRlcHRoLCBOb2RlVG9JZE1h
cCogbm9kZXNNYXApOworICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNw
ZWN0b3I6OlByb3RvY29sOjpET006Ok5vZGU+PiBidWlsZEFycmF5Rm9yUHNldWRvRWxlbWVudHMo
Y29uc3QgRWxlbWVudCYsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CiAgICAgUmVmPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkRPTTo6RXZlbnRMaXN0ZW5lcj4gYnVpbGRPYmplY3RGb3JFdmVudExpc3Rl
bmVyKGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIE5vZGUqLCBjb25zdCBTdHJpbmcqIG9iamVjdEdyb3VwSWQpOwogICAgIFJlZlB0
cjxJbnNwZWN0b3I6OlByb3RvY29sOjpET006OkFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzPiBidWls
ZE9iamVjdEZvckFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKE5vZGUqKTsKICAgICB2b2lkIHByb2Nl
c3NBY2Nlc3NpYmlsaXR5Q2hpbGRyZW4oUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiYsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxpbnQ+PiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXgg
NDFjODI4MDkuLjVlZWIwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0yMDgsNiArMjA4LDIwIEBAIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUG9wU2hhZG93Um9vdEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYgaW5zdHJ1CiAgICAgICAgIGRvbUFnZW50LT53aWxsUG9wU2hhZG93Um9vdCho
b3N0LCByb290KTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0Vs
ZW1lbnRDcmVhdGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBQc2V1ZG9FbGVtZW50JiBwc2V1ZG9FbGVtZW50KQoreworICAgIGlmIChJbnNwZWN0b3JET01B
Z2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTUFnZW50KCkp
CisgICAgICAgIGRvbUFnZW50LT5wc2V1ZG9FbGVtZW50Q3JlYXRlZChwc2V1ZG9FbGVtZW50KTsK
K30KKwordm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95
ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFBzZXVkb0Vs
ZW1lbnQmIHBzZXVkb0VsZW1lbnQpCit7CisgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21B
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9yRE9NQWdlbnQoKSkKKyAgICAgICAg
ZG9tQWdlbnQtPnBzZXVkb0VsZW1lbnREZXN0cm95ZWQocHNldWRvRWxlbWVudCk7CisgICAgaWYg
KEluc3BlY3RvckxheWVyVHJlZUFnZW50KiBsYXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMuaW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSkKKyAgICAgICAgbGF5ZXJUcmVlQWdlbnQt
PnBzZXVkb0VsZW1lbnREZXN0cm95ZWQocHNldWRvRWxlbWVudCk7Cit9CisKIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVOYW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFt
ZWRGbG93JiBuYW1lZEZsb3cpCiB7CiAgICAgaWYgKCFkb2N1bWVudCkKQEAgLTEyNzQsMTAgKzEy
ODgsNCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cmVuZGVyTGF5ZXJEZXN0cm95
ZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGlucwogICAgICAgICBsYXllclRyZWVBZ2VudC0+
cmVuZGVyTGF5ZXJEZXN0cm95ZWQocmVuZGVyTGF5ZXIpOwogfQogCi12b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudERlc3Ryb3llZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgUHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVudCkK
LXsKLSAgICBpZiAoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQqIGxheWVyVHJlZUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy5pbnNwZWN0b3JMYXllclRyZWVBZ2VudCgpKQotICAgICAgICBsYXll
clRyZWVBZ2VudC0+cHNldWRvRWxlbWVudERlc3Ryb3llZChwc2V1ZG9FbGVtZW50KTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGEwMzU0YWQuLjYxYWI0ZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgKQEAgLTc1LDkgKzc1LDkgQEAgY2xhc3MgRE9NV2luZG93OwogY2xhc3MgRE9NV3JhcHBlcldv
cmxkOwogY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb247
CitjbGFzcyBFbGVtZW50OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSFRUUEhlYWRl
ck1hcDsKIGNsYXNzIEluc3BlY3RvckNTU0FnZW50OwpAQCAtODUsNyArODUsNiBAQCBjbGFzcyBJ
bnNwZWN0b3JDU1NPTVdyYXBwZXJzOwogY2xhc3MgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOwog
Y2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7
Ci1jbGFzcyBVUkw7CiBjbGFzcyBOb2RlOwogY2xhc3MgUHNldWRvRWxlbWVudDsKIGNsYXNzIFJl
bmRlckxheWVyOwpAQCAtMTAwLDYgKzk5LDcgQEAgY2xhc3MgU3RvcmFnZUFyZWE7CiBjbGFzcyBT
dHlsZVJlc29sdmVyOwogY2xhc3MgU3R5bGVSdWxlOwogY2xhc3MgVGhyZWFkYWJsZUxvYWRlckNs
aWVudDsKK2NsYXNzIFVSTDsKIGNsYXNzIFdvcmtlckdsb2JhbFNjb3BlOwogY2xhc3MgV29ya2Vy
R2xvYmFsU2NvcGVQcm94eTsKIGNsYXNzIFhNTEh0dHBSZXF1ZXN0OwpAQCAtMTI2LDYgKzEyNiw4
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBtZWRpYVF1ZXJ5UmVzdWx0Q2hhbmdlZChEb2N1
bWVudCYpOwogICAgIHN0YXRpYyB2b2lkIGRpZFB1c2hTaGFkb3dSb290KEVsZW1lbnQmIGhvc3Qs
IFNoYWRvd1Jvb3QmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUG9wU2hhZG93Um9vdChFbGVtZW50
JiBob3N0LCBTaGFkb3dSb290Jik7CisgICAgc3RhdGljIHZvaWQgcHNldWRvRWxlbWVudENyZWF0
ZWQoUGFnZSosIFBzZXVkb0VsZW1lbnQmKTsKKyAgICBzdGF0aWMgdm9pZCBwc2V1ZG9FbGVtZW50
RGVzdHJveWVkKFBhZ2UqLCBQc2V1ZG9FbGVtZW50Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkQ3Jl
YXRlTmFtZWRGbG93KERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Jik7CiAgICAgc3RhdGljIHZv
aWQgd2lsbFJlbW92ZU5hbWVkRmxvdyhEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyYpOwogICAg
IHN0YXRpYyB2b2lkIGRpZENoYW5nZVJlZ2lvbk92ZXJzZXQoRG9jdW1lbnQmLCBXZWJLaXROYW1l
ZEZsb3cmKTsKQEAgLTI3NSw3ICsyNzcsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBs
YXllclRyZWVEaWRDaGFuZ2UoUGFnZSopOwogICAgIHN0YXRpYyB2b2lkIHJlbmRlckxheWVyRGVz
dHJveWVkKFBhZ2UqLCBjb25zdCBSZW5kZXJMYXllciYpOwotICAgIHN0YXRpYyB2b2lkIHBzZXVk
b0VsZW1lbnREZXN0cm95ZWQoUGFnZSosIFBzZXVkb0VsZW1lbnQmKTsKIAogICAgIHN0YXRpYyB2
b2lkIGZyb250ZW5kQ3JlYXRlZCgpIHsgc19mcm9udGVuZENvdW50ZXIgKz0gMTsgfQogICAgIHN0
YXRpYyB2b2lkIGZyb250ZW5kRGVsZXRlZCgpIHsgc19mcm9udGVuZENvdW50ZXIgLT0gMTsgfQpA
QCAtMzA2LDYgKzMwNyw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgbWVkaWFRdWVyeVJl
c3VsdENoYW5nZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKICAgICBzdGF0aWMgdm9pZCBk
aWRQdXNoU2hhZG93Um9vdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEVsZW1lbnQmIGhvc3Qs
IFNoYWRvd1Jvb3QmKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsUG9wU2hhZG93Um9vdEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIEVsZW1lbnQmIGhvc3QsIFNoYWRvd1Jvb3QmKTsKKyAgICBzdGF0
aWMgdm9pZCBwc2V1ZG9FbGVtZW50Q3JlYXRlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFBz
ZXVkb0VsZW1lbnQmKTsKKyAgICBzdGF0aWMgdm9pZCBwc2V1ZG9FbGVtZW50RGVzdHJveWVkSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgUHNldWRvRWxlbWVudCYpOwogICAgIHN0YXRpYyB2b2lk
IGRpZENyZWF0ZU5hbWVkRmxvd0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIERvY3VtZW50Kiwg
V2ViS2l0TmFtZWRGbG93Jik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFJlbW92ZU5hbWVkRmxvd0lt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Jik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkQ2hhbmdlUmVnaW9uT3ZlcnNldEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIERvY3VtZW50JiwgV2ViS2l0TmFtZWRGbG93Jik7CkBAIC00NDksNyArNDUyLDYgQEAg
cHJpdmF0ZToKIAogICAgIHN0YXRpYyB2b2lkIGxheWVyVHJlZURpZENoYW5nZUltcGwoSW5zdHJ1
bWVudGluZ0FnZW50cyYpOwogICAgIHN0YXRpYyB2b2lkIHJlbmRlckxheWVyRGVzdHJveWVkSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgUmVuZGVyTGF5ZXImKTsKLSAgICBzdGF0aWMg
dm9pZCBwc2V1ZG9FbGVtZW50RGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgUHNl
dWRvRWxlbWVudCYpOwogCiAgICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHNGb3JQYWdlKFBhZ2UmKTsKICAgICBzdGF0aWMgSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50c0ZvckZyYW1lKEZyYW1lJik7CkBAIC01NjcsNiArNTY5LDIw
IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBvcFNoYWRvd1Jv
b3QoRWxlbWVudCYgaG9zdCwgU2hhZG93Um9vCiAgICAgICAgIHdpbGxQb3BTaGFkb3dSb290SW1w
bCgqaW5zdHJ1bWVudGluZ0FnZW50cywgaG9zdCwgcm9vdCk7CiB9CiAKK2lubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHNldWRvRWxlbWVudENyZWF0ZWQoUGFnZSogcGFnZSwg
UHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVudCkKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19G
Uk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQorICAgICAgICBw
c2V1ZG9FbGVtZW50Q3JlYXRlZEltcGwoKmluc3RydW1lbnRpbmdBZ2VudHMsIHBzZXVkb0VsZW1l
bnQpOworfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVkb0Vs
ZW1lbnREZXN0cm95ZWQoUGFnZSogcGFnZSwgUHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVudCkK
K3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JQYWdlKHBhZ2UpKQorICAgICAgICBwc2V1ZG9FbGVtZW50RGVzdHJveWVkSW1wbCgqaW5z
dHJ1bWVudGluZ0FnZW50cywgcHNldWRvRWxlbWVudCk7Cit9CisKIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlTmFtZWRGbG93KERvY3VtZW50KiBkb2N1bWVu
dCwgV2ViS2l0TmFtZWRGbG93JiBuYW1lZEZsb3cpCiB7CiAgICAgRkFTVF9SRVRVUk5fSUZfTk9f
RlJPTlRFTkRTKHZvaWQoKSk7CkBAIC0xMzA4LDIyICsxMzI0LDE4IEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmlyZUFuaW1hdGlvbkZyYW1lKGNvbnN0IEluc3Bl
Y3Rvckluc3RyCiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bGF5ZXJU
cmVlRGlkQ2hhbmdlKFBhZ2UqIHBhZ2UpCiB7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRF
TkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKICAgICAgICAgbGF5ZXJU
cmVlRGlkQ2hhbmdlSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cyk7CiB9CiAKIGlubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cmVuZGVyTGF5ZXJEZXN0cm95ZWQoUGFnZSogcGFn
ZSwgY29uc3QgUmVuZGVyTGF5ZXImIHJlbmRlckxheWVyKQogeworICAgIEZBU1RfUkVUVVJOX0lG
X05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSkpCiAgICAg
ICAgIHJlbmRlckxheWVyRGVzdHJveWVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcmVuZGVy
TGF5ZXIpOwogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnBzZXVk
b0VsZW1lbnREZXN0cm95ZWQoUGFnZSogcGFnZSwgUHNldWRvRWxlbWVudCYgcHNldWRvRWxlbWVu
dCkKLXsKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9
IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQotICAgICAgICBwc2V1ZG9FbGVtZW50
RGVzdHJveWVkSW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgcHNldWRvRWxlbWVudCk7Ci19Ci0K
IGlubGluZSBJbnN0cnVtZW50aW5nQWdlbnRzKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omlu
c3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQpCiB7CiAgICAgaWYgKCFjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IDc2N2YzNDMuLjRmOTk0NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJQb2x5Z29uU2hhcGUuaCIKKyNpbmNsdWRlICJQc2V1ZG9FbGVtZW50LmgiCiAjaW5jbHVk
ZSAiUmVjdGFuZ2xlU2hhcGUuaCIKICNpbmNsdWRlICJSZW5kZXJCb3hNb2RlbE9iamVjdC5oIgog
I2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKQEAgLTY4NiwxNyArNjg3LDI0IEBAIHN0YXRpYyBS
ZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6T3ZlcmxheVR5cGVzOjpFbGVtZW50RGF0YT4gYnVp
bGRPYmplY3RGb3JFbGVtCiAgICAgaWYgKCFpczxFbGVtZW50Pihub2RlKSB8fCAhbm9kZS0+ZG9j
dW1lbnQoKS5mcmFtZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIEVsZW1lbnQm
IGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7CisgICAgRWxlbWVudCogZWZmZWN0
aXZlRWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpOworICAgIGlmIChub2RlLT5pc1Bz
ZXVkb0VsZW1lbnQoKSkgeworICAgICAgICBFbGVtZW50KiBob3N0RWxlbWVudCA9IGRvd25jYXN0
PFBzZXVkb0VsZW1lbnQ+KCpub2RlKS5ob3N0RWxlbWVudCgpOworICAgICAgICBpZiAoIWhvc3RF
bGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGVmZmVjdGl2ZUVs
ZW1lbnQgPSBob3N0RWxlbWVudDsKKyAgICB9CisKKyAgICBFbGVtZW50JiBlbGVtZW50ID0gKmVm
ZmVjdGl2ZUVsZW1lbnQ7CiAgICAgYm9vbCBpc1hIVE1MID0gZWxlbWVudC5kb2N1bWVudCgpLmlz
WEhUTUxEb2N1bWVudCgpOwotCiAgICAgYXV0byBlbGVtZW50RGF0YSA9IEluc3BlY3Rvcjo6UHJv
dG9jb2w6Ok92ZXJsYXlUeXBlczo6RWxlbWVudERhdGE6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRU
YWdOYW1lKGlzWEhUTUwgPyBlbGVtZW50Lm5vZGVOYW1lKCkgOiBlbGVtZW50Lm5vZGVOYW1lKCku
bG93ZXIoKSkKICAgICAgICAgLnNldElkVmFsdWUoZWxlbWVudC5nZXRJZEF0dHJpYnV0ZSgpKQog
ICAgICAgICAucmVsZWFzZSgpOwogCi0gICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IHVzZWRDbGFz
c05hbWVzOworICAgIFN0cmluZ0J1aWxkZXIgY2xhc3NOYW1lczsKICAgICBpZiAoZWxlbWVudC5o
YXNDbGFzcygpICYmIGlzPFN0eWxlZEVsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgIFN0cmlu
Z0J1aWxkZXIgY2xhc3NOYW1lczsKKyAgICAgICAgSGFzaFNldDxBdG9taWNTdHJpbmc+IHVzZWRD
bGFzc05hbWVzOwogICAgICAgICBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzU3Ry
aW5nID0gZG93bmNhc3Q8U3R5bGVkRWxlbWVudD4oZWxlbWVudCkuY2xhc3NOYW1lcygpOwogICAg
ICAgICBzaXplX3QgY2xhc3NOYW1lQ291bnQgPSBjbGFzc05hbWVzU3RyaW5nLnNpemUoKTsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjbGFzc05hbWVDb3VudDsgKytpKSB7CkBAIC03
MDcsOCArNzE1LDE1IEBAIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6T3Zlcmxh
eVR5cGVzOjpFbGVtZW50RGF0YT4gYnVpbGRPYmplY3RGb3JFbGVtCiAgICAgICAgICAgICBjbGFz
c05hbWVzLmFwcGVuZCgnLicpOwogICAgICAgICAgICAgY2xhc3NOYW1lcy5hcHBlbmQoY2xhc3NO
YW1lKTsKICAgICAgICAgfQorICAgIH0KKyAgICBpZiAobm9kZS0+aXNQc2V1ZG9FbGVtZW50KCkp
IHsKKyAgICAgICAgaWYgKG5vZGUtPnBzZXVkb0lkKCkgPT0gQkVGT1JFKQorICAgICAgICAgICAg
Y2xhc3NOYW1lcy5hcHBlbmRMaXRlcmFsKCI6OmJlZm9yZSIpOworICAgICAgICBlbHNlIGlmIChu
b2RlLT5wc2V1ZG9JZCgpID09IEFGVEVSKQorICAgICAgICAgICAgY2xhc3NOYW1lcy5hcHBlbmRM
aXRlcmFsKCI6OmFmdGVyIik7CisgICAgfQorICAgIGlmICghY2xhc3NOYW1lcy5pc0VtcHR5KCkp
CiAgICAgICAgIGVsZW1lbnREYXRhLT5zZXRDbGFzc05hbWUoY2xhc3NOYW1lcy50b1N0cmluZygp
KTsKLSAgICB9CiAKICAgICBSZW5kZXJFbGVtZW50KiByZW5kZXJlciA9IGVsZW1lbnQucmVuZGVy
ZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVSZXNvbHZlVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVUcmVlLmNwcAppbmRleCBjNjA0NzhiLi5hY2E1Y2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVJlc29sdmVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVUcmVlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkVsZW1l
bnRSYXJlRGF0YS5oIgogI2luY2x1ZGUgIkZsb3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiSW5zZXJ0aW9uUG9pbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgog
I2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgpAQCAtNDY0LDYgKzQ2NSw3IEBAIHN0YXRpYyB2
b2lkIGF0dGFjaEJlZm9yZU9yQWZ0ZXJQc2V1ZG9FbGVtZW50SWZOZWVkZWQoRWxlbWVudCYgY3Vy
cmVudCwgUHNldWRvSWQKICAgICBpZiAoIW5lZWRzUHNldWRvRWxlbWVudChjdXJyZW50LCBwc2V1
ZG9JZCkpCiAgICAgICAgIHJldHVybjsKICAgICBSZWY8UHNldWRvRWxlbWVudD4gcHNldWRvRWxl
bWVudCA9IFBzZXVkb0VsZW1lbnQ6OmNyZWF0ZShjdXJyZW50LCBwc2V1ZG9JZCk7CisgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpwc2V1ZG9FbGVtZW50Q3JlYXRlZChwc2V1ZG9FbGVtZW50
LT5kb2N1bWVudCgpLnBhZ2UoKSwgcHNldWRvRWxlbWVudC5nZXQoKSk7CiAgICAgc2V0QmVmb3Jl
T3JBZnRlclBzZXVkb0VsZW1lbnQoY3VycmVudCwgcHNldWRvRWxlbWVudC5jb3B5UmVmKCksIHBz
ZXVkb0lkKTsKICAgICBhdHRhY2hSZW5kZXJUcmVlKHBzZXVkb0VsZW1lbnQuZ2V0KCksICpjdXJy
ZW50LnJlbmRlclN0eWxlKCksIHJlbmRlclRyZWVQb3NpdGlvbiwgbnVsbHB0cik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZwppbmRleCAyOTJiNjEyLi5lNzc0MGE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw4NSBAQAorMjAxNS0wNy0yNCAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNob3cgUHNldWRv
IEVsZW1lbnRzIGluIERPTSBUcmVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzk2MTIKKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNo
ZXIuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RPTVRyZWVNYW5hZ2Vy
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLnByb3RvdHlwZS5fcHNl
dWRvRWxlbWVudEFkZGVkKToKKyAgICAgICAgSG9vayB1cCB0aGUgbmV3IHBzZXVkbyBlbGVtZW50
IERPTU5vZGUgdG8gdGhlIHBhcmVudC4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVN
YW5hZ2VyLnByb3RvdHlwZS5fcHNldWRvRWxlbWVudFJlbW92ZWQpOgorICAgICAgICBVbmhvb2sg
dGhlIHBzZXVkbyBlbGVtZW50IGZyb20gaXRzIHBhcmVudC4KKworICAgICAgICAoV2ViSW5zcGVj
dG9yLkRPTVRyZWVNYW5hZ2VyLnByb3RvdHlwZS5fdW5iaW5kKToKKyAgICAgICAgV2hlbiB1bmJp
bmRpbmcsIHVuYmluZCBhbnkgcHNldWRvIGVsZW1lbnQgY2hpbGRyZW4gd2UgbWF5IGhhdmUgaGFk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5pc1BzZXVkb0VsZW1lbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLnBzZXVkb1R5cGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTU5vZGUucHJvdG90eXBlLmhhc1BzZXVkb0VsZW1lbnRzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZS5wc2V1ZG9FbGVtZW50cyk6CisgICAg
ICAgIE5ldyBzdGF0ZSBvZiBhIERPTU5vZGUgbWF5IGluY2x1ZGUgcHNldWRvIGVsZW1lbnRzLgor
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUuYXBwcm9wcmlhdGVTZWxl
Y3RvckZvcik6CisgICAgICAgIEEgc2VsZWN0b3IgZm9yIHRoaXMgbm9kZSBpbmNsdWRlcyB0aGUg
c2VsZWN0b3IgZm9yIHRoZSBub2RlIGFib3ZlIGl0LgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9Qcm90b2NvbC9ET01PYnNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01PYnNl
cnZlci5wcm90b3R5cGUucHNldWRvRWxlbWVudEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01PYnNlcnZlci5wcm90b3R5cGUucHNldWRvRWxlbWVudFJlbW92ZWQpOgorICAgICAgICBQ
YXNzIHRoZSBtZXNzYWdlIG9uIHRvIERPTVRyZWVNYW5hZ2VyLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
T01UcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGVkaXRhYmxlKToKKyAgICAgICAgUHNldWRvIGVs
ZW1lbnQgbm9kZXMgYXJlIG5vdCBlZGl0YWJsZS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TVRyZWVFbGVtZW50LnByb3RvdHlwZS5zaG93Q2hpbGROb2RlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUub25wb3B1bGF0ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLnVwZGF0ZUNoaWxkcmVuKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5cGUuX25vZGVUaXRsZUluZm8p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5fc2luZ2xl
VGV4dENoaWxkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudC5wcm90b3R5
cGUuX2hhc1Zpc2libGVDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVs
ZW1lbnQucHJvdG90eXBlLl92aXNpYmxlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5fdXBkYXRlQ2hpbGRyZW4pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50LnByb3RvdHlwZS5hZGp1c3RDb2xsYXBzZWRSYW5nZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQucHJvdG90eXBlLmhhbmRsZUxv
YWRBbGxDaGlsZHJlbik6CisgICAgICAgIEEgRE9NVHJlZUVsZW1lbnQncyBjaGlsZHJlbiBhcmUg
bm8gbG9uZ2VyIDEtdG8tMSB0byBET01Ob2RlJ3MgY2hpbGRyZW4uCisgICAgICAgIEluc3RlYWQg
YSBET01Ob2RlIG1heSBoYXZlIGEgYmVmb3JlL2FmdGVyIHBzZXVkbyBlbGVtZW50IGNoaWxkIHRo
YXQKKyAgICAgICAgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgY2hpbGRyZW4gbGlzdC4gVXBkYXRl
IHBhcnRzIG9mIERPTVRyZWVFbGVtZW50CisgICAgICAgIHRvIHJlc3BlY3QgdGhpcyBsaXN0IG9m
IHZpc2libGUgY2hpbGRyZW4uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRy
ZWVFbGVtZW50UGF0aENvbXBvbmVudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01UcmVl
RWxlbWVudFBhdGhDb21wb25lbnQpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUGF0
aENvbXBvbmVudEljb25zLmNzczoKKyAgICAgICAgKC5kb20tcHNldWRvLWVsZW1lbnQtaWNvbiAu
aWNvbik6CisgICAgICAgIFN0eWxpbmcgZm9yIHRoZSBwYXRoIGNvbXBvbmVudCB3aGVuIGEgcHNl
dWRvIGVsZW1lbnQgaXMgc2VsZWN0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVPdXRsaW5lLmNzczoKKyAgICAgICAgKC5kb20tdHJlZS1vdXRsaW5lIC5odG1sLXBz
ZXVkby1lbGVtZW50KToKKyAgICAgICAgKC5kb20tdHJlZS1vdXRsaW5lIC5odG1sLWZyYWdtZW50
LnNoYWRvdyk6CisgICAgICAgICgud2Via2l0LWh0bWwtZnJhZ21lbnQuc2hhZG93KTogRGVsZXRl
ZC4KKyAgICAgICAgU3R5bGVzIGZvciBwc2V1ZG8gZWxlbWVudHMgaW4gdGhlIERPTSB0cmVlLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlT3V0bGluZS5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01UcmVlT3V0bGluZS5wcm90b3R5cGUuX2hpZGVFbGVtZW50KToK
KyAgICAgICAgTWFrZSB0aGUgaGlkZSBlbGVtZW50IHNlbGVjdG9yIGhpZGUgdGhlIGhvc3QgZWxl
bWVudC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZXRhaWxzU2lk
ZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGVi
YXJQYW5lbC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0
ZW5lcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5l
bC5wcm90b3R5cGUuX2ZvcmNlZFBzZXVkb0NsYXNzQ2hlY2tib3hDaGFuZ2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl91cGRh
dGVQc2V1ZG9DbGFzc0NoZWNrYm94ZXMpOgorICAgICAgICBQc2V1ZG8gY2xhc3MgY2hhbmdlcyB3
b24ndCBoYXBwZW4gb24gcHNldWRvIGVsZW1lbnRzLCBidXQgd2lsbAorICAgICAgICBoYXBwZW4g
b24gdGhlaXIgaG9zdCBlbGVtZW50LCBzbyBsaXN0ZW4gdG8gYW5kIG1ha2UgcHNldWRvIGNsYXNz
CisgICAgICAgIGNoYW5nZXMgdG8gdGhlIGhvc3QgZWxlbWVudC4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5jc3M6CisgICAgICAgICguc2lk
ZWJhciA+IC5wYW5lbC5kZXRhaWxzLmNzcy1zdHlsZSAucnVsZXMgPiAqOmZpcnN0LWNoaWxkOm1h
dGNoZXMoLm5ldy1ydWxlKSk6CisgICAgICAgIFNpbmNlIGEgcHNldWRvIGVsZW1lbnQgZG9lcyBu
b3QgaGF2ZSBhIHN0eWxlIGF0dHJpYnV0ZSwKKyAgICAgICAgZ2l2ZSBzb21lIG1hcmdpbiBpbiB0
aGUgc3R5bGUgc2lkZWJhciBhYm92ZSB0aGUgIk5ldyBSdWxlIgorICAgICAgICBidXR0b24gc28g
aXQgbG9va3MgYmV0dGVyLgorCiAyMDE1LTA3LTI3ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGxpdmUgZWRpdGluZyBv
ZiBydWxlIHNlbGVjdG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9ET01UcmVlTWFuYWdlci5qcwppbmRleCA4
YzQzZjhhOC4uOTE5YTc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRE9NVHJlZU1hbmFnZXIuanMKQEAg
LTI0Niw3ICsyNDYsMzggQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyID0gY2xhc3MgRE9N
VHJlZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHZhciBub2Rl
ID0gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKICAgICAgICAgcGFyZW50Ll9yZW1vdmVDaGls
ZChub2RlKTsKICAgICAgICAgdGhpcy5fdW5iaW5kKG5vZGUpOwotICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIuRXZlbnQuTm9k
ZVJlbW92ZWQsIHtub2RlOm5vZGUsIHBhcmVudH0pOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIuRXZlbnQuTm9kZVJlbW92
ZWQsIHtub2RlLCBwYXJlbnR9KTsKKyAgICB9CisKKyAgICBfcHNldWRvRWxlbWVudEFkZGVkKHBh
cmVudElkLCBwc2V1ZG9FbGVtZW50KQorICAgIHsKKyAgICAgICAgdmFyIHBhcmVudCA9IHRoaXMu
X2lkVG9ET01Ob2RlW3BhcmVudElkXTsKKyAgICAgICAgaWYgKCFwYXJlbnQpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTU5vZGUo
dGhpcywgcGFyZW50Lm93bmVyRG9jdW1lbnQsIGZhbHNlLCBwc2V1ZG9FbGVtZW50KTsKKyAgICAg
ICAgbm9kZS5wYXJlbnROb2RlID0gcGFyZW50OworICAgICAgICB0aGlzLl9pZFRvRE9NTm9kZVtu
b2RlLmlkXSA9IG5vZGU7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFwYXJlbnQucHNldWRvRWxl
bWVudHMoKS5nZXQobm9kZS5wc2V1ZG9UeXBlKCkpKTsKKyAgICAgICAgcGFyZW50LnBzZXVkb0Vs
ZW1lbnRzKCkuc2V0KG5vZGUucHNldWRvVHlwZSgpLCBub2RlKTsKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5v
ZGVJbnNlcnRlZCwge25vZGUsIHBhcmVudH0pOworICAgIH0KKworICAgIF9wc2V1ZG9FbGVtZW50
UmVtb3ZlZChwYXJlbnRJZCwgcHNldWRvRWxlbWVudElkKQorICAgIHsKKyAgICAgICAgdmFyIHBz
ZXVkb0VsZW1lbnQgPSB0aGlzLl9pZFRvRE9NTm9kZVtwc2V1ZG9FbGVtZW50SWRdOworICAgICAg
ICBpZiAoIXBzZXVkb0VsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFy
IHBhcmVudCA9IHBzZXVkb0VsZW1lbnQucGFyZW50Tm9kZTsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQocGFyZW50KTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocGFyZW50LmlkID09PSBwYXJlbnRJ
ZCk7CisgICAgICAgIGlmICghcGFyZW50KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHBhcmVudC5fcmVtb3ZlQ2hpbGQocHNldWRvRWxlbWVudCk7CisgICAgICAgIHRoaXMuX3VuYmlu
ZChwc2V1ZG9FbGVtZW50KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLkRPTVRyZWVNYW5hZ2VyLkV2ZW50Lk5vZGVSZW1vdmVkLCB7bm9kZTogcHNl
dWRvRWxlbWVudCwgcGFyZW50fSk7CiAgICAgfQogCiAgICAgX3VuYmluZChub2RlKQpAQCAtMjU0
LDggKzI4NSwxNiBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZU1hbmFnZXIgPSBjbGFzcyBET01UcmVl
TWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fcmVtb3Zl
Q29udGVudE5vZGVGcm9tRmxvd0lmTmVlZGVkKG5vZGUpOwogCiAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9pZFRvRE9NTm9kZVtub2RlLmlkXTsKKwogICAgICAgICBmb3IgKHZhciBpID0gMDsgbm9kZS5j
aGlsZHJlbiAmJiBpIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRo
aXMuX3VuYmluZChub2RlLmNoaWxkcmVuW2ldKTsKKworICAgICAgICB2YXIgcHNldWRvRWxlbWVu
dHMgPSBub2RlLnBzZXVkb0VsZW1lbnRzKCk7CisgICAgICAgIGZvciAodmFyIHBzZXVkb0VsZW1l
bnQgb2YgcHNldWRvRWxlbWVudHMpCisgICAgICAgICAgICB0aGlzLl91bmJpbmQocHNldWRvRWxl
bWVudCk7CisKKyAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBzaGFkb3cgcm9vdHMuCisgICAgICAg
IC8vIEZJWE1FOiBIYW5kbGUgdGVtcGxhdGUgY29udGVudC4KICAgICB9CiAKICAgICBnZXQgcmVz
dG9yZVNlbGVjdGVkTm9kZUlzQWxsb3dlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlLmpzCmluZGV4IGUwNjQ2MjYuLjJmNTZl
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9ET01Ob2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9ET01Ob2RlLmpzCkBAIC00Niw2ICs0Niw3IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0g
Y2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5f
bm9kZU5hbWUgPSBwYXlsb2FkLm5vZGVOYW1lOwogICAgICAgICB0aGlzLl9sb2NhbE5hbWUgPSBw
YXlsb2FkLmxvY2FsTmFtZTsKICAgICAgICAgdGhpcy5fbm9kZVZhbHVlID0gcGF5bG9hZC5ub2Rl
VmFsdWU7CisgICAgICAgIHRoaXMuX3BzZXVkb1R5cGUgPSBwYXlsb2FkLnBzZXVkb1R5cGU7CiAg
ICAgICAgIHRoaXMuX2NvbXB1dGVkUm9sZSA9IHBheWxvYWQucm9sZTsKIAogICAgICAgICBpZiAo
dGhpcy5fbm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkKQEAgLTc4LDkgKzc5LDIwIEBA
IFdlYkluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIC8vIEZJWE1FOiBI
YW5kbGUgdGVtcGxhdGVDb250ZW50LgorCiAgICAgICAgIGlmIChwYXlsb2FkLmNoaWxkcmVuKQog
ICAgICAgICAgICAgdGhpcy5fc2V0Q2hpbGRyZW5QYXlsb2FkKHBheWxvYWQuY2hpbGRyZW4pOwog
CisgICAgICAgIHRoaXMuX3BzZXVkb0VsZW1lbnRzID0gbmV3IE1hcDsKKyAgICAgICAgaWYgKHBh
eWxvYWQucHNldWRvRWxlbWVudHMpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cGF5bG9hZC5wc2V1ZG9FbGVtZW50cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHZh
ciBub2RlID0gbmV3IFdlYkluc3BlY3Rvci5ET01Ob2RlKHRoaXMuX2RvbUFnZW50LCB0aGlzLm93
bmVyRG9jdW1lbnQsIHRoaXMuX2lzSW5TaGFkb3dUcmVlLCBwYXlsb2FkLnBzZXVkb0VsZW1lbnRz
W2ldKTsKKyAgICAgICAgICAgICAgICBub2RlLnBhcmVudE5vZGUgPSB0aGlzOworICAgICAgICAg
ICAgICAgIHRoaXMuX3BzZXVkb0VsZW1lbnRzLnNldChub2RlLnBzZXVkb1R5cGUoKSwgbm9kZSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICBpZiAocGF5bG9hZC5jb250ZW50
RG9jdW1lbnQpIHsKICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREb2N1bWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3IuRE9NTm9kZShkb21BZ2VudCwgbnVsbCwgZmFsc2UsIHBheWxvYWQuY29udGVudERv
Y3VtZW50KTsKICAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVuID0gW3RoaXMuX2NvbnRlbnREb2N1
bWVudF07CkBAIC0yMjEsNiArMjMzLDExIEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3Mg
RE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMu
X2lzSW5TaGFkb3dUcmVlOwogICAgIH0KIAorICAgIGlzUHNldWRvRWxlbWVudCgpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5fcHNldWRvVHlwZSAhPT0gdW5kZWZpbmVkOworICAgIH0KKwog
ICAgIG5vZGVUeXBlKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9ub2RlVHlwZTsKQEAg
LTI0Niw2ICsyNjMsMzEgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxOYW1l
OwogICAgIH0KIAorICAgIHBzZXVkb1R5cGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X3BzZXVkb1R5cGU7CisgICAgfQorCisgICAgaGFzUHNldWRvRWxlbWVudHMoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3BzZXVkb0VsZW1lbnRzLnNpemUgPiAwOworICAgIH0KKworICAg
IHBzZXVkb0VsZW1lbnRzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9wc2V1ZG9FbGVt
ZW50czsKKyAgICB9CisKKyAgICBiZWZvcmVQc2V1ZG9FbGVtZW50KCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9wc2V1ZG9FbGVtZW50cy5nZXQoV2ViSW5zcGVjdG9yLkRPTU5vZGUuUHNl
dWRvRWxlbWVudFR5cGUuQmVmb3JlKSB8fCBudWxsOworICAgIH0KKworICAgIGFmdGVyUHNldWRv
RWxlbWVudCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fcHNldWRvRWxlbWVudHMuZ2V0
KFdlYkluc3BlY3Rvci5ET01Ob2RlLlBzZXVkb0VsZW1lbnRUeXBlLkFmdGVyKSB8fCBudWxsOwor
ICAgIH0KKwogICAgIG5vZGVWYWx1ZSgpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fbm9k
ZVZhbHVlOwpAQCAtNDA3LDYgKzQ0OSw5IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3Mg
RE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgIGFwcHJvcHJpYXRlU2Vs
ZWN0b3JGb3IoanVzdFNlbGVjdG9yKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuaXNQc2V1ZG9F
bGVtZW50KCkpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnROb2RlLmFwcHJvcHJpYXRl
U2VsZWN0b3JGb3IoKSArICI6OiIgKyB0aGlzLl9wc2V1ZG9UeXBlOworCiAgICAgICAgIHZhciBs
b3dlckNhc2VOYW1lID0gdGhpcy5sb2NhbE5hbWUoKSB8fCB0aGlzLm5vZGVOYW1lKCkudG9Mb3dl
ckNhc2UoKTsKIAogICAgICAgICB2YXIgaWQgPSB0aGlzLmdldEF0dHJpYnV0ZSgiaWQiKTsKQEAg
LTQ3NSw3ICs1MjAsMTIgQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGUgPSBjbGFzcyBET01Ob2RlIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgX3JlbW92ZUNoaWxkKG5vZGUpCiAgICAg
ewotICAgICAgICB0aGlzLl9jaGlsZHJlbi5zcGxpY2UodGhpcy5fY2hpbGRyZW4uaW5kZXhPZihu
b2RlKSwgMSk7CisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgcmVtb3ZhbCBpZiB0aGlzIGlzIGEg
c2hhZG93IHJvb3QuCisgICAgICAgIGlmIChub2RlLmlzUHNldWRvRWxlbWVudCgpKQorICAgICAg
ICAgICAgdGhpcy5fcHNldWRvRWxlbWVudHMuZGVsZXRlKG5vZGUucHNldWRvVHlwZSgpKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW4uc3BsaWNlKHRoaXMuX2NoaWxk
cmVuLmluZGV4T2Yobm9kZSksIDEpOworCiAgICAgICAgIG5vZGUucGFyZW50Tm9kZSA9IG51bGw7
CiAgICAgICAgIHRoaXMuX3JlbnVtYmVyKCk7CiAgICAgfQpAQCAtNDg4LDggKzUzOCw3IEBAIFdl
Ykluc3BlY3Rvci5ET01Ob2RlID0gY2xhc3MgRE9NTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKIAogICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IHRoaXMuX3NoYWRvd1Jvb3RzLnNsaWNl
KCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF5bG9hZHMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgIHZhciBwYXlsb2FkID0gcGF5bG9hZHNbaV07Ci0gICAgICAgICAgICB2YXIg
bm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NTm9kZSh0aGlzLl9kb21BZ2VudCwgdGhpcy5vd25l
ckRvY3VtZW50LCB0aGlzLl9pc0luU2hhZG93VHJlZSwgcGF5bG9hZCk7CisgICAgICAgICAgICB2
YXIgbm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NTm9kZSh0aGlzLl9kb21BZ2VudCwgdGhpcy5v
d25lckRvY3VtZW50LCB0aGlzLl9pc0luU2hhZG93VHJlZSwgcGF5bG9hZHNbaV0pOwogICAgICAg
ICAgICAgdGhpcy5fY2hpbGRyZW4ucHVzaChub2RlKTsKICAgICAgICAgfQogICAgICAgICB0aGlz
Ll9yZW51bWJlcigpOwpAQCAtNTk3LDMgKzY0Niw4IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLkV2
ZW50ID0gewogICAgIEF0dHJpYnV0ZU1vZGlmaWVkOiAiZG9tLW5vZGUtYXR0cmlidXRlLW1vZGlm
aWVkIiwKICAgICBBdHRyaWJ1dGVSZW1vdmVkOiAiZG9tLW5vZGUtYXR0cmlidXRlLXJlbW92ZWQi
CiB9OworCitXZWJJbnNwZWN0b3IuRE9NTm9kZS5Qc2V1ZG9FbGVtZW50VHlwZSA9IHsKKyAgICBC
ZWZvcmU6ICJiZWZvcmUiLAorICAgIEFmdGVyOiAiYWZ0ZXIiLAorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0RPTU9ic2VydmVyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2
ZXIuanMKaW5kZXggYTAyMjhjOS4uNzBiOWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvRE9NT2JzZXJ2ZXIuanMKQEAg
LTgxLDQgKzgxLDE0IEBAIFdlYkluc3BlY3Rvci5ET01PYnNlcnZlciA9IGNsYXNzIERPTU9ic2Vy
dmVyCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIuX2NoaWxkTm9k
ZVJlbW92ZWQocGFyZW50Tm9kZUlkLCBub2RlSWQpOwogICAgIH0KKworICAgIHBzZXVkb0VsZW1l
bnRBZGRlZChwYXJlbnROb2RlSWQsIHBzZXVkb0VsZW1lbnQpCisgICAgeworICAgICAgICBXZWJJ
bnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIuX3BzZXVkb0VsZW1lbnRBZGRlZChwYXJlbnROb2RlSWQs
IHBzZXVkb0VsZW1lbnQpOworICAgIH0KKworICAgIHBzZXVkb0VsZW1lbnRSZW1vdmVkKHBhcmVu
dE5vZGVJZCwgcHNldWRvRWxlbWVudElkKQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRv
bVRyZWVNYW5hZ2VyLl9wc2V1ZG9FbGVtZW50UmVtb3ZlZChwYXJlbnROb2RlSWQsIHBzZXVkb0Vs
ZW1lbnRJZCk7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGV0YWlsc1NpZGVi
YXJQYW5lbC5qcwppbmRleCBlNzMzMTVkLi44NTM2NTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURldGFpbHNTaWRlYmFyUGFu
ZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NT
U3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsLmpzCkBAIC0xNTcsMTIgKzE1NywyMCBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3MgQ1NTU3R5bGVEZXRhaWxz
U2lkZWJhclBhbmVsIGV4dAogCiAgICAgYWRkRXZlbnRMaXN0ZW5lcnMoKQogICAgIHsKLSAgICAg
ICAgdGhpcy5kb21Ob2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTU5vZGUuRXZl
bnQuRW5hYmxlZFBzZXVkb0NsYXNzZXNDaGFuZ2VkLCB0aGlzLl91cGRhdGVQc2V1ZG9DbGFzc0No
ZWNrYm94ZXMsIHRoaXMpOworICAgICAgICB2YXIgZWZmZWN0aXZlRE9NTm9kZSA9IHRoaXMuZG9t
Tm9kZS5pc1BzZXVkb0VsZW1lbnQoKSA/IHRoaXMuZG9tTm9kZS5wYXJlbnROb2RlIDogdGhpcy5k
b21Ob2RlOworICAgICAgICBpZiAoIWVmZmVjdGl2ZURPTU5vZGUpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgZWZmZWN0aXZlRE9NTm9kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5ET01Ob2RlLkV2ZW50LkVuYWJsZWRQc2V1ZG9DbGFzc2VzQ2hhbmdlZCwgdGhpcy5fdXBk
YXRlUHNldWRvQ2xhc3NDaGVja2JveGVzLCB0aGlzKTsKICAgICB9CiAKICAgICByZW1vdmVFdmVu
dExpc3RlbmVycygpCiAgICAgewotICAgICAgICB0aGlzLmRvbU5vZGUucmVtb3ZlRXZlbnRMaXN0
ZW5lcihudWxsLCBudWxsLCB0aGlzKTsKKyAgICAgICAgdmFyIGVmZmVjdGl2ZURPTU5vZGUgPSB0
aGlzLmRvbU5vZGUuaXNQc2V1ZG9FbGVtZW50KCkgPyB0aGlzLmRvbU5vZGUucGFyZW50Tm9kZSA6
IHRoaXMuZG9tTm9kZTsKKyAgICAgICAgaWYgKCFlZmZlY3RpdmVET01Ob2RlKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGVmZmVjdGl2ZURPTU5vZGUucmVtb3ZlRXZlbnRMaXN0ZW5l
cihudWxsLCBudWxsLCB0aGlzKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCkBAIC0yMzUsNyAr
MjQzLDkgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNz
IENTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCBleHQKICAgICAgICAgaWYgKCF0aGlzLmRvbU5v
ZGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5kb21Ob2RlLnNldFBzZXVk
b0NsYXNzRW5hYmxlZChwc2V1ZG9DbGFzcywgZXZlbnQudGFyZ2V0LmNoZWNrZWQpOworICAgICAg
ICB2YXIgZWZmZWN0aXZlRE9NTm9kZSA9IHRoaXMuZG9tTm9kZS5pc1BzZXVkb0VsZW1lbnQoKSA/
IHRoaXMuZG9tTm9kZS5wYXJlbnROb2RlIDogdGhpcy5kb21Ob2RlOworCisgICAgICAgIGVmZmVj
dGl2ZURPTU5vZGUuc2V0UHNldWRvQ2xhc3NFbmFibGVkKHBzZXVkb0NsYXNzLCBldmVudC50YXJn
ZXQuY2hlY2tlZCk7CiAgICAgfQogCiAgICAgX3VwZGF0ZVBzZXVkb0NsYXNzQ2hlY2tib3hlcygp
CkBAIC0yNDMsNyArMjUzLDkgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGV0YWlsc1NpZGViYXJQ
YW5lbCA9IGNsYXNzIENTU1N0eWxlRGV0YWlsc1NpZGViYXJQYW5lbCBleHQKICAgICAgICAgaWYg
KCF0aGlzLmRvbU5vZGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGVuYWJs
ZWRQc2V1ZG9DbGFzc2VzID0gdGhpcy5kb21Ob2RlLmVuYWJsZWRQc2V1ZG9DbGFzc2VzOworICAg
ICAgICB2YXIgZWZmZWN0aXZlRE9NTm9kZSA9IHRoaXMuZG9tTm9kZS5pc1BzZXVkb0VsZW1lbnQo
KSA/IHRoaXMuZG9tTm9kZS5wYXJlbnROb2RlIDogdGhpcy5kb21Ob2RlOworCisgICAgICAgIHZh
ciBlbmFibGVkUHNldWRvQ2xhc3NlcyA9IGVmZmVjdGl2ZURPTU5vZGUuZW5hYmxlZFBzZXVkb0Ns
YXNzZXM7CiAKICAgICAgICAgZm9yICh2YXIgcHNldWRvQ2xhc3MgaW4gdGhpcy5fZm9yY2VkUHNl
dWRvQ2xhc3NDaGVja2JveGVzKSB7CiAgICAgICAgICAgICB2YXIgY2hlY2tib3hFbGVtZW50ID0g
dGhpcy5fZm9yY2VkUHNldWRvQ2xhc3NDaGVja2JveGVzW3BzZXVkb0NsYXNzXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVt
ZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJl
ZUVsZW1lbnQuanMKaW5kZXggNjgyOWQ2OC4uNmJkNDQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZUVsZW1lbnQu
anMKQEAgLTM1LDcgKzM1LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3Mg
RE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgc3Vw
ZXIoIiIsIG5vZGUpOwogCiAgICAgICAgIHRoaXMuX2VsZW1lbnRDbG9zZVRhZyA9IGVsZW1lbnRD
bG9zZVRhZzsKLSAgICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9ICFlbGVtZW50Q2xvc2VUYWcgJiYg
bm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgIXRoaXMuX3Nob3dJbmxpbmVUZXh0KG5vZGUpOworICAg
ICAgICB0aGlzLmhhc0NoaWxkcmVuID0gIWVsZW1lbnRDbG9zZVRhZyAmJiB0aGlzLl9oYXNWaXNp
YmxlQ2hpbGRyZW4oKTsKIAogICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2Rl
VHlwZSgpID09PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAhZWxlbWVudENsb3NlVGFnKQogICAgICAg
ICAgICAgdGhpcy5fY2FuQWRkQXR0cmlidXRlcyA9IHRydWU7CkBAIC0xNTgsNyArMTU4LDEwIEBA
IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAKICAgICBnZXQgZWRpdGFibGUoKQogICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3QuaXNJblNoYWRvd1RyZWUoKSkKKyAgICAg
ICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICBpZiAobm9kZS5p
c0luU2hhZG93VHJlZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAo
bm9kZS5pc1BzZXVkb0VsZW1lbnQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
ICAgICByZXR1cm4gdGhpcy50cmVlT3V0bGluZS5lZGl0YWJsZTsKQEAgLTE4OSwxOSArMTkyLDIy
IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgIHJldHVybiBjb3VudDsKICAgICB9
CiAKLSAgICBzaG93Q2hpbGQoaW5kZXgpCisgICAgc2hvd0NoaWxkTm9kZShub2RlKQogICAgIHsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX2VsZW1lbnRDbG9zZVRhZyk7CiAgICAgICAg
IGlmICh0aGlzLl9lbGVtZW50Q2xvc2VUYWcpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICByZXR1cm4gbnVsbDsKKworICAgICAgICB2YXIgaW5kZXggPSB0aGlzLl92aXNp
YmxlQ2hpbGRyZW4oKS5pbmRleE9mKG5vZGUpOworICAgICAgICBpZiAoaW5kZXggPT09IC0xKQor
ICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAKICAgICAgICAgaWYgKGluZGV4ID49IHRoaXMuZXhw
YW5kZWRDaGlsZHJlbkxpbWl0KSB7CiAgICAgICAgICAgICB0aGlzLl9leHBhbmRlZENoaWxkcmVu
TGltaXQgPSBpbmRleCArIDE7CiAgICAgICAgICAgICB0aGlzLl91cGRhdGVDaGlsZHJlbih0cnVl
KTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIFdoZXRoZXIgaW5kZXgtdGggY2hpbGQgaXMgdmlz
aWJsZSBpbiB0aGUgY2hpbGRyZW4gdHJlZQotICAgICAgICByZXR1cm4gdGhpcy5leHBhbmRlZENo
aWxkQ291bnQgPiBpbmRleDsKKyAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5baW5kZXhdOwog
ICAgIH0KIAogICAgIF9jcmVhdGVUb29sdGlwRm9yTm9kZSgpCkBAIC0yODQsNyArMjkwLDcgQEAg
V2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KIAogICAgIG9ucG9wdWxhdGUoKQogICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoIHx8IHRoaXMuX3Nob3dJbmxpbmVUZXh0KHRoaXMu
cmVwcmVzZW50ZWRPYmplY3QpIHx8IHRoaXMuX2VsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgaWYg
KHRoaXMuY2hpbGRyZW4ubGVuZ3RoIHx8ICF0aGlzLl9oYXNWaXNpYmxlQ2hpbGRyZW4oKSB8fCB0
aGlzLl9lbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhp
cy51cGRhdGVDaGlsZHJlbigpOwpAQCAtMjk5LDYgKzMwNSw3IEBAIFdlYkluc3BlY3Rvci5ET01U
cmVlRWxlbWVudCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRy
ZWVFbGVtCiAgICAgewogICAgICAgICBpZiAodGhpcy5fZWxlbWVudENsb3NlVGFnKQogICAgICAg
ICAgICAgcmV0dXJuOworCiAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZ2V0Q2hpbGRO
b2Rlcyh0aGlzLl91cGRhdGVDaGlsZHJlbi5iaW5kKHRoaXMsIGZ1bGxSZWZyZXNoKSk7CiAgICAg
fQogCkBAIC0zMjUsNzggKzMzMiw4NSBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBj
bGFzcyBET01UcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuSW5Qcm9ncmVzcyA9
IHRydWU7CisKKyAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OwogICAg
ICAgICB2YXIgc2VsZWN0ZWROb2RlID0gdGhpcy50cmVlT3V0bGluZS5zZWxlY3RlZERPTU5vZGUo
KTsKICAgICAgICAgdmFyIG9yaWdpbmFsU2Nyb2xsVG9wID0gMDsKLSAgICAgICAgaWYgKGZ1bGxS
ZWZyZXNoKSB7CisKKyAgICAgICAgdmFyIGhhc1Zpc2libGVDaGlsZHJlbiA9IHRoaXMuX2hhc1Zp
c2libGVDaGlsZHJlbigpOworCisgICAgICAgIGlmIChmdWxsUmVmcmVzaCB8fCAhaGFzVmlzaWJs
ZUNoaWxkcmVuKSB7CiAgICAgICAgICAgICB2YXIgdHJlZU91dGxpbmVDb250YWluZXJFbGVtZW50
ID0gdGhpcy50cmVlT3V0bGluZS5lbGVtZW50LnBhcmVudE5vZGU7CiAgICAgICAgICAgICBvcmln
aW5hbFNjcm9sbFRvcCA9IHRyZWVPdXRsaW5lQ29udGFpbmVyRWxlbWVudC5zY3JvbGxUb3A7CiAg
ICAgICAgICAgICB2YXIgc2VsZWN0ZWRUcmVlRWxlbWVudCA9IHRoaXMudHJlZU91dGxpbmUuc2Vs
ZWN0ZWRUcmVlRWxlbWVudDsKICAgICAgICAgICAgIGlmIChzZWxlY3RlZFRyZWVFbGVtZW50ICYm
IHNlbGVjdGVkVHJlZUVsZW1lbnQuaGFzQW5jZXN0b3IodGhpcykpCiAgICAgICAgICAgICAgICAg
dGhpcy5zZWxlY3QoKTsKICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAg
ICAgfQogCi0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXM7Ci0gICAgICAgIHZhciB0cmVl
Q2hpbGRJbmRleCA9IDA7Ci0gICAgICAgIHZhciBlbGVtZW50VG9TZWxlY3Q7Ci0KLSAgICAgICAg
ZnVuY3Rpb24gdXBkYXRlQ2hpbGRyZW5PZk5vZGUobm9kZSkKLSAgICAgICAgewotICAgICAgICAg
ICAgdmFyIHRyZWVPdXRsaW5lID0gdHJlZUVsZW1lbnQudHJlZU91dGxpbmU7Ci0gICAgICAgICAg
ICB2YXIgY2hpbGQgPSBub2RlLmZpcnN0Q2hpbGQ7Ci0gICAgICAgICAgICB3aGlsZSAoY2hpbGQp
IHsKLSAgICAgICAgICAgICAgICB2YXIgY3VycmVudFRyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQu
Y2hpbGRyZW5bdHJlZUNoaWxkSW5kZXhdOwotICAgICAgICAgICAgICAgIGlmICghY3VycmVudFRy
ZWVFbGVtZW50IHx8IGN1cnJlbnRUcmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCAhPT0gY2hp
bGQpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gRmluZCBhbnkgZXhpc3RpbmcgZWxlbWVudCB0
aGF0IGlzIGxhdGVyIGluIHRoZSBjaGlsZHJlbiBsaXN0LgotICAgICAgICAgICAgICAgICAgICB2
YXIgZXhpc3RpbmdUcmVlRWxlbWVudCA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAodHJlZUNoaWxkSW5kZXggKyAxKSwgc2l6ZSA9IHRyZWVFbGVtZW50LmV4cGFuZGVk
Q2hpbGRDb3VudDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHRyZWVFbGVtZW50LmNoaWxkcmVuW2ldLnJlcHJlc2VudGVkT2JqZWN0ID09PSBjaGlsZCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nVHJlZUVsZW1lbnQgPSB0cmVlRWxl
bWVudC5jaGlsZHJlbltpXTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgICAgIGlmIChleGlzdGluZ1RyZWVFbGVtZW50ICYmIGV4aXN0aW5nVHJlZUVsZW1l
bnQucGFyZW50ID09PSB0cmVlRWxlbWVudCkgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8g
SWYgYW4gZXhpc3RpbmcgZWxlbWVudCB3YXMgZm91bmQgYW5kIGl0IGhhcyB0aGUgc2FtZSBwYXJl
bnQsIGp1c3QgbW92ZSBpdC4KLSAgICAgICAgICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50Lm1v
dmVDaGlsZChleGlzdGluZ1RyZWVFbGVtZW50LCB0cmVlQ2hpbGRJbmRleCk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBObyBleGlzdGlu
ZyBlbGVtZW50IGZvdW5kLCBpbnNlcnQgYSBuZXcgZWxlbWVudC4KLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICh0cmVlQ2hpbGRJbmRleCA8IHRyZWVFbGVtZW50LmV4cGFuZGVkQ2hpbGRyZW5M
aW1pdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBuZXdFbGVtZW50ID0gdHJl
ZUVsZW1lbnQuaW5zZXJ0Q2hpbGRFbGVtZW50KGNoaWxkLCB0cmVlQ2hpbGRJbmRleCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkID09PSBzZWxlY3RlZE5vZGUpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRUb1NlbGVjdCA9IG5ld0VsZW1lbnQ7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50LmV4cGFuZGVkQ2hp
bGRDb3VudCA+IHRyZWVFbGVtZW50LmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuZXhwYW5kZWRDaGlsZHJlbkxpbWl0Kys7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5n
OwotICAgICAgICAgICAgICAgICsrdHJlZUNoaWxkSW5kZXg7CisgICAgICAgICAgICAvLyBObyBs
b25nZXIgaGF2ZSBjaGlsZHJlbi4KKyAgICAgICAgICAgIGlmICghaGFzVmlzaWJsZUNoaWxkcmVu
KSB7CisgICAgICAgICAgICAgICAgdGhpcy5oYXNDaGlsZHJlbiA9IGZhbHNlOworICAgICAgICAg
ICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKKyAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVD
aGlsZHJlbkluUHJvZ3Jlc3MgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICAvLyBXZSBub3cgaGF2ZSBjaGlsZHJlbi4K
KyAgICAgICAgaWYgKCF0aGlzLmhhc0NoaWxkcmVuKSB7CisgICAgICAgICAgICB0aGlzLmhhc0No
aWxkcmVuID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKKyAgICAgICAg
fQorCiAgICAgICAgIC8vIFJlbW92ZSBhbnkgdHJlZSBlbGVtZW50cyB0aGF0IG5vIGxvbmdlciBo
YXZlIHRoaXMgbm9kZSAob3IgdGhpcyBub2RlJ3MgY29udGVudERvY3VtZW50KSBhcyB0aGVpciBw
YXJlbnQuCisgICAgICAgIC8vIEtlZXAgYSBsaXN0IG9mIGV4aXN0aW5nIHRyZWUgZWxlbWVudHMg
Zm9yIG5vZGVzIHRoYXQgd2UgY2FuIHVzZSBsYXRlci4KKyAgICAgICAgdmFyIGV4aXN0aW5nQ2hp
bGRUcmVlRWxlbWVudHMgPSBuZXcgTWFwOwogICAgICAgICBmb3IgKHZhciBpID0gKHRoaXMuY2hp
bGRyZW4ubGVuZ3RoIC0gMSk7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICB2YXIgY3VycmVu
dENoaWxkID0gdGhpcy5jaGlsZHJlbltpXTsKLSAgICAgICAgICAgIHZhciBjdXJyZW50Tm9kZSA9
IGN1cnJlbnRDaGlsZC5yZXByZXNlbnRlZE9iamVjdDsKKyAgICAgICAgICAgIHZhciBjdXJyZW50
Q2hpbGRUcmVlRWxlbWVudCA9IHRoaXMuY2hpbGRyZW5baV07CisgICAgICAgICAgICB2YXIgY3Vy
cmVudE5vZGUgPSBjdXJyZW50Q2hpbGRUcmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsKICAg
ICAgICAgICAgIHZhciBjdXJyZW50UGFyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGU7
Ci0KLSAgICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50Tm9kZSA9PT0gdGhpcy5yZXByZXNlbnRl
ZE9iamVjdCkKKyAgICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50Tm9kZSA9PT0gbm9kZSkgewor
ICAgICAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRUcmVlRWxlbWVudHMuc2V0KGN1cnJlbnROb2Rl
LCBjdXJyZW50Q2hpbGRUcmVlRWxlbWVudCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHZhciBzZWxlY3RlZFRyZWVFbGVtZW50ID0gdGhp
cy50cmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OwotICAgICAgICAgICAgaWYgKHNlbGVj
dGVkVHJlZUVsZW1lbnQgJiYgKHNlbGVjdGVkVHJlZUVsZW1lbnQgPT09IGN1cnJlbnRDaGlsZCB8
fCBzZWxlY3RlZFRyZWVFbGVtZW50Lmhhc0FuY2VzdG9yKGN1cnJlbnRDaGlsZCkpKQorICAgICAg
ICAgICAgaWYgKHNlbGVjdGVkVHJlZUVsZW1lbnQgJiYgKHNlbGVjdGVkVHJlZUVsZW1lbnQgPT09
IGN1cnJlbnRDaGlsZFRyZWVFbGVtZW50IHx8IHNlbGVjdGVkVHJlZUVsZW1lbnQuaGFzQW5jZXN0
b3IoY3VycmVudENoaWxkVHJlZUVsZW1lbnQpKSkKICAgICAgICAgICAgICAgICB0aGlzLnNlbGVj
dCgpOwogCiAgICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkQXRJbmRleChpKTsKICAgICAgICAg
fQogCi0gICAgICAgIHVwZGF0ZUNoaWxkcmVuT2ZOb2RlKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qp
OworICAgICAgICAvLyBNb3ZlIC8gY3JlYXRlIFRyZWVFbGVtZW50cyBmb3Igb3VyIHZpc2libGUg
Y2hpbGRyZW4uCisgICAgICAgIHZhciBjaGlsZEluZGV4ID0gMDsKKyAgICAgICAgdmFyIGVsZW1l
bnRUb1NlbGVjdCA9IG51bGw7CisgICAgICAgIHZhciB2aXNpYmxlQ2hpbGRyZW4gPSB0aGlzLl92
aXNpYmxlQ2hpbGRyZW4oKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2aXNpYmxlQ2hp
bGRyZW4ubGVuZ3RoICYmIGkgPCB0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdDsgKytpKSB7Cisg
ICAgICAgICAgICB2YXIgY2hpbGROb2RlID0gdmlzaWJsZUNoaWxkcmVuW2ldOworCisgICAgICAg
ICAgICAvLyBBbHJlYWR5IGhhdmUgYSB0cmVlIGVsZW1lbnQgZm9yIHRoaXMgY2hpbGQsIGp1c3Qg
bW92ZSBpdC4KKyAgICAgICAgICAgIHZhciBleGlzdGluZ0NoaWxkVHJlZUVsZW1lbnQgPSBleGlz
dGluZ0NoaWxkVHJlZUVsZW1lbnRzLmdldChjaGlsZE5vZGUpOworICAgICAgICAgICAgaWYgKGV4
aXN0aW5nQ2hpbGRUcmVlRWxlbWVudCkgeworICAgICAgICAgICAgICAgIHRoaXMubW92ZUNoaWxk
KGV4aXN0aW5nQ2hpbGRUcmVlRWxlbWVudCwgaSk7CisgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE5vIGV4aXN0aW5nIHRyZWUgZWxlbWVu
dCBmb3IgdGhpcyBjaGlsZC4gSW5zZXJ0IGEgbmV3IGVsZW1lbnQuCisgICAgICAgICAgICB2YXIg
bmV3Q2hpbGRUcmVlRWxlbWVudCA9IHRoaXMuaW5zZXJ0Q2hpbGRFbGVtZW50KGNoaWxkTm9kZSwg
aSk7CisKKyAgICAgICAgICAgIC8vIFVwZGF0ZSBzdGF0ZS4KKyAgICAgICAgICAgIGlmIChjaGls
ZE5vZGUgPT09IHNlbGVjdGVkTm9kZSkKKyAgICAgICAgICAgICAgICBlbGVtZW50VG9TZWxlY3Qg
PSBuZXdDaGlsZFRyZWVFbGVtZW50OworICAgICAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWRDaGls
ZENvdW50ID4gdGhpcy5leHBhbmRlZENoaWxkcmVuTGltaXQpCisgICAgICAgICAgICAgICAgdGhp
cy5leHBhbmRlZENoaWxkcmVuTGltaXQrKzsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFVwZGF0
ZSBleHBhbmQgYWxsIGNoaWxkcmVuIGJ1dHRvbi4KICAgICAgICAgdGhpcy5hZGp1c3RDb2xsYXBz
ZWRSYW5nZSgpOwogCisgICAgICAgIC8vIEluc2VydCBjbG9zaW5nIHRhZyB0cmVlIGVsZW1lbnQu
CiAgICAgICAgIHZhciBsYXN0Q2hpbGQgPSB0aGlzLmNoaWxkcmVuLmxhc3RWYWx1ZTsKLSAgICAg
ICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUoKSA9PT0gTm9kZS5FTEVNRU5U
X05PREUgJiYgKCFsYXN0Q2hpbGQgfHwgIWxhc3RDaGlsZC5fZWxlbWVudENsb3NlVGFnKSkKKyAg
ICAgICAgaWYgKG5vZGUubm9kZVR5cGUoKSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgKCFsYXN0
Q2hpbGQgfHwgIWxhc3RDaGlsZC5fZWxlbWVudENsb3NlVGFnKSkKICAgICAgICAgICAgIHRoaXMu
aW5zZXJ0Q2hpbGRFbGVtZW50KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIHRoaXMuY2hpbGRyZW4u
bGVuZ3RoLCB0cnVlKTsKIAogICAgICAgICAvLyBXZSB3YW50IHRvIHJlc3RvcmUgdGhlIG9yaWdp
bmFsIHNlbGVjdGlvbiBhbmQgdHJlZSBzY3JvbGwgcG9zaXRpb24gYWZ0ZXIgYSBmdWxsIHJlZnJl
c2gsIGlmIHBvc3NpYmxlLgpAQCAtNDE3LDE2ICs0MzEsMTggQEAgV2ViSW5zcGVjdG9yLkRPTVRy
ZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJl
ZUVsZW0KICAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQodGhpcy5leHBhbmRBbGxCdXR0b25F
bGVtZW50Ll9fdHJlZUVsZW1lbnQpOwogCiAgICAgICAgIHZhciBub2RlID0gdGhpcy5yZXByZXNl
bnRlZE9iamVjdDsKLSAgICAgICAgaWYgKCFub2RlLmNoaWxkcmVuKQorICAgICAgICBpZiAoIXRo
aXMuX2hhc1Zpc2libGVDaGlsZHJlbigpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB2
YXIgY2hpbGROb2RlQ291bnQgPSBub2RlLmNoaWxkcmVuLmxlbmd0aDsKKworICAgICAgICB2YXIg
dmlzaWJsZUNoaWxkcmVuID0gdGhpcy5fdmlzaWJsZUNoaWxkcmVuKCk7CisgICAgICAgIHZhciB0
b3RhbENoaWxkcmVuQ291bnQgPSB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoOwogCiAgICAgICAgIC8v
IEluIGNhc2Ugc29tZSBub2RlcyBmcm9tIHRoZSBleHBhbmRlZCByYW5nZSB3ZXJlIHJlbW92ZWQs
IHB1bGwgc29tZSBub2RlcyBmcm9tIHRoZSBjb2xsYXBzZWQgcmFuZ2UgaW50byB0aGUgZXhwYW5k
ZWQgcmFuZ2UgYXQgdGhlIGJvdHRvbS4KLSAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuZXhwYW5k
ZWRDaGlsZENvdW50LCBsaW1pdCA9IE1hdGgubWluKHRoaXMuZXhwYW5kZWRDaGlsZHJlbkxpbWl0
LCBjaGlsZE5vZGVDb3VudCk7IGkgPCBsaW1pdDsgKytpKQotICAgICAgICAgICAgdGhpcy5pbnNl
cnRDaGlsZEVsZW1lbnQobm9kZS5jaGlsZHJlbltpXSwgaSk7CisgICAgICAgIGZvciAodmFyIGkg
PSB0aGlzLmV4cGFuZGVkQ2hpbGRDb3VudCwgbGltaXQgPSBNYXRoLm1pbih0aGlzLmV4cGFuZGVk
Q2hpbGRyZW5MaW1pdCwgdG90YWxDaGlsZHJlbkNvdW50KTsgaSA8IGxpbWl0OyArK2kpCisgICAg
ICAgICAgICB0aGlzLmluc2VydENoaWxkRWxlbWVudCh0b3RhbENoaWxkcmVuQ291bnRbaV0sIGkp
OwogCiAgICAgICAgIHZhciBleHBhbmRlZENoaWxkQ291bnQgPSB0aGlzLmV4cGFuZGVkQ2hpbGRD
b3VudDsKLSAgICAgICAgaWYgKGNoaWxkTm9kZUNvdW50ID4gdGhpcy5leHBhbmRlZENoaWxkQ291
bnQpIHsKKyAgICAgICAgaWYgKHRvdGFsQ2hpbGRyZW5Db3VudCA+IHRoaXMuZXhwYW5kZWRDaGls
ZENvdW50KSB7CiAgICAgICAgICAgICB2YXIgdGFyZ2V0QnV0dG9uSW5kZXggPSBleHBhbmRlZENo
aWxkQ291bnQ7CiAgICAgICAgICAgICBpZiAoIXRoaXMuZXhwYW5kQWxsQnV0dG9uRWxlbWVudCkg
ewogICAgICAgICAgICAgICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJi
dXR0b24iKTsKQEAgLTQ0NCwxNCArNDYwLDE2IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVu
dCA9IGNsYXNzIERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAg
ICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmV4cGFuZEFsbEJ1dHRvbkVsZW1lbnQuX190cmVl
RWxlbWVudC5wYXJlbnQpCiAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcnRDaGlsZCh0aGlzLmV4
cGFuZEFsbEJ1dHRvbkVsZW1lbnQuX190cmVlRWxlbWVudCwgdGFyZ2V0QnV0dG9uSW5kZXgpOwog
Ci0gICAgICAgICAgICB0aGlzLmV4cGFuZEFsbEJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgQWxsIE5vZGVzICglZCBNb3JlKSIpLmZvcm1hdChj
aGlsZE5vZGVDb3VudCAtIGV4cGFuZGVkQ2hpbGRDb3VudCk7CisgICAgICAgICAgICB0aGlzLmV4
cGFuZEFsbEJ1dHRvbkVsZW1lbnQudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlNob3cgQWxsIE5vZGVzICglZCBNb3JlKSIpLmZvcm1hdCh0b3RhbENoaWxkcmVuQ291bnQgLSBl
eHBhbmRlZENoaWxkQ291bnQpOwogICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXhwYW5kQWxsQnV0
dG9uRWxlbWVudCkKICAgICAgICAgICAgIHRoaXMuZXhwYW5kQWxsQnV0dG9uRWxlbWVudCA9IG51
bGw7CiAgICAgfQogCiAgICAgaGFuZGxlTG9hZEFsbENoaWxkcmVuKCkKICAgICB7Ci0gICAgICAg
IHRoaXMuZXhwYW5kZWRDaGlsZHJlbkxpbWl0ID0gTWF0aC5tYXgodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5jaGlsZE5vZGVDb3VudCwgdGhpcy5leHBhbmRlZENoaWxkcmVuTGltaXQgKyBXZWJJbnNw
ZWN0b3IuRE9NVHJlZUVsZW1lbnQuSW5pdGlhbENoaWxkcmVuTGltaXQpOworICAgICAgICB2YXIg
dmlzaWJsZUNoaWxkcmVuID0gdGhpcy5fdmlzaWJsZUNoaWxkcmVuKCk7CisgICAgICAgIHZhciB0
b3RhbENoaWxkcmVuQ291bnQgPSB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoOworICAgICAgICB0aGlz
LmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IE1hdGgubWF4KHZpc2libGVDaGlsZHJlbi5sZW5ndGgs
IHRoaXMuZXhwYW5kZWRDaGlsZHJlbkxpbWl0ICsgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50
LkluaXRpYWxDaGlsZHJlbkxpbWl0KTsKICAgICB9CiAKICAgICBvbmV4cGFuZCgpCkBAIC01NzIs
NyArNTkwLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJlZUVs
ZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgaWYgKHRoaXMudHJl
ZU91dGxpbmUuc2VsZWN0ZWRET01Ob2RlKCkgIT09IHRoaXMucmVwcmVzZW50ZWRPYmplY3QpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRP
YmplY3QuaXNJblNoYWRvd1RyZWUoKSkKKyAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmpl
Y3QuaXNJblNoYWRvd1RyZWUoKSB8fCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0LmlzUHNldWRvRWxl
bWVudCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmICh0aGlzLnJl
cHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlKCkgIT09IE5vZGUuRUxFTUVOVF9OT0RFICYmIHRoaXMu
cmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUoKSAhPT0gTm9kZS5URVhUX05PREUpCkBAIC0xMTEx
LDcgKzExMjksNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnQgPSBjbGFzcyBET01UcmVl
RWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlRWxlbQogCiAgICAgICAgIHN3aXRjaCAo
bm9kZS5ub2RlVHlwZSgpKSB7CiAgICAgICAgICAgICBjYXNlIE5vZGUuRE9DVU1FTlRfRlJBR01F
TlRfTk9ERToKLSAgICAgICAgICAgICAgICB2YXIgZnJhZ21lbnRFbGVtZW50ID0gaW5mby50aXRs
ZURPTS5jcmVhdGVDaGlsZCgic3BhbiIsICJ3ZWJraXQtaHRtbC1mcmFnbWVudCIpOworICAgICAg
ICAgICAgICAgIHZhciBmcmFnbWVudEVsZW1lbnQgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxk
KCJzcGFuIiwgImh0bWwtZnJhZ21lbnQiKTsKICAgICAgICAgICAgICAgICBpZiAobm9kZS5pc0lu
U2hhZG93VHJlZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50RWxlbWVudC50ZXh0
Q29udGVudCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hhZG93IENvbnRlbnQiKTsKICAgICAg
ICAgICAgICAgICAgICAgZnJhZ21lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoInNoYWRvdyIpOwpA
QCAtMTEyNSw2ICsxMTQzLDE0IEBAIFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudCA9IGNsYXNz
IERPTVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlRyZWVFbGVtCiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05PREU6CisgICAg
ICAgICAgICAgICAgaWYgKG5vZGUuaXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgdmFyIHBzZXVkb0VsZW1lbnQgPSBpbmZvLnRpdGxlRE9NLmNyZWF0ZUNoaWxkKCJzcGFu
IiwgImh0bWwtcHNldWRvLWVsZW1lbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgcHNldWRvRWxl
bWVudC50ZXh0Q29udGVudCA9ICI6OiIgKyBub2RlLnBzZXVkb1R5cGUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgaW5mby50aXRsZURPTS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiXHUyMDBCIikpOworICAgICAgICAgICAgICAgICAgICBpbmZvLmhhc0NoaWxkcmVuID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKwogICAg
ICAgICAgICAgICAgIHZhciB0YWdOYW1lID0gbm9kZS5ub2RlTmFtZUluQ29ycmVjdENhc2UoKTsK
ICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZWxlbWVudENsb3NlVGFnKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX2J1aWxkVGFnRE9NKGluZm8udGl0bGVET00sIHRhZ05hbWUsIHRydWUs
IHRydWUpOwpAQCAtMTIzNCw2ICsxMjYwLDggQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50
ID0gY2xhc3MgRE9NVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KIAog
ICAgICAgICBpZiAobm9kZS5oYXNTaGFkb3dSb290cygpKQogICAgICAgICAgICAgcmV0dXJuIG51
bGw7CisgICAgICAgIGlmIChub2RlLmhhc1BzZXVkb0VsZW1lbnRzKCkpCisgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKIAogICAgICAgICB2YXIgc2libGluZyA9IGZpcnN0Q2hpbGQubmV4dFNpYmxp
bmc7CiAgICAgICAgIHJldHVybiBzaWJsaW5nID8gbnVsbCA6IGZpcnN0Q2hpbGQ7CkBAIC0xMjQ5
LDYgKzEyNzcsNDEgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50ID0gY2xhc3MgRE9NVHJl
ZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuVHJlZUVsZW0KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIAorICAgIF9oYXNWaXNpYmxlQ2hpbGRyZW4oKQorICAgIHsKKyAgICAgICAg
dmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OworCisgICAgICAgIGlmICh0aGlzLl9z
aG93SW5saW5lVGV4dChub2RlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICBpZiAobm9kZS5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgaWYgKG5vZGUuaGFzUHNldWRvRWxlbWVudHMoKSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBfdmlzaWJsZUNoaWxk
cmVuKCkKKyAgICB7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdDsK
KworICAgICAgICB2YXIgdmlzaWJsZUNoaWxkcmVuID0gW107CisKKyAgICAgICAgdmFyIGJlZm9y
ZVBzZXVkb0VsZW1lbnQgPSBub2RlLmJlZm9yZVBzZXVkb0VsZW1lbnQoKTsKKyAgICAgICAgaWYg
KGJlZm9yZVBzZXVkb0VsZW1lbnQpCisgICAgICAgICAgICB2aXNpYmxlQ2hpbGRyZW4ucHVzaChi
ZWZvcmVQc2V1ZG9FbGVtZW50KTsKKworICAgICAgICBpZiAobm9kZS5jaGlsZE5vZGVDb3VudCkK
KyAgICAgICAgICAgIHZpc2libGVDaGlsZHJlbiA9IHZpc2libGVDaGlsZHJlbi5jb25jYXQobm9k
ZS5jaGlsZHJlbik7CisKKyAgICAgICAgdmFyIGFmdGVyUHNldWRvRWxlbWVudCA9IG5vZGUuYWZ0
ZXJQc2V1ZG9FbGVtZW50KCk7CisgICAgICAgIGlmIChhZnRlclBzZXVkb0VsZW1lbnQpCisgICAg
ICAgICAgICB2aXNpYmxlQ2hpbGRyZW4ucHVzaChhZnRlclBzZXVkb0VsZW1lbnQpOworCisgICAg
ICAgIHJldHVybiB2aXNpYmxlQ2hpbGRyZW47CisgICAgfQorCiAgICAgcmVtb3ZlKCkKICAgICB7
CiAgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5wYXJlbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01UcmVlRWxlbWVudFBh
dGhDb21wb25lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuanMKaW5kZXggMjEwOTRlMy4uNmY2ZTAzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9N
VHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5qcwpAQCAtMzQs
OCArMzQsMTMgQEAgV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudCA9IGNs
YXNzIERPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudCBleHQKIAogICAgICAgICBzd2l0Y2ggKG5v
ZGUubm9kZVR5cGUoKSkgewogICAgICAgICBjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOgotICAgICAg
ICAgICAgY2xhc3NOYW1lID0gV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVu
dC5ET01FbGVtZW50SWNvblN0eWxlQ2xhc3NOYW1lOwotICAgICAgICAgICAgdGl0bGUgPSBXZWJJ
bnNwZWN0b3IuZGlzcGxheU5hbWVGb3JOb2RlKG5vZGUpOworICAgICAgICAgICAgaWYgKG5vZGUu
aXNQc2V1ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBjbGFzc05hbWUgPSBXZWJJbnNw
ZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LkRPTVBzZXVkb0VsZW1lbnRJY29uU3R5
bGVDbGFzc05hbWU7CisgICAgICAgICAgICAgICAgdGl0bGUgPSAiOjoiICsgbm9kZS5wc2V1ZG9U
eXBlKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNsYXNzTmFtZSA9
IFdlYkluc3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQuRE9NRWxlbWVudEljb25T
dHlsZUNsYXNzTmFtZTsKKyAgICAgICAgICAgICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5kaXNw
bGF5TmFtZUZvck5vZGUobm9kZSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK
IAogICAgICAgICBjYXNlIE5vZGUuVEVYVF9OT0RFOgpAQCAtMTI5LDYgKzEzNCw3IEBAIFdlYklu
c3BlY3Rvci5ET01UcmVlRWxlbWVudFBhdGhDb21wb25lbnQgPSBjbGFzcyBET01UcmVlRWxlbWVu
dFBhdGhDb21wb25lbnQgZXh0CiB9OwogCiBXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRo
Q29tcG9uZW50LkRPTUVsZW1lbnRJY29uU3R5bGVDbGFzc05hbWUgPSAiZG9tLWVsZW1lbnQtaWNv
biI7CitXZWJJbnNwZWN0b3IuRE9NVHJlZUVsZW1lbnRQYXRoQ29tcG9uZW50LkRPTVBzZXVkb0Vs
ZW1lbnRJY29uU3R5bGVDbGFzc05hbWUgPSAiZG9tLXBzZXVkby1lbGVtZW50LWljb24iOwogV2Vi
SW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5ET01UZXh0Tm9kZUljb25TdHls
ZUNsYXNzTmFtZSA9ICJkb20tdGV4dC1ub2RlLWljb24iOwogV2ViSW5zcGVjdG9yLkRPTVRyZWVF
bGVtZW50UGF0aENvbXBvbmVudC5ET01Db21tZW50SWNvblN0eWxlQ2xhc3NOYW1lID0gImRvbS1j
b21tZW50LWljb24iOwogV2ViSW5zcGVjdG9yLkRPTVRyZWVFbGVtZW50UGF0aENvbXBvbmVudC5E
T01Eb2N1bWVudFR5cGVJY29uU3R5bGVDbGFzc05hbWUgPSAiZG9tLWRvY3VtZW50LXR5cGUtaWNv
biI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9ET01UcmVlT3V0bGluZS5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9ET01UcmVlT3V0bGluZS5jc3MKaW5kZXggYjliY2EyMi4uZjBlZmY0NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRE9NVHJlZU91
dGxpbmUuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVPdXRsaW5lLmNzcwpAQCAtMTU2LDEyICsxNTYsMTYgQEAKICAgICB3aGl0ZS1zcGFj
ZTogcHJlLXdyYXA7CiB9CiAKKy5kb20tdHJlZS1vdXRsaW5lIC5odG1sLXBzZXVkby1lbGVtZW50
IHsKKyAgICBjb2xvcjogaHNsKDAsIDU5JSwgNDElKTsKK30KKworLmRvbS10cmVlLW91dGxpbmUg
Lmh0bWwtZnJhZ21lbnQuc2hhZG93IHsKKyAgICBvcGFjaXR5OiAwLjY7Cit9CisKIC5zaG93aW5n
LWZpbmQtYmFubmVyIC5kb20tdHJlZS1vdXRsaW5lIC5zZWFyY2gtaGlnaGxpZ2h0IHsKICAgICBj
b2xvcjogYmxhY2s7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogaHNsYSg1MywgODMlLCA1MyUsIDAu
Mik7CiAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGhzbCg0NywgODIlLCA2MCUpOwogfQot
Ci0ud2Via2l0LWh0bWwtZnJhZ21lbnQuc2hhZG93IHsKLSAgICBvcGFjaXR5OiAwLjY7Ci19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9ET01U
cmVlT3V0bGluZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RPTVRyZWVPdXRsaW5lLmpzCmluZGV4IGZhN2U1MjYuLjMzYTUwNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVPdXRsaW5lLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RPTVRyZWVP
dXRsaW5lLmpzCkBAIC0yMjgsMTQgKzIyOCwxNSBAQCBXZWJJbnNwZWN0b3IuRE9NVHJlZU91dGxp
bmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVlT3V0bAog
ICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLmZpbmRUcmVlRWxlbWVudChub2RlKTsKICAg
ICAgICAgaWYgKHRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuIHRyZWVFbGVtZW50Owor
CiAgICAgICAgIGlmICghbm9kZS5wYXJlbnROb2RlKQogICAgICAgICAgICAgcmV0dXJuIG51bGw7
CiAKICAgICAgICAgdHJlZUVsZW1lbnQgPSB0aGlzLmNyZWF0ZVRyZWVFbGVtZW50Rm9yKG5vZGUu
cGFyZW50Tm9kZSk7Ci0gICAgICAgIGlmICh0cmVlRWxlbWVudCAmJiB0cmVlRWxlbWVudC5zaG93
Q2hpbGQobm9kZS5pbmRleCkpCi0gICAgICAgICAgICByZXR1cm4gdHJlZUVsZW1lbnQuY2hpbGRy
ZW5bbm9kZS5pbmRleF07CisgICAgICAgIGlmICghdHJlZUVsZW1lbnQpCisgICAgICAgICAgICBy
ZXR1cm4gbnVsbDsKIAotICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIHRyZWVF
bGVtZW50LnNob3dDaGlsZE5vZGUobm9kZSk7CiAgICAgfQogCiAgICAgc2V0IHN1cHByZXNzUmV2
ZWFsQW5kU2VsZWN0KHgpCkBAIC01NDgsMTIgKzU0OSwxOSBAQCBXZWJJbnNwZWN0b3IuRE9NVHJl
ZU91dGxpbmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVl
T3V0bAogCiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAKLSAgICAgICAgdmFyIHNl
bGVjdGVkTm9kZSA9IHRoaXMuc2VsZWN0ZWRUcmVlRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdDsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQoc2VsZWN0ZWROb2RlKTsKLSAgICAgICAgaWYgKCFzZWxl
Y3RlZE5vZGUpCisgICAgICAgIHZhciBlZmZlY3RpdmVOb2RlID0gdGhpcy5zZWxlY3RlZFRyZWVF
bGVtZW50LnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICBjb25zb2xlLmFzc2VydChlZmZlY3Rp
dmVOb2RlKTsKKyAgICAgICAgaWYgKCFlZmZlY3RpdmVOb2RlKQogICAgICAgICAgICAgcmV0dXJu
OwogCi0gICAgICAgIGlmIChzZWxlY3RlZE5vZGUubm9kZVR5cGUoKSAhPT0gTm9kZS5FTEVNRU5U
X05PREUpCisgICAgICAgIGlmIChlZmZlY3RpdmVOb2RlLmlzUHNldWRvRWxlbWVudCgpKSB7Cisg
ICAgICAgICAgICBlZmZlY3RpdmVOb2RlID0gZWZmZWN0aXZlTm9kZS5wYXJlbnROb2RlOworICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoZWZmZWN0aXZlTm9kZSk7CisgICAgICAgICAgICBpZiAo
IWVmZmVjdGl2ZU5vZGUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9ICAgICAg
ICAgICAgCisKKyAgICAgICAgaWYgKGVmZmVjdGl2ZU5vZGUubm9kZVR5cGUoKSAhPT0gTm9kZS5F
TEVNRU5UX05PREUpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZnVuY3Rpb24gcmVz
b2x2ZWROb2RlKG9iamVjdCkKQEAgLTU3OSw3ICs1ODcsNyBAQCBXZWJJbnNwZWN0b3IuRE9NVHJl
ZU91dGxpbmUgPSBjbGFzcyBET01UcmVlT3V0bGluZSBleHRlbmRzIFdlYkluc3BlY3Rvci5UcmVl
T3V0bAogICAgICAgICAgICAgb2JqZWN0LnJlbGVhc2UoKTsKICAgICAgICAgfQogCi0gICAgICAg
IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucmVzb2x2ZU5vZGUoc2VsZWN0ZWROb2RlLCAiIiwg
cmVzb2x2ZWROb2RlKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5yZXNvbHZl
Tm9kZShlZmZlY3RpdmVOb2RlLCAiIiwgcmVzb2x2ZWROb2RlKTsKICAgICB9CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9QYXRoQ29t
cG9uZW50SWNvbnMuY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUGF0aENvbXBvbmVudEljb25zLmNzcwppbmRleCA0ZDM4NzdiLi41ZTY4OTFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9QYXRoQ29tcG9u
ZW50SWNvbnMuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1BhdGhDb21wb25lbnRJY29ucy5jc3MKQEAgLTM1LDYgKzM1LDEwIEBACiAgICAgY29udGVu
dDogdXJsKC4uL0ltYWdlcy9ET01FbGVtZW50LnN2Zyk7CiB9CiAKKy5kb20tcHNldWRvLWVsZW1l
bnQtaWNvbiAuaWNvbiB7CisgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9Qc2V1ZG9FbGVtZW50
LnN2Zyk7Cit9CisKIC5kb20tdGV4dC1ub2RlLWljb24gLmljb24gewogICAgIGNvbnRlbnQ6IHVy
bCguLi9JbWFnZXMvRE9NVGV4dE5vZGUuc3ZnKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3Nz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURl
dGFpbHNQYW5lbC5jc3MKaW5kZXggMTdhYjk5ODQuLmE2NGNmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFu
ZWwuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1
bGVzU3R5bGVEZXRhaWxzUGFuZWwuY3NzCkBAIC01Miw2ICs1MiwxMCBAQAogICAgIG9wYWNpdHk6
IDAuNTsKIH0KIAorLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgLnJ1bGVzID4g
KjpmaXJzdC1jaGlsZDptYXRjaGVzKC5uZXctcnVsZSkgeworICAgIG1hcmdpbi10b3A6IDhweDsK
K30KKwogLnNpZGViYXIgPiAucGFuZWwuZGV0YWlscy5jc3Mtc3R5bGUgPiAuY29udGVudC5maWx0
ZXItaW4tcHJvZ3Jlc3MgLmxhYmVsIHsKICAgICBwYWRkaW5nLXRvcDogMTVweDsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>