<?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>235274</bug_id>
          
          <creation_ts>2022-01-15 14:51:51 -0800</creation_ts>
          <short_desc>Web Inspector: add a switch to control whether breakpoint evaluations (condition, ignore count, actions) are also affected by script blackboxing</short_desc>
          <delta_ts>2022-03-15 19:05:54 -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>WebKit 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>
          
          <blocked>237936</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1831268</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-15 14:51:51 -0800</bug_when>
    <thetext>being able to defer breakpoint evaluations until the next actual pause can sometimes be far more useful than doing the breakpoint evaluations at the breakpoint&apos;s original location</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831269</commentid>
    <comment_count>1</comment_count>
      <attachid>449273</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-15 14:53:36 -0800</bug_when>
    <thetext>Created attachment 449273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831270</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-01-15 14:54:43 -0800</bug_when>
    <thetext>This patch modifies the inspector protocol. Please ensure that any frontend changes appropriately use feature checks for new protocol features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831271</commentid>
    <comment_count>3</comment_count>
      <attachid>449274</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-15 14:59:03 -0800</bug_when>
    <thetext>Created attachment 449274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831272</commentid>
    <comment_count>4</comment_count>
      <attachid>449275</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-15 15:03:17 -0800</bug_when>
    <thetext>Created attachment 449275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831282</commentid>
    <comment_count>5</comment_count>
      <attachid>449278</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-15 18:28:46 -0800</bug_when>
    <thetext>Created attachment 449278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831284</commentid>
    <comment_count>6</comment_count>
      <attachid>449278</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-15 18:32:03 -0800</bug_when>
    <thetext>Comment on attachment 449278
Patch

oops wrong bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832905</commentid>
    <comment_count>7</comment_count>
      <attachid>449275</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-21 15:11:17 -0800</bug_when>
    <thetext>Comment on attachment 449275
Patch

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

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:884
&gt;      bool pauseNow = m_pauseAtNextOpportunity;

I think this might need to be updated to include `m_pauseOnStepNext` and `m_pauseOnStepOut` (and maybe `m_pauseOnCallFrame` for Step out) as possible signals to `pauseNow` as well.  We should also probably only consider `m_pauseAtNextOpportunity` if we&apos;re not `m_afterBlackboxedScript` either.  That&apos;s the only way for sure to know if we&apos;re stepping vs pausing because of a breakpoint.

We shouldn&apos;t have to worry about things like &quot;Continue to location&quot; because that breakpoint is not configurable, and therefore can&apos;t be marked as auto-continue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832907</commentid>
    <comment_count>8</comment_count>
      <attachid>449700</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-21 15:17:31 -0800</bug_when>
    <thetext>Created attachment 449700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833039</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-22 14:52:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/87930496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835745</commentid>
    <comment_count>10</comment_count>
      <attachid>449700</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-01-31 15:29:04 -0800</bug_when>
    <thetext>Comment on attachment 449700
Patch

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

Frontend changes LGTM with a nit and a question. Backend changes also look good to me, but is outside of my comfort zone to &quot;r+&quot;.

&gt; Source/JavaScriptCore/debugger/Debugger.cpp:890
&gt; +        if (!afterBlackboxedScript)
&gt; +            didPauseForStep = true;

Nit: `didPauseForStep = !afterBlackboxedScript;`?

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:1265
&gt; +        // COMPATIBILITY (iOS 15): Debugger.setBlackboxBreakpointEvaluations did not exist yet.

Nit: &quot;iOS 15.4&quot;

&gt; Source/WebInspectorUI/UserInterface/Views/BlackboxSettingsView.js:113
&gt; +        let blackboxBreakpointEvaluationsExplanationCheckbox = blackboxBreakpointEvaluationsExplanationLabel.appendChild(document.createElement(&quot;input&quot;));

Not sure if there is a precedent for what I&apos;m about to suggest, but we should consider not showing this option when inspecting a pre-iOS 15.4 target. It might be a bit odd for this setting to only sometimes be here, but if someone is using the setting they might be more confused if the setting is here but doesn&apos;t do anything. At least if the setting they previously toggled while inspecting a different target is not there in an instance targeting a pre-iOS 15.4 debuggable it might provide a better clue as to why breakpoints aren&apos;t working they way the user might have expected. Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837644</commentid>
    <comment_count>11</comment_count>
      <attachid>449700</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-02-04 16:34:43 -0800</bug_when>
    <thetext>Comment on attachment 449700
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/BlackboxSettingsView.js:113
&gt;&gt; +        let blackboxBreakpointEvaluationsExplanationCheckbox = blackboxBreakpointEvaluationsExplanationLabel.appendChild(document.createElement(&quot;input&quot;));
&gt; 
&gt; Not sure if there is a precedent for what I&apos;m about to suggest, but we should consider not showing this option when inspecting a pre-iOS 15.4 target. It might be a bit odd for this setting to only sometimes be here, but if someone is using the setting they might be more confused if the setting is here but doesn&apos;t do anything. At least if the setting they previously toggled while inspecting a different target is not there in an instance targeting a pre-iOS 15.4 debuggable it might provide a better clue as to why breakpoints aren&apos;t working they way the user might have expected. Thoughts?

Oh wow oops yeah I totally forgot to add a compatibility guard 🤦‍♂️  Good catch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837649</commentid>
    <comment_count>12</comment_count>
      <attachid>450950</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-02-04 16:43:46 -0800</bug_when>
    <thetext>Created attachment 450950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847252</commentid>
    <comment_count>13</comment_count>
      <attachid>450950</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-03-01 16:42:43 -0800</bug_when>
    <thetext>Comment on attachment 450950
Patch

I&apos;ve re-reviewed since you&apos;ve been having trouble finding a reviewer. rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847302</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-01 22:43:42 -0800</bug_when>
    <thetext>Committed r290720 (247967@main): &lt;https://commits.webkit.org/247967@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450950.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449273</attachid>
            <date>2022-01-15 14:53:36 -0800</date>
            <delta_ts>2022-01-15 14:59:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>235274.diff</filename>
            <type>text/plain</type>
            <size>55653</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkYmRmMTFjY2M5ZGUuLjczYTQ4NjZhYzI1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIyLTAxLTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBhZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9p
bnQgZXZhbHVhdGlvbnMgKGNvbmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxz
byBhZmZlY3RlZCBieSBzY3JpcHQgYmxhY2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorCiAyMDIyLTAxLTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtDb2NvYV0gclZGQygpIGlzbid0IGNhbGxlZCBmb3IgaW5pdGlhbCB2aWRlbyBsb2Fk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY3ODljZWQ2ZGNkMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCbGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMjQgQEAKK1Rl
c3RzIERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25k
aXRpb24uRmFsc2UKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZSIpJy4uLgorQmxhY2tib3hp
bmcgJ3VuYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGNvbmRpdGlvbl9m
YWxzZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2ludCBpbiAnVW5ibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyLmpzJy4uLgor
VW5ibGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4uCitFdmFsdWF0aW5nICdVbmJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0
ZXIoMiknLi4uCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5l
ci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lcicuCitQQVNTOiBTaG91bGQg
bm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRD
b25kaXRpb25fRmFsc2VfT3V0ZXInLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIu
c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuVW5ibGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9ucy5CcmVha3BvaW50Q29uZGl0aW9uLlRydWUKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlw
dHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9U
cnVlIiknLi4uCitCbGFja2JveGluZyAndW5ibGFja2JveGJyZWFrcG9pbnRldmFsdWF0aW9uc19i
cmVha3BvaW50Y29uZGl0aW9uX3RydWVfaW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFrcG9pbnQg
aW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9U
cnVlX0lubmVyLmpzJy4uLgorVW5ibGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4u
CitFdmFsdWF0aW5nICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRD
b25kaXRpb25fVHJ1ZV9PdXRlcigyKScuLi4KKworUEFVU0VEOiAnQmxhY2tib3hlZFNjcmlwdCcg
YXQgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9U
cnVlX091dGVyOjM6NCcuCit7CisgICJvcmlnaW5hbFJlYXNvbiI6ICJCcmVha3BvaW50IiwKKyAg
Im9yaWdpbmFsRGF0YSI6IHsKKyAgICAiYnJlYWtwb2ludElkIjogIlVuYmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzOjI6MCIKKyAg
fQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJlc3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdlIHZh
bHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzJworUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAn
VW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVf
SW5uZXInLgorUEFTUzogU2hvdWxkIHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5VbmJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uUGF1c2UKK0V2YWx1YXRp
bmcgJ2NyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludEFjdGlvbl9QYXVzZSIpJy4uLgorQmxhY2tib3hpbmcgJ3VuYmxhY2tib3hicmVha3BvaW50
ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGFjdGlvbl9wYXVzZV9pbm5lci5qcycuLi4KK1NldHRpbmcg
YnJlYWtwb2ludCBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX1BhdXNlX0lubmVyLmpzJy4uLgorVW5ibGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1
YXRpb25zLi4uCitFdmFsdWF0aW5nICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXIoMiknLi4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRT
Y3JpcHQnIGF0ICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fUGF1c2VfT3V0ZXI6Mzo0Jy4KK3sKKyAgIm9yaWdpbmFsUmVhc29uIjogIkJyZWFrcG9pbnQi
LAorICAib3JpZ2luYWxEYXRhIjogeworICAgICJicmVha3BvaW50SWQiOiAiVW5ibGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyLmpzOjI6MCIK
KyAgfQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJlc3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdl
IHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJl
YWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4g
J1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9J
bm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXInLgorCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLkF1dG9Db250aW51ZQor
RXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZSIpJy4uLgorQmxhY2tib3hpbmcgJ3VuYmxh
Y2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGFjdGlvbl9hdXRvY29udGludWVf
aW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIuanMnLi4uCitV
bmJsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcgJ1VuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVf
T3V0ZXIoMiknLi4uCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1Vu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGlu
dWVfSW5uZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyJy4KK1BB
U1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXInLgorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZQorRXZhbHVhdGlu
ZyAnY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dENvbmRpdGlvbl9GYWxzZSIpJy4uLgorQmxhY2tib3hpbmcgJ2JsYWNrYm94YnJlYWtwb2ludGV2
YWx1YXRpb25zX2JyZWFrcG9pbnRjb25kaXRpb25fZmFsc2VfaW5uZXIuanMnLi4uCitTZXR0aW5n
IGJyZWFrcG9pbnQgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRD
b25kaXRpb25fRmFsc2VfSW5uZXIuanMnLi4uCitCbGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1
YXRpb25zLi4uCitFdmFsdWF0aW5nICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyKDIpJy4uLgorUEFTUzogU2hvdWxkIGNoYW5nZSB2
YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX0ZhbHNlX091dGVyLmpzJworUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAn
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9J
bm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyJy4KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24uVHJ1ZQorRXZhbHVh
dGluZyAnY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludENvbmRpdGlvbl9UcnVlIiknLi4uCitCbGFja2JveGluZyAnYmxhY2tib3hicmVha3BvaW50
ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGNvbmRpdGlvbl90cnVlX2lubmVyLmpzJy4uLgorU2V0dGlu
ZyBicmVha3BvaW50IGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
Q29uZGl0aW9uX1RydWVfSW5uZXIuanMnLi4uCitCbGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1
YXRpb25zLi4uCitFdmFsdWF0aW5nICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIoMiknLi4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRT
Y3JpcHQnIGF0ICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0
aW9uX1RydWVfT3V0ZXI6Mzo0Jy4KK3sKKyAgIm9yaWdpbmFsUmVhc29uIjogIkJyZWFrcG9pbnQi
LAorICAib3JpZ2luYWxEYXRhIjogeworICAgICJicmVha3BvaW50SWQiOiAiQmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzOjI6MCIK
KyAgfQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJlc3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdl
IHZhbHVlIG9mICd4JyBpbnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4g
J0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9J
bm5lcicuCitQQVNTOiBTaG91bGQgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLlBhdXNlCitFdmFsdWF0aW5nICdj
cmVhdGVTY3JpcHRzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0
aW9uX1BhdXNlIiknLi4uCitCbGFja2JveGluZyAnYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlv
bnNfYnJlYWtwb2ludGFjdGlvbl9wYXVzZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2lu
dCBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVz
ZV9Jbm5lci5qcycuLi4KK0JsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2
YWx1YXRpbmcgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
UGF1c2VfT3V0ZXIoMiknLi4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRTY3JpcHQnIGF0ICdCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyOjM6
NCcuCit7CisgICJvcmlnaW5hbFJlYXNvbiI6ICJCcmVha3BvaW50IiwKKyAgIm9yaWdpbmFsRGF0
YSI6IHsKKyAgICAiYnJlYWtwb2ludElkIjogIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIuanM6MjowIgorICB9Cit9CitSZXN1bWluZy4u
LgorUEFTUzogUmVzdW1lZC4KK1BBU1M6IFNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lk
ZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9P
dXRlci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXInLgorUEFTUzogU2hvdWxkIG5v
dCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlv
bl9QYXVzZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5C
cmVha3BvaW50QWN0aW9uLkF1dG9Db250aW51ZQorRXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygi
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGlu
dWUiKScuLi4KK0JsYWNrYm94aW5nICdibGFja2JveGJyZWFrcG9pbnRldmFsdWF0aW9uc19icmVh
a3BvaW50YWN0aW9uX2F1dG9jb250aW51ZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2lu
dCBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRv
Q29udGludWVfSW5uZXIuanMnLi4uCitCbGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25z
Li4uCitFdmFsdWF0aW5nICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcigyKScuLi4KK1BBU1M6IFNob3VsZCBjaGFuZ2UgdmFs
dWUgb2YgJ3gnIGluc2lkZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGlu
ICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250
aW51ZV9Jbm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcicuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCbGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4wMmFkYjAyYTg3ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuaHRtbApAQCAtMCwwICsxLDMxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90
b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjcmVhdGVTY3JpcHRz
KGlkKSB7CisgICAgZXZhbCgKK2AKK3dpbmRvdy4ke2lkfV9Jbm5lciA9IGZ1bmN0aW9uICR7aWR9
X0lubmVyKHgpIHsKKyAgICByZXR1cm4geCAqIHg7Cit9OworLy8jIHNvdXJjZVVSTD0ke2lkfV9J
bm5lci5qcworYAorICAgICk7CisKKyAgICBldmFsKAorYAord2luZG93LiR7aWR9X091dGVyID0g
ZnVuY3Rpb24gJHtpZH1fT3V0ZXIoeCkgeworICAgIGxldCBpbm5lclJlc3VsdCA9ICR7aWR9X0lu
bmVyKHgpOworICAgIHJldHVybiBpbm5lclJlc3VsdCAqIHg7Cit9OworLy8jIHNvdXJjZVVSTD0k
e2lkfV9PdXRlci5qcworYAorICAgICk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFBy
b3RvY29sVGVzdC5kZWJ1ZygpOworICAgIGxldCBzdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyIpOwor
CisgICAgbGV0IHNvdXJjZVVSTFJlZ0V4cFF1ZXJpZXMgPSBuZXcgTWFwOworICAgIGxldCBwYXVz
ZWRGdW5jdGlvbk5hbWVzID0gW107CisKKyAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9KTsKKwor
ICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2Vk
Il0gPSBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgIGxldCBzb3VyY2VVUkwgPSBtZXNzYWdl
LnBhcmFtcy5zb3VyY2VVUkw7CisgICAgICAgIGZvciAobGV0IFtyZWdFeHAsIGNhbGxiYWNrXSBv
ZiBzb3VyY2VVUkxSZWdFeHBRdWVyaWVzKSB7CisgICAgICAgICAgICBpZiAocmVnRXhwLnRlc3Qo
c291cmNlVVJMKSkgeworICAgICAgICAgICAgICAgIHNvdXJjZVVSTFJlZ0V4cFF1ZXJpZXMuZGVs
ZXRlKHJlZ0V4cCk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soc291cmNlVVJMKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZl
bnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAg
ICAgUHJvdG9jb2xUZXN0Lm5ld2xpbmUoKTsKKworICAgICAgICBsZXQgdG9wQ2FsbEZyYW1lID0g
bWVzc2FnZS5wYXJhbXMuY2FsbEZyYW1lc1swXTsKKyAgICAgICAgbGV0IGZ1bmN0aW9uTmFtZSA9
IHRvcENhbGxGcmFtZS5mdW5jdGlvbk5hbWU7CisgICAgICAgIGlmIChmdW5jdGlvbk5hbWUgIT09
ICJnbG9iYWwgY29kZSIpIHsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coYFBBVVNFRDog
JyR7bWVzc2FnZS5wYXJhbXMucmVhc29ufScgYXQgJyR7ZnVuY3Rpb25OYW1lfToke3RvcENhbGxG
cmFtZS5sb2NhdGlvbi5saW5lTnVtYmVyfToke3RvcENhbGxGcmFtZS5sb2NhdGlvbi5jb2x1bW5O
dW1iZXJ9Jy5gKTsKKyAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtcy5kYXRhKQorICAgICAg
ICAgICAgICAgIFByb3RvY29sVGVzdC5qc29uKG1lc3NhZ2UucGFyYW1zLmRhdGEpOworICAgICAg
ICAgICAgcGF1c2VkRnVuY3Rpb25OYW1lcy5wdXNoKGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIH0K
KworICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJSZXN1bWluZy4uLiIpOworICAgICAgICBJbnNw
ZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZChgRGVidWdnZXIucmVzdW1lYCwge30sIEluc3BlY3Rv
clByb3RvY29sLmNoZWNrRm9yRXJyb3IpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JQcm90b2Nv
bC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnJlc3VtZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsK
KyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlJlc3VtZWQuIik7CisgICAgfTsKKworICAgIGFz
eW5jIGZ1bmN0aW9uIHNldEJsYWNrYm94KHVybCwgb3B0aW9ucyA9IHt9KSB7CisgICAgICAgIGlm
ICghb3B0aW9ucy5jYXNlU2Vuc2l0aXZlKQorICAgICAgICAgICAgdXJsID0gdXJsLnRvTG93ZXJD
YXNlKCk7CisKKyAgICAgICAgUHJvdG9jb2xUZXN0LmxvZyhgQmxhY2tib3hpbmcgJHtvcHRpb25z
LmNhc2VTZW5zaXRpdmUgPyAiKGNhc2Ugc2Vuc2l0aXZlKSAiIDogIiJ9JHtvcHRpb25zLmlzUmVn
ZXggPyAiKHJlZ2V4KSAiIDogIiJ9JyR7dXJsfScuLi5gKTsKKyAgICAgICAgYXdhaXQgSW5zcGVj
dG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhvZDogIkRlYnVnZ2Vy
LnNldFNob3VsZEJsYWNrYm94VVJMIiwKKyAgICAgICAgICAgIHBhcmFtczoge3VybCwgc2hvdWxk
QmxhY2tib3g6IHRydWUsIC4uLm9wdGlvbnN9LAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBh
c3luYyBmdW5jdGlvbiBzZXRCcmVha3BvaW50KHVybCwgbGluZU51bWJlciwgb3B0aW9ucykgewor
ICAgICAgICBQcm90b2NvbFRlc3QubG9nKGBTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJyR7dXJsfScu
Li5gKTsKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsKKyAg
ICAgICAgICAgIG1ldGhvZDogIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCIsCisgICAgICAg
ICAgICBwYXJhbXM6IHt1cmwsIGxpbmVOdW1iZXIsIG9wdGlvbnN9LAorICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cyhibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucykgeworICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKGAke2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zID8gIkJsYWNrYm94aW5nIiA6ICJV
bmJsYWNrYm94aW5nIn0gcHJlYWtwb2luZyBldmFsdWF0aW9ucy4uLmApOworICAgICAgICByZXR1
cm4gSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhvZDog
IkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zIiwKKyAgICAgICAgICAg
IHBhcmFtczoge2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zfSwKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gbGlzdGVuRm9yU291cmNlUGFyc2VkKHNvdXJjZVVS
TFJlZ0V4cCkgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4geworICAgICAgICAgICAgc291cmNlVVJMUmVnRXhwUXVlcmllcy5zZXQoc291cmNlVVJMUmVn
RXhwLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24g
ZXZhbHVhdGUoZXhwcmVzc2lvbikgeworICAgICAgICBQcm90b2NvbFRlc3QubG9nKGBFdmFsdWF0
aW5nICcke2V4cHJlc3Npb259Jy4uLmApOworICAgICAgICByZXR1cm4gSW5zcGVjdG9yUHJvdG9j
b2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhvZDogIlJ1bnRpbWUuZXZhbHVhdGUi
LAorICAgICAgICAgICAgcGFyYW1zOiB7ZXhwcmVzc2lvbn0sCisgICAgICAgIH0pOworICAgIH0K
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7Cisg
ICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQ
cm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5u
ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVy
XC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlIilgKSwK
KyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNv
dXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJM
LCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiISh4ID0gMykiLAorICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cyhmYWxzZSk7CisKKyAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBldmFsdWF0ZShgVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091
dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9yKHJl
c3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJlc3Vs
dC52YWx1ZSwgKDMgKiAzKSAqIDIsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUg
J1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxz
ZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBh
dXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBp
biAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0Zh
bHNlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVz
ZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4g
J1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxz
ZV9PdXRlcicuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24u
VHJ1ZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291
cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAg
ICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAg
ICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAg
ZXZhbHVhdGUoYGNyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludENvbmRpdGlvbl9UcnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAg
ICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2Fp
dCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29u
ZGl0aW9uOiAiKHggPSAzKSIsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNl
dEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGZhbHNlKTsKKworICAgICAgICAgICAgbGV0
IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcigyKWApOworICAgICAgICAgICAgSW5zcGVj
dG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgzICogMykgKiAyLCAiU2hvdWxk
IGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAg
UHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lu
bmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lcicuIik7CisgICAgICAgICAgICBQcm90
b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlciIp
LCAiU2hvdWxkIHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcicuIik7CisKKyAgICAgICAgfSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMu
QnJlYWtwb2ludEFjdGlvbi5QYXVzZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAg
ICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNl
LmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXJcLmpzJC8p
LAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5ibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyXC5qcyQvKSwKKyAg
ICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlIilgKSwKKyAgICAgICAgICAgIF0p
OworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAg
ICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAg
ICAgICAgICAgYWN0aW9uczogWworICAgICAgICAgICAgICAgICAgICB7dHlwZTogImV2YWx1YXRl
IiwgZGF0YTogInggPSAzIn0sCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoZmFsc2Up
OworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUoYFVuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcigyKWApOwor
ICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgz
ICogMykgKiAyLCAiU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIuanMnIik7
CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRGdW5jdGlvbk5h
bWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRB
Y3Rpb25fUGF1c2VfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lcicuIik7CisgICAg
ICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1
ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1
c2VfT3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcicuIik7CisgICAgICAgIH0sCisg
ICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dl
ci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uQXV0b0NvbnRpbnVlIiwKKyAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBbaW5uZXJTb3VyY2VVUkwsIG91dGVyU291cmNlVVJM
XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQ
YXJzZWQoL1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9B
dXRvQ29udGludWVfSW5uZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJj
ZVBhcnNlZCgvVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9u
X0F1dG9Db250aW51ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAgZXZhbHVhdGUoYGNy
ZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9BdXRvQ29udGludWUiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3
YWl0IHNldEJsYWNrYm94KGlubmVyU291cmNlVVJMKTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJy
ZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAgICAgICAgICAgICBhY3Rpb25zOiBb
CisgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAieCA9IDMifSwK
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIGF1dG9Db250aW51ZTogdHJ1ZSwK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMoZmFsc2UpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZh
bHVhdGUoYFVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9B
dXRvQ29udGludWVfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmNo
ZWNrRm9yRXJyb3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RFcXVh
bChyZXN1bHQucmVzdWx0LnZhbHVlLCAoMyAqIDMpICogMiwgIlNob3VsZCBjaGFuZ2UgdmFsdWUg
b2YgJ3gnIGluc2lkZSAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIi
KSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXInLiIpOworICAgICAgICAgICAgUHJv
dG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVf
T3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXInLiIpOworICAgICAgICB9
LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVi
dWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZSIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0g
PSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFy
c2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0Zh
bHNlX0lubmVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQo
L0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2Vf
T3V0ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGV2YWx1YXRlKGBjcmVhdGVTY3JpcHRzKCJC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlIilg
KSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5l
clNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNl
VVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiISh4ID0gMykiLAorICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucyh0cnVlKTsKKworICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091
dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9yKHJl
c3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJlc3Vs
dC52YWx1ZSwgKDIgKiAyKSAqIDMsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUg
J0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2Vf
T3V0ZXIuanMnIik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVz
ZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19C
cmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lu
bmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRGdW5j
dGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX0ZhbHNlX091dGVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyJy4i
KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24uVHJ1ZSIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRl
clNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVu
Rm9yU291cmNlUGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
Q29uZGl0aW9uX1RydWVfSW5uZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNv
dXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRp
dGlvbl9UcnVlX091dGVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRl
U2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlv
bl9UcnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFj
a2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlu
bmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiKHggPSAzKSIs
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZh
bHVhdGUoYEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25f
VHJ1ZV9PdXRlcigyKWApOworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JF
cnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3Vs
dC5yZXN1bHQudmFsdWUsICgyICogMikgKiAzLCAiU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcg
aW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9u
X1RydWVfT3V0ZXIuanMnIik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxz
ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2Ug
aW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1
ZV9Jbm5lcicuIik7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVzZWRG
dW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIiKSwgIlNob3VsZCBwYXVzZSBpbiAnQmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyJy4iKTsK
KyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uUGF1c2UiLAorICAgICAgICBh
c3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IFtpbm5lclNvdXJjZVVSTCwgb3V0ZXJTb3Vy
Y2VVUkxdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGxpc3RlbkZvclNv
dXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlv
bl9QYXVzZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFy
c2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNl
X091dGVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygi
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZSIpYCks
CisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3goaW5uZXJT
b3VyY2VVUkwpOworICAgICAgICAgICAgYXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNvdXJjZVVS
TCwgMiwgeworICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsKKyAgICAgICAgICAgICAgICAgICAg
e3R5cGU6ICJldmFsdWF0ZSIsIGRhdGE6ICJ4ID0gMyJ9LAorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVh
dGUoYEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2Vf
T3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmNoZWNrRm9yRXJyb3Io
cmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RFcXVhbChyZXN1bHQucmVz
dWx0LnZhbHVlLCAoMiAqIDIpICogMywgIlNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lk
ZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9P
dXRlci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNl
ZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXInLiIp
OworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRydWUocGF1c2VkRnVuY3Rpb25OYW1l
cy5pbmNsdWRlcygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlv
bl9QYXVzZV9PdXRlciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcicuIik7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1
Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLkF1dG9Db250aW51ZSIsCisgICAgICAgIGFzeW5j
IHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVS
TF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNl
UGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1
dG9Db250aW51ZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNl
UGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1
dG9Db250aW51ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAgZXZhbHVhdGUoYGNyZWF0
ZVNjcmlwdHMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
QXV0b0NvbnRpbnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBz
ZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3Bv
aW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgYWN0aW9uczogWworICAg
ICAgICAgICAgICAgICAgICB7dHlwZTogImV2YWx1YXRlIiwgZGF0YTogInggPSAzIn0sCisgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICBhdXRvQ29udGludWU6IHRydWUsCisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUo
YEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRp
bnVlX091dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVy
cm9yKHJlc3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0
LnJlc3VsdC52YWx1ZSwgKDIgKiAyKSAqIDMsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBp
bnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0
b0NvbnRpbnVlX091dGVyLmpzJyIpOworCisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0
RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiQmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIiKSwgIlNob3VsZCBu
b3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fQXV0b0NvbnRpbnVlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBl
Y3RGYWxzZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlciIpLCAiU2hvdWxk
IG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9BdXRvQ29udGludWVfT3V0ZXInLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAg
c3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIERlYnVnZ2VyLnNldEJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IDk2ZmM1ZTIyYTI5MC4uNjAwOWQ4MjkxYzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMi0wMS0xNCAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGEgc3dpdGNoIHRv
IGNvbnRyb2wgd2hldGhlciBicmVha3BvaW50IGV2YWx1YXRpb25zIChjb25kaXRpb24sIGlnbm9y
ZSBjb3VudCwgYWN0aW9ucykgYXJlIGFsc28gYWZmZWN0ZWQgYnkgc2NyaXB0IGJsYWNrYm94aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyNzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWluZyBh
YmxlIHRvIGRlZmVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgdW50aWwgdGhlIG5leHQgYWN0dWFs
IHBhdXNlIGNhbiBzb21ldGltZXMgYmUgZmFyCisgICAgICAgIG1vcmUgdXNlZnVsIHRoYW4gZG9p
bmcgdGhlIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgYXQgdGhlIGJyZWFrcG9pbnQncyBvcmlnaW5h
bCBsb2NhdGlvbi4KKworICAgICAgICBBcyBhbiBleGFtcGxlLCBjb25maWd1cmluZyB0aGUgQWxs
IEV2ZW50cyBicmVha3BvaW50IHdpdGggYSBgY29uc29sZS50cmFjZSgpYCBhY3Rpb24gYW5kCisg
ICAgICAgIGF1dG8tY29udGludWUgZW5hYmxlZCB3b3VsZCBub3QgcHJvdmlkZSBtdWNoIHVzZWZ1
bCBpbmZvcm1hdGlvbiB3aXRob3V0IGFsc28gYmxhY2tib3hpbmcKKyAgICAgICAgYnJlYWtwb2lu
dCBldmFsdWF0aW9ucyBhcyB0aGUgb3JpZ2luYWwgcGF1c2UgbG9jYXRpb24gb2YgdGhlIEFsbCBF
dmVudHMgYnJlYWtwb2ludCBpcyBvbiB0aGUKKyAgICAgICAgZmlyc3QgbGluZSBvZiB0aGUgZXZl
bnQgaGFuZGxlciwgbWVhbmluZyB0aGF0IGlmIHRoZSBzY3JpcHQgY29udGFpbmluZyB0aGUgZXZl
bnQgaGFuZGxlciBpcworICAgICAgICBibGFja2JveGVkIHRoZW4gdGhlIGBjb25zb2xlLnRyYWNl
KClgIHdvdWxkIHN0aWxsIG9ubHkgc2hvdyB0aGF0IGxvY2F0aW9uIGV2ZW4gdGhvdWdoIHRoZQor
ICAgICAgICBTb3VyY2VzIFRhYiB3b3VsZCBzaG93IHRoZSBmaXJzdCBsaW5lIG9mIGNvZGUgb3V0
c2lkZSBvZiB0aGF0IHNjcmlwdCAoZHVlIHRvIHRoZSBibGFja2JveCkuCisgICAgICAgIEJlaW5n
IGFibGUgdG8gYWxzbyBibGFja2JveCBicmVha3BvaW50IGV2YWx1YXRpb25zIHdvdWxkIGluc3Rl
YWQgY2F1c2UgdGhlIGBjb25zb2xlLnRyYWNlKClgCisgICAgICAgIGFjdGlvbiB0byBoYXZlIHRo
ZSBzYW1lIG91dHB1dCBhcyB0aGUgU291cmNlcyBUYWIsIHNpbmNlIGl0J3MgZXZhbHVhdGlvbiB3
b3VsZCBiZSBkZWZlcnJlZAorICAgICAgICB1bnRpbCBleGVjdXRpb24gYWN0dWFsbHkgcGF1c2Vk
LCB3aGljaCBpcyBmdXJ0aGVyIGluc2lkZSB0aGUgZXZlbnQgaGFuZGxlci4KKworICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OkRlYnVnZ2Vy
KToKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OmRpZEhpdEJyZWFrcG9pbnQpOgorICAgICAgICAo
SlNDOjpEZWJ1Z2dlcjo6ZXZhbHVhdGVCcmVha3BvaW50Q29uZGl0aW9uKToKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXI6OmNvbnRpbnVlUHJvZ3JhbSk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpw
YXVzZUlmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OmRpZEV4ZWN1dGVQcm9ncmFt
KToKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zKTogQWRkZWQuCisgICAgICAgIEtlZXAgdHJhY2sgb2YgZXZlcnkgYEJyZWFrcG9pbnRgIHdh
bnRzIHRvIHBhdXNlIGJ1dCBpcyBkZWZlcnJlZCBkdWUgdG8gYmxhY2tib3hpbmcuCisgICAgICAg
IERlcGVuZGluZyBvbiB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgYXJlIGFsc28gYmxh
Y2tib3hlZCAoYmFzZWQgb24gdGhlIGZsYWcgc2V0IHZpYQorICAgICAgICB0aGUgcGlwaW5nIGNv
ZGUvbG9naWMgYmVsb3cpLCBjaGVjayBpZiB0aGUgc2NyaXB0IGF0dGVtcHRpbmcgdG8gYmUgcGF1
c2VkIGluIGlzIGJsYWNrYm94ZWQKKyAgICAgICAgYmVmb3JlIG9yIGFmdGVyIGhhbmRsaW5nIGJy
ZWFrcG9pbnQgZXZhbHVhdGlvbnMuCisgICAgICAgIFNpZGUgZWZmZWN0cyBvZiB0aGlzIGNoYW5n
ZSBhcmU6CisgICAgICAgIC0gYnJlYWtwb2ludCBjb25kaXRpb25zIGFyZSBub3cgZXZhbHVhdGVk
IHJpZ2h0IGJlZm9yZSB0aGF0IGJyZWFrcG9pbnQncyBhY3Rpb25zLCBpbnN0ZWFkIG9mCisgICAg
ICAgICAgZXZhbHVhdGluZyBhbGwgYnJlYWtwb2ludCBjb25kaXRpb25zIGJlZm9yZSBhbGwgYnJl
YWtwb2ludCBhY3Rpb25zCisgICAgICAgIC0gaWYgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBhcmUg
YmxhY2tib3hlZCwgbW9yZSB0aGFuIHR3byBicmVha3BvaW50cyBjYW4gbm93IGJlIGV2YWx1YXRl
ZAorICAgICAgICBkdXJpbmcgYSBzaW5nbGUgcGF1c2UgYXR0ZW1wdCBkZXBlbmRpbmcgb24gaG93
IG1heSBkZWZlcnJhbHMgKHdpdGggYnJlYWtwb2ludHMpIGhhcHBlbmVkCisKKyAgICAgICAgKiBk
ZWJ1Z2dlci9EZWJ1Z2dlci5oOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6T2JzZXJ2ZXI6OmRp
ZERlZmVyQnJlYWtwb2ludFBhdXNlKTogQWRkZWQuCisgICAgICAgIEFkZCBhIHdheSB0byBub3Rp
ZnkgYEluc3BlY3RvckRlYnVnZ2VyQWdlbnRgIG9mIGRlZmVycmVkIGJyZWFrcG9pbnQgcGF1c2Vz
IHNvIHRoYXQgdGhlCisgICAgICAgIGNvcnJlY3QgYG9yaWdpbmFsUmVhc29uYCB3aWxsIGJlIHVz
ZWQgYWZ0ZXIgYSBkZWZlcnJlZCBwYXVzZS4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2Nv
bC9EZWJ1Z2dlci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKTogQWRkZWQuCisgICAgICAgIChJbnNw
ZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZERlZmVyQnJlYWtwb2ludFBhdXNlKTog
QWRkZWQuCisgICAgICAgIEFkZCBhIGBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc2Ag
Y29tbWFuZCB0aGF0IHBhc3NlcyBkaXJlY3RseSB0byBgRGVidWdnZXJgLgorCiAyMDIyLTAxLTE0
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgaXNKSVRQ
QyBmYXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAppbmRl
eCAwYmNlMmE2ODk4OTMuLjNjY2M2NWY2ODM2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC0xMTMsNiArMTEzLDcgQEAgRGVidWdnZXI6OlByb2Zp
bGluZ0NsaWVudDo6flByb2ZpbGluZ0NsaWVudCgpCiAKIERlYnVnZ2VyOjpEZWJ1Z2dlcihWTSYg
dm0pCiAgICAgOiBtX3ZtKHZtKQorICAgICwgbV9ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cyhmYWxzZSkKICAgICAsIG1fcGF1c2VBdE5leHRPcHBvcnR1bml0eShmYWxzZSkKICAgICAsIG1f
cGFzdEZpcnN0RXhwcmVzc2lvbkluU3RhdGVtZW50KGZhbHNlKQogICAgICwgbV9pc1BhdXNlZChm
YWxzZSkKQEAgLTU0Myw3ICs1NDQsNyBAQCBib29sIERlYnVnZ2VyOjpyZW1vdmVCcmVha3BvaW50
KEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQpCiAgICAgcmV0dXJuIHJlbW92ZWQ7CiB9CiAKLVJlZlB0
cjxCcmVha3BvaW50PiBEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2ludChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTb3VyY2VJRCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3Np
dGlvbikKK1JlZlB0cjxCcmVha3BvaW50PiBEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2ludChTb3Vy
Y2VJRCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBpZiAo
IW1fYnJlYWtwb2ludHNBY3RpdmF0ZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTY1
LDExICs1NjYsOCBAQCBSZWZQdHI8QnJlYWtwb2ludD4gRGVidWdnZXI6OmRpZEhpdEJyZWFrcG9p
bnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cgogCiAgICAgICAgIC8vIFNpbmNl
IGZyb250ZW5kIHRydW5jYXRlcyB0aGUgaW5kZW50LCB0aGUgZmlyc3Qgc3RhdGVtZW50IGluIGEg
bGluZSBtdXN0IG1hdGNoIHRoZSBicmVha3BvaW50IChsaW5lLDApLgogICAgICAgICBBU1NFUlQo
dGhpcyA9PSBtX2N1cnJlbnRDYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5nbG9iYWxPYmplY3QoKS0+
ZGVidWdnZXIoKSk7Ci0gICAgICAgIGlmICgobGluZSAhPSBtX2xhc3RFeGVjdXRlZExpbmUgJiYg
bGluZSA9PSBicmVha0xpbmUgJiYgIWJyZWFrQ29sdW1uKSB8fCAobGluZSA9PSBicmVha0xpbmUg
JiYgY29sdW1uID09IGJyZWFrQ29sdW1uKSkgewotICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQt
PnNob3VsZFBhdXNlKCp0aGlzLCBnbG9iYWxPYmplY3QpKQotICAgICAgICAgICAgICAgIHJldHVy
biBicmVha3BvaW50LmNvcHlSZWYoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Cisg
ICAgICAgIGlmICgobGluZSAhPSBtX2xhc3RFeGVjdXRlZExpbmUgJiYgbGluZSA9PSBicmVha0xp
bmUgJiYgIWJyZWFrQ29sdW1uKSB8fCAobGluZSA9PSBicmVha0xpbmUgJiYgY29sdW1uID09IGJy
ZWFrQ29sdW1uKSkKKyAgICAgICAgICAgIHJldHVybiBicmVha3BvaW50LmNvcHlSZWYoKTsKICAg
ICB9CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTYwNiwxNCArNjA0LDEzIEBAIHZvaWQgRGVi
dWdnZXI6OmNsZWFyQnJlYWtwb2ludHMoKQogCiBib29sIERlYnVnZ2VyOjpldmFsdWF0ZUJyZWFr
cG9pbnRDb25kaXRpb24oQnJlYWtwb2ludCYgYnJlYWtwb2ludCwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKKyAgICBBU1NFUlQobV9pc1BhdXNlZCk7CisgICAgQVNTRVJUKGlzQXR0
YWNoZWQoZ2xvYmFsT2JqZWN0KSk7CisKICAgICBjb25zdCBTdHJpbmcmIGNvbmRpdGlvbiA9IGJy
ZWFrcG9pbnQuY29uZGl0aW9uKCk7CiAgICAgaWYgKGNvbmRpdGlvbi5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gV2UgY2Fubm90IHN0b3AgaW4gdGhlIGRlYnVnZ2Vy
IHdoaWxlIGV4ZWN1dGluZyBjb25kaXRpb24gY29kZSwKLSAgICAvLyBzbyBtYWtlIGl0IGxvb2tz
IGxpa2UgdGhlIGRlYnVnZ2VyIGlzIGFscmVhZHkgcGF1c2VkLgotICAgIFRlbXBvcmFyeVBhdXNl
ZFN0YXRlIHBhdXNlZFN0YXRlKCp0aGlzKTsKLQogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhj
ZXB0aW9uOwogICAgIERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSA9IGN1cnJl
bnREZWJ1Z2dlckNhbGxGcmFtZSgpOwogICAgIEpTT2JqZWN0KiBzY29wZUV4dGVuc2lvbk9iamVj
dCA9IG1fY2xpZW50ID8gbV9jbGllbnQtPmRlYnVnZ2VyU2NvcGVFeHRlbnNpb25PYmplY3QoKnRo
aXMsIGdsb2JhbE9iamVjdCwgZGVidWdnZXJDYWxsRnJhbWUpIDogbnVsbHB0cjsKQEAgLTc4MSw2
ICs3NzgsNyBAQCB2b2lkIERlYnVnZ2VyOjpicmVha1Byb2dyYW0oUmVmUHRyPEJyZWFrcG9pbnQ+
JiYgc3BlY2lhbEJyZWFrcG9pbnQpCiB2b2lkIERlYnVnZ2VyOjpjb250aW51ZVByb2dyYW0oKQog
ewogICAgIGNsZWFyTmV4dFBhdXNlU3RhdGUoKTsKKyAgICBtX2RlZmVycmVkQnJlYWtwb2ludHMu
Y2xlYXIoKTsKIAogICAgIGlmICghbV9pc1BhdXNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtODg2
LDc3ICs4ODQsMTA0IEBAIHZvaWQgRGVidWdnZXI6OnBhdXNlSWZOZWVkZWQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKICAgICBib29sIHBhdXNlTm93ID0gbV9wYXVzZUF0TmV4dE9wcG9y
dHVuaXR5OwogICAgIHBhdXNlTm93IHw9IChtX3BhdXNlT25DYWxsRnJhbWUgPT0gbV9jdXJyZW50
Q2FsbEZyYW1lKTsKIAotICAgIGJvb2wgZGlkUGF1c2VGb3JTdGVwID0gcGF1c2VOb3c7CisgICAg
Ym9vbCBhZnRlckJsYWNrYm94ZWRTY3JpcHQgPSBtX2FmdGVyQmxhY2tib3hlZFNjcmlwdDsKKyAg
ICBib29sIGRpZFBhdXNlRm9yU3RlcCA9IHBhdXNlTm93ICYmICFhZnRlckJsYWNrYm94ZWRTY3Jp
cHQ7CiAKICAgICBUZXh0UG9zaXRpb24gcG9zaXRpb24gPSBEZWJ1Z2dlckNhbGxGcmFtZTo6cG9z
aXRpb25Gb3JDYWxsRnJhbWUodm0sIG1fY3VycmVudENhbGxGcmFtZSk7CiAKLSAgICBhdXRvIGJy
ZWFrcG9pbnQgPSBkaWRIaXRCcmVha3BvaW50KGdsb2JhbE9iamVjdCwgc291cmNlSUQsIHBvc2l0
aW9uKTsKLSAgICBpZiAoYnJlYWtwb2ludCkKKyAgICBpZiAoYXV0byBicmVha3BvaW50ID0gZGlk
SGl0QnJlYWtwb2ludChzb3VyY2VJRCwgcG9zaXRpb24pKSB7CiAgICAgICAgIHBhdXNlTm93ID0g
dHJ1ZTsKKyAgICAgICAgbV9kZWZlcnJlZEJyZWFrcG9pbnRzLmFkZCh7IGJyZWFrcG9pbnQucmVs
ZWFzZU5vbk51bGwoKSwgQnJlYWtwb2ludFR5cGU6OkxpbmVDb2x1bW4gfSk7CisgICAgfQogCiAg
ICAgLy8gU3BlY2lhbCBicmVha3BvaW50cyBhcmUgb25seSBnaXZlbiBvbmUgb3Bwb3J0dW5pdHkg
dG8gcGF1c2UuCi0gICAgYXV0byBzcGVjaWFsQnJlYWtwb2ludCA9IFdURk1vdmUobV9zcGVjaWFs
QnJlYWtwb2ludCk7Ci0gICAgaWYgKHNwZWNpYWxCcmVha3BvaW50ICYmIHNwZWNpYWxCcmVha3Bv
aW50LT5zaG91bGRQYXVzZSgqdGhpcywgZ2xvYmFsT2JqZWN0KSkKKyAgICBpZiAobV9zcGVjaWFs
QnJlYWtwb2ludCkgewogICAgICAgICBwYXVzZU5vdyA9IHRydWU7CisgICAgICAgIG1fZGVmZXJy
ZWRCcmVha3BvaW50cy5hZGQoeyBtX3NwZWNpYWxCcmVha3BvaW50LnJlbGVhc2VOb25OdWxsKCks
IEJyZWFrcG9pbnRUeXBlOjpTcGVjaWFsIH0pOworICAgIH0KIAogICAgIG1fbGFzdEV4ZWN1dGVk
TGluZSA9IHBvc2l0aW9uLm1fbGluZS56ZXJvQmFzZWRJbnQoKTsKICAgICBpZiAoIXBhdXNlTm93
KQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIGFmdGVyQmxhY2tib3hlZFNjcmlwdCA9IG1f
YWZ0ZXJCbGFja2JveGVkU2NyaXB0OwogICAgIGNsZWFyTmV4dFBhdXNlU3RhdGUoKTsKIAogICAg
IC8vIE1ha2Ugc3VyZSB3ZSBhcmUgbm90IGdvaW5nIHRvIHBhdXNlIGFnYWluIG9uIGJyZWFrcG9p
bnQgYWN0aW9ucyBieQogICAgIC8vIHJlc2V0aW5nIHRoZSBwYXVzZSBzdGF0ZSBiZWZvcmUgZXhl
Y3V0aW5nIGFueSBicmVha3BvaW50IGFjdGlvbnMuCiAgICAgVGVtcG9yYXJ5UGF1c2VkU3RhdGUg
cGF1c2VkU3RhdGUoKnRoaXMpOwogCi0gICAgaWYgKGJyZWFrcG9pbnQgfHwgc3BlY2lhbEJyZWFr
cG9pbnQpIHsKLSAgICAgICAgLy8gTm90ZSB0aGF0IHRoZSBhY3Rpb25zIGNhbiBwb3RlbnRpYWxs
eSBzdG9wIHRoZSBkZWJ1Z2dlciwgc28gd2UgbmVlZCB0byBjaGVjayB0aGF0Ci0gICAgICAgIC8v
IHdlIHN0aWxsIGhhdmUgYSBjdXJyZW50IGNhbGwgZnJhbWUgd2hlbiB3ZSBnZXQgYmFjay4KKyAg
ICBhdXRvIHNob3VsZERlZmVyUGF1c2UgPSBbJl0gKCkgeworICAgICAgICBpZiAoYmxhY2tib3hU
eXBlSXRlcmF0b3IgPT0gbV9ibGFja2JveGVkU2NyaXB0cy5lbmQoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgICAgICBib29sIGF1dG9Db250aW51ZSA9IGZhbHNlOworICAgICAg
ICBpZiAoYmxhY2tib3hUeXBlSXRlcmF0b3ItPnZhbHVlICE9IEJsYWNrYm94VHlwZTo6RGVmZXJy
ZWQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKGJyZWFrcG9pbnQp
IHsKLSAgICAgICAgICAgIGV2YWx1YXRlQnJlYWtwb2ludEFjdGlvbnMoKmJyZWFrcG9pbnQsIGds
b2JhbE9iamVjdCk7CisgICAgICAgIG1fYWZ0ZXJCbGFja2JveGVkU2NyaXB0ID0gdHJ1ZTsKIAor
ICAgICAgICBpZiAobV9wYXVzaW5nQnJlYWtwb2ludElEICE9IG5vQnJlYWtwb2ludElEKSB7Cisg
ICAgICAgICAgICBkaXNwYXRjaEZ1bmN0aW9uVG9PYnNlcnZlcnMoWyZdIChPYnNlcnZlciYgb2Jz
ZXJ2ZXIpIHsKKyAgICAgICAgICAgICAgICBvYnNlcnZlci5kaWREZWZlckJyZWFrcG9pbnRQYXVz
ZShtX3BhdXNpbmdCcmVha3BvaW50SUQpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
IG1fcGF1c2luZ0JyZWFrcG9pbnRJRCA9IG5vQnJlYWtwb2ludElEOworICAgICAgICB9CisKKyAg
ICAgICAgc2NoZWR1bGVQYXVzZUF0TmV4dE9wcG9ydHVuaXR5KCk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH07CisKKyAgICBpZiAobV9ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyAm
JiBzaG91bGREZWZlclBhdXNlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9kZWZl
cnJlZEJyZWFrcG9pbnRzLmlzRW1wdHkoKSkgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPEJyZWFr
cG9pbnRJRD4gcGF1c2luZ0JyZWFrcG9pbnRJRDsKKyAgICAgICAgYm9vbCBoYXNFdmFsdWF0ZWRT
cGVjaWFsQnJlYWtwb2ludCA9IGZhbHNlOworICAgICAgICBib29sIHNob3VsZENvbnRpbnVlID0g
dHJ1ZTsKKworICAgICAgICBmb3IgKGF1dG8mJiBbZGVmZXJyZWRCcmVha3BvaW50LCB0eXBlXSA6
IHN0ZDo6ZXhjaGFuZ2UobV9kZWZlcnJlZEJyZWFrcG9pbnRzLCB7IH0pKSB7CisgICAgICAgICAg
ICAvLyBOb3RlIHRoYXQgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBjYW4gcG90ZW50aWFsbHkgc3Rv
cCB0aGUgZGVidWdnZXIsIHNvIHdlIG5lZWQgdG8KKyAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQg
d2Ugc3RpbGwgaGF2ZSBhIGN1cnJlbnQgY2FsbCBmcmFtZSBhZnRlciBldmFsdWF0aW5nIHRoZW0u
CisKKyAgICAgICAgICAgIGJvb2wgc2hvdWxkUGF1c2UgPSBkZWZlcnJlZEJyZWFrcG9pbnQtPnNo
b3VsZFBhdXNlKCp0aGlzLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgaWYgKCFtX2N1cnJl
bnRDYWxsRnJhbWUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCFz
aG91bGRQYXVzZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgZXZh
bHVhdGVCcmVha3BvaW50QWN0aW9ucyhkZWZlcnJlZEJyZWFrcG9pbnQsIGdsb2JhbE9iamVjdCk7
CiAgICAgICAgICAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgICAgIGlmIChicmVha3BvaW50LT5pc0F1dG9Db250aW51ZSgpKQot
ICAgICAgICAgICAgICAgIGF1dG9Db250aW51ZSA9IHRydWU7CisgICAgICAgICAgICBpZiAoZGVm
ZXJyZWRCcmVha3BvaW50LT5pc0F1dG9Db250aW51ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICBzaG91bGRDb250aW51ZSA9IGZhbHNlOworCisgICAgICAgICAg
ICAvLyBPbmx5IHByb3BhZ2F0ZSBgUGF1c2VkRm9yQnJlYWtwb2ludGAgdG8gdGhlIGBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50YCBpZiB0aGUgZmlyc3QKKyAgICAgICAgICAgIC8vIGxpbmU6Y29sdW1u
IGJyZWFrcG9pbnQgaGl0IHdhcyBiZWZvcmUgdGhlIGZpcnN0IHNwZWNpYWwgYnJlYWtwb2ludCwg
YXMgdGhlIGxhdHRlcgorICAgICAgICAgICAgLy8gd291bGQgYWxyZWFkeSBoYXZlIHNldCBhIHVu
aXF1ZSByZWFzb24gYmVmb3JlIGF0dGVtcHRpbmcgdG8gcGF1c2UuCisgICAgICAgICAgICBpZiAo
dHlwZSA9PSBCcmVha3BvaW50VHlwZTo6U3BlY2lhbCkKKyAgICAgICAgICAgICAgICBoYXNFdmFs
dWF0ZWRTcGVjaWFsQnJlYWtwb2ludCA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmICghaGFz
RXZhbHVhdGVkU3BlY2lhbEJyZWFrcG9pbnQgJiYgIXBhdXNpbmdCcmVha3BvaW50SUQpCisgICAg
ICAgICAgICAgICAgcGF1c2luZ0JyZWFrcG9pbnRJRCA9IGRlZmVycmVkQnJlYWtwb2ludC0+aWQo
KTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChzcGVjaWFsQnJlYWtwb2ludCkgewotICAgICAg
ICAgICAgZXZhbHVhdGVCcmVha3BvaW50QWN0aW9ucygqc3BlY2lhbEJyZWFrcG9pbnQsIGdsb2Jh
bE9iamVjdCk7Ci0KLSAgICAgICAgICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKHNwZWNpYWxCcmVha3BvaW50LT5p
c0F1dG9Db250aW51ZSgpKQotICAgICAgICAgICAgICAgIGF1dG9Db250aW51ZSA9IHRydWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpZiAoYXV0b0NvbnRpbnVlKSB7CisgICAgICAgIGlmIChzaG91
bGRDb250aW51ZSkgewogICAgICAgICAgICAgaWYgKCFkaWRQYXVzZUZvclN0ZXApCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBicmVha3BvaW50ID0gbnVsbHB0cjsKLSAg
ICAgICAgICAgIHNwZWNpYWxCcmVha3BvaW50ID0gbnVsbHB0cjsKLSAgICAgICAgfSBlbHNlIGlm
IChicmVha3BvaW50KQotICAgICAgICAgICAgbV9wYXVzaW5nQnJlYWtwb2ludElEID0gYnJlYWtw
b2ludC0+aWQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChwYXVzaW5nQnJlYWtwb2ludElEKQorICAg
ICAgICAgICAgbV9wYXVzaW5nQnJlYWtwb2ludElEID0gKnBhdXNpbmdCcmVha3BvaW50SUQ7CiAg
ICAgfQogCi0gICAgaWYgKGJsYWNrYm94VHlwZUl0ZXJhdG9yICE9IG1fYmxhY2tib3hlZFNjcmlw
dHMuZW5kKCkgJiYgYmxhY2tib3hUeXBlSXRlcmF0b3ItPnZhbHVlID09IEJsYWNrYm94VHlwZTo6
RGVmZXJyZWQpIHsKLSAgICAgICAgbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQgPSB0cnVlOwotICAg
ICAgICBzY2hlZHVsZVBhdXNlQXROZXh0T3Bwb3J0dW5pdHkoKTsKKyAgICBpZiAoIW1fYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnMgJiYgc2hvdWxkRGVmZXJQYXVzZSgpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgfQogCiAgICAgewogICAgICAgICBhdXRvIHJlYXNvbiA9IG1fcmVhc29uRm9y
UGF1c2U7CiAgICAgICAgIGlmIChhZnRlckJsYWNrYm94ZWRTY3JpcHQpCiAgICAgICAgICAgICBy
ZWFzb24gPSBQYXVzZWRBZnRlckJsYWNrYm94ZWRTY3JpcHQ7Ci0gICAgICAgIGVsc2UgaWYgKGJy
ZWFrcG9pbnQpCisgICAgICAgIGVsc2UgaWYgKG1fcGF1c2luZ0JyZWFrcG9pbnRJRCkKICAgICAg
ICAgICAgIHJlYXNvbiA9IFBhdXNlZEZvckJyZWFrcG9pbnQ7CiAgICAgICAgIFBhdXNlUmVhc29u
RGVjbGFyYXRpb24gcmF1c2VSZWFzb25EZWNsYXJhdGlvbigqdGhpcywgcmVhc29uKTsKIApAQCAt
MTE1NCw4ICsxMTc5LDEwIEBAIHZvaWQgRGVidWdnZXI6OmRpZEV4ZWN1dGVQcm9ncmFtKENhbGxG
cmFtZSogY2FsbEZyYW1lKQogICAgIHVwZGF0ZUNhbGxGcmFtZShsZXhpY2FsR2xvYmFsT2JqZWN0
Rm9yQ2FsbEZyYW1lKG1fdm0sIGNhbGxlckZyYW1lKSwgY2FsbGVyRnJhbWUsIE5vUGF1c2UpOwog
CiAgICAgLy8gRG8gbm90IGNvbnRpbnVlIHN0ZXBwaW5nIGludG8gYW4gdW5rbm93biBmdXR1cmUg
cHJvZ3JhbS4KLSAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKKyAgICBpZiAoIW1fY3VycmVu
dENhbGxGcmFtZSkgewogICAgICAgICBjbGVhck5leHRQYXVzZVN0YXRlKCk7CisgICAgICAgIG1f
ZGVmZXJyZWRCcmVha3BvaW50cy5jbGVhcigpOworICAgIH0KIH0KIAogdm9pZCBEZWJ1Z2dlcjo6
Y2xlYXJOZXh0UGF1c2VTdGF0ZSgpCkBAIC0xMjExLDYgKzEyMzgsMTEgQEAgdm9pZCBEZWJ1Z2dl
cjo6c2V0QmxhY2tib3hUeXBlKFNvdXJjZUlEIHNvdXJjZUlELCBzdGQ6Om9wdGlvbmFsPEJsYWNr
Ym94VHlwZT4gdHkKICAgICAgICAgbV9ibGFja2JveGVkU2NyaXB0cy5yZW1vdmUoc291cmNlSUQp
OwogfQogCit2b2lkIERlYnVnZ2VyOjpzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyhi
b29sIGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKQoreworICAgIG1fYmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnMgPSBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uczsKK30KKwog
dm9pZCBEZWJ1Z2dlcjo6Y2xlYXJCbGFja2JveCgpCiB7CiAgICAgbV9ibGFja2JveGVkU2NyaXB0
cy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaAppbmRl
eCA5Mzg4MDIzYTY0MTYuLjdjZmNhOGY1YmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEZWJ1Z2dlclBy
aW1pdGl2ZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAK
QEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZGV0
YWNoKEpTR2xvYmFsT2JqZWN0KiwgUmVhc29uRm9yRGV0YWNoKTsKICAgICBKU19FWFBPUlRfUFJJ
VkFURSBib29sIGlzQXR0YWNoZWQoSlNHbG9iYWxPYmplY3QqKTsKIAorICAgIGVudW0gY2xhc3Mg
QnJlYWtwb2ludFR5cGUgeyBMaW5lQ29sdW1uLCBTcGVjaWFsIH07CiAgICAgYm9vbCByZXNvbHZl
QnJlYWtwb2ludChCcmVha3BvaW50JiwgU291cmNlUHJvdmlkZXIqKTsKICAgICBib29sIHNldEJy
ZWFrcG9pbnQoQnJlYWtwb2ludCYpOwogICAgIGJvb2wgcmVtb3ZlQnJlYWtwb2ludChCcmVha3Bv
aW50Jik7CkBAIC0xMTUsNiArMTE3LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBjbGFzcyBCbGFj
a2JveFR5cGUgeyBEZWZlcnJlZCwgSWdub3JlZCB9OwogICAgIHZvaWQgc2V0QmxhY2tib3hUeXBl
KFNvdXJjZUlELCBzdGQ6Om9wdGlvbmFsPEJsYWNrYm94VHlwZT4pOworICAgIHZvaWQgc2V0Qmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoYm9vbCBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucyk7CiAgICAgdm9pZCBjbGVhckJsYWNrYm94KCk7CiAKICAgICBib29sIGlzUGF1c2VkKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1BhdXNlZDsgfQpAQCAtMTgxLDYgKzE4NCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgdmlydHVhbCB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Mb2coSlNHbG9iYWxPYmplY3Qq
LCBjb25zdCBTdHJpbmcmIC8qIGRhdGEgKi8pIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgYnJl
YWtwb2ludEFjdGlvblNvdW5kKEJyZWFrcG9pbnRBY3Rpb25JRCkgeyB9CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBicmVha3BvaW50QWN0aW9uUHJvYmUoSlNHbG9iYWxPYmplY3QqLCBCcmVha3BvaW50
QWN0aW9uSUQsIHVuc2lnbmVkIC8qIGJhdGNoSWQgKi8sIHVuc2lnbmVkIC8qIHNhbXBsZUlkICov
LCBKU1ZhbHVlIC8qIHJlc3VsdCAqLykgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWREZWZl
ckJyZWFrcG9pbnRQYXVzZShCcmVha3BvaW50SUQpIHsgfQogICAgIH07CiAKICAgICBKU19FWFBP
UlRfUFJJVkFURSB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CkBAIC0yNTcsNyArMjYxLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgRGVidWdnZXImIG1fZGVidWdnZXI7CiAgICAgfTsKIAotICAg
IFJlZlB0cjxCcmVha3BvaW50PiBkaWRIaXRCcmVha3BvaW50KEpTR2xvYmFsT2JqZWN0KiwgU291
cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbiYpOworICAgIFJlZlB0cjxCcmVha3BvaW50PiBkaWRI
aXRCcmVha3BvaW50KFNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24mKTsKIAogICAgIERlYnVn
Z2VyUGFyc2VEYXRhJiBkZWJ1Z2dlclBhcnNlRGF0YShTb3VyY2VJRCwgU291cmNlUHJvdmlkZXIq
KTsKIApAQCAtMjk5LDYgKzMwMyw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDxKU0dsb2JhbE9i
amVjdCo+IG1fZ2xvYmFsT2JqZWN0czsKICAgICBIYXNoTWFwPFNvdXJjZUlELCBEZWJ1Z2dlclBh
cnNlRGF0YSwgV1RGOjpJbnRIYXNoPFNvdXJjZUlEPiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5
SGFzaFRyYWl0czxTb3VyY2VJRD4+IG1fcGFyc2VEYXRhTWFwOwogICAgIEhhc2hNYXA8U291cmNl
SUQsIEJsYWNrYm94VHlwZSwgV1RGOjpJbnRIYXNoPFNvdXJjZUlEPiwgV1RGOjpVbnNpZ25lZFdp
dGhaZXJvS2V5SGFzaFRyYWl0czxTb3VyY2VJRD4+IG1fYmxhY2tib3hlZFNjcmlwdHM7CisgICAg
Ym9vbCBtX2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zIDogMTsKIAogICAgIGJvb2wgbV9w
YXVzZUF0TmV4dE9wcG9ydHVuaXR5IDogMTsKICAgICBib29sIG1fcGF1c2VPblN0ZXBOZXh0IDog
MTsKQEAgLTMyMiw2ICszMjcsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U291cmNlSUQsIExp
bmVUb0JyZWFrcG9pbnRzTWFwLCBXVEY6OkludEhhc2g8U291cmNlSUQ+LCBXVEY6OlVuc2lnbmVk
V2l0aFplcm9LZXlIYXNoVHJhaXRzPFNvdXJjZUlEPj4gbV9icmVha3BvaW50c0ZvclNvdXJjZUlE
OwogICAgIEhhc2hTZXQ8UmVmPEJyZWFrcG9pbnQ+PiBtX2JyZWFrcG9pbnRzOwogICAgIFJlZlB0
cjxCcmVha3BvaW50PiBtX3NwZWNpYWxCcmVha3BvaW50OworICAgIExpc3RIYXNoU2V0PHN0ZDo6
dHVwbGU8UmVmPEJyZWFrcG9pbnQ+LCBCcmVha3BvaW50VHlwZT4+IG1fZGVmZXJyZWRCcmVha3Bv
aW50czsKICAgICBCcmVha3BvaW50SUQgbV9wYXVzaW5nQnJlYWtwb2ludElEOwogCiAgICAgUmVm
UHRyPEJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbEV4Y2VwdGlvbnNCcmVha3BvaW50OwpAQCAtMzQ3
LDMgKzM1MywxMCBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCisKK25hbWVz
cGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OkRlYnVnZ2Vy
OjpCcmVha3BvaW50VHlwZT4gOiBJbnRIYXNoPEpTQzo6RGVidWdnZXI6OkJyZWFrcG9pbnRUeXBl
PiB7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6RGVidWdnZXI6OkJyZWFr
cG9pbnRUeXBlPiA6IFN0cm9uZ0VudW1IYXNoVHJhaXRzPEpTQzo6RGVidWdnZXI6OkJyZWFrcG9p
bnRUeXBlPiB7IH07CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcAppbmRleCBiZTkxMGViMjgyZWUuLmI5ZGEwYzg4ZjYxMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJB
Z2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwNjksNiArMTA2OSwxMyBAQCBib29sIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ6OnNob3VsZEJsYWNrYm94VVJMKGNvbnN0IFN0cmluZyYgdXJsKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9p
ZD4gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMoYm9vbCBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucykKK3sKKyAgICBtX2RlYnVnZ2Vy
LnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zKTsKKworICAgIHJldHVybiB7IH07Cit9CisKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6c2NyaXB0RXhlY3V0aW9uQmxvY2tlZEJ5Q1NQKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZl
VGV4dCkKIHsKICAgICBpZiAobV9kZWJ1Z2dlci5uZWVkc0V4Y2VwdGlvbkNhbGxiYWNrcygpKQpA
QCAtMTMyMSw2ICsxMzI4LDExIEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkQ29u
dGludWUoKQogICAgICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVzdW1lZCgpOwogfQogCit2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZERlZmVyQnJlYWtwb2ludFBhdXNlKEpTQzo6
QnJlYWtwb2ludElEIGJyZWFrcG9pbnRJZCkKK3sKKyAgICB1cGRhdGVQYXVzZVJlYXNvbkFuZERh
dGEoRGVidWdnZXJGcm9udGVuZERpc3BhdGNoZXI6OlJlYXNvbjo6QnJlYWtwb2ludCwgYnVpbGRC
cmVha3BvaW50UGF1c2VSZWFzb24oYnJlYWtwb2ludElkKSk7Cit9CisKIHZvaWQgSW5zcGVjdG9y
RGVidWdnZXJBZ2VudDo6YnJlYWtQcm9ncmFtKERlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpS
ZWFzb24gcmVhc29uLCBSZWZQdHI8SlNPTjo6T2JqZWN0PiYmIGRhdGEsIFJlZlB0cjxKU0M6OkJy
ZWFrcG9pbnQ+JiYgc3BlY2lhbEJyZWFrcG9pbnQpCiB7CiAgICAgdXBkYXRlUGF1c2VSZWFzb25B
bmREYXRhKHJlYXNvbiwgV1RGTW92ZShkYXRhKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmgKaW5kZXggNmE1YTRkZTNkNmUyLi43NDc3YzYzMDI4ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVibGljOgogICAgIFByb3RvY29sOjpFcnJv
clN0cmluZ09yPHZvaWQ+IHNldFBhdXNlRm9ySW50ZXJuYWxTY3JpcHRzKGJvb2wgc2hvdWxkUGF1
c2UpIGZpbmFsOwogICAgIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHN0ZDo6dHVwbGU8UmVmPFBy
b3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+LCBzdGQ6Om9wdGlvbmFsPGJvb2w+IC8qIHdh
c1Rocm93biAqLywgc3RkOjpvcHRpb25hbDxpbnQ+IC8qIHNhdmVkUmVzdWx0SW5kZXggKi8+PiBl
dmFsdWF0ZU9uQ2FsbEZyYW1lKGNvbnN0IFByb3RvY29sOjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lSWQm
LCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4mJiBpbmNsdWRlQ29tbWFuZExpbmVBUEksIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4mJiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5kTXV0ZUNvbnNvbGUsIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4mJiByZXR1cm5CeVZhbHVlLCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgZ2VuZXJhdGVQ
cmV2aWV3LCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgc2F2ZVJlc3VsdCwgc3RkOjpvcHRpb25hbDxi
b29sPiYmIGVtdWxhdGVVc2VyR2VzdHVyZSkgb3ZlcnJpZGU7CiAgICAgUHJvdG9jb2w6OkVycm9y
U3RyaW5nT3I8dm9pZD4gc2V0U2hvdWxkQmxhY2tib3hVUkwoY29uc3QgU3RyaW5nJiB1cmwsIGJv
b2wgc2hvdWxkQmxhY2tib3gsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBjYXNlU2Vuc2l0aXZlLCBz
dGQ6Om9wdGlvbmFsPGJvb2w+JiYgaXNSZWdleCkgZmluYWw7CisgICAgUHJvdG9jb2w6OkVycm9y
U3RyaW5nT3I8dm9pZD4gc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoYm9vbCBibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucykgZmluYWw7CiAKICAgICAvLyBKU0M6OkRlYnVnZ2Vy
OjpDbGllbnQKICAgICBKU0M6OkpTT2JqZWN0KiBkZWJ1Z2dlclNjb3BlRXh0ZW5zaW9uT2JqZWN0
KEpTQzo6RGVidWdnZXImLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpEZWJ1Z2dlckNhbGxG
cmFtZSYpIGZpbmFsOwpAQCAtMTA2LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENv
bnRpbnVlKCkgZmluYWw7CiAgICAgdm9pZCBicmVha3BvaW50QWN0aW9uU291bmQoSlNDOjpCcmVh
a3BvaW50QWN0aW9uSUQpIGZpbmFsOwogICAgIHZvaWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkJyZWFrcG9pbnRBY3Rpb25JRCwgdW5zaWduZWQgYmF0
Y2hJZCwgdW5zaWduZWQgc2FtcGxlSWQsIEpTQzo6SlNWYWx1ZSBzYW1wbGUpIGZpbmFsOworICAg
IHZvaWQgZGlkRGVmZXJCcmVha3BvaW50UGF1c2UoSlNDOjpCcmVha3BvaW50SUQpIGZpbmFsOwog
CiAgICAgYm9vbCBpc1BhdXNlZCgpIGNvbnN0OwogICAgIGJvb2wgYnJlYWtwb2ludHNBY3RpdmUo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvRGVidWdnZXIuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvRGVidWdnZXIuanNvbgppbmRleCA1MmI3MzExNzM3ZjMuLjIwOWYxZGU4YWM0NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dl
ci5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVi
dWdnZXIuanNvbgpAQCAtMzIyLDYgKzMyMiwxMyBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgPGNvZGU+dXJsPC9jb2RlPiBpcyBjYXNlIHNlbnNpdGl2
ZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9v
bGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCB0cmVhdCA8
Y29kZT51cmw8L2NvZGU+IGFzIHJlZ3VsYXIgZXhwcmVzc2lvbi4iIH0KICAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2V0QmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNldHMg
d2hldGhlciBldmFsdWF0aW9uIG9mIGJyZWFrcG9pbnQgY29uZGl0aW9ucywgaWdub3JlIGNvdW50
cywgYW5kIGFjdGlvbnMgaGFwcGVuIGF0IHRoZSBsb2NhdGlvbiBvZiB0aGUgYnJlYWtwb2ludCBv
ciBhcmUgZGVmZXJyZWQgZHVlIHRvIGJsYWNrYm94aW5nLiIsCisgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zIiwgInR5cGUiOiAiYm9vbGVhbiIgfQorICAgICAgICAgICAgXQogICAgICAgICB9
CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggMjhj
YjBjOTE2MDQwLi5iM2JjMmEwYmFhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQwIEBACisyMDIyLTAxLTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVy
IGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgKGNvbmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25z
KSBhcmUgYWxzbyBhZmZlY3RlZCBieSBzY3JpcHQgYmxhY2tib3hpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTI3NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJlaW5nIGFibGUgdG8gZGVmZXIgYnJl
YWtwb2ludCBldmFsdWF0aW9ucyB1bnRpbCB0aGUgbmV4dCBhY3R1YWwgcGF1c2UgY2FuIHNvbWV0
aW1lcyBiZSBmYXIKKyAgICAgICAgbW9yZSB1c2VmdWwgdGhhbiBkb2luZyB0aGUgYnJlYWtwb2lu
dCBldmFsdWF0aW9ucyBhdCB0aGUgYnJlYWtwb2ludCdzIG9yaWdpbmFsIGxvY2F0aW9uLgorCisg
ICAgICAgIEFzIGFuIGV4YW1wbGUsIGNvbmZpZ3VyaW5nIHRoZSBBbGwgRXZlbnRzIGJyZWFrcG9p
bnQgd2l0aCBhIGBjb25zb2xlLnRyYWNlKClgIGFjdGlvbiBhbmQKKyAgICAgICAgYXV0by1jb250
aW51ZSBlbmFibGVkIHdvdWxkIG5vdCBwcm92aWRlIG11Y2ggdXNlZnVsIGluZm9ybWF0aW9uIHdp
dGhvdXQgYWxzbyBibGFja2JveGluZworICAgICAgICBicmVha3BvaW50IGV2YWx1YXRpb25zIGFz
IHRoZSBvcmlnaW5hbCBwYXVzZSBsb2NhdGlvbiBvZiB0aGUgQWxsIEV2ZW50cyBicmVha3BvaW50
IGlzIG9uIHRoZQorICAgICAgICBmaXJzdCBsaW5lIG9mIHRoZSBldmVudCBoYW5kbGVyLCBtZWFu
aW5nIHRoYXQgaWYgdGhlIHNjcmlwdCBjb250YWluaW5nIHRoZSBldmVudCBoYW5kbGVyIGlzCisg
ICAgICAgIGJsYWNrYm94ZWQgdGhlbiB0aGUgYGNvbnNvbGUudHJhY2UoKWAgd291bGQgc3RpbGwg
b25seSBzaG93IHRoYXQgbG9jYXRpb24gZXZlbiB0aG91Z2ggdGhlCisgICAgICAgIFNvdXJjZXMg
VGFiIHdvdWxkIHNob3cgdGhlIGZpcnN0IGxpbmUgb2YgY29kZSBvdXRzaWRlIG9mIHRoYXQgc2Ny
aXB0IChkdWUgdG8gdGhlIGJsYWNrYm94KS4KKyAgICAgICAgQmVpbmcgYWJsZSB0byBhbHNvIGJs
YWNrYm94IGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgd291bGQgaW5zdGVhZCBjYXVzZSB0aGUgYGNv
bnNvbGUudHJhY2UoKWAKKyAgICAgICAgYWN0aW9uIHRvIGhhdmUgdGhlIHNhbWUgb3V0cHV0IGFz
IHRoZSBTb3VyY2VzIFRhYiwgc2luY2UgaXQncyBldmFsdWF0aW9uIHdvdWxkIGJlIGRlZmVycmVk
CisgICAgICAgIHVudGlsIGV4ZWN1dGlvbiBhY3R1YWxseSBwYXVzZWQsIHdoaWNoIGlzIGZ1cnRo
ZXIgaW5zaWRlIHRoZSBldmVudCBoYW5kbGVyCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jh
c2UvU2V0dGluZy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVn
Z2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuYXN5
bmMgaW5pdGlhbGl6ZVRhcmdldCk6CisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFnZXIucHJvdG90
eXBlLl9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyk6IEFkZGVkLgorICAgICAgICAo
V0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5faGFuZGxlQmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgQ3JlYXRlIGEgZ2xvYmFsIGBXSS5TZXR0
aW5nYCBmb3IgdGhpcyBmZWF0dXJlIGFuZCBoYW5kbGUgY2hhbmdlcyBmcm9tIHRoZSBjb2RlIGJl
bG93LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNldHRpbmdzVmll
dy5qczoKKyAgICAgICAgKFdJLkJsYWNrYm94U2V0dGluZ3NWaWV3LnByb3RvdHlwZS5pbml0aWFs
TGF5b3V0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NW
aWV3LmNzczoKKyAgICAgICAgKC5zZXR0aW5ncy12aWV3LmJsYWNrYm94ID4gcCA+IGxhYmVsKTog
QWRkZWQuCisgICAgICAgICguc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCA+IGlu
cHV0KTogQWRkZWQuCisgICAgICAgICguc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+IHAgPiBsYWJl
bCA+IHNwYW4pOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgY2hlY2tib3ggYW5kIGV4cGxhbmF0aW9u
IG9mIHRoaXMgbmV3IGZlYXR1cmUgaW4gdGhlIEJsYWNrYm94IHBhbmUgb2YgdGhlIFNldHRpbmdz
IFRhYi4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qczoKKwogMjAyMi0wMS0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczogY2Fubm90IGNvcHkgZ3JvdXBpbmcgb2Yg
YmxhY2tib3hlZCBjYWxsIGZyYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5k
ZXggYmEyZWY2MTdiNmMwLi45ZDY3NjAxNGVhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcwpAQCAtMTU5LDYgKzE1OSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBp
biBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIHZhbGlkIERPTSBub2RlcyJdID0gIkFsbCBpCiAvKiBM
YWJlbCBmb3Igc2V0dGluZyB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBpbnNwZWN0IHRoZSBXZWIg
SW5zcGVjdG9yIHVzZXIgaW50ZXJmYWNlLiAqLwogbG9jYWxpemVkU3RyaW5nc1siQWxsb3cgSW5z
cGVjdGluZyBXZWIgSW5zcGVjdG9yIEAgRXhwZXJpbWVudGFsIFNldHRpbmdzIl0gPSAiQWxsb3cg
SW5zcGVjdGluZyBXZWIgSW5zcGVjdG9yIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFsbG93IE1lZGlh
IENhcHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiXSA9ICJBbGxvdyBNZWRpYSBDYXB0dXJlIG9uIElu
c2VjdXJlIFNpdGVzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFsc28gZGVmZXIgZXZhbHVhdGluZyBi
cmVha3BvaW50IGNvbmRpdGlvbnMsIGlnbm9yZSBjb3VudHMsIGFuZCBhY3Rpb25zIHVudGlsIGV4
ZWN1dGlvbiBoYXMgY29udGludWVkIG91dHNpZGUgb2YgdGhlIHJlbGF0ZWQgc2NyaXB0IGluc3Rl
YWQgb2YgYXQgdGhlIGJyZWFrcG9pbnQncyBsb2NhdGlvbi4iXSA9ICJBbHNvIGRlZmVyIGV2YWx1
YXRpbmcgYnJlYWtwb2ludCBjb25kaXRpb25zLCBpZ25vcmUgY291bnRzLCBhbmQgYWN0aW9ucyB1
bnRpbCBleGVjdXRpb24gaGFzIGNvbnRpbnVlZCBvdXRzaWRlIG9mIHRoZSByZWxhdGVkIHNjcmlw
dCBpbnN0ZWFkIG9mIGF0IHRoZSBicmVha3BvaW50J3MgbG9jYXRpb24uIjsKIC8qIFByb3BlcnR5
IHRpdGxlIGZvciBgZm9udC12YXJpYW50LWFsdGVybmF0ZXNgLiAqLwogbG9jYWxpemVkU3RyaW5n
c1siQWx0ZXJuYXRlIEdseXBocyBAIEZvbnQgRGV0YWlscyBTaWRlYmFyIFByb3BlcnR5Il0gPSAi
QWx0ZXJuYXRlIEdseXBocyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0
cnlpbmcgdG8gbG9hZCB0aGUgcmVzb3VyY2UuIl0gPSAiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5n
IHRvIGxvYWQgdGhlIHJlc291cmNlLiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMKaW5kZXggODUzZjdmYzA2MDE3Li5lNzMwOTcy
MGExMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvU2V0dGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL1NldHRpbmcuanMKQEAgLTE4NCw2ICsxODQsNyBAQCBXSS5EZWJ1Z1NldHRpbmcgPSBjbGFz
cyBEZWJ1Z1NldHRpbmcgZXh0ZW5kcyBXSS5TZXR0aW5nCiB9OwogCiBXSS5zZXR0aW5ncyA9IHsK
KyAgICBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uczogbmV3IFdJLlNldHRpbmcoImJsYWNr
Ym94LWJyZWFrcG9pbnQtZXZhbHVhdGlvbnMiLCBmYWxzZSksCiAgICAgY2FudmFzUmVjb3JkaW5n
QXV0b0NhcHR1cmVFbmFibGVkOiBuZXcgV0kuU2V0dGluZygiY2FudmFzLXJlY29yZGluZy1hdXRv
LWNhcHR1cmUtZW5hYmxlZCIsIGZhbHNlKSwKICAgICBjYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVy
ZUZyYW1lQ291bnQ6IG5ldyBXSS5TZXR0aW5nKCJjYW52YXMtcmVjb3JkaW5nLWF1dG8tY2FwdHVy
ZS1mcmFtZS1jb3VudCIsIDEpLAogICAgIGNvbnNvbGVBdXRvRXhwYW5kVHJhY2U6IG5ldyBXSS5T
ZXR0aW5nKCJjb25zb2xlLWF1dG8tZXhwYW5kLXRyYWNlIiwgdHJ1ZSksCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1h
bmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9EZWJ1Z2dlck1hbmFnZXIuanMKaW5kZXggNjI4MjhhN2VkNGFjLi5jOTIxYWFiZmFlMzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTQzLDYgKzQzLDggQEAgV0ku
RGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0
CiAKICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1h
bmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCwgdGhpcy5fdGFyZ2V0UmVtb3ZlZCwgdGhpcyk7CiAK
KyAgICAgICAgV0kuc2V0dGluZ3MuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuYWRkRXZl
bnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zQ2hhbmdlLCB0aGlzKTsKKwogICAgICAgICBpZiAoV0kuaXNF
bmdpbmVlcmluZ0J1aWxkKSB7CiAgICAgICAgICAgICBXSS5zZXR0aW5ncy5lbmdpbmVlcmluZ1No
b3dJbnRlcm5hbFNjcmlwdHMuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5n
ZWQsIHRoaXMuX2hhbmRsZUVuZ2luZWVyaW5nU2hvd0ludGVybmFsU2NyaXB0c1NldHRpbmdDaGFu
Z2VkLCB0aGlzKTsKICAgICAgICAgICAgIFdJLnNldHRpbmdzLmVuZ2luZWVyaW5nUGF1c2VGb3JJ
bnRlcm5hbFNjcmlwdHMuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQs
IHRoaXMuX2hhbmRsZUVuZ2luZWVyaW5nUGF1c2VGb3JJbnRlcm5hbFNjcmlwdHNTZXR0aW5nQ2hh
bmdlZCwgdGhpcyk7CkBAIC0yMjMsNiArMjI1LDggQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xh
c3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIAorICAgICAgICB0aGlzLl9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyh0
YXJnZXQpOworCiAgICAgICAgIGlmIChXSS5pc0VuZ2luZWVyaW5nQnVpbGQpIHsKICAgICAgICAg
ICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMik6IERlYnVnZ2VyQWdlbnQuc2V0UGF1c2VGb3JJ
bnRlcm5hbFNjcmlwdHMgZGlkIG5vdCBleGlzdCB5ZXQuCiAgICAgICAgICAgICBpZiAodGFyZ2V0
Lmhhc0NvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlRm9ySW50ZXJuYWxTY3JpcHRzIikpCkBAIC0x
MjU2LDYgKzEyNjAsMTMgQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5h
Z2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBfc2V0QmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnModGFyZ2V0KQorICAgIHsKKyAgICAgICAgLy8gQ09NUEFU
SUJJTElUWSAoaU9TIDE1KTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiRGVi
dWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMiKSkKKyAgICAgICAgICAgIHRh
cmdldC5EZWJ1Z2dlckFnZW50LnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKFdJLnNl
dHRpbmdzLmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLnZhbHVlKTsKKyAgICB9CisKICAg
ICBfYnJlYWtwb2ludERpc3BsYXlMb2NhdGlvbkRpZENoYW5nZShldmVudCkKICAgICB7CiAgICAg
ICAgIGlmICh0aGlzLl9pZ25vcmVCcmVha3BvaW50RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlRXZl
bnQpCkBAIC0xNDAwLDYgKzE0MTEsMTIgQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVi
dWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCk7CiAgICAg
fQogCisgICAgX2hhbmRsZUJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zQ2hhbmdlKGV2ZW50
KQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpCisgICAgICAg
ICAgICB0aGlzLl9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyh0YXJnZXQpOworICAg
IH0KKwogICAgIF9oYW5kbGVFbmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNjcmlwdHNTZXR0aW5nQ2hh
bmdlZChldmVudCkKICAgICB7CiAgICAgICAgIGxldCBldmVudFR5cGUgPSBXSS5zZXR0aW5ncy5l
bmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNjcmlwdHMudmFsdWUgPyBXSS5EZWJ1Z2dlck1hbmFnZXIu
RXZlbnQuU2NyaXB0QWRkZWQgOiBXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0UmVtb3Zl
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzcwppbmRleCAxYzA1ZmUyYTZmM2Eu
LjdiOTJmNjA5MDNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzcwpAQCAt
NDgsNiArNDgsMTkgQEAKICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogfQogCisuc2V0dGlu
Z3Mtdmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCB7CisgICAgZGlzcGxheTogZmxleDsKK30KKwor
LnNldHRpbmdzLXZpZXcuYmxhY2tib3ggPiBwID4gbGFiZWwgPiBpbnB1dCB7CisgICAgZmxleC1z
aHJpbms6IDA7CisgICAgbWFyZ2luLWlubGluZTogMC41cHggNHB4OworfQorCisuc2V0dGluZ3Mt
dmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCA+IHNwYW4geworICAgIG1hcmdpbi10b3A6IDEuNXB4
OworfQorCiAuc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+IHRhYmxlIHsKICAgICBib3JkZXItY29s
bGFwc2U6IGNvbGxhcHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNldHRpbmdzVmlldy5qcwppbmRl
eCA5MGEwM2QwYWE3Y2UuLjA0MDEyYzU1OTFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hTZXR0aW5n
c1ZpZXcuanMKQEAgLTEwNiw2ICsxMDYsMTggQEAgV0kuQmxhY2tib3hTZXR0aW5nc1ZpZXcgPSBj
bGFzcyBCbGFja2JveFNldHRpbmdzVmlldyBleHRlbmRzIFdJLlNldHRpbmdzVmlldwogICAgICAg
ICAgICAgYS5hcHBlbmQoYik7CiAgICAgICAgICAgICByZXR1cm4gYTsKICAgICAgICAgfSk7CisK
KyAgICAgICAgbGV0IGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zRXhwbGFuYXRpb25FbGVt
ZW50ID0gdGhpcy5lbGVtZW50Lmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJw
IiksIHRoaXMuZWxlbWVudC5sYXN0Q2hpbGQpOworICAgICAgICBsZXQgYmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkxhYmVsID0gYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNFeHBsYW5hdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgibGFiZWwiKSk7CisKKyAgICAgICAgbGV0IGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
RXhwbGFuYXRpb25DaGVja2JveCA9IGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zRXhwbGFu
YXRpb25MYWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKTsK
KyAgICAgICAgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkNoZWNrYm94
LnR5cGUgPSAiY2hlY2tib3giOworICAgICAgICBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c0V4cGxhbmF0aW9uQ2hlY2tib3guY2hlY2tlZCA9IFdJLnNldHRpbmdzLmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zLnZhbHVlOworICAgICAgICBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9uc0V4cGxhbmF0aW9uQ2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICBXSS5zZXR0aW5ncy5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucy52YWx1ZSA9IGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zRXhwbGFuYXRpb25DaGVj
a2JveC5jaGVja2VkOworICAgICAgICB9KTsKKworICAgICAgICBibGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc0V4cGxhbmF0aW9uTGFiZWwuYXBwZW5kKFdJLlVJU3RyaW5nKCJBbHNvIGRlZmVy
IGV2YWx1YXRpbmcgYnJlYWtwb2ludCBjb25kaXRpb25zLCBpZ25vcmUgY291bnRzLCBhbmQgYWN0
aW9ucyB1bnRpbCBleGVjdXRpb24gaGFzIGNvbnRpbnVlZCBvdXRzaWRlIG9mIHRoZSByZWxhdGVk
IHNjcmlwdCBpbnN0ZWFkIG9mIGF0IHRoZSBicmVha3BvaW50J3MgbG9jYXRpb24uIikpOwogICAg
IH0KIAogICAgIC8vIFByaXZhdGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449274</attachid>
            <date>2022-01-15 14:59:03 -0800</date>
            <delta_ts>2022-01-15 15:44:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>235274.diff</filename>
            <type>text/plain</type>
            <size>54879</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkYmRmMTFjY2M5ZGUuLjczYTQ4NjZhYzI1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIyLTAxLTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBhZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9p
bnQgZXZhbHVhdGlvbnMgKGNvbmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxz
byBhZmZlY3RlZCBieSBzY3JpcHQgYmxhY2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorCiAyMDIyLTAxLTE0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtDb2NvYV0gclZGQygpIGlzbid0IGNhbGxlZCBmb3IgaW5pdGlhbCB2aWRlbyBsb2Fk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY3ODljZWQ2ZGNkMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCbGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMjQgQEAKK1Rl
c3RzIERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25k
aXRpb24uRmFsc2UKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZSIpJy4uLgorQmxhY2tib3hp
bmcgJ3VuYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGNvbmRpdGlvbl9m
YWxzZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2ludCBpbiAnVW5ibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyLmpzJy4uLgor
VW5ibGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4uCitFdmFsdWF0aW5nICdVbmJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0
ZXIoMiknLi4uCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5l
ci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lcicuCitQQVNTOiBTaG91bGQg
bm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRD
b25kaXRpb25fRmFsc2VfT3V0ZXInLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIu
c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuVW5ibGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9ucy5CcmVha3BvaW50Q29uZGl0aW9uLlRydWUKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlw
dHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9U
cnVlIiknLi4uCitCbGFja2JveGluZyAndW5ibGFja2JveGJyZWFrcG9pbnRldmFsdWF0aW9uc19i
cmVha3BvaW50Y29uZGl0aW9uX3RydWVfaW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFrcG9pbnQg
aW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9U
cnVlX0lubmVyLmpzJy4uLgorVW5ibGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4u
CitFdmFsdWF0aW5nICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRD
b25kaXRpb25fVHJ1ZV9PdXRlcigyKScuLi4KKworUEFVU0VEOiAnQmxhY2tib3hlZFNjcmlwdCcg
YXQgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9U
cnVlX091dGVyOjM6NCcuCit7CisgICJvcmlnaW5hbFJlYXNvbiI6ICJCcmVha3BvaW50IiwKKyAg
Im9yaWdpbmFsRGF0YSI6IHsKKyAgICAiYnJlYWtwb2ludElkIjogIlVuYmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzOjI6MCIKKyAg
fQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJlc3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdlIHZh
bHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzJworUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAn
VW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVf
SW5uZXInLgorUEFTUzogU2hvdWxkIHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5VbmJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uUGF1c2UKK0V2YWx1YXRp
bmcgJ2NyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludEFjdGlvbl9QYXVzZSIpJy4uLgorQmxhY2tib3hpbmcgJ3VuYmxhY2tib3hicmVha3BvaW50
ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGFjdGlvbl9wYXVzZV9pbm5lci5qcycuLi4KK1NldHRpbmcg
YnJlYWtwb2ludCBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX1BhdXNlX0lubmVyLmpzJy4uLgorVW5ibGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1
YXRpb25zLi4uCitFdmFsdWF0aW5nICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXIoMiknLi4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRT
Y3JpcHQnIGF0ICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fUGF1c2VfT3V0ZXI6Mzo0Jy4KK3sKKyAgIm9yaWdpbmFsUmVhc29uIjogIkJyZWFrcG9pbnQi
LAorICAib3JpZ2luYWxEYXRhIjogeworICAgICJicmVha3BvaW50SWQiOiAiVW5ibGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyLmpzOjI6MCIK
KyAgfQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJlc3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdl
IHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJl
YWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4g
J1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9J
bm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXInLgorCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLkF1dG9Db250aW51ZQor
RXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZSIpJy4uLgorQmxhY2tib3hpbmcgJ3VuYmxh
Y2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGFjdGlvbl9hdXRvY29udGludWVf
aW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIuanMnLi4uCitV
bmJsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcgJ1VuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVf
T3V0ZXIoMiknLi4uCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1Vu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGlu
dWVfSW5uZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyJy4KK1BB
U1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXInLgorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZQorRXZhbHVhdGlu
ZyAnY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dENvbmRpdGlvbl9GYWxzZSIpJy4uLgorQmxhY2tib3hpbmcgJ2JsYWNrYm94YnJlYWtwb2ludGV2
YWx1YXRpb25zX2JyZWFrcG9pbnRjb25kaXRpb25fZmFsc2VfaW5uZXIuanMnLi4uCitTZXR0aW5n
IGJyZWFrcG9pbnQgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRD
b25kaXRpb25fRmFsc2VfSW5uZXIuanMnLi4uCitCbGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1
YXRpb25zLi4uCitFdmFsdWF0aW5nICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyKDIpJy4uLgorUEFTUzogU2hvdWxkIGNoYW5nZSB2
YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX0ZhbHNlX091dGVyLmpzJworUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAn
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9J
bm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyJy4KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24uVHJ1ZQorRXZhbHVh
dGluZyAnY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludENvbmRpdGlvbl9UcnVlIiknLi4uCitCbGFja2JveGluZyAnYmxhY2tib3hicmVha3BvaW50
ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGNvbmRpdGlvbl90cnVlX2lubmVyLmpzJy4uLgorU2V0dGlu
ZyBicmVha3BvaW50IGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
Q29uZGl0aW9uX1RydWVfSW5uZXIuanMnLi4uCitCbGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1
YXRpb25zLi4uCitFdmFsdWF0aW5nICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIoMiknLi4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRT
Y3JpcHQnIGF0ICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0
aW9uX1RydWVfT3V0ZXI6Mzo0Jy4KK3sKKyAgIm9yaWdpbmFsUmVhc29uIjogIkJyZWFrcG9pbnQi
LAorICAib3JpZ2luYWxEYXRhIjogeworICAgICJicmVha3BvaW50SWQiOiAiQmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzOjI6MCIK
KyAgfQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJlc3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdl
IHZhbHVlIG9mICd4JyBpbnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4g
J0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9J
bm5lcicuCitQQVNTOiBTaG91bGQgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLlBhdXNlCitFdmFsdWF0aW5nICdj
cmVhdGVTY3JpcHRzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0
aW9uX1BhdXNlIiknLi4uCitCbGFja2JveGluZyAnYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlv
bnNfYnJlYWtwb2ludGFjdGlvbl9wYXVzZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2lu
dCBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVz
ZV9Jbm5lci5qcycuLi4KK0JsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2
YWx1YXRpbmcgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
UGF1c2VfT3V0ZXIoMiknLi4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRTY3JpcHQnIGF0ICdCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyOjM6
NCcuCit7CisgICJvcmlnaW5hbFJlYXNvbiI6ICJCcmVha3BvaW50IiwKKyAgIm9yaWdpbmFsRGF0
YSI6IHsKKyAgICAiYnJlYWtwb2ludElkIjogIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIuanM6MjowIgorICB9Cit9CitSZXN1bWluZy4u
LgorUEFTUzogUmVzdW1lZC4KK1BBU1M6IFNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lk
ZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9P
dXRlci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXInLgorUEFTUzogU2hvdWxkIG5v
dCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlv
bl9QYXVzZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5C
cmVha3BvaW50QWN0aW9uLkF1dG9Db250aW51ZQorRXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygi
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGlu
dWUiKScuLi4KK0JsYWNrYm94aW5nICdibGFja2JveGJyZWFrcG9pbnRldmFsdWF0aW9uc19icmVh
a3BvaW50YWN0aW9uX2F1dG9jb250aW51ZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2lu
dCBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRv
Q29udGludWVfSW5uZXIuanMnLi4uCitCbGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25z
Li4uCitFdmFsdWF0aW5nICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcigyKScuLi4KK1BBU1M6IFNob3VsZCBjaGFuZ2UgdmFs
dWUgb2YgJ3gnIGluc2lkZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGlu
ICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250
aW51ZV9Jbm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcicuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCbGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4wMmFkYjAyYTg3ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuaHRtbApAQCAtMCwwICsxLDMxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90
b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjcmVhdGVTY3JpcHRz
KGlkKSB7CisgICAgZXZhbCgKK2AKK3dpbmRvdy4ke2lkfV9Jbm5lciA9IGZ1bmN0aW9uICR7aWR9
X0lubmVyKHgpIHsKKyAgICByZXR1cm4geCAqIHg7Cit9OworLy8jIHNvdXJjZVVSTD0ke2lkfV9J
bm5lci5qcworYAorICAgICk7CisKKyAgICBldmFsKAorYAord2luZG93LiR7aWR9X091dGVyID0g
ZnVuY3Rpb24gJHtpZH1fT3V0ZXIoeCkgeworICAgIGxldCBpbm5lclJlc3VsdCA9ICR7aWR9X0lu
bmVyKHgpOworICAgIHJldHVybiBpbm5lclJlc3VsdCAqIHg7Cit9OworLy8jIHNvdXJjZVVSTD0k
e2lkfV9PdXRlci5qcworYAorICAgICk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIFBy
b3RvY29sVGVzdC5kZWJ1ZygpOworICAgIGxldCBzdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyIpOwor
CisgICAgbGV0IHNvdXJjZVVSTFJlZ0V4cFF1ZXJpZXMgPSBuZXcgTWFwOworICAgIGxldCBwYXVz
ZWRGdW5jdGlvbk5hbWVzID0gW107CisKKyAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9KTsKKwor
ICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2Vk
Il0gPSBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgIGxldCBzb3VyY2VVUkwgPSBtZXNzYWdl
LnBhcmFtcy5zb3VyY2VVUkw7CisgICAgICAgIGZvciAobGV0IFtyZWdFeHAsIGNhbGxiYWNrXSBv
ZiBzb3VyY2VVUkxSZWdFeHBRdWVyaWVzKSB7CisgICAgICAgICAgICBpZiAocmVnRXhwLnRlc3Qo
c291cmNlVVJMKSkgeworICAgICAgICAgICAgICAgIHNvdXJjZVVSTFJlZ0V4cFF1ZXJpZXMuZGVs
ZXRlKHJlZ0V4cCk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soc291cmNlVVJMKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZl
bnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAg
ICAgUHJvdG9jb2xUZXN0Lm5ld2xpbmUoKTsKKworICAgICAgICBsZXQgdG9wQ2FsbEZyYW1lID0g
bWVzc2FnZS5wYXJhbXMuY2FsbEZyYW1lc1swXTsKKyAgICAgICAgbGV0IGZ1bmN0aW9uTmFtZSA9
IHRvcENhbGxGcmFtZS5mdW5jdGlvbk5hbWU7CisgICAgICAgIGlmIChmdW5jdGlvbk5hbWUgIT09
ICJnbG9iYWwgY29kZSIpIHsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coYFBBVVNFRDog
JyR7bWVzc2FnZS5wYXJhbXMucmVhc29ufScgYXQgJyR7ZnVuY3Rpb25OYW1lfToke3RvcENhbGxG
cmFtZS5sb2NhdGlvbi5saW5lTnVtYmVyfToke3RvcENhbGxGcmFtZS5sb2NhdGlvbi5jb2x1bW5O
dW1iZXJ9Jy5gKTsKKyAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtcy5kYXRhKQorICAgICAg
ICAgICAgICAgIFByb3RvY29sVGVzdC5qc29uKG1lc3NhZ2UucGFyYW1zLmRhdGEpOworICAgICAg
ICAgICAgcGF1c2VkRnVuY3Rpb25OYW1lcy5wdXNoKGZ1bmN0aW9uTmFtZSk7CisgICAgICAgIH0K
KworICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJSZXN1bWluZy4uLiIpOworICAgICAgICBJbnNw
ZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZChgRGVidWdnZXIucmVzdW1lYCwge30sIEluc3BlY3Rv
clByb3RvY29sLmNoZWNrRm9yRXJyb3IpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JQcm90b2Nv
bC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnJlc3VtZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsK
KyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlJlc3VtZWQuIik7CisgICAgfTsKKworICAgIGFz
eW5jIGZ1bmN0aW9uIHNldEJsYWNrYm94KHVybCwgb3B0aW9ucyA9IHt9KSB7CisgICAgICAgIGlm
ICghb3B0aW9ucy5jYXNlU2Vuc2l0aXZlKQorICAgICAgICAgICAgdXJsID0gdXJsLnRvTG93ZXJD
YXNlKCk7CisKKyAgICAgICAgUHJvdG9jb2xUZXN0LmxvZyhgQmxhY2tib3hpbmcgJHtvcHRpb25z
LmNhc2VTZW5zaXRpdmUgPyAiKGNhc2Ugc2Vuc2l0aXZlKSAiIDogIiJ9JHtvcHRpb25zLmlzUmVn
ZXggPyAiKHJlZ2V4KSAiIDogIiJ9JyR7dXJsfScuLi5gKTsKKyAgICAgICAgYXdhaXQgSW5zcGVj
dG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhvZDogIkRlYnVnZ2Vy
LnNldFNob3VsZEJsYWNrYm94VVJMIiwKKyAgICAgICAgICAgIHBhcmFtczoge3VybCwgc2hvdWxk
QmxhY2tib3g6IHRydWUsIC4uLm9wdGlvbnN9LAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBh
c3luYyBmdW5jdGlvbiBzZXRCcmVha3BvaW50KHVybCwgbGluZU51bWJlciwgb3B0aW9ucykgewor
ICAgICAgICBQcm90b2NvbFRlc3QubG9nKGBTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJyR7dXJsfScu
Li5gKTsKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsKKyAg
ICAgICAgICAgIG1ldGhvZDogIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCIsCisgICAgICAg
ICAgICBwYXJhbXM6IHt1cmwsIGxpbmVOdW1iZXIsIG9wdGlvbnN9LAorICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cyhibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucykgeworICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKGAke2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zID8gIkJsYWNrYm94aW5nIiA6ICJV
bmJsYWNrYm94aW5nIn0gcHJlYWtwb2luZyBldmFsdWF0aW9ucy4uLmApOworICAgICAgICByZXR1
cm4gSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhvZDog
IkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zIiwKKyAgICAgICAgICAg
IHBhcmFtczoge2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zfSwKKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gbGlzdGVuRm9yU291cmNlUGFyc2VkKHNvdXJjZVVS
TFJlZ0V4cCkgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4geworICAgICAgICAgICAgc291cmNlVVJMUmVnRXhwUXVlcmllcy5zZXQoc291cmNlVVJMUmVn
RXhwLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24g
ZXZhbHVhdGUoZXhwcmVzc2lvbikgeworICAgICAgICBQcm90b2NvbFRlc3QubG9nKGBFdmFsdWF0
aW5nICcke2V4cHJlc3Npb259Jy4uLmApOworICAgICAgICByZXR1cm4gSW5zcGVjdG9yUHJvdG9j
b2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhvZDogIlJ1bnRpbWUuZXZhbHVhdGUi
LAorICAgICAgICAgICAgcGFyYW1zOiB7ZXhwcmVzc2lvbn0sCisgICAgICAgIH0pOworICAgIH0K
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7Cisg
ICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQ
cm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5u
ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVy
XC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlIilgKSwK
KyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNv
dXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJM
LCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiISh4ID0gMykiLAorICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cyhmYWxzZSk7CisKKyAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBldmFsdWF0ZShgVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091
dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9yKHJl
c3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJlc3Vs
dC52YWx1ZSwgKDMgKiAzKSAqIDIsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUg
J1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxz
ZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBh
dXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBp
biAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0Zh
bHNlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVz
ZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4g
J1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxz
ZV9PdXRlcicuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24u
VHJ1ZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291
cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAg
ICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAg
ICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAg
ZXZhbHVhdGUoYGNyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludENvbmRpdGlvbl9UcnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAg
ICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2Fp
dCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29u
ZGl0aW9uOiAiKHggPSAzKSIsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNl
dEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGZhbHNlKTsKKworICAgICAgICAgICAgbGV0
IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcigyKWApOworICAgICAgICAgICAgSW5zcGVj
dG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgzICogMykgKiAyLCAiU2hvdWxk
IGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAg
UHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lu
bmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lcicuIik7CisgICAgICAgICAgICBQcm90
b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlciIp
LCAiU2hvdWxkIHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcicuIik7CisKKyAgICAgICAgfSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMu
QnJlYWtwb2ludEFjdGlvbi5QYXVzZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAg
ICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNl
LmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXJcLmpzJC8p
LAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5ibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyXC5qcyQvKSwKKyAg
ICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlIilgKSwKKyAgICAgICAgICAgIF0p
OworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAg
ICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAg
ICAgICAgICAgYWN0aW9uczogWworICAgICAgICAgICAgICAgICAgICB7dHlwZTogImV2YWx1YXRl
IiwgZGF0YTogInggPSAzIn0sCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoZmFsc2Up
OworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUoYFVuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcigyKWApOwor
ICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgz
ICogMykgKiAyLCAiU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIuanMnIik7
CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRGdW5jdGlvbk5h
bWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRB
Y3Rpb25fUGF1c2VfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lcicuIik7CisgICAg
ICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1
ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1
c2VfT3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcicuIik7CisgICAgICAgIH0sCisg
ICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dl
ci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uQXV0b0NvbnRpbnVlIiwKKyAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBbaW5uZXJTb3VyY2VVUkwsIG91dGVyU291cmNlVVJM
XSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQ
YXJzZWQoL1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9B
dXRvQ29udGludWVfSW5uZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJj
ZVBhcnNlZCgvVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9u
X0F1dG9Db250aW51ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAgZXZhbHVhdGUoYGNy
ZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9BdXRvQ29udGludWUiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3
YWl0IHNldEJsYWNrYm94KGlubmVyU291cmNlVVJMKTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJy
ZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAgICAgICAgICAgICBhY3Rpb25zOiBb
CisgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAieCA9IDMifSwK
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIGF1dG9Db250aW51ZTogdHJ1ZSwK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMoZmFsc2UpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZh
bHVhdGUoYFVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9B
dXRvQ29udGludWVfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmNo
ZWNrRm9yRXJyb3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RFcXVh
bChyZXN1bHQucmVzdWx0LnZhbHVlLCAoMyAqIDMpICogMiwgIlNob3VsZCBjaGFuZ2UgdmFsdWUg
b2YgJ3gnIGluc2lkZSAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIi
KSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXInLiIpOworICAgICAgICAgICAgUHJv
dG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVf
T3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXInLiIpOworICAgICAgICB9
LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVi
dWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZSIsCisgICAgICAgIGFzeW5jIHRl
c3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0g
PSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFy
c2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0Zh
bHNlX0lubmVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQo
L0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2Vf
T3V0ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGV2YWx1YXRlKGBjcmVhdGVTY3JpcHRzKCJC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlIilg
KSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5l
clNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNl
VVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiISh4ID0gMykiLAorICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucyh0cnVlKTsKKworICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091
dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9yKHJl
c3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJlc3Vs
dC52YWx1ZSwgKDIgKiAyKSAqIDMsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUg
J0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2Vf
T3V0ZXIuanMnIik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVz
ZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19C
cmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lu
bmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRGdW5j
dGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX0ZhbHNlX091dGVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyJy4i
KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24uVHJ1ZSIsCisgICAg
ICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRl
clNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVu
Rm9yU291cmNlUGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
Q29uZGl0aW9uX1RydWVfSW5uZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNv
dXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRp
dGlvbl9UcnVlX091dGVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRl
U2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlv
bl9UcnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFj
a2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlu
bmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiKHggPSAzKSIs
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZh
bHVhdGUoYEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25f
VHJ1ZV9PdXRlcigyKWApOworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JF
cnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3Vs
dC5yZXN1bHQudmFsdWUsICgyICogMikgKiAzLCAiU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcg
aW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9u
X1RydWVfT3V0ZXIuanMnIik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxz
ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2Ug
aW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1
ZV9Jbm5lcicuIik7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVzZWRG
dW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIiKSwgIlNob3VsZCBwYXVzZSBpbiAnQmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyJy4iKTsK
KyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uUGF1c2UiLAorICAgICAgICBh
c3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IFtpbm5lclNvdXJjZVVSTCwgb3V0ZXJTb3Vy
Y2VVUkxdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGxpc3RlbkZvclNv
dXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlv
bl9QYXVzZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFy
c2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNl
X091dGVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygi
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZSIpYCks
CisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3goaW5uZXJT
b3VyY2VVUkwpOworICAgICAgICAgICAgYXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNvdXJjZVVS
TCwgMiwgeworICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsKKyAgICAgICAgICAgICAgICAgICAg
e3R5cGU6ICJldmFsdWF0ZSIsIGRhdGE6ICJ4ID0gMyJ9LAorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVh
dGUoYEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2Vf
T3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmNoZWNrRm9yRXJyb3Io
cmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RFcXVhbChyZXN1bHQucmVz
dWx0LnZhbHVlLCAoMiAqIDIpICogMywgIlNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lk
ZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9P
dXRlci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNl
ZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXInLiIp
OworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRydWUocGF1c2VkRnVuY3Rpb25OYW1l
cy5pbmNsdWRlcygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlv
bl9QYXVzZV9PdXRlciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcicuIik7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1
Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLkF1dG9Db250aW51ZSIsCisgICAgICAgIGFzeW5j
IHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVS
TF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNl
UGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1
dG9Db250aW51ZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNl
UGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1
dG9Db250aW51ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAgZXZhbHVhdGUoYGNyZWF0
ZVNjcmlwdHMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
QXV0b0NvbnRpbnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBz
ZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3Bv
aW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgYWN0aW9uczogWworICAg
ICAgICAgICAgICAgICAgICB7dHlwZTogImV2YWx1YXRlIiwgZGF0YTogInggPSAzIn0sCisgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICBhdXRvQ29udGludWU6IHRydWUsCisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUo
YEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRp
bnVlX091dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVy
cm9yKHJlc3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0
LnJlc3VsdC52YWx1ZSwgKDIgKiAyKSAqIDMsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBp
bnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0
b0NvbnRpbnVlX091dGVyLmpzJyIpOworCisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0
RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiQmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIiKSwgIlNob3VsZCBu
b3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fQXV0b0NvbnRpbnVlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBl
Y3RGYWxzZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlciIpLCAiU2hvdWxk
IG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9BdXRvQ29udGludWVfT3V0ZXInLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAg
c3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIERlYnVnZ2VyLnNldEJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IDk2ZmM1ZTIyYTI5MC4uNjAwOWQ4MjkxYzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMi0wMS0xNCAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGEgc3dpdGNoIHRv
IGNvbnRyb2wgd2hldGhlciBicmVha3BvaW50IGV2YWx1YXRpb25zIChjb25kaXRpb24sIGlnbm9y
ZSBjb3VudCwgYWN0aW9ucykgYXJlIGFsc28gYWZmZWN0ZWQgYnkgc2NyaXB0IGJsYWNrYm94aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyNzQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCZWluZyBh
YmxlIHRvIGRlZmVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgdW50aWwgdGhlIG5leHQgYWN0dWFs
IHBhdXNlIGNhbiBzb21ldGltZXMgYmUgZmFyCisgICAgICAgIG1vcmUgdXNlZnVsIHRoYW4gZG9p
bmcgdGhlIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgYXQgdGhlIGJyZWFrcG9pbnQncyBvcmlnaW5h
bCBsb2NhdGlvbi4KKworICAgICAgICBBcyBhbiBleGFtcGxlLCBjb25maWd1cmluZyB0aGUgQWxs
IEV2ZW50cyBicmVha3BvaW50IHdpdGggYSBgY29uc29sZS50cmFjZSgpYCBhY3Rpb24gYW5kCisg
ICAgICAgIGF1dG8tY29udGludWUgZW5hYmxlZCB3b3VsZCBub3QgcHJvdmlkZSBtdWNoIHVzZWZ1
bCBpbmZvcm1hdGlvbiB3aXRob3V0IGFsc28gYmxhY2tib3hpbmcKKyAgICAgICAgYnJlYWtwb2lu
dCBldmFsdWF0aW9ucyBhcyB0aGUgb3JpZ2luYWwgcGF1c2UgbG9jYXRpb24gb2YgdGhlIEFsbCBF
dmVudHMgYnJlYWtwb2ludCBpcyBvbiB0aGUKKyAgICAgICAgZmlyc3QgbGluZSBvZiB0aGUgZXZl
bnQgaGFuZGxlciwgbWVhbmluZyB0aGF0IGlmIHRoZSBzY3JpcHQgY29udGFpbmluZyB0aGUgZXZl
bnQgaGFuZGxlciBpcworICAgICAgICBibGFja2JveGVkIHRoZW4gdGhlIGBjb25zb2xlLnRyYWNl
KClgIHdvdWxkIHN0aWxsIG9ubHkgc2hvdyB0aGF0IGxvY2F0aW9uIGV2ZW4gdGhvdWdoIHRoZQor
ICAgICAgICBTb3VyY2VzIFRhYiB3b3VsZCBzaG93IHRoZSBmaXJzdCBsaW5lIG9mIGNvZGUgb3V0
c2lkZSBvZiB0aGF0IHNjcmlwdCAoZHVlIHRvIHRoZSBibGFja2JveCkuCisgICAgICAgIEJlaW5n
IGFibGUgdG8gYWxzbyBibGFja2JveCBicmVha3BvaW50IGV2YWx1YXRpb25zIHdvdWxkIGluc3Rl
YWQgY2F1c2UgdGhlIGBjb25zb2xlLnRyYWNlKClgCisgICAgICAgIGFjdGlvbiB0byBoYXZlIHRo
ZSBzYW1lIG91dHB1dCBhcyB0aGUgU291cmNlcyBUYWIsIHNpbmNlIGl0J3MgZXZhbHVhdGlvbiB3
b3VsZCBiZSBkZWZlcnJlZAorICAgICAgICB1bnRpbCBleGVjdXRpb24gYWN0dWFsbHkgcGF1c2Vk
LCB3aGljaCBpcyBmdXJ0aGVyIGluc2lkZSB0aGUgZXZlbnQgaGFuZGxlci4KKworICAgICAgICAq
IGRlYnVnZ2VyL0RlYnVnZ2VyLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OkRlYnVnZ2Vy
KToKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OmRpZEhpdEJyZWFrcG9pbnQpOgorICAgICAgICAo
SlNDOjpEZWJ1Z2dlcjo6ZXZhbHVhdGVCcmVha3BvaW50Q29uZGl0aW9uKToKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXI6OmNvbnRpbnVlUHJvZ3JhbSk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpw
YXVzZUlmTmVlZGVkKToKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OmRpZEV4ZWN1dGVQcm9ncmFt
KToKKyAgICAgICAgKEpTQzo6RGVidWdnZXI6OnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zKTogQWRkZWQuCisgICAgICAgIEtlZXAgdHJhY2sgb2YgZXZlcnkgYEJyZWFrcG9pbnRgIHdh
bnRzIHRvIHBhdXNlIGJ1dCBpcyBkZWZlcnJlZCBkdWUgdG8gYmxhY2tib3hpbmcuCisgICAgICAg
IERlcGVuZGluZyBvbiB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgYXJlIGFsc28gYmxh
Y2tib3hlZCAoYmFzZWQgb24gdGhlIGZsYWcgc2V0IHZpYQorICAgICAgICB0aGUgcGlwaW5nIGNv
ZGUvbG9naWMgYmVsb3cpLCBjaGVjayBpZiB0aGUgc2NyaXB0IGF0dGVtcHRpbmcgdG8gYmUgcGF1
c2VkIGluIGlzIGJsYWNrYm94ZWQKKyAgICAgICAgYmVmb3JlIG9yIGFmdGVyIGhhbmRsaW5nIGJy
ZWFrcG9pbnQgZXZhbHVhdGlvbnMuCisgICAgICAgIFNpZGUgZWZmZWN0cyBvZiB0aGlzIGNoYW5n
ZSBhcmU6CisgICAgICAgIC0gYnJlYWtwb2ludCBjb25kaXRpb25zIGFyZSBub3cgZXZhbHVhdGVk
IHJpZ2h0IGJlZm9yZSB0aGF0IGJyZWFrcG9pbnQncyBhY3Rpb25zLCBpbnN0ZWFkIG9mCisgICAg
ICAgICAgZXZhbHVhdGluZyBhbGwgYnJlYWtwb2ludCBjb25kaXRpb25zIGJlZm9yZSBhbGwgYnJl
YWtwb2ludCBhY3Rpb25zCisgICAgICAgIC0gaWYgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBhcmUg
YmxhY2tib3hlZCwgbW9yZSB0aGFuIHR3byBicmVha3BvaW50cyBjYW4gbm93IGJlIGV2YWx1YXRl
ZAorICAgICAgICBkdXJpbmcgYSBzaW5nbGUgcGF1c2UgYXR0ZW1wdCBkZXBlbmRpbmcgb24gaG93
IG1heSBkZWZlcnJhbHMgKHdpdGggYnJlYWtwb2ludHMpIGhhcHBlbmVkCisKKyAgICAgICAgKiBk
ZWJ1Z2dlci9EZWJ1Z2dlci5oOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6T2JzZXJ2ZXI6OmRp
ZERlZmVyQnJlYWtwb2ludFBhdXNlKTogQWRkZWQuCisgICAgICAgIEFkZCBhIHdheSB0byBub3Rp
ZnkgYEluc3BlY3RvckRlYnVnZ2VyQWdlbnRgIG9mIGRlZmVycmVkIGJyZWFrcG9pbnQgcGF1c2Vz
IHNvIHRoYXQgdGhlCisgICAgICAgIGNvcnJlY3QgYG9yaWdpbmFsUmVhc29uYCB3aWxsIGJlIHVz
ZWQgYWZ0ZXIgYSBkZWZlcnJlZCBwYXVzZS4KKworICAgICAgICAqIGluc3BlY3Rvci9wcm90b2Nv
bC9EZWJ1Z2dlci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKTogQWRkZWQuCisgICAgICAgIChJbnNw
ZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZERlZmVyQnJlYWtwb2ludFBhdXNlKTog
QWRkZWQuCisgICAgICAgIEFkZCBhIGBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc2Ag
Y29tbWFuZCB0aGF0IHBhc3NlcyBkaXJlY3RseSB0byBgRGVidWdnZXJgLgorCiAyMDIyLTAxLTE0
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgaXNKSVRQ
QyBmYXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAppbmRl
eCAwYmNlMmE2ODk4OTMuLmI4YWEyYmM5YWY3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC0xMTMsNiArMTEzLDcgQEAgRGVidWdnZXI6OlByb2Zp
bGluZ0NsaWVudDo6flByb2ZpbGluZ0NsaWVudCgpCiAKIERlYnVnZ2VyOjpEZWJ1Z2dlcihWTSYg
dm0pCiAgICAgOiBtX3ZtKHZtKQorICAgICwgbV9ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cyhmYWxzZSkKICAgICAsIG1fcGF1c2VBdE5leHRPcHBvcnR1bml0eShmYWxzZSkKICAgICAsIG1f
cGFzdEZpcnN0RXhwcmVzc2lvbkluU3RhdGVtZW50KGZhbHNlKQogICAgICwgbV9pc1BhdXNlZChm
YWxzZSkKQEAgLTU0Myw3ICs1NDQsNyBAQCBib29sIERlYnVnZ2VyOjpyZW1vdmVCcmVha3BvaW50
KEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQpCiAgICAgcmV0dXJuIHJlbW92ZWQ7CiB9CiAKLVJlZlB0
cjxCcmVha3BvaW50PiBEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2ludChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTb3VyY2VJRCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3Np
dGlvbikKK1JlZlB0cjxCcmVha3BvaW50PiBEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2ludChTb3Vy
Y2VJRCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBpZiAo
IW1fYnJlYWtwb2ludHNBY3RpdmF0ZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTY1
LDExICs1NjYsOCBAQCBSZWZQdHI8QnJlYWtwb2ludD4gRGVidWdnZXI6OmRpZEhpdEJyZWFrcG9p
bnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cgogCiAgICAgICAgIC8vIFNpbmNl
IGZyb250ZW5kIHRydW5jYXRlcyB0aGUgaW5kZW50LCB0aGUgZmlyc3Qgc3RhdGVtZW50IGluIGEg
bGluZSBtdXN0IG1hdGNoIHRoZSBicmVha3BvaW50IChsaW5lLDApLgogICAgICAgICBBU1NFUlQo
dGhpcyA9PSBtX2N1cnJlbnRDYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5nbG9iYWxPYmplY3QoKS0+
ZGVidWdnZXIoKSk7Ci0gICAgICAgIGlmICgobGluZSAhPSBtX2xhc3RFeGVjdXRlZExpbmUgJiYg
bGluZSA9PSBicmVha0xpbmUgJiYgIWJyZWFrQ29sdW1uKSB8fCAobGluZSA9PSBicmVha0xpbmUg
JiYgY29sdW1uID09IGJyZWFrQ29sdW1uKSkgewotICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQt
PnNob3VsZFBhdXNlKCp0aGlzLCBnbG9iYWxPYmplY3QpKQotICAgICAgICAgICAgICAgIHJldHVy
biBicmVha3BvaW50LmNvcHlSZWYoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Cisg
ICAgICAgIGlmICgobGluZSAhPSBtX2xhc3RFeGVjdXRlZExpbmUgJiYgbGluZSA9PSBicmVha0xp
bmUgJiYgIWJyZWFrQ29sdW1uKSB8fCAobGluZSA9PSBicmVha0xpbmUgJiYgY29sdW1uID09IGJy
ZWFrQ29sdW1uKSkKKyAgICAgICAgICAgIHJldHVybiBicmVha3BvaW50LmNvcHlSZWYoKTsKICAg
ICB9CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTYwNiwxNCArNjA0LDEzIEBAIHZvaWQgRGVi
dWdnZXI6OmNsZWFyQnJlYWtwb2ludHMoKQogCiBib29sIERlYnVnZ2VyOjpldmFsdWF0ZUJyZWFr
cG9pbnRDb25kaXRpb24oQnJlYWtwb2ludCYgYnJlYWtwb2ludCwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKKyAgICBBU1NFUlQobV9pc1BhdXNlZCk7CisgICAgQVNTRVJUKGlzQXR0
YWNoZWQoZ2xvYmFsT2JqZWN0KSk7CisKICAgICBjb25zdCBTdHJpbmcmIGNvbmRpdGlvbiA9IGJy
ZWFrcG9pbnQuY29uZGl0aW9uKCk7CiAgICAgaWYgKGNvbmRpdGlvbi5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gV2UgY2Fubm90IHN0b3AgaW4gdGhlIGRlYnVnZ2Vy
IHdoaWxlIGV4ZWN1dGluZyBjb25kaXRpb24gY29kZSwKLSAgICAvLyBzbyBtYWtlIGl0IGxvb2tz
IGxpa2UgdGhlIGRlYnVnZ2VyIGlzIGFscmVhZHkgcGF1c2VkLgotICAgIFRlbXBvcmFyeVBhdXNl
ZFN0YXRlIHBhdXNlZFN0YXRlKCp0aGlzKTsKLQogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhj
ZXB0aW9uOwogICAgIERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSA9IGN1cnJl
bnREZWJ1Z2dlckNhbGxGcmFtZSgpOwogICAgIEpTT2JqZWN0KiBzY29wZUV4dGVuc2lvbk9iamVj
dCA9IG1fY2xpZW50ID8gbV9jbGllbnQtPmRlYnVnZ2VyU2NvcGVFeHRlbnNpb25PYmplY3QoKnRo
aXMsIGdsb2JhbE9iamVjdCwgZGVidWdnZXJDYWxsRnJhbWUpIDogbnVsbHB0cjsKQEAgLTc4MSw2
ICs3NzgsNyBAQCB2b2lkIERlYnVnZ2VyOjpicmVha1Byb2dyYW0oUmVmUHRyPEJyZWFrcG9pbnQ+
JiYgc3BlY2lhbEJyZWFrcG9pbnQpCiB2b2lkIERlYnVnZ2VyOjpjb250aW51ZVByb2dyYW0oKQog
ewogICAgIGNsZWFyTmV4dFBhdXNlU3RhdGUoKTsKKyAgICBtX2RlZmVycmVkQnJlYWtwb2ludHMu
Y2xlYXIoKTsKIAogICAgIGlmICghbV9pc1BhdXNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtODg2
LDc3ICs4ODQsMTA0IEBAIHZvaWQgRGVidWdnZXI6OnBhdXNlSWZOZWVkZWQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKICAgICBib29sIHBhdXNlTm93ID0gbV9wYXVzZUF0TmV4dE9wcG9y
dHVuaXR5OwogICAgIHBhdXNlTm93IHw9IChtX3BhdXNlT25DYWxsRnJhbWUgPT0gbV9jdXJyZW50
Q2FsbEZyYW1lKTsKIAotICAgIGJvb2wgZGlkUGF1c2VGb3JTdGVwID0gcGF1c2VOb3c7CisgICAg
Ym9vbCBhZnRlckJsYWNrYm94ZWRTY3JpcHQgPSBtX2FmdGVyQmxhY2tib3hlZFNjcmlwdDsKKyAg
ICBib29sIGRpZFBhdXNlRm9yU3RlcCA9IHBhdXNlTm93ICYmICFhZnRlckJsYWNrYm94ZWRTY3Jp
cHQ7CiAKICAgICBUZXh0UG9zaXRpb24gcG9zaXRpb24gPSBEZWJ1Z2dlckNhbGxGcmFtZTo6cG9z
aXRpb25Gb3JDYWxsRnJhbWUodm0sIG1fY3VycmVudENhbGxGcmFtZSk7CiAKLSAgICBhdXRvIGJy
ZWFrcG9pbnQgPSBkaWRIaXRCcmVha3BvaW50KGdsb2JhbE9iamVjdCwgc291cmNlSUQsIHBvc2l0
aW9uKTsKLSAgICBpZiAoYnJlYWtwb2ludCkKKyAgICBpZiAoYXV0byBicmVha3BvaW50ID0gZGlk
SGl0QnJlYWtwb2ludChzb3VyY2VJRCwgcG9zaXRpb24pKSB7CiAgICAgICAgIHBhdXNlTm93ID0g
dHJ1ZTsKKyAgICAgICAgbV9kZWZlcnJlZEJyZWFrcG9pbnRzLmFkZChicmVha3BvaW50LnJlbGVh
c2VOb25OdWxsKCkpOworICAgIH0KIAogICAgIC8vIFNwZWNpYWwgYnJlYWtwb2ludHMgYXJlIG9u
bHkgZ2l2ZW4gb25lIG9wcG9ydHVuaXR5IHRvIHBhdXNlLgotICAgIGF1dG8gc3BlY2lhbEJyZWFr
cG9pbnQgPSBXVEZNb3ZlKG1fc3BlY2lhbEJyZWFrcG9pbnQpOwotICAgIGlmIChzcGVjaWFsQnJl
YWtwb2ludCAmJiBzcGVjaWFsQnJlYWtwb2ludC0+c2hvdWxkUGF1c2UoKnRoaXMsIGdsb2JhbE9i
amVjdCkpCisgICAgaWYgKG1fc3BlY2lhbEJyZWFrcG9pbnQpIHsKICAgICAgICAgcGF1c2VOb3cg
PSB0cnVlOworICAgICAgICBtX2RlZmVycmVkQnJlYWtwb2ludHMuYWRkKG1fc3BlY2lhbEJyZWFr
cG9pbnQucmVsZWFzZU5vbk51bGwoKSk7CisgICAgfQogCiAgICAgbV9sYXN0RXhlY3V0ZWRMaW5l
ID0gcG9zaXRpb24ubV9saW5lLnplcm9CYXNlZEludCgpOwogICAgIGlmICghcGF1c2VOb3cpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgYWZ0ZXJCbGFja2JveGVkU2NyaXB0ID0gbV9hZnRl
ckJsYWNrYm94ZWRTY3JpcHQ7CiAgICAgY2xlYXJOZXh0UGF1c2VTdGF0ZSgpOwogCiAgICAgLy8g
TWFrZSBzdXJlIHdlIGFyZSBub3QgZ29pbmcgdG8gcGF1c2UgYWdhaW4gb24gYnJlYWtwb2ludCBh
Y3Rpb25zIGJ5CiAgICAgLy8gcmVzZXRpbmcgdGhlIHBhdXNlIHN0YXRlIGJlZm9yZSBleGVjdXRp
bmcgYW55IGJyZWFrcG9pbnQgYWN0aW9ucy4KICAgICBUZW1wb3JhcnlQYXVzZWRTdGF0ZSBwYXVz
ZWRTdGF0ZSgqdGhpcyk7CiAKLSAgICBpZiAoYnJlYWtwb2ludCB8fCBzcGVjaWFsQnJlYWtwb2lu
dCkgewotICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGFjdGlvbnMgY2FuIHBvdGVudGlhbGx5IHN0
b3AgdGhlIGRlYnVnZ2VyLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQKLSAgICAgICAgLy8gd2Ug
c3RpbGwgaGF2ZSBhIGN1cnJlbnQgY2FsbCBmcmFtZSB3aGVuIHdlIGdldCBiYWNrLgorICAgIGF1
dG8gc2hvdWxkRGVmZXJQYXVzZSA9IFsmXSAoKSB7CisgICAgICAgIGlmIChibGFja2JveFR5cGVJ
dGVyYXRvciA9PSBtX2JsYWNrYm94ZWRTY3JpcHRzLmVuZCgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgICAgIGJvb2wgYXV0b0NvbnRpbnVlID0gZmFsc2U7CisgICAgICAgIGlm
IChibGFja2JveFR5cGVJdGVyYXRvci0+dmFsdWUgIT0gQmxhY2tib3hUeXBlOjpEZWZlcnJlZCkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoYnJlYWtwb2ludCkgewot
ICAgICAgICAgICAgZXZhbHVhdGVCcmVha3BvaW50QWN0aW9ucygqYnJlYWtwb2ludCwgZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQgPSB0cnVlOwogCisgICAg
ICAgIGlmIChtX3BhdXNpbmdCcmVha3BvaW50SUQgIT0gbm9CcmVha3BvaW50SUQpIHsKKyAgICAg
ICAgICAgIGRpc3BhdGNoRnVuY3Rpb25Ub09ic2VydmVycyhbJl0gKE9ic2VydmVyJiBvYnNlcnZl
cikgeworICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpZERlZmVyQnJlYWtwb2ludFBhdXNlKG1f
cGF1c2luZ0JyZWFrcG9pbnRJRCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgbV9w
YXVzaW5nQnJlYWtwb2ludElEID0gbm9CcmVha3BvaW50SUQ7CisgICAgICAgIH0KKworICAgICAg
ICBzY2hlZHVsZVBhdXNlQXROZXh0T3Bwb3J0dW5pdHkoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfTsKKworICAgIGlmIChtX2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zICYmIHNo
b3VsZERlZmVyUGF1c2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2RlZmVycmVk
QnJlYWtwb2ludHMuaXNFbXB0eSgpKSB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8QnJlYWtwb2lu
dElEPiBwYXVzaW5nQnJlYWtwb2ludElEOworICAgICAgICBib29sIGhhc0V2YWx1YXRlZFNwZWNp
YWxCcmVha3BvaW50ID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGludWUgPSB0cnVl
OworCisgICAgICAgIGZvciAoYXV0byYmIGRlZmVycmVkQnJlYWtwb2ludCA6IHN0ZDo6ZXhjaGFu
Z2UobV9kZWZlcnJlZEJyZWFrcG9pbnRzLCB7IH0pKSB7CisgICAgICAgICAgICAvLyBOb3RlIHRo
YXQgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBjYW4gcG90ZW50aWFsbHkgc3RvcCB0aGUgZGVidWdn
ZXIsIHNvIHdlIG5lZWQgdG8KKyAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQgd2Ugc3RpbGwgaGF2
ZSBhIGN1cnJlbnQgY2FsbCBmcmFtZSBhZnRlciBldmFsdWF0aW5nIHRoZW0uCisKKyAgICAgICAg
ICAgIGJvb2wgc2hvdWxkUGF1c2UgPSBkZWZlcnJlZEJyZWFrcG9pbnQtPnNob3VsZFBhdXNlKCp0
aGlzLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCFzaG91bGRQYXVzZSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgZXZhbHVhdGVCcmVha3Bv
aW50QWN0aW9ucyhkZWZlcnJlZEJyZWFrcG9pbnQsIGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAg
ICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgICAgIGlmIChicmVha3BvaW50LT5pc0F1dG9Db250aW51ZSgpKQotICAgICAgICAgICAg
ICAgIGF1dG9Db250aW51ZSA9IHRydWU7CisgICAgICAgICAgICBpZiAoZGVmZXJyZWRCcmVha3Bv
aW50LT5pc0F1dG9Db250aW51ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgICAgICBzaG91bGRDb250aW51ZSA9IGZhbHNlOworCisgICAgICAgICAgICAvLyBPbmx5IHBy
b3BhZ2F0ZSBgUGF1c2VkRm9yQnJlYWtwb2ludGAgdG8gdGhlIGBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50YCBpZiB0aGUgZmlyc3QKKyAgICAgICAgICAgIC8vIGxpbmU6Y29sdW1uIGJyZWFrcG9pbnQg
aGl0IHdhcyBiZWZvcmUgdGhlIGZpcnN0IHNwZWNpYWwgYnJlYWtwb2ludCwgYXMgdGhlIGxhdHRl
cgorICAgICAgICAgICAgLy8gd291bGQgYWxyZWFkeSBoYXZlIHNldCBhIHVuaXF1ZSByZWFzb24g
YmVmb3JlIGF0dGVtcHRpbmcgdG8gcGF1c2UuCisgICAgICAgICAgICBpZiAoIWRlZmVycmVkQnJl
YWtwb2ludC5pc0xpbmtlZCgpKQorICAgICAgICAgICAgICAgIGhhc0V2YWx1YXRlZFNwZWNpYWxC
cmVha3BvaW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCFoYXNFdmFsdWF0ZWRTcGVj
aWFsQnJlYWtwb2ludCAmJiAhcGF1c2luZ0JyZWFrcG9pbnRJRCkKKyAgICAgICAgICAgICAgICBw
YXVzaW5nQnJlYWtwb2ludElEID0gZGVmZXJyZWRCcmVha3BvaW50LT5pZCgpOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKHNwZWNpYWxCcmVha3BvaW50KSB7Ci0gICAgICAgICAgICBldmFsdWF0
ZUJyZWFrcG9pbnRBY3Rpb25zKCpzcGVjaWFsQnJlYWtwb2ludCwgZ2xvYmFsT2JqZWN0KTsKLQot
ICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgICAgICBpZiAoc3BlY2lhbEJyZWFrcG9pbnQtPmlzQXV0b0NvbnRpbnVl
KCkpCi0gICAgICAgICAgICAgICAgYXV0b0NvbnRpbnVlID0gdHJ1ZTsKLSAgICAgICAgfQotCi0g
ICAgICAgIGlmIChhdXRvQ29udGludWUpIHsKKyAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlKSB7
CiAgICAgICAgICAgICBpZiAoIWRpZFBhdXNlRm9yU3RlcCkKICAgICAgICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgICAgIGJyZWFrcG9pbnQgPSBudWxscHRyOwotICAgICAgICAgICAgc3Bl
Y2lhbEJyZWFrcG9pbnQgPSBudWxscHRyOwotICAgICAgICB9IGVsc2UgaWYgKGJyZWFrcG9pbnQp
Ci0gICAgICAgICAgICBtX3BhdXNpbmdCcmVha3BvaW50SUQgPSBicmVha3BvaW50LT5pZCgpOwor
ICAgICAgICB9IGVsc2UgaWYgKHBhdXNpbmdCcmVha3BvaW50SUQpCisgICAgICAgICAgICBtX3Bh
dXNpbmdCcmVha3BvaW50SUQgPSAqcGF1c2luZ0JyZWFrcG9pbnRJRDsKICAgICB9CiAKLSAgICBp
ZiAoYmxhY2tib3hUeXBlSXRlcmF0b3IgIT0gbV9ibGFja2JveGVkU2NyaXB0cy5lbmQoKSAmJiBi
bGFja2JveFR5cGVJdGVyYXRvci0+dmFsdWUgPT0gQmxhY2tib3hUeXBlOjpEZWZlcnJlZCkgewot
ICAgICAgICBtX2FmdGVyQmxhY2tib3hlZFNjcmlwdCA9IHRydWU7Ci0gICAgICAgIHNjaGVkdWxl
UGF1c2VBdE5leHRPcHBvcnR1bml0eSgpOworICAgIGlmICghbV9ibGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9ucyAmJiBzaG91bGREZWZlclBhdXNlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9
CiAKICAgICB7CiAgICAgICAgIGF1dG8gcmVhc29uID0gbV9yZWFzb25Gb3JQYXVzZTsKICAgICAg
ICAgaWYgKGFmdGVyQmxhY2tib3hlZFNjcmlwdCkKICAgICAgICAgICAgIHJlYXNvbiA9IFBhdXNl
ZEFmdGVyQmxhY2tib3hlZFNjcmlwdDsKLSAgICAgICAgZWxzZSBpZiAoYnJlYWtwb2ludCkKKyAg
ICAgICAgZWxzZSBpZiAobV9wYXVzaW5nQnJlYWtwb2ludElEKQogICAgICAgICAgICAgcmVhc29u
ID0gUGF1c2VkRm9yQnJlYWtwb2ludDsKICAgICAgICAgUGF1c2VSZWFzb25EZWNsYXJhdGlvbiBy
YXVzZVJlYXNvbkRlY2xhcmF0aW9uKCp0aGlzLCByZWFzb24pOwogCkBAIC0xMTU0LDggKzExNzks
MTAgQEAgdm9pZCBEZWJ1Z2dlcjo6ZGlkRXhlY3V0ZVByb2dyYW0oQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCiAgICAgdXBkYXRlQ2FsbEZyYW1lKGxleGljYWxHbG9iYWxPYmplY3RGb3JDYWxsRnJhbWUo
bV92bSwgY2FsbGVyRnJhbWUpLCBjYWxsZXJGcmFtZSwgTm9QYXVzZSk7CiAKICAgICAvLyBEbyBu
b3QgY29udGludWUgc3RlcHBpbmcgaW50byBhbiB1bmtub3duIGZ1dHVyZSBwcm9ncmFtLgotICAg
IGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQorICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKSB7
CiAgICAgICAgIGNsZWFyTmV4dFBhdXNlU3RhdGUoKTsKKyAgICAgICAgbV9kZWZlcnJlZEJyZWFr
cG9pbnRzLmNsZWFyKCk7CisgICAgfQogfQogCiB2b2lkIERlYnVnZ2VyOjpjbGVhck5leHRQYXVz
ZVN0YXRlKCkKQEAgLTEyMTEsNiArMTIzOCwxMSBAQCB2b2lkIERlYnVnZ2VyOjpzZXRCbGFja2Jv
eFR5cGUoU291cmNlSUQgc291cmNlSUQsIHN0ZDo6b3B0aW9uYWw8QmxhY2tib3hUeXBlPiB0eQog
ICAgICAgICBtX2JsYWNrYm94ZWRTY3JpcHRzLnJlbW92ZShzb3VyY2VJRCk7CiB9CiAKK3ZvaWQg
RGVidWdnZXI6OnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGJvb2wgYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMpCit7CisgICAgbV9ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucyA9IGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zOworfQorCiB2b2lkIERlYnVnZ2Vy
OjpjbGVhckJsYWNrYm94KCkKIHsKICAgICBtX2JsYWNrYm94ZWRTY3JpcHRzLmNsZWFyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCmluZGV4IDkzODgwMjNhNjQx
Ni4uZjJhZmZkYjhjYmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRlYnVnZ2VyUHJpbWl0aXZlcy5oIgog
I2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMTE1LDYgKzEx
Niw3IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgQmxhY2tib3hUeXBlIHsgRGVmZXJyZWQs
IElnbm9yZWQgfTsKICAgICB2b2lkIHNldEJsYWNrYm94VHlwZShTb3VyY2VJRCwgc3RkOjpvcHRp
b25hbDxCbGFja2JveFR5cGU+KTsKKyAgICB2b2lkIHNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zKGJvb2wgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMpOwogICAgIHZvaWQgY2xl
YXJCbGFja2JveCgpOwogCiAgICAgYm9vbCBpc1BhdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQ
YXVzZWQ7IH0KQEAgLTE4MSw2ICsxODMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBicmVha3BvaW50QWN0aW9uTG9nKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiAvKiBk
YXRhICovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChC
cmVha3BvaW50QWN0aW9uSUQpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgYnJlYWtwb2ludEFj
dGlvblByb2JlKEpTR2xvYmFsT2JqZWN0KiwgQnJlYWtwb2ludEFjdGlvbklELCB1bnNpZ25lZCAv
KiBiYXRjaElkICovLCB1bnNpZ25lZCAvKiBzYW1wbGVJZCAqLywgSlNWYWx1ZSAvKiByZXN1bHQg
Ki8pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRGVmZXJCcmVha3BvaW50UGF1c2UoQnJl
YWtwb2ludElEKSB7IH0KICAgICB9OwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRP
YnNlcnZlcihPYnNlcnZlciYpOwpAQCAtMjU3LDcgKzI2MCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IERlYnVnZ2VyJiBtX2RlYnVnZ2VyOwogICAgIH07CiAKLSAgICBSZWZQdHI8QnJlYWtwb2ludD4g
ZGlkSGl0QnJlYWtwb2ludChKU0dsb2JhbE9iamVjdCosIFNvdXJjZUlELCBjb25zdCBUZXh0UG9z
aXRpb24mKTsKKyAgICBSZWZQdHI8QnJlYWtwb2ludD4gZGlkSGl0QnJlYWtwb2ludChTb3VyY2VJ
RCwgY29uc3QgVGV4dFBvc2l0aW9uJik7CiAKICAgICBEZWJ1Z2dlclBhcnNlRGF0YSYgZGVidWdn
ZXJQYXJzZURhdGEoU291cmNlSUQsIFNvdXJjZVByb3ZpZGVyKik7CiAKQEAgLTI5OSw2ICszMDIs
NyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8SlNHbG9iYWxPYmplY3QqPiBtX2dsb2JhbE9iamVj
dHM7CiAgICAgSGFzaE1hcDxTb3VyY2VJRCwgRGVidWdnZXJQYXJzZURhdGEsIFdURjo6SW50SGFz
aDxTb3VyY2VJRD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8U291cmNlSUQ+
PiBtX3BhcnNlRGF0YU1hcDsKICAgICBIYXNoTWFwPFNvdXJjZUlELCBCbGFja2JveFR5cGUsIFdU
Rjo6SW50SGFzaDxTb3VyY2VJRD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8
U291cmNlSUQ+PiBtX2JsYWNrYm94ZWRTY3JpcHRzOworICAgIGJvb2wgbV9ibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9ucyA6IDE7CiAKICAgICBib29sIG1fcGF1c2VBdE5leHRPcHBvcnR1bml0
eSA6IDE7CiAgICAgYm9vbCBtX3BhdXNlT25TdGVwTmV4dCA6IDE7CkBAIC0zMjIsNiArMzI2LDcg
QEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFNvdXJjZUlELCBMaW5lVG9CcmVha3BvaW50c01hcCwg
V1RGOjpJbnRIYXNoPFNvdXJjZUlEPiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0
czxTb3VyY2VJRD4+IG1fYnJlYWtwb2ludHNGb3JTb3VyY2VJRDsKICAgICBIYXNoU2V0PFJlZjxC
cmVha3BvaW50Pj4gbV9icmVha3BvaW50czsKICAgICBSZWZQdHI8QnJlYWtwb2ludD4gbV9zcGVj
aWFsQnJlYWtwb2ludDsKKyAgICBMaXN0SGFzaFNldDxSZWY8QnJlYWtwb2ludD4+IG1fZGVmZXJy
ZWRCcmVha3BvaW50czsKICAgICBCcmVha3BvaW50SUQgbV9wYXVzaW5nQnJlYWtwb2ludElEOwog
CiAgICAgUmVmUHRyPEJyZWFrcG9pbnQ+IG1fcGF1c2VPbkFsbEV4Y2VwdGlvbnNCcmVha3BvaW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBiZTkxMGViMjgyZWUuLmI5
ZGEwYzg4ZjYxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTEwNjks
NiArMTA2OSwxMyBAQCBib29sIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNob3VsZEJsYWNrYm94
VVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorUHJv
dG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0Qmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoYm9vbCBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucykKK3sKKyAgICBtX2RlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
KGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKTsKKworICAgIHJldHVybiB7IH07Cit9CisK
IHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2NyaXB0RXhlY3V0aW9uQmxvY2tlZEJ5Q1NQ
KGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCkKIHsKICAgICBpZiAobV9kZWJ1Z2dlci5uZWVk
c0V4Y2VwdGlvbkNhbGxiYWNrcygpKQpAQCAtMTMyMSw2ICsxMzI4LDExIEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlkQ29udGludWUoKQogICAgICAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlci0+cmVzdW1lZCgpOwogfQogCit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZERl
ZmVyQnJlYWtwb2ludFBhdXNlKEpTQzo6QnJlYWtwb2ludElEIGJyZWFrcG9pbnRJZCkKK3sKKyAg
ICB1cGRhdGVQYXVzZVJlYXNvbkFuZERhdGEoRGVidWdnZXJGcm9udGVuZERpc3BhdGNoZXI6OlJl
YXNvbjo6QnJlYWtwb2ludCwgYnVpbGRCcmVha3BvaW50UGF1c2VSZWFzb24oYnJlYWtwb2ludElk
KSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YnJlYWtQcm9ncmFtKERlYnVn
Z2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb24gcmVhc29uLCBSZWZQdHI8SlNPTjo6T2JqZWN0
PiYmIGRhdGEsIFJlZlB0cjxKU0M6OkJyZWFrcG9pbnQ+JiYgc3BlY2lhbEJyZWFrcG9pbnQpCiB7
CiAgICAgdXBkYXRlUGF1c2VSZWFzb25BbmREYXRhKHJlYXNvbiwgV1RGTW92ZShkYXRhKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggNmE1YTRkZTNkNmUyLi43NDc3YzYzMDI4
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKQEAgLTkzLDYgKzkzLDcgQEAgcHVi
bGljOgogICAgIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IHNldFBhdXNlRm9ySW50ZXJu
YWxTY3JpcHRzKGJvb2wgc2hvdWxkUGF1c2UpIGZpbmFsOwogICAgIFByb3RvY29sOjpFcnJvclN0
cmluZ09yPHN0ZDo6dHVwbGU8UmVmPFByb3RvY29sOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+LCBz
dGQ6Om9wdGlvbmFsPGJvb2w+IC8qIHdhc1Rocm93biAqLywgc3RkOjpvcHRpb25hbDxpbnQ+IC8q
IHNhdmVkUmVzdWx0SW5kZXggKi8+PiBldmFsdWF0ZU9uQ2FsbEZyYW1lKGNvbnN0IFByb3RvY29s
OjpEZWJ1Z2dlcjo6Q2FsbEZyYW1lSWQmLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0
IFN0cmluZyYgb2JqZWN0R3JvdXAsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBpbmNsdWRlQ29tbWFu
ZExpbmVBUEksIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBkb05vdFBhdXNlT25FeGNlcHRpb25zQW5k
TXV0ZUNvbnNvbGUsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiByZXR1cm5CeVZhbHVlLCBzdGQ6Om9w
dGlvbmFsPGJvb2w+JiYgZ2VuZXJhdGVQcmV2aWV3LCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgc2F2
ZVJlc3VsdCwgc3RkOjpvcHRpb25hbDxib29sPiYmIGVtdWxhdGVVc2VyR2VzdHVyZSkgb3ZlcnJp
ZGU7CiAgICAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2V0U2hvdWxkQmxhY2tib3hV
UkwoY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgc2hvdWxkQmxhY2tib3gsIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4mJiBjYXNlU2Vuc2l0aXZlLCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgaXNSZWdleCkgZmlu
YWw7CisgICAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2V0QmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnMoYm9vbCBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucykgZmluYWw7
CiAKICAgICAvLyBKU0M6OkRlYnVnZ2VyOjpDbGllbnQKICAgICBKU0M6OkpTT2JqZWN0KiBkZWJ1
Z2dlclNjb3BlRXh0ZW5zaW9uT2JqZWN0KEpTQzo6RGVidWdnZXImLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZSYpIGZpbmFsOwpAQCAtMTA2LDYgKzEwNyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpZENvbnRpbnVlKCkgZmluYWw7CiAgICAgdm9pZCBicmVha3Bv
aW50QWN0aW9uU291bmQoSlNDOjpCcmVha3BvaW50QWN0aW9uSUQpIGZpbmFsOwogICAgIHZvaWQg
YnJlYWtwb2ludEFjdGlvblByb2JlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkJyZWFrcG9p
bnRBY3Rpb25JRCwgdW5zaWduZWQgYmF0Y2hJZCwgdW5zaWduZWQgc2FtcGxlSWQsIEpTQzo6SlNW
YWx1ZSBzYW1wbGUpIGZpbmFsOworICAgIHZvaWQgZGlkRGVmZXJCcmVha3BvaW50UGF1c2UoSlND
OjpCcmVha3BvaW50SUQpIGZpbmFsOwogCiAgICAgYm9vbCBpc1BhdXNlZCgpIGNvbnN0OwogICAg
IGJvb2wgYnJlYWtwb2ludHNBY3RpdmUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgppbmRleCA1MmI3MzEx
NzM3ZjMuLjIwOWYxZGU4YWM0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgpAQCAtMzIyLDYgKzMyMiwxMyBAQAog
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjogImJvb2xl
YW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgPGNvZGU+dXJs
PC9jb2RlPiBpcyBjYXNlIHNlbnNpdGl2ZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJJZiB0cnVlLCB0cmVhdCA8Y29kZT51cmw8L2NvZGU+IGFzIHJlZ3VsYXIgZXhwcmVz
c2lvbi4iIH0KICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAic2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMiLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIlNldHMgd2hldGhlciBldmFsdWF0aW9uIG9mIGJyZWFrcG9pbnQg
Y29uZGl0aW9ucywgaWdub3JlIGNvdW50cywgYW5kIGFjdGlvbnMgaGFwcGVuIGF0IHRoZSBsb2Nh
dGlvbiBvZiB0aGUgYnJlYWtwb2ludCBvciBhcmUgZGVmZXJyZWQgZHVlIHRvIGJsYWNrYm94aW5n
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zIiwgInR5cGUiOiAiYm9vbGVhbiIgfQor
ICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cKaW5kZXggMjhjYjBjOTE2MDQwLi5iM2JjMmEwYmFhYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAxLTE0ICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgYSBz
d2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgKGNvbmRpdGlv
biwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZlY3RlZCBieSBzY3JpcHQgYmxh
Y2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEJlaW5nIGFibGUgdG8gZGVmZXIgYnJlYWtwb2ludCBldmFsdWF0aW9ucyB1bnRpbCB0aGUgbmV4
dCBhY3R1YWwgcGF1c2UgY2FuIHNvbWV0aW1lcyBiZSBmYXIKKyAgICAgICAgbW9yZSB1c2VmdWwg
dGhhbiBkb2luZyB0aGUgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBhdCB0aGUgYnJlYWtwb2ludCdz
IG9yaWdpbmFsIGxvY2F0aW9uLgorCisgICAgICAgIEFzIGFuIGV4YW1wbGUsIGNvbmZpZ3VyaW5n
IHRoZSBBbGwgRXZlbnRzIGJyZWFrcG9pbnQgd2l0aCBhIGBjb25zb2xlLnRyYWNlKClgIGFjdGlv
biBhbmQKKyAgICAgICAgYXV0by1jb250aW51ZSBlbmFibGVkIHdvdWxkIG5vdCBwcm92aWRlIG11
Y2ggdXNlZnVsIGluZm9ybWF0aW9uIHdpdGhvdXQgYWxzbyBibGFja2JveGluZworICAgICAgICBi
cmVha3BvaW50IGV2YWx1YXRpb25zIGFzIHRoZSBvcmlnaW5hbCBwYXVzZSBsb2NhdGlvbiBvZiB0
aGUgQWxsIEV2ZW50cyBicmVha3BvaW50IGlzIG9uIHRoZQorICAgICAgICBmaXJzdCBsaW5lIG9m
IHRoZSBldmVudCBoYW5kbGVyLCBtZWFuaW5nIHRoYXQgaWYgdGhlIHNjcmlwdCBjb250YWluaW5n
IHRoZSBldmVudCBoYW5kbGVyIGlzCisgICAgICAgIGJsYWNrYm94ZWQgdGhlbiB0aGUgYGNvbnNv
bGUudHJhY2UoKWAgd291bGQgc3RpbGwgb25seSBzaG93IHRoYXQgbG9jYXRpb24gZXZlbiB0aG91
Z2ggdGhlCisgICAgICAgIFNvdXJjZXMgVGFiIHdvdWxkIHNob3cgdGhlIGZpcnN0IGxpbmUgb2Yg
Y29kZSBvdXRzaWRlIG9mIHRoYXQgc2NyaXB0IChkdWUgdG8gdGhlIGJsYWNrYm94KS4KKyAgICAg
ICAgQmVpbmcgYWJsZSB0byBhbHNvIGJsYWNrYm94IGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgd291
bGQgaW5zdGVhZCBjYXVzZSB0aGUgYGNvbnNvbGUudHJhY2UoKWAKKyAgICAgICAgYWN0aW9uIHRv
IGhhdmUgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZSBTb3VyY2VzIFRhYiwgc2luY2UgaXQncyBldmFs
dWF0aW9uIHdvdWxkIGJlIGRlZmVycmVkCisgICAgICAgIHVudGlsIGV4ZWN1dGlvbiBhY3R1YWxs
eSBwYXVzZWQsIHdoaWNoIGlzIGZ1cnRoZXIgaW5zaWRlIHRoZSBldmVudCBoYW5kbGVyCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGluZy5qczoKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRlYnVn
Z2VyTWFuYWdlci5wcm90b3R5cGUuYXN5bmMgaW5pdGlhbGl6ZVRhcmdldCk6CisgICAgICAgIChX
SS5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucyk6IEFkZGVkLgorICAgICAgICAoV0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5faGFu
ZGxlQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAg
Q3JlYXRlIGEgZ2xvYmFsIGBXSS5TZXR0aW5nYCBmb3IgdGhpcyBmZWF0dXJlIGFuZCBoYW5kbGUg
Y2hhbmdlcyBmcm9tIHRoZSBjb2RlIGJlbG93LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9CbGFja2JveFNldHRpbmdzVmlldy5qczoKKyAgICAgICAgKFdJLkJsYWNrYm94U2V0dGlu
Z3NWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzczoKKyAgICAgICAgKC5zZXR0aW5ncy12aWV3
LmJsYWNrYm94ID4gcCA+IGxhYmVsKTogQWRkZWQuCisgICAgICAgICguc2V0dGluZ3Mtdmlldy5i
bGFja2JveCA+IHAgPiBsYWJlbCA+IGlucHV0KTogQWRkZWQuCisgICAgICAgICguc2V0dGluZ3Mt
dmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCA+IHNwYW4pOiBBZGRlZC4KKyAgICAgICAgQWRkIGEg
Y2hlY2tib3ggYW5kIGV4cGxhbmF0aW9uIG9mIHRoaXMgbmV3IGZlYXR1cmUgaW4gdGhlIEJsYWNr
Ym94IHBhbmUgb2YgdGhlIFNldHRpbmdzIFRhYi4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKwogMjAyMi0wMS0xNCAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU291cmNlczog
Y2Fubm90IGNvcHkgZ3JvdXBpbmcgb2YgYmxhY2tib3hlZCBjYWxsIGZyYW1lcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggYmEyZWY2MTdiNmMwLi45ZDY3NjAxNGVhNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xv
Y2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlv
bnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtMTU5LDYgKzE1OSw3IEBAIGxvY2Fs
aXplZFN0cmluZ3NbIkFsbCBpdGVtcyBpbiBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIHZhbGlkIERP
TSBub2RlcyJdID0gIkFsbCBpCiAvKiBMYWJlbCBmb3Igc2V0dGluZyB0aGF0IGFsbG93cyB0aGUg
dXNlciB0byBpbnNwZWN0IHRoZSBXZWIgSW5zcGVjdG9yIHVzZXIgaW50ZXJmYWNlLiAqLwogbG9j
YWxpemVkU3RyaW5nc1siQWxsb3cgSW5zcGVjdGluZyBXZWIgSW5zcGVjdG9yIEAgRXhwZXJpbWVu
dGFsIFNldHRpbmdzIl0gPSAiQWxsb3cgSW5zcGVjdGluZyBXZWIgSW5zcGVjdG9yIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkFsbG93IE1lZGlhIENhcHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiXSA9ICJB
bGxvdyBNZWRpYSBDYXB0dXJlIG9uIEluc2VjdXJlIFNpdGVzIjsKK2xvY2FsaXplZFN0cmluZ3Nb
IkFsc28gZGVmZXIgZXZhbHVhdGluZyBicmVha3BvaW50IGNvbmRpdGlvbnMsIGlnbm9yZSBjb3Vu
dHMsIGFuZCBhY3Rpb25zIHVudGlsIGV4ZWN1dGlvbiBoYXMgY29udGludWVkIG91dHNpZGUgb2Yg
dGhlIHJlbGF0ZWQgc2NyaXB0IGluc3RlYWQgb2YgYXQgdGhlIGJyZWFrcG9pbnQncyBsb2NhdGlv
bi4iXSA9ICJBbHNvIGRlZmVyIGV2YWx1YXRpbmcgYnJlYWtwb2ludCBjb25kaXRpb25zLCBpZ25v
cmUgY291bnRzLCBhbmQgYWN0aW9ucyB1bnRpbCBleGVjdXRpb24gaGFzIGNvbnRpbnVlZCBvdXRz
aWRlIG9mIHRoZSByZWxhdGVkIHNjcmlwdCBpbnN0ZWFkIG9mIGF0IHRoZSBicmVha3BvaW50J3Mg
bG9jYXRpb24uIjsKIC8qIFByb3BlcnR5IHRpdGxlIGZvciBgZm9udC12YXJpYW50LWFsdGVybmF0
ZXNgLiAqLwogbG9jYWxpemVkU3RyaW5nc1siQWx0ZXJuYXRlIEdseXBocyBAIEZvbnQgRGV0YWls
cyBTaWRlYmFyIFByb3BlcnR5Il0gPSAiQWx0ZXJuYXRlIEdseXBocyI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gbG9hZCB0aGUgcmVzb3VyY2UuIl0gPSAi
QW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5nIHRvIGxvYWQgdGhlIHJlc291cmNlLiI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMKaW5k
ZXggODUzZjdmYzA2MDE3Li5lNzMwOTcyMGExMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGluZy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMKQEAgLTE4NCw2ICsxODQsNyBA
QCBXSS5EZWJ1Z1NldHRpbmcgPSBjbGFzcyBEZWJ1Z1NldHRpbmcgZXh0ZW5kcyBXSS5TZXR0aW5n
CiB9OwogCiBXSS5zZXR0aW5ncyA9IHsKKyAgICBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
czogbmV3IFdJLlNldHRpbmcoImJsYWNrYm94LWJyZWFrcG9pbnQtZXZhbHVhdGlvbnMiLCBmYWxz
ZSksCiAgICAgY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVFbmFibGVkOiBuZXcgV0kuU2V0dGlu
ZygiY2FudmFzLXJlY29yZGluZy1hdXRvLWNhcHR1cmUtZW5hYmxlZCIsIGZhbHNlKSwKICAgICBj
YW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQ6IG5ldyBXSS5TZXR0aW5nKCJjYW52
YXMtcmVjb3JkaW5nLWF1dG8tY2FwdHVyZS1mcmFtZS1jb3VudCIsIDEpLAogICAgIGNvbnNvbGVB
dXRvRXhwYW5kVHJhY2U6IG5ldyBXSS5TZXR0aW5nKCJjb25zb2xlLWF1dG8tZXhwYW5kLXRyYWNl
IiwgdHJ1ZSksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKaW5kZXggNjI4Mjhh
N2VkNGFjLi5jOTIxYWFiZmFlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIu
anMKQEAgLTQzLDYgKzQzLDggQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJN
YW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCwgdGhpcy5f
dGFyZ2V0UmVtb3ZlZCwgdGhpcyk7CiAKKyAgICAgICAgV0kuc2V0dGluZ3MuYmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnMuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5n
ZWQsIHRoaXMuX2hhbmRsZUJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zQ2hhbmdlLCB0aGlz
KTsKKwogICAgICAgICBpZiAoV0kuaXNFbmdpbmVlcmluZ0J1aWxkKSB7CiAgICAgICAgICAgICBX
SS5zZXR0aW5ncy5lbmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNjcmlwdHMuYWRkRXZlbnRMaXN0ZW5l
cihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUVuZ2luZWVyaW5nU2hvd0lu
dGVybmFsU2NyaXB0c1NldHRpbmdDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgICAgIFdJLnNldHRp
bmdzLmVuZ2luZWVyaW5nUGF1c2VGb3JJbnRlcm5hbFNjcmlwdHMuYWRkRXZlbnRMaXN0ZW5lcihX
SS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUVuZ2luZWVyaW5nUGF1c2VGb3JJ
bnRlcm5hbFNjcmlwdHNTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CkBAIC0yMjMsNiArMjI1LDggQEAg
V0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9zZXRCbGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9ucyh0YXJnZXQpOworCiAgICAgICAgIGlmIChXSS5pc0VuZ2lu
ZWVyaW5nQnVpbGQpIHsKICAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMik6IERl
YnVnZ2VyQWdlbnQuc2V0UGF1c2VGb3JJbnRlcm5hbFNjcmlwdHMgZGlkIG5vdCBleGlzdCB5ZXQu
CiAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlRm9y
SW50ZXJuYWxTY3JpcHRzIikpCkBAIC0xMjU2LDYgKzEyNjAsMTMgQEAgV0kuRGVidWdnZXJNYW5h
Z2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIH0K
ICAgICB9CiAKKyAgICBfc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnModGFyZ2V0KQor
ICAgIHsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDE1KTogRGVidWdnZXIuc2V0Qmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIGlm
ICh0YXJnZXQuaGFzQ29tbWFuZCgiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnMiKSkKKyAgICAgICAgICAgIHRhcmdldC5EZWJ1Z2dlckFnZW50LnNldEJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zKFdJLnNldHRpbmdzLmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zLnZhbHVlKTsKKyAgICB9CisKICAgICBfYnJlYWtwb2ludERpc3BsYXlMb2NhdGlvbkRpZENo
YW5nZShldmVudCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pZ25vcmVCcmVha3BvaW50RGlz
cGxheUxvY2F0aW9uRGlkQ2hhbmdlRXZlbnQpCkBAIC0xNDAwLDYgKzE0MTEsMTIgQEAgV0kuRGVi
dWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAg
ICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5EZWJ1Z2dlck1hbmFn
ZXIuRXZlbnQuUmVzdW1lZCk7CiAgICAgfQogCisgICAgX2hhbmRsZUJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0
IG9mIFdJLnRhcmdldHMpCisgICAgICAgICAgICB0aGlzLl9zZXRCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9ucyh0YXJnZXQpOworICAgIH0KKwogICAgIF9oYW5kbGVFbmdpbmVlcmluZ1Nob3dJ
bnRlcm5hbFNjcmlwdHNTZXR0aW5nQ2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAgIGxldCBl
dmVudFR5cGUgPSBXSS5zZXR0aW5ncy5lbmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNjcmlwdHMudmFs
dWUgPyBXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQgOiBXSS5EZWJ1Z2dlck1h
bmFnZXIuRXZlbnQuU2NyaXB0UmVtb3ZlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3
LmNzcwppbmRleCAxYzA1ZmUyYTZmM2EuLjdiOTJmNjA5MDNjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcu
Y3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNr
Ym94U2V0dGluZ3NWaWV3LmNzcwpAQCAtNDgsNiArNDgsMTkgQEAKICAgICB2ZXJ0aWNhbC1hbGln
bjogbWlkZGxlOwogfQogCisuc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCB7Cisg
ICAgZGlzcGxheTogZmxleDsKK30KKworLnNldHRpbmdzLXZpZXcuYmxhY2tib3ggPiBwID4gbGFi
ZWwgPiBpbnB1dCB7CisgICAgZmxleC1zaHJpbms6IDA7CisgICAgbWFyZ2luLWlubGluZTogMC41
cHggNHB4OworfQorCisuc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCA+IHNwYW4g
eworICAgIG1hcmdpbi10b3A6IDEuNXB4OworfQorCiAuc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+
IHRhYmxlIHsKICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hTZXR0aW5n
c1ZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFj
a2JveFNldHRpbmdzVmlldy5qcwppbmRleCA5MGEwM2QwYWE3Y2UuLjA0MDEyYzU1OTFmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2ti
b3hTZXR0aW5nc1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuanMKQEAgLTEwNiw2ICsxMDYsMTggQEAgV0ku
QmxhY2tib3hTZXR0aW5nc1ZpZXcgPSBjbGFzcyBCbGFja2JveFNldHRpbmdzVmlldyBleHRlbmRz
IFdJLlNldHRpbmdzVmlldwogICAgICAgICAgICAgYS5hcHBlbmQoYik7CiAgICAgICAgICAgICBy
ZXR1cm4gYTsKICAgICAgICAgfSk7CisKKyAgICAgICAgbGV0IGJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zRXhwbGFuYXRpb25FbGVtZW50ID0gdGhpcy5lbGVtZW50Lmluc2VydEJlZm9yZShk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIiksIHRoaXMuZWxlbWVudC5sYXN0Q2hpbGQpOworICAg
ICAgICBsZXQgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkxhYmVsID0g
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkVsZW1lbnQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKSk7CisKKyAgICAgICAgbGV0IGJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zRXhwbGFuYXRpb25DaGVja2JveCA9IGJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zRXhwbGFuYXRpb25MYWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbnB1dCIpKTsKKyAgICAgICAgYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNFeHBsYW5hdGlvbkNoZWNrYm94LnR5cGUgPSAiY2hlY2tib3giOworICAgICAgICBibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uQ2hlY2tib3guY2hlY2tlZCA9IFdJ
LnNldHRpbmdzLmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLnZhbHVlOworICAgICAgICBi
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uQ2hlY2tib3guYWRkRXZlbnRM
aXN0ZW5lcigiY2hhbmdlIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBXSS5zZXR0aW5ncy5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy52YWx1ZSA9IGJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zRXhwbGFuYXRpb25DaGVja2JveC5jaGVja2VkOworICAgICAgICB9KTsKKworICAg
ICAgICBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uTGFiZWwuYXBwZW5k
KFdJLlVJU3RyaW5nKCJBbHNvIGRlZmVyIGV2YWx1YXRpbmcgYnJlYWtwb2ludCBjb25kaXRpb25z
LCBpZ25vcmUgY291bnRzLCBhbmQgYWN0aW9ucyB1bnRpbCBleGVjdXRpb24gaGFzIGNvbnRpbnVl
ZCBvdXRzaWRlIG9mIHRoZSByZWxhdGVkIHNjcmlwdCBpbnN0ZWFkIG9mIGF0IHRoZSBicmVha3Bv
aW50J3MgbG9jYXRpb24uIikpOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUK
</data>
<flag name="commit-queue"
          id="475311"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449275</attachid>
            <date>2022-01-15 15:03:17 -0800</date>
            <delta_ts>2022-01-21 15:17:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235274-20220115160313.patch</filename>
            <type>text/plain</type>
            <size>55791</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDgzNzM3NTlkYzZkNmViZmJlNGMxYmM4ZGJiZGUy
M2YzMTA2OWIwN2EuLjM5YjAyMjFhMzEzYmNmMDRmOGNjYmRhYTgwODQ5OTcxZDVkNWI2N2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIyLTAxLTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgKGNv
bmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZlY3RlZCBieSBzY3Jp
cHQgYmxhY2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJlaW5nIGFibGUgdG8gZGVmZXIgYnJlYWtwb2ludCBldmFsdWF0aW9ucyB1bnRpbCB0
aGUgbmV4dCBhY3R1YWwgcGF1c2UgY2FuIHNvbWV0aW1lcyBiZSBmYXIKKyAgICAgICAgbW9yZSB1
c2VmdWwgdGhhbiBkb2luZyB0aGUgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBhdCB0aGUgYnJlYWtw
b2ludCdzIG9yaWdpbmFsIGxvY2F0aW9uLgorCisgICAgICAgIEFzIGFuIGV4YW1wbGUsIGNvbmZp
Z3VyaW5nIHRoZSBBbGwgRXZlbnRzIGJyZWFrcG9pbnQgd2l0aCBhIGBjb25zb2xlLnRyYWNlKClg
IGFjdGlvbiBhbmQKKyAgICAgICAgYXV0by1jb250aW51ZSBlbmFibGVkIHdvdWxkIG5vdCBwcm92
aWRlIG11Y2ggdXNlZnVsIGluZm9ybWF0aW9uIHdpdGhvdXQgYWxzbyBibGFja2JveGluZworICAg
ICAgICBicmVha3BvaW50IGV2YWx1YXRpb25zIGFzIHRoZSBvcmlnaW5hbCBwYXVzZSBsb2NhdGlv
biBvZiB0aGUgQWxsIEV2ZW50cyBicmVha3BvaW50IGlzIG9uIHRoZQorICAgICAgICBmaXJzdCBs
aW5lIG9mIHRoZSBldmVudCBoYW5kbGVyLCBtZWFuaW5nIHRoYXQgaWYgdGhlIHNjcmlwdCBjb250
YWluaW5nIHRoZSBldmVudCBoYW5kbGVyIGlzCisgICAgICAgIGJsYWNrYm94ZWQgdGhlbiB0aGUg
YGNvbnNvbGUudHJhY2UoKWAgd291bGQgc3RpbGwgb25seSBzaG93IHRoYXQgbG9jYXRpb24gZXZl
biB0aG91Z2ggdGhlCisgICAgICAgIFNvdXJjZXMgVGFiIHdvdWxkIHNob3cgdGhlIGZpcnN0IGxp
bmUgb2YgY29kZSBvdXRzaWRlIG9mIHRoYXQgc2NyaXB0IChkdWUgdG8gdGhlIGJsYWNrYm94KS4K
KyAgICAgICAgQmVpbmcgYWJsZSB0byBhbHNvIGJsYWNrYm94IGJyZWFrcG9pbnQgZXZhbHVhdGlv
bnMgd291bGQgaW5zdGVhZCBjYXVzZSB0aGUgYGNvbnNvbGUudHJhY2UoKWAKKyAgICAgICAgYWN0
aW9uIHRvIGhhdmUgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZSBTb3VyY2VzIFRhYiwgc2luY2UgaXQn
cyBldmFsdWF0aW9uIHdvdWxkIGJlIGRlZmVycmVkCisgICAgICAgIHVudGlsIGV4ZWN1dGlvbiBh
Y3R1YWxseSBwYXVzZWQsIHdoaWNoIGlzIGZ1cnRoZXIgaW5zaWRlIHRoZSBldmVudCBoYW5kbGVy
LgorCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAoSlNDOjpEZWJ1
Z2dlcjo6RGVidWdnZXIpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2lu
dCk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpldmFsdWF0ZUJyZWFrcG9pbnRDb25kaXRpb24p
OgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6Y29udGludWVQcm9ncmFtKToKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXI6OnBhdXNlSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6ZGlk
RXhlY3V0ZVByb2dyYW0pOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6c2V0QmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnMpOiBBZGRlZC4KKyAgICAgICAgS2VlcCB0cmFjayBvZiBldmVyeSBg
QnJlYWtwb2ludGAgd2FudHMgdG8gcGF1c2UgYnV0IGlzIGRlZmVycmVkIGR1ZSB0byBibGFja2Jv
eGluZy4KKyAgICAgICAgRGVwZW5kaW5nIG9uIHdoZXRoZXIgYnJlYWtwb2ludCBldmFsdWF0aW9u
cyBhcmUgYWxzbyBibGFja2JveGVkIChiYXNlZCBvbiB0aGUgZmxhZyBzZXQgdmlhCisgICAgICAg
IHRoZSBwaXBpbmcgY29kZS9sb2dpYyBiZWxvdyksIGNoZWNrIGlmIHRoZSBzY3JpcHQgYXR0ZW1w
dGluZyB0byBiZSBwYXVzZWQgaW4gaXMgYmxhY2tib3hlZAorICAgICAgICBiZWZvcmUgb3IgYWZ0
ZXIgaGFuZGxpbmcgYnJlYWtwb2ludCBldmFsdWF0aW9ucy4KKyAgICAgICAgU2lkZSBlZmZlY3Rz
IG9mIHRoaXMgY2hhbmdlIGFyZToKKyAgICAgICAgLSBicmVha3BvaW50IGNvbmRpdGlvbnMgYXJl
IG5vdyBldmFsdWF0ZWQgcmlnaHQgYmVmb3JlIHRoYXQgYnJlYWtwb2ludCdzIGFjdGlvbnMsIGlu
c3RlYWQgb2YKKyAgICAgICAgICBldmFsdWF0aW5nIGFsbCBicmVha3BvaW50IGNvbmRpdGlvbnMg
YmVmb3JlIGFsbCBicmVha3BvaW50IGFjdGlvbnMKKyAgICAgICAgLSBpZiBicmVha3BvaW50IGV2
YWx1YXRpb25zIGFyZSBibGFja2JveGVkLCBtb3JlIHRoYW4gdHdvIGJyZWFrcG9pbnRzIGNhbiBu
b3cgYmUgZXZhbHVhdGVkCisgICAgICAgIGR1cmluZyBhIHNpbmdsZSBwYXVzZSBhdHRlbXB0IGRl
cGVuZGluZyBvbiBob3cgbWF5IGRlZmVycmFscyAod2l0aCBicmVha3BvaW50cykgaGFwcGVuZWQK
KworICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2Vy
OjpPYnNlcnZlcjo6ZGlkRGVmZXJCcmVha3BvaW50UGF1c2UpOiBBZGRlZC4KKyAgICAgICAgQWRk
IGEgd2F5IHRvIG5vdGlmeSBgSW5zcGVjdG9yRGVidWdnZXJBZ2VudGAgb2YgZGVmZXJyZWQgYnJl
YWtwb2ludCBwYXVzZXMgc28gdGhhdCB0aGUKKyAgICAgICAgY29ycmVjdCBgb3JpZ2luYWxSZWFz
b25gIHdpbGwgYmUgdXNlZCBhZnRlciBhIGRlZmVycmVkIHBhdXNlLgorCisgICAgICAgICogaW5z
cGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGVidWdnZXJBZ2VudDo6c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMpOiBBZGRlZC4K
KyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkRGVmZXJCcmVh
a3BvaW50UGF1c2UpOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgYHNldEJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zYCBjb21tYW5kIHRoYXQgcGFzc2VzIGRpcmVjdGx5IHRvIGBEZWJ1Z2dlcmAu
CisKIDIwMjItMDEtMTUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBGaXggRGF0ZSBmdW5jdGlvbnMnIGFyZ3VtZW50IGNvZXJjaW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwppbmRleCAyOGNiMGM5MTYwNDAxMDhlZTY0MzJhODFlMTExOTVhZDYzYWZi
NmM4Li5iM2JjMmEwYmFhYTQ0M2QzODU1NjIzMjc4YWEwNDBhMDJmMzBhMTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAyMi0wMS0xNCAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGEgc3dp
dGNoIHRvIGNvbnRyb2wgd2hldGhlciBicmVha3BvaW50IGV2YWx1YXRpb25zIChjb25kaXRpb24s
IGlnbm9yZSBjb3VudCwgYWN0aW9ucykgYXJlIGFsc28gYWZmZWN0ZWQgYnkgc2NyaXB0IGJsYWNr
Ym94aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzUyNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBC
ZWluZyBhYmxlIHRvIGRlZmVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgdW50aWwgdGhlIG5leHQg
YWN0dWFsIHBhdXNlIGNhbiBzb21ldGltZXMgYmUgZmFyCisgICAgICAgIG1vcmUgdXNlZnVsIHRo
YW4gZG9pbmcgdGhlIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgYXQgdGhlIGJyZWFrcG9pbnQncyBv
cmlnaW5hbCBsb2NhdGlvbi4KKworICAgICAgICBBcyBhbiBleGFtcGxlLCBjb25maWd1cmluZyB0
aGUgQWxsIEV2ZW50cyBicmVha3BvaW50IHdpdGggYSBgY29uc29sZS50cmFjZSgpYCBhY3Rpb24g
YW5kCisgICAgICAgIGF1dG8tY29udGludWUgZW5hYmxlZCB3b3VsZCBub3QgcHJvdmlkZSBtdWNo
IHVzZWZ1bCBpbmZvcm1hdGlvbiB3aXRob3V0IGFsc28gYmxhY2tib3hpbmcKKyAgICAgICAgYnJl
YWtwb2ludCBldmFsdWF0aW9ucyBhcyB0aGUgb3JpZ2luYWwgcGF1c2UgbG9jYXRpb24gb2YgdGhl
IEFsbCBFdmVudHMgYnJlYWtwb2ludCBpcyBvbiB0aGUKKyAgICAgICAgZmlyc3QgbGluZSBvZiB0
aGUgZXZlbnQgaGFuZGxlciwgbWVhbmluZyB0aGF0IGlmIHRoZSBzY3JpcHQgY29udGFpbmluZyB0
aGUgZXZlbnQgaGFuZGxlciBpcworICAgICAgICBibGFja2JveGVkIHRoZW4gdGhlIGBjb25zb2xl
LnRyYWNlKClgIHdvdWxkIHN0aWxsIG9ubHkgc2hvdyB0aGF0IGxvY2F0aW9uIGV2ZW4gdGhvdWdo
IHRoZQorICAgICAgICBTb3VyY2VzIFRhYiB3b3VsZCBzaG93IHRoZSBmaXJzdCBsaW5lIG9mIGNv
ZGUgb3V0c2lkZSBvZiB0aGF0IHNjcmlwdCAoZHVlIHRvIHRoZSBibGFja2JveCkuCisgICAgICAg
IEJlaW5nIGFibGUgdG8gYWxzbyBibGFja2JveCBicmVha3BvaW50IGV2YWx1YXRpb25zIHdvdWxk
IGluc3RlYWQgY2F1c2UgdGhlIGBjb25zb2xlLnRyYWNlKClgCisgICAgICAgIGFjdGlvbiB0byBo
YXZlIHRoZSBzYW1lIG91dHB1dCBhcyB0aGUgU291cmNlcyBUYWIsIHNpbmNlIGl0J3MgZXZhbHVh
dGlvbiB3b3VsZCBiZSBkZWZlcnJlZAorICAgICAgICB1bnRpbCBleGVjdXRpb24gYWN0dWFsbHkg
cGF1c2VkLCB3aGljaCBpcyBmdXJ0aGVyIGluc2lkZSB0aGUgZXZlbnQgaGFuZGxlcgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanM6CisgICAgICAgICogVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAgICAgIChXSS5EZWJ1Z2dl
ck1hbmFnZXIucHJvdG90eXBlLmFzeW5jIGluaXRpYWxpemVUYXJnZXQpOgorICAgICAgICAoV0ku
RGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMpOiBBZGRlZC4KKyAgICAgICAgKFdJLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX2hhbmRs
ZUJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zQ2hhbmdlKTogQWRkZWQuCisgICAgICAgIENy
ZWF0ZSBhIGdsb2JhbCBgV0kuU2V0dGluZ2AgZm9yIHRoaXMgZmVhdHVyZSBhbmQgaGFuZGxlIGNo
YW5nZXMgZnJvbSB0aGUgY29kZSBiZWxvdy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuanM6CisgICAgICAgIChXSS5CbGFja2JveFNldHRpbmdz
Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9CbGFja2JveFNldHRpbmdzVmlldy5jc3M6CisgICAgICAgICguc2V0dGluZ3Mtdmlldy5i
bGFja2JveCA+IHAgPiBsYWJlbCk6IEFkZGVkLgorICAgICAgICAoLnNldHRpbmdzLXZpZXcuYmxh
Y2tib3ggPiBwID4gbGFiZWwgPiBpbnB1dCk6IEFkZGVkLgorICAgICAgICAoLnNldHRpbmdzLXZp
ZXcuYmxhY2tib3ggPiBwID4gbGFiZWwgPiBzcGFuKTogQWRkZWQuCisgICAgICAgIEFkZCBhIGNo
ZWNrYm94IGFuZCBleHBsYW5hdGlvbiBvZiB0aGlzIG5ldyBmZWF0dXJlIGluIHRoZSBCbGFja2Jv
eCBwYW5lIG9mIHRoZSBTZXR0aW5ncyBUYWIuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKIDIwMjItMDEtMTQgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNvdXJjZXM6IGNh
bm5vdCBjb3B5IGdyb3VwaW5nIG9mIGJsYWNrYm94ZWQgY2FsbCBmcmFtZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IDBiY2UyYTY4OTg5MzdmYTJk
OGI0NDBjYjJmMjYxNmQ1MWUzNjViOTYuLjUwMGI1ZjY0N2RkNjgzZTNlOTAzMTIxMWYyZTcxNDJk
YzUxYTQ3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNw
cApAQCAtMTEzLDYgKzExMyw3IEBAIERlYnVnZ2VyOjpQcm9maWxpbmdDbGllbnQ6On5Qcm9maWxp
bmdDbGllbnQoKQogCiBEZWJ1Z2dlcjo6RGVidWdnZXIoVk0mIHZtKQogICAgIDogbV92bSh2bSkK
KyAgICAsIG1fYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoZmFsc2UpCiAgICAgLCBtX3Bh
dXNlQXROZXh0T3Bwb3J0dW5pdHkoZmFsc2UpCiAgICAgLCBtX3Bhc3RGaXJzdEV4cHJlc3Npb25J
blN0YXRlbWVudChmYWxzZSkKICAgICAsIG1faXNQYXVzZWQoZmFsc2UpCkBAIC01NDMsNyArNTQ0
LDcgQEAgYm9vbCBEZWJ1Z2dlcjo6cmVtb3ZlQnJlYWtwb2ludChCcmVha3BvaW50JiBicmVha3Bv
aW50KQogICAgIHJldHVybiByZW1vdmVkOwogfQogCi1SZWZQdHI8QnJlYWtwb2ludD4gRGVidWdn
ZXI6OmRpZEhpdEJyZWFrcG9pbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cmNl
SUQgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbiYgcG9zaXRpb24pCitSZWZQdHI8QnJlYWtw
b2ludD4gRGVidWdnZXI6OmRpZEhpdEJyZWFrcG9pbnQoU291cmNlSUQgc291cmNlSUQsIGNvbnN0
IFRleHRQb3NpdGlvbiYgcG9zaXRpb24pCiB7CiAgICAgaWYgKCFtX2JyZWFrcG9pbnRzQWN0aXZh
dGVkKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTU2NSwxMSArNTY2LDggQEAgUmVmUHRy
PEJyZWFrcG9pbnQ+IERlYnVnZ2VyOjpkaWRIaXRCcmVha3BvaW50KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFNvdXIKIAogICAgICAgICAvLyBTaW5jZSBmcm9udGVuZCB0cnVuY2F0ZXMg
dGhlIGluZGVudCwgdGhlIGZpcnN0IHN0YXRlbWVudCBpbiBhIGxpbmUgbXVzdCBtYXRjaCB0aGUg
YnJlYWtwb2ludCAobGluZSwwKS4KICAgICAgICAgQVNTRVJUKHRoaXMgPT0gbV9jdXJyZW50Q2Fs
bEZyYW1lLT5jb2RlQmxvY2soKS0+Z2xvYmFsT2JqZWN0KCktPmRlYnVnZ2VyKCkpOwotICAgICAg
ICBpZiAoKGxpbmUgIT0gbV9sYXN0RXhlY3V0ZWRMaW5lICYmIGxpbmUgPT0gYnJlYWtMaW5lICYm
ICFicmVha0NvbHVtbikgfHwgKGxpbmUgPT0gYnJlYWtMaW5lICYmIGNvbHVtbiA9PSBicmVha0Nv
bHVtbikpIHsKLSAgICAgICAgICAgIGlmIChicmVha3BvaW50LT5zaG91bGRQYXVzZSgqdGhpcywg
Z2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gYnJlYWtwb2ludC5jb3B5UmVm
KCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQorICAgICAgICBpZiAoKGxpbmUgIT0g
bV9sYXN0RXhlY3V0ZWRMaW5lICYmIGxpbmUgPT0gYnJlYWtMaW5lICYmICFicmVha0NvbHVtbikg
fHwgKGxpbmUgPT0gYnJlYWtMaW5lICYmIGNvbHVtbiA9PSBicmVha0NvbHVtbikpCisgICAgICAg
ICAgICByZXR1cm4gYnJlYWtwb2ludC5jb3B5UmVmKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC02MDYsMTQgKzYwNCwxMyBAQCB2b2lkIERlYnVnZ2VyOjpjbGVhckJyZWFrcG9p
bnRzKCkKIAogYm9vbCBEZWJ1Z2dlcjo6ZXZhbHVhdGVCcmVha3BvaW50Q29uZGl0aW9uKEJyZWFr
cG9pbnQmIGJyZWFrcG9pbnQsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CisgICAg
QVNTRVJUKG1faXNQYXVzZWQpOworICAgIEFTU0VSVChpc0F0dGFjaGVkKGdsb2JhbE9iamVjdCkp
OworCiAgICAgY29uc3QgU3RyaW5nJiBjb25kaXRpb24gPSBicmVha3BvaW50LmNvbmRpdGlvbigp
OwogICAgIGlmIChjb25kaXRpb24uaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgIC8vIFdlIGNhbm5vdCBzdG9wIGluIHRoZSBkZWJ1Z2dlciB3aGlsZSBleGVjdXRpbmcgY29u
ZGl0aW9uIGNvZGUsCi0gICAgLy8gc28gbWFrZSBpdCBsb29rcyBsaWtlIHRoZSBkZWJ1Z2dlciBp
cyBhbHJlYWR5IHBhdXNlZC4KLSAgICBUZW1wb3JhcnlQYXVzZWRTdGF0ZSBwYXVzZWRTdGF0ZSgq
dGhpcyk7Ci0KICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsKICAgICBEZWJ1Z2dl
ckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdnZXJDYWxsRnJhbWUo
KTsKICAgICBKU09iamVjdCogc2NvcGVFeHRlbnNpb25PYmplY3QgPSBtX2NsaWVudCA/IG1fY2xp
ZW50LT5kZWJ1Z2dlclNjb3BlRXh0ZW5zaW9uT2JqZWN0KCp0aGlzLCBnbG9iYWxPYmplY3QsIGRl
YnVnZ2VyQ2FsbEZyYW1lKSA6IG51bGxwdHI7CkBAIC03ODEsNiArNzc4LDcgQEAgdm9pZCBEZWJ1
Z2dlcjo6YnJlYWtQcm9ncmFtKFJlZlB0cjxCcmVha3BvaW50PiYmIHNwZWNpYWxCcmVha3BvaW50
KQogdm9pZCBEZWJ1Z2dlcjo6Y29udGludWVQcm9ncmFtKCkKIHsKICAgICBjbGVhck5leHRQYXVz
ZVN0YXRlKCk7CisgICAgbV9kZWZlcnJlZEJyZWFrcG9pbnRzLmNsZWFyKCk7CiAKICAgICBpZiAo
IW1faXNQYXVzZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTg4Niw3NyArODg0LDEwNCBAQCB2b2lk
IERlYnVnZ2VyOjpwYXVzZUlmTmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAg
ICAgYm9vbCBwYXVzZU5vdyA9IG1fcGF1c2VBdE5leHRPcHBvcnR1bml0eTsKICAgICBwYXVzZU5v
dyB8PSAobV9wYXVzZU9uQ2FsbEZyYW1lID09IG1fY3VycmVudENhbGxGcmFtZSk7CiAKLSAgICBi
b29sIGRpZFBhdXNlRm9yU3RlcCA9IHBhdXNlTm93OworICAgIGJvb2wgYWZ0ZXJCbGFja2JveGVk
U2NyaXB0ID0gbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQ7CisgICAgYm9vbCBkaWRQYXVzZUZvclN0
ZXAgPSBwYXVzZU5vdyAmJiAhYWZ0ZXJCbGFja2JveGVkU2NyaXB0OwogCiAgICAgVGV4dFBvc2l0
aW9uIHBvc2l0aW9uID0gRGVidWdnZXJDYWxsRnJhbWU6OnBvc2l0aW9uRm9yQ2FsbEZyYW1lKHZt
LCBtX2N1cnJlbnRDYWxsRnJhbWUpOwogCi0gICAgYXV0byBicmVha3BvaW50ID0gZGlkSGl0QnJl
YWtwb2ludChnbG9iYWxPYmplY3QsIHNvdXJjZUlELCBwb3NpdGlvbik7Ci0gICAgaWYgKGJyZWFr
cG9pbnQpCisgICAgaWYgKGF1dG8gYnJlYWtwb2ludCA9IGRpZEhpdEJyZWFrcG9pbnQoc291cmNl
SUQsIHBvc2l0aW9uKSkgewogICAgICAgICBwYXVzZU5vdyA9IHRydWU7CisgICAgICAgIG1fZGVm
ZXJyZWRCcmVha3BvaW50cy5hZGQoYnJlYWtwb2ludC5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICB9
CiAKICAgICAvLyBTcGVjaWFsIGJyZWFrcG9pbnRzIGFyZSBvbmx5IGdpdmVuIG9uZSBvcHBvcnR1
bml0eSB0byBwYXVzZS4KLSAgICBhdXRvIHNwZWNpYWxCcmVha3BvaW50ID0gV1RGTW92ZShtX3Nw
ZWNpYWxCcmVha3BvaW50KTsKLSAgICBpZiAoc3BlY2lhbEJyZWFrcG9pbnQgJiYgc3BlY2lhbEJy
ZWFrcG9pbnQtPnNob3VsZFBhdXNlKCp0aGlzLCBnbG9iYWxPYmplY3QpKQorICAgIGlmIChtX3Nw
ZWNpYWxCcmVha3BvaW50KSB7CiAgICAgICAgIHBhdXNlTm93ID0gdHJ1ZTsKKyAgICAgICAgbV9k
ZWZlcnJlZEJyZWFrcG9pbnRzLmFkZChtX3NwZWNpYWxCcmVha3BvaW50LnJlbGVhc2VOb25OdWxs
KCkpOworICAgIH0KIAogICAgIG1fbGFzdEV4ZWN1dGVkTGluZSA9IHBvc2l0aW9uLm1fbGluZS56
ZXJvQmFzZWRJbnQoKTsKICAgICBpZiAoIXBhdXNlTm93KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBib29sIGFmdGVyQmxhY2tib3hlZFNjcmlwdCA9IG1fYWZ0ZXJCbGFja2JveGVkU2NyaXB0Owog
ICAgIGNsZWFyTmV4dFBhdXNlU3RhdGUoKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBhcmUgbm90
IGdvaW5nIHRvIHBhdXNlIGFnYWluIG9uIGJyZWFrcG9pbnQgYWN0aW9ucyBieQogICAgIC8vIHJl
c2V0aW5nIHRoZSBwYXVzZSBzdGF0ZSBiZWZvcmUgZXhlY3V0aW5nIGFueSBicmVha3BvaW50IGFj
dGlvbnMuCiAgICAgVGVtcG9yYXJ5UGF1c2VkU3RhdGUgcGF1c2VkU3RhdGUoKnRoaXMpOwogCi0g
ICAgaWYgKGJyZWFrcG9pbnQgfHwgc3BlY2lhbEJyZWFrcG9pbnQpIHsKLSAgICAgICAgLy8gTm90
ZSB0aGF0IHRoZSBhY3Rpb25zIGNhbiBwb3RlbnRpYWxseSBzdG9wIHRoZSBkZWJ1Z2dlciwgc28g
d2UgbmVlZCB0byBjaGVjayB0aGF0Ci0gICAgICAgIC8vIHdlIHN0aWxsIGhhdmUgYSBjdXJyZW50
IGNhbGwgZnJhbWUgd2hlbiB3ZSBnZXQgYmFjay4KKyAgICBhdXRvIHNob3VsZERlZmVyUGF1c2Ug
PSBbJl0gKCkgeworICAgICAgICBpZiAoYmxhY2tib3hUeXBlSXRlcmF0b3IgPT0gbV9ibGFja2Jv
eGVkU2NyaXB0cy5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBi
b29sIGF1dG9Db250aW51ZSA9IGZhbHNlOworICAgICAgICBpZiAoYmxhY2tib3hUeXBlSXRlcmF0
b3ItPnZhbHVlICE9IEJsYWNrYm94VHlwZTo6RGVmZXJyZWQpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICAgICAgaWYgKGJyZWFrcG9pbnQpIHsKLSAgICAgICAgICAgIGV2YWx1YXRl
QnJlYWtwb2ludEFjdGlvbnMoKmJyZWFrcG9pbnQsIGdsb2JhbE9iamVjdCk7CisgICAgICAgIG1f
YWZ0ZXJCbGFja2JveGVkU2NyaXB0ID0gdHJ1ZTsKIAorICAgICAgICBpZiAobV9wYXVzaW5nQnJl
YWtwb2ludElEICE9IG5vQnJlYWtwb2ludElEKSB7CisgICAgICAgICAgICBkaXNwYXRjaEZ1bmN0
aW9uVG9PYnNlcnZlcnMoWyZdIChPYnNlcnZlciYgb2JzZXJ2ZXIpIHsKKyAgICAgICAgICAgICAg
ICBvYnNlcnZlci5kaWREZWZlckJyZWFrcG9pbnRQYXVzZShtX3BhdXNpbmdCcmVha3BvaW50SUQp
OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIG1fcGF1c2luZ0JyZWFrcG9pbnRJRCA9
IG5vQnJlYWtwb2ludElEOworICAgICAgICB9CisKKyAgICAgICAgc2NoZWR1bGVQYXVzZUF0TmV4
dE9wcG9ydHVuaXR5KCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH07CisKKyAgICBpZiAo
bV9ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyAmJiBzaG91bGREZWZlclBhdXNlKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9kZWZlcnJlZEJyZWFrcG9pbnRzLmlzRW1wdHko
KSkgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPEJyZWFrcG9pbnRJRD4gcGF1c2luZ0JyZWFrcG9p
bnRJRDsKKyAgICAgICAgYm9vbCBoYXNFdmFsdWF0ZWRTcGVjaWFsQnJlYWtwb2ludCA9IGZhbHNl
OworICAgICAgICBib29sIHNob3VsZENvbnRpbnVlID0gdHJ1ZTsKKworICAgICAgICBmb3IgKGF1
dG8mJiBkZWZlcnJlZEJyZWFrcG9pbnQgOiBzdGQ6OmV4Y2hhbmdlKG1fZGVmZXJyZWRCcmVha3Bv
aW50cywgeyB9KSkgeworICAgICAgICAgICAgLy8gTm90ZSB0aGF0IGJyZWFrcG9pbnQgZXZhbHVh
dGlvbnMgY2FuIHBvdGVudGlhbGx5IHN0b3AgdGhlIGRlYnVnZ2VyLCBzbyB3ZSBuZWVkIHRvCisg
ICAgICAgICAgICAvLyBjaGVjayB0aGF0IHdlIHN0aWxsIGhhdmUgYSBjdXJyZW50IGNhbGwgZnJh
bWUgYWZ0ZXIgZXZhbHVhdGluZyB0aGVtLgorCisgICAgICAgICAgICBib29sIHNob3VsZFBhdXNl
ID0gZGVmZXJyZWRCcmVha3BvaW50LT5zaG91bGRQYXVzZSgqdGhpcywgZ2xvYmFsT2JqZWN0KTsK
KyAgICAgICAgICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIGlmICghc2hvdWxkUGF1c2UpCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgICAgIGV2YWx1YXRlQnJlYWtwb2ludEFjdGlvbnMoZGVmZXJyZWRC
cmVha3BvaW50LCBnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRDYWxs
RnJhbWUpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBpZiAoYnJlYWtw
b2ludC0+aXNBdXRvQ29udGludWUoKSkKLSAgICAgICAgICAgICAgICBhdXRvQ29udGludWUgPSB0
cnVlOworICAgICAgICAgICAgaWYgKGRlZmVycmVkQnJlYWtwb2ludC0+aXNBdXRvQ29udGludWUo
KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgc2hvdWxkQ29udGlu
dWUgPSBmYWxzZTsKKworICAgICAgICAgICAgLy8gT25seSBwcm9wYWdhdGUgYFBhdXNlZEZvckJy
ZWFrcG9pbnRgIHRvIHRoZSBgSW5zcGVjdG9yRGVidWdnZXJBZ2VudGAgaWYgdGhlIGZpcnN0Cisg
ICAgICAgICAgICAvLyBsaW5lOmNvbHVtbiBicmVha3BvaW50IGhpdCB3YXMgYmVmb3JlIHRoZSBm
aXJzdCBzcGVjaWFsIGJyZWFrcG9pbnQsIGFzIHRoZSBsYXR0ZXIKKyAgICAgICAgICAgIC8vIHdv
dWxkIGFscmVhZHkgaGF2ZSBzZXQgYSB1bmlxdWUgcmVhc29uIGJlZm9yZSBhdHRlbXB0aW5nIHRv
IHBhdXNlLgorICAgICAgICAgICAgaWYgKCFkZWZlcnJlZEJyZWFrcG9pbnQtPmlzTGlua2VkKCkp
CisgICAgICAgICAgICAgICAgaGFzRXZhbHVhdGVkU3BlY2lhbEJyZWFrcG9pbnQgPSB0cnVlOwor
ICAgICAgICAgICAgZWxzZSBpZiAoIWhhc0V2YWx1YXRlZFNwZWNpYWxCcmVha3BvaW50ICYmICFw
YXVzaW5nQnJlYWtwb2ludElEKQorICAgICAgICAgICAgICAgIHBhdXNpbmdCcmVha3BvaW50SUQg
PSBkZWZlcnJlZEJyZWFrcG9pbnQtPmlkKCk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc3Bl
Y2lhbEJyZWFrcG9pbnQpIHsKLSAgICAgICAgICAgIGV2YWx1YXRlQnJlYWtwb2ludEFjdGlvbnMo
KnNwZWNpYWxCcmVha3BvaW50LCBnbG9iYWxPYmplY3QpOwotCi0gICAgICAgICAgICBpZiAoIW1f
Y3VycmVudENhbGxGcmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAg
IGlmIChzcGVjaWFsQnJlYWtwb2ludC0+aXNBdXRvQ29udGludWUoKSkKLSAgICAgICAgICAgICAg
ICBhdXRvQ29udGludWUgPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGF1dG9Db250
aW51ZSkgeworICAgICAgICBpZiAoc2hvdWxkQ29udGludWUpIHsKICAgICAgICAgICAgIGlmICgh
ZGlkUGF1c2VGb3JTdGVwKQogICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAg
YnJlYWtwb2ludCA9IG51bGxwdHI7Ci0gICAgICAgICAgICBzcGVjaWFsQnJlYWtwb2ludCA9IG51
bGxwdHI7Ci0gICAgICAgIH0gZWxzZSBpZiAoYnJlYWtwb2ludCkKLSAgICAgICAgICAgIG1fcGF1
c2luZ0JyZWFrcG9pbnRJRCA9IGJyZWFrcG9pbnQtPmlkKCk7CisgICAgICAgIH0gZWxzZSBpZiAo
cGF1c2luZ0JyZWFrcG9pbnRJRCkKKyAgICAgICAgICAgIG1fcGF1c2luZ0JyZWFrcG9pbnRJRCA9
ICpwYXVzaW5nQnJlYWtwb2ludElEOwogICAgIH0KIAotICAgIGlmIChibGFja2JveFR5cGVJdGVy
YXRvciAhPSBtX2JsYWNrYm94ZWRTY3JpcHRzLmVuZCgpICYmIGJsYWNrYm94VHlwZUl0ZXJhdG9y
LT52YWx1ZSA9PSBCbGFja2JveFR5cGU6OkRlZmVycmVkKSB7Ci0gICAgICAgIG1fYWZ0ZXJCbGFj
a2JveGVkU2NyaXB0ID0gdHJ1ZTsKLSAgICAgICAgc2NoZWR1bGVQYXVzZUF0TmV4dE9wcG9ydHVu
aXR5KCk7CisgICAgaWYgKCFtX2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zICYmIHNob3Vs
ZERlZmVyUGF1c2UoKSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIHsKICAgICAgICAg
YXV0byByZWFzb24gPSBtX3JlYXNvbkZvclBhdXNlOwogICAgICAgICBpZiAoYWZ0ZXJCbGFja2Jv
eGVkU2NyaXB0KQogICAgICAgICAgICAgcmVhc29uID0gUGF1c2VkQWZ0ZXJCbGFja2JveGVkU2Ny
aXB0OwotICAgICAgICBlbHNlIGlmIChicmVha3BvaW50KQorICAgICAgICBlbHNlIGlmIChtX3Bh
dXNpbmdCcmVha3BvaW50SUQpCiAgICAgICAgICAgICByZWFzb24gPSBQYXVzZWRGb3JCcmVha3Bv
aW50OwogICAgICAgICBQYXVzZVJlYXNvbkRlY2xhcmF0aW9uIHJhdXNlUmVhc29uRGVjbGFyYXRp
b24oKnRoaXMsIHJlYXNvbik7CiAKQEAgLTExNTQsOCArMTE3OSwxMCBAQCB2b2lkIERlYnVnZ2Vy
OjpkaWRFeGVjdXRlUHJvZ3JhbShDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICB1cGRhdGVDYWxs
RnJhbWUobGV4aWNhbEdsb2JhbE9iamVjdEZvckNhbGxGcmFtZShtX3ZtLCBjYWxsZXJGcmFtZSks
IGNhbGxlckZyYW1lLCBOb1BhdXNlKTsKIAogICAgIC8vIERvIG5vdCBjb250aW51ZSBzdGVwcGlu
ZyBpbnRvIGFuIHVua25vd24gZnV0dXJlIHByb2dyYW0uCi0gICAgaWYgKCFtX2N1cnJlbnRDYWxs
RnJhbWUpCisgICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpIHsKICAgICAgICAgY2xlYXJOZXh0
UGF1c2VTdGF0ZSgpOworICAgICAgICBtX2RlZmVycmVkQnJlYWtwb2ludHMuY2xlYXIoKTsKKyAg
ICB9CiB9CiAKIHZvaWQgRGVidWdnZXI6OmNsZWFyTmV4dFBhdXNlU3RhdGUoKQpAQCAtMTIxMSw2
ICsxMjM4LDExIEBAIHZvaWQgRGVidWdnZXI6OnNldEJsYWNrYm94VHlwZShTb3VyY2VJRCBzb3Vy
Y2VJRCwgc3RkOjpvcHRpb25hbDxCbGFja2JveFR5cGU+IHR5CiAgICAgICAgIG1fYmxhY2tib3hl
ZFNjcmlwdHMucmVtb3ZlKHNvdXJjZUlEKTsKIH0KIAordm9pZCBEZWJ1Z2dlcjo6c2V0QmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnMoYm9vbCBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cykKK3sKKyAgICBtX2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zID0gYmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnM7Cit9CisKIHZvaWQgRGVidWdnZXI6OmNsZWFyQmxhY2tib3goKQog
ewogICAgIG1fYmxhY2tib3hlZFNjcmlwdHMuY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyLmgKaW5kZXggOTM4ODAyM2E2NDE2YTNmMDRjMGIwYTI0YjFhMzc3
NDM4ZTI1MmZkNi4uYmVjYmQ5YzE3ZGE3MzA4YmIzZjhjYTA4ZmViYzA2OWJlNWY4N2JlNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJEZWJ1Z2dlclByaW1pdGl2ZXMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVl
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQu
aD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTExNSw2ICsxMTYsNyBAQCBwdWJsaWM6CiAKICAg
ICBlbnVtIGNsYXNzIEJsYWNrYm94VHlwZSB7IERlZmVycmVkLCBJZ25vcmVkIH07CiAgICAgdm9p
ZCBzZXRCbGFja2JveFR5cGUoU291cmNlSUQsIHN0ZDo6b3B0aW9uYWw8QmxhY2tib3hUeXBlPik7
CisgICAgdm9pZCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyhib29sKTsKICAgICB2
b2lkIGNsZWFyQmxhY2tib3goKTsKIAogICAgIGJvb2wgaXNQYXVzZWQoKSBjb25zdCB7IHJldHVy
biBtX2lzUGF1c2VkOyB9CkBAIC0xODEsNiArMTgzLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIHZvaWQgYnJlYWtwb2ludEFjdGlvbkxvZyhKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmlu
ZyYgLyogZGF0YSAqLykgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBicmVha3BvaW50QWN0aW9u
U291bmQoQnJlYWtwb2ludEFjdGlvbklEKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGJyZWFr
cG9pbnRBY3Rpb25Qcm9iZShKU0dsb2JhbE9iamVjdCosIEJyZWFrcG9pbnRBY3Rpb25JRCwgdW5z
aWduZWQgLyogYmF0Y2hJZCAqLywgdW5zaWduZWQgLyogc2FtcGxlSWQgKi8sIEpTVmFsdWUgLyog
cmVzdWx0ICovKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZERlZmVyQnJlYWtwb2ludFBh
dXNlKEJyZWFrcG9pbnRJRCkgeyB9CiAgICAgfTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKQEAgLTI1Nyw3ICsyNjAsNyBAQCBwcml2YXRlOgog
ICAgICAgICBEZWJ1Z2dlciYgbV9kZWJ1Z2dlcjsKICAgICB9OwogCi0gICAgUmVmUHRyPEJyZWFr
cG9pbnQ+IGRpZEhpdEJyZWFrcG9pbnQoSlNHbG9iYWxPYmplY3QqLCBTb3VyY2VJRCwgY29uc3Qg
VGV4dFBvc2l0aW9uJik7CisgICAgUmVmUHRyPEJyZWFrcG9pbnQ+IGRpZEhpdEJyZWFrcG9pbnQo
U291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbiYpOwogCiAgICAgRGVidWdnZXJQYXJzZURhdGEm
IGRlYnVnZ2VyUGFyc2VEYXRhKFNvdXJjZUlELCBTb3VyY2VQcm92aWRlciopOwogCkBAIC0yOTks
NiArMzAyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PEpTR2xvYmFsT2JqZWN0Kj4gbV9nbG9i
YWxPYmplY3RzOwogICAgIEhhc2hNYXA8U291cmNlSUQsIERlYnVnZ2VyUGFyc2VEYXRhLCBXVEY6
OkludEhhc2g8U291cmNlSUQ+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPFNv
dXJjZUlEPj4gbV9wYXJzZURhdGFNYXA7CiAgICAgSGFzaE1hcDxTb3VyY2VJRCwgQmxhY2tib3hU
eXBlLCBXVEY6OkludEhhc2g8U291cmNlSUQ+LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNo
VHJhaXRzPFNvdXJjZUlEPj4gbV9ibGFja2JveGVkU2NyaXB0czsKKyAgICBib29sIG1fYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnMgOiAxOwogCiAgICAgYm9vbCBtX3BhdXNlQXROZXh0T3Bw
b3J0dW5pdHkgOiAxOwogICAgIGJvb2wgbV9wYXVzZU9uU3RlcE5leHQgOiAxOwpAQCAtMzIyLDYg
KzMyNiw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxTb3VyY2VJRCwgTGluZVRvQnJlYWtwb2lu
dHNNYXAsIFdURjo6SW50SGFzaDxTb3VyY2VJRD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhh
c2hUcmFpdHM8U291cmNlSUQ+PiBtX2JyZWFrcG9pbnRzRm9yU291cmNlSUQ7CiAgICAgSGFzaFNl
dDxSZWY8QnJlYWtwb2ludD4+IG1fYnJlYWtwb2ludHM7CiAgICAgUmVmUHRyPEJyZWFrcG9pbnQ+
IG1fc3BlY2lhbEJyZWFrcG9pbnQ7CisgICAgTGlzdEhhc2hTZXQ8UmVmPEJyZWFrcG9pbnQ+PiBt
X2RlZmVycmVkQnJlYWtwb2ludHM7CiAgICAgQnJlYWtwb2ludElEIG1fcGF1c2luZ0JyZWFrcG9p
bnRJRDsKIAogICAgIFJlZlB0cjxCcmVha3BvaW50PiBtX3BhdXNlT25BbGxFeGNlcHRpb25zQnJl
YWtwb2ludDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYmU5MTBlYjI4
MmVlNTNlN2YzNWY2YjAzYTY2OWM1OTM5N2MxZDhkZC4uYjlkYTBjODhmNjEyMGRhMjI5MzU4M2M2
MDViMDk1ZmMyMjJmNTUxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAg
LTEwNjksNiArMTA2OSwxMyBAQCBib29sIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNob3VsZEJs
YWNrYm94VVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAorUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoYm9vbCBibGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9ucykKK3sKKyAgICBtX2RlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zKGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKTsKKworICAgIHJldHVybiB7IH07
Cit9CisKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2NyaXB0RXhlY3V0aW9uQmxvY2tl
ZEJ5Q1NQKGNvbnN0IFN0cmluZyYgZGlyZWN0aXZlVGV4dCkKIHsKICAgICBpZiAobV9kZWJ1Z2dl
ci5uZWVkc0V4Y2VwdGlvbkNhbGxiYWNrcygpKQpAQCAtMTMyMSw2ICsxMzI4LDExIEBAIHZvaWQg
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkQ29udGludWUoKQogICAgICAgICBtX2Zyb250ZW5k
RGlzcGF0Y2hlci0+cmVzdW1lZCgpOwogfQogCit2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
OmRpZERlZmVyQnJlYWtwb2ludFBhdXNlKEpTQzo6QnJlYWtwb2ludElEIGJyZWFrcG9pbnRJZCkK
K3sKKyAgICB1cGRhdGVQYXVzZVJlYXNvbkFuZERhdGEoRGVidWdnZXJGcm9udGVuZERpc3BhdGNo
ZXI6OlJlYXNvbjo6QnJlYWtwb2ludCwgYnVpbGRCcmVha3BvaW50UGF1c2VSZWFzb24oYnJlYWtw
b2ludElkKSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YnJlYWtQcm9ncmFt
KERlYnVnZ2VyRnJvbnRlbmREaXNwYXRjaGVyOjpSZWFzb24gcmVhc29uLCBSZWZQdHI8SlNPTjo6
T2JqZWN0PiYmIGRhdGEsIFJlZlB0cjxKU0M6OkJyZWFrcG9pbnQ+JiYgc3BlY2lhbEJyZWFrcG9p
bnQpCiB7CiAgICAgdXBkYXRlUGF1c2VSZWFzb25BbmREYXRhKHJlYXNvbiwgV1RGTW92ZShkYXRh
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggNmE1YTRkZTNkNmUyMjFmNjVl
NTI1MTUyNjY3MjQzMTllOWYyOTFiNi4uYjk5NmM5ZmJmZDcwOWU5YjJmNTIzNTgyZmMzNmEyNTU1
NWI2NzU0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaApAQCAtOTMsNiArOTMsNyBA
QCBwdWJsaWM6CiAgICAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2V0UGF1c2VGb3JJ
bnRlcm5hbFNjcmlwdHMoYm9vbCBzaG91bGRQYXVzZSkgZmluYWw7CiAgICAgUHJvdG9jb2w6OkVy
cm9yU3RyaW5nT3I8c3RkOjp0dXBsZTxSZWY8UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVj
dD4sIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gLyogd2FzVGhyb3duICovLCBzdGQ6Om9wdGlvbmFsPGlu
dD4gLyogc2F2ZWRSZXN1bHRJbmRleCAqLz4+IGV2YWx1YXRlT25DYWxsRnJhbWUoY29uc3QgUHJv
dG9jb2w6OkRlYnVnZ2VyOjpDYWxsRnJhbWVJZCYsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwg
Y29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgc3RkOjpvcHRpb25hbDxib29sPiYmIGluY2x1ZGVD
b21tYW5kTGluZUFQSSwgc3RkOjpvcHRpb25hbDxib29sPiYmIGRvTm90UGF1c2VPbkV4Y2VwdGlv
bnNBbmRNdXRlQ29uc29sZSwgc3RkOjpvcHRpb25hbDxib29sPiYmIHJldHVybkJ5VmFsdWUsIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4mJiBnZW5lcmF0ZVByZXZpZXcsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4m
JiBzYXZlUmVzdWx0LCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgZW11bGF0ZVVzZXJHZXN0dXJlKSBv
dmVycmlkZTsKICAgICBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBzZXRTaG91bGRCbGFj
a2JveFVSTChjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBzaG91bGRCbGFja2JveCwgc3RkOjpvcHRp
b25hbDxib29sPiYmIGNhc2VTZW5zaXRpdmUsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBpc1JlZ2V4
KSBmaW5hbDsKKyAgICBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBzZXRCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9ucyhib29sKSBmaW5hbDsKIAogICAgIC8vIEpTQzo6RGVidWdnZXI6
OkNsaWVudAogICAgIEpTQzo6SlNPYmplY3QqIGRlYnVnZ2VyU2NvcGVFeHRlbnNpb25PYmplY3Qo
SlNDOjpEZWJ1Z2dlciYsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkRlYnVnZ2VyQ2FsbEZy
YW1lJikgZmluYWw7CkBAIC0xMDYsNiArMTA3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ29u
dGludWUoKSBmaW5hbDsKICAgICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChKU0M6OkJyZWFr
cG9pbnRBY3Rpb25JRCkgZmluYWw7CiAgICAgdm9pZCBicmVha3BvaW50QWN0aW9uUHJvYmUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6QnJlYWtwb2ludEFjdGlvbklELCB1bnNpZ25lZCBiYXRj
aElkLCB1bnNpZ25lZCBzYW1wbGVJZCwgSlNDOjpKU1ZhbHVlIHNhbXBsZSkgZmluYWw7CisgICAg
dm9pZCBkaWREZWZlckJyZWFrcG9pbnRQYXVzZShKU0M6OkJyZWFrcG9pbnRJRCkgZmluYWw7CiAK
ICAgICBib29sIGlzUGF1c2VkKCkgY29uc3Q7CiAgICAgYm9vbCBicmVha3BvaW50c0FjdGl2ZSgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9EZWJ1Z2dlci5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90
b2NvbC9EZWJ1Z2dlci5qc29uCmluZGV4IDUyYjczMTE3MzdmMzAwNjNlYWVhMDMxMzdhMmEzZTkx
ZjFhM2U4OGMuLjIwOWYxZGU4YWM0NDBjMmFjZjc5YTQwMTRiODAxMGU2YWY2YmRiM2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIu
anNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVn
Z2VyLmpzb24KQEAgLTMyMiw2ICszMjIsMTMgQEAKICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNhc2VTZW5zaXRpdmUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIklmIHRydWUsIDxjb2RlPnVybDwvY29kZT4gaXMgY2FzZSBzZW5zaXRpdmUu
IiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNSZWdleCIsICJ0eXBlIjogImJvb2xl
YW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgdHJlYXQgPGNv
ZGU+dXJsPC9jb2RlPiBhcyByZWd1bGFyIGV4cHJlc3Npb24uIiB9CiAgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNldEJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIHdo
ZXRoZXIgZXZhbHVhdGlvbiBvZiBicmVha3BvaW50IGNvbmRpdGlvbnMsIGlnbm9yZSBjb3VudHMs
IGFuZCBhY3Rpb25zIGhhcHBlbiBhdCB0aGUgbG9jYXRpb24gb2YgdGhlIGJyZWFrcG9pbnQgb3Ig
YXJlIGRlZmVycmVkIGR1ZSB0byBibGFja2JveGluZy4iLAorICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJibGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9ucyIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAgICAgICAgIF0KICAgICAgICAgfQog
ICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmlu
ZGV4IGJhMmVmNjE3YjZjMDUyMmMwOWMwYmZhNGNlZjQxYmU3YzQ3M2ZmMGUuLjlkNjc2MDE0ZWE2
ZDdhOWJlMDkyMGE1MGIyNmM2MDA1OGE3Zjk4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcwpAQCAtMTU5LDYgKzE1OSw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIkFsbCBpdGVtcyBp
biBcdTAwMjIlc1x1MDAyMiBtdXN0IGJlIHZhbGlkIERPTSBub2RlcyJdID0gIkFsbCBpCiAvKiBM
YWJlbCBmb3Igc2V0dGluZyB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBpbnNwZWN0IHRoZSBXZWIg
SW5zcGVjdG9yIHVzZXIgaW50ZXJmYWNlLiAqLwogbG9jYWxpemVkU3RyaW5nc1siQWxsb3cgSW5z
cGVjdGluZyBXZWIgSW5zcGVjdG9yIEAgRXhwZXJpbWVudGFsIFNldHRpbmdzIl0gPSAiQWxsb3cg
SW5zcGVjdGluZyBXZWIgSW5zcGVjdG9yIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFsbG93IE1lZGlh
IENhcHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiXSA9ICJBbGxvdyBNZWRpYSBDYXB0dXJlIG9uIElu
c2VjdXJlIFNpdGVzIjsKK2xvY2FsaXplZFN0cmluZ3NbIkFsc28gZGVmZXIgZXZhbHVhdGluZyBi
cmVha3BvaW50IGNvbmRpdGlvbnMsIGlnbm9yZSBjb3VudHMsIGFuZCBhY3Rpb25zIHVudGlsIGV4
ZWN1dGlvbiBoYXMgY29udGludWVkIG91dHNpZGUgb2YgdGhlIHJlbGF0ZWQgc2NyaXB0IGluc3Rl
YWQgb2YgYXQgdGhlIGJyZWFrcG9pbnQncyBsb2NhdGlvbi4iXSA9ICJBbHNvIGRlZmVyIGV2YWx1
YXRpbmcgYnJlYWtwb2ludCBjb25kaXRpb25zLCBpZ25vcmUgY291bnRzLCBhbmQgYWN0aW9ucyB1
bnRpbCBleGVjdXRpb24gaGFzIGNvbnRpbnVlZCBvdXRzaWRlIG9mIHRoZSByZWxhdGVkIHNjcmlw
dCBpbnN0ZWFkIG9mIGF0IHRoZSBicmVha3BvaW50J3MgbG9jYXRpb24uIjsKIC8qIFByb3BlcnR5
IHRpdGxlIGZvciBgZm9udC12YXJpYW50LWFsdGVybmF0ZXNgLiAqLwogbG9jYWxpemVkU3RyaW5n
c1siQWx0ZXJuYXRlIEdseXBocyBAIEZvbnQgRGV0YWlscyBTaWRlYmFyIFByb3BlcnR5Il0gPSAi
QWx0ZXJuYXRlIEdseXBocyI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbiBlcnJvciBvY2N1cnJlZCB0
cnlpbmcgdG8gbG9hZCB0aGUgcmVzb3VyY2UuIl0gPSAiQW4gZXJyb3Igb2NjdXJyZWQgdHJ5aW5n
IHRvIGxvYWQgdGhlIHJlc291cmNlLiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMKaW5kZXggODUzZjdmYzA2MDE3NjIzMmI5Njc0
OTFlZGNkNjU4ZTg5N2FjOTkxOC4uZTczMDk3MjBhMTA3YzA1MmUyN2QxMDM2MzVjNWY2ZjQ4MTE1
YjNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFz
ZS9TZXR0aW5nLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvU2V0dGluZy5qcwpAQCAtMTg0LDYgKzE4NCw3IEBAIFdJLkRlYnVnU2V0dGluZyA9IGNsYXNz
IERlYnVnU2V0dGluZyBleHRlbmRzIFdJLlNldHRpbmcKIH07CiAKIFdJLnNldHRpbmdzID0gewor
ICAgIGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zOiBuZXcgV0kuU2V0dGluZygiYmxhY2ti
b3gtYnJlYWtwb2ludC1ldmFsdWF0aW9ucyIsIGZhbHNlKSwKICAgICBjYW52YXNSZWNvcmRpbmdB
dXRvQ2FwdHVyZUVuYWJsZWQ6IG5ldyBXSS5TZXR0aW5nKCJjYW52YXMtcmVjb3JkaW5nLWF1dG8t
Y2FwdHVyZS1lbmFibGVkIiwgZmFsc2UpLAogICAgIGNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJl
RnJhbWVDb3VudDogbmV3IFdJLlNldHRpbmcoImNhbnZhcy1yZWNvcmRpbmctYXV0by1jYXB0dXJl
LWZyYW1lLWNvdW50IiwgMSksCiAgICAgY29uc29sZUF1dG9FeHBhbmRUcmFjZTogbmV3IFdJLlNl
dHRpbmcoImNvbnNvbGUtYXV0by1leHBhbmQtdHJhY2UiLCB0cnVlKSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFu
YWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJz
L0RlYnVnZ2VyTWFuYWdlci5qcwppbmRleCA2MjgyOGE3ZWQ0YWM5NjNlZjIxNWU1NTMwY2E4MGM3
NmM4NzZiMDBiLi5jOTIxYWFiZmFlMzU2NGM3MTAwM2ExZTUyNjJjZjBiZTUyNGVjYzdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9E
ZWJ1Z2dlck1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCkBAIC00Myw2ICs0Myw4IEBAIFdJLkRl
YnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAog
CiAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5h
Z2VyLkV2ZW50LlRhcmdldFJlbW92ZWQsIHRoaXMuX3RhcmdldFJlbW92ZWQsIHRoaXMpOwogCisg
ICAgICAgIFdJLnNldHRpbmdzLmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLmFkZEV2ZW50
TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0aGlzLl9oYW5kbGVCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9uc0NoYW5nZSwgdGhpcyk7CisKICAgICAgICAgaWYgKFdJLmlzRW5n
aW5lZXJpbmdCdWlsZCkgewogICAgICAgICAgICAgV0kuc2V0dGluZ3MuZW5naW5lZXJpbmdTaG93
SW50ZXJuYWxTY3JpcHRzLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2Vk
LCB0aGlzLl9oYW5kbGVFbmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNjcmlwdHNTZXR0aW5nQ2hhbmdl
ZCwgdGhpcyk7CiAgICAgICAgICAgICBXSS5zZXR0aW5ncy5lbmdpbmVlcmluZ1BhdXNlRm9ySW50
ZXJuYWxTY3JpcHRzLmFkZEV2ZW50TGlzdGVuZXIoV0kuU2V0dGluZy5FdmVudC5DaGFuZ2VkLCB0
aGlzLl9oYW5kbGVFbmdpbmVlcmluZ1BhdXNlRm9ySW50ZXJuYWxTY3JpcHRzU2V0dGluZ0NoYW5n
ZWQsIHRoaXMpOwpAQCAtMjIzLDYgKzIyNSw4IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNz
IERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKKyAgICAgICAgdGhpcy5fc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnModGFy
Z2V0KTsKKwogICAgICAgICBpZiAoV0kuaXNFbmdpbmVlcmluZ0J1aWxkKSB7CiAgICAgICAgICAg
ICAvLyBDT01QQVRJQklMSVRZIChpT1MgMTIpOiBEZWJ1Z2dlckFnZW50LnNldFBhdXNlRm9ySW50
ZXJuYWxTY3JpcHRzIGRpZCBub3QgZXhpc3QgeWV0LgogICAgICAgICAgICAgaWYgKHRhcmdldC5o
YXNDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZUZvckludGVybmFsU2NyaXB0cyIpKQpAQCAtMTI1
Niw2ICsxMjYwLDEzIEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdl
ciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB9CiAgICAgfQogCisgICAgX3NldEJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zKHRhcmdldCkKKyAgICB7CisgICAgICAgIC8vIENPTVBBVElC
SUxJVFkgKGlPUyAxNSk6IERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
IGRpZCBub3QgZXhpc3QgeWV0LgorICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkRlYnVn
Z2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zIikpCisgICAgICAgICAgICB0YXJn
ZXQuRGVidWdnZXJBZ2VudC5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyhXSS5zZXR0
aW5ncy5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy52YWx1ZSk7CisgICAgfQorCiAgICAg
X2JyZWFrcG9pbnREaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UoZXZlbnQpCiAgICAgewogICAgICAg
ICBpZiAodGhpcy5faWdub3JlQnJlYWtwb2ludERpc3BsYXlMb2NhdGlvbkRpZENoYW5nZUV2ZW50
KQpAQCAtMTQwMCw2ICsxNDExLDEyIEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVn
Z2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQpOwogICAgIH0K
IAorICAgIF9oYW5kbGVCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc0NoYW5nZShldmVudCkK
KyAgICB7CisgICAgICAgIGZvciAobGV0IHRhcmdldCBvZiBXSS50YXJnZXRzKQorICAgICAgICAg
ICAgdGhpcy5fc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnModGFyZ2V0KTsKKyAgICB9
CisKICAgICBfaGFuZGxlRW5naW5lZXJpbmdTaG93SW50ZXJuYWxTY3JpcHRzU2V0dGluZ0NoYW5n
ZWQoZXZlbnQpCiAgICAgewogICAgICAgICBsZXQgZXZlbnRUeXBlID0gV0kuc2V0dGluZ3MuZW5n
aW5lZXJpbmdTaG93SW50ZXJuYWxTY3JpcHRzLnZhbHVlID8gV0kuRGVidWdnZXJNYW5hZ2VyLkV2
ZW50LlNjcmlwdEFkZGVkIDogV0kuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdFJlbW92ZWQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9C
bGFja2JveFNldHRpbmdzVmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9CbGFja2JveFNldHRpbmdzVmlldy5jc3MKaW5kZXggMWMwNWZlMmE2ZjNhMWFm
Y2M0YTQ4YWVhOGE5YzNkOTEzNTFiM2UyYy4uN2I5MmY2MDkwM2M2YTQ4NzNhYjhmNDhkNzhlMzQ1
YTZmYzNmY2VhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzcwpAQCAtNDgs
NiArNDgsMTkgQEAKICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogfQogCisuc2V0dGluZ3Mt
dmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCB7CisgICAgZGlzcGxheTogZmxleDsKK30KKworLnNl
dHRpbmdzLXZpZXcuYmxhY2tib3ggPiBwID4gbGFiZWwgPiBpbnB1dCB7CisgICAgZmxleC1zaHJp
bms6IDA7CisgICAgbWFyZ2luLWlubGluZTogMC41cHggNHB4OworfQorCisuc2V0dGluZ3Mtdmll
dy5ibGFja2JveCA+IHAgPiBsYWJlbCA+IHNwYW4geworICAgIG1hcmdpbi10b3A6IDEuNXB4Owor
fQorCiAuc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+IHRhYmxlIHsKICAgICBib3JkZXItY29sbGFw
c2U6IGNvbGxhcHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNldHRpbmdzVmlldy5qcwppbmRleCA5
MGEwM2QwYWE3Y2U1MjliMzRlMjI1ZDU2NTY0OGU2NmVmMTRkYmRiLi4wNDAxMmM1NTkxZmUxZWNk
Yjc4ZWE0MTNlMzM3NGRjZmRiODk0ZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNldHRpbmdzVmlldy5qcworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNldHRpbmdzVmll
dy5qcwpAQCAtMTA2LDYgKzEwNiwxOCBAQCBXSS5CbGFja2JveFNldHRpbmdzVmlldyA9IGNsYXNz
IEJsYWNrYm94U2V0dGluZ3NWaWV3IGV4dGVuZHMgV0kuU2V0dGluZ3NWaWV3CiAgICAgICAgICAg
ICBhLmFwcGVuZChiKTsKICAgICAgICAgICAgIHJldHVybiBhOwogICAgICAgICB9KTsKKworICAg
ICAgICBsZXQgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkVsZW1lbnQg
PSB0aGlzLmVsZW1lbnQuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSwg
dGhpcy5lbGVtZW50Lmxhc3RDaGlsZCk7CisgICAgICAgIGxldCBibGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc0V4cGxhbmF0aW9uTGFiZWwgPSBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c0V4cGxhbmF0aW9uRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJs
YWJlbCIpKTsKKworICAgICAgICBsZXQgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBs
YW5hdGlvbkNoZWNrYm94ID0gYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlv
bkxhYmVsLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikpOworICAg
ICAgICBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uQ2hlY2tib3gudHlw
ZSA9ICJjaGVja2JveCI7CisgICAgICAgIGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zRXhw
bGFuYXRpb25DaGVja2JveC5jaGVja2VkID0gV0kuc2V0dGluZ3MuYmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMudmFsdWU7CisgICAgICAgIGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
RXhwbGFuYXRpb25DaGVja2JveC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgIFdJLnNldHRpbmdzLmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
LnZhbHVlID0gYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkNoZWNrYm94
LmNoZWNrZWQ7CisgICAgICAgIH0pOworCisgICAgICAgIGJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zRXhwbGFuYXRpb25MYWJlbC5hcHBlbmQoV0kuVUlTdHJpbmcoIkFsc28gZGVmZXIgZXZh
bHVhdGluZyBicmVha3BvaW50IGNvbmRpdGlvbnMsIGlnbm9yZSBjb3VudHMsIGFuZCBhY3Rpb25z
IHVudGlsIGV4ZWN1dGlvbiBoYXMgY29udGludWVkIG91dHNpZGUgb2YgdGhlIHJlbGF0ZWQgc2Ny
aXB0IGluc3RlYWQgb2YgYXQgdGhlIGJyZWFrcG9pbnQncyBsb2NhdGlvbi4iKSk7CiAgICAgfQog
CiAgICAgLy8gUHJpdmF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU0ZDI0OWI2ZmMyMjk2ZThiNDRlNTk1ZWQ5MmJhMGY1
Mjc2ZjU3ZTIuLjY4YmE1N2I4ODQ3Y2NjZjQyYTlkMDFkZDVmMzJmNjhkNDIxM2E1ZTggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMS0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGEgc3dpdGNoIHRvIGNvbnRyb2wg
d2hldGhlciBicmVha3BvaW50IGV2YWx1YXRpb25zIChjb25kaXRpb24sIGlnbm9yZSBjb3VudCwg
YWN0aW9ucykgYXJlIGFsc28gYWZmZWN0ZWQgYnkgc2NyaXB0IGJsYWNrYm94aW5nCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUyNzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAyMi0wMS0xNSAgVHlsZXIgV2lsY29jayAgPHR5bGVy
X3dAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBGaXggZGlzYWJsZWQtY29udHJvbHMtbm90LWZv
Y3VzYWJsZS5odG1sIGluIGlzb2xhdGVkIHRyZWUgbW9kZSBieSB1cGRhdGluZyBBWFByb3BlcnR5
TmFtZTo6Q2FuU2V0Rm9jdXNBdHRyaWJ1dGUgd2hlbiB0aGUgZGlzYWJsZWQgYXR0cmlidXRlIGNo
YW5nZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY3ODljZWQ2ZGNkMjQ0YTNmMGZjMzFkN2NiMjVkYjUxNmIxNDAxNTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0Qmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTI0IEBA
CitUZXN0cyBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnMuVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50
Q29uZGl0aW9uLkZhbHNlCitFdmFsdWF0aW5nICdjcmVhdGVTY3JpcHRzKCJVbmJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2UiKScuLi4KK0JsYWNr
Ym94aW5nICd1bmJsYWNrYm94YnJlYWtwb2ludGV2YWx1YXRpb25zX2JyZWFrcG9pbnRjb25kaXRp
b25fZmFsc2VfaW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJ1VuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lci5qcycu
Li4KK1VuYmxhY2tib3hpbmcgcHJlYWtwb2luZyBldmFsdWF0aW9ucy4uLgorRXZhbHVhdGluZyAn
VW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNl
X091dGVyKDIpJy4uLgorUEFTUzogU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdV
bmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2Vf
SW5uZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5uZXInLgorUEFTUzogU2hv
dWxkIG5vdCBwYXVzZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX0ZhbHNlX091dGVyJy4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVn
Z2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5UcnVlCitFdmFsdWF0aW5nICdjcmVhdGVT
Y3JpcHRzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRp
b25fVHJ1ZSIpJy4uLgorQmxhY2tib3hpbmcgJ3VuYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlv
bnNfYnJlYWtwb2ludGNvbmRpdGlvbl90cnVlX2lubmVyLmpzJy4uLgorU2V0dGluZyBicmVha3Bv
aW50IGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRp
b25fVHJ1ZV9Jbm5lci5qcycuLi4KK1VuYmxhY2tib3hpbmcgcHJlYWtwb2luZyBldmFsdWF0aW9u
cy4uLgorRXZhbHVhdGluZyAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX1RydWVfT3V0ZXIoMiknLi4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRTY3Jp
cHQnIGF0ICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRp
b25fVHJ1ZV9PdXRlcjozOjQnLgoreworICAib3JpZ2luYWxSZWFzb24iOiAiQnJlYWtwb2ludCIs
CisgICJvcmlnaW5hbERhdGEiOiB7CisgICAgImJyZWFrcG9pbnRJZCI6ICJVbmJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lci5qczoyOjAi
CisgIH0KK30KK1Jlc3VtaW5nLi4uCitQQVNTOiBSZXN1bWVkLgorUEFTUzogU2hvdWxkIGNoYW5n
ZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2Ug
aW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9U
cnVlX0lubmVyJy4KK1BBU1M6IFNob3VsZCBwYXVzZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXInLgorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLlBhdXNlCitFdmFs
dWF0aW5nICdjcmVhdGVTY3JpcHRzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRBY3Rpb25fUGF1c2UiKScuLi4KK0JsYWNrYm94aW5nICd1bmJsYWNrYm94YnJlYWtw
b2ludGV2YWx1YXRpb25zX2JyZWFrcG9pbnRhY3Rpb25fcGF1c2VfaW5uZXIuanMnLi4uCitTZXR0
aW5nIGJyZWFrcG9pbnQgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludEFjdGlvbl9QYXVzZV9Jbm5lci5qcycuLi4KK1VuYmxhY2tib3hpbmcgcHJlYWtwb2luZyBl
dmFsdWF0aW9ucy4uLgorRXZhbHVhdGluZyAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyKDIpJy4uLgorCitQQVVTRUQ6ICdCbGFja2Jv
eGVkU2NyaXB0JyBhdCAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX1BhdXNlX091dGVyOjM6NCcuCit7CisgICJvcmlnaW5hbFJlYXNvbiI6ICJCcmVha3Bv
aW50IiwKKyAgIm9yaWdpbmFsRGF0YSI6IHsKKyAgICAiYnJlYWtwb2ludElkIjogIlVuYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lci5qczoy
OjAiCisgIH0KK30KK1Jlc3VtaW5nLi4uCitQQVNTOiBSZXN1bWVkLgorUEFTUzogU2hvdWxkIGNo
YW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNl
IGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1
c2VfSW5uZXInLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyJy4KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2ludEFjdGlvbi5BdXRvQ29udGlu
dWUKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWUiKScuLi4KK0JsYWNrYm94aW5nICd1
bmJsYWNrYm94YnJlYWtwb2ludGV2YWx1YXRpb25zX2JyZWFrcG9pbnRhY3Rpb25fYXV0b2NvbnRp
bnVlX2lubmVyLmpzJy4uLgorU2V0dGluZyBicmVha3BvaW50IGluICdVbmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyLmpzJy4u
LgorVW5ibGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4uCitFdmFsdWF0aW5nICdV
bmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRp
bnVlX091dGVyKDIpJy4uLgorUEFTUzogU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRl
ICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0Nv
bnRpbnVlX0lubmVyLmpzJworUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnVW5ibGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lcicu
CitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX091dGVyJy4KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24uRmFsc2UKK0V2YWx1
YXRpbmcgJ2NyZWF0ZVNjcmlwdHMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRDb25kaXRpb25fRmFsc2UiKScuLi4KK0JsYWNrYm94aW5nICdibGFja2JveGJyZWFrcG9p
bnRldmFsdWF0aW9uc19icmVha3BvaW50Y29uZGl0aW9uX2ZhbHNlX2lubmVyLmpzJy4uLgorU2V0
dGluZyBicmVha3BvaW50IGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyLmpzJy4uLgorQmxhY2tib3hpbmcgcHJlYWtwb2luZyBl
dmFsdWF0aW9ucy4uLgorRXZhbHVhdGluZyAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlcigyKScuLi4KK1BBU1M6IFNob3VsZCBjaGFu
Z2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJl
YWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2Ug
aW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFs
c2VfSW5uZXInLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlcicuCisKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5C
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50Q29uZGl0aW9uLlRydWUKK0V2
YWx1YXRpbmcgJ2NyZWF0ZVNjcmlwdHMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fVHJ1ZSIpJy4uLgorQmxhY2tib3hpbmcgJ2JsYWNrYm94YnJlYWtw
b2ludGV2YWx1YXRpb25zX2JyZWFrcG9pbnRjb25kaXRpb25fdHJ1ZV9pbm5lci5qcycuLi4KK1Nl
dHRpbmcgYnJlYWtwb2ludCBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzJy4uLgorQmxhY2tib3hpbmcgcHJlYWtwb2luZyBl
dmFsdWF0aW9ucy4uLgorRXZhbHVhdGluZyAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyKDIpJy4uLgorCitQQVVTRUQ6ICdCbGFja2Jv
eGVkU2NyaXB0JyBhdCAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENv
bmRpdGlvbl9UcnVlX091dGVyOjM6NCcuCit7CisgICJvcmlnaW5hbFJlYXNvbiI6ICJCcmVha3Bv
aW50IiwKKyAgIm9yaWdpbmFsRGF0YSI6IHsKKyAgICAiYnJlYWtwb2ludElkIjogIkJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lci5qczoy
OjAiCisgIH0KK30KK1Jlc3VtaW5nLi4uCitQQVNTOiBSZXN1bWVkLgorUEFTUzogU2hvdWxkIGNo
YW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19C
cmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNl
IGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1Ry
dWVfSW5uZXInLgorUEFTUzogU2hvdWxkIHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXInLgorCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2ludEFjdGlvbi5QYXVzZQorRXZhbHVhdGlu
ZyAnY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dEFjdGlvbl9QYXVzZSIpJy4uLgorQmxhY2tib3hpbmcgJ2JsYWNrYm94YnJlYWtwb2ludGV2YWx1
YXRpb25zX2JyZWFrcG9pbnRhY3Rpb25fcGF1c2VfaW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFr
cG9pbnQgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
UGF1c2VfSW5uZXIuanMnLi4uCitCbGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4u
CitFdmFsdWF0aW5nICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0
aW9uX1BhdXNlX091dGVyKDIpJy4uLgorCitQQVVTRUQ6ICdCbGFja2JveGVkU2NyaXB0JyBhdCAn
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRl
cjozOjQnLgoreworICAib3JpZ2luYWxSZWFzb24iOiAiQnJlYWtwb2ludCIsCisgICJvcmlnaW5h
bERhdGEiOiB7CisgICAgImJyZWFrcG9pbnRJZCI6ICJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyLmpzOjI6MCIKKyAgfQorfQorUmVzdW1p
bmcuLi4KK1BBU1M6IFJlc3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBp
bnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1
c2VfT3V0ZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyJy4KK1BBU1M6IFNob3Vs
ZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRB
Y3Rpb25fUGF1c2VfT3V0ZXInLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc2V0
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuQnJlYWtwb2ludEFjdGlvbi5BdXRvQ29udGludWUKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlw
dHMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0Nv
bnRpbnVlIiknLi4uCitCbGFja2JveGluZyAnYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNf
YnJlYWtwb2ludGFjdGlvbl9hdXRvY29udGludWVfaW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFr
cG9pbnQgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
QXV0b0NvbnRpbnVlX0lubmVyLmpzJy4uLgorQmxhY2tib3hpbmcgcHJlYWtwb2luZyBldmFsdWF0
aW9ucy4uLgorRXZhbHVhdGluZyAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXIoMiknLi4uCitQQVNTOiBTaG91bGQgY2hhbmdl
IHZhbHVlIG9mICd4JyBpbnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX091dGVyLmpzJworUEFTUzogU2hvdWxkIG5vdCBwYXVz
ZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRv
Q29udGludWVfSW5uZXInLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXInLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYWRi
MDJhODdlMGQyYjMzNmFjYjgwNzEyZGM0MDE3MWQxZWFhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnMuaHRtbApAQCAtMCwwICsxLDMxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9w
cm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjcmVhdGVTY3Jp
cHRzKGlkKSB7CisgICAgZXZhbCgKK2AKK3dpbmRvdy4ke2lkfV9Jbm5lciA9IGZ1bmN0aW9uICR7
aWR9X0lubmVyKHgpIHsKKyAgICByZXR1cm4geCAqIHg7Cit9OworLy8jIHNvdXJjZVVSTD0ke2lk
fV9Jbm5lci5qcworYAorICAgICk7CisKKyAgICBldmFsKAorYAord2luZG93LiR7aWR9X091dGVy
ID0gZnVuY3Rpb24gJHtpZH1fT3V0ZXIoeCkgeworICAgIGxldCBpbm5lclJlc3VsdCA9ICR7aWR9
X0lubmVyKHgpOworICAgIHJldHVybiBpbm5lclJlc3VsdCAqIHg7Cit9OworLy8jIHNvdXJjZVVS
TD0ke2lkfV9PdXRlci5qcworYAorICAgICk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IFByb3RvY29sVGVzdC5kZWJ1ZygpOworICAgIGxldCBzdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyIp
OworCisgICAgbGV0IHNvdXJjZVVSTFJlZ0V4cFF1ZXJpZXMgPSBuZXcgTWFwOworICAgIGxldCBw
YXVzZWRGdW5jdGlvbk5hbWVzID0gW107CisKKyAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50c0FjdGl2ZSIsIHthY3RpdmU6IHRydWV9KTsK
KworICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFy
c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgIGxldCBzb3VyY2VVUkwgPSBtZXNz
YWdlLnBhcmFtcy5zb3VyY2VVUkw7CisgICAgICAgIGZvciAobGV0IFtyZWdFeHAsIGNhbGxiYWNr
XSBvZiBzb3VyY2VVUkxSZWdFeHBRdWVyaWVzKSB7CisgICAgICAgICAgICBpZiAocmVnRXhwLnRl
c3Qoc291cmNlVVJMKSkgeworICAgICAgICAgICAgICAgIHNvdXJjZVVSTFJlZ0V4cFF1ZXJpZXMu
ZGVsZXRlKHJlZ0V4cCk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soc291cmNlVVJMKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yUHJvdG9jb2wu
ZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAg
ICAgICAgUHJvdG9jb2xUZXN0Lm5ld2xpbmUoKTsKKworICAgICAgICBsZXQgdG9wQ2FsbEZyYW1l
ID0gbWVzc2FnZS5wYXJhbXMuY2FsbEZyYW1lc1swXTsKKyAgICAgICAgbGV0IGZ1bmN0aW9uTmFt
ZSA9IHRvcENhbGxGcmFtZS5mdW5jdGlvbk5hbWU7CisgICAgICAgIGlmIChmdW5jdGlvbk5hbWUg
IT09ICJnbG9iYWwgY29kZSIpIHsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coYFBBVVNF
RDogJyR7bWVzc2FnZS5wYXJhbXMucmVhc29ufScgYXQgJyR7ZnVuY3Rpb25OYW1lfToke3RvcENh
bGxGcmFtZS5sb2NhdGlvbi5saW5lTnVtYmVyfToke3RvcENhbGxGcmFtZS5sb2NhdGlvbi5jb2x1
bW5OdW1iZXJ9Jy5gKTsKKyAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcmFtcy5kYXRhKQorICAg
ICAgICAgICAgICAgIFByb3RvY29sVGVzdC5qc29uKG1lc3NhZ2UucGFyYW1zLmRhdGEpOworICAg
ICAgICAgICAgcGF1c2VkRnVuY3Rpb25OYW1lcy5wdXNoKGZ1bmN0aW9uTmFtZSk7CisgICAgICAg
IH0KKworICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJSZXN1bWluZy4uLiIpOworICAgICAgICBJ
bnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZChgRGVidWdnZXIucmVzdW1lYCwge30sIEluc3Bl
Y3RvclByb3RvY29sLmNoZWNrRm9yRXJyb3IpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JQcm90
b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnJlc3VtZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2Up
IHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LnBhc3MoIlJlc3VtZWQuIik7CisgICAgfTsKKworICAg
IGFzeW5jIGZ1bmN0aW9uIHNldEJsYWNrYm94KHVybCwgb3B0aW9ucyA9IHt9KSB7CisgICAgICAg
IGlmICghb3B0aW9ucy5jYXNlU2Vuc2l0aXZlKQorICAgICAgICAgICAgdXJsID0gdXJsLnRvTG93
ZXJDYXNlKCk7CisKKyAgICAgICAgUHJvdG9jb2xUZXN0LmxvZyhgQmxhY2tib3hpbmcgJHtvcHRp
b25zLmNhc2VTZW5zaXRpdmUgPyAiKGNhc2Ugc2Vuc2l0aXZlKSAiIDogIiJ9JHtvcHRpb25zLmlz
UmVnZXggPyAiKHJlZ2V4KSAiIDogIiJ9JyR7dXJsfScuLi5gKTsKKyAgICAgICAgYXdhaXQgSW5z
cGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhvZDogIkRlYnVn
Z2VyLnNldFNob3VsZEJsYWNrYm94VVJMIiwKKyAgICAgICAgICAgIHBhcmFtczoge3VybCwgc2hv
dWxkQmxhY2tib3g6IHRydWUsIC4uLm9wdGlvbnN9LAorICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBhc3luYyBmdW5jdGlvbiBzZXRCcmVha3BvaW50KHVybCwgbGluZU51bWJlciwgb3B0aW9ucykg
eworICAgICAgICBQcm90b2NvbFRlc3QubG9nKGBTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJyR7dXJs
fScuLi5gKTsKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsK
KyAgICAgICAgICAgIG1ldGhvZDogIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCIsCisgICAg
ICAgICAgICBwYXJhbXM6IHt1cmwsIGxpbmVOdW1iZXIsIG9wdGlvbnN9LAorICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucyhibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucykgeworICAgICAgICBQcm90b2NvbFRl
c3QubG9nKGAke2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zID8gIkJsYWNrYm94aW5nIiA6
ICJVbmJsYWNrYm94aW5nIn0gcHJlYWtwb2luZyBldmFsdWF0aW9ucy4uLmApOworICAgICAgICBy
ZXR1cm4gSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhv
ZDogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zIiwKKyAgICAgICAg
ICAgIHBhcmFtczoge2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zfSwKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gbGlzdGVuRm9yU291cmNlUGFyc2VkKHNvdXJj
ZVVSTFJlZ0V4cCkgeworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICAgICAgc291cmNlVVJMUmVnRXhwUXVlcmllcy5zZXQoc291cmNlVVJM
UmVnRXhwLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rp
b24gZXZhbHVhdGUoZXhwcmVzc2lvbikgeworICAgICAgICBQcm90b2NvbFRlc3QubG9nKGBFdmFs
dWF0aW5nICcke2V4cHJlc3Npb259Jy4uLmApOworICAgICAgICByZXR1cm4gSW5zcGVjdG9yUHJv
dG9jb2wuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgIG1ldGhvZDogIlJ1bnRpbWUuZXZhbHVh
dGUiLAorICAgICAgICAgICAgcGFyYW1zOiB7ZXhwcmVzc2lvbn0sCisgICAgICAgIH0pOworICAg
IH0KKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNl
dEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7
CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2Fp
dCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9V
bmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2Vf
SW5uZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091
dGVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlIilg
KSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5l
clNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNl
VVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiISh4ID0gMykiLAorICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucyhmYWxzZSk7CisKKyAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBldmFsdWF0ZShg
VW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNl
X091dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9y
KHJlc3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJl
c3VsdC52YWx1ZSwgKDMgKiAzKSAqIDIsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNp
ZGUgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9G
YWxzZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNl
KHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lciIpLCAiU2hvdWxkIG5vdCBwYXVz
ZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9u
X0ZhbHNlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShw
YXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2Ug
aW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9G
YWxzZV9PdXRlcicuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRp
b24uVHJ1ZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVy
U291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAg
ICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lclwuanMkLyksCisgICAgICAgICAg
ICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAg
ICAgZXZhbHVhdGUoYGNyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAg
ICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBh
d2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAg
Y29uZGl0aW9uOiAiKHggPSAzKSIsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0
IHNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGZhbHNlKTsKKworICAgICAgICAgICAg
bGV0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcigyKWApOworICAgICAgICAgICAgSW5z
cGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgzICogMykgKiAyLCAiU2hv
dWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lci5qcyciKTsKKworICAgICAgICAg
ICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMo
IlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVl
X0lubmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lcicuIik7CisgICAgICAgICAgICBQ
cm90b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRl
ciIpLCAiU2hvdWxkIHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcicuIik7CisKKyAgICAgICAgfSwKKyAgICB9KTsK
KworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuQnJlYWtwb2ludEFjdGlvbi5QYXVzZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAg
ICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9t
aXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXJcLmpz
JC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5ibGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyXC5qcyQvKSwK
KyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiVW5ibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlIilgKSwKKyAgICAgICAgICAg
IF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7Cisg
ICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAg
ICAgICAgICAgICAgYWN0aW9uczogWworICAgICAgICAgICAgICAgICAgICB7dHlwZTogImV2YWx1
YXRlIiwgZGF0YTogInggPSAzIn0sCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoZmFs
c2UpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUoYFVuYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcigyKWAp
OworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOwor
ICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUs
ICgzICogMykgKiAyLCAiU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIuanMn
Iik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRGdW5jdGlv
bk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9p
bnRBY3Rpb25fUGF1c2VfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lcicuIik7Cisg
ICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmlu
Y2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
UGF1c2VfT3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcicuIik7CisgICAgICAgIH0s
CisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1
Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uQXV0b0NvbnRpbnVlIiwKKyAgICAgICAgYXN5
bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBbaW5uZXJTb3VyY2VVUkwsIG91dGVyU291cmNl
VVJMXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3Vy
Y2VQYXJzZWQoL1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlv
bl9BdXRvQ29udGludWVfSW5uZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNv
dXJjZVBhcnNlZCgvVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0
aW9uX0F1dG9Db250aW51ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAgZXZhbHVhdGUo
YGNyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dEFjdGlvbl9BdXRvQ29udGludWUiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAg
IGF3YWl0IHNldEJsYWNrYm94KGlubmVyU291cmNlVVJMKTsKKyAgICAgICAgICAgIGF3YWl0IHNl
dEJyZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAgICAgICAgICAgICBhY3Rpb25z
OiBbCisgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAieCA9IDMi
fSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIGF1dG9Db250aW51ZTogdHJ1
ZSwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnMoZmFsc2UpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQg
ZXZhbHVhdGUoYFVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlv
bl9BdXRvQ29udGludWVfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29s
LmNoZWNrRm9yRXJyb3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RF
cXVhbChyZXN1bHQucmVzdWx0LnZhbHVlLCAoMyAqIDMpICogMiwgIlNob3VsZCBjaGFuZ2UgdmFs
dWUgb2YgJ3gnIGluc2lkZSAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9j
b2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5u
ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXInLiIpOworICAgICAgICAgICAg
UHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGlu
dWVfT3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXInLiIpOworICAgICAg
ICB9LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
RGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZSIsCisgICAgICAgIGFzeW5j
IHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVS
TF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNl
UGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9u
X0ZhbHNlX0lubmVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJz
ZWQoL0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFs
c2VfT3V0ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGV2YWx1YXRlKGBjcmVhdGVTY3JpcHRz
KCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNl
IilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChp
bm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291
cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiISh4ID0gMykiLAorICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9ucyh0cnVlKTsKKworICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRl
KGBCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNl
X091dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9y
KHJlc3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJl
c3VsdC52YWx1ZSwgKDIgKiAyKSAqIDMsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNp
ZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFs
c2VfT3V0ZXIuanMnIik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShw
YXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyIiksICJTaG91bGQgbm90IHBhdXNlIGlu
ICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNl
X0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRG
dW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVy
Jy4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24uVHJ1ZSIsCisg
ICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBv
dXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlz
dGVuRm9yU291cmNlUGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX1RydWVfSW5uZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZv
clNvdXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENv
bmRpdGlvbl9UcnVlX091dGVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3Jl
YXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRp
dGlvbl9UcnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRC
bGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50
KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiKHggPSAz
KSIsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQg
ZXZhbHVhdGUoYEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRp
b25fVHJ1ZV9PdXRlcigyKWApOworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tG
b3JFcnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJl
c3VsdC5yZXN1bHQudmFsdWUsICgyICogMikgKiAzLCAiU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAn
eCcgaW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0
aW9uX1RydWVfT3V0ZXIuanMnIik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RG
YWxzZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1
c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25f
VHJ1ZV9Jbm5lcicuIik7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VHJ1ZShwYXVz
ZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19C
cmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIiKSwgIlNob3VsZCBwYXVzZSBpbiAnQmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyJy4i
KTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uUGF1c2UiLAorICAgICAg
ICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IFtpbm5lclNvdXJjZVVSTCwgb3V0ZXJT
b3VyY2VVUkxdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGxpc3RlbkZv
clNvdXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9QYXVzZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNl
UGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1Bh
dXNlX091dGVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0
cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZSIp
YCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3goaW5u
ZXJTb3VyY2VVUkwpOworICAgICAgICAgICAgYXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNvdXJj
ZVVSTCwgMiwgeworICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsKKyAgICAgICAgICAgICAgICAg
ICAge3R5cGU6ICJldmFsdWF0ZSIsIGRhdGE6ICJ4ID0gMyJ9LAorICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZh
bHVhdGUoYEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1
c2VfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmNoZWNrRm9yRXJy
b3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RFcXVhbChyZXN1bHQu
cmVzdWx0LnZhbHVlLCAoMiAqIDIpICogMywgIlNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGlu
c2lkZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVz
ZV9PdXRlci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBh
dXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ0Js
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIn
LiIpOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRydWUocGF1c2VkRnVuY3Rpb25O
YW1lcy5pbmNsdWRlcygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9QYXVzZV9PdXRlciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcicuIik7CisgICAgICAg
IH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJE
ZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLkF1dG9Db250aW51ZSIsCisgICAgICAgIGFz
eW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJj
ZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291
cmNlUGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9u
X0F1dG9Db250aW51ZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291
cmNlUGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9u
X0F1dG9Db250aW51ZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAgZXZhbHVhdGUoYGNy
ZWF0ZVNjcmlwdHMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fQXV0b0NvbnRpbnVlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2Fp
dCBzZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVh
a3BvaW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgYWN0aW9uczogWwor
ICAgICAgICAgICAgICAgICAgICB7dHlwZTogImV2YWx1YXRlIiwgZGF0YTogInggPSAzIn0sCisg
ICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICBhdXRvQ29udGludWU6IHRydWUsCisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVh
dGUoYEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0Nv
bnRpbnVlX091dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0Zv
ckVycm9yKHJlc3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVz
dWx0LnJlc3VsdC52YWx1ZSwgKDIgKiAyKSAqIDMsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4
JyBpbnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
QXV0b0NvbnRpbnVlX091dGVyLmpzJyIpOworCisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhw
ZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIiKSwgIlNob3Vs
ZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRB
Y3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5l
eHBlY3RGYWxzZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlciIpLCAiU2hv
dWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXInLiIpOworICAgICAgICB9LAorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIERlYnVnZ2VyLnNldEJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449278</attachid>
            <date>2022-01-15 18:28:46 -0800</date>
            <delta_ts>2022-01-15 18:32:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235274-20220115192845.patch</filename>
            <type>text/plain</type>
            <size>35911</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDI4Y2IwYzkxNjA0MDEwOGVlNjQzMmE4MWUxMTE5
NWFkNjNhZmI2YzguLmIxODcyMGE5ZjI2NjI1Zjc3MjRhODMxMzRkMjE1ZmFkNWU2MzRkODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDIyLTAxLTE1ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgKGNv
bmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZlY3RlZCBieSBzY3Jp
cHQgYmxhY2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYWxsRnJhbWVUcmVlQ29udHJvbGxl
ci5qczoKKyAgICAgICAgKFdJLkNhbGxGcmFtZVRyZWVDb250cm9sbGVyLnByb3RvdHlwZS5ncm91
cEJsYWNrYm94ZWRDYWxsRnJhbWVzKTogQWRkZWQuCisgICAgICAgIChXSS5DYWxsRnJhbWVUcmVl
Q29udHJvbGxlci5wcm90b3R5cGUuZ3JvdXBCbGFja2JveGVkQ2FsbEZyYW1lcy5kaXNwbGF5YWJs
ZSk6IEFkZGVkLgorICAgICAgICAoV0kuQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIucHJvdG90eXBl
LnNldCBjYWxsRnJhbWVzKTogQWRkZWQuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9T
dGFja1RyYWNlVmlldy5qczoKKyAgICAgICAgKFdJLlN0YWNrVHJhY2VWaWV3KToKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RocmVhZFRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0ku
VGhyZWFkVHJlZUVsZW1lbnQucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvVGltZWxpbmVEYXRhR3JpZC5qczoKKyAgICAgICAgKFdJLlRpbWVsaW5lRGF0
YUdyaWQucHJvdG90eXBlLl9jcmVhdGVQb3BvdmVyQ29udGVudCk6CisgICAgICAgIChXSS5UaW1l
bGluZURhdGFHcmlkLnByb3RvdHlwZS5fcG9wb3ZlckNhbGxTdGFja1RyZWVFbGVtZW50UmVtb3Zl
ZCk6CisgICAgICAgIENlbnRyYWxpemUgY29kZSBmb3IgY3JlYXRpbmcgc3RhY2sgdHJhY2Ugdmll
d3Mgc28gdGhhdCB0aGUgbG9naWMgdGhhdCBncm91cHMgYmxhY2tib3hlZCBjYWxsCisgICAgICAg
IGZyYW1lcyAoYW5kIHRoZSBhc3NvY2lhdGVkIGBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVu
dGAvYFdJLkJsYWNrYm94ZWRHcm91cFZpZXdgKSBjYW4gYmUKKyAgICAgICAgc2hhcmVkIHdpdGhv
dXQgZHVwbGljYXRpb24uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94
ZWRHcm91cFRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVs
ZW1lbnQpOgorICAgICAgICAoV0kuQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQucHJvdG90eXBl
LmV4cGFuZCk6CisgICAgICAgIChXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5wcm90b3R5
cGUuY3VzdG9tVGl0bGVUb29sdGlwKTogQWRkZWQuCisgICAgICAgIEFkZCBhIHBhcmFtZXRlciB0
byBjb250cm9sIHdoZXRoZXIgdG8gcmVtZW1iZXIgd2hlbiBleHBhbmRpbmcgYmxhY2tib3hlZCBj
YWxsIGZyYW1lIGdyb3VwcworICAgICAgICBzbyB0aGF0IHRoZXkgY2FuIGxhdGVyIGJlIGF1dG8t
ZXhwYW5kZWQuIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhhdCBmZWF0dXJlIGlzIGludGVuZGVk
IHNvCisgICAgICAgIHRoYXQgc3RlcHBpbmcgZG9lc24ndCByZS1jb2xsYXBzZSBwcmV2aW91c2x5
IGV4cGFuZGVkIGJsYWNrYm94ZWQgY2FsbCBmcmFtZSBncm91cHMuIEEgbW9yZQorICAgICAgICB0
ZWNobmljYWwgcmVhc29uIGlzIHRoYXQgbm9uLWRlYnVnZ2luZyBjYWxsIHN0YWNrcyBjYW4gbGl2
ZSAoaS5lLiBiZSBzaG93bikgZm9yIGEgbG9uZyB0aW1lCisgICAgICAgIGFuZCB0aGVyZWZvcmUg
dGhlcmUncyBubyBnb29kIHdheSB0byBjbGVhciB0aGUgcmVtZW1iZXJlZCBzdGF0ZSwgYW5kIHdl
IHByb2JhYmx5IGRvbid0IHdhbnQKKyAgICAgICAgdG8gaGF2ZSBhIHByZXZpb3VzIGV4cGFuc2lv
biBpbiB0aGUgVGltZWxpbmVzIFRhYiBvciBDYW52YXMgVGFiIHN1ZGRlbmx5IGNhdXNlIGFsbCBt
YXRjaGluZworICAgICAgICBibGFja2JveGVkIGNhbGwgZnJhbWUgZ3JvdXBzIGluIHRoZSBTb3Vy
Y2VzIFRhYiB0byBhbHdheXMgYmUgZXhwYW5kZWQuCisgICAgICAgIERyaXZlLWJ5OiBPdmVycmlk
ZSB0aGUgdG9vbHRpcCB0byBleHBsYWluIHRoYXQgY2xpY2tpbmcgc2hvd3MgdGhlIGJsYWNrYm94
ZWQgY2FsbCBmcmFtZXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94
ZWRHcm91cFZpZXcuanM6IEFkZGVkLgorICAgICAgICAoV0kuQmxhY2tib3hlZEdyb3VwVmlldyk6
CisgICAgICAgIChXSS5CbGFja2JveGVkR3JvdXBWaWV3LmdlbmVyYXRlVGl0bGUpOgorICAgICAg
ICAoV0kuQmxhY2tib3hlZEdyb3VwVmlldy5nZW5lcmF0ZVN1YnRpdGxlKToKKyAgICAgICAgKFdJ
LkJsYWNrYm94ZWRHcm91cFZpZXcuZ2VuZXJhdGVUb29sdGlwKToKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFZpZXcuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5i
bGFja2JveGVkLWdyb3VwKToKKyAgICAgICAgKC5ibGFja2JveGVkLWdyb3VwID4gKik6CisgICAg
ICAgICguYmxhY2tib3hlZC1ncm91cCAuaWNvbik6CisgICAgICAgICguYmxhY2tib3hlZC1ncm91
cCAuc3VidGl0bGUpOgorICAgICAgICAoLmJsYWNrYm94ZWQtZ3JvdXAgLnNlcGFyYXRvcik6Cisg
ICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSAuYmxhY2tib3hlZC1n
cm91cCAuaWNvbik6CisgICAgICAgIChAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJr
KSAuYmxhY2tib3hlZC1ncm91cCAuc3VidGl0bGUpOgorICAgICAgICAoQG1lZGlhIChwcmVmZXJz
LWNvbG9yLXNjaGVtZTogZGFyaykgLmJsYWNrYm94ZWQtZ3JvdXAgLnNlcGFyYXRvcik6CisgICAg
ICAgIEFkZCBhIG5vbi10cmVlIFVJIGNsYXNzIGZvciBzaG93aW5nIGJsYWNrYm94ZWQgY2FsbCBm
cmFtZSBncm91cHMgKGp1c3QgbGlrZSBob3cgdGhlcmUncworICAgICAgICBgV0kuQ2FsbEZyYW1l
VHJlZUVsZW1lbnRgIGZvciB0cmVlIFVJcyBhbmQgYFdJLkNhbGxGcmFtZVZpZXdgIGZvciBub24t
dHJlZSBVSXMpLiBBbHNvCisgICAgICAgIGNlbnRyYWxpemUgdGhlIFVJIHN0cmluZ3MgZm9yIGFs
bCBibGFja2JveGVkIGNhbGwgZnJhbWUgZ3JvdXAgVUlzIGFzIGBzdGF0aWNgIG1ldGhvZHMuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50
LmNzczoKKyAgICAgICAgKC50cmVlLW91dGxpbmUgLml0ZW0uYmxhY2tib3hlZC1ncm91cC5zZWxl
Y3RlZCA+ICopOiBBZGRlZC4KKyAgICAgICAgKC50cmVlLW91dGxpbmU6bm90KDpmb2N1cy13aXRo
aW4pIC5pdGVtLmJsYWNrYm94ZWQtZ3JvdXAuc2VsZWN0ZWQgPiAqLCBib2R5OmlzKC53aW5kb3ct
aW5hY3RpdmUsIC53aW5kb3ctZG9ja2VkLWluYWN0aXZlKSAudHJlZS1vdXRsaW5lIC5pdGVtLmJs
YWNrYm94ZWQtZ3JvdXAuc2VsZWN0ZWQgPiAqKTogQWRkZWQuCisgICAgICAgICgudHJlZS1vdXRs
aW5lIC5pdGVtLmJsYWNrYm94ZWQtZ3JvdXApOiBEZWxldGVkLgorICAgICAgICAoLnRyZWUtb3V0
bGluZSAuaXRlbS5ibGFja2JveGVkLWdyb3VwOm5vdCguc2VsZWN0ZWQpID4gKiwgLnRyZWUtb3V0
bGluZTpub3QoOmZvY3VzLXdpdGhpbikgLml0ZW0uYmxhY2tib3hlZC1ncm91cC5zZWxlY3RlZCA+
ICosIGJvZHk6aXMoLndpbmRvdy1pbmFjdGl2ZSwgLndpbmRvdy1kb2NrZWQtaW5hY3RpdmUpIC50
cmVlLW91dGxpbmUgLml0ZW0uYmxhY2tib3hlZC1ncm91cC5zZWxlY3RlZCA+ICopOiBEZWxldGVk
LgorICAgICAgICAoLnRyZWUtb3V0bGluZSAuaXRlbS5ibGFja2JveGVkLWdyb3VwIC5pY29uKTog
RGVsZXRlZC4KKyAgICAgICAgKEBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIC50
cmVlLW91dGxpbmUgLml0ZW0uYmxhY2tib3hlZC1ncm91cCAuaWNvbik6IERlbGV0ZWQuCisgICAg
ICAgIFNoYXJlIHN0eWxlcyBmcm9tIGBVc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91
cFZpZXcuY3NzYCBzaW5jZSBib3RoIHNoYXJlIGAuYmxhY2tib3hlZC1ncm91cGAuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9TdGFja1RyYWNlLmpzOgorICAgICAgICAoV0kuU3Rh
Y2tUcmFjZSk6CisgICAgICAgIERyaXZlLWJ5OiBEb24ndCBhc3NpZ24gdG8gYGZpcnN0Tm9uTmF0
aXZlTm9uQW5vbnltb3VzQ2FsbEZyYW1lYCBtb3JlIHRoYW4gb25jZSBzaW5jZSBpdCdzCisgICAg
ICAgICAgICAgICAgICBzdXBwb3NlZCB0byBiZSB0aGUgKmZpcnN0Kiwgbm90IHRoZSBsYXN0Lgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVUcmVlRWxlbWVudC5qczoK
KyAgICAgICAgRHJpdmUtYnk6IENvbWJpbmUgb3B0aW9uYWwgcGFyYW1ldGVycyBpbnRvIGFuIGBv
cHRpb25zID0ge31gIGZvciBjdXJyZW50IGNvZGUgY2xlYW5saW5lc3MKKyAgICAgICAgICAgICAg
ICAgIGFuZCBncmVhdGVyIGZsZXhpYmlsaXR5IGZvciBmdXR1cmUgY2hhbmdlcy4KKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFibGVzLmNzczoKKyAgICAgICAgKDpyb290KToK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbGxGcmFtZVRyZWVFbGVtZW50LmNzczoK
KyAgICAgICAgKC50cmVlLW91dGxpbmUgLml0ZW0uY2FsbC1mcmFtZS5ibGFja2JveGVkOm5vdCgu
c2VsZWN0ZWQpKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NhbGxGcmFtZVZpZXcu
Y3NzOgorICAgICAgICAoLmNhbGwtZnJhbWUuYmxhY2tib3hlZCA+IC50aXRsZSwpOgorICAgICAg
ICBEcml2ZS1ieTogUmVuYW1lIGAtLWJsYWNrYm94ZWQtdHJlZS1pdGVtLW9wYWNpdHlgIHNpbmNl
IGl0J3Mgbm93IGFsc28gdXNlZCBvdXRzaWRlIHRyZWVzLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzOgorCiAyMDIyLTAxLTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBTb3VyY2VzOiBjYW5ub3QgY29weSBncm91
cGluZyBvZiBibGFja2JveGVkIGNhbGwgZnJhbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwppbmRleCBiYTJlZjYxN2I2YzA1MjJjMDljMGJmYTRjZWY0MWJlN2M0NzNmZjBlLi42NmMw
ZjMyNzNlNGFjZWU3YTNmMjM1YmRjZmFlNWExMjY2MDgyOTg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMKQEAgLTMyNyw2ICszMjcsMTAgQEAgbG9jYWxpemVkU3RyaW5nc1siQ2xp
Y2sgdG8gc2hvdyAlZCBlcnJvciBpbiB0aGUgQ29uc29sZSJdID0gIkNsaWNrIHRvIHNob3cgJWQg
ZXIKIGxvY2FsaXplZFN0cmluZ3NbIkNsaWNrIHRvIHNob3cgJWQgZXJyb3JzIGluIHRoZSBDb25z
b2xlIl0gPSAiQ2xpY2sgdG8gc2hvdyAlZCBlcnJvcnMgaW4gdGhlIENvbnNvbGUiOwogbG9jYWxp
emVkU3RyaW5nc1siQ2xpY2sgdG8gc2hvdyAlZCB3YXJuaW5nIGluIHRoZSBDb25zb2xlIl0gPSAi
Q2xpY2sgdG8gc2hvdyAlZCB3YXJuaW5nIGluIHRoZSBDb25zb2xlIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIkNsaWNrIHRvIHNob3cgJWQgd2FybmluZ3MgaW4gdGhlIENvbnNvbGUiXSA9ICJDbGljayB0
byBzaG93ICVkIHdhcm5pbmdzIGluIHRoZSBDb25zb2xlIjsKKy8qIFRvb2x0aXAgZm9yIHRoZSAn
QmxhY2tib3hlZCAtICVkIGNhbGwgZnJhbWUnIGxhYmVsIHNob3duIGluIHRoZSBkZWJ1Z2dlciBj
YWxsIHN0YWNrIHdoZW4gcGF1c2VkIGluc3RlYWQgb2Ygc3Vic2VxdWVudCBjYWxsIGZyYW1lcyB0
aGF0IGhhdmUgYmVlbiBibGFja2JveGVkLiAqLworbG9jYWxpemVkU3RyaW5nc1siQ2xpY2sgdG8g
c2hvdyBibGFja2JveGVkIGNhbGwgZnJhbWUgQCBEZWJ1Z2dlciBDYWxsIFN0YWNrIl0gPSAiQ2xp
Y2sgdG8gc2hvdyAlZCBibGFja2JveGVkIGNhbGwgZnJhbWUiOworLyogVG9vbHRpcCBmb3IgdGhl
ICdCbGFja2JveGVkIC0gJWQgY2FsbCBmcmFtZXMnIGxhYmVsIHNob3duIGluIHRoZSBkZWJ1Z2dl
ciBjYWxsIHN0YWNrIHdoZW4gcGF1c2VkIGluc3RlYWQgb2Ygc3Vic2VxdWVudCBjYWxsIGZyYW1l
cyB0aGF0IGhhdmUgYmVlbiBibGFja2JveGVkLiAqLworbG9jYWxpemVkU3RyaW5nc1siQ2xpY2sg
dG8gc2hvdyBibGFja2JveGVkIGNhbGwgZnJhbWVzIEAgRGVidWdnZXIgQ2FsbCBTdGFjayJdID0g
IkNsaWNrIHRvIHNob3cgJWQgYmxhY2tib3hlZCBjYWxsIGZyYW1lcyI7CiAvKiBUb29sdGlwIHRv
IHNob3cgcHVycG9zZSBvZiB0aGUgQ1NTIGRvY3VtZW50YXRpb24gYnV0dG9uICovCiBsb2NhbGl6
ZWRTdHJpbmdzWyJDbGljayB0byBzaG93IGRvY3VtZW50YXRpb24gQCBDU1MgRG9jdW1lbnRhdGlv
biBCdXR0b24iXSA9ICJDbGljayB0byBzaG93IGRvY3VtZW50YXRpb24iOwogbG9jYWxpemVkU3Ry
aW5nc1siQ2xpY2sgdG8gdmlldyB2YXJpYWJsZSB2YWx1ZVxuU2hpZnQtY2xpY2sgdG8gcmVwbGFj
ZSB2YXJpYWJsZSB3aXRoIHZhbHVlIl0gPSAiQ2xpY2sgdG8gdmlldyB2YXJpYWJsZSB2YWx1ZVxu
U2hpZnQtY2xpY2sgdG8gcmVwbGFjZSB2YXJpYWJsZSB3aXRoIHZhbHVlIjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbGxGcmFt
ZVRyZWVDb250cm9sbGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIuanMKaW5kZXggODc0NGExOWI4MmYw
ZjczMzYwNzliZTk5NGEzNTM2YjdjNThhMWY3Ni4uNWFlNGNlMjg4N2ZiZjNhOGI0MGExYzZjMDg2
NmNiMWFmMzNhZWY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FsbEZyYW1lVHJlZUNv
bnRyb2xsZXIuanMKQEAgLTM5LDYgKzM5LDc1IEBAIFdJLkNhbGxGcmFtZVRyZWVDb250cm9sbGVy
ID0gY2xhc3MgQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAg
ICAgICAgIHRoaXMuX3RyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUu
RXZlbnQuRWxlbWVudENsaWNrZWQsIHRoaXMuX3RyZWVFbGVtZW50Q2xpY2tlZCwgdGhpcyk7CiAg
ICAgfQogCisgICAgLy8gU3RhdGljCisKKyAgICBzdGF0aWMgZ3JvdXBCbGFja2JveGVkQ2FsbEZy
YW1lcyhwYXJlbnQsIGNhbGxGcmFtZXMsIHtyZW1lbWJlckJsYWNrYm94ZWRDYWxsRnJhbWVHcm91
cFRvQXV0b0V4cGFuZH0gPSB7fSkKKyAgICB7CisgICAgICAgIGxldCBwYXJlbnRJc05vZGUgPSBw
YXJlbnQgaW5zdGFuY2VvZiBOb2RlOworICAgICAgICBjb25zb2xlLmFzc2VydChwYXJlbnRJc05v
ZGUgfHwgcGFyZW50IGluc3RhbmNlb2YgV0kuVHJlZU91dGxpbmUgfHwgcGFyZW50IGluc3RhbmNl
b2YgV0kuVHJlZUVsZW1lbnQsIHBhcmVudCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KEFycmF5
LmlzQXJyYXkoY2FsbEZyYW1lcykgJiYgY2FsbEZyYW1lcy5sZW5ndGggJiYgY2FsbEZyYW1lcy5l
dmVyeSgoY2FsbEZyYW1lKSA9PiBjYWxsRnJhbWUgaW5zdGFuY2VvZiBXSS5DYWxsRnJhbWUpLCBj
YWxsRnJhbWVzKTsKKworICAgICAgICBsZXQgQmxhY2tib3hlZEdyb3VwVUlDbGFzcyA9IHBhcmVu
dElzTm9kZSA/IFdJLkJsYWNrYm94ZWRHcm91cFZpZXcgOiBXSS5CbGFja2JveGVkR3JvdXBUcmVl
RWxlbWVudDsKKyAgICAgICAgbGV0IGJsYWNrYm94ZWRHcm91cFVJT3B0aW9ucyA9IHtyZW1lbWJl
ckJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFRvQXV0b0V4cGFuZH07CisKKyAgICAgICAgbGV0IENh
bGxGcmFtZVVJQ2xhc3MgPSBwYXJlbnRJc05vZGUgPyBXSS5DYWxsRnJhbWVWaWV3IDogV0kuQ2Fs
bEZyYW1lVHJlZUVsZW1lbnQ7CisgICAgICAgIGxldCBjYWxsRnJhbWVVSU9wdGlvbnMgPSB7c2hv
d0Z1bmN0aW9uTmFtZTogdHJ1ZSwgaW5kaWNhdGVJZkJsYWNrYm94ZWQ6IHRydWV9OworCisgICAg
ICAgIGxldCBhY3RpdmVDYWxsRnJhbWUgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZy
YW1lOworICAgICAgICBsZXQgYWN0aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQgPSBudWxsOworCisg
ICAgICAgIGxldCBibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBTdGFydEluZGV4ID0gdW5kZWZpbmVk
OworCisgICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlhYmxlKGNhbGxGcmFtZSkgeworICAgICAgICAg
ICAgaWYgKHBhcmVudElzTm9kZSkgeworICAgICAgICAgICAgICAgIGlmICghY2FsbEZyYW1lLnNv
dXJjZUNvZGVMb2NhdGlvbiAmJiBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lID09PSBudWxsKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgICAgICBpZiAoY2Fs
bEZyYW1lLmlzQ29uc29sZUV2YWx1YXRpb24gJiYgIVdJLnNldHRpbmdzLmRlYnVnU2hvd0NvbnNv
bGVFdmFsdWF0aW9ucy52YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisg
ICAgICAgIC8vIEFkZCBvbmUgZXh0cmEgaXRlcmF0aW9uIHRvIGhhbmRsZSBjYWxsIHN0YWNrcyB0
aGF0IHN0YXJ0IGJsYWNrYm94ZWQuCisgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsbEZy
YW1lcy5sZW5ndGggKyAxOyArK2kpIHsKKyAgICAgICAgICAgIGxldCBjYWxsRnJhbWUgPSBjYWxs
RnJhbWVzW2ldOworCisgICAgICAgICAgICBpZiAoY2FsbEZyYW1lKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFkaXNwbGF5YWJsZShjYWxsRnJhbWUpKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAgICAgICAgIGlmIChjYWxsRnJhbWUuYmxhY2tib3hlZCAmJiBXSS5z
ZXR0aW5ncy5leHBlcmltZW50YWxDb2xsYXBzZUJsYWNrYm94ZWRDYWxsRnJhbWVzLnZhbHVlKSB7
CisgICAgICAgICAgICAgICAgICAgIGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFN0YXJ0SW5kZXgg
Pz89IGk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91
cFN0YXJ0SW5kZXggIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIGxldCBibGFja2Jv
eGVkQ2FsbEZyYW1lR3JvdXAgPSBjYWxsRnJhbWVzLnNsaWNlKGJsYWNrYm94ZWRDYWxsRnJhbWVH
cm91cFN0YXJ0SW5kZXgsIGkpLmZpbHRlcihkaXNwbGF5YWJsZSk7CisgICAgICAgICAgICAgICAg
YmxhY2tib3hlZENhbGxGcmFtZUdyb3VwU3RhcnRJbmRleCA9IHVuZGVmaW5lZDsKKworICAgICAg
ICAgICAgICAgIGlmICghcmVtZW1iZXJCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXBUb0F1dG9FeHBh
bmQgfHwgIVdJLmRlYnVnZ2VyTWFuYWdlci5zaG91bGRBdXRvRXhwYW5kQmxhY2tib3hlZENhbGxG
cmFtZUdyb3VwKGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCkpCisgICAgICAgICAgICAgICAgICAg
IHBhcmVudC5hcHBlbmRDaGlsZChuZXcgQmxhY2tib3hlZEdyb3VwVUlDbGFzcyhibGFja2JveGVk
Q2FsbEZyYW1lR3JvdXAsIGJsYWNrYm94ZWRHcm91cFVJT3B0aW9ucykpOworICAgICAgICAgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBibGFja2JveGVkQ2FsbEZy
YW1lIG9mIGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHBhcmVudC5hcHBlbmRDaGlsZChuZXcgQ2FsbEZyYW1lVUlDbGFzcyhibGFja2JveGVkQ2FsbEZy
YW1lLCBjYWxsRnJhbWVVSU9wdGlvbnMpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmICghY2FsbEZyYW1lKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICBsZXQgY2FsbEZyYW1lVHJlZUVsZW1lbnQgPSBuZXcgQ2FsbEZy
YW1lVUlDbGFzcyhjYWxsRnJhbWUsIGNhbGxGcmFtZVVJT3B0aW9ucyk7CisgICAgICAgICAgICBp
ZiAoY2FsbEZyYW1lID09PSBhY3RpdmVDYWxsRnJhbWUgJiYgIXBhcmVudElzTm9kZSkKKyAgICAg
ICAgICAgICAgICBhY3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVudCA9IGNhbGxGcmFtZVRyZWVFbGVt
ZW50OworICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGNhbGxGcmFtZVRyZWVFbGVtZW50
KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhY3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVu
dDsKKyAgICB9CisKICAgICAvLyBQdWJsaWMKIAogICAgIGdldCB0cmVlT3V0bGluZSgpIHsgcmV0
dXJuIHRoaXMuX3RyZWVPdXRsaW5lOyB9CkBAIC01OCw4ICsxMjcsNyBAQCBXSS5DYWxsRnJhbWVU
cmVlQ29udHJvbGxlciA9IGNsYXNzIENhbGxGcmFtZVRyZWVDb250cm9sbGVyIGV4dGVuZHMgV0ku
T2JqZWN0CiAKICAgICAgICAgdGhpcy5fdHJlZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKIAot
ICAgICAgICBmb3IgKGxldCBjYWxsRnJhbWUgb2YgdGhpcy5fY2FsbEZyYW1lcykKLSAgICAgICAg
ICAgIHRoaXMuX3RyZWVPdXRsaW5lLmFwcGVuZENoaWxkKG5ldyBXSS5DYWxsRnJhbWVUcmVlRWxl
bWVudChjYWxsRnJhbWUpKTsKKyAgICAgICAgV0kuQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIuZ3Jv
dXBCbGFja2JveGVkQ2FsbEZyYW1lcyh0aGlzLl90cmVlT3V0bGluZSwgdGhpcy5fY2FsbEZyYW1l
cyk7CiAgICAgfQogCiAgICAgZGlzY29ubmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggMjc4ZmMwYTE4ZDU4NTY2Mzk5Mzg3N2VkZjE1
MGU1MDc4ZDE1MDVhOS4uY2FiY2ZkMzljM2IyYjJkZjljZmYwNzk5YzhkZDI4ZmZiZDFjNDMzYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1s
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAt
NDcsNiArNDcsNyBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQmFu
bmVyVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQmV6
aWVyRWRpdG9yLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9C
bGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5jc3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvQmxhY2tib3hlZEdyb3VwVmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iVmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuY3NzIj4KICAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0Jvb3RzdHJhcFNjcmlwdFRyZWVFbGVt
ZW50LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9Cb3hNb2Rl
bERldGFpbHNTZWN0aW9uUm93LmNzcyI+CkBAIC02MzgsNiArNjM5LDcgQEAKICAgICA8c2NyaXB0
IHNyYz0iVmlld3MvQmV6aWVyRWRpdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
Vmlld3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0JsYWNrYm94ZWRHcm91cFZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJWaWV3cy9Cb290c3RyYXBTY3JpcHRUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0JveE1vZGVsRGV0YWlsc1NlY3Rpb25Sb3cuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Cb3hTaGFkb3dFZGl0b3IuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL1N0YWNrVHJhY2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvU3RhY2tUcmFjZS5qcwppbmRleCBjMWJkMDEzNGE4NWE2MGMwZDhmNjVjOTdmZGY5OWQx
NTExZTNmMDNjLi45ZmQ1ZTI2NmI1OTdlMTFjYzlkMjhlNjk4MWU0MDM5MjQzYjQ1N2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvU3RhY2tU
cmFjZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMv
U3RhY2tUcmFjZS5qcwpAQCAtMTYwLDcgKzE2MCw3IEBAIFdJLlN0YWNrVHJhY2UgPSBjbGFzcyBT
dGFja1RyYWNlCiAKICAgICAgICAgICAgICAgICAvLyBTYXZlIHRoZSBmaXJzdCBub24tbmF0aXZl
IG5vbi1hbm9ueW1vdXMgY2FsbCBmcmFtZSBzbyBpdCBjYW4gYmUgdXNlZCBhcyBhCiAgICAgICAg
ICAgICAgICAgLy8gZmFsbGJhY2sgaWYgYWxsIHJlbWFpbmluZyBjYWxsIGZyYW1lcyBhcmUgYmxh
Y2tib3hlZC4KLSAgICAgICAgICAgICAgICBmaXJzdE5vbk5hdGl2ZU5vbkFub255bW91c0NhbGxG
cmFtZSA9IGZyYW1lOworICAgICAgICAgICAgICAgIGZpcnN0Tm9uTmF0aXZlTm9uQW5vbnltb3Vz
Q2FsbEZyYW1lID8/PSBmcmFtZTsKIAogICAgICAgICAgICAgICAgIGlmIChXSS5kZWJ1Z2dlck1h
bmFnZXIuYmxhY2tib3hEYXRhRm9yU291cmNlQ29kZShzb3VyY2VDb2RlKSkKICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5jc3MgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxl
bWVudC5jc3MKaW5kZXggNWRmN2ViMGVkYTJiMzZmY2MwMDMxZDA3YzlmMGFiMWU2YmRkN2Y1MC4u
NjUwYzgwMGU4ZjBhMjJkZGVjNjg5MTViYzU2MmFmNzc3ZDNlZGNlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hlZEdyb3VwVHJl
ZUVsZW1lbnQuY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0JsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50LmNzcwpAQCAtMjMsMjYgKzIzLDE3IEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotLnRyZWUtb3V0bGluZSAu
aXRlbS5ibGFja2JveGVkLWdyb3VwIHsKLSAgICBjdXJzb3I6IHBvaW50ZXI7CisvKiBTdHlsZXMg
c2hhcmVkIHdpdGggYFdJLkJsYWNrYm94ZWRHcm91cFZpZXdgLiAqLworCisudHJlZS1vdXRsaW5l
IC5pdGVtLmJsYWNrYm94ZWQtZ3JvdXAuc2VsZWN0ZWQgPiAqIHsKKyAgICBvcGFjaXR5OiB1bnNl
dDsKIH0KIAotLnRyZWUtb3V0bGluZSAuaXRlbS5ibGFja2JveGVkLWdyb3VwOm5vdCguc2VsZWN0
ZWQpID4gKiwKIC50cmVlLW91dGxpbmU6bm90KDpmb2N1cy13aXRoaW4pIC5pdGVtLmJsYWNrYm94
ZWQtZ3JvdXAuc2VsZWN0ZWQgPiAqLAogYm9keTppcygud2luZG93LWluYWN0aXZlLCAud2luZG93
LWRvY2tlZC1pbmFjdGl2ZSkgLnRyZWUtb3V0bGluZSAuaXRlbS5ibGFja2JveGVkLWdyb3VwLnNl
bGVjdGVkID4gKiB7Ci0gICAgb3BhY2l0eTogdmFyKC0tYmxhY2tib3hlZC10cmVlLWl0ZW0tb3Bh
Y2l0eSk7Ci19Ci0KLS50cmVlLW91dGxpbmUgLml0ZW0uYmxhY2tib3hlZC1ncm91cCAuaWNvbiB7
Ci0gICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9IaWRlLnN2ZyNibGFjayk7CisgICAgb3BhY2l0
eTogdmFyKC0tYmxhY2tib3hlZC1vcGFjaXR5KTsKIH0KIAogYm9keTpub3QoLndpbmRvdy1pbmFj
dGl2ZSwgLndpbmRvdy1kb2NrZWQtaW5hY3RpdmUpIC50cmVlLW91dGxpbmU6Zm9jdXMtd2l0aGlu
IC5pdGVtLmJsYWNrYm94ZWQtZ3JvdXAuc2VsZWN0ZWQgLmljb24gewogICAgIGNvbnRlbnQ6IHVy
bCguLi9JbWFnZXMvSGlkZS5zdmcjd2hpdGUpOwogfQotCi1AbWVkaWEgKHByZWZlcnMtY29sb3It
c2NoZW1lOiBkYXJrKSB7Ci0gICAgLnRyZWUtb3V0bGluZSAuaXRlbS5ibGFja2JveGVkLWdyb3Vw
IC5pY29uIHsKLSAgICAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9IaWRlLnN2ZyN3aGl0ZSk7
Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5qcwpp
bmRleCA5ZmNlZjM3M2YwMjVkYTU1ZmM5MDUxOGJmODA1MzcyMDk3YTg0YWYyLi41NzFmYTI3MmM4
ZTYwMTg2YmNkMjhjYmI0NDQ5YTBjZTQ3MDdjNWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVudC5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2Jv
eGVkR3JvdXBUcmVlRWxlbWVudC5qcwpAQCAtMjUsMjIgKzI1LDE3IEBACiAKIFdJLkJsYWNrYm94
ZWRHcm91cFRyZWVFbGVtZW50ID0gY2xhc3MgQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQgZXh0
ZW5kcyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQKIHsKLSAgICBjb25zdHJ1Y3RvcihjYWxsRnJhbWVz
KQorICAgIGNvbnN0cnVjdG9yKGNhbGxGcmFtZXMsIHtyZW1lbWJlckJsYWNrYm94ZWRDYWxsRnJh
bWVHcm91cFRvQXV0b0V4cGFuZH0gPSB7fSkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFXSS5kZWJ1Z2dlck1hbmFnZXIuc2hvdWxkQXV0b0V4cGFuZEJsYWNrYm94ZWRDYWxsRnJhbWVH
cm91cChjYWxsRnJhbWVzKSwgY2FsbEZyYW1lcyk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFy
ZW1lbWJlckJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFRvQXV0b0V4cGFuZCB8fCAhV0kuZGVidWdn
ZXJNYW5hZ2VyLnNob3VsZEF1dG9FeHBhbmRCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXAoY2FsbEZy
YW1lcyksIGNhbGxGcmFtZXMpOwogCiAgICAgICAgIGNvbnN0IGNsYXNzTmFtZXMgPSBbImJsYWNr
Ym94ZWQtZ3JvdXAiXTsKLSAgICAgICAgY29uc3QgdGl0bGUgPSBXSS5VSVN0cmluZygiQmxhY2ti
b3hlZCIsICJCbGFja2JveGVkIEAgRGVidWdnZXIgQ2FsbCBTdGFjayIsICJQYXJ0IG9mIHRoZSAn
QmxhY2tib3hlZCAtICVkIGNhbGwgZnJhbWVzJyBsYWJlbCBzaG93biBpbiB0aGUgZGVidWdnZXIg
Y2FsbCBzdGFjayB3aGVuIHBhdXNlZCBpbnN0ZWFkIG9mIHN1YnNlcXVlbnQgY2FsbCBmcmFtZXMg
dGhhdCBoYXZlIGJlZW4gYmxhY2tib3hlZC4iKTsKLSAgICAgICAgbGV0IHN1YnRpdGxlOwotICAg
ICAgICBpZiAoY2FsbEZyYW1lcy5sZW5ndGggPT09IDEpCi0gICAgICAgICAgICBzdWJ0aXRsZSA9
IFdJLlVJU3RyaW5nKCIlZCBjYWxsIGZyYW1lIiwgImNhbGwgZnJhbWUgQCBEZWJ1Z2dlciBDYWxs
IFN0YWNrIiwgIlBhcnQgb2YgdGhlICdCbGFja2JveGVkIC0gJWQgY2FsbCBmcmFtZScgbGFiZWwg
c2hvd24gaW4gdGhlIGRlYnVnZ2VyIGNhbGwgc3RhY2sgd2hlbiBwYXVzZWQgaW5zdGVhZCBvZiBz
dWJzZXF1ZW50IGNhbGwgZnJhbWVzIHRoYXQgaGF2ZSBiZWVuIGJsYWNrYm94ZWQuIikuZm9ybWF0
KGNhbGxGcmFtZXMubGVuZ3RoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgc3VidGl0bGUg
PSBXSS5VSVN0cmluZygiJWQgY2FsbCBmcmFtZXMiLCAiY2FsbCBmcmFtZXMgQCBEZWJ1Z2dlciBD
YWxsIFN0YWNrIiwgIlBhcnQgb2YgdGhlICdCbGFja2JveGVkIC0gJWQgY2FsbCBmcmFtZXMnIGxh
YmVsIHNob3duIGluIHRoZSBkZWJ1Z2dlciBjYWxsIHN0YWNrIHdoZW4gcGF1c2VkIGluc3RlYWQg
b2Ygc3Vic2VxdWVudCBjYWxsIGZyYW1lcyB0aGF0IGhhdmUgYmVlbiBibGFja2JveGVkLiIpLmZv
cm1hdChjYWxsRnJhbWVzLmxlbmd0aCk7Ci0KLSAgICAgICAgc3VwZXIoY2xhc3NOYW1lcywgdGl0
bGUsIHN1YnRpdGxlKTsKKyAgICAgICAgc3VwZXIoY2xhc3NOYW1lcywgV0kuQmxhY2tib3hlZEdy
b3VwVmlldy5nZW5lcmF0ZVRpdGxlKGNhbGxGcmFtZXMpLCBXSS5CbGFja2JveGVkR3JvdXBWaWV3
LmdlbmVyYXRlU3VidGl0bGUoY2FsbEZyYW1lcykpOwogCiAgICAgICAgIHRoaXMudG9nZ2xlT25D
bGljayA9IHRydWU7CisKICAgICAgICAgdGhpcy5fY2FsbEZyYW1lcyA9IGNhbGxGcmFtZXM7Cisg
ICAgICAgIHRoaXMuX3JlbWVtYmVyQmxhY2tib3hlZENhbGxGcmFtZUdyb3VwVG9BdXRvRXhwYW5k
ID0gcmVtZW1iZXJCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXBUb0F1dG9FeHBhbmQgfHwgZmFsc2U7
CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBAIC01NCw3ICs0OSw4IEBAIFdJLkJsYWNrYm94ZWRH
cm91cFRyZWVFbGVtZW50ID0gY2xhc3MgQmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQgZXh0ZW5k
cyBXSS5HZW5lCiAKICAgICBleHBhbmQoKQogICAgIHsKLSAgICAgICAgV0kuZGVidWdnZXJNYW5h
Z2VyLnJlbWVtYmVyQmxhY2tib3hlZENhbGxGcmFtZUdyb3VwVG9BdXRvRXhwYW5kKHRoaXMuX2Nh
bGxGcmFtZXMpOworICAgICAgICBpZiAodGhpcy5fcmVtZW1iZXJCbGFja2JveGVkQ2FsbEZyYW1l
R3JvdXBUb0F1dG9FeHBhbmQpCisgICAgICAgICAgICBXSS5kZWJ1Z2dlck1hbmFnZXIucmVtZW1i
ZXJCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXBUb0F1dG9FeHBhbmQodGhpcy5fY2FsbEZyYW1lcyk7
CiAKICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZih0aGlz
KTsKICAgICAgICAgZm9yIChsZXQgaSA9IHRoaXMuX2NhbGxGcmFtZXMubGVuZ3RoIC0gMTsgaSA+
PSAwOyAtLWkpCkBAIC03NCw0ICs3MCwxMSBAQCBXSS5CbGFja2JveGVkR3JvdXBUcmVlRWxlbWVu
dCA9IGNsYXNzIEJsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZQogICAg
ICAgICB0aGlzLmV4cGFuZCgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisKKyAgICAv
LyBQcm90ZWN0ZWQKKworICAgIGN1c3RvbVRpdGxlVG9vbHRpcCgpCisgICAgeworICAgICAgICBy
ZXR1cm4gV0kuQmxhY2tib3hlZEdyb3VwVmlldy5nZW5lcmF0ZVRvb2x0aXAodGhpcy5fY2FsbEZy
YW1lcyk7CisgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFZpZXcuY3NzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQmxhY2tib3hlZEdyb3VwVmlldy5jc3MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjVhNWI5MGY5ODEzNzMyNzZmNDRhYmZiOWZjNzEwODJhNjlhNmI3NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNr
Ym94ZWRHcm91cFZpZXcuY3NzCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKiBTdHls
ZXMgc2hhcmVkIHdpdGggYFdJLkJsYWNrYm94ZWRHcm91cFRyZWVFbGVtZW50YC4gKi8KKworLmJs
YWNrYm94ZWQtZ3JvdXAgeworICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgdGV4dC1vdmVyZmxv
dzogZWxsaXBzaXM7CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICBjdXJzb3I6IHBvaW50
ZXI7Cit9CisKKy5ibGFja2JveGVkLWdyb3VwID4gKiB7CisgICAgb3BhY2l0eTogdmFyKC0tYmxh
Y2tib3hlZC1vcGFjaXR5KTsKK30KKworLmJsYWNrYm94ZWQtZ3JvdXAgLmljb24geworICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICB3aWR0aDogMTZweDsKKyAgICBoZWlnaHQ6IDE2cHg7
CisgICAgbWFyZ2luLWlubGluZS1lbmQ6IDNweDsKKyAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwor
ICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvSGlkZS5zdmcjYmxhY2spOworfQorCisuYmxhY2ti
b3hlZC1ncm91cCAuc3VidGl0bGUgeworICAgIGNvbG9yOiBoc2xhKDAsIDAlLCAwJSwgMC42KTsK
KyAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cit9CisKKy5ibGFja2JveGVkLWdyb3VwIC5zZXBh
cmF0b3IgeworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgY29sb3I6IGhzbGEoMCwgMCUs
IDAlLCAwLjIpOworfQorCitAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7Cisg
ICAgLmJsYWNrYm94ZWQtZ3JvdXAgLmljb24geworICAgICAgICBjb250ZW50OiB1cmwoLi4vSW1h
Z2VzL0hpZGUuc3ZnI3doaXRlKTsKKyAgICB9CisKKyAgICAuYmxhY2tib3hlZC1ncm91cCAuc3Vi
dGl0bGUgeworICAgICAgICBjb2xvcjogaHNsYSgwLCAwJSwgdmFyKC0tZm9yZWdyb3VuZC1saWdo
dG5lc3MpLCAwLjYpOworICAgIH0KKworICAgIC5ibGFja2JveGVkLWdyb3VwIC5zZXBhcmF0b3Ig
eworICAgICAgICBjb2xvcjogaHNsYSgwLCAwJSwgdmFyKC0tZm9yZWdyb3VuZC1saWdodG5lc3Mp
LCAwLjIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94ZWRHcm91cFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveGVkR3JvdXBWaWV3LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMwNWQ2NDkxNTNlMmNmZmNlMTI0ZTdmY2U3NTM4MTdiNmY4ZWM5ZjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2Jv
eGVkR3JvdXBWaWV3LmpzCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5CbGFja2Jv
eGVkR3JvdXBWaWV3ID0gY2xhc3MgQmxhY2tib3hlZEdyb3VwVmlldworeworICAgIGNvbnN0cnVj
dG9yKGNhbGxGcmFtZXMpCisgICAgeworICAgICAgICBjb25zb2xlLmFzc2VydChBcnJheS5pc0Fy
cmF5KGNhbGxGcmFtZXMpICYmIGNhbGxGcmFtZXMubGVuZ3RoICYmIGNhbGxGcmFtZXMuZXZlcnko
KGNhbGxGcmFtZSkgPT4gY2FsbEZyYW1lIGluc3RhbmNlb2YgV0kuQ2FsbEZyYW1lKSwgY2FsbEZy
YW1lcyk7CisKKyAgICAgICAgbGV0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgPSAiYmxhY2tib3hlZC1ncm91cCI7Cisg
ICAgICAgIGVsZW1lbnQudGl0bGUgPSBXSS5CbGFja2JveGVkR3JvdXBWaWV3LmdlbmVyYXRlVG9v
bHRpcChjYWxsRnJhbWVzKTsKKyAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIChldmVudCkgPT4geworICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtzaG93RnVuY3Rp
b25OYW1lOiB0cnVlLCBpbmRpY2F0ZUlmQmxhY2tib3hlZDogdHJ1ZX07CisgICAgICAgICAgICBm
b3IgKGxldCBpID0gY2FsbEZyYW1lcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkKKyAgICAgICAg
ICAgICAgICBlbGVtZW50LnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKG5ldyBXSS5DYWxsRnJh
bWVWaWV3KGNhbGxGcmFtZXNbaV0sIG9wdGlvbnMpLCBlbGVtZW50KTsKKworICAgICAgICAgICAg
ZWxlbWVudC5yZW1vdmUoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgbGV0IHRpdGxlRWxlbWVu
dCA9IGVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpKTsK
KyAgICAgICAgdGl0bGVFbGVtZW50LmNsYXNzTmFtZSA9ICJ0aXRsZSI7CisKKyAgICAgICAgbGV0
IGljb25FbGVtZW50ID0gdGl0bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImltZyIpKTsKKyAgICAgICAgaWNvbkVsZW1lbnQuY2xhc3NOYW1lID0gImljb24iOwor
CisgICAgICAgIHRpdGxlRWxlbWVudC5hcHBlbmQoV0kuQmxhY2tib3hlZEdyb3VwVmlldy5nZW5l
cmF0ZVRpdGxlKGNhbGxGcmFtZXMpKTsKKworICAgICAgICBsZXQgc3VidGl0bGVFbGVtZW50ID0g
ZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAg
ICAgICBzdWJ0aXRsZUVsZW1lbnQuY2xhc3NOYW1lID0gInN1YnRpdGxlIjsKKworICAgICAgICBs
ZXQgc2VwYXJhdG9yRWxlbWVudCA9IHN1YnRpdGxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJzcGFuIikpOworICAgICAgICBzZXBhcmF0b3JFbGVtZW50LmNsYXNz
TmFtZSA9ICJzZXBhcmF0b3IiOworICAgICAgICBzZXBhcmF0b3JFbGVtZW50LnRleHRDb250ZW50
ID0gIiAiICsgZW1EYXNoICsgIiAiOworCisgICAgICAgIHN1YnRpdGxlRWxlbWVudC5hcHBlbmQo
V0kuQmxhY2tib3hlZEdyb3VwVmlldy5nZW5lcmF0ZVN1YnRpdGxlKGNhbGxGcmFtZXMpKTsKKwor
ICAgICAgICByZXR1cm4gZWxlbWVudDsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0
YXRpYyBnZW5lcmF0ZVRpdGxlKGNhbGxGcmFtZXMpCisgICAgeworICAgICAgICByZXR1cm4gV0ku
VUlTdHJpbmcoIkJsYWNrYm94ZWQiLCAiQmxhY2tib3hlZCBAIERlYnVnZ2VyIENhbGwgU3RhY2si
LCAiUGFydCBvZiB0aGUgJ0JsYWNrYm94ZWQgLSAlZCBjYWxsIGZyYW1lcycgbGFiZWwgc2hvd24g
aW4gdGhlIGRlYnVnZ2VyIGNhbGwgc3RhY2sgd2hlbiBwYXVzZWQgaW5zdGVhZCBvZiBzdWJzZXF1
ZW50IGNhbGwgZnJhbWVzIHRoYXQgaGF2ZSBiZWVuIGJsYWNrYm94ZWQuIik7CisgICAgfQorCisg
ICAgc3RhdGljIGdlbmVyYXRlU3VidGl0bGUoY2FsbEZyYW1lcykKKyAgICB7CisgICAgICAgIGlm
IChjYWxsRnJhbWVzLmxlbmd0aCA9PT0gMSkKKyAgICAgICAgICAgIHJldHVybiBXSS5VSVN0cmlu
ZygiJWQgY2FsbCBmcmFtZSIsICJjYWxsIGZyYW1lIEAgRGVidWdnZXIgQ2FsbCBTdGFjayIsICJQ
YXJ0IG9mIHRoZSAnQmxhY2tib3hlZCAtICVkIGNhbGwgZnJhbWUnIGxhYmVsIHNob3duIGluIHRo
ZSBkZWJ1Z2dlciBjYWxsIHN0YWNrIHdoZW4gcGF1c2VkIGluc3RlYWQgb2Ygc3Vic2VxdWVudCBj
YWxsIGZyYW1lcyB0aGF0IGhhdmUgYmVlbiBibGFja2JveGVkLiIpLmZvcm1hdChjYWxsRnJhbWVz
Lmxlbmd0aCk7CisKKyAgICAgICAgcmV0dXJuIFdJLlVJU3RyaW5nKCIlZCBjYWxsIGZyYW1lcyIs
ICJjYWxsIGZyYW1lcyBAIERlYnVnZ2VyIENhbGwgU3RhY2siLCAiUGFydCBvZiB0aGUgJ0JsYWNr
Ym94ZWQgLSAlZCBjYWxsIGZyYW1lcycgbGFiZWwgc2hvd24gaW4gdGhlIGRlYnVnZ2VyIGNhbGwg
c3RhY2sgd2hlbiBwYXVzZWQgaW5zdGVhZCBvZiBzdWJzZXF1ZW50IGNhbGwgZnJhbWVzIHRoYXQg
aGF2ZSBiZWVuIGJsYWNrYm94ZWQuIikuZm9ybWF0KGNhbGxGcmFtZXMubGVuZ3RoKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgZ2VuZXJhdGVUb29sdGlwKGNhbGxGcmFtZXMpCisgICAgeworICAgICAg
ICBpZiAoY2FsbEZyYW1lcy5sZW5ndGggPT09IDEpCisgICAgICAgICAgICByZXR1cm4gV0kuVUlT
dHJpbmcoIkNsaWNrIHRvIHNob3cgJWQgYmxhY2tib3hlZCBjYWxsIGZyYW1lIiwgIkNsaWNrIHRv
IHNob3cgYmxhY2tib3hlZCBjYWxsIGZyYW1lIEAgRGVidWdnZXIgQ2FsbCBTdGFjayIsICJUb29s
dGlwIGZvciB0aGUgJ0JsYWNrYm94ZWQgLSAlZCBjYWxsIGZyYW1lJyBsYWJlbCBzaG93biBpbiB0
aGUgZGVidWdnZXIgY2FsbCBzdGFjayB3aGVuIHBhdXNlZCBpbnN0ZWFkIG9mIHN1YnNlcXVlbnQg
Y2FsbCBmcmFtZXMgdGhhdCBoYXZlIGJlZW4gYmxhY2tib3hlZC4iKS5mb3JtYXQoY2FsbEZyYW1l
cy5sZW5ndGgpOworCisgICAgICAgIHJldHVybiBXSS5VSVN0cmluZygiQ2xpY2sgdG8gc2hvdyAl
ZCBibGFja2JveGVkIGNhbGwgZnJhbWVzIiwgIkNsaWNrIHRvIHNob3cgYmxhY2tib3hlZCBjYWxs
IGZyYW1lcyBAIERlYnVnZ2VyIENhbGwgU3RhY2siLCAiVG9vbHRpcCBmb3IgdGhlICdCbGFja2Jv
eGVkIC0gJWQgY2FsbCBmcmFtZXMnIGxhYmVsIHNob3duIGluIHRoZSBkZWJ1Z2dlciBjYWxsIHN0
YWNrIHdoZW4gcGF1c2VkIGluc3RlYWQgb2Ygc3Vic2VxdWVudCBjYWxsIGZyYW1lcyB0aGF0IGhh
dmUgYmVlbiBibGFja2JveGVkLiIpLmZvcm1hdChjYWxsRnJhbWVzLmxlbmd0aCk7CisgICAgfQor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0NhbGxGcmFtZVRyZWVFbGVtZW50LmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NhbGxGcmFtZVRyZWVFbGVtZW50LmNzcwppbmRleCAyYWQ0YWI1ZDY1OWRk
Nzk0NTlhMWU3ZTIxYjVmNjBkY2Y2ZmY5OWRkLi4yNTFkYTY1YzBjNGNmYzg3MmEzNGM3NzViNjAw
ZmY4OGUwMWFmNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DYWxsRnJhbWVUcmVlRWxlbWVudC5jc3MKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FsbEZyYW1lVHJlZUVsZW1lbnQuY3NzCkBAIC05
OSw1ICs5OSw1IEBAIGJvZHk6bm90KC53aW5kb3ctaW5hY3RpdmUsIC53aW5kb3ctZG9ja2VkLWlu
YWN0aXZlKSAudHJlZS1vdXRsaW5lOmZvY3VzLXdpdGhpbiAuCiB9CiAKIC50cmVlLW91dGxpbmUg
Lml0ZW0uY2FsbC1mcmFtZS5ibGFja2JveGVkOm5vdCguc2VsZWN0ZWQpIHsKLSAgICBvcGFjaXR5
OiB2YXIoLS1ibGFja2JveGVkLXRyZWUtaXRlbS1vcGFjaXR5KTsKKyAgICBvcGFjaXR5OiB2YXIo
LS1ibGFja2JveGVkLW9wYWNpdHkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FsbEZyYW1lVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVUcmVlRWxlbWVudC5q
cwppbmRleCA4NDRiNWE4ZTIxYmQ0YmJhZDk2NzY1ZTI2NDcxZTA2ZDlkMjcyOGY2Li5lN2ZlYWY5
MTUwY2NmMTg5MzE5YzhiZDMwM2I4MDc5Y2U1YzU1OTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVUcmVlRWxlbWVudC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVU
cmVlRWxlbWVudC5qcwpAQCAtMjUsNyArMjUsNyBAQAogCiBXSS5DYWxsRnJhbWVUcmVlRWxlbWVu
dCA9IGNsYXNzIENhbGxGcmFtZVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZXJhbFRyZWVFbGVt
ZW50CiB7Ci0gICAgY29uc3RydWN0b3IoY2FsbEZyYW1lLCBpc0FzeW5jQm91bmRhcnlDYWxsRnJh
bWUpCisgICAgY29uc3RydWN0b3IoY2FsbEZyYW1lLCB7aXNBc3luY0JvdW5kYXJ5Q2FsbEZyYW1l
fSA9IHt9KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoY2FsbEZyYW1lIGluc3RhbmNl
b2YgV0kuQ2FsbEZyYW1lKTsKIApAQCAtMzcsNyArMzcsNyBAQCBXSS5DYWxsRnJhbWVUcmVlRWxl
bWVudCA9IGNsYXNzIENhbGxGcmFtZVRyZWVFbGVtZW50IGV4dGVuZHMgV0kuR2VuZXJhbFRyZWVF
bGVtZQogICAgICAgICB0aGlzLl9jYWxsRnJhbWUgPSBjYWxsRnJhbWU7CiAgICAgICAgIHRoaXMu
X2lzQWN0aXZlQ2FsbEZyYW1lID0gZmFsc2U7CiAKLSAgICAgICAgdGhpcy5faXNBc3luY0JvdW5k
YXJ5Q2FsbEZyYW1lID0gaXNBc3luY0JvdW5kYXJ5Q2FsbEZyYW1lOworICAgICAgICB0aGlzLl9p
c0FzeW5jQm91bmRhcnlDYWxsRnJhbWUgPSBpc0FzeW5jQm91bmRhcnlDYWxsRnJhbWUgfHwgZmFs
c2U7CiAgICAgICAgICBpZiAodGhpcy5faXNBc3luY0JvdW5kYXJ5Q2FsbEZyYW1lKSB7CiAgICAg
ICAgICAgICB0aGlzLmFkZENsYXNzTmFtZSgiYXN5bmMtYm91bmRhcnkiKTsKICAgICAgICAgICAg
IHRoaXMuc2VsZWN0YWJsZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ2FsbEZyYW1lVmlldy5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVWaWV3LmNzcwppbmRleCA5MDcw
OGUyZTY2NmM4NjVhZjI4ODE5Njg1NzAyMTY1MGUwMjM3ZDA5Li4zMTExMzExNmM1NmYxMTZmZGI0
NDA3MDEyNmZkMTdjZjVkMWFjMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVWaWV3LmNzcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DYWxsRnJhbWVWaWV3LmNzcwpAQCAtMzIsNyAr
MzIsNyBAQAogCiAuY2FsbC1mcmFtZS5ibGFja2JveGVkID4gLnRpdGxlLAogLmNhbGwtZnJhbWUu
YmxhY2tib3hlZDpub3QoOmhvdmVyLCA6Zm9jdXMpID4gLnN1YnRpdGxlIHsKLSAgICBvcGFjaXR5
OiB2YXIoLS1ibGFja2JveGVkLXRyZWUtaXRlbS1vcGFjaXR5KTsKKyAgICBvcGFjaXR5OiB2YXIo
LS1ibGFja2JveGVkLW9wYWNpdHkpOwogfQogCiAuY2FsbC1mcmFtZSAuaWNvbiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TdGFja1RyYWNl
Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1N0YWNr
VHJhY2VWaWV3LmpzCmluZGV4IGVlMDVhZDQ5NWIxNmZhZmExMWY0M2YwZWI0MzJiOWNhOTEwYWY3
MjEuLjdjYmE1MGVjYWEyNjMxNzJjMTlmODNhN2QwNjNiZDRlYzQ4MDJjODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1N0YWNrVHJhY2VWaWV3
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1N0YWNr
VHJhY2VWaWV3LmpzCkBAIC0zMiwxNSArMzIsNyBAQCBXSS5TdGFja1RyYWNlVmlldyA9IGNsYXNz
IFN0YWNrVHJhY2VWaWV3IGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgIHZhciBlbGVtZW50ID0g
dGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBl
bGVtZW50LmNsYXNzTGlzdC5hZGQoInN0YWNrLXRyYWNlIik7CiAKLSAgICAgICAgZm9yICh2YXIg
Y2FsbEZyYW1lIG9mIHN0YWNrVHJhY2UuY2FsbEZyYW1lcykgewotICAgICAgICAgICAgaWYgKCFj
YWxsRnJhbWUuc291cmNlQ29kZUxvY2F0aW9uICYmIGNhbGxGcmFtZS5mdW5jdGlvbk5hbWUgPT09
IG51bGwpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoY2FsbEZy
YW1lLmlzQ29uc29sZUV2YWx1YXRpb24gJiYgIVdJLnNldHRpbmdzLmRlYnVnU2hvd0NvbnNvbGVF
dmFsdWF0aW9ucy52YWx1ZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAg
ICAgbGV0IGNhbGxGcmFtZUVsZW1lbnQgPSBuZXcgV0kuQ2FsbEZyYW1lVmlldyhjYWxsRnJhbWUs
IHtzaG93RnVuY3Rpb25OYW1lOiB0cnVlLCBpbmRpY2F0ZUlmQmxhY2tib3hlZDogdHJ1ZX0pOwot
ICAgICAgICAgICAgZWxlbWVudC5hcHBlbmRDaGlsZChjYWxsRnJhbWVFbGVtZW50KTsKLSAgICAg
ICAgfQorICAgICAgICBXSS5DYWxsRnJhbWVUcmVlQ29udHJvbGxlci5ncm91cEJsYWNrYm94ZWRD
YWxsRnJhbWVzKGVsZW1lbnQsIHN0YWNrVHJhY2UuY2FsbEZyYW1lcyk7CiAgICAgfQogCiAgICAg
Z2V0IGVsZW1lbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvVGhyZWFkVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qcwppbmRleCAxMTBkNzdmMGM3
ODUxMTczM2JhYjhkNWM3OTdlZmYwZTU5MjUwNjA4Li4zNGU0MTMxN2I2ZDcyYzVhYzNmOTE2ODlk
YTgwMTlhODA2MjQ2OGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaHJlYWRUcmVlRWxlbWVudC5qcwpAQCAtNDUsNTMg
KzQ1LDE0IEBAIFdJLlRocmVhZFRyZWVFbGVtZW50ID0gY2xhc3MgVGhyZWFkVHJlZUVsZW1lbnQg
ZXh0ZW5kcyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQKICAgICAgICAgdGhpcy5fdXBkYXRlU3RhdHVz
KCk7CiAKICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZv
clRhcmdldCh0aGlzLl90YXJnZXQpOwotICAgICAgICBsZXQgY2FsbEZyYW1lcyA9IHRhcmdldERh
dGEuY2FsbEZyYW1lczsKIAotICAgICAgICBpZiAodGFyZ2V0RGF0YS5wYXVzaW5nIHx8ICFjYWxs
RnJhbWVzLmxlbmd0aCkgeworICAgICAgICBpZiAodGFyZ2V0RGF0YS5wYXVzaW5nIHx8ICF0YXJn
ZXREYXRhLmNhbGxGcmFtZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxk
KHRoaXMuX2lkbGVUcmVlRWxlbWVudCk7CiAgICAgICAgICAgICB0aGlzLmV4cGFuZCgpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IGFjdGl2ZUNhbGxGcmFt
ZSA9IFdJLmRlYnVnZ2VyTWFuYWdlci5hY3RpdmVDYWxsRnJhbWU7Ci0gICAgICAgIGxldCBhY3Rp
dmVDYWxsRnJhbWVUcmVlRWxlbWVudCA9IG51bGw7Ci0KLSAgICAgICAgbGV0IHJlbmRlckNhbGxG
cmFtZXMgPSAoY2FsbEZyYW1lcywgc2hvdWxkU2VsZWN0QWN0aXZlRnJhbWUpID0+IHsKLSAgICAg
ICAgICAgIGxldCBibGFja2JveGVkQ2FsbEZyYW1lR3JvdXBTdGFydEluZGV4ID0gdW5kZWZpbmVk
OwotCi0gICAgICAgICAgICAvLyBBZGQgb25lIGV4dHJhIGl0ZXJhdGlvbiB0byBoYW5kbGUgY2Fs
bCBzdGFja3MgdGhhdCBzdGFydCBibGFja2JveGVkLgotICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aCArIDE7ICsraSkgewotICAgICAgICAgICAgICAgIGxl
dCBjYWxsRnJhbWUgPSBjYWxsRnJhbWVzW2ldOwotCi0gICAgICAgICAgICAgICAgaWYgKGNhbGxG
cmFtZT8uYmxhY2tib3hlZCAmJiBXSS5zZXR0aW5ncy5leHBlcmltZW50YWxDb2xsYXBzZUJsYWNr
Ym94ZWRDYWxsRnJhbWVzLnZhbHVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJsYWNrYm94ZWRD
YWxsRnJhbWVHcm91cFN0YXJ0SW5kZXggPz89IGk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChibGFja2JveGVk
Q2FsbEZyYW1lR3JvdXBTdGFydEluZGV4ICE9PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgbGV0IGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cCA9IGNhbGxGcmFtZXMuc2xpY2UoYmxh
Y2tib3hlZENhbGxGcmFtZUdyb3VwU3RhcnRJbmRleCwgaSk7Ci0gICAgICAgICAgICAgICAgICAg
IGJsYWNrYm94ZWRDYWxsRnJhbWVHcm91cFN0YXJ0SW5kZXggPSB1bmRlZmluZWQ7Ci0KLSAgICAg
ICAgICAgICAgICAgICAgaWYgKCFXSS5kZWJ1Z2dlck1hbmFnZXIuc2hvdWxkQXV0b0V4cGFuZEJs
YWNrYm94ZWRDYWxsRnJhbWVHcm91cChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXApKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyBXSS5CbGFja2JveGVkR3Jv
dXBUcmVlRWxlbWVudChibGFja2JveGVkQ2FsbEZyYW1lR3JvdXApKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgYmxhY2tib3hlZENhbGxGcmFtZSBvZiBibGFja2JveGVkQ2FsbEZy
YW1lR3JvdXApCi0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKG5ldyBX
SS5DYWxsRnJhbWVUcmVlRWxlbWVudChibGFja2JveGVkQ2FsbEZyYW1lKSk7Ci0gICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKCFjYWxsRnJhbWUpCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgbGV0IGNhbGxGcmFtZVRyZWVFbGVt
ZW50ID0gbmV3IFdJLkNhbGxGcmFtZVRyZWVFbGVtZW50KGNhbGxGcmFtZSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKHNob3VsZFNlbGVjdEFjdGl2ZUZyYW1lICYmIGNhbGxGcmFtZSA9PT0gYWN0aXZl
Q2FsbEZyYW1lKQotICAgICAgICAgICAgICAgICAgICBhY3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVu
dCA9IGNhbGxGcmFtZVRyZWVFbGVtZW50OwotICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kQ2hp
bGQoY2FsbEZyYW1lVHJlZUVsZW1lbnQpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotCi0g
ICAgICAgIHJlbmRlckNhbGxGcmFtZXMoY2FsbEZyYW1lcywgdHJ1ZSk7CisgICAgICAgIGxldCBh
Y3RpdmVDYWxsRnJhbWVUcmVlRWxlbWVudCA9IFdJLkNhbGxGcmFtZVRyZWVDb250cm9sbGVyLmdy
b3VwQmxhY2tib3hlZENhbGxGcmFtZXModGhpcywgdGFyZ2V0RGF0YS5jYWxsRnJhbWVzLCB7cmVt
ZW1iZXJCbGFja2JveGVkQ2FsbEZyYW1lR3JvdXBUb0F1dG9FeHBhbmQ6IHRydWV9KTsKIAogICAg
ICAgICBpZiAoYWN0aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQpIHsKICAgICAgICAgICAgIGFjdGl2
ZUNhbGxGcmFtZVRyZWVFbGVtZW50LnNlbGVjdCh0cnVlLCB0cnVlKTsKQEAgLTExNSwxMSArNzYs
MTEgQEAgV0kuVGhyZWFkVHJlZUVsZW1lbnQgPSBjbGFzcyBUaHJlYWRUcmVlRWxlbWVudCBleHRl
bmRzIFdJLkdlbmVyYWxUcmVlRWxlbWVudAogICAgICAgICAgICAgICAgIGJvdW5kYXJ5Q2FsbEZy
YW1lID0gbmV3IFdJLkNhbGxGcmFtZShudWxsLCBudWxsLCBudWxsLCBmdW5jdGlvbk5hbWUsIG51
bGwsIG51bGwsIG5hdGl2ZUNvZGUpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjb25z
dCBpc0FzeW5jQm91bmRhcnlDYWxsRnJhbWUgPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5hcHBl
bmRDaGlsZChuZXcgV0kuQ2FsbEZyYW1lVHJlZUVsZW1lbnQoYm91bmRhcnlDYWxsRnJhbWUsIGlz
QXN5bmNCb3VuZGFyeUNhbGxGcmFtZSkpOworICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChu
ZXcgV0kuQ2FsbEZyYW1lVHJlZUVsZW1lbnQoYm91bmRhcnlDYWxsRnJhbWUsIHtpc0FzeW5jQm91
bmRhcnlDYWxsRnJhbWU6IHRydWV9KSk7CiAKICAgICAgICAgICAgIGxldCBzdGFydEluZGV4ID0g
Y3VycmVudFN0YWNrVHJhY2UudG9wQ2FsbEZyYW1lSXNCb3VuZGFyeSA/IDEgOiAwOwotICAgICAg
ICAgICAgcmVuZGVyQ2FsbEZyYW1lcyhzdGFydEluZGV4ID8gY3VycmVudFN0YWNrVHJhY2UuY2Fs
bEZyYW1lcy5zbGljZShzdGFydEluZGV4KSA6IGN1cnJlbnRTdGFja1RyYWNlLmNhbGxGcmFtZXMp
OworICAgICAgICAgICAgbGV0IGN1cnJlbnRDYWxsRnJhbWVzID0gc3RhcnRJbmRleCA/IGN1cnJl
bnRTdGFja1RyYWNlLmNhbGxGcmFtZXMuc2xpY2Uoc3RhcnRJbmRleCkgOiBjdXJyZW50U3RhY2tU
cmFjZS5jYWxsRnJhbWVzOworICAgICAgICAgICAgV0kuQ2FsbEZyYW1lVHJlZUNvbnRyb2xsZXIu
Z3JvdXBCbGFja2JveGVkQ2FsbEZyYW1lcyh0aGlzLCBjdXJyZW50Q2FsbEZyYW1lcywge3JlbWVt
YmVyQmxhY2tib3hlZENhbGxGcmFtZUdyb3VwVG9BdXRvRXhwYW5kOiB0cnVlfSk7CiAKICAgICAg
ICAgICAgIGlmIChjdXJyZW50U3RhY2tUcmFjZS50cnVuY2F0ZWQpIHsKICAgICAgICAgICAgICAg
ICBsZXQgdHJ1bmNhdGVkVHJlZUVsZW1lbnQgPSBuZXcgV0kuR2VuZXJhbFRyZWVFbGVtZW50KCJ0
cnVuY2F0ZWQtY2FsbC1mcmFtZXMiLCBXSS5VSVN0cmluZygiQ2FsbCBGcmFtZXMgVHJ1bmNhdGVk
IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVEYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMKaW5kZXggNjU5OTBjMDJlZjAzYjRhMzRiZTJj
NmJhMThkZTk4MTEwMWQ1ZDIyZi4uOWQyM2JkODU2NWZjYWYyOWM3MWY4Yzc2NDdkZWRkNWZiMjIw
NmVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVEYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzCkBAIC0zOTUsMTQgKzM5NSwxMSBAQCBX
SS5UaW1lbGluZURhdGFHcmlkID0gY2xhc3MgVGltZWxpbmVEYXRhR3JpZCBleHRlbmRzIFdJLkRh
dGFHcmlkCiAgICAgICAgICAgICB0aGlzLl9wb3BvdmVyQ2FsbFN0YWNrVHJlZU91dGxpbmUuZGlz
Y2xvc3VyZUJ1dHRvbnMgPSBmYWxzZTsKICAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJDYWxsU3Rh
Y2tUcmVlT3V0bGluZS5lbGVtZW50LmNsYXNzTGlzdC5hZGQoInRpbWVsaW5lLWRhdGEtZ3JpZCIp
OwogICAgICAgICAgICAgdGhpcy5fcG9wb3ZlckNhbGxTdGFja1RyZWVPdXRsaW5lLmFkZEV2ZW50
TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQuU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl9w
b3BvdmVyQ2FsbFN0YWNrVHJlZVNlbGVjdGlvbkRpZENoYW5nZSwgdGhpcyk7CisgICAgICAgICAg
ICB0aGlzLl9wb3BvdmVyQ2FsbFN0YWNrVHJlZU91dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5U
cmVlT3V0bGluZS5FdmVudC5FbGVtZW50UmVtb3ZlZCwgdGhpcy5fcG9wb3ZlckNhbGxTdGFja1Ry
ZWVFbGVtZW50UmVtb3ZlZCwgdGhpcyk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgdGhp
cy5fcG9wb3ZlckNhbGxTdGFja1RyZWVPdXRsaW5lLnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICAg
ICAgdmFyIGNhbGxGcmFtZXMgPSB0aGlzLnNlbGVjdGVkTm9kZS5yZWNvcmQuY2FsbEZyYW1lczsK
LSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICB2YXIgY2FsbEZyYW1lVHJlZUVsZW1lbnQgPSBuZXcgV0kuQ2FsbEZyYW1lVHJl
ZUVsZW1lbnQoY2FsbEZyYW1lc1tpXSk7Ci0gICAgICAgICAgICB0aGlzLl9wb3BvdmVyQ2FsbFN0
YWNrVHJlZU91dGxpbmUuYXBwZW5kQ2hpbGQoY2FsbEZyYW1lVHJlZUVsZW1lbnQpOwotICAgICAg
ICB9CisgICAgICAgIFdJLkNhbGxGcmFtZVRyZWVDb250cm9sbGVyLmdyb3VwQmxhY2tib3hlZENh
bGxGcmFtZXModGhpcy5fcG9wb3ZlckNhbGxTdGFja1RyZWVPdXRsaW5lLCB0aGlzLnNlbGVjdGVk
Tm9kZS5yZWNvcmQuY2FsbEZyYW1lcyk7CiAKICAgICAgICAgbGV0IGNvbnRlbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZCh0aGlz
Ll9wb3BvdmVyQ2FsbFN0YWNrVHJlZU91dGxpbmUuZWxlbWVudCk7CkBAIC00MjcsNiArNDI0LDEy
IEBAIFdJLlRpbWVsaW5lRGF0YUdyaWQgPSBjbGFzcyBUaW1lbGluZURhdGFHcmlkIGV4dGVuZHMg
V0kuRGF0YUdyaWQKICAgICAgICAgICAgIGlnbm9yZVNlYXJjaFRhYjogdHJ1ZSwKICAgICAgICAg
fSk7CiAgICAgfQorCisgICAgX3BvcG92ZXJDYWxsU3RhY2tUcmVlRWxlbWVudFJlbW92ZWQoZXZl
bnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQuZGF0YS5lbGVtZW50IGluc3RhbmNlb2YgV0ku
QmxhY2tib3hlZEdyb3VwVHJlZUVsZW1lbnQpCisgICAgICAgICAgICB0aGlzLl9wb3BvdmVyPy51
cGRhdGUoKTsKKyAgICB9CiB9OwogCiBXSS5UaW1lbGluZURhdGFHcmlkLkhhc05vbkRlZmF1bHRG
aWx0ZXJTdHlsZUNsYXNzTmFtZSA9ICJoYXMtbm9uLWRlZmF1bHQtZmlsdGVyIjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxlcy5j
c3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WYXJpYWJsZXMu
Y3NzCmluZGV4IGE3YTMwNDA4YjMzOTcxMTQ1YmNlNzc2NjYwNTlmZDJkNmE4YWE5ZWMuLmIxZDlh
Zjg1ZTcxYTI2ZjQ5OGI1ZTY1MjgxZGRlMzg0MTFlZTg1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1ZhcmlhYmxlcy5jc3MKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmFyaWFibGVzLmNzcwpAQCAt
MjE2LDcgKzIxNiw3IEBACiAKICAgICAtLWltYWdlLWJ1dHRvbi1uYXZpZ2F0aW9uLWl0ZW0td2lk
dGg6IDI2cHg7CiAKLSAgICAtLWJsYWNrYm94ZWQtdHJlZS1pdGVtLW9wYWNpdHk6IDAuNTsKKyAg
ICAtLWJsYWNrYm94ZWQtb3BhY2l0eTogMC41OwogfQogCiBib2R5LndpbmRvdy1pbmFjdGl2ZSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449700</attachid>
            <date>2022-01-21 15:17:31 -0800</date>
            <delta_ts>2022-02-04 16:43:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235274-20220121161726.patch</filename>
            <type>text/plain</type>
            <size>56050</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGY4YTkzZjMxOTZkYjA3YjhlYzgzYzQzMzY4NTMy
MTdjYjMwY2M0MTAuLjQyZDg5NzcwYTViYWIxZWVmZGFmYWQ3MDVlNGFjYjNjNmU2Y2ZjODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIyLTAxLTE0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgKGNv
bmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZlY3RlZCBieSBzY3Jp
cHQgYmxhY2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJlaW5nIGFibGUgdG8gZGVmZXIgYnJlYWtwb2ludCBldmFsdWF0aW9ucyB1bnRpbCB0
aGUgbmV4dCBhY3R1YWwgcGF1c2UgY2FuIHNvbWV0aW1lcyBiZSBmYXIKKyAgICAgICAgbW9yZSB1
c2VmdWwgdGhhbiBkb2luZyB0aGUgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBhdCB0aGUgYnJlYWtw
b2ludCdzIG9yaWdpbmFsIGxvY2F0aW9uLgorCisgICAgICAgIEFzIGFuIGV4YW1wbGUsIGNvbmZp
Z3VyaW5nIHRoZSBBbGwgRXZlbnRzIGJyZWFrcG9pbnQgd2l0aCBhIGBjb25zb2xlLnRyYWNlKClg
IGFjdGlvbiBhbmQKKyAgICAgICAgYXV0by1jb250aW51ZSBlbmFibGVkIHdvdWxkIG5vdCBwcm92
aWRlIG11Y2ggdXNlZnVsIGluZm9ybWF0aW9uIHdpdGhvdXQgYWxzbyBibGFja2JveGluZworICAg
ICAgICBicmVha3BvaW50IGV2YWx1YXRpb25zIGFzIHRoZSBvcmlnaW5hbCBwYXVzZSBsb2NhdGlv
biBvZiB0aGUgQWxsIEV2ZW50cyBicmVha3BvaW50IGlzIG9uIHRoZQorICAgICAgICBmaXJzdCBs
aW5lIG9mIHRoZSBldmVudCBoYW5kbGVyLCBtZWFuaW5nIHRoYXQgaWYgdGhlIHNjcmlwdCBjb250
YWluaW5nIHRoZSBldmVudCBoYW5kbGVyIGlzCisgICAgICAgIGJsYWNrYm94ZWQgdGhlbiB0aGUg
YGNvbnNvbGUudHJhY2UoKWAgd291bGQgc3RpbGwgb25seSBzaG93IHRoYXQgbG9jYXRpb24gZXZl
biB0aG91Z2ggdGhlCisgICAgICAgIFNvdXJjZXMgVGFiIHdvdWxkIHNob3cgdGhlIGZpcnN0IGxp
bmUgb2YgY29kZSBvdXRzaWRlIG9mIHRoYXQgc2NyaXB0IChkdWUgdG8gdGhlIGJsYWNrYm94KS4K
KyAgICAgICAgQmVpbmcgYWJsZSB0byBhbHNvIGJsYWNrYm94IGJyZWFrcG9pbnQgZXZhbHVhdGlv
bnMgd291bGQgaW5zdGVhZCBjYXVzZSB0aGUgYGNvbnNvbGUudHJhY2UoKWAKKyAgICAgICAgYWN0
aW9uIHRvIGhhdmUgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZSBTb3VyY2VzIFRhYiwgc2luY2UgaXQn
cyBldmFsdWF0aW9uIHdvdWxkIGJlIGRlZmVycmVkCisgICAgICAgIHVudGlsIGV4ZWN1dGlvbiBh
Y3R1YWxseSBwYXVzZWQsIHdoaWNoIGlzIGZ1cnRoZXIgaW5zaWRlIHRoZSBldmVudCBoYW5kbGVy
LgorCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAoSlNDOjpEZWJ1
Z2dlcjo6RGVidWdnZXIpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2lu
dCk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpldmFsdWF0ZUJyZWFrcG9pbnRDb25kaXRpb24p
OgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6Y29udGludWVQcm9ncmFtKToKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXI6OnBhdXNlSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6ZGlk
RXhlY3V0ZVByb2dyYW0pOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6c2V0QmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnMpOiBBZGRlZC4KKyAgICAgICAgS2VlcCB0cmFjayBvZiBldmVyeSBg
QnJlYWtwb2ludGAgd2FudHMgdG8gcGF1c2UgYnV0IGlzIGRlZmVycmVkIGR1ZSB0byBibGFja2Jv
eGluZy4KKyAgICAgICAgRGVwZW5kaW5nIG9uIHdoZXRoZXIgYnJlYWtwb2ludCBldmFsdWF0aW9u
cyBhcmUgYWxzbyBibGFja2JveGVkIChiYXNlZCBvbiB0aGUgZmxhZyBzZXQgdmlhCisgICAgICAg
IHRoZSBwaXBpbmcgY29kZS9sb2dpYyBiZWxvdyksIGNoZWNrIGlmIHRoZSBzY3JpcHQgYXR0ZW1w
dGluZyB0byBiZSBwYXVzZWQgaW4gaXMgYmxhY2tib3hlZAorICAgICAgICBiZWZvcmUgb3IgYWZ0
ZXIgaGFuZGxpbmcgYnJlYWtwb2ludCBldmFsdWF0aW9ucy4KKyAgICAgICAgU2lkZSBlZmZlY3Rz
IG9mIHRoaXMgY2hhbmdlIGFyZToKKyAgICAgICAgLSBicmVha3BvaW50IGNvbmRpdGlvbnMgYXJl
IG5vdyBldmFsdWF0ZWQgcmlnaHQgYmVmb3JlIHRoYXQgYnJlYWtwb2ludCdzIGFjdGlvbnMsIGlu
c3RlYWQgb2YKKyAgICAgICAgICBldmFsdWF0aW5nIGFsbCBicmVha3BvaW50IGNvbmRpdGlvbnMg
YmVmb3JlIGFsbCBicmVha3BvaW50IGFjdGlvbnMKKyAgICAgICAgLSBpZiBicmVha3BvaW50IGV2
YWx1YXRpb25zIGFyZSBibGFja2JveGVkLCBtb3JlIHRoYW4gdHdvIGJyZWFrcG9pbnRzIGNhbiBu
b3cgYmUgZXZhbHVhdGVkCisgICAgICAgIGR1cmluZyBhIHNpbmdsZSBwYXVzZSBhdHRlbXB0IGRl
cGVuZGluZyBvbiBob3cgbWF5IGRlZmVycmFscyAod2l0aCBicmVha3BvaW50cykgaGFwcGVuZWQK
KworICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2Vy
OjpPYnNlcnZlcjo6ZGlkRGVmZXJCcmVha3BvaW50UGF1c2UpOiBBZGRlZC4KKyAgICAgICAgQWRk
IGEgd2F5IHRvIG5vdGlmeSBgSW5zcGVjdG9yRGVidWdnZXJBZ2VudGAgb2YgZGVmZXJyZWQgYnJl
YWtwb2ludCBwYXVzZXMgc28gdGhhdCB0aGUKKyAgICAgICAgY29ycmVjdCBgb3JpZ2luYWxSZWFz
b25gIHdpbGwgYmUgdXNlZCBhZnRlciBhIGRlZmVycmVkIHBhdXNlLgorCisgICAgICAgICogaW5z
cGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGVidWdnZXJBZ2VudDo6c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMpOiBBZGRlZC4K
KyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkRGVmZXJCcmVh
a3BvaW50UGF1c2UpOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgYHNldEJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zYCBjb21tYW5kIHRoYXQgcGFzc2VzIGRpcmVjdGx5IHRvIGBEZWJ1Z2dlcmAu
CisKIDIwMjItMDEtMjEgIE1pa2UgR29yc2UgIDxtZ29yc2VAc3VzZS5jb20+CiAKICAgICAgICAg
QnVpbGQgZmFpbHVyZSB3aXRoIGcrKyAxMjogc3RkOjpleGNoYW5nZSB1bmRlZmluZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nCmluZGV4IGM2ZTAyZjE2NGE3ZjVkYzY3ZTJjYjAxZTE2ZGJhNDJiMmZm
ZGI0YzIuLmNkZGYzZTQzOGFmY2MyMTExN2JhYTY3MmE0MWJiN2EwOTExYzVjNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIyLTAxLTE0ICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgYSBz
d2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgKGNvbmRpdGlv
biwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZlY3RlZCBieSBzY3JpcHQgYmxh
Y2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEJlaW5nIGFibGUgdG8gZGVmZXIgYnJlYWtwb2ludCBldmFsdWF0aW9ucyB1bnRpbCB0aGUgbmV4
dCBhY3R1YWwgcGF1c2UgY2FuIHNvbWV0aW1lcyBiZSBmYXIKKyAgICAgICAgbW9yZSB1c2VmdWwg
dGhhbiBkb2luZyB0aGUgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBhdCB0aGUgYnJlYWtwb2ludCdz
IG9yaWdpbmFsIGxvY2F0aW9uLgorCisgICAgICAgIEFzIGFuIGV4YW1wbGUsIGNvbmZpZ3VyaW5n
IHRoZSBBbGwgRXZlbnRzIGJyZWFrcG9pbnQgd2l0aCBhIGBjb25zb2xlLnRyYWNlKClgIGFjdGlv
biBhbmQKKyAgICAgICAgYXV0by1jb250aW51ZSBlbmFibGVkIHdvdWxkIG5vdCBwcm92aWRlIG11
Y2ggdXNlZnVsIGluZm9ybWF0aW9uIHdpdGhvdXQgYWxzbyBibGFja2JveGluZworICAgICAgICBi
cmVha3BvaW50IGV2YWx1YXRpb25zIGFzIHRoZSBvcmlnaW5hbCBwYXVzZSBsb2NhdGlvbiBvZiB0
aGUgQWxsIEV2ZW50cyBicmVha3BvaW50IGlzIG9uIHRoZQorICAgICAgICBmaXJzdCBsaW5lIG9m
IHRoZSBldmVudCBoYW5kbGVyLCBtZWFuaW5nIHRoYXQgaWYgdGhlIHNjcmlwdCBjb250YWluaW5n
IHRoZSBldmVudCBoYW5kbGVyIGlzCisgICAgICAgIGJsYWNrYm94ZWQgdGhlbiB0aGUgYGNvbnNv
bGUudHJhY2UoKWAgd291bGQgc3RpbGwgb25seSBzaG93IHRoYXQgbG9jYXRpb24gZXZlbiB0aG91
Z2ggdGhlCisgICAgICAgIFNvdXJjZXMgVGFiIHdvdWxkIHNob3cgdGhlIGZpcnN0IGxpbmUgb2Yg
Y29kZSBvdXRzaWRlIG9mIHRoYXQgc2NyaXB0IChkdWUgdG8gdGhlIGJsYWNrYm94KS4KKyAgICAg
ICAgQmVpbmcgYWJsZSB0byBhbHNvIGJsYWNrYm94IGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgd291
bGQgaW5zdGVhZCBjYXVzZSB0aGUgYGNvbnNvbGUudHJhY2UoKWAKKyAgICAgICAgYWN0aW9uIHRv
IGhhdmUgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZSBTb3VyY2VzIFRhYiwgc2luY2UgaXQncyBldmFs
dWF0aW9uIHdvdWxkIGJlIGRlZmVycmVkCisgICAgICAgIHVudGlsIGV4ZWN1dGlvbiBhY3R1YWxs
eSBwYXVzZWQsIHdoaWNoIGlzIGZ1cnRoZXIgaW5zaWRlIHRoZSBldmVudCBoYW5kbGVyCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGluZy5qczoKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdJLkRlYnVn
Z2VyTWFuYWdlci5wcm90b3R5cGUuYXN5bmMgaW5pdGlhbGl6ZVRhcmdldCk6CisgICAgICAgIChX
SS5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucyk6IEFkZGVkLgorICAgICAgICAoV0kuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5faGFu
ZGxlQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAg
Q3JlYXRlIGEgZ2xvYmFsIGBXSS5TZXR0aW5nYCBmb3IgdGhpcyBmZWF0dXJlIGFuZCBoYW5kbGUg
Y2hhbmdlcyBmcm9tIHRoZSBjb2RlIGJlbG93LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9CbGFja2JveFNldHRpbmdzVmlldy5qczoKKyAgICAgICAgKFdJLkJsYWNrYm94U2V0dGlu
Z3NWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzczoKKyAgICAgICAgKC5zZXR0aW5ncy12aWV3
LmJsYWNrYm94ID4gcCA+IGxhYmVsKTogQWRkZWQuCisgICAgICAgICguc2V0dGluZ3Mtdmlldy5i
bGFja2JveCA+IHAgPiBsYWJlbCA+IGlucHV0KTogQWRkZWQuCisgICAgICAgICguc2V0dGluZ3Mt
dmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCA+IHNwYW4pOiBBZGRlZC4KKyAgICAgICAgQWRkIGEg
Y2hlY2tib3ggYW5kIGV4cGxhbmF0aW9uIG9mIHRoaXMgbmV3IGZlYXR1cmUgaW4gdGhlIEJsYWNr
Ym94IHBhbmUgb2YgdGhlIFNldHRpbmdzIFRhYi4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKwogMjAyMi0wMS0xOSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZnVsbHkgYmxh
Y2tib3hlZCBzdGFjayB0cmFjZXMgZG9uJ3Qgc2hvdyB0aGUgcmlnaHQgdG9wIGNhbGwgZnJhbWUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuY3BwCmluZGV4IDBiY2Uy
YTY4OTg5MzdmYTJkOGI0NDBjYjJmMjYxNmQ1MWUzNjViOTYuLjYwZWJjNzdkMjkwYjM3YzliNjg2
OGQ5M2VmNzJlMzczNWE0ZTVhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyLmNwcApAQCAtMTEzLDYgKzExMyw3IEBAIERlYnVnZ2VyOjpQcm9maWxpbmdDbGll
bnQ6On5Qcm9maWxpbmdDbGllbnQoKQogCiBEZWJ1Z2dlcjo6RGVidWdnZXIoVk0mIHZtKQogICAg
IDogbV92bSh2bSkKKyAgICAsIG1fYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoZmFsc2Up
CiAgICAgLCBtX3BhdXNlQXROZXh0T3Bwb3J0dW5pdHkoZmFsc2UpCiAgICAgLCBtX3Bhc3RGaXJz
dEV4cHJlc3Npb25JblN0YXRlbWVudChmYWxzZSkKICAgICAsIG1faXNQYXVzZWQoZmFsc2UpCkBA
IC01NDMsNyArNTQ0LDcgQEAgYm9vbCBEZWJ1Z2dlcjo6cmVtb3ZlQnJlYWtwb2ludChCcmVha3Bv
aW50JiBicmVha3BvaW50KQogICAgIHJldHVybiByZW1vdmVkOwogfQogCi1SZWZQdHI8QnJlYWtw
b2ludD4gRGVidWdnZXI6OmRpZEhpdEJyZWFrcG9pbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU291cmNlSUQgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbiYgcG9zaXRpb24pCitS
ZWZQdHI8QnJlYWtwb2ludD4gRGVidWdnZXI6OmRpZEhpdEJyZWFrcG9pbnQoU291cmNlSUQgc291
cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbiYgcG9zaXRpb24pCiB7CiAgICAgaWYgKCFtX2JyZWFr
cG9pbnRzQWN0aXZhdGVkKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTU2NSwxMSArNTY2
LDggQEAgUmVmUHRyPEJyZWFrcG9pbnQ+IERlYnVnZ2VyOjpkaWRIaXRCcmVha3BvaW50KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFNvdXIKIAogICAgICAgICAvLyBTaW5jZSBmcm9udGVu
ZCB0cnVuY2F0ZXMgdGhlIGluZGVudCwgdGhlIGZpcnN0IHN0YXRlbWVudCBpbiBhIGxpbmUgbXVz
dCBtYXRjaCB0aGUgYnJlYWtwb2ludCAobGluZSwwKS4KICAgICAgICAgQVNTRVJUKHRoaXMgPT0g
bV9jdXJyZW50Q2FsbEZyYW1lLT5jb2RlQmxvY2soKS0+Z2xvYmFsT2JqZWN0KCktPmRlYnVnZ2Vy
KCkpOwotICAgICAgICBpZiAoKGxpbmUgIT0gbV9sYXN0RXhlY3V0ZWRMaW5lICYmIGxpbmUgPT0g
YnJlYWtMaW5lICYmICFicmVha0NvbHVtbikgfHwgKGxpbmUgPT0gYnJlYWtMaW5lICYmIGNvbHVt
biA9PSBicmVha0NvbHVtbikpIHsKLSAgICAgICAgICAgIGlmIChicmVha3BvaW50LT5zaG91bGRQ
YXVzZSgqdGhpcywgZ2xvYmFsT2JqZWN0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gYnJlYWtw
b2ludC5jb3B5UmVmKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQorICAgICAgICBp
ZiAoKGxpbmUgIT0gbV9sYXN0RXhlY3V0ZWRMaW5lICYmIGxpbmUgPT0gYnJlYWtMaW5lICYmICFi
cmVha0NvbHVtbikgfHwgKGxpbmUgPT0gYnJlYWtMaW5lICYmIGNvbHVtbiA9PSBicmVha0NvbHVt
bikpCisgICAgICAgICAgICByZXR1cm4gYnJlYWtwb2ludC5jb3B5UmVmKCk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIG51bGxwdHI7CkBAIC02MDYsMTQgKzYwNCwxMyBAQCB2b2lkIERlYnVnZ2VyOjpj
bGVhckJyZWFrcG9pbnRzKCkKIAogYm9vbCBEZWJ1Z2dlcjo6ZXZhbHVhdGVCcmVha3BvaW50Q29u
ZGl0aW9uKEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiB7CisgICAgQVNTRVJUKG1faXNQYXVzZWQpOworICAgIEFTU0VSVChpc0F0dGFjaGVkKGds
b2JhbE9iamVjdCkpOworCiAgICAgY29uc3QgU3RyaW5nJiBjb25kaXRpb24gPSBicmVha3BvaW50
LmNvbmRpdGlvbigpOwogICAgIGlmIChjb25kaXRpb24uaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIC8vIFdlIGNhbm5vdCBzdG9wIGluIHRoZSBkZWJ1Z2dlciB3aGlsZSBl
eGVjdXRpbmcgY29uZGl0aW9uIGNvZGUsCi0gICAgLy8gc28gbWFrZSBpdCBsb29rcyBsaWtlIHRo
ZSBkZWJ1Z2dlciBpcyBhbHJlYWR5IHBhdXNlZC4KLSAgICBUZW1wb3JhcnlQYXVzZWRTdGF0ZSBw
YXVzZWRTdGF0ZSgqdGhpcyk7Ci0KICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2VwdGlvbjsK
ICAgICBEZWJ1Z2dlckNhbGxGcmFtZSYgZGVidWdnZXJDYWxsRnJhbWUgPSBjdXJyZW50RGVidWdn
ZXJDYWxsRnJhbWUoKTsKICAgICBKU09iamVjdCogc2NvcGVFeHRlbnNpb25PYmplY3QgPSBtX2Ns
aWVudCA/IG1fY2xpZW50LT5kZWJ1Z2dlclNjb3BlRXh0ZW5zaW9uT2JqZWN0KCp0aGlzLCBnbG9i
YWxPYmplY3QsIGRlYnVnZ2VyQ2FsbEZyYW1lKSA6IG51bGxwdHI7CkBAIC03ODEsNiArNzc4LDcg
QEAgdm9pZCBEZWJ1Z2dlcjo6YnJlYWtQcm9ncmFtKFJlZlB0cjxCcmVha3BvaW50PiYmIHNwZWNp
YWxCcmVha3BvaW50KQogdm9pZCBEZWJ1Z2dlcjo6Y29udGludWVQcm9ncmFtKCkKIHsKICAgICBj
bGVhck5leHRQYXVzZVN0YXRlKCk7CisgICAgbV9kZWZlcnJlZEJyZWFrcG9pbnRzLmNsZWFyKCk7
CiAKICAgICBpZiAoIW1faXNQYXVzZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTg4Myw4MCArODgx
LDExMyBAQCB2b2lkIERlYnVnZ2VyOjpwYXVzZUlmTmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAKICAgICBEZWJ1Z2dlclBhdXNlZFNjb3BlIGRlYnVnZ2VyUGF1c2VkU2NvcGUo
KnRoaXMpOwogCi0gICAgYm9vbCBwYXVzZU5vdyA9IG1fcGF1c2VBdE5leHRPcHBvcnR1bml0eTsK
LSAgICBwYXVzZU5vdyB8PSAobV9wYXVzZU9uQ2FsbEZyYW1lID09IG1fY3VycmVudENhbGxGcmFt
ZSk7Ci0KLSAgICBib29sIGRpZFBhdXNlRm9yU3RlcCA9IHBhdXNlTm93OworICAgIGJvb2wgYWZ0
ZXJCbGFja2JveGVkU2NyaXB0ID0gbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQ7CisgICAgYm9vbCBw
YXVzZU5vdyA9IGZhbHNlOworICAgIGJvb2wgZGlkUGF1c2VGb3JTdGVwID0gZmFsc2U7CisgICAg
aWYgKG1fcGF1c2VBdE5leHRPcHBvcnR1bml0eSkgeworICAgICAgICBwYXVzZU5vdyA9IHRydWU7
CisgICAgICAgIGlmICghYWZ0ZXJCbGFja2JveGVkU2NyaXB0KQorICAgICAgICAgICAgZGlkUGF1
c2VGb3JTdGVwID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKG1fcGF1c2VPblN0ZXBOZXh0IHx8IG1f
cGF1c2VPblN0ZXBPdXQgfHwgKG1fcGF1c2VPbkNhbGxGcmFtZSA9PSBtX2N1cnJlbnRDYWxsRnJh
bWUpKSB7CisgICAgICAgIHBhdXNlTm93ID0gdHJ1ZTsKKyAgICAgICAgZGlkUGF1c2VGb3JTdGVw
ID0gdHJ1ZTsKKyAgICB9CiAKICAgICBUZXh0UG9zaXRpb24gcG9zaXRpb24gPSBEZWJ1Z2dlckNh
bGxGcmFtZTo6cG9zaXRpb25Gb3JDYWxsRnJhbWUodm0sIG1fY3VycmVudENhbGxGcmFtZSk7CiAK
LSAgICBhdXRvIGJyZWFrcG9pbnQgPSBkaWRIaXRCcmVha3BvaW50KGdsb2JhbE9iamVjdCwgc291
cmNlSUQsIHBvc2l0aW9uKTsKLSAgICBpZiAoYnJlYWtwb2ludCkKKyAgICBpZiAoYXV0byBicmVh
a3BvaW50ID0gZGlkSGl0QnJlYWtwb2ludChzb3VyY2VJRCwgcG9zaXRpb24pKSB7CiAgICAgICAg
IHBhdXNlTm93ID0gdHJ1ZTsKKyAgICAgICAgbV9kZWZlcnJlZEJyZWFrcG9pbnRzLmFkZChicmVh
a3BvaW50LnJlbGVhc2VOb25OdWxsKCkpOworICAgIH0KIAogICAgIC8vIFNwZWNpYWwgYnJlYWtw
b2ludHMgYXJlIG9ubHkgZ2l2ZW4gb25lIG9wcG9ydHVuaXR5IHRvIHBhdXNlLgotICAgIGF1dG8g
c3BlY2lhbEJyZWFrcG9pbnQgPSBXVEZNb3ZlKG1fc3BlY2lhbEJyZWFrcG9pbnQpOwotICAgIGlm
IChzcGVjaWFsQnJlYWtwb2ludCAmJiBzcGVjaWFsQnJlYWtwb2ludC0+c2hvdWxkUGF1c2UoKnRo
aXMsIGdsb2JhbE9iamVjdCkpCisgICAgaWYgKG1fc3BlY2lhbEJyZWFrcG9pbnQpIHsKICAgICAg
ICAgcGF1c2VOb3cgPSB0cnVlOworICAgICAgICBtX2RlZmVycmVkQnJlYWtwb2ludHMuYWRkKG1f
c3BlY2lhbEJyZWFrcG9pbnQucmVsZWFzZU5vbk51bGwoKSk7CisgICAgfQogCiAgICAgbV9sYXN0
RXhlY3V0ZWRMaW5lID0gcG9zaXRpb24ubV9saW5lLnplcm9CYXNlZEludCgpOwogICAgIGlmICgh
cGF1c2VOb3cpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgYWZ0ZXJCbGFja2JveGVkU2Ny
aXB0ID0gbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQ7CiAgICAgY2xlYXJOZXh0UGF1c2VTdGF0ZSgp
OwogCiAgICAgLy8gTWFrZSBzdXJlIHdlIGFyZSBub3QgZ29pbmcgdG8gcGF1c2UgYWdhaW4gb24g
YnJlYWtwb2ludCBhY3Rpb25zIGJ5CiAgICAgLy8gcmVzZXRpbmcgdGhlIHBhdXNlIHN0YXRlIGJl
Zm9yZSBleGVjdXRpbmcgYW55IGJyZWFrcG9pbnQgYWN0aW9ucy4KICAgICBUZW1wb3JhcnlQYXVz
ZWRTdGF0ZSBwYXVzZWRTdGF0ZSgqdGhpcyk7CiAKLSAgICBpZiAoYnJlYWtwb2ludCB8fCBzcGVj
aWFsQnJlYWtwb2ludCkgewotICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGFjdGlvbnMgY2FuIHBv
dGVudGlhbGx5IHN0b3AgdGhlIGRlYnVnZ2VyLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQKLSAg
ICAgICAgLy8gd2Ugc3RpbGwgaGF2ZSBhIGN1cnJlbnQgY2FsbCBmcmFtZSB3aGVuIHdlIGdldCBi
YWNrLgorICAgIGF1dG8gc2hvdWxkRGVmZXJQYXVzZSA9IFsmXSAoKSB7CisgICAgICAgIGlmIChi
bGFja2JveFR5cGVJdGVyYXRvciA9PSBtX2JsYWNrYm94ZWRTY3JpcHRzLmVuZCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGJvb2wgYXV0b0NvbnRpbnVlID0gZmFsc2U7
CisgICAgICAgIGlmIChibGFja2JveFR5cGVJdGVyYXRvci0+dmFsdWUgIT0gQmxhY2tib3hUeXBl
OjpEZWZlcnJlZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoYnJl
YWtwb2ludCkgewotICAgICAgICAgICAgZXZhbHVhdGVCcmVha3BvaW50QWN0aW9ucygqYnJlYWtw
b2ludCwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQgPSB0
cnVlOwogCisgICAgICAgIGlmIChtX3BhdXNpbmdCcmVha3BvaW50SUQgIT0gbm9CcmVha3BvaW50
SUQpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoRnVuY3Rpb25Ub09ic2VydmVycyhbJl0gKE9ic2Vy
dmVyJiBvYnNlcnZlcikgeworICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpZERlZmVyQnJlYWtw
b2ludFBhdXNlKG1fcGF1c2luZ0JyZWFrcG9pbnRJRCk7CisgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgbV9wYXVzaW5nQnJlYWtwb2ludElEID0gbm9CcmVha3BvaW50SUQ7CisgICAgICAg
IH0KKworICAgICAgICBzY2hlZHVsZVBhdXNlQXROZXh0T3Bwb3J0dW5pdHkoKTsKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfTsKKworICAgIGlmIChtX2JsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zICYmIHNob3VsZERlZmVyUGF1c2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFtX2RlZmVycmVkQnJlYWtwb2ludHMuaXNFbXB0eSgpKSB7CisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8QnJlYWtwb2ludElEPiBwYXVzaW5nQnJlYWtwb2ludElEOworICAgICAgICBib29sIGhhc0V2
YWx1YXRlZFNwZWNpYWxCcmVha3BvaW50ID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29u
dGludWUgPSB0cnVlOworCisgICAgICAgIGZvciAoYXV0byYmIGRlZmVycmVkQnJlYWtwb2ludCA6
IHN0ZDo6ZXhjaGFuZ2UobV9kZWZlcnJlZEJyZWFrcG9pbnRzLCB7IH0pKSB7CisgICAgICAgICAg
ICAvLyBOb3RlIHRoYXQgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBjYW4gcG90ZW50aWFsbHkgc3Rv
cCB0aGUgZGVidWdnZXIsIHNvIHdlIG5lZWQgdG8KKyAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQg
d2Ugc3RpbGwgaGF2ZSBhIGN1cnJlbnQgY2FsbCBmcmFtZSBhZnRlciBldmFsdWF0aW5nIHRoZW0u
CisKKyAgICAgICAgICAgIGJvb2wgc2hvdWxkUGF1c2UgPSBkZWZlcnJlZEJyZWFrcG9pbnQtPnNo
b3VsZFBhdXNlKCp0aGlzLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgaWYgKCFtX2N1cnJl
bnRDYWxsRnJhbWUpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCFz
aG91bGRQYXVzZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgZXZh
bHVhdGVCcmVha3BvaW50QWN0aW9ucyhkZWZlcnJlZEJyZWFrcG9pbnQsIGdsb2JhbE9iamVjdCk7
CiAgICAgICAgICAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgICAgIGlmIChicmVha3BvaW50LT5pc0F1dG9Db250aW51ZSgpKQot
ICAgICAgICAgICAgICAgIGF1dG9Db250aW51ZSA9IHRydWU7CisgICAgICAgICAgICBpZiAoZGVm
ZXJyZWRCcmVha3BvaW50LT5pc0F1dG9Db250aW51ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICBzaG91bGRDb250aW51ZSA9IGZhbHNlOworCisgICAgICAgICAg
ICAvLyBPbmx5IHByb3BhZ2F0ZSBgUGF1c2VkRm9yQnJlYWtwb2ludGAgdG8gdGhlIGBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50YCBpZiB0aGUgZmlyc3QKKyAgICAgICAgICAgIC8vIGxpbmU6Y29sdW1u
IGJyZWFrcG9pbnQgaGl0IHdhcyBiZWZvcmUgdGhlIGZpcnN0IHNwZWNpYWwgYnJlYWtwb2ludCwg
YXMgdGhlIGxhdHRlcgorICAgICAgICAgICAgLy8gd291bGQgYWxyZWFkeSBoYXZlIHNldCBhIHVu
aXF1ZSByZWFzb24gYmVmb3JlIGF0dGVtcHRpbmcgdG8gcGF1c2UuCisgICAgICAgICAgICBpZiAo
IWRlZmVycmVkQnJlYWtwb2ludC0+aXNMaW5rZWQoKSkKKyAgICAgICAgICAgICAgICBoYXNFdmFs
dWF0ZWRTcGVjaWFsQnJlYWtwb2ludCA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmICghaGFz
RXZhbHVhdGVkU3BlY2lhbEJyZWFrcG9pbnQgJiYgIXBhdXNpbmdCcmVha3BvaW50SUQpCisgICAg
ICAgICAgICAgICAgcGF1c2luZ0JyZWFrcG9pbnRJRCA9IGRlZmVycmVkQnJlYWtwb2ludC0+aWQo
KTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChzcGVjaWFsQnJlYWtwb2ludCkgewotICAgICAg
ICAgICAgZXZhbHVhdGVCcmVha3BvaW50QWN0aW9ucygqc3BlY2lhbEJyZWFrcG9pbnQsIGdsb2Jh
bE9iamVjdCk7Ci0KLSAgICAgICAgICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQotICAgICAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgaWYgKHNwZWNpYWxCcmVha3BvaW50LT5p
c0F1dG9Db250aW51ZSgpKQotICAgICAgICAgICAgICAgIGF1dG9Db250aW51ZSA9IHRydWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpZiAoYXV0b0NvbnRpbnVlKSB7CisgICAgICAgIGlmIChzaG91
bGRDb250aW51ZSkgewogICAgICAgICAgICAgaWYgKCFkaWRQYXVzZUZvclN0ZXApCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICBicmVha3BvaW50ID0gbnVsbHB0cjsKLSAg
ICAgICAgICAgIHNwZWNpYWxCcmVha3BvaW50ID0gbnVsbHB0cjsKLSAgICAgICAgfSBlbHNlIGlm
IChicmVha3BvaW50KQotICAgICAgICAgICAgbV9wYXVzaW5nQnJlYWtwb2ludElEID0gYnJlYWtw
b2ludC0+aWQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChwYXVzaW5nQnJlYWtwb2ludElEKQorICAg
ICAgICAgICAgbV9wYXVzaW5nQnJlYWtwb2ludElEID0gKnBhdXNpbmdCcmVha3BvaW50SUQ7CiAg
ICAgfQogCi0gICAgaWYgKGJsYWNrYm94VHlwZUl0ZXJhdG9yICE9IG1fYmxhY2tib3hlZFNjcmlw
dHMuZW5kKCkgJiYgYmxhY2tib3hUeXBlSXRlcmF0b3ItPnZhbHVlID09IEJsYWNrYm94VHlwZTo6
RGVmZXJyZWQpIHsKLSAgICAgICAgbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQgPSB0cnVlOwotICAg
ICAgICBzY2hlZHVsZVBhdXNlQXROZXh0T3Bwb3J0dW5pdHkoKTsKKyAgICBpZiAoIW1fYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnMgJiYgc2hvdWxkRGVmZXJQYXVzZSgpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgfQogCiAgICAgewogICAgICAgICBhdXRvIHJlYXNvbiA9IG1fcmVhc29uRm9y
UGF1c2U7CiAgICAgICAgIGlmIChhZnRlckJsYWNrYm94ZWRTY3JpcHQpCiAgICAgICAgICAgICBy
ZWFzb24gPSBQYXVzZWRBZnRlckJsYWNrYm94ZWRTY3JpcHQ7Ci0gICAgICAgIGVsc2UgaWYgKGJy
ZWFrcG9pbnQpCisgICAgICAgIGVsc2UgaWYgKG1fcGF1c2luZ0JyZWFrcG9pbnRJRCkKICAgICAg
ICAgICAgIHJlYXNvbiA9IFBhdXNlZEZvckJyZWFrcG9pbnQ7CiAgICAgICAgIFBhdXNlUmVhc29u
RGVjbGFyYXRpb24gcmF1c2VSZWFzb25EZWNsYXJhdGlvbigqdGhpcywgcmVhc29uKTsKIApAQCAt
MTE1NCw4ICsxMTg1LDEwIEBAIHZvaWQgRGVidWdnZXI6OmRpZEV4ZWN1dGVQcm9ncmFtKENhbGxG
cmFtZSogY2FsbEZyYW1lKQogICAgIHVwZGF0ZUNhbGxGcmFtZShsZXhpY2FsR2xvYmFsT2JqZWN0
Rm9yQ2FsbEZyYW1lKG1fdm0sIGNhbGxlckZyYW1lKSwgY2FsbGVyRnJhbWUsIE5vUGF1c2UpOwog
CiAgICAgLy8gRG8gbm90IGNvbnRpbnVlIHN0ZXBwaW5nIGludG8gYW4gdW5rbm93biBmdXR1cmUg
cHJvZ3JhbS4KLSAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkKKyAgICBpZiAoIW1fY3VycmVu
dENhbGxGcmFtZSkgewogICAgICAgICBjbGVhck5leHRQYXVzZVN0YXRlKCk7CisgICAgICAgIG1f
ZGVmZXJyZWRCcmVha3BvaW50cy5jbGVhcigpOworICAgIH0KIH0KIAogdm9pZCBEZWJ1Z2dlcjo6
Y2xlYXJOZXh0UGF1c2VTdGF0ZSgpCkBAIC0xMjExLDYgKzEyNDQsMTEgQEAgdm9pZCBEZWJ1Z2dl
cjo6c2V0QmxhY2tib3hUeXBlKFNvdXJjZUlEIHNvdXJjZUlELCBzdGQ6Om9wdGlvbmFsPEJsYWNr
Ym94VHlwZT4gdHkKICAgICAgICAgbV9ibGFja2JveGVkU2NyaXB0cy5yZW1vdmUoc291cmNlSUQp
OwogfQogCit2b2lkIERlYnVnZ2VyOjpzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyhi
b29sIGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKQoreworICAgIG1fYmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnMgPSBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uczsKK30KKwog
dm9pZCBEZWJ1Z2dlcjo6Y2xlYXJCbGFja2JveCgpCiB7CiAgICAgbV9ibGFja2JveGVkU2NyaXB0
cy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaAppbmRl
eCA5Mzg4MDIzYTY0MTZhM2YwNGMwYjBhMjRiMWEzNzc0MzhlMjUyZmQ2Li5iZWNiZDljMTdkYTcz
MDhiYjNmOGNhMDhmZWJjMDY5YmU1Zjg3YmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRlYnVnZ2VyUHJp
bWl0aXZlcy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApA
QCAtMTE1LDYgKzExNiw3IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgQmxhY2tib3hUeXBl
IHsgRGVmZXJyZWQsIElnbm9yZWQgfTsKICAgICB2b2lkIHNldEJsYWNrYm94VHlwZShTb3VyY2VJ
RCwgc3RkOjpvcHRpb25hbDxCbGFja2JveFR5cGU+KTsKKyAgICB2b2lkIHNldEJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zKGJvb2wpOwogICAgIHZvaWQgY2xlYXJCbGFja2JveCgpOwogCiAg
ICAgYm9vbCBpc1BhdXNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYXVzZWQ7IH0KQEAgLTE4MSw2
ICsxODMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBicmVha3BvaW50QWN0aW9u
TG9nKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU3RyaW5nJiAvKiBkYXRhICovKSB7IH0KICAgICAg
ICAgdmlydHVhbCB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChCcmVha3BvaW50QWN0aW9uSUQp
IHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpTR2xvYmFs
T2JqZWN0KiwgQnJlYWtwb2ludEFjdGlvbklELCB1bnNpZ25lZCAvKiBiYXRjaElkICovLCB1bnNp
Z25lZCAvKiBzYW1wbGVJZCAqLywgSlNWYWx1ZSAvKiByZXN1bHQgKi8pIHsgfQorICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRGVmZXJCcmVha3BvaW50UGF1c2UoQnJlYWtwb2ludElEKSB7IH0KICAg
ICB9OwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYp
OwpAQCAtMjU3LDcgKzI2MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIERlYnVnZ2VyJiBtX2RlYnVn
Z2VyOwogICAgIH07CiAKLSAgICBSZWZQdHI8QnJlYWtwb2ludD4gZGlkSGl0QnJlYWtwb2ludChK
U0dsb2JhbE9iamVjdCosIFNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24mKTsKKyAgICBSZWZQ
dHI8QnJlYWtwb2ludD4gZGlkSGl0QnJlYWtwb2ludChTb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0
aW9uJik7CiAKICAgICBEZWJ1Z2dlclBhcnNlRGF0YSYgZGVidWdnZXJQYXJzZURhdGEoU291cmNl
SUQsIFNvdXJjZVByb3ZpZGVyKik7CiAKQEAgLTI5OSw2ICszMDIsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hTZXQ8SlNHbG9iYWxPYmplY3QqPiBtX2dsb2JhbE9iamVjdHM7CiAgICAgSGFzaE1hcDxT
b3VyY2VJRCwgRGVidWdnZXJQYXJzZURhdGEsIFdURjo6SW50SGFzaDxTb3VyY2VJRD4sIFdURjo6
VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8U291cmNlSUQ+PiBtX3BhcnNlRGF0YU1hcDsK
ICAgICBIYXNoTWFwPFNvdXJjZUlELCBCbGFja2JveFR5cGUsIFdURjo6SW50SGFzaDxTb3VyY2VJ
RD4sIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8U291cmNlSUQ+PiBtX2JsYWNr
Ym94ZWRTY3JpcHRzOworICAgIGJvb2wgbV9ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyA6
IDE7CiAKICAgICBib29sIG1fcGF1c2VBdE5leHRPcHBvcnR1bml0eSA6IDE7CiAgICAgYm9vbCBt
X3BhdXNlT25TdGVwTmV4dCA6IDE7CkBAIC0zMjIsNiArMzI2LDcgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFNvdXJjZUlELCBMaW5lVG9CcmVha3BvaW50c01hcCwgV1RGOjpJbnRIYXNoPFNvdXJj
ZUlEPiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czxTb3VyY2VJRD4+IG1fYnJl
YWtwb2ludHNGb3JTb3VyY2VJRDsKICAgICBIYXNoU2V0PFJlZjxCcmVha3BvaW50Pj4gbV9icmVh
a3BvaW50czsKICAgICBSZWZQdHI8QnJlYWtwb2ludD4gbV9zcGVjaWFsQnJlYWtwb2ludDsKKyAg
ICBMaXN0SGFzaFNldDxSZWY8QnJlYWtwb2ludD4+IG1fZGVmZXJyZWRCcmVha3BvaW50czsKICAg
ICBCcmVha3BvaW50SUQgbV9wYXVzaW5nQnJlYWtwb2ludElEOwogCiAgICAgUmVmUHRyPEJyZWFr
cG9pbnQ+IG1fcGF1c2VPbkFsbEV4Y2VwdGlvbnNCcmVha3BvaW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmNwcAppbmRleCBiZTkxMGViMjgyZWU1M2U3ZjM1ZjZiMDNhNjY5YzU5Mzk3
YzFkOGRkLi5iOWRhMGM4OGY2MTIwZGEyMjkzNTgzYzYwNWIwOTVmYzIyMmY1NTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtMTA2OSw2ICsxMDY5LDEzIEBAIGJvb2wg
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2hvdWxkQmxhY2tib3hVUkwoY29uc3QgU3RyaW5nJiB1
cmwpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitQcm90b2NvbDo6RXJyb3JTdHJpbmdP
cjx2b2lkPiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9ucyhib29sIGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKQoreworICAgIG1fZGVi
dWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoYmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMpOworCisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpzY3JpcHRFeGVjdXRpb25CbG9ja2VkQnlDU1AoY29uc3QgU3RyaW5nJiBkaXJl
Y3RpdmVUZXh0KQogewogICAgIGlmIChtX2RlYnVnZ2VyLm5lZWRzRXhjZXB0aW9uQ2FsbGJhY2tz
KCkpCkBAIC0xMzIxLDYgKzEzMjgsMTEgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpk
aWRDb250aW51ZSgpCiAgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXN1bWVkKCk7CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkRGVmZXJCcmVha3BvaW50UGF1c2Uo
SlNDOjpCcmVha3BvaW50SUQgYnJlYWtwb2ludElkKQoreworICAgIHVwZGF0ZVBhdXNlUmVhc29u
QW5kRGF0YShEZWJ1Z2dlckZyb250ZW5kRGlzcGF0Y2hlcjo6UmVhc29uOjpCcmVha3BvaW50LCBi
dWlsZEJyZWFrcG9pbnRQYXVzZVJlYXNvbihicmVha3BvaW50SWQpKTsKK30KKwogdm9pZCBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OjpicmVha1Byb2dyYW0oRGVidWdnZXJGcm9udGVuZERpc3BhdGNo
ZXI6OlJlYXNvbiByZWFzb24sIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgZGF0YSwgUmVmUHRyPEpT
Qzo6QnJlYWtwb2ludD4mJiBzcGVjaWFsQnJlYWtwb2ludCkKIHsKICAgICB1cGRhdGVQYXVzZVJl
YXNvbkFuZERhdGEocmVhc29uLCBXVEZNb3ZlKGRhdGEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuaAppbmRleCA2YTVhNGRlM2Q2ZTIyMWY2NWU1MjUxNTI2NjcyNDMxOWU5ZjI5MWI2Li5i
OTk2YzlmYmZkNzA5ZTliMmY1MjM1ODJmYzM2YTI1NTU1YjY3NTQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RGVidWdnZXJBZ2VudC5oCkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICBQcm90b2NvbDo6
RXJyb3JTdHJpbmdPcjx2b2lkPiBzZXRQYXVzZUZvckludGVybmFsU2NyaXB0cyhib29sIHNob3Vs
ZFBhdXNlKSBmaW5hbDsKICAgICBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxzdGQ6OnR1cGxlPFJl
ZjxQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0Piwgc3RkOjpvcHRpb25hbDxib29sPiAv
KiB3YXNUaHJvd24gKi8sIHN0ZDo6b3B0aW9uYWw8aW50PiAvKiBzYXZlZFJlc3VsdEluZGV4ICov
Pj4gZXZhbHVhdGVPbkNhbGxGcmFtZShjb25zdCBQcm90b2NvbDo6RGVidWdnZXI6OkNhbGxGcmFt
ZUlkJiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3Vw
LCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBzdGQ6Om9wdGlv
bmFsPGJvb2w+JiYgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBzdGQ6Om9w
dGlvbmFsPGJvb2w+JiYgcmV0dXJuQnlWYWx1ZSwgc3RkOjpvcHRpb25hbDxib29sPiYmIGdlbmVy
YXRlUHJldmlldywgc3RkOjpvcHRpb25hbDxib29sPiYmIHNhdmVSZXN1bHQsIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4mJiBlbXVsYXRlVXNlckdlc3R1cmUpIG92ZXJyaWRlOwogICAgIFByb3RvY29sOjpF
cnJvclN0cmluZ09yPHZvaWQ+IHNldFNob3VsZEJsYWNrYm94VVJMKGNvbnN0IFN0cmluZyYgdXJs
LCBib29sIHNob3VsZEJsYWNrYm94LCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgY2FzZVNlbnNpdGl2
ZSwgc3RkOjpvcHRpb25hbDxib29sPiYmIGlzUmVnZXgpIGZpbmFsOworICAgIFByb3RvY29sOjpF
cnJvclN0cmluZ09yPHZvaWQ+IHNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGJvb2wp
IGZpbmFsOwogCiAgICAgLy8gSlNDOjpEZWJ1Z2dlcjo6Q2xpZW50CiAgICAgSlNDOjpKU09iamVj
dCogZGVidWdnZXJTY29wZUV4dGVuc2lvbk9iamVjdChKU0M6OkRlYnVnZ2VyJiwgSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RGVidWdnZXJDYWxsRnJhbWUmKSBmaW5hbDsKQEAgLTEwNiw2ICsx
MDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDb250aW51ZSgpIGZpbmFsOwogICAgIHZvaWQg
YnJlYWtwb2ludEFjdGlvblNvdW5kKEpTQzo6QnJlYWtwb2ludEFjdGlvbklEKSBmaW5hbDsKICAg
ICB2b2lkIGJyZWFrcG9pbnRBY3Rpb25Qcm9iZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpC
cmVha3BvaW50QWN0aW9uSUQsIHVuc2lnbmVkIGJhdGNoSWQsIHVuc2lnbmVkIHNhbXBsZUlkLCBK
U0M6OkpTVmFsdWUgc2FtcGxlKSBmaW5hbDsKKyAgICB2b2lkIGRpZERlZmVyQnJlYWtwb2ludFBh
dXNlKEpTQzo6QnJlYWtwb2ludElEKSBmaW5hbDsKIAogICAgIGJvb2wgaXNQYXVzZWQoKSBjb25z
dDsKICAgICBib29sIGJyZWFrcG9pbnRzQWN0aXZlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24KaW5kZXgg
NTJiNzMxMTczN2YzMDA2M2VhZWEwMzEzN2EyYTNlOTFmMWEzZTg4Yy4uMjA5ZjFkZThhYzQ0MGMy
YWNmNzlhNDAxNGI4MDEwZTZhZjZiZGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9wcm90b2NvbC9EZWJ1Z2dlci5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgpAQCAtMzIyLDYgKzMyMiwx
MyBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjog
ImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgPGNv
ZGU+dXJsPC9jb2RlPiBpcyBjYXNlIHNlbnNpdGl2ZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJpc1JlZ2V4IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCB0cmVhdCA8Y29kZT51cmw8L2NvZGU+IGFzIHJlZ3VsYXIg
ZXhwcmVzc2lvbi4iIH0KICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAic2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNldHMgd2hldGhlciBldmFsdWF0aW9uIG9mIGJyZWFr
cG9pbnQgY29uZGl0aW9ucywgaWdub3JlIGNvdW50cywgYW5kIGFjdGlvbnMgaGFwcGVuIGF0IHRo
ZSBsb2NhdGlvbiBvZiB0aGUgYnJlYWtwb2ludCBvciBhcmUgZGVmZXJyZWQgZHVlIHRvIGJsYWNr
Ym94aW5nLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zIiwgInR5cGUiOiAiYm9vbGVh
biIgfQorICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNjZjMGYzMjczZTRhY2VlN2EzZjIz
NWJkY2ZhZTVhMTI2NjA4Mjk4OC4uMGE4OWM5YTU0YzUwN2M1NDNlNTJhNGEyYTgyNzczMDg1MDY0
MDg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4u
bHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9j
YWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xNTksNiArMTU5LDcg
QEAgbG9jYWxpemVkU3RyaW5nc1siQWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11c3QgYmUg
dmFsaWQgRE9NIG5vZGVzIl0gPSAiQWxsIGkKIC8qIExhYmVsIGZvciBzZXR0aW5nIHRoYXQgYWxs
b3dzIHRoZSB1c2VyIHRvIGluc3BlY3QgdGhlIFdlYiBJbnNwZWN0b3IgdXNlciBpbnRlcmZhY2Uu
ICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJBbGxvdyBJbnNwZWN0aW5nIFdlYiBJbnNwZWN0b3IgQCBF
eHBlcmltZW50YWwgU2V0dGluZ3MiXSA9ICJBbGxvdyBJbnNwZWN0aW5nIFdlYiBJbnNwZWN0b3Ii
OwogbG9jYWxpemVkU3RyaW5nc1siQWxsb3cgTWVkaWEgQ2FwdHVyZSBvbiBJbnNlY3VyZSBTaXRl
cyJdID0gIkFsbG93IE1lZGlhIENhcHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiOworbG9jYWxpemVk
U3RyaW5nc1siQWxzbyBkZWZlciBldmFsdWF0aW5nIGJyZWFrcG9pbnQgY29uZGl0aW9ucywgaWdu
b3JlIGNvdW50cywgYW5kIGFjdGlvbnMgdW50aWwgZXhlY3V0aW9uIGhhcyBjb250aW51ZWQgb3V0
c2lkZSBvZiB0aGUgcmVsYXRlZCBzY3JpcHQgaW5zdGVhZCBvZiBhdCB0aGUgYnJlYWtwb2ludCdz
IGxvY2F0aW9uLiJdID0gIkFsc28gZGVmZXIgZXZhbHVhdGluZyBicmVha3BvaW50IGNvbmRpdGlv
bnMsIGlnbm9yZSBjb3VudHMsIGFuZCBhY3Rpb25zIHVudGlsIGV4ZWN1dGlvbiBoYXMgY29udGlu
dWVkIG91dHNpZGUgb2YgdGhlIHJlbGF0ZWQgc2NyaXB0IGluc3RlYWQgb2YgYXQgdGhlIGJyZWFr
cG9pbnQncyBsb2NhdGlvbi4iOwogLyogUHJvcGVydHkgdGl0bGUgZm9yIGBmb250LXZhcmlhbnQt
YWx0ZXJuYXRlc2AuICovCiBsb2NhbGl6ZWRTdHJpbmdzWyJBbHRlcm5hdGUgR2x5cGhzIEAgRm9u
dCBEZXRhaWxzIFNpZGViYXIgUHJvcGVydHkiXSA9ICJBbHRlcm5hdGUgR2x5cGhzIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIkFuIGVycm9yIG9jY3VycmVkIHRyeWluZyB0byBsb2FkIHRoZSByZXNvdXJj
ZS4iXSA9ICJBbiBlcnJvciBvY2N1cnJlZCB0cnlpbmcgdG8gbG9hZCB0aGUgcmVzb3VyY2UuIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0
dGluZy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGlu
Zy5qcwppbmRleCA4NTNmN2ZjMDYwMTc2MjMyYjk2NzQ5MWVkY2Q2NThlODk3YWM5OTE4Li5lNzMw
OTcyMGExMDdjMDUyZTI3ZDEwMzYzNWM1ZjZmNDgxMTViM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9TZXR0aW5nLmpzCkBAIC0xODQsNiAr
MTg0LDcgQEAgV0kuRGVidWdTZXR0aW5nID0gY2xhc3MgRGVidWdTZXR0aW5nIGV4dGVuZHMgV0ku
U2V0dGluZwogfTsKIAogV0kuc2V0dGluZ3MgPSB7CisgICAgYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnM6IG5ldyBXSS5TZXR0aW5nKCJibGFja2JveC1icmVha3BvaW50LWV2YWx1YXRpb25z
IiwgZmFsc2UpLAogICAgIGNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZDogbmV3IFdJ
LlNldHRpbmcoImNhbnZhcy1yZWNvcmRpbmctYXV0by1jYXB0dXJlLWVuYWJsZWQiLCBmYWxzZSks
CiAgICAgY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50OiBuZXcgV0kuU2V0dGlu
ZygiY2FudmFzLXJlY29yZGluZy1hdXRvLWNhcHR1cmUtZnJhbWUtY291bnQiLCAxKSwKICAgICBj
b25zb2xlQXV0b0V4cGFuZFRyYWNlOiBuZXcgV0kuU2V0dGluZygiY29uc29sZS1hdXRvLWV4cGFu
ZC10cmFjZSIsIHRydWUpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCmluZGV4
IDYyODI4YTdlZDRhYzk2M2VmMjE1ZTU1MzBjYTgwYzc2Yzg3NmIwMGIuLmM5MjFhYWJmYWUzNTY0
YzcxMDAzYTFlNTI2MmNmMGJlNTI0ZWNjN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1h
bmFnZXIuanMKQEAgLTQzLDYgKzQzLDggQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVi
dWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgV0kudGFyZ2V0TWFuYWdl
ci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCwg
dGhpcy5fdGFyZ2V0UmVtb3ZlZCwgdGhpcyk7CiAKKyAgICAgICAgV0kuc2V0dGluZ3MuYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnMuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50
LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zQ2hhbmdl
LCB0aGlzKTsKKwogICAgICAgICBpZiAoV0kuaXNFbmdpbmVlcmluZ0J1aWxkKSB7CiAgICAgICAg
ICAgICBXSS5zZXR0aW5ncy5lbmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNjcmlwdHMuYWRkRXZlbnRM
aXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUVuZ2luZWVyaW5n
U2hvd0ludGVybmFsU2NyaXB0c1NldHRpbmdDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgICAgIFdJ
LnNldHRpbmdzLmVuZ2luZWVyaW5nUGF1c2VGb3JJbnRlcm5hbFNjcmlwdHMuYWRkRXZlbnRMaXN0
ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUVuZ2luZWVyaW5nUGF1
c2VGb3JJbnRlcm5hbFNjcmlwdHNTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CkBAIC0yMjMsNiArMjI1
LDggQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMg
V0kuT2JqZWN0CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9zZXRC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyh0YXJnZXQpOworCiAgICAgICAgIGlmIChXSS5p
c0VuZ2luZWVyaW5nQnVpbGQpIHsKICAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAx
Mik6IERlYnVnZ2VyQWdlbnQuc2V0UGF1c2VGb3JJbnRlcm5hbFNjcmlwdHMgZGlkIG5vdCBleGlz
dCB5ZXQuCiAgICAgICAgICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkRlYnVnZ2VyLnNldFBh
dXNlRm9ySW50ZXJuYWxTY3JpcHRzIikpCkBAIC0xMjU2LDYgKzEyNjAsMTMgQEAgV0kuRGVidWdn
ZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgIH0KICAgICB9CiAKKyAgICBfc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnModGFy
Z2V0KQorICAgIHsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDE1KTogRGVidWdnZXIu
c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMgZGlkIG5vdCBleGlzdCB5ZXQuCisgICAg
ICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMiKSkKKyAgICAgICAgICAgIHRhcmdldC5EZWJ1Z2dlckFnZW50LnNldEJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zKFdJLnNldHRpbmdzLmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zLnZhbHVlKTsKKyAgICB9CisKICAgICBfYnJlYWtwb2ludERpc3BsYXlMb2NhdGlv
bkRpZENoYW5nZShldmVudCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pZ25vcmVCcmVha3Bv
aW50RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlRXZlbnQpCkBAIC0xNDAwLDYgKzE0MTEsMTIgQEAg
V0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2Jq
ZWN0CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5EZWJ1Z2dl
ck1hbmFnZXIuRXZlbnQuUmVzdW1lZCk7CiAgICAgfQogCisgICAgX2hhbmRsZUJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgZm9yIChsZXQg
dGFyZ2V0IG9mIFdJLnRhcmdldHMpCisgICAgICAgICAgICB0aGlzLl9zZXRCbGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9ucyh0YXJnZXQpOworICAgIH0KKwogICAgIF9oYW5kbGVFbmdpbmVlcmlu
Z1Nob3dJbnRlcm5hbFNjcmlwdHNTZXR0aW5nQ2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAg
IGxldCBldmVudFR5cGUgPSBXSS5zZXR0aW5ncy5lbmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNjcmlw
dHMudmFsdWUgPyBXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQgOiBXSS5EZWJ1
Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0UmVtb3ZlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGlu
Z3NWaWV3LmNzcwppbmRleCAxYzA1ZmUyYTZmM2ExYWZjYzRhNDhhZWE4YTljM2Q5MTM1MWIzZTJj
Li43YjkyZjYwOTAzYzZhNDg3M2FiOGY0OGQ3OGUzNDVhNmZjM2ZjZWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNldHRpbmdz
Vmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
QmxhY2tib3hTZXR0aW5nc1ZpZXcuY3NzCkBAIC00OCw2ICs0OCwxOSBAQAogICAgIHZlcnRpY2Fs
LWFsaWduOiBtaWRkbGU7CiB9CiAKKy5zZXR0aW5ncy12aWV3LmJsYWNrYm94ID4gcCA+IGxhYmVs
IHsKKyAgICBkaXNwbGF5OiBmbGV4OworfQorCisuc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+IHAg
PiBsYWJlbCA+IGlucHV0IHsKKyAgICBmbGV4LXNocmluazogMDsKKyAgICBtYXJnaW4taW5saW5l
OiAwLjVweCA0cHg7Cit9CisKKy5zZXR0aW5ncy12aWV3LmJsYWNrYm94ID4gcCA+IGxhYmVsID4g
c3BhbiB7CisgICAgbWFyZ2luLXRvcDogMS41cHg7Cit9CisKIC5zZXR0aW5ncy12aWV3LmJsYWNr
Ym94ID4gdGFibGUgewogICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNl
dHRpbmdzVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0JsYWNrYm94U2V0dGluZ3NWaWV3LmpzCmluZGV4IDkwYTAzZDBhYTdjZTUyOWIzNGUyMjVkNTY1
NjQ4ZTY2ZWYxNGRiZGIuLjA0MDEyYzU1OTFmZTFlY2RiNzhlYTQxM2UzMzc0ZGNmZGI4OTRlMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0Js
YWNrYm94U2V0dGluZ3NWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmpzCkBAIC0xMDYsNiArMTA2LDE4IEBA
IFdJLkJsYWNrYm94U2V0dGluZ3NWaWV3ID0gY2xhc3MgQmxhY2tib3hTZXR0aW5nc1ZpZXcgZXh0
ZW5kcyBXSS5TZXR0aW5nc1ZpZXcKICAgICAgICAgICAgIGEuYXBwZW5kKGIpOwogICAgICAgICAg
ICAgcmV0dXJuIGE7CiAgICAgICAgIH0pOworCisgICAgICAgIGxldCBibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uRWxlbWVudCA9IHRoaXMuZWxlbWVudC5pbnNlcnRCZWZv
cmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpLCB0aGlzLmVsZW1lbnQubGFzdENoaWxkKTsK
KyAgICAgICAgbGV0IGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zRXhwbGFuYXRpb25MYWJl
bCA9IGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zRXhwbGFuYXRpb25FbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIikpOworCisgICAgICAgIGxldCBi
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uQ2hlY2tib3ggPSBibGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uTGFiZWwuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSk7CisgICAgICAgIGJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zRXhwbGFuYXRpb25DaGVja2JveC50eXBlID0gImNoZWNrYm94IjsKKyAgICAgICAg
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkNoZWNrYm94LmNoZWNrZWQg
PSBXSS5zZXR0aW5ncy5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy52YWx1ZTsKKyAgICAg
ICAgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkNoZWNrYm94LmFkZEV2
ZW50TGlzdGVuZXIoImNoYW5nZSIsIChldmVudCkgPT4geworICAgICAgICAgICAgV0kuc2V0dGlu
Z3MuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMudmFsdWUgPSBibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uQ2hlY2tib3guY2hlY2tlZDsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkxhYmVsLmFw
cGVuZChXSS5VSVN0cmluZygiQWxzbyBkZWZlciBldmFsdWF0aW5nIGJyZWFrcG9pbnQgY29uZGl0
aW9ucywgaWdub3JlIGNvdW50cywgYW5kIGFjdGlvbnMgdW50aWwgZXhlY3V0aW9uIGhhcyBjb250
aW51ZWQgb3V0c2lkZSBvZiB0aGUgcmVsYXRlZCBzY3JpcHQgaW5zdGVhZCBvZiBhdCB0aGUgYnJl
YWtwb2ludCdzIGxvY2F0aW9uLiIpKTsKICAgICB9CiAKICAgICAvLyBQcml2YXRlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZDk4MzAzM2I2MDE0YmM1NjA5YWQ4N2E2OTI0NDY2Y2NmYjg2YzQyOC4uMDE2YWVkOTUwNWYyYTk2
ZjEwZmIxODA3MDJhNGRhYzVmZGE2ZjY1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAx
LTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBhZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVh
dGlvbnMgKGNvbmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZlY3Rl
ZCBieSBzY3JpcHQgYmxhY2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAy
MDIyLTAxLTIxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgdGVzdCByZXNvdXJjZSBjaGFuZ2UuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzg5Y2VkNmRj
ZDI0NGEzZjBmYzMxZDdjYjI1ZGI1MTZiMTQwMTU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyNCBAQAorVGVzdHMgRGVidWdnZXIuc2V0QmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnMuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBEZWJ1
Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucworLS0gUnVubmluZyB0ZXN0IGNh
c2U6IERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5GYWxzZQorRXZhbHVhdGlu
ZyAnY3JlYXRlU2NyaXB0cygiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX0ZhbHNlIiknLi4uCitCbGFja2JveGluZyAndW5ibGFja2JveGJyZWFrcG9p
bnRldmFsdWF0aW9uc19icmVha3BvaW50Y29uZGl0aW9uX2ZhbHNlX2lubmVyLmpzJy4uLgorU2V0
dGluZyBicmVha3BvaW50IGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRDb25kaXRpb25fRmFsc2VfSW5uZXIuanMnLi4uCitVbmJsYWNrYm94aW5nIHByZWFrcG9p
bmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlcigyKScuLi4KK1BBU1M6IFNob3Vs
ZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyLmpzJworUEFTUzogU2hvdWxkIG5v
dCBwYXVzZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29u
ZGl0aW9uX0ZhbHNlX0lubmVyJy4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlcicu
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25k
aXRpb24uVHJ1ZQorRXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygiVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWUiKScuLi4KK0JsYWNrYm94aW5n
ICd1bmJsYWNrYm94YnJlYWtwb2ludGV2YWx1YXRpb25zX2JyZWFrcG9pbnRjb25kaXRpb25fdHJ1
ZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2ludCBpbiAnVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXIuanMnLi4uCitVbmJs
YWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcgJ1VuYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyKDIp
Jy4uLgorCitQQVVTRUQ6ICdCbGFja2JveGVkU2NyaXB0JyBhdCAnVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXI6Mzo0Jy4KK3sKKyAg
Im9yaWdpbmFsUmVhc29uIjogIkJyZWFrcG9pbnQiLAorICAib3JpZ2luYWxEYXRhIjogeworICAg
ICJicmVha3BvaW50SWQiOiAiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3Bv
aW50Q29uZGl0aW9uX1RydWVfSW5uZXIuanM6MjowIgorICB9Cit9CitSZXN1bWluZy4uLgorUEFT
UzogUmVzdW1lZC4KK1BBU1M6IFNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5u
ZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lcicuCitQQVNTOiBTaG91bGQg
cGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRp
dGlvbl9UcnVlX091dGVyJy4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnNldEJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuQnJlYWtwb2ludEFjdGlvbi5QYXVzZQorRXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygiVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlIiknLi4u
CitCbGFja2JveGluZyAndW5ibGFja2JveGJyZWFrcG9pbnRldmFsdWF0aW9uc19icmVha3BvaW50
YWN0aW9uX3BhdXNlX2lubmVyLmpzJy4uLgorU2V0dGluZyBicmVha3BvaW50IGluICdVbmJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIuanMn
Li4uCitVbmJsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcg
J1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9P
dXRlcigyKScuLi4KKworUEFVU0VEOiAnQmxhY2tib3hlZFNjcmlwdCcgYXQgJ1VuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcjozOjQnLgor
eworICAib3JpZ2luYWxSZWFzb24iOiAiQnJlYWtwb2ludCIsCisgICJvcmlnaW5hbERhdGEiOiB7
CisgICAgImJyZWFrcG9pbnRJZCI6ICJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIuanM6MjowIgorICB9Cit9CitSZXN1bWluZy4uLgor
UEFTUzogUmVzdW1lZC4KK1BBU1M6IFNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAn
VW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lu
bmVyLmpzJworUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyJy4KK1BBU1M6IFNob3VsZCBu
b3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9QYXVzZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zLkJyZWFrcG9pbnRBY3Rpb24uQXV0b0NvbnRpbnVlCitFdmFsdWF0aW5nICdjcmVhdGVTY3Jp
cHRzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0
b0NvbnRpbnVlIiknLi4uCitCbGFja2JveGluZyAndW5ibGFja2JveGJyZWFrcG9pbnRldmFsdWF0
aW9uc19icmVha3BvaW50YWN0aW9uX2F1dG9jb250aW51ZV9pbm5lci5qcycuLi4KK1NldHRpbmcg
YnJlYWtwb2ludCBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lci5qcycuLi4KK1VuYmxhY2tib3hpbmcgcHJlYWtwb2lu
ZyBldmFsdWF0aW9ucy4uLgorRXZhbHVhdGluZyAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcigyKScuLi4KK1BBU1M6IFNo
b3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lci5qcycKK1BBU1M6IFNo
b3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXInLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBp
biAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9D
b250aW51ZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5C
cmVha3BvaW50Q29uZGl0aW9uLkZhbHNlCitFdmFsdWF0aW5nICdjcmVhdGVTY3JpcHRzKCJCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlIiknLi4u
CitCbGFja2JveGluZyAnYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGNv
bmRpdGlvbl9mYWxzZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2ludCBpbiAnQmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lci5q
cycuLi4KK0JsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcg
J0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2Vf
T3V0ZXIoMiknLi4uCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ0Js
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0
ZXIuanMnCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyJy4KK1BBU1M6IFNob3VsZCBu
b3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25k
aXRpb25fRmFsc2VfT3V0ZXInLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc2V0
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuQnJlYWtwb2ludENvbmRpdGlvbi5UcnVlCitFdmFsdWF0aW5nICdjcmVhdGVTY3JpcHRzKCJC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWUiKScu
Li4KK0JsYWNrYm94aW5nICdibGFja2JveGJyZWFrcG9pbnRldmFsdWF0aW9uc19icmVha3BvaW50
Y29uZGl0aW9uX3RydWVfaW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJ0JsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lci5q
cycuLi4KK0JsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcg
J0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9P
dXRlcigyKScuLi4KKworUEFVU0VEOiAnQmxhY2tib3hlZFNjcmlwdCcgYXQgJ0JsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcjozOjQnLgor
eworICAib3JpZ2luYWxSZWFzb24iOiAiQnJlYWtwb2ludCIsCisgICJvcmlnaW5hbERhdGEiOiB7
CisgICAgImJyZWFrcG9pbnRJZCI6ICJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXIuanM6MjowIgorICB9Cit9CitSZXN1bWluZy4uLgor
UEFTUzogUmVzdW1lZC4KK1BBU1M6IFNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAn
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091
dGVyLmpzJworUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyJy4KK1BBU1M6IFNob3VsZCBw
YXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlv
bl9UcnVlX091dGVyJy4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnNldEJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJy
ZWFrcG9pbnRBY3Rpb24uUGF1c2UKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlwdHMoIkJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2UiKScuLi4KK0JsYWNr
Ym94aW5nICdibGFja2JveGJyZWFrcG9pbnRldmFsdWF0aW9uc19icmVha3BvaW50YWN0aW9uX3Bh
dXNlX2lubmVyLmpzJy4uLgorU2V0dGluZyBicmVha3BvaW50IGluICdCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyLmpzJy4uLgorQmxhY2ti
b3hpbmcgcHJlYWtwb2luZyBldmFsdWF0aW9ucy4uLgorRXZhbHVhdGluZyAnQmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcigyKScuLi4KKwor
UEFVU0VEOiAnQmxhY2tib3hlZFNjcmlwdCcgYXQgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXI6Mzo0Jy4KK3sKKyAgIm9yaWdpbmFsUmVh
c29uIjogIkJyZWFrcG9pbnQiLAorICAib3JpZ2luYWxEYXRhIjogeworICAgICJicmVha3BvaW50
SWQiOiAiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVz
ZV9Jbm5lci5qczoyOjAiCisgIH0KK30KK1Jlc3VtaW5nLi4uCitQQVNTOiBSZXN1bWVkLgorUEFT
UzogU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyLmpzJworUEFTUzogU2hvdWxk
IG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9QYXVzZV9Jbm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyJy4KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zLkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uQXV0b0Nv
bnRpbnVlCitFdmFsdWF0aW5nICdjcmVhdGVTY3JpcHRzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZSIpJy4uLgorQmxhY2tib3hpbmcg
J2JsYWNrYm94YnJlYWtwb2ludGV2YWx1YXRpb25zX2JyZWFrcG9pbnRhY3Rpb25fYXV0b2NvbnRp
bnVlX2lubmVyLmpzJy4uLgorU2V0dGluZyBicmVha3BvaW50IGluICdCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lci5qcycuLi4K
K0JsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcgJ0JsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX091
dGVyKDIpJy4uLgorUEFTUzogU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9P
dXRlci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyJy4KK1BBU1M6IFNo
b3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9p
bnRBY3Rpb25fQXV0b0NvbnRpbnVlX091dGVyJy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmFkYjAyYTg3ZTBkMmIzMzZhY2I4MDcxMmRjNDAx
NzFkMWVhYWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLmh0bWwKQEAgLTAsMCArMSwzMTkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gY3JlYXRlU2NyaXB0cyhpZCkgeworICAgIGV2YWwoCitgCit3
aW5kb3cuJHtpZH1fSW5uZXIgPSBmdW5jdGlvbiAke2lkfV9Jbm5lcih4KSB7CisgICAgcmV0dXJu
IHggKiB4OworfTsKKy8vIyBzb3VyY2VVUkw9JHtpZH1fSW5uZXIuanMKK2AKKyAgICApOworCisg
ICAgZXZhbCgKK2AKK3dpbmRvdy4ke2lkfV9PdXRlciA9IGZ1bmN0aW9uICR7aWR9X091dGVyKHgp
IHsKKyAgICBsZXQgaW5uZXJSZXN1bHQgPSAke2lkfV9Jbm5lcih4KTsKKyAgICByZXR1cm4gaW5u
ZXJSZXN1bHQgKiB4OworfTsKKy8vIyBzb3VyY2VVUkw9JHtpZH1fT3V0ZXIuanMKK2AKKyAgICAp
OworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBQcm90b2NvbFRlc3QuZGVidWcoKTsKKyAg
ICBsZXQgc3VpdGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiRGVidWdnZXIuc2V0
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMiKTsKKworICAgIGxldCBzb3VyY2VVUkxSZWdF
eHBRdWVyaWVzID0gbmV3IE1hcDsKKyAgICBsZXQgcGF1c2VkRnVuY3Rpb25OYW1lcyA9IFtdOwor
CisgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9
KTsKKyAgICBJbnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtw
b2ludHNBY3RpdmUiLCB7YWN0aXZlOiB0cnVlfSk7CisKKyAgICBJbnNwZWN0b3JQcm90b2NvbC5l
dmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZSkg
eworICAgICAgICBsZXQgc291cmNlVVJMID0gbWVzc2FnZS5wYXJhbXMuc291cmNlVVJMOworICAg
ICAgICBmb3IgKGxldCBbcmVnRXhwLCBjYWxsYmFja10gb2Ygc291cmNlVVJMUmVnRXhwUXVlcmll
cykgeworICAgICAgICAgICAgaWYgKHJlZ0V4cC50ZXN0KHNvdXJjZVVSTCkpIHsKKyAgICAgICAg
ICAgICAgICBzb3VyY2VVUkxSZWdFeHBRdWVyaWVzLmRlbGV0ZShyZWdFeHApOworICAgICAgICAg
ICAgICAgIGNhbGxiYWNrKHNvdXJjZVVSTCk7CisgICAgICAgICAgICB9CisgICAgICAgIH07Cisg
ICAgfTsKKworICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1
c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5uZXdsaW5l
KCk7CisKKyAgICAgICAgbGV0IHRvcENhbGxGcmFtZSA9IG1lc3NhZ2UucGFyYW1zLmNhbGxGcmFt
ZXNbMF07CisgICAgICAgIGxldCBmdW5jdGlvbk5hbWUgPSB0b3BDYWxsRnJhbWUuZnVuY3Rpb25O
YW1lOworICAgICAgICBpZiAoZnVuY3Rpb25OYW1lICE9PSAiZ2xvYmFsIGNvZGUiKSB7CisgICAg
ICAgICAgICBQcm90b2NvbFRlc3QubG9nKGBQQVVTRUQ6ICcke21lc3NhZ2UucGFyYW1zLnJlYXNv
bn0nIGF0ICcke2Z1bmN0aW9uTmFtZX06JHt0b3BDYWxsRnJhbWUubG9jYXRpb24ubGluZU51bWJl
cn06JHt0b3BDYWxsRnJhbWUubG9jYXRpb24uY29sdW1uTnVtYmVyfScuYCk7CisgICAgICAgICAg
ICBpZiAobWVzc2FnZS5wYXJhbXMuZGF0YSkKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3Qu
anNvbihtZXNzYWdlLnBhcmFtcy5kYXRhKTsKKyAgICAgICAgICAgIHBhdXNlZEZ1bmN0aW9uTmFt
ZXMucHVzaChmdW5jdGlvbk5hbWUpOworICAgICAgICB9CisKKyAgICAgICAgUHJvdG9jb2xUZXN0
LmxvZygiUmVzdW1pbmcuLi4iKTsKKyAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1h
bmQoYERlYnVnZ2VyLnJlc3VtZWAsIHt9LCBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9y
KTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dl
ci5yZXN1bWVkIl0gPSBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5w
YXNzKCJSZXN1bWVkLiIpOworICAgIH07CisKKyAgICBhc3luYyBmdW5jdGlvbiBzZXRCbGFja2Jv
eCh1cmwsIG9wdGlvbnMgPSB7fSkgeworICAgICAgICBpZiAoIW9wdGlvbnMuY2FzZVNlbnNpdGl2
ZSkKKyAgICAgICAgICAgIHVybCA9IHVybC50b0xvd2VyQ2FzZSgpOworCisgICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coYEJsYWNrYm94aW5nICR7b3B0aW9ucy5jYXNlU2Vuc2l0aXZlID8gIihjYXNl
IHNlbnNpdGl2ZSkgIiA6ICIifSR7b3B0aW9ucy5pc1JlZ2V4ID8gIihyZWdleCkgIiA6ICIifSck
e3VybH0nLi4uYCk7CisgICAgICAgIGF3YWl0IEluc3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFu
ZCh7CisgICAgICAgICAgICBtZXRob2Q6ICJEZWJ1Z2dlci5zZXRTaG91bGRCbGFja2JveFVSTCIs
CisgICAgICAgICAgICBwYXJhbXM6IHt1cmwsIHNob3VsZEJsYWNrYm94OiB0cnVlLCAuLi5vcHRp
b25zfSwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gc2V0QnJlYWtw
b2ludCh1cmwsIGxpbmVOdW1iZXIsIG9wdGlvbnMpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0Lmxv
ZyhgU2V0dGluZyBicmVha3BvaW50IGluICcke3VybH0nLi4uYCk7CisgICAgICAgIGF3YWl0IElu
c3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFuZCh7CisgICAgICAgICAgICBtZXRob2Q6ICJEZWJ1
Z2dlci5zZXRCcmVha3BvaW50QnlVcmwiLAorICAgICAgICAgICAgcGFyYW1zOiB7dXJsLCBsaW5l
TnVtYmVyLCBvcHRpb25zfSwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rp
b24gc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnMpIHsKKyAgICAgICAgUHJvdG9jb2xUZXN0LmxvZyhgJHtibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9ucyA/ICJCbGFja2JveGluZyIgOiAiVW5ibGFja2JveGluZyJ9IHByZWFrcG9p
bmcgZXZhbHVhdGlvbnMuLi5gKTsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvclByb3RvY29sLmF3
YWl0Q29tbWFuZCh7CisgICAgICAgICAgICBtZXRob2Q6ICJEZWJ1Z2dlci5zZXRCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9ucyIsCisgICAgICAgICAgICBwYXJhbXM6IHtibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc30sCisgICAgICAgIH0pOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0
aW9uIGxpc3RlbkZvclNvdXJjZVBhcnNlZChzb3VyY2VVUkxSZWdFeHApIHsKKyAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHNvdXJj
ZVVSTFJlZ0V4cFF1ZXJpZXMuc2V0KHNvdXJjZVVSTFJlZ0V4cCwgcmVzb2x2ZSk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIGV2YWx1YXRlKGV4cHJlc3Npb24pIHsK
KyAgICAgICAgUHJvdG9jb2xUZXN0LmxvZyhgRXZhbHVhdGluZyAnJHtleHByZXNzaW9ufScuLi5g
KTsKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFuZCh7CisgICAg
ICAgICAgICBtZXRob2Q6ICJSdW50aW1lLmV2YWx1YXRlIiwKKyAgICAgICAgICAgIHBhcmFtczog
e2V4cHJlc3Npb259LAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24u
RmFsc2UiLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IFtpbm5lclNv
dXJjZVVSTCwgb3V0ZXJTb3VyY2VVUkxdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAg
ICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0
aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyXC5qcyQvKSwKKyAgICAgICAgICAg
ICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAg
ICAgZXZhbHVhdGUoYGNyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZSIpYCksCisgICAgICAgICAgICBdKTsKKworICAg
ICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3goaW5uZXJTb3VyY2VVUkwpOworICAgICAgICAgICAg
YXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNvdXJjZVVSTCwgMiwgeworICAgICAgICAgICAgICAg
IGNvbmRpdGlvbjogIiEoeCA9IDMpIiwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXdh
aXQgc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMoZmFsc2UpOworCisgICAgICAgICAg
ICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUoYFVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlcigyKWApOworICAgICAgICAgICAg
SW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJv
dG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgzICogMykgKiAyLCAi
U2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5uZXIuanMnIik7CisKKyAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1
ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25f
RmFsc2VfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lcicuIik7CisgICAgICAg
ICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRl
cygiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0Zh
bHNlX091dGVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXInLiIpOworICAgICAgICB9
LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVi
dWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9ucy5CcmVha3BvaW50Q29uZGl0aW9uLlRydWUiLAorICAgICAgICBhc3luYyB0
ZXN0KCkgeworICAgICAgICAgICAgbGV0IFtpbm5lclNvdXJjZVVSTCwgb3V0ZXJTb3VyY2VVUkxd
ID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBh
cnNlZCgvVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9u
X1RydWVfSW5uZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNl
ZCgvVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1Ry
dWVfT3V0ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGV2YWx1YXRlKGBjcmVhdGVTY3JpcHRz
KCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1
ZSIpYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3go
aW5uZXJTb3VyY2VVUkwpOworICAgICAgICAgICAgYXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNv
dXJjZVVSTCwgMiwgeworICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogIih4ID0gMykiLAorICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9ucyhmYWxzZSk7CisKKyAgICAgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBldmFsdWF0
ZShgVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1Ry
dWVfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmNoZWNrRm9yRXJy
b3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RFcXVhbChyZXN1bHQu
cmVzdWx0LnZhbHVlLCAoMyAqIDMpICogMiwgIlNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGlu
c2lkZSAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9u
X1RydWVfSW5uZXIuanMnIik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxz
ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lciIpLCAiU2hvdWxkIG5vdCBwYXVz
ZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9u
X1RydWVfSW5uZXInLiIpOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRydWUocGF1
c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIiKSwgIlNob3VsZCBwYXVzZSBpbiAnVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0
ZXInLiIpOworCisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uUGF1c2Ui
LAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IFtpbm5lclNvdXJjZVVS
TCwgb3V0ZXJTb3VyY2VVUkxdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAg
IGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19C
cmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBsaXN0
ZW5Gb3JTb3VyY2VQYXJzZWQoL1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludEFjdGlvbl9QYXVzZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAgZXZhbHVhdGUo
YGNyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dEFjdGlvbl9QYXVzZSIpYCksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQg
c2V0QmxhY2tib3goaW5uZXJTb3VyY2VVUkwpOworICAgICAgICAgICAgYXdhaXQgc2V0QnJlYWtw
b2ludChpbm5lclNvdXJjZVVSTCwgMiwgeworICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsKKyAg
ICAgICAgICAgICAgICAgICAge3R5cGU6ICJldmFsdWF0ZSIsIGRhdGE6ICJ4ID0gMyJ9LAorICAg
ICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGZhbHNlKTsKKworICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3RvclBy
b3RvY29sLmNoZWNrRm9yRXJyb3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5l
eHBlY3RFcXVhbChyZXN1bHQucmVzdWx0LnZhbHVlLCAoMyAqIDMpICogMiwgIlNob3VsZCBjaGFu
Z2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19C
cmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyLmpzJyIpOworCisgICAgICAgICAgICBQcm90b2Nv
bFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiVW5ibGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyIiksICJT
aG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRBY3Rpb25fUGF1c2VfSW5uZXInLiIpOworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4
cGVjdFRydWUocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyIiksICJTaG91bGQgbm90
IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fUGF1c2VfT3V0ZXInLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMuVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0
aW9uLkF1dG9Db250aW51ZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBs
ZXQgW2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChb
CisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyXC5qcyQv
KSwKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL1VuYmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXJcLmpz
JC8pLAorICAgICAgICAgICAgICAgIGV2YWx1YXRlKGBjcmVhdGVTY3JpcHRzKCJVbmJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlIilgKSwK
KyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNv
dXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBzZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJM
LCAyLCB7CisgICAgICAgICAgICAgICAgYWN0aW9uczogWworICAgICAgICAgICAgICAgICAgICB7
dHlwZTogImV2YWx1YXRlIiwgZGF0YTogInggPSAzIn0sCisgICAgICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICAgICBhdXRvQ29udGludWU6IHRydWUsCisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIGF3YWl0IHNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGZhbHNlKTsKKwor
ICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBVbmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX091dGVyKDIpYCk7
CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9yKHJlc3VsdCk7Cisg
ICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJlc3VsdC52YWx1ZSwg
KDMgKiAzKSAqIDIsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5u
ZXIuanMnIik7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRG
dW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyIiksICJTaG91bGQgbm90IHBhdXNlIGlu
ICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0Nv
bnRpbnVlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShw
YXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX091dGVyIiksICJTaG91bGQgbm90IHBh
dXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
QXV0b0NvbnRpbnVlX091dGVyJy4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zLkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRD
b25kaXRpb24uRmFsc2UiLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0
IFtpbm5lclNvdXJjZVVSTCwgb3V0ZXJTb3VyY2VVUkxdID0gYXdhaXQgUHJvbWlzZS5hbGwoWwor
ICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lclwuanMkLyksCisgICAg
ICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyXC5qcyQvKSwKKyAgICAgICAg
ICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZSIpYCksCisgICAgICAgICAgICBdKTsKKwor
ICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3goaW5uZXJTb3VyY2VVUkwpOworICAgICAgICAg
ICAgYXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNvdXJjZVVSTCwgMiwgeworICAgICAgICAgICAg
ICAgIGNvbmRpdGlvbjogIiEoeCA9IDMpIiwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
YXdhaXQgc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnModHJ1ZSk7CisKKyAgICAgICAg
ICAgIGxldCByZXN1bHQgPSBhd2FpdCBldmFsdWF0ZShgQmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlcigyKWApOworICAgICAgICAgICAg
SW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJv
dG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgyICogMikgKiAzLCAi
U2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyLmpzJyIpOworCisgICAgICAg
ICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRl
cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxz
ZV9Jbm5lciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lcicuIik7CisgICAgICAgICAgICBQ
cm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiQmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRl
ciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlcicuIik7CisgICAgICAgIH0sCisgICAgfSk7
CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zZXRC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cy5CcmVha3BvaW50Q29uZGl0aW9uLlRydWUiLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAg
ICAgICAgICAgbGV0IFtpbm5lclNvdXJjZVVSTCwgb3V0ZXJTb3VyY2VVUkxdID0gYXdhaXQgUHJv
bWlzZS5hbGwoWworICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvQmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyXC5q
cyQvKSwKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL0JsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlclwuanMkLyks
CisgICAgICAgICAgICAgICAgZXZhbHVhdGUoYGNyZWF0ZVNjcmlwdHMoIkJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZSIpYCksCisgICAgICAgICAg
ICBdKTsKKworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3goaW5uZXJTb3VyY2VVUkwpOwor
ICAgICAgICAgICAgYXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNvdXJjZVVSTCwgMiwgeworICAg
ICAgICAgICAgICAgIGNvbmRpdGlvbjogIih4ID0gMykiLAorICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyh0cnVlKTsKKwor
ICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIoMilgKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclByb3RvY29sLmNoZWNrRm9yRXJyb3IocmVzdWx0KTsKKyAgICAgICAg
ICAgIFByb3RvY29sVGVzdC5leHBlY3RFcXVhbChyZXN1bHQucmVzdWx0LnZhbHVlLCAoMiAqIDIp
ICogMywgIlNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnQmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyLmpzJyIpOworCisg
ICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5p
bmNsdWRlcygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlv
bl9UcnVlX0lubmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXInLiIpOworICAgICAgICAg
ICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRydWUocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygi
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091
dGVyIiksICJTaG91bGQgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcicuIik7CisgICAgICAgIH0sCisgICAgfSk7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zZXRCbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5C
cmVha3BvaW50QWN0aW9uLlBhdXNlIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAg
ICAgIGxldCBbaW5uZXJTb3VyY2VVUkwsIG91dGVyU291cmNlVVJMXSA9IGF3YWl0IFByb21pc2Uu
YWxsKFsKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL0JsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXJcLmpzJC8pLAor
ICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlclwuanMkLyksCisgICAgICAg
ICAgICAgICAgZXZhbHVhdGUoYGNyZWF0ZVNjcmlwdHMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2UiKWApLAorICAgICAgICAgICAgXSk7CisKKyAg
ICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94KGlubmVyU291cmNlVVJMKTsKKyAgICAgICAgICAg
IGF3YWl0IHNldEJyZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAgICAgICAgICAg
ICBhY3Rpb25zOiBbCisgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRh
OiAieCA9IDMifSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyh0cnVlKTsKKworICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyKDIpYCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9yKHJlc3VsdCk7CisgICAgICAgICAgICBQ
cm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJlc3VsdC52YWx1ZSwgKDIgKiAyKSAqIDMs
ICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXIuanMnIik7CisKKyAgICAgICAg
ICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVz
KCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lu
bmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29s
VGVzdC5leHBlY3RUcnVlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIkJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXIiKSwgIlNob3Vs
ZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRB
Y3Rpb25fUGF1c2VfT3V0ZXInLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2ludEFj
dGlvbi5BdXRvQ29udGludWUiLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAg
bGV0IFtpbm5lclNvdXJjZVVSTCwgb3V0ZXJTb3VyY2VVUkxdID0gYXdhaXQgUHJvbWlzZS5hbGwo
WworICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXJcLmpzJC8p
LAorICAgICAgICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXJcLmpzJC8p
LAorICAgICAgICAgICAgICAgIGV2YWx1YXRlKGBjcmVhdGVTY3JpcHRzKCJCbGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZSIpYCksCisgICAg
ICAgICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3goaW5uZXJTb3VyY2VV
UkwpOworICAgICAgICAgICAgYXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNvdXJjZVVSTCwgMiwg
eworICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsKKyAgICAgICAgICAgICAgICAgICAge3R5cGU6
ICJldmFsdWF0ZSIsIGRhdGE6ICJ4ID0gMyJ9LAorICAgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAgICAgYXV0b0NvbnRpbnVlOiB0cnVlLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICBhd2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyh0cnVlKTsKKworICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcigyKWApOworICAgICAg
ICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAgICAgICAg
ICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgyICogMikg
KiAzLCAiU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlci5qcyciKTsK
KworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFt
ZXMuaW5jbHVkZXMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fQXV0b0NvbnRpbnVlX0lubmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lcicu
Iik7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25O
YW1lcy5pbmNsdWRlcygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFj
dGlvbl9BdXRvQ29udGludWVfT3V0ZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX091dGVy
Jy4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8cD5UZXN0cyBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy48L3A+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450950</attachid>
            <date>2022-02-04 16:43:46 -0800</date>
            <delta_ts>2022-03-01 22:43:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235274-20220204174345.patch</filename>
            <type>text/plain</type>
            <size>56897</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGE1ODZlZWNiNjA4NmVjNDYwMDBlOTIzN2YwODA3
MDFjNDY5ZWE0NjUuLjQ0ODk3MTI1OWFhNzA4YmIzNGM1NWE4MDI5ZjcyOWRhOTNiNzRkYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIyLTAyLTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBh
ZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVhdGlvbnMgKGNv
bmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZlY3RlZCBieSBzY3Jp
cHQgYmxhY2tib3hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNTI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEJlaW5nIGFibGUgdG8gZGVmZXIgYnJlYWtwb2ludCBldmFsdWF0aW9ucyB1bnRpbCB0
aGUgbmV4dCBhY3R1YWwgcGF1c2UgY2FuIHNvbWV0aW1lcyBiZSBmYXIKKyAgICAgICAgbW9yZSB1
c2VmdWwgdGhhbiBkb2luZyB0aGUgYnJlYWtwb2ludCBldmFsdWF0aW9ucyBhdCB0aGUgYnJlYWtw
b2ludCdzIG9yaWdpbmFsIGxvY2F0aW9uLgorCisgICAgICAgIEFzIGFuIGV4YW1wbGUsIGNvbmZp
Z3VyaW5nIHRoZSBBbGwgRXZlbnRzIGJyZWFrcG9pbnQgd2l0aCBhIGBjb25zb2xlLnRyYWNlKClg
IGFjdGlvbiBhbmQKKyAgICAgICAgYXV0by1jb250aW51ZSBlbmFibGVkIHdvdWxkIG5vdCBwcm92
aWRlIG11Y2ggdXNlZnVsIGluZm9ybWF0aW9uIHdpdGhvdXQgYWxzbyBibGFja2JveGluZworICAg
ICAgICBicmVha3BvaW50IGV2YWx1YXRpb25zIGFzIHRoZSBvcmlnaW5hbCBwYXVzZSBsb2NhdGlv
biBvZiB0aGUgQWxsIEV2ZW50cyBicmVha3BvaW50IGlzIG9uIHRoZQorICAgICAgICBmaXJzdCBs
aW5lIG9mIHRoZSBldmVudCBoYW5kbGVyLCBtZWFuaW5nIHRoYXQgaWYgdGhlIHNjcmlwdCBjb250
YWluaW5nIHRoZSBldmVudCBoYW5kbGVyIGlzCisgICAgICAgIGJsYWNrYm94ZWQgdGhlbiB0aGUg
YGNvbnNvbGUudHJhY2UoKWAgd291bGQgc3RpbGwgb25seSBzaG93IHRoYXQgbG9jYXRpb24gZXZl
biB0aG91Z2ggdGhlCisgICAgICAgIFNvdXJjZXMgVGFiIHdvdWxkIHNob3cgdGhlIGZpcnN0IGxp
bmUgb2YgY29kZSBvdXRzaWRlIG9mIHRoYXQgc2NyaXB0IChkdWUgdG8gdGhlIGJsYWNrYm94KS4K
KyAgICAgICAgQmVpbmcgYWJsZSB0byBhbHNvIGJsYWNrYm94IGJyZWFrcG9pbnQgZXZhbHVhdGlv
bnMgd291bGQgaW5zdGVhZCBjYXVzZSB0aGUgYGNvbnNvbGUudHJhY2UoKWAKKyAgICAgICAgYWN0
aW9uIHRvIGhhdmUgdGhlIHNhbWUgb3V0cHV0IGFzIHRoZSBTb3VyY2VzIFRhYiwgc2luY2UgaXQn
cyBldmFsdWF0aW9uIHdvdWxkIGJlIGRlZmVycmVkCisgICAgICAgIHVudGlsIGV4ZWN1dGlvbiBh
Y3R1YWxseSBwYXVzZWQsIHdoaWNoIGlzIGZ1cnRoZXIgaW5zaWRlIHRoZSBldmVudCBoYW5kbGVy
LgorCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuY3BwOgorICAgICAgICAoSlNDOjpEZWJ1
Z2dlcjo6RGVidWdnZXIpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2lu
dCk6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyOjpldmFsdWF0ZUJyZWFrcG9pbnRDb25kaXRpb24p
OgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6Y29udGludWVQcm9ncmFtKToKKyAgICAgICAgKEpT
Qzo6RGVidWdnZXI6OnBhdXNlSWZOZWVkZWQpOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6ZGlk
RXhlY3V0ZVByb2dyYW0pOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlcjo6c2V0QmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnMpOiBBZGRlZC4KKyAgICAgICAgS2VlcCB0cmFjayBvZiBldmVyeSBg
QnJlYWtwb2ludGAgd2FudHMgdG8gcGF1c2UgYnV0IGlzIGRlZmVycmVkIGR1ZSB0byBibGFja2Jv
eGluZy4KKyAgICAgICAgRGVwZW5kaW5nIG9uIHdoZXRoZXIgYnJlYWtwb2ludCBldmFsdWF0aW9u
cyBhcmUgYWxzbyBibGFja2JveGVkIChiYXNlZCBvbiB0aGUgZmxhZyBzZXQgdmlhCisgICAgICAg
IHRoZSBwaXBpbmcgY29kZS9sb2dpYyBiZWxvdyksIGNoZWNrIGlmIHRoZSBzY3JpcHQgYXR0ZW1w
dGluZyB0byBiZSBwYXVzZWQgaW4gaXMgYmxhY2tib3hlZAorICAgICAgICBiZWZvcmUgb3IgYWZ0
ZXIgaGFuZGxpbmcgYnJlYWtwb2ludCBldmFsdWF0aW9ucy4KKyAgICAgICAgU2lkZSBlZmZlY3Rz
IG9mIHRoaXMgY2hhbmdlIGFyZToKKyAgICAgICAgLSBicmVha3BvaW50IGNvbmRpdGlvbnMgYXJl
IG5vdyBldmFsdWF0ZWQgcmlnaHQgYmVmb3JlIHRoYXQgYnJlYWtwb2ludCdzIGFjdGlvbnMsIGlu
c3RlYWQgb2YKKyAgICAgICAgICBldmFsdWF0aW5nIGFsbCBicmVha3BvaW50IGNvbmRpdGlvbnMg
YmVmb3JlIGFsbCBicmVha3BvaW50IGFjdGlvbnMKKyAgICAgICAgLSBpZiBicmVha3BvaW50IGV2
YWx1YXRpb25zIGFyZSBibGFja2JveGVkLCBtb3JlIHRoYW4gdHdvIGJyZWFrcG9pbnRzIGNhbiBu
b3cgYmUgZXZhbHVhdGVkCisgICAgICAgIGR1cmluZyBhIHNpbmdsZSBwYXVzZSBhdHRlbXB0IGRl
cGVuZGluZyBvbiBob3cgbWF5IGRlZmVycmFscyAod2l0aCBicmVha3BvaW50cykgaGFwcGVuZWQK
KworICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyLmg6CisgICAgICAgIChKU0M6OkRlYnVnZ2Vy
OjpPYnNlcnZlcjo6ZGlkRGVmZXJCcmVha3BvaW50UGF1c2UpOiBBZGRlZC4KKyAgICAgICAgQWRk
IGEgd2F5IHRvIG5vdGlmeSBgSW5zcGVjdG9yRGVidWdnZXJBZ2VudGAgb2YgZGVmZXJyZWQgYnJl
YWtwb2ludCBwYXVzZXMgc28gdGhhdCB0aGUKKyAgICAgICAgY29ycmVjdCBgb3JpZ2luYWxSZWFz
b25gIHdpbGwgYmUgdXNlZCBhZnRlciBhIGRlZmVycmVkIHBhdXNlLgorCisgICAgICAgICogaW5z
cGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9y
RGVidWdnZXJBZ2VudDo6c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMpOiBBZGRlZC4K
KyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkRGVmZXJCcmVh
a3BvaW50UGF1c2UpOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgYHNldEJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zYCBjb21tYW5kIHRoYXQgcGFzc2VzIGRpcmVjdGx5IHRvIGBEZWJ1Z2dlcmAu
CisKIDIwMjItMDItMDQgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg4OTk2LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKaW5kZXggNzI1MjVlYmQwYmMzMGMyOTdjMjVmNmMyOTg4ODAzOWEyNDg3Mjg3ZC4uODYz
ZDFmYjNkZjI2ZWNmY2M4ZmJmN2UzNTE4NDZjMzY0MTNjYjkzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjItMDItMDQgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBhIHN3aXRjaCB0byBj
b250cm9sIHdoZXRoZXIgYnJlYWtwb2ludCBldmFsdWF0aW9ucyAoY29uZGl0aW9uLCBpZ25vcmUg
Y291bnQsIGFjdGlvbnMpIGFyZSBhbHNvIGFmZmVjdGVkIGJ5IHNjcmlwdCBibGFja2JveGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1Mjc0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVpbmcgYWJs
ZSB0byBkZWZlciBicmVha3BvaW50IGV2YWx1YXRpb25zIHVudGlsIHRoZSBuZXh0IGFjdHVhbCBw
YXVzZSBjYW4gc29tZXRpbWVzIGJlIGZhcgorICAgICAgICBtb3JlIHVzZWZ1bCB0aGFuIGRvaW5n
IHRoZSBicmVha3BvaW50IGV2YWx1YXRpb25zIGF0IHRoZSBicmVha3BvaW50J3Mgb3JpZ2luYWwg
bG9jYXRpb24uCisKKyAgICAgICAgQXMgYW4gZXhhbXBsZSwgY29uZmlndXJpbmcgdGhlIEFsbCBF
dmVudHMgYnJlYWtwb2ludCB3aXRoIGEgYGNvbnNvbGUudHJhY2UoKWAgYWN0aW9uIGFuZAorICAg
ICAgICBhdXRvLWNvbnRpbnVlIGVuYWJsZWQgd291bGQgbm90IHByb3ZpZGUgbXVjaCB1c2VmdWwg
aW5mb3JtYXRpb24gd2l0aG91dCBhbHNvIGJsYWNrYm94aW5nCisgICAgICAgIGJyZWFrcG9pbnQg
ZXZhbHVhdGlvbnMgYXMgdGhlIG9yaWdpbmFsIHBhdXNlIGxvY2F0aW9uIG9mIHRoZSBBbGwgRXZl
bnRzIGJyZWFrcG9pbnQgaXMgb24gdGhlCisgICAgICAgIGZpcnN0IGxpbmUgb2YgdGhlIGV2ZW50
IGhhbmRsZXIsIG1lYW5pbmcgdGhhdCBpZiB0aGUgc2NyaXB0IGNvbnRhaW5pbmcgdGhlIGV2ZW50
IGhhbmRsZXIgaXMKKyAgICAgICAgYmxhY2tib3hlZCB0aGVuIHRoZSBgY29uc29sZS50cmFjZSgp
YCB3b3VsZCBzdGlsbCBvbmx5IHNob3cgdGhhdCBsb2NhdGlvbiBldmVuIHRob3VnaCB0aGUKKyAg
ICAgICAgU291cmNlcyBUYWIgd291bGQgc2hvdyB0aGUgZmlyc3QgbGluZSBvZiBjb2RlIG91dHNp
ZGUgb2YgdGhhdCBzY3JpcHQgKGR1ZSB0byB0aGUgYmxhY2tib3gpLgorICAgICAgICBCZWluZyBh
YmxlIHRvIGFsc28gYmxhY2tib3ggYnJlYWtwb2ludCBldmFsdWF0aW9ucyB3b3VsZCBpbnN0ZWFk
IGNhdXNlIHRoZSBgY29uc29sZS50cmFjZSgpYAorICAgICAgICBhY3Rpb24gdG8gaGF2ZSB0aGUg
c2FtZSBvdXRwdXQgYXMgdGhlIFNvdXJjZXMgVGFiLCBzaW5jZSBpdCdzIGV2YWx1YXRpb24gd291
bGQgYmUgZGVmZXJyZWQKKyAgICAgICAgdW50aWwgZXhlY3V0aW9uIGFjdHVhbGx5IHBhdXNlZCwg
d2hpY2ggaXMgZnVydGhlciBpbnNpZGUgdGhlIGV2ZW50IGhhbmRsZXIKKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvQmFzZS9TZXR0aW5nLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuRGVidWdnZXJNYW5hZ2Vy
LnN1cHBvcnRzQmxhY2tib3hpbmdCcmVha3BvaW50RXZhbHVhdGlvbnMpOiBBZGRlZC4KKyAgICAg
ICAgKFdJLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuYXN5bmMgaW5pdGlhbGl6ZVRhcmdldCk6
CisgICAgICAgIChXSS5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9zZXRCbGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9ucyk6IEFkZGVkLgorICAgICAgICAoV0kuRGVidWdnZXJNYW5hZ2VyLnBy
b3RvdHlwZS5faGFuZGxlQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNDaGFuZ2UpOiBBZGRl
ZC4KKyAgICAgICAgQ3JlYXRlIGEgZ2xvYmFsIGBXSS5TZXR0aW5nYCBmb3IgdGhpcyBmZWF0dXJl
IGFuZCBoYW5kbGUgY2hhbmdlcyBmcm9tIHRoZSBjb2RlIGJlbG93LgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNldHRpbmdzVmlldy5qczoKKyAgICAgICAgKFdJLkJs
YWNrYm94U2V0dGluZ3NWaWV3LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNzczoKKyAgICAgICAgKC5z
ZXR0aW5ncy12aWV3LmJsYWNrYm94ID4gcCA+IGxhYmVsKTogQWRkZWQuCisgICAgICAgICguc2V0
dGluZ3Mtdmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCA+IGlucHV0KTogQWRkZWQuCisgICAgICAg
ICguc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+IHAgPiBsYWJlbCA+IHNwYW4pOiBBZGRlZC4KKyAg
ICAgICAgQWRkIGEgY2hlY2tib3ggYW5kIGV4cGxhbmF0aW9uIG9mIHRoaXMgbmV3IGZlYXR1cmUg
aW4gdGhlIEJsYWNrYm94IHBhbmUgb2YgdGhlIFNldHRpbmdzIFRhYi4KKworICAgICAgICAqIExv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qczoKKwogMjAyMi0wMi0wMyAg
TmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBbRmxleGJveF0gQWRkIHNldHRpbmcgdG8gZ3VhcmQgRmxleGJveCBJbnNwZWN0b3Ig
ZmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKaW5k
ZXggMGJjZTJhNjg5ODkzN2ZhMmQ4YjQ0MGNiMmYyNjE2ZDUxZTM2NWI5Ni4uNDNkNWE0YTAzOWE2
ZDk4MzhiMWVjNzRiMzliZWIxMWYwOTM3OTI1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXIuY3BwCkBAIC0xMTMsNiArMTEzLDcgQEAgRGVidWdnZXI6OlByb2Zp
bGluZ0NsaWVudDo6flByb2ZpbGluZ0NsaWVudCgpCiAKIERlYnVnZ2VyOjpEZWJ1Z2dlcihWTSYg
dm0pCiAgICAgOiBtX3ZtKHZtKQorICAgICwgbV9ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
cyhmYWxzZSkKICAgICAsIG1fcGF1c2VBdE5leHRPcHBvcnR1bml0eShmYWxzZSkKICAgICAsIG1f
cGFzdEZpcnN0RXhwcmVzc2lvbkluU3RhdGVtZW50KGZhbHNlKQogICAgICwgbV9pc1BhdXNlZChm
YWxzZSkKQEAgLTU0Myw3ICs1NDQsNyBAQCBib29sIERlYnVnZ2VyOjpyZW1vdmVCcmVha3BvaW50
KEJyZWFrcG9pbnQmIGJyZWFrcG9pbnQpCiAgICAgcmV0dXJuIHJlbW92ZWQ7CiB9CiAKLVJlZlB0
cjxCcmVha3BvaW50PiBEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2ludChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTb3VyY2VJRCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3Np
dGlvbikKK1JlZlB0cjxCcmVha3BvaW50PiBEZWJ1Z2dlcjo6ZGlkSGl0QnJlYWtwb2ludChTb3Vy
Y2VJRCBzb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBpZiAo
IW1fYnJlYWtwb2ludHNBY3RpdmF0ZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNTY1
LDExICs1NjYsOCBAQCBSZWZQdHI8QnJlYWtwb2ludD4gRGVidWdnZXI6OmRpZEhpdEJyZWFrcG9p
bnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU291cgogCiAgICAgICAgIC8vIFNpbmNl
IGZyb250ZW5kIHRydW5jYXRlcyB0aGUgaW5kZW50LCB0aGUgZmlyc3Qgc3RhdGVtZW50IGluIGEg
bGluZSBtdXN0IG1hdGNoIHRoZSBicmVha3BvaW50IChsaW5lLDApLgogICAgICAgICBBU1NFUlQo
dGhpcyA9PSBtX2N1cnJlbnRDYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5nbG9iYWxPYmplY3QoKS0+
ZGVidWdnZXIoKSk7Ci0gICAgICAgIGlmICgobGluZSAhPSBtX2xhc3RFeGVjdXRlZExpbmUgJiYg
bGluZSA9PSBicmVha0xpbmUgJiYgIWJyZWFrQ29sdW1uKSB8fCAobGluZSA9PSBicmVha0xpbmUg
JiYgY29sdW1uID09IGJyZWFrQ29sdW1uKSkgewotICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQt
PnNob3VsZFBhdXNlKCp0aGlzLCBnbG9iYWxPYmplY3QpKQotICAgICAgICAgICAgICAgIHJldHVy
biBicmVha3BvaW50LmNvcHlSZWYoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Cisg
ICAgICAgIGlmICgobGluZSAhPSBtX2xhc3RFeGVjdXRlZExpbmUgJiYgbGluZSA9PSBicmVha0xp
bmUgJiYgIWJyZWFrQ29sdW1uKSB8fCAobGluZSA9PSBicmVha0xpbmUgJiYgY29sdW1uID09IGJy
ZWFrQ29sdW1uKSkKKyAgICAgICAgICAgIHJldHVybiBicmVha3BvaW50LmNvcHlSZWYoKTsKICAg
ICB9CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTYwNiwxNCArNjA0LDEzIEBAIHZvaWQgRGVi
dWdnZXI6OmNsZWFyQnJlYWtwb2ludHMoKQogCiBib29sIERlYnVnZ2VyOjpldmFsdWF0ZUJyZWFr
cG9pbnRDb25kaXRpb24oQnJlYWtwb2ludCYgYnJlYWtwb2ludCwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKKyAgICBBU1NFUlQobV9pc1BhdXNlZCk7CisgICAgQVNTRVJUKGlzQXR0
YWNoZWQoZ2xvYmFsT2JqZWN0KSk7CisKICAgICBjb25zdCBTdHJpbmcmIGNvbmRpdGlvbiA9IGJy
ZWFrcG9pbnQuY29uZGl0aW9uKCk7CiAgICAgaWYgKGNvbmRpdGlvbi5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gV2UgY2Fubm90IHN0b3AgaW4gdGhlIGRlYnVnZ2Vy
IHdoaWxlIGV4ZWN1dGluZyBjb25kaXRpb24gY29kZSwKLSAgICAvLyBzbyBtYWtlIGl0IGxvb2tz
IGxpa2UgdGhlIGRlYnVnZ2VyIGlzIGFscmVhZHkgcGF1c2VkLgotICAgIFRlbXBvcmFyeVBhdXNl
ZFN0YXRlIHBhdXNlZFN0YXRlKCp0aGlzKTsKLQogICAgIE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhj
ZXB0aW9uOwogICAgIERlYnVnZ2VyQ2FsbEZyYW1lJiBkZWJ1Z2dlckNhbGxGcmFtZSA9IGN1cnJl
bnREZWJ1Z2dlckNhbGxGcmFtZSgpOwogICAgIEpTT2JqZWN0KiBzY29wZUV4dGVuc2lvbk9iamVj
dCA9IG1fY2xpZW50ID8gbV9jbGllbnQtPmRlYnVnZ2VyU2NvcGVFeHRlbnNpb25PYmplY3QoKnRo
aXMsIGdsb2JhbE9iamVjdCwgZGVidWdnZXJDYWxsRnJhbWUpIDogbnVsbHB0cjsKQEAgLTc4MSw2
ICs3NzgsNyBAQCB2b2lkIERlYnVnZ2VyOjpicmVha1Byb2dyYW0oUmVmUHRyPEJyZWFrcG9pbnQ+
JiYgc3BlY2lhbEJyZWFrcG9pbnQpCiB2b2lkIERlYnVnZ2VyOjpjb250aW51ZVByb2dyYW0oKQog
ewogICAgIGNsZWFyTmV4dFBhdXNlU3RhdGUoKTsKKyAgICBtX2RlZmVycmVkQnJlYWtwb2ludHMu
Y2xlYXIoKTsKIAogICAgIGlmICghbV9pc1BhdXNlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtODgz
LDgwICs4ODEsMTEyIEBAIHZvaWQgRGVidWdnZXI6OnBhdXNlSWZOZWVkZWQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKIAogICAgIERlYnVnZ2VyUGF1c2VkU2NvcGUgZGVidWdnZXJQYXVz
ZWRTY29wZSgqdGhpcyk7CiAKLSAgICBib29sIHBhdXNlTm93ID0gbV9wYXVzZUF0TmV4dE9wcG9y
dHVuaXR5OwotICAgIHBhdXNlTm93IHw9IChtX3BhdXNlT25DYWxsRnJhbWUgPT0gbV9jdXJyZW50
Q2FsbEZyYW1lKTsKLQotICAgIGJvb2wgZGlkUGF1c2VGb3JTdGVwID0gcGF1c2VOb3c7CisgICAg
Ym9vbCBhZnRlckJsYWNrYm94ZWRTY3JpcHQgPSBtX2FmdGVyQmxhY2tib3hlZFNjcmlwdDsKKyAg
ICBib29sIHBhdXNlTm93ID0gZmFsc2U7CisgICAgYm9vbCBkaWRQYXVzZUZvclN0ZXAgPSBmYWxz
ZTsKKyAgICBpZiAobV9wYXVzZUF0TmV4dE9wcG9ydHVuaXR5KSB7CisgICAgICAgIHBhdXNlTm93
ID0gdHJ1ZTsKKyAgICAgICAgZGlkUGF1c2VGb3JTdGVwID0gIWFmdGVyQmxhY2tib3hlZFNjcmlw
dDsKKyAgICB9IGVsc2UgaWYgKG1fcGF1c2VPblN0ZXBOZXh0IHx8IG1fcGF1c2VPblN0ZXBPdXQg
fHwgKG1fcGF1c2VPbkNhbGxGcmFtZSA9PSBtX2N1cnJlbnRDYWxsRnJhbWUpKSB7CisgICAgICAg
IHBhdXNlTm93ID0gdHJ1ZTsKKyAgICAgICAgZGlkUGF1c2VGb3JTdGVwID0gdHJ1ZTsKKyAgICB9
CiAKICAgICBUZXh0UG9zaXRpb24gcG9zaXRpb24gPSBEZWJ1Z2dlckNhbGxGcmFtZTo6cG9zaXRp
b25Gb3JDYWxsRnJhbWUodm0sIG1fY3VycmVudENhbGxGcmFtZSk7CiAKLSAgICBhdXRvIGJyZWFr
cG9pbnQgPSBkaWRIaXRCcmVha3BvaW50KGdsb2JhbE9iamVjdCwgc291cmNlSUQsIHBvc2l0aW9u
KTsKLSAgICBpZiAoYnJlYWtwb2ludCkKKyAgICBpZiAoYXV0byBicmVha3BvaW50ID0gZGlkSGl0
QnJlYWtwb2ludChzb3VyY2VJRCwgcG9zaXRpb24pKSB7CiAgICAgICAgIHBhdXNlTm93ID0gdHJ1
ZTsKKyAgICAgICAgbV9kZWZlcnJlZEJyZWFrcG9pbnRzLmFkZChicmVha3BvaW50LnJlbGVhc2VO
b25OdWxsKCkpOworICAgIH0KIAogICAgIC8vIFNwZWNpYWwgYnJlYWtwb2ludHMgYXJlIG9ubHkg
Z2l2ZW4gb25lIG9wcG9ydHVuaXR5IHRvIHBhdXNlLgotICAgIGF1dG8gc3BlY2lhbEJyZWFrcG9p
bnQgPSBXVEZNb3ZlKG1fc3BlY2lhbEJyZWFrcG9pbnQpOwotICAgIGlmIChzcGVjaWFsQnJlYWtw
b2ludCAmJiBzcGVjaWFsQnJlYWtwb2ludC0+c2hvdWxkUGF1c2UoKnRoaXMsIGdsb2JhbE9iamVj
dCkpCisgICAgaWYgKG1fc3BlY2lhbEJyZWFrcG9pbnQpIHsKICAgICAgICAgcGF1c2VOb3cgPSB0
cnVlOworICAgICAgICBtX2RlZmVycmVkQnJlYWtwb2ludHMuYWRkKG1fc3BlY2lhbEJyZWFrcG9p
bnQucmVsZWFzZU5vbk51bGwoKSk7CisgICAgfQogCiAgICAgbV9sYXN0RXhlY3V0ZWRMaW5lID0g
cG9zaXRpb24ubV9saW5lLnplcm9CYXNlZEludCgpOwogICAgIGlmICghcGF1c2VOb3cpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGJvb2wgYWZ0ZXJCbGFja2JveGVkU2NyaXB0ID0gbV9hZnRlckJs
YWNrYm94ZWRTY3JpcHQ7CiAgICAgY2xlYXJOZXh0UGF1c2VTdGF0ZSgpOwogCiAgICAgLy8gTWFr
ZSBzdXJlIHdlIGFyZSBub3QgZ29pbmcgdG8gcGF1c2UgYWdhaW4gb24gYnJlYWtwb2ludCBhY3Rp
b25zIGJ5CiAgICAgLy8gcmVzZXRpbmcgdGhlIHBhdXNlIHN0YXRlIGJlZm9yZSBleGVjdXRpbmcg
YW55IGJyZWFrcG9pbnQgYWN0aW9ucy4KICAgICBUZW1wb3JhcnlQYXVzZWRTdGF0ZSBwYXVzZWRT
dGF0ZSgqdGhpcyk7CiAKLSAgICBpZiAoYnJlYWtwb2ludCB8fCBzcGVjaWFsQnJlYWtwb2ludCkg
ewotICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGFjdGlvbnMgY2FuIHBvdGVudGlhbGx5IHN0b3Ag
dGhlIGRlYnVnZ2VyLCBzbyB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQKLSAgICAgICAgLy8gd2Ugc3Rp
bGwgaGF2ZSBhIGN1cnJlbnQgY2FsbCBmcmFtZSB3aGVuIHdlIGdldCBiYWNrLgorICAgIGF1dG8g
c2hvdWxkRGVmZXJQYXVzZSA9IFsmXSAoKSB7CisgICAgICAgIGlmIChibGFja2JveFR5cGVJdGVy
YXRvciA9PSBtX2JsYWNrYm94ZWRTY3JpcHRzLmVuZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgICAgIGJvb2wgYXV0b0NvbnRpbnVlID0gZmFsc2U7CisgICAgICAgIGlmIChi
bGFja2JveFR5cGVJdGVyYXRvci0+dmFsdWUgIT0gQmxhY2tib3hUeXBlOjpEZWZlcnJlZCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoYnJlYWtwb2ludCkgewotICAg
ICAgICAgICAgZXZhbHVhdGVCcmVha3BvaW50QWN0aW9ucygqYnJlYWtwb2ludCwgZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQgPSB0cnVlOwogCisgICAgICAg
IGlmIChtX3BhdXNpbmdCcmVha3BvaW50SUQgIT0gbm9CcmVha3BvaW50SUQpIHsKKyAgICAgICAg
ICAgIGRpc3BhdGNoRnVuY3Rpb25Ub09ic2VydmVycyhbJl0gKE9ic2VydmVyJiBvYnNlcnZlcikg
eworICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpZERlZmVyQnJlYWtwb2ludFBhdXNlKG1fcGF1
c2luZ0JyZWFrcG9pbnRJRCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgbV9wYXVz
aW5nQnJlYWtwb2ludElEID0gbm9CcmVha3BvaW50SUQ7CisgICAgICAgIH0KKworICAgICAgICBz
Y2hlZHVsZVBhdXNlQXROZXh0T3Bwb3J0dW5pdHkoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfTsKKworICAgIGlmIChtX2JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zICYmIHNob3Vs
ZERlZmVyUGF1c2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2RlZmVycmVkQnJl
YWtwb2ludHMuaXNFbXB0eSgpKSB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8QnJlYWtwb2ludElE
PiBwYXVzaW5nQnJlYWtwb2ludElEOworICAgICAgICBib29sIGhhc0V2YWx1YXRlZFNwZWNpYWxC
cmVha3BvaW50ID0gZmFsc2U7CisgICAgICAgIGJvb2wgc2hvdWxkQ29udGludWUgPSB0cnVlOwor
CisgICAgICAgIGZvciAoYXV0byYmIGRlZmVycmVkQnJlYWtwb2ludCA6IHN0ZDo6ZXhjaGFuZ2Uo
bV9kZWZlcnJlZEJyZWFrcG9pbnRzLCB7IH0pKSB7CisgICAgICAgICAgICAvLyBOb3RlIHRoYXQg
YnJlYWtwb2ludCBldmFsdWF0aW9ucyBjYW4gcG90ZW50aWFsbHkgc3RvcCB0aGUgZGVidWdnZXIs
IHNvIHdlIG5lZWQgdG8KKyAgICAgICAgICAgIC8vIGNoZWNrIHRoYXQgd2Ugc3RpbGwgaGF2ZSBh
IGN1cnJlbnQgY2FsbCBmcmFtZSBhZnRlciBldmFsdWF0aW5nIHRoZW0uCisKKyAgICAgICAgICAg
IGJvb2wgc2hvdWxkUGF1c2UgPSBkZWZlcnJlZEJyZWFrcG9pbnQtPnNob3VsZFBhdXNlKCp0aGlz
LCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCFzaG91bGRQYXVzZSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgZXZhbHVhdGVCcmVha3BvaW50
QWN0aW9ucyhkZWZlcnJlZEJyZWFrcG9pbnQsIGdsb2JhbE9iamVjdCk7CiAgICAgICAgICAgICBp
ZiAoIW1fY3VycmVudENhbGxGcmFtZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgICAgIGlmIChicmVha3BvaW50LT5pc0F1dG9Db250aW51ZSgpKQotICAgICAgICAgICAgICAg
IGF1dG9Db250aW51ZSA9IHRydWU7CisgICAgICAgICAgICBpZiAoZGVmZXJyZWRCcmVha3BvaW50
LT5pc0F1dG9Db250aW51ZSgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
ICAgICBzaG91bGRDb250aW51ZSA9IGZhbHNlOworCisgICAgICAgICAgICAvLyBPbmx5IHByb3Bh
Z2F0ZSBgUGF1c2VkRm9yQnJlYWtwb2ludGAgdG8gdGhlIGBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
YCBpZiB0aGUgZmlyc3QKKyAgICAgICAgICAgIC8vIGxpbmU6Y29sdW1uIGJyZWFrcG9pbnQgaGl0
IHdhcyBiZWZvcmUgdGhlIGZpcnN0IHNwZWNpYWwgYnJlYWtwb2ludCwgYXMgdGhlIGxhdHRlcgor
ICAgICAgICAgICAgLy8gd291bGQgYWxyZWFkeSBoYXZlIHNldCBhIHVuaXF1ZSByZWFzb24gYmVm
b3JlIGF0dGVtcHRpbmcgdG8gcGF1c2UuCisgICAgICAgICAgICBpZiAoIWRlZmVycmVkQnJlYWtw
b2ludC0+aXNMaW5rZWQoKSkKKyAgICAgICAgICAgICAgICBoYXNFdmFsdWF0ZWRTcGVjaWFsQnJl
YWtwb2ludCA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmICghaGFzRXZhbHVhdGVkU3BlY2lh
bEJyZWFrcG9pbnQgJiYgIXBhdXNpbmdCcmVha3BvaW50SUQpCisgICAgICAgICAgICAgICAgcGF1
c2luZ0JyZWFrcG9pbnRJRCA9IGRlZmVycmVkQnJlYWtwb2ludC0+aWQoKTsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmIChzcGVjaWFsQnJlYWtwb2ludCkgewotICAgICAgICAgICAgZXZhbHVhdGVC
cmVha3BvaW50QWN0aW9ucygqc3BlY2lhbEJyZWFrcG9pbnQsIGdsb2JhbE9iamVjdCk7Ci0KLSAg
ICAgICAgICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICAgICAgaWYgKHNwZWNpYWxCcmVha3BvaW50LT5pc0F1dG9Db250aW51ZSgp
KQotICAgICAgICAgICAgICAgIGF1dG9Db250aW51ZSA9IHRydWU7Ci0gICAgICAgIH0KLQotICAg
ICAgICBpZiAoYXV0b0NvbnRpbnVlKSB7CisgICAgICAgIGlmIChzaG91bGRDb250aW51ZSkgewog
ICAgICAgICAgICAgaWYgKCFkaWRQYXVzZUZvclN0ZXApCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgICAgICBicmVha3BvaW50ID0gbnVsbHB0cjsKLSAgICAgICAgICAgIHNwZWNp
YWxCcmVha3BvaW50ID0gbnVsbHB0cjsKLSAgICAgICAgfSBlbHNlIGlmIChicmVha3BvaW50KQot
ICAgICAgICAgICAgbV9wYXVzaW5nQnJlYWtwb2ludElEID0gYnJlYWtwb2ludC0+aWQoKTsKKyAg
ICAgICAgfSBlbHNlIGlmIChwYXVzaW5nQnJlYWtwb2ludElEKQorICAgICAgICAgICAgbV9wYXVz
aW5nQnJlYWtwb2ludElEID0gKnBhdXNpbmdCcmVha3BvaW50SUQ7CiAgICAgfQogCi0gICAgaWYg
KGJsYWNrYm94VHlwZUl0ZXJhdG9yICE9IG1fYmxhY2tib3hlZFNjcmlwdHMuZW5kKCkgJiYgYmxh
Y2tib3hUeXBlSXRlcmF0b3ItPnZhbHVlID09IEJsYWNrYm94VHlwZTo6RGVmZXJyZWQpIHsKLSAg
ICAgICAgbV9hZnRlckJsYWNrYm94ZWRTY3JpcHQgPSB0cnVlOwotICAgICAgICBzY2hlZHVsZVBh
dXNlQXROZXh0T3Bwb3J0dW5pdHkoKTsKKyAgICBpZiAoIW1fYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnMgJiYgc2hvdWxkRGVmZXJQYXVzZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQog
CiAgICAgewogICAgICAgICBhdXRvIHJlYXNvbiA9IG1fcmVhc29uRm9yUGF1c2U7CiAgICAgICAg
IGlmIChhZnRlckJsYWNrYm94ZWRTY3JpcHQpCiAgICAgICAgICAgICByZWFzb24gPSBQYXVzZWRB
ZnRlckJsYWNrYm94ZWRTY3JpcHQ7Ci0gICAgICAgIGVsc2UgaWYgKGJyZWFrcG9pbnQpCisgICAg
ICAgIGVsc2UgaWYgKG1fcGF1c2luZ0JyZWFrcG9pbnRJRCkKICAgICAgICAgICAgIHJlYXNvbiA9
IFBhdXNlZEZvckJyZWFrcG9pbnQ7CiAgICAgICAgIFBhdXNlUmVhc29uRGVjbGFyYXRpb24gcmF1
c2VSZWFzb25EZWNsYXJhdGlvbigqdGhpcywgcmVhc29uKTsKIApAQCAtMTE1NCw4ICsxMTg0LDEw
IEBAIHZvaWQgRGVidWdnZXI6OmRpZEV4ZWN1dGVQcm9ncmFtKENhbGxGcmFtZSogY2FsbEZyYW1l
KQogICAgIHVwZGF0ZUNhbGxGcmFtZShsZXhpY2FsR2xvYmFsT2JqZWN0Rm9yQ2FsbEZyYW1lKG1f
dm0sIGNhbGxlckZyYW1lKSwgY2FsbGVyRnJhbWUsIE5vUGF1c2UpOwogCiAgICAgLy8gRG8gbm90
IGNvbnRpbnVlIHN0ZXBwaW5nIGludG8gYW4gdW5rbm93biBmdXR1cmUgcHJvZ3JhbS4KLSAgICBp
ZiAoIW1fY3VycmVudENhbGxGcmFtZSkKKyAgICBpZiAoIW1fY3VycmVudENhbGxGcmFtZSkgewog
ICAgICAgICBjbGVhck5leHRQYXVzZVN0YXRlKCk7CisgICAgICAgIG1fZGVmZXJyZWRCcmVha3Bv
aW50cy5jbGVhcigpOworICAgIH0KIH0KIAogdm9pZCBEZWJ1Z2dlcjo6Y2xlYXJOZXh0UGF1c2VT
dGF0ZSgpCkBAIC0xMjExLDYgKzEyNDMsMTEgQEAgdm9pZCBEZWJ1Z2dlcjo6c2V0QmxhY2tib3hU
eXBlKFNvdXJjZUlEIHNvdXJjZUlELCBzdGQ6Om9wdGlvbmFsPEJsYWNrYm94VHlwZT4gdHkKICAg
ICAgICAgbV9ibGFja2JveGVkU2NyaXB0cy5yZW1vdmUoc291cmNlSUQpOwogfQogCit2b2lkIERl
YnVnZ2VyOjpzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyhib29sIGJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zKQoreworICAgIG1fYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMgPSBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uczsKK30KKwogdm9pZCBEZWJ1Z2dlcjo6
Y2xlYXJCbGFja2JveCgpCiB7CiAgICAgbV9ibGFja2JveGVkU2NyaXB0cy5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaAppbmRleCAzZDEzZmIwNGE3YjMx
MjMxOTNjYjIxZDU1ZjU4MWE1NDFkMzcyODkyLi42NWY2NWQ2MzcxZjA0MDY4NjVlYjBhNmI5ZWIy
N2E5MmU4N2ViZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIu
aApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkRlYnVnZ2VyUHJpbWl0aXZlcy5oIgogI2lu
Y2x1ZGUgIkpTQ0pTVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMTE1LDYgKzExNiw3
IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgQmxhY2tib3hUeXBlIHsgRGVmZXJyZWQsIEln
bm9yZWQgfTsKICAgICB2b2lkIHNldEJsYWNrYm94VHlwZShTb3VyY2VJRCwgc3RkOjpvcHRpb25h
bDxCbGFja2JveFR5cGU+KTsKKyAgICB2b2lkIHNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zKGJvb2wpOwogICAgIHZvaWQgY2xlYXJCbGFja2JveCgpOwogCiAgICAgYm9vbCBpc1BhdXNl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQYXVzZWQ7IH0KQEAgLTE4MSw2ICsxODMsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBicmVha3BvaW50QWN0aW9uTG9nKEpTR2xvYmFsT2Jq
ZWN0KiwgY29uc3QgU3RyaW5nJiAvKiBkYXRhICovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lk
IGJyZWFrcG9pbnRBY3Rpb25Tb3VuZChCcmVha3BvaW50QWN0aW9uSUQpIHsgfQogICAgICAgICB2
aXJ0dWFsIHZvaWQgYnJlYWtwb2ludEFjdGlvblByb2JlKEpTR2xvYmFsT2JqZWN0KiwgQnJlYWtw
b2ludEFjdGlvbklELCB1bnNpZ25lZCAvKiBiYXRjaElkICovLCB1bnNpZ25lZCAvKiBzYW1wbGVJ
ZCAqLywgSlNWYWx1ZSAvKiByZXN1bHQgKi8pIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
RGVmZXJCcmVha3BvaW50UGF1c2UoQnJlYWtwb2ludElEKSB7IH0KICAgICB9OwogCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwpAQCAtMjU3LDcgKzI2
MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIERlYnVnZ2VyJiBtX2RlYnVnZ2VyOwogICAgIH07CiAK
LSAgICBSZWZQdHI8QnJlYWtwb2ludD4gZGlkSGl0QnJlYWtwb2ludChKU0dsb2JhbE9iamVjdCos
IFNvdXJjZUlELCBjb25zdCBUZXh0UG9zaXRpb24mKTsKKyAgICBSZWZQdHI8QnJlYWtwb2ludD4g
ZGlkSGl0QnJlYWtwb2ludChTb3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJik7CiAKICAgICBE
ZWJ1Z2dlclBhcnNlRGF0YSYgZGVidWdnZXJQYXJzZURhdGEoU291cmNlSUQsIFNvdXJjZVByb3Zp
ZGVyKik7CiAKQEAgLTI5OSw2ICszMDIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8SlNHbG9i
YWxPYmplY3QqPiBtX2dsb2JhbE9iamVjdHM7CiAgICAgSGFzaE1hcDxTb3VyY2VJRCwgRGVidWdn
ZXJQYXJzZURhdGEsIFdURjo6SW50SGFzaDxTb3VyY2VJRD4sIFdURjo6VW5zaWduZWRXaXRoWmVy
b0tleUhhc2hUcmFpdHM8U291cmNlSUQ+PiBtX3BhcnNlRGF0YU1hcDsKICAgICBIYXNoTWFwPFNv
dXJjZUlELCBCbGFja2JveFR5cGUsIFdURjo6SW50SGFzaDxTb3VyY2VJRD4sIFdURjo6VW5zaWdu
ZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8U291cmNlSUQ+PiBtX2JsYWNrYm94ZWRTY3JpcHRzOwor
ICAgIGJvb2wgbV9ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyA6IDE7CiAKICAgICBib29s
IG1fcGF1c2VBdE5leHRPcHBvcnR1bml0eSA6IDE7CiAgICAgYm9vbCBtX3BhdXNlT25TdGVwTmV4
dCA6IDE7CkBAIC0zMjIsNiArMzI2LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFNvdXJjZUlE
LCBMaW5lVG9CcmVha3BvaW50c01hcCwgV1RGOjpJbnRIYXNoPFNvdXJjZUlEPiwgV1RGOjpVbnNp
Z25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czxTb3VyY2VJRD4+IG1fYnJlYWtwb2ludHNGb3JTb3Vy
Y2VJRDsKICAgICBIYXNoU2V0PFJlZjxCcmVha3BvaW50Pj4gbV9icmVha3BvaW50czsKICAgICBS
ZWZQdHI8QnJlYWtwb2ludD4gbV9zcGVjaWFsQnJlYWtwb2ludDsKKyAgICBMaXN0SGFzaFNldDxS
ZWY8QnJlYWtwb2ludD4+IG1fZGVmZXJyZWRCcmVha3BvaW50czsKICAgICBCcmVha3BvaW50SUQg
bV9wYXVzaW5nQnJlYWtwb2ludElEOwogCiAgICAgUmVmUHRyPEJyZWFrcG9pbnQ+IG1fcGF1c2VP
bkFsbEV4Y2VwdGlvbnNCcmVha3BvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNw
cAppbmRleCBiZTkxMGViMjgyZWU1M2U3ZjM1ZjZiMDNhNjY5YzU5Mzk3YzFkOGRkLi5iOWRhMGM4
OGY2MTIwZGEyMjkzNTgzYzYwNWIwOTVmYzIyMmY1NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmNwcApAQCAtMTA2OSw2ICsxMDY5LDEzIEBAIGJvb2wgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6c2hvdWxkQmxhY2tib3hVUkwoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCitQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyhib29sIGJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKQoreworICAgIG1fZGVidWdnZXIuc2V0QmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnMoYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMpOwor
CisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpzY3Jp
cHRFeGVjdXRpb25CbG9ja2VkQnlDU1AoY29uc3QgU3RyaW5nJiBkaXJlY3RpdmVUZXh0KQogewog
ICAgIGlmIChtX2RlYnVnZ2VyLm5lZWRzRXhjZXB0aW9uQ2FsbGJhY2tzKCkpCkBAIC0xMzIxLDYg
KzEzMjgsMTEgQEAgdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDb250aW51ZSgpCiAg
ICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXN1bWVkKCk7CiB9CiAKK3ZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6ZGlkRGVmZXJCcmVha3BvaW50UGF1c2UoSlNDOjpCcmVha3BvaW50
SUQgYnJlYWtwb2ludElkKQoreworICAgIHVwZGF0ZVBhdXNlUmVhc29uQW5kRGF0YShEZWJ1Z2dl
ckZyb250ZW5kRGlzcGF0Y2hlcjo6UmVhc29uOjpCcmVha3BvaW50LCBidWlsZEJyZWFrcG9pbnRQ
YXVzZVJlYXNvbihicmVha3BvaW50SWQpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpicmVha1Byb2dyYW0oRGVidWdnZXJGcm9udGVuZERpc3BhdGNoZXI6OlJlYXNvbiByZWFz
b24sIFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgZGF0YSwgUmVmUHRyPEpTQzo6QnJlYWtwb2ludD4m
JiBzcGVjaWFsQnJlYWtwb2ludCkKIHsKICAgICB1cGRhdGVQYXVzZVJlYXNvbkFuZERhdGEocmVh
c29uLCBXVEZNb3ZlKGRhdGEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCA2
YTVhNGRlM2Q2ZTIyMWY2NWU1MjUxNTI2NjcyNDMxOWU5ZjI5MWI2Li5iOTk2YzlmYmZkNzA5ZTli
MmY1MjM1ODJmYzM2YTI1NTU1YjY3NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5o
CkBAIC05Myw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2
b2lkPiBzZXRQYXVzZUZvckludGVybmFsU2NyaXB0cyhib29sIHNob3VsZFBhdXNlKSBmaW5hbDsK
ICAgICBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxzdGQ6OnR1cGxlPFJlZjxQcm90b2NvbDo6UnVu
dGltZTo6UmVtb3RlT2JqZWN0Piwgc3RkOjpvcHRpb25hbDxib29sPiAvKiB3YXNUaHJvd24gKi8s
IHN0ZDo6b3B0aW9uYWw8aW50PiAvKiBzYXZlZFJlc3VsdEluZGV4ICovPj4gZXZhbHVhdGVPbkNh
bGxGcmFtZShjb25zdCBQcm90b2NvbDo6RGVidWdnZXI6OkNhbGxGcmFtZUlkJiwgY29uc3QgU3Ry
aW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwLCBzdGQ6Om9wdGlvbmFs
PGJvb2w+JiYgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgZG9O
b3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlLCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYg
cmV0dXJuQnlWYWx1ZSwgc3RkOjpvcHRpb25hbDxib29sPiYmIGdlbmVyYXRlUHJldmlldywgc3Rk
OjpvcHRpb25hbDxib29sPiYmIHNhdmVSZXN1bHQsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiBlbXVs
YXRlVXNlckdlc3R1cmUpIG92ZXJyaWRlOwogICAgIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHZv
aWQ+IHNldFNob3VsZEJsYWNrYm94VVJMKGNvbnN0IFN0cmluZyYgdXJsLCBib29sIHNob3VsZEJs
YWNrYm94LCBzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgY2FzZVNlbnNpdGl2ZSwgc3RkOjpvcHRpb25h
bDxib29sPiYmIGlzUmVnZXgpIGZpbmFsOworICAgIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHZv
aWQ+IHNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGJvb2wpIGZpbmFsOwogCiAgICAg
Ly8gSlNDOjpEZWJ1Z2dlcjo6Q2xpZW50CiAgICAgSlNDOjpKU09iamVjdCogZGVidWdnZXJTY29w
ZUV4dGVuc2lvbk9iamVjdChKU0M6OkRlYnVnZ2VyJiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RGVidWdnZXJDYWxsRnJhbWUmKSBmaW5hbDsKQEAgLTEwNiw2ICsxMDcsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWRDb250aW51ZSgpIGZpbmFsOwogICAgIHZvaWQgYnJlYWtwb2ludEFjdGlv
blNvdW5kKEpTQzo6QnJlYWtwb2ludEFjdGlvbklEKSBmaW5hbDsKICAgICB2b2lkIGJyZWFrcG9p
bnRBY3Rpb25Qcm9iZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpCcmVha3BvaW50QWN0aW9u
SUQsIHVuc2lnbmVkIGJhdGNoSWQsIHVuc2lnbmVkIHNhbXBsZUlkLCBKU0M6OkpTVmFsdWUgc2Ft
cGxlKSBmaW5hbDsKKyAgICB2b2lkIGRpZERlZmVyQnJlYWtwb2ludFBhdXNlKEpTQzo6QnJlYWtw
b2ludElEKSBmaW5hbDsKIAogICAgIGJvb2wgaXNQYXVzZWQoKSBjb25zdDsKICAgICBib29sIGJy
ZWFrcG9pbnRzQWN0aXZlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24KaW5kZXggNTJiNzMxMTczN2YzMDA2
M2VhZWEwMzEzN2EyYTNlOTFmMWEzZTg4Yy4uMjA5ZjFkZThhYzQ0MGMyYWNmNzlhNDAxNGI4MDEw
ZTZhZjZiZGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9w
cm90b2NvbC9EZWJ1Z2dlci5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgpAQCAtMzIyLDYgKzMyMiwxMyBAQAogICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY2FzZVNlbnNpdGl2ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdHJ1ZSwgPGNvZGU+dXJsPC9jb2RlPiBp
cyBjYXNlIHNlbnNpdGl2ZS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1JlZ2V4
IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJ
ZiB0cnVlLCB0cmVhdCA8Y29kZT51cmw8L2NvZGU+IGFzIHJlZ3VsYXIgZXhwcmVzc2lvbi4iIH0K
ICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUi
OiAic2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMiLAorICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlNldHMgd2hldGhlciBldmFsdWF0aW9uIG9mIGJyZWFrcG9pbnQgY29uZGl0aW9u
cywgaWdub3JlIGNvdW50cywgYW5kIGFjdGlvbnMgaGFwcGVuIGF0IHRoZSBsb2NhdGlvbiBvZiB0
aGUgYnJlYWtwb2ludCBvciBhcmUgZGVmZXJyZWQgZHVlIHRvIGJsYWNrYm94aW5nLiIsCisgICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zIiwgInR5cGUiOiAiYm9vbGVhbiIgfQorICAgICAgICAg
ICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanMKaW5kZXggNGU3MmY3NGZhNGM3ZWU4ZmY5NWVjNjYxZWFiZWRkYzlmYmQ0
MDY1Mi4uN2MwZDQyOTBhZjZhNWRhOGU5MDAxYTY4ZTFhMWNlYmMwMDcxYTk5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC0xNjAsNiArMTYwLDcgQEAgbG9jYWxpemVkU3Ry
aW5nc1siQWxsIGl0ZW1zIGluIFx1MDAyMiVzXHUwMDIyIG11c3QgYmUgdmFsaWQgRE9NIG5vZGVz
Il0gPSAiQWxsIGkKIC8qIExhYmVsIGZvciBzZXR0aW5nIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRv
IGluc3BlY3QgdGhlIFdlYiBJbnNwZWN0b3IgdXNlciBpbnRlcmZhY2UuICovCiBsb2NhbGl6ZWRT
dHJpbmdzWyJBbGxvdyBJbnNwZWN0aW5nIFdlYiBJbnNwZWN0b3IgQCBFeHBlcmltZW50YWwgU2V0
dGluZ3MiXSA9ICJBbGxvdyBJbnNwZWN0aW5nIFdlYiBJbnNwZWN0b3IiOwogbG9jYWxpemVkU3Ry
aW5nc1siQWxsb3cgTWVkaWEgQ2FwdHVyZSBvbiBJbnNlY3VyZSBTaXRlcyJdID0gIkFsbG93IE1l
ZGlhIENhcHR1cmUgb24gSW5zZWN1cmUgU2l0ZXMiOworbG9jYWxpemVkU3RyaW5nc1siQWxzbyBk
ZWZlciBldmFsdWF0aW5nIGJyZWFrcG9pbnQgY29uZGl0aW9ucywgaWdub3JlIGNvdW50cywgYW5k
IGFjdGlvbnMgdW50aWwgZXhlY3V0aW9uIGhhcyBjb250aW51ZWQgb3V0c2lkZSBvZiB0aGUgcmVs
YXRlZCBzY3JpcHQgaW5zdGVhZCBvZiBhdCB0aGUgYnJlYWtwb2ludCdzIGxvY2F0aW9uLiJdID0g
IkFsc28gZGVmZXIgZXZhbHVhdGluZyBicmVha3BvaW50IGNvbmRpdGlvbnMsIGlnbm9yZSBjb3Vu
dHMsIGFuZCBhY3Rpb25zIHVudGlsIGV4ZWN1dGlvbiBoYXMgY29udGludWVkIG91dHNpZGUgb2Yg
dGhlIHJlbGF0ZWQgc2NyaXB0IGluc3RlYWQgb2YgYXQgdGhlIGJyZWFrcG9pbnQncyBsb2NhdGlv
bi4iOwogLyogUHJvcGVydHkgdGl0bGUgZm9yIGBmb250LXZhcmlhbnQtYWx0ZXJuYXRlc2AuICov
CiBsb2NhbGl6ZWRTdHJpbmdzWyJBbHRlcm5hdGUgR2x5cGhzIEAgRm9udCBEZXRhaWxzIFNpZGVi
YXIgUHJvcGVydHkiXSA9ICJBbHRlcm5hdGUgR2x5cGhzIjsKIGxvY2FsaXplZFN0cmluZ3NbIkFu
IGVycm9yIG9jY3VycmVkIHRyeWluZyB0byBsb2FkIHRoZSByZXNvdXJjZS4iXSA9ICJBbiBlcnJv
ciBvY2N1cnJlZCB0cnlpbmcgdG8gbG9hZCB0aGUgcmVzb3VyY2UuIjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGluZy5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvU2V0dGluZy5qcwppbmRleCBjNWNl
Yjc3NDNiMWU3YmIyNTJjMzJlOWIwMTU3NjZhOGZiZDkyYzM4Li43MWVmNWQwN2ZmOWYxZDc0YjJh
MmRhNTI0ZmIxYjEzNzI3Njg1NDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9CYXNlL1NldHRpbmcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9TZXR0aW5nLmpzCkBAIC0xODQsNiArMTg0LDcgQEAgV0kuRGVi
dWdTZXR0aW5nID0gY2xhc3MgRGVidWdTZXR0aW5nIGV4dGVuZHMgV0kuU2V0dGluZwogfTsKIAog
V0kuc2V0dGluZ3MgPSB7CisgICAgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnM6IG5ldyBX
SS5TZXR0aW5nKCJibGFja2JveC1icmVha3BvaW50LWV2YWx1YXRpb25zIiwgZmFsc2UpLAogICAg
IGNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZDogbmV3IFdJLlNldHRpbmcoImNhbnZh
cy1yZWNvcmRpbmctYXV0by1jYXB0dXJlLWVuYWJsZWQiLCBmYWxzZSksCiAgICAgY2FudmFzUmVj
b3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50OiBuZXcgV0kuU2V0dGluZygiY2FudmFzLXJlY29y
ZGluZy1hdXRvLWNhcHR1cmUtZnJhbWUtY291bnQiLCAxKSwKICAgICBjb25zb2xlQXV0b0V4cGFu
ZFRyYWNlOiBuZXcgV0kuU2V0dGluZygiY29uc29sZS1hdXRvLWV4cGFuZC10cmFjZSIsIHRydWUp
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCmluZGV4IDA0ZjA2YWFiNTE2Mjg5
NmJkYzM4NzkyZjRiMmU0ZDliNzhiNzAwYjAuLjhhZDUwOWIzYTFlNWQ4Y2NlMTZjN2ZlMWFiYmEw
NGY5MTUwNWRlODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKQEAgLTQz
LDYgKzQzLDggQEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4
dGVuZHMgV0kuT2JqZWN0CiAKICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3Rl
bmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCwgdGhpcy5fdGFyZ2V0UmVt
b3ZlZCwgdGhpcyk7CiAKKyAgICAgICAgV0kuc2V0dGluZ3MuYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnMuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMu
X2hhbmRsZUJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zQ2hhbmdlLCB0aGlzKTsKKwogICAg
ICAgICBpZiAoV0kuaXNFbmdpbmVlcmluZ0J1aWxkKSB7CiAgICAgICAgICAgICBXSS5zZXR0aW5n
cy5lbmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNjcmlwdHMuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0
aW5nLkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUVuZ2luZWVyaW5nU2hvd0ludGVybmFsU2Ny
aXB0c1NldHRpbmdDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgICAgIFdJLnNldHRpbmdzLmVuZ2lu
ZWVyaW5nUGF1c2VGb3JJbnRlcm5hbFNjcmlwdHMuYWRkRXZlbnRMaXN0ZW5lcihXSS5TZXR0aW5n
LkV2ZW50LkNoYW5nZWQsIHRoaXMuX2hhbmRsZUVuZ2luZWVyaW5nUGF1c2VGb3JJbnRlcm5hbFNj
cmlwdHNTZXR0aW5nQ2hhbmdlZCwgdGhpcyk7CkBAIC0yMjMsNiArMjI1LDggQEAgV0kuRGVidWdn
ZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9zZXRCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9ucyh0YXJnZXQpOworCiAgICAgICAgIGlmIChXSS5pc0VuZ2luZWVyaW5nQnVp
bGQpIHsKICAgICAgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxMik6IERlYnVnZ2VyQWdl
bnQuc2V0UGF1c2VGb3JJbnRlcm5hbFNjcmlwdHMgZGlkIG5vdCBleGlzdCB5ZXQuCiAgICAgICAg
ICAgICBpZiAodGFyZ2V0Lmhhc0NvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlRm9ySW50ZXJuYWxT
Y3JpcHRzIikpCkBAIC0yNDgsOSArMjUyLDE2IEBAIFdJLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNz
IERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgc3RhdGljIHN1cHBvcnRz
QmxhY2tib3hpbmdTY3JpcHRzKCkKICAgICB7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlP
UyAxMyk6IERlYnVnZ2VyLnNldFNob3VsZEJsYWNrYm94VVJMIGRpZCBub3QgZXhpc3QgeWV0Lgog
ICAgICAgICByZXR1cm4gSW5zcGVjdG9yQmFja2VuZC5oYXNDb21tYW5kKCJEZWJ1Z2dlci5zZXRT
aG91bGRCbGFja2JveFVSTCIpOwogICAgIH0KIAorICAgIHN0YXRpYyBzdXBwb3J0c0JsYWNrYm94
aW5nQnJlYWtwb2ludEV2YWx1YXRpb25zKCkKKyAgICB7CisgICAgICAgIC8vIENPTVBBVElCSUxJ
VFkgKGlPUyAxNS40KTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMg
ZGlkIG5vdCBleGlzdCB5ZXQuCisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5kLmhhc0Nv
bW1hbmQoIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zIik7CisgICAg
fQorCiAgICAgc3RhdGljIHBhdXNlUmVhc29uRnJvbVBheWxvYWQocGF5bG9hZCkKICAgICB7CiAg
ICAgICAgIHN3aXRjaCAocGF5bG9hZCkgewpAQCAtMTI1NSw2ICsxMjY2LDEzIEBAIFdJLkRlYnVn
Z2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICB9CiAgICAgfQogCisgICAgX3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKHRh
cmdldCkKKyAgICB7CisgICAgICAgIC8vIENPTVBBVElCSUxJVFkgKGlPUyAxNS40KTogRGVidWdn
ZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMgZGlkIG5vdCBleGlzdCB5ZXQuCisg
ICAgICAgIGlmICh0YXJnZXQuaGFzQ29tbWFuZCgiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnMiKSkKKyAgICAgICAgICAgIHRhcmdldC5EZWJ1Z2dlckFnZW50LnNldEJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKFdJLnNldHRpbmdzLmJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zLnZhbHVlKTsKKyAgICB9CisKICAgICBfYnJlYWtwb2ludERpc3BsYXlMb2Nh
dGlvbkRpZENoYW5nZShldmVudCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9pZ25vcmVCcmVh
a3BvaW50RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlRXZlbnQpCkBAIC0xMzk5LDYgKzE0MTcsMTIg
QEAgV0kuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV0ku
T2JqZWN0CiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5EZWJ1
Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCk7CiAgICAgfQogCisgICAgX2hhbmRsZUJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgZm9yIChs
ZXQgdGFyZ2V0IG9mIFdJLnRhcmdldHMpCisgICAgICAgICAgICB0aGlzLl9zZXRCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9ucyh0YXJnZXQpOworICAgIH0KKwogICAgIF9oYW5kbGVFbmdpbmVl
cmluZ1Nob3dJbnRlcm5hbFNjcmlwdHNTZXR0aW5nQ2hhbmdlZChldmVudCkKICAgICB7CiAgICAg
ICAgIGxldCBldmVudFR5cGUgPSBXSS5zZXR0aW5ncy5lbmdpbmVlcmluZ1Nob3dJbnRlcm5hbFNj
cmlwdHMudmFsdWUgPyBXSS5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQgOiBXSS5E
ZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0UmVtb3ZlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmNz
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0
dGluZ3NWaWV3LmNzcwppbmRleCAxYzA1ZmUyYTZmM2ExYWZjYzRhNDhhZWE4YTljM2Q5MTM1MWIz
ZTJjLi43YjkyZjYwOTAzYzZhNDg3M2FiOGY0OGQ3OGUzNDVhNmZjM2ZjZWFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2JveFNldHRp
bmdzVmlldy5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQmxhY2tib3hTZXR0aW5nc1ZpZXcuY3NzCkBAIC00OCw2ICs0OCwxOSBAQAogICAgIHZlcnRp
Y2FsLWFsaWduOiBtaWRkbGU7CiB9CiAKKy5zZXR0aW5ncy12aWV3LmJsYWNrYm94ID4gcCA+IGxh
YmVsIHsKKyAgICBkaXNwbGF5OiBmbGV4OworfQorCisuc2V0dGluZ3Mtdmlldy5ibGFja2JveCA+
IHAgPiBsYWJlbCA+IGlucHV0IHsKKyAgICBmbGV4LXNocmluazogMDsKKyAgICBtYXJnaW4taW5s
aW5lOiAwLjVweCA0cHg7Cit9CisKKy5zZXR0aW5ncy12aWV3LmJsYWNrYm94ID4gcCA+IGxhYmVs
ID4gc3BhbiB7CisgICAgbWFyZ2luLXRvcDogMS41cHg7Cit9CisKIC5zZXR0aW5ncy12aWV3LmJs
YWNrYm94ID4gdGFibGUgewogICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CbGFja2Jv
eFNldHRpbmdzVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmpzCmluZGV4IDkwYTAzZDBhYTdjZTUyOWIzNGUyMjVk
NTY1NjQ4ZTY2ZWYxNGRiZGIuLjAzN2VjMjc0ZWYzNWFlNzk4NjU3MmE3MTBkYjUxMjVlMGFkNjYy
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0JsYWNrYm94U2V0dGluZ3NWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0JsYWNrYm94U2V0dGluZ3NWaWV3LmpzCkBAIC0xMDYsNiArMTA2LDIw
IEBAIFdJLkJsYWNrYm94U2V0dGluZ3NWaWV3ID0gY2xhc3MgQmxhY2tib3hTZXR0aW5nc1ZpZXcg
ZXh0ZW5kcyBXSS5TZXR0aW5nc1ZpZXcKICAgICAgICAgICAgIGEuYXBwZW5kKGIpOwogICAgICAg
ICAgICAgcmV0dXJuIGE7CiAgICAgICAgIH0pOworCisgICAgICAgIGlmIChXSS5EZWJ1Z2dlck1h
bmFnZXIuc3VwcG9ydHNCbGFja2JveGluZ0JyZWFrcG9pbnRFdmFsdWF0aW9ucygpKSB7CisgICAg
ICAgICAgICBsZXQgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkVsZW1l
bnQgPSB0aGlzLmVsZW1lbnQuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAi
KSwgdGhpcy5lbGVtZW50Lmxhc3RDaGlsZCk7CisgICAgICAgICAgICBsZXQgYmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkxhYmVsID0gYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNFeHBsYW5hdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgibGFiZWwiKSk7CisKKyAgICAgICAgICAgIGxldCBibGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc0V4cGxhbmF0aW9uQ2hlY2tib3ggPSBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c0V4cGxhbmF0aW9uTGFiZWwuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5w
dXQiKSk7CisgICAgICAgICAgICBibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc0V4cGxhbmF0
aW9uQ2hlY2tib3gudHlwZSA9ICJjaGVja2JveCI7CisgICAgICAgICAgICBibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc0V4cGxhbmF0aW9uQ2hlY2tib3guY2hlY2tlZCA9IFdJLnNldHRpbmdz
LmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLnZhbHVlOworICAgICAgICAgICAgYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkNoZWNrYm94LmFkZEV2ZW50TGlzdGVu
ZXIoImNoYW5nZSIsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIFdJLnNldHRpbmdzLmJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLnZhbHVlID0gYmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNFeHBsYW5hdGlvbkNoZWNrYm94LmNoZWNrZWQ7CisgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNFeHBsYW5hdGlvbkxhYmVs
LmFwcGVuZChXSS5VSVN0cmluZygiQWxzbyBkZWZlciBldmFsdWF0aW5nIGJyZWFrcG9pbnQgY29u
ZGl0aW9ucywgaWdub3JlIGNvdW50cywgYW5kIGFjdGlvbnMgdW50aWwgZXhlY3V0aW9uIGhhcyBj
b250aW51ZWQgb3V0c2lkZSBvZiB0aGUgcmVsYXRlZCBzY3JpcHQgaW5zdGVhZCBvZiBhdCB0aGUg
YnJlYWtwb2ludCdzIGxvY2F0aW9uLiIpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFBy
aXZhdGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwYjU0YjdmOTlhMTFmZDc3NDE0MTNlN2QxNWI5M2M1MTE5YTU2MWVlLi5i
YjZmYTBlZDUwNmRkNmNiZjk2N2JhNmExZjA1MjE3YWVlOTllYjcxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMjItMDItMDQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBhIHN3aXRjaCB0byBjb250cm9sIHdoZXRoZXIgYnJl
YWtwb2ludCBldmFsdWF0aW9ucyAoY29uZGl0aW9uLCBpZ25vcmUgY291bnQsIGFjdGlvbnMpIGFy
ZSBhbHNvIGFmZmVjdGVkIGJ5IHNjcmlwdCBibGFja2JveGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1Mjc0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0Qmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisKIDIwMjItMDItMDQgIEFyY2FkeSBHb2xkbWludHMtT3Jsb3YgIDxhZ29sZG1p
bnRzQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjgwMDc3KTogW0dUS10gSXQg
Y2F1c2VkIDE1NSBuZXcgdGVzdCBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc4OWNlZDZkY2QyNDRhM2Yw
ZmMzMWQ3Y2IyNWRiNTE2YjE0MDE1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMjQgQEAKK1Rlc3RzIERlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogRGVidWdnZXIuc2V0
QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1
Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zLkJyZWFrcG9pbnRDb25kaXRpb24uRmFsc2UKK0V2YWx1YXRpbmcgJ2NyZWF0
ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRp
dGlvbl9GYWxzZSIpJy4uLgorQmxhY2tib3hpbmcgJ3VuYmxhY2tib3hicmVha3BvaW50ZXZhbHVh
dGlvbnNfYnJlYWtwb2ludGNvbmRpdGlvbl9mYWxzZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJl
YWtwb2ludCBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29u
ZGl0aW9uX0ZhbHNlX0lubmVyLmpzJy4uLgorVW5ibGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1
YXRpb25zLi4uCitFdmFsdWF0aW5nICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXIoMiknLi4uCitQQVNTOiBTaG91bGQgY2hhbmdl
IHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJl
YWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1c2Ug
aW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9G
YWxzZV9Jbm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXInLgorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnMuVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50Q29uZGl0aW9uLlRy
dWUKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlIiknLi4uCitCbGFja2JveGluZyAndW5ibGFj
a2JveGJyZWFrcG9pbnRldmFsdWF0aW9uc19icmVha3BvaW50Y29uZGl0aW9uX3RydWVfaW5uZXIu
anMnLi4uCitTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzJy4uLgorVW5ibGFja2JveGlu
ZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4uCitFdmFsdWF0aW5nICdVbmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlcigyKScuLi4KKwor
UEFVU0VEOiAnQmxhY2tib3hlZFNjcmlwdCcgYXQgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyOjM6NCcuCit7CisgICJvcmlnaW5h
bFJlYXNvbiI6ICJCcmVha3BvaW50IiwKKyAgIm9yaWdpbmFsRGF0YSI6IHsKKyAgICAiYnJlYWtw
b2ludElkIjogIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRp
dGlvbl9UcnVlX0lubmVyLmpzOjI6MCIKKyAgfQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJlc3Vt
ZWQuCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyLmpzJwor
UEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXInLgorUEFTUzogU2hvdWxkIHBhdXNlIGlu
ICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1
ZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9ucy5VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFr
cG9pbnRBY3Rpb24uUGF1c2UKK0V2YWx1YXRpbmcgJ2NyZWF0ZVNjcmlwdHMoIlVuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZSIpJy4uLgorQmxhY2ti
b3hpbmcgJ3VuYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGFjdGlvbl9w
YXVzZV9pbm5lci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2ludCBpbiAnVW5ibGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyLmpzJy4uLgorVW5i
bGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4uCitFdmFsdWF0aW5nICdVbmJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXIoMikn
Li4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRTY3JpcHQnIGF0ICdVbmJsYWNrYm94QnJlYWtwb2lu
dEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXI6Mzo0Jy4KK3sKKyAgIm9y
aWdpbmFsUmVhc29uIjogIkJyZWFrcG9pbnQiLAorICAib3JpZ2luYWxEYXRhIjogeworICAgICJi
cmVha3BvaW50SWQiOiAiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX1BhdXNlX0lubmVyLmpzOjI6MCIKKyAgfQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJl
c3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lci5qcycK
K1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNl
IGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1
c2VfT3V0ZXInLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMuVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVh
a3BvaW50QWN0aW9uLkF1dG9Db250aW51ZQorRXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygiVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51
ZSIpJy4uLgorQmxhY2tib3hpbmcgJ3VuYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJl
YWtwb2ludGFjdGlvbl9hdXRvY29udGludWVfaW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFrcG9p
bnQgaW4gJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9B
dXRvQ29udGludWVfSW5uZXIuanMnLi4uCitVbmJsYWNrYm94aW5nIHByZWFrcG9pbmcgZXZhbHVh
dGlvbnMuLi4KK0V2YWx1YXRpbmcgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJl
YWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXIoMiknLi4uCitQQVNTOiBTaG91bGQgY2hh
bmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIuanMnCitQQVNTOiBTaG91bGQgbm90
IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fQXV0b0NvbnRpbnVlX0lubmVyJy4KK1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ1VuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVf
T3V0ZXInLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuc2V0QmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2lu
dENvbmRpdGlvbi5GYWxzZQorRXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZSIpJy4uLgorQmxhY2ti
b3hpbmcgJ2JsYWNrYm94YnJlYWtwb2ludGV2YWx1YXRpb25zX2JyZWFrcG9pbnRjb25kaXRpb25f
ZmFsc2VfaW5uZXIuanMnLi4uCitTZXR0aW5nIGJyZWFrcG9pbnQgaW4gJ0JsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5uZXIuanMnLi4uCitC
bGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4uCitFdmFsdWF0aW5nICdCbGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyKDIp
Jy4uLgorUEFTUzogU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyLmpzJwor
UEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lcicuCitQQVNTOiBTaG91bGQgbm90IHBhdXNl
IGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0Zh
bHNlX091dGVyJy4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLnNldEJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zLkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFr
cG9pbnRDb25kaXRpb24uVHJ1ZQorRXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygiQmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlIiknLi4uCitCbGFj
a2JveGluZyAnYmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGNvbmRpdGlv
bl90cnVlX2lubmVyLmpzJy4uLgorU2V0dGluZyBicmVha3BvaW50IGluICdCbGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXIuanMnLi4uCitC
bGFja2JveGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4uCitFdmFsdWF0aW5nICdCbGFja2Jv
eEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXIoMikn
Li4uCisKK1BBVVNFRDogJ0JsYWNrYm94ZWRTY3JpcHQnIGF0ICdCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXI6Mzo0Jy4KK3sKKyAgIm9y
aWdpbmFsUmVhc29uIjogIkJyZWFrcG9pbnQiLAorICAib3JpZ2luYWxEYXRhIjogeworICAgICJi
cmVha3BvaW50SWQiOiAiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENv
bmRpdGlvbl9UcnVlX0lubmVyLmpzOjI6MCIKKyAgfQorfQorUmVzdW1pbmcuLi4KK1BBU1M6IFJl
c3VtZWQuCitQQVNTOiBTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ0JsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlci5qcycK
K1BBU1M6IFNob3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
X0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lcicuCitQQVNTOiBTaG91bGQgcGF1c2UgaW4g
J0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9P
dXRlcicuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50
QWN0aW9uLlBhdXNlCitFdmFsdWF0aW5nICdjcmVhdGVTY3JpcHRzKCJCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlIiknLi4uCitCbGFja2JveGluZyAn
YmxhY2tib3hicmVha3BvaW50ZXZhbHVhdGlvbnNfYnJlYWtwb2ludGFjdGlvbl9wYXVzZV9pbm5l
ci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2ludCBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lci5qcycuLi4KK0JsYWNrYm94aW5nIHBy
ZWFrcG9pbmcgZXZhbHVhdGlvbnMuLi4KK0V2YWx1YXRpbmcgJ0JsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXIoMiknLi4uCisKK1BBVVNFRDog
J0JsYWNrYm94ZWRTY3JpcHQnIGF0ICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50QWN0aW9uX1BhdXNlX091dGVyOjM6NCcuCit7CisgICJvcmlnaW5hbFJlYXNvbiI6ICJC
cmVha3BvaW50IiwKKyAgIm9yaWdpbmFsRGF0YSI6IHsKKyAgICAiYnJlYWtwb2ludElkIjogIkJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfSW5uZXIu
anM6MjowIgorICB9Cit9CitSZXN1bWluZy4uLgorUEFTUzogUmVzdW1lZC4KK1BBU1M6IFNob3Vs
ZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlci5qcycKK1BBU1M6IFNob3VsZCBub3QgcGF1
c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1
c2VfSW5uZXInLgorUEFTUzogU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcicuCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CbGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLkF1dG9Db250aW51ZQor
RXZhbHVhdGluZyAnY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWUiKScuLi4KK0JsYWNrYm94aW5nICdibGFja2Jv
eGJyZWFrcG9pbnRldmFsdWF0aW9uc19icmVha3BvaW50YWN0aW9uX2F1dG9jb250aW51ZV9pbm5l
ci5qcycuLi4KK1NldHRpbmcgYnJlYWtwb2ludCBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXIuanMnLi4uCitCbGFja2Jv
eGluZyBwcmVha3BvaW5nIGV2YWx1YXRpb25zLi4uCitFdmFsdWF0aW5nICdCbGFja2JveEJyZWFr
cG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcigyKScu
Li4KK1BBU1M6IFNob3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnQmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXIuanMn
CitQQVNTOiBTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lcicuCitQQVNTOiBTaG91bGQgbm90
IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9u
X0F1dG9Db250aW51ZV9PdXRlcicuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDJhZGIwMmE4N2UwZDJiMzM2YWNiODA3MTJkYzQwMTcxZDFlYWFh
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5odG1sCkBAIC0wLDAgKzEsMzE5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGNyZWF0ZVNjcmlwdHMoaWQpIHsKKyAgICBldmFsKAorYAord2luZG93LiR7
aWR9X0lubmVyID0gZnVuY3Rpb24gJHtpZH1fSW5uZXIoeCkgeworICAgIHJldHVybiB4ICogeDsK
K307CisvLyMgc291cmNlVVJMPSR7aWR9X0lubmVyLmpzCitgCisgICAgKTsKKworICAgIGV2YWwo
CitgCit3aW5kb3cuJHtpZH1fT3V0ZXIgPSBmdW5jdGlvbiAke2lkfV9PdXRlcih4KSB7CisgICAg
bGV0IGlubmVyUmVzdWx0ID0gJHtpZH1fSW5uZXIoeCk7CisgICAgcmV0dXJuIGlubmVyUmVzdWx0
ICogeDsKK307CisvLyMgc291cmNlVVJMPSR7aWR9X091dGVyLmpzCitgCisgICAgKTsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgUHJvdG9jb2xUZXN0LmRlYnVnKCk7CisgICAgbGV0IHN1
aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVnZ2VyLnNldEJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zIik7CisKKyAgICBsZXQgc291cmNlVVJMUmVnRXhwUXVlcmll
cyA9IG5ldyBNYXA7CisgICAgbGV0IHBhdXNlZEZ1bmN0aW9uTmFtZXMgPSBbXTsKKworICAgIElu
c3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisgICAg
SW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRzQWN0
aXZlIiwge2FjdGl2ZTogdHJ1ZX0pOworCisgICAgSW5zcGVjdG9yUHJvdG9jb2wuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAg
ICAgbGV0IHNvdXJjZVVSTCA9IG1lc3NhZ2UucGFyYW1zLnNvdXJjZVVSTDsKKyAgICAgICAgZm9y
IChsZXQgW3JlZ0V4cCwgY2FsbGJhY2tdIG9mIHNvdXJjZVVSTFJlZ0V4cFF1ZXJpZXMpIHsKKyAg
ICAgICAgICAgIGlmIChyZWdFeHAudGVzdChzb3VyY2VVUkwpKSB7CisgICAgICAgICAgICAgICAg
c291cmNlVVJMUmVnRXhwUXVlcmllcy5kZWxldGUocmVnRXhwKTsKKyAgICAgICAgICAgICAgICBj
YWxsYmFjayhzb3VyY2VVUkwpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH07CisK
KyAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0g
ZnVuY3Rpb24obWVzc2FnZSkgeworICAgICAgICBQcm90b2NvbFRlc3QubmV3bGluZSgpOworCisg
ICAgICAgIGxldCB0b3BDYWxsRnJhbWUgPSBtZXNzYWdlLnBhcmFtcy5jYWxsRnJhbWVzWzBdOwor
ICAgICAgICBsZXQgZnVuY3Rpb25OYW1lID0gdG9wQ2FsbEZyYW1lLmZ1bmN0aW9uTmFtZTsKKyAg
ICAgICAgaWYgKGZ1bmN0aW9uTmFtZSAhPT0gImdsb2JhbCBjb2RlIikgeworICAgICAgICAgICAg
UHJvdG9jb2xUZXN0LmxvZyhgUEFVU0VEOiAnJHttZXNzYWdlLnBhcmFtcy5yZWFzb259JyBhdCAn
JHtmdW5jdGlvbk5hbWV9OiR7dG9wQ2FsbEZyYW1lLmxvY2F0aW9uLmxpbmVOdW1iZXJ9OiR7dG9w
Q2FsbEZyYW1lLmxvY2F0aW9uLmNvbHVtbk51bWJlcn0nLmApOworICAgICAgICAgICAgaWYgKG1l
c3NhZ2UucGFyYW1zLmRhdGEpCisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0Lmpzb24obWVz
c2FnZS5wYXJhbXMuZGF0YSk7CisgICAgICAgICAgICBwYXVzZWRGdW5jdGlvbk5hbWVzLnB1c2go
ZnVuY3Rpb25OYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIFByb3RvY29sVGVzdC5sb2coIlJl
c3VtaW5nLi4uIik7CisgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRDb21tYW5kKGBEZWJ1
Z2dlci5yZXN1bWVgLCB7fSwgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcik7CisgICAg
fTsKKworICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdnZXIucmVzdW1l
ZCJdID0gZnVuY3Rpb24obWVzc2FnZSkgeworICAgICAgICBQcm90b2NvbFRlc3QucGFzcygiUmVz
dW1lZC4iKTsKKyAgICB9OworCisgICAgYXN5bmMgZnVuY3Rpb24gc2V0QmxhY2tib3godXJsLCBv
cHRpb25zID0ge30pIHsKKyAgICAgICAgaWYgKCFvcHRpb25zLmNhc2VTZW5zaXRpdmUpCisgICAg
ICAgICAgICB1cmwgPSB1cmwudG9Mb3dlckNhc2UoKTsKKworICAgICAgICBQcm90b2NvbFRlc3Qu
bG9nKGBCbGFja2JveGluZyAke29wdGlvbnMuY2FzZVNlbnNpdGl2ZSA/ICIoY2FzZSBzZW5zaXRp
dmUpICIgOiAiIn0ke29wdGlvbnMuaXNSZWdleCA/ICIocmVnZXgpICIgOiAiIn0nJHt1cmx9Jy4u
LmApOworICAgICAgICBhd2FpdCBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdENvbW1hbmQoeworICAg
ICAgICAgICAgbWV0aG9kOiAiRGVidWdnZXIuc2V0U2hvdWxkQmxhY2tib3hVUkwiLAorICAgICAg
ICAgICAgcGFyYW1zOiB7dXJsLCBzaG91bGRCbGFja2JveDogdHJ1ZSwgLi4ub3B0aW9uc30sCisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIHNldEJyZWFrcG9pbnQodXJs
LCBsaW5lTnVtYmVyLCBvcHRpb25zKSB7CisgICAgICAgIFByb3RvY29sVGVzdC5sb2coYFNldHRp
bmcgYnJlYWtwb2ludCBpbiAnJHt1cmx9Jy4uLmApOworICAgICAgICBhd2FpdCBJbnNwZWN0b3JQ
cm90b2NvbC5hd2FpdENvbW1hbmQoeworICAgICAgICAgICAgbWV0aG9kOiAiRGVidWdnZXIuc2V0
QnJlYWtwb2ludEJ5VXJsIiwKKyAgICAgICAgICAgIHBhcmFtczoge3VybCwgbGluZU51bWJlciwg
b3B0aW9uc30sCisgICAgICAgIH0pOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9uIHNldEJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25z
KSB7CisgICAgICAgIFByb3RvY29sVGVzdC5sb2coYCR7YmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnMgPyAiQmxhY2tib3hpbmciIDogIlVuYmxhY2tib3hpbmcifSBwcmVha3BvaW5nIGV2YWx1
YXRpb25zLi4uYCk7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdENvbW1h
bmQoeworICAgICAgICAgICAgbWV0aG9kOiAiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnMiLAorICAgICAgICAgICAgcGFyYW1zOiB7YmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnN9LAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBsaXN0
ZW5Gb3JTb3VyY2VQYXJzZWQoc291cmNlVVJMUmVnRXhwKSB7CisgICAgICAgIHJldHVybiBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICBzb3VyY2VVUkxSZWdF
eHBRdWVyaWVzLnNldChzb3VyY2VVUkxSZWdFeHAsIHJlc29sdmUpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBldmFsdWF0ZShleHByZXNzaW9uKSB7CisgICAgICAg
IFByb3RvY29sVGVzdC5sb2coYEV2YWx1YXRpbmcgJyR7ZXhwcmVzc2lvbn0nLi4uYCk7CisgICAg
ICAgIHJldHVybiBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdENvbW1hbmQoeworICAgICAgICAgICAg
bWV0aG9kOiAiUnVudGltZS5ldmFsdWF0ZSIsCisgICAgICAgICAgICBwYXJhbXM6IHtleHByZXNz
aW9ufSwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAg
ICAgICBuYW1lOiAiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50Q29uZGl0aW9uLkZhbHNlIiwK
KyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBbaW5uZXJTb3VyY2VVUkws
IG91dGVyU291cmNlVVJMXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBs
aXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJl
YWtwb2ludENvbmRpdGlvbl9GYWxzZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAgICAgbGlz
dGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGV2YWx1
YXRlKGBjcmVhdGVTY3JpcHRzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFr
cG9pbnRDb25kaXRpb25fRmFsc2UiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAg
IGF3YWl0IHNldEJsYWNrYm94KGlubmVyU291cmNlVVJMKTsKKyAgICAgICAgICAgIGF3YWl0IHNl
dEJyZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAgICAgICAgICAgICBjb25kaXRp
b246ICIhKHggPSAzKSIsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJs
YWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKGZhbHNlKTsKKworICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IGF3YWl0IGV2YWx1YXRlKGBVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLmNoZWNrRm9yRXJyb3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVz
dC5leHBlY3RFcXVhbChyZXN1bHQucmVzdWx0LnZhbHVlLCAoMyAqIDMpICogMiwgIlNob3VsZCBj
aGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lubmVyLmpzJyIpOworCisgICAgICAgICAgICBQ
cm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiVW5i
bGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX0lu
bmVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5uZXInLiIpOworICAgICAgICAgICAgUHJv
dG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRl
ciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50Q29uZGl0aW9uX0ZhbHNlX091dGVyJy4iKTsKKyAgICAgICAgfSwKKyAgICB9
KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNl
dEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnMuQnJlYWtwb2ludENvbmRpdGlvbi5UcnVlIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsK
KyAgICAgICAgICAgIGxldCBbaW5uZXJTb3VyY2VVUkwsIG91dGVyU291cmNlVVJMXSA9IGF3YWl0
IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL1Vu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lu
bmVyXC5qcyQvKSwKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL1VuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVy
XC5qcyQvKSwKKyAgICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWUiKWApLAor
ICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94KGlubmVyU291
cmNlVVJMKTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJyZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkws
IDIsIHsKKyAgICAgICAgICAgICAgICBjb25kaXRpb246ICIoeCA9IDMpIiwKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMo
ZmFsc2UpOworCisgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUoYFVuYmxh
Y2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVy
KDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9yKHJlc3Vs
dCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJlc3VsdC52
YWx1ZSwgKDMgKiAzKSAqIDIsICJTaG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ1Vu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lu
bmVyLmpzJyIpOworCisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2Vk
RnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19C
cmVha3BvaW50Q29uZGl0aW9uX1RydWVfSW5uZXIiKSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ1Vu
YmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lu
bmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUcnVlKHBhdXNlZEZ1bmN0
aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludENvbmRpdGlvbl9UcnVlX091dGVyIiksICJTaG91bGQgcGF1c2UgaW4gJ1VuYmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyJy4iKTsK
KworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50QWN0aW9uLlBhdXNlIiwKKyAgICAg
ICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBbaW5uZXJTb3VyY2VVUkwsIG91dGVy
U291cmNlVVJMXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBsaXN0ZW5G
b3JTb3VyY2VQYXJzZWQoL1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dEFjdGlvbl9QYXVzZV9Jbm5lclwuanMkLyksCisgICAgICAgICAgICAgICAgbGlzdGVuRm9yU291
cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rp
b25fUGF1c2VfT3V0ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAgIGV2YWx1YXRlKGBjcmVhdGVT
Y3JpcHRzKCJVbmJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25f
UGF1c2UiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNr
Ym94KGlubmVyU291cmNlVVJMKTsKKyAgICAgICAgICAgIGF3YWl0IHNldEJyZWFrcG9pbnQoaW5u
ZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAgICAgICAgICAgICBhY3Rpb25zOiBbCisgICAgICAgICAg
ICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAieCA9IDMifSwKKyAgICAgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBhd2FpdCBzZXRCbGFja2JveEJy
ZWFrcG9pbnRFdmFsdWF0aW9ucyhmYWxzZSk7CisKKyAgICAgICAgICAgIGxldCByZXN1bHQgPSBh
d2FpdCBldmFsdWF0ZShgVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX1BhdXNlX091dGVyKDIpYCk7CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5j
aGVja0ZvckVycm9yKHJlc3VsdCk7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1
YWwocmVzdWx0LnJlc3VsdC52YWx1ZSwgKDMgKiAzKSAqIDIsICJTaG91bGQgY2hhbmdlIHZhbHVl
IG9mICd4JyBpbnNpZGUgJ1VuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2lu
dEFjdGlvbl9QYXVzZV9Jbm5lci5qcyciKTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4
cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2tib3hCcmVha3Bv
aW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lciIpLCAiU2hvdWxkIG5v
dCBwYXVzZSBpbiAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0
aW9uX1BhdXNlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUcnVl
KHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBp
biAnVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNl
X091dGVyJy4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zLlVuYmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2ludEFjdGlvbi5BdXRv
Q29udGludWUiLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IFtpbm5l
clNvdXJjZVVSTCwgb3V0ZXJTb3VyY2VVUkxdID0gYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAg
ICAgICAgICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvVW5ibGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lclwuanMkLyksCisgICAg
ICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9VbmJsYWNrYm94QnJlYWtwb2ludEV2
YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX091dGVyXC5qcyQvKSwKKyAg
ICAgICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiVW5ibGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZSIpYCksCisgICAgICAg
ICAgICBdKTsKKworICAgICAgICAgICAgYXdhaXQgc2V0QmxhY2tib3goaW5uZXJTb3VyY2VVUkwp
OworICAgICAgICAgICAgYXdhaXQgc2V0QnJlYWtwb2ludChpbm5lclNvdXJjZVVSTCwgMiwgewor
ICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsKKyAgICAgICAgICAgICAgICAgICAge3R5cGU6ICJl
dmFsdWF0ZSIsIGRhdGE6ICJ4ID0gMyJ9LAorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgYXV0b0NvbnRpbnVlOiB0cnVlLAorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBh
d2FpdCBzZXRCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucyhmYWxzZSk7CisKKyAgICAgICAg
ICAgIGxldCByZXN1bHQgPSBhd2FpdCBldmFsdWF0ZShgVW5ibGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcigyKWApOworICAgICAg
ICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAgICAgICAg
ICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgzICogMykg
KiAyLCAiU2hvdWxkIGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdVbmJsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyLmpzJyIp
OworCisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25O
YW1lcy5pbmNsdWRlcygiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
QWN0aW9uX0F1dG9Db250aW51ZV9Jbm5lciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnVW5ibGFj
a2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9J
bm5lcicuIik7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVu
Y3Rpb25OYW1lcy5pbmNsdWRlcygiVW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVh
a3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAn
VW5ibGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250
aW51ZV9PdXRlcicuIik7CisgICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEZWJ1Z2dlci5zZXRCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9ucy5CbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9ucy5CcmVha3BvaW50Q29uZGl0aW9u
LkZhbHNlIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBbaW5uZXJT
b3VyY2VVUkwsIG91dGVyU291cmNlVVJMXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAg
ICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5uZXJcLmpzJC8pLAorICAgICAgICAgICAg
ICAgIGxpc3RlbkZvclNvdXJjZVBhcnNlZCgvQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlclwuanMkLyksCisgICAgICAgICAgICAgICAg
ZXZhbHVhdGUoYGNyZWF0ZVNjcmlwdHMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fRmFsc2UiKWApLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAg
ICAgIGF3YWl0IHNldEJsYWNrYm94KGlubmVyU291cmNlVVJMKTsKKyAgICAgICAgICAgIGF3YWl0
IHNldEJyZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAgICAgICAgICAgICBjb25k
aXRpb246ICIhKHggPSAzKSIsCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGF3YWl0IHNl
dEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zKHRydWUpOworCisgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gYXdhaXQgZXZhbHVhdGUoYEJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLmNoZWNrRm9yRXJyb3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3RvY29sVGVz
dC5leHBlY3RFcXVhbChyZXN1bHQucmVzdWx0LnZhbHVlLCAoMiAqIDIpICogMywgIlNob3VsZCBj
aGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludENvbmRpdGlvbl9GYWxzZV9PdXRlci5qcyciKTsKKworICAgICAgICAgICAgUHJv
dG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIkJsYWNr
Ym94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5uZXIi
KSwgIlNob3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0Jy
ZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfSW5uZXInLiIpOworICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIkJsYWNrYm94QnJl
YWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fRmFsc2VfT3V0ZXIiKSwgIlNo
b3VsZCBub3QgcGF1c2UgaW4gJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9p
bnRDb25kaXRpb25fRmFsc2VfT3V0ZXInLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuc2V0QmxhY2tib3hC
cmVha3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtw
b2ludENvbmRpdGlvbi5UcnVlIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAg
IGxldCBbaW5uZXJTb3VyY2VVUkwsIG91dGVyU291cmNlVVJMXSA9IGF3YWl0IFByb21pc2UuYWxs
KFsKKyAgICAgICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL0JsYWNrYm94QnJlYWtw
b2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9Jbm5lclwuanMkLyksCisg
ICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWVfT3V0ZXJcLmpzJC8pLAorICAgICAg
ICAgICAgICAgIGV2YWx1YXRlKGBjcmVhdGVTY3JpcHRzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFs
dWF0aW9uc19CcmVha3BvaW50Q29uZGl0aW9uX1RydWUiKWApLAorICAgICAgICAgICAgXSk7CisK
KyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94KGlubmVyU291cmNlVVJMKTsKKyAgICAgICAg
ICAgIGF3YWl0IHNldEJyZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAgICAgICAg
ICAgICBjb25kaXRpb246ICIoeCA9IDMpIiwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
YXdhaXQgc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnModHJ1ZSk7CisKKyAgICAgICAg
ICAgIGxldCByZXN1bHQgPSBhd2FpdCBldmFsdWF0ZShgQmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX091dGVyKDIpYCk7CisgICAgICAgICAgICBJ
bnNwZWN0b3JQcm90b2NvbC5jaGVja0ZvckVycm9yKHJlc3VsdCk7CisgICAgICAgICAgICBQcm90
b2NvbFRlc3QuZXhwZWN0RXF1YWwocmVzdWx0LnJlc3VsdC52YWx1ZSwgKDIgKiAyKSAqIDMsICJT
aG91bGQgY2hhbmdlIHZhbHVlIG9mICd4JyBpbnNpZGUgJ0JsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlci5qcyciKTsKKworICAgICAgICAg
ICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMo
IkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9J
bm5lciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludENvbmRpdGlvbl9UcnVlX0lubmVyJy4iKTsKKyAgICAgICAgICAgIFByb3Rv
Y29sVGVzdC5leHBlY3RUcnVlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5jbHVkZXMoIkJsYWNrYm94
QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRDb25kaXRpb25fVHJ1ZV9PdXRlciIpLCAi
U2hvdWxkIHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50
Q29uZGl0aW9uX1RydWVfT3V0ZXInLiIpOworICAgICAgICB9LAorICAgIH0pOworCisgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRGVidWdnZXIuc2V0QmxhY2tib3hCcmVh
a3BvaW50RXZhbHVhdGlvbnMuQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuQnJlYWtwb2lu
dEFjdGlvbi5QYXVzZSIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQg
W2lubmVyU291cmNlVVJMLCBvdXRlclNvdXJjZVVSTF0gPSBhd2FpdCBQcm9taXNlLmFsbChbCisg
ICAgICAgICAgICAgICAgbGlzdGVuRm9yU291cmNlUGFyc2VkKC9CbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX0lubmVyXC5qcyQvKSwKKyAgICAgICAg
ICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL0JsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRp
b25zX0JyZWFrcG9pbnRBY3Rpb25fUGF1c2VfT3V0ZXJcLmpzJC8pLAorICAgICAgICAgICAgICAg
IGV2YWx1YXRlKGBjcmVhdGVTY3JpcHRzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19C
cmVha3BvaW50QWN0aW9uX1BhdXNlIilgKSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAg
ICBhd2FpdCBzZXRCbGFja2JveChpbm5lclNvdXJjZVVSTCk7CisgICAgICAgICAgICBhd2FpdCBz
ZXRCcmVha3BvaW50KGlubmVyU291cmNlVVJMLCAyLCB7CisgICAgICAgICAgICAgICAgYWN0aW9u
czogWworICAgICAgICAgICAgICAgICAgICB7dHlwZTogImV2YWx1YXRlIiwgZGF0YTogInggPSAz
In0sCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXdh
aXQgc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnModHJ1ZSk7CisKKyAgICAgICAgICAg
IGxldCByZXN1bHQgPSBhd2FpdCBldmFsdWF0ZShgQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlv
bnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9PdXRlcigyKWApOworICAgICAgICAgICAgSW5zcGVj
dG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXN1bHQpOworICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmV4cGVjdEVxdWFsKHJlc3VsdC5yZXN1bHQudmFsdWUsICgyICogMikgKiAzLCAiU2hvdWxk
IGNoYW5nZSB2YWx1ZSBvZiAneCcgaW5zaWRlICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9u
c19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyLmpzJyIpOworCisgICAgICAgICAgICBQcm90
b2NvbFRlc3QuZXhwZWN0RmFsc2UocGF1c2VkRnVuY3Rpb25OYW1lcy5pbmNsdWRlcygiQmxhY2ti
b3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9QYXVzZV9Jbm5lciIpLCAi
U2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNfQnJlYWtw
b2ludEFjdGlvbl9QYXVzZV9Jbm5lcicuIik7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhw
ZWN0VHJ1ZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRF
dmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1BhdXNlX091dGVyIiksICJTaG91bGQgbm90IHBh
dXNlIGluICdCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX1Bh
dXNlX091dGVyJy4iKTsKKyAgICAgICAgfSwKKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLnNldEJsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zLkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zLkJyZWFrcG9pbnRBY3Rpb24uQXV0
b0NvbnRpbnVlIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBbaW5u
ZXJTb3VyY2VVUkwsIG91dGVyU291cmNlVVJMXSA9IGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAg
ICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL0JsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX0lubmVyXC5qcyQvKSwKKyAgICAg
ICAgICAgICAgICBsaXN0ZW5Gb3JTb3VyY2VQYXJzZWQoL0JsYWNrYm94QnJlYWtwb2ludEV2YWx1
YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0b0NvbnRpbnVlX091dGVyXC5qcyQvKSwKKyAgICAg
ICAgICAgICAgICBldmFsdWF0ZShgY3JlYXRlU2NyaXB0cygiQmxhY2tib3hCcmVha3BvaW50RXZh
bHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWUiKWApLAorICAgICAgICAgICAg
XSk7CisKKyAgICAgICAgICAgIGF3YWl0IHNldEJsYWNrYm94KGlubmVyU291cmNlVVJMKTsKKyAg
ICAgICAgICAgIGF3YWl0IHNldEJyZWFrcG9pbnQoaW5uZXJTb3VyY2VVUkwsIDIsIHsKKyAgICAg
ICAgICAgICAgICBhY3Rpb25zOiBbCisgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiZXZhbHVh
dGUiLCBkYXRhOiAieCA9IDMifSwKKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAg
IGF1dG9Db250aW51ZTogdHJ1ZSwKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXdhaXQg
c2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnModHJ1ZSk7CisKKyAgICAgICAgICAgIGxl
dCByZXN1bHQgPSBhd2FpdCBldmFsdWF0ZShgQmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnNf
QnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXIoMilgKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclByb3RvY29sLmNoZWNrRm9yRXJyb3IocmVzdWx0KTsKKyAgICAgICAgICAgIFByb3Rv
Y29sVGVzdC5leHBlY3RFcXVhbChyZXN1bHQucmVzdWx0LnZhbHVlLCAoMiAqIDIpICogMywgIlNo
b3VsZCBjaGFuZ2UgdmFsdWUgb2YgJ3gnIGluc2lkZSAnQmxhY2tib3hCcmVha3BvaW50RXZhbHVh
dGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfT3V0ZXIuanMnIik7CisKKyAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RGYWxzZShwYXVzZWRGdW5jdGlvbk5hbWVzLmluY2x1
ZGVzKCJCbGFja2JveEJyZWFrcG9pbnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9D
b250aW51ZV9Jbm5lciIpLCAiU2hvdWxkIG5vdCBwYXVzZSBpbiAnQmxhY2tib3hCcmVha3BvaW50
RXZhbHVhdGlvbnNfQnJlYWtwb2ludEFjdGlvbl9BdXRvQ29udGludWVfSW5uZXInLiIpOworICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEZhbHNlKHBhdXNlZEZ1bmN0aW9uTmFtZXMuaW5j
bHVkZXMoIkJsYWNrYm94QnJlYWtwb2ludEV2YWx1YXRpb25zX0JyZWFrcG9pbnRBY3Rpb25fQXV0
b0NvbnRpbnVlX091dGVyIiksICJTaG91bGQgbm90IHBhdXNlIGluICdCbGFja2JveEJyZWFrcG9p
bnRFdmFsdWF0aW9uc19CcmVha3BvaW50QWN0aW9uX0F1dG9Db250aW51ZV9PdXRlcicuIik7Cisg
ICAgICAgIH0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVz
dHMgRGVidWdnZXIuc2V0QmxhY2tib3hCcmVha3BvaW50RXZhbHVhdGlvbnMuPC9wPgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>