<?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>223648</bug_id>
          
          <creation_ts>2021-03-23 11:29:50 -0700</creation_ts>
          <short_desc>Add DisplayRefreshMonitorFactory</short_desc>
          <delta_ts>2021-09-13 05:26:52 -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>WebCore Misc.</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230214</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1742918</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-23 11:29:50 -0700</bug_when>
    <thetext>Gets createDisplayRefreshMonitor() off of DisplayRefreshMonitorClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742933</commentid>
    <comment_count>1</comment_count>
      <attachid>424045</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-23 12:06:39 -0700</bug_when>
    <thetext>Created attachment 424045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742947</commentid>
    <comment_count>2</comment_count>
      <attachid>424045</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-23 12:25:06 -0700</bug_when>
    <thetext>Comment on attachment 424045
Patch

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

r=me

&gt; Source/WebCore/loader/EmptyClients.cpp:147
&gt; +class EmptyDisplayRefreshMonitorFactory : public DisplayRefreshMonitorFactory {

Can the class be marked as final?

&gt; Source/WebCore/page/RenderingUpdateScheduler.h:37
&gt; +class RenderingUpdateScheduler : public DisplayRefreshMonitorClient {

Can this class be marked as final?

&gt; Source/WebCore/platform/graphics/GraphicsLayerUpdater.h:43
&gt; +class GraphicsLayerUpdater : public DisplayRefreshMonitorClient {

Can this class be marked as final?

&gt; Source/WebKit/WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:34
&gt; +

I don&apos;t think we usually have this empty line in between

&gt; Source/WebKit/WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:44
&gt; +{

ASSERT(isMainRunLoop()); ? since I assume DisplayLinkObserverID::generate() is not thread safe.

&gt; Source/WebKit/WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:49
&gt; +    WebProcess::singleton().parentProcessConnection()-&gt;send(Messages::WebProcessProxy::StopDisplayLink(m_observerID, displayID()), 0);

Is there a chance requestRefreshCallback() has not been called yet? If so, is there a way to early return to avoid the IPC is that case?

&gt; Source/WebKit/WebProcess/WebPage/mac/DisplayRefreshMonitorMac.cpp:61
&gt; +            this-&gt;m_firstCallbackInCurrentRunloop = true;

this-&gt; should not be needed.

&gt; Source/WebKit/WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:36
&gt; +class DisplayRefreshMonitorMac : public WebCore::DisplayRefreshMonitor {

Can this class be marked as final?

&gt; Source/WebKit/WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:45
&gt; +    void displayLinkFired() override;

Can this be final?

&gt; Source/WebKit/WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:46
&gt; +    bool requestRefreshCallback() override;

ditto

&gt; Source/WebKit/WebProcess/WebPage/mac/DisplayRefreshMonitorMac.h:51
&gt; +    bool hasRequestedRefreshCallback() const override { return m_hasSentMessage; }

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742992</commentid>
    <comment_count>3</comment_count>
      <attachid>424059</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-23 13:53:59 -0700</bug_when>
    <thetext>Created attachment 424059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743005</commentid>
    <comment_count>4</comment_count>
      <attachid>424064</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-03-23 14:16:06 -0700</bug_when>
    <thetext>Created attachment 424064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743122</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-23 19:35:30 -0700</bug_when>
    <thetext>Committed r274929: &lt;https://commits.webkit.org/r274929&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424064.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743123</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-23 19:36:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/75766987&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424045</attachid>
            <date>2021-03-23 12:06:39 -0700</date>
            <delta_ts>2021-03-23 13:08:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223648-20210323120638.patch</filename>
            <type>text/plain</type>
            <size>50977</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVmNmRhN2RiNDk2Yzlm
YjU4Mzk4NzhlZjJmOTlkNmY2ODc4N2QzNy4uZDhhOTRkNjFjMGM5NTFkMDVhNzc5ODg2OTE3NDg4
OTE5YTQ2MWEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTAzLTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3JGYWN0b3J5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzNjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRnV0dXJlIHdvcmsgd2lsbCByZXF1aXJlIHRoYXQgaXQncyBwb3NzaWJs
ZSB0byBjcmVhdGUgYSBEaXNwbGF5UmVmcmVzaE1vbml0b3IKKyAgICAgICAgd2l0aG91dCBoYXZp
bmcgYSBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuIEl0IHdhcyBhbHNvIHdlaXJkIHRoYXQg
dGhlIHdheSB0bworICAgICAgICBjcmVhdGUgYSBEaXNwbGF5UmVmcmVzaE1vbml0b3Igd2FzIHZp
YSB0aGUgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LCBzbworICAgICAgICB0aGlzIGNoYW5n
ZSBmaXhlcyBib3RoIGJ5IGFkZGluZyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LgorCisg
ICAgICAgIEluIFdLMiwgdGhlIGRyYXdpbmcgYXJlYXMgYXJlIERpc3BsYXlSZWZyZXNoTW9uaXRv
ckZhY3Rvcmllcy4gSWYgdGhlcmUgaXMgbm8KKyAgICAgICAgZmFjdG9yeSwgd2UgZmFsbCBiYWNr
IHRvIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIEhlYWRlcnMuY21h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlEaXNw
bGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5OjpzaGFyZWRFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRv
ckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmRpc3BsYXlS
ZWZyZXNoTW9uaXRvckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9u
aXRvckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpjcmVh
dGVEaXNwbGF5UmVmcmVzaE1vbml0b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uv
UmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmlu
Z1VwZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmNyZWF0ZURpc3BsYXlS
ZWZyZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9SZW5kZXJpbmdV
cGRhdGVTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGll
bnQ6OkRpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25p
dG9yTWFuYWdlcjo6bW9uaXRvckZvckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllclVwZGF0ZXI6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJVcGRhdGVyOjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyOjpjcmVhdGVEaXNwbGF5UmVm
cmVzaE1vbml0b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKwogMjAy
MS0wMy0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGaXggYSBtaXN0YWtlIGluIHIyNzQ3MjUgc3BvdHRlZCBieSBEYXJpbi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZTlmNzc5NGM5NWViMzBlZDZkZTRkMDRiMjM0NmI4MjU0OTJkNzM3My4uOGY4Mzc0ZGRlY2ZhNTRj
NmFhMGMzNDU0MTE3ZmFkYzQwNmRjNDBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAy
MS0wMy0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzY0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZ1dHVyZSB3b3JrIHdpbGwgcmVxdWlyZSB0aGF0
IGl0J3MgcG9zc2libGUgdG8gY3JlYXRlIGEgRGlzcGxheVJlZnJlc2hNb25pdG9yCisgICAgICAg
IHdpdGhvdXQgaGF2aW5nIGEgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LiBJdCB3YXMgYWxz
byB3ZWlyZCB0aGF0IHRoZSB3YXkgdG8KKyAgICAgICAgY3JlYXRlIGEgRGlzcGxheVJlZnJlc2hN
b25pdG9yIHdhcyB2aWEgdGhlIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCwgc28KKyAgICAg
ICAgdGhpcyBjaGFuZ2UgZml4ZXMgYm90aCBieSBhZGRpbmcgRGlzcGxheVJlZnJlc2hNb25pdG9y
RmFjdG9yeS4KKworICAgICAgICBJbiBXSzIsIHRoZSBkcmF3aW5nIGFyZWFzIGFyZSBEaXNwbGF5
UmVmcmVzaE1vbml0b3JGYWN0b3JpZXMuIElmIHRoZXJlIGlzIG5vCisgICAgICAgIGZhY3Rvcnks
IHdlIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAg
UmVtb3ZlIERyYXdpbmdBcmVhTWFjLmNwcCBzaW5jZSBpdHMgY29kZSB3YXMgZW50aXJlbHkgcmVs
YXRlZCB0byBjcmVhdGluZworICAgICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMgb2JqZWN0
cy4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdp
bmdBcmVhTWFjLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
OjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWM6On5EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2Vi
S2l0OjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmly
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJVcGRhdGVyLmguCisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYzo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRv
cik6CisKIDIwMjEtMDMtMTkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5j
b20+CiAKICAgICAgICAgQ2Fubm90IGxvZ2luIHRvIG1pY3Jvc29mdG9ubGluZS5jb20gd2l0aG91
dCBhbGxvd2luZyBzdG9yYWdlIGFjY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggM2JjN2JmNjdl
YTAxNDdkOTk4OGQ1NDczODkwZGIwOWJjNzU0Mzg2NC4uMTE5MjgzNWE3Mzc5YTM5MWRiNWFhNTU1
OWE2MDA2ODQxMWYyYjE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTgwLDYgKzExODAsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvRGVjb2RpbmdPcHRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yRmFj
dG9yeS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
ci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFBvaW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmM2M0Zjc0ZThlYzMwMTc5YjA2ZjY0NjllNTU5ZjU4
Nzc2NmVlNTM5Li4zOGFiMTE2MDc4YzgzMTE0OGM0ZGE4ZTEwYWNhNDg0ZTU4Yjg2ZDIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zNDIsNiArMzQyLDcgQEAKIAkJMEZBMjREN0ExNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNz
TGF5ZXJVcGRhdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkEyNEQ3ODE2MkRGOTE5MDBBM0Y0QzAgLyogR3JhcGhpY3NMYXllclVwZGF0ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkI2MjUy
RjE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjYyNTJEMThERTFCMTUwMEEwN0MwNSAv
KiBHZW9tZXRyeVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGQjg4OTBGMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQjg4OTBEMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkJC
NUZCRTI2MDk5MUQyMDA1NDU3MkMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCQjVGQkQyNjA5
NUE5QzAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0QjAwNjIyQjlBMDJE
MDBDRjNCMUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0QjAwNDIyQjlBMDJD
MDBDRjNCMUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDRjMzMkYwRjJC
OUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkNGMzMyQjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkQzMDgw
RjExN0NGN0U3MDBBNzkxRjcgLyogUmVuZGVyRnJhbWVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQzMDgwRDExN0NGN0U3MDBBNzkxRjcgLyog
UmVuZGVyRnJhbWVCYXNlLmggKi87IH07CkBAIC02MTgwLDYgKzYxODEsNyBAQAogCQkwRkI2MjUy
RDE4REUxQjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR2VvbWV0cnlVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0YXRlU3Rp
Y2t5Tm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxp
bmdTdGF0ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI4
ODkwRDE2N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkJCNUZCRDI2MDk1QTlDMDA1NDU3MkMgLyog
RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVm
cmVzaE1vbml0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQkZD
RTI0MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEaXNwbGF5Qm94Q2xpcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
QkZDRTI2MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEaXNwbGF5Qm94Q2xpcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkMwNTE2
ODIxOUI1RUJFMDAzMUMzOUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjcxOSw2ICsyNjcy
MSw3IEBACiAJCQkJNDlBRjJENjgxNDQzNUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvci5oICovLAogCQkJCTJEMjlFQ0MxMTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQuY3BwICovLAogCQkJCTJEMjlFQ0MyMTkyRUNDODMwMDk4NEI3OCAvKiBE
aXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCAqLywKKwkJCQkwRkJCNUZCRDI2MDk1QTlDMDA1
NDU3MkMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovLAogCQkJCTJEMjlFQ0Mz
MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcCAqLywK
IAkJCQkyRDI5RUNDNDE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFu
YWdlci5oICovLAogCQkJCTZFNjdEMkE4MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zR0wu
aCAqLywKQEAgLTMyMDQzLDYgKzMyMDQ2LDcgQEAKIAkJCQkwRkU1RkJEOTFDM0RENTFFMDAwN0Ey
Q0EgLyogRGlzcGxheUxpc3RSZXBsYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkx
NDQzNUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkQyOUVDQzYxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCQjVGQkUyNjA5OTFEMjAwNTQ1NzJDIC8qIERp
c3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0NB
MTkyRjFGMUQwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJEMjlFQ0M4MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MzI1MTdDRTZFMDA5QkEwMzQg
LyogRGlzcGxheVZpZXcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcAppbmRleCBmNjI2NDRiODc1ZTNhNjA1YzQ3YzViNTZlZjM0YmUzNDUwNmM4NWNi
Li4yMTk5ZGQ0YzQzNDUxZWE0NGRiZjJjMDg5YzI2YWMxNTVjZjA4OGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRh
dGFMaXN0U3VnZ2VzdGlvblBpY2tlci5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgorI2luY2x1ZGUgIkRpc3BsYXlS
ZWZyZXNoTW9uaXRvckZhY3RvcnkuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCkBAIC0x
MjUsNyArMTI2LDYgQEAgY2xhc3MgRW1wdHlDb250ZXh0TWVudUNsaWVudCBmaW5hbCA6IHB1Ymxp
YyBDb250ZXh0TWVudUNsaWVudCB7CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
IAotCiBjbGFzcyBFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvciA6IHB1YmxpYyBEaXNwbGF5UmVm
cmVzaE1vbml0b3IgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RW1wdHlEaXNwbGF5UmVmcmVz
aE1vbml0b3I+IGNyZWF0ZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCkBAIC0xNDQsNiAr
MTQ0LDIxIEBAIHByaXZhdGU6CiAgICAgfQogfTsKIAorY2xhc3MgRW1wdHlEaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3J5IDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rvcnkgewor
cHVibGljOgorICAgIHN0YXRpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBzaGFyZWRF
bXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKQorICAgIHsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEVtcHR5RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeT4gZW1wdHlG
YWN0b3J5OworICAgICAgICByZXR1cm4gJmVtcHR5RmFjdG9yeS5nZXQoKTsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgUmVmPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJl
c2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgZmluYWwKKyAgICB7CisgICAg
ICAgIHJldHVybiBFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlKGRpc3BsYXlJRCk7
CisgICAgfQorfTsKKwogY2xhc3MgRW1wdHlEYXRhYmFzZVByb3ZpZGVyIGZpbmFsIDogcHVibGlj
IERhdGFiYXNlUHJvdmlkZXIgewogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIHN0
cnVjdCBFbXB0eUlEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGV0ZWdhdGUgZmluYWwgOiBwdWJsaWMg
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSB7CkBAIC01MzAsOSArNTQ1
LDkgQEAgdm9pZCBFbXB0eUNocm9tZUNsaWVudDo6c3RvcmVBcHBIaWdobGlnaHQoQXBwSGlnaGxp
Z2h0JiYpIGNvbnN0CiB9CiAjZW5kaWYKIAotUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4g
RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURp
c3BsYXlJRCBkaXNwbGF5SUQpIGNvbnN0CitEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBF
bXB0eUNocm9tZUNsaWVudDo6ZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIEVtcHR5RGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGUoZGlzcGxheUlE
KTsKKyAgICByZXR1cm4gRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5OjpzaGFyZWRF
bXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKTsKIH0KIAogdm9pZCBFbXB0eUNocm9t
ZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGI2ZjgxMGVkMjY3NDJjMzA1ZDdkMGMzMGViYWI0ZTFl
YmZmYjI5MmMuLmRiMTViMDk4YTQ5MGFlMDMzMGU1MmM4MGUwMDI5NDIyZmE1NGFmYmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE0OSw3ICsxNDksNyBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgc3RvcmVB
cHBIaWdobGlnaHQoQXBwSGlnaGxpZ2h0JiYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBS
ZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3Io
UGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0IGZpbmFsOworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRv
ckZhY3RvcnkqIGRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKIAog
ICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2
b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmlu
ZGV4IDU0YjcxNDVmNmM2NTMzYTNmYzYwMWZmMzUzN2UyNDQ1YmRiM2M3ZWEuLjgxYTAzZDY1YTUz
ODRkYzYwY2NmMWRhN2UwZTczOTFjMGY5MDkyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaApAQCAtMzI2LDggKzMyNiw4IEBAIHB1YmxpYzoKIAogICAgIC8vIEFsbG93cyBwb3J0cyB0
byBjdXN0b21pemUgdGhlIHR5cGUgb2YgZ3JhcGhpY3MgbGF5ZXJzIGNyZWF0ZWQgYnkgdGhpcyBw
YWdlLgogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQotCi0gICAgdmlydHVhbCBSZWZQdHI8RGlz
cGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1E
aXNwbGF5SUQpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICAKKyAgICB2aXJ0dWFsIERp
c3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIGRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rvcnko
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZUJ1
ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVyaW5nTW9kZSwg
UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSwgUGl4ZWxGb3Jt
YXQpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCmluZGV4IDVjMDhjMTliOTNjMzBjMjdjNTkz
MjI2YjczYzc4YTU1ZTI0N2E1MjIuLjMyMGJjYzc0ZjliYTM4MmQ2YmQxOGI2MDlmNzVkMzNjYTM5
ZWE5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2No
ZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVk
dWxlci5jcHAKQEAgLTEyOCwxMiArMTI4LDkgQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXI6OmNsZWFyU2NoZWR1bGVkKCkKICAgICBtX3JlZnJlc2hUaW1lciA9IG51bGxwdHI7CiB9CiAK
LVJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6
Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkg
Y29uc3QKK0Rpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIFJlbmRlcmluZ1VwZGF0ZVNjaGVk
dWxlcjo6ZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1
dG8gbW9uaXRvciA9IG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5jcmVhdGVEaXNwbGF5UmVmcmVz
aE1vbml0b3IoZGlzcGxheUlEKSkKLSAgICAgICAgcmV0dXJuIG1vbml0b3I7Ci0KLSAgICByZXR1
cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2hNb25p
dG9yKGRpc3BsYXlJRCk7CisgICAgcmV0dXJuIG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5kaXNw
bGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCk7CiB9CiAKIHZvaWQgUmVuZGVyaW5nVXBkYXRlU2No
ZWR1bGVyOjp3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKaW5k
ZXggMjAzOGExYTUzNWUyZjcxYmMzN2QzY2YzMjYxMzRlZjY0ODRkNWZmMC4uM2U1ZDYyN2RhYzRh
ZDQ5MzQwNWE1ZDc5MTUyYzgyMTliZmFhOTk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oCkBAIC0zNCw4ICszNCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBUaW1lcjsKIAotY2xhc3MgUmVuZGVyaW5nVXBk
YXRlU2NoZWR1bGVyIDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudAoteworY2xh
c3MgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyIDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI+IGNyZWF0ZShQYWdl
JiBwYWdlKQpAQCAtNTUsOCArNTQsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgc2V0
UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKEZyYW1lc1BlclNlY29uZCk7CiAgICAgYm9vbCBzY2hl
ZHVsZUFuaW1hdGlvbihGcmFtZXNQZXJTZWNvbmQpOwotICAgIFJlZlB0cjxEaXNwbGF5UmVmcmVz
aE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkg
Y29uc3QgZmluYWw7CisKICAgICB2b2lkIGRpc3BsYXlSZWZyZXNoRmlyZWQoKSBmaW5hbDsKKyAg
ICBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGlzU2NoZWR1bGVkKCkgY29uc3Q7CiAgICAg
dm9pZCBzdGFydFRpbWVyKFNlY29uZHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKaW5kZXggNzM4NzZm
ZmE3ZTJkNDJjNDliMzU5ZGRkNWExZGUzMzM5OGNlZGRiNi4uNjE0ZGViMjk1NDE1OWY2MmUyODVl
NTc2NDViZTFhNzNjODBiNDMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAKICNpbmNsdWRlICJEaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5LmgiCiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKIApAQCAtNjAsOSArNjEsMTIgQEAgUmVmUHRyPERpc3BsYXlS
ZWZyZXNoTW9uaXRvcj4gRGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlzcGxh
eVJlZnJlc2gKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gRGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGUoRGlzcGxheVJlZnJlc2hNb25p
dG9yQ2xpZW50JiBjbGllbnQpCitSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OmNyZWF0ZShEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBmYWN0
b3J5LCBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7Ci0gICAgcmV0dXJuIGNsaWVudC5j
cmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoY2xpZW50LmRpc3BsYXlJRCgpKTsKKyAgICBpZiAo
ZmFjdG9yeSkKKyAgICAgICAgcmV0dXJuIGZhY3RvcnktPmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihkaXNwbGF5SUQpOworICAgIAorICAgIHJldHVybiBjcmVhdGVEZWZhdWx0RGlzcGxheVJl
ZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7CiB9CiAKIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6RGlz
cGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25p
dG9yLmgKaW5kZXggYTU0ZjJiOTIzNTE4MTA1NzdjODA4MmFkYTI1YWViOTJjMTcwZmNiZS4uNmZj
NGI0Yzk5NWU3MWM1MjBiODhmMWM0MmIwNDE2MjQ4YTEyOGNiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmgK
QEAgLTM2LDEwICszNiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpc3BsYXlB
bmltYXRpb25DbGllbnQ7CiBjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQ7CitjbGFz
cyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5OwogCiBjbGFzcyBEaXNwbGF5UmVmcmVzaE1v
bml0b3IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGlzcGxheVJlZnJlc2hNb25pdG9y
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNy
ZWF0ZShEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQmKTsKKyAgICBzdGF0aWMgUmVmUHRyPERp
c3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlKERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rvcnkq
LCBQbGF0Zm9ybURpc3BsYXlJRCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RGlzcGxh
eVJlZnJlc2hNb25pdG9yKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGxheUxpbmtGaXJlZCgp
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5jcHAKaW5kZXggNjIyNWIyZDkyZWY4ZDAw
NGFkMWQxMzA2MzJjYjlkOTExNzZjMDhjNC4uMDgzYzUxYTNhYzk3YjczOTdmMTVjOTE1NzRhMDEx
YzY0NDkyN2M1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuY3BwCkBAIC0zMSw5ICsz
MSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xp
ZW50OjpEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQoKQotewotfQorRGlzcGxheVJlZnJlc2hN
b25pdG9yQ2xpZW50OjpEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQoKSA9IGRlZmF1bHQ7CiAK
IERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudDo6fkRpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oCmluZGV4IGJlZTdkODE2MmFhYjdkZGE2
YzZmMTdmMWJmZGNiNWRiNjNhYzU2N2UuLjllNjhmZmNlZDgyZDgyNzQ4ZmJiMTEyNjMzZTg3ZDYz
ZjIwYWRkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5oCkBAIC0zMiw2ICszMiw3IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvcjsKK2Ns
YXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rvcnk7CiAKIGNsYXNzIERpc3BsYXlSZWZyZXNo
TW9uaXRvckNsaWVudCB7CiBwdWJsaWM6CkBAIC00MSw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICAv
LyBBbHdheXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGxheVJlZnJlc2hGaXJlZCgpID0gMDsKIAotICAgIHZpcnR1YWwgUmVmUHRyPERpc3BsYXlSZWZy
ZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlE
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBk
aXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QgPSAwOwogCiAgICAgUGxhdGZvcm1E
aXNwbGF5SUQgZGlzcGxheUlEKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5SUQudmFsdWUoKTsg
fQogICAgIGJvb2wgaGFzRGlzcGxheUlEKCkgY29uc3QgeyByZXR1cm4gISFtX2Rpc3BsYXlJRDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YjY4Y2NjNmNlODJi
ZTc2NGMyODVlMmU0OWQ5MWJlYzNlMWE0MmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LmgKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3I7Cit1c2luZyBQbGF0Zm9ybURp
c3BsYXlJRCA9IHVpbnQzMl90OworCitjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5E
aXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCBS
ZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxh
dGZvcm1EaXNwbGF5SUQpID0gMDsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
ci5jcHAKaW5kZXggY2UwNjI5YzljY2FhMGFmY2I0YTAwM2I5MmFlYjU0NzdlODI3ZTMwZi4uNzM4
MmIxNTc1ZGVlOTZiYTkwODg1OGUzM2I5MzE0OTkyNzNjNzI3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFuYWdlci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgRGlzcGxheVJlZnJlc2hNb25pdG9y
KiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjptb25pdG9yRm9yQ2xpZW50KERpc3BsYXlS
ZWYKICAgICAgICAgcmV0dXJuIGV4aXN0aW5nTW9uaXRvcjsKICAgICB9CiAKLSAgICBhdXRvIG1v
bml0b3IgPSBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZShjbGllbnQpOworICAgIGF1dG8g
bW9uaXRvciA9IERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlKGNsaWVudC5kaXNwbGF5UmVm
cmVzaE1vbml0b3JGYWN0b3J5KCksIGNsaWVudERpc3BsYXlJRCk7CiAgICAgaWYgKCFtb25pdG9y
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwCmluZGV4IDc0OTE1
ZjczOTU1ZWY4MTk5Y2RjMDEyNWZmMTU2N2I3ZmVjMDMwZjQuLmMyMGRiZWMyMmYwMjk1NjA0N2M3
NjljOTMxYTVmMzFjZTc1ZDA2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAKQEAgLTM1LDcgKzM1LDcg
QEAgR3JhcGhpY3NMYXllclVwZGF0ZXI6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyKEdyYXBoaWNzTGF5
ZXJVcGRhdGVyQ2xpZW50JiBjbGllbnQsIFAKICAgICA6IG1fY2xpZW50KGNsaWVudCkKIHsKICAg
ICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkud2luZG93U2Ny
ZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwgKnRoaXMpOwotICAgIERpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zY2hlZHVsZUFuaW1hdGlvbigqdGhpcyk7CisgICAg
c2NoZWR1bGVVcGRhdGUoKTsKIH0KIAogR3JhcGhpY3NMYXllclVwZGF0ZXI6On5HcmFwaGljc0xh
eWVyVXBkYXRlcigpCkBAIC02Myw5ICs2Myw5IEBAIHZvaWQgR3JhcGhpY3NMYXllclVwZGF0ZXI6
OmRpc3BsYXlSZWZyZXNoRmlyZWQoKQogICAgIG1fY2xpZW50LmZsdXNoTGF5ZXJzU29vbigqdGhp
cyk7CiB9CiAKLVJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IEdyYXBoaWNzTGF5ZXJVcGRh
dGVyOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxh
eUlEKSBjb25zdAorRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogR3JhcGhpY3NMYXllclVw
ZGF0ZXI6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdAogewotICAgIHJldHVy
biBtX2NsaWVudC5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKTsKKyAgICBy
ZXR1cm4gbV9jbGllbnQuZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuaAppbmRleCA4NWE4OTllMTFhMDUwM2I3NzE4
M2I1MmViODg5ZWJjMjY0YmYyYzZmLi44NTA2MmQ5ZTUxOWE3NTMzYjQ1YmExMDM5YTMxN2NlMWJm
OTI4ZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmgKQEAgLTMwLDE3ICszMCwxNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rvcnk7CiBjbGFzcyBH
cmFwaGljc0xheWVyVXBkYXRlcjsKIAogY2xhc3MgR3JhcGhpY3NMYXllclVwZGF0ZXJDbGllbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50KCkgPSBk
ZWZhdWx0OwogICAgIHZpcnR1YWwgdm9pZCBmbHVzaExheWVyc1Nvb24oR3JhcGhpY3NMYXllclVw
ZGF0ZXImKSA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBj
cmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIGRpc3BsYXlSZWZyZXNo
TW9uaXRvckZhY3RvcnkoKSA9IDA7CiB9OwogCi1jbGFzcyBHcmFwaGljc0xheWVyVXBkYXRlciA6
IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQKLXsKK2NsYXNzIEdyYXBoaWNzTGF5
ZXJVcGRhdGVyIDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXllclVwZGF0ZXIo
R3JhcGhpY3NMYXllclVwZGF0ZXJDbGllbnQmLCBQbGF0Zm9ybURpc3BsYXlJRCk7CkBAIC00OSwx
MCArNDksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVVcGRhdGUoKTsKICAgICB2b2lk
IHNjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCk7CiAKLSAgICBSZWZQdHI8RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNw
bGF5SUQpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgotICAgIHZvaWQgZGlzcGxheVJlZnJl
c2hGaXJlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGxheVJlZnJlc2hGaXJlZCgpIGZpbmFs
OworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIGRpc3BsYXlSZWZyZXNoTW9uaXRv
ckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKKwogICAgIEdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50
JiBtX2NsaWVudDsKICAgICBib29sIG1fc2NoZWR1bGVkIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4
IDFhMTgzNWE1NTZhOTAzYzNiMzBmYjk5ZGQ1MDAyNWQzMTExYjE0YWMuLjg4NTVmOGI0N2QwZWNi
ZTg4NDEwODMxZmM3MWU4NTAwYWJkOTk3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC02NzYsNiArNjc2LDExIEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaExheWVyc1Nvb24oR3JhcGhpY3NMYXllclVw
ZGF0ZXImKQogICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKK0Rpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3RvcnkqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlzcGxheVJlZnJlc2hN
b25pdG9yRmFjdG9yeSgpCit7CisgICAgcmV0dXJuIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5k
aXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpsYXllclRpbGVkQmFja2luZ1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVy
KiBncmFwaGljc0xheWVyLCBib29sIHVzaW5nVGlsZWRCYWNraW5nKQogewogICAgIGlmICh1c2lu
Z1RpbGVkQmFja2luZykgewpAQCAtNDk4MiwxNCArNDk4Nyw2IEBAIEdyYXBoaWNzTGF5ZXJGYWN0
b3J5KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QK
ICAgICByZXR1cm4gcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5
KCk7CiB9CiAKLVJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3Bs
YXlJRCkgY29uc3QKLXsKLSAgICBpZiAoYXV0byBtb25pdG9yID0gcGFnZSgpLmNocm9tZSgpLmNs
aWVudCgpLmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpKQotICAgICAgICBy
ZXR1cm4gbW9uaXRvcjsKLQotICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0
ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKTsKLX0KLQogI2lmIEVOQUJM
RShDU1NfU0NST0xMX1NOQVApCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Ny
b2xsU25hcFByb3BlcnRpZXNXaXRoRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3
KSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5oCmluZGV4IDRlY2JmMGFhZGIxMjQwMWZlNzU5MjNmMmMwMmJhZDkxM2U5OWQ3YWQu
LjU2Yzc3MzVkN2U1NTFiNDg5OTIwMTZkN2NmYzJhYzNjMWMxYjQyZjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTM1LDYgKzM1
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0
b3JGYWN0b3J5OwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBjbGFz
cyBHcmFwaGljc0xheWVyOwogY2xhc3MgR3JhcGhpY3NMYXllclVwZGF0ZXI7CkBAIC00MDQsNyAr
NDA1LDggQEAgcHJpdmF0ZToKICAgICBib29sIGlzVHJhY2tpbmdSZXBhaW50cygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRzOyB9CiAgICAgCiAgICAgLy8gR3Jh
cGhpY3NMYXllclVwZGF0ZXJDbGllbnQgaW1wbGVtZW50YXRpb24KLSAgICB2b2lkIGZsdXNoTGF5
ZXJzU29vbihHcmFwaGljc0xheWVyVXBkYXRlciYpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2hM
YXllcnNTb29uKEdyYXBoaWNzTGF5ZXJVcGRhdGVyJikgZmluYWw7CisgICAgRGlzcGxheVJlZnJl
c2hNb25pdG9yRmFjdG9yeSogZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGZpbmFsOwog
CiAgICAgLy8gQ29weSB0aGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgcmVsYXRlZCBmbGFncyBm
cm9tIFNldHRpbmdzCiAgICAgdm9pZCBjYWNoZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGbGFncygp
OwpAQCAtNDg3LDggKzQ4OSw2IEBAIHByaXZhdGU6CiAgICAgR3JhcGhpY3NMYXllckZhY3Rvcnkq
IGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3Q7CiAgICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3Iq
IHNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkgY29uc3Q7CiAKLSAgICBSZWZQdHI8RGlzcGxheVJlZnJl
c2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQp
IGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8gTm9uIGxheW91dC1kZXBlbmRlbnQKICAgICBib29s
IHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JBbmltYXRpb24oUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYp
IGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXNDb21wb3NpdGluZ0ZvclRyYW5zZm9ybShSZW5kZXJM
YXllck1vZGVsT2JqZWN0JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMjAzOTBh
N2VjZDlhYjM3MGRmMjkwMzBmOGNiYWFlMGM5NGNiYTA2YS4uODIwZDIyYzZhYTRjYmNkYzE5MmM1
ZTZkZTYzZDI4MTIxNWRkYzE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjczLDcgKzY3
Myw3IEBAIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJSZW1vdGVPYmplY3RSZWdpc3RyeS5j
cHAKIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvRmluZENvbnRyb2xsZXJJT1MubW0KIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQogCi1XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Ry
YXdpbmdBcmVhTWFjLmNwcAorV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWMuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0KIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzNiYWJkMDE0ZWJkYjZmYWQ1MjBk
NTJmMzBkZmM4NDcwY2FkNWM2YS4uNDM5NzY4YTBmOTkwZjUzNDZjNjE0ODEwNzZiNDgwMTZkMjhh
NDFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yNDY2LDYgKzI0NjYsOCBAQAogCQkwRjkzMUMxQjE4QzU3MTE5MDBEQkE3QzMgLyog
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTMxQzFCMThDNTcxMTkw
MERCQjhENCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlSU9TLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZCNjU5
MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEcmF3aW5nQXJlYUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEZCQjVGQkYyNjA5QTA5MTAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZCQjVGQzAyNjA5QTA5MTAwNTQ1NzJDIC8qIERpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkMwODU2RTE4
N0NFMEE5MDA3ODBEODYgLyogX19pbml0X18ucHkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5weXRob247IG5hbWUgPSBfX2luaXRf
Xy5weTsgcGF0aCA9IHdlYmtpdC9fX2luaXRfXy5weTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZDMDg1NkYxODdDRTBBOTAwNzgwRDg2IC8qIG1lc3NhZ2VzLnB5ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9u
OyBuYW1lID0gbWVzc2FnZXMucHk7IHBhdGggPSB3ZWJraXQvbWVzc2FnZXMucHk7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzA4NTcwMTg3Q0UwQTkwMDc4MEQ4NiAvKiBtb2RlbC5w
eSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnB5dGhvbjsgbmFtZSA9IG1vZGVsLnB5OyBwYXRoID0gd2Via2l0L21vZGVsLnB5OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTQ4Niw3ICs1NDg4LDYgQEAKIAkJQzE3MTBD
RjIyNEE3QkQwMzAwRDdDMTEyIC8qIFhQQ0V2ZW50SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBY
UENFdmVudEhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE3MTBDRjUy
NEFBNjM0NTAwRDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzE3MTBDRjYyNEFBNjQzMjAwRDdDMTEyIC8qIExhdW5jaFNlcnZp
Y2VzRGF0YWJhc2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExhdW5jaFNlcnZp
Y2VzRGF0YWJhc2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzE4
MTczNUUyMDU4MzlGNjAwREZEQTY1IC8qIERyYXdpbmdBcmVhTWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERyYXdpbmdBcmVhTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzE4MTczNjAyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERpc3BsYXlMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxODE3MzYyMjA1
ODQ0QTkwMERGREE2NSAvKiBEaXNwbGF5TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNw
bGF5TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxOEYzQTEzMjU2MzMy
QTYwMDc5N0U2NiAvKiBXZWJJbnNwZWN0b3JQcmVmZXJlbmNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViSW5zcGVjdG9yUHJlZmVyZW5jZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMDU3NCw3ICsxMDU3NSw4IEBACiAJCUJDOTYzRDZDMTEzREQxOTUwMDU3
NEJFMiAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAot
CQkJCUMxODE3MzVFMjA1ODM5RjYwMERGREE2NSAvKiBEcmF3aW5nQXJlYU1hYy5jcHAgKi8sCisJ
CQkJMEZCQjVGQzAyNjA5QTA5MTAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5j
cHAgKi8sCisJCQkJMEZCQjVGQkYyNjA5QTA5MTAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYy5oICovLAogCQkJCTdDNkQzN0ZBMTcyRjU1NUYwMDlEMjg0NyAvKiBQYWdlQmFubmVy
TWFjLm1tICovLAogCQkJCTFBQUYyNjM3MTQ2ODdDMzkwMDRBMUU4QSAvKiBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oICovLAogCQkJCTFBQUYyNjM2MTQ2ODdDMzkwMDRBMUU4QSAvKiBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggZjdmZmQ3OWIyNTgzZmNmMmUzYmU1ZTM4MDNiNTJiMzE0ZGQ1OWNiMC4uZWM2NzQxNDRi
MWUxNmY1ZjUzNDRlYmUwZjAyOThmOTkxYjEzZjgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTkxMiwxNiArOTEyLDE3IEBAIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBXZWJDaHJvbWVDbGll
bnQ6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAotUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVE
aXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25zdAor
V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50Ojpk
aXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byogZHJh
d2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgcmV0dXJuIGRyYXdpbmdB
cmVhLT5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKTsKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCk7CisjZWxzZQogICAgIHJl
dHVybiBudWxscHRyOworI2VuZGlmCiB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLQog
UmVmUHRyPEltYWdlQnVmZmVyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUltYWdlQnVmZmVyKGNv
bnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBSZW5kZXJp
bmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgRGVzdGluYXRpb25Db2xv
clNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVsRm9ybWF0KSBjb25zdAogewogICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9y
KHB1cnBvc2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDE3OTJkNDM0OGRlNjUwNjYwNjgwNGI2
YzVlZTQyYzUyNGYzZjQzZmEuLjdkNmE1ZmQ0ODZiZDg2OTUyMTZlOWRiMWRmOGRjZjNiY2NhOTI3
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIzOSw3ICsyMzksNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBhbmltYXRpb25EaWRGaW5pc2hGb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnQmKSBmaW5hbDsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+
IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCkg
Y29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSog
ZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1ZmZlcj4gY3JlYXRlSW1h
Z2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgV2ViQ29yZTo6UmVuZGVyaW5nTW9k
ZSwgV2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBXZWJD
b3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UsIFdlYkNvcmU6OlBpeGVsRm9ybWF0KSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmNwcAppbmRleCBlYzVlMzZiNWI0NGE5OWQ0OWNhYmRmODI2YjNkMTQ4ZGI3OGI5OWI3Li5lOGE3
NDcyYWMzOTJlZWYzYTFjNGIxMjljNWFkMTJkMjgyOWI1ZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCkBAIC04MiwxMyArODIsNiBA
QCB2b2lkIERyYXdpbmdBcmVhOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVkU2Nyb2xsUG9z
aXRpb24oV1RGOjpGdW5jdGlvbjx2b2lkCiAgICAgZnVuY3Rpb24oKTsKIH0KIAotI2lmICFQTEFU
Rk9STShNQUMpCi1SZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEcmF3aW5n
QXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKQotewot
ICAgIHJldHVybiBudWxscHRyOwotfQotI2VuZGlmCi0KIHZvaWQgRHJhd2luZ0FyZWE6OnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcklmTmVlZGVkKCkKIHsKICAgICBpZiAobV9oYXNSZW1vdmVkTWVzc2Fn
ZVJlY2VpdmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLmgKaW5kZXggNjRkNTMyOWI4NjYwOGJjMDJkNDY3Y2Q0M2VjZGVmNzJiNTRhMjcxZS4uM2U4
MjdkZWUxMmFkMWM5NWUzZDMxYmIzOGIxZmI2ZjZkYTljZjMxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJl
ZnJlc2hNb25pdG9yRmFjdG9yeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRNaWxl
c3RvbmUuaD4KQEAgLTY0LDcgKzY1LDExIEBAIGNsYXNzIExheWVyVHJlZUhvc3Q7CiBzdHJ1Y3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlOwog
Ci1jbGFzcyBEcmF3aW5nQXJlYSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitjbGFz
cyBEcmF3aW5nQXJlYSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgICwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rv
cnkKKyNlbmRpZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKERyYXdpbmdBcmVhKTsKIApAQCAtMTE3LDggKzEyMiw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgp
ID0gMDsKIAotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRv
cj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlE
KTsKLQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVkU2Nyb2xs
UG9zaXRpb24oV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBh
Y3Rpdml0eVN0YXRlRGlkQ2hhbmdlKE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpG
bGFnPiwgQWN0aXZpdHlTdGF0ZUNoYW5nZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKaW5kZXggZDQ4MmI0
MmUwYzI1NDEyNzdjOTRhNDVkZmNmYjViMDE5NDUxMTE0My4uMDBjMDgzZGRlN2JmNjQwYzEyOGE5
MzQ5NWQ2MGNmMTk5NWI3M2E5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgYWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKENhbGxiYWNrSUQpIG92ZXJyaWRlOwogCi0g
ICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsKKyAgICBS
ZWY8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1v
bml0b3IoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpIGZpbmFsOwogICAgIHZvaWQgd2lsbERl
c3Ryb3lEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
Kik7CiAgICAgdm9pZCBzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoV2ViQ29yZTo6RnJhbWVz
UGVyU2Vjb25kKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLm1tCmluZGV4IGEzODgxMzM1YTRlZjdkYTBhMjhmYjc2MDJiOGEyOTdhODA2
ODUzMzQuLjI2YTI1ZTE4NzEzMjljZTQwZjg0NTNiZjU1YmFiYTVlY2RlNmZiNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAg
LTk3LDcgKzk3LDcgQEAgR3JhcGhpY3NMYXllckZhY3RvcnkqIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhOjpncmFwaGljc0xheWVyRmFjdG9yeSgpCiAgICAgcmV0dXJuIG1fcmVtb3RlTGF5ZXJU
cmVlQ29udGV4dC5nZXQoKTsKIH0KIAotUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0
Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCitSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKIHsKICAgICBhdXRvIG1vbml0b3IgPSBSZW1vdGVMYXll
clRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZShkaXNwbGF5SUQsICp0aGlzKTsKICAg
ICBtX2Rpc3BsYXlSZWZyZXNoTW9uaXRvcnMuYWRkKG1vbml0b3IucHRyKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDdhMTQyZDVkYjBmYjVkM2E1MDYw
MDBhYzUxYTU5YTIyNDgyMWE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKQEAgLTAsMCAr
MSw4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYzo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3JtRGlz
cGxheUlEIGRpc3BsYXlJRCkKKyAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQp
CisgICAgLCBtX29ic2VydmVySUQoRGlzcGxheUxpbmtPYnNlcnZlcklEOjpnZW5lcmF0ZSgpKQor
eworfQorCitEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6On5EaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6U3RvcERpc3BsYXlMaW5rKG1f
b2JzZXJ2ZXJJRCwgZGlzcGxheUlEKCkpLCAwKTsKK30KKworYm9vbCBEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKQoreworICAgIGlmICghaXNBY3RpdmUo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFtX2hhc1NlbnRNZXNzYWdlKSB7
CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6U3RhcnREaXNwbGF5TGluayhtX29i
c2VydmVySUQsIGRpc3BsYXlJRCgpKSwgMCk7CisgICAgICAgIG1faGFzU2VudE1lc3NhZ2UgPSB0
cnVlOworICAgICAgICBtX3J1bkxvb3BPYnNlcnZlciA9IG1ha2VVbmlxdWU8UnVuTG9vcE9ic2Vy
dmVyPihrQ0ZSdW5Mb29wRW50cnksIFt0aGlzXSgpIHsKKyAgICAgICAgICAgIHRoaXMtPm1fZmly
c3RDYWxsYmFja0luQ3VycmVudFJ1bmxvb3AgPSB0cnVlOworICAgICAgICB9KTsKKyAgICAgICAg
bV9ydW5Mb29wT2JzZXJ2ZXItPnNjaGVkdWxlKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7CisgICAg
fQorICAgIAorICAgIHNldElzU2NoZWR1bGVkKHRydWUpOworCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKK3sK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKyAgICBpZiAoIW1fZmlyc3RDYWxsYmFja0lu
Q3VycmVudFJ1bmxvb3ApCisgICAgICAgIHJldHVybjsKKyAgICBtX2ZpcnN0Q2FsbGJhY2tJbkN1
cnJlbnRSdW5sb29wID0gZmFsc2U7CisKKyAgICAvLyBTaW5jZSB3ZSBhcmUgb24gdGhlIG1haW4g
dGhyZWFkLCB3ZSBjYW4ganVzdCBjYWxsIGhhbmRsZURpc3BsYXlSZWZyZXNoZWROb3RpZmljYXRp
b25Pbk1haW5UaHJlYWQgaGVyZS4KKyAgICBoYW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0
aW9uT25NYWluVGhyZWFkKHRoaXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43Mjg4NWVmZjFiNmU4ZmJmYzQ3NmU0ZDMzYzNiNWFjYWQ1NDY0YzhkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Rpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYy5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiRGlzcGxheUxpbmtPYnNl
cnZlcklELmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjIDogcHVibGljIFdlYkNvcmU6OkRpc3Bs
YXlSZWZyZXNoTW9uaXRvciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWM+IGNyZWF0ZShXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWMoZGlzcGxheUlEKSk7CisgICAgfQorICAgIAorICAgIHZpcnR1YWwgfkRpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYygpOworICAgIAorICAgIHZvaWQgZGlzcGxheUxpbmtGaXJlZCgpIG92ZXJy
aWRlOworICAgIGJvb2wgcmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpIG92ZXJyaWRlOworICAgIAor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5SUQpOworICAgIAorICAgIGJvb2wgaGFzUmVxdWVzdGVkUmVmcmVzaENh
bGxiYWNrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9oYXNTZW50TWVzc2FnZTsgfQorCisg
ICAgRGlzcGxheUxpbmtPYnNlcnZlcklEIG1fb2JzZXJ2ZXJJRDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6UnVuTG9vcE9ic2VydmVyPiBtX3J1bkxvb3BPYnNlcnZlcjsKKyAgICBib29s
IG1faGFzU2VudE1lc3NhZ2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV9maXJzdENhbGxiYWNrSW5D
dXJyZW50UnVubG9vcCB7IGZhbHNlIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvRHJhd2luZ0FyZWFNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMzAwMmEwMTE2ZDBiOTUwNDRiMzQ1Y2YwNjJiM2M1YTI4NjEzN2QzLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxMTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJEcmF3aW5nQXJlYS5oIgotCi0jaWYgUExBVEZPUk0oTUFDKQotCi0jaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eU1lc3NhZ2VzLmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLWNsYXNzIERpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYyA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3IgewotcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjPiBjcmVhdGUoUGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlEKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKGRpc3BsYXlJRCkpOwotICAgIH0KLSAgICAKLSAg
ICB2aXJ0dWFsIH5EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoKTsKLSAgICAKLSAgICB2b2lkIGRp
c3BsYXlMaW5rRmlyZWQoKSBvdmVycmlkZTsKLSAgICBib29sIHJlcXVlc3RSZWZyZXNoQ2FsbGJh
Y2soKSBvdmVycmlkZTsKLSAgICAKLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEKTsKLSAgICAKLSAgICBib29sIGhhc1JlcXVl
c3RlZFJlZnJlc2hDYWxsYmFjaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faGFzU2VudE1l
c3NhZ2U7IH0KLQotICAgIERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCBtX29ic2VydmVySUQ7Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPFJ1bkxvb3BPYnNlcnZlcj4gbV9ydW5Mb29wT2JzZXJ2ZXI7Ci0gICAg
Ym9vbCBtX2hhc1NlbnRNZXNzYWdlIHsgZmFsc2UgfTsKLSAgICBib29sIG1fZmlyc3RDYWxsYmFj
a0luQ3VycmVudFJ1bmxvb3AgeyBmYWxzZSB9OwotfTsKLQotRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlE
KQotICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkKLSAgICAsIG1fb2JzZXJ2
ZXJJRChEaXNwbGF5TGlua09ic2VydmVySUQ6OmdlbmVyYXRlKCkpCi17Ci19Ci0KLURpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYzo6fkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYygpCi17Ci0gICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTdG9wRGlzcGxheUxpbmsobV9vYnNlcnZlcklELCBkaXNw
bGF5SUQoKSksIDApOwotfQotCi1ib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6cmVxdWVz
dFJlZnJlc2hDYWxsYmFjaygpCi17Ci0gICAgaWYgKCFpc0FjdGl2ZSgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW1faGFzU2VudE1lc3NhZ2UpIHsKLSAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpTdGFydERpc3BsYXlMaW5rKG1fb2JzZXJ2ZXJJRCwgZGlzcGxh
eUlEKCkpLCAwKTsKLSAgICAgICAgbV9oYXNTZW50TWVzc2FnZSA9IHRydWU7Ci0gICAgICAgIG1f
cnVuTG9vcE9ic2VydmVyID0gbWFrZVVuaXF1ZTxSdW5Mb29wT2JzZXJ2ZXI+KGtDRlJ1bkxvb3BF
bnRyeSwgW3RoaXNdKCkgewotICAgICAgICAgICAgdGhpcy0+bV9maXJzdENhbGxiYWNrSW5DdXJy
ZW50UnVubG9vcCA9IHRydWU7Ci0gICAgICAgIH0pOwotICAgICAgICBtX3J1bkxvb3BPYnNlcnZl
ci0+c2NoZWR1bGUoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKLSAgICB9Ci0gICAgCi0gICAgc2V0
SXNTY2hlZHVsZWQodHJ1ZSk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQoKQotewotICAgIEFTU0VSVChpc01h
aW5SdW5Mb29wKCkpOwotICAgIGlmICghbV9maXJzdENhbGxiYWNrSW5DdXJyZW50UnVubG9vcCkK
LSAgICAgICAgcmV0dXJuOwotICAgIG1fZmlyc3RDYWxsYmFja0luQ3VycmVudFJ1bmxvb3AgPSBm
YWxzZTsKLQotICAgIC8vIFNpbmNlIHdlIGFyZSBvbiB0aGUgbWFpbiB0aHJlYWQsIHdlIGNhbiBq
dXN0IGNhbGwgaGFuZGxlRGlzcGxheVJlZnJlc2hlZE5vdGlmaWNhdGlvbk9uTWFpblRocmVhZCBo
ZXJlLgotICAgIGhhbmRsZURpc3BsYXlSZWZyZXNoZWROb3RpZmljYXRpb25Pbk1haW5UaHJlYWQo
dGhpcyk7Ci19Ci0KLVJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IERyYXdp
bmdBcmVhOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlEKQotewotICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmNyZWF0ZShk
aXNwbGF5SUQpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IGI2Y2FlNDc3MWU0Mjk4ODc1NGIyOWUy
MjI4NmI5ZjA0YWI1MjIzZjUuLmVjNzg4YTdlZDc4NGE1YmYxNzc5ZDQ2YjliMTc2YWUyYTNiYzYx
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC0xMTcsNiAr
MTE3LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYXBwbHlUcmFuc2llbnRab29tVG9MYXllcnMo
ZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbik7CiAKKyAgICBSZWY8V2Vi
Q29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3Io
V2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpIGZpbmFsOworCiAgICAgdm9pZCB1cGRhdGVMYXll
ckhvc3RpbmdDb250ZXh0KCk7CiAKICAgICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKENB
TGF5ZXIgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXgg
NWY2NmJmZDcyZmZmMzU2Njg4YTYyYWNhZjQ5NGRkOGJjZmFkMGE0My4uYTc2NjFiNmY2NmFlN2Nj
YWIzYTUwM2E3YTdkY2IwMjVlNTU1MDNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKE1BQykKIAogI2lt
cG9ydCAiQ29sb3JTcGFjZURhdGEuaCIKKyNpbXBvcnQgIkRpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yy5oIgogI2ltcG9ydCAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJMYXll
ckhvc3RpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJMYXllclRyZWVDb250ZXh0LmgiCkBAIC02NTIs
NiArNjUzLDExIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldENvbG9y
U3BhY2UoY29uc3QgQ29sb3JTcGFjZURhdGEmIGNvbG9yU3BhCiAgICAgbV9sYXllckhvc3RpbmdD
b250ZXh0LT5zZXRDb2xvclNwYWNlKGNvbG9yU3BhY2UuY2dDb2xvclNwYWNlLmdldCgpKTsKIH0K
IAorUmVmPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQpCit7CisgICAgcmV0dXJuIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6Y3Jl
YXRlKGRpc3BsYXlJRCk7Cit9CisKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQoKQogewogICAgIFJldGFpblB0cjxDR0NvbG9yU3Bh
Y2VSZWY+IGNvbG9yU3BhY2U7Cg==
</data>
<flag name="review"
          id="443598"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="443610"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424059</attachid>
            <date>2021-03-23 13:53:59 -0700</date>
            <delta_ts>2021-03-23 14:18:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223648-20210323135358.patch</filename>
            <type>text/plain</type>
            <size>48895</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVmNmRhN2RiNDk2Yzlm
YjU4Mzk4NzhlZjJmOTlkNmY2ODc4N2QzNy4uYzMzYmFmZTc5ZWE5MTYzNThmY2VhMzI1NjY3YTg3
NWJkMGQ3YjE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTAzLTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3JGYWN0b3J5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzNjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXou
CisKKyAgICAgICAgRnV0dXJlIHdvcmsgd2lsbCByZXF1aXJlIHRoYXQgaXQncyBwb3NzaWJsZSB0
byBjcmVhdGUgYSBEaXNwbGF5UmVmcmVzaE1vbml0b3IKKyAgICAgICAgd2l0aG91dCBoYXZpbmcg
YSBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuIEl0IHdhcyBhbHNvIHdlaXJkIHRoYXQgdGhl
IHdheSB0bworICAgICAgICBjcmVhdGUgYSBEaXNwbGF5UmVmcmVzaE1vbml0b3Igd2FzIHZpYSB0
aGUgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LCBzbworICAgICAgICB0aGlzIGNoYW5nZSBm
aXhlcyBib3RoIGJ5IGFkZGluZyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LgorCisgICAg
ICAgIEluIFdLMiwgdGhlIGRyYXdpbmcgYXJlYXMgYXJlIERpc3BsYXlSZWZyZXNoTW9uaXRvckZh
Y3Rvcmllcy4gSWYgdGhlcmUgaXMgbm8KKyAgICAgICAgZmFjdG9yeSwgd2UgZmFsbCBiYWNrIHRv
IHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlEaXNwbGF5
UmVmcmVzaE1vbml0b3JGYWN0b3J5OjpzaGFyZWRFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvckZh
Y3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmRpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVD
bGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRv
ckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpjcmVhdGVE
aXNwbGF5UmVmcmVzaE1vbml0b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUmVu
ZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmluZ1Vw
ZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmNyZWF0ZURpc3BsYXlSZWZy
ZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9SZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVz
aE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQ6
OkRpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JD
bGllbnQuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlcjo6bW9uaXRvckZvckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
clVwZGF0ZXI6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJVcGRhdGVyOjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyOjpjcmVhdGVEaXNwbGF5UmVmcmVz
aE1vbml0b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJVcGRhdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRp
c3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKwogMjAyMS0w
My0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggYSBtaXN0YWtlIGluIHIyNzQ3MjUgc3BvdHRlZCBieSBEYXJpbi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTlm
Nzc5NGM5NWViMzBlZDZkZTRkMDRiMjM0NmI4MjU0OTJkNzM3My4uMjE3Nzc2OGVhMmVlMGEyODlh
MDQxZTY5ZDY0OWViMGY0YTFmZDg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0w
My0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzY0OAorCisgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIER1bWV6LgorCisgICAgICAgIEZ1dHVyZSB3b3JrIHdpbGwgcmVxdWlyZSB0aGF0IGl0J3Mg
cG9zc2libGUgdG8gY3JlYXRlIGEgRGlzcGxheVJlZnJlc2hNb25pdG9yCisgICAgICAgIHdpdGhv
dXQgaGF2aW5nIGEgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LiBJdCB3YXMgYWxzbyB3ZWly
ZCB0aGF0IHRoZSB3YXkgdG8KKyAgICAgICAgY3JlYXRlIGEgRGlzcGxheVJlZnJlc2hNb25pdG9y
IHdhcyB2aWEgdGhlIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCwgc28KKyAgICAgICAgdGhp
cyBjaGFuZ2UgZml4ZXMgYm90aCBieSBhZGRpbmcgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9y
eS4KKworICAgICAgICBJbiBXSzIsIHRoZSBkcmF3aW5nIGFyZWFzIGFyZSBEaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3JpZXMuIElmIHRoZXJlIGlzIG5vCisgICAgICAgIGZhY3RvcnksIHdlIGZh
bGwgYmFjayB0byB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgUmVtb3Zl
IERyYXdpbmdBcmVhTWFjLmNwcCBzaW5jZSBpdHMgY29kZSB3YXMgZW50aXJlbHkgcmVsYXRlZCB0
byBjcmVhdGluZworICAgICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMgb2JqZWN0cy4KKwor
ICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpc3Bs
YXlSZWZyZXNoTW9uaXRvckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpEcmF3aW5nQXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVh
TWFjLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpEaXNw
bGF5UmVmcmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWM6On5EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2ViS2l0OjpE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViS2l0OjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJVcGRhdGVyLmguCisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yzo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcik6CisK
IDIwMjEtMDMtMTkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2Fubm90IGxvZ2luIHRvIG1pY3Jvc29mdG9ubGluZS5jb20gd2l0aG91dCBhbGxv
d2luZyBzdG9yYWdlIGFjY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggM2JjN2JmNjdlYTAxNDdk
OTk4OGQ1NDczODkwZGIwOWJjNzU0Mzg2NC4uMTE5MjgzNWE3Mzc5YTM5MWRiNWFhNTU1OWE2MDA2
ODQxMWYyYjE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTgwLDYgKzExODAsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
RGVjb2RpbmdPcHRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFBvaW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBmM2M0Zjc0ZThlYzMwMTc5YjA2ZjY0NjllNTU5ZjU4Nzc2NmVl
NTM5Li4zOGFiMTE2MDc4YzgzMTE0OGM0ZGE4ZTEwYWNhNDg0ZTU4Yjg2ZDIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDIs
NiArMzQyLDcgQEAKIAkJMEZBMjREN0ExNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJV
cGRhdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkEyNEQ3ODE2MkRGOTE5MDBBM0Y0QzAgLyogR3JhcGhpY3NMYXllclVwZGF0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkI2MjUyRjE4REUx
QjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjYyNTJEMThERTFCMTUwMEEwN0MwNSAvKiBHZW9t
ZXRyeVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGQjg4OTBGMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNr
eU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Qjg4OTBEMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkJCNUZCRTI2
MDk5MUQyMDA1NDU3MkMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCQjVGQkQyNjA5NUE5QzAw
NTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0QjAwNjIyQjlBMDJEMDBDRjNC
MUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0QjAwNDIyQjlBMDJDMDBDRjNC
MUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDRjMzMkYwRjJCOUEyNTAw
NEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkNGMzMyQjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkQzMDgwRjExN0NG
N0U3MDBBNzkxRjcgLyogUmVuZGVyRnJhbWVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQzMDgwRDExN0NGN0U3MDBBNzkxRjcgLyogUmVuZGVy
RnJhbWVCYXNlLmggKi87IH07CkBAIC02MTgwLDYgKzYxODEsNyBAQAogCQkwRkI2MjUyRDE4REUx
QjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR2VvbWV0cnlVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI4ODkwRDE2
N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRkJCNUZCRDI2MDk1QTlDMDA1NDU3MkMgLyogRGlzcGxh
eVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVmcmVzaE1v
bml0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQkZDRTI0MjU2
Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXNwbGF5Qm94Q2xpcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQkZDRTI2
MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNw
bGF5Qm94Q2xpcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkMwNTE2ODIxOUI1
RUJFMDAzMUMzOUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjcxOSw2ICsyNjcyMSw3IEBA
CiAJCQkJNDlBRjJENjgxNDQzNUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5o
ICovLAogCQkJCTJEMjlFQ0MxMTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQuY3BwICovLAogCQkJCTJEMjlFQ0MyMTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5
UmVmcmVzaE1vbml0b3JDbGllbnQuaCAqLywKKwkJCQkwRkJCNUZCRDI2MDk1QTlDMDA1NDU3MkMg
LyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovLAogCQkJCTJEMjlFQ0MzMTkyRUND
ODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcCAqLywKIAkJCQky
RDI5RUNDNDE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5o
ICovLAogCQkJCTZFNjdEMkE4MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zR0wuaCAqLywK
QEAgLTMyMDQzLDYgKzMyMDQ2LDcgQEAKIAkJCQkwRkU1RkJEOTFDM0RENTFFMDAwN0EyQ0EgLyog
RGlzcGxheUxpc3RSZXBsYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQzNUQw
NTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkQyOUVDQzYxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZCQjVGQkUyNjA5OTFEMjAwNTQ1NzJDIC8qIERpc3BsYXlS
ZWZyZXNoTW9uaXRvckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0NBMTkyRjFG
MUQwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJEMjlFQ0M4MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MzI1MTdDRTZFMDA5QkEwMzQgLyogRGlz
cGxheVZpZXcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcAppbmRleCBmNjI2NDRiODc1ZTNhNjA1YzQ3YzViNTZlZjM0YmUzNDUwNmM4NWNiLi43ZTJk
MzkxMTkyOTkxODY3ZWM1YjJhODJmNzE2NjU3ODY0NzU2NjAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlci5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgorI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNo
TW9uaXRvckZhY3RvcnkuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCkBAIC0xMjUsOCAr
MTI2LDcgQEAgY2xhc3MgRW1wdHlDb250ZXh0TWVudUNsaWVudCBmaW5hbCA6IHB1YmxpYyBDb250
ZXh0TWVudUNsaWVudCB7CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAotCi1j
bGFzcyBFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvciA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1v
bml0b3IgeworY2xhc3MgRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3IgZmluYWwgOiBwdWJsaWMg
RGlzcGxheVJlZnJlc2hNb25pdG9yIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEVtcHR5RGlz
cGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQog
ICAgIHsKQEAgLTE0NCw2ICsxNDQsMjEgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCitjbGFzcyBF
bXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkgZmluYWwgOiBwdWJsaWMgRGlzcGxheVJl
ZnJlc2hNb25pdG9yRmFjdG9yeSB7CitwdWJsaWM6CisgICAgc3RhdGljIERpc3BsYXlSZWZyZXNo
TW9uaXRvckZhY3RvcnkqIHNoYXJlZEVtcHR5RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgp
CisgICAgeworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlEaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3J5PiBlbXB0eUZhY3Rvcnk7CisgICAgICAgIHJldHVybiAmZW1wdHlGYWN0
b3J5LmdldCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RGlzcGxheVJlZnJlc2hN
b25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlEKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIEVtcHR5RGlzcGxheVJlZnJlc2hN
b25pdG9yOjpjcmVhdGUoZGlzcGxheUlEKTsKKyAgICB9Cit9OworCiBjbGFzcyBFbXB0eURhdGFi
YXNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgRGF0YWJhc2VQcm92aWRlciB7CiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAgICAgc3RydWN0IEVtcHR5SURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZXRlZ2F0ZSBmaW5hbCA6IHB1YmxpYyBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZl
ckRlbGVnYXRlIHsKQEAgLTUzMCw5ICs1NDUsOSBAQCB2b2lkIEVtcHR5Q2hyb21lQ2xpZW50Ojpz
dG9yZUFwcEhpZ2hsaWdodChBcHBIaWdobGlnaHQmJikgY29uc3QKIH0KICNlbmRpZgogCi1SZWZQ
dHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxh
eVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKK0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIEVtcHR5Q2hyb21lQ2xpZW50OjpkaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3J5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gRW1wdHlEaXNwbGF5UmVmcmVz
aE1vbml0b3I6OmNyZWF0ZShkaXNwbGF5SUQpOworICAgIHJldHVybiBFbXB0eURpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3Rvcnk6OnNoYXJlZEVtcHR5RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9y
eSgpOwogfQogCiB2b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUmLCBG
aWxlQ2hvb3NlciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYjZmODEw
ZWQyNjc0MmMzMDVkN2QwYzMwZWJhYjRlMWViZmZiMjkyYy4uZGIxNWIwOThhNDkwYWUwMzMwZTUy
YzgwZTAwMjk0MjJmYTU0YWZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApA
QCAtMTQ5LDcgKzE0OSw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9t
ZUNsaWVudCB7CiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChBcHBIaWdobGlnaHQmJikgY29u
c3QgZmluYWw7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNy
ZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgZmluYWw7
CisgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogZGlzcGxheVJlZnJlc2hNb25pdG9y
RmFjdG9yeSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBG
aWxlQ2hvb3NlciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0
aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNTRiNzE0NWY2YzY1MzNhM2ZjNjAxZmYzNTM3
ZTI0NDViZGIzYzdlYS4uODFhMDNkNjVhNTM4NGRjNjBjY2YxZGE3ZTBlNzM5MWMwZjkwOTI0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zMjYsOCArMzI2LDggQEAgcHVibGlj
OgogCiAgICAgLy8gQWxsb3dzIHBvcnRzIHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBncmFwaGlj
cyBsYXllcnMgY3JlYXRlZCBieSB0aGlzIHBhZ2UuCiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVy
RmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
Ci0KLSAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3Bs
YXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVsbHB0
cjsgfQorICAgIAorICAgIHZpcnR1YWwgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogZGlz
cGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAog
ICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBG
bG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCwgRGVzdGlu
YXRpb25Db2xvclNwYWNlLCBQaXhlbEZvcm1hdCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAK
aW5kZXggNWMwOGMxOWI5M2MzMGMyN2M1OTMyMjZiNzNjNzhhNTVlMjQ3YTUyMi4uMzIwYmNjNzRm
OWJhMzgyZDZiZDE4YjYwOWY3NWQzM2NhMzllYTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcApAQCAtMTI4LDEyICsxMjgsOSBAQCB2
b2lkIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6Y2xlYXJTY2hlZHVsZWQoKQogICAgIG1fcmVm
cmVzaFRpbWVyID0gbnVsbHB0cjsKIH0KIAotUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4g
UmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25zdAorRGlzcGxheVJlZnJlc2hNb25pdG9yRmFj
dG9yeSogUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5KCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byBtb25pdG9yID0gbV9wYWdlLmNocm9tZSgpLmNs
aWVudCgpLmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpKQotICAgICAgICBy
ZXR1cm4gbW9uaXRvcjsKLQotICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0
ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKTsKKyAgICByZXR1cm4gbV9w
YWdlLmNocm9tZSgpLmNsaWVudCgpLmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKTsKIH0K
IAogdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5k
ZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAppbmRleCAyMDM4YTFhNTM1ZTJmNzFiYzM3ZDNjZjMyNjEz
NGVmNjQ4NGQ1ZmYwLi5kYzM1NzExNGM0ZTJiMmMxYzAzMTM3ZjZkMGQyZTQwMTgwZmNhYTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKQEAg
LTM0LDggKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGFnZTsKIGNsYXNzIFRp
bWVyOwogCi1jbGFzcyBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIgOiBwdWJsaWMgRGlzcGxheVJl
ZnJlc2hNb25pdG9yQ2xpZW50Ci17CitjbGFzcyBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIgZmlu
YWwgOiBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbmRl
cmluZ1VwZGF0ZVNjaGVkdWxlcj4gY3JlYXRlKFBhZ2UmIHBhZ2UpCkBAIC01NSw4ICs1NCw5IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQo
RnJhbWVzUGVyU2Vjb25kKTsKICAgICBib29sIHNjaGVkdWxlQW5pbWF0aW9uKEZyYW1lc1BlclNl
Y29uZCk7Ci0gICAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQg
ZGlzcGxheVJlZnJlc2hGaXJlZCgpIGZpbmFsOworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvckZh
Y3RvcnkqIGRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKIAogICAg
IGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdDsKICAgICB2b2lkIHN0YXJ0VGltZXIoU2Vjb25kcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmNwcAppbmRleCA3Mzg3NmZmYTdlMmQ0MmM0OWIzNTlkZGQ1YTFkZTMz
Mzk4Y2VkZGI2Li5jNGEwZDRjNTQzZjdjNDIwMzJhNzhlYTdjZTJhYjdlMjA3ZTFhOGE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEaXNwbGF5UmVm
cmVzaE1vbml0b3IuaCIKIAogI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5o
IgorI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaCIKICNpbmNsdWRlICJE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCkBA
IC02MCw5ICs2MSwxNSBAQCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEaXNwbGF5UmVm
cmVzaE1vbml0b3I6OmNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaAogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi1SZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OmNyZWF0ZShEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQmIGNsaWVudCkKK1JlZlB0
cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlKERp
c3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIGZhY3RvcnksIFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKIHsKLSAgICByZXR1cm4gY2xpZW50LmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRv
cihjbGllbnQuZGlzcGxheUlEKCkpOworICAgIGlmIChmYWN0b3J5KSB7CisgICAgICAgIGF1dG8g
bW9uaXRvciA9IGZhY3RvcnktPmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQp
OworICAgICAgICBpZiAobW9uaXRvcikKKyAgICAgICAgICAgIHJldHVybiBtb25pdG9yOworICAg
IH0KKyAgICAKKyAgICByZXR1cm4gY3JlYXRlRGVmYXVsdERpc3BsYXlSZWZyZXNoTW9uaXRvcihk
aXNwbGF5SUQpOwogfQogCiBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OkRpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCmluZGV4IGE1
NGYyYjkyMzUxODEwNTc3YzgwODJhZGEyNWFlYjkyYzE3MGZjYmUuLjZmYzRiNGM5OTVlNzFjNTIw
Yjg4ZjFjNDJiMDQxNjI0OGExMjhjYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCkBAIC0zNiwxMCArMzYs
MTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaXNwbGF5QW5pbWF0aW9uQ2xpZW50
OwogY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50OworY2xhc3MgRGlzcGxheVJlZnJl
c2hNb25pdG9yRmFjdG9yeTsKIAogY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGUoRGlzcGxheVJl
ZnJlc2hNb25pdG9yQ2xpZW50Jik7CisgICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1v
bml0b3I+IGNyZWF0ZShEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiwgUGxhdGZvcm1EaXNw
bGF5SUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRpc3BsYXlSZWZyZXNoTW9uaXRv
cigpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BsYXlMaW5rRmlyZWQoKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JDbGllbnQuY3BwCmluZGV4IDYyMjViMmQ5MmVmOGQwMDRhZDFkMTMwNjMyY2I5
ZDkxMTc2YzA4YzQuLjA4M2M1MWEzYWM5N2I3Mzk3ZjE1YzkxNTc0YTAxMWM2NDQ5MjdjNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcApAQCAtMzEsOSArMzEsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLURpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudDo6RGlzcGxheVJl
ZnJlc2hNb25pdG9yQ2xpZW50KCkKLXsKLX0KK0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudDo6
RGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50KCkgPSBkZWZhdWx0OwogCiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQ6On5EaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25p
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JDbGllbnQuaAppbmRleCBiZWU3ZDgxNjJhYWI3ZGRhNmM2ZjE3ZjFiZmRjYjVk
YjYzYWM1NjdlLi45ZTY4ZmZjZWQ4MmQ4Mjc0OGZiYjExMjYzM2U4N2Q2M2YyMGFkZDhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaApAQCAtMzIsNiArMzIsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3I7CitjbGFzcyBEaXNwbGF5UmVm
cmVzaE1vbml0b3JGYWN0b3J5OwogCiBjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQg
ewogcHVibGljOgpAQCAtNDEsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgLy8gQWx3YXlzIGNhbGxl
ZCBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgdmlydHVhbCB2b2lkIGRpc3BsYXlSZWZyZXNoRmly
ZWQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNy
ZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogZGlzcGxheVJlZnJlc2hN
b25pdG9yRmFjdG9yeSgpIGNvbnN0ID0gMDsKIAogICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3Bs
YXlJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUlELnZhbHVlKCk7IH0KICAgICBib29sIGhh
c0Rpc3BsYXlJRCgpIGNvbnN0IHsgcmV0dXJuICEhbV9kaXNwbGF5SUQ7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFuYWdlci5jcHAKaW5kZXggY2UwNjI5YzljY2FhMGFmY2I0YTAwM2I5MmFlYjU0
NzdlODI3ZTMwZi4uNzM4MmIxNTc1ZGVlOTZiYTkwODg1OGUzM2I5MzE0OTkyNzNjNzI3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgRGlzcGxh
eVJlZnJlc2hNb25pdG9yKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjptb25pdG9yRm9y
Q2xpZW50KERpc3BsYXlSZWYKICAgICAgICAgcmV0dXJuIGV4aXN0aW5nTW9uaXRvcjsKICAgICB9
CiAKLSAgICBhdXRvIG1vbml0b3IgPSBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZShjbGll
bnQpOworICAgIGF1dG8gbW9uaXRvciA9IERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlKGNs
aWVudC5kaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCksIGNsaWVudERpc3BsYXlJRCk7CiAg
ICAgaWYgKCFtb25pdG9yKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIu
Y3BwCmluZGV4IDc0OTE1ZjczOTU1ZWY4MTk5Y2RjMDEyNWZmMTU2N2I3ZmVjMDMwZjQuLmMyMGRi
ZWMyMmYwMjk1NjA0N2M3NjljOTMxYTVmMzFjZTc1ZDA2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAK
QEAgLTM1LDcgKzM1LDcgQEAgR3JhcGhpY3NMYXllclVwZGF0ZXI6OkdyYXBoaWNzTGF5ZXJVcGRh
dGVyKEdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50JiBjbGllbnQsIFAKICAgICA6IG1fY2xpZW50
KGNsaWVudCkKIHsKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkud2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwgKnRoaXMpOwotICAgIERpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zY2hlZHVsZUFuaW1hdGlv
bigqdGhpcyk7CisgICAgc2NoZWR1bGVVcGRhdGUoKTsKIH0KIAogR3JhcGhpY3NMYXllclVwZGF0
ZXI6On5HcmFwaGljc0xheWVyVXBkYXRlcigpCkBAIC02Myw5ICs2Myw5IEBAIHZvaWQgR3JhcGhp
Y3NMYXllclVwZGF0ZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKQogICAgIG1fY2xpZW50LmZsdXNo
TGF5ZXJzU29vbigqdGhpcyk7CiB9CiAKLVJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IEdy
YXBoaWNzTGF5ZXJVcGRhdGVyOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1E
aXNwbGF5SUQgZGlzcGxheUlEKSBjb25zdAorRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSog
R3JhcGhpY3NMYXllclVwZGF0ZXI6OmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25z
dAogewotICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlz
cGxheUlEKTsKKyAgICByZXR1cm4gbV9jbGllbnQuZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9y
eSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuaAppbmRleCA4NWE4
OTllMTFhMDUwM2I3NzE4M2I1MmViODg5ZWJjMjY0YmYyYzZmLi5lZWY3YWZkNTBlOTRlZTAxMzlk
NmJjNDZmZmQ0MTUwM2YzOWUyNjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmgKQEAgLTMwLDE3ICszMCwxNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvckZh
Y3Rvcnk7CiBjbGFzcyBHcmFwaGljc0xheWVyVXBkYXRlcjsKIAogY2xhc3MgR3JhcGhpY3NMYXll
clVwZGF0ZXJDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJVcGRh
dGVyQ2xpZW50KCkgPSBkZWZhdWx0OwogICAgIHZpcnR1YWwgdm9pZCBmbHVzaExheWVyc1Nvb24o
R3JhcGhpY3NMYXllclVwZGF0ZXImKSA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8RGlzcGxheVJl
ZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5
SUQpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rvcnkq
IGRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSA9IDA7CiB9OwogCi1jbGFzcyBHcmFwaGlj
c0xheWVyVXBkYXRlciA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQKLXsKK2Ns
YXNzIEdyYXBoaWNzTGF5ZXJVcGRhdGVyIGZpbmFsIDogcHVibGljIERpc3BsYXlSZWZyZXNoTW9u
aXRvckNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAg
R3JhcGhpY3NMYXllclVwZGF0ZXIoR3JhcGhpY3NMYXllclVwZGF0ZXJDbGllbnQmLCBQbGF0Zm9y
bURpc3BsYXlJRCk7CkBAIC00OSwxMCArNDksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1
bGVVcGRhdGUoKTsKICAgICB2b2lkIHNjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCk7
CiAKLSAgICBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVz
aE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgot
ICAgIHZvaWQgZGlzcGxheVJlZnJlc2hGaXJlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGxh
eVJlZnJlc2hGaXJlZCgpIGZpbmFsOworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3Rvcnkq
IGRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKKwogICAgIEdyYXBo
aWNzTGF5ZXJVcGRhdGVyQ2xpZW50JiBtX2NsaWVudDsKICAgICBib29sIG1fc2NoZWR1bGVkIHsg
ZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCmluZGV4IDFhMTgzNWE1NTZhOTAzYzNiMzBmYjk5ZGQ1MDAyNWQzMTEx
YjE0YWMuLjg4NTVmOGI0N2QwZWNiZTg4NDEwODMxZmM3MWU4NTAwYWJkOTk3NjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBA
IC02NzYsNiArNjc2LDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaExheWVy
c1Nvb24oR3JhcGhpY3NMYXllclVwZGF0ZXImKQogICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
KCk7CiB9CiAKK0Rpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6ZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpCit7CisgICAgcmV0dXJuIHBhZ2Uo
KS5jaHJvbWUoKS5jbGllbnQoKS5kaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCk7Cit9CisK
IHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRpbGVkQmFja2luZ1VzYWdlQ2hhbmdl
ZChjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBib29sIHVzaW5nVGlsZWRCYWNr
aW5nKQogewogICAgIGlmICh1c2luZ1RpbGVkQmFja2luZykgewpAQCAtNDk4MiwxNCArNDk4Nyw2
IEBAIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gcGFnZSgpLmNocm9tZSgpLmNsaWVudCgp
LmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCk7CiB9CiAKLVJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0
b3I+IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBs
YXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKLXsKLSAgICBpZiAoYXV0byBtb25pdG9y
ID0gcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihk
aXNwbGF5SUQpKQotICAgICAgICByZXR1cm4gbW9uaXRvcjsKLQotICAgIHJldHVybiBEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OmNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxh
eUlEKTsKLX0KLQogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsU25hcFByb3BlcnRpZXNXaXRoRnJhbWVWaWV3KGNvbnN0
IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDRlY2JmMGFhZGIxMjQwMWZlNzU5
MjNmMmMwMmJhZDkxM2U5OWQ3YWQuLjU2Yzc3MzVkN2U1NTFiNDg5OTIwMTZkN2NmYzJhYzNjMWMx
YjQyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmgKQEAgLTM1LDYgKzM1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5OwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdw
b3J0Q29uc3RyYWludHM7CiBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgR3JhcGhpY3NMYXll
clVwZGF0ZXI7CkBAIC00MDQsNyArNDA1LDggQEAgcHJpdmF0ZToKICAgICBib29sIGlzVHJhY2tp
bmdSZXBhaW50cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNUcmFja2luZ1JlcGFpbnRz
OyB9CiAgICAgCiAgICAgLy8gR3JhcGhpY3NMYXllclVwZGF0ZXJDbGllbnQgaW1wbGVtZW50YXRp
b24KLSAgICB2b2lkIGZsdXNoTGF5ZXJzU29vbihHcmFwaGljc0xheWVyVXBkYXRlciYpIG92ZXJy
aWRlOworICAgIHZvaWQgZmx1c2hMYXllcnNTb29uKEdyYXBoaWNzTGF5ZXJVcGRhdGVyJikgZmlu
YWw7CisgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogZGlzcGxheVJlZnJlc2hNb25p
dG9yRmFjdG9yeSgpIGZpbmFsOwogCiAgICAgLy8gQ29weSB0aGUgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcgcmVsYXRlZCBmbGFncyBmcm9tIFNldHRpbmdzCiAgICAgdm9pZCBjYWNoZUFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGbGFncygpOwpAQCAtNDg3LDggKzQ4OSw2IEBAIHByaXZhdGU6CiAgICAg
R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3Q7CiAgICAg
U2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkgY29uc3Q7CiAKLSAg
ICBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0
b3IoUGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0IG92ZXJyaWRlOwotCiAgICAgLy8gTm9uIGxheW91
dC1kZXBlbmRlbnQKICAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JBbmltYXRpb24oUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCYpIGNvbnN0OwogICAgIGJvb2wgcmVxdWlyZXNDb21wb3NpdGlu
Z0ZvclRyYW5zZm9ybShSZW5kZXJMYXllck1vZGVsT2JqZWN0JikgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKaW5kZXggMjAzOTBhN2VjZDlhYjM3MGRmMjkwMzBmOGNiYWFlMGM5NGNiYTA2YS4u
ODIwZDIyYzZhYTRjYmNkYzE5MmM1ZTZkZTYzZDI4MTIxNWRkYzE1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dApAQCAtNjczLDcgKzY3Myw3IEBAIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJS
ZW1vdGVPYmplY3RSZWdpc3RyeS5jcHAKIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvRmluZENvbnRy
b2xsZXJJT1MubW0KIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQogCi1XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVhTWFjLmNwcAorV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BhZ2VCYW5uZXJNYWMubW0KIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0KIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NzNiYWJkMDE0ZWJkYjZmYWQ1MjBkNTJmMzBkZmM4NDcwY2FkNWM2YS4uNDM5NzY4YTBmOTkwZjUz
NDZjNjE0ODEwNzZiNDgwMTZkMjhhNDFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDY2LDYgKzI0NjYsOCBAQAogCQkwRjkzMUMx
QjE4QzU3MTE5MDBEQkE3QzMgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlP
Uy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGOTMxQzFCMThDNTcxMTkwMERCQjhENCAvKiBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZURlbGVnYXRlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmF3aW5nQXJlYUluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZCQjVGQkYyNjA5QTA5MTAwNTQ1NzJDIC8q
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZCQjVGQzAyNjA5
QTA5MTAwNTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkMwODU2RTE4N0NFMEE5MDA3ODBEODYgLyogX19pbml0X18ucHkgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5w
eXRob247IG5hbWUgPSBfX2luaXRfXy5weTsgcGF0aCA9IHdlYmtpdC9fX2luaXRfXy5weTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDMDg1NkYxODdDRTBBOTAwNzgwRDg2IC8qIG1l
c3NhZ2VzLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5zY3JpcHQucHl0aG9uOyBuYW1lID0gbWVzc2FnZXMucHk7IHBhdGggPSB3ZWJraXQv
bWVzc2FnZXMucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzA4NTcwMTg3Q0Uw
QTkwMDc4MEQ4NiAvKiBtb2RlbC5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgbmFtZSA9IG1vZGVsLnB5OyBwYXRo
ID0gd2Via2l0L21vZGVsLnB5OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTQ4Niw3
ICs1NDg4LDYgQEAKIAkJQzE3MTBDRjIyNEE3QkQwMzAwRDdDMTEyIC8qIFhQQ0V2ZW50SGFuZGxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBYUENFdmVudEhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzE3MTBDRjUyNEFBNjM0NTAwRDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0
YWJhc2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2Jz
ZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE3MTBDRjYyNEFBNjQzMjAw
RDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQzE4MTczNUUyMDU4MzlGNjAwREZEQTY1IC8qIERyYXdpbmdBcmVh
TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERyYXdpbmdBcmVhTWFjLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4MTczNjAyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlM
aW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMxODE3MzYyMjA1ODQ0QTkwMERGREE2NSAvKiBEaXNwbGF5TGluay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxOEYzQTEzMjU2MzMyQTYwMDc5N0U2NiAvKiBXZWJJbnNwZWN0b3JQcmVmZXJlbmNl
T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSW5zcGVjdG9yUHJlZmVyZW5jZU9ic2VydmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDU3NCw3ICsxMDU3NSw4IEBACiAJ
CUJDOTYzRDZDMTEzREQxOTUwMDU3NEJFMiAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUMxODE3MzVFMjA1ODM5RjYwMERGREE2NSAvKiBEcmF3
aW5nQXJlYU1hYy5jcHAgKi8sCisJCQkJMEZCQjVGQzAyNjA5QTA5MTAwNTQ1NzJDIC8qIERpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgKi8sCisJCQkJMEZCQjVGQkYyNjA5QTA5MTAwNTQ1NzJD
IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oICovLAogCQkJCTdDNkQzN0ZBMTcyRjU1NUYw
MDlEMjg0NyAvKiBQYWdlQmFubmVyTWFjLm1tICovLAogCQkJCTFBQUYyNjM3MTQ2ODdDMzkwMDRB
MUU4QSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oICovLAogCQkJCTFBQUYyNjM2
MTQ2ODdDMzkwMDRBMUU4QSAvKiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZjdmZmQ3OWIyNTgzZmNmMmUzYmU1ZTM4MDNiNTJi
MzE0ZGQ1OWNiMC4uZWM2NzQxNDRiMWUxNmY1ZjUzNDRlYmUwZjAyOThmOTkxYjEzZjgzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTkxMiwxNiArOTEyLDE3IEBAIEdyYXBoaWNzTGF5ZXJG
YWN0b3J5KiBXZWJDaHJvbWVDbGllbnQ6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5
SUQgZGlzcGxheUlEKSBjb25zdAorV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9y
eSogV2ViQ2hyb21lQ2xpZW50OjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QK
IHsKLSAgICBpZiAoYXV0byogZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKLSAg
ICAgICAgcmV0dXJuIGRyYXdpbmdBcmVhLT5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlz
cGxheUlEKTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdB
cmVhKCk7CisjZWxzZQogICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKLQogUmVmUHRyPEltYWdlQnVmZmVyPiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZUltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwgUmVuZGVyaW5nTW9kZSBy
ZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25T
Y2FsZSwgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UsIFBpeGVsRm9ybWF0IHBpeGVs
Rm9ybWF0KSBjb25zdAogewogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2hvdWxk
VXNlUmVtb3RlUmVuZGVyaW5nRm9yKHB1cnBvc2UpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDE3
OTJkNDM0OGRlNjUwNjYwNjgwNGI2YzVlZTQyYzUyNGYzZjQzZmEuLjdkNmE1ZmQ0ODZiZDg2OTUy
MTZlOWRiMWRmOGRjZjNiY2NhOTI3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIzOSw3ICsy
MzksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhbmltYXRpb25EaWRGaW5pc2hGb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKIAotICAgIFJlZlB0cjxXZWJDb3JlOjpE
aXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6RGlzcGxheVJl
ZnJlc2hNb25pdG9yRmFjdG9yeSogZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0
IGZpbmFsOwogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZUJ1ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwg
V2ViQ29yZTo6UmVuZGVyaW5nTW9kZSwgV2ViQ29yZTo6UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQg
cmVzb2x1dGlvblNjYWxlLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2UsIFdlYkNvcmU6
OlBpeGVsRm9ybWF0KSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAppbmRleCBlYzVlMzZiNWI0NGE5OWQ0OWNhYmRmODI2
YjNkMTQ4ZGI3OGI5OWI3Li5jZGJhNWFlNjU4ZGU1YmRhOWVmODdhMmI2ZWJjOTlhNDRkMzNkNjU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEu
Y3BwCkBAIC04MiwxMyArODIsNiBAQCB2b2lkIERyYXdpbmdBcmVhOjpkaXNwYXRjaEFmdGVyRW5z
dXJpbmdVcGRhdGVkU2Nyb2xsUG9zaXRpb24oV1RGOjpGdW5jdGlvbjx2b2lkCiAgICAgZnVuY3Rp
b24oKTsKIH0KIAotI2lmICFQTEFURk9STShNQUMpCi1SZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJl
ZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBs
YXRmb3JtRGlzcGxheUlEKQotewotICAgIHJldHVybiBudWxscHRyOwotfQotI2VuZGlmCi0KIHZv
aWQgRHJhd2luZ0FyZWE6OnJlbW92ZU1lc3NhZ2VSZWNlaXZlcklmTmVlZGVkKCkKIHsKICAgICBp
ZiAobV9oYXNSZW1vdmVkTWVzc2FnZVJlY2VpdmVyKQpAQCAtOTcsNiArOTAsMTEgQEAgdm9pZCBE
cmF3aW5nQXJlYTo6cmVtb3ZlTWVzc2FnZVJlY2VpdmVySWZOZWVkZWQoKQogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6RHJhd2luZ0Fy
ZWE6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKIH0KIAorUmVmUHRyPFdl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCkKK3sKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKwogYm9vbCBEcmF3aW5nQXJlYTo6c3VwcG9ydHNHUFVQcm9jZXNzUmVuZGVy
aW5nKERyYXdpbmdBcmVhVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKaW5kZXggNjRkNTMy
OWI4NjYwOGJjMDJkNDY3Y2Q0M2VjZGVmNzJiNTRhMjcxZS4uODk0ODhjNjQyNGY5MjkyYzg0NmRj
MjkxNWZhNWE4MGZlMTZlZjcxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZp
dHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9y
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9J
bnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRNaWxlc3RvbmUuaD4KQEAgLTY0LDcg
KzY1LDcgQEAgY2xhc3MgTGF5ZXJUcmVlSG9zdDsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOwogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiAKLWNsYXNzIERyYXdpbmdBcmVh
IDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIERyYXdpbmdBcmVhIDogcHVi
bGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hN
b25pdG9yRmFjdG9yeSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoRHJhd2luZ0FyZWEpOwogCkBAIC0xMTcsOCArMTE4LDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRl
KCkgPSAwOwogCi0gICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25p
dG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5
SUQpOwotCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ1VwZGF0ZWRTY3Jv
bGxQb3NpdGlvbihXVEY6OkZ1bmN0aW9uPHZvaWQgKCk+JiYpOwogCiAgICAgdmlydHVhbCB2b2lk
IGFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6
OkZsYWc+LCBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9OwpAQCAtMTc1LDYg
KzE3NCw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkg
eyB9CiAKKyAgICAvLyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LgorICAgIFJlZlB0cjxX
ZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRv
cihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7CisKICNpZiBQTEFURk9STShD
T0NPQSkKICAgICAvLyBVc2VkIGJ5IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLgogICAg
IHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCkgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IGQ0ODJi
NDJlMGMyNTQxMjc3Yzk0YTQ1ZGZjZmI1YjAxOTQ1MTExNDMuLjczMGEyZDY5MDg4NDliMjI1MjZk
YzQyMzgwZjY5N2E5ZmNiY2M1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIGFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRChDYWxsYmFja0lEKSBvdmVycmlkZTsKIAot
ICAgIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7CisgICAg
UmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJl
c2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBmaW5hbDsKICAgICB2b2lkIHdp
bGxEZXN0cm95RGlzcGxheVJlZnJlc2hNb25pdG9yKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9u
aXRvciopOwogICAgIHZvaWQgc2V0UHJlZmVycmVkRnJhbWVzUGVyU2Vjb25kKFdlYkNvcmU6OkZy
YW1lc1BlclNlY29uZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTllMjFiM2U2ZDQ2OGNlZDdhMjY4NDFkODYxZWJmMDI3ZTgwN2I4MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuaCIK
KworI2lmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SdW5Mb29wT2JzZXJ2ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQorICAgIDogRGlzcGxh
eVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkKKyAgICAsIG1fb2JzZXJ2ZXJJRChEaXNwbGF5TGlu
a09ic2VydmVySUQ6OmdlbmVyYXRlKCkpCit7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7
Cit9CisKK0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6fkRpc3BsYXlSZWZyZXNoTW9uaXRvck1h
YygpCit7CisgICAgaWYgKG1faGFzU2VudE1lc3NhZ2UpCisgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6U3RvcERpc3BsYXlMaW5rKG1fb2JzZXJ2ZXJJRCwgZGlzcGxheUlEKCkpLCAw
KTsKK30KKworYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2Fs
bGJhY2soKQoreworICAgIGlmICghaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFtX2hhc1NlbnRNZXNzYWdlKSB7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6U3RhcnREaXNwbGF5TGluayhtX29ic2VydmVySUQsIGRpc3BsYXlJRCgpKSwgMCk7
CisgICAgICAgIG1faGFzU2VudE1lc3NhZ2UgPSB0cnVlOworICAgICAgICBtX3J1bkxvb3BPYnNl
cnZlciA9IG1ha2VVbmlxdWU8UnVuTG9vcE9ic2VydmVyPihrQ0ZSdW5Mb29wRW50cnksIFt0aGlz
XSgpIHsKKyAgICAgICAgICAgIG1fZmlyc3RDYWxsYmFja0luQ3VycmVudFJ1bmxvb3AgPSB0cnVl
OworICAgICAgICB9KTsKKyAgICAgICAgbV9ydW5Mb29wT2JzZXJ2ZXItPnNjaGVkdWxlKENGUnVu
TG9vcEdldEN1cnJlbnQoKSk7CisgICAgfQorICAgIAorICAgIHNldElzU2NoZWR1bGVkKHRydWUp
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
OjpkaXNwbGF5TGlua0ZpcmVkKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKyAg
ICBpZiAoIW1fZmlyc3RDYWxsYmFja0luQ3VycmVudFJ1bmxvb3ApCisgICAgICAgIHJldHVybjsK
KyAgICBtX2ZpcnN0Q2FsbGJhY2tJbkN1cnJlbnRSdW5sb29wID0gZmFsc2U7CisKKyAgICAvLyBT
aW5jZSB3ZSBhcmUgb24gdGhlIG1haW4gdGhyZWFkLCB3ZSBjYW4ganVzdCBjYWxsIGhhbmRsZURp
c3BsYXlSZWZyZXNoZWROb3RpZmljYXRpb25Pbk1haW5UaHJlYWQgaGVyZS4KKyAgICBoYW5kbGVE
aXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFkKHRoaXMpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2ExNWZlYjI5MDM3MDczYTNmMzAyMjg0ZmY1
MjlkZmViNDM2YTFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oCkBAIC0wLDAgKzEsNjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oTUFDKQorCisj
aW5jbHVkZSAiRGlzcGxheUxpbmtPYnNlcnZlcklELmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNw
bGF5UmVmcmVzaE1vbml0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvciB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM+IGNyZWF0ZShXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoZGlzcGxheUlEKSk7CisgICAgfQor
ICAgIAorICAgIHZpcnR1YWwgfkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYygpOworICAgIAorICAg
IHZvaWQgZGlzcGxheUxpbmtGaXJlZCgpIGZpbmFsOworICAgIGJvb2wgcmVxdWVzdFJlZnJlc2hD
YWxsYmFjaygpIGZpbmFsOworICAgIAorcHJpdmF0ZToKKyAgICBleHBsaWNpdCBEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpOworICAgIAorICAgIGJv
b2wgaGFzUmVxdWVzdGVkUmVmcmVzaENhbGxiYWNrKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9o
YXNTZW50TWVzc2FnZTsgfQorCisgICAgRGlzcGxheUxpbmtPYnNlcnZlcklEIG1fb2JzZXJ2ZXJJ
RDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UnVuTG9vcE9ic2VydmVyPiBtX3J1bkxv
b3BPYnNlcnZlcjsKKyAgICBib29sIG1faGFzU2VudE1lc3NhZ2UgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9maXJzdENhbGxiYWNrSW5DdXJyZW50UnVubG9vcCB7IGZhbHNlIH07Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRHJhd2luZ0FyZWFNYWMuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzAwMmEwMTE2ZDBiOTUwNDRiMzQ1Y2Yw
NjJiM2M1YTI4NjEzN2QzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1h
Yy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgotCi0jaWYgUExBVEZPUk0o
TUFDKQotCi0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCi0KLSNpbmNsdWRlIDxX
ZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cE9ic2VydmVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLWNsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyA6IHB1YmxpYyBEaXNwbGF5UmVm
cmVzaE1vbml0b3IgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8RGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKGRpc3BsYXlJ
RCkpOwotICAgIH0KLSAgICAKLSAgICB2aXJ0dWFsIH5EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMo
KTsKLSAgICAKLSAgICB2b2lkIGRpc3BsYXlMaW5rRmlyZWQoKSBvdmVycmlkZTsKLSAgICBib29s
IHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBvdmVycmlkZTsKLSAgICAKLXByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEKTsKLSAg
ICAKLSAgICBib29sIGhhc1JlcXVlc3RlZFJlZnJlc2hDYWxsYmFjaygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1faGFzU2VudE1lc3NhZ2U7IH0KLQotICAgIERpc3BsYXlMaW5rT2JzZXJ2ZXJJ
RCBtX29ic2VydmVySUQ7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFJ1bkxvb3BPYnNlcnZlcj4gbV9y
dW5Mb29wT2JzZXJ2ZXI7Ci0gICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdlIHsgZmFsc2UgfTsKLSAg
ICBib29sIG1fZmlyc3RDYWxsYmFja0luQ3VycmVudFJ1bmxvb3AgeyBmYWxzZSB9OwotfTsKLQot
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoUGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlEKQotICAgIDogRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3Bs
YXlJRCkKLSAgICAsIG1fb2JzZXJ2ZXJJRChEaXNwbGF5TGlua09ic2VydmVySUQ6OmdlbmVyYXRl
KCkpCi17Ci19Ci0KLURpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6fkRpc3BsYXlSZWZyZXNoTW9u
aXRvck1hYygpCi17Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTdG9wRGlzcGxheUxp
bmsobV9vYnNlcnZlcklELCBkaXNwbGF5SUQoKSksIDApOwotfQotCi1ib29sIERpc3BsYXlSZWZy
ZXNoTW9uaXRvck1hYzo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpCi17Ci0gICAgaWYgKCFpc0Fj
dGl2ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW1faGFzU2VudE1lc3Nh
Z2UpIHsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpTdGFydERpc3BsYXlMaW5r
KG1fb2JzZXJ2ZXJJRCwgZGlzcGxheUlEKCkpLCAwKTsKLSAgICAgICAgbV9oYXNTZW50TWVzc2Fn
ZSA9IHRydWU7Ci0gICAgICAgIG1fcnVuTG9vcE9ic2VydmVyID0gbWFrZVVuaXF1ZTxSdW5Mb29w
T2JzZXJ2ZXI+KGtDRlJ1bkxvb3BFbnRyeSwgW3RoaXNdKCkgewotICAgICAgICAgICAgdGhpcy0+
bV9maXJzdENhbGxiYWNrSW5DdXJyZW50UnVubG9vcCA9IHRydWU7Ci0gICAgICAgIH0pOwotICAg
ICAgICBtX3J1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsK
LSAgICB9Ci0gICAgCi0gICAgc2V0SXNTY2hlZHVsZWQodHJ1ZSk7Ci0KLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQo
KQotewotICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwotICAgIGlmICghbV9maXJzdENhbGxi
YWNrSW5DdXJyZW50UnVubG9vcCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fZmlyc3RDYWxsYmFj
a0luQ3VycmVudFJ1bmxvb3AgPSBmYWxzZTsKLQotICAgIC8vIFNpbmNlIHdlIGFyZSBvbiB0aGUg
bWFpbiB0aHJlYWQsIHdlIGNhbiBqdXN0IGNhbGwgaGFuZGxlRGlzcGxheVJlZnJlc2hlZE5vdGlm
aWNhdGlvbk9uTWFpblRocmVhZCBoZXJlLgotICAgIGhhbmRsZURpc3BsYXlSZWZyZXNoZWROb3Rp
ZmljYXRpb25Pbk1haW5UaHJlYWQodGhpcyk7Ci19Ci0KLVJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5
UmVmcmVzaE1vbml0b3I+IERyYXdpbmdBcmVhOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3Io
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQotewotICAgIHJldHVybiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYWM6OmNyZWF0ZShkaXNwbGF5SUQpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IGI2
Y2FlNDc3MWU0Mjk4ODc1NGIyOWUyMjI4NmI5ZjA0YWI1MjIzZjUuLjkyY2E3YjZkOGQ0OTJmMTk1
NTAzZGZmNWU4YmE0YjE4Mzg0YjIxZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5oCkBAIC0xMTcsNiArMTE3LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgYXBwbHlU
cmFuc2llbnRab29tVG9MYXllcnMoZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9y
aWdpbik7CiAKKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVh
dGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpIGZpbmFs
OworCiAgICAgdm9pZCB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KCk7CiAKICAgICB2b2lkIHNl
dFJvb3RDb21wb3NpdGluZ0xheWVyKENBTGF5ZXIgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggNWY2NmJmZDcyZmZmMzU2Njg4YTYyYWNhZjQ5NGRkOGJj
ZmFkMGE0My4uMDRlYjY1OTZmMjlhN2FkNWY2ZDkwMmU1NTM3YTgzYmQ3ZjRjMDgyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtMjksNiArMjksNyBAQAog
I2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiQ29sb3JTcGFjZURhdGEuaCIKKyNpbXBvcnQg
IkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5oIgogI2ltcG9ydCAiRHJhd2luZ0FyZWFQcm94eU1l
c3NhZ2VzLmgiCiAjaW1wb3J0ICJMYXllckhvc3RpbmdDb250ZXh0LmgiCiAjaW1wb3J0ICJMYXll
clRyZWVDb250ZXh0LmgiCkBAIC02NTIsNiArNjUzLDExIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OnNldENvbG9yU3BhY2UoY29uc3QgQ29sb3JTcGFjZURhdGEmIGNvbG9y
U3BhCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRDb2xvclNwYWNlKGNvbG9yU3BhY2Uu
Y2dDb2xvclNwYWNlLmdldCgpKTsKIH0KIAorUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZy
ZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCit7CisgICAgcmV0dXJuIERp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6Y3JlYXRlKGRpc3BsYXlJRCk7Cit9CisKIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQoKQog
ewogICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNvbG9yU3BhY2U7Cg==
</data>
<flag name="commit-queue"
          id="443623"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424064</attachid>
            <date>2021-03-23 14:16:06 -0700</date>
            <delta_ts>2021-03-23 19:35:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223648-20210323141605.patch</filename>
            <type>text/plain</type>
            <size>50981</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVmNmRhN2RiNDk2Yzlm
YjU4Mzk4NzhlZjJmOTlkNmY2ODc4N2QzNy4uYzMzYmFmZTc5ZWE5MTYzNThmY2VhMzI1NjY3YTg3
NWJkMGQ3YjE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTAzLTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBEaXNwbGF5
UmVmcmVzaE1vbml0b3JGYWN0b3J5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzNjQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXou
CisKKyAgICAgICAgRnV0dXJlIHdvcmsgd2lsbCByZXF1aXJlIHRoYXQgaXQncyBwb3NzaWJsZSB0
byBjcmVhdGUgYSBEaXNwbGF5UmVmcmVzaE1vbml0b3IKKyAgICAgICAgd2l0aG91dCBoYXZpbmcg
YSBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuIEl0IHdhcyBhbHNvIHdlaXJkIHRoYXQgdGhl
IHdheSB0bworICAgICAgICBjcmVhdGUgYSBEaXNwbGF5UmVmcmVzaE1vbml0b3Igd2FzIHZpYSB0
aGUgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LCBzbworICAgICAgICB0aGlzIGNoYW5nZSBm
aXhlcyBib3RoIGJ5IGFkZGluZyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5LgorCisgICAg
ICAgIEluIFdLMiwgdGhlIGRyYXdpbmcgYXJlYXMgYXJlIERpc3BsYXlSZWZyZXNoTW9uaXRvckZh
Y3Rvcmllcy4gSWYgdGhlcmUgaXMgbm8KKyAgICAgICAgZmFjdG9yeSwgd2UgZmFsbCBiYWNrIHRv
IHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlEaXNwbGF5
UmVmcmVzaE1vbml0b3JGYWN0b3J5OjpzaGFyZWRFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvckZh
Y3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmRpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVD
bGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmRpc3BsYXlSZWZyZXNoTW9uaXRv
ckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpjcmVhdGVE
aXNwbGF5UmVmcmVzaE1vbml0b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUmVu
ZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmluZ1Vw
ZGF0ZVNjaGVkdWxlcjo6ZGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmNyZWF0ZURpc3BsYXlSZWZy
ZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9SZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVz
aE1vbml0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpj
cmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQ6
OkRpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JD
bGllbnQuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9u
aXRvck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlcjo6bW9uaXRvckZvckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
clVwZGF0ZXI6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJVcGRhdGVyOjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyOjpjcmVhdGVEaXNwbGF5UmVmcmVz
aE1vbml0b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXJVcGRhdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRp
c3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKwogMjAyMS0w
My0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggYSBtaXN0YWtlIGluIHIyNzQ3MjUgc3BvdHRlZCBieSBEYXJpbi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTlm
Nzc5NGM5NWViMzBlZDZkZTRkMDRiMjM0NmI4MjU0OTJkNzM3My4uMjE3Nzc2OGVhMmVlMGEyODlh
MDQxZTY5ZDY0OWViMGY0YTFmZDg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMS0w
My0yMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzY0OAorCisgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIER1bWV6LgorCisgICAgICAgIEZ1dHVyZSB3b3JrIHdpbGwgcmVxdWlyZSB0aGF0IGl0J3Mg
cG9zc2libGUgdG8gY3JlYXRlIGEgRGlzcGxheVJlZnJlc2hNb25pdG9yCisgICAgICAgIHdpdGhv
dXQgaGF2aW5nIGEgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LiBJdCB3YXMgYWxzbyB3ZWly
ZCB0aGF0IHRoZSB3YXkgdG8KKyAgICAgICAgY3JlYXRlIGEgRGlzcGxheVJlZnJlc2hNb25pdG9y
IHdhcyB2aWEgdGhlIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCwgc28KKyAgICAgICAgdGhp
cyBjaGFuZ2UgZml4ZXMgYm90aCBieSBhZGRpbmcgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9y
eS4KKworICAgICAgICBJbiBXSzIsIHRoZSBkcmF3aW5nIGFyZWFzIGFyZSBEaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3JpZXMuIElmIHRoZXJlIGlzIG5vCisgICAgICAgIGZhY3RvcnksIHdlIGZh
bGwgYmFjayB0byB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgUmVtb3Zl
IERyYXdpbmdBcmVhTWFjLmNwcCBzaW5jZSBpdHMgY29kZSB3YXMgZW50aXJlbHkgcmVsYXRlZCB0
byBjcmVhdGluZworICAgICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMgb2JqZWN0cy4KKwor
ICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpc3Bs
YXlSZWZyZXNoTW9uaXRvckZhY3RvcnkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpEcmF3aW5nQXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVh
TWFjLmNwcC4KKyAgICAgICAgKFdlYktpdDo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpEaXNw
bGF5UmVmcmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2ViS2l0OjpEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWM6On5EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMpOgorICAgICAgICAoV2ViS2l0OjpE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RSZWZyZXNoQ2FsbGJhY2spOgorICAgICAg
ICAoV2ViS2l0OjpEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OmRpc3BsYXlMaW5rRmlyZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFj
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJVcGRhdGVyLmguCisgICAgICAgIChXZWJLaXQ6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yzo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcik6CisK
IDIwMjEtMDMtMTkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2Fubm90IGxvZ2luIHRvIG1pY3Jvc29mdG9ubGluZS5jb20gd2l0aG91dCBhbGxv
d2luZyBzdG9yYWdlIGFjY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggM2JjN2JmNjdlYTAxNDdk
OTk4OGQ1NDczODkwZGIwOWJjNzU0Mzg2NC4uMTE5MjgzNWE3Mzc5YTM5MWRiNWFhNTU1OWE2MDA2
ODQxMWYyYjE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTgwLDYgKzExODAsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
RGVjb2RpbmdPcHRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3IuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dC5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uc0dMLmgKICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFBvaW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBmM2M0Zjc0ZThlYzMwMTc5YjA2ZjY0NjllNTU5ZjU4Nzc2NmVl
NTM5Li4zOGFiMTE2MDc4YzgzMTE0OGM0ZGE4ZTEwYWNhNDg0ZTU4Yjg2ZDIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDIs
NiArMzQyLDcgQEAKIAkJMEZBMjREN0ExNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJV
cGRhdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkEyNEQ3ODE2MkRGOTE5MDBBM0Y0QzAgLyogR3JhcGhpY3NMYXllclVwZGF0ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkI2MjUyRjE4REUx
QjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjYyNTJEMThERTFCMTUwMEEwN0MwNSAvKiBHZW9t
ZXRyeVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGQjg4OTBGMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNr
eU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Qjg4OTBEMTY3RDMwMTYwMDEwQ0RBNSAvKiBTY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkJCNUZCRTI2
MDk5MUQyMDA1NDU3MkMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCQjVGQkQyNjA5NUE5QzAw
NTQ1NzJDIC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0QjAwNjIyQjlBMDJEMDBDRjNC
MUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0QjAwNDIyQjlBMDJDMDBDRjNC
MUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDRjMzMkYwRjJCOUEyNTAw
NEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkNGMzMyQjBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkQzMDgwRjExN0NG
N0U3MDBBNzkxRjcgLyogUmVuZGVyRnJhbWVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQzMDgwRDExN0NGN0U3MDBBNzkxRjcgLyogUmVuZGVy
RnJhbWVCYXNlLmggKi87IH07CkBAIC02MTgwLDYgKzYxODEsNyBAQAogCQkwRkI2MjUyRDE4REUx
QjE1MDBBMDdDMDUgLyogR2VvbWV0cnlVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gR2VvbWV0cnlVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZCODg5MEMxNjdEMzAxNjAwMTBDREE1IC8qIFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdTdGF0
ZVN0aWNreU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkI4ODkwRDE2
N0QzMDE2MDAxMENEQTUgLyogU2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRkJCNUZCRDI2MDk1QTlDMDA1NDU3MkMgLyogRGlzcGxh
eVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVmcmVzaE1v
bml0b3JGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQkZDRTI0MjU2
Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXNwbGF5Qm94Q2xpcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQkZDRTI2
MjU2Q0JEOUEwMEEwQjQ4OSAvKiBEaXNwbGF5Qm94Q2xpcC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNw
bGF5Qm94Q2xpcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkMwNTE2ODIxOUI1
RUJFMDAzMUMzOUUgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjcxOSw2ICsyNjcyMSw3IEBA
CiAJCQkJNDlBRjJENjgxNDQzNUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5o
ICovLAogCQkJCTJEMjlFQ0MxMTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQuY3BwICovLAogCQkJCTJEMjlFQ0MyMTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5
UmVmcmVzaE1vbml0b3JDbGllbnQuaCAqLywKKwkJCQkwRkJCNUZCRDI2MDk1QTlDMDA1NDU3MkMg
LyogRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oICovLAogCQkJCTJEMjlFQ0MzMTkyRUND
ODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcCAqLywKIAkJCQky
RDI5RUNDNDE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5o
ICovLAogCQkJCTZFNjdEMkE4MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zR0wuaCAqLywK
QEAgLTMyMDQzLDYgKzMyMDQ2LDcgQEAKIAkJCQkwRkU1RkJEOTFDM0RENTFFMDAwN0EyQ0EgLyog
RGlzcGxheUxpc3RSZXBsYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQzNUQw
NTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkQyOUVDQzYxOTJFQ0M4MzAwOTg0Qjc4IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZCQjVGQkUyNjA5OTFEMjAwNTQ1NzJDIC8qIERpc3BsYXlS
ZWZyZXNoTW9uaXRvckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjlFQ0NBMTkyRjFG
MUQwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JJT1MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJEMjlFQ0M4MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MzI1MTdDRTZFMDA5QkEwMzQgLyogRGlz
cGxheVZpZXcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcAppbmRleCBmNjI2NDRiODc1ZTNhNjA1YzQ3YzViNTZlZjM0YmUzNDUwNmM4NWNiLi43ZTJk
MzkxMTkyOTkxODY3ZWM1YjJhODJmNzE2NjU3ODY0NzU2NjAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkRhdGFMaXN0
U3VnZ2VzdGlvblBpY2tlci5oIgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgorI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNo
TW9uaXRvckZhY3RvcnkuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50LmgiCkBAIC0xMjUsOCAr
MTI2LDcgQEAgY2xhc3MgRW1wdHlDb250ZXh0TWVudUNsaWVudCBmaW5hbCA6IHB1YmxpYyBDb250
ZXh0TWVudUNsaWVudCB7CiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIAotCi1j
bGFzcyBFbXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvciA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1v
bml0b3IgeworY2xhc3MgRW1wdHlEaXNwbGF5UmVmcmVzaE1vbml0b3IgZmluYWwgOiBwdWJsaWMg
RGlzcGxheVJlZnJlc2hNb25pdG9yIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEVtcHR5RGlz
cGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGUoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQog
ICAgIHsKQEAgLTE0NCw2ICsxNDQsMjEgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCitjbGFzcyBF
bXB0eURpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkgZmluYWwgOiBwdWJsaWMgRGlzcGxheVJl
ZnJlc2hNb25pdG9yRmFjdG9yeSB7CitwdWJsaWM6CisgICAgc3RhdGljIERpc3BsYXlSZWZyZXNo
TW9uaXRvckZhY3RvcnkqIHNoYXJlZEVtcHR5RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgp
CisgICAgeworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RW1wdHlEaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3J5PiBlbXB0eUZhY3Rvcnk7CisgICAgICAgIHJldHVybiAmZW1wdHlGYWN0
b3J5LmdldCgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RGlzcGxheVJlZnJlc2hN
b25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlEKSBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0dXJuIEVtcHR5RGlzcGxheVJlZnJlc2hN
b25pdG9yOjpjcmVhdGUoZGlzcGxheUlEKTsKKyAgICB9Cit9OworCiBjbGFzcyBFbXB0eURhdGFi
YXNlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgRGF0YWJhc2VQcm92aWRlciB7CiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAgICAgc3RydWN0IEVtcHR5SURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZXRlZ2F0ZSBmaW5hbCA6IHB1YmxpYyBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZl
ckRlbGVnYXRlIHsKQEAgLTUzMCw5ICs1NDUsOSBAQCB2b2lkIEVtcHR5Q2hyb21lQ2xpZW50Ojpz
dG9yZUFwcEhpZ2hsaWdodChBcHBIaWdobGlnaHQmJikgY29uc3QKIH0KICNlbmRpZgogCi1SZWZQ
dHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxh
eVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKK0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIEVtcHR5Q2hyb21lQ2xpZW50OjpkaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3J5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gRW1wdHlEaXNwbGF5UmVmcmVz
aE1vbml0b3I6OmNyZWF0ZShkaXNwbGF5SUQpOworICAgIHJldHVybiBFbXB0eURpc3BsYXlSZWZy
ZXNoTW9uaXRvckZhY3Rvcnk6OnNoYXJlZEVtcHR5RGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9y
eSgpOwogfQogCiB2b2lkIEVtcHR5Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUmLCBG
aWxlQ2hvb3NlciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYjZmODEw
ZWQyNjc0MmMzMDVkN2QwYzMwZWJhYjRlMWViZmZiMjkyYy4uZGIxNWIwOThhNDkwYWUwMzMwZTUy
YzgwZTAwMjk0MjJmYTU0YWZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApA
QCAtMTQ5LDcgKzE0OSw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9t
ZUNsaWVudCB7CiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChBcHBIaWdobGlnaHQmJikgY29u
c3QgZmluYWw7CiAjZW5kaWYKIAotICAgIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNy
ZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgZmluYWw7
CisgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogZGlzcGxheVJlZnJlc2hNb25pdG9y
RmFjdG9yeSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBG
aWxlQ2hvb3NlciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0
aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNTRiNzE0NWY2YzY1MzNhM2ZjNjAxZmYzNTM3
ZTI0NDViZGIzYzdlYS4uODFhMDNkNjVhNTM4NGRjNjBjY2YxZGE3ZTBlNzM5MWMwZjkwOTI0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zMjYsOCArMzI2LDggQEAgcHVibGlj
OgogCiAgICAgLy8gQWxsb3dzIHBvcnRzIHRvIGN1c3RvbWl6ZSB0aGUgdHlwZSBvZiBncmFwaGlj
cyBsYXllcnMgY3JlYXRlZCBieSB0aGlzIHBhZ2UuCiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVy
RmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9
Ci0KLSAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3Bs
YXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVsbHB0
cjsgfQorICAgIAorICAgIHZpcnR1YWwgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogZGlz
cGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAog
ICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihjb25zdCBG
bG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBSZW5kZXJpbmdQdXJwb3NlLCBmbG9hdCwgRGVzdGlu
YXRpb25Db2xvclNwYWNlLCBQaXhlbEZvcm1hdCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAK
aW5kZXggNWMwOGMxOWI5M2MzMGMyN2M1OTMyMjZiNzNjNzhhNTVlMjQ3YTUyMi4uMzIwYmNjNzRm
OWJhMzgyZDZiZDE4YjYwOWY3NWQzM2NhMzllYTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcApAQCAtMTI4LDEyICsxMjgsOSBAQCB2
b2lkIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6Y2xlYXJTY2hlZHVsZWQoKQogICAgIG1fcmVm
cmVzaFRpbWVyID0gbnVsbHB0cjsKIH0KIAotUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4g
UmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25zdAorRGlzcGxheVJlZnJlc2hNb25pdG9yRmFj
dG9yeSogUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpkaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0
b3J5KCkgY29uc3QKIHsKLSAgICBpZiAoYXV0byBtb25pdG9yID0gbV9wYWdlLmNocm9tZSgpLmNs
aWVudCgpLmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpKQotICAgICAgICBy
ZXR1cm4gbW9uaXRvcjsKLQotICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0
ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKTsKKyAgICByZXR1cm4gbV9w
YWdlLmNocm9tZSgpLmNsaWVudCgpLmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKTsKIH0K
IAogdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OndpbmRvd1NjcmVlbkRpZENoYW5nZShQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5k
ZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAppbmRleCAyMDM4YTFhNTM1ZTJmNzFiYzM3ZDNjZjMyNjEz
NGVmNjQ4NGQ1ZmYwLi5kYzM1NzExNGM0ZTJiMmMxYzAzMTM3ZjZkMGQyZTQwMTgwZmNhYTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKQEAg
LTM0LDggKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGFnZTsKIGNsYXNzIFRp
bWVyOwogCi1jbGFzcyBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIgOiBwdWJsaWMgRGlzcGxheVJl
ZnJlc2hNb25pdG9yQ2xpZW50Ci17CitjbGFzcyBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIgZmlu
YWwgOiBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbmRl
cmluZ1VwZGF0ZVNjaGVkdWxlcj4gY3JlYXRlKFBhZ2UmIHBhZ2UpCkBAIC01NSw4ICs1NCw5IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQo
RnJhbWVzUGVyU2Vjb25kKTsKICAgICBib29sIHNjaGVkdWxlQW5pbWF0aW9uKEZyYW1lc1BlclNl
Y29uZCk7Ci0gICAgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQg
ZGlzcGxheVJlZnJlc2hGaXJlZCgpIGZpbmFsOworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvckZh
Y3RvcnkqIGRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKIAogICAg
IGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdDsKICAgICB2b2lkIHN0YXJ0VGltZXIoU2Vjb25kcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmNwcAppbmRleCA3Mzg3NmZmYTdlMmQ0MmM0OWIzNTlkZGQ1YTFkZTMz
Mzk4Y2VkZGI2Li5jNGEwZDRjNTQzZjdjNDIwMzJhNzhlYTdjZTJhYjdlMjA3ZTFhOGE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEaXNwbGF5UmVm
cmVzaE1vbml0b3IuaCIKIAogI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5o
IgorI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaCIKICNpbmNsdWRlICJE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCkBA
IC02MCw5ICs2MSwxNSBAQCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEaXNwbGF5UmVm
cmVzaE1vbml0b3I6OmNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaAogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi1SZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OmNyZWF0ZShEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQmIGNsaWVudCkKK1JlZlB0
cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlKERp
c3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIGZhY3RvcnksIFBsYXRmb3JtRGlzcGxheUlEIGRp
c3BsYXlJRCkKIHsKLSAgICByZXR1cm4gY2xpZW50LmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRv
cihjbGllbnQuZGlzcGxheUlEKCkpOworICAgIGlmIChmYWN0b3J5KSB7CisgICAgICAgIGF1dG8g
bW9uaXRvciA9IGZhY3RvcnktPmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQp
OworICAgICAgICBpZiAobW9uaXRvcikKKyAgICAgICAgICAgIHJldHVybiBtb25pdG9yOworICAg
IH0KKyAgICAKKyAgICByZXR1cm4gY3JlYXRlRGVmYXVsdERpc3BsYXlSZWZyZXNoTW9uaXRvcihk
aXNwbGF5SUQpOwogfQogCiBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OkRpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCmluZGV4IGE1
NGYyYjkyMzUxODEwNTc3YzgwODJhZGEyNWFlYjkyYzE3MGZjYmUuLjZmYzRiNGM5OTVlNzFjNTIw
Yjg4ZjFjNDJiMDQxNjI0OGExMjhjYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5oCkBAIC0zNiwxMCArMzYs
MTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEaXNwbGF5QW5pbWF0aW9uQ2xpZW50
OwogY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50OworY2xhc3MgRGlzcGxheVJlZnJl
c2hNb25pdG9yRmFjdG9yeTsKIAogY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGUoRGlzcGxheVJl
ZnJlc2hNb25pdG9yQ2xpZW50Jik7CisgICAgc3RhdGljIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1v
bml0b3I+IGNyZWF0ZShEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiwgUGxhdGZvcm1EaXNw
bGF5SUQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRpc3BsYXlSZWZyZXNoTW9uaXRv
cigpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BsYXlMaW5rRmlyZWQoKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JDbGllbnQuY3BwCmluZGV4IDYyMjViMmQ5MmVmOGQwMDRhZDFkMTMwNjMyY2I5
ZDkxMTc2YzA4YzQuLjA4M2M1MWEzYWM5N2I3Mzk3ZjE1YzkxNTc0YTAxMWM2NDQ5MjdjNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcApAQCAtMzEsOSArMzEsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLURpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudDo6RGlzcGxheVJl
ZnJlc2hNb25pdG9yQ2xpZW50KCkKLXsKLX0KK0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudDo6
RGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50KCkgPSBkZWZhdWx0OwogCiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQ6On5EaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25p
dG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JDbGllbnQuaAppbmRleCBiZWU3ZDgxNjJhYWI3ZGRhNmM2ZjE3ZjFiZmRjYjVk
YjYzYWM1NjdlLi45ZTY4ZmZjZWQ4MmQ4Mjc0OGZiYjExMjYzM2U4N2Q2M2YyMGFkZDhjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNw
bGF5UmVmcmVzaE1vbml0b3JDbGllbnQuaApAQCAtMzIsNiArMzIsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3I7CitjbGFzcyBEaXNwbGF5UmVm
cmVzaE1vbml0b3JGYWN0b3J5OwogCiBjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQg
ewogcHVibGljOgpAQCAtNDEsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgLy8gQWx3YXlzIGNhbGxl
ZCBvbiB0aGUgbWFpbiB0aHJlYWQuCiAgICAgdmlydHVhbCB2b2lkIGRpc3BsYXlSZWZyZXNoRmly
ZWQoKSA9IDA7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNy
ZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSogZGlzcGxheVJlZnJlc2hN
b25pdG9yRmFjdG9yeSgpIGNvbnN0ID0gMDsKIAogICAgIFBsYXRmb3JtRGlzcGxheUlEIGRpc3Bs
YXlJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUlELnZhbHVlKCk7IH0KICAgICBib29sIGhh
c0Rpc3BsYXlJRCgpIGNvbnN0IHsgcmV0dXJuICEhbV9kaXNwbGF5SUQ7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckZh
Y3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvckZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZTRjMjI0NGE3YzMyYzhmYzdlNmY2NGJiNmQ2
MjdlNzJhMDhkNDBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeS5oCkBAIC0wLDAgKzEsNDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yOwordXNpbmcgUGxhdGZvcm1EaXNwbGF5SUQgPSB1
aW50MzJfdDsKKworY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGlzcGxheVJlZnJl
c2hNb25pdG9yRmFjdG9yeSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgUmVmUHRyPERpc3Bs
YXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlz
cGxheUlEKSA9IDA7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCmlu
ZGV4IGNlMDYyOWM5Y2NhYTBhZmNiNGEwMDNiOTJhZWI1NDc3ZTgyN2UzMGYuLjczODJiMTU3NWRl
ZTk2YmE5MDg4NThlMzNiOTMxNDk5MjczYzcyNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1h
bmFnZXIuY3BwCkBAIC01MSw3ICs1MSw3IEBAIERpc3BsYXlSZWZyZXNoTW9uaXRvciogRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6bW9uaXRvckZvckNsaWVudChEaXNwbGF5UmVmCiAgICAg
ICAgIHJldHVybiBleGlzdGluZ01vbml0b3I7CiAgICAgfQogCi0gICAgYXV0byBtb25pdG9yID0g
RGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGUoY2xpZW50KTsKKyAgICBhdXRvIG1vbml0b3Ig
PSBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0ZShjbGllbnQuZGlzcGxheVJlZnJlc2hNb25p
dG9yRmFjdG9yeSgpLCBjbGllbnREaXNwbGF5SUQpOwogICAgIGlmICghbW9uaXRvcikKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcAppbmRleCA3NDkxNWY3Mzk1NWVm
ODE5OWNkYzAxMjVmZjE1NjdiN2ZlYzAzMGY0Li5jMjBkYmVjMjJmMDI5NTYwNDdjNzY5YzkzMWE1
ZjMxY2U3NWQwNjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwCkBAIC0zNSw3ICszNSw3IEBAIEdyYXBo
aWNzTGF5ZXJVcGRhdGVyOjpHcmFwaGljc0xheWVyVXBkYXRlcihHcmFwaGljc0xheWVyVXBkYXRl
ckNsaWVudCYgY2xpZW50LCBQCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiB7CiAgICAgRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLndpbmRvd1NjcmVlbkRpZENo
YW5nZShkaXNwbGF5SUQsICp0aGlzKTsKLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkuc2NoZWR1bGVBbmltYXRpb24oKnRoaXMpOworICAgIHNjaGVkdWxl
VXBkYXRlKCk7CiB9CiAKIEdyYXBoaWNzTGF5ZXJVcGRhdGVyOjp+R3JhcGhpY3NMYXllclVwZGF0
ZXIoKQpAQCAtNjMsOSArNjMsOSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJVcGRhdGVyOjpkaXNwbGF5
UmVmcmVzaEZpcmVkKCkKICAgICBtX2NsaWVudC5mbHVzaExheWVyc1Nvb24oKnRoaXMpOwogfQog
Ci1SZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBHcmFwaGljc0xheWVyVXBkYXRlcjo6Y3Jl
YXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29u
c3QKK0Rpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIEdyYXBoaWNzTGF5ZXJVcGRhdGVyOjpk
aXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jbGll
bnQuY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7CisgICAgcmV0dXJuIG1f
Y2xpZW50LmRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllclVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmgKaW5kZXggODVhODk5ZTExYTA1MDNiNzcxODNiNTJlYjg4
OWViYzI2NGJmMmM2Zi4uZWVmN2FmZDUwZTk0ZWUwMTM5ZDZiYzQ2ZmZkNDE1MDNmMzllMjYxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
clVwZGF0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyVXBkYXRlci5oCkBAIC0zMCwxNyArMzAsMTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5OwogY2xhc3MgR3JhcGhpY3NM
YXllclVwZGF0ZXI7CiAKIGNsYXNzIEdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyVXBkYXRlckNsaWVudCgpID0gZGVmYXVsdDsK
ICAgICB2aXJ0dWFsIHZvaWQgZmx1c2hMYXllcnNTb29uKEdyYXBoaWNzTGF5ZXJVcGRhdGVyJikg
PSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlz
cGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JG
YWN0b3J5KCkgPSAwOwogfTsKIAotY2xhc3MgR3JhcGhpY3NMYXllclVwZGF0ZXIgOiBwdWJsaWMg
RGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50Ci17CitjbGFzcyBHcmFwaGljc0xheWVyVXBkYXRl
ciBmaW5hbCA6IHB1YmxpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXJVcGRhdGVyKEdy
YXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50JiwgUGxhdGZvcm1EaXNwbGF5SUQpOwpAQCAtNDksMTAg
KzQ5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlVXBkYXRlKCk7CiAgICAgdm9pZCBz
Y3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQpOwogCi0gICAgUmVmUHRyPERpc3BsYXlS
ZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxh
eUlEKSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKLSAgICB2b2lkIGRpc3BsYXlSZWZyZXNo
RmlyZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BsYXlSZWZyZXNoRmlyZWQoKSBmaW5hbDsK
KyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JGYWN0b3J5KiBkaXNwbGF5UmVmcmVzaE1vbml0b3JG
YWN0b3J5KCkgY29uc3QgZmluYWw7CisKICAgICBHcmFwaGljc0xheWVyVXBkYXRlckNsaWVudCYg
bV9jbGllbnQ7CiAgICAgYm9vbCBtX3NjaGVkdWxlZCB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAx
YTE4MzVhNTU2YTkwM2MzYjMwZmI5OWRkNTAwMjVkMzExMWIxNGFjLi44ODU1ZjhiNDdkMGVjYmU4
ODQxMDgzMWZjNzFlODUwMGFiZDk5NzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNjc2LDYgKzY3NiwxMSBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Zmx1c2hMYXllcnNTb29uKEdyYXBoaWNzTGF5ZXJVcGRh
dGVyJikKICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCitEaXNwbGF5UmVmcmVz
aE1vbml0b3JGYWN0b3J5KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpc3BsYXlSZWZyZXNoTW9u
aXRvckZhY3RvcnkoKQoreworICAgIHJldHVybiBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlz
cGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpOworfQorCiB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6bGF5ZXJUaWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllciwgYm9vbCB1c2luZ1RpbGVkQmFja2luZykKIHsKICAgICBpZiAodXNpbmdU
aWxlZEJhY2tpbmcpIHsKQEAgLTQ5ODIsMTQgKzQ5ODcsNiBAQCBHcmFwaGljc0xheWVyRmFjdG9y
eSogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0CiAg
ICAgcmV0dXJuIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgp
OwogfQogCi1SZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQpIGNvbnN0Ci17Ci0gICAgaWYgKGF1dG8gbW9uaXRvciA9IHBhZ2UoKS5jaHJvbWUoKS5jbGll
bnQoKS5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSkKLSAgICAgICAgcmV0
dXJuIG1vbml0b3I7Ci0KLSAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGVE
ZWZhdWx0RGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7Ci19Ci0KICNpZiBFTkFCTEUo
Q1NTX1NDUk9MTF9TTkFQKQogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9s
bFNuYXBQcm9wZXJ0aWVzV2l0aEZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaAppbmRleCA0ZWNiZjBhYWRiMTI0MDFmZTc1OTIzZjJjMDJiYWQ5MTNlOTlkN2FkLi41
NmM3NzM1ZDdlNTUxYjQ4OTkyMDE2ZDdjZmMyYWMzYzFjMWI0MmYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCkBAIC0zNSw2ICszNSw3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9y
RmFjdG9yeTsKIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xhc3Mg
R3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzTGF5ZXJVcGRhdGVyOwpAQCAtNDA0LDcgKzQw
NSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2lzVHJhY2tpbmdSZXBhaW50czsgfQogICAgIAogICAgIC8vIEdyYXBo
aWNzTGF5ZXJVcGRhdGVyQ2xpZW50IGltcGxlbWVudGF0aW9uCi0gICAgdm9pZCBmbHVzaExheWVy
c1Nvb24oR3JhcGhpY3NMYXllclVwZGF0ZXImKSBvdmVycmlkZTsKKyAgICB2b2lkIGZsdXNoTGF5
ZXJzU29vbihHcmFwaGljc0xheWVyVXBkYXRlciYpIGZpbmFsOworICAgIERpc3BsYXlSZWZyZXNo
TW9uaXRvckZhY3RvcnkqIGRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBmaW5hbDsKIAog
ICAgIC8vIENvcHkgdGhlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHJlbGF0ZWQgZmxhZ3MgZnJv
bSBTZXR0aW5ncwogICAgIHZvaWQgY2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRmxhZ3MoKTsK
QEAgLTQ4Nyw4ICs0ODksNiBAQCBwcml2YXRlOgogICAgIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBn
cmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0OwogICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvcigpIGNvbnN0OwogCi0gICAgUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBj
b25zdCBvdmVycmlkZTsKLQogICAgIC8vIE5vbiBsYXlvdXQtZGVwZW5kZW50CiAgICAgYm9vbCBy
ZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKFJlbmRlckxheWVyTW9kZWxPYmplY3QmKSBj
b25zdDsKICAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JUcmFuc2Zvcm0oUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDIwMzkwYTdl
Y2Q5YWIzNzBkZjI5MDMwZjhjYmFhZTBjOTRjYmEwNmEuLjgyMGQyMmM2YWE0Y2JjZGMxOTJjNWU2
ZGU2M2QyODEyMTVkZGMxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTY3Myw3ICs2NzMs
NyBAQCBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUmVtb3RlT2JqZWN0UmVnaXN0cnkuY3Bw
CiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL0ZpbmRDb250cm9sbGVySU9TLm1tCiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KIAotV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3
aW5nQXJlYU1hYy5jcHAKK1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDczYmFiZDAxNGViZGI2ZmFkNTIwZDUy
ZjMwZGZjODQ3MGNhZDVjNmEuLjQzOTc2OGEwZjk5MGY1MzQ2YzYxNDgxMDc2YjQ4MDE2ZDI4YTQx
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjQ2Niw2ICsyNDY2LDggQEAKIAkJMEY5MzFDMUIxOEM1NzExOTAwREJBN0MzIC8qIFNj
cm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjkzMUMxQjE4QzU3MTE5MDBE
QkI4RDQgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZUlPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlRGVsZWdhdGVJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQjY1OTIy
MTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRHJhd2luZ0FyZWFJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGQkI1RkJGMjYwOUEwOTEwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGQkI1RkMwMjYwOUEwOTEwMDU0NTcyQyAvKiBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheVJlZnJlc2hN
b25pdG9yTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDMDg1NkUxODdD
RTBBOTAwNzgwRDg2IC8qIF9faW5pdF9fLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBuYW1lID0gX19pbml0X18u
cHk7IHBhdGggPSB3ZWJraXQvX19pbml0X18ucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQzA4NTZGMTg3Q0UwQTkwMDc4MEQ4NiAvKiBtZXNzYWdlcy5weSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsg
bmFtZSA9IG1lc3NhZ2VzLnB5OyBwYXRoID0gd2Via2l0L21lc3NhZ2VzLnB5OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRkMwODU3MDE4N0NFMEE5MDA3ODBEODYgLyogbW9kZWwucHkg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNj
cmlwdC5weXRob247IG5hbWUgPSBtb2RlbC5weTsgcGF0aCA9IHdlYmtpdC9tb2RlbC5weTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU0ODYsNyArNTQ4OCw2IEBACiAJCUMxNzEwQ0Yy
MjRBN0JEMDMwMEQ3QzExMiAvKiBYUENFdmVudEhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBD
RXZlbnRIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNzEwQ0Y1MjRB
QTYzNDUwMEQ3QzExMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUMxNzEwQ0Y2MjRBQTY0MzIwMEQ3QzExMiAvKiBMYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUMxODE3
MzVFMjA1ODM5RjYwMERGREE2NSAvKiBEcmF3aW5nQXJlYU1hYy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEcmF3aW5nQXJlYU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMx
ODE3MzYwMjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwbGF5TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMTgxNzM2MjIwNTg0
NEE5MDBERkRBNjUgLyogRGlzcGxheUxpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxh
eUxpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMThGM0ExMzI1NjMzMkE2
MDA3OTdFNjYgLyogV2ViSW5zcGVjdG9yUHJlZmVyZW5jZU9ic2VydmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkluc3BlY3RvclByZWZlcmVuY2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA1NzQsNyArMTA1NzUsOCBAQAogCQlCQzk2M0Q2QzExM0REMTk1MDA1NzRC
RTIgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQlDMTgxNzM1RTIwNTgzOUY2MDBERkRBNjUgLyogRHJhd2luZ0FyZWFNYWMuY3BwICovLAorCQkJ
CTBGQkI1RkMwMjYwOUEwOTEwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3Bw
ICovLAorCQkJCTBGQkI1RkJGMjYwOUEwOTEwMDU0NTcyQyAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3JNYWMuaCAqLywKIAkJCQk3QzZEMzdGQTE3MkY1NTVGMDA5RDI4NDcgLyogUGFnZUJhbm5lck1h
Yy5tbSAqLywKIAkJCQkxQUFGMjYzNzE0Njg3QzM5MDA0QTFFOEEgLyogVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEuaCAqLywKIAkJCQkxQUFGMjYzNjE0Njg3QzM5MDA0QTFFOEEgLyogVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IGY3ZmZkNzliMjU4M2ZjZjJlM2JlNWUzODAzYjUyYjMxNGRkNTljYjAuLmVjNjc0MTQ0YjFl
MTZmNWY1MzQ0ZWJlMGYwMjk4Zjk5MWIxM2Y4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC05MTIsMTYgKzkxMiwxNyBAQCBHcmFwaGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50
OjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LVJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlz
cGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKK1dl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIFdlYkNocm9tZUNsaWVudDo6ZGlz
cGxheVJlZnJlc2hNb25pdG9yRmFjdG9yeSgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8qIGRyYXdp
bmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIHJldHVybiBkcmF3aW5nQXJl
YS0+Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7CisjaWYgUExBVEZPUk0o
Q09DT0EpCisgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpOworI2Vsc2UKICAgICByZXR1
cm4gbnVsbHB0cjsKKyNlbmRpZgogfQogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0KIFJl
ZlB0cjxJbWFnZUJ1ZmZlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcihjb25z
dCBGbG9hdFNpemUmIHNpemUsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgUmVuZGVyaW5n
UHVycG9zZSBwdXJwb3NlLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIERlc3RpbmF0aW9uQ29sb3JT
cGFjZSBjb2xvclNwYWNlLCBQaXhlbEZvcm1hdCBwaXhlbEZvcm1hdCkgY29uc3QKIHsKICAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0Zvcihw
dXJwb3NlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAxNzkyZDQzNDhkZTY1MDY2MDY4MDRiNmM1
ZWU0MmM1MjRmM2Y0M2ZhLi43ZDZhNWZkNDg2YmQ4Njk1MjE2ZTlkYjFkZjhkY2YzYmNjYTkyNzZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMzksNyArMjM5LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgYW5pbWF0aW9uRGlkRmluaXNoRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50
JikgZmluYWw7CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBj
cmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQpIGNv
bnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkqIGRp
c3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0ZUltYWdl
QnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIFdlYkNvcmU6OlJlbmRlcmluZ01vZGUs
IFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29y
ZTo6RGVzdGluYXRpb25Db2xvclNwYWNlLCBXZWJDb3JlOjpQaXhlbEZvcm1hdCkgY29uc3QgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAKaW5kZXggZWM1ZTM2YjViNDRhOTlkNDljYWJkZjgyNmIzZDE0OGRiNzhiOTliNy4uY2RiYTVh
ZTY1OGRlNWJkYTllZjg3YTJiNmViYzk5YTQ0ZDMzZDY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApAQCAtODIsMTMgKzgyLDYgQEAg
dm9pZCBEcmF3aW5nQXJlYTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0
aW9uKFdURjo6RnVuY3Rpb248dm9pZAogICAgIGZ1bmN0aW9uKCk7CiB9CiAKLSNpZiAhUExBVEZP
Uk0oTUFDKQotUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRHJhd2luZ0Fy
ZWE6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkKLXsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KLSNlbmRpZgotCiB2b2lkIERyYXdpbmdBcmVhOjpyZW1vdmVN
ZXNzYWdlUmVjZWl2ZXJJZk5lZWRlZCgpCiB7CiAgICAgaWYgKG1faGFzUmVtb3ZlZE1lc3NhZ2VS
ZWNlaXZlcikKQEAgLTk3LDYgKzkwLDExIEBAIHZvaWQgRHJhd2luZ0FyZWE6OnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcklmTmVlZGVkKCkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faWRlbnRpZmllcik7CiB9CiAKK1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1v
bml0b3I+IERyYXdpbmdBcmVhOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5SUQpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIGJvb2wgRHJh
d2luZ0FyZWE6OnN1cHBvcnRzR1BVUHJvY2Vzc1JlbmRlcmluZyhEcmF3aW5nQXJlYVR5cGUgdHlw
ZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IDY0ZDUzMjliODY2MDhiYzAyZDQ2N2NkNDNlY2Rl
ZjcyYjU0YTI3MWUuLjg5NDg4YzY0MjRmOTI5MmM4NDZkYzI5MTVmYTVhODBmZTE2ZWY3MTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldl
YlBhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTGF5b3V0TWlsZXN0b25lLmg+CkBAIC02NCw3ICs2NSw3IEBAIGNsYXNzIExheWVyVHJl
ZUhvc3Q7CiBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlOwogCi1jbGFzcyBEcmF3aW5nQXJlYSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CitjbGFzcyBEcmF3aW5nQXJlYSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciwgcHVibGljIFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvckZhY3RvcnkgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERyYXdpbmdB
cmVhKTsKIApAQCAtMTE3LDggKzExOCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgdHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpID0gMDsKIAotICAgIHZpcnR1YWwg
UmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJl
c2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKTsKLQogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVkU2Nyb2xsUG9zaXRpb24oV1RGOjpGdW5jdGlv
bjx2b2lkICgpPiYmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdl
KE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiwgQWN0aXZpdHlTdGF0ZUNo
YW5nZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoKTsgfTsKQEAgLTE3NSw2ICsxNzQsOSBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgpIHsgfQogCisgICAgLy8gRGlzcGxheVJl
ZnJlc2hNb25pdG9yRmFjdG9yeS4KKyAgICBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hN
b25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6UGxhdGZvcm1EaXNw
bGF5SUQpIG92ZXJyaWRlOworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgLy8gVXNlZCBieSBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS4KICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNl
U2NhbGVGYWN0b3IoZmxvYXQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBkNDgyYjQyZTBjMjU0MTI3N2M5NGE0NWRmY2Zi
NWIwMTk0NTExMTQzLi43MzBhMmQ2OTA4ODQ5YjIyNTI2ZGM0MjM4MGY2OTdhOWZjYmNjNWJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
aApAQCAtNzIsNyArNzIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhZGRUcmFuc2FjdGlvbkNh
bGxiYWNrSUQoQ2FsbGJhY2tJRCkgb3ZlcnJpZGU7CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6RGlz
cGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5SUQpIG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5
UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQbGF0
Zm9ybURpc3BsYXlJRCkgZmluYWw7CiAgICAgdm9pZCB3aWxsRGVzdHJveURpc3BsYXlSZWZyZXNo
TW9uaXRvcihXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3IqKTsKICAgICB2b2lkIHNldFBy
ZWZlcnJlZEZyYW1lc1BlclNlY29uZChXZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9E
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5ZTIxYjNlNmQ0NjhjZWQ3
YTI2ODQxZDg2MWViZjAyN2U4MDdiODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcApAQCAt
MCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisK
KyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcE9ic2VydmVy
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0Rp
c3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3Jt
RGlzcGxheUlEIGRpc3BsYXlJRCkKKyAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5
SUQpCisgICAgLCBtX29ic2VydmVySUQoRGlzcGxheUxpbmtPYnNlcnZlcklEOjpnZW5lcmF0ZSgp
KQoreworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOworfQorCitEaXNwbGF5UmVmcmVzaE1v
bml0b3JNYWM6On5EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoKQoreworICAgIGlmIChtX2hhc1Nl
bnRNZXNzYWdlKQorICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlN0b3BEaXNwbGF5
TGluayhtX29ic2VydmVySUQsIGRpc3BsYXlJRCgpKSwgMCk7Cit9CisKK2Jvb2wgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjOjpyZXF1ZXN0UmVmcmVzaENhbGxiYWNrKCkKK3sKKyAgICBpZiAoIWlz
QWN0aXZlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghbV9oYXNTZW50TWVz
c2FnZSkgeworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OlN0YXJ0RGlzcGxheUxp
bmsobV9vYnNlcnZlcklELCBkaXNwbGF5SUQoKSksIDApOworICAgICAgICBtX2hhc1NlbnRNZXNz
YWdlID0gdHJ1ZTsKKyAgICAgICAgbV9ydW5Mb29wT2JzZXJ2ZXIgPSBtYWtlVW5pcXVlPFJ1bkxv
b3BPYnNlcnZlcj4oa0NGUnVuTG9vcEVudHJ5LCBbdGhpc10oKSB7CisgICAgICAgICAgICBtX2Zp
cnN0Q2FsbGJhY2tJbkN1cnJlbnRSdW5sb29wID0gdHJ1ZTsKKyAgICAgICAgfSk7CisgICAgICAg
IG1fcnVuTG9vcE9ic2VydmVyLT5zY2hlZHVsZShDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOworICAg
IH0KKyAgICAKKyAgICBzZXRJc1NjaGVkdWxlZCh0cnVlKTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtGaXJlZCgpCit7
CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CisgICAgaWYgKCFtX2ZpcnN0Q2FsbGJhY2tJ
bkN1cnJlbnRSdW5sb29wKQorICAgICAgICByZXR1cm47CisgICAgbV9maXJzdENhbGxiYWNrSW5D
dXJyZW50UnVubG9vcCA9IGZhbHNlOworCisgICAgLy8gU2luY2Ugd2UgYXJlIG9uIHRoZSBtYWlu
IHRocmVhZCwgd2UgY2FuIGp1c3QgY2FsbCBoYW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0
aW9uT25NYWluVGhyZWFkIGhlcmUuCisgICAgaGFuZGxlRGlzcGxheVJlZnJlc2hlZE5vdGlmaWNh
dGlvbk9uTWFpblRocmVhZCh0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTNhMTVmZWIyOTAzNzA3M2EzZjMwMjI4NGZmNTI5ZGZlYjQzNmExYwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2luY2x1ZGUgIkRpc3BsYXlMaW5rT2Jz
ZXJ2ZXJJRC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wT2JzZXJ2ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpEaXNwbGF5UmVmcmVzaE1vbml0b3IgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFjPiBjcmVhdGUoV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5SUQgZGlz
cGxheUlEKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRGlzcGxheVJlZnJl
c2hNb25pdG9yTWFjKGRpc3BsYXlJRCkpOworICAgIH0KKyAgICAKKyAgICB2aXJ0dWFsIH5EaXNw
bGF5UmVmcmVzaE1vbml0b3JNYWMoKTsKKyAgICAKKyAgICB2b2lkIGRpc3BsYXlMaW5rRmlyZWQo
KSBmaW5hbDsKKyAgICBib29sIHJlcXVlc3RSZWZyZXNoQ2FsbGJhY2soKSBmaW5hbDsKKyAgICAK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheUlEKTsKKyAgICAKKyAgICBib29sIGhhc1JlcXVlc3RlZFJlZnJlc2hD
YWxsYmFjaygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faGFzU2VudE1lc3NhZ2U7IH0KKworICAg
IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRCBtX29ic2VydmVySUQ7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlJ1bkxvb3BPYnNlcnZlcj4gbV9ydW5Mb29wT2JzZXJ2ZXI7CisgICAgYm9vbCBt
X2hhc1NlbnRNZXNzYWdlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fZmlyc3RDYWxsYmFja0luQ3Vy
cmVudFJ1bmxvb3AgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvRHJhd2luZ0FyZWFNYWMuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdBcmVhTWFjLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDMwMDJhMDExNmQwYjk1MDQ0YjM0NWNmMDYyYjNjNWEyODYxMzdkMy4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvRHJhd2luZ0FyZWFNYWMuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTEyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiRHJhd2luZ0FyZWEuaCIKLQotI2lmIFBMQVRGT1JNKE1BQykKLQotI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgotCi0jaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1v
bml0b3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3BPYnNlcnZlci5oPgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1jbGFzcyBEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWMgOiBwdWJsaWMgRGlzcGxheVJlZnJlc2hNb25pdG9yIHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYz4gY3JlYXRlKFBsYXRmb3Jt
RGlzcGxheUlEIGRpc3BsYXlJRCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYyhkaXNwbGF5SUQpKTsKLSAgICB9Ci0gICAgCi0gICAg
dmlydHVhbCB+RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKCk7Ci0gICAgCi0gICAgdm9pZCBkaXNw
bGF5TGlua0ZpcmVkKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZXF1ZXN0UmVmcmVzaENhbGxiYWNr
KCkgb3ZlcnJpZGU7Ci0gICAgCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IERpc3BsYXlSZWZyZXNo
TW9uaXRvck1hYyhQbGF0Zm9ybURpc3BsYXlJRCk7Ci0gICAgCi0gICAgYm9vbCBoYXNSZXF1ZXN0
ZWRSZWZyZXNoQ2FsbGJhY2soKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2hhc1NlbnRNZXNz
YWdlOyB9Ci0KLSAgICBEaXNwbGF5TGlua09ic2VydmVySUQgbV9vYnNlcnZlcklEOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxSdW5Mb29wT2JzZXJ2ZXI+IG1fcnVuTG9vcE9ic2VydmVyOwotICAgIGJv
b2wgbV9oYXNTZW50TWVzc2FnZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2ZpcnN0Q2FsbGJhY2tJ
bkN1cnJlbnRSdW5sb29wIHsgZmFsc2UgfTsKLX07Ci0KLURpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yzo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFjKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkK
LSAgICA6IERpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpCi0gICAgLCBtX29ic2VydmVy
SUQoRGlzcGxheUxpbmtPYnNlcnZlcklEOjpnZW5lcmF0ZSgpKQotewotfQotCi1EaXNwbGF5UmVm
cmVzaE1vbml0b3JNYWM6On5EaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMoKQotewotICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6U3RvcERpc3BsYXlMaW5rKG1fb2JzZXJ2ZXJJRCwgZGlzcGxh
eUlEKCkpLCAwKTsKLX0KLQotYm9vbCBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6OnJlcXVlc3RS
ZWZyZXNoQ2FsbGJhY2soKQotewotICAgIGlmICghaXNBY3RpdmUoKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgaWYgKCFtX2hhc1NlbnRNZXNzYWdlKSB7Ci0gICAgICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6U3RhcnREaXNwbGF5TGluayhtX29ic2VydmVySUQsIGRpc3BsYXlJ
RCgpKSwgMCk7Ci0gICAgICAgIG1faGFzU2VudE1lc3NhZ2UgPSB0cnVlOwotICAgICAgICBtX3J1
bkxvb3BPYnNlcnZlciA9IG1ha2VVbmlxdWU8UnVuTG9vcE9ic2VydmVyPihrQ0ZSdW5Mb29wRW50
cnksIFt0aGlzXSgpIHsKLSAgICAgICAgICAgIHRoaXMtPm1fZmlyc3RDYWxsYmFja0luQ3VycmVu
dFJ1bmxvb3AgPSB0cnVlOwotICAgICAgICB9KTsKLSAgICAgICAgbV9ydW5Mb29wT2JzZXJ2ZXIt
PnNjaGVkdWxlKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7Ci0gICAgfQotICAgIAotICAgIHNldElz
U2NoZWR1bGVkKHRydWUpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKLXsKLSAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKLSAgICBpZiAoIW1fZmlyc3RDYWxsYmFja0luQ3VycmVudFJ1bmxvb3ApCi0g
ICAgICAgIHJldHVybjsKLSAgICBtX2ZpcnN0Q2FsbGJhY2tJbkN1cnJlbnRSdW5sb29wID0gZmFs
c2U7Ci0KLSAgICAvLyBTaW5jZSB3ZSBhcmUgb24gdGhlIG1haW4gdGhyZWFkLCB3ZSBjYW4ganVz
dCBjYWxsIGhhbmRsZURpc3BsYXlSZWZyZXNoZWROb3RpZmljYXRpb25Pbk1haW5UaHJlYWQgaGVy
ZS4KLSAgICBoYW5kbGVEaXNwbGF5UmVmcmVzaGVkTm90aWZpY2F0aW9uT25NYWluVGhyZWFkKHRo
aXMpOwotfQotCi1SZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEcmF3aW5n
QXJlYTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3Bs
YXlJRCkKLXsKLSAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpjcmVhdGUoZGlz
cGxheUlEKTsKLX0KLQotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBiNmNhZTQ3NzFlNDI5ODg3NTRiMjllMjIy
ODZiOWYwNGFiNTIyM2Y1Li45MmNhN2I2ZDhkNDkyZjE5NTUwM2RmZjVlOGJhNGIxODM4NGIyMWY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtMTE3LDYgKzEx
Nyw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGFwcGx5VHJhbnNpZW50Wm9vbVRvTGF5ZXJzKGRv
dWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pOwogCisgICAgUmVmUHRyPFdl
YkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9y
KFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBmaW5hbDsKKwogICAgIHZvaWQgdXBkYXRlTGF5
ZXJIb3N0aW5nQ29udGV4dCgpOwogCiAgICAgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihD
QUxheWVyICopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4
IDVmNjZiZmQ3MmZmZjM1NjY4OGE2MmFjYWY0OTRkZDhiY2ZhZDBhNDMuLjA0ZWI2NTk2ZjI5YTdh
ZDVmNmQ5MDJlNTUzN2E4M2JkN2Y0YzA4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWEubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNp
bXBvcnQgIkNvbG9yU3BhY2VEYXRhLmgiCisjaW1wb3J0ICJEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YWMuaCIKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiTGF5
ZXJIb3N0aW5nQ29udGV4dC5oIgogI2ltcG9ydCAiTGF5ZXJUcmVlQ29udGV4dC5oIgpAQCAtNjUy
LDYgKzY1MywxMSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRDb2xv
clNwYWNlKGNvbnN0IENvbG9yU3BhY2VEYXRhJiBjb2xvclNwYQogICAgIG1fbGF5ZXJIb3N0aW5n
Q29udGV4dC0+c2V0Q29sb3JTcGFjZShjb2xvclNwYWNlLmNnQ29sb3JTcGFjZS5nZXQoKSk7CiB9
CiAKK1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNw
bGF5SUQgZGlzcGxheUlEKQoreworICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWM6
OmNyZWF0ZShkaXNwbGF5SUQpOworfQorCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjp1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KCkKIHsKICAgICBSZXRhaW5QdHI8Q0dDb2xv
clNwYWNlUmVmPiBjb2xvclNwYWNlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>