<?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>6091</bug_id>
          
          <creation_ts>2005-12-15 00:49:05 -0800</creation_ts>
          <short_desc>Remove more legacy code from khtml/kwq</short_desc>
          <delta_ts>2005-12-15 14:29:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>25983</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-15 00:49:05 -0800</bug_when>
    <thetext>Remove more legacy code from khtml/kwq

As we continue to work on restructuring khtml/kwq, some cleanup of legacy code is needed, particularly 
of old unused khtml classes and kwq stubs.  This bug is for one one of many patches which accomplishes 
some of this cleanup.

This one removes:
1.  all empty forwarding headers/moc files
2.  KApplication, KHTMLToolTip, QMovie, and various classes from KParts.
3.  misc. other cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25984</commentid>
    <comment_count>1</comment_count>
      <attachid>5084</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-15 00:51:24 -0800</bug_when>
    <thetext>Created attachment 5084
Cleanup patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25985</commentid>
    <comment_count>2</comment_count>
      <attachid>5084</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-15 00:51:32 -0800</bug_when>
    <thetext>Comment on attachment 5084
Cleanup patch

Another (unfortunately large but) very straightforward patch which just removes
code &amp; unnecessary headers as well as fixes some spacing in kthml/kwq.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26002</commentid>
    <comment_count>3</comment_count>
      <attachid>5084</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-15 06:30:02 -0800</bug_when>
    <thetext>Comment on attachment 5084
Cleanup patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5084</attachid>
            <date>2005-12-15 00:51:24 -0800</date>
            <delta_ts>2005-12-15 06:30:02 -0800</delta_ts>
            <desc>Cleanup patch</desc>
            <filename>more_cleanup.patch</filename>
            <type>text/plain</type>
            <size>93152</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2thcHBsaWNhdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IEZvcndhcmRpbmdIZWFkZXJzL2thcHBsaWNhdGlvbi5oCmRpZmYgLU4gRm9yd2FyZGluZ0hl
YWRlcnMva2FwcGxpY2F0aW9uLmgKLS0tIEZvcndhcmRpbmdIZWFkZXJzL2thcHBsaWNhdGlvbi5o
CTIzIFNlcCAyMDA0IDA2OjIxOjI2IC0wMDAwCTEuMgorKysgRm9yd2FyZGluZ0hlYWRlcnMva2Fw
cGxpY2F0aW9uLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMApAQCAtMSArMCwwIEBACi0jaW1w
b3J0ICJLV1FLQXBwbGljYXRpb24uaCIKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tjb21wbGV0
aW9uYm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2NvbXBsZXRp
b25ib3guaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2tjb21wbGV0aW9uYm94LmgKSW5kZXg6
IEZvcndhcmRpbmdIZWFkZXJzL2tkYXRhc3RyZWFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9y
d2FyZGluZ0hlYWRlcnMva2RhdGFzdHJlYW0uaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2tk
YXRhc3RyZWFtLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tmaWxlZGlhbG9nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2ZpbGVkaWFsb2cuaApkaWZmIC1OIEZv
cndhcmRpbmdIZWFkZXJzL2tmaWxlZGlhbG9nLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tm
aWxlaXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL2tmaWxlaXRl
bS5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva2ZpbGVpdGVtLmgKSW5kZXg6IEZvcndhcmRp
bmdIZWFkZXJzL2todG1sX2lmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hl
YWRlcnMva2h0bWxfaWZhY2UuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2todG1sX2lmYWNl
LmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2todG1sX3BhZ2VjYWNoZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL2todG1sX3BhZ2VjYWNoZS5oCmRpZmYgLU4gRm9y
d2FyZGluZ0hlYWRlcnMva2h0bWxfcGFnZWNhY2hlLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJz
L2todG1sX3ByaW50c2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVh
ZGVycy9raHRtbF9wcmludHNldHRpbmdzLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9raHRt
bF9wcmludHNldHRpbmdzLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2todG1sX3J1bi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL2todG1sX3J1bi5oCmRpZmYgLU4g
Rm9yd2FyZGluZ0hlYWRlcnMva2h0bWxfcnVuLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tp
Y29ubG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2ljb25s
b2FkZXIuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2tpY29ubG9hZGVyLmgKSW5kZXg6IEZv
cndhcmRpbmdIZWFkZXJzL2ttZXNzYWdlYm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2Fy
ZGluZ0hlYWRlcnMva21lc3NhZ2Vib3guaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2ttZXNz
YWdlYm94LmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2ttaW1ldHlwZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL2ttaW1ldHlwZS5oCmRpZmYgLU4gRm9yd2FyZGlu
Z0hlYWRlcnMva21pbWV0eXBlLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2ttdWx0aXBsZWRy
YWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9rbXVsdGlwbGVkcmFn
LmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9rbXVsdGlwbGVkcmFnLmgKSW5kZXg6IEZvcndh
cmRpbmdIZWFkZXJzL2twcmludGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hl
YWRlcnMva3ByaW50ZXIuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2twcmludGVyLmgKSW5k
ZXg6IEZvcndhcmRpbmdIZWFkZXJzL2twcm90b2NvbG1hbmFnZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiBGb3J3YXJkaW5nSGVhZGVycy9rcHJvdG9jb2xtYW5hZ2VyLmgKZGlmZiAtTiBGb3J3YXJk
aW5nSGVhZGVycy9rcHJvdG9jb2xtYW5hZ2VyLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tz
aW1wbGVjb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9rc2lt
cGxlY29uZmlnLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9rc2ltcGxlY29uZmlnLmgKSW5k
ZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tzc2xjZXJ0Y2hhaW4uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiBGb3J3YXJkaW5nSGVhZGVycy9rc3NsY2VydGNoYWluLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVh
ZGVycy9rc3NsY2VydGNoYWluLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tzc2xpbmZvZGxn
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva3NzbGluZm9kbGcuaApk
aWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2tzc2xpbmZvZGxnLmgKSW5kZXg6IEZvcndhcmRpbmdI
ZWFkZXJzL2tzdGRhY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVy
cy9rc3RkYWN0aW9uLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9rc3RkYWN0aW9uLmgKSW5k
ZXg6IEZvcndhcmRpbmdIZWFkZXJzL2t0ZW1wZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZv
cndhcmRpbmdIZWFkZXJzL2t0ZW1wZmlsZS5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva3Rl
bXBmaWxlLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2t0cmFkZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9rdHJhZGVyLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVh
ZGVycy9rdHJhZGVyLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2t1cmxkcmFnLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva3VybGRyYWcuaApkaWZmIC1OIEZvcndh
cmRpbmdIZWFkZXJzL2t1cmxkcmFnLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2t4bWxndWlm
YWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva3htbGd1aWZh
Y3RvcnkuaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL2t4bWxndWlmYWN0b3J5LmgKSW5kZXg6
IEZvcndhcmRpbmdIZWFkZXJzL25ldGFjY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndh
cmRpbmdIZWFkZXJzL25ldGFjY2Vzcy5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvbmV0YWNj
ZXNzLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL3Fhc3luY2ltYWdlaW8uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9xYXN5bmNpbWFnZWlvLmgKZGlmZiAtTiBGb3J3
YXJkaW5nSGVhZGVycy9xYXN5bmNpbWFnZWlvLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL3Fi
aXRtYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9xYml0bWFwLmgK
ZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9xYml0bWFwLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFk
ZXJzL3FjbGlwYm9hcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9x
Y2xpcGJvYXJkLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9xY2xpcGJvYXJkLmgKSW5kZXg6
IEZvcndhcmRpbmdIZWFkZXJzL3FkaXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5n
SGVhZGVycy9xZGlyLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9xZGlyLmgKSW5kZXg6IEZv
cndhcmRpbmdIZWFkZXJzL3FkcmF3dXRpbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRp
bmdIZWFkZXJzL3FkcmF3dXRpbC5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvcWRyYXd1dGls
LmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL3Fmb250ZGF0YWJhc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9xZm9udGRhdGFiYXNlLmgKZGlmZiAtTiBGb3J3YXJk
aW5nSGVhZGVycy9xZm9udGRhdGFiYXNlLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL3Fmb250
aW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL3Fmb250aW5mby5o
CmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvcWZvbnRpbmZvLmgKSW5kZXg6IEZvcndhcmRpbmdI
ZWFkZXJzL3FnbG9iYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9x
Z2xvYmFsLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9xZ2xvYmFsLmgKSW5kZXg6IEZvcndh
cmRpbmdIZWFkZXJzL3FoYm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRl
cnMvcWhib3guaApkaWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL3FoYm94LmgKSW5kZXg6IEZvcndh
cmRpbmdIZWFkZXJzL3FpbnB1dGRpYWxvZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRp
bmdIZWFkZXJzL3FpbnB1dGRpYWxvZy5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvcWlucHV0
ZGlhbG9nLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL3FpbnRjYWNoZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL3FpbnRjYWNoZS5oCmRpZmYgLU4gRm9yd2FyZGlu
Z0hlYWRlcnMvcWludGNhY2hlLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL3FtZXRhb2JqZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQpSQ1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMvcW1ldGFvYmplY3QuaApk
aWZmIC1OIEZvcndhcmRpbmdIZWFkZXJzL3FtZXRhb2JqZWN0LmgKSW5kZXg6IEZvcndhcmRpbmdI
ZWFkZXJzL3Ftb3ZpZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL3Ft
b3ZpZS5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvcW1vdmllLmgKLS0tIEZvcndhcmRpbmdI
ZWFkZXJzL3Ftb3ZpZS5oCTIzIFNlcCAyMDA0IDA2OjIxOjI3IC0wMDAwCTEuMgorKysgRm9yd2Fy
ZGluZ0hlYWRlcnMvcW1vdmllLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMApAQCAtMSArMCww
IEBACi0jaW1wb3J0ICJLV1FNb3ZpZS5oIgpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMvcW9iamVj
dGxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9xb2JqZWN0bGlz
dC5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvcW9iamVjdGxpc3QuaApJbmRleDogRm9yd2Fy
ZGluZ0hlYWRlcnMvcXRvb2x0aXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVh
ZGVycy9xdG9vbHRpcC5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvcXRvb2x0aXAuaAotLS0g
Rm9yd2FyZGluZ0hlYWRlcnMvcXRvb2x0aXAuaAkyMyBNYXkgMjAwNCAyMjo0NToyNyAtMDAwMAkx
LjIKKysrIEZvcndhcmRpbmdIZWFkZXJzL3F0b29sdGlwLmgJMSBKYW4gMTk3MCAwMDowMDowMCAt
MDAwMApAQCAtMSArMCwwIEBACi0jZGVmaW5lIFFUX05PX1RPT0xUSVAKSW5kZXg6IEZvcndhcmRp
bmdIZWFkZXJzL3NjaGVkdWxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFk
ZXJzL3NjaGVkdWxlci5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvc2NoZWR1bGVyLmgKSW5k
ZXg6IEZvcndhcmRpbmdIZWFkZXJzL2tpby9rcHJvdG9jb2xtYW5hZ2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogRm9yd2FyZGluZ0hlYWRlcnMva2lvL2twcm90b2NvbG1hbmFnZXIuaApkaWZmIC1O
IEZvcndhcmRpbmdIZWFkZXJzL2tpby9rcHJvdG9jb2xtYW5hZ2VyLmgKSW5kZXg6IEZvcndhcmRp
bmdIZWFkZXJzL2tpby9uZXRhY2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5n
SGVhZGVycy9raW8vbmV0YWNjZXNzLmgKZGlmZiAtTiBGb3J3YXJkaW5nSGVhZGVycy9raW8vbmV0
YWNjZXNzLmgKSW5kZXg6IEZvcndhcmRpbmdIZWFkZXJzL2twYXJ0cy9wYXJ0bWFuYWdlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IEZvcndhcmRpbmdIZWFkZXJzL2twYXJ0cy9wYXJ0bWFuYWdlci5o
CmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMva3BhcnRzL3BhcnRtYW5hZ2VyLmgKLS0tIEZvcndh
cmRpbmdIZWFkZXJzL2twYXJ0cy9wYXJ0bWFuYWdlci5oCTIzIFNlcCAyMDA0IDA2OjIxOjI3IC0w
MDAwCTEuMworKysgRm9yd2FyZGluZ0hlYWRlcnMva3BhcnRzL3BhcnRtYW5hZ2VyLmgJMSBKYW4g
MTk3MCAwMDowMDowMCAtMDAwMApAQCAtMSArMCwwIEBACi0jaW1wb3J0ICJLV1FLUGFydHNQYXJ0
TWFuYWdlci5oIgpJbmRleDogRm9yd2FyZGluZ0hlYWRlcnMvcHJpdmF0ZS9xdWNvbWV4dHJhX3Au
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiBGb3J3YXJkaW5nSGVhZGVycy9wcml2YXRlL3F1Y29tZXh0
cmFfcC5oCmRpZmYgLU4gRm9yd2FyZGluZ0hlYWRlcnMvcHJpdmF0ZS9xdWNvbWV4dHJhX3AuaApJ
bmRleDogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaix2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NQpkaWZmIC1wIC11IC1yMS41NSBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKLS0tIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkxNCBEZWMgMjAwNSAyMzozMTozOCAtMDAwMAkxLjU1CisrKyBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJMTUgRGVjIDIwMDUgMDg6Mzk6NTIgLTAwMDAKQEAgLTE4Nyw3ICsxODcs
NiBAQAogCQk5M0YxOTkzRTA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRR3VhcmRlZFB0ci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2OTAwMkRFM0I4
NjAxRUE0MTIyIC8qIEtXUUd1YXJkZWRQdHIuaCAqLzsgfTsKIAkJOTNGMTk5M0YwODI0NUU1OTAw
MUU5QUJDIC8qIEtXUUlPRGV2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTg3ODY5NjAyREUzQjg2MDFFQTQxMjIgLyogS1dRSU9EZXZpY2UuaCAq
LzsgfTsKIAkJOTNGMTk5NDAwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUltYWdlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY5MjAyREUzQjg2MDFF
QTQxMjIgLyogS1dRSW1hZ2UuaCAqLzsgfTsKLQkJOTNGMTk5NDEwODI0NUU1OTAwMUU5QUJDIC8q
IEtXUUtBcHBsaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU4Nzg1RjAwMkRFMzgyMDAxRUE0MTIyIC8qIEtXUUtBcHBsaWNhdGlvbi5oICov
OyB9OwogCQk5M0YxOTk0MjA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS0NoYXJzZXRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODVGMTAyREUzODIw
MDFFQTQxMjIgLyogS1dRS0NoYXJzZXRzLmggKi87IH07CiAJCTkzRjE5OTQzMDgyNDVFNTkwMDFF
OUFCQyAvKiBLV1FLQ29tYm9Cb3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1ODc4NjFFMDJERTM5ODQwMUVBNDEyMiAvKiBLV1FLQ29tYm9Cb3guaCAq
LzsgfTsKIAkJOTNGMTk5NDQwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUtDb25maWdCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODVGMzAyREUz
ODIwMDFFQTQxMjIgLyogS1dRS0NvbmZpZ0Jhc2UuaCAqLzsgfTsKQEAgLTE5OCw3ICsxOTcsNiBA
QAogCQk5M0YxOTk0OTA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS0dsb2JhbFNldHRpbmdzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODVGNjAyREUz
ODIwMDFFQTQxMjIgLyogS1dRS0dsb2JhbFNldHRpbmdzLmggKi87IH07CiAJCTkzRjE5OTRBMDgy
NDVFNTkwMDFFOUFCQyAvKiBLV1FLSFRNTEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NjM0MDJERTNBMTQwMUVBNDEyMiAvKiBLV1FL
SFRNTEZhY3RvcnkuaCAqLzsgfTsKIAkJOTNGMTk5NEIwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUtI
VE1MRmluZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU4Nzg2MzUwMkRFM0ExNDAxRUE0MTIyIC8qIEtXUUtIVE1MRmluZC5oICovOyB9OwotCQk5M0Yx
OTk0QzA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS0hUTUxQYWdlQ2FjaGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NjM3MDJERTNBMTQwMUVBNDEy
MiAvKiBLV1FLSFRNTFBhZ2VDYWNoZS5oICovOyB9OwogCQk5M0YxOTk0RDA4MjQ1RTU5MDAxRTlB
QkMgLyogS1dRS0hUTUxQYXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTg3ODRGQTAyREUzNzU5MDFFQTQxMjIgLyogS1dRS0hUTUxQYXJ0LmggKi87
IH07CiAJCTkzRjE5OTRFMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLSFRNTFBhcnRCcm93c2VyRXh0
ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTg3ODYzMzAyREUzQTE0MDFFQTQxMjIgLyogS1dRS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbi5o
ICovOyB9OwogCQk5M0YxOTk0RjA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS0hUTUxTZXR0aW5ncy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2M0Ew
MkRFM0ExNDAxRUE0MTIyIC8qIEtXUUtIVE1MU2V0dGluZ3MuaCAqLzsgfTsKQEAgLTIxOCw3ICsy
MTYsNiBAQAogCQk5M0YxOTk1RTA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS1BhcnRzRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NjY5MDJE
RTNCMzIwMUVBNDEyMiAvKiBLV1FLUGFydHNFdmVudC5oICovOyB9OwogCQk5M0YxOTk2MDA4MjQ1
RTU5MDAxRTlBQkMgLyogS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY2QjAyREUzQjMyMDFFQTQxMjIg
LyogS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVyLmggKi87IH07CiAJCTkzRjE5OTYxMDgyNDVFNTkw
MDFFOUFCQyAvKiBLV1FLUGFydHNQYXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY2QzAyREUzQjMyMDFFQTQxMjIgLyogS1dRS1BhcnRzUGFy
dC5oICovOyB9OwotCQk5M0YxOTk2MjA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS1BhcnRzUGFydE1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
ODc4NjZEMDJERTNCMzIwMUVBNDEyMiAvKiBLV1FLUGFydHNQYXJ0TWFuYWdlci5oICovOyB9Owog
CQk5M0YxOTk2MzA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS1NTTEtleUdlbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2NjIwMkRFM0IxMTAxRUE0
MTIyIC8qIEtXUUtTU0xLZXlHZW4uaCAqLzsgfTsKIAkJOTNGMTk5NjQwODI0NUU1OTAwMUU5QUJD
IC8qIEtXUUtTdGFuZGFyZERpcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1ODc4NUZGMDJERTM4MjAwMUVBNDEyMiAvKiBLV1FLU3RhbmRhcmREaXJz
LmggKi87IH07CiAJCTkzRjE5OTY1MDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLU3RhdGljRGVsZXRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg1
RkUwMkRFMzgyMDAxRUE0MTIyIC8qIEtXUUtTdGF0aWNEZWxldGVyLmggKi87IH07CkBAIC0yMzUs
NyArMjMyLDYgQEAKIAkJOTNGMTk5NzAwODI0NUU1OTAwMUU5QUJDIC8qIEtXUU1hcC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2OUEwMkRFM0I4
NjAxRUE0MTIyIC8qIEtXUU1hcC5oICovOyB9OwogCQk5M0YxOTk3MTA4MjQ1RTU5MDAxRTlBQkMg
LyogS1dRTWFwSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjU4Nzg1MTgwMkRFMzc1OTAxRUE0MTIyIC8qIEtXUU1hcEltcGwuaCAqLzsgfTsKIAkJ
OTNGMTk5NzIwODI0NUU1OTAwMUU5QUJDIC8qIEtXUU1lbUFycmF5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY3NzAyREUzQjg2MDFFQTQxMjIg
LyogS1dRTWVtQXJyYXkuaCAqLzsgfTsKLQkJOTNGMTk5NzMwODI0NUU1OTAwMUU5QUJDIC8qIEtX
UU1vdmllLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTg3ODY5RDAyREUzQjg2MDFFQTQxMjIgLyogS1dRTW92aWUuaCAqLzsgfTsKIAkJOTNGMTk5NzUw
ODI0NUU1OTAwMUU5QUJDIC8qIEtXUU5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2OUUwMkRFM0I4NjAxRUE0MTIyIC8qIEtXUU5h
bWVzcGFjZS5oICovOyB9OwogCQk5M0YxOTk3NjA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRT2JqZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY5
RjAyREUzQjg2MDFFQTQxMjIgLyogS1dRT2JqZWN0LmggKi87IH07CiAJCTkzRjE5OTc3MDgyNDVF
NTkwMDFFOUFCQyAvKiBLV1FQYWdlU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTRFMEE0MDNBQTVCQkUwMDg2MzVDRSAvKiBLV1FQYWdlU3Rh
dGUuaCAqLzsgfTsKQEAgLTQyMiw3ICs0MTgsNiBAQAogCQk5M0YxOUEzQjA4MjQ1RTU5MDAxRTlB
QkMgLyogS1dRTGlzdEJveC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1ODc4NTE0MDJERTM3NTkwMUVBNDEyMiAvKiBLV1FMaXN0Qm94Lm1tICovOyB9
OwogCQk5M0YxOUEzQzA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRTGlzdEltcGwubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODUxNjAyREUzNzU5MDFF
QTQxMjIgLyogS1dRTGlzdEltcGwubW0gKi87IH07CiAJCTkzRjE5QTNEMDgyNDVFNTkwMDFFOUFC
QyAvKiBLV1FNYXBJbXBsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU4Nzg1MTkwMkRFMzc1OTAxRUE0MTIyIC8qIEtXUU1hcEltcGwubW0gKi87IH07
Ci0JCTkzRjE5QTNFMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FNb3ZpZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NTFBMDJERTM3NTkwMUVBNDEy
MiAvKiBLV1FNb3ZpZS5tbSAqLzsgfTsKIAkJOTNGMTlBM0YwODI0NUU1OTAwMUU5QUJDIC8qIEtX
UVRleHRGaWVsZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1ODc4NTFDMDJERTM3NTkwMUVBNDEyMiAvKiBLV1FUZXh0RmllbGQubW0gKi87IH07CiAJ
CTkzRjE5QTQwMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FPYmplY3QubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODUxRDAyREUzNzU5MDFFQTQxMjIg
LyogS1dRT2JqZWN0Lm1tICovOyB9OwogCQk5M0YxOUE0MTA4MjQ1RTU5MDAxRTlBQkMgLyogS1dR
UGFpbnREZXZpY2VNZXRyaWNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU4Nzg1MUUwMkRFMzc1OTAxRUE0MTIyIC8qIEtXUVBhaW50RGV2aWNlTWV0
cmljcy5tbSAqLzsgfTsKQEAgLTcyMSw3ICs3MTYsNiBAQAogCQlBODIxMkIwOTA4Nzk0QTIzMDA2
NzczNTkgLyogS1dRR3VhcmRlZFB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU4Nzg2OTAwMkRFM0I4NjAxRUE0MTIyIC8qIEtXUUd1YXJkZWRQdHIu
aCAqLzsgfTsKIAkJQTgyMTJCMEEwODc5NEEyMzAwNjc3MzU5IC8qIEtXUUlPRGV2aWNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY5NjAyREUz
Qjg2MDFFQTQxMjIgLyogS1dRSU9EZXZpY2UuaCAqLzsgfTsKIAkJQTgyMTJCMEIwODc5NEEyMzAw
Njc3MzU5IC8qIEtXUUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTg3ODY5MjAyREUzQjg2MDFFQTQxMjIgLyogS1dRSW1hZ2UuaCAqLzsgfTsK
LQkJQTgyMTJCMEMwODc5NEEyMzAwNjc3MzU5IC8qIEtXUUtBcHBsaWNhdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg1RjAwMkRFMzgyMDAx
RUE0MTIyIC8qIEtXUUtBcHBsaWNhdGlvbi5oICovOyB9OwogCQlBODIxMkIwRDA4Nzk0QTIzMDA2
NzczNTkgLyogS1dRS0NoYXJzZXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTg3ODVGMTAyREUzODIwMDFFQTQxMjIgLyogS1dRS0NoYXJzZXRzLmgg
Ki87IH07CiAJCUE4MjEyQjBFMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FLQ29tYm9Cb3guaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NjFFMDJERTM5
ODQwMUVBNDEyMiAvKiBLV1FLQ29tYm9Cb3guaCAqLzsgfTsKIAkJQTgyMTJCMEYwODc5NEEyMzAw
Njc3MzU5IC8qIEtXUUtDb25maWdCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODVGMzAyREUzODIwMDFFQTQxMjIgLyogS1dRS0NvbmZpZ0Jh
c2UuaCAqLzsgfTsKQEAgLTczMiw3ICs3MjYsNiBAQAogCQlBODIxMkIxNDA4Nzk0QTIzMDA2Nzcz
NTkgLyogS1dRS0dsb2JhbFNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODVGNjAyREUzODIwMDFFQTQxMjIgLyogS1dRS0dsb2JhbFNl
dHRpbmdzLmggKi87IH07CiAJCUE4MjEyQjE1MDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FLSFRNTEZh
Y3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1
ODc4NjM0MDJERTNBMTQwMUVBNDEyMiAvKiBLV1FLSFRNTEZhY3RvcnkuaCAqLzsgfTsKIAkJQTgy
MTJCMTYwODc5NEEyMzAwNjc3MzU5IC8qIEtXUUtIVE1MRmluZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2MzUwMkRFM0ExNDAxRUE0MTIyIC8q
IEtXUUtIVE1MRmluZC5oICovOyB9OwotCQlBODIxMkIxNzA4Nzk0QTIzMDA2NzczNTkgLyogS1dR
S0hUTUxQYWdlQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1ODc4NjM3MDJERTNBMTQwMUVBNDEyMiAvKiBLV1FLSFRNTFBhZ2VDYWNoZS5oICov
OyB9OwogCQlBODIxMkIxODA4Nzk0QTIzMDA2NzczNTkgLyogS1dRS0hUTUxQYXJ0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODRGQTAyREUzNzU5
MDFFQTQxMjIgLyogS1dRS0hUTUxQYXJ0LmggKi87IH07CiAJCUE4MjEyQjE5MDg3OTRBMjMwMDY3
NzM1OSAvKiBLV1FLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODYzMzAyREUzQTE0MDFFQTQxMjIgLyog
S1dRS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbi5oICovOyB9OwogCQlBODIxMkIxQTA4Nzk0QTIz
MDA2NzczNTkgLyogS1dRS0hUTUxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg2M0EwMkRFM0ExNDAxRUE0MTIyIC8qIEtXUUtIVE1M
U2V0dGluZ3MuaCAqLzsgfTsKQEAgLTc1Miw3ICs3NDUsNiBAQAogCQlBODIxMkIyOTA4Nzk0QTIz
MDA2NzczNTkgLyogS1dRS1BhcnRzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NjY5MDJERTNCMzIwMUVBNDEyMiAvKiBLV1FLUGFydHNF
dmVudC5oICovOyB9OwogCQlBODIxMkIyQjA4Nzk0QTIzMDA2NzczNTkgLyogS1dRS1BhcnRzSGlz
dG9yeVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTg3ODY2QjAyREUzQjMyMDFFQTQxMjIgLyogS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVy
LmggKi87IH07CiAJCUE4MjEyQjJDMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FLUGFydHNQYXJ0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY2QzAy
REUzQjMyMDFFQTQxMjIgLyogS1dRS1BhcnRzUGFydC5oICovOyB9OwotCQlBODIxMkIyRDA4Nzk0
QTIzMDA2NzczNTkgLyogS1dRS1BhcnRzUGFydE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NjZEMDJERTNCMzIwMUVBNDEyMiAvKiBL
V1FLUGFydHNQYXJ0TWFuYWdlci5oICovOyB9OwogCQlBODIxMkIyRTA4Nzk0QTIzMDA2NzczNTkg
LyogS1dRS1NTTEtleUdlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjU4Nzg2NjIwMkRFM0IxMTAxRUE0MTIyIC8qIEtXUUtTU0xLZXlHZW4uaCAqLzsg
fTsKIAkJQTgyMTJCMkYwODc5NEEyMzAwNjc3MzU5IC8qIEtXUUtTdGFuZGFyZERpcnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NUZGMDJERTM4
MjAwMUVBNDEyMiAvKiBLV1FLU3RhbmRhcmREaXJzLmggKi87IH07CiAJCUE4MjEyQjMwMDg3OTRB
MjMwMDY3NzM1OSAvKiBLV1FLU3RhdGljRGVsZXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg1RkUwMkRFMzgyMDAxRUE0MTIyIC8qIEtXUUtT
dGF0aWNEZWxldGVyLmggKi87IH07CkBAIC03NjksNyArNzYxLDYgQEAKIAkJQTgyMTJCM0IwODc5
NEEyMzAwNjc3MzU5IC8qIEtXUU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU4Nzg2OUEwMkRFM0I4NjAxRUE0MTIyIC8qIEtXUU1hcC5oICovOyB9
OwogCQlBODIxMkIzQzA4Nzk0QTIzMDA2NzczNTkgLyogS1dRTWFwSW1wbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg1MTgwMkRFMzc1OTAxRUE0
MTIyIC8qIEtXUU1hcEltcGwuaCAqLzsgfTsKIAkJQTgyMTJCM0QwODc5NEEyMzAwNjc3MzU5IC8q
IEtXUU1lbUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTg3ODY3NzAyREUzQjg2MDFFQTQxMjIgLyogS1dRTWVtQXJyYXkuaCAqLzsgfTsKLQkJ
QTgyMTJCM0UwODc5NEEyMzAwNjc3MzU5IC8qIEtXUU1vdmllLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY5RDAyREUzQjg2MDFFQTQxMjIgLyog
S1dRTW92aWUuaCAqLzsgfTsKIAkJQTgyMTJCNDAwODc5NEEyMzAwNjc3MzU5IC8qIEtXUU5hbWVz
cGFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4
Nzg2OUUwMkRFM0I4NjAxRUE0MTIyIC8qIEtXUU5hbWVzcGFjZS5oICovOyB9OwogCQlBODIxMkI0
MTA4Nzk0QTIzMDA2NzczNTkgLyogS1dRT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTg3ODY5RjAyREUzQjg2MDFFQTQxMjIgLyogS1dRT2Jq
ZWN0LmggKi87IH07CiAJCUE4MjEyQjQyMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FQYWdlU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTRFMEE0
MDNBQTVCQkUwMDg2MzVDRSAvKiBLV1FQYWdlU3RhdGUuaCAqLzsgfTsKQEAgLTk4OCw3ICs5Nzks
NiBAQAogCQlBODIxMkMyMjA4Nzk0QTIzMDA2NzczNTkgLyogS1dRTGlzdEJveC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NTE0MDJERTM3NTkw
MUVBNDEyMiAvKiBLV1FMaXN0Qm94Lm1tICovOyB9OwogCQlBODIxMkMyMzA4Nzk0QTIzMDA2Nzcz
NTkgLyogS1dRTGlzdEltcGwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTg3ODUxNjAyREUzNzU5MDFFQTQxMjIgLyogS1dRTGlzdEltcGwubW0gKi87
IH07CiAJCUE4MjEyQzI0MDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FNYXBJbXBsLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg1MTkwMkRFMzc1OTAx
RUE0MTIyIC8qIEtXUU1hcEltcGwubW0gKi87IH07Ci0JCUE4MjEyQzI1MDg3OTRBMjMwMDY3NzM1
OSAvKiBLV1FNb3ZpZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1ODc4NTFBMDJERTM3NTkwMUVBNDEyMiAvKiBLV1FNb3ZpZS5tbSAqLzsgfTsKIAkJ
QTgyMTJDMjYwODc5NEEyMzAwNjc3MzU5IC8qIEtXUVRleHRGaWVsZC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1ODc4NTFDMDJERTM3NTkwMUVBNDEy
MiAvKiBLV1FUZXh0RmllbGQubW0gKi87IH07CiAJCUE4MjEyQzI3MDg3OTRBMjMwMDY3NzM1OSAv
KiBLV1FPYmplY3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTg3ODUxRDAyREUzNzU5MDFFQTQxMjIgLyogS1dRT2JqZWN0Lm1tICovOyB9OwogCQlB
ODIxMkMyODA4Nzk0QTIzMDA2NzczNTkgLyogS1dRUGFpbnREZXZpY2VNZXRyaWNzLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU4Nzg1MUUwMkRFMzc1
OTAxRUE0MTIyIC8qIEtXUVBhaW50RGV2aWNlTWV0cmljcy5tbSAqLzsgfTsKQEAgLTI1OTgsNyAr
MjU5Miw2IEBACiAJCUY1ODc4NTE3MDJERTM3NTkwMUVBNDEyMiAvKiBLV1FMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtXUUxvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNTg3ODUxODAyREUzNzU5MDFFQTQxMjIgLyogS1dRTWFwSW1wbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS1dRTWFwSW1wbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODUxOTAyREUzNzU5MDFFQTQxMjIgLyogS1dRTWFw
SW1wbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLV1FNYXBJ
bXBsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNTg3ODUxQTAyREUzNzU5MDFF
QTQxMjIgLyogS1dRTW92aWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gS1dRTW92aWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NTFC
MDJERTM3NTkwMUVBNDEyMiAvKiBLV1FUZXh0RmllbGQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEtXUVRleHRGaWVsZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTg3ODUxQzAyREUzNzU5MDFFQTQxMjIgLyogS1dRVGV4dEZpZWxkLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtXUVRleHRGaWVsZC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg1MUQwMkRFMzc1OTAxRUE0MTIyIC8qIEtXUU9iamVj
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLV1FPYmplY3Qu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNjQ4LDcgKzI2NDEsNiBAQAogCQlG
NTg3ODU1NDAyREUzNzU5MDFFQTQxMjIgLyogV2ViQ29yZVZpZXdGYWN0b3J5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVmlld0ZhY3RvcnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg1NTUwMkRFMzc1OTAxRUE0MTIyIC8qIFdlYkNvcmVW
aWV3RmFjdG9yeS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViQ29y
ZVZpZXdGYWN0b3J5Lm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4NUVBMDJE
RTM3Q0IwMUVBNDEyMiAvKiBLV1FEQ09QQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBLV1FEQ09QQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUY1ODc4NUYwMDJERTM4MjAwMUVBNDEyMiAvKiBLV1FLQXBwbGljYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtXUUtBcHBsaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNTg3ODVGMTAyREUzODIwMDFFQTQxMjIgLyogS1dRS0NoYXJzZXRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLQ2hhcnNldHMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg1RjMwMkRFMzgyMDAxRUE0MTIyIC8qIEtX
UUtDb25maWdCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLQ29u
ZmlnQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODVGNDAyREUzODIw
MDFFQTQxMjIgLyogS1dRS0RlYnVnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBLV1FLRGVidWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NzEsNyArMjY2
Myw2IEBACiAJCUY1ODc4NjMzMDJERTNBMTQwMUVBNDEyMiAvKiBLV1FLSFRNTFBhcnRCcm93c2Vy
RXh0ZW5zaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLSFRNTFBh
cnRCcm93c2VyRXh0ZW5zaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4
NjM0MDJERTNBMTQwMUVBNDEyMiAvKiBLV1FLSFRNTEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEtXUUtIVE1MRmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNTg3ODYzNTAyREUzQTE0MDFFQTQxMjIgLyogS1dRS0hUTUxGaW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLSFRNTEZpbmQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjU4Nzg2MzcwMkRFM0ExNDAxRUE0MTIyIC8qIEtXUUtIVE1M
UGFnZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLSFRNTFBh
Z2VDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODYzQTAyREUzQTE0
MDFFQTQxMjIgLyogS1dRS0hUTUxTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gS1dRS0hUTUxTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNTg3ODY0NDAyREUzQTc3MDFFQTQxMjIgLyogS1dRS0phdmFBcHBsZXRDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLSmF2YUFwcGxldENvbnRleHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg2NDUwMkRFM0E3NzAxRUE0MTIyIC8q
IEtXUUtKYXZhQXBwbGV0V2lkZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBLV1FLSmF2YUFwcGxldFdpZGdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjY4NSw3ICsyNjc2LDYgQEAKIAkJRjU4Nzg2NjkwMkRFM0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0
c0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FLUGFydHNFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODY2QjAyREUzQjMyMDFFQTQx
MjIgLyogS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBLV1FLUGFydHNIaXN0b3J5UHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjU4Nzg2NkMwMkRFM0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0c1BhcnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtXUUtQYXJ0c1BhcnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjU4Nzg2NkQwMkRFM0IzMjAxRUE0MTIyIC8qIEtXUUtQ
YXJ0c1BhcnRNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FL
UGFydHNQYXJ0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODY3
NjAyREUzQjg2MDFFQTQxMjIgLyogS1dRQXBwbGljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBLV1FBcHBsaWNhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODY3NzAyREUzQjg2MDFFQTQxMjIgLyogS1dRTWVt
QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtXUU1lbUFycmF5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1ODc4Njc5MDJERTNCODYwMUVBNDEyMiAv
KiBLV1FBc3luY0lPLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FBc3lu
Y0lPLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzExLDcgKzI3MDEsNiBAQAog
CQlGNTg3ODY5OTAyREUzQjg2MDFFQTQxMjIgLyogS1dRUHRyTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gS1dRUHRyTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTg3ODY5QTAyREUzQjg2MDFFQTQxMjIgLyogS1dRTWFwLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjU4Nzg2OUIwMkRFM0I4NjAxRUE0MTIyIC8qIEtXUU1lbUFycmF5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FNZW1BcnJheS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlGNTg3ODY5RDAyREUzQjg2MDFFQTQxMjIgLyogS1dRTW92aWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtXUU1vdmllLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY1ODc4NjlFMDJERTNCODYwMUVBNDEyMiAvKiBLV1FOYW1lc3BhY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtXUU5hbWVzcGFjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTg3ODY5RjAyREUzQjg2MDFFQTQxMjIgLyogS1dR
T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FPYmplY3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjU4Nzg2QTEwMkRFM0I4NjAxRUE0MTIyIC8q
IEtXUVBhaW50RGV2aWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLV1FQ
YWludERldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDAzMiw3ICs0MDIz
LDYgQEAKIAkJRjU4Nzg2MUMwMkRFMzgyMjAxRUE0MTIyIC8qIGtkZWNvcmUgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUY1ODc4NUYwMDJERTM4MjAwMUVB
NDEyMiAvKiBLV1FLQXBwbGljYXRpb24uaCAqLywKIAkJCQlGNTg3ODRDNDAyREUzNzU4MDFFQTQx
MjIgLyogS1dRQXBwbGljYXRpb24ubW0gKi8sCiAJCQkJRjU4Nzg1RjEwMkRFMzgyMDAxRUE0MTIy
IC8qIEtXUUtDaGFyc2V0cy5oICovLAogCQkJCUY1ODc4NEVCMDJERTM3NTkwMUVBNDEyMiAvKiBL
V1FLQ2hhcnNldHMubW0gKi8sCkBAIC00MDgyLDcgKzQwNzIsNiBAQAogCQkJCUY1ODc4NjM0MDJE
RTNBMTQwMUVBNDEyMiAvKiBLV1FLSFRNTEZhY3RvcnkuaCAqLywKIAkJCQlGNTg3ODRGNzAyREUz
NzU5MDFFQTQxMjIgLyogS1dRS0hUTUxGYWN0b3J5Lm1tICovLAogCQkJCUY1ODc4NjM1MDJERTNB
MTQwMUVBNDEyMiAvKiBLV1FLSFRNTEZpbmQuaCAqLywKLQkJCQlGNTg3ODYzNzAyREUzQTE0MDFF
QTQxMjIgLyogS1dRS0hUTUxQYWdlQ2FjaGUuaCAqLywKIAkJCQlGNTg3ODYzQTAyREUzQTE0MDFF
QTQxMjIgLyogS1dRS0hUTUxTZXR0aW5ncy5oICovLAogCQkJCUY1ODc4NjQ0MDJERTNBNzcwMUVB
NDEyMiAvKiBLV1FLSmF2YUFwcGxldENvbnRleHQuaCAqLywKIAkJCQlGNTg3ODY0NTAyREUzQTc3
MDFFQTQxMjIgLyogS1dRS0phdmFBcHBsZXRXaWRnZXQuaCAqLywKQEAgLTQxMjAsNyArNDEwOSw2
IEBACiAJCQkJRjU4Nzg0RjYwMkRFMzc1OTAxRUE0MTIyIC8qIEtXUUtIaXN0b3J5UHJvdmlkZXIu
bW0gKi8sCiAJCQkJRjU4Nzg2NkMwMkRFM0IzMjAxRUE0MTIyIC8qIEtXUUtQYXJ0c1BhcnQuaCAq
LywKIAkJCQk2NTczMkI2ODA1NEVGNDgzMDA3QjQyRjggLyogS1dRS1BhcnRzUGFydC5tbSAqLywK
LQkJCQlGNTg3ODY2RDAyREUzQjMyMDFFQTQxMjIgLyogS1dRS1BhcnRzUGFydE1hbmFnZXIuaCAq
LywKIAkJCSk7CiAJCQluYW1lID0ga3BhcnRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTQxODAsOCArNDE2OCw2IEBACiAJCQkJRjU4Nzg1MTgwMkRFMzc1OTAxRUE0MTIyIC8qIEtX
UU1hcEltcGwuaCAqLywKIAkJCQlGNTg3ODUxOTAyREUzNzU5MDFFQTQxMjIgLyogS1dRTWFwSW1w
bC5tbSAqLywKIAkJCQlGNTg3ODY5QjAyREUzQjg2MDFFQTQxMjIgLyogS1dRTWVtQXJyYXkuaCAq
LywKLQkJCQlGNTg3ODY5RDAyREUzQjg2MDFFQTQxMjIgLyogS1dRTW92aWUuaCAqLywKLQkJCQlG
NTg3ODUxQTAyREUzNzU5MDFFQTQxMjIgLyogS1dRTW92aWUubW0gKi8sCiAJCQkJRjU4Nzg2OUUw
MkRFM0I4NjAxRUE0MTIyIC8qIEtXUU5hbWVzcGFjZS5oICovLAogCQkJCUY1ODc4NjlGMDJERTNC
ODYwMUVBNDEyMiAvKiBLV1FPYmplY3QuaCAqLywKIAkJCQlGNTg3ODUxRDAyREUzNzU5MDFFQTQx
MjIgLyogS1dRT2JqZWN0Lm1tICovLApAQCAtNDM3NCw3ICs0MzYwLDYgQEAKIAkJCQk5M0YxOTkz
RTA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRR3VhcmRlZFB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNGMTk5M0YwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUlPRGV2aWNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5M0YxOTk0MDA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRSW1hZ2UuaCBpbiBIZWFkZXJzICov
LAotCQkJCTkzRjE5OTQxMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLQXBwbGljYXRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzRjE5OTQyMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLQ2hhcnNldHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTQzMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLQ29t
Ym9Cb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTQ0MDgyNDVFNTkwMDFFOUFCQyAvKiBL
V1FLQ29uZmlnQmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC00Mzg1LDcgKzQzNzAsNiBAQAogCQkJ
CTkzRjE5OTQ5MDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLR2xvYmFsU2V0dGluZ3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzRjE5OTRBMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLSFRNTEZhY3Rvcnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTRCMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLSFRN
TEZpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzRjE5OTRDMDgyNDVFNTkwMDFFOUFCQyAvKiBL
V1FLSFRNTFBhZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NEQwODI0NUU1OTAw
MUU5QUJDIC8qIEtXUUtIVE1MUGFydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NEUwODI0
NUU1OTAwMUU5QUJDIC8qIEtXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzRjE5OTRGMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLSFRNTFNldHRpbmdzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTQ0MDUsNyArNDM4OSw2IEBACiAJCQkJOTNGMTk5NUUwODI0NUU1
OTAwMUU5QUJDIC8qIEtXUUtQYXJ0c0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTk2
MDA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS1BhcnRzSGlzdG9yeVByb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0YxOTk2MTA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRS1BhcnRzUGFydC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJOTNGMTk5NjIwODI0NUU1OTAwMUU5QUJDIC8qIEtXUUtQYXJ0c1Bh
cnRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTk2MzA4MjQ1RTU5MDAxRTlBQkMg
LyogS1dRS1NTTEtleUdlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NjQwODI0NUU1OTAw
MUU5QUJDIC8qIEtXUUtTdGFuZGFyZERpcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTY1
MDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FLU3RhdGljRGVsZXRlci5oIGluIEhlYWRlcnMgKi8sCkBA
IC00NDIyLDcgKzQ0MDUsNiBAQAogCQkJCTkzRjE5OTcwMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FN
YXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTcxMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FN
YXBJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTk3MjA4MjQ1RTU5MDAxRTlBQkMgLyog
S1dRTWVtQXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzRjE5OTczMDgyNDVFNTkwMDFFOUFC
QyAvKiBLV1FNb3ZpZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NzUwODI0NUU1OTAwMUU5
QUJDIC8qIEtXUU5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NzYwODI0NUU1
OTAwMUU5QUJDIC8qIEtXUU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NzcwODI0
NUU1OTAwMUU5QUJDIC8qIEtXUVBhZ2VTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC00NzEzLDcg
KzQ2OTUsNiBAQAogCQkJCUE4MjEyQjA5MDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FHdWFyZGVkUHRy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODIxMkIwQTA4Nzk0QTIzMDA2NzczNTkgLyogS1dRSU9E
ZXZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjEyQjBCMDg3OTRBMjMwMDY3NzM1OSAvKiBL
V1FJbWFnZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgyMTJCMEMwODc5NEEyMzAwNjc3MzU5IC8q
IEtXUUtBcHBsaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMTJCMEQwODc5NEEyMzAw
Njc3MzU5IC8qIEtXUUtDaGFyc2V0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMTJCMEUwODc5
NEEyMzAwNjc3MzU5IC8qIEtXUUtDb21ib0JveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMTJC
MEYwODc5NEEyMzAwNjc3MzU5IC8qIEtXUUtDb25maWdCYXNlLmggaW4gSGVhZGVycyAqLywKQEAg
LTQ3MjQsNyArNDcwNSw2IEBACiAJCQkJQTgyMTJCMTQwODc5NEEyMzAwNjc3MzU5IC8qIEtXUUtH
bG9iYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMTJCMTUwODc5NEEyMzAwNjc3
MzU5IC8qIEtXUUtIVE1MRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMTJCMTYwODc5
NEEyMzAwNjc3MzU5IC8qIEtXUUtIVE1MRmluZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTgyMTJC
MTcwODc5NEEyMzAwNjc3MzU5IC8qIEtXUUtIVE1MUGFnZUNhY2hlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODIxMkIxODA4Nzk0QTIzMDA2NzczNTkgLyogS1dRS0hUTUxQYXJ0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODIxMkIxOTA4Nzk0QTIzMDA2NzczNTkgLyogS1dRS0hUTUxQYXJ0QnJvd3Nl
ckV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMTJCMUEwODc5NEEyMzAwNjc3MzU5
IC8qIEtXUUtIVE1MU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLApAQCAtNDc0NCw3ICs0NzI0LDYg
QEAKIAkJCQlBODIxMkIyOTA4Nzk0QTIzMDA2NzczNTkgLyogS1dRS1BhcnRzRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MjEyQjJCMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FLUGFydHNIaXN0
b3J5UHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjEyQjJDMDg3OTRBMjMwMDY3NzM1
OSAvKiBLV1FLUGFydHNQYXJ0LmggaW4gSGVhZGVycyAqLywKLQkJCQlBODIxMkIyRDA4Nzk0QTIz
MDA2NzczNTkgLyogS1dRS1BhcnRzUGFydE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
MjEyQjJFMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FLU1NMS2V5R2VuLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODIxMkIyRjA4Nzk0QTIzMDA2NzczNTkgLyogS1dRS1N0YW5kYXJkRGlycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgyMTJCMzAwODc5NEEyMzAwNjc3MzU5IC8qIEtXUUtTdGF0aWNEZWxl
dGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTQ3NjEsNyArNDc0MCw2IEBACiAJCQkJQTgyMTJCM0Iw
ODc5NEEyMzAwNjc3MzU5IC8qIEtXUU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyMTJCM0Mw
ODc5NEEyMzAwNjc3MzU5IC8qIEtXUU1hcEltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MjEy
QjNEMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FNZW1BcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
QTgyMTJCM0UwODc5NEEyMzAwNjc3MzU5IC8qIEtXUU1vdmllLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODIxMkI0MDA4Nzk0QTIzMDA2NzczNTkgLyogS1dRTmFtZXNwYWNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBODIxMkI0MTA4Nzk0QTIzMDA2NzczNTkgLyogS1dRT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBODIxMkI0MjA4Nzk0QTIzMDA2NzczNTkgLyogS1dRUGFnZVN0YXRlLmggaW4g
SGVhZGVycyAqLywKQEAgLTYyNjEsNyArNjI0MCw2IEBACiAJCQkJOTNGMTlBM0IwODI0NUU1OTAw
MUU5QUJDIC8qIEtXUUxpc3RCb3gubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUEzQzA4MjQ1
RTU5MDAxRTlBQkMgLyogS1dRTGlzdEltcGwubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0YxOUEz
RDA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRTWFwSW1wbC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTkz
RjE5QTNFMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FNb3ZpZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTkzRjE5QTNGMDgyNDVFNTkwMDFFOUFCQyAvKiBLV1FUZXh0RmllbGQubW0gaW4gU291cmNlcyAq
LywKIAkJCQk5M0YxOUE0MDA4MjQ1RTU5MDAxRTlBQkMgLyogS1dRT2JqZWN0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTNGMTlBNDEwODI0NUU1OTAwMUU5QUJDIC8qIEtXUVBhaW50RGV2aWNlTWV0
cmljcy5tbSBpbiBTb3VyY2VzICovLApAQCAtNjUzMSw3ICs2NTA5LDYgQEAKIAkJCQlBODIxMkMy
MjA4Nzk0QTIzMDA2NzczNTkgLyogS1dRTGlzdEJveC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4
MjEyQzIzMDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FMaXN0SW1wbC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUE4MjEyQzI0MDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FNYXBJbXBsLm1tIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQTgyMTJDMjUwODc5NEEyMzAwNjc3MzU5IC8qIEtXUU1vdmllLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTgyMTJDMjYwODc5NEEyMzAwNjc3MzU5IC8qIEtXUVRleHRGaWVsZC5tbSBp
biBTb3VyY2VzICovLAogCQkJCUE4MjEyQzI3MDg3OTRBMjMwMDY3NzM1OSAvKiBLV1FPYmplY3Qu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBODIxMkMyODA4Nzk0QTIzMDA2NzczNTkgLyogS1dRUGFp
bnREZXZpY2VNZXRyaWNzLm1tIGluIFNvdXJjZXMgKi8sCkBAIC02OTEwLDYgKzY4ODcsNyBAQAog
CQkJCUE4QzMyOTczMDkzQkI3QjIwMDBCOUNBQyAvKiBTVkdGRVBvaW50TGlnaHRFbGVtZW50SW1w
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEMzMkQ5NzA5M0Q4RUE0MDAwQjlDQUMgLyogWExp
bmtOYW1lc1dyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBQkM5OUMwOTQ0NUVDMDAw
MTM5NDVGIC8qIEtDYW52YXNQYXRoUXVhcnR6Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQThCMTJG
MzkwOTUwMjJDMTAwRjU0Mjg5IC8qIFNWR0V2ZW50TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBraHRtbC9raHRtbF9wYXJ0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9raHRtbF9wYXJ0LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4z
NjYKZGlmZiAtcCAtdSAtcjEuMzY2IGtodG1sL2todG1sX3BhcnQuY3BwCi0tLSBraHRtbC9raHRt
bF9wYXJ0LmNwcAkxNCBEZWMgMjAwNSAyMzozMTo0MCAtMDAwMAkxLjM2NgorKysga2h0bWwva2h0
bWxfcGFydC5jcHAJMTUgRGVjIDIwMDUgMDg6Mzk6NTUgLTAwMDAKQEAgLTMwLDggKzMwLDYgQEAK
ICNkZWZpbmUgUVRfTk9fQ0xJUEJPQVJECiAjZGVmaW5lIFFUX05PX0RSQUdBTkREUk9QCiAKLSNp
bmNsdWRlICJraHRtbF9wYWdlY2FjaGUuaCIKLQogI2luY2x1ZGUgImNzcy9jc3NoZWxwZXIuaCIK
ICNpbmNsdWRlICJjc3MvY3NzcHJvcGVydGllcy5oIgogI2luY2x1ZGUgImNzcy9jc3NzdHlsZXNl
bGVjdG9yLmgiCkBAIC02Niw3ICs2NCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBET007CiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiAjaW5jbHVkZSAia2h0bWx2aWV3LmgiCi0jaW5jbHVkZSA8
a3BhcnRzL3BhcnRtYW5hZ2VyLmg+CiAjaW5jbHVkZSAiZWNtYS9ranNfcHJveHkuaCIKICNpbmNs
dWRlICJlY21hL3htbGh0dHByZXF1ZXN0LmgiCiAjaW5jbHVkZSAia2h0bWxfc2V0dGluZ3MuaCIK
QEAgLTc5LDI4ICs3NiwxNCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogI2luY2x1ZGUg
PGtpby9qb2IuaD4KICNpbmNsdWRlIDxraW8vZ2xvYmFsLmg+CiAjaW5jbHVkZSA8a2RlYnVnLmg+
Ci0jaW5jbHVkZSA8a2ljb25sb2FkZXIuaD4KICNpbmNsdWRlIDxrbG9jYWxlLmg+CiAjaW5jbHVk
ZSA8a2NoYXJzZXRzLmg+Ci0jaW5jbHVkZSA8a21lc3NhZ2Vib3guaD4KLSNpbmNsdWRlIDxrc3Rk
YWN0aW9uLmg+Ci0jaW5jbHVkZSA8a2ZpbGVkaWFsb2cuaD4KLSNpbmNsdWRlIDxrdHJhZGVyLmg+
Ci0jaW5jbHVkZSA8a2RhdGFzdHJlYW0uaD4KLSNpbmNsdWRlIDxrdGVtcGZpbGUuaD4KICNpbmNs
dWRlIDxrZ2xvYmFsc2V0dGluZ3MuaD4KLSNpbmNsdWRlIDxrdXJsZHJhZy5oPgotI2luY2x1ZGUg
PGthcHBsaWNhdGlvbi5oPgogI2lmICFkZWZpbmVkKFFUX05PX0RSQUdBTkREUk9QKQogI2luY2x1
ZGUgPGttdWx0aXBsZWRyYWcuaD4KICNlbmRpZgogCi0jaW5jbHVkZSA8a3NzbGNlcnRjaGFpbi5o
PgotI2luY2x1ZGUgPGtzc2xpbmZvZGxnLmg+Ci0KLSNpbmNsdWRlIDxxY2xpcGJvYXJkLmg+CiAj
aW5jbHVkZSA8cWZpbGUuaD4KLSNpbmNsdWRlIDxxbWV0YW9iamVjdC5oPgogI2luY2x1ZGUgPHFw
dHJsaXN0Lmg+CiAjaW5jbHVkZSA8cHJpdmF0ZS9xdWNvbWV4dHJhX3AuaD4KIApAQCAtMzYwLDEx
ICszNDMsOCBAQCBib29sIEtIVE1MUGFydDo6ZGlkT3BlblVSTChjb25zdCBLVVJMICZ1CiAgIC8v
IGluaXRpYWxpemluZyBtX3VybCB0byB0aGUgbmV3IHVybCBicmVha3MgcmVsYXRpdmUgbGlua3Mg
d2hlbiBvcGVuaW5nIHN1Y2ggYSBsaW5rIGFmdGVyIHRoaXMgY2FsbCBhbmQgX2JlZm9yZV8gYmVn
aW4oKSBpcyBjYWxsZWQgKHdoZW4gdGhlIGZpcnN0CiAgIC8vIGRhdGEgYXJyaXZlcykgKFNpbW9u
KQogICBtX3VybCA9IHVybDsKLSAgaWYobV91cmwucHJvdG9jb2woKS5zdGFydHNXaXRoKCAiaHR0
cCIgKSAmJiAhbV91cmwuaG9zdCgpLmlzRW1wdHkoKSAmJgotICAgICBtX3VybC5wYXRoKCkuaXNF
bXB0eSgpKSB7CisgIGlmKG1fdXJsLnByb3RvY29sKCkuc3RhcnRzV2l0aCgiaHR0cCIpICYmICFt
X3VybC5ob3N0KCkuaXNFbXB0eSgpICYmIG1fdXJsLnBhdGgoKS5pc0VtcHR5KCkpCiAgICAgbV91
cmwuc2V0UGF0aCgiLyIpOwotICAgIGVtaXQgZC0+bV9leHRlbnNpb24tPnNldExvY2F0aW9uQmFy
VVJMKCBtX3VybC5wcmV0dHlVUkwoKSApOwotICB9CiAgIC8vIGNvcHkgdG8gbV93b3JraW5nVVJM
IGFmdGVyIGZpeGluZyBtX3VybCBhYm92ZQogICBkLT5tX3dvcmtpbmdVUkwgPSBtX3VybDsKIApA
QCAtNDMxLDE0ICs0MTEsNyBAQCB2b2lkIEtIVE1MUGFydDo6c3RvcExvYWRpbmcoYm9vbCBzZW5k
VW5sCiAgICAgc2xvdEZpbmlzaGVkUGFyc2luZygpOwogICAgIGQtPm1fZG9jLT5zZXRQYXJzaW5n
KGZhbHNlKTsKICAgfQotCi0gIGlmICggIWQtPm1fd29ya2luZ1VSTC5pc0VtcHR5KCkgKQotICB7
Ci0gICAgLy8gQWJvcnRlZCBiZWZvcmUgc3RhcnRpbmcgdG8gcmVuZGVyCi0gICAga2REZWJ1Zygg
NjA1MCApIDw8ICJBYm9ydGVkIGJlZm9yZSBzdGFydGluZyB0byByZW5kZXIsIHJldmVydGluZyBs
b2NhdGlvbiBiYXIgdG8gIiA8PCBtX3VybC5wcmV0dHlVUkwoKSA8PCBlbmRsOwotICAgIGVtaXQg
ZC0+bV9leHRlbnNpb24tPnNldExvY2F0aW9uQmFyVVJMKCBtX3VybC5wcmV0dHlVUkwoKSApOwot
ICB9Ci0KKyAgCiAgIGQtPm1fd29ya2luZ1VSTCA9IEtVUkwoKTsKIAogICBpZiAoRG9jdW1lbnRJ
bXBsICpkb2MgPSBkLT5tX2RvYykgewpAQCAtNjIwLDkgKzU5Myw4IEBAIEtKYXZhQXBwbGV0Q29u
dGV4dCAqS0hUTUxQYXJ0OjpqYXZhQ29udGUKIEtKYXZhQXBwbGV0Q29udGV4dCAqS0hUTUxQYXJ0
OjpjcmVhdGVKYXZhQ29udGV4dCgpCiB7CiAjaWZuZGVmIFFfV1NfUVdTCi0gIGlmICggIWQtPm1f
amF2YUNvbnRleHQgKSB7Ci0gICAgICBkLT5tX2phdmFDb250ZXh0ID0gbmV3IEtKYXZhQXBwbGV0
Q29udGV4dChkLT5tX2Rjb3BvYmplY3QsIHRoaXMpOwotICB9CisgIGlmICghZC0+bV9qYXZhQ29u
dGV4dCkKKyAgICAgIGQtPm1famF2YUNvbnRleHQgPSBuZXcgS0phdmFBcHBsZXRDb250ZXh0KHRo
aXMpOwogCiAgIHJldHVybiBkLT5tX2phdmFDb250ZXh0OwogI2Vsc2UKQEAgLTkxOSwxMyArODkx
LDYgQEAgdm9pZCBLSFRNTFBhcnQ6OmJlZ2luKCBjb25zdCBLVVJMICZ1cmwsIAogICBkLT5tX2JM
b2FkRXZlbnRFbWl0dGVkID0gZmFsc2U7CiAgIGQtPm1fYkxvYWRpbmdNYWluUmVzb3VyY2UgPSB0
cnVlOwogCi0gIGlmKHVybC5pc1ZhbGlkKCkpIHsKLSAgICAgIEtIVE1MRmFjdG9yeTo6dkxpbmtz
KCktPmluc2VydCggS1dRKHRoaXMpLT5yZXF1ZXN0ZWRVUkxTdHJpbmcoKSApOwotICB9Ci0KLSAg
Ly8gIyMjCi0gIC8vc3RvcFBhcnNlcigpOwotCiAgIEtQYXJ0czo6VVJMQXJncyBhcmdzKCBkLT5t
X2V4dGVuc2lvbi0+dXJsQXJncygpICk7CiAgIGFyZ3MueE9mZnNldCA9IHhPZmZzZXQ7CiAgIGFy
Z3MueU9mZnNldCA9IHlPZmZzZXQ7CkBAIC05NDAsMTAgKzkwNSw4IEBAIHZvaWQgS0hUTUxQYXJ0
OjpiZWdpbiggY29uc3QgS1VSTCAmdXJsLCAKICAgS1VSTCBiYXNldXJsOwogCiAgIC8vIFdlIGRv
bid0IG5lZWQgS0RFIGNoYWluZWQgVVJJIGhhbmRsaW5nIG9yIHdpbmRvdyBjYXB0aW9uIHNldHRp
bmcKLSAgaWYgKCAhbV91cmwuaXNFbXB0eSgpICkKLSAgeworICBpZiAoIW1fdXJsLmlzRW1wdHko
KSkKICAgICBiYXNldXJsID0gbV91cmw7Ci0gIH0KIAogICBpZiAoRE9NSW1wbGVtZW50YXRpb25J
bXBsOjppc1hNTE1JTUVUeXBlKGFyZ3Muc2VydmljZVR5cGUpKQogICAgIGQtPm1fZG9jID0gRE9N
SW1wbGVtZW50YXRpb25JbXBsOjppbnN0YW5jZSgpLT5jcmVhdGVEb2N1bWVudCggZC0+bV92aWV3
ICk7CkBAIC05NjMsNyArOTI2LDYgQEAgdm9pZCBLSFRNTFBhcnQ6OmJlZ2luKCBjb25zdCBLVVJM
ICZ1cmwsIAogCiAgIEtXUSh0aGlzKS0+dXBkYXRlUG9saWN5QmFzZVVSTCgpOwogCi0KICAgc2V0
QXV0b2xvYWRJbWFnZXMoIGQtPm1fc2V0dGluZ3MtPmF1dG9Mb2FkSW1hZ2VzKCkgKTsKICAgUVN0
cmluZyB1c2VyU3R5bGVTaGVldCA9IGQtPm1fc2V0dGluZ3MtPnVzZXJTdHlsZVNoZWV0KCk7CiAK
QEAgLTk3Nyw3ICs5MzksNiBAQCB2b2lkIEtIVE1MUGFydDo6YmVnaW4oIGNvbnN0IEtVUkwgJnVy
bCwgCiAgIGlmIChkLT5tX3ZpZXcpCiAgICAgZC0+bV92aWV3LT5yZXNpemVDb250ZW50cyggMCwg
MCApOwogICBjb25uZWN0KGQtPm1fZG9jLFNJR05BTChmaW5pc2hlZFBhcnNpbmcoKSksdGhpcyxT
TE9UKHNsb3RGaW5pc2hlZFBhcnNpbmcoKSkpOwotCiB9CiAKIHZvaWQgS0hUTUxQYXJ0Ojp3cml0
ZSggY29uc3QgY2hhciAqc3RyLCBpbnQgbGVuICkKQEAgLTE0MTMsMTMgKzEzNzQsOSBAQCB2b2lk
IEtIVE1MUGFydDo6c2xvdFJlZGlyZWN0KCkKIAogdm9pZCBLSFRNTFBhcnQ6OnNsb3RSZWRpcmVj
dGlvbihLSU86OkpvYiosIGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgLy8gdGhlIHNsYXZlIHRvbGQg
dXMgdGhhdCB3ZSBnb3QgcmVkaXJlY3RlZAotICAvLyBrZERlYnVnKCA2MDUwICkgPDwgInJlZGly
ZWN0aW9uIGJ5IEtJTyB0byAiIDw8IHVybC51cmwoKSA8PCBlbmRsOwotICBlbWl0IGQtPm1fZXh0
ZW5zaW9uLT5zZXRMb2NhdGlvbkJhclVSTCggdXJsLnByZXR0eVVSTCgpICk7Ci0gIGQtPm1fd29y
a2luZ1VSTCA9IHVybDsKKyAgICBkLT5tX3dvcmtpbmdVUkwgPSB1cmw7CiB9CiAKLQogUVN0cmlu
ZyBLSFRNTFBhcnQ6OmVuY29kaW5nKCkgY29uc3QKIHsKICAgICBpZihkLT5tX2hhdmVFbmNvZGlu
ZyAmJiAhZC0+bV9lbmNvZGluZy5pc0VtcHR5KCkpCkBAIC0xNTkxLDggKzE1NDgsNiBAQCB2b2lk
IEtIVE1MUGFydDo6c2V0U2VsZWN0aW9uKGNvbnN0IFNlbGVjCiAgICAgICAgIGNsZWFyVHlwaW5n
U3R5bGUoKTsKICAgICAKICAgICBLV1EodGhpcyktPnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24o
b2xkU2VsZWN0aW9uLCBjbG9zZVR5cGluZyk7Ci0KLSAgICBlbWl0U2VsZWN0aW9uQ2hhbmdlZCgp
OwogfQogCiB2b2lkIEtIVE1MUGFydDo6c2V0RHJhZ0NhcmV0KGNvbnN0IFNlbGVjdGlvbkNvbnRy
b2xsZXIgJmRyYWdDYXJldCkKQEAgLTIxOTksMTAgKzIxNTQsNiBAQCBLSFRNTFBhcnQgKktIVE1M
UGFydDo6cGFyZW50UGFydCgpIGNvbnN0CiAgIHJldHVybiAoS0hUTUxQYXJ0ICopcGFyZW50KCk7
CiB9CiAKLXZvaWQgS0hUTUxQYXJ0OjplbWl0U2VsZWN0aW9uQ2hhbmdlZCgpCi17Ci19Ci0KIGlu
dCBLSFRNTFBhcnQ6Onpvb21GYWN0b3IoKSBjb25zdAogewogICByZXR1cm4gZC0+bV96b29tRmFj
dG9yOwpAQCAtMzQzNSw2ICszMzg2LDMgQEAgdm9pZCBLSFRNTFBhcnQ6OmhhbmRsZUZhbGxiYWNr
Q29udGVudCgpCiAgICAgICAgIHJldHVybjsKICAgICBzdGF0aWNfY2FzdDxIVE1MT2JqZWN0RWxl
bWVudEltcGwgKj4obm9kZSktPnJlbmRlckZhbGxiYWNrQ29udGVudCgpOwogfQotCi11c2luZyBu
YW1lc3BhY2UgS1BhcnRzOwotI2luY2x1ZGUgImtodG1sX3BhcnQubW9jIgpJbmRleDoga2h0bWwv
a2h0bWxfcGFydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1s
L2todG1sX3BhcnQuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNDMKZGlmZiAtcCAtdSAtcjEu
MTQzIGtodG1sL2todG1sX3BhcnQuaAotLS0ga2h0bWwva2h0bWxfcGFydC5oCTE0IERlYyAyMDA1
IDIzOjMxOjQxIC0wMDAwCTEuMTQzCisrKyBraHRtbC9raHRtbF9wYXJ0LmgJMTUgRGVjIDIwMDUg
MDg6Mzk6NTYgLTAwMDAKQEAgLTExMDAsMTEgKzExMDAsNiBAQCBwcml2YXRlOgogICAvKioKICAg
ICogQGludGVybmFsCiAgICAqLwotICB2b2lkIGVtaXRTZWxlY3Rpb25DaGFuZ2VkKCk7Ci0KLSAg
LyoqCi0gICAqIEBpbnRlcm5hbAotICAgKi8KICAgdm9pZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50
ICopOwogICAKICAgLyoqCkluZGV4OiBraHRtbC9raHRtbF9wYXJ0Lm1vYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiBraHRtbC9raHRtbF9wYXJ0Lm1vYwpkaWZmIC1OIGtodG1sL2todG1sX3BhcnQubW9j
CkluZGV4OiBraHRtbC9raHRtbHBhcnRfcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9v
dC9XZWJDb3JlL2todG1sL2todG1scGFydF9wLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNjMK
ZGlmZiAtcCAtdSAtcjEuNjMga2h0bWwva2h0bWxwYXJ0X3AuaAotLS0ga2h0bWwva2h0bWxwYXJ0
X3AuaAkxNCBEZWMgMjAwNSAyMzozMTo0MSAtMDAwMAkxLjYzCisrKyBraHRtbC9raHRtbHBhcnRf
cC5oCTE1IERlYyAyMDA1IDA4OjM5OjU2IC0wMDAwCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNs
dWRlIDxrY3Vyc29yLmg+CiAjaW5jbHVkZSA8a2FjdGlvbi5oPgotI2luY2x1ZGUgPGtwYXJ0cy9w
YXJ0bWFuYWdlci5oPgogI2luY2x1ZGUgPGtpby9nbG9iYWwuaD4KIAogI2luY2x1ZGUgImtodG1s
X2ZpbmQuaCIKQEAgLTg4LDggKzg3LDYgQEAgcHVibGljOgogdHlwZWRlZiBGcmFtZUxpc3Q6OkNv
bnN0SXRlcmF0b3IgQ29uc3RGcmFtZUl0OwogdHlwZWRlZiBGcmFtZUxpc3Q6Okl0ZXJhdG9yIEZy
YW1lSXQ7CiAKLXN0YXRpYyBpbnQga2h0bWxfcGFydF9kY29wX2NvdW50ZXIgPSAwOwotCiBlbnVt
IFJlZGlyZWN0aW9uU2NoZWR1bGVkIHsKICAgICBub1JlZGlyZWN0aW9uU2NoZWR1bGVkLAogICAg
IHJlZGlyZWN0aW9uU2NoZWR1bGVkLApAQCAtMTgxLDEyICsxNzgsOSBAQCBwdWJsaWM6CiAgICAg
bV9vcGVuZXIgPSAwOwogICAgIG1fb3BlbmVkQnlKUyA9IGZhbHNlOwogICAgIG1fbmV3SlNJbnRl
cnByZXRlckV4aXN0cyA9IGZhbHNlOwotICAgIG1fZGNvcG9iamVjdCA9IDA7Ci0gICAgbV9kY29w
X2NvdW50ZXIgPSArK2todG1sX3BhcnRfZGNvcF9jb3VudGVyOwogICB9CiAgIH5LSFRNTFBhcnRQ
cml2YXRlKCkKICAgewotICAgIGRlbGV0ZSBtX2Rjb3BvYmplY3Q7CiAgICAgZGVsZXRlIG1fZXh0
ZW5zaW9uOwogICAgIGRlbGV0ZSBtX2pzY3JpcHQ7CiAjaWZuZGVmIFFfV1NfUVdTCkBAIC0yMjYs
OCArMjIwLDYgQEAgcHVibGljOgogICBib29sIG1fYlBsdWdpbnNPdmVycmlkZSA6MTsKICAgYm9v
bCBtX3Jlc3RvcmVkIDoxOwogICBpbnQgbV9mcmFtZU5hbWVJZDsKLSAgaW50IG1fZGNvcF9jb3Vu
dGVyOwotICBEQ09QT2JqZWN0ICptX2Rjb3BvYmplY3Q7CiAKICNpZm5kZWYgUV9XU19RV1MKICAg
S0phdmFBcHBsZXRDb250ZXh0ICptX2phdmFDb250ZXh0OwpJbmRleDoga2h0bWwva2h0bWx2aWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9raHRtbHZp
ZXcuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE1OApkaWZmIC1wIC11IC1yMS4xNTgga2h0
bWwva2h0bWx2aWV3LmNwcAotLS0ga2h0bWwva2h0bWx2aWV3LmNwcAk4IERlYyAyMDA1IDA4OjQw
OjI0IC0wMDAwCTEuMTU4CisrKyBraHRtbC9raHRtbHZpZXcuY3BwCTE1IERlYyAyMDA1IDA4OjM5
OjU3IC0wMDAwCkBAIC0yMiw4ICsyMiw2IEBACiAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT
QS4KICAqLwogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgImtodG1sdmlldy5tb2MiCi0K
ICNpbmNsdWRlICJraHRtbHZpZXcuaCIKIAogI2luY2x1ZGUgImtodG1sX3BhcnQuaCIKQEAgLTQ1
LDI5ICs0MywyMCBAQAogI2luY2x1ZGUgImNzcy9jc3NzdHlsZXNlbGVjdG9yLmgiCiAjaW5jbHVk
ZSAibWlzYy9oZWxwZXIuaCIKICNpbmNsdWRlICJraHRtbF9zZXR0aW5ncy5oIgotI2luY2x1ZGUg
ImtodG1sX3ByaW50c2V0dGluZ3MuaCIKICNpbmNsdWRlICJraHRtbHBhcnRfcC5oIgogCiAjaW5j
bHVkZSA8a2N1cnNvci5oPgotI2luY2x1ZGUgPGtzaW1wbGVjb25maWcuaD4KICNpbmNsdWRlIDxr
c3RhbmRhcmRkaXJzLmg+Ci0jaW5jbHVkZSA8a3ByaW50ZXIuaD4KIAotI2luY2x1ZGUgPHF0b29s
dGlwLmg+CiAjaW5jbHVkZSA8cXBhaW50ZXIuaD4KICNpbmNsdWRlIDxxcGFpbnRkZXZpY2VtZXRy
aWNzLmg+Ci0jaW5jbHVkZSA8a2FwcGxpY2F0aW9uLmg+CiAKICNpbmNsdWRlIDxraW1hZ2Vpby5o
PgogI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgotI2luY2x1ZGUgPGt1
cmxkcmFnLmg+Ci0jaW5jbHVkZSA8cW9iamVjdGxpc3QuaD4KIAogI2luY2x1ZGUgIktXUUFjY09i
amVjdENhY2hlLmgiCiAKLSNkZWZpbmUgUEFJTlRfQlVGRkVSX0hFSUdIVCAxMjgKLQogLy8gI2Rl
ZmluZSBJTlNUUlVNRU5UX0xBWU9VVF9TQ0hFRFVMSU5HIDEKIAogdXNpbmcgbmFtZXNwYWNlIERP
TTsKQEAgLTc1LDMyICs2NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBFdmVudE5hbWVzOwogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIHVzaW5nIG5hbWVzcGFjZSBraHRtbDsKIAotY2xhc3MgS0hU
TUxUb29sVGlwOwotCi0jaWZuZGVmIFFUX05PX1RPT0xUSVAKLQotY2xhc3MgS0hUTUxUb29sVGlw
IDogcHVibGljIFFUb29sVGlwCi17Ci1wdWJsaWM6Ci0gICAgS0hUTUxUb29sVGlwKEtIVE1MVmll
dyAqdmlldywgIEtIVE1MVmlld1ByaXZhdGUqIHZwKSA6IFFUb29sVGlwKHZpZXctPnZpZXdwb3J0
KCkpCi0gICAgewotICAgICAgICBtX3ZpZXcgPSB2aWV3OwotICAgICAgICBtX3ZpZXdwcml2YXRl
ID0gdnA7Ci0gICAgfTsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXliZVRpcChj
b25zdCBRUG9pbnQgJik7Ci0KLXByaXZhdGU6Ci0KLSAgICBLSFRNTFZpZXcgKm1fdmlldzsKLSAg
ICBLSFRNTFZpZXdQcml2YXRlKiBtX3ZpZXdwcml2YXRlOwotfTsKLQotI2VuZGlmCi0KIGNsYXNz
IEtIVE1MVmlld1ByaXZhdGUgewotICAgIGZyaWVuZCBjbGFzcyBLSFRNTFRvb2xUaXA7CiBwdWJs
aWM6CiAgICAgS0hUTUxWaWV3UHJpdmF0ZSgpCiAgICAgewpAQCAtMTExLDkgKzc1LDYgQEAgcHVi
bGljOgogICAgICAgICBsYXlvdXRUaW1lcklkID0gMDsKICAgICAgICAgZGVsYXllZExheW91dCA9
IGZhbHNlOwogICAgICAgICBtb3VzZVByZXNzZWQgPSBmYWxzZTsKLSNpZm5kZWYgUVRfTk9fVE9P
TFRJUAotICAgICAgICB0b29sdGlwID0gMDsKLSNlbmRpZgogICAgICAgICBkb0Z1bGxSZXBhaW50
ID0gdHJ1ZTsKICAgICAgICAgaXNUcmFuc3BhcmVudCA9IGZhbHNlOwogICAgICAgICB2bW9kZSA9
IGhtb2RlID0gUVNjcm9sbFZpZXc6OkF1dG87CkBAIC0xMjIsMTQgKzgzLDEwIEBAIHB1YmxpYzoK
ICAgICB9CiAgICAgfktIVE1MVmlld1ByaXZhdGUoKQogICAgIHsKLSAgICAgICAgCiAgICAgICAg
IGlmICh1bmRlck1vdXNlKQogCSAgICB1bmRlck1vdXNlLT5kZXJlZigpOwogICAgICAgICBpZiAo
Y2xpY2tOb2RlKQogCSAgICBjbGlja05vZGUtPmRlcmVmKCk7Ci0jaWZuZGVmIFFUX05PX1RPT0xU
SVAKLQlkZWxldGUgdG9vbHRpcDsKLSNlbmRpZgogICAgICAgICBkZWxldGUgcmVwYWludFJlY3Rz
OwogICAgIH0KICAgICB2b2lkIHJlc2V0KCkKQEAgLTE5NCw5ICsxNTEsNiBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBuZWVkVG9Jbml0U2Nyb2xsQmFyczsKICAgICBib29sIG1vdXNlUHJlc3NlZDsKICAg
ICBib29sIGlzVHJhbnNwYXJlbnQ7Ci0jaWZuZGVmIFFUX05PX1RPT0xUSVAKLSAgICBLSFRNTFRv
b2xUaXAgKnRvb2x0aXA7Ci0jZW5kaWYKICAgICAKICAgICAvLyBVc2VkIGJ5IG9iamVjdHMgZHVy
aW5nIGxheW91dCB0byBjb21tdW5pY2F0ZSByZXBhaW50cyB0aGF0IG5lZWQgdG8gdGFrZSBwbGFj
ZSBvbmx5CiAgICAgLy8gYWZ0ZXIgYWxsIGxheW91dCBoYXMgYmVlbiBjb21wbGV0ZWQuCkBAIC0y
MDUsMjUgKzE1OSw2IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8Tm9kZUltcGw+IGRyYWdUYXJnZXQ7
CiB9OwogCi0jaWZuZGVmIFFUX05PX1RPT0xUSVAKLQotdm9pZCBLSFRNTFRvb2xUaXA6Om1heWJl
VGlwKGNvbnN0IFFQb2ludCYgLypwKi8pCi17Ci0gICAgTm9kZUltcGwgKm5vZGUgPSBtX3ZpZXdw
cml2YXRlLT51bmRlck1vdXNlOwotICAgIHdoaWxlICggbm9kZSApIHsKLSAgICAgICAgaWYgKCBu
b2RlLT5pc0VsZW1lbnROb2RlKCkgKSB7Ci0gICAgICAgICAgICBBdG9taWNTdHJpbmcgcyA9IHN0
YXRpY19jYXN0PEVsZW1lbnRJbXBsKj4oIG5vZGUgKS0+Z2V0QXR0cmlidXRlKEFUVFJfVElUTEUp
OwotICAgICAgICAgICAgaWYgKCFzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIFFSZWN0
IHIoIG1fdmlldy0+Y29udGVudHNUb1ZpZXdwb3J0KCBub2RlLT5nZXRSZWN0KCkudG9wTGVmdCgp
ICksIG5vZGUtPmdldFJlY3QoKS5zaXplKCkgKTsKLSAgICAgICAgICAgICAgICB0aXAoIHIsICBz
LnFzdHJpbmcoKSApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLSAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKTsKLSAgICB9Ci19Ci0jZW5kaWYK
LQogS0hUTUxWaWV3OjpLSFRNTFZpZXcoIEtIVE1MUGFydCAqcGFydCwgUVdpZGdldCAqcGFyZW50
LCBjb25zdCBjaGFyICpuYW1lKQogICAgIDogUVNjcm9sbFZpZXcoIHBhcmVudCwgbmFtZSwgV1Jl
c2l6ZU5vRXJhc2UgfCBXUmVwYWludE5vRXJhc2UgfCBXUGFpbnRVbmNsaXBwZWQgKSwKICAgICAg
IF9yZWZDb3VudCgxKQpAQCAtMjM0LDIxICsxNjksMTAgQEAgS0hUTUxWaWV3OjpLSFRNTFZpZXco
IEtIVE1MUGFydCAqcGFydCwgUQogICAgIG1fcGFydC0+cmVmKCk7CiAgICAgZCA9IG5ldyBLSFRN
TFZpZXdQcml2YXRlOwogCi0gICAgCi0gICAgY29ubmVjdChrYXBwLCBTSUdOQUwoa2Rpc3BsYXlQ
YWxldHRlQ2hhbmdlZCgpKSwgdGhpcywgU0xPVChzbG90UGFsZXR0ZUNoYW5nZWQoKSkpOwogICAg
IGNvbm5lY3QodGhpcywgU0lHTkFMKGNvbnRlbnRzTW92aW5nKGludCwgaW50KSksIHRoaXMsIFNM
T1Qoc2xvdFNjcm9sbEJhck1vdmVkKCkpKTsKIAotICAgIC8vIGluaXRpYWxpemUgUVNjcm9sbHZp
ZXcKLSAgICBlbmFibGVDbGlwcGVyKHRydWUpOwotICAgIHZpZXdwb3J0KCktPnNldE1vdXNlVHJh
Y2tpbmcodHJ1ZSk7Ci0gICAgdmlld3BvcnQoKS0+c2V0QmFja2dyb3VuZE1vZGUoTm9CYWNrZ3Jv
dW5kKTsKLQogICAgIEtJbWFnZUlPOjpyZWdpc3RlckZvcm1hdHMoKTsKIAotI2lmbmRlZiBRVF9O
T19UT09MVElQCi0gICAgZC0+dG9vbHRpcCA9IG5ldyBLSFRNTFRvb2xUaXAoIHRoaXMsIGQgKTsK
LSNlbmRpZgotCiAgICAgaW5pdCgpOwogCiAgICAgdmlld3BvcnQoKS0+c2hvdygpOwpAQCAtMzAz
LDkgKzIyNyw2IEBAIHZvaWQgS0hUTUxWaWV3Ojppbml0KCkKICAgICBfbWFyZ2luSGVpZ2h0ID0g
LTE7CiAgICAgX3dpZHRoID0gMDsKICAgICBfaGVpZ2h0ID0gMDsKLQotICAgIHNldEFjY2VwdERy
b3BzKHRydWUpOwotICAgIAogfQogCiB2b2lkIEtIVE1MVmlldzo6Y2xlYXIoKQpAQCAtMzI5LDI2
ICsyNTAsMTAgQEAgdm9pZCBLSFRNTFZpZXc6OmNsZWFyKCkKICAgICBzdXBwcmVzc1Njcm9sbEJh
cnModHJ1ZSk7CiB9CiAKLXZvaWQgS0hUTUxWaWV3OjpoaWRlRXZlbnQoUUhpZGVFdmVudCogZSkK
K3ZvaWQgS0hUTUxWaWV3OjpyZXNpemVFdmVudChRUmVzaXplRXZlbnQqIGUpCiB7Ci0vLyAgICB2
aWV3cG9ydCgpLT5zZXRCYWNrZ3JvdW5kTW9kZShQYWxldHRlQmFzZSk7Ci0gICAgUVNjcm9sbFZp
ZXc6OmhpZGVFdmVudChlKTsKLX0KLQotdm9pZCBLSFRNTFZpZXc6OnNob3dFdmVudChRU2hvd0V2
ZW50KiBlKQotewotLy8gICAgdmlld3BvcnQoKS0+c2V0QmFja2dyb3VuZE1vZGUoTm9CYWNrZ3Jv
dW5kKTsKLSAgICBRU2Nyb2xsVmlldzo6c2hvd0V2ZW50KGUpOwotfQotCi12b2lkIEtIVE1MVmll
dzo6cmVzaXplRXZlbnQgKFFSZXNpemVFdmVudCogZSkKLXsKLSAgICBRU2Nyb2xsVmlldzo6cmVz
aXplRXZlbnQoZSk7Ci0KLSAgICBpZiAoIG1fcGFydCAmJiBtX3BhcnQtPnhtbERvY0ltcGwoKSAp
Ci0gICAgICAgIG1fcGFydC0+eG1sRG9jSW1wbCgpLT5kaXNwYXRjaFdpbmRvd0V2ZW50KCBFdmVu
dE5hbWVzOjpyZXNpemVFdmVudCwgZmFsc2UsIGZhbHNlICk7Ci0KLSAgICBLQXBwbGljYXRpb246
OnNlbmRQb3N0ZWRFdmVudHModmlld3BvcnQoKSwgUUV2ZW50OjpQYWludCk7CisgICAgaWYgKG1f
cGFydCAmJiBtX3BhcnQtPnhtbERvY0ltcGwoKSkKKyAgICAgICAgbV9wYXJ0LT54bWxEb2NJbXBs
KCktPmRpc3BhdGNoV2luZG93RXZlbnQoRXZlbnROYW1lczo6cmVzaXplRXZlbnQsIGZhbHNlLCBm
YWxzZSk7CiB9CiAKIHZvaWQgS0hUTUxWaWV3Ojppbml0U2Nyb2xsQmFycygpCkBAIC0zNTksNyAr
MjY0LDYgQEAgdm9pZCBLSFRNTFZpZXc6OmluaXRTY3JvbGxCYXJzKCkKICAgICBzZXRTY3JvbGxC
YXJzTW9kZShoU2Nyb2xsQmFyTW9kZSgpKTsKIH0KIAotCiB2b2lkIEtIVE1MVmlldzo6c2V0TWFy
Z2luV2lkdGgoaW50IHcpCiB7CiAgICAgLy8gbWFrZSBpdCB1cGRhdGUgdGhlIHJlbmRlcmluZyBh
cmVhIHdoZW4gc2V0CkBAIC0zNzIsNyArMjc2LDYgQEAgdm9pZCBLSFRNTFZpZXc6OnNldE1hcmdp
bkhlaWdodChpbnQgaCkKICAgICBfbWFyZ2luSGVpZ2h0ID0gaDsKIH0KIAotCiB2b2lkIEtIVE1M
Vmlldzo6YWRqdXN0Vmlld1NpemUoKQogewogICAgIGlmKCBtX3BhcnQtPnhtbERvY0ltcGwoKSAp
IHsKQEAgLTU1MSw4ICs0NTQsNiBAQCB2b2lkIEtIVE1MVmlldzo6bGF5b3V0KCkKICAgICByb290
LT5sYXlvdXQoKTsKIAogICAgIG1fcGFydC0+aW52YWxpZGF0ZVNlbGVjdGlvbigpOwotICAgICAg
ICAKLSAgICAvL2tkRGVidWcoIDYwMDAgKSA8PCAiVElNRTogbGF5b3V0KCkgZHQ9IiA8PCBxdC5l
bGFwc2VkKCkgPDwgZW5kbDsKICAgIAogICAgIGQtPmxheW91dFNjaGVkdWxpbmdFbmFibGVkPXRy
dWU7CiAgICAgZC0+bGF5b3V0U3VwcHJlc3NlZCA9IGZhbHNlOwpAQCAtNjE5LDggKzUyMCw2IEBA
IHZvaWQgS0hUTUxWaWV3Ojp2aWV3cG9ydE1vdXNlUHJlc3NFdmVudCgKICAgICBpbnQgeG0sIHlt
OwogICAgIHZpZXdwb3J0VG9Db250ZW50cyhfbW91c2UtPngoKSwgX21vdXNlLT55KCksIHhtLCB5
bSk7CiAKLSAgICAvL2tkRGVidWcoIDYwMDAgKSA8PCAiXG5tb3VzZVByZXNzRXZlbnQ6IHg9IiA8
PCB4bSA8PCAiLCB5PSIgPDwgeW0gPDwgZW5kbDsKLQogICAgIGQtPm1vdXNlUHJlc3NlZCA9IHRy
dWU7CiAKICAgICBOb2RlSW1wbDo6TW91c2VFdmVudCBtZXYoIF9tb3VzZS0+c3RhdGVBZnRlcigp
LCBOb2RlSW1wbDo6TW91c2VQcmVzcyApOwpAQCAtNjY0LDggKzU2Myw2IEBAIHZvaWQgS0hUTUxW
aWV3Ojp2aWV3cG9ydE1vdXNlRG91YmxlQ2xpY2sKICAgICBpbnQgeG0sIHltOwogICAgIHZpZXdw
b3J0VG9Db250ZW50cyhfbW91c2UtPngoKSwgX21vdXNlLT55KCksIHhtLCB5bSk7CiAKLSAgICAv
L2tkRGVidWcoIDYwMDAgKSA8PCAibW91c2VEYmxDbGlja0V2ZW50OiB4PSIgPDwgeG0gPDwgIiwg
eT0iIDw8IHltIDw8IGVuZGw7Ci0KICAgICAvLyBXZSBnZXQgdGhpcyBpbnN0ZWFkIG9mIGEgc2Vj
b25kIG1vdXNlLXVwIAogICAgIGQtPm1vdXNlUHJlc3NlZCA9IGZhbHNlOwogCkBAIC04MTMsOCAr
NzEwLDYgQEAgdm9pZCBLSFRNTFZpZXc6OnZpZXdwb3J0TW91c2VSZWxlYXNlRXZlbgogCiAgICAg
ZC0+bW91c2VQcmVzc2VkID0gZmFsc2U7CiAKLSAgICAvL2tkRGVidWcoIDYwMDAgKSA8PCAiXG5t
b3VzZVJlbGVhc2VFdmVudDogeD0iIDw8IHhtIDw8ICIsIHk9IiA8PCB5bSA8PCBlbmRsOwotCiAg
ICAgTm9kZUltcGw6Ok1vdXNlRXZlbnQgbWV2KCBfbW91c2UtPnN0YXRlQWZ0ZXIoKSwgTm9kZUlt
cGw6Ok1vdXNlUmVsZWFzZSApOwogICAgIG1fcGFydC0+eG1sRG9jSW1wbCgpLT5wcmVwYXJlTW91
c2VFdmVudCggZmFsc2UsIHhtLCB5bSwgJm1ldiApOwogCkBAIC04NDksMjYgKzc0NCw2IEBAIHZv
aWQgS0hUTUxWaWV3OjprZXlQcmVzc0V2ZW50KCBRS2V5RXZlbnQKIAogfQogCi12b2lkIEtIVE1M
Vmlldzo6a2V5UmVsZWFzZUV2ZW50KFFLZXlFdmVudCAqX2tlKQotewotICAgIGlmKG1fcGFydC0+
eG1sRG9jSW1wbCgpICYmIG1fcGFydC0+eG1sRG9jSW1wbCgpLT5mb2N1c05vZGUoKSkgewotICAg
ICAgICAvLyBRdCBpcyBkYW1uIGJ1Z2d5LiB3ZSByZWNlaXZlIHJlbGVhc2UgZXZlbnRzIGZyb20g
b3VyIGNoaWxkCi0gICAgICAgIC8vIHdpZGdldHMuIHRoZXJlZm9yZSwgZG8gbm90IHN1cHBvcnQg
a2V5cmVsZWFzZSBldmVudCBvbiBnZW5lcmljCi0gICAgICAgIC8vIG5vZGVzIGZvciBub3cgdW50
aWwgd2UgZm91bmQgIGEgd29ya2Fyb3VuZCBmb3IgdGhlIFF0IGJ1Z3MuIChEaXJrKQotLy8gICAg
ICAgICBpZiAobV9wYXJ0LT54bWxEb2NJbXBsKCktPmZvY3VzTm9kZSgpLT5kaXNwYXRjaEtleUV2
ZW50KF9rZSkpIHsKLS8vICAgICAgICAgICAgIF9rZS0+YWNjZXB0KCk7Ci0vLyAgICAgICAgICAg
ICByZXR1cm47Ci0vLyAgICAgICAgIH0KLS8vICAgICAgICBRU2Nyb2xsVmlldzo6a2V5UmVsZWFz
ZUV2ZW50KF9rZSk7Ci0gICAgICAgIFFfVU5VU0VEKF9rZSk7Ci0gICAgfQotfQotCi12b2lkIEtI
VE1MVmlldzo6Y29udGVudHNDb250ZXh0TWVudUV2ZW50ICggUUNvbnRleHRNZW51RXZlbnQgKl9j
ZSApCi17Ci0vLyAjIyMgd2hhdCBraW5kIG9mIGMqKiogaXMgdGhhdCA/Ci19Ci0KIGJvb2wgS0hU
TUxWaWV3OjpkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcgJmV2ZW50VHlwZSwg
Tm9kZUltcGwgKmRyYWdUYXJnZXQsIGNvbnN0IFFQb2ludCAmbG9jLCBDbGlwYm9hcmRJbXBsICpj
bGlwYm9hcmQpCiB7CiAgICAgaW50IGNsaWVudFgsIGNsaWVudFk7CkBAIC05NTcsOSArODMyLDcg
QEAgYm9vbCBLSFRNTFZpZXc6OnNjcm9sbFRvKGNvbnN0IFFSZWN0ICZibwogICAgIHkgPSBib3Vu
ZHMudG9wKCk7CiAgICAgeGUgPSBib3VuZHMucmlnaHQoKTsKICAgICB5ZSA9IGJvdW5kcy5ib3R0
b20oKTsKLQotICAgIC8va2REZWJ1Zyg2MDAwKTw8InNjcm9sbGluZyBjb29yZHM6IHg9Ijw8eDw8
IiB5PSI8PHk8PCIgd2lkdGg9Ijw8eGUteDw8IiBoZWlnaHQ9Ijw8eWUteTw8ZW5kbDsKLQorICAg
IAogICAgIGludCBkZWx0YXg7CiAgICAgaW50IGRlbHRheTsKIApAQCAtMTAxMCw4ICs4ODMsNiBA
QCBib29sIEtIVE1MVmlldzo6c2Nyb2xsVG8oY29uc3QgUVJlY3QgJmJvCiAKICAgICBzY3JvbGxC
eShzY3JvbGxYLCBzY3JvbGxZKTsKIAotCi0KICAgICAvLyBnZW5lcmF0ZSBhYnMoc2Nyb2xsLikK
ICAgICBpZiAoc2Nyb2xsWDwwKQogICAgICAgICBzY3JvbGxYPS1zY3JvbGxYOwpAQCAtMTA0Niw5
ICs5MTcsNiBAQCB2b2lkIEtIVE1MVmlldzo6Zm9jdXNOZXh0UHJldk5vZGUoYm9vbCBuCiAgICAg
Ly8gSWYgdGhlcmUgd2FzIHByZXZpb3VzbHkgbm8gZm9jdXMgbm9kZSBhbmQgdGhlIHVzZXIgaGFz
IHNjcm9sbGVkIHRoZSBkb2N1bWVudCwgdGhlbiBpbnN0ZWFkIG9mIHBpY2tpbmcgdGhlIGZpcnN0
CiAgICAgLy8gZm9jdXNhYmxlIG5vZGUgaW4gdGhlIGRvY3VtZW50LCB1c2UgdGhlIGZpcnN0IG9u
ZSB0aGF0IGxpZXMgd2l0aGluIHRoZSB2aXNpYmxlIGFyZWEgKGlmIHBvc3NpYmxlKS4KICAgICBp
ZiAoIW9sZEZvY3VzTm9kZSAmJiBuZXdGb2N1c05vZGUgJiYgZC0+c2Nyb2xsQmFyTW92ZWQpIHsK
LQotICAgICAga2REZWJ1Zyg2MDAwKSA8PCAiIHNlYXJjaGluZyBmb3IgdmlzaWJsZSBsaW5rIiA8
PCBlbmRsOwotCiAgICAgICAgIGJvb2wgdmlzaWJsZSA9IGZhbHNlOwogICAgICAgICBOb2RlSW1w
bCAqdG9Gb2N1cyA9IG5ld0ZvY3VzTm9kZTsKICAgICAgICAgd2hpbGUgKCF2aXNpYmxlICYmIHRv
Rm9jdXMpIHsKQEAgLTEyMzgsOCArMTEwNiw2IEBAIHZvaWQgS0hUTUxWaWV3OjpzZXRJZ25vcmVX
aGVlbEV2ZW50cyggYm8KICAgICBkLT5pZ25vcmVXaGVlbEV2ZW50cyA9IGU7CiB9CiAKLSNpZm5k
ZWYgUVRfTk9fV0hFRUxFVkVOVAotCiB2b2lkIEtIVE1MVmlldzo6dmlld3BvcnRXaGVlbEV2ZW50
KFFXaGVlbEV2ZW50KiBlKQogewogICAgIERvY3VtZW50SW1wbCAqZG9jID0gbV9wYXJ0LT54bWxE
b2NJbXBsKCk7CkBAIC0xMjY3LDIwICsxMTMzLDE1IEBAIHZvaWQgS0hUTUxWaWV3Ojp2aWV3cG9y
dFdoZWVsRXZlbnQoUVdoZWUKIAogfQogCi0jZW5kaWYKLQotCiB2b2lkIEtIVE1MVmlldzo6Zm9j
dXNJbkV2ZW50KCBRRm9jdXNFdmVudCAqZSApCiB7CiAgICAgbV9wYXJ0LT5zZXRDYXJldFZpc2li
bGUoKTsKLSAgICBRU2Nyb2xsVmlldzo6Zm9jdXNJbkV2ZW50KCBlICk7CiB9CiAKIHZvaWQgS0hU
TUxWaWV3Ojpmb2N1c091dEV2ZW50KCBRRm9jdXNFdmVudCAqZSApCiB7CiAgICAgbV9wYXJ0LT5z
dG9wQXV0b1Njcm9sbCgpOwogICAgIG1fcGFydC0+c2V0Q2FyZXRWaXNpYmxlKGZhbHNlKTsKLSAg
ICBRU2Nyb2xsVmlldzo6Zm9jdXNPdXRFdmVudCggZSApOwogfQogCiB2b2lkIEtIVE1MVmlldzo6
c2xvdFNjcm9sbEJhck1vdmVkKCkKSW5kZXg6IGtodG1sL2todG1sdmlldy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2todG1sdmlldy5oLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjQ5CmRpZmYgLXAgLXUgLXIxLjQ5IGtodG1sL2todG1sdmlldy5oCi0tLSBr
aHRtbC9raHRtbHZpZXcuaAkyMSBOb3YgMjAwNSAwMToxOTo0OSAtMDAwMAkxLjQ5CisrKyBraHRt
bC9raHRtbHZpZXcuaAkxNSBEZWMgMjAwNSAwODozOTo1NyAtMDAwMApAQCAtMTY0LDE1ICsxNjQs
MTEgQEAgcHVibGljOgogICAgICB2b2lkIGNsZWFyKCk7CiAKIHNpZ25hbHM6Ci0gICAgICAgIHZv
aWQgY2xlYXJlZCgpOwotICAgIAotcHJvdGVjdGVkOgorICAgIHZvaWQgY2xlYXJlZCgpOworCiBw
dWJsaWM6Ci0gICAgICAgIHZvaWQgY2xlYXJQYXJ0KCk7CisgICAgdm9pZCBjbGVhclBhcnQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVzaXplRXZlbnQgKCBRUmVzaXplRXZlbnQgKiBldmVudCApOwot
ICAgIHZpcnR1YWwgdm9pZCBzaG93RXZlbnQgKCBRU2hvd0V2ZW50ICogKTsKLSAgICB2aXJ0dWFs
IHZvaWQgaGlkZUV2ZW50ICggUUhpZGVFdmVudCAqKTsKLSAgICAKICAgICB2aXJ0dWFsIHZvaWQg
dmlld3BvcnRNb3VzZVByZXNzRXZlbnQoIFFNb3VzZUV2ZW50ICogKTsKICAgICB2aXJ0dWFsIHZv
aWQgZm9jdXNJbkV2ZW50KCBRRm9jdXNFdmVudCAqICk7CiAgICAgdmlydHVhbCB2b2lkIGZvY3Vz
T3V0RXZlbnQoIFFGb2N1c0V2ZW50ICogKTsKQEAgLTE4NCw4ICsxODAsNiBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogICAgIHZvaWQga2V5UHJlc3NFdmVudCggUUtleUV2ZW50ICpfa2UgKTsKLSAgICB2
b2lkIGtleVJlbGVhc2VFdmVudCAoIFFLZXlFdmVudCAqX2tlICk7Ci0gICAgdm9pZCBjb250ZW50
c0NvbnRleHRNZW51RXZlbnQgKCBRQ29udGV4dE1lbnVFdmVudCAqX2NlICk7CiAgICAgdm9pZCBk
b0F1dG9TY3JvbGwoKTsKIAogICAgIGJvb2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUVBvaW50
ICYsIERPTTo6Q2xpcGJvYXJkSW1wbCAqY2xpcGJvYXJkKTsKSW5kZXg6IGtodG1sL2todG1sdmll
dy5tb2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZToga2h0bWwva2h0bWx2aWV3Lm1vYwpkaWZmIC1OIGto
dG1sL2todG1sdmlldy5tb2MKSW5kZXg6IGtodG1sL2Nzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9jc3MvY3Nzc3R5bGVz
ZWxlY3Rvci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjI5CmRpZmYgLXAgLXUgLXIxLjIy
OSBraHRtbC9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAKLS0tIGtodG1sL2Nzcy9jc3NzdHlsZXNl
bGVjdG9yLmNwcAkxNCBEZWMgMjAwNSAyMzozMTo0MyAtMDAwMAkxLjIyOQorKysga2h0bWwvY3Nz
L2Nzc3N0eWxlc2VsZWN0b3IuY3BwCTE1IERlYyAyMDA1IDA4OjQwOjAxIC0wMDAwCkBAIC01NCw4
ICs1NCw2IEBACiAjaW5jbHVkZSA8a3N0YW5kYXJkZGlycy5oPgogI2luY2x1ZGUgPGtjaGFyc2V0
cy5oPgogI2luY2x1ZGUgPHFmaWxlLmg+Ci0jaW5jbHVkZSA8cWZvbnRkYXRhYmFzZS5oPgotI2lu
Y2x1ZGUgPHFmb250aW5mby5oPgogI2luY2x1ZGUgPHF2YWx1ZWxpc3QuaD4KICNpbmNsdWRlIDxx
c3RyaW5nLmg+CiAjaW5jbHVkZSA8a2RlYnVnLmg+CkBAIC02Myw3ICs2MSw2IEBACiAjaW5jbHVk
ZSA8cWRhdGV0aW1lLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8cXBhaW50ZGV2
aWNlbWV0cmljcy5oPgotI2luY2x1ZGUgPHFpbnRjYWNoZS5oPgogI2luY2x1ZGUgPHN0ZGxpYi5o
PgogCiAjaW5jbHVkZSA8a3htbGNvcmUvSGFzaE1hcC5oPgpJbmRleDoga2h0bWwvZWNtYS9ranNf
cHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2Vj
bWEva2pzX3Byb3h5LmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yOQpkaWZmIC1wIC11IC1y
MS4yOSBraHRtbC9lY21hL2tqc19wcm94eS5jcHAKLS0tIGtodG1sL2VjbWEva2pzX3Byb3h5LmNw
cAkxNCBEZWMgMjAwNSAyMzozMTo0NiAtMDAwMAkxLjI5CisrKyBraHRtbC9lY21hL2tqc19wcm94
eS5jcHAJMTUgRGVjIDIwMDUgMDg6NDA6MDEgLTAwMDAKQEAgLTI0LDggKzI0LDYgQEAKICNpbmNs
dWRlICJranNfd2luZG93LmgiCiAjaW5jbHVkZSAia2pzX2V2ZW50cy5oIgogI2luY2x1ZGUgPGto
dG1sX3BhcnQuaD4KLSNpbmNsdWRlIDxrcHJvdG9jb2xtYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8a2Rl
YnVnLmg+CiAjaW5jbHVkZSA8a2pzL2NvbGxlY3Rvci5oPgogCiB1c2luZyBuYW1lc3BhY2UgS0pT
OwpAQCAtNDAsNiArMzgsNyBAQCBLSlNQcm94eUltcGw6OktKU1Byb3h5SW1wbChLSFRNTFBhcnQg
KnBhCiB7CiAgIG1fc2NyaXB0ID0gMDsKICAgbV9wYXJ0ID0gcGFydDsKKyAgbV9oYW5kbGVyTGlu
ZW5vID0gMDsKICNpZm5kZWYgTkRFQlVHCiAgIHNfY291bnQrKzsKICNlbmRpZgpAQCAtMTU3LDEw
ICsxNTYsNiBAQCB2b2lkIEtKU1Byb3h5SW1wbDo6aW5pdFNjcmlwdCgpCiAKICAgLy8gQ3JlYXRl
IGEgS0pTIGludGVycHJldGVyIGZvciB0aGlzIHBhcnQKICAgbV9zY3JpcHQgPSBuZXcgS0pTOjpT
Y3JpcHRJbnRlcnByZXRlcihnbG9iYWxPYmplY3QsIG1fcGFydCk7Ci0KLSNpZmRlZiBLSlNfREVC
VUdHRVIKLSAgbV9zY3JpcHQtPnNldERlYnVnZ2luZ0VuYWJsZWQobV9kZWJ1Z0VuYWJsZWQpOwot
I2VuZGlmCiAgIGdsb2JhbE9iamVjdC0+cHV0KG1fc2NyaXB0LT5nbG9iYWxFeGVjKCksICJkZWJ1
ZyIsIG5ldyBUZXN0RnVuY3Rpb25JbXAoKSwgSW50ZXJuYWwpOwogCiAgIFFTdHJpbmcgdXNlckFn
ZW50ID0gS1dRKG1fcGFydCktPnVzZXJBZ2VudCgpOwpJbmRleDoga2h0bWwvZWNtYS9ranNfd2lu
ZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21h
L2tqc193aW5kb3cuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE5OQpkaWZmIC1wIC11IC1y
MS4xOTkga2h0bWwvZWNtYS9ranNfd2luZG93LmNwcAotLS0ga2h0bWwvZWNtYS9ranNfd2luZG93
LmNwcAkxNCBEZWMgMjAwNSAyMzozMTo0NiAtMDAwMAkxLjE5OQorKysga2h0bWwvZWNtYS9ranNf
d2luZG93LmNwcAkxNSBEZWMgMjAwNSAwODo0MDowMyAtMDAwMApAQCAtMjQsMTEgKzI0LDkgQEAK
IAogI2luY2x1ZGUgPHFzdHlsZXNoZWV0Lmg+CiAjaW5jbHVkZSA8cXRpbWVyLmg+Ci0jaW5jbHVk
ZSA8cWlucHV0ZGlhbG9nLmg+CiAjaW5jbHVkZSA8cXBhaW50ZGV2aWNlbWV0cmljcy5oPgogI2lu
Y2x1ZGUgPHFhcHBsaWNhdGlvbi5oPgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgotI2luY2x1ZGUgPGtt
ZXNzYWdlYm94Lmg+CiAjaW5jbHVkZSA8a2xvY2FsZS5oPgogI2luY2x1ZGUgPGtwYXJ0cy9icm93
c2VyaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8a3dpbi5oPgpAQCAtMjU4MSw1ICsyNTc5LDMgQEAg
UGF1c2VkVGltZW91dHM6On5QYXVzZWRUaW1lb3V0cygpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIEtK
UwotCi0jaW5jbHVkZSAia2pzX3dpbmRvdy5tb2MiCkluZGV4OiBraHRtbC9lY21hL2tqc193aW5k
b3cubW9jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGtodG1sL2VjbWEva2pzX3dpbmRvdy5tb2MKZGlm
ZiAtTiBraHRtbC9lY21hL2tqc193aW5kb3cubW9jCkluZGV4OiBraHRtbC9odG1sL2h0bWxfZG9j
dW1lbnRpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43Nwpk
aWZmIC1wIC11IC1yMS43NyBraHRtbC9odG1sL2h0bWxfZG9jdW1lbnRpbXBsLmNwcAotLS0ga2h0
bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5jcHAJMTQgRGVjIDIwMDUgMjM6MzE6NTAgLTAwMDAJ
MS43NworKysga2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5jcHAJMTUgRGVjIDIwMDUgMDg6
NDA6MDQgLTAwMDAKQEAgLTc2LDcgKzc2LDYgQEAKICNpbmNsdWRlICJkb20vZG9tX2V4Y2VwdGlv
bi5oIgogCiAjaW5jbHVkZSA8ZGNvcGNsaWVudC5oPgotI2luY2x1ZGUgPGthcHBsaWNhdGlvbi5o
PgogI2luY2x1ZGUgPGtkZWJ1Zy5oPgogI2luY2x1ZGUgPGt1cmwuaD4KICNpbmNsdWRlIDxrY2hh
cnNldHMuaD4KQEAgLTkwLDcgKzg5LDYgQEAKIAogI2luY2x1ZGUgIktXUUtDb29raWVKYXIuaCIK
IAotCiAvLyBUdXJuIG9mZiBpbmxpbmluZyB0byBhdm9pZCB3YXJuaW5nIHdpdGggbmV3ZXIgZ2Nj
LgogI3VuZGVmIF9faW5saW5lCiAjZGVmaW5lIF9faW5saW5lCkBAIC0xMDgsMTggKzEwNiw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBIVE1MRG9jdW1lbnRJbXBsOjpIVE1MRG9jdW1l
bnRJbXBsKERPTUltcGxlbWVudGF0aW9uSW1wbCAqX2ltcGxlbWVudGF0aW9uLCBLSFRNTFZpZXcg
KnYpCiAgIDogRG9jdW1lbnRJbXBsKF9pbXBsZW1lbnRhdGlvbiwgdikKIHsKLS8vICAgIGtkRGVi
dWcoIDYwOTAgKSA8PCAiSFRNTERvY3VtZW50SW1wbCBjb25zdHJ1Y3RvciB0aGlzID0gIiA8PCB0
aGlzIDw8IGVuZGw7CiAgICAgYm9keUVsZW1lbnQgPSAwOwogICAgIGh0bWxFbGVtZW50ID0gMDsK
LQotLyogZHluYW1pYyBoaXN0b3J5IHN0dWZmIHRvIGJlIGZpeGVkIGxhdGVyIChwZmVpZmZlcikK
LSAgICBjb25uZWN0KCBLSFRNTEZhY3Rvcnk6OnZMaW5rcygpLCBTSUdOQUwoIGluc2VydGVkKCBj
b25zdCBRU3RyaW5nJiApKSwKLSAgICAgICAgICAgICBTTE9UKCBzbG90SGlzdG9yeUNoYW5nZWQo
KSApKTsKLSAgICBjb25uZWN0KCBLSFRNTEZhY3Rvcnk6OnZMaW5rcygpLCBTSUdOQUwoIHJlbW92
ZWQoIGNvbnN0IFFTdHJpbmcmICkpLAotICAgICAgICAgICAgIFNMT1QoIHNsb3RIaXN0b3J5Q2hh
bmdlZCgpICkpOwotKi8KLSAgICBjb25uZWN0KCBLSFRNTEZhY3Rvcnk6OnZMaW5rcygpLCBTSUdO
QUwoIGNsZWFyZWQoKSksCi0gICAgICAgICAgICAgU0xPVCggc2xvdEhpc3RvcnlDaGFuZ2VkKCkg
KSk7CiB9CiAKIEhUTUxEb2N1bWVudEltcGw6On5IVE1MRG9jdW1lbnRJbXBsKCkKQEAgLTQ5Niw1
ICs0ODQsMyBAQCBEb2N1bWVudFR5cGVJbXBsICpIVE1MRG9jdW1lbnRJbXBsOjpkb2N0CiB9CiAK
IH0KLQotI2luY2x1ZGUgImh0bWxfZG9jdW1lbnRpbXBsLm1vYyIKSW5kZXg6IGtodG1sL2h0bWwv
aHRtbF9kb2N1bWVudGltcGwubW9jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGtodG1sL2h0bWwvaHRt
bF9kb2N1bWVudGltcGwubW9jCmRpZmYgLU4ga2h0bWwvaHRtbC9odG1sX2RvY3VtZW50aW1wbC5t
b2MKSW5kZXg6IGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4yMDkKZGlmZiAtcCAtdSAtcjEuMjA5IGtodG1sL2h0bWwvaHRtbF9m
b3JtaW1wbC5jcHAKLS0tIGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAJMTQgRGVjIDIwMDUg
MjM6MzE6NTAgLTAwMDAJMS4yMDkKKysrIGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5jcHAJMTUg
RGVjIDIwMDUgMDg6NDA6MDcgLTAwMDAKQEAgLTUxLDExICs1MSw3IEBACiAKICNpbmNsdWRlIDxr
Y2hhcnNldHMuaD4KICNpbmNsdWRlIDxrZGVidWcuaD4KLSNpbmNsdWRlIDxrbWltZXR5cGUuaD4K
LSNpbmNsdWRlIDxrbWVzc2FnZWJveC5oPgogI2luY2x1ZGUgPGtsb2NhbGUuaD4KLSNpbmNsdWRl
IDxuZXRhY2Nlc3MuaD4KLSNpbmNsdWRlIDxrZmlsZWl0ZW0uaD4KICNpbmNsdWRlIDxxZmlsZS5o
PgogI2luY2x1ZGUgPHF0ZXh0Y29kZWMuaD4KIApAQCAtOTYzLDM1ICs5NTksNiBAQCBib29sIEhU
TUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjppc01vdXNlCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIEhUTUxHZW5lcmljRm9ybUVsZW1lbnRJbXBsOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50SW1wbCAqZXZ0KQotewotICAgIGlmIChldnQtPnRhcmdldCgpPT10aGlzKQotICAgIHsKLSAg
ICAgICAgLy8gUmVwb3J0IGZvY3VzIGluL291dCBjaGFuZ2VzIHRvIHRoZSBicm93c2VyIGV4dGVu
c2lvbiAoZWRpdGFibGUgd2lkZ2V0cyBvbmx5KQotICAgICAgICBLSFRNTFBhcnQgKnBhcnQgPSBn
ZXREb2N1bWVudCgpLT5wYXJ0KCk7Ci0gICAgICAgIGlmIChldnQtPnR5cGUoKT09RE9NRm9jdXNJ
bkV2ZW50ICYmIGlzRWRpdGFibGUoKSAmJiBwYXJ0ICYmIG1fcmVuZGVyICYmIG1fcmVuZGVyLT5p
c1dpZGdldCgpKSB7Ci0gICAgICAgICAgICBLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uICpleHQg
PSBzdGF0aWNfY2FzdDxLSFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uICo+KHBhcnQtPmJyb3dzZXJF
eHRlbnNpb24oKSk7Ci0gICAgICAgICAgICBRV2lkZ2V0ICp3aWRnZXQgPSBzdGF0aWNfY2FzdDxS
ZW5kZXJXaWRnZXQqPihtX3JlbmRlciktPndpZGdldCgpOwotICAgICAgICAgICAgaWYgKGV4dCkK
LSAgICAgICAgICAgICAgICBleHQtPmVkaXRhYmxlV2lkZ2V0Rm9jdXNlZCh3aWRnZXQpOwotICAg
ICAgICB9Ci0KLQkvLyBXZSBkb24ndCB3YW50IHRoaXMgZGVmYXVsdCBrZXkgZXZlbnQgaGFuZGxp
bmcsIHdlJ2xsIGNvdW50IG9uCi0JLy8gQ29jb2EgZXZlbnQgZGlzcGF0Y2ggaWYgdGhlIGV2ZW50
IGRvZXNuJ3QgZ2V0IGJsb2NrZWQuCi0KLQlpZiAoZXZ0LT50eXBlKCk9PURPTUZvY3VzT3V0RXZl
bnQgJiYgaXNFZGl0YWJsZSgpICYmIHBhcnQgJiYgbV9yZW5kZXIgJiYgbV9yZW5kZXItPmlzV2lk
Z2V0KCkpIHsKLQkgICAgS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbiAqZXh0ID0gc3RhdGljX2Nh
c3Q8S0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lvbiAqPihwYXJ0LT5icm93c2VyRXh0ZW5zaW9uKCkp
OwotCSAgICBRV2lkZ2V0ICp3aWRnZXQgPSBzdGF0aWNfY2FzdDxSZW5kZXJXaWRnZXQqPihtX3Jl
bmRlciktPndpZGdldCgpOwotCSAgICBpZiAoZXh0KQotCQlleHQtPmVkaXRhYmxlV2lkZ2V0Qmx1
cnJlZCh3aWRnZXQpOwotCi0JICAgIC8vICMjIyBEb24ndCBjb3VudCBwb3B1cCBhcyBhIHZhbGlk
IHJlYXNvbiBmb3IgbG9zaW5nIHRoZSBmb2N1cyAoZXhhbXBsZTogb3BlbmluZyB0aGUgb3B0aW9u
cyBvZiBhIHNlbGVjdAotCSAgICAvLyBjb21ib2JveCBzaG91bGRuJ3QgZW1pdCBvbmJsdXIpCi0J
fQotICAgIH0KLSAgICBIVE1MRWxlbWVudEltcGw6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZ0KTsK
LX0KLQogYm9vbCBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50SW1wbDo6aXNFZGl0YWJsZSgpCiB7CiAg
ICAgcmV0dXJuIGZhbHNlOwpJbmRleDoga2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBs
LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTcKZGlmZiAtcCAtdSAtcjEuOTcga2h0bWwvaHRt
bC9odG1sX2Zvcm1pbXBsLmgKLS0tIGtodG1sL2h0bWwvaHRtbF9mb3JtaW1wbC5oCTEgRGVjIDIw
MDUgMTA6MzI6MTggLTAwMDAJMS45NworKysga2h0bWwvaHRtbC9odG1sX2Zvcm1pbXBsLmgJMTUg
RGVjIDIwMDUgMDg6NDA6MDggLTAwMDAKQEAgLTIwNSw3ICsyMDUsNiBAQCBwdWJsaWM6CiAgICAg
ICovCiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wp
IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudEltcGwgKmV2dCk7CiAgICAgdmlydHVhbCBib29sIGlzRWRpdGFibGUoKTsKIAogICAg
IHZpcnR1YWwgUVN0cmluZyBzdGF0ZSgpOwpJbmRleDoga2h0bWwvaHRtbC9odG1sX29iamVjdGlt
cGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwv
aHRtbF9vYmplY3RpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45MApkaWZmIC1wIC11
IC1yMS45MCBraHRtbC9odG1sL2h0bWxfb2JqZWN0aW1wbC5jcHAKLS0tIGtodG1sL2h0bWwvaHRt
bF9vYmplY3RpbXBsLmNwcAkxMSBEZWMgMjAwNSAwOToyNjoxMiAtMDAwMAkxLjkwCisrKyBraHRt
bC9odG1sL2h0bWxfb2JqZWN0aW1wbC5jcHAJMTUgRGVjIDIwMDUgMDg6NDA6MDggLTAwMDAKQEAg
LTIwNiwxNCArMjA2LDYgQEAgUmVuZGVyT2JqZWN0ICpIVE1MQXBwbGV0RWxlbWVudEltcGw6OmNy
ZQogI2VuZGlmCiB9CiAKLWJvb2wgSFRNTEFwcGxldEVsZW1lbnRJbXBsOjpnZXRNZW1iZXIoY29u
c3QgUVN0cmluZyAmIG5hbWUsIEpUeXBlICYgdHlwZSwgUVN0cmluZyAmIHZhbCkgewotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotYm9vbCBIVE1MQXBwbGV0RWxlbWVudEltcGw6OmNhbGxNZW1iZXIo
Y29uc3QgUVN0cmluZyAmIG5hbWUsIGNvbnN0IFFTdHJpbmdMaXN0ICYgYXJncywgSlR5cGUgJiB0
eXBlLCBRU3RyaW5nICYgdmFsKSB7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBLSlM6OkJpbmRp
bmdzOjpJbnN0YW5jZSAqSFRNTEFwcGxldEVsZW1lbnRJbXBsOjpnZXRBcHBsZXRJbnN0YW5jZSgp
IGNvbnN0CiB7CiAgICAgS0hUTUxQYXJ0KiBwYXJ0ID0gZ2V0RG9jdW1lbnQoKS0+cGFydCgpOwpJ
bmRleDoga2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxfb2JqZWN0aW1wbC5oLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjQwCmRpZmYgLXAgLXUgLXIxLjQwIGtodG1sL2h0bWwvaHRtbF9vYmplY3Rp
bXBsLmgKLS0tIGtodG1sL2h0bWwvaHRtbF9vYmplY3RpbXBsLmgJMjEgTm92IDIwMDUgMDE6MjA6
MTQgLTAwMDAJMS40MAorKysga2h0bWwvaHRtbC9odG1sX29iamVjdGltcGwuaAkxNSBEZWMgMjAw
NSAwODo0MDowOSAtMDAwMApAQCAtNTIsOSArNTIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHJlbmRlcmVySXNOZWVkZWQoa2h0bWw6OlJlbmRlclN0eWxlICopOwogICAgIHZpcnR1YWwg
a2h0bWw6OlJlbmRlck9iamVjdCAqY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEgKiwga2h0bWw6
OlJlbmRlclN0eWxlICopOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZVJlbmRlcmVyKCk7Ci0KLSAg
ICBib29sIGdldE1lbWJlcihjb25zdCBRU3RyaW5nICYsIEpUeXBlICYsIFFTdHJpbmcgJik7Ci0g
ICAgYm9vbCBjYWxsTWVtYmVyKGNvbnN0IFFTdHJpbmcgJiwgY29uc3QgUVN0cmluZ0xpc3QgJiwg
SlR5cGUgJiwgUVN0cmluZyAmKTsKICAgICAKICAgICBET01TdHJpbmcgYWxpZ24oKSBjb25zdDsK
ICAgICB2b2lkIHNldEFsaWduKGNvbnN0IERPTVN0cmluZyAmKTsKSW5kZXg6IGtodG1sL2h0bWwv
aHRtbHRva2VuaXplci5tb2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZToga2h0bWwvaHRtbC9odG1sdG9r
ZW5pemVyLm1vYwpkaWZmIC1OIGtodG1sL2h0bWwvaHRtbHRva2VuaXplci5tb2MKSW5kZXg6IGto
dG1sL21pc2MvbG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9taXNjL2xvYWRlci5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuODIKZGlmZiAt
cCAtdSAtcjEuODIga2h0bWwvbWlzYy9sb2FkZXIuY3BwCi0tLSBraHRtbC9taXNjL2xvYWRlci5j
cHAJMTQgRGVjIDIwMDUgMjM6MzE6NTQgLTAwMDAJMS44MgorKysga2h0bWwvbWlzYy9sb2FkZXIu
Y3BwCTE1IERlYyAyMDA1IDA4OjQwOjEwIC0wMDAwCkBAIC0zOCwxNyArMzgsMTIgQEAKICNkZWZp
bmUgREVGQ0FDSEVTSVpFIDQwOTYqMTAyNAogCiAjaW5jbHVkZSA8cWFzeW5jaW8uaD4KLSNpbmNs
dWRlIDxxYXN5bmNpbWFnZWlvLmg+CiAjaW5jbHVkZSA8cXBhaW50ZXIuaD4KLSNpbmNsdWRlIDxx
Yml0bWFwLmg+Ci0jaW5jbHVkZSA8cW1vdmllLmg+CiAKICNpbmNsdWRlIDxraW8vam9iLmg+CiAj
aW5jbHVkZSA8a2lvL2pvYmNsYXNzZXMuaD4KICNpbmNsdWRlIDxraW1hZ2Vpby5oPgogI2luY2x1
ZGUgPGtjaGFyc2V0cy5oPgotI2luY2x1ZGUgPGtpY29ubG9hZGVyLmg+Ci0jaW5jbHVkZSA8c2No
ZWR1bGVyLmg+CiAjaW5jbHVkZSA8a2RlYnVnLmg+CiAjaW5jbHVkZSAia2h0bWxfZmFjdG9yeS5o
IgogI2luY2x1ZGUgImtodG1sX3BhcnQuaCIKQEAgLTQ2Miw4ICs0NTcsNiBAQCBDYWNoZWRJbWFn
ZTo6Q2FjaGVkSW1hZ2UoRG9jTG9hZGVyKiBkbCwgCiAgICAgOiBRT2JqZWN0KCksIENhY2hlZE9i
amVjdCh1cmwsIEltYWdlLCBfY2FjaGVQb2xpY3ksIF9leHBpcmVEYXRlKQogICAgICwgbV9kYXRh
U2l6ZSgwKQogewotCi0gICAgbSA9IDA7CiAgICAgcCA9IDA7CiAgICAgcGl4UGFydCA9IDA7CiAg
ICAgYmcgPSAwOwpAQCAtNDg4LDQxICs0ODEsMjQgQEAgQ2FjaGVkSW1hZ2U6On5DYWNoZWRJbWFn
ZSgpCiAKIHZvaWQgQ2FjaGVkSW1hZ2U6OnJlZiggQ2FjaGVkT2JqZWN0Q2xpZW50ICpjICkKIHsK
LSNpZmRlZiBDQUNIRV9ERUJVRwotICAgIGtkRGVidWcoIDYwNjAgKSA8PCB0aGlzIDw8ICIgQ2Fj
aGVkSW1hZ2U6OnJlZigiIDw8IGMgPDwgIikgIiA8PCBlbmRsOwotI2VuZGlmCi0KICAgICBDYWNo
ZWRPYmplY3Q6OnJlZihjKTsKIAotICAgIGlmKCBtICkgewotICAgICAgICBtLT51bnBhdXNlKCk7
Ci0gICAgICAgIGlmKCBtLT5maW5pc2hlZCgpIHx8IG1fY2xpZW50cy5jb3VudCgpID09IDEgKQot
ICAgICAgICAgICAgbS0+cmVzdGFydCgpOwotICAgIH0KLQogICAgIC8vIGZvciBtb3VzZW92ZXJz
LCBkeW5hbWljIGNoYW5nZXMKICAgICBpZiAoIXZhbGlkX3JlY3QoKS5pc051bGwoKSkKICAgICAg
ICAgYy0+c2V0UGl4bWFwKCBwaXhtYXAoKSwgdmFsaWRfcmVjdCgpLCB0aGlzKTsKIAotICAgIGlm
KCFtX2xvYWRpbmcpIGMtPm5vdGlmeUZpbmlzaGVkKHRoaXMpOworICAgIGlmKCFtX2xvYWRpbmcp
CisgICAgICAgIGMtPm5vdGlmeUZpbmlzaGVkKHRoaXMpOwogfQogCiB2b2lkIENhY2hlZEltYWdl
OjpkZXJlZiggQ2FjaGVkT2JqZWN0Q2xpZW50ICpjICkKIHsKLSNpZmRlZiBDQUNIRV9ERUJVRwot
ICAgIGtkRGVidWcoIDYwNjAgKSA8PCB0aGlzIDw8ICIgQ2FjaGVkSW1hZ2U6OmRlcmVmKCIgPDwg
YyA8PCAiKSAiIDw8IGVuZGw7Ci0jZW5kaWYKICAgICBDYWNoZTo6Zmx1c2goKTsKICAgICBDYWNo
ZWRPYmplY3Q6OmRlcmVmKGMpOwotICAgIGlmKG0gJiYgbV9jbGllbnRzLmlzRW1wdHkoKSAmJiBt
LT5ydW5uaW5nKCkpCi0gICAgICAgIG0tPnBhdXNlKCk7CiAgICAgaWYgKCBjYW5EZWxldGUoKSAm
JiBtX2ZyZWUgKQogICAgICAgICBkZWxldGUgdGhpczsKIH0KIAotI2RlZmluZSBCR01JTldJRFRI
ICAgICAgMzIKLSNkZWZpbmUgQkdNSU5IRUlHSFQgICAgIDMyCi0KIGNvbnN0IFFQaXhtYXAgJkNh
Y2hlZEltYWdlOjp0aWxlZF9waXhtYXAoY29uc3QgUUNvbG9yJiBuZXdjKQogewogICAgIHJldHVy
biBwaXhtYXAoKTsKQEAgLTUzOSwxOSArNTE1LDE2IEBAIGNvbnN0IFFQaXhtYXAgJkNhY2hlZElt
YWdlOjpwaXhtYXAoICkgY28KICAgICByZXR1cm4gKkNhY2hlOjpudWxsUGl4bWFwOwogfQogCi0K
IFFTaXplIENhY2hlZEltYWdlOjpwaXhtYXBfc2l6ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICht
ID8gbS0+ZnJhbWVQaXhtYXAoKS5zaXplKCkgOiAoIHAgPyBwLT5zaXplKCkgOiBRU2l6ZSgpKSk7
CisgICAgcmV0dXJuIChwID8gcC0+c2l6ZSgpIDogUVNpemUoKSk7CiB9CiAKLQogUVJlY3QgQ2Fj
aGVkSW1hZ2U6OnZhbGlkX3JlY3QoKSBjb25zdAogewotICAgIHJldHVybiBtID8gbS0+Z2V0VmFs
aWRSZWN0KCkgOiAoIHAgPyBwLT5yZWN0KCkgOiBRUmVjdCgpKTsKKyAgICByZXR1cm4gKHAgPyBw
LT5yZWN0KCkgOiBRUmVjdCgpKTsKIH0KIAotCiB2b2lkIENhY2hlZEltYWdlOjpkb19ub3RpZnko
Y29uc3QgUVBpeG1hcCYgcCwgY29uc3QgUVJlY3QmIHIpCiB7CiAgICAgQ2FjaGVkT2JqZWN0Q2xp
ZW50V2Fsa2VyIHcobV9jbGllbnRzKTsKQEAgLTU1OSwxNiArNTMyLDEzIEBAIHZvaWQgQ2FjaGVk
SW1hZ2U6OmRvX25vdGlmeShjb25zdCBRUGl4bWEKICAgICAgICAgYy0+c2V0UGl4bWFwKHAsIHIs
IHRoaXMpOwogfQogCi0KIHZvaWQgQ2FjaGVkSW1hZ2U6OnNldFNob3dBbmltYXRpb25zKCBLSFRN
TFNldHRpbmdzOjpLQW5pbWF0aW9uQWR2aWNlIHNob3dBbmltYXRpb25zICkKIHsKICAgICBtX3No
b3dBbmltYXRpb25zID0gc2hvd0FuaW1hdGlvbnM7CiB9CiAKLQogdm9pZCBDYWNoZWRJbWFnZTo6
Y2xlYXIoKQogewotICAgIGRlbGV0ZSBtOyAgIG0gPSAwOwogICAgIGRlbGV0ZSBwOyAgIHAgPSAw
OwogICAgIGRlbGV0ZSBiZzsgIGJnID0gMDsKICAgICBkZWxldGUgcGl4UGFydDsgcGl4UGFydCA9
IDA7CkBAIC02NjUsNiArNjM1LDcgQEAgQ2FjaGVkWFNMU3R5bGVTaGVldDo6Q2FjaGVkWFNMU3R5
bGVTaGVldAogOiBDYWNoZWRPYmplY3QodXJsLCBYU0xTdHlsZVNoZWV0LCBfY2FjaGVQb2xpY3ks
IF9leHBpcmVEYXRlKQogewogICAgIC8vIEl0J3MgWE1MIHdlIHdhbnQuCisgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIGFjY2VwdCBtb3JlIGdlbmVyYWwgeG1sIGZvcm1hdHMgKi8qK3htbCwgaW1h
Z2Uvc3ZnK3htbCBmb3IgZXhhbXBsZS4KICAgICBzZXRBY2NlcHQoUVN0cmluZzo6ZnJvbUxhdGlu
MSgidGV4dC94bWwsIGFwcGxpY2F0aW9uL3htbCwgYXBwbGljYXRpb24veGh0bWwreG1sLCB0ZXh0
L3hzbCwgYXBwbGljYXRpb24vcnNzK3htbCwgYXBwbGljYXRpb24vYXRvbSt4bWwiKSk7CiAgICAg
CiAgICAgLy8gbG9hZCB0aGUgZmlsZQpAQCAtMTM0NiwxMSArMTMxNyw5IEBAIHZvaWQgQ2FjaGU6
OmluaXQoKQogCiB2b2lkIENhY2hlOjpjbGVhcigpCiB7Ci0gICAgaWYgKCAhY2FjaGUgKSByZXR1
cm47Ci0jaWZkZWYgQ0FDSEVfREVCVUcKLSAgICBrZERlYnVnKCA2MDYwICkgPDwgIkNhY2hlOiBD
TEVBUiEiIDw8IGVuZGw7Ci0gICAgc3RhdGlzdGljcygpOwotI2VuZGlmCisgICAgaWYgKCFjYWNo
ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY2FjaGUtPnNldEF1dG9EZWxldGUoIHRydWUgKTsK
ICAgICBkZWxldGUgY2FjaGU7IGNhY2hlID0gMDsKICAgICBkZWxldGUgbnVsbFBpeG1hcDsgbnVs
bFBpeG1hcCA9IDA7CkBAIC0xNjk1LDExICsxNjY0LDYgQEAgdm9pZCBDYWNoZTo6Zmx1c2goYm9v
bCBmb3JjZSkKIAogICAgIGluaXQoKTsKIAotI2lmZGVmIENBQ0hFX0RFQlVHCi0gICAgc3RhdGlz
dGljcygpOwotICAgIGtkRGVidWcoIDYwNjAgKSA8PCAiQ2FjaGU6IGZsdXNoKCkiIDw8IGVuZGw7
Ci0jZW5kaWYKLQogICAgIHdoaWxlIChtX2hlYWRPZlVuY2FjaGVhYmxlTGlzdCkKICAgICAgICAg
cmVtb3ZlQ2FjaGVFbnRyeShtX2hlYWRPZlVuY2FjaGVhYmxlTGlzdCk7CiAKQEAgLTE3MTIsOSAr
MTY3Niw2IEBAIHZvaWQgQ2FjaGU6OmZsdXNoKGJvb2wgZm9yY2UpCiAgICAgfQogCiAgICAgZmx1
c2hDb3VudCA9IG1fY291bnRPZkxSVUFuZFVuY2FjaGVhYmxlTGlzdHMrMTA7IC8vIEZsdXNoIGFn
YWluIHdoZW4gdGhlIGNhY2hlIGhhcyBncm93bi4KLSNpZmRlZiBDQUNIRV9ERUJVRwotICAgIC8v
c3RhdGlzdGljcygpOwotI2VuZGlmCiB9CiAKIApAQCAtMTcyOCw1MCArMTY4OSw2IEBAIHZvaWQg
Q2FjaGU6OnNldFNpemUoIGludCBieXRlcyApCiAgICAgZmx1c2godHJ1ZSk7CiB9CiAKLXZvaWQg
Q2FjaGU6OnN0YXRpc3RpY3MoKQotewotICAgIENhY2hlZE9iamVjdCAqbzsKLSAgICAvLyB0aGlz
IGZ1bmN0aW9uIGlzIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seQotICAgIGluaXQoKTsKLQot
ICAgIGludCBzaXplID0gMDsKLSAgICBpbnQgbXNpemUgPSAwOwotICAgIGludCBtb3ZpZSA9IDA7
Ci0gICAgaW50IHN0eWxlc2hlZXRzID0gMDsKLSAgICBRRGljdEl0ZXJhdG9yPENhY2hlZE9iamVj
dD4gaXQoKmNhY2hlKTsKLSAgICBmb3IoaXQudG9GaXJzdCgpOyBpdC5jdXJyZW50KCk7ICsraXQp
Ci0gICAgewotICAgICAgICBvID0gaXQuY3VycmVudCgpOwotICAgICAgICBpZihvLT50eXBlKCkg
PT0gQ2FjaGVkT2JqZWN0OjpJbWFnZSkKLSAgICAgICAgewotICAgICAgICAgICAgQ2FjaGVkSW1h
Z2UgKmltID0gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UgKj4obyk7Ci0gICAgICAgICAgICBpZihp
bS0+bSAhPSAwKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG1vdmllKys7Ci0gICAg
ICAgICAgICAgICAgbXNpemUgKz0gaW0tPnNpemUoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmKG8tPnR5cGUoKSA9PSBD
YWNoZWRPYmplY3Q6OkNTU1N0eWxlU2hlZXQpCi0gICAgICAgICAgICAgICAgc3R5bGVzaGVldHMr
KzsKLQotICAgICAgICB9Ci0gICAgICAgIHNpemUgKz0gby0+c2l6ZSgpOwotICAgIH0KLSAgICBz
aXplIC89IDEwMjQ7Ci0KLSAgICBrZERlYnVnKCA2MDYwICkgPDwgIi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gaW1hZ2UgY2FjaGUgc3RhdGlzdGljcyAtLS0tLS0tLS0tLS0tLS0tLS0tIiA8PCBl
bmRsOwotICAgIGtkRGVidWcoIDYwNjAgKSA8PCAiTnVtYmVyIG9mIGl0ZW1zIGluIGNhY2hlOiAi
IDw8IGNhY2hlLT5jb3VudCgpIDw8IGVuZGw7Ci0gICAga2REZWJ1ZyggNjA2MCApIDw8ICJOdW1i
ZXIgb2YgaXRlbXMgaW4gbHJ1ICA6ICIgPDwgbV9jb3VudE9mTFJVQW5kVW5jYWNoZWFibGVMaXN0
cyA8PCBlbmRsOwotICAgIGtkRGVidWcoIDYwNjAgKSA8PCAiTnVtYmVyIG9mIGNhY2hlZCBpbWFn
ZXM6ICIgPDwgY2FjaGUtPmNvdW50KCktbW92aWUgPDwgZW5kbDsKLSAgICBrZERlYnVnKCA2MDYw
ICkgPDwgIk51bWJlciBvZiBjYWNoZWQgbW92aWVzOiAiIDw8IG1vdmllIDw8IGVuZGw7Ci0gICAg
a2REZWJ1ZyggNjA2MCApIDw8ICJOdW1iZXIgb2YgY2FjaGVkIHN0eWxlc2hlZXRzOiAiIDw8IHN0
eWxlc2hlZXRzIDw8IGVuZGw7Ci0gICAga2REZWJ1ZyggNjA2MCApIDw8ICJwaXhtYXBzOiAgIGFs
bG9jYXRlZCBzcGFjZSBhcHByb3guICIgPDwgc2l6ZSA8PCAiIGtCIiA8PCBlbmRsOwotICAgIGtk
RGVidWcoIDYwNjAgKSA8PCAibW92aWVzIDogICBhbGxvY2F0ZWQgc3BhY2UgYXBwcm94LiAiIDw8
IG1zaXplLzEwMjQgPDwgIiBrQiIgPDwgZW5kbDsKLSAgICBrZERlYnVnKCA2MDYwICkgPDwgIi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIiA8PCBlbmRsOwotfQotCiB2b2lkIENhY2hlOjpyZW1vdmVDYWNoZUVudHJ5KCBD
YWNoZWRPYmplY3QgKm9iamVjdCApCiB7CiAgIFFTdHJpbmcga2V5ID0gb2JqZWN0LT51cmwoKS5x
c3RyaW5nKCk7CkBAIC0xOTMyLDEwICsxODQ5LDYgQEAgdm9pZCBDYWNoZWRPYmplY3RDbGllbnQ6
OnNldFhCTERvY3VtZW50KAogI2VuZGlmCiB2b2lkIENhY2hlZE9iamVjdENsaWVudDo6bm90aWZ5
RmluaXNoZWQoQ2FjaGVkT2JqZWN0ICogLypmaW5pc2hlZE9iaiovKSB7fQogCi0jaW5jbHVkZSAi
bG9hZGVyLm1vYyIKLQotCi0KIENhY2hlOjpTdGF0aXN0aWNzIENhY2hlOjpnZXRTdGF0aXN0aWNz
KCkKIHsKICAgICBTdGF0aXN0aWNzIHN0YXRzOwpAQCAtMTk0OCwxMyArMTg2MSw4IEBAIENhY2hl
OjpTdGF0aXN0aWNzIENhY2hlOjpnZXRTdGF0aXN0aWNzKCkKICAgICAgICAgQ2FjaGVkT2JqZWN0
ICpvID0gaS5jdXJyZW50KCk7CiAgICAgICAgIHN3aXRjaCAoby0+dHlwZSgpKSB7CiAgICAgICAg
ICAgICBjYXNlIENhY2hlZE9iamVjdDo6SW1hZ2U6Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXRp
Y19jYXN0PENhY2hlZEltYWdlICo+KG8pLT5tKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRz
Lm1vdmllcy5jb3VudCsrOwotICAgICAgICAgICAgICAgICAgICBzdGF0cy5tb3ZpZXMuc2l6ZSAr
PSBvLT5zaXplKCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgc3RhdHMuaW1hZ2VzLmNvdW50Kys7Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRzLmltYWdl
cy5zaXplICs9IG8tPnNpemUoKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
c3RhdHMuaW1hZ2VzLmNvdW50Kys7CisgICAgICAgICAgICAgICAgc3RhdHMuaW1hZ2VzLnNpemUg
Kz0gby0+c2l6ZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNl
IENhY2hlZE9iamVjdDo6Q1NTU3R5bGVTaGVldDoKQEAgLTIwMDcsNCArMTkxNSwzIEBAIHZvaWQg
Q2FjaGU6OnNldENhY2hlRGlzYWJsZWQoYm9vbCBkaXNhYmwKICAgICBpZiAoZGlzYWJsZWQpCiAg
ICAgICAgIGZsdXNoQWxsKCk7CiB9Ci0KSW5kZXg6IGtodG1sL21pc2MvbG9hZGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvbWlzYy9sb2FkZXIuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS40NwpkaWZmIC1wIC11IC1yMS40NyBraHRtbC9taXNjL2xvYWRl
ci5oCi0tLSBraHRtbC9taXNjL2xvYWRlci5oCTIxIE5vdiAyMDA1IDAxOjIwOjIwIC0wMDAwCTEu
NDcKKysrIGtodG1sL21pc2MvbG9hZGVyLmgJMTUgRGVjIDIwMDUgMDg6NDA6MTAgLTAwMDAKQEAg
LTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlIDxkb20vZG9tX3N0cmluZy5oPgogI2luY2x1ZGUgIkRv
Y1B0ci5oIgogCi1jbGFzcyBRTW92aWU7CiBjbGFzcyBLSFRNTFBhcnQ7CiAKIG5hbWVzcGFjZSBL
SU8gewpAQCAtMzYwLDIwICszNTksMTAgQEAgbmFtZXNwYWNlIGtodG1sCiAgICAgICAgIHZpcnR1
YWwgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAJdm9pZCBjbGVhcigp
OwotCi0gICAgcHJpdmF0ZSBzbG90czoKLQkvKioKLQkgKiBnZXRzIGNhbGxlZCwgd2hlbmV2ZXIg
YSBRTW92aWUgY2hhbmdlcyBmcmFtZQotCSAqLwotCXZvaWQgbW92aWVVcGRhdGVkKCBjb25zdCBR
UmVjdCAmcmVjdCApOwotICAgICAgICB2b2lkIG1vdmllU3RhdHVzKGludCk7Ci0gICAgICAgIHZv
aWQgbW92aWVSZXNpemUoY29uc3QgUVNpemUmKTsKLSAgICAgICAgdm9pZCBkZWxldGVNb3ZpZSgp
OwotCisgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZG9fbm90aWZ5KGNvbnN0
IFFQaXhtYXAmIHAsIGNvbnN0IFFSZWN0JiByKTsKIAotCVFNb3ZpZSogbTsKICAgICAgICAgUVBp
eG1hcCogcDsKIAlRUGl4bWFwKiBiZzsKICAgICAgICAgUVJnYiBiZ0NvbG9yOwpAQCAtNjQ2LDEx
ICs2MzUsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBpbnQgbWF4Q2FjaGVhYmxlT2Jq
ZWN0U2l6ZSgpIHsgcmV0dXJuIG1heENhY2hlYWJsZTsgfQogCiAJLyoqCi0JICogcHJpbnRzIHNv
bWUgc3RhdGlzdGljcyB0byBzdGRvdXQKLQkgKi8KLQlzdGF0aWMgdm9pZCBzdGF0aXN0aWNzKCk7
Ci0KLQkvKioKIAkgKiBjbGVhbiB1cCBjYWNoZQogCSAqLwogCXN0YXRpYyB2b2lkIGZsdXNoKGJv
b2wgZm9yY2U9ZmFsc2UpOwpJbmRleDoga2h0bWwvbWlzYy9sb2FkZXIubW9jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IGtodG1sL21pc2MvbG9hZGVyLm1vYwpkaWZmIC1OIGtodG1sL21pc2MvbG9hZGVy
Lm1vYwpJbmRleDoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zvcm0uY3Bw
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzNApkaWZmIC1wIC11IC1yMS4xMzQga2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9mb3JtLmNwcAotLS0ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmNw
cAkzIERlYyAyMDA1IDIwOjE2OjQwIC0wMDAwCTEuMTM0CisrKyBraHRtbC9yZW5kZXJpbmcvcmVu
ZGVyX2Zvcm0uY3BwCTE1IERlYyAyMDA1IDA4OjQwOjExIC0wMDAwCkBAIC0yNiw4ICsyNiw2IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8a2RlYnVnLmg+CiAjaW5jbHVkZSA8a2xv
Y2FsZS5oPgotI2luY2x1ZGUgPGtmaWxlZGlhbG9nLmg+Ci0jaW5jbHVkZSA8a2NvbXBsZXRpb25i
b3guaD4KICNpbmNsdWRlIDxrY3Vyc29yLmg+CiAKICNpbmNsdWRlIDxxc3R5bGUuaD4KQEAgLTYw
OSw5ICs2MDcsNiBAQCBSZW5kZXJMZWdlbmQ6OlJlbmRlckxlZ2VuZChIVE1MR2VuZXJpY0ZvCiBD
b21ib0JveFdpZGdldDo6Q29tYm9Cb3hXaWRnZXQoUVdpZGdldCAqcGFyZW50KQogICAgIDogS0Nv
bWJvQm94KGZhbHNlLCBwYXJlbnQpCiB7Ci0gICAgc2V0QXV0b01hc2sodHJ1ZSk7Ci0gICAgaWYg
KGxpc3RCb3goKSkgbGlzdEJveCgpLT5pbnN0YWxsRXZlbnRGaWx0ZXIodGhpcyk7Ci0gICAgc2V0
TW91c2VUcmFja2luZyh0cnVlKTsKIH0KIAogYm9vbCBDb21ib0JveFdpZGdldDo6ZXZlbnQoUUV2
ZW50ICplKQpAQCAtOTE4LDEyICs5MTMsOSBAQCBLTGlzdEJveCogUmVuZGVyU2VsZWN0OjpjcmVh
dGVMaXN0Qm94KCkKIHsKICAgICBLTGlzdEJveCAqbGIgPSBuZXcgS0xpc3RCb3godmlldygpLT52
aWV3cG9ydCgpKTsKICAgICBsYi0+c2V0U2VsZWN0aW9uTW9kZShtX211bHRpcGxlID8gUUxpc3RC
b3g6OkV4dGVuZGVkIDogUUxpc3RCb3g6OlNpbmdsZSk7Ci0gICAgLy8gIyMjIGxvb2tzIGJyb2tl
bgotICAgIC8vbGItPnNldEF1dG9NYXNrKHRydWUpOwogICAgIGNvbm5lY3QoIGxiLCBTSUdOQUwo
IHNlbGVjdGlvbkNoYW5nZWQoKSApLCB0aGlzLCBTTE9UKCBzbG90U2VsZWN0aW9uQ2hhbmdlZCgp
ICkgKTsKICAgICBjb25uZWN0KCBsYiwgU0lHTkFMKCBjbGlja2VkKCBRTGlzdEJveEl0ZW0gKiAp
ICksIHRoaXMsIFNMT1QoIHNsb3RDbGlja2VkKCkgKSApOwogICAgIG1faWdub3JlU2VsZWN0RXZl
bnRzID0gZmFsc2U7Ci0gICAgbGItPnNldE1vdXNlVHJhY2tpbmcodHJ1ZSk7CiAKICAgICByZXR1
cm4gbGI7CiB9CkBAIC0xMjMxLDYgKzEyMjMsMyBAQCB2b2lkIFJlbmRlclNsaWRlcjo6c2xvdENs
aWNrZWQoKQogICAgIC8vIGVtaXQgbW91c2VDbGljayBldmVudCBldGMKICAgICBSZW5kZXJGb3Jt
RWxlbWVudDo6c2xvdENsaWNrZWQoKTsKIH0KLQotCi0jaW5jbHVkZSAicmVuZGVyX2Zvcm0ubW9j
IgpJbmRleDoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuNTgKZGlmZiAtcCAtdSAtcjEuNTgga2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9mb3JtLmgKLS0tIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfZm9ybS5oCTIxIE5vdiAyMDA1
IDAxOjIwOjI0IC0wMDAwCTEuNTgKKysrIGtodG1sL3JlbmRlcmluZy9yZW5kZXJfZm9ybS5oCTE1
IERlYyAyMDA1IDA4OjQwOjEyIC0wMDAwCkBAIC0zNiw3ICszNiw2IEBAIGNsYXNzIFFMaXN0Ym94
SXRlbTsKIAogI2luY2x1ZGUgPHF0ZXh0ZWRpdC5oPgogI2luY2x1ZGUgPGtsaW5lZWRpdC5oPgot
I2luY2x1ZGUgPHFoYm94Lmg+CiAjaW5jbHVkZSA8a2xpc3Rib3guaD4KICNpbmNsdWRlIDxrY29t
Ym9ib3guaD4KIApJbmRleDoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLm1vYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2Zvcm0ubW9jCmRpZmYgLU4ga2h0
bWwvcmVuZGVyaW5nL3JlbmRlcl9mb3JtLm1vYwpJbmRleDoga2h0bWwvcmVuZGVyaW5nL3JlbmRl
cl9mcmFtZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1s
L3JlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44Ngpk
aWZmIC1wIC11IC1yMS44NiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2ZyYW1lcy5jcHAKLS0tIGto
dG1sL3JlbmRlcmluZy9yZW5kZXJfZnJhbWVzLmNwcAkxNCBEZWMgMjAwNSAyMzozMTo1NSAtMDAw
MAkxLjg2CisrKyBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2ZyYW1lcy5jcHAJMTUgRGVjIDIwMDUg
MDg6NDA6MTIgLTAwMDAKQEAgLTM5LDEwICszOSw3IEBACiAjaW5jbHVkZSAia2h0bWxfcGFydC5o
IgogI2luY2x1ZGUgInJlbmRlcl9hcmVuYS5oIgogCi0jaW5jbHVkZSA8a2FwcGxpY2F0aW9uLmg+
CiAjaW5jbHVkZSA8a2N1cnNvci5oPgotI2luY2x1ZGUgPGttZXNzYWdlYm94Lmg+Ci0jaW5jbHVk
ZSA8a21pbWV0eXBlLmg+CiAjaW5jbHVkZSA8a2xvY2FsZS5oPgogI2luY2x1ZGUgPGtkZWJ1Zy5o
PgogI2luY2x1ZGUgPHF0aW1lci5oPgpAQCAtNTE3LDcgKzUxNCw2IEBAIGJvb2wgUmVuZGVyRnJh
bWVTZXQ6OnVzZXJSZXNpemUoIE1vdXNlRXYKICAgICAgICAgaWYoZXZ0LT50eXBlKCkgPT0gbW91
c2Vkb3duRXZlbnQpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNldFJlc2l6aW5nKHRydWUpOwot
ICAgICAgICAgICAgS0FwcGxpY2F0aW9uOjpzZXRPdmVycmlkZUN1cnNvcihjdXJzb3IpOwogICAg
ICAgICAgICAgbV92U3BsaXRQb3MgPSBfeDsKICAgICAgICAgICAgIG1faFNwbGl0UG9zID0gX3k7
CiAgICAgICAgICAgICBtX29sZHBvcyA9IC0xOwpAQCAtNTMxLDcgKzUyNyw2IEBAIGJvb2wgUmVu
ZGVyRnJhbWVTZXQ6OnVzZXJSZXNpemUoIE1vdXNlRXYKICAgICBpZihtX3Jlc2l6aW5nICYmIGV2
dC0+dHlwZSgpID09IG1vdXNldXBFdmVudCkKICAgICB7CiAgICAgICAgIHNldFJlc2l6aW5nKGZh
bHNlKTsKLSAgICAgICAgS0FwcGxpY2F0aW9uOjpyZXN0b3JlT3ZlcnJpZGVDdXJzb3IoKTsKICAg
ICAgICAgCiAgICAgICAgIGlmKG1fdlNwbGl0ICE9IC0xICkKICAgICAgICAgewpAQCAtMTAyNCw1
ICsxMDE5LDMgQEAgdm9pZCBSZW5kZXJQYXJ0Ojp1cGRhdGVXaWRnZXRQb3NpdGlvbigpCiAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxLSFRNTFZpZXcqPih2aWV3KS0+bGF5b3V0KCk7CiAgICAgfQog
fQotCi0jaW5jbHVkZSAicmVuZGVyX2ZyYW1lcy5tb2MiCkluZGV4OiBraHRtbC9yZW5kZXJpbmcv
cmVuZGVyX2ZyYW1lcy5tb2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZToga2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9mcmFtZXMubW9jCmRpZmYgLU4ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9mcmFtZXMubW9j
CkluZGV4OiBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xheWVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xheWVyLmNwcCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMjgKZGlmZiAtcCAtdSAtcjEuMTI4IGtodG1sL3JlbmRl
cmluZy9yZW5kZXJfbGF5ZXIuY3BwCi0tLSBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX2xheWVyLmNw
cAkxMCBEZWMgMjAwNSAyMDoyMTo1NiAtMDAwMAkxLjEyOAorKysga2h0bWwvcmVuZGVyaW5nL3Jl
bmRlcl9sYXllci5jcHAJMTUgRGVjIDIwMDUgMDg6NDA6MTQgLTAwMDAKQEAgLTU1LDYgKzU1LDEw
IEBACiAjaW5jbHVkZSAieG1sL0V2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfYmxv
Y2tpbXBsLmgiCiAKKyNpZiBTVkdfU1VQUE9SVAorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjZW5k
aWYKKwogI2luY2x1ZGUgPHFzY3JvbGxiYXIuaD4KICNpbmNsdWRlIDxxcHRydmVjdG9yLmg+CiAK
QEAgLTMwNiw2ICszMTAsMTAgQEAgUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ1Bvc2l0aW9uZWRBbmNl
c3RvcgogYm9vbAogUmVuZGVyTGF5ZXI6OmlzVHJhbnNwYXJlbnQoKSBjb25zdAogeworI2lmIFNW
R19TVVBQT1JUCisgICAgaWYgKG1fb2JqZWN0LT5ub2RlKCktPm5hbWVzcGFjZVVSSSgpID09IEtT
Vkc6OlNWR05hbWVzOjpzdmdOYW1lc3BhY2VVUkkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgogICAgIHJldHVybiBtX29iamVjdC0+c3R5bGUoKS0+b3BhY2l0eSgpIDwgMS4wZjsKIH0K
IApJbmRleDoga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNl
ZC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTYKZGlmZiAtcCAtdSAtcjEuOTYga2h0bWwv
cmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAKLS0tIGtodG1sL3JlbmRlcmluZy9yZW5kZXJf
cmVwbGFjZWQuY3BwCTggRGVjIDIwMDUgMDg6NTQ6NDAgLTAwMDAJMS45NgorKysga2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAJMTUgRGVjIDIwMDUgMDg6NDA6MTUgLTAwMDAKQEAg
LTI1NCw3ICsyNTQsNiBAQCB2b2lkIFJlbmRlcldpZGdldDo6ZGVzdHJveSgpCiAgICAgICAgICAg
ICBtX3ZpZXctPnJlbW92ZUNoaWxkKCBtX3dpZGdldCApOwogCiAgICAgICAgIG1fd2lkZ2V0LT5y
ZW1vdmVFdmVudEZpbHRlciggdGhpcyApOwotICAgICAgICBtX3dpZGdldC0+c2V0TW91c2VUcmFj
a2luZyggZmFsc2UgKTsKICAgICB9CiAKICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBtX2xheWVy
OwpAQCAtNTE1LDUgKzUxNCwzIEBAIHZvaWQgUmVuZGVyV2lkZ2V0OjpzZXRTZWxlY3Rpb25TdGF0
ZShTZWwKICAgICAgICAgICAgIG1fd2lkZ2V0LT5zZXRJc1NlbGVjdGVkKG1fc2VsZWN0aW9uU3Rh
dGUgIT0gU2VsZWN0aW9uTm9uZSk7CiAgICAgfQogfQotCi0jaW5jbHVkZSAicmVuZGVyX3JlcGxh
Y2VkLm1vYyIKSW5kZXg6IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfcmVwbGFjZWQubW9jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfcmVwbGFjZWQubW9jCmRpZmYg
LU4ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5tb2MKSW5kZXg6IGtodG1sL3htbC9k
b21fZG9jaW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0
bWwveG1sL2RvbV9kb2NpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yODQKZGlmZiAt
cCAtdSAtcjEuMjg0IGtodG1sL3htbC9kb21fZG9jaW1wbC5jcHAKLS0tIGtodG1sL3htbC9kb21f
ZG9jaW1wbC5jcHAJMTQgRGVjIDIwMDUgMjM6MzE6NTggLTAwMDAJMS4yODQKKysrIGtodG1sL3ht
bC9kb21fZG9jaW1wbC5jcHAJMTUgRGVjIDIwMDUgMDg6NDA6MTcgLTAwMDAKQEAgLTM0MzQsNSAr
MzQzNCwzIEBAIE5vZGVJbXBsICpEb2N1bWVudFR5cGVJbXBsOjpjbG9uZU5vZGUoYm8KICAgICAv
LyBUaGUgRE9NIExldmVsIDIgc3BlY2lmaWNhdGlvbiBzYXlzIGNsb25pbmcgRG9jdW1lbnRUeXBl
IG5vZGVzIGlzICJpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQiIHNvIGZvciBub3cgd2UgZG8gbm90
IHN1cHBvcnQgaXQuCiAgICAgcmV0dXJuIDA7CiB9Ci0KLSNpbmNsdWRlICJkb21fZG9jaW1wbC5t
b2MiCkluZGV4OiBraHRtbC94bWwvZG9tX2RvY2ltcGwubW9jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IGtodG1sL3htbC9kb21fZG9jaW1wbC5tb2MKZGlmZiAtTiBraHRtbC94bWwvZG9tX2RvY2ltcGwu
bW9jCkluZGV4OiBraHRtbC94bWwveG1sX3Rva2VuaXplci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL3htbF90b2tlbml6ZXIuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjU2CmRpZmYgLXAgLXUgLXIxLjU2IGtodG1sL3htbC94bWxfdG9rZW5p
emVyLmNwcAotLS0ga2h0bWwveG1sL3htbF90b2tlbml6ZXIuY3BwCTExIERlYyAyMDA1IDExOjQy
OjAzIC0wMDAwCTEuNTYKKysrIGtodG1sL3htbC94bWxfdG9rZW5pemVyLmNwcAkxNSBEZWMgMjAw
NSAwODo0MDoxOCAtMDAwMApAQCAtOTI1LDUgKzkyNSwzIEBAIFFNYXA8UVN0cmluZywgUVN0cmlu
Zz4gcGFyc2VBdHRyaWJ1dGVzKGMKIH0KIAogfQotCi0jaW5jbHVkZSAieG1sX3Rva2VuaXplci5t
b2MiCkluZGV4OiBraHRtbC94bWwveG1sX3Rva2VuaXplci5tb2MKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZToga2h0bWwveG1sL3htbF90b2tlbml6ZXIubW9jCmRpZmYgLU4ga2h0bWwveG1sL3htbF90b2tl
bml6ZXIubW9jCkluZGV4OiBrc3ZnMi9zdmcvU1ZHSW1hZ2VFbGVtZW50SW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3N2ZzIvc3ZnL1NWR0ltYWdlRWxlbWVu
dEltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzCmRpZmYgLXAgLXUgLXIxLjEzIGtz
dmcyL3N2Zy9TVkdJbWFnZUVsZW1lbnRJbXBsLmNwcAotLS0ga3N2ZzIvc3ZnL1NWR0ltYWdlRWxl
bWVudEltcGwuY3BwCTYgRGVjIDIwMDUgMDE6MjM6MjQgLTAwMDAJMS4xMworKysga3N2ZzIvc3Zn
L1NWR0ltYWdlRWxlbWVudEltcGwuY3BwCTE1IERlYyAyMDA1IDA4OjQwOjE5IC0wMDAwCkBAIC0y
MSw3ICsyMSw2IEBACiAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSA8a21pbWV0
eXBlLmg+CiAKICNpbmNsdWRlIDxxaW1hZ2UuaD4KICNpbmNsdWRlIDxxYnVmZmVyLmg+CkluZGV4
OiBrd3EvS1dRQXBwbGljYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2Vi
Q29yZS9rd3EvS1dRQXBwbGljYXRpb24uaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNApkaWZm
IC1wIC11IC1yMS4yNCBrd3EvS1dRQXBwbGljYXRpb24uaAotLS0ga3dxL0tXUUFwcGxpY2F0aW9u
LmgJMzAgQXVnIDIwMDUgMDk6MzA6MjMgLTAwMDAJMS4yNAorKysga3dxL0tXUUFwcGxpY2F0aW9u
LmgJMTUgRGVjIDIwMDUgMDg6NDA6MTkgLTAwMDAKQEAgLTM3LDcgKzM3LDYgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHNldE92ZXJyaWRlQ3Vyc29yKGNvbnN0IFFDdXJzb3IgJik7CiAgICAg
c3RhdGljIHZvaWQgcmVzdG9yZU92ZXJyaWRlQ3Vyc29yKCk7CiAgICAgc3RhdGljIGJvb2wgc2Vu
ZEV2ZW50KFFPYmplY3QgKm8sIFFFdmVudCAqZSkgeyByZXR1cm4gby0+ZXZlbnQoZSk7IH0KLSAg
ICBzdGF0aWMgdm9pZCBzZW5kUG9zdGVkRXZlbnRzKFFPYmplY3QgKnJlY2VpdmVyLCBpbnQgZXZl
bnRfdHlwZSkgeyB9CiAgICAgc3RhdGljIFFTdHlsZSAmc3R5bGUoKTsKICAgICBzdGF0aWMgUVBh
bGV0dGUgcGFsZXR0ZSgpIHsgcmV0dXJuIFFQYWxldHRlKCk7IH0KIH07CkluZGV4OiBrd3EvS1dR
Q29tYm9Cb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dR
Q29tYm9Cb3guaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zOApkaWZmIC1wIC11IC1yMS4zOCBr
d3EvS1dRQ29tYm9Cb3guaAotLS0ga3dxL0tXUUNvbWJvQm94LmgJMyBEZWMgMjAwNSAyMDoxNjo0
MCAtMDAwMAkxLjM4CisrKyBrd3EvS1dRQ29tYm9Cb3guaAkxNSBEZWMgMjAwNSAwODo0MDoxOSAt
MDAwMApAQCAtNDcsOSArNDcsNiBAQCBwdWJsaWM6ICAKIAogICAgIGludCBjdXJyZW50SXRlbSgp
IGNvbnN0IHsgcmV0dXJuIF9jdXJyZW50SXRlbTsgfQogICAgIHZvaWQgc2V0Q3VycmVudEl0ZW0o
aW50KTsKLQotICAgIFFMaXN0Qm94ICpsaXN0Qm94KCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAg
IHZvaWQgcG9wdXAoKSB7IH0KICAgICAKICAgICBRU2l6ZSBzaXplSGludCgpIGNvbnN0OwogICAg
IFFSZWN0IGZyYW1lR2VvbWV0cnkoKSBjb25zdDsKSW5kZXg6IGt3cS9LV1FLQXBwbGljYXRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiBrd3EvS1dRS0FwcGxpY2F0aW9uLmgKZGlmZiAtTiBrd3Ev
S1dRS0FwcGxpY2F0aW9uLmgKLS0tIGt3cS9LV1FLQXBwbGljYXRpb24uaAkyMiBKYW4gMjAwMyAw
MDoxMjozNCAtMDAwMAkxLjUKKysrIGt3cS9LV1FLQXBwbGljYXRpb24uaAkxIEphbiAxOTcwIDAw
OjAwOjAwIC0wMDAwCkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5k
ZWYgS0FQUF9IXwotI2RlZmluZSBLQVBQX0hfCi0KLSNpbmNsdWRlICJLV1FLR2xvYmFsLmgiCi0j
aW5jbHVkZSAiS1dRS0dsb2JhbFNldHRpbmdzLmgiCi0jaW5jbHVkZSAiS1dRRENPUENsaWVudC5o
IgotI2luY2x1ZGUgIktXUUFwcGxpY2F0aW9uLmgiCi0jaW5jbHVkZSAiS1dRUGFsZXR0ZS5oIgot
I2luY2x1ZGUgIktXUVJlZ0V4cC5oIgotCi1jbGFzcyBLQXBwbGljYXRpb24gOiBwdWJsaWMgUUFw
cGxpY2F0aW9uIHsgfTsKLQotS0FwcGxpY2F0aW9uICogY29uc3Qga2FwcCA9IDA7Ci0KLSNlbmRp
ZgpJbmRleDoga3dxL0tXUUtIVE1MUGFnZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZToga3dx
L0tXUUtIVE1MUGFnZUNhY2hlLmgKZGlmZiAtTiBrd3EvS1dRS0hUTUxQYWdlQ2FjaGUuaAotLS0g
a3dxL0tXUUtIVE1MUGFnZUNhY2hlLmgJNCBEZWMgMjAwNSAxMTozNTowOSAtMDAwMAkxLjYKKysr
IGt3cS9LV1FLSFRNTFBhZ2VDYWNoZS5oCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKQEAgLTEs
NTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMyBBcHBsZSBDb21wdXRlciwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBLSFRNTF9QQUdFQ0FDSEVf
SF8KLSNkZWZpbmUgS0hUTUxfUEFHRUNBQ0hFX0hfCi0KLSNpbmNsdWRlICJLV1FDU3RyaW5nLmgi
Ci0KLWNsYXNzIFFPYmplY3Q7Ci0KLS8qCi0gICAgVGhpcyBjbGFzcyBpcyBub3QgdXNlZCBieSBX
ZWJDb3JlLiAgVGhlIFdlYkNvcmUvV2ViS2l0IHBhZ2UgY2FjaGUgaXMKLSAgICBhIGNhY2hlIG9m
IGEgZnVsbHkgY29uc3RydWN0ZWQgRE9NIGFuZCBhc3NvY2lhdGVkIHJlbmRlciBvYmplY3RzLgot
Ki8KLWNsYXNzIEtIVE1MUGFnZUNhY2hlCi17Ci1wdWJsaWM6Ci0gICAgc3RhdGljIEtIVE1MUGFn
ZUNhY2hlICpzZWxmKCkgeyByZXR1cm4gMDsgfQotICAgIAotICAgIGxvbmcgY3JlYXRlQ2FjaGVF
bnRyeSgpIHsgcmV0dXJuIDA7IH0KLSAgICB2b2lkIGFkZERhdGEobG9uZywgY29uc3QgUUJ5dGVB
cnJheSAmKSB7IH0KLSAgICB2b2lkIGNhbmNlbEVudHJ5KGxvbmcpIHsgfQotICAgIHZvaWQgZW5k
RGF0YShsb25nKSB7IH0KLSAgICAKLSAgICBib29sIGlzVmFsaWQobG9uZykgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICAKLSAgICB2b2lkIGZldGNoRGF0YShsb25nLCBRT2JqZWN0ICosIGNvbnN0IGNo
YXIgKikgeyB9Ci0gICAgdm9pZCBjYW5jZWxGZXRjaChRT2JqZWN0ICopIHsgfQotfTsKLQotI2Vu
ZGlmCkluZGV4OiBrd3EvS1dRS0hUTUxQYXJ0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2t3cS9LV1FLSFRNTFBhcnQubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NzAyCmRpZmYgLXAgLXUgLXIxLjcwMiBrd3EvS1dRS0hUTUxQYXJ0Lm1tCi0tLSBrd3EvS1dRS0hU
TUxQYXJ0Lm1tCTE0IERlYyAyMDA1IDIzOjMyOjAwIC0wMDAwCTEuNzAyCisrKyBrd3EvS1dRS0hU
TUxQYXJ0Lm1tCTE1IERlYyAyMDA1IDA4OjQwOjIzIC0wMDAwCkBAIC0xNTM4LDEwICsxNTM4LDgg
QEAgdm9pZCBLV1FLSFRNTFBhcnQ6Om9wZW5VUkxGcm9tUGFnZUNhY2hlKAogICAgIAogICAgIC8v
IGluaXRpYWxpemluZyBtX3VybCB0byB0aGUgbmV3IHVybCBicmVha3MgcmVsYXRpdmUgbGlua3Mg
d2hlbiBvcGVuaW5nIHN1Y2ggYSBsaW5rIGFmdGVyIHRoaXMgY2FsbCBhbmQgX2JlZm9yZV8gYmVn
aW4oKSBpcyBjYWxsZWQgKHdoZW4gdGhlIGZpcnN0CiAgICAgLy8gZGF0YSBhcnJpdmVzKSAoU2lt
b24pCi0gICAgaWYobV91cmwucHJvdG9jb2woKS5zdGFydHNXaXRoKCAiaHR0cCIgKSAmJiAhbV91
cmwuaG9zdCgpLmlzRW1wdHkoKSAmJiBtX3VybC5wYXRoKCkuaXNFbXB0eSgpKSB7CisgICAgaWYg
KG1fdXJsLnByb3RvY29sKCkuc3RhcnRzV2l0aCgiaHR0cCIpICYmICFtX3VybC5ob3N0KCkuaXNF
bXB0eSgpICYmIG1fdXJsLnBhdGgoKS5pc0VtcHR5KCkpCiAgICAgICAgIG1fdXJsLnNldFBhdGgo
Ii8iKTsKLSAgICAgICAgZW1pdCBkLT5tX2V4dGVuc2lvbi0+c2V0TG9jYXRpb25CYXJVUkwoIG1f
dXJsLnByZXR0eVVSTCgpICk7Ci0gICAgfQogICAgIAogICAgIC8vIGNvcHkgdG8gbV93b3JraW5n
VVJMIGFmdGVyIGZpeGluZyBtX3VybCBhYm92ZQogICAgIGQtPm1fd29ya2luZ1VSTCA9IG1fdXJs
OwpJbmRleDoga3dxL0tXUUtIVE1MUGFydEJyb3dzZXJFeHRlbnNpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS0hUTUxQYXJ0QnJvd3NlckV4dGVuc2lv
bi5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjExCmRpZmYgLXAgLXUgLXIxLjExIGt3cS9LV1FL
SFRNTFBhcnRCcm93c2VyRXh0ZW5zaW9uLmgKLS0tIGt3cS9LV1FLSFRNTFBhcnRCcm93c2VyRXh0
ZW5zaW9uLmgJMTkgSnVuIDIwMDUgMDE6NTg6MzYgLTAwMDAJMS4xMQorKysga3dxL0tXUUtIVE1M
UGFydEJyb3dzZXJFeHRlbnNpb24uaAkxNSBEZWMgMjAwNSAwODo0MDoyMyAtMDAwMApAQCAtMzIs
MTAgKzMyLDYgQEAgY2xhc3MgS0hUTUxQYXJ0OwogY2xhc3MgS0hUTUxQYXJ0QnJvd3NlckV4dGVu
c2lvbiA6IHB1YmxpYyBLUGFydHM6OkJyb3dzZXJFeHRlbnNpb24gewogcHVibGljOgogICAgIEtI
VE1MUGFydEJyb3dzZXJFeHRlbnNpb24oS0hUTUxQYXJ0ICopOwotCi0gICAgdm9pZCBlZGl0YWJs
ZVdpZGdldEZvY3VzZWQoUVdpZGdldCAqKSB7IH0KLSAgICB2b2lkIGVkaXRhYmxlV2lkZ2V0Qmx1
cnJlZChRV2lkZ2V0ICopIHsgfQotICAgIHZvaWQgc2V0TG9jYXRpb25CYXJVUkwoY29uc3QgUVN0
cmluZyAmKSB7IH0KICAgICAKICAgICB2aXJ0dWFsIEtQYXJ0czo6QnJvd3NlckludGVyZmFjZSAq
YnJvd3NlckludGVyZmFjZSgpIHsgcmV0dXJuICZfYnJvd3NlckludGVyZmFjZTsgfQogCkluZGV4
OiBrd3EvS1dRS0hpc3RvcnlQcm92aWRlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9rd3EvS1dRS0hpc3RvcnlQcm92aWRlci5tbSx2CnJldHJpZXZpbmcgcmV2aXNp
b24gMS4xOQpkaWZmIC1wIC11IC1yMS4xOSBrd3EvS1dRS0hpc3RvcnlQcm92aWRlci5tbQotLS0g
a3dxL0tXUUtIaXN0b3J5UHJvdmlkZXIubW0JMyBPY3QgMjAwNSAyMToxMzowNSAtMDAwMAkxLjE5
CisrKyBrd3EvS1dRS0hpc3RvcnlQcm92aWRlci5tbQkxNSBEZWMgMjAwNSAwODo0MDoyMyAtMDAw
MApAQCAtMzgsMTEgKzM4LDYgQEAgSGlzdG9yeVByb3ZpZGVyICpIaXN0b3J5UHJvdmlkZXI6OnNl
bGYoKQogICAgIHJldHVybiAmaW5zdGFuY2U7CiB9CiAKLXZvaWQgSGlzdG9yeVByb3ZpZGVyOjpp
bnNlcnQoY29uc3QgUVN0cmluZyAmcykKLXsKLSAgICAvLyBJbnNlcnRpb24gaGFuZGxlZCBieSBX
ZWJLaXQuCi19Ci0KIGJvb2wgSGlzdG9yeVByb3ZpZGVyOjpjb250YWlucyhjb25zdCBRU3RyaW5n
ICZzKSBjb25zdAogewogICAgIC8vIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBicmlkZ2UgaXMgY2Fy
ZWZ1bCBub3QgdG8gdGhyb3cgZXhjZXB0aW9ucyBoZXJlCkluZGV4OiBrd3EvS1dRS0phdmFBcHBs
ZXRDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UUtKYXZhQXBwbGV0Q29udGV4dC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUKZGlmZiAtcCAt
dSAtcjEuNSBrd3EvS1dRS0phdmFBcHBsZXRDb250ZXh0LmgKLS0tIGt3cS9LV1FLSmF2YUFwcGxl
dENvbnRleHQuaAkyMiBKYW4gMjAwMyAwMDoxMjozNSAtMDAwMAkxLjUKKysrIGt3cS9LV1FLSmF2
YUFwcGxldENvbnRleHQuaAkxNSBEZWMgMjAwNSAwODo0MDoyMyAtMDAwMApAQCAtMjksMTQgKzI5
LDEwIEBACiAjaW5jbHVkZSAiS1dRT2JqZWN0LmgiCiAjaW5jbHVkZSAia2h0bWxfcGFydC5oIgog
Ci1jbGFzcyBEQ09QT2JqZWN0OwotCi10eXBlZGVmIGVudW0geyB9IEpUeXBlOwotCiBjbGFzcyBL
SmF2YUFwcGxldENvbnRleHQgOiBwdWJsaWMgUU9iamVjdAogewogcHVibGljOgotICAgIEtKYXZh
QXBwbGV0Q29udGV4dChEQ09QT2JqZWN0KiA9IDAsIEtIVE1MUGFydCAqcCA9IDApIHttX3BhcnQg
PSBwO30KKyAgICBLSmF2YUFwcGxldENvbnRleHQoS0hUTUxQYXJ0ICpwID0gMCkge21fcGFydCA9
IHA7fQogICAgIEtIVE1MUGFydCAqcGFydCgpeyByZXR1cm4gbV9wYXJ0OyB9OwogcHJpdmF0ZToK
ICAgICBLSFRNTFBhcnQgKm1fcGFydDsKSW5kZXg6IGt3cS9LV1FLUGFydHNIaXN0b3J5UHJvdmlk
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9rd3EvS1dRS1BhcnRz
SGlzdG9yeVByb3ZpZGVyLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC1wIC11IC1y
MS43IGt3cS9LV1FLUGFydHNIaXN0b3J5UHJvdmlkZXIuaAotLS0ga3dxL0tXUUtQYXJ0c0hpc3Rv
cnlQcm92aWRlci5oCTIyIEphbiAyMDAzIDAwOjEyOjM1IC0wMDAwCTEuNworKysga3dxL0tXUUtQ
YXJ0c0hpc3RvcnlQcm92aWRlci5oCTE1IERlYyAyMDA1IDA4OjQwOjI0IC0wMDAwCkBAIC0zNCw3
ICszNCw2IEBAIGNsYXNzIEhpc3RvcnlQcm92aWRlciA6IHB1YmxpYyBRT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgSGlzdG9yeVByb3ZpZGVyICpzZWxmKCk7CiAKLSAgICB2b2lkIGluc2Vy
dChjb25zdCBRU3RyaW5nICYpOwogICAgIGJvb2wgY29udGFpbnMoY29uc3QgUVN0cmluZyAmKSBj
b25zdDsKIH07CiAKSW5kZXg6IGt3cS9LV1FLUGFydHNQYXJ0TWFuYWdlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IGt3cS9LV1FLUGFydHNQYXJ0TWFuYWdlci5oCmRpZmYgLU4ga3dxL0tXUUtQYXJ0
c1BhcnRNYW5hZ2VyLmgKLS0tIGt3cS9LV1FLUGFydHNQYXJ0TWFuYWdlci5oCTIyIEphbiAyMDAz
IDAwOjEyOjM1IC0wMDAwCTEuNAorKysga3dxL0tXUUtQYXJ0c1BhcnRNYW5hZ2VyLmgJMSBKYW4g
MTk3MCAwMDowMDowMCAtMDAwMApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDAzIEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaWZuZGVmIEtQQVJUU19QQVJUTUFOQUdFUl9ICi0jZGVmaW5lIEtQQVJUU19QQVJUTUFOQUdF
Ul9ICi0KLSNpbmNsdWRlICJLV1FHdWFyZGVkUHRyLmgiCi0jaW5jbHVkZSAiS1dRVGltZXIuaCIK
LSNpbmNsdWRlICJLV1FEYXRlVGltZS5oIgotCi1uYW1lc3BhY2UgS1BhcnRzIHsKLQotY2xhc3Mg
UGFydE1hbmFnZXI7Ci0KLX0KLQotY2xhc3MgRENPUE9iamVjdCB7IH07Ci0KLSNlbmRpZgpJbmRl
eDoga3dxL0tXUU1vdmllLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZToga3dxL0tXUU1vdmllLmgKZGlm
ZiAtTiBrd3EvS1dRTW92aWUuaAotLS0ga3dxL0tXUU1vdmllLmgJMjIgSmFuIDIwMDMgMDA6MTI6
MzUgLTAwMDAJMS4xMgorKysga3dxL0tXUU1vdmllLmgJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAw
MApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDAzIEFwcGxlIENvbXB1
dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFFNT1ZJRV9I
XwotI2RlZmluZSBRTU9WSUVfSF8KLQotI2luY2x1ZGUgIktXUU9iamVjdC5oIgotI2luY2x1ZGUg
IktXUUFzeW5jSU8uaCIKLSNpbmNsdWRlICJLV1FQaXhtYXAuaCIKLSNpbmNsdWRlICJLV1FJbWFn
ZS5oIgotI2luY2x1ZGUgIktXUVJlY3QuaCIKLQotY2xhc3MgUU1vdmllIHsKLXB1YmxpYzoKLSAg
ICB2b2lkIHVucGF1c2UoKSB7IH0KLSAgICB2b2lkIHBhdXNlKCkgeyB9Ci0gICAgdm9pZCByZXN0
YXJ0KCkgeyB9Ci0gICAgYm9vbCBmaW5pc2hlZCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29s
IHJ1bm5pbmcoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIGludCBmcmFtZU51bWJlcigpIGNvbnN0
OwotCi0gICAgY29uc3QgUVJlY3QmIGdldFZhbGlkUmVjdCgpIGNvbnN0OwotICAgIGNvbnN0IFFQ
aXhtYXAmIGZyYW1lUGl4bWFwKCkgY29uc3Q7Ci19OwotCi0jZW5kaWYKSW5kZXg6IGt3cS9LV1FN
b3ZpZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBrd3EvS1dRTW92aWUubW0KZGlmZiAtTiBrd3Ev
S1dRTW92aWUubW0KLS0tIGt3cS9LV1FNb3ZpZS5tbQkzIE9jdCAyMDA1IDIxOjEzOjA2IC0wMDAw
CTEuOAorKysga3dxL0tXUU1vdmllLm1tCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKQEAgLTEs
MzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMyBBcHBsZSBDb21wdXRlciwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lt
cG9ydCAiS1dRTW92aWUuaCIKLQotY29uc3QgUVJlY3QgJlFNb3ZpZTo6Z2V0VmFsaWRSZWN0KCkg
Y29uc3QKLXsKLSAgICBzdGF0aWMgUVJlY3QgcmVjdDsKLSAgICByZXR1cm4gcmVjdDsKLX0KLQot
Y29uc3QgUVBpeG1hcCAmUU1vdmllOjpmcmFtZVBpeG1hcCgpIGNvbnN0Ci17Ci0gICAgc3RhdGlj
IFFQaXhtYXAgcGl4bWFwOwotICAgIHJldHVybiBwaXhtYXA7Ci19CkluZGV4OiBrd3EvS1dRT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tXUU9iamVj
dC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM5CmRpZmYgLXAgLXUgLXIxLjM5IGt3cS9LV1FP
YmplY3QuaAotLS0ga3dxL0tXUU9iamVjdC5oCTEwIERlYyAyMDA1IDE3OjE0OjM4IC0wMDAwCTEu
MzkKKysrIGt3cS9LV1FPYmplY3QuaAkxNSBEZWMgMjAwNSAwODo0MDoyNCAtMDAwMApAQCAtNDcs
NyArNDcsNiBAQCBjbGFzcyBRRXZlbnQ7CiBjbGFzcyBRRm9udDsKIGNsYXNzIFFGb250TWV0cmlj
czsKIGNsYXNzIFFJbWFnZTsKLWNsYXNzIFFNb3ZpZTsKIGNsYXNzIFFQYWludERldmljZTsKIGNs
YXNzIFFQYWludERldmljZU1ldHJpY3M7CiBjbGFzcyBRUGFpbnRlcjsKSW5kZXg6IGt3cS9LV1FT
Y3JvbGxWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva3dxL0tX
UVNjcm9sbFZpZXcuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MQpkaWZmIC1wIC11IC1yMS40
MSBrd3EvS1dRU2Nyb2xsVmlldy5oCi0tLSBrd3EvS1dRU2Nyb2xsVmlldy5oCTMgTm92IDIwMDUg
MTk6MTI6MDYgLTAwMDAJMS40MQorKysga3dxL0tXUVNjcm9sbFZpZXcuaAkxNSBEZWMgMjAwNSAw
ODo0MDoyNCAtMDAwMApAQCAtODEsMTIgKzgxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY29udGVu
dHNUb1ZpZXdwb3J0KGludCB4LCBpbnQgeSwgaW50JiB2eCwgaW50JiB2eSk7CiAgICAgdm9pZCB2
aWV3cG9ydFRvQ29udGVudHMoaW50IHZ4LCBpbnQgdnksIGludCYgeCwgaW50JiB5KTsKIAotICAg
IFFXaWRnZXQgKmNsaXBwZXIoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdm9pZCBlbmFibGVD
bGlwcGVyKGJvb2wpIHsgfQotCiAgICAgdm9pZCBzZXRTdGF0aWNCYWNrZ3JvdW5kKGJvb2wpOwot
Ci0gICAgdm9pZCByZXNpemVFdmVudChRUmVzaXplRXZlbnQgKik7CiAgICAgICAgIAogICAgIE5T
VmlldyAqZ2V0RG9jdW1lbnRWaWV3KCkgY29uc3Q7CiAKSW5kZXg6IGt3cS9LV1FTY3JvbGxWaWV3
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2t3cS9LV1FTY3JvbGxW
aWV3Lm1tLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg3CmRpZmYgLXAgLXUgLXIxLjg3IGt3cS9L
V1FTY3JvbGxWaWV3Lm1tCi0tLSBrd3EvS1dRU2Nyb2xsVmlldy5tbQk5IERlYyAyMDA1IDIzOjQ4
OjU3IC0wMDAwCTEuODcKKysrIGt3cS9LV1FTY3JvbGxWaWV3Lm1tCTE1IERlYyAyMDA1IDA4OjQw
OjI0IC0wMDAwCkBAIC00NTAsMTAgKzQ1MCw2IEBAIHZvaWQgUVNjcm9sbFZpZXc6OnNldFN0YXRp
Y0JhY2tncm91bmQoYm8KICAgICBLV1FfVU5CTE9DS19FWENFUFRJT05TOwogfQogCi12b2lkIFFT
Y3JvbGxWaWV3OjpyZXNpemVFdmVudChRUmVzaXplRXZlbnQgKikKLXsKLX0KLQogTlNWaWV3ICpR
U2Nyb2xsVmlldzo6Z2V0RG9jdW1lbnRWaWV3KCkgY29uc3QKIHsKICAgICBpZCB2aWV3ID0gZ2V0
VmlldygpOwpJbmRleDoga3dxL0tXUVdpZGdldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9XZWJDb3JlL2t3cS9LV1FXaWRnZXQuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42OApk
aWZmIC1wIC11IC1yMS42OCBrd3EvS1dRV2lkZ2V0LmgKLS0tIGt3cS9LV1FXaWRnZXQuaAkxMSBP
Y3QgMjAwNSAxOToxNjo0NSAtMDAwMAkxLjY4CisrKyBrd3EvS1dRV2lkZ2V0LmgJMTUgRGVjIDIw
MDUgMDg6NDA6MjQgLTAwMDAKQEAgLTcyLDkgKzcyLDYgQEAgcHVibGljOgogICAgIAogICAgIHZv
aWQgc2V0QWN0aXZlV2luZG93KCk7CiAKLSAgICB2b2lkIHNldEF1dG9NYXNrKGJvb2wpIHsgfQot
ICAgIHZvaWQgc2V0TW91c2VUcmFja2luZyhib29sKSB7IH0KLQogICAgIGxvbmcgd2luSWQoKSBj
b25zdDsKICAgICBpbnQgeCgpIGNvbnN0OwogICAgIGludCB5KCkgY29uc3Q7CkBAIC0xMjUsMTkg
KzEyMiw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3coKTsKICAgICB2b2lkIGhpZGUoKTsKIAot
ICAgIHZvaWQgc2hvd0V2ZW50KFFTaG93RXZlbnQgKikgeyB9Ci0gICAgdm9pZCBoaWRlRXZlbnQo
UUhpZGVFdmVudCAqKSB7IH0KLSAgICB2b2lkIHdoZWVsRXZlbnQoUVdoZWVsRXZlbnQgKikgeyB9
Ci0gICAgdm9pZCBrZXlQcmVzc0V2ZW50KFFLZXlFdmVudCAqKSB7IH0KLSAgICB2b2lkIGtleVJl
bGVhc2VFdmVudChRS2V5RXZlbnQgKikgeyB9Ci0gICAgdm9pZCBmb2N1c0luRXZlbnQoUUZvY3Vz
RXZlbnQgKikgeyB9Ci0gICAgdm9pZCBmb2N1c091dEV2ZW50KFFGb2N1c0V2ZW50ICopIHsgfQot
Ci0gICAgZW51bSBCYWNrZ3JvdW5kTW9kZSB7IE5vQmFja2dyb3VuZCB9OyAgICAKLSAgICB2b2lk
IHNldEJhY2tncm91bmRNb2RlKEJhY2tncm91bmRNb2RlKSB7IH0KLQotICAgIHZvaWQgc2V0QWNj
ZXB0RHJvcHMoYm9vbCkgeyB9Ci0gICAgICAgIAogICAgIE5TVmlldyAqZ2V0VmlldygpIGNvbnN0
OwogICAgIE5TVmlldyAqZ2V0T3V0ZXJWaWV3KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRWaWV3KE5T
VmlldyAqYVZpZXcpOwo=
</data>
<flag name="review"
          id="1008"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>