<?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>231338</bug_id>
          
          <creation_ts>2021-10-06 16:26:38 -0700</creation_ts>
          <short_desc>[Cocoa] Web Inspector: provide a way for _WKInspectorExtension clients to be notified when the inspected page navigates</short_desc>
          <delta_ts>2021-10-15 17:17:08 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231847</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801407</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-06 16:26:38 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801408</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-06 16:27:33 -0700</bug_when>
    <thetext>&lt;rdar://71200338&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801724</commentid>
    <comment_count>2</comment_count>
      <attachid>440528</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-07 12:45:11 -0700</bug_when>
    <thetext>Created attachment 440528
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801749</commentid>
    <comment_count>3</comment_count>
      <attachid>440528</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-10-07 13:21:49 -0700</bug_when>
    <thetext>Comment on attachment 440528
Patch v1.0

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:38
&gt; +        // No need to set up this listener until at least one extension is registered.
&gt; +        this._mainFrameDidChangeListener = null;

I don&apos;t think you need to keep the event listener around here. See :81.

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:56
&gt; +            this._mainFrameDidChangeListener = WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._handleMainResourceDidChange, this);

Ditto :37-38

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:81
&gt; +            WI.Frame.removeEventListener(this._mainFrameDidChangeListener);

`removeEventListener` takes that same three parameters that `addEventListener` takes (e.g. `WI.Frame.removeEventListener(WI.Frame.Event.MainResourceDidChange, this._handleMainResourceDidChange, this)`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801752</commentid>
    <comment_count>4</comment_count>
      <attachid>440528</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-07 13:24:40 -0700</bug_when>
    <thetext>Comment on attachment 440528
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:56
&gt;&gt; +            this._mainFrameDidChangeListener = WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._handleMainResourceDidChange, this);
&gt; 
&gt; Ditto :37-38

There&apos;s no reason to save the return value as it&apos;s the same value as the 2nd `listener` argument that&apos;s passed in (i.e. `this._mainFrameDidChange` will be the same thing as `this._handleMainResourceDidChange`.  Instead, I&apos;d just have a `_didAddMainResourceDidChangeListener` boolean flag.

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:81
&gt;&gt; +            WI.Frame.removeEventListener(this._mainFrameDidChangeListener);
&gt; 
&gt; `removeEventListener` takes that same three parameters that `addEventListener` takes (e.g. `WI.Frame.removeEventListener(WI.Frame.Event.MainResourceDidChange, this._handleMainResourceDidChange, this)`)

Yeah you need all three.  There used to be a way to do `null, null, this` to remove all listeners for all events with `this` as the context, but we removed that when moving to using `WeakRef`.

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:278
&gt; +        InspectorFrontendHost.inspectedPageDidNavigate(WI.networkManager.mainFrame.url);

Thinking about this a bit more, it seems like more work to add/remove the event listener based on the presence of the extension.  Instead, why don&apos;t we just always listen and only call `InspectorFrontendHost.inspectedPageDidNavigate` if we know we have some (e.g. `this._extensionForExtensionIDMap.size`)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801865</commentid>
    <comment_count>5</comment_count>
      <attachid>440528</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-07 16:41:30 -0700</bug_when>
    <thetext>Comment on attachment 440528
Patch v1.0

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:278
&gt;&gt; +        InspectorFrontendHost.inspectedPageDidNavigate(WI.networkManager.mainFrame.url);
&gt; 
&gt; Thinking about this a bit more, it seems like more work to add/remove the event listener based on the presence of the extension.  Instead, why don&apos;t we just always listen and only call `InspectorFrontendHost.inspectedPageDidNavigate` if we know we have some (e.g. `this._extensionForExtensionIDMap.size`)?

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802082</commentid>
    <comment_count>6</comment_count>
      <attachid>440620</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-08 08:45:16 -0700</bug_when>
    <thetext>Created attachment 440620
Patch v1.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802165</commentid>
    <comment_count>7</comment_count>
      <attachid>440620</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-10-08 11:21:04 -0700</bug_when>
    <thetext>Comment on attachment 440620
Patch v1.1

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:37
&gt; +        this._mainFrameDidChangeListener = WI.Frame.addEventListener(WI.Frame.Event.MainResourceDidChange, this._handleMainResourceDidChange, this);

you don&apos;t need to create `this._mainFrameDidChangeListener` for reasons I described previously

&gt; Source/WebInspectorUI/UserInterface/Controllers/WebInspectorExtensionController.js:264
&gt; +        InspectorFrontendHost.inspectedPageDidNavigate(WI.networkManager.mainFrame.url);

NIT: It feels slightly odd to have this be so generically named and yet only used by `WI.WebInspectorExtensionController`.  How awful would it be to just remove these changes here and instead _always_ invoke this inside `WI._mainResourceDidChange` in `Source/WebInspectorUI/UserInterface/Base/Main.js` and then just let the extension code in the UIProcess handle whether or not to actually do things?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802331</commentid>
    <comment_count>8</comment_count>
      <attachid>440692</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2021-10-08 17:39:33 -0700</bug_when>
    <thetext>Created attachment 440692
Patch v1.1.1 (for landing)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802346</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-08 18:38:51 -0700</bug_when>
    <thetext>Committed r283857 (242735@main): &lt;https://commits.webkit.org/242735@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440692.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440528</attachid>
            <date>2021-10-07 12:45:11 -0700</date>
            <delta_ts>2021-10-08 08:45:15 -0700</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-231338-20211007124510.patch</filename>
            <type>text/plain</type>
            <size>34603</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhjN2VhNmVhNDQ4Nzg1
NmMzYjkzMDEzOWE1Y2ZkMTdlYTcxZmRlOC4uZjcxYTc3MmNlMTA2MjI4NzMyNWU1YTMzY2Y3MzI3
Nzk0N2MxNDk5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEwLTA2ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
cHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgbm90
aWZpZWQgd2hlbiB0aGUgaW5zcGVjdGVkIHBhZ2UgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzMzgKKyAgICAgICAgPHJkYXI6Ly83
MTIwMDMzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOZXcgQVBJIHRlc3Q6IFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuSW5zcGVjdGVkUGFn
ZU5hdmlnYXRlZENhbGxiYWNrcworCisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgbmV3IGV2ZW50
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6aW5zcGVjdGVkUGFnZURpZE5h
dmlnYXRlKToKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kSG9zdDo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKToKKwogMjAy
MS0xMC0wNCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIG1hY2NhdGFseXN0IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nCmluZGV4IGUxY2EzYTVjYThmN2JhMWI1M2I0MThmZmU2NTFhMDIxZTI0OTQ1YWYuLjZjYmM4
NGY4M2JkZGNkOTI5MGM4OTE0YTFjZjAzN2IwYmU3ODQ1ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEwLTA2ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogcHJvdmlkZSBhIHdheSBmb3Ig
X1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgbm90aWZpZWQgd2hlbiB0aGUgaW5z
cGVjdGVkIHBhZ2UgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzEzMzgKKyAgICAgICAgPHJkYXI6Ly83MTIwMDMzOD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXNzIGFsb25nIGFuIG9u
TmF2aWdhdGVkIGV2ZW50IHRvIEluc3BlY3RvckZyb250ZW5kSG9zdCB3aGVuIHRoZSBXSS5GcmFt
ZS5NYWluUmVzb3VyY2VEaWRDaGFuZ2UKKyAgICAgICAgZXZlbnQgZmlyZXMgYXQgYSBtYWluIGZy
YW1lIHRhcmdldC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5z
cGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdJLldlYkluc3BlY3RvckV4
dGVuc2lvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29u
dHJvbGxlci5wcm90b3R5cGUucmVnaXN0ZXJFeHRlbnNpb24pOgorICAgICAgICAoV0kuV2ViSW5z
cGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5wcm90b3R5cGUudW5yZWdpc3RlckV4dGVuc2lvbik6
CisgICAgICAgIERvIG5vdCBhZGQgdGhpcyBnbG9iYWwgbGlzdGVuZXIgdW5sZXNzIGF0IGxlYXN0
IG9uZSBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24KKyAgICAgICAgaXMgY3VycmVudGx5IHJlZ2lz
dGVyZWQuCisKKyAgICAgICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJv
dG90eXBlLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorCiAyMDIxLTEwLTA1ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBUYWJC
YXIgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIFdJLldlYkluc3BlY3RvckV4dGVuc2lvblRhYkNv
bnRlbnRWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmYjFjZjFkMjY1NzAwZTQ4MmE0OTM3MDgyNDczMTNjNjAy
YmNmOTYuLjk1MmM5MDgxM2ZhMWU0Njk0MGQzYjlmZGU2OGExMWE5MWE5YmYwNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMTAtMDYgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+
CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJ
bnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSBub3RpZmllZCB3aGVuIHRoZSBpbnNwZWN0
ZWQgcGFnZSBuYXZpZ2F0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTMzOAorICAgICAgICA8cmRhcjovLzcxMjAwMzM4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgYSBu
ZXcgZXZlbnQgdG8gcGFzcyBmcm9tIFdlYkluc3BlY3RvclVJIG91dCB0byBfV0tJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9y
RXh0ZW5zaW9uQ2xpZW50Lmg6CisgICAgICAgIChBUEk6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVu
dDo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5t
bToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudDo6aW5zcGVjdGVkUGFnZURpZE5hdmln
YXRlKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eTo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKToKKyAgICAgICAgQ2FsbCB0aGUg
ZGVsZWdhdGUgbWV0aG9kIGZvciBhbGwgX1dLSW5zcGVjdG9yRXh0ZW5zaW9ucyBhc3NvY2lhdGVk
IHdpdGggdGhpcworICAgICAgICBpZDxfV0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Pi4gQ2xpZW50
cyBjYW4gbWFwIGZyb20gZXh0ZW5zaW9uIHRvIGluc3BlY3RvciBpZiBuZWVkZWQuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZSk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSk6CisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSk6CisKIDIwMjEt
MTAtMDQgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBWb3Ji
aXMgZGVjb2RlciBjYW4ndCBiZSBpbnN0YW50aWF0ZWQgLSBmb2xsb3cgdXAgb24gQnVnIDIzMDc0
MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuaAppbmRleCA3ZWZlYjFmNzgzODcwNjU5YTQ5NGE2NjMxNTZiYTNlMjQxZTcxOTdlLi4xMWIz
NTFlODUzNjcyOGMxYTQ2NDM3NmUzYTg5ZWQzYTcxOGZiMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaApAQCAtMTIyLDYgKzEy
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNXZWJFeHRlbnNpb25zKCkg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25U
YWJJRCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IElu
c3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikg
eyB9CisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBVUkwm
KSB7IH0KICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNlbmRNZXNz
YWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMGJmMWJkNzM2NDczNjQ2
ODc3YTEwMzM4YTQyNDFlYzYwYTI2NDFiYi4uMjE4ZGY2YTE5MTEyOTQ4MTUzYTFkYmY0OTVlZjU1
ZWEwZjFlNmY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAKQEAgLTcwNyw2ICs3MDcsMTQgQEAgdm9pZCBJbnNwZWN0b3JGcm9u
dGVuZEhvc3Q6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwg
Y29uc3QKICAgICBtX2NsaWVudC0+ZGlkSGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0
ZW5zaW9uVGFiSUQpOwogfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6aW5zcGVjdGVk
UGFnZURpZE5hdmlnYXRlKGNvbnN0IFN0cmluZyYgbmV3VVJMU3RyaW5nKQoreworICAgIGlmICgh
bV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2NsaWVudC0+aW5zcGVjdGVk
UGFnZURpZE5hdmlnYXRlKHsgVVJMKCksIG5ld1VSTFN0cmluZyB9KTsKK30KKwogRXhjZXB0aW9u
T3I8SlNDOjpKU1ZhbHVlPiBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmV2YWx1YXRlU2NyaXB0SW5F
eHRlbnNpb25UYWIoSFRNTElGcmFtZUVsZW1lbnQmIGV4dGVuc2lvbkZyYW1lRWxlbWVudCwgY29u
c3QgU3RyaW5nJiBzY3JpcHRTb3VyY2UpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gZXh0ZW5zaW9u
RnJhbWVFbGVtZW50LmNvbnRlbnRGcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDE2MjI2YWEyYmJjZGQwNWNiNjcwMjUz
MWQwMzNiODJlODY0MDgzOGYuLjdiM2JhYWQ3MWYwZWZlOWNlNjZhMmZlNjIxMzNjMDUxOWNkMWFi
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9F
WFRFTlNJT05TKQogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBTdHJpbmcmIGV4
dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRhYklEKTsKICAgICB2b2lkIGRpZEhp
ZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBl
eHRlbnNpb25UYWJJRCk7CisgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3Qg
U3RyaW5nJiB1cmwpOwogICAgIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gZXZhbHVhdGVTY3Jp
cHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCYgZXh0ZW5zaW9uRnJhbWUsIGNvbnN0
IFN0cmluZyYgc2NyaXB0U291cmNlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCmluZGV4IDMyZDk3NDJiNDdjNjc5
YjdhZjM3MTVkZWUzOTE5ZTY2NzhlYzA3ZjguLjUwZTE0ZGRjMGZiMDIwOGVhZWNjMzZlZGE5ZjQ2
MTQ2MDUxZThhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuaWRsCkBAIC0xMDAsNiArMTAwLDcgQEAKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgYm9vbGVhbiBzdXBwb3J0c1dlYkV4dGVuc2lvbnM7CiAgICAgW0NvbmRpdGlvbmFsPUlO
U1BFQ1RPUl9FWFRFTlNJT05TXSB1bmRlZmluZWQgZGlkU2hvd0V4dGVuc2lvblRhYihET01TdHJp
bmcgZXh0ZW5zaW9uSUQsIERPTVN0cmluZyBleHRlbnNpb25UYWJJRCk7CiAgICAgW0NvbmRpdGlv
bmFsPUlOU1BFQ1RPUl9FWFRFTlNJT05TXSB1bmRlZmluZWQgZGlkSGlkZUV4dGVuc2lvblRhYihE
T01TdHJpbmcgZXh0ZW5zaW9uSUQsIERPTVN0cmluZyBleHRlbnNpb25UYWJJRCk7CisgICAgW0Nv
bmRpdGlvbmFsPUlOU1BFQ1RPUl9FWFRFTlNJT05TXSB1bmRlZmluZWQgaW5zcGVjdGVkUGFnZURp
ZE5hdmlnYXRlKERPTVN0cmluZyBuZXdVUkwpOwogICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1Jf
RVhURU5TSU9OU10gYW55IGV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoSFRNTElGcmFtZUVs
ZW1lbnQgZXh0ZW5zaW9uRnJhbWUsIERPTVN0cmluZyBzY3JpcHRTb3VyY2UpOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
V2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xs
ZXIuanMKaW5kZXggYzVmZDhjZDUxZGJjNjQyNjhkY2JkMWY4NWRmYzEzNGNhMmVjMjUxNy4uMDJi
ZTViODhlNzBlYTY4MTA0NThiMWRmZTA2MzYyMGFmMTUyNWJkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0
ZW5zaW9uQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzCkBAIC0z
Myw2ICszMyw5IEBAIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgPSBjbGFzcyBX
ZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyIGV4dGVuCiAgICAgICAgIHRoaXMuX2V4dGVu
c2lvblRhYkNvbnRlbnRWaWV3Rm9yRXh0ZW5zaW9uVGFiSURNYXAgPSBuZXcgTWFwOwogICAgICAg
ICB0aGlzLl90YWJJRHNGb3JFeHRlbnNpb25JRE1hcCA9IG5ldyBNdWx0aW1hcDsKICAgICAgICAg
dGhpcy5fbmV4dEV4dGVuc2lvblRhYklEID0gMTsKKworICAgICAgICAvLyBObyBuZWVkIHRvIHNl
dCB1cCB0aGlzIGxpc3RlbmVyIHVudGlsIGF0IGxlYXN0IG9uZSBleHRlbnNpb24gaXMgcmVnaXN0
ZXJlZC4KKyAgICAgICAgdGhpcy5fbWFpbkZyYW1lRGlkQ2hhbmdlTGlzdGVuZXIgPSBudWxsOwog
ICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtNDksNiArNTIsOSBAQCBXSS5XZWJJbnNwZWN0b3JF
eHRlbnNpb25Db250cm9sbGVyID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxl
ciBleHRlbgogICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJv
ckNvZGUuUmVnaXN0cmF0aW9uRmFpbGVkOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKCF0aGlz
Ll9tYWluRnJhbWVEaWRDaGFuZ2VMaXN0ZW5lcikKKyAgICAgICAgICAgIHRoaXMuX21haW5GcmFt
ZURpZENoYW5nZUxpc3RlbmVyID0gV0kuRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5F
dmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZU1haW5SZXNvdXJjZURpZENo
YW5nZSwgdGhpcyk7CisKICAgICAgICAgbGV0IGV4dGVuc2lvbiA9IG5ldyBXSS5XZWJJbnNwZWN0
b3JFeHRlbnNpb24oZXh0ZW5zaW9uSUQsIGRpc3BsYXlOYW1lKTsKICAgICAgICAgdGhpcy5fZXh0
ZW5zaW9uRm9yRXh0ZW5zaW9uSURNYXAuc2V0KGV4dGVuc2lvbklELCBleHRlbnNpb24pOwogCkBA
IC03MCw2ICs3NiwxMiBAQCBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyID0gY2xh
c3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciBleHRlbgogICAgICAgICAgICAgV0ku
dGFiQnJvd3Nlci5jbG9zZVRhYkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3LCB7c3VwcHJl
c3NBbmltYXRpb25zfSk7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBSZW1vdmUgbGlzdGVuZXJz
IHRoYXQgYXJlIHVubmVjZXNzYXJ5IHdoZW4gbm8gZXh0ZW5zaW9ucyBhcmUgcmVnaXN0ZXJlZC4K
KyAgICAgICAgaWYgKCF0aGlzLl9leHRlbnNpb25Gb3JFeHRlbnNpb25JRE1hcC5zaXplKSB7Cisg
ICAgICAgICAgICBXSS5GcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMuX21haW5GcmFtZURp
ZENoYW5nZUxpc3RlbmVyKTsKKyAgICAgICAgICAgIHRoaXMuX21haW5GcmFtZURpZENoYW5nZUxp
c3RlbmVyID0gbnVsbDsKKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuRXZlbnQuRXh0ZW5z
aW9uUmVtb3ZlZCwge2V4dGVuc2lvbn0pOwogICAgIH0KIApAQCAtMjU1LDYgKzI2NywxNiBAQCBX
SS5XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyID0gY2xhc3MgV2ViSW5zcGVjdG9yRXh0
ZW5zaW9uQ29udHJvbGxlciBleHRlbgogICAgICAgICAgICAgcmV0dXJuIHtlcnJvcjogZXJyb3Iu
bWVzc2FnZX07CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfaGFu
ZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVu
dC50YXJnZXQuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBJ
bnNwZWN0b3JGcm9udGVuZEhvc3QuaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKFdJLm5ldHdvcmtN
YW5hZ2VyLm1haW5GcmFtZS51cmwpOworICAgIH0KIH07CiAKIFdJLldlYkluc3BlY3RvckV4dGVu
c2lvbkNvbnRyb2xsZXIuRXZlbnQgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50LmgKaW5kZXggYWQ2MTkyZmE2
ODgxNDIxNTVhMGIzMjEyOGY3OTEyMzEzOGUxODgwMi4uM2FmODNiODJhMTMxOWI0NWRkYTZkOTYx
ZjVhNTg2ODBmNGRiNjM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUluc3BlY3RvckV4dGVuc2lvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaApAQCAtMzcsNiArMzcsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNw
ZWN0b3I6OkV4dGVuc2lvblRhYklEJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEhpZGVFeHRl
bnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgV1RGOjpVUkwmKSB7IH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaApp
bmRleCBlZmU4NDE0ZDFmMDgwZmYyNWE4NDE3NGNhM2Q4NjRiZmNkZDIxYjQ4Li41MGNiZGFlNzMx
ZWU4N2E1ZWZhNmQ4N2I3OThjNGUyNDU5N2EzYmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGUuaApAQCAtNTIsNiArNTIsMTIgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICAq
LwogLSAodm9pZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4
dGVuc2lvbiBkaWRIaWRlVGFiV2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICopdGFiSWRlbnRpZmll
cjsKIAorLyoqCisgKiBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIGluc3BlY3RlZCBwYWdlIGhh
cyBuYXZpZ2F0ZWQgdG8gYSBuZXcgVVJMLgorICogQHBhcmFtIHVybCBUaGUgbmV3IFVSTCBmb3Ig
dGhlIGluc3BlY3RlZCBwYWdlLgorICovCistICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dL
SW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZToo
TlNVUkwgKil1cmw7CisKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5z
aW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9J
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oCmluZGV4IDgxOTBlZTcyZWFmNjY5ZTllNTA3MDgx
NDQ5YjYwMDhiMGE5OTY2YjYuLjI3ZGU4MGVmMGUzNTU1ZmFiOTg5NGExMzIxYWExZjVhMTZjYmRh
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9J
bnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oCkBAIC01Niw2ICs1
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIEFQSTo6SW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50
CiAgICAgICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVu
c2lvblRhYklEJikgb3ZlcnJpZGU7CiAgICAgICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikgb3ZlcnJpZGU7CisgICAgICAgIHZvaWQg
aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpIG92ZXJyaWRlOwogCiAgICAgICAg
IEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlJiBtX2luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRl
OwogICAgIH07CkBAIC02Niw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IHsKICAgICAg
ICAgYm9vbCBpbnNwZWN0b3JFeHRlbnNpb25EaWRTaG93VGFiV2l0aElkZW50aWZpZXIgOiAxOwog
ICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkRpZEhpZGVUYWJXaXRoSWRlbnRpZmllciA6
IDE7CisgICAgICAgIGJvb2wgaW5zcGVjdG9yRXh0ZW5zaW9uSW5zcGVjdGVkUGFnZURpZE5hdmln
YXRlIDogMTsKICAgICB9IG1fZGVsZWdhdGVNZXRob2RzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCmluZGV4IDdlMGZiOThiNmYzZWZhNmVjODljOTRmOThm
NDdlZTQyNzg0Y2EyNGEuLmRjNjc3MDBkZDE2N2Y1ZmI0NGYyYmNhYTk3MGQ3MWQwZWQ1Y2FmOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNw
ZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KQEAgLTQxLDYgKzQx
LDcgQEAgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkRlbGVn
YXRlKF9XS0luc3BlY3RvckV4dGVuc2lvbiAqaW4KIHsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5p
bnNwZWN0b3JFeHRlbnNpb25EaWRTaG93VGFiV2l0aElkZW50aWZpZXIgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0b3JFeHRlbnNpb246ZGlkU2hvd1RhYldp
dGhJZGVudGlmaWVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVuc2lv
bkRpZEhpZGVUYWJXaXRoSWRlbnRpZmllciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKGluc3BlY3RvckV4dGVuc2lvbjpkaWRIaWRlVGFiV2l0aElkZW50aWZpZXI6KV07
CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRXh0ZW5zaW9uSW5zcGVjdGVkUGFnZURp
ZE5hdmlnYXRlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVj
dG9yRXh0ZW5zaW9uOmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZTopXTsKIAogICAgIGluc3BlY3Rv
ckV4dGVuc2lvbi0+X2V4dGVuc2lvbi0+c2V0Q2xpZW50KG1ha2VVbmlxdWVSZWY8SW5zcGVjdG9y
RXh0ZW5zaW9uQ2xpZW50PigqdGhpcykpOwogfQpAQCAtODUsNiArODYsMTggQEAgdm9pZCBJbnNw
ZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50OjpkaWRIaWRl
RXh0ZW5zaW9uVGFiKGMKICAgICBbZGVsZWdhdGUgaW5zcGVjdG9yRXh0ZW5zaW9uOm1faW5zcGVj
dG9yRXh0ZW5zaW9uRGVsZWdhdGUubV9pbnNwZWN0b3JFeHRlbnNpb24uZ2V0KCkuZ2V0KCkgZGlk
SGlkZVRhYldpdGhJZGVudGlmaWVyOmV4dGVuc2lvblRhYklEXTsKIH0KIAordm9pZCBJbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50OjppbnNwZWN0ZWRQ
YWdlRGlkTmF2aWdhdGUoY29uc3QgV1RGOjpVUkwmIG5ld1VSTCkKK3sKKyAgICBpZiAoIW1faW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRXh0ZW5z
aW9uSW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
JiBkZWxlZ2F0ZSA9IG1faW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubV9kZWxlZ2F0ZTsKKyAg
ICBpZiAoIWRlbGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBbZGVsZWdhdGUgaW5zcGVj
dG9yRXh0ZW5zaW9uOm1faW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubV9pbnNwZWN0b3JFeHRl
bnNpb24uZ2V0KCkuZ2V0KCkgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlOm5ld1VSTF07Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRF
TlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eS5jcHAKaW5kZXggMjg0MjQ0ZmZkMmRlZDI1MjEwZGE2NWE4ZjUxYmJlOWIwM2FkNjdiOC4uMWM2
NzAyZDBkYzhmMzBkY2IwOWVkOTU3NTQ1MzYyMjk5OGU1ZjYwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogCiAjaW5jbHVkZSAiQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiQVBJVVJMLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5LmgiCkBAIC0yNTUsNiArMjU2LDE3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHk6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yCiAg
ICAgZXh0ZW5zaW9uQ2xpZW50LT5kaWRIaWRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklEKTsK
IH0KIAordm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6aW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYgbmV3VVJMKQoreworICAgIGZvciAoYXV0byYg
ZXh0ZW5zaW9uIDogY29weVRvVmVjdG9yKG1fZXh0ZW5zaW9uQVBJT2JqZWN0TWFwLnZhbHVlcygp
KSkgeworICAgICAgICBhdXRvIGV4dGVuc2lvbkNsaWVudCA9IGV4dGVuc2lvbi0+Y2xpZW50KCk7
CisgICAgICAgIGlmICghZXh0ZW5zaW9uQ2xpZW50KQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgZXh0ZW5zaW9uQ2xpZW50LT5pbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUobmV3VVJM
KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxF
KElOU1BFQ1RPUl9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25D
b250cm9sbGVyUHJveHkuaAppbmRleCBiYjk4YTYzZGNmODk3ODViNjhhYWI3YWJhODgwZTVmYjQz
NzA1NDljLi5iYjA4OTEzZDNmZDNjOGZhMzdjZjNkNjcxMjk3MWE0ZWU5OTIxZDhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaApAQCAtNjgsNiAr
NjgsNyBAQCBwdWJsaWM6CiAgICAgLy8gV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkgSVBDIG1lc3NhZ2VzLgogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYp
OwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
bklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOworICAgIHZvaWQgaW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpOwogCiAgICAgLy8gTm90aWZpY2F0aW9ucy4K
ICAgICB2b2lkIGluc3BlY3RvckZyb250ZW5kTG9hZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
YjAyZmJiYTcyNmZiM2M1YWJlYmFmMjg2NzMwMmE4YzI3YTY1NDZhMi4uNjQzMzE0MzI0ZGQ1ZDJj
MTVmODMxY2IzNzI2NmFkODYxYjdiOGEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUs
NyBAQAogbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkg
ewogICAgIERpZFNob3dFeHRlbnNpb25UYWIoU3RyaW5nIGV4dGVuc2lvbklELCBTdHJpbmcgZXh0
ZW5zaW9uVGFiSUQpCiAgICAgRGlkSGlkZUV4dGVuc2lvblRhYihTdHJpbmcgZXh0ZW5zaW9uSUQs
IFN0cmluZyBleHRlbnNpb25UYWJJRCkKKyAgICBJbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoVVJM
IG5ld1VSTCkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5z
cGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVX
ZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggZWI4Y2Y4MmU5MWU0NzJmNGEzMmUxN2ZiNjNiM2JjNWU5
NGEyYjRjMi4uYzhhZDMxODY5NWQ5YWM1ZGRkZjJmOTFjYjIyMDU2ZTFjNjZiNmRiYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0
b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVX
ZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMDUsNiArMzA1LDE0IEBAIHZvaWQgUmVtb3RlV2ViSW5z
cGVjdG9yVUk6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25J
RCYgZXh0CiAKICAgICBtX2V4dGVuc2lvbkNvbnRyb2xsZXItPmRpZEhpZGVFeHRlbnNpb25UYWIo
ZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklEKTsKIH0KKwordm9pZCBSZW1vdGVXZWJJbnNwZWN0
b3JVSTo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYgbmV3VVJMKQoreworICAg
IGlmICghbV9leHRlbnNpb25Db250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2V4
dGVuc2lvbkNvbnRyb2xsZXItPmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShuZXdVUkwpOworfQog
I2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKIAogV2ViQ29yZTo6UGFnZSog
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmZyb250ZW5kUGFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKaW5k
ZXggZmQ0NWQyMTZjZTFhMWNkZDZjODQ3NThjYzc2NjhmZWMyYmZjN2Y2Yy4uMzZjNzAxMTNjZjRi
N2Y5MjliMTRhYWFjOWVkNDU3NDc2MWVkNTVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEy
Miw2ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c1dlYkV4dGVuc2lvbnMoKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpF
eHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25J
RCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBVUkwmKSBvdmVycmlkZTsKICNlbmRpZgog
CiAgICAgYm9vbCBjYW5TYXZlKCkgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcApp
bmRleCAxNzAzNTEwMjU4YTQ4NmUwMjNkMDgyOTlkYTkyNDAzZjBmNzRkZmY3Li5mYTdjY2Q5NDk3
OTYwNTMyZTJjMDQ5NzIzNDRkM2YzMWQ3OTNiNjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3OSw2ICsz
NzksMTQgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBT
dHJpbmcmIGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcKIAogICAgIG1fZXh0ZW5zaW9uQ29udHJv
bGxlci0+ZGlkSGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQpOwog
fQorCit2b2lkIFdlYkluc3BlY3RvclVJOjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3Qg
VVJMJiBuZXdVUkwpCit7CisgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+aW5zcGVjdGVkUGFnZURpZE5h
dmlnYXRlKG5ld1VSTCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05T
KQogCiB2b2lkIFdlYkluc3BlY3RvclVJOjpzaG93Q29uc29sZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKaW5kZXggZWM0OTY0
MzgyMjU0MGM3OGUyYmIzM2U3N2Q5NzNlZTliOTEyZDViYS4uZjZlZDcwNGNmYWRjZTA5NGUwOTUx
OGU1NmY5OTYxYWNhMTdlMjQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaApAQCAtMTU2LDYgKzE1Niw3IEBAIHB1YmxpYzoK
ICAgICBib29sIHN1cHBvcnRzV2ViRXh0ZW5zaW9ucygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlk
U2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkSGlkZUV4dGVu
c2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpF
eHRlbnNpb25UYWJJRCYpIG92ZXJyaWRlOworICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmln
YXRlKGNvbnN0IFVSTCYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICB2b2lkIHNlbmRNZXNzYWdl
VG9CYWNrZW5kKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDk3NDdlNGMwYjZjZWE5YWZiYjZhY2NlMzBm
NjViYmVjOTIyZTcyYjEuLjk5OGQxOGUwNThlNDAzNjhmZDQ3YTA2NmRhNDRmNmE4NzNjZGU0MjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKQEAgLTQz
Nyw2ICs0MzcsMTEgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6OmRp
ZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgSW5zcGVjdG9yOjpFeHQKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6RGlkSGlkZUV4dGVuc2lvblRhYiB7
IGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCB9LCBtX2luc3BlY3RvclBhZ2VJZGVudGlmaWVy
KTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6Omluc3BlY3Rl
ZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBVUkwmIG5ld1VSTCkKK3sKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6SW5zcGVjdGVkUGFnZURpZE5hdmln
YXRlIHsgbmV3VVJMIH0sIG1faW5zcGVjdG9yUGFnZUlkZW50aWZpZXIpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCmluZGV4IGU1NDU2MjY5
NzAxOTM4MWJkNTZjNTAwMzU5Yzg5NDllOTY4ZDA1NTEuLjZlOTZmMDhhMGNjMjM0ZmU3NDA5YjM1
ZWNlZTAyYzRiNDJhZjZhOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXIuaApAQCAtNzYsNiArNzYsNyBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGJhY2tzIGZyb20g
dGhlIGZyb250ZW5kLgogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOwogICAg
IHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwg
Y29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpOworICAgIHZvaWQgaW5zcGVjdGVkUGFn
ZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpOwogCiBwcml2YXRlOgogICAgIEpTQzo6SlNPYmplY3Qq
IHVud3JhcEV2YWx1YXRpb25SZXN1bHRBc09iamVjdChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXI6OkV2YWx1YXRpb25SZXN1bHQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU4OTAyZGU4ODVmNDUzNWNlOTVi
NTI1ZGU5MWIxNmUzOTc0MDdiYWIuLjNjZDg3MzFhNGI0OWE0ZDIxNTA4ZWI4NWNhNjZhYzFlZTRj
YTUwMmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMS0xMC0wNiAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4K
KworICAgICAgICBbQ29jb2FdIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYSB3YXkgZm9yIF9XS0lu
c3BlY3RvckV4dGVuc2lvbiBjbGllbnRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGluc3BlY3Rl
ZCBwYWdlIG5hdmlnYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxMzM4CisgICAgICAgIDxyZGFyOi8vNzEyMDAzMzg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdG8gdmVy
aWZ5IHRoYXQgdHJpZ2dlcmluZyBhIG5hdmlnYXRpb24gb24gdGhlIGluc3BlY3RlZCBXS1dlYlZp
ZXcKKyAgICAgICAgY2F1c2VzIHRoZSAtZXh0ZW5zaW9uOmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZTogbWV0aG9kIG9mIF9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlCisgICAgICAgIHRvIGZp
cmUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVj
dG9yRXh0ZW5zaW9uRGVsZWdhdGUubW06CisgICAgICAgIChyZXNldEdsb2JhbFN0YXRlKToKKyAg
ICAgICAgKC1bSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIGluc3BlY3RvckV4
dGVuc2lvbjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6XSk6CisgICAgICAgIChURVNUKToKKwog
MjAyMS0wOS0zMCAgQkogQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBXZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250ZW50VmlldyBzaG91bGQgbm90IHJl
bG9hZCBpdHMgaWZyYW1lIHdoZW4gZGV0YWNoZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MTQzNzRjZTY1MTliNWUwOTBjYzA5ODQ4NjMzYThmMmQxODZjYmUzMS4uZGQzMjQwZWVlNTliZTM1
OGU5ZDM1NWQxZDZmYTQ2OTFjODVhMDlkNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5
MCw2ICs4OTAsNyBAQAogCQk5NThCNzBFMTI2QzQ2RURDMDBCMjAyMkIgLyogTlNBdHRyaWJ1dGVk
U3RyaW5nV2ViS2l0QWRkaXRpb25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTU4QjcwRTAyNkM0NkVEQzAwQjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0
cmluZ1dlYktpdEFkZGl0aW9ucy5tbSAqLzsgfTsKIAkJOTVBNTI0OTUyNTgxQTEwRDAwNDYxRkU5
IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NUE1MjQ5NDI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhl
bWVDb2xvci5tbSAqLzsgfTsKIAkJOTVCNkIzQjcyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9j
dW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLzsgfTsKKwkJOTk2
RURDQ0IyNzBFNzBENzAwNkRGMTc1IC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy1wYWdlLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTk2RURDQ0EyNzBFNzBBQjAwNkRGMTc1IC8qIEluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy1wYWdl
Lmh0bWwgKi87IH07CiAJCTk5ODRGQUNDMUNGRkFGNjAwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0
SW5wdXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTg0RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovOyB9Owog
CQk5OTg0RkFDRTFDRkZCMDkwMDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNEMUNG
RkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi87IH07CiAJCTk5OTkxMDhCMUYz
OTNDOTYwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTk5OTEwOEExRjM5M0M4QjAwOEFENDU1IC8qIENvcHlpbmcubW0g
Ki87IH07CkBAIC0xNTc4LDYgKzE1NzksNyBAQAogCQkJCTJFRkYwNkNEMUQ4QTQyOUEwMDA0QkIz
MCAvKiBpbnB1dC1maWVsZC1pbi1zY3JvbGxhYmxlLWRvY3VtZW50Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQ0UzNTI0RkExQjE0NDM4OTAwMjhBN0M1IC8qIGlucHV0LWZvY3VzLWJs
dXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRTZEMEVFMzI0MjZCOTMyMDAyQUQ5
MDEgLyogaW5zZXJ0LXRleHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk5OTZFREND
QjI3MEU3MEQ3MDA2REYxNzUgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5OUUyODQ2ODI2Rjk0MTU0MDAwM0YxRkEgLyogSW5z
cGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTk5RTI4NDY2MjZGOTNEQjUwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0z
MHgzMC5wbmcgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMDc0OTk0NDIxRUE1MDM0QjAwMERB
NDREIC8qIGludmFsaWREZXZpY2VJREhhc2hTYWx0cyBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAg
LTI2MjQsNiArMjYyNiw3IEBACiAJCTk1OEI3MEUwMjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0dHJp
YnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dl
YlZpZXdUaGVtZUNvbG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tXZWJWaWV3VGhlbWVDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTVCNkIzQjYyNTFFQkYyRjAwRkM0MzgyIC8qIE1lZGlhRG9jdW1lbnQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYURvY3VtZW50Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5OTZFRENDQTI3MEU3MEFCMDA2REYxNzUgLyogSW5zcGVjdG9y
RXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJJbnNwZWN0b3JFeHRlbnNpb24t
YmFzaWMtcGFnZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0Ex
Q0ZGQUVFRTAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld1RleHRJbnB1dC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThDIC8qIGVkaXRhYmxl
LWJvZHkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJlZGl0YWJsZS1ib2R5Lmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTk5MTA4QTFGMzkzQzhCMDA4QUQ0
NTUgLyogQ29weWluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IENvcHlpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTEwLDYgKzQxMTMs
NyBAQAogCQkJCTkzQTI3NEExMjUyMTYzRDYwMEExQjZENCAvKiBJbmRleFVwZ3JhZGVXaXRoTXVs
dGlwbGVJbmRpY2VzLnNxbGl0ZTMgKi8sCiAJCQkJOTNBMjc0QTQyNTIyNDFEMDAwQTFCNkQ0IC8q
IEluZGV4VXBncmFkZVdpdGhNdWx0aXBsZUluZGljZXNIYXZlU2FtZUlELnNxbGl0ZTMgKi8sCiAJ
CQkJMkVGRjA2Q0MxRDhBNDI5MTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9sbGFibGUt
ZG9jdW1lbnQuaHRtbCAqLywKKwkJCQk5OTZFRENDQTI3MEU3MEFCMDA2REYxNzUgLyogSW5zcGVj
dG9yRXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCAqLywKIAkJCQk5OUUyODQ2NzI2Rjk0MTNCMDAw
M0YxRkEgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXRhYi5odG1sICovLAogCQkJCTk5RTI4
NDY1MjZGOTNENzYwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tVGFiSWNvbi0zMHgzMC5w
bmcgKi8sCiAJCQkJOTM3QTZDODgyNDM1N0JGMzAwQzNBNkIwIC8qIEtpbGxXZWJQcm9jZXNzV2l0
aE9wZW5Db25uZWN0aW9uLTEuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9u
LWJhc2ljLXBhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGY5Y2NiMDdiMzQ2ZGJhOTczNGUxNWIwYzYy
OGFhZWQ3ZDg3YmRmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5odG1sCkBAIC0wLDAg
KzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cis8L3NjcmlwdD4KKzxib2R5PgorPGgx
PlRoaXMgaXMgYSB0ZXN0IHBhZ2UuPC9oMT4KKzxwPk5vdGhpbmcgaW50ZXJlc3RpbmcgdG8gc2Vl
IGhlcmUsIG1vdmUgYWxvbmcuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCmluZGV4IDRiMzlmNTIxMTFjYzg4YTZhNzAyNjE0MzA4
ZjVhNzAxMGNiOWVmNjUuLmIzZWM0ODQ1ZGQwYmVlMWFlOTQzYjg4N2Q5NzE0NTBiMTNmZTMxMjcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNw
ZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KQEAgLTI4LDcgKzI4
LDkgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKICNpbXBvcnQgIlRlc3Qu
aCIKKyNpbXBvcnQgIlRlc3RDb2NvYS5oIgogI2ltcG9ydCAiVGVzdEluc3BlY3RvclVSTFNjaGVt
ZUhhbmRsZXIuaCIKKyNpbXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQg
IlV0aWxpdGllcy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgpAQCAtNDIsMTYgKzQ0LDE5IEBACiBz
dGF0aWMgYm9vbCBkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCA9IGZhbHNlOwogc3RhdGlj
IGJvb2wgZGlkU2hvd0V4dGVuc2lvblRhYldhc0NhbGxlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wg
ZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgaW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBwZW5kaW5n
Q2FsbGJhY2tXYXNDYWxsZWQgPSBmYWxzZTsKIHN0YXRpYyBSZXRhaW5QdHI8VGVzdEluc3BlY3Rv
clVSTFNjaGVtZUhhbmRsZXI+IHNoYXJlZFVSTFNjaGVtZUhhbmRsZXI7CiBzdGF0aWMgUmV0YWlu
UHRyPF9XS0luc3BlY3RvckV4dGVuc2lvbj4gc2hhcmVkSW5zcGVjdG9yRXh0ZW5zaW9uOwogc3Rh
dGljIFJldGFpblB0cjxOU1N0cmluZz4gc2hhcmVkRXh0ZW5zaW9uVGFiSWRlbnRpZmllcjsKK3N0
YXRpYyBSZXRhaW5QdHI8TlNVUkw+IHNoYXJlZE5ld1VSTEFmdGVyTmF2aWdhdGlvbjsKIAogc3Rh
dGljIHZvaWQgcmVzZXRHbG9iYWxTdGF0ZSgpCiB7CiAgICAgZGlkQXR0YWNoTG9jYWxJbnNwZWN0
b3JDYWxsZWQgPSBmYWxzZTsKICAgICBkaWRTaG93RXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gZmFs
c2U7CiAgICAgZGlkSGlkZUV4dGVuc2lvblRhYldhc0NhbGxlZCA9IGZhbHNlOworICAgIGluc3Bl
Y3RlZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCA9IGZhbHNlOwogICAgIHBlbmRpbmdDYWxsYmFj
a1dhc0NhbGxlZCA9IGZhbHNlOwogfQogCkBAIC05NSw2ICsxMDAsMTIgQEAgLSAodm9pZClpbnNw
ZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4dGVuc2lvbiBkaWRIaWRl
VGFiV2l0aElkZW4KICAgICBkaWRIaWRlRXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gdHJ1ZTsKIH0K
IAorLSAodm9pZClpbnNwZWN0b3JFeHRlbnNpb246KF9XS0luc3BlY3RvckV4dGVuc2lvbiAqKWV4
dGVuc2lvbiBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6KE5TVVJMICopbmV3VVJMCit7CisgICAg
aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICBzaGFyZWROZXdV
UkxBZnRlck5hdmlnYXRpb24gPSBuZXdVUkw7Cit9CisKIEBlbmQKIAogVEVTVChXS0luc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlLCBTaG93QW5kSGlkZVRhYkNhbGxiYWNrcykKQEAgLTE2NSw0ICsx
NzYsNzEgQEAgVEVTVChXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLCBTaG93QW5kSGlkZVRh
YkNhbGxiYWNrcykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFj
a1dhc0NhbGxlZCk7CiB9CiAKK1RFU1QoV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSwgSW5z
cGVjdGVkUGFnZU5hdmlnYXRlZENhbGxiYWNrcykKK3sKKyAgICByZXNldEdsb2JhbFN0YXRlKCk7
CisKKyAgICAvLyBIb29rIHVwIHRoZSB0ZXN0LXJlc291cmNlOiBoYW5kbGVyIHNvIHRoYXQgd2Ug
Y2FuIG5hdmlnYXRlIHRvIGEgZGlmZmVyZW50IHRlc3QgZmlsZS4KKyAgICBpZiAoIXNoYXJlZFVS
TFNjaGVtZUhhbmRsZXIpCisgICAgICAgIHNoYXJlZFVSTFNjaGVtZUhhbmRsZXIgPSBhZG9wdE5T
KFtbVGVzdEluc3BlY3RvclVSTFNjaGVtZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKworICAgIGF1
dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IG5ld10pOworICAgIHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZl
bG9wZXJFeHRyYXNFbmFibGVkID0gWUVTOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRV
UkxTY2hlbWVIYW5kbGVyOnNoYXJlZFVSTFNjaGVtZUhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1l
OkAidGVzdC1yZXNvdXJjZSJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byB1aURlbGVn
YXRlID0gYWRvcHROUyhbVUlEZWxlZ2F0ZUZvclRlc3RpbmdJbnNwZWN0b3JFeHRlbnNpb25EZWxl
Z2F0ZSBuZXddKTsKKworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQo
KV07CisKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd107CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCk7CisKKyAgICAvLyBS
ZWdpc3RlciB0aGUgdGVzdCBleHRlbnNpb24uCisgICAgYXV0byBleHRlbnNpb25JRCA9IFtOU1VV
SUQgVVVJRF0uVVVJRFN0cmluZzsKKyAgICBhdXRvIGV4dGVuc2lvbkRpc3BsYXlOYW1lID0gQCJT
ZWNvbmRFeHRlbnNpb24iOworICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNlOwor
ICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSByZWdpc3RlckV4dGVuc2lvbldpdGhJRDpleHRlbnNp
b25JRCBkaXNwbGF5TmFtZTpleHRlbnNpb25EaXNwbGF5TmFtZSBjb21wbGV0aW9uSGFuZGxlcjpe
KE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IsIF9XS0luc3BlY3RvckV4dGVuc2lvbiAqIF9OdWxs
YWJsZSBleHRlbnNpb24pIHsKKyAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICBF
WFBFQ1RfTk9UX05VTEwoZXh0ZW5zaW9uKTsKKyAgICAgICAgc2hhcmVkSW5zcGVjdG9yRXh0ZW5z
aW9uID0gZXh0ZW5zaW9uOworCisgICAgICAgIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IHRy
dWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZwZW5kaW5nQ2FsbGJh
Y2tXYXNDYWxsZWQpOworCisgICAgYXV0byBleHRlbnNpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW0lu
c3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlRm9yVGVzdGluZyBuZXddKTsKKyAgICBbc2hhcmVkSW5z
cGVjdG9yRXh0ZW5zaW9uIHNldERlbGVnYXRlOmV4dGVuc2lvbkRlbGVnYXRlLmdldCgpXTsKKwor
ICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGhlYWQ+PHRpdGxlPlRlc3QgcGFnZSB0byBi
ZSBpbnNwZWN0ZWQ8L3RpdGxlPjwvaGVhZD48Ym9keT48cD5GaWxsZXIgY29udGVudDwvcD48L2Jv
ZHk+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tLyJd
XTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAg
ICBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCk7Cisg
ICAgRVhQRUNUX05TX0VRVUFMKHNoYXJlZE5ld1VSTEFmdGVyTmF2aWdhdGlvbi5nZXQoKS5hYnNv
bHV0ZVN0cmluZywgQCJodHRwOi8vZXhhbXBsZS5jb20vIik7CisgICAgaW5zcGVjdGVkUGFnZURp
ZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisKKyAgICAvLyBJbml0aWF0ZSBhIG5hdmlnYXRp
b24gaW4gdGhlIGluc3BlY3RlZCBXS1dlYlZpZXcgdG8gYSB0ZXN0LXJlc291cmNlOi8vIFVSTC4K
KyAgICBhdXRvIG5ld1VSTCA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdC1yZXNvdXJjZTov
L1NlY29uZEV4dGVuc2lvbi9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5odG1sIl07Cisg
ICAgYXV0byByZXN1bHQgPSBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOm5ld1VSTF1dOworICAgIEVYUEVDVF9OT1RfTlVMTChyZXN1bHQpOworCisgICAg
aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQpOworICAg
IEVYUEVDVF9OU19FUVVBTChzaGFyZWROZXdVUkxBZnRlck5hdmlnYXRpb24uZ2V0KCkuYWJzb2x1
dGVTdHJpbmcsIEAiYWJvdXQ6YmxhbmsiKTsKKworICAgIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZVdhc0NhbGxlZCA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkKTsKKyAgICBFWFBFQ1RfTlNfRVFVQUwoc2hhcmVk
TmV3VVJMQWZ0ZXJOYXZpZ2F0aW9uLmdldCgpLmFic29sdXRlU3RyaW5nLCBuZXdVUkwuYWJzb2x1
dGVTdHJpbmcpOworCisgICAgLy8gVW5yZWdpc3RlciB0aGUgdGVzdCBleHRlbnNpb24uCisgICAg
cGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0
b3JdIHVucmVnaXN0ZXJFeHRlbnNpb246c2hhcmVkSW5zcGVjdG9yRXh0ZW5zaW9uLmdldCgpIGNv
bXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBF
WFBFQ1RfTlVMTChlcnJvcik7CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxs
YmFja1dhc0NhbGxlZCk7Cit9CisKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lP
TlMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440620</attachid>
            <date>2021-10-08 08:45:16 -0700</date>
            <delta_ts>2021-10-08 17:39:32 -0700</delta_ts>
            <desc>Patch v1.1</desc>
            <filename>bug-231338-20211008084516.patch</filename>
            <type>text/plain</type>
            <size>33678</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY2MzhiNTBkZWIxNmM2
ZDQxNzNkMzQzOTIyZDFlYTI3ZTUzMmM5OS4uOWQ5MWNiYmQxODAyNDFmNGYyYzNkMzA2NTNhYmQx
NmJiZTUzZGYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEwLTA3ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
cHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgbm90
aWZpZWQgd2hlbiB0aGUgaW5zcGVjdGVkIHBhZ2UgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzMzgKKyAgICAgICAgPHJkYXI6Ly83
MTIwMDMzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBOZXcgQVBJIHRlc3Q6IFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuSW5zcGVjdGVkUGFn
ZU5hdmlnYXRlZENhbGxiYWNrcworCisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgbmV3IGV2ZW50
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6aW5zcGVjdGVkUGFnZURpZE5h
dmlnYXRlKToKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckZyb250ZW5kSG9zdDo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKToKKwogMjAy
MS0xMC0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBm
ZWF0dXJlIGZsYWcgZm9yIENPT1AgLyBDT0VQIHZpb2xhdGlvbiByZXBvcnRpbmcgYW5kIHR1cm4g
b2ZmIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDkxODA0YjM0Yzk5OWU1
MzQyMTVjNWUzNDYwZGZkNzRjM2YxZmJmMmUuLjFkNzFkNTA0N2VhNjJhNmFiYzYwMTVmOTk2Njhh
ZDg2YjI1NGFmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisy
MDIxLTEwLTA3ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0g
V2ViIEluc3BlY3RvcjogcHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNs
aWVudHMgdG8gYmUgbm90aWZpZWQgd2hlbiB0aGUgaW5zcGVjdGVkIHBhZ2UgbmF2aWdhdGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzMzgKKyAg
ICAgICAgPHJkYXI6Ly83MTIwMDMzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQYXNzIGFsb25nIGFuIG9uTmF2aWdhdGVkIGV2ZW50IHRvIEluc3Bl
Y3RvckZyb250ZW5kSG9zdCB3aGVuIHRoZSBXSS5GcmFtZS5NYWluUmVzb3VyY2VEaWRDaGFuZ2UK
KyAgICAgICAgZXZlbnQgZmlyZXMgYXQgYSBtYWluIGZyYW1lIHRhcmdldC4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxl
ci5qczoKKyAgICAgICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIpOgorICAg
ICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5wcm90b3R5cGUucmVnaXN0
ZXJFeHRlbnNpb24pOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxl
ci5wcm90b3R5cGUudW5yZWdpc3RlckV4dGVuc2lvbik6CisgICAgICAgIERvIG5vdCBhZGQgdGhp
cyBnbG9iYWwgbGlzdGVuZXIgdW5sZXNzIGF0IGxlYXN0IG9uZSBXSS5XZWJJbnNwZWN0b3JFeHRl
bnNpb24KKyAgICAgICAgaXMgY3VycmVudGx5IHJlZ2lzdGVyZWQuCisKKyAgICAgICAgKFdJLldl
Ykluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3Vy
Y2VEaWRDaGFuZ2UpOgorCiAyMDIxLTEwLTA3ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBUYWJCYXIgY29udGV4dCBtZW51IHN1cHBvcnQg
Zm9yIFdJLldlYkluc3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhi
OWJmZDdhNTY2ZWU5NWVhYWM5NjIwNDc3YWFkNWVlZWM3MThlZDguLjAxYWY5MDIwOWFkZjA3YmJm
OTU1MDdjZThhYjEzMmY3YjNhMDc3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEt
MTAtMDcgIEJKIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIg
SW5zcGVjdG9yOiBwcm92aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50
cyB0byBiZSBub3RpZmllZCB3aGVuIHRoZSBpbnNwZWN0ZWQgcGFnZSBuYXZpZ2F0ZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTMzOAorICAgICAg
ICA8cmRhcjovLzcxMjAwMzM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBwbHVtYmluZyBmb3IgYSBuZXcgZXZlbnQgdG8gcGFzcyBmcm9tIFdl
Ykluc3BlY3RvclVJIG91dCB0byBfV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50Lmg6CisgICAg
ICAgIChBUEk6Okluc3BlY3RvckV4dGVuc2lvbkNsaWVudDo6aW5zcGVjdGVkUGFnZURpZE5hdmln
YXRlKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3Bl
Y3RvckV4dGVuc2lvbkRlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9D
b2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6SW5z
cGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU6Okluc3BlY3RvckV4dGVu
c2lvbkNsaWVudDo6aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKToKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6aW5zcGVjdGVkUGFn
ZURpZE5hdmlnYXRlKToKKyAgICAgICAgQ2FsbCB0aGUgZGVsZWdhdGUgbWV0aG9kIGZvciBhbGwg
X1dLSW5zcGVjdG9yRXh0ZW5zaW9ucyBhc3NvY2lhdGVkIHdpdGggdGhpcworICAgICAgICBpZDxf
V0tJbnNwZWN0b3JFeHRlbnNpb25Ib3N0Pi4gQ2xpZW50cyBjYW4gbWFwIGZyb20gZXh0ZW5zaW9u
IHRvIGluc3BlY3RvciBpZiBuZWVkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rv
ci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yVUk6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSk6CisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
VUk6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXI6Omlu
c3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSk6CisKIDIwMjEtMTAtMDcgIEFyY2FkeSBHb2xkbWludHMt
T3Jsb3YgIDxhZ29sZG1pbnRzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBEaXNh
YmxlIHByaXZhdGVDbGlja01lYXN1cmVtZW50IHdoZW4gY3JlYXRpbmcgdGhlIG5ldHdvcmsgcHJv
Y2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQuaAppbmRleCA3ZWZlYjFmNzgzODcwNjU5YTQ5NGE2NjMxNTZiYTNlMjQxZTcxOTdlLi4x
MWIzNTFlODUzNjcyOGMxYTQ2NDM3NmUzYTg5ZWQzYTcxOGZiMzY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaApAQCAtMTIyLDYg
KzEyMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNXZWJFeHRlbnNpb25z
KCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRh
Yihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNp
b25UYWJJRCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBV
UkwmKSB7IH0KICNlbmRpZgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNlbmRN
ZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMGJmMWJkNzM2NDcz
NjQ2ODc3YTEwMzM4YTQyNDFlYzYwYTI2NDFiYi4uMjE4ZGY2YTE5MTEyOTQ4MTUzYTFkYmY0OTVl
ZjU1ZWEwZjFlNmY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTcwNyw2ICs3MDcsMTQgQEAgdm9pZCBJbnNwZWN0b3JG
cm9udGVuZEhvc3Q6OmRpZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25J
RCwgY29uc3QKICAgICBtX2NsaWVudC0+ZGlkSGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwg
ZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6aW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFN0cmluZyYgbmV3VVJMU3RyaW5nKQoreworICAgIGlm
ICghbV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2NsaWVudC0+aW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlKHsgVVJMKCksIG5ld1VSTFN0cmluZyB9KTsKK30KKwogRXhjZXB0
aW9uT3I8SlNDOjpKU1ZhbHVlPiBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmV2YWx1YXRlU2NyaXB0
SW5FeHRlbnNpb25UYWIoSFRNTElGcmFtZUVsZW1lbnQmIGV4dGVuc2lvbkZyYW1lRWxlbWVudCwg
Y29uc3QgU3RyaW5nJiBzY3JpcHRTb3VyY2UpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gZXh0ZW5z
aW9uRnJhbWVFbGVtZW50LmNvbnRlbnRGcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDE2MjI2YWEyYmJjZGQwNWNiNjcw
MjUzMWQwMzNiODJlODY0MDgzOGYuLjdiM2JhYWQ3MWYwZWZlOWNlNjZhMmZlNjIxMzNjMDUxOWNk
MWFiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKElOU1BFQ1RP
Ul9FWFRFTlNJT05TKQogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbklELCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvblRhYklEKTsKICAgICB2b2lkIGRp
ZEhpZGVFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5nJiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5n
JiBleHRlbnNpb25UYWJJRCk7CisgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29u
c3QgU3RyaW5nJiB1cmwpOwogICAgIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4gZXZhbHVhdGVT
Y3JpcHRJbkV4dGVuc2lvblRhYihIVE1MSUZyYW1lRWxlbWVudCYgZXh0ZW5zaW9uRnJhbWUsIGNv
bnN0IFN0cmluZyYgc2NyaXB0U291cmNlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCmluZGV4IDMyZDk3NDJiNDdj
Njc5YjdhZjM3MTVkZWUzOTE5ZTY2NzhlYzA3ZjguLjUwZTE0ZGRjMGZiMDIwOGVhZWNjMzZlZGE5
ZjQ2MTQ2MDUxZThhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaWRsCkBAIC0xMDAsNiArMTAwLDcgQEAKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgYm9vbGVhbiBzdXBwb3J0c1dlYkV4dGVuc2lvbnM7CiAgICAgW0NvbmRpdGlvbmFs
PUlOU1BFQ1RPUl9FWFRFTlNJT05TXSB1bmRlZmluZWQgZGlkU2hvd0V4dGVuc2lvblRhYihET01T
dHJpbmcgZXh0ZW5zaW9uSUQsIERPTVN0cmluZyBleHRlbnNpb25UYWJJRCk7CiAgICAgW0NvbmRp
dGlvbmFsPUlOU1BFQ1RPUl9FWFRFTlNJT05TXSB1bmRlZmluZWQgZGlkSGlkZUV4dGVuc2lvblRh
YihET01TdHJpbmcgZXh0ZW5zaW9uSUQsIERPTVN0cmluZyBleHRlbnNpb25UYWJJRCk7CisgICAg
W0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl9FWFRFTlNJT05TXSB1bmRlZmluZWQgaW5zcGVjdGVkUGFn
ZURpZE5hdmlnYXRlKERPTVN0cmluZyBuZXdVUkwpOwogICAgIFtDb25kaXRpb25hbD1JTlNQRUNU
T1JfRVhURU5TSU9OU10gYW55IGV2YWx1YXRlU2NyaXB0SW5FeHRlbnNpb25UYWIoSFRNTElGcmFt
ZUVsZW1lbnQgZXh0ZW5zaW9uRnJhbWUsIERPTVN0cmluZyBzY3JpcHRTb3VyY2UpOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxl
cnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRy
b2xsZXIuanMKaW5kZXggOWM1NjIyOWRkZWFhODEwZWJkYjQ1NjNjNDU0ZWRjYjk5ZTBiYWIyNS4u
ZjEzOTViNjhlZDI3ZGMyMWVlODJhNjk3NGRhODE2YTg5NjZkMjQ0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9y
RXh0ZW5zaW9uQ29udHJvbGxlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzCkBA
IC0zMyw2ICszMyw4IEBAIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIgPSBjbGFz
cyBXZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyIGV4dGVuCiAgICAgICAgIHRoaXMuX2V4
dGVuc2lvblRhYkNvbnRlbnRWaWV3Rm9yRXh0ZW5zaW9uVGFiSURNYXAgPSBuZXcgTWFwOwogICAg
ICAgICB0aGlzLl90YWJJRHNGb3JFeHRlbnNpb25JRE1hcCA9IG5ldyBNdWx0aW1hcDsKICAgICAg
ICAgdGhpcy5fbmV4dEV4dGVuc2lvblRhYklEID0gMTsKKworICAgICAgICB0aGlzLl9tYWluRnJh
bWVEaWRDaGFuZ2VMaXN0ZW5lciA9IFdJLkZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV0kuRnJhbWUu
RXZlbnQuTWFpblJlc291cmNlRGlkQ2hhbmdlLCB0aGlzLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRD
aGFuZ2UsIHRoaXMpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtMjQ3LDYgKzI0OSwyMCBA
QCBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyID0gY2xhc3MgV2ViSW5zcGVjdG9y
RXh0ZW5zaW9uQ29udHJvbGxlciBleHRlbgogICAgICAgICAgICAgcmV0dXJuIHtlcnJvcjogZXJy
b3IubWVzc2FnZX07CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBf
aGFuZGxlTWFpblJlc291cmNlRGlkQ2hhbmdlKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCFl
dmVudC50YXJnZXQuaXNNYWluRnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAvLyBEb24ndCBmaXJlIHRoZSBldmVudCB1bmxlc3Mgb25lIG9yIG1vcmUgZXh0ZW5zaW9ucyBh
cmUgcmVnaXN0ZXJlZC4KKyAgICAgICAgaWYgKCF0aGlzLl9leHRlbnNpb25Gb3JFeHRlbnNpb25J
RE1hcC5zaXplKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5pbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoV0kubmV0d29ya01hbmFnZXIubWFpbkZy
YW1lLnVybCk7CisgICAgfQogfTsKIAogV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxl
ci5FdmVudCA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJ
bnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaAppbmRleCBhZDYxOTJmYTY4ODE0MjE1NWEwYjMy
MTI4Zjc5MTIzMTM4ZTE4ODAyLi4zYWY4M2I4MmExMzE5YjQ1ZGRhNmQ5NjFmNWE1ODY4MGY0ZGI2
MzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9y
RXh0ZW5zaW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUlu
c3BlY3RvckV4dGVuc2lvbkNsaWVudC5oCkBAIC0zNyw2ICszNyw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uVGFiSUQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25z
dCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGluc3Bl
Y3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBXVEY6OlVSTCYpIHsgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oCmluZGV4IGVmZTg0MTRk
MWYwODBmZjI1YTg0MTc0Y2EzZDg2NGJmY2RkMjFiNDguLjUwY2JkYWU3MzFlZTg3YTVlZmE2ZDg3
Yjc5OGM0ZTI0NTk3YTNiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5oCkBA
IC01Miw2ICs1MiwxMiBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogICovCiAtICh2b2lkKWlu
c3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZEhp
ZGVUYWJXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJZGVudGlmaWVyOwogCisvKioKKyAq
IEBhYnN0cmFjdCBDYWxsZWQgd2hlbiB0aGUgaW5zcGVjdGVkIHBhZ2UgaGFzIG5hdmlnYXRlZCB0
byBhIG5ldyBVUkwuCisgKiBAcGFyYW0gdXJsIFRoZSBuZXcgVVJMIGZvciB0aGUgaW5zcGVjdGVk
IHBhZ2UuCisgKi8KKy0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5zaW9uOihfV0tJbnNwZWN0b3JFeHRl
bnNpb24gKilleHRlbnNpb24gaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlOihOU1VSTCAqKXVybDsK
KwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLmgKaW5kZXggODE5MGVlNzJlYWY2NjllOWU1MDcwODE0NDliNjAwOGIwYTk5
NjZiNi4uMjdkZTgwZWYwZTM1NTVmYWI5ODk0YTEzMjFhYTFmNWExNmNiZGFmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0Nv
Y29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgLy8gQVBJOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQKICAgICAgICAgdm9p
ZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBv
dmVycmlkZTsKICAgICAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rv
cjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKKyAgICAgICAgdm9pZCBpbnNwZWN0ZWRQYWdl
RGlkTmF2aWdhdGUoY29uc3QgVVJMJikgb3ZlcnJpZGU7CiAKICAgICAgICAgSW5zcGVjdG9yRXh0
ZW5zaW9uRGVsZWdhdGUmIG1faW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU7CiAgICAgfTsKQEAg
LTY2LDYgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgewogICAgICAgICBib29sIGluc3Bl
Y3RvckV4dGVuc2lvbkRpZFNob3dUYWJXaXRoSWRlbnRpZmllciA6IDE7CiAgICAgICAgIGJvb2wg
aW5zcGVjdG9yRXh0ZW5zaW9uRGlkSGlkZVRhYldpdGhJZGVudGlmaWVyIDogMTsKKyAgICAgICAg
Ym9vbCBpbnNwZWN0b3JFeHRlbnNpb25JbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUgOiAxOwogICAg
IH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGUubW0KaW5kZXggN2UwZmI5OGI2ZjNlZmE2ZWM4OWM5NGY5OGY0N2VlNDI3ODRjYTI0
YS4uZGM2NzcwMGRkMTY3ZjVmYjQ0ZjJiY2FhOTcwZDcxZDBlZDVjYWY4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2Nv
YS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpAQCAtNDEsNiArNDEsNyBAQCBJbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUoX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uICppbgogewogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckV4dGVu
c2lvbkRpZFNob3dUYWJXaXRoSWRlbnRpZmllciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGluc3BlY3RvckV4dGVuc2lvbjpkaWRTaG93VGFiV2l0aElkZW50aWZpZXI6
KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRXh0ZW5zaW9uRGlkSGlkZVRhYldp
dGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5z
cGVjdG9yRXh0ZW5zaW9uOmRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjopXTsKKyAgICBtX2RlbGVn
YXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25JbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0b3JFeHRlbnNpb246
aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlOildOwogCiAgICAgaW5zcGVjdG9yRXh0ZW5zaW9uLT5f
ZXh0ZW5zaW9uLT5zZXRDbGllbnQobWFrZVVuaXF1ZVJlZjxJbnNwZWN0b3JFeHRlbnNpb25DbGll
bnQ+KCp0aGlzKSk7CiB9CkBAIC04NSw2ICs4NiwxOCBAQCB2b2lkIEluc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQ6OmRpZEhpZGVFeHRlbnNpb25UYWIo
YwogICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3JFeHRlbnNpb246bV9pbnNwZWN0b3JFeHRlbnNpb25E
ZWxlZ2F0ZS5tX2luc3BlY3RvckV4dGVuc2lvbi5nZXQoKS5nZXQoKSBkaWRIaWRlVGFiV2l0aElk
ZW50aWZpZXI6ZXh0ZW5zaW9uVGFiSURdOwogfQogCit2b2lkIEluc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQ6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZShjb25zdCBXVEY6OlVSTCYgbmV3VVJMKQoreworICAgIGlmICghbV9pbnNwZWN0b3JFeHRlbnNp
b25EZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25JbnNwZWN0ZWRQ
YWdlRGlkTmF2aWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGRlbGVnYXRlID0g
bV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2RlbGVnYXRlOworICAgIGlmICghZGVsZWdh
dGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3JFeHRlbnNpb246
bV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2luc3BlY3RvckV4dGVuc2lvbi5nZXQoKS5n
ZXQoKSBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6bmV3VVJMXTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcAppbmRleCAy
ODQyNDRmZmQyZGVkMjUyMTBkYTY1YThmNTFiYmU5YjAzYWQ2N2I4Li4xYzY3MDJkMGRjOGYzMGRj
YjA5ZWQ5NTc1NDUzNjIyOTk4ZTVmNjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUo
SU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKICNpbmNsdWRlICJBUElJbnNwZWN0b3JFeHRlbnNpb24u
aCIKKyNpbmNsdWRlICJBUElVUkwuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAg
LTI1NSw2ICsyNTYsMTcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eTo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3IKICAgICBleHRlbnNpb25D
bGllbnQtPmRpZEhpZGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQpOwogfQogCit2b2lkIFdl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjppbnNwZWN0ZWRQYWdlRGlkTmF2
aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCit7CisgICAgZm9yIChhdXRvJiBleHRlbnNpb24gOiBj
b3B5VG9WZWN0b3IobV9leHRlbnNpb25BUElPYmplY3RNYXAudmFsdWVzKCkpKSB7CisgICAgICAg
IGF1dG8gZXh0ZW5zaW9uQ2xpZW50ID0gZXh0ZW5zaW9uLT5jbGllbnQoKTsKKyAgICAgICAgaWYg
KCFleHRlbnNpb25DbGllbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBleHRl
bnNpb25DbGllbnQtPmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShuZXdVUkwpOworICAgIH0KK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VY
VEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eS5oCmluZGV4IGJiOThhNjNkY2Y4OTc4NWI2OGFhYjdhYmE4ODBlNWZiNDM3MDU0OWMuLmJiMDg5
MTNkM2ZkM2M4ZmEzN2NmM2Q2NzEyOTcxYTRlZTk5MjFkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBAIC02OCw2ICs2OCw3IEBAIHB1Ymxp
YzoKICAgICAvLyBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSBJUEMgbWVz
c2FnZXMuCiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0
ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CiAgICAgdm9pZCBk
aWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJ
bnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CisgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2
aWdhdGUoY29uc3QgVVJMJik7CiAKICAgICAvLyBOb3RpZmljYXRpb25zLgogICAgIHZvaWQgaW5z
cGVjdG9yRnJvbnRlbmRMb2FkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiMDJmYmJhNzI2ZmIz
YzVhYmViYWYyODY3MzAyYThjMjdhNjU0NmEyLi42NDMzMTQzMjRkZDVkMmMxNWY4MzFjYjM3MjY2
YWQ4NjFiN2I4YTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdl
cyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eSB7CiAgICAgRGlkU2hv
d0V4dGVuc2lvblRhYihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0cmluZyBleHRlbnNpb25UYWJJRCkK
ICAgICBEaWRIaWRlRXh0ZW5zaW9uVGFiKFN0cmluZyBleHRlbnNpb25JRCwgU3RyaW5nIGV4dGVu
c2lvblRhYklEKQorICAgIEluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShVUkwgbmV3VVJMKQogfQog
CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJ
LmNwcAppbmRleCBlYjhjZjgyZTkxZTQ3MmY0YTMyZTE3ZmI2M2IzYmM1ZTk0YTJiNGMyLi5jOGFk
MzE4Njk1ZDlhYzVkZGRmMmY5MWNiMjIwNTZlMWM2NmI2ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJ
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMwNSw2ICszMDUsMTQgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6ZGlk
SGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiBleHQKIAogICAg
IG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+ZGlkSGlkZUV4dGVuc2lvblRhYihleHRlbnNpb25JRCwg
ZXh0ZW5zaW9uVGFiSUQpOwogfQorCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjppbnNwZWN0
ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCit7CisgICAgaWYgKCFtX2V4dGVu
c2lvbkNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZXh0ZW5zaW9uQ29udHJv
bGxlci0+aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKG5ld1VSTCk7Cit9CiAjZW5kaWYgLy8gRU5B
QkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogCiBXZWJDb3JlOjpQYWdlKiBSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6ZnJvbnRlbmRQYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAppbmRleCBmZDQ1ZDIxNmNl
MWExY2RkNmM4NDc1OGNjNzY2OGZlYzJiZmM3ZjZjLi4zNmM3MDExM2NmNGI3ZjkyOWIxNGFhYWM5
ZWQ0NTc0NzYxZWQ1NWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTIyLDYgKzEyMiw3IEBA
IHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzV2ViRXh0ZW5zaW9ucygpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwg
Y29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlk
SGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5z
cGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92ZXJyaWRlOworICAgIHZvaWQgaW5zcGVjdGVkUGFn
ZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICBib29sIGNh
blNhdmUoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IDE3MDM1MTAy
NThhNDg2ZTAyM2QwODI5OWRhOTI0MDNmMGY3NGRmZjcuLmZhN2NjZDk0OTc5NjA1MzJlMmMwNDk3
MjM0NGQzZjMxZDc5M2I2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzc5LDYgKzM3OSwxNCBAQCB2b2lk
IFdlYkluc3BlY3RvclVJOjpkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IFN0cmluZyYgZXh0ZW5z
aW9uSUQsIGNvbnN0IFN0cmluZwogCiAgICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5kaWRIaWRl
RXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25UYWJJRCk7CiB9CisKK3ZvaWQgV2Vi
SW5zcGVjdG9yVUk6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBVUkwmIG5ld1VSTCkK
K3sKKyAgICBpZiAoIW1fZXh0ZW5zaW9uQ29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5pbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUobmV3VVJM
KTsKK30KICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6OnNob3dDb25zb2xlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAppbmRleCBlYzQ5NjQzODIyNTQwYzc4ZTJi
YjMzZTc3ZDk3M2VlOWI5MTJkNWJhLi5mNmVkNzA0Y2ZhZGNlMDk0ZTA5NTE4ZTU2Zjk5NjFhY2Ex
N2UyNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSS5oCkBAIC0xNTYsNiArMTU2LDcgQEAgcHVibGljOgogICAgIGJvb2wgc3Vw
cG9ydHNXZWJFeHRlbnNpb25zKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9u
VGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVu
c2lvblRhYklEJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJM
Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlci5jcHAKaW5kZXggOTc0N2U0YzBiNmNlYTlhZmJiNmFjY2UzMGY2NWJiZWM5MjJlNzJi
MS4uOTk4ZDE4ZTA1OGU0MDM2OGZkNDdhMDY2ZGE0NGY2YTg3M2NkZTQyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcApAQCAtNDM3LDYgKzQzNywxMSBA
QCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6ZGlkSGlkZUV4dGVuc2lv
blRhYihjb25zdCBJbnNwZWN0b3I6OkV4dAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlclByb3h5OjpEaWRIaWRlRXh0ZW5zaW9uVGFiIHsgZXh0ZW5zaW9uSUQs
IGV4dGVuc2lvblRhYklEIH0sIG1faW5zcGVjdG9yUGFnZUlkZW50aWZpZXIpOwogfQogCit2b2lk
IFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6aW5zcGVjdGVkUGFnZURpZE5hdmln
YXRlKGNvbnN0IFVSTCYgbmV3VVJMKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlclByb3h5OjpJbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUgeyBuZXdVUkwg
fSwgbV9pbnNwZWN0b3JQYWdlSWRlbnRpZmllcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKaW5kZXggZTU0NTYyNjk3MDE5MzgxYmQ1NmM1
MDAzNTljODk0OWU5NjhkMDU1MS4uNmU5NmYwOGEwY2MyMzRmZTc0MDliMzVlY2VlMDJjNGI0MmFm
NmE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5oCkBAIC03
Niw2ICs3Niw3IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsYmFja3MgZnJvbSB0aGUgZnJvbnRlbmQu
CiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9u
SUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CiAgICAgdm9pZCBkaWRIaWRl
RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0
b3I6OkV4dGVuc2lvblRhYklEJik7CisgICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUo
Y29uc3QgVVJMJik7CiAKIHByaXZhdGU6CiAgICAgSlNDOjpKU09iamVjdCogdW53cmFwRXZhbHVh
dGlvblJlc3VsdEFzT2JqZWN0KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cjo6RXZhbHVhdGlvblJlc3VsdCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjUyZTVmNzc5MDdhMWRkNWQwNjJhNDM5YzUyZTU0Y2Q3
YjJmYmRmOS4uMjA2ODIzM2NkNzhlNTIxOTA4ODllOWUxY2JjNDM0ZDEwMjFhZTkzNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDIxLTEwLTA3ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtD
b2NvYV0gV2ViIEluc3BlY3RvcjogcHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uIGNsaWVudHMgdG8gYmUgbm90aWZpZWQgd2hlbiB0aGUgaW5zcGVjdGVkIHBhZ2UgbmF2aWdh
dGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEz
MzgKKyAgICAgICAgPHJkYXI6Ly83MTIwMDMzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdGVzdCB0byB2ZXJpZnkgdGhhdCB0cmln
Z2VyaW5nIGEgbmF2aWdhdGlvbiBvbiB0aGUgaW5zcGVjdGVkIFdLV2ViVmlldworICAgICAgICBj
YXVzZXMgdGhlIC1leHRlbnNpb246aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlOiBtZXRob2Qgb2Yg
X1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUKKyAgICAgICAgdG8gZmlyZS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JFeHRlbnNpb25E
ZWxlZ2F0ZS5tbToKKyAgICAgICAgKHJlc2V0R2xvYmFsU3RhdGUpOgorICAgICAgICAoLVtJbnNw
ZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZUZvclRlc3RpbmcgaW5zcGVjdG9yRXh0ZW5zaW9uOmluc3Bl
Y3RlZFBhZ2VEaWROYXZpZ2F0ZTpdKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIxLTEwLTA3ICBC
SiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlYklu
c3BlY3RvckV4dGVuc2lvblRhYkNvbnRlbnRWaWV3IHNob3VsZCBub3QgcmVsb2FkIGl0cyBpZnJh
bWUgd2hlbiBkZXRhY2hlZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwN2Q1Njg2OTUzYzNm
NzY1YjYyYjZlMDcxZTI3MDMxZjRkZmJiNjNiLi5iNzVhNWQwZjkyODk4NzRmYWEwNTYzN2U1YzA4
YWUyNmE5ZDY0MzY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODk1LDYgKzg5NSw3IEBA
CiAJCTk1OEI3MEUxMjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRB
ZGRpdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NThCNzBFMDI2QzQ2RURDMDBCMjAyMkIgLyogTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRk
aXRpb25zLm1tICovOyB9OwogCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3
VGhlbWVDb2xvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1QTUyNDk0MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICov
OyB9OwogCQk5NUI2QjNCNzI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QjZCM0I2MjUxRUJG
MkYwMEZDNDM4MiAvKiBNZWRpYURvY3VtZW50Lm1tICovOyB9OworCQk5OTZFRENDQjI3MEU3MEQ3
MDA2REYxNzUgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZFRENDQTI3MEU3
MEFCMDA2REYxNzUgLyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCAqLzsgfTsK
IAkJOTk4NEZBQ0MxQ0ZGQUY2MDAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNBMUNGRkFF
RUUwMDhEMTk4QyAvKiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi87IH07CiAJCTk5ODRGQUNFMUNG
RkIwOTAwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThD
IC8qIGVkaXRhYmxlLWJvZHkuaHRtbCAqLzsgfTsKIAkJOTk5OTEwOEIxRjM5M0M5NjAwOEFENDU1
IC8qIENvcHlpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTk5MTA4QTFGMzkzQzhCMDA4QUQ0NTUgLyogQ29weWluZy5tbSAqLzsgfTsKQEAgLTE1
ODQsNiArMTU4NSw3IEBACiAJCQkJMkVGRjA2Q0QxRDhBNDI5QTAwMDRCQjMwIC8qIGlucHV0LWZp
ZWxkLWluLXNjcm9sbGFibGUtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJ
CQlDRTM1MjRGQTFCMTQ0Mzg5MDAyOEE3QzUgLyogaW5wdXQtZm9jdXMtYmx1ci5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCUNFNkQwRUUzMjQyNkI5MzIwMDJBRDkwMSAvKiBpbnNlcnQt
dGV4dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTk5NkVEQ0NCMjcwRTcwRDcwMDZE
RjE3NSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTk5RTI4NDY4MjZGOTQxNTQwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNp
b24tYmFzaWMtdGFiLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTlFMjg0NjYyNkY5
M0RCNTAwMDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQkwNzQ5OTQ0MjFFQTUwMzRCMDAwREE0NEQgLyogaW52YWxp
ZERldmljZUlESGFzaFNhbHRzIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjYzOCw2ICsyNjQw
LDcgQEAKIAkJOTU4QjcwRTAyNkM0NkVEQzAwQjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1dl
YktpdEFkZGl0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29s
b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdU
aGVtZUNvbG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUI2QjNCNjI1MUVC
RjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE1lZGlhRG9jdW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTk5NkVEQ0NBMjcwRTcwQUIwMDZERjE3NSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFz
aWMtcGFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gIkluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy1wYWdlLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTg0RkFDQTFDRkZBRUVFMDA4RDE5
OEMgLyogV0tXZWJWaWV3VGV4dElucHV0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tXZWJWaWV3VGV4dElucHV0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTg0RkFDRDFDRkZCMDM4MDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImVkaXRhYmxlLWJvZHkuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5OTkxMDhBMUYzOTNDOEIwMDhBRDQ1NSAvKiBDb3B5aW5n
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29weWluZy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQxMjksNiArNDEzMiw3IEBACiAJCQkJOTNB
Mjc0QTEyNTIxNjNENjAwQTFCNkQ0IC8qIEluZGV4VXBncmFkZVdpdGhNdWx0aXBsZUluZGljZXMu
c3FsaXRlMyAqLywKIAkJCQk5M0EyNzRBNDI1MjI0MUQwMDBBMUI2RDQgLyogSW5kZXhVcGdyYWRl
V2l0aE11bHRpcGxlSW5kaWNlc0hhdmVTYW1lSUQuc3FsaXRlMyAqLywKIAkJCQkyRUZGMDZDQzFE
OEE0MjkxMDAwNEJCMzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1s
ICovLAorCQkJCTk5NkVEQ0NBMjcwRTcwQUIwMDZERjE3NSAvKiBJbnNwZWN0b3JFeHRlbnNpb24t
YmFzaWMtcGFnZS5odG1sICovLAogCQkJCTk5RTI4NDY3MjZGOTQxM0IwMDAzRjFGQSAvKiBJbnNw
ZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFiLmh0bWwgKi8sCiAJCQkJOTlFMjg0NjUyNkY5M0Q3NjAw
MDNGMUZBIC8qIEluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyAqLywKIAkJCQk5
MzdBNkM4ODI0MzU3QkYzMDBDM0E2QjAgLyogS2lsbFdlYlByb2Nlc3NXaXRoT3BlbkNvbm5lY3Rp
b24tMS5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5odG1sIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM4ZjljY2IwN2IzNDZkYmE5NzM0ZTE1YjBjNjI4YWFlZDdkODdiZGYK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy1wYWdlLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdD4KKzwvc2NyaXB0PgorPGJvZHk+Cis8aDE+VGhpcyBpcyBhIHRl
c3QgcGFnZS48L2gxPgorPHA+Tm90aGluZyBpbnRlcmVzdGluZyB0byBzZWUgaGVyZSwgbW92ZSBh
bG9uZy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGUubW0KaW5kZXggNGIzOWY1MjExMWNjODhhNmE3MDI2MTQzMDhmNWE3MDEwY2I5ZWY2
NS4uYjNlYzQ4NDVkZDBiZWUxYWU5NDNiODg3ZDk3MTQ1MGIxM2ZlMzEyNyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lv
bkRlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
V0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpAQCAtMjgsNyArMjgsOSBAQAogI2lmIEVO
QUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKIAogI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAi
VGVzdENvY29hLmgiCiAjaW1wb3J0ICJUZXN0SW5zcGVjdG9yVVJMU2NoZW1lSGFuZGxlci5oIgor
I2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgi
CiAjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CkBAIC00MiwxNiArNDQsMTkgQEAKIHN0YXRpYyBib29sIGRp
ZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBkaWRTaG93
RXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBkaWRIaWRlRXh0ZW5z
aW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CitzdGF0aWMgYm9vbCBpbnNwZWN0ZWRQYWdlRGlkTmF2
aWdhdGVXYXNDYWxsZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHBlbmRpbmdDYWxsYmFja1dhc0Nh
bGxlZCA9IGZhbHNlOwogc3RhdGljIFJldGFpblB0cjxUZXN0SW5zcGVjdG9yVVJMU2NoZW1lSGFu
ZGxlcj4gc2hhcmVkVVJMU2NoZW1lSGFuZGxlcjsKIHN0YXRpYyBSZXRhaW5QdHI8X1dLSW5zcGVj
dG9yRXh0ZW5zaW9uPiBzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb247CiBzdGF0aWMgUmV0YWluUHRy
PE5TU3RyaW5nPiBzaGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyOworc3RhdGljIFJldGFpblB0
cjxOU1VSTD4gc2hhcmVkTmV3VVJMQWZ0ZXJOYXZpZ2F0aW9uOwogCiBzdGF0aWMgdm9pZCByZXNl
dEdsb2JhbFN0YXRlKCkKIHsKICAgICBkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCA9IGZh
bHNlOwogICAgIGRpZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSBmYWxzZTsKICAgICBkaWRI
aWRlRXh0ZW5zaW9uVGFiV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgaW5zcGVjdGVkUGFnZURpZE5h
dmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CiAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0g
ZmFsc2U7CiB9CiAKQEAgLTk1LDYgKzEwMCwxMiBAQCAtICh2b2lkKWluc3BlY3RvckV4dGVuc2lv
bjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZEhpZGVUYWJXaXRoSWRlbgog
ICAgIGRpZEhpZGVFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOwogfQogCistICh2b2lkKWlu
c3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGluc3Bl
Y3RlZFBhZ2VEaWROYXZpZ2F0ZTooTlNVUkwgKiluZXdVUkwKK3sKKyAgICBpbnNwZWN0ZWRQYWdl
RGlkTmF2aWdhdGVXYXNDYWxsZWQgPSB0cnVlOworICAgIHNoYXJlZE5ld1VSTEFmdGVyTmF2aWdh
dGlvbiA9IG5ld1VSTDsKK30KKwogQGVuZAogCiBURVNUKFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVs
ZWdhdGUsIFNob3dBbmRIaWRlVGFiQ2FsbGJhY2tzKQpAQCAtMTY1LDQgKzE3Niw3MSBAQCBURVNU
KFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUsIFNob3dBbmRIaWRlVGFiQ2FsbGJhY2tzKQog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsK
IH0KIAorVEVTVChXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLCBJbnNwZWN0ZWRQYWdlTmF2
aWdhdGVkQ2FsbGJhY2tzKQoreworICAgIHJlc2V0R2xvYmFsU3RhdGUoKTsKKworICAgIC8vIEhv
b2sgdXAgdGhlIHRlc3QtcmVzb3VyY2U6IGhhbmRsZXIgc28gdGhhdCB3ZSBjYW4gbmF2aWdhdGUg
dG8gYSBkaWZmZXJlbnQgdGVzdCBmaWxlLgorICAgIGlmICghc2hhcmVkVVJMU2NoZW1lSGFuZGxl
cikKKyAgICAgICAgc2hhcmVkVVJMU2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0SW5zcGVj
dG9yVVJMU2NoZW1lSGFuZGxlciBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byB3ZWJWaWV3Q29u
ZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAg
d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2RldmVsb3BlckV4dHJhc0Vu
YWJsZWQgPSBZRVM7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6c2hhcmVkVVJMU2NoZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ0ZXN0LXJlc291
cmNlIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2Vi
Vmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5T
KFtVSURlbGVnYXRlRm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlIG5ld10pOwor
CisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKworICAgIFtb
d2ViVmlldyBfaW5zcGVjdG9yXSBzaG93XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkKTsKKworICAgIC8vIFJlZ2lzdGVyIHRoZSB0
ZXN0IGV4dGVuc2lvbi4KKyAgICBhdXRvIGV4dGVuc2lvbklEID0gW05TVVVJRCBVVUlEXS5VVUlE
U3RyaW5nOworICAgIGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5hbWUgPSBAIlNlY29uZEV4dGVuc2lv
biI7CisgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3
IF9pbnNwZWN0b3JdIHJlZ2lzdGVyRXh0ZW5zaW9uV2l0aElEOmV4dGVuc2lvbklEIGRpc3BsYXlO
YW1lOmV4dGVuc2lvbkRpc3BsYXlOYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9O
dWxsYWJsZSBlcnJvciwgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICogX051bGxhYmxlIGV4dGVuc2lv
bikgeworICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVM
TChleHRlbnNpb24pOworICAgICAgICBzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gPSBleHRlbnNp
b247CisKKyAgICAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7
CisKKyAgICBhdXRvIGV4dGVuc2lvbkRlbGVnYXRlID0gYWRvcHROUyhbSW5zcGVjdG9yRXh0ZW5z
aW9uRGVsZWdhdGVGb3JUZXN0aW5nIG5ld10pOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNp
b24gc2V0RGVsZWdhdGU6ZXh0ZW5zaW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+VGVzdCBwYWdlIHRvIGJlIGluc3BlY3RlZDwv
dGl0bGU+PC9oZWFkPjxib2R5PjxwPkZpbGxlciBjb250ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOworICAgIFt3ZWJW
aWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIGluc3BlY3RlZFBh
Z2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkKTsKKyAgICBFWFBFQ1RfTlNf
RVFVQUwoc2hhcmVkTmV3VVJMQWZ0ZXJOYXZpZ2F0aW9uLmdldCgpLmFic29sdXRlU3RyaW5nLCBA
Imh0dHA6Ly9leGFtcGxlLmNvbS8iKTsKKyAgICBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXND
YWxsZWQgPSBmYWxzZTsKKworICAgIC8vIEluaXRpYXRlIGEgbmF2aWdhdGlvbiBpbiB0aGUgaW5z
cGVjdGVkIFdLV2ViVmlldyB0byBhIHRlc3QtcmVzb3VyY2U6Ly8gVVJMLgorICAgIGF1dG8gbmV3
VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0LXJlc291cmNlOi8vU2Vjb25kRXh0ZW5z
aW9uL0luc3BlY3RvckV4dGVuc2lvbi1iYXNpYy1wYWdlLmh0bWwiXTsKKyAgICBhdXRvIHJlc3Vs
dCA9IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6bmV3
VVJMXV07CisgICAgRVhQRUNUX05PVF9OVUxMKHJlc3VsdCk7CisKKyAgICBpbnNwZWN0ZWRQYWdl
RGlkTmF2aWdhdGVXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCk7CisgICAgRVhQRUNUX05TX0VR
VUFMKHNoYXJlZE5ld1VSTEFmdGVyTmF2aWdhdGlvbi5nZXQoKS5hYnNvbHV0ZVN0cmluZywgQCJh
Ym91dDpibGFuayIpOworCisgICAgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0g
ZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpbnNwZWN0ZWRQYWdlRGlkTmF2
aWdhdGVXYXNDYWxsZWQpOworICAgIEVYUEVDVF9OU19FUVVBTChzaGFyZWROZXdVUkxBZnRlck5h
dmlnYXRpb24uZ2V0KCkuYWJzb2x1dGVTdHJpbmcsIG5ld1VSTC5hYnNvbHV0ZVN0cmluZyk7CisK
KyAgICAvLyBVbnJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4KKyAgICBwZW5kaW5nQ2FsbGJh
Y2tXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gdW5yZWdpc3Rl
ckV4dGVuc2lvbjpzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24uZ2V0KCkgY29tcGxldGlvbkhhbmRs
ZXI6XihOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVy
cm9yKTsKKworICAgICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVk
KTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440692</attachid>
            <date>2021-10-08 17:39:33 -0700</date>
            <delta_ts>2021-10-08 18:38:52 -0700</delta_ts>
            <desc>Patch v1.1.1 (for landing)</desc>
            <filename>bug-231338-20211008173933.patch</filename>
            <type>text/plain</type>
            <size>45408</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQ4MTkzYzZmZmZmNjYx
ODE2NTg2YjhmMDQzN2E1YTEwMmE1ZTI0MS4uYzUwOWQ5NzJjNzM1MmVkZGRjMzI4YjNkNTMzMjc0
M2RmNGI2MzBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEwLTA4ICBCSiBC
dXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3Rvcjog
cHJvdmlkZSBhIHdheSBmb3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgbm90
aWZpZWQgd2hlbiB0aGUgaW5zcGVjdGVkIHBhZ2UgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzMzgKKyAgICAgICAgPHJkYXI6Ly83
MTIwMDMzOD4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAg
TmV3IEFQSSB0ZXN0OiBXS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLkluc3BlY3RlZFBhZ2VO
YXZpZ2F0ZWRDYWxsYmFja3MKKworICAgICAgICBBZGQgcGx1bWJpbmcgZm9yIG5ldyBldmVudC4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6Omluc3BlY3RlZFBhZ2VEaWROYXZp
Z2F0ZSk6CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSk6CisKIDIwMjEt
MTAtMDggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0J1aWxk
LXRpbWUgcGVyZl0gRm9yd2FyZC1kZWNsYXJlIG1vcmUgdGhpbmdzIGluIEVsZW1lbnQuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNWE5MDU3N2E2NjBkNjVkMjA1ZmUyYzE2OWQ0NmM4NmMx
MTcxMjI2OC4uMmM4NTFhMzJjYTIxOTMyYzEyNmZhNWMzNjJkNjJmMjcyNjE0M2Q0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMTAtMDggIEJKIEJ1cmcg
IDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92
aWRlIGEgd2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSBub3RpZmll
ZCB3aGVuIHRoZSBpbnNwZWN0ZWQgcGFnZSBuYXZpZ2F0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTMzOAorICAgICAgICA8cmRhcjovLzcxMjAw
MzM4PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBQYXNz
IGFsb25nIGFuIG9uTmF2aWdhdGVkIGV2ZW50IHRvIEluc3BlY3RvckZyb250ZW5kSG9zdCB3aGVu
IHRoZSBXSS5GcmFtZS5NYWluUmVzb3VyY2VEaWRDaGFuZ2UKKyAgICAgICAgZXZlbnQgZmlyZXMg
YXQgYSBtYWluIGZyYW1lIHRhcmdldC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qczoKKyAgICAgICAgKFdJLldl
Ykluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIpOgorICAgICAgICAoV0kuV2ViSW5zcGVjdG9y
RXh0ZW5zaW9uQ29udHJvbGxlci5wcm90b3R5cGUucmVnaXN0ZXJFeHRlbnNpb24pOgorICAgICAg
ICAoV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5wcm90b3R5cGUudW5yZWdpc3Rl
ckV4dGVuc2lvbik6CisgICAgICAgIERvIG5vdCBhZGQgdGhpcyBnbG9iYWwgbGlzdGVuZXIgdW5s
ZXNzIGF0IGxlYXN0IG9uZSBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24KKyAgICAgICAgaXMgY3Vy
cmVudGx5IHJlZ2lzdGVyZWQuCisKKyAgICAgICAgKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNv
bnRyb2xsZXIucHJvdG90eXBlLl9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UpOgorCiAyMDIx
LTEwLTA4ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IGFkZCBUYWJCYXIgY29udGV4dCBtZW51IHN1cHBvcnQgZm9yIFdJLldlYkluc3BlY3RvckV4
dGVuc2lvblRhYkNvbnRlbnRWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2OGQxYjQxM2NkOWQzOTUxYmE4ZmI4
OTVkNjYwNGUyMmYzYjk1MDAuLmMxOTlmZjk2ZWJlNzBhNWM0MjE5YTZmN2FkODQ5NjFkNzVjMDkz
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMTAtMDggIEJKIEJ1cmcgIDxiYnVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBXZWIgSW5zcGVjdG9yOiBwcm92aWRlIGEg
d2F5IGZvciBfV0tJbnNwZWN0b3JFeHRlbnNpb24gY2xpZW50cyB0byBiZSBub3RpZmllZCB3aGVu
IHRoZSBpbnNwZWN0ZWQgcGFnZSBuYXZpZ2F0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTMzOAorICAgICAgICA8cmRhcjovLzcxMjAwMzM4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBBZGQgcGx1bWJp
bmcgZm9yIGEgbmV3IGV2ZW50IHRvIHBhc3MgZnJvbSBXZWJJbnNwZWN0b3JVSSBvdXQgdG8gX1dL
SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SUluc3BlY3RvckV4dGVuc2lvbkNsaWVudC5oOgorICAgICAgICAoQVBJOjpJbnNwZWN0b3JFeHRl
bnNpb25DbGllbnQ6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSk6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRl
OjpJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQ6Omluc3BlY3RlZFBh
Z2VEaWROYXZpZ2F0ZSk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlFeHRl
bnNpb25Db250cm9sbGVyUHJveHk6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZSk6CisgICAgICAg
IENhbGwgdGhlIGRlbGVnYXRlIG1ldGhvZCBmb3IgYWxsIF9XS0luc3BlY3RvckV4dGVuc2lvbnMg
YXNzb2NpYXRlZCB3aXRoIHRoaXMKKyAgICAgICAgaWQ8X1dLSW5zcGVjdG9yRXh0ZW5zaW9uSG9z
dD4uIENsaWVudHMgY2FuIG1hcCBmcm9tIGV4dGVuc2lvbiB0byBpbnNwZWN0b3IgaWYgbmVlZGVk
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUku
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclVJOjppbnNwZWN0ZWRQYWdl
RGlkTmF2aWdhdGUpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjppbnNwZWN0ZWRQYWdlRGlkTmF2
aWdhdGUpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlF
eHRlbnNpb25Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUp
OgorCiAyMDIxLTEwLTA4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtCdWlsZC10aW1lIHBlcmZdIEZvcndhcmQtZGVjbGFyZSBtb3JlIHRoaW5ncyBpbiBFbGVt
ZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50LmgKaW5kZXggN2VmZWIxZjc4Mzg3MDY1OWE0OTRhNjYzMTU2YmEzZTI0MWU3MTk3ZS4u
MTFiMzUxZTg1MzY3MjhjMWE0NjQzNzZlM2E4OWVkM2E3MThmYjM2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKQEAgLTEyMiw2
ICsxMjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzV2ViRXh0ZW5zaW9u
cygpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFNob3dFeHRlbnNpb25U
YWIoY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25JRCYsIGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uVGFiSUQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25z
dCBJbnNwZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJ
RCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3Qg
VVJMJikgeyB9CiAjZW5kaWYKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZW5k
TWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDBiZjFiZDczNjQ3
MzY0Njg3N2ExMDMzOGE0MjQxZWM2MGEyNjQxYmIuLjIxOGRmNmExOTExMjk0ODE1M2ExZGJmNDk1
ZWY1NWVhMGYxZTZmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuY3BwCkBAIC03MDcsNiArNzA3LDE0IEBAIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRIb3N0OjpkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9u
SUQsIGNvbnN0CiAgICAgbV9jbGllbnQtPmRpZEhpZGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uSUQs
IGV4dGVuc2lvblRhYklEKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6Omluc3Bl
Y3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBTdHJpbmcmIG5ld1VSTFN0cmluZykKK3sKKyAgICBp
ZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9jbGllbnQtPmluc3Bl
Y3RlZFBhZ2VEaWROYXZpZ2F0ZSh7IFVSTCgpLCBuZXdVUkxTdHJpbmcgfSk7Cit9CisKIEV4Y2Vw
dGlvbk9yPEpTQzo6SlNWYWx1ZT4gSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpldmFsdWF0ZVNjcmlw
dEluRXh0ZW5zaW9uVGFiKEhUTUxJRnJhbWVFbGVtZW50JiBleHRlbnNpb25GcmFtZUVsZW1lbnQs
IGNvbnN0IFN0cmluZyYgc2NyaXB0U291cmNlKQogewogICAgIEZyYW1lKiBmcmFtZSA9IGV4dGVu
c2lvbkZyYW1lRWxlbWVudC5jb250ZW50RnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaAppbmRleCAxNjIyNmFhMmJiY2RkMDVjYjY3
MDI1MzFkMDMzYjgyZTg2NDA4MzhmLi43YjNiYWFkNzFmMGVmZTljZTY2YTJmZTYyMTMzYzA1MTlj
ZDFhYmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShJTlNQRUNU
T1JfRVhURU5TSU9OUykKICAgICB2b2lkIGRpZFNob3dFeHRlbnNpb25UYWIoY29uc3QgU3RyaW5n
JiBleHRlbnNpb25JRCwgY29uc3QgU3RyaW5nJiBleHRlbnNpb25UYWJJRCk7CiAgICAgdm9pZCBk
aWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgZXh0ZW5zaW9uVGFiSUQpOworICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNv
bnN0IFN0cmluZyYgdXJsKTsKICAgICBFeGNlcHRpb25PcjxKU0M6OkpTVmFsdWU+IGV2YWx1YXRl
U2NyaXB0SW5FeHRlbnNpb25UYWIoSFRNTElGcmFtZUVsZW1lbnQmIGV4dGVuc2lvbkZyYW1lLCBj
b25zdCBTdHJpbmcmIHNjcmlwdFNvdXJjZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCAzMmQ5NzQyYjQ3
YzY3OWI3YWYzNzE1ZGVlMzkxOWU2Njc4ZWMwN2Y4Li41MGUxNGRkYzBmYjAyMDhlYWVjYzM2ZWRh
OWY0NjE0NjA1MWU4YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtMTAwLDYgKzEwMCw3IEBACiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gc3VwcG9ydHNXZWJFeHRlbnNpb25zOwogICAgIFtDb25kaXRpb25h
bD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZFNob3dFeHRlbnNpb25UYWIoRE9N
U3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5zaW9uVGFiSUQpOwogICAgIFtDb25k
aXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGRpZEhpZGVFeHRlbnNpb25U
YWIoRE9NU3RyaW5nIGV4dGVuc2lvbklELCBET01TdHJpbmcgZXh0ZW5zaW9uVGFiSUQpOworICAg
IFtDb25kaXRpb25hbD1JTlNQRUNUT1JfRVhURU5TSU9OU10gdW5kZWZpbmVkIGluc3BlY3RlZFBh
Z2VEaWROYXZpZ2F0ZShET01TdHJpbmcgbmV3VVJMKTsKICAgICBbQ29uZGl0aW9uYWw9SU5TUEVD
VE9SX0VYVEVOU0lPTlNdIGFueSBldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiKEhUTUxJRnJh
bWVFbGVtZW50IGV4dGVuc2lvbkZyYW1lLCBET01TdHJpbmcgc2NyaXB0U291cmNlKTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL1dlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250
cm9sbGVyLmpzCmluZGV4IDEwYWQ5OTlmOTYwYjRjOWYwMWI4OTJlNjg5MmZiMzA2NmY5YWQ3NDku
LmJkNmYxNDc0ZDUzZTg0ZWU3MDMzOTNlZWY2MTFlNDU4ZWY4MWEyYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL1dlYkluc3BlY3Rv
ckV4dGVuc2lvbkNvbnRyb2xsZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcwpA
QCAtMzMsNiArMzMsOCBAQCBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyID0gY2xh
c3MgV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlciBleHRlbgogICAgICAgICB0aGlzLl9l
eHRlbnNpb25UYWJDb250ZW50Vmlld0ZvckV4dGVuc2lvblRhYklETWFwID0gbmV3IE1hcDsKICAg
ICAgICAgdGhpcy5fdGFiSURzRm9yRXh0ZW5zaW9uSURNYXAgPSBuZXcgTXVsdGltYXA7CiAgICAg
ICAgIHRoaXMuX25leHRFeHRlbnNpb25UYWJJRCA9IDE7CisKKyAgICAgICAgV0kuRnJhbWUuYWRk
RXZlbnRMaXN0ZW5lcihXSS5GcmFtZS5FdmVudC5NYWluUmVzb3VyY2VEaWRDaGFuZ2UsIHRoaXMu
X2hhbmRsZU1haW5SZXNvdXJjZURpZENoYW5nZSwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8gUHVi
bGljCkBAIC0yNDQsNiArMjQ2LDIwIEBAIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xs
ZXIgPSBjbGFzcyBXZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyIGV4dGVuCiAgICAgICAg
ICAgICByZXR1cm4ge2Vycm9yOiBlcnJvci5tZXNzYWdlfTsKICAgICAgICAgfQogICAgIH0KKwor
ICAgIC8vIFByaXZhdGUKKworICAgIF9oYW5kbGVNYWluUmVzb3VyY2VEaWRDaGFuZ2UoZXZlbnQp
CisgICAgeworICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5pc01haW5GcmFtZSgpKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIERvbid0IGZpcmUgdGhlIGV2ZW50IHVubGVzcyBv
bmUgb3IgbW9yZSBleHRlbnNpb25zIGFyZSByZWdpc3RlcmVkLgorICAgICAgICBpZiAoIXRoaXMu
X2V4dGVuc2lvbkZvckV4dGVuc2lvbklETWFwLnNpemUpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShX
SS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUudXJsKTsKKyAgICB9CiB9OwogCiBXSS5XZWJJbnNw
ZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLkV2ZW50ID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5z
aW9uQ29udHJvbGxlci5qcy5vcmlnIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29udHJvbGxlcnMvV2ViSW5zcGVjdG9yRXh0ZW5zaW9uQ29udHJvbGxlci5qcy5vcmlnCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjEwYWQ5OTlmOTYwYjRjOWYwMWI4OTJlNjg5MmZiMzA2NmY5YWQ3NDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLmpzLm9yaWcKQEAgLTAsMCArMSwy
NTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xs
ZXIgPSBjbGFzcyBXZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyIGV4dGVuZHMgV0kuT2Jq
ZWN0Cit7CisgICAgY29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3VwZXIoKTsKKworICAg
ICAgICB0aGlzLl9leHRlbnNpb25Gb3JFeHRlbnNpb25JRE1hcCA9IG5ldyBNYXA7CisgICAgICAg
IHRoaXMuX2V4dGVuc2lvblRhYkNvbnRlbnRWaWV3Rm9yRXh0ZW5zaW9uVGFiSURNYXAgPSBuZXcg
TWFwOworICAgICAgICB0aGlzLl90YWJJRHNGb3JFeHRlbnNpb25JRE1hcCA9IG5ldyBNdWx0aW1h
cDsKKyAgICAgICAgdGhpcy5fbmV4dEV4dGVuc2lvblRhYklEID0gMTsKKyAgICB9CisKKyAgICAv
LyBQdWJsaWMKKworICAgIGdldCByZWdpc3RlcmVkRXh0ZW5zaW9uSURzKCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBuZXcgU2V0KHRoaXMuX2V4dGVuc2lvbkZvckV4dGVuc2lvbklETWFwLmtleXMo
KSk7CisgICAgfQorCisgICAgcmVnaXN0ZXJFeHRlbnNpb24oZXh0ZW5zaW9uSUQsIGRpc3BsYXlO
YW1lKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX2V4dGVuc2lvbkZvckV4dGVuc2lvbklETWFw
LmhhcyhleHRlbnNpb25JRCkpIHsKKyAgICAgICAgICAgIFdJLnJlcG9ydEludGVybmFsRXJyb3Io
IlVuYWJsZSB0byByZWdpc3RlciBleHRlbnNpb24sIGl0J3MgYWxyZWFkeSByZWdpc3RlcmVkOiAi
ICsgZXh0ZW5zaW9uSUQpOworICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVu
c2lvbi5FcnJvckNvZGUuUmVnaXN0cmF0aW9uRmFpbGVkOworICAgICAgICB9CisKKyAgICAgICAg
bGV0IGV4dGVuc2lvbiA9IG5ldyBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24oZXh0ZW5zaW9uSUQs
IGRpc3BsYXlOYW1lKTsKKyAgICAgICAgdGhpcy5fZXh0ZW5zaW9uRm9yRXh0ZW5zaW9uSURNYXAu
c2V0KGV4dGVuc2lvbklELCBleHRlbnNpb24pOworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdJLldlYkluc3BlY3RvckV4dGVuc2lvbkNvbnRyb2xsZXIuRXZlbnQuRXh0
ZW5zaW9uQWRkZWQsIHtleHRlbnNpb259KTsKKyAgICB9CisKKyAgICB1bnJlZ2lzdGVyRXh0ZW5z
aW9uKGV4dGVuc2lvbklEKQorICAgIHsKKyAgICAgICAgbGV0IGV4dGVuc2lvbiA9IHRoaXMuX2V4
dGVuc2lvbkZvckV4dGVuc2lvbklETWFwLnRha2UoZXh0ZW5zaW9uSUQpOworICAgICAgICBpZiAo
IWV4dGVuc2lvbikgeworICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcigiVW5hYmxl
IHRvIHVucmVnaXN0ZXIgZXh0ZW5zaW9uIHdpdGggdW5rbm93biBJRDogIiArIGV4dGVuc2lvbklE
KTsKKyAgICAgICAgICAgIHJldHVybiBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2Rl
LkludmFsaWRSZXF1ZXN0OworICAgICAgICB9CisKKyAgICAgICAgbGV0IGV4dGVuc2lvblRhYklE
c1RvUmVtb3ZlID0gdGhpcy5fdGFiSURzRm9yRXh0ZW5zaW9uSURNYXAudGFrZShleHRlbnNpb25J
RCkgfHwgW107CisgICAgICAgIGZvciAobGV0IGV4dGVuc2lvblRhYklEIG9mIGV4dGVuc2lvblRh
YklEc1RvUmVtb3ZlKSB7CisgICAgICAgICAgICBsZXQgdGFiQ29udGVudFZpZXcgPSB0aGlzLl9l
eHRlbnNpb25UYWJDb250ZW50Vmlld0ZvckV4dGVuc2lvblRhYklETWFwLnRha2UoZXh0ZW5zaW9u
VGFiSUQpOworICAgICAgICAgICAgV0kudGFiQnJvd3Nlci5jbG9zZVRhYkZvckNvbnRlbnRWaWV3
KHRhYkNvbnRlbnRWaWV3LCB7c3VwcHJlc3NBbmltYXRpb25zOiB0cnVlfSk7CisgICAgICAgIH0K
KworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5XZWJJbnNwZWN0b3JF
eHRlbnNpb25Db250cm9sbGVyLkV2ZW50LkV4dGVuc2lvblJlbW92ZWQsIHtleHRlbnNpb259KTsK
KyAgICB9CisKKyAgICBjcmVhdGVUYWJGb3JFeHRlbnNpb24oZXh0ZW5zaW9uSUQsIHRhYk5hbWUs
IHRhYkljb25VUkwsIHNvdXJjZVVSTCkKKyAgICB7CisgICAgICAgIGxldCBleHRlbnNpb24gPSB0
aGlzLl9leHRlbnNpb25Gb3JFeHRlbnNpb25JRE1hcC5nZXQoZXh0ZW5zaW9uSUQpOworICAgICAg
ICBpZiAoIWV4dGVuc2lvbikgeworICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcigi
VW5hYmxlIHRvIGNyZWF0ZSB0YWIgZm9yIGV4dGVuc2lvbiB3aXRoIHVua25vd24gSUQ6ICIgKyBl
eHRlbnNpb25JRCArICIgc291cmNlVVJMOiAiICsgc291cmNlVVJMKTsKKyAgICAgICAgICAgIHJl
dHVybiBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLkludmFsaWRSZXF1ZXN0Owor
ICAgICAgICB9CisKKyAgICAgICAgbGV0IGV4dGVuc2lvblRhYklEID0gYFdlYkV4dGVuc2lvblRh
Yi0ke2V4dGVuc2lvbklEfS0ke3RoaXMuX25leHRFeHRlbnNpb25UYWJJRCsrfWA7CisgICAgICAg
IGxldCB0YWJDb250ZW50VmlldyA9IG5ldyBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25UYWJDb250
ZW50VmlldyhleHRlbnNpb24sIGV4dGVuc2lvblRhYklELCB0YWJOYW1lLCB0YWJJY29uVVJMLCBz
b3VyY2VVUkwpOworCisgICAgICAgIHRoaXMuX3RhYklEc0ZvckV4dGVuc2lvbklETWFwLmFkZChl
eHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQpOworICAgICAgICB0aGlzLl9leHRlbnNpb25UYWJD
b250ZW50Vmlld0ZvckV4dGVuc2lvblRhYklETWFwLnNldChleHRlbnNpb25UYWJJRCwgdGFiQ29u
dGVudFZpZXcpOworICAgICAgICBXSS50YWJCcm93c2VyLmFkZFRhYkZvckNvbnRlbnRWaWV3KHRh
YkNvbnRlbnRWaWV3LCB7c3VwcHJlc3NBbmltYXRpb25zOiB0cnVlfSk7CisKKyAgICAgICAgLy8g
VGhlIGNhbGxpbmcgY29udmVudGlvbiBpcyB0byByZXR1cm4gYW4gZXJyb3Igc3RyaW5nIG9yIGEg
cmVzdWx0IG9iamVjdC4KKyAgICAgICAgcmV0dXJuIHtleHRlbnNpb25UYWJJRH07CisgICAgfQor
CisgICAgZXZhbHVhdGVTY3JpcHRGb3JFeHRlbnNpb24oZXh0ZW5zaW9uSUQsIHNjcmlwdFNvdXJj
ZSwge2ZyYW1lVVJMLCBjb250ZXh0U2VjdXJpdHlPcmlnaW4sIHVzZUNvbnRlbnRTY3JpcHRDb250
ZXh0fSA9IHt9KQorICAgIHsKKyAgICAgICAgbGV0IGV4dGVuc2lvbiA9IHRoaXMuX2V4dGVuc2lv
bkZvckV4dGVuc2lvbklETWFwLmdldChleHRlbnNpb25JRCk7CisgICAgICAgIGlmICghZXh0ZW5z
aW9uKSB7CisgICAgICAgICAgICBXSS5yZXBvcnRJbnRlcm5hbEVycm9yKCJVbmFibGUgdG8gZXZh
bHVhdGUgc2NyaXB0IGZvciBleHRlbnNpb24gd2l0aCB1bmtub3duIElEOiAiICsgZXh0ZW5zaW9u
SUQpOworICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNv
ZGUuSW52YWxpZFJlcXVlc3Q7CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRTogPHJkYXI6
Ly9wcm9ibGVtLzc0MTgwMzU1PiBpbXBsZW1lbnQgZXhlY3V0aW9uIGNvbnRleHQgc2VsZWN0aW9u
IG9wdGlvbnMKKyAgICAgICAgaWYgKGZyYW1lVVJMKSB7CisgICAgICAgICAgICBXSS5yZXBvcnRJ
bnRlcm5hbEVycm9yKCJldmFsdWF0ZVNjcmlwdEZvckV4dGVuc2lvbjogdGhlICdmcmFtZVVSTCcg
b3B0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7CisgICAgICAgICAgICByZXR1cm4gV0ku
V2ViSW5zcGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZS5Ob3RJbXBsZW1lbnRlZDsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChjb250ZXh0U2VjdXJpdHlPcmlnaW4pIHsKKyAgICAgICAgICAgIFdJ
LnJlcG9ydEludGVybmFsRXJyb3IoImV2YWx1YXRlU2NyaXB0Rm9yRXh0ZW5zaW9uOiB0aGUgJ2Nv
bnRleHRTZWN1cml0eU9yaWdpbicgb3B0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7Cisg
ICAgICAgICAgICByZXR1cm4gV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZS5Ob3RJ
bXBsZW1lbnRlZDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh1c2VDb250ZW50U2NyaXB0Q29u
dGV4dCkgeworICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcigiZXZhbHVhdGVTY3Jp
cHRGb3JFeHRlbnNpb246IHRoZSAndXNlQ29udGVudFNjcmlwdENvbnRleHQnIG9wdGlvbiBpcyBu
b3QgeWV0IGltcGxlbWVudGVkLiIpOworICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3Rv
ckV4dGVuc2lvbi5FcnJvckNvZGUuTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIH0KKworICAgICAg
ICBsZXQgZXZhbHVhdGlvbkNvbnRleHQgPSBXSS5ydW50aW1lTWFuYWdlci5hY3RpdmVFeGVjdXRp
b25Db250ZXh0OworICAgICAgICByZXR1cm4gZXZhbHVhdGlvbkNvbnRleHQudGFyZ2V0LlJ1bnRp
bWVBZ2VudC5ldmFsdWF0ZS5pbnZva2UoeworICAgICAgICAgICAgZXhwcmVzc2lvbjogc2NyaXB0
U291cmNlLAorICAgICAgICAgICAgb2JqZWN0R3JvdXA6ICJleHRlbnNpb24tZXZhbHVhdGlvbiIs
CisgICAgICAgICAgICBpbmNsdWRlQ29tbWFuZExpbmVBUEk6IHRydWUsCisgICAgICAgICAgICBy
ZXR1cm5CeVZhbHVlOiB0cnVlLAorICAgICAgICAgICAgZ2VuZXJhdGVQcmV2aWV3OiBmYWxzZSwK
KyAgICAgICAgICAgIHNhdmVSZXN1bHQ6IGZhbHNlLAorICAgICAgICAgICAgY29udGV4dElkOiBl
dmFsdWF0aW9uQ29udGV4dC5pZCwKKyAgICAgICAgfSkudGhlbigocGF5bG9hZCkgPT4geworICAg
ICAgICAgICAgbGV0IHJlc3VsdE9yRXJyb3IgPSBwYXlsb2FkLnJlc3VsdDsKKyAgICAgICAgICAg
IGxldCB3YXNUaHJvd24gPSBwYXlsb2FkLndhc1Rocm93bjsKKyAgICAgICAgICAgIGxldCB7dHlw
ZSwgdmFsdWV9ID0gcmVzdWx0T3JFcnJvcjsKKyAgICAgICAgICAgIHJldHVybiB3YXNUaHJvd24g
PyB7ImVycm9yIjogcmVzdWx0T3JFcnJvci5kZXNjcmlwdGlvbn0gOiB7InJlc3VsdCI6IHZhbHVl
fTsKKyAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiBlcnJvci5kZXNjcmlwdGlvbik7CisgICAg
fQorICAgIAorICAgIHJlbG9hZEZvckV4dGVuc2lvbihleHRlbnNpb25JRCwge2lnbm9yZUNhY2hl
LCB1c2VyQWdlbnQsIGluamVjdGVkU2NyaXB0fSA9IHt9KQorICAgIHsKKyAgICAgICAgbGV0IGV4
dGVuc2lvbiA9IHRoaXMuX2V4dGVuc2lvbkZvckV4dGVuc2lvbklETWFwLmdldChleHRlbnNpb25J
RCk7CisgICAgICAgIGlmICghZXh0ZW5zaW9uKSB7CisgICAgICAgICAgICBXSS5yZXBvcnRJbnRl
cm5hbEVycm9yKCJVbmFibGUgdG8gZXZhbHVhdGUgc2NyaXB0IGZvciBleHRlbnNpb24gd2l0aCB1
bmtub3duIElEOiAiICsgZXh0ZW5zaW9uSUQpOworICAgICAgICAgICAgcmV0dXJuIFdJLldlYklu
c3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUuSW52YWxpZFJlcXVlc3Q7CisgICAgICAgIH0KKwor
ICAgICAgICAvLyBGSVhNRTogPHdlYmtpdC5vcmcvYi8yMjIzMjg+IEltcGxlbWVudCBgdXNlckFn
ZW50YCBhbmQgYGluamVjdGVkU2NyaXB0YCBvcHRpb25zIGZvciBgZGV2dG9vbHMuaW5zcGVjdGVk
V2luZG93LnJlbG9hZGAgY29tbWFuZAorICAgICAgICBpZiAodXNlckFnZW50KSB7CisgICAgICAg
ICAgICBXSS5yZXBvcnRJbnRlcm5hbEVycm9yKCJyZWxvYWRGb3JFeHRlbnNpb246IHRoZSAndXNl
ckFnZW50JyBvcHRpb24gaXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKTsKKyAgICAgICAgICAgIHJl
dHVybiBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLk5vdEltcGxlbWVudGVkOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKGluamVjdGVkU2NyaXB0KSB7CisgICAgICAgICAgICBX
SS5yZXBvcnRJbnRlcm5hbEVycm9yKCJyZWxvYWRGb3JFeHRlbnNpb246IHRoZSAnaW5qZWN0ZWRT
Y3JpcHQnIG9wdGlvbiBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworICAgICAgICAgICAgcmV0
dXJuIFdJLldlYkluc3BlY3RvckV4dGVuc2lvbi5FcnJvckNvZGUuTm90SW1wbGVtZW50ZWQ7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGxldCB0YXJnZXQgPSBXSS5hc3N1bWluZ01haW5U
YXJnZXQoKTsKKyAgICAgICAgaWYgKCF0YXJnZXQuaGFzQ29tbWFuZCgiUGFnZS5yZWxvYWQiKSkK
KyAgICAgICAgICAgIHJldHVybiBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLklu
dmFsaWRSZXF1ZXN0OworICAgICAgICAKKyAgICAgICAgcmV0dXJuIHRhcmdldC5QYWdlQWdlbnQu
cmVsb2FkLmludm9rZSh7aWdub3JlQ2FjaGV9KTsKKyAgICB9CisgICAgCisgICAgc2hvd0V4dGVu
c2lvblRhYihleHRlbnNpb25UYWJJRCkKKyAgICB7CisgICAgICAgIGxldCB0YWJDb250ZW50Vmll
dyA9IHRoaXMuX2V4dGVuc2lvblRhYkNvbnRlbnRWaWV3Rm9yRXh0ZW5zaW9uVGFiSURNYXAuZ2V0
KGV4dGVuc2lvblRhYklEKTsKKyAgICAgICAgaWYgKCF0YWJDb250ZW50VmlldykgeworICAgICAg
ICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcigiVW5hYmxlIHRvIHNob3cgZXh0ZW5zaW9uIHRh
YiB3aXRoIHVua25vd24gZXh0ZW5zaW9uVGFiSUQ6ICIgKyBleHRlbnNpb25UYWJJRCk7CisgICAg
ICAgICAgICByZXR1cm4gV0kuV2ViSW5zcGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZS5JbnZhbGlk
UmVxdWVzdDsKKyAgICAgICAgfQorCisgICAgICAgIHRhYkNvbnRlbnRWaWV3LnZpc2libGUgPSB0
cnVlOworICAgICAgICBsZXQgc3VjY2VzcyA9IFdJLnRhYkJyb3dzZXIuc2hvd1RhYkZvckNvbnRl
bnRWaWV3KHRhYkNvbnRlbnRWaWV3LCB7CisgICAgICAgICAgICBpbml0aWF0b3JIaW50OiBXSS5U
YWJCcm93c2VyLlRhYk5hdmlnYXRpb25Jbml0aWF0b3IuRnJvbnRlbmRBUEksCisgICAgICAgIH0p
OworCisgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJu
YWxFcnJvcigiVW5hYmxlIHRvIHNob3cgZXh0ZW5zaW9uIHRhYiB3aXRoIGV4dGVuc2lvblRhYklE
OiAiICsgZXh0ZW5zaW9uVGFiSUQpOworICAgICAgICAgICAgcmV0dXJuIFdJLldlYkluc3BlY3Rv
ckV4dGVuc2lvbi5FcnJvckNvZGUuSW50ZXJuYWxFcnJvcjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGhpZGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9uVGFiSUQsIG9wdGlvbnMgPSB7fSkKKyAgICB7
CisgICAgICAgIGxldCB0YWJDb250ZW50VmlldyA9IHRoaXMuX2V4dGVuc2lvblRhYkNvbnRlbnRW
aWV3Rm9yRXh0ZW5zaW9uVGFiSURNYXAuZ2V0KGV4dGVuc2lvblRhYklEKTsKKyAgICAgICAgaWYg
KCF0YWJDb250ZW50VmlldykgeworICAgICAgICAgICAgV0kucmVwb3J0SW50ZXJuYWxFcnJvcigi
VW5hYmxlIHRvIHNob3cgZXh0ZW5zaW9uIHRhYiB3aXRoIHVua25vd24gZXh0ZW5zaW9uVGFiSUQ6
ICIgKyBleHRlbnNpb25UYWJJRCk7CisgICAgICAgICAgICByZXR1cm4gV0kuV2ViSW5zcGVjdG9y
RXh0ZW5zaW9uLkVycm9yQ29kZS5JbnZhbGlkUmVxdWVzdDsKKyAgICAgICAgfQorCisgICAgICAg
IHRhYkNvbnRlbnRWaWV3LnZpc2libGUgPSBmYWxzZTsKKyAgICAgICAgV0kudGFiQnJvd3Nlci5j
bG9zZVRhYkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3LCBvcHRpb25zKTsKKworICAgICAg
ICBjb25zb2xlLmFzc2VydCghdGFiQ29udGVudFZpZXcudmlzaWJsZSk7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KCF0YWJDb250ZW50Vmlldy5pc0Nsb3NlZCk7CisgICAgfQorCisgICAgYWRkQ29u
dGV4dE1lbnVJdGVtc0ZvckNsb3NlZEV4dGVuc2lvblRhYnMoY29udGV4dE1lbnUpCisgICAgewor
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKworICAgICAgICBmb3IgKGxl
dCB0YWJDb250ZW50VmlldyBvZiB0aGlzLl9leHRlbnNpb25UYWJDb250ZW50Vmlld0ZvckV4dGVu
c2lvblRhYklETWFwLnZhbHVlcygpKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgZXh0ZW5zaW9u
IHRhYiBoYXMgYmVlbiB1bmNoZWNrZWQgaW4gdGhlIFRhYkJhciBjb250ZXh0IG1lbnUsIHRoZW4g
dGhlIHRhYkJhckl0ZW0KKyAgICAgICAgICAgIC8vIGZvciB0aGUgZXh0ZW5zaW9uIHRhYiB3aWxs
IG5vdCBiZSBjb25uZWN0ZWQgdG8gYSBwYXJlbnQgVGFiQmFyLgorICAgICAgICAgICAgbGV0IHNo
b3VsZEluY2x1ZGVUYWIgPSAhdGFiQ29udGVudFZpZXcudmlzaWJsZSB8fCAhdGFiQ29udGVudFZp
ZXcudGFiQmFySXRlbS5wYXJlbnRUYWJCYXI7CisgICAgICAgICAgICBpZiAoIXNob3VsZEluY2x1
ZGVUYWIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGNvbnRleHRN
ZW51LmFwcGVuZEl0ZW0odGFiQ29udGVudFZpZXcudGFiSW5mbygpLmRpc3BsYXlOYW1lLCAoKSA9
PiB7CisgICAgICAgICAgICAgICAgdGhpcy5zaG93RXh0ZW5zaW9uVGFiKHRhYkNvbnRlbnRWaWV3
LmV4dGVuc2lvblRhYklEKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisg
ICAgYWRkQ29udGV4dE1lbnVJdGVtc0ZvckFsbEV4dGVuc2lvblRhYnMoY29udGV4dE1lbnUpCisg
ICAgeworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKKworICAgICAgICBm
b3IgKGxldCB0YWJDb250ZW50VmlldyBvZiB0aGlzLl9leHRlbnNpb25UYWJDb250ZW50Vmlld0Zv
ckV4dGVuc2lvblRhYklETWFwLnZhbHVlcygpKSB7CisgICAgICAgICAgICBsZXQgY2hlY2tlZCA9
IHRhYkNvbnRlbnRWaWV3LnZpc2libGUgfHwgISF0YWJDb250ZW50Vmlldy50YWJCYXJJdGVtLnBh
cmVudFRhYkJhcjsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZENoZWNrYm94SXRlbSh0
YWJDb250ZW50Vmlldy50YWJJbmZvKCkuZGlzcGxheU5hbWUsICgpID0+IHsKKyAgICAgICAgICAg
ICAgICBpZiAoIWNoZWNrZWQpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0V4dGVuc2lv
blRhYih0YWJDb250ZW50Vmlldy5leHRlbnNpb25UYWJJRCk7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVFeHRlbnNpb25UYWIodGFiQ29udGVudFZp
ZXcuZXh0ZW5zaW9uVGFiSUQpOworICAgICAgICAgICAgfSwgY2hlY2tlZCk7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBldmFsdWF0ZVNjcmlwdEluRXh0ZW5zaW9uVGFiKGV4dGVuc2lvblRhYklE
LCBzY3JpcHRTb3VyY2UpCisgICAgeworICAgICAgICBsZXQgdGFiQ29udGVudFZpZXcgPSB0aGlz
Ll9leHRlbnNpb25UYWJDb250ZW50Vmlld0ZvckV4dGVuc2lvblRhYklETWFwLmdldChleHRlbnNp
b25UYWJJRCk7CisgICAgICAgIGlmICghdGFiQ29udGVudFZpZXcpIHsKKyAgICAgICAgICAgIFdJ
LnJlcG9ydEludGVybmFsRXJyb3IoIlVuYWJsZSB0byBldmFsdWF0ZSB3aXRoIHVua25vd24gZXh0
ZW5zaW9uVGFiSUQ6ICIgKyBleHRlbnNpb25UYWJJRCk7CisgICAgICAgICAgICByZXR1cm4gV0ku
V2ViSW5zcGVjdG9yRXh0ZW5zaW9uLkVycm9yQ29kZS5JbnZhbGlkUmVxdWVzdDsKKyAgICAgICAg
fQorCisgICAgICAgIGxldCBpZnJhbWUgPSB0YWJDb250ZW50Vmlldy5pZnJhbWVFbGVtZW50Owor
ICAgICAgICBpZiAoIShpZnJhbWUgaW5zdGFuY2VvZiBIVE1MSUZyYW1lRWxlbWVudCkpIHsKKyAg
ICAgICAgICAgIFdJLnJlcG9ydEludGVybmFsRXJyb3IoIlVuYWJsZSB0byBldmFsdWF0ZSB3aXRo
b3V0IGFuIDxpZnJhbWU+IGZvciBleHRlbnNpb25UYWJJRDogIiArIGV4dGVuc2lvblRhYklEKTsK
KyAgICAgICAgICAgIHJldHVybiBXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb24uRXJyb3JDb2RlLklu
dmFsaWRSZXF1ZXN0OworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJl
dHVybiB7cmVzdWx0OiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuZXZhbHVhdGVTY3JpcHRJbkV4dGVu
c2lvblRhYihpZnJhbWUsIHNjcmlwdFNvdXJjZSl9OworICAgICAgICB9IGNhdGNoIChlcnJvcikg
eworICAgICAgICAgICAgcmV0dXJuIHtlcnJvcjogZXJyb3IubWVzc2FnZX07CisgICAgICAgIH0K
KyAgICB9Cit9OworCitXSS5XZWJJbnNwZWN0b3JFeHRlbnNpb25Db250cm9sbGVyLkV2ZW50ID0g
eworICAgIEV4dGVuc2lvbkFkZGVkOiAiZXh0ZW5zaW9uLWFkZGVkIiwKKyAgICBFeHRlbnNpb25S
ZW1vdmVkOiAiZXh0ZW5zaW9uLXJlbW92ZWQiLAorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQuaAppbmRleCBh
ZDYxOTJmYTY4ODE0MjE1NWEwYjMyMTI4Zjc5MTIzMTM4ZTE4ODAyLi4zYWY4M2I4MmExMzE5YjQ1
ZGRhNmQ5NjFmNWE1ODY4MGY0ZGI2MzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lvbkNsaWVudC5oCkBAIC0zNyw2ICsz
Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNv
bnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
SGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBXVEY6OlVSTCYp
IHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxl
Z2F0ZS5oCmluZGV4IGVmZTg0MTRkMWYwODBmZjI1YTg0MTc0Y2EzZDg2NGJmY2RkMjFiNDguLjUw
Y2JkYWU3MzFlZTg3YTVlZmE2ZDg3Yjc5OGM0ZTI0NTk3YTNiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZS5oCkBAIC01Miw2ICs1MiwxMiBAQCBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogICovCiAtICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uICopZXh0ZW5zaW9uIGRpZEhpZGVUYWJXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKil0YWJJ
ZGVudGlmaWVyOwogCisvKioKKyAqIEBhYnN0cmFjdCBDYWxsZWQgd2hlbiB0aGUgaW5zcGVjdGVk
IHBhZ2UgaGFzIG5hdmlnYXRlZCB0byBhIG5ldyBVUkwuCisgKiBAcGFyYW0gdXJsIFRoZSBuZXcg
VVJMIGZvciB0aGUgaW5zcGVjdGVkIHBhZ2UuCisgKi8KKy0gKHZvaWQpaW5zcGVjdG9yRXh0ZW5z
aW9uOihfV0tJbnNwZWN0b3JFeHRlbnNpb24gKilleHRlbnNpb24gaW5zcGVjdGVkUGFnZURpZE5h
dmlnYXRlOihOU1VSTCAqKXVybDsKKwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0
b3JFeHRlbnNpb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKaW5kZXggODE5MGVlNzJlYWY2Njll
OWU1MDcwODE0NDliNjAwOGIwYTk5NjZiNi4uMjdkZTgwZWYwZTM1NTVmYWI5ODk0YTEzMjFhYTFm
NWExNmNiZGFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgKQEAg
LTU2LDYgKzU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gQVBJOjpJbnNwZWN0b3JFeHRlbnNp
b25DbGllbnQKICAgICAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rv
cjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKICAgICAgICAgdm9pZCBkaWRIaWRlRXh0ZW5z
aW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uVGFiSUQmKSBvdmVycmlkZTsKKyAgICAg
ICAgdm9pZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJikgb3ZlcnJpZGU7CiAK
ICAgICAgICAgSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUmIG1faW5zcGVjdG9yRXh0ZW5zaW9u
RGVsZWdhdGU7CiAgICAgfTsKQEAgLTY2LDYgKzY3LDcgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3Qg
ewogICAgICAgICBib29sIGluc3BlY3RvckV4dGVuc2lvbkRpZFNob3dUYWJXaXRoSWRlbnRpZmll
ciA6IDE7CiAgICAgICAgIGJvb2wgaW5zcGVjdG9yRXh0ZW5zaW9uRGlkSGlkZVRhYldpdGhJZGVu
dGlmaWVyIDogMTsKKyAgICAgICAgYm9vbCBpbnNwZWN0b3JFeHRlbnNpb25JbnNwZWN0ZWRQYWdl
RGlkTmF2aWdhdGUgOiAxOwogICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRXh0
ZW5zaW9uRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29j
b2EvSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0KaW5kZXggN2UwZmI5OGI2ZjNlZmE2ZWM4
OWM5NGY5OGY0N2VlNDI3ODRjYTI0YS4uZGM2NzcwMGRkMTY3ZjVmYjQ0ZjJiY2FhOTcwZDcxZDBl
ZDVjYWY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0Nv
Y29hL0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tbQpAQCAt
NDEsNiArNDEsNyBAQCBJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTo6SW5zcGVjdG9yRXh0ZW5z
aW9uRGVsZWdhdGUoX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICppbgogewogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLmluc3BlY3RvckV4dGVuc2lvbkRpZFNob3dUYWJXaXRoSWRlbnRpZmllciA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvckV4dGVuc2lvbjpkaWRT
aG93VGFiV2l0aElkZW50aWZpZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9y
RXh0ZW5zaW9uRGlkSGlkZVRhYldpdGhJZGVudGlmaWVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yRXh0ZW5zaW9uOmRpZEhpZGVUYWJXaXRoSWRlbnRp
ZmllcjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JFeHRlbnNpb25JbnNwZWN0
ZWRQYWdlRGlkTmF2aWdhdGUgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihpbnNwZWN0b3JFeHRlbnNpb246aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlOildOwogCiAgICAg
aW5zcGVjdG9yRXh0ZW5zaW9uLT5fZXh0ZW5zaW9uLT5zZXRDbGllbnQobWFrZVVuaXF1ZVJlZjxJ
bnNwZWN0b3JFeHRlbnNpb25DbGllbnQ+KCp0aGlzKSk7CiB9CkBAIC04NSw2ICs4NiwxOCBAQCB2
b2lkIEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQ6
OmRpZEhpZGVFeHRlbnNpb25UYWIoYwogICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3JFeHRlbnNpb246
bV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2luc3BlY3RvckV4dGVuc2lvbi5nZXQoKS5n
ZXQoKSBkaWRIaWRlVGFiV2l0aElkZW50aWZpZXI6ZXh0ZW5zaW9uVGFiSURdOwogfQogCit2b2lk
IEluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlOjpJbnNwZWN0b3JFeHRlbnNpb25DbGllbnQ6Omlu
c3BlY3RlZFBhZ2VEaWROYXZpZ2F0ZShjb25zdCBXVEY6OlVSTCYgbmV3VVJMKQoreworICAgIGlm
ICghbV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0
b3JFeHRlbnNpb25JbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8mIGRlbGVnYXRlID0gbV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2RlbGVn
YXRlOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0
ZSBpbnNwZWN0b3JFeHRlbnNpb246bV9pbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZS5tX2luc3Bl
Y3RvckV4dGVuc2lvbi5nZXQoKS5nZXQoKSBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6bmV3VVJM
XTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVD
VE9SX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlclByb3h5LmNwcAppbmRleCAyODQyNDRmZmQyZGVkMjUyMTBkYTY1YThmNTFiYmU5YjAzYWQ2
N2I4Li4xYzY3MDJkMGRjOGYzMGRjYjA5ZWQ5NTc1NDUzNjIyOTk4ZTVmNjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNp
b25Db250cm9sbGVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKICNpbmNsdWRlICJB
UElJbnNwZWN0b3JFeHRlbnNpb24uaCIKKyNpbmNsdWRlICJBUElVUkwuaCIKICNpbmNsdWRlICJX
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKQEAgLTI1NSw2ICsyNTYsMTcgQEAgdm9pZCBXZWJJbnNwZWN0b3JV
SUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eTo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNw
ZWN0b3IKICAgICBleHRlbnNpb25DbGllbnQtPmRpZEhpZGVFeHRlbnNpb25UYWIoZXh0ZW5zaW9u
VGFiSUQpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5
OjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwpCit7CisgICAgZm9y
IChhdXRvJiBleHRlbnNpb24gOiBjb3B5VG9WZWN0b3IobV9leHRlbnNpb25BUElPYmplY3RNYXAu
dmFsdWVzKCkpKSB7CisgICAgICAgIGF1dG8gZXh0ZW5zaW9uQ2xpZW50ID0gZXh0ZW5zaW9uLT5j
bGllbnQoKTsKKyAgICAgICAgaWYgKCFleHRlbnNpb25DbGllbnQpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICBleHRlbnNpb25DbGllbnQtPmluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZShuZXdVUkwpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IGJiOThhNjNkY2Y4OTc4NWI2OGFhYjdhYmE4
ODBlNWZiNDM3MDU0OWMuLmJiMDg5MTNkM2ZkM2M4ZmEzN2NmM2Q2NzEyOTcxYTRlZTk5MjFkOGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5oCkBA
IC02OCw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eSBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFi
KGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lv
blRhYklEJik7CiAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6
RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CisgICAgdm9p
ZCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJik7CiAKICAgICAvLyBOb3RpZmlj
YXRpb25zLgogICAgIHZvaWQgaW5zcGVjdG9yRnJvbnRlbmRMb2FkZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBiMDJmYmJhNzI2ZmIzYzVhYmViYWYyODY3MzAyYThjMjdhNjU0NmEyLi42NDMzMTQz
MjRkZDVkMmMxNWY4MzFjYjM3MjY2YWQ4NjFiN2I4YTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0y
NSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xs
ZXJQcm94eSB7CiAgICAgRGlkU2hvd0V4dGVuc2lvblRhYihTdHJpbmcgZXh0ZW5zaW9uSUQsIFN0
cmluZyBleHRlbnNpb25UYWJJRCkKICAgICBEaWRIaWRlRXh0ZW5zaW9uVGFiKFN0cmluZyBleHRl
bnNpb25JRCwgU3RyaW5nIGV4dGVuc2lvblRhYklEKQorICAgIEluc3BlY3RlZFBhZ2VEaWROYXZp
Z2F0ZShVUkwgbmV3VVJMKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJ
T05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAppbmRleCBlYjhjZjgyZTkxZTQ3MmY0YTMyZTE3ZmI2
M2IzYmM1ZTk0YTJiNGMyLi5jOGFkMzE4Njk1ZDlhYzVkZGRmMmY5MWNiMjIwNTZlMWM2NmI2ZGJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwNSw2ICszMDUsMTQgQEAgdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JVSTo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4
dGVuc2lvbklEJiBleHQKIAogICAgIG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+ZGlkSGlkZUV4dGVu
c2lvblRhYihleHRlbnNpb25JRCwgZXh0ZW5zaW9uVGFiSUQpOwogfQorCit2b2lkIFJlbW90ZVdl
Ykluc3BlY3RvclVJOjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJiBuZXdVUkwp
Cit7CisgICAgaWYgKCFtX2V4dGVuc2lvbkNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZXh0ZW5zaW9uQ29udHJvbGxlci0+aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKG5ld1VS
TCk7Cit9CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogCiBXZWJDb3Jl
OjpQYWdlKiBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6ZnJvbnRlbmRQYWdlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuaAppbmRleCBmZDQ1ZDIxNmNlMWExY2RkNmM4NDc1OGNjNzY2OGZlYzJiZmM3ZjZjLi4zNmM3
MDExM2NmNGI3ZjkyOWIxNGFhYWM5ZWQ0NTc0NzYxZWQ1NWRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTIyLDYgKzEyMiw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzV2ViRXh0ZW5z
aW9ucygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU2hvd0V4dGVuc2lvblRhYihjb25zdCBJbnNw
ZWN0b3I6OkV4dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4
dGVuc2lvbklEJiwgY29uc3QgSW5zcGVjdG9yOjpFeHRlbnNpb25UYWJJRCYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYpIG92ZXJyaWRlOwog
I2VuZGlmCiAKICAgICBib29sIGNhblNhdmUoKSBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
VUkuY3BwCmluZGV4IDE3MDM1MTAyNThhNDg2ZTAyM2QwODI5OWRhOTI0MDNmMGY3NGRmZjcuLmZh
N2NjZDk0OTc5NjA1MzJlMmMwNDk3MjM0NGQzZjMxZDc5M2I2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
Mzc5LDYgKzM3OSwxNCBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjpkaWRIaWRlRXh0ZW5zaW9uVGFi
KGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uSUQsIGNvbnN0IFN0cmluZwogCiAgICAgbV9leHRlbnNp
b25Db250cm9sbGVyLT5kaWRIaWRlRXh0ZW5zaW9uVGFiKGV4dGVuc2lvbklELCBleHRlbnNpb25U
YWJJRCk7CiB9CisKK3ZvaWQgV2ViSW5zcGVjdG9yVUk6Omluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZShjb25zdCBVUkwmIG5ld1VSTCkKK3sKKyAgICBpZiAoIW1fZXh0ZW5zaW9uQ29udHJvbGxlcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9leHRlbnNpb25Db250cm9sbGVyLT5pbnNwZWN0ZWRQ
YWdlRGlkTmF2aWdhdGUobmV3VVJMKTsKK30KICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SX0VY
VEVOU0lPTlMpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNob3dDb25zb2xlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAppbmRl
eCBlYzQ5NjQzODIyNTQwYzc4ZTJiYjMzZTc3ZDk3M2VlOWI5MTJkNWJhLi5mNmVkNzA0Y2ZhZGNl
MDk0ZTA5NTE4ZTU2Zjk5NjFhY2ExN2UyNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCkBAIC0xNTYsNiArMTU2LDcgQEAg
cHVibGljOgogICAgIGJvb2wgc3VwcG9ydHNXZWJFeHRlbnNpb25zKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBj
b25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRI
aWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNw
ZWN0b3I6OkV4dGVuc2lvblRhYklEJikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnNwZWN0ZWRQYWdl
RGlkTmF2aWdhdGUoY29uc3QgVVJMJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIHZvaWQgc2Vu
ZE1lc3NhZ2VUb0JhY2tlbmQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlci5jcHAKaW5kZXggOTc0N2U0YzBiNmNlYTlhZmJi
NmFjY2UzMGY2NWJiZWM5MjJlNzJiMS4uOTk4ZDE4ZTA1OGU0MDM2OGZkNDdhMDY2ZGE0NGY2YTg3
M2NkZTQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmNw
cApAQCAtNDM3LDYgKzQzNywxMSBAQCB2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJv
bGxlcjo6ZGlkSGlkZUV4dGVuc2lvblRhYihjb25zdCBJbnNwZWN0b3I6OkV4dAogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpEaWRIaWRlRXh0ZW5z
aW9uVGFiIHsgZXh0ZW5zaW9uSUQsIGV4dGVuc2lvblRhYklEIH0sIG1faW5zcGVjdG9yUGFnZUlk
ZW50aWZpZXIpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlcjo6
aW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlKGNvbnN0IFVSTCYgbmV3VVJMKQoreworICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5OjpJbnNwZWN0ZWRQYWdl
RGlkTmF2aWdhdGUgeyBuZXdVUkwgfSwgbV9pbnNwZWN0b3JQYWdlSWRlbnRpZmllcik7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUl9FWFRF
TlNJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyLmgKaW5kZXgg
ZTU0NTYyNjk3MDE5MzgxYmQ1NmM1MDAzNTljODk0OWU5NjhkMDU1MS4uNmU5NmYwOGEwY2MyMzRm
ZTc0MDliMzVlY2VlMDJjNGI0MmFmNmE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlci5oCkBAIC03Niw2ICs3Niw3IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsYmFj
a3MgZnJvbSB0aGUgZnJvbnRlbmQuCiAgICAgdm9pZCBkaWRTaG93RXh0ZW5zaW9uVGFiKGNvbnN0
IEluc3BlY3Rvcjo6RXh0ZW5zaW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklE
Jik7CiAgICAgdm9pZCBkaWRIaWRlRXh0ZW5zaW9uVGFiKGNvbnN0IEluc3BlY3Rvcjo6RXh0ZW5z
aW9uSUQmLCBjb25zdCBJbnNwZWN0b3I6OkV4dGVuc2lvblRhYklEJik7CisgICAgdm9pZCBpbnNw
ZWN0ZWRQYWdlRGlkTmF2aWdhdGUoY29uc3QgVVJMJik7CiAKIHByaXZhdGU6CiAgICAgSlNDOjpK
U09iamVjdCogdW53cmFwRXZhbHVhdGlvblJlc3VsdEFzT2JqZWN0KFdlYkNvcmU6Okluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6RXZhbHVhdGlvblJlc3VsdCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTgzNWJmMDk4ZjA0
M2Q1ZDc4ZmFjNTQyODEwMGMyMDI4N2Q0MjlmNi4uNDZiZmU3MWJjYWI5ZDY1ZjM1ZDk3MDA2MDQx
MzA0MjBhMGYzMzkyNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEwLTA4ICBCSiBCdXJnICA8YmJ1cmdAYXBw
bGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gV2ViIEluc3BlY3RvcjogcHJvdmlkZSBhIHdheSBm
b3IgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uIGNsaWVudHMgdG8gYmUgbm90aWZpZWQgd2hlbiB0aGUg
aW5zcGVjdGVkIHBhZ2UgbmF2aWdhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzEzMzgKKyAgICAgICAgPHJkYXI6Ly83MTIwMDMzOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgQWRkIGEgbmV3IHRlc3Qg
dG8gdmVyaWZ5IHRoYXQgdHJpZ2dlcmluZyBhIG5hdmlnYXRpb24gb24gdGhlIGluc3BlY3RlZCBX
S1dlYlZpZXcKKyAgICAgICAgY2F1c2VzIHRoZSAtZXh0ZW5zaW9uOmluc3BlY3RlZFBhZ2VEaWRO
YXZpZ2F0ZTogbWV0aG9kIG9mIF9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlCisgICAgICAg
IHRvIGZpcmUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dL
SW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW06CisgICAgICAgIChyZXNldEdsb2JhbFN0YXRl
KToKKyAgICAgICAgKC1bSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVGb3JUZXN0aW5nIGluc3Bl
Y3RvckV4dGVuc2lvbjppbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGU6XSk6CisgICAgICAgIChURVNU
KToKKwogMjAyMS0xMC0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBJbXBsZW1lbnQgdGhlIFdlYkFzc2VtYmx5IGV4Y2VwdGlvbiBoYW5kbGluZyBwcm9w
b3NhbApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwN2Q1Njg2OTUzYzNmNzY1YjYyYjZlMDcx
ZTI3MDMxZjRkZmJiNjNiLi5iNzVhNWQwZjkyODk4NzRmYWEwNTYzN2U1YzA4YWUyNmE5ZDY0MzY5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODk1LDYgKzg5NSw3IEBACiAJCTk1OEI3MEUx
MjZDNDZFREMwMEIyMDIyQiAvKiBOU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NThCNzBFMDI2
QzQ2RURDMDBCMjAyMkIgLyogTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLm1tICov
OyB9OwogCQk5NUE1MjQ5NTI1ODFBMTBEMDA0NjFGRTkgLyogV0tXZWJWaWV3VGhlbWVDb2xvci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTUyNDk0
MjU4MUExMEQwMDQ2MUZFOSAvKiBXS1dlYlZpZXdUaGVtZUNvbG9yLm1tICovOyB9OwogCQk5NUI2
QjNCNzI1MUVCRjJGMDBGQzQzODIgLyogTWVkaWFEb2N1bWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QjZCM0I2MjUxRUJGMkYwMEZDNDM4MiAv
KiBNZWRpYURvY3VtZW50Lm1tICovOyB9OworCQk5OTZFRENDQjI3MEU3MEQ3MDA2REYxNzUgLyog
SW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTZFRENDQTI3MEU3MEFCMDA2REYxNzUg
LyogSW5zcGVjdG9yRXh0ZW5zaW9uLWJhc2ljLXBhZ2UuaHRtbCAqLzsgfTsKIAkJOTk4NEZBQ0Mx
Q0ZGQUY2MDAwOEQxOThDIC8qIFdLV2ViVmlld1RleHRJbnB1dC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODRGQUNBMUNGRkFFRUUwMDhEMTk4QyAv
KiBXS1dlYlZpZXdUZXh0SW5wdXQubW0gKi87IH07CiAJCTk5ODRGQUNFMUNGRkIwOTAwMDhEMTk4
QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThDIC8qIGVkaXRhYmxl
LWJvZHkuaHRtbCAqLzsgfTsKIAkJOTk5OTEwOEIxRjM5M0M5NjAwOEFENDU1IC8qIENvcHlpbmcu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk5MTA4
QTFGMzkzQzhCMDA4QUQ0NTUgLyogQ29weWluZy5tbSAqLzsgfTsKQEAgLTE1ODQsNiArMTU4NSw3
IEBACiAJCQkJMkVGRjA2Q0QxRDhBNDI5QTAwMDRCQjMwIC8qIGlucHV0LWZpZWxkLWluLXNjcm9s
bGFibGUtZG9jdW1lbnQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRTM1MjRGQTFC
MTQ0Mzg5MDAyOEE3QzUgLyogaW5wdXQtZm9jdXMtYmx1ci5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAogCQkJCUNFNkQwRUUzMjQyNkI5MzIwMDJBRDkwMSAvKiBpbnNlcnQtdGV4dC5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTk5NkVEQ0NCMjcwRTcwRDcwMDZERjE3NSAvKiBJbnNw
ZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTk5RTI4NDY4MjZGOTQxNTQwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtdGFi
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTlFMjg0NjYyNkY5M0RCNTAwMDNGMUZB
IC8qIEluc3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQkwNzQ5OTQ0MjFFQTUwMzRCMDAwREE0NEQgLyogaW52YWxpZERldmljZUlESGFz
aFNhbHRzIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjYzOCw2ICsyNjQwLDcgQEAKIAkJOTU4
QjcwRTAyNkM0NkVEQzAwQjIwMjJCIC8qIE5TQXR0cmlidXRlZFN0cmluZ1dlYktpdEFkZGl0aW9u
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TQXR0cmlidXRl
ZFN0cmluZ1dlYktpdEFkZGl0aW9ucy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTVBNTI0OTQyNTgxQTEwRDAwNDYxRkU5IC8qIFdLV2ViVmlld1RoZW1lQ29sb3IubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlZpZXdUaGVtZUNvbG9yLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUI2QjNCNjI1MUVCRjJGMDBGQzQzODIg
LyogTWVkaWFEb2N1bWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IE1lZGlhRG9jdW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5NkVE
Q0NBMjcwRTcwQUIwMDZERjE3NSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIkluc3BlY3RvckV4dGVuc2lvbi1iYXNpYy1wYWdlLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OTg0RkFDQTFDRkZBRUVFMDA4RDE5OEMgLyogV0tXZWJW
aWV3VGV4dElucHV0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V0tXZWJWaWV3VGV4dElucHV0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTg0
RkFDRDFDRkZCMDM4MDA4RDE5OEMgLyogZWRpdGFibGUtYm9keS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImVkaXRhYmxlLWJvZHkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk5OTkxMDhBMUYzOTNDOEIwMDhBRDQ1NSAvKiBDb3B5aW5nLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29weWluZy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQxMjksNiArNDEzMiw3IEBACiAJCQkJOTNBMjc0QTEyNTIxNjNE
NjAwQTFCNkQ0IC8qIEluZGV4VXBncmFkZVdpdGhNdWx0aXBsZUluZGljZXMuc3FsaXRlMyAqLywK
IAkJCQk5M0EyNzRBNDI1MjI0MUQwMDBBMUI2RDQgLyogSW5kZXhVcGdyYWRlV2l0aE11bHRpcGxl
SW5kaWNlc0hhdmVTYW1lSUQuc3FsaXRlMyAqLywKIAkJCQkyRUZGMDZDQzFEOEE0MjkxMDAwNEJC
MzAgLyogaW5wdXQtZmllbGQtaW4tc2Nyb2xsYWJsZS1kb2N1bWVudC5odG1sICovLAorCQkJCTk5
NkVEQ0NBMjcwRTcwQUIwMDZERjE3NSAvKiBJbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5o
dG1sICovLAogCQkJCTk5RTI4NDY3MjZGOTQxM0IwMDAzRjFGQSAvKiBJbnNwZWN0b3JFeHRlbnNp
b24tYmFzaWMtdGFiLmh0bWwgKi8sCiAJCQkJOTlFMjg0NjUyNkY5M0Q3NjAwMDNGMUZBIC8qIElu
c3BlY3RvckV4dGVuc2lvbi1UYWJJY29uLTMweDMwLnBuZyAqLywKIAkJCQk5MzdBNkM4ODI0MzU3
QkYzMDBDM0E2QjAgLyogS2lsbFdlYlByb2Nlc3NXaXRoT3BlbkNvbm5lY3Rpb24tMS5odG1sICov
LApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbnNw
ZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9JbnNwZWN0b3JFeHRlbnNpb24tYmFzaWMtcGFnZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmM4ZjljY2IwN2IzNDZkYmE5NzM0ZTE1YjBjNjI4YWFlZDdkODdiZGYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luc3BlY3RvckV4
dGVuc2lvbi1iYXNpYy1wYWdlLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KKzwvc2NyaXB0PgorPGJvZHk+Cis8aDE+VGhpcyBpcyBhIHRlc3QgcGFnZS48L2gx
PgorPHA+Tm90aGluZyBpbnRlcmVzdGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy48L3A+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUubW0K
aW5kZXggNGIzOWY1MjExMWNjODhhNmE3MDI2MTQzMDhmNWE3MDEwY2I5ZWY2NS4uYjNlYzQ4NDVk
ZDBiZWUxYWU5NDNiODg3ZDk3MTQ1MGIxM2ZlMzEyNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JF
eHRlbnNpb25EZWxlZ2F0ZS5tbQpAQCAtMjgsNyArMjgsOSBAQAogI2lmIEVOQUJMRShJTlNQRUNU
T1JfRVhURU5TSU9OUykKIAogI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdENvY29hLmgi
CiAjaW1wb3J0ICJUZXN0SW5zcGVjdG9yVVJMU2NoZW1lSGFuZGxlci5oIgorI2ltcG9ydCAiVGVz
dE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAjaW1wb3J0IDxX
ZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQ
cml2YXRlLmg+CkBAIC00MiwxNiArNDQsMTkgQEAKIHN0YXRpYyBib29sIGRpZEF0dGFjaExvY2Fs
SW5zcGVjdG9yQ2FsbGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBkaWRTaG93RXh0ZW5zaW9uVGFi
V2FzQ2FsbGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBkaWRIaWRlRXh0ZW5zaW9uVGFiV2FzQ2Fs
bGVkID0gZmFsc2U7CitzdGF0aWMgYm9vbCBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxs
ZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIHBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCA9IGZhbHNl
Owogc3RhdGljIFJldGFpblB0cjxUZXN0SW5zcGVjdG9yVVJMU2NoZW1lSGFuZGxlcj4gc2hhcmVk
VVJMU2NoZW1lSGFuZGxlcjsKIHN0YXRpYyBSZXRhaW5QdHI8X1dLSW5zcGVjdG9yRXh0ZW5zaW9u
PiBzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb247CiBzdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiBz
aGFyZWRFeHRlbnNpb25UYWJJZGVudGlmaWVyOworc3RhdGljIFJldGFpblB0cjxOU1VSTD4gc2hh
cmVkTmV3VVJMQWZ0ZXJOYXZpZ2F0aW9uOwogCiBzdGF0aWMgdm9pZCByZXNldEdsb2JhbFN0YXRl
KCkKIHsKICAgICBkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNhbGxlZCA9IGZhbHNlOwogICAgIGRp
ZFNob3dFeHRlbnNpb25UYWJXYXNDYWxsZWQgPSBmYWxzZTsKICAgICBkaWRIaWRlRXh0ZW5zaW9u
VGFiV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlV2FzQ2Fs
bGVkID0gZmFsc2U7CiAgICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CiB9CiAK
QEAgLTk1LDYgKzEwMCwxMiBAQCAtICh2b2lkKWluc3BlY3RvckV4dGVuc2lvbjooX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGRpZEhpZGVUYWJXaXRoSWRlbgogICAgIGRpZEhpZGVF
eHRlbnNpb25UYWJXYXNDYWxsZWQgPSB0cnVlOwogfQogCistICh2b2lkKWluc3BlY3RvckV4dGVu
c2lvbjooX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICopZXh0ZW5zaW9uIGluc3BlY3RlZFBhZ2VEaWRO
YXZpZ2F0ZTooTlNVUkwgKiluZXdVUkwKK3sKKyAgICBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVX
YXNDYWxsZWQgPSB0cnVlOworICAgIHNoYXJlZE5ld1VSTEFmdGVyTmF2aWdhdGlvbiA9IG5ld1VS
TDsKK30KKwogQGVuZAogCiBURVNUKFdLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGUsIFNob3dB
bmRIaWRlVGFiQ2FsbGJhY2tzKQpAQCAtMTY1LDQgKzE3Niw3MSBAQCBURVNUKFdLSW5zcGVjdG9y
RXh0ZW5zaW9uRGVsZWdhdGUsIFNob3dBbmRIaWRlVGFiQ2FsbGJhY2tzKQogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKIH0KIAorVEVTVChX
S0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLCBJbnNwZWN0ZWRQYWdlTmF2aWdhdGVkQ2FsbGJh
Y2tzKQoreworICAgIHJlc2V0R2xvYmFsU3RhdGUoKTsKKworICAgIC8vIEhvb2sgdXAgdGhlIHRl
c3QtcmVzb3VyY2U6IGhhbmRsZXIgc28gdGhhdCB3ZSBjYW4gbmF2aWdhdGUgdG8gYSBkaWZmZXJl
bnQgdGVzdCBmaWxlLgorICAgIGlmICghc2hhcmVkVVJMU2NoZW1lSGFuZGxlcikKKyAgICAgICAg
c2hhcmVkVVJMU2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0SW5zcGVjdG9yVVJMU2NoZW1l
SGFuZGxlciBhbGxvY10gaW5pdF0pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgd2ViVmlld0NvbmZp
Z3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQgPSBZRVM7
CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2hhcmVkVVJM
U2NoZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ0ZXN0LXJlc291cmNlIl07CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtVSURlbGVnYXRl
Rm9yVGVzdGluZ0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlIG5ld10pOworCisgICAgW3dlYlZp
ZXcgc2V0VUlEZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKworICAgIFtbd2ViVmlldyBfaW5z
cGVjdG9yXSBzaG93XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEF0dGFjaExv
Y2FsSW5zcGVjdG9yQ2FsbGVkKTsKKworICAgIC8vIFJlZ2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lv
bi4KKyAgICBhdXRvIGV4dGVuc2lvbklEID0gW05TVVVJRCBVVUlEXS5VVUlEU3RyaW5nOworICAg
IGF1dG8gZXh0ZW5zaW9uRGlzcGxheU5hbWUgPSBAIlNlY29uZEV4dGVuc2lvbiI7CisgICAgcGVu
ZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gZmFsc2U7CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3Jd
IHJlZ2lzdGVyRXh0ZW5zaW9uV2l0aElEOmV4dGVuc2lvbklEIGRpc3BsYXlOYW1lOmV4dGVuc2lv
bkRpc3BsYXlOYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJv
ciwgX1dLSW5zcGVjdG9yRXh0ZW5zaW9uICogX051bGxhYmxlIGV4dGVuc2lvbikgeworICAgICAg
ICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgIEVYUEVDVF9OT1RfTlVMTChleHRlbnNpb24p
OworICAgICAgICBzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gPSBleHRlbnNpb247CisKKyAgICAg
ICAgcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnBlbmRpbmdDYWxsYmFja1dhc0NhbGxlZCk7CisKKyAgICBhdXRv
IGV4dGVuc2lvbkRlbGVnYXRlID0gYWRvcHROUyhbSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGVG
b3JUZXN0aW5nIG5ld10pOworICAgIFtzaGFyZWRJbnNwZWN0b3JFeHRlbnNpb24gc2V0RGVsZWdh
dGU6ZXh0ZW5zaW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJp
bmc6QCI8aGVhZD48dGl0bGU+VGVzdCBwYWdlIHRvIGJlIGluc3BlY3RlZDwvdGl0bGU+PC9oZWFk
Pjxib2R5PjxwPkZpbGxlciBjb250ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOworICAgIFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIGluc3BlY3RlZFBhZ2VEaWROYXZpZ2F0
ZVdhc0NhbGxlZCA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaW5zcGVj
dGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkKTsKKyAgICBFWFBFQ1RfTlNfRVFVQUwoc2hhcmVk
TmV3VVJMQWZ0ZXJOYXZpZ2F0aW9uLmdldCgpLmFic29sdXRlU3RyaW5nLCBAImh0dHA6Ly9leGFt
cGxlLmNvbS8iKTsKKyAgICBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxsZWQgPSBmYWxz
ZTsKKworICAgIC8vIEluaXRpYXRlIGEgbmF2aWdhdGlvbiBpbiB0aGUgaW5zcGVjdGVkIFdLV2Vi
VmlldyB0byBhIHRlc3QtcmVzb3VyY2U6Ly8gVVJMLgorICAgIGF1dG8gbmV3VVJMID0gW05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJ0ZXN0LXJlc291cmNlOi8vU2Vjb25kRXh0ZW5zaW9uL0luc3BlY3Rv
ckV4dGVuc2lvbi1iYXNpYy1wYWdlLmh0bWwiXTsKKyAgICBhdXRvIHJlc3VsdCA9IFt3ZWJWaWV3
IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6bmV3VVJMXV07CisgICAg
RVhQRUNUX05PVF9OVUxMKHJlc3VsdCk7CisKKyAgICBpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVX
YXNDYWxsZWQgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmluc3BlY3Rl
ZFBhZ2VEaWROYXZpZ2F0ZVdhc0NhbGxlZCk7CisgICAgRVhQRUNUX05TX0VRVUFMKHNoYXJlZE5l
d1VSTEFmdGVyTmF2aWdhdGlvbi5nZXQoKS5hYnNvbHV0ZVN0cmluZywgQCJhYm91dDpibGFuayIp
OworCisgICAgaW5zcGVjdGVkUGFnZURpZE5hdmlnYXRlV2FzQ2FsbGVkID0gZmFsc2U7CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpbnNwZWN0ZWRQYWdlRGlkTmF2aWdhdGVXYXNDYWxs
ZWQpOworICAgIEVYUEVDVF9OU19FUVVBTChzaGFyZWROZXdVUkxBZnRlck5hdmlnYXRpb24uZ2V0
KCkuYWJzb2x1dGVTdHJpbmcsIG5ld1VSTC5hYnNvbHV0ZVN0cmluZyk7CisKKyAgICAvLyBVbnJl
Z2lzdGVyIHRoZSB0ZXN0IGV4dGVuc2lvbi4KKyAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQg
PSBmYWxzZTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gdW5yZWdpc3RlckV4dGVuc2lvbjpz
aGFyZWRJbnNwZWN0b3JFeHRlbnNpb24uZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9y
ICogX051bGxhYmxlIGVycm9yKSB7CisgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKworICAg
ICAgICBwZW5kaW5nQ2FsbGJhY2tXYXNDYWxsZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcGVuZGluZ0NhbGxiYWNrV2FzQ2FsbGVkKTsKK30KKwogI2Vu
ZGlmIC8vIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>