<?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>105722</bug_id>
          
          <creation_ts>2012-12-24 08:34:57 -0800</creation_ts>
          <short_desc>Web Inspector: Make InspectorState instances per-agent, corresponding to JSON map entries in the cookie</short_desc>
          <delta_ts>2012-12-28 23:56:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796982</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-24 08:34:57 -0800</bug_when>
    <thetext>The blamed line is InspectorState.cpp:136

Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797083</commentid>
    <comment_count>1</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-24 21:03:06 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; The blamed line is InspectorState.cpp:136
&gt; 
&gt; Patch to follow.

Could you provide more details or at least link to the corresponding revision where the line 136 would fail as on the current tot r138449 InspectorState.cpp is only 131 line long?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797086</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-24 21:32:10 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; The blamed line is InspectorState.cpp:136
&gt; &gt; 
&gt; &gt; Patch to follow.
&gt; 
&gt; Could you provide more details or at least link to the corresponding revision where the line 136 would fail as on the current tot r138449 InspectorState.cpp is only 131 line long?

As agreed with pfeldman, the offending change r138436 was reverted, as the composite state should be implemented in a slightly different way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797103</commentid>
    <comment_count>3</comment_count>
      <attachid>180703</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-24 23:11:51 -0800</bug_when>
    <thetext>Created attachment 180703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797106</commentid>
    <comment_count>4</comment_count>
      <attachid>180703</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-24 23:38:08 -0800</bug_when>
    <thetext>Comment on attachment 180703
Patch

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

&gt; Source/WebCore/inspector/InspectorState.cpp:137
&gt; +        if (!agentStateObject) {

When can this happen? Also if some agent states may be missing there might be some extra states which we probably want to delete?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797114</commentid>
    <comment_count>5</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-25 00:39:21 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 180703 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180703&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorState.cpp:137
&gt; &gt; +        if (!agentStateObject) {
&gt; 
&gt; When can this happen?

This can happen if a cookie was written before all InspectorStates had been constructed.

&gt; Also if some agent states may be missing there might be some extra states which we probably want to delete?

This means that the respective state is empty, which we handle by creating an empty object to pass into InspectorState::setFromCookie().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797116</commentid>
    <comment_count>6</comment_count>
      <attachid>180703</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-25 01:01:41 -0800</bug_when>
    <thetext>Comment on attachment 180703
Patch

Clearing flags on attachment: 180703

Committed r138457: &lt;http://trac.webkit.org/changeset/138457&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797117</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-25 01:01:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798066</commentid>
    <comment_count>8</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-12-28 23:56:25 -0800</bug_when>
    <thetext>*** Bug 105438 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180703</attachid>
            <date>2012-12-24 23:11:51 -0800</date>
            <delta_ts>2012-12-25 01:01:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105722-20121225110903.patch</filename>
            <type>text/plain</type>
            <size>85228</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlhZTk4YThjMzdjZTli
MTRhMmUyZTM1MWMzNzNhMDgyNTdlZjZkYy4uY2Q2ZjdlNzkxZGVkYWVkOTk4ZDgxYzVlNGMxODY3
ZTBiNzM4NGM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEyLTEyLTI0ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTWFrZSBJbnNwZWN0b3JTdGF0ZSBpbnN0YW5jZXMgcGVyLWFnZW50LCBjb3JyZXNwb25k
aW5nIHRvIEpTT04gbWFwIGVudHJpZXMgaW4gdGhlIGNvb2tpZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NzIyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zcGVjdG9yIHN0YXRlIGNvb2tpZSAoaW4g
SlNPTiBmb3JtYXQpIGhhcyBiZWNvbWUgYSBtYXAgKGFnZW50IG5hbWUgLT4gInByb3BlcnRpZXMg
b2JqZWN0IikKKyAgICAgICAgdG8gYXZvaWQgY3Jvc3MtYWdlbnQgcHJvcGVydHkgbmFtZSBjbGFz
aGVzIGluIGEgc2luZ2xlIHByb3BlcnR5IG5hbWVzcGFjZS4KKyAgICAgICAgQXMgc3VjaCwgSW5z
cGVjdG9yU3RhdGUgY29ycmVzcG9uZHMgdG8gYSBzaW5nbGUgInByb3BlcnRpZXMgb2JqZWN0IiBh
bmQgaXMgbm93IHBlci1hZ2VudCwKKyAgICAgICAgbWFuYWdlZCBieSBhbiBJbnNwZWN0b3JDb21w
b3NpdGVTdGF0ZSAod2hpY2ggaXMgb3duZWQgYnkgW1dvcmtlcl1JbnNwZWN0b3JDb250cm9sbGVy
KS4KKyAgICAgICAgU2luY2UgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUgbWFwcyAicHJvcGVydGll
cyBvYmplY3RzIiBieSB0aGVpciBhZ2VudCBuYW1lcywgSW5zcGVjdG9yU3RhdGVzIGFyZSBjcmVh
dGVkCisgICAgICAgIGJ5IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlIGluIHRoZSBJbnNwZWN0b3JC
YXNlQWdlbnRJbnRlcmZhY2UgY3RvciwgdXNpbmcgdGhlIHJlc3BlY3RpdmUgYWdlbnQgbmFtZS4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGNoYW5nZSBpbiB2aXNpYmxlIGJlaGF2aW9yLgor
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcDogUGFzcyBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSByYXRoZXIgdGhhbiBJbnNwZWN0b3JTdGF0ZS4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQWdlbnQuaDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDogRGl0dG8uCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlOjpJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2Up
OgorICAgICAgICBDcmVhdGUgSW5zcGVjdG9yU3RhdGUgdmlhIEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlOjpjcmVhdGVBZ2VudFN0YXRlKGFnZW50TmFtZSkuCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckJhc2VBZ2VudC5oOiBQYXNzIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlIHJhdGhlciB0
aGFuIEluc3BlY3RvclN0YXRlLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOiBE
aXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaDogRGl0dG8uCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6IERpdHRvLgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaDogRGl0dG8uCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOiBVc2UgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGUgcmF0aGVyIHRoYW4gSW5zcGVjdG9yU3RhdGUuCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcDogUGFzcyBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSByYXRoZXIgdGhh
biBJbnNwZWN0b3JTdGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpJ
bnNwZWN0b3JET01BZ2VudCk6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudC5jcHA6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50Lmg6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Lmg6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFz
ZUFnZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNl
QWdlbnQuaDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5oOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50
LmNwcDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2Vu
dC5oOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
aDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwOiBE
aXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5wdXRBZ2VudC5oOiBEaXR0by4K
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwOiBEaXR0by4K
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaDogRGl0dG8uCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcDogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50Lmg6IERpdHRvLgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuaDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5oOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
UnVudGltZUFnZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5oOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUu
Y3BwOiBJbnRyb2R1Y2UgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUsIHJlZmFjdG9yLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU3RhdGU6OnVwZGF0ZUNvb2tpZSk6IERlbGVnYXRlcyB0byB0
aGUgb3duaW5nIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlIGluc3RhbmNlLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yU3RhdGU6OnNldEZyb21Db29raWUpOiBHZXRzIGNhbGxlZCBmcm9tIElu
c3BlY3RvckNvbXBvc2l0ZVN0YXRlOjpsb2FkRnJvbUNvb2tpZSgpLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU3RhdGU6OnJlbW92ZSk6IERvbid0IGZvcmdldCB0byB1cGRhdGUgdGhlIGNv
b2tpZS4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOjpjcmVhdGVB
Z2VudFN0YXRlKTogQ3JlYXRlcyBhbiBJbnNwZWN0b3JTdGF0ZSBpbnN0YW5jZSBmb3IgYSBuYW1l
ZCBhZ2VudC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOjpsb2Fk
RnJvbUNvb2tpZSk6IFJlc3RvcmVzIEluc3BlY3RvclN0YXRlcyBmcm9tIGEgY29va2llLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU6Omluc3BlY3RvclN0YXRlVXBk
YXRlZCk6IERlbGVnYXRlIGludm9rZWQgZnJvbSBJbnNwZWN0b3JTdGF0ZTo6dXBkYXRlQ29va2ll
KCkuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmg6CisgICAgICAgIChJbnNw
ZWN0b3JTdGF0ZVVwZGF0ZUxpc3RlbmVyKTogSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUgQVBJIGV4
cG9zZWQgdG8gSW5zcGVjdG9yU3RhdGUuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwOiBQYXNzIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlIHJhdGhlciB0aGFu
IEluc3BlY3RvclN0YXRlLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50Lmg6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5j
cHA6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oOiBE
aXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHA6IERpdHRvLgor
ICAgICAgICAqIGluc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50Lmg6IERpdHRvLgorICAgICAgICAq
IGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6IERpdHRvLgorICAgICAgICAqIGluc3Bl
Y3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvUGFn
ZVJ1bnRpbWVBZ2VudC5jcHA6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGlt
ZUFnZW50Lmg6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQu
Y3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50Lmg6IERp
dHRvLgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcDogRGl0dG8u
CisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaDogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwOiBEaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oOiBEaXR0by4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcDogRGl0dG8uCisgICAgICAg
ICogaW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oOiBEaXR0by4KKwogMjAxMi0xMi0yNCAg
QWxleGVpIEZpbGlwcG92ICA8YWxwaEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogYWRkIGFzeW5jIEFQSSBmb3IgcGFzc2luZyByZW5kZXJlciBwcm9jZXNzIG1lbW9yeSBz
dGF0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXgg
MDFiYWViODAwNDk3ZTVlYzQ3ZGJkNDNjMWMyZDI2ZDY1MzBlNWQxMi4uMWYxNzZhODRhZjNhMWM2
NmUxN2ZkODUxZjgxMmExNjRkYzJhZjJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQWdlbnQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3JB
Z2VudFN0YXRlIHsKIHN0YXRpYyBjb25zdCBjaGFyIGluc3BlY3RvckFnZW50RW5hYmxlZFtdID0g
Imluc3BlY3RvckFnZW50RW5hYmxlZCI7CiB9CiAKLUluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JB
Z2VudChQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFu
YWdlciwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
U3RhdGUqIHN0YXRlKQorSW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KFBhZ2UqIHBhZ2Us
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSog
c3RhdGUpCiAgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQWdlbnQ+KCJJbnNwZWN0
b3IiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1faW5zcGVjdGVkUGFnZShw
YWdlKQogICAgICwgbV9mcm9udGVuZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQWdlbnQuaAppbmRleCA2MjMxMGYyNDZiZDgxN2Q0Mjc3MTAzOTVmNjc4NGVhZDAyNjU1YzA1
Li5hMGVlMGY3NTNmZmVmZTg3OGVlNmJiZGI5NjI4YmVmZGQxN2Y1NTI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCB0eXBlZGVm
IFN0cmluZyBFcnJvclN0cmluZzsKIGNsYXNzIEluc3BlY3RvckFnZW50IDogcHVibGljIEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcjo6SW5zcGVjdG9yQ29tbWFuZEhhbmRsZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEluc3BlY3RvckFnZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNw
ZWN0b3JBZ2VudD4gY3JlYXRlKFBhZ2UqIHBhZ2UsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9yQWdlbnQ+IGNyZWF0ZShQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVj
dGVkU2NyaXB0TWFuYWdlciwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBZ2VudChwYWdlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIs
IGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CiAgICAgfQpAQCAtOTAsNyArOTAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBpbnNwZWN0KFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6
OlJlbW90ZU9iamVjdD4gb2JqZWN0VG9JbnNwZWN0LCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gaGludHMpOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvckFnZW50KFBhZ2UqLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqLCBJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqKTsK
KyAgICBJbnNwZWN0b3JBZ2VudChQYWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zdHJ1
bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CiAKICAgICB2b2lkIHVu
YmluZEFsbFJlc291cmNlcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCmluZGV4IDJlN2M3ZDli
ODdjZTk5YTZlNzllYzMzMzQ2ZDQ2MDI1NDczMGU0MjguLjRiN2M2NzlmZDczYzhlMDVmNzIxMjQz
NzAxYzlkYjI0NmZjMzVhNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCkBAIC00OSw3ICs0OSw3
IEBAIG5hbWVzcGFjZSBBcHBsaWNhdGlvbkNhY2hlQWdlbnRTdGF0ZSB7CiBzdGF0aWMgY29uc3Qg
Y2hhciBhcHBsaWNhdGlvbkNhY2hlQWdlbnRFbmFibGVkW10gPSAiYXBwbGljYXRpb25DYWNoZUFn
ZW50RW5hYmxlZCI7CiB9CiAKLUluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6SW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdl
QWdlbnQpCitJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6Okluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJ
bnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFn
ZW50KQogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudD4oIkFwcGxpY2F0aW9uQ2FjaGUiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAg
ICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZnJvbnRlbmQoMCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaAppbmRleCAyZmVmMDc2Yzg1NmM4MThhZWQyMWQ4NGVlYzIwNDQwZThkY2VjMDc5Li4z
M2I4OWMyOGVmM2RmYWM3Zjg2ODUxOWUwNDQzNDI5OThiZTY0YTIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dC5oCkBAIC01Miw3ICs1Miw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3Mg
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2Vu
dDxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXI6OkFwcGxpY2F0aW9uQ2FjaGVDb21tYW5kSGFuZGxlciB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFn
ZUFnZW50KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIHBhZ2VBZ2VudCkp
OwogICAgIH0KQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRB
cHBsaWNhdGlvbkNhY2hlRm9yRnJhbWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1l
SWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXBwbGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNo
ZT4mKTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7
CisgICAgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvclBhZ2VBZ2VudCopOwogICAgIFBh
c3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkFwcGxpY2F0aW9uQ2FjaGU6OkFwcGxpY2F0aW9uQ2FjaGU+
IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9z
dDo6UmVzb3VyY2VJbmZvTGlzdCYsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUlu
Zm8mKTsKICAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXBw
bGljYXRpb25DYWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiA+IGJ1aWxkQXJyYXlGb3JB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNv
dXJjZUluZm9MaXN0Jik7CiAgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6QXBwbGljYXRpb25D
YWNoZTo6QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwCmlu
ZGV4IGU5MjY0OTRlZmI4MzBmNjhjYmY4OTRkZjY5MDAxYTkxZDM5ZGViNTguLjNhODg0NTU0ODM2
YzUwNzcyZDU4MzljMTM1ZDk4Mzg2NmVjNzNiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuY3BwCkBAIC0zNCwxMyArMzQsMTQgQEAKIAogI2lu
Y2x1ZGUgIkluc3BlY3RvckJhc2VBZ2VudC5oIgogCisjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUu
aCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotSW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlOjpJbnNwZWN0b3JCYXNl
QWdlbnRJbnRlcmZhY2UoY29uc3QgU3RyaW5nJiBuYW1lLCBJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCitJbnNw
ZWN0b3JCYXNlQWdlbnRJbnRlcmZhY2U6Okluc3BlY3RvckJhc2VBZ2VudEludGVyZmFjZShjb25z
dCBTdHJpbmcmIG5hbWUsIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSkKICAgICA6IG1faW5zdHJ1
bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQotICAgICwgbV9zdGF0ZShpbnNwZWN0
b3JTdGF0ZSkKKyAgICAsIG1fc3RhdGUoaW5zcGVjdG9yU3RhdGUtPmNyZWF0ZUFnZW50U3RhdGUo
bmFtZSkpCiAgICAgLCBtX25hbWUobmFtZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYXNlQWdlbnQuaAppbmRleCA0OGZhOGU0YzM4Mjg5ZGU5NWY3MmUxNWU5
MWM1YjZjNDQzZmM1ODg4Li43NWJkN2I0Y2JmZDE5M2IyYmYyMzU0N2EwZDU1MmNiMjQxODhjYmMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFzZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhc2VBZ2VudC5oCkBA
IC0zOSwxMiArMzksMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zcGVjdG9y
RnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZTsKIGNsYXNzIEluc3BlY3Rv
clN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIAogY2xhc3MgSW5zcGVjdG9yQmFz
ZUFnZW50SW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JCYXNlQWdlbnRJbnRlcmZh
Y2UoY29uc3QgU3RyaW5nJiwgSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKik7
CisgICAgSW5zcGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlKGNvbnN0IFN0cmluZyYsIEluc3RydW1l
bnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSopOwogICAgIHZpcnR1YWwgfklu
c3BlY3RvckJhc2VBZ2VudEludGVyZmFjZSgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb250
ZW5kKEluc3BlY3RvckZyb250ZW5kKikgeyB9CkBAIC05MCw3ICs5MSw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByb3RlY3RlZDoKLSAgICBJbnNwZWN0b3JCYXNlQWdlbnQoY29uc3QgU3RyaW5nJiBu
YW1lLCBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JT
dGF0ZSogaW5zcGVjdG9yU3RhdGUpCisgICAgSW5zcGVjdG9yQmFzZUFnZW50KGNvbnN0IFN0cmlu
ZyYgbmFtZSwgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVj
dG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlKQogICAgICAgICA6IEluc3BlY3RvckJh
c2VBZ2VudEludGVyZmFjZShuYW1lLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0
ZSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5jcHAKaW5kZXggZDUyNWU2ZGY2YTVjODIzYjg2Y2FhZWQ3NDc5OWI3OTA1M2U1M2Nl
Yi4uOTMwZWMwN2IyOTA1MDZjMmY4ZTUzOGYxMTY1YmM1YzVmNTkxZTUwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC01MjMsNyArNTIz
LDcgQEAgQ1NTU3R5bGVSdWxlKiBJbnNwZWN0b3JDU1NBZ2VudDo6YXNDU1NTdHlsZVJ1bGUoQ1NT
UnVsZSogcnVsZSkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVSdWxlKj4ocnVsZSk7
CiB9CiAKLUluc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3Bl
Y3RvckRPTUFnZW50KiBkb21BZ2VudCkKK0luc3BlY3RvckNTU0FnZW50OjpJbnNwZWN0b3JDU1NB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSogc3RhdGUsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCkKICAgICA6
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JDU1NBZ2VudD4oIkNTUyIsIGluc3RydW1lbnRp
bmdBZ2VudHMsIHN0YXRlKQogICAgICwgbV9mcm9udGVuZCgwKQogICAgICwgbV9kb21BZ2VudChk
b21BZ2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgK
aW5kZXggZmQ0ZjJjYTZiMDU4NGMzM2I5MzdlZjFjNzY4YjVjYmNkNDQ2MDZjOC4uMTQzZTQ1NGFh
OTZiMDE2ODE5ODAzMTUxMGZmNTk3MzhhZjBmZWUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIENTU1N0eWxlUnVsZSogYXNDU1NTdHlsZVJ1bGUoQ1NTUnVsZSopOwogCi0gICAg
c3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yQ1NTQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluc3Bl
Y3RvckRPTUFnZW50KiBkb21BZ2VudCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JD
U1NBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFn
ZW50KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDU1NBZ2Vu
dChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgZG9tQWdlbnQpKTsKICAgICB9CkBAIC0xMzgs
NyArMTM4LDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBTZXRSdWxlU2VsZWN0b3JBY3Rpb247CiAg
ICAgY2xhc3MgQWRkUnVsZUFjdGlvbjsKIAotICAgIEluc3BlY3RvckNTU0FnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvckRPTUFnZW50Kik7CisgICAg
SW5zcGVjdG9yQ1NTQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0
ZVN0YXRlKiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJp
bmcsIFJlZlB0cjxJbnNwZWN0b3JTdHlsZVNoZWV0PiA+IElkVG9JbnNwZWN0b3JTdHlsZVNoZWV0
OwogICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNoZWV0KiwgUmVmUHRyPEluc3BlY3RvclN0
eWxlU2hlZXQ+ID4gQ1NTU3R5bGVTaGVldFRvSW5zcGVjdG9yU3R5bGVTaGVldDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmluZGV4IDA0
ZmViMzI0MTYwZDJiZGJlNzQ1ZWRmZTQ2ZDhiN2FiMmQyMjE0NGYuLjUzNDc1MzM1YTE3ZmVlN2Q2
MTc3YjE4ODg2MWM2ODY0NTAxNmY5M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2Ug
Q2FudmFzQWdlbnRTdGF0ZSB7CiBzdGF0aWMgY29uc3QgY2hhciBjYW52YXNBZ2VudEVuYWJsZWRb
XSA9ICJjYW52YXNBZ2VudEVuYWJsZWQiOwogfTsKIAotSW5zcGVjdG9yQ2FudmFzQWdlbnQ6Oklu
c3BlY3RvckNhbnZhc0FnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgUGFnZSogcGFnZSwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitJbnNwZWN0b3JDYW52YXNBZ2VudDo6SW5zcGVj
dG9yQ2FudmFzQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBQYWdlKiBwYWdlLCBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICA6IEluc3BlY3RvckJhc2VBZ2Vu
dDxJbnNwZWN0b3JDYW52YXNBZ2VudD4oIkNhbnZhcyIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0
YXRlKQogICAgICwgbV9pbnNwZWN0ZWRQYWdlKHBhZ2UpCiAgICAgLCBtX2luamVjdGVkU2NyaXB0
TWFuYWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IDI2YjNhNTVjMjUyY2M4ZDg2YjI3NzM2
NjlmYWE0NGY0OTllMGUxNDUuLjBmNWNhOTg3MWM5MzIxMDYxMGY2YWVkNGUwOWNlYmQxZjQ1NTY5
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2Vu
dC5oCkBAIC01NCw3ICs1NCw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCiBjbGFz
cyBJbnNwZWN0b3JDYW52YXNBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVj
dG9yQ2FudmFzQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkNhbnZh
c0NvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0
b3JDYW52YXNBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgUGFnZSogcGFnZSwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5z
cGVjdG9yQ2FudmFzQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIFBhZ2UqIHBhZ2UsIElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JDYW52YXNBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBzdGF0ZSwgcGFnZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSk7CiAgICAgfQpAQCAt
ODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGxheVRyYWNlTG9nKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwgaW50LCBTdHJpbmcqKTsKIAogcHJpdmF0ZToKLSAg
ICBJbnNwZWN0b3JDYW52YXNBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3Rh
dGUqLCBQYWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgSW5zcGVjdG9yQ2FudmFz
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgUGFn
ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwogCiAgICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGUgaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVGb3JUcmFjZUxvZ0lkKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggOTgzYzcwYjc5MWQ2MjBhMzY2ZDdiZWIxYTc5
ZDZmNGY3ZGM4MjIyNS4uNzdmZWJkYzNhYjY0ZTMyZDIzMWJhZDVmNTc1NDlmN2I4OTQ5MzRiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVBZ2Vu
dC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgY29uc29sZU1lc3NhZ2Vz
RW5hYmxlZFtdID0gImNvbnNvbGVNZXNzYWdlc0VuYWJsZWQiOwogCiBpbnQgSW5zcGVjdG9yQ29u
c29sZUFnZW50OjpzX2VuYWJsZWRBZ2VudENvdW50ID0gMDsKIAotSW5zcGVjdG9yQ29uc29sZUFn
ZW50OjpJbnNwZWN0b3JDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIq
IGluamVjdGVkU2NyaXB0TWFuYWdlcikKK0luc3BlY3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9y
Q29uc29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmpl
Y3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yQ29u
c29sZUFnZW50PigiQ29uc29sZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQogICAgICwg
bV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9m
cm9udGVuZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5oCmluZGV4IDg1OTFhMDM2MGY0MTgyM2M1NWExYTA1OWM2NDkwMGZkMzkzYzM2NTgu
LjQ3YWM4NmQ1N2VhMzliN2QyYTllYzMzZGJjNjE2YTgyZTMzMzc1MjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAgLTU3LDcgKzU3
LDcgQEAgdHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiBjbGFzcyBJbnNwZWN0b3JDb25zb2xl
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckNvbnNvbGVBZ2VudD4s
IHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6Q29uc29sZUNvbW1hbmRIYW5kbGVy
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JDb25zb2xlQWdlbnQpOwogcHVi
bGljOgotICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5z
cGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBJbnNwZWN0b3JDb25z
b2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQ29uc29sZUFn
ZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggM2U0
ZGM5M2Y0ZTU0ZDIwNDk4ZjJiOTQwNzc3ZTlhOTNjZmM2OTBiMi4uYmUzYTIwNjBhY2YxMmVjNTU3
YzQ4ZmZhY2YzOGQxM2ZkMmExYTExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtODIsNyArODIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBh
Z2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KQogICAgIDogbV9pbnN0cnVtZW50
aW5nQWdlbnRzKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50aW5nQWdlbnRzKCkpKQogICAgICwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVGb3JQYWdl
KCkpCi0gICAgLCBtX3N0YXRlKGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JTdGF0ZShpbnNwZWN0b3JD
bGllbnQpKSkKKyAgICAsIG1fc3RhdGUoYWRvcHRQdHIobmV3IEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlKGluc3BlY3RvckNsaWVudCkpKQogICAgICwgbV9vdmVybGF5KEluc3BlY3Rvck92ZXJsYXk6
OmNyZWF0ZShwYWdlLCBpbnNwZWN0b3JDbGllbnQpKQogICAgICwgbV9wYWdlKHBhZ2UpCiAgICAg
LCBtX2luc3BlY3RvckNsaWVudChpbnNwZWN0b3JDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBlNjlmYjc1Y2Y2MGI1MzI2MTk5
NjY5ODBiYzliMzM2MDkxZjRkNzkwLi43YmNjMWZhZjdlMGYwODk3NTUyYjExZmMxNDI0OTZhNDEy
YzZhOWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPEluc3RydW1l
bnRpbmdBZ2VudHM+IG1faW5zdHJ1bWVudGluZ0FnZW50czsKICAgICBPd25QdHI8SW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyPiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKLSAgICBPd25QdHI8SW5zcGVj
dG9yU3RhdGU+IG1fc3RhdGU7CisgICAgT3duUHRyPEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlPiBt
X3N0YXRlOwogICAgIE93blB0cjxJbnNwZWN0b3JPdmVybGF5PiBtX292ZXJsYXk7CiAKICAgICBJ
bnNwZWN0b3JBZ2VudCogbV9pbnNwZWN0b3JBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGE0MWQxOTgwNDdhOTlkOGM2YzZhMjgy
ODdjZTc2YzFkYWNkZGMwOGUuLmM0MzA2ZTgzZWY5NWY1MTM5M2ZhZjQyNGQ5ZjM0MWFlZWE1YjE2
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNw
cApAQCAtMTkyLDcgKzE5Miw3IEBAIFN0cmluZyBJbnNwZWN0b3JET01BZ2VudDo6dG9FcnJvclN0
cmluZyhjb25zdCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gIiI7CiB9CiAKLUluc3Bl
Y3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
U3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKK0luc3BlY3RvckRPTUFnZW50
OjpJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0
TWFuYWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKICAgICA6IEluc3BlY3RvckJhc2VB
Z2VudDxJbnNwZWN0b3JET01BZ2VudD4oIkRPTSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3Bl
Y3RvclN0YXRlKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCAzMDgwNmQyMmFmNTIxNzkyZjJhODc3
Y2M3MWY5ZmZmMTI4YTVjMzljLi5lMjNhODE4MGY0OTcwYjg5N2VmYWRjODczNDJhMDRmZTQ1YTFk
ZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApA
QCAtMTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZE1vZGlm
eURPTUF0dHIoRWxlbWVudCopID0gMDsKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8
SW5zcGVjdG9yRE9NQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yU3RhdGUq
IGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFu
YWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJ
bnNwZWN0b3JET01BZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JPdmVybGF5KiBvdmVybGF5KQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JET01BZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBwYWdlQWdlbnQsIGluc3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIG92ZXJs
YXkpKTsKICAgICB9CkBAIC0yMDQsNyArMjA0LDcgQEAgcHVibGljOgogICAgIGludCBwdXNoTm9k
ZVBhdGhGb3JSZW5kZXJMYXllclRvRnJvbnRlbmQoY29uc3QgUmVuZGVyTGF5ZXIqKTsKIAogcHJp
dmF0ZToKLSAgICBJbnNwZWN0b3JET01BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJ
bnNwZWN0b3JPdmVybGF5Kik7CisgICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yT3ZlcmxheSopOwogCiAgICAgdm9pZCBzZXRT
ZWFyY2hpbmdGb3JOb2RlKEVycm9yU3RyaW5nKiwgYm9vbCBlbmFibGVkLCBJbnNwZWN0b3JPYmpl
Y3QqIGhpZ2hsaWdodENvbmZpZyk7CiAgICAgUGFzc093blB0cjxIaWdobGlnaHRDb25maWc+IGhp
Z2hsaWdodENvbmZpZ0Zyb21JbnNwZWN0b3JPYmplY3QoRXJyb3JTdHJpbmcqLCBJbnNwZWN0b3JP
YmplY3QqIGhpZ2hsaWdodEluc3BlY3Rvck9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggYzRmY2I4
MmI3YjZmYTBlMmI5YTUzYmQ0ZmFhYzYyMzYyOWQwYmU1ZS4uOTk4ZGUxZmI3MmM0MTEwNDdjNWUy
NjgwYjYzN2MxODg0ZjI0ZmU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcApAQCAtNzAsMTIgKzcwLDEyIEBAIHN0
YXRpYyBjb25zdCBjaGFyIHBhdXNlT25BbGxYSFJzW10gPSAicGF1c2VPbkFsbFhIUnMiOwogc3Rh
dGljIGNvbnN0IGNoYXIgeGhyQnJlYWtwb2ludHNbXSA9ICJ4aHJCcmVha3BvaW50cyI7CiB9CiAK
LVBhc3NPd25QdHI8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4gSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFn
ZW50LCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50LCBJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQpCitQYXNzT3duUHRyPEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ+
IEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3Rh
dGUsIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCog
ZGVidWdnZXJBZ2VudCwgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50KQogewogICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSwgZG9tQWdlbnQsIGRlYnVnZ2VyQWdlbnQsIGluc3BlY3Rv
ckFnZW50KSk7CiB9CiAKLUluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRPTURl
YnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQs
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQsIEluc3BlY3RvckFnZW50KikK
K0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQsIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQsIEluc3BlY3RvckFnZW50KikKICAgICA6
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PigiRE9NRGVidWdn
ZXIiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKICAgICAsIG1fZG9tQWdl
bnQoZG9tQWdlbnQpCiAgICAgLCBtX2RlYnVnZ2VyQWdlbnQoZGVidWdnZXJBZ2VudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5o
CmluZGV4IDJiZmZkNTgyNWI2NWU0MDc2MGUzM2FkNWYwMDg1OTJlMDUzNDkwMjcuLjliOTNhZjQ1
NWFmZTA1ODhiNGYxZjliOGMzYzI0NmU2ZTQxZTVhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaApAQCAtNTcsNyArNTcs
NyBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIGNsYXNzIEluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIsIHB1YmxpYyBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6RE9NRGVidWdnZXJDb21tYW5kSGFuZGxlciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCk7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4gY3Jl
YXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluc3BlY3RvckRPTUFn
ZW50KiwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCosIEluc3BlY3RvckFnZW50Kik7CisgICAgc3Rh
dGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4gY3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluc3BlY3RvckRPTUFnZW50
KiwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCosIEluc3BlY3RvckFnZW50Kik7CiAKICAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCk7CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNjYXJkQWdlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBJ
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JT
dGF0ZSosIEluc3BlY3RvckRPTUFnZW50KiwgSW5zcGVjdG9yRGVidWdnZXJBZ2VudCosIEluc3Bl
Y3RvckFnZW50Kik7CisgICAgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbnNwZWN0b3JET01BZ2VudCosIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQqLCBJbnNwZWN0b3JBZ2VudCopOwogCiAgICAgLy8gSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6TGlzdGVuZXIgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2
b2lkIGRlYnVnZ2VyV2FzRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAppbmRleCA0MTBhZGVjY2I3NmEyYzI3
NTk2OTUzYzdjNjcyYzQxNjA0MjdhYTJjLi5iNjIzYjA5ZmFiMTIwOTkxODM1YjBkMDkxNGQ5NjE3
NTY4ZTBhMzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50LmNwcApAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgRE9NU3Rv
cmFnZUFnZW50U3RhdGUgewogc3RhdGljIGNvbnN0IGNoYXIgZG9tU3RvcmFnZUFnZW50RW5hYmxl
ZFtdID0gImRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQiOwogfTsKIAotSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQorSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQogICAg
IDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4oIkRPTVN0b3Jh
Z2UiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1fZnJvbnRlbmQoMCkKICAg
ICAsIG1fZW5hYmxlZChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAppbmRleCAxODIyYzZhYjA5NGU3Zjk0NzkwNTFhMTNm
MjNhYThiMTU1YjhmMGNmLi5lOThlMzkyMWQwNTY4Njk1MjM3YmY5YmViMDczOGMxNDM4Yzk3MTUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5oCkBAIC01MSw3ICs1MSw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwog
CiBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFn
ZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlz
cGF0Y2hlcjo6RE9NU3RvcmFnZUNvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUpCisgICAg
c3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIHN0YXRlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpKTsKICAgICB9CkBAIC04
MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUq
KTsKKyAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
c3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CiAKICAgICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2UqIGdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklkKGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNl
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdl
bnQuY3BwCmluZGV4IDBjMjBhM2M3Y2U3YjZlNzEzMTQ1NWE1OTY3ODJhMjNkMWJiYWU0ZTMuLmU1
MzFmYjRhZTZiMDI3OGQ2Y2NiZDdiNWUyOWZkYTJhZTg3NTc5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTIxMyw3
ICsyMTMsNyBAQCB2b2lkIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNsZWFyUmVzb3VyY2VzKCkK
ICAgICBtX3Jlc291cmNlcy5jbGVhcigpOwogfQogCi1JbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSkKK0luc3BlY3RvckRhdGFiYXNlQWdlbnQ6Oklu
c3BlY3RvckRhdGFiYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQogICAgIDogSW5zcGVjdG9yQmFz
ZUFnZW50PEluc3BlY3RvckRhdGFiYXNlQWdlbnQ+KCJEYXRhYmFzZSIsIGluc3RydW1lbnRpbmdB
Z2VudHMsIHN0YXRlKQogICAgICwgbV9lbmFibGVkKGZhbHNlKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmgKaW5kZXggYzczOTlhMWU0
NDAxMjcwM2E1YmMwMjQ5YWVjNDc2ODQxODcxMzdhNi4uYzI0YTgzMDlmYmQ0NjE4NzU0MWZkMjFm
OGYxZTNmNmYyZmIxM2Y1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRhdGFiYXNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5oCkBAIC01MCw3ICs1MCw3IEBAIHR5cGVkZWYgU3RyaW5nIEVy
cm9yU3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JEYXRhYmFzZUFnZW50IDogcHVibGljIEluc3Bl
Y3RvckJhc2VBZ2VudDxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiwgcHVibGljIEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyOjpEYXRhYmFzZUNvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlKQor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRhdGFiYXNlQWdlbnQ+IGNyZWF0ZShJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVT
dGF0ZSogc3RhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3Rv
ckRhdGFiYXNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpKTsKICAgICB9CkBAIC03
Myw3ICs3Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkT3BlbkRhdGFiYXNlKFBhc3NSZWZQ
dHI8RGF0YWJhc2U+LCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZlcnNpb24pOwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJbnNwZWN0b3JE
YXRhYmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSopOworICAg
IGV4cGxpY2l0IEluc3BlY3RvckRhdGFiYXNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
c3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CiAKICAgICBEYXRhYmFzZSogZGF0YWJhc2VGb3JJZChj
b25zdCBTdHJpbmcmIGRhdGFiYXNlSWQpOwogICAgIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2Uq
IGZpbmRCeUZpbGVOYW1lKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDljZjhk
MDFjYmM2ZjJiZjU4YjFmODA5ZWZhNWFmMGMwODE5YTJhMGQuLjRiNDE4OGYwYjU5NjFlMjA5NGY1
YmRhMWEzMTdjMTAwZTkzNzE5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgc3RhdGljIGNv
bnN0IGNoYXIgcGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZVtdID0gInBhdXNlT25FeGNlcHRpb25zU3Rh
dGUiOwogCiBjb25zdCBjaGFyKiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpiYWNrdHJhY2VPYmpl
Y3RHcm91cCA9ICJiYWNrdHJhY2Utb2JqZWN0LWdyb3VwIjsKIAotSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2Ny
aXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVj
dGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgIDogSW5zcGVjdG9y
QmFzZUFnZW50PEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ+KCJEZWJ1Z2dlciIsIGluc3RydW1lbnRp
bmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIo
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9mcm9udGVuZCgwKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggMGIxOWE3
MTEyYjBlOGIzZWZhNGNlZDljNWI1ZGMwNzFkMjM4ZGI1Ni4uZTVkOTJlMzU3NWUxZjI0YmE1NDM1
ZWJiMjA3NmI3ZWU5N2QxNDgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC0xMzIsNyArMTMyLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7
CiAKIHByb3RlY3RlZDoKLSAgICBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIElu
c3BlY3RvckRlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
c3RhcnRMaXN0ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c3RvcExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAppbmRleCBjMjcy
MmZlM2E0ZDdlM2IxMTliODVkY2QyZjIwMWM4NDEwNTg4MWNhLi4zYTc4YTJiMDNmYTg3OWU4ZGEz
NTQ0ZWQ1YWMyZGI3YmMzN2MxMzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcApAQCAtNjA1LDcgKzYwNSw3IEBAIGJv
b2wgRGVsZXRlRW50cnlSZXF1ZXN0OjpkaWREZWxldGVFbnRyeSgpCiB9IC8vIGFub255bW91cyBu
YW1lc3BhY2UKIAogLy8gc3RhdGljCi1QYXNzT3duUHRyPEluc3BlY3RvckZpbGVTeXN0ZW1BZ2Vu
dD4gSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3Bl
Y3RvclN0YXRlKiBzdGF0ZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50PiBJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIHN0YXRlKQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVj
dG9yRmlsZVN5c3RlbUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgc3RhdGUp
KTsKIH0KQEAgLTcwNiw3ICs3MDYsNyBAQCB2b2lkIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6
cmVzdG9yZSgpCiAgICAgbV9lbmFibGVkID0gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihGaWxlU3lzdGVt
QWdlbnRTdGF0ZTo6ZmlsZVN5c3RlbUFnZW50RW5hYmxlZCk7CiB9CiAKLUluc3BlY3RvckZpbGVT
eXN0ZW1BZ2VudDo6SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNw
ZWN0b3JTdGF0ZSogc3RhdGUpCitJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6Okluc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0
YXRlKQogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudD4o
IkZpbGVTeXN0ZW0iLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkKICAgICAsIG1fcGFnZUFn
ZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZW5hYmxlZChmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaAppbmRleCA0MzNiYWI4
YzViMzY0ODY1ZGRiYWQ3MWNmZDQwMmEyYjFiMWEyOWQ4Li5iZWIyYzk5NTczNzdhMTI5ZjczN2Jj
NTBjOWEyZjAzMGUzMjNkZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFNlY3Vy
aXR5T3JpZ2luOwogCiBjbGFzcyBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQgOiBwdWJsaWMgSW5z
cGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudD4sIHB1YmxpYyBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcjo6RmlsZVN5c3RlbUNvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IGNyZWF0ZShJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUq
KTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ+IGNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqKTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQoKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKSBPVkVSUklERTsKQEAgLTYz
LDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCkgT1ZFUlJJREU7
CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50KEluc3RydW1lbnRpbmdB
Z2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0ZSopOworICAgIEluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFn
ZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKICAgICBib29sIGFzc2VydEVuYWJsZWQo
RXJyb3JTdHJpbmcqKTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBhc3NlcnRTY3JpcHRF
eGVjdXRpb25Db250ZXh0Rm9yT3JpZ2luKEVycm9yU3RyaW5nKiwgU2VjdXJpdHlPcmlnaW4qKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWRE
QkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5jcHAKaW5kZXggNGEyODNmYTA5NTllYWYwYjE0MTA0MzZkNjNiZGU3OWY4OTdiOGYzYi4u
NTA4OTdjZGMwMDI0MjM4ZmY2NTY3NzlkMmNmNWIzYWVhMjcwYmU0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC01
NTYsNyArNTU2LDcgQEAgcHVibGljOgogCiB9IC8vIG5hbWVzcGFjZQogCi1JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudDo6SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdl
QWdlbnQpCitJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9z
aXRlU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFu
YWdlciwgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCiAgICAgOiBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ+KCJJbmRleGVkREIiLCBpbnN0cnVtZW50aW5n
QWdlbnRzLCBzdGF0ZSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKICAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKaW5kZXggZDFkN2Mz
N2QzYTNiMzcxOTVlNTdhMjBkYTg5MzExODA2YTYwNDUzMS4uODIyYTMxNTI3ZTdkYTk4NmI1MWMz
MDEyOWI4ODQ5OWQwNmIwNjA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgdHlwZWRlZiBTdHJp
bmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckluZGV4ZWREQkFnZW50IDogcHVibGlj
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JJbmRleGVkREJBZ2VudD4sIHB1YmxpYyBJbnNw
ZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6SW5kZXhlZERCQ29tbWFuZEhhbmRsZXIgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckluZGV4ZWREQkFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUq
IHN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5z
cGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0
TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdl
ciwgcGFnZUFnZW50KSk7CiAgICAgfQpAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3REYXRhKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlk
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5h
bWUsIGNvbnN0IFN0cmluZyYgaW5kZXhOYW1lLCBpbnQgc2tpcENvdW50LCBpbnQgcGFnZVNpemUs
IGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxSZXF1
ZXN0RGF0YUNhbGxiYWNrPik7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CisgICAgSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yUGFnZUFnZW50Kik7CiAKICAgICBJbmplY3RlZFNj
cmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIEluc3BlY3RvclBhZ2VB
Z2VudCogbV9wYWdlQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5wdXRBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5wdXRBZ2VudC5jcHAKaW5kZXggMTkyZmI3OWRhYjQzMTBhZWQzMzA1ZDQ1NTY1Yzk2MWU3
NmUxODRiZC4uYzMwZTM2YjQ1OWEwMWUwZTcxYWE3MmNjNzg3ZjFhNzgzZDc3ZmUxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmNwcApAQCAt
NTEsNyArNTEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUluc3BlY3RvcklucHV0QWdl
bnQ6Okluc3BlY3RvcklucHV0QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlLCBQYWdlKiBwYWdlKQorSW5z
cGVjdG9ySW5wdXRBZ2VudDo6SW5zcGVjdG9ySW5wdXRBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9y
U3RhdGUsIFBhZ2UqIHBhZ2UpCiAgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9ySW5w
dXRBZ2VudD4oIklucHV0IiwgaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUpCiAg
ICAgLCBtX3BhZ2UocGFnZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnB1dEFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5wdXRBZ2VudC5oCmluZGV4IDgzNzdmODE3M2EzY2QzMDEyMjA3MDZkMTBkN2U4M2UwNTQ1
NTEwN2QuLjMyNmJlNzYzMDQyMzY2ZTBkNjE1OGNjODAyMDI1ODA3NzE4YmMzMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnB1dEFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcklucHV0QWdlbnQuaApAQCAtNDgsNyAr
NDgsNyBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIGNsYXNzIEluc3BlY3RvcklucHV0
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvcklucHV0QWdlbnQ+LCBw
dWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OklucHV0Q29tbWFuZEhhbmRsZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvcklucHV0QWdlbnQpOwogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvcklucHV0QWdlbnQ+IGNyZWF0ZShJbnN0cnVt
ZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVj
dG9yU3RhdGUsIFBhZ2UqIHBhZ2UpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9ySW5w
dXRBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgUGFnZSogcGFnZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9ySW5wdXRBZ2VudChpbnN0
cnVtZW50aW5nQWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSwgcGFnZSkpOwogICAgIH0KQEAgLTYwLDcg
KzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1vdXNlRXZlbnQoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHR5cGUsIGludCB4LCBpbnQgeSwgY29uc3QgaW50KiBt
b2RpZmllcnMsIGNvbnN0IGRvdWJsZSogdGltZXN0YW1wLCBjb25zdCBTdHJpbmcqIGJ1dHRvbiwg
Y29uc3QgaW50KiBjbGlja0NvdW50KTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JJbnB1dEFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIFBhZ2UqKTsKKyAgICBJ
bnNwZWN0b3JJbnB1dEFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZSosIFBhZ2UqKTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmNwcAppbmRleCA2
ODBlZTJmNzFkZjJkOWY3OGM2YTE0OTdmMTQ0NGEyZWY0NmQwMmE2Li5mNTU4M2M4YTM1YWY5MDlh
Zjc3NDQxMzQ4YTBmMGFjM2NjYzZlNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2VudC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgbmFt
ZXNwYWNlIExheWVyVHJlZUFnZW50U3RhdGUgewogc3RhdGljIGNvbnN0IGNoYXIgbGF5ZXJUcmVl
QWdlbnRFbmFibGVkW10gPSAibGF5ZXJUcmVlQWdlbnRFbmFibGVkIjsKIH07CiAKLUluc3BlY3Rv
ckxheWVyVHJlZUFnZW50OjpJbnNwZWN0b3JMYXllclRyZWVBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIFBhZ2UqIHBh
Z2UpCitJbnNwZWN0b3JMYXllclRyZWVBZ2VudDo6SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqIHN0YXRlLCBQYWdlKiBwYWdlKQogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3Bl
Y3RvckxheWVyVHJlZUFnZW50PigiTGF5ZXJUcmVlIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgc3Rh
dGUpCiAgICAgLCBtX2luc3BlY3RlZFBhZ2UocGFnZSkKICAgICAsIG1fZnJvbnRlbmQoMCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgK
aW5kZXggNjcxMWI4NjUyMDhmYWM0MDU2Zjc1Y2FiN2NjZTIxOTNmZDJlMmIwMS4uNDczMjBkZmMy
NzM2YWNiNzNkYjNlZjgwOWYxZWM0ZjRmM2ZiNDQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckxheWVyVHJlZUFnZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAg
dHlwZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvckxheWVyVHJlZUFn
ZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JMYXllclRyZWVBZ2VudD4s
IHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6TGF5ZXJUcmVlQ29tbWFuZEhhbmRs
ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckxheWVyVHJlZUFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yU3RhdGUqIHN0YXRlLCBQYWdlKiBwYWdlKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElu
c3BlY3RvckxheWVyVHJlZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBQYWdlKiBwYWdl
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JMYXllclRyZWVB
Z2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgcGFnZSkpOwogICAgIH0KQEAgLTcxLDcg
KzcxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBub2RlSWRGb3JMYXllcklkKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBsYXllcklkLCBpbnQqIHJlc3VsdE5vZGVJZCk7CiAKIHBy
aXZhdGU6Ci0gICAgSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvclN0YXRlKiwgUGFnZSopOworICAgIEluc3BlY3RvckxheWVyVHJlZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIFBhZ2UqKTsKIAog
ICAgIC8vIFJlbmRlckxheWVyLXJlbGF0ZWQgbWV0aG9kcy4KICAgICBTdHJpbmcgYmluZChjb25z
dCBSZW5kZXJMYXllciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvck1lbW9yeUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JNZW1vcnlBZ2VudC5jcHAKaW5kZXggNWI2ZWY0NTczYWZkNDBkYmU2ZjljN2VmNzJjNTQ5Mjhk
MjY5YTdiZC4uMzIyOTJjOGQ1YjgwOWQwMzhmNWI1YWFkNzEwM2Y2M2I1MWZhNDljMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yTWVtb3J5QWdlbnQuY3BwCkBA
IC01ODUsNyArNTg1LDcgQEAgdm9pZCBJbnNwZWN0b3JNZW1vcnlBZ2VudDo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1l
bWJlcihtX3BhZ2UpOwogfQogCi1JbnNwZWN0b3JNZW1vcnlBZ2VudDo6SW5zcGVjdG9yTWVtb3J5
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
Q2xpZW50KiBjbGllbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgUGFnZSogcGFnZSkKK0luc3Bl
Y3Rvck1lbW9yeUFnZW50OjpJbnNwZWN0b3JNZW1vcnlBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqIHN0YXRlLCBQYWdlKiBwYWdlKQogICAgIDogSW5zcGVjdG9yQmFzZUFn
ZW50PEluc3BlY3Rvck1lbW9yeUFnZW50PigiTWVtb3J5IiwgaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUpCiAgICAgLCBtX2luc3BlY3RvckNsaWVudChjbGllbnQpCiAgICAgLCBtX3BhZ2UocGFn
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JNZW1vcnlB
Z2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgK
aW5kZXggYmQzMzY1YmM3MmEzYWQ1YWM2OGM2MzFhMzMyZDU5NjdhMmFjMTA5Ni4uMTQ3Y2ZkYTMw
OGZkMDFlNWYyNWE4YTI5ZDVmNTdmMTVmNzRhZTk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvck1lbW9yeUFnZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3Mg
SW5zcGVjdG9yTWVtb3J5QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3Rv
ck1lbW9yeUFnZW50PiwgcHUKIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3RvcjxPd25QdHI8SW5z
cGVjdG9yQmFzZUFnZW50SW50ZXJmYWNlPiA+IEluc3BlY3RvckFnZW50czsKIAotICAgIHN0YXRp
YyBQYXNzT3duUHRyPEluc3BlY3Rvck1lbW9yeUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3Bl
Y3RvclN0YXRlKiBzdGF0ZSwgUGFnZSogcGFnZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNw
ZWN0b3JNZW1vcnlBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0
ZSogc3RhdGUsIFBhZ2UqIHBhZ2UpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEluc3BlY3Rvck1lbW9yeUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGNsaWVudCwgc3RhdGUs
IHBhZ2UpKTsKICAgICB9CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRl
OgotICAgIEluc3BlY3Rvck1lbW9yeUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0
b3JDbGllbnQqLCBJbnNwZWN0b3JTdGF0ZSosIFBhZ2UqKTsKKyAgICBJbnNwZWN0b3JNZW1vcnlB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ2xpZW50KiwgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqLCBQYWdlKik7CiAKICAgICBJbnNwZWN0b3JDbGllbnQqIG1faW5zcGVjdG9y
Q2xpZW50OwogICAgIFBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggZjc1MmE1NjYzOTU2NGJlZmM2OWRmMWE4MWM5
NDhkODA2ZGFiNDk1ZC4uM2ZiYjAzN2ZjMTZhYjZiMmNhYWY0MTI0ZDhmYTBlZDE3N2YyYzhlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAK
QEAgLTIzNiw3ICsyMzYsNyBAQCBib29sIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGF0YUNvbnRlbnQo
Y29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgc2l6ZSwgY29uc3QgU3RyaQogICAgIHJldHVybiBk
ZWNvZGVCdWZmZXIoZGF0YSwgc2l6ZSwgdGV4dEVuY29kaW5nTmFtZSwgcmVzdWx0KTsKIH0KIAot
UGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+IEluc3BlY3RvclBhZ2VBZ2VudDo6Y3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFBhZ2UqIHBhZ2UsIElu
c3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yQ2xpZW50
KiBjbGllbnQsIEluc3BlY3Rvck92ZXJsYXkqIG92ZXJsYXkpCitQYXNzT3duUHRyPEluc3BlY3Rv
clBhZ2VBZ2VudD4gSW5zcGVjdG9yUGFnZUFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSogcGFnZSwgSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0
TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwg
SW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IElu
c3BlY3RvclBhZ2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlLCBpbnNwZWN0b3JBZ2Vu
dCwgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlciwgY2xpZW50LCBvdmVybGF5KSk7CiB9CkBA
IC0zMjMsNyArMzIzLDcgQEAgVHlwZUJ1aWxkZXI6OlBhZ2U6OlJlc291cmNlVHlwZTo6RW51bSBJ
bnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlVHlwZUpzb24KICAgICByZXR1cm4gcmVz
b3VyY2VUeXBlSnNvbihjYWNoZWRSZXNvdXJjZVR5cGUoY2FjaGVkUmVzb3VyY2UpKTsKIH0KIAot
SW5zcGVjdG9yUGFnZUFnZW50OjpJbnNwZWN0b3JQYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgUGFnZSogcGFnZSwgSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50LCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0
TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwg
SW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkKK0luc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9y
UGFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFBhZ2Uq
IHBhZ2UsIEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqIGluc3BlY3RvclN0YXRlLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2Ny
aXB0TWFuYWdlciwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3Rvck92ZXJsYXkqIG92
ZXJsYXkpCiAgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUGFnZUFnZW50PigiUGFn
ZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQogICAgICwgbV9wYWdlKHBh
Z2UpCiAgICAgLCBtX2luc3BlY3RvckFnZW50KGluc3BlY3RvckFnZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGE5N2MxOTFmNDJjN2Fl
ZDgyNTc1Mzc4NjMzZGJmYTJlMzVhZTA3ZmQuLmFjNzU5NDY1OTRmNmZlYTIzZDFiYTY3NjkzNzMz
MDliZThkMmQ2MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmgKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgICAgICBPdGhlclJlc291cmNl
CiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclBhZ2VBZ2VudD4gY3Jl
YXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdlKiwgSW5zcGVjdG9yQWdlbnQqLCBJbnNwZWN0
b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIEluc3BlY3RvckNsaWVudCosIEluc3Bl
Y3Rvck92ZXJsYXkqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQYWdlQWdlbnQ+
IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFnZSosIEluc3BlY3RvckFnZW50KiwgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JD
bGllbnQqLCBJbnNwZWN0b3JPdmVybGF5Kik7CiAKICAgICBzdGF0aWMgYm9vbCBjYWNoZWRSZXNv
dXJjZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2UqLCBTdHJpbmcqIHJlc3VsdCwgYm9vbCogYmFzZTY0
RW5jb2RlZCk7CiAgICAgc3RhdGljIGJvb2wgc2hhcmVkQnVmZmVyQ29udGVudChQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4sIGNvbnN0IFN0cmluZyYgdGV4dEVuY29kaW5nTmFtZSwgYm9vbCB3aXRo
QmFzZTY0RW5jb2RlLCBTdHJpbmcqIHJlc3VsdCk7CkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBEb2N1bWVudExvYWRlciogYXNzZXJ0RG9jdW1lbnRMb2FkZXIoRXJyb3JT
dHJpbmcqLCBGcmFtZSopOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvclBhZ2VBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgUGFnZSosIEluc3BlY3RvckFnZW50KiwgSW5zcGVjdG9yU3RhdGUq
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JDbGllbnQqLCBJbnNwZWN0b3JPdmVy
bGF5Kik7CisgICAgSW5zcGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYWdl
KiwgSW5zcGVjdG9yQWdlbnQqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2Ny
aXB0TWFuYWdlciosIEluc3BlY3RvckNsaWVudCosIEluc3BlY3Rvck92ZXJsYXkqKTsKICAgICB2
b2lkIHVwZGF0ZVZpZXdNZXRyaWNzKGludCwgaW50LCBkb3VibGUsIGJvb2wpOwogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCiAgICAgdm9pZCB1cGRhdGVUb3VjaEV2ZW50RW11bGF0aW9uSW5QYWdl
KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBy
b2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2Zp
bGVyQWdlbnQuY3BwCmluZGV4IDFhZThkMWZlNjg1OWU0MDY3N2JhYjNhZTI5ZDkzNGZlOGQ1ZDlj
MzIuLmM1YzBhMjIxM2U4M2I4MWZiYTlhMzA4ODM3OTdiOTY4ZjlmYmEwM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKQEAg
LTcxLDcgKzcxLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IEhlYXBQcm9maWxlVHlwZSA9
ICJIRUFQIjsKIAogY2xhc3MgUGFnZVByb2ZpbGVyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudCB7CiBwdWJsaWM6Ci0gICAgUGFnZVByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25z
b2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgUGFnZVByb2Zp
bGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVj
dG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCiAgICAgICAgIDogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIp
LCBtX2luc3BlY3RlZFBhZ2UoaW5zcGVjdGVkUGFnZSkgeyB9CiAgICAgdmlydHVhbCB+UGFnZVBy
b2ZpbGVyQWdlbnQoKSB7IH0KIApAQCAtOTQsNyArOTQsNyBAQCBwcml2YXRlOgogICAgIFBhZ2Uq
IG1faW5zcGVjdGVkUGFnZTsKIH07CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBQ
YWdlKiBpbnNwZWN0ZWRQYWdlLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIEluamVj
dGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorUGFzc093blB0cjxJbnNw
ZWN0b3JQcm9maWxlckFnZW50PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50
KiBjb25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UsIEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlw
dE1hbmFnZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlUHJvZmlsZXJBZ2VudChp
bnN0cnVtZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIGluc3BlY3RlZFBhZ2UsIGluc3BlY3Rv
clN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKIH0KQEAgLTEwMiw3ICsxMDIsNyBAQCBQ
YXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6
OmNyZWF0ZShJbnN0cnVtZW50aW5nQQogI2lmIEVOQUJMRShXT1JLRVJTKQogY2xhc3MgV29ya2Vy
UHJvZmlsZXJBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JQcm9maWxlckFnZW50IHsKIHB1YmxpYzoK
LSAgICBXb3JrZXJQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBXb3JrZXJDb250
ZXh0KiB3b3JrZXJDb250ZXh0LCBJbnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0
TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIFdvcmtlclByb2ZpbGVyQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29s
ZUFnZW50KiBjb25zb2xlQWdlbnQsIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQsIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCiAgICAgICAgIDogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBjb25zb2xlQWdlbnQsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIp
LCBtX3dvcmtlckNvbnRleHQod29ya2VyQ29udGV4dCkgeyB9CiAgICAgdmlydHVhbCB+V29ya2Vy
UHJvZmlsZXJBZ2VudCgpIHsgfQogCkBAIC0xMjIsMTMgKzEyMiwxMyBAQCBwcml2YXRlOgogICAg
IFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsKIH07CiAKLVBhc3NPd25QdHI8SW5zcGVj
dG9yUHJvZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCog
Y29uc29sZUFnZW50LCBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0LCBJbnNwZWN0b3JTdGF0
ZSogaW5zcGVjdG9yU3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKQorUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxlckFnZW50PiBJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50
cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIFdvcmtlckNvbnRleHQqIHdv
cmtlckNvbnRleHQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiB7CiAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBXb3JrZXJQcm9maWxlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGNv
bnNvbGVBZ2VudCwgd29ya2VyQ29udGV4dCwgaW5zcGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0
TWFuYWdlcikpOwogfQogI2VuZGlmCiAKLUluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3Rv
clByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywg
SW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQsIEluc3BlY3RvclN0YXRlKiBpbnNw
ZWN0b3JTdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIp
CitJbnNwZWN0b3JQcm9maWxlckFnZW50OjpJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1l
bnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCog
Y29uc29sZUFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgIDogSW5zcGVj
dG9yQmFzZUFnZW50PEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+KCJQcm9maWxlciIsIGluc3RydW1l
bnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlKQogICAgICwgbV9jb25zb2xlQWdlbnQoY29uc29s
ZUFnZW50KQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2Zp
bGVyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50LmgKaW5kZXggMjA4YTNkZjQ2N2Q1NmMxMDlhNjE2MWQ0MzNjNDc5M2IzYjI1NzEyYS4uNzZm
M2RjNjdmNjczNjMxNWVhMWRhOTc4OGNlYWI4YWZlOWI1MWY2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCkBAIC01OSw5ICs1OSw5
IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4s
IHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6UHJvZmlsZXJDb21tYW5kSGFuZGxl
ciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yQ29uc29sZUFnZW50KiwgUGFnZSosIEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yUHJvZmlsZXJBZ2VudD4g
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBQYWdl
KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKICNp
ZiBFTkFCTEUoV09SS0VSUykKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JQcm9maWxl
ckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dCosIFdvcmtlckNvbnRleHQqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdl
ciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgV29ya2VyQ29u
dGV4dCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7
CiAjZW5kaWYKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JQcm9maWxlckFnZW50KCk7CiAKQEAgLTEw
Niw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQcm9jZXNzVGFzaygpOwogCiBwcm90
ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwg
SW5zcGVjdG9yQ29uc29sZUFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1h
bmFnZXIqKTsKKyAgICBJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMq
LCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVj
dGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2ZpbGluZyhjb25z
dCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcmlwdFByb2Zp
bGU+IHN0b3BQcm9maWxpbmcoY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXgg
YTNhZWM5YWE1ZjFmZTJiYWY1ODkzODY3MDg2MGVkNDQ5Y2JlNGYzMC4uNTZlMmU4YTcwZmExYzBh
ZDVhNDU5ZGZhYjU4MjI5MTg1NjNlMWI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtNjg1LDcgKzY4NSw3IEBAIHZv
aWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mCiAgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVJlY2FsY3Vs
YXRpb25Jbml0aWF0b3IpOwogfQogCi1JbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5z
cGVjdG9yU3RhdGUqIHN0YXRlKQorSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVz
b3VyY2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNw
ZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50PigiTmV0d29yayIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRl
KQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgK
aW5kZXggMDZjOWVhYmEyZDEyMjQxMjZmZDFjN2Q2ZjIxY2NiZjU1YTQ4N2I5Ny4uNDFjNWE0OTlm
ZTA1ODhhOWEzNGY5NmZiYzhjNzIzZTcxMjQ0MGNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC04Miw3ICs4Miw3IEBAIHR5
cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JSZXNvdXJjZUFnZW50PiwgcHVi
bGljIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpOZXR3b3JrQ29tbWFuZEhhbmRsZXIgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclJlc291cmNlQWdlbnQ+IGNy
ZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQ
YWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQsIEluc3BlY3RvclN0
YXRlKiBzdGF0ZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JSZXNvdXJjZUFnZW50
PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVj
dG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNsaWVudCogY2xpZW50LCBJbnNwZWN0
b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IEluc3BlY3RvclJlc291cmNlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgcGFnZUFnZW50
LCBjbGllbnQsIHN0YXRlKSk7CiAgICAgfQpAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZSgp
OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gcmVzdG9y
ZShQYWdlKiwgSW5zcGVjdG9yU3RhdGUqLCBJbnNwZWN0b3JGcm9udGVuZCopOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3RvclJlc291cmNlQWdlbnQ+IHJlc3RvcmUoUGFnZSosIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5zcGVjdG9yRnJvbnRlbmQqKTsKIAogICAgIH5JbnNwZWN0
b3JSZXNvdXJjZUFnZW50KCk7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVS
UklERTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JSZXNvdXJjZUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JDbGllbnQqLCBJbnNwZWN0
b3JTdGF0ZSopOworICAgIEluc3BlY3RvclJlc291cmNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3RvckNsaWVudCosIEluc3BlY3RvckNvbXBv
c2l0ZVN0YXRlKik7CiAKICAgICB2b2lkIGVuYWJsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4IDliMGQyZDcyZWNk
YzVjYWVlNzAxYWRmMjFjM2JkZGU5NTZmMDExZTcuLjA2OTU5OTYyN2NkZDdiOGJmYjFiN2VlNDNj
MzE0ODQzZTM2MTgxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHN0YXRpYyBib29sIGFzQm9v
bChjb25zdCBib29sKiBjb25zdCBiKQogICAgIHJldHVybiBiID8gKmIgOiBmYWxzZTsKIH0KIAot
SW5zcGVjdG9yUnVudGltZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK0luc3BlY3RvclJ1bnRp
bWVBZ2VudDo6SW5zcGVjdG9yUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBJbnNwZWN0b3JCYXNl
QWdlbnQ8SW5zcGVjdG9yUnVudGltZUFnZW50PigiUnVudGltZSIsIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIHN0YXRlKQogICAgICwgbV9lbmFibGVkKGZhbHNlKQogICAgICwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IDM2MmYyYmQxM2NhZjAzYjNkMThm
NzM1ZjA4NjEyMWNjNGJkNzBiNWIuLmMzY2YyODJhMDNkY2EyZDZiMmUzYjEzYjlhYjNiMmVjYTQ3
YTQ1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmgKQEAgLTkwLDcgKzkwLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoK
LSAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3Rv
clN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgSW5zcGVjdG9yUnVudGltZUFn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVj
dGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuY3BwCmluZGV4IDY3NWQ0OTlkMWY1ZDI2ZWQx
ZDI3NDc2NDcxNWZhZTNjMjY2ZmI1NjMuLmM1Mzg2MGRiODhjZmNkMjQ3MzcyZDRlMWRhOWMzYzIx
ZTZlMzYxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0YXRlLmNw
cApAQCAtMzYsMzcgKzM2LDIxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zcGVjdG9y
U3RhdGU6Okluc3BlY3RvclN0YXRlKEluc3BlY3RvclN0YXRlQ2xpZW50KiBjbGllbnQpCi0gICAg
OiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX3Byb3BlcnRpZXMoSW5zcGVjdG9yT2JqZWN0Ojpj
cmVhdGUoKSkKLSAgICAsIG1faXNPbk11dGUoZmFsc2UpCitJbnNwZWN0b3JTdGF0ZTo6SW5zcGVj
dG9yU3RhdGUoSW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0ZW5lciogbGlzdGVuZXIsIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBwcm9wZXJ0aWVzKQorICAgIDogbV9saXN0ZW5lcihsaXN0ZW5l
cikKKyAgICAsIG1fcHJvcGVydGllcyhwcm9wZXJ0aWVzKQogewogfQogCi12b2lkIEluc3BlY3Rv
clN0YXRlOjpsb2FkRnJvbUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvclN0YXRlQ29va2ll
KQotewotICAgIG1fcHJvcGVydGllcy5jbGVhcigpOwotICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1
ZT4gY29va2llID0gSW5zcGVjdG9yVmFsdWU6OnBhcnNlSlNPTihpbnNwZWN0b3JTdGF0ZUNvb2tp
ZSk7Ci0gICAgaWYgKGNvb2tpZSkKLSAgICAgICAgbV9wcm9wZXJ0aWVzID0gY29va2llLT5hc09i
amVjdCgpOwotICAgIGlmICghbV9wcm9wZXJ0aWVzKQotICAgICAgICBtX3Byb3BlcnRpZXMgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotfQotCi12b2lkIEluc3BlY3RvclN0YXRlOjptdXRl
KCkKLXsKLSAgICBtX2lzT25NdXRlID0gdHJ1ZTsKLX0KLQotdm9pZCBJbnNwZWN0b3JTdGF0ZTo6
dW5tdXRlKCkKK3ZvaWQgSW5zcGVjdG9yU3RhdGU6OnVwZGF0ZUNvb2tpZSgpCiB7Ci0gICAgbV9p
c09uTXV0ZSA9IGZhbHNlOworICAgIGlmIChtX2xpc3RlbmVyKQorICAgICAgICBtX2xpc3RlbmVy
LT5pbnNwZWN0b3JTdGF0ZVVwZGF0ZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JTdGF0ZTo6dXBk
YXRlQ29va2llKCkKK3ZvaWQgSW5zcGVjdG9yU3RhdGU6OnNldEZyb21Db29raWUoUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IHByb3BlcnRpZXMpCiB7Ci0gICAgaWYgKG1fY2xpZW50ICYmICFt
X2lzT25NdXRlICYmIG1fY2xpZW50LT5zdXBwb3J0c0luc3BlY3RvclN0YXRlVXBkYXRlcygpKQot
ICAgICAgICBtX2NsaWVudC0+dXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUobV9wcm9wZXJ0aWVz
LT50b0pTT05TdHJpbmcoKSk7CisgICAgbV9wcm9wZXJ0aWVzID0gcHJvcGVydGllczsKIH0KIAog
dm9pZCBJbnNwZWN0b3JTdGF0ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUs
IFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHZhbHVlKQpAQCAtNzgsNiArNjIsNyBAQCB2b2lk
IEluc3BlY3RvclN0YXRlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgUGFz
c1JlZlB0cjxJbnNwZWN0b3JWYQogdm9pZCBJbnNwZWN0b3JTdGF0ZTo6cmVtb3ZlKGNvbnN0IFN0
cmluZyYgcHJvcGVydHlOYW1lKQogewogICAgIG1fcHJvcGVydGllcy0+cmVtb3ZlKHByb3BlcnR5
TmFtZSk7CisgICAgdXBkYXRlQ29va2llKCk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yU3RhdGU6Omdl
dEJvb2xlYW4oY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCkBAIC0xMjYsNiArMTExLDUzIEBA
IFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JTdGF0ZTo6Z2V0T2JqZWN0KGNv
bnN0IFN0cmluZyYgcHJvcGVydHlOYW1lCiAgICAgcmV0dXJuIGl0LT52YWx1ZS0+YXNPYmplY3Qo
KTsKIH0KIAorSW5zcGVjdG9yU3RhdGUqIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOjpjcmVhdGVB
Z2VudFN0YXRlKGNvbnN0IFN0cmluZyYgYWdlbnROYW1lKQoreworICAgIEFTU0VSVChtX3N0YXRl
T2JqZWN0LT5maW5kKGFnZW50TmFtZSkgPT0gbV9zdGF0ZU9iamVjdC0+ZW5kKCkpOworICAgIEFT
U0VSVChtX2luc3BlY3RvclN0YXRlTWFwLmZpbmQoYWdlbnROYW1lKSA9PSBtX2luc3BlY3RvclN0
YXRlTWFwLmVuZCgpKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzdGF0ZVByb3BlcnRp
ZXMgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIG1fc3RhdGVPYmplY3QtPnNldE9i
amVjdChhZ2VudE5hbWUsIHN0YXRlUHJvcGVydGllcyk7CisgICAgT3duUHRyPEluc3BlY3RvclN0
YXRlPiBzdGF0ZVB0ciA9IGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JTdGF0ZSh0aGlzLCBzdGF0ZVBy
b3BlcnRpZXMpKTsKKyAgICBJbnNwZWN0b3JTdGF0ZSogc3RhdGUgPSBzdGF0ZVB0ci5nZXQoKTsK
KyAgICBtX2luc3BlY3RvclN0YXRlTWFwLmFkZChhZ2VudE5hbWUsIHN0YXRlUHRyLnJlbGVhc2Uo
KSk7CisgICAgcmV0dXJuIHN0YXRlOworfQorCit2b2lkIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
Ojpsb2FkRnJvbUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvckNvbXBvc2l0ZVN0YXRlQ29v
a2llKQoreworICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gY29va2llID0gSW5zcGVjdG9yVmFs
dWU6OnBhcnNlSlNPTihpbnNwZWN0b3JDb21wb3NpdGVTdGF0ZUNvb2tpZSk7CisgICAgaWYgKGNv
b2tpZSkKKyAgICAgICAgbV9zdGF0ZU9iamVjdCA9IGNvb2tpZS0+YXNPYmplY3QoKTsKKyAgICBp
ZiAoIW1fc3RhdGVPYmplY3QpCisgICAgICAgIG1fc3RhdGVPYmplY3QgPSBJbnNwZWN0b3JPYmpl
Y3Q6OmNyZWF0ZSgpOworCisgICAgSW5zcGVjdG9yU3RhdGVNYXA6Oml0ZXJhdG9yIGVuZCA9IG1f
aW5zcGVjdG9yU3RhdGVNYXAuZW5kKCk7CisgICAgZm9yIChJbnNwZWN0b3JTdGF0ZU1hcDo6aXRl
cmF0b3IgaXQgPSBtX2luc3BlY3RvclN0YXRlTWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkg
eworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBhZ2VudFN0YXRlT2JqZWN0ID0gbV9z
dGF0ZU9iamVjdC0+Z2V0T2JqZWN0KGl0LT5rZXkpOworICAgICAgICBpZiAoIWFnZW50U3RhdGVP
YmplY3QpIHsKKyAgICAgICAgICAgIGFnZW50U3RhdGVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOworICAgICAgICAgICAgbV9zdGF0ZU9iamVjdC0+c2V0T2JqZWN0KGl0LT5rZXks
IGFnZW50U3RhdGVPYmplY3QpOworICAgICAgICB9CisgICAgICAgIGl0LT52YWx1ZS0+c2V0RnJv
bUNvb2tpZShhZ2VudFN0YXRlT2JqZWN0KTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGU6Om11dGUoKQoreworICAgIG1faXNNdXRlZCA9IHRydWU7Cit9CisKK3ZvaWQg
SW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU6OnVubXV0ZSgpCit7CisgICAgbV9pc011dGVkID0gZmFs
c2U7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGU6Omluc3BlY3RvclN0YXRlVXBk
YXRlZCgpCit7CisgICAgaWYgKG1fY2xpZW50ICYmICFtX2lzTXV0ZWQgJiYgbV9jbGllbnQtPnN1
cHBvcnRzSW5zcGVjdG9yU3RhdGVVcGRhdGVzKCkpCisgICAgICAgIG1fY2xpZW50LT51cGRhdGVJ
bnNwZWN0b3JTdGF0ZUNvb2tpZShtX3N0YXRlT2JqZWN0LT50b0pTT05TdHJpbmcoKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3RhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0ZS5oCmluZGV4IDNkYzA5MGFiZDk1
MzdjZmFiNjUwN2U1MmU4MmZmZTI3YWVmNDFjNzkuLjFlYTVkZjU3MjM5MDk0ZDU3NzY4NTk5MGNl
YWI2YzI1YmZlM2UxZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdGF0
ZS5oCkBAIC00MiwxMCArNDIsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnNw
ZWN0b3JTdGF0ZUNsaWVudDsKIAorY2xhc3MgSW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0ZW5lciB7
CitwdWJsaWM6CisgICAgdmlydHVhbCB+SW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0ZW5lcigpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JTdGF0ZVVwZGF0ZWQoKSA9IDA7Cit9OworCiBj
bGFzcyBJbnNwZWN0b3JTdGF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgSW5zcGVjdG9yU3RhdGUoSW5zcGVjdG9yU3RhdGVDbGllbnQqKTsKKyAgICBJbnNw
ZWN0b3JTdGF0ZShJbnNwZWN0b3JTdGF0ZVVwZGF0ZUxpc3RlbmVyKiwgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+KTsKICAgICB2aXJ0dWFsIH5JbnNwZWN0b3JTdGF0ZSgpIHt9CiAKICAgICB2
b2lkIGxvYWRGcm9tQ29va2llKGNvbnN0IFN0cmluZyYgaW5zcGVjdG9yU3RhdGVDb29raWUpOwpA
QCAtNzAsOSArNzYsNDEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUNvb2tpZSgpOwogICAg
IHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIFBhc3NSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+KTsKIAotICAgIEluc3BlY3RvclN0YXRlQ2xpZW50KiBtX2NsaWVudDsKKyAg
ICAvLyBHZXRzIGNhbGxlZCBmcm9tIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOjpsb2FkRnJvbUNv
b2tpZSgpLgorICAgIHZvaWQgc2V0RnJvbUNvb2tpZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4pOworCisgICAgZnJpZW5kIGNsYXNzIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlOworCisgICAg
SW5zcGVjdG9yU3RhdGVVcGRhdGVMaXN0ZW5lciogbV9saXN0ZW5lcjsKICAgICBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBtX3Byb3BlcnRpZXM7Ci0gICAgYm9vbCBtX2lzT25NdXRlOworfTsKKwor
Y2xhc3MgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUgOiBwdWJsaWMgSW5zcGVjdG9yU3RhdGVVcGRh
dGVMaXN0ZW5lciB7CitwdWJsaWM6CisgICAgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUoSW5zcGVj
dG9yU3RhdGVDbGllbnQqIGluc3BlY3RvckNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVudChpbnNw
ZWN0b3JDbGllbnQpCisgICAgICAgICwgbV9zdGF0ZU9iamVjdChJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpKQorICAgICAgICAsIG1faXNNdXRlZChmYWxzZSkKKyAgICB7CisgICAgfQorICAgIHZp
cnR1YWwgfkluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKCkgeyB9CisKKyAgICB2b2lkIG11dGUoKTsK
KyAgICB2b2lkIHVubXV0ZSgpOworCisgICAgSW5zcGVjdG9yU3RhdGUqIGNyZWF0ZUFnZW50U3Rh
dGUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBsb2FkRnJvbUNvb2tpZShjb25zdCBTdHJpbmcm
KTsKKworcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBPd25QdHI8SW5zcGVj
dG9yU3RhdGU+ID4gSW5zcGVjdG9yU3RhdGVNYXA7CisKKyAgICAvLyBGcm9tIEluc3BlY3RvclN0
YXRlVXBkYXRlTGlzdGVuZXIuCisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvclN0YXRlVXBkYXRl
ZCgpOworCisgICAgSW5zcGVjdG9yU3RhdGVDbGllbnQqIG1fY2xpZW50OworICAgIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IG1fc3RhdGVPYmplY3Q7CisgICAgYm9vbCBtX2lzTXV0ZWQ7CisgICAg
SW5zcGVjdG9yU3RhdGVNYXAgbV9pbnNwZWN0b3JTdGF0ZU1hcDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcAppbmRleCBmOWY5ZDE3NWNmY2JkNmI4MjBmNDVlNjU1MjQxYzNjMTEx
MmY1Y2RkLi5hYzdhZGNiMGFhMzU2ZmU3NzBjZGZmYzMwMzk2OTI1NjY1NzhhMjU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CkBAIC01NTQsNyArNTU0LDcgQEAgdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpkaWRDb21w
bGV0ZUN1cnJlbnRSZWNvcmQoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIH0KIH0KIAotSW5zcGVj
dG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwg
SW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUsIEluc3BlY3RvckNsaWVu
dCogY2xpZW50KQorSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdl
QWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlLCBJbnNwZWN0
b3JUeXBlIHR5cGUsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIDogSW5zcGVjdG9yQmFz
ZUFnZW50PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KCJUaW1lbGluZSIsIGluc3RydW1lbnRpbmdB
Z2VudHMsIHN0YXRlKQogICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9mcm9u
dGVuZCgwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmgKaW5kZXggZTg2ZDlmM2YxMTNlZTkxMmNiMTBiNzFhZTg1OTc2MTExY2E0ZjY4MC4u
ZTcwNjJhMTE4MTg4ZmFjZGQ1NDM0YTEyMTFkM2M3ZmM1ZjA2ZTk2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC02Nyw3ICs2
Nyw3IEBAIGNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQKIHB1YmxpYzoKICAgICBlbnVtIElu
c3BlY3RvclR5cGUgeyBQYWdlSW5zcGVjdG9yLCBXb3JrZXJJbnNwZWN0b3IgfTsKIAotICAgIHN0
YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCwgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUsIEluc3BlY3Rv
ckNsaWVudCogY2xpZW50KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0
YXRlLCBJbnNwZWN0b3JUeXBlIHR5cGUsIEluc3BlY3RvckNsaWVudCogY2xpZW50KQogICAgIHsK
ICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JUaW1lbGluZUFnZW50KGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgc3RhdGUsIHR5cGUsIGNsaWVudCkpOwogICAgIH0K
QEAgLTE3OSw3ICsxNzksNyBAQCBwcml2YXRlOgogICAgICAgICBzaXplX3QgdXNlZEhlYXBTaXpl
QXRTdGFydDsKICAgICB9OwogICAgICAgICAKLSAgICBJbnNwZWN0b3JUaW1lbGluZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbnNwZWN0b3JTdGF0ZSos
IEluc3BlY3RvclR5cGUsIEluc3BlY3RvckNsaWVudCopOworICAgIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3Rv
ckNvbXBvc2l0ZVN0YXRlKiwgSW5zcGVjdG9yVHlwZSwgSW5zcGVjdG9yQ2xpZW50Kik7CiAKICAg
ICB2b2lkIHB1c2hDdXJyZW50UmVjb3JkKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiwgY29u
c3QgU3RyaW5nJiB0eXBlLCBib29sIGNhcHR1cmVDYWxsU3RhY2ssIEZyYW1lKiwgYm9vbCBoYXNM
b3dMZXZlbERldGFpbHMgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRIZWFwU2l6ZVN0YXRpc3RpY3Mo
SW5zcGVjdG9yT2JqZWN0KiByZWNvcmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggYjJiOTM3NGNkNTZlNWNmMGI2OWM2Yjg1
NDNmNjI0YWU0N2M2ZjhkZi4uZDQ2N2VmODg2Y2Q1YTFhYTMxZWU3NjZlZTZmYzdmMjg4YTg2ZTk0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdl
bnQuY3BwCkBAIC0xMDcsMTIgKzEwNywxMiBAQCBwcml2YXRlOgogCiBpbnQgSW5zcGVjdG9yV29y
a2VyQWdlbnQ6OldvcmtlckZyb250ZW5kQ2hhbm5lbDo6c19uZXh0SWQgPSAxOwogCi1QYXNzT3du
UHRyPEluc3BlY3RvcldvcmtlckFnZW50PiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6Y3JlYXRlKElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBp
bnNwZWN0b3JTdGF0ZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yV29ya2VyQWdlbnQ+IEluc3BlY3Rv
cldvcmtlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0YXRlKQogewogICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yV29ya2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50
cywgaW5zcGVjdG9yU3RhdGUpKTsKIH0KIAotSW5zcGVjdG9yV29ya2VyQWdlbnQ6Okluc3BlY3Rv
cldvcmtlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIElu
c3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSkKK0luc3BlY3RvcldvcmtlckFnZW50OjpJbnNw
ZWN0b3JXb3JrZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCiAgICAgOiBJbnNwZWN0
b3JCYXNlQWdlbnQ8SW5zcGVjdG9yV29ya2VyQWdlbnQ+KCJXb3JrZXIiLCBpbnN0cnVtZW50aW5n
QWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSkKICAgICAsIG1faW5zcGVjdG9yRnJvbnRlbmQoMCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JXb3JrZXJBZ2Vu
dC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKaW5k
ZXggNmI0NGJjMjQxNjFiM2U3MTU1ZjczMmY0NjkyZTEzMTNhNjlmNTJlOC4uYjk0ODgxN2VmODAz
NTBhZDU0MWRkZTdkOTllMmViNjk5MDg0NzBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgdHlwZWRlZiBT
dHJpbmcgRXJyb3JTdHJpbmc7CiAKIGNsYXNzIEluc3BlY3RvcldvcmtlckFnZW50IDogcHVibGlj
IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JXb3JrZXJBZ2VudD4sIHB1YmxpYyBJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcjo6V29ya2VyQ29tbWFuZEhhbmRsZXIgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvcldvcmtlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5z
cGVjdG9yV29ya2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9y
Q29tcG9zaXRlU3RhdGUqKTsKICAgICB+SW5zcGVjdG9yV29ya2VyQWdlbnQoKTsKIAogICAgIHZp
cnR1YWwgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOwpAQCAtNzAsNyArNzAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEF1dG9jb25uZWN0VG9Xb3JrZXJzKEVy
cm9yU3RyaW5nKiwgYm9vbCB2YWx1ZSk7CiAKIHByaXZhdGU6Ci0gICAgSW5zcGVjdG9yV29ya2Vy
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKik7CisgICAgSW5zcGVj
dG9yV29ya2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlKik7CiAgICAgdm9pZCBjcmVhdGVXb3JrZXJGcm9udGVuZENoYW5uZWxzRm9yRXhpc3RpbmdX
b3JrZXJzKCk7CiAgICAgdm9pZCBjcmVhdGVXb3JrZXJGcm9udGVuZENoYW5uZWwoV29ya2VyQ29u
dGV4dFByb3h5KiwgY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgZGVzdHJveVdvcmtlckZy
b250ZW5kQ2hhbm5lbHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29s
ZUFnZW50LmNwcAppbmRleCBmNTVkZGE1OGYwNjI5OTVhNDhiYjczZDY4MzZmNmE2MmVlNzI1Zjky
Li42ZTI2MjE3MTUzYjE2OWU4MWNiYmViYTQ4YmFhYzA1OGI1NTkwOWNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3BwCkBAIC00NCw3ICs0NCw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbnNvbGVBZ2VudDo6UGFnZUNvbnNvbGVB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JB
Z2VudCogaW5zcGVjdG9yQWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckRPTUFnZW50KiBkb21B
Z2VudCkKK1BhZ2VDb25zb2xlQWdlbnQ6OlBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciog
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCiAgICAg
OiBJbnNwZWN0b3JDb25zb2xlQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVj
dGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1faW5zcGVjdG9yQWdlbnQoaW5zcGVjdG9yQWdlbnQp
CiAgICAgLCBtX2luc3BlY3RvckRPTUFnZW50KGRvbUFnZW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKaW5kZXggNjk3Y2U3MWYwYjA3OWJjN2Q1MzdiODZm
NTc1YzNkOWJjMWEzMDdlMS4uM2UyNDhlOWRhZTQ1NTY1YjdiOWI0NTMyNWQ2ZjM5ZDlmZjc3OTIx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oCkBAIC00
NCw3ICs0NCw3IEBAIGNsYXNzIEluc3BlY3RvckRPTUFnZW50OwogY2xhc3MgUGFnZUNvbnNvbGVB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhZ2VDb25zb2xlQWdlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PFBhZ2VDb25zb2xlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBJbnNwZWN0b3JBZ2VudCogYWdlbnQsIEluc3BlY3RvclN0YXRlKiBzdGF0ZSwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3RvckRP
TUFnZW50KiBkb21BZ2VudCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ29uc29sZUFnZW50
PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVj
dG9yQWdlbnQqIGFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVk
U2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JET01BZ2VudCog
ZG9tQWdlbnQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VDb25zb2xl
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgYWdlbnQsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1h
bmFnZXIsIGRvbUFnZW50KSk7CiAgICAgfQpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzV29ya2VyQWdlbnQoKSBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQog
CiBwcml2YXRlOgotICAgIFBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIElu
c3BlY3RvckFnZW50KiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJ
bnNwZWN0b3JET01BZ2VudCopOworICAgIFBhZ2VDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEluc3BlY3RvckFnZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0b3JET01BZ2VudCopOwogICAgIHZpcnR1YWwgdm9pZCBj
bGVhck1lc3NhZ2VzKEVycm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lkIGFkZEluc3BlY3Rl
ZE5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkKTsKICAgICB2aXJ0dWFsIGJvb2wgZGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVi
dWdnZXJBZ2VudC5jcHAKaW5kZXggMGUwYTU1MmM2ZjBmZDljZTUwOTFkY2RkMTFkNjYzZTQ5Njdm
NTU3NC4uOGZhZWM5M2UwNzYyYmUzYjVlMzNjOTNmYmM4NmY3MDE3MGZkNWRlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC00MywxMiAr
NDMsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzT3duUHRyPFBhZ2VEZWJ1Z2dl
ckFnZW50PiBQYWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgSW5zcGVj
dG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLCBJbnNwZWN0b3JPdmVybGF5KiBvdmVybGF5KQorUGFzc093blB0cjxQYWdl
RGVidWdnZXJBZ2VudD4gUGFnZURlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogaW5zcGVj
dG9yU3RhdGUsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbmplY3RlZFNjcmlwdE1h
bmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgSW5zcGVjdG9yT3ZlcmxheSogb3ZlcmxheSkK
IHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VEZWJ1Z2dlckFnZW50KGluc3RydW1lbnRp
bmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBwYWdlQWdlbnQsIGluamVjdGVkU2NyaXB0TWFuYWdl
ciwgb3ZlcmxheSkpOwogfQogCi1QYWdlRGVidWdnZXJBZ2VudDo6UGFnZURlYnVnZ2VyQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUq
IGluc3BlY3RvclN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3Rvck92ZXJsYXkqIG92
ZXJsYXkpCitQYWdlRGVidWdnZXJBZ2VudDo6UGFnZURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGlu
c3BlY3RvclN0YXRlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIEluc3BlY3Rvck92ZXJsYXkqIG92ZXJs
YXkpCiAgICAgOiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGlu
c3BlY3RvclN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX3BhZ2VBZ2VudChw
YWdlQWdlbnQpCiAgICAgLCBtX292ZXJsYXkob3ZlcmxheSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKaW5kZXggZGUzOGFmNzQ0MjFiNWRhNTFhZjU4YTgz
ZDhjZWY0YzU2OGQ2NDE0NS4uMzA1OWUzOTEyNGI0NjQyNWEyMTQwMmM4NzRlODVjMjBmZDE0ZGYy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgY2xhc3MgUGFnZURlYnVnZ2VyQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9y
RGVidWdnZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZURlYnVnZ2VyQWdl
bnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFBhZ2VEZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvclN0YXRlKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKiwgSW5zcGVjdG9yT3ZlcmxheSopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VEZWJ1
Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0
ZVN0YXRlKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgSW5z
cGVjdG9yT3ZlcmxheSopOwogICAgIHZpcnR1YWwgflBhZ2VEZWJ1Z2dlckFnZW50KCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CkBAIC02NCw3ICs2NCw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBJbmplY3RlZFNjcmlwdCBpbmplY3RlZFNjcmlwdEZvckV2YWwo
RXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldE92ZXJsYXlNZXNzYWdlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nKik7CiAK
LSAgICBQYWdlRGVidWdnZXJBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3Rh
dGUqLCBJbnNwZWN0b3JQYWdlQWdlbnQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqLCBJbnNwZWN0
b3JPdmVybGF5Kik7CisgICAgUGFnZURlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiwgSW5zcGVjdG9yT3ZlcmxheSopOwogICAgIEluc3BlY3RvclBhZ2VBZ2Vu
dCogbV9wYWdlQWdlbnQ7CiAgICAgSW5zcGVjdG9yT3ZlcmxheSogbV9vdmVybGF5OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCA1ZDEz
MTJhMzQ2MTM3ZTk2MmI1ODg0MDJkNWQ5M2FmMTFhNGM1OGIxLi41ODQ0YTVlODg2YTU3MzYxYmQz
M2Y5YmZmMTE3YzU5NWNjYzY3NDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIG5hbWVzcGFjZSBQYWdlUnVudGlt
ZUFnZW50U3RhdGUgewogc3RhdGljIGNvbnN0IGNoYXIgcnVudGltZUVuYWJsZWRbXSA9ICJydW50
aW1lRW5hYmxlZCI7CiB9OwogCi1QYWdlUnVudGltZUFnZW50OjpQYWdlUnVudGltZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBz
dGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2Uq
IHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQorUGFnZVJ1bnRpbWVBZ2VudDo6
UGFnZVJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciog
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBh
Z2VBZ2VudCkKICAgICA6IEluc3BlY3RvclJ1bnRpbWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRz
LCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9pbnNwZWN0ZWRQYWdlKHBh
Z2UpCiAgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VSdW50aW1lQWdlbnQuaAppbmRleCA2ZDFlNDRhYzE2NmU5YWVlNzFlM2ZhMWY2MWI1
ZTY0ZGMxMTgyZDFmLi40OWIzOWUyMjM1YWY4MzJiMzQxODNlZjgxZmFlZmE5ZWJlYTBiZTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIGNsYXNzIFBhZ2VSdW50aW1lQWdlbnQg
OiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxQYWdlUnVudGltZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNjcmlwdE1h
bmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgUGFnZSogcGFnZSwgSW5zcGVjdG9yUGFnZUFn
ZW50KiBwYWdlQWdlbnQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZVJ1bnRpbWVBZ2VudD4g
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
ckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNj
cmlwdE1hbmFnZXIsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlUnVudGltZUFnZW50KGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHN0YXRlLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIHBhZ2UsIHBhZ2VB
Z2VudCkpOwogICAgIH0KQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ3Jl
YXRlSXNvbGF0ZWRDb250ZXh0KEZyYW1lKiwgU2NyaXB0U3RhdGUqLCBTZWN1cml0eU9yaWdpbiop
OwogCiBwcml2YXRlOgotICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvclN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFnZSosIEluc3BlY3Rv
clBhZ2VBZ2VudCopOworICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiwgUGFnZSos
IEluc3BlY3RvclBhZ2VBZ2VudCopOwogCiAgICAgdmlydHVhbCBJbmplY3RlZFNjcmlwdCBpbmpl
Y3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRl
eHRJZCk7CiAgICAgdmlydHVhbCB2b2lkIG11dGVDb25zb2xlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuY3BwCmluZGV4IGJmZmZmYjg1YmM1YmVm
YmViYTI0Zjk2MWEwNWZjMjY1YTBlMTZkNDYuLjc3OTYyMTNiNzlkNjU5Y2U1NzJmOTM2ZjIxNWZh
MmIwYmQxM2I0MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJD
b25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25z
b2xlQWdlbnQuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
V29ya2VyQ29uc29sZUFnZW50OjpXb3JrZXJDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmplY3RlZFNj
cmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1dvcmtlckNvbnNvbGVBZ2VudDo6
V29ya2VyQ29uc29sZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBJbnNwZWN0b3JDb25zb2xlQWdlbnQoaW5z
dHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJDb25zb2xlQWdlbnQuaAppbmRleCA2YzZi
MDc0MmViZTc1MmYwMjUzNzQ3ZDkwOTFhMzllOTY3YTRmNTkxLi4xNWY1ZmY4ZWM2ZTA0ODk1ZWEw
Y2M0MzVmZWZmODU2NmJlN2Q0MGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV29ya2VyQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckNvbnNvbGVBZ2VudC5oCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFdvcmtlckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JDb25zb2xlQWdlbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlckNvbnNvbGVBZ2VudCk7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V29ya2VyQ29uc29sZUFnZW50PiBjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRl
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICBzdGF0
aWMgUGFzc093blB0cjxXb3JrZXJDb25zb2xlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJDb25zb2xlQWdlbnQoaW5zdHJ1bWVudGlu
Z0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwogICAgIH0KQEAgLTUwLDcg
KzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtlckFnZW50KCkgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcml2YXRlOgotICAgIFdvcmtlckNvbnNvbGVBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yU3RhdGUqLCBJbmplY3RlZFNjcmlwdE1hbmFn
ZXIqKTsKKyAgICBXb3JrZXJDb25zb2xlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmlydHVh
bCB2b2lkIGFkZEluc3BlY3RlZE5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkKTsKICAgICB2
aXJ0dWFsIGJvb2wgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAxZjJmMjkwNTE1
YWY5NzM1Nzk0ODg0YTYzNDQzODJiYjM0ZGU0NWFiLi5mYTA0MzExNzk5OWEwZTgwODgzZWZlYjlj
ZDY0NDA2NWU4MmJmZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtl
ckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC04MCwxMiArODAsMTIgQEAgcHJpdmF0ZToKIAogY29uc3Qg
Y2hhciogV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSA9ICJkZWJ1Z2dlciI7
CiAKLVBhc3NPd25QdHI8V29ya2VyRGVidWdnZXJBZ2VudD4gV29ya2VyRGVidWdnZXJBZ2VudDo6
Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3Rv
clN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgV29ya2VyQ29udGV4dCogaW5zcGVjdGVkV29ya2VyQ29u
dGV4dCwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitQYXNz
T3duUHRyPFdvcmtlckRlYnVnZ2VyQWdlbnQ+IFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3Np
dGVTdGF0ZSogaW5zcGVjdG9yU3RhdGUsIFdvcmtlckNvbnRleHQqIGluc3BlY3RlZFdvcmtlckNv
bnRleHQsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogewog
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyRGVidWdnZXJBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBpbnNwZWN0b3JTdGF0ZSwgaW5zcGVjdGVkV29ya2VyQ29udGV4dCwgaW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKSk7CiB9CiAKLVdvcmtlckRlYnVnZ2VyQWdlbnQ6OldvcmtlckRlYnVnZ2Vy
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
U3RhdGUqIGluc3BlY3RvclN0YXRlLCBXb3JrZXJDb250ZXh0KiBpbnNwZWN0ZWRXb3JrZXJDb250
ZXh0LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKK1dvcmtl
ckRlYnVnZ2VyQWdlbnQ6OldvcmtlckRlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIGluc3BlY3RvclN0
YXRlLCBXb3JrZXJDb250ZXh0KiBpbnNwZWN0ZWRXb3JrZXJDb250ZXh0LCBJbmplY3RlZFNjcmlw
dE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICA6IEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUsIGluamVjdGVkU2NyaXB0
TWFuYWdlcikKICAgICAsIG1fc2NyaXB0RGVidWdTZXJ2ZXIoaW5zcGVjdGVkV29ya2VyQ29udGV4
dCwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSkKICAgICAsIG1faW5zcGVj
dGVkV29ya2VyQ29udGV4dChpbnNwZWN0ZWRXb3JrZXJDb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKaW5kZXggMjBjNTA5YjE0YmMxMjUy
MzQxMWY0MTc3NmYzNjRjYzI1M2MyZWY4YS4uNDdkNjZhYjBlOTI1YmUyYjQ2MGE4MzcyNDRiMTU3
ZTdlYzMzN2RjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRl
YnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdn
ZXJBZ2VudC5oCkBAIC00NCwxNCArNDQsMTQgQEAgY2xhc3MgV29ya2VyRGVidWdnZXJBZ2VudCA6
IHB1YmxpYyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShXb3JrZXJEZWJ1Z2dlckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJEZWJ1Z2dlckFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgV29ya2VyQ29udGV4dCosIElu
amVjdGVkU2NyaXB0TWFuYWdlciopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdvcmtlckRlYnVn
Z2VyQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqLCBXb3JrZXJDb250ZXh0KiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAgICAgdmly
dHVhbCB+V29ya2VyRGVidWdnZXJBZ2VudCgpOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRl
YnVnZ2VyVGFza01vZGU7CiAgICAgc3RhdGljIHZvaWQgaW50ZXJydXB0QW5kRGlzcGF0Y2hJbnNw
ZWN0b3JDb21tYW5kcyhXb3JrZXJUaHJlYWQqKTsKIAogcHJpdmF0ZToKLSAgICBXb3JrZXJEZWJ1
Z2dlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIFdvcmtlckNv
bnRleHQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBXb3JrZXJEZWJ1Z2dlckFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIFdvcmtlckNv
bnRleHQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dExpc3RlbmluZ1NjcmlwdERlYnVnU2VydmVyKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BMaXN0
ZW5pbmdTY3JpcHREZWJ1Z1NlcnZlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGQ5YjM5MGZmNmY1M2Zh
MzQwZGUwZDE5N2ZiMDAzNmM4MjUwYjljYWQuLjdmOWIxYjJiNDMyNmMwNzZjYjJlYjViYTU1M2Q1
ZmJjNzRmMDMxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgcHJpdmF0ZToKIFdv
cmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoV29ya2Vy
Q29udGV4dCogd29ya2VyQ29udGV4dCkKICAgICA6IG1fd29ya2VyQ29udGV4dCh3b3JrZXJDb250
ZXh0KQogICAgICwgbV9zdGF0ZUNsaWVudChhZG9wdFB0cihuZXcgV29ya2VyU3RhdGVDbGllbnQo
d29ya2VyQ29udGV4dCkpKQotICAgICwgbV9zdGF0ZShhZG9wdFB0cihuZXcgSW5zcGVjdG9yU3Rh
dGUobV9zdGF0ZUNsaWVudC5nZXQoKSkpKQorICAgICwgbV9zdGF0ZShhZG9wdFB0cihuZXcgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUobV9zdGF0ZUNsaWVudC5nZXQoKSkpKQogICAgICwgbV9pbnN0
cnVtZW50aW5nQWdlbnRzKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50aW5nQWdlbnRzKCkpKQogICAg
ICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjcmVhdGVG
b3JXb3JrZXIoKSkKICAgICAsIG1fcnVudGltZUFnZW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCAyMWRjNzIz
ZmUzYWRkMDY5MTE3MzVmZDQyODJjZDdhNjU3MjkxZmFiLi42YmRkYTU4OGI3NzIyNmY1NTgzMzIx
N2VmZTFkYjdmMTg3Mzg2ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToK
IAogICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsKICAgICBPd25QdHI8SW5zcGVj
dG9yU3RhdGVDbGllbnQ+IG1fc3RhdGVDbGllbnQ7Ci0gICAgT3duUHRyPEluc3BlY3RvclN0YXRl
PiBtX3N0YXRlOworICAgIE93blB0cjxJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZT4gbV9zdGF0ZTsK
ICAgICBPd25QdHI8SW5zdHJ1bWVudGluZ0FnZW50cz4gbV9pbnN0cnVtZW50aW5nQWdlbnRzOwog
ICAgIE93blB0cjxJbmplY3RlZFNjcmlwdE1hbmFnZXI+IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
OwogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudCogbV9ydW50aW1lQWdlbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuY3BwCmluZGV4IDdmZjJhZDEy
NzU1NmY4M2E3MGY5YTU0ZmI3YTc4ZDgzNDA2Y2YyYzkuLjcyZGM0YmM3NmExMWZjYmUxZTZlOGNj
ZDFkNGY2OWQ5YzZlMGI4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
b3JrZXJSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJSdW50aW1lQWdlbnQuY3BwCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotV29ya2VyUnVudGltZUFnZW50OjpXb3JrZXJSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIHN0YXRlLCBJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlciwgV29ya2VyQ29udGV4dCog
d29ya2VyQ29udGV4dCkKK1dvcmtlclJ1bnRpbWVBZ2VudDo6V29ya2VyUnVudGltZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0
ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFn
ZXIsIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQpCiAgICAgOiBJbnNwZWN0b3JSdW50aW1l
QWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUsIGluamVjdGVkU2NyaXB0TWFuYWdlcikK
ICAgICAsIG1fd29ya2VyQ29udGV4dCh3b3JrZXJDb250ZXh0KQogICAgICwgbV9wYXVzZWQoZmFs
c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyUnVudGltZUFnZW50LmgKaW5k
ZXggNTBkZGVmMzY5NzJiNzRmNzU3NzAyM2RmZTdmYTI4Y2M4M2Q0YzI1ZS4uZDdjYzBmN2FkOWNk
ZTQ0NGUwYmZmNjkwOGEyYzA3OTM0MTY5ZDE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1dvcmtlclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9Xb3JrZXJSdW50aW1lQWdlbnQuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBXb3JrZXJD
b250ZXh0OwogCiBjbGFzcyBXb3JrZXJSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVu
dGltZUFnZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJSdW50aW1l
QWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJ
bnNwZWN0b3JTdGF0ZSogc3RhdGUsIEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLCBXb3JrZXJDb250ZXh0KiBjb250ZXh0KQorICAgIHN0YXRpYyBQYXNzT3duUHRy
PFdvcmtlclJ1bnRpbWVBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSwgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFdvcmtlckNvbnRleHQqIGNvbnRleHQp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdvcmtlclJ1bnRpbWVBZ2VudChp
bnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBjb250ZXh0
KSk7CiAgICAgfQpAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAjZW5kaWYgLy8gRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCiAKIHByaXZhdGU6Ci0gICAgV29ya2VyUnVudGltZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdl
ciosIFdvcmtlckNvbnRleHQqKTsKKyAgICBXb3JrZXJSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiwgV29ya2VyQ29udGV4dCopOwogICAgIHZpcnR1YWwgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRT
Y3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiwgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQp
OwogICAgIHZpcnR1YWwgdm9pZCBtdXRlQ29uc29sZSgpOwogICAgIHZpcnR1YWwgdm9pZCB1bm11
dGVDb25zb2xlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>