<?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>122339</bug_id>
          
          <creation_ts>2013-10-04 12:29:59 -0700</creation_ts>
          <short_desc>Support for-of syntax</short_desc>
          <delta_ts>2013-10-04 13:34:00 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>936310</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-04 12:29:59 -0700</bug_when>
    <thetext>Support for-of syntax</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936313</commentid>
    <comment_count>1</comment_count>
      <attachid>213388</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-04 12:36:36 -0700</bug_when>
    <thetext>Created attachment 213388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936327</commentid>
    <comment_count>2</comment_count>
      <attachid>213388</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-04 13:03:40 -0700</bug_when>
    <thetext>Comment on attachment 213388
Patch

Attachment 213388 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3286006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936328</commentid>
    <comment_count>3</comment_count>
      <attachid>213388</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-10-04 13:10:20 -0700</bug_when>
    <thetext>Comment on attachment 213388
Patch

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

r=me

Please add a few tests we talked about.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1791
&gt; +    bool optimizedForinAccess = false;

Please remove this.

&gt; Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:1826
&gt; +    if (optimizedForinAccess)
&gt; +        generator.popOptimisedForIn();

Please remove this. It&apos;s dead in the for-of case.

&gt; Source/JavaScriptCore/runtime/ArrayIteratorPrototype.cpp:81
&gt; -    
&gt; +

Please revert this accidental whitespace change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936347</commentid>
    <comment_count>4</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-04 13:34:00 -0700</bug_when>
    <thetext>Committed r156910: &lt;http://trac.webkit.org/changeset/156910&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213388</attachid>
            <date>2013-10-04 12:36:36 -0700</date>
            <delta_ts>2013-10-04 13:10:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122339-20131004123635.patch</filename>
            <type>text/plain</type>
            <size>42864</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2ODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
ODY0ZWE3Y2Q0ZTdjOGRhMWI2YjRkZTJjMjMxZGI4OTNjNTE0OGFlLi4xY2I1NDFmNTBiMTEwMTMz
ODg3NWQzYjg0M2YzMmIyNDQ4ZGRlMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxMy0xMC0wNCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFN1cHBvcnQgZm9yLW9mIHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGZvci1vZiBzeW50YXggdG8g
SlNDLiAgQXMgcGFydCBvZiBkb2luZyB0aGlzIEkgaGFkIHRvIG1ha2UKKyAgICAgICAgdXMgc3Vw
cG9ydCB1bmlxdWUgZW1wdHkgc3RyaW5ncyBhcyBpZGVudGlmaWVycy4gIEluIGEgZm9sbG93IG9u
IHBhdGNoIGknbQorICAgICAgICBnb2luZyB0byByZW1vdmUgdGhlIGRpc3RpbmN0aW9uIGVudGly
ZWx5IGFzIGl0J3MgcHVyZWx5IGEgY29tcGxpY2F0aW5nCisgICAgICAgIHNlcGFyYXRpb24uCisK
KyAgICAgICAgT3RoZXJ3aXNlIHRoZSBsb2dpYyBoZXJlIGlzIGZhaXJseSBzZWxmLWV4cGxhbmF0
b3J5LgorCisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmFkZENvbnN0YW50KToKKyAgICAgICAgKEpT
Qzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEFyZ3VtZW50czo6Q2FsbEFyZ3VtZW50cyk6CisgICAg
ICAgIChKU0M6OkZvck9mTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAgICAgKiBqaXQvSklUT3Bl
cmF0aW9ucy5jcHA6CisgICAgICAgICogcGFyc2VyL0FTVEJ1aWxkZXIuaDoKKyAgICAgICAgKEpT
Qzo6QVNUQnVpbGRlcjo6Y3JlYXRlRm9yT2ZMb29wKToKKyAgICAgICAgKiBwYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oOgorICAgICAgICAoSlNDOjpFbnVtZXJhdGlvbk5vZGU6OkVudW1lcmF0aW9u
Tm9kZSk6CisgICAgICAgIChKU0M6OkZvckluTm9kZTo6Rm9ySW5Ob2RlKToKKyAgICAgICAgKEpT
Qzo6Rm9yT2ZOb2RlOjpGb3JPZk5vZGUpOgorICAgICAgICAqIHBhcnNlci9Ob2Rlcy5oOgorICAg
ICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjo6OnBhcnNlVmFyRGVjbGFy
YXRpb25MaXN0KToKKyAgICAgICAgKEpTQzo6OjpwYXJzZUZvclN0YXRlbWVudCk6CisgICAgICAg
ICogcGFyc2VyL1BhcnNlci5oOgorICAgICAgICAoSlNDOjpQYXJzZXI6Omlzb2ZUb2tlbik6Cisg
ICAgICAgICogcGFyc2VyL1N5bnRheENoZWNrZXIuaDoKKyAgICAgICAgKEpTQzo6U3ludGF4Q2hl
Y2tlcjo6Y3JlYXRlRm9yT2ZMb29wKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5SXRlcmF0b3JQ
cm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OmFycmF5SXRlcmF0b3JQcm90b3R5cGVJdGVyYXRl
KToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
QXJyYXlQcm90b3R5cGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkFycmF5UHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5oOgorICAg
ICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuY3BwOgorICAgICAgICAoSlNDOjpDb21t
b25JZGVudGlmaWVyczo6Q29tbW9uSWRlbnRpZmllcnMpOgorICAgICAgICAqIHJ1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaDoKKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoKKyAgICAg
ICAgKEpTQzo6SWRlbnRpZmllcjo6ZnJvbSk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVl
LmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6ZHVtcEluQ29udGV4dCk6CisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0
OjpyZXNldCk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTT2JqZWN0OjpwdXREaXJlY3ROYXRpdmVGdW5jdGlvbik6CisgICAgICAgICogcnVudGltZS9Q
cml2YXRlTmFtZS5oOgorICAgICAgICAoSlNDOjpQcml2YXRlTmFtZTo6UHJpdmF0ZU5hbWUpOgor
ICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlOYW1lLmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5
TmFtZTo6UHJvcGVydHlOYW1lKToKKwogMjAxMy0xMC0wMyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxn
aGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2luXSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5k
ZXggMDgxOGIxZGMxOTc0Njc4MWQ4OGVmZGYxYTEyMDhiNmNhZjQ1MDY5NC4uOGEyY2ZjOGQ2MDZm
MjQzYWMzOTU5NDc1NjBiZGViYTZkYjAwNTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0x
MC0wNCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQg
Zm9yLW9mIHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIyMzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXBkYXRlIGFzc2VydGlvbnMgYW5kIGFkZCBhIGhlbHBlciBmdW5jdGlvbiB0byBTdHJp
bmdJbXBsCisgICAgICAgIHRvIHNhdmUgcmVwZWF0ZWQgdW5pcXVlIG9yIGlkZW50aWZpZXIgY2Fs
bHMuCisKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgIChXVEY6OlN0
cmluZ0ltcGw6OmlzSWRlbnRpZmllck9yVW5pcXVlKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1w
bDo6c2V0SXNJZGVudGlmaWVyKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6c2V0SXNBdG9t
aWMpOgorCiAyMDEzLTEwLTAyICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaW5dIFVwZGF0ZSBzb2x1dGlvbnMgYW5kIHByb2plY3RzIHRvIHN1cHBvcnQg
NjQtYml0IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCAyMTI1YzRmZmVjNjk4ODVhODJlNzY1
NTlkYThkOWFiZjQyNDBmMDQ2Li5iNGE1NWU3MjJmMGM0NGU0ZjYyOTI3OTk3YzUxMTllYTg5ZGU1
ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtOTU3LDcgKzk1Nyw3IEBAIHVuc2lnbmVkIEJ5dGVj
b2RlR2VuZXJhdG9yOjphZGRDb25zdGFudChjb25zdCBJZGVudGlmaWVyJiBpZGVudCkKICAgICBT
dHJpbmdJbXBsKiByZXAgPSBpZGVudC5pbXBsKCk7CiAgICAgSWRlbnRpZmllck1hcDo6QWRkUmVz
dWx0IHJlc3VsdCA9IG1faWRlbnRpZmllck1hcC5hZGQocmVwLCBtX2NvZGVCbG9jay0+bnVtYmVy
T2ZJZGVudGlmaWVycygpKTsKICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgIG1f
Y29kZUJsb2NrLT5hZGRJZGVudGlmaWVyKElkZW50aWZpZXIobV92bSwgcmVwKSk7CisgICAgICAg
IG1fY29kZUJsb2NrLT5hZGRJZGVudGlmaWVyKGlkZW50KTsKIAogICAgIHJldHVybiByZXN1bHQu
aXRlcmF0b3ItPnZhbHVlOwogfQpAQCAtMTY5Myw5ICsxNjkzLDExIEBAIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpCiAKICAgICAvLyBHZW5lcmF0ZSBjb2RlIGZvciBhcmd1bWVudHMuCiAgICAgdW5z
aWduZWQgYXJndW1lbnQgPSAwOwotICAgIGZvciAoQXJndW1lbnRMaXN0Tm9kZSogbiA9IGNhbGxB
cmd1bWVudHMuYXJndW1lbnRzTm9kZSgpLT5tX2xpc3ROb2RlOyBuOyBuID0gbi0+bV9uZXh0KQot
ICAgICAgICBlbWl0Tm9kZShjYWxsQXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoYXJndW1lbnQr
KyksIG4pOwotCisgICAgaWYgKGNhbGxBcmd1bWVudHMuYXJndW1lbnRzTm9kZSgpKSB7CisgICAg
ICAgIGZvciAoQXJndW1lbnRMaXN0Tm9kZSogbiA9IGNhbGxBcmd1bWVudHMuYXJndW1lbnRzTm9k
ZSgpLT5tX2xpc3ROb2RlOyBuOyBuID0gbi0+bV9uZXh0KQorICAgICAgICAgICAgZW1pdE5vZGUo
Y2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKGFyZ3VtZW50KyspLCBuKTsKKyAgICB9Cisg
ICAgCiAgICAgLy8gUmVzZXJ2ZSBzcGFjZSBmb3IgY2FsbCBmcmFtZS4KICAgICBWZWN0b3I8UmVm
UHRyPFJlZ2lzdGVySUQ+LCBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplLCBVbnNhZmVWZWN0
b3JPdmVyZmxvdz4gY2FsbEZyYW1lOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSlNTdGFjazo6
Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IGZjYzE3ZGYxNDQ2OGM2
YjZjYzZkYjNhNmM4YTI2MzEzZjcyZjBmNDguLjM4YjkyOTRhNjM0OGRkOTAxNjZlZWU4NzUxZDlh
MTM3ZjdjZmVlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTYyLDcgKzYyLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICBjbGFzcyBDYWxsQXJndW1lbnRzIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENh
bGxBcmd1bWVudHMoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgQXJndW1lbnRzTm9kZSog
YXJndW1lbnRzTm9kZSk7CisgICAgICAgIENhbGxBcmd1bWVudHMoQnl0ZWNvZGVHZW5lcmF0b3Im
LCBBcmd1bWVudHNOb2RlKiwgdW5zaWduZWQgYWRkaXRpb25hbEFyZ3VtZW50cyA9IDApOwogCiAg
ICAgICAgIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlcigpIHsgcmV0dXJuIG1fYXJndlswXS5nZXQo
KTsgfQogICAgICAgICBSZWdpc3RlcklEKiBhcmd1bWVudFJlZ2lzdGVyKHVuc2lnbmVkIGkpIHsg
cmV0dXJuIG1fYXJndltpICsgMV0uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCA3NDEwMjE2YmEyMDI2YWMz
MGJmZmRkMjA2M2NjNzA0NmZhZmViZGE5Li40ZDJjN2JlZWU0MzczOTVkZDJlMzFhYzE0N2ViZGQ0
YjEyOTQ1Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC0zNzksMTMgKzM3OSwxMyBAQCBSZWdpc3RlcklEKiBOZXdF
eHByTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lz
dGVySUQqCiAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Q29uc3RydWN0KHJldHVyblZhbHVlLmdl
dCgpLCBmdW5jLmdldCgpLCBleHBlY3RlZEZ1bmN0aW9uLCBjYWxsQXJndW1lbnRzLCBkaXZvdCgp
LCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogfQogCi1pbmxpbmUgQ2FsbEFyZ3VtZW50czo6
Q2FsbEFyZ3VtZW50cyhCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBBcmd1bWVudHNOb2Rl
KiBhcmd1bWVudHNOb2RlKQoraW5saW5lIENhbGxBcmd1bWVudHM6OkNhbGxBcmd1bWVudHMoQnl0
ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgQXJndW1lbnRzTm9kZSogYXJndW1lbnRzTm9kZSwg
dW5zaWduZWQgYWRkaXRpb25hbEFyZ3VtZW50cykKICAgICA6IG1fYXJndW1lbnRzTm9kZShhcmd1
bWVudHNOb2RlKQogewogICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygp
KQogICAgICAgICBtX3Byb2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5
KCk7CiAKLSAgICBzaXplX3QgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSAxOyAvLyAndGhp
cycgcmVnaXN0ZXIuCisgICAgc2l6ZV90IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID0gMSAr
IGFkZGl0aW9uYWxBcmd1bWVudHM7IC8vICd0aGlzJyByZWdpc3Rlci4KICAgICBpZiAoYXJndW1l
bnRzTm9kZSkgewogICAgICAgICBmb3IgKEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBhcmd1bWVu
dHNOb2RlLT5tX2xpc3ROb2RlOyBub2RlOyBub2RlID0gbm9kZS0+bV9uZXh0KQogICAgICAgICAg
ICAgKythcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsKQEAgLTE3NTksNiArMTc1OSw4NSBAQCB2
b2lkIEZvckluTm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3Is
IFJlZ2lzdGVySUQqIGRzdCkKICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHNjb3BlLT5icmVha1Rh
cmdldCgpKTsKIH0KIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZvck9mTm9k
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordm9pZCBGb3JPZk5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBk
c3QpCit7CisgICAgTGFiZWxTY29wZVB0ciBzY29wZSA9IGdlbmVyYXRvci5uZXdMYWJlbFNjb3Bl
KExhYmVsU2NvcGU6Okxvb3ApOworICAgIAorICAgIGlmICghbV9sZXhwci0+aXNMb2NhdGlvbigp
KSB7CisgICAgICAgIGVtaXRUaHJvd1JlZmVyZW5jZUVycm9yKGdlbmVyYXRvciwgIkxlZnQgc2lk
ZSBvZiBmb3Itb2Ygc3RhdGVtZW50IGlzIG5vdCBhIHJlZmVyZW5jZS4iKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAKKyAgICBnZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0
ZVN0YXRlbWVudCwgZmlyc3RMaW5lKCksIHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgp
KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gc3ViamVjdCA9IGdlbmVyYXRvci5lbWl0Tm9kZSht
X2V4cHIpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiBpdGVyYXRvciA9IGdlbmVyYXRvci5lbWl0
R2V0QnlJZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHN1YmplY3QuZ2V0KCksIGdlbmVyYXRv
ci5wcm9wZXJ0eU5hbWVzKCkuaXRlcmF0b3JQcml2YXRlTmFtZSk7CisgICAgeworICAgICAgICBD
YWxsQXJndW1lbnRzIGFyZ3MoZ2VuZXJhdG9yLCAwKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRN
b3ZlKGFyZ3MudGhpc1JlZ2lzdGVyKCksIHN1YmplY3QuZ2V0KCkpOworICAgICAgICBnZW5lcmF0
b3IuZW1pdENhbGwoaXRlcmF0b3IuZ2V0KCksIGl0ZXJhdG9yLmdldCgpLCBOb0V4cGVjdGVkRnVu
Y3Rpb24sIGFyZ3MsIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgfQor
ICAgIFJlZlB0cjxSZWdpc3RlcklEPiBpdGVyYXRvck5leHQgPSBnZW5lcmF0b3IuZW1pdEdldEJ5
SWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBpdGVyYXRvci5nZXQoKSwgZ2VuZXJhdG9yLnBy
b3BlcnR5TmFtZXMoKS5uZXh0KTsKKyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdmFsdWUgPSBnZW5l
cmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgZ2VuZXJhdG9yLmVtaXRMb2FkKHZhbHVlLmdldCgp
LCBqc1VuZGVmaW5lZCgpKTsKKyAgICAKKyAgICBnZW5lcmF0b3IuZW1pdEp1bXAoc2NvcGUtPmNv
bnRpbnVlVGFyZ2V0KCkpOworICAgIAorICAgIFJlZlB0cjxMYWJlbD4gbG9vcFN0YXJ0ID0gZ2Vu
ZXJhdG9yLm5ld0xhYmVsKCk7CisgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChsb29wU3RhcnQuZ2V0
KCkpOworICAgIGdlbmVyYXRvci5lbWl0TG9vcEhpbnQoKTsKKyAgICAKKyAgICBib29sIG9wdGlt
aXplZEZvcmluQWNjZXNzID0gZmFsc2U7CisgICAgaWYgKG1fbGV4cHItPmlzUmVzb2x2ZU5vZGUo
KSkgeworICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudCA9IHN0YXRpY19jYXN0PFJlc29s
dmVOb2RlKj4obV9sZXhwciktPmlkZW50aWZpZXIoKTsKKyAgICAgICAgaWYgKExvY2FsIGxvY2Fs
ID0gZ2VuZXJhdG9yLmxvY2FsKGlkZW50KSkKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TW92
ZShsb2NhbC5nZXQoKSwgdmFsdWUuZ2V0KCkpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IGlmIChnZW5lcmF0b3IuaXNTdHJpY3RNb2RlKCkpCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9y
LmVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwor
ICAgICAgICAgICAgUmVnaXN0ZXJJRCogc2NvcGUgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVTY29w
ZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGlkZW50KTsKKyAgICAgICAgICAgIGdlbmVyYXRv
ci5lbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsK
KyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0VG9TY29wZShzY29wZSwgaWRlbnQsIHZhbHVl
LmdldCgpLCBnZW5lcmF0b3IuaXNTdHJpY3RNb2RlKCkgPyBUaHJvd0lmTm90Rm91bmQgOiBEb05v
dFRocm93SWZOb3RGb3VuZCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKG1fbGV4cHItPmlz
RG90QWNjZXNzb3JOb2RlKCkpIHsKKyAgICAgICAgRG90QWNjZXNzb3JOb2RlKiBhc3NpZ25Ob2Rl
ID0gc3RhdGljX2Nhc3Q8RG90QWNjZXNzb3JOb2RlKj4obV9sZXhwcik7CisgICAgICAgIGNvbnN0
IElkZW50aWZpZXImIGlkZW50ID0gYXNzaWduTm9kZS0+aWRlbnRpZmllcigpOworICAgICAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gYmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShhc3NpZ25Ob2RlLT5i
YXNlKCkpOworICAgICAgICAKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhh
c3NpZ25Ob2RlLT5kaXZvdCgpLCBhc3NpZ25Ob2RlLT5kaXZvdFN0YXJ0KCksIGFzc2lnbk5vZGUt
PmRpdm90RW5kKCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQoYmFzZS5nZXQoKSwg
aWRlbnQsIHZhbHVlLmdldCgpKTsKKyAgICB9IGVsc2UgaWYgKG1fbGV4cHItPmlzQnJhY2tldEFj
Y2Vzc29yTm9kZSgpKSB7CisgICAgICAgIEJyYWNrZXRBY2Nlc3Nvck5vZGUqIGFzc2lnbk5vZGUg
PSBzdGF0aWNfY2FzdDxCcmFja2V0QWNjZXNzb3JOb2RlKj4obV9sZXhwcik7CisgICAgICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXROb2RlKGFzc2lnbk5vZGUtPmJh
c2UoKSk7CisgICAgICAgIFJlZ2lzdGVySUQqIHN1YnNjcmlwdCA9IGdlbmVyYXRvci5lbWl0Tm9k
ZShhc3NpZ25Ob2RlLT5zdWJzY3JpcHQoKSk7CisgICAgICAgIAorICAgICAgICBnZW5lcmF0b3Iu
ZW1pdEV4cHJlc3Npb25JbmZvKGFzc2lnbk5vZGUtPmRpdm90KCksIGFzc2lnbk5vZGUtPmRpdm90
U3RhcnQoKSwgYXNzaWduTm9kZS0+ZGl2b3RFbmQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0
UHV0QnlWYWwoYmFzZS5nZXQoKSwgc3Vic2NyaXB0LCB2YWx1ZS5nZXQoKSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKG1fbGV4cHItPmlzRGVjb25zdHJ1Y3Rpb25Ob2RlKCkpOworICAg
ICAgICBEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnROb2RlKiBhc3NpZ25Ob2RlID0gc3RhdGljX2Nh
c3Q8RGVjb25zdHJ1Y3RpbmdBc3NpZ25tZW50Tm9kZSo+KG1fbGV4cHIpOworICAgICAgICBhc3Np
Z25Ob2RlLT5iaW5kaW5ncygpLT5lbWl0Qnl0ZWNvZGUoZ2VuZXJhdG9yLCB2YWx1ZS5nZXQoKSk7
CisgICAgfQorICAgIAorICAgIGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fc3RhdGVtZW50KTsK
KyAgICAKKyAgICBpZiAob3B0aW1pemVkRm9yaW5BY2Nlc3MpCisgICAgICAgIGdlbmVyYXRvci5w
b3BPcHRpbWlzZWRGb3JJbigpOworICAgIAorICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc2NvcGUt
PmNvbnRpbnVlVGFyZ2V0KCkpOworICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXN1bHQgPSBnZW5l
cmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgQ2FsbEFyZ3VtZW50cyBuZXh0QXJndW1lbnRzKGdl
bmVyYXRvciwgMCwgMSk7CisgICAgZ2VuZXJhdG9yLmVtaXRNb3ZlKG5leHRBcmd1bWVudHMudGhp
c1JlZ2lzdGVyKCksIGl0ZXJhdG9yLmdldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdE1vdmUobmV4
dEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApLCB2YWx1ZS5nZXQoKSk7CisgICAgZ2VuZXJh
dG9yLmVtaXRDYWxsKHJlc3VsdC5nZXQoKSwgaXRlcmF0b3JOZXh0LmdldCgpLCBOb0V4cGVjdGVk
RnVuY3Rpb24sIG5leHRBcmd1bWVudHMsIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQo
KSk7CisgICAgZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKHZhbHVlLmdldCgpLCByZXN1bHQuZ2V0KCks
IGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkudmFsdWUpOworICAgIFJlZlB0cjxSZWdpc3RlcklE
PiBkb25lID0gZ2VuZXJhdG9yLmVtaXRHZXRCeUlkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwg
cmVzdWx0LmdldCgpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLmRvbmUpOworICAgIGdlbmVy
YXRvci5lbWl0SnVtcElmRmFsc2UoZG9uZS5nZXQoKSwgbG9vcFN0YXJ0LmdldCgpKTsKKyAgICBn
ZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsRXhlY3V0ZVN0YXRlbWVudCwgZmlyc3RMaW5lKCks
IHN0YXJ0T2Zmc2V0KCksIGxpbmVTdGFydE9mZnNldCgpKTsKKyAgICBnZW5lcmF0b3IuZW1pdExh
YmVsKHNjb3BlLT5icmVha1RhcmdldCgpKTsKK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIENvbnRpbnVlTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAogTGFiZWwqIENvbnRpbnVlTm9kZTo6dHJpdmlhbFRhcmdldChCeXRlY29kZUdlbmVyYXRvciYg
Z2VuZXJhdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAK
aW5kZXggZTFkNzhiYWYyNjI0ZjZmMGZmYjVmYjc3Zjg3OTAwNTVlYzNlMzUzZi4uNDQ3ZTJhZGEx
MWQwN2NlZTY1ZDliOTFlYjlmOWQ2NGI0ZWRiNTAxYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC03Myw4ICs3Myw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZE9wdGltaXplV2l0aFJldHVybkFkZHJlc3Mo
RXhlY1N0YXRlCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7Ci0KLSAgICBJZGVudGlmaWVyIGlkZW50KHZtLCB1
aWQpOworICAgIElkZW50aWZpZXIgaWRlbnQgPSB1aWQtPmlzRW1wdHlVbmlxdWUoKSA/IElkZW50
aWZpZXI6OmZyb20oUHJpdmF0ZU5hbWUodWlkKSkgOiBJZGVudGlmaWVyKHZtLCB1aWQpOwogICAg
IFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9IGV4ZWMtPmNvZGVCbG9jaygpLT5nZXRTdHVi
SW5mbyhyZXR1cm5BZGRyZXNzKTsKICAgICBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUgPSBzdGF0aWNf
Y2FzdDxBY2Nlc3NUeXBlPihzdHViSW5mby5hY2Nlc3NUeXBlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9BU1RCdWlsZGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAppbmRleCBhMzdjZGM3NmE5OWQ0ODEwZjNmMWU0NDk2
ZGY3OWM1N2M4Yzk5MGQ0Li40OGE4M2VjMjI4NzcxNjE1ZjdlYjQ2NmU3YmZjZjQxOGMwN2UwN2Uw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL0FTVEJ1aWxkZXIuaApAQCAtMzgwLDYg
KzM4MCwyMiBAQCBwdWJsaWM6CiAgICAgICAgIHNldEV4Y2VwdGlvbkxvY2F0aW9uKHJlc3VsdCwg
ZVN0YXJ0LCBlRGl2b3QsIGVFbmQpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KKyAg
ICAKKyAgICBTdGF0ZW1lbnROb2RlKiBjcmVhdGVGb3JPZkxvb3AoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGxocywgRXhwcmVzc2lvbk5vZGUqIGl0ZXIs
IFN0YXRlbWVudE5vZGUqIHN0YXRlbWVudHMsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlU3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlRGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlRW5k
LCBpbnQgc3RhcnQsIGludCBlbmQpCisgICAgeworICAgICAgICBGb3JPZk5vZGUqIHJlc3VsdCA9
IG5ldyAobV92bSkgRm9yT2ZOb2RlKGxvY2F0aW9uLCBsaHMsIGl0ZXIsIHN0YXRlbWVudHMpOwor
ICAgICAgICByZXN1bHQtPnNldExvYyhzdGFydCwgZW5kLCBsb2NhdGlvbi5zdGFydE9mZnNldCwg
bG9jYXRpb24ubGluZVN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgc2V0RXhjZXB0aW9uTG9jYXRpb24o
cmVzdWx0LCBlU3RhcnQsIGVEaXZvdCwgZUVuZCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQorICAgIAorICAgIFN0YXRlbWVudE5vZGUqIGNyZWF0ZUZvck9mTG9vcChjb25zdCBKU1Rv
a2VuTG9jYXRpb24mIGxvY2F0aW9uLCBQYXNzUmVmUHRyPERlY29uc3RydWN0aW9uUGF0dGVybk5v
ZGU+IHBhdHRlcm4sIEV4cHJlc3Npb25Ob2RlKiBpdGVyLCBTdGF0ZW1lbnROb2RlKiBzdGF0ZW1l
bnRzLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZVN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZURpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZUVuZCwgaW50IHN0YXJ0LCBpbnQgZW5kKQor
ICAgIHsKKyAgICAgICAgRm9yT2ZOb2RlKiByZXN1bHQgPSBuZXcgKG1fdm0pIEZvck9mTm9kZSht
X3ZtLCBsb2NhdGlvbiwgcGF0dGVybi5nZXQoKSwgaXRlciwgc3RhdGVtZW50cyk7CisgICAgICAg
IHJlc3VsdC0+c2V0TG9jKHN0YXJ0LCBlbmQsIGxvY2F0aW9uLnN0YXJ0T2Zmc2V0LCBsb2NhdGlv
bi5saW5lU3RhcnRPZmZzZXQpOworICAgICAgICBzZXRFeGNlcHRpb25Mb2NhdGlvbihyZXN1bHQs
IGVTdGFydCwgZURpdm90LCBlRW5kKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAK
ICAgICBTdGF0ZW1lbnROb2RlKiBjcmVhdGVFbXB0eVN0YXRlbWVudChjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uKSB7IHJldHVybiBuZXcgKG1fdm0pIEVtcHR5U3RhdGVtZW50Tm9kZShs
b2NhdGlvbik7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2RlQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25z
dHJ1Y3RvcnMuaAppbmRleCAwY2UyMGViMzVjNWZkMzQ3YWYzN2YwMzExYmY2MjJkZjU4NmI1M2Uz
Li44NjNhYTlmN2MyMWQ5MGI5N2QyNWU5ZmU2Y2EyODhhYTNiNDc5MWY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVDb25zdHJ1Y3RvcnMuaApAQCAtODExLDcgKzgx
MSw3IEBAIGlubGluZSBSZXNvbHZlTm9kZTo6UmVzb2x2ZU5vZGUoY29uc3QgSlNUb2tlbkxvY2F0
aW9uJiBsb2NhdGlvbiwgY29uc3QgSWRlbnRpZmllCiAgICAgewogICAgIH0KIAotICAgIGlubGlu
ZSBGb3JJbk5vZGU6OkZvckluTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBF
eHByZXNzaW9uTm9kZSogbCwgRXhwcmVzc2lvbk5vZGUqIGV4cHIsIFN0YXRlbWVudE5vZGUqIHN0
YXRlbWVudCkKKyAgICBpbmxpbmUgRW51bWVyYXRpb25Ob2RlOjpFbnVtZXJhdGlvbk5vZGUoY29u
c3QgSlNUb2tlbkxvY2F0aW9uJiBsb2NhdGlvbiwgRXhwcmVzc2lvbk5vZGUqIGwsIEV4cHJlc3Np
b25Ob2RlKiBleHByLCBTdGF0ZW1lbnROb2RlKiBzdGF0ZW1lbnQpCiAgICAgICAgIDogU3RhdGVt
ZW50Tm9kZShsb2NhdGlvbikKICAgICAgICAgLCBtX2xleHByKGwpCiAgICAgICAgICwgbV9leHBy
KGV4cHIpCkBAIC04MjAsNyArODIwLDcgQEAgaW5saW5lIFJlc29sdmVOb2RlOjpSZXNvbHZlTm9k
ZShjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBjb25zdCBJZGVudGlmaWUKICAgICAg
ICAgQVNTRVJUKGwpOwogICAgIH0KICAgICAKLSAgICBpbmxpbmUgRm9ySW5Ob2RlOjpGb3JJbk5v
ZGUoVk0qIHZtLCBjb25zdCBKU1Rva2VuTG9jYXRpb24mIGxvY2F0aW9uLCBEZWNvbnN0cnVjdGlv
blBhdHRlcm5Ob2RlKiBwYXR0ZXJuLCBFeHByZXNzaW9uTm9kZSogZXhwciwgU3RhdGVtZW50Tm9k
ZSogc3RhdGVtZW50KQorICAgIGlubGluZSBFbnVtZXJhdGlvbk5vZGU6OkVudW1lcmF0aW9uTm9k
ZShWTSogdm0sIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIERlY29uc3RydWN0aW9u
UGF0dGVybk5vZGUqIHBhdHRlcm4sIEV4cHJlc3Npb25Ob2RlKiBleHByLCBTdGF0ZW1lbnROb2Rl
KiBzdGF0ZW1lbnQpCiAgICAgICAgIDogU3RhdGVtZW50Tm9kZShsb2NhdGlvbikKICAgICAgICAg
LCBtX2xleHByKG5ldyAodm0pIERlY29uc3RydWN0aW5nQXNzaWdubWVudE5vZGUobG9jYXRpb24s
IHBhdHRlcm4sIDApKQogICAgICAgICAsIG1fZXhwcihleHByKQpAQCAtODI5LDYgKzgyOSwyNiBA
QCBpbmxpbmUgUmVzb2x2ZU5vZGU6OlJlc29sdmVOb2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYg
bG9jYXRpb24sIGNvbnN0IElkZW50aWZpZQogICAgICAgICBBU1NFUlQocGF0dGVybik7CiAgICAg
fQogICAgIAorICAgIGlubGluZSBGb3JJbk5vZGU6OkZvckluTm9kZShjb25zdCBKU1Rva2VuTG9j
YXRpb24mIGxvY2F0aW9uLCBFeHByZXNzaW9uTm9kZSogbCwgRXhwcmVzc2lvbk5vZGUqIGV4cHIs
IFN0YXRlbWVudE5vZGUqIHN0YXRlbWVudCkKKyAgICAgICAgOiBFbnVtZXJhdGlvbk5vZGUobG9j
YXRpb24sIGwsIGV4cHIsIHN0YXRlbWVudCkKKyAgICB7CisgICAgfQorICAgIAorICAgIGlubGlu
ZSBGb3JJbk5vZGU6OkZvckluTm9kZShWTSogdm0sIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9j
YXRpb24sIERlY29uc3RydWN0aW9uUGF0dGVybk5vZGUqIHBhdHRlcm4sIEV4cHJlc3Npb25Ob2Rl
KiBleHByLCBTdGF0ZW1lbnROb2RlKiBzdGF0ZW1lbnQpCisgICAgICAgIDogRW51bWVyYXRpb25O
b2RlKHZtLCBsb2NhdGlvbiwgcGF0dGVybiwgZXhwciwgc3RhdGVtZW50KQorICAgIHsKKyAgICB9
CisgICAgCisgICAgaW5saW5lIEZvck9mTm9kZTo6Rm9yT2ZOb2RlKGNvbnN0IEpTVG9rZW5Mb2Nh
dGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBsLCBFeHByZXNzaW9uTm9kZSogZXhwciwg
U3RhdGVtZW50Tm9kZSogc3RhdGVtZW50KQorICAgICAgICA6IEVudW1lcmF0aW9uTm9kZShsb2Nh
dGlvbiwgbCwgZXhwciwgc3RhdGVtZW50KQorICAgIHsKKyAgICB9CisgICAgCisgICAgaW5saW5l
IEZvck9mTm9kZTo6Rm9yT2ZOb2RlKFZNKiB2bSwgY29uc3QgSlNUb2tlbkxvY2F0aW9uJiBsb2Nh
dGlvbiwgRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZSogcGF0dGVybiwgRXhwcmVzc2lvbk5vZGUq
IGV4cHIsIFN0YXRlbWVudE5vZGUqIHN0YXRlbWVudCkKKyAgICAgICAgOiBFbnVtZXJhdGlvbk5v
ZGUodm0sIGxvY2F0aW9uLCBwYXR0ZXJuLCBleHByLCBzdGF0ZW1lbnQpCisgICAgeworICAgIH0K
KyAgICAKICAgICBpbmxpbmUgRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZTo6RGVjb25zdHJ1Y3Rp
b25QYXR0ZXJuTm9kZShWTSopCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvTm9kZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
Tm9kZXMuaAppbmRleCBlNzAyZTNmMjViMzRhOWEyOTQxYThkNTI5YTdhMmUwOTI2MzcyZjliLi41
ZDQ0MTZiY2Y0Yzk3NDljNmY5OWFlMDQwNzlhMTA4ZGRkYjlmZjhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL05vZGVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9Ob2Rlcy5oCkBAIC0xMjQyLDE4ICsxMjQyLDM0IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgIH07CiAgICAgCiAgICAgY2xhc3MgRGVjb25zdHJ1Y3Rpb25QYXR0ZXJuTm9kZTsKLQot
ICAgIGNsYXNzIEZvckluTm9kZSA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlLCBwdWJsaWMgVGhyb3dh
YmxlRXhwcmVzc2lvbkRhdGEgeworICAgIAorICAgIGNsYXNzIEVudW1lcmF0aW9uTm9kZSA6IHB1
YmxpYyBTdGF0ZW1lbnROb2RlLCBwdWJsaWMgVGhyb3dhYmxlRXhwcmVzc2lvbkRhdGEgeworICAg
IHB1YmxpYzoKKyAgICAgICAgRW51bWVyYXRpb25Ob2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYs
IEV4cHJlc3Npb25Ob2RlKiwgRXhwcmVzc2lvbk5vZGUqLCBTdGF0ZW1lbnROb2RlKik7CisgICAg
ICAgIEVudW1lcmF0aW9uTm9kZShWTSosIGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYsIERlY29uc3Ry
dWN0aW9uUGF0dGVybk5vZGUqLCBFeHByZXNzaW9uTm9kZSosIFN0YXRlbWVudE5vZGUqKTsKKyAg
ICAgICAgCisgICAgcHJvdGVjdGVkOgorICAgICAgICBFeHByZXNzaW9uTm9kZSogbV9sZXhwcjsK
KyAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKKyAgICAgICAgU3RhdGVtZW50Tm9kZSog
bV9zdGF0ZW1lbnQ7CisgICAgfTsKKyAgICAKKyAgICBjbGFzcyBGb3JJbk5vZGUgOiBwdWJsaWMg
RW51bWVyYXRpb25Ob2RlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIEZvckluTm9kZShjb25zdCBK
U1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIEV4cHJlc3Npb25Ob2RlKiwgU3RhdGVt
ZW50Tm9kZSopOwogICAgICAgICBGb3JJbk5vZGUoVk0qLCBjb25zdCBKU1Rva2VuTG9jYXRpb24m
LCBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKiwgRXhwcmVzc2lvbk5vZGUqLCBTdGF0ZW1lbnRO
b2RlKik7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZW1pdEJ5dGVjb2Rl
KEJ5dGVjb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKTsKLQotICAgICAgICBFeHByZXNz
aW9uTm9kZSogbV9sZXhwcjsKLSAgICAgICAgRXhwcmVzc2lvbk5vZGUqIG1fZXhwcjsKLSAgICAg
ICAgU3RhdGVtZW50Tm9kZSogbV9zdGF0ZW1lbnQ7CisgICAgfTsKKyAgICAKKyAgICBjbGFzcyBG
b3JPZk5vZGUgOiBwdWJsaWMgRW51bWVyYXRpb25Ob2RlIHsKKyAgICBwdWJsaWM6CisgICAgICAg
IEZvck9mTm9kZShjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBFeHByZXNzaW9uTm9kZSosIEV4cHJl
c3Npb25Ob2RlKiwgU3RhdGVtZW50Tm9kZSopOworICAgICAgICBGb3JPZk5vZGUoVk0qLCBjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBEZWNvbnN0cnVjdGlvblBhdHRlcm5Ob2RlKiwgRXhwcmVzc2lv
bk5vZGUqLCBTdGF0ZW1lbnROb2RlKik7CisgICAgICAgIAorICAgIHByaXZhdGU6CisgICAgICAg
IHZpcnR1YWwgdm9pZCBlbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklE
KiA9IDApOwogICAgIH07CiAKICAgICBjbGFzcyBDb250aW51ZU5vZGUgOiBwdWJsaWMgU3RhdGVt
ZW50Tm9kZSwgcHVibGljIFRocm93YWJsZUV4cHJlc3Npb25EYXRhIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAppbmRleCAyNjE5ODM0NTdhYTUwMzBlYzZjMzRhNTRlMGI1
NjkxNDkxM2IxNmYxLi40YWYyYWEyZWRkOWJiNWFiOGY0MmNiYzg1OGUwMzU3NmMwNmNmNmE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCkBAIC0yOTQsNyArMjk0LDcg
QEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4
ZXJUeXBlPjo6cGFyc2VWYXJEZWNsYXJhdGkKICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAg
ICAgIGhhc0luaXRpYWxpemVyID0gbWF0Y2goRVFVQUwpOwogICAgICAgICAgICAgZmFpbElmRmFs
c2VJZlN0cmljdFdpdGhOYW1lQW5kTWVzc2FnZShkZWNsYXJlVmFyaWFibGUobmFtZSksICJDYW5u
b3QgZGVjbGFyZSBhIHZhcmlhYmxlIG5hbWVkIiwgbmFtZS0+aW1wbCgpLCAiaW4gc3RyaWN0IG1v
ZGUuIik7Ci0gICAgICAgICAgICBjb250ZXh0LmFkZFZhcihuYW1lLCAoaGFzSW5pdGlhbGl6ZXIg
fHwgKCFtX2FsbG93c0luICYmIG1hdGNoKElOVE9LRU4pKSkgPyBEZWNsYXJhdGlvblN0YWNrczo6
SGFzSW5pdGlhbGl6ZXIgOiAwKTsKKyAgICAgICAgICAgIGNvbnRleHQuYWRkVmFyKG5hbWUsICho
YXNJbml0aWFsaXplciB8fCAoIW1fYWxsb3dzSW4gJiYgKG1hdGNoKElOVE9LRU4pIHx8IGlzb2ZU
b2tlbigpKSkpID8gRGVjbGFyYXRpb25TdGFja3M6Okhhc0luaXRpYWxpemVyIDogMCk7CiAgICAg
ICAgICAgICBpZiAoaGFzSW5pdGlhbGl6ZXIpIHsKICAgICAgICAgICAgICAgICBKU1RleHRQb3Np
dGlvbiB2YXJEaXZvdCA9IHRva2VuU3RhcnRQb3NpdGlvbigpICsgMTsKICAgICAgICAgICAgICAg
ICBpbml0U3RhcnQgPSB0b2tlblN0YXJ0UG9zaXRpb24oKTsKQEAgLTMxNyw3ICszMTcsNiBAQCB0
ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVFeHByZXNzaW9uIFBhcnNlcjxMZXhlclR5
cGU+OjpwYXJzZVZhckRlY2xhcmF0aQogICAgICAgICAgICAgICAgIFRyZWVFeHByZXNzaW9uIHJo
cyA9IHBhcnNlRXhwcmVzc2lvbihjb250ZXh0KTsKICAgICAgICAgICAgICAgICBub2RlID0gY29u
dGV4dC5jcmVhdGVEZWNvbnN0cnVjdGluZ0Fzc2lnbm1lbnQobG9jYXRpb24sIHBhdHRlcm4sIHJo
cyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBBU1NFUlQobm9kZSk7CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIGlmIChoYXNJbml0aWFsaXplcikgewpAQCAtNTAxLDcgKzUwMCwx
MiBAQCB0ZW1wbGF0ZSA8Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgUGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlRm9yU3RhdGVtZW50KAogICAgICAgICAKICAgICAgICAgLy8gSGFuZGxl
IGZvci1pbiB3aXRoIHZhciBkZWNsYXJhdGlvbgogICAgICAgICBKU1RleHRQb3NpdGlvbiBpbkxv
Y2F0aW9uID0gdG9rZW5TdGFydFBvc2l0aW9uKCk7Ci0gICAgICAgIGNvbnN1bWVPckZhaWwoSU5U
T0tFTik7CisgICAgICAgIGJvb2wgaXNPZkVudW1lcmF0aW9uID0gZmFsc2U7CisgICAgICAgIGlm
ICghY29uc3VtZShJTlRPS0VOKSkgeworICAgICAgICAgICAgZmFpbElmRmFsc2VXaXRoTWVzc2Fn
ZShtYXRjaChJREVOVCkgJiYgKm1fdG9rZW4ubV9kYXRhLmlkZW50ID09IG1fdm0tPnByb3BlcnR5
TmFtZXMtPm9mLCAiRXhwZWN0ZWQgZWl0aGVyICdpbicgb3IgJ29mJyBpbiBlbnVtZXJhdGlvbiBz
eW50YXgiKTsKKyAgICAgICAgICAgIGlzT2ZFbnVtZXJhdGlvbiA9IHRydWU7CisgICAgICAgICAg
ICBuZXh0KCk7CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFRyZWVFeHByZXNzaW9uIGV4
cHIgPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgICAgIGZhaWxJZkZhbHNlKGV4cHIp
OwpAQCAtNTE1LDYgKzUxOSw4IEBAIHRlbXBsYXRlIDxjbGFzcyBUcmVlQnVpbGRlcj4gVHJlZVN0
YXRlbWVudCBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VGb3JTdGF0ZW1lbnQoCiAgICAgICAgIFRy
ZWVTdGF0ZW1lbnQgc3RhdGVtZW50ID0gcGFyc2VTdGF0ZW1lbnQoY29udGV4dCwgdW51c2VkKTsK
ICAgICAgICAgZW5kTG9vcCgpOwogICAgICAgICBmYWlsSWZGYWxzZShzdGF0ZW1lbnQpOworICAg
ICAgICBpZiAoaXNPZkVudW1lcmF0aW9uKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQuY3Jl
YXRlRm9yT2ZMb29wKGxvY2F0aW9uLCBmb3JJblRhcmdldCwgZXhwciwgc3RhdGVtZW50LCBkZWNs
c1N0YXJ0LCBpbkxvY2F0aW9uLCBleHByRW5kLCBzdGFydExpbmUsIGVuZExpbmUpOwogICAgICAg
ICByZXR1cm4gY29udGV4dC5jcmVhdGVGb3JJbkxvb3AobG9jYXRpb24sIGZvckluVGFyZ2V0LCBl
eHByLCBzdGF0ZW1lbnQsIGRlY2xzU3RhcnQsIGluTG9jYXRpb24sIGV4cHJFbmQsIHN0YXJ0TGlu
ZSwgZW5kTGluZSk7CiAgICAgfQogICAgIApAQCAtNTU2LDcgKzU2MiwxMiBAQCB0ZW1wbGF0ZSA8
Y2xhc3MgVHJlZUJ1aWxkZXI+IFRyZWVTdGF0ZW1lbnQgUGFyc2VyPExleGVyVHlwZT46OnBhcnNl
Rm9yU3RhdGVtZW50KAogICAgIAogICAgIC8vIEZvci1pbiBsb29wCiAgICAgZmFpbElmRmFsc2Uo
bm9uTEhTQ291bnQgPT0gbV9ub25MSFNDb3VudCk7Ci0gICAgY29uc3VtZU9yRmFpbChJTlRPS0VO
KTsKKyAgICBib29sIGlzT2ZFbnVtZXJhdGlvbiA9IGZhbHNlOworICAgIGlmICghY29uc3VtZShJ
TlRPS0VOKSkgeworICAgICAgICBmYWlsSWZGYWxzZVdpdGhNZXNzYWdlKG1hdGNoKElERU5UKSAm
JiAqbV90b2tlbi5tX2RhdGEuaWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+b2YsICJFeHBl
Y3RlZCBlaXRoZXIgJ2luJyBvciAnb2YnIGluIGVudW1lcmF0aW9uIHN5bnRheCIpOworICAgICAg
ICBpc09mRW51bWVyYXRpb24gPSB0cnVlOworICAgICAgICBuZXh0KCk7CisgICAgfQogICAgIFRy
ZWVFeHByZXNzaW9uIGV4cHIgPSBwYXJzZUV4cHJlc3Npb24oY29udGV4dCk7CiAgICAgZmFpbElm
RmFsc2UoZXhwcik7CiAgICAgSlNUZXh0UG9zaXRpb24gZXhwckVuZCA9IGxhc3RUb2tlbkVuZFBv
c2l0aW9uKCk7CkBAIC01NjcsNyArNTc4LDggQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVy
PiBUcmVlU3RhdGVtZW50IFBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZUZvclN0YXRlbWVudCgKICAg
ICBUcmVlU3RhdGVtZW50IHN0YXRlbWVudCA9IHBhcnNlU3RhdGVtZW50KGNvbnRleHQsIHVudXNl
ZCk7CiAgICAgZW5kTG9vcCgpOwogICAgIGZhaWxJZkZhbHNlKHN0YXRlbWVudCk7Ci0gICAgCisg
ICAgaWYgKGlzT2ZFbnVtZXJhdGlvbikKKyAgICAgICAgcmV0dXJuIGNvbnRleHQuY3JlYXRlRm9y
T2ZMb29wKGxvY2F0aW9uLCBkZWNscywgZXhwciwgc3RhdGVtZW50LCBkZWNsc1N0YXJ0LCBkZWNs
c0VuZCwgZXhwckVuZCwgc3RhcnRMaW5lLCBlbmRMaW5lKTsKICAgICByZXR1cm4gY29udGV4dC5j
cmVhdGVGb3JJbkxvb3AobG9jYXRpb24sIGRlY2xzLCBleHByLCBzdGF0ZW1lbnQsIGRlY2xzU3Rh
cnQsIGRlY2xzRW5kLCBleHByRW5kLCBzdGFydExpbmUsIGVuZExpbmUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCA4MTg5NDhiNGRlZTYyYWUyNDk1MTI0NjEx
Zjk0ZTA2ZGRiMGU5ODVjLi4xYWFkMjI1MTUwZWE3NjRmZDBmZTcyYzRjZDgzNTRlOGYwZGYzNDFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKQEAgLTU1NSw2ICs1NTUsMTEg
QEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1fdG9rZW4ubV90eXBlID09IGV4cGVjdGVkOwog
ICAgIH0KICAgICAKKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNvZlRva2VuKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX3Rva2VuLm1fdHlwZSA9PSBJREVOVCAmJiAqbV90b2tlbi5tX2RhdGEu
aWRlbnQgPT0gbV92bS0+cHJvcGVydHlOYW1lcy0+b2Y7CisgICAgfQorICAgIAogICAgIEFMV0FZ
U19JTkxJTkUgdW5zaWduZWQgdG9rZW5TdGFydCgpCiAgICAgewogICAgICAgICByZXR1cm4gbV90
b2tlbi5tX2xvY2F0aW9uLnN0YXJ0T2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9TeW50YXhDaGVja2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1N5bnRheENoZWNrZXIuaAppbmRleCA5NjVmZjBkYmU5ZmZmYWM0MTAwZmRmMjgyYjBlMmZl
NzdlODBjOGI0Li4yZDA1Y2U3ZTNhZWViNWMxNmVkYTYyOGQ0MWYxZjI5ZmQwMTQ0MjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaApAQCAtMTg5LDYg
KzE4OSw3IEBAIHB1YmxpYzoKICAgICBpbnQgY3JlYXRlSWZTdGF0ZW1lbnQoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDE7IH0KICAgICBp
bnQgY3JlYXRlRm9yTG9vcChjb25zdCBKU1Rva2VuTG9jYXRpb24mLCBpbnQsIGludCwgaW50LCBp
bnQsIGludCwgaW50KSB7IHJldHVybiAxOyB9CiAgICAgaW50IGNyZWF0ZUZvckluTG9vcChjb25z
dCBKU1Rva2VuTG9jYXRpb24mLCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGlu
dCkgeyByZXR1cm4gMTsgfQorICAgIGludCBjcmVhdGVGb3JPZkxvb3AoY29uc3QgSlNUb2tlbkxv
Y2F0aW9uJiwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpIHsgcmV0dXJu
IDE7IH0KICAgICBpbnQgY3JlYXRlRW1wdHlTdGF0ZW1lbnQoY29uc3QgSlNUb2tlbkxvY2F0aW9u
JikgeyByZXR1cm4gMTsgfQogICAgIGludCBjcmVhdGVWYXJTdGF0ZW1lbnQoY29uc3QgSlNUb2tl
bkxvY2F0aW9uJiwgaW50LCBpbnQsIGludCkgeyByZXR1cm4gMTsgfQogICAgIGludCBjcmVhdGVS
ZXR1cm5TdGF0ZW1lbnQoY29uc3QgSlNUb2tlbkxvY2F0aW9uJiwgaW50LCBpbnQsIGludCkgeyBy
ZXR1cm4gMTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlJdGVyYXRvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCAyYzhmYTE1MGJkMDY4OGM4OGZiZjY5YTUx
MGNjYTI1ZmQxODQ0NWNkLi42ZjQ5NWNhNjM3OTA5ZTY5ZDZkMTkyYjBkN2EyODgzMGU0NmZlNTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0ZXJhdG9y
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUl0
ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIGNv
bnN0IENsYXNzSW5mbyBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpzX2luZm8gPSB7ICJBcnJheSBJ
dGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoQXJyYXlJ
dGVyYXRvclByb3RvdHlwZSkgfTsKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHQoRXhlY1N0YXRlKik7CitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUl0ZXJhdG9yUHJvdG90eXBlSXRlcmF0ZShFeGVj
U3RhdGUqKTsKIAogdm9pZCBBcnJheUl0ZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CkBAIC00NSw2ICs0Niw3IEBA
IHZvaWQgQXJyYXlJdGVyYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgdm0ucHJvdG90eXBlTWFwLmFkZFByb3RvdHlw
ZSh0aGlzKTsKIAogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+bmV4
dCwgYXJyYXlJdGVyYXRvclByb3RvdHlwZU5leHQsIERvbnRFbnVtLCAwKTsKKyAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yUHJpdmF0ZU5hbWUsIGFycmF5
SXRlcmF0b3JQcm90b3R5cGVJdGVyYXRlLCBEb250RW51bSwgMCk7CiB9CiAKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBjcmVhdGVJdGVyYXRvclJlc3VsdChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQXJy
YXlJdGVyYXRpb25LaW5kIGtpbmQsIHNpemVfdCBpbmRleCwgSlNWYWx1ZSByZXN1bHQsIGJvb2wg
ZG9uZSkKQEAgLTc2LDcgKzc4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNyZWF0ZUl0ZXJh
dG9yUmVzdWx0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBBcnJheUl0ZXJhdGlvbksKICAgICB9CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHRPYmplY3QpOwogfQotICAgIAorCiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5SXRlcmF0b3JQcm90b3R5cGVOZXh0KENhbGxG
cmFtZSogY2FsbEZyYW1lKQogewogICAgIEpTQXJyYXlJdGVyYXRvciogaXRlcmF0b3IgPSBqc0R5
bmFtaWNDYXN0PEpTQXJyYXlJdGVyYXRvcio+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwpAQCAt
MTI5LDQgKzEzMSw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlJdGVyYXRv
clByb3RvdHlwZU5leHQoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgcmV0dXJuIGNyZWF0ZUl0
ZXJhdG9yUmVzdWx0KGNhbGxGcmFtZSwga2luZCwgaW5kZXgsIGpzVW5kZWZpbmVkKCksIGluZGV4
ID09IGxlbmd0aCk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlJdGVy
YXRvclByb3RvdHlwZUl0ZXJhdGUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IGIy
ZjZhOTg3MTBkZjY2NDVlODMyNTNlZDQ3NDQ2OThhYmM3MGZkMWMuLjMzOWRhNzQ0ZTI1Yzc3Y2Uy
MjczNGI5N2Y2N2MyNTM5MDhhYTUyYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEyMiwxMCArMTIyLDEwIEBAIGNvbnN0IENs
YXNzSW5mbyBBcnJheVByb3RvdHlwZTo6c19pbmZvID0geyJBcnJheSIsICZKU0FycmF5OjpzX2lu
Zm8sIDAsIEV4ZWNTdGF0CiBAZW5kCiAqLwogCi1BcnJheVByb3RvdHlwZSogQXJyYXlQcm90b3R5
cGU6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorQXJyYXlQcm90b3R5cGUq
IEFycmF5UHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICBBcnJheVByb3RvdHlwZSogcHJvdG90
eXBlID0gbmV3IChOb3ROdWxsLCBhbGxvY2F0ZUNlbGw8QXJyYXlQcm90b3R5cGU+KHZtLmhlYXAp
KSBBcnJheVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKLSAgICBwcm90b3R5cGUtPmZpbmlzaENy
ZWF0aW9uKHZtKTsKKyAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmpl
Y3QpOwogICAgIHJldHVybiBwcm90b3R5cGU7CiB9CiAKQEAgLTEzNSwxMSArMTM1LDEyIEBAIEFy
cmF5UHJvdG90eXBlOjpBcnJheVByb3RvdHlwZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogewogfQogCi12b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCit2
b2lkIEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIEFT
U0VSVChpbmhlcml0cyhpbmZvKCkpKTsKICAgICB2bS5wcm90b3R5cGVNYXAuYWRkUHJvdG90eXBl
KHRoaXMpOworICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04odm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0
b3JQcml2YXRlTmFtZSwgYXJyYXlQcm90b0Z1bmNWYWx1ZXMsIERvbnRFbnVtLCAwKTsKIH0KIAog
Ym9vbCBBcnJheVByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBl
LmgKaW5kZXggNTQ1ZjAxOWU2OGNjZjVmMzFiNTU1M2Y5NDFjNWE0YzZlOTk5NDk5Yi4uNDcyYTFk
ZDljOThmZDE0NTllYWJlMjRmODU4NTQ4NTU0MGMyYzk0NCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCkBAIC0zMyw3ICszMyw3IEBAIHByaXZh
dGU6CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0FycmF5IEJhc2U7CiAKLSAgICBzdGF0aWMgQXJy
YXlQcm90b3R5cGUqIGNyZWF0ZShWTSYsIFN0cnVjdHVyZSopOworICAgIHN0YXRpYyBBcnJheVBy
b3RvdHlwZSogY3JlYXRlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAg
ICAgCiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhlY1N0
YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIApAQCAtNDUsNyArNDUsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYp
OworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25JZGVudGlmaWVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5jcHAKaW5kZXggZTE5ZGYxYzY0OTg1MjZlMzY3ZjZlMGNmMDk5
ZTc4MWU1ZWVlOWUzMS4uYjVlYjcyZjE3MTYxYjhlMDNiNTVkZTQyZDM5YWUxYjllMjFmOGRmMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmll
cnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZp
ZXJzLmNwcApAQCAtMjEsNiArMjEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkNvbW1vbklkZW50aWZpZXJzLmgiCiAKKyNpbmNsdWRlICJQcml2YXRlTmFtZS5oIgorCiBuYW1l
c3BhY2UgSlNDIHsKIAogI2RlZmluZSBJTklUSUFMSVpFX1BST1BFUlRZX05BTUUobmFtZSkgLCBu
YW1lKHZtLCAjbmFtZSkKQEAgLTMyLDYgKzM0LDggQEAgQ29tbW9uSWRlbnRpZmllcnM6OkNvbW1v
bklkZW50aWZpZXJzKFZNKiB2bSkKICAgICAsIHVuZGVyc2NvcmVQcm90byh2bSwgIl9fcHJvdG9f
XyIpCiAgICAgLCB0aGlzSWRlbnRpZmllcih2bSwgInRoaXMiKQogICAgICwgdXNlU3RyaWN0SWRl
bnRpZmllcih2bSwgInVzZSBzdHJpY3QiKQorICAgICwgaXRlcmF0b3JQcml2YXRlTmFtZShJZGVu
dGlmaWVyOjpmcm9tKFByaXZhdGVOYW1lKCkpKQorICAgICwgaGFzTmV4dElkZW50aWZpZXIodm0s
ICJoYXNOZXh0IikKICAgICBKU0NfQ09NTU9OX0lERU5USUZJRVJTX0VBQ0hfS0VZV09SRChJTklU
SUFMSVpFX0tFWVdPUkQpCiAgICAgSlNDX0NPTU1PTl9JREVOVElGSUVSU19FQUNIX1BST1BFUlRZ
X05BTUUoSU5JVElBTElaRV9QUk9QRVJUWV9OQU1FKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggZDg3ZDBiNDFiNDhjNjQ5
ZmFkYjMwOWQ5ZDBiOTA0MDY3N2ZkYTRlNi4uMmY2MDkwMGE4OWFjOGQ4MDMyMTRjNDQ3ZGM3NWJm
ZjdmMzgzNmU0NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCkBAIC0xMTMsNiArMTEzLDcgQEAKICAgICBtYWNybyhudW1JbmxpbmVk
Q2FsbHMpIFwKICAgICBtYWNybyhudW1JbmxpbmVkR2V0QnlJZHMpIFwKICAgICBtYWNybyhudW1J
bmxpbmVkUHV0QnlJZHMpIFwKKyAgICBtYWNybyhvZikgXAogICAgIG1hY3JvKG9wY29kZSkgXAog
ICAgIG1hY3JvKG9yaWdpbikgXAogICAgIG1hY3JvKG9zckV4aXRTaXRlcykgXApAQCAtMjExLDcg
KzIxMiw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyIHVuZGVy
c2NvcmVQcm90bzsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciB0aGlzSWRlbnRpZmllcjsKICAg
ICAgICAgY29uc3QgSWRlbnRpZmllciB1c2VTdHJpY3RJZGVudGlmaWVyOwotICAgICAgICBjb25z
dCBQcml2YXRlTmFtZSBpdGVyYXRvclByaXZhdGVOYW1lOworICAgICAgICBjb25zdCBJZGVudGlm
aWVyIGl0ZXJhdG9yUHJpdmF0ZU5hbWU7CisgICAgICAgIGNvbnN0IElkZW50aWZpZXIgaGFzTmV4
dElkZW50aWZpZXI7CiAKICAgICAgICAgCiAjZGVmaW5lIEpTQ19JREVOVElGSUVSX0RFQ0xBUkVf
S0VZV09SRF9OQU1FX0dMT0JBTChuYW1lKSBjb25zdCBJZGVudGlmaWVyIG5hbWUjI0tleXdvcmQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKaW5kZXggYmQxZWVj
YzhjYTFmZGEyYjg2NDk4ZGYwNWFmYTQ5MDQ4MjEyMjZmYy4uMDNiMWI2M2FmMDZmNDUyNWUzZmM4
MjNhMmFjMjhlOGQxODcyZjkyYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lk
ZW50aWZpZXIuaApAQCAtNjEsOSArNjEsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIENT
dHJpbmcgYXNjaWkoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5hc2NpaSgpOyB9CiAgICAgICAg
IENTdHJpbmcgdXRmOCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nLnV0ZjgoKTsgfQogICAgICAg
ICAKLSAgICAgICAgc3RhdGljIElkZW50aWZpZXIgY3JlYXRlRW1wdHlVbmlxdWUoVk0qIHZtKQor
ICAgICAgICBzdGF0aWMgSWRlbnRpZmllciBmcm9tKGNvbnN0IFByaXZhdGVOYW1lJiBuYW1lKQog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSWRlbnRpZmllcih2bSwgU3RyaW5nKFN0cmlu
Z0ltcGw6OmNyZWF0ZUVtcHR5VW5pcXVlKCkpKTsKKyAgICAgICAgICAgIElkZW50aWZpZXIgcmVz
dWx0OworICAgICAgICAgICAgcmVzdWx0Lm1fc3RyaW5nID0gbmFtZS51aWQoKTsKKyAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgSWRlbnRpZmll
ciBjcmVhdGVMQ2hhckZyb21VQ2hhcihWTSogdm0sIGNvbnN0IFVDaGFyKiBzLCBpbnQgbGVuZ3Ro
KSB7IHJldHVybiBJZGVudGlmaWVyKHZtLCBhZGQ4KHZtLCBzLCBsZW5ndGgpKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcAppbmRleCA4ZjIwZjYzOTQ2
ZTkxOThmMTZjNTlhOWVkZjQ4MjEyMzhhNDRjMzA2Li4xZjljYzgwNWY3OTRkNjdmMzZlMGYxNzU5
NDE4ZTVkMDg5YjZhOThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NKU1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlLmNwcApAQCAtMjE2LDYgKzIxNiw4IEBAIHZvaWQgSlNWYWx1ZTo6ZHVtcEluQ29udGV4
dChQcmludFN0cmVhbSYgb3V0LCBEdW1wQ29udGV4dCogY29udGV4dCkgY29uc3QKICAgICAgICAg
ICAgICAgICAgICAgb3V0LnByaW50KCIgKGF0b21pYykiKTsKICAgICAgICAgICAgICAgICBpZiAo
aW1wbC0+aXNJZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgICAgIG91dC5wcmludCgiIChp
ZGVudGlmaWVyKSIpOworICAgICAgICAgICAgICAgIGlmIChpbXBsLT5pc0VtcHR5VW5pcXVlKCkp
CisgICAgICAgICAgICAgICAgICAgIG91dC5wcmludCgiICh1bmlxdWUpIik7CiAgICAgICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIiAodW5yZXNvbHZlZCkiKTsKICAg
ICAgICAgICAgIG91dC5wcmludCgiOiAiLCBpbXBsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCA5MmY1YWJhMWIxNTQ1ZDUyOTNm
Y2U0NmNmNzhlZjRkYWEzY2UzZjU4Li4xOTI0NDYwMTU0ZDcyMDIyMDY0NDY2YmU1OThhOGNlOGY4
NmI2M2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXQo
SlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgbV9vYmpjV3JhcHBlck9iamVjdFN0cnVjdHVyZS5zZXQo
dm0sIHRoaXMsIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwogI2VuZGlmCiAKLSAg
ICBtX2FycmF5UHJvdG90eXBlLnNldCh2bSwgdGhpcywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZSh2
bSwgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90
b3R5cGUuZ2V0KCkpKSk7CisgICAgbV9hcnJheVByb3RvdHlwZS5zZXQodm0sIHRoaXMsIEFycmF5
UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwogICAgIAogICAgIG1fb3Jp
Z2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nU2hhcGVbVW5kZWNpZGVkU2hhcGUgPj4gSW5k
ZXhpbmdTaGFwZVNoaWZ0XS5zZXQodm0sIHRoaXMsIEpTQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgdGhpcywgbV9hcnJheVByb3RvdHlwZS5nZXQoKSwgQXJyYXlXaXRoVW5kZWNpZGVkKSk7CiAg
ICAgbV9vcmlnaW5hbEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdTaGFwZVtJbnQzMlNoYXBlID4+
IEluZGV4aW5nU2hhcGVTaGlmdF0uc2V0KHZtLCB0aGlzLCBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIHRoaXMsIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCksIEFycmF5V2l0aEludDMyKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggMjNjNzhmYTIw
MzBiYTQ5NGY3ZmMwNGUwMzYwOTczZWYwOGYxOGUyNS4uYmU2ZDU1MDIyMzdjODY5OTVjZmVhM2Fi
YTEyNDFiNjBiZTg0YjJlMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmNwcApAQCAtMjIwNCw2ICsyMjA0LDggQEAgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0SW5k
ZXhCZXlvbmRWZWN0b3JMZW5ndGgoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpLCBKU1YKIHZv
aWQgSlNPYmplY3Q6OnB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgY29uc3QgUHJvcGVydHlOYW1lJiBwcm9wZXJ0eU5hbWUsIHVuc2ln
bmVkIGZ1bmN0aW9uTGVuZ3RoLCBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbiwgSW50cmlu
c2ljIGludHJpbnNpYywgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKICAgICBTdHJpbmdJbXBsKiBu
YW1lID0gcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKTsKKyAgICBpZiAoIW5hbWUpCisgICAgICAg
IG5hbWUgPSB2bS5wcm9wZXJ0eU5hbWVzLT5hbm9ueW1vdXMuaW1wbCgpOwogICAgIEFTU0VSVChu
YW1lKTsKIAogICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKHZt
LCBnbG9iYWxPYmplY3QsIGZ1bmN0aW9uTGVuZ3RoLCBuYW1lLCBuYXRpdmVGdW5jdGlvbiwgaW50
cmluc2ljKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ByaXZh
dGVOYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcml2YXRlTmFtZS5oCmlu
ZGV4IDkxMjU0ZmMyNjhlNDEyMmIxZGUzZjg0ODA2YTViNzVjOWRjODk1NzcuLjVkMjc3NGEyMDMx
MzYzZTA5ZWQ2ZWQ3NDZiMWM4Y2YwZWYyMDE2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ByaXZhdGVOYW1lLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJpdmF0ZU5hbWUuaApAQCAtMzYsNiArMzYsMTEgQEAgcHVibGljOgogICAgICAg
ICA6IG1faW1wbChTdHJpbmdJbXBsOjpjcmVhdGVFbXB0eVVuaXF1ZSgpKQogICAgIHsKICAgICB9
CisgICAgZXhwbGljaXQgUHJpdmF0ZU5hbWUoU3RyaW5nSW1wbCogdWlkKQorICAgICAgICA6IG1f
aW1wbCh1aWQpCisgICAgeworICAgICAgICBBU1NFUlQobV9pbXBsLT5pc0VtcHR5VW5pcXVlKCkp
OworICAgIH0KIAogICAgIFN0cmluZ0ltcGwqIHVpZCgpIGNvbnN0IHsgcmV0dXJuIG1faW1wbC5n
ZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eU5hbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZS5o
CmluZGV4IDcyNTM3NTZmYWNjMDE2NmRjODJjNWEyMmZlNTBmOTczZThiOGEyZGUuLmU0ZDVmYWJk
NTIzOGIyZmU0MGIxYWJhMzY4MGUyMzYzZmRiODg5NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZS5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAg
ICBQcm9wZXJ0eU5hbWUoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgICAgICA6
IG1faW1wbChwcm9wZXJ0eU5hbWUuaW1wbCgpKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2lt
cGwgfHwgbV9pbXBsLT5pc0lkZW50aWZpZXIoKSk7CisgICAgICAgIEFTU0VSVCghbV9pbXBsIHx8
IG1faW1wbC0+aXNJZGVudGlmaWVyKCkgfHwgbV9pbXBsLT5pc0VtcHR5VW5pcXVlKCkpOwogICAg
IH0KIAogICAgIFByb3BlcnR5TmFtZShjb25zdCBQcml2YXRlTmFtZSYgcHJvcGVydHlOYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAppbmRleCA4NzY2NjEyYTJlOWFmZTZmNDY1NjE5NjFmZWI0
YTBmNmU4YjAyZmRhLi5lY2VmZjU5ZTlhOTliNTRjNzFlMDU2NDZkODhlODRmNmZhNWRmZmJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaApAQCAtNTAxLDkgKzUwMSwxMSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBoYXMxNkJpdFNoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1faGFzaEFuZEZsYWdzICYg
c19oYXNoRmxhZ0hhczE2Qml0U2hhZG93OyB9CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHZv
aWQgdXBjb252ZXJ0Q2hhcmFjdGVycyh1bnNpZ25lZCwgdW5zaWduZWQpIGNvbnN0OwogICAgIGJv
b2wgaXNJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9oYXNoQW5kRmxhZ3MgJiBzX2hhc2hG
bGFnSXNJZGVudGlmaWVyOyB9CisgICAgYm9vbCBpc0lkZW50aWZpZXJPclVuaXF1ZSgpIGNvbnN0
IHsgcmV0dXJuIGlzSWRlbnRpZmllcigpIHx8IGlzRW1wdHlVbmlxdWUoKTsgfQogICAgIHZvaWQg
c2V0SXNJZGVudGlmaWVyKGJvb2wgaXNJZGVudGlmaWVyKQogICAgIHsKICAgICAgICAgQVNTRVJU
KCFpc1N0YXRpYygpKTsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5VW5pcXVlKCkpOwogICAgICAg
ICBpZiAoaXNJZGVudGlmaWVyKQogICAgICAgICAgICAgbV9oYXNoQW5kRmxhZ3MgfD0gc19oYXNo
RmxhZ0lzSWRlbnRpZmllcjsKICAgICAgICAgZWxzZQpAQCAtNTE5LDYgKzUyMSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldElzQXRvbWljKGJvb2wgaXNBdG9taWMpCiAgICAgewogICAgICAgICBB
U1NFUlQoIWlzU3RhdGljKCkpOworICAgICAgICBBU1NFUlQoIWlzRW1wdHlVbmlxdWUoKSk7CiAg
ICAgICAgIGlmIChpc0F0b21pYykKICAgICAgICAgICAgIG1faGFzaEFuZEZsYWdzIHw9IHNfaGFz
aEZsYWdJc0F0b21pYzsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYzY2ZmYWQ3YmM5OWU5ZjA5NThh
NmFlYzFjNzk3ZWY4ZGZjYWJkM2YuLmI3MzE5YjhmNzMxYzRmYTU1M2RmY2QxOGY0ZjRmOWVmYmZi
ZGZhZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMy0xMC0wNCAgT2xpdmVyIEh1bnQgIDxv
bGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgZm9yLW9mIHN5bnRheAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMzM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZXMg
Zm9yIHRoZSBvbmUgdHlwZSB0aGF0IHN1cHBvcnRzIGZvci1vZiBzbyBmYXIKKworICAgICAgICAq
IGpzL2Jhc2ljLWZvci1vZi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2Jhc2lj
LWZvci1vZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2Zvci1vZi1pdGVyYXRl
LWFycmF5LWVudHJpZXMuaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9mb3Itb2Yt
aXRlcmF0ZS1hcnJheS1rZXlzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvZm9y
LW9mLWl0ZXJhdGUtYXJyYXktdmFsdWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2Zvci1vZi1pdGVyYXRlLWFycmF5LWVudHJpZXMuanM6IEFkZGVkLgor
ICAgICAgICAoZm9vKToKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mb3Itb2Yt
aXRlcmF0ZS1hcnJheS1rZXlzLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICog
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZm9yLW9mLWl0ZXJhdGUtYXJyYXktdmFsdWVzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTMtMTAtMDMgIENocmlzdG9waGUgRHVtZXogIDxj
aC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCB0aGUgSFRNTFNlbGVjdEVs
ZW1lbnQucHJvdG90eXBlLnJlbW92ZSgpIG1ldGhvZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvYmFzaWMtZm9yLW9mLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLWZvci1v
Zi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODQ1YzQ1NTJhMDQ3ZDJkYzEyNGJjYjZlNzc2ZWFk
YTdlNjIxZDY2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLWZvci1v
Zi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MiBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgYmVo
YXZpb3Igb2YgdGhlIGZvci1vZiBjb25zdHJ1Y3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVswXQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJy
YXlbMV0KK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5WzJdCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJh
eVszXQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlbNF0KK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5
WzVdCitQQVNTIHRlc3RBcnJheS5sZW5ndGggaXMgNgorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlb
MF0KK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5WzFdCitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVsy
XQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlbM10KK1BBU1MgdmFsdWUgaXMgdGVzdEFycmF5WzRd
CitQQVNTIHZhbHVlIGlzIHRlc3RBcnJheVs1XQorUEFTUyB0ZXN0QXJyYXkubGVuZ3RoIGlzIDYK
K1BBU1Mga2V5IGlzIDAKK1BBU1Mga2V5IGlzIDEKK1BBU1Mga2V5IGlzIDIKK1BBU1Mga2V5IGlz
IDMKK1BBU1Mga2V5IGlzIDQKK1BBU1Mga2V5IGlzIDUKK1BBU1MgdGVzdEFycmF5Lmxlbmd0aCBp
cyA2CitQQVNTIGtleSBpcyAwCitQQVNTIHZhbHVlIGlzIDEKK1BBU1Mga2V5IGlzIDEKK1BBU1Mg
dmFsdWUgaXMgMgorUEFTUyBrZXkgaXMgMgorUEFTUyB2YWx1ZSBpcyAzCitQQVNTIGtleSBpcyAz
CitQQVNTIHZhbHVlIGlzIDQKK1BBU1Mga2V5IGlzIDQKK1BBU1MgdmFsdWUgaXMgNQorUEFTUyBr
ZXkgaXMgNQorUEFTUyB2YWx1ZSBpcyA2CitQQVNTIHRlc3RBcnJheS5sZW5ndGggaXMgNgorUEFT
UyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0
ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5
XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkg
aXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2
YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0
QXJyYXlba2V5XQorUEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQor
UEFTUyBrZXkgaXMgaQorUEFTUyB2YWx1ZSBpcyB0ZXN0QXJyYXlba2V5XQorUEFTUyBrZXkgaXMg
aQorUEFTUyB0ZXN0QXJyYXkubGVuZ3RoIGlzIDkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9iYXNp
Yy1mb3Itb2YuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLWZvci1vZi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEzOGI4YTA1MjUwNjc1MTJkYTY5ZWQ0YzA1Yzk3NDc4M2FkN2Y5MzIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9iYXNpYy1mb3Itb2YuaHRtbApAQCAtMCwwICsxLDEwIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmFzaWMtZm9y
LW9mLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvZm9yLW9mLWl0ZXJhdGUtYXJyYXktZW50cmllcy5odG1sIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9mb3Itb2YtaXRlcmF0ZS1hcnJheS1lbnRyaWVzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTMxMDhlN2Q0NTNiY2I3YTA3YmFhNjc4YmMzOTJiNTIwNTAwYzJjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3MvZm9yLW9mLWl0ZXJhdGUtYXJyYXktZW50cmll
cy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL2Zvci1vZi1pdGVyYXRlLWFycmF5LWVudHJpZXMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9mb3Itb2YtaXRlcmF0
ZS1hcnJheS1rZXlzLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Zvci1vZi1pdGVyYXRl
LWFycmF5LWtleXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDFlODljMDhhZWVlNGQ0YmMzZjM4OTg0N2Rl
ODhjNDk5NzBmMGRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9m
b3Itb2YtaXRlcmF0ZS1hcnJheS1rZXlzLmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZm9yLW9mLWl0ZXJhdGUtYXJyYXkta2V5
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2Zvci1vZi1pdGVyYXRlLWFycmF5LXZhbHVlcy5odG1sIGIvTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9mb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzIz
NDJiNzBiMWIxNjE5OGZjZjdhZWVlZDEyNzU5MzAwNjU5MDc3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9mb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMuaHRtbApA
QCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy9mb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZm9yLW9mLWl0
ZXJhdGUtYXJyYXktZW50cmllcy5qcyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2Zvci1vZi1pdGVyYXRlLWFycmF5LWVudHJpZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGEzZTRjYmMw
NmRiODVmMDgzMWM3NDFjMTU0ZTg4ODI3YTAwMzdlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Zvci1vZi1pdGVyYXRlLWFycmF5LWVudHJp
ZXMuanMKQEAgLTAsMCArMSwxNiBAQAorZnVuY3Rpb24gZm9vKCkgeworICAgIHZhciBhcnJheSA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjUwMDA7IGkrKykKKyAgICAgICAgYXJyYXku
cHVzaChpKTsKKyAgICAKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBba2V5LCB2
YWx1ZV0gb2YgYXJyYXkuZW50cmllcygpKQorICAgICAgICByZXN1bHQgKz0ga2V5ICsgdmFsdWUg
KyBhcnJheVtrZXldOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQg
PSBmb28oKSArIGZvbygpOworaWYgKHJlc3VsdCAhPSAxODc0OTI1MDAwKQorICAgIHRocm93ICJC
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9mb3Itb2YtaXRlcmF0ZS1hcnJheS1rZXlzLmpzIGIvTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZm9yLW9mLWl0ZXJhdGUtYXJyYXkta2V5cy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMzZjNmNiZGQyNzllYzIzN2FhYjMxYzM0MWUwODE0MzFkOTE3Y2MwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZm9yLW9m
LWl0ZXJhdGUtYXJyYXkta2V5cy5qcwpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28oKSB7
CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTAwMDsgaSsr
KQorICAgICAgICBhcnJheS5wdXNoKGkpOworICAgIAorICAgIHZhciByZXN1bHQgPSAwOworICAg
IGZvciAodmFyIGtleSBvZiBhcnJheS5rZXlzKCkpCisgICAgICAgIHJlc3VsdCArPSBrZXkgKyBh
cnJheVtrZXldOworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBm
b28oKSArIGZvbygpOworaWYgKHJlc3VsdCAhPSAxMjQ5OTUwMDAwKQorICAgIHRocm93ICJCYWQg
cmVzdWx0OiAiICsgcmVzdWx0OworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9mb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMuanMgYi9MYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjdlNWI0N2NjMTlmYTc5ZGUyODg1YzAyNDJhODcyNTVhYTQ5ZjAyMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Zvci1v
Zi1pdGVyYXRlLWFycmF5LXZhbHVlcy5qcwpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28o
KSB7CisgICAgdmFyIGFycmF5ID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTAwMDsg
aSsrKQorICAgICAgICBhcnJheS5wdXNoKGkpOworICAgIAorICAgIHZhciByZXN1bHQgPSAwOwor
ICAgIGZvciAodmFyIGkgb2YgYXJyYXkpCisgICAgICAgIHJlc3VsdCArPSBpOworICAgIAorICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28oKSArIGZvbygpOworaWYgKHJl
c3VsdCAhPSA2MjQ5NzUwMDApCisgICAgdGhyb3cgIkJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7CisK
</data>
<flag name="review"
          id="235738"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="235744"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>