<?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>96146</bug_id>
          
          <creation_ts>2012-09-07 14:02:59 -0700</creation_ts>
          <short_desc>REGRESSION(r127911): Patch breaks build with clang (Requested by rbuis on #webkit).</short_desc>
          <delta_ts>2012-09-07 14:13:53 -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>
          
          <blocked>94725</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>anilsson</cc>
    
    <cc>jamesr</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>714947</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 14:02:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/127911 broke the build:
Patch breaks build with clang (Requested by rbuis on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714949</commentid>
    <comment_count>1</comment_count>
      <attachid>162861</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-07 14:03:42 -0700</bug_when>
    <thetext>Created attachment 162861
ROLLOUT of r127911

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714961</commentid>
    <comment_count>2</comment_count>
      <attachid>162861</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-07 14:13:51 -0700</bug_when>
    <thetext>Comment on attachment 162861
ROLLOUT of r127911

Clearing flags on attachment: 162861

Committed r127918: &lt;http://trac.webkit.org/changeset/127918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714963</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-07 14:13:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162861</attachid>
            <date>2012-09-07 14:03:42 -0700</date>
            <delta_ts>2012-09-07 14:13:51 -0700</delta_ts>
            <desc>ROLLOUT of r127911</desc>
            <filename>bug-96146-20120907211004.patch</filename>
            <type>text/plain</type>
            <size>41304</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3OTE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiMzYzZTM5MTY1MmFl
MTI3OWZjZWJjZTRiNGIzZDNlNWJhMzc3Yy4uMjJmZmVjYzQ3YzExM2M0ODQwYTgzMGZiYzc0ZTQ2
MDBjZmJiMGQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA5LTA3ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTI3OTExLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMjc5MTEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk2MTQ2CisKKyAgICAgICAgUGF0Y2ggYnJlYWtzIGJ1aWxkIHdpdGggY2xhbmcg
KFJlcXVlc3RlZCBieSByYnVpcyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0OjpnZXRWYWxpZGF0ZWRQcm9ncmFtKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZXNoR2VuZXJhdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lc2hHZW5lcmF0b3I6Ok1lc2hHZW5lcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
TWVzaEdlbmVyYXRvcjo6dmVydGljZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVzaEdlbmVyYXRv
cjo6aW5kaWNlcyk6CisgICAgICAgIChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjpwb2ludHMpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVzaEdlbmVyYXRvcjo6cG9pbnRzQ291bnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVzaEdlbmVyYXRvcjo6dGlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVzaEdl
bmVyYXRvcjo6dGlsZXNDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjpp
bmRpY2VzQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVzaEdlbmVyYXRvcjo6ZmxvYXRzUGVy
VmVydGV4KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc2hHZW5lcmF0b3I6OnZlcnRpY2VzQ291bnQp
OgorICAgICAgICAoV2ViQ29yZTo6TWVzaEdlbmVyYXRvcjo6YWRkVGlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjphZGRBdHRhY2hlZE1lc2hJbmRleCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjpnZW5lcmF0ZUF0dGFjaGVkTWVzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjphZGREZXRhY2hlZE1lc2hWZXJ0ZXhBbmRJbmRleCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjpnZW5lcmF0ZURldGFjaGVkTWVzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjphZGRQb3NpdGlvbkF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjphZGRUZXhDb29yZEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjphZGRNZXNoQ29vcmRBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVzaEdlbmVyYXRvcjo6YWRkVHJpYW5nbGVDb29yZEF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZXNoR2VuZXJhdG9yOjphZGRBdHRhY2hlZE1lc2hWZXJ0
ZXhBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc2hHZW5lcmF0b3I6OmFkZERldGFj
aGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVzaEdlbmVyYXRv
cjo6ZHVtcEJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyTWVzaDo6Q3Vz
dG9tRmlsdGVyTWVzaCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZhbGlkYXRlZFBy
b2dyYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3Jh
bTo6Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpDdXN0
b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpjb21waWxlZFByb2dyYW0pOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6fkN1c3RvbUZpbHRlclZhbGlkYXRl
ZFByb2dyYW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmls
dGVyVmFsaWRhdGVkUHJvZ3JhbS5oOgorICAgICAgICAoQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJv
Z3JhbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9ibGFja2JlcnJ5L0N1
c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW1CbGFja0JlcnJ5LmNwcDogUmVtb3ZlZC4KKwogMjAx
Mi0wOS0wNyAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBS
ZW5kZXJCb3g6OmF2YWlsYWJsZUhlaWdodCB0byBzdWJ0cmFjdCBzY3JvbGxiYXJzIGluIHRoZSBy
aWdodCBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDY4N2UyZTM2NDhh
MjQ3YmU2MmNjNDZmY2ExOGNiMjBkZDIzNDVkMzYuLjI1MmE2Y2Y5YThjNWI3ODI2MmNkZGZjOTQy
NWEzMjIwMDFmMDU3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDI1Miw4
ICs0MjUyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJN
ZXNoLmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyTWVzaEdlbmVyYXRvci5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck51bWJlclBhcmFtZXRlci5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
ck9wZXJhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZWRiZTJmNDM3YjYx
NTBjMzlkMGY4NWY3OTc0ZjBkYWYzNTA3OTA5Mi4uNzhlMDMwOGQwNTM2YzY0NGQ3YzNkMzZkMTlm
YWRmM2M4MDFiOTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0yMDQ0LDcgKzIwNDQsNiBAQCBIRUFERVJT
ICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQu
aCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoLmggXAot
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5o
IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck51bWJlclBhcmFt
ZXRlci5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckNvbXBp
bGVkUHJvZ3JhbS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
ck9wZXJhdGlvbi5oIFwKQEAgLTM0NDcsNyArMzQ0Niw2IEBAIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9GSUxURVJTPTEpIHsKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJQcm9ncmFtLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
Q3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5jcHAgXAotICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwIFwKICAgICAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcCBc
CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNw
cCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IGI0ZGM2NTZhYzUwYWNkODg0NjBmMjI5NzMzNWE1MmVmMWZjNWQyYTMu
LmUwYWVlYWI2YjZhYzNmY2JmMGVlZjcxNzkxM2UzZTc0Y2JmYjgyNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTQ5MTIsNyArNDkxMiw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0LmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5oJywK
LSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2hH
ZW5lcmF0b3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oJywKQEAgLTQ5MjYs
NyArNDkyNSw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5jcHAnLAotICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVy
YXRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyVHJhbnNmb3JtUGFyYW1ldGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDdlMmYwYjBiODAxMDUyZDYz
ZDgxY2M2N2UzNzJiNGNkYTNlZWU5ZjkuLmZkMmI1NjJhZjA1NTlhMzYzZTViMTIwOGNlYjViNTY4
NTkxYjE2YTMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0zMTg4NSwxNCArMzE4ODUsNiBAQAogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJ
CTxGaWxlCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNc
Q3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5jcHAiCi0JCQkJCQk+Ci0JCQkJCTwvRmlsZT4KLQkJ
CQkJPEZpbGUKLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVy
c1xDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmgiCi0JCQkJCQk+Ci0JCQkJCTwvRmlsZT4KLQkJ
CQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVy
c1xDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDg0ZmNhZDgxYzJmYWYyYmI0MjNkZTM2MWE5NGQyOGQ0ZmJhY2E0NmQuLmU0ZGNmNTAyZTc2
MGY2N2MyZmM2YTljOTNmYTViMGM2NTQ1MWMzNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5ODcsOCArMTk4Nyw2IEBACiAJ
CTdCRDExN0VCMTVCOERCMDEwMEM5NzRBMyAvKiBET01UcmFuc2FjdGlvblN0ZXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JEMTE3RTkxNUI4REIw
MTAwQzk3NEEzIC8qIERPTVRyYW5zYWN0aW9uU3RlcC5jcHAgKi87IH07CiAJCTdCRDExN0VDMTVC
OERCMDEwMEM5NzRBMyAvKiBET01UcmFuc2FjdGlvblN0ZXAuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRDExN0VBMTVCOERCMDEwMEM5NzRBMyAvKiBE
T01UcmFuc2FjdGlvblN0ZXAuaCAqLzsgfTsKIAkJN0M1MjJENEIxNUI0NzdFODAwOUI3Qzk1IC8q
IEluc3BlY3Rvck92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M1MjJENDkxNUI0NzdFODAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXku
Y3BwICovOyB9OwotCQk3RTEyRTkwRjE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVz
aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0UxMkU5MEQxNUZBNUQzQTAwNUU0MTI2IC8qIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3Iu
aCAqLzsgfTsKLQkJN0UxMkU5MTAxNUZBNUQzQTAwNUU0MTI2IC8qIEN1c3RvbUZpbHRlck1lc2hH
ZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0UxMkU5MEUxNUZBNUQzQTAwNUU0MTI2IC8qIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3Iu
Y3BwICovOyB9OwogCQk3RTMzQ0QwMTEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UzM0NEMDAx
MjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RTM3RUYyRTEzMzkyMDg4MDBCMjkyNTAgLyog
U3VicmVzb3VyY2VMb2FkZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3RTM3RUYyRDEzMzkyMDg4MDBCMjkyNTAgLyogU3VicmVzb3VyY2VMb2Fk
ZXJDRi5jcHAgKi87IH07CiAJCTdFOTlBRjUxMEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1
c0FsbG93ZWRJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dl
ZEluZGljYXRvci5jcHAgKi87IH07CkBAIC05MTk0LDggKzkxOTIsNiBAQAogCQk3QzUyMkQ0OTE1
QjQ3N0U4MDA5QjdDOTUgLyogSW5zcGVjdG9yT3ZlcmxheS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JPdmVybGF5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0M1MjJENEExNUI0NzhCMjAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJs
YXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yT3ZlcmxheS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzYwMTI4MDYwMDc4QkI3MEUzNjdBOTUg
LyogRE5TUmVzb2x2ZVF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEROU1Jlc29sdmVRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdF
MTJFOTBEMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3Iu
aDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk3RTEyRTkwRTE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmls
dGVyTWVzaEdlbmVyYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmls
dGVyTWVzaEdlbmVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFMzND
RDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFB1cmdlUHJpb3JpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0UzN0VGMkQxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3VicmVzb3VyY2VMb2FkZXJD
Ri5jcHA7IHBhdGggPSBjZi9TdWJyZXNvdXJjZUxvYWRlckNGLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxs
b3dlZEluZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
aW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTgxNTQsOCArMTgxNTAsNiBAQAogCQlBNzVFOEI3RjBFMURFMkIwMDA3RjI0ODEgLyog
ZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
N0UxMkU5MEQxNUZBNUQzQTAwNUU0MTI2IC8qIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuaCAq
LywKLQkJCQk3RTEyRTkwRTE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVy
YXRvci5jcHAgKi8sCiAJCQkJNTA5RUMxMDgxNUU4NDhDQTAwRTgyNTgxIC8qIEN1c3RvbUZpbHRl
clRyYW5zZm9ybVBhcmFtZXRlci5oICovLAogCQkJCTQ5RUNFQjVDMTQ5OTc5MEQwMENERDNBNCAv
KiBhcm0gKi8sCiAJCQkJNTBENDA2MEYxNDdENDlERTAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlckNv
bXBpbGVkUHJvZ3JhbS5jcHAgKi8sCkBAIC0yNTUxNyw3ICsyNTUxMSw2IEBACiAJCQkJNzZGMkUy
RUMxNUY3NENFRjAwNUZGNjY0IC8qIFJlbmRlckRpYWxvZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY2MDVBRUQxNUY5NDg0ODAwNERGMEMwIC8qIFNjcm9sbGluZ0NvbnN0cmFpbnRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0RjM3N0ZGNTE1RkEzNTZBMDBFNUQ2MEQgLyogV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0UxMkU5MEYxNUZBNUQzQTAwNUU0
MTI2IC8qIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg2
MTAsNyArMjg2MDMsNiBAQAogCQkJCUJDRDhBNUYwMTVGNTZGMkMwMDk4RDA3MSAvKiBUZXh0QnJl
YWtJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NkYyRTJFQjE1Rjc0Q0VGMDA1RkY2
NjQgLyogUmVuZGVyRGlhbG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNjA1QUVDMTVGOTQ4
NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk3RTEyRTkxMDE1RkE1RDNBMDA1RTQxMjYgLyogQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlckdsb2JhbENvbnRleHQu
Y3BwCmluZGV4IDU4Mjg0NmU3ZjkzYmMyNGM0NDg0MmNjMzY3ZWQ3OWExYzYzN2JlNjEuLmUwMTQ0
YjkwNTZiMDE5ZGFkNDBlNWEyNGI0OWI5MGFkYWMyNTFkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0LmNwcApAQCAtODcsNiArODcsOSBAQCB2b2lkIEN1c3RvbUZp
bHRlckdsb2JhbENvbnRleHQ6OnByZXBhcmVDb250ZXh0SWZOZWVkZWQoSG9zdFdpbmRvdyogaG9z
dFdpbmRvdykKIAogUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtPiBDdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0OjpnZXRWYWxpZGF0ZWRQcm9ncmFtKGNvbnN0IEN1c3RvbUZp
bHRlclByb2dyYW1JbmZvJiBwcm9ncmFtSW5mbykKIHsKKyAgICAvLyBDaGVjayB0aGF0IHRoZSBj
b250ZXh0IGlzIGFscmVhZHkgcHJlcGFyZWQuCisgICAgQVNTRVJUKG1fY29udGV4dCk7CisKICAg
ICBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtc01hcDo6aXRlcmF0b3IgaXRlciA9IG1fcHJv
Z3JhbXMuZmluZChwcm9ncmFtSW5mbyk7CiAgICAgaWYgKGl0ZXIgIT0gbV9wcm9ncmFtcy5lbmQo
KSkKICAgICAgICAgcmV0dXJuIGl0ZXItPnNlY29uZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guY3Bw
CmluZGV4IDAyNzhhYmFkMDI2YjVhMGQ5MTlmYzVjMjMyNGFlZjJiZjUwMDZhMGUuLmUwMTRmMGEw
NjQ0MjY3YjNjNTNhNzcxYzMzYjkyZWMwNTQ3OWUwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyTWVzaC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNo
LmNwcApAQCAtMzEsMTIgKzMxLDIwOSBAQAogCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKSAmJiBV
U0UoM0RfR1JBUEhJQ1MpCiAjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyTWVzaC5oIgotI2luY2x1ZGUg
IkN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQz
RC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCisjaWZuZGVmIE5ERUJVRworLy8gVXNl
ICJjYWxsICdXZWJDb3JlOjpzX2R1bXBDdXN0b21GaWx0ZXJNZXNoQnVmZmVycycgPSAxIiBpbiBH
REIgdG8gYWN0aXZhdGUgcHJpbnRpbmcgb2YgdGhlIG1lc2ggYnVmZmVycy4KK3N0YXRpYyBib29s
IHNfZHVtcEN1c3RvbUZpbHRlck1lc2hCdWZmZXJzID0gZmFsc2U7CisjZW5kaWYKKworY2xhc3Mg
TWVzaEdlbmVyYXRvciB7CitwdWJsaWM6CisgICAgLy8gTGluZXMgYW5kIGNvbHVtbnMgYXJlIHRo
ZSB2YWx1ZXMgcGFzc2VkIGluIENTUy4gVGhlIHJlc3VsdCBpcyB2ZXJ0ZXggbWVzaCB0aGF0IGhh
cyAncm93cycgbnVtYmVycyBvZiByb3dzCisgICAgLy8gYW5kICdjb2x1bW5zJyBudW1iZXIgb2Yg
Y29sdW1ucyB3aXRoIGEgdG90YWwgb2YgJ3Jvd3MgKyAxJyAqICdjb2x1bW5zICsgMScgdmVydGlj
ZXMuCisgICAgLy8gTWVzaEJveCBpcyB0aGUgZmlsdGVyZWQgYXJlYSBjYWxjdWxhdGVkIGRlZmlu
ZWQgdXNpbmcgdGhlIGJvcmRlci1ib3gsIHBhZGRpbmctYm94LCBjb250ZW50LWJveCBvciBmaWx0
ZXItYm94IAorICAgIC8vIGF0dHJpYnV0ZXMuIEEgdmFsdWUgb2YgKDAsIDAsIDEsIDEpIHdpbGwg
Y292ZXIgdGhlIGVudGlyZSBvdXRwdXQgc3VyZmFjZS4KKyAgICBNZXNoR2VuZXJhdG9yKHVuc2ln
bmVkIGNvbHVtbnMsIHVuc2lnbmVkIHJvd3MsIGNvbnN0IEZsb2F0UmVjdCYgbWVzaEJveCwgQ3Vz
dG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoVHlwZSBtZXNoVHlwZSkKKyAgICAgICAgOiBtX21lc2hU
eXBlKG1lc2hUeXBlKQorICAgICAgICAsIG1fcG9pbnRzKGNvbHVtbnMgKyAxLCByb3dzICsgMSkK
KyAgICAgICAgLCBtX3RpbGVzKGNvbHVtbnMsIHJvd3MpCisgICAgICAgICwgbV90aWxlU2l6ZUlu
UGl4ZWxzKG1lc2hCb3gud2lkdGgoKSAvIG1fdGlsZXMud2lkdGgoKSwgbWVzaEJveC5oZWlnaHQo
KSAvIG1fdGlsZXMuaGVpZ2h0KCkpCisgICAgICAgICwgbV90aWxlU2l6ZUluRGV2aWNlU3BhY2Uo
MS4wZiAvIG1fdGlsZXMud2lkdGgoKSwgMS4wZiAvIG1fdGlsZXMuaGVpZ2h0KCkpCisgICAgICAg
ICwgbV9tZXNoQm94KG1lc2hCb3gpCisgICAgeworICAgICAgICAvLyBCdWlsZCB0aGUgdHdvIGJ1
ZmZlcnMgbmVlZGVkIHRvIGRyYXcgdHJpYW5nbGVzOgorICAgICAgICAvLyAqIG1fdmVydGljZXMg
aGFzIGEgbnVtYmVyIG9mIGZsb2F0IGF0dHJpYnV0ZXMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byB0
aGUgdmVydGV4IHNoYWRlcgorICAgICAgICAvLyBmb3IgZWFjaCBjb21wdXRlZCB2ZXJ0ZXguIFRo
aXMgbnVtYmVyIGlzIGNhbGN1bGF0ZWQgaW4gZmxvYXRzUGVyVmVydGV4KCkgYmFzZWQgb24gdGhl
IG1lc2hUeXBlLgorICAgICAgICAvLyAqIG1faW5kaWNlcyBpcyBhIGJ1ZmZlciB0aGF0IHdpbGwg
aGF2ZSAzIGluZGljZXMgcGVyIHRyaWFuZ2xlLiBFYWNoIGluZGV4IHdpbGwgcG9pbnQgaW5zaWRl
CisgICAgICAgIC8vIHRoZSBtX3ZlcnRpY2VzIGJ1ZmZlci4KKyAgICAgICAgbV92ZXJ0aWNlcy5y
ZXNlcnZlQ2FwYWNpdHkodmVydGljZXNDb3VudCgpICogZmxvYXRzUGVyVmVydGV4KCkpOworICAg
ICAgICBtX2luZGljZXMucmVzZXJ2ZUNhcGFjaXR5KGluZGljZXNDb3VudCgpKTsKKyAgICAgICAg
CisgICAgICAgIC8vIEJhc2VkIG9uIHRoZSBtZXNoVHlwZSB0aGVyZSBjYW4gYmUgdHdvIHR5cGVz
IG9mIG1lc2hlcy4KKyAgICAgICAgLy8gKiBhdHRhY2hlZDogZWFjaCB0cmlhbmdsZSB1c2VzIHZl
cnRpY2VzIGZyb20gdGhlIG5laWdoYm9yIHRyaWFuZ2xlcy4gVGhpcyBpcyB1c2VmdWwgdG8gc2F2
ZSBzb21lIEdQVSBtZW1vcnkKKyAgICAgICAgLy8gd2hlbiB0aGVyZSdzIG5vIG5lZWQgdG8gZXhw
bG9kZSB0aGUgdGlsZXMuCisgICAgICAgIC8vICogZGV0YWNoZWQ6IGVhY2ggdHJpYW5nbGUgaGFz
IGl0cyBvd24gdmVydGljZXMuIFRoaXMgbWVhbnMgZWFjaCB0cmlhbmdsZSBjYW4gYmUgbW92ZWQg
aW5kZXBlbmRlbnRseSBhbmQgYSB2ZWMzCisgICAgICAgIC8vIGF0dHJpYnV0ZSBpcyBwYXNzZWQs
IHNvIHRoYXQgZWFjaCB2ZXJ0ZXggY2FuIGJlIHVuaXF1ZWx5IGlkZW50aWZpZWQuCisgICAgICAg
IGlmIChtX21lc2hUeXBlID09IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6QVRUQUNIRUQpCisgICAg
ICAgICAgICBnZW5lcmF0ZUF0dGFjaGVkTWVzaCgpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBnZW5lcmF0ZURldGFjaGVkTWVzaCgpOworICAgICAgICAKKyNpZm5kZWYgTkRFQlVHCisgICAg
ICAgIGlmIChzX2R1bXBDdXN0b21GaWx0ZXJNZXNoQnVmZmVycykKKyAgICAgICAgICAgIGR1bXBC
dWZmZXJzKCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBjb25zdCBWZWN0b3I8ZmxvYXQ+JiB2ZXJ0
aWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljZXM7IH0KKyAgICBjb25zdCBWZWN0b3I8dWlu
dDE2X3Q+JiBpbmRpY2VzKCkgY29uc3QgeyByZXR1cm4gbV9pbmRpY2VzOyB9CisKKyAgICBjb25z
dCBJbnRTaXplJiBwb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3BvaW50czsgfQorICAgIHVuc2ln
bmVkIHBvaW50c0NvdW50KCkgY29uc3QgeyByZXR1cm4gbV9wb2ludHMud2lkdGgoKSAqIG1fcG9p
bnRzLmhlaWdodCgpOyB9CisgICAgCisgICAgY29uc3QgSW50U2l6ZSYgdGlsZXMoKSBjb25zdCB7
IHJldHVybiBtX3RpbGVzOyB9CisgICAgdW5zaWduZWQgdGlsZXNDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fdGlsZXMud2lkdGgoKSAqIG1fdGlsZXMuaGVpZ2h0KCk7IH0KKyAgICAKKyAgICB1bnNp
Z25lZCBpbmRpY2VzQ291bnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
dHJpYW5nbGVzUGVyVGlsZSA9IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGluZGljZXNQZXJU
cmlhbmdsZSA9IDM7CisgICAgICAgIHJldHVybiB0aWxlc0NvdW50KCkgKiB0cmlhbmdsZXNQZXJU
aWxlICogaW5kaWNlc1BlclRyaWFuZ2xlOworICAgIH0KKyAgICAKKyAgICB1bnNpZ25lZCBmbG9h
dHNQZXJWZXJ0ZXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IEF0dGFjaGVkTWVzaFZlcnRleFNpemUgPSA0ICsgLy8gdmVjNCBhX3Bvc2l0aW9uCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiArIC8vIHZl
YzIgYV90ZXhDb29yZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDI7IC8vIHZlYzIgYV9tZXNoQ29vcmQKKworICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgRGV0YWNoZWRNZXNoVmVydGV4U2l6ZSA9IEF0dGFjaGVkTWVzaFZlcnRleFNp
emUgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDM7IC8vIHZlYzMgYV90cmlhbmdsZUNvb3JkCisKKyAgICAgICAgcmV0dXJuIG1fbWVzaFR5
cGUgPT0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpBVFRBQ0hFRCA/IEF0dGFjaGVkTWVzaFZlcnRl
eFNpemUgOiBEZXRhY2hlZE1lc2hWZXJ0ZXhTaXplOworICAgIH0KKyAgICAKKyAgICB1bnNpZ25l
ZCB2ZXJ0aWNlc0NvdW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX21lc2hUeXBl
ID09IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6QVRUQUNIRUQgPyBwb2ludHNDb3VudCgpIDogaW5k
aWNlc0NvdW50KCk7CisgICAgfQorCitwcml2YXRlOgorICAgIHR5cGVkZWYgdm9pZCAoTWVzaEdl
bmVyYXRvcjo6KkFkZFRyaWFuZ2xlVmVydGV4RnVuY3Rpb24pKGludCBxdWFkWCwgaW50IHF1YWRZ
LCBpbnQgdHJpYW5nbGVYLCBpbnQgdHJpYW5nbGVZLCBpbnQgdHJpYW5nbGUpOworICAgIAorICAg
IHRlbXBsYXRlIDxBZGRUcmlhbmdsZVZlcnRleEZ1bmN0aW9uIGFkZFRyaWFuZ2xlVmVydGV4Pgor
ICAgIHZvaWQgYWRkVGlsZShpbnQgcXVhZFgsIGludCBxdWFkWSkKKyAgICB7CisgICAgICAgICgo
KnRoaXMpLiooYWRkVHJpYW5nbGVWZXJ0ZXgpKShxdWFkWCwgcXVhZFksIDAsIDAsIDEpOworICAg
ICAgICAoKCp0aGlzKS4qKGFkZFRyaWFuZ2xlVmVydGV4KSkocXVhZFgsIHF1YWRZLCAxLCAwLCAy
KTsKKyAgICAgICAgKCgqdGhpcykuKihhZGRUcmlhbmdsZVZlcnRleCkpKHF1YWRYLCBxdWFkWSwg
MSwgMSwgMyk7CisgICAgICAgICgoKnRoaXMpLiooYWRkVHJpYW5nbGVWZXJ0ZXgpKShxdWFkWCwg
cXVhZFksIDAsIDAsIDQpOworICAgICAgICAoKCp0aGlzKS4qKGFkZFRyaWFuZ2xlVmVydGV4KSko
cXVhZFgsIHF1YWRZLCAxLCAxLCA1KTsKKyAgICAgICAgKCgqdGhpcykuKihhZGRUcmlhbmdsZVZl
cnRleCkpKHF1YWRYLCBxdWFkWSwgMCwgMSwgNik7CisgICAgfQorICAgIAorICAgIHZvaWQgYWRk
QXR0YWNoZWRNZXNoSW5kZXgoaW50IHF1YWRYLCBpbnQgcXVhZFksIGludCB0cmlhbmdsZVgsIGlu
dCB0cmlhbmdsZVksIGludCB0cmlhbmdsZSkKKyAgICB7CisgICAgICAgIFVOVVNFRF9QQVJBTSh0
cmlhbmdsZSk7CisgICAgICAgIG1faW5kaWNlcy5hcHBlbmQoKHF1YWRZICsgdHJpYW5nbGVZKSAq
IG1fcG9pbnRzLndpZHRoKCkgKyAocXVhZFggKyB0cmlhbmdsZVgpKTsKKyAgICB9CisgICAgCisg
ICAgdm9pZCBnZW5lcmF0ZUF0dGFjaGVkTWVzaCgpCisgICAgeworICAgICAgICBmb3IgKGludCBq
ID0gMDsgaiA8IG1fcG9pbnRzLmhlaWdodCgpOyArK2opIHsKKyAgICAgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgbV9wb2ludHMud2lkdGgoKTsgKytpKQorICAgICAgICAgICAgICAgIGFkZEF0
dGFjaGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMoaSwgaik7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbV90aWxlcy5oZWlnaHQoKTsgKytqKSB7CisgICAg
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fdGlsZXMud2lkdGgoKTsgKytpKQorICAgICAg
ICAgICAgICAgIGFkZFRpbGU8Jk1lc2hHZW5lcmF0b3I6OmFkZEF0dGFjaGVkTWVzaEluZGV4Pihp
LCBqKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIGFkZERldGFjaGVkTWVzaFZl
cnRleEFuZEluZGV4KGludCBxdWFkWCwgaW50IHF1YWRZLCBpbnQgdHJpYW5nbGVYLCBpbnQgdHJp
YW5nbGVZLCBpbnQgdHJpYW5nbGUpCisgICAgeworICAgICAgICBhZGREZXRhY2hlZE1lc2hWZXJ0
ZXhBdHRyaWJ1dGVzKHF1YWRYLCBxdWFkWSwgdHJpYW5nbGVYLCB0cmlhbmdsZVksIHRyaWFuZ2xl
KTsKKyAgICAgICAgbV9pbmRpY2VzLmFwcGVuZChtX2luZGljZXMuc2l6ZSgpKTsKKyAgICB9Cisg
ICAgCisgICAgdm9pZCBnZW5lcmF0ZURldGFjaGVkTWVzaCgpCisgICAgeworICAgICAgICBmb3Ig
KGludCBqID0gMDsgaiA8IG1fdGlsZXMuaGVpZ2h0KCk7ICsraikgeworICAgICAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBtX3RpbGVzLndpZHRoKCk7ICsraSkKKyAgICAgICAgICAgICAgICBh
ZGRUaWxlPCZNZXNoR2VuZXJhdG9yOjphZGREZXRhY2hlZE1lc2hWZXJ0ZXhBbmRJbmRleD4oaSwg
aik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdm9pZCBhZGRQb3NpdGlvbkF0dHJpYnV0
ZShpbnQgcXVhZFgsIGludCBxdWFkWSkKKyAgICB7CisgICAgICAgIC8vIHZlYzQgYV9wb3NpdGlv
bgorICAgICAgICBtX3ZlcnRpY2VzLmFwcGVuZChtX3RpbGVTaXplSW5QaXhlbHMud2lkdGgoKSAq
IHF1YWRYIC0gMC41ZiArIG1fbWVzaEJveC54KCkpOworICAgICAgICBtX3ZlcnRpY2VzLmFwcGVu
ZChtX3RpbGVTaXplSW5QaXhlbHMuaGVpZ2h0KCkgKiBxdWFkWSAtIDAuNWYgKyBtX21lc2hCb3gu
eSgpKTsKKyAgICAgICAgbV92ZXJ0aWNlcy5hcHBlbmQoMC4wZik7IC8vIHoKKyAgICAgICAgbV92
ZXJ0aWNlcy5hcHBlbmQoMS4wZik7CisgICAgfQorCisgICAgdm9pZCBhZGRUZXhDb29yZEF0dHJp
YnV0ZShpbnQgcXVhZFgsIGludCBxdWFkWSkKKyAgICB7CisgICAgICAgIC8vIHZlYzIgYV90ZXhD
b29yZAorICAgICAgICBtX3ZlcnRpY2VzLmFwcGVuZChtX3RpbGVTaXplSW5QaXhlbHMud2lkdGgo
KSAqIHF1YWRYICsgbV9tZXNoQm94LngoKSk7CisgICAgICAgIG1fdmVydGljZXMuYXBwZW5kKG1f
dGlsZVNpemVJblBpeGVscy5oZWlnaHQoKSAqIHF1YWRZICsgbV9tZXNoQm94LnkoKSk7CisgICAg
fQorCisgICAgdm9pZCBhZGRNZXNoQ29vcmRBdHRyaWJ1dGUoaW50IHF1YWRYLCBpbnQgcXVhZFkp
CisgICAgeworICAgICAgICAvLyB2ZWMyIGFfbWVzaENvb3JkCisgICAgICAgIG1fdmVydGljZXMu
YXBwZW5kKG1fdGlsZVNpemVJbkRldmljZVNwYWNlLndpZHRoKCkgKiBxdWFkWCk7CisgICAgICAg
IG1fdmVydGljZXMuYXBwZW5kKG1fdGlsZVNpemVJbkRldmljZVNwYWNlLmhlaWdodCgpICogcXVh
ZFkpOworICAgIH0KKworICAgIHZvaWQgYWRkVHJpYW5nbGVDb29yZEF0dHJpYnV0ZShpbnQgcXVh
ZFgsIGludCBxdWFkWSwgaW50IHRyaWFuZ2xlKQorICAgIHsKKyAgICAgICAgLy8gdmVjMyBhX3Ry
aWFuZ2xlQ29vcmQKKyAgICAgICAgbV92ZXJ0aWNlcy5hcHBlbmQocXVhZFgpOworICAgICAgICBt
X3ZlcnRpY2VzLmFwcGVuZChxdWFkWSk7CisgICAgICAgIG1fdmVydGljZXMuYXBwZW5kKHRyaWFu
Z2xlKTsKKyAgICB9CisKKyAgICB2b2lkIGFkZEF0dGFjaGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMo
aW50IHF1YWRYLCBpbnQgcXVhZFkpCisgICAgeworICAgICAgICBhZGRQb3NpdGlvbkF0dHJpYnV0
ZShxdWFkWCwgcXVhZFkpOworICAgICAgICBhZGRUZXhDb29yZEF0dHJpYnV0ZShxdWFkWCwgcXVh
ZFkpOworICAgICAgICBhZGRNZXNoQ29vcmRBdHRyaWJ1dGUocXVhZFgsIHF1YWRZKTsKKyAgICB9
CisKKyAgICB2b2lkIGFkZERldGFjaGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMoaW50IHF1YWRYLCBp
bnQgcXVhZFksIGludCB0cmlhbmdsZVgsIGludCB0cmlhbmdsZVksIGludCB0cmlhbmdsZSkKKyAg
ICB7CisgICAgICAgIGFkZEF0dGFjaGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMocXVhZFggKyB0cmlh
bmdsZVgsIHF1YWRZICsgdHJpYW5nbGVZKTsKKyAgICAgICAgYWRkVHJpYW5nbGVDb29yZEF0dHJp
YnV0ZShxdWFkWCwgcXVhZFksIHRyaWFuZ2xlKTsKKyAgICB9CisgICAgCisjaWZuZGVmIE5ERUJV
RworICAgIHZvaWQgZHVtcEJ1ZmZlcnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcHJpbnRmKCJN
ZXNoIGJ1ZmZlcnM6IFBvaW50cy53aWR0aCgpOiAlZCwgUG9pbnRzLmhlaWdodCgpOiAlZCBtZXNo
Qm94OiAlZiwgJWYsICVmLCAlZiwgdHlwZTogJXNcbiIsIAorICAgICAgICAgICAgICAgbV9wb2lu
dHMud2lkdGgoKSwgbV9wb2ludHMuaGVpZ2h0KCksIG1fbWVzaEJveC54KCksIG1fbWVzaEJveC55
KCksIG1fbWVzaEJveC53aWR0aCgpLCBtX21lc2hCb3guaGVpZ2h0KCksIAorICAgICAgICAgICAg
ICAgKG1fbWVzaFR5cGUgPT0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpBVFRBQ0hFRCkgPyAiQXR0
YWNoZWQiIDogIkRldGFjaGVkIik7CisgICAgICAgIHByaW50ZigiLS0tVmVydGV4OlxuXHQiKTsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fdmVydGljZXMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgICAgIHByaW50ZigiJWYgIiwgbV92ZXJ0aWNlcy5hdChpKSk7CisgICAgICAg
ICAgICBpZiAoISgoaSArIDEpICUgZmxvYXRzUGVyVmVydGV4KCkpKQorICAgICAgICAgICAgICAg
IHByaW50ZigiXG5cdCIpOworICAgICAgICB9CisgICAgICAgIHByaW50ZigiXG4tLS1JbmRpY2Vz
OiAiKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faW5kaWNlcy5zaXplKCk7
ICsraSkKKyAgICAgICAgICAgIHByaW50ZigiJWQgIiwgbV9pbmRpY2VzLmF0KGkpKTsKKyAgICAg
ICAgcHJpbnRmKCJcbiIpOworICAgIH0KKyNlbmRpZgorCitwcml2YXRlOgorICAgIFZlY3Rvcjxm
bG9hdD4gbV92ZXJ0aWNlczsKKyAgICBWZWN0b3I8dWludDE2X3Q+IG1faW5kaWNlczsKKyAgICAK
KyAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb246Ok1lc2hUeXBlIG1fbWVzaFR5cGU7CisgICAgSW50
U2l6ZSBtX3BvaW50czsKKyAgICBJbnRTaXplIG1fdGlsZXM7CisgICAgRmxvYXRTaXplIG1fdGls
ZVNpemVJblBpeGVsczsKKyAgICBGbG9hdFNpemUgbV90aWxlU2l6ZUluRGV2aWNlU3BhY2U7Cisg
ICAgRmxvYXRSZWN0IG1fbWVzaEJveDsKK307CiAKLUN1c3RvbUZpbHRlck1lc2g6OkN1c3RvbUZp
bHRlck1lc2goR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIHVuc2lnbmVkIGNvbHVtbnMsIHVu
c2lnbmVkIHJvd3MsCitDdXN0b21GaWx0ZXJNZXNoOjpDdXN0b21GaWx0ZXJNZXNoKEdyYXBoaWNz
Q29udGV4dDNEKiBjb250ZXh0LCB1bnNpZ25lZCBjb2x1bW5zLCB1bnNpZ25lZCByb3dzLCAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRSZWN0JiBtZXNoQm94
LCBDdXN0b21GaWx0ZXJPcGVyYXRpb246Ok1lc2hUeXBlIG1lc2hUeXBlKQogICAgIDogbV9jb250
ZXh0KGNvbnRleHQpCiAgICAgLCBtX3ZlcnRpY2VzQnVmZmVyT2JqZWN0KDApCkBAIC00NCw3ICsy
NDEsNyBAQCBDdXN0b21GaWx0ZXJNZXNoOjpDdXN0b21GaWx0ZXJNZXNoKEdyYXBoaWNzQ29udGV4
dDNEKiBjb250ZXh0LCB1bnNpZ25lZCBjb2x1bW5zLAogICAgICwgbV9tZXNoQm94KG1lc2hCb3gp
CiAgICAgLCBtX21lc2hUeXBlKG1lc2hUeXBlKQogewotICAgIEN1c3RvbUZpbHRlck1lc2hHZW5l
cmF0b3IgZ2VuZXJhdG9yKGNvbHVtbnMsIHJvd3MsIG1lc2hCb3gsIG1lc2hUeXBlKTsKKyAgICBN
ZXNoR2VuZXJhdG9yIGdlbmVyYXRvcihjb2x1bW5zLCByb3dzLCBtZXNoQm94LCBtZXNoVHlwZSk7
CiAgICAgbV9pbmRpY2VzQ291bnQgPSBnZW5lcmF0b3IuaW5kaWNlc0NvdW50KCk7CiAgICAgbV9i
eXRlc1BlclZlcnRleCA9IGdlbmVyYXRvci5mbG9hdHNQZXJWZXJ0ZXgoKSAqIHNpemVvZihmbG9h
dCk7ICAgIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0N1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q5ZDRkMWIyMGQzMjViNWE5ZGRkMWM5ZDNmNWJk
Zjg3ZjcxYzY2MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1l
c2hHZW5lcmF0b3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTczICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAg
ZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0g
KiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICog
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YK
LSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJM
RShDU1NfU0hBREVSUykgJiYgVVNFKDNEX0dSQVBISUNTKQotI2luY2x1ZGUgIkN1c3RvbUZpbHRl
ck1lc2hHZW5lcmF0b3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0jaWZuZGVmIE5ERUJV
RwotLy8gVXNlICJjYWxsICdXZWJDb3JlOjpzX2R1bXBDdXN0b21GaWx0ZXJNZXNoQnVmZmVycycg
PSAxIiBpbiBHREIgdG8gYWN0aXZhdGUgcHJpbnRpbmcgb2YgdGhlIG1lc2ggYnVmZmVycy4KLXN0
YXRpYyBib29sIHNfZHVtcEN1c3RvbUZpbHRlck1lc2hCdWZmZXJzID0gZmFsc2U7Ci0jZW5kaWYK
LQotQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvcjo6Q3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvcih1
bnNpZ25lZCBjb2x1bW5zLCB1bnNpZ25lZCByb3dzLCBjb25zdCBGbG9hdFJlY3QmIG1lc2hCb3gs
IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5cGUgbWVzaFR5cGUpCi0gICAgOiBtX21lc2hU
eXBlKG1lc2hUeXBlKQotICAgICwgbV9wb2ludHMoY29sdW1ucyArIDEsIHJvd3MgKyAxKQotICAg
ICwgbV90aWxlcyhjb2x1bW5zLCByb3dzKQotICAgICwgbV90aWxlU2l6ZUluUGl4ZWxzKG1lc2hC
b3gud2lkdGgoKSAvIG1fdGlsZXMud2lkdGgoKSwgbWVzaEJveC5oZWlnaHQoKSAvIG1fdGlsZXMu
aGVpZ2h0KCkpCi0gICAgLCBtX3RpbGVTaXplSW5EZXZpY2VTcGFjZSgxLjBmIC8gbV90aWxlcy53
aWR0aCgpLCAxLjBmIC8gbV90aWxlcy5oZWlnaHQoKSkKLSAgICAsIG1fbWVzaEJveChtZXNoQm94
KQotewotICAgIC8vIEJ1aWxkIHRoZSB0d28gYnVmZmVycyBuZWVkZWQgdG8gZHJhdyB0cmlhbmds
ZXM6Ci0gICAgLy8gKiBtX3ZlcnRpY2VzIGhhcyBhIG51bWJlciBvZiBmbG9hdCBhdHRyaWJ1dGVz
IHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHZlcnRleCBzaGFkZXIKLSAgICAvLyBmb3IgZWFj
aCBjb21wdXRlZCB2ZXJ0ZXguIFRoaXMgbnVtYmVyIGlzIGNhbGN1bGF0ZWQgaW4gZmxvYXRzUGVy
VmVydGV4KCkgYmFzZWQgb24gdGhlIG1lc2hUeXBlLgotICAgIC8vICogbV9pbmRpY2VzIGlzIGEg
YnVmZmVyIHRoYXQgd2lsbCBoYXZlIDMgaW5kaWNlcyBwZXIgdHJpYW5nbGUuIEVhY2ggaW5kZXgg
d2lsbCBwb2ludCBpbnNpZGUKLSAgICAvLyB0aGUgbV92ZXJ0aWNlcyBidWZmZXIuCi0gICAgbV92
ZXJ0aWNlcy5yZXNlcnZlQ2FwYWNpdHkodmVydGljZXNDb3VudCgpICogZmxvYXRzUGVyVmVydGV4
KCkpOwotICAgIG1faW5kaWNlcy5yZXNlcnZlQ2FwYWNpdHkoaW5kaWNlc0NvdW50KCkpOwotCi0g
ICAgLy8gQmFzZWQgb24gdGhlIG1lc2hUeXBlIHRoZXJlIGNhbiBiZSB0d28gdHlwZXMgb2YgbWVz
aGVzLgotICAgIC8vICogYXR0YWNoZWQ6IGVhY2ggdHJpYW5nbGUgdXNlcyB2ZXJ0aWNlcyBmcm9t
IHRoZSBuZWlnaGJvciB0cmlhbmdsZXMuIFRoaXMgaXMgdXNlZnVsIHRvIHNhdmUgc29tZSBHUFUg
bWVtb3J5Ci0gICAgLy8gd2hlbiB0aGVyZSdzIG5vIG5lZWQgdG8gZXhwbG9kZSB0aGUgdGlsZXMu
Ci0gICAgLy8gKiBkZXRhY2hlZDogZWFjaCB0cmlhbmdsZSBoYXMgaXRzIG93biB2ZXJ0aWNlcy4g
VGhpcyBtZWFucyBlYWNoIHRyaWFuZ2xlIGNhbiBiZSBtb3ZlZCBpbmRlcGVuZGVudGx5IGFuZCBh
IHZlYzMKLSAgICAvLyBhdHRyaWJ1dGUgaXMgcGFzc2VkLCBzbyB0aGF0IGVhY2ggdmVydGV4IGNh
biBiZSB1bmlxdWVseSBpZGVudGlmaWVkLgotICAgIGlmIChtX21lc2hUeXBlID09IEN1c3RvbUZp
bHRlck9wZXJhdGlvbjo6QVRUQUNIRUQpCi0gICAgICAgIGdlbmVyYXRlQXR0YWNoZWRNZXNoKCk7
Ci0gICAgZWxzZQotICAgICAgICBnZW5lcmF0ZURldGFjaGVkTWVzaCgpOwotCi0jaWZuZGVmIE5E
RUJVRwotICAgIGlmIChzX2R1bXBDdXN0b21GaWx0ZXJNZXNoQnVmZmVycykKLSAgICAgICAgZHVt
cEJ1ZmZlcnMoKTsKLSNlbmRpZgotfQotCi12b2lkIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3I6
OmFkZEF0dGFjaGVkTWVzaEluZGV4KGludCBxdWFkWCwgaW50IHF1YWRZLCBpbnQgdHJpYW5nbGVY
LCBpbnQgdHJpYW5nbGVZLCBpbnQgdHJpYW5nbGUpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHRyaWFu
Z2xlKTsKLSAgICBtX2luZGljZXMuYXBwZW5kKChxdWFkWSArIHRyaWFuZ2xlWSkgKiBtX3BvaW50
cy53aWR0aCgpICsgKHF1YWRYICsgdHJpYW5nbGVYKSk7Ci19Ci0KLXZvaWQgQ3VzdG9tRmlsdGVy
TWVzaEdlbmVyYXRvcjo6Z2VuZXJhdGVBdHRhY2hlZE1lc2goKQotewotICAgIGZvciAoaW50IGog
PSAwOyBqIDwgbV9wb2ludHMuaGVpZ2h0KCk7ICsraikgewotICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IG1fcG9pbnRzLndpZHRoKCk7ICsraSkKLSAgICAgICAgICAgIGFkZEF0dGFjaGVkTWVz
aFZlcnRleEF0dHJpYnV0ZXMoaSwgaik7Ci0gICAgfQotCi0gICAgZm9yIChpbnQgaiA9IDA7IGog
PCBtX3RpbGVzLmhlaWdodCgpOyArK2opIHsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBt
X3RpbGVzLndpZHRoKCk7ICsraSkKLSAgICAgICAgICAgIGFkZFRpbGU8JkN1c3RvbUZpbHRlck1l
c2hHZW5lcmF0b3I6OmFkZEF0dGFjaGVkTWVzaEluZGV4PihpLCBqKTsKLSAgICB9Ci19Ci0KLXZv
aWQgQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvcjo6YWRkRGV0YWNoZWRNZXNoVmVydGV4QW5kSW5k
ZXgoaW50IHF1YWRYLCBpbnQgcXVhZFksIGludCB0cmlhbmdsZVgsIGludCB0cmlhbmdsZVksIGlu
dCB0cmlhbmdsZSkKLXsKLSAgICBhZGREZXRhY2hlZE1lc2hWZXJ0ZXhBdHRyaWJ1dGVzKHF1YWRY
LCBxdWFkWSwgdHJpYW5nbGVYLCB0cmlhbmdsZVksIHRyaWFuZ2xlKTsKLSAgICBtX2luZGljZXMu
YXBwZW5kKG1faW5kaWNlcy5zaXplKCkpOwotfQotCi12b2lkIEN1c3RvbUZpbHRlck1lc2hHZW5l
cmF0b3I6OmdlbmVyYXRlRGV0YWNoZWRNZXNoKCkKLXsKLSAgICBmb3IgKGludCBqID0gMDsgaiA8
IG1fdGlsZXMuaGVpZ2h0KCk7ICsraikgewotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1f
dGlsZXMud2lkdGgoKTsgKytpKQotICAgICAgICAgICAgYWRkVGlsZTwmQ3VzdG9tRmlsdGVyTWVz
aEdlbmVyYXRvcjo6YWRkRGV0YWNoZWRNZXNoVmVydGV4QW5kSW5kZXg+KGksIGopOwotICAgIH0K
LX0KLQotdm9pZCBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yOjphZGRQb3NpdGlvbkF0dHJpYnV0
ZShpbnQgcXVhZFgsIGludCBxdWFkWSkKLXsKLSAgICAvLyB2ZWM0IGFfcG9zaXRpb24KLSAgICBt
X3ZlcnRpY2VzLmFwcGVuZChtX3RpbGVTaXplSW5QaXhlbHMud2lkdGgoKSAqIHF1YWRYIC0gMC41
ZiArIG1fbWVzaEJveC54KCkpOwotICAgIG1fdmVydGljZXMuYXBwZW5kKG1fdGlsZVNpemVJblBp
eGVscy5oZWlnaHQoKSAqIHF1YWRZIC0gMC41ZiArIG1fbWVzaEJveC55KCkpOwotICAgIG1fdmVy
dGljZXMuYXBwZW5kKDAuMGYpOyAvLyB6Ci0gICAgbV92ZXJ0aWNlcy5hcHBlbmQoMS4wZik7Ci19
Ci0KLXZvaWQgQ3VzdG9tRmlsdGVyTWVzaEdlbmVyYXRvcjo6YWRkVGV4Q29vcmRBdHRyaWJ1dGUo
aW50IHF1YWRYLCBpbnQgcXVhZFkpCi17Ci0gICAgLy8gdmVjMiBhX3RleENvb3JkCi0gICAgbV92
ZXJ0aWNlcy5hcHBlbmQobV90aWxlU2l6ZUluUGl4ZWxzLndpZHRoKCkgKiBxdWFkWCArIG1fbWVz
aEJveC54KCkpOwotICAgIG1fdmVydGljZXMuYXBwZW5kKG1fdGlsZVNpemVJblBpeGVscy5oZWln
aHQoKSAqIHF1YWRZICsgbV9tZXNoQm94LnkoKSk7Ci19Ci0KLXZvaWQgQ3VzdG9tRmlsdGVyTWVz
aEdlbmVyYXRvcjo6YWRkTWVzaENvb3JkQXR0cmlidXRlKGludCBxdWFkWCwgaW50IHF1YWRZKQot
ewotICAgIC8vIHZlYzIgYV9tZXNoQ29vcmQKLSAgICBtX3ZlcnRpY2VzLmFwcGVuZChtX3RpbGVT
aXplSW5EZXZpY2VTcGFjZS53aWR0aCgpICogcXVhZFgpOwotICAgIG1fdmVydGljZXMuYXBwZW5k
KG1fdGlsZVNpemVJbkRldmljZVNwYWNlLmhlaWdodCgpICogcXVhZFkpOwotfQotCi12b2lkIEN1
c3RvbUZpbHRlck1lc2hHZW5lcmF0b3I6OmFkZFRyaWFuZ2xlQ29vcmRBdHRyaWJ1dGUoaW50IHF1
YWRYLCBpbnQgcXVhZFksIGludCB0cmlhbmdsZSkKLXsKLSAgICAvLyB2ZWMzIGFfdHJpYW5nbGVD
b29yZAotICAgIG1fdmVydGljZXMuYXBwZW5kKHF1YWRYKTsKLSAgICBtX3ZlcnRpY2VzLmFwcGVu
ZChxdWFkWSk7Ci0gICAgbV92ZXJ0aWNlcy5hcHBlbmQodHJpYW5nbGUpOwotfQotCi12b2lkIEN1
c3RvbUZpbHRlck1lc2hHZW5lcmF0b3I6OmFkZEF0dGFjaGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMo
aW50IHF1YWRYLCBpbnQgcXVhZFkpCi17Ci0gICAgYWRkUG9zaXRpb25BdHRyaWJ1dGUocXVhZFgs
IHF1YWRZKTsKLSAgICBhZGRUZXhDb29yZEF0dHJpYnV0ZShxdWFkWCwgcXVhZFkpOwotICAgIGFk
ZE1lc2hDb29yZEF0dHJpYnV0ZShxdWFkWCwgcXVhZFkpOwotfQotCi12b2lkIEN1c3RvbUZpbHRl
ck1lc2hHZW5lcmF0b3I6OmFkZERldGFjaGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMoaW50IHF1YWRY
LCBpbnQgcXVhZFksIGludCB0cmlhbmdsZVgsIGludCB0cmlhbmdsZVksIGludCB0cmlhbmdsZSkK
LXsKLSAgICBhZGRBdHRhY2hlZE1lc2hWZXJ0ZXhBdHRyaWJ1dGVzKHF1YWRYICsgdHJpYW5nbGVY
LCBxdWFkWSArIHRyaWFuZ2xlWSk7Ci0gICAgYWRkVHJpYW5nbGVDb29yZEF0dHJpYnV0ZShxdWFk
WCwgcXVhZFksIHRyaWFuZ2xlKTsKLX0KLQotI2lmbmRlZiBOREVCVUcKLXZvaWQgQ3VzdG9tRmls
dGVyTWVzaEdlbmVyYXRvcjo6ZHVtcEJ1ZmZlcnMoKSBjb25zdAotewotICAgIHByaW50ZigiTWVz
aCBidWZmZXJzOiBQb2ludHMud2lkdGgoKTogJWQsIFBvaW50cy5oZWlnaHQoKTogJWQgbWVzaEJv
eDogJWYsICVmLCAlZiwgJWYsIHR5cGU6ICVzXG4iLAotICAgICAgICAgICBtX3BvaW50cy53aWR0
aCgpLCBtX3BvaW50cy5oZWlnaHQoKSwgbV9tZXNoQm94LngoKSwgbV9tZXNoQm94LnkoKSwgbV9t
ZXNoQm94LndpZHRoKCksIG1fbWVzaEJveC5oZWlnaHQoKSwKLSAgICAgICAgICAgKG1fbWVzaFR5
cGUgPT0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpBVFRBQ0hFRCkgPyAiQXR0YWNoZWQiIDogIkRl
dGFjaGVkIik7Ci0gICAgcHJpbnRmKCItLS1WZXJ0ZXg6XG5cdCIpOwotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX3ZlcnRpY2VzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIHByaW50Zigi
JWYgIiwgbV92ZXJ0aWNlcy5hdChpKSk7Ci0gICAgICAgIGlmICghKChpICsgMSkgJSBmbG9hdHNQ
ZXJWZXJ0ZXgoKSkpCi0gICAgICAgICAgICBwcmludGYoIlxuXHQiKTsKLSAgICB9Ci0gICAgcHJp
bnRmKCJcbi0tLUluZGljZXM6ICIpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2lu
ZGljZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHByaW50ZigiJWQgIiwgbV9pbmRpY2VzLmF0KGkp
KTsKLSAgICBwcmludGYoIlxuIik7Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKSAmJiBVU0UoM0RfR1JBUEhJQ1MpCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3Vz
dG9tRmlsdGVyTWVzaEdlbmVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA5Zjc1NjIxYjQ2NWQxNjFlNzVkY2RlNmQyMTllMWE5NmI2OWJkZjAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwxMjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwot
ICogICAgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAgIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SCi0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yX2gKLSNkZWZpbmUgQ3Vz
dG9tRmlsdGVyTWVzaEdlbmVyYXRvcl9oCi0KLSNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpICYmIFVT
RSgzRF9HUkFQSElDUykKLQotI2luY2x1ZGUgIkN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgotI2lu
Y2x1ZGUgIkZsb2F0UmVjdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEN1c3Rv
bUZpbHRlck1lc2hHZW5lcmF0b3IgewotcHVibGljOgotICAgIC8vIExpbmVzIGFuZCBjb2x1bW5z
IGFyZSB0aGUgdmFsdWVzIHBhc3NlZCBpbiBDU1MuIFRoZSByZXN1bHQgaXMgdmVydGV4IG1lc2gg
dGhhdCBoYXMgJ3Jvd3MnIG51bWJlcnMgb2Ygcm93cwotICAgIC8vIGFuZCAnY29sdW1ucycgbnVt
YmVyIG9mIGNvbHVtbnMgd2l0aCBhIHRvdGFsIG9mICdyb3dzICsgMScgKiAnY29sdW1ucyArIDEn
IHZlcnRpY2VzLgotICAgIC8vIE1lc2hCb3ggaXMgdGhlIGZpbHRlcmVkIGFyZWEgY2FsY3VsYXRl
ZCBkZWZpbmVkIHVzaW5nIHRoZSBib3JkZXItYm94LCBwYWRkaW5nLWJveCwgY29udGVudC1ib3gg
b3IgZmlsdGVyLWJveAotICAgIC8vIGF0dHJpYnV0ZXMuIEEgdmFsdWUgb2YgKDAsIDAsIDEsIDEp
IHdpbGwgY292ZXIgdGhlIGVudGlyZSBvdXRwdXQgc3VyZmFjZS4KLSAgICBDdXN0b21GaWx0ZXJN
ZXNoR2VuZXJhdG9yKHVuc2lnbmVkIGNvbHVtbnMsIHVuc2lnbmVkIHJvd3MsIGNvbnN0IEZsb2F0
UmVjdCYgbWVzaEJveCwgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoVHlwZSk7Ci0KLSAgICBj
b25zdCBWZWN0b3I8ZmxvYXQ+JiB2ZXJ0aWNlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljZXM7
IH0KLSAgICBjb25zdCBWZWN0b3I8dWludDE2X3Q+JiBpbmRpY2VzKCkgY29uc3QgeyByZXR1cm4g
bV9pbmRpY2VzOyB9Ci0KLSAgICBjb25zdCBJbnRTaXplJiBwb2ludHMoKSBjb25zdCB7IHJldHVy
biBtX3BvaW50czsgfQotICAgIHVuc2lnbmVkIHBvaW50c0NvdW50KCkgY29uc3QgeyByZXR1cm4g
bV9wb2ludHMud2lkdGgoKSAqIG1fcG9pbnRzLmhlaWdodCgpOyB9Ci0KLSAgICBjb25zdCBJbnRT
aXplJiB0aWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fdGlsZXM7IH0KLSAgICB1bnNpZ25lZCB0aWxl
c0NvdW50KCkgY29uc3QgeyByZXR1cm4gbV90aWxlcy53aWR0aCgpICogbV90aWxlcy5oZWlnaHQo
KTsgfQotCi0gICAgdW5zaWduZWQgaW5kaWNlc0NvdW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIHRyaWFuZ2xlc1BlclRpbGUgPSAyOwotICAgICAgICBjb25zdCB1bnNp
Z25lZCBpbmRpY2VzUGVyVHJpYW5nbGUgPSAzOwotICAgICAgICByZXR1cm4gdGlsZXNDb3VudCgp
ICogdHJpYW5nbGVzUGVyVGlsZSAqIGluZGljZXNQZXJUcmlhbmdsZTsKLSAgICB9Ci0KLSAgICB1
bnNpZ25lZCBmbG9hdHNQZXJWZXJ0ZXgoKSBjb25zdAotICAgIHsKLSAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIEF0dGFjaGVkTWVzaFZlcnRleFNpemUgPSA0ICsgLy8gdmVjNCBhX3Bvc2l0
aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMiArIC8vIHZlYzIgYV90ZXhDb29yZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDI7IC8vIHZlYzIgYV9tZXNoQ29vcmQKLQotICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgRGV0YWNoZWRNZXNoVmVydGV4U2l6ZSA9IEF0dGFjaGVk
TWVzaFZlcnRleFNpemUgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDM7IC8vIHZlYzMgYV90cmlhbmdsZUNvb3JkCi0KLSAgICAgICAgcmV0
dXJuIG1fbWVzaFR5cGUgPT0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpBVFRBQ0hFRCA/IEF0dGFj
aGVkTWVzaFZlcnRleFNpemUgOiBEZXRhY2hlZE1lc2hWZXJ0ZXhTaXplOwotICAgIH0KLQotICAg
IHVuc2lnbmVkIHZlcnRpY2VzQ291bnQoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
bWVzaFR5cGUgPT0gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpBVFRBQ0hFRCA/IHBvaW50c0NvdW50
KCkgOiBpbmRpY2VzQ291bnQoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdHlwZWRlZiB2b2lk
IChDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yOjoqQWRkVHJpYW5nbGVWZXJ0ZXhGdW5jdGlvbiko
aW50IHF1YWRYLCBpbnQgcXVhZFksIGludCB0cmlhbmdsZVgsIGludCB0cmlhbmdsZVksIGludCB0
cmlhbmdsZSk7Ci0KLSAgICB0ZW1wbGF0ZSA8QWRkVHJpYW5nbGVWZXJ0ZXhGdW5jdGlvbiBhZGRU
cmlhbmdsZVZlcnRleD4KLSAgICB2b2lkIGFkZFRpbGUoaW50IHF1YWRYLCBpbnQgcXVhZFkpCi0g
ICAgewotICAgICAgICAoKCp0aGlzKS4qKGFkZFRyaWFuZ2xlVmVydGV4KSkocXVhZFgsIHF1YWRZ
LCAwLCAwLCAxKTsKLSAgICAgICAgKCgqdGhpcykuKihhZGRUcmlhbmdsZVZlcnRleCkpKHF1YWRY
LCBxdWFkWSwgMSwgMCwgMik7Ci0gICAgICAgICgoKnRoaXMpLiooYWRkVHJpYW5nbGVWZXJ0ZXgp
KShxdWFkWCwgcXVhZFksIDEsIDEsIDMpOwotICAgICAgICAoKCp0aGlzKS4qKGFkZFRyaWFuZ2xl
VmVydGV4KSkocXVhZFgsIHF1YWRZLCAwLCAwLCA0KTsKLSAgICAgICAgKCgqdGhpcykuKihhZGRU
cmlhbmdsZVZlcnRleCkpKHF1YWRYLCBxdWFkWSwgMSwgMSwgNSk7Ci0gICAgICAgICgoKnRoaXMp
LiooYWRkVHJpYW5nbGVWZXJ0ZXgpKShxdWFkWCwgcXVhZFksIDAsIDEsIDYpOwotICAgIH0KLQot
ICAgIHZvaWQgYWRkQXR0YWNoZWRNZXNoSW5kZXgoaW50IHF1YWRYLCBpbnQgcXVhZFksIGludCB0
cmlhbmdsZVgsIGludCB0cmlhbmdsZVksIGludCB0cmlhbmdsZSk7Ci0KLSAgICB2b2lkIGdlbmVy
YXRlQXR0YWNoZWRNZXNoKCk7Ci0KLSAgICB2b2lkIGFkZERldGFjaGVkTWVzaFZlcnRleEFuZElu
ZGV4KGludCBxdWFkWCwgaW50IHF1YWRZLCBpbnQgdHJpYW5nbGVYLCBpbnQgdHJpYW5nbGVZLCBp
bnQgdHJpYW5nbGUpOwotCi0gICAgdm9pZCBnZW5lcmF0ZURldGFjaGVkTWVzaCgpOwotICAgIHZv
aWQgYWRkUG9zaXRpb25BdHRyaWJ1dGUoaW50IHF1YWRYLCBpbnQgcXVhZFkpOwotICAgIHZvaWQg
YWRkVGV4Q29vcmRBdHRyaWJ1dGUoaW50IHF1YWRYLCBpbnQgcXVhZFkpOwotICAgIHZvaWQgYWRk
TWVzaENvb3JkQXR0cmlidXRlKGludCBxdWFkWCwgaW50IHF1YWRZKTsKLSAgICB2b2lkIGFkZFRy
aWFuZ2xlQ29vcmRBdHRyaWJ1dGUoaW50IHF1YWRYLCBpbnQgcXVhZFksIGludCB0cmlhbmdsZSk7
Ci0gICAgdm9pZCBhZGRBdHRhY2hlZE1lc2hWZXJ0ZXhBdHRyaWJ1dGVzKGludCBxdWFkWCwgaW50
IHF1YWRZKTsKLSAgICB2b2lkIGFkZERldGFjaGVkTWVzaFZlcnRleEF0dHJpYnV0ZXMoaW50IHF1
YWRYLCBpbnQgcXVhZFksIGludCB0cmlhbmdsZVgsIGludCB0cmlhbmdsZVksIGludCB0cmlhbmds
ZSk7Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgdm9pZCBkdW1wQnVmZmVycygpIGNvbnN0OwotI2Vu
ZGlmCi0KLXByaXZhdGU6Ci0gICAgVmVjdG9yPGZsb2F0PiBtX3ZlcnRpY2VzOwotICAgIFZlY3Rv
cjx1aW50MTZfdD4gbV9pbmRpY2VzOwotCi0gICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNo
VHlwZSBtX21lc2hUeXBlOwotICAgIEludFNpemUgbV9wb2ludHM7Ci0gICAgSW50U2l6ZSBtX3Rp
bGVzOwotICAgIEZsb2F0U2l6ZSBtX3RpbGVTaXplSW5QaXhlbHM7Ci0gICAgRmxvYXRTaXplIG1f
dGlsZVNpemVJbkRldmljZVNwYWNlOwotICAgIEZsb2F0UmVjdCBtX21lc2hCb3g7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpICYm
IFVTRSgzRF9HUkFQSElDUykKLQotI2VuZGlmIC8vIEN1c3RvbUZpbHRlck1lc2hHZW5lcmF0b3Jf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9D
dXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAKaW5kZXgg
MTgwMmZlMDYzZTVhZDQyMGJjZTY4NWE1MWZiNGVlZmY0N2M3OTVlYi4uMjE3NzhhODgyMGNlY2Y5
ZjEyYzhmMzMzODA2ODI3NTgwMWM5YmRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
clZhbGlkYXRlZFByb2dyYW0uY3BwCkBAIC03MCw3ICs3MCw2IEBAIFN0cmluZyBDdXN0b21GaWx0
ZXJWYWxpZGF0ZWRQcm9ncmFtOjpkZWZhdWx0RnJhZ21lbnRTaGFkZXJTdHJpbmcoKQogQ3VzdG9t
RmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbShDdXN0
b21GaWx0ZXJHbG9iYWxDb250ZXh0KiBnbG9iYWxDb250ZXh0LCBjb25zdCBDdXN0b21GaWx0ZXJQ
cm9ncmFtSW5mbyYgcHJvZ3JhbUluZm8pCiAgICAgOiBtX2dsb2JhbENvbnRleHQoZ2xvYmFsQ29u
dGV4dCkKICAgICAsIG1fcHJvZ3JhbUluZm8ocHJvZ3JhbUluZm8pCi0gICAgLCBtX3BsYXRmb3Jt
Q29tcGlsZWRQcm9ncmFtKDApCiAgICAgLCBtX2lzSW5pdGlhbGl6ZWQoZmFsc2UpCiB7CiAgICAg
U3RyaW5nIG9yaWdpbmFsVmVydGV4U2hhZGVyID0gcHJvZ3JhbUluZm8udmVydGV4U2hhZGVyU3Ry
aW5nKCk7CkBAIC0xMDMsNyArMTAyLDcgQEAgQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbShDdXN0b21GaWx0ZXJHbG9iYWxDb24KIAogUGFz
c1JlZlB0cjxDdXN0b21GaWx0ZXJDb21waWxlZFByb2dyYW0+IEN1c3RvbUZpbHRlclZhbGlkYXRl
ZFByb2dyYW06OmNvbXBpbGVkUHJvZ3JhbSgpCiB7Ci0gICAgQVNTRVJUKG1faXNJbml0aWFsaXpl
ZCAmJiBtX2dsb2JhbENvbnRleHQgJiYgIW1fdmFsaWRhdGVkVmVydGV4U2hhZGVyLmlzTnVsbCgp
ICYmICFtX3ZhbGlkYXRlZEZyYWdtZW50U2hhZGVyLmlzTnVsbCgpKTsKKyAgICBBU1NFUlQobV9p
c0luaXRpYWxpemVkICYmICFtX3ZhbGlkYXRlZFZlcnRleFNoYWRlci5pc051bGwoKSAmJiAhbV92
YWxpZGF0ZWRGcmFnbWVudFNoYWRlci5pc051bGwoKSk7CiAgICAgaWYgKCFtX2NvbXBpbGVkUHJv
Z3JhbSkKICAgICAgICAgbV9jb21waWxlZFByb2dyYW0gPSBDdXN0b21GaWx0ZXJDb21waWxlZFBy
b2dyYW06OmNyZWF0ZShtX2dsb2JhbENvbnRleHQtPmNvbnRleHQoKSwgbV92YWxpZGF0ZWRWZXJ0
ZXhTaGFkZXIsIG1fdmFsaWRhdGVkRnJhZ21lbnRTaGFkZXIpOwogICAgIHJldHVybiBtX2NvbXBp
bGVkUHJvZ3JhbTsKQEAgLTI2NCwyMyArMjYzLDEwIEBAIFN0cmluZyBDdXN0b21GaWx0ZXJWYWxp
ZGF0ZWRQcm9ncmFtOjpjb21wb3NpdGVGdW5jdGlvblN0cmluZyhDb21wb3NpdGVPcGVyYXRvciBj
CiAgICAgCiBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjp+Q3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbSgpCiB7Ci0gICAgcGxhdGZvcm1EZXN0cm95KCk7Ci0KICAgICBpZiAobV9nbG9i
YWxDb250ZXh0KQogICAgICAgICBtX2dsb2JhbENvbnRleHQtPnJlbW92ZVZhbGlkYXRlZFByb2dy
YW0odGhpcyk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQkxBQ0tCRVJSWSkKLVBsYXRmb3JtQ29tcGls
ZWRQcm9ncmFtKiBDdXN0b21GaWx0ZXJWYWxpZGF0ZWRQcm9ncmFtOjpwbGF0Zm9ybUNvbXBpbGVk
UHJvZ3JhbSgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQgQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbTo6cGxhdGZvcm1EZXN0cm95KCkKLXsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclZh
bGlkYXRlZFByb2dyYW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5oCmluZGV4IGFmYTdlMTJhNjk2ZTNlYzMw
NGJhMzIxNGZhOTVhY2UyYWZhZmFhMjcuLjNhOWUwZjE5Y2VjNjI0OGExZTQzOTdlYjc2NjhlMWYz
ZDZjM2ViNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5o
CkBAIC0zOSwxNiArMzksNiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotLy8gUGxhdGZvcm1Db21waWxlZFByb2dyYW0gZGVmaW5l
cyBhIHR5cGUgdGhhdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIGZyYW1ld29yayB1c2VkIHRvIGlt
cGxlbWVudCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBvbiBhIHBhcnRpY3VsYXIgcGxhdGZvcm0u
Ci0jaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIExh
eWVyQ29tcGlsZWRQcm9ncmFtOwotfQotdHlwZWRlZiBXZWJDb3JlOjpMYXllckNvbXBpbGVkUHJv
Z3JhbSBQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbTsKLSNlbHNlCi10eXBlZGVmIHZvaWQgUGxhdGZv
cm1Db21waWxlZFByb2dyYW07Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBBTkdMRVdlYktpdEJyaWRnZTsKQEAgLTgxLDggKzcxLDYgQEAgcHVibGljOgogICAgIGNvbnN0
IEN1c3RvbUZpbHRlclByb2dyYW1JbmZvJiBwcm9ncmFtSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvZ3JhbUluZm87IH0KICAgICBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3Jh
bT4gY29tcGlsZWRQcm9ncmFtKCk7CiAKLSAgICBQbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSogcGxh
dGZvcm1Db21waWxlZFByb2dyYW0oKTsKLQogICAgIGJvb2wgaXNJbml0aWFsaXplZCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNJbml0aWFsaXplZDsgfQogCiAgICAgLy8gJ2RldGFjaEZyb21HbG9iYWxD
b250ZXh0JyBpcyBjYWxsZWQgd2hlbiB0aGUgQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dCBpcyBk
ZWxldGVkLCBhbmQgdGhlcmUncyBubyBuZWVkIGZvciB0aGUgY2FsbGJhY2sgYW55bW9yZS4gCkBA
IC05MSw4ICs3OSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgQ3VzdG9tRmlsdGVyVmFsaWRh
dGVkUHJvZ3JhbShDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0KiwgY29uc3QgQ3VzdG9tRmlsdGVy
UHJvZ3JhbUluZm8mKTsKIAotICAgIHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7Ci0KICAgICBzdGF0
aWMgU3RyaW5nIGRlZmF1bHRWZXJ0ZXhTaGFkZXJTdHJpbmcoKTsKICAgICBzdGF0aWMgU3RyaW5n
IGRlZmF1bHRGcmFnbWVudFNoYWRlclN0cmluZygpOwogCkBAIC0xMDksNyArOTUsNiBAQCBwcml2
YXRlOgogICAgIFN0cmluZyBtX3ZhbGlkYXRlZEZyYWdtZW50U2hhZGVyOwogCiAgICAgUmVmUHRy
PEN1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbT4gbV9jb21waWxlZFByb2dyYW07Ci0gICAgUGxh
dGZvcm1Db21waWxlZFByb2dyYW0qIG1fcGxhdGZvcm1Db21waWxlZFByb2dyYW07CiAKICAgICBi
b29sIG1faXNJbml0aWFsaXplZDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2JsYWNrYmVycnkvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJv
Z3JhbUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9ibGFja2JlcnJ5L0N1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW1CbGFja0JlcnJ5LmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQ5OGVmN2NjMDgyM2ZkMjJhNjA0N2Yw
MjljNzI1YmM5MzFlZWQzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL2JsYWNrYmVy
cnkvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbUJsYWNrQmVycnkuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SCi0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENTU19TSEFERVJTKQotCi0jaW5jbHVkZSAi
Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5oIgotCi0jaW5jbHVkZSAiTGF5ZXJDb21waWxl
ZFByb2dyYW0uaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1MYXllckNvbXBpbGVkUHJvZ3Jh
bSogQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbTo6cGxhdGZvcm1Db21waWxlZFByb2dyYW0o
KQotewotICAgIEFTU0VSVChtX2lzSW5pdGlhbGl6ZWQgJiYgIW1fdmFsaWRhdGVkVmVydGV4U2hh
ZGVyLmlzTnVsbCgpICYmICFtX3ZhbGlkYXRlZEZyYWdtZW50U2hhZGVyLmlzTnVsbCgpKTsKLQot
ICAgIGlmICghbV9wbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSkKLSAgICAgICAgbV9wbGF0Zm9ybUNv
bXBpbGVkUHJvZ3JhbSA9IExheWVyQ29tcGlsZWRQcm9ncmFtOjpjcmVhdGUobV92YWxpZGF0ZWRW
ZXJ0ZXhTaGFkZXIsIG1fdmFsaWRhdGVkRnJhZ21lbnRTaGFkZXIpLmxlYWtSZWYoKTsKLQotICAg
IHJldHVybiBtX3BsYXRmb3JtQ29tcGlsZWRQcm9ncmFtOwotfQotCi12b2lkIEN1c3RvbUZpbHRl
clZhbGlkYXRlZFByb2dyYW06OnBsYXRmb3JtRGVzdHJveSgpCi17Ci0gICAgZGVyZWZJZk5vdE51
bGwobV9wbGF0Zm9ybUNvbXBpbGVkUHJvZ3JhbSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>