<?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>121533</bug_id>
          
          <creation_ts>2013-09-17 20:30:51 -0700</creation_ts>
          <short_desc>CTTE: Convert some straggling Element subclasses constructors to take a Document&amp;</short_desc>
          <delta_ts>2013-09-17 21:59:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>930498</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-17 20:30:51 -0700</bug_when>
    <thetext>CTTE: Convert some straggling Element subclasses constructors to take a Document&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930499</commentid>
    <comment_count>1</comment_count>
      <attachid>211966</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-17 20:32:04 -0700</bug_when>
    <thetext>Created attachment 211966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930500</commentid>
    <comment_count>2</comment_count>
      <attachid>211967</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-17 20:36:13 -0700</bug_when>
    <thetext>Created attachment 211967
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>930516</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-17 21:59:08 -0700</bug_when>
    <thetext>Committed r156023: &lt;http://trac.webkit.org/changeset/156023&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211966</attachid>
            <date>2013-09-17 20:32:04 -0700</date>
            <delta_ts>2013-09-17 20:36:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121533-20130917203203.patch</filename>
            <type>text/plain</type>
            <size>26943</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjAyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA5LTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1RURTogQ29udmVydCBzb21lIHN0cmFn
Z2xpbmcgRWxlbWVudCBzdWJjbGFzc2VzIGNvbnN0cnVjdG9ycyB0byB0YWtlIGEgRG9jdW1lbnQm
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE1MzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50
OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6ZGlk
QWRkVXNlckFnZW50U2hhZG93Um9vdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRpZEFkZFVz
ZXJBZ2VudFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWV0
ZXJTaGFkb3dFbGVtZW50OjpNZXRlclNoYWRvd0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWV0ZXJJbm5lckVsZW1lbnQ6Ok1ldGVySW5uZXJFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1ldGVySW5uZXJF
bGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJCYXJFbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzU2hhZG93RWxlbWVudDo6UHJvZ3Jlc3NTaGFkb3dFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlByb2dyZXNzSW5uZXJFbGVtZW50OjpQcm9ncmVzc0lubmVyRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0JhckVsZW1lbnQ6OlByb2dyZXNzQmFyRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1ZhbHVlRWxlbWVudDo6UHJvZ3Jlc3NW
YWx1ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9u
RWxlbWVudDo6U3BpbkJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6VGV4dENvbnRy
b2xJbm5lckNvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyQ29u
dGFpbmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckVsZW1l
bnQ6OlRleHRDb250cm9sSW5uZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250
cm9sSW5uZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJ
bm5lclRleHRFbGVtZW50OjpUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6U2VhcmNoRmllbGRSZXN1
bHRzQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5j
ZWxCdXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OklucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5oOgorCiAyMDEzLTA5LTE3ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdodCB0
byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjAxNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMSwx
MSArMjMxLDExIEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2gKIHsK
ICAgICBBU1NFUlQoIW1fdmFsdWUpOwogCi0gICAgUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBp
bm5lciA9IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUoJmRvY3VtZW50KCkpOworICAgIFJlZlB0
cjxNZXRlcklubmVyRWxlbWVudD4gaW5uZXIgPSBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKIAotICAgIFJlZlB0cjxN
ZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCgp
KTsKLSAgICBtX3ZhbHVlID0gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSk7
CisgICAgUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CisgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50YWdlKDApOwogICAgIG1f
dmFsdWUtPnVwZGF0ZVBzZXVkbygpOwogICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjAxNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMSArMTU0LDEx
IEBAIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkQWRkVXNlckFnZW4KIHsKICAgICBBU1NF
UlQoIW1fdmFsdWUpOwogCi0gICAgUmVmUHRyPFByb2dyZXNzSW5uZXJFbGVtZW50PiBpbm5lciA9
IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoJmRvY3VtZW50KCkpOworICAgIFJlZlB0cjxQ
cm9ncmVzc0lubmVyRWxlbWVudD4gaW5uZXIgPSBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKIAotICAgIFJlZlB0
cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKCZk
b2N1bWVudCgpKTsKLSAgICBSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHZhbHVlID0gUHJv
Z3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPFByb2dy
ZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CisgICAgUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiB2YWx1ZSA9IFByb2dyZXNzVmFs
dWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IHZhbHVlLmdldCgp
OwogICAgIG1fdmFsdWUtPnNldFdpZHRoUGVyY2VudGFnZShIVE1MUHJvZ3Jlc3NFbGVtZW50OjpJ
bmRldGVybWluYXRlUG9zaXRpb24gKiAxMDApOwogICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1
ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjAxNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsx
MDksNyBAQCBQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0CiAKIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290
KiByb290KQogewotICAgIHJvb3QtPmFwcGVuZENoaWxkKFRleHRDb250cm9sSW5uZXJUZXh0RWxl
bWVudDo6Y3JlYXRlKCZkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcm9v
dC0+YXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhU
TUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCShyZXZpc2lvbiAxNTYwMTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
NSwxMSArMTA1LDExIEBAIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmUK
ICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBBU1NFUlQodGV4dFdyYXBwZXIpOwogCi0gICAg
UmVmUHRyPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoJmVsZW1lbnQoKS5kb2N1bWVu
dCgpKTsKKyAgICBSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gcmVzdWx0
c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50
KCkuZG9jdW1lbnQoKSk7CiAgICAgbV9yZXN1bHRzQnV0dG9uID0gcmVzdWx0c0J1dHRvbi5nZXQo
KTsKICAgICBjb250YWluZXItPmluc2VydEJlZm9yZShtX3Jlc3VsdHNCdXR0b24sIHRleHRXcmFw
cGVyLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbkVsZW1lbnQ+IGNhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKCZlbGVtZW50KCkuZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPFNlYXJjaEZpZWxk
Q2FuY2VsQnV0dG9uRWxlbWVudD4gY2FuY2VsQnV0dG9uID0gU2VhcmNoRmllbGRDYW5jZWxCdXR0
b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgIG1fY2FuY2VsQnV0
dG9uID0gY2FuY2VsQnV0dG9uLmdldCgpOwogICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKG1f
Y2FuY2VsQnV0dG9uLCB0ZXh0V3JhcHBlci0+bmV4dFNpYmxpbmcoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3Bw
CShyZXZpc2lvbiAxNTYwMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCwzMSArMjM0LDMxIEBAIHZvaWQgVGV4dEZp
ZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWIKICAgICBib29sIHNob3VsZEhhdmVTcGluQnV0
dG9uID0gdGhpcy0+c2hvdWxkSGF2ZVNwaW5CdXR0b24oKTsKICAgICBib29sIGNyZWF0ZXNDb250
YWluZXIgPSBzaG91bGRIYXZlU3BpbkJ1dHRvbiB8fCBuZWVkc0NvbnRhaW5lcigpOwogCi0gICAg
bV9pbm5lclRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1l
bnQpOworICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikgewogICAgICAgICBlbGVt
ZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBTaGFkb3dSb290
KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKLSAgICBtX2Nv
bnRhaW5lciA9IFRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZSgmZG9jdW1lbnQpOwor
ICAgIG1fY29udGFpbmVyID0gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlKGRvY3Vt
ZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC10
ZXh0ZmllbGQtZGVjb3JhdGlvbi1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQobV9jb250YWluZXIsIElH
Tk9SRV9FWENFUFRJT04pOwogCi0gICAgbV9pbm5lckJsb2NrID0gVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgIG1faW5uZXJCbG9jayA9IFRleHRDb250cm9s
SW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1faW5uZXJCbG9jay0+YXBwZW5k
Q2hpbGQobV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIG1fY29udGFpbmVyLT5h
cHBlbmRDaGlsZChtX2lubmVyQmxvY2ssIElHTk9SRV9FWENFUFRJT04pOwogCiAjaWYgRU5BQkxF
KElOUFVUX1NQRUVDSCkKICAgICBBU1NFUlQoIW1fc3BlZWNoQnV0dG9uKTsKICAgICBpZiAoZWxl
bWVudCgpLmlzU3BlZWNoRW5hYmxlZCgpKSB7Ci0gICAgICAgIG1fc3BlZWNoQnV0dG9uID0gSW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgICAgICBt
X3NwZWVjaEJ1dHRvbiA9IElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9zcGVlY2hCdXR0b24s
IElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KICNlbmRpZgogCiAgICAgaWYgKHNob3VsZEhhdmVT
cGluQnV0dG9uKSB7Ci0gICAgICAgIG1faW5uZXJTcGluQnV0dG9uID0gU3BpbkJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZSgmZG9jdW1lbnQsICp0aGlzKTsKKyAgICAgICAgbV9pbm5lclNwaW5CdXR0b24g
PSBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCAqdGhpcyk7CiAgICAgICAgIG1f
Y29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFk
b3dFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZXRlclNoYWRvd0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYwMTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAotTWV0ZXJTaGFkb3dFbGVtZW50OjpNZXRlclNoYWRvd0VsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KSAKLSAgICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCAqZG9j
dW1lbnQpCitNZXRlclNoYWRvd0VsZW1lbnQ6Ok1ldGVyU2hhZG93RWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1l
bnQpCiB7CiB9CiAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBNZXRlclNoYWRvd0VsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZQogICAgIHJldHVybiByZW5kZXIgJiYgIXJlbmRlci0+dGhlbWUoKS0+c3Vw
cG9ydHNNZXRlcihyZW5kZXItPnN0eWxlKCktPmFwcGVhcmFuY2UoKSkgJiYgSFRNTERpdkVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1NZXRlcklubmVyRWxlbWVudDo6TWV0
ZXJJbm5lckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorTWV0ZXJJbm5lckVsZW1lbnQ6Ok1l
dGVySW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1ldGVyU2hhZG93RWxl
bWVudChkb2N1bWVudCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
cHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWV0ZXJTaGFkb3dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgJKHJldmlzaW9uIDE1NjAxNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MiwzNSArNDIsMzcgQEAgY2xhc3MgUmVuZGVyTWV0ZXI7CiAKIGNsYXNzIE1ldGVyU2hhZG93
RWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgTWV0ZXJTaGFk
b3dFbGVtZW50KERvY3VtZW50Kik7CiAgICAgSFRNTE1ldGVyRWxlbWVudCogbWV0ZXJFbGVtZW50
KCkgY29uc3Q7CiAKK3Byb3RlY3RlZDoKKyAgICBNZXRlclNoYWRvd0VsZW1lbnQoRG9jdW1lbnQm
KTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpOwogfTsKIAogY2xhc3MgTWV0ZXJJbm5lckVsZW1lbnQgRklOQUwgOiBwdWJs
aWMgTWV0ZXJTaGFkb3dFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZXRlcklubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWV0ZXJJbm5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAg
IE1ldGVySW5uZXJFbGVtZW50KERvY3VtZW50Kik7CisgICAgTWV0ZXJJbm5lckVsZW1lbnQoRG9j
dW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKIH07CiAKLWlubGluZSBQ
YXNzUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBQYXNzUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBN
ZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1ldGVySW5uZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIGNsYXNz
IE1ldGVyQmFyRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBNZXRlclNoYWRvd0VsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBNZXRlckJhckVsZW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KSAKKyAgICBNZXRlckJhckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6
IE1ldGVyU2hhZG93RWxlbWVudChkb2N1bWVudCkKICAgICB7CiAgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLWJhciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKQEAgLTc4LDE5ICs4MCwxOSBAQCBw
cml2YXRlOgogICAgIH0KIH07CiAKLWlubGluZSBQYXNzUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4g
TWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFBhc3NS
ZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXRlckJhckVsZW1lbnQoZG9j
dW1lbnQpKTsKIH0KIAogY2xhc3MgTWV0ZXJWYWx1ZUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWV0
ZXJTaGFkb3dFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXRlclZh
bHVlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWV0
ZXJWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogICAgIHZvaWQgc2V0V2lkdGhQZXJj
ZW50YWdlKGRvdWJsZSk7CiAgICAgdm9pZCB1cGRhdGVQc2V1ZG8oKSB7IHNldFBzZXVkbyh2YWx1
ZVBzZXVkb0lkKCkpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWV0ZXJWYWx1ZUVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KSAKKyAgICBNZXRlclZhbHVlRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgICAgIDogTWV0ZXJTaGFkb3dFbGVtZW50KGRvY3VtZW50KQogICAgIHsKICAgICAgICAg
dXBkYXRlUHNldWRvKCk7CkBAIC05OSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWVQc2V1ZG9JZCgpIGNvbnN0OwogfTsKIAotaW5saW5lIFBhc3NSZWZQ
dHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQoraW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IE1ldGVyVmFs
dWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTWV0ZXJWYWx1ZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU2MDE1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVByb2dyZXNzU2hh
ZG93RWxlbWVudDo6UHJvZ3Jlc3NTaGFkb3dFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAg
ICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCAqZG9jdW1lbnQpCitQcm9ncmVz
c1NoYWRvd0VsZW1lbnQ6OlByb2dyZXNzU2hhZG93RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiB7CiB9
CiAKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBQcm9ncmVzc1NoYWRvd0VsZW1lbnQ6OnJlbmRlcmVy
SXNOZQogICAgIHJldHVybiBwcm9ncmVzc1JlbmRlcmVyICYmICFwcm9ncmVzc1JlbmRlcmVyLT5z
dHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoc3R5bGUpOwogfQogCi1Qcm9ncmVzc0lubmVyRWxlbWVudDo6UHJvZ3Jlc3NJbm5lckVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50KQorUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OlByb2dyZXNzSW5u
ZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFByb2dyZXNzU2hhZG93RWxlbWVu
dChkb2N1bWVudCkKIHsKIH0KQEAgLTc1LDEyICs3NSwxMiBAQCBib29sIFByb2dyZXNzSW5uZXJF
bGVtZW50OjpyZW5kZXJlcklzTmVlCiAgICAgcmV0dXJuIHByb2dyZXNzUmVuZGVyZXIgJiYgIXBy
b2dyZXNzUmVuZGVyZXItPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSAmJiBIVE1MRGl2RWxlbWVu
dDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7ICAgIAogfQogCi1Qcm9ncmVzc0JhckVsZW1lbnQ6
OlByb2dyZXNzQmFyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitQcm9ncmVzc0JhckVsZW1l
bnQ6OlByb2dyZXNzQmFyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBQcm9ncmVz
c1NoYWRvd0VsZW1lbnQoZG9jdW1lbnQpCiB7CiB9CiAKLVByb2dyZXNzVmFsdWVFbGVtZW50OjpQ
cm9ncmVzc1ZhbHVlRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitQcm9ncmVzc1ZhbHVlRWxl
bWVudDo6UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50KGRvY3VtZW50KQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgJKHJldmlzaW9uIDE1
NjAxNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MiwyNSArNDIsMjcgQEAgY2xhc3MgSFRNTFByb2dyZXNz
RWxlbWVudDsKIAogY2xhc3MgUHJvZ3Jlc3NTaGFkb3dFbGVtZW50IDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKIHB1YmxpYzoKLSAgICBQcm9ncmVzc1NoYWRvd0VsZW1lbnQoRG9jdW1lbnQqKTsK
ICAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBwcm9ncmVzc0VsZW1lbnQoKSBjb25zdDsKIAogcHJv
dGVjdGVkOgorICAgIFByb2dyZXNzU2hhZG93RWxlbWVudChEb2N1bWVudCYpOworCitwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7
CiB9OwogCiBjbGFzcyBQcm9ncmVzc0lubmVyRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBQcm9ncmVz
c1NoYWRvd0VsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNz
SW5uZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQ
cm9ncmVzc0lubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAg
UHJvZ3Jlc3NJbm5lckVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBQcm9ncmVzc0lubmVyRWxlbWVu
dChEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwogfTsKIAotaW5saW5lIFBhc3NS
ZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1l
bnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewog
ICAgIFJlZlB0cjxQcm9ncmVzc0lubmVyRWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYobmV3IFBy
b2dyZXNzSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CkBAIC02OSwxMyArNzEsMTMgQEAgaW5saW5lIFBhc3NS
ZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IAogCiBjbGFzcyBQcm9ncmVzc0JhckVsZW1lbnQg
RklOQUwgOiBwdWJsaWMgUHJvZ3Jlc3NTaGFkb3dFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7
CiAKIHByaXZhdGU6Ci0gICAgUHJvZ3Jlc3NCYXJFbGVtZW50KERvY3VtZW50Kik7CisgICAgUHJv
Z3Jlc3NCYXJFbGVtZW50KERvY3VtZW50Jik7CiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxQcm9n
cmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKK2lubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gUHJvZ3Jlc3NCYXJF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxQcm9ncmVz
c0JhckVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0UmVmKG5ldyBQcm9ncmVzc0JhckVsZW1lbnQoZG9j
dW1lbnQpKTsKICAgICByZXN1bHQtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtcHJv
Z3Jlc3MtYmFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwpAQCAtODQs
MTQgKzg2LDE0IEBAIGlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gUHIKIAog
Y2xhc3MgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgUHJvZ3Jlc3NTaGFkb3dF
bGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc1ZhbHVlRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZ3Jlc3NW
YWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogICAgIHZvaWQgc2V0V2lkdGhQZXJjZW50
YWdlKGRvdWJsZSk7CiAKIHByaXZhdGU6Ci0gICAgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQoRG9jdW1l
bnQqKTsKKyAgICBQcm9ncmVzc1ZhbHVlRWxlbWVudChEb2N1bWVudCYpOwogfTsKIAotaW5saW5l
IFBhc3NSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jlc3NWYWx1
ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQogewogICAgIFJlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYo
bmV3IFByb2dyZXNzVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1
ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MDE1KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw4ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAotaW5saW5lIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uRWxlbWVu
dChEb2N1bWVudCogZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYgc3BpbkJ1dHRvbk93bmVyKQot
ICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCAqZG9jdW1lbnQpCitpbmxpbmUgU3BpbkJ1dHRv
bkVsZW1lbnQ6OlNwaW5CdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgU3BpbkJ1dHRv
bk93bmVyJiBzcGluQnV0dG9uT3duZXIpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRv
Y3VtZW50KQogICAgICwgbV9zcGluQnV0dG9uT3duZXIoJnNwaW5CdXR0b25Pd25lcikKICAgICAs
IG1fY2FwdHVyaW5nKGZhbHNlKQogICAgICwgbV91cERvd25TdGF0ZShJbmRldGVybWluYXRlKQpA
QCAtNTQsNyArNTQsNyBAQCBpbmxpbmUgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25FbGVt
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8U3BpbkJ1dHRvbkVsZW1lbnQ+IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50LCBTcGluQnV0dG9uT3duZXImIHNwaW5CdXR0b25Pd25lcikKK1Bhc3NSZWZQdHI8
U3BpbkJ1dHRvbkVsZW1lbnQ+IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBTcGluQnV0dG9uT3duZXImIHNwaW5CdXR0b25Pd25lcikKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNwaW5CdXR0b25FbGVtZW50KGRvY3VtZW50LCBzcGluQnV0dG9uT3duZXIp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVs
ZW1lbnQuaAkocmV2aXNpb24gMTU2MDE1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAgICAgLy8gVGhlIG93bmVyIG9mIFNwaW5CdXR0b25FbGVtZW50IG11c3QgY2FsbCByZW1v
dmVTcGluQnV0dG9uT3duZXIKICAgICAvLyBiZWNhdXNlIFNwaW5CdXR0b25FbGVtZW50IGNhbiBi
ZSBvdXRsaXZlIFNwaW5CdXR0b25Pd25lcgogICAgIC8vIGltcGxlbWVudGF0aW9uLCBlLmcuIGR1
cmluZyBldmVudCBoYW5kbGluZy4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50KiwgU3BpbkJ1dHRvbk93bmVyJik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3BpbkJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIFNwaW5CdXR0b25P
d25lciYpOwogICAgIFVwRG93blN0YXRlIHVwRG93blN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV91
cERvd25TdGF0ZTsgfQogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQ2FwdHVyZSgpOwogICAgIHZv
aWQgcmVtb3ZlU3BpbkJ1dHRvbk93bmVyKCkgeyBtX3NwaW5CdXR0b25Pd25lciA9IDA7IH0KQEAg
LTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZm9yd2FyZEV2ZW50KEV2ZW50Kik7CiAK
IHByaXZhdGU6Ci0gICAgU3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBTcGluQnV0dG9uT3du
ZXImKTsKKyAgICBTcGluQnV0dG9uRWxlbWVudChEb2N1bWVudCYsIFNwaW5CdXR0b25Pd25lciYp
OwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcAkocmV2aXNpb24gMTU2MDE1KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDgsMTIgKzQ4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAotVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6VGV4dENvbnRyb2xJbm5lckNv
bnRhaW5lcihEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcs
ICpkb2N1bWVudCkKK1RleHRDb250cm9sSW5uZXJDb250YWluZXI6OlRleHRDb250cm9sSW5uZXJD
b250YWluZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFn
LCBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVy
PiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQor
UGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPiBUZXh0Q29udHJvbElubmVyQ29u
dGFpbmVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihkb2N1bWVudCkpOwogfQpAQCAtNjMsMTMg
KzYzLDEzIEBAIFJlbmRlck9iamVjdCogVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjoKICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcih0aGlzKTsK
IH0KIAotVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJFbGVtZW50KERv
Y3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgKmRvY3VtZW50
KQorVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCiB7
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyRWxlbWVu
dD4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0Q29udHJvbElubmVyRWxlbWVudChkb2N1bWVu
dCkpOwogfQpAQCAtODIsMTMgKzgyLDEzIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFRleHRD
b250cm9sSW5uZXIKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsICpkb2N1bWVu
dCkKK2lubGluZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZU
YWcsIGRvY3VtZW50KQogewogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygp
OwogfQogCi1QYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gVGV4dENvbnRy
b2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0
cjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChkb2N1bWVudCkpOwogfQpAQCAtMTI1LDEyICsx
MjUsMTIgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lcgogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgKmRvY3VtZW50KQoraW5saW5l
IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkUmVzdWx0c0J1dHRv
bkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFn
LCBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25F
bGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxl
bWVudChkb2N1bWVudCkpOwogfQpAQCAtMTc5LDE0ICsxNzksMTQgQEAgYm9vbCBTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b25FbGVtZW50Ojp3aQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLWlubGluZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxk
Q2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxl
bWVudChkaXZUYWcsICpkb2N1bWVudCkKK2lubGluZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVs
ZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9jYXB0dXJp
bmcoZmFsc2UpCiB7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9
CiAKLVBhc3NSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVm
UHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRDYW5jZWxCdXR0
b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiB9CkBA
IC0yNTgsOCArMjU4LDggQEAgYm9vbCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6Ondp
bAogCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKIAotaW5saW5lIElucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50OjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsICpkb2N1bWVudCkKK2lubGluZSBJ
bnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1
bWVudCkKICAgICAsIG1fY2FwdHVyaW5nKGZhbHNlKQogICAgICwgbV9zdGF0ZShJZGxlKQogICAg
ICwgbV9saXN0ZW5lcklkKDApCkBAIC0yNzcsNyArMjc3LDcgQEAgSW5wdXRGaWVsZFNwZWVjaEJ1
dHRvbkVsZW1lbnQ6On5JbnB1dEZpZQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uRWxlbWVudD4gSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPElucHV0RmllbGRTcGVlY2hCdXR0b25F
bGVtZW50PiBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElucHV0RmllbGRTcGVlY2hCdXR0
b25FbGVtZW50KGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAkocmV2aXNpb24gMTU2MDE1
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE4ICszNywxOCBAQCBjbGFzcyBTcGVlY2hJbnB1dDsK
IAogY2xhc3MgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lciBGSU5BTCA6IHB1YmxpYyBIVE1MRGl2
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5l
ckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4
dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Jik7CiBwcm90ZWN0ZWQ6Ci0g
ICAgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihEb2N1bWVudCopOworICAgIFRleHRDb250cm9s
SW5uZXJDb250YWluZXIoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogfTsKIAogY2xhc3MgVGV4
dENvbnRyb2xJbm5lckVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByb3RlY3RlZDoKLSAgICBUZXh0Q29udHJvbElu
bmVyRWxlbWVudChEb2N1bWVudCopOworICAgIFRleHRDb250cm9sSW5uZXJFbGVtZW50KERvY3Vt
ZW50Jik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZv
clJlbmRlcmVyKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CkBAIC01NywxMiArNTcsMTIgQEAgcHJp
dmF0ZToKIAogY2xhc3MgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50IEZJTkFMIDogcHVibGlj
IEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCiBwcml2YXRl
OgotICAgIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1bWVudCopOworICAgIFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQpAQCAtNzAsMjcgKzcwLDI3IEBAIHByaXZhdGU6CiAKIGNsYXNz
IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlYXJjaEZpZWxkUmVzdWx0
c0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAgICB2aXJ0dWFs
IGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsKIAogcHJpdmF0
ZToKLSAgICBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CisgICAg
U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0K
IH07CiAKIGNsYXNzIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCBGSU5BTCA6IHB1Ymxp
YyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9N
b3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgU2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CisgICAgU2VhcmNoRmllbGRDYW5jZWxCdXR0
b25FbGVtZW50KERvY3VtZW50Jik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNo
YWRvd1BzZXVkb0lkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJl
cnMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgog
ICAgICAgICBSZWNvZ25pemluZywKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKICAgICB2aXJ0dWFsIH5JbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKQEAgLTEyNiw3ICsx
MjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWNvZ25pdGlvblJlc3VsdChpbnQsIGNvbnN0
IFNwZWVjaElucHV0UmVzdWx0QXJyYXkmKTsKIAogcHJpdmF0ZToKLSAgICBJbnB1dEZpZWxkU3Bl
ZWNoQnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIElucHV0RmllbGRTcGVlY2hCdXR0b25F
bGVtZW50KERvY3VtZW50Jik7CiAgICAgU3BlZWNoSW5wdXQqIHNwZWVjaElucHV0KCk7CiAgICAg
dm9pZCBzZXRTdGF0ZShTcGVlY2hJbnB1dFN0YXRlIHN0YXRlKTsKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211967</attachid>
            <date>2013-09-17 20:36:13 -0700</date>
            <delta_ts>2013-09-17 21:57:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121533-20130917203612.patch</filename>
            <type>text/plain</type>
            <size>26943</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjAyMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA5LTE3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1RURTogQ29udmVydCBzb21lIHN0cmFn
Z2xpbmcgRWxlbWVudCBzdWJjbGFzc2VzIGNvbnN0cnVjdG9ycyB0byB0YWtlIGEgRG9jdW1lbnQm
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE1MzMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50
OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6ZGlk
QWRkVXNlckFnZW50U2hhZG93Um9vdCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRpZEFkZFVz
ZXJBZ2VudFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6
CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWV0
ZXJTaGFkb3dFbGVtZW50OjpNZXRlclNoYWRvd0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWV0ZXJJbm5lckVsZW1lbnQ6Ok1ldGVySW5uZXJFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1ldGVySW5uZXJF
bGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJCYXJFbGVtZW50OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzU2hhZG93RWxlbWVudDo6UHJvZ3Jlc3NTaGFkb3dFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlByb2dyZXNzSW5uZXJFbGVtZW50OjpQcm9ncmVzc0lubmVyRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0JhckVsZW1lbnQ6OlByb2dyZXNzQmFyRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc1ZhbHVlRWxlbWVudDo6UHJvZ3Jlc3NW
YWx1ZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVu
dC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpQcm9ncmVzc1ZhbHVlRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9u
RWxlbWVudDo6U3BpbkJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6VGV4dENvbnRy
b2xJbm5lckNvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyQ29u
dGFpbmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lckVsZW1l
bnQ6OlRleHRDb250cm9sSW5uZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250
cm9sSW5uZXJFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJ
bm5lclRleHRFbGVtZW50OjpUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6U2VhcmNoRmllbGRSZXN1
bHRzQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5j
ZWxCdXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OklucHV0RmllbGRT
cGVlY2hCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9s
SW5uZXJFbGVtZW50cy5oOgorCiAyMDEzLTA5LTE3ICBab2x0YW4gSG9ydmF0aCAgPHpvbHRhbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBVc2UgdGhlIGZsb2F0IGhlaWdodCB0
byBkZXRlcm1pbmUgcG9zaXRpb24gaW4gc2hhcGUtaW5zaWRlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjAyMikKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMSwx
MSArMjMxLDExIEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2gKIHsK
ICAgICBBU1NFUlQoIW1fdmFsdWUpOwogCi0gICAgUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBp
bm5lciA9IE1ldGVySW5uZXJFbGVtZW50OjpjcmVhdGUoJmRvY3VtZW50KCkpOworICAgIFJlZlB0
cjxNZXRlcklubmVyRWxlbWVudD4gaW5uZXIgPSBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KCkpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKIAotICAgIFJlZlB0cjxN
ZXRlckJhckVsZW1lbnQ+IGJhciA9IE1ldGVyQmFyRWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCgp
KTsKLSAgICBtX3ZhbHVlID0gTWV0ZXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSk7
CisgICAgUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gYmFyID0gTWV0ZXJCYXJFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CisgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZS0+c2V0V2lkdGhQZXJjZW50YWdlKDApOwogICAgIG1f
dmFsdWUtPnVwZGF0ZVBzZXVkbygpOwogICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVz
c0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjAyMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NCwxMSArMTU0LDEx
IEBAIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkQWRkVXNlckFnZW4KIHsKICAgICBBU1NF
UlQoIW1fdmFsdWUpOwogCi0gICAgUmVmUHRyPFByb2dyZXNzSW5uZXJFbGVtZW50PiBpbm5lciA9
IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoJmRvY3VtZW50KCkpOworICAgIFJlZlB0cjxQ
cm9ncmVzc0lubmVyRWxlbWVudD4gaW5uZXIgPSBQcm9ncmVzc0lubmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KCkpOwogICAgIHJvb3QtPmFwcGVuZENoaWxkKGlubmVyKTsKIAotICAgIFJlZlB0
cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKCZk
b2N1bWVudCgpKTsKLSAgICBSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IHZhbHVlID0gUHJv
Z3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPFByb2dy
ZXNzQmFyRWxlbWVudD4gYmFyID0gUHJvZ3Jlc3NCYXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CisgICAgUmVmUHRyPFByb2dyZXNzVmFsdWVFbGVtZW50PiB2YWx1ZSA9IFByb2dyZXNzVmFs
dWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgbV92YWx1ZSA9IHZhbHVlLmdldCgp
OwogICAgIG1fdmFsdWUtPnNldFdpZHRoUGVyY2VudGFnZShIVE1MUHJvZ3Jlc3NFbGVtZW50OjpJ
bmRldGVybWluYXRlUG9zaXRpb24gKiAxMDApOwogICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1
ZSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NjAyMikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsx
MDksNyBAQCBQYXNzUmVmUHRyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IEhUTUxUZXh0CiAKIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290
KiByb290KQogewotICAgIHJvb3QtPmFwcGVuZENoaWxkKFRleHRDb250cm9sSW5uZXJUZXh0RWxl
bWVudDo6Y3JlYXRlKCZkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgcm9v
dC0+YXBwZW5kQ2hpbGQoVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04pOwogfQogCiBjb25zdCBBdG9taWNTdHJpbmcmIEhU
TUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCShyZXZpc2lvbiAxNTYwMjIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEw
NSwxMSArMTA1LDExIEBAIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmUK
ICAgICBBU1NFUlQoY29udGFpbmVyKTsKICAgICBBU1NFUlQodGV4dFdyYXBwZXIpOwogCi0gICAg
UmVmUHRyPFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IHJlc3VsdHNCdXR0b24gPSBT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoJmVsZW1lbnQoKS5kb2N1bWVu
dCgpKTsKKyAgICBSZWZQdHI8U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudD4gcmVzdWx0
c0J1dHRvbiA9IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50
KCkuZG9jdW1lbnQoKSk7CiAgICAgbV9yZXN1bHRzQnV0dG9uID0gcmVzdWx0c0J1dHRvbi5nZXQo
KTsKICAgICBjb250YWluZXItPmluc2VydEJlZm9yZShtX3Jlc3VsdHNCdXR0b24sIHRleHRXcmFw
cGVyLCBJR05PUkVfRVhDRVBUSU9OKTsKIAotICAgIFJlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1
dHRvbkVsZW1lbnQ+IGNhbmNlbEJ1dHRvbiA9IFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKCZlbGVtZW50KCkuZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPFNlYXJjaEZpZWxk
Q2FuY2VsQnV0dG9uRWxlbWVudD4gY2FuY2VsQnV0dG9uID0gU2VhcmNoRmllbGRDYW5jZWxCdXR0
b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLmRvY3VtZW50KCkpOwogICAgIG1fY2FuY2VsQnV0
dG9uID0gY2FuY2VsQnV0dG9uLmdldCgpOwogICAgIGNvbnRhaW5lci0+aW5zZXJ0QmVmb3JlKG1f
Y2FuY2VsQnV0dG9uLCB0ZXh0V3JhcHBlci0+bmV4dFNpYmxpbmcoKSwgSUdOT1JFX0VYQ0VQVElP
Tik7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3Bw
CShyZXZpc2lvbiAxNTYwMjIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0
VHlwZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCwzMSArMjM0LDMxIEBAIHZvaWQgVGV4dEZp
ZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWIKICAgICBib29sIHNob3VsZEhhdmVTcGluQnV0
dG9uID0gdGhpcy0+c2hvdWxkSGF2ZVNwaW5CdXR0b24oKTsKICAgICBib29sIGNyZWF0ZXNDb250
YWluZXIgPSBzaG91bGRIYXZlU3BpbkJ1dHRvbiB8fCBuZWVkc0NvbnRhaW5lcigpOwogCi0gICAg
bV9pbm5lclRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1l
bnQpOworICAgIG1faW5uZXJUZXh0ID0gVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIGlmICghY3JlYXRlc0NvbnRhaW5lcikgewogICAgICAgICBlbGVt
ZW50KCkudXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2lubmVyVGV4dCwgSUdO
T1JFX0VYQ0VQVElPTik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBTaGFkb3dSb290
KiBzaGFkb3dSb290ID0gZWxlbWVudCgpLnVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKLSAgICBtX2Nv
bnRhaW5lciA9IFRleHRDb250cm9sSW5uZXJDb250YWluZXI6OmNyZWF0ZSgmZG9jdW1lbnQpOwor
ICAgIG1fY29udGFpbmVyID0gVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6Y3JlYXRlKGRvY3Vt
ZW50KTsKICAgICBtX2NvbnRhaW5lci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC10
ZXh0ZmllbGQtZGVjb3JhdGlvbi1jb250YWluZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgc2hhZG93Um9vdC0+YXBwZW5kQ2hpbGQobV9jb250YWluZXIsIElH
Tk9SRV9FWENFUFRJT04pOwogCi0gICAgbV9pbm5lckJsb2NrID0gVGV4dENvbnRyb2xJbm5lckVs
ZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgIG1faW5uZXJCbG9jayA9IFRleHRDb250cm9s
SW5uZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIG1faW5uZXJCbG9jay0+YXBwZW5k
Q2hpbGQobV9pbm5lclRleHQsIElHTk9SRV9FWENFUFRJT04pOwogICAgIG1fY29udGFpbmVyLT5h
cHBlbmRDaGlsZChtX2lubmVyQmxvY2ssIElHTk9SRV9FWENFUFRJT04pOwogCiAjaWYgRU5BQkxF
KElOUFVUX1NQRUVDSCkKICAgICBBU1NFUlQoIW1fc3BlZWNoQnV0dG9uKTsKICAgICBpZiAoZWxl
bWVudCgpLmlzU3BlZWNoRW5hYmxlZCgpKSB7Ci0gICAgICAgIG1fc3BlZWNoQnV0dG9uID0gSW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgICAgICBt
X3NwZWVjaEJ1dHRvbiA9IElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgICAgICBtX2NvbnRhaW5lci0+YXBwZW5kQ2hpbGQobV9zcGVlY2hCdXR0b24s
IElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KICNlbmRpZgogCiAgICAgaWYgKHNob3VsZEhhdmVT
cGluQnV0dG9uKSB7Ci0gICAgICAgIG1faW5uZXJTcGluQnV0dG9uID0gU3BpbkJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZSgmZG9jdW1lbnQsICp0aGlzKTsKKyAgICAgICAgbV9pbm5lclNwaW5CdXR0b24g
PSBTcGluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCAqdGhpcyk7CiAgICAgICAgIG1f
Y29udGFpbmVyLT5hcHBlbmRDaGlsZChtX2lubmVyU3BpbkJ1dHRvbiwgSUdOT1JFX0VYQ0VQVElP
Tik7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFk
b3dFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZXRlclNoYWRvd0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTYwMjIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAotTWV0ZXJTaGFkb3dFbGVtZW50OjpNZXRlclNoYWRvd0VsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KSAKLSAgICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCAqZG9j
dW1lbnQpCitNZXRlclNoYWRvd0VsZW1lbnQ6Ok1ldGVyU2hhZG93RWxlbWVudChEb2N1bWVudCYg
ZG9jdW1lbnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1l
bnQpCiB7CiB9CiAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBNZXRlclNoYWRvd0VsZW1lbnQ6OnJl
bmRlcmVySXNOZWVkZQogICAgIHJldHVybiByZW5kZXIgJiYgIXJlbmRlci0+dGhlbWUoKS0+c3Vw
cG9ydHNNZXRlcihyZW5kZXItPnN0eWxlKCktPmFwcGVhcmFuY2UoKSkgJiYgSFRNTERpdkVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwogfQogCi1NZXRlcklubmVyRWxlbWVudDo6TWV0
ZXJJbm5lckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorTWV0ZXJJbm5lckVsZW1lbnQ6Ok1l
dGVySW5uZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1ldGVyU2hhZG93RWxl
bWVudChkb2N1bWVudCkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
cHNldWRvSWQsICgiLXdlYmtpdC1tZXRlci1pbm5lci1lbGVtZW50IiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWV0ZXJTaGFkb3dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgJKHJldmlzaW9uIDE1NjAyMikKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MiwzNSArNDIsMzcgQEAgY2xhc3MgUmVuZGVyTWV0ZXI7CiAKIGNsYXNzIE1ldGVyU2hhZG93
RWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgTWV0ZXJTaGFk
b3dFbGVtZW50KERvY3VtZW50Kik7CiAgICAgSFRNTE1ldGVyRWxlbWVudCogbWV0ZXJFbGVtZW50
KCkgY29uc3Q7CiAKK3Byb3RlY3RlZDoKKyAgICBNZXRlclNoYWRvd0VsZW1lbnQoRG9jdW1lbnQm
KTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpOwogfTsKIAogY2xhc3MgTWV0ZXJJbm5lckVsZW1lbnQgRklOQUwgOiBwdWJs
aWMgTWV0ZXJTaGFkb3dFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZXRlcklubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWV0ZXJJbm5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAg
IE1ldGVySW5uZXJFbGVtZW50KERvY3VtZW50Kik7CisgICAgTWV0ZXJJbm5lckVsZW1lbnQoRG9j
dW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKIH07CiAKLWlubGluZSBQ
YXNzUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBNZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKERv
Y3VtZW50KiBkb2N1bWVudCkKK2lubGluZSBQYXNzUmVmUHRyPE1ldGVySW5uZXJFbGVtZW50PiBN
ZXRlcklubmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1ldGVySW5uZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIGNsYXNz
IE1ldGVyQmFyRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBNZXRlclNoYWRvd0VsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBNZXRlckJhckVsZW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KSAKKyAgICBNZXRlckJhckVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICA6
IE1ldGVyU2hhZG93RWxlbWVudChkb2N1bWVudCkKICAgICB7CiAgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBwc2V1ZG9JZCwgKCItd2Via2l0LW1ldGVyLWJhciIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKQEAgLTc4LDE5ICs4MCwxOSBAQCBw
cml2YXRlOgogICAgIH0KIH07CiAKLWlubGluZSBQYXNzUmVmUHRyPE1ldGVyQmFyRWxlbWVudD4g
TWV0ZXJCYXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFBhc3NS
ZWZQdHI8TWV0ZXJCYXJFbGVtZW50PiBNZXRlckJhckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZXRlckJhckVsZW1lbnQoZG9j
dW1lbnQpKTsKIH0KIAogY2xhc3MgTWV0ZXJWYWx1ZUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWV0
ZXJTaGFkb3dFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZXRlclZh
bHVlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWV0
ZXJWYWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogICAgIHZvaWQgc2V0V2lkdGhQZXJj
ZW50YWdlKGRvdWJsZSk7CiAgICAgdm9pZCB1cGRhdGVQc2V1ZG8oKSB7IHNldFBzZXVkbyh2YWx1
ZVBzZXVkb0lkKCkpOyB9CiAKIHByaXZhdGU6Ci0gICAgTWV0ZXJWYWx1ZUVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KSAKKyAgICBNZXRlclZhbHVlRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgICAgIDogTWV0ZXJTaGFkb3dFbGVtZW50KGRvY3VtZW50KQogICAgIHsKICAgICAgICAg
dXBkYXRlUHNldWRvKCk7CkBAIC05OSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWVQc2V1ZG9JZCgpIGNvbnN0OwogfTsKIAotaW5saW5lIFBhc3NSZWZQ
dHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQoraW5saW5lIFBhc3NSZWZQdHI8TWV0ZXJWYWx1ZUVsZW1lbnQ+IE1ldGVyVmFs
dWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTWV0ZXJWYWx1ZUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAko
cmV2aXNpb24gMTU2MDIyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVByb2dyZXNzU2hh
ZG93RWxlbWVudDo6UHJvZ3Jlc3NTaGFkb3dFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAg
ICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCAqZG9jdW1lbnQpCitQcm9ncmVz
c1NoYWRvd0VsZW1lbnQ6OlByb2dyZXNzU2hhZG93RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiB7CiB9
CiAKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBQcm9ncmVzc1NoYWRvd0VsZW1lbnQ6OnJlbmRlcmVy
SXNOZQogICAgIHJldHVybiBwcm9ncmVzc1JlbmRlcmVyICYmICFwcm9ncmVzc1JlbmRlcmVyLT5z
dHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkgJiYgSFRNTERpdkVsZW1lbnQ6OnJlbmRlcmVySXNOZWVk
ZWQoc3R5bGUpOwogfQogCi1Qcm9ncmVzc0lubmVyRWxlbWVudDo6UHJvZ3Jlc3NJbm5lckVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50KQorUHJvZ3Jlc3NJbm5lckVsZW1lbnQ6OlByb2dyZXNzSW5u
ZXJFbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFByb2dyZXNzU2hhZG93RWxlbWVu
dChkb2N1bWVudCkKIHsKIH0KQEAgLTc1LDEyICs3NSwxMiBAQCBib29sIFByb2dyZXNzSW5uZXJF
bGVtZW50OjpyZW5kZXJlcklzTmVlCiAgICAgcmV0dXJuIHByb2dyZXNzUmVuZGVyZXIgJiYgIXBy
b2dyZXNzUmVuZGVyZXItPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSAmJiBIVE1MRGl2RWxlbWVu
dDo6cmVuZGVyZXJJc05lZWRlZChzdHlsZSk7ICAgIAogfQogCi1Qcm9ncmVzc0JhckVsZW1lbnQ6
OlByb2dyZXNzQmFyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitQcm9ncmVzc0JhckVsZW1l
bnQ6OlByb2dyZXNzQmFyRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBQcm9ncmVz
c1NoYWRvd0VsZW1lbnQoZG9jdW1lbnQpCiB7CiB9CiAKLVByb2dyZXNzVmFsdWVFbGVtZW50OjpQ
cm9ncmVzc1ZhbHVlRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitQcm9ncmVzc1ZhbHVlRWxl
bWVudDo6UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50KGRvY3VtZW50KQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgJKHJldmlzaW9uIDE1
NjAyMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MiwyNSArNDIsMjcgQEAgY2xhc3MgSFRNTFByb2dyZXNz
RWxlbWVudDsKIAogY2xhc3MgUHJvZ3Jlc3NTaGFkb3dFbGVtZW50IDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKIHB1YmxpYzoKLSAgICBQcm9ncmVzc1NoYWRvd0VsZW1lbnQoRG9jdW1lbnQqKTsK
ICAgICBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBwcm9ncmVzc0VsZW1lbnQoKSBjb25zdDsKIAogcHJv
dGVjdGVkOgorICAgIFByb2dyZXNzU2hhZG93RWxlbWVudChEb2N1bWVudCYpOworCitwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7
CiB9OwogCiBjbGFzcyBQcm9ncmVzc0lubmVyRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBQcm9ncmVz
c1NoYWRvd0VsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNz
SW5uZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQ
cm9ncmVzc0lubmVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAg
UHJvZ3Jlc3NJbm5lckVsZW1lbnQoRG9jdW1lbnQqKTsKKyAgICBQcm9ncmVzc0lubmVyRWxlbWVu
dChEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hJiwgUmVuZGVyU3R5bGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpOwogfTsKIAotaW5saW5lIFBhc3NS
ZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1l
bnQ+IFByb2dyZXNzSW5uZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewog
ICAgIFJlZlB0cjxQcm9ncmVzc0lubmVyRWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYobmV3IFBy
b2dyZXNzSW5uZXJFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1ZG8oQXRv
bWljU3RyaW5nKCItd2Via2l0LXByb2dyZXNzLWlubmVyLWVsZW1lbnQiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CkBAIC02OSwxMyArNzEsMTMgQEAgaW5saW5lIFBhc3NS
ZWZQdHI8UHJvZ3Jlc3NJbm5lckVsZW1lbnQ+IAogCiBjbGFzcyBQcm9ncmVzc0JhckVsZW1lbnQg
RklOQUwgOiBwdWJsaWMgUHJvZ3Jlc3NTaGFkb3dFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7
CiAKIHByaXZhdGU6Ci0gICAgUHJvZ3Jlc3NCYXJFbGVtZW50KERvY3VtZW50Kik7CisgICAgUHJv
Z3Jlc3NCYXJFbGVtZW50KERvY3VtZW50Jik7CiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxQcm9n
cmVzc0JhckVsZW1lbnQ+IFByb2dyZXNzQmFyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKK2lubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gUHJvZ3Jlc3NCYXJF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxQcm9ncmVz
c0JhckVsZW1lbnQ+IHJlc3VsdCA9IGFkb3B0UmVmKG5ldyBQcm9ncmVzc0JhckVsZW1lbnQoZG9j
dW1lbnQpKTsKICAgICByZXN1bHQtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtcHJv
Z3Jlc3MtYmFyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwpAQCAtODQs
MTQgKzg2LDE0IEBAIGlubGluZSBQYXNzUmVmUHRyPFByb2dyZXNzQmFyRWxlbWVudD4gUHIKIAog
Y2xhc3MgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgUHJvZ3Jlc3NTaGFkb3dF
bGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc1ZhbHVlRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZ3Jlc3NW
YWx1ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogICAgIHZvaWQgc2V0V2lkdGhQZXJjZW50
YWdlKGRvdWJsZSk7CiAKIHByaXZhdGU6Ci0gICAgUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQoRG9jdW1l
bnQqKTsKKyAgICBQcm9ncmVzc1ZhbHVlRWxlbWVudChEb2N1bWVudCYpOwogfTsKIAotaW5saW5l
IFBhc3NSZWZQdHI8UHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFBhc3NSZWZQdHI8UHJvZ3Jlc3NWYWx1
ZUVsZW1lbnQ+IFByb2dyZXNzVmFsdWVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQogewogICAgIFJlZlB0cjxQcm9ncmVzc1ZhbHVlRWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYo
bmV3IFByb2dyZXNzVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgcmVzdWx0LT5zZXRQc2V1
ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXByb2dyZXNzLXZhbHVlIiwgQXRvbWljU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAkocmV2aXNpb24gMTU2MDIyKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw4ICs0Myw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIAotaW5saW5lIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uRWxlbWVu
dChEb2N1bWVudCogZG9jdW1lbnQsIFNwaW5CdXR0b25Pd25lciYgc3BpbkJ1dHRvbk93bmVyKQot
ICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCAqZG9jdW1lbnQpCitpbmxpbmUgU3BpbkJ1dHRv
bkVsZW1lbnQ6OlNwaW5CdXR0b25FbGVtZW50KERvY3VtZW50JiBkb2N1bWVudCwgU3BpbkJ1dHRv
bk93bmVyJiBzcGluQnV0dG9uT3duZXIpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRv
Y3VtZW50KQogICAgICwgbV9zcGluQnV0dG9uT3duZXIoJnNwaW5CdXR0b25Pd25lcikKICAgICAs
IG1fY2FwdHVyaW5nKGZhbHNlKQogICAgICwgbV91cERvd25TdGF0ZShJbmRldGVybWluYXRlKQpA
QCAtNTQsNyArNTQsNyBAQCBpbmxpbmUgU3BpbkJ1dHRvbkVsZW1lbnQ6OlNwaW5CdXR0b25FbGVt
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8U3BpbkJ1dHRvbkVsZW1lbnQ+IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50LCBTcGluQnV0dG9uT3duZXImIHNwaW5CdXR0b25Pd25lcikKK1Bhc3NSZWZQdHI8
U3BpbkJ1dHRvbkVsZW1lbnQ+IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBTcGluQnV0dG9uT3duZXImIHNwaW5CdXR0b25Pd25lcikKIHsKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNwaW5CdXR0b25FbGVtZW50KGRvY3VtZW50LCBzcGluQnV0dG9uT3duZXIp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVs
ZW1lbnQuaAkocmV2aXNpb24gMTU2MDIyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBwdWJs
aWM6CiAgICAgLy8gVGhlIG93bmVyIG9mIFNwaW5CdXR0b25FbGVtZW50IG11c3QgY2FsbCByZW1v
dmVTcGluQnV0dG9uT3duZXIKICAgICAvLyBiZWNhdXNlIFNwaW5CdXR0b25FbGVtZW50IGNhbiBi
ZSBvdXRsaXZlIFNwaW5CdXR0b25Pd25lcgogICAgIC8vIGltcGxlbWVudGF0aW9uLCBlLmcuIGR1
cmluZyBldmVudCBoYW5kbGluZy4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGluQnV0dG9uRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50KiwgU3BpbkJ1dHRvbk93bmVyJik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8U3BpbkJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYsIFNwaW5CdXR0b25P
d25lciYpOwogICAgIFVwRG93blN0YXRlIHVwRG93blN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV91
cERvd25TdGF0ZTsgfQogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlQ2FwdHVyZSgpOwogICAgIHZv
aWQgcmVtb3ZlU3BpbkJ1dHRvbk93bmVyKCkgeyBtX3NwaW5CdXR0b25Pd25lciA9IDA7IH0KQEAg
LTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZm9yd2FyZEV2ZW50KEV2ZW50Kik7CiAK
IHByaXZhdGU6Ci0gICAgU3BpbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqLCBTcGluQnV0dG9uT3du
ZXImKTsKKyAgICBTcGluQnV0dG9uRWxlbWVudChEb2N1bWVudCYsIFNwaW5CdXR0b25Pd25lciYp
OwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJlcnMoKSBPVkVSUklERTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJ
bm5lckVsZW1lbnRzLmNwcAkocmV2aXNpb24gMTU2MDIyKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDgsMTIgKzQ4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAotVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjo6VGV4dENvbnRyb2xJbm5lckNv
bnRhaW5lcihEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcs
ICpkb2N1bWVudCkKK1RleHRDb250cm9sSW5uZXJDb250YWluZXI6OlRleHRDb250cm9sSW5uZXJD
b250YWluZXIoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFn
LCBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVy
PiBUZXh0Q29udHJvbElubmVyQ29udGFpbmVyOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQor
UGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyQ29udGFpbmVyPiBUZXh0Q29udHJvbElubmVyQ29u
dGFpbmVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihkb2N1bWVudCkpOwogfQpAQCAtNjMsMTMg
KzYzLDEzIEBAIFJlbmRlck9iamVjdCogVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcjoKICAgICBy
ZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcih0aGlzKTsK
IH0KIAotVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJFbGVtZW50KERv
Y3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgKmRvY3VtZW50
KQorVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJFbGVtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCiB7
CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8VGV4dENvbnRyb2xJbm5lckVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyRWxlbWVu
dD4gVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0Q29udHJvbElubmVyRWxlbWVudChkb2N1bWVu
dCkpOwogfQpAQCAtODIsMTMgKzgyLDEzIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFRleHRD
b250cm9sSW5uZXIKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsICpkb2N1bWVu
dCkKK2lubGluZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJU
ZXh0RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZU
YWcsIGRvY3VtZW50KQogewogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygp
OwogfQogCi1QYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gVGV4dENvbnRy
b2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0
cjxUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChkb2N1bWVudCkpOwogfQpAQCAtMTI1LDEyICsx
MjUsMTIgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lcgogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBTZWFyY2hGaWVsZFJlc3VsdHNC
dXR0b25FbGVtZW50OjpTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgKmRvY3VtZW50KQoraW5saW5l
IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkUmVzdWx0c0J1dHRv
bkVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFn
LCBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25F
bGVtZW50PiBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50PiBT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50
KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxl
bWVudChkb2N1bWVudCkpOwogfQpAQCAtMTc5LDE0ICsxNzksMTQgQEAgYm9vbCBTZWFyY2hGaWVs
ZFJlc3VsdHNCdXR0b25FbGVtZW50Ojp3aQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLWlubGluZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxk
Q2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxl
bWVudChkaXZUYWcsICpkb2N1bWVudCkKK2lubGluZSBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVs
ZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAgICwgbV9jYXB0dXJp
bmcoZmFsc2UpCiB7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9
CiAKLVBhc3NSZWZQdHI8U2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBTZWFyY2hGaWVs
ZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVm
UHRyPFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudD4gU2VhcmNoRmllbGRDYW5jZWxCdXR0
b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiB9CkBA
IC0yNTgsOCArMjU4LDggQEAgYm9vbCBTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6Ondp
bAogCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKIAotaW5saW5lIElucHV0RmllbGRTcGVlY2hC
dXR0b25FbGVtZW50OjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsICpkb2N1bWVudCkKK2lubGluZSBJ
bnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1l
bnQoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBkb2N1
bWVudCkKICAgICAsIG1fY2FwdHVyaW5nKGZhbHNlKQogICAgICwgbV9zdGF0ZShJZGxlKQogICAg
ICwgbV9saXN0ZW5lcklkKDApCkBAIC0yNzcsNyArMjc3LDcgQEAgSW5wdXRGaWVsZFNwZWVjaEJ1
dHRvbkVsZW1lbnQ6On5JbnB1dEZpZQogICAgIH0KIH0KIAotUGFzc1JlZlB0cjxJbnB1dEZpZWxk
U3BlZWNoQnV0dG9uRWxlbWVudD4gSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPElucHV0RmllbGRTcGVlY2hCdXR0b25F
bGVtZW50PiBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBk
b2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElucHV0RmllbGRTcGVlY2hCdXR0
b25FbGVtZW50KGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuaAkocmV2aXNpb24gMTU2MDIy
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE4ICszNywxOCBAQCBjbGFzcyBTcGVlY2hJbnB1dDsK
IAogY2xhc3MgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lciBGSU5BTCA6IHB1YmxpYyBIVE1MRGl2
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dENvbnRyb2xJbm5l
ckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4
dENvbnRyb2xJbm5lckNvbnRhaW5lcj4gY3JlYXRlKERvY3VtZW50Jik7CiBwcm90ZWN0ZWQ6Ci0g
ICAgVGV4dENvbnRyb2xJbm5lckNvbnRhaW5lcihEb2N1bWVudCopOworICAgIFRleHRDb250cm9s
SW5uZXJDb250YWluZXIoRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmLCBSZW5kZXJTdHlsZSYpOwogfTsKIAogY2xhc3MgVGV4
dENvbnRyb2xJbm5lckVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRDb250cm9sSW5uZXJFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29udHJvbElubmVyRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByb3RlY3RlZDoKLSAgICBUZXh0Q29udHJvbElu
bmVyRWxlbWVudChEb2N1bWVudCopOworICAgIFRleHRDb250cm9sSW5uZXJFbGVtZW50KERvY3Vt
ZW50Jik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZv
clJlbmRlcmVyKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6CkBAIC01NywxMiArNTcsMTIgQEAgcHJp
dmF0ZToKIAogY2xhc3MgVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50IEZJTkFMIDogcHVibGlj
IEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q29u
dHJvbElubmVyVGV4dEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCiBwcml2YXRl
OgotICAgIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1bWVudCopOworICAgIFRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYsIFJlbmRlclN0eWxlJik7CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzTW91c2VGb2N1c2FibGUoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBmYWxzZTsgfQpAQCAtNzAsMjcgKzcwLDI3IEBAIHByaXZhdGU6CiAKIGNsYXNz
IFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTERpdkVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlYXJjaEZpZWxkUmVzdWx0
c0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAgICB2aXJ0dWFs
IGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsKIAogcHJpdmF0
ZToKLSAgICBTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CisgICAg
U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChEb2N1bWVudCYpOwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0K
IH07CiAKIGNsYXNzIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudCBGSU5BTCA6IHB1Ymxp
YyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VhcmNo
RmllbGRDYW5jZWxCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9N
b3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgU2VhcmNoRmllbGRD
YW5jZWxCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CisgICAgU2VhcmNoRmllbGRDYW5jZWxCdXR0
b25FbGVtZW50KERvY3VtZW50Jik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNo
YWRvd1BzZXVkb0lkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hSZW5kZXJl
cnMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgog
ICAgICAgICBSZWNvZ25pemluZywKICAgICB9OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5w
dXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQmKTsKICAgICB2aXJ0dWFsIH5JbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudCgpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKQEAgLTEyNiw3ICsx
MjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWNvZ25pdGlvblJlc3VsdChpbnQsIGNvbnN0
IFNwZWVjaElucHV0UmVzdWx0QXJyYXkmKTsKIAogcHJpdmF0ZToKLSAgICBJbnB1dEZpZWxkU3Bl
ZWNoQnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIElucHV0RmllbGRTcGVlY2hCdXR0b25F
bGVtZW50KERvY3VtZW50Jik7CiAgICAgU3BlZWNoSW5wdXQqIHNwZWVjaElucHV0KCk7CiAgICAg
dm9pZCBzZXRTdGF0ZShTcGVlY2hJbnB1dFN0YXRlIHN0YXRlKTsKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
</data>
<flag name="review"
          id="234111"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>