<?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>225237</bug_id>
          
          <creation_ts>2021-04-30 10:33:05 -0700</creation_ts>
          <short_desc>Make destination color space enumeration match supported destination color spaces for the port</short_desc>
          <delta_ts>2021-05-01 11:07:15 -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>Platform</component>
          <version>Other</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>225140</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>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1755742</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-04-30 10:33:05 -0700</bug_when>
    <thetext>Currently, the destination color space enumeration doesn&apos;t match the supported destination color spaces for the port it is compiling on at least in the one case of CoreGraphics + Windows which does not support linear-srgb. We should be constrain the types to the supported set to make it clear what is happening at all call sites and prepare for world with more predefined destination color spaces that is coming soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755744</commentid>
    <comment_count>1</comment_count>
      <attachid>427434</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-04-30 10:39:20 -0700</bug_when>
    <thetext>Created attachment 427434
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755894</commentid>
    <comment_count>2</comment_count>
      <attachid>427478</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-04-30 18:23:37 -0700</bug_when>
    <thetext>Created attachment 427478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755970</commentid>
    <comment_count>3</comment_count>
      <attachid>427478</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-01 10:29:16 -0700</bug_when>
    <thetext>Comment on attachment 427478
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        the Apple Windows port. Now, the callers are responisble for dealing with a

responisble</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755977</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-01 11:06:16 -0700</bug_when>
    <thetext>Committed r276875 (237221@main): &lt;https://commits.webkit.org/237221@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427478.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755978</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-01 11:07:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/77419870&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427434</attachid>
            <date>2021-04-30 10:39:20 -0700</date>
            <delta_ts>2021-04-30 18:23:32 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>destination.diff</filename>
            <type>text/plain</type>
            <size>20035</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNl
L1dURi93dGYvUGxhdGZvcm1FbmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDYgKzI0NSwx
NCBAQAogI2RlZmluZSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIDAKICNlbmRpZgogCisjaWYg
IWRlZmluZWQoRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0RJU1BMQVlfUDMpCisjZGVm
aW5lIEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzIDAKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdC
KQorI2RlZmluZSBFTkFCTEVfREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IgMQor
I2VuZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFKQogI2RlZmlu
ZSBFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFIDEKICNlbmRpZgpAQCAtODE2LDYgKzgyNCwxNCBA
QAogI2RlZmluZSBFTkFCTEVfR0NfVkFMSURBVElPTiAxCiAjZW5kaWYKIAorI2lmIE9TKERBUldJ
TikgJiYgRU5BQkxFKEpJVCkgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgQ1BVKEFSTTY0
RSkgJiYgSEFWRShKSVRfQ0FHRSkKKyNkZWZpbmUgRU5BQkxFX0pJVF9DQUdFIDEKKyNlbmRpZgor
CisjaWYgT1MoREFSV0lOKSAmJiBDUFUoQUREUkVTUzY0KSAmJiBFTkFCTEUoSklUKSAmJiAoRU5B
QkxFKEpJVF9DQUdFKSB8fCBBU1NFUlRfRU5BQkxFRCkKKyNkZWZpbmUgRU5BQkxFX0pJVF9PUEVS
QVRJT05fVkFMSURBVElPTiAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9CSU5ESU5H
X0lOVEVHUklUWSkgJiYgIU9TKFdJTkRPV1MpCiAjZGVmaW5lIEVOQUJMRV9CSU5ESU5HX0lOVEVH
UklUWSAxCiAjZW5kaWYKQEAgLTg4NywxMCArOTAzLDE0IEBACiAjZXJyb3IgIkVOQUJMRShXSExT
TF9DT01QSUxFUikgcmVxdWlyZXMgRU5BQkxFKFdFQkdQVSkiCiAjZW5kaWYKIAotI2lmIE9TKERB
UldJTikgJiYgRU5BQkxFKEpJVCkgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgQ1BVKEFS
TTY0RSkgJiYgSEFWRShKSVRfQ0FHRSkKLSNkZWZpbmUgRU5BQkxFX0pJVF9DQUdFIDEKKyNpZiBV
U0UoQ0cpCisKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykg
JiYgIUhBVkUoQ09SRV9HUkFQSElDU19ESVNQTEFZX1AzX0NPTE9SX1NQQUNFKQorI2Vycm9yICJF
TkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykgcmVxdWlyZXMgSEFWRShD
T1JFX0dSQVBISUNTX0RJU1BMQVlfUDNfQ09MT1JfU1BBQ0UpIG9uIHBsYXRmb3JtcyB1c2luZyBD
b3JlR3JhcGhpY3MiCisjZW5kaWYKKworI2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFD
RV9MSU5FQVJfU1JHQikgJiYgIUhBVkUoQ09SRV9HUkFQSElDU19MSU5FQVJfU1JHQl9DT0xPUl9T
UEFDRSkKKyNlcnJvciAiRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdC
KSByZXF1aXJlcyBIQVZFKENPUkVfR1JBUEhJQ1NfTElORUFSX1NSR0JfQ09MT1JfU1BBQ0UpIG9u
IHBsYXRmb3JtcyB1c2luZyBDb3JlR3JhcGhpY3MiCiAjZW5kaWYKIAotI2lmIE9TKERBUldJTikg
JiYgQ1BVKEFERFJFU1M2NCkgJiYgRU5BQkxFKEpJVCkgJiYgKEVOQUJMRShKSVRfQ0FHRSkgfHwg
QVNTRVJUX0VOQUJMRUQpCi0jZGVmaW5lIEVOQUJMRV9KSVRfT1BFUkFUSU9OX1ZBTElEQVRJT04g
MQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCShyZXZpc2lv
biAyNzY4MTkpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY3MCwzICs2NzAsMTEgQEAKICNpZiAhZGVmaW5lZChFTkFCTEVfQVBQX0JP
VU5EX1JFUVVFU1RTKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDAKICNkZWZpbmUgRU5BQkxFX0FQUF9CT1VORF9SRVFV
RVNUUyAxCiAjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9T
UEFDRV9ESVNQTEFZX1AzKQorI2RlZmluZSBFTkFCTEVfREVTVElOQVRJT05fQ09MT1JfU1BBQ0Vf
RElTUExBWV9QMyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEVOQUJMRV9ERVNUSU5BVElPTl9D
T0xPUl9TUEFDRV9MSU5FQVJfU1JHQikKKyNkZWZpbmUgRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9S
X1NQQUNFX0xJTkVBUl9TUkdCIDEKKyNlbmRpZgpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZv
cm1FbmFibGVXaW5BcHBsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
RW5hYmxlV2luQXBwbGUuaAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVXaW5BcHBsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgogICog
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC01NCwzICs1NCw3IEBACiAjaWYgIWRlZmluZWQo
RU5BQkxFX0dFT0xPQ0FUSU9OKQogI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQogI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NS
R0IpICYmICFIQVZFKENPUkVfR1JBUEhJQ1NfTElORUFSX1NSR0JfQ09MT1JfU1BBQ0UpCisjZGVm
aW5lIEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQiAwCisjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHJldmlz
aW9uIDI3NjgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTYyLDYgKzE2MiwxOCBAQCBDb2xvciBDb2xvcjo6c2VtYW50
aWNDb2xvcigpIGNvbnN0CiAgICAgcmV0dXJuIHsgYXNJbmxpbmUoKSwgRmxhZ3M6OlNlbWFudGlj
IH07CiB9CiAKK0NvbG9yQ29tcG9uZW50czxmbG9hdCwgND4gQ29sb3I6OnRvQ29sb3JDb21wb25l
bnRzSW5Db2xvclNwYWNlKENvbG9yU3BhY2Ugb3V0cHV0Q29sb3JTcGFjZSkgY29uc3QKK3sKKyAg
ICBhdXRvIFtpbnB1dENvbG9yU3BhY2UsIGNvbXBvbmVudHNdID0gY29sb3JTcGFjZUFuZENvbXBv
bmVudHMoKTsKKyAgICByZXR1cm4gY29udmVyQ29sb3JDb21wb25lbnRzKGlucHV0Q29sb3JTcGFj
ZSwgY29tcG9uZW50cywgb3V0cHV0Q29sb3JTcGFjZSk7Cit9CisKK0NvbG9yQ29tcG9uZW50czxm
bG9hdCwgND4gQ29sb3I6OnRvQ29sb3JDb21wb25lbnRzSW5Db2xvclNwYWNlKERlc3RpbmF0aW9u
Q29sb3JTcGFjZSBvdXRwdXRDb2xvclNwYWNlKSBjb25zdAoreworICAgIGF1dG8gW2lucHV0Q29s
b3JTcGFjZSwgY29tcG9uZW50c10gPSBjb2xvclNwYWNlQW5kQ29tcG9uZW50cygpOworICAgIHJl
dHVybiBjb252ZXJDb2xvckNvbXBvbmVudHMoaW5wdXRDb2xvclNwYWNlLCBjb21wb25lbnRzLCBv
dXRwdXRDb2xvclNwYWNlKTsKK30KKwogc3RkOjpwYWlyPENvbG9yU3BhY2UsIENvbG9yQ29tcG9u
ZW50czxmbG9hdCwgND4+IENvbG9yOjpjb2xvclNwYWNlQW5kQ29tcG9uZW50cygpIGNvbnN0CiB7
CiAgICAgaWYgKGlzT3V0T2ZMaW5lKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmgJKHJldmlzaW9uIDI3NjgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsOSBAQCBw
dWJsaWM6CiAgICAgLy8gd3JhcHBlciBhcm91bmQgdG9Db2xvclR5cGVMb3NzeTw+KCkuCiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gU1JHQkE8VD4gdG9TUkdCQUxvc3N5KCkgY29uc3QgeyByZXR1
cm4gdG9Db2xvclR5cGVMb3NzeTxTUkdCQTxUPj4oKTsgfQogCisgICAgQ29sb3JDb21wb25lbnRz
PGZsb2F0LCA0PiB0b0NvbG9yQ29tcG9uZW50c0luQ29sb3JTcGFjZShDb2xvclNwYWNlKSBjb25z
dDsKKyAgICBDb2xvckNvbXBvbmVudHM8ZmxvYXQsIDQ+IHRvQ29sb3JDb21wb25lbnRzSW5Db2xv
clNwYWNlKERlc3RpbmF0aW9uQ29sb3JTcGFjZSkgY29uc3Q7CisKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGQ6OnBhaXI8Q29sb3JTcGFjZSwgQ29sb3JDb21wb25lbnRzPGZsb2F0LCA0Pj4gY29sb3JT
cGFjZUFuZENvbXBvbmVudHMoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIENvbG9yIGxp
Z2h0ZW5lZCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCShyZXZpc2lvbiAyNzY4MTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Q29sb3JDb252ZXJzaW9uLmgiCiAKKyNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjg2LDQgKzI4Nyw1
NiBAQCBTUkdCQTx1aW50OF90PiBDb2xvckNvbnZlcnNpb248U1JHQkE8dWluCiAgICAgfSkpOwog
fQogCisvLyBNQVJLOiBDb252ZXJzaW9uIGZ1bmN0aW9ucyBmb3IgcmF3IGNvbG9yIGNvbXBvbmVu
dHMgd2l0aCBhc3NvY2lhdGVkIGNvbG9yIHNwYWNlcy4KKworQ29sb3JDb21wb25lbnRzPGZsb2F0
LCA0PiBjb252ZXJDb2xvckNvbXBvbmVudHMoQ29sb3JTcGFjZSBpbnB1dENvbG9yU3BhY2UsIENv
bG9yQ29tcG9uZW50czxmbG9hdCwgND4gaW5wdXRDb2xvckNvbXBvbmVudHMsIENvbG9yU3BhY2Ug
b3V0cHV0Q29sb3JTcGFjZSkKK3sKKyAgICByZXR1cm4gY2FsbFdpdGhDb2xvclR5cGUoaW5wdXRD
b2xvckNvbXBvbmVudHMsIGlucHV0Q29sb3JTcGFjZSwgW291dHB1dENvbG9yU3BhY2VdIChjb25z
dCBhdXRvJiBpbnB1dENvbG9yKSB7CisgICAgICAgIHN3aXRjaCAob3V0cHV0Q29sb3JTcGFjZSkg
eworICAgICAgICBjYXNlIENvbG9yU3BhY2U6OkE5OFJHQjoKKyAgICAgICAgICAgIHJldHVybiBh
c0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29sb3I8QTk4UkdCPGZsb2F0Pj4oaW5wdXRDb2xvcikp
OworICAgICAgICBjYXNlIENvbG9yU3BhY2U6OkRpc3BsYXlQMzoKKyAgICAgICAgICAgIHJldHVy
biBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29sb3I8RGlzcGxheVAzPGZsb2F0Pj4oaW5wdXRD
b2xvcikpOworICAgICAgICBjYXNlIENvbG9yU3BhY2U6OkxDSDoKKyAgICAgICAgICAgIHJldHVy
biBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29sb3I8TENIQTxmbG9hdD4+KGlucHV0Q29sb3Ip
KTsKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpMYWI6CisgICAgICAgICAgICByZXR1cm4gYXND
b2xvckNvbXBvbmVudHMoY29udmVydENvbG9yPExhYjxmbG9hdD4+KGlucHV0Q29sb3IpKTsKKyAg
ICAgICAgY2FzZSBDb2xvclNwYWNlOjpMaW5lYXJTUkdCOgorICAgICAgICAgICAgcmV0dXJuIGFz
Q29sb3JDb21wb25lbnRzKGNvbnZlcnRDb2xvcjxMaW5lYXJTUkdCQTxmbG9hdD4+KGlucHV0Q29s
b3IpKTsKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpQcm9QaG90b1JHQjoKKyAgICAgICAgICAg
IHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29sb3I8UHJvUGhvdG9SR0I8ZmxvYXQ+
PihpbnB1dENvbG9yKSk7CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6UmVjMjAyMDoKKyAgICAg
ICAgICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29sb3I8UmVjMjAyMDxmbG9h
dD4+KGlucHV0Q29sb3IpKTsKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpTUkdCOgorICAgICAg
ICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGNvbnZlcnRDb2xvcjxTUkdCQTxmbG9hdD4+
KGlucHV0Q29sb3IpKTsKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpYWVpfRDUwOgorICAgICAg
ICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGNvbnZlcnRDb2xvcjxYWVpBPGZsb2F0LCBX
aGl0ZVBvaW50OjpENTA+PihpbnB1dENvbG9yKSk7CisgICAgICAgIH0KKworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGNvbnZl
cnRDb2xvcjxTUkdCQTxmbG9hdD4+KGlucHV0Q29sb3IpKTsKKyAgICB9KTsKK30KKworQ29sb3JD
b21wb25lbnRzPGZsb2F0LCA0PiBjb252ZXJDb2xvckNvbXBvbmVudHMoQ29sb3JTcGFjZSBpbnB1
dENvbG9yU3BhY2UsIENvbG9yQ29tcG9uZW50czxmbG9hdCwgND4gaW5wdXRDb2xvckNvbXBvbmVu
dHMsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBvdXRwdXRDb2xvclNwYWNlKQoreworICAgIHJldHVy
biBjYWxsV2l0aENvbG9yVHlwZShpbnB1dENvbG9yQ29tcG9uZW50cywgaW5wdXRDb2xvclNwYWNl
LCBbb3V0cHV0Q29sb3JTcGFjZV0gKGNvbnN0IGF1dG8mIGlucHV0Q29sb3IpIHsKKyAgICAgICAg
c3dpdGNoIChvdXRwdXRDb2xvclNwYWNlKSB7CisgICAgICAgIGNhc2UgRGVzdGluYXRpb25Db2xv
clNwYWNlOjpTUkdCOgorICAgICAgICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRzKGNvbnZl
cnRDb2xvcjxTUkdCQTxmbG9hdD4+KGlucHV0Q29sb3IpKTsKKyNpZiBFTkFCTEUoREVTVElOQVRJ
T05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IpCisgICAgICAgIGNhc2UgRGVzdGluYXRpb25Db2xv
clNwYWNlOjpMaW5lYXJTUkdCOgorICAgICAgICAgICAgcmV0dXJuIGFzQ29sb3JDb21wb25lbnRz
KGNvbnZlcnRDb2xvcjxMaW5lYXJTUkdCQTxmbG9hdD4+KGlucHV0Q29sb3IpKTsKKyNlbmRpZgor
I2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9ESVNQTEFZX1AzKQorICAgICAgICBj
YXNlIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6RGlzcGxheVAzOgorICAgICAgICAgICAgcmV0dXJu
IGFzQ29sb3JDb21wb25lbnRzKGNvbnZlcnRDb2xvcjxEaXNwbGF5UDM8ZmxvYXQ+PihpbnB1dENv
bG9yKSk7CisjZW5kaWYKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICByZXR1cm4gYXNDb2xvckNvbXBvbmVudHMoY29udmVydENvbG9yPFNSR0JBPGZs
b2F0Pj4oaW5wdXRDb2xvcikpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNv
bnZlcnNpb24uaAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDE3
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWlu
dDhfdDsKK2VudW0gY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlIDogdWludDhfdDsKKworLy8g
Q29udmVyc2lvbiBmdW5jdGlvbiBmb3IgdHlwZWQgY29sb3JzLgordGVtcGxhdGU8dHlwZW5hbWUg
T3V0cHV0LCB0eXBlbmFtZSBJbnB1dD4gT3V0cHV0IGNvbnZlcnRDb2xvcihjb25zdCBJbnB1dCYg
Y29sb3IpOworCisvLyBDb252ZXJzaW9uIGZ1bmN0aW9ucyBmb3IgcmF3IGNvbG9yIGNvbXBvbmVu
dHMgd2l0aCBhc3NvY2lhdGVkIGNvbG9yIHNwYWNlcy4KK0NvbG9yQ29tcG9uZW50czxmbG9hdCwg
ND4gY29udmVyQ29sb3JDb21wb25lbnRzKENvbG9yU3BhY2UgaW5wdXRDb2xvclNwYWNlLCBDb2xv
ckNvbXBvbmVudHM8ZmxvYXQsIDQ+IGlucHV0Q29sb3JDb21wb25lbnRzLCBDb2xvclNwYWNlIG91
dHB1dENvbG9yU3BhY2UpOworQ29sb3JDb21wb25lbnRzPGZsb2F0LCA0PiBjb252ZXJDb2xvckNv
bXBvbmVudHMoQ29sb3JTcGFjZSBpbnB1dENvbG9yU3BhY2UsIENvbG9yQ29tcG9uZW50czxmbG9h
dCwgND4gaW5wdXRDb2xvckNvbXBvbmVudHMsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBvdXRwdXRD
b2xvclNwYWNlKTsKKworCiAvLyBBbGwgY29sb3IgdHlwZXMsIG90aGVyIHRoYW4gWFlaQSBvciB0
aG9zZSBpbmhlcml0aW5nIGZyb20gUkdCVHlwZSwgbXVzdCBpbXBsZW1lbnQKIC8vIHRoZSBmb2xs
b3dpbmcgY29udmVyc2lvbnMgdG8gYW5kIGZyb20gdGhlaXIgIlJlZmVyZW5jZSIgY29sb3IuCiAv
LwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFj
ZS5jcHAJKHJldmlzaW9uIDI3NjgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yU3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NywxMiArNjcsMTkgQEAgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgQwogVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgRGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7
CiAgICAgc3dpdGNoIChjb2xvclNwYWNlKSB7CisgICAgY2FzZSBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OlNSR0I6CisgICAgICAgIHRzIDw8ICJzUkdCIjsKKyAgICAgICAgYnJlYWs7CisjaWYgRU5B
QkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQogICAgIGNhc2UgRGVzdGlu
YXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCOgogICAgICAgICB0cyA8PCAiTGluZWFyU1JHQiI7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCOgot
ICAgICAgICB0cyA8PCAic1JHQiI7CisjZW5kaWYKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09M
T1JfU1BBQ0VfRElTUExBWV9QMykKKyAgICBjYXNlIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6RGlz
cGxheVAzOgorICAgICAgICB0cyA8PCAiRGlzcGxheVAzIjsKICAgICAgICAgYnJlYWs7CisjZW5k
aWYKICAgICB9CiAgICAgcmV0dXJuIHRzOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OCw4ICs0OCwxMyBAQCBlbnVtIGNsYXNzIENvbG9yU3BhY2UgOiB1aW50OF90IHsKIH07CiAK
IGVudW0gY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlIDogdWludDhfdCB7Ci0gICAgTGluZWFy
U1JHQiwKLSAgICBTUkdCLAorICAgIFNSR0IKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1Jf
U1BBQ0VfTElORUFSX1NSR0IpCisgICAgLCBMaW5lYXJTUkdCCisjZW5kaWYKKyNpZiBFTkFCTEUo
REVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9QMykKKyAgICAsIERpc3BsYXlQMworI2Vu
ZGlmCiB9OwogCiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RG
OjpUZXh0U3RyZWFtJiwgQ29sb3JTcGFjZSk7CkBAIC05Nyw2ICsxMDIsMjYgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgRnVuY3Rvcj4gYwogICAgIHJldHVybiBzdGQ6Omludm9rZShz
dGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIG1ha2VGcm9tQ29tcG9uZW50czxTUkdCQTxU
Pj4oY29tcG9uZW50cykpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBGdW5j
dG9yPiBjb25zdGV4cHIgZGVjbHR5cGUoYXV0bykgY2FsbFdpdGhDb2xvclR5cGUoY29uc3QgQ29s
b3JDb21wb25lbnRzPFQsIDQ+JiBjb21wb25lbnRzLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgY29s
b3JTcGFjZSwgRnVuY3RvciYmIGZ1bmN0b3IpCit7CisgICAgc3dpdGNoIChjb2xvclNwYWNlKSB7
CisgICAgY2FzZSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0I6CisgICAgICAgIHJldHVybiBz
dGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVuY3RvciksIG1ha2VGcm9tQ29tcG9u
ZW50czxTUkdCQTxUPj4oY29tcG9uZW50cykpOworI2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xP
Ul9TUEFDRV9MSU5FQVJfU1JHQikKKyAgICBjYXNlIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGlu
ZWFyU1JHQjoKKyAgICAgICAgcmV0dXJuIHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9y
PihmdW5jdG9yKSwgbWFrZUZyb21Db21wb25lbnRzPExpbmVhclNSR0JBPFQ+Pihjb21wb25lbnRz
KSk7CisjZW5kaWYKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExBWV9Q
MykKKyAgICBjYXNlIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6RGlzcGxheVAzOgorICAgICAgICBy
ZXR1cm4gc3RkOjppbnZva2Uoc3RkOjpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBtYWtlRnJv
bUNvbXBvbmVudHM8RGlzcGxheVAzPFQ+Pihjb21wb25lbnRzKSk7CisjZW5kaWYKKyAgICB9CisK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gc3RkOjppbnZva2Uoc3RkOjpm
b3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBtYWtlRnJvbUNvbXBvbmVudHM8U1JHQkE8VD4+KGNv
bXBvbmVudHMpKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBX
VEYgewpAQCAtMTE5LDggKzE0NCwxMyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OkNvCiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRlc3RpbmF0
aW9uQ29sb3JTcGFjZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CiAgICAgICAg
IFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSwKLSAgICAgICAgV2ViQ29yZTo6RGVzdGlu
YXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCLAogICAgICAgICBXZWJDb3JlOjpEZXN0aW5hdGlv
bkNvbG9yU3BhY2U6OlNSR0IKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElO
RUFSX1NSR0IpCisgICAgICAgICwgV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5l
YXJTUkdCCisjZW5kaWYKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfRElTUExB
WV9QMykKKyAgICAgICAgLCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkRpc3BsYXlQ
MworI2VuZGlmCiAgICAgPjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VDRy5oCShyZXZpc2lvbiAyNzY4MTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xvclNwYWNlQ0cuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIzLDE2ICsxMjMsMTYgQEAgc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VS
ZWYgY2FjaGVkTnVsbAogc3RhdGljIGlubGluZSBDR0NvbG9yU3BhY2VSZWYgY2FjaGVkQ0dDb2xv
clNwYWNlKERlc3RpbmF0aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIHN3aXRjaCAo
Y29sb3JTcGFjZSkgewotICAgIGNhc2UgRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdC
OiB7Ci0jaWYgSEFWRShDT1JFX0dSQVBISUNTX0xJTkVBUl9TUkdCX0NPTE9SX1NQQUNFKQotICAg
ICAgICByZXR1cm4gbGluZWFyU1JHQkNvbG9yU3BhY2VSZWYoKTsKLSNlbHNlCi0gICAgICAgIC8v
IEZJWE1FOiBXaW5kb3dzIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBsaW5lYXIgc1JHQiwgdGhpcyBp
cyB0cmFja2VkIGJ5IGh0dHA6Ly93ZWJraXQub3JnL2IvODAwMDAuCi0gICAgICAgIHJldHVybiBz
UkdCQ29sb3JTcGFjZVJlZigpOwotI2VuZGlmCi0gICAgfQogICAgIGNhc2UgRGVzdGluYXRpb25D
b2xvclNwYWNlOjpTUkdCOgogICAgICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKKyNp
ZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IpCisgICAgY2FzZSBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0I6CisgICAgICAgIHJldHVybiBsaW5lYXJT
UkdCQ29sb3JTcGFjZVJlZigpOworI2VuZGlmCisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9S
X1NQQUNFX0RJU1BMQVlfUDMpCisgICAgY2FzZSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkRpc3Bs
YXlQMzoKKyAgICAgICAgcmV0dXJuIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKKyNlbmRpZgog
ICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc1JHQkNvbG9yU3Bh
Y2VSZWYoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVMaWdodGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAzLDE0ICs0MDMsMTAgQEAgYm9vbCBGRUxpZ2h0aW5nOjpkcmF3TGlnaHRp
bmcoVWludDhDbGFtcAogICAgIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQaXhlbFNpemUgPSB3aWR0
aCAqIGNQaXhlbFNpemU7CiAgICAgZGF0YS53aWR0aERlY3JlYXNlZEJ5T25lID0gd2lkdGggLSAx
OwogICAgIGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgPSBoZWlnaHQgLSAxOwotICAgIAotICAg
IGlmIChvcGVyYXRpbmdDb2xvclNwYWNlKCkgPT0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5l
YXJTUkdCKSB7Ci0gICAgICAgIGF1dG8gW3IsIGcsIGIsIGFdID0gbV9saWdodGluZ0NvbG9yLnRv
Q29sb3JUeXBlTG9zc3k8TGluZWFyU1JHQkE8ZmxvYXQ+PigpOwotICAgICAgICBwYWludGluZ0Rh
dGEuaW5pdGlhbExpZ2h0aW5nRGF0YS5jb2xvclZlY3RvciA9IEZsb2F0UG9pbnQzRChyLCBnLCBi
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBhdXRvIFtyLCBnLCBiLCBhXSA9IG1fbGlnaHRpbmdD
b2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+KCk7Ci0gICAgICAgIHBhaW50aW5nRGF0YS5pbml0aWFs
TGlnaHRpbmdEYXRhLmNvbG9yVmVjdG9yID0gRmxvYXRQb2ludDNEKHIsIGcsIGIpOwotICAgIH0K
KworICAgIGF1dG8gW3IsIGcsIGIsIGFdID0gbV9saWdodGluZ0NvbG9yLnRvQ29sb3JDb21wb25l
bnRzSW5Db2xvclNwYWNlKG9wZXJhdGluZ0NvbG9yU3BhY2UoKSk7CisgICAgcGFpbnRpbmdEYXRh
LmluaXRpYWxMaWdodGluZ0RhdGEuY29sb3JWZWN0b3IgPSBGbG9hdFBvaW50M0QociwgZywgYik7
CisKICAgICBtX2xpZ2h0U291cmNlLT5pbml0UGFpbnRpbmdEYXRhKCp0aGlzLCBwYWludGluZ0Rh
dGEpOwogCiAgICAgLy8gVG9wIGxlZnQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgJKHJldmlzaW9uIDI3
NjgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0MSw3ICsyNDEsMTMgQEAgcHJpdmF0ZToKICAg
ICAvLyBTaG91bGQgdGhlIGVmZmVjdCBjbGlwIHRvIGl0cyBwcmltaXRpdmUgcmVnaW9uLCBvciBl
eHBhbmQgdG8gdXNlIHRoZSBjb21iaW5lZCByZWdpb24gb2YgaXRzIGlucHV0cy4KICAgICBib29s
IG1fY2xpcHNUb0JvdW5kcyB7IHRydWUgfTsKIAotICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBt
X29wZXJhdGluZ0NvbG9yU3BhY2UgeyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0Ig
fTsKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IpCisgICAg
c3RhdGljIGNvbnN0ZXhwciBhdXRvIGRlZmF1bHRPcGVyYXRpbmdDb2xvclNwYWNlID0gRGVzdGlu
YXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCOworI2Vsc2UKKyAgICBzdGF0aWMgY29uc3RleHBy
IGF1dG8gZGVmYXVsdE9wZXJhdGluZ0NvbG9yU3BhY2UgPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6
OlNSR0I7CisjZW5kaWYKKworICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBtX29wZXJhdGluZ0Nv
bG9yU3BhY2UgeyBkZWZhdWx0T3BlcmF0aW5nQ29sb3JTcGFjZSB9OwogICAgIERlc3RpbmF0aW9u
Q29sb3JTcGFjZSBtX3Jlc3VsdENvbG9yU3BhY2UgeyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNS
R0IgfTsKICAgICAKICAgICBjb25zdCBUeXBlIG1fZmlsdGVyRWZmZWN0Q2xhc3NUeXBlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAJKHJldmlzaW9uIDI3NjgxOSkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDksOSArMTA5LDEzIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IENTU0ZpbHRlcjo6YnVp
bGRSZWYKICAgICAgICAgfQogCiAgICAgICAgIGVmZmVjdEVsZW1lbnQuc2V0U3RhbmRhcmRBdHRy
aWJ1dGVzKGVmZmVjdC5nZXQoKSk7Ci0gICAgICAgIGlmIChlZmZlY3RFbGVtZW50LnJlbmRlcmVy
KCkpCisgICAgICAgIGlmIChlZmZlY3RFbGVtZW50LnJlbmRlcmVyKCkpIHsKKyNpZiBFTkFCTEUo
REVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IpCiAgICAgICAgICAgICBlZmZlY3Qt
PnNldE9wZXJhdGluZ0NvbG9yU3BhY2UoZWZmZWN0RWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgp
LnN2Z1N0eWxlKCkuY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycygpID09IENvbG9ySW50ZXJwb2xh
dGlvbjo6TGluZWFyUkdCID8gRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCIDogRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCKTsKLQorI2Vsc2UKKyAgICAgICAgICAgIGVmZmVjdC0+
c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IpOworI2Vu
ZGlmCisgICAgICAgIH0KICAgICAgICAgYnVpbGRlci0+YWRkKGVmZmVjdEVsZW1lbnQucmVzdWx0
KCksIGVmZmVjdCk7CiAgICAgICAgIHJlZmVyZW5jZUVmZmVjdHMuYXBwZW5kKCplZmZlY3QpOwog
ICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCShyZXZpc2lvbiAyNzY4MTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDggKzEwMiwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U1ZHRmlsdGVyQnVp
bGRlcj4gUmVuZGVyCiAgICAgICAgIGJ1aWxkZXItPmFwcGVuZEVmZmVjdFRvRWZmZWN0UmVmZXJl
bmNlcyhlZmZlY3QuY29weVJlZigpLCBlbGVtZW50LnJlbmRlcmVyKCkpOwogICAgICAgICBlbGVt
ZW50LnNldFN0YW5kYXJkQXR0cmlidXRlcyhlZmZlY3QuZ2V0KCkpOwogICAgICAgICBlZmZlY3Qt
PnNldEVmZmVjdEJvdW5kYXJpZXMoU1ZHTGVuZ3RoQ29udGV4dDo6cmVzb2x2ZVJlY3RhbmdsZTxT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+KCZlbGVtZW50LCBmaWx0ZXJFbGVt
ZW50KCkucHJpbWl0aXZlVW5pdHMoKSwgdGFyZ2V0Qm91bmRpbmdCb3gpKTsKLSAgICAgICAgaWYg
KGVsZW1lbnQucmVuZGVyZXIoKSkKKyAgICAgICAgaWYgKGVsZW1lbnQucmVuZGVyZXIoKSkgewor
I2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQikKICAgICAgICAg
ICAgIGVmZmVjdC0+c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShlbGVtZW50LnJlbmRlcmVyKCktPnN0
eWxlKCkuc3ZnU3R5bGUoKS5jb2xvckludGVycG9sYXRpb25GaWx0ZXJzKCkgPT0gQ29sb3JJbnRl
cnBvbGF0aW9uOjpMaW5lYXJSR0IgPyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0Ig
OiBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IpOworI2Vsc2UKKyAgICAgICAgICAgIGVmZmVj
dC0+c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IpOwor
I2VuZGlmCisgICAgICAgIH0KICAgICAgICAgYnVpbGRlci0+YWRkKGVsZW1lbnQucmVzdWx0KCks
IFdURk1vdmUoZWZmZWN0KSk7CiAgICAgfQogICAgIHJldHVybiBidWlsZGVyOwpAQCAtMTkxLDgg
KzE5NiwxMyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291CiAgICAg
ZWZmZWN0aXZlVHJhbnNmb3JtLnNjYWxlKHNjYWxlLndpZHRoKCksIHNjYWxlLmhlaWdodCgpKTsK
ICAgICBlZmZlY3RpdmVUcmFuc2Zvcm0ubXVsdGlwbHkoZmlsdGVyRGF0YS0+c2hlYXJGcmVlQWJz
b2x1dGVUcmFuc2Zvcm0pOwogCi0gICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gcmVu
ZGVyZXIuc2V0dGluZ3MoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKCkgPyBSZW5kZXJpbmdN
b2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7Ci0gICAgYXV0
byBzb3VyY2VHcmFwaGljID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIo
ZmlsdGVyRGF0YS0+ZHJhd2luZ1JlZ2lvbiwgZWZmZWN0aXZlVHJhbnNmb3JtLCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2U6OkxpbmVhclNSR0IsIHJlbmRlcmluZ01vZGUsIGNvbnRleHQpOworICAgIGF1
dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0ZWRGaWx0ZXJz
RW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpV
bmFjY2VsZXJhdGVkOworI2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJf
U1JHQikKKyAgICBhdXRvIGNvbG9yU3BhY2UgPSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVh
clNSR0I7CisjZWxzZQorICAgIGF1dG8gY29sb3JTcGFjZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQjsKKyNlbmRpZgorICAgIGF1dG8gc291cmNlR3JhcGhpYyA9IFNWR1JlbmRlcmluZ0Nv
bnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKGZpbHRlckRhdGEtPmRyYXdpbmdSZWdpb24sIGVmZmVj
dGl2ZVRyYW5zZm9ybSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwgY29udGV4dCk7CiAgICAg
aWYgKCFzb3VyY2VHcmFwaGljKSB7CiAgICAgICAgIEFTU0VSVCghbV9yZW5kZXJlckZpbHRlckRh
dGFNYXAuY29udGFpbnMoJnJlbmRlcmVyKSk7CiAgICAgICAgIGZpbHRlckRhdGEtPnNhdmVkQ29u
dGV4dCA9IGNvbnRleHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlTWFza2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAkocmV2aXNpb24gMjc2ODE5KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDEzIEBAIGJvb2wgUmVuZGVyU1ZHUmVzb3Vy
Y2VNYXNrZXI6OmFwcGx5UmVzb3UKIAogICAgIGlmICghbWFza2VyRGF0YS0+bWFza0ltYWdlICYm
ICFyZXBhaW50UmVjdC5pc0VtcHR5KCkpIHsKICAgICAgICAgY29uc3QgU1ZHUmVuZGVyU3R5bGUm
IHN2Z1N0eWxlID0gc3R5bGUoKS5zdmdTdHlsZSgpOworCisjaWYgRU5BQkxFKERFU1RJTkFUSU9O
X0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQogICAgICAgICBhdXRvIGNvbG9yU3BhY2UgPSBzdmdT
dHlsZS5jb2xvckludGVycG9sYXRpb24oKSA9PSBDb2xvckludGVycG9sYXRpb246OkxpbmVhclJH
QiA/IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQiA6IERlc3RpbmF0aW9uQ29sb3JT
cGFjZTo6U1JHQjsKKyNlbHNlCisgICAgICAgIGF1dG8gY29sb3JTcGFjZSA9IERlc3RpbmF0aW9u
Q29sb3JTcGFjZTo6U1JHQjsKKyNlbmRpZgorCiAgICAgICAgIC8vIEZJWE1FICgxNDk0NzApOiBU
aGlzIGltYWdlIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVuY29uZGl0aW9uYWxseSB1bmFjY2VsZXJh
dGVkLiBNYWtpbmcgaXQgbWF0Y2ggdGhlIGNvbnRleHQgYnJlYWtzIGFscGhhIG1hc2tpbmcsIHRo
b3VnaC4KICAgICAgICAgbWFza2VyRGF0YS0+bWFza0ltYWdlID0gU1ZHUmVuZGVyaW5nQ29udGV4
dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFic29sdXRlVHJhbnNmb3JtLCBjb2xv
clNwYWNlLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBjb250ZXh0KTsKICAgICAgICAg
aWYgKCFtYXNrZXJEYXRhLT5tYXNrSW1hZ2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427478</attachid>
            <date>2021-04-30 18:23:37 -0700</date>
            <delta_ts>2021-05-01 11:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225237-20210430182336.patch</filename>
            <type>text/plain</type>
            <size>21760</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNzY4MTkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA0LTMwICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGRlc3RpbmF0aW9uIGNvbG9yIHNwYWNlIGVudW1l
cmF0aW9uIG1hdGNoIHN1cHBvcnRlZCBkZXN0aW5hdGlvbiBjb2xvciBzcGFjZXMgZm9yIHRoZSBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUy
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
RU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCIGFuZCBlbmFibGVkIGl0
IGZvciBhbGwgcG9ydHMKKyAgICAgICAgZXhjZXB0IHRoZSBBcHBsZSBXaW5kb3dzIHBvcnQsIHdo
aWNoIGlzIHRoZSBvbmx5IG9uZSBkb2Vzbid0IGhhdmUgYW55IHN1cHBvcnQKKyAgICAgICAgZm9y
IGl0LgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisgICAgICAgICogd3RmL1Bs
YXRmb3JtRW5hYmxlQ29jb2EuaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVXaW5BcHBs
ZS5oOgorCiAyMDIxLTA0LTI5ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZHVjZSBtZW1vcnkgZm9vdHByaW50IGZvciBiYWNrZ3JvdW5kIHRhYnMKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGUuaAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ1LDYgKzI0NSwxMCBAQAogI2RlZmlu
ZSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIDAKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5B
QkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQorI2RlZmluZSBFTkFCTEVf
REVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IgMQorI2VuZGlmCisKICNpZiAhZGVm
aW5lZChFTkFCTEVfRE9XTkxPQURfQVRUUklCVVRFKQogI2RlZmluZSBFTkFCTEVfRE9XTkxPQURf
QVRUUklCVVRFIDEKICNlbmRpZgpAQCAtODE2LDYgKzgyMCwxNCBAQAogI2RlZmluZSBFTkFCTEVf
R0NfVkFMSURBVElPTiAxCiAjZW5kaWYKIAorI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKEpJVCkg
JiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgQ1BVKEFSTTY0RSkgJiYgSEFWRShKSVRfQ0FH
RSkKKyNkZWZpbmUgRU5BQkxFX0pJVF9DQUdFIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKSAm
JiBDUFUoQUREUkVTUzY0KSAmJiBFTkFCTEUoSklUKSAmJiAoRU5BQkxFKEpJVF9DQUdFKSB8fCBB
U1NFUlRfRU5BQkxFRCkKKyNkZWZpbmUgRU5BQkxFX0pJVF9PUEVSQVRJT05fVkFMSURBVElPTiAx
CisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSkgJiYgIU9T
KFdJTkRPV1MpCiAjZGVmaW5lIEVOQUJMRV9CSU5ESU5HX0lOVEVHUklUWSAxCiAjZW5kaWYKQEAg
LTg4NywxMCArODk5LDEwIEBACiAjZXJyb3IgIkVOQUJMRShXSExTTF9DT01QSUxFUikgcmVxdWly
ZXMgRU5BQkxFKFdFQkdQVSkiCiAjZW5kaWYKIAotI2lmIE9TKERBUldJTikgJiYgRU5BQkxFKEpJ
VCkgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgQ1BVKEFSTTY0RSkgJiYgSEFWRShKSVRf
Q0FHRSkKLSNkZWZpbmUgRU5BQkxFX0pJVF9DQUdFIDEKKyNpZiBVU0UoQ0cpCisKKyNpZiBFTkFC
TEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IpICYmICFIQVZFKENPUkVfR1JB
UEhJQ1NfTElORUFSX1NSR0JfQ09MT1JfU1BBQ0UpCisjZXJyb3IgIkVOQUJMRShERVNUSU5BVElP
Tl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQikgcmVxdWlyZXMgSEFWRShDT1JFX0dSQVBISUNTX0xJ
TkVBUl9TUkdCX0NPTE9SX1NQQUNFKSBvbiBwbGF0Zm9ybXMgdXNpbmcgQ29yZUdyYXBoaWNzIgog
I2VuZGlmCiAKLSNpZiBPUyhEQVJXSU4pICYmIENQVShBRERSRVNTNjQpICYmIEVOQUJMRShKSVQp
ICYmIChFTkFCTEUoSklUX0NBR0UpIHx8IEFTU0VSVF9FTkFCTEVEKQotI2RlZmluZSBFTkFCTEVf
SklUX09QRVJBVElPTl9WQUxJREFUSU9OIDEKICNlbmRpZgpJbmRleDogU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGVDb2NvYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NzAsMyArNjcwLDcgQEAKICNp
ZiAhZGVmaW5lZChFTkFCTEVfQVBQX0JPVU5EX1JFUVVFU1RTKSAmJiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNTAwMDAKICNkZWZp
bmUgRU5BQkxFX0FQUF9CT1VORF9SRVFVRVNUUyAxCiAjZW5kaWYKKworI2lmICFkZWZpbmVkKEVO
QUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQikKKyNkZWZpbmUgRU5BQkxF
X0RFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCIDEKKyNlbmRpZgpJbmRleDogU291
cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlV2luQXBwbGUuaAkocmV2aXNpb24gMjc2ODE5KQorKysg
U291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVXaW5BcHBsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IFRvcmNo
IE1vYmlsZSwgSW5jLgogICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEz
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCkBAIC01NCwzICs1NCw3
IEBACiAjaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9OKQogI2RlZmluZSBFTkFCTEVfR0VP
TE9DQVRJT04gMQogI2VuZGlmCisKKyNpZiAhZGVmaW5lZChFTkFCTEVfREVTVElOQVRJT05fQ09M
T1JfU1BBQ0VfTElORUFSX1NSR0IpICYmICFIQVZFKENPUkVfR1JBUEhJQ1NfTElORUFSX1NSR0Jf
Q09MT1JfU1BBQ0UpCisjZGVmaW5lIEVOQUJMRV9ERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5F
QVJfU1JHQiAwCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3Njg2NikKKysrIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisy
MDIxLTA0LTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtl
IGRlc3RpbmF0aW9uIGNvbG9yIHNwYWNlIGVudW1lcmF0aW9uIG1hdGNoIHN1cHBvcnRlZCBkZXN0
aW5hdGlvbiBjb2xvciBzcGFjZXMgZm9yIHRoZSBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgRU5BQkxFX0RFU1RJTkFUSU9OX0NPTE9SX1NQ
QUNFX0xJTkVBUl9TUkdCIGFuZCBlbmFibGVkIGl0IGZvciBhbGwgcG9ydHMKKyAgICAgICAgZXhj
ZXB0IHRoZSBBcHBsZSBXaW5kb3dzIHBvcnQsIHdoaWNoIGlzIHRoZSBvbmx5IG9uZSBkb2Vzbid0
IGhhdmUgYW55IHN1cHBvcnQKKyAgICAgICAgZm9yIGl0LgorCisgICAgICAgIFJlbW92ZXMgZXhp
c3RpbmcgYmVoYXZpb3Igb2YgcmV0dXJuaW5nIFNSR0Igd2hlbiBMaW5lYXJTUkdCIHdhcyByZXF1
ZXN0ZWQgaW4KKyAgICAgICAgdGhlIEFwcGxlIFdpbmRvd3MgcG9ydC4gTm93LCB0aGUgY2FsbGVy
cyBhcmUgcmVzcG9uaXNibGUgZm9yIGRlYWxpbmcgd2l0aCBhCisgICAgICAgIHBvcnRzIGxhY2sg
b2Ygc3VwcG9ydCBvZiBMaW5lYXJTUkdCLCBtYWtpbmcgaXQgdmVyeSBjbGVhciBhdCB0aG9zZSBj
YWxsIHNpdGVzCisgICAgICAgIHRoYXQgc29tZXRoaW5nIGlzIGRpZmZlcmVudCBhbmQgd3Jvbmcu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
ckNvbnZlcnNpb24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yQ29udmVy
c2lvbi5oOgorICAgICAgICBBZGQgbmV3IGZ1bmN0aW9ucyB0byBwZXJmb3JtIGNvbG9yIGNvbnZl
cnNpb24gdG8gYW5kIGZyb20gYW4gY29sb3Igc3BhY2UKKyAgICAgICAgZGVub3RlZCBieSB0aGUg
Q29sb3JTcGFjZSBvciBEZXN0aW5hdGlvbkNvbG9yU3BhY2UgZW51bS4gUHJldmlvdXNseSwgd2UK
KyAgICAgICAgb25seSBoYWQgY29udmllbnQgd2F5cyB0byBjb252ZXJ0IGlmIHRoZSBjb2xvciB3
YXMgc3Ryb25nbHkgdHlwZWQgKGFuZCB0aGlzCisgICAgICAgIGlzIGltcGxlbWVudGVkIHVzaW5n
IHRoYXQgbWVjaGFuaXNtKS4gVGhpcyBpcyB1c2VmdWwgd2hlbiBjb252ZXJ0aW5nIGZvcgorICAg
ICAgICBmaW5hbCBvdXB1dCwgc3VjaCBpbiBhcyB0aGUgY2FsbGVyIGluIEZFTGlnaHRpbmc6OmRy
YXdMaWdodGluZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yU3BhY2VD
Ry5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL0NTU0ZpbHRl
ci5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5j
cHA6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5jcHA6
CisgICAgICAgIFdyYXAgdXNlcyBvZiBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0Ig
aW4gRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKS4KKwogMjAyMS0w
NC0zMCAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEF2
b2lkIGEgY3Jhc2ggaW4gUGxhdGZvcm1DQUxheWVyOjpkcmF3TGF5ZXJDb250ZW50cyB3aGVuIGNh
bGxlZCB3aXRoIGEgZGlzcGxheSBsaXN0IHJlY29yZGluZyBHcmFwaGljc0NvbnRleHQuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCShyZXZpc2lvbiAy
NzY4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsMTggQEAgQ29sb3IgQ29sb3I6OnNlbWFudGljQ29s
b3IoKSBjb25zdAogICAgIHJldHVybiB7IGFzSW5saW5lKCksIEZsYWdzOjpTZW1hbnRpYyB9Owog
fQogCitDb2xvckNvbXBvbmVudHM8ZmxvYXQsIDQ+IENvbG9yOjp0b0NvbG9yQ29tcG9uZW50c0lu
Q29sb3JTcGFjZShDb2xvclNwYWNlIG91dHB1dENvbG9yU3BhY2UpIGNvbnN0Cit7CisgICAgYXV0
byBbaW5wdXRDb2xvclNwYWNlLCBjb21wb25lbnRzXSA9IGNvbG9yU3BhY2VBbmRDb21wb25lbnRz
KCk7CisgICAgcmV0dXJuIGNvbnZlckNvbG9yQ29tcG9uZW50cyhpbnB1dENvbG9yU3BhY2UsIGNv
bXBvbmVudHMsIG91dHB1dENvbG9yU3BhY2UpOworfQorCitDb2xvckNvbXBvbmVudHM8ZmxvYXQs
IDQ+IENvbG9yOjp0b0NvbG9yQ29tcG9uZW50c0luQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9y
U3BhY2Ugb3V0cHV0Q29sb3JTcGFjZSkgY29uc3QKK3sKKyAgICBhdXRvIFtpbnB1dENvbG9yU3Bh
Y2UsIGNvbXBvbmVudHNdID0gY29sb3JTcGFjZUFuZENvbXBvbmVudHMoKTsKKyAgICByZXR1cm4g
Y29udmVyQ29sb3JDb21wb25lbnRzKGlucHV0Q29sb3JTcGFjZSwgY29tcG9uZW50cywgb3V0cHV0
Q29sb3JTcGFjZSk7Cit9CisKIHN0ZDo6cGFpcjxDb2xvclNwYWNlLCBDb2xvckNvbXBvbmVudHM8
ZmxvYXQsIDQ+PiBDb2xvcjo6Y29sb3JTcGFjZUFuZENvbXBvbmVudHMoKSBjb25zdAogewogICAg
IGlmIChpc091dE9mTGluZSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29sb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oCShyZXZpc2lvbiAyNzY4MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDkgQEAgcHVibGlj
OgogICAgIC8vIHdyYXBwZXIgYXJvdW5kIHRvQ29sb3JUeXBlTG9zc3k8PigpLgogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IFNSR0JBPFQ+IHRvU1JHQkFMb3NzeSgpIGNvbnN0IHsgcmV0dXJuIHRv
Q29sb3JUeXBlTG9zc3k8U1JHQkE8VD4+KCk7IH0KIAorICAgIENvbG9yQ29tcG9uZW50czxmbG9h
dCwgND4gdG9Db2xvckNvbXBvbmVudHNJbkNvbG9yU3BhY2UoQ29sb3JTcGFjZSkgY29uc3Q7Cisg
ICAgQ29sb3JDb21wb25lbnRzPGZsb2F0LCA0PiB0b0NvbG9yQ29tcG9uZW50c0luQ29sb3JTcGFj
ZShEZXN0aW5hdGlvbkNvbG9yU3BhY2UpIGNvbnN0OworCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rk
OjpwYWlyPENvbG9yU3BhY2UsIENvbG9yQ29tcG9uZW50czxmbG9hdCwgND4+IGNvbG9yU3BhY2VB
bmRDb21wb25lbnRzKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciBsaWdodGVu
ZWQoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
Q29udmVyc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbG9y
Q29udmVyc2lvbi5oIgogCisjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgPHd0Zi9N
YXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI4Niw0ICsyODcsNTIgQEAg
U1JHQkE8dWludDhfdD4gQ29sb3JDb252ZXJzaW9uPFNSR0JBPHVpbgogICAgIH0pKTsKIH0KIAor
Ly8gTUFSSzogQ29udmVyc2lvbiBmdW5jdGlvbnMgZm9yIHJhdyBjb2xvciBjb21wb25lbnRzIHdp
dGggYXNzb2NpYXRlZCBjb2xvciBzcGFjZXMuCisKK0NvbG9yQ29tcG9uZW50czxmbG9hdCwgND4g
Y29udmVyQ29sb3JDb21wb25lbnRzKENvbG9yU3BhY2UgaW5wdXRDb2xvclNwYWNlLCBDb2xvckNv
bXBvbmVudHM8ZmxvYXQsIDQ+IGlucHV0Q29sb3JDb21wb25lbnRzLCBDb2xvclNwYWNlIG91dHB1
dENvbG9yU3BhY2UpCit7CisgICAgcmV0dXJuIGNhbGxXaXRoQ29sb3JUeXBlKGlucHV0Q29sb3JD
b21wb25lbnRzLCBpbnB1dENvbG9yU3BhY2UsIFtvdXRwdXRDb2xvclNwYWNlXSAoY29uc3QgYXV0
byYgaW5wdXRDb2xvcikgeworICAgICAgICBzd2l0Y2ggKG91dHB1dENvbG9yU3BhY2UpIHsKKyAg
ICAgICAgY2FzZSBDb2xvclNwYWNlOjpBOThSR0I6CisgICAgICAgICAgICByZXR1cm4gYXNDb2xv
ckNvbXBvbmVudHMoY29udmVydENvbG9yPEE5OFJHQjxmbG9hdD4+KGlucHV0Q29sb3IpKTsKKyAg
ICAgICAgY2FzZSBDb2xvclNwYWNlOjpEaXNwbGF5UDM6CisgICAgICAgICAgICByZXR1cm4gYXND
b2xvckNvbXBvbmVudHMoY29udmVydENvbG9yPERpc3BsYXlQMzxmbG9hdD4+KGlucHV0Q29sb3Ip
KTsKKyAgICAgICAgY2FzZSBDb2xvclNwYWNlOjpMQ0g6CisgICAgICAgICAgICByZXR1cm4gYXND
b2xvckNvbXBvbmVudHMoY29udmVydENvbG9yPExDSEE8ZmxvYXQ+PihpbnB1dENvbG9yKSk7Cisg
ICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6TGFiOgorICAgICAgICAgICAgcmV0dXJuIGFzQ29sb3JD
b21wb25lbnRzKGNvbnZlcnRDb2xvcjxMYWI8ZmxvYXQ+PihpbnB1dENvbG9yKSk7CisgICAgICAg
IGNhc2UgQ29sb3JTcGFjZTo6TGluZWFyU1JHQjoKKyAgICAgICAgICAgIHJldHVybiBhc0NvbG9y
Q29tcG9uZW50cyhjb252ZXJ0Q29sb3I8TGluZWFyU1JHQkE8ZmxvYXQ+PihpbnB1dENvbG9yKSk7
CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6UHJvUGhvdG9SR0I6CisgICAgICAgICAgICByZXR1
cm4gYXNDb2xvckNvbXBvbmVudHMoY29udmVydENvbG9yPFByb1Bob3RvUkdCPGZsb2F0Pj4oaW5w
dXRDb2xvcikpOworICAgICAgICBjYXNlIENvbG9yU3BhY2U6OlJlYzIwMjA6CisgICAgICAgICAg
ICByZXR1cm4gYXNDb2xvckNvbXBvbmVudHMoY29udmVydENvbG9yPFJlYzIwMjA8ZmxvYXQ+Pihp
bnB1dENvbG9yKSk7CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6U1JHQjoKKyAgICAgICAgICAg
IHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29sb3I8U1JHQkE8ZmxvYXQ+PihpbnB1
dENvbG9yKSk7CisgICAgICAgIGNhc2UgQ29sb3JTcGFjZTo6WFlaX0Q1MDoKKyAgICAgICAgICAg
IHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29sb3I8WFlaQTxmbG9hdCwgV2hpdGVQ
b2ludDo6RDUwPj4oaW5wdXRDb2xvcikpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29s
b3I8U1JHQkE8ZmxvYXQ+PihpbnB1dENvbG9yKSk7CisgICAgfSk7Cit9CisKK0NvbG9yQ29tcG9u
ZW50czxmbG9hdCwgND4gY29udmVyQ29sb3JDb21wb25lbnRzKENvbG9yU3BhY2UgaW5wdXRDb2xv
clNwYWNlLCBDb2xvckNvbXBvbmVudHM8ZmxvYXQsIDQ+IGlucHV0Q29sb3JDb21wb25lbnRzLCBE
ZXN0aW5hdGlvbkNvbG9yU3BhY2Ugb3V0cHV0Q29sb3JTcGFjZSkKK3sKKyAgICByZXR1cm4gY2Fs
bFdpdGhDb2xvclR5cGUoaW5wdXRDb2xvckNvbXBvbmVudHMsIGlucHV0Q29sb3JTcGFjZSwgW291
dHB1dENvbG9yU3BhY2VdIChjb25zdCBhdXRvJiBpbnB1dENvbG9yKSB7CisgICAgICAgIHN3aXRj
aCAob3V0cHV0Q29sb3JTcGFjZSkgeworICAgICAgICBjYXNlIERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQjoKKyAgICAgICAgICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhjb252ZXJ0Q29s
b3I8U1JHQkE8ZmxvYXQ+PihpbnB1dENvbG9yKSk7CisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NP
TE9SX1NQQUNFX0xJTkVBUl9TUkdCKQorICAgICAgICBjYXNlIERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6TGluZWFyU1JHQjoKKyAgICAgICAgICAgIHJldHVybiBhc0NvbG9yQ29tcG9uZW50cyhjb252
ZXJ0Q29sb3I8TGluZWFyU1JHQkE8ZmxvYXQ+PihpbnB1dENvbG9yKSk7CisjZW5kaWYKKyAgICAg
ICAgfQorCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gYXND
b2xvckNvbXBvbmVudHMoY29udmVydENvbG9yPFNSR0JBPGZsb2F0Pj4oaW5wdXRDb2xvcikpOwor
ICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvckNvbnZlcnNpb24uaAkocmV2aXNpb24g
Mjc2ODE5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JDb252ZXJz
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDE3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorZW51bSBjbGFzcyBDb2xvclNwYWNlIDogdWludDhfdDsKK2VudW0gY2xhc3MgRGVz
dGluYXRpb25Db2xvclNwYWNlIDogdWludDhfdDsKKworLy8gQ29udmVyc2lvbiBmdW5jdGlvbiBm
b3IgdHlwZWQgY29sb3JzLgordGVtcGxhdGU8dHlwZW5hbWUgT3V0cHV0LCB0eXBlbmFtZSBJbnB1
dD4gT3V0cHV0IGNvbnZlcnRDb2xvcihjb25zdCBJbnB1dCYgY29sb3IpOworCisvLyBDb252ZXJz
aW9uIGZ1bmN0aW9ucyBmb3IgcmF3IGNvbG9yIGNvbXBvbmVudHMgd2l0aCBhc3NvY2lhdGVkIGNv
bG9yIHNwYWNlcy4KK0NvbG9yQ29tcG9uZW50czxmbG9hdCwgND4gY29udmVyQ29sb3JDb21wb25l
bnRzKENvbG9yU3BhY2UgaW5wdXRDb2xvclNwYWNlLCBDb2xvckNvbXBvbmVudHM8ZmxvYXQsIDQ+
IGlucHV0Q29sb3JDb21wb25lbnRzLCBDb2xvclNwYWNlIG91dHB1dENvbG9yU3BhY2UpOworQ29s
b3JDb21wb25lbnRzPGZsb2F0LCA0PiBjb252ZXJDb2xvckNvbXBvbmVudHMoQ29sb3JTcGFjZSBp
bnB1dENvbG9yU3BhY2UsIENvbG9yQ29tcG9uZW50czxmbG9hdCwgND4gaW5wdXRDb2xvckNvbXBv
bmVudHMsIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBvdXRwdXRDb2xvclNwYWNlKTsKKworCiAvLyBB
bGwgY29sb3IgdHlwZXMsIG90aGVyIHRoYW4gWFlaQSBvciB0aG9zZSBpbmhlcml0aW5nIGZyb20g
UkdCVHlwZSwgbXVzdCBpbXBsZW1lbnQKIC8vIHRoZSBmb2xsb3dpbmcgY29udmVyc2lvbnMgdG8g
YW5kIGZyb20gdGhlaXIgIlJlZmVyZW5jZSIgY29sb3IuCiAvLwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5jcHAJKHJldmlzaW9uIDI3Njgx
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02NywxMiArNjcsMTQgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChU
ZXh0U3RyZWFtJiB0cywgQwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
RGVzdGluYXRpb25Db2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7CiAgICAgc3dpdGNoIChjb2xvclNw
YWNlKSB7Ci0gICAgY2FzZSBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0I6Ci0gICAg
ICAgIHRzIDw8ICJMaW5lYXJTUkdCIjsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBEZXN0aW5h
dGlvbkNvbG9yU3BhY2U6OlNSR0I6CiAgICAgICAgIHRzIDw8ICJzUkdCIjsKICAgICAgICAgYnJl
YWs7CisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQorICAg
IGNhc2UgRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCOgorICAgICAgICB0cyA8PCAi
TGluZWFyU1JHQiI7CisgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgfQogICAgIHJldHVybiB0
czsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNw
YWNlLmgJKHJldmlzaW9uIDI3NjgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yU3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsMTAgQEAgZW51bSBj
bGFzcyBDb2xvclNwYWNlIDogdWludDhfdCB7CiB9OwogCiBlbnVtIGNsYXNzIERlc3RpbmF0aW9u
Q29sb3JTcGFjZSA6IHVpbnQ4X3QgewotICAgIExpbmVhclNSR0IsCi0gICAgU1JHQiwKKyAgICBT
UkdCCisjaWYgRU5BQkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQorICAg
ICwgTGluZWFyU1JHQgorI2VuZGlmCiB9OwogCiBXRUJDT1JFX0VYUE9SVCBXVEY6OlRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQ29sb3JTcGFjZSk7CkBAIC05Nyw2ICs5
OSwyMiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBGdW5jdG9yPiBjCiAgICAgcmV0
dXJuIHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9yKSwgbWFrZUZyb21D
b21wb25lbnRzPFNSR0JBPFQ+Pihjb21wb25lbnRzKSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1l
IFQsIHR5cGVuYW1lIEZ1bmN0b3I+IGNvbnN0ZXhwciBkZWNsdHlwZShhdXRvKSBjYWxsV2l0aENv
bG9yVHlwZShjb25zdCBDb2xvckNvbXBvbmVudHM8VCwgND4mIGNvbXBvbmVudHMsIERlc3RpbmF0
aW9uQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBGdW5jdG9yJiYgZnVuY3RvcikKK3sKKyAgICBzd2l0
Y2ggKGNvbG9yU3BhY2UpIHsKKyAgICBjYXNlIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQjoK
KyAgICAgICAgcmV0dXJuIHN0ZDo6aW52b2tlKHN0ZDo6Zm9yd2FyZDxGdW5jdG9yPihmdW5jdG9y
KSwgbWFrZUZyb21Db21wb25lbnRzPFNSR0JBPFQ+Pihjb21wb25lbnRzKSk7CisjaWYgRU5BQkxF
KERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQorICAgIGNhc2UgRGVzdGluYXRp
b25Db2xvclNwYWNlOjpMaW5lYXJTUkdCOgorICAgICAgICByZXR1cm4gc3RkOjppbnZva2Uoc3Rk
Ojpmb3J3YXJkPEZ1bmN0b3I+KGZ1bmN0b3IpLCBtYWtlRnJvbUNvbXBvbmVudHM8TGluZWFyU1JH
QkE8VD4+KGNvbXBvbmVudHMpKTsKKyNlbmRpZgorICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBzdGQ6Omludm9rZShzdGQ6OmZvcndhcmQ8RnVuY3Rvcj4oZnVu
Y3RvciksIG1ha2VGcm9tQ29tcG9uZW50czxTUkdCQTxUPj4oY29tcG9uZW50cykpOworfQorCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIFdURiB7CkBAIC0xMTksOCArMTM3
LDEwIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q28KIHRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlPiB7CiAg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKICAgICAgICAgV2ViQ29yZTo6RGVzdGluYXRp
b25Db2xvclNwYWNlLAotICAgICAgICBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6Okxp
bmVhclNSR0IsCiAgICAgICAgIFdlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQgor
I2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJfU1JHQikKKyAgICAgICAg
LCBXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0IKKyNlbmRpZgogICAg
ID47CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9Db2xv
clNwYWNlQ0cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9Db2xvclNwYWNlQ0cuaAkocmV2aXNpb24gMjc2ODE5KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JTcGFjZUNHLmgJKHdvcmtpbmcgY29weSkKQEAgLTEy
MywxNiArMTIzLDEyIEBAIHN0YXRpYyBpbmxpbmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZE51bGwK
IHN0YXRpYyBpbmxpbmUgQ0dDb2xvclNwYWNlUmVmIGNhY2hlZENHQ29sb3JTcGFjZShEZXN0aW5h
dGlvbkNvbG9yU3BhY2UgY29sb3JTcGFjZSkKIHsKICAgICBzd2l0Y2ggKGNvbG9yU3BhY2UpIHsK
LSAgICBjYXNlIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQjogewotI2lmIEhBVkUo
Q09SRV9HUkFQSElDU19MSU5FQVJfU1JHQl9DT0xPUl9TUEFDRSkKLSAgICAgICAgcmV0dXJuIGxp
bmVhclNSR0JDb2xvclNwYWNlUmVmKCk7Ci0jZWxzZQotICAgICAgICAvLyBGSVhNRTogV2luZG93
cyBzaG91bGQgYmUgYWJsZSB0byB1c2UgbGluZWFyIHNSR0IsIHRoaXMgaXMgdHJhY2tlZCBieSBo
dHRwOi8vd2Via2l0Lm9yZy9iLzgwMDAwLgotICAgICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VS
ZWYoKTsKLSNlbmRpZgotICAgIH0KICAgICBjYXNlIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JH
QjoKICAgICAgICAgcmV0dXJuIHNSR0JDb2xvclNwYWNlUmVmKCk7CisjaWYgRU5BQkxFKERFU1RJ
TkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQorICAgIGNhc2UgRGVzdGluYXRpb25Db2xv
clNwYWNlOjpMaW5lYXJTUkdCOgorICAgICAgICByZXR1cm4gbGluZWFyU1JHQkNvbG9yU3BhY2VS
ZWYoKTsKKyNlbmRpZgogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAkocmV2aXNpb24gMjc2
ODE5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAzLDE0ICs0MDMsMTAgQEAgYm9vbCBGRUxpZ2h0
aW5nOjpkcmF3TGlnaHRpbmcoVWludDhDbGFtcAogICAgIGRhdGEud2lkdGhNdWx0aXBsaWVkQnlQ
aXhlbFNpemUgPSB3aWR0aCAqIGNQaXhlbFNpemU7CiAgICAgZGF0YS53aWR0aERlY3JlYXNlZEJ5
T25lID0gd2lkdGggLSAxOwogICAgIGRhdGEuaGVpZ2h0RGVjcmVhc2VkQnlPbmUgPSBoZWlnaHQg
LSAxOwotICAgIAotICAgIGlmIChvcGVyYXRpbmdDb2xvclNwYWNlKCkgPT0gRGVzdGluYXRpb25D
b2xvclNwYWNlOjpMaW5lYXJTUkdCKSB7Ci0gICAgICAgIGF1dG8gW3IsIGcsIGIsIGFdID0gbV9s
aWdodGluZ0NvbG9yLnRvQ29sb3JUeXBlTG9zc3k8TGluZWFyU1JHQkE8ZmxvYXQ+PigpOwotICAg
ICAgICBwYWludGluZ0RhdGEuaW5pdGlhbExpZ2h0aW5nRGF0YS5jb2xvclZlY3RvciA9IEZsb2F0
UG9pbnQzRChyLCBnLCBiKTsKLSAgICB9IGVsc2UgewotICAgICAgICBhdXRvIFtyLCBnLCBiLCBh
XSA9IG1fbGlnaHRpbmdDb2xvci50b1NSR0JBTG9zc3k8ZmxvYXQ+KCk7Ci0gICAgICAgIHBhaW50
aW5nRGF0YS5pbml0aWFsTGlnaHRpbmdEYXRhLmNvbG9yVmVjdG9yID0gRmxvYXRQb2ludDNEKHIs
IGcsIGIpOwotICAgIH0KKworICAgIGF1dG8gW3IsIGcsIGIsIGFdID0gbV9saWdodGluZ0NvbG9y
LnRvQ29sb3JDb21wb25lbnRzSW5Db2xvclNwYWNlKG9wZXJhdGluZ0NvbG9yU3BhY2UoKSk7Cisg
ICAgcGFpbnRpbmdEYXRhLmluaXRpYWxMaWdodGluZ0RhdGEuY29sb3JWZWN0b3IgPSBGbG9hdFBv
aW50M0QociwgZywgYik7CisKICAgICBtX2xpZ2h0U291cmNlLT5pbml0UGFpbnRpbmdEYXRhKCp0
aGlzLCBwYWludGluZ0RhdGEpOwogCiAgICAgLy8gVG9wIGxlZnQuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0
LmgJKHJldmlzaW9uIDI3NjgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0MSw3ICsyNDEsMTMg
QEAgcHJpdmF0ZToKICAgICAvLyBTaG91bGQgdGhlIGVmZmVjdCBjbGlwIHRvIGl0cyBwcmltaXRp
dmUgcmVnaW9uLCBvciBleHBhbmQgdG8gdXNlIHRoZSBjb21iaW5lZCByZWdpb24gb2YgaXRzIGlu
cHV0cy4KICAgICBib29sIG1fY2xpcHNUb0JvdW5kcyB7IHRydWUgfTsKIAotICAgIERlc3RpbmF0
aW9uQ29sb3JTcGFjZSBtX29wZXJhdGluZ0NvbG9yU3BhY2UgeyBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OkxpbmVhclNSR0IgfTsKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElO
RUFSX1NSR0IpCisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGRlZmF1bHRPcGVyYXRpbmdDb2xv
clNwYWNlID0gRGVzdGluYXRpb25Db2xvclNwYWNlOjpMaW5lYXJTUkdCOworI2Vsc2UKKyAgICBz
dGF0aWMgY29uc3RleHByIGF1dG8gZGVmYXVsdE9wZXJhdGluZ0NvbG9yU3BhY2UgPSBEZXN0aW5h
dGlvbkNvbG9yU3BhY2U6OlNSR0I7CisjZW5kaWYKKworICAgIERlc3RpbmF0aW9uQ29sb3JTcGFj
ZSBtX29wZXJhdGluZ0NvbG9yU3BhY2UgeyBkZWZhdWx0T3BlcmF0aW5nQ29sb3JTcGFjZSB9Owog
ICAgIERlc3RpbmF0aW9uQ29sb3JTcGFjZSBtX3Jlc3VsdENvbG9yU3BhY2UgeyBEZXN0aW5hdGlv
bkNvbG9yU3BhY2U6OlNSR0IgfTsKICAgICAKICAgICBjb25zdCBUeXBlIG1fZmlsdGVyRWZmZWN0
Q2xhc3NUeXBlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAJKHJl
dmlzaW9uIDI3NjgxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDksOSArMTA5LDEzIEBAIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+
IENTU0ZpbHRlcjo6YnVpbGRSZWYKICAgICAgICAgfQogCiAgICAgICAgIGVmZmVjdEVsZW1lbnQu
c2V0U3RhbmRhcmRBdHRyaWJ1dGVzKGVmZmVjdC5nZXQoKSk7Ci0gICAgICAgIGlmIChlZmZlY3RF
bGVtZW50LnJlbmRlcmVyKCkpCisgICAgICAgIGlmIChlZmZlY3RFbGVtZW50LnJlbmRlcmVyKCkp
IHsKKyNpZiBFTkFCTEUoREVTVElOQVRJT05fQ09MT1JfU1BBQ0VfTElORUFSX1NSR0IpCiAgICAg
ICAgICAgICBlZmZlY3QtPnNldE9wZXJhdGluZ0NvbG9yU3BhY2UoZWZmZWN0RWxlbWVudC5yZW5k
ZXJlcigpLT5zdHlsZSgpLnN2Z1N0eWxlKCkuY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVycygpID09
IENvbG9ySW50ZXJwb2xhdGlvbjo6TGluZWFyUkdCID8gRGVzdGluYXRpb25Db2xvclNwYWNlOjpM
aW5lYXJTUkdCIDogRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKTsKLQorI2Vsc2UKKyAgICAg
ICAgICAgIGVmZmVjdC0+c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OlNSR0IpOworI2VuZGlmCisgICAgICAgIH0KICAgICAgICAgYnVpbGRlci0+YWRkKGVmZmVj
dEVsZW1lbnQucmVzdWx0KCksIGVmZmVjdCk7CiAgICAgICAgIHJlZmVyZW5jZUVmZmVjdHMuYXBw
ZW5kKCplZmZlY3QpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCShyZXZpc2lvbiAyNzY4
MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmls
dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDggKzEwMiwxMyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8U1ZHRmlsdGVyQnVpbGRlcj4gUmVuZGVyCiAgICAgICAgIGJ1aWxkZXItPmFwcGVuZEVmZmVj
dFRvRWZmZWN0UmVmZXJlbmNlcyhlZmZlY3QuY29weVJlZigpLCBlbGVtZW50LnJlbmRlcmVyKCkp
OwogICAgICAgICBlbGVtZW50LnNldFN0YW5kYXJkQXR0cmlidXRlcyhlZmZlY3QuZ2V0KCkpOwog
ICAgICAgICBlZmZlY3QtPnNldEVmZmVjdEJvdW5kYXJpZXMoU1ZHTGVuZ3RoQ29udGV4dDo6cmVz
b2x2ZVJlY3RhbmdsZTxTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+KCZlbGVt
ZW50LCBmaWx0ZXJFbGVtZW50KCkucHJpbWl0aXZlVW5pdHMoKSwgdGFyZ2V0Qm91bmRpbmdCb3gp
KTsKLSAgICAgICAgaWYgKGVsZW1lbnQucmVuZGVyZXIoKSkKKyAgICAgICAgaWYgKGVsZW1lbnQu
cmVuZGVyZXIoKSkgeworI2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xPUl9TUEFDRV9MSU5FQVJf
U1JHQikKICAgICAgICAgICAgIGVmZmVjdC0+c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShlbGVtZW50
LnJlbmRlcmVyKCktPnN0eWxlKCkuc3ZnU3R5bGUoKS5jb2xvckludGVycG9sYXRpb25GaWx0ZXJz
KCkgPT0gQ29sb3JJbnRlcnBvbGF0aW9uOjpMaW5lYXJSR0IgPyBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U6OkxpbmVhclNSR0IgOiBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IpOworI2Vsc2UKKyAg
ICAgICAgICAgIGVmZmVjdC0+c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0IpOworI2VuZGlmCisgICAgICAgIH0KICAgICAgICAgYnVpbGRlci0+YWRkKGVs
ZW1lbnQucmVzdWx0KCksIFdURk1vdmUoZWZmZWN0KSk7CiAgICAgfQogICAgIHJldHVybiBidWls
ZGVyOwpAQCAtMTkxLDggKzE5NiwxMyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjph
cHBseVJlc291CiAgICAgZWZmZWN0aXZlVHJhbnNmb3JtLnNjYWxlKHNjYWxlLndpZHRoKCksIHNj
YWxlLmhlaWdodCgpKTsKICAgICBlZmZlY3RpdmVUcmFuc2Zvcm0ubXVsdGlwbHkoZmlsdGVyRGF0
YS0+c2hlYXJGcmVlQWJzb2x1dGVUcmFuc2Zvcm0pOwogCi0gICAgUmVuZGVyaW5nTW9kZSByZW5k
ZXJpbmdNb2RlID0gcmVuZGVyZXIuc2V0dGluZ3MoKS5hY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVk
KCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxl
cmF0ZWQ7Ci0gICAgYXV0byBzb3VyY2VHcmFwaGljID0gU1ZHUmVuZGVyaW5nQ29udGV4dDo6Y3Jl
YXRlSW1hZ2VCdWZmZXIoZmlsdGVyRGF0YS0+ZHJhd2luZ1JlZ2lvbiwgZWZmZWN0aXZlVHJhbnNm
b3JtLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OkxpbmVhclNSR0IsIHJlbmRlcmluZ01vZGUsIGNv
bnRleHQpOworICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNj
ZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZCgpID8gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBS
ZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOworI2lmIEVOQUJMRShERVNUSU5BVElPTl9DT0xP
Ul9TUEFDRV9MSU5FQVJfU1JHQikKKyAgICBhdXRvIGNvbG9yU3BhY2UgPSBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OkxpbmVhclNSR0I7CisjZWxzZQorICAgIGF1dG8gY29sb3JTcGFjZSA9IERlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQjsKKyNlbmRpZgorICAgIGF1dG8gc291cmNlR3JhcGhpYyA9
IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVyKGZpbHRlckRhdGEtPmRyYXdp
bmdSZWdpb24sIGVmZmVjdGl2ZVRyYW5zZm9ybSwgY29sb3JTcGFjZSwgcmVuZGVyaW5nTW9kZSwg
Y29udGV4dCk7CiAgICAgaWYgKCFzb3VyY2VHcmFwaGljKSB7CiAgICAgICAgIEFTU0VSVCghbV9y
ZW5kZXJlckZpbHRlckRhdGFNYXAuY29udGFpbnMoJnJlbmRlcmVyKSk7CiAgICAgICAgIGZpbHRl
ckRhdGEtPnNhdmVkQ29udGV4dCA9IGNvbnRleHQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlTWFza2VyLmNwcAkocmV2
aXNpb24gMjc2ODE5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZU1hc2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDEzIEBAIGJvb2wg
UmVuZGVyU1ZHUmVzb3VyY2VNYXNrZXI6OmFwcGx5UmVzb3UKIAogICAgIGlmICghbWFza2VyRGF0
YS0+bWFza0ltYWdlICYmICFyZXBhaW50UmVjdC5pc0VtcHR5KCkpIHsKICAgICAgICAgY29uc3Qg
U1ZHUmVuZGVyU3R5bGUmIHN2Z1N0eWxlID0gc3R5bGUoKS5zdmdTdHlsZSgpOworCisjaWYgRU5B
QkxFKERFU1RJTkFUSU9OX0NPTE9SX1NQQUNFX0xJTkVBUl9TUkdCKQogICAgICAgICBhdXRvIGNv
bG9yU3BhY2UgPSBzdmdTdHlsZS5jb2xvckludGVycG9sYXRpb24oKSA9PSBDb2xvckludGVycG9s
YXRpb246OkxpbmVhclJHQiA/IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6TGluZWFyU1JHQiA6IERl
c3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQjsKKyNlbHNlCisgICAgICAgIGF1dG8gY29sb3JTcGFj
ZSA9IERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQjsKKyNlbmRpZgorCiAgICAgICAgIC8vIEZJ
WE1FICgxNDk0NzApOiBUaGlzIGltYWdlIGJ1ZmZlciBzaG91bGQgbm90IGJlIHVuY29uZGl0aW9u
YWxseSB1bmFjY2VsZXJhdGVkLiBNYWtpbmcgaXQgbWF0Y2ggdGhlIGNvbnRleHQgYnJlYWtzIGFs
cGhhIG1hc2tpbmcsIHRob3VnaC4KICAgICAgICAgbWFza2VyRGF0YS0+bWFza0ltYWdlID0gU1ZH
UmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlSW1hZ2VCdWZmZXIocmVwYWludFJlY3QsIGFic29sdXRl
VHJhbnNmb3JtLCBjb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkLCBjb250
ZXh0KTsKICAgICAgICAgaWYgKCFtYXNrZXJEYXRhLT5tYXNrSW1hZ2UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>