<?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>234741</bug_id>
          
          <creation_ts>2021-12-29 08:56:10 -0800</creation_ts>
          <short_desc>Add additional named color spaces for extended rgb color types and HSL/HWB in preparation for out of gamut and missing component support</short_desc>
          <delta_ts>2021-12-30 16:42:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <blocked>233526</blocked>
    
    <blocked>234697</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827180</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-12-29 08:56:10 -0800</bug_when>
    <thetext>Add additional named color spaces for extended rgb color types and HSL/HWB in preparation for out of gamut and missing component support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827181</commentid>
    <comment_count>1</comment_count>
      <attachid>448074</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-12-29 09:04:05 -0800</bug_when>
    <thetext>Created attachment 448074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827192</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-29 12:21:15 -0800</bug_when>
    <thetext>Committed r287481 (245616@main): &lt;https://commits.webkit.org/245616@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448074.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827193</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-29 12:22:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/86988899&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827282</commentid>
    <comment_count>4</comment_count>
      <attachid>448074</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-30 16:42:46 -0800</bug_when>
    <thetext>Comment on attachment 448074
Patch

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

&gt; Source/WebCore/platform/graphics/cg/ColorSpaceCG.h:179
&gt; +    // FIXME: Add support for these once/if CoreGraphics adds support for it.

these/it don’t agree</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448074</attachid>
            <date>2021-12-29 09:04:05 -0800</date>
            <delta_ts>2021-12-29 12:21:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234741-20211229090404.patch</filename>
            <type>text/plain</type>
            <size>39132</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyODc0NzkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEyLTI5ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYWRkaXRpb25hbCBuYW1lZCBjb2xvciBzcGFjZXMg
Zm9yIGV4dGVuZGVkIHJnYiBjb2xvciB0eXBlcyBhbmQgSFNML0hXQiBpbiBwcmVwYXJhdGlvbiBm
b3Igb3V0IG9mIGdhbXV0IGFuZCBtaXNzaW5nIGNvbXBvbmVudCBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ3NDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUu
aDoKKyAgICAgICAgQWRkIG5ldyBIQVZFIG1hY3JvcyBmb3IgYWRkaXRpb25hbCBDb3JlR3JhcGhp
Y3MgbmFtZWQgY29sb3Igc3BhY2VzIGFuZCB0aGUgQ0dDb2xvclNwYWNlQ3JlYXRlRXh0ZW5kZWQg
ZnVuY3Rpb24uCisKIDIwMjEtMTItMjggIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgog
CiAgICAgICAgIFN1cHBvcnQgY29sb3IgaW50ZXJwb2xhdGlvbiBtZXRob2RzIGZvciBDU1MgR3Jh
ZGllbnRzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAkocmV2aXNpb24gMjg3NDc3KQorKysgU291
cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4NSw5ICs4ODUs
MjIgQEAKICNkZWZpbmUgSEFWRV9QVUlDX0JVVFRPTl9UWVBFX1BJTEwgMQogI2VuZGlmCiAKKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEx
MDAwMCBcCisgICAgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTQwMDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9fV0FU
Q0hfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gNzAwMDApIFwKKyAgICB8fCAoUExBVEZPUk0o
QVBQTEVUVikgJiYgX19UVl9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApIFwKKyAg
ICB8fCAoUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDE0MDAwMCkpCisjZGVmaW5lIEhBVkVfQ09SRV9HUkFQSElDU19DUkVBVEVfRVhU
RU5ERURfQ09MT1JfU1BBQ0UgMQorI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJQ1NfRVhURU5ERURf
QURPQkVfUkdCXzE5OThfQ09MT1JfU1BBQ0UgMQorI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJQ1Nf
RVhURU5ERURfRElTUExBWV9QM19DT0xPUl9TUEFDRSAxCisjZGVmaW5lIEhBVkVfQ09SRV9HUkFQ
SElDU19FWFRFTkRFRF9JVFVSXzIwMjBfQ09MT1JfU1BBQ0UgMQorI2RlZmluZSBIQVZFX0NPUkVf
R1JBUEhJQ1NfRVhURU5ERURfUk9NTVJHQl9DT0xPUl9TUEFDRSAxCisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKENPQ09BKQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJQ1NfQURPQkVfUkdCXzE5OThf
Q09MT1JfU1BBQ0UgMQogI2RlZmluZSBIQVZFX0NPUkVfR1JBUEhJQ1NfRElTUExBWV9QM19DT0xP
Ul9TUEFDRSAxCisjZGVmaW5lIEhBVkVfQ09SRV9HUkFQSElDU19FWFRFTkRFRF9MSU5FQVJfU1JH
Ql9DT0xPUl9TUEFDRSAxCiAjZGVmaW5lIEhBVkVfQ09SRV9HUkFQSElDU19FWFRFTkRFRF9TUkdC
X0NPTE9SX1NQQUNFIDEKICNkZWZpbmUgSEFWRV9DT1JFX0dSQVBISUNTX0lUVVJfMjAyMF9DT0xP
Ul9TUEFDRSAxCiAjZGVmaW5lIEhBVkVfQ09SRV9HUkFQSElDU19MSU5FQVJfU1JHQl9DT0xPUl9T
UEFDRSAxCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODc0NzcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBAQAorMjAyMS0xMi0yOSAg
U2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFkZGl0aW9uYWwg
bmFtZWQgY29sb3Igc3BhY2VzIGZvciBleHRlbmRlZCByZ2IgY29sb3IgdHlwZXMgYW5kIEhTTC9I
V0IgaW4gcHJlcGFyYXRpb24gZm9yIG91dCBvZiBnYW11dCBhbmQgbWlzc2luZyBjb21wb25lbnQg
c3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM0NzQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkcyBuYW1lZCBjb2xvciBzcGFjZSBzdXBwb3J0LCB3aGljaCBwcm92aWRlcyB0aGUgYWJpbGl0
eSBmb3IgYSBjb2xvciB0eXBlIHRvIGxpdmUKKyAgICAgICAgaW4gYSBDb2xvciwgZm9yIHRoZSBm
b2xsb3dpbmcgY29sb3Igc3BhY2VzOiAgCisgICAgICAgIAorICAgICAgICAgICAgRXh0ZW5kZWRB
OThSR0IKKyAgICAgICAgICAgIEV4dGVuZGVkRGlzcGxheVAzCisgICAgICAgICAgICBFeHRlbmRl
ZExpbmVhclNSR0IKKyAgICAgICAgICAgIEV4dGVuZGVkUHJvUGhvdG9SR0IKKyAgICAgICAgICAg
IEV4dGVuZGVkUmVjMjAyMAorICAgICAgICAgICAgRXh0ZW5kZWRTUkdCCisgICAgICAgICAgICBI
U0wKKyAgICAgICAgICAgIEhXQgorCisgICAgICAgIFRoaXMgaXMgZ29pbmcgdG8gYmUgbmVlZGVk
IHRvIGFkZCBzdXBwb3J0IGZvciBvdXQgb2YgZ2FtdXQgY29sb3IoKSBmdW5jdGlvbiBzdXBwb3J0
IAorICAgICAgICBhbmQgc3VwcG9ydCBmb3IgdGhlIG5ldyBtaXNzaW5nIGNvbXBvbmVudCBzeW50
YXguCisKKyAgICAgICAgVGhlIGV4dGVuZGVkIHZhcmlhbnRzIHNlcmlhbGl6ZSBpZGVudGljYWxs
eSB0byB0aGVpciBib3VuZGVkIGNvdW50ZXJwYXJ0cywgSFNML0hXQgorICAgICAgICBzZXJpYWxp
emUgYXMgdGhleSBkbyB0b2RheSwgYnkgY29udmVydGluZyB0byA4LWJpdCBzUkdCIGFuZCBzZXJp
YWxpemluZyBhcyBpdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0Q29sb3JDb21wb25lbnRzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6c2VyaWFsaXphdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemF0
aW9uRm9yUmVuZGVyVHJlZUFzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemF0aW9u
Rm9yQ1NTKToKKyAgICAgICAgKFdlYkNvcmU6OnNlcmlhbGl6YXRpb25Gb3JIVE1MKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OmNhbGxXaXRoQ29sb3JUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Db2xvclR5cGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNl
Q0cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXh0ZW5kZWROYW1lZENvbG9yU3BhY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6ZXh0ZW5kZWRBZG9iZVJHQjE5OThDb2xvclNwYWNlUmVmKToKKyAgICAg
ICAgKFdlYkNvcmU6OmV4dGVuZGVkRGlzcGxheVAzQ29sb3JTcGFjZVJlZik6CisgICAgICAgIChX
ZWJDb3JlOjpleHRlbmRlZElUVVJfMjAyMENvbG9yU3BhY2VSZWYpOgorICAgICAgICAoV2ViQ29y
ZTo6ZXh0ZW5kZWRMaW5lYXJTUkdCQ29sb3JTcGFjZVJlZik6CisgICAgICAgIChXZWJDb3JlOjpl
eHRlbmRlZFJPTU1SR0JDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yU3Bh
Y2VGb3JDR0NvbG9yU3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6bGFiQ29sb3JTcGFjZVJlZik6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmg6
CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWROdWxsYWJsZUNHQ29sb3JTcGFjZSk6CisKIDIwMjEt
MTItMjggIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lG
Q10gRG8gbm90IGxldCBMYXlvdXQgZ2VvbWV0cnkgdHlwZXMgbGVhayBpbnRvIElubGluZURpc3Bs
YXk6OkxpbmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29u
dmVyc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3JDb252ZXJzaW9uLmNwcAkocmV2aXNpb24gMjg3NDc3KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzc5LDYgKzM3OSwyMiBAQCBDb2xvckNvbXBvbmVudHM8ZmxvYXQsIDQ+IGNvbnZlcnRDb2xv
ckNvbXBvbmVudHMoQ29sb3IKICAgICAgICAgICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhj
b252ZXJ0Q29sb3I8QTk4UkdCPGZsb2F0Pj4oaW5wdXRDb2xvcikpOwogICAgICAgICBjYXNlIENv
bG9yU3BhY2U6OkRpc3BsYXlQMzoKICAgICAgICAgICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50
cyhjb252ZXJ0Q29sb3I8RGlzcGxheVAzPGZsb2F0Pj4oaW5wdXRDb2xvcikpOworICAgICAgICBj
YXNlIENvbG9yU3BhY2U6OkV4dGVuZGVkQTk4UkdCOgorICAgICAgICAgICAgcmV0dXJuIGFzQ29s
b3JDb21wb25lbnRzKGNvbnZlcnRDb2xvcjxFeHRlbmRlZEE5OFJHQjxmbG9hdD4+KGlucHV0Q29s
b3IpKTsKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpFeHRlbmRlZERpc3BsYXlQMzoKKyAgICAg
ICAgICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29sb3I8RXh0ZW5kZWREaXNw
bGF5UDM8ZmxvYXQ+PihpbnB1dENvbG9yKSk7CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6RXh0
ZW5kZWRMaW5lYXJTUkdCOgorICAgICAgICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGNv
bnZlcnRDb2xvcjxFeHRlbmRlZExpbmVhclNSR0JBPGZsb2F0Pj4oaW5wdXRDb2xvcikpOworICAg
ICAgICBjYXNlIENvbG9yU3BhY2U6OkV4dGVuZGVkUHJvUGhvdG9SR0I6CisgICAgICAgICAgICBy
ZXR1cm4gYXNDb2xvckNvbXBvbmVudHMoY29udmVydENvbG9yPEV4dGVuZGVkUHJvUGhvdG9SR0I8
ZmxvYXQ+PihpbnB1dENvbG9yKSk7CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6RXh0ZW5kZWRS
ZWMyMDIwOgorICAgICAgICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGNvbnZlcnRDb2xv
cjxFeHRlbmRlZFJlYzIwMjA8ZmxvYXQ+PihpbnB1dENvbG9yKSk7CisgICAgICAgIGNhc2UgQ29s
b3JTcGFjZTo6RXh0ZW5kZWRTUkdCOgorICAgICAgICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25l
bnRzKGNvbnZlcnRDb2xvcjxFeHRlbmRlZFNSR0JBPGZsb2F0Pj4oaW5wdXRDb2xvcikpOworICAg
ICAgICBjYXNlIENvbG9yU3BhY2U6OkhTTDoKKyAgICAgICAgICAgIHJldHVybiBhc0NvbG9yQ29t
cG9uZW50cyhjb252ZXJ0Q29sb3I8SFNMQTxmbG9hdD4+KGlucHV0Q29sb3IpKTsKKyAgICAgICAg
Y2FzZSBDb2xvclNwYWNlOjpIV0I6CisgICAgICAgICAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVu
dHMoY29udmVydENvbG9yPEhXQkE8ZmxvYXQ+PihpbnB1dENvbG9yKSk7CiAgICAgICAgIGNhc2Ug
Q29sb3JTcGFjZTo6TENIOgogICAgICAgICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGNv
bnZlcnRDb2xvcjxMQ0hBPGZsb2F0Pj4oaW5wdXRDb2xvcikpOwogICAgICAgICBjYXNlIENvbG9y
U3BhY2U6OkxhYjoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
U2VyaWFsaXphdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAkocmV2aXNpb24gMjg3NDc3KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMzggQEAgc3RhdGljIFN0cmluZyBzZXJpYWxpemF0aW9u
Rm9yQ1NTKGNvbnN0IERpc3BsYXlQMzxmbG9hCiBzdGF0aWMgU3RyaW5nIHNlcmlhbGl6YXRpb25G
b3JIVE1MKGNvbnN0IERpc3BsYXlQMzxmbG9hdD4mLCBib29sIHVzZUNvbG9yRnVuY3Rpb25TZXJp
YWxpemF0aW9uKTsKIHN0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1Rl
eHQoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6
YXRpb24pOwogCitzdGF0aWMgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgRXh0ZW5k
ZWRBOThSR0I8ZmxvYXQ+JiwgYm9vbCB1c2VDb2xvckZ1bmN0aW9uU2VyaWFsaXphdGlvbik7Citz
dGF0aWMgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IEV4dGVuZGVkQTk4UkdCPGZs
b2F0PiYsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pOworc3RhdGljIFN0cmlu
ZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBFeHRlbmRlZEE5OFJHQjxm
bG9hdD4mLCBib29sIHVzZUNvbG9yRnVuY3Rpb25TZXJpYWxpemF0aW9uKTsKKworc3RhdGljIFN0
cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IEV4dGVuZGVkRGlzcGxheVAzPGZsb2F0PiYs
IGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pOworc3RhdGljIFN0cmluZyBzZXJp
YWxpemF0aW9uRm9ySFRNTChjb25zdCBFeHRlbmRlZERpc3BsYXlQMzxmbG9hdD4mLCBib29sIHVz
ZUNvbG9yRnVuY3Rpb25TZXJpYWxpemF0aW9uKTsKK3N0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlv
bkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgRXh0ZW5kZWREaXNwbGF5UDM8ZmxvYXQ+JiwgYm9v
bCB1c2VDb2xvckZ1bmN0aW9uU2VyaWFsaXphdGlvbik7CisKK3N0YXRpYyBTdHJpbmcgc2VyaWFs
aXphdGlvbkZvckNTUyhjb25zdCBFeHRlbmRlZExpbmVhclNSR0JBPGZsb2F0PiYsIGJvb2wgdXNl
Q29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pOworc3RhdGljIFN0cmluZyBzZXJpYWxpemF0aW9u
Rm9ySFRNTChjb25zdCBFeHRlbmRlZExpbmVhclNSR0JBPGZsb2F0PiYsIGJvb2wgdXNlQ29sb3JG
dW5jdGlvblNlcmlhbGl6YXRpb24pOworc3RhdGljIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVu
ZGVyVHJlZUFzVGV4dChjb25zdCBFeHRlbmRlZExpbmVhclNSR0JBPGZsb2F0PiYsIGJvb2wgdXNl
Q29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pOworCitzdGF0aWMgU3RyaW5nIHNlcmlhbGl6YXRp
b25Gb3JDU1MoY29uc3QgRXh0ZW5kZWRQcm9QaG90b1JHQjxmbG9hdD4mLCBib29sIHVzZUNvbG9y
RnVuY3Rpb25TZXJpYWxpemF0aW9uKTsKK3N0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhU
TUwoY29uc3QgRXh0ZW5kZWRQcm9QaG90b1JHQjxmbG9hdD4mLCBib29sIHVzZUNvbG9yRnVuY3Rp
b25TZXJpYWxpemF0aW9uKTsKK3N0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRy
ZWVBc1RleHQoY29uc3QgRXh0ZW5kZWRQcm9QaG90b1JHQjxmbG9hdD4mLCBib29sIHVzZUNvbG9y
RnVuY3Rpb25TZXJpYWxpemF0aW9uKTsKKworc3RhdGljIFN0cmluZyBzZXJpYWxpemF0aW9uRm9y
Q1NTKGNvbnN0IEV4dGVuZGVkUmVjMjAyMDxmbG9hdD4mLCBib29sIHVzZUNvbG9yRnVuY3Rpb25T
ZXJpYWxpemF0aW9uKTsKK3N0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3Qg
RXh0ZW5kZWRSZWMyMDIwPGZsb2F0PiYsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRp
b24pOworc3RhdGljIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25z
dCBFeHRlbmRlZFJlYzIwMjA8ZmxvYXQ+JiwgYm9vbCB1c2VDb2xvckZ1bmN0aW9uU2VyaWFsaXph
dGlvbik7CisKK3N0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckNTUyhjb25zdCBFeHRlbmRl
ZFNSR0JBPGZsb2F0PiYsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pOworc3Rh
dGljIFN0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0
PiYsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pOworc3RhdGljIFN0cmluZyBz
ZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0
PiYsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pOworCitzdGF0aWMgU3RyaW5n
IHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgSFNMQTxmbG9hdD4mLCBib29sIHVzZUNvbG9yRnVu
Y3Rpb25TZXJpYWxpemF0aW9uKTsKK3N0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwo
Y29uc3QgSFNMQTxmbG9hdD4mLCBib29sIHVzZUNvbG9yRnVuY3Rpb25TZXJpYWxpemF0aW9uKTsK
K3N0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgSFNM
QTxmbG9hdD4mLCBib29sIHVzZUNvbG9yRnVuY3Rpb25TZXJpYWxpemF0aW9uKTsKKworc3RhdGlj
IFN0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IEhXQkE8ZmxvYXQ+JiwgYm9vbCB1c2VD
b2xvckZ1bmN0aW9uU2VyaWFsaXphdGlvbik7CitzdGF0aWMgU3RyaW5nIHNlcmlhbGl6YXRpb25G
b3JIVE1MKGNvbnN0IEhXQkE8ZmxvYXQ+JiwgYm9vbCB1c2VDb2xvckZ1bmN0aW9uU2VyaWFsaXph
dGlvbik7CitzdGF0aWMgU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNv
bnN0IEhXQkE8ZmxvYXQ+JiwgYm9vbCB1c2VDb2xvckZ1bmN0aW9uU2VyaWFsaXphdGlvbik7CisK
IHN0YXRpYyBTdHJpbmcgc2VyaWFsaXphdGlvbkZvckNTUyhjb25zdCBMQ0hBPGZsb2F0PiYsIGJv
b2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pOwogc3RhdGljIFN0cmluZyBzZXJpYWxp
emF0aW9uRm9ySFRNTChjb25zdCBMQ0hBPGZsb2F0PiYsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNl
cmlhbGl6YXRpb24pOwogc3RhdGljIFN0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFz
VGV4dChjb25zdCBMQ0hBPGZsb2F0PiYsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRp
b24pOwpAQCAtMTEzLDI0ICsxNDUsMzQgQEAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzZXJpYWxpemF0
aW9uKENvbG9yU3BhY2UgY29sb3JTcGFjCiB7CiAgICAgc3dpdGNoIChjb2xvclNwYWNlKSB7CiAg
ICAgY2FzZSBDb2xvclNwYWNlOjpBOThSR0I6CisgICAgY2FzZSBDb2xvclNwYWNlOjpFeHRlbmRl
ZEE5OFJHQjoKICAgICAgICAgcmV0dXJuICJhOTgtcmdiIl9zOwogICAgIGNhc2UgQ29sb3JTcGFj
ZTo6RGlzcGxheVAzOgorICAgIGNhc2UgQ29sb3JTcGFjZTo6RXh0ZW5kZWREaXNwbGF5UDM6CiAg
ICAgICAgIHJldHVybiAiZGlzcGxheS1wMyJfczsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkhTTDoK
KyAgICAgICAgcmV0dXJuICJoc2wiX3M7CisgICAgY2FzZSBDb2xvclNwYWNlOjpIV0I6CisgICAg
ICAgIHJldHVybiAiaHdiIl9zOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6TENIOgogICAgICAgICBy
ZXR1cm4gImxjaCJfczsKICAgICBjYXNlIENvbG9yU3BhY2U6OkxhYjoKICAgICAgICAgcmV0dXJu
ICJsYWIiX3M7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJTUkdCOgorICAgIGNhc2UgQ29s
b3JTcGFjZTo6RXh0ZW5kZWRMaW5lYXJTUkdCOgogICAgICAgICByZXR1cm4gInNyZ2ItbGluZWFy
Il9zOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6T0tMQ0g6CiAgICAgICAgIHJldHVybiAib2tsY2gi
X3M7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpPS0xhYjoKICAgICAgICAgcmV0dXJuICJva2xhYiJf
czsKICAgICBjYXNlIENvbG9yU3BhY2U6OlByb1Bob3RvUkdCOgorICAgIGNhc2UgQ29sb3JTcGFj
ZTo6RXh0ZW5kZWRQcm9QaG90b1JHQjoKICAgICAgICAgcmV0dXJuICJwcm9waG90by1yZ2IiX3M7
CiAgICAgY2FzZSBDb2xvclNwYWNlOjpSZWMyMDIwOgorICAgIGNhc2UgQ29sb3JTcGFjZTo6RXh0
ZW5kZWRSZWMyMDIwOgogICAgICAgICByZXR1cm4gInJlYzIwMjAiX3M7CiAgICAgY2FzZSBDb2xv
clNwYWNlOjpTUkdCOgorICAgIGNhc2UgQ29sb3JTcGFjZTo6RXh0ZW5kZWRTUkdCOgogICAgICAg
ICByZXR1cm4gInNyZ2IiX3M7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpYWVpfRDUwOgogICAgICAg
ICByZXR1cm4gInh5ei1kNTAiX3M7CkBAIC0xODksNiArMjMxLDE0MiBAQCBTdHJpbmcgc2VyaWFs
aXphdGlvbkZvckhUTUwoY29uc3QgRGlzcGxheVAzPGZsb2F0PiYgY28KIFN0cmluZyBzZXJpYWxp
emF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBEaXNwbGF5UDM8ZmxvYXQ+JiBjb2xvciwg
Ym9vbCkKIHsKICAgICByZXR1cm4gc2VyaWFsaXphdGlvblVzaW5nQ29sb3JGdW5jdGlvbihjb2xv
cik7Cit9CisKKy8vIE1BUks6IEV4dGVuZGVkQTk4UkdCPGZsb2F0PiBvdmVybG9hZHMKKworU3Ry
aW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgRXh0ZW5kZWRBOThSR0I8ZmxvYXQ+JiBjb2xv
ciwgYm9vbCkKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlvblVzaW5nQ29sb3JGdW5jdGlvbihj
b2xvcik7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBFeHRlbmRlZEE5
OFJHQjxmbG9hdD4mIGNvbG9yLCBib29sKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uVXNp
bmdDb2xvckZ1bmN0aW9uKGNvbG9yKTsKK30KKworU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5k
ZXJUcmVlQXNUZXh0KGNvbnN0IEV4dGVuZGVkQTk4UkdCPGZsb2F0PiYgY29sb3IsIGJvb2wpCit7
CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Vc2luZ0NvbG9yRnVuY3Rpb24oY29sb3IpOworfQor
CisvLyBNQVJLOiBFeHRlbmRlZERpc3BsYXlQMzxmbG9hdD4gb3ZlcmxvYWRzCisKK1N0cmluZyBz
ZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IEV4dGVuZGVkRGlzcGxheVAzPGZsb2F0PiYgY29sb3Is
IGJvb2wpCit7CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Vc2luZ0NvbG9yRnVuY3Rpb24oY29s
b3IpOworfQorCitTdHJpbmcgc2VyaWFsaXphdGlvbkZvckhUTUwoY29uc3QgRXh0ZW5kZWREaXNw
bGF5UDM8ZmxvYXQ+JiBjb2xvciwgYm9vbCkKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlvblVz
aW5nQ29sb3JGdW5jdGlvbihjb2xvcik7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9yUmVu
ZGVyVHJlZUFzVGV4dChjb25zdCBFeHRlbmRlZERpc3BsYXlQMzxmbG9hdD4mIGNvbG9yLCBib29s
KQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uVXNpbmdDb2xvckZ1bmN0aW9uKGNvbG9yKTsK
K30KKworLy8gTUFSSzogRXh0ZW5kZWRMaW5lYXJTUkdCQTxmbG9hdD4gb3ZlcmxvYWRzCisKK1N0
cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IEV4dGVuZGVkTGluZWFyU1JHQkE8ZmxvYXQ+
JiBjb2xvciwgYm9vbCkKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlvblVzaW5nQ29sb3JGdW5j
dGlvbihjb2xvcik7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBFeHRl
bmRlZExpbmVhclNSR0JBPGZsb2F0PiYgY29sb3IsIGJvb2wpCit7CisgICAgcmV0dXJuIHNlcmlh
bGl6YXRpb25Vc2luZ0NvbG9yRnVuY3Rpb24oY29sb3IpOworfQorCitTdHJpbmcgc2VyaWFsaXph
dGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgRXh0ZW5kZWRMaW5lYXJTUkdCQTxmbG9hdD4m
IGNvbG9yLCBib29sKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uVXNpbmdDb2xvckZ1bmN0
aW9uKGNvbG9yKTsKK30KKworLy8gTUFSSzogRXh0ZW5kZWRQcm9QaG90b1JHQjxmbG9hdD4gb3Zl
cmxvYWRzCisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9yQ1NTKGNvbnN0IEV4dGVuZGVkUHJvUGhv
dG9SR0I8ZmxvYXQ+JiBjb2xvciwgYm9vbCkKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlvblVz
aW5nQ29sb3JGdW5jdGlvbihjb2xvcik7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRN
TChjb25zdCBFeHRlbmRlZFByb1Bob3RvUkdCPGZsb2F0PiYgY29sb3IsIGJvb2wpCit7CisgICAg
cmV0dXJuIHNlcmlhbGl6YXRpb25Vc2luZ0NvbG9yRnVuY3Rpb24oY29sb3IpOworfQorCitTdHJp
bmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgRXh0ZW5kZWRQcm9QaG90
b1JHQjxmbG9hdD4mIGNvbG9yLCBib29sKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uVXNp
bmdDb2xvckZ1bmN0aW9uKGNvbG9yKTsKK30KKworLy8gTUFSSzogRXh0ZW5kZWRSZWMyMDIwPGZs
b2F0PiBvdmVybG9hZHMKKworU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgRXh0ZW5k
ZWRSZWMyMDIwPGZsb2F0PiYgY29sb3IsIGJvb2wpCit7CisgICAgcmV0dXJuIHNlcmlhbGl6YXRp
b25Vc2luZ0NvbG9yRnVuY3Rpb24oY29sb3IpOworfQorCitTdHJpbmcgc2VyaWFsaXphdGlvbkZv
ckhUTUwoY29uc3QgRXh0ZW5kZWRSZWMyMDIwPGZsb2F0PiYgY29sb3IsIGJvb2wpCit7CisgICAg
cmV0dXJuIHNlcmlhbGl6YXRpb25Vc2luZ0NvbG9yRnVuY3Rpb24oY29sb3IpOworfQorCitTdHJp
bmcgc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1RleHQoY29uc3QgRXh0ZW5kZWRSZWMyMDIw
PGZsb2F0PiYgY29sb3IsIGJvb2wpCit7CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Vc2luZ0Nv
bG9yRnVuY3Rpb24oY29sb3IpOworfQorCisvLyBNQVJLOiBFeHRlbmRlZFNSR0JBPGZsb2F0PiBv
dmVybG9hZHMKKworU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgRXh0ZW5kZWRTUkdC
QTxmbG9hdD4mIGNvbG9yLCBib29sKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uVXNpbmdD
b2xvckZ1bmN0aW9uKGNvbG9yKTsKK30KKworU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNv
bnN0IEV4dGVuZGVkU1JHQkE8ZmxvYXQ+JiBjb2xvciwgYm9vbCkKK3sKKyAgICByZXR1cm4gc2Vy
aWFsaXphdGlvblVzaW5nQ29sb3JGdW5jdGlvbihjb2xvcik7Cit9CisKK1N0cmluZyBzZXJpYWxp
emF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBFeHRlbmRlZFNSR0JBPGZsb2F0PiYgY29s
b3IsIGJvb2wpCit7CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Vc2luZ0NvbG9yRnVuY3Rpb24o
Y29sb3IpOworfQorCisvLyBNQVJLOiBIU0xBPGZsb2F0PiBvdmVybG9hZHMKKworU3RyaW5nIHNl
cmlhbGl6YXRpb25Gb3JDU1MoY29uc3QgSFNMQTxmbG9hdD4mIGNvbG9yLCBib29sIHVzZUNvbG9y
RnVuY3Rpb25TZXJpYWxpemF0aW9uKQoreworICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9yQ1NT
KGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4oY29sb3IpLCB1c2VDb2xvckZ1bmN0aW9uU2Vy
aWFsaXphdGlvbik7Cit9CisKK1N0cmluZyBzZXJpYWxpemF0aW9uRm9ySFRNTChjb25zdCBIU0xB
PGZsb2F0PiYgY29sb3IsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pCit7Cisg
ICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90
Pj4oY29sb3IpLCB1c2VDb2xvckZ1bmN0aW9uU2VyaWFsaXphdGlvbik7Cit9CisKK1N0cmluZyBz
ZXJpYWxpemF0aW9uRm9yUmVuZGVyVHJlZUFzVGV4dChjb25zdCBIU0xBPGZsb2F0PiYgY29sb3Is
IGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pCit7CisgICAgcmV0dXJuIHNlcmlh
bGl6YXRpb25Gb3JSZW5kZXJUcmVlQXNUZXh0KGNvbnZlcnRDb2xvcjxTUkdCQTx1aW50OF90Pj4o
Y29sb3IpLCB1c2VDb2xvckZ1bmN0aW9uU2VyaWFsaXphdGlvbik7Cit9CisKKy8vIE1BUks6IEhX
QkE8ZmxvYXQ+IG92ZXJsb2FkcworCitTdHJpbmcgc2VyaWFsaXphdGlvbkZvckNTUyhjb25zdCBI
V0JBPGZsb2F0PiYgY29sb3IsIGJvb2wgdXNlQ29sb3JGdW5jdGlvblNlcmlhbGl6YXRpb24pCit7
CisgICAgcmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JDU1MoY29udmVydENvbG9yPFNSR0JBPHVpbnQ4
X3Q+Pihjb2xvciksIHVzZUNvbG9yRnVuY3Rpb25TZXJpYWxpemF0aW9uKTsKK30KKworU3RyaW5n
IHNlcmlhbGl6YXRpb25Gb3JIVE1MKGNvbnN0IEhXQkE8ZmxvYXQ+JiBjb2xvciwgYm9vbCB1c2VD
b2xvckZ1bmN0aW9uU2VyaWFsaXphdGlvbikKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlvbkZv
ckhUTUwoY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+Pihjb2xvciksIHVzZUNvbG9yRnVuY3Rp
b25TZXJpYWxpemF0aW9uKTsKK30KKworU3RyaW5nIHNlcmlhbGl6YXRpb25Gb3JSZW5kZXJUcmVl
QXNUZXh0KGNvbnN0IEhXQkE8ZmxvYXQ+JiBjb2xvciwgYm9vbCB1c2VDb2xvckZ1bmN0aW9uU2Vy
aWFsaXphdGlvbikKK3sKKyAgICByZXR1cm4gc2VyaWFsaXphdGlvbkZvclJlbmRlclRyZWVBc1Rl
eHQoY29udmVydENvbG9yPFNSR0JBPHVpbnQ4X3Q+Pihjb2xvciksIHVzZUNvbG9yRnVuY3Rpb25T
ZXJpYWxpemF0aW9uKTsKIH0KIAogLy8gTUFSSzogTENIQTxmbG9hdD4gb3ZlcmxvYWRzCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmNwcAko
cmV2aXNpb24gMjg3NDc3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3JTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDMwIEBAIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIENvbG9yU3BhY2UgY29sbwogICAgIGNhc2UgQ29s
b3JTcGFjZTo6RGlzcGxheVAzOgogICAgICAgICB0cyA8PCAiRGlzcGxheVAzIjsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpFeHRlbmRlZEE5OFJHQjoKKyAgICAgICAgdHMg
PDwgIkV4dGVuZGVkIEE5OC1SR0IiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbG9yU3Bh
Y2U6OkV4dGVuZGVkRGlzcGxheVAzOgorICAgICAgICB0cyA8PCAiRXh0ZW5kZWQgRGlzcGxheVAz
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpFeHRlbmRlZExpbmVhclNS
R0I6CisgICAgICAgIHRzIDw8ICJFeHRlbmRlZCBMaW5lYXIgc1JHQiI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29sb3JTcGFjZTo6RXh0ZW5kZWRQcm9QaG90b1JHQjoKKyAgICAgICAgdHMg
PDwgIkV4dGVuZGVkIFByb1Bob3RvUkdCIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xv
clNwYWNlOjpFeHRlbmRlZFJlYzIwMjA6CisgICAgICAgIHRzIDw8ICJFeHRlbmRlZCBSZWMyMDIw
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb2xvclNwYWNlOjpFeHRlbmRlZFNSR0I6Cisg
ICAgICAgIHRzIDw8ICJFeHRlbmRlZCBzUkdCIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBD
b2xvclNwYWNlOjpIU0w6CisgICAgICAgIHRzIDw8ICJIU0wiOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENvbG9yU3BhY2U6OkhXQjoKKyAgICAgICAgdHMgPDwgIkhXQiI7CisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6TENIOgogICAgICAgICB0cyA8PCAiTENIIjsKICAg
ICAgICAgYnJlYWs7CkBAIC00Niw3ICs3MCw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIENvbG9yU3BhY2UgY29sbwogICAgICAgICB0cyA8PCAiTGFiIjsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJTUkdCOgotICAgICAgICB0cyA8
PCAiTGluZWFyU1JHQiI7CisgICAgICAgIHRzIDw8ICJMaW5lYXIgc1JHQiI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29sb3JTcGFjZTo6T0tMQ0g6CiAgICAgICAgIHRzIDw8ICJPS0xDSCI7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5o
CShyZXZpc2lvbiAyODc0NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b2xvclNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGVudW0gY2xhc3MgQ29sb3JTcGFjZSA6IHVpbnQ4X3QgewogICAgIEE5OFJHQiwK
ICAgICBEaXNwbGF5UDMsCisgICAgRXh0ZW5kZWRBOThSR0IsCisgICAgRXh0ZW5kZWREaXNwbGF5
UDMsCisgICAgRXh0ZW5kZWRMaW5lYXJTUkdCLAorICAgIEV4dGVuZGVkUHJvUGhvdG9SR0IsCisg
ICAgRXh0ZW5kZWRSZWMyMDIwLAorICAgIEV4dGVuZGVkU1JHQiwKKyAgICBIU0wsCisgICAgSFdC
LAogICAgIExDSCwKICAgICBMYWIsCiAgICAgTGluZWFyU1JHQiwKQEAgLTUzLDYgKzYxLDE0IEBA
IFdFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIENvbAog
dGVtcGxhdGU8dHlwZW5hbWU+IHN0cnVjdCBDb2xvclNwYWNlTWFwcGluZzsKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBDb2xvclNwYWNlTWFwcGluZzxBOThSR0I8VD4+IHsgc3RhdGljIGNv
bnN0ZXhwciBhdXRvIGNvbG9yU3BhY2UgeyBDb2xvclNwYWNlOjpBOThSR0IgfTsgfTsKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDb2xvclNwYWNlTWFwcGluZzxEaXNwbGF5UDM8VD4+IHsg
c3RhdGljIGNvbnN0ZXhwciBhdXRvIGNvbG9yU3BhY2UgeyBDb2xvclNwYWNlOjpEaXNwbGF5UDMg
fTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDb2xvclNwYWNlTWFwcGluZzxFeHRl
bmRlZEE5OFJHQjxUPj4geyBzdGF0aWMgY29uc3RleHByIGF1dG8gY29sb3JTcGFjZSB7IENvbG9y
U3BhY2U6OkV4dGVuZGVkQTk4UkdCIH07IH07Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
Q29sb3JTcGFjZU1hcHBpbmc8RXh0ZW5kZWREaXNwbGF5UDM8VD4+IHsgc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIGNvbG9yU3BhY2UgeyBDb2xvclNwYWNlOjpFeHRlbmRlZERpc3BsYXlQMyB9OyB9Owor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbG9yU3BhY2VNYXBwaW5nPEV4dGVuZGVkTGlu
ZWFyU1JHQkE8VD4+IHsgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGNvbG9yU3BhY2UgeyBDb2xvclNw
YWNlOjpFeHRlbmRlZExpbmVhclNSR0IgfTsgfTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVj
dCBDb2xvclNwYWNlTWFwcGluZzxFeHRlbmRlZFByb1Bob3RvUkdCPFQ+PiB7IHN0YXRpYyBjb25z
dGV4cHIgYXV0byBjb2xvclNwYWNlIHsgQ29sb3JTcGFjZTo6RXh0ZW5kZWRQcm9QaG90b1JHQiB9
OyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbG9yU3BhY2VNYXBwaW5nPEV4dGVu
ZGVkUmVjMjAyMDxUPj4geyBzdGF0aWMgY29uc3RleHByIGF1dG8gY29sb3JTcGFjZSB7IENvbG9y
U3BhY2U6OkV4dGVuZGVkUmVjMjAyMCB9OyB9OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0
IENvbG9yU3BhY2VNYXBwaW5nPEV4dGVuZGVkU1JHQkE8VD4+IHsgc3RhdGljIGNvbnN0ZXhwciBh
dXRvIGNvbG9yU3BhY2UgeyBDb2xvclNwYWNlOjpFeHRlbmRlZFNSR0IgfTsgfTsKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBDb2xvclNwYWNlTWFwcGluZzxIU0xBPFQ+PiB7IHN0YXRpYyBj
b25zdGV4cHIgYXV0byBjb2xvclNwYWNlIHsgQ29sb3JTcGFjZTo6SFNMIH07IH07Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ29sb3JTcGFjZU1hcHBpbmc8SFdCQTxUPj4geyBzdGF0aWMg
Y29uc3RleHByIGF1dG8gY29sb3JTcGFjZSB7IENvbG9yU3BhY2U6OkhXQiB9OyB9OwogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IENvbG9yU3BhY2VNYXBwaW5nPExDSEE8VD4+IHsgc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIGNvbG9yU3BhY2UgeyBDb2xvclNwYWNlOjpMQ0ggfTsgfTsKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDb2xvclNwYWNlTWFwcGluZzxMYWI8VD4+IHsgc3RhdGlj
IGNvbnN0ZXhwciBhdXRvIGNvbG9yU3BhY2UgeyBDb2xvclNwYWNlOjpMYWIgfTsgfTsKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBDb2xvclNwYWNlTWFwcGluZzxMaW5lYXJTUkdCQTxUPj4g
eyBzdGF0aWMgY29uc3RleHByIGF1dG8gY29sb3JTcGFjZSB7IENvbG9yU3BhY2U6OkxpbmVhclNS
R0IgfTsgfTsKQEAgLTc0LDYgKzkwLDIyIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IEZ1bmN0b3I+IGNvbnN0ZXhwciBkZWNsdAogICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uoc3Rk
Ojpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBtYWtlRnJvbUNvbXBvbmVudHM8QTk4UkdCPFQ+
Pihjb21wb25lbnRzKSk7CiAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CiAgICAgICAg
IHJldHVybiBzdGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIG1ha2VG
cm9tQ29tcG9uZW50czxEaXNwbGF5UDM8VD4+KGNvbXBvbmVudHMpKTsKKyAgICBjYXNlIENvbG9y
U3BhY2U6OkV4dGVuZGVkQTk4UkdCOgorICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uoc3RkOjpm
b3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBtYWtlRnJvbUNvbXBvbmVudHM8RXh0ZW5kZWRBOThS
R0I8VD4+KGNvbXBvbmVudHMpKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkV4dGVuZGVkRGlzcGxh
eVAzOgorICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1
bmN0b3IpLCBtYWtlRnJvbUNvbXBvbmVudHM8RXh0ZW5kZWREaXNwbGF5UDM8VD4+KGNvbXBvbmVu
dHMpKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkV4dGVuZGVkTGluZWFyU1JHQjoKKyAgICAgICAg
cmV0dXJuIHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgbWFrZUZy
b21Db21wb25lbnRzPEV4dGVuZGVkTGluZWFyU1JHQkE8VD4+KGNvbXBvbmVudHMpKTsKKyAgICBj
YXNlIENvbG9yU3BhY2U6OkV4dGVuZGVkUHJvUGhvdG9SR0I6CisgICAgICAgIHJldHVybiBzdGQ6
Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIG1ha2VGcm9tQ29tcG9uZW50
czxFeHRlbmRlZFByb1Bob3RvUkdCPFQ+Pihjb21wb25lbnRzKSk7CisgICAgY2FzZSBDb2xvclNw
YWNlOjpFeHRlbmRlZFJlYzIwMjA6CisgICAgICAgIHJldHVybiBzdGQ6Omludm9rZShzdGQ6OmZv
cndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIG1ha2VGcm9tQ29tcG9uZW50czxFeHRlbmRlZFJlYzIw
MjA8VD4+KGNvbXBvbmVudHMpKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkV4dGVuZGVkU1JHQjoK
KyAgICAgICAgcmV0dXJuIHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9y
KSwgbWFrZUZyb21Db21wb25lbnRzPEV4dGVuZGVkU1JHQkE8VD4+KGNvbXBvbmVudHMpKTsKKyAg
ICBjYXNlIENvbG9yU3BhY2U6OkhTTDoKKyAgICAgICAgcmV0dXJuIHN0ZDo6aW52b2tlKHN0ZDo6
Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgbWFrZUZyb21Db21wb25lbnRzPEhTTEE8VD4+KGNv
bXBvbmVudHMpKTsKKyAgICBjYXNlIENvbG9yU3BhY2U6OkhXQjoKKyAgICAgICAgcmV0dXJuIHN0
ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgbWFrZUZyb21Db21wb25l
bnRzPEhXQkE8VD4+KGNvbXBvbmVudHMpKTsKICAgICBjYXNlIENvbG9yU3BhY2U6OkxDSDoKICAg
ICAgICAgcmV0dXJuIHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwg
bWFrZUZyb21Db21wb25lbnRzPExDSEE8VD4+KGNvbXBvbmVudHMpKTsKICAgICBjYXNlIENvbG9y
U3BhY2U6OkxhYjoKQEAgLTExMCw2ICsxNDIsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpDb2xvclNwYWNlPiB7CiAgICAgICAgIFdlYkNvcmU6OkNvbG9yU3BhY2Us
CiAgICAgICAgIFdlYkNvcmU6OkNvbG9yU3BhY2U6OkE5OFJHQiwKICAgICAgICAgV2ViQ29yZTo6
Q29sb3JTcGFjZTo6RGlzcGxheVAzLAorICAgICAgICBXZWJDb3JlOjpDb2xvclNwYWNlOjpFeHRl
bmRlZEE5OFJHQiwKKyAgICAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZTo6RXh0ZW5kZWREaXNwbGF5
UDMsCisgICAgICAgIFdlYkNvcmU6OkNvbG9yU3BhY2U6OkV4dGVuZGVkTGluZWFyU1JHQiwKKyAg
ICAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZTo6RXh0ZW5kZWRQcm9QaG90b1JHQiwKKyAgICAgICAg
V2ViQ29yZTo6Q29sb3JTcGFjZTo6RXh0ZW5kZWRSZWMyMDIwLAorICAgICAgICBXZWJDb3JlOjpD
b2xvclNwYWNlOjpFeHRlbmRlZFNSR0IsCisgICAgICAgIFdlYkNvcmU6OkNvbG9yU3BhY2U6OkhT
TCwKKyAgICAgICAgV2ViQ29yZTo6Q29sb3JTcGFjZTo6SFdCLAogICAgICAgICBXZWJDb3JlOjpD
b2xvclNwYWNlOjpMQ0gsCiAgICAgICAgIFdlYkNvcmU6OkNvbG9yU3BhY2U6OkxhYiwKICAgICAg
ICAgV2ViQ29yZTo6Q29sb3JTcGFjZTo6TGluZWFyU1JHQiwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclR5cGVzLmgJKHJldmlzaW9uIDI4NzQ3NykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVHlwZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzE3LDcgKzMxNyw3IEBAIHN0cnVjdCBTUkdCQURlc2NyaXB0b3IgewogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gdXNpbmcgU1JHQkEgPSBCb3VuZGVkR2FtbWFFbmNvZGVkPFQsIFNSR0JB
RGVzY3JpcHRvcj47CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2luZyBMaW5lYXJTUkdCQSA9IEJv
dW5kZWRMaW5lYXJFbmNvZGVkPFQsIFNSR0JBRGVzY3JpcHRvcj47CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiB1c2luZyBFeHRlbmRlZFNSR0JBID0gRXh0ZW5kZWRHYW1tYUVuY29kZWQ8VCwgU1JHQkFE
ZXNjcmlwdG9yPjsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIExpbmVhckV4dGVuZGVkU1JH
QkEgPSBFeHRlbmRlZExpbmVhckVuY29kZWQ8VCwgU1JHQkFEZXNjcmlwdG9yPjsKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+IHVzaW5nIEV4dGVuZGVkTGluZWFyU1JHQkEgPSBFeHRlbmRlZExpbmVhckVu
Y29kZWQ8VCwgU1JHQkFEZXNjcmlwdG9yPjsKIAogCiBzdHJ1Y3QgQTk4UkdCRGVzY3JpcHRvciB7
CkBAIC0zMzksNiArMzM5LDggQEAgc3RydWN0IEE5OFJHQkRlc2NyaXB0b3IgewogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiB1c2luZyBBOThSR0IgPSBCb3VuZGVkR2FtbWFFbmNvZGVkPFQsIEE5OFJH
QkRlc2NyaXB0b3I+OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgTGluZWFyQTk4UkdCID0g
Qm91bmRlZExpbmVhckVuY29kZWQ8VCwgQTk4UkdCRGVzY3JpcHRvcj47Cit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiB1c2luZyBFeHRlbmRlZEE5OFJHQiA9IEV4dGVuZGVkR2FtbWFFbmNvZGVkPFQsIEE5
OFJHQkRlc2NyaXB0b3I+OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgRXh0ZW5kZWRMaW5l
YXJBOThSR0IgPSBFeHRlbmRlZExpbmVhckVuY29kZWQ8VCwgQTk4UkdCRGVzY3JpcHRvcj47CiAK
IAogc3RydWN0IERpc3BsYXlQM0Rlc2NyaXB0b3IgewpAQCAtMzYwLDYgKzM2Miw4IEBAIHN0cnVj
dCBEaXNwbGF5UDNEZXNjcmlwdG9yIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgRGlz
cGxheVAzID0gQm91bmRlZEdhbW1hRW5jb2RlZDxULCBEaXNwbGF5UDNEZXNjcmlwdG9yPjsKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIExpbmVhckRpc3BsYXlQMyA9IEJvdW5kZWRMaW5lYXJF
bmNvZGVkPFQsIERpc3BsYXlQM0Rlc2NyaXB0b3I+OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNp
bmcgRXh0ZW5kZWREaXNwbGF5UDMgPSBFeHRlbmRlZEdhbW1hRW5jb2RlZDxULCBEaXNwbGF5UDNE
ZXNjcmlwdG9yPjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIEV4dGVuZGVkTGluZWFyRGlz
cGxheVAzID0gRXh0ZW5kZWRMaW5lYXJFbmNvZGVkPFQsIERpc3BsYXlQM0Rlc2NyaXB0b3I+Owog
CiAKIHN0cnVjdCBQcm9QaG90b1JHQkRlc2NyaXB0b3IgewpAQCAtMzgxLDYgKzM4NSw4IEBAIHN0
cnVjdCBQcm9QaG90b1JHQkRlc2NyaXB0b3IgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB1c2lu
ZyBQcm9QaG90b1JHQiA9IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgUHJvUGhvdG9SR0JEZXNjcmlw
dG9yPjsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIExpbmVhclByb1Bob3RvUkdCID0gQm91
bmRlZExpbmVhckVuY29kZWQ8VCwgUHJvUGhvdG9SR0JEZXNjcmlwdG9yPjsKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+IHVzaW5nIEV4dGVuZGVkUHJvUGhvdG9SR0IgPSBFeHRlbmRlZEdhbW1hRW5jb2Rl
ZDxULCBQcm9QaG90b1JHQkRlc2NyaXB0b3I+OwordGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcg
RXh0ZW5kZWRMaW5lYXJQcm9QaG90b1JHQiA9IEV4dGVuZGVkTGluZWFyRW5jb2RlZDxULCBQcm9Q
aG90b1JHQkRlc2NyaXB0b3I+OwogCiAKIHN0cnVjdCBSZWMyMDIwRGVzY3JpcHRvciB7CkBAIC00
MDIsNiArNDA4LDggQEAgc3RydWN0IFJlYzIwMjBEZXNjcmlwdG9yIHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdXNpbmcgUmVjMjAyMCA9IEJvdW5kZWRHYW1tYUVuY29kZWQ8VCwgUmVjMjAyMERl
c2NyaXB0b3I+OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gdXNpbmcgTGluZWFyUmVjMjAyMCA9IEJv
dW5kZWRMaW5lYXJFbmNvZGVkPFQsIFJlYzIwMjBEZXNjcmlwdG9yPjsKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IHVzaW5nIEV4dGVuZGVkUmVjMjAyMCA9IEV4dGVuZGVkR2FtbWFFbmNvZGVkPFQsIFJl
YzIwMjBEZXNjcmlwdG9yPjsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHVzaW5nIEV4dGVuZGVkTGlu
ZWFyUmVjMjAyMCA9IEV4dGVuZGVkTGluZWFyRW5jb2RlZDxULCBSZWMyMDIwRGVzY3JpcHRvcj47
CiAKIAogLy8gTUFSSzogLSBMYWIgQ29sb3IgVHlwZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaAkocmV2aXNpb24gMjg3NDc3
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtNTQsMTIgKzU0LDE0IEBAIHRlbXBsYXRlPHR5cGVuYW1lIENvbG9y
VHlwZT4gQ29sb3JUeXBlIGNvbG9yV2l0aE92ZXJyaQogdGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JU
eXBlPiBjb25zdGV4cHIgQ29sb3JUeXBlIGludmVydGVkQ29sb3JXaXRoT3ZlcnJpZGRlbkFscGhh
KGNvbnN0IENvbG9yVHlwZSYsIHVpbnQ4X3Qgb3ZlcnJpZGVBbHBoYSk7CiB0ZW1wbGF0ZTx0eXBl
bmFtZSBDb2xvclR5cGU+IENvbG9yVHlwZSBpbnZlcnRlZENvbG9yV2l0aE92ZXJyaWRkZW5BbHBo
YShjb25zdCBDb2xvclR5cGUmLCBmbG9hdCBvdmVycmlkZUFscGhhKTsKIAotdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PFVzZXNMYWJNb2RlbDxD
b2xvclR5cGU+IHx8IFVzZXNMQ0hNb2RlbDxDb2xvclR5cGU+PiogPSBudWxscHRyPiBjb25zdGV4
cHIgYm9vbCBpc0JsYWNrKGNvbnN0IENvbG9yVHlwZSYpOwotdGVtcGxhdGU8dHlwZW5hbWUgQ29s
b3JUeXBlLCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PFVzZXNSR0JNb2RlbDxDb2xvclR5cGU+
PiogPSBudWxscHRyPiBjb25zdGV4cHIgYm9vbCBpc0JsYWNrKGNvbnN0IENvbG9yVHlwZSYpOwor
dGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PFVz
ZXNMYWJNb2RlbDxDb2xvclR5cGU+IHx8IFVzZXNMQ0hNb2RlbDxDb2xvclR5cGU+IHx8IFVzZXNI
U0xNb2RlbDxDb2xvclR5cGU+PiogPSBudWxscHRyPiBjb25zdGV4cHIgYm9vbCBpc0JsYWNrKGNv
bnN0IENvbG9yVHlwZSYpOwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZl90PFVzZXNSR0JNb2RlbDxDb2xvclR5cGU+IHx8IFVzZXNFeHRlbmRlZFJH
Qk1vZGVsPENvbG9yVHlwZT4+KiA9IG51bGxwdHI+IGNvbnN0ZXhwciBib29sIGlzQmxhY2soY29u
c3QgQ29sb3JUeXBlJik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIHN0
ZDo6ZW5hYmxlX2lmX3Q8VXNlc0hXQk1vZGVsPENvbG9yVHlwZT4+KiA9IG51bGxwdHI+IGNvbnN0
ZXhwciBib29sIGlzQmxhY2soY29uc3QgQ29sb3JUeXBlJik7CiB0ZW1wbGF0ZTxXaGl0ZVBvaW50
IFc+IGNvbnN0ZXhwciBib29sIGlzQmxhY2soY29uc3QgWFlaQTxmbG9hdCwgVz4mKTsKIAotdGVt
cGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PFVzZXNM
YWJNb2RlbDxDb2xvclR5cGU+IHx8IFVzZXNMQ0hNb2RlbDxDb2xvclR5cGU+PiogPSBudWxscHRy
PiBjb25zdGV4cHIgYm9vbCBpc1doaXRlKGNvbnN0IENvbG9yVHlwZSYpOwotdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PFVzZXNSR0JNb2RlbDxD
b2xvclR5cGU+PiogPSBudWxscHRyPiBjb25zdGV4cHIgYm9vbCBpc1doaXRlKGNvbnN0IENvbG9y
VHlwZSYpOwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBzdGQ6OmVuYWJs
ZV9pZl90PFVzZXNMYWJNb2RlbDxDb2xvclR5cGU+IHx8IFVzZXNMQ0hNb2RlbDxDb2xvclR5cGU+
IHx8IFVzZXNIU0xNb2RlbDxDb2xvclR5cGU+PiogPSBudWxscHRyPiBjb25zdGV4cHIgYm9vbCBp
c1doaXRlKGNvbnN0IENvbG9yVHlwZSYpOwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlLCB0
eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PFVzZXNSR0JNb2RlbDxDb2xvclR5cGU+IHx8IFVzZXNF
eHRlbmRlZFJHQk1vZGVsPENvbG9yVHlwZT4+KiA9IG51bGxwdHI+IGNvbnN0ZXhwciBib29sIGlz
V2hpdGUoY29uc3QgQ29sb3JUeXBlJik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGUsIHR5
cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8VXNlc0hXQk1vZGVsPENvbG9yVHlwZT4+KiA9IG51bGxw
dHI+IGNvbnN0ZXhwciBib29sIGlzV2hpdGUoY29uc3QgQ29sb3JUeXBlJik7CiB0ZW1wbGF0ZTxX
aGl0ZVBvaW50IFc+IGNvbnN0ZXhwciBib29sIGlzV2hpdGUoY29uc3QgWFlaQTxmbG9hdCwgVz4m
KTsKIAogY29uc3RleHByIHVpbnQxNl90IGZhc3RNdWx0aXBseUJ5MjU1KHVpbnQxNl90KTsKQEAg
LTE0OCwxMyArMTUwLDEzIEBAIHRlbXBsYXRlPFdoaXRlUG9pbnQgVz4gY29uc3RleHByIGJvb2wg
aXNCbGFjayhjb25zdCBYWQogICAgIHJldHVybiBjb2xvci55ID09IDAgJiYgY29sb3IuYWxwaGEg
PT0gQWxwaGFUcmFpdHM8ZmxvYXQ+OjpvcGFxdWU7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENv
bG9yVHlwZSwgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDxVc2VzTGFiTW9kZWw8Q29sb3JUeXBl
PiB8fCBVc2VzTENITW9kZWw8Q29sb3JUeXBlPj4qPgordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JU
eXBlLCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZl90PFVzZXNMYWJNb2RlbDxDb2xvclR5cGU+IHx8
IFVzZXNMQ0hNb2RlbDxDb2xvclR5cGU+IHx8IFVzZXNIU0xNb2RlbDxDb2xvclR5cGU+Pio+CiBj
b25zdGV4cHIgYm9vbCBpc0JsYWNrKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpCiB7CiAgICAgcmV0
dXJuIGNvbG9yLmxpZ2h0bmVzcyA9PSAwICYmIGNvbG9yLmFscGhhID09IEFscGhhVHJhaXRzPGZs
b2F0Pjo6b3BhcXVlOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGUsIHR5cGVuYW1l
IHN0ZDo6ZW5hYmxlX2lmX3Q8VXNlc1JHQk1vZGVsPENvbG9yVHlwZT4+Kj4KK3RlbXBsYXRlPHR5
cGVuYW1lIENvbG9yVHlwZSwgdHlwZW5hbWUgc3RkOjplbmFibGVfaWZfdDxVc2VzUkdCTW9kZWw8
Q29sb3JUeXBlPnx8IFVzZXNFeHRlbmRlZFJHQk1vZGVsPENvbG9yVHlwZT4+Kj4KIGNvbnN0ZXhw
ciBib29sIGlzQmxhY2soY29uc3QgQ29sb3JUeXBlJiBjb2xvcikKIHsKICAgICBhdXRvIFtjMSwg
YzIsIGMzLCBhbHBoYV0gPSBjb2xvcjsKQEAgLTE2MiwyMyArMTY0LDM1IEBAIGNvbnN0ZXhwciBi
b29sIGlzQmxhY2soY29uc3QgQ29sb3JUeXBlJiBjb2xvcikKICAgICByZXR1cm4gYzEgPT0gY29t
cG9uZW50SW5mb1swXS5taW4gJiYgYzIgPT0gY29tcG9uZW50SW5mb1sxXS5taW4gJiYgYzMgPT0g
Y29tcG9uZW50SW5mb1syXS5taW4gJiYgYWxwaGEgPT0gQWxwaGFUcmFpdHM8dHlwZW5hbWUgQ29s
b3JUeXBlOjpDb21wb25lbnRUeXBlPjo6b3BhcXVlOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBD
b2xvclR5cGUsIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8VXNlc0hXQk1vZGVsPENvbG9yVHlw
ZT4+Kj4KK2NvbnN0ZXhwciBib29sIGlzQmxhY2soY29uc3QgQ29sb3JUeXBlJiBjb2xvcikKK3sK
KyAgICByZXR1cm4gY29sb3IuYmxhY2tuZXNzID09IDEwMCAmJiBjb2xvci5hbHBoYSA9PSBBbHBo
YVRyYWl0czxmbG9hdD46Om9wYXF1ZTsKK30KKwogdGVtcGxhdGU8V2hpdGVQb2ludCBXPiBjb25z
dGV4cHIgYm9vbCBpc1doaXRlKGNvbnN0IFhZWkE8ZmxvYXQsIFc+JiBjb2xvcikKIHsKICAgICBy
ZXR1cm4gY29sb3IueSA9PSAxICYmIGNvbG9yLmFscGhhID09IEFscGhhVHJhaXRzPGZsb2F0Pjo6
b3BhcXVlOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIHN0ZDo6
ZW5hYmxlX2lmX3Q8VXNlc0xhYk1vZGVsPENvbG9yVHlwZT4gfHwgVXNlc0xDSE1vZGVsPENvbG9y
VHlwZT4+Kj4KK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZSwgdHlwZW5hbWUgc3RkOjplbmFi
bGVfaWZfdDxVc2VzTGFiTW9kZWw8Q29sb3JUeXBlPiB8fCBVc2VzTENITW9kZWw8Q29sb3JUeXBl
PiB8fCBVc2VzSFNMTW9kZWw8Q29sb3JUeXBlPj4qPgogY29uc3RleHByIGJvb2wgaXNXaGl0ZShj
b25zdCBDb2xvclR5cGUmIGNvbG9yKQogewogICAgIHJldHVybiBjb2xvci5saWdodG5lc3MgPT0g
MTAwICYmIGNvbG9yLmFscGhhID09IEFscGhhVHJhaXRzPGZsb2F0Pjo6b3BhcXVlOwogfQogCi10
ZW1wbGF0ZTx0eXBlbmFtZSBDb2xvclR5cGUsIHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmX3Q8VXNl
c1JHQk1vZGVsPENvbG9yVHlwZT4+Kj4KK3RlbXBsYXRlPHR5cGVuYW1lIENvbG9yVHlwZSwgdHlw
ZW5hbWUgc3RkOjplbmFibGVfaWZfdDxVc2VzUkdCTW9kZWw8Q29sb3JUeXBlPiB8fCBVc2VzRXh0
ZW5kZWRSR0JNb2RlbDxDb2xvclR5cGU+Pio+CiBjb25zdGV4cHIgYm9vbCBpc1doaXRlKGNvbnN0
IENvbG9yVHlwZSYgY29sb3IpCiB7CiAgICAgYXV0byBbYzEsIGMyLCBjMywgYWxwaGFdID0gY29s
b3I7CiAgICAgY29uc3RleHByIGF1dG8gY29tcG9uZW50SW5mbyA9IENvbG9yVHlwZTo6TW9kZWw6
OmNvbXBvbmVudEluZm87CiAgICAgcmV0dXJuIGMxID09IGNvbXBvbmVudEluZm9bMF0ubWF4ICYm
IGMyID09IGNvbXBvbmVudEluZm9bMV0ubWF4ICYmIGMzID09IGNvbXBvbmVudEluZm9bMl0ubWF4
ICYmIGFscGhhID09IEFscGhhVHJhaXRzPHR5cGVuYW1lIENvbG9yVHlwZTo6Q29tcG9uZW50VHlw
ZT46Om9wYXF1ZTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgQ29sb3JUeXBlLCB0eXBlbmFtZSBz
dGQ6OmVuYWJsZV9pZl90PFVzZXNIV0JNb2RlbDxDb2xvclR5cGU+Pio+Citjb25zdGV4cHIgYm9v
bCBpc1doaXRlKGNvbnN0IENvbG9yVHlwZSYgY29sb3IpCit7CisgICAgcmV0dXJuIGNvbG9yLndo
aXRlbmVzcyA9PSAxMDAgJiYgY29sb3IuYWxwaGEgPT0gQWxwaGFUcmFpdHM8ZmxvYXQ+OjpvcGFx
dWU7CiB9CiAKIGNvbnN0ZXhwciB1aW50MTZfdCBmYXN0TXVsdGlwbHlCeTI1NSh1aW50MTZfdCB2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3Bh
Y2VDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvQ29sb3JTcGFjZUNHLmNwcAkocmV2aXNpb24gMjg3NDc3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDYsNiArNDYsMTkgQEAgdGVtcGxhdGU8Y29uc3QgQ0ZTdHJpbmdSZWYmIGNvbG9yU3BhY2VOYW1l
R2xvYmFsQ29uc3RhCiAgICAgcmV0dXJuIGNvbG9yU3BhY2UuZ2V0KCkuZ2V0KCk7CiB9CiAKKyNp
ZiBIQVZFKENPUkVfR1JBUEhJQ1NfQ1JFQVRFX0VYVEVOREVEX0NPTE9SX1NQQUNFKQordGVtcGxh
dGU8Y29uc3QgQ0ZTdHJpbmdSZWYmIGNvbG9yU3BhY2VOYW1lR2xvYmFsQ29uc3RhbnQ+IHN0YXRp
YyBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWROYW1lZENvbG9yU3BhY2UoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPj4gY29sb3JTcGFjZTsK
KyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uo
b25jZUZsYWcsIFtdIHsKKyAgICAgICAgY29sb3JTcGFjZS5nZXQoKSA9IGFkb3B0Q0YoQ0dDb2xv
clNwYWNlQ3JlYXRlRXh0ZW5kZWQobmFtZWRDb2xvclNwYWNlPGNvbG9yU3BhY2VOYW1lR2xvYmFs
Q29uc3RhbnQ+KCkpKTsKKyAgICAgICAgQVNTRVJUKGNvbG9yU3BhY2UuZ2V0KCkpOworICAgIH0p
OworICAgIHJldHVybiBjb2xvclNwYWNlLmdldCgpLmdldCgpOworfQorI2VuZGlmCisKIENHQ29s
b3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpCiB7CiAgICAgcmV0dXJuIG5hbWVkQ29sb3JT
cGFjZTxrQ0dDb2xvclNwYWNlU1JHQj4oKTsKQEAgLTY1LDYgKzc4LDQxIEBAIENHQ29sb3JTcGFj
ZVJlZiBkaXNwbGF5UDNDb2xvclNwYWNlUmVmKCkKIH0KICNlbmRpZgogCisjaWYgSEFWRShDT1JF
X0dSQVBISUNTX0VYVEVOREVEX0FET0JFX1JHQl8xOTk4X0NPTE9SX1NQQUNFKQorQ0dDb2xvclNw
YWNlUmVmIGV4dGVuZGVkQWRvYmVSR0IxOTk4Q29sb3JTcGFjZVJlZigpCit7CisgICAgcmV0dXJu
IGV4dGVuZGVkTmFtZWRDb2xvclNwYWNlPGtDR0NvbG9yU3BhY2VBZG9iZVJHQjE5OTg+KCk7Cit9
CisjZW5kaWYKKworI2lmIEhBVkUoQ09SRV9HUkFQSElDU19FWFRFTkRFRF9ESVNQTEFZX1AzX0NP
TE9SX1NQQUNFKQorQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkRGlzcGxheVAzQ29sb3JTcGFjZVJl
ZigpCit7CisgICAgcmV0dXJuIG5hbWVkQ29sb3JTcGFjZTxrQ0dDb2xvclNwYWNlRXh0ZW5kZWRE
aXNwbGF5UDM+KCk7Cit9CisjZW5kaWYKKworI2lmIEhBVkUoQ09SRV9HUkFQSElDU19FWFRFTkRF
RF9JVFVSXzIwMjBfQ09MT1JfU1BBQ0UpCitDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRJVFVSXzIw
MjBDb2xvclNwYWNlUmVmKCkKK3sKKyAgICByZXR1cm4gbmFtZWRDb2xvclNwYWNlPGtDR0NvbG9y
U3BhY2VFeHRlbmRlZElUVVJfMjAyMD4oKTsKK30KKyNlbmRpZgorCisjaWYgSEFWRShDT1JFX0dS
QVBISUNTX0VYVEVOREVEX0xJTkVBUl9TUkdCX0NPTE9SX1NQQUNFKQorQ0dDb2xvclNwYWNlUmVm
IGV4dGVuZGVkTGluZWFyU1JHQkNvbG9yU3BhY2VSZWYoKQoreworICAgIHJldHVybiBuYW1lZENv
bG9yU3BhY2U8a0NHQ29sb3JTcGFjZUV4dGVuZGVkTGluZWFyU1JHQj4oKTsKK30KKyNlbmRpZgor
CisjaWYgSEFWRShDT1JFX0dSQVBISUNTX0VYVEVOREVEX1JPTU1SR0JfQ09MT1JfU1BBQ0UpCitD
R0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRST01NUkdCQ29sb3JTcGFjZVJlZigpCit7CisgICAgcmV0
dXJuIGV4dGVuZGVkTmFtZWRDb2xvclNwYWNlPGtDR0NvbG9yU3BhY2VST01NUkdCPigpOworfQor
I2VuZGlmCisKICNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfRVhURU5ERURfU1JHQl9DT0xPUl9TUEFD
RSkKIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNwYWNlUmVmKCkKIHsKQEAgLTc5
LDE0ICsxMjcsNiBAQCBDR0NvbG9yU3BhY2VSZWYgSVRVUl8yMDIwQ29sb3JTcGFjZVJlZigpCiB9
CiAjZW5kaWYKIAotI2lmIEhBVkUoQ09SRV9HUkFQSElDU19MQUJfQ09MT1JfU1BBQ0UpCi1DR0Nv
bG9yU3BhY2VSZWYgbGFiQ29sb3JTcGFjZVJlZigpCi17Ci0gICAgLy8gRklYTUU6IEFkZCBzdXBw
b3J0IGZvciBjb252ZXJzaW9uIHRvIExhYiBvbiBzdXBwb3J0ZWQgcGxhdGZvcm1zLgotICAgIHJl
dHVybiBudWxscHRyOwotfQotI2VuZGlmCi0KICNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfTElORUFS
X1NSR0JfQ09MT1JfU1BBQ0UpCiBDR0NvbG9yU3BhY2VSZWYgbGluZWFyU1JHQkNvbG9yU3BhY2VS
ZWYoKQogewpAQCAtMTA3LDE4ICsxNDcsMjIgQEAgQ0dDb2xvclNwYWNlUmVmIHh5ekQ1MENvbG9y
U3BhY2VSZWYoKQogICAgIHJldHVybiBuYW1lZENvbG9yU3BhY2U8a0NHQ29sb3JTcGFjZUdlbmVy
aWNYWVo+KCk7CiB9CiAKLS8vIEZJWE1FOiBGaWd1cmUgb3V0IGhvdyB0byBjcmVhdGUgYSBDb3Jl
R3JhcGhpY3MgWFlaLUQ2NSBjb2xvciBzcGFjZSBhbmQgYWRkIGEgeHl6RDY1Q29sb3JTcGFjZVJl
ZigpLgorLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIGNyZWF0ZSBhIENvcmVHcmFwaGljcyBY
WVotRDY1IGNvbG9yIHNwYWNlIGFuZCBhZGQgYSB4eXpENjVDb2xvclNwYWNlUmVmKCkuIFBlcmhh
cHMgQ0dDb2xvclNwYWNlQ3JlYXRlQ2FsaWJyYXRlZFJHQigpIHdpdGggaWRlbnRpZnkgYmxhY2sg
cG9pbnQsIEQ2NSB3aGl0ZSBwb2ludCwgYW5kIGlkZW50aXR5IG1hdHJpeC4KIAogI2VuZGlmCiAK
IHN0ZDo6b3B0aW9uYWw8Q29sb3JTcGFjZT4gY29sb3JTcGFjZUZvckNHQ29sb3JTcGFjZShDR0Nv
bG9yU3BhY2VSZWYgY29sb3JTcGFjZSkKIHsKKyAgICAvLyBGaXJzdCB0ZXN0IGZvciB0aGUgZm91
ciBtb3N0IGNvbW1vbiBzcGFjZXMsIHNSR0IsIEV4dGVuZGVkIHNSR0IsIERpc3BsYXlQMyBhbmQg
TGluZWFyIHNSR0IsIGFuZCB0aGVuIHRlc3QKKyAgICAvLyB0aGUgcmVzZXQgaW4gYWxwaGFiZXRp
Y2FsIG9yZGVyLgorICAgIC8vIEZJWE1FOiBDb25zaWRlciB1c2luZyBhIEhhc2hNYXAgKHdpdGgg
Q0ZIYXNoIGJhc2VkIGtleXMpIHJhdGhlciB0aGFuIHRoZSBsaW5lYXIgc2V0IG9mIHRlc3RzLgor
CiAgICAgaWYgKENHQ29sb3JTcGFjZUVxdWFsVG9Db2xvclNwYWNlKGNvbG9yU3BhY2UsIHNSR0JD
b2xvclNwYWNlUmVmKCkpKQogICAgICAgICByZXR1cm4gQ29sb3JTcGFjZTo6U1JHQjsKIAotI2lm
IEhBVkUoQ09SRV9HUkFQSElDU19BRE9CRV9SR0JfMTk5OF9DT0xPUl9TUEFDRSkKLSAgICBpZiAo
Q0dDb2xvclNwYWNlRXF1YWxUb0NvbG9yU3BhY2UoY29sb3JTcGFjZSwgYWRvYmVSR0IxOTk4Q29s
b3JTcGFjZVJlZigpKSkKLSAgICAgICAgcmV0dXJuIENvbG9yU3BhY2U6OkE5OFJHQjsKKyNpZiBI
QVZFKENPUkVfR1JBUEhJQ1NfRVhURU5ERURfU1JHQl9DT0xPUl9TUEFDRSkKKyAgICBpZiAoQ0dD
b2xvclNwYWNlRXF1YWxUb0NvbG9yU3BhY2UoY29sb3JTcGFjZSwgZXh0ZW5kZWRTUkdCQ29sb3JT
cGFjZVJlZigpKSkKKyAgICAgICAgcmV0dXJuIENvbG9yU3BhY2U6OkV4dGVuZGVkU1JHQjsKICNl
bmRpZgogCiAjaWYgSEFWRShDT1JFX0dSQVBISUNTX0RJU1BMQVlfUDNfQ09MT1JfU1BBQ0UpCkBA
IC0xMzEsMjIgKzE3NSw1MyBAQCBzdGQ6Om9wdGlvbmFsPENvbG9yU3BhY2U+IGNvbG9yU3BhY2VG
b3JDR0NvbG9yU3BhY2UoQ0cKICAgICAgICAgcmV0dXJuIENvbG9yU3BhY2U6OkxpbmVhclNSR0I7
CiAjZW5kaWYKIAotI2lmIEhBVkUoQ09SRV9HUkFQSElDU19ST01NUkdCX0NPTE9SX1NQQUNFKQot
ICAgIGlmIChDR0NvbG9yU3BhY2VFcXVhbFRvQ29sb3JTcGFjZShjb2xvclNwYWNlLCBST01NUkdC
Q29sb3JTcGFjZVJlZigpKSkKLSAgICAgICAgcmV0dXJuIENvbG9yU3BhY2U6OlByb1Bob3RvUkdC
OworCisjaWYgSEFWRShDT1JFX0dSQVBISUNTX0FET0JFX1JHQl8xOTk4X0NPTE9SX1NQQUNFKQor
ICAgIGlmIChDR0NvbG9yU3BhY2VFcXVhbFRvQ29sb3JTcGFjZShjb2xvclNwYWNlLCBhZG9iZVJH
QjE5OThDb2xvclNwYWNlUmVmKCkpKQorICAgICAgICByZXR1cm4gQ29sb3JTcGFjZTo6QTk4UkdC
OwogI2VuZGlmCiAKKyNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfRVhURU5ERURfQURPQkVfUkdCXzE5
OThfQ09MT1JfU1BBQ0UpCisgICAgaWYgKENHQ29sb3JTcGFjZUVxdWFsVG9Db2xvclNwYWNlKGNv
bG9yU3BhY2UsIGV4dGVuZGVkQWRvYmVSR0IxOTk4Q29sb3JTcGFjZVJlZigpKSkKKyAgICAgICAg
cmV0dXJuIENvbG9yU3BhY2U6OkV4dGVuZGVkQTk4UkdCOworI2VuZGlmCisKKyNpZiBIQVZFKENP
UkVfR1JBUEhJQ1NfRVhURU5ERURfRElTUExBWV9QM19DT0xPUl9TUEFDRSkKKyAgICBpZiAoQ0dD
b2xvclNwYWNlRXF1YWxUb0NvbG9yU3BhY2UoY29sb3JTcGFjZSwgZXh0ZW5kZWREaXNwbGF5UDND
b2xvclNwYWNlUmVmKCkpKQorICAgICAgICByZXR1cm4gQ29sb3JTcGFjZTo6RXh0ZW5kZWREaXNw
bGF5UDM7CisjZW5kaWYKKworI2lmIEhBVkUoQ09SRV9HUkFQSElDU19FWFRFTkRFRF9MSU5FQVJf
U1JHQl9DT0xPUl9TUEFDRSkKKyAgICBpZiAoQ0dDb2xvclNwYWNlRXF1YWxUb0NvbG9yU3BhY2Uo
Y29sb3JTcGFjZSwgZXh0ZW5kZWRMaW5lYXJTUkdCQ29sb3JTcGFjZVJlZigpKSkKKyAgICAgICAg
cmV0dXJuIENvbG9yU3BhY2U6OkV4dGVuZGVkTGluZWFyU1JHQjsKKyNlbmRpZgorCisjaWYgSEFW
RShDT1JFX0dSQVBISUNTX0VYVEVOREVEX0lUVVJfMjAyMF9DT0xPUl9TUEFDRSkKKyAgICBpZiAo
Q0dDb2xvclNwYWNlRXF1YWxUb0NvbG9yU3BhY2UoY29sb3JTcGFjZSwgZXh0ZW5kZWRJVFVSXzIw
MjBDb2xvclNwYWNlUmVmKCkpKQorICAgICAgICByZXR1cm4gQ29sb3JTcGFjZTo6RXh0ZW5kZWRS
ZWMyMDIwOworI2VuZGlmCisKKyNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfRVhURU5ERURfUk9NTVJH
Ql9DT0xPUl9TUEFDRSkKKyAgICBpZiAoQ0dDb2xvclNwYWNlRXF1YWxUb0NvbG9yU3BhY2UoY29s
b3JTcGFjZSwgZXh0ZW5kZWRST01NUkdCQ29sb3JTcGFjZVJlZigpKSkKKyAgICAgICAgcmV0dXJu
IENvbG9yU3BhY2U6OkV4dGVuZGVkUHJvUGhvdG9SR0I7CisjZW5kaWYKKwogI2lmIEhBVkUoQ09S
RV9HUkFQSElDU19JVFVSXzIwMjBfQ09MT1JfU1BBQ0UpCiAgICAgaWYgKENHQ29sb3JTcGFjZUVx
dWFsVG9Db2xvclNwYWNlKGNvbG9yU3BhY2UsIElUVVJfMjAyMENvbG9yU3BhY2VSZWYoKSkpCiAg
ICAgICAgIHJldHVybiBDb2xvclNwYWNlOjpSZWMyMDIwOwogI2VuZGlmCiAKKyNpZiBIQVZFKENP
UkVfR1JBUEhJQ1NfUk9NTVJHQl9DT0xPUl9TUEFDRSkKKyAgICBpZiAoQ0dDb2xvclNwYWNlRXF1
YWxUb0NvbG9yU3BhY2UoY29sb3JTcGFjZSwgUk9NTVJHQkNvbG9yU3BhY2VSZWYoKSkpCisgICAg
ICAgIHJldHVybiBDb2xvclNwYWNlOjpQcm9QaG90b1JHQjsKKyNlbmRpZgorCiAjaWYgSEFWRShD
T1JFX0dSQVBISUNTX1hZWl9DT0xPUl9TUEFDRSkKICAgICBpZiAoQ0dDb2xvclNwYWNlRXF1YWxU
b0NvbG9yU3BhY2UoY29sb3JTcGFjZSwgeHl6RDUwQ29sb3JTcGFjZVJlZigpKSkKICAgICAgICAg
cmV0dXJuIENvbG9yU3BhY2U6OlhZWl9ENTA7CiAjZW5kaWYKIAotICAgIC8vIEZJWE1FOiBBZGQg
c3VwcG9ydCBmb3IgQ29sb3JTcGFjZTo6TGFiIENvbG9yU3BhY2U6OlhZWl9ENjUgdG8gc3VwcG9y
dCBtb3JlIGRpcmVjdCBjb252ZXJzaW9ucy4KKyAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9y
IHJlbWFpbmluZyBjb2xvciBzcGFjZXMgdG8gc3VwcG9ydCBtb3JlIGRpcmVjdCBjb252ZXJzaW9u
cy4KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuaAkocmV2aXNpb24gMjg3
NDc3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNH
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDI2IEBAIFdFQkNPUkVfRVhQT1JUIENHQ29s
b3JTcGFjZVJlZiBhZG9iZVJHQjE5OThDb2xvclNwYWNlUgogV0VCQ09SRV9FWFBPUlQgQ0dDb2xv
clNwYWNlUmVmIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKICNlbmRpZgogCisjaWYgSEFWRShD
T1JFX0dSQVBISUNTX0VYVEVOREVEX0FET0JFX1JHQl8xOTk4X0NPTE9SX1NQQUNFKQorV0VCQ09S
RV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkQWRvYmVSR0IxOTk4Q29sb3JTcGFjZVJl
ZigpOworI2VuZGlmCisKKyNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfRVhURU5ERURfRElTUExBWV9Q
M19DT0xPUl9TUEFDRSkKK1dFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZERp
c3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKKyNlbmRpZgorCisjaWYgSEFWRShDT1JFX0dSQVBISUNT
X0VYVEVOREVEX0lUVVJfMjAyMF9DT0xPUl9TUEFDRSkKK1dFQkNPUkVfRVhQT1JUIENHQ29sb3JT
cGFjZVJlZiBleHRlbmRlZElUVVJfMjAyMENvbG9yU3BhY2VSZWYoKTsKKyNlbmRpZgorCisjaWYg
SEFWRShDT1JFX0dSQVBISUNTX0VYVEVOREVEX0xJTkVBUl9TUkdCX0NPTE9SX1NQQUNFKQorV0VC
Q09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIGV4dGVuZGVkTGluZWFyU1JHQkNvbG9yU3BhY2VS
ZWYoKTsKKyNlbmRpZgorCisjaWYgSEFWRShDT1JFX0dSQVBISUNTX0VYVEVOREVEX1JPTU1SR0Jf
Q09MT1JfU1BBQ0UpCitXRUJDT1JFX0VYUE9SVCBDR0NvbG9yU3BhY2VSZWYgZXh0ZW5kZWRST01N
UkdCQ29sb3JTcGFjZVJlZigpOworI2VuZGlmCisKICNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfRVhU
RU5ERURfU1JHQl9DT0xPUl9TUEFDRSkKIFdFQkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBl
eHRlbmRlZFNSR0JDb2xvclNwYWNlUmVmKCk7CiAjZW5kaWYKQEAgLTUyLDEwICs3Miw2IEBAIFdF
QkNPUkVfRVhQT1JUIENHQ29sb3JTcGFjZVJlZiBleHRlbmRlZFNSR0JDb2xvclNwYWNlUgogV0VC
Q09SRV9FWFBPUlQgQ0dDb2xvclNwYWNlUmVmIElUVVJfMjAyMENvbG9yU3BhY2VSZWYoKTsKICNl
bmRpZgogCi0jaWYgSEFWRShDT1JFX0dSQVBISUNTX0xBQl9DT0xPUl9TUEFDRSkKLVdFQkNPUkVf
RVhQT1JUIENHQ29sb3JTcGFjZVJlZiBsYWJDb2xvclNwYWNlUmVmKCk7Ci0jZW5kaWYKLQogI2lm
IEhBVkUoQ09SRV9HUkFQSElDU19MSU5FQVJfU1JHQl9DT0xPUl9TUEFDRSkKIFdFQkNPUkVfRVhQ
T1JUIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJTUkdCQ29sb3JTcGFjZVJlZigpOwogI2VuZGlmCkBA
IC03Myw0NCArODksODYgQEAgc3RkOjpvcHRpb25hbDxDb2xvclNwYWNlPiBjb2xvclNwYWNlRm9y
Q0dDb2xvclNwYWNlKENHCiBzdGF0aWMgaW5saW5lIENHQ29sb3JTcGFjZVJlZiBjYWNoZWROdWxs
YWJsZUNHQ29sb3JTcGFjZShDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgc3dpdGNoIChj
b2xvclNwYWNlKSB7CisgICAgY2FzZSBDb2xvclNwYWNlOjpTUkdCOgorICAgICAgICByZXR1cm4g
c1JHQkNvbG9yU3BhY2VSZWYoKTsKKwogICAgIGNhc2UgQ29sb3JTcGFjZTo6QTk4UkdCOgogI2lm
IEhBVkUoQ09SRV9HUkFQSElDU19BRE9CRV9SR0JfMTk5OF9DT0xPUl9TUEFDRSkKICAgICAgICAg
cmV0dXJuIGFkb2JlUkdCMTk5OENvbG9yU3BhY2VSZWYoKTsKICNlbHNlCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogI2VuZGlmCisKICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKICNp
ZiBIQVZFKENPUkVfR1JBUEhJQ1NfRElTUExBWV9QM19DT0xPUl9TUEFDRSkKICAgICAgICAgcmV0
dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKICNlbHNlCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogI2VuZGlmCi0gICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6Ci0jaWYgSEFWRShDT1JFX0dS
QVBISUNTX0xBQl9DT0xPUl9TUEFDRSkKLSAgICAgICAgcmV0dXJuIGxhYkNvbG9yU3BhY2VSZWYo
KTsKKworICAgIGNhc2UgQ29sb3JTcGFjZTo6RXh0ZW5kZWRBOThSR0I6CisjaWYgSEFWRShDT1JF
X0dSQVBISUNTX0VYVEVOREVEX0FET0JFX1JHQl8xOTk4X0NPTE9SX1NQQUNFKQorICAgICAgICBy
ZXR1cm4gZXh0ZW5kZWRBZG9iZVJHQjE5OThDb2xvclNwYWNlUmVmKCk7CiAjZWxzZQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgorCisgICAgY2FzZSBDb2xvclNwYWNlOjpFeHRlbmRl
ZERpc3BsYXlQMzoKKyNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfRVhURU5ERURfRElTUExBWV9QM19D
T0xPUl9TUEFDRSkKKyAgICAgICAgcmV0dXJuIGV4dGVuZGVkRGlzcGxheVAzQ29sb3JTcGFjZVJl
ZigpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKworICAgIGNhc2Ug
Q29sb3JTcGFjZTo6RXh0ZW5kZWRMaW5lYXJTUkdCOgorI2lmIEhBVkUoQ09SRV9HUkFQSElDU19F
WFRFTkRFRF9MSU5FQVJfU1JHQl9DT0xPUl9TUEFDRSkKKyAgICAgICAgcmV0dXJuIGV4dGVuZGVk
TGluZWFyU1JHQkNvbG9yU3BhY2VSZWYoKTsKKyNlbHNlCisgICAgICAgIHJldHVybiBudWxscHRy
OworI2VuZGlmCisKKyAgICBjYXNlIENvbG9yU3BhY2U6OkV4dGVuZGVkUHJvUGhvdG9SR0I6Cisj
aWYgSEFWRShDT1JFX0dSQVBISUNTX0VYVEVOREVEX1JPTU1SR0JfQ09MT1JfU1BBQ0UpCisgICAg
ICAgIHJldHVybiBleHRlbmRlZFJPTU1SR0JDb2xvclNwYWNlUmVmKCk7CisjZWxzZQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorCisgICAgY2FzZSBDb2xvclNwYWNlOjpFeHRlbmRl
ZFJlYzIwMjA6CisjaWYgSEFWRShDT1JFX0dSQVBISUNTX0VYVEVOREVEX0lUVVJfMjAyMF9DT0xP
Ul9TUEFDRSkKKyAgICAgICAgcmV0dXJuIGV4dGVuZGVkSVRVUl8yMDIwQ29sb3JTcGFjZVJlZigp
OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKworICAgIGNhc2UgQ29s
b3JTcGFjZTo6RXh0ZW5kZWRTUkdCOgorI2lmIEhBVkUoQ09SRV9HUkFQSElDU19FWFRFTkRFRF9T
UkdCX0NPTE9SX1NQQUNFKQorICAgICAgICByZXR1cm4gZXh0ZW5kZWRTUkdCQ29sb3JTcGFjZVJl
ZigpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKKwogICAgIGNhc2Ug
Q29sb3JTcGFjZTo6TGluZWFyU1JHQjoKICNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfTElORUFSX1NS
R0JfQ09MT1JfU1BBQ0UpCiAgICAgICAgIHJldHVybiBsaW5lYXJTUkdCQ29sb3JTcGFjZVJlZigp
OwogI2Vsc2UKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKKwogICAgIGNhc2UgQ29s
b3JTcGFjZTo6UHJvUGhvdG9SR0I6CiAjaWYgSEFWRShDT1JFX0dSQVBISUNTX1JPTU1SR0JfQ09M
T1JfU1BBQ0UpCiAgICAgICAgIHJldHVybiBST01NUkdCQ29sb3JTcGFjZVJlZigpOwogI2Vsc2UK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKKwogICAgIGNhc2UgQ29sb3JTcGFjZTo6
UmVjMjAyMDoKICNpZiBIQVZFKENPUkVfR1JBUEhJQ1NfSVRVUl8yMDIwX0NPTE9SX1NQQUNFKQog
ICAgICAgICByZXR1cm4gSVRVUl8yMDIwQ29sb3JTcGFjZVJlZigpOwogI2Vsc2UKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKLSAgICBjYXNlIENvbG9yU3BhY2U6OlNSR0I6Ci0gICAg
ICAgIHJldHVybiBzUkdCQ29sb3JTcGFjZVJlZigpOworCiAgICAgY2FzZSBDb2xvclNwYWNlOjpY
WVpfRDUwOgogI2lmIEhBVkUoQ09SRV9HUkFQSElDU19YWVpfQ09MT1JfU1BBQ0UpCiAgICAgICAg
IHJldHVybiB4eXpENTBDb2xvclNwYWNlUmVmKCk7CkBAIC0xMTgsOCArMTc2LDExIEBAIHN0YXRp
YyBpbmxpbmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZE51bGxhYmxlQ0dDb2xvclNwYQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogCi0gICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZv
ciB0aGVzZSBvbmNlIENvcmVHcmFwaGljcyBzdXBwb3J0cyBpdC4KKyAgICAvLyBGSVhNRTogQWRk
IHN1cHBvcnQgZm9yIHRoZXNlIG9uY2UvaWYgQ29yZUdyYXBoaWNzIGFkZHMgc3VwcG9ydCBmb3Ig
aXQuCisgICAgY2FzZSBDb2xvclNwYWNlOjpIU0w6CisgICAgY2FzZSBDb2xvclNwYWNlOjpIV0I6
CiAgICAgY2FzZSBDb2xvclNwYWNlOjpMQ0g6CisgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CiAg
ICAgY2FzZSBDb2xvclNwYWNlOjpPS0xDSDoKICAgICBjYXNlIENvbG9yU3BhY2U6Ok9LTGFiOgog
ICAgIGNhc2UgQ29sb3JTcGFjZTo6WFlaX0Q2NToK
</data>

          </attachment>
      

    </bug>

</bugzilla>