<?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>207423</bug_id>
          
          <creation_ts>2020-02-07 17:33:25 -0800</creation_ts>
          <short_desc>Throw OutOfMemory exception instead of crashing if DirectArguments/ScopedArguments can&apos;t be created</short_desc>
          <delta_ts>2020-02-07 22:09:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1616486</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-07 17:33:25 -0800</bug_when>
    <thetext>rdar://problem/58945874</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616493</commentid>
    <comment_count>1</comment_count>
      <attachid>390155</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-07 17:51:51 -0800</bug_when>
    <thetext>Created attachment 390155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616523</commentid>
    <comment_count>2</comment_count>
      <attachid>390155</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-02-07 20:41:18 -0800</bug_when>
    <thetext>Comment on attachment 390155
Patch

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

r=me

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1107
&gt; +        LLINT_CHECK_EXCEPTION();

This is redundant because there&apos;s a LLINT_CHECK_EXCEPTION() immediately following this if statement.  Please remove.

&gt; Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:984
&gt; +        CHECK_EXCEPTION();

I think you should put this after the if statement to match LLINT_SLOW_PATH_DECL(slow_path_del_by_val).  Looks like currently, we&apos;re missing an exception check after the call to deleteProperty().

&gt; Source/JavaScriptCore/runtime/DirectArguments.cpp:125
&gt; +    if (!backingStore) {

UNLIKELY()?

&gt; Source/JavaScriptCore/runtime/GenericArgumentsInlines.h:175
&gt; +    scope.release();

Hmmm, use RELEASE_AND_RETURN instead of return in both cases below instead?  Not a big difference right now, but I think that is less error prone if any of the cases below expand to have more logic that might throw.

&gt; Source/JavaScriptCore/runtime/GenericArgumentsInlines.h:285
&gt; +        if (!backingStore) {

UNLIKELY()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616531</commentid>
    <comment_count>3</comment_count>
      <attachid>390165</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2020-02-07 21:25:41 -0800</bug_when>
    <thetext>Created attachment 390165
Patch

Thanks for the review!
I applied all of your suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616538</commentid>
    <comment_count>4</comment_count>
      <attachid>390165</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-07 22:08:40 -0800</bug_when>
    <thetext>Comment on attachment 390165
Patch

Clearing flags on attachment: 390165

Committed r256087: &lt;https://trac.webkit.org/changeset/256087&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616539</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-07 22:08:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1616540</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-07 22:09:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/59283467&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390155</attachid>
            <date>2020-02-07 17:51:51 -0800</date>
            <delta_ts>2020-02-07 21:25:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch207423</filename>
            <type>text/plain</type>
            <size>19647</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg0Nzk2NTE0MzA3Li41NWYyYmJlZDFmMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDItMDcgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBUaHJvdyBPdXRPZk1l
bW9yeSBleGNlcHRpb24gaW5zdGVhZCBvZiBjcmFzaGluZyBpZiBEaXJlY3RBcmd1bWVudHMvU2Nv
cGVkQXJndW1lbnRzIGNhbid0IGJlIGNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNzZXJ0IGlzIHBy
b2JsZW1hdGljIGJlY2F1c2UgZnV6emVycyBrZWVwIHByb2R1Y2luZyBzcHVyaW91cyBlcnJvciBy
ZXBvcnRzIHdoZW4gdGhleSBnZW5lcmF0ZSBjb2RlIHRoYXQgdHJpZXMgYWxsb2NhdGluZyBpbmZp
bml0ZSBhbW91bnQgb2YgbWVtb3J5LgorICAgICAgICBUaGUgcmlnaHQgYXBwcm9hY2ggaXMgdG8g
dXNlIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6UmV0dXJuTnVsbCwgYW5kIHRocm93IGEgSlMgZXhj
ZXB0aW9uIHVwb24gcmVjZWl2aW5nIG51bGwuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCBJIGZp
eGVkIHR3byBmdW5jdGlvbnMgdGhhdCB3ZXJlIHVzaW5nIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6
QXNzZXJ0OgorICAgICAgICAgICAgRGlyZWN0QXJndW1lbnRzOjpEaXJlY3RBcmd1bWVudHM6Om92
ZXJyaWRlVGhpbmdzCisgICAgICAgICAgICBHZW5lcmljQXJndW1lbnRzPFR5cGU+Ojppbml0TW9k
aWZpZWRBcmd1bWVudHNEZXNjcmlwdG9yCisKKyAgICAgICAgTm8gdGVzdCBhZGRlZCwgYmVjYXVz
ZSB0aGUgb25seSB0ZXN0IHdlIGhhdmUgaXMgaGlnaGx5IG5vbi1kZXRlcm1pbmlzdGljL2ZsYWt5
IChvbmx5IHRyaWdnZXJzIGFib3V0IDEwIHRvIDIwJSBvZiB0aGUgdGltZSBldmVuIGJlZm9yZSB0
aGUgZml4KS4KKworICAgICAgICAqIHJ1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmg6CisgICAgICAg
ICogcnVudGltZS9HZW5lcmljQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9HZW5lcmlj
QXJndW1lbnRzSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpHZW5lcmljQXJndW1lbnRzPFR5cGU+
OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgpOgorICAgICAgICAoSlNDOjpHZW5lcmljQXJndW1lbnRz
PFR5cGU+OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkdlbmVyaWNBcmd1bWVu
dHM8VHlwZT46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3IpOgorICAgICAgICAoSlND
OjpHZW5lcmljQXJndW1lbnRzPFR5cGU+Ojppbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9y
SWZOZWNlc3NhcnkpOgorICAgICAgICAoSlNDOjpHZW5lcmljQXJndW1lbnRzPFR5cGU+OjpzZXRN
b2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1
bWVudHMuaDoKKwogMjAyMC0wMi0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIENvZGVCbG9jazo6c2hyaW5rVG9GaXQgc2hvdWxkIHNocmluayBt
X2NvbnN0YW50UmVnaXN0ZXJzIGFuZCBtX2NvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRhdGlv
biBpbiA2NGJpdCBhcmNoaXRlY3R1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCAyMjU0ZmNjNDI5Ni4uY2M4YTJkY2FhZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtMTEw
Miw5ICsxMTAyLDEwIEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9kZWxfYnlfdmFs
KQogICAgIGJvb2wgY291bGREZWxldGU7CiAgICAgCiAgICAgdWludDMyX3QgaTsKLSAgICBpZiAo
c3Vic2NyaXB0LmdldFVJbnQzMihpKSkKKyAgICBpZiAoc3Vic2NyaXB0LmdldFVJbnQzMihpKSkg
ewogICAgICAgICBjb3VsZERlbGV0ZSA9IGJhc2VPYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+ZGVs
ZXRlUHJvcGVydHlCeUluZGV4KGJhc2VPYmplY3QsIGdsb2JhbE9iamVjdCwgaSk7Ci0gICAgZWxz
ZSB7CisgICAgICAgIExMSU5UX0NIRUNLX0VYQ0VQVElPTigpOworICAgIH0gZWxzZSB7CiAgICAg
ICAgIExMSU5UX0NIRUNLX0VYQ0VQVElPTigpOwogICAgICAgICBhdXRvIHByb3BlcnR5ID0gc3Vi
c2NyaXB0LnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgTExJTlRfQ0hFQ0tf
RVhDRVBUSU9OKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9u
U2xvd1BhdGhzLmNwcAppbmRleCAyYTMzYmQzMzU2ZC4uZDhjYzFmMTc3MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtOTc5
LDkgKzk3OSwxMCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGVsX2J5X3ZhbCkKICAgICBi
b29sIGNvdWxkRGVsZXRlOwogICAgIAogICAgIHVpbnQzMl90IGk7Ci0gICAgaWYgKHN1YnNjcmlw
dC5nZXRVSW50MzIoaSkpCisgICAgaWYgKHN1YnNjcmlwdC5nZXRVSW50MzIoaSkpIHsKICAgICAg
ICAgY291bGREZWxldGUgPSBiYXNlT2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmRlbGV0ZVByb3Bl
cnR5QnlJbmRleChiYXNlT2JqZWN0LCBnbG9iYWxPYmplY3QsIGkpOwotICAgIGVsc2UgeworICAg
ICAgICBDSEVDS19FWENFUFRJT04oKTsKKyAgICB9IGVsc2UgewogICAgICAgICBDSEVDS19FWENF
UFRJT04oKTsKICAgICAgICAgYXV0byBwcm9wZXJ0eSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5
KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIENIRUNLX0VYQ0VQVElPTigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEFyZ3VtZW50cy5jcHAKaW5kZXggNGIzNDYx
ZGUyMmUuLjRiNTUzNzdkNDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EaXJlY3RBcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RpcmVjdEFyZ3VtZW50cy5jcHAKQEAgLTExMCwzMCArMTEwLDQyIEBAIFN0cnVjdHVyZSog
RGlyZWN0QXJndW1lbnRzOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgVHlwZUluZm8oRGlyZWN0QXJndW1lbnRzVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOwogfQogCi12b2lkIERpcmVjdEFyZ3VtZW50czo6b3ZlcnJpZGVUaGluZ3Mo
Vk0mIHZtKQordm9pZCBEaXJlY3RBcmd1bWVudHM6Om92ZXJyaWRlVGhpbmdzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiB7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwogICAgIFJFTEVBU0Vf
QVNTRVJUKCFtX21hcHBlZEFyZ3VtZW50cyk7CiAgICAgCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKG1fbGVuZ3RoKSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+Y2FsbGVlLCBtX2NhbGxlZS5nZXQoKSwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIHB1dERpcmVjdCh2bSwg
dm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wsIGdsb2JhbE9iamVjdCh2bSktPmFycmF5
UHJvdG9WYWx1ZXNGdW5jdGlvbigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5p
dGVyYXRvclN5bWJvbCwgZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24oKSwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAg
IAotICAgIHZvaWQqIGJhY2tpbmdTdG9yZSA9IHZtLmdpZ2FjYWdlQXV4aWxpYXJ5U3BhY2UobV9t
YXBwZWRBcmd1bWVudHMua2luZCkuYWxsb2NhdGVOb25WaXJ0dWFsKHZtLCBtYXBwZWRBcmd1bWVu
dHNTaXplKCksIG51bGxwdHIsIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNzZXJ0KTsKKyAgICB2
b2lkKiBiYWNraW5nU3RvcmUgPSB2bS5naWdhY2FnZUF1eGlsaWFyeVNwYWNlKG1fbWFwcGVkQXJn
dW1lbnRzLmtpbmQpLmFsbG9jYXRlTm9uVmlydHVhbCh2bSwgbWFwcGVkQXJndW1lbnRzU2l6ZSgp
LCBudWxscHRyLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGU6OlJldHVybk51bGwpOworICAgIGlmICgh
YmFja2luZ1N0b3JlKSB7CisgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBib29sKiBvdmVycmlkZXMg
PSBzdGF0aWNfY2FzdDxib29sKj4oYmFja2luZ1N0b3JlKTsKICAgICBtX21hcHBlZEFyZ3VtZW50
cy5zZXQodm0sIHRoaXMsIG92ZXJyaWRlcywgaW50ZXJuYWxMZW5ndGgoKSk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gaW50ZXJuYWxMZW5ndGgoKTsgaS0tOykKICAgICAgICAgb3ZlcnJpZGVzW2ld
ID0gZmFsc2U7CiB9CiAKLXZvaWQgRGlyZWN0QXJndW1lbnRzOjpvdmVycmlkZVRoaW5nc0lmTmVj
ZXNzYXJ5KFZNJiB2bSkKK3ZvaWQgRGlyZWN0QXJndW1lbnRzOjpvdmVycmlkZVRoaW5nc0lmTmVj
ZXNzYXJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgaWYgKCFtX21hcHBl
ZEFyZ3VtZW50cykKLSAgICAgICAgb3ZlcnJpZGVUaGluZ3Modm0pOworICAgICAgICBvdmVycmlk
ZVRoaW5ncyhnbG9iYWxPYmplY3QpOwogfQogCi12b2lkIERpcmVjdEFyZ3VtZW50czo6dW5tYXBB
cmd1bWVudChWTSYgdm0sIHVuc2lnbmVkIGluZGV4KQordm9pZCBEaXJlY3RBcmd1bWVudHM6OnVu
bWFwQXJndW1lbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5kZXgp
CiB7Ci0gICAgb3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2FyeSh2bSk7CisgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKKworICAgIG92ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkoZ2xvYmFsT2JqZWN0KTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworCiAgICAgbV9tYXBwZWRBcmd1bWVu
dHMuYXQoaW5kZXgsIGludGVybmFsTGVuZ3RoKCkpID0gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RBcmd1bWVudHMuaAppbmRleCA4ZDk2NDJhMmM5
NC4uY2U3NjEwYjUwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RpcmVjdEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rp
cmVjdEFyZ3VtZW50cy5oCkBAIC0xMjUsMTggKzEyNSwxOCBAQCBwdWJsaWM6CiAgICAgCiAgICAg
Ly8gTWV0aG9kcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IHRoZSBHZW5lcmljQXJndW1lbnRzIG1peGlu
LgogICAgIGJvb2wgb3ZlcnJvZGVUaGluZ3MoKSBjb25zdCB7IHJldHVybiAhIW1fbWFwcGVkQXJn
dW1lbnRzOyB9Ci0gICAgdm9pZCBvdmVycmlkZVRoaW5ncyhWTSYpOwotICAgIHZvaWQgb3ZlcnJp
ZGVUaGluZ3NJZk5lY2Vzc2FyeShWTSYpOwotICAgIHZvaWQgdW5tYXBBcmd1bWVudChWTSYsIHVu
c2lnbmVkIGluZGV4KTsKKyAgICB2b2lkIG92ZXJyaWRlVGhpbmdzKEpTR2xvYmFsT2JqZWN0Kik7
CisgICAgdm9pZCBvdmVycmlkZVRoaW5nc0lmTmVjZXNzYXJ5KEpTR2xvYmFsT2JqZWN0Kik7Cisg
ICAgdm9pZCB1bm1hcEFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgaW5kZXgpOwog
Ci0gICAgdm9pZCBpbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNlc3NhcnkoVk0m
IHZtKQorICAgIHZvaWQgaW5pdE1vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewotICAgICAgICBHZW5lcmljQXJn
dW1lbnRzPERpcmVjdEFyZ3VtZW50cz46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3JJ
Zk5lY2Vzc2FyeSh2bSwgbV9sZW5ndGgpOworICAgICAgICBHZW5lcmljQXJndW1lbnRzPERpcmVj
dEFyZ3VtZW50cz46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3JJZk5lY2Vzc2FyeShn
bG9iYWxPYmplY3QsIG1fbGVuZ3RoKTsKICAgICB9CiAKLSAgICB2b2lkIHNldE1vZGlmaWVkQXJn
dW1lbnREZXNjcmlwdG9yKFZNJiB2bSwgdW5zaWduZWQgaW5kZXgpCisgICAgdm9pZCBzZXRNb2Rp
ZmllZEFyZ3VtZW50RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNp
Z25lZCBpbmRleCkKICAgICB7Ci0gICAgICAgIEdlbmVyaWNBcmd1bWVudHM8RGlyZWN0QXJndW1l
bnRzPjo6c2V0TW9kaWZpZWRBcmd1bWVudERlc2NyaXB0b3Iodm0sIGluZGV4LCBtX2xlbmd0aCk7
CisgICAgICAgIEdlbmVyaWNBcmd1bWVudHM8RGlyZWN0QXJndW1lbnRzPjo6c2V0TW9kaWZpZWRB
cmd1bWVudERlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBpbmRleCwgbV9sZW5ndGgpOwogICAgIH0K
IAogICAgIGJvb2wgaXNNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcih1bnNpZ25lZCBpbmRleCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNBcmd1bWVu
dHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNBcmd1bWVudHMuaApp
bmRleCAwNzRjMjE2MmQ4ZC4uY2UxMGY3ZmU0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0dlbmVyaWNBcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HZW5lcmljQXJndW1lbnRzLmgKQEAgLTU0LDkgKzU0LDkgQEAgcHJvdGVj
dGVkOgogICAgIHN0YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqLCBKU0ds
b2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZGVm
aW5lT3duUHJvcGVydHkoSlNPYmplY3QqLCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwg
Y29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CiAgICAgCi0gICAg
dm9pZCBpbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9yKFZNJiwgdW5zaWduZWQgbGVuZ3Ro
KTsKLSAgICB2b2lkIGluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3JJZk5lY2Vzc2FyeShW
TSYsIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgdm9pZCBzZXRNb2RpZmllZEFyZ3VtZW50RGVzY3Jp
cHRvcihWTSYsIHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHZvaWQgaW5p
dE1vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIGxl
bmd0aCk7CisgICAgdm9pZCBpbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNlc3Nh
cnkoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHZvaWQgc2V0TW9kaWZp
ZWRBcmd1bWVudERlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBpbmRleCwgdW5z
aWduZWQgbGVuZ3RoKTsKICAgICBib29sIGlzTW9kaWZpZWRBcmd1bWVudERlc2NyaXB0b3IodW5z
aWduZWQgaW5kZXgsIHVuc2lnbmVkIGxlbmd0aCk7CiAKICAgICB2b2lkIGNvcHlUb0FyZ3VtZW50
cyhKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUqIGZpcnN0RWxlbWVudERlc3QsIHVuc2lnbmVkIG9m
ZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0dlbmVyaWNBcmd1bWVudHNJbmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9HZW5lcmljQXJndW1lbnRzSW5saW5lcy5oCmluZGV4IGUwYWFiZjVmMmVlLi4z
ZWI2YmU4Y2RmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2Vu
ZXJpY0FyZ3VtZW50c0lubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9HZW5lcmljQXJndW1lbnRzSW5saW5lcy5oCkBAIC0xMTcsMTQgKzExNywxNiBAQCBib29sIEdl
bmVyaWNBcmd1bWVudHM8VHlwZT46OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFBybwogewogICAgIFR5cGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8VHlwZSo+
KGNlbGwpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAgaWYgKCF0aGlzT2JqZWN0LT5v
dmVycm9kZVRoaW5ncygpCiAgICAgICAgICYmIChpZGVudCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5s
ZW5ndGgKICAgICAgICAgICAgIHx8IGlkZW50ID09IHZtLnByb3BlcnR5TmFtZXMtPmNhbGxlZQog
ICAgICAgICAgICAgfHwgaWRlbnQgPT0gdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wp
KSB7Ci0gICAgICAgIHRoaXNPYmplY3QtPm92ZXJyaWRlVGhpbmdzKHZtKTsKKyAgICAgICAgdGhp
c09iamVjdC0+b3ZlcnJpZGVUaGluZ3MoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAgICBQdXRQcm9wZXJ0eVNsb3QgZHVtbXkg
PSBzbG90OyAvLyBUaGlzIHB1dCBpcyBub3QgY2FjaGVhYmxlLCBzbyB3ZSBzaGFkb3cgdGhlIHNs
b3QgdGhhdCB3YXMgZ2l2ZW4gdG8gdXMuCi0gICAgICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09i
amVjdCwgZ2xvYmFsT2JqZWN0LCBpZGVudCwgdmFsdWUsIGR1bW15KTsKKyAgICAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHNjb3BlLCBCYXNlOjpwdXQodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBp
ZGVudCwgdmFsdWUsIGR1bW15KSk7CiAgICAgfQogCiAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1
Yi5pby9lY21hMjYyLyNzZWMtYXJndW1lbnRzLWV4b3RpYy1vYmplY3RzLXNldC1wLXYtcmVjZWl2
ZXIKQEAgLTEzOCw3ICsxNDAsNyBAQCBib29sIEdlbmVyaWNBcmd1bWVudHM8VHlwZT46OnB1dChK
U0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBybwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0
LCBnbG9iYWxPYmplY3QsIGlkZW50LCB2YWx1ZSwgc2xvdCk7CisgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCBCYXNlOjpwdXQodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBpZGVudCwgdmFs
dWUsIHNsb3QpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KQEAgLTE2MCwxMyArMTYy
LDE4IEBAIGJvb2wgR2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxs
KiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiB7CiAgICAgVHlwZSogdGhpc09iamVjdCA9
IGpzQ2FzdDxUeXBlKj4oY2VsbCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICAKICAgICBpZiAo
IXRoaXNPYmplY3QtPm92ZXJyb2RlVGhpbmdzKCkKICAgICAgICAgJiYgKGlkZW50ID09IHZtLnBy
b3BlcnR5TmFtZXMtPmxlbmd0aAogICAgICAgICAgICAgfHwgaWRlbnQgPT0gdm0ucHJvcGVydHlO
YW1lcy0+Y2FsbGVlCi0gICAgICAgICAgICB8fCBpZGVudCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5p
dGVyYXRvclN5bWJvbCkpCi0gICAgICAgIHRoaXNPYmplY3QtPm92ZXJyaWRlVGhpbmdzKHZtKTsK
LSAgICAKKyAgICAgICAgICAgIHx8IGlkZW50ID09IHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9y
U3ltYm9sKSkgeworICAgICAgICB0aGlzT2JqZWN0LT5vdmVycmlkZVRoaW5ncyhnbG9iYWxPYmpl
Y3QpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgfQor
CisgICAgc2NvcGUucmVsZWFzZSgpOworCiAgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRl
eCA9IHBhcnNlSW5kZXgoaWRlbnQpKQogICAgICAgICByZXR1cm4gR2VuZXJpY0FyZ3VtZW50czxU
eXBlPjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwgKmlu
ZGV4KTsKIApAQCAtMTc2LDggKzE4MywxMCBAQCBib29sIEdlbmVyaWNBcmd1bWVudHM8VHlwZT46
OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogdGVt
cGxhdGU8dHlwZW5hbWUgVHlwZT4KIGJvb2wgR2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6ZGVsZXRl
UHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgVHlwZSogdGhpc09iamVjdCA9IGpzQ2FzdDxUeXBl
Kj4oY2VsbCk7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIFR5cGUqIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8VHlwZSo+KGNlbGwpOwogCiAgICAgYm9vbCBwcm9wZXJ0eU1pZ2h0QmVJbkpTT2JqZWN0
U3RvcmFnZSA9IHRoaXNPYmplY3QtPmlzTW9kaWZpZWRBcmd1bWVudERlc2NyaXB0b3IoaW5kZXgp
IHx8ICF0aGlzT2JqZWN0LT5pc01hcHBlZEFyZ3VtZW50KGluZGV4KTsKICAgICBib29sIGRlbGV0
ZWRQcm9wZXJ0eSA9IHRydWU7CkBAIC0xODgsOSArMTk3LDExIEBAIGJvb2wgR2VuZXJpY0FyZ3Vt
ZW50czxUeXBlPjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxP
YmplY3QqCiAgICAgICAgIC8vIERlbGV0aW5nIGFuIGluZGV4ZWQgcHJvcGVydHkgdW5jb25kaXRp
b25hbGx5IHVubWFwcyBpdC4KICAgICAgICAgaWYgKHRoaXNPYmplY3QtPmlzTWFwcGVkQXJndW1l
bnQoaW5kZXgpKSB7CiAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRoYXQgdGhlIHBy
b3BlcnR5IHdhcyBtYXBwZWQgc28gd2UgZG9uJ3Qgd3JpdGUgdG8gcmFuZG9tIG1lbW9yeS4KLSAg
ICAgICAgICAgIHRoaXNPYmplY3QtPnVubWFwQXJndW1lbnQodm0sIGluZGV4KTsKKyAgICAgICAg
ICAgIHRoaXNPYmplY3QtPnVubWFwQXJndW1lbnQoZ2xvYmFsT2JqZWN0LCBpbmRleCk7CisgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB0cnVlKTsKICAgICAgICAgfQotICAg
ICAgICB0aGlzT2JqZWN0LT5zZXRNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcih2bSwgaW5kZXgp
OworICAgICAgICB0aGlzT2JqZWN0LT5zZXRNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcihnbG9i
YWxPYmplY3QsIGluZGV4KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdHJ1
ZSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGRlbGV0ZWRQcm9wZXJ0eTsKQEAgLTIwNSw5ICsyMTYs
MTAgQEAgYm9vbCBHZW5lcmljQXJndW1lbnRzPFR5cGU+OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09i
amVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCoKICAgICAKICAgICBpZiAoaWRlbnQgPT0gdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoCiAgICAgICAgIHx8IGlkZW50ID09IHZtLnByb3BlcnR5TmFt
ZXMtPmNhbGxlZQotICAgICAgICB8fCBpZGVudCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRv
clN5bWJvbCkKLSAgICAgICAgdGhpc09iamVjdC0+b3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2FyeSh2
bSk7Ci0gICAgZWxzZSB7CisgICAgICAgIHx8IGlkZW50ID09IHZtLnByb3BlcnR5TmFtZXMtPml0
ZXJhdG9yU3ltYm9sKSB7CisgICAgICAgIHRoaXNPYmplY3QtPm92ZXJyaWRlVGhpbmdzSWZOZWNl
c3NhcnkoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZmFsc2UpOworICAgIH0gZWxzZSB7CiAgICAgICAgIE9wdGlvbmFsPHVpbnQzMl90PiBvcHRpb25h
bEluZGV4ID0gcGFyc2VJbmRleChpZGVudCk7CiAgICAgICAgIGlmIChvcHRpb25hbEluZGV4KSB7
CiAgICAgICAgICAgICB1aW50MzJfdCBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKQEAg
LTIzMCw3ICsyNDIsOCBAQCBib29sIEdlbmVyaWNBcmd1bWVudHM8VHlwZT46OmRlZmluZU93blBy
b3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KgogICAgICAgICAgICAgICAg
ICAgICBvYmplY3QtPnB1dERpcmVjdE1heUJlSW5kZXgoZ2xvYmFsT2JqZWN0LCBpZGVudCwgdmFs
dWUpOwogICAgICAgICAgICAgICAgICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogCi0g
ICAgICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnNldE1vZGlmaWVkQXJndW1lbnREZXNjcmlw
dG9yKHZtLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnNldE1vZGlm
aWVkQXJndW1lbnREZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgaW5kZXgpOworICAgICAgICAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0yNDYsOCArMjU5LDEwIEBAIGJv
b2wgR2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9i
amVjdCwgSlNHbG9iYWxPYmplY3QqCiAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtPnB1
dERpcmVjdE1heUJlSW5kZXgoZ2xvYmFsT2JqZWN0LCBpZGVudCwgdmFsdWUpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT51bm1hcEFyZ3VtZW50KHZt
LCBpbmRleCk7Ci0gICAgICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnNldE1vZGlmaWVkQXJn
dW1lbnREZXNjcmlwdG9yKHZtLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPnVubWFwQXJndW1lbnQoZ2xvYmFsT2JqZWN0LCBpbmRleCk7CisgICAgICAgICAgICAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGhpc09iamVjdC0+c2V0TW9kaWZpZWRBcmd1bWVudERlc2NyaXB0b3IoZ2xvYmFsT2JqZWN0
LCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGZhbHNlKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAg
LTI1OCwxMiArMjczLDE5IEBAIGJvb2wgR2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6ZGVmaW5lT3du
UHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqCiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFR5cGU+Ci12b2lkIEdlbmVyaWNBcmd1bWVudHM8VHlwZT46OmluaXRNb2RpZmll
ZEFyZ3VtZW50c0Rlc2NyaXB0b3IoVk0mIHZtLCB1bnNpZ25lZCBhcmdzTGVuZ3RoKQordm9pZCBH
ZW5lcmljQXJndW1lbnRzPFR5cGU+Ojppbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGFyZ3NMZW5ndGgpCiB7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKwogICAgIFJFTEVBU0VfQVNTRVJUKCFtX21vZGlmaWVkQXJndW1lbnRz
RGVzY3JpcHRvcik7CiAKICAgICBpZiAoYXJnc0xlbmd0aCkgewotICAgICAgICB2b2lkKiBiYWNr
aW5nU3RvcmUgPSB2bS5naWdhY2FnZUF1eGlsaWFyeVNwYWNlKG1fbW9kaWZpZWRBcmd1bWVudHNE
ZXNjcmlwdG9yLmtpbmQpLmFsbG9jYXRlTm9uVmlydHVhbCh2bSwgV1RGOjpyb3VuZFVwVG9NdWx0
aXBsZU9mPDg+KGFyZ3NMZW5ndGgpLCBudWxscHRyLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGU6OkFz
c2VydCk7CisgICAgICAgIHZvaWQqIGJhY2tpbmdTdG9yZSA9IHZtLmdpZ2FjYWdlQXV4aWxpYXJ5
U3BhY2UobV9tb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3Iua2luZCkuYWxsb2NhdGVOb25WaXJ0
dWFsKHZtLCBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Y8OD4oYXJnc0xlbmd0aCksIG51bGxwdHIs
IEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6UmV0dXJuTnVsbCk7CisgICAgICAgIGlmICghYmFja2lu
Z1N0b3JlKSB7CisgICAgICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgYm9vbCog
bW9kaWZpZWRBcmd1bWVudHMgPSBzdGF0aWNfY2FzdDxib29sKj4oYmFja2luZ1N0b3JlKTsKICAg
ICAgICAgbV9tb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3Iuc2V0KHZtLCB0aGlzLCBtb2RpZmll
ZEFyZ3VtZW50cywgYXJnc0xlbmd0aCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGFyZ3NM
ZW5ndGg7IGktLTspCkBAIC0yNzIsMTYgKzI5NCwyMCBAQCB2b2lkIEdlbmVyaWNBcmd1bWVudHM8
VHlwZT46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3IoVk0mIHZtLCB1bnNpZ25lZCBh
cgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgotdm9pZCBHZW5lcmljQXJndW1lbnRzPFR5
cGU+Ojppbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNlc3NhcnkoVk0mIHZtLCB1
bnNpZ25lZCBhcmdzTGVuZ3RoKQordm9pZCBHZW5lcmljQXJndW1lbnRzPFR5cGU+Ojppbml0TW9k
aWZpZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNlc3NhcnkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgdW5zaWduZWQgYXJnc0xlbmd0aCkKIHsKICAgICBpZiAoIW1fbW9kaWZpZWRBcmd1
bWVudHNEZXNjcmlwdG9yKQotICAgICAgICBpbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9y
KHZtLCBhcmdzTGVuZ3RoKTsKKyAgICAgICAgaW5pdE1vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRv
cihnbG9iYWxPYmplY3QsIGFyZ3NMZW5ndGgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBl
Pgotdm9pZCBHZW5lcmljQXJndW1lbnRzPFR5cGU+OjpzZXRNb2RpZmllZEFyZ3VtZW50RGVzY3Jp
cHRvcihWTSYgdm0sIHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBsZW5ndGgpCit2b2lkIEdlbmVy
aWNBcmd1bWVudHM8VHlwZT46OnNldE1vZGlmaWVkQXJndW1lbnREZXNjcmlwdG9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBsZW5ndGgpCiB7
Ci0gICAgaW5pdE1vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KHZtLCBsZW5n
dGgpOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpbml0TW9kaWZpZWRBcmd1bWVudHNEZXNj
cmlwdG9ySWZOZWNlc3NhcnkoZ2xvYmFsT2JqZWN0LCBsZW5ndGgpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgaWYgKGluZGV4IDwgbGVuZ3RoKQogICAgICAg
ICBtX21vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvci5hdChpbmRleCwgbGVuZ3RoKSA9IHRydWU7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1
bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRz
LmNwcAppbmRleCAzYzc0MGQ0OGY2Mi4uOWRkODFiOGVjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmNwcApAQCAtMTIxLDI1ICsxMjEs
MjggQEAgU3RydWN0dXJlKiBTY29wZWRBcmd1bWVudHM6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVh
dGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhTY29wZWRBcmd1bWVudHNU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKLXZvaWQgU2NvcGVkQXJndW1lbnRz
OjpvdmVycmlkZVRoaW5ncyhWTSYgdm0pCit2b2lkIFNjb3BlZEFyZ3VtZW50czo6b3ZlcnJpZGVU
aGluZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKKyAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CisKICAgICBSRUxFQVNFX0FTU0VSVCghbV9vdmVycm9kZVRoaW5ncyk7
CiAgICAgCiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVt
YmVyKG1fdGFibGUtPmxlbmd0aCgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
Y2FsbGVlLCBtX2NhbGxlZS5nZXQoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+
aXRlcmF0b3JTeW1ib2wsIGdsb2JhbE9iamVjdCh2bSktPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlv
bigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7
CisgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2xv
YmFsT2JqZWN0LT5hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24oKSwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIAogICAgIG1fb3ZlcnJvZGVU
aGluZ3MgPSB0cnVlOwogfQogCi12b2lkIFNjb3BlZEFyZ3VtZW50czo6b3ZlcnJpZGVUaGluZ3NJ
Zk5lY2Vzc2FyeShWTSYgdm0pCit2b2lkIFNjb3BlZEFyZ3VtZW50czo6b3ZlcnJpZGVUaGluZ3NJ
Zk5lY2Vzc2FyeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIGlmICghbV9v
dmVycm9kZVRoaW5ncykKLSAgICAgICAgb3ZlcnJpZGVUaGluZ3Modm0pOworICAgICAgICBvdmVy
cmlkZVRoaW5ncyhnbG9iYWxPYmplY3QpOwogfQogCi12b2lkIFNjb3BlZEFyZ3VtZW50czo6dW5t
YXBBcmd1bWVudChWTSYgdm0sIHVpbnQzMl90IGkpCit2b2lkIFNjb3BlZEFyZ3VtZW50czo6dW5t
YXBBcmd1bWVudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1aW50MzJfdCBpKQogewor
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklU
WV9JTVBMSUNBVElPTihpIDwgbV90b3RhbExlbmd0aCk7CiAgICAgdW5zaWduZWQgbmFtZWRMZW5n
dGggPSBtX3RhYmxlLT5sZW5ndGgoKTsKICAgICBpZiAoaSA8IG5hbWVkTGVuZ3RoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHMuaAppbmRleCBlNThj
YjIyZWZkNC4uNDE4N2E5M2U5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Njb3BlZEFyZ3VtZW50cy5oCkBAIC0xMjMsMTggKzEyMywxOCBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgYm9vbCBvdmVycm9kZVRoaW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJvZGVU
aGluZ3M7IH0KLSAgICB2b2lkIG92ZXJyaWRlVGhpbmdzKFZNJik7Ci0gICAgdm9pZCBvdmVycmlk
ZVRoaW5nc0lmTmVjZXNzYXJ5KFZNJik7Ci0gICAgdm9pZCB1bm1hcEFyZ3VtZW50KFZNJiwgdWlu
dDMyX3QgaW5kZXgpOworICAgIHZvaWQgb3ZlcnJpZGVUaGluZ3MoSlNHbG9iYWxPYmplY3QqKTsK
KyAgICB2b2lkIG92ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkoSlNHbG9iYWxPYmplY3QqKTsKKyAg
ICB2b2lkIHVubWFwQXJndW1lbnQoSlNHbG9iYWxPYmplY3QqLCB1aW50MzJfdCBpbmRleCk7CiAg
ICAgCi0gICAgdm9pZCBpbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNlc3Nhcnko
Vk0mIHZtKQorICAgIHZvaWQgaW5pdE1vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNz
YXJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewotICAgICAgICBHZW5lcmlj
QXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0
b3JJZk5lY2Vzc2FyeSh2bSwgbV90YWJsZS0+bGVuZ3RoKCkpOworICAgICAgICBHZW5lcmljQXJn
dW1lbnRzPFNjb3BlZEFyZ3VtZW50cz46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3JJ
Zk5lY2Vzc2FyeShnbG9iYWxPYmplY3QsIG1fdGFibGUtPmxlbmd0aCgpKTsKICAgICB9CiAKLSAg
ICB2b2lkIHNldE1vZGlmaWVkQXJndW1lbnREZXNjcmlwdG9yKFZNJiB2bSwgdW5zaWduZWQgaW5k
ZXgpCisgICAgdm9pZCBzZXRNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbmRleCkKICAgICB7Ci0gICAgICAgIEdlbmVyaWNB
cmd1bWVudHM8U2NvcGVkQXJndW1lbnRzPjo6c2V0TW9kaWZpZWRBcmd1bWVudERlc2NyaXB0b3Io
dm0sIGluZGV4LCBtX3RhYmxlLT5sZW5ndGgoKSk7CisgICAgICAgIEdlbmVyaWNBcmd1bWVudHM8
U2NvcGVkQXJndW1lbnRzPjo6c2V0TW9kaWZpZWRBcmd1bWVudERlc2NyaXB0b3IoZ2xvYmFsT2Jq
ZWN0LCBpbmRleCwgbV90YWJsZS0+bGVuZ3RoKCkpOwogICAgIH0KIAogICAgIGJvb2wgaXNNb2Rp
ZmllZEFyZ3VtZW50RGVzY3JpcHRvcih1bnNpZ25lZCBpbmRleCkK
</data>
<flag name="review"
          id="405811"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
    <flag name="commit-queue"
          id="405812"
          type_id="3"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390165</attachid>
            <date>2020-02-07 21:25:41 -0800</date>
            <delta_ts>2020-02-07 22:08:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch207423</filename>
            <type>text/plain</type>
            <size>18986</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDg0Nzk2NTE0MzA3Li5kZWJmZjE0MmNlNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMDItMDcgIFJvYmlu
IE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KKworICAgICAgICBUaHJvdyBPdXRPZk1l
bW9yeSBleGNlcHRpb24gaW5zdGVhZCBvZiBjcmFzaGluZyBpZiBEaXJlY3RBcmd1bWVudHMvU2Nv
cGVkQXJndW1lbnRzIGNhbid0IGJlIGNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzQyMworCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsg
TGFtLgorCisgICAgICAgIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNzZXJ0IGlzIHByb2JsZW1h
dGljIGJlY2F1c2UgZnV6emVycyBrZWVwIHByb2R1Y2luZyBzcHVyaW91cyBlcnJvciByZXBvcnRz
IHdoZW4gdGhleSBnZW5lcmF0ZSBjb2RlIHRoYXQgdHJpZXMgYWxsb2NhdGluZyBpbmZpbml0ZSBh
bW91bnQgb2YgbWVtb3J5LgorICAgICAgICBUaGUgcmlnaHQgYXBwcm9hY2ggaXMgdG8gdXNlIEFs
bG9jYXRpb25GYWlsdXJlTW9kZTo6UmV0dXJuTnVsbCwgYW5kIHRocm93IGEgSlMgZXhjZXB0aW9u
IHVwb24gcmVjZWl2aW5nIG51bGwuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCBJIGZpeGVkIHR3
byBmdW5jdGlvbnMgdGhhdCB3ZXJlIHVzaW5nIEFsbG9jYXRpb25GYWlsdXJlTW9kZTo6QXNzZXJ0
OgorICAgICAgICAgICAgRGlyZWN0QXJndW1lbnRzOjpEaXJlY3RBcmd1bWVudHM6Om92ZXJyaWRl
VGhpbmdzCisgICAgICAgICAgICBHZW5lcmljQXJndW1lbnRzPFR5cGU+Ojppbml0TW9kaWZpZWRB
cmd1bWVudHNEZXNjcmlwdG9yCisKKyAgICAgICAgTm8gdGVzdCBhZGRlZCwgYmVjYXVzZSB0aGUg
b25seSB0ZXN0IHdlIGhhdmUgaXMgaGlnaGx5IG5vbi1kZXRlcm1pbmlzdGljL2ZsYWt5IChvbmx5
IHRyaWdnZXJzIGFib3V0IDEwIHRvIDIwJSBvZiB0aGUgdGltZSBldmVuIGJlZm9yZSB0aGUgZml4
KS4KKworICAgICAgICAqIHJ1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmg6CisgICAgICAgICogcnVu
dGltZS9HZW5lcmljQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9HZW5lcmljQXJndW1l
bnRzSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpHZW5lcmljQXJndW1lbnRzPFR5cGU+OjpkZWxl
dGVQcm9wZXJ0eUJ5SW5kZXgpOgorICAgICAgICAoSlNDOjpHZW5lcmljQXJndW1lbnRzPFR5cGU+
OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkdlbmVyaWNBcmd1bWVudHM8VHlw
ZT46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3IpOgorICAgICAgICAoSlNDOjpHZW5l
cmljQXJndW1lbnRzPFR5cGU+Ojppbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNl
c3NhcnkpOgorICAgICAgICAoSlNDOjpHZW5lcmljQXJndW1lbnRzPFR5cGU+OjpzZXRNb2RpZmll
ZEFyZ3VtZW50RGVzY3JpcHRvcik6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1bWVudHMu
aDoKKwogMjAyMC0wMi0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIENvZGVCbG9jazo6c2hyaW5rVG9GaXQgc2hvdWxkIHNocmluayBtX2NvbnN0
YW50UmVnaXN0ZXJzIGFuZCBtX2NvbnN0YW50c1NvdXJjZUNvZGVSZXByZXNlbnRhdGlvbiBpbiA2
NGJpdCBhcmNoaXRlY3R1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCAyYTMzYmQzMzU2ZC4uMGUyYmMzYTI3MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApA
QCAtOTg3LDYgKzk4Nyw3IEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9kZWxfYnlfdmFsKQog
ICAgICAgICBDSEVDS19FWENFUFRJT04oKTsKICAgICAgICAgY291bGREZWxldGUgPSBiYXNlT2Jq
ZWN0LT5tZXRob2RUYWJsZSh2bSktPmRlbGV0ZVByb3BlcnR5KGJhc2VPYmplY3QsIGdsb2JhbE9i
amVjdCwgcHJvcGVydHkpOwogICAgIH0KKyAgICBDSEVDS19FWENFUFRJT04oKTsKICAgICAKICAg
ICBpZiAoIWNvdWxkRGVsZXRlICYmIGNvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCkpCiAgICAgICAg
IFRIUk9XKGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIFVuYWJsZVRvRGVsZXRlUHJvcGVy
dHlFcnJvcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGly
ZWN0QXJndW1lbnRzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEFy
Z3VtZW50cy5jcHAKaW5kZXggNGIzNDYxZGUyMmUuLjM4ZDg3OGFjMWM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RBcmd1bWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEFyZ3VtZW50cy5jcHAKQEAgLTExMCwz
MCArMTEwLDQyIEBAIFN0cnVjdHVyZSogRGlyZWN0QXJndW1lbnRzOjpjcmVhdGVTdHJ1Y3R1cmUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oRGlyZWN0QXJn
dW1lbnRzVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCi12b2lkIERpcmVjdEFy
Z3VtZW50czo6b3ZlcnJpZGVUaGluZ3MoVk0mIHZtKQordm9pZCBEaXJlY3RBcmd1bWVudHM6Om92
ZXJyaWRlVGhpbmdzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CisgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKwogICAgIFJFTEVBU0VfQVNTRVJUKCFtX21hcHBlZEFyZ3VtZW50cyk7CiAgICAg
CiAgICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKG1f
bGVuZ3RoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwogICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y2FsbGVlLCBtX2NhbGxl
ZS5nZXQoKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSkpOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2ws
IGdsb2JhbE9iamVjdCh2bSktPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlvbigpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CisgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2xvYmFsT2JqZWN0LT5hcnJh
eVByb3RvVmFsdWVzRnVuY3Rpb24oKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogICAgIAotICAgIHZvaWQqIGJhY2tpbmdTdG9yZSA9IHZtLmdp
Z2FjYWdlQXV4aWxpYXJ5U3BhY2UobV9tYXBwZWRBcmd1bWVudHMua2luZCkuYWxsb2NhdGVOb25W
aXJ0dWFsKHZtLCBtYXBwZWRBcmd1bWVudHNTaXplKCksIG51bGxwdHIsIEFsbG9jYXRpb25GYWls
dXJlTW9kZTo6QXNzZXJ0KTsKKyAgICB2b2lkKiBiYWNraW5nU3RvcmUgPSB2bS5naWdhY2FnZUF1
eGlsaWFyeVNwYWNlKG1fbWFwcGVkQXJndW1lbnRzLmtpbmQpLmFsbG9jYXRlTm9uVmlydHVhbCh2
bSwgbWFwcGVkQXJndW1lbnRzU2l6ZSgpLCBudWxscHRyLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGU6
OlJldHVybk51bGwpOworICAgIGlmIChVTkxJS0VMWSghYmFja2luZ1N0b3JlKSkgeworICAgICAg
ICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CiAgICAgYm9vbCogb3ZlcnJpZGVzID0gc3RhdGljX2Nhc3Q8Ym9vbCo+KGJh
Y2tpbmdTdG9yZSk7CiAgICAgbV9tYXBwZWRBcmd1bWVudHMuc2V0KHZtLCB0aGlzLCBvdmVycmlk
ZXMsIGludGVybmFsTGVuZ3RoKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IGludGVybmFsTGVu
Z3RoKCk7IGktLTspCiAgICAgICAgIG92ZXJyaWRlc1tpXSA9IGZhbHNlOwogfQogCi12b2lkIERp
cmVjdEFyZ3VtZW50czo6b3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2FyeShWTSYgdm0pCit2b2lkIERp
cmVjdEFyZ3VtZW50czo6b3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2FyeShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogewogICAgIGlmICghbV9tYXBwZWRBcmd1bWVudHMpCi0gICAgICAgIG92
ZXJyaWRlVGhpbmdzKHZtKTsKKyAgICAgICAgb3ZlcnJpZGVUaGluZ3MoZ2xvYmFsT2JqZWN0KTsK
IH0KIAotdm9pZCBEaXJlY3RBcmd1bWVudHM6OnVubWFwQXJndW1lbnQoVk0mIHZtLCB1bnNpZ25l
ZCBpbmRleCkKK3ZvaWQgRGlyZWN0QXJndW1lbnRzOjp1bm1hcEFyZ3VtZW50KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluZGV4KQogewotICAgIG92ZXJyaWRlVGhpbmdz
SWZOZWNlc3Nhcnkodm0pOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBvdmVycmlkZVRoaW5n
c0lmTmVjZXNzYXJ5KGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKKwogICAgIG1fbWFwcGVkQXJndW1lbnRzLmF0KGluZGV4LCBpbnRlcm5hbExl
bmd0aCgpKSA9IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RpcmVjdEFyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGlyZWN0QXJndW1lbnRzLmgKaW5kZXggOGQ5NjQyYTJjOTQuLmNlNzYxMGI1MDAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RBcmd1bWVudHMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RBcmd1bWVudHMuaApAQCAtMTI1
LDE4ICsxMjUsMTggQEAgcHVibGljOgogICAgIAogICAgIC8vIE1ldGhvZHMgaW50ZW5kZWQgZm9y
IHVzZSBieSB0aGUgR2VuZXJpY0FyZ3VtZW50cyBtaXhpbi4KICAgICBib29sIG92ZXJyb2RlVGhp
bmdzKCkgY29uc3QgeyByZXR1cm4gISFtX21hcHBlZEFyZ3VtZW50czsgfQotICAgIHZvaWQgb3Zl
cnJpZGVUaGluZ3MoVk0mKTsKLSAgICB2b2lkIG92ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkoVk0m
KTsKLSAgICB2b2lkIHVubWFwQXJndW1lbnQoVk0mLCB1bnNpZ25lZCBpbmRleCk7CisgICAgdm9p
ZCBvdmVycmlkZVRoaW5ncyhKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgb3ZlcnJpZGVUaGlu
Z3NJZk5lY2Vzc2FyeShKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgdW5tYXBBcmd1bWVudChK
U0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIGluZGV4KTsKIAotICAgIHZvaWQgaW5pdE1vZGlmaWVk
QXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KFZNJiB2bSkKKyAgICB2b2lkIGluaXRNb2Rp
ZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3JJZk5lY2Vzc2FyeShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgIHsKLSAgICAgICAgR2VuZXJpY0FyZ3VtZW50czxEaXJlY3RBcmd1bWVudHM+
Ojppbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNlc3Nhcnkodm0sIG1fbGVuZ3Ro
KTsKKyAgICAgICAgR2VuZXJpY0FyZ3VtZW50czxEaXJlY3RBcmd1bWVudHM+Ojppbml0TW9kaWZp
ZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNlc3NhcnkoZ2xvYmFsT2JqZWN0LCBtX2xlbmd0aCk7
CiAgICAgfQogCi0gICAgdm9pZCBzZXRNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcihWTSYgdm0s
IHVuc2lnbmVkIGluZGV4KQorICAgIHZvaWQgc2V0TW9kaWZpZWRBcmd1bWVudERlc2NyaXB0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5kZXgpCiAgICAgewotICAg
ICAgICBHZW5lcmljQXJndW1lbnRzPERpcmVjdEFyZ3VtZW50cz46OnNldE1vZGlmaWVkQXJndW1l
bnREZXNjcmlwdG9yKHZtLCBpbmRleCwgbV9sZW5ndGgpOworICAgICAgICBHZW5lcmljQXJndW1l
bnRzPERpcmVjdEFyZ3VtZW50cz46OnNldE1vZGlmaWVkQXJndW1lbnREZXNjcmlwdG9yKGdsb2Jh
bE9iamVjdCwgaW5kZXgsIG1fbGVuZ3RoKTsKICAgICB9CiAKICAgICBib29sIGlzTW9kaWZpZWRB
cmd1bWVudERlc2NyaXB0b3IodW5zaWduZWQgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljQXJndW1lbnRzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HZW5lcmljQXJndW1lbnRzLmgKaW5kZXggMDc0YzIxNjJkOGQuLmNlMTBm
N2ZlNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmlj
QXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY0Fy
Z3VtZW50cy5oCkBAIC01NCw5ICs1NCw5IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9vbCBk
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiwgSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBib29sIGRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0
KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRv
ciYsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgIAotICAgIHZvaWQgaW5pdE1vZGlmaWVkQXJndW1l
bnRzRGVzY3JpcHRvcihWTSYsIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgdm9pZCBpbml0TW9kaWZp
ZWRBcmd1bWVudHNEZXNjcmlwdG9ySWZOZWNlc3NhcnkoVk0mLCB1bnNpZ25lZCBsZW5ndGgpOwot
ICAgIHZvaWQgc2V0TW9kaWZpZWRBcmd1bWVudERlc2NyaXB0b3IoVk0mLCB1bnNpZ25lZCBpbmRl
eCwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICB2b2lkIGluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2Ny
aXB0b3IoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHZvaWQgaW5pdE1v
ZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KEpTR2xvYmFsT2JqZWN0KiwgdW5z
aWduZWQgbGVuZ3RoKTsKKyAgICB2b2lkIHNldE1vZGlmaWVkQXJndW1lbnREZXNjcmlwdG9yKEpT
R2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgaW5kZXgsIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgYm9v
bCBpc01vZGlmaWVkQXJndW1lbnREZXNjcmlwdG9yKHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBs
ZW5ndGgpOwogCiAgICAgdm9pZCBjb3B5VG9Bcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqLCBKU1Zh
bHVlKiBmaXJzdEVsZW1lbnREZXN0LCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljQXJndW1l
bnRzSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY0FyZ3Vt
ZW50c0lubGluZXMuaAppbmRleCBlMGFhYmY1ZjJlZS4uNzliYzc3MzAxNjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNBcmd1bWVudHNJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY0FyZ3VtZW50c0lubGlu
ZXMuaApAQCAtMTE3LDE0ICsxMTcsMTYgQEAgYm9vbCBHZW5lcmljQXJndW1lbnRzPFR5cGU+Ojpw
dXQoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm8KIHsKICAg
ICBUeXBlKiB0aGlzT2JqZWN0ID0ganNDYXN0PFR5cGUqPihjZWxsKTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwogICAgIAogICAgIGlmICghdGhpc09iamVjdC0+b3ZlcnJvZGVUaGluZ3MoKQogICAgICAg
ICAmJiAoaWRlbnQgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoCiAgICAgICAgICAgICB8fCBp
ZGVudCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZWUKICAgICAgICAgICAgIHx8IGlkZW50ID09
IHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sKSkgewotICAgICAgICB0aGlzT2JqZWN0
LT5vdmVycmlkZVRoaW5ncyh2bSk7CisgICAgICAgIHRoaXNPYmplY3QtPm92ZXJyaWRlVGhpbmdz
KGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNl
KTsKICAgICAgICAgUHV0UHJvcGVydHlTbG90IGR1bW15ID0gc2xvdDsgLy8gVGhpcyBwdXQgaXMg
bm90IGNhY2hlYWJsZSwgc28gd2Ugc2hhZG93IHRoZSBzbG90IHRoYXQgd2FzIGdpdmVuIHRvIHVz
LgotICAgICAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwgaWRl
bnQsIHZhbHVlLCBkdW1teSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgQmFz
ZTo6cHV0KHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwgaWRlbnQsIHZhbHVlLCBkdW1teSkpOwog
ICAgIH0KIAogICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFyZ3Vt
ZW50cy1leG90aWMtb2JqZWN0cy1zZXQtcC12LXJlY2VpdmVyCkBAIC0xMzgsNyArMTQwLDcgQEAg
Ym9vbCBHZW5lcmljQXJndW1lbnRzPFR5cGU+OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBQcm8KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAg
IAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBpZGVudCwg
dmFsdWUsIHNsb3QpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgQmFzZTo6cHV0KHRo
aXNPYmplY3QsIGdsb2JhbE9iamVjdCwgaWRlbnQsIHZhbHVlLCBzbG90KSk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFR5cGU+CkBAIC0xNjAsMjQgKzE2MiwyOSBAQCBib29sIEdlbmVyaWNBcmd1
bWVudHM8VHlwZT46OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbAogewogICAgIFR5cGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8VHlwZSo+KGNlbGwpOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAgICAgCiAgICAgaWYgKCF0aGlzT2JqZWN0LT5vdmVycm9kZVRo
aW5ncygpCiAgICAgICAgICYmIChpZGVudCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgKICAg
ICAgICAgICAgIHx8IGlkZW50ID09IHZtLnByb3BlcnR5TmFtZXMtPmNhbGxlZQotICAgICAgICAg
ICAgfHwgaWRlbnQgPT0gdm0ucHJvcGVydHlOYW1lcy0+aXRlcmF0b3JTeW1ib2wpKQotICAgICAg
ICB0aGlzT2JqZWN0LT5vdmVycmlkZVRoaW5ncyh2bSk7Ci0gICAgCisgICAgICAgICAgICB8fCBp
ZGVudCA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCkpIHsKKyAgICAgICAgdGhp
c09iamVjdC0+b3ZlcnJpZGVUaGluZ3MoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOworICAgIH0KKwogICAgIGlmIChPcHRpb25hbDx1aW50
MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KGlkZW50KSkKLSAgICAgICAgcmV0dXJuIEdlbmVyaWNB
cmd1bWVudHM8VHlwZT46OmRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzT2JqZWN0LCBnbG9iYWxP
YmplY3QsICppbmRleCk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgR2VuZXJp
Y0FyZ3VtZW50czxUeXBlPjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3QsIGdsb2Jh
bE9iamVjdCwgKmluZGV4KSk7CiAKLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkodGhp
c09iamVjdCwgZ2xvYmFsT2JqZWN0LCBpZGVudCk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIGlkZW50
KSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBib29sIEdlbmVyaWNBcmd1bWVudHM8
VHlwZT46OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluZGV4KQogewotICAgIFR5cGUqIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8VHlwZSo+KGNlbGwpOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBUeXBlKiB0
aGlzT2JqZWN0ID0ganNDYXN0PFR5cGUqPihjZWxsKTsKIAogICAgIGJvb2wgcHJvcGVydHlNaWdo
dEJlSW5KU09iamVjdFN0b3JhZ2UgPSB0aGlzT2JqZWN0LT5pc01vZGlmaWVkQXJndW1lbnREZXNj
cmlwdG9yKGluZGV4KSB8fCAhdGhpc09iamVjdC0+aXNNYXBwZWRBcmd1bWVudChpbmRleCk7CiAg
ICAgYm9vbCBkZWxldGVkUHJvcGVydHkgPSB0cnVlOwpAQCAtMTg4LDkgKzE5NSwxMSBAQCBib29s
IEdlbmVyaWNBcmd1bWVudHM8VHlwZT46OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNl
bGwsIEpTR2xvYmFsT2JqZWN0KgogICAgICAgICAvLyBEZWxldGluZyBhbiBpbmRleGVkIHByb3Bl
cnR5IHVuY29uZGl0aW9uYWxseSB1bm1hcHMgaXQuCiAgICAgICAgIGlmICh0aGlzT2JqZWN0LT5p
c01hcHBlZEFyZ3VtZW50KGluZGV4KSkgewogICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVj
ayB0aGF0IHRoZSBwcm9wZXJ0eSB3YXMgbWFwcGVkIHNvIHdlIGRvbid0IHdyaXRlIHRvIHJhbmRv
bSBtZW1vcnkuCi0gICAgICAgICAgICB0aGlzT2JqZWN0LT51bm1hcEFyZ3VtZW50KHZtLCBpbmRl
eCk7CisgICAgICAgICAgICB0aGlzT2JqZWN0LT51bm1hcEFyZ3VtZW50KGdsb2JhbE9iamVjdCwg
aW5kZXgpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdHJ1ZSk7CiAg
ICAgICAgIH0KLSAgICAgICAgdGhpc09iamVjdC0+c2V0TW9kaWZpZWRBcmd1bWVudERlc2NyaXB0
b3Iodm0sIGluZGV4KTsKKyAgICAgICAgdGhpc09iamVjdC0+c2V0TW9kaWZpZWRBcmd1bWVudERl
c2NyaXB0b3IoZ2xvYmFsT2JqZWN0LCBpbmRleCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHRydWUpOwogICAgIH0KIAogICAgIHJldHVybiBkZWxldGVkUHJvcGVydHk7CkBA
IC0yMDUsOSArMjE0LDEwIEBAIGJvb2wgR2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6ZGVmaW5lT3du
UHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqCiAgICAgCiAgICAgaWYg
KGlkZW50ID09IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aAogICAgICAgICB8fCBpZGVudCA9PSB2
bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZWUKLSAgICAgICAgfHwgaWRlbnQgPT0gdm0ucHJvcGVydHlO
YW1lcy0+aXRlcmF0b3JTeW1ib2wpCi0gICAgICAgIHRoaXNPYmplY3QtPm92ZXJyaWRlVGhpbmdz
SWZOZWNlc3Nhcnkodm0pOwotICAgIGVsc2UgeworICAgICAgICB8fCBpZGVudCA9PSB2bS5wcm9w
ZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCkgeworICAgICAgICB0aGlzT2JqZWN0LT5vdmVycmlk
ZVRoaW5nc0lmTmVjZXNzYXJ5KGdsb2JhbE9iamVjdCk7CisgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGZhbHNlKTsKKyAgICB9IGVsc2UgewogICAgICAgICBPcHRpb25hbDx1aW50
MzJfdD4gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgoaWRlbnQpOwogICAgICAgICBpZiAob3B0
aW9uYWxJbmRleCkgewogICAgICAgICAgICAgdWludDMyX3QgaW5kZXggPSBvcHRpb25hbEluZGV4
LnZhbHVlKCk7CkBAIC0yMzAsNyArMjQwLDggQEAgYm9vbCBHZW5lcmljQXJndW1lbnRzPFR5cGU+
OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCoKICAg
ICAgICAgICAgICAgICAgICAgb2JqZWN0LT5wdXREaXJlY3RNYXlCZUluZGV4KGdsb2JhbE9iamVj
dCwgaWRlbnQsIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNl
cHRpb24oKTsKIAotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5zZXRNb2RpZmllZEFy
Z3VtZW50RGVzY3JpcHRvcih2bSwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICB0aGlzT2Jq
ZWN0LT5zZXRNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIGluZGV4KTsK
KyAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtMjQ2LDgg
KzI1NywxMCBAQCBib29sIEdlbmVyaWNBcmd1bWVudHM8VHlwZT46OmRlZmluZU93blByb3BlcnR5
KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KgogICAgICAgICAgICAgICAgICAgICAg
ICAgb2JqZWN0LT5wdXREaXJlY3RNYXlCZUluZGV4KGdsb2JhbE9iamVjdCwgaWRlbnQsIHZhbHVl
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CiAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgdGhpc09iamVjdC0+dW5t
YXBBcmd1bWVudCh2bSwgaW5kZXgpOwotICAgICAgICAgICAgICAgICAgICB0aGlzT2JqZWN0LT5z
ZXRNb2RpZmllZEFyZ3VtZW50RGVzY3JpcHRvcih2bSwgaW5kZXgpOworICAgICAgICAgICAgICAg
ICAgICB0aGlzT2JqZWN0LT51bm1hcEFyZ3VtZW50KGdsb2JhbE9iamVjdCwgaW5kZXgpOworICAg
ICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXNPYmplY3QtPnNldE1vZGlmaWVkQXJndW1lbnREZXNjcmlwdG9y
KGdsb2JhbE9iamVjdCwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC0yNTgsMTIgKzI3MSwxOSBAQCBib29sIEdlbmVyaWNBcmd1bWVudHM8VHlw
ZT46OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0Kgog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgotdm9pZCBHZW5lcmljQXJndW1lbnRzPFR5cGU+
Ojppbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9yKFZNJiB2bSwgdW5zaWduZWQgYXJnc0xl
bmd0aCkKK3ZvaWQgR2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6aW5pdE1vZGlmaWVkQXJndW1lbnRz
RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBhcmdzTGVu
Z3RoKQogeworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKICAgICBSRUxFQVNFX0FTU0VSVCghbV9tb2Rp
ZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3IpOwogCiAgICAgaWYgKGFyZ3NMZW5ndGgpIHsKLSAgICAg
ICAgdm9pZCogYmFja2luZ1N0b3JlID0gdm0uZ2lnYWNhZ2VBdXhpbGlhcnlTcGFjZShtX21vZGlm
aWVkQXJndW1lbnRzRGVzY3JpcHRvci5raW5kKS5hbGxvY2F0ZU5vblZpcnR1YWwodm0sIFdURjo6
cm91bmRVcFRvTXVsdGlwbGVPZjw4PihhcmdzTGVuZ3RoKSwgbnVsbHB0ciwgQWxsb2NhdGlvbkZh
aWx1cmVNb2RlOjpBc3NlcnQpOworICAgICAgICB2b2lkKiBiYWNraW5nU3RvcmUgPSB2bS5naWdh
Y2FnZUF1eGlsaWFyeVNwYWNlKG1fbW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9yLmtpbmQpLmFs
bG9jYXRlTm9uVmlydHVhbCh2bSwgV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mPDg+KGFyZ3NMZW5n
dGgpLCBudWxscHRyLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGU6OlJldHVybk51bGwpOworICAgICAg
ICBpZiAoVU5MSUtFTFkoIWJhY2tpbmdTdG9yZSkpIHsKKyAgICAgICAgICAgIHRocm93T3V0T2ZN
ZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogICAgICAgICBib29sKiBtb2RpZmllZEFyZ3VtZW50cyA9IHN0YXRpY19jYXN0PGJv
b2wqPihiYWNraW5nU3RvcmUpOwogICAgICAgICBtX21vZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRv
ci5zZXQodm0sIHRoaXMsIG1vZGlmaWVkQXJndW1lbnRzLCBhcmdzTGVuZ3RoKTsKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gYXJnc0xlbmd0aDsgaS0tOykKQEAgLTI3MiwxNiArMjkyLDIwIEBA
IHZvaWQgR2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6aW5pdE1vZGlmaWVkQXJndW1lbnRzRGVzY3Jp
cHRvcihWTSYgdm0sIHVuc2lnbmVkIGFyCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+Ci12
b2lkIEdlbmVyaWNBcmd1bWVudHM8VHlwZT46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0
b3JJZk5lY2Vzc2FyeShWTSYgdm0sIHVuc2lnbmVkIGFyZ3NMZW5ndGgpCit2b2lkIEdlbmVyaWNB
cmd1bWVudHM8VHlwZT46OmluaXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3JJZk5lY2Vzc2Fy
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBhcmdzTGVuZ3RoKQogewog
ICAgIGlmICghbV9tb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3IpCi0gICAgICAgIGluaXRNb2Rp
ZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3Iodm0sIGFyZ3NMZW5ndGgpOworICAgICAgICBpbml0TW9k
aWZpZWRBcmd1bWVudHNEZXNjcmlwdG9yKGdsb2JhbE9iamVjdCwgYXJnc0xlbmd0aCk7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+Ci12b2lkIEdlbmVyaWNBcmd1bWVudHM8VHlwZT46OnNl
dE1vZGlmaWVkQXJndW1lbnREZXNjcmlwdG9yKFZNJiB2bSwgdW5zaWduZWQgaW5kZXgsIHVuc2ln
bmVkIGxlbmd0aCkKK3ZvaWQgR2VuZXJpY0FyZ3VtZW50czxUeXBlPjo6c2V0TW9kaWZpZWRBcmd1
bWVudERlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5k
ZXgsIHVuc2lnbmVkIGxlbmd0aCkKIHsKLSAgICBpbml0TW9kaWZpZWRBcmd1bWVudHNEZXNjcmlw
dG9ySWZOZWNlc3Nhcnkodm0sIGxlbmd0aCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIGlu
aXRNb2RpZmllZEFyZ3VtZW50c0Rlc2NyaXB0b3JJZk5lY2Vzc2FyeShnbG9iYWxPYmplY3QsIGxl
bmd0aCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICBpZiAo
aW5kZXggPCBsZW5ndGgpCiAgICAgICAgIG1fbW9kaWZpZWRBcmd1bWVudHNEZXNjcmlwdG9yLmF0
KGluZGV4LCBsZW5ndGgpID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TY29wZWRBcmd1bWVudHMuY3BwCmluZGV4IDNjNzQwZDQ4ZjYyLi45ZGQ4MWI4ZWM4
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1l
bnRzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVu
dHMuY3BwCkBAIC0xMjEsMjUgKzEyMSwyOCBAQCBTdHJ1Y3R1cmUqIFNjb3BlZEFyZ3VtZW50czo6
Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5
cGVJbmZvKFNjb3BlZEFyZ3VtZW50c1R5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0K
IAotdm9pZCBTY29wZWRBcmd1bWVudHM6Om92ZXJyaWRlVGhpbmdzKFZNJiB2bSkKK3ZvaWQgU2Nv
cGVkQXJndW1lbnRzOjpvdmVycmlkZVRoaW5ncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogeworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKwogICAgIFJFTEVBU0VfQVNT
RVJUKCFtX292ZXJyb2RlVGhpbmdzKTsKICAgICAKICAgICBwdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIobV90YWJsZS0+bGVuZ3RoKCkpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jYWxsZWUsIG1fY2FsbGVlLmdldCgpLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgcHV0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2xvYmFsT2JqZWN0KHZtKS0+
YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKKyAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPml0ZXJhdG9yU3ltYm9sLCBnbG9iYWxPYmplY3QtPmFycmF5UHJvdG9WYWx1ZXNGdW5jdGlv
bigpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7
CiAgICAgCiAgICAgbV9vdmVycm9kZVRoaW5ncyA9IHRydWU7CiB9CiAKLXZvaWQgU2NvcGVkQXJn
dW1lbnRzOjpvdmVycmlkZVRoaW5nc0lmTmVjZXNzYXJ5KFZNJiB2bSkKK3ZvaWQgU2NvcGVkQXJn
dW1lbnRzOjpvdmVycmlkZVRoaW5nc0lmTmVjZXNzYXJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCiB7CiAgICAgaWYgKCFtX292ZXJyb2RlVGhpbmdzKQotICAgICAgICBvdmVycmlkZVRo
aW5ncyh2bSk7CisgICAgICAgIG92ZXJyaWRlVGhpbmdzKGdsb2JhbE9iamVjdCk7CiB9CiAKLXZv
aWQgU2NvcGVkQXJndW1lbnRzOjp1bm1hcEFyZ3VtZW50KFZNJiB2bSwgdWludDMyX3QgaSkKK3Zv
aWQgU2NvcGVkQXJndW1lbnRzOjp1bm1hcEFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIHVpbnQzMl90IGkpCiB7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGkgPCBtX3RvdGFsTGVuZ3RoKTsK
ICAgICB1bnNpZ25lZCBuYW1lZExlbmd0aCA9IG1fdGFibGUtPmxlbmd0aCgpOwogICAgIGlmIChp
IDwgbmFtZWRMZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TY29wZWRBcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3Bl
ZEFyZ3VtZW50cy5oCmluZGV4IGU1OGNiMjJlZmQ0Li40MTg3YTkzZTk1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzLmgKQEAgLTEyMywxOCAr
MTIzLDE4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBib29sIG92ZXJyb2RlVGhpbmdzKCkgY29u
c3QgeyByZXR1cm4gbV9vdmVycm9kZVRoaW5nczsgfQotICAgIHZvaWQgb3ZlcnJpZGVUaGluZ3Mo
Vk0mKTsKLSAgICB2b2lkIG92ZXJyaWRlVGhpbmdzSWZOZWNlc3NhcnkoVk0mKTsKLSAgICB2b2lk
IHVubWFwQXJndW1lbnQoVk0mLCB1aW50MzJfdCBpbmRleCk7CisgICAgdm9pZCBvdmVycmlkZVRo
aW5ncyhKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgb3ZlcnJpZGVUaGluZ3NJZk5lY2Vzc2Fy
eShKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgdW5tYXBBcmd1bWVudChKU0dsb2JhbE9iamVj
dCosIHVpbnQzMl90IGluZGV4KTsKICAgICAKLSAgICB2b2lkIGluaXRNb2RpZmllZEFyZ3VtZW50
c0Rlc2NyaXB0b3JJZk5lY2Vzc2FyeShWTSYgdm0pCisgICAgdm9pZCBpbml0TW9kaWZpZWRBcmd1
bWVudHNEZXNjcmlwdG9ySWZOZWNlc3NhcnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ICAgICB7Ci0gICAgICAgIEdlbmVyaWNBcmd1bWVudHM8U2NvcGVkQXJndW1lbnRzPjo6aW5pdE1v
ZGlmaWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KHZtLCBtX3RhYmxlLT5sZW5ndGgo
KSk7CisgICAgICAgIEdlbmVyaWNBcmd1bWVudHM8U2NvcGVkQXJndW1lbnRzPjo6aW5pdE1vZGlm
aWVkQXJndW1lbnRzRGVzY3JpcHRvcklmTmVjZXNzYXJ5KGdsb2JhbE9iamVjdCwgbV90YWJsZS0+
bGVuZ3RoKCkpOwogICAgIH0KIAotICAgIHZvaWQgc2V0TW9kaWZpZWRBcmd1bWVudERlc2NyaXB0
b3IoVk0mIHZtLCB1bnNpZ25lZCBpbmRleCkKKyAgICB2b2lkIHNldE1vZGlmaWVkQXJndW1lbnRE
ZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluZGV4KQog
ICAgIHsKLSAgICAgICAgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+OjpzZXRNb2Rp
ZmllZEFyZ3VtZW50RGVzY3JpcHRvcih2bSwgaW5kZXgsIG1fdGFibGUtPmxlbmd0aCgpKTsKKyAg
ICAgICAgR2VuZXJpY0FyZ3VtZW50czxTY29wZWRBcmd1bWVudHM+OjpzZXRNb2RpZmllZEFyZ3Vt
ZW50RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIGluZGV4LCBtX3RhYmxlLT5sZW5ndGgoKSk7CiAg
ICAgfQogCiAgICAgYm9vbCBpc01vZGlmaWVkQXJndW1lbnREZXNjcmlwdG9yKHVuc2lnbmVkIGlu
ZGV4KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>