<?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>77621</bug_id>
          
          <creation_ts>2012-02-02 03:50:54 -0800</creation_ts>
          <short_desc>Move remaining implementation from CSSStyleDeclaration to subclasses</short_desc>
          <delta_ts>2012-02-03 09:39:39 -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>
          
          <blocked>77745</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547762</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-02 03:50:54 -0800</bug_when>
    <thetext>Clean sweep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547782</commentid>
    <comment_count>1</comment_count>
      <attachid>125112</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-02 04:32:19 -0800</bug_when>
    <thetext>Created attachment 125112
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547947</commentid>
    <comment_count>2</comment_count>
      <attachid>125112</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-02-02 09:54:58 -0800</bug_when>
    <thetext>Comment on attachment 125112
patch

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

&gt; Source/WebCore/css/CSSMutableStyleDeclaration.h:129
&gt;      // CSSOM functions. Don&apos;t make these public.
&gt; +    virtual CSSRule* parentRule() const;

We should decorate the subclasses with OVERRIDE as appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547957</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-02-02 10:09:13 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/106568</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125112</attachid>
            <date>2012-02-02 04:32:19 -0800</date>
            <delta_ts>2012-02-02 09:54:58 -0800</delta_ts>
            <desc>patch</desc>
            <filename>cssstyledeclaration-sweep.patch</filename>
            <type>text/plain</type>
            <size>26553</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjU0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY4IEBACisyMDEyLTAyLTAyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHJlbWFpbmluZyBpbXBs
ZW1lbnRhdGlvbiBmcm9tIENTU1N0eWxlRGVjbGFyYXRpb24gdG8gc3ViY2xhc3NlcyAKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBsZWF2ZXMgQ1NT
U3R5bGVEZWNsYXJhdGlvbiBhIG5lYXItcHVyZSBDU1NPTSBpbnRlcmZhY2UuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aXNDU1NQcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NTdHls
ZURlY2xhcmF0aW9uOjpwdXREZWxlZ2F0ZSk6CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb246OnBhcmVudFJ1bGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uOjpjb250ZXh0U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpwYXJlbnRSdWxlKToK
KyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjppc0lubGluZVN0eWxlRGVjbGFyYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnBhcmVu
dFJ1bGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbjo6Y2xlYXJQYXJlbnRSdWxlKToKKyAgICAgICAgKENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpwYXJl
bnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
OjpjbGVhclBhcmVudEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OnBhcmVudFN0eWxlU2hlZXQpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VDb2xvclZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OnBhcnNlU2ltcGxlTGVuZ3RoVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VEZWNsYXJh
dGlvbik6CisgICAgICAgICogY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAg
KENTU1N0eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJh
dGlvbjo6cGFyZW50U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZURlY2xh
cmF0aW9uOjpDU1NTdHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVSdWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIEVsaW1pbmF0ZSB1bm5l
Y2Vzc2FyeSBjYWxsIHRvIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpwYXJlbnRTdHlsZVNo
ZWV0KCkKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVJ1bGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1N0eWxlUnVsZTo6c2V0RGVjbGFyYXRpb24pOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzSW5zaWRlUmVnaW9uUnVsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjphcHBseURlY2xhcmF0aW9uKToKKyAgICAg
ICAgKiBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdENTU0tleWZyYW1lUnVsZTo6c2V0RGVjbGFyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZVNlcmlhbGl6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlh
bGl6ZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVD
U1NTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpyZXRyaWV2
ZVJlc291cmNlc0ZvckNTU1J1bGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6
OnJldHJpZXZlUmVzb3VyY2VzRm9yQ1NTRGVjbGFyYXRpb24pOgorICAgICAgICAqIHBhZ2UvUGFn
ZVNlcmlhbGl6ZXIuaDoKKyAgICAgICAgCisgICAgICAgICAgICBFbGltaW5hdGUgdW5uZWNlc3Nh
cnkgY2FsbCB0byBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6cGFyZW50U3R5bGVTaGVldCgp
CisgICAgICAgIAorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQYWdlU2VyaWFsaXplcik6
CisKIDIwMTItMDItMDIgIFJhdWwgSHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgogCiAgICAgICAg
IFJlZ2lvbnMgc2hvdWxkIGlnbm9yZSB0aGUgc2F2ZWQgY3VycmVudFJlbmRlckZsb3dUaHJlYWQg
ZHVyaW5nIHJlcGFpbnRpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NT
U3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAkocmV2aXNpb24gMTA2
NDM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9u
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpT
Q1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5oIgogCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24uaCIKKyNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NQcmlt
aXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJD
U1NWYWx1ZS5oIgpAQCAtMTkzLDcgKzE5NCw3IEBAIHN0YXRpYyBib29sIGlzQ1NTUHJvcGVydHlO
YW1lKGNvbnN0IElkZW4KIHsKICAgICAvLyBGSVhNRTogVGhpcyBtYWxsb2NzIGEgc3RyaW5nIGZv
ciB0aGUgcHJvcGVydHkgbmFtZSBhbmQgdGhlbiB0aHJvd3MgaXQKICAgICAvLyBhd2F5LiAgVGhp
cyBzaG93cyB1cCBvbiBwZWFjZWtlZXBlcidzIGRvbUR5bmFtaWNDcmVhdGlvbkNyZWF0ZUVsZW1l
bnQuCi0gICAgcmV0dXJuIENTU1N0eWxlRGVjbGFyYXRpb246OmlzUHJvcGVydHlOYW1lKGNzc1By
b3BlcnR5TmFtZShwcm9wZXJ0eUlkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gY3NzUHJvcGVydHlJ
RChjc3NQcm9wZXJ0eU5hbWUocHJvcGVydHlJZGVudGlmaWVyKSk7CiB9CiAKIGJvb2wgSlNDU1NT
dHlsZURlY2xhcmF0aW9uOjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgQ1NTU3R5bGVE
ZWNsYXJhdGlvbiosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKQEAgLTIyOSw3ICsy
MzAsNyBAQCBib29sIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbjo6cHV0RGVsZWdhdGUoCiB7CiAgICAg
Ym9vbCBwaXhlbE9yUG9zOwogICAgIFN0cmluZyBwcm9wID0gY3NzUHJvcGVydHlOYW1lKHByb3Bl
cnR5TmFtZSwgJnBpeGVsT3JQb3MpOwotICAgIGlmICghQ1NTU3R5bGVEZWNsYXJhdGlvbjo6aXNQ
cm9wZXJ0eU5hbWUocHJvcCkpCisgICAgaWYgKCFjc3NQcm9wZXJ0eUlEKHByb3ApKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBTdHJpbmcgcHJvcFZhbHVlID0gdmFsdWVUb1N0cmluZ1dp
dGhOdWxsQ2hlY2soZXhlYywgdmFsdWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDEwNjQzNSkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCBaYWNr
IFJ1c2luIDx6YWNrQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5
LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQub3JnPgogICog
Q29weXJpZ2h0IChDKSAyMDA3IE5pY2hvbGFzIFNoYW5rcyA8d2Via2l0QG5pY2tzaGFua3MuY29t
PgogICogQ29weXJpZ2h0IChDKSAyMDExIFNlbmNoYSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgpAQCAtMjU3NCw2ICsyNTc0LDExIEBAIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24+IEMKICAgICByZXR1cm4gQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShs
aXN0KTsKIH0KIAorQ1NTUnVsZSogQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpwYXJlbnRS
dWxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0
cmluZyYgcHJvcGVydHlOYW1lKQogewogICAgIGludCBwcm9wZXJ0eUlEID0gY3NzUHJvcGVydHlJ
RChwcm9wZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uaAkocmV2aXNpb24gMTA2NDM1KQorKysgU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCBaYWNrIFJ1c2luIDx6YWNrQGtk
ZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA4LCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCkBAIC03MCw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uKFBhc3NSZWZQdHI8Tm9kZT4sIGJvb2wgYWxsb3dWaXNpdGVkU3R5bGUsIGNvbnN0
IFN0cmluZyYpOwogCiAgICAgLy8gQ1NTT00gZnVuY3Rpb25zLiBEb24ndCBtYWtlIHRoZXNlIHB1
YmxpYy4KKyAgICB2aXJ0dWFsIENTU1J1bGUqIHBhcmVudFJ1bGUoKSBjb25zdDsKICAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3RyaW5nIGl0ZW0odW5z
aWduZWQgaW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0
UHJvcGVydHlDU1NWYWx1ZShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJl
dmlzaW9uIDEwNjQ3MSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogKEMpIDE5
OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMTM0LDI2ICsxMzQsMzMgQEAgYm9vbCBTdHlsZUF0
dHJpYnV0ZU11dGF0aW9uU2NvcGU6OnNfc2hvdQogfSAvLyBuYW1lc3BhY2UKIAogQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKCkKKyAgICA6IG1f
c3RyaWN0UGFyc2luZyhmYWxzZSkKKyAgICAsIG1faXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKGZh
bHNlKQorICAgICwgbV9wYXJlbnQoc3RhdGljX2Nhc3Q8Q1NTUnVsZSo+KDApKQogewotICAgIC8v
IFRoaXMgY29uc3RydWN0b3IgaXMgdXNlZCBmb3IgdmFyaW91cyBpbmxpbmUgc3R5bGUgZGVjbGFy
YXRpb25zLCBzbyBkaXNhYmxlIHN0cmljdCBwYXJzaW5nLgotICAgIG1fc3RyaWN0UGFyc2luZyA9
IGZhbHNlOwogfQogCi1DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24oQ1NTUnVsZSogcGFyZW50KQotICAgIDogQ1NTU3R5bGVEZWNsYXJhdGlvbihw
YXJlbnQpCitDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24oQ1NTUnVsZSogcGFyZW50UnVsZSkKKyAgICA6IG1fc3RyaWN0UGFyc2luZyghcGFyZW50
UnVsZSB8fCBwYXJlbnRSdWxlLT51c2VTdHJpY3RQYXJzaW5nKCkpCisgICAgLCBtX2lzSW5saW5l
U3R5bGVEZWNsYXJhdGlvbihmYWxzZSkKKyAgICAsIG1fcGFyZW50KHBhcmVudFJ1bGUpCiB7CiB9
CiAKLUNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bihDU1NSdWxlKiBwYXJlbnQsIGNvbnN0IFZlY3RvcjxDU1NQcm9wZXJ0eT4mIHByb3BlcnRpZXMp
Ci0gICAgOiBDU1NTdHlsZURlY2xhcmF0aW9uKHBhcmVudCkKLSAgICAsIG1fcHJvcGVydGllcyhw
cm9wZXJ0aWVzKQorQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OkNTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uKENTU1J1bGUqIHBhcmVudFJ1bGUsIGNvbnN0IFZlY3RvcjxDU1NQcm9wZXJ0eT4m
IHByb3BlcnRpZXMpCisgICAgOiBtX3Byb3BlcnRpZXMocHJvcGVydGllcykKKyAgICAsIG1fc3Ry
aWN0UGFyc2luZyghcGFyZW50UnVsZSB8fCBwYXJlbnRSdWxlLT51c2VTdHJpY3RQYXJzaW5nKCkp
CisgICAgLCBtX2lzSW5saW5lU3R5bGVEZWNsYXJhdGlvbihmYWxzZSkKKyAgICAsIG1fcGFyZW50
KHBhcmVudFJ1bGUpCiB7CiAgICAgbV9wcm9wZXJ0aWVzLnNocmlua1RvRml0KCk7CiAgICAgLy8g
RklYTUU6IFRoaXMgYWxsb3dzIGR1cGxpY2F0ZSBwcm9wZXJ0aWVzLgogfQogCi1DU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbjo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oQ1NTUnVsZSogcGFy
ZW50LCBjb25zdCBDU1NQcm9wZXJ0eSogY29uc3QgKiBwcm9wZXJ0aWVzLCBpbnQgbnVtUHJvcGVy
dGllcykKLSAgICA6IENTU1N0eWxlRGVjbGFyYXRpb24ocGFyZW50KQorQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKENTU1J1bGUqIHBhcmVudFJ1
bGUsIGNvbnN0IENTU1Byb3BlcnR5KiBjb25zdCAqIHByb3BlcnRpZXMsIGludCBudW1Qcm9wZXJ0
aWVzKQorICAgIDogbV9zdHJpY3RQYXJzaW5nKCFwYXJlbnRSdWxlIHx8IHBhcmVudFJ1bGUtPnVz
ZVN0cmljdFBhcnNpbmcoKSkKKyAgICAsIG1faXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKGZhbHNl
KQorICAgICwgbV9wYXJlbnQocGFyZW50UnVsZSkKIHsKICAgICBtX3Byb3BlcnRpZXMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShudW1Qcm9wZXJ0aWVzKTsKICAgICBIYXNoTWFwPGludCwgYm9vbD4g
Y2FuZGlkYXRlczsKQEAgLTE3NCw4ICsxODEsMTAgQEAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246OkNTU011dGFibGVTdAogICAgIH0KIH0KIAotQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKFN0eWxlZEVsZW1lbnQqIGVsZW1lbnQpIAotICAg
IDogQ1NTU3R5bGVEZWNsYXJhdGlvbihlbGVtZW50KQorQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b246OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1l
bnQpIAorICAgIDogbV9zdHJpY3RQYXJzaW5nKGZhbHNlKQorICAgICwgbV9pc0lubGluZVN0eWxl
RGVjbGFyYXRpb24odHJ1ZSkKKyAgICAsIG1fcGFyZW50KHBhcmVudEVsZW1lbnQpCiB7IAogfQog
CkBAIC0xODMsNiArMTkyLDE1IEBAIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjp+Q1NTTXV0
YWJsZVMKIHsKIH0KIAorQ1NTU3R5bGVTaGVldCogQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OmNvbnRleHRTdHlsZVNoZWV0KCkgY29uc3QKK3sKKyAgICBpZiAobV9pc0lubGluZVN0eWxlRGVj
bGFyYXRpb24pIHsKKyAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9wYXJlbnQuZWxlbWVu
dCA/IG1fcGFyZW50LmVsZW1lbnQtPmRvY3VtZW50KCkgOiAwOworICAgICAgICByZXR1cm4gZG9j
dW1lbnQgPyBkb2N1bWVudC0+ZWxlbWVudFNoZWV0KCkgOiAwOworICAgIH0KKyAgICByZXR1cm4g
bV9wYXJlbnQucnVsZSA/IG1fcGFyZW50LnJ1bGUtPnBhcmVudFN0eWxlU2hlZXQoKSA6IDA7Cit9
CisKIHZvaWQgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvcHlQcm9wZXJ0aWVzRnJvbShj
b25zdCBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiYgb3RoZXIpCiB7CiAgICAgbV9wcm9wZXJ0
aWVzID0gb3RoZXIubV9wcm9wZXJ0aWVzOwpAQCAtMTAyMCw2ICsxMDM4LDExIEBAIENTU1Byb3Bl
cnR5KiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjoKICAgICByZXR1cm4gMDsKIH0KIAorQ1NT
UnVsZSogQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OnBhcmVudFJ1bGUoKSBjb25zdAorewor
ICAgIHJldHVybiBwYXJlbnRSdWxlSW50ZXJuYWwoKTsKK30KKwogU3RyaW5nIENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uOjpjc3NUZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gYXNUZXh0KCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaAkocmV2aXNpb24gMTA2NDcxKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICog
KEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOCwgMjAxMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTk1LDYgKzk1LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRTdHJpY3RQYXJzaW5nKGJvb2wgYikgeyBtX3N0cmlj
dFBhcnNpbmcgPSBiOyB9CiAgICAgYm9vbCB1c2VTdHJpY3RQYXJzaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9zdHJpY3RQYXJzaW5nOyB9CisgICAgYm9vbCBpc0lubGluZVN0eWxlRGVjbGFyYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2lzSW5saW5lU3R5bGVEZWNsYXJhdGlvbjsgfQogCiAgICAgdm9p
ZCBhZGRTdWJyZXNvdXJjZVN0eWxlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYpOwogCkBAIC0xMDUs
NiArMTA2LDE0IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24+IGNvcHlQcm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVkIGxl
bmd0aCkgY29uc3Q7CiAKKyAgICBDU1NSdWxlKiBwYXJlbnRSdWxlSW50ZXJuYWwoKSBjb25zdCB7
IHJldHVybiBtX2lzSW5saW5lU3R5bGVEZWNsYXJhdGlvbiA/IDAgOiBtX3BhcmVudC5ydWxlOyB9
CisgICAgdm9pZCBjbGVhclBhcmVudFJ1bGUoKSB7IEFTU0VSVCghbV9pc0lubGluZVN0eWxlRGVj
bGFyYXRpb24pOyBtX3BhcmVudC5ydWxlID0gMDsgfQorICAgIAorICAgIFN0eWxlZEVsZW1lbnQq
IHBhcmVudEVsZW1lbnQoKSBjb25zdCB7IEFTU0VSVChtX2lzSW5saW5lU3R5bGVEZWNsYXJhdGlv
bik7IHJldHVybiBtX3BhcmVudC5lbGVtZW50OyB9CisgICAgdm9pZCBjbGVhclBhcmVudEVsZW1l
bnQoKSB7IEFTU0VSVChtX2lzSW5saW5lU3R5bGVEZWNsYXJhdGlvbik7IG1fcGFyZW50LmVsZW1l
bnQgPSAwOyB9CisgICAgCisgICAgQ1NTU3R5bGVTaGVldCogY29udGV4dFN0eWxlU2hlZXQoKSBj
b25zdDsKKyAgICAKICAgICBTdHJpbmcgYXNUZXh0KCkgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC0x
MTcsNiArMTI2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24+IG1ha2VNdXRhYmxlKCk7CiAKICAgICAvLyBDU1NPTSBmdW5jdGlv
bnMuIERvbid0IG1ha2UgdGhlc2UgcHVibGljLgorICAgIHZpcnR1YWwgQ1NTUnVsZSogcGFyZW50
UnVsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQ
YXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lKTsKQEAgLTE1MywxMSArMTYzLDIyIEBAIHByaXZhdGU6CiAgICAgYm9vbCByZW1v
dmVQcm9wZXJ0aWVzSW5TZXQoY29uc3QgaW50KiBzZXQsIHVuc2lnbmVkIGxlbmd0aCwgYm9vbCBu
b3RpZnlDaGFuZ2VkKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjc3NQcm9wZXJ0eU1hdGNoZXMoY29u
c3QgQ1NTUHJvcGVydHkqKSBjb25zdDsKKyAgICB2aXJ0dWFsIENTU1N0eWxlU2hlZXQqIHBhcmVu
dFN0eWxlU2hlZXQoKSBjb25zdCB7IHJldHVybiBjb250ZXh0U3R5bGVTaGVldCgpOyB9CiAKICAg
ICBjb25zdCBDU1NQcm9wZXJ0eSogZmluZFByb3BlcnR5V2l0aElkKGludCBwcm9wZXJ0eUlkKSBj
b25zdDsKICAgICBDU1NQcm9wZXJ0eSogZmluZFByb3BlcnR5V2l0aElkKGludCBwcm9wZXJ0eUlk
KTsKIAogICAgIFZlY3RvcjxDU1NQcm9wZXJ0eSwgND4gbV9wcm9wZXJ0aWVzOworCisgICAgYm9v
bCBtX3N0cmljdFBhcnNpbmcgOiAxOworICAgIGJvb2wgbV9pc0lubGluZVN0eWxlRGVjbGFyYXRp
b24gOiAxOworCisgICAgdW5pb24gUGFyZW50IHsKKyAgICAgICAgUGFyZW50KENTU1J1bGUqIHJ1
bGUpIDogcnVsZShydWxlKSB7IH0KKyAgICAgICAgUGFyZW50KFN0eWxlZEVsZW1lbnQqIGVsZW1l
bnQpIDogZWxlbWVudChlbGVtZW50KSB7IH0KKyAgICAgICAgQ1NTUnVsZSogcnVsZTsKKyAgICAg
ICAgU3R5bGVkRWxlbWVudCogZWxlbWVudDsKKyAgICB9IG1fcGFyZW50OyAgICAKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZp
c2lvbiAxMDY0NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQ2LDcgKzM0Niw3IEBAIHN0YXRpYyBib29sIHBhcnNlQ29sb3JWYWx1ZShD
U1NNdXRhYmxlU3QKICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgIH0KIAotICAg
IENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBjb250ZXh0U3R5bGVTaGVldCA/IGNvbnRleHRT
dHlsZVNoZWV0IDogZGVjbGFyYXRpb24tPnBhcmVudFN0eWxlU2hlZXQoKTsKKyAgICBDU1NTdHls
ZVNoZWV0KiBzdHlsZVNoZWV0ID0gY29udGV4dFN0eWxlU2hlZXQgPyBjb250ZXh0U3R5bGVTaGVl
dCA6IGRlY2xhcmF0aW9uLT5jb250ZXh0U3R5bGVTaGVldCgpOwogICAgIGlmICghc3R5bGVTaGVl
dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0eWxl
U2hlZXQtPmZpbmREb2N1bWVudCgpOwpAQCAtNDczLDcgKzQ3Myw3IEBAIHN0YXRpYyBib29sIHBh
cnNlU2ltcGxlTGVuZ3RoVmFsdWUoQ1NTTXUKICAgICBpZiAobnVtYmVyIDwgMCAmJiAhYWNjZXB0
c05lZ2F0aXZlTnVtYmVycykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQ1NTU3R5bGVT
aGVldCogc3R5bGVTaGVldCA9IGNvbnRleHRTdHlsZVNoZWV0ID8gY29udGV4dFN0eWxlU2hlZXQg
OiBkZWNsYXJhdGlvbi0+cGFyZW50U3R5bGVTaGVldCgpOworICAgIENTU1N0eWxlU2hlZXQqIHN0
eWxlU2hlZXQgPSBjb250ZXh0U3R5bGVTaGVldCA/IGNvbnRleHRTdHlsZVNoZWV0IDogZGVjbGFy
YXRpb24tPmNvbnRleHRTdHlsZVNoZWV0KCk7CiAgICAgaWYgKCFzdHlsZVNoZWV0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3R5bGVTaGVldC0+Zmlu
ZERvY3VtZW50KCk7CkBAIC01MTMsNyArNTEzLDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFs
dWUoQ1NTTXV0YWJsZVN0eQogICAgIGlmIChjb250ZXh0U3R5bGVTaGVldCkKICAgICAgICAgc2V0
U3R5bGVTaGVldChjb250ZXh0U3R5bGVTaGVldCk7CiAgICAgZWxzZQotICAgICAgICBzZXRTdHls
ZVNoZWV0KGRlY2xhcmF0aW9uLT5wYXJlbnRTdHlsZVNoZWV0KCkpOworICAgICAgICBzZXRTdHls
ZVNoZWV0KGRlY2xhcmF0aW9uLT5jb250ZXh0U3R5bGVTaGVldCgpKTsKIAogICAgIHNldHVwUGFy
c2VyKCJALXdlYmtpdC12YWx1ZXsiLCBzdHJpbmcsICJ9ICIpOwogCkBAIC02MTYsNyArNjE2LDcg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YQogICAgIGlmIChjb250
ZXh0U3R5bGVTaGVldCkKICAgICAgICAgc2V0U3R5bGVTaGVldChjb250ZXh0U3R5bGVTaGVldCk7
CiAgICAgZWxzZQotICAgICAgICBzZXRTdHlsZVNoZWV0KGRlY2xhcmF0aW9uLT5wYXJlbnRTdHls
ZVNoZWV0KCkpOworICAgICAgICBzZXRTdHlsZVNoZWV0KGRlY2xhcmF0aW9uLT5jb250ZXh0U3R5
bGVTaGVldCgpKTsKICAgICBpZiAoc3R5bGVTb3VyY2VEYXRhKSB7CiAgICAgICAgIG1fY3VycmVu
dFJ1bGVEYXRhID0gQ1NTUnVsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOwogICAgICAgICBtX2N1cnJl
bnRSdWxlRGF0YS0+c3R5bGVTb3VyY2VEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRhOjpjcmVhdGUo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJl
dmlzaW9uIDEwNjQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAoQykgMTk5OS0yMDAz
IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjEsMTcgKzIxLDkg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgi
CiAKLSNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkNT
U1BhcnNlci5oIgotI2luY2x1ZGUgIkNTU1Byb3BlcnR5LmgiCi0jaW5jbHVkZSAiQ1NTUHJvcGVy
dHlOYW1lcy5oIgotI2luY2x1ZGUgIkNTU1J1bGUuaCIKLSNpbmNsdWRlICJOb2RlLmgiCi0jaW5j
bHVkZSAiU1ZHRWxlbWVudC5oIgotI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKKyNpZm5kZWYg
TkRFQlVHCiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+Ci0jaWZuZGVmIE5ERUJVRwogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjZW5kaWYKIApA
QCAtMzksMzQgKzMxLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1DU1NTdHlsZURlY2xhcmF0aW9uOjpDU1NTdHlsZURlY2xhcmF0aW9uKENTU1J1bGUq
IHBhcmVudFJ1bGUpCi0gICAgOiBtX3N0cmljdFBhcnNpbmcoIXBhcmVudFJ1bGUgfHwgcGFyZW50
UnVsZS0+dXNlU3RyaWN0UGFyc2luZygpKQotICAgICwgbV9pc0lubGluZVN0eWxlRGVjbGFyYXRp
b24oZmFsc2UpCi0gICAgLCBtX3BhcmVudChwYXJlbnRSdWxlKQotewotfQotCi1DU1NTdHlsZURl
Y2xhcmF0aW9uOjpDU1NTdHlsZURlY2xhcmF0aW9uKFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1l
bnQpCi0gICAgOiBtX3N0cmljdFBhcnNpbmcoZmFsc2UpCi0gICAgLCBtX2lzSW5saW5lU3R5bGVE
ZWNsYXJhdGlvbih0cnVlKQotICAgICwgbV9wYXJlbnQocGFyZW50RWxlbWVudCkKLXsKLX0KLQot
Q1NTU3R5bGVTaGVldCogQ1NTU3R5bGVEZWNsYXJhdGlvbjo6cGFyZW50U3R5bGVTaGVldCgpIGNv
bnN0Ci17Ci0gICAgaWYgKG1faXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKSB7Ci0gICAgICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IG1fcGFyZW50LmVsZW1lbnQgPyBtX3BhcmVudC5lbGVtZW50LT5k
b2N1bWVudCgpIDogMDsKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50ID8gZG9jdW1lbnQtPmVsZW1l
bnRTaGVldCgpIDogMDsKLSAgICB9Ci0gICAgcmV0dXJuIG1fcGFyZW50LnJ1bGUgPyBtX3BhcmVu
dC5ydWxlLT5wYXJlbnRTdHlsZVNoZWV0KCkgOiAwOwotfQotCi1ib29sIENTU1N0eWxlRGVjbGFy
YXRpb246OmlzUHJvcGVydHlOYW1lKGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lKQotewotICAg
IHJldHVybiBjc3NQcm9wZXJ0eUlEKHByb3BlcnR5TmFtZSk7Ci19Ci0KICNpZm5kZWYgTkRFQlVH
CiB2b2lkIENTU1N0eWxlRGVjbGFyYXRpb246OnNob3dTdHlsZSgpCiB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgJKHJldmlzaW9uIDEwNjQzNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw2IEBACiAvKgogICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwOCwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTQwLDE2ICs0MCw3IEBAIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb24gOiBwdWJs
aWMgUmVmQ28KIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DU1NTdHlsZURlY2xhcmF0aW9uKCkgeyB9
CiAKLSAgICBzdGF0aWMgYm9vbCBpc1Byb3BlcnR5TmFtZShjb25zdCBTdHJpbmcmKTsKLQotICAg
IENTU1J1bGUqIHBhcmVudFJ1bGUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5saW5lU3R5bGVEZWNs
YXJhdGlvbiA/IDAgOiBtX3BhcmVudC5ydWxlOyB9Ci0gICAgdm9pZCBjbGVhclBhcmVudFJ1bGUo
KSB7IEFTU0VSVCghbV9pc0lubGluZVN0eWxlRGVjbGFyYXRpb24pOyBtX3BhcmVudC5ydWxlID0g
MDsgfQotCi0gICAgU3R5bGVkRWxlbWVudCogcGFyZW50RWxlbWVudCgpIGNvbnN0IHsgQVNTRVJU
KG1faXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uKTsgcmV0dXJuIG1fcGFyZW50LmVsZW1lbnQ7IH0K
LSAgICB2b2lkIGNsZWFyUGFyZW50RWxlbWVudCgpIHsgQVNTRVJUKG1faXNJbmxpbmVTdHlsZURl
Y2xhcmF0aW9uKTsgbV9wYXJlbnQuZWxlbWVudCA9IDA7IH0KLQotICAgIENTU1N0eWxlU2hlZXQq
IHBhcmVudFN0eWxlU2hlZXQoKSBjb25zdDsKLQorICAgIHZpcnR1YWwgQ1NTUnVsZSogcGFyZW50
UnVsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDc3NUZXh0KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmKSA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCA9IDA7CkBAIC03
MiwzMSArNjMsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbj4gbWFrZU11dGFibGUoKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wg
Y3NzUHJvcGVydHlNYXRjaGVzKGNvbnN0IENTU1Byb3BlcnR5KikgY29uc3QgPSAwOwotCisgICAg
dmlydHVhbCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4g
MDsgfQorIAogI2lmbmRlZiBOREVCVUcKICAgICB2b2lkIHNob3dTdHlsZSgpOwogI2VuZGlmCiAK
LSAgICBib29sIGlzSW5saW5lU3R5bGVEZWNsYXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faXNJ
bmxpbmVTdHlsZURlY2xhcmF0aW9uOyB9Ci0KIHByb3RlY3RlZDoKLSAgICBDU1NTdHlsZURlY2xh
cmF0aW9uKENTU1J1bGUqIHBhcmVudFJ1bGUgPSAwKTsKLSAgICBDU1NTdHlsZURlY2xhcmF0aW9u
KFN0eWxlZEVsZW1lbnQqIHBhcmVudEVsZW1lbnQpOwotCi0gICAgLy8gVGhlIGJpdHMgaW4gdGhp
cyBzZWN0aW9uIGFyZSBvbmx5IHVzZWQgYnkgc3BlY2lmaWMgc3ViY2xhc3NlcyBidXQga2VwdCBo
ZXJlCi0gICAgLy8gdG8gbWF4aW1pemUgc3RydWN0IHBhY2tpbmcuCi0KLSAgICAvLyBDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbiBiaXRzOgotICAgIGJvb2wgbV9zdHJpY3RQYXJzaW5nIDogMTsK
LSAgICBib29sIG1faXNJbmxpbmVTdHlsZURlY2xhcmF0aW9uIDogMTsKLQotcHJpdmF0ZToKLSAg
ICB1bmlvbiBQYXJlbnQgewotICAgICAgICBQYXJlbnQoQ1NTUnVsZSogcnVsZSkgOiBydWxlKHJ1
bGUpIHsgfQotICAgICAgICBQYXJlbnQoU3R5bGVkRWxlbWVudCogZWxlbWVudCkgOiBlbGVtZW50
KGVsZW1lbnQpIHsgfQotICAgICAgICBDU1NSdWxlKiBydWxlOwotICAgICAgICBTdHlsZWRFbGVt
ZW50KiBlbGVtZW50OwotICAgIH0gbV9wYXJlbnQ7CisgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbigp
IHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N0eWxlUnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlUnVsZS5jcHAJKHJldmlzaW9uIDEwNjQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVJ1bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIFN0cmluZyBD
U1NTdHlsZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnMKIHZvaWQgQ1NTU3R5bGVSdWxlOjpzZXRT
ZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiBzZWxlY3RvclRleHQpCiB7CiAgICAgRG9jdW1lbnQq
IGRvYyA9IDA7Ci0gICAgaWYgKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBtX3N0eWxlLT5w
YXJlbnRTdHlsZVNoZWV0KCkpCisgICAgaWYgKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBw
YXJlbnRTdHlsZVNoZWV0KCkpCiAgICAgICAgIGRvYyA9IHN0eWxlU2hlZXQtPmZpbmREb2N1bWVu
dCgpOwogICAgIGlmICghZG9jKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVSdWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlUnVsZS5oCShyZXZpc2lvbiAxMDY0MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVSdWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAg
IFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIGFkb3B0U2VsZWN0b3JWZWN0b3Io
VmVjdG9yPE93blB0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gPiYgc2VsZWN0b3JzKSB7IG1fc2VsZWN0
b3JMaXN0LmFkb3B0U2VsZWN0b3JWZWN0b3Ioc2VsZWN0b3JzKTsgfQotICAgIHZvaWQgc2V0RGVj
bGFyYXRpb24oUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUpIHsg
QVNTRVJUKHN0eWxlLT5wYXJlbnRSdWxlKCkgPT0gdGhpcyk7IG1fc3R5bGUgPSBzdHlsZTsgfQor
ICAgIHZvaWQgc2V0RGVjbGFyYXRpb24oUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbj4gc3R5bGUpIHsgQVNTRVJUKHN0eWxlLT5wYXJlbnRSdWxlSW50ZXJuYWwoKSA9PSB0aGlz
KTsgbV9zdHlsZSA9IHN0eWxlOyB9CiAKICAgICBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVj
dG9yTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3JMaXN0OyB9CiAgICAgQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZS5n
ZXQoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2
aXNpb24gMTA2NDM1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNDM3LDcgKzI0MzcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNJbnNpZGVSZWdpb25SdWxlKENTCiB7CiAgICAgQVNTRVJUKHN0eWxlRGVjbGFyYXRpb24pOwog
Ci0gICAgQ1NTUnVsZSogcGFyZW50UnVsZSA9IHN0eWxlRGVjbGFyYXRpb24tPnBhcmVudFJ1bGUo
KTsKKyAgICBDU1NSdWxlKiBwYXJlbnRSdWxlID0gc3R5bGVEZWNsYXJhdGlvbi0+cGFyZW50UnVs
ZUludGVybmFsKCk7CiAgICAgd2hpbGUgKHBhcmVudFJ1bGUpIHsKICAgICAgICAgaWYgKHBhcmVu
dFJ1bGUtPmlzUmVnaW9uUnVsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yNDQ5
LDcgKzI0NDksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNJbnNpZGVSZWdpb25SdWxlKENTCiB0
ZW1wbGF0ZSA8Ym9vbCBhcHBseUZpcnN0Pgogdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseURl
Y2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZURlY2xhcmF0aW9uLCBi
b29sIGlzSW1wb3J0YW50LCBib29sIGluaGVyaXRlZE9ubHkpCiB7Ci0gICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bFByb2Nlc3NSdWxlKGRvY3VtZW50KCksIHN0eWxlRGVjbGFyYXRpb24tPnBhcmVudFJ1bGUoKSk7
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZSA9IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFByb2Nlc3NSdWxlKGRvY3VtZW50KCksIHN0eWxlRGVjbGFyYXRp
b24tPnBhcmVudFJ1bGVJbnRlcm5hbCgpKTsKICAgICBib29sIHN0eWxlRGVjbGFyYXRpb25JbnNp
ZGVSZWdpb25SdWxlID0gbV9yZWdpb25Gb3JTdHlsaW5nID8gaXNJbnNpZGVSZWdpb25SdWxlKHN0
eWxlRGVjbGFyYXRpb24pIDogZmFsc2U7CiAKICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0g
c3R5bGVEZWNsYXJhdGlvbi0+cHJvcGVydHlDb3VudCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAJKHJldmlzaW9uIDEwNjQzNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NCw3ICs1NCw3IEBAIFN0cmluZyBXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6OmNzc1RleHQo
KSAKIAogdm9pZCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGU6OnNldERlY2xhcmF0aW9uKFBhc3NSZWZQ
dHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlKQogewotICAgIEFTU0VSVChzdHls
ZS0+cGFyZW50UnVsZSgpID09IHRoaXMpOworICAgIEFTU0VSVChzdHlsZS0+cGFyZW50UnVsZUlu
dGVybmFsKCkgPT0gdGhpcyk7CiAgICAgbV9zdHlsZSA9IHN0eWxlOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAkocmV2aXNpb24gMTA2NDM1KQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIy
Niw3ICsyMjYsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZShGcmFtCiAg
ICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9kZSk7CiAgICAgICAgIC8vIFdl
IGhhdmUgdG8gcHJvY2VzcyBpbi1saW5lIHN0eWxlIGFzIGl0IG1pZ2h0IGNvbnRhaW4gc29tZSBy
ZXNvdXJjZXMgKHR5cGljYWxseSBiYWNrZ3JvdW5kIGltYWdlcykuCiAgICAgICAgIGlmIChlbGVt
ZW50LT5pc1N0eWxlZEVsZW1lbnQoKSkKLSAgICAgICAgICAgIHJldHJpZXZlUmVzb3VyY2VzRm9y
Q1NTRGVjbGFyYXRpb24oc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KGVsZW1lbnQpLT5pbmxp
bmVTdHlsZURlY2woKSk7CisgICAgICAgICAgICByZXRyaWV2ZVJlc291cmNlc0ZvckNTU0RlY2xh
cmF0aW9uKHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihlbGVtZW50KS0+aW5saW5lU3R5bGVE
ZWNsKCksIGRvY3VtZW50KTsKIAogICAgICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OmltZ1RhZykpIHsKICAgICAgICAgICAgIEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihlbGVtZW50KTsKQEAgLTI2Miwx
MCArMjYyLDEwIEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2gKICAg
ICAgICAgICAgIGlmIChpIDwgc3R5bGVTaGVldC0+bGVuZ3RoKCkgLSAxKQogICAgICAgICAgICAg
ICAgIGNzc1RleHQuYXBwZW5kKCJcblxuIik7CiAgICAgICAgIH0KKyAgICAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gc3R5bGVTaGVldC0+ZmluZERvY3VtZW50KCk7CiAgICAgICAgIC8vIFNvbWUg
cnVsZXMgaGF2ZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoZW0gdGhhdCB3ZSBuZWVkIHRv
IHJldHJpZXZlLgogICAgICAgICBpZiAocnVsZS0+aXNJbXBvcnRSdWxlKCkpIHsKLSAgICAgICAg
ICAgIENTU0ltcG9ydFJ1bGUqIGltcG9ydFJ1bGUgPSBzdGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxl
Kj4ocnVsZSk7Ci0gICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdHlsZVNoZWV0LT5m
aW5kRG9jdW1lbnQoKTsKKyAgICAgICAgICAgIENTU0ltcG9ydFJ1bGUqIGltcG9ydFJ1bGUgPSBz
dGF0aWNfY2FzdDxDU1NJbXBvcnRSdWxlKj4ocnVsZSk7ICAgICAgICAgICAgCiAgICAgICAgICAg
ICBLVVJMIGltcG9ydFVSTCA9IGRvY3VtZW50LT5jb21wbGV0ZVVSTChpbXBvcnRSdWxlLT5ocmVm
KCkpOwogICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VVUkxzLmNvbnRhaW5zKGltcG9ydFVSTCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBQYWdl
U2VyaWFsaXplcjo6c2VyaWFsaXplQ1NTU3R5bGVTaAogICAgICAgICAgICAgLy8gRklYTUU6IEFk
ZCBzdXBwb3J0IGZvciBmb250IGZhY2UgcnVsZS4gSXQgaXMgbm90IGNsZWFyIHRvIG1lIGF0IHRo
aXMgcG9pbnQgaWYgdGhlIGFjdHVhbCBvdGYvZW90IGZpbGUgY2FuCiAgICAgICAgICAgICAvLyBi
ZSByZXRyaWV2ZWQgZnJvbSB0aGUgQ1NTRm9udEZhY2VSdWxlIG9iamVjdC4KICAgICAgICAgfSBl
bHNlIGlmIChydWxlLT5pc1N0eWxlUnVsZSgpKQotICAgICAgICAgICAgcmV0cmlldmVSZXNvdXJj
ZXNGb3JDU1NSdWxlKHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHJ1bGUpKTsKKyAgICAgICAg
ICAgIHJldHJpZXZlUmVzb3VyY2VzRm9yQ1NTUnVsZShzdGF0aWNfY2FzdDxDU1NTdHlsZVJ1bGUq
PihydWxlKSwgZG9jdW1lbnQpOwogICAgIH0KIAogICAgIGlmICh1cmwuaXNWYWxpZCgpICYmICFt
X3Jlc291cmNlVVJMcy5jb250YWlucyh1cmwpKSB7CkBAIC0zMDEsMTkgKzMwMSwxNiBAQCB2b2lk
IFBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVzb3VyY2VzCiAgICAgbV9yZXNvdXJjZVVSTHMu
YWRkKHVybCk7CiB9CiAKLXZvaWQgUGFnZVNlcmlhbGl6ZXI6OnJldHJpZXZlUmVzb3VyY2VzRm9y
Q1NTUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpyZXRyaWV2
ZVJlc291cmNlc0ZvckNTU1J1bGUoQ1NTU3R5bGVSdWxlKiBydWxlLCBEb2N1bWVudCogZG9jdW1l
bnQpCiB7Ci0gICAgcmV0cmlldmVSZXNvdXJjZXNGb3JDU1NEZWNsYXJhdGlvbihydWxlLT5kZWNs
YXJhdGlvbigpKTsKKyAgICByZXRyaWV2ZVJlc291cmNlc0ZvckNTU0RlY2xhcmF0aW9uKHJ1bGUt
PmRlY2xhcmF0aW9uKCksIGRvY3VtZW50KTsKIH0KIAotdm9pZCBQYWdlU2VyaWFsaXplcjo6cmV0
cmlldmVSZXNvdXJjZXNGb3JDU1NEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
biogc3R5bGVEZWNsYXJhdGlvbikKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OnJldHJpZXZlUmVzb3Vy
Y2VzRm9yQ1NTRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlRGVj
bGFyYXRpb24sIERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBpZiAoIXN0eWxlRGVjbGFyYXRp
b24pCiAgICAgICAgIHJldHVybjsKIAotICAgIENTU1N0eWxlU2hlZXQqIGNzc1N0eWxlU2hlZXQg
PSBzdHlsZURlY2xhcmF0aW9uLT5wYXJlbnRTdHlsZVNoZWV0KCk7Ci0gICAgQVNTRVJUKGNzc1N0
eWxlU2hlZXQpOwotCiAgICAgLy8gVGhlIGJhY2tncm91bmQtaW1hZ2UgYW5kIGxpc3Qtc3R5bGUt
aW1hZ2UgKGZvciB1bCBvciBvbCkgYXJlIHRoZSBDU1MgcHJvcGVydGllcwogICAgIC8vIHRoYXQg
bWFrZSB1c2Ugb2YgaW1hZ2VzLiBXZSBpdGVyYXRlIHRvIG1ha2Ugc3VyZSB3ZSBpbmNsdWRlIGFu
eSBvdGhlcgogICAgIC8vIGltYWdlIHByb3BlcnRpZXMgdGhlcmUgbWlnaHQgYmUuCkBAIC0zMzEs
NyArMzI4LDYgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6cmV0cmlldmVSZXNvdXJjZXNGbwogCiAg
ICAgICAgIENhY2hlZEltYWdlKiBpbWFnZSA9IHN0YXRpY19jYXN0PFN0eWxlQ2FjaGVkSW1hZ2Uq
PihzdHlsZUltYWdlKS0+Y2FjaGVkSW1hZ2UoKTsKIAotICAgICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBjc3NTdHlsZVNoZWV0LT5maW5kRG9jdW1lbnQoKTsKICAgICAgICAgS1VSTCB1cmwgPSBk
b2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UtPnVybCgpKTsKICAgICAgICAgYWRkSW1hZ2VUb1Jl
c291cmNlcyhpbWFnZSwgMCwgdXJsKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTZXJpYWxpemVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
U2VyaWFsaXplci5oCShyZXZpc2lvbiAxMDY0MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VTZXJpYWxpemVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgQ2Fj
aGVkSW1hZ2U7CiBjbGFzcyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENTU1N0
eWxlUnVsZTsKIGNsYXNzIENTU1N0eWxlU2hlZXQ7CitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZy
YW1lOwogY2xhc3MgUGFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKQEAgLTc3LDggKzc4LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQoQ1NTU3R5bGVTaGVldCos
IGNvbnN0IEtVUkwmKTsKIAogICAgIHZvaWQgYWRkSW1hZ2VUb1Jlc291cmNlcyhDYWNoZWRJbWFn
ZSosIFJlbmRlck9iamVjdCosIGNvbnN0IEtVUkwmKTsKLSAgICB2b2lkIHJldHJpZXZlUmVzb3Vy
Y2VzRm9yQ1NTRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qKTsKLSAgICB2
b2lkIHJldHJpZXZlUmVzb3VyY2VzRm9yQ1NTUnVsZShDU1NTdHlsZVJ1bGUqKTsKKyAgICB2b2lk
IHJldHJpZXZlUmVzb3VyY2VzRm9yQ1NTRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24qLCBEb2N1bWVudCopOworICAgIHZvaWQgcmV0cmlldmVSZXNvdXJjZXNGb3JDU1NSdWxl
KENTU1N0eWxlUnVsZSosIERvY3VtZW50Kik7CiAKICAgICBWZWN0b3I8UmVzb3VyY2U+KiBtX3Jl
c291cmNlczsKICAgICBMaXN0SGFzaFNldDxLVVJMPiBtX3Jlc291cmNlVVJMczsK
</data>
<flag name="review"
          id="126539"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>