<?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>95522</bug_id>
          
          <creation_ts>2012-08-30 19:24:39 -0700</creation_ts>
          <short_desc>[chromium] Put compositor client interfaces in separate headers, normalize naming</short_desc>
          <delta_ts>2012-08-31 13:40:12 -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="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>enne</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>709254</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 19:24:39 -0700</bug_when>
    <thetext>[chromium] Put compositor client interfaces in separate headers, normalize naming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709255</commentid>
    <comment_count>1</comment_count>
      <attachid>161606</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 19:26:14 -0700</bug_when>
    <thetext>Created attachment 161606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709256</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 19:27:11 -0700</bug_when>
    <thetext>Boring and mechanical but necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709259</commentid>
    <comment_count>3</comment_count>
      <attachid>161607</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 19:30:10 -0700</bug_when>
    <thetext>Created attachment 161607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709262</commentid>
    <comment_count>4</comment_count>
      <attachid>161608</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-30 19:33:08 -0700</bug_when>
    <thetext>Created attachment 161608
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>709938</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-08-31 13:40:12 -0700</bug_when>
    <thetext>Committed r127311: &lt;http://trac.webkit.org/changeset/127311&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161606</attachid>
            <date>2012-08-30 19:26:14 -0700</date>
            <delta_ts>2012-08-30 19:30:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95522-20120830192602.patch</filename>
            <type>text/plain</type>
            <size>30613</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM3YTQzNmQ1Y2NjZGE0
ZDExYWMyMjUwNDFlYmYzYTA1NjdlN2RjMS4uYjNlYTZmNWQzMDBjMDBjMjZkOTllZDc4ZTJiMzMz
ZDk3MzkzMTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTMwICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBQ
dXQgY29tcG9zaXRvciBjbGllbnQgaW50ZXJmYWNlcyBpbiBzZXBhcmF0ZSBoZWFkZXJzLCBub3Jt
YWxpemUgbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTUyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENsaWVudCBpbnRlcmZhY2VzIHNob3VsZCBiZSBpbiB0aGVpciBvd24gaGVhZGVycyBzbyBj
b2RlIGltcGxlbWVudGluZyB0aGVzZSBpbnRlcmZhY2VzIGRvIG5vdCBoYXZlIHRvCisgICAgICAg
IHRyYW5zaXRpdmVseSAjaW5jbHVkZSBhbGwgb2YgdGhlIGNvbXBvc2l0b3IgaW50ZXJuYWxzLgor
CisgICAgICAgIFdlIGNhbGwgdGhpbmdzICdjbGllbnRzJyBub3QgJ2RlbGVnYXRlcycgaW4gdGhl
IGNvbXBvc2l0b3IuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudExheWVyUGFpbnRlcjo6Q29udGVudExheWVyUGFpbnRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudExheWVyUGFpbnRlcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5
ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudExheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5lZWRlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGVudExheWVyUGFpbnRlcik6CisgICAgICAg
IChDb250ZW50TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJD
aHJvbWl1bTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA4LTMwICBQcmF0aWsgU29sYW5raSAg
PHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBvYmpjX21zZ1NlbmQgYW5kIElNUCBzaG91
bGQgYmUgY2FzdCBhcHByb3ByaWF0ZWx5IGJlZm9yZSB1c2luZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBmNTk3NThiZTQxNWE2NDgyMWRjOTNmNzhiODI3YTdhYzI1M2JkNmVmLi43M2Uy
OTE4MTFkN2Q4MTljMzhlMmEwZGI0MmM0NWVmOTk5MDUyMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA4LTMwICBKYW1lcyBSb2JpbnNvbiAgPGph
bWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBQdXQgY29tcG9zaXRvciBj
bGllbnQgaW50ZXJmYWNlcyBpbiBzZXBhcmF0ZSBoZWFkZXJzLCBub3JtYWxpemUgbmFtaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTUyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYkNv
bnRlbnRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZW50TGF5ZXJJbXBs
Ojp+V2ViQ29udGVudExheWVySW1wbCk6CisgICAgICAgICogc3JjL1dlYkNvbnRlbnRMYXllcklt
cGwuaDoKKyAgICAgICAgKFdlYkNvbnRlbnRMYXllckltcGwpOgorICAgICAgICAqIHNyYy9XZWJF
eHRlcm5hbFRleHR1cmVMYXllckltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0
ZVRyYWNraW5nOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNvbnRlbnRMYXllckNo
cm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVU
cmFja2luZyk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXllclRyZWVIb3N0VGVzdERldmlj
ZVNjYWxlRmFjdG9yU2NhbGVzVmlld3BvcnRBbmRMYXllcnM6OkNDTGF5ZXJUcmVlSG9zdFRlc3RE
ZXZpY2VTY2FsZUZhY3RvclNjYWxlc1ZpZXdwb3J0QW5kTGF5ZXJzKToKKyAgICAgICAgKFdlYktp
dFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RUZXN0QXRvbWljQ29tbWl0OjpDQ0xheWVyVHJlZUhvc3RU
ZXN0QXRvbWljQ29tbWl0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RU
ZXN0QXRvbWljQ29tbWl0V2l0aFBhcnRpYWxVcGRhdGU6OkNDTGF5ZXJUcmVlSG9zdFRlc3RBdG9t
aWNDb21taXRXaXRoUGFydGlhbFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXll
clRyZWVIb3N0VGVzdExvc3RDb250ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlczo6Q0NMYXllclRy
ZWVIb3N0VGVzdExvc3RDb250ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlcyk6CisgICAgICAgIChD
Q0xheWVyVHJlZUhvc3RUZXN0TG9zdENvbnRleHRXaGlsZVVwZGF0aW5nUmVzb3VyY2VzKToKKyAg
ICAgICAgKiB0ZXN0cy9Db250ZW50TGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQ6Ok1vY2tDb250ZW50TGF5ZXJDaHJv
bWl1bUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlRFU1QpOgorCisyMDEyLTA4LTMwICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBN
YWtlIHdlYmtpdF9jb21wb3NpdG9yIHNwZWNpZmljIHVuaXQgdGVzdCBjb21waWxhdGlvbiBjb25k
aXRpb25hbCBvbiBneXAgdmFyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTQwMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWQwZGMzNGMwNzlhZTEwNmM0
OGQyM2RhOGZlOTg0ZDljY2EzM2MzOS4uM2Y5MzZhM2I4OWFjYWNjOGJlODhhMTBmNzYyNjJiZjQx
MmRlM2FiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODM2MCw2ICs4MzYwLDcgQEAKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVy
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXll
ckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHAn
LApAQCAtODM5NSw2ICs4Mzk2LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UZXh0dXJlQ29waWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZVVwbG9h
ZGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rocm90dGxl
ZFRleHR1cmVVcGxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Rocm90dGxlZFRleHR1cmVVcGxvYWRlci5oJywKQEAgLTg0NTgsNiArODQ2MCw3IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRpbGlu
Z0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENsaWVudC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RD
b21tb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3Bw
CmluZGV4IGMyYmY0NWVhZDUyMzE2NzhlNTJhNTg1MDFhODQ3ODhmM2VkNGI1MmUuLmQ1NzgxMTdi
ZWQ2MTcyMzM1YjJjZTRjMzllMTg5ODMzMDE1MjAzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5
ZXJDaHJvbWl1bS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJCaXRtYXBTa1BpY3R1
cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0
LmgiCiAjaW5jbHVkZSAiQ0NTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9t
aXVtQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVkZSAiTGF5ZXJQYWludGVyQ2hyb21pdW0uaCIKICNpbmNs
dWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KQEAgLTQ1LDM0ICs0NiwzNCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNvbnRlbnRMYXllclBhaW50ZXI6OkNvbnRlbnRMYXllclBhaW50ZXIoQ29u
dGVudExheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQotICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkK
K0NvbnRlbnRMYXllclBhaW50ZXI6OkNvbnRlbnRMYXllclBhaW50ZXIoQ29udGVudExheWVyQ2hy
b21pdW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKIHsKIH0KIAotUGFz
c093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUo
Q29udGVudExheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQorUGFzc093blB0cjxDb250ZW50TGF5ZXJQ
YWludGVyPiBDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUoQ29udGVudExheWVyQ2hyb21pdW1D
bGllbnQqIGNsaWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRlbnRMYXllclBh
aW50ZXIoZGVsZWdhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRlbnRMYXllclBh
aW50ZXIoY2xpZW50KSk7CiB9CiAKIHZvaWQgQ29udGVudExheWVyUGFpbnRlcjo6cGFpbnQoU2tD
YW52YXMqIGNhbnZhcywgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIEZsb2F0UmVjdCYgb3Bh
cXVlKQogewogICAgIGRvdWJsZSBwYWludFN0YXJ0ID0gY3VycmVudFRpbWUoKTsKLSAgICBtX2Rl
bGVnYXRlLT5wYWludENvbnRlbnRzKGNhbnZhcywgY29udGVudFJlY3QsIG9wYXF1ZSk7CisgICAg
bV9jbGllbnQtPnBhaW50Q29udGVudHMoY2FudmFzLCBjb250ZW50UmVjdCwgb3BhcXVlKTsKICAg
ICBkb3VibGUgcGFpbnRFbmQgPSBjdXJyZW50VGltZSgpOwogICAgIGRvdWJsZSBwaXhlbHNQZXJT
ZWMgPSAoY29udGVudFJlY3Qud2lkdGgoKSAqIGNvbnRlbnRSZWN0LmhlaWdodCgpKSAvIChwYWlu
dEVuZCAtIHBhaW50U3RhcnQpOwogICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aGlz
dG9ncmFtQ3VzdG9tQ291bnRzKCJSZW5kZXJlcjQuQWNjZWxDb250ZW50UGFpbnREdXJhdGlvbk1T
IiwgKHBhaW50RW5kIC0gcGFpbnRTdGFydCkgKiAxMDAwLCAwLCAxMjAsIDMwKTsKICAgICBXZWJL
aXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVuZGVyZXI0
LkFjY2VsQ29udGVudFBhaW50TWVnYXBpeFBlclNlY29uZCIsIHBpeGVsc1BlclNlYyAvIDEwMDAw
MDAsIDEwLCAyMTAsIDMwKTsKIH0KIAotUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4g
Q29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZShDb250ZW50TGF5ZXJEZWxlZ2F0ZSogZGVsZWdh
dGUpCitQYXNzUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtPiBDb250ZW50TGF5ZXJDaHJvbWl1
bTo6Y3JlYXRlKENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb250ZW50TGF5ZXJDaHJvbWl1bShkZWxlZ2F0ZSkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQ29udGVudExheWVyQ2hyb21pdW0oY2xpZW50KSk7CiB9CiAKLUNv
bnRlbnRMYXllckNocm9taXVtOjpDb250ZW50TGF5ZXJDaHJvbWl1bShDb250ZW50TGF5ZXJEZWxl
Z2F0ZSogZGVsZWdhdGUpCitDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hyb21p
dW0oQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqIGNsaWVudCkKICAgICA6IFRpbGVkTGF5ZXJD
aHJvbWl1bSgpCi0gICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQorICAgICwgbV9jbGllbnQoY2xp
ZW50KQogewogfQogCkBAIC04Miw3ICs4Myw3IEBAIENvbnRlbnRMYXllckNocm9taXVtOjp+Q29u
dGVudExheWVyQ2hyb21pdW0oKQogCiBib29sIENvbnRlbnRMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogewotICAgIHJldHVybiBUaWxlZExheWVyQ2hyb21pdW06OmRyYXdzQ29u
dGVudCgpICYmIG1fZGVsZWdhdGU7CisgICAgcmV0dXJuIFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHJh
d3NDb250ZW50KCkgJiYgbV9jbGllbnQ7CiB9CiAKIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06
OnNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0IENDUHJpb3JpdHlDYWxjdWxhdG9yJiBwcmlvcml0
eUNhbGMpCkBAIC0xMTAsMTEgKzExMSwxMSBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpj
cmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCkKICAgICBpZiAobV90ZXh0dXJlVXBkYXRlcikK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmIChsYXllclRyZWVIb3N0KCktPnNldHRpbmdzKCkuYWNj
ZWxlcmF0ZVBhaW50aW5nKQotICAgICAgICBtX3RleHR1cmVVcGRhdGVyID0gRnJhbWVCdWZmZXJT
a1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUoQ29udGVudExheWVyUGFp
bnRlcjo6Y3JlYXRlKG1fZGVsZWdhdGUpKTsKKyAgICAgICAgbV90ZXh0dXJlVXBkYXRlciA9IEZy
YW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENvbnRl
bnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIGVsc2UgaWYgKENDU2V0dGlu
Z3M6OnBlclRpbGVQYWludGluZ0VuYWJsZWQoKSkKLSAgICAgICAgbV90ZXh0dXJlVXBkYXRlciA9
IEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0ZShDb250ZW50
TGF5ZXJQYWludGVyOjpjcmVhdGUobV9kZWxlZ2F0ZSkpOworICAgICAgICBtX3RleHR1cmVVcGRh
dGVyID0gQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENv
bnRlbnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIGVsc2UKLSAgICAgICAg
bV90ZXh0dXJlVXBkYXRlciA9IEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0
ZShDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUobV9kZWxlZ2F0ZSkpOworICAgICAgICBtX3Rl
eHR1cmVVcGRhdGVyID0gQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENv
bnRlbnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIG1fdGV4dHVyZVVwZGF0
ZXItPnNldE9wYXF1ZShvcGFxdWUoKSk7CiAKICAgICBHQzNEZW51bSB0ZXh0dXJlRm9ybWF0ID0g
bGF5ZXJUcmVlSG9zdCgpLT5yZW5kZXJlckNhcGFiaWxpdGllcygpLmJlc3RUZXh0dXJlRm9ybWF0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKaW5kZXggNmMwNjhiMzBjZWViMTEwYTFl
YjVhNzQ2YWI3OWE0OGY3YjAxNjA5YS4uN2ViNDU5YzViZjI0NzAyZTUxZGJhYTgwZTZjYzMyMzVm
ZmJkNWJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCkBAIC00MSwzOSArNDEs
MzIgQEAgY2xhc3MgU2tDYW52YXM7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ29u
dGVudExheWVyQ2hyb21pdW1DbGllbnQ7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBJbnRSZWN0
OwogY2xhc3MgTGF5ZXJUZXh0dXJlVXBkYXRlcjsKIAotY2xhc3MgQ29udGVudExheWVyRGVsZWdh
dGUgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFNrQ2FudmFzKiwg
Y29uc3QgSW50UmVjdCYgY2xpcCwgRmxvYXRSZWN0JiBvcGFxdWUpID0gMDsKLQotcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgfkNvbnRlbnRMYXllckRlbGVnYXRlKCkgeyB9Ci19OwotCiBjbGFzcyBD
b250ZW50TGF5ZXJQYWludGVyIDogcHVibGljIExheWVyUGFpbnRlckNocm9taXVtIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShDb250ZW50TGF5ZXJQYWludGVyKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBjcmVhdGUoQ29udGVudExheWVy
RGVsZWdhdGUqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBj
cmVhdGUoQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBw
YWludChTa0NhbnZhcyosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBGbG9hdFJlY3QmIG9w
YXF1ZSkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29udGVudExheWVyUGFp
bnRlcihDb250ZW50TGF5ZXJEZWxlZ2F0ZSopOworICAgIGV4cGxpY2l0IENvbnRlbnRMYXllclBh
aW50ZXIoQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqKTsKIAotICAgIENvbnRlbnRMYXllckRl
bGVnYXRlKiBtX2RlbGVnYXRlOworICAgIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBtX2Ns
aWVudDsKIH07CiAKIC8vIEEgbGF5ZXIgdGhhdCByZW5kZXJzIGl0cyBjb250ZW50cyBpbnRvIGFu
IFNrQ2FudmFzLgogY2xhc3MgQ29udGVudExheWVyQ2hyb21pdW0gOiBwdWJsaWMgVGlsZWRMYXll
ckNocm9taXVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJD
aHJvbWl1bT4gY3JlYXRlKENvbnRlbnRMYXllckRlbGVnYXRlKik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW0+IGNyZWF0ZShDb250ZW50TGF5ZXJDaHJvbWl1bUNs
aWVudCopOwogCiAgICAgdmlydHVhbCB+Q29udGVudExheWVyQ2hyb21pdW0oKTsKIAotICAgIHZv
aWQgY2xlYXJEZWxlZ2F0ZSgpIHsgbV9kZWxlZ2F0ZSA9IDA7IH0KKyAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkgeyBtX2NsaWVudCA9IDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dHVyZVByaW9yaXRpZXMo
Y29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0b3ImKSBPVkVSUklERTsKQEAgLTgzLDE0ICs3NiwxNCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKSBPVkVSUklERTsKIAog
cHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IENvbnRlbnRMYXllckNocm9taXVtKENvbnRlbnRMYXll
ckRlbGVnYXRlKik7CisgICAgZXhwbGljaXQgQ29udGVudExheWVyQ2hyb21pdW0oQ29udGVudExh
eWVyQ2hyb21pdW1DbGllbnQqKTsKIAogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5ZXJUZXh0
dXJlVXBkYXRlciogdGV4dHVyZVVwZGF0ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3Rl
eHR1cmVVcGRhdGVyLmdldCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRleHR1cmVVcGRh
dGVySWZOZWVkZWQoKSBPVkVSUklERTsKIAotICAgIENvbnRlbnRMYXllckRlbGVnYXRlKiBtX2Rl
bGVnYXRlOworICAgIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBtX2NsaWVudDsKICAgICBS
ZWZQdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcj4gbV90ZXh0dXJlVXBkYXRlcjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVM
YXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcAppbmRleCBkMmY0NjllMzY4N2M4ZWJhZWU2ZWUw
MjlhYjQ5YTRlM2U0ZWIwYjI1Li4zNGZkMDI2ZWI3NTIxM2U0ODhkNjhlMzNmNThkMzM4NTVjYzYz
OGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAKICNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJDQ1RleHR1cmVM
YXllckltcGwuaCIKKyNpbmNsdWRlICJUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudC5oIgogI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaAppbmRleCA0YjY3MjFiYjQ4YzVkZmE4
ZGQwMjY0NDczNmRjMzhlYmEzYzc5Y2I0Li5mZDYzOWY2ZjkyYmIzMTk1MmMzY2I1MjQyZmJmNWFh
ZGQ5YTRiY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmgKQEAgLTIzLDcgKzIz
LDYgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotCiAjaWZuZGVmIFRleHR1cmVMYXllckNocm9taXVt
X2gKICNkZWZpbmUgVGV4dHVyZUxheWVyQ2hyb21pdW1faAogCkBAIC0zNywxOSArMzYsNyBAQCBj
bGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgLy8gQ2FsbGVkIHRv
IHByZXBhcmUgdGhpcyBsYXllcidzIHRleHR1cmUgZm9yIGNvbXBvc2l0aW5nLiBUaGUgY2xpZW50
IG1heSBxdWV1ZSBhIHRleHR1cmUKLSAgICAvLyB1cGxvYWQgb3IgY29weSBvbiB0aGUgQ0NUZXh0
dXJlVXBkYXRlUXVldWUuCi0gICAgLy8gUmV0dXJucyB0aGUgdGV4dHVyZSBJRCB0byBiZSB1c2Vk
IGZvciBjb21wb3NpdGluZy4KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHByZXBhcmVUZXh0dXJlKEND
VGV4dHVyZVVwZGF0ZVF1ZXVlJikgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0aGUgY29udGV4dCB0
aGF0IGlzIHByb3ZpZGluZyB0aGUgdGV4dHVyZS4gVXNlZCBmb3IgcmF0ZSBsaW1pdGluZyBhbmQg
ZGV0ZWN0aW5nIGxvc3QgY29udGV4dC4KLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQoKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5UZXh0
dXJlTGF5ZXJDaHJvbWl1bUNsaWVudCgpIHsgfQotfTsKK2NsYXNzIFRleHR1cmVMYXllckNocm9t
aXVtQ2xpZW50OwogCiAvLyBBIExheWVyIGNvbnRhaW5pbmcgYSB0aGUgcmVuZGVyZWQgb3V0cHV0
IG9mIGEgcGx1Z2luIGluc3RhbmNlLgogY2xhc3MgVGV4dHVyZUxheWVyQ2hyb21pdW0gOiBwdWJs
aWMgTGF5ZXJDaHJvbWl1bSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCA1
NzBkMTU2NzMzOTJjOGYxNzEyYWY4ZmUwODFkZDM1MTE2NDI0YTkwLi4wODQ3NGExZDM3ZWQxN2Q2
Y2QzZTk5NjkzMmNiY2M1YTZhNTg5ZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBs
LmgiCiAjaW5jbHVkZSAiQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJD
Q0xheWVySXRlcmF0b3IuaCIKKyNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3RDbGllbnQuaCIKICNp
bmNsdWRlICJDQ0xheWVyVHJlZUhvc3RDb21tb24uaCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZUhv
c3RJbXBsLmgiCiAjaW5jbHVkZSAiQ0NPY2NsdXNpb25UcmFja2VyLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5oCmluZGV4IDUyMzAyZDMyOGI4MzFmY2I3ZjUzOTE5Mjk0NDlkNjI3MmIxMjhj
NjcuLjc0Mjc4OGM3MDY3ODNiYjYzOGY1M2Q2MjZmMmRjNWNjMWUzYTU4MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDQ0FuaW1h
dGlvbkV2ZW50cy5oIgogI2luY2x1ZGUgIkNDR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAi
Q0NMYXllclRyZWVIb3N0Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0Q29tbW9u
LmgiCiAjaW5jbHVkZSAiQ0NPY2NsdXNpb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiQ0NQcmlvcml0
aXplZFRleHR1cmVNYW5hZ2VyLmgiCkBAIC01MywyOCArNTQsNiBAQCBjbGFzcyBIZWFkc1VwRGlz
cGxheUxheWVyQ2hyb21pdW07CiBjbGFzcyBSZWdpb247CiBzdHJ1Y3QgQ0NTY3JvbGxBbmRTY2Fs
ZVNldDsKIAotY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0
dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKSA9IDA7Ci0gICAgLy8gTWFya3MgZmluaXNoaW5nIGNv
bXBvc2l0aW5nLXJlbGF0ZWQgdGFza3Mgb24gdGhlIG1haW4gdGhyZWFkLiBJbiB0aHJlYWRlZCBt
b2RlLCB0aGlzIGNvcnJlc3BvbmRzIHRvIGRpZENvbW1pdCgpLgotICAgIHZpcnR1YWwgdm9pZCBk
aWRCZWdpbkZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBmcmFt
ZUJlZ2luVGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEs
IGZsb2F0IHBhZ2VTY2FsZSkgPSAwOwotICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlPiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCBzdWNjZXNzKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxDb21taXQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZENvbW1pdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkgPSAwOwotCi0g
ICAgLy8gVXNlZCBvbmx5IGluIHRoZSBzaW5nbGUtdGhyZWFkZWQgcGF0aC4KLSAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFs
IH5DQ0xheWVyVHJlZUhvc3RDbGllbnQoKSB7IH0KLX07Ci0KIHN0cnVjdCBDQ0xheWVyVHJlZVNl
dHRpbmdzIHsKICAgICBDQ0xheWVyVHJlZVNldHRpbmdzKCkKICAgICAgICAgICAgIDogYWNjZWxl
cmF0ZVBhaW50aW5nKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViQ29udGVudExheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJDb250ZW50TGF5ZXJJbXBsLmNwcAppbmRleCBmYTIxZTg5NzRmZDNiMWI5ODA2YTVjMmUxY2E5
OWU2OWM2OThkY2EzLi43MGQxNTcxMjIxOWEyMmI1YzE5ZWIyNmU0MjAzMGM3ZjZiOTkxNWUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBs
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YkNvbnRlbnRMYXllckltcGwuaCIKIAorI2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9taXVtLmgi
CiAjaW5jbHVkZSAiU2tNYXRyaXg0NC5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb250ZW50TGF5
ZXJDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViRmxvYXRQb2ludC5oPgpAQCAtNTEsNyAr
NTIsNyBAQCBXZWJDb250ZW50TGF5ZXJJbXBsOjpXZWJDb250ZW50TGF5ZXJJbXBsKFdlYkNvbnRl
bnRMYXllckNsaWVudCogY2xpZW50KQogCiBXZWJDb250ZW50TGF5ZXJJbXBsOjp+V2ViQ29udGVu
dExheWVySW1wbCgpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8Q29udGVudExheWVyQ2hyb21pdW0qPiht
X3dlYkxheWVySW1wbC0+bGF5ZXIoKSktPmNsZWFyRGVsZWdhdGUoKTsKKyAgICBzdGF0aWNfY2Fz
dDxDb250ZW50TGF5ZXJDaHJvbWl1bSo+KG1fd2ViTGF5ZXJJbXBsLT5sYXllcigpKS0+Y2xlYXJD
bGllbnQoKTsKIH0KIAogV2ViTGF5ZXIqIFdlYkNvbnRlbnRMYXllckltcGw6OmxheWVyKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwuaAppbmRl
eCA1MTFmOGUwYmEwODYwYjQ2YTA4MTU2NWYwOTg3ZGZmMGU4YWNiNWYyLi43OGQzMGY5YWMwYTM4
ZjhhZmU3MDA5MjNlZGE1ZTg2NjVhMmFmZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVm
IFdlYkNvbnRlbnRMYXllckltcGxfaAogI2RlZmluZSBXZWJDb250ZW50TGF5ZXJJbXBsX2gKIAot
I2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSAiQ29udGVudExheWVy
Q2hyb21pdW1DbGllbnQuaCIKICNpbmNsdWRlICJXZWJMYXllckltcGwuaCIKICNpbmNsdWRlIDxw
dWJsaWMvV2ViQ29udGVudExheWVyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAg
LTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJDb250ZW50TGF5ZXJD
bGllbnQ7CiAKIGNsYXNzIFdlYkNvbnRlbnRMYXllckltcGwgOiBwdWJsaWMgV2ViQ29udGVudExh
eWVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBXZWJDb3JlOjpDb250ZW50
TGF5ZXJEZWxlZ2F0ZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFdlYkNv
cmU6OkNvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBX
ZWJDb250ZW50TGF5ZXJJbXBsKFdlYkNvbnRlbnRMYXllckNsaWVudCopOwogCkBAIC00OSw3ICs0
OSw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5XZWJDb250ZW50TGF5ZXJJ
bXBsKCk7CiAKLSAgICAvLyBDb250ZW50TGF5ZXJEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAvLyBDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBpbXBsZW1lbnRhdGlvbi4KICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnRDb250ZW50cyhTa0NhbnZhcyosIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGNsaXAsIFdlYkNvcmU6OkZsb2F0UmVjdCYgb3BhcXVlKSBPVkVSUklERTsKIAogICAgIE93blB0
cjxXZWJMYXllckltcGw+IG1fd2ViTGF5ZXJJbXBsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuaAppbmRleCA1MzQ4
ODk1YmYxY2Q1M2I1NDQ5M2IyMzU3ZDA4MTk2MmJmNTgzNGU1Li42YzAzYzIzNDJlMGJhZjkyOTYz
YTY4YmMwMWI0NDMxYzlhYTYxMTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuaApAQCAtMjYsNyArMjYsNyBA
QAogI2lmbmRlZiBXZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGxfaAogI2RlZmluZSBXZWJFeHRl
cm5hbFRleHR1cmVMYXllckltcGxfaAogCi0jaW5jbHVkZSAiVGV4dHVyZUxheWVyQ2hyb21pdW0u
aCIKKyNpbmNsdWRlICJUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudC5oIgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCmlu
ZGV4IDcxYWRlZDU4Y2U1MjAwYTk1MWM4NmY3OTVjMTQ5YzUyM2MwNWE0NWEuLjU5Mzk2MmEwODZm
MDUzYWY0ODAzMjU2M2I1YjViZDQzZWIwMmVjZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaApAQCAtMjYsMTEgKzI2LDE1IEBACiAj
aWZuZGVmIFdlYkxheWVyVHJlZVZpZXdJbXBsX2gKICNkZWZpbmUgV2ViTGF5ZXJUcmVlVmlld0lt
cGxfaAogCi0jaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0LmgiCisjaW5jbHVkZSAiQ0NMYXllclRy
ZWVIb3N0Q2xpZW50LmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkxheWVyVHJlZVZpZXcuaD4KICNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAorbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0NMYXllclRyZWVIb3N0OworfQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYkxheWVyOwogY2xhc3MgV2ViTGF5ZXJUcmVlVmlld0NsaWVudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0
Q29tbW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QuY3BwCmluZGV4IGRiZjI4ZTQ5NTk1ODQwNzBjOWFmZGIyMWVmMjZhNjZm
YzdkZTk4YTIuLmY3Mjg4NGZkZTA1MTU0MTZkMjMwY2I0ZjUxZmUzYmEwMDcwY2M3M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9u
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RDb21tb25UZXN0LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkNDU2luZ2xlVGhy
ZWFkUHJveHkuaCIKICNpbmNsdWRlICJDQ1RocmVhZC5oIgogI2luY2x1ZGUgIkNvbnRlbnRMYXll
ckNocm9taXVtLmgiCisjaW5jbHVkZSAiQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQuaCIKICNp
bmNsdWRlICJMYXllckNocm9taXVtLmgiCiAKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgpAQCAt
MzM4MCwxNCArMzM4MSwxNCBAQCBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlm
eUhpdFRlc3RpbmdGb3JNdWx0aXBsZUxheWVyTGlzdHMpCiAgICAgRVhQRUNUX0VRKDQsIHJlc3Vs
dExheWVyLT5pZCgpKTsKIH0KIAotY2xhc3MgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIDogcHVi
bGljIENvbnRlbnRMYXllckRlbGVnYXRlIHsKK2NsYXNzIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1
bUNsaWVudCA6IHB1YmxpYyBDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlKCkgeyB9Ci0gICAgdmlydHVhbCB+TW9ja0NvbnRl
bnRMYXllckRlbGVnYXRlKCkgeyB9CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50
KCkgeyB9CisgICAgdmlydHVhbCB+TW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoU2tDYW52YXMqLCBjb25zdCBJbnRSZWN0
JiBjbGlwLCBGbG9hdFJlY3QmIG9wYXF1ZSkgT1ZFUlJJREUgeyB9CiB9OwogCi1QYXNzUmVmUHRy
PENvbnRlbnRMYXllckNocm9taXVtPiBjcmVhdGVEcmF3YWJsZUNvbnRlbnRMYXllckNocm9taXVt
KENvbnRlbnRMYXllckRlbGVnYXRlKiBkZWxlZ2F0ZSkKK1Bhc3NSZWZQdHI8Q29udGVudExheWVy
Q2hyb21pdW0+IGNyZWF0ZURyYXdhYmxlQ29udGVudExheWVyQ2hyb21pdW0oQ29udGVudExheWVy
Q2hyb21pdW1DbGllbnQqIGRlbGVnYXRlKQogewogICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJv
bWl1bT4gdG9SZXR1cm4gPSBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKGRlbGVnYXRlKTsK
ICAgICB0b1JldHVybi0+c2V0SXNEcmF3YWJsZSh0cnVlKTsKQEAgLTMzOTcsNyArMzM5OCw3IEBA
IFBhc3NSZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW0+IGNyZWF0ZURyYXdhYmxlQ29udGVudExh
eWVyQ2hyb21pdW0oQ29udGVudExheWVyCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3Qs
IHZlcmlmeUxheWVyVHJhbnNmb3Jtc0luSGlnaERQSSkKIHsKICAgICAvLyBWZXJpZnkgZHJhdyBh
bmQgc2NyZWVuIHNwYWNlIHRyYW5zZm9ybXMgb2YgbGF5ZXJzIG5vdCBpbiBhIHN1cmZhY2UuCi0g
ICAgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIGRlbGVnYXRlOworICAgIE1vY2tDb250ZW50TGF5
ZXJDaHJvbWl1bUNsaWVudCBkZWxlZ2F0ZTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBp
ZGVudGl0eU1hdHJpeDsKIAogICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4gcGFyZW50
ID0gY3JlYXRlRHJhd2FibGVDb250ZW50TGF5ZXJDaHJvbWl1bSgmZGVsZWdhdGUpOwpAQCAtMzQ2
OSw3ICszNDcwLDcgQEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlMYXll
clRyYW5zZm9ybXNJbkhpZ2hEUEkpCiAKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwg
dmVyaWZ5UmVuZGVyU3VyZmFjZVRyYW5zZm9ybXNJbkhpZ2hEUEkpCiB7Ci0gICAgTW9ja0NvbnRl
bnRMYXllckRlbGVnYXRlIGRlbGVnYXRlOworICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNs
aWVudCBkZWxlZ2F0ZTsKICAgICBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCBpZGVudGl0eU1hdHJp
eDsKIAogICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4gcGFyZW50ID0gY3JlYXRlRHJh
d2FibGVDb250ZW50TGF5ZXJDaHJvbWl1bSgmZGVsZWdhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXggNzc3ZDYw
ZmMwMmJjMTVlMmY0MTA4MzJlZTM5MTZkNjA2M2FiZmY2MS4uMzZiZTVhNTEzZTFmZjFjY2Q0OTY1
MDMxMmZhZGMxMjNiZTk1OTY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiQ0NUaHJlYWRlZFRlc3QuaCIKICNpbmNsdWRlICJDQ1RpbWluZ0Z1bmN0aW9uLmgiCiAjaW5j
bHVkZSAiQ29udGVudExheWVyQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJDb250ZW50TGF5ZXJDaHJv
bWl1bUNsaWVudC5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRENocm9taXVtLmgiCiAjaW5jbHVk
ZSAiRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgiCiAjaW5jbHVkZSA8Z21vY2svZ21v
Y2suaD4KQEAgLTExODksNyArMTE5MCw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RUZXN0U2V0
VmlzaWJsZSwgcnVuTXVsdGlUaHJlYWQpCiAgICAgcnVuVGVzdCh0cnVlKTsKIH0KIAotY2xhc3Mg
VGVzdE9wYWNpdHlDaGFuZ2VMYXllckRlbGVnYXRlIDogcHVibGljIENvbnRlbnRMYXllckRlbGVn
YXRlIHsKK2NsYXNzIFRlc3RPcGFjaXR5Q2hhbmdlTGF5ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBDb250
ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCB7CiBwdWJsaWM6CiAgICAgVGVzdE9wYWNpdHlDaGFuZ2VM
YXllckRlbGVnYXRlKENDTGF5ZXJUcmVlSG9zdFRlc3QqIHRlc3QpCiAgICAgICAgIDogbV90ZXN0
KHRlc3QpCkBAIC0xMjA4LDcgKzEyMDksNyBAQCBwcml2YXRlOgogCiBjbGFzcyBDb250ZW50TGF5
ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZyA6IHB1YmxpYyBDb250ZW50TGF5ZXJDaHJvbWl1
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW1X
aXRoVXBkYXRlVHJhY2tpbmc+IGNyZWF0ZShDb250ZW50TGF5ZXJEZWxlZ2F0ZSAqZGVsZWdhdGUp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFj
a2luZyhkZWxlZ2F0ZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29udGVudExheWVyQ2hy
b21pdW1XaXRoVXBkYXRlVHJhY2tpbmc+IGNyZWF0ZShDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVu
dCogY2xpZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29udGVudExheWVyQ2hyb21pdW1XaXRo
VXBkYXRlVHJhY2tpbmcoY2xpZW50KSk7IH0KIAogICAgIGludCBwYWludENvbnRlbnRzQ291bnQo
KSB7IHJldHVybiBtX3BhaW50Q29udGVudHNDb3VudDsgfQogICAgIHZvaWQgcmVzZXRQYWludENv
bnRlbnRzQ291bnQoKSB7IG1fcGFpbnRDb250ZW50c0NvdW50ID0gMDsgfQpAQCAtMTIyMCw4ICsx
MjIxLDggQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBDb250ZW50
TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZyhDb250ZW50TGF5ZXJEZWxlZ2F0ZSogZGVs
ZWdhdGUpCi0gICAgICAgIDogQ29udGVudExheWVyQ2hyb21pdW0oZGVsZWdhdGUpCisgICAgZXhw
bGljaXQgQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmcoQ29udGVudExheWVy
Q2hyb21pdW1DbGllbnQqIGNsaWVudCkKKyAgICAgICAgOiBDb250ZW50TGF5ZXJDaHJvbWl1bShj
bGllbnQpCiAgICAgICAgICwgbV9wYWludENvbnRlbnRzQ291bnQoMCkKICAgICB7CiAgICAgICAg
IHNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoMCwgMCkpOwpAQCAtMTI3Myw3ICsxMjc0LDcgQEAg
VEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRlc3RPcGFjaXR5Q2hhbmdlLCBydW5NdWx0aVRocmVhZCkK
ICAgICBydW5UZXN0KHRydWUpOwogfQogCi1jbGFzcyBNb2NrQ29udGVudExheWVyRGVsZWdhdGUg
OiBwdWJsaWMgQ29udGVudExheWVyRGVsZWdhdGUgeworY2xhc3MgTW9ja0NvbnRlbnRMYXllckNo
cm9taXVtQ2xpZW50IDogcHVibGljIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICBN
T0NLX0NPTlNUX01FVEhPRDAocHJlc2VydmVzM0QsIGJvb2woKSk7CkBAIC0xMjg1LDggKzEyODYs
OCBAQCBjbGFzcyBDQ0xheWVyVHJlZUhvc3RUZXN0RGV2aWNlU2NhbGVGYWN0b3JTY2FsZXNWaWV3
cG9ydEFuZExheWVycyA6IHB1YmxpYyBDQ0xheQogcHVibGljOgogCiAgICAgQ0NMYXllclRyZWVI
b3N0VGVzdERldmljZVNjYWxlRmFjdG9yU2NhbGVzVmlld3BvcnRBbmRMYXllcnMoKQotICAgICAg
ICA6IG1fcm9vdExheWVyKENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGUoJm1fZGVsZWdhdGUp
KQotICAgICAgICAsIG1fY2hpbGRMYXllcihDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCZt
X2RlbGVnYXRlKSkKKyAgICAgICAgOiBtX3Jvb3RMYXllcihDb250ZW50TGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKCZtX2NsaWVudCkpCisgICAgICAgICwgbV9jaGlsZExheWVyKENvbnRlbnRMYXllckNo
cm9taXVtOjpjcmVhdGUoJm1fY2xpZW50KSkKICAgICB7CiAgICAgfQogCkBAIC0xMzc2LDcgKzEz
NzcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1vY2tDb250ZW50TGF5ZXJE
ZWxlZ2F0ZSBtX2RlbGVnYXRlOworICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBt
X2NsaWVudDsKICAgICBSZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW0+IG1fcm9vdExheWVyOwog
ICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4gbV9jaGlsZExheWVyOwogfTsKQEAgLTEz
OTAsNyArMTM5MSw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RUZXN0RGV2aWNlU2NhbGVGYWN0
b3JTY2FsZXNWaWV3cG9ydEFuZExheWVycywgcnVuTXVsdGlUaHJlCiBjbGFzcyBDQ0xheWVyVHJl
ZUhvc3RUZXN0QXRvbWljQ29tbWl0IDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3QgewogcHVi
bGljOgogICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RBdG9taWNDb21taXQoKQotICAgICAgICA6IG1f
bGF5ZXIoQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNyZWF0ZSgmbV9k
ZWxlZ2F0ZSkpCisgICAgICAgIDogbV9sYXllcihDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRh
dGVUcmFja2luZzo6Y3JlYXRlKCZtX2NsaWVudCkpCiAgICAgewogICAgICAgICAvLyBNYWtlIHN1
cmUgcGFydGlhbCB0ZXh0dXJlIHVwZGF0ZXMgYXJlIHR1cm5lZCBvZmYuCiAgICAgICAgIG1fc2V0
dGluZ3MubWF4UGFydGlhbFRleHR1cmVVcGRhdGVzID0gMDsKQEAgLTE0NjQsNyArMTQ2NSw3IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRl
IG1fZGVsZWdhdGU7CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IG1fY2xpZW50
OwogICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZz4gbV9s
YXllcjsKIH07CiAKQEAgLTE0ODgsOCArMTQ4OSw4IEBAIHN0YXRpYyB2b2lkIHNldExheWVyUHJv
cGVydGllc0ZvclRlc3RpbmcoTGF5ZXJDaHJvbWl1bSogbGF5ZXIsIExheWVyQ2hyb21pdW0qIHBh
CiBjbGFzcyBDQ0xheWVyVHJlZUhvc3RUZXN0QXRvbWljQ29tbWl0V2l0aFBhcnRpYWxVcGRhdGUg
OiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCB7CiBwdWJsaWM6CiAgICAgQ0NMYXllclRyZWVI
b3N0VGVzdEF0b21pY0NvbW1pdFdpdGhQYXJ0aWFsVXBkYXRlKCkKLSAgICAgICAgOiBtX3BhcmVu
dChDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZzo6Y3JlYXRlKCZtX2RlbGVn
YXRlKSkKLSAgICAgICAgLCBtX2NoaWxkKENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRy
YWNraW5nOjpjcmVhdGUoJm1fZGVsZWdhdGUpKQorICAgICAgICA6IG1fcGFyZW50KENvbnRlbnRM
YXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpjcmVhdGUoJm1fY2xpZW50KSkKKyAgICAg
ICAgLCBtX2NoaWxkKENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpjcmVh
dGUoJm1fY2xpZW50KSkKICAgICAgICAgLCBtX251bUNvbW1pdHMoMCkKICAgICB7CiAgICAgICAg
IC8vIEFsbG93IG9uZSBwYXJ0aWFsIHRleHR1cmUgdXBkYXRlLgpAQCAtMTYxMSw3ICsxNjEyLDcg
QEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNb2NrQ29udGVudExheWVyRGVsZWdh
dGUgbV9kZWxlZ2F0ZTsKKyAgICBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgbV9jbGll
bnQ7CiAgICAgUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nPiBt
X3BhcmVudDsKICAgICBSZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tp
bmc+IG1fY2hpbGQ7CiAgICAgaW50IG1fbnVtQ29tbWl0czsKQEAgLTIyOTAsNyArMjI5MSw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgY29uc3QgSW50U2l6ZSBtX3Njcm9sbEFtb3VudDsKICAg
ICBJbnRTaXplIG1fcmVwb3J0ZWRTY3JvbGxBbW91bnQ7Ci0gICAgTW9ja0NvbnRlbnRMYXllckRl
bGVnYXRlIG1fbW9ja0RlbGVnYXRlOworICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVu
dCBtX21vY2tEZWxlZ2F0ZTsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbV9jaGlsZExheWVy
OwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBtX3Jvb3RTY3JvbGxMYXllcjsKIH07CkBAIC0y
MzkyLDcgKzIzOTMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1vY2tDb250
ZW50TGF5ZXJEZWxlZ2F0ZSBtX21vY2tEZWxlZ2F0ZTsKKyAgICBNb2NrQ29udGVudExheWVyQ2hy
b21pdW1DbGllbnQgbV9tb2NrRGVsZWdhdGU7CiAgICAgUmVmUHRyPENvbnRlbnRMYXllckNocm9t
aXVtV2l0aFVwZGF0ZVRyYWNraW5nPiBtX3Jvb3RMYXllcjsKICAgICBSZWZQdHI8Q29udGVudExh
eWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc+IG1fc3VyZmFjZUxheWVyMTsKICAgICBSZWZQ
dHI8Q29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc+IG1fcmVwbGljYUxheWVy
MTsKQEAgLTI2NDAsNyArMjY0MSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAg
TW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIG1fZGVsZWdhdGU7CisgICAgTW9ja0NvbnRlbnRMYXll
ckNocm9taXVtQ2xpZW50IG1fY2xpZW50OwogICAgIFJlZlB0cjxFdmljdGlvblRlc3RMYXllcj4g
bV9sYXllcjsKICAgICBDQ0xheWVyVHJlZUhvc3RJbXBsKiBtX2ltcGxGb3JFdmljdFRleHR1cmVz
OwogICAgIGludCBtX251bUNvbW1pdHM7CkBAIC0yNzM2LDcgKzI3MzcsNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSBtX2RlbGVnYXRl
OworICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBtX2NsaWVudDsKICAgICBSZWZQ
dHI8RXZpY3Rpb25UZXN0TGF5ZXI+IG1fbGF5ZXI7CiAgICAgQ0NMYXllclRyZWVIb3N0SW1wbCog
bV9pbXBsRm9yRXZpY3RUZXh0dXJlczsKICAgICBpbnQgbV9udW1Db21taXRzOwpAQCAtMjc4Mywx
MSArMjc4NCwxMSBAQCBwcml2YXRlOgogY2xhc3MgQ0NMYXllclRyZWVIb3N0VGVzdExvc3RDb250
ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlcyA6IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RUZXN0IHsK
IHB1YmxpYzoKICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0TG9zdENvbnRleHRXaGlsZVVwZGF0aW5n
UmVzb3VyY2VzKCkKLSAgICAgICAgOiBtX3BhcmVudChDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhV
cGRhdGVUcmFja2luZzo6Y3JlYXRlKCZtX2RlbGVnYXRlKSkKKyAgICAgICAgOiBtX3BhcmVudChD
b250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZzo6Y3JlYXRlKCZtX2NsaWVudCkp
CiAgICAgICAgICwgbV9udW1DaGlsZHJlbig1MCkKICAgICB7CiAgICAgICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgbV9udW1DaGlsZHJlbjsgaSsrKQotICAgICAgICAgICAgbV9jaGlsZHJlbi5hcHBl
bmQoQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNyZWF0ZSgmbV9kZWxl
Z2F0ZSkpOworICAgICAgICAgICAgbV9jaGlsZHJlbi5hcHBlbmQoQ29udGVudExheWVyQ2hyb21p
dW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNyZWF0ZSgmbV9jbGllbnQpKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIFBhc3NPd25QdHI8V2ViS2l0OjpXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFjZT4gY3Jl
YXRlT3V0cHV0U3VyZmFjZSgpCkBAIC0yODI1LDcgKzI4MjYsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotICAgIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSBtX2RlbGVnYXRlOworICAg
IE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBtX2NsaWVudDsKICAgICBSZWZQdHI8Q29u
dGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc+IG1fcGFyZW50OwogICAgIGludCBt
X251bUNoaWxkcmVuOwogICAgIFZlY3RvcjxSZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW1XaXRo
VXBkYXRlVHJhY2tpbmc+ID4gbV9jaGlsZHJlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvQ29udGVudExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ29udGVudExheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCBmZDM1
ZTIyMjQ1ZGVjZTg0MTliY2NmNmMwNDBkZDU3MzMyYzRhOTliLi4wNWNkNGM3NDlhMzJjNDZhYTlk
YzMyMDc3MjZkOGFhYWE4MjI2NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NvbnRlbnRMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9Db250ZW50TGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oIgogI2luY2x1
ZGUgIkNDTGF5ZXJUcmVlVGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIkNDUmVuZGVyaW5nU3RhdHMu
aCIKKyNpbmNsdWRlICJDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudC5oIgogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIk9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXll
ckRlbGVnYXRlLmgiCiAjaW5jbHVkZSAic2tpYS9leHQvcGxhdGZvcm1fY2FudmFzLmgiCkBAIC02
OSw5ICs3MCw5IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBtX2NvbnRlbnRSZWN0OwogfTsKIAot
Y2xhc3MgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIDogcHVibGljIENvbnRlbnRMYXllckRlbGVn
YXRlIHsKK2NsYXNzIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCA6IHB1YmxpYyBDb250
ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTW9ja0NvbnRl
bnRMYXllckRlbGVnYXRlKE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKiBj
bGllbnQpCisgICAgZXhwbGljaXQgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KE9wYXF1
ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKiBjbGllbnQpCiAgICAgICAgIDogbV9j
bGllbnQoY2xpZW50KQogICAgIHsKICAgICB9CkBAIC05OCw4ICs5OSw4IEBAIFRFU1QoQ29udGVu
dExheWVyQ2hyb21pdW1UZXN0LCBDb250ZW50TGF5ZXJQYWludGVyV2l0aERldmljZVNjYWxlKQog
ICAgIE93blB0cjxTa0NhbnZhcz4gY2FudmFzID0gYWRvcHRQdHIoc2tpYTo6Q3JlYXRlQml0bWFw
Q2FudmFzKGNvbnRlbnRSZWN0LndpZHRoKCksIGNvbnRlbnRSZWN0LmhlaWdodCgpLCBmYWxzZSkp
OwogICAgIE9wYXF1ZVJlY3REcmF3aW5nR3JhcGhpY3NDb250ZXh0UGFpbnRlciBwYWludGVyKG9w
YXF1ZVJlY3RJbkxheWVyU3BhY2UsIGNvbnRlbnRSZWN0KTsKICAgICBPcGFxdWVSZWN0VHJhY2tp
bmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSBvcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxl
Z2F0ZSgmcGFpbnRlcik7Ci0gICAgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIGRlbGVnYXRlKCZv
cGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSk7Ci0gICAgUmVmUHRyPEJpdG1h
cENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI+IHVwZGF0ZXIgPSBCaXRtYXBDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyOjpjcmVhdGUoQ29udGVudExheWVyUGFpbnRlcjo6Y3JlYXRlKCZkZWxlZ2F0
ZSkpOworICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBjbGllbnQoJm9wYXF1ZVJl
Y3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKTsKKyAgICBSZWZQdHI8Qml0bWFwQ2FudmFz
TGF5ZXJUZXh0dXJlVXBkYXRlcj4gdXBkYXRlciA9IEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVw
ZGF0ZXI6OmNyZWF0ZShDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUoJmNsaWVudCkpOwogCiAg
ICAgSW50UmVjdCByZXN1bHRpbmdPcGFxdWVSZWN0OwogICAgIENDUmVuZGVyaW5nU3RhdHMgc3Rh
dHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161607</attachid>
            <date>2012-08-30 19:30:10 -0700</date>
            <delta_ts>2012-08-30 19:33:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95522-20120830192958.patch</filename>
            <type>text/plain</type>
            <size>38177</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM3YTQzNmQ1Y2NjZGE0
ZDExYWMyMjUwNDFlYmYzYTA1NjdlN2RjMS4uYjNlYTZmNWQzMDBjMDBjMjZkOTllZDc4ZTJiMzMz
ZDk3MzkzMTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTMwICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBQ
dXQgY29tcG9zaXRvciBjbGllbnQgaW50ZXJmYWNlcyBpbiBzZXBhcmF0ZSBoZWFkZXJzLCBub3Jt
YWxpemUgbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTUyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENsaWVudCBpbnRlcmZhY2VzIHNob3VsZCBiZSBpbiB0aGVpciBvd24gaGVhZGVycyBzbyBj
b2RlIGltcGxlbWVudGluZyB0aGVzZSBpbnRlcmZhY2VzIGRvIG5vdCBoYXZlIHRvCisgICAgICAg
IHRyYW5zaXRpdmVseSAjaW5jbHVkZSBhbGwgb2YgdGhlIGNvbXBvc2l0b3IgaW50ZXJuYWxzLgor
CisgICAgICAgIFdlIGNhbGwgdGhpbmdzICdjbGllbnRzJyBub3QgJ2RlbGVnYXRlcycgaW4gdGhl
IGNvbXBvc2l0b3IuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudExheWVyUGFpbnRlcjo6Q29udGVudExheWVyUGFpbnRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudExheWVyUGFpbnRlcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5
ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudExheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5lZWRlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGVudExheWVyUGFpbnRlcik6CisgICAgICAg
IChDb250ZW50TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJD
aHJvbWl1bTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA4LTMwICBQcmF0aWsgU29sYW5raSAg
PHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBvYmpjX21zZ1NlbmQgYW5kIElNUCBzaG91
bGQgYmUgY2FzdCBhcHByb3ByaWF0ZWx5IGJlZm9yZSB1c2luZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBmNTk3NThiZTQxNWE2NDgyMWRjOTNmNzhiODI3YTdhYzI1M2JkNmVmLi43M2Uy
OTE4MTFkN2Q4MTljMzhlMmEwZGI0MmM0NWVmOTk5MDUyMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA4LTMwICBKYW1lcyBSb2JpbnNvbiAgPGph
bWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBQdXQgY29tcG9zaXRvciBj
bGllbnQgaW50ZXJmYWNlcyBpbiBzZXBhcmF0ZSBoZWFkZXJzLCBub3JtYWxpemUgbmFtaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTUyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYkNv
bnRlbnRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZW50TGF5ZXJJbXBs
Ojp+V2ViQ29udGVudExheWVySW1wbCk6CisgICAgICAgICogc3JjL1dlYkNvbnRlbnRMYXllcklt
cGwuaDoKKyAgICAgICAgKFdlYkNvbnRlbnRMYXllckltcGwpOgorICAgICAgICAqIHNyYy9XZWJF
eHRlcm5hbFRleHR1cmVMYXllckltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0
ZVRyYWNraW5nOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNvbnRlbnRMYXllckNo
cm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVU
cmFja2luZyk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXllclRyZWVIb3N0VGVzdERldmlj
ZVNjYWxlRmFjdG9yU2NhbGVzVmlld3BvcnRBbmRMYXllcnM6OkNDTGF5ZXJUcmVlSG9zdFRlc3RE
ZXZpY2VTY2FsZUZhY3RvclNjYWxlc1ZpZXdwb3J0QW5kTGF5ZXJzKToKKyAgICAgICAgKFdlYktp
dFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RUZXN0QXRvbWljQ29tbWl0OjpDQ0xheWVyVHJlZUhvc3RU
ZXN0QXRvbWljQ29tbWl0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RU
ZXN0QXRvbWljQ29tbWl0V2l0aFBhcnRpYWxVcGRhdGU6OkNDTGF5ZXJUcmVlSG9zdFRlc3RBdG9t
aWNDb21taXRXaXRoUGFydGlhbFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXll
clRyZWVIb3N0VGVzdExvc3RDb250ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlczo6Q0NMYXllclRy
ZWVIb3N0VGVzdExvc3RDb250ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlcyk6CisgICAgICAgIChD
Q0xheWVyVHJlZUhvc3RUZXN0TG9zdENvbnRleHRXaGlsZVVwZGF0aW5nUmVzb3VyY2VzKToKKyAg
ICAgICAgKiB0ZXN0cy9Db250ZW50TGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQ6Ok1vY2tDb250ZW50TGF5ZXJDaHJv
bWl1bUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlRFU1QpOgorCisyMDEyLTA4LTMwICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBN
YWtlIHdlYmtpdF9jb21wb3NpdG9yIHNwZWNpZmljIHVuaXQgdGVzdCBjb21waWxhdGlvbiBjb25k
aXRpb25hbCBvbiBneXAgdmFyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTQwMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWQwZGMzNGMwNzlhZTEwNmM0
OGQyM2RhOGZlOTg0ZDljY2EzM2MzOS4uM2Y5MzZhM2I4OWFjYWNjOGJlODhhMTBmNzYyNjJiZjQx
MmRlM2FiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODM2MCw2ICs4MzYwLDcgQEAKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVy
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXll
ckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHAn
LApAQCAtODM5NSw2ICs4Mzk2LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UZXh0dXJlQ29waWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZVVwbG9h
ZGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rocm90dGxl
ZFRleHR1cmVVcGxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Rocm90dGxlZFRleHR1cmVVcGxvYWRlci5oJywKQEAgLTg0NTgsNiArODQ2MCw3IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRpbGlu
Z0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENsaWVudC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RD
b21tb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3Bw
CmluZGV4IGMyYmY0NWVhZDUyMzE2NzhlNTJhNTg1MDFhODQ3ODhmM2VkNGI1MmUuLmQ1NzgxMTdi
ZWQ2MTcyMzM1YjJjZTRjMzllMTg5ODMzMDE1MjAzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5
ZXJDaHJvbWl1bS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJCaXRtYXBTa1BpY3R1
cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0
LmgiCiAjaW5jbHVkZSAiQ0NTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9t
aXVtQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVkZSAiTGF5ZXJQYWludGVyQ2hyb21pdW0uaCIKICNpbmNs
dWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KQEAgLTQ1LDM0ICs0NiwzNCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNvbnRlbnRMYXllclBhaW50ZXI6OkNvbnRlbnRMYXllclBhaW50ZXIoQ29u
dGVudExheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQotICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkK
K0NvbnRlbnRMYXllclBhaW50ZXI6OkNvbnRlbnRMYXllclBhaW50ZXIoQ29udGVudExheWVyQ2hy
b21pdW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKIHsKIH0KIAotUGFz
c093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUo
Q29udGVudExheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQorUGFzc093blB0cjxDb250ZW50TGF5ZXJQ
YWludGVyPiBDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUoQ29udGVudExheWVyQ2hyb21pdW1D
bGllbnQqIGNsaWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRlbnRMYXllclBh
aW50ZXIoZGVsZWdhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRlbnRMYXllclBh
aW50ZXIoY2xpZW50KSk7CiB9CiAKIHZvaWQgQ29udGVudExheWVyUGFpbnRlcjo6cGFpbnQoU2tD
YW52YXMqIGNhbnZhcywgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIEZsb2F0UmVjdCYgb3Bh
cXVlKQogewogICAgIGRvdWJsZSBwYWludFN0YXJ0ID0gY3VycmVudFRpbWUoKTsKLSAgICBtX2Rl
bGVnYXRlLT5wYWludENvbnRlbnRzKGNhbnZhcywgY29udGVudFJlY3QsIG9wYXF1ZSk7CisgICAg
bV9jbGllbnQtPnBhaW50Q29udGVudHMoY2FudmFzLCBjb250ZW50UmVjdCwgb3BhcXVlKTsKICAg
ICBkb3VibGUgcGFpbnRFbmQgPSBjdXJyZW50VGltZSgpOwogICAgIGRvdWJsZSBwaXhlbHNQZXJT
ZWMgPSAoY29udGVudFJlY3Qud2lkdGgoKSAqIGNvbnRlbnRSZWN0LmhlaWdodCgpKSAvIChwYWlu
dEVuZCAtIHBhaW50U3RhcnQpOwogICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aGlz
dG9ncmFtQ3VzdG9tQ291bnRzKCJSZW5kZXJlcjQuQWNjZWxDb250ZW50UGFpbnREdXJhdGlvbk1T
IiwgKHBhaW50RW5kIC0gcGFpbnRTdGFydCkgKiAxMDAwLCAwLCAxMjAsIDMwKTsKICAgICBXZWJL
aXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVuZGVyZXI0
LkFjY2VsQ29udGVudFBhaW50TWVnYXBpeFBlclNlY29uZCIsIHBpeGVsc1BlclNlYyAvIDEwMDAw
MDAsIDEwLCAyMTAsIDMwKTsKIH0KIAotUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4g
Q29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZShDb250ZW50TGF5ZXJEZWxlZ2F0ZSogZGVsZWdh
dGUpCitQYXNzUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtPiBDb250ZW50TGF5ZXJDaHJvbWl1
bTo6Y3JlYXRlKENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb250ZW50TGF5ZXJDaHJvbWl1bShkZWxlZ2F0ZSkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQ29udGVudExheWVyQ2hyb21pdW0oY2xpZW50KSk7CiB9CiAKLUNv
bnRlbnRMYXllckNocm9taXVtOjpDb250ZW50TGF5ZXJDaHJvbWl1bShDb250ZW50TGF5ZXJEZWxl
Z2F0ZSogZGVsZWdhdGUpCitDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hyb21p
dW0oQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqIGNsaWVudCkKICAgICA6IFRpbGVkTGF5ZXJD
aHJvbWl1bSgpCi0gICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQorICAgICwgbV9jbGllbnQoY2xp
ZW50KQogewogfQogCkBAIC04Miw3ICs4Myw3IEBAIENvbnRlbnRMYXllckNocm9taXVtOjp+Q29u
dGVudExheWVyQ2hyb21pdW0oKQogCiBib29sIENvbnRlbnRMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogewotICAgIHJldHVybiBUaWxlZExheWVyQ2hyb21pdW06OmRyYXdzQ29u
dGVudCgpICYmIG1fZGVsZWdhdGU7CisgICAgcmV0dXJuIFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHJh
d3NDb250ZW50KCkgJiYgbV9jbGllbnQ7CiB9CiAKIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06
OnNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0IENDUHJpb3JpdHlDYWxjdWxhdG9yJiBwcmlvcml0
eUNhbGMpCkBAIC0xMTAsMTEgKzExMSwxMSBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpj
cmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCkKICAgICBpZiAobV90ZXh0dXJlVXBkYXRlcikK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmIChsYXllclRyZWVIb3N0KCktPnNldHRpbmdzKCkuYWNj
ZWxlcmF0ZVBhaW50aW5nKQotICAgICAgICBtX3RleHR1cmVVcGRhdGVyID0gRnJhbWVCdWZmZXJT
a1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUoQ29udGVudExheWVyUGFp
bnRlcjo6Y3JlYXRlKG1fZGVsZWdhdGUpKTsKKyAgICAgICAgbV90ZXh0dXJlVXBkYXRlciA9IEZy
YW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENvbnRl
bnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIGVsc2UgaWYgKENDU2V0dGlu
Z3M6OnBlclRpbGVQYWludGluZ0VuYWJsZWQoKSkKLSAgICAgICAgbV90ZXh0dXJlVXBkYXRlciA9
IEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0ZShDb250ZW50
TGF5ZXJQYWludGVyOjpjcmVhdGUobV9kZWxlZ2F0ZSkpOworICAgICAgICBtX3RleHR1cmVVcGRh
dGVyID0gQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENv
bnRlbnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIGVsc2UKLSAgICAgICAg
bV90ZXh0dXJlVXBkYXRlciA9IEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0
ZShDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUobV9kZWxlZ2F0ZSkpOworICAgICAgICBtX3Rl
eHR1cmVVcGRhdGVyID0gQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENv
bnRlbnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIG1fdGV4dHVyZVVwZGF0
ZXItPnNldE9wYXF1ZShvcGFxdWUoKSk7CiAKICAgICBHQzNEZW51bSB0ZXh0dXJlRm9ybWF0ID0g
bGF5ZXJUcmVlSG9zdCgpLT5yZW5kZXJlckNhcGFiaWxpdGllcygpLmJlc3RUZXh0dXJlRm9ybWF0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKaW5kZXggNmMwNjhiMzBjZWViMTEwYTFl
YjVhNzQ2YWI3OWE0OGY3YjAxNjA5YS4uN2ViNDU5YzViZjI0NzAyZTUxZGJhYTgwZTZjYzMyMzVm
ZmJkNWJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCkBAIC00MSwzOSArNDEs
MzIgQEAgY2xhc3MgU2tDYW52YXM7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ29u
dGVudExheWVyQ2hyb21pdW1DbGllbnQ7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBJbnRSZWN0
OwogY2xhc3MgTGF5ZXJUZXh0dXJlVXBkYXRlcjsKIAotY2xhc3MgQ29udGVudExheWVyRGVsZWdh
dGUgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFNrQ2FudmFzKiwg
Y29uc3QgSW50UmVjdCYgY2xpcCwgRmxvYXRSZWN0JiBvcGFxdWUpID0gMDsKLQotcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgfkNvbnRlbnRMYXllckRlbGVnYXRlKCkgeyB9Ci19OwotCiBjbGFzcyBD
b250ZW50TGF5ZXJQYWludGVyIDogcHVibGljIExheWVyUGFpbnRlckNocm9taXVtIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShDb250ZW50TGF5ZXJQYWludGVyKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBjcmVhdGUoQ29udGVudExheWVy
RGVsZWdhdGUqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBj
cmVhdGUoQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBw
YWludChTa0NhbnZhcyosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBGbG9hdFJlY3QmIG9w
YXF1ZSkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29udGVudExheWVyUGFp
bnRlcihDb250ZW50TGF5ZXJEZWxlZ2F0ZSopOworICAgIGV4cGxpY2l0IENvbnRlbnRMYXllclBh
aW50ZXIoQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqKTsKIAotICAgIENvbnRlbnRMYXllckRl
bGVnYXRlKiBtX2RlbGVnYXRlOworICAgIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBtX2Ns
aWVudDsKIH07CiAKIC8vIEEgbGF5ZXIgdGhhdCByZW5kZXJzIGl0cyBjb250ZW50cyBpbnRvIGFu
IFNrQ2FudmFzLgogY2xhc3MgQ29udGVudExheWVyQ2hyb21pdW0gOiBwdWJsaWMgVGlsZWRMYXll
ckNocm9taXVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJD
aHJvbWl1bT4gY3JlYXRlKENvbnRlbnRMYXllckRlbGVnYXRlKik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW0+IGNyZWF0ZShDb250ZW50TGF5ZXJDaHJvbWl1bUNs
aWVudCopOwogCiAgICAgdmlydHVhbCB+Q29udGVudExheWVyQ2hyb21pdW0oKTsKIAotICAgIHZv
aWQgY2xlYXJEZWxlZ2F0ZSgpIHsgbV9kZWxlZ2F0ZSA9IDA7IH0KKyAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkgeyBtX2NsaWVudCA9IDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dHVyZVByaW9yaXRpZXMo
Y29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0b3ImKSBPVkVSUklERTsKQEAgLTgzLDE0ICs3NiwxNCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKSBPVkVSUklERTsKIAog
cHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IENvbnRlbnRMYXllckNocm9taXVtKENvbnRlbnRMYXll
ckRlbGVnYXRlKik7CisgICAgZXhwbGljaXQgQ29udGVudExheWVyQ2hyb21pdW0oQ29udGVudExh
eWVyQ2hyb21pdW1DbGllbnQqKTsKIAogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5ZXJUZXh0
dXJlVXBkYXRlciogdGV4dHVyZVVwZGF0ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3Rl
eHR1cmVVcGRhdGVyLmdldCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRleHR1cmVVcGRh
dGVySWZOZWVkZWQoKSBPVkVSUklERTsKIAotICAgIENvbnRlbnRMYXllckRlbGVnYXRlKiBtX2Rl
bGVnYXRlOworICAgIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBtX2NsaWVudDsKICAgICBS
ZWZQdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcj4gbV90ZXh0dXJlVXBkYXRlcjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRM
YXllckNocm9taXVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NTZhNWQ3
MWY0OWUwZmRiYWZlOTAzOGM1MmE2ZWUyMjg4OGRjNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1
bUNsaWVudC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGVu
dExheWVyQ2hyb21pdW1DbGllbnRfaAorI2RlZmluZSBDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVu
dF9oCisKK2NsYXNzIFNrQ2FudmFzOworCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBGbG9h
dFJlY3Q7CitjbGFzcyBJbnRSZWN0OworCitjbGFzcyBDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVu
dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoU2tDYW52YXMqLCBj
b25zdCBJbnRSZWN0JiBjbGlwLCBGbG9hdFJlY3QmIG9wYXF1ZSkgPSAwOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCB+Q29udGVudExheWVyQ2hyb21pdW1DbGllbnQoKSB7IH0KK307CisKK30K
KworI2VuZGlmIC8vIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1
cmVMYXllckNocm9taXVtLmNwcAppbmRleCBkMmY0NjllMzY4N2M4ZWJhZWU2ZWUwMjlhYjQ5YTRl
M2U0ZWIwYjI1Li4zNGZkMDI2ZWI3NTIxM2U0ODhkNjhlMzNmNThkMzM4NTVjYzYzOGFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJl
TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNp
bmNsdWRlICJDQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJDQ1RleHR1cmVMYXllckltcGwu
aCIKKyNpbmNsdWRlICJUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudC5oIgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJl
TGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaAppbmRleCA0YjY3MjFiYjQ4YzVkZmE4ZGQwMjY0NDcz
NmRjMzhlYmEzYzc5Y2I0Li5mZDYzOWY2ZjkyYmIzMTk1MmMzY2I1MjQyZmJmNWFhZGQ5YTRiY2Zk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
ZXh0dXJlTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmgKQEAgLTIzLDcgKzIzLDYgQEAKICAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotCiAjaWZuZGVmIFRleHR1cmVMYXllckNocm9taXVtX2gKICNkZWZp
bmUgVGV4dHVyZUxheWVyQ2hyb21pdW1faAogCkBAIC0zNywxOSArMzYsNyBAQCBjbGFzcyBXZWJH
cmFwaGljc0NvbnRleHQzRDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUZXh0dXJl
TGF5ZXJDaHJvbWl1bUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgLy8gQ2FsbGVkIHRvIHByZXBhcmUg
dGhpcyBsYXllcidzIHRleHR1cmUgZm9yIGNvbXBvc2l0aW5nLiBUaGUgY2xpZW50IG1heSBxdWV1
ZSBhIHRleHR1cmUKLSAgICAvLyB1cGxvYWQgb3IgY29weSBvbiB0aGUgQ0NUZXh0dXJlVXBkYXRl
UXVldWUuCi0gICAgLy8gUmV0dXJucyB0aGUgdGV4dHVyZSBJRCB0byBiZSB1c2VkIGZvciBjb21w
b3NpdGluZy4KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHByZXBhcmVUZXh0dXJlKENDVGV4dHVyZVVw
ZGF0ZVF1ZXVlJikgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0aGUgY29udGV4dCB0aGF0IGlzIHBy
b3ZpZGluZyB0aGUgdGV4dHVyZS4gVXNlZCBmb3IgcmF0ZSBsaW1pdGluZyBhbmQgZGV0ZWN0aW5n
IGxvc3QgY29udGV4dC4KLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQoKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5UZXh0dXJlTGF5ZXJD
aHJvbWl1bUNsaWVudCgpIHsgfQotfTsKK2NsYXNzIFRleHR1cmVMYXllckNocm9taXVtQ2xpZW50
OwogCiAvLyBBIExheWVyIGNvbnRhaW5pbmcgYSB0aGUgcmVuZGVyZWQgb3V0cHV0IG9mIGEgcGx1
Z2luIGluc3RhbmNlLgogY2xhc3MgVGV4dHVyZUxheWVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJD
aHJvbWl1bSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMzJjZjE2NWRhZDUzOGQyMjNlMjFhNWRiN2Y2YTEwOTliZTZmNzE4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4
dHVyZUxheWVyQ2hyb21pdW1DbGllbnQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudF9oCisjZGVmaW5lIFRleHR1cmVMYXllckNocm9t
aXVtQ2xpZW50X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJHcmFwaGljc0NvbnRl
eHQzRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0NUZXh0dXJlVXBkYXRlUXVl
dWU7CisKK2NsYXNzIFRleHR1cmVMYXllckNocm9taXVtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICAv
LyBDYWxsZWQgdG8gcHJlcGFyZSB0aGlzIGxheWVyJ3MgdGV4dHVyZSBmb3IgY29tcG9zaXRpbmcu
IFRoZSBjbGllbnQgbWF5IHF1ZXVlIGEgdGV4dHVyZQorICAgIC8vIHVwbG9hZCBvciBjb3B5IG9u
IHRoZSBDQ1RleHR1cmVVcGRhdGVRdWV1ZS4KKyAgICAvLyBSZXR1cm5zIHRoZSB0ZXh0dXJlIElE
IHRvIGJlIHVzZWQgZm9yIGNvbXBvc2l0aW5nLgorICAgIHZpcnR1YWwgdW5zaWduZWQgcHJlcGFy
ZVRleHR1cmUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmKSA9IDA7CisKKyAgICAvLyBSZXR1cm5zIHRo
ZSBjb250ZXh0IHRoYXQgaXMgcHJvdmlkaW5nIHRoZSB0ZXh0dXJlLiBVc2VkIGZvciByYXRlIGxp
bWl0aW5nIGFuZCBkZXRlY3RpbmcgbG9zdCBjb250ZXh0LgorICAgIHZpcnR1YWwgV2ViS2l0OjpX
ZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCgpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZp
cnR1YWwgflRleHR1cmVMYXllckNocm9taXVtQ2xpZW50KCkgeyB9Cit9OworCit9CisKKyNlbmRp
ZiAvLyBUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcAppbmRleCA1NzBkMTU2NzMzOTJjOGYxNzEyYWY4ZmUwODFkZDM1MTE2NDI0YTkwLi4w
ODQ3NGExZDM3ZWQxN2Q2Y2QzZTk5NjkzMmNiY2M1YTZhNTg5ZDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ0hlYWRzVXBE
aXNwbGF5TGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJDQ0xheWVySXRlcmF0b3IuaCIKKyNpbmNsdWRlICJDQ0xheWVyVHJlZUhv
c3RDbGllbnQuaCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3RDb21tb24uaCIKICNpbmNsdWRl
ICJDQ0xheWVyVHJlZUhvc3RJbXBsLmgiCiAjaW5jbHVkZSAiQ0NPY2NsdXNpb25UcmFja2VyLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDUyMzAyZDMyOGI4MzFmY2I3ZjUzOTE5
Mjk0NDlkNjI3MmIxMjhjNjcuLjc0Mjc4OGM3MDY3ODNiYjYzOGY1M2Q2MjZmMmRjNWNjMWUzYTU4
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
bmNsdWRlICJDQ0FuaW1hdGlvbkV2ZW50cy5oIgogI2luY2x1ZGUgIkNDR3JhcGhpY3NDb250ZXh0
LmgiCisjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ0NMYXll
clRyZWVIb3N0Q29tbW9uLmgiCiAjaW5jbHVkZSAiQ0NPY2NsdXNpb25UcmFja2VyLmgiCiAjaW5j
bHVkZSAiQ0NQcmlvcml0aXplZFRleHR1cmVNYW5hZ2VyLmgiCkBAIC01MywyOCArNTQsNiBAQCBj
bGFzcyBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW07CiBjbGFzcyBSZWdpb247CiBzdHJ1Y3Qg
Q0NTY3JvbGxBbmRTY2FsZVNldDsKIAotY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKSA9IDA7Ci0gICAgLy8gTWFy
a3MgZmluaXNoaW5nIGNvbXBvc2l0aW5nLXJlbGF0ZWQgdGFza3Mgb24gdGhlIG1haW4gdGhyZWFk
LiBJbiB0aHJlYWRlZCBtb2RlLCB0aGlzIGNvcnJlc3BvbmRzIHRvIGRpZENvbW1pdCgpLgotICAg
IHZpcnR1YWwgdm9pZCBkaWRCZWdpbkZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhbmlt
YXRlKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6
ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSkgPSAwOwotICAgIHZpcnR1YWwgUGFzc093
blB0cjxXZWJLaXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlPiBjcmVhdGVPdXRwdXRTdXJm
YWNlKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9v
bCBzdWNjZXNzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxDb21taXQoKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0
QW5kRHJhd0ZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZm
ZXJzKCkgPSAwOwotCi0gICAgLy8gVXNlZCBvbmx5IGluIHRoZSBzaW5nbGUtdGhyZWFkZWQgcGF0
aC4KLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSA9IDA7Ci0KLXByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIH5DQ0xheWVyVHJlZUhvc3RDbGllbnQoKSB7IH0KLX07Ci0KIHN0cnVj
dCBDQ0xheWVyVHJlZVNldHRpbmdzIHsKICAgICBDQ0xheWVyVHJlZVNldHRpbmdzKCkKICAgICAg
ICAgICAgIDogYWNjZWxlcmF0ZVBhaW50aW5nKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjc4YmE3YzcwMDE4ZTQ2MDY2YzBjZGNhYzg4
YjI5ZWYyMDAxMzVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgKQEAgLTAsMCArMSw2
MiBAQAorCisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENDTGF5ZXJUcmVlSG9zdENsaWVudF9oCisj
ZGVmaW5lIENDTGF5ZXJUcmVlSG9zdENsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkNvbXBvc2l0b3JPdXRwdXRTdXJm
YWNlOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJbnRTaXplOworCitjbGFzcyBD
Q0xheWVyVHJlZUhvc3RDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVn
aW5GcmFtZSgpID0gMDsKKyAgICAvLyBNYXJrcyBmaW5pc2hpbmcgY29tcG9zaXRpbmctcmVsYXRl
ZCB0YXNrcyBvbiB0aGUgbWFpbiB0aHJlYWQuIEluIHRocmVhZGVkIG1vZGUsIHRoaXMgY29ycmVz
cG9uZHMgdG8gZGlkQ29tbWl0KCkuCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRnJhbWUoKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlT
Y3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxl
KSA9IDA7CisgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYktpdDo6V2ViQ29tcG9zaXRvck91dHB1
dFN1cmZhY2U+IGNyZWF0ZU91dHB1dFN1cmZhY2UoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY3JlYXRlT3V0cHV0U3VyZmFjZShib29sIHN1Y2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgd2lsbENvbW1pdCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0KCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKSA9IDA7CisKKyAgICAvLyBVc2VkIG9ubHkg
aW4gdGhlIHNpbmdsZS10aHJlYWRlZCBwYXRoLgorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNv
bXBvc2l0ZSgpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfkNDTGF5ZXJUcmVlSG9z
dENsaWVudCgpIHsgfQorfTsKKworfQorCisjZW5kaWYgLy8gQ0NMYXllclRyZWVIb3N0Q2xpZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXll
ckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1w
bC5jcHAKaW5kZXggZmEyMWU4OTc0ZmQzYjFiOTgwNmE1YzJlMWNhOTllNjljNjk4ZGNhMy4uNzBk
MTU3MTIyMTlhMjJiNWMxOWViMjZlNDIwMzBjN2Y2Yjk5MTVlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJDb250ZW50TGF5ZXJJbXBs
LmgiCiAKKyNpbmNsdWRlICJDb250ZW50TGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlNrTWF0
cml4NDQuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29udGVudExheWVyQ2xpZW50Lmg+CiAjaW5j
bHVkZSA8cHVibGljL1dlYkZsb2F0UG9pbnQuaD4KQEAgLTUxLDcgKzUyLDcgQEAgV2ViQ29udGVu
dExheWVySW1wbDo6V2ViQ29udGVudExheWVySW1wbChXZWJDb250ZW50TGF5ZXJDbGllbnQqIGNs
aWVudCkKIAogV2ViQ29udGVudExheWVySW1wbDo6fldlYkNvbnRlbnRMYXllckltcGwoKQogewot
ICAgIHN0YXRpY19jYXN0PENvbnRlbnRMYXllckNocm9taXVtKj4obV93ZWJMYXllckltcGwtPmxh
eWVyKCkpLT5jbGVhckRlbGVnYXRlKCk7CisgICAgc3RhdGljX2Nhc3Q8Q29udGVudExheWVyQ2hy
b21pdW0qPihtX3dlYkxheWVySW1wbC0+bGF5ZXIoKSktPmNsZWFyQ2xpZW50KCk7CiB9CiAKIFdl
YkxheWVyKiBXZWJDb250ZW50TGF5ZXJJbXBsOjpsYXllcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmgKaW5kZXggNTExZjhlMGJhMDg2MGI0
NmEwODE1NjVmMDk4N2RmZjBlOGFjYjVmMi4uNzhkMzBmOWFjMGEzOGY4YWZlNzAwOTIzZWRhNWU4
NjY1YTJhZmRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29u
dGVudExheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRl
bnRMYXllckltcGwuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBXZWJDb250ZW50TGF5ZXJJ
bXBsX2gKICNkZWZpbmUgV2ViQ29udGVudExheWVySW1wbF9oCiAKLSNpbmNsdWRlICJDb250ZW50
TGF5ZXJDaHJvbWl1bS5oIgorI2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9taXVtQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbnRlbnRM
YXllci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zNSw3ICszNSw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViQ29udGVudExheWVyQ2xpZW50OwogCiBjbGFzcyBX
ZWJDb250ZW50TGF5ZXJJbXBsIDogcHVibGljIFdlYkNvbnRlbnRMYXllciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdWJsaWMgV2ViQ29yZTo6Q29udGVudExheWVyRGVsZWdhdGUgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBXZWJDb3JlOjpDb250ZW50TGF5ZXJD
aHJvbWl1bUNsaWVudCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViQ29udGVudExheWVySW1w
bChXZWJDb250ZW50TGF5ZXJDbGllbnQqKTsKIApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+V2ViQ29udGVudExheWVySW1wbCgpOwogCi0gICAgLy8g
Q29udGVudExheWVyRGVsZWdhdGUgaW1wbGVtZW50YXRpb24uCisgICAgLy8gQ29udGVudExheWVy
Q2hyb21pdW1DbGllbnQgaW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29u
dGVudHMoU2tDYW52YXMqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwLCBXZWJDb3JlOjpG
bG9hdFJlY3QmIG9wYXF1ZSkgT1ZFUlJJREU7CiAKICAgICBPd25QdHI8V2ViTGF5ZXJJbXBsPiBt
X3dlYkxheWVySW1wbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkV4dGVybmFsVGV4dHVyZUxheWVySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsLmgKaW5kZXggNTM0ODg5NWJmMWNkNTNiNTQ0OTNi
MjM1N2QwODE5NjJiZjU4MzRlNS4uNmMwM2MyMzQyZTBiYWY5Mjk2M2E2OGJjMDFiNDQzMWM5YWE2
MTExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxU
ZXh0dXJlTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0
ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgV2ViRXh0
ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsX2gKICNkZWZpbmUgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJ
bXBsX2gKIAotI2luY2x1ZGUgIlRleHR1cmVMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSAiVGV4
dHVyZUxheWVyQ2hyb21pdW1DbGllbnQuaCIKICNpbmNsdWRlIDxwdWJsaWMvV2ViRXh0ZXJuYWxU
ZXh0dXJlTGF5ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaAppbmRleCA3MWFkZWQ1OGNlNTIw
MGE5NTFjODZmNzk1YzE0OWM1MjNjMDVhNDVhLi41OTM5NjJhMDg2ZjA1M2FmNDgwMzI1NjNiNWI1
YmQ0M2ViMDJlY2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJM
YXllclRyZWVWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxh
eWVyVHJlZVZpZXdJbXBsLmgKQEAgLTI2LDExICsyNiwxNSBAQAogI2lmbmRlZiBXZWJMYXllclRy
ZWVWaWV3SW1wbF9oCiAjZGVmaW5lIFdlYkxheWVyVHJlZVZpZXdJbXBsX2gKIAotI2luY2x1ZGUg
IkNDTGF5ZXJUcmVlSG9zdC5oIgorI2luY2x1ZGUgIkNDTGF5ZXJUcmVlSG9zdENsaWVudC5oIgog
I2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIENDTGF5ZXJUcmVlSG9zdDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBX
ZWJMYXllcjsKIGNsYXNzIFdlYkxheWVyVHJlZVZpZXdDbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNw
cAppbmRleCBkYmYyOGU0OTU5NTg0MDcwYzlhZmRiMjFlZjI2YTY2ZmM3ZGU5OGEyLi5mNzI4ODRm
ZGUwNTE1NDE2ZDIzMGNiNGY1MWZlM2JhMDA3MGNjNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDQ1NpbmdsZVRocmVhZFByb3h5LmgiCiAjaW5j
bHVkZSAiQ0NUaHJlYWQuaCIKICNpbmNsdWRlICJDb250ZW50TGF5ZXJDaHJvbWl1bS5oIgorI2lu
Y2x1ZGUgIkNvbnRlbnRMYXllckNocm9taXVtQ2xpZW50LmgiCiAjaW5jbHVkZSAiTGF5ZXJDaHJv
bWl1bS5oIgogCiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KQEAgLTMzODAsMTQgKzMzODEsMTQg
QEAgVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlIaXRUZXN0aW5nRm9yTXVs
dGlwbGVMYXllckxpc3RzKQogICAgIEVYUEVDVF9FUSg0LCByZXN1bHRMYXllci0+aWQoKSk7CiB9
CiAKLWNsYXNzIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBDb250ZW50TGF5ZXJE
ZWxlZ2F0ZSB7CitjbGFzcyBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgOiBwdWJsaWMg
Q29udGVudExheWVyQ2hyb21pdW1DbGllbnQgewogcHVibGljOgotICAgIE1vY2tDb250ZW50TGF5
ZXJEZWxlZ2F0ZSgpIHsgfQotICAgIHZpcnR1YWwgfk1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSgp
IHsgfQorICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCgpIHsgfQorICAgIHZpcnR1
YWwgfk1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCgpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBwYWludENvbnRlbnRzKFNrQ2FudmFzKiwgY29uc3QgSW50UmVjdCYgY2xpcCwgRmxvYXRSZWN0
JiBvcGFxdWUpIE9WRVJSSURFIHsgfQogfTsKIAotUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJv
bWl1bT4gY3JlYXRlRHJhd2FibGVDb250ZW50TGF5ZXJDaHJvbWl1bShDb250ZW50TGF5ZXJEZWxl
Z2F0ZSogZGVsZWdhdGUpCitQYXNzUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtPiBjcmVhdGVE
cmF3YWJsZUNvbnRlbnRMYXllckNocm9taXVtKENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBk
ZWxlZ2F0ZSkKIHsKICAgICBSZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW0+IHRvUmV0dXJuID0g
Q29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZShkZWxlZ2F0ZSk7CiAgICAgdG9SZXR1cm4tPnNl
dElzRHJhd2FibGUodHJ1ZSk7CkBAIC0zMzk3LDcgKzMzOTgsNyBAQCBQYXNzUmVmUHRyPENvbnRl
bnRMYXllckNocm9taXVtPiBjcmVhdGVEcmF3YWJsZUNvbnRlbnRMYXllckNocm9taXVtKENvbnRl
bnRMYXllcgogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlMYXllclRyYW5z
Zm9ybXNJbkhpZ2hEUEkpCiB7CiAgICAgLy8gVmVyaWZ5IGRyYXcgYW5kIHNjcmVlbiBzcGFjZSB0
cmFuc2Zvcm1zIG9mIGxheWVycyBub3QgaW4gYSBzdXJmYWNlLgotICAgIE1vY2tDb250ZW50TGF5
ZXJEZWxlZ2F0ZSBkZWxlZ2F0ZTsKKyAgICBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQg
ZGVsZWdhdGU7CiAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggaWRlbnRpdHlNYXRyaXg7CiAK
ICAgICBSZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW0+IHBhcmVudCA9IGNyZWF0ZURyYXdhYmxl
Q29udGVudExheWVyQ2hyb21pdW0oJmRlbGVnYXRlKTsKQEAgLTM0NjksNyArMzQ3MCw3IEBAIFRF
U1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5TGF5ZXJUcmFuc2Zvcm1zSW5IaWdo
RFBJKQogCiBURVNUKENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeVJlbmRlclN1cmZh
Y2VUcmFuc2Zvcm1zSW5IaWdoRFBJKQogewotICAgIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSBk
ZWxlZ2F0ZTsKKyAgICBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgZGVsZWdhdGU7CiAg
ICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggaWRlbnRpdHlNYXRyaXg7CiAKICAgICBSZWZQdHI8
Q29udGVudExheWVyQ2hyb21pdW0+IHBhcmVudCA9IGNyZWF0ZURyYXdhYmxlQ29udGVudExheWVy
Q2hyb21pdW0oJmRlbGVnYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCmluZGV4IDc3N2Q2MGZjMDJiYzE1ZTJmNDEwODMy
ZWUzOTE2ZDYwNjNhYmZmNjEuLjM2YmU1YTUxM2UxZmYxY2NkNDk2NTAzMTJmYWRjMTIzYmU5NTk2
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVI
b3N0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJl
ZUhvc3RUZXN0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkNDVGhyZWFkZWRUZXN0
LmgiCiAjaW5jbHVkZSAiQ0NUaW1pbmdGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkNvbnRlbnRMYXll
ckNocm9taXVtLmgiCisjaW5jbHVkZSAiQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQuaCIKICNp
bmNsdWRlICJFeHRlbnNpb25zM0RDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkZha2VXZWJDb21wb3Np
dG9yT3V0cHV0U3VyZmFjZS5oIgogI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CkBAIC0xMTg5LDcg
KzExOTAsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdFNldFZpc2libGUsIHJ1bk11bHRp
VGhyZWFkKQogICAgIHJ1blRlc3QodHJ1ZSk7CiB9CiAKLWNsYXNzIFRlc3RPcGFjaXR5Q2hhbmdl
TGF5ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBDb250ZW50TGF5ZXJEZWxlZ2F0ZSB7CitjbGFzcyBUZXN0
T3BhY2l0eUNoYW5nZUxheWVyRGVsZWdhdGUgOiBwdWJsaWMgQ29udGVudExheWVyQ2hyb21pdW1D
bGllbnQgewogcHVibGljOgogICAgIFRlc3RPcGFjaXR5Q2hhbmdlTGF5ZXJEZWxlZ2F0ZShDQ0xh
eWVyVHJlZUhvc3RUZXN0KiB0ZXN0KQogICAgICAgICA6IG1fdGVzdCh0ZXN0KQpAQCAtMTIwOCw3
ICsxMjA5LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBk
YXRlVHJhY2tpbmcgOiBwdWJsaWMgQ29udGVudExheWVyQ2hyb21pdW0gewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5n
PiBjcmVhdGUoQ29udGVudExheWVyRGVsZWdhdGUgKmRlbGVnYXRlKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmcoZGVsZWdhdGUpKTsg
fQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRy
YWNraW5nPiBjcmVhdGUoQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqIGNsaWVudCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nKGNs
aWVudCkpOyB9CiAKICAgICBpbnQgcGFpbnRDb250ZW50c0NvdW50KCkgeyByZXR1cm4gbV9wYWlu
dENvbnRlbnRzQ291bnQ7IH0KICAgICB2b2lkIHJlc2V0UGFpbnRDb250ZW50c0NvdW50KCkgeyBt
X3BhaW50Q29udGVudHNDb3VudCA9IDA7IH0KQEAgLTEyMjAsOCArMTIyMSw4IEBAIHB1YmxpYzoK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29udGVudExheWVyQ2hyb21pdW1XaXRo
VXBkYXRlVHJhY2tpbmcoQ29udGVudExheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQotICAgICAgICA6
IENvbnRlbnRMYXllckNocm9taXVtKGRlbGVnYXRlKQorICAgIGV4cGxpY2l0IENvbnRlbnRMYXll
ckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nKENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBj
bGllbnQpCisgICAgICAgIDogQ29udGVudExheWVyQ2hyb21pdW0oY2xpZW50KQogICAgICAgICAs
IG1fcGFpbnRDb250ZW50c0NvdW50KDApCiAgICAgewogICAgICAgICBzZXRBbmNob3JQb2ludChG
bG9hdFBvaW50KDAsIDApKTsKQEAgLTEyNzMsNyArMTI3NCw3IEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RUZXN0T3BhY2l0eUNoYW5nZSwgcnVuTXVsdGlUaHJlYWQpCiAgICAgcnVuVGVzdCh0cnVl
KTsKIH0KIAotY2xhc3MgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIDogcHVibGljIENvbnRlbnRM
YXllckRlbGVnYXRlIHsKK2NsYXNzIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCA6IHB1
YmxpYyBDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCB7CiBwdWJsaWM6CiAgICAgYm9vbCBkcmF3
c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgTU9DS19DT05TVF9NRVRIT0Qw
KHByZXNlcnZlczNELCBib29sKCkpOwpAQCAtMTI4NSw4ICsxMjg2LDggQEAgY2xhc3MgQ0NMYXll
clRyZWVIb3N0VGVzdERldmljZVNjYWxlRmFjdG9yU2NhbGVzVmlld3BvcnRBbmRMYXllcnMgOiBw
dWJsaWMgQ0NMYXkKIHB1YmxpYzoKIAogICAgIENDTGF5ZXJUcmVlSG9zdFRlc3REZXZpY2VTY2Fs
ZUZhY3RvclNjYWxlc1ZpZXdwb3J0QW5kTGF5ZXJzKCkKLSAgICAgICAgOiBtX3Jvb3RMYXllcihD
b250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCZtX2RlbGVnYXRlKSkKLSAgICAgICAgLCBtX2No
aWxkTGF5ZXIoQ29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSgmbV9kZWxlZ2F0ZSkpCisgICAg
ICAgIDogbV9yb290TGF5ZXIoQ29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSgmbV9jbGllbnQp
KQorICAgICAgICAsIG1fY2hpbGRMYXllcihDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCZt
X2NsaWVudCkpCiAgICAgewogICAgIH0KIApAQCAtMTM3Niw3ICsxMzc3LDcgQEAgcHVibGljOgog
ICAgIH0KIAogcHJpdmF0ZToKLSAgICBNb2NrQ29udGVudExheWVyRGVsZWdhdGUgbV9kZWxlZ2F0
ZTsKKyAgICBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgbV9jbGllbnQ7CiAgICAgUmVm
UHRyPENvbnRlbnRMYXllckNocm9taXVtPiBtX3Jvb3RMYXllcjsKICAgICBSZWZQdHI8Q29udGVu
dExheWVyQ2hyb21pdW0+IG1fY2hpbGRMYXllcjsKIH07CkBAIC0xMzkwLDcgKzEzOTEsNyBAQCBU
RVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdERldmljZVNjYWxlRmFjdG9yU2NhbGVzVmlld3BvcnRB
bmRMYXllcnMsIHJ1bk11bHRpVGhyZQogY2xhc3MgQ0NMYXllclRyZWVIb3N0VGVzdEF0b21pY0Nv
bW1pdCA6IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RUZXN0IHsKIHB1YmxpYzoKICAgICBDQ0xheWVy
VHJlZUhvc3RUZXN0QXRvbWljQ29tbWl0KCkKLSAgICAgICAgOiBtX2xheWVyKENvbnRlbnRMYXll
ckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpjcmVhdGUoJm1fZGVsZWdhdGUpKQorICAgICAg
ICA6IG1fbGF5ZXIoQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNyZWF0
ZSgmbV9jbGllbnQpKQogICAgIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHBhcnRpYWwgdGV4dHVy
ZSB1cGRhdGVzIGFyZSB0dXJuZWQgb2ZmLgogICAgICAgICBtX3NldHRpbmdzLm1heFBhcnRpYWxU
ZXh0dXJlVXBkYXRlcyA9IDA7CkBAIC0xNDY0LDcgKzE0NjUsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotICAgIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSBtX2RlbGVnYXRlOworICAg
IE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBtX2NsaWVudDsKICAgICBSZWZQdHI8Q29u
dGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc+IG1fbGF5ZXI7CiB9OwogCkBAIC0x
NDg4LDggKzE0ODksOCBAQCBzdGF0aWMgdm9pZCBzZXRMYXllclByb3BlcnRpZXNGb3JUZXN0aW5n
KExheWVyQ2hyb21pdW0qIGxheWVyLCBMYXllckNocm9taXVtKiBwYQogY2xhc3MgQ0NMYXllclRy
ZWVIb3N0VGVzdEF0b21pY0NvbW1pdFdpdGhQYXJ0aWFsVXBkYXRlIDogcHVibGljIENDTGF5ZXJU
cmVlSG9zdFRlc3QgewogcHVibGljOgogICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RBdG9taWNDb21t
aXRXaXRoUGFydGlhbFVwZGF0ZSgpCi0gICAgICAgIDogbV9wYXJlbnQoQ29udGVudExheWVyQ2hy
b21pdW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNyZWF0ZSgmbV9kZWxlZ2F0ZSkpCi0gICAgICAgICwg
bV9jaGlsZChDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZzo6Y3JlYXRlKCZt
X2RlbGVnYXRlKSkKKyAgICAgICAgOiBtX3BhcmVudChDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhV
cGRhdGVUcmFja2luZzo6Y3JlYXRlKCZtX2NsaWVudCkpCisgICAgICAgICwgbV9jaGlsZChDb250
ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZzo6Y3JlYXRlKCZtX2NsaWVudCkpCiAg
ICAgICAgICwgbV9udW1Db21taXRzKDApCiAgICAgewogICAgICAgICAvLyBBbGxvdyBvbmUgcGFy
dGlhbCB0ZXh0dXJlIHVwZGF0ZS4KQEAgLTE2MTEsNyArMTYxMiw3IEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIG1fZGVsZWdhdGU7Cisg
ICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IG1fY2xpZW50OwogICAgIFJlZlB0cjxD
b250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZz4gbV9wYXJlbnQ7CiAgICAgUmVm
UHRyPENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nPiBtX2NoaWxkOwogICAg
IGludCBtX251bUNvbW1pdHM7CkBAIC0yMjkwLDcgKzIyOTEsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIGNvbnN0IEludFNpemUgbV9zY3JvbGxBbW91bnQ7CiAgICAgSW50U2l6ZSBtX3JlcG9y
dGVkU2Nyb2xsQW1vdW50OwotICAgIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSBtX21vY2tEZWxl
Z2F0ZTsKKyAgICBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgbV9tb2NrRGVsZWdhdGU7
CiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IG1fY2hpbGRMYXllcjsKICAgICBSZWZQdHI8TGF5
ZXJDaHJvbWl1bT4gbV9yb290U2Nyb2xsTGF5ZXI7CiB9OwpAQCAtMjM5Miw3ICsyMzkzLDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNb2NrQ29udGVudExheWVyRGVsZWdhdGUg
bV9tb2NrRGVsZWdhdGU7CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IG1fbW9j
a0RlbGVnYXRlOwogICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFj
a2luZz4gbV9yb290TGF5ZXI7CiAgICAgUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtV2l0aFVw
ZGF0ZVRyYWNraW5nPiBtX3N1cmZhY2VMYXllcjE7CiAgICAgUmVmUHRyPENvbnRlbnRMYXllckNo
cm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nPiBtX3JlcGxpY2FMYXllcjE7CkBAIC0yNjQwLDcgKzI2
NDEsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIE1vY2tDb250ZW50TGF5ZXJE
ZWxlZ2F0ZSBtX2RlbGVnYXRlOworICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBt
X2NsaWVudDsKICAgICBSZWZQdHI8RXZpY3Rpb25UZXN0TGF5ZXI+IG1fbGF5ZXI7CiAgICAgQ0NM
YXllclRyZWVIb3N0SW1wbCogbV9pbXBsRm9yRXZpY3RUZXh0dXJlczsKICAgICBpbnQgbV9udW1D
b21taXRzOwpAQCAtMjczNiw3ICsyNzM3LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToK
LSAgICBNb2NrQ29udGVudExheWVyRGVsZWdhdGUgbV9kZWxlZ2F0ZTsKKyAgICBNb2NrQ29udGVu
dExheWVyQ2hyb21pdW1DbGllbnQgbV9jbGllbnQ7CiAgICAgUmVmUHRyPEV2aWN0aW9uVGVzdExh
eWVyPiBtX2xheWVyOwogICAgIENDTGF5ZXJUcmVlSG9zdEltcGwqIG1faW1wbEZvckV2aWN0VGV4
dHVyZXM7CiAgICAgaW50IG1fbnVtQ29tbWl0czsKQEAgLTI3ODMsMTEgKzI3ODQsMTEgQEAgcHJp
dmF0ZToKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RMb3N0Q29udGV4dFdoaWxlVXBkYXRpbmdS
ZXNvdXJjZXMgOiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCB7CiBwdWJsaWM6CiAgICAgQ0NM
YXllclRyZWVIb3N0VGVzdExvc3RDb250ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlcygpCi0gICAg
ICAgIDogbV9wYXJlbnQoQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNy
ZWF0ZSgmbV9kZWxlZ2F0ZSkpCisgICAgICAgIDogbV9wYXJlbnQoQ29udGVudExheWVyQ2hyb21p
dW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNyZWF0ZSgmbV9jbGllbnQpKQogICAgICAgICAsIG1fbnVt
Q2hpbGRyZW4oNTApCiAgICAgewogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fbnVtQ2hp
bGRyZW47IGkrKykKLSAgICAgICAgICAgIG1fY2hpbGRyZW4uYXBwZW5kKENvbnRlbnRMYXllckNo
cm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpjcmVhdGUoJm1fZGVsZWdhdGUpKTsKKyAgICAgICAg
ICAgIG1fY2hpbGRyZW4uYXBwZW5kKENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNr
aW5nOjpjcmVhdGUoJm1fY2xpZW50KSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBQYXNzT3duUHRy
PFdlYktpdDo6V2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2U+IGNyZWF0ZU91dHB1dFN1cmZhY2Uo
KQpAQCAtMjgyNSw3ICsyODI2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBN
b2NrQ29udGVudExheWVyRGVsZWdhdGUgbV9kZWxlZ2F0ZTsKKyAgICBNb2NrQ29udGVudExheWVy
Q2hyb21pdW1DbGllbnQgbV9jbGllbnQ7CiAgICAgUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVt
V2l0aFVwZGF0ZVRyYWNraW5nPiBtX3BhcmVudDsKICAgICBpbnQgbV9udW1DaGlsZHJlbjsKICAg
ICBWZWN0b3I8UmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nPiA+
IG1fY2hpbGRyZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Nv
bnRlbnRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NvbnRlbnRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggZmQzNWUyMjI0NWRlY2U4NDE5YmNj
ZjZjMDQwZGQ1NzMzMmM0YTk5Yi4uMDVjZDRjNzQ5YTMyYzQ2YWE5ZGMzMjA3NzI2ZDhhYWFhODIy
NjQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Db250ZW50TGF5
ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ29u
dGVudExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkJp
dG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXIuaCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZVRl
c3RDb21tb24uaCIKICNpbmNsdWRlICJDQ1JlbmRlcmluZ1N0YXRzLmgiCisjaW5jbHVkZSAiQ29u
dGVudExheWVyQ2hyb21pdW1DbGllbnQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZS5oIgogI2lu
Y2x1ZGUgInNraWEvZXh0L3BsYXRmb3JtX2NhbnZhcy5oIgpAQCAtNjksOSArNzAsOSBAQCBwcml2
YXRlOgogICAgIEludFJlY3QgbV9jb250ZW50UmVjdDsKIH07CiAKLWNsYXNzIE1vY2tDb250ZW50
TGF5ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBDb250ZW50TGF5ZXJEZWxlZ2F0ZSB7CitjbGFzcyBNb2Nr
Q29udGVudExheWVyQ2hyb21pdW1DbGllbnQgOiBwdWJsaWMgQ29udGVudExheWVyQ2hyb21pdW1D
bGllbnQgewogcHVibGljOgotICAgIGV4cGxpY2l0IE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZShP
cGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSogY2xpZW50KQorICAgIGV4cGxp
Y2l0IE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudChPcGFxdWVSZWN0VHJhY2tpbmdDb250
ZW50TGF5ZXJEZWxlZ2F0ZSogY2xpZW50KQogICAgICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAg
ICB7CiAgICAgfQpAQCAtOTgsOCArOTksOCBAQCBURVNUKENvbnRlbnRMYXllckNocm9taXVtVGVz
dCwgQ29udGVudExheWVyUGFpbnRlcldpdGhEZXZpY2VTY2FsZSkKICAgICBPd25QdHI8U2tDYW52
YXM+IGNhbnZhcyA9IGFkb3B0UHRyKHNraWE6OkNyZWF0ZUJpdG1hcENhbnZhcyhjb250ZW50UmVj
dC53aWR0aCgpLCBjb250ZW50UmVjdC5oZWlnaHQoKSwgZmFsc2UpKTsKICAgICBPcGFxdWVSZWN0
RHJhd2luZ0dyYXBoaWNzQ29udGV4dFBhaW50ZXIgcGFpbnRlcihvcGFxdWVSZWN0SW5MYXllclNw
YWNlLCBjb250ZW50UmVjdCk7CiAgICAgT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVs
ZWdhdGUgb3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUoJnBhaW50ZXIpOwot
ICAgIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSBkZWxlZ2F0ZSgmb3BhcXVlUmVjdFRyYWNraW5n
Q29udGVudExheWVyRGVsZWdhdGUpOwotICAgIFJlZlB0cjxCaXRtYXBDYW52YXNMYXllclRleHR1
cmVVcGRhdGVyPiB1cGRhdGVyID0gQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3Jl
YXRlKENvbnRlbnRMYXllclBhaW50ZXI6OmNyZWF0ZSgmZGVsZWdhdGUpKTsKKyAgICBNb2NrQ29u
dGVudExheWVyQ2hyb21pdW1DbGllbnQgY2xpZW50KCZvcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50
TGF5ZXJEZWxlZ2F0ZSk7CisgICAgUmVmUHRyPEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0
ZXI+IHVwZGF0ZXIgPSBCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUoQ29u
dGVudExheWVyUGFpbnRlcjo6Y3JlYXRlKCZjbGllbnQpKTsKIAogICAgIEludFJlY3QgcmVzdWx0
aW5nT3BhcXVlUmVjdDsKICAgICBDQ1JlbmRlcmluZ1N0YXRzIHN0YXRzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161608</attachid>
            <date>2012-08-30 19:33:08 -0700</date>
            <delta_ts>2012-08-31 09:11:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95522-20120830193257.patch</filename>
            <type>text/plain</type>
            <size>38175</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM3YTQzNmQ1Y2NjZGE0
ZDExYWMyMjUwNDFlYmYzYTA1NjdlN2RjMS4uYjNlYTZmNWQzMDBjMDBjMjZkOTllZDc4ZTJiMzMz
ZDk3MzkzMTBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA4LTMwICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBQ
dXQgY29tcG9zaXRvciBjbGllbnQgaW50ZXJmYWNlcyBpbiBzZXBhcmF0ZSBoZWFkZXJzLCBub3Jt
YWxpemUgbmFtaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTUyMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENsaWVudCBpbnRlcmZhY2VzIHNob3VsZCBiZSBpbiB0aGVpciBvd24gaGVhZGVycyBzbyBj
b2RlIGltcGxlbWVudGluZyB0aGVzZSBpbnRlcmZhY2VzIGRvIG5vdCBoYXZlIHRvCisgICAgICAg
IHRyYW5zaXRpdmVseSAjaW5jbHVkZSBhbGwgb2YgdGhlIGNvbXBvc2l0b3IgaW50ZXJuYWxzLgor
CisgICAgICAgIFdlIGNhbGwgdGhpbmdzICdjbGllbnRzJyBub3QgJ2RlbGVnYXRlcycgaW4gdGhl
IGNvbXBvc2l0b3IuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudExheWVyUGFpbnRlcjo6Q29udGVudExheWVyUGFpbnRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudExheWVyUGFpbnRlcjo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5
ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudExheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGV4dHVyZVVwZGF0ZXJJZk5lZWRlZCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29udGVudExheWVyUGFpbnRlcik6CisgICAgICAg
IChDb250ZW50TGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJD
aHJvbWl1bTo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA4LTMwICBQcmF0aWsgU29sYW5raSAg
PHBzb2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBvYmpjX21zZ1NlbmQgYW5kIElNUCBzaG91
bGQgYmUgY2FzdCBhcHByb3ByaWF0ZWx5IGJlZm9yZSB1c2luZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCBmNTk3NThiZTQxNWE2NDgyMWRjOTNmNzhiODI3YTdhYzI1M2JkNmVmLi43M2Uy
OTE4MTFkN2Q4MTljMzhlMmEwZGI0MmM0NWVmOTk5MDUyMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA4LTMwICBKYW1lcyBSb2JpbnNvbiAgPGph
bWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBQdXQgY29tcG9zaXRvciBj
bGllbnQgaW50ZXJmYWNlcyBpbiBzZXBhcmF0ZSBoZWFkZXJzLCBub3JtYWxpemUgbmFtaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTUyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL1dlYkNv
bnRlbnRMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZW50TGF5ZXJJbXBs
Ojp+V2ViQ29udGVudExheWVySW1wbCk6CisgICAgICAgICogc3JjL1dlYkNvbnRlbnRMYXllcklt
cGwuaDoKKyAgICAgICAgKFdlYkNvbnRlbnRMYXllckltcGwpOgorICAgICAgICAqIHNyYy9XZWJF
eHRlcm5hbFRleHR1cmVMYXllckltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmll
d0ltcGwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVl
SG9zdENvbW1vblRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0
ZVRyYWNraW5nOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNvbnRlbnRMYXllckNo
cm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVU
cmFja2luZyk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXllclRyZWVIb3N0VGVzdERldmlj
ZVNjYWxlRmFjdG9yU2NhbGVzVmlld3BvcnRBbmRMYXllcnM6OkNDTGF5ZXJUcmVlSG9zdFRlc3RE
ZXZpY2VTY2FsZUZhY3RvclNjYWxlc1ZpZXdwb3J0QW5kTGF5ZXJzKToKKyAgICAgICAgKFdlYktp
dFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RUZXN0QXRvbWljQ29tbWl0OjpDQ0xheWVyVHJlZUhvc3RU
ZXN0QXRvbWljQ29tbWl0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ0xheWVyVHJlZUhvc3RU
ZXN0QXRvbWljQ29tbWl0V2l0aFBhcnRpYWxVcGRhdGU6OkNDTGF5ZXJUcmVlSG9zdFRlc3RBdG9t
aWNDb21taXRXaXRoUGFydGlhbFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NMYXll
clRyZWVIb3N0VGVzdExvc3RDb250ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlczo6Q0NMYXllclRy
ZWVIb3N0VGVzdExvc3RDb250ZXh0V2hpbGVVcGRhdGluZ1Jlc291cmNlcyk6CisgICAgICAgIChD
Q0xheWVyVHJlZUhvc3RUZXN0TG9zdENvbnRleHRXaGlsZVVwZGF0aW5nUmVzb3VyY2VzKToKKyAg
ICAgICAgKiB0ZXN0cy9Db250ZW50TGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQ6Ok1vY2tDb250ZW50TGF5ZXJDaHJv
bWl1bUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlRFU1QpOgorCisyMDEyLTA4LTMwICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgW2Nocm9taXVtXSBN
YWtlIHdlYmtpdF9jb21wb3NpdG9yIHNwZWNpZmljIHVuaXQgdGVzdCBjb21waWxhdGlvbiBjb25k
aXRpb25hbCBvbiBneXAgdmFyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTQwMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWQwZGMzNGMwNzlhZTEwNmM0
OGQyM2RhOGZlOTg0ZDljY2EzM2MzOS4uM2Y5MzZhM2I4OWFjYWNjOGJlODhhMTBmNzYyNjJiZjQx
MmRlM2FiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtODM2MCw2ICs4MzYwLDcgQEAKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXNMYXllclRleHR1cmVVcGRhdGVy
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXll
ckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dlb21ldHJ5QmluZGluZy5jcHAn
LApAQCAtODM5NSw2ICs4Mzk2LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UZXh0dXJlQ29waWVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZVVwbG9h
ZGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rocm90dGxl
ZFRleHR1cmVVcGxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Rocm90dGxlZFRleHR1cmVVcGxvYWRlci5oJywKQEAgLTg0NTgsNiArODQ2MCw3IEBA
CiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRpbGlu
Z0RhdGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENsaWVudC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RD
b21tb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0SW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3Bw
CmluZGV4IGMyYmY0NWVhZDUyMzE2NzhlNTJhNTg1MDFhODQ3ODhmM2VkNGI1MmUuLmQ1NzgxMTdi
ZWQ2MTcyMzM1YjJjZTRjMzllMTg5ODMzMDE1MjAzN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5
ZXJDaHJvbWl1bS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJCaXRtYXBTa1BpY3R1
cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0
LmgiCiAjaW5jbHVkZSAiQ0NTZXR0aW5ncy5oIgorI2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9t
aXVtQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVCdWZmZXJTa1BpY3R1cmVDYW52YXNMYXllclRl
eHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVkZSAiTGF5ZXJQYWludGVyQ2hyb21pdW0uaCIKICNpbmNs
dWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KQEAgLTQ1LDM0ICs0NiwzNCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUNvbnRlbnRMYXllclBhaW50ZXI6OkNvbnRlbnRMYXllclBhaW50ZXIoQ29u
dGVudExheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQotICAgIDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkK
K0NvbnRlbnRMYXllclBhaW50ZXI6OkNvbnRlbnRMYXllclBhaW50ZXIoQ29udGVudExheWVyQ2hy
b21pdW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKIHsKIH0KIAotUGFz
c093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUo
Q29udGVudExheWVyRGVsZWdhdGUqIGRlbGVnYXRlKQorUGFzc093blB0cjxDb250ZW50TGF5ZXJQ
YWludGVyPiBDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUoQ29udGVudExheWVyQ2hyb21pdW1D
bGllbnQqIGNsaWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRlbnRMYXllclBh
aW50ZXIoZGVsZWdhdGUpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRlbnRMYXllclBh
aW50ZXIoY2xpZW50KSk7CiB9CiAKIHZvaWQgQ29udGVudExheWVyUGFpbnRlcjo6cGFpbnQoU2tD
YW52YXMqIGNhbnZhcywgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIEZsb2F0UmVjdCYgb3Bh
cXVlKQogewogICAgIGRvdWJsZSBwYWludFN0YXJ0ID0gY3VycmVudFRpbWUoKTsKLSAgICBtX2Rl
bGVnYXRlLT5wYWludENvbnRlbnRzKGNhbnZhcywgY29udGVudFJlY3QsIG9wYXF1ZSk7CisgICAg
bV9jbGllbnQtPnBhaW50Q29udGVudHMoY2FudmFzLCBjb250ZW50UmVjdCwgb3BhcXVlKTsKICAg
ICBkb3VibGUgcGFpbnRFbmQgPSBjdXJyZW50VGltZSgpOwogICAgIGRvdWJsZSBwaXhlbHNQZXJT
ZWMgPSAoY29udGVudFJlY3Qud2lkdGgoKSAqIGNvbnRlbnRSZWN0LmhlaWdodCgpKSAvIChwYWlu
dEVuZCAtIHBhaW50U3RhcnQpOwogICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+aGlz
dG9ncmFtQ3VzdG9tQ291bnRzKCJSZW5kZXJlcjQuQWNjZWxDb250ZW50UGFpbnREdXJhdGlvbk1T
IiwgKHBhaW50RW5kIC0gcGFpbnRTdGFydCkgKiAxMDAwLCAwLCAxMjAsIDMwKTsKICAgICBXZWJL
aXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmhpc3RvZ3JhbUN1c3RvbUNvdW50cygiUmVuZGVyZXI0
LkFjY2VsQ29udGVudFBhaW50TWVnYXBpeFBlclNlY29uZCIsIHBpeGVsc1BlclNlYyAvIDEwMDAw
MDAsIDEwLCAyMTAsIDMwKTsKIH0KIAotUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4g
Q29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZShDb250ZW50TGF5ZXJEZWxlZ2F0ZSogZGVsZWdh
dGUpCitQYXNzUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtPiBDb250ZW50TGF5ZXJDaHJvbWl1
bTo6Y3JlYXRlKENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb250ZW50TGF5ZXJDaHJvbWl1bShkZWxlZ2F0ZSkpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgQ29udGVudExheWVyQ2hyb21pdW0oY2xpZW50KSk7CiB9CiAKLUNv
bnRlbnRMYXllckNocm9taXVtOjpDb250ZW50TGF5ZXJDaHJvbWl1bShDb250ZW50TGF5ZXJEZWxl
Z2F0ZSogZGVsZWdhdGUpCitDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29udGVudExheWVyQ2hyb21p
dW0oQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqIGNsaWVudCkKICAgICA6IFRpbGVkTGF5ZXJD
aHJvbWl1bSgpCi0gICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQorICAgICwgbV9jbGllbnQoY2xp
ZW50KQogewogfQogCkBAIC04Miw3ICs4Myw3IEBAIENvbnRlbnRMYXllckNocm9taXVtOjp+Q29u
dGVudExheWVyQ2hyb21pdW0oKQogCiBib29sIENvbnRlbnRMYXllckNocm9taXVtOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdAogewotICAgIHJldHVybiBUaWxlZExheWVyQ2hyb21pdW06OmRyYXdzQ29u
dGVudCgpICYmIG1fZGVsZWdhdGU7CisgICAgcmV0dXJuIFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHJh
d3NDb250ZW50KCkgJiYgbV9jbGllbnQ7CiB9CiAKIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06
OnNldFRleHR1cmVQcmlvcml0aWVzKGNvbnN0IENDUHJpb3JpdHlDYWxjdWxhdG9yJiBwcmlvcml0
eUNhbGMpCkBAIC0xMTAsMTEgKzExMSwxMSBAQCB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpj
cmVhdGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCkKICAgICBpZiAobV90ZXh0dXJlVXBkYXRlcikK
ICAgICAgICAgcmV0dXJuOwogICAgIGlmIChsYXllclRyZWVIb3N0KCktPnNldHRpbmdzKCkuYWNj
ZWxlcmF0ZVBhaW50aW5nKQotICAgICAgICBtX3RleHR1cmVVcGRhdGVyID0gRnJhbWVCdWZmZXJT
a1BpY3R1cmVDYW52YXNMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUoQ29udGVudExheWVyUGFp
bnRlcjo6Y3JlYXRlKG1fZGVsZWdhdGUpKTsKKyAgICAgICAgbV90ZXh0dXJlVXBkYXRlciA9IEZy
YW1lQnVmZmVyU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENvbnRl
bnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIGVsc2UgaWYgKENDU2V0dGlu
Z3M6OnBlclRpbGVQYWludGluZ0VuYWJsZWQoKSkKLSAgICAgICAgbV90ZXh0dXJlVXBkYXRlciA9
IEJpdG1hcFNrUGljdHVyZUNhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0ZShDb250ZW50
TGF5ZXJQYWludGVyOjpjcmVhdGUobV9kZWxlZ2F0ZSkpOworICAgICAgICBtX3RleHR1cmVVcGRh
dGVyID0gQml0bWFwU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENv
bnRlbnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIGVsc2UKLSAgICAgICAg
bV90ZXh0dXJlVXBkYXRlciA9IEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0
ZShDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUobV9kZWxlZ2F0ZSkpOworICAgICAgICBtX3Rl
eHR1cmVVcGRhdGVyID0gQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENv
bnRlbnRMYXllclBhaW50ZXI6OmNyZWF0ZShtX2NsaWVudCkpOwogICAgIG1fdGV4dHVyZVVwZGF0
ZXItPnNldE9wYXF1ZShvcGFxdWUoKSk7CiAKICAgICBHQzNEZW51bSB0ZXh0dXJlRm9ybWF0ID0g
bGF5ZXJUcmVlSG9zdCgpLT5yZW5kZXJlckNhcGFiaWxpdGllcygpLmJlc3RUZXh0dXJlRm9ybWF0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29udGVudExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmgKaW5kZXggNmMwNjhiMzBjZWViMTEwYTFl
YjVhNzQ2YWI3OWE0OGY3YjAxNjA5YS4uN2ViNDU5YzViZjI0NzAyZTUxZGJhYTgwZTZjYzMyMzVm
ZmJkNWJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oCkBAIC00MSwzOSArNDEs
MzIgQEAgY2xhc3MgU2tDYW52YXM7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ29u
dGVudExheWVyQ2hyb21pdW1DbGllbnQ7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBJbnRSZWN0
OwogY2xhc3MgTGF5ZXJUZXh0dXJlVXBkYXRlcjsKIAotY2xhc3MgQ29udGVudExheWVyRGVsZWdh
dGUgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKFNrQ2FudmFzKiwg
Y29uc3QgSW50UmVjdCYgY2xpcCwgRmxvYXRSZWN0JiBvcGFxdWUpID0gMDsKLQotcHJvdGVjdGVk
OgotICAgIHZpcnR1YWwgfkNvbnRlbnRMYXllckRlbGVnYXRlKCkgeyB9Ci19OwotCiBjbGFzcyBD
b250ZW50TGF5ZXJQYWludGVyIDogcHVibGljIExheWVyUGFpbnRlckNocm9taXVtIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShDb250ZW50TGF5ZXJQYWludGVyKTsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBjcmVhdGUoQ29udGVudExheWVy
RGVsZWdhdGUqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxDb250ZW50TGF5ZXJQYWludGVyPiBj
cmVhdGUoQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBw
YWludChTa0NhbnZhcyosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBGbG9hdFJlY3QmIG9w
YXF1ZSkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgQ29udGVudExheWVyUGFp
bnRlcihDb250ZW50TGF5ZXJEZWxlZ2F0ZSopOworICAgIGV4cGxpY2l0IENvbnRlbnRMYXllclBh
aW50ZXIoQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQqKTsKIAotICAgIENvbnRlbnRMYXllckRl
bGVnYXRlKiBtX2RlbGVnYXRlOworICAgIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBtX2Ns
aWVudDsKIH07CiAKIC8vIEEgbGF5ZXIgdGhhdCByZW5kZXJzIGl0cyBjb250ZW50cyBpbnRvIGFu
IFNrQ2FudmFzLgogY2xhc3MgQ29udGVudExheWVyQ2hyb21pdW0gOiBwdWJsaWMgVGlsZWRMYXll
ckNocm9taXVtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJD
aHJvbWl1bT4gY3JlYXRlKENvbnRlbnRMYXllckRlbGVnYXRlKik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW0+IGNyZWF0ZShDb250ZW50TGF5ZXJDaHJvbWl1bUNs
aWVudCopOwogCiAgICAgdmlydHVhbCB+Q29udGVudExheWVyQ2hyb21pdW0oKTsKIAotICAgIHZv
aWQgY2xlYXJEZWxlZ2F0ZSgpIHsgbV9kZWxlZ2F0ZSA9IDA7IH0KKyAgICB2b2lkIGNsZWFyQ2xp
ZW50KCkgeyBtX2NsaWVudCA9IDA7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQo
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dHVyZVByaW9yaXRpZXMo
Y29uc3QgQ0NQcmlvcml0eUNhbGN1bGF0b3ImKSBPVkVSUklERTsKQEAgLTgzLDE0ICs3NiwxNCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKSBPVkVSUklERTsKIAog
cHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IENvbnRlbnRMYXllckNocm9taXVtKENvbnRlbnRMYXll
ckRlbGVnYXRlKik7CisgICAgZXhwbGljaXQgQ29udGVudExheWVyQ2hyb21pdW0oQ29udGVudExh
eWVyQ2hyb21pdW1DbGllbnQqKTsKIAogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5ZXJUZXh0
dXJlVXBkYXRlciogdGV4dHVyZVVwZGF0ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3Rl
eHR1cmVVcGRhdGVyLmdldCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRleHR1cmVVcGRh
dGVySWZOZWVkZWQoKSBPVkVSUklERTsKIAotICAgIENvbnRlbnRMYXllckRlbGVnYXRlKiBtX2Rl
bGVnYXRlOworICAgIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBtX2NsaWVudDsKICAgICBS
ZWZQdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcj4gbV90ZXh0dXJlVXBkYXRlcjsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRM
YXllckNocm9taXVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NTZhNWQ3
MWY0OWUwZmRiYWZlOTAzOGM1MmE2ZWUyMjg4OGRjNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1
bUNsaWVudC5oCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGVu
dExheWVyQ2hyb21pdW1DbGllbnRfaAorI2RlZmluZSBDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVu
dF9oCisKK2NsYXNzIFNrQ2FudmFzOworCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBGbG9h
dFJlY3Q7CitjbGFzcyBJbnRSZWN0OworCitjbGFzcyBDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVu
dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoU2tDYW52YXMqLCBj
b25zdCBJbnRSZWN0JiBjbGlwLCBGbG9hdFJlY3QmIG9wYXF1ZSkgPSAwOworCitwcm90ZWN0ZWQ6
CisgICAgdmlydHVhbCB+Q29udGVudExheWVyQ2hyb21pdW1DbGllbnQoKSB7IH0KK307CisKK30K
KworI2VuZGlmIC8vIENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1
cmVMYXllckNocm9taXVtLmNwcAppbmRleCBkMmY0NjllMzY4N2M4ZWJhZWU2ZWUwMjlhYjQ5YTRl
M2U0ZWIwYjI1Li4zNGZkMDI2ZWI3NTIxM2U0ODhkNjhlMzNmNThkMzM4NTVjYzYzOGFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJl
TGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNp
bmNsdWRlICJDQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJDQ1RleHR1cmVMYXllckltcGwu
aCIKKyNpbmNsdWRlICJUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudC5oIgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJl
TGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaAppbmRleCA0YjY3MjFiYjQ4YzVkZmE4ZGQwMjY0NDcz
NmRjMzhlYmEzYzc5Y2I0Li5mZDYzOWY2ZjkyYmIzMTk1MmMzY2I1MjQyZmJmNWFhZGQ5YTRiY2Zk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
ZXh0dXJlTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmgKQEAgLTIzLDcgKzIzLDYgQEAKICAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotCiAjaWZuZGVmIFRleHR1cmVMYXllckNocm9taXVtX2gKICNkZWZp
bmUgVGV4dHVyZUxheWVyQ2hyb21pdW1faAogCkBAIC0zNywxOSArMzYsNyBAQCBjbGFzcyBXZWJH
cmFwaGljc0NvbnRleHQzRDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUZXh0dXJl
TGF5ZXJDaHJvbWl1bUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgLy8gQ2FsbGVkIHRvIHByZXBhcmUg
dGhpcyBsYXllcidzIHRleHR1cmUgZm9yIGNvbXBvc2l0aW5nLiBUaGUgY2xpZW50IG1heSBxdWV1
ZSBhIHRleHR1cmUKLSAgICAvLyB1cGxvYWQgb3IgY29weSBvbiB0aGUgQ0NUZXh0dXJlVXBkYXRl
UXVldWUuCi0gICAgLy8gUmV0dXJucyB0aGUgdGV4dHVyZSBJRCB0byBiZSB1c2VkIGZvciBjb21w
b3NpdGluZy4KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIHByZXBhcmVUZXh0dXJlKENDVGV4dHVyZVVw
ZGF0ZVF1ZXVlJikgPSAwOwotCi0gICAgLy8gUmV0dXJucyB0aGUgY29udGV4dCB0aGF0IGlzIHBy
b3ZpZGluZyB0aGUgdGV4dHVyZS4gVXNlZCBmb3IgcmF0ZSBsaW1pdGluZyBhbmQgZGV0ZWN0aW5n
IGxvc3QgY29udGV4dC4KLSAgICB2aXJ0dWFsIFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQoKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5UZXh0dXJlTGF5ZXJD
aHJvbWl1bUNsaWVudCgpIHsgfQotfTsKK2NsYXNzIFRleHR1cmVMYXllckNocm9taXVtQ2xpZW50
OwogCiAvLyBBIExheWVyIGNvbnRhaW5pbmcgYSB0aGUgcmVuZGVyZWQgb3V0cHV0IG9mIGEgcGx1
Z2luIGluc3RhbmNlLgogY2xhc3MgVGV4dHVyZUxheWVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJD
aHJvbWl1bSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMzJjZjE2NWRhZDUzOGQyMjNlMjFhNWRiN2Y2YTEwOTliZTZmNzE4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4
dHVyZUxheWVyQ2hyb21pdW1DbGllbnQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudF9oCisjZGVmaW5lIFRleHR1cmVMYXllckNocm9t
aXVtQ2xpZW50X2gKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJHcmFwaGljc0NvbnRl
eHQzRDsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ0NUZXh0dXJlVXBkYXRlUXVl
dWU7CisKK2NsYXNzIFRleHR1cmVMYXllckNocm9taXVtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICAv
LyBDYWxsZWQgdG8gcHJlcGFyZSB0aGlzIGxheWVyJ3MgdGV4dHVyZSBmb3IgY29tcG9zaXRpbmcu
IFRoZSBjbGllbnQgbWF5IHF1ZXVlIGEgdGV4dHVyZQorICAgIC8vIHVwbG9hZCBvciBjb3B5IG9u
IHRoZSBDQ1RleHR1cmVVcGRhdGVRdWV1ZS4KKyAgICAvLyBSZXR1cm5zIHRoZSB0ZXh0dXJlIElE
IHRvIGJlIHVzZWQgZm9yIGNvbXBvc2l0aW5nLgorICAgIHZpcnR1YWwgdW5zaWduZWQgcHJlcGFy
ZVRleHR1cmUoQ0NUZXh0dXJlVXBkYXRlUXVldWUmKSA9IDA7CisKKyAgICAvLyBSZXR1cm5zIHRo
ZSBjb250ZXh0IHRoYXQgaXMgcHJvdmlkaW5nIHRoZSB0ZXh0dXJlLiBVc2VkIGZvciByYXRlIGxp
bWl0aW5nIGFuZCBkZXRlY3RpbmcgbG9zdCBjb250ZXh0LgorICAgIHZpcnR1YWwgV2ViS2l0OjpX
ZWJHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCgpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZp
cnR1YWwgflRleHR1cmVMYXllckNocm9taXVtQ2xpZW50KCkgeyB9Cit9OworCit9CisKKyNlbmRp
ZiAvLyBUZXh0dXJlTGF5ZXJDaHJvbWl1bUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcAppbmRleCA1NzBkMTU2NzMzOTJjOGYxNzEyYWY4ZmUwODFkZDM1MTE2NDI0YTkwLi4w
ODQ3NGExZDM3ZWQxN2Q2Y2QzZTk5NjkzMmNiY2M1YTZhNTg5ZDEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDQ0hlYWRzVXBE
aXNwbGF5TGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiQ0NMYXllckFuaW1hdGlvbkNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJDQ0xheWVySXRlcmF0b3IuaCIKKyNpbmNsdWRlICJDQ0xheWVyVHJlZUhv
c3RDbGllbnQuaCIKICNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3RDb21tb24uaCIKICNpbmNsdWRl
ICJDQ0xheWVyVHJlZUhvc3RJbXBsLmgiCiAjaW5jbHVkZSAiQ0NPY2NsdXNpb25UcmFja2VyLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDUyMzAyZDMyOGI4MzFmY2I3ZjUzOTE5
Mjk0NDlkNjI3MmIxMjhjNjcuLjc0Mjc4OGM3MDY3ODNiYjYzOGY1M2Q2MjZmMmRjNWNjMWUzYTU4
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
bmNsdWRlICJDQ0FuaW1hdGlvbkV2ZW50cy5oIgogI2luY2x1ZGUgIkNDR3JhcGhpY3NDb250ZXh0
LmgiCisjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ0NMYXll
clRyZWVIb3N0Q29tbW9uLmgiCiAjaW5jbHVkZSAiQ0NPY2NsdXNpb25UcmFja2VyLmgiCiAjaW5j
bHVkZSAiQ0NQcmlvcml0aXplZFRleHR1cmVNYW5hZ2VyLmgiCkBAIC01MywyOCArNTQsNiBAQCBj
bGFzcyBIZWFkc1VwRGlzcGxheUxheWVyQ2hyb21pdW07CiBjbGFzcyBSZWdpb247CiBzdHJ1Y3Qg
Q0NTY3JvbGxBbmRTY2FsZVNldDsKIAotY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKSA9IDA7Ci0gICAgLy8gTWFy
a3MgZmluaXNoaW5nIGNvbXBvc2l0aW5nLXJlbGF0ZWQgdGFza3Mgb24gdGhlIG1haW4gdGhyZWFk
LiBJbiB0aHJlYWRlZCBtb2RlLCB0aGlzIGNvcnJlc3BvbmRzIHRvIGRpZENvbW1pdCgpLgotICAg
IHZpcnR1YWwgdm9pZCBkaWRCZWdpbkZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhbmlt
YXRlKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6
ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSkgPSAwOwotICAgIHZpcnR1YWwgUGFzc093
blB0cjxXZWJLaXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlPiBjcmVhdGVPdXRwdXRTdXJm
YWNlKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9v
bCBzdWNjZXNzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxDb21taXQoKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0
QW5kRHJhd0ZyYW1lKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZm
ZXJzKCkgPSAwOwotCi0gICAgLy8gVXNlZCBvbmx5IGluIHRoZSBzaW5nbGUtdGhyZWFkZWQgcGF0
aC4KLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGUoKSA9IDA7Ci0KLXByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIH5DQ0xheWVyVHJlZUhvc3RDbGllbnQoKSB7IH0KLX07Ci0KIHN0cnVj
dCBDQ0xheWVyVHJlZVNldHRpbmdzIHsKICAgICBDQ0xheWVyVHJlZVNldHRpbmdzKCkKICAgICAg
ICAgICAgIDogYWNjZWxlcmF0ZVBhaW50aW5nKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVy
VHJlZUhvc3RDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDk2Njc5OWJkYmVkZTAzNjJiNmNjNzI1M2Ew
MDg1NmFmMzJhYjZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgKQEAgLTAsMCArMSw2
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDQ0xheWVyVHJlZUhvc3RDbGllbnRfaAorI2Rl
ZmluZSBDQ0xheWVyVHJlZUhvc3RDbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJDb21wb3NpdG9yT3V0cHV0U3VyZmFj
ZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgSW50U2l6ZTsKKworY2xhc3MgQ0NM
YXllclRyZWVIb3N0Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2lu
RnJhbWUoKSA9IDA7CisgICAgLy8gTWFya3MgZmluaXNoaW5nIGNvbXBvc2l0aW5nLXJlbGF0ZWQg
dGFza3Mgb24gdGhlIG1haW4gdGhyZWFkLiBJbiB0aHJlYWRlZCBtb2RlLCB0aGlzIGNvcnJlc3Bv
bmRzIHRvIGRpZENvbW1pdCgpLgorICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkZyYW1lKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Ny
b2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSkg
PSAwOworICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJLaXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRT
dXJmYWNlPiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNyZWF0ZU91dHB1dFN1cmZhY2UoYm9vbCBzdWNjZXNzKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHdpbGxDb21taXQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdCgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkgPSAwOworCisgICAgLy8gVXNlZCBvbmx5IGlu
IHRoZSBzaW5nbGUtdGhyZWFkZWQgcGF0aC4KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21w
b3NpdGUoKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5DQ0xheWVyVHJlZUhvc3RD
bGllbnQoKSB7IH0KK307CisKK30KKworI2VuZGlmIC8vIENDTGF5ZXJUcmVlSG9zdENsaWVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwu
Y3BwCmluZGV4IGZhMjFlODk3NGZkM2IxYjk4MDZhNWMyZTFjYTk5ZTY5YzY5OGRjYTMuLjcwZDE1
NzEyMjE5YTIyYjVjMTllYjI2ZTQyMDMwYzdmNmI5OTE1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwuY3BwCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29udGVudExheWVySW1wbC5o
IgogCisjaW5jbHVkZSAiQ29udGVudExheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJTa01hdHJp
eDQ0LmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbnRlbnRMYXllckNsaWVudC5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJGbG9hdFBvaW50Lmg+CkBAIC01MSw3ICs1Miw3IEBAIFdlYkNvbnRlbnRM
YXllckltcGw6OldlYkNvbnRlbnRMYXllckltcGwoV2ViQ29udGVudExheWVyQ2xpZW50KiBjbGll
bnQpCiAKIFdlYkNvbnRlbnRMYXllckltcGw6On5XZWJDb250ZW50TGF5ZXJJbXBsKCkKIHsKLSAg
ICBzdGF0aWNfY2FzdDxDb250ZW50TGF5ZXJDaHJvbWl1bSo+KG1fd2ViTGF5ZXJJbXBsLT5sYXll
cigpKS0+Y2xlYXJEZWxlZ2F0ZSgpOworICAgIHN0YXRpY19jYXN0PENvbnRlbnRMYXllckNocm9t
aXVtKj4obV93ZWJMYXllckltcGwtPmxheWVyKCkpLT5jbGVhckNsaWVudCgpOwogfQogCiBXZWJM
YXllciogV2ViQ29udGVudExheWVySW1wbDo6bGF5ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5oCmluZGV4IDUxMWY4ZTBiYTA4NjBiNDZh
MDgxNTY1ZjA5ODdkZmYwZThhY2I1ZjIuLjc4ZDMwZjlhYzBhMzhmOGFmZTcwMDkyM2VkYTVlODY2
NWEyYWZkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRl
bnRMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50
TGF5ZXJJbXBsLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgV2ViQ29udGVudExheWVySW1w
bF9oCiAjZGVmaW5lIFdlYkNvbnRlbnRMYXllckltcGxfaAogCi0jaW5jbHVkZSAiQ29udGVudExh
eWVyQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudC5oIgog
I2luY2x1ZGUgIldlYkxheWVySW1wbC5oIgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb250ZW50TGF5
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMzUsNyArMzUsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkNvbnRlbnRMYXllckNsaWVudDsKIAogY2xhc3MgV2Vi
Q29udGVudExheWVySW1wbCA6IHB1YmxpYyBXZWJDb250ZW50TGF5ZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVibGljIFdlYkNvcmU6OkNvbnRlbnRMYXllckRlbGVnYXRlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgV2ViQ29yZTo6Q29udGVudExheWVyQ2hy
b21pdW1DbGllbnQgewogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYkNvbnRlbnRMYXllckltcGwo
V2ViQ29udGVudExheWVyQ2xpZW50Kik7CiAKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkNvbnRlbnRMYXllckltcGwoKTsKIAotICAgIC8vIENv
bnRlbnRMYXllckRlbGVnYXRlIGltcGxlbWVudGF0aW9uLgorICAgIC8vIENvbnRlbnRMYXllckNo
cm9taXVtQ2xpZW50IGltcGxlbWVudGF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRl
bnRzKFNrQ2FudmFzKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcCwgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBvcGFxdWUpIE9WRVJSSURFOwogCiAgICAgT3duUHRyPFdlYkxheWVySW1wbD4gbV93
ZWJMYXllckltcGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJF
eHRlcm5hbFRleHR1cmVMYXllckltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkV4dGVybmFsVGV4dHVyZUxheWVySW1wbC5oCmluZGV4IDUzNDg4OTViZjFjZDUzYjU0NDkzYjIz
NTdkMDgxOTYyYmY1ODM0ZTUuLjZjMDNjMjM0MmUwYmFmOTI5NjNhNjhiYzAxYjQ0MzFjOWFhNjEx
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4
dHVyZUxheWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVy
bmFsVGV4dHVyZUxheWVySW1wbC5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFdlYkV4dGVy
bmFsVGV4dHVyZUxheWVySW1wbF9oCiAjZGVmaW5lIFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1w
bF9oCiAKLSNpbmNsdWRlICJUZXh0dXJlTGF5ZXJDaHJvbWl1bS5oIgorI2luY2x1ZGUgIlRleHR1
cmVMYXllckNocm9taXVtQ2xpZW50LmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4
dHVyZUxheWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKaW5kZXggNzFhZGVkNThjZTUyMDBh
OTUxYzg2Zjc5NWMxNDljNTIzYzA1YTQ1YS4uNTkzOTYyYTA4NmYwNTNhZjQ4MDMyNTYzYjViNWJk
NDNlYjAyZWNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5
ZXJUcmVlVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXll
clRyZWVWaWV3SW1wbC5oCkBAIC0yNiwxMSArMjYsMTUgQEAKICNpZm5kZWYgV2ViTGF5ZXJUcmVl
Vmlld0ltcGxfaAogI2RlZmluZSBXZWJMYXllclRyZWVWaWV3SW1wbF9oCiAKLSNpbmNsdWRlICJD
Q0xheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJDQ0xheWVyVHJlZUhvc3RDbGllbnQuaCIKICNp
bmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBDQ0xheWVyVHJlZUhvc3Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2Vi
TGF5ZXI7CiBjbGFzcyBXZWJMYXllclRyZWVWaWV3Q2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdC5jcHAK
aW5kZXggZGJmMjhlNDk1OTU4NDA3MGM5YWZkYjIxZWYyNmE2NmZjN2RlOThhMi4uZjcyODg0ZmRl
MDUxNTQxNmQyMzBjYjRmNTFmZTNiYTAwNzBjYzczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQ0NTaW5nbGVUaHJlYWRQcm94eS5oIgogI2luY2x1
ZGUgIkNDVGhyZWFkLmgiCiAjaW5jbHVkZSAiQ29udGVudExheWVyQ2hyb21pdW0uaCIKKyNpbmNs
dWRlICJDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudC5oIgogI2luY2x1ZGUgIkxheWVyQ2hyb21p
dW0uaCIKIAogI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CkBAIC0zMzgwLDE0ICszMzgxLDE0IEBA
IFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5SGl0VGVzdGluZ0Zvck11bHRp
cGxlTGF5ZXJMaXN0cykKICAgICBFWFBFQ1RfRVEoNCwgcmVzdWx0TGF5ZXItPmlkKCkpOwogfQog
Ci1jbGFzcyBNb2NrQ29udGVudExheWVyRGVsZWdhdGUgOiBwdWJsaWMgQ29udGVudExheWVyRGVs
ZWdhdGUgeworY2xhc3MgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IDogcHVibGljIENv
bnRlbnRMYXllckNocm9taXVtQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBNb2NrQ29udGVudExheWVy
RGVsZWdhdGUoKSB7IH0KLSAgICB2aXJ0dWFsIH5Nb2NrQ29udGVudExheWVyRGVsZWdhdGUoKSB7
IH0KKyAgICBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFs
IH5Nb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDb250ZW50cyhTa0NhbnZhcyosIGNvbnN0IEludFJlY3QmIGNsaXAsIEZsb2F0UmVjdCYg
b3BhcXVlKSBPVkVSUklERSB7IH0KIH07CiAKLVBhc3NSZWZQdHI8Q29udGVudExheWVyQ2hyb21p
dW0+IGNyZWF0ZURyYXdhYmxlQ29udGVudExheWVyQ2hyb21pdW0oQ29udGVudExheWVyRGVsZWdh
dGUqIGRlbGVnYXRlKQorUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4gY3JlYXRlRHJh
d2FibGVDb250ZW50TGF5ZXJDaHJvbWl1bShDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCogZGVs
ZWdhdGUpCiB7CiAgICAgUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtPiB0b1JldHVybiA9IENv
bnRlbnRMYXllckNocm9taXVtOjpjcmVhdGUoZGVsZWdhdGUpOwogICAgIHRvUmV0dXJuLT5zZXRJ
c0RyYXdhYmxlKHRydWUpOwpAQCAtMzM5Nyw3ICszMzk4LDcgQEAgUGFzc1JlZlB0cjxDb250ZW50
TGF5ZXJDaHJvbWl1bT4gY3JlYXRlRHJhd2FibGVDb250ZW50TGF5ZXJDaHJvbWl1bShDb250ZW50
TGF5ZXIKIFRFU1QoQ0NMYXllclRyZWVIb3N0Q29tbW9uVGVzdCwgdmVyaWZ5TGF5ZXJUcmFuc2Zv
cm1zSW5IaWdoRFBJKQogewogICAgIC8vIFZlcmlmeSBkcmF3IGFuZCBzY3JlZW4gc3BhY2UgdHJh
bnNmb3JtcyBvZiBsYXllcnMgbm90IGluIGEgc3VyZmFjZS4KLSAgICBNb2NrQ29udGVudExheWVy
RGVsZWdhdGUgZGVsZWdhdGU7CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IGRl
bGVnYXRlOwogICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGlkZW50aXR5TWF0cml4OwogCiAg
ICAgUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtPiBwYXJlbnQgPSBjcmVhdGVEcmF3YWJsZUNv
bnRlbnRMYXllckNocm9taXVtKCZkZWxlZ2F0ZSk7CkBAIC0zNDY5LDcgKzM0NzAsNyBAQCBURVNU
KENDTGF5ZXJUcmVlSG9zdENvbW1vblRlc3QsIHZlcmlmeUxheWVyVHJhbnNmb3Jtc0luSGlnaERQ
SSkKIAogVEVTVChDQ0xheWVyVHJlZUhvc3RDb21tb25UZXN0LCB2ZXJpZnlSZW5kZXJTdXJmYWNl
VHJhbnNmb3Jtc0luSGlnaERQSSkKIHsKLSAgICBNb2NrQ29udGVudExheWVyRGVsZWdhdGUgZGVs
ZWdhdGU7CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IGRlbGVnYXRlOwogICAg
IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IGlkZW50aXR5TWF0cml4OwogCiAgICAgUmVmUHRyPENv
bnRlbnRMYXllckNocm9taXVtPiBwYXJlbnQgPSBjcmVhdGVEcmF3YWJsZUNvbnRlbnRMYXllckNo
cm9taXVtKCZkZWxlZ2F0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAppbmRleCA3NzdkNjBmYzAyYmMxNWUyZjQxMDgzMmVl
MzkxNmQ2MDYzYWJmZjYxLi4zNmJlNWE1MTNlMWZmMWNjZDQ5NjUwMzEyZmFkYzEyM2JlOTU5NjZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9z
dFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVI
b3N0VGVzdC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDQ1RocmVhZGVkVGVzdC5o
IgogI2luY2x1ZGUgIkNDVGltaW5nRnVuY3Rpb24uaCIKICNpbmNsdWRlICJDb250ZW50TGF5ZXJD
aHJvbWl1bS5oIgorI2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9taXVtQ2xpZW50LmgiCiAjaW5j
bHVkZSAiRXh0ZW5zaW9uczNEQ2hyb21pdW0uaCIKICNpbmNsdWRlICJGYWtlV2ViQ29tcG9zaXRv
ck91dHB1dFN1cmZhY2UuaCIKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgpAQCAtMTE4OSw3ICsx
MTkwLDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRlc3RTZXRWaXNpYmxlLCBydW5NdWx0aVRo
cmVhZCkKICAgICBydW5UZXN0KHRydWUpOwogfQogCi1jbGFzcyBUZXN0T3BhY2l0eUNoYW5nZUxh
eWVyRGVsZWdhdGUgOiBwdWJsaWMgQ29udGVudExheWVyRGVsZWdhdGUgeworY2xhc3MgVGVzdE9w
YWNpdHlDaGFuZ2VMYXllckRlbGVnYXRlIDogcHVibGljIENvbnRlbnRMYXllckNocm9taXVtQ2xp
ZW50IHsKIHB1YmxpYzoKICAgICBUZXN0T3BhY2l0eUNoYW5nZUxheWVyRGVsZWdhdGUoQ0NMYXll
clRyZWVIb3N0VGVzdCogdGVzdCkKICAgICAgICAgOiBtX3Rlc3QodGVzdCkKQEAgLTEyMDgsNyAr
MTIwOSw3IEBAIHByaXZhdGU6CiAKIGNsYXNzIENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0
ZVRyYWNraW5nIDogcHVibGljIENvbnRlbnRMYXllckNocm9taXVtIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZz4g
Y3JlYXRlKENvbnRlbnRMYXllckRlbGVnYXRlICpkZWxlZ2F0ZSkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nKGRlbGVnYXRlKSk7IH0K
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFj
a2luZz4gY3JlYXRlKENvbnRlbnRMYXllckNocm9taXVtQ2xpZW50KiBjbGllbnQpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZyhjbGll
bnQpKTsgfQogCiAgICAgaW50IHBhaW50Q29udGVudHNDb3VudCgpIHsgcmV0dXJuIG1fcGFpbnRD
b250ZW50c0NvdW50OyB9CiAgICAgdm9pZCByZXNldFBhaW50Q29udGVudHNDb3VudCgpIHsgbV9w
YWludENvbnRlbnRzQ291bnQgPSAwOyB9CkBAIC0xMjIwLDggKzEyMjEsOCBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IENvbnRlbnRMYXllckNocm9taXVtV2l0aFVw
ZGF0ZVRyYWNraW5nKENvbnRlbnRMYXllckRlbGVnYXRlKiBkZWxlZ2F0ZSkKLSAgICAgICAgOiBD
b250ZW50TGF5ZXJDaHJvbWl1bShkZWxlZ2F0ZSkKKyAgICBleHBsaWNpdCBDb250ZW50TGF5ZXJD
aHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZyhDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCogY2xp
ZW50KQorICAgICAgICA6IENvbnRlbnRMYXllckNocm9taXVtKGNsaWVudCkKICAgICAgICAgLCBt
X3BhaW50Q29udGVudHNDb3VudCgwKQogICAgIHsKICAgICAgICAgc2V0QW5jaG9yUG9pbnQoRmxv
YXRQb2ludCgwLCAwKSk7CkBAIC0xMjczLDcgKzEyNzQsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVI
b3N0VGVzdE9wYWNpdHlDaGFuZ2UsIHJ1bk11bHRpVGhyZWFkKQogICAgIHJ1blRlc3QodHJ1ZSk7
CiB9CiAKLWNsYXNzIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBDb250ZW50TGF5
ZXJEZWxlZ2F0ZSB7CitjbGFzcyBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgOiBwdWJs
aWMgQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgewogcHVibGljOgogICAgIGJvb2wgZHJhd3ND
b250ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIE1PQ0tfQ09OU1RfTUVUSE9EMChw
cmVzZXJ2ZXMzRCwgYm9vbCgpKTsKQEAgLTEyODUsOCArMTI4Niw4IEBAIGNsYXNzIENDTGF5ZXJU
cmVlSG9zdFRlc3REZXZpY2VTY2FsZUZhY3RvclNjYWxlc1ZpZXdwb3J0QW5kTGF5ZXJzIDogcHVi
bGljIENDTGF5CiBwdWJsaWM6CiAKICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0RGV2aWNlU2NhbGVG
YWN0b3JTY2FsZXNWaWV3cG9ydEFuZExheWVycygpCi0gICAgICAgIDogbV9yb290TGF5ZXIoQ29u
dGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSgmbV9kZWxlZ2F0ZSkpCi0gICAgICAgICwgbV9jaGls
ZExheWVyKENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGUoJm1fZGVsZWdhdGUpKQorICAgICAg
ICA6IG1fcm9vdExheWVyKENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGUoJm1fY2xpZW50KSkK
KyAgICAgICAgLCBtX2NoaWxkTGF5ZXIoQ29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSgmbV9j
bGllbnQpKQogICAgIHsKICAgICB9CiAKQEAgLTEzNzYsNyArMTM3Nyw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIG1fZGVsZWdhdGU7
CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IG1fY2xpZW50OwogICAgIFJlZlB0
cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4gbV9yb290TGF5ZXI7CiAgICAgUmVmUHRyPENvbnRlbnRM
YXllckNocm9taXVtPiBtX2NoaWxkTGF5ZXI7CiB9OwpAQCAtMTM5MCw3ICsxMzkxLDcgQEAgVEVT
VF9GKENDTGF5ZXJUcmVlSG9zdFRlc3REZXZpY2VTY2FsZUZhY3RvclNjYWxlc1ZpZXdwb3J0QW5k
TGF5ZXJzLCBydW5NdWx0aVRocmUKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RBdG9taWNDb21t
aXQgOiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCB7CiBwdWJsaWM6CiAgICAgQ0NMYXllclRy
ZWVIb3N0VGVzdEF0b21pY0NvbW1pdCgpCi0gICAgICAgIDogbV9sYXllcihDb250ZW50TGF5ZXJD
aHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZzo6Y3JlYXRlKCZtX2RlbGVnYXRlKSkKKyAgICAgICAg
OiBtX2xheWVyKENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpjcmVhdGUo
Jm1fY2xpZW50KSkKICAgICB7CiAgICAgICAgIC8vIE1ha2Ugc3VyZSBwYXJ0aWFsIHRleHR1cmUg
dXBkYXRlcyBhcmUgdHVybmVkIG9mZi4KICAgICAgICAgbV9zZXR0aW5ncy5tYXhQYXJ0aWFsVGV4
dHVyZVVwZGF0ZXMgPSAwOwpAQCAtMTQ2NCw3ICsxNDY1LDcgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBNb2NrQ29udGVudExheWVyRGVsZWdhdGUgbV9kZWxlZ2F0ZTsKKyAgICBN
b2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgbV9jbGllbnQ7CiAgICAgUmVmUHRyPENvbnRl
bnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nPiBtX2xheWVyOwogfTsKIApAQCAtMTQ4
OCw4ICsxNDg5LDggQEAgc3RhdGljIHZvaWQgc2V0TGF5ZXJQcm9wZXJ0aWVzRm9yVGVzdGluZyhM
YXllckNocm9taXVtKiBsYXllciwgTGF5ZXJDaHJvbWl1bSogcGEKIGNsYXNzIENDTGF5ZXJUcmVl
SG9zdFRlc3RBdG9taWNDb21taXRXaXRoUGFydGlhbFVwZGF0ZSA6IHB1YmxpYyBDQ0xheWVyVHJl
ZUhvc3RUZXN0IHsKIHB1YmxpYzoKICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0QXRvbWljQ29tbWl0
V2l0aFBhcnRpYWxVcGRhdGUoKQotICAgICAgICA6IG1fcGFyZW50KENvbnRlbnRMYXllckNocm9t
aXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpjcmVhdGUoJm1fZGVsZWdhdGUpKQotICAgICAgICAsIG1f
Y2hpbGQoQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNyZWF0ZSgmbV9k
ZWxlZ2F0ZSkpCisgICAgICAgIDogbV9wYXJlbnQoQ29udGVudExheWVyQ2hyb21pdW1XaXRoVXBk
YXRlVHJhY2tpbmc6OmNyZWF0ZSgmbV9jbGllbnQpKQorICAgICAgICAsIG1fY2hpbGQoQ29udGVu
dExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc6OmNyZWF0ZSgmbV9jbGllbnQpKQogICAg
ICAgICAsIG1fbnVtQ29tbWl0cygwKQogICAgIHsKICAgICAgICAgLy8gQWxsb3cgb25lIHBhcnRp
YWwgdGV4dHVyZSB1cGRhdGUuCkBAIC0xNjExLDcgKzE2MTIsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotICAgIE1vY2tDb250ZW50TGF5ZXJEZWxlZ2F0ZSBtX2RlbGVnYXRlOworICAg
IE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBtX2NsaWVudDsKICAgICBSZWZQdHI8Q29u
dGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tpbmc+IG1fcGFyZW50OwogICAgIFJlZlB0
cjxDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZz4gbV9jaGlsZDsKICAgICBp
bnQgbV9udW1Db21taXRzOwpAQCAtMjI5MCw3ICsyMjkxLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBjb25zdCBJbnRTaXplIG1fc2Nyb2xsQW1vdW50OwogICAgIEludFNpemUgbV9yZXBvcnRl
ZFNjcm9sbEFtb3VudDsKLSAgICBNb2NrQ29udGVudExheWVyRGVsZWdhdGUgbV9tb2NrRGVsZWdh
dGU7CisgICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IG1fbW9ja0RlbGVnYXRlOwog
ICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBtX2NoaWxkTGF5ZXI7CiAgICAgUmVmUHRyPExheWVy
Q2hyb21pdW0+IG1fcm9vdFNjcm9sbExheWVyOwogfTsKQEAgLTIzOTIsNyArMjM5Myw3IEBAIHB1
YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIG1f
bW9ja0RlbGVnYXRlOworICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBtX21vY2tE
ZWxlZ2F0ZTsKICAgICBSZWZQdHI8Q29udGVudExheWVyQ2hyb21pdW1XaXRoVXBkYXRlVHJhY2tp
bmc+IG1fcm9vdExheWVyOwogICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRh
dGVUcmFja2luZz4gbV9zdXJmYWNlTGF5ZXIxOwogICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJv
bWl1bVdpdGhVcGRhdGVUcmFja2luZz4gbV9yZXBsaWNhTGF5ZXIxOwpAQCAtMjY0MCw3ICsyNjQx
LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBNb2NrQ29udGVudExheWVyRGVs
ZWdhdGUgbV9kZWxlZ2F0ZTsKKyAgICBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQgbV9j
bGllbnQ7CiAgICAgUmVmUHRyPEV2aWN0aW9uVGVzdExheWVyPiBtX2xheWVyOwogICAgIENDTGF5
ZXJUcmVlSG9zdEltcGwqIG1faW1wbEZvckV2aWN0VGV4dHVyZXM7CiAgICAgaW50IG1fbnVtQ29t
bWl0czsKQEAgLTI3MzYsNyArMjczNyw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0g
ICAgTW9ja0NvbnRlbnRMYXllckRlbGVnYXRlIG1fZGVsZWdhdGU7CisgICAgTW9ja0NvbnRlbnRM
YXllckNocm9taXVtQ2xpZW50IG1fY2xpZW50OwogICAgIFJlZlB0cjxFdmljdGlvblRlc3RMYXll
cj4gbV9sYXllcjsKICAgICBDQ0xheWVyVHJlZUhvc3RJbXBsKiBtX2ltcGxGb3JFdmljdFRleHR1
cmVzOwogICAgIGludCBtX251bUNvbW1pdHM7CkBAIC0yNzgzLDExICsyNzg0LDExIEBAIHByaXZh
dGU6CiBjbGFzcyBDQ0xheWVyVHJlZUhvc3RUZXN0TG9zdENvbnRleHRXaGlsZVVwZGF0aW5nUmVz
b3VyY2VzIDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3QgewogcHVibGljOgogICAgIENDTGF5
ZXJUcmVlSG9zdFRlc3RMb3N0Q29udGV4dFdoaWxlVXBkYXRpbmdSZXNvdXJjZXMoKQotICAgICAg
ICA6IG1fcGFyZW50KENvbnRlbnRMYXllckNocm9taXVtV2l0aFVwZGF0ZVRyYWNraW5nOjpjcmVh
dGUoJm1fZGVsZWdhdGUpKQorICAgICAgICA6IG1fcGFyZW50KENvbnRlbnRMYXllckNocm9taXVt
V2l0aFVwZGF0ZVRyYWNraW5nOjpjcmVhdGUoJm1fY2xpZW50KSkKICAgICAgICAgLCBtX251bUNo
aWxkcmVuKDUwKQogICAgIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX251bUNoaWxk
cmVuOyBpKyspCi0gICAgICAgICAgICBtX2NoaWxkcmVuLmFwcGVuZChDb250ZW50TGF5ZXJDaHJv
bWl1bVdpdGhVcGRhdGVUcmFja2luZzo6Y3JlYXRlKCZtX2RlbGVnYXRlKSk7CisgICAgICAgICAg
ICBtX2NoaWxkcmVuLmFwcGVuZChDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2lu
Zzo6Y3JlYXRlKCZtX2NsaWVudCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxX
ZWJLaXQ6OldlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlPiBjcmVhdGVPdXRwdXRTdXJmYWNlKCkK
QEAgLTI4MjUsNyArMjgyNiw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgTW9j
a0NvbnRlbnRMYXllckRlbGVnYXRlIG1fZGVsZWdhdGU7CisgICAgTW9ja0NvbnRlbnRMYXllckNo
cm9taXVtQ2xpZW50IG1fY2xpZW50OwogICAgIFJlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bVdp
dGhVcGRhdGVUcmFja2luZz4gbV9wYXJlbnQ7CiAgICAgaW50IG1fbnVtQ2hpbGRyZW47CiAgICAg
VmVjdG9yPFJlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bVdpdGhVcGRhdGVUcmFja2luZz4gPiBt
X2NoaWxkcmVuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Db250
ZW50TGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9D
b250ZW50TGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGZkMzVlMjIyNDVkZWNlODQxOWJjY2Y2
YzA0MGRkNTczMzJjNGE5OWIuLjA1Y2Q0Yzc0OWEzMmM0NmFhOWRjMzIwNzcyNmQ4YWFhYTgyMjY0
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ29udGVudExheWVy
Q2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NvbnRl
bnRMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJCaXRt
YXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVUZXN0
Q29tbW9uLmgiCiAjaW5jbHVkZSAiQ0NSZW5kZXJpbmdTdGF0cy5oIgorI2luY2x1ZGUgIkNvbnRl
bnRMYXllckNocm9taXVtQ2xpZW50LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAj
aW5jbHVkZSAiT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuaCIKICNpbmNs
dWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKQEAgLTY5LDkgKzcwLDkgQEAgcHJpdmF0
ZToKICAgICBJbnRSZWN0IG1fY29udGVudFJlY3Q7CiB9OwogCi1jbGFzcyBNb2NrQ29udGVudExh
eWVyRGVsZWdhdGUgOiBwdWJsaWMgQ29udGVudExheWVyRGVsZWdhdGUgeworY2xhc3MgTW9ja0Nv
bnRlbnRMYXllckNocm9taXVtQ2xpZW50IDogcHVibGljIENvbnRlbnRMYXllckNocm9taXVtQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBNb2NrQ29udGVudExheWVyRGVsZWdhdGUoT3Bh
cXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUqIGNsaWVudCkKKyAgICBleHBsaWNp
dCBNb2NrQ29udGVudExheWVyQ2hyb21pdW1DbGllbnQoT3BhcXVlUmVjdFRyYWNraW5nQ29udGVu
dExheWVyRGVsZWdhdGUqIGNsaWVudCkKICAgICAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAg
ewogICAgIH0KQEAgLTk4LDggKzk5LDggQEAgVEVTVChDb250ZW50TGF5ZXJDaHJvbWl1bVRlc3Qs
IENvbnRlbnRMYXllclBhaW50ZXJXaXRoRGV2aWNlU2NhbGUpCiAgICAgT3duUHRyPFNrQ2FudmFz
PiBjYW52YXMgPSBhZG9wdFB0cihza2lhOjpDcmVhdGVCaXRtYXBDYW52YXMoY29udGVudFJlY3Qu
d2lkdGgoKSwgY29udGVudFJlY3QuaGVpZ2h0KCksIGZhbHNlKSk7CiAgICAgT3BhcXVlUmVjdERy
YXdpbmdHcmFwaGljc0NvbnRleHRQYWludGVyIHBhaW50ZXIob3BhcXVlUmVjdEluTGF5ZXJTcGFj
ZSwgY29udGVudFJlY3QpOwogICAgIE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVn
YXRlIG9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKCZwYWludGVyKTsKLSAg
ICBNb2NrQ29udGVudExheWVyRGVsZWdhdGUgZGVsZWdhdGUoJm9wYXF1ZVJlY3RUcmFja2luZ0Nv
bnRlbnRMYXllckRlbGVnYXRlKTsKLSAgICBSZWZQdHI8Qml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJl
VXBkYXRlcj4gdXBkYXRlciA9IEJpdG1hcENhbnZhc0xheWVyVGV4dHVyZVVwZGF0ZXI6OmNyZWF0
ZShDb250ZW50TGF5ZXJQYWludGVyOjpjcmVhdGUoJmRlbGVnYXRlKSk7CisgICAgTW9ja0NvbnRl
bnRMYXllckNocm9taXVtQ2xpZW50IGNsaWVudCgmb3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExh
eWVyRGVsZWdhdGUpOworICAgIFJlZlB0cjxCaXRtYXBDYW52YXNMYXllclRleHR1cmVVcGRhdGVy
PiB1cGRhdGVyID0gQml0bWFwQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlcjo6Y3JlYXRlKENvbnRl
bnRMYXllclBhaW50ZXI6OmNyZWF0ZSgmY2xpZW50KSk7CiAKICAgICBJbnRSZWN0IHJlc3VsdGlu
Z09wYXF1ZVJlY3Q7CiAgICAgQ0NSZW5kZXJpbmdTdGF0cyBzdGF0czsK
</data>
<flag name="review"
          id="172467"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>