<?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>225011</bug_id>
          
          <creation_ts>2021-04-23 18:07:47 -0700</creation_ts>
          <short_desc>[Metal ANGLE] support primitive restart behavior with simple data types</short_desc>
          <delta_ts>2021-04-25 12:18:16 -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>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="Kyle Piddington">kpiddington</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1753817</commentid>
    <comment_count>0</comment_count>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-04-23 18:07:47 -0700</bug_when>
    <thetext>[Metal ANGLE] support primitive restart behavior with simple data types</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753818</commentid>
    <comment_count>1</comment_count>
      <attachid>426970</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-04-23 18:11:10 -0700</bug_when>
    <thetext>Created attachment 426970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753819</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-04-23 18:12:21 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753823</commentid>
    <comment_count>3</comment_count>
      <attachid>426970</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-04-23 18:59:02 -0700</bug_when>
    <thetext>Comment on attachment 426970
Patch

another patch coming, this one has some bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753824</commentid>
    <comment_count>4</comment_count>
      <attachid>426973</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-04-23 19:10:18 -0700</bug_when>
    <thetext>Created attachment 426973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754031</commentid>
    <comment_count>5</comment_count>
      <attachid>426973</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-04-25 11:41:08 -0700</bug_when>
    <thetext>Comment on attachment 426973
Patch

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

&gt; Source/ThirdParty/ANGLE/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=225011

Could you add the radar link in here?

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/BufferMtl.mm:418
&gt; +    T *bufferData = (T*)(idxBuffer-&gt;mapReadOnly(ctx));

I&apos;m not sure of ANGLE style, but wouldn&apos;t this be better as:

auto* bufferData = static_cast&lt;T*&gt;(idxBuffer-&gt;mapReadOnly(ctx));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754038</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-25 12:17:19 -0700</bug_when>
    <thetext>Committed r276569 (237005@main): &lt;https://commits.webkit.org/237005@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426973.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754039</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-25 12:18:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/77125913&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426970</attachid>
            <date>2021-04-23 18:11:10 -0700</date>
            <delta_ts>2021-04-23 19:10:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225011-20210423181109.patch</filename>
            <type>text/plain</type>
            <size>27136</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggZmYyMGZlY2Q0NTAxZmE3YTlmODQxN2Y0M2FhZDdiMGRlMmIxMTljNS4uMTY5ZmM5ODAzNTg4
NTJhMjZhNmY5YjRkOTUzMDIzZGRkMmE2MWI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA0LTIzICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01ldGFsIEFOR0xFXSBzdXBwb3J0IHByaW1pdGl2
ZSByZXN0YXJ0IGJlaGF2aW9yIHdpdGggc2ltcGxlIGRhdGEgdHlwZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTAxMQorCisgICAgICAgIFByaW1p
dGl2ZSByZXN0YXJ0IGJlaGF2aW9yIGZvciBzaW1wbGUgZGF0YSB0eXBlcyBpcyBub3QgZGVmaW5l
ZCBpbiBNZXRhbC4gQWRkIGEgcHJlLWRyYXcgcGFzcyB0byAKKyAgICAgICAgY3JlYXRlIGEgc2V0
IG9mIHJlc3RhcnQgaW5kaWNlcywgcmF0aGVyIHRoYW4gcmUtd3JpdGUgdGhlIGluZGV4IGJ1ZmZl
ci4gVGhpcyBwYXNzIGF2b2lkcyAKKyAgICAgICAgc3RvcmluZyBtb3JlIGNvcGllcyBvZiB0aGUg
aW5kZXggYnVmZmVyOiBpbnN0ZWFkLCB3ZSBjYWNoZSB0aGUgbG9jYXRpb24gb2YgcmVzdGFydCBp
bmRpY2VzLCBhbmQKKyAgICAgICAgdXNlIHRoZW0gdG8gYnVpbGQgZHJhdyBsaXN0cy4KKyAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmg6CisgICAgICAgICogc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbToKKyAgICAgICAgKHJ4OjpJbmRleENvbnZlcnNpb25C
dWZmZXJNdGw6OkluZGV4Q29udmVyc2lvbkJ1ZmZlck10bCk6CisgICAgICAgIChyeDo6QnVmZmVy
TXRsOjptYXJrQ29udmVyc2lvbkJ1ZmZlcnNEaXJ0eSk6CisgICAgICAgIChyeDo6Y2FsY3VsYXRl
UmVzdGFydFJhbmdlcyk6CisgICAgICAgIChyeDo6QnVmZmVyTXRsOjpnZXRSZXN0YXJ0SW5kaWNl
cyk6CisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwuaDoK
KyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQ29udGV4dE10bC5tbToKKyAg
ICAgICAgKHJ4OjpDb250ZXh0TXRsOjpkcmF3TGluZUxvb3BFbGVtZW50cyk6CisgICAgICAgIChy
eDo6Q29udGV4dE10bDo6ZHJhd0VsZW1lbnRzSW1wbCk6CisgICAgICAgIChyeDo6Q29udGV4dE10
bDo6ZHJhd0VsZW1lbnRzU2ltcGxlVHlwZXNQcmltaXRpdmVSZXN0YXJ0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaDoKKyAg
ICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwubW06Cisg
ICAgICAgIChyeDo6VmVydGV4QXJyYXlNdGw6OmdldEluZGV4QnVmZmVyKToKKyAgICAgICAgKHJ4
OjpWZXJ0ZXhBcnJheU10bDo6Z2V0RHJhd0luZGljZXMpOgorICAgICAgICAocng6OlZlcnRleEFy
cmF5TXRsOjpjb252ZXJ0SW5kZXhCdWZmZXIpOgorICAgICAgICAocng6OlZlcnRleEFycmF5TXRs
OjpzdHJlYW1JbmRleEJ1ZmZlckZyb21DbGllbnQpOgorCiAyMDIxLTA0LTIzICBUcnVpdHQgU2F2
ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyNzYxOTAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmgKaW5kZXggYTE2MjBlY2ZiZmM2
YzRiZTNmZGM0YTRkNmIxZTJkMWJiMTU4MTkzNC4uMTQ0YWViZmZmMzA5ZGU3NGZjNWVkZDZkMjg2
NmZmNmMxNjVmYzZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwuaApAQCAtMjQsNiAr
MjQsMTIgQEAKIAogbmFtZXNwYWNlIHJ4CiB7CisKK3N0cnVjdCBEcmF3Q29tbWFuZFJhbmdlCit7
CisgICAgdWludDMyX3QgY291bnQ7CisgICAgc2l6ZV90IG9mZnNldDsKK307CiBzdHJ1Y3QgSW5k
ZXhSYW5nZQogewogICAgIHNpemVfdCByZXN0YXJ0QmVnaW47CkBAIC02MywxMiArNjksMTAgQEAg
c3RydWN0IEluZGV4Q29udmVyc2lvbkJ1ZmZlck10bCA6IHB1YmxpYyBDb252ZXJzaW9uQnVmZmVy
TXRsCiAgICAgSW5kZXhDb252ZXJzaW9uQnVmZmVyTXRsKENvbnRleHRNdGwgKmNvbnRleHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIGVsZW1UeXBl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByaW1pdGl2ZVJlc3RhcnRFbmFi
bGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0SW4sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+IHJlc3RhcnRS
YW5nZXNJbiA9IHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+KCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3Qgb2Zmc2V0SW4pOwogICAgIGNvbnN0IGdsOjpEcmF3RWxlbWVudHNU
eXBlIGVsZW1UeXBlOwogICAgIGNvbnN0IHNpemVfdCBvZmZzZXQ7CiAgICAgYm9vbCBwcmltaXRp
dmVSZXN0YXJ0RW5hYmxlZDsKLSAgICBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiByZXN0YXJ0UmFu
Z2VzOwogICAgIEluZGV4UmFuZ2UgZ2V0UmFuZ2VGb3JDb252ZXJ0ZWRCdWZmZXIoc2l6ZV90IGNv
dW50KTsKIAogfTsKQEAgLTE2Myw3ICsxNjcsOSBAQCBjbGFzcyBCdWZmZXJNdGwgOiBwdWJsaWMg
QnVmZmVySW1wbCwgcHVibGljIEJ1ZmZlckhvbGRlck10bAogICAgIHZvaWQgbWFya0NvbnZlcnNp
b25CdWZmZXJzRGlydHkoKTsKIAogICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8c2l6ZV90PihtU3RhdGUuZ2V0U2l6ZSgpKTsgfQotCisgICAgCisgICAgY29uc3Qg
c3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gJiBnZXRSZXN0YXJ0SW5kaWNlcyhDb250ZXh0TXRsICog
Y3R4LCBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGUpOworICAgIAogICBwcml2YXRlOgog
ICAgIGFuZ2xlOjpSZXN1bHQgc2V0RGF0YUltcGwoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6QnVmZmVyQmluZGluZyB0YXJnZXQs
CkBAIC0xOTksOCArMjA1LDEyIEBAIGNsYXNzIEJ1ZmZlck10bCA6IHB1YmxpYyBCdWZmZXJJbXBs
LCBwdWJsaWMgQnVmZmVySG9sZGVyTXRsCiAgICAgc3RkOjp2ZWN0b3I8VmVydGV4Q29udmVyc2lv
bkJ1ZmZlck10bD4gbVZlcnRleENvbnZlcnNpb25CdWZmZXJzOwogCiAgICAgc3RkOjp2ZWN0b3I8
SW5kZXhDb252ZXJzaW9uQnVmZmVyTXRsPiBtSW5kZXhDb252ZXJzaW9uQnVmZmVyczsKLQorICAg
IAogICAgIHN0ZDo6dmVjdG9yPFVuaWZvcm1Db252ZXJzaW9uQnVmZmVyTXRsPiBtVW5pZm9ybUNv
bnZlcnNpb25CdWZmZXJzOworICAgIAorICAgIGJvb2wgbVJlc3RhcnRJbmRpY2VzRGlydHk7Cisg
ICAgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gbVJlc3RhcnRJbmRpY2VzOworICAgIAogfTsKIAog
Y2xhc3MgU2ltcGxlV2Vha0J1ZmZlckhvbGRlck10bCA6IHB1YmxpYyBCdWZmZXJIb2xkZXJNdGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9tZXRhbC9CdWZmZXJNdGwubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLm1tCmluZGV4IDNlYjMyZDk1MTNlNWJlZTI4NGZj
YTM2NjQwN2Q2NDlmNWUxNzA2ZjYuLjgyZGM2MzEyMmUyYWFhNzZhZWE4ZmY0MGUwNjM0OTAxNmFm
MmYyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbQpAQCAtNjAsMTcgKzYwLDE1
IEBAIENvbnZlcnNpb25CdWZmZXJNdGw6On5Db252ZXJzaW9uQnVmZmVyTXRsKCkgPSBkZWZhdWx0
OwogSW5kZXhDb252ZXJzaW9uQnVmZmVyTXRsOjpJbmRleENvbnZlcnNpb25CdWZmZXJNdGwoQ29u
dGV4dE10bCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIGVsZW1UeXBlSW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByaW1pdGl2ZVJl
c3RhcnRFbmFibGVkSW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3Qgb2Zmc2V0SW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiByZXN0YXJ0UmFu
Z2VzSW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3Qgb2Zmc2V0SW4pCiAgICAgOiBDb252ZXJzaW9uQnVmZmVyTXRsKGNvbnRleHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGtDb252ZXJ0ZWRFbGVtZW50QXJyYXlCdWZmZXJJbml0
aWFsU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjprSW5kZXhCdWZmZXJPZmZz
ZXRBbGlnbm1lbnQpLAogICAgICAgZWxlbVR5cGUoZWxlbVR5cGVJbiksCiAgICAgICBvZmZzZXQo
b2Zmc2V0SW4pLAotICAgICAgcHJpbWl0aXZlUmVzdGFydEVuYWJsZWQocHJpbWl0aXZlUmVzdGFy
dEVuYWJsZWRJbiksCi0gICAgICByZXN0YXJ0UmFuZ2VzKHJlc3RhcnRSYW5nZXNJbikKLQote30K
KyAgICAgIHByaW1pdGl2ZVJlc3RhcnRFbmFibGVkKHByaW1pdGl2ZVJlc3RhcnRFbmFibGVkSW4p
Cit7Cit9CiAKIEluZGV4UmFuZ2UgSW5kZXhDb252ZXJzaW9uQnVmZmVyTXRsOjpnZXRSYW5nZUZv
ckNvbnZlcnRlZEJ1ZmZlcihzaXplX3QgY291bnQpCiB7CkBAIC00MDMsNiArNDAxLDcgQEAgdm9p
ZCBCdWZmZXJNdGw6Om1hcmtDb252ZXJzaW9uQnVmZmVyc0RpcnR5KCkKICAgICAgICAgYnVmZmVy
LmNvbnZlcnRlZEJ1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIGJ1ZmZlci5jb252ZXJ0ZWRPZmZz
ZXQgPSAwOwogICAgIH0KKyAgICBtUmVzdGFydEluZGljZXNEaXJ0eSA9IHRydWU7CiB9CiAKIHZv
aWQgQnVmZmVyTXRsOjpjbGVhckNvbnZlcnNpb25CdWZmZXJzKCkKQEAgLTQxMiw2ICs0MTEsNTIg
QEAgdm9pZCBCdWZmZXJNdGw6OmNsZWFyQ29udmVyc2lvbkJ1ZmZlcnMoKQogICAgIG1Vbmlmb3Jt
Q29udmVyc2lvbkJ1ZmZlcnMuY2xlYXIoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0
YXRpYyB2b2lkIGNhbGN1bGF0ZVJlc3RhcnRSYW5nZXMoQ29udGV4dE10bCogY3R4LCBtdGw6OkJ1
ZmZlclJlZiBpZHhCdWZmZXIsIHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+ICogcmFuZ2VzKQorewor
ICAgIHJhbmdlcy0+Y2xlYXIoKTsKKyAgICBUICpidWZmZXJEYXRhID0gKFQqKShpZHhCdWZmZXIt
Pm1hcFJlYWRPbmx5KGN0eCkpOworICAgIGZvcihpbnQgaSA9IDA7IGkgPCBpZHhCdWZmZXItPnNp
emUoKS9zaXplb2YoVCk7IGkrKykKKyAgICB7CisgICAgICAgIFQgdmFsdWUgPSBidWZmZXJEYXRh
W2ldOworICAgICAgICBpZih2YWx1ZSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKSkK
KyAgICAgICAgeworICAgICAgICAgICAgSW5kZXhSYW5nZSBuZXdSYW5nZTsKKyAgICAgICAgICAg
IG5ld1JhbmdlLnJlc3RhcnRCZWdpbiA9IGk7CisgICAgICAgICAgICAvL0ZpbmQgdGhlIGVuZCBv
ZiB0aGUgcmVzdGFydCByYW5nZS4KKyAgICAgICAgICAgIGRvCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgKytpOworICAgICAgICAgICAgfXdoaWxlIChpIDwgaWR4QnVmZmVyLT5zaXpl
KCkgJiYgdmFsdWUgPT0gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCkpOworICAgICAgICAg
ICAgbmV3UmFuZ2UucmVzdGFydEVuZCA9IGktMTsKKyAgICAgICAgICAgIHJhbmdlcy0+cHVzaF9i
YWNrKG5ld1JhbmdlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworY29uc3Qgc3RkOjp2ZWN0b3I8
SW5kZXhSYW5nZT4gJiBCdWZmZXJNdGw6OmdldFJlc3RhcnRJbmRpY2VzKENvbnRleHRNdGwgKiBj
dHgsIGdsOjpEcmF3RWxlbWVudHNUeXBlIGluZGV4VHlwZSkKK3sKKyAgICBpZihtUmVzdGFydElu
ZGljZXNEaXJ0eSkKKyAgICB7CisgICAgICAgIHN3aXRjaChpbmRleFR5cGUpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGNhc2UgZ2w6OkRyYXdFbGVtZW50c1R5cGU6OlVuc2lnbmVkQnl0ZToKKyAg
ICAgICAgICAgICAgICBjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzPHVpbnQ4X3Q+KGN0eCwgZ2V0Q3Vy
cmVudEJ1ZmZlcigpLCZtUmVzdGFydEluZGljZXMpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBnbDo6RHJhd0VsZW1lbnRzVHlwZTo6VW5zaWduZWRTaG9ydDoKKyAg
ICAgICAgICAgICAgICBjYWxjdWxhdGVSZXN0YXJ0UmFuZ2VzPHVpbnQxNl90PihjdHgsIGdldEN1
cnJlbnRCdWZmZXIoKSwmbVJlc3RhcnRJbmRpY2VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgZ2w6OkRyYXdFbGVtZW50c1R5cGU6OlVuc2lnbmVkSW50OgorICAg
ICAgICAgICAgICAgIGNhbGN1bGF0ZVJlc3RhcnRSYW5nZXM8dWludDMyX3Q+KGN0eCwgZ2V0Q3Vy
cmVudEJ1ZmZlcigpLCZtUmVzdGFydEluZGljZXMpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBU1NFUlQoZmFsc2UpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIG1SZXN0YXJ0SW5kaWNlc0RpcnR5ID0g
ZmFsc2U7CisgICAgfQorICAgIHJldHVybiBtUmVzdGFydEluZGljZXM7Cit9CiBhbmdsZTo6UmVz
dWx0IEJ1ZmZlck10bDo6c2V0RGF0YUltcGwoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkJ1ZmZlckJpbmRpbmcgdGFy
Z2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmRh
dGEsCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvQ29udGV4dE10bC5oIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwuaAppbmRleCBmM2Y1YmNhY2JhZmRiODI1
MDc5YmM5MDNmZmY1ZTMwMzFjNjcwYWFlLi41MmZhYmFkOWVlNmJhODdkYzU3ZDljOWNlYTVmODkx
NzYyMTg5YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQ29udGV4dE10bC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FO
R0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9Db250ZXh0TXRsLmgKQEAgLTE1NywxMyAr
MTU3LDYgQEAgY2xhc3MgQ29udGV4dE10bCA6IHB1YmxpYyBDb250ZXh0SW1wbCwgcHVibGljIG10
bDo6Q29udGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMaW50ICpiYXNlVmVydGljZXMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgR0x1aW50ICpiYXNlSW5zdGFuY2VzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgZHJhd2Nv
dW50KSBvdmVycmlkZTsKLSAgICBhbmdsZTo6UmVzdWx0IGRyYXdFbGVtZW50c1NpbXBsZVR5cGVz
UHJpbWl0aXZlUmVzdGFydChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6UHJpbWl0
aXZlTW9kZSBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEdMc2l6ZWkgY291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgdHlw
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCB2b2lkICppbmRpY2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMc2l6ZWkgaW5zdGFuY2VzKTsKLQogICAgIC8v
IERldmljZSBsb3NzCiAgICAgZ2w6OkdyYXBoaWNzUmVzZXRTdGF0dXMgZ2V0UmVzZXRTdGF0dXMo
KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQ29udGV4dE10bC5tbQppbmRleCBlNGQw
MmJiZmZmNDM3YmM2MTc0ODFlMDIyNjk4NmNlZmM2NGE4YjM2Li4zMzVlYThlYTk5NzRkNjQ3MWRk
NmQzMjE3YjZhNGQ0YmY1ZTdkODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQ29udGV4dE10bC5tbQorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQ29udGV4dE10bC5t
bQpAQCAtNTc5LDU4ICs1NzksNiBAQCBhbmdsZTo6UmVzdWx0IENvbnRleHRNdGw6OmRyYXdMaW5l
TG9vcEVsZW1lbnRzKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgIHJldHVybiBkcmF3
RWxlbWVudHNJbnN0YW5jZWQoY29udGV4dCwgZ2w6OlByaW1pdGl2ZU1vZGU6OkxpbmVzLCBjb3Vu
dCwgdHlwZSwgaW5kaWNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3Rh
bmNlcyk7CiB9Ci1hbmdsZTo6UmVzdWx0IENvbnRleHRNdGw6OmRyYXdFbGVtZW50c1NpbXBsZVR5
cGVzUHJpbWl0aXZlUmVzdGFydChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdsOjpQcmltaXRpdmVNb2RlIG1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGNvdW50LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKmluZGlj
ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHTHNpemVpIGluc3RhbmNlcykKLXsKLQotICAgIG10bDo6QnVmZmVyUmVm
IGdlbklkeEJ1ZmZlcjsKLSAgICB1aW50MzJfdCBnZW5JZHhCdWZmZXJPZmZzZXQ7Ci0gICAgdWlu
dDMyX3QgcmVzZXJ2ZWRJbmRpY2VzID0gY291bnQ7Ci0gICAgc2l6ZV90IGdlbkluZGljZXNDb3Vu
dDsKLSAgICBBTkdMRV9UUlkoQWxsb2NhdGVCdWZmZXJGcm9tUG9vbCh0aGlzLCByZXNlcnZlZElu
ZGljZXMsICZtUHJpbWl0aXZlUmVzdGFydEJ1ZmZlciwgJmdlbklkeEJ1ZmZlciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ2VuSWR4QnVmZmVyT2Zmc2V0KSk7Ci0gICAg
c3dpdGNoIChtb2RlKQotICAgIHsKLSAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6UG9p
bnRzOgotICAgICAgICAgICAgQU5HTEVfVFJZKGdldERpc3BsYXkoKS0+Z2V0VXRpbHMoKS5nZW5l
cmF0ZVByaW1pdGl2ZVJlc3RhcnRQb2ludHNCdWZmZXIoCi0gICAgICAgICAgICAgICAgdGhpcywg
e3R5cGUsIGNvdW50LCBpbmRpY2VzLCBnZW5JZHhCdWZmZXIsIGdlbklkeEJ1ZmZlck9mZnNldCwg
dHJ1ZX0sCi0gICAgICAgICAgICAgICAgJmdlbkluZGljZXNDb3VudCkpOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgZ2w6OlByaW1pdGl2ZU1vZGU6OkxpbmVzOgotICAgICAgICAg
ICAgQU5HTEVfVFJZKGdldERpc3BsYXkoKS0+Z2V0VXRpbHMoKS5nZW5lcmF0ZVByaW1pdGl2ZVJl
c3RhcnRMaW5lc0J1ZmZlcigKLSAgICAgICAgICAgICAgICB0aGlzLCB7dHlwZSwgY291bnQsIGlu
ZGljZXMsIGdlbklkeEJ1ZmZlciwgZ2VuSWR4QnVmZmVyT2Zmc2V0LCB0cnVlfSwKLSAgICAgICAg
ICAgICAgICAmZ2VuSW5kaWNlc0NvdW50KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6VHJpYW5nbGVzOgotICAgICAgICAgICAgQU5HTEVfVFJZ
KGdldERpc3BsYXkoKS0+Z2V0VXRpbHMoKS5nZW5lcmF0ZVByaW1pdGl2ZVJlc3RhcnRUcmlhbmds
ZXNCdWZmZXIoCi0gICAgICAgICAgICAgICAgdGhpcywge3R5cGUsIGNvdW50LCBpbmRpY2VzLCBn
ZW5JZHhCdWZmZXIsIGdlbklkeEJ1ZmZlck9mZnNldCwgdHJ1ZX0sCi0gICAgICAgICAgICAgICAg
JmdlbkluZGljZXNDb3VudCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICBVTlJFQUNIQUJMRSgpOwotICAgICAgICAgICAgcmV0dXJuIGFuZ2xlOjpS
ZXN1bHQ6OlN0b3A7Ci0gICAgfQotICAgIEFOR0xFX1RSWShtUHJpbWl0aXZlUmVzdGFydEJ1ZmZl
ci5jb21taXQodGhpcykpOwotICAgIE1UTFByaW1pdGl2ZVR5cGUgbXRsVHlwZSA9IG10bDo6R2V0
UHJpbWl0aXZlVHlwZShtb2RlKTsKLSAgICBpZiAobVN0YXRlLmlzVHJhbnNmb3JtRmVlZGJhY2tB
Y3RpdmVVbnBhdXNlZCgpKQotICAgIHsKLSAgICAgICAgQU5HTEVfVFJZKHNldHVwRHJhdyhjb250
ZXh0LCBtb2RlLCAwLCBjb3VudCwgaW5zdGFuY2VzLCB0eXBlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCAqPigwKSwgdHJ1ZSkpOwotCi0g
ICAgICAgIGV4ZWNEcmF3SW5kZXhlZEluc3RhbmNlZChtdGxUeXBlLCAodWludDMyX3QpZ2VuSW5k
aWNlc0NvdW50LCBNVExJbmRleFR5cGVVSW50MzIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnZW5JZHhCdWZmZXIsIGdlbklkeEJ1ZmZlck9mZnNldCwgaW5zdGFuY2VzKTsKLSAg
ICB9Ci0gICAgQU5HTEVfVFJZKHNldHVwRHJhdyhjb250ZXh0LCBtb2RlLCAwLCBjb3VudCwgaW5z
dGFuY2VzLCB0eXBlLCBpbmRpY2VzLCBmYWxzZSkpOwotCi0gICAgZXhlY0RyYXdJbmRleGVkSW5z
dGFuY2VkKG10bFR5cGUsICh1aW50MzJfdClnZW5JbmRpY2VzQ291bnQsIE1UTEluZGV4VHlwZVVJ
bnQzMiwgZ2VuSWR4QnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5JZHhC
dWZmZXJPZmZzZXQsIGluc3RhbmNlcyk7Ci0KLSAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29u
dGludWU7Ci19CiAKIGFuZ2xlOjpSZXN1bHQgQ29udGV4dE10bDo6ZHJhd0VsZW1lbnRzSW1wbChj
b25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnbDo6UHJpbWl0aXZlTW9kZSBtb2RlLApAQCAtNjU3LDEyICs2MDUsMTgg
QEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0TXRsOjpkcmF3RWxlbWVudHNJbXBsKGNvbnN0IGdsOjpD
b250ZXh0ICpjb250ZXh0LAogICAgIG10bDo6QnVmZmVyUmVmIGlkeEJ1ZmZlcjsKICAgICBzaXpl
X3QgY29udmVydGVkT2Zmc2V0ICAgICAgICAgICAgID0gMDsKICAgICBnbDo6RHJhd0VsZW1lbnRz
VHlwZSBjb252ZXJ0ZWRUeXBlID0gdHlwZTsKLSAgICBBTkdMRV9UUlkobVZlcnRleEFycmF5LT5n
ZXRJbmRleEJ1ZmZlcihjb250ZXh0LCB0eXBlLCBtb2RlLCBjb3VudCwgaW5kaWNlcywgJmlkeEJ1
ZmZlciwKKyAgICBBTkdMRV9UUlkobVZlcnRleEFycmF5LT5nZXRJbmRleEJ1ZmZlcihjb250ZXh0
LCB0eXBlLCBjb3VudCwgaW5kaWNlcywgJmlkeEJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmY29udmVydGVkT2Zmc2V0LCAmY29udmVydGVkVHlwZSkp
OwogCiAgICAgQVNTRVJUKGlkeEJ1ZmZlcik7CiAgICAgQVNTRVJUKChjb252ZXJ0ZWRPZmZzZXQg
JSBtdGw6OmtJbmRleEJ1ZmZlck9mZnNldEFsaWdubWVudCkgPT0gMCk7CiAgICAgdWludDMyX3Qg
Y29udmVydGVkQ291bnRpMzIgPSAodWludDMyX3QpY291bnQ7CisgICAgCisgICAgLy9EcmF3IGNv
bW1hbmRzIHdpbGwgb25seSBiZSBicm9rZW4gdXAgaWYgdHJhbnNmb3JtIGZlZWRiYWNrIGlzIGVu
YWJsZWQsCisgICAgLy9pZiB0aGUgbW9kZSBpcyBhIHNpbXBsZSB0eXBlLCBhbmQgaWYgdGhlIGJ1
ZmZlciBjb250YWluZWQgYW55IHJlc3RhcnQKKyAgICAvL2luZGljZXMuCisgICAgY29uc3Qgc3Rk
Ojp2ZWN0b3I8RHJhd0NvbW1hbmRSYW5nZT4gZHJhd0NvbW1hbmRzID0gbVZlcnRleEFycmF5LT5n
ZXREcmF3SW5kaWNlcyhjb250ZXh0LCBjb252ZXJ0ZWRUeXBlLCBtb2RlLCBjb252ZXJ0ZWRDb3Vu
dGkzMiwgY29udmVydGVkT2Zmc2V0KTsKKyAgICAKICAgICBpZiAobVN0YXRlLmlzVHJhbnNmb3Jt
RmVlZGJhY2tBY3RpdmVVbnBhdXNlZCgpKQogICAgIHsKICAgICAgICAgQU5HTEVfVFJZKHNldHVw
RHJhdyhjb250ZXh0LCBtb2RlLCAwLCBjb252ZXJ0ZWRDb3VudGkzMiwgaW5zdGFuY2VzLCB0eXBl
LCBpbmRpY2VzLCB0cnVlKSk7CkBAIC02NzMsMTQgKzYyNywyMSBAQCBhbmdsZTo6UmVzdWx0IENv
bnRleHRNdGw6OmRyYXdFbGVtZW50c0ltcGwoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAg
ICAgICAgIGlmIChpbnN0YW5jZXMgPT0gMCkKICAgICAgICAgewogICAgICAgICAgICAgLy8gTm9y
bWFsIGRyYXcKLSAgICAgICAgICAgIG1SZW5kZXJFbmNvZGVyLmRyYXdJbmRleGVkKG10bFR5cGUs
IGNvbnZlcnRlZENvdW50aTMyLCBtdGxJZHhUeXBlLCBpZHhCdWZmZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0ZWRPZmZzZXQpOworICAgICAgICAgICAg
Zm9yKGF1dG8gJiBjb21tYW5kIDogZHJhd0NvbW1hbmRzKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIG1SZW5kZXJFbmNvZGVyLmRyYXdJbmRleGVkKG10bFR5cGUsIGNvbW1hbmQuY291
bnQsIG10bElkeFR5cGUsIGlkeEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb21tYW5kLm9mZnNldCk7CisKKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgICAgIC8vIEluc3RhbmNlZCBkcmF3
Ci0gICAgICAgICAgICBleGVjRHJhd0luZGV4ZWRJbnN0YW5jZWQobXRsVHlwZSwgY29udmVydGVk
Q291bnRpMzIsIG10bElkeFR5cGUsIGlkeEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb252ZXJ0ZWRPZmZzZXQsIGluc3RhbmNlQ291bnQpOworICAgICAgICAg
ICAgZm9yKGF1dG8gJiBjb21tYW5kIDogZHJhd0NvbW1hbmRzKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGV4ZWNEcmF3SW5kZXhlZEluc3RhbmNlZChtdGxUeXBlLCBjb21tYW5kLmNv
dW50LCBtdGxJZHhUeXBlLCBpZHhCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbWFuZC5vZmZzZXQsIGluc3RhbmNlQ291bnQpOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogCkBAIC02OTMsMTQgKzY1NCwyMCBAQCBhbmdsZTo6UmVzdWx0IENv
bnRleHRNdGw6OmRyYXdFbGVtZW50c0ltcGwoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAg
ICAgaWYgKGluc3RhbmNlcyA9PSAwKQogICAgIHsKICAgICAgICAgLy8gTm9ybWFsIGRyYXcKLSAg
ICAgICAgbVJlbmRlckVuY29kZXIuZHJhd0luZGV4ZWQobXRsVHlwZSwgY29udmVydGVkQ291bnRp
MzIsIG10bElkeFR5cGUsIGlkeEJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29udmVydGVkT2Zmc2V0KTsKKyAgICAgICAgZm9yKGF1dG8gJiBjb21tYW5kIDogZHJh
d0NvbW1hbmRzKQorICAgICAgICB7CisgICAgICAgICAgICBtUmVuZGVyRW5jb2Rlci5kcmF3SW5k
ZXhlZChtdGxUeXBlLCBjb21tYW5kLmNvdW50LCBtdGxJZHhUeXBlLCBpZHhCdWZmZXIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQub2Zmc2V0KTsKKyAgICAgICAg
fQogICAgIH0KICAgICBlbHNlCiAgICAgewogICAgICAgICAvLyBJbnN0YW5jZWQgZHJhdwotICAg
ICAgICBleGVjRHJhd0luZGV4ZWRJbnN0YW5jZWQobXRsVHlwZSwgY29udmVydGVkQ291bnRpMzIs
IG10bElkeFR5cGUsIGlkeEJ1ZmZlciwgY29udmVydGVkT2Zmc2V0LAorICAgICAgICBmb3IoYXV0
byAmIGNvbW1hbmQgOiBkcmF3Q29tbWFuZHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGV4ZWNE
cmF3SW5kZXhlZEluc3RhbmNlZChtdGxUeXBlLCBjb21tYW5kLmNvdW50LCBtdGxJZHhUeXBlLCBp
ZHhCdWZmZXIsIGNvbW1hbmQub2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW5zdGFuY2VDb3VudCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gYW5nbGU6
OlJlc3VsdDo6Q29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9WZXJ0ZXhBcnJheU10bC5o
CmluZGV4IGM1MGYxMTk3ZjA1Y2JmNGE3OGRhNDRiYjdjYTEzNzdjZDZkOTEzNjYuLjNjYTJhYjgy
NDRiMDJhMzIzNjdmNmU5NGEzY2QwMTZjNjYyNmUzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9WZXJ0ZXhBcnJheU10bC5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRh
bC9WZXJ0ZXhBcnJheU10bC5oCkBAIC01MywxMyArNTMsMTkgQEAgY2xhc3MgVmVydGV4QXJyYXlN
dGwgOiBwdWJsaWMgVmVydGV4QXJyYXlJbXBsCiAKICAgICBhbmdsZTo6UmVzdWx0IGdldEluZGV4
QnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpnbENvbnRleHQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnbDo6UHJpbWl0aXZlTW9kZSBwcmltaXRpdmVNb2RlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4Q291bnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpzb3VyY2VQb2ludGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjpCdWZmZXJSZWYgKmlkeEJ1ZmZl
ck91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaWR4QnVmZmVy
T2Zmc2V0T3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdFbGVt
ZW50c1R5cGUgKmluZGV4VHlwZU91dCk7Ci0KKyAgICAKKyAgICAKKyAgICBzdGQ6OnZlY3RvcjxE
cmF3Q29tbWFuZFJhbmdlPiBnZXREcmF3SW5kaWNlcyhjb25zdCBnbDo6Q29udGV4dCAqZ2xDb250
ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdFbGVtZW50c1R5
cGUgaW5kZXhUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OlByaW1p
dGl2ZU1vZGUgcHJpbWl0aXZlTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnQzMl90IGluZGV4Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3Qgb2Zmc2V0KTsKKyAgICAKICAgICAvLyBVc2UgdG8gZW11bGF0ZSBpbnN0YW5jZWQgZHJh
dyBmb3IgaW5zdGFuY2UgPGluc3RhbmNlSWQ+LgogICAgIC8vIFRoZSB0eXBpY2FsIGNhbGwgc2Vx
dWVuY2UgZm9yIGVtdWxhdGVkIGluc3RhbmNlIGRyYXcgaXM6CiAgICAgLy8gLSBzZXR1cERyYXco
KQpAQCAtODUsMTMgKzkxLDExIEBAIGNsYXNzIFZlcnRleEFycmF5TXRsIDogcHVibGljIFZlcnRl
eEFycmF5SW1wbAogCiAgICAgYW5nbGU6OlJlc3VsdCBjb252ZXJ0SW5kZXhCdWZmZXIoY29uc3Qg
Z2w6OkNvbnRleHQgKmdsQ29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2w6OlByaW1pdGl2ZU1vZGUgbW9kZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG10bDo6QnVmZmVyUmVmICppZHhCdWZmZXJPdXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICppZHhCdWZmZXJPZmZzZXRPdXQp
OwogICAgIGFuZ2xlOjpSZXN1bHQgc3RyZWFtSW5kZXhCdWZmZXJGcm9tQ2xpZW50KGNvbnN0IGds
OjpDb250ZXh0ICpnbENvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpQcmltaXRpdmVNb2RlIHByaW1p
dGl2ZVR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IGluZGV4Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3Qgdm9pZCAqc291cmNlUG9pbnRlciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtdGw6OkJ1ZmZlclJlZiAqaWR4QnVmZmVyT3V0LApA
QCAtMTI3LDcgKzEzMSw3IEBAIGNsYXNzIFZlcnRleEFycmF5TXRsIDogcHVibGljIFZlcnRleEFy
cmF5SW1wbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
dmVydGV4Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2wgaXNFeHBhbmRpbmdDb21wb25lbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDb252ZXJzaW9uQnVmZmVyTXRsICpjb252ZXJzaW9uKTsKLQorICAgIAogICAg
IC8vIFRoZXNlIGNhbiBwb2ludCB0byByZWFsIEJ1ZmZlck10bCBvciBjb252ZXJ0ZWQgYnVmZmVy
IGluIG1Db252ZXJ0ZWRBcnJheUJ1ZmZlckhvbGRlcnMKICAgICBnbDo6QXR0cmliQXJyYXk8QnVm
ZmVySG9sZGVyTXRsICo+IG1DdXJyZW50QXJyYXlCdWZmZXJzOwogICAgIGdsOjpBdHRyaWJBcnJh
eTxTaW1wbGVXZWFrQnVmZmVySG9sZGVyTXRsPiBtQ29udmVydGVkQXJyYXlCdWZmZXJIb2xkZXJz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL21ldGFsL1ZlcnRleEFycmF5TXRsLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3Jj
L2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1ZlcnRleEFycmF5TXRsLm1tCmluZGV4IDk0NjI3Yjgx
MmM4MDFjZTJiNWM2Y2Y2MWMzZGJiZmQzZTEzMmIzYTMuLjQwMzI1NTMwNTNhNDI1NTIyZDg4MzZi
YjU0MGFjZDgwY2ViY2IzNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3Ny
Yy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9WZXJ0ZXhBcnJheU10bC5tbQorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlN
dGwubW0KQEAgLTc5LDcgKzc5LDYgQEAgYW5nbGU6OlJlc3VsdCBTdHJlYW1JbmRleERhdGEoQ29u
dGV4dE10bCAqY29udGV4dE10bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHVpbnQ4X3QgKnNvdXJjZVBvaW50ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
bDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgaW5kZXhDb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGds
OjpQcmltaXRpdmVNb2RlIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s
IHByaW1pdGl2ZVJlc3RhcnRFbmFibGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXRsOjpCdWZmZXJSZWYgKmJ1ZmZlck91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCAqYnVmZmVyT2Zmc2V0T3V0KQpAQCAtNjk2LDcgKzY5NSw2IEBAIGFuZ2xlOjpSZXN1
bHQgVmVydGV4QXJyYXlNdGw6OnN5bmNEaXJ0eUF0dHJpYihjb25zdCBnbDo6Q29udGV4dCAqZ2xD
b250ZXh0LAogCiBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRsOjpnZXRJbmRleEJ1ZmZlcihj
b25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIHR5cGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6UHJpbWl0aXZlTW9kZSBtb2RlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNvdW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9p
ZCAqaW5kaWNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG10bDo6QnVmZmVyUmVmICppZHhCdWZmZXJPdXQsCkBAIC03MDgsNyArNzA2LDcgQEAgYW5nbGU6
OlJlc3VsdCBWZXJ0ZXhBcnJheU10bDo6Z2V0SW5kZXhCdWZmZXIoY29uc3QgZ2w6OkNvbnRleHQg
KmNvbnRleHQsCiAgICAgc2l6ZV90IGNvbnZlcnRlZE9mZnNldCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
c2l6ZV90PihpbmRpY2VzKTsKICAgICBpZiAoIWdsRWxlbWVudEFycmF5QnVmZmVyKQogICAgIHsK
LSAgICAgICAgQU5HTEVfVFJZKHN0cmVhbUluZGV4QnVmZmVyRnJvbUNsaWVudChjb250ZXh0LCB0
eXBlLCBtb2RlLCBjb3VudCwgaW5kaWNlcywgaWR4QnVmZmVyT3V0LAorICAgICAgICBBTkdMRV9U
Ulkoc3RyZWFtSW5kZXhCdWZmZXJGcm9tQ2xpZW50KGNvbnRleHQsIHR5cGUsIGNvdW50LCBpbmRp
Y2VzLCBpZHhCdWZmZXJPdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWR4QnVmZmVyT2Zmc2V0T3V0KSk7CiAgICAgfQogICAgIGVsc2UKQEAgLTcxNyw3
ICs3MTUsNyBAQCBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRsOjpnZXRJbmRleEJ1ZmZlcihj
b25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChjb252ZXJ0ZWRPZmZzZXQgJSBtdGw6OmtJbmRleEJ1ZmZlck9mZnNldEFsaWdubWVudCkgIT0g
MDsKICAgICAgICAgaWYgKG5lZWRDb252ZXJzaW9uKQogICAgICAgICB7Ci0gICAgICAgICAgICBB
TkdMRV9UUlkoY29udmVydEluZGV4QnVmZmVyKGNvbnRleHQsIHR5cGUsIG1vZGUsIGNvbnZlcnRl
ZE9mZnNldCwgaWR4QnVmZmVyT3V0LAorICAgICAgICAgICAgQU5HTEVfVFJZKGNvbnZlcnRJbmRl
eEJ1ZmZlcihjb250ZXh0LCB0eXBlLCBjb252ZXJ0ZWRPZmZzZXQsIGlkeEJ1ZmZlck91dCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4QnVmZmVyT2Zmc2V0T3V0
KSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQpAQCAtNzM5LDkgKzczNyw5NiBAQCBhbmdsZTo6
UmVzdWx0IFZlcnRleEFycmF5TXRsOjpnZXRJbmRleEJ1ZmZlcihjb25zdCBnbDo6Q29udGV4dCAq
Y29udGV4dCwKICAgICByZXR1cm4gYW5nbGU6OlJlc3VsdDo6Q29udGludWU7CiB9CiAKK3N0ZDo6
dmVjdG9yPERyYXdDb21tYW5kUmFuZ2U+IFZlcnRleEFycmF5TXRsOjpnZXREcmF3SW5kaWNlcyhj
b25zdCBnbDo6Q29udGV4dCAqZ2xDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdsOjpQcmltaXRpdmVNb2RlIHByaW1pdGl2ZU1vZGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQzMl90IGluZGV4Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBvZmZzZXQpCit7CisgICAgQ29udGV4dE10bCAqY29udGV4dE10bCAgID0g
bXRsOjpHZXRJbXBsKGdsQ29udGV4dCk7CisgICAgc3RkOjp2ZWN0b3I8RHJhd0NvbW1hbmRSYW5n
ZT4gZHJhd0NvbW1hbmRzOworICAgIAorICAgIEJ1ZmZlck10bCAqaWR4QnVmZmVyICAgICA9IG10
bDo6R2V0SW1wbChnZXRTdGF0ZSgpLmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpKTsKKyAgICBjb25z
dCBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiByZXN0YXJ0SW5kaWNlcyA9IGlkeEJ1ZmZlci0+Z2V0
UmVzdGFydEluZGljZXMoY29udGV4dE10bCwgaW5kZXhUeXBlKTsKKyAgICBib29sIGlzU2ltcGxl
VHlwZSA9CisgICAgICAgIHByaW1pdGl2ZU1vZGUgPT0gZ2w6OlByaW1pdGl2ZU1vZGU6OlBvaW50
cyB8fAorICAgICAgICBwcmltaXRpdmVNb2RlID09IGdsOjpQcmltaXRpdmVNb2RlOjpMaW5lcyB8
fAorICAgICAgICBwcmltaXRpdmVNb2RlID09IGdsOjpQcmltaXRpdmVNb2RlOjpUcmlhbmdsZXM7
CisgICAgLy9JZiBwcmltIHJlc3RhcnQgaXNuJ3QgZW5hYmxlZCwgb3Igd2UncmUgZHJhd2luZyBh
IHJlc3RhcnRhYmxlIHR5cGUsIG9yIHRoZXJlJ3Mgbm8gcmVzdGFydHMsIHNraXAgYnJlYWtpbmcg
dXAgZHJhdyBjb21tYW5kcy4KKyAgICBpZihyZXN0YXJ0SW5kaWNlcy5zaXplKCkgPT0gMCB8fCAh
aXNTaW1wbGVUeXBlIHx8ICFnbENvbnRleHQtPmdldFN0YXRlKCkuaXNQcmltaXRpdmVSZXN0YXJ0
RW5hYmxlZCgpKQorICAgIHsKKyAgICAgICAgZHJhd0NvbW1hbmRzLnB1c2hfYmFjayh7aW5kZXhD
b3VudCwgb2Zmc2V0fSk7CisgICAgICAgIHJldHVybiBkcmF3Q29tbWFuZHM7CisgICAgfQorICAg
IGVsc2UKKyAgICB7CisgICAgICAgIC8vUmVtaW5kZXIsIG9mZnNldCBpcyBpbiBieXRlcywgbm90
IGVsZW1lbnRzLgorICAgICAgICAvL1NsaWNlIGRyYXcgY29tbWFuZHMgYmFzZWQgb2ZmIG9mIGlu
ZGljZXMuCisgICAgICAgIGludCBuSW5kaWNlc1BlclByaW1pdGl2ZTsKKyAgICAgICAgc3dpdGNo
KHByaW1pdGl2ZU1vZGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgZ2w6OlByaW1pdGl2
ZU1vZGU6OlBvaW50czoKKyAgICAgICAgICAgICAgICBuSW5kaWNlc1BlclByaW1pdGl2ZSA9IDE7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGdsOjpQcmltaXRpdmVN
b2RlOjpMaW5lczoKKyAgICAgICAgICAgICAgICBuSW5kaWNlc1BlclByaW1pdGl2ZSA9IDI7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGdsOjpQcmltaXRpdmVNb2Rl
OjpUcmlhbmdsZXM6CisgICAgICAgICAgICAgICAgbkluZGljZXNQZXJQcmltaXRpdmUgPSAzOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICAvL1VucmVhY2hhYmxlCisgICAgICAgICAgICAgICAgQVNTRVJUKEZBTFNFKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZHJhd0NvbW1hbmRzOworICAgICAgICB9CisgICAgICAgIGNvbnN0
IEdMdWludCBpbmRleFR5cGVCeXRlcyAgICAgICAgPSBnbDo6R2V0RHJhd0VsZW1lbnRzVHlwZVNp
emUoaW5kZXhUeXBlKTsKKyAgICAgICAgdWludDMyX3QgaW5kaWNlc0xlZnQgPSBpbmRleENvdW50
OworICAgICAgICBzaXplX3QgY3VycmVudEluZGV4T2Zmc2V0ID0gb2Zmc2V0IC8gaW5kZXhUeXBl
Qnl0ZXM7CisgICAgICAgIAorICAgICAgICBmb3IoYXV0byAmIHJhbmdlIDogcmVzdGFydEluZGlj
ZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKHJhbmdlLnJlc3RhcnRCZWdpbiA+IGN1cnJl
bnRJbmRleE9mZnNldCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQ2NF90IG5J
bmRpY2VzSW5TbGljZSA9ICgoaW50NjRfdClyYW5nZS5yZXN0YXJ0QmVnaW4gLSBjdXJyZW50SW5k
ZXhPZmZzZXQpIC0gKChpbnQ2NF90KSByYW5nZS5yZXN0YXJ0QmVnaW4gLSBjdXJyZW50SW5kZXhP
ZmZzZXQpICUgbkluZGljZXNQZXJQcmltaXRpdmU7CisgICAgICAgICAgICAgICAgc2l6ZV90IHJl
c3RhcnRTaXplID0gKHJhbmdlLnJlc3RhcnRFbmQgLSByYW5nZS5yZXN0YXJ0QmVnaW4pICsgMTsK
KyAgICAgICAgICAgICAgICBpZihuSW5kaWNlc0luU2xpY2UgPiBuSW5kaWNlc1BlclByaW1pdGl2
ZSkKKyAgICAgICAgICAgICAgICAgICAgZHJhd0NvbW1hbmRzLnB1c2hfYmFjayh7KHVpbnQzMl90
KW5JbmRpY2VzSW5TbGljZSwgY3VycmVudEluZGV4T2Zmc2V0ICogaW5kZXhUeXBlQnl0ZXN9KTsK
KyAgICAgICAgICAgICAgICBpZihpbmRpY2VzTGVmdCA8PSBuSW5kaWNlc0luU2xpY2UgKyByZXN0
YXJ0U2l6ZSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGluZGljZXNM
ZWZ0ID0gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaW5kaWNlc0xlZnQgLT0gbkluZGljZXNJ
blNsaWNlICsgcmVzdGFydFNpemU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGN1cnJlbnRJbmRleE9mZnNldCA9IChzaXplX3QpKHJhbmdlLnJlc3RhcnRCZWdpbiArIHJlc3Rh
cnRTaXplKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vSWYgdGhlIGluaXRpYWwgb2Zm
c2V0IGludG8gdGhlIGluZGV4IGJ1ZmZlciBpcyB3aXRoaW4gYSByZXN0YXJ0IHpvbmUsIG1vdmUg
dG8gdGhlIGVuZCBvZiB0aGUgcmVzdGFydCB6b25lLgorICAgICAgICAgICAgZWxzZSBpZihyYW5n
ZS5yZXN0YXJ0RW5kID4gY3VycmVudEluZGV4T2Zmc2V0KQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIHNpemVfdCByZXN0YXJ0U2l6ZSA9IChyYW5nZS5yZXN0YXJ0RW5kIC0gY3VycmVu
dEluZGV4T2Zmc2V0KSArIDE7CisgICAgICAgICAgICAgICAgaWYoaW5kaWNlc0xlZnQgPD0gcmVz
dGFydFNpemUpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbmRpY2Vz
TGVmdCA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGluZGljZXNMZWZ0IC09IHJlc3RhcnRT
aXplOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXhPZmZz
ZXQgPSAoc2l6ZV90KShjdXJyZW50SW5kZXhPZmZzZXQgKyByZXN0YXJ0U2l6ZSk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICBpZihpbmRpY2VzTGVmdCA+
IG5JbmRpY2VzUGVyUHJpbWl0aXZlKQorICAgICAgICAgICAgZHJhd0NvbW1hbmRzLnB1c2hfYmFj
ayh7aW5kaWNlc0xlZnQsIGN1cnJlbnRJbmRleE9mZnNldCAqIGluZGV4VHlwZUJ5dGVzfSk7Cisg
ICAgICAgIHJldHVybiBkcmF3Q29tbWFuZHM7CisgICAgfQorICAgIAorfQorCisKIGFuZ2xlOjpS
ZXN1bHQgVmVydGV4QXJyYXlNdGw6OmNvbnZlcnRJbmRleEJ1ZmZlcihjb25zdCBnbDo6Q29udGV4
dCAqZ2xDb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIGluZGV4VHlwZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6UHJpbWl0aXZlTW9kZSBtb2RlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBv
ZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXRsOjpCdWZmZXJSZWYgKmlkeEJ1ZmZlck91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmlkeEJ1ZmZlck9mZnNldE91dCkKQEAgLTc3
OSw3ICs4NjQsNyBAQCBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRsOjpjb252ZXJ0SW5kZXhC
dWZmZXIoY29uc3QgZ2w6OkNvbnRleHQgKmdsQ29udGV4dCwKICAgICAgICAgLy8gV2Ugc2hvdWxk
bid0IHVzZSBHUFUgdG8gY29udmVydCB3aGVuIHdlIGFyZSBpbiBhIG1pZGRsZSBvZiBhIHJlbmRl
ciBwYXNzLgogICAgICAgICBBTkdMRV9UUlkoU3RyZWFtSW5kZXhEYXRhKGNvbnRleHRNdGwsICZj
b252ZXJzaW9uLT5kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeEJ1
ZmZlci0+Z2V0Q2xpZW50U2hhZG93Q29weURhdGEoY29udGV4dE10bCkgKyBvZmZzZXRNb2R1bG8s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhUeXBlLCBpbmRleENvdW50
LCBtb2RlLCBnbFN0YXRlLmlzUHJpbWl0aXZlUmVzdGFydEVuYWJsZWQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbmRleFR5cGUsIGluZGV4Q291bnQsIGdsU3RhdGUuaXNQ
cmltaXRpdmVSZXN0YXJ0RW5hYmxlZCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZjb252ZXJzaW9uLT5jb252ZXJ0ZWRCdWZmZXIsICZjb252ZXJzaW9uLT5jb252ZXJ0ZWRP
ZmZzZXQpKTsKICAgICB9CiAgICAgZWxzZQpAQCAtNzg3LDcgKzg3Miw3IEBAIGFuZ2xlOjpSZXN1
bHQgVmVydGV4QXJyYXlNdGw6OmNvbnZlcnRJbmRleEJ1ZmZlcihjb25zdCBnbDo6Q29udGV4dCAq
Z2xDb250ZXh0LAogICAgICAgICBBTkdMRV9UUlkoY29udmVydEluZGV4QnVmZmVyR1BVKGdsQ29u
dGV4dCwgaW5kZXhUeXBlLCBpZHhCdWZmZXIsIG9mZnNldE1vZHVsbywgaW5kZXhDb3VudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJzaW9uKSk7CiAgICAg
fQotCisgICAgLy9DYWxjdWxhdGUgcmFuZ2VzIGZvciBwcmltIHJlc3RhcnQgc2ltcGxlIHR5cGVz
LgogICAgICppZHhCdWZmZXJPdXQgICAgICAgPSBjb252ZXJzaW9uLT5jb252ZXJ0ZWRCdWZmZXI7
CiAgICAgKmlkeEJ1ZmZlck9mZnNldE91dCA9IGNvbnZlcnNpb24tPmNvbnZlcnRlZE9mZnNldCAr
IGFsaWduZWRPZmZzZXQ7CiAKQEAgLTgyOSw3ICs5MTQsNiBAQCBhbmdsZTo6UmVzdWx0IFZlcnRl
eEFycmF5TXRsOjpjb252ZXJ0SW5kZXhCdWZmZXJHUFUoY29uc3QgZ2w6OkNvbnRleHQgKmdsQ29u
dGV4dAogCiBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRsOjpzdHJlYW1JbmRleEJ1ZmZlckZy
b21DbGllbnQoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdFbGVtZW50c1R5
cGUgaW5kZXhUeXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdsOjpQcmltaXRpdmVNb2RlIG1vZGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4Q291
bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3Qgdm9pZCAqc291cmNlUG9pbnRlciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGw6OkJ1ZmZlclJlZiAqaWR4QnVm
ZmVyT3V0LApAQCAtODM5LDcgKzkyMyw3IEBAIGFuZ2xlOjpSZXN1bHQgVmVydGV4QXJyYXlNdGw6
OnN0cmVhbUluZGV4QnVmZmVyRnJvbUNsaWVudChjb25zdCBnbDo6Q29udGV4dCAqY29uCiAgICAg
Q29udGV4dE10bCAqY29udGV4dE10bCA9IG10bDo6R2V0SW1wbChjb250ZXh0KTsKIAogICAgIGF1
dG8gc3JjRGF0YSA9IHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oc291cmNlUG9pbnRlcik7
Ci0gICAgQU5HTEVfVFJZKFN0cmVhbUluZGV4RGF0YShjb250ZXh0TXRsLCAmbUR5bmFtaWNJbmRl
eERhdGEsIHNyY0RhdGEsIGluZGV4VHlwZSwgaW5kZXhDb3VudCwgbW9kZSwKKyAgICBBTkdMRV9U
UlkoU3RyZWFtSW5kZXhEYXRhKGNvbnRleHRNdGwsICZtRHluYW1pY0luZGV4RGF0YSwgc3JjRGF0
YSwgaW5kZXhUeXBlLCBpbmRleENvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGV4dC0+Z2V0U3RhdGUoKS5pc1ByaW1pdGl2ZVJlc3RhcnRFbmFibGVkKCksIGlkeEJ1ZmZl
ck91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeEJ1ZmZlck9mZnNldE91dCkp
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426973</attachid>
            <date>2021-04-23 19:10:18 -0700</date>
            <delta_ts>2021-04-25 12:17:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225011-20210423191017.patch</filename>
            <type>text/plain</type>
            <size>27555</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NTE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggZmYyMGZlY2Q0NTAxZmE3YTlmODQxN2Y0M2FhZDdiMGRlMmIxMTljNS4uMTY5ZmM5ODAzNTg4
NTJhMjZhNmY5YjRkOTUzMDIzZGRkMmE2MWI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA0LTIzICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01ldGFsIEFOR0xFXSBzdXBwb3J0IHByaW1pdGl2
ZSByZXN0YXJ0IGJlaGF2aW9yIHdpdGggc2ltcGxlIGRhdGEgdHlwZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTAxMQorCisgICAgICAgIFByaW1p
dGl2ZSByZXN0YXJ0IGJlaGF2aW9yIGZvciBzaW1wbGUgZGF0YSB0eXBlcyBpcyBub3QgZGVmaW5l
ZCBpbiBNZXRhbC4gQWRkIGEgcHJlLWRyYXcgcGFzcyB0byAKKyAgICAgICAgY3JlYXRlIGEgc2V0
IG9mIHJlc3RhcnQgaW5kaWNlcywgcmF0aGVyIHRoYW4gcmUtd3JpdGUgdGhlIGluZGV4IGJ1ZmZl
ci4gVGhpcyBwYXNzIGF2b2lkcyAKKyAgICAgICAgc3RvcmluZyBtb3JlIGNvcGllcyBvZiB0aGUg
aW5kZXggYnVmZmVyOiBpbnN0ZWFkLCB3ZSBjYWNoZSB0aGUgbG9jYXRpb24gb2YgcmVzdGFydCBp
bmRpY2VzLCBhbmQKKyAgICAgICAgdXNlIHRoZW0gdG8gYnVpbGQgZHJhdyBsaXN0cy4KKyAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmg6CisgICAgICAgICogc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbToKKyAgICAgICAgKHJ4OjpJbmRleENvbnZlcnNpb25C
dWZmZXJNdGw6OkluZGV4Q29udmVyc2lvbkJ1ZmZlck10bCk6CisgICAgICAgIChyeDo6QnVmZmVy
TXRsOjptYXJrQ29udmVyc2lvbkJ1ZmZlcnNEaXJ0eSk6CisgICAgICAgIChyeDo6Y2FsY3VsYXRl
UmVzdGFydFJhbmdlcyk6CisgICAgICAgIChyeDo6QnVmZmVyTXRsOjpnZXRSZXN0YXJ0SW5kaWNl
cyk6CisgICAgICAgICogc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwuaDoK
KyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQ29udGV4dE10bC5tbToKKyAg
ICAgICAgKHJ4OjpDb250ZXh0TXRsOjpkcmF3TGluZUxvb3BFbGVtZW50cyk6CisgICAgICAgIChy
eDo6Q29udGV4dE10bDo6ZHJhd0VsZW1lbnRzSW1wbCk6CisgICAgICAgIChyeDo6Q29udGV4dE10
bDo6ZHJhd0VsZW1lbnRzU2ltcGxlVHlwZXNQcmltaXRpdmVSZXN0YXJ0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaDoKKyAg
ICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwubW06Cisg
ICAgICAgIChyeDo6VmVydGV4QXJyYXlNdGw6OmdldEluZGV4QnVmZmVyKToKKyAgICAgICAgKHJ4
OjpWZXJ0ZXhBcnJheU10bDo6Z2V0RHJhd0luZGljZXMpOgorICAgICAgICAocng6OlZlcnRleEFy
cmF5TXRsOjpjb252ZXJ0SW5kZXhCdWZmZXIpOgorICAgICAgICAocng6OlZlcnRleEFycmF5TXRs
OjpzdHJlYW1JbmRleEJ1ZmZlckZyb21DbGllbnQpOgorCiAyMDIxLTA0LTIzICBUcnVpdHQgU2F2
ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyNzYxOTAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9z
cmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLmgKaW5kZXggYTE2MjBlY2ZiZmM2
YzRiZTNmZGM0YTRkNmIxZTJkMWJiMTU4MTkzNC4uMTQ0YWViZmZmMzA5ZGU3NGZjNWVkZDZkMjg2
NmZmNmMxNjVmYzZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xp
YkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwuaApAQCAtMjQsNiAr
MjQsMTIgQEAKIAogbmFtZXNwYWNlIHJ4CiB7CisKK3N0cnVjdCBEcmF3Q29tbWFuZFJhbmdlCit7
CisgICAgdWludDMyX3QgY291bnQ7CisgICAgc2l6ZV90IG9mZnNldDsKK307CiBzdHJ1Y3QgSW5k
ZXhSYW5nZQogewogICAgIHNpemVfdCByZXN0YXJ0QmVnaW47CkBAIC02MywxMiArNjksMTAgQEAg
c3RydWN0IEluZGV4Q29udmVyc2lvbkJ1ZmZlck10bCA6IHB1YmxpYyBDb252ZXJzaW9uQnVmZmVy
TXRsCiAgICAgSW5kZXhDb252ZXJzaW9uQnVmZmVyTXRsKENvbnRleHRNdGwgKmNvbnRleHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIGVsZW1UeXBl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByaW1pdGl2ZVJlc3RhcnRFbmFi
bGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgb2Zmc2V0SW4sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+IHJlc3RhcnRS
YW5nZXNJbiA9IHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+KCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3Qgb2Zmc2V0SW4pOwogICAgIGNvbnN0IGdsOjpEcmF3RWxlbWVudHNU
eXBlIGVsZW1UeXBlOwogICAgIGNvbnN0IHNpemVfdCBvZmZzZXQ7CiAgICAgYm9vbCBwcmltaXRp
dmVSZXN0YXJ0RW5hYmxlZDsKLSAgICBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiByZXN0YXJ0UmFu
Z2VzOwogICAgIEluZGV4UmFuZ2UgZ2V0UmFuZ2VGb3JDb252ZXJ0ZWRCdWZmZXIoc2l6ZV90IGNv
dW50KTsKIAogfTsKQEAgLTE2Myw3ICsxNjcsOSBAQCBjbGFzcyBCdWZmZXJNdGwgOiBwdWJsaWMg
QnVmZmVySW1wbCwgcHVibGljIEJ1ZmZlckhvbGRlck10bAogICAgIHZvaWQgbWFya0NvbnZlcnNp
b25CdWZmZXJzRGlydHkoKTsKIAogICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8c2l6ZV90PihtU3RhdGUuZ2V0U2l6ZSgpKTsgfQotCisgICAgCisgICAgY29uc3Qg
c3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gJiBnZXRSZXN0YXJ0SW5kaWNlcyhDb250ZXh0TXRsICog
Y3R4LCBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGUpOworICAgIAogICBwcml2YXRlOgog
ICAgIGFuZ2xlOjpSZXN1bHQgc2V0RGF0YUltcGwoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6QnVmZmVyQmluZGluZyB0YXJnZXQs
CkBAIC0xOTksOCArMjA1LDEyIEBAIGNsYXNzIEJ1ZmZlck10bCA6IHB1YmxpYyBCdWZmZXJJbXBs
LCBwdWJsaWMgQnVmZmVySG9sZGVyTXRsCiAgICAgc3RkOjp2ZWN0b3I8VmVydGV4Q29udmVyc2lv
bkJ1ZmZlck10bD4gbVZlcnRleENvbnZlcnNpb25CdWZmZXJzOwogCiAgICAgc3RkOjp2ZWN0b3I8
SW5kZXhDb252ZXJzaW9uQnVmZmVyTXRsPiBtSW5kZXhDb252ZXJzaW9uQnVmZmVyczsKLQorICAg
IAogICAgIHN0ZDo6dmVjdG9yPFVuaWZvcm1Db252ZXJzaW9uQnVmZmVyTXRsPiBtVW5pZm9ybUNv
bnZlcnNpb25CdWZmZXJzOworICAgIAorICAgIGJvb2wgbVJlc3RhcnRJbmRpY2VzRGlydHk7Cisg
ICAgc3RkOjp2ZWN0b3I8SW5kZXhSYW5nZT4gbVJlc3RhcnRJbmRpY2VzOworICAgIAogfTsKIAog
Y2xhc3MgU2ltcGxlV2Vha0J1ZmZlckhvbGRlck10bCA6IHB1YmxpYyBCdWZmZXJIb2xkZXJNdGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJl
ci9tZXRhbC9CdWZmZXJNdGwubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5H
TEUvcmVuZGVyZXIvbWV0YWwvQnVmZmVyTXRsLm1tCmluZGV4IDNlYjMyZDk1MTNlNWJlZTI4NGZj
YTM2NjQwN2Q2NDlmNWUxNzA2ZjYuLjM3OTQ2MzJmNzM0YWNjMjdhNmMzNjE1NWE2ODRmZmYzOWU0
ZWM5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9y
ZW5kZXJlci9tZXRhbC9CdWZmZXJNdGwubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0J1ZmZlck10bC5tbQpAQCAtNjAsMTcgKzYwLDE1
IEBAIENvbnZlcnNpb25CdWZmZXJNdGw6On5Db252ZXJzaW9uQnVmZmVyTXRsKCkgPSBkZWZhdWx0
OwogSW5kZXhDb252ZXJzaW9uQnVmZmVyTXRsOjpJbmRleENvbnZlcnNpb25CdWZmZXJNdGwoQ29u
dGV4dE10bCAqY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIGVsZW1UeXBlSW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHByaW1pdGl2ZVJl
c3RhcnRFbmFibGVkSW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3Qgb2Zmc2V0SW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiByZXN0YXJ0UmFu
Z2VzSW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3Qgb2Zmc2V0SW4pCiAgICAgOiBDb252ZXJzaW9uQnVmZmVyTXRsKGNvbnRleHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGtDb252ZXJ0ZWRFbGVtZW50QXJyYXlCdWZmZXJJbml0
aWFsU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjprSW5kZXhCdWZmZXJPZmZz
ZXRBbGlnbm1lbnQpLAogICAgICAgZWxlbVR5cGUoZWxlbVR5cGVJbiksCiAgICAgICBvZmZzZXQo
b2Zmc2V0SW4pLAotICAgICAgcHJpbWl0aXZlUmVzdGFydEVuYWJsZWQocHJpbWl0aXZlUmVzdGFy
dEVuYWJsZWRJbiksCi0gICAgICByZXN0YXJ0UmFuZ2VzKHJlc3RhcnRSYW5nZXNJbikKLQote30K
KyAgICAgIHByaW1pdGl2ZVJlc3RhcnRFbmFibGVkKHByaW1pdGl2ZVJlc3RhcnRFbmFibGVkSW4p
Cit7Cit9CiAKIEluZGV4UmFuZ2UgSW5kZXhDb252ZXJzaW9uQnVmZmVyTXRsOjpnZXRSYW5nZUZv
ckNvbnZlcnRlZEJ1ZmZlcihzaXplX3QgY291bnQpCiB7CkBAIC00MDMsNiArNDAxLDcgQEAgdm9p
ZCBCdWZmZXJNdGw6Om1hcmtDb252ZXJzaW9uQnVmZmVyc0RpcnR5KCkKICAgICAgICAgYnVmZmVy
LmNvbnZlcnRlZEJ1ZmZlciA9IG51bGxwdHI7CiAgICAgICAgIGJ1ZmZlci5jb252ZXJ0ZWRPZmZz
ZXQgPSAwOwogICAgIH0KKyAgICBtUmVzdGFydEluZGljZXNEaXJ0eSA9IHRydWU7CiB9CiAKIHZv
aWQgQnVmZmVyTXRsOjpjbGVhckNvbnZlcnNpb25CdWZmZXJzKCkKQEAgLTQxMiw2ICs0MTEsNTMg
QEAgdm9pZCBCdWZmZXJNdGw6OmNsZWFyQ29udmVyc2lvbkJ1ZmZlcnMoKQogICAgIG1Vbmlmb3Jt
Q29udmVyc2lvbkJ1ZmZlcnMuY2xlYXIoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3N0
YXRpYyB2b2lkIGNhbGN1bGF0ZVJlc3RhcnRSYW5nZXMoQ29udGV4dE10bCogY3R4LCBtdGw6OkJ1
ZmZlclJlZiBpZHhCdWZmZXIsIHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+ICogcmFuZ2VzKQorewor
ICAgIHJhbmdlcy0+Y2xlYXIoKTsKKyAgICBUICpidWZmZXJEYXRhID0gKFQqKShpZHhCdWZmZXIt
Pm1hcFJlYWRPbmx5KGN0eCkpOworICAgIGZvcihpbnQgaSA9IDA7IGkgPCBpZHhCdWZmZXItPnNp
emUoKS9zaXplb2YoVCk7IGkrKykKKyAgICB7CisgICAgICAgIFQgdmFsdWUgPSBidWZmZXJEYXRh
W2ldOworICAgICAgICBpZih2YWx1ZSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPFQ+OjptYXgoKSkK
KyAgICAgICAgeworICAgICAgICAgICAgSW5kZXhSYW5nZSBuZXdSYW5nZTsKKyAgICAgICAgICAg
IG5ld1JhbmdlLnJlc3RhcnRCZWdpbiA9IGk7CisgICAgICAgICAgICAvL0ZpbmQgdGhlIGVuZCBv
ZiB0aGUgcmVzdGFydCByYW5nZS4KKyAgICAgICAgICAgIGRvCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgKytpOworICAgICAgICAgICAgICAgIHZhbHVlID0gYnVmZmVyRGF0YVtpXTsK
KyAgICAgICAgICAgIH13aGlsZSAoaSA8IGlkeEJ1ZmZlci0+c2l6ZSgpICYmIHZhbHVlID09IHN0
ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpKTsKKyAgICAgICAgICAgIG5ld1JhbmdlLnJlc3Rh
cnRFbmQgPSBpLTE7CisgICAgICAgICAgICByYW5nZXMtPnB1c2hfYmFjayhuZXdSYW5nZSk7Cisg
ICAgICAgIH0KKyAgICB9Cit9CisKK2NvbnN0IHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+ICYgQnVm
ZmVyTXRsOjpnZXRSZXN0YXJ0SW5kaWNlcyhDb250ZXh0TXRsICogY3R4LCBnbDo6RHJhd0VsZW1l
bnRzVHlwZSBpbmRleFR5cGUpCit7CisgICAgaWYobVJlc3RhcnRJbmRpY2VzRGlydHkpCisgICAg
eworICAgICAgICBzd2l0Y2goaW5kZXhUeXBlKQorICAgICAgICB7CisgICAgICAgICAgICBjYXNl
IGdsOjpEcmF3RWxlbWVudHNUeXBlOjpVbnNpZ25lZEJ5dGU6CisgICAgICAgICAgICAgICAgY2Fs
Y3VsYXRlUmVzdGFydFJhbmdlczx1aW50OF90PihjdHgsIGdldEN1cnJlbnRCdWZmZXIoKSwmbVJl
c3RhcnRJbmRpY2VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
Z2w6OkRyYXdFbGVtZW50c1R5cGU6OlVuc2lnbmVkU2hvcnQ6CisgICAgICAgICAgICAgICAgY2Fs
Y3VsYXRlUmVzdGFydFJhbmdlczx1aW50MTZfdD4oY3R4LCBnZXRDdXJyZW50QnVmZmVyKCksJm1S
ZXN0YXJ0SW5kaWNlcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IGdsOjpEcmF3RWxlbWVudHNUeXBlOjpVbnNpZ25lZEludDoKKyAgICAgICAgICAgICAgICBjYWxj
dWxhdGVSZXN0YXJ0UmFuZ2VzPHVpbnQzMl90PihjdHgsIGdldEN1cnJlbnRCdWZmZXIoKSwmbVJl
c3RhcnRJbmRpY2VzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgfQorICAgICAgICBtUmVzdGFydEluZGljZXNEaXJ0eSA9IGZhbHNlOworICAgIH0KKyAg
ICByZXR1cm4gbVJlc3RhcnRJbmRpY2VzOworfQogYW5nbGU6OlJlc3VsdCBCdWZmZXJNdGw6OnNl
dERhdGFJbXBsKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdsOjpCdWZmZXJCaW5kaW5nIHRhcmdldCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpkYXRhLApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRl
eHRNdGwuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9t
ZXRhbC9Db250ZXh0TXRsLmgKaW5kZXggZjNmNWJjYWNiYWZkYjgyNTA3OWJjOTAzZmZmNWUzMDMx
YzY3MGFhZS4uNTJmYWJhZDllZTZiYTg3ZGM1N2Q5YzljZWE1Zjg5MTc2MjE4OWJkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFs
L0NvbnRleHRNdGwuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUv
cmVuZGVyZXIvbWV0YWwvQ29udGV4dE10bC5oCkBAIC0xNTcsMTMgKzE1Nyw2IEBAIGNsYXNzIENv
bnRleHRNdGwgOiBwdWJsaWMgQ29udGV4dEltcGwsIHB1YmxpYyBtdGw6OkNvbnRleHQKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBHTGludCAqYmFzZVZlcnRpY2VzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdMdWludCAq
YmFzZUluc3RhbmNlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHTHNpemVpIGRyYXdjb3VudCkgb3ZlcnJpZGU7Ci0g
ICAgYW5nbGU6OlJlc3VsdCBkcmF3RWxlbWVudHNTaW1wbGVUeXBlc1ByaW1pdGl2ZVJlc3RhcnQo
Y29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OlByaW1pdGl2ZU1vZGUgbW9kZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
THNpemVpIGNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIHR5cGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq
aW5kaWNlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHTHNpemVpIGluc3RhbmNlcyk7Ci0KICAgICAvLyBEZXZpY2UgbG9zcwogICAg
IGdsOjpHcmFwaGljc1Jlc2V0U3RhdHVzIGdldFJlc2V0U3RhdHVzKCkgb3ZlcnJpZGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9t
ZXRhbC9Db250ZXh0TXRsLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwubW0KaW5kZXggZTRkMDJiYmZmZjQzN2JjNjE3NDgx
ZTAyMjY5ODZjZWZjNjRhOGIzNi4uMDI0NzAyYjhlY2FmMzE2NGMyNTQ3N2YxZjM3MWFjYmI1YjNh
OTM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3Jl
bmRlcmVyL21ldGFsL0NvbnRleHRNdGwubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
c3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL0NvbnRleHRNdGwubW0KQEAgLTU3OSw1OCArNTc5
LDYgQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0TXRsOjpkcmF3TGluZUxvb3BFbGVtZW50cyhjb25z
dCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICByZXR1cm4gZHJhd0VsZW1lbnRzSW5zdGFuY2Vk
KGNvbnRleHQsIGdsOjpQcmltaXRpdmVNb2RlOjpMaW5lcywgY291bnQsIHR5cGUsIGluZGljZXMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZXMpOwogfQotYW5nbGU6
OlJlc3VsdCBDb250ZXh0TXRsOjpkcmF3RWxlbWVudHNTaW1wbGVUeXBlc1ByaW1pdGl2ZVJlc3Rh
cnQoY29uc3QgZ2w6OkNvbnRleHQgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6UHJpbWl0aXZlTW9k
ZSBtb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0xzaXplaSBjb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVu
dHNUeXBlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbmRpY2VzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xz
aXplaSBpbnN0YW5jZXMpCi17Ci0KLSAgICBtdGw6OkJ1ZmZlclJlZiBnZW5JZHhCdWZmZXI7Ci0g
ICAgdWludDMyX3QgZ2VuSWR4QnVmZmVyT2Zmc2V0OwotICAgIHVpbnQzMl90IHJlc2VydmVkSW5k
aWNlcyA9IGNvdW50OwotICAgIHNpemVfdCBnZW5JbmRpY2VzQ291bnQ7Ci0gICAgQU5HTEVfVFJZ
KEFsbG9jYXRlQnVmZmVyRnJvbVBvb2wodGhpcywgcmVzZXJ2ZWRJbmRpY2VzLCAmbVByaW1pdGl2
ZVJlc3RhcnRCdWZmZXIsICZnZW5JZHhCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJmdlbklkeEJ1ZmZlck9mZnNldCkpOwotICAgIHN3aXRjaCAobW9kZSkKLSAg
ICB7Ci0gICAgICAgIGNhc2UgZ2w6OlByaW1pdGl2ZU1vZGU6OlBvaW50czoKLSAgICAgICAgICAg
IEFOR0xFX1RSWShnZXREaXNwbGF5KCktPmdldFV0aWxzKCkuZ2VuZXJhdGVQcmltaXRpdmVSZXN0
YXJ0UG9pbnRzQnVmZmVyKAotICAgICAgICAgICAgICAgIHRoaXMsIHt0eXBlLCBjb3VudCwgaW5k
aWNlcywgZ2VuSWR4QnVmZmVyLCBnZW5JZHhCdWZmZXJPZmZzZXQsIHRydWV9LAotICAgICAgICAg
ICAgICAgICZnZW5JbmRpY2VzQ291bnQpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIGdsOjpQcmltaXRpdmVNb2RlOjpMaW5lczoKLSAgICAgICAgICAgIEFOR0xFX1RSWShnZXRE
aXNwbGF5KCktPmdldFV0aWxzKCkuZ2VuZXJhdGVQcmltaXRpdmVSZXN0YXJ0TGluZXNCdWZmZXIo
Ci0gICAgICAgICAgICAgICAgdGhpcywge3R5cGUsIGNvdW50LCBpbmRpY2VzLCBnZW5JZHhCdWZm
ZXIsIGdlbklkeEJ1ZmZlck9mZnNldCwgdHJ1ZX0sCi0gICAgICAgICAgICAgICAgJmdlbkluZGlj
ZXNDb3VudCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgZ2w6OlByaW1pdGl2
ZU1vZGU6OlRyaWFuZ2xlczoKLSAgICAgICAgICAgIEFOR0xFX1RSWShnZXREaXNwbGF5KCktPmdl
dFV0aWxzKCkuZ2VuZXJhdGVQcmltaXRpdmVSZXN0YXJ0VHJpYW5nbGVzQnVmZmVyKAotICAgICAg
ICAgICAgICAgIHRoaXMsIHt0eXBlLCBjb3VudCwgaW5kaWNlcywgZ2VuSWR4QnVmZmVyLCBnZW5J
ZHhCdWZmZXJPZmZzZXQsIHRydWV9LAotICAgICAgICAgICAgICAgICZnZW5JbmRpY2VzQ291bnQp
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgVU5S
RUFDSEFCTEUoKTsKLSAgICAgICAgICAgIHJldHVybiBhbmdsZTo6UmVzdWx0OjpTdG9wOwotICAg
IH0KLSAgICBBTkdMRV9UUlkobVByaW1pdGl2ZVJlc3RhcnRCdWZmZXIuY29tbWl0KHRoaXMpKTsK
LSAgICBNVExQcmltaXRpdmVUeXBlIG10bFR5cGUgPSBtdGw6OkdldFByaW1pdGl2ZVR5cGUobW9k
ZSk7Ci0gICAgaWYgKG1TdGF0ZS5pc1RyYW5zZm9ybUZlZWRiYWNrQWN0aXZlVW5wYXVzZWQoKSkK
LSAgICB7Ci0gICAgICAgIEFOR0xFX1RSWShzZXR1cERyYXcoY29udGV4dCwgbW9kZSwgMCwgY291
bnQsIGluc3RhbmNlcywgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVy
cHJldF9jYXN0PGNvbnN0IHZvaWQgKj4oMCksIHRydWUpKTsKLQotICAgICAgICBleGVjRHJhd0lu
ZGV4ZWRJbnN0YW5jZWQobXRsVHlwZSwgKHVpbnQzMl90KWdlbkluZGljZXNDb3VudCwgTVRMSW5k
ZXhUeXBlVUludDMyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuSWR4QnVm
ZmVyLCBnZW5JZHhCdWZmZXJPZmZzZXQsIGluc3RhbmNlcyk7Ci0gICAgfQotICAgIEFOR0xFX1RS
WShzZXR1cERyYXcoY29udGV4dCwgbW9kZSwgMCwgY291bnQsIGluc3RhbmNlcywgdHlwZSwgaW5k
aWNlcywgZmFsc2UpKTsKLQotICAgIGV4ZWNEcmF3SW5kZXhlZEluc3RhbmNlZChtdGxUeXBlLCAo
dWludDMyX3QpZ2VuSW5kaWNlc0NvdW50LCBNVExJbmRleFR5cGVVSW50MzIsIGdlbklkeEJ1ZmZl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuSWR4QnVmZmVyT2Zmc2V0LCBpbnN0
YW5jZXMpOwotCi0gICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNvbnRpbnVlOwotfQogCiBhbmds
ZTo6UmVzdWx0IENvbnRleHRNdGw6OmRyYXdFbGVtZW50c0ltcGwoY29uc3QgZ2w6OkNvbnRleHQg
KmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6
OlByaW1pdGl2ZU1vZGUgbW9kZSwKQEAgLTY1NywxMiArNjA1LDE4IEBAIGFuZ2xlOjpSZXN1bHQg
Q29udGV4dE10bDo6ZHJhd0VsZW1lbnRzSW1wbChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwK
ICAgICBtdGw6OkJ1ZmZlclJlZiBpZHhCdWZmZXI7CiAgICAgc2l6ZV90IGNvbnZlcnRlZE9mZnNl
dCAgICAgICAgICAgICA9IDA7CiAgICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgY29udmVydGVkVHlw
ZSA9IHR5cGU7Ci0gICAgQU5HTEVfVFJZKG1WZXJ0ZXhBcnJheS0+Z2V0SW5kZXhCdWZmZXIoY29u
dGV4dCwgdHlwZSwgbW9kZSwgY291bnQsIGluZGljZXMsICZpZHhCdWZmZXIsCisgICAgQU5HTEVf
VFJZKG1WZXJ0ZXhBcnJheS0+Z2V0SW5kZXhCdWZmZXIoY29udGV4dCwgdHlwZSwgY291bnQsIGlu
ZGljZXMsICZpZHhCdWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJmNvbnZlcnRlZE9mZnNldCwgJmNvbnZlcnRlZFR5cGUpKTsKIAogICAgIEFTU0VSVChp
ZHhCdWZmZXIpOwogICAgIEFTU0VSVCgoY29udmVydGVkT2Zmc2V0ICUgbXRsOjprSW5kZXhCdWZm
ZXJPZmZzZXRBbGlnbm1lbnQpID09IDApOwogICAgIHVpbnQzMl90IGNvbnZlcnRlZENvdW50aTMy
ID0gKHVpbnQzMl90KWNvdW50OworICAgIAorICAgIC8vRHJhdyBjb21tYW5kcyB3aWxsIG9ubHkg
YmUgYnJva2VuIHVwIGlmIHRyYW5zZm9ybSBmZWVkYmFjayBpcyBlbmFibGVkLAorICAgIC8vaWYg
dGhlIG1vZGUgaXMgYSBzaW1wbGUgdHlwZSwgYW5kIGlmIHRoZSBidWZmZXIgY29udGFpbmVkIGFu
eSByZXN0YXJ0CisgICAgLy9pbmRpY2VzLgorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPERyYXdDb21t
YW5kUmFuZ2U+IGRyYXdDb21tYW5kcyA9IG1WZXJ0ZXhBcnJheS0+Z2V0RHJhd0luZGljZXMoY29u
dGV4dCwgdHlwZSwgY29udmVydGVkVHlwZSwgbW9kZSwgY29udmVydGVkQ291bnRpMzIsIGNvbnZl
cnRlZE9mZnNldCk7CisgICAgCiAgICAgaWYgKG1TdGF0ZS5pc1RyYW5zZm9ybUZlZWRiYWNrQWN0
aXZlVW5wYXVzZWQoKSkKICAgICB7CiAgICAgICAgIEFOR0xFX1RSWShzZXR1cERyYXcoY29udGV4
dCwgbW9kZSwgMCwgY29udmVydGVkQ291bnRpMzIsIGluc3RhbmNlcywgdHlwZSwgaW5kaWNlcywg
dHJ1ZSkpOwpAQCAtNjczLDE0ICs2MjcsMjEgQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0TXRsOjpk
cmF3RWxlbWVudHNJbXBsKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgICAgICBpZiAo
aW5zdGFuY2VzID09IDApCiAgICAgICAgIHsKICAgICAgICAgICAgIC8vIE5vcm1hbCBkcmF3Ci0g
ICAgICAgICAgICBtUmVuZGVyRW5jb2Rlci5kcmF3SW5kZXhlZChtdGxUeXBlLCBjb252ZXJ0ZWRD
b3VudGkzMiwgbXRsSWR4VHlwZSwgaWR4QnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udmVydGVkT2Zmc2V0KTsKKyAgICAgICAgICAgIGZvcihhdXRvICYg
Y29tbWFuZCA6IGRyYXdDb21tYW5kcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBt
UmVuZGVyRW5jb2Rlci5kcmF3SW5kZXhlZChtdGxUeXBlLCBjb21tYW5kLmNvdW50LCBtdGxJZHhU
eXBlLCBpZHhCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWFuZC5vZmZzZXQpOworCisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
ZWxzZQogICAgICAgICB7CiAgICAgICAgICAgICAvLyBJbnN0YW5jZWQgZHJhdwotICAgICAgICAg
ICAgZXhlY0RyYXdJbmRleGVkSW5zdGFuY2VkKG10bFR5cGUsIGNvbnZlcnRlZENvdW50aTMyLCBt
dGxJZHhUeXBlLCBpZHhCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29udmVydGVkT2Zmc2V0LCBpbnN0YW5jZUNvdW50KTsKKyAgICAgICAgICAgIGZvcihhdXRv
ICYgY29tbWFuZCA6IGRyYXdDb21tYW5kcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBleGVjRHJhd0luZGV4ZWRJbnN0YW5jZWQobXRsVHlwZSwgY29tbWFuZC5jb3VudCwgbXRsSWR4
VHlwZSwgaWR4QnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bW1hbmQub2Zmc2V0LCBpbnN0YW5jZUNvdW50KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KIApAQCAtNjkzLDE0ICs2NTQsMjAgQEAgYW5nbGU6OlJlc3VsdCBDb250ZXh0TXRsOjpk
cmF3RWxlbWVudHNJbXBsKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgIGlmIChpbnN0
YW5jZXMgPT0gMCkKICAgICB7CiAgICAgICAgIC8vIE5vcm1hbCBkcmF3Ci0gICAgICAgIG1SZW5k
ZXJFbmNvZGVyLmRyYXdJbmRleGVkKG10bFR5cGUsIGNvbnZlcnRlZENvdW50aTMyLCBtdGxJZHhU
eXBlLCBpZHhCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZl
cnRlZE9mZnNldCk7CisgICAgICAgIGZvcihhdXRvICYgY29tbWFuZCA6IGRyYXdDb21tYW5kcykK
KyAgICAgICAgeworICAgICAgICAgICAgbVJlbmRlckVuY29kZXIuZHJhd0luZGV4ZWQobXRsVHlw
ZSwgY29tbWFuZC5jb3VudCwgbXRsSWR4VHlwZSwgaWR4QnVmZmVyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tYW5kLm9mZnNldCk7CisgICAgICAgIH0KICAgICB9CiAg
ICAgZWxzZQogICAgIHsKICAgICAgICAgLy8gSW5zdGFuY2VkIGRyYXcKLSAgICAgICAgZXhlY0Ry
YXdJbmRleGVkSW5zdGFuY2VkKG10bFR5cGUsIGNvbnZlcnRlZENvdW50aTMyLCBtdGxJZHhUeXBl
LCBpZHhCdWZmZXIsIGNvbnZlcnRlZE9mZnNldCwKKyAgICAgICAgZm9yKGF1dG8gJiBjb21tYW5k
IDogZHJhd0NvbW1hbmRzKQorICAgICAgICB7CisgICAgICAgICAgICBleGVjRHJhd0luZGV4ZWRJ
bnN0YW5jZWQobXRsVHlwZSwgY29tbWFuZC5jb3VudCwgbXRsSWR4VHlwZSwgaWR4QnVmZmVyLCBj
b21tYW5kLm9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNl
Q291bnQpOworICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGFuZ2xlOjpSZXN1bHQ6OkNv
bnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xF
L3JlbmRlcmVyL21ldGFsL1ZlcnRleEFycmF5TXRsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaAppbmRleCBjNTBm
MTE5N2YwNWNiZjRhNzhkYTQ0YmI3Y2ExMzc3Y2Q2ZDkxMzY2Li42YjFkMjJlNWM3YjQ1ZDY5Yjli
ZWY0YzhhNzVjZDk1OWJkYWY2ODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwuaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJy
YXlNdGwuaApAQCAtNTMsMTMgKzUzLDIwIEBAIGNsYXNzIFZlcnRleEFycmF5TXRsIDogcHVibGlj
IFZlcnRleEFycmF5SW1wbAogCiAgICAgYW5nbGU6OlJlc3VsdCBnZXRJbmRleEJ1ZmZlcihjb25z
dCBnbDo6Q29udGV4dCAqZ2xDb250ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2w6OlByaW1pdGl2ZU1vZGUgcHJpbWl0aXZlTW9kZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleENvdW50LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqc291cmNlUG9pbnRlciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG10bDo6QnVmZmVyUmVmICppZHhCdWZmZXJPdXQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgKmlkeEJ1ZmZlck9mZnNldE91dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlICpp
bmRleFR5cGVPdXQpOwotCisgICAgCisgICAgCisgICAgc3RkOjp2ZWN0b3I8RHJhd0NvbW1hbmRS
YW5nZT4gZ2V0RHJhd0luZGljZXMoY29uc3QgZ2w6OkNvbnRleHQgKmdsQ29udGV4dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6RHJhd0VsZW1l
bnRzVHlwZSBvcmlnaW5hbEluZGV4VHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OlByaW1pdGl2
ZU1vZGUgcHJpbWl0aXZlTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCBpbmRleENvdW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvZmZzZXQpOworICAgIAogICAgIC8v
IFVzZSB0byBlbXVsYXRlIGluc3RhbmNlZCBkcmF3IGZvciBpbnN0YW5jZSA8aW5zdGFuY2VJZD4u
CiAgICAgLy8gVGhlIHR5cGljYWwgY2FsbCBzZXF1ZW5jZSBmb3IgZW11bGF0ZWQgaW5zdGFuY2Ug
ZHJhdyBpczoKICAgICAvLyAtIHNldHVwRHJhdygpCkBAIC04NSwxMyArOTIsMTEgQEAgY2xhc3Mg
VmVydGV4QXJyYXlNdGwgOiBwdWJsaWMgVmVydGV4QXJyYXlJbXBsCiAKICAgICBhbmdsZTo6UmVz
dWx0IGNvbnZlcnRJbmRleEJ1ZmZlcihjb25zdCBnbDo6Q29udGV4dCAqZ2xDb250ZXh0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIGlu
ZGV4VHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6UHJpbWl0
aXZlTW9kZSBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjpCdWZm
ZXJSZWYgKmlkeEJ1ZmZlck91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3QgKmlkeEJ1ZmZlck9mZnNldE91dCk7CiAgICAgYW5nbGU6OlJlc3VsdCBzdHJlYW1J
bmRleEJ1ZmZlckZyb21DbGllbnQoY29uc3QgZ2w6OkNvbnRleHQgKmdsQ29udGV4dCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6RHJhd0VsZW1lbnRz
VHlwZSBpbmRleFR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2w6OlByaW1pdGl2ZU1vZGUgcHJpbWl0aXZlVHlwZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXhDb3VudCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpzb3VyY2VQ
b2ludGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10
bDo6QnVmZmVyUmVmICppZHhCdWZmZXJPdXQsCkBAIC0xMjcsNyArMTMyLDcgQEAgY2xhc3MgVmVy
dGV4QXJyYXlNdGwgOiBwdWJsaWMgVmVydGV4QXJyYXlJbXBsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2ZXJ0ZXhDb3VudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0V4cGFuZGluZ0NvbXBvbmVudHMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnZlcnNpb25CdWZmZXJN
dGwgKmNvbnZlcnNpb24pOwotCisgICAgCiAgICAgLy8gVGhlc2UgY2FuIHBvaW50IHRvIHJlYWwg
QnVmZmVyTXRsIG9yIGNvbnZlcnRlZCBidWZmZXIgaW4gbUNvbnZlcnRlZEFycmF5QnVmZmVySG9s
ZGVycwogICAgIGdsOjpBdHRyaWJBcnJheTxCdWZmZXJIb2xkZXJNdGwgKj4gbUN1cnJlbnRBcnJh
eUJ1ZmZlcnM7CiAgICAgZ2w6OkF0dHJpYkFycmF5PFNpbXBsZVdlYWtCdWZmZXJIb2xkZXJNdGw+
IG1Db252ZXJ0ZWRBcnJheUJ1ZmZlckhvbGRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwubW0g
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVy
dGV4QXJyYXlNdGwubW0KaW5kZXggOTQ2MjdiODEyYzgwMWNlMmI1YzZjZjYxYzNkYmJmZDNlMTMy
YjNhMy4uOWE1ZmQ0YjVhNTAyYjE0YmFhNDMyMjc5YjRmYTIxNzhkNGEwNGJlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1Zl
cnRleEFycmF5TXRsLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdM
RS9yZW5kZXJlci9tZXRhbC9WZXJ0ZXhBcnJheU10bC5tbQpAQCAtNzksNyArNzksNiBAQCBhbmds
ZTo6UmVzdWx0IFN0cmVhbUluZGV4RGF0YShDb250ZXh0TXRsICpjb250ZXh0TXRsLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqc291cmNlUG9pbnRlciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIGluZGV4VHlw
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleENvdW50LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OlByaW1pdGl2ZU1vZGUgbW9kZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcHJpbWl0aXZlUmVzdGFydEVuYWJsZWQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdGw6OkJ1ZmZlclJlZiAqYnVmZmVyT3V0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90ICpidWZmZXJPZmZzZXRPdXQpCkBA
IC02OTYsNyArNjk1LDYgQEAgYW5nbGU6OlJlc3VsdCBWZXJ0ZXhBcnJheU10bDo6c3luY0RpcnR5
QXR0cmliKGNvbnN0IGdsOjpDb250ZXh0ICpnbENvbnRleHQsCiAKIGFuZ2xlOjpSZXN1bHQgVmVy
dGV4QXJyYXlNdGw6OmdldEluZGV4QnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdFbGVt
ZW50c1R5cGUgdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsOjpQcmltaXRpdmVNb2RlIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgY291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICppbmRpY2VzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXRsOjpCdWZmZXJSZWYgKmlkeEJ1ZmZlck91
dCwKQEAgLTcwOCw3ICs3MDYsNyBAQCBhbmdsZTo6UmVzdWx0IFZlcnRleEFycmF5TXRsOjpnZXRJ
bmRleEJ1ZmZlcihjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwKICAgICBzaXplX3QgY29udmVy
dGVkT2Zmc2V0ID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KGluZGljZXMpOwogICAgIGlmICgh
Z2xFbGVtZW50QXJyYXlCdWZmZXIpCiAgICAgewotICAgICAgICBBTkdMRV9UUlkoc3RyZWFtSW5k
ZXhCdWZmZXJGcm9tQ2xpZW50KGNvbnRleHQsIHR5cGUsIG1vZGUsIGNvdW50LCBpbmRpY2VzLCBp
ZHhCdWZmZXJPdXQsCisgICAgICAgIEFOR0xFX1RSWShzdHJlYW1JbmRleEJ1ZmZlckZyb21DbGll
bnQoY29udGV4dCwgdHlwZSwgY291bnQsIGluZGljZXMsIGlkeEJ1ZmZlck91dCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHhCdWZmZXJPZmZzZXRPdXQp
KTsKICAgICB9CiAgICAgZWxzZQpAQCAtNzE3LDcgKzcxNSw3IEBAIGFuZ2xlOjpSZXN1bHQgVmVy
dGV4QXJyYXlNdGw6OmdldEluZGV4QnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnZlcnRlZE9mZnNldCAlIG10bDo6a0lu
ZGV4QnVmZmVyT2Zmc2V0QWxpZ25tZW50KSAhPSAwOwogICAgICAgICBpZiAobmVlZENvbnZlcnNp
b24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFOR0xFX1RSWShjb252ZXJ0SW5kZXhCdWZmZXIo
Y29udGV4dCwgdHlwZSwgbW9kZSwgY29udmVydGVkT2Zmc2V0LCBpZHhCdWZmZXJPdXQsCisgICAg
ICAgICAgICBBTkdMRV9UUlkoY29udmVydEluZGV4QnVmZmVyKGNvbnRleHQsIHR5cGUsIGNvbnZl
cnRlZE9mZnNldCwgaWR4QnVmZmVyT3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZHhCdWZmZXJPZmZzZXRPdXQpKTsKICAgICAgICAgfQogICAgICAgICBlbHNl
CkBAIC03MzksOSArNzM3LDk5IEBAIGFuZ2xlOjpSZXN1bHQgVmVydGV4QXJyYXlNdGw6OmdldElu
ZGV4QnVmZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpjb250ZXh0LAogICAgIHJldHVybiBhbmdsZTo6
UmVzdWx0OjpDb250aW51ZTsKIH0KIAorc3RkOjp2ZWN0b3I8RHJhd0NvbW1hbmRSYW5nZT4gVmVy
dGV4QXJyYXlNdGw6OmdldERyYXdJbmRpY2VzKGNvbnN0IGdsOjpDb250ZXh0ICpnbENvbnRleHQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpEcmF3RWxlbWVudHNUeXBlIG9yaWdp
bmFsSW5kZXhUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbDo6RHJhd0VsZW1l
bnRzVHlwZSBpbmRleFR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpQcmlt
aXRpdmVNb2RlIHByaW1pdGl2ZU1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp
bnQzMl90IGluZGV4Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBv
ZmZzZXQpCit7CisgICAgQ29udGV4dE10bCAqY29udGV4dE10bCAgID0gbXRsOjpHZXRJbXBsKGds
Q29udGV4dCk7CisgICAgc3RkOjp2ZWN0b3I8RHJhd0NvbW1hbmRSYW5nZT4gZHJhd0NvbW1hbmRz
OworICAgIAorICAgIEJ1ZmZlck10bCAqaWR4QnVmZmVyICAgICA9IG10bDo6R2V0SW1wbChnZXRT
dGF0ZSgpLmdldEVsZW1lbnRBcnJheUJ1ZmZlcigpKTsKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxJ
bmRleFJhbmdlPiByZXN0YXJ0SW5kaWNlcyA9IGlkeEJ1ZmZlci0+Z2V0UmVzdGFydEluZGljZXMo
Y29udGV4dE10bCwgb3JpZ2luYWxJbmRleFR5cGUpOworICAgIGJvb2wgaXNTaW1wbGVUeXBlID0K
KyAgICAgICAgcHJpbWl0aXZlTW9kZSA9PSBnbDo6UHJpbWl0aXZlTW9kZTo6UG9pbnRzIHx8Cisg
ICAgICAgIHByaW1pdGl2ZU1vZGUgPT0gZ2w6OlByaW1pdGl2ZU1vZGU6OkxpbmVzIHx8CisgICAg
ICAgIHByaW1pdGl2ZU1vZGUgPT0gZ2w6OlByaW1pdGl2ZU1vZGU6OlRyaWFuZ2xlczsKKyAgICAv
L0lmIHByaW0gcmVzdGFydCBpc24ndCBlbmFibGVkLCBvciB3ZSdyZSBkcmF3aW5nIGEgcmVzdGFy
dGFibGUgdHlwZSwgb3IgdGhlcmUncyBubyByZXN0YXJ0cywgc2tpcCBicmVha2luZyB1cCBkcmF3
IGNvbW1hbmRzLgorICAgIGlmKHJlc3RhcnRJbmRpY2VzLnNpemUoKSA9PSAwIHx8ICFpc1NpbXBs
ZVR5cGUgfHwgIWdsQ29udGV4dC0+Z2V0U3RhdGUoKS5pc1ByaW1pdGl2ZVJlc3RhcnRFbmFibGVk
KCkpCisgICAgeworICAgICAgICBkcmF3Q29tbWFuZHMucHVzaF9iYWNrKHtpbmRleENvdW50LCBv
ZmZzZXR9KTsKKyAgICAgICAgcmV0dXJuIGRyYXdDb21tYW5kczsKKyAgICB9CisgICAgZWxzZQor
ICAgIHsKKyAgICAgICAgLy9SZW1pbmRlciwgb2Zmc2V0IGlzIGluIGJ5dGVzLCBub3QgZWxlbWVu
dHMuCisgICAgICAgIC8vU2xpY2UgZHJhdyBjb21tYW5kcyBiYXNlZCBvZmYgb2YgaW5kaWNlcy4K
KyAgICAgICAgaW50IG5JbmRpY2VzUGVyUHJpbWl0aXZlOworICAgICAgICBzd2l0Y2gocHJpbWl0
aXZlTW9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6
UG9pbnRzOgorICAgICAgICAgICAgICAgIG5JbmRpY2VzUGVyUHJpbWl0aXZlID0gMTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZ2w6OlByaW1pdGl2ZU1vZGU6Okxp
bmVzOgorICAgICAgICAgICAgICAgIG5JbmRpY2VzUGVyUHJpbWl0aXZlID0gMjsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZ2w6OlByaW1pdGl2ZU1vZGU6OlRyaWFu
Z2xlczoKKyAgICAgICAgICAgICAgICBuSW5kaWNlc1BlclByaW1pdGl2ZSA9IDM7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8v
VW5yZWFjaGFibGUKKyAgICAgICAgICAgICAgICBBU1NFUlQoRkFMU0UpOworICAgICAgICAgICAg
ICAgIHJldHVybiBkcmF3Q29tbWFuZHM7CisgICAgICAgIH0KKyAgICAgICAgY29uc3QgR0x1aW50
IGluZGV4VHlwZUJ5dGVzICAgICAgICA9IGdsOjpHZXREcmF3RWxlbWVudHNUeXBlU2l6ZShpbmRl
eFR5cGUpOworICAgICAgICB1aW50MzJfdCBpbmRpY2VzTGVmdCA9IGluZGV4Q291bnQ7CisgICAg
ICAgIHNpemVfdCBjdXJyZW50SW5kZXhPZmZzZXQgPSBvZmZzZXQgLyBpbmRleFR5cGVCeXRlczsK
KyAgICAgICAgCisgICAgICAgIGZvcihhdXRvICYgcmFuZ2UgOiByZXN0YXJ0SW5kaWNlcykKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYocmFuZ2UucmVzdGFydEJlZ2luID4gY3VycmVudEluZGV4
T2Zmc2V0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGludDY0X3QgbkluZGljZXNJ
blNsaWNlID0gKChpbnQ2NF90KXJhbmdlLnJlc3RhcnRCZWdpbiAtIGN1cnJlbnRJbmRleE9mZnNl
dCkgLSAoKGludDY0X3QpIHJhbmdlLnJlc3RhcnRCZWdpbiAtIGN1cnJlbnRJbmRleE9mZnNldCkg
JSBuSW5kaWNlc1BlclByaW1pdGl2ZTsKKyAgICAgICAgICAgICAgICBzaXplX3QgcmVzdGFydFNp
emUgPSAocmFuZ2UucmVzdGFydEVuZCAtIHJhbmdlLnJlc3RhcnRCZWdpbikgKyAxOworICAgICAg
ICAgICAgICAgIGlmKG5JbmRpY2VzSW5TbGljZSA+IG5JbmRpY2VzUGVyUHJpbWl0aXZlKQorICAg
ICAgICAgICAgICAgICAgICBkcmF3Q29tbWFuZHMucHVzaF9iYWNrKHsodWludDMyX3QpbkluZGlj
ZXNJblNsaWNlLCBjdXJyZW50SW5kZXhPZmZzZXQgKiBpbmRleFR5cGVCeXRlc30pOworICAgICAg
ICAgICAgICAgIC8vQWNjb3VudCBmb3IgZHJvcHBlZCBpbmRpY2VzIGR1ZSB0byBpbmNvbXBsZXRl
IHByaW1pdGl2ZXMuCisgICAgICAgICAgICAgICAgc2l6ZV90IGluZGljZXNVc2VkID0gKCAocmFu
Z2UucmVzdGFydEJlZ2luICsgcmVzdGFydFNpemUpIC0gY3VycmVudEluZGV4T2Zmc2V0KTsKKyAg
ICAgICAgICAgICAgICBpZihpbmRpY2VzTGVmdCA8PSBpbmRpY2VzVXNlZCkKKyAgICAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgICAgIGluZGljZXNMZWZ0ID0gMDsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgaW5kaWNlc0xlZnQgLT0gaW5kaWNlc1VzZWQ7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleE9mZnNldCA9IChzaXplX3QpKHJhbmdlLnJl
c3RhcnRCZWdpbiArIHJlc3RhcnRTaXplKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8v
SWYgdGhlIGluaXRpYWwgb2Zmc2V0IGludG8gdGhlIGluZGV4IGJ1ZmZlciBpcyB3aXRoaW4gYSBy
ZXN0YXJ0IHpvbmUsIG1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgcmVzdGFydCB6b25lLgorICAgICAg
ICAgICAgZWxzZSBpZihyYW5nZS5yZXN0YXJ0RW5kID49IGN1cnJlbnRJbmRleE9mZnNldCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzaXplX3QgcmVzdGFydFNpemUgPSAocmFuZ2Uu
cmVzdGFydEVuZCAtIGN1cnJlbnRJbmRleE9mZnNldCkgKyAxOworICAgICAgICAgICAgICAgIGlm
KGluZGljZXNMZWZ0IDw9IHJlc3RhcnRTaXplKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgaW5kaWNlc0xlZnQgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpbmRp
Y2VzTGVmdCAtPSByZXN0YXJ0U2l6ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgY3VycmVudEluZGV4T2Zmc2V0ID0gKHNpemVfdCkoY3VycmVudEluZGV4T2Zmc2V0ICsgcmVz
dGFydFNpemUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAg
ICAgaWYoaW5kaWNlc0xlZnQgPj0gbkluZGljZXNQZXJQcmltaXRpdmUpCisgICAgICAgICAgICBk
cmF3Q29tbWFuZHMucHVzaF9iYWNrKHtpbmRpY2VzTGVmdCwgY3VycmVudEluZGV4T2Zmc2V0ICog
aW5kZXhUeXBlQnl0ZXN9KTsKKyAgICAgICAgcmV0dXJuIGRyYXdDb21tYW5kczsKKyAgICB9Cisg
ICAgCit9CisKKwogYW5nbGU6OlJlc3VsdCBWZXJ0ZXhBcnJheU10bDo6Y29udmVydEluZGV4QnVm
ZmVyKGNvbnN0IGdsOjpDb250ZXh0ICpnbENvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OkRyYXdFbGVtZW50c1R5cGUgaW5kZXhUeXBl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsOjpQ
cmltaXRpdmVNb2RlIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtdGw6OkJ1ZmZlclJlZiAqaWR4QnVmZmVyT3V0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqaWR4QnVm
ZmVyT2Zmc2V0T3V0KQpAQCAtNzc5LDcgKzg2Nyw3IEBAIGFuZ2xlOjpSZXN1bHQgVmVydGV4QXJy
YXlNdGw6OmNvbnZlcnRJbmRleEJ1ZmZlcihjb25zdCBnbDo6Q29udGV4dCAqZ2xDb250ZXh0LAog
ICAgICAgICAvLyBXZSBzaG91bGRuJ3QgdXNlIEdQVSB0byBjb252ZXJ0IHdoZW4gd2UgYXJlIGlu
IGEgbWlkZGxlIG9mIGEgcmVuZGVyIHBhc3MuCiAgICAgICAgIEFOR0xFX1RSWShTdHJlYW1JbmRl
eERhdGEoY29udGV4dE10bCwgJmNvbnZlcnNpb24tPmRhdGEsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWR4QnVmZmVyLT5nZXRDbGllbnRTaGFkb3dDb3B5RGF0YShjb250ZXh0
TXRsKSArIG9mZnNldE1vZHVsbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bmRleFR5cGUsIGluZGV4Q291bnQsIG1vZGUsIGdsU3RhdGUuaXNQcmltaXRpdmVSZXN0YXJ0RW5h
YmxlZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4VHlwZSwgaW5k
ZXhDb3VudCwgZ2xTdGF0ZS5pc1ByaW1pdGl2ZVJlc3RhcnRFbmFibGVkKCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJmNvbnZlcnNpb24tPmNvbnZlcnRlZEJ1ZmZlciwgJmNv
bnZlcnNpb24tPmNvbnZlcnRlZE9mZnNldCkpOwogICAgIH0KICAgICBlbHNlCkBAIC03ODcsNyAr
ODc1LDcgQEAgYW5nbGU6OlJlc3VsdCBWZXJ0ZXhBcnJheU10bDo6Y29udmVydEluZGV4QnVmZmVy
KGNvbnN0IGdsOjpDb250ZXh0ICpnbENvbnRleHQsCiAgICAgICAgIEFOR0xFX1RSWShjb252ZXJ0
SW5kZXhCdWZmZXJHUFUoZ2xDb250ZXh0LCBpbmRleFR5cGUsIGlkeEJ1ZmZlciwgb2Zmc2V0TW9k
dWxvLCBpbmRleENvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnZlcnNpb24pKTsKICAgICB9Ci0KKyAgICAvL0NhbGN1bGF0ZSByYW5nZXMgZm9yIHByaW0g
cmVzdGFydCBzaW1wbGUgdHlwZXMuCiAgICAgKmlkeEJ1ZmZlck91dCAgICAgICA9IGNvbnZlcnNp
b24tPmNvbnZlcnRlZEJ1ZmZlcjsKICAgICAqaWR4QnVmZmVyT2Zmc2V0T3V0ID0gY29udmVyc2lv
bi0+Y29udmVydGVkT2Zmc2V0ICsgYWxpZ25lZE9mZnNldDsKIApAQCAtODI5LDcgKzkxNyw2IEBA
IGFuZ2xlOjpSZXN1bHQgVmVydGV4QXJyYXlNdGw6OmNvbnZlcnRJbmRleEJ1ZmZlckdQVShjb25z
dCBnbDo6Q29udGV4dCAqZ2xDb250ZXh0CiAKIGFuZ2xlOjpSZXN1bHQgVmVydGV4QXJyYXlNdGw6
OnN0cmVhbUluZGV4QnVmZmVyRnJvbUNsaWVudChjb25zdCBnbDo6Q29udGV4dCAqY29udGV4dCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnbDo6RHJhd0VsZW1lbnRzVHlwZSBpbmRleFR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2w6OlByaW1pdGl2ZU1vZGUgbW9k
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgaW5kZXhDb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpzb3VyY2VQb2ludGVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10
bDo6QnVmZmVyUmVmICppZHhCdWZmZXJPdXQsCkBAIC04MzksNyArOTI2LDcgQEAgYW5nbGU6OlJl
c3VsdCBWZXJ0ZXhBcnJheU10bDo6c3RyZWFtSW5kZXhCdWZmZXJGcm9tQ2xpZW50KGNvbnN0IGds
OjpDb250ZXh0ICpjb24KICAgICBDb250ZXh0TXRsICpjb250ZXh0TXRsID0gbXRsOjpHZXRJbXBs
KGNvbnRleHQpOwogCiAgICAgYXV0byBzcmNEYXRhID0gc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhf
dCAqPihzb3VyY2VQb2ludGVyKTsKLSAgICBBTkdMRV9UUlkoU3RyZWFtSW5kZXhEYXRhKGNvbnRl
eHRNdGwsICZtRHluYW1pY0luZGV4RGF0YSwgc3JjRGF0YSwgaW5kZXhUeXBlLCBpbmRleENvdW50
LCBtb2RlLAorICAgIEFOR0xFX1RSWShTdHJlYW1JbmRleERhdGEoY29udGV4dE10bCwgJm1EeW5h
bWljSW5kZXhEYXRhLCBzcmNEYXRhLCBpbmRleFR5cGUsIGluZGV4Q291bnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5nZXRTdGF0ZSgpLmlzUHJpbWl0aXZlUmVzdGFy
dEVuYWJsZWQoKSwgaWR4QnVmZmVyT3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWR4QnVmZmVyT2Zmc2V0T3V0KSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>