<?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>201383</bug_id>
          
          <creation_ts>2019-09-01 02:51:28 -0700</creation_ts>
          <short_desc>[WHLSL] Resources don&apos;t work when only a subset of a bind group is referenced by a shader</short_desc>
          <delta_ts>2019-09-01 22:23:57 -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>
          <dependson>201394</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <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>1567028</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-09-01 02:51:28 -0700</bug_when>
    <thetext>[WHLSL] Resources don&apos;t work when only a subset of a bind group is referenced by a shader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567030</commentid>
    <comment_count>1</comment_count>
      <attachid>377814</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-09-01 03:01:32 -0700</bug_when>
    <thetext>Created attachment 377814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567075</commentid>
    <comment_count>2</comment_count>
      <attachid>377814</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-01 16:08:44 -0700</bug_when>
    <thetext>Comment on attachment 377814
Patch

Clearing flags on attachment: 377814

Committed r249369: &lt;https://trac.webkit.org/changeset/249369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567076</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-01 16:08:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567077</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-01 16:09:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/54936286&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567078</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-01 16:09:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/54936287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567110</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-01 21:35:07 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 201394</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567119</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-09-01 22:23:57 -0700</bug_when>
    <thetext>Committed r249374: &lt;https://trac.webkit.org/changeset/249374&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377814</attachid>
            <date>2019-09-01 03:01:32 -0700</date>
            <delta_ts>2019-09-01 16:08:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201383-20190901190131.patch</filename>
            <type>text/plain</type>
            <size>28662</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAzYWZmMDEyMzVmNjAx
MTU4ZWY4MWM5MzU1ZDFhYTEwOTFhY2M5MS4uMDg0NWIwNWMzMmNiNTc0NDA0MjBkMmEzMGY5NDRh
ZWM3YjFjZDUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE5LTA5LTAxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dITFNMXSBS
ZXNvdXJjZXMgZG9uJ3Qgd29yayB3aGVuIG9ubHkgYSBzdWJzZXQgb2YgYSBiaW5kIGdyb3VwIGlz
IHJlZmVyZW5jZWQgYnkgYSBzaGFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMTM4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEJpbmQgZ3JvdXBzIGNvcnJlc3BvbmQgdG8gYXJndW1lbnQgYnVmZmVy
cyBpbiBNZXRhbC4gQm90aCB0aGUgTWV0YWwgQVBJIGFuZCBNZXRhbCBTaGFkaW5nIExhbmd1YWdl
CisgICAgICAgIGhhdmUgdG8gYWdyZWUgb24gdGhlIGxheW91dCBvZiBleGFjdGx5IHdoaWNoIHJl
c291cmNlcyBsaWUgYXQgd2hpY2ggYnl0ZSBvZmZzZXRzIHdpdGhpbiBhbiBhcmd1bWVudAorICAg
ICAgICBidWZmZXIuCisKKyAgICAgICAgQmVmb3JlIHRoaXMgcGF0Y2gsIHdlIG9ubHkgZW1pdHRl
ZCBjb2RlIGZvciB0aGUgaXRlbXMgaW4gdGhlIGFyZ3VtZW50IGJ1ZmZlciB0aGF0IHdlcmUgYWN0
dWFsbHkKKyAgICAgICAgcmVmZXJlbmNlZCBieSB0aGUgc2hhZGVyIHNvdXJjZSBjb2RlLiBIb3dl
dmVyLCBiZWNhdXNlIHRoZXNlIGl0ZW1zIGFyZSBoZWxkIGluc2lkZSBhIHN0cnVjdCwgaWYKKyAg
ICAgICAgd2Ugb21pdCBvbmUgaXRlbSBmcm9tIHRoZSBtaWRkbGUgb2YgdGhlIHN0cnVjdCwgdGhl
IGJ5dGUgb2ZmZXRzIG9mIGFsbCB0aGUgc3VjY2Vzc2l2ZSBpdGVtcyB3b3VsZAorICAgICAgICBi
ZSB3cm9uZy4gVGhpcyBtZWFucyB0aGF0IHRoZSBNZXRhbCBBUEkgYW5kIHRoZSBzaGFkZXIgd291
bGQgZGlzYWdyZWUgYWJvdXQgaG93IHRvIGFjY2VzcyB0aGVzZQorICAgICAgICByZXNvdXJjZXMs
IG1ha2luZyB0aGUgcmVzb3VyY2VzIGluYWNjZXNzaWJsZSAoYW5kIGNhdXNpbmcgc2VjdXJpdHkg
cHJvYmxlbXMpLgorCisgICAgICAgIFRlc3RzOiB3ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3Jv
dXAtMi5odG1sCisgICAgICAgICAgICAgICB3ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAt
My5odG1sCisgICAgICAgICAgICAgICB3ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAuaHRt
bAorCisgICAgICAgICogTW9kdWxlcy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xFbnRyeVBvaW50
U2NhZmZvbGRpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFsOjpFbnRyeVBv
aW50U2NhZmZvbGRpbmc6OmVtaXRSZXNvdXJjZUhlbHBlclR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6OldITFNMOjpNZXRhbDo6VmVydGV4RW50cnlQb2ludFNjYWZmb2xkaW5nOjplbWl0SGVscGVy
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6V0hMU0w6Ok1ldGFsOjpGcmFnbWVudEVudHJ5UG9p
bnRTY2FmZm9sZGluZzo6ZW1pdEhlbHBlclR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OldITFNM
OjpNZXRhbDo6Q29tcHV0ZUVudHJ5UG9pbnRTY2FmZm9sZGluZzo6ZW1pdEhlbHBlclR5cGVzKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9XSExTTEVudHJ5UG9pbnRTY2Fm
Zm9sZGluZy5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZ3B1L1dITFNML1dITFNMU2VtYW50aWNN
YXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldITFNMOjptYXRjaFJlc291cmNlcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpXSExTTDo6bWF0Y2hWZXJ0ZXhBdHRyaWJ1dGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OldITFNMOjptYXRjaENvbG9yQXR0YWNobWVudHMpOgorCiAyMDE5LTA4LTI3ICBK
b2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPiAgYW5kICBGdWppaSBIaXJvbm9yaSAg
PEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIE1ha2UgRnJhbWVMb2FkZXI6Om9w
ZW4oKSBzZXQgb3V0Z29pbmcgcmVmZXJyZXIgcHJvcGVybHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMRW50cnlQb2ludFNjYWZmb2xk
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNM
RW50cnlQb2ludFNjYWZmb2xkaW5nLmNwcAppbmRleCA3ZTc1OTM3ODNmMmM4M2UzM2YxMzU2OWJh
YTc3MTRiZjQ2OWEyYTJjLi4zMjg4NjE4NzNlMzRhNzcxMjVmOGIyZWZlYjY5ODA1OWFkNmZiNmFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9X
SExTTEVudHJ5UG9pbnRTY2FmZm9sZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJncHUvV0hMU0wvTWV0YWwvV0hMU0xFbnRyeVBvaW50U2NhZmZvbGRpbmcuY3BwCkBAIC0x
MzksNyArMTM5LDcgQEAgRW50cnlQb2ludFNjYWZmb2xkaW5nOjpFbnRyeVBvaW50U2NhZmZvbGRp
bmcoQVNUOjpGdW5jdGlvbkRlZmluaXRpb24mIGZ1bmN0aW9uRGUKICAgICAgICAgbV9wYXJhbWV0
ZXJWYXJpYWJsZXMudW5jaGVja2VkQXBwZW5kKG1fZ2VuZXJhdGVOZXh0VmFyaWFibGVOYW1lKCkp
OwogfQogCi12b2lkIEVudHJ5UG9pbnRTY2FmZm9sZGluZzo6ZW1pdFJlc291cmNlSGVscGVyVHlw
ZXMoU3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRlciwgSW5kZW50YXRpb248ND4gaW5kZW50KQor
dm9pZCBFbnRyeVBvaW50U2NhZmZvbGRpbmc6OmVtaXRSZXNvdXJjZUhlbHBlclR5cGVzKFN0cmlu
Z0J1aWxkZXImIHN0cmluZ0J1aWxkZXIsIEluZGVudGF0aW9uPDQ+IGluZGVudCwgU2hhZGVyU3Rh
Z2Ugc2hhZGVyU3RhZ2UpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheW91dC5z
aXplKCk7ICsraSkgewogICAgICAgICBzdHJpbmdCdWlsZGVyLmFwcGVuZChpbmRlbnQsICJzdHJ1
Y3QgIiwgbV9uYW1lZEJpbmRHcm91cHNbaV0uc3RydWN0TmFtZSwgIiB7XG4iKTsKQEAgLTE0Nywy
NSArMTQ3LDQzIEBAIHZvaWQgRW50cnlQb2ludFNjYWZmb2xkaW5nOjplbWl0UmVzb3VyY2VIZWxw
ZXJUeXBlcyhTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyCiAgICAgICAgICAgICBJbmRlbnRh
dGlvblNjb3BlIHNjb3BlKGluZGVudCk7CiAgICAgICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPHVu
c2lnbmVkLCBTdHJpbmc+PiBzdHJ1Y3RJdGVtczsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGog
PSAwOyBqIDwgbV9sYXlvdXRbaV0uYmluZGluZ3Muc2l6ZSgpOyArK2opIHsKLSAgICAgICAgICAg
ICAgICBhdXRvIGl0ZXJhdG9yID0gbV9yZXNvdXJjZU1hcC5maW5kKCZtX2xheW91dFtpXS5iaW5k
aW5nc1tqXSk7Ci0gICAgICAgICAgICAgICAgaWYgKGl0ZXJhdG9yID09IG1fcmVzb3VyY2VNYXAu
ZW5kKCkpCisgICAgICAgICAgICAgICAgYXV0byYgYmluZGluZyA9IG1fbGF5b3V0W2ldLmJpbmRp
bmdzW2pdOworICAgICAgICAgICAgICAgIGlmICghYmluZGluZy52aXNpYmlsaXR5LmNvbnRhaW5z
KHNoYWRlclN0YWdlKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICAgICAgYXV0byYgdHlwZSA9IG1fZW50cnlQb2ludEl0ZW1zLmlucHV0c1tpdGVyYXRvci0+dmFs
dWVdLnVubmFtZWRUeXBlLT51bmlmeU5vZGUoKTsKLSAgICAgICAgICAgICAgICBpZiAoaXM8QVNU
OjpVbm5hbWVkVHlwZT4odHlwZSkgJiYgaXM8QVNUOjpSZWZlcmVuY2VUeXBlPihkb3duY2FzdDxB
U1Q6OlVubmFtZWRUeXBlPih0eXBlKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byYgcmVm
ZXJlbmNlVHlwZSA9IGRvd25jYXN0PEFTVDo6UmVmZXJlbmNlVHlwZT4oZG93bmNhc3Q8QVNUOjpV
bm5hbWVkVHlwZT4odHlwZSkpOwotICAgICAgICAgICAgICAgICAgICBhdXRvIG1hbmdsZWRUeXBl
TmFtZSA9IG1fdHlwZU5hbWVyLm1hbmdsZWROYW1lRm9yVHlwZShyZWZlcmVuY2VUeXBlLmVsZW1l
bnRUeXBlKCkpOwotICAgICAgICAgICAgICAgICAgICBhdXRvIGFkZHJlc3NTcGFjZSA9IHRvU3Ry
aW5nKHJlZmVyZW5jZVR5cGUuYWRkcmVzc1NwYWNlKCkpOwotICAgICAgICAgICAgICAgICAgICBh
dXRvIGVsZW1lbnROYW1lID0gbV9uYW1lZEJpbmRHcm91cHNbaV0ubmFtZWRCaW5kaW5nc1tqXS5l
bGVtZW50TmFtZTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBpbmRleCA9IG1fbmFtZWRCaW5k
R3JvdXBzW2ldLm5hbWVkQmluZGluZ3Nbal0uaW5kZXg7Ci0gICAgICAgICAgICAgICAgICAgIHN0
cnVjdEl0ZW1zLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihpbmRleCwgbWFrZVN0cmluZyhhZGRyZXNz
U3BhY2UsICIgIiwgbWFuZ2xlZFR5cGVOYW1lLCAiKiAiLCBlbGVtZW50TmFtZSwgIiBbW2lkKCIs
IGluZGV4LCAiKV1dOyIpKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIGxlbmd0aElu
Zm9ybWF0aW9uID0gbV9uYW1lZEJpbmRHcm91cHNbaV0ubmFtZWRCaW5kaW5nc1tqXS5sZW5ndGhJ
bmZvcm1hdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdEl0ZW1zLmFwcGVuZChz
dGQ6Om1ha2VfcGFpcihsZW5ndGhJbmZvcm1hdGlvbi0+aW5kZXgsIG1ha2VTdHJpbmcoInVpbnQy
ICIsIGxlbmd0aEluZm9ybWF0aW9uLT5lbGVtZW50TmFtZSwgIiBbW2lkKCIsIGxlbmd0aEluZm9y
bWF0aW9uLT5pbmRleCwgIildXTsiKSkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXM8
QVNUOjpOYW1lZFR5cGU+KHR5cGUpICYmIGlzPEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uPihk
b3duY2FzdDxBU1Q6Ok5hbWVkVHlwZT4odHlwZSkpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1
dG8mIG5hbWVkVHlwZSA9IGRvd25jYXN0PEFTVDo6TmF0aXZlVHlwZURlY2xhcmF0aW9uPihkb3du
Y2FzdDxBU1Q6Ok5hbWVkVHlwZT4odHlwZSkpOwotICAgICAgICAgICAgICAgICAgICBhdXRvIG1h
bmdsZWRUeXBlTmFtZSA9IG1fdHlwZU5hbWVyLm1hbmdsZWROYW1lRm9yVHlwZShuYW1lZFR5cGUp
OwotICAgICAgICAgICAgICAgICAgICBhdXRvIGVsZW1lbnROYW1lID0gbV9uYW1lZEJpbmRHcm91
cHNbaV0ubmFtZWRCaW5kaW5nc1tqXS5lbGVtZW50TmFtZTsKLSAgICAgICAgICAgICAgICAgICAg
YXV0byBpbmRleCA9IG1fbmFtZWRCaW5kR3JvdXBzW2ldLm5hbWVkQmluZGluZ3Nbal0uaW5kZXg7
Ci0gICAgICAgICAgICAgICAgICAgIHN0cnVjdEl0ZW1zLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihp
bmRleCwgbWFrZVN0cmluZyhtYW5nbGVkVHlwZU5hbWUsICcgJywgZWxlbWVudE5hbWUsICIgW1tp
ZCgiLCBpbmRleCwgIildXTsiKSkpOworCisgICAgICAgICAgICAgICAgYXV0byBlbGVtZW50TmFt
ZSA9IG1fbmFtZWRCaW5kR3JvdXBzW2ldLm5hbWVkQmluZGluZ3Nbal0uZWxlbWVudE5hbWU7Cisg
ICAgICAgICAgICAgICAgYXV0byBpbmRleCA9IG1fbmFtZWRCaW5kR3JvdXBzW2ldLm5hbWVkQmlu
ZGluZ3Nbal0uaW5kZXg7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gbGVuZ3RoSW5mb3JtYXRp
b24gPSBtX25hbWVkQmluZEdyb3Vwc1tpXS5uYW1lZEJpbmRpbmdzW2pdLmxlbmd0aEluZm9ybWF0
aW9uKQorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3RJdGVtcy5hcHBlbmQoc3RkOjptYWtlX3Bh
aXIobGVuZ3RoSW5mb3JtYXRpb24tPmluZGV4LCBtYWtlU3RyaW5nKCJ1aW50MiAiLCBsZW5ndGhJ
bmZvcm1hdGlvbi0+ZWxlbWVudE5hbWUsICIgW1tpZCgiLCBsZW5ndGhJbmZvcm1hdGlvbi0+aW5k
ZXgsICIpXV07IikpKTsKKworICAgICAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Jlc291
cmNlTWFwLmZpbmQoJm1fbGF5b3V0W2ldLmJpbmRpbmdzW2pdKTsKKyAgICAgICAgICAgICAgICBp
ZiAoaXRlcmF0b3IgIT0gbV9yZXNvdXJjZU1hcC5lbmQoKSkgeworICAgICAgICAgICAgICAgICAg
ICBhdXRvJiB0eXBlID0gbV9lbnRyeVBvaW50SXRlbXMuaW5wdXRzW2l0ZXJhdG9yLT52YWx1ZV0u
dW5uYW1lZFR5cGUtPnVuaWZ5Tm9kZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoaXM8QVNU
OjpVbm5hbWVkVHlwZT4odHlwZSkgJiYgaXM8QVNUOjpSZWZlcmVuY2VUeXBlPihkb3duY2FzdDxB
U1Q6OlVubmFtZWRUeXBlPih0eXBlKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8m
IHJlZmVyZW5jZVR5cGUgPSBkb3duY2FzdDxBU1Q6OlJlZmVyZW5jZVR5cGU+KGRvd25jYXN0PEFT
VDo6VW5uYW1lZFR5cGU+KHR5cGUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWFu
Z2xlZFR5cGVOYW1lID0gbV90eXBlTmFtZXIubWFuZ2xlZE5hbWVGb3JUeXBlKHJlZmVyZW5jZVR5
cGUuZWxlbWVudFR5cGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIGFkZHJlc3NT
cGFjZSA9IHRvU3RyaW5nKHJlZmVyZW5jZVR5cGUuYWRkcmVzc1NwYWNlKCkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgc3RydWN0SXRlbXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGluZGV4LCBt
YWtlU3RyaW5nKGFkZHJlc3NTcGFjZSwgIiAiLCBtYW5nbGVkVHlwZU5hbWUsICIqICIsIGVsZW1l
bnROYW1lLCAiIFtbaWQoIiwgaW5kZXgsICIpXV07IikpKTsKKyAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIGlmIChpczxBU1Q6Ok5hbWVkVHlwZT4odHlwZSkgJiYgaXM8QVNUOjpOYXRpdmVUeXBl
RGVjbGFyYXRpb24+KGRvd25jYXN0PEFTVDo6TmFtZWRUeXBlPih0eXBlKSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8mIG5hbWVkVHlwZSA9IGRvd25jYXN0PEFTVDo6TmF0aXZlVHlw
ZURlY2xhcmF0aW9uPihkb3duY2FzdDxBU1Q6Ok5hbWVkVHlwZT4odHlwZSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYXV0byBtYW5nbGVkVHlwZU5hbWUgPSBtX3R5cGVOYW1lci5tYW5nbGVk
TmFtZUZvclR5cGUobmFtZWRUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdEl0
ZW1zLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihpbmRleCwgbWFrZVN0cmluZyhtYW5nbGVkVHlwZU5h
bWUsICcgJywgZWxlbWVudE5hbWUsICIgW1tpZCgiLCBpbmRleCwgIildXTsiKSkpOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgLy8gVGhlIGJpbmRpbmcgZG9lc24ndCBhcHBlYXIgaW4gdGhlIHNoYWRlciBzb3VyY2Uu
CisgICAgICAgICAgICAgICAgICAgIC8vIEhvd2V2ZXIsIHdlIG11c3Qgc3RpbGwgZW1pdCBhIHBs
YWNlaG9sZGVyLCBzbyBzdWNjZXNzaXZlIGl0ZW1zIGluIHRoZSBhcmd1bWVudCBidWZmZXIgc3Ry
dWN0IGhhdmUgdGhlIGNvcnJlY3Qgb2Zmc2V0LgorICAgICAgICAgICAgICAgICAgICAvLyBCZWNh
dXNlIHRoZSBiaW5kaW5nIGRvZXNuJ3QgYXBwZWFyIGluIHRoZSBzaGFkZXIgc291cmNlLCB3ZSBk
b24ndCBrbm93IHdoaWNoIGV4YWN0IHR5cGUgdGhlIGJpbmQgcG9pbnQgc2hvdWxkIGhhdmUuCisg
ICAgICAgICAgICAgICAgICAgIC8vIFRoZXJlZm9yZSwgd2UgbXVzdCBzeW50aGVzaXplIGEgdHlw
ZSBvdXQgb2YgdGhpbiBhaXIuCisgICAgICAgICAgICAgICAgICAgIFdURjo6dmlzaXQoV1RGOjpt
YWtlVmlzaXRvcihbJl0oVW5pZm9ybUJ1ZmZlckJpbmRpbmcpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdEl0ZW1zLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihpbmRleCwgbWFrZVN0cmlu
ZygiY29uc3RhbnQgdm9pZCogIiwgZWxlbWVudE5hbWUsICIgW1tpZCgiLCBpbmRleCwgIildXTsi
KSkpOworICAgICAgICAgICAgICAgICAgICB9LCBbJl0oU2FtcGxlckJpbmRpbmcpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdEl0ZW1zLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihpbmRl
eCwgbWFrZVN0cmluZygic2FtcGxlciAiLCBlbGVtZW50TmFtZSwgIiBbW2lkKCIsIGluZGV4LCAi
KV1dOyIpKSk7CisgICAgICAgICAgICAgICAgICAgIH0sIFsmXShUZXh0dXJlQmluZGluZykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDEzODQgV2UgZG9uJ3Qga25vdyB3aGljaCB0ZXh0dXJlIHR5cGUg
dGhlIGJpbmRpbmcgcmVwcmVzZW50cy4gVGhpcyBpcyBubyBnb29kIHZlcnkgYmFkLgorICAgICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0SXRlbXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGluZGV4
LCBtYWtlU3RyaW5nKCJ0ZXh0dXJlMmQ8ZmxvYXQ0PiAiLCBlbGVtZW50TmFtZSwgIiBbW2lkKCIs
IGluZGV4LCAiKV1dOyIpKSk7CisgICAgICAgICAgICAgICAgICAgIH0sIFsmXShTdG9yYWdlQnVm
ZmVyQmluZGluZykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0SXRlbXMuYXBwZW5k
KHN0ZDo6bWFrZV9wYWlyKGluZGV4LCBtYWtlU3RyaW5nKCJkZXZpY2Ugdm9pZCogIiwgZWxlbWVu
dE5hbWUsICIgW1tpZCgiLCBpbmRleCwgIildXTsiKSkpOworICAgICAgICAgICAgICAgICAgICB9
KSwgYmluZGluZy5iaW5kaW5nKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBzdGQ6OnNvcnQoc3RydWN0SXRlbXMuYmVnaW4oKSwgc3RydWN0SXRlbXMuZW5k
KCksIFtdKGNvbnN0IHN0ZDo6cGFpcjx1bnNpZ25lZCwgU3RyaW5nPiYgbGVmdCwgY29uc3Qgc3Rk
OjpwYWlyPHVuc2lnbmVkLCBTdHJpbmc+JiByaWdodCkgewpAQCAtNDI1LDcgKzQ0Myw3IEBAIHZv
aWQgVmVydGV4RW50cnlQb2ludFNjYWZmb2xkaW5nOjplbWl0SGVscGVyVHlwZXMoU3RyaW5nQnVp
bGRlciYgc3RyaW5nQnVpbGRlciwKICAgICB9CiAgICAgc3RyaW5nQnVpbGRlci5hcHBlbmQoaW5k
ZW50LCAifTtcblxuIik7CiAgICAgCi0gICAgZW1pdFJlc291cmNlSGVscGVyVHlwZXMoc3RyaW5n
QnVpbGRlciwgaW5kZW50KTsKKyAgICBlbWl0UmVzb3VyY2VIZWxwZXJUeXBlcyhzdHJpbmdCdWls
ZGVyLCBpbmRlbnQsIFNoYWRlclN0YWdlOjpWZXJ0ZXgpOwogfQogCiB2b2lkIFZlcnRleEVudHJ5
UG9pbnRTY2FmZm9sZGluZzo6ZW1pdFNpZ25hdHVyZShTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWls
ZGVyLCBNYW5nbGVkRnVuY3Rpb25OYW1lIGZ1bmN0aW9uTmFtZSwgSW5kZW50YXRpb248ND4gaW5k
ZW50KQpAQCAtNTMwLDcgKzU0OCw3IEBAIHZvaWQgRnJhZ21lbnRFbnRyeVBvaW50U2NhZmZvbGRp
bmc6OmVtaXRIZWxwZXJUeXBlcyhTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyCiAgICAgfQog
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGluZGVudCwgIn07XG5cbiIpOwogCi0gICAgZW1pdFJl
c291cmNlSGVscGVyVHlwZXMoc3RyaW5nQnVpbGRlciwgaW5kZW50KTsKKyAgICBlbWl0UmVzb3Vy
Y2VIZWxwZXJUeXBlcyhzdHJpbmdCdWlsZGVyLCBpbmRlbnQsIFNoYWRlclN0YWdlOjpGcmFnbWVu
dCk7CiB9CiAKIHZvaWQgRnJhZ21lbnRFbnRyeVBvaW50U2NhZmZvbGRpbmc6OmVtaXRTaWduYXR1
cmUoU3RyaW5nQnVpbGRlciYgc3RyaW5nQnVpbGRlciwgTWFuZ2xlZEZ1bmN0aW9uTmFtZSBmdW5j
dGlvbk5hbWUsIEluZGVudGF0aW9uPDQ+IGluZGVudCkKQEAgLTU4MCw3ICs1OTgsNyBAQCBDb21w
dXRlRW50cnlQb2ludFNjYWZmb2xkaW5nOjpDb21wdXRlRW50cnlQb2ludFNjYWZmb2xkaW5nKEFT
VDo6RnVuY3Rpb25EZWZpbml0aQogCiB2b2lkIENvbXB1dGVFbnRyeVBvaW50U2NhZmZvbGRpbmc6
OmVtaXRIZWxwZXJUeXBlcyhTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyLCBJbmRlbnRhdGlv
bjw0PiBpbmRlbnQpCiB7Ci0gICAgZW1pdFJlc291cmNlSGVscGVyVHlwZXMoc3RyaW5nQnVpbGRl
ciwgaW5kZW50KTsKKyAgICBlbWl0UmVzb3VyY2VIZWxwZXJUeXBlcyhzdHJpbmdCdWlsZGVyLCBp
bmRlbnQsIFNoYWRlclN0YWdlOjpDb21wdXRlKTsKIH0KIAogdm9pZCBDb21wdXRlRW50cnlQb2lu
dFNjYWZmb2xkaW5nOjplbWl0U2lnbmF0dXJlKFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIs
IE1hbmdsZWRGdW5jdGlvbk5hbWUgZnVuY3Rpb25OYW1lLCBJbmRlbnRhdGlvbjw0PiBpbmRlbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9NZXRhbC9X
SExTTEVudHJ5UG9pbnRTY2FmZm9sZGluZy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJn
cHUvV0hMU0wvTWV0YWwvV0hMU0xFbnRyeVBvaW50U2NhZmZvbGRpbmcuaAppbmRleCA0OGE4YzVi
M2VkYjZhYWIyZDEzMGQzNjg3NTU5ZTY0ZWU4NGNlYmQxLi5lNWI0YzZkZmY0MDFhMTBjOTE4ZjVm
Nzk5MjJhMjhhMWQyMmFkZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmdwdS9XSExTTC9NZXRhbC9XSExTTEVudHJ5UG9pbnRTY2FmZm9sZGluZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1L1dITFNML01ldGFsL1dITFNMRW50cnlQb2ludFNjYWZm
b2xkaW5nLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIEVudHJ5
UG9pbnRTY2FmZm9sZGluZyhBU1Q6OkZ1bmN0aW9uRGVmaW5pdGlvbiYsIEludHJpbnNpY3MmLCBU
eXBlTmFtZXImLCBFbnRyeVBvaW50SXRlbXMmLCBIYXNoTWFwPEJpbmRpbmcqLCBzaXplX3Q+JiBy
ZXNvdXJjZU1hcCwgTGF5b3V0Jiwgc3RkOjpmdW5jdGlvbjxNYW5nbGVkVmFyaWFibGVOYW1lKCk+
JiYgZ2VuZXJhdGVOZXh0VmFyaWFibGVOYW1lKTsKIAotICAgIHZvaWQgZW1pdFJlc291cmNlSGVs
cGVyVHlwZXMoU3RyaW5nQnVpbGRlciYsIEluZGVudGF0aW9uPDQ+KTsKKyAgICB2b2lkIGVtaXRS
ZXNvdXJjZUhlbHBlclR5cGVzKFN0cmluZ0J1aWxkZXImLCBJbmRlbnRhdGlvbjw0PiwgU2hhZGVy
U3RhZ2UpOwogCiAgICAgZW51bSBjbGFzcyBJbmNsdWRlUHJlY2VkaW5nQ29tbWEgewogICAgICAg
ICBZZXMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9XSExTTC9X
SExTTFNlbWFudGljTWF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmdwdS9X
SExTTC9XSExTTFNlbWFudGljTWF0Y2hlci5jcHAKaW5kZXggMmNjN2Q3ZGJiNTQzNTlhMTg0ZWU3
ZjliNTE5NGRiN2FjZDlhZjAyOS4uNTQyZmE3ODViMjgwOGRlYWVkMDVlMTY1ZmE1NDA4OWM4ZTRm
OGMzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJncHUvV0hMU0wvV0hM
U0xTZW1hbnRpY01hdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZ3B1
L1dITFNML1dITFNMU2VtYW50aWNNYXRjaGVyLmNwcApAQCAtNjEsOSArNjEsNyBAQCBzdGF0aWMg
Ym9vbCBtYXRjaE1vZGUoQmluZGluZzo6QmluZGluZ0RldGFpbHMgYmluZGluZ1R5cGUsIEFTVDo6
UmVzb3VyY2VTZW1hbnRpYwogc3RhdGljIE9wdGlvbmFsPEhhc2hNYXA8QmluZGluZyosIHNpemVf
dD4+IG1hdGNoUmVzb3VyY2VzKFZlY3RvcjxFbnRyeVBvaW50SXRlbT4mIGVudHJ5UG9pbnRJdGVt
cywgTGF5b3V0JiBsYXlvdXQsIFNoYWRlclN0YWdlIHNoYWRlclN0YWdlKQogewogICAgIEhhc2hN
YXA8QmluZGluZyosIHNpemVfdD4gcmVzdWx0OwotICAgIEhhc2hTZXQ8c2l6ZV90PiBpdGVtSW5k
aWNlczsKLSAgICBpZiAoZW50cnlQb2ludEl0ZW1zLnNpemUoKSA9PSBzdGQ6Om51bWVyaWNfbGlt
aXRzPHNpemVfdD46Om1heCgpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OyAvLyBXb3Jr
IGFyb3VuZCB0aGUgZmFjdCB0aGF0IEhhc2hTZXQncyBrZXlzIGFyZSByZXN0cmljdGVkLgorICAg
IEhhc2hTZXQ8c2l6ZV90LCBEZWZhdWx0SGFzaDxzaXplX3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVk
V2l0aFplcm9LZXlIYXNoVHJhaXRzPHNpemVfdD4+IGl0ZW1JbmRpY2VzOwogICAgIGZvciAoYXV0
byYgYmluZEdyb3VwIDogbGF5b3V0KSB7CiAgICAgICAgIGF1dG8gc3BhY2UgPSBiaW5kR3JvdXAu
bmFtZTsKICAgICAgICAgZm9yIChhdXRvJiBiaW5kaW5nIDogYmluZEdyb3VwLmJpbmRpbmdzKSB7
CkBAIC04Miw3ICs4MCw3IEBAIHN0YXRpYyBPcHRpb25hbDxIYXNoTWFwPEJpbmRpbmcqLCBzaXpl
X3Q+PiBtYXRjaFJlc291cmNlcyhWZWN0b3I8RW50cnlQb2ludEl0ZW0+CiAgICAgICAgICAgICAg
ICAgaWYgKHNwYWNlICE9IHJlc291cmNlU2VtYW50aWMuc3BhY2UoKSkKICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCgmYmluZGluZywgaSk7
Ci0gICAgICAgICAgICAgICAgaXRlbUluZGljZXMuYWRkKGkgKyAxKTsgLy8gV29yayBhcm91bmQg
dGhlIGZhY3QgdGhhdCBIYXNoU2V0J3Mga2V5cyBhcmUgcmVzdHJpY3RlZC4KKyAgICAgICAgICAg
ICAgICBpdGVtSW5kaWNlcy5hZGQoaSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CkBAIC05Miw3ICs5MCw3IEBAIHN0YXRpYyBPcHRpb25hbDxIYXNoTWFwPEJpbmRpbmcqLCBzaXpl
X3Q+PiBtYXRjaFJlc291cmNlcyhWZWN0b3I8RW50cnlQb2ludEl0ZW0+CiAgICAgICAgIGF1dG8m
IHNlbWFudGljID0gKml0ZW0uc2VtYW50aWM7CiAgICAgICAgIGlmICghV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTxBU1Q6OlJlc291cmNlU2VtYW50aWM+KHNlbWFudGljKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBpZiAoIWl0ZW1JbmRpY2VzLmNvbnRhaW5zKGkgKyAxKSkKKyAgICAg
ICAgaWYgKCFpdGVtSW5kaWNlcy5jb250YWlucyhpKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0xNDIsOSArMTQwLDcgQEAgc3RhdGljIGJvb2wgaXNBY2Nl
cHRhYmxlRm9ybWF0KFZlcnRleEZvcm1hdCB2ZXJ0ZXhGb3JtYXQsIEFTVDo6VW5uYW1lZFR5cGUm
IHVubmEKIHN0YXRpYyBPcHRpb25hbDxIYXNoTWFwPFZlcnRleEF0dHJpYnV0ZSosIHNpemVfdD4+
IG1hdGNoVmVydGV4QXR0cmlidXRlcyhWZWN0b3I8RW50cnlQb2ludEl0ZW0+JiB2ZXJ0ZXhJbnB1
dHMsIFZlcnRleEF0dHJpYnV0ZXMmIHZlcnRleEF0dHJpYnV0ZXMsIEludHJpbnNpY3MmIGludHJp
bnNpY3MpCiB7CiAgICAgSGFzaE1hcDxWZXJ0ZXhBdHRyaWJ1dGUqLCBzaXplX3Q+IHJlc3VsdDsK
LSAgICBIYXNoU2V0PHNpemVfdD4gaXRlbUluZGljZXM7Ci0gICAgaWYgKHZlcnRleElucHV0cy5z
aXplKCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKSkKLSAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsgLy8gV29yayBhcm91bmQgdGhlIGZhY3QgdGhhdCBIYXNoU2V0J3Mg
a2V5cyBhcmUgcmVzdHJpY3RlZC4KKyAgICBIYXNoU2V0PHNpemVfdCwgRGVmYXVsdEhhc2g8c2l6
ZV90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czxzaXplX3Q+PiBp
dGVtSW5kaWNlczsKICAgICBmb3IgKGF1dG8mIHZlcnRleEF0dHJpYnV0ZSA6IHZlcnRleEF0dHJp
YnV0ZXMpIHsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2ZXJ0ZXhJbnB1dHMuc2l6
ZSgpOyArK2kpIHsKICAgICAgICAgICAgIGF1dG8mIGl0ZW0gPSB2ZXJ0ZXhJbnB1dHNbaV07CkBA
IC0xNTcsNyArMTUzLDcgQEAgc3RhdGljIE9wdGlvbmFsPEhhc2hNYXA8VmVydGV4QXR0cmlidXRl
Kiwgc2l6ZV90Pj4gbWF0Y2hWZXJ0ZXhBdHRyaWJ1dGVzKFZlY3RvcjwKICAgICAgICAgICAgIGlm
ICghaXNBY2NlcHRhYmxlRm9ybWF0KHZlcnRleEF0dHJpYnV0ZS52ZXJ0ZXhGb3JtYXQsICppdGVt
LnVubmFtZWRUeXBlLCBpbnRyaW5zaWNzKSkKICAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogICAgICAgICAgICAgcmVzdWx0LmFkZCgmdmVydGV4QXR0cmlidXRlLCBpKTsKLSAg
ICAgICAgICAgIGl0ZW1JbmRpY2VzLmFkZChpICsgMSk7IC8vIFdvcmsgYXJvdW5kIHRoZSBmYWN0
IHRoYXQgSGFzaFNldCdzIGtleXMgYXJlIHJlc3RyaWN0ZWQuCisgICAgICAgICAgICBpdGVtSW5k
aWNlcy5hZGQoaSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE2Niw3ICsxNjIsNyBAQCBzdGF0
aWMgT3B0aW9uYWw8SGFzaE1hcDxWZXJ0ZXhBdHRyaWJ1dGUqLCBzaXplX3Q+PiBtYXRjaFZlcnRl
eEF0dHJpYnV0ZXMoVmVjdG9yPAogICAgICAgICBhdXRvJiBzZW1hbnRpYyA9ICppdGVtLnNlbWFu
dGljOwogICAgICAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8QVNUOjpTdGFnZUluT3V0
U2VtYW50aWM+KHNlbWFudGljKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAo
IWl0ZW1JbmRpY2VzLmNvbnRhaW5zKGkgKyAxKSkKKyAgICAgICAgaWYgKCFpdGVtSW5kaWNlcy5j
b250YWlucyhpKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogCkBA
IC0yMzAsOSArMjI2LDcgQEAgc3RhdGljIGJvb2wgaXNBY2NlcHRhYmxlRm9ybWF0KFRleHR1cmVG
b3JtYXQgdGV4dHVyZUZvcm1hdCwgQVNUOjpVbm5hbWVkVHlwZSYgdW4KIHN0YXRpYyBPcHRpb25h
bDxIYXNoTWFwPEF0dGFjaG1lbnREZXNjcmlwdG9yKiwgc2l6ZV90Pj4gbWF0Y2hDb2xvckF0dGFj
aG1lbnRzKFZlY3RvcjxFbnRyeVBvaW50SXRlbT4mIGZyYWdtZW50T3V0cHV0cywgVmVjdG9yPEF0
dGFjaG1lbnREZXNjcmlwdG9yPiYgYXR0YWNobWVudERlc2NyaXB0b3JzLCBJbnRyaW5zaWNzJiBp
bnRyaW5zaWNzKQogewogICAgIEhhc2hNYXA8QXR0YWNobWVudERlc2NyaXB0b3IqLCBzaXplX3Q+
IHJlc3VsdDsKLSAgICBIYXNoU2V0PHNpemVfdD4gaXRlbUluZGljZXM7Ci0gICAgaWYgKGF0dGFj
aG1lbnREZXNjcmlwdG9ycy5zaXplKCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt
YXgoKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgLy8gV29yayBhcm91bmQgdGhlIGZh
Y3QgdGhhdCBIYXNoU2V0J3Mga2V5cyBhcmUgcmVzdHJpY3RlZC4KKyAgICBIYXNoU2V0PHNpemVf
dCwgRGVmYXVsdEhhc2g8c2l6ZV90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFz
aFRyYWl0czxzaXplX3Q+PiBpdGVtSW5kaWNlczsKICAgICBmb3IgKGF1dG8mIGF0dGFjaG1lbnRE
ZXNjcmlwdG9yIDogYXR0YWNobWVudERlc2NyaXB0b3JzKSB7CiAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgZnJhZ21lbnRPdXRwdXRzLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBh
dXRvJiBpdGVtID0gZnJhZ21lbnRPdXRwdXRzW2ldOwpAQCAtMjQ1LDcgKzIzOSw3IEBAIHN0YXRp
YyBPcHRpb25hbDxIYXNoTWFwPEF0dGFjaG1lbnREZXNjcmlwdG9yKiwgc2l6ZV90Pj4gbWF0Y2hD
b2xvckF0dGFjaG1lbnRzKFZlCiAgICAgICAgICAgICBpZiAoIWlzQWNjZXB0YWJsZUZvcm1hdChh
dHRhY2htZW50RGVzY3JpcHRvci50ZXh0dXJlRm9ybWF0LCAqaXRlbS51bm5hbWVkVHlwZSwgaW50
cmluc2ljcywgdHJ1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAg
ICAgICAgICAgIHJlc3VsdC5hZGQoJmF0dGFjaG1lbnREZXNjcmlwdG9yLCBpKTsKLSAgICAgICAg
ICAgIGl0ZW1JbmRpY2VzLmFkZChpICsgMSk7IC8vIFdvcmsgYXJvdW5kIHRoZSBmYWN0IHRoYXQg
SGFzaFNldCdzIGtleXMgYXJlIHJlc3RyaWN0ZWQuCisgICAgICAgICAgICBpdGVtSW5kaWNlcy5h
ZGQoaSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI1NCw3ICsyNDgsNyBAQCBzdGF0aWMgT3B0
aW9uYWw8SGFzaE1hcDxBdHRhY2htZW50RGVzY3JpcHRvciosIHNpemVfdD4+IG1hdGNoQ29sb3JB
dHRhY2htZW50cyhWZQogICAgICAgICBhdXRvJiBzZW1hbnRpYyA9ICppdGVtLnNlbWFudGljOwog
ICAgICAgICBpZiAoIVdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8QVNUOjpTdGFnZUluT3V0U2VtYW50
aWM+KHNlbWFudGljKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoIWl0ZW1J
bmRpY2VzLmNvbnRhaW5zKGkgKyAxKSkKKyAgICAgICAgaWYgKCFpdGVtSW5kaWNlcy5jb250YWlu
cyhpKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdy
b3VwTGF5b3V0TWV0YWwubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
Y29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0KaW5kZXggODAyMDE2MzU1NGU4YmU0YmI2
MTE1YWQ0M2Y1ODJjMzVmYzVkNDA1NC4uYTI2YmFkZjMwMGE0NmM2YTQ2ZGIyZmQ1NGY2NTYwOWJl
Yjk4ZDkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFsLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBMYXlvdXRNZXRhbC5tbQpAQCAt
ODQsNiArODQsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE1UTEFyZ3VtZW50RGVzY3JpcHRvcj4gYXJn
dW1lbnREZXNjcmlwdG9yKE1UTERhdGFUeXBlIGRhdGFUeXBlLAogICAgIG10bEFyZ3VtZW50ID0g
YWRvcHROUyhbTVRMQXJndW1lbnREZXNjcmlwdG9yIG5ld10pOwogICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CiAKKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMTM4NCBUaGlzIG5lZWRzIHRvIHNldCB0aGUgInRleHR1cmVUeXBlIiBm
aWVsZAogICAgIFttdGxBcmd1bWVudCBzZXREYXRhVHlwZTpkYXRhVHlwZV07CiAgICAgW210bEFy
Z3VtZW50IHNldEluZGV4OmluZGV4XTsKICAgICByZXR1cm4gbXRsQXJndW1lbnQ7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
N2U2ODIzZjZjYWYwODAzZDNjYjdiNTRiMWRkMTA4MDE2ZDY2NjE0Mi4uYjA5MDUzNmVlZTcxYzFl
YWMwZmEyZjJhNjA2MWMxY2RiNmZmODM4ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA5
LTAxICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAg
W1dITFNMXSBSZXNvdXJjZXMgZG9uJ3Qgd29yayB3aGVuIG9ubHkgYSBzdWJzZXQgb2YgYSBiaW5k
IGdyb3VwIGlzIHJlZmVyZW5jZWQgYnkgYSBzaGFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTM4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViZ3B1L3dobHNsL2NvbXB1dGUuaHRtbDoKKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAtMi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC9zcGFyc2UtYmluZC1ncm91cC0yLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC9zcGFyc2UtYmluZC1ncm91cC0zLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsL3NwYXJzZS1iaW5kLWdyb3VwLTMu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsL3NwYXJzZS1iaW5kLWdyb3VwLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsL3NwYXJzZS1iaW5kLWdy
b3VwLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA4LTI3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3Jp
LkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIE1ha2UgRnJhbWVMb2FkZXI6Om9wZW4oKSBzZXQg
b3V0Z29pbmcgcmVmZXJyZXIgcHJvcGVybHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdw
dS93aGxzbC9jb21wdXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvY29tcHV0ZS5o
dG1sCmluZGV4IDFmNjMyZTY2Y2Y2MzdiYTA2YjNmNTQ2ZGQ3MDdlMDFiMzE2N2FiNTUuLjFjZWU2
ZTY0ZjQ3MGZkZjE2ZDIxZDM5NjRlZTJmMTEwNzY2ZDM5NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmdwdS93aGxzbC9jb21wdXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsL2NvbXB1dGUuaHRtbApAQCAtNzQsNiArNzQsNyBAQCBhc3luYyBmdW5jdGlvbiBzdGFydChk
ZXZpY2UpIHsKICAgICAgICAgdGVzdEZhaWxlZCgiIik7CiAgICAgcmVzdWx0c0J1ZmZlci51bm1h
cCgpOwogfQorCiB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiBnZXRCYXNpY0RldmljZSgp
LnRoZW4oZnVuY3Rpb24oZGV2aWNlKSB7CiAgICAgc3RhcnQoZGV2aWNlKS50aGVuKGZ1bmN0aW9u
KCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL3NwYXJzZS1iaW5kLWdy
b3VwLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsL3NwYXJzZS1iaW5k
LWdyb3VwLTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ODJmOTA0NThhNTZmNTQ1ZWIxOWM3
NGQyN2Y4ZjZhZjIzMTgyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAtMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitQ
QVNTIAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9zcGFyc2UtYmluZC1ncm91cC0y
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAtMi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ0M2EzOTk1YTk4NzhlZWVmMWM3Yjc3OTZjM2NlZTMwNWExNjI4NzgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3Jv
dXAtMi5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorY29uc3Qgc2hhZGVyU291cmNlID0gYAorW251bXRocmVh
ZHMoMSwgMSwgMSldCitjb21wdXRlIHZvaWQgY29tcHV0ZVNoYWRlcihkZXZpY2UgZmxvYXRbXSBi
dWZmZXIgOiByZWdpc3Rlcih1MSkpIHsKKyAgICBidWZmZXJbMF0gPSAxNzsKK30KK2A7CisKK2Fz
eW5jIGZ1bmN0aW9uIHN0YXJ0KGRldmljZSkgeworICAgIGRldmljZS5wdXNoRXJyb3JTY29wZSgi
dmFsaWRhdGlvbiIpOworICAgIGNvbnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFk
ZXJNb2R1bGUoe2NvZGU6IHNoYWRlclNvdXJjZX0pOworICAgIGNvbnN0IGNvbXB1dGVTdGFnZSA9
IHttb2R1bGU6IHNoYWRlck1vZHVsZSwgZW50cnlQb2ludDogImNvbXB1dGVTaGFkZXIifTsKKwor
ICAgIGNvbnN0IGJpbmRHcm91cExheW91dERlc2NyaXB0b3IgPSB7YmluZGluZ3M6IFt7YmluZGlu
ZzogMCwgdmlzaWJpbGl0eTogNywgdHlwZTogInN0b3JhZ2UtYnVmZmVyIn0sIHtiaW5kaW5nOiAx
LCB2aXNpYmlsaXR5OiA3LCB0eXBlOiAic3RvcmFnZS1idWZmZXIifV19OworICAgIGNvbnN0IGJp
bmRHcm91cExheW91dCA9IGRldmljZS5jcmVhdGVCaW5kR3JvdXBMYXlvdXQoYmluZEdyb3VwTGF5
b3V0RGVzY3JpcHRvcik7CisgICAgY29uc3QgcGlwZWxpbmVMYXlvdXREZXNjcmlwdG9yID0ge2Jp
bmRHcm91cExheW91dHM6IFtiaW5kR3JvdXBMYXlvdXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxh
eW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGluZUxheW91dChwaXBlbGluZUxheW91dERlc2NyaXB0
b3IpOworCisgICAgY29uc3QgY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciA9IHtjb21wdXRlU3Rh
Z2UsIGxheW91dDogcGlwZWxpbmVMYXlvdXR9OworICAgIGNvbnN0IGNvbXB1dGVQaXBlbGluZSA9
IGRldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcik7
CisgICAgZGV2aWNlLnBvcEVycm9yU2NvcGUoKS50aGVuKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
YWxlcnQoZS5tZXNzYWdlKTsKKyAgICB9KTsKKworICAgIGNvbnN0IHNpemUgPSBGbG9hdDMyQXJy
YXkuQllURVNfUEVSX0VMRU1FTlQgKiAxOworCisgICAgY29uc3QgYnVmZmVyMSA9IGRldmljZS5j
cmVhdGVCdWZmZXIoe3NpemUsIHVzYWdlOiBHUFVCdWZmZXJVc2FnZS5TVE9SQUdFIHwgR1BVQnVm
ZmVyVXNhZ2UuTUFQX1JFQUR9KTsKKyAgICBjb25zdCBidWZmZXIyID0gZGV2aWNlLmNyZWF0ZUJ1
ZmZlcih7c2l6ZSwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlNUT1JBR0UgfCBHUFVCdWZmZXJVc2Fn
ZS5NQVBfUkVBRH0pOworCisgICAgY29uc3QgYmluZEdyb3VwID0gZGV2aWNlLmNyZWF0ZUJpbmRH
cm91cCh7bGF5b3V0OiBiaW5kR3JvdXBMYXlvdXQsIGJpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHJl
c291cmNlOiB7YnVmZmVyOiBidWZmZXIxLCBzaXplfX0sIHtiaW5kaW5nOiAxLCByZXNvdXJjZTog
e2J1ZmZlcjogYnVmZmVyMiwgc2l6ZX19XX0pOworCisgICAgY29uc3QgY29tbWFuZEVuY29kZXIg
PSBkZXZpY2UuY3JlYXRlQ29tbWFuZEVuY29kZXIoKTsgLy8ge30KKyAgICBjb25zdCBjb21wdXRl
UGFzc0VuY29kZXIgPSBjb21tYW5kRW5jb2Rlci5iZWdpbkNvbXB1dGVQYXNzKCk7CisgICAgY29t
cHV0ZVBhc3NFbmNvZGVyLnNldFBpcGVsaW5lKGNvbXB1dGVQaXBlbGluZSk7CisgICAgY29tcHV0
ZVBhc3NFbmNvZGVyLnNldEJpbmRHcm91cCgwLCBiaW5kR3JvdXApOworICAgIGNvbXB1dGVQYXNz
RW5jb2Rlci5kaXNwYXRjaCgxLCAxLCAxKTsKKyAgICBjb21wdXRlUGFzc0VuY29kZXIuZW5kUGFz
cygpOworICAgIGNvbnN0IGNvbW1hbmRCdWZmZXIgPSBjb21tYW5kRW5jb2Rlci5maW5pc2goKTsK
KyAgICBkZXZpY2UuZ2V0UXVldWUoKS5zdWJtaXQoW2NvbW1hbmRCdWZmZXJdKTsKKworICAgIGNv
bnN0IHJlc3VsdHNBcnJheUJ1ZmZlciA9IGF3YWl0IGJ1ZmZlcjIubWFwUmVhZEFzeW5jKCk7Cisg
ICAgY29uc3QgcmVzdWx0c0Zsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkocmVzdWx0c0Fy
cmF5QnVmZmVyKTsKKyAgICBpZiAocmVzdWx0c0Zsb2F0MzJBcnJheVswXSA9PSAxNykKKyAgICAg
ICAgdGVzdFBhc3NlZCgiIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCIiKTsKKyAg
ICBidWZmZXIyLnVubWFwKCk7Cit9CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2dl
dEJhc2ljRGV2aWNlKCkudGhlbihmdW5jdGlvbihkZXZpY2UpIHsKKyAgICBzdGFydChkZXZpY2Up
LnRoZW4oZnVuY3Rpb24oKSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIGZ1bmN0
aW9uKCkgeworICAgICAgICB0ZXN0RmFpbGVkKCIiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfSk7Cit9LCBmdW5jdGlvbigpIHsKKyAgICB0ZXN0UGFzc2VkKCIiKTsKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30pOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAtMy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAtMy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDg4MmY5MDQ1OGE1NmY1NDVlYjE5Yzc0ZDI3ZjhmNmFmMjMxODJk
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9zcGFyc2UtYmlu
ZC1ncm91cC0zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1BBU1MgCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsL3NwYXJzZS1iaW5kLWdyb3VwLTMuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmdwdS93aGxzbC9zcGFyc2UtYmluZC1ncm91cC0zLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Zm
ZDE4MTI2ZGY3MmJjZjk2MGI4ZWZjMDYzMzNiYzE2ZjNiNmI0OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9zcGFyc2UtYmluZC1ncm91cC0zLmh0bWwKQEAgLTAs
MCArMSw3MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQ+Citjb25zdCBzaGFkZXJTb3VyY2UgPSBgCitbbnVtdGhyZWFkcygxLCAxLCAxKV0KK2Nv
bXB1dGUgdm9pZCBjb21wdXRlU2hhZGVyKGRldmljZSBmbG9hdFtdIGJ1ZmZlciA6IHJlZ2lzdGVy
KHUxKSkgeworICAgIGJ1ZmZlclswXSA9IDE3OworfQorYDsKKworYXN5bmMgZnVuY3Rpb24gc3Rh
cnQoZGV2aWNlKSB7CisgICAgZGV2aWNlLnB1c2hFcnJvclNjb3BlKCJ2YWxpZGF0aW9uIik7Cisg
ICAgY29uc3Qgc2hhZGVyTW9kdWxlID0gZGV2aWNlLmNyZWF0ZVNoYWRlck1vZHVsZSh7Y29kZTog
c2hhZGVyU291cmNlfSk7CisgICAgY29uc3QgY29tcHV0ZVN0YWdlID0ge21vZHVsZTogc2hhZGVy
TW9kdWxlLCBlbnRyeVBvaW50OiAiY29tcHV0ZVNoYWRlciJ9OworCisgICAgY29uc3QgYmluZEdy
b3VwTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kaW5nczogW3tiaW5kaW5nOiAwLCB2aXNpYmlsaXR5
OiAwLCB0eXBlOiAic3RvcmFnZS1idWZmZXIifSwge2JpbmRpbmc6IDEsIHZpc2liaWxpdHk6IDcs
IHR5cGU6ICJzdG9yYWdlLWJ1ZmZlciJ9XX07CisgICAgY29uc3QgYmluZEdyb3VwTGF5b3V0ID0g
ZGV2aWNlLmNyZWF0ZUJpbmRHcm91cExheW91dChiaW5kR3JvdXBMYXlvdXREZXNjcmlwdG9yKTsK
KyAgICBjb25zdCBwaXBlbGluZUxheW91dERlc2NyaXB0b3IgPSB7YmluZEdyb3VwTGF5b3V0czog
W2JpbmRHcm91cExheW91dF19OworICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0ID0gZGV2aWNlLmNy
ZWF0ZVBpcGVsaW5lTGF5b3V0KHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvcik7CisKKyAgICBjb25z
dCBjb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yID0ge2NvbXB1dGVTdGFnZSwgbGF5b3V0OiBwaXBl
bGluZUxheW91dH07CisgICAgY29uc3QgY29tcHV0ZVBpcGVsaW5lID0gZGV2aWNlLmNyZWF0ZUNv
bXB1dGVQaXBlbGluZShjb21wdXRlUGlwZWxpbmVEZXNjcmlwdG9yKTsKKyAgICBkZXZpY2UucG9w
RXJyb3JTY29wZSgpLnRoZW4oZnVuY3Rpb24oZSkgeworICAgICAgICBhbGVydChlLm1lc3NhZ2Up
OworICAgIH0pOworCisgICAgY29uc3Qgc2l6ZSA9IEZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxF
TUVOVCAqIDE7CisKKyAgICBjb25zdCBidWZmZXIxID0gZGV2aWNlLmNyZWF0ZUJ1ZmZlcih7c2l6
ZSwgdXNhZ2U6IEdQVUJ1ZmZlclVzYWdlLlNUT1JBR0UgfCBHUFVCdWZmZXJVc2FnZS5NQVBfUkVB
RH0pOworICAgIGNvbnN0IGJ1ZmZlcjIgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHtzaXplLCB1c2Fn
ZTogR1BVQnVmZmVyVXNhZ2UuU1RPUkFHRSB8IEdQVUJ1ZmZlclVzYWdlLk1BUF9SRUFEfSk7CisK
KyAgICBjb25zdCBiaW5kR3JvdXAgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwKHtsYXlvdXQ6IGJp
bmRHcm91cExheW91dCwgYmluZGluZ3M6IFt7YmluZGluZzogMCwgcmVzb3VyY2U6IHtidWZmZXI6
IGJ1ZmZlcjEsIHNpemV9fSwge2JpbmRpbmc6IDEsIHJlc291cmNlOiB7YnVmZmVyOiBidWZmZXIy
LCBzaXplfX1dfSk7CisKKyAgICBjb25zdCBjb21tYW5kRW5jb2RlciA9IGRldmljZS5jcmVhdGVD
b21tYW5kRW5jb2RlcigpOyAvLyB7fQorICAgIGNvbnN0IGNvbXB1dGVQYXNzRW5jb2RlciA9IGNv
bW1hbmRFbmNvZGVyLmJlZ2luQ29tcHV0ZVBhc3MoKTsKKyAgICBjb21wdXRlUGFzc0VuY29kZXIu
c2V0UGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lKTsKKyAgICBjb21wdXRlUGFzc0VuY29kZXIuc2V0
QmluZEdyb3VwKDAsIGJpbmRHcm91cCk7CisgICAgY29tcHV0ZVBhc3NFbmNvZGVyLmRpc3BhdGNo
KDEsIDEsIDEpOworICAgIGNvbXB1dGVQYXNzRW5jb2Rlci5lbmRQYXNzKCk7CisgICAgY29uc3Qg
Y29tbWFuZEJ1ZmZlciA9IGNvbW1hbmRFbmNvZGVyLmZpbmlzaCgpOworICAgIGRldmljZS5nZXRR
dWV1ZSgpLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0pOworCisgICAgY29uc3QgcmVzdWx0c0FycmF5
QnVmZmVyID0gYXdhaXQgYnVmZmVyMi5tYXBSZWFkQXN5bmMoKTsKKyAgICBjb25zdCByZXN1bHRz
RmxvYXQzMkFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShyZXN1bHRzQXJyYXlCdWZmZXIpOworICAg
IGlmIChyZXN1bHRzRmxvYXQzMkFycmF5WzBdID09IDE3KQorICAgICAgICB0ZXN0UGFzc2VkKCIi
KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIiIpOworICAgIGJ1ZmZlcjIudW5tYXAo
KTsKK30KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworZ2V0QmFzaWNEZXZpY2UoKS50
aGVuKGZ1bmN0aW9uKGRldmljZSkgeworICAgIHN0YXJ0KGRldmljZSkudGhlbihmdW5jdGlvbigp
IHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVuY3Rpb24oKSB7CisgICAgICAg
IHRlc3RGYWlsZWQoIiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30sIGZ1
bmN0aW9uKCkgeworICAgIHRlc3RQYXNzZWQoIiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmdwdS93aGxzbC9zcGFyc2UtYmluZC1ncm91cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4
ODJmOTA0NThhNTZmNTQ1ZWIxOWM3NGQyN2Y4ZjZhZjIzMTgyZDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wvc3BhcnNlLWJpbmQtZ3JvdXAtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorUEFTUyAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wv
c3BhcnNlLWJpbmQtZ3JvdXAuaHRtbCBiL0xheW91dFRlc3RzL3dlYmdwdS93aGxzbC9zcGFyc2Ut
YmluZC1ncm91cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MzgyMjRjM2Y5ZDRjYjljMTQyNzdmM2I1NGZm
ZjJmMWI2Zjk1Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wv
c3BhcnNlLWJpbmQtZ3JvdXAuaHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2NvbnN0IHNoYWRlclNvdXJjZSA9
IGAKK1tudW10aHJlYWRzKDEsIDEsIDEpXQorY29tcHV0ZSB2b2lkIGNvbXB1dGVTaGFkZXIoZGV2
aWNlIGZsb2F0W10gYnVmZmVyIDogcmVnaXN0ZXIodTAsIHNwYWNlMSkpIHsKKyAgICBidWZmZXJb
MF0gPSAxNzsKK30KK2A7CisKK2FzeW5jIGZ1bmN0aW9uIHN0YXJ0KGRldmljZSkgeworICAgIGNv
bnN0IHNoYWRlck1vZHVsZSA9IGRldmljZS5jcmVhdGVTaGFkZXJNb2R1bGUoe2NvZGU6IHNoYWRl
clNvdXJjZX0pOworICAgIGNvbnN0IGNvbXB1dGVTdGFnZSA9IHttb2R1bGU6IHNoYWRlck1vZHVs
ZSwgZW50cnlQb2ludDogImNvbXB1dGVTaGFkZXIifTsKKworICAgIGNvbnN0IGJpbmRHcm91cExh
eW91dERlc2NyaXB0b3IgPSB7YmluZGluZ3M6IFt7YmluZGluZzogMCwgdmlzaWJpbGl0eTogNywg
dHlwZTogInN0b3JhZ2UtYnVmZmVyIn1dfTsKKyAgICBjb25zdCBiaW5kR3JvdXBMYXlvdXQgPSBk
ZXZpY2UuY3JlYXRlQmluZEdyb3VwTGF5b3V0KGJpbmRHcm91cExheW91dERlc2NyaXB0b3IpOwor
ICAgIGNvbnN0IHBpcGVsaW5lTGF5b3V0RGVzY3JpcHRvciA9IHtiaW5kR3JvdXBMYXlvdXRzOiBb
YmluZEdyb3VwTGF5b3V0LCBiaW5kR3JvdXBMYXlvdXRdfTsKKyAgICBjb25zdCBwaXBlbGluZUxh
eW91dCA9IGRldmljZS5jcmVhdGVQaXBlbGluZUxheW91dChwaXBlbGluZUxheW91dERlc2NyaXB0
b3IpOworCisgICAgY29uc3QgY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvciA9IHtjb21wdXRlU3Rh
Z2UsIGxheW91dDogcGlwZWxpbmVMYXlvdXR9OworICAgIGNvbnN0IGNvbXB1dGVQaXBlbGluZSA9
IGRldmljZS5jcmVhdGVDb21wdXRlUGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lRGVzY3JpcHRvcik7
CisKKyAgICBjb25zdCBzaXplID0gRmxvYXQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UICogMTsK
KworICAgIGNvbnN0IGJ1ZmZlcjEgPSBkZXZpY2UuY3JlYXRlQnVmZmVyKHtzaXplLCB1c2FnZTog
R1BVQnVmZmVyVXNhZ2UuU1RPUkFHRSB8IEdQVUJ1ZmZlclVzYWdlLk1BUF9SRUFEfSk7CisgICAg
Y29uc3QgYnVmZmVyMiA9IGRldmljZS5jcmVhdGVCdWZmZXIoe3NpemUsIHVzYWdlOiBHUFVCdWZm
ZXJVc2FnZS5TVE9SQUdFIHwgR1BVQnVmZmVyVXNhZ2UuTUFQX1JFQUR9KTsKKworICAgIGNvbnN0
IGJpbmRHcm91cDEgPSBkZXZpY2UuY3JlYXRlQmluZEdyb3VwKHtsYXlvdXQ6IGJpbmRHcm91cExh
eW91dCwgYmluZGluZ3M6IFt7YmluZGluZzogMCwgcmVzb3VyY2U6IHtidWZmZXI6IGJ1ZmZlcjEs
IHNpemV9fV19KTsKKyAgICBjb25zdCBiaW5kR3JvdXAyID0gZGV2aWNlLmNyZWF0ZUJpbmRHcm91
cCh7bGF5b3V0OiBiaW5kR3JvdXBMYXlvdXQsIGJpbmRpbmdzOiBbe2JpbmRpbmc6IDAsIHJlc291
cmNlOiB7YnVmZmVyOiBidWZmZXIyLCBzaXplfX1dfSk7CisKKyAgICBjb25zdCBjb21tYW5kRW5j
b2RlciA9IGRldmljZS5jcmVhdGVDb21tYW5kRW5jb2RlcigpOyAvLyB7fQorICAgIGNvbnN0IGNv
bXB1dGVQYXNzRW5jb2RlciA9IGNvbW1hbmRFbmNvZGVyLmJlZ2luQ29tcHV0ZVBhc3MoKTsKKyAg
ICBjb21wdXRlUGFzc0VuY29kZXIuc2V0UGlwZWxpbmUoY29tcHV0ZVBpcGVsaW5lKTsKKyAgICBj
b21wdXRlUGFzc0VuY29kZXIuc2V0QmluZEdyb3VwKDAsIGJpbmRHcm91cDEpOworICAgIGNvbXB1
dGVQYXNzRW5jb2Rlci5zZXRCaW5kR3JvdXAoMSwgYmluZEdyb3VwMik7CisgICAgY29tcHV0ZVBh
c3NFbmNvZGVyLmRpc3BhdGNoKDEsIDEsIDEpOworICAgIGNvbXB1dGVQYXNzRW5jb2Rlci5lbmRQ
YXNzKCk7CisgICAgY29uc3QgY29tbWFuZEJ1ZmZlciA9IGNvbW1hbmRFbmNvZGVyLmZpbmlzaCgp
OworICAgIGRldmljZS5nZXRRdWV1ZSgpLnN1Ym1pdChbY29tbWFuZEJ1ZmZlcl0pOworCisgICAg
Y29uc3QgcmVzdWx0c0FycmF5QnVmZmVyID0gYXdhaXQgYnVmZmVyMi5tYXBSZWFkQXN5bmMoKTsK
KyAgICBjb25zdCByZXN1bHRzRmxvYXQzMkFycmF5ID0gbmV3IEZsb2F0MzJBcnJheShyZXN1bHRz
QXJyYXlCdWZmZXIpOworICAgIGlmIChyZXN1bHRzRmxvYXQzMkFycmF5WzBdID09IDE3KQorICAg
ICAgICB0ZXN0UGFzc2VkKCIiKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIiIpOwor
ICAgIGJ1ZmZlcjIudW5tYXAoKTsKK30KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
Z2V0QmFzaWNEZXZpY2UoKS50aGVuKGZ1bmN0aW9uKGRldmljZSkgeworICAgIHN0YXJ0KGRldmlj
ZSkudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIiIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9KTsKK30sIGZ1bmN0aW9uKCkgeworICAgIHRlc3RQYXNzZWQoIiIpOworICAgIGZp
bmlzaEpTVGVzdCgpOworfSk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>