<?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>221093</bug_id>
          
          <creation_ts>2021-01-28 10:27:55 -0800</creation_ts>
          <short_desc>Support Ergonomic Brand Checks proposal (`#x in obj`)</short_desc>
          <delta_ts>2021-05-22 20:50:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226146</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jordan Harband">ljharb</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1723412</commentid>
    <comment_count>0</comment_count>
    <who name="Jordan Harband">ljharb</who>
    <bug_when>2021-01-28 10:27:55 -0800</bug_when>
    <thetext>See https://github.com/tc39/proposal-private-fields-in-in - as of yesterday, it is now stage 3. It&apos;d be great to see Webkit ship this feature ASAP!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725692</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-04 10:28:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/73987372&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751775</commentid>
    <comment_count>2</comment_count>
    <who name="Jordan Harband">ljharb</who>
    <bug_when>2021-04-19 07:53:26 -0700</bug_when>
    <thetext>test262 tests have landed: https://github.com/tc39/test262/pull/2963

it&apos;d be great to see this implemented :-D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757723</commentid>
    <comment_count>3</comment_count>
      <attachid>427961</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-06 16:53:42 -0700</bug_when>
    <thetext>Created attachment 427961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758621</commentid>
    <comment_count>4</comment_count>
      <attachid>427961</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-10 13:50:56 -0700</bug_when>
    <thetext>Comment on attachment 427961
Patch

(Marking r? since this is a fully-working patch, but I&apos;ve asked for backend guidance on Slack.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759024</commentid>
    <comment_count>5</comment_count>
      <attachid>427961</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2021-05-11 12:13:59 -0700</bug_when>
    <thetext>Comment on attachment 427961
Patch

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

Patch LGTM. I left couple of suggestions.

&gt; Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:2823
&gt; +        emitThrowTypeError(&quot;Cannot access static private method or accessor&quot;);

Thank you for fixing this.

&gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2111
&gt; +            fixEdge&lt;CellUse&gt;(node-&gt;child1());

Since we throw on anything but Object, I think it would be fine use `ObjectUse` here. However, this choice will cause OSR whenever `base` (i.e child1) is not an object. It is also true for non-cell types for the code as it is.

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:484
&gt; +        return JSValue::encode(jsBoolean(false));

I’d prefer return here `JSValue()`

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:506
&gt; +        return JSValue::encode(jsBoolean(false));

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759064</commentid>
    <comment_count>6</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-11 14:34:50 -0700</bug_when>
    <thetext>(In reply to Caio Lima from comment #5)
&gt; &gt; Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:2111
&gt; &gt; +            fixEdge&lt;CellUse&gt;(node-&gt;child1());
&gt; 
&gt; Since we throw on anything but Object, I think it would be fine use
&gt; `ObjectUse` here. However, this choice will cause OSR whenever `base` (i.e
&gt; child1) is not an object. It is also true for non-cell types for the code as
&gt; it is.

Hmm, one way or another, I think I&apos;d like to keep this part consistent with InByVal/InById, since this operand behaves identically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760842</commentid>
    <comment_count>7</comment_count>
      <attachid>428855</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-17 12:45:44 -0700</bug_when>
    <thetext>Created attachment 428855
Patch

Addressed comments and made the feature off-by-default per our meeting. Will aim to optimize InByVal itself next and then mimic that functionality for this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760850</commentid>
    <comment_count>8</comment_count>
      <attachid>428857</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-17 13:16:07 -0700</bug_when>
    <thetext>Created attachment 428857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762453</commentid>
    <comment_count>9</comment_count>
      <attachid>428857</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2021-05-21 09:51:17 -0700</bug_when>
    <thetext>Comment on attachment 428857
Patch

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

r=me with comments

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:3220
&gt; +        }

I’d assert here if it’s a private method or accessor

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:8279
&gt; +            auto bytecode = currentInstruction-&gt;as&lt;OpHasPrivateName&gt;();

Could you add a FIXME to point to a bug where we could inline this operation?

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:8285
&gt; +            auto bytecode = currentInstruction-&gt;as&lt;OpHasPrivateBrand&gt;();

Ditto

&gt; Source/JavaScriptCore/runtime/JSObjectInlines.h:702
&gt; +    ASSERT(brand.isSymbol());

Could we assert here that it’s also a PrivateSymbol?

&gt; JSTests/stress/private-in.js:58
&gt; +  shouldThrowTypeError(() =&gt; SS.isSS(3));

It would be nice test cases where we evaluate a class more than once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762856</commentid>
    <comment_count>10</comment_count>
      <attachid>429435</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-22 16:23:00 -0700</bug_when>
    <thetext>Created attachment 429435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762879</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-22 19:45:40 -0700</bug_when>
    <thetext>Caio Lima found in /Volumes/Data/worker/Commit-Queue/build/JSTests/ChangeLog does not appear to be a valid reviewer according to contributors.json.
/Volumes/Data/worker/Commit-Queue/build/JSTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762880</commentid>
    <comment_count>12</comment_count>
      <attachid>429451</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2021-05-22 20:03:05 -0700</bug_when>
    <thetext>Created attachment 429451
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762881</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-22 20:50:14 -0700</bug_when>
    <thetext>Committed r277926 (238057@main): &lt;https://commits.webkit.org/238057@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429451.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427961</attachid>
            <date>2021-05-06 16:53:42 -0700</date>
            <delta_ts>2021-05-17 12:45:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221093-20210506165340.patch</filename>
            <type>text/plain</type>
            <size>46058</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZTM0ODA2MTBkNzljMDNiMzY5ZmM5MmYxMGY4NjJmNTdmM2FjYmJlLi5lNzQ2NjUyMzljMjAzODg5
OTY2OWRlZTM3NzhkYTI3YzFhZjA5N2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5OCBAQAorMjAyMS0wNS0wNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBFcmdvbm9taWMgQnJhbmQgQ2hlY2tzIHByb3Bvc2Fs
IChgI3ggaW4gb2JqYCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTA5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIFN0YWdlIDMgcHJvcG9z
YWw6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXByaXZhdGUtZmll
bGRzLWluLWluCisKKyAgICAgICAgU3BlY2lmaWNhbGx5LCBpdCBleHRlbmRzIHRoZSBgaW5gIGtl
eXdvcmQgdG8gYWxsb3cgdGhlIExIUyB0byBiZSBhIHByaXZhdGUgbmFtZSwKKyAgICAgICAgdGhl
cmVieSBhbGxvd2luZyB1c2VycyB0byBpbXBsZW1lbnQgQXJyYXkuaXNBcnJheS1lc3F1ZSBicmFu
ZCBjaGVja3MgZm9yIHRoZWlyIG93biBjbGFzc2VzCisgICAgICAgICp3aXRob3V0KiBoYXZpbmcg
dG8gd3JhcCBhIHByaXZhdGUgbWVtYmVyIGdldCBpbiBhIHRyeS1jYXRjaC4KKworICAgICAgICBG
b3IgZXhhbXBsZToKKyAgICAgICAgYGBgCisgICAgICAgIGNsYXNzIEMgeworICAgICAgICAgICAg
I3g7CisgICAgICAgICAgICBzdGF0aWMgaXNDKG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9Cisg
ICAgICAgIH0KKyAgICAgICAgYGBgCisKKyAgICAgICAgVGhpcyBpcyBkb25lIGJ5IGFkZGluZyB0
d28gbmV3IGJ5dGVjb2RlIG9wcywgSGFzUHJpdmF0ZU5hbWUgYW5kIEhhc1ByaXZhdGVCcmFuZC4K
KyAgICAgICAgRm9yIHRoZSBtb21lbnQsIHRoZXNlIGFyZSBpbXBsZW1lbnRlZCB3aXRob3V0IGFu
eSBjYWNoaW5nIGJlY2F1c2U6CisgICAgICAgIC0gdGhlIGZvcm1lciBjYW5ub3QgbWltaWMgR2V0
UHJpdmF0ZU5hbWUgc2luY2UgaXQncyBhbiBgSW5gLCBub3QgYSBgR2V0YAorICAgICAgICAtIHRo
ZSBsYXR0ZXIgY2Fubm90IGVhc2lseSBtaW1pYyBDaGVja1ByaXZhdGVCcmFuZCBzaW5jZSBpdHMg
dm9pZC10eXBlZG5lc3MgbGVhZHMgdG8gc3Vic3RhbnRpYWwgZGlmZmVyZW5jZXMKKyAgICAgICAg
LSBJbkJ5VmFsIGl0c2VsZiBjdXJyZW50bHkgaGFzIG5vIG9wdGltaXphdGlvbiBmb3IgU3ltYm9s
IGtleXMKKworICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYjoKKyAgICAgICAgKiBi
eXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHA6CisgICAgICAgIChKU0M6OmNvbXB1dGVVc2VzRm9y
Qnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAoSlNDOjpjb21wdXRlRGVmc0ZvckJ5dGVjb2Rl
SW5kZXhJbXBsKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEhhc1ByaXZhdGVOYW1lKToK
KyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRIYXNQcml2YXRlQnJhbmQpOgor
ICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNrUHJpdmF0ZUJyYW5kKToK
KyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBi
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6SW5Ob2RlOjplbWl0
Qnl0ZWNvZGUpOgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5
cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAg
ICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJp
bGl0eUxldmVsKToKKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlND
OjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZn
L0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlND
OjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNQcml2YXRl
TmFtZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNQcml2
YXRlQnJhbmQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAq
IGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAg
ICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21w
aWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlSGFzUHJpdmF0ZU5hbWUpOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlSGFzUHJpdmF0ZUJyYW5kKToKKyAgICAg
ICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5Q
YXNzKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoK
KyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBwYXJz
ZXIvQVNUQnVpbGRlci5oOgorICAgICAgICAoSlNDOjpBU1RCdWlsZGVyOjpjcmVhdGVQcml2YXRl
SWRlbnRpZmllck5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmg6Cisg
ICAgICAgIChKU0M6OlByaXZhdGVJZGVudGlmaWVyTm9kZTo6UHJpdmF0ZUlkZW50aWZpZXJOb2Rl
KToKKyAgICAgICAgKiBwYXJzZXIvTm9kZXMuaDoKKyAgICAgICAgKEpTQzo6RXhwcmVzc2lvbk5v
ZGU6OmlzUHJpdmF0ZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VCaW5hcnlFeHByZXNz
aW9uKToKKyAgICAgICAgKiBwYXJzZXIvU3ludGF4Q2hlY2tlci5oOgorICAgICAgICAoSlNDOjpT
eW50YXhDaGVja2VyOjpjcmVhdGVQcml2YXRlSWRlbnRpZmllck5vZGUpOgorICAgICAgICAqIHJ1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DT01N
T05fU0xPV19QQVRIKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0SW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6aGFzUHJpdmF0ZUZpZWxkKToKKyAgICAg
ICAgKEpTQzo6SlNPYmplY3Q6Omhhc1ByaXZhdGVCcmFuZCk6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpjaGVja1ByaXZhdGVCcmFuZCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5o
OgorCiAyMDIxLTA1LTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgTWFrZSBzb21lIHRoaW5ncyBlYXNpZXIgdG8gZGF0YUxvZyBpbiB3YXNtCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgppbmRleCAxNjQxMDFmZWNl
MDQyNmEwMDJmZjVhNDdhMWMwMjRiODk0NjY0NDNjLi4xODI1ZWMyYWQ1YTAzMzlkNGYzZWYxOTVk
ZDZmOWZjZjIyZDA2NDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUxpc3QucmIKQEAgLTQ1NCw2ICs0NTQsMjAgQEAgb3AgOmluX2J5X2lkLAogICAgICAg
ICBwcm9wZXJ0eTogdW5zaWduZWQsCiAgICAgfQogCitvcCA6aGFzX3ByaXZhdGVfbmFtZSwKKyAg
ICBhcmdzOiB7CisgICAgICAgIGRzdDogVmlydHVhbFJlZ2lzdGVyLAorICAgICAgICBiYXNlOiBW
aXJ0dWFsUmVnaXN0ZXIsCisgICAgICAgIHByb3BlcnR5OiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAg
fQorCitvcCA6aGFzX3ByaXZhdGVfYnJhbmQsCisgICAgYXJnczogeworICAgICAgICBkc3Q6IFZp
cnR1YWxSZWdpc3RlciwKKyAgICAgICAgYmFzZTogVmlydHVhbFJlZ2lzdGVyLAorICAgICAgICBi
cmFuZDogVmlydHVhbFJlZ2lzdGVyLAorICAgIH0KKwogb3AgOmdldF9ieV9pZCwKICAgICBhcmdz
OiB7CiAgICAgICAgIGRzdDogVmlydHVhbFJlZ2lzdGVyLApAQCAtNjA4LDcgKzYyMiw2IEBAIG9w
IDpjaGVja19wcml2YXRlX2JyYW5kLAogICAgICAgICBzdHJ1Y3R1cmVJRDogU3RydWN0dXJlSUQs
CiAgICAgICAgIGJyYW5kOiBXcml0ZUJhcnJpZXJbSlNDZWxsXSwKICAgICB9Ci0gICAgCiAKIG9w
IDpwdXRfYnlfdmFsLAogICAgIGFyZ3M6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCmluZGV4IDAxNmEwMjdmYTMzYWI3OTQ5NDMxMmE0
YTQ3N2RmYzViMmU3YTAwZDcuLjA3NTYxODk5YTYyMDllMzZjYmZhNzJhMDU0ZjE1MTJkNjczOGMw
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVz
ZURlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNl
RGVmLmNwcApAQCAtMjMyLDYgKzIzMiw4IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZUlu
ZGV4SW1wbChWaXJ0dWFsUmVnaXN0ZXIgc2NvcGVSZWdpc3RlciwgY29uc3QgSW5zdHJ1CiAgICAg
VVNFUyhPcFNldFByaXZhdGVCcmFuZCwgYmFzZSwgYnJhbmQpCiAgICAgVVNFUyhPcENoZWNrUHJp
dmF0ZUJyYW5kLCBiYXNlLCBicmFuZCkKICAgICBVU0VTKE9wSW5CeVZhbCwgYmFzZSwgcHJvcGVy
dHkpCisgICAgVVNFUyhPcEhhc1ByaXZhdGVOYW1lLCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VT
KE9wSGFzUHJpdmF0ZUJyYW5kLCBiYXNlLCBicmFuZCkKICAgICBVU0VTKE9wT3ZlcnJpZGVzSGFz
SW5zdGFuY2UsIGNvbnN0cnVjdG9yLCBoYXNJbnN0YW5jZVZhbHVlKQogICAgIFVTRVMoT3BJbnN0
YW5jZW9mLCB2YWx1ZSwgcHJvdG90eXBlKQogICAgIFVTRVMoT3BBZGQsIGxocywgcmhzKQpAQCAt
NTA5LDYgKzUxMSw4IEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRlY29kZUluZGV4SW1wbCh1bnNp
Z25lZCBudW1WYXJzLCBjb25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1CiAgICAgREVGUyhPcElzQ29u
c3RydWN0b3IsIGRzdCkKICAgICBERUZTKE9wSW5CeUlkLCBkc3QpCiAgICAgREVGUyhPcEluQnlW
YWwsIGRzdCkKKyAgICBERUZTKE9wSGFzUHJpdmF0ZU5hbWUsIGRzdCkKKyAgICBERUZTKE9wSGFz
UHJpdmF0ZUJyYW5kLCBkc3QpCiAgICAgREVGUyhPcFRvTnVtYmVyLCBkc3QpCiAgICAgREVGUyhP
cFRvTnVtZXJpYywgZHN0KQogICAgIERFRlMoT3BUb1N0cmluZywgZHN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAppbmRleCA1OGU1MGRhMDkyMWIyMDlmOWViZWZmMmFiZGYzYjMzZWZkNTViZDhiLi5iZGJhYTIx
NDk1ZTAxM2U5N2NmNTlkZDU0ZTc1M2VjOGIwOTIzMGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAt
MjcyNCw2ICsyNzI0LDEyIEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0R2V0
UHJpdmF0ZU5hbWUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiCiAgICAgcmV0dXJuIGRz
dDsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRIYXNQcml2YXRlTmFt
ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5
KQoreworICAgIE9wSGFzUHJpdmF0ZU5hbWU6OmVtaXQodGhpcywgZHN0LCBiYXNlLCBwcm9wZXJ0
eSk7CisgICAgcmV0dXJuIGRzdDsKK30KKwogUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXREaXJlY3RQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0
eSwgUmVnaXN0ZXJJRCogdmFsdWUpCiB7CiAgICAgT3BQdXRCeVZhbERpcmVjdDo6ZW1pdCh0aGlz
LCBiYXNlLCBwcm9wZXJ0eSwgdmFsdWUsIGVjbWFNb2RlKCkpOwpAQCAtMjc5NiwxMiArMjgwMiwy
NSBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdFByaXZhdGVGaWVsZFB1dChS
ZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKgogICAgIHJldHVybiB2YWx1ZTsKIH0KIAorUmVn
aXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRIYXNQcml2YXRlQnJhbmQoUmVnaXN0ZXJJ
RCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBicmFuZCwgYm9vbCBpc1N0YXRp
YykKK3sKKyAgICBpZiAoaXNTdGF0aWMpIHsKKyAgICAgICAgUmVmPExhYmVsPiBpc09iamVjdExh
YmVsID0gbmV3TGFiZWwoKTsKKyAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdElzT2JqZWN0KG5l
d1RlbXBvcmFyeSgpLCBiYXNlKSwgaXNPYmplY3RMYWJlbC5nZXQoKSk7CisgICAgICAgIGVtaXRU
aHJvd1R5cGVFcnJvcigiQ2Fubm90IGFjY2VzcyBzdGF0aWMgcHJpdmF0ZSBtZXRob2Qgb3IgYWNj
ZXNzb3Igb2YgYSBub24tT2JqZWN0Iik7CisgICAgICAgIGVtaXRMYWJlbChpc09iamVjdExhYmVs
LmdldCgpKTsKKyAgICAgICAgZW1pdEVxdWFsaXR5T3A8T3BTdHJpY3RlcT4oZHN0LCBiYXNlLCBi
cmFuZCk7CisgICAgfSBlbHNlCisgICAgICAgIE9wSGFzUHJpdmF0ZUJyYW5kOjplbWl0KHRoaXMs
IGRzdCwgYmFzZSwgYnJhbmQpOworICAgIHJldHVybiBkc3Q7Cit9CisKIHZvaWQgQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRDaGVja1ByaXZhdGVCcmFuZChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3Rl
cklEKiBicmFuZCwgYm9vbCBpc1N0YXRpYykKIHsKICAgICBpZiAoaXNTdGF0aWMpIHsKICAgICAg
ICAgUmVmPExhYmVsPiBicmFuZENoZWNrT2tMYWJlbCA9IG5ld0xhYmVsKCk7CiAgICAgICAgIGVt
aXRKdW1wSWZUcnVlKGVtaXRFcXVhbGl0eU9wPE9wU3RyaWN0ZXE+KG5ld1RlbXBvcmFyeSgpLCBi
YXNlLCBicmFuZCksIGJyYW5kQ2hlY2tPa0xhYmVsLmdldCgpKTsKLSAgICAgICAgZW1pdFRocm93
VHlwZUVycm9yKCJDYW5ub3QgYWNjZXNzIHN0YXRpYyBwcml2YXRlIG1ldGhvZCBvciBhY2Vzc29y
Iik7CisgICAgICAgIGVtaXRUaHJvd1R5cGVFcnJvcigiQ2Fubm90IGFjY2VzcyBzdGF0aWMgcHJp
dmF0ZSBtZXRob2Qgb3IgYWNjZXNzb3IiKTsKICAgICAgICAgZW1pdExhYmVsKGJyYW5kQ2hlY2tP
a0xhYmVsLmdldCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IGU1
MTFkYzI3NTU1ZGU1Yjg4NDQ3ZTMzM2Y5ZTE2NjI1YTg1NjI2MWMuLmNhZmE1NzllMzdjZjA3ZTJh
YWU4ODIwYTQ3MzQ3ZDc2ODcwM2U2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTg0MCwxMiArODQwLDE0
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0RGVmaW5lUHJpdmF0
ZUZpZWxkKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklE
KiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQcml2YXRlRmllbGRQdXQoUmVnaXN0
ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKTsKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdEdldFByaXZhdGVOYW1lKFJlZ2lzdGVySUQqIGRzdCwgUmVn
aXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHkpOworICAgICAgICBSZWdpc3RlcklE
KiBlbWl0SGFzUHJpdmF0ZU5hbWUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBS
ZWdpc3RlcklEKiBwcm9wZXJ0eSk7CiAKICAgICAgICAgdm9pZCBlbWl0Q3JlYXRlUHJpdmF0ZUJy
YW5kKFJlZ2lzdGVySUQqIGRzdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5k
KTsKICAgICAgICAgdm9pZCBlbWl0SW5zdGFsbFByaXZhdGVCcmFuZChSZWdpc3RlcklEKiB0YXJn
ZXQpOwogICAgICAgICB2b2lkIGVtaXRJbnN0YWxsUHJpdmF0ZUNsYXNzQnJhbmQoUmVnaXN0ZXJJ
RCogdGFyZ2V0KTsKIAogICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0UHJpdmF0ZUJyYW5kKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc2NvcGUsIGJvb2wgaXNTdGF0aWMpOworICAgICAg
ICBSZWdpc3RlcklEKiBlbWl0SGFzUHJpdmF0ZUJyYW5kKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogYnJhbmQsIGJvb2wgaXNTdGF0aWMpOwogICAgICAgICB2
b2lkIGVtaXRDaGVja1ByaXZhdGVCcmFuZChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBi
cmFuZCwgYm9vbCBpc1N0YXRpYyk7CiAKICAgICAgICAgdm9pZCBlbWl0U3VwZXJTYW1wbGVyQmVn
aW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAppbmRleCAzY2JkMTIwOTllODViMGI0MjYyMDgwYTQzYTM1ZGU4MWYyYmQ1N2I5
Li42ZmZlMTY2MjdhOGIzMmVlMjk4ZmI2NzU2NWNjY2VjMjRlODE4ZTM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0z
MjA2LDYgKzMyMDYsMjMgQEAgUmVnaXN0ZXJJRCogSW5zdGFuY2VPZk5vZGU6OmVtaXRCeXRlY29k
ZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlckkKIAogUmVnaXN0ZXJJRCog
SW5Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0
ZXJJRCogZHN0KQogeworICAgIGlmIChtX2V4cHIxLT5pc1ByaXZhdGVJZGVudGlmaWVyKCkpIHsK
KyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9l
eHByMik7CisKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gc3RhdGljX2Nhc3Q8UHJpdmF0ZUlk
ZW50aWZpZXJOb2RlKj4obV9leHByMSktPnZhbHVlKCk7CisgICAgICAgIGF1dG8gcHJpdmF0ZVRy
YWl0cyA9IGdlbmVyYXRvci5nZXRQcml2YXRlVHJhaXRzKGlkZW50aWZpZXIpOworICAgICAgICBW
YXJpYWJsZSB2YXIgPSBnZW5lcmF0b3IudmFyaWFibGUoaWRlbnRpZmllcik7CisgICAgICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBzY29wZSA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZVNjb3BlKG51bGxw
dHIsIHZhcik7CisKKyAgICAgICAgaWYgKHByaXZhdGVUcmFpdHMuaXNGaWVsZCgpKSB7CisgICAg
ICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJpdmF0ZU5hbWUgPSBnZW5lcmF0b3IuZW1pdEdl
dEZyb21TY29wZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHNjb3BlLmdldCgpLCB2YXIsIERv
Tm90VGhyb3dJZk5vdEZvdW5kKTsKKyAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEhh
c1ByaXZhdGVOYW1lKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgYmFzZS5nZXQoKSks
IGJhc2UuZ2V0KCksIHByaXZhdGVOYW1lLmdldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBwcml2YXRlQnJhbmQgPSBnZW5lcmF0b3IuZW1pdEdldFByaXZhdGVC
cmFuZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHNjb3BlLmdldCgpLCBwcml2YXRlVHJhaXRz
LmlzU3RhdGljKCkpOworICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRIYXNQcml2YXRlQnJh
bmQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0LCBiYXNlLmdldCgpKSwgYmFzZS5nZXQo
KSwgcHJpdmF0ZUJyYW5kLmdldCgpLCBwcml2YXRlVHJhaXRzLmlzU3RhdGljKCkpOworICAgIH0K
KwogICAgIGlmIChpc05vbkluZGV4U3RyaW5nRWxlbWVudCgqbV9leHByMSkpIHsKICAgICAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7CiAg
ICAgICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgp
LCBkaXZvdEVuZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCBmYTlkOWZhMGJiZmIwNmRiNmQ2
MjAxMjc1Y2ZjNjYzNDExMDliOTk2Li44MGQ3Mjg3ZmI2MDgyZjBlNDNmMmQ3YmFkMjViYzVlOGMw
MTI3MWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC00MjEyLDYgKzQyMTIsMTUgQEAgYm9vbCBB
YnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5z
aWduZWQgY2xvYmJlckxpbWkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBIYXNQ
cml2YXRlTmFtZToKKyAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDogeworICAgICAgICBjbG9iYmVy
V29ybGQoKTsKKyAgICAgICAgZmlsdGVyKG5vZGUtPmNoaWxkMSgpLCBTcGVjT2JqZWN0KTsKKyAg
ICAgICAgZmlsdGVyKG5vZGUtPmNoaWxkMigpLCBTcGVjU3ltYm9sKTsKKyAgICAgICAgc2V0Tm9u
Q2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCb29sZWFuKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eTogewogICAgICAgICBjbG9iYmVyV29ybGQoKTsK
ICAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNCb29sZWFuKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggZTBl
NTdjYWQ2YTBiNjk2OWMxODE2ZTNkMDY1ZWI4N2U4Y2I2MDA0OS4uYjFiYTU4Y2ExYjc1OTgxOWM3
NGQ2OWUxYjkwZjhhMzg3NTFlYmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTgyNzQsNiArODI3NCwxOCBAQCB2b2lkIEJ5dGVD
b2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgc2V0KGJ5
dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKEluQnlJZCwgT3BJbmZvKENhY2hlYWJsZUlkZW50aWZp
ZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX2lubGluZVN0YWNrVG9w
LT5tX3Byb2ZpbGVkQmxvY2ssIHVpZCkpLCBiYXNlKSk7CiAgICAgICAgICAgICBORVhUX09QQ09E
RShvcF9pbl9ieV9pZCk7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGNhc2Ugb3BfaGFz
X3ByaXZhdGVfbmFtZTogeworICAgICAgICAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0
cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlTmFtZT4oKTsKKyAgICAgICAgICAgIHNldChieXRlY29k
ZS5tX2RzdCwgYWRkVG9HcmFwaChIYXNQcml2YXRlTmFtZSwgZ2V0KGJ5dGVjb2RlLm1fYmFzZSks
IGdldChieXRlY29kZS5tX3Byb3BlcnR5KSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3Bf
aGFzX3ByaXZhdGVfbmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIG9wX2hhc19wcml2
YXRlX2JyYW5kOiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0
aW9uLT5hczxPcEhhc1ByaXZhdGVCcmFuZD4oKTsKKyAgICAgICAgICAgIHNldChieXRlY29kZS5t
X2RzdCwgYWRkVG9HcmFwaChIYXNQcml2YXRlQnJhbmQsIGdldChieXRlY29kZS5tX2Jhc2UpLCBn
ZXQoYnl0ZWNvZGUubV9icmFuZCkpKTsKKyAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2hhc19w
cml2YXRlX2JyYW5kKTsKKyAgICAgICAgfQogCiAgICAgICAgIGNhc2Ugb3BfZ2V0X2VudW1lcmFi
bGVfbGVuZ3RoOiB7CiAgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0
aW9uLT5hczxPcEdldEVudW1lcmFibGVMZW5ndGg+KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggYjQ4MTlmZDc2OWI1OGNkNTJhZGQxYTU0
NmQ3MGEzYTVkNTk0MTM5Ny4uYzcxNjRiMzBmNDY0ZWIwZDQzODJlMmNjYTQyZDU2OTk2NGQxYmY2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApA
QCAtMjUwLDYgKzI1MCw4IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2Rl
SUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBjb25zdCBJCiAgICAgY2FzZSBvcF9z
d2l0Y2hfY2hhcjoKICAgICBjYXNlIG9wX2luX2J5X3ZhbDoKICAgICBjYXNlIG9wX2luX2J5X2lk
OgorICAgIGNhc2Ugb3BfaGFzX3ByaXZhdGVfbmFtZToKKyAgICBjYXNlIG9wX2hhc19wcml2YXRl
X2JyYW5kOgogICAgIGNhc2Ugb3BfZ2V0X3Njb3BlOgogICAgIGNhc2Ugb3BfZ2V0X2Zyb21fc2Nv
cGU6CiAgICAgY2FzZSBvcF9nZXRfZW51bWVyYWJsZV9sZW5ndGg6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGNmMDFiY2UwNTNhM2U1NzdkZTk5N2IwMzMz
OWI3YjE0YzY2ODg5MjEuLmRjYTZjNGFmMjlhOTM1MWUwNWZmYzJmZjIxMWE1NWE2ZWY5NWUyMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC03MDYsNiAr
NzA2LDggQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3Qg
UmVhZEZ1bmN0b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICBjYXNlIFRvUHJvcGVydHlLZXk6
CiAgICAgY2FzZSBJbkJ5VmFsOgogICAgIGNhc2UgSW5CeUlkOgorICAgIGNhc2UgSGFzUHJpdmF0
ZU5hbWU6CisgICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6CiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0
eToKICAgICBjYXNlIFZhbHVlTmVnYXRlOgogICAgIGNhc2UgU2V0RnVuY3Rpb25OYW1lOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IGNmYzIyMzAwMGE1MzJiMWMz
YjM5ODBlNTRhNTAxYTNkM2RmYWFiMDkuLjAyODRhN2UzMDRhMDA2ZTEwZTFhMzM2NjAxZWJhN2Ji
YWY3OTMyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTMw
Nyw2ICszMDcsOCBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBJblN0cnVjdHVyZVByb3BlcnR5OgogICAgIGNhc2UgSW5CeUlkOgogICAgIGNhc2UgSW5C
eVZhbDoKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5k
OgogICAgIGNhc2UgSW5zdGFuY2VPZjoKICAgICBjYXNlIEluc3RhbmNlT2ZDdXN0b206CiAgICAg
Y2FzZSBWYXJhcmdzTGVuZ3RoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKaW5kZXggMzc0ZDU1MzA1ZGY4ZDg3NTAzMmUwNDc3N2JjMzIyMTlhNTUxNTgwYS4u
ZjY1ZjliNTc5MGU2NmUxZDkyZTIxMmM3YTFlNTU0ZTg5ZDhhOGJlYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yMTA2LDYgKzIxMDYsMTMgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBI
YXNQcml2YXRlTmFtZToKKyAgICAgICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6IHsKKyAgICAgICAg
ICAgIGZpeEVkZ2U8Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgZml4RWRn
ZTxTeW1ib2xVc2U+KG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisKICAgICAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eTogewogICAgICAgICAgICAgZml4RWRn
ZTxPYmplY3RVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGlmIChub2RlLT5jaGls
ZDIoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R05vZGVUeXBlLmgKaW5kZXggYWYyNjgyODZjODEwMDlkMTgyNmNiMTBiY2Y1N2I1MTEwYTRhNzMz
OS4uMjlmMzg4YWZjZDM4NzUzOGFmN2U0NDQyYWQwZWZkNmZkM2Q1YjgxMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtNDMxLDYgKzQzMSw4IEBAIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhNYWtlUm9wZSwgTm9kZVJlc3VsdEpT
KSBcCiAgICAgbWFjcm8oSW5CeVZhbCwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVy
YXRlKSBcCiAgICAgbWFjcm8oSW5CeUlkLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2Vu
ZXJhdGUpIFwKKyAgICBtYWNybyhIYXNQcml2YXRlTmFtZSwgTm9kZVJlc3VsdEJvb2xlYW4gfCBO
b2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oSGFzUHJpdmF0ZUJyYW5kLCBOb2RlUmVzdWx0
Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhQcm9maWxlVHlwZSwgTm9k
ZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFByb2ZpbGVDb250cm9sRmxvdywgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKFNldEZ1bmN0aW9uTmFtZSwgTm9kZU11c3RHZW5lcmF0ZSkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCBmZTc2ZDJiNmUwZjk2ZjNlMjhmYzNkOTgzZmIz
M2FjMjMxNjg2YjMxLi41YjU4MGJiNTQzYzE5ZGNhYmY4N2EwNGZjNzgzMjc1ODI0MDgxZGMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMTIwNCwxOSArMTIwNCwxNSBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjT2JqZWN0T3RoZXIpOwogICAgICAgICAgICAg
YnJlYWs7CiAKLSAgICAgICAgY2FzZSBJbkJ5VmFsOgotICAgICAgICBjYXNlIEluQnlJZDoKLSAg
ICAgICAgICAgIHNldFByZWRpY3Rpb24oU3BlY0Jvb2xlYW4pOwotICAgICAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eToKLSAgICAgICAgICAgIHNldFByZWRpY3Rp
b24oU3BlY0Jvb2xlYW4pOwotICAgICAgICAgICAgYnJlYWs7Ci0KICAgICAgICAgY2FzZSBHZXRF
bnVtZXJhYmxlTGVuZ3RoOiB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNJbnQzMk9u
bHkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBJbkJ5VmFs
OgorICAgICAgICBjYXNlIEluQnlJZDoKKyAgICAgICAgY2FzZSBIYXNQcml2YXRlTmFtZToKKyAg
ICAgICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6CisgICAgICAgIGNhc2UgSGFzT3duUHJvcGVydHk6
CiAgICAgICAgIGNhc2UgSGFzT3duU3RydWN0dXJlUHJvcGVydHk6CiAgICAgICAgIGNhc2UgSW5T
dHJ1Y3R1cmVQcm9wZXJ0eToKICAgICAgICAgY2FzZSBIYXNJbmRleGVkUHJvcGVydHk6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDA3YTg1ZGIz
ZDYwYzYwODBhODNlNmRhNDE4NjhiYmY0YjdjZWY2YzcuLjI4MTMxN2EzYzUzMGUwOTBhMDMwMmJl
OWM4OGNkN2I3NWNiMzQ5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2Fm
ZVRvRXhlY3V0ZS5oCkBAIC01OTEsNiArNTkxLDggQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3Ry
YWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8K
ICAgICBjYXNlIE5ld1N0cmluZ09iamVjdDoKICAgICBjYXNlIEluQnlWYWw6CiAgICAgY2FzZSBJ
bkJ5SWQ6CisgICAgY2FzZSBIYXNQcml2YXRlTmFtZToKKyAgICBjYXNlIEhhc1ByaXZhdGVCcmFu
ZDoKICAgICBjYXNlIEhhc093blByb3BlcnR5OgogICAgIGNhc2UgUHVzaFdpdGhTY29wZToKICAg
ICBjYXNlIENyZWF0ZUFjdGl2YXRpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDg4MTliNGMxNTkyNDIxMGVmZWQ1ZDViYTljMjU2
Y2VkMTJkYTRhODEuLjczZjkxMTRlYWY4ODNjZWVmOWNhMDNiODRmMTZlZTY0NGU2ZDI4ZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBA
IC0xMjgyLDYgKzEyODIsNDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluQnlWYWwo
Tm9kZSogbm9kZSkKICAgICBibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRSZWdzLnBheWxvYWRH
UFIoKSwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKIH0KIAordm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUhhc1ByaXZhdGVOYW1lKE5vZGUqIG5vZGUpCit7CisgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQga2V5KHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKKworICAgIEdQUlJlZyBi
YXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcga2V5R1BSID0ga2V5LmdwcigpOworCisg
ICAgc3BlY3VsYXRlU3ltYm9sKG5vZGUtPmNoaWxkMigpLCBrZXlHUFIpOworCisgICAgYmFzZS51
c2UoKTsKKyAgICBrZXkudXNlKCk7CisKKyAgICBmbHVzaFJlZ2lzdGVycygpOworICAgIEpTVmFs
dWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOworICAgIEpTVmFsdWVSZWdzIHJl
c3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFz
UHJpdmF0ZU5hbWUsIHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3Jh
cGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNl
R1BSLCBDQ2FsbEhlbHBlcnM6OkNlbGxWYWx1ZShrZXlHUFIpKTsKKyAgICBtX2ppdC5leGNlcHRp
b25DaGVjaygpOworICAgIGJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdFJlZ3MucGF5bG9hZEdQ
UigpLCBub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOworfQorCit2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlSGFzUHJpdmF0ZUJyYW5kKE5vZGUqIG5vZGUpCit7CisgICAgU3Bl
Y3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CisgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgYnJhbmQodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworCisgICAgR1BSUmVn
IGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyBicmFuZEdQUiA9IGJyYW5kLmdwcigp
OworCisgICAgc3BlY3VsYXRlU3ltYm9sKG5vZGUtPmNoaWxkMigpLCBicmFuZEdQUik7CisKKyAg
ICBiYXNlLnVzZSgpOworICAgIGJyYW5kLnVzZSgpOworCisgICAgZmx1c2hSZWdpc3RlcnMoKTsK
KyAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvbkhhc1ByaXZhdGVCcmFuZCwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vha1Bv
aW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFu
dGljKSksIGJhc2VHUFIsIENDYWxsSGVscGVyczo6Q2VsbFZhbHVlKGJyYW5kR1BSKSk7CisgICAg
bV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICBibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRS
ZWdzLnBheWxvYWRHUFIoKSwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKK30K
Kwogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1c2hXaXRoU2NvcGUoTm9kZSogbm9kZSkK
IHsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBjdXJyZW50U2NvcGUodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5o
CmluZGV4IDk3MTc1MjI4ZjYyZGE3MzUwMDIxMGVmZDJjZWNjYTk1ODJiNjgwMmQuLjQxNWM2OTc2
ZTE2ODZkYmQ0OWE2ODljYjE3MGEyMzZiOWU2NmZkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTczOCw2ICs3MzgsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqLCBBY2Nlc3NUeXBlKTsKICAgICB2
b2lkIGNvbXBpbGVJbkJ5SWQoTm9kZSopOwogICAgIHZvaWQgY29tcGlsZUluQnlWYWwoTm9kZSop
OworICAgIHZvaWQgY29tcGlsZUhhc1ByaXZhdGVOYW1lKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBp
bGVIYXNQcml2YXRlQnJhbmQoTm9kZSopOwogICAgIAogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVO
b25QZWVwaG9sZUNvbXBhcmVOdWxsT3JVbmRlZmluZWQoRWRnZSBvcGVyYW5kKTsKICAgICB2b2lk
IG5vblNwZWN1bGF0aXZlUGVlcGhvbGVCcmFuY2hOdWxsT3JVbmRlZmluZWQoRWRnZSBvcGVyYW5k
LCBOb2RlKiBicmFuY2hOb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDM0MjQwZTU0ZTg1N2Y1OGFkNDc2YTZh
ZjNiZWEzMmNkN2MyMTZkNjguLjljNjFiNzk1MmMyMjUwNGI4MDE1MzJkZTk1YjJiNDNmNzU1NmRi
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcApAQCAtMzk4NCw2ICszOTg0LDE0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUluQnlWYWwobm9kZSk7CiAgICAg
ICAgIGJyZWFrOwogCisgICAgY2FzZSBIYXNQcml2YXRlTmFtZToKKyAgICAgICAgY29tcGlsZUhh
c1ByaXZhdGVOYW1lKG5vZGUpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgSGFzUHJpdmF0
ZUJyYW5kOgorICAgICAgICBjb21waWxlSGFzUHJpdmF0ZUJyYW5kKG5vZGUpOworICAgICAgICBi
cmVhazsKKwogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6IHsKICAgICAgICAgU3BlY3VsYXRlQ2Vs
bE9wZXJhbmQgb2JqZWN0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9y
YXJ5IHVuaXF1ZWRTdHJpbmdJbXBsKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMzhlZTZiNGE2ZWY5MDk3NDM1YWI4
ZTA5NTI5MWQwYjZlNzc0MTMwNS4uODQ4NjRiOTMxNjE5YjYzZmQ2YzZhYjg2MTk3ZjA1ZGZhZmMx
MDAzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwCkBAIC00OTYwLDYgKzQ5NjAsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlSW5CeVZhbChub2RlKTsKICAgICAgICAg
YnJlYWs7CiAKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgICAgICBjb21waWxlSGFzUHJp
dmF0ZU5hbWUobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBIYXNQcml2YXRlQnJh
bmQ6CisgICAgICAgIGNvbXBpbGVIYXNQcml2YXRlQnJhbmQobm9kZSk7CisgICAgICAgIGJyZWFr
OworCiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3Bl
cmFuZCBvYmplY3QodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jhcnkg
dW5pcXVlZFN0cmluZ0ltcGwodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAKaW5kZXggM2RmMDQ0YThmZjFiNTg1MmI1ZWFmM2MwNGZhOTYwOGRj
ZmUwOTgyZi4uNGY2ZTAzN2NiMTFjNTI0YjkxMTEzOWUwNGM5ZjA1ZTZjNGRkYjg3MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMjQzLDYg
KzI0Myw4IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQog
ICAgIGNhc2UgVW5yZWFjaGFibGU6CiAgICAgY2FzZSBJbkJ5VmFsOgogICAgIGNhc2UgSW5CeUlk
OgorICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6CiAg
ICAgY2FzZSBIYXNPd25Qcm9wZXJ0eToKICAgICBjYXNlIElzQ2VsbFdpdGhUeXBlOgogICAgIGNh
c2UgTWFwSGFzaDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAppbmRleCA1YmY5NDExMDA3MDRhYmYxNTQyN2IwODUzZDE4MmMxYjg3Y2M0ZGUyLi5hNWI5
NTJjNzViNzEwMGNmNjlmM2YxMWE4MTliZmFhMjNiYWQ3NzJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC05NjIsNiArOTYyLDEyIEBAIHBy
aXZhdGU6CiAgICAgICAgIGNhc2UgSW5CeVZhbDoKICAgICAgICAgICAgIGNvbXBpbGVJbkJ5VmFs
KCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBIYXNQcml2YXRlTmFtZToKKyAg
ICAgICAgICAgIGNvbXBpbGVIYXNQcml2YXRlTmFtZSgpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOgorICAgICAgICAgICAgY29tcGlsZUhhc1ByaXZh
dGVCcmFuZCgpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ2hlY2tQcml2YXRl
QnJhbmQ6CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tQcml2YXRlQnJhbmQoKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMTIyNjMsNiArMTIyNjksMTggQEAgcHJpdmF0ZToKICAgICAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3Jp
Z2luLnNlbWFudGljKTsKICAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG9wZXJhdGlv
bkluQnlWYWwsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0NlbGwobV9ub2RlLT5jaGls
ZDEoKSksIGxvd0pTVmFsdWUobV9ub2RlLT5jaGlsZDIoKSkpKTsKICAgICB9CisgICAgCisgICAg
dm9pZCBjb21waWxlSGFzUHJpdmF0ZU5hbWUoKQorICAgIHsKKyAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFu
dGljKTsKKyAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkhhc1ByaXZh
dGVOYW1lLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQx
KCkpLCBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDIoKSkpKTsKKyAgICB9CisKKyAgICB2b2lkIGNv
bXBpbGVIYXNQcml2YXRlQnJhbmQoKQorICAgIHsKKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCA9IG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG1fb3JpZ2luLnNlbWFudGljKTsK
KyAgICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFu
ZCwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwg
bG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CisgICAgfQogCiAgICAgdm9pZCBjb21waWxl
SW5CeUlkKCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggNzZkMWE1MTdk
OWM4OGQyMDk3MDI1Zjg0NDVmNjljOWVkNjNjZmQzZi4uNGZkZDljYTA1MTRiYjdkOWM3NTZhMzkx
NTlmMjhjZTM2NjA3NWFhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMjg2LDYg
KzI4Niw4IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKIAogICAgICAgICBz
d2l0Y2ggKG9wY29kZUlEKSB7CiAgICAgICAgIERFRklORV9TTE9XX09QKGluX2J5X3ZhbCkKKyAg
ICAgICAgREVGSU5FX1NMT1dfT1AoaGFzX3ByaXZhdGVfbmFtZSkKKyAgICAgICAgREVGSU5FX1NM
T1dfT1AoaGFzX3ByaXZhdGVfYnJhbmQpCiAgICAgICAgIERFRklORV9TTE9XX09QKGxlc3MpCiAg
ICAgICAgIERFRklORV9TTE9XX09QKGxlc3NlcSkKICAgICAgICAgREVGSU5FX1NMT1dfT1AoZ3Jl
YXRlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4
IDc0YmQyODlmYWZmNDY1ZDMxMTYyOTA0NDY5NDcyNTFlMTc2Y2Q2ZjkuLjE2ZTViNWE0YmE0ZGRk
YTI3YTliMzlmODA0MDY5ZmUwZGVlZmNkOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcApAQCAtNDcwLDYgKzQ3MCw0NSBAQCBKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uSW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKENvbW1vblNsb3dQ
YXRoczo6b3BJbkJ5VmFsKGdsb2JhbE9iamVjdCwgYmFzZSwgSlNWYWx1ZTo6ZGVjb2RlKGtleSkp
KSk7CiB9CiAKK0pTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQcml2YXRlTmFt
ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwq
IGJhc2UsIEVuY29kZWRKU1ZhbHVlIGtleSkpCit7CisgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3Vw
ZXJTYW1wbGVyU2NvcGUoZmFsc2UpOworICAgIAorICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFtZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7
CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxs
RnJhbWUpOworCisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAg
IGlmICghYmFzZS0+aXNPYmplY3QoKSkgeworICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxP
YmplY3QsIHNjb3BlLCBjcmVhdGVJbnZhbGlkSW5QYXJhbWV0ZXJFcnJvcihnbG9iYWxPYmplY3Qs
IGJhc2UpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2Up
KTsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHByb3BlcnR5VmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUo
a2V5KTsKKyAgICBBU1NFUlQocHJvcGVydHlWYWx1ZS5pc1N5bWJvbCgpKTsKKyAgICBhdXRvIHBy
b3BlcnR5ID0gcHJvcGVydHlWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CisgICAg
RVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkpOworCisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZSktPmhhc1ByaXZhdGVGaWVsZChnbG9i
YWxPYmplY3QsIHByb3BlcnR5KSkpOworfQorCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSGFzUHJpdmF0ZUJyYW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgYnJhbmQpKQoreworICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKKyAgICAKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoIWJhc2UtPmlzT2JqZWN0KCkpIHsKKyAgICAgICAg
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSW52YWxpZEluUGFyYW1l
dGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGZhbHNlKSk7CisgICAgfQorCisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZSktPmhhc1ByaXZhdGVCcmFuZChnbG9iYWxPYmpl
Y3QsIEpTVmFsdWU6OmRlY29kZShicmFuZCkpKSk7Cit9CisKIEpTQ19ERUZJTkVfSklUX09QRVJB
VElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVh
YmxlSWRlbnRpZmllcikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2Nv
cGUoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRl
eCA5N2EwOTBkZTI4N2Q2NmNkMzE5ZDQyYTc3YWU0NWI0MTI4ZTA2ZTFkLi5hMzNiMWE1Y2YxMmI4
OWJhNTUyMTkxZTBmN2Y4NjZlYWZlMWEyZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wZXJhdGlvbnMuaApAQCAtMTc4LDYgKzE3OCw4IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uSW5CeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0Kiwg
U3RyCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBF
bmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSwgdWludHB0cl90KSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3Bl
cmF0aW9uSW5CeVZhbCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCos
IEVuY29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhh
c1ByaXZhdGVOYW1lLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwg
RW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFz
UHJpdmF0ZUJyYW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwg
RW5jb2RlZEpTVmFsdWUpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25Q
dXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyos
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2Us
IHVpbnRwdHJfdCkpOwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlk
Tm9uU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVp
bnRwdHJfdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCmluZGV4IDg3MmI4NTcyZGQ5M2NkOGJiOTVlN2VhNDIzNzQ0YzBlMmM1
ZmYwODMuLjY0M2ZkNGE4NjU2ZmZlODg1MzU0NzVlZjk2ZjVhYTZhMjIwZDEzY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
QEAgLTIwMTMsNiArMjAxMyw4IEBAIGVuZAogCiBzbG93UGF0aE9wKGluX2J5X2lkKQogc2xvd1Bh
dGhPcChpbl9ieV92YWwpCitzbG93UGF0aE9wKGhhc19wcml2YXRlX25hbWUpCitzbG93UGF0aE9w
KGhhc19wcml2YXRlX2JyYW5kKQogc2xvd1BhdGhPcChpc19jYWxsYWJsZSkKIHNsb3dQYXRoT3Ao
aXNfY29uc3RydWN0b3IpCiBzbG93UGF0aE9wKGxlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDVlYzU2OWVmNTQwMjY2OTcxMDg5ODdhZjZhYmE3NDEz
OTA4NDRlNTMuLjM4ZGRiMGU1MjAyZTEyY2Q1YmRlYjAxOTA1Njk2YWJjYTE3YWExYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0yMDcsNiArMjA3LDEw
IEBAIHB1YmxpYzoKIAogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBSZXNvbHZl
Tm9kZShsb2NhdGlvbiwgaWRlbnQsIHN0YXJ0KTsKICAgICB9CisgICAgRXhwcmVzc2lvbk5vZGUq
IGNyZWF0ZVByaXZhdGVJZGVudGlmaWVyTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0
aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcg
KG1fcGFyc2VyQXJlbmEpIFByaXZhdGVJZGVudGlmaWVyTm9kZShsb2NhdGlvbiwgaWRlbnQpOwor
ICAgIH0KICAgICBFeHByZXNzaW9uTm9kZSogY3JlYXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rv
a2VuTG9jYXRpb24mIGxvY2F0aW9uKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIE9iamVj
dExpdGVyYWxOb2RlKGxvY2F0aW9uKTsgfQogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVPYmpl
Y3RMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFByb3BlcnR5TGlzdE5v
ZGUqIHByb3BlcnRpZXMpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgT2JqZWN0TGl0ZXJh
bE5vZGUobG9jYXRpb24sIHByb3BlcnRpZXMpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggNzQ3ZDE1ODdiYjA3N2Q1MDE4ZTMw
ZWMzNWIwZGQyNjEzYmEzYWJiZC4uNjUxNjliNWNmYWZjM2VmMmYzNmIyOGMzN2FhMzU5MjNjZmE5
ZGM5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3Ry
dWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0
b3JzLmgKQEAgLTIwOSw2ICsyMDksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFTU0VS
VChtX3N0YXJ0Lm9mZnNldCA+PSBtX3N0YXJ0LmxpbmVTdGFydE9mZnNldCk7CiAgICAgfQogCisg
ICAgaW5saW5lIFByaXZhdGVJZGVudGlmaWVyTm9kZTo6UHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50KQor
ICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1faWRlbnQoaWRl
bnQpCisgICAgeworICAgIH0KKwogICAgIGlubGluZSBFbGVtZW50Tm9kZTo6RWxlbWVudE5vZGUo
aW50IGVsaXNpb24sIEV4cHJlc3Npb25Ob2RlKiBub2RlKQogICAgICAgICA6IG1fbm9kZShub2Rl
KQogICAgICAgICAsIG1fZWxpc2lvbihlbGlzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCmluZGV4IGVkMTczYzE3YTViYmE2YWJkMWNlN2M3OTA0ZmYyMDBiODA5Y2IxNzIuLjI1
ODM0ZmQ4MTkxM2E2ZmRjNmQyNWM1MmMxZDZkODdhYzNlYjdmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGFyc2VyL05vZGVzLmgKQEAgLTIxMyw2ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdmlydHVhbCBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICAgICAgdmlydHVhbCBib29sIGlzRGVsZXRlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFsQ2hhaW4oKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQcml2YXRlSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRl
Y29kZUluQ29uZGl0aW9uQ29udGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsJiwgTGFiZWwm
LCBGYWxsVGhyb3VnaE1vZGUpOwogCkBAIC02ODMsNiArNjg0LDIxIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBKU1RleHRQb3NpdGlvbiBtX3N0YXJ0OwogICAgIH07CiAKKyAgICAvLyBEdW1t
eSBleHByZXNzaW9uIHRvIGhvbGQgdGhlIExIUyBvZiBgI3ggaW4gb2JqYC4KKyAgICBjbGFzcyBQ
cml2YXRlSWRlbnRpZmllck5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAg
IHB1YmxpYzoKKyAgICAgICAgUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYsIGNvbnN0IElkZW50aWZpZXImKTsKKworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2
YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAg
IFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQq
ID0gbnVsbHB0cikgZmluYWwgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAg
ICAgICAgYm9vbCBpc1ByaXZhdGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQorCisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgfTsKKwogICAg
IGNsYXNzIEVsZW1lbnROb2RlIGZpbmFsIDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewog
ICAgIHB1YmxpYzoKICAgICAgICAgRWxlbWVudE5vZGUoaW50IGVsaXNpb24sIEV4cHJlc3Npb25O
b2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNzA1NjFi
OWFjMmE4NzgyYzczYzM4N2Y5NTZlYjc5MDQ0NDgyMWMzMy4uODc1NjAwYTA3NGZkMzdiMDA3MzFh
Y2M2NTcwNmE2NzgxYjkyMTYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2Vy
LmNwcApAQCAtNDIzMyw3ICs0MjMzLDE4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4g
VHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAg
ICAgIEpTVGV4dFBvc2l0aW9uIGV4cHJTdGFydCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAg
ICAgICBpbnQgaW5pdGlhbEFzc2lnbm1lbnRzID0gbV9wYXJzZXJTdGF0ZS5hc3NpZ25tZW50Q291
bnQ7CiAgICAgICAgIEpTVG9rZW5UeXBlIGxlYWRpbmdUb2tlblR5cGVGb3JVbmFyeUV4cHJlc3Np
b24gPSBtX3Rva2VuLm1fdHlwZTsKLSAgICAgICAgVHJlZUV4cHJlc3Npb24gY3VycmVudCA9IHBh
cnNlVW5hcnlFeHByZXNzaW9uKGNvbnRleHQpOworCisgICAgICAgIFRyZWVFeHByZXNzaW9uIGN1
cnJlbnQgPSAwOworICAgICAgICBpZiAoT3B0aW9uczo6dXNlUHJpdmF0ZUluKCkgJiYgbWF0Y2go
UFJJVkFURU5BTUUpKSB7CisgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBpZGVudCA9IG1f
dG9rZW4ubV9kYXRhLmlkZW50OworICAgICAgICAgICAgQVNTRVJUKGlkZW50KTsKKyAgICAgICAg
ICAgIHNlbWFudGljRmFpbElmRmFsc2UodXNlUHJpdmF0ZU5hbWUoaWRlbnQpLCAiQ2Fubm90IHJl
ZmVyZW5jZSBwcml2YXRlIG5hbWVzIG91dHNpZGUgb2YgY2xhc3MiKTsKKyAgICAgICAgICAgIGN1
cnJlbnRTY29wZSgpLT51c2VWYXJpYWJsZShpZGVudCwgZmFsc2UpOworICAgICAgICAgICAgbmV4
dCgpOworICAgICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKG1fdG9rZW4ubV90eXBlICE9IElO
VE9LRU4sICJCYXJlIHByaXZhdGUgbmFtZSBjYW4gb25seSBiZSB1c2VkIGFzIHRoZSBsZWZ0LWhh
bmQgc2lkZSBvZiBhbiBgaW5gIGV4cHJlc3Npb24iKTsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBj
b250ZXh0LmNyZWF0ZVByaXZhdGVJZGVudGlmaWVyTm9kZShsb2NhdGlvbiwgKmlkZW50KTsKKyAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICBjdXJyZW50ID0gcGFyc2VVbmFyeUV4cHJlc3Npb24o
Y29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKGN1cnJlbnQsICJDYW5ub3QgcGFyc2UgZXhw
cmVzc2lvbiIpOwogCiAgICAgICAgIGNvbnRleHQuYXBwZW5kQmluYXJ5RXhwcmVzc2lvbkluZm8o
b3BlcmFuZFN0YWNrRGVwdGgsIGN1cnJlbnQsIGV4cHJTdGFydCwgbGFzdFRva2VuRW5kUG9zaXRp
b24oKSwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSwgaW5pdGlhbEFzc2lnbm1lbnRzICE9IG1fcGFy
c2VyU3RhdGUuYXNzaWdubWVudENvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9TeW50YXhDaGVja2VyLmgKaW5kZXggYzNjNzVlYjlmNDRlMWI3MTU4ZWRlMDM1MGY4ZjFhMzhl
YTYzNzMwMi4uZjM1MDkzNjcxMzIzZTJiYmExMmUyZTRiZmYzODE5NDEwODEyNjg5NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTg1LDcgKzg1
LDcgQEAgcHVibGljOgogICAgICAgICBUZW1wbGF0ZVN0cmluZ1Jlc3VsdCwgVGVtcGxhdGVTdHJp
bmdMaXN0UmVzdWx0LAogICAgICAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0LCBUZW1w
bGF0ZUV4cHIsCiAgICAgICAgIFRhZ2dlZFRlbXBsYXRlRXhwciwgWWllbGRFeHByLCBBd2FpdEV4
cHIsCi0gICAgICAgIE1vZHVsZU5hbWVSZXN1bHQsCisgICAgICAgIE1vZHVsZU5hbWVSZXN1bHQs
IFByaXZhdGVJZGVudGlmaWVyLAogICAgICAgICBJbXBvcnRTcGVjaWZpZXJSZXN1bHQsIEltcG9y
dFNwZWNpZmllckxpc3RSZXN1bHQsCiAgICAgICAgIEV4cG9ydFNwZWNpZmllclJlc3VsdCwgRXhw
b3J0U3BlY2lmaWVyTGlzdFJlc3VsdCwKIApAQCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAg
ICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNOZXdUYXJnZXQoRXhwcmVzc2lvblR5cGUgdHlwZSkgeyBy
ZXR1cm4gdHlwZSA9PSBOZXdUYXJnZXRFeHByOyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlz
SW1wb3J0TWV0YShFeHByZXNzaW9uVHlwZSB0eXBlKSB7IHJldHVybiB0eXBlID09IEltcG9ydE1l
dGFFeHByOyB9CiAgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlUmVzb2x2ZShjb25zdCBKU1Rva2Vu
TG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVyJiwgaW50LCBpbnQpIHsgcmV0dXJuIFJlc29sdmVF
eHByOyB9CisgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKSB7IHJldHVybiBQcml2YXRl
SWRlbnRpZmllcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZU9iamVjdExpdGVyYWwoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJikgeyByZXR1cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBF
eHByZXNzaW9uVHlwZSBjcmVhdGVPYmplY3RMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYs
IGludCkgeyByZXR1cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBj
cmVhdGVBcnJheShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQpIHsgcmV0dXJuIEFycmF5TGl0
ZXJhbEV4cHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25T
bG93UGF0aHMuY3BwCmluZGV4IDgyZjNlY2IwODYzYjNkYWEwNTc0ZDVkOGQ4NDlkMjlkMzAyOWU5
YTUuLjZkM2E5NGMxZGU4NDM3NmQ2MDkzOWYwMzE5Y2FiOWQ2MWQ5NjUwZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtODUw
LDYgKzg1MCwzNSBAQCBKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX2luX2J5
X2lkKQogICAgIFJFVFVSTihqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVlKS0+aGFzUHJvcGVy
dHkoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2stPmlkZW50aWZpZXIoYnl0ZWNvZGUubV9wcm9wZXJ0
eSkpKSk7CiB9CiAKK0pTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaGFzX3By
aXZhdGVfbmFtZSkKK3sKKyAgICBCRUdJTigpOworCisgICAgYXV0byBieXRlY29kZSA9IHBjLT5h
czxPcEhhc1ByaXZhdGVOYW1lPigpOworICAgIGF1dG8gYmFzZVZhbHVlID0gR0VUX0MoYnl0ZWNv
ZGUubV9iYXNlKS5qc1ZhbHVlKCk7CisgICAgaWYgKCFiYXNlVmFsdWUuaXNPYmplY3QoKSkKKyAg
ICAgICAgVEhST1coY3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBi
YXNlVmFsdWUpKTsKKworICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IEdFVF9DKGJ5dGVjb2RlLm1f
cHJvcGVydHkpLmpzVmFsdWUoKTsKKyAgICBBU1NFUlQocHJvcGVydHlWYWx1ZS5pc1N5bWJvbCgp
KTsKKyAgICBhdXRvIHByb3BlcnR5ID0gcHJvcGVydHlWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2Jh
bE9iamVjdCk7CisgICAgQVNTRVJUKHByb3BlcnR5LmlzUHJpdmF0ZU5hbWUoKSk7CisKKyAgICBS
RVRVUk4oanNCb29sZWFuKGFzT2JqZWN0KGJhc2VWYWx1ZSktPmhhc1ByaXZhdGVGaWVsZChnbG9i
YWxPYmplY3QsIHByb3BlcnR5KSkpOworfQorCitKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgo
c2xvd19wYXRoX2hhc19wcml2YXRlX2JyYW5kKQoreworICAgIEJFR0lOKCk7CisKKyAgICBhdXRv
IGJ5dGVjb2RlID0gcGMtPmFzPE9wSGFzUHJpdmF0ZUJyYW5kPigpOworICAgIGF1dG8gYmFzZVZh
bHVlID0gR0VUX0MoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCk7CisgICAgaWYgKCFiYXNlVmFs
dWUuaXNPYmplY3QoKSkKKyAgICAgICAgVEhST1coY3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJy
b3IoZ2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUpKTsKKworICAgIFJFVFVSTihqc0Jvb2xlYW4oYXNP
YmplY3QoYmFzZVZhbHVlKS0+aGFzUHJpdmF0ZUJyYW5kKGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0
ZWNvZGUubV9icmFuZCkuanNWYWx1ZSgpKSkpOworfQorCiB0ZW1wbGF0ZTxPcGNvZGVTaXplIHdp
ZHRoPgogQUxXQVlTX0lOTElORSBTbG93UGF0aFJldHVyblR5cGUgaXRlcmF0b3JPcGVuVHJ5RmFz
dEltcGwoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEluc3RydWN0aW9uKiBwYykKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5k
ZXggODRlMmRhNWY3YWI2OGE2MjYyNDg1Y2I4Y2M0M2Y4MDU3MTQ4YzQ3MS4uNTg2NDdiZTk2ZTE4
YjRkYWNjZmE4YjVlZDRkMGRhMWE0YzcyNWE0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTI1Myw2ICsyNTMsOCBAQCBKU0NfREVD
TEFSRV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9pc19jYWxsYWJsZSk7CiBKU0NfREVDTEFS
RV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9pc19jb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFS
RV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9pbl9ieV9pZCk7CiBKU0NfREVDTEFSRV9DT01N
T05fU0xPV19QQVRIKHNsb3dfcGF0aF9pbl9ieV92YWwpOworSlNDX0RFQ0xBUkVfQ09NTU9OX1NM
T1dfUEFUSChzbG93X3BhdGhfaGFzX3ByaXZhdGVfbmFtZSk7CitKU0NfREVDTEFSRV9DT01NT05f
U0xPV19QQVRIKHNsb3dfcGF0aF9oYXNfcHJpdmF0ZV9icmFuZCk7CiBKU0NfREVDTEFSRV9DT01N
T05fU0xPV19QQVRIKHNsb3dfcGF0aF9kZWxfYnlfdmFsKTsKIEpTQ19ERUNMQVJFX0NPTU1PTl9T
TE9XX1BBVEgoc2xvd19wYXRoX3N0cmNhdCk7CiBKU0NfREVDTEFSRV9DT01NT05fU0xPV19QQVRI
KHNsb3dfcGF0aF90b19wcmltaXRpdmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKaW5kZXggNDRhMjA4MzMxOWU0MGM5NjJjYWUzZDI1ZmUxMzQ5OTAyMmI1NDBlNi4u
NGRkZTEwNThkMjA0NzEzMGM5YTU3YWE3NjZhMTJjYjRlMTAzMDA3NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNzYsMTAgKzE3NiwxMiBAQCBwdWJsaWM6
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNH
bG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAg
c3RhdGljIGJvb2wgZ2V0UHJpdmF0ZUZpZWxkU2xvdChKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0
KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBpbmxpbmUgYm9vbCBoYXNQcml2
YXRlRmllbGQoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUpOwogICAgIGlubGluZSBib29s
IGdldFByaXZhdGVGaWVsZChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90Jik7CiAgICAgaW5saW5lIHZvaWQgc2V0UHJpdmF0ZUZpZWxkKEpTR2xvYmFsT2JqZWN0Kiwg
UHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBpbmxpbmUgdm9p
ZCBkZWZpbmVQcml2YXRlRmllbGQoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgIGlubGluZSBib29sIGNoZWNrUHJpdmF0ZUJyYW5k
KEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CisgICAgaW5saW5lIGJvb2wgaGFzUHJp
dmF0ZUJyYW5kKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CisgICAgaW5saW5lIHZv
aWQgY2hlY2tQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGJyYW5kKTsKICAg
ICBpbmxpbmUgdm9pZCBzZXRQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGJy
YW5kKTsKIAogICAgIHVuc2lnbmVkIGdldEFycmF5TGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXggZjBhOGEzMDIw
YzlmODEyYmRkOGYyNmQ4NTZlNzFjMjIwNmNmZGQ4Ny4uNDhiNmJiNjY0OTRkMGVhNDIxODcwOTQx
ODkxNGY5MTcwZWFlYmQwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RJbmxpbmVzLmgKQEAgLTYwNiw2ICs2MDYsMTQgQEAgQUxXQVlTX0lOTElORSBib29s
IEpTT2JqZWN0OjpnZXRQcml2YXRlRmllbGRTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFs
T2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAoraW5saW5lIGJvb2wgSlNPYmplY3Q6Omhhc1By
aXZhdGVGaWVsZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKQoreworICAgIEFTU0VSVChwcm9wZXJ0eU5hbWUuaXNQcml2YXRlTmFtZSgpKTsK
KyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOworICAgIHVuc2lnbmVkIGF0dHJpYnV0
ZXM7CisgICAgcmV0dXJuIHN0cnVjdHVyZSh2bSktPmdldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRy
aWJ1dGVzKSAhPSBpbnZhbGlkT2Zmc2V0OworfQorCiBpbmxpbmUgYm9vbCBKU09iamVjdDo6Z2V0
UHJpdmF0ZUZpZWxkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShn
bG9iYWxPYmplY3QpOwpAQCAtNjY3LDIwICs2NzUsMjMgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpT
T2JqZWN0OjpnZXROb25SZWlmaWVkU3RhdGljUHJvcGVydHlOYW1lcyhWTSYgdm0sIFByb3BlcnR5
TmEKICAgICB9CiB9CiAKLWlubGluZSBib29sIEpTT2JqZWN0OjpjaGVja1ByaXZhdGVCcmFuZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJyYW5kKQoraW5saW5lIGJvb2wg
SlNPYmplY3Q6Omhhc1ByaXZhdGVCcmFuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIGJyYW5kKQoreworICAgIEFTU0VSVChicmFuZC5pc1N5bWJvbCgpKTsKKyAgICBWTSYg
dm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdGhp
cy0+c3RydWN0dXJlKHZtKTsKKyAgICByZXR1cm4gc3RydWN0dXJlLT5pc0JyYW5kZWRTdHJ1Y3R1
cmUoKSAmJiBqc0Nhc3Q8QnJhbmRlZFN0cnVjdHVyZSo+KHN0cnVjdHVyZSktPmNoZWNrQnJhbmQo
YXNTeW1ib2woYnJhbmQpKTsKK30KKworaW5saW5lIHZvaWQgSlNPYmplY3Q6OmNoZWNrUHJpdmF0
ZUJyYW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYnJhbmQpCiB7CiAg
ICAgQVNTRVJUKGJyYW5kLmlzU3ltYm9sKCkpOwogICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB0aGlzLT5zdHJ1Y3R1cmUodm0pOwotICAgIGlmICghc3Ry
dWN0dXJlLT5pc0JyYW5kZWRTdHJ1Y3R1cmUoKSB8fCAhanNDYXN0PEJyYW5kZWRTdHJ1Y3R1cmUq
PihzdHJ1Y3R1cmUpLT5jaGVja0JyYW5kKGFzU3ltYm9sKGJyYW5kKSkpIHsKKyAgICBpZiAoIXN0
cnVjdHVyZS0+aXNCcmFuZGVkU3RydWN0dXJlKCkgfHwgIWpzQ2FzdDxCcmFuZGVkU3RydWN0dXJl
Kj4oc3RydWN0dXJlKS0+Y2hlY2tCcmFuZChhc1N5bWJvbChicmFuZCkpKQogICAgICAgICB0aHJv
d0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVQcml2YXRlTWV0aG9kQWNjZXNz
RXJyb3IoZ2xvYmFsT2JqZWN0KSk7Ci0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
ZmFsc2UpOwotICAgIH0KLSAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSk7
Ci0KLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogaW5saW5lIHZvaWQgSlNPYmplY3Q6OnNldFByaXZh
dGVCcmFuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJyYW5kKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggN2U3OGFiYTVl
ZDcxYTRmNTYzZmY1YWZiZmRlM2FkNjU1MGVhYzJiMy4uNzA3N2FlMjhlZTM2NmIwODgxY2Q5OWUz
OTU3YjMzNzkzMWViMmJhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRp
b25zTGlzdC5oCkBAIC01MjEsNiArNTIxLDcgQEAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5V
c2VKSVRDYWdlKCk7CiAgICAgdihCb29sLCB1c2VQcml2YXRlU3RhdGljQ2xhc3NGaWVsZHMsIHRy
dWUsIE5vcm1hbCwgIklmIHRydWUsIHRoZSBwYXJzZXIgd2lsbCB1bmRlcnN0YW5kIHByaXZhdGUg
c3RhdGljIGRhdGEgZmllbGRzIGluc2lkZSBjbGFzc2VzLiIpIFwKICAgICB2KEJvb2wsIHVzZVBy
aXZhdGVDbGFzc0ZpZWxkcywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBhcnNlciB3aWxs
IHVuZGVyc3RhbmQgcHJpdmF0ZSBkYXRhIGZpZWxkcyBpbnNpZGUgY2xhc3Nlcy4iKSBcCiAgICAg
dihCb29sLCB1c2VQcml2YXRlTWV0aG9kcywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBh
cnNlciB3aWxsIHVuZGVyc3RhbmQgcHJpdmF0ZSBtZXRob2RzIGluc2lkZSBjbGFzc2VzLiIpIFwK
KyAgICB2KEJvb2wsIHVzZVByaXZhdGVJbiwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIHRoZSBw
YXJzZXIgd2lsbCB1bmRlcnN0YW5kIHByaXZhdGUgbWVtYmVyIGV4aXN0ZW5jZSBjaGVja3Mgd2l0
aCB0aGUgYGluYCBvcGVyYXRvci4iKSBcCiAgICAgdihCb29sLCB1c2VXZWJBc3NlbWJseVN0cmVh
bWluZywgdHJ1ZSwgTm9ybWFsLCAiQWxsb3cgdG8gcnVuIFdlYkFzc2VtYmx5J3MgU3RyZWFtaW5n
IEFQSSIpIFwKICAgICB2KEJvb2wsIHVzZVdlYkFzc2VtYmx5UmVmZXJlbmNlcywgdHJ1ZSwgTm9y
bWFsLCAiQWxsb3cgdHlwZXMgZnJvbSB0aGUgd2FzbSByZWZlcmVuY2VzIHNwZWMuIikgXAogICAg
IHYoQm9vbCwgdXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcywgZmFsc2UsIE5v
cm1hbCwgIkFsbG93IGZ1bmN0aW9uIHR5cGVzIGZyb20gdGhlIHdhc20gdHlwZWQgZnVuY3Rpb24g
cmVmZXJlbmNlcyBzcGVjLiIpIFwKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGMyYzRkYjZkNGZiMDY4YzRmYjg0NmYyNTI0NTdmYjE4OWU1
MzFmYi4uZTY2YzI0ZDhjZTg0NmRjNjYxZjQ3ZmMyYTdhN2M2MjFjYzUzMTk2OCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMS0wNS0wNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+
CisKKyAgICAgICAgU3VwcG9ydCBFcmdvbm9taWMgQnJhbmQgQ2hlY2tzIHByb3Bvc2FsIChgI3gg
aW4gb2JqYCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTA5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogc3RyZXNzL3ByaXZhdGUtaW4uanM6IEFkZGVkLgorICAgICAgICAqIHRlc3QyNjIvY29uZmln
LnlhbWw6IEFkZCBmZWF0dXJlIGZsYWcuCisKIDIwMjEtMDUtMDYgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmJpZCBmdXJ0aGVyIGV4ZWN1dGlvbiBpbiBqc2Mg
c2hlbGwgaWYgZXhlY3V0aW9uIGlzIHRlcm1pbmF0ZWQuCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0
cmVzcy9wcml2YXRlLWluLmpzIGIvSlNUZXN0cy9zdHJlc3MvcHJpdmF0ZS1pbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMTg4NTYyYzQyNTdiMzRiYWZkNGRlYmM1NTgzNGViN2UyZmIzMWMzCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcHJpdmF0ZS1pbi5qcwpAQCAtMCwwICsxLDYzIEBACisv
L0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlUHJpdmF0ZUluPTEiKQorCitmdW5jdGlvbiBhc3NlcnQo
YikgeworICBpZiAoIWIpIHRocm93IG5ldyBFcnJvcjsKK30KKworZnVuY3Rpb24gc2hvdWxkVGhy
b3dUeXBlRXJyb3IoZnVuYykgeworICAgIGxldCBlcnJvcjsKKyAgICB0cnkgeworICAgICAgICBm
dW5jKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorCisg
ICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ0V4cGVjdGVkIFR5cGVFcnJvciEnKTsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAg
Y2xhc3MgRiB7ICN4OyBzdGF0aWMgaXNGKG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9IH0KKyAg
Y2xhc3MgU0YgeyBzdGF0aWMgI3g7IHN0YXRpYyBpc1NGKG9iaikgeyByZXR1cm4gI3ggaW4gb2Jq
OyB9IH0KKworICBjbGFzcyBNIHsgI3goKSB7fSBzdGF0aWMgaXNNKG9iaikgeyByZXR1cm4gI3gg
aW4gb2JqOyB9IH0KKyAgY2xhc3MgU00geyBzdGF0aWMgI3goKSB7fSBzdGF0aWMgaXNTTShvYmop
IHsgcmV0dXJuICN4IGluIG9iajsgfSB9CisKKyAgY2xhc3MgRyB7IGdldCAjeCgpIHt9IHN0YXRp
YyBpc0cob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorICBjbGFzcyBTRyB7IHN0YXRpYyBn
ZXQgI3goKSB7fSBzdGF0aWMgaXNTRyhvYmopIHsgcmV0dXJuICN4IGluIG9iajsgfSB9CisKKyAg
Y2xhc3MgUyB7IHNldCAjeCh2KSB7fSBzdGF0aWMgaXNTKG9iaikgeyByZXR1cm4gI3ggaW4gb2Jq
OyB9IH0KKyAgY2xhc3MgU1MgeyBzdGF0aWMgc2V0ICN4KHYpIHt9IHN0YXRpYyBpc1NTKG9iaikg
eyByZXR1cm4gI3ggaW4gb2JqOyB9IH0KKworICBhc3NlcnQoRi5pc0YobmV3IEYpKTsKKyAgYXNz
ZXJ0KCFGLmlzRihGKSAmJiAhRi5pc0YobmV3IE0pICYmICFGLmlzRih7fSkpOworICBzaG91bGRU
aHJvd1R5cGVFcnJvcigoKSA9PiBGLmlzRigzKSk7CisgIGFzc2VydChTRi5pc1NGKFNGKSk7Cisg
IGFzc2VydCghU0YuaXNTRihuZXcgU0YpICYmICFTRi5pc1NGKFNNKSAmJiAhU0YuaXNTRih7fSkp
OworICBzaG91bGRUaHJvd1R5cGVFcnJvcigoKSA9PiBTRi5pc1NGKDMpKTsKKworICBhc3NlcnQo
TS5pc00obmV3IE0pKTsKKyAgYXNzZXJ0KCFNLmlzTShNKSAmJiAhTS5pc00obmV3IEYpICYmICFN
LmlzTSh7fSkpOworICBzaG91bGRUaHJvd1R5cGVFcnJvcigoKSA9PiBNLmlzTSgzKSk7CisgIGFz
c2VydChTTS5pc1NNKFNNKSk7CisgIGFzc2VydCghU00uaXNTTShuZXcgU00pICYmICFTTS5pc1NN
KFNGKSAmJiAhU00uaXNTTSh7fSkpOworICBzaG91bGRUaHJvd1R5cGVFcnJvcigoKSA9PiBTTS5p
c1NNKDMpKTsKKworICBhc3NlcnQoRy5pc0cobmV3IEcpKTsKKyAgYXNzZXJ0KCFHLmlzRyhHKSAm
JiAhRy5pc0cobmV3IEYpICYmICFHLmlzRyh7fSkpOworICBzaG91bGRUaHJvd1R5cGVFcnJvcigo
KSA9PiBHLmlzRygzKSk7CisgIGFzc2VydChTRy5pc1NHKFNHKSk7CisgIGFzc2VydCghU0cuaXNT
RyhuZXcgU0cpICYmICFTRy5pc1NHKFNGKSAmJiAhU0cuaXNTRyh7fSkpOworICBzaG91bGRUaHJv
d1R5cGVFcnJvcigoKSA9PiBTRy5pc1NHKDMpKTsKKworICBhc3NlcnQoUy5pc1MobmV3IFMpKTsK
KyAgYXNzZXJ0KCFTLmlzUyhTKSAmJiAhUy5pc1MobmV3IEYpICYmICFTLmlzUyh7fSkpOworICBz
aG91bGRUaHJvd1R5cGVFcnJvcigoKSA9PiBTLmlzUygzKSk7CisgIGFzc2VydChTUy5pc1NTKFNT
KSk7CisgIGFzc2VydCghU1MuaXNTUyhuZXcgU1MpICYmICFTUy5pc1NTKFNGKSAmJiAhU1MuaXNT
Uyh7fSkpOworICBzaG91bGRUaHJvd1R5cGVFcnJvcigoKSA9PiBTUy5pc1NTKDMpKTsKK30KK25v
SW5saW5lKHRlc3QpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspCisgIHRlc3Qo
KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbCBiL0pTVGVzdHMvdGVz
dDI2Mi9jb25maWcueWFtbAppbmRleCBmNWNkN2Y3OTUxMGUwYmE3MTg1ZTFmMzYzNmExZGJiMDQ1
ZmM1OWNkLi40MWM4MjFhZjk3NzNhOTY2MjMxY2FjNDNjYjRiOTM2NmVhMmVkNWI1IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKKysrIGIvSlNUZXN0cy90ZXN0MjYyL2Nv
bmZpZy55YW1sCkBAIC00LDYgKzQsNyBAQCBmbGFnczoKICAgV2Vha1JlZjogdXNlV2Vha1JlZnMK
ICAgRmluYWxpemF0aW9uUmVnaXN0cnk6IHVzZVdlYWtSZWZzCiAgIGNsYXNzLWZpZWxkcy1wcml2
YXRlOiB1c2VQcml2YXRlQ2xhc3NGaWVsZHMKKyAgY2xhc3MtZmllbGRzLXByaXZhdGUtaW46IHVz
ZVByaXZhdGVJbgogICBjbGFzcy1tZXRob2RzLXByaXZhdGU6IHVzZVByaXZhdGVNZXRob2RzCiAg
IGNsYXNzLXN0YXRpYy1maWVsZHMtcHVibGljOiB1c2VQdWJsaWNTdGF0aWNDbGFzc0ZpZWxkcwog
ICBjbGFzcy1zdGF0aWMtZmllbGRzLXByaXZhdGU6IHVzZVByaXZhdGVTdGF0aWNDbGFzc0ZpZWxk
cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428855</attachid>
            <date>2021-05-17 12:45:44 -0700</date>
            <delta_ts>2021-05-17 13:33:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221093-20210517124544.patch</filename>
            <type>text/plain</type>
            <size>46155</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ODMwY2E5M2QwNDg4MzQyZjIwOThmNjFjZTU5MzA5ZjFmM2E4NWE4Li5iYzBlNjg1NzBiOGVkMDBk
NWNhYjUwMTlmNDg2ZGI0ODgxNmQ1ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0wNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBFcmdvbm9taWMgQnJhbmQgQ2hlY2tzIHByb3Bvc2Fs
IChgI3ggaW4gb2JqYCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTA5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIFN0YWdlIDMgcHJvcG9z
YWwgKGJlaGluZCBhIHJ1bnRpbWUgb3B0aW9uKToKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29t
L3RjMzkvcHJvcG9zYWwtcHJpdmF0ZS1maWVsZHMtaW4taW4KKworICAgICAgICBTcGVjaWZpY2Fs
bHksIGl0IGV4dGVuZHMgdGhlIGBpbmAga2V5d29yZCB0byBhbGxvdyB0aGUgTEhTIHRvIGJlIGEg
cHJpdmF0ZSBuYW1lLAorICAgICAgICB0aGVyZWJ5IGFsbG93aW5nIHVzZXJzIHRvIGltcGxlbWVu
dCBBcnJheS5pc0FycmF5LWVzcXVlIGJyYW5kIGNoZWNrcyBmb3IgdGhlaXIgb3duIGNsYXNzZXMK
KyAgICAgICAgKndpdGhvdXQqIGhhdmluZyB0byB3cmFwIGEgcHJpdmF0ZSBtZW1iZXIgZ2V0IGlu
IGEgdHJ5LWNhdGNoLgorCisgICAgICAgIEZvciBleGFtcGxlOgorICAgICAgICBgYGAKKyAgICAg
ICAgY2xhc3MgQyB7CisgICAgICAgICAgICAjeDsKKyAgICAgICAgICAgIHN0YXRpYyBpc0Mob2Jq
KSB7IHJldHVybiAjeCBpbiBvYmo7IH0KKyAgICAgICAgfQorICAgICAgICBgYGAKKworICAgICAg
ICBUaGlzIGlzIGRvbmUgYnkgYWRkaW5nIHR3byBuZXcgYnl0ZWNvZGUgb3BzLCBIYXNQcml2YXRl
TmFtZSBhbmQgSGFzUHJpdmF0ZUJyYW5kLiBGb3IgdGhlIG1vbWVudCwKKyAgICAgICAgdGhlc2Ug
YXJlIGltcGxlbWVudGVkIHdpdGhvdXQgZmFzdCBwYXRocywgYXMgd2Ugc2hvdWxkIGRvIHNvIGZv
ciBJbkJ5VmFsIGZpcnN0IGFuZCB0aGVuIGhhdmUgdGhlc2UgZm9sbG93IHN1aXQuCisKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QucmI6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuY3BwOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJ
bXBsKToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZUluZGV4SW1wbCk6Cisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRIYXNQcml2YXRlTmFtZSk6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SGFzUHJpdmF0ZUJyYW5kKToKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDaGVja1ByaXZhdGVCcmFuZCk6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkluTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5o
OgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAg
ICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9F
eGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzUHJpdmF0ZU5hbWUpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzUHJpdmF0ZUJyYW5kKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAg
ICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZUhhc1ByaXZhdGVOYW1lKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUhhc1ByaXZhdGVCcmFuZCk6CisgICAgICAgICogaml0L0pJVC5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAg
ICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04pOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcGFyc2VyL0FTVEJ1aWxkZXIu
aDoKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2Rl
KToKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpQ
cml2YXRlSWRlbnRpZmllck5vZGU6OlByaXZhdGVJZGVudGlmaWVyTm9kZSk6CisgICAgICAgICog
cGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OkV4cHJlc3Npb25Ob2RlOjppc1ByaXZhdGVJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzc2lvbik6CisgICAgICAg
ICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6
Y3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2RlKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSCk6
CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6SlNPYmplY3Q6Omhhc1ByaXZhdGVGaWVsZCk6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpoYXNQcml2YXRlQnJhbmQpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Y2hlY2tQcml2
YXRlQnJhbmQpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNS0x
NiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGJh
c2VsaW5lIG9wX2VudGVyLCBvcF9yZXQsIG9wX2NoZWNrX3RyYXBzLCBvcF90aHJvdyB1c2luZyBK
SVQgdGh1bmtzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QucmIKaW5kZXggMTY0MTAxZmVjZTA0MjZhMDAyZmY1YTQ3YTFjMDI0Yjg5NDY2NDQzYy4uMTgy
NWVjMmFkNWEwMzM5ZDRmM2VmMTk1ZGQ2ZjlmY2YyMmQwNjQ5YyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC00NTQsNiArNDU0LDIwIEBA
IG9wIDppbl9ieV9pZCwKICAgICAgICAgcHJvcGVydHk6IHVuc2lnbmVkLAogICAgIH0KIAorb3Ag
Omhhc19wcml2YXRlX25hbWUsCisgICAgYXJnczogeworICAgICAgICBkc3Q6IFZpcnR1YWxSZWdp
c3RlciwKKyAgICAgICAgYmFzZTogVmlydHVhbFJlZ2lzdGVyLAorICAgICAgICBwcm9wZXJ0eTog
VmlydHVhbFJlZ2lzdGVyLAorICAgIH0KKworb3AgOmhhc19wcml2YXRlX2JyYW5kLAorICAgIGFy
Z3M6IHsKKyAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgICAgIGJhc2U6IFZpcnR1
YWxSZWdpc3RlciwKKyAgICAgICAgYnJhbmQ6IFZpcnR1YWxSZWdpc3RlciwKKyAgICB9CisKIG9w
IDpnZXRfYnlfaWQsCiAgICAgYXJnczogewogICAgICAgICBkc3Q6IFZpcnR1YWxSZWdpc3RlciwK
QEAgLTYwOCw3ICs2MjIsNiBAQCBvcCA6Y2hlY2tfcHJpdmF0ZV9icmFuZCwKICAgICAgICAgc3Ry
dWN0dXJlSUQ6IFN0cnVjdHVyZUlELAogICAgICAgICBicmFuZDogV3JpdGVCYXJyaWVyW0pTQ2Vs
bF0sCiAgICAgfQotICAgIAogCiBvcCA6cHV0X2J5X3ZhbCwKICAgICBhcmdzOiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAppbmRleCAw
MTZhMDI3ZmEzM2FiNzk0OTQzMTJhNGE0NzdkZmM1YjJlN2EwMGQ3Li4wNzU2MTg5OWE2MjA5ZTM2
Y2JmYTcyYTA1NGYxNTEyZDY3MzhjMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTIzMiw2ICsyMzIsOCBAQCB2b2lkIGNv
bXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJlZ2lzdGVyIHNjb3BlUmVnaXN0
ZXIsIGNvbnN0IEluc3RydQogICAgIFVTRVMoT3BTZXRQcml2YXRlQnJhbmQsIGJhc2UsIGJyYW5k
KQogICAgIFVTRVMoT3BDaGVja1ByaXZhdGVCcmFuZCwgYmFzZSwgYnJhbmQpCiAgICAgVVNFUyhP
cEluQnlWYWwsIGJhc2UsIHByb3BlcnR5KQorICAgIFVTRVMoT3BIYXNQcml2YXRlTmFtZSwgYmFz
ZSwgcHJvcGVydHkpCisgICAgVVNFUyhPcEhhc1ByaXZhdGVCcmFuZCwgYmFzZSwgYnJhbmQpCiAg
ICAgVVNFUyhPcE92ZXJyaWRlc0hhc0luc3RhbmNlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VW
YWx1ZSkKICAgICBVU0VTKE9wSW5zdGFuY2VvZiwgdmFsdWUsIHByb3RvdHlwZSkKICAgICBVU0VT
KE9wQWRkLCBsaHMsIHJocykKQEAgLTUwOSw2ICs1MTEsOCBAQCB2b2lkIGNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwodW5zaWduZWQgbnVtVmFycywgY29uc3QgSW5zdHJ1Y3Rpb24qIGlu
c3RydQogICAgIERFRlMoT3BJc0NvbnN0cnVjdG9yLCBkc3QpCiAgICAgREVGUyhPcEluQnlJZCwg
ZHN0KQogICAgIERFRlMoT3BJbkJ5VmFsLCBkc3QpCisgICAgREVGUyhPcEhhc1ByaXZhdGVOYW1l
LCBkc3QpCisgICAgREVGUyhPcEhhc1ByaXZhdGVCcmFuZCwgZHN0KQogICAgIERFRlMoT3BUb051
bWJlciwgZHN0KQogICAgIERFRlMoT3BUb051bWVyaWMsIGRzdCkKICAgICBERUZTKE9wVG9TdHJp
bmcsIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggNThlNTBkYTA5MjFiMjA5ZjllYmVmZjJhYmRm
M2IzM2VmZDU1YmQ4Yi4uYmRiYWEyMTQ5NWUwMTNlOTdjZjU5ZGQ1NGU3NTNlYzhiMDkyMzBlNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAKQEAgLTI3MjQsNiArMjcyNCwxMiBAQCBSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdEdldFByaXZhdGVOYW1lKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogYgogICAgIHJldHVybiBkc3Q7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0SGFzUHJpdmF0ZU5hbWUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNl
LCBSZWdpc3RlcklEKiBwcm9wZXJ0eSkKK3sKKyAgICBPcEhhc1ByaXZhdGVOYW1lOjplbWl0KHRo
aXMsIGRzdCwgYmFzZSwgcHJvcGVydHkpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJlZ2lzdGVy
SUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RGlyZWN0UHV0QnlWYWwoUmVnaXN0ZXJJRCogYmFz
ZSwgUmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKQogewogICAgIE9wUHV0
QnlWYWxEaXJlY3Q6OmVtaXQodGhpcywgYmFzZSwgcHJvcGVydHksIHZhbHVlLCBlY21hTW9kZSgp
KTsKQEAgLTI3OTYsMTIgKzI4MDIsMjUgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRQcml2YXRlRmllbGRQdXQoUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCoKICAgICBy
ZXR1cm4gdmFsdWU7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SGFz
UHJpdmF0ZUJyYW5kKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJ
RCogYnJhbmQsIGJvb2wgaXNTdGF0aWMpCit7CisgICAgaWYgKGlzU3RhdGljKSB7CisgICAgICAg
IFJlZjxMYWJlbD4gaXNPYmplY3RMYWJlbCA9IG5ld0xhYmVsKCk7CisgICAgICAgIGVtaXRKdW1w
SWZUcnVlKGVtaXRJc09iamVjdChuZXdUZW1wb3JhcnkoKSwgYmFzZSksIGlzT2JqZWN0TGFiZWwu
Z2V0KCkpOworICAgICAgICBlbWl0VGhyb3dUeXBlRXJyb3IoIkNhbm5vdCBhY2Nlc3Mgc3RhdGlj
IHByaXZhdGUgbWV0aG9kIG9yIGFjY2Vzc29yIG9mIGEgbm9uLU9iamVjdCIpOworICAgICAgICBl
bWl0TGFiZWwoaXNPYmplY3RMYWJlbC5nZXQoKSk7CisgICAgICAgIGVtaXRFcXVhbGl0eU9wPE9w
U3RyaWN0ZXE+KGRzdCwgYmFzZSwgYnJhbmQpOworICAgIH0gZWxzZQorICAgICAgICBPcEhhc1By
aXZhdGVCcmFuZDo6ZW1pdCh0aGlzLCBkc3QsIGJhc2UsIGJyYW5kKTsKKyAgICByZXR1cm4gZHN0
OworfQorCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2hlY2tQcml2YXRlQnJhbmQoUmVn
aXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogYnJhbmQsIGJvb2wgaXNTdGF0aWMpCiB7CiAgICAg
aWYgKGlzU3RhdGljKSB7CiAgICAgICAgIFJlZjxMYWJlbD4gYnJhbmRDaGVja09rTGFiZWwgPSBu
ZXdMYWJlbCgpOwogICAgICAgICBlbWl0SnVtcElmVHJ1ZShlbWl0RXF1YWxpdHlPcDxPcFN0cmlj
dGVxPihuZXdUZW1wb3JhcnkoKSwgYmFzZSwgYnJhbmQpLCBicmFuZENoZWNrT2tMYWJlbC5nZXQo
KSk7Ci0gICAgICAgIGVtaXRUaHJvd1R5cGVFcnJvcigiQ2Fubm90IGFjY2VzcyBzdGF0aWMgcHJp
dmF0ZSBtZXRob2Qgb3IgYWNlc3NvciIpOworICAgICAgICBlbWl0VGhyb3dUeXBlRXJyb3IoIkNh
bm5vdCBhY2Nlc3Mgc3RhdGljIHByaXZhdGUgbWV0aG9kIG9yIGFjY2Vzc29yIik7CiAgICAgICAg
IGVtaXRMYWJlbChicmFuZENoZWNrT2tMYWJlbC5nZXQoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaAppbmRleCBlNTExZGMyNzU1NWRlNWI4ODQ0N2UzMzNmOWUxNjYyNWE4NTYy
NjFjLi5jYWZhNTc5ZTM3Y2YwN2UyYWFlODgyMGE0NzM0N2Q3Njg3MDNlNjk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCkBAIC04NDAsMTIgKzg0MCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdERlZmluZVByaXZhdGVGaWVsZChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklE
KiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
UHJpdmF0ZUZpZWxkUHV0KFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBS
ZWdpc3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRQcml2YXRlTmFt
ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5
KTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEhhc1ByaXZhdGVOYW1lKFJlZ2lzdGVySUQqIGRz
dCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHkpOwogCiAgICAgICAgIHZv
aWQgZW1pdENyZWF0ZVByaXZhdGVCcmFuZChSZWdpc3RlcklEKiBkc3QsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAgICAgICAgIHZvaWQgZW1pdEluc3RhbGxQcml2YXRl
QnJhbmQoUmVnaXN0ZXJJRCogdGFyZ2V0KTsKICAgICAgICAgdm9pZCBlbWl0SW5zdGFsbFByaXZh
dGVDbGFzc0JyYW5kKFJlZ2lzdGVySUQqIHRhcmdldCk7CiAKICAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEdldFByaXZhdGVCcmFuZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNjb3BlLCBi
b29sIGlzU3RhdGljKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEhhc1ByaXZhdGVCcmFuZChS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIGJyYW5kLCBib29s
IGlzU3RhdGljKTsKICAgICAgICAgdm9pZCBlbWl0Q2hlY2tQcml2YXRlQnJhbmQoUmVnaXN0ZXJJ
RCogYmFzZSwgUmVnaXN0ZXJJRCogYnJhbmQsIGJvb2wgaXNTdGF0aWMpOwogCiAgICAgICAgIHZv
aWQgZW1pdFN1cGVyU2FtcGxlckJlZ2luKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggM2NiZDEyMDk5ZTg1YjBiNDI2
MjA4MGE0M2EzNWRlODFmMmJkNTdiOS4uNmZmZTE2NjI3YThiMzJlZTI5OGZiNjc1NjVjY2NlYzI0
ZTgxOGUzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcApAQCAtMzIwNiw2ICszMjA2LDIzIEBAIFJlZ2lzdGVySUQqIEluc3Rh
bmNlT2ZOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJCiAKIFJlZ2lzdGVySUQqIEluTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKKyAgICBpZiAobV9leHByMS0+aXNQ
cml2YXRlSWRlbnRpZmllcigpKSB7CisgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0g
Z2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcjIpOworCisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9
IHN0YXRpY19jYXN0PFByaXZhdGVJZGVudGlmaWVyTm9kZSo+KG1fZXhwcjEpLT52YWx1ZSgpOwor
ICAgICAgICBhdXRvIHByaXZhdGVUcmFpdHMgPSBnZW5lcmF0b3IuZ2V0UHJpdmF0ZVRyYWl0cyhp
ZGVudGlmaWVyKTsKKyAgICAgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJhdG9yLnZhcmlhYmxlKGlk
ZW50aWZpZXIpOworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3Iu
ZW1pdFJlc29sdmVTY29wZShudWxscHRyLCB2YXIpOworCisgICAgICAgIGlmIChwcml2YXRlVHJh
aXRzLmlzRmllbGQoKSkgeworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByaXZhdGVO
YW1lID0gZ2VuZXJhdG9yLmVtaXRHZXRGcm9tU2NvcGUoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
LCBzY29wZS5nZXQoKSwgdmFyLCBEb05vdFRocm93SWZOb3RGb3VuZCk7CisgICAgICAgICAgICBy
ZXR1cm4gZ2VuZXJhdG9yLmVtaXRIYXNQcml2YXRlTmFtZShnZW5lcmF0b3IuZmluYWxEZXN0aW5h
dGlvbihkc3QsIGJhc2UuZ2V0KCkpLCBiYXNlLmdldCgpLCBwcml2YXRlTmFtZS5nZXQoKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJpdmF0ZUJyYW5kID0gZ2Vu
ZXJhdG9yLmVtaXRHZXRQcml2YXRlQnJhbmQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBzY29w
ZS5nZXQoKSwgcHJpdmF0ZVRyYWl0cy5pc1N0YXRpYygpKTsKKyAgICAgICAgcmV0dXJuIGdlbmVy
YXRvci5lbWl0SGFzUHJpdmF0ZUJyYW5kKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwg
YmFzZS5nZXQoKSksIGJhc2UuZ2V0KCksIHByaXZhdGVCcmFuZC5nZXQoKSwgcHJpdmF0ZVRyYWl0
cy5pc1N0YXRpYygpKTsKKyAgICB9CisKICAgICBpZiAoaXNOb25JbmRleFN0cmluZ0VsZW1lbnQo
Km1fZXhwcjEpKSB7CiAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9y
LmVtaXROb2RlKG1fZXhwcjIpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5k
ZXggZmE5ZDlmYTBiYmZiMDZkYjZkNjIwMTI3NWNmYzY2MzQxMTA5Yjk5Ni4uODBkNzI4N2ZiNjA4
MmYwZTQzZjJkN2JhZDI1YmM1ZThjMDEyNzFiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDIx
Miw2ICs0MjEyLDE1IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIAorICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgY2FzZSBIYXNQcml2YXRlQnJh
bmQ6IHsKKyAgICAgICAgY2xvYmJlcldvcmxkKCk7CisgICAgICAgIGZpbHRlcihub2RlLT5jaGls
ZDEoKSwgU3BlY09iamVjdCk7CisgICAgICAgIGZpbHRlcihub2RlLT5jaGlsZDIoKSwgU3BlY1N5
bWJvbCk7CisgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCBTcGVjQm9vbGVhbik7
CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6IHsKICAg
ICAgICAgY2xvYmJlcldvcmxkKCk7CiAgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2Rl
LCBTcGVjQm9vbGVhbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCmluZGV4IGUwZTU3Y2FkNmEwYjY5NjljMTgxNmUzZDA2NWViODdlOGNiNjAw
NDkuLmIxYmE1OGNhMWI3NTk4MTljNzRkNjllMWI5MGY4YTM4NzUxZWJjOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC04Mjc0LDYg
KzgyNzQsMTggQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1p
dCkKICAgICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChJbkJ5SWQsIE9w
SW5mbyhDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2Rl
QmxvY2sobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCB1aWQpKSwgYmFzZSkpOwog
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5fYnlfaWQpOwogICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBjYXNlIG9wX2hhc19wcml2YXRlX25hbWU6IHsKKyAgICAgICAgICAgIGF1dG8g
Ynl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSGFzUHJpdmF0ZU5hbWU+KCk7Cisg
ICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGFkZFRvR3JhcGgoSGFzUHJpdmF0ZU5hbWUs
IGdldChieXRlY29kZS5tX2Jhc2UpLCBnZXQoYnl0ZWNvZGUubV9wcm9wZXJ0eSkpKTsKKyAgICAg
ICAgICAgIE5FWFRfT1BDT0RFKG9wX2hhc19wcml2YXRlX25hbWUpOworICAgICAgICB9CisKKyAg
ICAgICAgY2FzZSBvcF9oYXNfcHJpdmF0ZV9icmFuZDogeworICAgICAgICAgICAgYXV0byBieXRl
Y29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlQnJhbmQ+KCk7CisgICAg
ICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGFkZFRvR3JhcGgoSGFzUHJpdmF0ZUJyYW5kLCBn
ZXQoYnl0ZWNvZGUubV9iYXNlKSwgZ2V0KGJ5dGVjb2RlLm1fYnJhbmQpKSk7CisgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9oYXNfcHJpdmF0ZV9icmFuZCk7CisgICAgICAgIH0KIAogICAgICAg
ICBjYXNlIG9wX2dldF9lbnVtZXJhYmxlX2xlbmd0aDogewogICAgICAgICAgICAgYXV0byBieXRl
Y29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRFbnVtZXJhYmxlTGVuZ3RoPigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGI0
ODE5ZmQ3NjliNThjZDUyYWRkMWE1NDZkNzBhM2E1ZDU5NDEzOTcuLmM3MTY0YjMwZjQ2NGViMGQ0
MzgyZTJjY2E0MmQ1Njk5NjRkMWJmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTI1MCw2ICsyNTAsOCBAQCBDYXBhYmlsaXR5TGV2ZWwg
Y2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Y29uc3QgSQogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAgY2FzZSBvcF9pbl9ieV92YWw6
CiAgICAgY2FzZSBvcF9pbl9ieV9pZDoKKyAgICBjYXNlIG9wX2hhc19wcml2YXRlX25hbWU6Cisg
ICAgY2FzZSBvcF9oYXNfcHJpdmF0ZV9icmFuZDoKICAgICBjYXNlIG9wX2dldF9zY29wZToKICAg
ICBjYXNlIG9wX2dldF9mcm9tX3Njb3BlOgogICAgIGNhc2Ugb3BfZ2V0X2VudW1lcmFibGVfbGVu
Z3RoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBjZjAx
YmNlMDUzYTNlNTc3ZGU5OTdiMDMzMzliN2IxNGM2Njg4OTIxLi5kY2E2YzRhZjI5YTkzNTFlMDVm
ZmMyZmYyMTFhNTVhNmVmOTVlMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaApAQCAtNzA2LDYgKzcwNiw4IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAg
ICAgY2FzZSBUb1Byb3BlcnR5S2V5OgogICAgIGNhc2UgSW5CeVZhbDoKICAgICBjYXNlIEluQnlJ
ZDoKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOgog
ICAgIGNhc2UgSGFzT3duUHJvcGVydHk6CiAgICAgY2FzZSBWYWx1ZU5lZ2F0ZToKICAgICBjYXNl
IFNldEZ1bmN0aW9uTmFtZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApp
bmRleCBjZmMyMjMwMDBhNTMyYjFjM2IzOTgwZTU0YTUwMWEzZDNkZmFhYjA5Li4wMjg0YTdlMzA0
YTAwNmUxMGUxYTMzNjYwMWViYTdiYmFmNzkzMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwCkBAIC0zMDcsNiArMzA3LDggQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdy
YXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgSW5TdHJ1Y3R1cmVQcm9wZXJ0eToKICAgICBjYXNl
IEluQnlJZDoKICAgICBjYXNlIEluQnlWYWw6CisgICAgY2FzZSBIYXNQcml2YXRlTmFtZToKKyAg
ICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKICAgICBjYXNlIEluc3RhbmNlT2Y6CiAgICAgY2FzZSBJ
bnN0YW5jZU9mQ3VzdG9tOgogICAgIGNhc2UgVmFyYXJnc0xlbmd0aDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDM3NGQ1NTMwNWRmOGQ4NzUwMzJl
MDQ3NzdiYzMyMjE5YTU1MTU4MGEuLmY2NWY5YjU3OTBlNjZlMWQ5MmUyMTJjN2ExZTU1NGU4OWQ4
YThiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApA
QCAtMjEwNiw2ICsyMTA2LDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCisgICAgICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgICAgIGNhc2UgSGFzUHJp
dmF0ZUJyYW5kOiB7CisgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgIGZpeEVkZ2U8U3ltYm9sVXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgSGFzT3duUHJvcGVydHk6
IHsKICAgICAgICAgICAgIGZpeEVkZ2U8T2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGFmMjY4Mjg2YzgxMDA5ZDE4
MjZjYjEwYmNmNTdiNTExMGE0YTczMzkuLjI5ZjM4OGFmY2QzODc1MzhhZjdlNDQ0MmFkMGVmZDZm
ZDNkNWI4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTQz
MSw2ICs0MzEsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8o
TWFrZVJvcGUsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKEluQnlWYWwsIE5vZGVSZXN1bHRC
b29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEluQnlJZCwgTm9kZVJlc3Vs
dEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oSGFzUHJpdmF0ZU5hbWUs
IE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKEhhc1By
aXZhdGVCcmFuZCwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAg
bWFjcm8oUHJvZmlsZVR5cGUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhQcm9maWxl
Q29udHJvbEZsb3csIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhTZXRGdW5jdGlvbk5h
bWUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggZmU3NmQy
YjZlMGY5NmYzZTI4ZmMzZDk4M2ZiMzNhYzIzMTY4NmIzMS4uNWI1ODBiYjU0M2MxOWRjYWJmODdh
MDRmYzc4MzI3NTgyNDA4MWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTEyMDQsMTkg
KzEyMDQsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHNldFByZWRpY3Rpb24oU3BlY09iamVj
dE90aGVyKTsKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgSW5CeVZhbDoKLSAg
ICAgICAgY2FzZSBJbkJ5SWQ6Ci0gICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNCb29sZWFu
KTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgSGFzT3duUHJvcGVydHk6Ci0g
ICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNCb29sZWFuKTsKLSAgICAgICAgICAgIGJyZWFr
OwotCiAgICAgICAgIGNhc2UgR2V0RW51bWVyYWJsZUxlbmd0aDogewogICAgICAgICAgICAgc2V0
UHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CisgICAgICAgIGNhc2UgSW5CeVZhbDoKKyAgICAgICAgY2FzZSBJbkJ5SWQ6CisgICAgICAgIGNh
c2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOgorICAgICAg
ICBjYXNlIEhhc093blByb3BlcnR5OgogICAgICAgICBjYXNlIEhhc093blN0cnVjdHVyZVByb3Bl
cnR5OgogICAgICAgICBjYXNlIEluU3RydWN0dXJlUHJvcGVydHk6CiAgICAgICAgIGNhc2UgSGFz
SW5kZXhlZFByb3BlcnR5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaAppbmRleCAwN2E4NWRiM2Q2MGM2MDgwYTgzZTZkYTQxODY4YmJmNGI3Y2VmNmM3Li4y
ODEzMTdhM2M1MzBlMDkwYTAzMDJiZTljODhjZDdiNzVjYjM0OWFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTkxLDYgKzU5MSw4IEBAIGJv
b2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwg
Tm9kZSogbm9kZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBOZXdTdHJpbmdPYmplY3Q6CiAgICAgY2Fz
ZSBJbkJ5VmFsOgogICAgIGNhc2UgSW5CeUlkOgorICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6Cisg
ICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6CiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eToKICAgICBj
YXNlIFB1c2hXaXRoU2NvcGU6CiAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA4ODE5YjRj
MTU5MjQyMTBlZmVkNWQ1YmE5YzI1NmNlZDEyZGE0YTgxLi43M2Y5MTE0ZWFmODgzY2VlZjljYTAz
Yjg0ZjE2ZWU2NDRlNmQyOGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTI4Miw2ICsxMjgyLDQ4IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVJbkJ5VmFsKE5vZGUqIG5vZGUpCiAgICAgYmxlc3NlZEJvb2xlYW5SZXN1
bHQocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGlj
aXRseSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNQcml2YXRlTmFtZShO
b2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGtleSh0aGlzLCBub2RlLT5jaGls
ZDIoKSk7CisKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIGtl
eUdQUiA9IGtleS5ncHIoKTsKKworICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDIoKSwg
a2V5R1BSKTsKKworICAgIGJhc2UudXNlKCk7CisgICAga2V5LnVzZSgpOworCisgICAgZmx1c2hS
ZWdpc3RlcnMoKTsKKyAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlz
KTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1lLCByZXN1bHRSZWdzLCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgQ0NhbGxIZWxwZXJzOjpDZWxsVmFsdWUoa2V5R1BS
KSk7CisgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICBibGVzc2VkQm9vbGVhblJlc3Vs
dChyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNp
dGx5KTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc1ByaXZhdGVCcmFuZChO
b2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJyYW5kKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKKworICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcg
YnJhbmRHUFIgPSBicmFuZC5ncHIoKTsKKworICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGls
ZDIoKSwgYnJhbmRHUFIpOworCisgICAgYmFzZS51c2UoKTsKKyAgICBicmFuZC51c2UoKTsKKwor
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCBy
ZXN1bHQodGhpcyk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYXNQcml2YXRlQnJhbmQsIHJlc3VsdFJlZ3Ms
IFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlR1BSLCBDQ2FsbEhlbHBlcnM6OkNlbGxW
YWx1ZShicmFuZEdQUikpOworICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgYmxlc3Nl
ZEJvb2xlYW5SZXN1bHQocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIG5vZGUsIFVzZUNoaWxkcmVu
Q2FsbGVkRXhwbGljaXRseSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXNo
V2l0aFNjb3BlKE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY3VycmVu
dFNjb3BlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA5NzE3NTIyOGY2MmRhNzM1MDAyMTBlZmQyY2Vj
Y2E5NTgyYjY4MDJkLi40MTVjNjk3NmUxNjg2ZGJkNDlhNjg5Y2IxNzBhMjM2YjllNjZmZDM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC03
MzgsNiArNzM4LDggQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZUdldEJ5SWRGbHVzaChOb2Rl
KiwgQWNjZXNzVHlwZSk7CiAgICAgdm9pZCBjb21waWxlSW5CeUlkKE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVJbkJ5VmFsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVIYXNQcml2YXRlTmFtZShO
b2RlKik7CisgICAgdm9pZCBjb21waWxlSGFzUHJpdmF0ZUJyYW5kKE5vZGUqKTsKICAgICAKICAg
ICB2b2lkIG5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbE9yVW5kZWZpbmVkKEVk
Z2Ugb3BlcmFuZCk7CiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoTnVsbE9y
VW5kZWZpbmVkKEVkZ2Ugb3BlcmFuZCwgTm9kZSogYnJhbmNoTm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAz
NDI0MGU1NGU4NTdmNThhZDQ3NmE2YWYzYmVhMzJjZDdjMjE2ZDY4Li45YzYxYjc5NTJjMjI1MDRi
ODAxNTMyZGU5NWIyYjQzZjc1NTZkYmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTM5ODQsNiArMzk4NCwxNCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBp
bGVJbkJ5VmFsKG5vZGUpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgSGFzUHJpdmF0ZU5h
bWU6CisgICAgICAgIGNvbXBpbGVIYXNQcml2YXRlTmFtZShub2RlKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKKyAgICAgICAgY29tcGlsZUhhc1ByaXZhdGVC
cmFuZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEhhc093blByb3BlcnR5OiB7
CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9iamVjdCh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSB1bmlxdWVkU3RyaW5nSW1wbCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDM4ZWU2YjRhNmVmOTA5NzQzNWFiOGUwOTUyOTFkMGI2ZTc3NDEzMDUuLjg0ODY0YjkzMTYxOWI2
M2ZkNmM2YWI4NjE5N2YwNWRmYWZjMTAwM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDk2MCw2ICs0OTYwLDE0IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUlu
QnlWYWwobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBIYXNQcml2YXRlTmFtZToK
KyAgICAgICAgY29tcGlsZUhhc1ByaXZhdGVOYW1lKG5vZGUpOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOgorICAgICAgICBjb21waWxlSGFzUHJpdmF0ZUJyYW5k
KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6IHsKICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb2JqZWN0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgR1BSVGVtcG9yYXJ5IHVuaXF1ZWRTdHJpbmdJbXBsKHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDNkZjA0NGE4ZmYx
YjU4NTJiNWVhZjNjMDRmYTk2MDhkY2ZlMDk4MmYuLjRmNmUwMzdjYjExYzUyNGI5MTExMzllMDRj
OWYwNWU2YzRkZGI4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKQEAgLTI0Myw2ICsyNDMsOCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNh
bkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgIGNhc2UgSW5C
eVZhbDoKICAgICBjYXNlIEluQnlJZDoKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgIGNh
c2UgSGFzUHJpdmF0ZUJyYW5kOgogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6CiAgICAgY2FzZSBJ
c0NlbGxXaXRoVHlwZToKICAgICBjYXNlIE1hcEhhc2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggNWJmOTQxMTAwNzA0YWJmMTU0MjdiMDg1
M2QxODJjMWI4N2NjNGRlMi4uYTViOTUyYzc1YjcxMDBjZjY5ZjNmMTFhODE5YmZhYTIzYmFkNzcy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApA
QCAtOTYyLDYgKzk2MiwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEluQnlWYWw6CiAgICAg
ICAgICAgICBjb21waWxlSW5CeVZhbCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgICAgICAgICBjb21waWxlSGFzUHJpdmF0ZU5hbWUoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKKyAgICAg
ICAgICAgIGNvbXBpbGVIYXNQcml2YXRlQnJhbmQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENoZWNrUHJpdmF0ZUJyYW5kOgogICAgICAgICAgICAgY29tcGlsZUNoZWNrUHJp
dmF0ZUJyYW5kKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEyMjYzLDYgKzEyMjY5LDE4IEBA
IHByaXZhdGU6CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBo
Lmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIHNldEpTVmFsdWUo
dm1DYWxsKEludDY0LCBvcGVyYXRpb25JbkJ5VmFsLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3Qp
LCBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkp
KSk7CiAgICAgfQorICAgIAorICAgIHZvaWQgY29tcGlsZUhhc1ByaXZhdGVOYW1lKCkKKyAgICB7
CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKElu
dDY0LCBvcGVyYXRpb25IYXNQcml2YXRlTmFtZSwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwg
bG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQyKCkpKSk7
CisgICAgfQorCisgICAgdm9pZCBjb21waWxlSGFzUHJpdmF0ZUJyYW5kKCkKKyAgICB7CisgICAg
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihtX29yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0LCBv
cGVyYXRpb25IYXNQcml2YXRlQnJhbmQsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0Nl
bGwobV9ub2RlLT5jaGlsZDEoKSksIGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMigpKSkpOworICAg
IH0KIAogICAgIHZvaWQgY29tcGlsZUluQnlJZCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCmluZGV4IGY0MjgwOGZkZmUwZWZhM2I5YWZiNzM4MjliODc3Y2M1NDQwOTAzYWQuLmMw
YzNjNzY1M2JkZjY3ODRiYzc0MmRjY2Q1ZjlhMTMzY2NjMDFkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKQEAgLTI4MSw2ICsyODEsOCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcygpCiAKICAgICAgICAgc3dpdGNoIChvcGNvZGVJRCkgewogICAgICAgICBERUZJTkVf
U0xPV19PUChpbl9ieV92YWwpCisgICAgICAgIERFRklORV9TTE9XX09QKGhhc19wcml2YXRlX25h
bWUpCisgICAgICAgIERFRklORV9TTE9XX09QKGhhc19wcml2YXRlX2JyYW5kKQogICAgICAgICBE
RUZJTkVfU0xPV19PUChsZXNzKQogICAgICAgICBERUZJTkVfU0xPV19PUChsZXNzZXEpCiAgICAg
ICAgIERFRklORV9TTE9XX09QKGdyZWF0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAppbmRleCA0ZDljNGI3NzJjYmFiMTdkYWE1MjEwZTJlZDQ3MzY3Njdi
YTllYmFjLi5jNWViNmZhODc5ZmUwZTEyMDk1NmM4ODlhNTI5M2YzNTYxNTVmYTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTQ2NCw2ICs0NjQs
NDUgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlWYWwsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihDb21tb25TbG93UGF0aHM6Om9wSW5CeVZhbChnbG9iYWxPYmplY3QsIGJhc2Us
IEpTVmFsdWU6OmRlY29kZShrZXkpKSkpOwogfQogCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSGFzUHJpdmF0ZU5hbWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBrZXkpKQoreworICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKKyAgICAKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoIWJhc2UtPmlzT2JqZWN0KCkpIHsKKyAgICAgICAg
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSW52YWxpZEluUGFyYW1l
dGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlKSk7CisgICAgICAgIHJldHVybiBlbmNvZGVkSlNW
YWx1ZSgpOworICAgIH0KKworICAgIEpTVmFsdWUgcHJvcGVydHlWYWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShrZXkpOworICAgIEFTU0VSVChwcm9wZXJ0eVZhbHVlLmlzU3ltYm9sKCkpOworICAgIGF1
dG8gcHJvcGVydHkgPSBwcm9wZXJ0eVZhbHVlLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsK
KyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSk7CisKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc09iamVjdChiYXNlKS0+aGFzUHJpdmF0ZUZpZWxk
KGdsb2JhbE9iamVjdCwgcHJvcGVydHkpKSk7Cit9CisKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25IYXNQcml2YXRlQnJhbmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBicmFuZCkpCit7
CisgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOworICAgIAor
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmICghYmFzZS0+aXNPYmplY3QoKSkgeworICAg
ICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVJbnZhbGlkSW5Q
YXJhbWV0ZXJFcnJvcihnbG9iYWxPYmplY3QsIGJhc2UpKTsKKyAgICAgICAgcmV0dXJuIGVuY29k
ZWRKU1ZhbHVlKCk7CisgICAgfQorCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oYXNPYmplY3QoYmFzZSktPmhhc1ByaXZhdGVCcmFuZChnbG9iYWxPYmplY3QsIEpTVmFsdWU6
OmRlY29kZShicmFuZCkpKSk7Cit9CisKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCA5N2EwOTBkZTI4
N2Q2NmNkMzE5ZDQyYTc3YWU0NWI0MTI4ZTA2ZTFkLi5hMzNiMWE1Y2YxMmI4OWJhNTUyMTkxZTBm
N2Y4NjZlYWZlMWEyZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaApAQCAtMTc4LDYgKzE3OCw4IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSW5CeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RyCiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwg
dWludHB0cl90KSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeVZh
bCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1Zh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1l
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5k
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFs
dWUpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCmluZGV4IDg3MmI4NTcyZGQ5M2NkOGJiOTVlN2VhNDIzNzQ0YzBlMmM1ZmYwODMuLjY0M2Zk
NGE4NjU2ZmZlODg1MzU0NzVlZjk2ZjVhYTZhMjIwZDEzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTIwMTMsNiAr
MjAxMyw4IEBAIGVuZAogCiBzbG93UGF0aE9wKGluX2J5X2lkKQogc2xvd1BhdGhPcChpbl9ieV92
YWwpCitzbG93UGF0aE9wKGhhc19wcml2YXRlX25hbWUpCitzbG93UGF0aE9wKGhhc19wcml2YXRl
X2JyYW5kKQogc2xvd1BhdGhPcChpc19jYWxsYWJsZSkKIHNsb3dQYXRoT3AoaXNfY29uc3RydWN0
b3IpCiBzbG93UGF0aE9wKGxlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVp
bGRlci5oCmluZGV4IDVlYzU2OWVmNTQwMjY2OTcxMDg5ODdhZjZhYmE3NDEzOTA4NDRlNTMuLjM4
ZGRiMGU1MjAyZTEyY2Q1YmRlYjAxOTA1Njk2YWJjYTE3YWExYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0yMDcsNiArMjA3LDEwIEBAIHB1YmxpYzoK
IAogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBSZXNvbHZlTm9kZShsb2NhdGlv
biwgaWRlbnQsIHN0YXJ0KTsKICAgICB9CisgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0ZVByaXZh
dGVJZGVudGlmaWVyTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJl
bmEpIFByaXZhdGVJZGVudGlmaWVyTm9kZShsb2NhdGlvbiwgaWRlbnQpOworICAgIH0KICAgICBF
eHByZXNzaW9uTm9kZSogY3JlYXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIE9iamVjdExpdGVyYWxOb2Rl
KGxvY2F0aW9uKTsgfQogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVPYmplY3RMaXRlcmFsKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFByb3BlcnR5TGlzdE5vZGUqIHByb3BlcnRp
ZXMpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgT2JqZWN0TGl0ZXJhbE5vZGUobG9jYXRp
b24sIHByb3BlcnRpZXMpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2RlQ29uc3RydWN0b3JzLmgKaW5kZXggNzQ3ZDE1ODdiYjA3N2Q1MDE4ZTMwZWMzNWIwZGQyNjEz
YmEzYWJiZC4uNjUxNjliNWNmYWZjM2VmMmYzNmIyOGMzN2FhMzU5MjNjZmE5ZGM5YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTIw
OSw2ICsyMDksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFTU0VSVChtX3N0YXJ0Lm9m
ZnNldCA+PSBtX3N0YXJ0LmxpbmVTdGFydE9mZnNldCk7CiAgICAgfQogCisgICAgaW5saW5lIFBy
aXZhdGVJZGVudGlmaWVyTm9kZTo6UHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50KQorICAgICAgICA6IEV4
cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgewor
ICAgIH0KKwogICAgIGlubGluZSBFbGVtZW50Tm9kZTo6RWxlbWVudE5vZGUoaW50IGVsaXNpb24s
IEV4cHJlc3Npb25Ob2RlKiBub2RlKQogICAgICAgICA6IG1fbm9kZShub2RlKQogICAgICAgICAs
IG1fZWxpc2lvbihlbGlzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4
IGVkMTczYzE3YTViYmE2YWJkMWNlN2M3OTA0ZmYyMDBiODA5Y2IxNzIuLjI1ODM0ZmQ4MTkxM2E2
ZmRjNmQyNWM1MmMxZDZkODdhYzNlYjdmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgKQEAgLTIxMyw2ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVh
bCBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAg
dmlydHVhbCBib29sIGlzRGVsZXRlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFsQ2hhaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQcml2YXRlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0
aW9uQ29udGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsJiwgTGFiZWwmLCBGYWxsVGhyb3Vn
aE1vZGUpOwogCkBAIC02ODMsNiArNjg0LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBK
U1RleHRQb3NpdGlvbiBtX3N0YXJ0OwogICAgIH07CiAKKyAgICAvLyBEdW1teSBleHByZXNzaW9u
IHRvIGhvbGQgdGhlIExIUyBvZiBgI3ggaW4gb2JqYC4KKyAgICBjbGFzcyBQcml2YXRlSWRlbnRp
Zmllck5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0
IElkZW50aWZpZXImKTsKKworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2YWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1faWRlbnQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWwgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAgICAgICAgYm9vbCBp
c1ByaXZhdGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAg
ICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgfTsKKwogICAgIGNsYXNzIEVsZW1l
bnROb2RlIGZpbmFsIDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewogICAgIHB1YmxpYzoK
ICAgICAgICAgRWxlbWVudE5vZGUoaW50IGVsaXNpb24sIEV4cHJlc3Npb25Ob2RlKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNzA1NjFiOWFjMmE4NzgyYzcz
YzM4N2Y5NTZlYjc5MDQ0NDgyMWMzMy4uODc1NjAwYTA3NGZkMzdiMDA3MzFhY2M2NTcwNmE2Nzgx
YjkyMTYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtNDIz
Myw3ICs0MjMzLDE4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Np
b24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAgICAgIEpTVGV4dFBv
c2l0aW9uIGV4cHJTdGFydCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAgICAgICBpbnQgaW5p
dGlhbEFzc2lnbm1lbnRzID0gbV9wYXJzZXJTdGF0ZS5hc3NpZ25tZW50Q291bnQ7CiAgICAgICAg
IEpTVG9rZW5UeXBlIGxlYWRpbmdUb2tlblR5cGVGb3JVbmFyeUV4cHJlc3Npb24gPSBtX3Rva2Vu
Lm1fdHlwZTsKLSAgICAgICAgVHJlZUV4cHJlc3Npb24gY3VycmVudCA9IHBhcnNlVW5hcnlFeHBy
ZXNzaW9uKGNvbnRleHQpOworCisgICAgICAgIFRyZWVFeHByZXNzaW9uIGN1cnJlbnQgPSAwOwor
ICAgICAgICBpZiAoT3B0aW9uczo6dXNlUHJpdmF0ZUluKCkgJiYgbWF0Y2goUFJJVkFURU5BTUUp
KSB7CisgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBpZGVudCA9IG1fdG9rZW4ubV9kYXRh
LmlkZW50OworICAgICAgICAgICAgQVNTRVJUKGlkZW50KTsKKyAgICAgICAgICAgIHNlbWFudGlj
RmFpbElmRmFsc2UodXNlUHJpdmF0ZU5hbWUoaWRlbnQpLCAiQ2Fubm90IHJlZmVyZW5jZSBwcml2
YXRlIG5hbWVzIG91dHNpZGUgb2YgY2xhc3MiKTsKKyAgICAgICAgICAgIGN1cnJlbnRTY29wZSgp
LT51c2VWYXJpYWJsZShpZGVudCwgZmFsc2UpOworICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKG1fdG9rZW4ubV90eXBlICE9IElOVE9LRU4sICJCYXJl
IHByaXZhdGUgbmFtZSBjYW4gb25seSBiZSB1c2VkIGFzIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBh
biBgaW5gIGV4cHJlc3Npb24iKTsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBjb250ZXh0LmNyZWF0
ZVByaXZhdGVJZGVudGlmaWVyTm9kZShsb2NhdGlvbiwgKmlkZW50KTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBjdXJyZW50ID0gcGFyc2VVbmFyeUV4cHJlc3Npb24oY29udGV4dCk7CiAg
ICAgICAgIGZhaWxJZkZhbHNlKGN1cnJlbnQsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwog
CiAgICAgICAgIGNvbnRleHQuYXBwZW5kQmluYXJ5RXhwcmVzc2lvbkluZm8ob3BlcmFuZFN0YWNr
RGVwdGgsIGN1cnJlbnQsIGV4cHJTdGFydCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSwgbGFzdFRv
a2VuRW5kUG9zaXRpb24oKSwgaW5pdGlhbEFzc2lnbm1lbnRzICE9IG1fcGFyc2VyU3RhdGUuYXNz
aWdubWVudENvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVj
a2VyLmgKaW5kZXggYzNjNzVlYjlmNDRlMWI3MTU4ZWRlMDM1MGY4ZjFhMzhlYTYzNzMwMi4uZjM1
MDkzNjcxMzIzZTJiYmExMmUyZTRiZmYzODE5NDEwODEyNjg5NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGlj
OgogICAgICAgICBUZW1wbGF0ZVN0cmluZ1Jlc3VsdCwgVGVtcGxhdGVTdHJpbmdMaXN0UmVzdWx0
LAogICAgICAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0LCBUZW1wbGF0ZUV4cHIsCiAg
ICAgICAgIFRhZ2dlZFRlbXBsYXRlRXhwciwgWWllbGRFeHByLCBBd2FpdEV4cHIsCi0gICAgICAg
IE1vZHVsZU5hbWVSZXN1bHQsCisgICAgICAgIE1vZHVsZU5hbWVSZXN1bHQsIFByaXZhdGVJZGVu
dGlmaWVyLAogICAgICAgICBJbXBvcnRTcGVjaWZpZXJSZXN1bHQsIEltcG9ydFNwZWNpZmllckxp
c3RSZXN1bHQsCiAgICAgICAgIEV4cG9ydFNwZWNpZmllclJlc3VsdCwgRXhwb3J0U3BlY2lmaWVy
TGlzdFJlc3VsdCwKIApAQCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5M
SU5FIGJvb2wgaXNOZXdUYXJnZXQoRXhwcmVzc2lvblR5cGUgdHlwZSkgeyByZXR1cm4gdHlwZSA9
PSBOZXdUYXJnZXRFeHByOyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlzSW1wb3J0TWV0YShF
eHByZXNzaW9uVHlwZSB0eXBlKSB7IHJldHVybiB0eXBlID09IEltcG9ydE1ldGFFeHByOyB9CiAg
ICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlUmVzb2x2ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBj
b25zdCBJZGVudGlmaWVyJiwgaW50LCBpbnQpIHsgcmV0dXJuIFJlc29sdmVFeHByOyB9CisgICAg
RXhwcmVzc2lvblR5cGUgY3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKSB7IHJldHVybiBQcml2YXRlSWRlbnRpZmllcjsg
fQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZU9iamVjdExpdGVyYWwoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJikgeyByZXR1cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlw
ZSBjcmVhdGVPYmplY3RMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCkgeyByZXR1
cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVBcnJheShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQpIHsgcmV0dXJuIEFycmF5TGl0ZXJhbEV4cHI7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CmluZGV4IDgyZjNlY2IwODYzYjNkYWEwNTc0ZDVkOGQ4NDlkMjlkMzAyOWU5YTUuLjYyNjRhZWRm
MDRmNjUyZjNlZjAwNmI2OWNmYzBjM2U5YWRjZjU3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtODUwLDYgKzg1MCwzNSBA
QCBKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX2luX2J5X2lkKQogICAgIFJF
VFVSTihqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVlKS0+aGFzUHJvcGVydHkoZ2xvYmFsT2Jq
ZWN0LCBjb2RlQmxvY2stPmlkZW50aWZpZXIoYnl0ZWNvZGUubV9wcm9wZXJ0eSkpKSk7CiB9CiAK
K0pTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaGFzX3ByaXZhdGVfbmFtZSkK
K3sKKyAgICBCRUdJTigpOworCisgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEhhc1ByaXZh
dGVOYW1lPigpOworICAgIGF1dG8gYmFzZVZhbHVlID0gR0VUX0MoYnl0ZWNvZGUubV9iYXNlKS5q
c1ZhbHVlKCk7CisgICAgaWYgKCFiYXNlVmFsdWUuaXNPYmplY3QoKSkKKyAgICAgICAgVEhST1co
Y3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUpKTsK
KworICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IEdFVF9DKGJ5dGVjb2RlLm1fcHJvcGVydHkpLmpz
VmFsdWUoKTsKKyAgICBBU1NFUlQocHJvcGVydHlWYWx1ZS5pc1N5bWJvbCgpKTsKKyAgICBhdXRv
IHByb3BlcnR5ID0gcHJvcGVydHlWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7Cisg
ICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkpOworCisgICAgUkVUVVJOKGpz
Qm9vbGVhbihhc09iamVjdChiYXNlVmFsdWUpLT5oYXNQcml2YXRlRmllbGQoZ2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eSkpKTsKK30KKworSlNDX0RFRklORV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0
aF9oYXNfcHJpdmF0ZV9icmFuZCkKK3sKKyAgICBCRUdJTigpOworCisgICAgYXV0byBieXRlY29k
ZSA9IHBjLT5hczxPcEhhc1ByaXZhdGVCcmFuZD4oKTsKKyAgICBhdXRvIGJhc2VWYWx1ZSA9IEdF
VF9DKGJ5dGVjb2RlLm1fYmFzZSkuanNWYWx1ZSgpOworICAgIGlmICghYmFzZVZhbHVlLmlzT2Jq
ZWN0KCkpCisgICAgICAgIFRIUk9XKGNyZWF0ZUludmFsaWRJblBhcmFtZXRlckVycm9yKGdsb2Jh
bE9iamVjdCwgYmFzZVZhbHVlKSk7CisKKyAgICBSRVRVUk4oanNCb29sZWFuKGFzT2JqZWN0KGJh
c2VWYWx1ZSktPmhhc1ByaXZhdGVCcmFuZChnbG9iYWxPYmplY3QsIEdFVF9DKGJ5dGVjb2RlLm1f
YnJhbmQpLmpzVmFsdWUoKSkpKTsKK30KKwogdGVtcGxhdGU8T3Bjb2RlU2l6ZSB3aWR0aD4KIEFM
V0FZU19JTkxJTkUgU2xvd1BhdGhSZXR1cm5UeXBlIGl0ZXJhdG9yT3BlblRyeUZhc3RJbXBsKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IENhbGxGcmFtZSogY2FsbEZyYW1lLCBjb25zdCBJbnN0cnVjdGlvbiogcGMpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4IGIzNzZm
NDRhOGFiOWRiODliMGRhNDMzYmRkZjRmYTM1NmRhMjhiNjMuLjZmODUyZDViNGVjYjQyMmE1MDA3
MzdhYWIwNjVhMDdkNTNmNTQxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vblNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oCkBAIC0yNTMsNiArMjUzLDggQEAgSlNDX0RFQ0xBUkVfQ09N
TU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaXNfY2FsbGFibGUpOwogSlNDX0RFQ0xBUkVfQ09NTU9O
X1NMT1dfUEFUSChzbG93X3BhdGhfaXNfY29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ09NTU9O
X1NMT1dfUEFUSChzbG93X3BhdGhfaW5fYnlfaWQpOwogSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1df
UEFUSChzbG93X3BhdGhfaW5fYnlfdmFsKTsKK0pTQ19ERUNMQVJFX0NPTU1PTl9TTE9XX1BBVEgo
c2xvd19wYXRoX2hhc19wcml2YXRlX25hbWUpOworSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFU
SChzbG93X3BhdGhfaGFzX3ByaXZhdGVfYnJhbmQpOwogSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1df
UEFUSChzbG93X3BhdGhfZGVsX2J5X3ZhbCk7CiBKU0NfREVDTEFSRV9DT01NT05fU0xPV19QQVRI
KHNsb3dfcGF0aF9zdHJjYXQpOwogSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3Bh
dGhfdG9fcHJpbWl0aXZlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CmluZGV4IDczMWY0NGRjZmQ0MzQwZDQxMzkwNmZlY2Y3ZTU2YThhNDgzMGMyNzEuLjY5ZTJhYTEz
OGRiZTQ0ZWZkZWYwNWMzYzVjNGFlM2ZhZDNkMmVmY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaApAQCAtMTc4LDEwICsxNzgsMTIgQEAgcHVibGljOgogICAgIEpT
X0VYUE9SVF9QUklWQVRFIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2Jq
ZWN0KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIAogICAgIHN0YXRpYyBi
b29sIGdldFByaXZhdGVGaWVsZFNsb3QoSlNPYmplY3QqLCBKU0dsb2JhbE9iamVjdCosIFByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CisgICAgaW5saW5lIGJvb2wgaGFzUHJpdmF0ZUZpZWxk
KEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lKTsKICAgICBpbmxpbmUgYm9vbCBnZXRQcml2
YXRlRmllbGQoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwog
ICAgIGlubGluZSB2b2lkIHNldFByaXZhdGVGaWVsZChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5
TmFtZSwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgaW5saW5lIHZvaWQgZGVmaW5l
UHJpdmF0ZUZpZWxkKEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQ
cm9wZXJ0eVNsb3QmKTsKLSAgICBpbmxpbmUgYm9vbCBjaGVja1ByaXZhdGVCcmFuZChKU0dsb2Jh
bE9iamVjdCosIEpTVmFsdWUgYnJhbmQpOworICAgIGlubGluZSBib29sIGhhc1ByaXZhdGVCcmFu
ZChKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgYnJhbmQpOworICAgIGlubGluZSB2b2lkIGNoZWNr
UHJpdmF0ZUJyYW5kKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CiAgICAgaW5saW5l
IHZvaWQgc2V0UHJpdmF0ZUJyYW5kKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CiAK
ICAgICB1bnNpZ25lZCBnZXRBcnJheUxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCmluZGV4IDBkYjMzYzM3MDhjNTA2Mjdh
ZTViNTlhYTE2ZTc4NjljOGU4MzVkYTAuLjA4MjY2ZGFmNjVmNTgwZmRkNDk1ZDZiMWZjZDE4OWVl
ODdiODFiNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
SW5saW5lcy5oCkBAIC02MjgsNiArNjI4LDE0IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBKU09iamVj
dDo6Z2V0UHJpdmF0ZUZpZWxkU2xvdChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK2lubGluZSBib29sIEpTT2JqZWN0OjpoYXNQcml2YXRlRmll
bGQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSkKK3sKKyAgICBBU1NFUlQocHJvcGVydHlOYW1lLmlzUHJpdmF0ZU5hbWUoKSk7CisgICAgVk0m
IHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKKyAgICB1bnNpZ25lZCBhdHRyaWJ1dGVzOworICAg
IHJldHVybiBzdHJ1Y3R1cmUodm0pLT5nZXQodm0sIHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcykg
IT0gaW52YWxpZE9mZnNldDsKK30KKwogaW5saW5lIGJvb2wgSlNPYmplY3Q6OmdldFByaXZhdGVG
aWVsZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2Jq
ZWN0KTsKQEAgLTY4OSwyMCArNjk3LDIzIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBKU09iamVjdDo6
Z2V0Tm9uUmVpZmllZFN0YXRpY1Byb3BlcnR5TmFtZXMoVk0mIHZtLCBQcm9wZXJ0eU5hCiAgICAg
fQogfQogCi1pbmxpbmUgYm9vbCBKU09iamVjdDo6Y2hlY2tQcml2YXRlQnJhbmQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBicmFuZCkKK2lubGluZSBib29sIEpTT2JqZWN0
OjpoYXNQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBi
cmFuZCkKK3sKKyAgICBBU1NFUlQoYnJhbmQuaXNTeW1ib2woKSk7CisgICAgVk0mIHZtID0gZ2V0
Vk0oZ2xvYmFsT2JqZWN0KTsKKyAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVj
dHVyZSh2bSk7CisgICAgcmV0dXJuIHN0cnVjdHVyZS0+aXNCcmFuZGVkU3RydWN0dXJlKCkgJiYg
anNDYXN0PEJyYW5kZWRTdHJ1Y3R1cmUqPihzdHJ1Y3R1cmUpLT5jaGVja0JyYW5kKGFzU3ltYm9s
KGJyYW5kKSk7Cit9CisKK2lubGluZSB2b2lkIEpTT2JqZWN0OjpjaGVja1ByaXZhdGVCcmFuZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJyYW5kKQogewogICAgIEFTU0VS
VChicmFuZC5pc1N5bWJvbCgpKTsKICAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIFN0cnVjdHVy
ZSogc3RydWN0dXJlID0gdGhpcy0+c3RydWN0dXJlKHZtKTsKLSAgICBpZiAoIXN0cnVjdHVyZS0+
aXNCcmFuZGVkU3RydWN0dXJlKCkgfHwgIWpzQ2FzdDxCcmFuZGVkU3RydWN0dXJlKj4oc3RydWN0
dXJlKS0+Y2hlY2tCcmFuZChhc1N5bWJvbChicmFuZCkpKSB7CisgICAgaWYgKCFzdHJ1Y3R1cmUt
PmlzQnJhbmRlZFN0cnVjdHVyZSgpIHx8ICFqc0Nhc3Q8QnJhbmRlZFN0cnVjdHVyZSo+KHN0cnVj
dHVyZSktPmNoZWNrQnJhbmQoYXNTeW1ib2woYnJhbmQpKSkKICAgICAgICAgdGhyb3dFeGNlcHRp
b24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUHJpdmF0ZU1ldGhvZEFjY2Vzc0Vycm9yKGds
b2JhbE9iamVjdCkpOwotICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGZhbHNlKTsK
LSAgICB9Ci0gICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkpOwotCi0gICAg
cmV0dXJuIHRydWU7CiB9CiAKIGlubGluZSB2b2lkIEpTT2JqZWN0OjpzZXRQcml2YXRlQnJhbmQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBicmFuZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDdlNzhhYmE1ZWQ3MWE0ZjU2
M2ZmNWFmYmZkZTNhZDY1NTBlYWMyYjMuLjcwNzdhZTI4ZWUzNjZiMDg4MWNkOTllMzk1N2IzMzc5
MzFlYjJiYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aApAQCAtNTIxLDYgKzUyMSw3IEBAIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgY2FuVXNlSklUQ2Fn
ZSgpOwogICAgIHYoQm9vbCwgdXNlUHJpdmF0ZVN0YXRpY0NsYXNzRmllbGRzLCB0cnVlLCBOb3Jt
YWwsICJJZiB0cnVlLCB0aGUgcGFyc2VyIHdpbGwgdW5kZXJzdGFuZCBwcml2YXRlIHN0YXRpYyBk
YXRhIGZpZWxkcyBpbnNpZGUgY2xhc3Nlcy4iKSBcCiAgICAgdihCb29sLCB1c2VQcml2YXRlQ2xh
c3NGaWVsZHMsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHRoZSBwYXJzZXIgd2lsbCB1bmRlcnN0
YW5kIHByaXZhdGUgZGF0YSBmaWVsZHMgaW5zaWRlIGNsYXNzZXMuIikgXAogICAgIHYoQm9vbCwg
dXNlUHJpdmF0ZU1ldGhvZHMsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHRoZSBwYXJzZXIgd2ls
bCB1bmRlcnN0YW5kIHByaXZhdGUgbWV0aG9kcyBpbnNpZGUgY2xhc3Nlcy4iKSBcCisgICAgdihC
b29sLCB1c2VQcml2YXRlSW4sIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCB0aGUgcGFyc2VyIHdp
bGwgdW5kZXJzdGFuZCBwcml2YXRlIG1lbWJlciBleGlzdGVuY2UgY2hlY2tzIHdpdGggdGhlIGBp
bmAgb3BlcmF0b3IuIikgXAogICAgIHYoQm9vbCwgdXNlV2ViQXNzZW1ibHlTdHJlYW1pbmcsIHRy
dWUsIE5vcm1hbCwgIkFsbG93IHRvIHJ1biBXZWJBc3NlbWJseSdzIFN0cmVhbWluZyBBUEkiKSBc
CiAgICAgdihCb29sLCB1c2VXZWJBc3NlbWJseVJlZmVyZW5jZXMsIHRydWUsIE5vcm1hbCwgIkFs
bG93IHR5cGVzIGZyb20gdGhlIHdhc20gcmVmZXJlbmNlcyBzcGVjLiIpIFwKICAgICB2KEJvb2ws
IHVzZVdlYkFzc2VtYmx5VHlwZWRGdW5jdGlvblJlZmVyZW5jZXMsIGZhbHNlLCBOb3JtYWwsICJB
bGxvdyBmdW5jdGlvbiB0eXBlcyBmcm9tIHRoZSB3YXNtIHR5cGVkIGZ1bmN0aW9uIHJlZmVyZW5j
ZXMgc3BlYy4iKSBcCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDBiYjlmOTU0OGQ4MTM2N2I5NDdjZmEyMDExZjBhY2JhZjZiYzQzYWIuLmEx
ZTA5NmZkNTY3YzQzNDBmYmE3MTVhNTcxNzNlOTJlZjM1Y2U3OTYgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjEtMDUtMDYgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgorCisgICAg
ICAgIFN1cHBvcnQgRXJnb25vbWljIEJyYW5kIENoZWNrcyBwcm9wb3NhbCAoYCN4IGluIG9iamAp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEwOTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVz
cy9wcml2YXRlLWluLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZpZy55YW1sOiBB
ZGQgZmVhdHVyZSBmbGFnLgorCiAyMDIxLTA1LTE2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBw
bGUuY29tPgogCiAgICAgICAgIERGR1ZhcmFyZ3NGb3J3YXJkaW5nUGhhc2Ugc2hvdWxkbid0IGNv
bnN1bHQgRmx1c2gKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3ByaXZhdGUtaW4uanMgYi9K
U1Rlc3RzL3N0cmVzcy9wcml2YXRlLWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxODg1NjJjNDI1N2IzNGJh
ZmQ0ZGViYzU1ODM0ZWI3ZTJmYjMxYzMKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVz
cy9wcml2YXRlLWluLmpzCkBAIC0wLDAgKzEsNjMgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11
c2VQcml2YXRlSW49MSIpCisKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgIGlmICghYikgdGhyb3cg
bmV3IEVycm9yOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvd1R5cGVFcnJvcihmdW5jKSB7Cisg
ICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5j
ZW9mIFR5cGVFcnJvcikpCisgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgVHlwZUVy
cm9yIScpOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICBjbGFzcyBGIHsgI3g7IHN0YXRpYyBp
c0Yob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorICBjbGFzcyBTRiB7IHN0YXRpYyAjeDsg
c3RhdGljIGlzU0Yob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorCisgIGNsYXNzIE0geyAj
eCgpIHt9IHN0YXRpYyBpc00ob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorICBjbGFzcyBT
TSB7IHN0YXRpYyAjeCgpIHt9IHN0YXRpYyBpc1NNKG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9
IH0KKworICBjbGFzcyBHIHsgZ2V0ICN4KCkge30gc3RhdGljIGlzRyhvYmopIHsgcmV0dXJuICN4
IGluIG9iajsgfSB9CisgIGNsYXNzIFNHIHsgc3RhdGljIGdldCAjeCgpIHt9IHN0YXRpYyBpc1NH
KG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9IH0KKworICBjbGFzcyBTIHsgc2V0ICN4KHYpIHt9
IHN0YXRpYyBpc1Mob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorICBjbGFzcyBTUyB7IHN0
YXRpYyBzZXQgI3godikge30gc3RhdGljIGlzU1Mob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0g
fQorCisgIGFzc2VydChGLmlzRihuZXcgRikpOworICBhc3NlcnQoIUYuaXNGKEYpICYmICFGLmlz
RihuZXcgTSkgJiYgIUYuaXNGKHt9KSk7CisgIHNob3VsZFRocm93VHlwZUVycm9yKCgpID0+IEYu
aXNGKDMpKTsKKyAgYXNzZXJ0KFNGLmlzU0YoU0YpKTsKKyAgYXNzZXJ0KCFTRi5pc1NGKG5ldyBT
RikgJiYgIVNGLmlzU0YoU00pICYmICFTRi5pc1NGKHt9KSk7CisgIHNob3VsZFRocm93VHlwZUVy
cm9yKCgpID0+IFNGLmlzU0YoMykpOworCisgIGFzc2VydChNLmlzTShuZXcgTSkpOworICBhc3Nl
cnQoIU0uaXNNKE0pICYmICFNLmlzTShuZXcgRikgJiYgIU0uaXNNKHt9KSk7CisgIHNob3VsZFRo
cm93VHlwZUVycm9yKCgpID0+IE0uaXNNKDMpKTsKKyAgYXNzZXJ0KFNNLmlzU00oU00pKTsKKyAg
YXNzZXJ0KCFTTS5pc1NNKG5ldyBTTSkgJiYgIVNNLmlzU00oU0YpICYmICFTTS5pc1NNKHt9KSk7
CisgIHNob3VsZFRocm93VHlwZUVycm9yKCgpID0+IFNNLmlzU00oMykpOworCisgIGFzc2VydChH
LmlzRyhuZXcgRykpOworICBhc3NlcnQoIUcuaXNHKEcpICYmICFHLmlzRyhuZXcgRikgJiYgIUcu
aXNHKHt9KSk7CisgIHNob3VsZFRocm93VHlwZUVycm9yKCgpID0+IEcuaXNHKDMpKTsKKyAgYXNz
ZXJ0KFNHLmlzU0coU0cpKTsKKyAgYXNzZXJ0KCFTRy5pc1NHKG5ldyBTRykgJiYgIVNHLmlzU0co
U0YpICYmICFTRy5pc1NHKHt9KSk7CisgIHNob3VsZFRocm93VHlwZUVycm9yKCgpID0+IFNHLmlz
U0coMykpOworCisgIGFzc2VydChTLmlzUyhuZXcgUykpOworICBhc3NlcnQoIVMuaXNTKFMpICYm
ICFTLmlzUyhuZXcgRikgJiYgIVMuaXNTKHt9KSk7CisgIHNob3VsZFRocm93VHlwZUVycm9yKCgp
ID0+IFMuaXNTKDMpKTsKKyAgYXNzZXJ0KFNTLmlzU1MoU1MpKTsKKyAgYXNzZXJ0KCFTUy5pc1NT
KG5ldyBTUykgJiYgIVNTLmlzU1MoU0YpICYmICFTUy5pc1NTKHt9KSk7CisgIHNob3VsZFRocm93
VHlwZUVycm9yKCgpID0+IFNTLmlzU1MoMykpOworfQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAo
bGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKKyAgdGVzdCgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4
IGE2YmEyYWIzOGMxNzEyMDFiY2JhOTc1ZDI3MTg2Nzc2MzQ2ZDRmODEuLjc3NTQyY2QzODQwZDU1
MmIyOTlkMjk5MGQzNWI5YzQwYjRjNjM5NzggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9j
b25maWcueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTUsNiArNSw3
IEBAIGZsYWdzOgogICBGaW5hbGl6YXRpb25SZWdpc3RyeTogdXNlV2Vha1JlZnMKICAgY2xhc3Mt
ZmllbGRzLXByaXZhdGU6IHVzZVByaXZhdGVDbGFzc0ZpZWxkcwogICBjbGFzcy1tZXRob2RzLXBy
aXZhdGU6IHVzZVByaXZhdGVNZXRob2RzCisgIGNsYXNzLWZpZWxkcy1wcml2YXRlLWluOiB1c2VQ
cml2YXRlSW4KICAgY2xhc3Mtc3RhdGljLWZpZWxkcy1wdWJsaWM6IHVzZVB1YmxpY1N0YXRpY0Ns
YXNzRmllbGRzCiAgIGNsYXNzLXN0YXRpYy1maWVsZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZVN0YXRp
Y0NsYXNzRmllbGRzCiAgIGNsYXNzLXN0YXRpYy1tZXRob2RzLXByaXZhdGU6IHVzZVByaXZhdGVN
ZXRob2RzCkBAIC0yMyw4ICsyNCw2IEBAIHNraXA6CiAgICAgLSByZWdleHAtbG9va2JlaGluZAog
ICAgIC0gbGVnYWN5LXJlZ2V4cAogICAgIC0gY2xlYW51cFNvbWUKLSAgICAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjEwOTMKLSAgICAtIGNsYXNzLWZpZWxkcy1w
cml2YXRlLWluCiAgIHBhdGhzOgogICBmaWxlczoKICAgICAjIFNsaWdodGx5IGRpZmZlcmVudCBm
b3JtYXR0aW5nLiBXZSBzaG91bGQgdXBkYXRlIHRlc3QyNjIgc2lkZS4K
</data>
<flag name="commit-queue"
          id="449900"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428857</attachid>
            <date>2021-05-17 13:16:07 -0700</date>
            <delta_ts>2021-05-22 16:22:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221093-20210517131606.patch</filename>
            <type>text/plain</type>
            <size>46160</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
ODMwY2E5M2QwNDg4MzQyZjIwOThmNjFjZTU5MzA5ZjFmM2E4NWE4Li4yMmU4MTBlM2NhNmMzZTBi
MjA2NWU1ZWYzN2E4Nzc1Mzk3YWIyY2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMS0wNS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBFcmdvbm9taWMgQnJhbmQgQ2hlY2tzIHByb3Bvc2Fs
IChgI3ggaW4gb2JqYCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTA5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUgZm9sbG93aW5nIFN0YWdlIDMgcHJvcG9z
YWwgKGJlaGluZCBhIHJ1bnRpbWUgb3B0aW9uKToKKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29t
L3RjMzkvcHJvcG9zYWwtcHJpdmF0ZS1maWVsZHMtaW4taW4KKworICAgICAgICBTcGVjaWZpY2Fs
bHksIGl0IGV4dGVuZHMgdGhlIGBpbmAga2V5d29yZCB0byBhbGxvdyB0aGUgTEhTIHRvIGJlIGEg
cHJpdmF0ZSBuYW1lLAorICAgICAgICB0aGVyZWJ5IGFsbG93aW5nIHVzZXJzIHRvIGltcGxlbWVu
dCBBcnJheS5pc0FycmF5LWVzcXVlIGJyYW5kIGNoZWNrcyBmb3IgdGhlaXIgb3duIGNsYXNzZXMK
KyAgICAgICAgKndpdGhvdXQqIGhhdmluZyB0byB3cmFwIGEgcHJpdmF0ZSBtZW1iZXIgZ2V0IGlu
IGEgdHJ5LWNhdGNoLgorCisgICAgICAgIEZvciBleGFtcGxlOgorICAgICAgICBgYGAKKyAgICAg
ICAgY2xhc3MgQyB7CisgICAgICAgICAgICAjeDsKKyAgICAgICAgICAgIHN0YXRpYyBpc0Mob2Jq
KSB7IHJldHVybiAjeCBpbiBvYmo7IH0KKyAgICAgICAgfQorICAgICAgICBgYGAKKworICAgICAg
ICBUaGlzIGlzIGRvbmUgYnkgYWRkaW5nIHR3byBuZXcgYnl0ZWNvZGUgb3BzLCBIYXNQcml2YXRl
TmFtZSBhbmQgSGFzUHJpdmF0ZUJyYW5kLiBGb3IgdGhlIG1vbWVudCwKKyAgICAgICAgdGhlc2Ug
YXJlIGltcGxlbWVudGVkIHdpdGhvdXQgZmFzdCBwYXRocywgYXMgd2Ugc2hvdWxkIGRvIHNvIGZv
ciBJbkJ5VmFsIGZpcnN0IGFuZCB0aGVuIGhhdmUgdGhlc2UgZm9sbG93IHN1aXQuCisKKyAgICAg
ICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QucmI6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNv
ZGVVc2VEZWYuY3BwOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJ
bXBsKToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZUluZGV4SW1wbCk6Cisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRIYXNQcml2YXRlTmFtZSk6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SGFzUHJpdmF0ZUJyYW5kKToKKyAgICAgICAgKEpTQzo6
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDaGVja1ByaXZhdGVCcmFuZCk6CisgICAgICAgICogYnl0
ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkluTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5o
OgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAg
ICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9F
eGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzUHJpdmF0ZU5hbWUpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzUHJpdmF0ZUJyYW5kKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAg
ICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZUhhc1ByaXZhdGVOYW1lKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZUhhc1ByaXZhdGVCcmFuZCk6CisgICAgICAgICogaml0L0pJVC5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAg
ICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0pJVF9P
UEVSQVRJT04pOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcGFyc2VyL0FTVEJ1aWxkZXIu
aDoKKyAgICAgICAgKEpTQzo6QVNUQnVpbGRlcjo6Y3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2Rl
KToKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpQ
cml2YXRlSWRlbnRpZmllck5vZGU6OlByaXZhdGVJZGVudGlmaWVyTm9kZSk6CisgICAgICAgICog
cGFyc2VyL05vZGVzLmg6CisgICAgICAgIChKU0M6OkV4cHJlc3Npb25Ob2RlOjppc1ByaXZhdGVJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzc2lvbik6CisgICAgICAg
ICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hlY2tlcjo6
Y3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2RlKToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSCk6
CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6SlNPYmplY3Q6Omhhc1ByaXZhdGVGaWVsZCk6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpoYXNQcml2YXRlQnJhbmQpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Y2hlY2tQcml2
YXRlQnJhbmQpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNS0x
NiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGJh
c2VsaW5lIG9wX2VudGVyLCBvcF9yZXQsIG9wX2NoZWNrX3RyYXBzLCBvcF90aHJvdyB1c2luZyBK
SVQgdGh1bmtzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QucmIKaW5kZXggMTY0MTAxZmVjZTA0MjZhMDAyZmY1YTQ3YTFjMDI0Yjg5NDY2NDQzYy4uMTgy
NWVjMmFkNWEwMzM5ZDRmM2VmMTk1ZGQ2ZjlmY2YyMmQwNjQ5YyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC00NTQsNiArNDU0LDIwIEBA
IG9wIDppbl9ieV9pZCwKICAgICAgICAgcHJvcGVydHk6IHVuc2lnbmVkLAogICAgIH0KIAorb3Ag
Omhhc19wcml2YXRlX25hbWUsCisgICAgYXJnczogeworICAgICAgICBkc3Q6IFZpcnR1YWxSZWdp
c3RlciwKKyAgICAgICAgYmFzZTogVmlydHVhbFJlZ2lzdGVyLAorICAgICAgICBwcm9wZXJ0eTog
VmlydHVhbFJlZ2lzdGVyLAorICAgIH0KKworb3AgOmhhc19wcml2YXRlX2JyYW5kLAorICAgIGFy
Z3M6IHsKKyAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgICAgIGJhc2U6IFZpcnR1
YWxSZWdpc3RlciwKKyAgICAgICAgYnJhbmQ6IFZpcnR1YWxSZWdpc3RlciwKKyAgICB9CisKIG9w
IDpnZXRfYnlfaWQsCiAgICAgYXJnczogewogICAgICAgICBkc3Q6IFZpcnR1YWxSZWdpc3RlciwK
QEAgLTYwOCw3ICs2MjIsNiBAQCBvcCA6Y2hlY2tfcHJpdmF0ZV9icmFuZCwKICAgICAgICAgc3Ry
dWN0dXJlSUQ6IFN0cnVjdHVyZUlELAogICAgICAgICBicmFuZDogV3JpdGVCYXJyaWVyW0pTQ2Vs
bF0sCiAgICAgfQotICAgIAogCiBvcCA6cHV0X2J5X3ZhbCwKICAgICBhcmdzOiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAppbmRleCAw
MTZhMDI3ZmEzM2FiNzk0OTQzMTJhNGE0NzdkZmM1YjJlN2EwMGQ3Li4wNzU2MTg5OWE2MjA5ZTM2
Y2JmYTcyYTA1NGYxNTEyZDY3MzhjMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKQEAgLTIzMiw2ICsyMzIsOCBAQCB2b2lkIGNv
bXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwoVmlydHVhbFJlZ2lzdGVyIHNjb3BlUmVnaXN0
ZXIsIGNvbnN0IEluc3RydQogICAgIFVTRVMoT3BTZXRQcml2YXRlQnJhbmQsIGJhc2UsIGJyYW5k
KQogICAgIFVTRVMoT3BDaGVja1ByaXZhdGVCcmFuZCwgYmFzZSwgYnJhbmQpCiAgICAgVVNFUyhP
cEluQnlWYWwsIGJhc2UsIHByb3BlcnR5KQorICAgIFVTRVMoT3BIYXNQcml2YXRlTmFtZSwgYmFz
ZSwgcHJvcGVydHkpCisgICAgVVNFUyhPcEhhc1ByaXZhdGVCcmFuZCwgYmFzZSwgYnJhbmQpCiAg
ICAgVVNFUyhPcE92ZXJyaWRlc0hhc0luc3RhbmNlLCBjb25zdHJ1Y3RvciwgaGFzSW5zdGFuY2VW
YWx1ZSkKICAgICBVU0VTKE9wSW5zdGFuY2VvZiwgdmFsdWUsIHByb3RvdHlwZSkKICAgICBVU0VT
KE9wQWRkLCBsaHMsIHJocykKQEAgLTUwOSw2ICs1MTEsOCBAQCB2b2lkIGNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwodW5zaWduZWQgbnVtVmFycywgY29uc3QgSW5zdHJ1Y3Rpb24qIGlu
c3RydQogICAgIERFRlMoT3BJc0NvbnN0cnVjdG9yLCBkc3QpCiAgICAgREVGUyhPcEluQnlJZCwg
ZHN0KQogICAgIERFRlMoT3BJbkJ5VmFsLCBkc3QpCisgICAgREVGUyhPcEhhc1ByaXZhdGVOYW1l
LCBkc3QpCisgICAgREVGUyhPcEhhc1ByaXZhdGVCcmFuZCwgZHN0KQogICAgIERFRlMoT3BUb051
bWJlciwgZHN0KQogICAgIERFRlMoT3BUb051bWVyaWMsIGRzdCkKICAgICBERUZTKE9wVG9TdHJp
bmcsIGRzdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggNThlNTBkYTA5MjFiMjA5ZjllYmVmZjJhYmRm
M2IzM2VmZDU1YmQ4Yi4uYmRiYWEyMTQ5NWUwMTNlOTdjZjU5ZGQ1NGU3NTNlYzhiMDkyMzBlNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAKQEAgLTI3MjQsNiArMjcyNCwxMiBAQCBSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdEdldFByaXZhdGVOYW1lKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogYgogICAgIHJldHVybiBkc3Q7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0SGFzUHJpdmF0ZU5hbWUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNl
LCBSZWdpc3RlcklEKiBwcm9wZXJ0eSkKK3sKKyAgICBPcEhhc1ByaXZhdGVOYW1lOjplbWl0KHRo
aXMsIGRzdCwgYmFzZSwgcHJvcGVydHkpOworICAgIHJldHVybiBkc3Q7Cit9CisKIFJlZ2lzdGVy
SUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RGlyZWN0UHV0QnlWYWwoUmVnaXN0ZXJJRCogYmFz
ZSwgUmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKQogewogICAgIE9wUHV0
QnlWYWxEaXJlY3Q6OmVtaXQodGhpcywgYmFzZSwgcHJvcGVydHksIHZhbHVlLCBlY21hTW9kZSgp
KTsKQEAgLTI3OTYsMTIgKzI4MDIsMjUgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRQcml2YXRlRmllbGRQdXQoUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCoKICAgICBy
ZXR1cm4gdmFsdWU7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SGFz
UHJpdmF0ZUJyYW5kKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJ
RCogYnJhbmQsIGJvb2wgaXNTdGF0aWMpCit7CisgICAgaWYgKGlzU3RhdGljKSB7CisgICAgICAg
IFJlZjxMYWJlbD4gaXNPYmplY3RMYWJlbCA9IG5ld0xhYmVsKCk7CisgICAgICAgIGVtaXRKdW1w
SWZUcnVlKGVtaXRJc09iamVjdChuZXdUZW1wb3JhcnkoKSwgYmFzZSksIGlzT2JqZWN0TGFiZWwu
Z2V0KCkpOworICAgICAgICBlbWl0VGhyb3dUeXBlRXJyb3IoIkNhbm5vdCBhY2Nlc3Mgc3RhdGlj
IHByaXZhdGUgbWV0aG9kIG9yIGFjY2Vzc29yIG9mIGEgbm9uLU9iamVjdCIpOworICAgICAgICBl
bWl0TGFiZWwoaXNPYmplY3RMYWJlbC5nZXQoKSk7CisgICAgICAgIGVtaXRFcXVhbGl0eU9wPE9w
U3RyaWN0ZXE+KGRzdCwgYmFzZSwgYnJhbmQpOworICAgIH0gZWxzZQorICAgICAgICBPcEhhc1By
aXZhdGVCcmFuZDo6ZW1pdCh0aGlzLCBkc3QsIGJhc2UsIGJyYW5kKTsKKyAgICByZXR1cm4gZHN0
OworfQorCiB2b2lkIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2hlY2tQcml2YXRlQnJhbmQoUmVn
aXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogYnJhbmQsIGJvb2wgaXNTdGF0aWMpCiB7CiAgICAg
aWYgKGlzU3RhdGljKSB7CiAgICAgICAgIFJlZjxMYWJlbD4gYnJhbmRDaGVja09rTGFiZWwgPSBu
ZXdMYWJlbCgpOwogICAgICAgICBlbWl0SnVtcElmVHJ1ZShlbWl0RXF1YWxpdHlPcDxPcFN0cmlj
dGVxPihuZXdUZW1wb3JhcnkoKSwgYmFzZSwgYnJhbmQpLCBicmFuZENoZWNrT2tMYWJlbC5nZXQo
KSk7Ci0gICAgICAgIGVtaXRUaHJvd1R5cGVFcnJvcigiQ2Fubm90IGFjY2VzcyBzdGF0aWMgcHJp
dmF0ZSBtZXRob2Qgb3IgYWNlc3NvciIpOworICAgICAgICBlbWl0VGhyb3dUeXBlRXJyb3IoIkNh
bm5vdCBhY2Nlc3Mgc3RhdGljIHByaXZhdGUgbWV0aG9kIG9yIGFjY2Vzc29yIik7CiAgICAgICAg
IGVtaXRMYWJlbChicmFuZENoZWNrT2tMYWJlbC5nZXQoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaAppbmRleCBlNTExZGMyNzU1NWRlNWI4ODQ0N2UzMzNmOWUxNjYyNWE4NTYy
NjFjLi5jYWZhNTc5ZTM3Y2YwN2UyYWFlODgyMGE0NzM0N2Q3Njg3MDNlNjk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5oCkBAIC04NDAsMTIgKzg0MCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdERlZmluZVByaXZhdGVGaWVsZChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklE
KiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
UHJpdmF0ZUZpZWxkUHV0KFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBS
ZWdpc3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRQcml2YXRlTmFt
ZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5
KTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEhhc1ByaXZhdGVOYW1lKFJlZ2lzdGVySUQqIGRz
dCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHkpOwogCiAgICAgICAgIHZv
aWQgZW1pdENyZWF0ZVByaXZhdGVCcmFuZChSZWdpc3RlcklEKiBkc3QsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAgICAgICAgIHZvaWQgZW1pdEluc3RhbGxQcml2YXRl
QnJhbmQoUmVnaXN0ZXJJRCogdGFyZ2V0KTsKICAgICAgICAgdm9pZCBlbWl0SW5zdGFsbFByaXZh
dGVDbGFzc0JyYW5kKFJlZ2lzdGVySUQqIHRhcmdldCk7CiAKICAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdEdldFByaXZhdGVCcmFuZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNjb3BlLCBi
b29sIGlzU3RhdGljKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEhhc1ByaXZhdGVCcmFuZChS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIGJyYW5kLCBib29s
IGlzU3RhdGljKTsKICAgICAgICAgdm9pZCBlbWl0Q2hlY2tQcml2YXRlQnJhbmQoUmVnaXN0ZXJJ
RCogYmFzZSwgUmVnaXN0ZXJJRCogYnJhbmQsIGJvb2wgaXNTdGF0aWMpOwogCiAgICAgICAgIHZv
aWQgZW1pdFN1cGVyU2FtcGxlckJlZ2luKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggM2NiZDEyMDk5ZTg1YjBiNDI2
MjA4MGE0M2EzNWRlODFmMmJkNTdiOS4uNmZmZTE2NjI3YThiMzJlZTI5OGZiNjc1NjVjY2NlYzI0
ZTgxOGUzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9O
b2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Tm9kZXNDb2RlZ2VuLmNwcApAQCAtMzIwNiw2ICszMjA2LDIzIEBAIFJlZ2lzdGVySUQqIEluc3Rh
bmNlT2ZOb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVn
aXN0ZXJJCiAKIFJlZ2lzdGVySUQqIEluTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKKyAgICBpZiAobV9leHByMS0+aXNQ
cml2YXRlSWRlbnRpZmllcigpKSB7CisgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0g
Z2VuZXJhdG9yLmVtaXROb2RlKG1fZXhwcjIpOworCisgICAgICAgIGF1dG8gaWRlbnRpZmllciA9
IHN0YXRpY19jYXN0PFByaXZhdGVJZGVudGlmaWVyTm9kZSo+KG1fZXhwcjEpLT52YWx1ZSgpOwor
ICAgICAgICBhdXRvIHByaXZhdGVUcmFpdHMgPSBnZW5lcmF0b3IuZ2V0UHJpdmF0ZVRyYWl0cyhp
ZGVudGlmaWVyKTsKKyAgICAgICAgVmFyaWFibGUgdmFyID0gZ2VuZXJhdG9yLnZhcmlhYmxlKGlk
ZW50aWZpZXIpOworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc2NvcGUgPSBnZW5lcmF0b3Iu
ZW1pdFJlc29sdmVTY29wZShudWxscHRyLCB2YXIpOworCisgICAgICAgIGlmIChwcml2YXRlVHJh
aXRzLmlzRmllbGQoKSkgeworICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByaXZhdGVO
YW1lID0gZ2VuZXJhdG9yLmVtaXRHZXRGcm9tU2NvcGUoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
LCBzY29wZS5nZXQoKSwgdmFyLCBEb05vdFRocm93SWZOb3RGb3VuZCk7CisgICAgICAgICAgICBy
ZXR1cm4gZ2VuZXJhdG9yLmVtaXRIYXNQcml2YXRlTmFtZShnZW5lcmF0b3IuZmluYWxEZXN0aW5h
dGlvbihkc3QsIGJhc2UuZ2V0KCkpLCBiYXNlLmdldCgpLCBwcml2YXRlTmFtZS5nZXQoKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJpdmF0ZUJyYW5kID0gZ2Vu
ZXJhdG9yLmVtaXRHZXRQcml2YXRlQnJhbmQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBzY29w
ZS5nZXQoKSwgcHJpdmF0ZVRyYWl0cy5pc1N0YXRpYygpKTsKKyAgICAgICAgcmV0dXJuIGdlbmVy
YXRvci5lbWl0SGFzUHJpdmF0ZUJyYW5kKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwg
YmFzZS5nZXQoKSksIGJhc2UuZ2V0KCksIHByaXZhdGVCcmFuZC5nZXQoKSwgcHJpdmF0ZVRyYWl0
cy5pc1N0YXRpYygpKTsKKyAgICB9CisKICAgICBpZiAoaXNOb25JbmRleFN0cmluZ0VsZW1lbnQo
Km1fZXhwcjEpKSB7CiAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9y
LmVtaXROb2RlKG1fZXhwcjIpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZv
KGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKaW5k
ZXggZmE5ZDlmYTBiYmZiMDZkYjZkNjIwMTI3NWNmYzY2MzQxMTA5Yjk5Ni4uODBkNzI4N2ZiNjA4
MmYwZTQzZjJkN2JhZDI1YmM1ZThjMDEyNzFiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApAQCAtNDIx
Miw2ICs0MjEyLDE1IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIAorICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgY2FzZSBIYXNQcml2YXRlQnJh
bmQ6IHsKKyAgICAgICAgY2xvYmJlcldvcmxkKCk7CisgICAgICAgIGZpbHRlcihub2RlLT5jaGls
ZDEoKSwgU3BlY09iamVjdCk7CisgICAgICAgIGZpbHRlcihub2RlLT5jaGlsZDIoKSwgU3BlY1N5
bWJvbCk7CisgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2RlLCBTcGVjQm9vbGVhbik7
CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6IHsKICAg
ICAgICAgY2xvYmJlcldvcmxkKCk7CiAgICAgICAgIHNldE5vbkNlbGxUeXBlRm9yTm9kZShub2Rl
LCBTcGVjQm9vbGVhbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCmluZGV4IGUwZTU3Y2FkNmEwYjY5NjljMTgxNmUzZDA2NWViODdlOGNiNjAw
NDkuLmIxYmE1OGNhMWI3NTk4MTljNzRkNjllMWI5MGY4YTM4NzUxZWJjOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC04Mjc0LDYg
KzgyNzQsMTggQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1p
dCkKICAgICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChJbkJ5SWQsIE9w
SW5mbyhDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVkQnlDb2Rl
QmxvY2sobV9pbmxpbmVTdGFja1RvcC0+bV9wcm9maWxlZEJsb2NrLCB1aWQpKSwgYmFzZSkpOwog
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaW5fYnlfaWQpOwogICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBjYXNlIG9wX2hhc19wcml2YXRlX25hbWU6IHsKKyAgICAgICAgICAgIGF1dG8g
Ynl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSGFzUHJpdmF0ZU5hbWU+KCk7Cisg
ICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGFkZFRvR3JhcGgoSGFzUHJpdmF0ZU5hbWUs
IGdldChieXRlY29kZS5tX2Jhc2UpLCBnZXQoYnl0ZWNvZGUubV9wcm9wZXJ0eSkpKTsKKyAgICAg
ICAgICAgIE5FWFRfT1BDT0RFKG9wX2hhc19wcml2YXRlX25hbWUpOworICAgICAgICB9CisKKyAg
ICAgICAgY2FzZSBvcF9oYXNfcHJpdmF0ZV9icmFuZDogeworICAgICAgICAgICAgYXV0byBieXRl
Y29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BIYXNQcml2YXRlQnJhbmQ+KCk7CisgICAg
ICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGFkZFRvR3JhcGgoSGFzUHJpdmF0ZUJyYW5kLCBn
ZXQoYnl0ZWNvZGUubV9iYXNlKSwgZ2V0KGJ5dGVjb2RlLm1fYnJhbmQpKSk7CisgICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9oYXNfcHJpdmF0ZV9icmFuZCk7CisgICAgICAgIH0KIAogICAgICAg
ICBjYXNlIG9wX2dldF9lbnVtZXJhYmxlX2xlbmd0aDogewogICAgICAgICAgICAgYXV0byBieXRl
Y29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRFbnVtZXJhYmxlTGVuZ3RoPigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGI0
ODE5ZmQ3NjliNThjZDUyYWRkMWE1NDZkNzBhM2E1ZDU5NDEzOTcuLmM3MTY0YjMwZjQ2NGViMGQ0
MzgyZTJjY2E0MmQ1Njk5NjRkMWJmNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTI1MCw2ICsyNTAsOCBAQCBDYXBhYmlsaXR5TGV2ZWwg
Y2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Y29uc3QgSQogICAgIGNhc2Ugb3Bfc3dpdGNoX2NoYXI6CiAgICAgY2FzZSBvcF9pbl9ieV92YWw6
CiAgICAgY2FzZSBvcF9pbl9ieV9pZDoKKyAgICBjYXNlIG9wX2hhc19wcml2YXRlX25hbWU6Cisg
ICAgY2FzZSBvcF9oYXNfcHJpdmF0ZV9icmFuZDoKICAgICBjYXNlIG9wX2dldF9zY29wZToKICAg
ICBjYXNlIG9wX2dldF9mcm9tX3Njb3BlOgogICAgIGNhc2Ugb3BfZ2V0X2VudW1lcmFibGVfbGVu
Z3RoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBjZjAx
YmNlMDUzYTNlNTc3ZGU5OTdiMDMzMzliN2IxNGM2Njg4OTIxLi5kY2E2YzRhZjI5YTkzNTFlMDVm
ZmMyZmYyMTFhNTVhNmVmOTVlMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaApAQCAtNzA2LDYgKzcwNiw4IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAg
ICAgY2FzZSBUb1Byb3BlcnR5S2V5OgogICAgIGNhc2UgSW5CeVZhbDoKICAgICBjYXNlIEluQnlJ
ZDoKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOgog
ICAgIGNhc2UgSGFzT3duUHJvcGVydHk6CiAgICAgY2FzZSBWYWx1ZU5lZ2F0ZToKICAgICBjYXNl
IFNldEZ1bmN0aW9uTmFtZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApp
bmRleCBjZmMyMjMwMDBhNTMyYjFjM2IzOTgwZTU0YTUwMWEzZDNkZmFhYjA5Li4wMjg0YTdlMzA0
YTAwNmUxMGUxYTMzNjYwMWViYTdiYmFmNzkzMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwCkBAIC0zMDcsNiArMzA3LDggQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdy
YXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgSW5TdHJ1Y3R1cmVQcm9wZXJ0eToKICAgICBjYXNl
IEluQnlJZDoKICAgICBjYXNlIEluQnlWYWw6CisgICAgY2FzZSBIYXNQcml2YXRlTmFtZToKKyAg
ICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKICAgICBjYXNlIEluc3RhbmNlT2Y6CiAgICAgY2FzZSBJ
bnN0YW5jZU9mQ3VzdG9tOgogICAgIGNhc2UgVmFyYXJnc0xlbmd0aDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IDM3NGQ1NTMwNWRmOGQ4NzUwMzJl
MDQ3NzdiYzMyMjE5YTU1MTU4MGEuLmY2NWY5YjU3OTBlNjZlMWQ5MmUyMTJjN2ExZTU1NGU4OWQ4
YThiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApA
QCAtMjEwNiw2ICsyMTA2LDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCisgICAgICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgICAgIGNhc2UgSGFzUHJp
dmF0ZUJyYW5kOiB7CisgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgICAgIGZpeEVkZ2U8U3ltYm9sVXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2UgSGFzT3duUHJvcGVydHk6
IHsKICAgICAgICAgICAgIGZpeEVkZ2U8T2JqZWN0VXNlPihub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IGFmMjY4Mjg2YzgxMDA5ZDE4
MjZjYjEwYmNmNTdiNTExMGE0YTczMzkuLjI5ZjM4OGFmY2QzODc1MzhhZjdlNDQ0MmFkMGVmZDZm
ZDNkNWI4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTQz
MSw2ICs0MzEsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8o
TWFrZVJvcGUsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKEluQnlWYWwsIE5vZGVSZXN1bHRC
b29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEluQnlJZCwgTm9kZVJlc3Vs
dEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCisgICAgbWFjcm8oSGFzUHJpdmF0ZU5hbWUs
IE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKEhhc1By
aXZhdGVCcmFuZCwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAg
bWFjcm8oUHJvZmlsZVR5cGUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhQcm9maWxl
Q29udHJvbEZsb3csIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhTZXRGdW5jdGlvbk5h
bWUsIE5vZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggZmU3NmQy
YjZlMGY5NmYzZTI4ZmMzZDk4M2ZiMzNhYzIzMTY4NmIzMS4uNWI1ODBiYjU0M2MxOWRjYWJmODdh
MDRmYzc4MzI3NTgyNDA4MWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTEyMDQsMTkg
KzEyMDQsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHNldFByZWRpY3Rpb24oU3BlY09iamVj
dE90aGVyKTsKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgSW5CeVZhbDoKLSAg
ICAgICAgY2FzZSBJbkJ5SWQ6Ci0gICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNCb29sZWFu
KTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgSGFzT3duUHJvcGVydHk6Ci0g
ICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNCb29sZWFuKTsKLSAgICAgICAgICAgIGJyZWFr
OwotCiAgICAgICAgIGNhc2UgR2V0RW51bWVyYWJsZUxlbmd0aDogewogICAgICAgICAgICAgc2V0
UHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CisgICAgICAgIGNhc2UgSW5CeVZhbDoKKyAgICAgICAgY2FzZSBJbkJ5SWQ6CisgICAgICAgIGNh
c2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOgorICAgICAg
ICBjYXNlIEhhc093blByb3BlcnR5OgogICAgICAgICBjYXNlIEhhc093blN0cnVjdHVyZVByb3Bl
cnR5OgogICAgICAgICBjYXNlIEluU3RydWN0dXJlUHJvcGVydHk6CiAgICAgICAgIGNhc2UgSGFz
SW5kZXhlZFByb3BlcnR5OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4
ZWN1dGUuaAppbmRleCAwN2E4NWRiM2Q2MGM2MDgwYTgzZTZkYTQxODY4YmJmNGI3Y2VmNmM3Li4y
ODEzMTdhM2M1MzBlMDkwYTAzMDJiZTljODhjZDdiNzVjYjM0OWFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNTkxLDYgKzU5MSw4IEBAIGJv
b2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwg
Tm9kZSogbm9kZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBOZXdTdHJpbmdPYmplY3Q6CiAgICAgY2Fz
ZSBJbkJ5VmFsOgogICAgIGNhc2UgSW5CeUlkOgorICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6Cisg
ICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6CiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eToKICAgICBj
YXNlIFB1c2hXaXRoU2NvcGU6CiAgICAgY2FzZSBDcmVhdGVBY3RpdmF0aW9uOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA4ODE5YjRj
MTU5MjQyMTBlZmVkNWQ1YmE5YzI1NmNlZDEyZGE0YTgxLi43M2Y5MTE0ZWFmODgzY2VlZjljYTAz
Yjg0ZjE2ZWU2NDRlNmQyOGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTI4Miw2ICsxMjgyLDQ4IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVJbkJ5VmFsKE5vZGUqIG5vZGUpCiAgICAgYmxlc3NlZEJvb2xlYW5SZXN1
bHQocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGlj
aXRseSk7CiB9CiAKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNQcml2YXRlTmFtZShO
b2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGtleSh0aGlzLCBub2RlLT5jaGls
ZDIoKSk7CisKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIGtl
eUdQUiA9IGtleS5ncHIoKTsKKworICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGlsZDIoKSwg
a2V5R1BSKTsKKworICAgIGJhc2UudXNlKCk7CisgICAga2V5LnVzZSgpOworCisgICAgZmx1c2hS
ZWdpc3RlcnMoKTsKKyAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlz
KTsKKyAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1lLCByZXN1bHRSZWdzLCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgQ0NhbGxIZWxwZXJzOjpDZWxsVmFsdWUoa2V5R1BS
KSk7CisgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICBibGVzc2VkQm9vbGVhblJlc3Vs
dChyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNp
dGx5KTsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc1ByaXZhdGVCcmFuZChO
b2RlKiBub2RlKQoreworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOworICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJyYW5kKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKKworICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICBHUFJSZWcg
YnJhbmRHUFIgPSBicmFuZC5ncHIoKTsKKworICAgIHNwZWN1bGF0ZVN5bWJvbChub2RlLT5jaGls
ZDIoKSwgYnJhbmRHUFIpOworCisgICAgYmFzZS51c2UoKTsKKyAgICBicmFuZC51c2UoKTsKKwor
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCBy
ZXN1bHQodGhpcyk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYXNQcml2YXRlQnJhbmQsIHJlc3VsdFJlZ3Ms
IFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpLCBiYXNlR1BSLCBDQ2FsbEhlbHBlcnM6OkNlbGxW
YWx1ZShicmFuZEdQUikpOworICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgYmxlc3Nl
ZEJvb2xlYW5SZXN1bHQocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIG5vZGUsIFVzZUNoaWxkcmVu
Q2FsbGVkRXhwbGljaXRseSk7Cit9CisKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXNo
V2l0aFNjb3BlKE5vZGUqIG5vZGUpCiB7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgY3VycmVu
dFNjb3BlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaAppbmRleCA5NzE3NTIyOGY2MmRhNzM1MDAyMTBlZmQyY2Vj
Y2E5NTgyYjY4MDJkLi40MTVjNjk3NmUxNjg2ZGJkNDlhNjg5Y2IxNzBhMjM2YjllNjZmZDM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC03
MzgsNiArNzM4LDggQEAgcHVibGljOgogICAgIHZvaWQgY29tcGlsZUdldEJ5SWRGbHVzaChOb2Rl
KiwgQWNjZXNzVHlwZSk7CiAgICAgdm9pZCBjb21waWxlSW5CeUlkKE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVJbkJ5VmFsKE5vZGUqKTsKKyAgICB2b2lkIGNvbXBpbGVIYXNQcml2YXRlTmFtZShO
b2RlKik7CisgICAgdm9pZCBjb21waWxlSGFzUHJpdmF0ZUJyYW5kKE5vZGUqKTsKICAgICAKICAg
ICB2b2lkIG5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVDb21wYXJlTnVsbE9yVW5kZWZpbmVkKEVk
Z2Ugb3BlcmFuZCk7CiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoTnVsbE9y
VW5kZWZpbmVkKEVkZ2Ugb3BlcmFuZCwgTm9kZSogYnJhbmNoTm9kZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAz
NDI0MGU1NGU4NTdmNThhZDQ3NmE2YWYzYmVhMzJjZDdjMjE2ZDY4Li45YzYxYjc5NTJjMjI1MDRi
ODAxNTMyZGU5NWIyYjQzZjc1NTZkYmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTM5ODQsNiArMzk4NCwxNCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBp
bGVJbkJ5VmFsKG5vZGUpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgSGFzUHJpdmF0ZU5h
bWU6CisgICAgICAgIGNvbXBpbGVIYXNQcml2YXRlTmFtZShub2RlKTsKKyAgICAgICAgYnJlYWs7
CisKKyAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKKyAgICAgICAgY29tcGlsZUhhc1ByaXZhdGVC
cmFuZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEhhc093blByb3BlcnR5OiB7
CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9iamVjdCh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSB1bmlxdWVkU3RyaW5nSW1wbCh0aGlzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4
IDM4ZWU2YjRhNmVmOTA5NzQzNWFiOGUwOTUyOTFkMGI2ZTc3NDEzMDUuLjg0ODY0YjkzMTYxOWI2
M2ZkNmM2YWI4NjE5N2YwNWRmYWZjMTAwM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDk2MCw2ICs0OTYwLDE0IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZUlu
QnlWYWwobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBIYXNQcml2YXRlTmFtZToK
KyAgICAgICAgY29tcGlsZUhhc1ByaXZhdGVOYW1lKG5vZGUpOworICAgICAgICBicmVhazsKKwor
ICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOgorICAgICAgICBjb21waWxlSGFzUHJpdmF0ZUJyYW5k
KG5vZGUpOworICAgICAgICBicmVhazsKKwogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6IHsKICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb2JqZWN0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgR1BSVGVtcG9yYXJ5IHVuaXF1ZWRTdHJpbmdJbXBsKHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDNkZjA0NGE4ZmYx
YjU4NTJiNWVhZjNjMDRmYTk2MDhkY2ZlMDk4MmYuLjRmNmUwMzdjYjExYzUyNGI5MTExMzllMDRj
OWYwNWU2YzRkZGI4NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAKQEAgLTI0Myw2ICsyNDMsOCBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNh
bkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgIGNhc2UgSW5C
eVZhbDoKICAgICBjYXNlIEluQnlJZDoKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgIGNh
c2UgSGFzUHJpdmF0ZUJyYW5kOgogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6CiAgICAgY2FzZSBJ
c0NlbGxXaXRoVHlwZToKICAgICBjYXNlIE1hcEhhc2g6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggNWJmOTQxMTAwNzA0YWJmMTU0MjdiMDg1
M2QxODJjMWI4N2NjNGRlMi4uYTViOTUyYzc1YjcxMDBjZjY5ZjNmMTFhODE5YmZhYTIzYmFkNzcy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApA
QCAtOTYyLDYgKzk2MiwxMiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEluQnlWYWw6CiAgICAg
ICAgICAgICBjb21waWxlSW5CeVZhbCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgICAgICAgICBjb21waWxlSGFzUHJpdmF0ZU5hbWUoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKKyAgICAg
ICAgICAgIGNvbXBpbGVIYXNQcml2YXRlQnJhbmQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENoZWNrUHJpdmF0ZUJyYW5kOgogICAgICAgICAgICAgY29tcGlsZUNoZWNrUHJp
dmF0ZUJyYW5kKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEyMjYzLDYgKzEyMjY5LDE4IEBA
IHByaXZhdGU6CiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBo
Lmdsb2JhbE9iamVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIHNldEpTVmFsdWUo
dm1DYWxsKEludDY0LCBvcGVyYXRpb25JbkJ5VmFsLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3Qp
LCBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkp
KSk7CiAgICAgfQorICAgIAorICAgIHZvaWQgY29tcGlsZUhhc1ByaXZhdGVOYW1lKCkKKyAgICB7
CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihtX29yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKElu
dDY0LCBvcGVyYXRpb25IYXNQcml2YXRlTmFtZSwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwg
bG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbG93U3ltYm9sKG1fbm9kZS0+Y2hpbGQyKCkpKSk7
CisgICAgfQorCisgICAgdm9pZCBjb21waWxlSGFzUHJpdmF0ZUJyYW5kKCkKKyAgICB7CisgICAg
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihtX29yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgIHNldEpTVmFsdWUodm1DYWxsKEludDY0LCBv
cGVyYXRpb25IYXNQcml2YXRlQnJhbmQsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0Nl
bGwobV9ub2RlLT5jaGlsZDEoKSksIGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMigpKSkpOworICAg
IH0KIAogICAgIHZvaWQgY29tcGlsZUluQnlJZCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCmluZGV4IGY0MjgwOGZkZmUwZWZhM2I5YWZiNzM4MjliODc3Y2M1NDQwOTAzYWQuLmMw
YzNjNzY1M2JkZjY3ODRiYzc0MmRjY2Q1ZjlhMTMzY2NjMDFkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKQEAgLTI4MSw2ICsyODEsOCBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcygpCiAKICAgICAgICAgc3dpdGNoIChvcGNvZGVJRCkgewogICAgICAgICBERUZJTkVf
U0xPV19PUChpbl9ieV92YWwpCisgICAgICAgIERFRklORV9TTE9XX09QKGhhc19wcml2YXRlX25h
bWUpCisgICAgICAgIERFRklORV9TTE9XX09QKGhhc19wcml2YXRlX2JyYW5kKQogICAgICAgICBE
RUZJTkVfU0xPV19PUChsZXNzKQogICAgICAgICBERUZJTkVfU0xPV19PUChsZXNzZXEpCiAgICAg
ICAgIERFRklORV9TTE9XX09QKGdyZWF0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAppbmRleCA0ZDljNGI3NzJjYmFiMTdkYWE1MjEwZTJlZDQ3MzY3Njdi
YTllYmFjLi5jNWViNmZhODc5ZmUwZTEyMDk1NmM4ODlhNTI5M2YzNTYxNTVmYTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTQ2NCw2ICs0NjQs
NDUgQEAgSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlWYWwsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihDb21tb25TbG93UGF0aHM6Om9wSW5CeVZhbChnbG9iYWxPYmplY3QsIGJhc2Us
IEpTVmFsdWU6OmRlY29kZShrZXkpKSkpOwogfQogCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04o
b3BlcmF0aW9uSGFzUHJpdmF0ZU5hbWUsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBrZXkpKQoreworICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKKyAgICAKKyAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoIWJhc2UtPmlzT2JqZWN0KCkpIHsKKyAgICAgICAg
dGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSW52YWxpZEluUGFyYW1l
dGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlKSk7CisgICAgICAgIHJldHVybiBlbmNvZGVkSlNW
YWx1ZSgpOworICAgIH0KKworICAgIEpTVmFsdWUgcHJvcGVydHlWYWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShrZXkpOworICAgIEFTU0VSVChwcm9wZXJ0eVZhbHVlLmlzU3ltYm9sKCkpOworICAgIGF1
dG8gcHJvcGVydHkgPSBwcm9wZXJ0eVZhbHVlLnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsK
KyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSk7CisKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihhc09iamVjdChiYXNlKS0+aGFzUHJpdmF0ZUZpZWxk
KGdsb2JhbE9iamVjdCwgcHJvcGVydHkpKSk7Cit9CisKK0pTQ19ERUZJTkVfSklUX09QRVJBVElP
TihvcGVyYXRpb25IYXNQcml2YXRlQnJhbmQsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSBicmFuZCkpCit7
CisgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOworICAgIAor
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSA9IERFQ0xBUkVfQ0FMTF9GUkFNRSh2bSk7CisgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworCisgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIGlmICghYmFzZS0+aXNPYmplY3QoKSkgeworICAg
ICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVJbnZhbGlkSW5Q
YXJhbWV0ZXJFcnJvcihnbG9iYWxPYmplY3QsIGJhc2UpKTsKKyAgICAgICAgcmV0dXJuIGVuY29k
ZWRKU1ZhbHVlKCk7CisgICAgfQorCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oYXNPYmplY3QoYmFzZSktPmhhc1ByaXZhdGVCcmFuZChnbG9iYWxPYmplY3QsIEpTVmFsdWU6
OmRlY29kZShicmFuZCkpKSk7Cit9CisKIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRp
b25QdXRCeUlkU3RyaWN0LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QgcmF3Q2FjaGVhYmxlSWRlbnRpZmll
cikpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCA5N2EwOTBkZTI4
N2Q2NmNkMzE5ZDQyYTc3YWU0NWI0MTI4ZTA2ZTFkLi5hMzNiMWE1Y2YxMmI4OWJhNTUyMTkxZTBm
N2Y4NjZlYWZlMWEyZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuaApAQCAtMTc4LDYgKzE3OCw4IEBAIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uSW5CeUlkLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RyCiBKU0NfREVD
TEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCBFbmNvZGVkSlNWYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwg
dWludHB0cl90KSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSW5CeVZh
bCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1Zh
bHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1l
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFs
dWUpKTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5k
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFs
dWUpKTsKIAogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkU3RyaWN0
LCB2b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkp
OwogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0LCB2
b2lkLCAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIHVpbnRwdHJfdCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCmluZGV4IDg3MmI4NTcyZGQ5M2NkOGJiOTVlN2VhNDIzNzQ0YzBlMmM1ZmYwODMuLjY0M2Zk
NGE4NjU2ZmZlODg1MzU0NzVlZjk2ZjVhYTZhMjIwZDEzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTIwMTMsNiAr
MjAxMyw4IEBAIGVuZAogCiBzbG93UGF0aE9wKGluX2J5X2lkKQogc2xvd1BhdGhPcChpbl9ieV92
YWwpCitzbG93UGF0aE9wKGhhc19wcml2YXRlX25hbWUpCitzbG93UGF0aE9wKGhhc19wcml2YXRl
X2JyYW5kKQogc2xvd1BhdGhPcChpc19jYWxsYWJsZSkKIHNsb3dQYXRoT3AoaXNfY29uc3RydWN0
b3IpCiBzbG93UGF0aE9wKGxlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVp
bGRlci5oCmluZGV4IDVlYzU2OWVmNTQwMjY2OTcxMDg5ODdhZjZhYmE3NDEzOTA4NDRlNTMuLjM4
ZGRiMGU1MjAyZTEyY2Q1YmRlYjAxOTA1Njk2YWJjYTE3YWExYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0yMDcsNiArMjA3LDEwIEBAIHB1YmxpYzoK
IAogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBSZXNvbHZlTm9kZShsb2NhdGlv
biwgaWRlbnQsIHN0YXJ0KTsKICAgICB9CisgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0ZVByaXZh
dGVJZGVudGlmaWVyTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJl
bmEpIFByaXZhdGVJZGVudGlmaWVyTm9kZShsb2NhdGlvbiwgaWRlbnQpOworICAgIH0KICAgICBF
eHByZXNzaW9uTm9kZSogY3JlYXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24m
IGxvY2F0aW9uKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIE9iamVjdExpdGVyYWxOb2Rl
KGxvY2F0aW9uKTsgfQogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVPYmplY3RMaXRlcmFsKGNv
bnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFByb3BlcnR5TGlzdE5vZGUqIHByb3BlcnRp
ZXMpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgT2JqZWN0TGl0ZXJhbE5vZGUobG9jYXRp
b24sIHByb3BlcnRpZXMpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2RlQ29uc3RydWN0b3JzLmgKaW5kZXggNzQ3ZDE1ODdiYjA3N2Q1MDE4ZTMwZWMzNWIwZGQyNjEz
YmEzYWJiZC4uNjUxNjliNWNmYWZjM2VmMmYzNmIyOGMzN2FhMzU5MjNjZmE5ZGM5YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTIw
OSw2ICsyMDksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFTU0VSVChtX3N0YXJ0Lm9m
ZnNldCA+PSBtX3N0YXJ0LmxpbmVTdGFydE9mZnNldCk7CiAgICAgfQogCisgICAgaW5saW5lIFBy
aXZhdGVJZGVudGlmaWVyTm9kZTo6UHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50KQorICAgICAgICA6IEV4
cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgewor
ICAgIH0KKwogICAgIGlubGluZSBFbGVtZW50Tm9kZTo6RWxlbWVudE5vZGUoaW50IGVsaXNpb24s
IEV4cHJlc3Npb25Ob2RlKiBub2RlKQogICAgICAgICA6IG1fbm9kZShub2RlKQogICAgICAgICAs
IG1fZWxpc2lvbihlbGlzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4
IGVkMTczYzE3YTViYmE2YWJkMWNlN2M3OTA0ZmYyMDBiODA5Y2IxNzIuLjI1ODM0ZmQ4MTkxM2E2
ZmRjNmQyNWM1MmMxZDZkODdhYzNlYjdmYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05v
ZGVzLmgKQEAgLTIxMyw2ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVh
bCBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAg
dmlydHVhbCBib29sIGlzRGVsZXRlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFsQ2hhaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQcml2YXRlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0
aW9uQ29udGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsJiwgTGFiZWwmLCBGYWxsVGhyb3Vn
aE1vZGUpOwogCkBAIC02ODMsNiArNjg0LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBK
U1RleHRQb3NpdGlvbiBtX3N0YXJ0OwogICAgIH07CiAKKyAgICAvLyBEdW1teSBleHByZXNzaW9u
IHRvIGhvbGQgdGhlIExIUyBvZiBgI3ggaW4gb2JqYC4KKyAgICBjbGFzcyBQcml2YXRlSWRlbnRp
Zmllck5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0
IElkZW50aWZpZXImKTsKKworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2YWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1faWRlbnQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikg
ZmluYWwgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAgICAgICAgYm9vbCBp
c1ByaXZhdGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAg
ICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgfTsKKwogICAgIGNsYXNzIEVsZW1l
bnROb2RlIGZpbmFsIDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewogICAgIHB1YmxpYzoK
ICAgICAgICAgRWxlbWVudE5vZGUoaW50IGVsaXNpb24sIEV4cHJlc3Npb25Ob2RlKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNzA1NjFiOWFjMmE4NzgyYzcz
YzM4N2Y5NTZlYjc5MDQ0NDgyMWMzMy4uODc1NjAwYTA3NGZkMzdiMDA3MzFhY2M2NTcwNmE2Nzgx
YjkyMTYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtNDIz
Myw3ICs0MjMzLDE4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Np
b24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAgICAgIEpTVGV4dFBv
c2l0aW9uIGV4cHJTdGFydCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAgICAgICBpbnQgaW5p
dGlhbEFzc2lnbm1lbnRzID0gbV9wYXJzZXJTdGF0ZS5hc3NpZ25tZW50Q291bnQ7CiAgICAgICAg
IEpTVG9rZW5UeXBlIGxlYWRpbmdUb2tlblR5cGVGb3JVbmFyeUV4cHJlc3Npb24gPSBtX3Rva2Vu
Lm1fdHlwZTsKLSAgICAgICAgVHJlZUV4cHJlc3Npb24gY3VycmVudCA9IHBhcnNlVW5hcnlFeHBy
ZXNzaW9uKGNvbnRleHQpOworCisgICAgICAgIFRyZWVFeHByZXNzaW9uIGN1cnJlbnQgPSAwOwor
ICAgICAgICBpZiAoT3B0aW9uczo6dXNlUHJpdmF0ZUluKCkgJiYgbWF0Y2goUFJJVkFURU5BTUUp
KSB7CisgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBpZGVudCA9IG1fdG9rZW4ubV9kYXRh
LmlkZW50OworICAgICAgICAgICAgQVNTRVJUKGlkZW50KTsKKyAgICAgICAgICAgIHNlbWFudGlj
RmFpbElmRmFsc2UodXNlUHJpdmF0ZU5hbWUoaWRlbnQpLCAiQ2Fubm90IHJlZmVyZW5jZSBwcml2
YXRlIG5hbWVzIG91dHNpZGUgb2YgY2xhc3MiKTsKKyAgICAgICAgICAgIGN1cnJlbnRTY29wZSgp
LT51c2VWYXJpYWJsZShpZGVudCwgZmFsc2UpOworICAgICAgICAgICAgbmV4dCgpOworICAgICAg
ICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKG1fdG9rZW4ubV90eXBlICE9IElOVE9LRU4sICJCYXJl
IHByaXZhdGUgbmFtZSBjYW4gb25seSBiZSB1c2VkIGFzIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBh
biBgaW5gIGV4cHJlc3Npb24iKTsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBjb250ZXh0LmNyZWF0
ZVByaXZhdGVJZGVudGlmaWVyTm9kZShsb2NhdGlvbiwgKmlkZW50KTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBjdXJyZW50ID0gcGFyc2VVbmFyeUV4cHJlc3Npb24oY29udGV4dCk7CiAg
ICAgICAgIGZhaWxJZkZhbHNlKGN1cnJlbnQsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwog
CiAgICAgICAgIGNvbnRleHQuYXBwZW5kQmluYXJ5RXhwcmVzc2lvbkluZm8ob3BlcmFuZFN0YWNr
RGVwdGgsIGN1cnJlbnQsIGV4cHJTdGFydCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSwgbGFzdFRv
a2VuRW5kUG9zaXRpb24oKSwgaW5pdGlhbEFzc2lnbm1lbnRzICE9IG1fcGFyc2VyU3RhdGUuYXNz
aWdubWVudENvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
U3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVj
a2VyLmgKaW5kZXggYzNjNzVlYjlmNDRlMWI3MTU4ZWRlMDM1MGY4ZjFhMzhlYTYzNzMwMi4uZjM1
MDkzNjcxMzIzZTJiYmExMmUyZTRiZmYzODE5NDEwODEyNjg5NCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGlj
OgogICAgICAgICBUZW1wbGF0ZVN0cmluZ1Jlc3VsdCwgVGVtcGxhdGVTdHJpbmdMaXN0UmVzdWx0
LAogICAgICAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0LCBUZW1wbGF0ZUV4cHIsCiAg
ICAgICAgIFRhZ2dlZFRlbXBsYXRlRXhwciwgWWllbGRFeHByLCBBd2FpdEV4cHIsCi0gICAgICAg
IE1vZHVsZU5hbWVSZXN1bHQsCisgICAgICAgIE1vZHVsZU5hbWVSZXN1bHQsIFByaXZhdGVJZGVu
dGlmaWVyLAogICAgICAgICBJbXBvcnRTcGVjaWZpZXJSZXN1bHQsIEltcG9ydFNwZWNpZmllckxp
c3RSZXN1bHQsCiAgICAgICAgIEV4cG9ydFNwZWNpZmllclJlc3VsdCwgRXhwb3J0U3BlY2lmaWVy
TGlzdFJlc3VsdCwKIApAQCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5M
SU5FIGJvb2wgaXNOZXdUYXJnZXQoRXhwcmVzc2lvblR5cGUgdHlwZSkgeyByZXR1cm4gdHlwZSA9
PSBOZXdUYXJnZXRFeHByOyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlzSW1wb3J0TWV0YShF
eHByZXNzaW9uVHlwZSB0eXBlKSB7IHJldHVybiB0eXBlID09IEltcG9ydE1ldGFFeHByOyB9CiAg
ICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlUmVzb2x2ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBj
b25zdCBJZGVudGlmaWVyJiwgaW50LCBpbnQpIHsgcmV0dXJuIFJlc29sdmVFeHByOyB9CisgICAg
RXhwcmVzc2lvblR5cGUgY3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5M
b2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKSB7IHJldHVybiBQcml2YXRlSWRlbnRpZmllcjsg
fQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZU9iamVjdExpdGVyYWwoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJikgeyByZXR1cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlw
ZSBjcmVhdGVPYmplY3RMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCkgeyByZXR1
cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVBcnJheShj
b25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQpIHsgcmV0dXJuIEFycmF5TGl0ZXJhbEV4cHI7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3Bw
CmluZGV4IDgyZjNlY2IwODYzYjNkYWEwNTc0ZDVkOGQ4NDlkMjlkMzAyOWU5YTUuLjZkZGM4ZjE3
N2JmYTc5NjE5M2VjYTUzY2U5YWI3MmRhOGM0ZjUxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtODUwLDYgKzg1MCwzNSBA
QCBKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX2luX2J5X2lkKQogICAgIFJF
VFVSTihqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVlKS0+aGFzUHJvcGVydHkoZ2xvYmFsT2Jq
ZWN0LCBjb2RlQmxvY2stPmlkZW50aWZpZXIoYnl0ZWNvZGUubV9wcm9wZXJ0eSkpKSk7CiB9CiAK
K0pTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaGFzX3ByaXZhdGVfbmFtZSkK
K3sKKyAgICBCRUdJTigpOworCisgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEhhc1ByaXZh
dGVOYW1lPigpOworICAgIGF1dG8gYmFzZVZhbHVlID0gR0VUX0MoYnl0ZWNvZGUubV9iYXNlKS5q
c1ZhbHVlKCk7CisgICAgaWYgKCFiYXNlVmFsdWUuaXNPYmplY3QoKSkKKyAgICAgICAgVEhST1co
Y3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUpKTsK
KworICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IEdFVF9DKGJ5dGVjb2RlLm1fcHJvcGVydHkpLmpz
VmFsdWUoKTsKKyAgICBBU1NFUlQocHJvcGVydHlWYWx1ZS5pc1N5bWJvbCgpKTsKKyAgICBhdXRv
IHByb3BlcnR5ID0gcHJvcGVydHlWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7Cisg
ICAgRVhDRVBUSU9OX0FTU0VSVCghdGhyb3dTY29wZS5leGNlcHRpb24oKSk7CisKKyAgICBSRVRV
Uk4oanNCb29sZWFuKGFzT2JqZWN0KGJhc2VWYWx1ZSktPmhhc1ByaXZhdGVGaWVsZChnbG9iYWxP
YmplY3QsIHByb3BlcnR5KSkpOworfQorCitKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xv
d19wYXRoX2hhc19wcml2YXRlX2JyYW5kKQoreworICAgIEJFR0lOKCk7CisKKyAgICBhdXRvIGJ5
dGVjb2RlID0gcGMtPmFzPE9wSGFzUHJpdmF0ZUJyYW5kPigpOworICAgIGF1dG8gYmFzZVZhbHVl
ID0gR0VUX0MoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCk7CisgICAgaWYgKCFiYXNlVmFsdWUu
aXNPYmplY3QoKSkKKyAgICAgICAgVEhST1coY3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3Io
Z2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUpKTsKKworICAgIFJFVFVSTihqc0Jvb2xlYW4oYXNPYmpl
Y3QoYmFzZVZhbHVlKS0+aGFzUHJpdmF0ZUJyYW5kKGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0ZWNv
ZGUubV9icmFuZCkuanNWYWx1ZSgpKSkpOworfQorCiB0ZW1wbGF0ZTxPcGNvZGVTaXplIHdpZHRo
PgogQUxXQVlTX0lOTElORSBTbG93UGF0aFJldHVyblR5cGUgaXRlcmF0b3JPcGVuVHJ5RmFzdElt
cGwoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEluc3RydWN0aW9uKiBwYykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXgg
YjM3NmY0NGE4YWI5ZGI4OWIwZGE0MzNiZGRmNGZhMzU2ZGEyOGI2My4uNmY4NTJkNWI0ZWNiNDIy
YTUwMDczN2FhYjA2NWEwN2Q1M2Y1NDFlZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTI1Myw2ICsyNTMsOCBAQCBKU0NfREVDTEFS
RV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9pc19jYWxsYWJsZSk7CiBKU0NfREVDTEFSRV9D
T01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9pc19jb25zdHJ1Y3Rvcik7CiBKU0NfREVDTEFSRV9D
T01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9pbl9ieV9pZCk7CiBKU0NfREVDTEFSRV9DT01NT05f
U0xPV19QQVRIKHNsb3dfcGF0aF9pbl9ieV92YWwpOworSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1df
UEFUSChzbG93X3BhdGhfaGFzX3ByaXZhdGVfbmFtZSk7CitKU0NfREVDTEFSRV9DT01NT05fU0xP
V19QQVRIKHNsb3dfcGF0aF9oYXNfcHJpdmF0ZV9icmFuZCk7CiBKU0NfREVDTEFSRV9DT01NT05f
U0xPV19QQVRIKHNsb3dfcGF0aF9kZWxfYnlfdmFsKTsKIEpTQ19ERUNMQVJFX0NPTU1PTl9TTE9X
X1BBVEgoc2xvd19wYXRoX3N0cmNhdCk7CiBKU0NfREVDTEFSRV9DT01NT05fU0xPV19QQVRIKHNs
b3dfcGF0aF90b19wcmltaXRpdmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKaW5kZXggNzMxZjQ0ZGNmZDQzNDBkNDEzOTA2ZmVjZjdlNTZhOGE0ODMwYzI3MS4uNjll
MmFhMTM4ZGJlNDRlZmRlZjA1YzNjNWM0YWUzZmFkM2QyZWZjYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNzgsMTAgKzE3OCwxMiBAQCBwdWJsaWM6CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9i
YWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgc3Rh
dGljIGJvb2wgZ2V0UHJpdmF0ZUZpZWxkU2xvdChKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0Kiwg
UHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBpbmxpbmUgYm9vbCBoYXNQcml2YXRl
RmllbGQoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUpOwogICAgIGlubGluZSBib29sIGdl
dFByaXZhdGVGaWVsZChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CiAgICAgaW5saW5lIHZvaWQgc2V0UHJpdmF0ZUZpZWxkKEpTR2xvYmFsT2JqZWN0KiwgUHJv
cGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBpbmxpbmUgdm9pZCBk
ZWZpbmVQcml2YXRlRmllbGQoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYpOwotICAgIGlubGluZSBib29sIGNoZWNrUHJpdmF0ZUJyYW5kKEpT
R2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CisgICAgaW5saW5lIGJvb2wgaGFzUHJpdmF0
ZUJyYW5kKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CisgICAgaW5saW5lIHZvaWQg
Y2hlY2tQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGJyYW5kKTsKICAgICBp
bmxpbmUgdm9pZCBzZXRQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGJyYW5k
KTsKIAogICAgIHVuc2lnbmVkIGdldEFycmF5TGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXggMGRiMzNjMzcwOGM1
MDYyN2FlNWI1OWFhMTZlNzg2OWM4ZTgzNWRhMC4uMDgyNjZkYWY2NWY1ODBmZGQ0OTVkNmIxZmNk
MTg5ZWU4N2I4MWI1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3RJbmxpbmVzLmgKQEAgLTYyOCw2ICs2MjgsMTQgQEAgQUxXQVlTX0lOTElORSBib29sIEpT
T2JqZWN0OjpnZXRQcml2YXRlRmllbGRTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2Jq
ZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAoraW5saW5lIGJvb2wgSlNPYmplY3Q6Omhhc1ByaXZh
dGVGaWVsZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lKQoreworICAgIEFTU0VSVChwcm9wZXJ0eU5hbWUuaXNQcml2YXRlTmFtZSgpKTsKKyAg
ICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOworICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7
CisgICAgcmV0dXJuIHN0cnVjdHVyZSh2bSktPmdldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1
dGVzKSAhPSBpbnZhbGlkT2Zmc2V0OworfQorCiBpbmxpbmUgYm9vbCBKU09iamVjdDo6Z2V0UHJp
dmF0ZUZpZWxkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShnbG9i
YWxPYmplY3QpOwpAQCAtNjg5LDIwICs2OTcsMjMgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpTT2Jq
ZWN0OjpnZXROb25SZWlmaWVkU3RhdGljUHJvcGVydHlOYW1lcyhWTSYgdm0sIFByb3BlcnR5TmEK
ICAgICB9CiB9CiAKLWlubGluZSBib29sIEpTT2JqZWN0OjpjaGVja1ByaXZhdGVCcmFuZChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJyYW5kKQoraW5saW5lIGJvb2wgSlNP
YmplY3Q6Omhhc1ByaXZhdGVCcmFuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIGJyYW5kKQoreworICAgIEFTU0VSVChicmFuZC5pc1N5bWJvbCgpKTsKKyAgICBWTSYgdm0g
PSBnZXRWTShnbG9iYWxPYmplY3QpOworICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gdGhpcy0+
c3RydWN0dXJlKHZtKTsKKyAgICByZXR1cm4gc3RydWN0dXJlLT5pc0JyYW5kZWRTdHJ1Y3R1cmUo
KSAmJiBqc0Nhc3Q8QnJhbmRlZFN0cnVjdHVyZSo+KHN0cnVjdHVyZSktPmNoZWNrQnJhbmQoYXNT
eW1ib2woYnJhbmQpKTsKK30KKworaW5saW5lIHZvaWQgSlNPYmplY3Q6OmNoZWNrUHJpdmF0ZUJy
YW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYnJhbmQpCiB7CiAgICAg
QVNTRVJUKGJyYW5kLmlzU3ltYm9sKCkpOwogICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSB0aGlzLT5zdHJ1Y3R1cmUodm0pOwotICAgIGlmICghc3RydWN0
dXJlLT5pc0JyYW5kZWRTdHJ1Y3R1cmUoKSB8fCAhanNDYXN0PEJyYW5kZWRTdHJ1Y3R1cmUqPihz
dHJ1Y3R1cmUpLT5jaGVja0JyYW5kKGFzU3ltYm9sKGJyYW5kKSkpIHsKKyAgICBpZiAoIXN0cnVj
dHVyZS0+aXNCcmFuZGVkU3RydWN0dXJlKCkgfHwgIWpzQ2FzdDxCcmFuZGVkU3RydWN0dXJlKj4o
c3RydWN0dXJlKS0+Y2hlY2tCcmFuZChhc1N5bWJvbChicmFuZCkpKQogICAgICAgICB0aHJvd0V4
Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVQcml2YXRlTWV0aG9kQWNjZXNzRXJy
b3IoZ2xvYmFsT2JqZWN0KSk7Ci0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZmFs
c2UpOwotICAgIH0KLSAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSk7Ci0K
LSAgICByZXR1cm4gdHJ1ZTsKIH0KIAogaW5saW5lIHZvaWQgSlNPYmplY3Q6OnNldFByaXZhdGVC
cmFuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJyYW5kKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggN2U3OGFiYTVlZDcx
YTRmNTYzZmY1YWZiZmRlM2FkNjU1MGVhYzJiMy4uNzA3N2FlMjhlZTM2NmIwODgxY2Q5OWUzOTU3
YjMzNzkzMWViMmJhMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9uc0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
TGlzdC5oCkBAIC01MjEsNiArNTIxLDcgQEAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBjYW5Vc2VK
SVRDYWdlKCk7CiAgICAgdihCb29sLCB1c2VQcml2YXRlU3RhdGljQ2xhc3NGaWVsZHMsIHRydWUs
IE5vcm1hbCwgIklmIHRydWUsIHRoZSBwYXJzZXIgd2lsbCB1bmRlcnN0YW5kIHByaXZhdGUgc3Rh
dGljIGRhdGEgZmllbGRzIGluc2lkZSBjbGFzc2VzLiIpIFwKICAgICB2KEJvb2wsIHVzZVByaXZh
dGVDbGFzc0ZpZWxkcywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBhcnNlciB3aWxsIHVu
ZGVyc3RhbmQgcHJpdmF0ZSBkYXRhIGZpZWxkcyBpbnNpZGUgY2xhc3Nlcy4iKSBcCiAgICAgdihC
b29sLCB1c2VQcml2YXRlTWV0aG9kcywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBhcnNl
ciB3aWxsIHVuZGVyc3RhbmQgcHJpdmF0ZSBtZXRob2RzIGluc2lkZSBjbGFzc2VzLiIpIFwKKyAg
ICB2KEJvb2wsIHVzZVByaXZhdGVJbiwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIHRoZSBwYXJz
ZXIgd2lsbCB1bmRlcnN0YW5kIHByaXZhdGUgbWVtYmVyIGV4aXN0ZW5jZSBjaGVja3Mgd2l0aCB0
aGUgYGluYCBvcGVyYXRvci4iKSBcCiAgICAgdihCb29sLCB1c2VXZWJBc3NlbWJseVN0cmVhbWlu
ZywgdHJ1ZSwgTm9ybWFsLCAiQWxsb3cgdG8gcnVuIFdlYkFzc2VtYmx5J3MgU3RyZWFtaW5nIEFQ
SSIpIFwKICAgICB2KEJvb2wsIHVzZVdlYkFzc2VtYmx5UmVmZXJlbmNlcywgdHJ1ZSwgTm9ybWFs
LCAiQWxsb3cgdHlwZXMgZnJvbSB0aGUgd2FzbSByZWZlcmVuY2VzIHNwZWMuIikgXAogICAgIHYo
Qm9vbCwgdXNlV2ViQXNzZW1ibHlUeXBlZEZ1bmN0aW9uUmVmZXJlbmNlcywgZmFsc2UsIE5vcm1h
bCwgIkFsbG93IGZ1bmN0aW9uIHR5cGVzIGZyb20gdGhlIHdhc20gdHlwZWQgZnVuY3Rpb24gcmVm
ZXJlbmNlcyBzcGVjLiIpIFwKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMGJiOWY5NTQ4ZDgxMzY3Yjk0N2NmYTIwMTFmMGFjYmFmNmJjNDNh
Yi4uZjM5ZTE1YjYzZGViYWYxYmRmOGZhZDYxOGUxMGI4NjA4N2NkZDVhNyAxMDA2NDQKLS0tIGEv
SlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAyMS0wNS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisK
KyAgICAgICAgU3VwcG9ydCBFcmdvbm9taWMgQnJhbmQgQ2hlY2tzIHByb3Bvc2FsIChgI3ggaW4g
b2JqYCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTA5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RyZXNzL3ByaXZhdGUtaW4uanM6IEFkZGVkLgorICAgICAgICAqIHRlc3QyNjIvY29uZmlnLnlh
bWw6IEFkZCBmZWF0dXJlIGZsYWcuCisKIDIwMjEtMDUtMTYgIFNhYW0gQmFyYXRpICA8c2JhcmF0
aUBhcHBsZS5jb20+CiAKICAgICAgICAgREZHVmFyYXJnc0ZvcndhcmRpbmdQaGFzZSBzaG91bGRu
J3QgY29uc3VsdCBGbHVzaApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvcHJpdmF0ZS1pbi5q
cyBiL0pTVGVzdHMvc3RyZXNzL3ByaXZhdGUtaW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzE4ODU2MmM0MjU3
YjM0YmFmZDRkZWJjNTU4MzRlYjdlMmZiMzFjMwotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMv
c3RyZXNzL3ByaXZhdGUtaW4uanMKQEAgLTAsMCArMSw2MyBAQAorLy9AIHJlcXVpcmVPcHRpb25z
KCItLXVzZVByaXZhdGVJbj0xIikKKworZnVuY3Rpb24gYXNzZXJ0KGIpIHsKKyAgaWYgKCFiKSB0
aHJvdyBuZXcgRXJyb3I7Cit9CisKK2Z1bmN0aW9uIHNob3VsZFRocm93VHlwZUVycm9yKGZ1bmMp
IHsKKyAgICBsZXQgZXJyb3I7CisgICAgdHJ5IHsKKyAgICAgICAgZnVuYygpOworICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgZXJyb3IgPSBlOworICAgIH0KKworICAgIGlmICghKGVycm9yIGlu
c3RhbmNlb2YgVHlwZUVycm9yKSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBU
eXBlRXJyb3IhJyk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgIGNsYXNzIEYgeyAjeDsgc3Rh
dGljIGlzRihvYmopIHsgcmV0dXJuICN4IGluIG9iajsgfSB9CisgIGNsYXNzIFNGIHsgc3RhdGlj
ICN4OyBzdGF0aWMgaXNTRihvYmopIHsgcmV0dXJuICN4IGluIG9iajsgfSB9CisKKyAgY2xhc3Mg
TSB7ICN4KCkge30gc3RhdGljIGlzTShvYmopIHsgcmV0dXJuICN4IGluIG9iajsgfSB9CisgIGNs
YXNzIFNNIHsgc3RhdGljICN4KCkge30gc3RhdGljIGlzU00ob2JqKSB7IHJldHVybiAjeCBpbiBv
Ymo7IH0gfQorCisgIGNsYXNzIEcgeyBnZXQgI3goKSB7fSBzdGF0aWMgaXNHKG9iaikgeyByZXR1
cm4gI3ggaW4gb2JqOyB9IH0KKyAgY2xhc3MgU0cgeyBzdGF0aWMgZ2V0ICN4KCkge30gc3RhdGlj
IGlzU0cob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorCisgIGNsYXNzIFMgeyBzZXQgI3go
dikge30gc3RhdGljIGlzUyhvYmopIHsgcmV0dXJuICN4IGluIG9iajsgfSB9CisgIGNsYXNzIFNT
IHsgc3RhdGljIHNldCAjeCh2KSB7fSBzdGF0aWMgaXNTUyhvYmopIHsgcmV0dXJuICN4IGluIG9i
ajsgfSB9CisKKyAgYXNzZXJ0KEYuaXNGKG5ldyBGKSk7CisgIGFzc2VydCghRi5pc0YoRikgJiYg
IUYuaXNGKG5ldyBNKSAmJiAhRi5pc0Yoe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkg
PT4gRi5pc0YoMykpOworICBhc3NlcnQoU0YuaXNTRihTRikpOworICBhc3NlcnQoIVNGLmlzU0Yo
bmV3IFNGKSAmJiAhU0YuaXNTRihTTSkgJiYgIVNGLmlzU0Yoe30pKTsKKyAgc2hvdWxkVGhyb3dU
eXBlRXJyb3IoKCkgPT4gU0YuaXNTRigzKSk7CisKKyAgYXNzZXJ0KE0uaXNNKG5ldyBNKSk7Cisg
IGFzc2VydCghTS5pc00oTSkgJiYgIU0uaXNNKG5ldyBGKSAmJiAhTS5pc00oe30pKTsKKyAgc2hv
dWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gTS5pc00oMykpOworICBhc3NlcnQoU00uaXNTTShTTSkp
OworICBhc3NlcnQoIVNNLmlzU00obmV3IFNNKSAmJiAhU00uaXNTTShTRikgJiYgIVNNLmlzU00o
e30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gU00uaXNTTSgzKSk7CisKKyAgYXNz
ZXJ0KEcuaXNHKG5ldyBHKSk7CisgIGFzc2VydCghRy5pc0coRykgJiYgIUcuaXNHKG5ldyBGKSAm
JiAhRy5pc0coe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gRy5pc0coMykpOwor
ICBhc3NlcnQoU0cuaXNTRyhTRykpOworICBhc3NlcnQoIVNHLmlzU0cobmV3IFNHKSAmJiAhU0cu
aXNTRyhTRikgJiYgIVNHLmlzU0coe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4g
U0cuaXNTRygzKSk7CisKKyAgYXNzZXJ0KFMuaXNTKG5ldyBTKSk7CisgIGFzc2VydCghUy5pc1Mo
UykgJiYgIVMuaXNTKG5ldyBGKSAmJiAhUy5pc1Moe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJy
b3IoKCkgPT4gUy5pc1MoMykpOworICBhc3NlcnQoU1MuaXNTUyhTUykpOworICBhc3NlcnQoIVNT
LmlzU1MobmV3IFNTKSAmJiAhU1MuaXNTUyhTRikgJiYgIVNTLmlzU1Moe30pKTsKKyAgc2hvdWxk
VGhyb3dUeXBlRXJyb3IoKCkgPT4gU1MuaXNTUygzKSk7Cit9Citub0lubGluZSh0ZXN0KTsKKwor
Zm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQorICB0ZXN0KCk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwK
aW5kZXggYTZiYTJhYjM4YzE3MTIwMWJjYmE5NzVkMjcxODY3NzYzNDZkNGY4MS4uNzc1NDJjZDM4
NDBkNTUyYjI5OWQyOTkwZDM1YjljNDBiNGM2Mzk3OCAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0
MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbApAQCAtNSw2
ICs1LDcgQEAgZmxhZ3M6CiAgIEZpbmFsaXphdGlvblJlZ2lzdHJ5OiB1c2VXZWFrUmVmcwogICBj
bGFzcy1maWVsZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZUNsYXNzRmllbGRzCiAgIGNsYXNzLW1ldGhv
ZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZU1ldGhvZHMKKyAgY2xhc3MtZmllbGRzLXByaXZhdGUtaW46
IHVzZVByaXZhdGVJbgogICBjbGFzcy1zdGF0aWMtZmllbGRzLXB1YmxpYzogdXNlUHVibGljU3Rh
dGljQ2xhc3NGaWVsZHMKICAgY2xhc3Mtc3RhdGljLWZpZWxkcy1wcml2YXRlOiB1c2VQcml2YXRl
U3RhdGljQ2xhc3NGaWVsZHMKICAgY2xhc3Mtc3RhdGljLW1ldGhvZHMtcHJpdmF0ZTogdXNlUHJp
dmF0ZU1ldGhvZHMKQEAgLTIzLDggKzI0LDYgQEAgc2tpcDoKICAgICAtIHJlZ2V4cC1sb29rYmVo
aW5kCiAgICAgLSBsZWdhY3ktcmVnZXhwCiAgICAgLSBjbGVhbnVwU29tZQotICAgICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTA5MwotICAgIC0gY2xhc3MtZmll
bGRzLXByaXZhdGUtaW4KICAgcGF0aHM6CiAgIGZpbGVzOgogICAgICMgU2xpZ2h0bHkgZGlmZmVy
ZW50IGZvcm1hdHRpbmcuIFdlIHNob3VsZCB1cGRhdGUgdGVzdDI2MiBzaWRlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429435</attachid>
            <date>2021-05-22 16:23:00 -0700</date>
            <delta_ts>2021-05-22 20:03:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221093-20210522162300.patch</filename>
            <type>text/plain</type>
            <size>48632</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li5mNWU1NjExYzkyOWY2YWNj
MThkZWY3OTNhOTA3NjQwMDA3M2U0Y2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NiBAQAorMjAyMS0wNS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBFcmdvbm9taWMgQnJhbmQgQ2hlY2tzIHByb3Bvc2Fs
IChgI3ggaW4gb2JqYCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTA5MworCisgICAgICAgIFJldmlld2VkIGJ5IENhaW8gTGltYS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBTdGFnZSAzIHByb3Bvc2FsIChi
ZWhpbmQgYSBydW50aW1lIG9wdGlvbik6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5
L3Byb3Bvc2FsLXByaXZhdGUtZmllbGRzLWluLWluCisKKyAgICAgICAgU3BlY2lmaWNhbGx5LCBp
dCBleHRlbmRzIHRoZSBgaW5gIGtleXdvcmQgdG8gYWxsb3cgdGhlIExIUyB0byBiZSBhIHByaXZh
dGUgbmFtZSwKKyAgICAgICAgdGhlcmVieSBhbGxvd2luZyB1c2VycyB0byBpbXBsZW1lbnQgQXJy
YXkuaXNBcnJheS1lc3F1ZSBicmFuZCBjaGVja3MgZm9yIHRoZWlyIG93biBjbGFzc2VzCisgICAg
ICAgICp3aXRob3V0KiBoYXZpbmcgdG8gd3JhcCBhIHByaXZhdGUgbWVtYmVyIGdldCBpbiBhIHRy
eS1jYXRjaC4KKworICAgICAgICBGb3IgZXhhbXBsZToKKyAgICAgICAgYGBgCisgICAgICAgIGNs
YXNzIEMgeworICAgICAgICAgICAgI3g7CisgICAgICAgICAgICBzdGF0aWMgaXNDKG9iaikgeyBy
ZXR1cm4gI3ggaW4gb2JqOyB9CisgICAgICAgIH0KKyAgICAgICAgYGBgCisKKyAgICAgICAgVGhp
cyBpcyBkb25lIGJ5IGFkZGluZyB0d28gbmV3IGJ5dGVjb2RlIG9wcywgSGFzUHJpdmF0ZU5hbWUg
YW5kIEhhc1ByaXZhdGVCcmFuZC4gRm9yIHRoZSBtb21lbnQsCisgICAgICAgIHRoZXNlIGFyZSBp
bXBsZW1lbnRlZCB3aXRob3V0IGZhc3QgcGF0aHMsIGFzIHdlIHNob3VsZCBkbyBzbyBmb3IgSW5C
eVZhbCBmaXJzdCBhbmQgdGhlbiBoYXZlIHRoZXNlIGZvbGxvdyBzdWl0LgorCisgICAgICAgICog
Ynl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNl
RGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6
CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAg
ICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0SGFzUHJpdmF0ZU5hbWUpOgorICAgICAgICAoSlNDOjpCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdEhhc1ByaXZhdGVCcmFuZCk6CisgICAgICAgIChKU0M6OkJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0Q2hlY2tQcml2YXRlQnJhbmQpOgorICAgICAgICAqIGJ5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpJbk5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAg
ICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkRG
Rzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3Rz
KToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAg
ICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6
CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9lc0dD
KToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAg
ICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAq
IGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0
ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc1ByaXZhdGVOYW1lKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc1ByaXZhdGVCcmFuZCk6CisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxl
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExDYXBhYmls
aXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAgICAqIGZ0
bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6
OmNvbXBpbGVIYXNQcml2YXRlTmFtZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVIYXNQcml2YXRlQnJhbmQpOgorICAgICAgICAqIGppdC9KSVQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOgorICAgICAgICAqIGpp
dC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9KSVRfT1BFUkFU
SU9OKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHBhcnNlci9BU1RCdWlsZGVyLmg6Cisg
ICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVByaXZhdGVJZGVudGlmaWVyTm9kZSk6Cisg
ICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoKKyAgICAgICAgKEpTQzo6UHJpdmF0
ZUlkZW50aWZpZXJOb2RlOjpQcml2YXRlSWRlbnRpZmllck5vZGUpOgorICAgICAgICAqIHBhcnNl
ci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpFeHByZXNzaW9uTm9kZTo6aXNQcml2YXRlSWRlbnRp
ZmllciBjb25zdCk6CisgICAgICAgICogcGFyc2VyL1BhcnNlci5jcHA6CisgICAgICAgIChKU0M6
OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJpbmFyeUV4cHJlc3Npb24pOgorICAgICAgICAqIHBh
cnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6OlN5bnRheENoZWNrZXI6OmNyZWF0
ZVByaXZhdGVJZGVudGlmaWVyTm9kZSk6CisgICAgICAgICogcGFyc2VyL1ZhcmlhYmxlRW52aXJv
bm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHA6CisgICAgICAg
IChKU0M6OkpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSCk6CisgICAgICAgICogcnVudGltZS9D
b21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAg
ICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6Omhh
c1ByaXZhdGVGaWVsZCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpoYXNQcml2YXRlQnJhbmQp
OgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Y2hlY2tQcml2YXRlQnJhbmQpOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNS0yMiAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgTG9ja0hvbGRlciB3aXRoIExvY2tlciBp
biBsb2NhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUxpc3QucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0LnJiCmluZGV4IDE2NDEwMWZlY2UwNDI2YTAwMmZmNWE0N2ExYzAyNGI4OTQ2NjQ0
M2MuLjE4MjVlYzJhZDVhMDMzOWQ0ZjNlZjE5NWRkNmY5ZmNmMjJkMDY0OWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgpAQCAtNDU0LDYgKzQ1
NCwyMCBAQCBvcCA6aW5fYnlfaWQsCiAgICAgICAgIHByb3BlcnR5OiB1bnNpZ25lZCwKICAgICB9
CiAKK29wIDpoYXNfcHJpdmF0ZV9uYW1lLAorICAgIGFyZ3M6IHsKKyAgICAgICAgZHN0OiBWaXJ0
dWFsUmVnaXN0ZXIsCisgICAgICAgIGJhc2U6IFZpcnR1YWxSZWdpc3RlciwKKyAgICAgICAgcHJv
cGVydHk6IFZpcnR1YWxSZWdpc3RlciwKKyAgICB9CisKK29wIDpoYXNfcHJpdmF0ZV9icmFuZCwK
KyAgICBhcmdzOiB7CisgICAgICAgIGRzdDogVmlydHVhbFJlZ2lzdGVyLAorICAgICAgICBiYXNl
OiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgICAgIGJyYW5kOiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAg
fQorCiBvcCA6Z2V0X2J5X2lkLAogICAgIGFyZ3M6IHsKICAgICAgICAgZHN0OiBWaXJ0dWFsUmVn
aXN0ZXIsCkBAIC02MDgsNyArNjIyLDYgQEAgb3AgOmNoZWNrX3ByaXZhdGVfYnJhbmQsCiAgICAg
ICAgIHN0cnVjdHVyZUlEOiBTdHJ1Y3R1cmVJRCwKICAgICAgICAgYnJhbmQ6IFdyaXRlQmFycmll
cltKU0NlbGxdLAogICAgIH0KLSAgICAKIAogb3AgOnB1dF9ieV92YWwsCiAgICAgYXJnczogewpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVm
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAK
aW5kZXggMDE2YTAyN2ZhMzNhYjc5NDk0MzEyYTRhNDc3ZGZjNWIyZTdhMDBkNy4uMDc1NjE4OTlh
NjIwOWUzNmNiZmE3MmEwNTRmMTUxMmQ2NzM4YzBjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCkBAIC0yMzIsNiArMjMyLDggQEAg
dm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdpc3RlciBzY29w
ZVJlZ2lzdGVyLCBjb25zdCBJbnN0cnUKICAgICBVU0VTKE9wU2V0UHJpdmF0ZUJyYW5kLCBiYXNl
LCBicmFuZCkKICAgICBVU0VTKE9wQ2hlY2tQcml2YXRlQnJhbmQsIGJhc2UsIGJyYW5kKQogICAg
IFVTRVMoT3BJbkJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSkKKyAgICBVU0VTKE9wSGFzUHJpdmF0ZU5h
bWUsIGJhc2UsIHByb3BlcnR5KQorICAgIFVTRVMoT3BIYXNQcml2YXRlQnJhbmQsIGJhc2UsIGJy
YW5kKQogICAgIFVTRVMoT3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgY29uc3RydWN0b3IsIGhhc0lu
c3RhbmNlVmFsdWUpCiAgICAgVVNFUyhPcEluc3RhbmNlb2YsIHZhbHVlLCBwcm90b3R5cGUpCiAg
ICAgVVNFUyhPcEFkZCwgbGhzLCByaHMpCkBAIC01MDksNiArNTExLDggQEAgdm9pZCBjb21wdXRl
RGVmc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51bVZhcnMsIGNvbnN0IEluc3RydWN0
aW9uKiBpbnN0cnUKICAgICBERUZTKE9wSXNDb25zdHJ1Y3RvciwgZHN0KQogICAgIERFRlMoT3BJ
bkJ5SWQsIGRzdCkKICAgICBERUZTKE9wSW5CeVZhbCwgZHN0KQorICAgIERFRlMoT3BIYXNQcml2
YXRlTmFtZSwgZHN0KQorICAgIERFRlMoT3BIYXNQcml2YXRlQnJhbmQsIGRzdCkKICAgICBERUZT
KE9wVG9OdW1iZXIsIGRzdCkKICAgICBERUZTKE9wVG9OdW1lcmljLCBkc3QpCiAgICAgREVGUyhP
cFRvU3RyaW5nLCBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IDU4ZTUwZGEwOTIxYjIwOWY5ZWJl
ZmYyYWJkZjNiMzNlZmQ1NWJkOGIuLmJkYmFhMjE0OTVlMDEzZTk3Y2Y1OWRkNTRlNzUzZWM4YjA5
MjMwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yNzI0LDYgKzI3MjQsMTIgQEAgUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRQcml2YXRlTmFtZShSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIGIKICAgICByZXR1cm4gZHN0OwogfQogCitSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdEhhc1ByaXZhdGVOYW1lKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHkpCit7CisgICAgT3BIYXNQcml2YXRlTmFtZTo6
ZW1pdCh0aGlzLCBkc3QsIGJhc2UsIHByb3BlcnR5KTsKKyAgICByZXR1cm4gZHN0OworfQorCiBS
ZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERpcmVjdFB1dEJ5VmFsKFJlZ2lzdGVy
SUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSkKIHsKICAg
ICBPcFB1dEJ5VmFsRGlyZWN0OjplbWl0KHRoaXMsIGJhc2UsIHByb3BlcnR5LCB2YWx1ZSwgZWNt
YU1vZGUoKSk7CkBAIC0yNzk2LDEyICsyODAyLDI1IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0UHJpdmF0ZUZpZWxkUHV0KFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQq
CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdEhhc1ByaXZhdGVCcmFuZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJl
Z2lzdGVySUQqIGJyYW5kLCBib29sIGlzU3RhdGljKQoreworICAgIGlmIChpc1N0YXRpYykgewor
ICAgICAgICBSZWY8TGFiZWw+IGlzT2JqZWN0TGFiZWwgPSBuZXdMYWJlbCgpOworICAgICAgICBl
bWl0SnVtcElmVHJ1ZShlbWl0SXNPYmplY3QobmV3VGVtcG9yYXJ5KCksIGJhc2UpLCBpc09iamVj
dExhYmVsLmdldCgpKTsKKyAgICAgICAgZW1pdFRocm93VHlwZUVycm9yKCJDYW5ub3QgYWNjZXNz
IHN0YXRpYyBwcml2YXRlIG1ldGhvZCBvciBhY2Nlc3NvciBvZiBhIG5vbi1PYmplY3QiKTsKKyAg
ICAgICAgZW1pdExhYmVsKGlzT2JqZWN0TGFiZWwuZ2V0KCkpOworICAgICAgICBlbWl0RXF1YWxp
dHlPcDxPcFN0cmljdGVxPihkc3QsIGJhc2UsIGJyYW5kKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
T3BIYXNQcml2YXRlQnJhbmQ6OmVtaXQodGhpcywgZHN0LCBiYXNlLCBicmFuZCk7CisgICAgcmV0
dXJuIGRzdDsKK30KKwogdm9pZCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENoZWNrUHJpdmF0ZUJy
YW5kKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIGJyYW5kLCBib29sIGlzU3RhdGljKQog
ewogICAgIGlmIChpc1N0YXRpYykgewogICAgICAgICBSZWY8TGFiZWw+IGJyYW5kQ2hlY2tPa0xh
YmVsID0gbmV3TGFiZWwoKTsKICAgICAgICAgZW1pdEp1bXBJZlRydWUoZW1pdEVxdWFsaXR5T3A8
T3BTdHJpY3RlcT4obmV3VGVtcG9yYXJ5KCksIGJhc2UsIGJyYW5kKSwgYnJhbmRDaGVja09rTGFi
ZWwuZ2V0KCkpOwotICAgICAgICBlbWl0VGhyb3dUeXBlRXJyb3IoIkNhbm5vdCBhY2Nlc3Mgc3Rh
dGljIHByaXZhdGUgbWV0aG9kIG9yIGFjZXNzb3IiKTsKKyAgICAgICAgZW1pdFRocm93VHlwZUVy
cm9yKCJDYW5ub3QgYWNjZXNzIHN0YXRpYyBwcml2YXRlIG1ldGhvZCBvciBhY2Nlc3NvciIpOwog
ICAgICAgICBlbWl0TGFiZWwoYnJhbmRDaGVja09rTGFiZWwuZ2V0KCkpOwogICAgICAgICByZXR1
cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggZTUxMWRjMjc1NTVkZTViODg0NDdlMzMzZjllMTY2
MjVhODU2MjYxYy4uY2FmYTU3OWUzN2NmMDdlMmFhZTg4MjBhNDczNDdkNzY4NzAzZTY5OCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVH
ZW5lcmF0b3IuaApAQCAtODQwLDEyICs4NDAsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IFJlZ2lzdGVySUQqIGVtaXREZWZpbmVQcml2YXRlRmllbGQoUmVnaXN0ZXJJRCogYmFzZSwgUmVn
aXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVlKTsKICAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdFByaXZhdGVGaWVsZFB1dChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9w
ZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0UHJp
dmF0ZU5hbWUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBw
cm9wZXJ0eSk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRIYXNQcml2YXRlTmFtZShSZWdpc3Rl
cklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5KTsKIAogICAg
ICAgICB2b2lkIGVtaXRDcmVhdGVQcml2YXRlQnJhbmQoUmVnaXN0ZXJJRCogZHN0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogICAgICAgICB2b2lkIGVtaXRJbnN0YWxs
UHJpdmF0ZUJyYW5kKFJlZ2lzdGVySUQqIHRhcmdldCk7CiAgICAgICAgIHZvaWQgZW1pdEluc3Rh
bGxQcml2YXRlQ2xhc3NCcmFuZChSZWdpc3RlcklEKiB0YXJnZXQpOwogCiAgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRHZXRQcml2YXRlQnJhbmQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBz
Y29wZSwgYm9vbCBpc1N0YXRpYyk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRIYXNQcml2YXRl
QnJhbmQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBicmFu
ZCwgYm9vbCBpc1N0YXRpYyk7CiAgICAgICAgIHZvaWQgZW1pdENoZWNrUHJpdmF0ZUJyYW5kKFJl
Z2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIGJyYW5kLCBib29sIGlzU3RhdGljKTsKIAogICAg
ICAgICB2b2lkIGVtaXRTdXBlclNhbXBsZXJCZWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IDNjYmQxMjA5OWU4
NWIwYjQyNjIwODBhNDNhMzVkZTgxZjJiZDU3YjkuLjZiZDMwMWYwODgwNGY2Nzc5YThkYWEwMGZh
Y2M4MTIyY2I3MGIwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29t
cGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTMyMDYsNiArMzIwNiwyNCBAQCBSZWdpc3RlcklE
KiBJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0
b3IsIFJlZ2lzdGVySQogCiBSZWdpc3RlcklEKiBJbk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CisgICAgaWYgKG1fZXhw
cjEtPmlzUHJpdmF0ZUlkZW50aWZpZXIoKSkgeworICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
YmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIyKTsKKworICAgICAgICBhdXRvIGlkZW50
aWZpZXIgPSBzdGF0aWNfY2FzdDxQcml2YXRlSWRlbnRpZmllck5vZGUqPihtX2V4cHIxKS0+dmFs
dWUoKTsKKyAgICAgICAgYXV0byBwcml2YXRlVHJhaXRzID0gZ2VuZXJhdG9yLmdldFByaXZhdGVU
cmFpdHMoaWRlbnRpZmllcik7CisgICAgICAgIFZhcmlhYmxlIHZhciA9IGdlbmVyYXRvci52YXJp
YWJsZShpZGVudGlmaWVyKTsKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHNjb3BlID0gZ2Vu
ZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgdmFyKTsKKworICAgICAgICBpZiAocHJp
dmF0ZVRyYWl0cy5pc0ZpZWxkKCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBw
cml2YXRlTmFtZSA9IGdlbmVyYXRvci5lbWl0R2V0RnJvbVNjb3BlKGdlbmVyYXRvci5uZXdUZW1w
b3JhcnkoKSwgc2NvcGUuZ2V0KCksIHZhciwgRG9Ob3RUaHJvd0lmTm90Rm91bmQpOworICAgICAg
ICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0SGFzUHJpdmF0ZU5hbWUoZ2VuZXJhdG9yLmZpbmFs
RGVzdGluYXRpb24oZHN0LCBiYXNlLmdldCgpKSwgYmFzZS5nZXQoKSwgcHJpdmF0ZU5hbWUuZ2V0
KCkpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKHByaXZhdGVUcmFpdHMuaXNQcml2YXRl
TWV0aG9kT3JBY2Nlc3NvcigpKTsKKyAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByaXZhdGVC
cmFuZCA9IGdlbmVyYXRvci5lbWl0R2V0UHJpdmF0ZUJyYW5kKGdlbmVyYXRvci5uZXdUZW1wb3Jh
cnkoKSwgc2NvcGUuZ2V0KCksIHByaXZhdGVUcmFpdHMuaXNTdGF0aWMoKSk7CisgICAgICAgIHJl
dHVybiBnZW5lcmF0b3IuZW1pdEhhc1ByaXZhdGVCcmFuZChnZW5lcmF0b3IuZmluYWxEZXN0aW5h
dGlvbihkc3QsIGJhc2UuZ2V0KCkpLCBiYXNlLmdldCgpLCBwcml2YXRlQnJhbmQuZ2V0KCksIHBy
aXZhdGVUcmFpdHMuaXNTdGF0aWMoKSk7CisgICAgfQorCiAgICAgaWYgKGlzTm9uSW5kZXhTdHJp
bmdFbGVtZW50KCptX2V4cHIxKSkgewogICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9
IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIyKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHBy
ZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCmluZGV4IDg3ZjQ2NjZmZDJhMzI5ZTA0NTMzOWM3MmRhMGIyYTIzOTcxMjUwY2IuLjQ5
M2YzNjhlNWVlZTBkY2RhMzZlZWJjNjcxMzE5NmZiMWIwZjRlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgKQEAgLTQyMTIsNiArNDIxMiwxNSBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAg
ICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgIGNhc2UgSGFz
UHJpdmF0ZUJyYW5kOiB7CisgICAgICAgIGNsb2JiZXJXb3JsZCgpOworICAgICAgICBmaWx0ZXIo
bm9kZS0+Y2hpbGQxKCksIFNwZWNPYmplY3QpOworICAgICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQy
KCksIFNwZWNTeW1ib2wpOworICAgICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3Bl
Y0Jvb2xlYW4pOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIEhhc093blByb3Bl
cnR5OiB7CiAgICAgICAgIGNsb2JiZXJXb3JsZCgpOwogICAgICAgICBzZXROb25DZWxsVHlwZUZv
ck5vZGUobm9kZSwgU3BlY0Jvb2xlYW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2NGU2MWUyYjk4MmNiY2JjMTQ4OTBiMjYwYmVj
ZGZkODVlMTQzZGY0Li44MmIxNDZkZmIwMmY2MzQ1Y2ZmYjU2Y2Y2YTAyYzcxYWUyMGQ4NDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApA
QCAtODI1Nyw2ICs4MjU3LDIyIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5z
aWduZWQgbGltaXQpCiAgICAgICAgICAgICBzZXQoYnl0ZWNvZGUubV9kc3QsIGFkZFRvR3JhcGgo
SW5CeUlkLCBPcEluZm8oQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJP
d25lZEJ5Q29kZUJsb2NrKG1faW5saW5lU3RhY2tUb3AtPm1fcHJvZmlsZWRCbG9jaywgdWlkKSks
IGJhc2UpKTsKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2luX2J5X2lkKTsKICAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgY2FzZSBvcF9oYXNfcHJpdmF0ZV9uYW1lOiB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogSW1wcm92ZSB0aGlzIG9uY2UgSW5CeVZhbCBoYXMgYmVlbiBvcHRpbWl6
ZWQuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI2MTQ2CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9u
LT5hczxPcEhhc1ByaXZhdGVOYW1lPigpOworICAgICAgICAgICAgc2V0KGJ5dGVjb2RlLm1fZHN0
LCBhZGRUb0dyYXBoKEhhc1ByaXZhdGVOYW1lLCBnZXQoYnl0ZWNvZGUubV9iYXNlKSwgZ2V0KGJ5
dGVjb2RlLm1fcHJvcGVydHkpKSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9oYXNfcHJp
dmF0ZV9uYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2Ugb3BfaGFzX3ByaXZhdGVfYnJh
bmQ6IHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXByb3ZlIHRoaXMgb25jZSBJbkJ5VmFsIGhh
cyBiZWVuIG9wdGltaXplZC4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjYxNDYKKyAgICAgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSGFzUHJpdmF0ZUJyYW5kPigpOworICAgICAgICAgICAgc2V0
KGJ5dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKEhhc1ByaXZhdGVCcmFuZCwgZ2V0KGJ5dGVjb2Rl
Lm1fYmFzZSksIGdldChieXRlY29kZS5tX2JyYW5kKSkpOworICAgICAgICAgICAgTkVYVF9PUENP
REUob3BfaGFzX3ByaXZhdGVfYnJhbmQpOworICAgICAgICB9CiAKICAgICAgICAgY2FzZSBvcF9n
ZXRfZW51bWVyYWJsZV9sZW5ndGg6IHsKICAgICAgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0RW51bWVyYWJsZUxlbmd0aD4oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBiNDgxOWZkNzY5YjU4
Y2Q1MmFkZDFhNTQ2ZDcwYTNhNWQ1OTQxMzk3Li5jNzE2NGIzMGY0NjRlYjBkNDM4MmUyY2NhNDJk
NTY5OTY0ZDFiZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nh
cGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuY3BwCkBAIC0yNTAsNiArMjUwLDggQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlM
ZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IEkKICAg
ICBjYXNlIG9wX3N3aXRjaF9jaGFyOgogICAgIGNhc2Ugb3BfaW5fYnlfdmFsOgogICAgIGNhc2Ug
b3BfaW5fYnlfaWQ6CisgICAgY2FzZSBvcF9oYXNfcHJpdmF0ZV9uYW1lOgorICAgIGNhc2Ugb3Bf
aGFzX3ByaXZhdGVfYnJhbmQ6CiAgICAgY2FzZSBvcF9nZXRfc2NvcGU6CiAgICAgY2FzZSBvcF9n
ZXRfZnJvbV9zY29wZToKICAgICBjYXNlIG9wX2dldF9lbnVtZXJhYmxlX2xlbmd0aDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggY2YwMWJjZTA1M2EzZTU3
N2RlOTk3YjAzMzM5YjdiMTRjNjY4ODkyMS4uZGNhNmM0YWYyOWE5MzUxZTA1ZmZjMmZmMjExYTU1
YTZlZjk1ZTIwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgK
QEAgLTcwNiw2ICs3MDYsOCBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgIGNhc2UgVG9Q
cm9wZXJ0eUtleToKICAgICBjYXNlIEluQnlWYWw6CiAgICAgY2FzZSBJbkJ5SWQ6CisgICAgY2Fz
ZSBIYXNQcml2YXRlTmFtZToKKyAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKICAgICBjYXNlIEhh
c093blByb3BlcnR5OgogICAgIGNhc2UgVmFsdWVOZWdhdGU6CiAgICAgY2FzZSBTZXRGdW5jdGlv
bk5hbWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggY2ZjMjIz
MDAwYTUzMmIxYzNiMzk4MGU1NGE1MDFhM2QzZGZhYWIwOS4uMDI4NGE3ZTMwNGEwMDZlMTBlMWEz
MzY2MDFlYmE3YmJhZjc5MzJiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcApAQCAtMzA3LDYgKzMwNyw4IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSkKICAgICBjYXNlIEluU3RydWN0dXJlUHJvcGVydHk6CiAgICAgY2FzZSBJbkJ5SWQ6CiAg
ICAgY2FzZSBJbkJ5VmFsOgorICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgY2FzZSBIYXNQ
cml2YXRlQnJhbmQ6CiAgICAgY2FzZSBJbnN0YW5jZU9mOgogICAgIGNhc2UgSW5zdGFuY2VPZkN1
c3RvbToKICAgICBjYXNlIFZhcmFyZ3NMZW5ndGg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAzNzRkNTUzMDVkZjhkODc1MDMyZTA0Nzc3YmMzMjIx
OWE1NTE1ODBhLi5mNjVmOWI1NzkwZTY2ZTFkOTJlMjEyYzdhMWU1NTRlODlkOGE4YmVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTIxMDYsNiAr
MjEwNiwxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAg
ICAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgICAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDog
eworICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAg
ICAgICBmaXhFZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIEhhc093blByb3BlcnR5OiB7CiAgICAgICAg
ICAgICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgaWYg
KG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCBhZjI2ODI4NmM4MTAwOWQxODI2Y2IxMGJjZjU3
YjUxMTBhNGE3MzM5Li4yOWYzODhhZmNkMzg3NTM4YWY3ZTQ0NDJhZDBlZmQ2ZmQzZDViODEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC00MzEsNiArNDMxLDgg
QEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKE1ha2VSb3BlLCBO
b2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhJbkJ5VmFsLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5v
ZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhJbkJ5SWQsIE5vZGVSZXN1bHRCb29sZWFuIHwg
Tm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKEhhc1ByaXZhdGVOYW1lLCBOb2RlUmVzdWx0
Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBtYWNybyhIYXNQcml2YXRlQnJhbmQs
IE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKFByb2Zp
bGVUeXBlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oUHJvZmlsZUNvbnRyb2xGbG93
LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oU2V0RnVuY3Rpb25OYW1lLCBOb2RlTXVz
dEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IGZlNzZkMmI2ZTBmOTZmM2Uy
OGZjM2Q5ODNmYjMzYWMyMzE2ODZiMzEuLjViNTgwYmI1NDNjMTlkY2FiZjg3YTA0ZmM3ODMyNzU4
MjQwODFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0xMjA0LDE5ICsxMjA0LDE1IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNPYmplY3RPdGhlcik7CiAg
ICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIEluQnlWYWw6Ci0gICAgICAgIGNhc2Ug
SW5CeUlkOgotICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjQm9vbGVhbik7Ci0gICAgICAg
ICAgICBicmVhazsKLQotICAgICAgICBjYXNlIEhhc093blByb3BlcnR5OgotICAgICAgICAgICAg
c2V0UHJlZGljdGlvbihTcGVjQm9vbGVhbik7Ci0gICAgICAgICAgICBicmVhazsKLQogICAgICAg
ICBjYXNlIEdldEVudW1lcmFibGVMZW5ndGg6IHsKICAgICAgICAgICAgIHNldFByZWRpY3Rpb24o
U3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBj
YXNlIEluQnlWYWw6CisgICAgICAgIGNhc2UgSW5CeUlkOgorICAgICAgICBjYXNlIEhhc1ByaXZh
dGVOYW1lOgorICAgICAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKKyAgICAgICAgY2FzZSBIYXNP
d25Qcm9wZXJ0eToKICAgICAgICAgY2FzZSBIYXNPd25TdHJ1Y3R1cmVQcm9wZXJ0eToKICAgICAg
ICAgY2FzZSBJblN0cnVjdHVyZVByb3BlcnR5OgogICAgICAgICBjYXNlIEhhc0luZGV4ZWRQcm9w
ZXJ0eToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5k
ZXggMDdhODVkYjNkNjBjNjA4MGE4M2U2ZGE0MTg2OGJiZjRiN2NlZjZjNy4uMjgxMzE3YTNjNTMw
ZTA5MGEwMzAyYmU5Yzg4Y2Q3Yjc1Y2IzNDlhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTU5MSw2ICs1OTEsOCBAQCBib29sIHNhZmVUb0V4
ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUs
IGJvb2wgaWdubwogICAgIGNhc2UgTmV3U3RyaW5nT2JqZWN0OgogICAgIGNhc2UgSW5CeVZhbDoK
ICAgICBjYXNlIEluQnlJZDoKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgIGNhc2UgSGFz
UHJpdmF0ZUJyYW5kOgogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6CiAgICAgY2FzZSBQdXNoV2l0
aFNjb3BlOgogICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggODgxOWI0YzE1OTI0MjEwZWZl
ZDVkNWJhOWMyNTZjZWQxMmRhNGE4MS4uNzNmOTExNGVhZjg4M2NlZWY5Y2EwM2I4NGYxNmVlNjQ0
ZTZkMjhmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTEyODIsNiArMTI4Miw0OCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlSW5CeVZhbChOb2RlKiBub2RlKQogICAgIGJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdFJl
Z3MucGF5bG9hZEdQUigpLCBub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogfQog
Cit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzUHJpdmF0ZU5hbWUoTm9kZSogbm9kZSkK
K3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
KyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBrZXkodGhpcywgbm9kZS0+Y2hpbGQyKCkpOworCisg
ICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgIEdQUlJlZyBrZXlHUFIgPSBrZXku
Z3ByKCk7CisKKyAgICBzcGVjdWxhdGVTeW1ib2wobm9kZS0+Y2hpbGQyKCksIGtleUdQUik7CisK
KyAgICBiYXNlLnVzZSgpOworICAgIGtleS51c2UoKTsKKworICAgIGZsdXNoUmVnaXN0ZXJzKCk7
CisgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgSlNW
YWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisgICAgY2FsbE9wZXJhdGlvbihv
cGVyYXRpb25IYXNQcml2YXRlTmFtZSwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vha1Bv
aW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFu
dGljKSksIGJhc2VHUFIsIENDYWxsSGVscGVyczo6Q2VsbFZhbHVlKGtleUdQUikpOworICAgIG1f
aml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVzdWx0UmVn
cy5wYXlsb2FkR1BSKCksIG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7Cit9CisK
K3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNQcml2YXRlQnJhbmQoTm9kZSogbm9kZSkK
K3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
KyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBicmFuZCh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisK
KyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgR1BSUmVnIGJyYW5kR1BSID0g
YnJhbmQuZ3ByKCk7CisKKyAgICBzcGVjdWxhdGVTeW1ib2wobm9kZS0+Y2hpbGQyKCksIGJyYW5k
R1BSKTsKKworICAgIGJhc2UudXNlKCk7CisgICAgYnJhbmQudXNlKCk7CisKKyAgICBmbHVzaFJl
Z2lzdGVycygpOworICAgIEpTVmFsdWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMp
OworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOworICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kLCByZXN1bHRSZWdzLCBUcnVzdGVkSW1t
UHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5v
cmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgQ0NhbGxIZWxwZXJzOjpDZWxsVmFsdWUoYnJhbmRH
UFIpKTsKKyAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOworICAgIGJsZXNzZWRCb29sZWFuUmVz
dWx0KHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxp
Y2l0bHkpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHVzaFdpdGhTY29wZShO
b2RlKiBub2RlKQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGN1cnJlbnRTY29wZSh0aGlz
LCBub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmgKaW5kZXggOTcxNzUyMjhmNjJkYTczNTAwMjEwZWZkMmNlY2NhOTU4MmI2ODAy
ZC4uNDE1YzY5NzZlMTY4NmRiZDQ5YTY4OWNiMTcwYTIzNmI5ZTY2ZmQzNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzM4LDYgKzczOCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVHZXRCeUlkRmx1c2goTm9kZSosIEFjY2Vzc1R5
cGUpOwogICAgIHZvaWQgY29tcGlsZUluQnlJZChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlSW5C
eVZhbChOb2RlKik7CisgICAgdm9pZCBjb21waWxlSGFzUHJpdmF0ZU5hbWUoTm9kZSopOworICAg
IHZvaWQgY29tcGlsZUhhc1ByaXZhdGVCcmFuZChOb2RlKik7CiAgICAgCiAgICAgdm9pZCBub25T
cGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZU51bGxPclVuZGVmaW5lZChFZGdlIG9wZXJhbmQp
OwogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaE51bGxPclVuZGVmaW5lZChF
ZGdlIG9wZXJhbmQsIE5vZGUqIGJyYW5jaE5vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMjUyOWRmZmYxMTg3
NzNlMjAxY2Q4YTM5ZjdmNzM1MGQ4MzdjYjBkOC4uYjU3YzM3YWEwNWRkNDkwOTFjN2ZhMzY1MGY4
YmJmZjc1MjM3ZjYzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zOTg1LDYgKzM5ODUsMTQgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjb21waWxlSW5CeVZhbChu
b2RlKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgICAg
ICBjb21waWxlSGFzUHJpdmF0ZU5hbWUobm9kZSk7CisgICAgICAgIGJyZWFrOworCisgICAgY2Fz
ZSBIYXNQcml2YXRlQnJhbmQ6CisgICAgICAgIGNvbXBpbGVIYXNQcml2YXRlQnJhbmQobm9kZSk7
CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eTogewogICAgICAgICBT
cGVjdWxhdGVDZWxsT3BlcmFuZCBvYmplY3QodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAg
ICBHUFJUZW1wb3JhcnkgdW5pcXVlZFN0cmluZ0ltcGwodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBlMTY1YTQ4ODI5
YWUwYzAyNGFiYjgyMzZiMDFkN2MxZTAzNTI0ZjI2Li5iOTExOGI2MmU4N2Q5NzBhYzU0NjFmNjNi
ZDNjMzgwZmI4YjAxMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQ5NTIsNiArNDk1MiwxNCBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVJbkJ5VmFsKG5vZGUp
OwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgSGFzUHJpdmF0ZU5hbWU6CisgICAgICAgIGNv
bXBpbGVIYXNQcml2YXRlTmFtZShub2RlKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEhh
c1ByaXZhdGVCcmFuZDoKKyAgICAgICAgY29tcGlsZUhhc1ByaXZhdGVCcmFuZChub2RlKTsKKyAg
ICAgICAgYnJlYWs7CisKICAgICBjYXNlIEhhc093blByb3BlcnR5OiB7CiAgICAgICAgIFNwZWN1
bGF0ZUNlbGxPcGVyYW5kIG9iamVjdCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQ
UlRlbXBvcmFyeSB1bmlxdWVkU3RyaW5nSW1wbCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCAzZGYwNDRhOGZmMWI1ODUyYjVlYWYz
YzA0ZmE5NjA4ZGNmZTA5ODJmLi40ZjZlMDM3Y2IxMWM1MjRiOTExMTM5ZTA0YzlmMDVlNmM0ZGRi
ODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CkBAIC0yNDMsNiArMjQzLDggQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgY2FzZSBVbnJlYWNoYWJsZToKICAgICBjYXNlIEluQnlWYWw6CiAgICAg
Y2FzZSBJbkJ5SWQ6CisgICAgY2FzZSBIYXNQcml2YXRlTmFtZToKKyAgICBjYXNlIEhhc1ByaXZh
dGVCcmFuZDoKICAgICBjYXNlIEhhc093blByb3BlcnR5OgogICAgIGNhc2UgSXNDZWxsV2l0aFR5
cGU6CiAgICAgY2FzZSBNYXBIYXNoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCmluZGV4IDcyMDEyYjZjNGUzNGM3ODc4YTg3NGFmZmM1YTUxNDJkMDUx
Nzk3NmUuLmMwNDc1MmQ3YmQ5ZjFiMmY4YTJlZTUzMzE1NzgxMmU5ZmY1NTUxYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTk2Miw2ICs5
NjIsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbkJ5VmFsOgogICAgICAgICAgICAgY29t
cGlsZUluQnlWYWwoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEhhc1ByaXZh
dGVOYW1lOgorICAgICAgICAgICAgY29tcGlsZUhhc1ByaXZhdGVOYW1lKCk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6CisgICAgICAgICAgICBjb21w
aWxlSGFzUHJpdmF0ZUJyYW5kKCk7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
aGVja1ByaXZhdGVCcmFuZDoKICAgICAgICAgICAgIGNvbXBpbGVDaGVja1ByaXZhdGVCcmFuZCgp
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjIxMyw2ICsxMjIxOSwxOCBAQCBwcml2YXRlOgog
ICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmpl
Y3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2
NCwgb3BlcmF0aW9uSW5CeVZhbCwgd2Vha1BvaW50ZXIoZ2xvYmFsT2JqZWN0KSwgbG93Q2VsbCht
X25vZGUtPmNoaWxkMSgpKSwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMigpKSkpOwogICAgIH0K
KyAgICAKKyAgICB2b2lkIGNvbXBpbGVIYXNQcml2YXRlTmFtZSgpCisgICAgeworICAgICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9v
cmlnaW4uc2VtYW50aWMpOworICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgb3BlcmF0
aW9uSGFzUHJpdmF0ZU5hbWUsIHdlYWtQb2ludGVyKGdsb2JhbE9iamVjdCksIGxvd0NlbGwobV9u
b2RlLT5jaGlsZDEoKSksIGxvd1N5bWJvbChtX25vZGUtPmNoaWxkMigpKSkpOworICAgIH0KKwor
ICAgIHZvaWQgY29tcGlsZUhhc1ByaXZhdGVCcmFuZCgpCisgICAgeworICAgICAgICBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4u
c2VtYW50aWMpOworICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uSGFz
UHJpdmF0ZUJyYW5kLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmplY3QpLCBsb3dDZWxsKG1fbm9kZS0+
Y2hpbGQxKCkpLCBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDIoKSkpKTsKKyAgICB9CiAKICAgICB2
b2lkIGNvbXBpbGVJbkJ5SWQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRl
eCA3ODkyZjBkMmQ5MjMyNzRiOTBlNTUzNDcyNWFhOWEyY2VlNDQzNzBiLi5mMWIzYjVhNjNhYzhm
OTc3OTlkZTFlYWI1MDM1OWQ4MWI2ZTMyMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
CkBAIC0yODEsNiArMjgxLDggQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQog
CiAgICAgICAgIHN3aXRjaCAob3Bjb2RlSUQpIHsKICAgICAgICAgREVGSU5FX1NMT1dfT1AoaW5f
YnlfdmFsKQorICAgICAgICBERUZJTkVfU0xPV19PUChoYXNfcHJpdmF0ZV9uYW1lKQorICAgICAg
ICBERUZJTkVfU0xPV19PUChoYXNfcHJpdmF0ZV9icmFuZCkKICAgICAgICAgREVGSU5FX1NMT1df
T1AobGVzcykKICAgICAgICAgREVGSU5FX1NMT1dfT1AobGVzc2VxKQogICAgICAgICBERUZJTkVf
U0xPV19PUChncmVhdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAKaW5kZXggY2VkMTg0MjU1ZWNiYWU2MDA3MWIxZjI0OThkNDQwZTA0M2YwZmJlOS4uZDc2
NTVjN2Q4ZGZmNmMwMDViMDNhZjcxYTgyOTVlOWM3Yzk4YzQ4NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC00NjQsNiArNDY0LDQ1IEBAIEpTQ19E
RUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5VmFsLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
Q29tbW9uU2xvd1BhdGhzOjpvcEluQnlWYWwoZ2xvYmFsT2JqZWN0LCBiYXNlLCBKU1ZhbHVlOjpk
ZWNvZGUoa2V5KSkpKTsKIH0KIAorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhh
c1ByaXZhdGVOYW1lLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUga2V5KSkKK3sKKyAgICBTdXBlclNhbXBs
ZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CisgICAgCisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9DQUxM
X0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CisgICAgaWYgKCFiYXNlLT5pc09iamVjdCgpKSB7CisgICAgICAgIHRocm93RXhjZXB0
aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUludmFsaWRJblBhcmFtZXRlckVycm9yKGds
b2JhbE9iamVjdCwgYmFzZSkpOworICAgICAgICByZXR1cm4gZW5jb2RlZEpTVmFsdWUoKTsKKyAg
ICB9CisKKyAgICBKU1ZhbHVlIHByb3BlcnR5VmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoa2V5KTsK
KyAgICBBU1NFUlQocHJvcGVydHlWYWx1ZS5pc1N5bWJvbCgpKTsKKyAgICBhdXRvIHByb3BlcnR5
ID0gcHJvcGVydHlWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CisgICAgRVhDRVBU
SU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZSktPmhhc1ByaXZhdGVGaWVsZChnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5KSkpOworfQorCitKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9u
SGFzUHJpdmF0ZUJyYW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgYnJhbmQpKQoreworICAgIFN1cGVy
U2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKKyAgICAKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJF
X0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKKyAgICBpZiAoIWJhc2UtPmlzT2JqZWN0KCkpIHsKKyAgICAgICAgdGhyb3dF
eGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJy
b3IoZ2xvYmFsT2JqZWN0LCBiYXNlKSk7CisgICAgICAgIHJldHVybiBlbmNvZGVkSlNWYWx1ZSgp
OworICAgIH0KKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzT2JqZWN0
KGJhc2UpLT5oYXNQcml2YXRlQnJhbmQoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNvZGUoYnJh
bmQpKSkpOworfQorCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0
cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZVN0dWJJ
bmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJsZUlkZW50aWZpZXIpKQogewogICAg
IFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggOTdhMDkwZGUyODdkNjZjZDMxOWQ0
MmE3N2FlNDViNDEyOGUwNmUxZC4uYTMzYjFhNWNmMTJiODliYTU1MjE5MWUwZjdmODY2ZWFmZTFh
MmUxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTE3
OCw2ICsxNzgsOCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlJZCwg
RW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cgogSlNDX0RFQ0xBUkVfSklUX09Q
RVJBVElPTihvcGVyYXRpb25JbkJ5SWRPcHRpbWl6ZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUsIHVpbnRwdHJfdCkp
OwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkluQnlWYWwsIEVuY29kZWRK
U1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSkpOworSlND
X0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQcml2YXRlTmFtZSwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKSk7CitKU0Nf
REVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVCcmFuZCwgRW5jb2RlZEpT
VmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKSk7CiAKIEpT
Q19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdCwgdm9pZCwgKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50cHRyX3QpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCAw
NGU2ZmI0YTBiMzgyZGVmN2NiZDM0MTkxZTdhOWM5YWJmZTNmNzZhLi44YWEyMjYyZWEzM2NiMmQ0
NzM3MzZmNDlhOGYzOTQzOWU3YTMwMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0yMDExLDYgKzIwMTEsOCBAQCBp
ZiBub3QgSlNWQUxVRTY0CiBlbmQKIAogc2xvd1BhdGhPcChpbl9ieV92YWwpCitzbG93UGF0aE9w
KGhhc19wcml2YXRlX25hbWUpCitzbG93UGF0aE9wKGhhc19wcml2YXRlX2JyYW5kKQogc2xvd1Bh
dGhPcChpc19jYWxsYWJsZSkKIHNsb3dQYXRoT3AoaXNfY29uc3RydWN0b3IpCiBzbG93UGF0aE9w
KGxlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxk
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCmluZGV4IDVl
YzU2OWVmNTQwMjY2OTcxMDg5ODdhZjZhYmE3NDEzOTA4NDRlNTMuLjM4ZGRiMGU1MjAyZTEyY2Q1
YmRlYjAxOTA1Njk2YWJjYTE3YWExYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
QVNUQnVpbGRlci5oCkBAIC0yMDcsNiArMjA3LDEwIEBAIHB1YmxpYzoKIAogICAgICAgICByZXR1
cm4gbmV3IChtX3BhcnNlckFyZW5hKSBSZXNvbHZlTm9kZShsb2NhdGlvbiwgaWRlbnQsIHN0YXJ0
KTsKICAgICB9CisgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0ZVByaXZhdGVJZGVudGlmaWVyTm9k
ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIFByaXZhdGVJZGVu
dGlmaWVyTm9kZShsb2NhdGlvbiwgaWRlbnQpOworICAgIH0KICAgICBFeHByZXNzaW9uTm9kZSog
Y3JlYXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uKSB7IHJl
dHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIE9iamVjdExpdGVyYWxOb2RlKGxvY2F0aW9uKTsgfQog
ICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVPYmplY3RMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIFByb3BlcnR5TGlzdE5vZGUqIHByb3BlcnRpZXMpIHsgcmV0dXJuIG5l
dyAobV9wYXJzZXJBcmVuYSkgT2JqZWN0TGl0ZXJhbE5vZGUobG9jYXRpb24sIHByb3BlcnRpZXMp
OyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0
cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3Jz
LmgKaW5kZXggNzQ3ZDE1ODdiYjA3N2Q1MDE4ZTMwZWMzNWIwZGQyNjEzYmEzYWJiZC4uNjUxNjli
NWNmYWZjM2VmMmYzNmIyOGMzN2FhMzU5MjNjZmE5ZGM5YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKQEAgLTIwOSw2ICsyMDksMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFTU0VSVChtX3N0YXJ0Lm9mZnNldCA+PSBtX3N0YXJ0
LmxpbmVTdGFydE9mZnNldCk7CiAgICAgfQogCisgICAgaW5saW5lIFByaXZhdGVJZGVudGlmaWVy
Tm9kZTo6UHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRp
b24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50KQorICAgICAgICA6IEV4cHJlc3Npb25Ob2RlKGxv
Y2F0aW9uKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisgICAgeworICAgIH0KKwogICAgIGlu
bGluZSBFbGVtZW50Tm9kZTo6RWxlbWVudE5vZGUoaW50IGVsaXNpb24sIEV4cHJlc3Npb25Ob2Rl
KiBub2RlKQogICAgICAgICA6IG1fbm9kZShub2RlKQogICAgICAgICAsIG1fZWxpc2lvbihlbGlz
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5oCmluZGV4IDU2MTI5OWE2YTcwZmVm
MjEwNzVmODZhOTYwYzcxY2E4MDRhMjU1YzguLjU5ZjZkYWI0NWRhN2E4ZjFhYTY1MDk0NzNmNmY5
YTZkZDRmY2U4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9k
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKQEAgLTIxMyw2
ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzRnVuY3Rp
b25DYWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIGlz
RGVsZXRlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc09wdGlvbmFsQ2hhaW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNQcml2YXRlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUluQ29uZGl0aW9uQ29udGV4dChCeXRl
Y29kZUdlbmVyYXRvciYsIExhYmVsJiwgTGFiZWwmLCBGYWxsVGhyb3VnaE1vZGUpOwogCkBAIC02
ODMsNiArNjg0LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1RleHRQb3NpdGlvbiBt
X3N0YXJ0OwogICAgIH07CiAKKyAgICAvLyBEdW1teSBleHByZXNzaW9uIHRvIGhvbGQgdGhlIExI
UyBvZiBgI3ggaW4gb2JqYC4KKyAgICBjbGFzcyBQcml2YXRlSWRlbnRpZmllck5vZGUgZmluYWwg
OiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgUHJpdmF0ZUlk
ZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKTsK
KworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVsbHB0cikgZmluYWwgeyBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAgICAgICAgYm9vbCBpc1ByaXZhdGVJZGVudGlm
aWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgICAgIGNvbnN0IElkZW50
aWZpZXImIG1faWRlbnQ7CisgICAgfTsKKwogICAgIGNsYXNzIEVsZW1lbnROb2RlIGZpbmFsIDog
cHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewogICAgIHB1YmxpYzoKICAgICAgICAgRWxlbWVu
dE5vZGUoaW50IGVsaXNpb24sIEV4cHJlc3Npb25Ob2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNzA1NjFiOWFjMmE4NzgyYzczYzM4N2Y5NTZlYjc5MDQ0
NDgyMWMzMy4uODc1NjAwYTA3NGZkMzdiMDA3MzFhY2M2NTcwNmE2NzgxYjkyMTYxNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApAQCAtNDIzMyw3ICs0MjMzLDE4IEBA
IHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4cHJlc3Npb24gUGFyc2VyPExleGVy
VHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAgICAgIEpTVGV4dFBvc2l0aW9uIGV4cHJTdGFy
dCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAgICAgICBpbnQgaW5pdGlhbEFzc2lnbm1lbnRz
ID0gbV9wYXJzZXJTdGF0ZS5hc3NpZ25tZW50Q291bnQ7CiAgICAgICAgIEpTVG9rZW5UeXBlIGxl
YWRpbmdUb2tlblR5cGVGb3JVbmFyeUV4cHJlc3Npb24gPSBtX3Rva2VuLm1fdHlwZTsKLSAgICAg
ICAgVHJlZUV4cHJlc3Npb24gY3VycmVudCA9IHBhcnNlVW5hcnlFeHByZXNzaW9uKGNvbnRleHQp
OworCisgICAgICAgIFRyZWVFeHByZXNzaW9uIGN1cnJlbnQgPSAwOworICAgICAgICBpZiAoT3B0
aW9uczo6dXNlUHJpdmF0ZUluKCkgJiYgbWF0Y2goUFJJVkFURU5BTUUpKSB7CisgICAgICAgICAg
ICBjb25zdCBJZGVudGlmaWVyKiBpZGVudCA9IG1fdG9rZW4ubV9kYXRhLmlkZW50OworICAgICAg
ICAgICAgQVNTRVJUKGlkZW50KTsKKyAgICAgICAgICAgIHNlbWFudGljRmFpbElmRmFsc2UodXNl
UHJpdmF0ZU5hbWUoaWRlbnQpLCAiQ2Fubm90IHJlZmVyZW5jZSBwcml2YXRlIG5hbWVzIG91dHNp
ZGUgb2YgY2xhc3MiKTsKKyAgICAgICAgICAgIGN1cnJlbnRTY29wZSgpLT51c2VWYXJpYWJsZShp
ZGVudCwgZmFsc2UpOworICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgc2VtYW50aWNG
YWlsSWZUcnVlKG1fdG9rZW4ubV90eXBlICE9IElOVE9LRU4sICJCYXJlIHByaXZhdGUgbmFtZSBj
YW4gb25seSBiZSB1c2VkIGFzIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhbiBgaW5gIGV4cHJlc3Np
b24iKTsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBjb250ZXh0LmNyZWF0ZVByaXZhdGVJZGVudGlm
aWVyTm9kZShsb2NhdGlvbiwgKmlkZW50KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBj
dXJyZW50ID0gcGFyc2VVbmFyeUV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZh
bHNlKGN1cnJlbnQsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lvbiIpOwogCiAgICAgICAgIGNvbnRl
eHQuYXBwZW5kQmluYXJ5RXhwcmVzc2lvbkluZm8ob3BlcmFuZFN0YWNrRGVwdGgsIGN1cnJlbnQs
IGV4cHJTdGFydCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSwgbGFzdFRva2VuRW5kUG9zaXRpb24o
KSwgaW5pdGlhbEFzc2lnbm1lbnRzICE9IG1fcGFyc2VyU3RhdGUuYXNzaWdubWVudENvdW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvU3ludGF4Q2hlY2tlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKaW5kZXggYzNj
NzVlYjlmNDRlMWI3MTU4ZWRlMDM1MGY4ZjFhMzhlYTYzNzMwMi4uZjM1MDkzNjcxMzIzZTJiYmEx
MmUyZTRiZmYzODE5NDEwODEyNjg5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9TeW50YXhDaGVja2VyLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgICAgICBUZW1w
bGF0ZVN0cmluZ1Jlc3VsdCwgVGVtcGxhdGVTdHJpbmdMaXN0UmVzdWx0LAogICAgICAgICBUZW1w
bGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0LCBUZW1wbGF0ZUV4cHIsCiAgICAgICAgIFRhZ2dlZFRl
bXBsYXRlRXhwciwgWWllbGRFeHByLCBBd2FpdEV4cHIsCi0gICAgICAgIE1vZHVsZU5hbWVSZXN1
bHQsCisgICAgICAgIE1vZHVsZU5hbWVSZXN1bHQsIFByaXZhdGVJZGVudGlmaWVyLAogICAgICAg
ICBJbXBvcnRTcGVjaWZpZXJSZXN1bHQsIEltcG9ydFNwZWNpZmllckxpc3RSZXN1bHQsCiAgICAg
ICAgIEV4cG9ydFNwZWNpZmllclJlc3VsdCwgRXhwb3J0U3BlY2lmaWVyTGlzdFJlc3VsdCwKIApA
QCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNOZXdU
YXJnZXQoRXhwcmVzc2lvblR5cGUgdHlwZSkgeyByZXR1cm4gdHlwZSA9PSBOZXdUYXJnZXRFeHBy
OyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlzSW1wb3J0TWV0YShFeHByZXNzaW9uVHlwZSB0
eXBlKSB7IHJldHVybiB0eXBlID09IEltcG9ydE1ldGFFeHByOyB9CiAgICAgRXhwcmVzc2lvblR5
cGUgY3JlYXRlUmVzb2x2ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBjb25zdCBJZGVudGlmaWVy
JiwgaW50LCBpbnQpIHsgcmV0dXJuIFJlc29sdmVFeHByOyB9CisgICAgRXhwcmVzc2lvblR5cGUg
Y3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGNvbnN0
IElkZW50aWZpZXImKSB7IHJldHVybiBQcml2YXRlSWRlbnRpZmllcjsgfQogICAgIEV4cHJlc3Np
b25UeXBlIGNyZWF0ZU9iamVjdExpdGVyYWwoY29uc3QgSlNUb2tlbkxvY2F0aW9uJikgeyByZXR1
cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVPYmplY3RM
aXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCkgeyByZXR1cm4gT2JqZWN0TGl0ZXJh
bEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVBcnJheShjb25zdCBKU1Rva2VuTG9j
YXRpb24mLCBpbnQpIHsgcmV0dXJuIEFycmF5TGl0ZXJhbEV4cHI7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKaW5kZXggZDA2ZGZk
NGUzYjA5Mzg5ZDM3OGYzNGM2MWM0MTA1NjgzNzlmMThlMi4uNTdhMmNhMWNlN2VmNDE3ZGQxYjgy
ZWJkZDg1YjhhZTg4ZTkyMTEwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKQEAgLTEwOSwxMCArMTA5LDEwIEBAIHB1YmxpYzoK
ICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX2JpdHMg
JiBJc01ldGhvZDsgfQogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc1NldHRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYml0cyAmIElzU2V0dGVyOyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlzR2V0
dGVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgSXNHZXR0ZXI7IH0KLSAgICBBTFdBWVNfSU5M
SU5FIGJvb2wgaXNGaWVsZCgpIGNvbnN0IHsgcmV0dXJuICFpc1ByaXZhdGVNZXRob2RPckFjZXNz
b3IoKTsgfQorICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc0ZpZWxkKCkgY29uc3QgeyByZXR1cm4g
IWlzUHJpdmF0ZU1ldGhvZE9yQWNjZXNzb3IoKTsgfQogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBp
c1N0YXRpYygpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIElzU3RhdGljOyB9CiAKLSAgICBib29s
IGlzUHJpdmF0ZU1ldGhvZE9yQWNlc3NvcigpIGNvbnN0IHsgcmV0dXJuIGlzTWV0aG9kKCkgfHwg
aXNTZXR0ZXIoKSB8fCBpc0dldHRlcigpOyB9CisgICAgYm9vbCBpc1ByaXZhdGVNZXRob2RPckFj
Y2Vzc29yKCkgY29uc3QgeyByZXR1cm4gaXNNZXRob2QoKSB8fCBpc1NldHRlcigpIHx8IGlzR2V0
dGVyKCk7IH0KIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRJc1VzZWQoKSB7IG1fYml0cyB8
PSBJc1VzZWQ7IH0KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0SXNEZWNsYXJlZCgpIHsgbV9i
aXRzIHw9IElzRGVjbGFyZWQ7IH0KQEAgLTI3NCw3ICsyNzQsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgZm9yIChhdXRvIGVudHJ5IDogcHJpdmF0ZU5h
bWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChlbnRyeS52YWx1ZS5pc1ByaXZhdGVNZXRob2RPckFj
ZXNzb3IoKSAmJiBlbnRyeS52YWx1ZS5pc1N0YXRpYygpKQorICAgICAgICAgICAgaWYgKGVudHJ5
LnZhbHVlLmlzUHJpdmF0ZU1ldGhvZE9yQWNjZXNzb3IoKSAmJiBlbnRyeS52YWx1ZS5pc1N0YXRp
YygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIApA
QCAtMjg3LDcgKzI4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgCiAgICAgICAgIGZvciAoYXV0byBlbnRyeSA6IHByaXZhdGVOYW1lcygpKSB7Ci0gICAg
ICAgICAgICBpZiAoZW50cnkudmFsdWUuaXNQcml2YXRlTWV0aG9kT3JBY2Vzc29yKCkgJiYgIWVu
dHJ5LnZhbHVlLmlzU3RhdGljKCkpCisgICAgICAgICAgICBpZiAoZW50cnkudmFsdWUuaXNQcml2
YXRlTWV0aG9kT3JBY2Nlc3NvcigpICYmICFlbnRyeS52YWx1ZS5pc1N0YXRpYygpKQogICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKaW5kZXggYzE4MWU1
NmFmNTExYjEzM2M2ZWFkM2JkN2Y3ODg2ZGY4MDRjNzEyNi4uMmVjNmVjNGFlMDExYjA5MDhlN2I5
ODkxNTQwOTBjNTk2ZTNkNDJjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC04MzgsNiArODM4LDM1IEBAIEpTQ19ERUZJTkVf
Q09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaW5fYnlfdmFsKQogICAgIFJFVFVSTihqc0Jvb2xl
YW4oQ29tbW9uU2xvd1BhdGhzOjpvcEluQnlWYWwoZ2xvYmFsT2JqZWN0LCBHRVRfQyhieXRlY29k
ZS5tX2Jhc2UpLmpzVmFsdWUoKSwgR0VUX0MoYnl0ZWNvZGUubV9wcm9wZXJ0eSkuanNWYWx1ZSgp
LCAmbWV0YWRhdGEubV9hcnJheVByb2ZpbGUpKSk7CiB9CiAKK0pTQ19ERUZJTkVfQ09NTU9OX1NM
T1dfUEFUSChzbG93X3BhdGhfaGFzX3ByaXZhdGVfbmFtZSkKK3sKKyAgICBCRUdJTigpOworCisg
ICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEhhc1ByaXZhdGVOYW1lPigpOworICAgIGF1dG8g
YmFzZVZhbHVlID0gR0VUX0MoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCk7CisgICAgaWYgKCFi
YXNlVmFsdWUuaXNPYmplY3QoKSkKKyAgICAgICAgVEhST1coY3JlYXRlSW52YWxpZEluUGFyYW1l
dGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUpKTsKKworICAgIGF1dG8gcHJvcGVydHlW
YWx1ZSA9IEdFVF9DKGJ5dGVjb2RlLm1fcHJvcGVydHkpLmpzVmFsdWUoKTsKKyAgICBBU1NFUlQo
cHJvcGVydHlWYWx1ZS5pc1N5bWJvbCgpKTsKKyAgICBhdXRvIHByb3BlcnR5ID0gcHJvcGVydHlW
YWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CisgICAgRVhDRVBUSU9OX0FTU0VSVCgh
dGhyb3dTY29wZS5leGNlcHRpb24oKSk7CisKKyAgICBSRVRVUk4oanNCb29sZWFuKGFzT2JqZWN0
KGJhc2VWYWx1ZSktPmhhc1ByaXZhdGVGaWVsZChnbG9iYWxPYmplY3QsIHByb3BlcnR5KSkpOwor
fQorCitKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX2hhc19wcml2YXRlX2Jy
YW5kKQoreworICAgIEJFR0lOKCk7CisKKyAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSGFz
UHJpdmF0ZUJyYW5kPigpOworICAgIGF1dG8gYmFzZVZhbHVlID0gR0VUX0MoYnl0ZWNvZGUubV9i
YXNlKS5qc1ZhbHVlKCk7CisgICAgaWYgKCFiYXNlVmFsdWUuaXNPYmplY3QoKSkKKyAgICAgICAg
VEhST1coY3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlVmFs
dWUpKTsKKworICAgIFJFVFVSTihqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZVZhbHVlKS0+aGFzUHJp
dmF0ZUJyYW5kKGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0ZWNvZGUubV9icmFuZCkuanNWYWx1ZSgp
KSkpOworfQorCiB0ZW1wbGF0ZTxPcGNvZGVTaXplIHdpZHRoPgogQUxXQVlTX0lOTElORSBTbG93
UGF0aFJldHVyblR5cGUgaXRlcmF0b3JPcGVuVHJ5RmFzdEltcGwoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIGNvbnN0IEluc3RydWN0aW9uKiBwYykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXggN2I4NTdhYWRkZjMxMzkzODA4YTA5
M2IwYWMzMjllMWJmMWMyYjMxYy4uM2RiODEzYzQxNWQxNjFhZjI0MDU3NjkyNWJjYmM2YWVmZjc0
ZTUwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xv
d1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1Bh
dGhzLmgKQEAgLTI1Miw2ICsyNTIsOCBAQCBKU0NfREVDTEFSRV9DT01NT05fU0xPV19QQVRIKHNs
b3dfcGF0aF90eXBlb2ZfaXNfZnVuY3Rpb24pOwogSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFU
SChzbG93X3BhdGhfaXNfY2FsbGFibGUpOwogSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFUSChz
bG93X3BhdGhfaXNfY29uc3RydWN0b3IpOwogSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFUSChz
bG93X3BhdGhfaW5fYnlfdmFsKTsKK0pTQ19ERUNMQVJFX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19w
YXRoX2hhc19wcml2YXRlX25hbWUpOworSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFUSChzbG93
X3BhdGhfaGFzX3ByaXZhdGVfYnJhbmQpOwogSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFUSChz
bG93X3BhdGhfc3RyY2F0KTsKIEpTQ19ERUNMQVJFX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRo
X3RvX3ByaW1pdGl2ZSk7CiBKU0NfREVDTEFSRV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF90
b19wcm9wZXJ0eV9rZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgK
aW5kZXggNzYzOWJmNTZjZjMzNWRhNzIwZjNkODMzZjVlMGQxOWI3YmYzZmRhNy4uNGIwZDljMDE1
OGI4NTdjMGVkYzk0MjJlZmUzMTE2M2RiODI5MjljMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCkBAIC0xNzksMTAgKzE3OSwxMiBAQCBwdWJsaWM6CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmpl
Y3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogCiAgICAgc3RhdGljIGJv
b2wgZ2V0UHJpdmF0ZUZpZWxkU2xvdChKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBpbmxpbmUgYm9vbCBoYXNQcml2YXRlRmllbGQo
SlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUpOwogICAgIGlubGluZSBib29sIGdldFByaXZh
dGVGaWVsZChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgaW5saW5lIHZvaWQgc2V0UHJpdmF0ZUZpZWxkKEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlO
YW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBpbmxpbmUgdm9pZCBkZWZpbmVQ
cml2YXRlRmllbGQoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYpOwotICAgIGlubGluZSBib29sIGNoZWNrUHJpdmF0ZUJyYW5kKEpTR2xvYmFs
T2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CisgICAgaW5saW5lIGJvb2wgaGFzUHJpdmF0ZUJyYW5k
KEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CisgICAgaW5saW5lIHZvaWQgY2hlY2tQ
cml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGJyYW5kKTsKICAgICBpbmxpbmUg
dm9pZCBzZXRQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGJyYW5kKTsKIAog
ICAgIHVuc2lnbmVkIGdldEFycmF5TGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXggYzA5YWE1MTlhMjk0Y2YxMmFi
OGEyMjQ4MjZlMWE1YTlmZjMzYzZhNS4uZTZhZWQ3NjQwODA3YzVmZTUxN2RjOWNiYmFiYmVjODVl
OGQxZjU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJ
bmxpbmVzLmgKQEAgLTYxNSw2ICs2MTUsMTQgQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0
OjpnZXRQcml2YXRlRmllbGRTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWMKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAoraW5saW5lIGJvb2wgSlNPYmplY3Q6Omhhc1ByaXZhdGVGaWVs
ZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQoreworICAgIEFTU0VSVChwcm9wZXJ0eU5hbWUuaXNQcml2YXRlTmFtZSgpKTsKKyAgICBWTSYg
dm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOworICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXM7CisgICAg
cmV0dXJuIHN0cnVjdHVyZSh2bSktPmdldCh2bSwgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSAh
PSBpbnZhbGlkT2Zmc2V0OworfQorCiBpbmxpbmUgYm9vbCBKU09iamVjdDo6Z2V0UHJpdmF0ZUZp
ZWxkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmpl
Y3QpOwpAQCAtNjc2LDI1ICs2ODQsMjggQEAgQUxXQVlTX0lOTElORSB2b2lkIEpTT2JqZWN0Ojpn
ZXROb25SZWlmaWVkU3RhdGljUHJvcGVydHlOYW1lcyhWTSYgdm0sIFByb3BlcnR5TmEKICAgICB9
CiB9CiAKLWlubGluZSBib29sIEpTT2JqZWN0OjpjaGVja1ByaXZhdGVCcmFuZChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJyYW5kKQoraW5saW5lIGJvb2wgSlNPYmplY3Q6
Omhhc1ByaXZhdGVCcmFuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJy
YW5kKQoreworICAgIEFTU0VSVChicmFuZC5pc1N5bWJvbCgpICYmIGFzU3ltYm9sKGJyYW5kKS0+
dWlkKCkuaXNQcml2YXRlKCkpOworICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7Cisg
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB0aGlzLT5zdHJ1Y3R1cmUodm0pOworICAgIHJldHVy
biBzdHJ1Y3R1cmUtPmlzQnJhbmRlZFN0cnVjdHVyZSgpICYmIGpzQ2FzdDxCcmFuZGVkU3RydWN0
dXJlKj4oc3RydWN0dXJlKS0+Y2hlY2tCcmFuZChhc1N5bWJvbChicmFuZCkpOworfQorCitpbmxp
bmUgdm9pZCBKU09iamVjdDo6Y2hlY2tQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNWYWx1ZSBicmFuZCkKIHsKLSAgICBBU1NFUlQoYnJhbmQuaXNTeW1ib2woKSk7
CisgICAgQVNTRVJUKGJyYW5kLmlzU3ltYm9sKCkgJiYgYXNTeW1ib2woYnJhbmQpLT51aWQoKS5p
c1ByaXZhdGUoKSk7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSA9IHRoaXMtPnN0cnVjdHVyZSh2bSk7Ci0gICAgaWYgKCFzdHJ1Y3R1cmUtPmlzQnJhbmRl
ZFN0cnVjdHVyZSgpIHx8ICFqc0Nhc3Q8QnJhbmRlZFN0cnVjdHVyZSo+KHN0cnVjdHVyZSktPmNo
ZWNrQnJhbmQoYXNTeW1ib2woYnJhbmQpKSkgeworICAgIGlmICghc3RydWN0dXJlLT5pc0JyYW5k
ZWRTdHJ1Y3R1cmUoKSB8fCAhanNDYXN0PEJyYW5kZWRTdHJ1Y3R1cmUqPihzdHJ1Y3R1cmUpLT5j
aGVja0JyYW5kKGFzU3ltYm9sKGJyYW5kKSkpCiAgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2Jh
bE9iamVjdCwgc2NvcGUsIGNyZWF0ZVByaXZhdGVNZXRob2RBY2Nlc3NFcnJvcihnbG9iYWxPYmpl
Y3QpKTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBmYWxzZSk7Ci0gICAgfQot
ICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpKTsKLQotICAgIHJldHVybiB0
cnVlOwogfQogCiBpbmxpbmUgdm9pZCBKU09iamVjdDo6c2V0UHJpdmF0ZUJyYW5kKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYnJhbmQpCiB7Ci0gICAgQVNTRVJUKGJyYW5k
LmlzU3ltYm9sKCkpOworICAgIEFTU0VSVChicmFuZC5pc1N5bWJvbCgpICYmIGFzU3ltYm9sKGJy
YW5kKS0+dWlkKCkuaXNQcml2YXRlKCkpOwogICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCA3ZTc4YWJhNWVkNzFh
NGY1NjNmZjVhZmJmZGUzYWQ2NTUwZWFjMmIzLi43MDc3YWUyOGVlMzY2YjA4ODFjZDk5ZTM5NTdi
MzM3OTMxZWIyYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNM
aXN0LmgKQEAgLTUyMSw2ICs1MjEsNyBAQCBKU19FWFBPUlRfUFJJVkFURSBib29sIGNhblVzZUpJ
VENhZ2UoKTsKICAgICB2KEJvb2wsIHVzZVByaXZhdGVTdGF0aWNDbGFzc0ZpZWxkcywgdHJ1ZSwg
Tm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBhcnNlciB3aWxsIHVuZGVyc3RhbmQgcHJpdmF0ZSBzdGF0
aWMgZGF0YSBmaWVsZHMgaW5zaWRlIGNsYXNzZXMuIikgXAogICAgIHYoQm9vbCwgdXNlUHJpdmF0
ZUNsYXNzRmllbGRzLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB0aGUgcGFyc2VyIHdpbGwgdW5k
ZXJzdGFuZCBwcml2YXRlIGRhdGEgZmllbGRzIGluc2lkZSBjbGFzc2VzLiIpIFwKICAgICB2KEJv
b2wsIHVzZVByaXZhdGVNZXRob2RzLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB0aGUgcGFyc2Vy
IHdpbGwgdW5kZXJzdGFuZCBwcml2YXRlIG1ldGhvZHMgaW5zaWRlIGNsYXNzZXMuIikgXAorICAg
IHYoQm9vbCwgdXNlUHJpdmF0ZUluLCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBhcnNl
ciB3aWxsIHVuZGVyc3RhbmQgcHJpdmF0ZSBtZW1iZXIgZXhpc3RlbmNlIGNoZWNrcyB3aXRoIHRo
ZSBgaW5gIG9wZXJhdG9yLiIpIFwKICAgICB2KEJvb2wsIHVzZVdlYkFzc2VtYmx5U3RyZWFtaW5n
LCB0cnVlLCBOb3JtYWwsICJBbGxvdyB0byBydW4gV2ViQXNzZW1ibHkncyBTdHJlYW1pbmcgQVBJ
IikgXAogICAgIHYoQm9vbCwgdXNlV2ViQXNzZW1ibHlSZWZlcmVuY2VzLCB0cnVlLCBOb3JtYWws
ICJBbGxvdyB0eXBlcyBmcm9tIHRoZSB3YXNtIHJlZmVyZW5jZXMgc3BlYy4iKSBcCiAgICAgdihC
b29sLCB1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZlcmVuY2VzLCBmYWxzZSwgTm9ybWFs
LCAiQWxsb3cgZnVuY3Rpb24gdHlwZXMgZnJvbSB0aGUgd2FzbSB0eXBlZCBmdW5jdGlvbiByZWZl
cmVuY2VzIHNwZWMuIikgXApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCAyOGE5OTNjMjQxYWZhNmU4ZmNjYTA1Nzg1OGVmN2JkY2UwYzMyYTM1
Li5lNTAxOGU1NzUwODY4NWUxMmIwYTg5ODg1MmRiZTkxMmFmZTllZjZiIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA1LTE3ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKwor
ICAgICAgICBTdXBwb3J0IEVyZ29ub21pYyBCcmFuZCBDaGVja3MgcHJvcG9zYWwgKGAjeCBpbiBv
YmpgKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIx
MDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FpbyBMaW1hLgorCisgICAgICAgICogc3RyZXNz
L3ByaXZhdGUtaW4uanM6IEFkZGVkLgorICAgICAgICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6IEFk
ZCBmZWF0dXJlIGZsYWcuCisKIDIwMjEtMDUtMjEgIEFuZ2Vsb3MgT2lrb25vbW9wb3Vsb3MgIDxh
bmdlbG9zQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5za2lwIHR5cGUtY2hlY2staG9pc3Rpbmct
cGhhc2UtaG9pc3QtY2hlY2stc3RydWN0dXJlLW9uLXRkei10aGlzLXZhbHVlIG9uIE1JUFMKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3ByaXZhdGUtaW4uanMgYi9KU1Rlc3RzL3N0cmVzcy9w
cml2YXRlLWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4YjJlNTdhYjlmNDkxYTQ0ZTk2ZmUzMjZkNDQ3OTZj
YzFmYzY1YzkKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9wcml2YXRlLWluLmpz
CkBAIC0wLDAgKzEsNjMgQEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VQcml2YXRlSW49MSIp
CisKK2Z1bmN0aW9uIGFzc2VydChiKSB7CisgIGlmICghYikgdGhyb3cgbmV3IEVycm9yOworfQor
CitmdW5jdGlvbiBzaG91bGRUaHJvd1R5cGVFcnJvcihmdW5jKSB7CisgICAgbGV0IGVycm9yOwor
ICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVy
cm9yID0gZTsKKyAgICB9CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgVHlwZUVycm9yIScpOworfQorCitj
bGFzcyBGIHsgI3g7IHN0YXRpYyBpc0Yob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorY2xh
c3MgU0YgeyBzdGF0aWMgI3g7IHN0YXRpYyBpc1NGKG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9
IH0KKworY2xhc3MgTSB7ICN4KCkge30gc3RhdGljIGlzTShvYmopIHsgcmV0dXJuICN4IGluIG9i
ajsgfSB9CitjbGFzcyBTTSB7IHN0YXRpYyAjeCgpIHt9IHN0YXRpYyBpc1NNKG9iaikgeyByZXR1
cm4gI3ggaW4gb2JqOyB9IH0KKworY2xhc3MgRyB7IGdldCAjeCgpIHt9IHN0YXRpYyBpc0cob2Jq
KSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorY2xhc3MgU0cgeyBzdGF0aWMgZ2V0ICN4KCkge30g
c3RhdGljIGlzU0cob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorCitjbGFzcyBTIHsgc2V0
ICN4KHYpIHt9IHN0YXRpYyBpc1Mob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorY2xhc3Mg
U1MgeyBzdGF0aWMgc2V0ICN4KHYpIHt9IHN0YXRpYyBpc1NTKG9iaikgeyByZXR1cm4gI3ggaW4g
b2JqOyB9IH0KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgYXNzZXJ0KEYuaXNGKG5ldyBGKSk7Cisg
IGFzc2VydCghRi5pc0YoRikgJiYgIUYuaXNGKG5ldyBNKSAmJiAhRi5pc0Yoe30pKTsKKyAgc2hv
dWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gRi5pc0YoMykpOworICBhc3NlcnQoU0YuaXNTRihTRikp
OworICBhc3NlcnQoIVNGLmlzU0YobmV3IFNGKSAmJiAhU0YuaXNTRihTTSkgJiYgIVNGLmlzU0Yo
e30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gU0YuaXNTRigzKSk7CisKKyAgYXNz
ZXJ0KE0uaXNNKG5ldyBNKSk7CisgIGFzc2VydCghTS5pc00oTSkgJiYgIU0uaXNNKG5ldyBGKSAm
JiAhTS5pc00oe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gTS5pc00oMykpOwor
ICBhc3NlcnQoU00uaXNTTShTTSkpOworICBhc3NlcnQoIVNNLmlzU00obmV3IFNNKSAmJiAhU00u
aXNTTShTRikgJiYgIVNNLmlzU00oe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4g
U00uaXNTTSgzKSk7CisKKyAgYXNzZXJ0KEcuaXNHKG5ldyBHKSk7CisgIGFzc2VydCghRy5pc0co
RykgJiYgIUcuaXNHKG5ldyBGKSAmJiAhRy5pc0coe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJy
b3IoKCkgPT4gRy5pc0coMykpOworICBhc3NlcnQoU0cuaXNTRyhTRykpOworICBhc3NlcnQoIVNH
LmlzU0cobmV3IFNHKSAmJiAhU0cuaXNTRyhTRikgJiYgIVNHLmlzU0coe30pKTsKKyAgc2hvdWxk
VGhyb3dUeXBlRXJyb3IoKCkgPT4gU0cuaXNTRygzKSk7CisKKyAgYXNzZXJ0KFMuaXNTKG5ldyBT
KSk7CisgIGFzc2VydCghUy5pc1MoUykgJiYgIVMuaXNTKG5ldyBGKSAmJiAhUy5pc1Moe30pKTsK
KyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gUy5pc1MoMykpOworICBhc3NlcnQoU1MuaXNT
UyhTUykpOworICBhc3NlcnQoIVNTLmlzU1MobmV3IFNTKSAmJiAhU1MuaXNTUyhTRikgJiYgIVNT
LmlzU1Moe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gU1MuaXNTUygzKSk7Cit9
Citub0lubGluZSh0ZXN0KTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQorICB0
ZXN0KCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9KU1Rlc3Rz
L3Rlc3QyNjIvY29uZmlnLnlhbWwKaW5kZXggYTZiYTJhYjM4YzE3MTIwMWJjYmE5NzVkMjcxODY3
NzYzNDZkNGY4MS4uNzc1NDJjZDM4NDBkNTUyYjI5OWQyOTkwZDM1YjljNDBiNGM2Mzk3OCAxMDA2
NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2
Mi9jb25maWcueWFtbApAQCAtNSw2ICs1LDcgQEAgZmxhZ3M6CiAgIEZpbmFsaXphdGlvblJlZ2lz
dHJ5OiB1c2VXZWFrUmVmcwogICBjbGFzcy1maWVsZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZUNsYXNz
RmllbGRzCiAgIGNsYXNzLW1ldGhvZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZU1ldGhvZHMKKyAgY2xh
c3MtZmllbGRzLXByaXZhdGUtaW46IHVzZVByaXZhdGVJbgogICBjbGFzcy1zdGF0aWMtZmllbGRz
LXB1YmxpYzogdXNlUHVibGljU3RhdGljQ2xhc3NGaWVsZHMKICAgY2xhc3Mtc3RhdGljLWZpZWxk
cy1wcml2YXRlOiB1c2VQcml2YXRlU3RhdGljQ2xhc3NGaWVsZHMKICAgY2xhc3Mtc3RhdGljLW1l
dGhvZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZU1ldGhvZHMKQEAgLTIzLDggKzI0LDYgQEAgc2tpcDoK
ICAgICAtIHJlZ2V4cC1sb29rYmVoaW5kCiAgICAgLSBsZWdhY3ktcmVnZXhwCiAgICAgLSBjbGVh
bnVwU29tZQotICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTA5MwotICAgIC0gY2xhc3MtZmllbGRzLXByaXZhdGUtaW4KICAgcGF0aHM6CiAgIGZpbGVzOgog
ICAgICMgU2xpZ2h0bHkgZGlmZmVyZW50IGZvcm1hdHRpbmcuIFdlIHNob3VsZCB1cGRhdGUgdGVz
dDI2MiBzaWRlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429451</attachid>
            <date>2021-05-22 20:03:05 -0700</date>
            <delta_ts>2021-05-22 20:50:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-221093-20210522200304.patch</filename>
            <type>text/plain</type>
            <size>48674</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
ZjY3MTE3MDhhODUyMGY5MDcyMjIzNDExNThhODk2NDgzZjU5NmE2Li5iZTMyYThlNDAxY2NlYTk0
NTM5NDg4MjczZGYyM2MxOTlhYmVjYzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NiBAQAorMjAyMS0wNS0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBFcmdvbm9taWMgQnJhbmQgQ2hlY2tzIHByb3Bvc2Fs
IChgI3ggaW4gb2JqYCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTA5MworCisgICAgICAgIFJldmlld2VkIGJ5IENhaW8gQXJhdWpvIE5lcG9ub2Nl
bm8gZGUgTGltYS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZvbGxvd2lu
ZyBTdGFnZSAzIHByb3Bvc2FsIChiZWhpbmQgYSBydW50aW1lIG9wdGlvbik6CisgICAgICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLXByaXZhdGUtZmllbGRzLWluLWluCisKKyAg
ICAgICAgU3BlY2lmaWNhbGx5LCBpdCBleHRlbmRzIHRoZSBgaW5gIGtleXdvcmQgdG8gYWxsb3cg
dGhlIExIUyB0byBiZSBhIHByaXZhdGUgbmFtZSwKKyAgICAgICAgdGhlcmVieSBhbGxvd2luZyB1
c2VycyB0byBpbXBsZW1lbnQgQXJyYXkuaXNBcnJheS1lc3F1ZSBicmFuZCBjaGVja3MgZm9yIHRo
ZWlyIG93biBjbGFzc2VzCisgICAgICAgICp3aXRob3V0KiBoYXZpbmcgdG8gd3JhcCBhIHByaXZh
dGUgbWVtYmVyIGdldCBpbiBhIHRyeS1jYXRjaC4KKworICAgICAgICBGb3IgZXhhbXBsZToKKyAg
ICAgICAgYGBgCisgICAgICAgIGNsYXNzIEMgeworICAgICAgICAgICAgI3g7CisgICAgICAgICAg
ICBzdGF0aWMgaXNDKG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9CisgICAgICAgIH0KKyAgICAg
ICAgYGBgCisKKyAgICAgICAgVGhpcyBpcyBkb25lIGJ5IGFkZGluZyB0d28gbmV3IGJ5dGVjb2Rl
IG9wcywgSGFzUHJpdmF0ZU5hbWUgYW5kIEhhc1ByaXZhdGVCcmFuZC4gRm9yIHRoZSBtb21lbnQs
CisgICAgICAgIHRoZXNlIGFyZSBpbXBsZW1lbnRlZCB3aXRob3V0IGZhc3QgcGF0aHMsIGFzIHdl
IHNob3VsZCBkbyBzbyBmb3IgSW5CeVZhbCBmaXJzdCBhbmQgdGhlbiBoYXZlIHRoZXNlIGZvbGxv
dyBzdWl0LgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAgICAgICAq
IGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0ZVVzZXNG
b3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9yQnl0ZWNv
ZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5j
cHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SGFzUHJpdmF0ZU5hbWUp
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEhhc1ByaXZhdGVCcmFuZCk6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2hlY2tQcml2YXRlQnJhbmQp
OgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpJbk5vZGU6OmVt
aXRCeXRlY29kZSk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAg
ICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjYXBh
YmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChK
U0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBk
ZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAgICAgIChK
U0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc1ByaXZh
dGVOYW1lKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUhhc1By
aXZhdGVCcmFuZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAg
ICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNv
bXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVIYXNQcml2YXRlTmFtZSk6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVIYXNQcml2YXRlQnJhbmQpOgorICAg
ICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFp
blBhc3MpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5o
OgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHBh
cnNlci9BU1RCdWlsZGVyLmg6CisgICAgICAgIChKU0M6OkFTVEJ1aWxkZXI6OmNyZWF0ZVByaXZh
dGVJZGVudGlmaWVyTm9kZSk6CisgICAgICAgICogcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaDoK
KyAgICAgICAgKEpTQzo6UHJpdmF0ZUlkZW50aWZpZXJOb2RlOjpQcml2YXRlSWRlbnRpZmllck5v
ZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAgICAgICAoSlNDOjpFeHByZXNzaW9u
Tm9kZTo6aXNQcml2YXRlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGFyc2VyL1BhcnNl
ci5jcHA6CisgICAgICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUJpbmFyeUV4cHJl
c3Npb24pOgorICAgICAgICAqIHBhcnNlci9TeW50YXhDaGVja2VyLmg6CisgICAgICAgIChKU0M6
OlN5bnRheENoZWNrZXI6OmNyZWF0ZVByaXZhdGVJZGVudGlmaWVyTm9kZSk6CisgICAgICAgICog
cGFyc2VyL1ZhcmlhYmxlRW52aXJvbm1lbnQuaDoKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSCk6
CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAg
ICAgKEpTQzo6SlNPYmplY3Q6Omhhc1ByaXZhdGVGaWVsZCk6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpoYXNQcml2YXRlQnJhbmQpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Y2hlY2tQcml2
YXRlQnJhbmQpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9uc0xpc3QuaDoKKwogMjAyMS0wNS0y
MiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlcGxhY2UgTG9j
a0hvbGRlciB3aXRoIExvY2tlciBpbiBsb2NhbCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCmluZGV4IDE2NDEwMWZlY2UwNDI2YTAw
MmZmNWE0N2ExYzAyNGI4OTQ2NjQ0M2MuLjE4MjVlYzJhZDVhMDMzOWQ0ZjNlZjE5NWRkNmY5ZmNm
MjJkMDY0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5yYgpAQCAtNDU0LDYgKzQ1NCwyMCBAQCBvcCA6aW5fYnlfaWQsCiAgICAgICAgIHByb3Bl
cnR5OiB1bnNpZ25lZCwKICAgICB9CiAKK29wIDpoYXNfcHJpdmF0ZV9uYW1lLAorICAgIGFyZ3M6
IHsKKyAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgICAgIGJhc2U6IFZpcnR1YWxS
ZWdpc3RlciwKKyAgICAgICAgcHJvcGVydHk6IFZpcnR1YWxSZWdpc3RlciwKKyAgICB9CisKK29w
IDpoYXNfcHJpdmF0ZV9icmFuZCwKKyAgICBhcmdzOiB7CisgICAgICAgIGRzdDogVmlydHVhbFJl
Z2lzdGVyLAorICAgICAgICBiYXNlOiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgICAgIGJyYW5kOiBW
aXJ0dWFsUmVnaXN0ZXIsCisgICAgfQorCiBvcCA6Z2V0X2J5X2lkLAogICAgIGFyZ3M6IHsKICAg
ICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCkBAIC02MDgsNyArNjIyLDYgQEAgb3AgOmNoZWNr
X3ByaXZhdGVfYnJhbmQsCiAgICAgICAgIHN0cnVjdHVyZUlEOiBTdHJ1Y3R1cmVJRCwKICAgICAg
ICAgYnJhbmQ6IFdyaXRlQmFycmllcltKU0NlbGxdLAogICAgIH0KLSAgICAKIAogb3AgOnB1dF9i
eV92YWwsCiAgICAgYXJnczogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZVVzZURlZi5jcHAKaW5kZXggMDE2YTAyN2ZhMzNhYjc5NDk0MzEyYTRhNDc3ZGZj
NWIyZTdhMDBkNy4uMDc1NjE4OTlhNjIwOWUzNmNiZmE3MmEwNTRmMTUxMmQ2NzM4YzBjYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3Bw
CkBAIC0yMzIsNiArMjMyLDggQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBs
KFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVyLCBjb25zdCBJbnN0cnUKICAgICBVU0VTKE9w
U2V0UHJpdmF0ZUJyYW5kLCBiYXNlLCBicmFuZCkKICAgICBVU0VTKE9wQ2hlY2tQcml2YXRlQnJh
bmQsIGJhc2UsIGJyYW5kKQogICAgIFVTRVMoT3BJbkJ5VmFsLCBiYXNlLCBwcm9wZXJ0eSkKKyAg
ICBVU0VTKE9wSGFzUHJpdmF0ZU5hbWUsIGJhc2UsIHByb3BlcnR5KQorICAgIFVTRVMoT3BIYXNQ
cml2YXRlQnJhbmQsIGJhc2UsIGJyYW5kKQogICAgIFVTRVMoT3BPdmVycmlkZXNIYXNJbnN0YW5j
ZSwgY29uc3RydWN0b3IsIGhhc0luc3RhbmNlVmFsdWUpCiAgICAgVVNFUyhPcEluc3RhbmNlb2Ys
IHZhbHVlLCBwcm90b3R5cGUpCiAgICAgVVNFUyhPcEFkZCwgbGhzLCByaHMpCkBAIC01MDksNiAr
NTExLDggQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKHVuc2lnbmVkIG51
bVZhcnMsIGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnUKICAgICBERUZTKE9wSXNDb25zdHJ1Y3Rv
ciwgZHN0KQogICAgIERFRlMoT3BJbkJ5SWQsIGRzdCkKICAgICBERUZTKE9wSW5CeVZhbCwgZHN0
KQorICAgIERFRlMoT3BIYXNQcml2YXRlTmFtZSwgZHN0KQorICAgIERFRlMoT3BIYXNQcml2YXRl
QnJhbmQsIGRzdCkKICAgICBERUZTKE9wVG9OdW1iZXIsIGRzdCkKICAgICBERUZTKE9wVG9OdW1l
cmljLCBkc3QpCiAgICAgREVGUyhPcFRvU3RyaW5nLCBkc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4
IDU4ZTUwZGEwOTIxYjIwOWY5ZWJlZmYyYWJkZjNiMzNlZmQ1NWJkOGIuLmJkYmFhMjE0OTVlMDEz
ZTk3Y2Y1OWRkNTRlNzUzZWM4YjA5MjMwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0yNzI0LDYg
KzI3MjQsMTIgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRHZXRQcml2YXRl
TmFtZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGIKICAgICByZXR1cm4gZHN0OwogfQog
CitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEhhc1ByaXZhdGVOYW1lKFJlZ2lz
dGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHkpCit7Cisg
ICAgT3BIYXNQcml2YXRlTmFtZTo6ZW1pdCh0aGlzLCBkc3QsIGJhc2UsIHByb3BlcnR5KTsKKyAg
ICByZXR1cm4gZHN0OworfQorCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERp
cmVjdFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdp
c3RlcklEKiB2YWx1ZSkKIHsKICAgICBPcFB1dEJ5VmFsRGlyZWN0OjplbWl0KHRoaXMsIGJhc2Us
IHByb3BlcnR5LCB2YWx1ZSwgZWNtYU1vZGUoKSk7CkBAIC0yNzk2LDEyICsyODAyLDI1IEBAIFJl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0UHJpdmF0ZUZpZWxkUHV0KFJlZ2lzdGVy
SUQqIGJhc2UsIFJlZ2lzdGVySUQqCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCitSZWdpc3RlcklE
KiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEhhc1ByaXZhdGVCcmFuZChSZWdpc3RlcklEKiBkc3Qs
IFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIGJyYW5kLCBib29sIGlzU3RhdGljKQorewor
ICAgIGlmIChpc1N0YXRpYykgeworICAgICAgICBSZWY8TGFiZWw+IGlzT2JqZWN0TGFiZWwgPSBu
ZXdMYWJlbCgpOworICAgICAgICBlbWl0SnVtcElmVHJ1ZShlbWl0SXNPYmplY3QobmV3VGVtcG9y
YXJ5KCksIGJhc2UpLCBpc09iamVjdExhYmVsLmdldCgpKTsKKyAgICAgICAgZW1pdFRocm93VHlw
ZUVycm9yKCJDYW5ub3QgYWNjZXNzIHN0YXRpYyBwcml2YXRlIG1ldGhvZCBvciBhY2Nlc3NvciBv
ZiBhIG5vbi1PYmplY3QiKTsKKyAgICAgICAgZW1pdExhYmVsKGlzT2JqZWN0TGFiZWwuZ2V0KCkp
OworICAgICAgICBlbWl0RXF1YWxpdHlPcDxPcFN0cmljdGVxPihkc3QsIGJhc2UsIGJyYW5kKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgT3BIYXNQcml2YXRlQnJhbmQ6OmVtaXQodGhpcywgZHN0LCBi
YXNlLCBicmFuZCk7CisgICAgcmV0dXJuIGRzdDsKK30KKwogdm9pZCBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdENoZWNrUHJpdmF0ZUJyYW5kKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIGJy
YW5kLCBib29sIGlzU3RhdGljKQogewogICAgIGlmIChpc1N0YXRpYykgewogICAgICAgICBSZWY8
TGFiZWw+IGJyYW5kQ2hlY2tPa0xhYmVsID0gbmV3TGFiZWwoKTsKICAgICAgICAgZW1pdEp1bXBJ
ZlRydWUoZW1pdEVxdWFsaXR5T3A8T3BTdHJpY3RlcT4obmV3VGVtcG9yYXJ5KCksIGJhc2UsIGJy
YW5kKSwgYnJhbmRDaGVja09rTGFiZWwuZ2V0KCkpOwotICAgICAgICBlbWl0VGhyb3dUeXBlRXJy
b3IoIkNhbm5vdCBhY2Nlc3Mgc3RhdGljIHByaXZhdGUgbWV0aG9kIG9yIGFjZXNzb3IiKTsKKyAg
ICAgICAgZW1pdFRocm93VHlwZUVycm9yKCJDYW5ub3QgYWNjZXNzIHN0YXRpYyBwcml2YXRlIG1l
dGhvZCBvciBhY2Nlc3NvciIpOwogICAgICAgICBlbWl0TGFiZWwoYnJhbmRDaGVja09rTGFiZWwu
Z2V0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXggZTUxMWRjMjc1
NTVkZTViODg0NDdlMzMzZjllMTY2MjVhODU2MjYxYy4uY2FmYTU3OWUzN2NmMDdlMmFhZTg4MjBh
NDczNDdkNzY4NzAzZTY5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtODQwLDEyICs4NDAsMTQgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXREZWZpbmVQcml2YXRlRmllbGQo
UmVnaXN0ZXJJRCogYmFzZSwgUmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIHZhbHVl
KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFByaXZhdGVGaWVsZFB1dChSZWdpc3RlcklEKiBi
YXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0R2V0UHJpdmF0ZU5hbWUoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRI
YXNQcml2YXRlTmFtZShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVy
SUQqIHByb3BlcnR5KTsKIAogICAgICAgICB2b2lkIGVtaXRDcmVhdGVQcml2YXRlQnJhbmQoUmVn
aXN0ZXJJRCogZHN0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogICAg
ICAgICB2b2lkIGVtaXRJbnN0YWxsUHJpdmF0ZUJyYW5kKFJlZ2lzdGVySUQqIHRhcmdldCk7CiAg
ICAgICAgIHZvaWQgZW1pdEluc3RhbGxQcml2YXRlQ2xhc3NCcmFuZChSZWdpc3RlcklEKiB0YXJn
ZXQpOwogCiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRQcml2YXRlQnJhbmQoUmVnaXN0ZXJJ
RCogZHN0LCBSZWdpc3RlcklEKiBzY29wZSwgYm9vbCBpc1N0YXRpYyk7CisgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRIYXNQcml2YXRlQnJhbmQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBi
YXNlLCBSZWdpc3RlcklEKiBicmFuZCwgYm9vbCBpc1N0YXRpYyk7CiAgICAgICAgIHZvaWQgZW1p
dENoZWNrUHJpdmF0ZUJyYW5kKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIGJyYW5kLCBi
b29sIGlzU3RhdGljKTsKIAogICAgICAgICB2b2lkIGVtaXRTdXBlclNhbXBsZXJCZWdpbigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwCmluZGV4IDNjYmQxMjA5OWU4NWIwYjQyNjIwODBhNDNhMzVkZTgxZjJiZDU3YjkuLjZiZDMw
MWYwODgwNGY2Nzc5YThkYWEwMGZhY2M4MTIyY2I3MGIwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTMyMDYsNiAr
MzIwNiwyNCBAQCBSZWdpc3RlcklEKiBJbnN0YW5jZU9mTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySQogCiBSZWdpc3RlcklEKiBJbk5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCiB7CisgICAgaWYgKG1fZXhwcjEtPmlzUHJpdmF0ZUlkZW50aWZpZXIoKSkgeworICAgICAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIyKTsK
KworICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSBzdGF0aWNfY2FzdDxQcml2YXRlSWRlbnRpZmll
ck5vZGUqPihtX2V4cHIxKS0+dmFsdWUoKTsKKyAgICAgICAgYXV0byBwcml2YXRlVHJhaXRzID0g
Z2VuZXJhdG9yLmdldFByaXZhdGVUcmFpdHMoaWRlbnRpZmllcik7CisgICAgICAgIFZhcmlhYmxl
IHZhciA9IGdlbmVyYXRvci52YXJpYWJsZShpZGVudGlmaWVyKTsKKyAgICAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHNjb3BlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlU2NvcGUobnVsbHB0ciwgdmFy
KTsKKworICAgICAgICBpZiAocHJpdmF0ZVRyYWl0cy5pc0ZpZWxkKCkpIHsKKyAgICAgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiBwcml2YXRlTmFtZSA9IGdlbmVyYXRvci5lbWl0R2V0RnJvbVNj
b3BlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgc2NvcGUuZ2V0KCksIHZhciwgRG9Ob3RUaHJv
d0lmTm90Rm91bmQpOworICAgICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0SGFzUHJpdmF0
ZU5hbWUoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0LCBiYXNlLmdldCgpKSwgYmFzZS5n
ZXQoKSwgcHJpdmF0ZU5hbWUuZ2V0KCkpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUKHBy
aXZhdGVUcmFpdHMuaXNQcml2YXRlTWV0aG9kT3JBY2Nlc3NvcigpKTsKKyAgICAgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IHByaXZhdGVCcmFuZCA9IGdlbmVyYXRvci5lbWl0R2V0UHJpdmF0ZUJyYW5k
KGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgc2NvcGUuZ2V0KCksIHByaXZhdGVUcmFpdHMuaXNT
dGF0aWMoKSk7CisgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdEhhc1ByaXZhdGVCcmFuZChn
ZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QsIGJhc2UuZ2V0KCkpLCBiYXNlLmdldCgpLCBw
cml2YXRlQnJhbmQuZ2V0KCksIHByaXZhdGVUcmFpdHMuaXNTdGF0aWMoKSk7CisgICAgfQorCiAg
ICAgaWYgKGlzTm9uSW5kZXhTdHJpbmdFbGVtZW50KCptX2V4cHIxKSkgewogICAgICAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIyKTsKICAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRp
dm90RW5kKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IDg3ZjQ2NjZmZDJhMzI5ZTA0NTMzOWM3
MmRhMGIyYTIzOTcxMjUwY2IuLjQ5M2YzNjhlNWVlZTBkY2RhMzZlZWJjNjcxMzE5NmZiMWIwZjRl
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTQyMTIsNiArNDIxMiwxNSBAQCBib29sIEFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25l
ZCBjbG9iYmVyTGltaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIEhhc1ByaXZh
dGVOYW1lOgorICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOiB7CisgICAgICAgIGNsb2JiZXJXb3Js
ZCgpOworICAgICAgICBmaWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNPYmplY3QpOworICAgICAg
ICBmaWx0ZXIobm9kZS0+Y2hpbGQyKCksIFNwZWNTeW1ib2wpOworICAgICAgICBzZXROb25DZWxs
VHlwZUZvck5vZGUobm9kZSwgU3BlY0Jvb2xlYW4pOworICAgICAgICBicmVhazsKKyAgICB9CisK
ICAgICBjYXNlIEhhc093blByb3BlcnR5OiB7CiAgICAgICAgIGNsb2JiZXJXb3JsZCgpOwogICAg
ICAgICBzZXROb25DZWxsVHlwZUZvck5vZGUobm9kZSwgU3BlY0Jvb2xlYW4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2NGU2MWUy
Yjk4MmNiY2JjMTQ4OTBiMjYwYmVjZGZkODVlMTQzZGY0Li44MmIxNDZkZmIwMmY2MzQ1Y2ZmYjU2
Y2Y2YTAyYzcxYWUyMGQ4NDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtODI1Nyw2ICs4MjU3LDIyIEBAIHZvaWQgQnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBzZXQoYnl0ZWNv
ZGUubV9kc3QsIGFkZFRvR3JhcGgoSW5CeUlkLCBPcEluZm8oQ2FjaGVhYmxlSWRlbnRpZmllcjo6
Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKG1faW5saW5lU3RhY2tUb3AtPm1f
cHJvZmlsZWRCbG9jaywgdWlkKSksIGJhc2UpKTsKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9w
X2luX2J5X2lkKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgY2FzZSBvcF9oYXNfcHJp
dmF0ZV9uYW1lOiB7CisgICAgICAgICAgICAvLyBGSVhNRTogSW1wcm92ZSB0aGlzIG9uY2UgSW5C
eVZhbCBoYXMgYmVlbiBvcHRpbWl6ZWQuCisgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MTQ2CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2Rl
ID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEhhc1ByaXZhdGVOYW1lPigpOworICAgICAgICAg
ICAgc2V0KGJ5dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKEhhc1ByaXZhdGVOYW1lLCBnZXQoYnl0
ZWNvZGUubV9iYXNlKSwgZ2V0KGJ5dGVjb2RlLm1fcHJvcGVydHkpKSk7CisgICAgICAgICAgICBO
RVhUX09QQ09ERShvcF9oYXNfcHJpdmF0ZV9uYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIGNh
c2Ugb3BfaGFzX3ByaXZhdGVfYnJhbmQ6IHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJbXByb3Zl
IHRoaXMgb25jZSBJbkJ5VmFsIGhhcyBiZWVuIG9wdGltaXplZC4KKyAgICAgICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYxNDYKKyAgICAgICAgICAg
IGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wSGFzUHJpdmF0ZUJyYW5k
PigpOworICAgICAgICAgICAgc2V0KGJ5dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKEhhc1ByaXZh
dGVCcmFuZCwgZ2V0KGJ5dGVjb2RlLm1fYmFzZSksIGdldChieXRlY29kZS5tX2JyYW5kKSkpOwor
ICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaGFzX3ByaXZhdGVfYnJhbmQpOworICAgICAgICB9
CiAKICAgICAgICAgY2FzZSBvcF9nZXRfZW51bWVyYWJsZV9sZW5ndGg6IHsKICAgICAgICAgICAg
IGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0RW51bWVyYWJsZUxl
bmd0aD4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJp
bGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNw
cAppbmRleCBiNDgxOWZkNzY5YjU4Y2Q1MmFkZDFhNTQ2ZDcwYTNhNWQ1OTQxMzk3Li5jNzE2NGIz
MGY0NjRlYjBkNDM4MmUyY2NhNDJkNTY5OTY0ZDFiZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0yNTAsNiArMjUwLDggQEAgQ2FwYWJp
bGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIGNvbnN0IEkKICAgICBjYXNlIG9wX3N3aXRjaF9jaGFyOgogICAgIGNhc2Ugb3Bf
aW5fYnlfdmFsOgogICAgIGNhc2Ugb3BfaW5fYnlfaWQ6CisgICAgY2FzZSBvcF9oYXNfcHJpdmF0
ZV9uYW1lOgorICAgIGNhc2Ugb3BfaGFzX3ByaXZhdGVfYnJhbmQ6CiAgICAgY2FzZSBvcF9nZXRf
c2NvcGU6CiAgICAgY2FzZSBvcF9nZXRfZnJvbV9zY29wZToKICAgICBjYXNlIG9wX2dldF9lbnVt
ZXJhYmxlX2xlbmd0aDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgK
aW5kZXggY2YwMWJjZTA1M2EzZTU3N2RlOTk3YjAzMzM5YjdiMTRjNjY4ODkyMS4uZGNhNmM0YWYy
OWE5MzUxZTA1ZmZjMmZmMjExYTU1YTZlZjk1ZTIwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTcwNiw2ICs3MDYsOCBAQCB2b2lkIGNsb2JiZXJpemUo
R3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3Qg
V3JpdGVGdQogICAgIGNhc2UgVG9Qcm9wZXJ0eUtleToKICAgICBjYXNlIEluQnlWYWw6CiAgICAg
Y2FzZSBJbkJ5SWQ6CisgICAgY2FzZSBIYXNQcml2YXRlTmFtZToKKyAgICBjYXNlIEhhc1ByaXZh
dGVCcmFuZDoKICAgICBjYXNlIEhhc093blByb3BlcnR5OgogICAgIGNhc2UgVmFsdWVOZWdhdGU6
CiAgICAgY2FzZSBTZXRGdW5jdGlvbk5hbWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKaW5kZXggY2ZjMjIzMDAwYTUzMmIxYzNiMzk4MGU1NGE1MDFhM2QzZGZhYWIwOS4u
MDI4NGE3ZTMwNGEwMDZlMTBlMWEzMzY2MDFlYmE3YmJhZjc5MzJiZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMzA3LDYgKzMwNyw4IEBAIGJvb2wgZG9lc0dD
KEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIEluU3RydWN0dXJlUHJvcGVydHk6
CiAgICAgY2FzZSBJbkJ5SWQ6CiAgICAgY2FzZSBJbkJ5VmFsOgorICAgIGNhc2UgSGFzUHJpdmF0
ZU5hbWU6CisgICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6CiAgICAgY2FzZSBJbnN0YW5jZU9mOgog
ICAgIGNhc2UgSW5zdGFuY2VPZkN1c3RvbToKICAgICBjYXNlIFZhcmFyZ3NMZW5ndGg6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAzNzRkNTUzMDVk
ZjhkODc1MDMyZTA0Nzc3YmMzMjIxOWE1NTE1ODBhLi5mNjVmOWI1NzkwZTY2ZTFkOTJlMjEyYzdh
MWU1NTRlODlkOGE4YmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQ
aGFzZS5jcHAKQEAgLTIxMDYsNiArMjEwNiwxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgICAgICBj
YXNlIEhhc1ByaXZhdGVCcmFuZDogeworICAgICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2Rl
LT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhFZGdlPFN5bWJvbFVzZT4obm9kZS0+Y2hpbGQy
KCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBjYXNlIEhhc093
blByb3BlcnR5OiB7CiAgICAgICAgICAgICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVTdHJp
bmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCBhZjI2ODI4
NmM4MTAwOWQxODI2Y2IxMGJjZjU3YjUxMTBhNGE3MzM5Li4yOWYzODhhZmNkMzg3NTM4YWY3ZTQ0
NDJhZDBlZmQ2ZmQzZDViODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCkBAIC00MzEsNiArNDMxLDggQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewog
ICAgIG1hY3JvKE1ha2VSb3BlLCBOb2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhJbkJ5VmFsLCBO
b2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhJbkJ5SWQs
IE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAorICAgIG1hY3JvKEhhc1By
aXZhdGVOYW1lLCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJhdGUpIFwKKyAgICBt
YWNybyhIYXNQcml2YXRlQnJhbmQsIE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKFByb2ZpbGVUeXBlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFj
cm8oUHJvZmlsZUNvbnRyb2xGbG93LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oU2V0
RnVuY3Rpb25OYW1lLCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmlu
ZGV4IGZlNzZkMmI2ZTBmOTZmM2UyOGZjM2Q5ODNmYjMzYWMyMzE2ODZiMzEuLjViNTgwYmI1NDNj
MTlkY2FiZjg3YTA0ZmM3ODMyNzU4MjQwODFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC0xMjA0LDE5ICsxMjA0LDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9u
KFNwZWNPYmplY3RPdGhlcik7CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBjYXNlIElu
QnlWYWw6Ci0gICAgICAgIGNhc2UgSW5CeUlkOgotICAgICAgICAgICAgc2V0UHJlZGljdGlvbihT
cGVjQm9vbGVhbik7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIEhhc093blBy
b3BlcnR5OgotICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjQm9vbGVhbik7Ci0gICAgICAg
ICAgICBicmVhazsKLQogICAgICAgICBjYXNlIEdldEVudW1lcmFibGVMZW5ndGg6IHsKICAgICAg
ICAgICAgIHNldFByZWRpY3Rpb24oU3BlY0ludDMyT25seSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQorICAgICAgICBjYXNlIEluQnlWYWw6CisgICAgICAgIGNhc2UgSW5CeUlkOgor
ICAgICAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgICAgICBjYXNlIEhhc1ByaXZhdGVCcmFu
ZDoKKyAgICAgICAgY2FzZSBIYXNPd25Qcm9wZXJ0eToKICAgICAgICAgY2FzZSBIYXNPd25TdHJ1
Y3R1cmVQcm9wZXJ0eToKICAgICAgICAgY2FzZSBJblN0cnVjdHVyZVByb3BlcnR5OgogICAgICAg
ICBjYXNlIEhhc0luZGV4ZWRQcm9wZXJ0eToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggMDdhODVkYjNkNjBjNjA4MGE4M2U2ZGE0MTg2OGJiZjRi
N2NlZjZjNy4uMjgxMzE3YTNjNTMwZTA5MGEwMzAyYmU5Yzg4Y2Q3Yjc1Y2IzNDlhYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTU5MSw2ICs1
OTEsOCBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGJvb2wgaWdubwogICAgIGNhc2UgTmV3U3RyaW5nT2JqZWN0
OgogICAgIGNhc2UgSW5CeVZhbDoKICAgICBjYXNlIEluQnlJZDoKKyAgICBjYXNlIEhhc1ByaXZh
dGVOYW1lOgorICAgIGNhc2UgSGFzUHJpdmF0ZUJyYW5kOgogICAgIGNhc2UgSGFzT3duUHJvcGVy
dHk6CiAgICAgY2FzZSBQdXNoV2l0aFNjb3BlOgogICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5k
ZXggODgxOWI0YzE1OTI0MjEwZWZlZDVkNWJhOWMyNTZjZWQxMmRhNGE4MS4uNzNmOTExNGVhZjg4
M2NlZWY5Y2EwM2I4NGYxNmVlNjQ0ZTZkMjhmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTEyODIsNiArMTI4Miw0OCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5CeVZhbChOb2RlKiBub2RlKQogICAgIGJsZXNzZWRC
b29sZWFuUmVzdWx0KHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlLCBVc2VDaGlsZHJlbkNh
bGxlZEV4cGxpY2l0bHkpOwogfQogCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzUHJp
dmF0ZU5hbWUoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBrZXkodGhpcywg
bm9kZS0+Y2hpbGQyKCkpOworCisgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAg
IEdQUlJlZyBrZXlHUFIgPSBrZXkuZ3ByKCk7CisKKyAgICBzcGVjdWxhdGVTeW1ib2wobm9kZS0+
Y2hpbGQyKCksIGtleUdQUik7CisKKyAgICBiYXNlLnVzZSgpOworICAgIGtleS51c2UoKTsKKwor
ICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCBy
ZXN1bHQodGhpcyk7CisgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25IYXNQcml2YXRlTmFtZSwgcmVzdWx0UmVncywg
VHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RG
b3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VHUFIsIENDYWxsSGVscGVyczo6Q2VsbFZh
bHVlKGtleUdQUikpOworICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgYmxlc3NlZEJv
b2xlYW5SZXN1bHQocmVzdWx0UmVncy5wYXlsb2FkR1BSKCksIG5vZGUsIFVzZUNoaWxkcmVuQ2Fs
bGVkRXhwbGljaXRseSk7Cit9CisKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNQcml2
YXRlQnJhbmQoTm9kZSogbm9kZSkKK3sKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRo
aXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBicmFuZCh0aGlz
LCBub2RlLT5jaGlsZDIoKSk7CisKKyAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7Cisg
ICAgR1BSUmVnIGJyYW5kR1BSID0gYnJhbmQuZ3ByKCk7CisKKyAgICBzcGVjdWxhdGVTeW1ib2wo
bm9kZS0+Y2hpbGQyKCksIGJyYW5kR1BSKTsKKworICAgIGJhc2UudXNlKCk7CisgICAgYnJhbmQu
dXNlKCk7CisKKyAgICBmbHVzaFJlZ2lzdGVycygpOworICAgIEpTVmFsdWVSZWdzRmx1c2hlZENh
bGxSZXN1bHQgcmVzdWx0KHRoaXMpOworICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1
bHQucmVncygpOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kLCBy
ZXN1bHRSZWdzLCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmds
b2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgQ0NhbGxIZWxw
ZXJzOjpDZWxsVmFsdWUoYnJhbmRHUFIpKTsKKyAgICBtX2ppdC5leGNlcHRpb25DaGVjaygpOwor
ICAgIGJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3VsdFJlZ3MucGF5bG9hZEdQUigpLCBub2RlLCBV
c2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOworfQorCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHVzaFdpdGhTY29wZShOb2RlKiBub2RlKQogewogICAgIFNwZWN1bGF0ZUNlbGxPcGVy
YW5kIGN1cnJlbnRTY29wZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggOTcxNzUyMjhmNjJkYTczNTAw
MjEwZWZkMmNlY2NhOTU4MmI2ODAyZC4uNDE1YzY5NzZlMTY4NmRiZDQ5YTY4OWNiMTcwYTIzNmI5
ZTY2ZmQzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaApAQCAtNzM4LDYgKzczOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVHZXRCeUlk
Rmx1c2goTm9kZSosIEFjY2Vzc1R5cGUpOwogICAgIHZvaWQgY29tcGlsZUluQnlJZChOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlSW5CeVZhbChOb2RlKik7CisgICAgdm9pZCBjb21waWxlSGFzUHJp
dmF0ZU5hbWUoTm9kZSopOworICAgIHZvaWQgY29tcGlsZUhhc1ByaXZhdGVCcmFuZChOb2RlKik7
CiAgICAgCiAgICAgdm9pZCBub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZU51bGxPclVu
ZGVmaW5lZChFZGdlIG9wZXJhbmQpOwogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJy
YW5jaE51bGxPclVuZGVmaW5lZChFZGdlIG9wZXJhbmQsIE5vZGUqIGJyYW5jaE5vZGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKaW5kZXggMjUyOWRmZmYxMTg3NzNlMjAxY2Q4YTM5ZjdmNzM1MGQ4MzdjYjBkOC4uYjU3YzM3
YWEwNWRkNDkwOTFjN2ZhMzY1MGY4YmJmZjc1MjM3ZjYzOSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zOTg1LDYg
KzM5ODUsMTQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICBjb21waWxlSW5CeVZhbChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIEhh
c1ByaXZhdGVOYW1lOgorICAgICAgICBjb21waWxlSGFzUHJpdmF0ZU5hbWUobm9kZSk7CisgICAg
ICAgIGJyZWFrOworCisgICAgY2FzZSBIYXNQcml2YXRlQnJhbmQ6CisgICAgICAgIGNvbXBpbGVI
YXNQcml2YXRlQnJhbmQobm9kZSk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBIYXNPd25Q
cm9wZXJ0eTogewogICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvYmplY3QodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3JhcnkgdW5pcXVlZFN0cmluZ0ltcGwodGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAppbmRleCBlMTY1YTQ4ODI5YWUwYzAyNGFiYjgyMzZiMDFkN2MxZTAzNTI0ZjI2Li5iOTEx
OGI2MmU4N2Q5NzBhYzU0NjFmNjNiZDNjMzgwZmI4YjAxMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQ5NTIsNiArNDk1
MiwxNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IGNvbXBpbGVJbkJ5VmFsKG5vZGUpOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgSGFzUHJp
dmF0ZU5hbWU6CisgICAgICAgIGNvbXBpbGVIYXNQcml2YXRlTmFtZShub2RlKTsKKyAgICAgICAg
YnJlYWs7CisKKyAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKKyAgICAgICAgY29tcGlsZUhhc1By
aXZhdGVCcmFuZChub2RlKTsKKyAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIEhhc093blByb3Bl
cnR5OiB7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIG9iamVjdCh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSB1bmlxdWVkU3RyaW5nSW1wbCh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCAz
ZGYwNDRhOGZmMWI1ODUyYjVlYWYzYzA0ZmE5NjA4ZGNmZTA5ODJmLi40ZjZlMDM3Y2IxMWM1MjRi
OTExMTM5ZTA0YzlmMDVlNmM0ZGRiODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0yNDMsNiArMjQzLDggQEAgaW5saW5lIENhcGFiaWxp
dHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBVbnJlYWNoYWJsZToKICAg
ICBjYXNlIEluQnlWYWw6CiAgICAgY2FzZSBJbkJ5SWQ6CisgICAgY2FzZSBIYXNQcml2YXRlTmFt
ZToKKyAgICBjYXNlIEhhc1ByaXZhdGVCcmFuZDoKICAgICBjYXNlIEhhc093blByb3BlcnR5Ogog
ICAgIGNhc2UgSXNDZWxsV2l0aFR5cGU6CiAgICAgY2FzZSBNYXBIYXNoOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDcyMDEyYjZjNGUzNGM3
ODc4YTg3NGFmZmM1YTUxNDJkMDUxNzk3NmUuLmMwNDc1MmQ3YmQ5ZjFiMmY4YTJlZTUzMzE1Nzgx
MmU5ZmY1NTUxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKQEAgLTk2Miw2ICs5NjIsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJbkJ5
VmFsOgogICAgICAgICAgICAgY29tcGlsZUluQnlWYWwoKTsKICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEhhc1ByaXZhdGVOYW1lOgorICAgICAgICAgICAgY29tcGlsZUhhc1ByaXZh
dGVOYW1lKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBIYXNQcml2YXRlQnJh
bmQ6CisgICAgICAgICAgICBjb21waWxlSGFzUHJpdmF0ZUJyYW5kKCk7CisgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBDaGVja1ByaXZhdGVCcmFuZDoKICAgICAgICAgICAgIGNvbXBp
bGVDaGVja1ByaXZhdGVCcmFuZCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjIxMyw2ICsx
MjIxOSwxOCBAQCBwcml2YXRlOgogICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOwogICAgICAgICBz
ZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uSW5CeVZhbCwgd2Vha1BvaW50ZXIoZ2xv
YmFsT2JqZWN0KSwgbG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbG93SlNWYWx1ZShtX25vZGUt
PmNoaWxkMigpKSkpOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGNvbXBpbGVIYXNQcml2YXRlTmFt
ZSgpCisgICAgeworICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFw
aC5nbG9iYWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOworICAgICAgICBzZXRKU1ZhbHVl
KHZtQ2FsbChJbnQ2NCwgb3BlcmF0aW9uSGFzUHJpdmF0ZU5hbWUsIHdlYWtQb2ludGVyKGdsb2Jh
bE9iamVjdCksIGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIGxvd1N5bWJvbChtX25vZGUtPmNo
aWxkMigpKSkpOworICAgIH0KKworICAgIHZvaWQgY29tcGlsZUhhc1ByaXZhdGVCcmFuZCgpCisg
ICAgeworICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9i
YWxPYmplY3RGb3IobV9vcmlnaW4uc2VtYW50aWMpOworICAgICAgICBzZXRKU1ZhbHVlKHZtQ2Fs
bChJbnQ2NCwgb3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kLCB3ZWFrUG9pbnRlcihnbG9iYWxPYmpl
Y3QpLCBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpLCBsb3dTeW1ib2wobV9ub2RlLT5jaGlsZDIo
KSkpKTsKKyAgICB9CiAKICAgICB2b2lkIGNvbXBpbGVJbkJ5SWQoKQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcAppbmRleCA3ODkyZjBkMmQ5MjMyNzRiOTBlNTUzNDcyNWFhOWEyY2Vl
NDQzNzBiLi5mMWIzYjVhNjNhYzhmOTc3OTlkZTFlYWI1MDM1OWQ4MWI2ZTMyMThlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC0yODEsNiArMjgxLDggQEAgdm9pZCBKSVQ6OnByaXZh
dGVDb21waWxlTWFpblBhc3MoKQogCiAgICAgICAgIHN3aXRjaCAob3Bjb2RlSUQpIHsKICAgICAg
ICAgREVGSU5FX1NMT1dfT1AoaW5fYnlfdmFsKQorICAgICAgICBERUZJTkVfU0xPV19PUChoYXNf
cHJpdmF0ZV9uYW1lKQorICAgICAgICBERUZJTkVfU0xPV19PUChoYXNfcHJpdmF0ZV9icmFuZCkK
ICAgICAgICAgREVGSU5FX1NMT1dfT1AobGVzcykKICAgICAgICAgREVGSU5FX1NMT1dfT1AobGVz
c2VxKQogICAgICAgICBERUZJTkVfU0xPV19PUChncmVhdGVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggY2VkMTg0MjU1ZWNiYWU2MDA3MWIxZjI0
OThkNDQwZTA0M2YwZmJlOS4uZDc2NTVjN2Q4ZGZmNmMwMDViMDNhZjcxYTgyOTVlOWM3Yzk4YzQ4
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC00
NjQsNiArNDY0LDQ1IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5VmFs
LCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oQ29tbW9uU2xvd1BhdGhzOjpvcEluQnlWYWwoZ2xvYmFsT2Jq
ZWN0LCBiYXNlLCBKU1ZhbHVlOjpkZWNvZGUoa2V5KSkpKTsKIH0KIAorSlNDX0RFRklORV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvbkhhc1ByaXZhdGVOYW1lLCBFbmNvZGVkSlNWYWx1ZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUga2V5
KSkKK3sKKyAgICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7Cisg
ICAgCisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIENhbGxGcmFtZSogY2Fs
bEZyYW1lID0gREVDTEFSRV9DQUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGNhbGxGcmFtZSk7CisKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgaWYgKCFiYXNlLT5pc09iamVjdCgpKSB7
CisgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUludmFs
aWRJblBhcmFtZXRlckVycm9yKGdsb2JhbE9iamVjdCwgYmFzZSkpOworICAgICAgICByZXR1cm4g
ZW5jb2RlZEpTVmFsdWUoKTsKKyAgICB9CisKKyAgICBKU1ZhbHVlIHByb3BlcnR5VmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoa2V5KTsKKyAgICBBU1NFUlQocHJvcGVydHlWYWx1ZS5pc1N5bWJvbCgp
KTsKKyAgICBhdXRvIHByb3BlcnR5ID0gcHJvcGVydHlWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2Jh
bE9iamVjdCk7CisgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkpOworCisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNPYmplY3QoYmFzZSktPmhhc1By
aXZhdGVGaWVsZChnbG9iYWxPYmplY3QsIHByb3BlcnR5KSkpOworfQorCitKU0NfREVGSU5FX0pJ
VF9PUEVSQVRJT04ob3BlcmF0aW9uSGFzUHJpdmF0ZUJyYW5kLCBFbmNvZGVkSlNWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUg
YnJhbmQpKQoreworICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNl
KTsKKyAgICAKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOworICAgIEpJVE9wZXJhdGlvblBy
b2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZyYW1lKTsKKworICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBpZiAoIWJhc2UtPmlzT2JqZWN0
KCkpIHsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24oZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRl
SW52YWxpZEluUGFyYW1ldGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlKSk7CisgICAgICAgIHJl
dHVybiBlbmNvZGVkSlNWYWx1ZSgpOworICAgIH0KKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGFzT2JqZWN0KGJhc2UpLT5oYXNQcml2YXRlQnJhbmQoZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlOjpkZWNvZGUoYnJhbmQpKSkpOworfQorCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJ
T04ob3BlcmF0aW9uUHV0QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgdWludHB0cl90IHJhd0NhY2hlYWJs
ZUlkZW50aWZpZXIpKQogewogICAgIFN1cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3Bl
KGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXgg
OTdhMDkwZGUyODdkNjZjZDMxOWQ0MmE3N2FlNDViNDEyOGUwNmUxZC4uYTMzYjFhNWNmMTJiODli
YTU1MjE5MWUwZjdmODY2ZWFmZTFhMmUxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmgKQEAgLTE3OCw2ICsxNzgsOCBAQCBKU0NfREVDTEFSRV9KSVRfT1BFUkFU
SU9OKG9wZXJhdGlvbkluQnlJZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0
cgogSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25JbkJ5SWRPcHRpbWl6ZSwgRW5j
b2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2Rl
ZEpTVmFsdWUsIHVpbnRwdHJfdCkpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbkluQnlWYWwsIEVuY29kZWRKU1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBF
bmNvZGVkSlNWYWx1ZSkpOworSlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25IYXNQ
cml2YXRlTmFtZSwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVu
Y29kZWRKU1ZhbHVlKSk7CitKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkhhc1By
aXZhdGVCcmFuZCwgRW5jb2RlZEpTVmFsdWUsIChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIEVu
Y29kZWRKU1ZhbHVlKSk7CiAKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0
QnlJZFN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1
aW50cHRyX3QpKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uUHV0QnlJZE5v
blN0cmljdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCB1aW50
cHRyX3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQppbmRleCAwNGU2ZmI0YTBiMzgyZGVmN2NiZDM0MTkxZTdhOWM5YWJmZTNm
NzZhLi44YWEyMjYyZWEzM2NiMmQ0NzM3MzZmNDlhOGYzOTQzOWU3YTMwMjEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBA
IC0yMDExLDYgKzIwMTEsOCBAQCBpZiBub3QgSlNWQUxVRTY0CiBlbmQKIAogc2xvd1BhdGhPcChp
bl9ieV92YWwpCitzbG93UGF0aE9wKGhhc19wcml2YXRlX25hbWUpCitzbG93UGF0aE9wKGhhc19w
cml2YXRlX2JyYW5kKQogc2xvd1BhdGhPcChpc19jYWxsYWJsZSkKIHNsb3dQYXRoT3AoaXNfY29u
c3RydWN0b3IpCiBzbG93UGF0aE9wKGxlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
QVNUQnVpbGRlci5oCmluZGV4IDVlYzU2OWVmNTQwMjY2OTcxMDg5ODdhZjZhYmE3NDEzOTA4NDRl
NTMuLjM4ZGRiMGU1MjAyZTEyY2Q1YmRlYjAxOTA1Njk2YWJjYTE3YWExYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wYXJzZXIvQVNUQnVpbGRlci5oCkBAIC0yMDcsNiArMjA3LDEwIEBAIHB1
YmxpYzoKIAogICAgICAgICByZXR1cm4gbmV3IChtX3BhcnNlckFyZW5hKSBSZXNvbHZlTm9kZShs
b2NhdGlvbiwgaWRlbnQsIHN0YXJ0KTsKICAgICB9CisgICAgRXhwcmVzc2lvbk5vZGUqIGNyZWF0
ZVByaXZhdGVJZGVudGlmaWVyTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBj
b25zdCBJZGVudGlmaWVyJiBpZGVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKG1fcGFy
c2VyQXJlbmEpIFByaXZhdGVJZGVudGlmaWVyTm9kZShsb2NhdGlvbiwgaWRlbnQpOworICAgIH0K
ICAgICBFeHByZXNzaW9uTm9kZSogY3JlYXRlT2JqZWN0TGl0ZXJhbChjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uKSB7IHJldHVybiBuZXcgKG1fcGFyc2VyQXJlbmEpIE9iamVjdExpdGVy
YWxOb2RlKGxvY2F0aW9uKTsgfQogICAgIEV4cHJlc3Npb25Ob2RlKiBjcmVhdGVPYmplY3RMaXRl
cmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIFByb3BlcnR5TGlzdE5vZGUqIHBy
b3BlcnRpZXMpIHsgcmV0dXJuIG5ldyAobV9wYXJzZXJBcmVuYSkgT2JqZWN0TGl0ZXJhbE5vZGUo
bG9jYXRpb24sIHByb3BlcnRpZXMpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Ob2RlQ29uc3RydWN0b3JzLmgKaW5kZXggNzQ3ZDE1ODdiYjA3N2Q1MDE4ZTMwZWMzNWIw
ZGQyNjEzYmEzYWJiZC4uNjUxNjliNWNmYWZjM2VmMmYzNmIyOGMzN2FhMzU5MjNjZmE5ZGM5YSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3Jz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2RlQ29uc3RydWN0b3JzLmgK
QEAgLTIwOSw2ICsyMDksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFTU0VSVChtX3N0
YXJ0Lm9mZnNldCA+PSBtX3N0YXJ0LmxpbmVTdGFydE9mZnNldCk7CiAgICAgfQogCisgICAgaW5s
aW5lIFByaXZhdGVJZGVudGlmaWVyTm9kZTo6UHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIGNvbnN0IElkZW50aWZpZXImIGlkZW50KQorICAgICAg
ICA6IEV4cHJlc3Npb25Ob2RlKGxvY2F0aW9uKQorICAgICAgICAsIG1faWRlbnQoaWRlbnQpCisg
ICAgeworICAgIH0KKwogICAgIGlubGluZSBFbGVtZW50Tm9kZTo6RWxlbWVudE5vZGUoaW50IGVs
aXNpb24sIEV4cHJlc3Npb25Ob2RlKiBub2RlKQogICAgICAgICA6IG1fbm9kZShub2RlKQogICAg
ICAgICAsIG1fZWxpc2lvbihlbGlzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Ob2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Ob2Rlcy5o
CmluZGV4IDU2MTI5OWE2YTcwZmVmMjEwNzVmODZhOTYwYzcxY2E4MDRhMjU1YzguLjU5ZjZkYWI0
NWRhN2E4ZjFhYTY1MDk0NzNmNmY5YTZkZDRmY2U4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgKQEAgLTIxMyw2ICsyMTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
dmlydHVhbCBib29sIGlzRnVuY3Rpb25DYWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICAgICAgdmlydHVhbCBib29sIGlzRGVsZXRlTm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc09wdGlvbmFsQ2hhaW4oKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQcml2YXRlSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGVtaXRCeXRlY29kZUlu
Q29uZGl0aW9uQ29udGV4dChCeXRlY29kZUdlbmVyYXRvciYsIExhYmVsJiwgTGFiZWwmLCBGYWxs
VGhyb3VnaE1vZGUpOwogCkBAIC02ODMsNiArNjg0LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBKU1RleHRQb3NpdGlvbiBtX3N0YXJ0OwogICAgIH07CiAKKyAgICAvLyBEdW1teSBleHBy
ZXNzaW9uIHRvIGhvbGQgdGhlIExIUyBvZiBgI3ggaW4gb2JqYC4KKyAgICBjbGFzcyBQcml2YXRl
SWRlbnRpZmllck5vZGUgZmluYWwgOiBwdWJsaWMgRXhwcmVzc2lvbk5vZGUgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYs
IGNvbnN0IElkZW50aWZpZXImKTsKKworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYsIFJlZ2lzdGVySUQqID0gbnVs
bHB0cikgZmluYWwgeyBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisKKyAgICAgICAg
Ym9vbCBpc1ByaXZhdGVJZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQor
CisgICAgICAgIGNvbnN0IElkZW50aWZpZXImIG1faWRlbnQ7CisgICAgfTsKKwogICAgIGNsYXNz
IEVsZW1lbnROb2RlIGZpbmFsIDogcHVibGljIFBhcnNlckFyZW5hRnJlZWFibGUgewogICAgIHB1
YmxpYzoKICAgICAgICAgRWxlbWVudE5vZGUoaW50IGVsaXNpb24sIEV4cHJlc3Npb25Ob2RlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNzA1NjFiOWFjMmE4
NzgyYzczYzM4N2Y5NTZlYjc5MDQ0NDgyMWMzMy4uODc1NjAwYTA3NGZkMzdiMDA3MzFhY2M2NTcw
NmE2NzgxYjkyMTYxNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApA
QCAtNDIzMyw3ICs0MjMzLDE4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZUV4
cHJlc3Npb24gUGFyc2VyPExleGVyVHlwZT46OnBhcnNlQmluYXJ5RXhwcmVzCiAgICAgICAgIEpT
VGV4dFBvc2l0aW9uIGV4cHJTdGFydCA9IHRva2VuU3RhcnRQb3NpdGlvbigpOwogICAgICAgICBp
bnQgaW5pdGlhbEFzc2lnbm1lbnRzID0gbV9wYXJzZXJTdGF0ZS5hc3NpZ25tZW50Q291bnQ7CiAg
ICAgICAgIEpTVG9rZW5UeXBlIGxlYWRpbmdUb2tlblR5cGVGb3JVbmFyeUV4cHJlc3Npb24gPSBt
X3Rva2VuLm1fdHlwZTsKLSAgICAgICAgVHJlZUV4cHJlc3Npb24gY3VycmVudCA9IHBhcnNlVW5h
cnlFeHByZXNzaW9uKGNvbnRleHQpOworCisgICAgICAgIFRyZWVFeHByZXNzaW9uIGN1cnJlbnQg
PSAwOworICAgICAgICBpZiAoT3B0aW9uczo6dXNlUHJpdmF0ZUluKCkgJiYgbWF0Y2goUFJJVkFU
RU5BTUUpKSB7CisgICAgICAgICAgICBjb25zdCBJZGVudGlmaWVyKiBpZGVudCA9IG1fdG9rZW4u
bV9kYXRhLmlkZW50OworICAgICAgICAgICAgQVNTRVJUKGlkZW50KTsKKyAgICAgICAgICAgIHNl
bWFudGljRmFpbElmRmFsc2UodXNlUHJpdmF0ZU5hbWUoaWRlbnQpLCAiQ2Fubm90IHJlZmVyZW5j
ZSBwcml2YXRlIG5hbWVzIG91dHNpZGUgb2YgY2xhc3MiKTsKKyAgICAgICAgICAgIGN1cnJlbnRT
Y29wZSgpLT51c2VWYXJpYWJsZShpZGVudCwgZmFsc2UpOworICAgICAgICAgICAgbmV4dCgpOwor
ICAgICAgICAgICAgc2VtYW50aWNGYWlsSWZUcnVlKG1fdG9rZW4ubV90eXBlICE9IElOVE9LRU4s
ICJCYXJlIHByaXZhdGUgbmFtZSBjYW4gb25seSBiZSB1c2VkIGFzIHRoZSBsZWZ0LWhhbmQgc2lk
ZSBvZiBhbiBgaW5gIGV4cHJlc3Npb24iKTsKKyAgICAgICAgICAgIGN1cnJlbnQgPSBjb250ZXh0
LmNyZWF0ZVByaXZhdGVJZGVudGlmaWVyTm9kZShsb2NhdGlvbiwgKmlkZW50KTsKKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBjdXJyZW50ID0gcGFyc2VVbmFyeUV4cHJlc3Npb24oY29udGV4
dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKGN1cnJlbnQsICJDYW5ub3QgcGFyc2UgZXhwcmVzc2lv
biIpOwogCiAgICAgICAgIGNvbnRleHQuYXBwZW5kQmluYXJ5RXhwcmVzc2lvbkluZm8ob3BlcmFu
ZFN0YWNrRGVwdGgsIGN1cnJlbnQsIGV4cHJTdGFydCwgbGFzdFRva2VuRW5kUG9zaXRpb24oKSwg
bGFzdFRva2VuRW5kUG9zaXRpb24oKSwgaW5pdGlhbEFzc2lnbm1lbnRzICE9IG1fcGFyc2VyU3Rh
dGUuYXNzaWdubWVudENvdW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvU3ludGF4Q2hlY2tlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50
YXhDaGVja2VyLmgKaW5kZXggYzNjNzVlYjlmNDRlMWI3MTU4ZWRlMDM1MGY4ZjFhMzhlYTYzNzMw
Mi4uZjM1MDkzNjcxMzIzZTJiYmExMmUyZTRiZmYzODE5NDEwODEyNjg5NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmgKQEAgLTg1LDcgKzg1LDcgQEAg
cHVibGljOgogICAgICAgICBUZW1wbGF0ZVN0cmluZ1Jlc3VsdCwgVGVtcGxhdGVTdHJpbmdMaXN0
UmVzdWx0LAogICAgICAgICBUZW1wbGF0ZUV4cHJlc3Npb25MaXN0UmVzdWx0LCBUZW1wbGF0ZUV4
cHIsCiAgICAgICAgIFRhZ2dlZFRlbXBsYXRlRXhwciwgWWllbGRFeHByLCBBd2FpdEV4cHIsCi0g
ICAgICAgIE1vZHVsZU5hbWVSZXN1bHQsCisgICAgICAgIE1vZHVsZU5hbWVSZXN1bHQsIFByaXZh
dGVJZGVudGlmaWVyLAogICAgICAgICBJbXBvcnRTcGVjaWZpZXJSZXN1bHQsIEltcG9ydFNwZWNp
Zmllckxpc3RSZXN1bHQsCiAgICAgICAgIEV4cG9ydFNwZWNpZmllclJlc3VsdCwgRXhwb3J0U3Bl
Y2lmaWVyTGlzdFJlc3VsdCwKIApAQCAtMTY4LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAgICBBTFdB
WVNfSU5MSU5FIGJvb2wgaXNOZXdUYXJnZXQoRXhwcmVzc2lvblR5cGUgdHlwZSkgeyByZXR1cm4g
dHlwZSA9PSBOZXdUYXJnZXRFeHByOyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIGlzSW1wb3J0
TWV0YShFeHByZXNzaW9uVHlwZSB0eXBlKSB7IHJldHVybiB0eXBlID09IEltcG9ydE1ldGFFeHBy
OyB9CiAgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlUmVzb2x2ZShjb25zdCBKU1Rva2VuTG9jYXRp
b24mLCBjb25zdCBJZGVudGlmaWVyJiwgaW50LCBpbnQpIHsgcmV0dXJuIFJlc29sdmVFeHByOyB9
CisgICAgRXhwcmVzc2lvblR5cGUgY3JlYXRlUHJpdmF0ZUlkZW50aWZpZXJOb2RlKGNvbnN0IEpT
VG9rZW5Mb2NhdGlvbiYsIGNvbnN0IElkZW50aWZpZXImKSB7IHJldHVybiBQcml2YXRlSWRlbnRp
ZmllcjsgfQogICAgIEV4cHJlc3Npb25UeXBlIGNyZWF0ZU9iamVjdExpdGVyYWwoY29uc3QgSlNU
b2tlbkxvY2F0aW9uJikgeyByZXR1cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNz
aW9uVHlwZSBjcmVhdGVPYmplY3RMaXRlcmFsKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIGludCkg
eyByZXR1cm4gT2JqZWN0TGl0ZXJhbEV4cHI7IH0KICAgICBFeHByZXNzaW9uVHlwZSBjcmVhdGVB
cnJheShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQpIHsgcmV0dXJuIEFycmF5TGl0ZXJhbEV4
cHI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvVmFyaWFibGVF
bnZpcm9ubWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmly
b25tZW50LmgKaW5kZXggZDA2ZGZkNGUzYjA5Mzg5ZDM3OGYzNGM2MWM0MTA1NjgzNzlmMThlMi4u
NTdhMmNhMWNlN2VmNDE3ZGQxYjgyZWJkZDg1YjhhZTg4ZTkyMTEwZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmgKQEAgLTEwOSwx
MCArMTA5LDEwIEBAIHB1YmxpYzoKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNNZXRob2QoKSBj
b25zdCB7IHJldHVybiBtX2JpdHMgJiBJc01ldGhvZDsgfQogICAgIEFMV0FZU19JTkxJTkUgYm9v
bCBpc1NldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIElzU2V0dGVyOyB9CiAgICAgQUxX
QVlTX0lOTElORSBib29sIGlzR2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV9iaXRzICYgSXNHZXR0
ZXI7IH0KLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNGaWVsZCgpIGNvbnN0IHsgcmV0dXJuICFp
c1ByaXZhdGVNZXRob2RPckFjZXNzb3IoKTsgfQorICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc0Zp
ZWxkKCkgY29uc3QgeyByZXR1cm4gIWlzUHJpdmF0ZU1ldGhvZE9yQWNjZXNzb3IoKTsgfQogICAg
IEFMV0FZU19JTkxJTkUgYm9vbCBpc1N0YXRpYygpIGNvbnN0IHsgcmV0dXJuIG1fYml0cyAmIElz
U3RhdGljOyB9CiAKLSAgICBib29sIGlzUHJpdmF0ZU1ldGhvZE9yQWNlc3NvcigpIGNvbnN0IHsg
cmV0dXJuIGlzTWV0aG9kKCkgfHwgaXNTZXR0ZXIoKSB8fCBpc0dldHRlcigpOyB9CisgICAgYm9v
bCBpc1ByaXZhdGVNZXRob2RPckFjY2Vzc29yKCkgY29uc3QgeyByZXR1cm4gaXNNZXRob2QoKSB8
fCBpc1NldHRlcigpIHx8IGlzR2V0dGVyKCk7IH0KIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBz
ZXRJc1VzZWQoKSB7IG1fYml0cyB8PSBJc1VzZWQ7IH0KICAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
c2V0SXNEZWNsYXJlZCgpIHsgbV9iaXRzIHw9IElzRGVjbGFyZWQ7IH0KQEAgLTI3NCw3ICsyNzQs
NyBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgZm9yIChh
dXRvIGVudHJ5IDogcHJpdmF0ZU5hbWVzKCkpIHsKLSAgICAgICAgICAgIGlmIChlbnRyeS52YWx1
ZS5pc1ByaXZhdGVNZXRob2RPckFjZXNzb3IoKSAmJiBlbnRyeS52YWx1ZS5pc1N0YXRpYygpKQor
ICAgICAgICAgICAgaWYgKGVudHJ5LnZhbHVlLmlzUHJpdmF0ZU1ldGhvZE9yQWNjZXNzb3IoKSAm
JiBlbnRyeS52YWx1ZS5pc1N0YXRpYygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgICAgIApAQCAtMjg3LDcgKzI4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIGZvciAoYXV0byBlbnRyeSA6IHBy
aXZhdGVOYW1lcygpKSB7Ci0gICAgICAgICAgICBpZiAoZW50cnkudmFsdWUuaXNQcml2YXRlTWV0
aG9kT3JBY2Vzc29yKCkgJiYgIWVudHJ5LnZhbHVlLmlzU3RhdGljKCkpCisgICAgICAgICAgICBp
ZiAoZW50cnkudmFsdWUuaXNQcml2YXRlTWV0aG9kT3JBY2Nlc3NvcigpICYmICFlbnRyeS52YWx1
ZS5pc1N0YXRpYygpKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQ
YXRocy5jcHAKaW5kZXggYzE4MWU1NmFmNTExYjEzM2M2ZWFkM2JkN2Y3ODg2ZGY4MDRjNzEyNi4u
MmVjNmVjNGFlMDExYjA5MDhlN2I5ODkxNTQwOTBjNTk2ZTNkNDJjYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBAIC04MzgsNiAr
ODM4LDM1IEBAIEpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaW5fYnlfdmFs
KQogICAgIFJFVFVSTihqc0Jvb2xlYW4oQ29tbW9uU2xvd1BhdGhzOjpvcEluQnlWYWwoZ2xvYmFs
T2JqZWN0LCBHRVRfQyhieXRlY29kZS5tX2Jhc2UpLmpzVmFsdWUoKSwgR0VUX0MoYnl0ZWNvZGUu
bV9wcm9wZXJ0eSkuanNWYWx1ZSgpLCAmbWV0YWRhdGEubV9hcnJheVByb2ZpbGUpKSk7CiB9CiAK
K0pTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaGFzX3ByaXZhdGVfbmFtZSkK
K3sKKyAgICBCRUdJTigpOworCisgICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcEhhc1ByaXZh
dGVOYW1lPigpOworICAgIGF1dG8gYmFzZVZhbHVlID0gR0VUX0MoYnl0ZWNvZGUubV9iYXNlKS5q
c1ZhbHVlKCk7CisgICAgaWYgKCFiYXNlVmFsdWUuaXNPYmplY3QoKSkKKyAgICAgICAgVEhST1co
Y3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3IoZ2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUpKTsK
KworICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IEdFVF9DKGJ5dGVjb2RlLm1fcHJvcGVydHkpLmpz
VmFsdWUoKTsKKyAgICBBU1NFUlQocHJvcGVydHlWYWx1ZS5pc1N5bWJvbCgpKTsKKyAgICBhdXRv
IHByb3BlcnR5ID0gcHJvcGVydHlWYWx1ZS50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7Cisg
ICAgRVhDRVBUSU9OX0FTU0VSVCghdGhyb3dTY29wZS5leGNlcHRpb24oKSk7CisKKyAgICBSRVRV
Uk4oanNCb29sZWFuKGFzT2JqZWN0KGJhc2VWYWx1ZSktPmhhc1ByaXZhdGVGaWVsZChnbG9iYWxP
YmplY3QsIHByb3BlcnR5KSkpOworfQorCitKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xv
d19wYXRoX2hhc19wcml2YXRlX2JyYW5kKQoreworICAgIEJFR0lOKCk7CisKKyAgICBhdXRvIGJ5
dGVjb2RlID0gcGMtPmFzPE9wSGFzUHJpdmF0ZUJyYW5kPigpOworICAgIGF1dG8gYmFzZVZhbHVl
ID0gR0VUX0MoYnl0ZWNvZGUubV9iYXNlKS5qc1ZhbHVlKCk7CisgICAgaWYgKCFiYXNlVmFsdWUu
aXNPYmplY3QoKSkKKyAgICAgICAgVEhST1coY3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3Io
Z2xvYmFsT2JqZWN0LCBiYXNlVmFsdWUpKTsKKworICAgIFJFVFVSTihqc0Jvb2xlYW4oYXNPYmpl
Y3QoYmFzZVZhbHVlKS0+aGFzUHJpdmF0ZUJyYW5kKGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0ZWNv
ZGUubV9icmFuZCkuanNWYWx1ZSgpKSkpOworfQorCiB0ZW1wbGF0ZTxPcGNvZGVTaXplIHdpZHRo
PgogQUxXQVlTX0lOTElORSBTbG93UGF0aFJldHVyblR5cGUgaXRlcmF0b3JPcGVuVHJ5RmFzdElt
cGwoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGNvbnN0IEluc3RydWN0aW9uKiBwYykKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKaW5kZXgg
N2I4NTdhYWRkZjMxMzkzODA4YTA5M2IwYWMzMjllMWJmMWMyYjMxYy4uM2RiODEzYzQxNWQxNjFh
ZjI0MDU3NjkyNWJjYmM2YWVmZjc0ZTUwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTI1Miw2ICsyNTIsOCBAQCBKU0NfREVDTEFS
RV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF90eXBlb2ZfaXNfZnVuY3Rpb24pOwogSlNDX0RF
Q0xBUkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaXNfY2FsbGFibGUpOwogSlNDX0RFQ0xB
UkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaXNfY29uc3RydWN0b3IpOwogSlNDX0RFQ0xB
UkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaW5fYnlfdmFsKTsKK0pTQ19ERUNMQVJFX0NP
TU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX2hhc19wcml2YXRlX25hbWUpOworSlNDX0RFQ0xBUkVf
Q09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfaGFzX3ByaXZhdGVfYnJhbmQpOwogSlNDX0RFQ0xB
UkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfc3RyY2F0KTsKIEpTQ19ERUNMQVJFX0NPTU1P
Tl9TTE9XX1BBVEgoc2xvd19wYXRoX3RvX3ByaW1pdGl2ZSk7CiBKU0NfREVDTEFSRV9DT01NT05f
U0xPV19QQVRIKHNsb3dfcGF0aF90b19wcm9wZXJ0eV9rZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggNzYzOWJmNTZjZjMzNWRhNzIwZjNkODMzZjVlMGQx
OWI3YmYzZmRhNy4uNGIwZDljMDE1OGI4NTdjMGVkYzk0MjJlZmUzMTE2M2RiODI5MjljMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNzksMTAgKzE3OSwx
MiBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRv
ciYpOwogCiAgICAgc3RhdGljIGJvb2wgZ2V0UHJpdmF0ZUZpZWxkU2xvdChKU09iamVjdCosIEpT
R2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBpbmxpbmUg
Ym9vbCBoYXNQcml2YXRlRmllbGQoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUpOwogICAg
IGlubGluZSBib29sIGdldFByaXZhdGVGaWVsZChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90Jik7CiAgICAgaW5saW5lIHZvaWQgc2V0UHJpdmF0ZUZpZWxkKEpTR2xv
YmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAg
ICBpbmxpbmUgdm9pZCBkZWZpbmVQcml2YXRlRmllbGQoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0
eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwotICAgIGlubGluZSBib29sIGNoZWNr
UHJpdmF0ZUJyYW5kKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7CisgICAgaW5saW5l
IGJvb2wgaGFzUHJpdmF0ZUJyYW5kKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBicmFuZCk7Cisg
ICAgaW5saW5lIHZvaWQgY2hlY2tQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVl
IGJyYW5kKTsKICAgICBpbmxpbmUgdm9pZCBzZXRQcml2YXRlQnJhbmQoSlNHbG9iYWxPYmplY3Qq
LCBKU1ZhbHVlIGJyYW5kKTsKIAogICAgIHVuc2lnbmVkIGdldEFycmF5TGVuZ3RoKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKaW5k
ZXggYzA5YWE1MTlhMjk0Y2YxMmFiOGEyMjQ4MjZlMWE1YTlmZjMzYzZhNS4uZTZhZWQ3NjQwODA3
YzVmZTUxN2RjOWNiYmFiYmVjODVlOGQxZjU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKQEAgLTYxNSw2ICs2MTUsMTQgQEAgQUxXQVlT
X0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRQcml2YXRlRmllbGRTbG90KEpTT2JqZWN0KiBvYmpl
Y3QsIEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAoraW5saW5lIGJvb2wgSlNP
YmplY3Q6Omhhc1ByaXZhdGVGaWVsZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQoreworICAgIEFTU0VSVChwcm9wZXJ0eU5hbWUuaXNQcml2
YXRlTmFtZSgpKTsKKyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOworICAgIHVuc2ln
bmVkIGF0dHJpYnV0ZXM7CisgICAgcmV0dXJuIHN0cnVjdHVyZSh2bSktPmdldCh2bSwgcHJvcGVy
dHlOYW1lLCBhdHRyaWJ1dGVzKSAhPSBpbnZhbGlkT2Zmc2V0OworfQorCiBpbmxpbmUgYm9vbCBK
U09iamVjdDo6Z2V0UHJpdmF0ZUZpZWxkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBWTSYg
dm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwpAQCAtNjc2LDI1ICs2ODQsMjggQEAgQUxXQVlTX0lO
TElORSB2b2lkIEpTT2JqZWN0OjpnZXROb25SZWlmaWVkU3RhdGljUHJvcGVydHlOYW1lcyhWTSYg
dm0sIFByb3BlcnR5TmEKICAgICB9CiB9CiAKLWlubGluZSBib29sIEpTT2JqZWN0OjpjaGVja1By
aXZhdGVCcmFuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJyYW5kKQor
aW5saW5lIGJvb2wgSlNPYmplY3Q6Omhhc1ByaXZhdGVCcmFuZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIGJyYW5kKQoreworICAgIEFTU0VSVChicmFuZC5pc1N5bWJvbCgp
ICYmIGFzU3ltYm9sKGJyYW5kKS0+dWlkKCkuaXNQcml2YXRlKCkpOworICAgIFZNJiB2bSA9IGdl
dFZNKGdsb2JhbE9iamVjdCk7CisgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSB0aGlzLT5zdHJ1
Y3R1cmUodm0pOworICAgIHJldHVybiBzdHJ1Y3R1cmUtPmlzQnJhbmRlZFN0cnVjdHVyZSgpICYm
IGpzQ2FzdDxCcmFuZGVkU3RydWN0dXJlKj4oc3RydWN0dXJlKS0+Y2hlY2tCcmFuZChhc1N5bWJv
bChicmFuZCkpOworfQorCitpbmxpbmUgdm9pZCBKU09iamVjdDo6Y2hlY2tQcml2YXRlQnJhbmQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBicmFuZCkKIHsKLSAgICBBU1NF
UlQoYnJhbmQuaXNTeW1ib2woKSk7CisgICAgQVNTRVJUKGJyYW5kLmlzU3ltYm9sKCkgJiYgYXNT
eW1ib2woYnJhbmQpLT51aWQoKS5pc1ByaXZhdGUoKSk7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
ICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IHRoaXMtPnN0cnVjdHVyZSh2bSk7Ci0gICAgaWYg
KCFzdHJ1Y3R1cmUtPmlzQnJhbmRlZFN0cnVjdHVyZSgpIHx8ICFqc0Nhc3Q8QnJhbmRlZFN0cnVj
dHVyZSo+KHN0cnVjdHVyZSktPmNoZWNrQnJhbmQoYXNTeW1ib2woYnJhbmQpKSkgeworICAgIGlm
ICghc3RydWN0dXJlLT5pc0JyYW5kZWRTdHJ1Y3R1cmUoKSB8fCAhanNDYXN0PEJyYW5kZWRTdHJ1
Y3R1cmUqPihzdHJ1Y3R1cmUpLT5jaGVja0JyYW5kKGFzU3ltYm9sKGJyYW5kKSkpCiAgICAgICAg
IHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVByaXZhdGVNZXRob2RB
Y2Nlc3NFcnJvcihnbG9iYWxPYmplY3QpKTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBmYWxzZSk7Ci0gICAgfQotICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlv
bigpKTsKLQotICAgIHJldHVybiB0cnVlOwogfQogCiBpbmxpbmUgdm9pZCBKU09iamVjdDo6c2V0
UHJpdmF0ZUJyYW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYnJhbmQp
CiB7Ci0gICAgQVNTRVJUKGJyYW5kLmlzU3ltYm9sKCkpOworICAgIEFTU0VSVChicmFuZC5pc1N5
bWJvbCgpICYmIGFzU3ltYm9sKGJyYW5kKS0+dWlkKCkuaXNQcml2YXRlKCkpOwogICAgIFZNJiB2
bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aAppbmRleCA3ZTc4YWJhNWVkNzFhNGY1NjNmZjVhZmJmZGUzYWQ2NTUwZWFjMmIzLi43MDc3YWUy
OGVlMzY2YjA4ODFjZDk5ZTM5NTdiMzM3OTMxZWIyYmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTUyMSw2ICs1MjEsNyBAQCBKU19FWFBPUlRf
UFJJVkFURSBib29sIGNhblVzZUpJVENhZ2UoKTsKICAgICB2KEJvb2wsIHVzZVByaXZhdGVTdGF0
aWNDbGFzc0ZpZWxkcywgdHJ1ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgdGhlIHBhcnNlciB3aWxsIHVu
ZGVyc3RhbmQgcHJpdmF0ZSBzdGF0aWMgZGF0YSBmaWVsZHMgaW5zaWRlIGNsYXNzZXMuIikgXAog
ICAgIHYoQm9vbCwgdXNlUHJpdmF0ZUNsYXNzRmllbGRzLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVl
LCB0aGUgcGFyc2VyIHdpbGwgdW5kZXJzdGFuZCBwcml2YXRlIGRhdGEgZmllbGRzIGluc2lkZSBj
bGFzc2VzLiIpIFwKICAgICB2KEJvb2wsIHVzZVByaXZhdGVNZXRob2RzLCB0cnVlLCBOb3JtYWws
ICJJZiB0cnVlLCB0aGUgcGFyc2VyIHdpbGwgdW5kZXJzdGFuZCBwcml2YXRlIG1ldGhvZHMgaW5z
aWRlIGNsYXNzZXMuIikgXAorICAgIHYoQm9vbCwgdXNlUHJpdmF0ZUluLCBmYWxzZSwgTm9ybWFs
LCAiSWYgdHJ1ZSwgdGhlIHBhcnNlciB3aWxsIHVuZGVyc3RhbmQgcHJpdmF0ZSBtZW1iZXIgZXhp
c3RlbmNlIGNoZWNrcyB3aXRoIHRoZSBgaW5gIG9wZXJhdG9yLiIpIFwKICAgICB2KEJvb2wsIHVz
ZVdlYkFzc2VtYmx5U3RyZWFtaW5nLCB0cnVlLCBOb3JtYWwsICJBbGxvdyB0byBydW4gV2ViQXNz
ZW1ibHkncyBTdHJlYW1pbmcgQVBJIikgXAogICAgIHYoQm9vbCwgdXNlV2ViQXNzZW1ibHlSZWZl
cmVuY2VzLCB0cnVlLCBOb3JtYWwsICJBbGxvdyB0eXBlcyBmcm9tIHRoZSB3YXNtIHJlZmVyZW5j
ZXMgc3BlYy4iKSBcCiAgICAgdihCb29sLCB1c2VXZWJBc3NlbWJseVR5cGVkRnVuY3Rpb25SZWZl
cmVuY2VzLCBmYWxzZSwgTm9ybWFsLCAiQWxsb3cgZnVuY3Rpb24gdHlwZXMgZnJvbSB0aGUgd2Fz
bSB0eXBlZCBmdW5jdGlvbiByZWZlcmVuY2VzIHNwZWMuIikgXApkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyOGE5OTNjMjQxYWZhNmU4ZmNj
YTA1Nzg1OGVmN2JkY2UwYzMyYTM1Li4wYjQzOTM2Yzc0ZDU3N2NjYzMwODUyNGNhZWM1MTMwMGEw
Njg4MDJmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA1LTE3ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5r
aXJzbGluZ0Bzb255LmNvbT4KKworICAgICAgICBTdXBwb3J0IEVyZ29ub21pYyBCcmFuZCBDaGVj
a3MgcHJvcG9zYWwgKGAjeCBpbiBvYmpgKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMDkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2FpbyBBcmF1
am8gTmVwb25vY2VubyBkZSBMaW1hLgorCisgICAgICAgICogc3RyZXNzL3ByaXZhdGUtaW4uanM6
IEFkZGVkLgorICAgICAgICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6IEFkZCBmZWF0dXJlIGZsYWcu
CisKIDIwMjEtMDUtMjEgIEFuZ2Vsb3MgT2lrb25vbW9wb3Vsb3MgIDxhbmdlbG9zQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5za2lwIHR5cGUtY2hlY2staG9pc3RpbmctcGhhc2UtaG9pc3QtY2hl
Y2stc3RydWN0dXJlLW9uLXRkei10aGlzLXZhbHVlIG9uIE1JUFMKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL3ByaXZhdGUtaW4uanMgYi9KU1Rlc3RzL3N0cmVzcy9wcml2YXRlLWluLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc4YjJlNTdhYjlmNDkxYTQ0ZTk2ZmUzMjZkNDQ3OTZjYzFmYzY1YzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9KU1Rlc3RzL3N0cmVzcy9wcml2YXRlLWluLmpzCkBAIC0wLDAgKzEsNjMg
QEAKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VQcml2YXRlSW49MSIpCisKK2Z1bmN0aW9uIGFz
c2VydChiKSB7CisgIGlmICghYikgdGhyb3cgbmV3IEVycm9yOworfQorCitmdW5jdGlvbiBzaG91
bGRUaHJvd1R5cGVFcnJvcihmdW5jKSB7CisgICAgbGV0IGVycm9yOworICAgIHRyeSB7CisgICAg
ICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGVycm9yID0gZTsKKyAgICB9
CisKKyAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcignRXhwZWN0ZWQgVHlwZUVycm9yIScpOworfQorCitjbGFzcyBGIHsgI3g7IHN0
YXRpYyBpc0Yob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorY2xhc3MgU0YgeyBzdGF0aWMg
I3g7IHN0YXRpYyBpc1NGKG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9IH0KKworY2xhc3MgTSB7
ICN4KCkge30gc3RhdGljIGlzTShvYmopIHsgcmV0dXJuICN4IGluIG9iajsgfSB9CitjbGFzcyBT
TSB7IHN0YXRpYyAjeCgpIHt9IHN0YXRpYyBpc1NNKG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9
IH0KKworY2xhc3MgRyB7IGdldCAjeCgpIHt9IHN0YXRpYyBpc0cob2JqKSB7IHJldHVybiAjeCBp
biBvYmo7IH0gfQorY2xhc3MgU0cgeyBzdGF0aWMgZ2V0ICN4KCkge30gc3RhdGljIGlzU0cob2Jq
KSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorCitjbGFzcyBTIHsgc2V0ICN4KHYpIHt9IHN0YXRp
YyBpc1Mob2JqKSB7IHJldHVybiAjeCBpbiBvYmo7IH0gfQorY2xhc3MgU1MgeyBzdGF0aWMgc2V0
ICN4KHYpIHt9IHN0YXRpYyBpc1NTKG9iaikgeyByZXR1cm4gI3ggaW4gb2JqOyB9IH0KKworZnVu
Y3Rpb24gdGVzdCgpIHsKKyAgYXNzZXJ0KEYuaXNGKG5ldyBGKSk7CisgIGFzc2VydCghRi5pc0Yo
RikgJiYgIUYuaXNGKG5ldyBNKSAmJiAhRi5pc0Yoe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJy
b3IoKCkgPT4gRi5pc0YoMykpOworICBhc3NlcnQoU0YuaXNTRihTRikpOworICBhc3NlcnQoIVNG
LmlzU0YobmV3IFNGKSAmJiAhU0YuaXNTRihTTSkgJiYgIVNGLmlzU0Yoe30pKTsKKyAgc2hvdWxk
VGhyb3dUeXBlRXJyb3IoKCkgPT4gU0YuaXNTRigzKSk7CisKKyAgYXNzZXJ0KE0uaXNNKG5ldyBN
KSk7CisgIGFzc2VydCghTS5pc00oTSkgJiYgIU0uaXNNKG5ldyBGKSAmJiAhTS5pc00oe30pKTsK
KyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gTS5pc00oMykpOworICBhc3NlcnQoU00uaXNT
TShTTSkpOworICBhc3NlcnQoIVNNLmlzU00obmV3IFNNKSAmJiAhU00uaXNTTShTRikgJiYgIVNN
LmlzU00oe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gU00uaXNTTSgzKSk7CisK
KyAgYXNzZXJ0KEcuaXNHKG5ldyBHKSk7CisgIGFzc2VydCghRy5pc0coRykgJiYgIUcuaXNHKG5l
dyBGKSAmJiAhRy5pc0coe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gRy5pc0co
MykpOworICBhc3NlcnQoU0cuaXNTRyhTRykpOworICBhc3NlcnQoIVNHLmlzU0cobmV3IFNHKSAm
JiAhU0cuaXNTRyhTRikgJiYgIVNHLmlzU0coe30pKTsKKyAgc2hvdWxkVGhyb3dUeXBlRXJyb3Io
KCkgPT4gU0cuaXNTRygzKSk7CisKKyAgYXNzZXJ0KFMuaXNTKG5ldyBTKSk7CisgIGFzc2VydCgh
Uy5pc1MoUykgJiYgIVMuaXNTKG5ldyBGKSAmJiAhUy5pc1Moe30pKTsKKyAgc2hvdWxkVGhyb3dU
eXBlRXJyb3IoKCkgPT4gUy5pc1MoMykpOworICBhc3NlcnQoU1MuaXNTUyhTUykpOworICBhc3Nl
cnQoIVNTLmlzU1MobmV3IFNTKSAmJiAhU1MuaXNTUyhTRikgJiYgIVNTLmlzU1Moe30pKTsKKyAg
c2hvdWxkVGhyb3dUeXBlRXJyb3IoKCkgPT4gU1MuaXNTUygzKSk7Cit9Citub0lubGluZSh0ZXN0
KTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQorICB0ZXN0KCk7CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvY29uZmln
LnlhbWwKaW5kZXggYTZiYTJhYjM4YzE3MTIwMWJjYmE5NzVkMjcxODY3NzYzNDZkNGY4MS4uNzc1
NDJjZDM4NDBkNTUyYjI5OWQyOTkwZDM1YjljNDBiNGM2Mzk3OCAxMDA2NDQKLS0tIGEvSlNUZXN0
cy90ZXN0MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbApA
QCAtNSw2ICs1LDcgQEAgZmxhZ3M6CiAgIEZpbmFsaXphdGlvblJlZ2lzdHJ5OiB1c2VXZWFrUmVm
cwogICBjbGFzcy1maWVsZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZUNsYXNzRmllbGRzCiAgIGNsYXNz
LW1ldGhvZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZU1ldGhvZHMKKyAgY2xhc3MtZmllbGRzLXByaXZh
dGUtaW46IHVzZVByaXZhdGVJbgogICBjbGFzcy1zdGF0aWMtZmllbGRzLXB1YmxpYzogdXNlUHVi
bGljU3RhdGljQ2xhc3NGaWVsZHMKICAgY2xhc3Mtc3RhdGljLWZpZWxkcy1wcml2YXRlOiB1c2VQ
cml2YXRlU3RhdGljQ2xhc3NGaWVsZHMKICAgY2xhc3Mtc3RhdGljLW1ldGhvZHMtcHJpdmF0ZTog
dXNlUHJpdmF0ZU1ldGhvZHMKQEAgLTIzLDggKzI0LDYgQEAgc2tpcDoKICAgICAtIHJlZ2V4cC1s
b29rYmVoaW5kCiAgICAgLSBsZWdhY3ktcmVnZXhwCiAgICAgLSBjbGVhbnVwU29tZQotICAgICMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTA5MwotICAgIC0gY2xh
c3MtZmllbGRzLXByaXZhdGUtaW4KICAgcGF0aHM6CiAgIGZpbGVzOgogICAgICMgU2xpZ2h0bHkg
ZGlmZmVyZW50IGZvcm1hdHRpbmcuIFdlIHNob3VsZCB1cGRhdGUgdGVzdDI2MiBzaWRlLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>