<?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>71785</bug_id>
          
          <creation_ts>2011-11-08 01:53:07 -0800</creation_ts>
          <short_desc>Fold ImageBySizeCache again into CSSImageGeneratorValue</short_desc>
          <delta_ts>2011-11-08 04:30:21 -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>CSS</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>497861</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-08 01:53:07 -0800</bug_when>
    <thetext>Fold ImageBySizeCache again into CSSImageGeneratorValue. It&apos;s no longer needed by CachedImage and thus we can remove this extra layer of abstraction again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497900</commentid>
    <comment_count>1</comment_count>
      <attachid>114028</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-08 03:20:09 -0800</bug_when>
    <thetext>Created attachment 114028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497923</commentid>
    <comment_count>2</comment_count>
      <attachid>114028</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-11-08 03:54:06 -0800</bug_when>
    <thetext>Comment on attachment 114028
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        CachedImage has switched to SVGImageCache and now longer needs it.

no longer needs it

r=me

Please wait for all bots before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497938</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-08 04:28:29 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 114028 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114028&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        CachedImage has switched to SVGImageCache and now longer needs it.
&gt; 
&gt; no longer needs it
&gt; 
&gt; r=me
&gt; 
&gt; Please wait for all bots before landing.

Mac slave is hosed, I&apos;m trying manually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497941</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-08 04:30:21 -0800</bug_when>
    <thetext>Landed in r99549.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114028</attachid>
            <date>2011-11-08 03:20:09 -0800</date>
            <delta_ts>2011-11-08 03:54:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>KillImageBySizeCache.diff</filename>
            <type>text/plain</type>
            <size>19486</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5NTQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMTEtMDggIE5pa29sYXMg
WmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CisKKyAgICAgICAgRm9sZCBJbWFnZUJ5
U2l6ZUNhY2hlIGFnYWluIGludG8gQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE3ODUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgSW1hZ2VCeVNpemVDYWNo
ZSwgYW5kIGZvbGQgaXQgaW50byBDU1NJbWFnZUdlbmVyYXRvclZhbHVlLCBhcyBpdCB1c2VkIHRv
IGJlLgorICAgICAgICBDYWNoZWRJbWFnZSBoYXMgc3dpdGNoZWQgdG8gU1ZHSW1hZ2VDYWNoZSBh
bmQgbm93IGxvbmdlciBuZWVkcyBpdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGNzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U0ltYWdlR2VuZXJhdG9yVmFsdWU6OmFkZENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlOjpyZW1vdmVDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Z2V0SW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZTo6cHV0SW1hZ2UpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZUdlbmVy
YXRvclZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTaXplQW5kQ291bnQ6OlNpemVBbmRDb3Vu
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NJbWFnZUdlbmVyYXRvclZhbHVlOjpjbGllbnRzKToK
KyAgICAgICAgKiByZW5kZXJpbmcvSW1hZ2VCeVNpemVDYWNoZS5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogcmVuZGVyaW5nL0ltYWdlQnlTaXplQ2FjaGUuaDogUmVtb3ZlZC4KKwogMjAxMS0xMS0w
OCAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBT
d2l0Y2ggU1ZHSW1hZ2UgY2FjaGUgdG8gc3RvcmUgSW1hZ2VCdWZmZXJzIGluc3RlYWQgb2Ygd2hv
bGUgU1ZHSW1hZ2VzLCBpbmNsdWRpbmcgYSBET00vUmVuZGVyIHRyZWUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CShyZXZpc2lvbiA5OTUzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMjE3LDcgKzEyMTcsNiBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCiAgICAgcmVuZGVyaW5nL0hp
dFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAKICAgICByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5j
cHAKLSAgICByZW5kZXJpbmcvSW1hZ2VCeVNpemVDYWNoZS5jcHAKICAgICByZW5kZXJpbmcvSW5s
aW5lQm94LmNwcAogICAgIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAogICAgIHJlbmRlcmlu
Zy9JbmxpbmVUZXh0Qm94LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShy
ZXZpc2lvbiA5OTUzOSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTMwMjUsOCArMzAyNSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggXAotCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbWFnZUJ5U2l6ZUNhY2hlLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ltYWdl
QnlTaXplQ2FjaGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guaCBcCiAJU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNp
b24gOTk1MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTY5LDcgKzExNjksNiBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJs
ZUxheW91dC5jcHAgXAogICAgIHJlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3Bw
IFwKICAgICByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgXAotICAgIHJlbmRlcmluZy9JbWFn
ZUJ5U2l6ZUNhY2hlLmNwcCBcCiAgICAgcmVuZGVyaW5nL0lubGluZUJveC5jcHAgXAogICAgIHJl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBcCiAgICAgcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwIFwKQEAgLTIyNjksNyArMjI2OCw2IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9G
aXhlZFRhYmxlTGF5b3V0LmggXAogICAgIHJlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3Rh
dGUuaCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCBcCi0gICAgcmVuZGVyaW5nL0lt
YWdlQnlTaXplQ2FjaGUuaCBcCiAgICAgcmVuZGVyaW5nL0lubGluZUJveC5oIFwKICAgICByZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5oIFwKICAgICByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk5NTM5KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC04OTIsNyArODkyLDYgQEAKICAgICAgICAg
ICAgICdyZW5kZXJpbmcvR2FwUmVjdHMuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0hpdFRl
c3RSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgnLAot
ICAgICAgICAgICAgJ3JlbmRlcmluZy9JbWFnZUJ5U2l6ZUNhY2hlLmgnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9JbmxpbmVCb3guaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0lubGluZUZs
b3dCb3guaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0lubGluZVRleHRCb3guaCcsCkBAIC00
NTQ1LDcgKzQ1NDQsNiBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNm
b3JtU3RhdGUuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9y
bVN0YXRlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCcsCi0g
ICAgICAgICAgICAncmVuZGVyaW5nL0ltYWdlQnlTaXplQ2FjaGUuY3BwJywKICAgICAgICAgICAg
ICdyZW5kZXJpbmcvSW5saW5lQm94LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0lubGlu
ZUZsb3dCb3guY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvSW5saW5lSXRlcmF0b3IuaCcs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
cmV2aXNpb24gOTk1MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzM0MTgsMTQgKzMzNDE4LDYgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEltYWdl
QnlTaXplQ2FjaGUuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlxyZW5kZXJpbmdcSW1hZ2VCeVNpemVDYWNoZS5oIgotCQkJCT4KLQkJCTwvRmls
ZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcSW5saW5lQm94LmNw
cCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5OTUzOSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTcxNSw4ICsxNzE1LDYgQEAKIAkJNkVCRjBFNzcxMkE5ODY4ODAwREIx
NzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2RUJGMEU3NTEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJl
RmxvYXQuaCAqLzsgfTsKIAkJNkVFOEE3NzIxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250
ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RUU4QTc3MDEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmNwcCAqLzsgfTsKIAkJNkVFOEE3NzMxMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250
ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkVFOEE3NzExMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0cmlidXRl
cy5oICovOyB9OwotCQk3MUNDQjQ5QzE0NDgyNEFDMDBDNjc2RDYgLyogSW1hZ2VCeVNpemVDYWNo
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUND
QjQ5QTE0NDgyNEFDMDBDNjc2RDYgLyogSW1hZ2VCeVNpemVDYWNoZS5jcHAgKi87IH07Ci0JCTcx
Q0NCNDlEMTQ0ODI0QUMwMEM2NzZENiAvKiBJbWFnZUJ5U2l6ZUNhY2hlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUNDQjQ5QjE0NDgyNEFDMDBDNjc2
RDYgLyogSW1hZ2VCeVNpemVDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcxRkI5NjdCMTM4M0Q2NDYwMEFDOEE0QyAvKiBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MUZCOTY3QTEzODNENjQ2MDBBQzhBNEMgLyogU1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNjI2RTAyMEVGMDIyRkUwMEEwN0UyMCAvKiBGb250
RmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzI2MjZFMDEwRUYwMjJGRTAwQTA3RTIwIC8qIEZvbnRGYXN0UGF0aC5jcHAgKi87IH07CiAJ
CTc1MEQwMjkzMTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTBEMDI5MTExRDBFN0Yz
MDBCRDFCMjcgLyogUmVuZGVySW5wdXRTcGVlY2guY3BwICovOyB9OwpAQCAtODkxOCw4ICs4OTE2
LDYgQEAKIAkJNkVCRjBFNzUxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT0VTVGV4dHVyZUZsb2F0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFRThBNzcwMTBGODAzRjMwMDVBNEEyNCAvKiBK
U1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNkVFOEE3NzExMEY4MDNGMzAwNUE0QTI0IC8qIEpTV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29udGV4
dEF0dHJpYnV0ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzFDQ0I0OUExNDQ4
MjRBQzAwQzY3NkQ2IC8qIEltYWdlQnlTaXplQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCeVNpemVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTcxQ0NCNDlCMTQ0ODI0QUMwMEM2NzZENiAvKiBJbWFnZUJ5U2l6ZUNhY2hl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQnlTaXplQ2FjaGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFGQjk2N0ExMzgzRDY0NjAwQUM4QTRDIC8q
IFNWR0FuaW1hdGVkRW51bWVyYXRpb25Qcm9wZXJ0eVRlYXJPZmYuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvblByb3BlcnR5VGVhck9mZi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjYyNkUwMTBFRjAyMkZFMDBBMDdFMjAg
LyogRm9udEZhc3RQYXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEZvbnRGYXN0UGF0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1MEQwMjkx
MTFEMEU3RjMwMEJEMUIyNyAvKiBSZW5kZXJJbnB1dFNwZWVjaC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJJbnB1dFNwZWVjaC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMDc1Myw4ICsyMDc0OSw2IEBACiAJCQkJOTMwOTA4OTAwQUY3
RURFNDAwODFERjAxIC8qIEhpdFRlc3RSZXF1ZXN0LmggKi8sCiAJCQkJOTMwN0YxRDUwQUYyRDU5
MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuY3BwICovLAogCQkJCTkzMDdGMUQ2MEFGMkQ1OTAw
MERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0LmggKi8sCi0JCQkJNzFDQ0I0OUExNDQ4MjRBQzAwQzY3
NkQ2IC8qIEltYWdlQnlTaXplQ2FjaGUuY3BwICovLAotCQkJCTcxQ0NCNDlCMTQ0ODI0QUMwMEM2
NzZENiAvKiBJbWFnZUJ5U2l6ZUNhY2hlLmggKi8sCiAJCQkJQThDRkY1REYwQTE1NUEwNTAwMEE0
MjM0IC8qIElubGluZUJveC5jcHAgKi8sCiAJCQkJQThDRkY1REUwQTE1NUEwNTAwMEE0MjM0IC8q
IElubGluZUJveC5oICovLAogCQkJCUE4Q0ZGNUREMEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVG
bG93Qm94LmNwcCAqLywKQEAgLTI0NjExLDcgKzI0NjA1LDYgQEAKIAkJCQkyOUQ3QkNGQTE0NDRB
RjdEMDA3MDYxOUMgLyogQWNjZXNzaWJpbGl0eVNwaW5CdXR0b24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTlCMzc1RURCMTQ0NzhBMDEwMEYzQ0FFNSAvKiBNaWNyb0RhdGFJdGVtTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQzNUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNo
TW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzFDQ0I0OUQxNDQ4MjRBQzAwQzY3NkQ2IC8q
IEltYWdlQnlTaXplQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NTM4NjAzMTQ0ODlFOTgw
MEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCThBQTYxRDAw
MTQ0RDU5NUIwMEYzNzM1MCAvKiBDU1NSZWdpb25TdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3NjY1MDEzMTQ0RkFBNDIwMEY2QkI1MSAvKiBFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjc0NzQsNyArMjc0NjcsNiBAQAogCQkJCTk3M0RDNjNGMTQ1QTk0MDkwMDI4NDJD
MiAvKiBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlB
RjJENkMxNDQzNUQyMTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hYy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0OUZDN0E1MDE0NDRBRjVGMDBBNUQ4NjQgLyogRGlzcGxheVJlZnJl
c2hNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTcxQ0NCNDlDMTQ0ODI0QUMwMEM2NzZE
NiAvKiBJbWFnZUJ5U2l6ZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3NTM4NjAyMTQ0
ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OEFBNjFDRkYxNDRENTk1QjAwRjM3MzUwIC8qIENTU1JlZ2lvblN0eWxlUnVsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzY2NTA0RjE0NEZCRkZFMDBGNkJCNTEgLyogRXZlbnRGYWN0b3J5LmNw
cCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJh
dG9yVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdl
bmVyYXRvclZhbHVlLmNwcAkocmV2aXNpb24gOTk1MzkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDExICsyNyw5
IEBACiAjaW5jbHVkZSAiQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIgogCiAjaW5jbHVkZSAiSW1h
Z2UuaCIKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAiSW50U2l6ZUhhc2guaCIKLSNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2lu
Y2x1ZGUgIlN0eWxlR2VuZXJhdGVkSW1hZ2UuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OCwyNSArNDYsNjUgQEAgQ1NTSW1h
Z2VHZW5lcmF0b3JWYWx1ZTo6fkNTU0ltYWdlR2VuZXJhdAogdm9pZCBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlOjphZGRDbGllbnQoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkKIHsKICAgICByZWYoKTsKLSAgICBtX2ltYWdlQ2FjaGUuYWRkQ2xpZW50KHJlbmRlcmVy
LCBzaXplKTsKKworICAgIEFTU0VSVChyZW5kZXJlcik7CisgICAgaWYgKCFzaXplLmlzRW1wdHko
KSkKKyAgICAgICAgbV9zaXplcy5hZGQoc2l6ZSk7CisKKyAgICBSZW5kZXJPYmplY3RTaXplQ291
bnRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9jbGllbnRzLmZpbmQocmVuZGVyZXIpOworICAgIGlmIChp
dCA9PSBtX2NsaWVudHMuZW5kKCkpCisgICAgICAgIG1fY2xpZW50cy5hZGQocmVuZGVyZXIsIFNp
emVBbmRDb3VudChzaXplLCAxKSk7CisgICAgZWxzZSB7CisgICAgICAgIFNpemVBbmRDb3VudCYg
c2l6ZUNvdW50ID0gaXQtPnNlY29uZDsKKyAgICAgICAgKytzaXplQ291bnQuY291bnQ7CisgICAg
fQogfQogCiB2b2lkIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OnJlbW92ZUNsaWVudChSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQogewotICAgIG1faW1hZ2VDYWNoZS5yZW1vdmVDbGllbnQocmVuZGVy
ZXIpOworICAgIEFTU0VSVChyZW5kZXJlcik7CisgICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFw
OjppdGVyYXRvciBpdCA9IG1fY2xpZW50cy5maW5kKHJlbmRlcmVyKTsKKyAgICBBU1NFUlQoaXQg
IT0gbV9jbGllbnRzLmVuZCgpKTsKKworICAgIEludFNpemUgcmVtb3ZlZEltYWdlU2l6ZTsKKyAg
ICBTaXplQW5kQ291bnQmIHNpemVDb3VudCA9IGl0LT5zZWNvbmQ7CisgICAgSW50U2l6ZSBzaXpl
ID0gc2l6ZUNvdW50LnNpemU7CisgICAgaWYgKCFzaXplLmlzRW1wdHkoKSkgeworICAgICAgICBt
X3NpemVzLnJlbW92ZShzaXplKTsKKyAgICAgICAgaWYgKCFtX3NpemVzLmNvbnRhaW5zKHNpemUp
KQorICAgICAgICAgICAgbV9pbWFnZXMucmVtb3ZlKHNpemUpOworICAgIH0KKworICAgIGlmICgh
LS1zaXplQ291bnQuY291bnQpCisgICAgICAgIG1fY2xpZW50cy5yZW1vdmUocmVuZGVyZXIpOwor
CiAgICAgZGVyZWYoKTsKIH0KIAogSW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmdldElt
YWdlKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAg
Ly8gSWYgcmVuZGVyZXIgaXMgdGhlIG9ubHkgY2xpZW50LCBtYWtlIHN1cmUgd2UgZG9uJ3QgZGVs
ZXRlIHRoaXMsIGlmIHRoZSBzaXplIGNoYW5nZXMgKGFzIHRoaXMgd2lsbCByZXN1bHQgaW4gYWRk
Q2xpZW50L3JlbW92ZUNsaWVudCBjYWxscykuCi0gICAgUmVmUHRyPENTU0ltYWdlR2VuZXJhdG9y
VmFsdWU+IHByb3RlY3QodGhpcyk7Ci0gICAgcmV0dXJuIG1faW1hZ2VDYWNoZS5nZXRJbWFnZShy
ZW5kZXJlciwgc2l6ZSk7CisgICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOjppdGVyYXRvciBp
dCA9IG1fY2xpZW50cy5maW5kKHJlbmRlcmVyKTsKKyAgICBpZiAoaXQgIT0gbV9jbGllbnRzLmVu
ZCgpKSB7CisgICAgICAgIFNpemVBbmRDb3VudCYgc2l6ZUNvdW50ID0gaXQtPnNlY29uZDsKKyAg
ICAgICAgSW50U2l6ZSBvbGRTaXplID0gc2l6ZUNvdW50LnNpemU7CisgICAgICAgIGlmIChvbGRT
aXplICE9IHNpemUpIHsKKyAgICAgICAgICAgIFJlZlB0cjxDU1NJbWFnZUdlbmVyYXRvclZhbHVl
PiBwcm90ZWN0KHRoaXMpOworICAgICAgICAgICAgcmVtb3ZlQ2xpZW50KHJlbmRlcmVyKTsKKyAg
ICAgICAgICAgIGFkZENsaWVudChyZW5kZXJlciwgc2l6ZSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICAvLyBEb24ndCBnZW5lcmF0ZSBhbiBpbWFnZSBmb3IgZW1wdHkgc2l6ZXMuCisgICAgaWYg
KHNpemUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIExvb2sgdXAgdGhl
IGltYWdlIGluIG91ciBjYWNoZS4KKyAgICByZXR1cm4gbV9pbWFnZXMuZ2V0KHNpemUpLmdldCgp
OwogfQogCiB2b2lkIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OnB1dEltYWdlKGNvbnN0IEludFNp
emUmIHNpemUsIFBhc3NSZWZQdHI8SW1hZ2U+IGltYWdlKQogewotICAgIG1faW1hZ2VDYWNoZS5w
dXRJbWFnZShzaXplLCBpbWFnZSk7CisgICAgbV9pbWFnZXMuYWRkKHNpemUsIGltYWdlKTsKIH0K
IAogU3R5bGVHZW5lcmF0ZWRJbWFnZSogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZTo6Z2VuZXJhdGVk
SW1hZ2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1
ZS5oCShyZXZpc2lvbiA5OTUzMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVy
YXRvclZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDkgQEAKICNkZWZpbmUgQ1NT
SW1hZ2VHZW5lcmF0b3JWYWx1ZV9oCiAKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgotI2luY2x1ZGUg
IkltYWdlQnlTaXplQ2FjaGUuaCIKKyNpbmNsdWRlICJJbnRTaXplSGFzaC5oIgorI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zNSw2ICszNywxOSBAQCBjbGFzcyBJbWFnZTsKIGNsYXNzIFJl
bmRlck9iamVjdDsKIGNsYXNzIFN0eWxlR2VuZXJhdGVkSW1hZ2U7CiAKK3N0cnVjdCBTaXplQW5k
Q291bnQgeworICAgIFNpemVBbmRDb3VudChJbnRTaXplIG5ld1NpemUgPSBJbnRTaXplKCksIGlu
dCBuZXdDb3VudCA9IDApCisgICAgICAgIDogc2l6ZShuZXdTaXplKQorICAgICAgICAsIGNvdW50
KG5ld0NvdW50KQorICAgIHsKKyAgICB9CisKKyAgICBJbnRTaXplIHNpemU7CisgICAgaW50IGNv
dW50OworfTsKKwordHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIFNpemVBbmRD
b3VudD4gUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwOworCiBjbGFzcyBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DU1NJbWFn
ZUdlbmVyYXRvclZhbHVlKCk7CkBAIC01MywxMSArNjgsMTQgQEAgcHJvdGVjdGVkOgogCiAgICAg
SW1hZ2UqIGdldEltYWdlKFJlbmRlck9iamVjdCosIGNvbnN0IEludFNpemUmKTsKICAgICB2b2lk
IHB1dEltYWdlKGNvbnN0IEludFNpemUmLCBQYXNzUmVmUHRyPEltYWdlPik7Ci0gICAgY29uc3Qg
UmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwJiBjbGllbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pbWFn
ZUNhY2hlLmNsaWVudHMoKTsgfQorICAgIGNvbnN0IFJlbmRlck9iamVjdFNpemVDb3VudE1hcCYg
Y2xpZW50cygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50czsgfQogCi0gICAgSW1hZ2VCeVNpemVD
YWNoZSBtX2ltYWdlQ2FjaGU7CiAgICAgUmVmUHRyPFN0eWxlR2VuZXJhdGVkSW1hZ2U+IG1faW1h
Z2U7CiAgICAgYm9vbCBtX2FjY2Vzc2VkSW1hZ2U7CisKKyAgICBIYXNoQ291bnRlZFNldDxJbnRT
aXplPiBtX3NpemVzOyAvLyBBIGNvdW50IG9mIGhvdyBtYW55IHRpbWVzIGEgZ2l2ZW4gaW1hZ2Ug
c2l6ZSBpcyBpbiB1c2UuCisgICAgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwIG1fY2xpZW50czsg
Ly8gQSBtYXAgZnJvbSBSZW5kZXJPYmplY3RzICh3aXRoIGVudHJ5IGNvdW50KSB0byBpbWFnZSBz
aXplcy4KKyAgICBIYXNoTWFwPEludFNpemUsIFJlZlB0cjxJbWFnZT4gPiBtX2ltYWdlczsgLy8g
QSBjYWNoZSBvZiBJbWFnZSBvYmplY3RzIGJ5IGltYWdlIHNpemUuCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW1hZ2VCeVNpemVD
YWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ltYWdlQnlT
aXplQ2FjaGUuY3BwCShyZXZpc2lvbiA5OTUzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbWFnZUJ5U2l6ZUNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkltYWdlQnlTaXpl
Q2FjaGUuaCIKLQotI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUltYWdlQnlT
aXplQ2FjaGU6OkltYWdlQnlTaXplQ2FjaGUoKQotewotfQotCi12b2lkIEltYWdlQnlTaXplQ2Fj
aGU6OmFkZENsaWVudChjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXpl
JiBzaXplKQotewotICAgIEFTU0VSVChyZW5kZXJlcik7Ci0gICAgaWYgKCFzaXplLmlzRW1wdHko
KSkKLSAgICAgICAgbV9zaXplcy5hZGQoc2l6ZSk7Ci0gICAgCi0gICAgUmVuZGVyT2JqZWN0U2l6
ZUNvdW50TWFwOjppdGVyYXRvciBpdCA9IG1fY2xpZW50cy5maW5kKHJlbmRlcmVyKTsKLSAgICBp
ZiAoaXQgPT0gbV9jbGllbnRzLmVuZCgpKQotICAgICAgICBtX2NsaWVudHMuYWRkKHJlbmRlcmVy
LCBTaXplQW5kQ291bnQoc2l6ZSwgMSkpOwotICAgIGVsc2UgewotICAgICAgICBTaXplQW5kQ291
bnQmIHNpemVDb3VudCA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgICsrc2l6ZUNvdW50LmNvdW50Owot
ICAgIH0KLX0KLQotdm9pZCBJbWFnZUJ5U2l6ZUNhY2hlOjpyZW1vdmVDbGllbnQoY29uc3QgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcikKLXsKLSAgICBBU1NFUlQocmVuZGVyZXIpOwotICAgIFJlbmRl
ck9iamVjdFNpemVDb3VudE1hcDo6aXRlcmF0b3IgaXQgPSBtX2NsaWVudHMuZmluZChyZW5kZXJl
cik7Ci0gICAgQVNTRVJUKGl0ICE9IG1fY2xpZW50cy5lbmQoKSk7Ci0KLSAgICBJbnRTaXplIHJl
bW92ZWRJbWFnZVNpemU7Ci0gICAgU2l6ZUFuZENvdW50JiBzaXplQ291bnQgPSBpdC0+c2Vjb25k
OwotICAgIEludFNpemUgc2l6ZSA9IHNpemVDb3VudC5zaXplOwotICAgIGlmICghc2l6ZS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgbV9zaXplcy5yZW1vdmUoc2l6ZSk7Ci0gICAgICAgIGlmICghbV9z
aXplcy5jb250YWlucyhzaXplKSkKLSAgICAgICAgICAgIG1faW1hZ2VzLnJlbW92ZShzaXplKTsK
LSAgICB9Ci0gICAgCi0gICAgaWYgKCEtLXNpemVDb3VudC5jb3VudCkKLSAgICAgICAgbV9jbGll
bnRzLnJlbW92ZShyZW5kZXJlcik7Ci19Ci0KLUltYWdlKiBJbWFnZUJ5U2l6ZUNhY2hlOjpnZXRJ
bWFnZShjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQot
ewotICAgIFJlbmRlck9iamVjdFNpemVDb3VudE1hcDo6aXRlcmF0b3IgaXQgPSBtX2NsaWVudHMu
ZmluZChyZW5kZXJlcik7Ci0gICAgaWYgKGl0ICE9IG1fY2xpZW50cy5lbmQoKSkgewotICAgICAg
ICBTaXplQW5kQ291bnQmIHNpemVDb3VudCA9IGl0LT5zZWNvbmQ7Ci0gICAgICAgIEludFNpemUg
b2xkU2l6ZSA9IHNpemVDb3VudC5zaXplOwotICAgICAgICBpZiAob2xkU2l6ZSAhPSBzaXplKSB7
Ci0gICAgICAgICAgICByZW1vdmVDbGllbnQocmVuZGVyZXIpOwotICAgICAgICAgICAgYWRkQ2xp
ZW50KHJlbmRlcmVyLCBzaXplKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIERvbid0IGdl
bmVyYXRlIGFuIGltYWdlIGZvciBlbXB0eSBzaXplcy4KLSAgICBpZiAoc2l6ZS5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgLy8gTG9vayB1cCB0aGUgaW1hZ2UgaW4gb3VyIGNh
Y2hlLgotICAgIHJldHVybiBtX2ltYWdlcy5nZXQoc2l6ZSkuZ2V0KCk7Ci19Ci0KLXZvaWQgSW1h
Z2VCeVNpemVDYWNoZTo6cHV0SW1hZ2UoY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGFzc1JlZlB0cjxJ
bWFnZT4gaW1hZ2UpCi17Ci0gICAgbV9pbWFnZXMuYWRkKHNpemUsIGltYWdlKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ltYWdl
QnlTaXplQ2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW1h
Z2VCeVNpemVDYWNoZS5oCShyZXZpc2lvbiA5OTUzOSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbWFnZUJ5U2l6ZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNjcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpZm5kZWYgSW1hZ2VCeVNpemVDYWNoZV9oCi0jZGVmaW5lIEltYWdl
QnlTaXplQ2FjaGVfaAotCi0jaW5jbHVkZSAiSW50U2l6ZUhhc2guaCIKLSNpbmNsdWRlIDx3dGYv
SGFzaENvdW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbWFnZTsKLWNsYXNz
IFJlbmRlck9iamVjdDsKLQotc3RydWN0IFNpemVBbmRDb3VudCB7Ci0gICAgU2l6ZUFuZENvdW50
KEludFNpemUgbmV3U2l6ZSA9IEludFNpemUoKSwgaW50IG5ld0NvdW50ID0gMCkKLSAgICAgICAg
OiBzaXplKG5ld1NpemUpCi0gICAgICAgICwgY291bnQobmV3Q291bnQpCi0gICAgewotICAgIH0K
LQotICAgIEludFNpemUgc2l6ZTsKLSAgICBpbnQgY291bnQ7Ci19OwotCi10eXBlZGVmIEhhc2hN
YXA8Y29uc3QgUmVuZGVyT2JqZWN0KiwgU2l6ZUFuZENvdW50PiBSZW5kZXJPYmplY3RTaXplQ291
bnRNYXA7Ci0KLWNsYXNzIEltYWdlQnlTaXplQ2FjaGUgewotcHVibGljOgotICAgIEltYWdlQnlT
aXplQ2FjaGUoKTsKLQotICAgIHZvaWQgYWRkQ2xpZW50KGNvbnN0IFJlbmRlck9iamVjdCosIGNv
bnN0IEludFNpemUmKTsKLSAgICB2b2lkIHJlbW92ZUNsaWVudChjb25zdCBSZW5kZXJPYmplY3Qq
KTsKLQotICAgIEltYWdlKiBnZXRJbWFnZShjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBJbnRT
aXplJik7Ci0gICAgdm9pZCBwdXRJbWFnZShjb25zdCBJbnRTaXplJiwgUGFzc1JlZlB0cjxJbWFn
ZT4pOwotCi0gICAgY29uc3QgUmVuZGVyT2JqZWN0U2l6ZUNvdW50TWFwJiBjbGllbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9jbGllbnRzOyB9Ci0KLXByaXZhdGU6Ci0gICAgSGFzaENvdW50ZWRTZXQ8
SW50U2l6ZT4gbV9zaXplczsgLy8gQSBjb3VudCBvZiBob3cgbWFueSB0aW1lcyBhIGdpdmVuIGlt
YWdlIHNpemUgaXMgaW4gdXNlLgotICAgIFJlbmRlck9iamVjdFNpemVDb3VudE1hcCBtX2NsaWVu
dHM7IC8vIEEgbWFwIGZyb20gUmVuZGVyT2JqZWN0cyAod2l0aCBlbnRyeSBjb3VudCkgdG8gaW1h
Z2Ugc2l6ZXMuCi0gICAgSGFzaE1hcDxJbnRTaXplLCBSZWZQdHI8SW1hZ2U+ID4gbV9pbWFnZXM7
IC8vIEEgY2FjaGUgb2YgSW1hZ2Ugb2JqZWN0cyBieSBpbWFnZSBzaXplLgotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSW1hZ2VCeVNpemVDYWNoZV9oCg==
</data>
<flag name="review"
          id="112573"
          type_id="1"
          status="+"
          setter="zherczeg"
    />
          </attachment>
      

    </bug>

</bugzilla>