<?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>192480</bug_id>
          
          <creation_ts>2018-12-06 16:01:42 -0800</creation_ts>
          <short_desc>CSS Painting API code cleanup</short_desc>
          <delta_ts>2018-12-07 19:06:52 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>191443</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Michaud">justin_michaud</reporter>
          <assigned_to name="Justin Michaud">justin_michaud</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1485853</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2018-12-06 16:01:42 -0800</bug_when>
    <thetext>The goal of this is to fix all of Darin&apos;s comments on 191443, plus a few other housekeeping things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485867</commentid>
    <comment_count>1</comment_count>
      <attachid>356763</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2018-12-06 16:31:45 -0800</bug_when>
    <thetext>Created attachment 356763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486134</commentid>
    <comment_count>2</comment_count>
      <attachid>356763</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-07 13:57:56 -0800</bug_when>
    <thetext>Comment on attachment 356763
Patch

Clearing flags on attachment: 356763

Committed r238968: &lt;https://trac.webkit.org/changeset/238968&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486135</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-07 13:57:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486136</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-07 13:58:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/46564091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486203</commentid>
    <comment_count>5</comment_count>
      <attachid>356763</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-12-07 15:58:10 -0800</bug_when>
    <thetext>Comment on attachment 356763
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1042
&gt; +    if (changedCustomPaintWatchedProperty(*this, *m_rareNonInheritedData, other, *other.m_rareNonInheritedData))
&gt; +        return true;

I don&apos;t think this is the right way to do this. You shouldn&apos;t trigger repaint for custom paint from here. You should evaluate inputs to custom paints, run the callback if necessary, then issue a repaint if the output changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486263</commentid>
    <comment_count>6</comment_count>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2018-12-07 18:28:35 -0800</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=192322</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486268</commentid>
    <comment_count>7</comment_count>
      <attachid>356763</attachid>
    <who name="Justin Michaud">justin_michaud</who>
    <bug_when>2018-12-07 19:06:52 -0800</bug_when>
    <thetext>Comment on attachment 356763
Patch

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

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1042
&gt;&gt; +        return true;
&gt; 
&gt; I don&apos;t think this is the right way to do this. You shouldn&apos;t trigger repaint for custom paint from here. You should evaluate inputs to custom paints, run the callback if necessary, then issue a repaint if the output changes.

I have a test case that seems to prove you right. If you mutate an a watched property immediately after importing a worklet, then it does not paint correctly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356763</attachid>
            <date>2018-12-06 16:31:45 -0800</date>
            <delta_ts>2018-12-07 13:57:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192480-20181206163143.patch</filename>
            <type>text/plain</type>
            <size>14204</size>
            <attacher name="Justin Michaud">justin_michaud</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4OTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWNmMTk4ZDY1MmY0NWMz
ZTI0NTYyZjA4YzZhMDI1YTQ5ZGVmMDc4OC4uZGYxOTQ4ZDk0NjdlNDU4YTA0NTVhYTFkOTA2NGI1
MDE4ZWI2ZGQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTEyLTA2ICBKdXN0
aW4gTWljaGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgUGFp
bnRpbmcgQVBJIGNvZGUgY2xlYW51cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTkyNDgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB0aGUgZXhpc3RpbmcgdGVzdHMgc2hv
dWxkIGNvdmVyIGl0LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om91dHB1dENvbnN0cmFpbnRTdWJzcGFjZUZvcik6CisgICAgICAg
IChXZWJDb3JlOjpnbG9iYWxPYmplY3RPdXRwdXRDb25zdHJhaW50U3Vic3BhY2VGb3IpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKiBjc3MvQ1NTUGFpbnRDYWxsYmFjay5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50SW1hZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3VzdG9tUGFpbnRJbWFnZTo6ZG9DdXN0b21QYWludCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6YWRk
Q3VzdG9tUGFpbnRXYXRjaFByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OmNoYW5nZWRDdXN0
b21QYWludFdhdGNoZWRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6
Y2hhbmdlUmVxdWlyZXNSZXBhaW50IGNvbnN0KToKKyAgICAgICAgKiB3b3JrbGV0cy9QYWludFdv
cmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWludFdvcmtsZXRHbG9i
YWxTY29wZTo6cmVnaXN0ZXJQYWludCk6CisgICAgICAgICogd29ya2xldHMvUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGUuaDoKKwogMjAxOC0xMi0wNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgTG9hZGVyU3RyYXRlZ3k6
OnN0b3JlRGVyaXZlZERhdGFUb0NhY2hlIGFuZCBhc3NvY2lhdGVkIGRlYWQgY29kZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5jcHAKaW5kZXggOWJmMGIxYzY3ZGQ3
NTI0NmI4ZTg0YTQyOWU3YjI3MWFkYjQ0Zjk1OC4uZTk1MjVhNDZkODhlMWE1YjAyNGE1ZGYzZjMz
MTczMzllZDMxMjEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBw
ZXIuY3BwCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvRXJyb3Iu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogU1RBVElD
X0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTRE9NT2JqZWN0KTsKIApAQCAtNDUs
MTIgKzQ0LDEyIEBAIEpTRE9NT2JqZWN0OjpKU0RPTU9iamVjdChKU0M6OlN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPCiAgICAgQVNTRVJUKGdsb2JhbE9i
amVjdC5jbGFzc0luZm8oKSA9PSBKU0RPTUdsb2JhbE9iamVjdDo6aW5mbygpIHx8IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSB8fCBnbG9iYWxPYmplY3QuY2xhc3NJbmZvKCkgPT0gSlNSZW1vdGVE
T01XaW5kb3c6OmluZm8oKSk7CiB9CiAKLUNvbXBsZXRlU3Vic3BhY2UqIG91dHB1dENvbnN0cmFp
bnRTdWJzcGFjZUZvcihWTSYgdm0pCitKU0M6OkNvbXBsZXRlU3Vic3BhY2UqIG91dHB1dENvbnN0
cmFpbnRTdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKIHsKICAgICByZXR1cm4gJnN0YXRpY19jYXN0
PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPm91dHB1dENvbnN0cmFpbnRTcGFjZSgp
OwogfQogCi1Db21wbGV0ZVN1YnNwYWNlKiBnbG9iYWxPYmplY3RPdXRwdXRDb25zdHJhaW50U3Vi
c3BhY2VGb3IoVk0mIHZtKQorSlNDOjpDb21wbGV0ZVN1YnNwYWNlKiBnbG9iYWxPYmplY3RPdXRw
dXRDb25zdHJhaW50U3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCiB7CiAgICAgcmV0dXJuICZzdGF0
aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5nbG9iYWxPYmplY3RPdXRw
dXRDb25zdHJhaW50U3BhY2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2xldEdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtsZXRHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDdjZDgwZTc0MTU3ZmZh
Y2ZkYWVkMGM2NGVhOTliY2U0NDJjODg2ZTIuLjcxNTEzYTcyNDkyMjNhOTcyYjBhMGI3NWY5MzE2
MDFhNWU5ODlhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29y
a2xldEdsb2JhbFNjb3BlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrbGV0R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtMTI4LDkgKzEyOCwxMSBAQCBKU1ZhbHVl
IHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCosIFdvcmtsZXRHbG9iYWxT
Y29wZSYgd29ya2xldEdsbwogCiBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiwgV29ya2xldEdsb2Jh
bFNjb3BlJiB3b3JrbGV0R2xvYmFsU2NvcGUpCiB7Ci0gICAgQVNTRVJUKHdvcmtsZXRHbG9iYWxT
Y29wZS5zY3JpcHQoKSk7CisgICAgaWYgKCF3b3JrbGV0R2xvYmFsU2NvcGUuc2NyaXB0KCkpCisg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIGF1dG8qIGNvbnRleHRXcmFwcGVyID0g
d29ya2xldEdsb2JhbFNjb3BlLnNjcmlwdCgpLT53b3JrbGV0R2xvYmFsU2NvcGVXcmFwcGVyKCk7
Ci0gICAgQVNTRVJUKGNvbnRleHRXcmFwcGVyKTsKKyAgICBpZiAoIWNvbnRleHRXcmFwcGVyKQor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICByZXR1cm4gY29udGV4dFdyYXBwZXIt
PnByb3h5KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWludENh
bGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFpbnRDYWxsYmFjay5oCmluZGV4IDBj
MDNmMGFmYmQ3MTI0NDllZGQwNzEzNmQ2NTM1NzdhZWQ3NGRmNjQuLmI4NzdmMDMwNmY4MDNjZjk4
YzZiMzYwMjAzMmQ3NDJmOWEyOWQ5YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYWludENhbGxiYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhaW50Q2FsbGJh
Y2suaApAQCAtMzEsMTAgKzMxLDEzIEBACiAjaW5jbHVkZSAiQ1NTUGFpbnRTaXplLmgiCiAjaW5j
bHVkZSAiQ2FsbGJhY2tSZXN1bHQuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5TWFwUmVhZE9u
bHkuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2Ug
SlNDIHsKK2NsYXNzIEpTVmFsdWU7Cit9IC8vIG5hbWVzcGFjZSBKU0MKKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgUGFpbnRSZW5kZXJpbmdDb250ZXh0MkQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1c3RvbVBhaW50SW1hZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKaW5kZXgg
ZmE5MGQ5ZjFjOTg5NzJhYzNhZjBkMDVmY2YxMWFhMjI4YTExNThkYy4uYjhmOTMwYzgxYTBhMDBi
YzQyNzUwMWEyMWRlNzE0MDE3ZjY2MTY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5jcHAKQEAgLTYyLDE3ICs2MiwxNSBA
QCBJbWFnZURyYXdSZXN1bHQgQ3VzdG9tUGFpbnRJbWFnZTo6ZG9DdXN0b21QYWludChHcmFwaGlj
c0NvbnRleHQmIGRlc3RDb250ZXh0LCBjbwogICAgIGlmICghbV9lbGVtZW50IHx8ICFtX2VsZW1l
bnQtPmVsZW1lbnQoKSB8fCAhbV9wYWludERlZmluaXRpb24pCiAgICAgICAgIHJldHVybiBJbWFn
ZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAKLSAgICBKU0M6OkpTVmFsdWUgcGFpbnRDb25zdHJ1
Y3RvcihtX3BhaW50RGVmaW5pdGlvbi0+cGFpbnRDb25zdHJ1Y3Rvcik7CisgICAgSlNDOjpKU1Zh
bHVlIHBhaW50Q29uc3RydWN0b3IgPSBtX3BhaW50RGVmaW5pdGlvbi0+cGFpbnRDb25zdHJ1Y3Rv
cjsKIAogICAgIGlmICghcGFpbnRDb25zdHJ1Y3RvcikKICAgICAgICAgcmV0dXJuIEltYWdlRHJh
d1Jlc3VsdDo6RGlkTm90aGluZzsKIAotICAgIGF1dG8mIHBhaW50Q2FsbGJhY2sgPSBtX3BhaW50
RGVmaW5pdGlvbi0+cGFpbnRDYWxsYmFjay5nZXQoKTsKLQogICAgIEFTU0VSVCghbV9lbGVtZW50
LT5uZWVkc0xheW91dCgpKTsKICAgICBBU1NFUlQoIW1fZWxlbWVudC0+ZWxlbWVudCgpLT5kb2N1
bWVudCgpLm5lZWRzU3R5bGVSZWNhbGMoKSk7CiAKLSAgICBKU0NTU1BhaW50Q2FsbGJhY2smIGNh
bGxiYWNrID0gc3RhdGljX2Nhc3Q8SlNDU1NQYWludENhbGxiYWNrJj4ocGFpbnRDYWxsYmFjayk7
CisgICAgSlNDU1NQYWludENhbGxiYWNrJiBjYWxsYmFjayA9IHN0YXRpY19jYXN0PEpTQ1NTUGFp
bnRDYWxsYmFjayY+KG1fcGFpbnREZWZpbml0aW9uLT5wYWludENhbGxiYWNrLmdldCgpKTsKICAg
ICBhdXRvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gY2FsbGJhY2suc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwogICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKICAgICAgICAgcmV0
dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKQEAgLTEyMiwxNCArMTIwLDE0IEBAIElt
YWdlRHJhd1Jlc3VsdCBDdXN0b21QYWludEltYWdlOjpkb0N1c3RvbVBhaW50KEdyYXBoaWNzQ29u
dGV4dCYgZGVzdENvbnRleHQsIGNvCiAKICAgICBhdXRvJiBzdGF0ZSA9ICpnbG9iYWxPYmplY3Qu
Z2xvYmFsRXhlYygpOwogICAgIEpTQzo6QXJnTGlzdCBub0FyZ3M7Ci0gICAgSlNDOjpKU1ZhbHVl
IHRoaXNPYmplY3QgPSB7IEpTQzo6Y29uc3RydWN0KCZzdGF0ZSwgV1RGTW92ZShwYWludENvbnN0
cnVjdG9yKSwgbm9BcmdzLCAiRmFpbGVkIHRvIGNvbnN0cnVjdCBwYWludCBjbGFzcyIpIH07Cisg
ICAgSlNDOjpKU1ZhbHVlIHRoaXNPYmplY3QgPSB7IEpTQzo6Y29uc3RydWN0KCZzdGF0ZSwgcGFp
bnRDb25zdHJ1Y3Rvciwgbm9BcmdzLCAiRmFpbGVkIHRvIGNvbnN0cnVjdCBwYWludCBjbGFzcyIp
IH07CiAKICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7CiAgICAgICAgIHJl
cG9ydEV4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLmV4Y2VwdGlvbigpKTsKICAgICAgICAgcmV0dXJu
IEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKICAgICB9CiAKLSAgICBhdXRvIHJlc3VsdCA9
IHBhaW50Q2FsbGJhY2suaGFuZGxlRXZlbnQoV1RGTW92ZSh0aGlzT2JqZWN0KSwgKmNvbnRleHQs
IHNpemUsIHByb3BlcnR5TWFwLCBtX2FyZ3VtZW50cyk7CisgICAgYXV0byByZXN1bHQgPSBjYWxs
YmFjay5oYW5kbGVFdmVudChXVEZNb3ZlKHRoaXNPYmplY3QpLCAqY29udGV4dCwgc2l6ZSwgcHJv
cGVydHlNYXAsIG1fYXJndW1lbnRzKTsKICAgICBpZiAocmVzdWx0LnR5cGUoKSAhPSBDYWxsYmFj
a1Jlc3VsdFR5cGU6OlN1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRp
ZE5vdGhpbmc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0N1c3RvbVBhaW50SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0N1
c3RvbVBhaW50SW1hZ2UuaAppbmRleCA2OGI0MGM5OWVjYWIzYTVlM2UwYzkyYjJiMDEzZDc4NjUx
YTcyMTY3Li45ZGI2MGNiN2Q3ZjBlN2I2Nzc5OTAzMzllYmQ1MzY1YWI2MDhhMTU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9DdXN0b21QYWludEltYWdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3VzdG9tUGFpbnRJbWFnZS5o
CkBAIC0yOSw4ICsyOSw3IEBACiAKICNpbmNsdWRlICJHZW5lcmF0ZWRJbWFnZS5oIgogI2luY2x1
ZGUgIlBhaW50V29ya2xldEdsb2JhbFNjb3BlLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNPYmplY3QuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9XZWFrLmg+CisKICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBmYWY5Y2EwOGI1NTRkODgy
ZDY4YjIzNDVjOGY1YTYzNzU3YjFkMTJkLi5kZjM5Y2IyMzg0NWU3M2JmNTFhYzJiMDYxY2Y3OWM5
MzVmMzViOTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKQEAgLTk3MiwzMiArOTcyLDExIEBAIHZvaWQgUmVuZGVyU3R5bGU6OmFkZEN1c3Rv
bVBhaW50V2F0Y2hQcm9wZXJ0eShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgIGRhdGEuY3Vz
dG9tUGFpbnRXYXRjaGVkUHJvcGVydGllcyA9IHN0ZDo6bWFrZV91bmlxdWU8SGFzaFNldDxTdHJp
bmc+PigpOwogICAgIGRhdGEuY3VzdG9tUGFpbnRXYXRjaGVkUHJvcGVydGllcy0+YWRkKG5hbWUp
OwogfQotI2VuZGlmCiAKLWJvb2wgUmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVpcmVzUmVwYWludChj
b25zdCBSZW5kZXJTdHlsZSYgb3RoZXIsIE9wdGlvblNldDxTdHlsZURpZmZlcmVuY2VDb250ZXh0
U2Vuc2l0aXZlUHJvcGVydHk+JiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpIGNv
bnN0CitpbmxpbmUgc3RhdGljIGJvb2wgY2hhbmdlZEN1c3RvbVBhaW50V2F0Y2hlZFByb3BlcnR5
KGNvbnN0IFJlbmRlclN0eWxlJiBhLCBjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJiBh
RGF0YSwgY29uc3QgUmVuZGVyU3R5bGUmIGIsIGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEmIGJEYXRhKQogewotICAgIGlmICghcmVxdWlyZXNQYWludGluZygqdGhpcykgJiYgIXJlcXVp
cmVzUGFpbnRpbmcob3RoZXIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAobV9p
bmhlcml0ZWRGbGFncy52aXNpYmlsaXR5ICE9IG90aGVyLm1faW5oZXJpdGVkRmxhZ3MudmlzaWJp
bGl0eQotICAgICAgICB8fCBtX2luaGVyaXRlZEZsYWdzLnByaW50Q29sb3JBZGp1c3QgIT0gb3Ro
ZXIubV9pbmhlcml0ZWRGbGFncy5wcmludENvbG9yQWRqdXN0Ci0gICAgICAgIHx8IG1faW5oZXJp
dGVkRmxhZ3MuaW5zaWRlTGluayAhPSBvdGhlci5tX2luaGVyaXRlZEZsYWdzLmluc2lkZUxpbmsK
LSAgICAgICAgfHwgbV9pbmhlcml0ZWRGbGFncy5pbnNpZGVEZWZhdWx0QnV0dG9uICE9IG90aGVy
Lm1faW5oZXJpdGVkRmxhZ3MuaW5zaWRlRGVmYXVsdEJ1dHRvbgotICAgICAgICB8fCBtX3N1cnJv
dW5kRGF0YS0+Ym9yZGVyICE9IG90aGVyLm1fc3Vycm91bmREYXRhLT5ib3JkZXIKLSAgICAgICAg
fHwgIW1fYmFja2dyb3VuZERhdGEtPmlzRXF1aXZhbGVudEZvclBhaW50aW5nKCpvdGhlci5tX2Jh
Y2tncm91bmREYXRhKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAobV9yYXJlTm9u
SW5oZXJpdGVkRGF0YS5wdHIoKSAhPSBvdGhlci5tX3JhcmVOb25Jbmhlcml0ZWREYXRhLnB0cigp
Ci0gICAgICAgICYmIHJhcmVOb25Jbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNSZXBhaW50KCpt
X3JhcmVOb25Jbmhlcml0ZWREYXRhLCAqb3RoZXIubV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgY2hh
bmdlZENvbnRleHRTZW5zaXRpdmVQcm9wZXJ0aWVzKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0K
LSAgICBpZiAobV9yYXJlSW5oZXJpdGVkRGF0YS5wdHIoKSAhPSBvdGhlci5tX3JhcmVJbmhlcml0
ZWREYXRhLnB0cigpCi0gICAgICAgICYmIHJhcmVJbmhlcml0ZWREYXRhQ2hhbmdlUmVxdWlyZXNS
ZXBhaW50KCptX3JhcmVJbmhlcml0ZWREYXRhLCAqb3RoZXIubV9yYXJlSW5oZXJpdGVkRGF0YSkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0jaWYgRU5BQkxFKENTU19QQUlOVElOR19BUEkpCi0g
ICAgYXV0byogcHJvcGVydGllc0EgPSBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLnB0cigpLT5jdXN0
b21QYWludFdhdGNoZWRQcm9wZXJ0aWVzLmdldCgpOwotICAgIGF1dG8qIHByb3BlcnRpZXNCID0g
b3RoZXIubV9yYXJlTm9uSW5oZXJpdGVkRGF0YS5wdHIoKS0+Y3VzdG9tUGFpbnRXYXRjaGVkUHJv
cGVydGllcy5nZXQoKTsKKyAgICBhdXRvKiBwcm9wZXJ0aWVzQSA9IGFEYXRhLmN1c3RvbVBhaW50
V2F0Y2hlZFByb3BlcnRpZXMuZ2V0KCk7CisgICAgYXV0byogcHJvcGVydGllc0IgPSBiRGF0YS5j
dXN0b21QYWludFdhdGNoZWRQcm9wZXJ0aWVzLmdldCgpOwogCiAgICAgaWYgKFVOTElLRUxZKHBy
b3BlcnRpZXNBIHx8IHByb3BlcnRpZXNCKSkgewogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IG5vdCBuZWVkIHRvIHVzZSBDb21wdXRlZFN0eWxlRXh0cmFjdG9yIGhlcmUuCkBAIC0xMDEwLDE1
ICs5ODksMTUgQEAgYm9vbCBSZW5kZXJTdHlsZTo6Y2hhbmdlUmVxdWlyZXNSZXBhaW50KGNvbnN0
IFJlbmRlclN0eWxlJiBvdGhlciwgT3B0aW9uU2V0PFN0eWwKICAgICAgICAgICAgIGZvciAoYXV0
byYgbmFtZSA6ICp3YXRjaFByb3BlcnRpZXNNYXApIHsKICAgICAgICAgICAgICAgICBSZWZQdHI8
Q1NTVmFsdWU+IHZhbHVlQTsKICAgICAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVl
QjsKLSAgICAgICAgICAgICAgICBpZiAoaXNDdXN0b21Qcm9wZXJ0eU5hbWUobmFtZSkgJiYgZ2V0
Q3VzdG9tUHJvcGVydHkobmFtZSkgJiYgb3RoZXIuZ2V0Q3VzdG9tUHJvcGVydHkobmFtZSkpIHsK
LSAgICAgICAgICAgICAgICAgICAgdmFsdWVBID0gQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZTo6Y3Jl
YXRlKCpnZXRDdXN0b21Qcm9wZXJ0eShuYW1lKSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVl
QiA9IENTU0N1c3RvbVByb3BlcnR5VmFsdWU6OmNyZWF0ZSgqb3RoZXIuZ2V0Q3VzdG9tUHJvcGVy
dHkobmFtZSkpOworICAgICAgICAgICAgICAgIGlmIChpc0N1c3RvbVByb3BlcnR5TmFtZShuYW1l
KSAmJiBhLmdldEN1c3RvbVByb3BlcnR5KG5hbWUpICYmIGIuZ2V0Q3VzdG9tUHJvcGVydHkobmFt
ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVBID0gQ1NTQ3VzdG9tUHJvcGVydHlWYWx1
ZTo6Y3JlYXRlKCphLmdldEN1c3RvbVByb3BlcnR5KG5hbWUpKTsKKyAgICAgICAgICAgICAgICAg
ICAgdmFsdWVCID0gQ1NTQ3VzdG9tUHJvcGVydHlWYWx1ZTo6Y3JlYXRlKCpiLmdldEN1c3RvbVBy
b3BlcnR5KG5hbWUpKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQgPSBjc3NQcm9wZXJ0eUlEKG5hbWUpOwogICAg
ICAgICAgICAgICAgICAgICBpZiAoIXByb3BlcnR5SUQpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVBID0gZXh0cmFjdG9yLnZhbHVl
Rm9yUHJvcGVydHlpblN0eWxlKCp0aGlzLCBwcm9wZXJ0eUlEKTsKLSAgICAgICAgICAgICAgICAg
ICAgdmFsdWVCID0gZXh0cmFjdG9yLnZhbHVlRm9yUHJvcGVydHlpblN0eWxlKG90aGVyLCBwcm9w
ZXJ0eUlEKTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVBID0gZXh0cmFjdG9yLnZhbHVlRm9y
UHJvcGVydHlpblN0eWxlKGEsIHByb3BlcnR5SUQpOworICAgICAgICAgICAgICAgICAgICB2YWx1
ZUIgPSBleHRyYWN0b3IudmFsdWVGb3JQcm9wZXJ0eWluU3R5bGUoYiwgcHJvcGVydHlJRCk7CiAg
ICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKCh2YWx1ZUEgJiYgIXZhbHVl
QikgfHwgKCF2YWx1ZUEgJiYgdmFsdWVCKSkKQEAgLTEwMzIsNiArMTAxMSwzNSBAQCBib29sIFJl
bmRlclN0eWxlOjpjaGFuZ2VSZXF1aXJlc1JlcGFpbnQoY29uc3QgUmVuZGVyU3R5bGUmIG90aGVy
LCBPcHRpb25TZXQ8U3R5bAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorCisgICAg
cmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK2Jvb2wgUmVuZGVyU3R5bGU6OmNoYW5nZVJlcXVp
cmVzUmVwYWludChjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIsIE9wdGlvblNldDxTdHlsZURpZmZl
cmVuY2VDb250ZXh0U2Vuc2l0aXZlUHJvcGVydHk+JiBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVBy
b3BlcnRpZXMpIGNvbnN0Cit7CisgICAgaWYgKCFyZXF1aXJlc1BhaW50aW5nKCp0aGlzKSAmJiAh
cmVxdWlyZXNQYWludGluZyhvdGhlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlm
IChtX2luaGVyaXRlZEZsYWdzLnZpc2liaWxpdHkgIT0gb3RoZXIubV9pbmhlcml0ZWRGbGFncy52
aXNpYmlsaXR5CisgICAgICAgIHx8IG1faW5oZXJpdGVkRmxhZ3MucHJpbnRDb2xvckFkanVzdCAh
PSBvdGhlci5tX2luaGVyaXRlZEZsYWdzLnByaW50Q29sb3JBZGp1c3QKKyAgICAgICAgfHwgbV9p
bmhlcml0ZWRGbGFncy5pbnNpZGVMaW5rICE9IG90aGVyLm1faW5oZXJpdGVkRmxhZ3MuaW5zaWRl
TGluaworICAgICAgICB8fCBtX2luaGVyaXRlZEZsYWdzLmluc2lkZURlZmF1bHRCdXR0b24gIT0g
b3RoZXIubV9pbmhlcml0ZWRGbGFncy5pbnNpZGVEZWZhdWx0QnV0dG9uCisgICAgICAgIHx8IG1f
c3Vycm91bmREYXRhLT5ib3JkZXIgIT0gb3RoZXIubV9zdXJyb3VuZERhdGEtPmJvcmRlcgorICAg
ICAgICB8fCAhbV9iYWNrZ3JvdW5kRGF0YS0+aXNFcXVpdmFsZW50Rm9yUGFpbnRpbmcoKm90aGVy
Lm1fYmFja2dyb3VuZERhdGEpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmIChtX3Jh
cmVOb25Jbmhlcml0ZWREYXRhLnB0cigpICE9IG90aGVyLm1fcmFyZU5vbkluaGVyaXRlZERhdGEu
cHRyKCkKKyAgICAgICAgJiYgcmFyZU5vbkluaGVyaXRlZERhdGFDaGFuZ2VSZXF1aXJlc1JlcGFp
bnQoKm1fcmFyZU5vbkluaGVyaXRlZERhdGEsICpvdGhlci5tX3JhcmVOb25Jbmhlcml0ZWREYXRh
LCBjaGFuZ2VkQ29udGV4dFNlbnNpdGl2ZVByb3BlcnRpZXMpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIGlmIChtX3JhcmVJbmhlcml0ZWREYXRhLnB0cigpICE9IG90aGVyLm1fcmFyZUlu
aGVyaXRlZERhdGEucHRyKCkKKyAgICAgICAgJiYgcmFyZUluaGVyaXRlZERhdGFDaGFuZ2VSZXF1
aXJlc1JlcGFpbnQoKm1fcmFyZUluaGVyaXRlZERhdGEsICpvdGhlci5tX3JhcmVJbmhlcml0ZWRE
YXRhKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyNpZiBFTkFCTEUoQ1NTX1BBSU5USU5HX0FQ
SSkKKyAgICBpZiAoY2hhbmdlZEN1c3RvbVBhaW50V2F0Y2hlZFByb3BlcnR5KCp0aGlzLCAqbV9y
YXJlTm9uSW5oZXJpdGVkRGF0YSwgb3RoZXIsICpvdGhlci5tX3JhcmVOb25Jbmhlcml0ZWREYXRh
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIAogICAgIHJldHVybiBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3Bl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNw
cAppbmRleCAzZTNkOTU2MWYyNjY3M2FmODU2Mjk1YTgwMmM3YTA0NjZiZDA0NGU4Li5mYjQ4MzQy
M2M0MjU0ZWE4N2VhN2FkZGQ5OWE2OGVkN2IxY2Y5MWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC0xNDEsNiArMTQx
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OnJlZ2lzdGVy
UGFpbnQoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLAogCiAgICAgLy8gRklYTUU6IGNvbnN0cnVjdCBk
b2N1bWVudERlZmluaXRpb24gKHN0ZXAgMjIpLgogCisgICAgLy8gRklYTUU6IHdlIHNob3VsZCBv
bmx5IHJlcGFpbnQgYWZmZWN0ZWQgY3VzdG9tIHBhaW50IGltYWdlcyA8aHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjMyMj4uCiAgICAgaWYgKHJlc3BvbnNpYmxlRG9j
dW1lbnQoKSAmJiByZXNwb25zaWJsZURvY3VtZW50KCktPnJlbmRlclZpZXcoKSkKICAgICAgICAg
cmVzcG9uc2libGVEb2N1bWVudCgpLT5yZW5kZXJWaWV3KCktPnJlcGFpbnRSb290Q29udGVudHMo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtsZXRzL1BhaW50V29ya2xldEdsb2JhbFNj
b3BlLmgKaW5kZXggZjk4ZTU3N2UzZDQ5YTEzOTQwNjE2MzdjZGQxMjI1MmQ1YmJmYWE1Mi4uN2Fi
NmI1MTYxZDU1MzMyZTc5MGMyOTQyZmIxYTliYjE1NzRjNWQzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2xldHMvUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrbGV0cy9QYWludFdvcmtsZXRHbG9iYWxTY29wZS5oCkBAIC00NiwxMiArNDYs
MTIgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJlZ2lzdGVyUGFpbnQoSlNDOjpF
eGVjU3RhdGUmLCBKU0RPTUdsb2JhbE9iamVjdCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgSlNDOjpT
dHJvbmc8SlNDOjpKU09iamVjdD4gcGFpbnRDb25zdHJ1Y3Rvcik7CiAgICAgZG91YmxlIGRldmlj
ZVBpeGVsUmF0aW8oKSBjb25zdDsKIAorICAgIC8vIEFsbCBwYWludCBkZWZpbml0aW9ucyBtdXN0
IGJlIGRlc3Ryb3llZCBiZWZvcmUgdGhlIHZtIGlzIGRlc3Ryb3llZCwgYmVjYXVzZSBvdGhlcndp
c2UgdGhleSB3aWxsIHBvaW50IHRvIGZyZWVkIG1lbW9yeS4KICAgICBzdHJ1Y3QgUGFpbnREZWZp
bml0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFBhaW50RGVmaW5pdGlvbj4gewogICAgICAg
ICBQYWludERlZmluaXRpb24oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBKU0M6OkpTT2JqZWN0
KiBwYWludENvbnN0cnVjdG9yLCBSZWY8Q1NTUGFpbnRDYWxsYmFjaz4mJiwgVmVjdG9yPFN0cmlu
Zz4mJiBpbnB1dFByb3BlcnRpZXMsIFZlY3RvcjxTdHJpbmc+JiYgaW5wdXRBcmd1bWVudHMpOwog
CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyBuYW1lOwotICAgICAgICAvLyBUaGlzIG1hcCBt
dXN0IGJlIGNsZWFyZWQgYmVmb3JlIHRoZSB2bSBpcyBkZXN0cm95ZWQhCi0gICAgICAgIEpTQzo6
SlNPYmplY3QqIHBhaW50Q29uc3RydWN0b3IgeyBudWxscHRyIH07CisgICAgICAgIGNvbnN0IEpT
Qzo6SlNPYmplY3QqIGNvbnN0IHBhaW50Q29uc3RydWN0b3I7CiAgICAgICAgIGNvbnN0IFJlZjxD
U1NQYWludENhbGxiYWNrPiBwYWludENhbGxiYWNrOwogICAgICAgICBjb25zdCBWZWN0b3I8U3Ry
aW5nPiBpbnB1dFByb3BlcnRpZXM7CiAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+IGlucHV0
QXJndW1lbnRzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>