<?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>159378</bug_id>
          
          <creation_ts>2016-07-01 17:45:44 -0700</creation_ts>
          <short_desc>[Cocoa] Adopt modern API availability macros</short_desc>
          <delta_ts>2017-03-25 19:36:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>aestes</cc>
    
    <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1207373</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-07-01 17:45:44 -0700</bug_when>
    <thetext>Adopt the API_AVAILABLE family of macros from macOS Sierra and iOS 10’s CFAvailability.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207374</commentid>
    <comment_count>1</comment_count>
      <attachid>282618</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-01 17:46:47 -0700</bug_when>
    <thetext>Created attachment 282618
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207383</commentid>
    <comment_count>2</comment_count>
      <attachid>282621</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-01 18:00:50 -0700</bug_when>
    <thetext>Created attachment 282621
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207485</commentid>
    <comment_count>3</comment_count>
      <attachid>282654</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-02 23:30:01 -0700</bug_when>
    <thetext>Created attachment 282654
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207486</commentid>
    <comment_count>4</comment_count>
      <attachid>282655</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-03 00:12:51 -0700</bug_when>
    <thetext>Created attachment 282655
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207493</commentid>
    <comment_count>5</comment_count>
      <attachid>282658</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-03 08:51:32 -0700</bug_when>
    <thetext>Created attachment 282658
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207499</commentid>
    <comment_count>6</comment_count>
      <attachid>282660</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-03 10:00:15 -0700</bug_when>
    <thetext>Created attachment 282660
Use modern availability macros</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207500</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-07-03 10:09:06 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r202789&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207509</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-07-03 11:33:21 -0700</bug_when>
    <thetext>Reopening since removing the NA annotations made things available on those platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207511</commentid>
    <comment_count>9</comment_count>
      <attachid>282663</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-03 11:52:00 -0700</bug_when>
    <thetext>Created attachment 282663
Add TARGET_OS_* guards</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207512</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-03 11:53:56 -0700</bug_when>
    <thetext>Attachment 282663 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:3:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207518</commentid>
    <comment_count>11</comment_count>
      <attachid>282666</attachid>
    <who name="">mitz</who>
    <bug_when>2016-07-03 12:13:03 -0700</bug_when>
    <thetext>Created attachment 282666
Another one for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207519</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-03 12:15:24 -0700</bug_when>
    <thetext>Attachment 282666 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:3:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207521</commentid>
    <comment_count>13</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-07-03 12:45:09 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r202793&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282618</attachid>
            <date>2016-07-01 17:46:47 -0700</date>
            <delta_ts>2016-07-01 18:00:29 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>modern-api-macros.diff</filename>
            <type>text/plain</type>
            <size>129321</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dL
QnJvd3NpbmdDb250ZXh0SGFuZGxlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwg
aW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlIDogTlNPYmplY3Qg
PE5TU2VjdXJlQ29kaW5nPgogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0NvY29hL1dLRm91bmRhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDEyICs0MiwxMCBAQAogCiAjaWZuZGVmIFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NF
U1NJTkdfRU5BQkxFRAogCi0jZGVmaW5lIFdLX0FWQUlMQUJMRShfbWFjLCBfaW9zKQotI2RlZmlu
ZSBXS19DTEFTU19BVkFJTEFCTEUoX21hYywgX2lvcykgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0
eSAoImRlZmF1bHQiKSkpCi0jZGVmaW5lIFdLX0RFUFJFQ0FURUQoX21hY0ludHJvLCBfbWFjRGVw
LCBfaW9zSW50cm8sIF9pb3NEZXAsIC4uLikgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZChfX1ZB
X0FSR1NfXykpKQotI2RlZmluZSBXS19DTEFTU19ERVBSRUNBVEVEKF9tYWNJbnRybywgX21hY0Rl
cCwgX2lvc0ludHJvLCBfaW9zRGVwLCAuLi4pIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRl
ZmF1bHQiKSkpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoX19WQV9BUkdTX18pKSkKLSNkZWZp
bmUgV0tfRU5VTV9BVkFJTEFCTEUoX21hYywgX2lvcykKLSNkZWZpbmUgV0tfRU5VTV9BVkFJTEFC
TEVfSU9TKF9pb3MpCi0jZGVmaW5lIFdLX0VOVU1fREVQUkVDQVRFRChfbWFjSW50cm8sIF9tYWNE
ZXAsIF9pb3NJbnRybywgX2lvc0RlcCwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9f
VkFfQVJHU19fKSkpCisjZGVmaW5lIFdLX0FQSV9BVkFJTEFCTEUoLi4uKQorI2RlZmluZSBXS19D
TEFTU19BVkFJTEFCTEUoLi4uKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0Iikp
KSBXS19BUElfQVZBSUxBQkxFKF9fVkFfQVJHU19fKQorI2RlZmluZSBXS19BUElfREVQUkVDQVRF
RChfbWVzc2FnZSwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9tZXNzYWdlKSkpCisj
ZGVmaW5lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoX3JlcGxhY2VtZW50LCAu
Li4pIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSAiICNfcmVwbGFjZW1lbnQpKSkKKyNk
ZWZpbmUgV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKF9yZXBsYWNlbWVudCwg
Li4uKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKSBfX2F0dHJpYnV0ZV9f
KChkZXByZWNhdGVkKCJ1c2UgIiAjX3JlcGxhY2VtZW50KSkpCiAKICNlbmRpZgpJbmRleDogU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUuaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFt
ZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZv
dW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2Ug
X1dLRnJhbWVIYW5kbGUgOiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KIAog
QGVuZApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVz
dWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tI
aXRUZXN0UmVzdWx0LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvX1dLSGl0VGVzdFJlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpKQogQGludGVyZmFjZSBfV0tIaXRUZXN0UmVzdWx0IDogTlNPYmplY3QgPE5TQ29weWlu
Zz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1VSTCAqYWJzb2x1
dGVJbWFnZVVSTDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVt
b3RlT2JqZWN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaAkocmV2aXNpb24gMjAyNzU5KQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJbnRlcmZh
Y2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1Jl
bW90ZU9iamVjdEludGVyZmFjZSA6IE5TT2JqZWN0CiAKICsgKGluc3RhbmNldHlwZSlyZW1vdGVP
YmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6KFByb3RvY29sICopcHJvdG9jb2w7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVP
YmplY3RSZWdpc3RyeS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDcgKzMxLDcgQEAKIAogQGNsYXNzIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZTsKIAotV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IDogTlNP
YmplY3QKIAogLSAodm9pZClyZWdpc3RlckV4cG9ydGVkT2JqZWN0OihpZClvYmplY3QgaW50ZXJm
YWNlOihfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKilpbnRlcmZhY2U7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50cy5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDEyICsyOSwxMiBAQAogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMpIHsKICAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
Rmlyc3RMYXlvdXQgPSAxIDw8IDAsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dCBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEg
PDwgMSwKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCAx
LAogICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50V2l0aFNpZ25pZmljYW50
QXJlYSA9IDEgPDwgMiwKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50UmVhY2hlZFNlc3Np
b25SZXN0b3JhdGlvblJlbmRlclRyZWVTaXplVGhyZXNob2xkIFdLX0VOVU1fQVZBSUxBQkxFKDEw
XzExLCA5XzApID0gMSA8PCAzLAotICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdExh
eW91dEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdLX0VOVU1fQVZBSUxBQkxF
KDEwXzExLCA5XzApID0gMSA8PCA0LAotICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJz
dFBhaW50QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcgV0tfRU5VTV9BVkFJTEFC
TEUoMTBfMTEsIDlfMCkgPSAxIDw8IDUsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZp
cnN0UGFpbnQgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCkgPSAxIDw8IDYsCi19IFdLX0VO
VU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRS
ZWFjaGVkU2Vzc2lvblJlc3RvcmF0aW9uUmVuZGVyVHJlZVNpemVUaHJlc2hvbGQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDMsCisgICAgX1dLUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5k
ZXJpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDQs
CisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnRBZnRlclN1cHByZXNzZWRJ
bmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKSA9IDEgPDwgNSwKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSA9IDEgPDwgNiwKK30gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKICNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
VHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dL
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS1NhbWVEb2N1bWUKICAgICBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZVNlc3Np
b25TdGF0ZVB1c2gsCiAgICAgX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGVTZXNzaW9uU3Rh
dGVSZXBsYWNlLAogICAgIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlU2Vzc2lvblN0YXRl
UG9wLAotfSBXS19BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgJKHJldmlz
aW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNr
Rm9yd2FyZExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogICovCiBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tC
YWNrRm9yd2FyZExpc3QgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IFRoZSBjdXJyZW50IGl0
ZW0uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0Zvcndh
cmRMaXN0SXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAqLwogTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQmFja0ZvcndhcmRMaXN0SXRl
bSA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiBAcHJvdG9jb2wgV0tCcm93
c2luZ0NvbnRleHRMb2FkRGVsZWdhdGU7CiBAcHJvdG9jb2wgV0tCcm93c2luZ0NvbnRleHRQb2xp
Y3lEZWxlZ2F0ZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciA6IE5TT2JqZWN0CiAKICNwcmFnbWEgbWFyayBEZWxlZ2F0ZXMKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRH
cm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRHcm91cC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgogCi1XS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRHcm91cCA6IE5TT2Jq
ZWN0CiAKIC0gKGlkKWluaXRXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVj
dGlvbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBACiAK
IEBlbmQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQ29ubmVjdGlvbiA6IE5T
T2JqZWN0CiAKIC0gKHZvaWQpc2VuZE1lc3NhZ2VXaXRoTmFtZTooTlNTdHJpbmcgKiltZXNzYWdl
TmFtZSBib2R5OihpZCltZXNzYWdlQm9keTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NyArMzIsNyBAQAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogLyohIEBjb25zdGFudCBXS0Vy
cm9yRG9tYWluIEluZGljYXRlcyBhIFdlYktpdCBlcnJvci4gKi8KLVdLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IFdLRXJyb3JEb21haW4gV0tfQVZBSUxBQkxFKDEwXzEwLCA4XzApOworV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgV0tFcnJvckRvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMCksIGlvcyg4LjApKTsKIAogLyohIEBlbnVtIFdLRXJyb3JDb2RlCiAgQGFic3RyYWN0
IENvbnN0YW50cyB1c2VkIGJ5IE5TRXJyb3IgdG8gaW5kaWNhdGUgZXJyb3JzIGluIHRoZSBXZWJL
aXQgZG9tYWluLgpAQCAtNDcsOCArNDcsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBX
S0Vycm9yQ29kZSkgCiAgICAgV0tFcnJvcldlYkNvbnRlbnRQcm9jZXNzVGVybWluYXRlZCwKICAg
ICBXS0Vycm9yV2ViVmlld0ludmFsaWRhdGVkLAogICAgIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0
aW9uT2NjdXJyZWQsCi0gICAgV0tFcnJvckphdmFTY3JpcHRSZXN1bHRUeXBlSXNVbnN1cHBvcnRl
ZCBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBf
MTAsIDhfMCk7CisgICAgV0tFcnJvckphdmFTY3JpcHRSZXN1bHRUeXBlSXNVbnN1cHBvcnRlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSwKK30gV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORAog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JQcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRXJyb3JQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDI3ICsy
NywyNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotV0tfRVhURVJOIE5TU3RyaW5nICogY29u
c3QgX1dLTGVnYWN5RXJyb3JEb21haW4gV0tfQVZBSUxBQkxFKDEwXzExLCA4XzMpOworV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgX1dLTGVnYWN5RXJyb3JEb21haW4gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7CiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0xlZ2FjeUVycm9yQ29kZSkgewotICAgIF9XS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVw
dGVkQnlQb2xpY3lDaGFuZ2UgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCkgPSAxMDIsCisg
ICAgX1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSA9IDEwMiwKICAgICBfV0tMZWdhY3lF
cnJvclBsdWdJbldpbGxIYW5kbGVMb2FkID0gMjA0LAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8x
MSwgOF8zKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7CiAK
IC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1lc3NhZ2VFcnJvcktleSBLZXkg
aW4gdXNlckluZm8gcmVwcmVzZW50aW5nCiAgdGhlIGV4Y2VwdGlvbiBtZXNzYWdlIChhcyBhbiBO
U1N0cmluZykgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAq
LwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1lc3Nh
Z2VFcnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAvKiEgQGNvbnN0YW50IF9XS0phdmFTY3JpcHRFeGNlcHRpb25MaW5lTnVtYmVyRXJyb3JLZXkg
S2V5IGluIHVzZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNlcHRpb24gbGluZSBudW1iZXIg
KGFzIGFuIE5TTnVtYmVyKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBl
cnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0
aW9uTGluZU51bWJlckVycm9yS2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25MaW5l
TnVtYmVyRXJyb3JLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVt
bk51bWJlckVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcKICB0aGUgZXhjZXB0
aW9uIGNvbHVtbiBudW1iZXIgKGFzIGFuIE5TTnVtYmVyKSBmb3IgV0tFcnJvckphdmFTY3JpcHRF
eGNlcHRpb25PY2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBf
V0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JLZXkgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2
YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlckVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGNvbnN0YW50IF9XS0ph
dmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVwcmVz
ZW50aW5nCiAgdGhlIGV4Y2VwdGlvbiBzb3VyY2UgVVJMIChhcyBhbiBOU1VSTCkgZm9yIFdLRXJy
b3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAqLwotV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvblNvdXJjZVVSTEVycm9yS2V5IFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNv
bnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5o
CShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLRnJhbWVJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAKICAqLwogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitX
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdL
RnJhbWVJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogLyohIEBhYnN0cmFjdCBBIEJvb2xl
YW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmcmFtZSBpcyB0aGUgbWFpbiBmcmFtZQpA
QCAtNTEsNyArNTEsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLyohIEBh
YnN0cmFjdCBUaGUgZnJhbWUncyBjdXJyZW50IHNlY3VyaXR5IG9yaWdpbi4KICAqLwotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1NlY3VyaXR5T3JpZ2luICpzZWN1cml0eU9yaWdp
biBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIFdLU2VjdXJpdHlPcmlnaW4gKnNlY3VyaXR5T3JpZ2luIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZhdGUuaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Zy
YW1lSW5mb1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBAaW50
ZXJmYWNlIFdLRnJhbWVJbmZvIChXS1ByaXZhdGUpCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgc3Ryb25nKSBfV0tGcmFtZUhhbmRsZSAqX2hhbmRsZSBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIHN0
cm9uZykgX1dLRnJhbWVIYW5kbGUgKl9oYW5kbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVt
SWRlbnRpZmllcnNQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCwyNiArMzAsMjYgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CiAKLVdL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5SW1hZ2UgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckNvcHlMaW5rIFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJEb3dubG9hZEltYWdlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJEb3dubG9hZExpbmtlZEZpbGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdL
X0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVt
SWRlbnRpZmllckdvQmFjayBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1X
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyR29G
b3J3YXJkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJJbnNwZWN0RWxlbWVu
dCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyTG9va1VwIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuRnJhbWVJbk5ld1dpbmRvdyBXS19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICog
Y29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkltYWdlSW5OZXdXaW5kb3cgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rIFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJPcGVuTGlua0luTmV3V2luZG93IFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJQYXN0ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyUmVsb2FkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIg
V0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNob3dIaWRlTWVkaWFDb250cm9s
cyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyVG9nZ2xlRnVsbFNjcmVlbiBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQ29weSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5SW1hZ2UgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQ29weUxpbmsgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyRG93bmxv
YWRJbWFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJEb3dubG9hZExpbmtlZEZpbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qg
X1dLTWVudUl0ZW1JZGVudGlmaWVyR29CYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNv
bnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckdvRm9yd2FyZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJp
bmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJJbnNwZWN0RWxlbWVudCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJMb29rVXAgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkZyYW1l
SW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyT3BlbkltYWdlSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICog
Y29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkxpbmsgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3Ry
aW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkxpbmtJbk5ld1dpbmRvdyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJQYXN0ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxv
YWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
U2VhcmNoV2ViIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllclNob3dIaWRlTWVkaWFDb250cm9scyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVGdWxsU2NyZWVuIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1XS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hhcmVNZW51IFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJp
bmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTcGVlY2hNZW51IFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBfV0tNZW51SXRlbUlkZW50aWZpZXJTaGFyZU1lbnUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVudSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uLmgJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICBhbHNvIHBh
c3NlZCB0byB0aGUgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBtZXRob2RzLCB0byB1bmlxdWVseSBpZGVu
dGlmeSBhIHdlYnBhZ2UKICBsb2FkIGZyb20gc3RhcnQgdG8gZmluaXNoLgogICovCi1XS19DTEFT
U19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uIDogTlNPYmplY3QKIAogQGVuZApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkFjdGlvbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC01MywxMiArNTMsMTIgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9u
VAogICAgIFdLTmF2aWdhdGlvblR5cGVSZWxvYWQsCiAgICAgV0tOYXZpZ2F0aW9uVHlwZUZvcm1S
ZXN1Ym1pdHRlZCwKICAgICBXS05hdmlnYXRpb25UeXBlT3RoZXIgPSAtMSwKLX0gV0tfRU5VTV9B
VkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwg
aW9zKDguMCkpOwogCiAvKiEgCiBBIFdLTmF2aWdhdGlvbkFjdGlvbiBvYmplY3QgY29udGFpbnMg
aW5mb3JtYXRpb24gYWJvdXQgYW4gYWN0aW9uIHRoYXQgbWF5IGNhdXNlIGEgbmF2aWdhdGlvbiwg
dXNlZCBmb3IgbWFraW5nIHBvbGljeSBkZWNpc2lvbnMuCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KQogQGludGVyZmFjZSBXS05hdmlnYXRpb25BY3Rpb24gOiBOU09iamVjdAogCiAvKiEgQGFic3Ry
YWN0IFRoZSBmcmFtZSByZXF1ZXN0aW5nIHRoZSBuYXZpZ2F0aW9uLgpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25BY3Rpb25Qcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMiwxMCArMzIsMTAgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNVUkwgKl9vcmlnaW5hbFVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0
dGVyPV9pc1VzZXJJbml0aWF0ZWQpIEJPT0wgX3VzZXJJbml0aWF0ZWQ7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2NhbkhhbmRsZVJlcXVlc3Q7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgV0tfQVZB
SUxBQkxFKDEwXzExLCA5XzApOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09M
IF9zaG91bGRPcGVuQXBwTGlua3MgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJuYWxTY2hlbWVzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuQXBwTGlua3MgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgQk9PTCBfc2hvdWxkT3BlbkV4dGVybmFsVVJMcyBXS19ERVBSRUNBVEVEKDEwXzExLCAx
MF8xMSwgOV8wLCA5XzAsICJ1c2UgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgYW5kIF9zaG91
bGRPcGVuQXBwTGlua3MiKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBf
c2hvdWxkT3BlbkV4dGVybmFsVVJMcyBXS19BUElfREVQUkVDQVRFRCgidXNlIF9zaG91bGRPcGVu
RXh0ZXJuYWxTY2hlbWVzIGFuZCBfc2hvdWxkT3BlbkFwcExpbmtzIiwgbWFjb3N4KDEwLjExLCAx
MC4xMSksIGlvcyg5LjAsIDkuMCkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0YS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0YS5oCShyZXZpc2lv
biAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogCiAjaW1wb3J0IDxG
b3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNl
IFdLTmF2aWdhdGlvbkRhdGEgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0
cmluZyAqdGl0bGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkg
ewogICAgIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCwKICAgICBXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3lBbGxvdywKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgQGVudW0gV0tO
YXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kKICBAYWJzdHJhY3QgVGhlIHBvbGljeSB0byBwYXNzIGJh
Y2sgdG8gdGhlIGRlY2lzaW9uIGhhbmRsZXIgZnJvbSB0aGUgd2ViVmlldzpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOiBtZXRob2QuCkBAIC01NSw3ICs1
NSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvbkEKIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7CiAgICAgV0tO
YXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lDYW5jZWwsCiAgICAgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQ
b2xpY3lBbGxvdywKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgQSBjbGFzcyBjb25mb3Jt
aW5nIHRvIHRoZSBXS05hdmlnYXRpb25EZWxlZ2F0ZSBwcm90b2NvbCBjYW4gcHJvdmlkZQogIG1l
dGhvZHMgZm9yIHRyYWNraW5nIHByb2dyZXNzIGZvciBtYWluIGZyYW1lIG5hdmlnYXRpb25zIGFu
ZCBmb3IgZGVjaWRpbmcKQEAgLTE0Miw3ICsxNDIsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBXS05hdmlnYXRpb25SCiAvKiEgQGFic3RyYWN0IEludm9rZWQgd2hlbiB0aGUgd2ViIHZp
ZXcncyB3ZWIgY29udGVudCBwcm9jZXNzIGlzIHRlcm1pbmF0ZWQuCiAgQHBhcmFtIHdlYlZpZXcg
VGhlIHdlYiB2aWV3IHdob3NlIHVuZGVybHlpbmcgd2ViIGNvbnRlbnQgcHJvY2VzcyB3YXMgdGVy
bWluYXRlZC4KICAqLwotLSAodm9pZCl3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5h
dGU6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAodm9p
ZCl3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGU6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBlbmQKIApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxl
Z2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRl
UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAjaWYgV0tfQVBJX0VO
QUJMRUQKIAogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBfV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5RG93bmxvYWQgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyArIDEpOwotc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCkgX1dLTmF2aWdhdGlvbkFjdGlv
blBvbGljeUFsbG93V2l0aG91dFRyeWluZ0FwcExpbmsgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyArIDIpOworc3RhdGljIGNvbnN0IFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGlu
ayA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFs
bG93ICsgMik7CiAKIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSBfV0tO
YXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hZCA9IChXS05hdmlnYXRpb25SZXNw
b25zZVBvbGljeSkoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lBbGxvdyArIDEpOwogCkBAIC02
Miw3ICs2Miw3IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSAKIC8v
IE9ubHkgY2FsbGVkIGlmIGhvdyB0aGUgZ2VzdHVyZSB3aWxsIGVuZCAod2l0aCBvciB3aXRob3V0
IG5hdmlnYXRpb24pIGlzIGtub3duIGJlZm9yZSBpdCBlbmRzLgogLSAodm9pZClfd2ViVmlld1dp
bGxFbmROYXZpZ2F0aW9uR2VzdHVyZTooV0tXZWJWaWV3ICopd2ViVmlldyB3aXRoTmF2aWdhdGlv
blRvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFNuYXBzaG90QmFja0Zvcndh
cmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKLS0gKHZvaWQpX3dlYlZp
ZXdEaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OihXS1dlYlZpZXcgKil3ZWJWaWV3
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3dlYlZpZXdE
aWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAj
aWYgVEFSR0VUX09TX0lQSE9ORQogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRTdGFydExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lV2l0aEZpbGVOYW1l
OihOU1N0cmluZyAqKWZpbGVOYW1lIHV0aTooTlNTdHJpbmcgKil1dGk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25S
ZXNwb25zZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogLyohIENvbnRhaW5zIGluZm9ybWF0
aW9uIGFib3V0IGEgbmF2aWdhdGlvbiByZXNwb25zZSwgdXNlZCBmb3IgbWFraW5nIHBvbGljeSBk
ZWNpc2lvbnMuCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS05hdmlnYXRp
b25SZXNwb25zZSA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGlu
ZGljYXRpbmcgd2hldGhlciB0aGUgZnJhbWUgYmVpbmcgbmF2aWdhdGVkIGlzIHRoZSBtYWluIGZy
YW1lLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5l
bFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IC8qISBXS09wZW5QYW5lbFBhcmFtZXRlcnMgY29udGFpbnMgcGFyYW1ldGVycyB0aGF0IGEgZmls
ZSB1cGxvYWQgY29udHJvbCBoYXMgc3BlY2lmaWVkLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgTkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKQog
QGludGVyZmFjZSBXS09wZW5QYW5lbFBhcmFtZXRlcnMgOiBOU09iamVjdAogCiAvKiEgQGFic3Ry
YWN0IFdoZXRoZXIgdGhlIGZpbGUgdXBsb2FkIGNvbnRyb2wgc3VwcG9ydHMgbXVsdGlwbGUgZmls
ZXMuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJlZmVyZW5jZXMuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0
LDcgQEAKICB2aWV3LiBUaGUgcHJlZmVyZW5jZXMgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHdl
YiB2aWV3IGlzIHNwZWNpZmllZCBieQogIGl0cyB3ZWIgdmlldyBjb25maWd1cmF0aW9uLgogICov
Ci1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
c3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tQcmVmZXJlbmNlcyA6IE5TT2JqZWN0
IDxOU0NvZGluZz4KIAogLyohIEBhYnN0cmFjdCBUaGUgbWluaW11bSBmb250IHNpemUgaW4gcG9p
bnRzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSwxNiArMzUsMTYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
X1dLU3RvcmFnZUJsbwogICAgIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUFsbG93QWxsLAogICAg
IF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2NrVGhpcmRQYXJ0eSwKICAgICBfV0tTdG9yYWdl
QmxvY2tpbmdQb2xpY3lCbG9ja0FsbCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7
Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiB0eXBlZGVm
IE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLRGVidWdPdmVybGF5UmVnaW9ucykgewogICAgIF9X
S05vbkZhc3RTY3JvbGxhYmxlUmVnaW9uID0gMSA8PCAwLAogICAgIF9XS1doZWVsRXZlbnRIYW5k
bGVyUmVnaW9uID0gMSA8PCAxCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApOworfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogdHlwZWRlZiBOU19P
UFRJT05TKE5TVUludGVnZXIsIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3MpIHsKICAgICBfV0tK
YXZhU2NyaXB0UnVudGltZUZsYWdzQWxsRW5hYmxlZCA9IDAKLX0gV0tfRU5VTV9BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkp
OwogCiBAY2xhc3MgX1dLRXhwZXJpbWVudGFsRmVhdHVyZTsKIApAQCAtNTcsNDAgKzU3LDQwIEBA
IHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tKYXZhU2MKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU6KSBCT09MIF9jb21w
b3NpdGluZ0JvcmRlcnNWaXNpYmxlOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlOikgQk9PTCBfY29tcG9zaXRpbmdSZXBh
aW50Q291bnRlcnNWaXNpYmxlOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGls
ZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlOikgQk9PTCBfdGlsZWRTY3JvbGxpbmdJbmRpY2F0
b3JWaXNpYmxlOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3VyY2VVc2Fn
ZU92ZXJsYXlWaXNpYmxlOikgQk9PTCBfcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOikgX1dLRGVidWdPdmVybGF5UmVn
aW9ucyBfdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzAp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2ltcGxlTGluZUxheW91dERlYnVn
Qm9yZGVyc0VuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxl
ZCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkOikgQk9PTCBfYWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXREaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkOikgQk9PTCBf
ZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0QXV0b3NpemluZ0Vu
YWJsZWQ6KSBCT09MIF90ZXh0QXV0b3NpemluZ0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3Vy
Y2VVc2FnZU92ZXJsYXlWaXNpYmxlOikgQk9PTCBfcmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lv
bnM6KSBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zIF92aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkOikg
Qk9PTCBfc2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkOikgQk9PTCBfYWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpc3BsYXlMaXN0RHJhd2lu
Z0VuYWJsZWQ6KSBCT09MIF9kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkOikgQk9PTCBfdGV4dEF1dG9z
aXppbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkOikgQk9PTCBfZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkOikgQk9PTCBfZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0TG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6KSBCT09MIF9s
b2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCBXS19BVkFJTEFCTEUoMTBfMTEs
IDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2dzUGFnZU1lc3NhZ2Vz
VG9TeXN0ZW1Db25zb2xlRW5hYmxlZDopIEJPT0wgX2xvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNv
bnNvbGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwog
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJv
dHRsaW5nRW5hYmxlZDopIEJPT0wgX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVk
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVhc2Vz
OikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQ6KSBC
T09MIF9wYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZDopIEJPT0wgX2hpZGRl
blBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXM6KSBCT09MIF9o
aWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFi
bGVkOikgQk9PTCBfcGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMczopIEJPT0wgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BVkFJTEFCTEUoMTBf
MTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRKYXZhU2NyaXB0UnVu
dGltZUZsYWdzOikgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFncyBfamF2YVNjcmlwdFJ1bnRpbWVG
bGFncyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRKYXZhU2NyaXB0UnVudGltZUZsYWdz
OikgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFncyBfamF2YVNjcmlwdFJ1bnRpbWVGbGFncyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U3RhbmRhbG9uZTosIGdldHRlcj1faXNTdGFuZGFsb25lKSBCT09M
IF9zdGFuZGFsb25lIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFN0YW5kYWxvbmU6LCBnZXR0ZXI9X2lzU3RhbmRhbG9uZSkgQk9PTCBf
c3RhbmRhbG9uZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVk
OikgQk9PTCBfZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8w
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZDopIEJPT0wgX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0RGVmYXVsdEZvbnRTaXplOikgTlNVSW50ZWdlciBfZGVmYXVsdEZvbnRTaXplIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldERlZmF1bHRGaXhlZFBpdGNoRm9udFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rml4
ZWRQaXRjaEZvbnRTaXplIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEZpeGVkUGl0Y2hGb250RmFtaWx5
OikgTlNTdHJpbmcgKl9maXhlZFBpdGNoRm9udEZhbWlseSBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0
Rm9udFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rm9udFNpemUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXREZWZhdWx0Rml4ZWRQaXRjaEZvbnRTaXplOikgTlNVSW50ZWdlciBfZGVm
YXVsdEZpeGVkUGl0Y2hGb250U2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9
X3NldEZpeGVkUGl0Y2hGb250RmFtaWx5OikgTlNTdHJpbmcgKl9maXhlZFBpdGNoRm9udEZhbWls
eSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgb24gdGhlIFdLV2Vic2l0ZURh
dGFTdG9yZS4KIC8vIEZJWE1FOiBUaGlzIHByb3BlcnR5IHNob3VsZCBub3QgaGF2ZSB0aGUgdmVy
YiAiaXMiIGluIGl0LgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0T2ZmbGluZUFw
cGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQ6KSBCT09MIF9vZmZsaW5lQXBwbGljYXRpb25DYWNoZUlz
RW5hYmxlZDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxTY3JlZW5FbmFi
bGVkOikgQk9PTCBfZnVsbFNjcmVlbkVuYWJsZWQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbFNjcmVlbkVuYWJsZWQ6KSBCT09M
IF9mdWxsU2NyZWVuRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKTsKIAotKyAoTlNBcnJheTxfV0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICopX2V4cGVyaW1l
bnRhbEZlYXR1cmVzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKEJP
T0wpX2lzRW5hYmxlZEZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilmZWF0dXJl
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX3NldEVuYWJs
ZWQ6KEJPT0wpdmFsdWUgZm9yRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1
cmUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworKyAoTlNBcnJheTxfV0tF
eHBlcmltZW50YWxGZWF0dXJlICo+ICopX2V4cGVyaW1lbnRhbEZlYXR1cmVzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoQk9PTClfaXNF
bmFibGVkRm9yRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1
cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlv
bkl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxVSUtp
dC9VSVZpZXdDb250cm9sbGVyLmg+CiAKLVdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSkKK1dL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKQogQHByb3RvY29sIFdLUHJldmlld0FjdGlv
bkl0ZW0gPFVJUHJldmlld0FjdGlvbkl0ZW0+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCByZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0
aW9uSXRlbUlkZW50aWZpZXJzLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3Vu
ZGF0aW9uLmg+CiAKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0
ZW1JZGVudGlmaWVyT3BlbiBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotV0tfRVhURVJO
IE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRUb1JlYWRp
bmdMaXN0IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcg
KiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHkgV0tfQVZBSUxBQkxFKE5B
LCBXS19JT1NfVEJBKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVyU2hhcmUgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK1dLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyT3BlbiBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJDb3B5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0
ZW1JZGVudGlmaWVyU2hhcmUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
Ci1XS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFjZSBXS1ByZXZpZXdFbGVtZW50SW5mbyA6IE5TT2Jq
ZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFi
bGUpIE5TVVJMICpsaW5rVVJMOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NHcm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAKIEBlbmQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBA
aW50ZXJmYWNlIFdLUHJvY2Vzc0dyb3VwIDogTlNPYmplY3QKIAogLSAoaWQpaW5pdFdpdGhJbmpl
Y3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkw7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24gMjAy
NzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICBpbXBsZW1lbnRhdGlvbi1kZWZp
bmVkIHByb2Nlc3MgbGltaXQgaXMgcmVhY2hlZDsgYWZ0ZXIgdGhhdCwgd2ViIHZpZXdzCiAgd2l0
aCB0aGUgc2FtZSBwcm9jZXNzIHBvb2wgZW5kIHVwIHNoYXJpbmcgd2ViIGNvbnRlbnQgcHJvY2Vz
c2VzLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlM
QUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tQcm9jZXNzUG9vbCA6
IE5TT2JqZWN0IDxOU0NvZGluZz4KIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywyMyArNDMsMjMgQEAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
ICpfY29uZmlndXJhdGlvbjsKIAogLSAodm9pZClfc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAqKWhv
c3Q7Ci0tICh2b2lkKV9zZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjooQk9P
TCl2YWx1ZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CistICh2b2lkKV9zZXRDYW5IYW5kbGVI
VFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjooQk9PTCl2YWx1ZSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMSksIGlvcyg5LjApKTsKIC0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBvbGljeToo
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeTsKIAogLSAoaWQpX29iamVjdEZvckJ1bmRs
ZVBhcmFtZXRlcjooTlNTdHJpbmcgKilwYXJhbWV0ZXI7CiAtICh2b2lkKV9zZXRPYmplY3Q6KGlk
IDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29kaW5nPilvYmplY3QgZm9yQnVuZGxlUGFyYW1ldGVyOihO
U1N0cmluZyAqKXBhcmFtZXRlcjsKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBOU0RpY3Rpb25h
cnk8TlNTdHJpbmcgKiwgaWQgPE5TQ29weWluZywgTlNTZWN1cmVDb2Rpbmc+PgotLSAodm9pZClf
c2V0T2JqZWN0c0ZvckJ1bmRsZVBhcmFtZXRlcnNXaXRoRGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5
ICopZGljdGlvbmFyeSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2
b2lkKV9zZXRPYmplY3RzRm9yQnVuZGxlUGFyYW1ldGVyc1dpdGhEaWN0aW9uYXJ5OihOU0RpY3Rp
b25hcnkgKilkaWN0aW9uYXJ5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9z
ZXREb3dubG9hZERlbGVnYXRlOikgaWQgPF9XS0Rvd25sb2FkRGVsZWdhdGU+IF9kb3dubG9hZERl
bGVnYXRlOwotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0QXV0b21hdGlv
bkRlbGVnYXRlOikgaWQgPF9XS0F1dG9tYXRpb25EZWxlZ2F0ZT4gX2F1dG9tYXRpb25EZWxlZ2F0
ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgd2Vhaywgc2V0dGVyPV9zZXRBdXRvbWF0aW9uRGVsZWdhdGU6KSBpZCA8X1dLQXV0b21h
dGlvbkRlbGVnYXRlPiBfYXV0b21hdGlvbkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiArIChOU1VSTCAqKV93ZWJzaXRlRGF0
YVVSTEZvckNvbnRhaW5lcldpdGhVUkw6KE5TVVJMICopY29udGFpbmVyVVJMOwogKyAoTlNVUkwg
Kilfd2Vic2l0ZURhdGFVUkxGb3JDb250YWluZXJXaXRoVVJMOihOU1VSTCAqKWNvbnRhaW5lclVS
TCBidW5kbGVJZGVudGlmaWVySWZOb3RJbkNvbnRhaW5lcjooTlNTdHJpbmcgKilidW5kbGVJZGVu
dGlmaWVyOwogCi0tICh2b2lkKV93YXJtSW5pdGlhbFByb2Nlc3MgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfYXV0b21hdGlvbkNhcGFiaWxpdGllc0RpZENo
YW5nZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV9zZXRB
dXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lv
biBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKV93YXJtSW5p
dGlhbFByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKV9hdXRvbWF0aW9uQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfc2V0QXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlv
blNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5vIHdl
YiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KIC0gKHZvaWQpX3Rlcm1pbmF0ZURhdGFi
YXNlUHJvY2VzczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tT
Y3JpcHRNZXNzYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAkod29ya2luZyBjb3B5
KQpAQCAtMzcsNyArMzcsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogLyohIEEgV0tTY3Jp
cHRNZXNzYWdlIG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIG1lc3NhZ2Ugc2Vu
dCBmcm9tCiAgYSB3ZWJwYWdlLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2Ug
V0tTY3JpcHRNZXNzYWdlIDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFjdCBUaGUgYm9keSBvZiB0
aGUgbWVzc2FnZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tT
ZWN1cml0eU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tTZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4uaAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICovCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1X
S19DTEFTU19BVkFJTEFCTEUoMTBfMTEsIDlfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3go
MTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgV0tTZWN1cml0eU9yaWdpbiA6IE5TT2JqZWN0
CiAKIC0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmgJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tUeXBlUmVmV3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaW1w
b3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS0Jhc2UuaD4K
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLVHlwZVJlZldyYXBwZXIgOiBOU09i
amVjdAogCiAtIChpZClpbml0V2l0aE9iamVjdDooV0tUeXBlUmVmKW9iamVjdDsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogICBAZGlzY3Vzc2lvbiBZb3VyIGFwcCBzaG91bGQgcmVtb3ZlIHRoZSB3
ZWIgdmlldyBmcm9tIHRoZSB2aWV3IGhpZXJhcmNoeSBhbmQgdXBkYXRlCiAgIHRoZSBVSSBhcyBu
ZWVkZWQsIHN1Y2ggYXMgYnkgY2xvc2luZyB0aGUgY29udGFpbmluZyBicm93c2VyIHRhYiBvciB3
aW5kb3cuCiAgICovCi0tICh2b2lkKXdlYlZpZXdEaWRDbG9zZTooV0tXZWJWaWV3ICopd2ViVmll
dyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CistICh2b2lkKXdlYlZpZXdEaWRDbG9zZTooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KTsKIAogLyohIEBhYnN0cmFjdCBEaXNwbGF5cyBhIEphdmFTY3JpcHQgYWxlcnQgcGFuZWwuCiAg
QHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2Qu
CkBAIC0xMjksNyArMTI5LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICBUaGlzIG1ldGhv
ZCB3aWxsIG9ubHkgYmUgaW52b2tlZCBmb3IgZWxlbWVudHMgdGhhdCBoYXZlIGRlZmF1bHQgcHJl
dmlldyBpbiBXZWJLaXQsIHdoaWNoIGlzCiAgbGltaXRlZCB0byBsaW5rcy4gSW4gdGhlIGZ1dHVy
ZSwgaXQgY291bGQgYmUgaW52b2tlZCBmb3IgYWRkaXRpb25hbCBlbGVtZW50cy4KICAqLwotLSAo
Qk9PTCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFByZXZpZXdFbGVtZW50OihX
S1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9T
X1RCQSk7CistIChCT09MKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkUHJldmll
d0VsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGFic3RyYWN0IEFsbG93cyB5b3VyIGFwcCB0
byBwcm92aWRlIGEgY3VzdG9tIHZpZXcgY29udHJvbGxlciB0byBzaG93IHdoZW4gdGhlIGdpdmVu
IGVsZW1lbnQgaXMgcGVla2VkLgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2lu
ZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgpAQCAtMTQ0LDEzICsxNDQsMTMgQEAgTlNfQVNTVU1FX05P
Tk5VTExfQkVHSU4KICBSZXR1cm5pbmcgbmlsIHdpbGwgcmVzdWx0IGluIFdlYktpdCdzIGRlZmF1
bHQgcHJldmlldyBiZWhhdmlvci4gd2ViVmlldzpjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xs
ZXI6IHdpbGwgb25seSBiZSBpbnZva2VkCiAgaWYgYSBub24tbmlsIHZpZXcgY29udHJvbGxlciB3
YXMgcmV0dXJuZWQuCiAgKi8KLS0gKG51bGxhYmxlIFVJVmlld0NvbnRyb2xsZXIgKil3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6
KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8gZGVmYXVsdEFjdGlvbnM6KE5TQXJy
YXk8aWQgPFdLUHJldmlld0FjdGlvbkl0ZW0+PiAqKXByZXZpZXdBY3Rpb25zIFdLX0FWQUlMQUJM
RShOQSwgV0tfSU9TX1RCQSk7CistIChudWxsYWJsZSBVSVZpZXdDb250cm9sbGVyICopd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXJGb3JFbGVtZW50
OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGRlZmF1bHRBY3Rpb25zOihOU0Fy
cmF5PGlkIDxXS1ByZXZpZXdBY3Rpb25JdGVtPj4gKilwcmV2aWV3QWN0aW9ucyBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBw
IHRvIHBvcCB0byB0aGUgdmlldyBjb250cm9sbGVyIGl0IGNyZWF0ZWQuCiAgQHBhcmFtIHdlYlZp
ZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCiAgQHBhcmFtIHBy
ZXZpZXdpbmdWaWV3Q29udHJvbGxlciBUaGUgdmlldyBjb250cm9sbGVyIHRoYXQgaXMgYmVpbmcg
cG9wcGVkLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0
UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2luZ1Zp
ZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOihV
SVZpZXdDb250cm9sbGVyICopcHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIApAQCAt
MTY0LDcgKzE2NCw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKICBJZiB5b3UgZG8gbm90
IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgdGhlIHdlYiB2aWV3IHdpbGwgYmVoYXZlIGFzIGlmIHRo
ZSB1c2VyIHNlbGVjdGVkIHRoZSBDYW5jZWwgYnV0dG9uLgogICovCi0tICh2b2lkKXdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnM6KFdLT3BlblBh
bmVsUGFyYW1ldGVycyAqKXBhcmFtZXRlcnMgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8g
KilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1VSTCAqPiAqIF9O
dWxsYWJsZSBVUkxzKSljb21wbGV0aW9uSGFuZGxlciBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
TkEpOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bk9wZW5QYW5lbFdp
dGhQYXJhbWV0ZXJzOihXS09wZW5QYW5lbFBhcmFtZXRlcnMgKilwYXJhbWV0ZXJzIGluaXRpYXRl
ZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TQXJyYXk8TlNVUkwgKj4gKiBfTnVsbGFibGUgVVJMcykpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiAjZW5kaWYKIApJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Mywz
MyArNTMsMzMgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClfd2ViVmlld0Nsb3Nl
OihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1
cm5Ub0lubGluZTooV0tXZWJWaWV3ICopd2ViVmlldzsKLS0gKHZvaWQpX3dlYlZpZXdEaWRFbnRl
ckZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKDEwXzExLCA4XzMp
OwotLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3
IFdLX0FWQUlMQUJMRSgxMF8xMSwgOF8zKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1bGxz
Y3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46KFdLV2ViVmll
dyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7CiAK
LS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1l
bnRTaXplQ2hhbmdlZDooQ0dTaXplKXNpemUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwotLSAoTlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdlT3JNZWRpYURv
Y3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRl
Y3Rpb25Db250ZXh0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKICNpZiBUQVJHRVRfT1Nf
SVBIT05FCi0tIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1
ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxl
bWVudCBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CistIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKIC0g
KE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY3Rpb25zRm9yRWxlbWVu
dDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25zOihOU0Fy
cmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsKIC0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENH
UG9pbnQpcG9pbnQ7CiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3Vs
ZFJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6KE5TVVJMICopdXJsIGlzTWFp
bkZyYW1lOihCT09MKWlzTWFpbkZyYW1lIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVV
Ukw7Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBXS19BVkFJTEFCTEUoTkEs
IDlfMCk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZp
ZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRy
b2xsZXIgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyB3aWxsUHJldmlld0ltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19B
VkFJTEFCTEUoTkEsIDlfMCk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNvbW1pdFByZXZpZXdlZEltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19BVkFJTEFC
TEUoTkEsIDlfMCk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERp
c21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRW
aWV3Q29udHJvbGxlciBjb21taXR0aW5nOihCT09MKWNvbW1pdHRpbmcgV0tfQVZBSUxBQkxFKE5B
LCA5XzApOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNz
UHJldmlld1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0Nv
bnRyb2xsZXIgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAoQk9PTClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWx0ZXJuYXRlQWN0aW9uRm9yVVJMOihOU1VS
TCAqKXVybCBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotLSAoTlNBcnJheSAqKV9hdHRh
Y2htZW50TGlzdEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKE5B
LCBXS19JT1NfVEJBKTsKLS0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLS0gKFVJRWRnZUlu
c2V0cylfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmaW5hbE9ic2N1cmVkSW5zZXRzRm9y
U2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9p
bnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAqKXRhcmdldENv
bnRlbnRPZmZzZXQgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAoVUlWaWV3Q29udHJvbGxlciAq
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVS
TDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAq
PiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVu
dEluZm8gV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckFuaW1hdGVk
SW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVu
dEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
ICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXplIFdLX0FWQUlMQUJMRShO
QSwgOV8wKTsKLS0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVy
Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOworLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1cmwgV0tfQVBJX0FWQUlMQUJM
RShpb3MoOV8wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1p
dFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmll
d0NvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1hZ2VXaXRoVVJMOihOU1VSTCAqKWlt
YWdlVVJMIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdpdGhVUkw6KE5TVVJMICopaW1h
Z2VVUkwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KFVJVmlld0Nv
bnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBjb21taXR0aW5nOihCT09MKWNvbW1p
dHRpbmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KFVJVmlld0Nv
bnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyg5
XzApKTsKKy0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvd0N1c3RvbVNo
ZWV0Rm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgYWx0ZXJuYXRlQWN0aW9uRm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CistIChOU0FycmF5ICopX2F0dGFjaG1lbnRMaXN0Rm9yV2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJB
KSk7CistIChOU1VJbnRlZ2VyKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluZGV4SW50
b0F0dGFjaG1lbnRMaXN0Rm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVt
ZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKFVJRWRnZUluc2V0cylf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmaW5hbE9ic2N1cmVkSW5zZXRzRm9yU2Nyb2xs
VmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVs
b2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRP
ZmZzZXQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistIChVSVZpZXdDb250cm9sbGVyICop
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJM
OihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+
ICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50
SW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JBbmlt
YXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0Vs
ZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6ZSBXS19BUElfQVZB
SUxBQkxFKGlvcyg5XzApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGluZ1ZpZXdD
b250cm9sbGVyRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7CiAjZWxzZQotLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5B
KTsKLS0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51
OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKill
bGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBOQSk7CistIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSk7CistIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVu
dTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICop
ZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAjZW5kaWYKIAogQGVuZApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29u
dGVudENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgVGhlIHVzZXIgY29u
dGVudCBjb250cm9sbGVyIGFzc29jaWF0ZWQgd2l0aCBhIHdlYiB2aWV3IGlzIHNwZWNpZmllZCBi
eSBpdHMKICB3ZWIgdmlldyBjb25maWd1cmF0aW9uLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgOiBOU09iamVjdCA8TlNDb2Rpbmc+
CiAKIC8qISBAYWJzdHJhY3QgVGhlIHVzZXIgc2NyaXB0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyB1
c2VyIGNvbnRlbnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
c2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTgg
KzM0LDE4IEBACiAKIEBpbnRlcmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKFdLUHJpdmF0
ZSkKIAotLSAodm9pZClfcmVtb3ZlVXNlclNjcmlwdDooV0tVc2VyU2NyaXB0ICopdXNlclNjcmlw
dCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV9yZW1vdmVB
bGxVc2VyU2NyaXB0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRl
bnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOworLSAodm9pZClfcmVtb3ZlVXNlclNjcmlwdDooV0tVc2VyU2NyaXB0ICopdXNlclNj
cmlwdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVu
dFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotLSAodm9pZClf
YWRkVXNlckNvbnRlbnRGaWx0ZXI6KF9XS1VzZXJDb250ZW50RmlsdGVyICopdXNlckNvbnRlbnRG
aWx0ZXIgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotLSAodm9pZClfcmVtb3ZlVXNlckNvbnRl
bnRGaWx0ZXI6KE5TU3RyaW5nICopdXNlckNvbnRlbnRGaWx0ZXJOYW1lIFdLX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKLS0gKHZvaWQpX3JlbW92ZUFsbFVzZXJDb250ZW50RmlsdGVycyBXS19BVkFJ
TEFCTEUoMTBfMTEsIDlfMCk7Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29w
eSkgTlNBcnJheTxfV0tVc2VyU3R5bGVTaGVldCAqPiAqX3VzZXJTdHlsZVNoZWV0cyBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV9hZGRVc2VyU3R5bGVTaGVl
dDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV9yZW1vdmVVc2VyU3R5bGVTaGVldDooX1dLVXNl
clN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7Ci0tICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0eWxlU2hl
ZXRzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICop
dXNlckNvbnRlbnRXb3JsZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Cist
ICh2b2lkKV9hZGRVc2VyQ29udGVudEZpbHRlcjooX1dLVXNlckNvbnRlbnRGaWx0ZXIgKil1c2Vy
Q29udGVudEZpbHRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsK
Ky0gKHZvaWQpX3JlbW92ZVVzZXJDb250ZW50RmlsdGVyOihOU1N0cmluZyAqKXVzZXJDb250ZW50
RmlsdGVyTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKKy0g
KHZvaWQpX3JlbW92ZUFsbFVzZXJDb250ZW50RmlsdGVycyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg5LjApKTsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBj
b3B5KSBOU0FycmF5PF9XS1VzZXJTdHlsZVNoZWV0ICo+ICpfdXNlclN0eWxlU2hlZXRzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfYWRkVXNlclN0eWxlU2hlZXQ6KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
ICh2b2lkKV9yZW1vdmVVc2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5
bGVTaGVldCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlbW92ZUFs
bFVzZXJTdHlsZVNoZWV0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNv
bnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2FkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOihpZCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4pc2NyaXB0TWVzc2FnZUhhbmRsZXIg
bmFtZTooTlNTdHJpbmcgKiluYW1lIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29y
bGQgKil1c2VyQ29udGVudFdvcmxkOwogLSAodm9pZClfcmVtb3ZlU2NyaXB0TWVzc2FnZUhhbmRs
ZXJGb3JOYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRl
bnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgJKHJldmlzaW9uIDIwMjc1OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM5LDExICszOSwxMSBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSkgewogICAg
IFdLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQsCiAgICAgV0tVc2VyU2Ny
aXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRFbmQKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAs
IDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAv
KiEgQSBAbGluayBXS1VzZXJTY3JpcHQgQC9saW5rIG9iamVjdCByZXByZXNlbnRzIGEgc2NyaXB0
IHRoYXQgY2FuIGJlIGluamVjdGVkIGludG8gd2VicGFnZXMuCiAgKi8KLVdLX0NMQVNTX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKQogQGludGVyZmFjZSBXS1VzZXJTY3JpcHQgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiAv
KiBAYWJzdHJhY3QgVGhlIHNjcmlwdCBzb3VyY2UgY29kZS4gKi8KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0
ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVXNlclNjcmlwdFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTAgKzMzLDEw
IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBpbnRlcmZhY2UgV0tVc2VyU2NyaXB0IChX
S1ByaXZhdGUpCiAKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICop
c291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9u
VGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVs
aXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlz
dDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCB1c2VyQ29udGVudFdvcmxk
OihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihO
U1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1l
KWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGxl
Z2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlzdCBsZWdh
Y3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xpc3QgYXNzb2Np
YXRlZFVSTDooTlNVUkwgKilhc3NvY2lhdGVkVVJMIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJD
b250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICop
c291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9u
VGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVs
aXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlz
dDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCB1c2VyQ29udGVudFdvcmxk
OihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKGluc3RhbmNldHlwZSlf
aW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNj
cmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZv
ck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVn
YWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2Fj
eUJsYWNrbGlzdCBhc3NvY2lhdGVkVVJMOihOU1VSTCAqKWFzc29jaWF0ZWRVUkwgdXNlckNvbnRl
bnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLVXNlckNvbnRlbnRXb3JsZCAqX3VzZXJDb250ZW50
V29ybGQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBfV0tVc2VyQ29udGVudFdvcmxkICpfdXNlckNvbnRlbnRXb3Js
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmll
d1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2
LDcgKzc2LDcgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Vmlld1NjYWxl
OikgQ0dGbG9hdCBfdmlld1NjYWxlOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOikgQ0dGbG9hdCBfb3ZlcnJpZGVEZXZpY2VTY2Fs
ZUZhY3RvciBXS19BVkFJTEFCTEUoMTBfMTEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KSBDR0Zsb2F0IF9vdmVycmlkZURl
dmljZVNjYWxlRmFjdG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSk7CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudElu
c2V0czopIEJPT0wgX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czsKIApAQCAtODQs
NyArODQsNyBAQAogQHByb3BlcnR5IChjb3B5LCBub25hdG9taWMpIE5TQ29sb3IgKnVuZGVybGF5
Q29sb3I7CiAKICNpZiBXS19BUElfRU5BQkxFRAotQHByb3BlcnR5IChzdHJvbmcsIG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRJbnNwZWN0b3JBdHRhY2htZW50VmlldzopIE5TVmlldyAqX2luc3BlY3Rv
ckF0dGFjaG1lbnRWaWV3IFdLX0FWQUlMQUJMRSgxMF8xMSwgTkEpOworQHByb3BlcnR5IChzdHJv
bmcsIG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnNwZWN0b3JBdHRhY2htZW50VmlldzopIE5TVmll
dyAqX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSk7CiAjZW5kaWYKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9z
ZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9PTCBfcmVx
dWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAkocmV2aXNpb24gMjAy
NzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtNDksMTAgKzQ5LDEwIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAgVXNlZCB0byBjb25maWd1cmUgQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpbnN0YW5jZXMuCiAg
Ki8KICNpZiBUQVJHRVRfT1NfSVBIT05FCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2Ug
V0tXZWJWaWV3IDogVUlWaWV3CiAjZWxzZQotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNl
IFdLV2ViVmlldyA6IE5TVmlldwogI2VuZGlmCiAKQEAgLTk4LDcgKzk4LDcgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgSWYgcmVhZEFjY2Vzc1VSTCByZWZlcmVuY2VzIGEgZGly
ZWN0b3J5LCBmaWxlcyBpbnNpZGUgdGhhdCBmaWxlIG1heSBiZSBsb2FkZWQgYnkgV2ViS2l0Lgog
IEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUgVVJMLgogICovCi0t
IChudWxsYWJsZSBXS05hdmlnYXRpb24gKilsb2FkRmlsZVVSTDooTlNVUkwgKilVUkwgYWxsb3dp
bmdSZWFkQWNjZXNzVG9VUkw6KE5TVVJMICopcmVhZEFjY2Vzc1VSTCBXS19BVkFJTEFCTEUoMTBf
MTEsIDlfMCk7CistIChudWxsYWJsZSBXS05hdmlnYXRpb24gKilsb2FkRmlsZVVSTDooTlNVUkwg
KilVUkwgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6KE5TVVJMICopcmVhZEFjY2Vzc1VSTCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBT
ZXRzIHRoZSB3ZWJwYWdlIGNvbnRlbnRzIGFuZCBiYXNlIFVSTC4KICBAcGFyYW0gc3RyaW5nIFRo
ZSBzdHJpbmcgdG8gdXNlIGFzIHRoZSBjb250ZW50cyBvZiB0aGUgd2VicGFnZS4KQEAgLTExNCw3
ICsxMTQsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBAcGFyYW0gYmFzZVVS
TCBBIFVSTCB0aGF0IGlzIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBVUkxzIHdpdGhpbiB0aGUg
ZG9jdW1lbnQuCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uLgogICovCi0tIChudWxsYWJsZSBX
S05hdmlnYXRpb24gKilsb2FkRGF0YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcg
KilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5j
b2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBXS19BVkFJTEFCTEUoMTBfMTEsIDlf
MCk7CistIChudWxsYWJsZSBXS05hdmlnYXRpb24gKilsb2FkRGF0YTooTlNEYXRhICopZGF0YSBN
SU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5TU3Ry
aW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBO
YXZpZ2F0ZXMgdG8gYW4gaXRlbSBmcm9tIHRoZSBiYWNrLWZvcndhcmQgbGlzdCBhbmQgc2V0cyBp
dAogIGFzIHRoZSBjdXJyZW50IGl0ZW0uCkBAIC0xNjgsNyArMTY4LDcgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiAgQGRpc2N1c3Npb24gQGxpbmsgV0tXZWJWaWV3IEAvbGluayBp
cyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFudCAKICBmb3IgdGhpcyBwcm9wZXJ0
eS4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgU2VjVHJ1
c3RSZWYgc2VydmVyVHJ1c3QgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgU2VjVHJ1c3RSZWYgc2Vy
dmVyVHJ1c3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhl
ciB0aGVyZSBpcyBhIGJhY2sgaXRlbSBpbgogIHRoZSBiYWNrLWZvcndhcmQgbGlzdCB0aGF0IGNh
biBiZSBuYXZpZ2F0ZWQgdG8uCkBAIC0yMjgsMTMgKzIyOCwxMyBAQCBXS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKIAogLyohIEBhYnN0cmFjdCBUaGUgY3VzdG9tIHVzZXIgYWdlbnQgc3Ry
aW5nIG9yIG5pbCBpZiBubyBjdXN0b20gdXNlciBhZ2VudCBzdHJpbmcgaGFzIGJlZW4gc2V0Lgog
Ki8KLUBwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3Rv
bVVzZXJBZ2VudCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG51bGxhYmxl
LCBub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFu
IHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBsaW5rIHByZXZpZXcgaXMgYWxsb3dlZCBmb3IgYW55
CiAgbGlua3MgaW5zaWRlIHRoaXMgV0tXZWJWaWV3LgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0
IHZhbHVlIGlzIFlFUyBvbiBNYWMgYW5kIGlPUy4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgYWxsb3dzTGlua1ByZXZpZXcgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzTGlua1ByZXZpZXcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAvKiEgQGFi
c3RyYWN0IFRoZSBzY3JvbGwgdmlldyBhc3NvY2lhdGVkIHdpdGggdGhlIHdlYiB2aWV3LgpAQCAt
MzA2LDcgKzMwNiw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiBAaW50ZXJm
YWNlIFdLV2ViVmlldyAoV0tEZXByZWNhdGVkKQogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGNvcHkpIE5TQXJyYXkgKmNlcnRpZmljYXRlQ2hhaW4gV0tfREVQUkVDQVRFRCgxMF8x
MSwgV0tfTUFDX1RCQSwgOV8wLCBXS19JT1NfVEJBLCAiUGxlYXNlIHVzZSBzZXJ2ZXJUcnVzdCIp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5ICpjZXJ0aWZp
Y2F0ZUNoYWluIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoInNlcnZlclRydXN0
IiwgbWFjb3N4KDEwLjExLCBXS19NQUNfVEJBKSwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOwogCiBA
ZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Q29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tTZWxlY3Rpb25HcmFudWxhcml0eSkgewog
ICAgIFdLU2VsZWN0aW9uR3JhbnVsYXJpdHlEeW5hbWljLAogICAgIFdLU2VsZWN0aW9uR3JhbnVs
YXJpdHlDaGFyYWN0ZXIsCi19IFdLX0VOVU1fQVZBSUxBQkxFX0lPUyg4XzApOworfSBXS19BUElf
QVZBSUxBQkxFKGlvcyg4LjApKTsKIAogLyohIEBlbnVtIFdLRGF0YURldGVjdG9yVHlwZXMKICBA
YWJzdHJhY3QgVGhlIHR5cGUgb2YgZGF0YSBkZXRlY3RlZC4KQEAgLTcyLDggKzcyLDggQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFdLRGF0YURldAogICAgIFdLRGF0YURldGVjdG9y
VHlwZUxvb2t1cFN1Z2dlc3Rpb24gPSAxIDw8IDYsCiAgICAgV0tEYXRhRGV0ZWN0b3JUeXBlQWxs
ID0gTlNVSW50ZWdlck1heCwKIAotICAgIFdLRGF0YURldGVjdG9yVHlwZVNwb3RsaWdodFN1Z2dl
c3Rpb24gV0tfRU5VTV9ERVBSRUNBVEVEKE5BLCBOQSwgV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSwg
IlBsZWFzZSB1c2UgV0tEYXRhRGV0ZWN0b3JUeXBlTG9va3VwU3VnZ2VzdGlvbiIpID0gV0tEYXRh
RGV0ZWN0b3JUeXBlTG9va3VwU3VnZ2VzdGlvbiwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpOworICAgIFdLRGF0YURldGVjdG9yVHlwZVNwb3RsaWdodFN1Z2dlc3Rpb24gV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tEYXRhRGV0ZWN0b3JUeXBlTG9va3Vw
U3VnZ2VzdGlvbiIsIGlvcyhXS19JT1NfVEJBLCBXS19JT1NfVEJBKSkgPSBXS0RhdGFEZXRlY3Rv
clR5cGVMb29rdXBTdWdnZXN0aW9uLAorfSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJB
KSk7CiAKICNlbHNlCiAKQEAgLTkxLDcgKzkxLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUlu
dGVnZXIsIFdLRGF0YURldAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tVc2VySW50ZXJm
YWNlRGlyZWN0aW9uUG9saWN5KSB7CiAgICAgV0tVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5
Q29udGVudCwKICAgICBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3lTeXN0ZW0sCi19IFdL
X0VOVU1fQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOwogCiAjZW5kaWYKIApAQCAtMTA3LDEzICsxMDcsMTMgQEAgdHlwZWRl
ZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFdLQXVkaW92aQogICAgIFdLQXVkaW92aXN1YWxNZWRp
YVR5cGVBdWRpbyA9IDEgPDwgMCwKICAgICBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlVmlkZW8gPSAx
IDw8IDEsCiAgICAgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUFsbCA9IE5TVUludGVnZXJNYXgKLX0g
V0tfRU5VTV9BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Cit9IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQSBXS1dl
YlZpZXdDb25maWd1cmF0aW9uIG9iamVjdCBpcyBhIGNvbGxlY3Rpb24gb2YgcHJvcGVydGllcyB3
aXRoCiAgd2hpY2ggdG8gaW5pdGlhbGl6ZSBhIHdlYiB2aWV3LgogIEBoZWxwcyBDb250YWlucyBw
cm9wZXJ0aWVzIHVzZWQgdG8gY29uZmlndXJlIGEgQGxpbmsgV0tXZWJWaWV3IEAvbGluay4KICAq
LwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
OiBOU09iamVjdCA8TlNDb2RpbmcsIE5TQ29weWluZz4KIAogLyohIEBhYnN0cmFjdCBUaGUgcHJv
Y2VzcyBwb29sIGZyb20gd2hpY2ggdG8gb2J0YWluIHRoZSB2aWV3J3Mgd2ViIGNvbnRlbnQKQEAg
LTEzNCw3ICsxMzQsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLyohIEBh
YnN0cmFjdCBUaGUgd2Vic2l0ZSBkYXRhIHN0b3JlIHRvIGJlIHVzZWQgYnkgdGhlIHdlYiB2aWV3
LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBXS1dlYnNpdGVEYXRhU3RvcmUg
KndlYnNpdGVEYXRhU3RvcmUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChu
b25hdG9taWMsIHN0cm9uZykgV0tXZWJzaXRlRGF0YVN0b3JlICp3ZWJzaXRlRGF0YVN0b3JlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3RyYWN0
IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHdlYiB2aWV3IHN1cHByZXNz
ZXMKICBjb250ZW50IHJlbmRlcmluZyB1bnRpbCBpdCBpcyBmdWxseSBsb2FkZWQgaW50byBtZW1v
cnkuCkBAIC0xNDQsMTQgKzE0NCwxNCBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
IAogLyohIEBhYnN0cmFjdCBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gYXMgdXNlZCBpbiB0
aGUgdXNlciBhZ2VudCBzdHJpbmcuCiAqLwotQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50IFdLX0FWQUlMQUJM
RSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgY29weSkgTlNT
dHJpbmcgKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5k
aWNhdGluZyB3aGV0aGVyIEFpclBsYXkgaXMgYWxsb3dlZC4KICBAZGlzY3Vzc2lvbiBUaGUgZGVm
YXVsdCB2YWx1ZSBpcyBZRVMuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93
c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0
b21pYykgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZXMgbWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rp
b25Gb3JQbGF5YmFjayBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZXMgbWVkaWFUeXBlc1JlcXVp
cmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8qISBAYWJz
dHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBIVE1MNSB2aWRlb3MgcGxh
eSBpbmxpbmUKQEAgLTE3MSw3ICsxNzEsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKICBwaWN0dXJlLWluLXBpY3R1cmUuCiAgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUg
aXMgWUVTLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NQaWN0dXJlSW5Q
aWN0dXJlTWVkaWFQbGF5YmFjayBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CitAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayBXS19BUElf
QVZBSUxBQkxFKGlvcyg5XzApKTsKIAogLyohIEBhYnN0cmFjdCBBbiBlbnVtIHZhbHVlIGluZGlj
YXRpbmcgdGhlIHR5cGUgb2YgZGF0YSBkZXRlY3Rpb24gZGVzaXJlZC4KICBAZGlzY3Vzc2lvbiBU
aGUgZGVmYXVsdCB2YWx1ZSBpcyBXS0RhdGFEZXRlY3RvclR5cGVOb25lLgpAQCAtMTgwLDcgKzE4
MCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIGlmIHRoZSBkYXRhRGV0ZWN0
b3JUeXBlcyBwcm9wZXJ0eSBpcyBzZXQgdG8gV0tEYXRhRGV0ZWN0b3JUeXBlUGhvbmVOdW1iZXIg
fCBXS0RhdGFEZXRlY3RvclR5cGVMaW5rIHwgV0tEYXRhRGV0ZWN0b3JUeXBlQ2FsZW5kYXJFdmVu
dC4KIAogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgV0tEYXRhRGV0ZWN0b3JUeXBlcyBkYXRh
RGV0ZWN0b3JUeXBlcyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChu
b25hdG9taWMpIFdLRGF0YURldGVjdG9yVHlwZXMgZGF0YURldGVjdG9yVHlwZXMgV0tfQVBJX0FW
QUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAjZWxzZQogCkBAIC0xODgsNyArMTg4LDcgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgQGRpc2N1c3Npb24gUG9zc2libGUgdmFs
dWVzIGFyZSBkZXNjcmliZWQgaW4gV0tVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5LgogIFRo
ZSBkZWZhdWx0IHZhbHVlIGlzIFdLVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeUNvbnRlbnQu
CiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xp
Y3kgdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
TkEpOworQHByb3BlcnR5IChub25hdG9taWMpIFdLVXNlckludGVyZmFjZURpcmVjdGlvblBvbGlj
eSB1c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKIAogI2VuZGlmCiAKQEAgLTE5Nyw5ICsxOTcsOSBAQCBXS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoV0tE
ZXByZWNhdGVkKQogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckFjdGlvbiBXS19ERVBSRUNBVEVEKE5BLCBO
QSwgOF8wLCA5XzAsICJQbGVhc2UgdXNlIHJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJh
Y2siKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlhUGxheWJhY2tBbGxvd3NBaXJQ
bGF5IFdLX0RFUFJFQ0FURUQoTkEsIE5BLCA4XzAsIDlfMCwgIlBsZWFzZSB1c2UgYWxsb3dzQWly
UGxheUZvck1lZGlhUGxheWJhY2siKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHJlcXVp
cmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2sgV0tfREVQUkVDQVRFRChOQSwgTkEsIDlfMCwg
MTBfMCwgIlBsZWFzZSB1c2UgbWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFj
ayIpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNl
ckFjdGlvbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJyZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JNZWRpYVBsYXliYWNrIiwgaW9zKDguMCwgOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBtZWRpYVBsYXliYWNrQWxsb3dzQWlyUGxheSBXS19BUElfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQbGF5YmFjayIsIGlvcyg4LjAs
IDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVxdWlyZXNVc2VyQWN0aW9uRm9y
TWVkaWFQbGF5YmFjayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5
cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkp
OwogI2VuZGlmCiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRl
LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEs
MzggKzQxLDM4IEBACiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEFs
dGVybmF0ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXM6KSBXS1dlYlZpZXcgKl9hbHRlcm5h
dGVXZWJWaWV3Rm9yTmF2aWdhdGlvbkdlc3R1cmVzOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRUcmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZTopIEJPT0wg
X3RyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlIFdLX0FWQUlMQUJMRShOQSwg
OV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRyZWF0c1NIQTFTaWduZWRD
ZXJ0aWZpY2F0ZXNBc0luc2VjdXJlOikgQk9PTCBfdHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRl
c0FzSW5zZWN1cmUgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFJlc3BlY3RzSW1hZ2VPcmllbnRhdGlvbjopIEJPT0wgX3Jlc3Bl
Y3RzSW1hZ2VPcmllbnRhdGlvbiBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcmludHNCYWNrZ3JvdW5kczopIEJP
T0wgX3ByaW50c0JhY2tncm91bmRzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluY3JlbWVudGFsUmVuZGVyaW5n
U3VwcHJlc3Npb25UaW1lb3V0OikgQ0dGbG9hdCBfaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVz
c2lvblRpbWVvdXQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSmF2YVNjcmlwdE1hcmt1cDopIEJPT0wg
X2FsbG93c0phdmFTY3JpcHRNYXJrdXAgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29udmVydHNQb3NpdGlvblN0
eWxlT25Db3B5OikgQk9PTCBfY29udmVydHNQb3NpdGlvblN0eWxlT25Db3B5IFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEFsbG93c01ldGFSZWZyZXNoOikgQk9PTCBfYWxsb3dzTWV0YVJlZnJlc2ggV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNYWluQ29udGVudFVzZXJHZXN0
dXJlT3ZlcnJpZGVFbmFibGVkOikgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRl
RW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZDopIEJP
T0wgX2ludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGF0
YUxvYWRzQXV0b21hdGljYWxseTopIEJPT0wgX21lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6KSBCT09MIF9hdHRhY2htZW50
RWxlbWVudEVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxl
ZDopIEJPT0wgX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXBw
bGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlc3Bl
Y3RzSW1hZ2VPcmllbnRhdGlvbjopIEJPT0wgX3Jlc3BlY3RzSW1hZ2VPcmllbnRhdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFByaW50c0JhY2tncm91bmRzOikgQk9PTCBfcHJp
bnRzQmFja2dyb3VuZHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbmNyZW1lbnRh
bFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dDopIENHRmxvYXQgX2luY3JlbWVudGFsUmVuZGVy
aW5nU3VwcHJlc3Npb25UaW1lb3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxs
b3dzSmF2YVNjcmlwdE1hcmt1cDopIEJPT0wgX2FsbG93c0phdmFTY3JpcHRNYXJrdXAgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb252ZXJ0c1Bvc2l0aW9uU3R5bGVPbkNvcHk6KSBC
T09MIF9jb252ZXJ0c1Bvc2l0aW9uU3R5bGVPbkNvcHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBbGxvd3NNZXRhUmVmcmVzaDopIEJPT0wgX2FsbG93c01ldGFSZWZyZXNoIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THM6KSBCT09MIF9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ6
KSBCT09MIF9tYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0SW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQ6KSBCT09M
IF9pbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseTopIEJPT0wgX21lZGlhRGF0YUxvYWRz
QXV0b21hdGljYWxseSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF0dGFjaG1lbnRF
bGVtZW50RW5hYmxlZDopIEJPT0wgX2F0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEluaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQ6KSBCT09M
IF9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VU
X09TX0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWx3YXlzUnVuc0F0
Rm9yZWdyb3VuZFByaW9yaXR5OikgQk9PTCBfYWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5
IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlOikgQk9PTCBf
aW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGUgV0tfQVZBSUxB
QkxFKE5BLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFs
bG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW46KSBCT09MIF9hbGxvd3NJbmxp
bmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuICBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWx3YXlzUnVuc0F0Rm9yZWdy
b3VuZFByaW9yaXR5OikgQk9PTCBfYWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5IFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDlfMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU6KSBCT09MIF9p
bmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuOikgQk9PTCBfYWxsb3dz
SW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiAgV0tfQVBJX0FWQUlMQUJMRShpb3Mo
V0tfSU9TX1RCQSkpOwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNo
b3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBzIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBOQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2
aWNlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfc2VydmljZUNvbnRyb2xzRW5hYmxlZCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgTkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
SW1hZ2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgTkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwg
c2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikg
Qk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgTkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
U2hvd3NVUkxzSW5Ub29sVGlwczopIEJPT0wgX3Nob3dzVVJMc0luVG9vbFRpcHMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX3NlcnZpY2VDb250cm9sc0VuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9pbWFnZUNvbnRy
b2xzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZv
ckVkaXRpbmdDb250cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0
aW5nQ29udHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsK
ICNlbmRpZgogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFZpc2l0
ZWRMaW5rUHJvdmlkZXI6KSBfV0tWaXNpdGVkTGlua1Byb3ZpZGVyICpfdmlzaXRlZExpbmtQcm92
aWRlciBXS19ERVBSRUNBVEVEKDEwXzEwLCBXS19NQUNfVEJBLCA4XzAsIFdLX0lPU19UQkEsICJQ
bGVhc2UgdXNlIF92aXNpdGVkTGlua1N0b3JlIGluc3RlYWQiKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcsIHNldHRlcj1fc2V0VmlzaXRlZExpbmtQcm92aWRlcjopIF9XS1Zpc2l0ZWRM
aW5rUHJvdmlkZXIgKl92aXNpdGVkTGlua1Byb3ZpZGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIl92aXNpdGVkTGlua1N0b3JlIiwgbWFjb3N4KDEwLjEwLCBXS19NQUNfVEJB
KSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25n
LCBzZXR0ZXI9X3NldFdlYnNpdGVEYXRhU3RvcmU6KSBfV0tXZWJzaXRlRGF0YVN0b3JlICpfd2Vi
c2l0ZURhdGFTdG9yZSBXS19ERVBSRUNBVEVEKDEwXzEwLCAxMF8xMSwgOF8wLCA5XzAsICJQbGVh
c2UgdXNlIHdlYnNpdGVEYXRhU3RvcmUgaW5zdGVhZCIpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yQXVkaW9QbGF5YmFjazopIEJPT0wgX3Jl
cXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxheWJhY2sgV0tfREVQUkVDQVRFRChXS19NQUNfVEJB
LCBXS19NQUNfVEJBLCBXS19JT1NfVEJBLCBXS19JT1NfVEJBLCAiUGxlYXNlIHVzZSBtZWRpYVR5
cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIik7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXliYWNrOikgQk9PTCBf
cmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5YmFjayBXS19ERVBSRUNBVEVEKFdLX01BQ19U
QkEsIFdLX01BQ19UQkEsIFdLX0lPU19UQkEsIFdLX0lPU19UQkEsICJQbGVhc2UgdXNlIG1lZGlh
VHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2siKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcsIHNldHRlcj1fc2V0V2Vic2l0ZURhdGFTdG9yZTopIF9XS1dlYnNpdGVEYXRh
U3RvcmUgKl93ZWJzaXRlRGF0YVN0b3JlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIndlYnNpdGVEYXRhU3RvcmUiLCBtYWNvc3goMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25G
b3JBdWRpb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yQXVkaW9QbGF5YmFj
ayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5cGVzUmVxdWlyaW5n
VXNlckFjdGlvbkZvclBsYXliYWNrIiwgbWFjb3N4KFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVz
VXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2sgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIsIG1hY29zeChX
S19NQUNfVEJBLCBXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKIAog
QGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDcgKzM3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGFnaW5hdGlv
bgogICAgIF9XS1BhZ2luYXRpb25Nb2RlUmlnaHRUb0xlZnQsCiAgICAgX1dLUGFnaW5hdGlvbk1v
ZGVUb3BUb0JvdHRvbSwKICAgICBfV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRvVG9wLAotfSBXS19F
TlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSk7CiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0
ZUFjdGlvblR5cGUpIHsKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25Ob25lLApAQCAtNDYsNyArNDYs
NyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAgICAgX1dLSW1t
ZWRpYXRlQWN0aW9uTG9va3VwVGV4dCwKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25NYWlsdG9MaW5r
LAogICAgIF9XS0ltbWVkaWF0ZUFjdGlvblRlbExpbmsKLX0gV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIE5BKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiBAY2xh
c3MgV0tCcm93c2luZ0NvbnRleHRIYW5kbGU7CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7CkBAIC03
NCwyMSArNzQsMjEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX3VucmVhY2hhYmxlVVJMOwog
CiAtICh2b2lkKV9sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgYmFz
ZVVSTDooTlNVUkwgKiliYXNlVVJMIGZvclVucmVhY2hhYmxlVVJMOihOU1VSTCAqKXVucmVhY2hh
YmxlVVJMOwotLSAoV0tOYXZpZ2F0aW9uICopX2xvYWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVU
eXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFtZTooTlNTdHJpbmcg
KiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIHVzZXJEYXRh
OihpZCl1c2VyRGF0YSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistIChX
S05hdmlnYXRpb24gKilfbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5n
ICopTUlNRVR5cGUgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVu
Y29kaW5nTmFtZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgdXNlckRhdGE6KGlkKXVzZXJEYXRh
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKl9jZXJ0aWZpY2F0ZUNo
YWluIFdLX0RFUFJFQ0FURUQoMTBfMTAsIDEwXzExLCA4XzAsIDlfMCwgInVzZSAtY2VydGlmaWNh
dGVDaGFpbiIpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpfY2Vy
dGlmaWNhdGVDaGFpbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJjZXJ0aWZp
Y2F0ZUNoYWluIiwgbWFjb3N4KDEwLjEwLCAxMC4xMSksIGlvcyg4LjAsIDkuMCkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX2NvbW1pdHRlZFVSTDsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKl9NSU1FVHlwZTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKl91c2VyQWdlbnQgV0tfQVZBSUxBQkxFKDEw
XzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqX3Vz
ZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQHBy
b3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDopIE5T
U3RyaW5nICpfYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OwogQHByb3BlcnR5IChjb3B5LCBz
ZXR0ZXI9X3NldEN1c3RvbVVzZXJBZ2VudDopIE5TU3RyaW5nICpfY3VzdG9tVXNlckFnZW50Owog
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVc2VyQ29udGVudEV4dGVuc2lvbnNF
bmFibGVkOikgQk9PTCBfdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVc2VyQ29udGVu
dEV4dGVuc2lvbnNFbmFibGVkOikgQk9PTCBfdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBwaWRfdCBfd2ViUHJvY2Vzc0lkZW50aWZpZXI7CiAKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzRWRpdGFibGUsIHNldHRlcj1fc2V0RWRpdGFibGU6
KSBCT09MIF9lZGl0YWJsZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgZ2V0dGVyPV9pc0VkaXRhYmxlLCBzZXR0ZXI9X3NldEVkaXRhYmxlOikgQk9PTCBf
ZWRpdGFibGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8v
IEZJWE1FOiBSZW1vdmUgdGhlc2Ugb25jZSBub2JvZHkgaXMgdXNpbmcgdGhlbS4KIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNEYXRhICpfc2Vzc2lvblN0YXRlRGF0YTsKQEAgLTk4
LDcgKzk4LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogLSAo
V0tOYXZpZ2F0aW9uICopX3Jlc3RvcmVTZXNzaW9uU3RhdGU6KF9XS1Nlc3Npb25TdGF0ZSAqKXNl
c3Npb25TdGF0ZSBhbmROYXZpZ2F0ZTooQk9PTCluYXZpZ2F0ZTsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QWxsb3dzUmVtb3RlSW5zcGVjdGlvbjopIEJPT0wgX2FsbG93c1Jl
bW90ZUluc3BlY3Rpb247Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRS
ZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNTdHJpbmcgKl9yZW1vdGVJbnNwZWN0aW9u
TmFtZU92ZXJyaWRlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlbW90ZUluc3BlY3Rpb25OYW1lT3Zl
cnJpZGU6KSBOU1N0cmluZyAqX3JlbW90ZUluc3BlY3Rpb25OYW1lT3ZlcnJpZGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFkZHNWaXNpdGVkTGlua3M6KSBCT09MIF9hZGRzVmlz
aXRlZExpbmtzOwogCkBAIC0xNTIsOSArMTUyLDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLSW1tZWRpYXRlQQogCiAvLyBEZXByZWNhdGVkOiBVc2UgW19vdmVycmlkZUxheW91dFBh
cmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGU6XSBpbnN0ZWFkLgogLy8gVGhpcyBmdW5jdGlvbiBpcyBrZXB0IGZvciBiaW5hcnkgY29tcGF0
aWJpbGl0eSB3aXRoIGlPUyA4LjAsIGl0IGNhbiBiZSByZW1vdmVkIGFmdGVyIHRoZSBiaW5jb21w
YXQgd2luZG93LgotLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1M
YXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWluaW11bUxheW91dFNpemVGb3JN
aW5pbWFsVUk6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSSBtYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
IFdLX0RFUFJFQ0FURUQoTkEsIE5BLCA4XzAsIDlfMCwgInVzZSAtX292ZXJyaWRlTGF5b3V0UGFy
YW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlk
ZToiKTsKKy0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0
U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1h
bFVJOihDR1NpemUpbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUkgbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
c1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZToiLCBp
b3MoOC4wLCA5LjApKTsKIAotLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1p
bmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZSBXS19B
VkFJTEFCTEUoTkEsIDlfMCk7CistICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRo
TWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtYXhpbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCiAtIChVSVZpZXcgKilfdmlld0ZvckZpbmRVSTsK
IApAQCAtMTY1LDExICsxNjUsMTEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1t
ZWRpYXRlQQogCiAvLyBQdXRzIHRoZSB2aWV3IGludG8gYSBzdGF0ZSB3aGVyZSBiZWluZyB0YWtl
biBvdXQgb2YgdGhlIHZpZXcgaGllcmFyY2h5IGFuZCByZXNpZ25pbmcgZmlyc3QgcmVzcG9uZGVy
CiAvLyB3aWxsIG5vdCBjb3VudCBhcyBiZWNvbWluZyBpbmFjdGl2ZSBhbmQgdW5mb2N1c2VkLiBU
aGUgcmV0dXJuZWQgYmxvY2sgbXVzdCBiZSBjYWxsZWQgdG8gZXhpdCB0aGUgc3RhdGUuCi0tICh2
b2lkICheKSh2b2lkKSlfcmV0YWluQWN0aXZlRm9jdXNlZFN0YXRlIFdLX0FWQUlMQUJMRShOQSwg
OV8wKTsKKy0gKHZvaWQgKF4pKHZvaWQpKV9yZXRhaW5BY3RpdmVGb2N1c2VkU3RhdGUgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoOV8wKSk7CiAKLS0gKHZvaWQpX2JlY29tZUZpcnN0UmVzcG9uZGVyV2l0
aFNlbGVjdGlvbk1vdmluZ0ZvcndhcmQ6KEJPT0wpc2VsZWN0aW5nRm9yd2FyZCBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCBkaWRCZWNvbWVGaXJzdFJlc3BvbmRlcikpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAodm9pZClfYmVjb21lRmlyc3RSZXNw
b25kZXJXaXRoU2VsZWN0aW9uTW92aW5nRm9yd2FyZDooQk9PTClzZWxlY3RpbmdGb3J3YXJkIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIGRpZEJlY29tZUZpcnN0UmVzcG9uZGVyKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKIAotLSAoaWQpX3Nu
YXBzaG90TGF5ZXJDb250ZW50c0ZvckJhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqKWl0ZW0gV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAoaWQpX3NuYXBzaG90TGF5
ZXJDb250ZW50c0ZvckJhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAq
KWl0ZW0gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAtIChOU0FycmF5ICopX2RhdGFEZXRl
Y3Rpb25SZXN1bHRzOwogCiAjZWxzZQpAQCAtMTgwLDcgKzE4MCw3IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czopIEJPT0wgX2F1dG9tYXRpY2Fs
bHlBZGp1c3RzQ29udGVudEluc2V0czsKIAogLy8gRGVmYXVsdCB2YWx1ZSBpcyAwLiBBIHZhbHVl
IG9mIDAgbWVhbnMgdGhlIHdpbmRvdydzIGJhY2tpbmcgc2NhbGUgZmFjdG9yIHdpbGwgYmUgdXNl
ZCBhbmQgYXV0b21hdGljYWxseSB1cGRhdGUgd2hlbiB0aGUgd2luZG93IG1vdmVzIHNjcmVlbnMu
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFj
dG9yOikgQ0dGbG9hdCBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciBXS19BVkFJTEFCTEUoMTBf
MTEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlRGV2aWNl
U2NhbGVGYWN0b3I6KSBDR0Zsb2F0IF9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6KSBCT09MIF93aW5kb3dPY2NsdXNp
b25EZXRlY3Rpb25FbmFibGVkOwogCkBAIC0xODgsMTggKzE4OCwxOCBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAvLyBkbyBzb21ldGhpbmcgY3VzdG9tLCByZXR1
cm4gYW4gb2JqZWN0IHRoYXQgY29uZm9ybXMgdG8gdGhlIE5TSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlciBwcm90b2NvbC4KIC0gKGlkKV9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25D
b250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDooX1dLSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3RSZXN1
bHQgd2l0aFR5cGU6KF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQ8TlNT
ZWN1cmVDb2Rpbmc+KXVzZXJEYXRhOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRNaW5pbXVtTGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtTGF5b3V0V2lkdGggV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dE1pbmltdW1MYXlvdXRXaWR0aDopIENHRmxvYXQgX21pbmltdW1MYXlvdXRXaWR0aCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKIC8vIFdoZW4gdXNpbmcgX21pbmltdW1M
YXlvdXRXaWR0aCwgdGhlIHdlYiBjb250ZW50IHdpbGwgbGF5IG91dCB0byB0aGUgaW50cmluc2lj
IGhlaWdodAogLy8gb2YgdGhlIGNvbnRlbnQ7IHVzZSB0aGlzIHByb3BlcnR5IHRvIGZvcmNlIGl0
IHRvIGxheSBvdXQgdG8gdGhlIGhlaWdodCBvZiB0aGUgdmlldyBpbnN0ZWFkLgotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZv
ckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0
b0xheW91dCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlv
dXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKIC0gKE5TUHJpbnRPcGVyYXRp
b24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5m
bzsKLS0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihO
U1ByaW50SW5mbyAqKXByaW50SW5mbyBmb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhh
bmRsZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistIChOU1ByaW50T3Bl
cmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmlu
dEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVIYW5kbGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNlbmRpZgogCi0t
IChXS05hdmlnYXRpb24gKilfcmVsb2FkV2l0aG91dENvbnRlbnRCbG9ja2VycyBXS19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistIChXS05hdmlnYXRpb24gKilfcmVsb2FkV2l0
aG91dENvbnRlbnRCbG9ja2VycyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfa2lsbFdlYkNvbnRlbnRQcm9jZXNzQW5kUmVz
ZXRTdGF0ZTsKIApAQCAtMjIwLDI2ICsyMjAsMjYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLSW1tZWRpYXRlQQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dFpv
b21GYWN0b3I6KSBkb3VibGUgX3RleHRab29tRmFjdG9yOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0UGFnZVpvb21GYWN0b3I6KSBkb3VibGUgX3BhZ2Vab29tRmFjdG9yOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0Rl
bGVnYXRlOikgaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCB3ZWFrLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU6KSBpZCA8X1dL
RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4gX2RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgd2Vhaywgc2V0dGVyPV9zZXRGaW5kRGVsZWdhdGU6KSBpZCA8X1dLRmluZERlbGVnYXRl
PiBfZmluZERlbGVnYXRlOwogLSAodm9pZClfZmluZFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcg
b3B0aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9ucyBtYXhDb3VudDooTlNVSW50ZWdlciltYXhD
b3VudDsKIC0gKHZvaWQpX2NvdW50U3RyaW5nTWF0Y2hlczooTlNTdHJpbmcgKilzdHJpbmcgb3B0
aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9ucyBtYXhDb3VudDooTlNVSW50ZWdlciltYXhDb3Vu
dDsKIC0gKHZvaWQpX2hpZGVGaW5kVUk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBz
ZXR0ZXI9X3NldEZvcm1EZWxlZ2F0ZTopIGlkIDxfV0tGb3JtRGVsZWdhdGU+IF9mb3JtRGVsZWdh
dGUgV0tfREVQUkVDQVRFRCgxMF8xMCwgV0tfTUFDX1RCQSwgOF8wLCBXS19JT1NfVEJBLCAidXNl
IF9pbnB1dERlbGVnYXRlIik7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9z
ZXRJbnB1dERlbGVnYXRlOikgaWQgPF9XS0lucHV0RGVsZWdhdGU+IF9pbnB1dERlbGVnYXRlIFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCB3ZWFrLCBzZXR0ZXI9X3NldEZvcm1EZWxlZ2F0ZTopIGlkIDxfV0tGb3JtRGVsZWdhdGU+IF9m
b3JtRGVsZWdhdGUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX2lucHV0RGVs
ZWdhdGUiLCBtYWNvc3goMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRJbnB1dERlbGVnYXRlOikg
aWQgPF9XS0lucHV0RGVsZWdhdGU+IF9pbnB1dERlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGdldHRlcj1faXNEaXNwbGF5aW5nU3RhbmRhbG9uZUltYWdlRG9jdW1lbnQp
IEJPT0wgX2Rpc3BsYXlpbmdTdGFuZGFsb25lSW1hZ2VEb2N1bWVudDsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9pc0Rpc3BsYXlpbmdTdGFuZGFsb25lTWVkaWFEb2N1
bWVudCkgQk9PTCBfZGlzcGxheWluZ1N0YW5kYWxvbmVNZWRpYURvY3VtZW50OwogCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JvbGxQZXJmb3JtYW5jZURhdGFDb2xsZWN0aW9u
RW5hYmxlZDopIEJPT0wgX3Njcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkIFdL
X0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNBcnJheSAqX3Njcm9sbFBlcmZvcm1hbmNlRGF0YSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JvbGxQZXJmb3JtYW5jZURhdGFD
b2xsZWN0aW9uRW5hYmxlZDopIEJPT0wgX3Njcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25F
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpfc2Nyb2xsUGVyZm9ybWFuY2VEYXRh
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi0tICh2b2lkKV9z
YXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0
ZW0gV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAodm9pZClfc2F2ZUJhY2tGb3J3YXJkU25h
cHNob3RGb3JJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0
dGVyPV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2ssIHNldHRlcj1fc2V0QWxsb3dz
TWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrOikgQk9PTCBfYWxsb3dzTWVkaWFEb2N1bWVudElu
bGluZVBsYXliYWNrOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3dl
YlByb2Nlc3NJc1Jlc3BvbnNpdmUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF93ZWJQcm9jZXNzSXNSZXNw
b25zaXZlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiBAZW5kCiAKQEAgLTI1MSwyMSArMjUxLDIxIEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS0ltbWVkaWF0ZUEKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1Rlc3RpbmcpCiAK
ICNpZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENH
UmVjdCBfY29udGVudFZpc2libGVSZWN0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKLS0gKENHUG9pbnQpX2NvbnZlcnRQb2ludEZyb21Db250ZW50c1RvVmlldzooQ0dQb2lu
dClwb2ludCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tIChDR1BvaW50
KV9jb252ZXJ0UG9pbnRGcm9tVmlld1RvQ29udGVudHM6KENHUG9pbnQpcG9pbnQgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBDR1JlY3QgX2NvbnRlbnRWaXNpYmxlUmVjdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKENHUG9pbnQpX2NvbnZlcnRQb2ludEZy
b21Db250ZW50c1RvVmlldzooQ0dQb2ludClwb2ludCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKENHUG9pbnQpX2NvbnZlcnRQb2ludEZy
b21WaWV3VG9Db250ZW50czooQ0dQb2ludClwb2ludCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotLSAodm9pZClrZXlib2FyZEFjY2Vzc29y
eUJhck5leHQgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpa2V5Ym9hcmRB
Y2Nlc3NvcnlCYXJQcmV2aW91cyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworLSAodm9p
ZClrZXlib2FyZEFjY2Vzc29yeUJhck5leHQgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhclByZXZpb3VzIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZm9yY2VJ
UGFkU3R5bGVab29tT25JbnB1dEZvY3VzIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBmb3JjZUlQYWRTdHlsZVpvb21PbklucHV0Rm9jdXMg
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2VuZGlmCiAKICNpZiAhVEFSR0VU
X09TX0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNBY3Rp
dmVWaWRlb0ZvckNvbnRyb2xzTWFuYWdlciBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNBY3RpdmVWaWRlb0ZvckNv
bnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAjZW5k
aWYKIAotLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZv
aWQpKXVwZGF0ZUJsb2NrIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0g
KHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlOih2b2lkICheKSh2b2lkKSl1cGRh
dGVCbG9jayBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFSZWNvcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQuaAkocmV2aXNpb24gMjAyNzU5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3Jk
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDMxICszMiwzMSBAQAogTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZURpc2tDYWNoZSBPbi1kaXNr
IGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBl
RGlza0NhY2hlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlRGlza0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlTWVt
b3J5Q2FjaGUgSW4tbWVtb3J5IGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IFdLV2Vic2l0ZURhdGFUeXBlTWVtb3J5Q2FjaGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVNZW1vcnlDYWNoZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFu
dCBXS1dlYnNpdGVEYXRhVHlwZU9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlIEhUTUwgb2ZmbGlu
ZSB3ZWIgYXBwbGljYXRpb24gY2FjaGVzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
V0tXZWJzaXRlRGF0YVR5cGVPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlw
ZU9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlQ29va2llcyBD
b29raWVzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVD
b29raWVzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNv
bnN0IFdLV2Vic2l0ZURhdGFUeXBlQ29va2llcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZVNlc3Npb25T
dG9yYWdlIEhUTUwgc2Vzc2lvbiBzdG9yYWdlLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29u
c3QgV0tXZWJzaXRlRGF0YVR5cGVTZXNzaW9uU3RvcmFnZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlf
MCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZVNlc3Npb25T
dG9yYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEg
QGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlTG9jYWxTdG9yYWdlIEhUTUwgbG9jYWwgc3RvcmFn
ZS4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlTG9jYWxT
dG9yYWdlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNv
bnN0IFdLV2Vic2l0ZURhdGFUeXBlTG9jYWxTdG9yYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlV2Vi
U1FMRGF0YWJhc2VzIFdlYlNRTCBkYXRhYmFzZXMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBXS1dlYnNpdGVEYXRhVHlwZVdlYlNRTERhdGFiYXNlcyBXS19BVkFJTEFCTEUoMTBfMTEs
IDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZVdlYlNR
TERhdGFiYXNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAog
LyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcyBJbmRleGVk
REIgZGF0YWJhc2VzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0
YVR5cGVJbmRleGVkREJEYXRhYmFzZXMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBBIFdLV2Vi
c2l0ZURhdGFSZWNvcmQgcmVwcmVzZW50cyB3ZWJzaXRlIGRhdGEsIGdyb3VwZWQgYnkgZG9tYWlu
IG5hbWUgdXNpbmcgdGhlIHB1YmxpYyBzdWZmaXggbGlzdC4gKi8KLVdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMSwgOV8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KQogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhUmVjb3JkIDogTlNPYmplY3QKIAogLyohIEBhYnN0
cmFjdCBUaGUgZGlzcGxheSBuYW1lIGZvciB0aGUgZGF0YSByZWNvcmQuIFRoaXMgaXMgdXN1YWxs
eSB0aGUgZG9tYWluIG5hbWUuICovCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5o
CShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICsz
MSwxNCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAY2xhc3MgX1dLV2Vic2l0ZURhdGFT
aXplOwogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVIU1RT
Q2FjaGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29u
c3QgX1dLV2Vic2l0ZURhdGFUeXBlTWVkaWFLZXlzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsK
LVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxk
UmVjZW50U2VhcmNoZXMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVIU1RTQ2FjaGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBfV0tXZWJzaXRlRGF0YVR5cGVNZWRpYUtleXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0
YVR5cGVTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
X1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogCiAjaWYgIVRBUkdFVF9P
U19JUEhPTkUKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVBs
dWdJbkRhdGEgV0tfQVZBSUxBQkxFKDEwXzExLCBOQSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBfV0tXZWJzaXRlRGF0YVR5cGVQbHVnSW5EYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSk7CiAjZW5kaWYKIAogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhUmVjb3JkIChXS1By
aXZhdGUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDcgKzM1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICBtYWtlIHVz
ZSBvZi4gVGhpcyBpbmNsdWRlcyBjb29raWVzLCBkaXNrIGFuZCBtZW1vcnkgY2FjaGVzLCBhbmQg
cGVyc2lzdGVudCBkYXRhIHN1Y2ggYXMgV2ViU1FMLAogIEluZGV4ZWREQiBkYXRhYmFzZXMsIGFu
ZCBsb2NhbCBzdG9yYWdlLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTEsIDlfMCkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgV0tX
ZWJzaXRlRGF0YVN0b3JlIDogTlNPYmplY3QgPE5TQ29kaW5nPgogCiAvKiBAYWJzdHJhY3QgUmV0
dXJucyB0aGUgZGVmYXVsdCBkYXRhIHN0b3JlLiAqLwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQ
cml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSwxMyArMzEsMTMgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogdHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKICAgICBf
V0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25Db21wdXRlU2l6ZXMgPSAxIDw8IDAsCi19IFdL
X0VOVU1fQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGludGVyZmFjZSBX
S1dlYnNpdGVEYXRhU3RvcmUgKFdLUHJpdmF0ZSkKIAogLSAodm9pZClfZmV0Y2hEYXRhUmVjb3Jk
c09mVHlwZXM6KE5TU2V0PE5TU3RyaW5nICo+ICopZGF0YVR5cGVzIHdpdGhPcHRpb25zOihfV0tX
ZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJlY29yZCAqPiAqKSljb21wbGV0aW9uSGFuZGxl
cjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQ6KSBCT09MIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDopIEJPT0wgX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVy
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICovCiBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXaW5kb3dGZWF0
dXJlcyA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgQk9PTC4gV2hldGhlciB0aGUgbWVudSBi
YXIgc2hvdWxkIGJlIHZpc2libGUuIG5pbCBpZiBtZW51IGJhciB2aXNpYmlsaXR5IHdhcyBub3Qg
c3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNyArMzYsMTcgQEAKIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKSB7CiAgICAgX1dLQWN0aXZh
dGVkRWxlbWVudFR5cGVMaW5rLAogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlSW1hZ2UsCi0g
ICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50IFdLX0VOVU1fQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpLAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsK
KyAgICBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSksCit9IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZh
Y2UgX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TVVJMICpVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIE5TU3RyaW5nICp0aXRsZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
QWN0aXZhdGVkRWxlbWVudFR5cGUgdHlwZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgQ0dSZWN0IGJvdW5kaW5nUmVjdDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNTdHJpbmcgKklEIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKklEIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogI2lmIFRBUkdFVF9PU19JUEhP
TkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgVUlJbWFnZSAqaW1hZ2U7
CiAjZWxzZQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRv
bWF0aW9uU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFj
ZSBfV0tBdXRvbWF0aW9uU2Vzc2lvbiA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqc2Vzc2lvbklkZW50aWZpZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0NvbnRleHRNZW51
RWxlbWVudEluZm8uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSkKIEBpbnRlcmZhY2UgX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyA6IE5TT2JqZWN0
IDxOU0NvcHlpbmc+CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0
ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tEaWFnbm9zdGljCiAgICAg
X1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzLAogICAgIF9XS0RpYWdub3N0aWNMb2dnaW5n
UmVzdWx0RmFpbCwKICAgICBfV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdE5vb3AsCi19IFdLX0VO
VU1fQVZBSUxBQkxFKDEwXzExLCA5XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKTsKIAogQHByb3RvY29sIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUg
PE5TT2JqZWN0PgogQG9wdGlvbmFsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0Rvd25sb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDcgKzMxLDcgQEAKIAogQGNsYXNzIFdLV2ViVmlldzsKIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIF9XS0Rvd25sb2FkIDogTlNPYmplY3QKIAogLSAodm9pZCljYW5jZWw7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0VsZW1lbnRBY3Rpb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDEzICs0MSwxMyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0CiAg
ICAgX1dLRWxlbWVudEFjdGlvblR5cGVTYXZlSW1hZ2UsCiAjaWYgIWRlZmluZWQoVEFSR0VUX09T
X0lPUykgfHwgVEFSR0VUX09TX0lPUwogICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlQWRkVG9SZWFk
aW5nTGlzdCwKLSAgICBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRCcm93c2VyIFdL
X0VOVU1fQVZBSUxBQkxFKE5BLCA5XzApLAotICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3Blbklu
RXh0ZXJuYWxBcHBsaWNhdGlvbiBXS19FTlVNX0FWQUlMQUJMRShOQSwgOV8wKSwKKyAgICBfV0tF
bGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRCcm93c2VyIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDlfMCkpLAorICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRXh0ZXJuYWxBcHBsaWNhdGlv
biBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKSwKICNlbmRpZgotICAgIF9XS0VsZW1lbnRBY3Rp
b25UeXBlU2hhcmUgV0tfRU5VTV9BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpLAotfSBXS19FTlVN
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKKyAgICBfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKSwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTApLCBpb3MoOC4wKSk7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBf
V0tFbGVtZW50QWN0aW9uIDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKWVsZW1lbnRBY3Rp
b25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZTsKQEAgLTU1LDcgKzU1LDcgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKICsgKGluc3RhbmNldHlwZSllbGVtZW50
QWN0aW9uV2l0aFRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGFjdGlvbkhhbmRsZXI6KFdLRWxlbWVu
dEFjdGlvbkhhbmRsZXIpaGFuZGxlcjsKIAotLSAodm9pZClydW5BY3Rpb25XaXRoRWxlbWVudElu
Zm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopaW5mbyBXS19BVkFJTEFCTEUoTkEsIDlfMCk7
CistICh2b2lkKXJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8gKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIF9XS0VsZW1lbnRBY3Rpb25UeXBlIHR5cGU7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nKiB0aXRsZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVh
dHVyZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyAr
MjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IGNvcHkpIE5TU3RyaW5nICprZXk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0ZpbmRPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tGaW5kT3B0aW9ucy5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZpbmRPcHRpb25zLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQxLDYgKzQxLDYgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIs
IF9XS0ZpbmRPcAogICAgIF9XS0ZpbmRPcHRpb25zSXJyZWxldmFudEZvckluY3JlbWVudGFsUmVz
dWx0cyA9IF9XS0ZpbmRPcHRpb25zU2hvd092ZXJsYXkgfCBfV0tGaW5kT3B0aW9uc1Nob3dGaW5k
SW5kaWNhdG9yIHwgX1dLRmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0IHwgX1dLRmluZE9wdGlvbnNE
ZXRlcm1pbmVNYXRjaEluZGV4LAogICAgIF9XS0ZpbmRPcHRpb25zSXJyZWxldmFudEZvckJhdGNo
UmVzdWx0cyA9IF9XS0ZpbmRPcHRpb25zQmFja3dhcmRzIHwgX1dLRmluZE9wdGlvbnNXcmFwQXJv
dW5kIHwgX1dLRmluZE9wdGlvbnNJcnJlbGV2YW50Rm9ySW5jcmVtZW50YWxSZXN1bHRzCiAKLX0g
V0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjEwKSwgaW9zKDguMCkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCShyZXZp
c2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Zv
cm1JbnB1dFNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTQgKzM2LDE0IEBACiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzVmFsaWQpIEJPT0wgdmFsaWQ7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TT2JqZWN0IDxOU1NlY3VyZUNvZGlu
Zz4gKnVzZXJPYmplY3Q7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIGlkIDxfV0tG
b2N1c2VkRWxlbWVudEluZm8+IGZvY3VzZWRFbGVtZW50SW5mbyBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIGlkIDxf
V0tGb2N1c2VkRWxlbWVudEluZm8+IGZvY3VzZWRFbGVtZW50SW5mbyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19J
UEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYWNjZXNzb3J5Vmll
d0N1c3RvbUJ1dHRvblRpdGxlOwotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3
ICpjdXN0b21JbnB1dFZpZXcgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PFVJVGV4dFN1Z2dlc3Rpb24gKj4gKnN1Z2dlc3Rp
b25zIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykg
Qk9PTCBhY2Nlc3NvcnlWaWV3U2hvdWxkTm90U2hvdyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICp0ZXh0Q29udGVudFR5
cGUgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcpIFVJVmlldyAqY3VzdG9tSW5wdXRWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PFVJVGV4dFN1Z2dl
c3Rpb24gKj4gKnN1Z2dlc3Rpb25zIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFjY2Vzc29yeVZpZXdTaG91bGROb3RTaG93IFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5KSBOU1N0cmluZyAqdGV4dENvbnRlbnRUeXBlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKICNlbmRpZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0lucHV0RGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lucHV0RGVsZWdhdGUuaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnB1dERlbGVnYXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgYWNjZXNzb3J5Vmlld0N1c3RvbUJ1dHRvblRhcHBlZEluRm9ybUlu
cHV0U2Vzc2lvbjooaWQgPF9XS0Zvcm1JbnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbjsKIC0gKEJP
T0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaGFzU3VnZ2VzdGlvbnNGb3JDdXJyZW50
U3RyaW5nSW5JbnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9uPilpbnB1dFNlc3Np
b247CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3VnZ2VzdGlv
bnNGb3JTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGluSW5wdXRTZXNzaW9uOihpZCA8X1dLRm9y
bUlucHV0U2Vzc2lvbj4paW5wdXRTZXNzaW9uOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBpbnNlcnRUZXh0U3VnZ2VzdGlvbjooVUlUZXh0U3VnZ2VzdGlvbiAqKXN1Z2dl
c3Rpb24gaW5JbnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9uPilpbnB1dFNlc3Np
b24gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgaW5zZXJ0VGV4dFN1Z2dlc3Rpb246KFVJVGV4dFN1Z2dlc3Rpb24gKilz
dWdnZXN0aW9uIGluSW5wdXRTZXNzaW9uOihpZCA8X1dLRm9ybUlucHV0U2Vzc2lvbj4paW5wdXRT
ZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbmRpZgogCiBAZW5k
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xheW91dE1vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xh
eW91dE1vZGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tMYXlvdXRNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDYg
QEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0xheW91dE1vZAogICAgIC8vIExheSBv
dXQgdGhlIHZpZXcgYXQgYSBoZXVyaXN0aWNhbGx5LWRldGVybWluZWQgc2l6ZSBiYXNlZCBvbiB0
aGUgbWluaW11bSBzaXplIG9mIHRoZSBkb2N1bWVudC4KICAgICBfV0tMYXlvdXRNb2RlRHluYW1p
Y1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9jdW1lbnRTaXplID0gNCwKIAotfSBXS19FTlVNX0FW
QUlMQUJMRSgxMF8xMSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSk7CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oCShyZXZp
c2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS092
ZXJsYXlTY3JvbGxiYXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw0ICszNCw0IEBAIHR5
cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tPdmVybGF5U2MKICAgICAvLyBoZXVyaXN0aWMg
dG8gY2hvb3NlIGFuIGFwcHJvcHJpYXRlIGNvbG9yLgogICAgIF9XS092ZXJsYXlTY3JvbGxiYXJT
dHlsZUF1dG9tYXRpYwogCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApOworfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsMTUgKzI4LDE1IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1XS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIDog
TlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TVVJM
ICppbmplY3RlZEJ1bmRsZVVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1VJbnRlZ2VyIG1h
eGltdW1Qcm9jZXNzQ291bnQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgTlNJbnRlZ2VyIGRpc2tD
YWNoZVNpemVPdmVycmlkZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5v
bmF0b21pYykgTlNJbnRlZ2VyIGRpc2tDYWNoZVNpemVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBO
U0FycmF5ICpjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU0FycmF5PE5TU3RyaW5nICo+ICphbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMg
V0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCBXS19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
TlNBcnJheTxOU1N0cmluZyAqPiAqYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hlbWVzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
QGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Nlc3Np
b25TdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLU2Vzc2lvblN0YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2Vzc2lvblN0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tTZXNzaW9uU3RhdGUgOiBOU09iamVjdAog
CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEYXRhOihOU0RhdGEgKilkYXRhOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxW
aWV3LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVGh1bWJuYWlsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBA
CiAKIEBjbGFzcyBXS1ZpZXc7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tU
aHVtYm5haWxWaWV3IDogTlNWaWV3CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihO
U1JlY3QpZnJhbWUgZnJvbVdLVmlldzooV0tWaWV3ICopd2tWaWV3OwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBjbGFzcyBfV0tVc2VyQ29udGVudEZp
bHRlcjsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmUgOiBOU09iamVjdAogCiArIChpbnN0YW5jZXR5cGUpZGVmYXVsdFN0b3JlOwpA
QCAtNDEsMTMgKzQxLDEzIEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMSwgOV8wKQogCiBAZW5k
CiAKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uc0Rv
bWFpbiBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFRFUk4gTlNT
dHJpbmcgKiBjb25zdCBfV0tVc2VyQ29udGVudEV4dGVuc2lvbnNEb21haW4gV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvckNvZGUpIHsK
ICAgICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JMb29rdXBGYWlsZWQgPSAxLAog
ICAgIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvclZlcnNpb25NaXNtYXRjaCwKICAg
ICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JDb21waWxlRmFpbGVkLAogICAgIF9X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvclJlbW92ZUZhaWxlZCwKLX0gV0tfRU5VTV9B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjZW5kaWYgLy8gV0tfQVBJX0VO
QUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNv
bnRlbnRGaWx0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEw
LjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50RmlsdGVyIDogTlNPYmpl
Y3QKIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tV
c2VyQ29udGVudFdvcmxkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudFdvcmxkLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFj
ZSBfV0tVc2VyQ29udGVudFdvcmxkIDogTlNPYmplY3QKIAogKyAoX1dLVXNlckNvbnRlbnRXb3Js
ZCAqKXdvcmxkV2l0aE5hbWU6KE5TU3RyaW5nICopbmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmgJKHJl
dmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
VXNlclN0eWxlU2hlZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogCiBAY2xhc3MgX1dLVXNlckNvbnRlbnRXb3JsZDsKIAotV0tfQ0xB
U1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS1VzZXJT
dHlsZVNoZWV0IDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqc291cmNlOwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1Byb3ZpZGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1Byb3Zp
ZGVyLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVmlzaXRlZExpbmtQcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsy
Nyw3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1XS19DTEFTU19ERVBSRUNBVEVEKDEwXzEw
LCBXS19NQUNfVEJBLCA4XzAsIFdLX0lPU19UQkEsICJQbGVhc2UgdXNlIF9XS1Zpc2l0ZWRMaW5r
U3RvcmUgaW5zdGVhZCIpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9X
S1Zpc2l0ZWRMaW5rU3RvcmUiLCBtYWNvc3goMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBX
S19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLVmlzaXRlZExpbmtQcm92aWRlciA6IF9XS1Zpc2l0
ZWRMaW5rU3RvcmUKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmgJKHJldmlzaW9uIDIwMjc1
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtT
dG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBXS19BUElfRU5B
QkxFRAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLVmlzaXRlZExpbmtTdG9y
ZSA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpYWRkVmlzaXRlZExpbmtXaXRoVVJMOihOU1VSTCAqKVVS
TDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFSZWNvcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYnNpdGVEYXRhUmVjb3JkLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFSZWNvcmQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0
YVJlY29yZC5oPgogCi1XS19DTEFTU19ERVBSRUNBVEVEKDEwXzExLCAxMF8xMSwgOV8wLCA5XzAs
ICJQbGVhc2UgdXNlIFdLV2Vic2l0ZURhdGFSZWNvcmQgaW5zdGVhZCIpCitXS19DTEFTU19ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vic2l0ZURhdGFSZWNvcmQiLCBtYWNvc3goMTAu
MTEsIDEwLjExKSwgaW9zKDkuMCwgOS4wKSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFSZWNv
cmQgOiBXS1dlYnNpdGVEYXRhUmVjb3JkCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVNpemUuaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJzaXRlRGF0YVNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFTaXplIDogTlNPYmplY3QKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxTaXpl
OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tXZWJzaXRlRGF0YVN0b3JlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSwxMCArMzEsMTAgQEAKIAogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIs
IFdLV2Vic2l0ZURhdGFUeXBlcykgewogICAgIFdLV2Vic2l0ZURhdGFUeXBlQWxsID0gTlNVSW50
ZWdlck1heCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAKLVdLX0NMQVNTX0RFUFJFQ0FURUQo
MTBfMTAsIDEwXzExLCA4XzAsIDlfMCwgIlBsZWFzZSB1c2UgV0tXZWJzaXRlRGF0YVN0b3JlIGlu
c3RlYWQiKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnNpdGVE
YXRhU3RvcmUiLCBtYWNvc3goMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4wKSkKIEBpbnRlcmZh
Y2UgX1dLV2Vic2l0ZURhdGFTdG9yZSA6IE5TT2JqZWN0CiAKICsgKF9XS1dlYnNpdGVEYXRhU3Rv
cmUgKilkZWZhdWx0RGF0YVN0b3JlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRlUHJp
dmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIC8vIFRoZSByZXR1cm4gdmFsdWUgaXMg
ZXhwb3NlZCBpbiB0aGUgVUkgcHJvY2VzcyB2aWEgdGhlIHVzZXJPYmplY3QgcHJvcGVydHkgb2Yg
dGhlIF9XS0Zvcm1JbnB1dFNlc3Npb24gb2JqZWN0LgogLSAoTlNPYmplY3QgPE5TU2VjdXJlQ29k
aW5nPiAqKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHdpbGxCZWdp
bklucHV0U2Vzc2lvbkZvckVsZW1lbnQ6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilu
b2RlIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWU7Ci0tIChOU09iamVj
dCA8TlNTZWN1cmVDb2Rpbmc+ICopX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRy
b2xsZXIgd2lsbEJlZ2luSW5wdXRTZXNzaW9uRm9yRWxlbWVudDooV0tXZWJQcm9jZXNzUGx1Z0lu
Tm9kZUhhbmRsZSAqKW5vZGUgaW5GcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilmcmFt
ZSB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOworLSAoTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKV93ZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHdpbGxCZWdpbklucHV0U2Vzc2lvbkZv
ckVsZW1lbnQ6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlIGluRnJhbWU6KFdL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWUgdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNl
cklzSW50ZXJhY3RpbmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAtIChC
T09MKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyU2hvdWxkTm90aWZ5
T25Gb3JtQ2hhbmdlczooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
ICopY29udHJvbGxlcjsKIC0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNv
bnRyb2xsZXIgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzOihOU0FycmF5ICopZWxlbWVudHM7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1l
LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxl
OwogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkOwogCi1XS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgOiBOU09iamVjdAogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpVUkw7CkBAIC00Nyw4ICs0Nyw4
IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiAvLyBSZXR1cm5zIFVSTHMgb3Jk
ZXJlZCBieSByZXNvbHV0aW9uIGluIGRlc2NlbmRpbmcgb3JkZXIuCiAvLyBGSVhNRTogVGhlc2Ug
c2hvdWxkIGJlIHRhZ2dlZCBub25udWxsLgotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU0FycmF5PE5TVVJMICo+ICphcHBsZVRvdWNoSWNvblVSTHMgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0Fy
cmF5PE5TVVJMICo+ICpmYXZpY29uVVJMcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8TlNVUkwgKj4g
KmFwcGxlVG91Y2hJY29uVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJh
eTxOU1VSTCAqPiAqZmF2aWNvblVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKEpTQ29udGV4dCAqKWpzQ29udGV4dEZvcldvcmxk
OihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkOwogLSAoV0tXZWJQcm9jZXNz
UGx1Z0luSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQ7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5IaXRUZXN0UmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVz
dFJlc3VsdC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogQGNsYXNzIFdLV2ViUHJvY2Vz
c1BsdWdJbk5vZGVIYW5kbGU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dl
YlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0IDogTlNPYmplY3QKIAogQHByb3BlcnR5IChyZWFk
b25seSkgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqbm9kZUhhbmRsZTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFu
ZGxlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsMTYgKzM3LDE2IEBACiAKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVn
SW5GcmFtZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1Bs
dWdJbk5vZGVIYW5kbGUgOiBOU09iamVjdAogCiArIChXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFu
ZGxlICopbm9kZUhhbmRsZVdpdGhKU1ZhbHVlOihKU1ZhbHVlICopdmFsdWUgaW5Db250ZXh0OihK
U0NvbnRleHQgKiljb250ZXh0OwogLSAoV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilodG1sSUZy
YW1lRWxlbWVudENvbnRlbnRGcmFtZTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKLS0gKFVJSW1h
Z2UgKilyZW5kZXJlZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNob3RPcHRpb25zKW9wdGlvbnMg
V0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAoVUlJbWFnZSAqKXJlbmRlcmVkSW1hZ2VXaXRo
T3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg5LjApKTsKICNlbHNlCi0tIChOU0ltYWdlICopcmVuZGVyZWRJbWFnZVdp
dGhPcHRpb25zOihXS1NuYXBzaG90T3B0aW9ucylvcHRpb25zIFdLX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKTsKKy0gKE5TSW1hZ2UgKilyZW5kZXJlZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNob3RP
cHRpb25zKW9wdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CiAjZW5kaWYKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgZWxlbWVu
dEJvdW5kczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Q
YWdlR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxG
b3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNl
IFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAocmVh
ZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQg
OiBOU09iamVjdAogCiArIChXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkOwpA
QCAtMzgsNyArMzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKm5hbWU7CiAKIC0gKHZvaWQp
Y2xlYXJXcmFwcGVyczsKLS0gKHZvaWQpbWFrZUFsbFNoYWRvd1Jvb3RzT3BlbiBXS19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKW1ha2VBbGxTaGFkb3dSb290c09w
ZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oCShyZXZpc2lv
biAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tET01Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiBA
Y2xhc3MgV0tET01FbGVtZW50OwogQGNsYXNzIFdLRE9NVGV4dDsKIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIFdLRE9NRG9jdW1lbnQgOiBXS0RPTU5vZGUKIAogLSAoV0tET01FbGVt
ZW50ICopY3JlYXRlRWxlbWVudDooTlNTdHJpbmcgKil0YWdOYW1lOwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS0RPTUVsZW1lbnQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0RPTU5vZGUuaD4K
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NRWxlbWVudCA6IFdLRE9NTm9k
ZQogCiAtIChCT09MKWhhc0F0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2Rl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NTm9kZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogQGNsYXNzIFdLRE9NRG9jdW1lbnQ7CiAKLVdLX0NM
QVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTU5vZGUgOiBOU09iamVjdAogCiAtICh2b2lk
KWluc2VydE5vZGU6KFdLRE9NTm9kZSAqKW5vZGUgYmVmb3JlOihXS0RPTU5vZGUgKilyZWZOb2Rl
OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLRE9NUmFuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01SYW5nZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01SYW5n
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIFdLRE9NUmFuZ2VEaXIKIH07CiAKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJm
YWNlIFdLRE9NUmFuZ2UgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0aERvY3VtZW50OihXS0RP
TURvY3VtZW50ICopZG9jdW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dC5oCShyZXZp
c2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9tYWMvV0tET01UZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAog
I2ltcG9ydCA8V2ViS2l0L1dLRE9NTm9kZS5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRl
cmZhY2UgV0tET01UZXh0IDogV0tET01Ob2RlCiAKIEBwcm9wZXJ0eShub25hdG9taWMsIGNvcHkp
IE5TU3RyaW5nICpkYXRhOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dEl0ZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dEl0ZXJh
dG9yLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHRJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw3ICszMSw3IEBACiAKIEBjbGFzcyBXS0RPTVJhbmdlOwogCi1XS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4w
KSkKIEBpbnRlcmZhY2UgV0tET01UZXh0SXRlcmF0b3IgOiBOU09iamVjdAogCiAtIChpZClpbml0
V2l0aFJhbmdlOihXS0RPTVJhbmdlICopcmFuZ2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLV2ViUHJvY2Vzc1BsdWdJbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJ
bjooV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgd2lsbERl
c3Ryb3lCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlciAqKWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKIEBlbmQKIAotV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIg
OiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBXS0Nvbm5lY3Rpb24gKmNvbm5lY3Rp
b247CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDcgQEAKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXA7
CiBAcHJvdG9jb2wgV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlOwogCi1XS19DTEFTU19B
VkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBp
b3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChyZWFkb25seSkgV0tET01Eb2N1bWVudCAq
bWFpbkZyYW1lRG9jdW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9tYWMvcG9zdHByb2Nlc3Mt
ZnJhbWV3b3JrLWhlYWRlcnMuc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvbWFjL3Bv
c3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gJKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDEwICs1MCwxMCBAQCBmdW5jdGlvbiBwcm9jZXNzX2RlZmluaXRpb25zICgp
IHsKIAogZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJzICgpIHsKICAgICBpZiBbWyAiJHtQTEFURk9S
TV9OQU1FfSIgPT0gIm1hY29zeCIgXV07IHRoZW4KLSAgICAgICAgW1sgLW4gJHtPU1hfVkVSU0lP
Tn0gXV0gfHwgT1NYX1ZFUlNJT049JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQvXC4vX30KKyAg
ICAgICAgW1sgLW4gJHtPU1hfVkVSU0lPTn0gXV0gfHwgT1NYX1ZFUlNJT049JHtNQUNPU1hfREVQ
TE9ZTUVOVF9UQVJHRVR9CiAgICAgICAgIFtbIC1uICR7SU9TX1ZFUlNJT059IF1dIHx8IElPU19W
RVJTSU9OPSJOQSIKICAgICBlbGlmIFtbICIke1BMQVRGT1JNX05BTUV9IiA9fiAiaXBob25lIiBd
XTsgdGhlbgotICAgICAgICBbWyAtbiAke0lPU19WRVJTSU9OfSBdXSB8fCBJT1NfVkVSU0lPTj0k
e0lQSE9ORU9TX0RFUExPWU1FTlRfVEFSR0VUL1wuL199CisgICAgICAgIFtbIC1uICR7SU9TX1ZF
UlNJT059IF1dIHx8IElPU19WRVJTSU9OPSR7SVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVR9CiAg
ICAgICAgIFtbIC1uICR7T1NYX1ZFUlNJT059IF1dIHx8IE9TWF9WRVJTSU9OPSJOQSIKICAgICBm
aQogCkBAIC02NCwxNSArNjQsMTMgQEAgZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJzICgpIHsKICAg
ICAgICAgU0VEX09QVElPTlMrPSgKICAgICAgICAgICAgIC1lIHMvV0tfTUFDX1RCQS8ke09TWF9W
RVJTSU9OfS9nCiAgICAgICAgICAgICAtZSBzL1dLX0lPU19UQkEvJHtJT1NfVkVSU0lPTn0vZwot
ICAgICAgICAgICAgLWUgcy9XS19BVkFJTEFCTEUvTlNfQVZBSUxBQkxFLwotICAgICAgICAgICAg
LWUgcy9XS19ERVBSRUNBVEVEL05TX0RFUFJFQ0FURUQvCi0gICAgICAgICAgICAtZSBzL1dLX0VO
VU1fQVZBSUxBQkxFL05TX0VOVU1fQVZBSUxBQkxFLwotICAgICAgICAgICAgLWUgcy9XS19FTlVN
X0RFUFJFQ0FURUQvTlNfRU5VTV9ERVBSRUNBVEVELwotICAgICAgICAgICAgLWUgcy9eV0tfQ0xB
U1NfQVZBSUxBQkxFL05TX0NMQVNTX0FWQUlMQUJMRS8KLSAgICAgICAgICAgIC1lIHMvXldLX0NM
QVNTX0RFUFJFQ0FURUQvTlNfQ0xBU1NfREVQUkVDQVRFRC8KKyAgICAgICAgICAgIC1lIHMvV0tf
QVBJX0FWQUlMQUJMRS9BUElfQVZBSUxBQkxFLworICAgICAgICAgICAgLWUgcy9XS19BUElfREVQ
UkVDQVRFRC9BUElfREVQUkVDQVRFRC8KKyAgICAgICAgICAgIC1lICJzL15XS19DTEFTU19BVkFJ
TEFCTEUvV0tfRVhURVJOIEFQSV9BVkFJTEFCTEUvIgorICAgICAgICAgICAgLWUgInMvXldLX0NM
QVNTX0RFUFJFQ0FURUQvV0tfRVhURVJOIEFQSV9ERVBSRUNBVEVELyIKICAgICAgICAgKQogICAg
IGVsc2UKLSAgICAgICAgU0VEX09QVElPTlMrPSgtZSAncy9XS18oQ0xBU1NffEVOVU1fKT9BVkFJ
TEFCTEUoX0lPU3xfTUFDKT9cKFteXCldK1wpLy9nJyAtZSAncy9XS18oQ0xBU1NffEVOVU1fKT9E
RVBSRUNBVEVEXChbXlwpXStcKS8vZycpCisgICAgICAgIFNFRF9PUFRJT05TKz0oLWUgJ3MvV0tf
KEFQSV98Q0xBU1NfKUFWQUlMQUJMRVwoLipcKVxzKlwpLy9nJyAtZSAncy9XS18oQVBJX3xDTEFT
U18pREVQUkVDQVRFRChfV0lUSF9SRVBMQUNFTUVOVCk/XCguKlwpXHMqXCkvL2cnKQogICAgIGZp
CiAKICAgICBTRURfT1BUSU9OUys9KCR7T1RIRVJfU0VEX09QVElPTlNbKl19KQpAQCAtODAsNyAr
NzgsNyBAQCBmdW5jdGlvbiByZXdyaXRlX2hlYWRlcnMgKCkgewogICAgIGZvciBIRUFERVJfUEFU
SCBpbiAiJHsxfS8iKi5oOyBkbwogICAgICAgICBpZiBbWyAiJEhFQURFUl9QQVRIIiAtbnQgJFRJ
TUVTVEFNUF9QQVRIIF1dOyB0aGVuCiAgICAgICAgICAgICBkaXR0byAiJHtIRUFERVJfUEFUSH0i
ICIke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IgotICAgICAgICAgICAgc2Vk
IC1pIC50bXAgLUUgJHtTRURfT1BUSU9OU1sqXX0gIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURF
Ul9QQVRIIyMqL30iIHx8IGV4aXQgJD8KKyAgICAgICAgICAgIHNlZCAtaSAudG1wIC1FICIke1NF
RF9PUFRJT05TW0BdfSIgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30iIHx8
IGV4aXQgJD8KICAgICAgICAgICAgIG12ICIke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFU
SCMjKi99IiAiJEhFQURFUl9QQVRIIgogICAgICAgICBmaQogICAgIGRvbmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282621</attachid>
            <date>2016-07-01 18:00:50 -0700</date>
            <delta_ts>2016-07-02 23:30:01 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>modern-api-macros.diff</filename>
            <type>text/plain</type>
            <size>130189</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktp
dC54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNTksMyArNTksNyBAQCBJTlNUQUxMSERSU19T
Q1JJUFRfUEhBU0UgPSBZRVM7CiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJ
U0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lO
R19ESVNBQkxFRF9tYWNvc3hfJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBXS19GUkFNRVdP
UktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDEwMDAgPSBZRVM7CiBX
S19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDExMDAg
PSBZRVM7CisKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2Rr
PWVtYmVkZGVkKl0gPSAkKFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJM
RURfJChQTEFURk9STV9OQU1FKSk7CitXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5H
X0RJU0FCTEVEX2lwaG9uZW9zW3Nkaz1pcGhvbmVvczkqXSA9IFlFUzsKK1dLX0ZSQU1FV09SS19I
RUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURfaXBob25lb3Nbc2RrPWlwaG9uZW9zaW11bGF0
b3I5Kl0gPSBZRVM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0SGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5oCShyZXZpc2lvbiAyMDI3NTkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVE
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEhhbmRs
ZSA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIEBlbmQKIApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLRm91bmRhdGlvbi5oCShyZXZpc2lvbiAyMDI3NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLRm91bmRhdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MiwxMiArNDIsMTAgQEAKIAogI2lmbmRlZiBXS19GUkFNRVdPUktfSEVB
REVSX1BPU1RQUk9DRVNTSU5HX0VOQUJMRUQKIAotI2RlZmluZSBXS19BVkFJTEFCTEUoX21hYywg
X2lvcykKLSNkZWZpbmUgV0tfQ0xBU1NfQVZBSUxBQkxFKF9tYWMsIF9pb3MpIF9fYXR0cmlidXRl
X18oKHZpc2liaWxpdHkgKCJkZWZhdWx0IikpKQotI2RlZmluZSBXS19ERVBSRUNBVEVEKF9tYWNJ
bnRybywgX21hY0RlcCwgX2lvc0ludHJvLCBfaW9zRGVwLCAuLi4pIF9fYXR0cmlidXRlX18oKGRl
cHJlY2F0ZWQoX19WQV9BUkdTX18pKSkKLSNkZWZpbmUgV0tfQ0xBU1NfREVQUkVDQVRFRChfbWFj
SW50cm8sIF9tYWNEZXAsIF9pb3NJbnRybywgX2lvc0RlcCwgLi4uKSBfX2F0dHJpYnV0ZV9fKCh2
aXNpYmlsaXR5KCJkZWZhdWx0IikpKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9fVkFfQVJH
U19fKSkpCi0jZGVmaW5lIFdLX0VOVU1fQVZBSUxBQkxFKF9tYWMsIF9pb3MpCi0jZGVmaW5lIFdL
X0VOVU1fQVZBSUxBQkxFX0lPUyhfaW9zKQotI2RlZmluZSBXS19FTlVNX0RFUFJFQ0FURUQoX21h
Y0ludHJvLCBfbWFjRGVwLCBfaW9zSW50cm8sIF9pb3NEZXAsIC4uLikgX19hdHRyaWJ1dGVfXygo
ZGVwcmVjYXRlZChfX1ZBX0FSR1NfXykpKQorI2RlZmluZSBXS19BUElfQVZBSUxBQkxFKC4uLikK
KyNkZWZpbmUgV0tfQ0xBU1NfQVZBSUxBQkxFKC4uLikgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0
eSgiZGVmYXVsdCIpKSkgV0tfQVBJX0FWQUlMQUJMRShfX1ZBX0FSR1NfXykKKyNkZWZpbmUgV0tf
QVBJX0RFUFJFQ0FURUQoX21lc3NhZ2UsIC4uLikgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZChf
bWVzc2FnZSkpKQorI2RlZmluZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKF9y
ZXBsYWNlbWVudCwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKCJ1c2UgIiAjX3JlcGxh
Y2VtZW50KSkpCisjZGVmaW5lIFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVChf
cmVwbGFjZW1lbnQsIC4uLikgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkg
X19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCgidXNlICIgI19yZXBsYWNlbWVudCkpKQogCiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1l
SGFuZGxlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Q29jb2EvX1dLRnJhbWVIYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAog
CiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIF9XS0ZyYW1lSGFuZGxlIDogTlNPYmplY3QgPE5TQ29weWluZywgTlNTZWN1
cmVDb2Rpbmc+CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2Ev
X1dLSGl0VGVzdFJlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQ29jb2EvX1dLSGl0VGVzdFJlc3VsdC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKQorV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSkKIEBpbnRlcmZhY2UgX1dLSGl0VGVzdFJlc3VsdCA6IE5TT2Jq
ZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkg
TlNVUkwgKmFic29sdXRlSW1hZ2VVUkw7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0NvY29hL19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmgJKHJldmlz
aW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3Rl
T2JqZWN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgOiBOU09iamVjdAogCiArIChpbnN0YW5j
ZXR5cGUpcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOihQcm90b2NvbCAqKXByb3Rv
Y29sOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29j
b2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBjbGFzcyBfV0tSZW1vdGVPYmplY3RJbnRl
cmZhY2U7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpcmVnaXN0ZXJFeHBvcnRlZE9iamVjdDooaWQp
b2JqZWN0IGludGVyZmFjZTooX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICopaW50ZXJmYWNlOwpJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQcm9ncmVz
c0V2ZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2Ev
X1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwxMiArMjksMTIgQEAKIAogdHlwZWRlZiBOU19PUFRJT05TKE5T
VUludGVnZXIsIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKSB7CiAgICAgX1dLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0ID0gMSA8PCAwLAotICAgIF9XS1JlbmRlcmluZ1Byb2dy
ZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgV0tfRU5VTV9BVkFJTEFCTEUoMTBf
MTEsIDlfMCkgPSAxIDw8IDEsCisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKSA9IDEgPDwgMSwKICAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludFdp
dGhTaWduaWZpY2FudEFyZWEgPSAxIDw8IDIsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVu
dFJlYWNoZWRTZXNzaW9uUmVzdG9yYXRpb25SZW5kZXJUcmVlU2l6ZVRocmVzaG9sZCBXS19FTlVN
X0FWQUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEgPDwgMywKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVz
c0V2ZW50Rmlyc3RMYXlvdXRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19F
TlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEgPDwgNCwKLSAgICBfV0tSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50Rmlyc3RQYWludEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdL
X0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApID0gMSA8PCA1LAotICAgIF9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRGaXJzdFBhaW50IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApID0gMSA8
PCA2LAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKKyAgICBfV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50UmVhY2hlZFNlc3Npb25SZXN0b3JhdGlvblJlbmRlclRyZWVTaXplVGhyZXNo
b2xkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCAzLAor
ICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dEFmdGVyU3VwcHJlc3NlZElu
Y3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpID0gMSA8PCA0LAorICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50QWZ0
ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDUsCisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVu
dEZpcnN0UGFpbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAx
IDw8IDYsCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgJKHJldmlzaW9uIDIwMjc1
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLU2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNiBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tTYW1lRG9jdW1lCiAgICAgX1dLU2FtZURvY3VtZW50TmF2aWdh
dGlvblR5cGVTZXNzaW9uU3RhdGVQdXNoLAogICAgIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlU2Vzc2lvblN0YXRlUmVwbGFjZSwKICAgICBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZVNlc3Npb25TdGF0ZVBvcCwKLX0gV0tfQVZBSUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJk
TGlzdC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcg
QEAKICAqLwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBA
aW50ZXJmYWNlIFdLQmFja0ZvcndhcmRMaXN0IDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFjdCBU
aGUgY3VycmVudCBpdGVtLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRM
aXN0SXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgKi8KIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW0gOiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFW
QUlMQUJMRTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaAkocmV2aXNpb24g
MjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogQHBy
b3RvY29sIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlOwogQHByb3RvY29sIFdLQnJvd3Np
bmdDb250ZXh0UG9saWN5RGVsZWdhdGU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8w
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFj
ZSBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgOiBOU09iamVjdAogCiAjcHJhZ21hIG1hcmsg
RGVsZWdhdGVzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0R3JvdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaAkocmV2aXNpb24gMjAyNzU5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlvblRp
bWUuaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0
R3JvdXAgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0aElkZW50aWZpZXI6KE5TU3RyaW5nICop
aWRlbnRpZmllcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tD
b25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NyArMzgsNyBAQAogCiBAZW5kCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0Nv
bm5lY3Rpb24gOiBOU09iamVjdAogCiAtICh2b2lkKXNlbmRNZXNzYWdlV2l0aE5hbWU6KE5TU3Ry
aW5nICopbWVzc2FnZU5hbWUgYm9keTooaWQpbWVzc2FnZUJvZHk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAkocmV2aXNpb24gMjAyNzU5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIC8qISBA
Y29uc3RhbnQgV0tFcnJvckRvbWFpbiBJbmRpY2F0ZXMgYSBXZWJLaXQgZXJyb3IuICovCi1XS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS0Vycm9yRG9tYWluIFdLX0FWQUlMQUJMRSgxMF8xMCwg
OF8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLRXJyb3JEb21haW4gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBAZW51bSBXS0Vycm9yQ29k
ZQogIEBhYnN0cmFjdCBDb25zdGFudHMgdXNlZCBieSBOU0Vycm9yIHRvIGluZGljYXRlIGVycm9y
cyBpbiB0aGUgV2ViS2l0IGRvbWFpbi4KQEAgLTQ3LDggKzQ3LDggQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgV0tFcnJvckNvZGUpIAogICAgIFdLRXJyb3JXZWJDb250ZW50UHJvY2Vzc1Rl
cm1pbmF0ZWQsCiAgICAgV0tFcnJvcldlYlZpZXdJbnZhbGlkYXRlZCwKICAgICBXS0Vycm9ySmF2
YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkLAotICAgIFdLRXJyb3JKYXZhU2NyaXB0UmVzdWx0VHlw
ZUlzVW5zdXBwb3J0ZWQgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCksCi19IFdLX0VOVU1f
QVZBSUxBQkxFKDEwXzEwLCA4XzApOworICAgIFdLRXJyb3JKYXZhU2NyaXB0UmVzdWx0VHlwZUlz
VW5zdXBwb3J0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSksCit9
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiBOU19BU1NVTUVf
Tk9OTlVMTF9FTkQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Vycm9yUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywyNyArMjcsMjcgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLVdLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS0xlZ2FjeUVycm9yRG9tYWluIFdLX0FWQUlMQUJMRSgxMF8xMSwg
OF8zKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0xlZ2FjeUVycm9yRG9tYWluIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDguMykpOwogCiB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tMZWdhY3lFcnJvckNvZGUpIHsKLSAgICBfV0tFcnJvckNvZGVGcmFt
ZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5
XzApID0gMTAyLAorICAgIF9XS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQb2xpY3lD
aGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAxMDIsCiAg
ICAgX1dLTGVnYWN5RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCA9IDIwNCwKLX0gV0tfRU5VTV9B
VkFJTEFCTEUoMTBfMTEsIDhfMyk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwg
aW9zKDguMykpOwogCiAvKiEgQGNvbnN0YW50IF9XS0phdmFTY3JpcHRFeGNlcHRpb25NZXNzYWdl
RXJyb3JLZXkgS2V5IGluIHVzZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNlcHRpb24gbWVz
c2FnZSAoYXMgYW4gTlNTdHJpbmcpIGZvciBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3Vy
cmVkIGVycm9ycy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRF
eGNlcHRpb25NZXNzYWdlRXJyb3JLZXkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1l
c3NhZ2VFcnJvcktleSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogLyohIEBjb25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTGluZU51
bWJlckVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcKICB0aGUgZXhjZXB0aW9u
IGxpbmUgbnVtYmVyIChhcyBhbiBOU051bWJlcikgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0
aW9uT2NjdXJyZWQgZXJyb3JzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2
YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJFcnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0
RXhjZXB0aW9uTGluZU51bWJlckVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGNvbnN0YW50IF9XS0phdmFTY3JpcHRF
eGNlcHRpb25Db2x1bW5OdW1iZXJFcnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVwcmVzZW50aW5n
CiAgdGhlIGV4Y2VwdGlvbiBjb2x1bW4gbnVtYmVyIChhcyBhbiBOU051bWJlcikgZm9yIFdLRXJy
b3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAqLwotV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlckVycm9yS2V5IFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Db2x1bW5OdW1iZXJFcnJvcktleSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLyohIEBj
b25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uU291cmNlVVJMRXJyb3JLZXkgS2V5IGluIHVz
ZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNlcHRpb24gc291cmNlIFVSTCAoYXMgYW4gTlNV
UkwpIGZvciBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIGVycm9ycy4gKi8KLVdL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxF
cnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uU291cmNlVVJMRXJyb3JLZXkg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1l
SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tGcmFtZUluZm8uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3
IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQog
QGludGVyZmFjZSBXS0ZyYW1lSW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIC8qISBAYWJz
dHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgZnJhbWUgaXMgdGhl
IG1haW4gZnJhbWUKQEAgLTUxLDcgKzUxLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIGZyYW1lJ3MgY3VycmVudCBzZWN1cml0eSBvcmlnaW4u
CiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tTZWN1cml0eU9yaWdpbiAq
c2VjdXJpdHlPcmlnaW4gV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBXS1NlY3VyaXR5T3JpZ2luICpzZWN1cml0eU9yaWdpbiBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQGVuZAogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Q
cml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDcgQEAKIAogQGludGVyZmFjZSBXS0ZyYW1lSW5mbyAoV0tQcml2YXRlKQogCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIHN0cm9uZykgX1dLRnJhbWVIYW5kbGUgKl9oYW5kbGUgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBzdHJvbmcpIF9XS0ZyYW1lSGFuZGxlICpfaGFuZGxlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJz
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1By
aXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMjYgKzMwLDI2IEBACiAjaW1wb3J0IDxGb3Vu
ZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lm
aWVycy5oPgogCi1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyQ29weSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQ29weUlt
YWdlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5TGluayBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyRG93bmxvYWRJbWFnZSBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29u
c3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyRG93bmxvYWRMaW5rZWRGaWxlIFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBfV0tNZW51SXRlbUlkZW50aWZpZXJHb0JhY2sgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdL
X0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVt
SWRlbnRpZmllckdvRm9yd2FyZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
SW5zcGVjdEVsZW1lbnQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckxvb2tV
cCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkZyYW1lSW5OZXdXaW5k
b3cgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5JbWFnZUluTmV3V2lu
ZG93IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuTGluayBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkxpbmtJbk5ld1dpbmRvdyBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUGFzdGUgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01l
bnVJdGVtSWRlbnRpZmllclJlbG9hZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyU2VhcmNoV2ViIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTaG93SGlk
ZU1lZGlhQ29udHJvbHMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclRvZ2ds
ZUZ1bGxTY3JlZW4gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckNvcHkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQ29weUlt
YWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmll
ckNvcHlMaW5rIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllckRvd25sb2FkSW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyRG93bmxvYWRMaW5rZWRGaWxlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0
cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckdvQmFjayBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJHb0ZvcndhcmQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVySW5zcGVjdEVsZW1l
bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
TG9va1VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
Zmllck9wZW5GcmFtZUluTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0
IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5JbWFnZUluTmV3V2luZG93IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JU
IGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rSW5O
ZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVyUGFzdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyUmVsb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJ
dGVtSWRlbnRpZmllclNlYXJjaFdlYiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBf
V0tNZW51SXRlbUlkZW50aWZpZXJTaG93SGlkZU1lZGlhQ29udHJvbHMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyVG9nZ2xlRnVsbFNjcmVlbiBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAot
V0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNo
YXJlTWVudSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVudSBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hhcmVNZW51IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4
dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNwZWVjaE1lbnUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3
IEBACiAgYWxzbyBwYXNzZWQgdG8gdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUgbWV0aG9kcywgdG8g
dW5pcXVlbHkgaWRlbnRpZnkgYSB3ZWJwYWdlCiAgbG9hZCBmcm9tIHN0YXJ0IHRvIGZpbmlzaC4K
ICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvbiA6IE5TT2Jq
ZWN0CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tO
YXZpZ2F0aW9uQWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtNTMsMTIgKzUzLDEyIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IFdLTmF2aWdhdGlvblQKICAgICBXS05hdmlnYXRpb25UeXBlUmVsb2FkLAogICAgIFdLTmF2aWdh
dGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQsCiAgICAgV0tOYXZpZ2F0aW9uVHlwZU90aGVyID0gLTEs
Ci19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogLyohIAogQSBXS05hdmlnYXRpb25BY3Rpb24gb2Jq
ZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGFuIGFjdGlvbiB0aGF0IG1heSBjYXVzZSBh
IG5hdmlnYXRpb24sIHVzZWQgZm9yIG1ha2luZyBwb2xpY3kgZGVjaXNpb25zLgogICovCi1XS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uQWN0aW9uIDogTlNPYmplY3QK
IAogLyohIEBhYnN0cmFjdCBUaGUgZnJhbWUgcmVxdWVzdGluZyB0aGUgbmF2aWdhdGlvbi4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9u
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDEwIEBACiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TVVJMICpfb3JpZ2luYWxVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGdldHRlcj1faXNVc2VySW5pdGlhdGVkKSBCT09MIF91c2VySW5pdGlhdGVkOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9jYW5IYW5kbGVSZXF1ZXN0Owot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJuYWxT
Y2hlbWVzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkFwcExpbmtzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8w
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkV4dGVy
bmFsU2NoZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkFwcExpbmtzIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHMgV0tfREVQUkVD
QVRFRCgxMF8xMSwgMTBfMTEsIDlfMCwgOV8wLCAidXNlIF9zaG91bGRPcGVuRXh0ZXJuYWxTY2hl
bWVzIGFuZCBfc2hvdWxkT3BlbkFwcExpbmtzIik7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHMgV0tfQVBJX0RFUFJFQ0FURUQoInVz
ZSBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBhbmQgX3Nob3VsZE9wZW5BcHBMaW5rcyIsIG1h
Y29zeCgxMC4xMSwgMTAuMTEpLCBpb3MoOS4wLCA5LjApKTsKIAogQGVuZAogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRhdGEuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRh
dGEuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAK
IAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KQogQGludGVyZmFjZSBXS05hdmlnYXRpb25EYXRhIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChy
ZWFkb25seSkgTlNTdHJpbmcgKnRpdGxlOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAkocmV2aXNp
b24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25EZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3kpIHsKICAgICBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwsCiAgICAg
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEw
LCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAog
LyohIEBlbnVtIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5CiAgQGFic3RyYWN0IFRoZSBwb2xp
Y3kgdG8gcGFzcyBiYWNrIHRvIHRoZSBkZWNpc2lvbiBoYW5kbGVyIGZyb20gdGhlIHdlYlZpZXc6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjogbWV0aG9k
LgpAQCAtNTUsNyArNTUsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRp
b25BCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGlj
eSkgewogICAgIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5Q2FuY2VsLAogICAgIFdLTmF2aWdh
dGlvblJlc3BvbnNlUG9saWN5QWxsb3csCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzAp
OworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogLyohIEEg
Y2xhc3MgY29uZm9ybWluZyB0byB0aGUgV0tOYXZpZ2F0aW9uRGVsZWdhdGUgcHJvdG9jb2wgY2Fu
IHByb3ZpZGUKICBtZXRob2RzIGZvciB0cmFja2luZyBwcm9ncmVzcyBmb3IgbWFpbiBmcmFtZSBu
YXZpZ2F0aW9ucyBhbmQgZm9yIGRlY2lkaW5nCkBAIC0xNDIsNyArMTQyLDcgQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUgogLyohIEBhYnN0cmFjdCBJbnZva2VkIHdo
ZW4gdGhlIHdlYiB2aWV3J3Mgd2ViIGNvbnRlbnQgcHJvY2VzcyBpcyB0ZXJtaW5hdGVkLgogIEBw
YXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyB3aG9zZSB1bmRlcmx5aW5nIHdlYiBjb250ZW50IHBy
b2Nlc3Mgd2FzIHRlcm1pbmF0ZWQuCiAgKi8KLS0gKHZvaWQpd2ViVmlld1dlYkNvbnRlbnRQcm9j
ZXNzRGlkVGVybWluYXRlOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKTsKKy0gKHZvaWQpd2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlOihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkp
OwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tO
YXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNp
b24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmln
YXRpb25EZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAog
I2lmIFdLX0FQSV9FTkFCTEVECiAKIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3kgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2FkID0gKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeSkoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cgKyAxKTsKLXN0YXRpYyBjb25z
dCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApIF9XS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rID0gKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSkoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cgKyAyKTsKK3N0
YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTEpLCBpb3MoOS4wKSkgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93V2l0aG91
dFRyeWluZ0FwcExpbmsgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3lBbGxvdyArIDIpOwogCiBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9u
c2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYWQgPSAoV0tO
YXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QWxsb3cg
KyAxKTsKIApAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9u
c2VQb2xpY3kgCiAvLyBPbmx5IGNhbGxlZCBpZiBob3cgdGhlIGdlc3R1cmUgd2lsbCBlbmQgKHdp
dGggb3Igd2l0aG91dCBuYXZpZ2F0aW9uKSBpcyBrbm93biBiZWZvcmUgaXQgZW5kcy4KIC0gKHZv
aWQpX3dlYlZpZXdXaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmU6KFdLV2ViVmlldyAqKXdlYlZpZXcg
d2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRl
bSAqKWl0ZW07CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxTbmFw
c2hvdEJhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW07Ci0t
ICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2
b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDooV0tXZWJWaWV3
ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkU3RhcnRMb2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFt
ZVdpdGhGaWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZSB1dGk6KE5TU3RyaW5nICopdXRpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNw
b25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uUmVzcG9uc2UuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSw3ICszNSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIC8qISBDb250
YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIG5hdmlnYXRpb24gcmVzcG9uc2UsIHVzZWQgZm9yIG1h
a2luZyBwb2xpY3kgZGVjaXNpb25zLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZh
Y2UgV0tOYXZpZ2F0aW9uUmVzcG9uc2UgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IEEgQm9v
bGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZyYW1lIGJlaW5nIG5hdmlnYXRlZCBp
cyB0aGUgbWFpbiBmcmFtZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjAy
NzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBh
cmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogCiAvKiEgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzIGNvbnRhaW5zIHBhcmFtZXRl
cnMgdGhhdCBhIGZpbGUgdXBsb2FkIGNvbnRyb2wgaGFzIHNwZWNpZmllZC4KICAqLwotV0tfQ0xB
U1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSkKIEBpbnRlcmZhY2UgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzIDogTlNPYmplY3QK
IAogLyohIEBhYnN0cmFjdCBXaGV0aGVyIHRoZSBmaWxlIHVwbG9hZCBjb250cm9sIHN1cHBvcnRz
IG11bHRpcGxlIGZpbGVzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBACiAgdmlldy4gVGhlIHByZWZlcmVuY2VzIG9iamVjdCBhc3NvY2lh
dGVkIHdpdGggYSB3ZWIgdmlldyBpcyBzcGVjaWZpZWQgYnkKICBpdHMgd2ViIHZpZXcgY29uZmln
dXJhdGlvbi4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLUHJlZmVyZW5j
ZXMgOiBOU09iamVjdCA8TlNDb2Rpbmc+CiAKIC8qISBAYWJzdHJhY3QgVGhlIG1pbmltdW0gZm9u
dCBzaXplIGluIHBvaW50cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1By
aXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTYgKzM1LDE2IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS1N0b3JhZ2VCbG8KICAgICBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lB
bGxvd0FsbCwKICAgICBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9ja1RoaXJkUGFydHksCiAg
ICAgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QmxvY2tBbGwsCi19IFdLX0VOVU1fQVZBSUxBQkxF
KDEwXzEwLCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KTsKIAogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0RlYnVnT3ZlcmxheVJlZ2lv
bnMpIHsKICAgICBfV0tOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IDEgPDwgMCwKICAgICBfV0tX
aGVlbEV2ZW50SGFuZGxlclJlZ2lvbiA9IDEgPDwgMQotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAK
IHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tKYXZhU2NyaXB0UnVudGltZUZsYWdz
KSB7CiAgICAgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFnc0FsbEVuYWJsZWQgPSAwCi19IFdLX0VO
VU1fQVZBSUxBQkxFKDEwXzExLCA5XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKTsKIAogQGNsYXNzIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmU7CiAKQEAgLTU3
LDQwICs1Nyw0MCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLSmF2YVNjCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxl
OikgQk9PTCBfY29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZTopIEJPT0wgX2Nv
bXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTopIEJPT0wgX3RpbGVkU2Ny
b2xsaW5nSW5kaWNhdG9yVmlzaWJsZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZTopIEJPT0wgX3Jlc291cmNlVXNhZ2VPdmVybGF5
VmlzaWJsZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaXNpYmxlRGVidWdPdmVybGF5UmVnaW9uczopIF9XS0Rl
YnVnT3ZlcmxheVJlZ2lvbnMgX3Zpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zIFdLX0FWQUlMQUJM
RSgxMF8xMSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNpbXBsZUxp
bmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkOikgQk9PTCBfc2ltcGxlTGluZUxheW91dERlYnVn
Qm9yZGVyc0VuYWJsZWQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2FjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5h
YmxlZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4
dEF1dG9zaXppbmdFbmFibGVkOikgQk9PTCBfdGV4dEF1dG9zaXppbmdFbmFibGVkIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZTopIEJPT0wgX3Jlc291cmNlVXNhZ2VP
dmVybGF5VmlzaWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpc2libGVEZWJ1
Z092ZXJsYXlSZWdpb25zOikgX1dLRGVidWdPdmVybGF5UmVnaW9ucyBfdmlzaWJsZURlYnVnT3Zl
cmxheVJlZ2lvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3Jk
ZXJzRW5hYmxlZDopIEJPT0wgX3NpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wgX2FjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREaXNw
bGF5TGlzdERyYXdpbmdFbmFibGVkOikgQk9PTCBfZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRBdXRvc2l6aW5nRW5hYmxlZDopIEJP
T0wgX3RleHRBdXRvc2l6aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDopIEJPT0wgX2RldmVsb3BlckV4dHJhc0VuYWJsZWQg
V0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDopIEJPT0wgX2RldmVsb3BlckV4dHJhc0VuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFi
bGVkOikgQk9PTCBfbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgV0tfQVZB
SUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6KSBCT09MIF9sb2dzUGFnZU1lc3Nh
Z2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SGlkZGVuUGFn
ZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQ6KSBCT09MIF9oaWRkZW5QYWdlRE9NVGltZXJUaHJv
dHRsaW5nRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5n
QXV0b0luY3JlYXNlczopIEJPT0wgX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5j
cmVhc2VzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkOikgQk9PTCBfcGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVu
YWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQ6
KSBCT09MIF9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5jcmVh
c2VzOikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1
cHByZXNzaW9uRW5hYmxlZDopIEJPT0wgX3BhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd0ZpbGVB
Y2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMgV0tf
QVZBSUxBQkxFKDEwXzExLCA5XzApOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
SmF2YVNjcmlwdFJ1bnRpbWVGbGFnczopIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3MgX2phdmFT
Y3JpcHRSdW50aW1lRmxhZ3MgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBf
YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SmF2YVNjcmlw
dFJ1bnRpbWVGbGFnczopIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3MgX2phdmFTY3JpcHRSdW50
aW1lRmxhZ3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0YW5kYWxvbmU6LCBnZXR0ZXI9X2lzU3Rh
bmRhbG9uZSkgQk9PTCBfc3RhbmRhbG9uZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdGFuZGFsb25lOiwgZ2V0dGVyPV9pc1N0YW5k
YWxvbmUpIEJPT0wgX3N0YW5kYWxvbmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZDopIEJPT0wgX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCBXS19BVkFJTEFC
TEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREaWFnbm9z
dGljTG9nZ2luZ0VuYWJsZWQ6KSBCT09MIF9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldERlZmF1bHRGb250U2l6ZTopIE5TVUludGVnZXIgX2RlZmF1bHRGb250
U2l6ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0Rml4ZWRQaXRjaEZvbnRTaXplOikgTlNVSW50ZWdl
ciBfZGVmYXVsdEZpeGVkUGl0Y2hGb250U2l6ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRGaXhlZFBp
dGNoRm9udEZhbWlseTopIE5TU3RyaW5nICpfZml4ZWRQaXRjaEZvbnRGYW1pbHkgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0RGVmYXVsdEZvbnRTaXplOikgTlNVSW50ZWdlciBfZGVmYXVsdEZvbnRTaXplIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVmYXVsdEZpeGVkUGl0Y2hGb250U2l6ZTopIE5T
VUludGVnZXIgX2RlZmF1bHRGaXhlZFBpdGNoRm9udFNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSwgc2V0dGVyPV9zZXRGaXhlZFBpdGNoRm9udEZhbWlseTopIE5TU3RyaW5nICpfZml4ZWRQ
aXRjaEZvbnRGYW1pbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBjb25maWd1cmVkIG9uIHRo
ZSBXS1dlYnNpdGVEYXRhU3RvcmUuCiAvLyBGSVhNRTogVGhpcyBwcm9wZXJ0eSBzaG91bGQgbm90
IGhhdmUgdGhlIHZlcmIgImlzIiBpbiBpdC4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE9mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkOikgQk9PTCBfb2ZmbGluZUFwcGxp
Y2F0aW9uQ2FjaGVJc0VuYWJsZWQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRG
dWxsU2NyZWVuRW5hYmxlZDopIEJPT0wgX2Z1bGxTY3JlZW5FbmFibGVkIFdLX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxTY3JlZW5F
bmFibGVkOikgQk9PTCBfZnVsbFNjcmVlbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTEpLCBpb3MoOS4wKSk7CiAKLSsgKE5TQXJyYXk8X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAq
PiAqKV9leHBlcmltZW50YWxGZWF0dXJlcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7Ci0tIChCT09MKV9pc0VuYWJsZWRGb3JGZWF0dXJlOihfV0tFeHBlcmltZW50YWxGZWF0
dXJlICopZmVhdHVyZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2
b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZl
YXR1cmUgKilmZWF0dXJlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKysg
KE5TQXJyYXk8X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJl
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKEJPT0wpX2lzRW5hYmxlZEZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKilm
ZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JGZWF0dXJlOihfV0tFeHBl
cmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0uaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1ByZXZpZXdBY3Rpb25JdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAog
I2ltcG9ydCA8VUlLaXQvVUlWaWV3Q29udHJvbGxlci5oPgogCi1XS19BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpCitXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSkKIEBwcm90b2NvbCBX
S1ByZXZpZXdBY3Rpb25JdGVtIDxVSVByZXZpZXdBY3Rpb25JdGVtPgogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRp
ZmllcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVu
dGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw5ICszMCw5IEBACiAKICNpbXBvcnQgPEZv
dW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1By
ZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJB
KTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVyQWRkVG9SZWFkaW5nTGlzdCBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJDb3B5IFdL
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBX
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9T
X1RCQSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRl
bnRpZmllck9wZW4gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhURVJO
IE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRUb1JlYWRp
bmdMaXN0IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1By
ZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllclNoYXJlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1l
bnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogTlNfQVNTVU1FX05P
Tk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgV0tQcmV2aWV3RWxlbWVu
dEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIG51bGxhYmxlKSBOU1VSTCAqbGlua1VSTDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgJKHJldmlzaW9uIDIw
Mjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3Jv
dXAuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQAogCiBAZW5kCiAKLVdLX0NMQVNT
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQogQGludGVyZmFjZSBXS1Byb2Nlc3NHcm91cCA6IE5TT2JqZWN0CiAKIC0gKGlk
KWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLmgJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAgaW1wbGVt
ZW50YXRpb24tZGVmaW5lZCBwcm9jZXNzIGxpbWl0IGlzIHJlYWNoZWQ7IGFmdGVyIHRoYXQsIHdl
YiB2aWV3cwogIHdpdGggdGhlIHNhbWUgcHJvY2VzcyBwb29sIGVuZCB1cCBzaGFyaW5nIHdlYiBj
b250ZW50IHByb2Nlc3Nlcy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitX
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdL
UHJvY2Vzc1Bvb2wgOiBOU09iamVjdCA8TlNDb2Rpbmc+CiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQ
cml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMjMg
KzQzLDIzIEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbiAqX2NvbmZpZ3VyYXRpb247CiAKIC0gKHZvaWQpX3NldEFsbG93c1NwZWNp
ZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDoo
TlNTdHJpbmcgKilob3N0OwotLSAodm9pZClfc2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2
YWx1YXRpb246KEJPT0wpdmFsdWUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAodm9pZClf
c2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb246KEJPT0wpdmFsdWUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAtICh2b2lkKV9zZXRDb29raWVB
Y2NlcHRQb2xpY3k6KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3k7CiAKIC0gKGlkKV9v
YmplY3RGb3JCdW5kbGVQYXJhbWV0ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVyOwogLSAodm9pZClf
c2V0T2JqZWN0OihpZCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4pb2JqZWN0IGZvckJ1bmRs
ZVBhcmFtZXRlcjooTlNTdHJpbmcgKilwYXJhbWV0ZXI7CiAvLyBGSVhNRTogVGhpcyBzaG91bGQg
YmUgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkIDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29kaW5n
Pj4KLS0gKHZvaWQpX3NldE9iamVjdHNGb3JCdW5kbGVQYXJhbWV0ZXJzV2l0aERpY3Rpb25hcnk6
KE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOworLSAodm9pZClfc2V0T2JqZWN0c0ZvckJ1bmRsZVBhcmFtZXRlcnNXaXRoRGljdGlv
bmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHdl
YWssIHNldHRlcj1fc2V0RG93bmxvYWREZWxlZ2F0ZTopIGlkIDxfV0tEb3dubG9hZERlbGVnYXRl
PiBfZG93bmxvYWREZWxlZ2F0ZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9
X3NldEF1dG9tYXRpb25EZWxlZ2F0ZTopIGlkIDxfV0tBdXRvbWF0aW9uRGVsZWdhdGU+IF9hdXRv
bWF0aW9uRGVsZWdhdGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0QXV0b21hdGlvbkRlbGVnYXRlOikg
aWQgPF9XS0F1dG9tYXRpb25EZWxlZ2F0ZT4gX2F1dG9tYXRpb25EZWxlZ2F0ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogKyAoTlNVUkwg
Kilfd2Vic2l0ZURhdGFVUkxGb3JDb250YWluZXJXaXRoVVJMOihOU1VSTCAqKWNvbnRhaW5lclVS
TDsKICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVSTDooTlNVUkwg
Kiljb250YWluZXJVUkwgYnVuZGxlSWRlbnRpZmllcklmTm90SW5Db250YWluZXI6KE5TU3RyaW5n
ICopYnVuZGxlSWRlbnRpZmllcjsKIAotLSAodm9pZClfd2FybUluaXRpYWxQcm9jZXNzIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX2F1dG9tYXRpb25DYXBh
YmlsaXRpZXNEaWRDaGFuZ2UgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwot
LSAodm9pZClfc2V0QXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0
b21hdGlvblNlc3Npb24gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAo
dm9pZClfd2FybUluaXRpYWxQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfYXV0b21hdGlvbkNhcGFiaWxpdGllc0Rp
ZENoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX3NldEF1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lv
biAqKWF1dG9tYXRpb25TZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25s
eSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90
ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3M7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgJKHJldmlzaW9uIDIwMjc1OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IC8qISBBIFdLU2NyaXB0TWVzc2FnZSBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQg
YSBtZXNzYWdlIHNlbnQgZnJvbQogIGEgd2VicGFnZS4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLU2NyaXB0TWVzc2FnZSA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3Qg
VGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2lu
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAqLwogTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNlIFdLU2VjdXJpdHlPcmln
aW4gOiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tUeXBl
UmVmV3JhcHBlci5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyAr
MzAsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tCYXNlLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1R5cGVSZWZX
cmFwcGVyIDogTlNPYmplY3QKIAogLSAoaWQpaW5pdFdpdGhPYmplY3Q6KFdLVHlwZVJlZilvYmpl
Y3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcg
QEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICAgQGRpc2N1c3Npb24gWW91ciBhcHAgc2hvdWxk
IHJlbW92ZSB0aGUgd2ViIHZpZXcgZnJvbSB0aGUgdmlldyBoaWVyYXJjaHkgYW5kIHVwZGF0ZQog
ICB0aGUgVUkgYXMgbmVlZGVkLCBzdWNoIGFzIGJ5IGNsb3NpbmcgdGhlIGNvbnRhaW5pbmcgYnJv
d3NlciB0YWIgb3Igd2luZG93LgogICAqLwotLSAodm9pZCl3ZWJWaWV3RGlkQ2xvc2U6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAodm9pZCl3ZWJWaWV3
RGlkQ2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgRGlzcGxheXMgYSBKYXZhU2NyaXB0IGFs
ZXJ0IHBhbmVsLgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVs
ZWdhdGUgbWV0aG9kLgpAQCAtMTI5LDcgKzEyOSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAgVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGludm9rZWQgZm9yIGVsZW1lbnRzIHRoYXQgaGF2
ZSBkZWZhdWx0IHByZXZpZXcgaW4gV2ViS2l0LCB3aGljaCBpcwogIGxpbWl0ZWQgdG8gbGlua3Mu
IEluIHRoZSBmdXR1cmUsIGl0IGNvdWxkIGJlIGludm9rZWQgZm9yIGFkZGl0aW9uYWwgZWxlbWVu
dHMuCiAgKi8KLS0gKEJPT0wpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRQcmV2
aWV3RWxlbWVudDooV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BVkFJTEFC
TEUoTkEsIFdLX0lPU19UQkEpOworLSAoQk9PTCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNob3VsZFByZXZpZXdFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZv
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogLyohIEBhYnN0cmFjdCBBbGxv
d3MgeW91ciBhcHAgdG8gcHJvdmlkZSBhIGN1c3RvbSB2aWV3IGNvbnRyb2xsZXIgdG8gc2hvdyB3
aGVuIHRoZSBnaXZlbiBlbGVtZW50IGlzIHBlZWtlZC4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2Vi
IHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KQEAgLTE0NCwxMyArMTQ0LDEzIEBA
IE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgUmV0dXJuaW5nIG5pbCB3aWxsIHJlc3VsdCBpbiBX
ZWJLaXQncyBkZWZhdWx0IHByZXZpZXcgYmVoYXZpb3IuIHdlYlZpZXc6Y29tbWl0UHJldmlld2lu
Z1ZpZXdDb250cm9sbGVyOiB3aWxsIG9ubHkgYmUgaW52b2tlZAogIGlmIGEgbm9uLW5pbCB2aWV3
IGNvbnRyb2xsZXIgd2FzIHJldHVybmVkLgogICovCi0tIChudWxsYWJsZSBVSVZpZXdDb250cm9s
bGVyICopd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRyb2xs
ZXJGb3JFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGRlZmF1bHRB
Y3Rpb25zOihOU0FycmF5PGlkIDxXS1ByZXZpZXdBY3Rpb25JdGVtPj4gKilwcmV2aWV3QWN0aW9u
cyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworLSAobnVsbGFibGUgVUlWaWV3Q29udHJv
bGxlciAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld2luZ1ZpZXdDb250cm9s
bGVyRm9yRWxlbWVudDooV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBkZWZhdWx0
QWN0aW9uczooTlNBcnJheTxpZCA8V0tQcmV2aWV3QWN0aW9uSXRlbT4+ICopcHJldmlld0FjdGlv
bnMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGFic3RyYWN0IEFs
bG93cyB5b3VyIGFwcCB0byBwb3AgdG8gdGhlIHZpZXcgY29udHJvbGxlciBpdCBjcmVhdGVkLgog
IEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9k
LgogIEBwYXJhbSBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgVGhlIHZpZXcgY29udHJvbGxlciB0
aGF0IGlzIGJlaW5nIHBvcHBlZC4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAq
KXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwor
LSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3
Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKICNlbmRpZiAvLyBUQVJHRVRfT1Nf
SVBIT05FCiAKQEAgLTE2NCw3ICsxNjQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiAg
SWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QsIHRoZSB3ZWIgdmlldyB3aWxsIGJl
aGF2ZSBhcyBpZiB0aGUgdXNlciBzZWxlY3RlZCB0aGUgQ2FuY2VsIGJ1dHRvbi4KICAqLwotLSAo
dm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bk9wZW5QYW5lbFdpdGhQYXJhbWV0
ZXJzOihXS09wZW5QYW5lbFBhcmFtZXRlcnMgKilwYXJhbWV0ZXJzIGluaXRpYXRlZEJ5RnJhbWU6
KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8
TlNVUkwgKj4gKiBfTnVsbGFibGUgVVJMcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIE5BKTsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBy
dW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyczooV0tPcGVuUGFuZWxQYXJhbWV0ZXJzICopcGFyYW1l
dGVycyBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShOU0FycmF5PE5TVVJMICo+ICogX051bGxhYmxlIFVSTHMpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAogI2VuZGlm
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBj
b3B5KQpAQCAtNTMsMzMgKzUzLDMzIEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0gKHZvaWQp
X3dlYlZpZXdDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXdGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0tICh2b2lkKV93
ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJM
RSgxMF8xMSwgOF8zKTsKLS0gKHZvaWQpX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoMTBfMTEsIDhfMyk7CistICh2b2lkKV93ZWJWaWV3
RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjExKSwgaW9zKDguMykpOworLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2Ny
ZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwg
aW9zKDguMykpOwogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGltYWdl
T3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29u
dGV4dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBp
bWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkOihDR1NpemUpc2l6ZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TRGljdGlvbmFy
eSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAj
aWYgVEFSR0VUX09TX0lQSE9ORQotLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAoQk9PTClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVt
ZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShp
b3MoOV8wKSk7CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWN0
aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBkZWZhdWx0
QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopZGVmYXVsdEFjdGlvbnM7CiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5vdEhhbmRsZVRhcEFzQ2xp
Y2tBdFBvaW50OihDR1BvaW50KXBvaW50OwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBzaG91bGRSZXF1ZXN0R2VvbG9jYXRpb25BdXRob3JpemF0aW9uRm9yVVJMOihOU1VS
TCAqKXVybCBpc01haW5GcmFtZTooQk9PTClpc01haW5GcmFtZSBtYWluRnJhbWVVUkw6KE5TVVJM
ICopbWFpbkZyYW1lVVJMOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1cmwgV0tf
QVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjb21taXRQcmV2aWV3ZWRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZp
ZXdlZFZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6KE5TVVJMICop
aW1hZ2VVUkwgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdpdGhVUkw6KE5TVVJMICopaW1hZ2VV
UkwgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVy
ICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgY29tbWl0dGluZzooQk9PTCljb21taXR0aW5nIFdL
X0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXBy
ZXZpZXdlZFZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKEJPT0wpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDooX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RC
QSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFsdGVybmF0ZUFjdGlv
bkZvclVSTDooTlNVUkwgKil1cmwgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLS0gKE5T
QXJyYXkgKilfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0tIChOU1VJbnRlZ2VyKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGluZGV4SW50b0F0dGFjaG1lbnRMaXN0Rm9yRWxlbWVudDooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7
Ci0tIChVSUVkZ2VJbnNldHMpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZmluYWxPYnNj
dXJlZEluc2V0c0ZvclNjcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZl
bG9jaXR5OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlub3V0IENHUG9p
bnQgKil0YXJnZXRDb250ZW50T2Zmc2V0IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKFVJVmll
d0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0Nv
bnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0Vs
ZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKFVJVmlld0NvbnRy
b2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xs
ZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0Fy
cmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6ZSBX
S19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3ByZXNlbnRpbmdW
aWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxF
KE5BLCBXS19JT1NfVEJBKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBjb21taXRQcmV2aWV3ZWRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAq
KXByZXZpZXdlZFZpZXdDb250cm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsUHJldmlld0ltYWdlV2l0aFVS
TDooTlNVUkwgKilpbWFnZVVSTCBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkSW1hZ2VXaXRoVVJM
OihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9s
bGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgY29tbWl0dGlu
ZzooQk9PTCljb21taXR0aW5nIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9s
bGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FW
QUlMQUJMRShpb3MoOV8wKSk7CistIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxl
bWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFsdGVybmF0ZUFjdGlvbkZvclVSTDooTlNVUkwgKil1cmwg
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNBcnJheSAqKV9hdHRhY2ht
ZW50TGlzdEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOworLSAoTlNVSW50ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBpbmRleEludG9BdHRhY2htZW50TGlzdEZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistIChV
SUVkZ2VJbnNldHMpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZmluYWxPYnNjdXJlZElu
c2V0c0ZvclNjcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5
OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlub3V0IENHUG9pbnQgKil0
YXJnZXRDb250ZW50T2Zmc2V0IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAoVUlWaWV3
Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29u
dHJvbGxlckZvclVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxl
bWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvICopZWxlbWVudEluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistIChVSVZpZXdD
b250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250
cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczoo
TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBpbWFnZVNpemU6KENHU2l6ZSlpbWFnZVNp
emUgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistIChVSVZpZXdDb250cm9sbGVyICopX3By
ZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2Vsc2UKLS0gKE5TTWVudSAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVs
ZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBOQSk7Ci0tIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5m
byBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOworLSAoTlNNZW51ICopX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDoo
X1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSkpOworLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4dE1lbnVF
bGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4pdXNlcklu
Zm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKIEBlbmQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENv
bnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
IFRoZSB1c2VyIGNvbnRlbnQgY29udHJvbGxlciBhc3NvY2lhdGVkIHdpdGggYSB3ZWIgdmlldyBp
cyBzcGVjaWZpZWQgYnkgaXRzCiAgd2ViIHZpZXcgY29uZmlndXJhdGlvbi4KICAqLwotV0tfQ0xB
U1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLVXNlckNvbnRlbnRDb250cm9sbGVyIDogTlNPYmpl
Y3QgPE5TQ29kaW5nPgogCiAvKiEgQGFic3RyYWN0IFRoZSB1c2VyIHNjcmlwdHMgYXNzb2NpYXRl
ZCB3aXRoIHRoaXMgdXNlciBjb250ZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDE4ICszNCwxOCBAQAogCiBAaW50ZXJmYWNlIFdLVXNlckNvbnRlbnRDb250cm9s
bGVyIChXS1ByaXZhdGUpCiAKLS0gKHZvaWQpX3JlbW92ZVVzZXJTY3JpcHQ6KFdLVXNlclNjcmlw
dCAqKXVzZXJTY3JpcHQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAo
dm9pZClfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6
KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3JlbW92ZVVzZXJTY3JpcHQ6KFdLVXNlclNj
cmlwdCAqKXVzZXJTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU2NyaXB0c0Fzc29jaWF0ZWRX
aXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29y
bGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKLS0gKHZvaWQpX2FkZFVzZXJDb250ZW50RmlsdGVyOihfV0tVc2VyQ29udGVudEZpbHRlciAq
KXVzZXJDb250ZW50RmlsdGVyIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLS0gKHZvaWQpX3Jl
bW92ZVVzZXJDb250ZW50RmlsdGVyOihOU1N0cmluZyAqKXVzZXJDb250ZW50RmlsdGVyTmFtZSBX
S19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci0tICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29udGVudEZp
bHRlcnMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8X1dLVXNlclN0eWxlU2hlZXQgKj4gKl91c2VyU3R5bGVT
aGVldHMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfYWRk
VXNlclN0eWxlU2hlZXQ6KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfcmVtb3ZlVXNlclN0eWxl
U2hlZXQ6KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRz
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX3JlbW92ZUFs
bFVzZXJTdHlsZVNoZWV0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNv
bnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdL
X0lPU19UQkEpOworLSAodm9pZClfYWRkVXNlckNvbnRlbnRGaWx0ZXI6KF9XS1VzZXJDb250ZW50
RmlsdGVyICopdXNlckNvbnRlbnRGaWx0ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOS4wKSk7CistICh2b2lkKV9yZW1vdmVVc2VyQ29udGVudEZpbHRlcjooTlNTdHJpbmcg
Kil1c2VyQ29udGVudEZpbHRlck5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29udGVudEZpbHRlcnMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgY29weSkgTlNBcnJheTxfV0tVc2VyU3R5bGVTaGVldCAqPiAqX3VzZXJTdHls
ZVNoZWV0cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAqKXVz
ZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAodm9pZClfcmVtb3ZlVXNlclN0eWxlU2hlZXQ6KF9XS1VzZXJTdHlsZVNo
ZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2
b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29y
bGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV9hZGRT
Y3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1l
c3NhZ2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2VyQ29udGVudFdvcmxkOihfV0tV
c2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZDsKIC0gKHZvaWQpX3JlbW92ZVNjcmlw
dE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTooTlNTdHJpbmcgKiluYW1lIHVzZXJDb250ZW50V29ybGQ6
KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCShyZXZpc2lv
biAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNj
cmlwdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxMSArMzksMTEgQEAgTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLVXNlclNjcmlwdEluamVjdGlv
blRpbWUpIHsKICAgICBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0LAog
ICAgIFdLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50RW5kCi19IFdLX0VOVU1fQVZB
SUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKTsKIAogLyohIEEgQGxpbmsgV0tVc2VyU2NyaXB0IEAvbGluayBvYmplY3QgcmVwcmVz
ZW50cyBhIHNjcmlwdCB0aGF0IGNhbiBiZSBpbmplY3RlZCBpbnRvIHdlYnBhZ2VzLgogICovCi1X
S19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3go
MTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tVc2VyU2NyaXB0IDogTlNPYmplY3QgPE5T
Q29weWluZz4KIAogLyogQGFic3RyYWN0IFRoZSBzY3JpcHQgc291cmNlIGNvZGUuICovCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdFByaXZhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNl
clNjcmlwdFByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHRQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDEwICszMywxMCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAaW50ZXJmYWNlIFdL
VXNlclNjcmlwdCAoV0tQcml2YXRlKQogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNl
OihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbmplY3Rpb25U
aW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5
IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlzdCBs
ZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xpc3QgdXNl
ckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFp
bkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lX
aGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5Qmxh
Y2tsaXN0IGFzc29jaWF0ZWRVUkw6KE5TVVJMICopYXNzb2NpYXRlZFVSTCB1c2VyQ29udGVudFdv
cmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNl
OihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbmplY3Rpb25U
aW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5
IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlzdCBs
ZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xpc3QgdXNl
ckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChp
bnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25U
aW1lOihXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1l
T25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0
cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilsZWdhY3lCbGFja2xpc3QgYXNzb2NpYXRlZFVSTDooTlNVUkwgKilhc3NvY2lhdGVk
VVJMIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdv
cmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1VzZXJDb250ZW50V29ybGQg
Kl91c2VyQ29udGVudFdvcmxkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLVXNlckNvbnRlbnRXb3JsZCAqX3Vz
ZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC03Niw3ICs3Niw3IEBACiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFZpZXdTY2FsZTopIENHRmxvYXQgX3ZpZXdTY2FsZTsKIAotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQgX292ZXJy
aWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVZBSUxBQkxFKDEwXzExLCBOQSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOikgQ0dGbG9h
dCBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdXRvbWF0aWNhbGx5QWRq
dXN0c0NvbnRlbnRJbnNldHM6KSBCT09MIF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNl
dHM7CiAKQEAgLTg0LDcgKzg0LDcgQEAKIEBwcm9wZXJ0eSAoY29weSwgbm9uYXRvbWljKSBOU0Nv
bG9yICp1bmRlcmxheUNvbG9yOwogCiAjaWYgV0tfQVBJX0VOQUJMRUQKLUBwcm9wZXJ0eSAoc3Ry
b25nLCBub25hdG9taWMsIHNldHRlcj1fc2V0SW5zcGVjdG9yQXR0YWNobWVudFZpZXc6KSBOU1Zp
ZXcgKl9pbnNwZWN0b3JBdHRhY2htZW50VmlldyBXS19BVkFJTEFCTEUoMTBfMTEsIE5BKTsKK0Bw
cm9wZXJ0eSAoc3Ryb25nLCBub25hdG9taWMsIHNldHRlcj1fc2V0SW5zcGVjdG9yQXR0YWNobWVu
dFZpZXc6KSBOU1ZpZXcgKl9pbnNwZWN0b3JBdHRhY2htZW50VmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMSkpOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3Jp
dGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdl
cjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDEwICs0OSwxMCBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogIFVzZWQgdG8gY29uZmlndXJlIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsg
aW5zdGFuY2VzLgogICovCiAjaWYgVEFSR0VUX09TX0lQSE9ORQotV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLV2ViVmlldyA6IFVJVmlldwogI2Vsc2UKLVdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KQogQGludGVyZmFjZSBXS1dlYlZpZXcgOiBOU1ZpZXcKICNlbmRpZgogCkBAIC05OCw3ICs5OCw3
IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIElmIHJlYWRBY2Nlc3NVUkwgcmVm
ZXJlbmNlcyBhIGRpcmVjdG9yeSwgZmlsZXMgaW5zaWRlIHRoYXQgZmlsZSBtYXkgYmUgbG9hZGVk
IGJ5IFdlYktpdC4KICBAcmVzdWx0IEEgbmV3IG5hdmlnYXRpb24gZm9yIHRoZSBnaXZlbiBmaWxl
IFVSTC4KICAqLwotLSAobnVsbGFibGUgV0tOYXZpZ2F0aW9uICopbG9hZEZpbGVVUkw6KE5TVVJM
ICopVVJMIGFsbG93aW5nUmVhZEFjY2Vzc1RvVVJMOihOU1VSTCAqKXJlYWRBY2Nlc3NVUkwgV0tf
QVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAobnVsbGFibGUgV0tOYXZpZ2F0aW9uICopbG9hZEZp
bGVVUkw6KE5TVVJMICopVVJMIGFsbG93aW5nUmVhZEFjY2Vzc1RvVVJMOihOU1VSTCAqKXJlYWRB
Y2Nlc3NVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8q
ISBAYWJzdHJhY3QgU2V0cyB0aGUgd2VicGFnZSBjb250ZW50cyBhbmQgYmFzZSBVUkwuCiAgQHBh
cmFtIHN0cmluZyBUaGUgc3RyaW5nIHRvIHVzZSBhcyB0aGUgY29udGVudHMgb2YgdGhlIHdlYnBh
Z2UuCkBAIC0xMTQsNyArMTE0LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAg
QHBhcmFtIGJhc2VVUkwgQSBVUkwgdGhhdCBpcyB1c2VkIHRvIHJlc29sdmUgcmVsYXRpdmUgVVJM
cyB3aXRoaW4gdGhlIGRvY3VtZW50LgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbi4KICAqLwot
LSAobnVsbGFibGUgV0tOYXZpZ2F0aW9uICopbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5
cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOihOU1N0cmluZyAq
KWNoYXJhY3RlckVuY29kaW5nTmFtZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgV0tfQVZBSUxB
QkxFKDEwXzExLCA5XzApOworLSAobnVsbGFibGUgV0tOYXZpZ2F0aW9uICopbG9hZERhdGE6KE5T
RGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgY2hhcmFjdGVyRW5jb2Rp
bmdOYW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVuY29kaW5nTmFtZSBiYXNlVVJMOihOU1VSTCAq
KWJhc2VVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8q
ISBAYWJzdHJhY3QgTmF2aWdhdGVzIHRvIGFuIGl0ZW0gZnJvbSB0aGUgYmFjay1mb3J3YXJkIGxp
c3QgYW5kIHNldHMgaXQKICBhcyB0aGUgY3VycmVudCBpdGVtLgpAQCAtMTY4LDcgKzE2OCw3IEBA
IFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIEBkaXNjdXNzaW9uIEBsaW5rIFdLV2Vi
VmlldyBAL2xpbmsgaXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQgCiAgZm9y
IHRoaXMgcHJvcGVydHkuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVs
bGFibGUpIFNlY1RydXN0UmVmIHNlcnZlclRydXN0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIFNl
Y1RydXN0UmVmIHNlcnZlclRydXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRp
Y2F0aW5nIHdoZXRoZXIgdGhlcmUgaXMgYSBiYWNrIGl0ZW0gaW4KICB0aGUgYmFjay1mb3J3YXJk
IGxpc3QgdGhhdCBjYW4gYmUgbmF2aWdhdGVkIHRvLgpAQCAtMjI4LDEzICsyMjgsMTMgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIGN1c3RvbSB1
c2VyIGFnZW50IHN0cmluZyBvciBuaWwgaWYgbm8gY3VzdG9tIHVzZXIgYWdlbnQgc3RyaW5nIGhh
cyBiZWVuIHNldC4KICovCi1AcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIGNvcHkpIE5T
U3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3Bl
cnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3Ry
YWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgbGluayBwcmV2aWV3IGlzIGFs
bG93ZWQgZm9yIGFueQogIGxpbmtzIGluc2lkZSB0aGlzIFdLV2ViVmlldy4KICBAZGlzY3Vzc2lv
biBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMgb24gTWFjIGFuZCBpT1MuCiAgKi8KLUBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0xpbmtQcmV2aWV3IFdLX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0xpbmtQcmV2aWV3IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQ
SE9ORQogLyohIEBhYnN0cmFjdCBUaGUgc2Nyb2xsIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoZSB3
ZWIgdmlldy4KQEAgLTMwNiw3ICszMDYsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKIAogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLRGVwcmVjYXRlZCkKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5ICpjZXJ0aWZpY2F0ZUNoYWluIFdLX0RF
UFJFQ0FURUQoMTBfMTEsIFdLX01BQ19UQkEsIDlfMCwgV0tfSU9TX1RCQSwgIlBsZWFzZSB1c2Ug
c2VydmVyVHJ1c3QiKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNB
cnJheSAqY2VydGlmaWNhdGVDaGFpbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJzZXJ2ZXJUcnVzdCIsIG1hY29zeCgxMC4xMSwgV0tfTUFDX1RCQSksIGlvcyg5LjAsIFdLX0lP
U19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24g
MjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLU2VsZWN0aW9uR3Jh
bnVsYXJpdHkpIHsKICAgICBXS1NlbGVjdGlvbkdyYW51bGFyaXR5RHluYW1pYywKICAgICBXS1Nl
bGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAotfSBXS19FTlVNX0FWQUlMQUJMRV9JT1MoOF8w
KTsKK30gV0tfQVBJX0FWQUlMQUJMRShpb3MoOC4wKSk7CiAKIC8qISBAZW51bSBXS0RhdGFEZXRl
Y3RvclR5cGVzCiAgQGFic3RyYWN0IFRoZSB0eXBlIG9mIGRhdGEgZGV0ZWN0ZWQuCkBAIC03Miw4
ICs3Miw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBXS0RhdGFEZXQKICAgICBX
S0RhdGFEZXRlY3RvclR5cGVMb29rdXBTdWdnZXN0aW9uID0gMSA8PCA2LAogICAgIFdLRGF0YURl
dGVjdG9yVHlwZUFsbCA9IE5TVUludGVnZXJNYXgsCiAKLSAgICBXS0RhdGFEZXRlY3RvclR5cGVT
cG90bGlnaHRTdWdnZXN0aW9uIFdLX0VOVU1fREVQUkVDQVRFRChOQSwgTkEsIFdLX0lPU19UQkEs
IFdLX0lPU19UQkEsICJQbGVhc2UgdXNlIFdLRGF0YURldGVjdG9yVHlwZUxvb2t1cFN1Z2dlc3Rp
b24iKSA9IFdLRGF0YURldGVjdG9yVHlwZUxvb2t1cFN1Z2dlc3Rpb24sCi19IFdLX0VOVU1fQVZB
SUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKyAgICBXS0RhdGFEZXRlY3RvclR5cGVTcG90bGlnaHRT
dWdnZXN0aW9uIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLRGF0YURldGVj
dG9yVHlwZUxvb2t1cFN1Z2dlc3Rpb24iLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpID0g
V0tEYXRhRGV0ZWN0b3JUeXBlTG9va3VwU3VnZ2VzdGlvbiwKK30gV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOwogCiAjZWxzZQogCkBAIC05MSw3ICs5MSw3IEBAIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBXS0RhdGFEZXQKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IFdLVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSkgewogICAgIFdLVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeUNvbnRlbnQsCiAgICAgV0tVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5
U3lzdGVtLAotfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7Cit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAogI2VuZGlmCiAKQEAgLTEwNywxMyArMTA3
LDEzIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBXS0F1ZGlvdmkKICAgICBXS0F1
ZGlvdmlzdWFsTWVkaWFUeXBlQXVkaW8gPSAxIDw8IDAsCiAgICAgV0tBdWRpb3Zpc3VhbE1lZGlh
VHlwZVZpZGVvID0gMSA8PCAxLAogICAgIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVBbGwgPSBOU1VJ
bnRlZ2VyTWF4Ci19IFdLX0VOVU1fQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogLyohIEEgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBvYmplY3QgaXMgYSBjb2xsZWN0aW9uIG9m
IHByb3BlcnRpZXMgd2l0aAogIHdoaWNoIHRvIGluaXRpYWxpemUgYSB3ZWIgdmlldy4KICBAaGVs
cHMgQ29udGFpbnMgcHJvcGVydGllcyB1c2VkIHRvIGNvbmZpZ3VyZSBhIEBsaW5rIFdLV2ViVmll
dyBAL2xpbmsuCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlZpZXdD
b25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29kaW5nLCBOU0NvcHlpbmc+CiAKIC8qISBAYWJz
dHJhY3QgVGhlIHByb2Nlc3MgcG9vbCBmcm9tIHdoaWNoIHRvIG9idGFpbiB0aGUgdmlldydzIHdl
YiBjb250ZW50CkBAIC0xMzQsNyArMTM0LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIHdlYnNpdGUgZGF0YSBzdG9yZSB0byBiZSB1c2VkIGJ5
IHRoZSB3ZWIgdmlldy4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgV0tXZWJz
aXRlRGF0YVN0b3JlICp3ZWJzaXRlRGF0YVN0b3JlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFdLV2Vic2l0ZURhdGFTdG9yZSAqd2Vic2l0
ZURhdGFTdG9yZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAog
LyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3ZWIg
dmlldyBzdXBwcmVzc2VzCiAgY29udGVudCByZW5kZXJpbmcgdW50aWwgaXQgaXMgZnVsbHkgbG9h
ZGVkIGludG8gbWVtb3J5LgpAQCAtMTQ0LDE0ICsxNDQsMTQgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9u
IGFzIHVzZWQgaW4gdGhlIHVzZXIgYWdlbnQgc3RyaW5nLgogKi8KLUBwcm9wZXJ0eSAobnVsbGFi
bGUsIG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2Vu
dCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9t
aWMsIGNvcHkpIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29s
ZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBBaXJQbGF5IGlzIGFsbG93ZWQuCiAgQGRpc2N1
c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQbGF5YmFjayBXS19BVkFJTEFCTEUoMTBfMTEs
IDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQ
bGF5YmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAotQHBy
b3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVzIG1lZGlhVHlwZXNSZXF1
aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVzIG1l
ZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBI
T05FCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgSFRN
TDUgdmlkZW9zIHBsYXkgaW5saW5lCkBAIC0xNzEsNyArMTcxLDcgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCiAgcGljdHVyZS1pbi1waWN0dXJlLgogIEBkaXNjdXNzaW9uIFRoZSBk
ZWZhdWx0IHZhbHVlIGlzIFlFUy4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxs
b3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwor
QHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxh
eWJhY2sgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAKIC8qISBAYWJzdHJhY3QgQW4gZW51
bSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGRhdGEgZGV0ZWN0aW9uIGRlc2lyZWQuCiAg
QGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgV0tEYXRhRGV0ZWN0b3JUeXBlTm9uZS4K
QEAgLTE4MCw3ICsxODAsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBpZiB0
aGUgZGF0YURldGVjdG9yVHlwZXMgcHJvcGVydHkgaXMgc2V0IHRvIFdLRGF0YURldGVjdG9yVHlw
ZVBob25lTnVtYmVyIHwgV0tEYXRhRGV0ZWN0b3JUeXBlTGluayB8IFdLRGF0YURldGVjdG9yVHlw
ZUNhbGVuZGFyRXZlbnQuCiAKICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIFdLRGF0YURldGVj
dG9yVHlwZXMgZGF0YURldGVjdG9yVHlwZXMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXS0RhdGFEZXRlY3RvclR5cGVzIGRhdGFEZXRlY3RvclR5
cGVzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2Vsc2UKIApAQCAtMTg4
LDcgKzE4OCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIEBkaXNjdXNzaW9u
IFBvc3NpYmxlIHZhbHVlcyBhcmUgZGVzY3JpYmVkIGluIFdLVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeS4KICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Q
b2xpY3lDb250ZW50LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgV0tVc2VySW50ZXJmYWNl
RGlyZWN0aW9uUG9saWN5IHVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXS1VzZXJJbnRlcmZhY2VE
aXJlY3Rpb25Qb2xpY3kgdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKICNlbmRpZgogCkBAIC0xOTcsOSArMTk3LDkgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLV2ViVmlld0NvbmZp
Z3VyYXRpb24gKFdLRGVwcmVjYXRlZCkKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0
eSAobm9uYXRvbWljKSBCT09MIG1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJBY3Rpb24gV0tfREVQ
UkVDQVRFRChOQSwgTkEsIDhfMCwgOV8wLCAiUGxlYXNlIHVzZSByZXF1aXJlc1VzZXJBY3Rpb25G
b3JNZWRpYVBsYXliYWNrIik7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBtZWRpYVBsYXli
YWNrQWxsb3dzQWlyUGxheSBXS19ERVBSRUNBVEVEKE5BLCBOQSwgOF8wLCA5XzAsICJQbGVhc2Ug
dXNlIGFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIik7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCByZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrIFdLX0RFUFJFQ0FURUQo
TkEsIE5BLCA5XzAsIDEwXzAsICJQbGVhc2UgdXNlIG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0
aW9uRm9yUGxheWJhY2siKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlhUGxheWJh
Y2tSZXF1aXJlc1VzZXJBY3Rpb24gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
cmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayIsIGlvcyg4LjAsIDkuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgbWVkaWFQbGF5YmFja0FsbG93c0FpclBsYXkgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiYWxsb3dzQWlyUGxheUZvck1lZGlhUGxheWJh
Y2siLCBpb3MoOC4wLCA5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHJlcXVpcmVz
VXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2sgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIsIGlvcyg5LjAs
IFdLX0lPU19UQkEpKTsKICNlbmRpZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQxLDM4ICs0MSwzOCBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywg
c2V0dGVyPV9zZXRBbHRlcm5hdGVXZWJWaWV3Rm9yTmF2aWdhdGlvbkdlc3R1cmVzOikgV0tXZWJW
aWV3ICpfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlczsKIAotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0VHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5z
ZWN1cmU6KSBCT09MIF90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSBXS19B
VkFJTEFCTEUoTkEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUcmVh
dHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZTopIEJPT0wgX3RyZWF0c1NIQTFTaWdu
ZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNwZWN0c0ltYWdlT3JpZW50YXRpb246
KSBCT09MIF9yZXNwZWN0c0ltYWdlT3JpZW50YXRpb24gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJpbnRzQmFj
a2dyb3VuZHM6KSBCT09MIF9wcmludHNCYWNrZ3JvdW5kcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbmNyZW1l
bnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dDopIENHRmxvYXQgX2luY3JlbWVudGFsUmVu
ZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0phdmFTY3JpcHRN
YXJrdXA6KSBCT09MIF9hbGxvd3NKYXZhU2NyaXB0TWFya3VwIFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnZl
cnRzUG9zaXRpb25TdHlsZU9uQ29weTopIEJPT0wgX2NvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29w
eSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRBbGxvd3NNZXRhUmVmcmVzaDopIEJPT0wgX2FsbG93c01ldGFSZWZy
ZXNoIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9P
TCBfYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWFpbkNv
bnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50VXNlckdl
c3R1cmVPdmVycmlkZUVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW52aXNpYmxlQXV0b3BsYXlOb3RQ
ZXJtaXR0ZWQ6KSBCT09MIF9pbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZCBXS19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk6KSBCT09MIF9tZWRpYURhdGFMb2Fkc0F1
dG9tYXRpY2FsbHkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkOikgQk9P
TCBfYXR0YWNobWVudEVsZW1lbnRFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluaXRpYWxDYXBpdGFs
aXphdGlvbkVuYWJsZWQ6KSBCT09MIF9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEFwcGxlUGF5RW5hYmxlZDopIEJPT0wgX2FwcGxlUGF5RW5hYmxlZCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRSZXNwZWN0c0ltYWdlT3JpZW50YXRpb246KSBCT09MIF9yZXNwZWN0c0ltYWdlT3Jp
ZW50YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcmludHNCYWNrZ3JvdW5k
czopIEJPT0wgX3ByaW50c0JhY2tncm91bmRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXQ6KSBDR0Zsb2F0IF9pbmNy
ZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEFsbG93c0phdmFTY3JpcHRNYXJrdXA6KSBCT09MIF9hbGxvd3NKYXZhU2NyaXB0
TWFya3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29udmVydHNQb3NpdGlvblN0
eWxlT25Db3B5OikgQk9PTCBfY29udmVydHNQb3NpdGlvblN0eWxlT25Db3B5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzTWV0YVJlZnJlc2g6KSBCT09MIF9hbGxvd3NNZXRh
UmVmcmVzaCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNYWluQ29udGVudFVzZXJHZXN0dXJlT3Zl
cnJpZGVFbmFibGVkOikgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEludmlzaWJsZUF1dG9wbGF5Tm90UGVy
bWl0dGVkOikgQk9PTCBfaW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk6KSBCT09MIF9t
ZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6KSBCT09MIF9hdHRhY2htZW50RWxlbWVudEVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbml0aWFsQ2FwaXRhbGl6YXRpb25F
bmFibGVkOikgQk9PTCBfaW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFwcGxlUGF5RW5hYmxlZDopIEJPT0wgX2FwcGxlUGF5RW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAogI2lmIFRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEFsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eTopIEJPT0wgX2Fsd2F5c1J1bnNBdEZvcmVn
cm91bmRQcmlvcml0eSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJp
YnV0ZTopIEJPT0wgX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmli
dXRlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuOikgQk9P
TCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiAgV0tfQVZBSUxBQkxF
KE5BLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5
c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eTopIEJPT0wgX2Fsd2F5c1J1bnNBdEZvcmVncm91bmRQ
cmlvcml0eSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmli
dXRlOikgQk9PTCBfaW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1
dGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbjop
IEJPT0wgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4gIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbHNlCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRTaG93c1VSTHNJblRvb2xUaXBzOikgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlw
cyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX3NlcnZpY2VDb250cm9sc0Vu
YWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfaW1hZ2VDb250cm9sc0Vu
YWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRy
b2xzTWFuYWdlcjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01h
bmFnZXIgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFNob3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRvb2xU
aXBzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNl
Q29udHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9P
TCBfaW1hZ2VDb250cm9sc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRSZXF1aXJl
c1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9PTCBfcmVxdWlyZXNVc2Vy
QWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSk7CiAjZW5kaWYKIAotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0
dGVyPV9zZXRWaXNpdGVkTGlua1Byb3ZpZGVyOikgX1dLVmlzaXRlZExpbmtQcm92aWRlciAqX3Zp
c2l0ZWRMaW5rUHJvdmlkZXIgV0tfREVQUkVDQVRFRCgxMF8xMCwgV0tfTUFDX1RCQSwgOF8wLCBX
S19JT1NfVEJBLCAiUGxlYXNlIHVzZSBfdmlzaXRlZExpbmtTdG9yZSBpbnN0ZWFkIik7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFZpc2l0ZWRMaW5rUHJvdmlkZXI6
KSBfV0tWaXNpdGVkTGlua1Byb3ZpZGVyICpfdmlzaXRlZExpbmtQcm92aWRlciBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfdmlzaXRlZExpbmtTdG9yZSIsIG1hY29zeCgxMC4x
MCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25h
dG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRXZWJzaXRlRGF0YVN0b3JlOikgX1dLV2Vic2l0ZURh
dGFTdG9yZSAqX3dlYnNpdGVEYXRhU3RvcmUgV0tfREVQUkVDQVRFRCgxMF8xMCwgMTBfMTEsIDhf
MCwgOV8wLCAiUGxlYXNlIHVzZSB3ZWJzaXRlRGF0YVN0b3JlIGluc3RlYWQiKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxheWJh
Y2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNrIFdLX0RFUFJFQ0FU
RUQoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSwgIlBsZWFz
ZSB1c2UgbWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5
YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2sgV0tfREVQUkVD
QVRFRChXS19NQUNfVEJBLCBXS19NQUNfVEJBLCBXS19JT1NfVEJBLCBXS19JT1NfVEJBLCAiUGxl
YXNlIHVzZSBtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIik7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFdlYnNpdGVEYXRhU3RvcmU6KSBf
V0tXZWJzaXRlRGF0YVN0b3JlICpfd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJ3ZWJzaXRlRGF0YVN0b3JlIiwgbWFjb3N4KDEwLjEwLCAxMC4xMSks
IGlvcyg4LjAsIDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWly
ZXNVc2VyQWN0aW9uRm9yQXVkaW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZv
ckF1ZGlvUGxheWJhY2sgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgibWVkaWFU
eXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIsIG1hY29zeChXS19NQUNfVEJBLCBX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2s6KSBC
T09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXliYWNrIFdLX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJh
Y2siLCBtYWNvc3goV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBLCBXS19J
T1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS1BhZ2luYXRpb24KICAgICBfV0tQYWdpbmF0aW9uTW9kZVJpZ2h0VG9MZWZ0LAogICAgIF9X
S1BhZ2luYXRpb25Nb2RlVG9wVG9Cb3R0b20sCiAgICAgX1dLUGFnaW5hdGlvbk1vZGVCb3R0b21U
b1RvcCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAgICAgX1dLSW1tZWRpYXRlQWN0aW9uTm9uZSwK
QEAgLTQ2LDcgKzQ2LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRl
QQogICAgIF9XS0ltbWVkaWF0ZUFjdGlvbkxvb2t1cFRleHQsCiAgICAgX1dLSW1tZWRpYXRlQWN0
aW9uTWFpbHRvTGluaywKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25UZWxMaW5rCi19IFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBOQSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpKTsKIAogQGNsYXNzIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlOwogQGNsYXNzIF9XS0ZyYW1l
SGFuZGxlOwpAQCAtNzQsMjEgKzc0LDIxIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9X
S0ltbWVkaWF0ZUEKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKl91bnJl
YWNoYWJsZVVSTDsKIAogLSAodm9pZClfbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmc6KE5TU3RyaW5n
ICopc3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBmb3JVbnJlYWNoYWJsZVVSTDooTlNV
UkwgKil1bnJlYWNoYWJsZVVSTDsKLS0gKFdLTmF2aWdhdGlvbiAqKV9sb2FkRGF0YTooTlNEYXRh
ICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05h
bWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFz
ZVVSTCB1c2VyRGF0YTooaWQpdXNlckRhdGEgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOworLSAoV0tOYXZpZ2F0aW9uICopX2xvYWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVU
eXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFtZTooTlNTdHJpbmcg
KiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIHVzZXJEYXRh
OihpZCl1c2VyRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpf
Y2VydGlmaWNhdGVDaGFpbiBXS19ERVBSRUNBVEVEKDEwXzEwLCAxMF8xMSwgOF8wLCA5XzAsICJ1
c2UgLWNlcnRpZmljYXRlQ2hhaW4iKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNBcnJheSAqX2NlcnRpZmljYXRlQ2hhaW4gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiY2VydGlmaWNhdGVDaGFpbiIsIG1hY29zeCgxMC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5
LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKl9jb21taXR0ZWRV
Ukw7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfTUlNRVR5cGU7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfdXNlckFnZW50IFdL
X0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNTdHJpbmcgKl91c2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3Mo
OS4wKSk7CiAKIEBwcm9wZXJ0eSAoY29weSwgc2V0dGVyPV9zZXRBcHBsaWNhdGlvbk5hbWVGb3JV
c2VyQWdlbnQ6KSBOU1N0cmluZyAqX2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDsKIEBwcm9w
ZXJ0eSAoY29weSwgc2V0dGVyPV9zZXRDdXN0b21Vc2VyQWdlbnQ6KSBOU1N0cmluZyAqX2N1c3Rv
bVVzZXJBZ2VudDsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VXNlckNvbnRl
bnRFeHRlbnNpb25zRW5hYmxlZDopIEJPT0wgX3VzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQg
V0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0VXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZDopIEJPT0wgX3VzZXJDb250ZW50RXh0ZW5z
aW9uc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgcGlkX3QgX3dlYlByb2Nlc3NJZGVudGlm
aWVyOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0VkaXRhYmxlLCBzZXR0ZXI9
X3NldEVkaXRhYmxlOikgQk9PTCBfZWRpdGFibGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
QHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNFZGl0YWJsZSwgc2V0dGVyPV9zZXRFZGl0
YWJsZTopIEJPT0wgX2VkaXRhYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOwogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9uY2Ugbm9ib2R5IGlzIHVzaW5nIHRo
ZW0uCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqX3Nlc3Npb25TdGF0
ZURhdGE7CkBAIC05OCw3ICs5OCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0lt
bWVkaWF0ZUEKIC0gKFdLTmF2aWdhdGlvbiAqKV9yZXN0b3JlU2Vzc2lvblN0YXRlOihfV0tTZXNz
aW9uU3RhdGUgKilzZXNzaW9uU3RhdGUgYW5kTmF2aWdhdGU6KEJPT0wpbmF2aWdhdGU7CiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c1JlbW90ZUluc3BlY3Rpb246KSBC
T09MIF9hbGxvd3NSZW1vdGVJbnNwZWN0aW9uOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHks
IHNldHRlcj1fc2V0UmVtb3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZTopIE5TU3RyaW5nICpfcmVt
b3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRSZW1vdGVJbnNw
ZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNTdHJpbmcgKl9yZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJy
aWRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBZGRzVmlzaXRlZExpbmtzOikg
Qk9PTCBfYWRkc1Zpc2l0ZWRMaW5rczsKIApAQCAtMTUyLDkgKzE1Miw5IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIAogLy8gRGVwcmVjYXRlZDogVXNlIFtfb3Zl
cnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOm1heGltdW1Vbm9ic2N1
cmVkU2l6ZU92ZXJyaWRlOl0gaW5zdGVhZC4KIC8vIFRoaXMgZnVuY3Rpb24gaXMga2VwdCBmb3Ig
YmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCBpT1MgOC4wLCBpdCBjYW4gYmUgcmVtb3ZlZCBhZnRl
ciB0aGUgYmluY29tcGF0IHdpbmRvdy4KLS0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVy
c1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1pbmltdW1M
YXlvdXRTaXplRm9yTWluaW1hbFVJOihDR1NpemUpbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFs
VUkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZSBXS19ERVBSRUNBVEVEKE5BLCBOQSwgOF8wLCA5XzAsICJ1c2UgLV9vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6Iik7CistICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRo
TWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtaW5pbXVtTGF5b3V0
U2l6ZUZvck1pbmltYWxVSTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJIG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9vdmVycmlkZUxh
eW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGU6IiwgaW9zKDguMCwgOS4wKSk7CiAKLS0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFy
YW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1h
eGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQ
YXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUg
bWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNp
emVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKIAogLSAoVUlWaWV3ICopX3Zp
ZXdGb3JGaW5kVUk7CiAKQEAgLTE2NSwxMSArMTY1LDExIEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS0ltbWVkaWF0ZUEKIAogLy8gUHV0cyB0aGUgdmlldyBpbnRvIGEgc3RhdGUgd2hl
cmUgYmVpbmcgdGFrZW4gb3V0IG9mIHRoZSB2aWV3IGhpZXJhcmNoeSBhbmQgcmVzaWduaW5nIGZp
cnN0IHJlc3BvbmRlcgogLy8gd2lsbCBub3QgY291bnQgYXMgYmVjb21pbmcgaW5hY3RpdmUgYW5k
IHVuZm9jdXNlZC4gVGhlIHJldHVybmVkIGJsb2NrIG11c3QgYmUgY2FsbGVkIHRvIGV4aXQgdGhl
IHN0YXRlLgotLSAodm9pZCAoXikodm9pZCkpX3JldGFpbkFjdGl2ZUZvY3VzZWRTdGF0ZSBXS19B
VkFJTEFCTEUoTkEsIDlfMCk7CistICh2b2lkICheKSh2b2lkKSlfcmV0YWluQWN0aXZlRm9jdXNl
ZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCi0tICh2b2lkKV9iZWNvbWVGaXJz
dFJlc3BvbmRlcldpdGhTZWxlY3Rpb25Nb3ZpbmdGb3J3YXJkOihCT09MKXNlbGVjdGluZ0Zvcndh
cmQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgZGlkQmVjb21lRmlyc3RSZXNwb25k
ZXIpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKKy0gKHZvaWQpX2Jl
Y29tZUZpcnN0UmVzcG9uZGVyV2l0aFNlbGVjdGlvbk1vdmluZ0ZvcndhcmQ6KEJPT0wpc2VsZWN0
aW5nRm9yd2FyZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBkaWRCZWNvbWVGaXJz
dFJlc3BvbmRlcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7
CiAKLS0gKGlkKV9zbmFwc2hvdExheWVyQ29udGVudHNGb3JCYWNrRm9yd2FyZExpc3RJdGVtOihX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKKy0gKGlk
KV9zbmFwc2hvdExheWVyQ29udGVudHNGb3JCYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3
YXJkTGlzdEl0ZW0gKilpdGVtIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogLSAoTlNBcnJh
eSAqKV9kYXRhRGV0ZWN0aW9uUmVzdWx0czsKIAogI2Vsc2UKQEAgLTE4MCw3ICsxODAsNyBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM6KSBCT09M
IF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM7CiAKIC8vIERlZmF1bHQgdmFsdWUg
aXMgMC4gQSB2YWx1ZSBvZiAwIG1lYW5zIHRoZSB3aW5kb3cncyBiYWNraW5nIHNjYWxlIGZhY3Rv
ciB3aWxsIGJlIHVzZWQgYW5kIGF1dG9tYXRpY2FsbHkgdXBkYXRlIHdoZW4gdGhlIHdpbmRvdyBt
b3ZlcyBzY3JlZW5zLgotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVE
ZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQgX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tf
QVZBSUxBQkxFKDEwXzExLCBOQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRP
dmVycmlkZURldmljZVNjYWxlRmFjdG9yOikgQ0dGbG9hdCBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZh
Y3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSkpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOikgQk9PTCBf
d2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsKIApAQCAtMTg4LDE4ICsxODgsMTggQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogLy8gZG8gc29tZXRoaW5n
IGN1c3RvbSwgcmV0dXJuIGFuIG9iamVjdCB0aGF0IGNvbmZvcm1zIHRvIHRoZSBOU0ltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXIgcHJvdG9jb2wuCiAtIChpZClfaW1tZWRpYXRlQWN0
aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KF9XS0hpdFRlc3RSZXN1bHQg
KiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOihfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5cGUgdXNl
ckRhdGE6KGlkPE5TU2VjdXJlQ29kaW5nPil1c2VyRGF0YTsKIAotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0TWluaW11bUxheW91dFdpZHRoOikgQ0dGbG9hdCBfbWluaW11bUxheW91
dFdpZHRoIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtTGF5b3V0
V2lkdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiAvLyBXaGVuIHVz
aW5nIF9taW5pbXVtTGF5b3V0V2lkdGgsIHRoZSB3ZWIgY29udGVudCB3aWxsIGxheSBvdXQgdG8g
dGhlIGludHJpbnNpYyBoZWlnaHQKIC8vIG9mIHRoZSBjb250ZW50OyB1c2UgdGhpcyBwcm9wZXJ0
eSB0byBmb3JjZSBpdCB0byBsYXkgb3V0IHRvIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXcgaW5zdGVh
ZC4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZEV4cGFuZENvbnRlbnRU
b1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0OikgQk9PTCBfc2hvdWxkRXhwYW5kQ29udGVudFRvVmll
d0hlaWdodEZvckF1dG9MYXlvdXQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdIZWln
aHRGb3JBdXRvTGF5b3V0OikgQk9PTCBfc2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZv
ckF1dG9MYXlvdXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiAtIChO
U1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludElu
Zm8gKilwcmludEluZm87Ci0tIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0
aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFu
ZGxlICopZnJhbWVIYW5kbGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
LSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJp
bnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAjZW5kaWYKIAotLSAoV0tOYXZpZ2F0aW9uICopX3JlbG9hZFdpdGhvdXRDb250ZW50QmxvY2tl
cnMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAoV0tOYXZpZ2F0aW9u
ICopX3JlbG9hZFdpdGhvdXRDb250ZW50QmxvY2tlcnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2tpbGxXZWJDb250ZW50
UHJvY2Vzc0FuZFJlc2V0U3RhdGU7CiAKQEAgLTIyMCwyNiArMjIwLDI2IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFRleHRab29tRmFjdG9yOikgZG91YmxlIF90ZXh0Wm9vbUZhY3RvcjsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBhZ2Vab29tRmFjdG9yOikgZG91YmxlIF9wYWdlWm9v
bUZhY3RvcjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0RGlhZ25v
c3RpY0xvZ2dpbmdEZWxlZ2F0ZTopIGlkIDxfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlPiBf
ZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0RlbGVn
YXRlOikgaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0RmluZERlbGVnYXRlOikgaWQgPF9X
S0ZpbmREZWxlZ2F0ZT4gX2ZpbmREZWxlZ2F0ZTsKIC0gKHZvaWQpX2ZpbmRTdHJpbmc6KE5TU3Ry
aW5nICopc3RyaW5nIG9wdGlvbnM6KF9XS0ZpbmRPcHRpb25zKW9wdGlvbnMgbWF4Q291bnQ6KE5T
VUludGVnZXIpbWF4Q291bnQ7CiAtICh2b2lkKV9jb3VudFN0cmluZ01hdGNoZXM6KE5TU3RyaW5n
ICopc3RyaW5nIG9wdGlvbnM6KF9XS0ZpbmRPcHRpb25zKW9wdGlvbnMgbWF4Q291bnQ6KE5TVUlu
dGVnZXIpbWF4Q291bnQ7CiAtICh2b2lkKV9oaWRlRmluZFVJOwogCi1AcHJvcGVydHkgKG5vbmF0
b21pYywgd2Vhaywgc2V0dGVyPV9zZXRGb3JtRGVsZWdhdGU6KSBpZCA8X1dLRm9ybURlbGVnYXRl
PiBfZm9ybURlbGVnYXRlIFdLX0RFUFJFQ0FURUQoMTBfMTAsIFdLX01BQ19UQkEsIDhfMCwgV0tf
SU9TX1RCQSwgInVzZSBfaW5wdXREZWxlZ2F0ZSIpOwotQHByb3BlcnR5IChub25hdG9taWMsIHdl
YWssIHNldHRlcj1fc2V0SW5wdXREZWxlZ2F0ZTopIGlkIDxfV0tJbnB1dERlbGVnYXRlPiBfaW5w
dXREZWxlZ2F0ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRGb3JtRGVsZWdhdGU6KSBpZCA8X1dLRm9y
bURlbGVnYXRlPiBfZm9ybURlbGVnYXRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIl9pbnB1dERlbGVnYXRlIiwgbWFjb3N4KDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwg
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0SW5w
dXREZWxlZ2F0ZTopIGlkIDxfV0tJbnB1dERlbGVnYXRlPiBfaW5wdXREZWxlZ2F0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X2lzRGlzcGxheWluZ1N0YW5kYWxvbmVJ
bWFnZURvY3VtZW50KSBCT09MIF9kaXNwbGF5aW5nU3RhbmRhbG9uZUltYWdlRG9jdW1lbnQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNEaXNwbGF5aW5nU3RhbmRh
bG9uZU1lZGlhRG9jdW1lbnQpIEJPT0wgX2Rpc3BsYXlpbmdTdGFuZGFsb25lTWVkaWFEb2N1bWVu
dDsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsUGVyZm9ybWFuY2VE
YXRhQ29sbGVjdGlvbkVuYWJsZWQ6KSBCT09MIF9zY3JvbGxQZXJmb3JtYW5jZURhdGFDb2xsZWN0
aW9uRW5hYmxlZCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TQXJyYXkgKl9zY3JvbGxQZXJmb3JtYW5jZURhdGEgV0tfQVZBSUxBQkxF
KDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsUGVy
Zm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQ6KSBCT09MIF9zY3JvbGxQZXJmb3JtYW5jZURh
dGFDb2xsZWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheSAqX3Njcm9sbFBl
cmZvcm1hbmNlRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsK
IAotLSAodm9pZClfc2F2ZUJhY2tGb3J3YXJkU25hcHNob3RGb3JJdGVtOihXS0JhY2tGb3J3YXJk
TGlzdEl0ZW0gKilpdGVtIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKHZvaWQpX3NhdmVC
YWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIGdldHRlcj1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrLCBzZXR0
ZXI9X3NldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazopIEJPT0wgX2FsbG93c01l
ZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF93ZWJQcm9jZXNzSXNSZXNwb25zaXZlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfd2Vi
UHJvY2Vzc0lzUmVzcG9uc2l2ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkBAIC0yNTEsMjEgKzI1MSwyMSBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAo
V0tUZXN0aW5nKQogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBDR1JlY3QgX2NvbnRlbnRWaXNpYmxlUmVjdCBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7Ci0tIChDR1BvaW50KV9jb252ZXJ0UG9pbnRGcm9tQ29udGVudHNU
b1ZpZXc6KENHUG9pbnQpcG9pbnQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwotLSAoQ0dQb2ludClfY29udmVydFBvaW50RnJvbVZpZXdUb0NvbnRlbnRzOihDR1BvaW50KXBv
aW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgQ0dSZWN0IF9jb250ZW50VmlzaWJsZVJlY3QgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChDR1BvaW50KV9j
b252ZXJ0UG9pbnRGcm9tQ29udGVudHNUb1ZpZXc6KENHUG9pbnQpcG9pbnQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChDR1BvaW50KV9j
b252ZXJ0UG9pbnRGcm9tVmlld1RvQ29udGVudHM6KENHUG9pbnQpcG9pbnQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLS0gKHZvaWQpa2V5
Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0tICh2
b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyUHJldmlvdXMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1Nf
VEJBKTsKKy0gKHZvaWQpa2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0IFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpa2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91cyBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGZvcmNlSVBhZFN0eWxlWm9vbU9uSW5wdXRGb2N1cyBXS19BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZm9yY2VJUGFkU3R5bGVab29t
T25JbnB1dEZvY3VzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbmRpZgog
CiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaGFzQWN0
aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSkpOwogI2VuZGlmCiAKLS0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
Oih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jayBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7CistICh2b2lkKV9kb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZToodm9pZCAo
Xikodm9pZCkpdXBkYXRlQmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLmgJKHJldmlz
aW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVJlY29yZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwzMSArMzIsMzEgQEAKIE5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVEaXNr
Q2FjaGUgT24tZGlzayBjYWNoZXMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dl
YnNpdGVEYXRhVHlwZURpc2tDYWNoZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZURpc2tDYWNoZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNp
dGVEYXRhVHlwZU1lbW9yeUNhY2hlIEluLW1lbW9yeSBjYWNoZXMuICovCi1XS19FWFRFUk4gTlNT
dHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZU1lbW9yeUNhY2hlIFdLX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBl
TWVtb3J5Q2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAK
IC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZSBIVE1MIG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9uIGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUg
V0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tX
ZWJzaXRlRGF0YVR5cGVPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRh
VHlwZUNvb2tpZXMgQ29va2llcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vi
c2l0ZURhdGFUeXBlQ29va2llcyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUNvb2tpZXMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0
YVR5cGVTZXNzaW9uU3RvcmFnZSBIVE1MIHNlc3Npb24gc3RvcmFnZS4gKi8KLVdLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2UgV0tfQVZBSUxB
QkxFKDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0
YVR5cGVTZXNzaW9uU3RvcmFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZUxvY2FsU3RvcmFnZSBIVE1M
IGxvY2FsIHN0b3JhZ2UuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVE
YXRhVHlwZUxvY2FsU3RvcmFnZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUxvY2FsU3RvcmFnZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNp
dGVEYXRhVHlwZVdlYlNRTERhdGFiYXNlcyBXZWJTUUwgZGF0YWJhc2VzLiAqLwotV0tfRVhURVJO
IE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgV0tfQVZB
SUxBQkxFKDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRl
RGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRh
YmFzZXMgSW5kZXhlZERCIGRhdGFiYXNlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IFdLV2Vic2l0ZURhdGFUeXBlSW5kZXhlZERCRGF0YWJhc2VzIFdLX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlSW5kZXhl
ZERCRGF0YWJhc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwog
CiAvKiEgQSBXS1dlYnNpdGVEYXRhUmVjb3JkIHJlcHJlc2VudHMgd2Vic2l0ZSBkYXRhLCBncm91
cGVkIGJ5IGRvbWFpbiBuYW1lIHVzaW5nIHRoZSBwdWJsaWMgc3VmZml4IGxpc3QuICovCi1XS19D
TEFTU19BVkFJTEFCTEUoMTBfMTEsIDlfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVJlY29yZCA6IE5TT2JqZWN0
CiAKIC8qISBAYWJzdHJhY3QgVGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGRhdGEgcmVjb3JkLiBU
aGlzIGlzIHVzdWFsbHkgdGhlIGRvbWFpbiBuYW1lLiAqLwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJl
Y29yZFByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSwxNCArMzEsMTQgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGNsYXNzIF9X
S1dlYnNpdGVEYXRhU2l6ZTsKIAotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0
ZURhdGFUeXBlSFNUU0NhY2hlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLVdLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZU1lZGlhS2V5cyBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5
cGVTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVJl
c291cmNlTG9hZFN0YXRpc3RpY3MgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlSFNUU0NhY2hl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlTWVkaWFLZXlzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
X1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3MgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIAog
I2lmICFUQVJHRVRfT1NfSVBIT05FCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJz
aXRlRGF0YVR5cGVQbHVnSW5EYXRhIFdLX0FWQUlMQUJMRSgxMF8xMSwgTkEpOworV0tfRVhURVJO
IE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSkpOwogI2VuZGlmCiAKIEBpbnRlcmZhY2UgV0tXZWJzaXRlRGF0
YVJlY29yZCAoV0tQcml2YXRlKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyMDI3NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCiAgbWFrZSB1c2Ugb2YuIFRoaXMgaW5jbHVkZXMgY29va2llcywgZGlzayBhbmQgbWVtb3J5
IGNhY2hlcywgYW5kIHBlcnNpc3RlbnQgZGF0YSBzdWNoIGFzIFdlYlNRTCwKICBJbmRleGVkREIg
ZGF0YWJhc2VzLCBhbmQgbG9jYWwgc3RvcmFnZS4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzExLCA5XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiBA
aW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFTdG9yZSA6IE5TT2JqZWN0IDxOU0NvZGluZz4KIAogLyog
QGFic3RyYWN0IFJldHVybnMgdGhlIGRlZmF1bHQgZGF0YSBzdG9yZS4gKi8KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIHR5
cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRp
b25zKSB7CiAgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9uQ29tcHV0ZVNpemVzID0g
MSA8PCAwLAotfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK30g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IEBpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVN0b3JlIChXS1ByaXZhdGUpCiAKIC0gKHZvaWQpX2Zl
dGNoRGF0YVJlY29yZHNPZlR5cGVzOihOU1NldDxOU1N0cmluZyAqPiAqKWRhdGFUeXBlcyB3aXRo
T3B0aW9uczooX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucylvcHRpb25zIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4gKikpY29t
cGxldGlvbkhhbmRsZXI7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOikgQk9PTCBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6KSBCT09M
IF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVyZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVyZXMuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dpbmRvd0ZlYXR1cmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAqLwog
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNl
IFdLV2luZG93RmVhdHVyZXMgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IEJPT0wuIFdoZXRo
ZXIgdGhlIG1lbnUgYmFyIHNob3VsZCBiZSB2aXNpYmxlLiBuaWwgaWYgbWVudSBiYXIgdmlzaWJp
bGl0eSB3YXMgbm90IHNwZWNpZmllZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgJKHJl
dmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTcgKzM2LDE3IEBA
CiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSkgewog
ICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluaywKICAgICBfV0tBY3RpdmF0ZWRFbGVtZW50
VHlwZUltYWdlLAotICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudCBXS19FTlVN
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKSwKLX0gV0tfRU5VTV9BVkFJTEFCTEUo
MTBfMTAsIDhfMCk7CisgICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAorfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIDogTlNPYmplY3QKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqVVJMOwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqdGl0bGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlIHR5cGU7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIENHUmVjdCBib3VuZGluZ1JlY3Q7Ci1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TU3RyaW5nICpJRCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpJRCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKICNpZiBU
QVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIFVJ
SW1hZ2UgKmltYWdlOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgJKHJldmlzaW9uIDIw
Mjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlv
blNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogCiBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSkKIEBpbnRlcmZhY2UgX1dLQXV0b21hdGlvblNlc3Npb24gOiBOU09iamVjdAogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKnNlc3Npb25JZGVudGlmaWVyOwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSkpCiBAaW50ZXJmYWNlIF9XS0NvbnRleHRNZW51RWxlbWVudElu
Zm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNM
b2dnaW5nRGVsZWdhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDcgKzMzLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRGlh
Z25vc3RpYwogICAgIF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywKICAgICBfV0tEaWFn
bm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsCiAgICAgX1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRO
b29wLAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBwcm90b2NvbCBfV0tEaWFnbm9zdGljTG9n
Z2luZ0RlbGVnYXRlIDxOU09iamVjdD4KIEBvcHRpb25hbApJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBjbGFzcyBXS1dlYlZpZXc7CiAKLVdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tEb3dubG9hZCA6IE5TT2JqZWN0CiAKIC0g
KHZvaWQpY2FuY2VsOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tFbGVtZW50QWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MSwxMyArNDEsMTMgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
RWxlbWVudEFjdAogICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlU2F2ZUltYWdlLAogI2lmICFkZWZp
bmVkKFRBUkdFVF9PU19JT1MpIHx8IFRBUkdFVF9PU19JT1MKICAgICBfV0tFbGVtZW50QWN0aW9u
VHlwZUFkZFRvUmVhZGluZ0xpc3QsCi0gICAgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5EZWZh
dWx0QnJvd3NlciBXS19FTlVNX0FWQUlMQUJMRShOQSwgOV8wKSwKLSAgICBfV0tFbGVtZW50QWN0
aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRpb24gV0tfRU5VTV9BVkFJTEFCTEUoTkEsIDlf
MCksCisgICAgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5EZWZhdWx0QnJvd3NlciBXS19BUElf
QVZBSUxBQkxFKGlvcyg5XzApKSwKKyAgICBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVy
bmFsQXBwbGljYXRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSksCiAjZW5kaWYKLSAgICBf
V0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlIFdLX0VOVU1fQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJB
KSwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7CisgICAgX1dLRWxlbWVudEFjdGlv
blR5cGVTaGFyZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSksCit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCi1XS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgX1dLRWxlbWVudEFjdGlvbiA6IE5TT2JqZWN0CiAKICsgKGluc3RhbmNldHlw
ZSllbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGU7CkBAIC01
NSw3ICs1NSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiArIChpbnN0YW5j
ZXR5cGUpZWxlbWVudEFjdGlvbldpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSBhY3Rpb25IYW5k
bGVyOihXS0VsZW1lbnRBY3Rpb25IYW5kbGVyKWhhbmRsZXI7CiAKLS0gKHZvaWQpcnVuQWN0aW9u
V2l0aEVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWluZm8gV0tfQVZBSUxB
QkxFKE5BLCA5XzApOworLSAodm9pZClydW5BY3Rpb25XaXRoRWxlbWVudEluZm86KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopaW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tFbGVtZW50QWN0aW9uVHlwZSB0eXBlOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyogdGl0bGU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4
cGVyaW1lbnRhbEZlYXR1cmUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFj
ZSBfV0tFeHBlcmltZW50YWxGZWF0dXJlIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqa2V5OwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGaW5kT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlvbnMuaAkocmV2aXNpb24g
MjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGaW5kT3B0
aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw2IEBAIHR5cGVkZWYgTlNfT1BUSU9O
UyhOU1VJbnRlZ2VyLCBfV0tGaW5kT3AKICAgICBfV0tGaW5kT3B0aW9uc0lycmVsZXZhbnRGb3JJ
bmNyZW1lbnRhbFJlc3VsdHMgPSBfV0tGaW5kT3B0aW9uc1Nob3dPdmVybGF5IHwgX1dLRmluZE9w
dGlvbnNTaG93RmluZEluZGljYXRvciB8IF9XS0ZpbmRPcHRpb25zU2hvd0hpZ2hsaWdodCB8IF9X
S0ZpbmRPcHRpb25zRGV0ZXJtaW5lTWF0Y2hJbmRleCwKICAgICBfV0tGaW5kT3B0aW9uc0lycmVs
ZXZhbnRGb3JCYXRjaFJlc3VsdHMgPSBfV0tGaW5kT3B0aW9uc0JhY2t3YXJkcyB8IF9XS0ZpbmRP
cHRpb25zV3JhcEFyb3VuZCB8IF9XS0ZpbmRPcHRpb25zSXJyZWxldmFudEZvckluY3JlbWVudGFs
UmVzdWx0cwogCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNl
c3Npb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDE0ICsz
NiwxNCBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1ZhbGlk
KSBCT09MIHZhbGlkOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU09iamVjdCA8
TlNTZWN1cmVDb2Rpbmc+ICp1c2VyT2JqZWN0OwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPiBmb2N1c2VkRWxlbWVudEluZm8gV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPiBmb2N1c2VkRWxlbWVudEluZm8gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNp
ZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcg
KmFjY2Vzc29yeVZpZXdDdXN0b21CdXR0b25UaXRsZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcpIFVJVmlldyAqY3VzdG9tSW5wdXRWaWV3IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RC
QSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxVSVRleHRTdWdnZXN0aW9u
ICo+ICpzdWdnZXN0aW9ucyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgYWNjZXNzb3J5Vmlld1Nob3VsZE5vdFNob3cgV0tfQVZBSUxBQkxF
KE5BLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAq
dGV4dENvbnRlbnRUeXBlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc3Ryb25nKSBVSVZpZXcgKmN1c3RvbUlucHV0VmlldyBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJh
eTxVSVRleHRTdWdnZXN0aW9uICo+ICpzdWdnZXN0aW9ucyBXS19BUElfQVZBSUxBQkxFKGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhY2Nlc3NvcnlWaWV3U2hv
dWxkTm90U2hvdyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZSBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CiAjZW5kaWYKIAogQGVuZApJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnB1dERlbGVnYXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnB1dERlbGVnYXRlLmgJKHJl
dmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5wdXREZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBACiAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjY2Vzc29yeVZpZXdDdXN0b21CdXR0b25U
YXBwZWRJbkZvcm1JbnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9uPilpbnB1dFNl
c3Npb247CiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhc1N1Z2dlc3Rp
b25zRm9yQ3VycmVudFN0cmluZ0luSW5wdXRTZXNzaW9uOihpZCA8X1dLRm9ybUlucHV0U2Vzc2lv
bj4paW5wdXRTZXNzaW9uOwogLSAoTlNBcnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHN1Z2dlc3Rpb25zRm9yU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBpbklucHV0U2Vzc2lv
bjooaWQgPF9XS0Zvcm1JbnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbjsKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5zZXJ0VGV4dFN1Z2dlc3Rpb246KFVJVGV4dFN1Z2dl
c3Rpb24gKilzdWdnZXN0aW9uIGluSW5wdXRTZXNzaW9uOihpZCA8X1dLRm9ybUlucHV0U2Vzc2lv
bj4paW5wdXRTZXNzaW9uIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluc2VydFRleHRTdWdnZXN0aW9uOihVSVRleHRT
dWdnZXN0aW9uICopc3VnZ2VzdGlvbiBpbklucHV0U2Vzc2lvbjooaWQgPF9XS0Zvcm1JbnB1dFNl
c3Npb24+KWlucHV0U2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAj
ZW5kaWYKIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tMYXlvdXRNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tMYXlvdXRNb2RlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTGF5b3V0TW9kZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw2ICszNyw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tMYXlvdXRNb2QK
ICAgICAvLyBMYXkgb3V0IHRoZSB2aWV3IGF0IGEgaGV1cmlzdGljYWxseS1kZXRlcm1pbmVkIHNp
emUgYmFzZWQgb24gdGhlIG1pbmltdW0gc2l6ZSBvZiB0aGUgZG9jdW1lbnQuCiAgICAgX1dLTGF5
b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZSA9IDQsCiAK
LX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tPdmVybGF5U2Nyb2xsYmFy
U3R5bGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQs
NCArMzQsNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLT3ZlcmxheVNjCiAgICAg
Ly8gaGV1cmlzdGljIHRvIGNob29zZSBhbiBhcHByb3ByaWF0ZSBjb2xvci4KICAgICBfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGVBdXRvbWF0aWMKIAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxNSBAQAogCiAjaWYgV0tfQVBJX0VO
QUJMRUQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1Byb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1VSTCAqaW5qZWN0ZWRCdW5kbGVVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYykg
TlNVSW50ZWdlciBtYXhpbXVtUHJvY2Vzc0NvdW50OwotQHByb3BlcnR5IChub25hdG9taWMpIE5T
SW50ZWdlciBkaXNrQ2FjaGVTaXplT3ZlcnJpZGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
QHByb3BlcnR5IChub25hdG9taWMpIE5TSW50ZWdlciBkaXNrQ2FjaGVTaXplT3ZlcnJpZGUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNBcnJheSAqY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqYWx3YXlzUmV2YWxpZGF0
ZWRVUkxTY2hlbWVzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGRpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25h
dG9taWMsIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFsd2F5c1JldmFsaWRhdGVkVVJMU2No
ZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGRpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRh
dGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tTZXNzaW9uU3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1Nlc3Npb25TdGF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Nlc3Npb25TdGF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlM
QUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLU2Vzc2lvblN0YXRl
IDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGF0YTooTlNEYXRhICopZGF0
YTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWls
Vmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVGh1bWJuYWlsVmlldy5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNyArMzMsNyBAQAogCiBAY2xhc3MgV0tWaWV3OwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBp
bnRlcmZhY2UgX1dLVGh1bWJuYWlsVmlldyA6IE5TVmlldwogCiAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGZyb21XS1ZpZXc6KFdLVmlldyAqKXdrVmlldzsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCShyZXZpc2lvbiAyMDI3NTkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiBAY2xhc3MgX1dL
VXNlckNvbnRlbnRGaWx0ZXI7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMSwgOV8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKQogQGludGVyZmFjZSBfV0tV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlIDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKWRl
ZmF1bHRTdG9yZTsKQEAgLTQxLDEzICs0MSwxMyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTEs
IDlfMCkKIAogQGVuZAogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tVc2VyQ29udGVu
dEV4dGVuc2lvbnNEb21haW4gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25zRG9tYWlu
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
RXJyb3JDb2RlKSB7CiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yTG9va3Vw
RmFpbGVkID0gMSwKICAgICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JWZXJzaW9u
TWlzbWF0Y2gsCiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29tcGlsZUZh
aWxlZCwKICAgICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JSZW1vdmVGYWlsZWQs
Ci19IFdLX0VOVU1fQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlm
IC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1VzZXJDb250ZW50RmlsdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50
RmlsdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIFdLX0FQSV9F
TkFCTEVECiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMSwgOV8wKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKQogQGludGVyZmFjZSBfV0tVc2VyQ29udGVudEZp
bHRlciA6IE5TT2JqZWN0CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250
ZW50V29ybGQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSkKIEBpbnRlcmZhY2UgX1dLVXNlckNvbnRlbnRXb3JsZCA6IE5TT2JqZWN0CiAKICsgKF9XS1Vz
ZXJDb250ZW50V29ybGQgKil3b3JsZFdpdGhOYW1lOihOU1N0cmluZyAqKW5hbWU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5
bGVTaGVldC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMz
LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGNsYXNzIF9XS1VzZXJDb250ZW50V29y
bGQ7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVy
ZmFjZSBfV0tVc2VyU3R5bGVTaGVldCA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtQcm92aWRlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlz
aXRlZExpbmtQcm92aWRlci5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotV0tfQ0xBU1NfREVQ
UkVDQVRFRCgxMF8xMCwgV0tfTUFDX1RCQSwgOF8wLCBXS19JT1NfVEJBLCAiUGxlYXNlIHVzZSBf
V0tWaXNpdGVkTGlua1N0b3JlIGluc3RlYWQiKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJfV0tWaXNpdGVkTGlua1N0b3JlIiwgbWFjb3N4KDEwLjEwLCBXS19NQUNfVEJB
KSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIgOiBfV0tWaXNpdGVkTGlua1N0b3JlCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9yZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9yZS5oCShy
ZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Zpc2l0ZWRMaW5rU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAogCiAj
aWYgV0tfQVBJX0VOQUJMRUQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1Zp
c2l0ZWRMaW5rU3RvcmUgOiBOU09iamVjdAogCiAtICh2b2lkKWFkZFZpc2l0ZWRMaW5rV2l0aFVS
TDooTlNVUkwgKilVUkw7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhUmVjb3JkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVJlY29yZC5oCShyZXZpc2lvbiAyMDI3NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhUmVj
b3JkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0
L1dLV2Vic2l0ZURhdGFSZWNvcmQuaD4KIAotV0tfQ0xBU1NfREVQUkVDQVRFRCgxMF8xMSwgMTBf
MTEsIDlfMCwgOV8wLCAiUGxlYXNlIHVzZSBXS1dlYnNpdGVEYXRhUmVjb3JkIGluc3RlYWQiKQor
V0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnNpdGVEYXRhUmVjb3Jk
IiwgbWFjb3N4KDEwLjExLCAxMC4xMSksIGlvcyg5LjAsIDkuMCkpCiBAaW50ZXJmYWNlIF9XS1dl
YnNpdGVEYXRhUmVjb3JkIDogV0tXZWJzaXRlRGF0YVJlY29yZAogQGVuZAogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTaXplLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU2l6ZSA6IE5T
T2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdW5zaWduZWQgbG9uZyBs
b25nIHRvdGFsU2l6ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyMDI3NTkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUu
aAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTAgKzMxLDEwIEBACiAKIHR5cGVkZWYgTlNfT1BUSU9O
UyhOU1VJbnRlZ2VyLCBXS1dlYnNpdGVEYXRhVHlwZXMpIHsKICAgICBXS1dlYnNpdGVEYXRhVHlw
ZUFsbCA9IE5TVUludGVnZXJNYXgsCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogCi1XS19DTEFT
U19ERVBSRUNBVEVEKDEwXzEwLCAxMF8xMSwgOF8wLCA5XzAsICJQbGVhc2UgdXNlIFdLV2Vic2l0
ZURhdGFTdG9yZSBpbnN0ZWFkIikKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiV0tXZWJzaXRlRGF0YVN0b3JlIiwgbWFjb3N4KDEwLjEwLCAxMC4xMSksIGlvcyg4LjAsIDku
MCkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU3RvcmUgOiBOU09iamVjdAogCiArIChfV0tX
ZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZv
cm1EZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdh
dGVQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0
ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiAvLyBUaGUgcmV0
dXJuIHZhbHVlIGlzIGV4cG9zZWQgaW4gdGhlIFVJIHByb2Nlc3MgdmlhIHRoZSB1c2VyT2JqZWN0
IHByb3BlcnR5IG9mIHRoZSBfV0tGb3JtSW5wdXRTZXNzaW9uIG9iamVjdC4KIC0gKE5TT2JqZWN0
IDxOU1NlY3VyZUNvZGluZz4gKilfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJv
bGxlciB3aWxsQmVnaW5JbnB1dFNlc3Npb25Gb3JFbGVtZW50OihXS1dlYlByb2Nlc3NQbHVnSW5O
b2RlSGFuZGxlICopbm9kZSBpbkZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWZyYW1l
OwotLSAoTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXIgKiljb250cm9sbGVyIHdpbGxCZWdpbklucHV0U2Vzc2lvbkZvckVsZW1lbnQ6KFdLV2Vi
UHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lICopZnJhbWUgdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3Rpbmcg
V0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKE5TT2JqZWN0IDxOU1NlY3VyZUNvZGlu
Zz4gKilfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlciB3aWxsQmVnaW5J
bnB1dFNlc3Npb25Gb3JFbGVtZW50OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopbm9k
ZSBpbkZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWZyYW1lIHVzZXJJc0ludGVyYWN0
aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKIAogLSAoQk9PTClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
clNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXM6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXI7CiAtICh2b2lkKV93ZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIgKiljb250cm9sbGVyIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sczooTlNBcnJheSAq
KWVsZW1lbnRzOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1
Z0luTm9kZUhhbmRsZTsKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZDsKIAot
V0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIDog
TlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqVVJMOwpA
QCAtNDcsOCArNDcsOCBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLy8gUmV0
dXJucyBVUkxzIG9yZGVyZWQgYnkgcmVzb2x1dGlvbiBpbiBkZXNjZW5kaW5nIG9yZGVyLgogLy8g
RklYTUU6IFRoZXNlIHNob3VsZCBiZSB0YWdnZWQgbm9ubnVsbC4KLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNBcnJheTxOU1VSTCAqPiAqYXBwbGVUb3VjaEljb25VUkxzIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgTlNBcnJheTxOU1VSTCAqPiAqZmF2aWNvblVSTHMgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0Fy
cmF5PE5TVVJMICo+ICphcHBsZVRvdWNoSWNvblVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TQXJyYXk8TlNVUkwgKj4gKmZhdmljb25VUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtIChKU0NvbnRleHQgKilqc0Nv
bnRleHRGb3JXb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3JsZDsKIC0g
KFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKiloaXRUZXN0OihDR1BvaW50KXBvaW50
OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkhpdFRlc3RSZXN1bHQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
SGl0VGVzdFJlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBjbGFz
cyBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlOwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBp
bnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCA6IE5TT2JqZWN0CiAKIEBw
cm9wZXJ0eSAocmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKm5vZGVIYW5k
bGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luTm9kZUhhbmRsZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2Rl
SGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE2ICszNywxNiBAQAogCiBAY2xhc3MgV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBX
S1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIDogTlNPYmplY3QKIAogKyAoV0tXZWJQcm9jZXNz
UGx1Z0luTm9kZUhhbmRsZSAqKW5vZGVIYW5kbGVXaXRoSlNWYWx1ZTooSlNWYWx1ZSAqKXZhbHVl
IGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lICopaHRtbElGcmFtZUVsZW1lbnRDb250ZW50RnJhbWU7CiAKICNpZiBUQVJHRVRfT1NfSVBI
T05FCi0tIChVSUltYWdlICopcmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zOihXS1NuYXBzaG90T3B0
aW9ucylvcHRpb25zIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKFVJSW1hZ2UgKilyZW5k
ZXJlZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNob3RPcHRpb25zKW9wdGlvbnMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAjZWxzZQotLSAoTlNJbWFnZSAqKXJl
bmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyBXS19BVkFJ
TEFCTEUoMTBfMTEsIDlfMCk7CistIChOU0ltYWdlICopcmVuZGVyZWRJbWFnZVdpdGhPcHRpb25z
OihXS1NuYXBzaG90T3B0aW9ucylvcHRpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSwgaW9zKDkuMCkpOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Q0dSZWN0IGVsZW1lbnRCb3VuZHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaAkocmV2aXNpb24gMjAyNzU5KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAK
IAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KQogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgOiBOU09iamVjdAogCiBA
cHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJblNjcmlwdFdvcmxkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQu
aAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJ
blNjcmlwdFdvcmxkIDogTlNPYmplY3QKIAogKyAoV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29y
bGQgKil3b3JsZDsKQEAgLTM4LDcgKzM4LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpuYW1l
OwogCiAtICh2b2lkKWNsZWFyV3JhcHBlcnM7Ci0tICh2b2lkKW1ha2VBbGxTaGFkb3dSb290c09w
ZW4gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAodm9pZCltYWtlQWxs
U2hhZG93Um9vdHNPcGVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1l
bnQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NyArMzIsNyBAQAogQGNsYXNzIFdLRE9NRWxlbWVudDsKIEBjbGFzcyBXS0RPTVRleHQ7CiAKLVdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTURvY3VtZW50IDogV0tET01Ob2RlCiAK
IC0gKFdLRE9NRWxlbWVudCAqKWNyZWF0ZUVsZW1lbnQ6KE5TU3RyaW5nICopdGFnTmFtZTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RP
TUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQv
V0tET01Ob2RlLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTUVsZW1l
bnQgOiBXS0RPTU5vZGUKIAogLSAoQk9PTCloYXNBdHRyaWJ1dGU6KE5TU3RyaW5nICopYXR0cmli
dXRlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NTm9k
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBjbGFzcyBXS0RPTURvY3Vt
ZW50OwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tET01Ob2RlIDogTlNPYmpl
Y3QKIAogLSAodm9pZClpbnNlcnROb2RlOihXS0RPTU5vZGUgKilub2RlIGJlZm9yZTooV0tET01O
b2RlICopcmVmTm9kZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaAkocmV2aXNpb24g
MjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NUmFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0RPTVJhbmdlRGlyCiB9OwogCiAKLVdLX0NMQVNTX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKQogQGludGVyZmFjZSBXS0RPTVJhbmdlIDogTlNPYmplY3QKIAogLSAoaWQpaW5pdFdpdGhE
b2N1bWVudDooV0tET01Eb2N1bWVudCAqKWRvY3VtZW50OwpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RP
TVRleHQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3
ICsyOSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0RPTU5vZGUuaD4KIAotV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NVGV4dCA6IFdLRE9NTm9kZQogCiBAcHJvcGVydHkobm9u
YXRvbWljLCBjb3B5KSBOU1N0cmluZyAqZGF0YTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHRJdGVyYXRvci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S0RPTVRleHRJdGVyYXRvci5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0SXRlcmF0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBAY2xhc3MgV0tET01SYW5nZTsKIAotV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NVGV4dEl0ZXJhdG9yIDogTlNPYmplY3QK
IAogLSAoaWQpaW5pdFdpdGhSYW5nZTooV0tET01SYW5nZSAqKXJhbmdlOwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1Bs
dWdJbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4uaAkocmV2aXNpb24gMjAyNzU5KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJv
Y2Vzc1BsdWdJbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBACiAtICh2b2lkKXdl
YlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250
cm9sbGVyIHdpbGxEZXN0cm95QnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKilicm93c2VyQ29udGV4dENvbnRyb2xsZXI7
CiBAZW5kCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVn
SW5Db250cm9sbGVyIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChyZWFkb25seSkgV0tDb25uZWN0
aW9uICpjb25uZWN0aW9uOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1
Z0luUGFnZUdyb3VwOwogQHByb3RvY29sIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZTsK
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlciA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIFdL
RE9NRG9jdW1lbnQgKm1haW5GcmFtZURvY3VtZW50OwpJbmRleDogU291cmNlL1dlYktpdDIvbWFj
L3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaAkocmV2aXNpb24gMjAy
NzU5KQorKysgU291cmNlL1dlYktpdDIvbWFjL3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJz
LnNoCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxMCArNTAsMTAgQEAgZnVuY3Rpb24gcHJvY2Vzc19k
ZWZpbml0aW9ucyAoKSB7CiAKIGZ1bmN0aW9uIHJld3JpdGVfaGVhZGVycyAoKSB7CiAgICAgaWYg
W1sgIiR7UExBVEZPUk1fTkFNRX0iID09ICJtYWNvc3giIF1dOyB0aGVuCi0gICAgICAgIFtbIC1u
ICR7T1NYX1ZFUlNJT059IF1dIHx8IE9TWF9WRVJTSU9OPSR7TUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUL1wuL199CisgICAgICAgIFtbIC1uICR7T1NYX1ZFUlNJT059IF1dIHx8IE9TWF9WRVJTSU9O
PSR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfQogICAgICAgICBbWyAtbiAke0lPU19WRVJTSU9O
fSBdXSB8fCBJT1NfVkVSU0lPTj0iTkEiCiAgICAgZWxpZiBbWyAiJHtQTEFURk9STV9OQU1FfSIg
PX4gImlwaG9uZSIgXV07IHRoZW4KLSAgICAgICAgW1sgLW4gJHtJT1NfVkVSU0lPTn0gXV0gfHwg
SU9TX1ZFUlNJT049JHtJUEhPTkVPU19ERVBMT1lNRU5UX1RBUkdFVC9cLi9ffQorICAgICAgICBb
WyAtbiAke0lPU19WRVJTSU9OfSBdXSB8fCBJT1NfVkVSU0lPTj0ke0lQSE9ORU9TX0RFUExPWU1F
TlRfVEFSR0VUfQogICAgICAgICBbWyAtbiAke09TWF9WRVJTSU9OfSBdXSB8fCBPU1hfVkVSU0lP
Tj0iTkEiCiAgICAgZmkKIApAQCAtNjQsMTUgKzY0LDEzIEBAIGZ1bmN0aW9uIHJld3JpdGVfaGVh
ZGVycyAoKSB7CiAgICAgICAgIFNFRF9PUFRJT05TKz0oCiAgICAgICAgICAgICAtZSBzL1dLX01B
Q19UQkEvJHtPU1hfVkVSU0lPTn0vZwogICAgICAgICAgICAgLWUgcy9XS19JT1NfVEJBLyR7SU9T
X1ZFUlNJT059L2cKLSAgICAgICAgICAgIC1lIHMvV0tfQVZBSUxBQkxFL05TX0FWQUlMQUJMRS8K
LSAgICAgICAgICAgIC1lIHMvV0tfREVQUkVDQVRFRC9OU19ERVBSRUNBVEVELwotICAgICAgICAg
ICAgLWUgcy9XS19FTlVNX0FWQUlMQUJMRS9OU19FTlVNX0FWQUlMQUJMRS8KLSAgICAgICAgICAg
IC1lIHMvV0tfRU5VTV9ERVBSRUNBVEVEL05TX0VOVU1fREVQUkVDQVRFRC8KLSAgICAgICAgICAg
IC1lIHMvXldLX0NMQVNTX0FWQUlMQUJMRS9OU19DTEFTU19BVkFJTEFCTEUvCi0gICAgICAgICAg
ICAtZSBzL15XS19DTEFTU19ERVBSRUNBVEVEL05TX0NMQVNTX0RFUFJFQ0FURUQvCisgICAgICAg
ICAgICAtZSBzL1dLX0FQSV9BVkFJTEFCTEUvQVBJX0FWQUlMQUJMRS8KKyAgICAgICAgICAgIC1l
IHMvV0tfQVBJX0RFUFJFQ0FURUQvQVBJX0RFUFJFQ0FURUQvCisgICAgICAgICAgICAtZSAicy9e
V0tfQ0xBU1NfQVZBSUxBQkxFL1dLX0VYVEVSTiBBUElfQVZBSUxBQkxFLyIKKyAgICAgICAgICAg
IC1lICJzL15XS19DTEFTU19ERVBSRUNBVEVEL1dLX0VYVEVSTiBBUElfREVQUkVDQVRFRC8iCiAg
ICAgICAgICkKICAgICBlbHNlCi0gICAgICAgIFNFRF9PUFRJT05TKz0oLWUgJ3MvV0tfKENMQVNT
X3xFTlVNXyk/QVZBSUxBQkxFKF9JT1N8X01BQyk/XChbXlwpXStcKS8vZycgLWUgJ3MvV0tfKENM
QVNTX3xFTlVNXyk/REVQUkVDQVRFRFwoW15cKV0rXCkvL2cnKQorICAgICAgICBTRURfT1BUSU9O
Uys9KC1lICdzL1dLXyhBUElffENMQVNTXylBVkFJTEFCTEVcKC4qXClccypcKS8vZycgLWUgJ3Mv
V0tfKEFQSV98Q0xBU1NfKURFUFJFQ0FURUQoX1dJVEhfUkVQTEFDRU1FTlQpP1woLipcKVxzKlwp
Ly9nJykKICAgICBmaQogCiAgICAgU0VEX09QVElPTlMrPSgke09USEVSX1NFRF9PUFRJT05TWypd
fSkKQEAgLTgwLDcgKzc4LDcgQEAgZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJzICgpIHsKICAgICBm
b3IgSEVBREVSX1BBVEggaW4gIiR7MX0vIiouaDsgZG8KICAgICAgICAgaWYgW1sgIiRIRUFERVJf
UEFUSCIgLW50ICRUSU1FU1RBTVBfUEFUSCBdXTsgdGhlbgogICAgICAgICAgICAgZGl0dG8gIiR7
SEVBREVSX1BBVEh9IiAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIKLSAg
ICAgICAgICAgIHNlZCAtaSAudG1wIC1FICR7U0VEX09QVElPTlNbKl19ICIke1RBUkdFVF9URU1Q
X0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IiB8fCBleGl0ICQ/CisgICAgICAgICAgICBzZWQgLWkg
LnRtcCAtRSAiJHtTRURfT1BUSU9OU1tAXX0iICIke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJf
UEFUSCMjKi99IiB8fCBleGl0ICQ/CiAgICAgICAgICAgICBtdiAiJHtUQVJHRVRfVEVNUF9ESVJ9
LyR7SEVBREVSX1BBVEgjIyovfSIgIiRIRUFERVJfUEFUSCIKICAgICAgICAgZmkKICAgICBkb25l
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282654</attachid>
            <date>2016-07-02 23:30:01 -0700</date>
            <delta_ts>2016-07-03 00:12:51 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>modern-api-macros.diff</filename>
            <type>text/plain</type>
            <size>130188</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktp
dC54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNTksMyArNTksNyBAQCBJTlNUQUxMSERSU19T
Q1JJUFRfUEhBU0UgPSBZRVM7CiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJ
U0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lO
R19ESVNBQkxFRF9tYWNvc3hfJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBXS19GUkFNRVdP
UktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDEwMDAgPSBZRVM7CiBX
S19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDExMDAg
PSBZRVM7CisKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2Rr
PWVtYmVkZGVkKl0gPSAkKFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJM
RURfJChQTEFURk9STV9OQU1FKSk7CitXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5H
X0RJU0FCTEVEX2lwaG9uZW9zW3Nkaz1pcGhvbmVvczkqXSA9IFlFUzsKK1dLX0ZSQU1FV09SS19I
RUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURfaXBob25lb3Nbc2RrPWlwaG9uZXNpbXVsYXRv
cjkqXSA9IFlFUzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQK
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxl
IDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0NvY29hL1dLRm91bmRhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmgJKHJldmlzaW9uIDIwMjc1OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQyLDEyICs0MiwxMCBAQAogCiAjaWZuZGVmIFdLX0ZSQU1FV09SS19IRUFE
RVJfUE9TVFBST0NFU1NJTkdfRU5BQkxFRAogCi0jZGVmaW5lIFdLX0FWQUlMQUJMRShfbWFjLCBf
aW9zKQotI2RlZmluZSBXS19DTEFTU19BVkFJTEFCTEUoX21hYywgX2lvcykgX19hdHRyaWJ1dGVf
XygodmlzaWJpbGl0eSAoImRlZmF1bHQiKSkpCi0jZGVmaW5lIFdLX0RFUFJFQ0FURUQoX21hY0lu
dHJvLCBfbWFjRGVwLCBfaW9zSW50cm8sIF9pb3NEZXAsIC4uLikgX19hdHRyaWJ1dGVfXygoZGVw
cmVjYXRlZChfX1ZBX0FSR1NfXykpKQotI2RlZmluZSBXS19DTEFTU19ERVBSRUNBVEVEKF9tYWNJ
bnRybywgX21hY0RlcCwgX2lvc0ludHJvLCBfaW9zRGVwLCAuLi4pIF9fYXR0cmlidXRlX18oKHZp
c2liaWxpdHkoImRlZmF1bHQiKSkpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoX19WQV9BUkdT
X18pKSkKLSNkZWZpbmUgV0tfRU5VTV9BVkFJTEFCTEUoX21hYywgX2lvcykKLSNkZWZpbmUgV0tf
RU5VTV9BVkFJTEFCTEVfSU9TKF9pb3MpCi0jZGVmaW5lIFdLX0VOVU1fREVQUkVDQVRFRChfbWFj
SW50cm8sIF9tYWNEZXAsIF9pb3NJbnRybywgX2lvc0RlcCwgLi4uKSBfX2F0dHJpYnV0ZV9fKChk
ZXByZWNhdGVkKF9fVkFfQVJHU19fKSkpCisjZGVmaW5lIFdLX0FQSV9BVkFJTEFCTEUoLi4uKQor
I2RlZmluZSBXS19DTEFTU19BVkFJTEFCTEUoLi4uKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5
KCJkZWZhdWx0IikpKSBXS19BUElfQVZBSUxBQkxFKF9fVkFfQVJHU19fKQorI2RlZmluZSBXS19B
UElfREVQUkVDQVRFRChfbWVzc2FnZSwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9t
ZXNzYWdlKSkpCisjZGVmaW5lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoX3Jl
cGxhY2VtZW50LCAuLi4pIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSAiICNfcmVwbGFj
ZW1lbnQpKSkKKyNkZWZpbmUgV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKF9y
ZXBsYWNlbWVudCwgLi4uKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKSBf
X2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKCJ1c2UgIiAjX3JlcGxhY2VtZW50KSkpCiAKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVI
YW5kbGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9D
b2NvYS9fV0tGcmFtZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAK
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUgOiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1NlY3Vy
ZUNvZGluZz4KIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9f
V0tIaXRUZXN0UmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLSGl0VGVzdFJlc3VsdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgog
Ci1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpKQogQGludGVyZmFjZSBfV0tIaXRUZXN0UmVzdWx0IDogTlNPYmpl
Y3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBO
U1VSTCAqYWJzb2x1dGVJbWFnZVVSTDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Q29jb2EvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaAkocmV2aXNp
b24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVP
YmplY3RJbnRlcmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1w
b3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEw
LCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50
ZXJmYWNlIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSA6IE5TT2JqZWN0CiAKICsgKGluc3RhbmNl
dHlwZSlyZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6KFByb3RvY29sICopcHJvdG9j
b2w7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogQGNsYXNzIF9XS1JlbW90ZU9iamVjdEludGVy
ZmFjZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1JlbW90ZU9iamVjdFJl
Z2lzdHJ5IDogTlNPYmplY3QKIAogLSAodm9pZClyZWdpc3RlckV4cG9ydGVkT2JqZWN0OihpZClv
YmplY3QgaW50ZXJmYWNlOihfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKilpbnRlcmZhY2U7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNz
RXZlbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9f
V0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDEyICsyOSwxMiBAQAogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMpIHsKICAgICBfV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50Rmlyc3RMYXlvdXQgPSAxIDw8IDAsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCBXS19FTlVNX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKSA9IDEgPDwgMSwKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpID0gMSA8PCAxLAogICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50V2l0
aFNpZ25pZmljYW50QXJlYSA9IDEgPDwgMiwKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
UmVhY2hlZFNlc3Npb25SZXN0b3JhdGlvblJlbmRlclRyZWVTaXplVGhyZXNob2xkIFdLX0VOVU1f
QVZBSUxBQkxFKDEwXzExLCA5XzApID0gMSA8PCAzLAotICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNz
RXZlbnRGaXJzdExheW91dEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdLX0VO
VU1fQVZBSUxBQkxFKDEwXzExLCA5XzApID0gMSA8PCA0LAotICAgIF9XS1JlbmRlcmluZ1Byb2dy
ZXNzRXZlbnRGaXJzdFBhaW50QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcgV0tf
RU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCkgPSAxIDw8IDUsCi0gICAgX1dLUmVuZGVyaW5nUHJv
Z3Jlc3NFdmVudEZpcnN0UGFpbnQgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCkgPSAxIDw8
IDYsCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworICAgIF9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRSZWFjaGVkU2Vzc2lvblJlc3RvcmF0aW9uUmVuZGVyVHJlZVNpemVUaHJlc2hv
bGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDMsCisg
ICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0QWZ0ZXJTdXBwcmVzc2VkSW5j
cmVtZW50YWxSZW5kZXJpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSkgPSAxIDw8IDQsCisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnRBZnRl
clN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMSksIGlvcyg5LjApKSA9IDEgPDwgNSwKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
Rmlyc3RQYWludCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSA9IDEg
PDwgNiwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKICNl
bmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQ29jb2EvX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw2IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS1NhbWVEb2N1bWUKICAgICBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZVNlc3Npb25TdGF0ZVB1c2gsCiAgICAgX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGVTZXNzaW9uU3RhdGVSZXBsYWNlLAogICAgIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBl
U2Vzc2lvblN0YXRlUG9wLAotfSBXS19BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRM
aXN0LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBA
QAogICovCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBp
bnRlcmZhY2UgV0tCYWNrRm9yd2FyZExpc3QgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IFRo
ZSBjdXJyZW50IGl0ZW0uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgJKHJldmlzaW9uIDIwMjc1
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExp
c3RJdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICAqLwogTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQmFja0Zv
cndhcmRMaXN0SXRlbSA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZB
SUxBQkxFOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiBAcHJv
dG9jb2wgV0tCcm93c2luZ0NvbnRleHRMb2FkRGVsZWdhdGU7CiBAcHJvdG9jb2wgV0tCcm93c2lu
Z0NvbnRleHRQb2xpY3lEZWxlZ2F0ZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNl
IFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciA6IE5TT2JqZWN0CiAKICNwcmFnbWEgbWFyayBE
ZWxlZ2F0ZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRHcm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCShyZXZpc2lvbiAyMDI3NTkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3Jv
dXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGlt
ZS5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRH
cm91cCA6IE5TT2JqZWN0CiAKIC0gKGlkKWluaXRXaXRoSWRlbnRpZmllcjooTlNTdHJpbmcgKilp
ZGVudGlmaWVyOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nv
bm5lY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQ29ubmVjdGlvbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3
ICszOCw3IEBACiAKIEBlbmQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQ29u
bmVjdGlvbiA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpc2VuZE1lc3NhZ2VXaXRoTmFtZTooTlNTdHJp
bmcgKiltZXNzYWdlTmFtZSBib2R5OihpZCltZXNzYWdlQm9keTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5oCShyZXZpc2lvbiAyMDI3NTkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNyArMzIsNyBAQAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogLyohIEBj
b25zdGFudCBXS0Vycm9yRG9tYWluIEluZGljYXRlcyBhIFdlYktpdCBlcnJvci4gKi8KLVdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLRXJyb3JEb21haW4gV0tfQVZBSUxBQkxFKDEwXzEwLCA4
XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tFcnJvckRvbWFpbiBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogLyohIEBlbnVtIFdLRXJyb3JDb2Rl
CiAgQGFic3RyYWN0IENvbnN0YW50cyB1c2VkIGJ5IE5TRXJyb3IgdG8gaW5kaWNhdGUgZXJyb3Jz
IGluIHRoZSBXZWJLaXQgZG9tYWluLgpAQCAtNDcsOCArNDcsOCBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBXS0Vycm9yQ29kZSkgCiAgICAgV0tFcnJvcldlYkNvbnRlbnRQcm9jZXNzVGVy
bWluYXRlZCwKICAgICBXS0Vycm9yV2ViVmlld0ludmFsaWRhdGVkLAogICAgIFdLRXJyb3JKYXZh
U2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQsCi0gICAgV0tFcnJvckphdmFTY3JpcHRSZXN1bHRUeXBl
SXNVbnN1cHBvcnRlZCBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSwKLX0gV0tfRU5VTV9B
VkFJTEFCTEUoMTBfMTAsIDhfMCk7CisgICAgV0tFcnJvckphdmFTY3JpcHRSZXN1bHRUeXBlSXNV
bnN1cHBvcnRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSwKK30g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIE5TX0FTU1VNRV9O
T05OVUxMX0VORAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
RXJyb3JQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0Vycm9yUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JQcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDI3ICsyNywyNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgX1dLTGVnYWN5RXJyb3JEb21haW4gV0tfQVZBSUxBQkxFKDEwXzExLCA4
XzMpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLTGVnYWN5RXJyb3JEb21haW4gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7CiAKIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0xlZ2FjeUVycm9yQ29kZSkgewotICAgIF9XS0Vycm9yQ29kZUZyYW1l
TG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlf
MCkgPSAxMDIsCisgICAgX1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNo
YW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSA9IDEwMiwKICAg
ICBfV0tMZWdhY3lFcnJvclBsdWdJbldpbGxIYW5kbGVMb2FkID0gMjA0LAotfSBXS19FTlVNX0FW
QUlMQUJMRSgxMF8xMSwgOF8zKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOC4zKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbk1lc3NhZ2VF
cnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVwcmVzZW50aW5nCiAgdGhlIGV4Y2VwdGlvbiBtZXNz
YWdlIChhcyBhbiBOU1N0cmluZykgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJy
ZWQgZXJyb3JzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4
Y2VwdGlvbk1lc3NhZ2VFcnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTWVz
c2FnZUVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCiAvKiEgQGNvbnN0YW50IF9XS0phdmFTY3JpcHRFeGNlcHRpb25MaW5lTnVt
YmVyRXJyb3JLZXkgS2V5IGluIHVzZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNlcHRpb24g
bGluZSBudW1iZXIgKGFzIGFuIE5TTnVtYmVyKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRp
b25PY2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZh
U2NyaXB0RXhjZXB0aW9uTGluZU51bWJlckVycm9yS2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRF
eGNlcHRpb25MaW5lTnVtYmVyRXJyb3JLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4
Y2VwdGlvbkNvbHVtbk51bWJlckVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcK
ICB0aGUgZXhjZXB0aW9uIGNvbHVtbiBudW1iZXIgKGFzIGFuIE5TTnVtYmVyKSBmb3IgV0tFcnJv
ckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JLZXkgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlckVycm9yS2V5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGNv
bnN0YW50IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSBLZXkgaW4gdXNl
ckluZm8gcmVwcmVzZW50aW5nCiAgdGhlIGV4Y2VwdGlvbiBzb3VyY2UgVVJMIChhcyBhbiBOU1VS
TCkgZm9yIFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAqLwotV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvblNvdXJjZVVSTEVy
cm9yS2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3VyY2VVUkxFcnJvcktleSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJ
bmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0ZyYW1lSW5mby5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcg
QEAKICAqLwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBA
aW50ZXJmYWNlIFdLRnJhbWVJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogLyohIEBhYnN0
cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmcmFtZSBpcyB0aGUg
bWFpbiBmcmFtZQpAQCAtNTEsNyArNTEsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKIAogLyohIEBhYnN0cmFjdCBUaGUgZnJhbWUncyBjdXJyZW50IHNlY3VyaXR5IG9yaWdpbi4K
ICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1NlY3VyaXR5T3JpZ2luICpz
ZWN1cml0eU9yaWdpbiBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIFdLU2VjdXJpdHlPcmlnaW4gKnNlY3VyaXR5T3JpZ2luIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1By
aXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEs
NyBAQAogCiBAaW50ZXJmYWNlIFdLRnJhbWVJbmZvIChXS1ByaXZhdGUpCiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgc3Ryb25nKSBfV0tGcmFtZUhhbmRsZSAqX2hhbmRsZSBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIHN0cm9uZykgX1dLRnJhbWVIYW5kbGUgKl9oYW5kbGUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJp
dmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyNiArMzAsMjYgQEAKICNpbXBvcnQgPEZvdW5k
YXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLRGVjbGFyYXRpb25TcGVjaWZp
ZXJzLmg+CiAKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJDb3B5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5SW1h
Z2UgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckNvcHlMaW5rIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJEb3dubG9hZEltYWdlIFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBfV0tNZW51SXRlbUlkZW50aWZpZXJEb3dubG9hZExpbmtlZEZpbGUgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0
IF9XS01lbnVJdGVtSWRlbnRpZmllckdvQmFjayBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyR29Gb3J3YXJkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
LVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJJ
bnNwZWN0RWxlbWVudCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyTG9va1Vw
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuRnJhbWVJbk5ld1dpbmRv
dyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkltYWdlSW5OZXdXaW5k
b3cgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuTGlua0luTmV3V2luZG93IFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJQYXN0ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVu
dUl0ZW1JZGVudGlmaWVyUmVsb2FkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJTZWFyY2hXZWIgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNob3dIaWRl
TWVkaWFDb250cm9scyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyVG9nZ2xl
RnVsbFNjcmVlbiBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQ29weSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5SW1h
Z2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
Q29weUxpbmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVyRG93bmxvYWRJbWFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJEb3dubG9hZExpbmtlZEZpbGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3Ry
aW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyR29CYWNrIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckdvRm9yd2FyZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJJbnNwZWN0RWxlbWVu
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJM
b29rVXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyT3BlbkZyYW1lSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qg
X1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkltYWdlSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkxpbmsgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkxpbmtJbk5l
d1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJQYXN0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJSZWxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0
ZW1JZGVudGlmaWVyU2VhcmNoV2ViIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9X
S01lbnVJdGVtSWRlbnRpZmllclNob3dIaWRlTWVkaWFDb250cm9scyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVGdWxsU2NyZWVuIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1X
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hh
cmVNZW51IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTcGVlY2hNZW51IFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTaGFyZU1lbnUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVudSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tO
YXZpZ2F0aW9uLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcg
QEAKICBhbHNvIHBhc3NlZCB0byB0aGUgbmF2aWdhdGlvbiBkZWxlZ2F0ZSBtZXRob2RzLCB0byB1
bmlxdWVseSBpZGVudGlmeSBhIHdlYnBhZ2UKICBsb2FkIGZyb20gc3RhcnQgdG8gZmluaXNoLgog
ICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uIDogTlNPYmpl
Y3QKIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb25BY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MywxMiArNTMsMTIgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
V0tOYXZpZ2F0aW9uVAogICAgIFdLTmF2aWdhdGlvblR5cGVSZWxvYWQsCiAgICAgV0tOYXZpZ2F0
aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZCwKICAgICBXS05hdmlnYXRpb25UeXBlT3RoZXIgPSAtMSwK
LX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgCiBBIFdLTmF2aWdhdGlvbkFjdGlvbiBvYmpl
Y3QgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYW4gYWN0aW9uIHRoYXQgbWF5IGNhdXNlIGEg
bmF2aWdhdGlvbiwgdXNlZCBmb3IgbWFraW5nIHBvbGljeSBkZWNpc2lvbnMuCiAgKi8KLVdLX0NM
QVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS05hdmlnYXRpb25BY3Rpb24gOiBOU09iamVjdAog
CiAvKiEgQGFic3RyYWN0IFRoZSBmcmFtZSByZXF1ZXN0aW5nIHRoZSBuYXZpZ2F0aW9uLgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Q
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMCArMzIsMTAgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNVUkwgKl9vcmlnaW5hbFVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgZ2V0dGVyPV9pc1VzZXJJbml0aWF0ZWQpIEJPT0wgX3VzZXJJbml0aWF0ZWQ7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2NhbkhhbmRsZVJlcXVlc3Q7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFNj
aGVtZXMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBCT09MIF9zaG91bGRPcGVuQXBwTGlua3MgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzAp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJu
YWxTY2hlbWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuQXBwTGlua3MgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkV4dGVybmFsVVJMcyBXS19ERVBSRUNB
VEVEKDEwXzExLCAxMF8xMSwgOV8wLCA5XzAsICJ1c2UgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVt
ZXMgYW5kIF9zaG91bGRPcGVuQXBwTGlua3MiKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgQk9PTCBfc2hvdWxkT3BlbkV4dGVybmFsVVJMcyBXS19BUElfREVQUkVDQVRFRCgidXNl
IF9zaG91bGRPcGVuRXh0ZXJuYWxTY2hlbWVzIGFuZCBfc2hvdWxkT3BlbkFwcExpbmtzIiwgbWFj
b3N4KDEwLjExLCAxMC4xMSksIGlvcyg5LjAsIDkuMCkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0YS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0
YS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTmF2aWdhdGlvbkRhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAog
CiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvbkRhdGEgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJl
YWRvbmx5KSBOU1N0cmluZyAqdGl0bGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCShyZXZpc2lv
biAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSkgewogICAgIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCwKICAgICBX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAs
IDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAv
KiEgQGVudW0gV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kKICBAYWJzdHJhY3QgVGhlIHBvbGlj
eSB0byBwYXNzIGJhY2sgdG8gdGhlIGRlY2lzaW9uIGhhbmRsZXIgZnJvbSB0aGUgd2ViVmlldzpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6ZGVjaXNpb25IYW5kbGVyOiBtZXRob2Qu
CkBAIC01NSw3ICs1NSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlv
bkEKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5
KSB7CiAgICAgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lDYW5jZWwsCiAgICAgV0tOYXZpZ2F0
aW9uUmVzcG9uc2VQb2xpY3lBbGxvdywKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7
Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgQSBj
bGFzcyBjb25mb3JtaW5nIHRvIHRoZSBXS05hdmlnYXRpb25EZWxlZ2F0ZSBwcm90b2NvbCBjYW4g
cHJvdmlkZQogIG1ldGhvZHMgZm9yIHRyYWNraW5nIHByb2dyZXNzIGZvciBtYWluIGZyYW1lIG5h
dmlnYXRpb25zIGFuZCBmb3IgZGVjaWRpbmcKQEAgLTE0Miw3ICsxNDIsNyBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SCiAvKiEgQGFic3RyYWN0IEludm9rZWQgd2hl
biB0aGUgd2ViIHZpZXcncyB3ZWIgY29udGVudCBwcm9jZXNzIGlzIHRlcm1pbmF0ZWQuCiAgQHBh
cmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IHdob3NlIHVuZGVybHlpbmcgd2ViIGNvbnRlbnQgcHJv
Y2VzcyB3YXMgdGVybWluYXRlZC4KICAqLwotLSAodm9pZCl3ZWJWaWV3V2ViQ29udGVudFByb2Nl
c3NEaWRUZXJtaW5hdGU6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOworLSAodm9pZCl3ZWJWaWV3V2ViQ29udGVudFByb2Nlc3NEaWRUZXJtaW5hdGU6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lv
biAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRlbGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiAj
aWYgV0tfQVBJX0VOQUJMRUQKIAogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWQgPSAoV0tOYXZpZ2F0aW9uQWN0aW9u
UG9saWN5KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyArIDEpOwotc3RhdGljIGNvbnN0
IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCkgX1dLTmF2
aWdhdGlvbkFjdGlvblBvbGljeUFsbG93V2l0aG91dFRyeWluZ0FwcExpbmsgPSAoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyArIDIpOworc3Rh
dGljIGNvbnN0IFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg5LjApKSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0
VHJ5aW5nQXBwTGluayA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUFsbG93ICsgMik7CiAKIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNwb25z
ZVBvbGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hZCA9IChXS05h
dmlnYXRpb25SZXNwb25zZVBvbGljeSkoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lBbGxvdyAr
IDEpOwogCkBAIC02Miw3ICs2Miw3IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25SZXNwb25z
ZVBvbGljeSAKIC8vIE9ubHkgY2FsbGVkIGlmIGhvdyB0aGUgZ2VzdHVyZSB3aWxsIGVuZCAod2l0
aCBvciB3aXRob3V0IG5hdmlnYXRpb24pIGlzIGtub3duIGJlZm9yZSBpdCBlbmRzLgogLSAodm9p
ZClfd2ViVmlld1dpbGxFbmROYXZpZ2F0aW9uR2VzdHVyZTooV0tXZWJWaWV3ICopd2ViVmlldyB3
aXRoTmF2aWdhdGlvblRvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVt
ICopaXRlbTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFNuYXBz
aG90QmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbTsKLS0g
KHZvaWQpX3dlYlZpZXdEaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZv
aWQpX3dlYlZpZXdEaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWRTdGFydExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1l
V2l0aEZpbGVOYW1lOihOU1N0cmluZyAqKWZpbGVOYW1lIHV0aTooTlNTdHJpbmcgKil1dGk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3Bv
bnNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25SZXNwb25zZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogLyohIENvbnRh
aW5zIGluZm9ybWF0aW9uIGFib3V0IGEgbmF2aWdhdGlvbiByZXNwb25zZSwgdXNlZCBmb3IgbWFr
aW5nIHBvbGljeSBkZWNpc2lvbnMuCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8w
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFj
ZSBXS05hdmlnYXRpb25SZXNwb25zZSA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgQSBCb29s
ZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgZnJhbWUgYmVpbmcgbmF2aWdhdGVkIGlz
IHRoZSBtYWluIGZyYW1lLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFy
YW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAKIC8qISBXS09wZW5QYW5lbFBhcmFtZXRlcnMgY29udGFpbnMgcGFyYW1ldGVy
cyB0aGF0IGEgZmlsZSB1cGxvYWQgY29udHJvbCBoYXMgc3BlY2lmaWVkLgogICovCi1XS19DTEFT
U19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKQogQGludGVyZmFjZSBXS09wZW5QYW5lbFBhcmFtZXRlcnMgOiBOU09iamVjdAog
CiAvKiEgQGFic3RyYWN0IFdoZXRoZXIgdGhlIGZpbGUgdXBsb2FkIGNvbnRyb2wgc3VwcG9ydHMg
bXVsdGlwbGUgZmlsZXMuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDcgKzM0LDcgQEAKICB2aWV3LiBUaGUgcHJlZmVyZW5jZXMgb2JqZWN0IGFzc29jaWF0
ZWQgd2l0aCBhIHdlYiB2aWV3IGlzIHNwZWNpZmllZCBieQogIGl0cyB3ZWIgdmlldyBjb25maWd1
cmF0aW9uLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tQcmVmZXJlbmNl
cyA6IE5TT2JqZWN0IDxOU0NvZGluZz4KIAogLyohIEBhYnN0cmFjdCBUaGUgbWluaW11bSBmb250
IHNpemUgaW4gcG9pbnRzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJp
dmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxNiArMzUsMTYgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLU3RvcmFnZUJsbwogICAgIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUFs
bG93QWxsLAogICAgIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2NrVGhpcmRQYXJ0eSwKICAg
ICBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9ja0FsbCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUo
MTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
OwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLRGVidWdPdmVybGF5UmVnaW9u
cykgewogICAgIF9XS05vbkZhc3RTY3JvbGxhYmxlUmVnaW9uID0gMSA8PCAwLAogICAgIF9XS1do
ZWVsRXZlbnRIYW5kbGVyUmVnaW9uID0gMSA8PCAxCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEx
LCA5XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAog
dHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3Mp
IHsKICAgICBfV0tKYXZhU2NyaXB0UnVudGltZUZsYWdzQWxsRW5hYmxlZCA9IDAKLX0gV0tfRU5V
TV9BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSwgaW9zKDkuMCkpOwogCiBAY2xhc3MgX1dLRXhwZXJpbWVudGFsRmVhdHVyZTsKIApAQCAtNTcs
NDAgKzU3LDQwIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tKYXZhU2MKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU6
KSBCT09MIF9jb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlOikgQk9PTCBfY29t
cG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlOwogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0VGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlOikgQk9PTCBfdGlsZWRTY3Jv
bGxpbmdJbmRpY2F0b3JWaXNpYmxlOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
UmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlOikgQk9PTCBfcmVzb3VyY2VVc2FnZU92ZXJsYXlW
aXNpYmxlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOikgX1dLRGVi
dWdPdmVybGF5UmVnaW9ucyBfdmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnMgV0tfQVZBSUxBQkxF
KDEwXzExLCA5XzApOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2ltcGxlTGlu
ZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5b3V0RGVidWdC
b3JkZXJzRW5hYmxlZCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkOikgQk9PTCBfYWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREaXNwbGF5TGlzdERyYXdpbmdFbmFi
bGVkOikgQk9PTCBfZGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0
QXV0b3NpemluZ0VuYWJsZWQ6KSBCT09MIF90ZXh0QXV0b3NpemluZ0VuYWJsZWQgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0UmVzb3VyY2VVc2FnZU92ZXJsYXlWaXNpYmxlOikgQk9PTCBfcmVzb3VyY2VVc2FnZU92
ZXJsYXlWaXNpYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VmlzaWJsZURlYnVn
T3ZlcmxheVJlZ2lvbnM6KSBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zIF92aXNpYmxlRGVidWdPdmVy
bGF5UmVnaW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRl
cnNFbmFibGVkOikgQk9PTCBfc2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkOikgQk9PTCBfYWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpc3Bs
YXlMaXN0RHJhd2luZ0VuYWJsZWQ6KSBCT09MIF9kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkOikgQk9P
TCBfdGV4dEF1dG9zaXppbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkOikgQk9PTCBfZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBX
S19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkOikgQk9PTCBfZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0TG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJs
ZWQ6KSBCT09MIF9sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCBXS19BVkFJ
TEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2dz
UGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZDopIEJPT0wgX2xvZ3NQYWdlTWVzc2Fn
ZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwg
aW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRIaWRkZW5QYWdl
RE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZDopIEJPT0wgX2hpZGRlblBhZ2VET01UaW1lclRocm90
dGxpbmdFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdB
dXRvSW5jcmVhc2VzOikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNy
ZWFzZXMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQ6KSBCT09MIF9wYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5h
YmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZDop
IEJPT0wgX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFz
ZXM6KSBCT09MIF9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkOikgQk9PTCBfcGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVz
c2lvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93RmlsZUFj
Y2Vzc0Zyb21GaWxlVVJMczopIEJPT0wgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyBXS19B
VkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRK
YXZhU2NyaXB0UnVudGltZUZsYWdzOikgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFncyBfamF2YVNj
cmlwdFJ1bnRpbWVGbGFncyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9h
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRKYXZhU2NyaXB0
UnVudGltZUZsYWdzOikgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFncyBfamF2YVNjcmlwdFJ1bnRp
bWVGbGFncyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAotQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3RhbmRhbG9uZTosIGdldHRlcj1faXNTdGFu
ZGFsb25lKSBCT09MIF9zdGFuZGFsb25lIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0YW5kYWxvbmU6LCBnZXR0ZXI9X2lzU3RhbmRh
bG9uZSkgQk9PTCBfc3RhbmRhbG9uZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlhZ25vc3RpY0xv
Z2dpbmdFbmFibGVkOikgQk9PTCBfZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIFdLX0FWQUlMQUJM
RSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZDopIEJPT0wgX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0RGVmYXVsdEZvbnRTaXplOikgTlNVSW50ZWdlciBfZGVmYXVsdEZvbnRT
aXplIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldERlZmF1bHRGaXhlZFBpdGNoRm9udFNpemU6KSBOU1VJbnRlZ2Vy
IF9kZWZhdWx0Rml4ZWRQaXRjaEZvbnRTaXplIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEZpeGVkUGl0
Y2hGb250RmFtaWx5OikgTlNTdHJpbmcgKl9maXhlZFBpdGNoRm9udEZhbWlseSBXS19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXREZWZhdWx0Rm9udFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rm9udFNpemUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0Rml4ZWRQaXRjaEZvbnRTaXplOikgTlNV
SW50ZWdlciBfZGVmYXVsdEZpeGVkUGl0Y2hGb250U2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5LCBzZXR0ZXI9X3NldEZpeGVkUGl0Y2hGb250RmFtaWx5OikgTlNTdHJpbmcgKl9maXhlZFBp
dGNoRm9udEZhbWlseSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgb24gdGhl
IFdLV2Vic2l0ZURhdGFTdG9yZS4KIC8vIEZJWE1FOiBUaGlzIHByb3BlcnR5IHNob3VsZCBub3Qg
aGF2ZSB0aGUgdmVyYiAiaXMiIGluIGl0LgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0T2ZmbGluZUFwcGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQ6KSBCT09MIF9vZmZsaW5lQXBwbGlj
YXRpb25DYWNoZUlzRW5hYmxlZDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1
bGxTY3JlZW5FbmFibGVkOikgQk9PTCBfZnVsbFNjcmVlbkVuYWJsZWQgV0tfQVZBSUxBQkxFKDEw
XzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbFNjcmVlbkVu
YWJsZWQ6KSBCT09MIF9mdWxsU2NyZWVuRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMSksIGlvcyg5LjApKTsKIAotKyAoTlNBcnJheTxfV0tFeHBlcmltZW50YWxGZWF0dXJlICo+
ICopX2V4cGVyaW1lbnRhbEZlYXR1cmVzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKLS0gKEJPT0wpX2lzRW5hYmxlZEZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1
cmUgKilmZWF0dXJlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZv
aWQpX3NldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9yRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVh
dHVyZSAqKWZlYXR1cmUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworKyAo
TlNBcnJheTxfV0tFeHBlcmltZW50YWxGZWF0dXJlICo+ICopX2V4cGVyaW1lbnRhbEZlYXR1cmVz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
LSAoQk9PTClfaXNFbmFibGVkRm9yRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZl
YXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckZlYXR1cmU6KF9XS0V4cGVy
aW1lbnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCShy
ZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJldmlld0FjdGlvbkl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAj
aW1wb3J0IDxVSUtpdC9VSVZpZXdDb250cm9sbGVyLmg+CiAKLVdLX0FWQUlMQUJMRShOQSwgV0tf
SU9TX1RCQSkKK1dLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKQogQHByb3RvY29sIFdL
UHJldmlld0FjdGlvbkl0ZW0gPFVJUHJldmlld0FjdGlvbkl0ZW0+CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5LCByZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50
aWZpZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDkgQEAKIAogI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyT3BlbiBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEp
OwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZp
ZXJBZGRUb1JlYWRpbmdMaXN0IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHkgV0tf
QVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdL
UHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyU2hhcmUgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1Nf
VEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVu
dGlmaWVyT3BlbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGlu
Z0xpc3QgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJDb3B5IFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyU2hhcmUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDIwMjc1
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVu
dEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpCitXS19DTEFT
U19BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFjZSBXS1ByZXZpZXdFbGVtZW50
SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSwgbnVsbGFibGUpIE5TVVJMICpsaW5rVVJMOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAkocmV2aXNpb24gMjAy
NzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAKIEBlbmQKIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwg
aW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLUHJvY2Vzc0dyb3VwIDogTlNPYmplY3QKIAogLSAoaWQp
aW5pdFdpdGhJbmplY3RlZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkw7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKICBpbXBsZW1l
bnRhdGlvbi1kZWZpbmVkIHByb2Nlc3MgbGltaXQgaXMgcmVhY2hlZDsgYWZ0ZXIgdGhhdCwgd2Vi
IHZpZXdzCiAgd2l0aCB0aGUgc2FtZSBwcm9jZXNzIHBvb2wgZW5kIHVwIHNoYXJpbmcgd2ViIGNv
bnRlbnQgcHJvY2Vzc2VzLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tQ
cm9jZXNzUG9vbCA6IE5TT2JqZWN0IDxOU0NvZGluZz4KIEBlbmQKIApJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywyMyAr
NDMsMjMgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uICpfY29uZmlndXJhdGlvbjsKIAogLSAodm9pZClfc2V0QWxsb3dzU3BlY2lm
aWNIVFRQU0NlcnRpZmljYXRlOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihO
U1N0cmluZyAqKWhvc3Q7Ci0tICh2b2lkKV9zZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZh
bHVhdGlvbjooQk9PTCl2YWx1ZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CistICh2b2lkKV9z
ZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbjooQk9PTCl2YWx1ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIC0gKHZvaWQpX3NldENvb2tpZUFj
Y2VwdFBvbGljeTooTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeTsKIAogLSAoaWQpX29i
amVjdEZvckJ1bmRsZVBhcmFtZXRlcjooTlNTdHJpbmcgKilwYXJhbWV0ZXI7CiAtICh2b2lkKV9z
ZXRPYmplY3Q6KGlkIDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29kaW5nPilvYmplY3QgZm9yQnVuZGxl
UGFyYW1ldGVyOihOU1N0cmluZyAqKXBhcmFtZXRlcjsKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQgPE5TQ29weWluZywgTlNTZWN1cmVDb2Rpbmc+
PgotLSAodm9pZClfc2V0T2JqZWN0c0ZvckJ1bmRsZVBhcmFtZXRlcnNXaXRoRGljdGlvbmFyeToo
TlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7CistICh2b2lkKV9zZXRPYmplY3RzRm9yQnVuZGxlUGFyYW1ldGVyc1dpdGhEaWN0aW9u
YXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0aW9uYXJ5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vh
aywgc2V0dGVyPV9zZXREb3dubG9hZERlbGVnYXRlOikgaWQgPF9XS0Rvd25sb2FkRGVsZWdhdGU+
IF9kb3dubG9hZERlbGVnYXRlOwotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1f
c2V0QXV0b21hdGlvbkRlbGVnYXRlOikgaWQgPF9XS0F1dG9tYXRpb25EZWxlZ2F0ZT4gX2F1dG9t
YXRpb25EZWxlZ2F0ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRBdXRvbWF0aW9uRGVsZWdhdGU6KSBp
ZCA8X1dLQXV0b21hdGlvbkRlbGVnYXRlPiBfYXV0b21hdGlvbkRlbGVnYXRlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiArIChOU1VSTCAq
KV93ZWJzaXRlRGF0YVVSTEZvckNvbnRhaW5lcldpdGhVUkw6KE5TVVJMICopY29udGFpbmVyVVJM
OwogKyAoTlNVUkwgKilfd2Vic2l0ZURhdGFVUkxGb3JDb250YWluZXJXaXRoVVJMOihOU1VSTCAq
KWNvbnRhaW5lclVSTCBidW5kbGVJZGVudGlmaWVySWZOb3RJbkNvbnRhaW5lcjooTlNTdHJpbmcg
KilidW5kbGVJZGVudGlmaWVyOwogCi0tICh2b2lkKV93YXJtSW5pdGlhbFByb2Nlc3MgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfYXV0b21hdGlvbkNhcGFi
aWxpdGllc0RpZENoYW5nZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0t
ICh2b2lkKV9zZXRBdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRv
bWF0aW9uU2Vzc2lvbiBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2
b2lkKV93YXJtSW5pdGlhbFByb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9hdXRvbWF0aW9uQ2FwYWJpbGl0aWVzRGlk
Q2hhbmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClfc2V0QXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9u
ICopYXV0b21hdGlvblNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5
IHdoaWxlIG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KIC0gKHZvaWQpX3Rl
cm1pbmF0ZURhdGFiYXNlUHJvY2VzczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAkocmV2aXNpb24gMjAyNzU5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
LyohIEEgV0tTY3JpcHRNZXNzYWdlIG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBh
IG1lc3NhZ2Ugc2VudCBmcm9tCiAgYSB3ZWJwYWdlLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgV0tTY3JpcHRNZXNzYWdlIDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFjdCBU
aGUgYm9keSBvZiB0aGUgbWVzc2FnZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tTZWN1cml0eU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiAyMDI3NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4u
aAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogICovCiBOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTEsIDlfMCkKK1dLX0NMQVNTX0FWQUlM
QUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgV0tTZWN1cml0eU9yaWdp
biA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVS
ZWZXcmFwcGVyLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tUeXBlUmVmV3JhcHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICsz
MCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktp
dC9XS0Jhc2UuaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLVHlwZVJlZldy
YXBwZXIgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0aE9iamVjdDooV0tUeXBlUmVmKW9iamVj
dDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNyBA
QCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogICBAZGlzY3Vzc2lvbiBZb3VyIGFwcCBzaG91bGQg
cmVtb3ZlIHRoZSB3ZWIgdmlldyBmcm9tIHRoZSB2aWV3IGhpZXJhcmNoeSBhbmQgdXBkYXRlCiAg
IHRoZSBVSSBhcyBuZWVkZWQsIHN1Y2ggYXMgYnkgY2xvc2luZyB0aGUgY29udGFpbmluZyBicm93
c2VyIHRhYiBvciB3aW5kb3cuCiAgICovCi0tICh2b2lkKXdlYlZpZXdEaWRDbG9zZTooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CistICh2b2lkKXdlYlZpZXdE
aWRDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBEaXNwbGF5cyBhIEphdmFTY3JpcHQgYWxl
cnQgcGFuZWwuCiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxl
Z2F0ZSBtZXRob2QuCkBAIC0xMjksNyArMTI5LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
ICBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgaW52b2tlZCBmb3IgZWxlbWVudHMgdGhhdCBoYXZl
IGRlZmF1bHQgcHJldmlldyBpbiBXZWJLaXQsIHdoaWNoIGlzCiAgbGltaXRlZCB0byBsaW5rcy4g
SW4gdGhlIGZ1dHVyZSwgaXQgY291bGQgYmUgaW52b2tlZCBmb3IgYWRkaXRpb25hbCBlbGVtZW50
cy4KICAqLwotLSAoQk9PTCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFByZXZp
ZXdFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FWQUlMQUJM
RShOQSwgV0tfSU9TX1RCQSk7CistIChCT09MKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
c2hvdWxkUHJldmlld0VsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8g
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGFic3RyYWN0IEFsbG93
cyB5b3VyIGFwcCB0byBwcm92aWRlIGEgY3VzdG9tIHZpZXcgY29udHJvbGxlciB0byBzaG93IHdo
ZW4gdGhlIGdpdmVuIGVsZW1lbnQgaXMgcGVla2VkLgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIg
dmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUgbWV0aG9kLgpAQCAtMTQ0LDEzICsxNDQsMTMgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICBSZXR1cm5pbmcgbmlsIHdpbGwgcmVzdWx0IGluIFdl
YktpdCdzIGRlZmF1bHQgcHJldmlldyBiZWhhdmlvci4gd2ViVmlldzpjb21taXRQcmV2aWV3aW5n
Vmlld0NvbnRyb2xsZXI6IHdpbGwgb25seSBiZSBpbnZva2VkCiAgaWYgYSBub24tbmlsIHZpZXcg
Y29udHJvbGxlciB3YXMgcmV0dXJuZWQuCiAgKi8KLS0gKG51bGxhYmxlIFVJVmlld0NvbnRyb2xs
ZXIgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdpbmdWaWV3Q29udHJvbGxl
ckZvckVsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8gZGVmYXVsdEFj
dGlvbnM6KE5TQXJyYXk8aWQgPFdLUHJldmlld0FjdGlvbkl0ZW0+PiAqKXByZXZpZXdBY3Rpb25z
IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistIChudWxsYWJsZSBVSVZpZXdDb250cm9s
bGVyICopd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3aW5nVmlld0NvbnRyb2xs
ZXJGb3JFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGRlZmF1bHRB
Y3Rpb25zOihOU0FycmF5PGlkIDxXS1ByZXZpZXdBY3Rpb25JdGVtPj4gKilwcmV2aWV3QWN0aW9u
cyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qISBAYWJzdHJhY3QgQWxs
b3dzIHlvdXIgYXBwIHRvIHBvcCB0byB0aGUgdmlldyBjb250cm9sbGVyIGl0IGNyZWF0ZWQuCiAg
QHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2Qu
CiAgQHBhcmFtIHByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBUaGUgdmlldyBjb250cm9sbGVyIHRo
YXQgaXMgYmVpbmcgcG9wcGVkLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICop
cHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Cist
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2luZ1ZpZXdD
b250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlmIC8vIFRBUkdFVF9PU19J
UEhPTkUKIApAQCAtMTY0LDcgKzE2NCw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKICBJ
ZiB5b3UgZG8gbm90IGltcGxlbWVudCB0aGlzIG1ldGhvZCwgdGhlIHdlYiB2aWV3IHdpbGwgYmVo
YXZlIGFzIGlmIHRoZSB1c2VyIHNlbGVjdGVkIHRoZSBDYW5jZWwgYnV0dG9uLgogICovCi0tICh2
b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuT3BlblBhbmVsV2l0aFBhcmFtZXRl
cnM6KFdLT3BlblBhbmVsUGFyYW1ldGVycyAqKXBhcmFtZXRlcnMgaW5pdGlhdGVkQnlGcmFtZToo
V0tGcmFtZUluZm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxO
U1VSTCAqPiAqIF9OdWxsYWJsZSBVUkxzKSljb21wbGV0aW9uSGFuZGxlciBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgTkEpOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1
bk9wZW5QYW5lbFdpdGhQYXJhbWV0ZXJzOihXS09wZW5QYW5lbFBhcmFtZXRlcnMgKilwYXJhbWV0
ZXJzIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKE5TQXJyYXk8TlNVUkwgKj4gKiBfTnVsbGFibGUgVVJMcykpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiAjZW5kaWYK
IApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MywzMyArNTMsMzMgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClf
d2ViVmlld0Nsb3NlOihXS1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmlld0Z1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZTooV0tXZWJWaWV3ICopd2ViVmlldzsKLS0gKHZvaWQpX3dl
YlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxF
KDEwXzExLCA4XzMpOwotLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJMRSgxMF8xMSwgOF8zKTsKKy0gKHZvaWQpX3dlYlZpZXdE
aWRFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOC4zKSk7CistICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1bGxzY3Jl
ZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOC4zKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VP
ck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZDooQ0dTaXplKXNpemUgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotLSAoTlNEaWN0aW9uYXJ5ICopX2RhdGFEZXRlY3Rpb25Db250
ZXh0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGlt
YWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNEaWN0aW9uYXJ5
ICopX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKICNp
ZiBUQVJHRVRfT1NfSVBIT05FCi0tIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudCBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CistIChCT09MKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1l
bnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlv
cyg5XzApKTsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY3Rp
b25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1bHRB
Y3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNDbGlj
a0F0UG9pbnQ6KENHUG9pbnQpcG9pbnQ7CiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHNob3VsZFJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6KE5TVVJM
ICopdXJsIGlzTWFpbkZyYW1lOihCT09MKWlzTWFpbkZyYW1lIG1haW5GcmFtZVVSTDooTlNVUkwg
KiltYWluRnJhbWVVUkw7Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBXS19B
VkFJTEFCTEUoTkEsIDlfMCk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmll
d2VkVmlld0NvbnRyb2xsZXIgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsUHJldmlld0ltYWdlV2l0aFVSTDooTlNVUkwgKilp
bWFnZVVSTCBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdlZEltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVS
TCBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIg
KilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBjb21taXR0aW5nOihCT09MKWNvbW1pdHRpbmcgV0tf
QVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJl
dmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAoQk9PTClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OihfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJB
KTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWx0ZXJuYXRlQWN0aW9u
Rm9yVVJMOihOU1VSTCAqKXVybCBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotLSAoTlNB
cnJheSAqKV9hdHRhY2htZW50TGlzdEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLS0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsK
LS0gKFVJRWRnZUluc2V0cylfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmaW5hbE9ic2N1
cmVkSW5zZXRzRm9yU2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVs
b2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2lu
dCAqKXRhcmdldENvbnRlbnRPZmZzZXQgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAoVUlWaWV3
Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29u
dHJvbGxlckZvclVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxl
bWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvICopZWxlbWVudEluZm8gV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAoVUlWaWV3Q29udHJv
bGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxl
ckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJy
YXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXplIFdL
X0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGluZ1Zp
ZXdDb250cm9sbGVyRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOworLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1cmwgV0tf
QVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICop
cHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1hZ2VXaXRoVVJM
OihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdpdGhVUkw6
KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xs
ZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBjb21taXR0aW5n
OihCT09MKWNvbW1pdHRpbmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xs
ZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElfQVZB
SUxBQkxFKGlvcyg5XzApKTsKKy0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
c2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVt
ZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgYWx0ZXJuYXRlQWN0aW9uRm9yVVJMOihOU1VSTCAqKXVybCBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistIChOU0FycmF5ICopX2F0dGFjaG1l
bnRMaXN0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CistIChOU1VJbnRlZ2VyKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGluZGV4SW50b0F0dGFjaG1lbnRMaXN0Rm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKFVJ
RWRnZUluc2V0cylfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmaW5hbE9ic2N1cmVkSW5z
ZXRzRm9yU2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6
KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAqKXRh
cmdldENvbnRlbnRPZmZzZXQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistIChVSVZpZXdD
b250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250
cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVt
ZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8gKillbGVtZW50SW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKKy0gKFVJVmlld0Nv
bnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRy
b2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihO
U0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6
ZSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJl
c2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19B
UElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAjZWxzZQotLSAoTlNNZW51ICopX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxl
bWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIE5BKTsKLS0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxl
bWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZv
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CistIChOU01lbnUgKilfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50Oihf
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSk7CistIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5m
byBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAjZW5kaWYKIAogQGVuZApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAg
VGhlIHVzZXIgY29udGVudCBjb250cm9sbGVyIGFzc29jaWF0ZWQgd2l0aCBhIHdlYiB2aWV3IGlz
IHNwZWNpZmllZCBieSBpdHMKICB3ZWIgdmlldyBjb25maWd1cmF0aW9uLgogICovCi1XS19DTEFT
U19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgOiBOU09iamVj
dCA8TlNDb2Rpbmc+CiAKIC8qISBAYWJzdHJhY3QgVGhlIHVzZXIgc2NyaXB0cyBhc3NvY2lhdGVk
IHdpdGggdGhpcyB1c2VyIGNvbnRlbnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxl
clByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzQsMTggKzM0LDE4IEBACiAKIEBpbnRlcmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIgKFdLUHJpdmF0ZSkKIAotLSAodm9pZClfcmVtb3ZlVXNlclNjcmlwdDooV0tVc2VyU2NyaXB0
ICopdXNlclNjcmlwdCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2
b2lkKV9yZW1vdmVBbGxVc2VyU2NyaXB0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDoo
X1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOworLSAodm9pZClfcmVtb3ZlVXNlclNjcmlwdDooV0tVc2VyU2Ny
aXB0ICopdXNlclNjcmlwdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2NpYXRlZFdp
dGhVc2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3Js
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
IAotLSAodm9pZClfYWRkVXNlckNvbnRlbnRGaWx0ZXI6KF9XS1VzZXJDb250ZW50RmlsdGVyICop
dXNlckNvbnRlbnRGaWx0ZXIgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotLSAodm9pZClfcmVt
b3ZlVXNlckNvbnRlbnRGaWx0ZXI6KE5TU3RyaW5nICopdXNlckNvbnRlbnRGaWx0ZXJOYW1lIFdL
X0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLS0gKHZvaWQpX3JlbW92ZUFsbFVzZXJDb250ZW50Rmls
dGVycyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci0KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgY29weSkgTlNBcnJheTxfV0tVc2VyU3R5bGVTaGVldCAqPiAqX3VzZXJTdHlsZVNo
ZWV0cyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV9hZGRV
c2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV9yZW1vdmVVc2VyU3R5bGVT
aGVldDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMg
V0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfcmVtb3ZlQWxs
VXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29u
dGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7CistICh2b2lkKV9hZGRVc2VyQ29udGVudEZpbHRlcjooX1dLVXNlckNvbnRlbnRG
aWx0ZXIgKil1c2VyQ29udGVudEZpbHRlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKTsKKy0gKHZvaWQpX3JlbW92ZVVzZXJDb250ZW50RmlsdGVyOihOU1N0cmluZyAq
KXVzZXJDb250ZW50RmlsdGVyTmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKKy0gKHZvaWQpX3JlbW92ZUFsbFVzZXJDb250ZW50RmlsdGVycyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKKworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PF9XS1VzZXJTdHlsZVNoZWV0ICo+ICpfdXNlclN0eWxl
U2hlZXRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClfYWRkVXNlclN0eWxlU2hlZXQ6KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNl
clN0eWxlU2hlZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKV9yZW1vdmVVc2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxlU2hl
ZXQgKil1c2VyU3R5bGVTaGVldCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3Js
ZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2FkZFNj
cmlwdE1lc3NhZ2VIYW5kbGVyOihpZCA8V0tTY3JpcHRNZXNzYWdlSGFuZGxlcj4pc2NyaXB0TWVz
c2FnZUhhbmRsZXIgbmFtZTooTlNTdHJpbmcgKiluYW1lIHVzZXJDb250ZW50V29ybGQ6KF9XS1Vz
ZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkOwogLSAodm9pZClfcmVtb3ZlU2NyaXB0
TWVzc2FnZUhhbmRsZXJGb3JOYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNvbnRlbnRXb3JsZDoo
X1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgJKHJldmlzaW9u
IDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2Ny
aXB0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDExICszOSwxMSBAQCBOU19BU1NVTUVfTk9OTlVM
TF9CRUdJTgogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSkgewogICAgIFdLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQsCiAg
ICAgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRFbmQKLX0gV0tfRU5VTV9BVkFJ
TEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpOwogCiAvKiEgQSBAbGluayBXS1VzZXJTY3JpcHQgQC9saW5rIG9iamVjdCByZXByZXNl
bnRzIGEgc2NyaXB0IHRoYXQgY2FuIGJlIGluamVjdGVkIGludG8gd2VicGFnZXMuCiAgKi8KLVdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1VzZXJTY3JpcHQgOiBOU09iamVjdCA8TlND
b3B5aW5nPgogCiAvKiBAYWJzdHJhY3QgVGhlIHNjcmlwdCBzb3VyY2UgY29kZS4gKi8KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2Vy
U2NyaXB0UHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsMTAgKzMzLDEwIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBpbnRlcmZhY2UgV0tV
c2VyU2NyaXB0IChXS1ByaXZhdGUpCiAKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6
KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRp
bWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkg
bGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxl
Z2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCB1c2Vy
Q29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tIChpbnN0YW5jZXR5cGUpX2luaXRX
aXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWlu
RnJhbWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdo
aXRlbGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFj
a2xpc3QgYXNzb2NpYXRlZFVSTDooTlNVUkwgKilhc3NvY2lhdGVkVVJMIHVzZXJDb250ZW50V29y
bGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6
KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRp
bWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkg
bGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxl
Z2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCB1c2Vy
Q29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKGlu
c3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRp
bWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVP
bmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3Ry
aW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmlu
ZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCBhc3NvY2lhdGVkVVJMOihOU1VSTCAqKWFzc29jaWF0ZWRV
UkwgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29y
bGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLVXNlckNvbnRlbnRXb3JsZCAq
X3VzZXJDb250ZW50V29ybGQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tVc2VyQ29udGVudFdvcmxkICpfdXNl
ckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVmlld1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc2LDcgKzc2LDcgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0Vmlld1NjYWxlOikgQ0dGbG9hdCBfdmlld1NjYWxlOwogCi1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOikgQ0dGbG9hdCBfb3ZlcnJp
ZGVEZXZpY2VTY2FsZUZhY3RvciBXS19BVkFJTEFCTEUoMTBfMTEsIE5BKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KSBDR0Zsb2F0
IF9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF1dG9tYXRpY2FsbHlBZGp1
c3RzQ29udGVudEluc2V0czopIEJPT0wgX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0
czsKIApAQCAtODQsNyArODQsNyBAQAogQHByb3BlcnR5IChjb3B5LCBub25hdG9taWMpIE5TQ29s
b3IgKnVuZGVybGF5Q29sb3I7CiAKICNpZiBXS19BUElfRU5BQkxFRAotQHByb3BlcnR5IChzdHJv
bmcsIG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnNwZWN0b3JBdHRhY2htZW50VmlldzopIE5TVmll
dyAqX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3IFdLX0FWQUlMQUJMRSgxMF8xMSwgTkEpOworQHBy
b3BlcnR5IChzdHJvbmcsIG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnNwZWN0b3JBdHRhY2htZW50
VmlldzopIE5TVmlldyAqX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjExKSk7CiAjZW5kaWYKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0
ZSwgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2Vy
OikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNDksMTAgKzQ5LDEwIEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiAgVXNlZCB0byBjb25maWd1cmUgQGxpbmsgV0tXZWJWaWV3IEAvbGluayBp
bnN0YW5jZXMuCiAgKi8KICNpZiBUQVJHRVRfT1NfSVBIT05FCi1XS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgV0tXZWJWaWV3IDogVUlWaWV3CiAjZWxzZQotV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLV2ViVmlldyA6IE5TVmlldwogI2VuZGlmCiAKQEAgLTk4LDcgKzk4LDcg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgSWYgcmVhZEFjY2Vzc1VSTCByZWZl
cmVuY2VzIGEgZGlyZWN0b3J5LCBmaWxlcyBpbnNpZGUgdGhhdCBmaWxlIG1heSBiZSBsb2FkZWQg
YnkgV2ViS2l0LgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUg
VVJMLgogICovCi0tIChudWxsYWJsZSBXS05hdmlnYXRpb24gKilsb2FkRmlsZVVSTDooTlNVUkwg
KilVUkwgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6KE5TVVJMICopcmVhZEFjY2Vzc1VSTCBXS19B
VkFJTEFCTEUoMTBfMTEsIDlfMCk7CistIChudWxsYWJsZSBXS05hdmlnYXRpb24gKilsb2FkRmls
ZVVSTDooTlNVUkwgKilVUkwgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6KE5TVVJMICopcmVhZEFj
Y2Vzc1VSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyoh
IEBhYnN0cmFjdCBTZXRzIHRoZSB3ZWJwYWdlIGNvbnRlbnRzIGFuZCBiYXNlIFVSTC4KICBAcGFy
YW0gc3RyaW5nIFRoZSBzdHJpbmcgdG8gdXNlIGFzIHRoZSBjb250ZW50cyBvZiB0aGUgd2VicGFn
ZS4KQEAgLTExNCw3ICsxMTQsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBA
cGFyYW0gYmFzZVVSTCBBIFVSTCB0aGF0IGlzIHVzZWQgdG8gcmVzb2x2ZSByZWxhdGl2ZSBVUkxz
IHdpdGhpbiB0aGUgZG9jdW1lbnQuCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uLgogICovCi0t
IChudWxsYWJsZSBXS05hdmlnYXRpb24gKilsb2FkRGF0YTooTlNEYXRhICopZGF0YSBNSU1FVHlw
ZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6KE5TU3RyaW5nICop
Y2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBXS19BVkFJTEFC
TEUoMTBfMTEsIDlfMCk7CistIChudWxsYWJsZSBXS05hdmlnYXRpb24gKilsb2FkRGF0YTooTlNE
YXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGlu
Z05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICop
YmFzZVVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyoh
IEBhYnN0cmFjdCBOYXZpZ2F0ZXMgdG8gYW4gaXRlbSBmcm9tIHRoZSBiYWNrLWZvcndhcmQgbGlz
dCBhbmQgc2V0cyBpdAogIGFzIHRoZSBjdXJyZW50IGl0ZW0uCkBAIC0xNjgsNyArMTY4LDcgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgQGRpc2N1c3Npb24gQGxpbmsgV0tXZWJW
aWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFudCAKICBmb3Ig
dGhpcyBwcm9wZXJ0eS4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxs
YWJsZSkgU2VjVHJ1c3RSZWYgc2VydmVyVHJ1c3QgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdL
X0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgU2Vj
VHJ1c3RSZWYgc2VydmVyVHJ1c3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGlj
YXRpbmcgd2hldGhlciB0aGVyZSBpcyBhIGJhY2sgaXRlbSBpbgogIHRoZSBiYWNrLWZvcndhcmQg
bGlzdCB0aGF0IGNhbiBiZSBuYXZpZ2F0ZWQgdG8uCkBAIC0yMjgsMTMgKzIyOCwxMyBAQCBXS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAogLyohIEBhYnN0cmFjdCBUaGUgY3VzdG9tIHVz
ZXIgYWdlbnQgc3RyaW5nIG9yIG5pbCBpZiBubyBjdXN0b20gdXNlciBhZ2VudCBzdHJpbmcgaGFz
IGJlZW4gc2V0LgogKi8KLUBwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgY29weSkgTlNT
dHJpbmcgKmN1c3RvbVVzZXJBZ2VudCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVy
dHkgKG51bGxhYmxlLCBub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJh
Y3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBsaW5rIHByZXZpZXcgaXMgYWxs
b3dlZCBmb3IgYW55CiAgbGlua3MgaW5zaWRlIHRoaXMgV0tXZWJWaWV3LgogIEBkaXNjdXNzaW9u
IFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUyBvbiBNYWMgYW5kIGlPUy4KICAqLwotQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgYWxsb3dzTGlua1ByZXZpZXcgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzTGlua1ByZXZpZXcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBI
T05FCiAvKiEgQGFic3RyYWN0IFRoZSBzY3JvbGwgdmlldyBhc3NvY2lhdGVkIHdpdGggdGhlIHdl
YiB2aWV3LgpAQCAtMzA2LDcgKzMwNiw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8w
KQogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tEZXByZWNhdGVkKQogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXkgKmNlcnRpZmljYXRlQ2hhaW4gV0tfREVQ
UkVDQVRFRCgxMF8xMSwgV0tfTUFDX1RCQSwgOV8wLCBXS19JT1NfVEJBLCAiUGxlYXNlIHVzZSBz
ZXJ2ZXJUcnVzdCIpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0Fy
cmF5ICpjZXJ0aWZpY2F0ZUNoYWluIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
InNlcnZlclRydXN0IiwgbWFjb3N4KDEwLjExLCBXS19NQUNfVEJBKSwgaW9zKDkuMCwgV0tfSU9T
X1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tTZWxlY3Rpb25HcmFu
dWxhcml0eSkgewogICAgIFdLU2VsZWN0aW9uR3JhbnVsYXJpdHlEeW5hbWljLAogICAgIFdLU2Vs
ZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXIsCi19IFdLX0VOVU1fQVZBSUxBQkxFX0lPUyg4XzAp
OworfSBXS19BUElfQVZBSUxBQkxFKGlvcyg4LjApKTsKIAogLyohIEBlbnVtIFdLRGF0YURldGVj
dG9yVHlwZXMKICBAYWJzdHJhY3QgVGhlIHR5cGUgb2YgZGF0YSBkZXRlY3RlZC4KQEAgLTcyLDgg
KzcyLDggQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFdLRGF0YURldAogICAgIFdL
RGF0YURldGVjdG9yVHlwZUxvb2t1cFN1Z2dlc3Rpb24gPSAxIDw8IDYsCiAgICAgV0tEYXRhRGV0
ZWN0b3JUeXBlQWxsID0gTlNVSW50ZWdlck1heCwKIAotICAgIFdLRGF0YURldGVjdG9yVHlwZVNw
b3RsaWdodFN1Z2dlc3Rpb24gV0tfRU5VTV9ERVBSRUNBVEVEKE5BLCBOQSwgV0tfSU9TX1RCQSwg
V0tfSU9TX1RCQSwgIlBsZWFzZSB1c2UgV0tEYXRhRGV0ZWN0b3JUeXBlTG9va3VwU3VnZ2VzdGlv
biIpID0gV0tEYXRhRGV0ZWN0b3JUeXBlTG9va3VwU3VnZ2VzdGlvbiwKLX0gV0tfRU5VTV9BVkFJ
TEFCTEUoTkEsIFdLX0lPU19UQkEpOworICAgIFdLRGF0YURldGVjdG9yVHlwZVNwb3RsaWdodFN1
Z2dlc3Rpb24gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tEYXRhRGV0ZWN0
b3JUeXBlTG9va3VwU3VnZ2VzdGlvbiIsIGlvcyhXS19JT1NfVEJBLCBXS19JT1NfVEJBKSkgPSBX
S0RhdGFEZXRlY3RvclR5cGVMb29rdXBTdWdnZXN0aW9uLAorfSBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CiAKICNlbHNlCiAKQEAgLTkxLDcgKzkxLDcgQEAgdHlwZWRlZiBOU19P
UFRJT05TKE5TVUludGVnZXIsIFdLRGF0YURldAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
V0tVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KSB7CiAgICAgV0tVc2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5Q29udGVudCwKICAgICBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3lT
eXN0ZW0sCi19IFdLX0VOVU1fQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiAjZW5kaWYKIApAQCAtMTA3LDEzICsxMDcs
MTMgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFdLQXVkaW92aQogICAgIFdLQXVk
aW92aXN1YWxNZWRpYVR5cGVBdWRpbyA9IDEgPDwgMCwKICAgICBXS0F1ZGlvdmlzdWFsTWVkaWFU
eXBlVmlkZW8gPSAxIDw8IDEsCiAgICAgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUFsbCA9IE5TVUlu
dGVnZXJNYXgKLX0gV0tfRU5VTV9BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Cit9
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAvKiEgQSBXS1dlYlZpZXdDb25maWd1cmF0aW9uIG9iamVjdCBpcyBhIGNvbGxlY3Rpb24gb2Yg
cHJvcGVydGllcyB3aXRoCiAgd2hpY2ggdG8gaW5pdGlhbGl6ZSBhIHdlYiB2aWV3LgogIEBoZWxw
cyBDb250YWlucyBwcm9wZXJ0aWVzIHVzZWQgdG8gY29uZmlndXJlIGEgQGxpbmsgV0tXZWJWaWV3
IEAvbGluay4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb2RpbmcsIE5TQ29weWluZz4KIAogLyohIEBhYnN0
cmFjdCBUaGUgcHJvY2VzcyBwb29sIGZyb20gd2hpY2ggdG8gb2J0YWluIHRoZSB2aWV3J3Mgd2Vi
IGNvbnRlbnQKQEAgLTEzNCw3ICsxMzQsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKIAogLyohIEBhYnN0cmFjdCBUaGUgd2Vic2l0ZSBkYXRhIHN0b3JlIHRvIGJlIHVzZWQgYnkg
dGhlIHdlYiB2aWV3LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBXS1dlYnNp
dGVEYXRhU3RvcmUgKndlYnNpdGVEYXRhU3RvcmUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
QHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgV0tXZWJzaXRlRGF0YVN0b3JlICp3ZWJzaXRl
RGF0YVN0b3JlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAv
KiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHdlYiB2
aWV3IHN1cHByZXNzZXMKICBjb250ZW50IHJlbmRlcmluZyB1bnRpbCBpdCBpcyBmdWxseSBsb2Fk
ZWQgaW50byBtZW1vcnkuCkBAIC0xNDQsMTQgKzE0NCwxNCBAQCBXS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKIAogLyohIEBhYnN0cmFjdCBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24g
YXMgdXNlZCBpbiB0aGUgdXNlciBhZ2VudCBzdHJpbmcuCiAqLwotQHByb3BlcnR5IChudWxsYWJs
ZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50
IFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21p
YywgY29weSkgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xl
YW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEFpclBsYXkgaXMgYWxsb3dlZC4KICBAZGlzY3Vz
c2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIFdLX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0FpclBsYXlGb3JNZWRpYVBs
YXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJv
cGVydHkgKG5vbmF0b21pYykgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZXMgbWVkaWFUeXBlc1JlcXVp
cmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZXMgbWVk
aWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhP
TkUKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBIVE1M
NSB2aWRlb3MgcGxheSBpbmxpbmUKQEAgLTE3MSw3ICsxNzEsNyBAQCBXS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKICBwaWN0dXJlLWluLXBpY3R1cmUuCiAgQGRpc2N1c3Npb24gVGhlIGRl
ZmF1bHQgdmFsdWUgaXMgWUVTLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxv
d3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5
YmFjayBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKIAogLyohIEBhYnN0cmFjdCBBbiBlbnVt
IHZhbHVlIGluZGljYXRpbmcgdGhlIHR5cGUgb2YgZGF0YSBkZXRlY3Rpb24gZGVzaXJlZC4KICBA
ZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBXS0RhdGFEZXRlY3RvclR5cGVOb25lLgpA
QCAtMTgwLDcgKzE4MCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIGlmIHRo
ZSBkYXRhRGV0ZWN0b3JUeXBlcyBwcm9wZXJ0eSBpcyBzZXQgdG8gV0tEYXRhRGV0ZWN0b3JUeXBl
UGhvbmVOdW1iZXIgfCBXS0RhdGFEZXRlY3RvclR5cGVMaW5rIHwgV0tEYXRhRGV0ZWN0b3JUeXBl
Q2FsZW5kYXJFdmVudC4KIAogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgV0tEYXRhRGV0ZWN0
b3JUeXBlcyBkYXRhRGV0ZWN0b3JUeXBlcyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwor
QHByb3BlcnR5IChub25hdG9taWMpIFdLRGF0YURldGVjdG9yVHlwZXMgZGF0YURldGVjdG9yVHlw
ZXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAjZWxzZQogCkBAIC0xODgs
NyArMTg4LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgQGRpc2N1c3Npb24g
UG9zc2libGUgdmFsdWVzIGFyZSBkZXNjcmliZWQgaW4gV0tVc2VySW50ZXJmYWNlRGlyZWN0aW9u
UG9saWN5LgogIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFdLVXNlckludGVyZmFjZURpcmVjdGlvblBv
bGljeUNvbnRlbnQuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBXS1VzZXJJbnRlcmZhY2VE
aXJlY3Rpb25Qb2xpY3kgdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgTkEpOworQHByb3BlcnR5IChub25hdG9taWMpIFdLVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeSB1c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAogI2VuZGlmCiAKQEAgLTE5Nyw5ICsxOTcsOSBAQCBX
S19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiAoV0tEZXByZWNhdGVkKQogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQotQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckFjdGlvbiBXS19ERVBS
RUNBVEVEKE5BLCBOQSwgOF8wLCA5XzAsICJQbGVhc2UgdXNlIHJlcXVpcmVzVXNlckFjdGlvbkZv
ck1lZGlhUGxheWJhY2siKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlhUGxheWJh
Y2tBbGxvd3NBaXJQbGF5IFdLX0RFUFJFQ0FURUQoTkEsIE5BLCA4XzAsIDlfMCwgIlBsZWFzZSB1
c2UgYWxsb3dzQWlyUGxheUZvck1lZGlhUGxheWJhY2siKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIHJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2sgV0tfREVQUkVDQVRFRChO
QSwgTkEsIDlfMCwgMTBfMCwgIlBsZWFzZSB1c2UgbWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rp
b25Gb3JQbGF5YmFjayIpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbWVkaWFQbGF5YmFj
a1JlcXVpcmVzVXNlckFjdGlvbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJy
ZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrIiwgaW9zKDguMCwgOS4wKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCBtZWRpYVBsYXliYWNrQWxsb3dzQWlyUGxheSBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQbGF5YmFj
ayIsIGlvcyg4LjAsIDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVxdWlyZXNV
c2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIiwgaW9zKDkuMCwg
V0tfSU9TX1RCQSkpOwogI2VuZGlmCiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb25Qcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAkod29ya2luZyBj
b3B5KQpAQCAtNDEsMzggKzQxLDM4IEBACiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBz
ZXR0ZXI9X3NldEFsdGVybmF0ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXM6KSBXS1dlYlZp
ZXcgKl9hbHRlcm5hdGVXZWJWaWV3Rm9yTmF2aWdhdGlvbkdlc3R1cmVzOwogCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRUcmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNl
Y3VyZTopIEJPT0wgX3RyZWF0c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlIFdLX0FW
QUlMQUJMRShOQSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRyZWF0
c1NIQTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlOikgQk9PTCBfdHJlYXRzU0hBMVNpZ25l
ZENlcnRpZmljYXRlc0FzSW5zZWN1cmUgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlc3BlY3RzSW1hZ2VPcmllbnRhdGlvbjop
IEJPT0wgX3Jlc3BlY3RzSW1hZ2VPcmllbnRhdGlvbiBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
V0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcmludHNCYWNr
Z3JvdW5kczopIEJPT0wgX3ByaW50c0JhY2tncm91bmRzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0OikgQ0dGbG9hdCBfaW5jcmVtZW50YWxSZW5k
ZXJpbmdTdXBwcmVzc2lvblRpbWVvdXQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSmF2YVNjcmlwdE1h
cmt1cDopIEJPT0wgX2FsbG93c0phdmFTY3JpcHRNYXJrdXAgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29udmVy
dHNQb3NpdGlvblN0eWxlT25Db3B5OikgQk9PTCBfY29udmVydHNQb3NpdGlvblN0eWxlT25Db3B5
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEFsbG93c01ldGFSZWZyZXNoOikgQk9PTCBfYWxsb3dzTWV0YVJlZnJl
c2ggV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09M
IF9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNYWluQ29u
dGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkOikgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2Vz
dHVyZU92ZXJyaWRlRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnZpc2libGVBdXRvcGxheU5vdFBl
cm1pdHRlZDopIEJPT0wgX2ludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseTopIEJPT0wgX21lZGlhRGF0YUxvYWRzQXV0
b21hdGljYWxseSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6KSBCT09M
IF9hdHRhY2htZW50RWxlbWVudEVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5pdGlhbENhcGl0YWxp
emF0aW9uRW5hYmxlZDopIEJPT0wgX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVkIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFJlc3BlY3RzSW1hZ2VPcmllbnRhdGlvbjopIEJPT0wgX3Jlc3BlY3RzSW1hZ2VPcmll
bnRhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFByaW50c0JhY2tncm91bmRz
OikgQk9PTCBfcHJpbnRzQmFja2dyb3VuZHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dDopIENHRmxvYXQgX2luY3Jl
bWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QWxsb3dzSmF2YVNjcmlwdE1hcmt1cDopIEJPT0wgX2FsbG93c0phdmFTY3JpcHRN
YXJrdXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb252ZXJ0c1Bvc2l0aW9uU3R5
bGVPbkNvcHk6KSBCT09MIF9jb252ZXJ0c1Bvc2l0aW9uU3R5bGVPbkNvcHkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NNZXRhUmVmcmVzaDopIEJPT0wgX2FsbG93c01ldGFS
ZWZyZXNoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVy
cmlkZUVuYWJsZWQ6KSBCT09MIF9tYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW52aXNpYmxlQXV0b3BsYXlOb3RQZXJt
aXR0ZWQ6KSBCT09MIF9pbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseTopIEJPT0wgX21l
ZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEF0dGFjaG1lbnRFbGVtZW50RW5hYmxlZDopIEJPT0wgX2F0dGFjaG1lbnRFbGVtZW50RW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluaXRpYWxDYXBpdGFsaXphdGlvbkVu
YWJsZWQ6KSBCT09MIF9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QXBwbGVQYXlFbmFibGVkOikgQk9PTCBfYXBwbGVQYXlFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAjaWYgVEFSR0VUX09TX0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5OikgQk9PTCBfYWx3YXlzUnVuc0F0Rm9yZWdy
b3VuZFByaW9yaXR5IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5lQXR0cmli
dXRlOikgQk9PTCBfaW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1
dGUgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW46KSBCT09M
IF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuICBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWx3YXlz
UnVuc0F0Rm9yZWdyb3VuZFByaW9yaXR5OikgQk9PTCBfYWx3YXlzUnVuc0F0Rm9yZWdyb3VuZFBy
aW9yaXR5IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1
dGU6KSBCT09MIF9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0
ZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVuOikg
Qk9PTCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiAgV0tfQVBJX0FW
QUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNob3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBz
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfc2VydmljZUNvbnRyb2xzRW5h
YmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9pbWFnZUNvbnRyb2xzRW5h
YmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJv
bHNNYW5hZ2VyOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFu
YWdlciBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0U2hvd3NVUkxzSW5Ub29sVGlwczopIEJPT0wgX3Nob3dzVVJMc0luVG9vbFRp
cHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX3NlcnZpY2VD
b250cm9sc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW1hZ2VDb250cm9sc0VuYWJsZWQ6KSBCT09M
IF9pbWFnZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVz
VXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKICNlbmRpZgogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0
ZXI9X3NldFZpc2l0ZWRMaW5rUHJvdmlkZXI6KSBfV0tWaXNpdGVkTGlua1Byb3ZpZGVyICpfdmlz
aXRlZExpbmtQcm92aWRlciBXS19ERVBSRUNBVEVEKDEwXzEwLCBXS19NQUNfVEJBLCA4XzAsIFdL
X0lPU19UQkEsICJQbGVhc2UgdXNlIF92aXNpdGVkTGlua1N0b3JlIGluc3RlYWQiKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0VmlzaXRlZExpbmtQcm92aWRlcjop
IF9XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIgKl92aXNpdGVkTGlua1Byb3ZpZGVyIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl92aXNpdGVkTGlua1N0b3JlIiwgbWFjb3N4KDEwLjEw
LCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0
b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFdlYnNpdGVEYXRhU3RvcmU6KSBfV0tXZWJzaXRlRGF0
YVN0b3JlICpfd2Vic2l0ZURhdGFTdG9yZSBXS19ERVBSRUNBVEVEKDEwXzEwLCAxMF8xMSwgOF8w
LCA5XzAsICJQbGVhc2UgdXNlIHdlYnNpdGVEYXRhU3RvcmUgaW5zdGVhZCIpOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yQXVkaW9QbGF5YmFj
azopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxheWJhY2sgV0tfREVQUkVDQVRF
RChXS19NQUNfVEJBLCBXS19NQUNfVEJBLCBXS19JT1NfVEJBLCBXS19JT1NfVEJBLCAiUGxlYXNl
IHVzZSBtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIik7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXli
YWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5YmFjayBXS19ERVBSRUNB
VEVEKFdLX01BQ19UQkEsIFdLX01BQ19UQkEsIFdLX0lPU19UQkEsIFdLX0lPU19UQkEsICJQbGVh
c2UgdXNlIG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2siKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0V2Vic2l0ZURhdGFTdG9yZTopIF9X
S1dlYnNpdGVEYXRhU3RvcmUgKl93ZWJzaXRlRGF0YVN0b3JlIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIndlYnNpdGVEYXRhU3RvcmUiLCBtYWNvc3goMTAuMTAsIDEwLjExKSwg
aW9zKDguMCwgOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJl
c1VzZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9y
QXVkaW9QbGF5YmFjayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5
cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIiwgbWFjb3N4KFdLX01BQ19UQkEsIFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5YmFjazopIEJP
T0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2sgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFj
ayIsIG1hY29zeChXS19NQUNfVEJBLCBXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lP
U19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
X1dLUGFnaW5hdGlvbgogICAgIF9XS1BhZ2luYXRpb25Nb2RlUmlnaHRUb0xlZnQsCiAgICAgX1dL
UGFnaW5hdGlvbk1vZGVUb3BUb0JvdHRvbSwKICAgICBfV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRv
VG9wLAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25Ob25lLApA
QCAtNDYsNyArNDYsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVB
CiAgICAgX1dLSW1tZWRpYXRlQWN0aW9uTG9va3VwVGV4dCwKICAgICBfV0tJbW1lZGlhdGVBY3Rp
b25NYWlsdG9MaW5rLAogICAgIF9XS0ltbWVkaWF0ZUFjdGlvblRlbExpbmsKLX0gV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIE5BKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSkpOwogCiBAY2xhc3MgV0tCcm93c2luZ0NvbnRleHRIYW5kbGU7CiBAY2xhc3MgX1dLRnJhbWVI
YW5kbGU7CkBAIC03NCwyMSArNzQsMjEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
SW1tZWRpYXRlQQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX3VucmVh
Y2hhYmxlVVJMOwogCiAtICh2b2lkKV9sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZzooTlNTdHJpbmcg
KilzdHJpbmcgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIGZvclVucmVhY2hhYmxlVVJMOihOU1VS
TCAqKXVucmVhY2hhYmxlVVJMOwotLSAoV0tOYXZpZ2F0aW9uICopX2xvYWREYXRhOihOU0RhdGEg
KilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFt
ZTooTlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNl
VVJMIHVzZXJEYXRhOihpZCl1c2VyRGF0YSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7CistIChXS05hdmlnYXRpb24gKilfbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5
cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOihOU1N0cmluZyAq
KWNoYXJhY3RlckVuY29kaW5nTmFtZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgdXNlckRhdGE6
KGlkKXVzZXJEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKl9j
ZXJ0aWZpY2F0ZUNoYWluIFdLX0RFUFJFQ0FURUQoMTBfMTAsIDEwXzExLCA4XzAsIDlfMCwgInVz
ZSAtY2VydGlmaWNhdGVDaGFpbiIpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U0FycmF5ICpfY2VydGlmaWNhdGVDaGFpbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJjZXJ0aWZpY2F0ZUNoYWluIiwgbWFjb3N4KDEwLjEwLCAxMC4xMSksIGlvcyg4LjAsIDku
MCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX2NvbW1pdHRlZFVS
TDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKl9NSU1FVHlwZTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKl91c2VyQWdlbnQgV0tf
QVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U1N0cmluZyAqX3VzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKTsKIAogQHByb3BlcnR5IChjb3B5LCBzZXR0ZXI9X3NldEFwcGxpY2F0aW9uTmFtZUZvclVz
ZXJBZ2VudDopIE5TU3RyaW5nICpfYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OwogQHByb3Bl
cnR5IChjb3B5LCBzZXR0ZXI9X3NldEN1c3RvbVVzZXJBZ2VudDopIE5TU3RyaW5nICpfY3VzdG9t
VXNlckFnZW50OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVc2VyQ29udGVu
dEV4dGVuc2lvbnNFbmFibGVkOikgQk9PTCBfdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCBX
S19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRVc2VyQ29udGVudEV4dGVuc2lvbnNFbmFibGVkOikgQk9PTCBfdXNlckNvbnRlbnRFeHRlbnNp
b25zRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBwaWRfdCBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXI7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzRWRpdGFibGUsIHNldHRlcj1f
c2V0RWRpdGFibGU6KSBCT09MIF9lZGl0YWJsZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0VkaXRhYmxlLCBzZXR0ZXI9X3NldEVkaXRh
YmxlOikgQk9PTCBfZWRpdGFibGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3Mo
OS4wKSk7CiAKIC8vIEZJWE1FOiBSZW1vdmUgdGhlc2Ugb25jZSBub2JvZHkgaXMgdXNpbmcgdGhl
bS4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNEYXRhICpfc2Vzc2lvblN0YXRl
RGF0YTsKQEAgLTk4LDcgKzk4LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1t
ZWRpYXRlQQogLSAoV0tOYXZpZ2F0aW9uICopX3Jlc3RvcmVTZXNzaW9uU3RhdGU6KF9XS1Nlc3Np
b25TdGF0ZSAqKXNlc3Npb25TdGF0ZSBhbmROYXZpZ2F0ZTooQk9PTCluYXZpZ2F0ZTsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzUmVtb3RlSW5zcGVjdGlvbjopIEJP
T0wgX2FsbG93c1JlbW90ZUluc3BlY3Rpb247Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwg
c2V0dGVyPV9zZXRSZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNTdHJpbmcgKl9yZW1v
dGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlbW90ZUluc3Bl
Y3Rpb25OYW1lT3ZlcnJpZGU6KSBOU1N0cmluZyAqX3JlbW90ZUluc3BlY3Rpb25OYW1lT3ZlcnJp
ZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFkZHNWaXNpdGVkTGlua3M6KSBC
T09MIF9hZGRzVmlzaXRlZExpbmtzOwogCkBAIC0xNTIsOSArMTUyLDkgQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogCiAvLyBEZXByZWNhdGVkOiBVc2UgW19vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6XSBpbnN0ZWFkLgogLy8gVGhpcyBmdW5jdGlvbiBpcyBrZXB0IGZvciBi
aW5hcnkgY29tcGF0aWJpbGl0eSB3aXRoIGlPUyA4LjAsIGl0IGNhbiBiZSByZW1vdmVkIGFmdGVy
IHRoZSBiaW5jb21wYXQgd2luZG93LgotLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJz
V2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWluaW11bUxh
eW91dFNpemVGb3JNaW5pbWFsVUk6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxV
SSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVk
U2l6ZU92ZXJyaWRlIFdLX0RFUFJFQ0FURUQoTkEsIE5BLCA4XzAsIDlfMCwgInVzZSAtX292ZXJy
aWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJl
ZFNpemVPdmVycmlkZToiKTsKKy0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhN
aW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1pbmltdW1MYXlvdXRT
aXplRm9yTWluaW1hbFVJOihDR1NpemUpbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUkgbWF4
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItX292ZXJyaWRlTGF5
b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZToiLCBpb3MoOC4wLCA5LjApKTsKIAotLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWF4
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNjdXJlZFNpemVP
dmVycmlkZSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CistICh2b2lkKV9vdmVycmlkZUxheW91dFBh
cmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBt
YXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9ic2N1cmVkU2l6
ZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCiAtIChVSVZpZXcgKilfdmll
d0ZvckZpbmRVSTsKIApAQCAtMTY1LDExICsxNjUsMTEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgX1dLSW1tZWRpYXRlQQogCiAvLyBQdXRzIHRoZSB2aWV3IGludG8gYSBzdGF0ZSB3aGVy
ZSBiZWluZyB0YWtlbiBvdXQgb2YgdGhlIHZpZXcgaGllcmFyY2h5IGFuZCByZXNpZ25pbmcgZmly
c3QgcmVzcG9uZGVyCiAvLyB3aWxsIG5vdCBjb3VudCBhcyBiZWNvbWluZyBpbmFjdGl2ZSBhbmQg
dW5mb2N1c2VkLiBUaGUgcmV0dXJuZWQgYmxvY2sgbXVzdCBiZSBjYWxsZWQgdG8gZXhpdCB0aGUg
c3RhdGUuCi0tICh2b2lkICheKSh2b2lkKSlfcmV0YWluQWN0aXZlRm9jdXNlZFN0YXRlIFdLX0FW
QUlMQUJMRShOQSwgOV8wKTsKKy0gKHZvaWQgKF4pKHZvaWQpKV9yZXRhaW5BY3RpdmVGb2N1c2Vk
U3RhdGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAKLS0gKHZvaWQpX2JlY29tZUZpcnN0
UmVzcG9uZGVyV2l0aFNlbGVjdGlvbk1vdmluZ0ZvcndhcmQ6KEJPT0wpc2VsZWN0aW5nRm9yd2Fy
ZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBkaWRCZWNvbWVGaXJzdFJlc3BvbmRl
cikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAodm9pZClfYmVj
b21lRmlyc3RSZXNwb25kZXJXaXRoU2VsZWN0aW9uTW92aW5nRm9yd2FyZDooQk9PTClzZWxlY3Rp
bmdGb3J3YXJkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIGRpZEJlY29tZUZpcnN0
UmVzcG9uZGVyKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsK
IAotLSAoaWQpX3NuYXBzaG90TGF5ZXJDb250ZW50c0ZvckJhY2tGb3J3YXJkTGlzdEl0ZW06KFdL
QmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0gV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAoaWQp
X3NuYXBzaG90TGF5ZXJDb250ZW50c0ZvckJhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0Zvcndh
cmRMaXN0SXRlbSAqKWl0ZW0gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAtIChOU0FycmF5
ICopX2RhdGFEZXRlY3Rpb25SZXN1bHRzOwogCiAjZWxzZQpAQCAtMTgwLDcgKzE4MCw3IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czopIEJPT0wg
X2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czsKIAogLy8gRGVmYXVsdCB2YWx1ZSBp
cyAwLiBBIHZhbHVlIG9mIDAgbWVhbnMgdGhlIHdpbmRvdydzIGJhY2tpbmcgc2NhbGUgZmFjdG9y
IHdpbGwgYmUgdXNlZCBhbmQgYXV0b21hdGljYWxseSB1cGRhdGUgd2hlbiB0aGUgd2luZG93IG1v
dmVzIHNjcmVlbnMuCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZURl
dmljZVNjYWxlRmFjdG9yOikgQ0dGbG9hdCBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciBXS19B
VkFJTEFCTEUoMTBfMTEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92
ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KSBDR0Zsb2F0IF9vdmVycmlkZURldmljZVNjYWxlRmFj
dG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6KSBCT09MIF93
aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOwogCkBAIC0xODgsMTggKzE4OCwxOCBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAvLyBkbyBzb21ldGhpbmcg
Y3VzdG9tLCByZXR1cm4gYW4gb2JqZWN0IHRoYXQgY29uZm9ybXMgdG8gdGhlIE5TSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlciBwcm90b2NvbC4KIC0gKGlkKV9pbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDooX1dLSGl0VGVzdFJlc3VsdCAq
KWhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6KF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1c2Vy
RGF0YTooaWQ8TlNTZWN1cmVDb2Rpbmc+KXVzZXJEYXRhOwogCi1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtTGF5b3V0
V2lkdGggV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0aDopIENHRmxvYXQgX21pbmltdW1MYXlvdXRX
aWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKIC8vIFdoZW4gdXNp
bmcgX21pbmltdW1MYXlvdXRXaWR0aCwgdGhlIHdlYiBjb250ZW50IHdpbGwgbGF5IG91dCB0byB0
aGUgaW50cmluc2ljIGhlaWdodAogLy8gb2YgdGhlIGNvbnRlbnQ7IHVzZSB0aGlzIHByb3BlcnR5
IHRvIGZvcmNlIGl0IHRvIGxheSBvdXQgdG8gdGhlIGhlaWdodCBvZiB0aGUgdmlldyBpbnN0ZWFk
LgotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5kQ29udGVudFRv
Vmlld0hlaWdodEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250ZW50VG9WaWV3
SGVpZ2h0Rm9yQXV0b0xheW91dCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdo
dEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250ZW50VG9WaWV3SGVpZ2h0Rm9y
QXV0b0xheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKIC0gKE5T
UHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5m
byAqKXByaW50SW5mbzsKLS0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRo
UHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5mbyBmb3JGcmFtZTooX1dLRnJhbWVIYW5k
bGUgKilmcmFtZUhhbmRsZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Cist
IChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmlu
dEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVIYW5kbGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
ICNlbmRpZgogCi0tIChXS05hdmlnYXRpb24gKilfcmVsb2FkV2l0aG91dENvbnRlbnRCbG9ja2Vy
cyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistIChXS05hdmlnYXRpb24g
KilfcmVsb2FkV2l0aG91dENvbnRlbnRCbG9ja2VycyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfa2lsbFdlYkNvbnRlbnRQ
cm9jZXNzQW5kUmVzZXRTdGF0ZTsKIApAQCAtMjIwLDI2ICsyMjAsMjYgQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0VGV4dFpvb21GYWN0b3I6KSBkb3VibGUgX3RleHRab29tRmFjdG9yOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0UGFnZVpvb21GYWN0b3I6KSBkb3VibGUgX3BhZ2Vab29t
RmFjdG9yOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXREaWFnbm9z
dGljTG9nZ2luZ0RlbGVnYXRlOikgaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9k
aWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRGVsZWdh
dGU6KSBpZCA8X1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4gX2RpYWdub3N0aWNMb2dnaW5n
RGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRGaW5kRGVsZWdhdGU6KSBpZCA8X1dL
RmluZERlbGVnYXRlPiBfZmluZERlbGVnYXRlOwogLSAodm9pZClfZmluZFN0cmluZzooTlNTdHJp
bmcgKilzdHJpbmcgb3B0aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9ucyBtYXhDb3VudDooTlNV
SW50ZWdlciltYXhDb3VudDsKIC0gKHZvaWQpX2NvdW50U3RyaW5nTWF0Y2hlczooTlNTdHJpbmcg
KilzdHJpbmcgb3B0aW9uczooX1dLRmluZE9wdGlvbnMpb3B0aW9ucyBtYXhDb3VudDooTlNVSW50
ZWdlciltYXhDb3VudDsKIC0gKHZvaWQpX2hpZGVGaW5kVUk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCB3ZWFrLCBzZXR0ZXI9X3NldEZvcm1EZWxlZ2F0ZTopIGlkIDxfV0tGb3JtRGVsZWdhdGU+
IF9mb3JtRGVsZWdhdGUgV0tfREVQUkVDQVRFRCgxMF8xMCwgV0tfTUFDX1RCQSwgOF8wLCBXS19J
T1NfVEJBLCAidXNlIF9pbnB1dERlbGVnYXRlIik7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgd2Vh
aywgc2V0dGVyPV9zZXRJbnB1dERlbGVnYXRlOikgaWQgPF9XS0lucHV0RGVsZWdhdGU+IF9pbnB1
dERlbGVnYXRlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEZvcm1EZWxlZ2F0ZTopIGlkIDxfV0tGb3Jt
RGVsZWdhdGU+IF9mb3JtRGVsZWdhdGUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiX2lucHV0RGVsZWdhdGUiLCBtYWNvc3goMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRJbnB1
dERlbGVnYXRlOikgaWQgPF9XS0lucHV0RGVsZWdhdGU+IF9pbnB1dERlbGVnYXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNEaXNwbGF5aW5nU3RhbmRhbG9uZUlt
YWdlRG9jdW1lbnQpIEJPT0wgX2Rpc3BsYXlpbmdTdGFuZGFsb25lSW1hZ2VEb2N1bWVudDsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9pc0Rpc3BsYXlpbmdTdGFuZGFs
b25lTWVkaWFEb2N1bWVudCkgQk9PTCBfZGlzcGxheWluZ1N0YW5kYWxvbmVNZWRpYURvY3VtZW50
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JvbGxQZXJmb3JtYW5jZURh
dGFDb2xsZWN0aW9uRW5hYmxlZDopIEJPT0wgX3Njcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rp
b25FbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNBcnJheSAqX3Njcm9sbFBlcmZvcm1hbmNlRGF0YSBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTY3JvbGxQZXJm
b3JtYW5jZURhdGFDb2xsZWN0aW9uRW5hYmxlZDopIEJPT0wgX3Njcm9sbFBlcmZvcm1hbmNlRGF0
YUNvbGxlY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpfc2Nyb2xsUGVy
Zm9ybWFuY2VEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwog
Ci0tICh2b2lkKV9zYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW06KFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqKWl0ZW0gV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAodm9pZClfc2F2ZUJh
Y2tGb3J3YXJkU25hcHNob3RGb3JJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgZ2V0dGVyPV9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2ssIHNldHRl
cj1fc2V0QWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNrOikgQk9PTCBfYWxsb3dzTWVk
aWFEb2N1bWVudElubGluZVBsYXliYWNrOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgX3dlYlByb2Nlc3NJc1Jlc3BvbnNpdmUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF93ZWJQ
cm9jZXNzSXNSZXNwb25zaXZlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKQEAgLTI1MSwyMSArMjUxLDIxIEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChX
S1Rlc3RpbmcpCiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIENHUmVjdCBfY29udGVudFZpc2libGVSZWN0IFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKLS0gKENHUG9pbnQpX2NvbnZlcnRQb2ludEZyb21Db250ZW50c1Rv
VmlldzooQ0dQb2ludClwb2ludCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci0tIChDR1BvaW50KV9jb252ZXJ0UG9pbnRGcm9tVmlld1RvQ29udGVudHM6KENHUG9pbnQpcG9p
bnQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX2NvbnRlbnRWaXNpYmxlUmVjdCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKENHUG9pbnQpX2Nv
bnZlcnRQb2ludEZyb21Db250ZW50c1RvVmlldzooQ0dQb2ludClwb2ludCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKENHUG9pbnQpX2Nv
bnZlcnRQb2ludEZyb21WaWV3VG9Db250ZW50czooQ0dQb2ludClwb2ludCBXS19BUElfQVZBSUxB
QkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotLSAodm9pZClrZXli
b2FyZEFjY2Vzc29yeUJhck5leHQgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLS0gKHZv
aWQpa2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91cyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOworLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhck5leHQgV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhclByZXZpb3VzIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMp
IEJPT0wgZm9yY2VJUGFkU3R5bGVab29tT25JbnB1dEZvY3VzIFdLX0FWQUlMQUJMRShOQSwgV0tf
SU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBmb3JjZUlQYWRTdHlsZVpvb21P
bklucHV0Rm9jdXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2VuZGlmCiAK
ICNpZiAhVEFSR0VUX09TX0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIF9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzTWFuYWdlciBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgTkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9oYXNBY3Rp
dmVWaWRlb0ZvckNvbnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSk7CiAjZW5kaWYKIAotLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6
KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKKy0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlOih2b2lkIChe
KSh2b2lkKSl1cGRhdGVCbG9jayBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQuaAkocmV2aXNp
b24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhUmVjb3JkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDMxICszMiwzMSBAQAogTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZURpc2tD
YWNoZSBPbi1kaXNrIGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vi
c2l0ZURhdGFUeXBlRGlza0NhY2hlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVS
TiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlRGlza0NhY2hlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0
ZURhdGFUeXBlTWVtb3J5Q2FjaGUgSW4tbWVtb3J5IGNhY2hlcy4gKi8KLVdLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlTWVtb3J5Q2FjaGUgV0tfQVZBSUxBQkxFKDEw
XzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVN
ZW1vcnlDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAog
LyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZU9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
IEhUTUwgb2ZmbGluZSB3ZWIgYXBwbGljYXRpb24gY2FjaGVzLiAqLwotV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSBX
S19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dl
YnNpdGVEYXRhVHlwZU9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFU
eXBlQ29va2llcyBDb29raWVzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJz
aXRlRGF0YVR5cGVDb29raWVzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlQ29va2llcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRh
VHlwZVNlc3Npb25TdG9yYWdlIEhUTUwgc2Vzc2lvbiBzdG9yYWdlLiAqLwotV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVTZXNzaW9uU3RvcmFnZSBXS19BVkFJTEFC
TEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRh
VHlwZVNlc3Npb25TdG9yYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlTG9jYWxTdG9yYWdlIEhUTUwg
bG9jYWwgc3RvcmFnZS4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURh
dGFUeXBlTG9jYWxTdG9yYWdlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlTG9jYWxTdG9yYWdlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0
ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzIFdlYlNRTCBkYXRhYmFzZXMuICovCi1XS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZVdlYlNRTERhdGFiYXNlcyBXS19BVkFJ
TEFCTEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVE
YXRhVHlwZVdlYlNRTERhdGFiYXNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFi
YXNlcyBJbmRleGVkREIgZGF0YWJhc2VzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
V0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXMgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVJbmRleGVk
REJEYXRhYmFzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAK
IC8qISBBIFdLV2Vic2l0ZURhdGFSZWNvcmQgcmVwcmVzZW50cyB3ZWJzaXRlIGRhdGEsIGdyb3Vw
ZWQgYnkgZG9tYWluIG5hbWUgdXNpbmcgdGhlIHB1YmxpYyBzdWZmaXggbGlzdC4gKi8KLVdLX0NM
QVNTX0FWQUlMQUJMRSgxMF8xMSwgOV8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKQogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhUmVjb3JkIDogTlNPYmplY3QK
IAogLyohIEBhYnN0cmFjdCBUaGUgZGlzcGxheSBuYW1lIGZvciB0aGUgZGF0YSByZWNvcmQuIFRo
aXMgaXMgdXN1YWxseSB0aGUgZG9tYWluIG5hbWUuICovCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVj
b3JkUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDE0ICszMSwxNCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAY2xhc3MgX1dL
V2Vic2l0ZURhdGFTaXplOwogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRl
RGF0YVR5cGVIU1RTQ2FjaGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlTWVkaWFLZXlzIFdLX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlw
ZVNlYXJjaEZpZWxkUmVjZW50U2VhcmNoZXMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVIU1RTQ2FjaGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNT
dHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVNZWRpYUtleXMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBf
V0tXZWJzaXRlRGF0YVR5cGVTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogCiAj
aWYgIVRBUkdFVF9PU19JUEhPTkUKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNp
dGVEYXRhVHlwZVBsdWdJbkRhdGEgV0tfQVZBSUxBQkxFKDEwXzExLCBOQSk7CitXS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVQbHVnSW5EYXRhIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSk7CiAjZW5kaWYKIAogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRh
UmVjb3JkIChXS1ByaXZhdGUpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmgJKHJldmlzaW9uIDIwMjc1OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVH
SU4KICBtYWtlIHVzZSBvZi4gVGhpcyBpbmNsdWRlcyBjb29raWVzLCBkaXNrIGFuZCBtZW1vcnkg
Y2FjaGVzLCBhbmQgcGVyc2lzdGVudCBkYXRhIHN1Y2ggYXMgV2ViU1FMLAogIEluZGV4ZWREQiBk
YXRhYmFzZXMsIGFuZCBsb2NhbCBzdG9yYWdlLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTEsIDlfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkKIEBp
bnRlcmZhY2UgV0tXZWJzaXRlRGF0YVN0b3JlIDogTlNPYmplY3QgPE5TQ29kaW5nPgogCiAvKiBA
YWJzdHJhY3QgUmV0dXJucyB0aGUgZGVmYXVsdCBkYXRhIHN0b3JlLiAqLwpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmVQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSwxMyArMzEsMTMgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlv
bnMpIHsKICAgICBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25Db21wdXRlU2l6ZXMgPSAx
IDw8IDAsCi19IFdLX0VOVU1fQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
QGludGVyZmFjZSBXS1dlYnNpdGVEYXRhU3RvcmUgKFdLUHJpdmF0ZSkKIAogLSAodm9pZClfZmV0
Y2hEYXRhUmVjb3Jkc09mVHlwZXM6KE5TU2V0PE5TU3RyaW5nICo+ICopZGF0YVR5cGVzIHdpdGhP
cHRpb25zOihfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKW9wdGlvbnMgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8V0tXZWJzaXRlRGF0YVJlY29yZCAqPiAqKSljb21w
bGV0aW9uSGFuZGxlcjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6KSBCT09MIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDopIEJPT0wg
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5oCShy
ZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2luZG93RmVhdHVyZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICovCiBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2Ug
V0tXaW5kb3dGZWF0dXJlcyA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgQk9PTC4gV2hldGhl
ciB0aGUgbWVudSBiYXIgc2hvdWxkIGJlIHZpc2libGUuIG5pbCBpZiBtZW51IGJhciB2aXNpYmls
aXR5IHdhcyBub3Qgc3BlY2lmaWVkLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNyArMzYsMTcgQEAK
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlKSB7CiAg
ICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVMaW5rLAogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRU
eXBlSW1hZ2UsCi0gICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50IFdLX0VOVU1f
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpLAotfSBXS19FTlVNX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKTsKKyAgICBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1lbnQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSksCit9IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCi1XS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4w
KSkKIEBpbnRlcmZhY2UgX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gOiBOU09iamVjdAogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpVUkw7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICp0aXRsZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGUgdHlwZTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQ0dSZWN0IGJvdW5kaW5nUmVjdDsKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNTdHJpbmcgKklEIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKklEIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogI2lmIFRB
UkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgVUlJ
bWFnZSAqaW1hZ2U7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaAkocmV2aXNpb24gMjAy
NzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9u
U2Vzc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KQogQGludGVyZmFjZSBfV0tBdXRvbWF0aW9uU2Vzc2lvbiA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqc2Vzc2lvbklkZW50aWZpZXI7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0NvbnRleHRNZW51RWxlbWVudElu
Zm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0NvbnRleHRNZW51RWxlbWVudEluZm8uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKQorV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSkKIEBpbnRlcmZhY2UgX1dLQ29udGV4dE1lbnVFbGVtZW50SW5m
byA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xv
Z2dpbmdEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNyArMzMsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tEaWFn
bm9zdGljCiAgICAgX1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzLAogICAgIF9XS0RpYWdu
b3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwKICAgICBfV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdE5v
b3AsCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApOworfSBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQHByb3RvY29sIF9XS0RpYWdub3N0aWNMb2dn
aW5nRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9wdGlvbmFsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCShyZXZpc2lvbiAyMDI3NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogQGNsYXNzIFdLV2ViVmlldzsKIAotV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS0Rvd25sb2FkIDogTlNPYmplY3QKIAogLSAo
dm9pZCljYW5jZWw7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0VsZW1lbnRBY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQxLDEzICs0MSwxMyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tF
bGVtZW50QWN0CiAgICAgX1dLRWxlbWVudEFjdGlvblR5cGVTYXZlSW1hZ2UsCiAjaWYgIWRlZmlu
ZWQoVEFSR0VUX09TX0lPUykgfHwgVEFSR0VUX09TX0lPUwogICAgIF9XS0VsZW1lbnRBY3Rpb25U
eXBlQWRkVG9SZWFkaW5nTGlzdCwKLSAgICBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1
bHRCcm93c2VyIFdLX0VOVU1fQVZBSUxBQkxFKE5BLCA5XzApLAotICAgIF9XS0VsZW1lbnRBY3Rp
b25UeXBlT3BlbkluRXh0ZXJuYWxBcHBsaWNhdGlvbiBXS19FTlVNX0FWQUlMQUJMRShOQSwgOV8w
KSwKKyAgICBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5JbkRlZmF1bHRCcm93c2VyIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDlfMCkpLAorICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRXh0ZXJu
YWxBcHBsaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKSwKICNlbmRpZgotICAgIF9X
S0VsZW1lbnRBY3Rpb25UeXBlU2hhcmUgV0tfRU5VTV9BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEp
LAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKKyAgICBfV0tFbGVtZW50QWN0aW9u
VHlwZVNoYXJlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKSwKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQog
QGludGVyZmFjZSBfV0tFbGVtZW50QWN0aW9uIDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0eXBl
KWVsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZTsKQEAgLTU1
LDcgKzU1LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKICsgKGluc3RhbmNl
dHlwZSllbGVtZW50QWN0aW9uV2l0aFRpdGxlOihOU1N0cmluZyAqKXRpdGxlIGFjdGlvbkhhbmRs
ZXI6KFdLRWxlbWVudEFjdGlvbkhhbmRsZXIpaGFuZGxlcjsKIAotLSAodm9pZClydW5BY3Rpb25X
aXRoRWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopaW5mbyBXS19BVkFJTEFC
TEUoTkEsIDlfMCk7CistICh2b2lkKXJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzooX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8gKilpbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS0VsZW1lbnRBY3Rpb25UeXBlIHR5cGU7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nKiB0aXRsZTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhw
ZXJpbWVudGFsRmVhdHVyZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4K
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNl
IF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICprZXk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0ZpbmRPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGaW5kT3B0aW9ucy5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZpbmRPcHRp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDYgQEAgdHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIF9XS0ZpbmRPcAogICAgIF9XS0ZpbmRPcHRpb25zSXJyZWxldmFudEZvcklu
Y3JlbWVudGFsUmVzdWx0cyA9IF9XS0ZpbmRPcHRpb25zU2hvd092ZXJsYXkgfCBfV0tGaW5kT3B0
aW9uc1Nob3dGaW5kSW5kaWNhdG9yIHwgX1dLRmluZE9wdGlvbnNTaG93SGlnaGxpZ2h0IHwgX1dL
RmluZE9wdGlvbnNEZXRlcm1pbmVNYXRjaEluZGV4LAogICAgIF9XS0ZpbmRPcHRpb25zSXJyZWxl
dmFudEZvckJhdGNoUmVzdWx0cyA9IF9XS0ZpbmRPcHRpb25zQmFja3dhcmRzIHwgX1dLRmluZE9w
dGlvbnNXcmFwQXJvdW5kIHwgX1dLRmluZE9wdGlvbnNJcnJlbGV2YW50Rm9ySW5jcmVtZW50YWxS
ZXN1bHRzCiAKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vz
c2lvbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTQgKzM2
LDE0IEBACiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzVmFsaWQp
IEJPT0wgdmFsaWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TT2JqZWN0IDxO
U1NlY3VyZUNvZGluZz4gKnVzZXJPYmplY3Q7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+IGZvY3VzZWRFbGVtZW50SW5mbyBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+IGZvY3VzZWRFbGVtZW50SW5mbyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2lm
IFRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAq
YWNjZXNzb3J5Vmlld0N1c3RvbUJ1dHRvblRpdGxlOwotQHByb3BlcnR5IChub25hdG9taWMsIHN0
cm9uZykgVUlWaWV3ICpjdXN0b21JbnB1dFZpZXcgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJB
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PFVJVGV4dFN1Z2dlc3Rpb24g
Kj4gKnN1Z2dlc3Rpb25zIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBhY2Nlc3NvcnlWaWV3U2hvdWxkTm90U2hvdyBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICp0
ZXh0Q29udGVudFR5cGUgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzdHJvbmcpIFVJVmlldyAqY3VzdG9tSW5wdXRWaWV3IFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5
PFVJVGV4dFN1Z2dlc3Rpb24gKj4gKnN1Z2dlc3Rpb25zIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFjY2Vzc29yeVZpZXdTaG91
bGROb3RTaG93IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqdGV4dENvbnRlbnRUeXBlIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbmRpZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lucHV0RGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lucHV0RGVsZWdhdGUuaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJ
bnB1dERlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWNjZXNzb3J5Vmlld0N1c3RvbUJ1dHRvblRh
cHBlZEluRm9ybUlucHV0U2Vzc2lvbjooaWQgPF9XS0Zvcm1JbnB1dFNlc3Npb24+KWlucHV0U2Vz
c2lvbjsKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaGFzU3VnZ2VzdGlv
bnNGb3JDdXJyZW50U3RyaW5nSW5JbnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9u
PilpbnB1dFNlc3Npb247CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc3VnZ2VzdGlvbnNGb3JTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGluSW5wdXRTZXNzaW9u
OihpZCA8X1dLRm9ybUlucHV0U2Vzc2lvbj4paW5wdXRTZXNzaW9uOwotLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBpbnNlcnRUZXh0U3VnZ2VzdGlvbjooVUlUZXh0U3VnZ2Vz
dGlvbiAqKXN1Z2dlc3Rpb24gaW5JbnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9u
PilpbnB1dFNlc3Npb24gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5zZXJ0VGV4dFN1Z2dlc3Rpb246KFVJVGV4dFN1
Z2dlc3Rpb24gKilzdWdnZXN0aW9uIGluSW5wdXRTZXNzaW9uOihpZCA8X1dLRm9ybUlucHV0U2Vz
c2lvbj4paW5wdXRTZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNl
bmRpZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0xheW91dE1vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0xheW91dE1vZGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tMYXlvdXRNb2RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDYgKzM3LDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0xheW91dE1vZAog
ICAgIC8vIExheSBvdXQgdGhlIHZpZXcgYXQgYSBoZXVyaXN0aWNhbGx5LWRldGVybWluZWQgc2l6
ZSBiYXNlZCBvbiB0aGUgbWluaW11bSBzaXplIG9mIHRoZSBkb2N1bWVudC4KICAgICBfV0tMYXlv
dXRNb2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9jdW1lbnRTaXplID0gNCwKIAot
fSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS092ZXJsYXlTY3JvbGxiYXJT
dHlsZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw0
ICszNCw0IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tPdmVybGF5U2MKICAgICAv
LyBoZXVyaXN0aWMgdG8gY2hvb3NlIGFuIGFwcHJvcHJpYXRlIGNvbG9yLgogICAgIF9XS092ZXJs
YXlTY3JvbGxiYXJTdHlsZUF1dG9tYXRpYwogCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5
XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTUgKzI4LDE1IEBACiAKICNpZiBXS19BUElfRU5B
QkxFRAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHkpIE5TVVJMICppbmplY3RlZEJ1bmRsZVVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBO
U1VJbnRlZ2VyIG1heGltdW1Qcm9jZXNzQ291bnQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgTlNJ
bnRlZ2VyIGRpc2tDYWNoZVNpemVPdmVycmlkZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgTlNJbnRlZ2VyIGRpc2tDYWNoZVNpemVPdmVycmlkZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5KSBOU0FycmF5ICpjYWNoZVBhcnRpdGlvbmVkVVJMU2NoZW1lczsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PE5TU3RyaW5nICo+ICphbHdheXNSZXZhbGlkYXRl
ZFVSTFNjaGVtZXMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxl
ZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqYWx3YXlzUmV2YWxpZGF0ZWRVUkxTY2hl
bWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0
aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Nlc3Npb25TdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLU2Vzc2lvblN0YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2Vzc2lvblN0YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tTZXNzaW9uU3RhdGUg
OiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhEYXRhOihOU0RhdGEgKilkYXRh
OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxW
aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tUaHVtYm5haWxWaWV3LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw3ICszMyw3IEBACiAKIEBjbGFzcyBXS1ZpZXc7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBfV0tUaHVtYm5haWxWaWV3IDogTlNWaWV3CiAKIC0gKGluc3RhbmNldHlwZSlpbml0
V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgZnJvbVdLVmlldzooV0tWaWV3ICopd2tWaWV3OwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEV4dGVu
c2lvblN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKIEBjbGFzcyBfV0tV
c2VyQ29udGVudEZpbHRlcjsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNlIF9XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgOiBOU09iamVjdAogCiArIChpbnN0YW5jZXR5cGUpZGVm
YXVsdFN0b3JlOwpAQCAtNDEsMTMgKzQxLDEzIEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKQogCiBAZW5kCiAKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1VzZXJDb250ZW50
RXh0ZW5zaW9uc0RvbWFpbiBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitX
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tVc2VyQ29udGVudEV4dGVuc2lvbnNEb21haW4g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVF
cnJvckNvZGUpIHsKICAgICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JMb29rdXBG
YWlsZWQgPSAxLAogICAgIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvclZlcnNpb25N
aXNtYXRjaCwKICAgICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JDb21waWxlRmFp
bGVkLAogICAgIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvclJlbW92ZUZhaWxlZCwK
LX0gV0tfRU5VTV9BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Cit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjZW5kaWYg
Ly8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLmgJKHJldmlzaW9uIDIwMjc1
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRG
aWx0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgV0tfQVBJX0VO
QUJMRUQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50Rmls
dGVyIDogTlNPYmplY3QKIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tVc2VyQ29udGVudFdvcmxkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudFdvcmxkLmgJKHJldmlzaW9uIDIw
Mjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRl
bnRXb3JsZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KQogQGludGVyZmFjZSBfV0tVc2VyQ29udGVudFdvcmxkIDogTlNPYmplY3QKIAogKyAoX1dLVXNl
ckNvbnRlbnRXb3JsZCAqKXdvcmxkV2l0aE5hbWU6KE5TU3RyaW5nICopbmFtZTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHls
ZVNoZWV0LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMs
NyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAY2xhc3MgX1dLVXNlckNvbnRlbnRXb3Js
ZDsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJm
YWNlIF9XS1VzZXJTdHlsZVNoZWV0IDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqc291cmNlOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1Byb3ZpZGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNp
dGVkTGlua1Byb3ZpZGVyLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtQcm92aWRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1XS19DTEFTU19ERVBS
RUNBVEVEKDEwXzEwLCBXS19NQUNfVEJBLCA4XzAsIFdLX0lPU19UQkEsICJQbGVhc2UgdXNlIF9X
S1Zpc2l0ZWRMaW5rU3RvcmUgaW5zdGVhZCIpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl9XS1Zpc2l0ZWRMaW5rU3RvcmUiLCBtYWNvc3goMTAuMTAsIFdLX01BQ19UQkEp
LCBpb3MoOC4wLCBXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLVmlzaXRlZExpbmtQcm92aWRl
ciA6IF9XS1Zpc2l0ZWRMaW5rU3RvcmUKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmgJKHJl
dmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
VmlzaXRlZExpbmtTdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
ZiBXS19BUElfRU5BQkxFRAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLVmlz
aXRlZExpbmtTdG9yZSA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpYWRkVmlzaXRlZExpbmtXaXRoVVJM
OihOU1VSTCAqKVVSTDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2Vic2l0ZURhdGFSZWNvcmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhUmVjb3JkLmgJKHJldmlzaW9uIDIwMjc1OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFSZWNv
cmQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJzaXRlRGF0YVJlY29yZC5oPgogCi1XS19DTEFTU19ERVBSRUNBVEVEKDEwXzExLCAxMF8x
MSwgOV8wLCA5XzAsICJQbGVhc2UgdXNlIFdLV2Vic2l0ZURhdGFSZWNvcmQgaW5zdGVhZCIpCitX
S19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vic2l0ZURhdGFSZWNvcmQi
LCBtYWNvc3goMTAuMTEsIDEwLjExKSwgaW9zKDkuMCwgOS4wKSkKIEBpbnRlcmZhY2UgX1dLV2Vi
c2l0ZURhdGFSZWNvcmQgOiBXS1dlYnNpdGVEYXRhUmVjb3JkCiBAZW5kCiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0
YVNpemUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVNpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEs
NyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFTaXplIDogTlNP
YmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIGxv
bmcgdG90YWxTaXplOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMCArMzEsMTAgQEAKIAogdHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIFdLV2Vic2l0ZURhdGFUeXBlcykgewogICAgIFdLV2Vic2l0ZURhdGFUeXBl
QWxsID0gTlNVSW50ZWdlck1heCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Cit9
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAKLVdLX0NMQVNT
X0RFUFJFQ0FURUQoMTBfMTAsIDEwXzExLCA4XzAsIDlfMCwgIlBsZWFzZSB1c2UgV0tXZWJzaXRl
RGF0YVN0b3JlIGluc3RlYWQiKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5U
KCJXS1dlYnNpdGVEYXRhU3RvcmUiLCBtYWNvc3goMTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4w
KSkKIEBpbnRlcmZhY2UgX1dLV2Vic2l0ZURhdGFTdG9yZSA6IE5TT2JqZWN0CiAKICsgKF9XS1dl
YnNpdGVEYXRhU3RvcmUgKilkZWZhdWx0RGF0YVN0b3JlOwpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRm9y
bURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0
ZVByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRl
UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIC8vIFRoZSByZXR1
cm4gdmFsdWUgaXMgZXhwb3NlZCBpbiB0aGUgVUkgcHJvY2VzcyB2aWEgdGhlIHVzZXJPYmplY3Qg
cHJvcGVydHkgb2YgdGhlIF9XS0Zvcm1JbnB1dFNlc3Npb24gb2JqZWN0LgogLSAoTlNPYmplY3Qg
PE5TU2VjdXJlQ29kaW5nPiAqKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9s
bGVyIHdpbGxCZWdpbklucHV0U2Vzc2lvbkZvckVsZW1lbnQ6KFdLV2ViUHJvY2Vzc1BsdWdJbk5v
ZGVIYW5kbGUgKilub2RlIGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWU7
Ci0tIChOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlciAqKWNvbnRyb2xsZXIgd2lsbEJlZ2luSW5wdXRTZXNzaW9uRm9yRWxlbWVudDooV0tXZWJQ
cm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGUgaW5GcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUgKilmcmFtZSB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBX
S19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworLSAoTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5n
PiAqKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHdpbGxCZWdpbklu
cHV0U2Vzc2lvbkZvckVsZW1lbnQ6KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2Rl
IGluRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWUgdXNlcklzSW50ZXJhY3Rp
bmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RC
QSkpOwogCiAtIChCT09MKV93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
U2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlczooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyICopY29udHJvbGxlcjsKIC0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzOihOU0FycmF5ICop
ZWxlbWVudHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVn
SW5Ob2RlSGFuZGxlOwogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkOwogCi1X
S19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3go
MTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgOiBO
U09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpVUkw7CkBA
IC00Nyw4ICs0Nyw4IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiAvLyBSZXR1
cm5zIFVSTHMgb3JkZXJlZCBieSByZXNvbHV0aW9uIGluIGRlc2NlbmRpbmcgb3JkZXIuCiAvLyBG
SVhNRTogVGhlc2Ugc2hvdWxkIGJlIHRhZ2dlZCBub25udWxsLgotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU0FycmF5PE5TVVJMICo+ICphcHBsZVRvdWNoSWNvblVSTHMgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU0FycmF5PE5TVVJMICo+ICpmYXZpY29uVVJMcyBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJy
YXk8TlNVUkwgKj4gKmFwcGxlVG91Y2hJY29uVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNBcnJheTxOU1VSTCAqPiAqZmF2aWNvblVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKEpTQ29udGV4dCAqKWpzQ29u
dGV4dEZvcldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkOwogLSAo
V0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQ7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luSGl0VGVzdFJlc3VsdC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5I
aXRUZXN0UmVzdWx0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogQGNsYXNz
IFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0IDogTlNPYmplY3QKIAogQHBy
b3BlcnR5IChyZWFkb25seSkgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqbm9kZUhhbmRs
ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5Ob2RlSGFuZGxlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVI
YW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTYgKzM3LDE2IEBACiAKIEBjbGFzcyBXS1dl
YlByb2Nlc3NQbHVnSW5GcmFtZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitX
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdL
V2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgOiBOU09iamVjdAogCiArIChXS1dlYlByb2Nlc3NQ
bHVnSW5Ob2RlSGFuZGxlICopbm9kZUhhbmRsZVdpdGhKU1ZhbHVlOihKU1ZhbHVlICopdmFsdWUg
aW5Db250ZXh0OihKU0NvbnRleHQgKiljb250ZXh0OwogLSAoV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUgKilodG1sSUZyYW1lRWxlbWVudENvbnRlbnRGcmFtZTsKIAogI2lmIFRBUkdFVF9PU19JUEhP
TkUKLS0gKFVJSW1hZ2UgKilyZW5kZXJlZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNob3RPcHRp
b25zKW9wdGlvbnMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAoVUlJbWFnZSAqKXJlbmRl
cmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKICNlbHNlCi0tIChOU0ltYWdlICopcmVu
ZGVyZWRJbWFnZVdpdGhPcHRpb25zOihXS1NuYXBzaG90T3B0aW9ucylvcHRpb25zIFdLX0FWQUlM
QUJMRSgxMF8xMSwgOV8wKTsKKy0gKE5TSW1hZ2UgKilyZW5kZXJlZEltYWdlV2l0aE9wdGlvbnM6
KFdLU25hcHNob3RPcHRpb25zKW9wdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOS4wKSk7CiAjZW5kaWYKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBD
R1JlY3QgZWxlbWVudEJvdW5kczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5QYWdlR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAog
CiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCA6IE5TT2JqZWN0CiAKIEBw
cm9wZXJ0eSAocmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luU2NyaXB0V29ybGQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5o
CShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0lu
U2NyaXB0V29ybGQgOiBOU09iamVjdAogCiArIChXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3Js
ZCAqKXdvcmxkOwpAQCAtMzgsNyArMzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKm5hbWU7
CiAKIC0gKHZvaWQpY2xlYXJXcmFwcGVyczsKLS0gKHZvaWQpbWFrZUFsbFNoYWRvd1Jvb3RzT3Bl
biBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKW1ha2VBbGxT
aGFkb3dSb290c09wZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVu
dC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3
ICszMiw3IEBACiBAY2xhc3MgV0tET01FbGVtZW50OwogQGNsYXNzIFdLRE9NVGV4dDsKIAotV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NRG9jdW1lbnQgOiBXS0RPTU5vZGUKIAog
LSAoV0tET01FbGVtZW50ICopY3JlYXRlRWxlbWVudDooTlNTdHJpbmcgKil0YWdOYW1lOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9N
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9X
S0RPTU5vZGUuaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NRWxlbWVu
dCA6IFdLRE9NTm9kZQogCiAtIChCT09MKWhhc0F0dHJpYnV0ZTooTlNTdHJpbmcgKilhdHRyaWJ1
dGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tET01Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NTm9kZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2Rl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogQGNsYXNzIFdLRE9NRG9jdW1l
bnQ7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTU5vZGUgOiBOU09iamVj
dAogCiAtICh2b2lkKWluc2VydE5vZGU6KFdLRE9NTm9kZSAqKW5vZGUgYmVmb3JlOihXS0RPTU5v
ZGUgKilyZWZOb2RlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01SYW5nZS5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tET01SYW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIFdLRE9NUmFuZ2VEaXIKIH07CiAKIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIFdLRE9NUmFuZ2UgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0aERv
Y3VtZW50OihXS0RPTURvY3VtZW50ICopZG9jdW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9N
VGV4dC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcg
KzI5LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRE9NTm9kZS5oPgogCi1XS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSkKIEBpbnRlcmZhY2UgV0tET01UZXh0IDogV0tET01Ob2RlCiAKIEBwcm9wZXJ0eShub25h
dG9taWMsIGNvcHkpIE5TU3RyaW5nICpkYXRhOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dEl0ZXJhdG9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NVGV4dEl0ZXJhdG9yLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHRJdGVyYXRvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBjbGFzcyBXS0RPTVJhbmdlOwogCi1XS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tET01UZXh0SXRlcmF0b3IgOiBOU09iamVjdAog
CiAtIChpZClpbml0V2l0aFJhbmdlOihXS0RPTVJhbmdlICopcmFuZ2U7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1
Z0luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9j
ZXNzUGx1Z0luLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAKIC0gKHZvaWQpd2Vi
UHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRy
b2xsZXIgd2lsbERlc3Ryb3lCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsK
IEBlbmQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJ
bkNvbnRyb2xsZXIgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBXS0Nvbm5lY3Rp
b24gKmNvbm5lY3Rpb247CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oCShy
ZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVn
SW5QYWdlR3JvdXA7CiBAcHJvdG9jb2wgV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlOwog
Ci1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
c3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChyZWFkb25seSkgV0tE
T01Eb2N1bWVudCAqbWFpbkZyYW1lRG9jdW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9tYWMv
cG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvbWFjL3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMu
c2gJKHdvcmtpbmcgY29weSkKQEAgLTUwLDEwICs1MCwxMCBAQCBmdW5jdGlvbiBwcm9jZXNzX2Rl
ZmluaXRpb25zICgpIHsKIAogZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJzICgpIHsKICAgICBpZiBb
WyAiJHtQTEFURk9STV9OQU1FfSIgPT0gIm1hY29zeCIgXV07IHRoZW4KLSAgICAgICAgW1sgLW4g
JHtPU1hfVkVSU0lPTn0gXV0gfHwgT1NYX1ZFUlNJT049JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVQvXC4vX30KKyAgICAgICAgW1sgLW4gJHtPU1hfVkVSU0lPTn0gXV0gfHwgT1NYX1ZFUlNJT049
JHtNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVR9CiAgICAgICAgIFtbIC1uICR7SU9TX1ZFUlNJT059
IF1dIHx8IElPU19WRVJTSU9OPSJOQSIKICAgICBlbGlmIFtbICIke1BMQVRGT1JNX05BTUV9IiA9
fiAiaXBob25lIiBdXTsgdGhlbgotICAgICAgICBbWyAtbiAke0lPU19WRVJTSU9OfSBdXSB8fCBJ
T1NfVkVSU0lPTj0ke0lQSE9ORU9TX0RFUExPWU1FTlRfVEFSR0VUL1wuL199CisgICAgICAgIFtb
IC1uICR7SU9TX1ZFUlNJT059IF1dIHx8IElPU19WRVJTSU9OPSR7SVBIT05FT1NfREVQTE9ZTUVO
VF9UQVJHRVR9CiAgICAgICAgIFtbIC1uICR7T1NYX1ZFUlNJT059IF1dIHx8IE9TWF9WRVJTSU9O
PSJOQSIKICAgICBmaQogCkBAIC02NCwxNSArNjQsMTMgQEAgZnVuY3Rpb24gcmV3cml0ZV9oZWFk
ZXJzICgpIHsKICAgICAgICAgU0VEX09QVElPTlMrPSgKICAgICAgICAgICAgIC1lIHMvV0tfTUFD
X1RCQS8ke09TWF9WRVJTSU9OfS9nCiAgICAgICAgICAgICAtZSBzL1dLX0lPU19UQkEvJHtJT1Nf
VkVSU0lPTn0vZwotICAgICAgICAgICAgLWUgcy9XS19BVkFJTEFCTEUvTlNfQVZBSUxBQkxFLwot
ICAgICAgICAgICAgLWUgcy9XS19ERVBSRUNBVEVEL05TX0RFUFJFQ0FURUQvCi0gICAgICAgICAg
ICAtZSBzL1dLX0VOVU1fQVZBSUxBQkxFL05TX0VOVU1fQVZBSUxBQkxFLwotICAgICAgICAgICAg
LWUgcy9XS19FTlVNX0RFUFJFQ0FURUQvTlNfRU5VTV9ERVBSRUNBVEVELwotICAgICAgICAgICAg
LWUgcy9eV0tfQ0xBU1NfQVZBSUxBQkxFL05TX0NMQVNTX0FWQUlMQUJMRS8KLSAgICAgICAgICAg
IC1lIHMvXldLX0NMQVNTX0RFUFJFQ0FURUQvTlNfQ0xBU1NfREVQUkVDQVRFRC8KKyAgICAgICAg
ICAgIC1lIHMvV0tfQVBJX0FWQUlMQUJMRS9BUElfQVZBSUxBQkxFLworICAgICAgICAgICAgLWUg
cy9XS19BUElfREVQUkVDQVRFRC9BUElfREVQUkVDQVRFRC8KKyAgICAgICAgICAgIC1lICJzL15X
S19DTEFTU19BVkFJTEFCTEUvV0tfRVhURVJOIEFQSV9BVkFJTEFCTEUvIgorICAgICAgICAgICAg
LWUgInMvXldLX0NMQVNTX0RFUFJFQ0FURUQvV0tfRVhURVJOIEFQSV9ERVBSRUNBVEVELyIKICAg
ICAgICAgKQogICAgIGVsc2UKLSAgICAgICAgU0VEX09QVElPTlMrPSgtZSAncy9XS18oQ0xBU1Nf
fEVOVU1fKT9BVkFJTEFCTEUoX0lPU3xfTUFDKT9cKFteXCldK1wpLy9nJyAtZSAncy9XS18oQ0xB
U1NffEVOVU1fKT9ERVBSRUNBVEVEXChbXlwpXStcKS8vZycpCisgICAgICAgIFNFRF9PUFRJT05T
Kz0oLWUgJ3MvV0tfKEFQSV98Q0xBU1NfKUFWQUlMQUJMRVwoLipcKVxzKlwpLy9nJyAtZSAncy9X
S18oQVBJX3xDTEFTU18pREVQUkVDQVRFRChfV0lUSF9SRVBMQUNFTUVOVCk/XCguKlwpXHMqXCkv
L2cnKQogICAgIGZpCiAKICAgICBTRURfT1BUSU9OUys9KCR7T1RIRVJfU0VEX09QVElPTlNbKl19
KQpAQCAtODAsNyArNzgsNyBAQCBmdW5jdGlvbiByZXdyaXRlX2hlYWRlcnMgKCkgewogICAgIGZv
ciBIRUFERVJfUEFUSCBpbiAiJHsxfS8iKi5oOyBkbwogICAgICAgICBpZiBbWyAiJEhFQURFUl9Q
QVRIIiAtbnQgJFRJTUVTVEFNUF9QQVRIIF1dOyB0aGVuCiAgICAgICAgICAgICBkaXR0byAiJHtI
RUFERVJfUEFUSH0iICIke1RBUkdFVF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IgotICAg
ICAgICAgICAgc2VkIC1pIC50bXAgLUUgJHtTRURfT1BUSU9OU1sqXX0gIiR7VEFSR0VUX1RFTVBf
RElSfS8ke0hFQURFUl9QQVRIIyMqL30iIHx8IGV4aXQgJD8KKyAgICAgICAgICAgIHNlZCAtaSAu
dG1wIC1FICIke1NFRF9PUFRJT05TW0BdfSIgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9Q
QVRIIyMqL30iIHx8IGV4aXQgJD8KICAgICAgICAgICAgIG12ICIke1RBUkdFVF9URU1QX0RJUn0v
JHtIRUFERVJfUEFUSCMjKi99IiAiJEhFQURFUl9QQVRIIgogICAgICAgICBmaQogICAgIGRvbmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282655</attachid>
            <date>2016-07-03 00:12:51 -0700</date>
            <delta_ts>2016-07-03 08:51:32 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>modern-api-macros.diff</filename>
            <type>text/plain</type>
            <size>130195</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktp
dC54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNTksMyArNTksNyBAQCBJTlNUQUxMSERSU19T
Q1JJUFRfUEhBU0UgPSBZRVM7CiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJ
U0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lO
R19ESVNBQkxFRF9tYWNvc3hfJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBXS19GUkFNRVdP
UktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDEwMDAgPSBZRVM7CiBX
S19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDExMDAg
PSBZRVM7CisKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2Rr
PWVtYmVkZGVkKl0gPSAkKFdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJM
RURfJChQTEFURk9STV9OQU1FKSk7CitXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5H
X0RJU0FCTEVEX2lwaG9uZW9zW3Nkaz1pcGhvbmVvczkqXSA9IFlFUzsKK1dLX0ZSQU1FV09SS19I
RUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURfaXBob25lc2ltdWxhdG9yW3Nkaz1pcGhvbmVz
aW11bGF0b3I5Kl0gPSBZRVM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIFdLX0FQSV9F
TkFCTEVECiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZSA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIEBlbmQKIApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLRm91bmRhdGlvbi5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLRm91bmRhdGlvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MiwxMiArNDIsMTAgQEAKIAogI2lmbmRlZiBXS19GUkFNRVdP
UktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0VOQUJMRUQKIAotI2RlZmluZSBXS19BVkFJTEFCTEUo
X21hYywgX2lvcykKLSNkZWZpbmUgV0tfQ0xBU1NfQVZBSUxBQkxFKF9tYWMsIF9pb3MpIF9fYXR0
cmlidXRlX18oKHZpc2liaWxpdHkgKCJkZWZhdWx0IikpKQotI2RlZmluZSBXS19ERVBSRUNBVEVE
KF9tYWNJbnRybywgX21hY0RlcCwgX2lvc0ludHJvLCBfaW9zRGVwLCAuLi4pIF9fYXR0cmlidXRl
X18oKGRlcHJlY2F0ZWQoX19WQV9BUkdTX18pKSkKLSNkZWZpbmUgV0tfQ0xBU1NfREVQUkVDQVRF
RChfbWFjSW50cm8sIF9tYWNEZXAsIF9pb3NJbnRybywgX2lvc0RlcCwgLi4uKSBfX2F0dHJpYnV0
ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9f
VkFfQVJHU19fKSkpCi0jZGVmaW5lIFdLX0VOVU1fQVZBSUxBQkxFKF9tYWMsIF9pb3MpCi0jZGVm
aW5lIFdLX0VOVU1fQVZBSUxBQkxFX0lPUyhfaW9zKQotI2RlZmluZSBXS19FTlVNX0RFUFJFQ0FU
RUQoX21hY0ludHJvLCBfbWFjRGVwLCBfaW9zSW50cm8sIF9pb3NEZXAsIC4uLikgX19hdHRyaWJ1
dGVfXygoZGVwcmVjYXRlZChfX1ZBX0FSR1NfXykpKQorI2RlZmluZSBXS19BUElfQVZBSUxBQkxF
KC4uLikKKyNkZWZpbmUgV0tfQ0xBU1NfQVZBSUxBQkxFKC4uLikgX19hdHRyaWJ1dGVfXygodmlz
aWJpbGl0eSgiZGVmYXVsdCIpKSkgV0tfQVBJX0FWQUlMQUJMRShfX1ZBX0FSR1NfXykKKyNkZWZp
bmUgV0tfQVBJX0RFUFJFQ0FURUQoX21lc3NhZ2UsIC4uLikgX19hdHRyaWJ1dGVfXygoZGVwcmVj
YXRlZChfbWVzc2FnZSkpKQorI2RlZmluZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKF9yZXBsYWNlbWVudCwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKCJ1c2UgIiAj
X3JlcGxhY2VtZW50KSkpCisjZGVmaW5lIFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVChfcmVwbGFjZW1lbnQsIC4uLikgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVs
dCIpKSkgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCgidXNlICIgI19yZXBsYWNlbWVudCkpKQog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVI
YW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19X
S0ZyYW1lSGFuZGxlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjks
NyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCiBAaW50ZXJmYWNlIF9XS0ZyYW1lSGFuZGxlIDogTlNPYmplY3QgPE5TQ29weWluZywg
TlNTZWN1cmVDb2Rpbmc+CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Q29jb2EvX1dLSGl0VGVzdFJlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQ29jb2EvX1dLSGl0VGVzdFJlc3VsdC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSkKIEBpbnRlcmZhY2UgX1dLSGl0VGVzdFJlc3VsdCA6
IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwg
Y29weSkgTlNVUkwgKmFic29sdXRlSW1hZ2VVUkw7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmgJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dL
UmVtb3RlT2JqZWN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAK
IAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KQogQGludGVyZmFjZSBfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgOiBOU09iamVjdAogCiArIChp
bnN0YW5jZXR5cGUpcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOihQcm90b2NvbCAq
KXByb3RvY29sOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1v
dGVPYmplY3RSZWdpc3RyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaAkocmV2aXNpb24gMjAyNzU5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBjbGFzcyBfV0tSZW1vdGVPYmpl
Y3RJbnRlcmZhY2U7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tSZW1vdGVP
YmplY3RSZWdpc3RyeSA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpcmVnaXN0ZXJFeHBvcnRlZE9iamVj
dDooaWQpb2JqZWN0IGludGVyZmFjZTooX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICopaW50ZXJm
YWNlOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Q29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAkocmV2aXNpb24gMjAyNzU5KQorKysg
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMiArMjksMTIgQEAKIAogdHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKSB7CiAgICAgX1dLUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0ID0gMSA8PCAwLAotICAgIF9XS1JlbmRlcmlu
Z1Byb2dyZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgV0tfRU5VTV9BVkFJTEFC
TEUoMTBfMTEsIDlfMCkgPSAxIDw8IDEsCisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKSA9IDEgPDwgMSwKICAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQ
YWludFdpdGhTaWduaWZpY2FudEFyZWEgPSAxIDw8IDIsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudFJlYWNoZWRTZXNzaW9uUmVzdG9yYXRpb25SZW5kZXJUcmVlU2l6ZVRocmVzaG9sZCBX
S19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEgPDwgMywKLSAgICBfV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50Rmlyc3RMYXlvdXRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmlu
ZyBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEgPDwgNCwKLSAgICBfV0tSZW5kZXJp
bmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVy
aW5nIFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApID0gMSA8PCA1LAotICAgIF9XS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzAp
ID0gMSA8PCA2LAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKKyAgICBfV0tSZW5k
ZXJpbmdQcm9ncmVzc0V2ZW50UmVhY2hlZFNlc3Npb25SZXN0b3JhdGlvblJlbmRlclRyZWVTaXpl
VGhyZXNob2xkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8
PCAzLAorICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dEFmdGVyU3VwcHJl
c3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwg
aW9zKDkuMCkpID0gMSA8PCA0LAorICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBh
aW50QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5kZXJpbmcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDUsCisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jl
c3NFdmVudEZpcnN0UGFpbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSkgPSAxIDw8IDYsCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
OwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLU2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgJKHJldmlzaW9u
IDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLU2FtZURvY3Vt
ZW50TmF2aWdhdGlvblR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNiBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tTYW1lRG9jdW1lCiAgICAgX1dLU2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGVTZXNzaW9uU3RhdGVQdXNoLAogICAgIF9XS1NhbWVEb2N1bWVudE5hdmln
YXRpb25UeXBlU2Vzc2lvblN0YXRlUmVwbGFjZSwKICAgICBfV0tTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZVNlc3Npb25TdGF0ZVBvcCwKLX0gV0tfQVZBSUxBQkxFKDEwXzEwLCA4XzApOworfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tG
b3J3YXJkTGlzdC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcg
KzM0LDcgQEAKICAqLwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIFdLQmFja0ZvcndhcmRMaXN0IDogTlNPYmplY3QKIAogLyohIEBhYnN0
cmFjdCBUaGUgY3VycmVudCBpdGVtLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oCShyZXZpc2lv
biAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQmFja0Zv
cndhcmRMaXN0SXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAgKi8KIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0gOiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBO
U19VTkFWQUlMQUJMRTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBA
QAogQHByb3RvY29sIFdLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlOwogQHByb3RvY29sIFdL
QnJvd3NpbmdDb250ZXh0UG9saWN5RGVsZWdhdGU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgOiBOU09iamVjdAogCiAjcHJhZ21h
IG1hcmsgRGVsZWdhdGVzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvdXAuaAkocmV2aXNpb24gMjAy
NzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpbXBvcnQgPEZv
dW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVj
dGlvblRpbWUuaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLQnJvd3NpbmdD
b250ZXh0R3JvdXAgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0aElkZW50aWZpZXI6KE5TU3Ry
aW5nICopaWRlbnRpZmllcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tDb25uZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNyArMzgsNyBAQAogCiBAZW5kCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8w
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFj
ZSBXS0Nvbm5lY3Rpb24gOiBOU09iamVjdAogCiAtICh2b2lkKXNlbmRNZXNzYWdlV2l0aE5hbWU6
KE5TU3RyaW5nICopbWVzc2FnZU5hbWUgYm9keTooaWQpbWVzc2FnZUJvZHk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IuaAkocmV2aXNpb24gMjAy
NzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IC8qISBAY29uc3RhbnQgV0tFcnJvckRvbWFpbiBJbmRpY2F0ZXMgYSBXZWJLaXQgZXJyb3IuICov
Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS0Vycm9yRG9tYWluIFdLX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLRXJyb3JEb21haW4gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBAZW51bSBXS0Vy
cm9yQ29kZQogIEBhYnN0cmFjdCBDb25zdGFudHMgdXNlZCBieSBOU0Vycm9yIHRvIGluZGljYXRl
IGVycm9ycyBpbiB0aGUgV2ViS2l0IGRvbWFpbi4KQEAgLTQ3LDggKzQ3LDggQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgV0tFcnJvckNvZGUpIAogICAgIFdLRXJyb3JXZWJDb250ZW50UHJv
Y2Vzc1Rlcm1pbmF0ZWQsCiAgICAgV0tFcnJvcldlYlZpZXdJbnZhbGlkYXRlZCwKICAgICBXS0Vy
cm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkLAotICAgIFdLRXJyb3JKYXZhU2NyaXB0UmVz
dWx0VHlwZUlzVW5zdXBwb3J0ZWQgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCksCi19IFdL
X0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworICAgIFdLRXJyb3JKYXZhU2NyaXB0UmVzdWx0
VHlwZUlzVW5zdXBwb3J0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSksCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiBOU19B
U1NVTUVfTk9OTlVMTF9FTkQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Vycm9yUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yUHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNywyNyArMjcsMjcgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLVdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0xlZ2FjeUVycm9yRG9tYWluIFdLX0FWQUlMQUJMRSgx
MF8xMSwgOF8zKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0xlZ2FjeUVycm9yRG9t
YWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDguMykpOwogCiB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tMZWdhY3lFcnJvckNvZGUpIHsKLSAgICBfV0tFcnJvckNv
ZGVGcmFtZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFdLX0VOVU1fQVZBSUxBQkxFKDEw
XzExLCA5XzApID0gMTAyLAorICAgIF9XS0Vycm9yQ29kZUZyYW1lTG9hZEludGVycnVwdGVkQnlQ
b2xpY3lDaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAx
MDIsCiAgICAgX1dLTGVnYWN5RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCA9IDIwNCwKLX0gV0tf
RU5VTV9BVkFJTEFCTEUoMTBfMTEsIDhfMyk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjExKSwgaW9zKDguMykpOwogCiAvKiEgQGNvbnN0YW50IF9XS0phdmFTY3JpcHRFeGNlcHRpb25N
ZXNzYWdlRXJyb3JLZXkgS2V5IGluIHVzZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNlcHRp
b24gbWVzc2FnZSAoYXMgYW4gTlNTdHJpbmcpIGZvciBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlv
bk9jY3VycmVkIGVycm9ycy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFT
Y3JpcHRFeGNlcHRpb25NZXNzYWdlRXJyb3JLZXkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdL
X0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2Vw
dGlvbk1lc3NhZ2VFcnJvcktleSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogLyohIEBjb25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9u
TGluZU51bWJlckVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcKICB0aGUgZXhj
ZXB0aW9uIGxpbmUgbnVtYmVyIChhcyBhbiBOU051bWJlcikgZm9yIFdLRXJyb3JKYXZhU2NyaXB0
RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
X1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJFcnJvcktleSBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZh
U2NyaXB0RXhjZXB0aW9uTGluZU51bWJlckVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGNvbnN0YW50IF9XS0phdmFT
Y3JpcHRFeGNlcHRpb25Db2x1bW5OdW1iZXJFcnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVwcmVz
ZW50aW5nCiAgdGhlIGV4Y2VwdGlvbiBjb2x1bW4gbnVtYmVyIChhcyBhbiBOU051bWJlcikgZm9y
IFdLRXJyb3JKYXZhU2NyaXB0RXhjZXB0aW9uT2NjdXJyZWQgZXJyb3JzLiAqLwotV0tfRVhURVJO
IE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkNvbHVtbk51bWJlckVycm9y
S2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Db2x1bW5OdW1iZXJFcnJvcktleSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
LyohIEBjb25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uU291cmNlVVJMRXJyb3JLZXkgS2V5
IGluIHVzZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNlcHRpb24gc291cmNlIFVSTCAoYXMg
YW4gTlNVUkwpIGZvciBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIGVycm9ycy4g
Ki8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Tb3Vy
Y2VVUkxFcnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uU291cmNlVVJMRXJy
b3JLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0ZyYW1lSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tGcmFtZUluZm8uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw3IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKQogQGludGVyZmFjZSBXS0ZyYW1lSW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIC8q
ISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgZnJhbWUg
aXMgdGhlIG1haW4gZnJhbWUKQEAgLTUxLDcgKzUxLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIGZyYW1lJ3MgY3VycmVudCBzZWN1cml0eSBv
cmlnaW4uCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tTZWN1cml0eU9y
aWdpbiAqc2VjdXJpdHlPcmlnaW4gV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1NlY3VyaXR5T3JpZ2luICpzZWN1cml0eU9yaWdpbiBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQGVuZAogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFt
ZUluZm9Qcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDcgKzMxLDcgQEAKIAogQGludGVyZmFjZSBXS0ZyYW1lSW5mbyAoV0tQcml2YXRlKQogCi1AcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIHN0cm9uZykgX1dLRnJhbWVIYW5kbGUgKl9oYW5k
bGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5LCBzdHJvbmcpIF9XS0ZyYW1lSGFuZGxlICpfaGFuZGxlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50
aWZpZXJzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlm
aWVyc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMjYgKzMwLDI2IEBACiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS0RlY2xhcmF0aW9u
U3BlY2lmaWVycy5oPgogCi1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVu
dUl0ZW1JZGVudGlmaWVyQ29weSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
Q29weUltYWdlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5TGluayBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyRG93bmxvYWRJbWFnZSBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyRG93bmxvYWRMaW5rZWRGaWxlIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJHb0JhY2sgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01l
bnVJdGVtSWRlbnRpZmllckdvRm9yd2FyZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVySW5zcGVjdEVsZW1lbnQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmll
ckxvb2tVcCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkZyYW1lSW5O
ZXdXaW5kb3cgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JU
IGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5JbWFnZUlu
TmV3V2luZG93IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuTGluayBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkxpbmtJbk5ld1dpbmRvdyBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUGFzdGUgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0
IF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyU2VhcmNoV2ViIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
LVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJT
aG93SGlkZU1lZGlhQ29udHJvbHMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmll
clRvZ2dsZUZ1bGxTY3JlZW4gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
V0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckNv
cHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVy
Q29weUltYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllckNvcHlMaW5rIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJ
dGVtSWRlbnRpZmllckRvd25sb2FkSW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29u
c3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyRG93bmxvYWRMaW5rZWRGaWxlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckdvQmFjayBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJHb0ZvcndhcmQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVySW5zcGVj
dEVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVyTG9va1VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVt
SWRlbnRpZmllck9wZW5GcmFtZUluTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5JbWFnZUluTmV3V2luZG93IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JU
IGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5M
aW5rSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0
ZW1JZGVudGlmaWVyUGFzdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVu
dUl0ZW1JZGVudGlmaWVyUmVsb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9X
S01lbnVJdGVtSWRlbnRpZmllclNlYXJjaFdlYiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTaG93SGlkZU1lZGlhQ29udHJvbHMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyVG9nZ2xlRnVsbFNj
cmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
ZmllclNoYXJlTWVudSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNo
TWVudSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hhcmVNZW51IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNwZWVjaE1l
bnUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTmF2aWdhdGlvbi5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3
ICszNCw3IEBACiAgYWxzbyBwYXNzZWQgdG8gdGhlIG5hdmlnYXRpb24gZGVsZWdhdGUgbWV0aG9k
cywgdG8gdW5pcXVlbHkgaWRlbnRpZnkgYSB3ZWJwYWdlCiAgbG9hZCBmcm9tIHN0YXJ0IHRvIGZp
bmlzaC4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvbiA6
IE5TT2JqZWN0CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaAkocmV2aXNpb24gMjAyNzU5KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTIgKzUzLDEyIEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIFdLTmF2aWdhdGlvblQKICAgICBXS05hdmlnYXRpb25UeXBlUmVsb2FkLAogICAgIFdL
TmF2aWdhdGlvblR5cGVGb3JtUmVzdWJtaXR0ZWQsCiAgICAgV0tOYXZpZ2F0aW9uVHlwZU90aGVy
ID0gLTEsCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogLyohIAogQSBXS05hdmlnYXRpb25BY3Rp
b24gb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGFuIGFjdGlvbiB0aGF0IG1heSBj
YXVzZSBhIG5hdmlnYXRpb24sIHVzZWQgZm9yIG1ha2luZyBwb2xpY3kgZGVjaXNpb25zLgogICov
Ci1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
c3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uQWN0aW9uIDogTlNP
YmplY3QKIAogLyohIEBhYnN0cmFjdCBUaGUgZnJhbWUgcmVxdWVzdGluZyB0aGUgbmF2aWdhdGlv
bi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblBy
aXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDEwIEBACiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpfb3JpZ2luYWxVUkw7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNVc2VySW5pdGlhdGVkKSBCT09MIF91c2VySW5pdGlh
dGVkOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9jYW5IYW5kbGVSZXF1
ZXN0OwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0
ZXJuYWxTY2hlbWVzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkFwcExpbmtzIFdLX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3Bl
bkV4dGVybmFsU2NoZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkFwcExp
bmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHMgV0tf
REVQUkVDQVRFRCgxMF8xMSwgMTBfMTEsIDlfMCwgOV8wLCAidXNlIF9zaG91bGRPcGVuRXh0ZXJu
YWxTY2hlbWVzIGFuZCBfc2hvdWxkT3BlbkFwcExpbmtzIik7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHMgV0tfQVBJX0RFUFJFQ0FU
RUQoInVzZSBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBhbmQgX3Nob3VsZE9wZW5BcHBMaW5r
cyIsIG1hY29zeCgxMC4xMSwgMTAuMTEpLCBpb3MoOS4wLCA5LjApKTsKIAogQGVuZAogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRhdGEuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRhdGEuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25EYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMz
LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FW
QUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKQogQGludGVyZmFjZSBXS05hdmlnYXRpb25EYXRhIDogTlNPYmplY3QKIAogQHByb3Bl
cnR5IChyZWFkb25seSkgTlNTdHJpbmcgKnRpdGxlOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3IEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3kpIHsKICAgICBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWws
CiAgICAgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csCi19IFdLX0VOVU1fQVZBSUxBQkxF
KDEwXzEwLCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KTsKIAogLyohIEBlbnVtIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5CiAgQGFic3RyYWN0IFRo
ZSBwb2xpY3kgdG8gcGFzcyBiYWNrIHRvIHRoZSBkZWNpc2lvbiBoYW5kbGVyIGZyb20gdGhlIHdl
YlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjog
bWV0aG9kLgpAQCAtNTUsNyArNTUsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05h
dmlnYXRpb25BCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25z
ZVBvbGljeSkgewogICAgIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5Q2FuY2VsLAogICAgIFdL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QWxsb3csCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEw
LCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAog
LyohIEEgY2xhc3MgY29uZm9ybWluZyB0byB0aGUgV0tOYXZpZ2F0aW9uRGVsZWdhdGUgcHJvdG9j
b2wgY2FuIHByb3ZpZGUKICBtZXRob2RzIGZvciB0cmFja2luZyBwcm9ncmVzcyBmb3IgbWFpbiBm
cmFtZSBuYXZpZ2F0aW9ucyBhbmQgZm9yIGRlY2lkaW5nCkBAIC0xNDIsNyArMTQyLDcgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUgogLyohIEBhYnN0cmFjdCBJbnZv
a2VkIHdoZW4gdGhlIHdlYiB2aWV3J3Mgd2ViIGNvbnRlbnQgcHJvY2VzcyBpcyB0ZXJtaW5hdGVk
LgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyB3aG9zZSB1bmRlcmx5aW5nIHdlYiBjb250
ZW50IHByb2Nlc3Mgd2FzIHRlcm1pbmF0ZWQuCiAgKi8KLS0gKHZvaWQpd2ViVmlld1dlYkNvbnRl
bnRQcm9jZXNzRGlkVGVybWluYXRlOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKKy0gKHZvaWQpd2ViVmlld1dlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRl
OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAko
cmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIs
NyBAQAogI2lmIFdLX0FQSV9FTkFCTEVECiAKIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rp
b25Qb2xpY3kgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2FkID0gKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeSkoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cgKyAxKTsKLXN0YXRp
YyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzAp
IF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rID0gKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSkoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cgKyAy
KTsKK3N0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93
V2l0aG91dFRyeWluZ0FwcExpbmsgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lBbGxvdyArIDIpOwogCiBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9u
UmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYWQg
PSAoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5
QWxsb3cgKyAxKTsKIApAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9u
UmVzcG9uc2VQb2xpY3kgCiAvLyBPbmx5IGNhbGxlZCBpZiBob3cgdGhlIGdlc3R1cmUgd2lsbCBl
bmQgKHdpdGggb3Igd2l0aG91dCBuYXZpZ2F0aW9uKSBpcyBrbm93biBiZWZvcmUgaXQgZW5kcy4K
IC0gKHZvaWQpX3dlYlZpZXdXaWxsRW5kTmF2aWdhdGlvbkdlc3R1cmU6KFdLV2ViVmlldyAqKXdl
YlZpZXcgd2l0aE5hdmlnYXRpb25Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqKWl0ZW07CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdp
bGxTbmFwc2hvdEJhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0
ZW07Ci0tICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
CistICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkU3RhcnRMb2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1h
aW5GcmFtZVdpdGhGaWxlTmFtZTooTlNTdHJpbmcgKilmaWxlTmFtZSB1dGk6KE5TU3RyaW5nICop
dXRpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25SZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25SZXNwb25zZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIC8q
ISBDb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIG5hdmlnYXRpb24gcmVzcG9uc2UsIHVzZWQg
Zm9yIG1ha2luZyBwb2xpY3kgZGVjaXNpb25zLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBp
bnRlcmZhY2UgV0tOYXZpZ2F0aW9uUmVzcG9uc2UgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0
IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZyYW1lIGJlaW5nIG5hdmln
YXRlZCBpcyB0aGUgbWFpbiBmcmFtZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaAkocmV2aXNp
b24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5Q
YW5lbFBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQCBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogCiAvKiEgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzIGNvbnRhaW5zIHBh
cmFtZXRlcnMgdGhhdCBhIGZpbGUgdXBsb2FkIGNvbnRyb2wgaGFzIHNwZWNpZmllZC4KICAqLwot
V0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSkKIEBpbnRlcmZhY2UgV0tPcGVuUGFuZWxQYXJhbWV0ZXJzIDogTlNP
YmplY3QKIAogLyohIEBhYnN0cmFjdCBXaGV0aGVyIHRoZSBmaWxlIHVwbG9hZCBjb250cm9sIHN1
cHBvcnRzIG11bHRpcGxlIGZpbGVzLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAgdmlldy4gVGhlIHByZWZlcmVuY2VzIG9iamVjdCBh
c3NvY2lhdGVkIHdpdGggYSB3ZWIgdmlldyBpcyBzcGVjaWZpZWQgYnkKICBpdHMgd2ViIHZpZXcg
Y29uZmlndXJhdGlvbi4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLUHJl
ZmVyZW5jZXMgOiBOU09iamVjdCA8TlNDb2Rpbmc+CiAKIC8qISBAYWJzdHJhY3QgVGhlIG1pbmlt
dW0gZm9udCBzaXplIGluIHBvaW50cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJldmlzaW9u
IDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJl
bmNlc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTYgKzM1LDE2IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS1N0b3JhZ2VCbG8KICAgICBfV0tTdG9yYWdlQmxvY2tpbmdQ
b2xpY3lBbGxvd0FsbCwKICAgICBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3lCbG9ja1RoaXJkUGFy
dHksCiAgICAgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QmxvY2tBbGwsCi19IFdLX0VOVU1fQVZB
SUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKTsKIAogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS0RlYnVnT3Zlcmxh
eVJlZ2lvbnMpIHsKICAgICBfV0tOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbiA9IDEgPDwgMCwKICAg
ICBfV0tXaGVlbEV2ZW50SGFuZGxlclJlZ2lvbiA9IDEgPDwgMQotfSBXS19FTlVNX0FWQUlMQUJM
RSgxMF8xMSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tKYXZhU2NyaXB0UnVudGlt
ZUZsYWdzKSB7CiAgICAgX1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFnc0FsbEVuYWJsZWQgPSAwCi19
IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg5LjApKTsKIAogQGNsYXNzIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmU7CiAK
QEAgLTU3LDQwICs1Nyw0MCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLSmF2
YVNjCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb21wb3NpdGluZ0JvcmRlcnNW
aXNpYmxlOikgQk9PTCBfY29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZTopIEJP
T0wgX2NvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTopIEJPT0wgX3Rp
bGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZTopIEJPT0wgX3Jlc291cmNlVXNhZ2VP
dmVybGF5VmlzaWJsZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaXNpYmxlRGVidWdPdmVybGF5UmVnaW9uczop
IF9XS0RlYnVnT3ZlcmxheVJlZ2lvbnMgX3Zpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zIFdLX0FW
QUlMQUJMRSgxMF8xMSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNp
bXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkOikgQk9PTCBfc2ltcGxlTGluZUxheW91
dERlYnVnQm9yZGVyc0VuYWJsZWQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wg
X2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlzcGxheUxpc3REcmF3
aW5nRW5hYmxlZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0VGV4dEF1dG9zaXppbmdFbmFibGVkOikgQk9PTCBfdGV4dEF1dG9zaXppbmdFbmFibGVkIFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFJlc291cmNlVXNhZ2VPdmVybGF5VmlzaWJsZTopIEJPT0wgX3Jlc291cmNl
VXNhZ2VPdmVybGF5VmlzaWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpc2li
bGVEZWJ1Z092ZXJsYXlSZWdpb25zOikgX1dLRGVidWdPdmVybGF5UmVnaW9ucyBfdmlzaWJsZURl
YnVnT3ZlcmxheVJlZ2lvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaW1wbGVMaW5lTGF5b3V0RGVi
dWdCb3JkZXJzRW5hYmxlZDopIEJPT0wgX3NpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDopIEJPT0wg
X2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXREaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkOikgQk9PTCBfZGlzcGxheUxpc3REcmF3aW5nRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRBdXRvc2l6aW5nRW5hYmxl
ZDopIEJPT0wgX3RleHRBdXRvc2l6aW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDopIEJPT0wgX2RldmVsb3BlckV4dHJhc0Vu
YWJsZWQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDopIEJPT0wgX2RldmVsb3BlckV4dHJhc0Vu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkOikgQk9PTCBfbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQg
V0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0TG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6KSBCT09MIF9sb2dzUGFn
ZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMSksIGlvcyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SGlk
ZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQ6KSBCT09MIF9oaWRkZW5QYWdlRE9NVGlt
ZXJUaHJvdHRsaW5nRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJv
dHRsaW5nQXV0b0luY3JlYXNlczopIEJPT0wgX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdB
dXRvSW5jcmVhc2VzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkOikgQk9PTCBfcGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVz
c2lvbkVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0Vu
YWJsZWQ6KSBCT09MIF9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRv
SW5jcmVhc2VzOikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFz
ZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZDopIEJPT0wgX3BhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxv
d0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVS
THMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0SmF2YVNjcmlwdFJ1bnRpbWVGbGFnczopIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3Mg
X2phdmFTY3JpcHRSdW50aW1lRmxhZ3MgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOikg
Qk9PTCBfYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SmF2
YVNjcmlwdFJ1bnRpbWVGbGFnczopIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3MgX2phdmFTY3Jp
cHRSdW50aW1lRmxhZ3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFN0YW5kYWxvbmU6LCBnZXR0ZXI9
X2lzU3RhbmRhbG9uZSkgQk9PTCBfc3RhbmRhbG9uZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdGFuZGFsb25lOiwgZ2V0dGVyPV9p
c1N0YW5kYWxvbmUpIEJPT0wgX3N0YW5kYWxvbmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpYWdu
b3N0aWNMb2dnaW5nRW5hYmxlZDopIEJPT0wgX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCBXS19B
VkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRE
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ6KSBCT09MIF9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmF1bHRGb250U2l6ZTopIE5TVUludGVnZXIgX2RlZmF1
bHRGb250U2l6ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0Rml4ZWRQaXRjaEZvbnRTaXplOikgTlNV
SW50ZWdlciBfZGVmYXVsdEZpeGVkUGl0Y2hGb250U2l6ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRG
aXhlZFBpdGNoRm9udEZhbWlseTopIE5TU3RyaW5nICpfZml4ZWRQaXRjaEZvbnRGYW1pbHkgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0RGVmYXVsdEZvbnRTaXplOikgTlNVSW50ZWdlciBfZGVmYXVsdEZvbnRTaXpl
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVmYXVsdEZpeGVkUGl0Y2hGb250U2l6
ZTopIE5TVUludGVnZXIgX2RlZmF1bHRGaXhlZFBpdGNoRm9udFNpemUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSwgc2V0dGVyPV9zZXRGaXhlZFBpdGNoRm9udEZhbWlseTopIE5TU3RyaW5nICpf
Zml4ZWRQaXRjaEZvbnRGYW1pbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBjb25maWd1cmVk
IG9uIHRoZSBXS1dlYnNpdGVEYXRhU3RvcmUuCiAvLyBGSVhNRTogVGhpcyBwcm9wZXJ0eSBzaG91
bGQgbm90IGhhdmUgdGhlIHZlcmIgImlzIiBpbiBpdC4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldE9mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkOikgQk9PTCBfb2ZmbGlu
ZUFwcGxpY2F0aW9uQ2FjaGVJc0VuYWJsZWQ7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRGdWxsU2NyZWVuRW5hYmxlZDopIEJPT0wgX2Z1bGxTY3JlZW5FbmFibGVkIFdLX0FWQUlM
QUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxT
Y3JlZW5FbmFibGVkOikgQk9PTCBfZnVsbFNjcmVlbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLSsgKE5TQXJyYXk8X1dLRXhwZXJpbWVudGFsRmVh
dHVyZSAqPiAqKV9leHBlcmltZW50YWxGZWF0dXJlcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
V0tfSU9TX1RCQSk7Ci0tIChCT09MKV9pc0VuYWJsZWRGb3JGZWF0dXJlOihfV0tFeHBlcmltZW50
YWxGZWF0dXJlICopZmVhdHVyZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci0tICh2b2lkKV9zZXRFbmFibGVkOihCT09MKXZhbHVlIGZvckZlYXR1cmU6KF9XS0V4cGVyaW1l
bnRhbEZlYXR1cmUgKilmZWF0dXJlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKKysgKE5TQXJyYXk8X1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqPiAqKV9leHBlcmltZW50YWxG
ZWF0dXJlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKEJPT0wpX2lzRW5hYmxlZEZvckZlYXR1cmU6KF9XS0V4cGVyaW1lbnRhbEZlYXR1
cmUgKilmZWF0dXJlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JGZWF0dXJlOihf
V0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0
ZW0uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcg
QEAKIAogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Q29udHJvbGxlci5oPgogCi1XS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpCitXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSkKIEBwcm90
b2NvbCBXS1ByZXZpZXdBY3Rpb25JdGVtIDxVSVByZXZpZXdBY3Rpb25JdGVtPgogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVt
SWRlbnRpZmllcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCShyZXZpc2lvbiAyMDI3NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0
ZW1JZGVudGlmaWVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw5ICszMCw5IEBACiAKICNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllck9wZW4gV0tfQVZBSUxBQkxFKE5BLCBXS19J
T1NfVEJBKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1J
ZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwot
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJD
b3B5IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllclNoYXJlIFdLX0FWQUlMQUJMRShOQSwg
V0tfSU9TX1RCQSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25J
dGVtSWRlbnRpZmllck9wZW4gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRU
b1JlYWRpbmdMaXN0IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYVEVS
TiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyQ29weSBXS19B
UElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllclNoYXJlIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KFdLX0lPU19UQkEpKTsKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCShyZXZpc2lv
biAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmll
d0VsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgV0tQcmV2aWV3
RWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIG51bGxhYmxlKSBOU1VSTCAqbGlua1VSTDsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgJKHJldmlz
aW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzR3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQAogCiBAZW5kCiAKLVdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1Byb2Nlc3NHcm91cCA6IE5TT2JqZWN0CiAK
IC0gKGlkKWluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAg
aW1wbGVtZW50YXRpb24tZGVmaW5lZCBwcm9jZXNzIGxpbWl0IGlzIHJlYWNoZWQ7IGFmdGVyIHRo
YXQsIHdlYiB2aWV3cwogIHdpdGggdGhlIHNhbWUgcHJvY2VzcyBwb29sIGVuZCB1cCBzaGFyaW5n
IHdlYiBjb250ZW50IHByb2Nlc3Nlcy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJm
YWNlIFdLUHJvY2Vzc1Bvb2wgOiBOU09iamVjdCA8TlNDb2Rpbmc+CiBAZW5kCiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NDMsMjMgKzQzLDIzIEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiAqX2NvbmZpZ3VyYXRpb247CiAKIC0gKHZvaWQpX3NldEFsbG93
c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9y
SG9zdDooTlNTdHJpbmcgKilob3N0OwotLSAodm9pZClfc2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJU
cnVzdEV2YWx1YXRpb246KEJPT0wpdmFsdWUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAo
dm9pZClfc2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb246KEJPT0wpdmFsdWUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAtICh2b2lkKV9zZXRD
b29raWVBY2NlcHRQb2xpY3k6KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3k7CiAKIC0g
KGlkKV9vYmplY3RGb3JCdW5kbGVQYXJhbWV0ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVyOwogLSAo
dm9pZClfc2V0T2JqZWN0OihpZCA8TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4pb2JqZWN0IGZv
ckJ1bmRsZVBhcmFtZXRlcjooTlNTdHJpbmcgKilwYXJhbWV0ZXI7CiAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkIDxOU0NvcHlpbmcsIE5TU2VjdXJl
Q29kaW5nPj4KLS0gKHZvaWQpX3NldE9iamVjdHNGb3JCdW5kbGVQYXJhbWV0ZXJzV2l0aERpY3Rp
b25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOworLSAodm9pZClfc2V0T2JqZWN0c0ZvckJ1bmRsZVBhcmFtZXRlcnNXaXRo
RGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHdlYWssIHNldHRlcj1fc2V0RG93bmxvYWREZWxlZ2F0ZTopIGlkIDxfV0tEb3dubG9hZERl
bGVnYXRlPiBfZG93bmxvYWREZWxlZ2F0ZTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBz
ZXR0ZXI9X3NldEF1dG9tYXRpb25EZWxlZ2F0ZTopIGlkIDxfV0tBdXRvbWF0aW9uRGVsZWdhdGU+
IF9hdXRvbWF0aW9uRGVsZWdhdGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0QXV0b21hdGlvbkRlbGVn
YXRlOikgaWQgPF9XS0F1dG9tYXRpb25EZWxlZ2F0ZT4gX2F1dG9tYXRpb25EZWxlZ2F0ZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogKyAo
TlNVUkwgKilfd2Vic2l0ZURhdGFVUkxGb3JDb250YWluZXJXaXRoVVJMOihOU1VSTCAqKWNvbnRh
aW5lclVSTDsKICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVSTDoo
TlNVUkwgKiljb250YWluZXJVUkwgYnVuZGxlSWRlbnRpZmllcklmTm90SW5Db250YWluZXI6KE5T
U3RyaW5nICopYnVuZGxlSWRlbnRpZmllcjsKIAotLSAodm9pZClfd2FybUluaXRpYWxQcm9jZXNz
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX2F1dG9tYXRp
b25DYXBhYmlsaXRpZXNEaWRDaGFuZ2UgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwotLSAodm9pZClfc2V0QXV0b21hdGlvblNlc3Npb246KF9XS0F1dG9tYXRpb25TZXNzaW9u
ICopYXV0b21hdGlvblNlc3Npb24gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OworLSAodm9pZClfd2FybUluaXRpYWxQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfYXV0b21hdGlvbkNhcGFiaWxp
dGllc0RpZENoYW5nZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldEF1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9u
U2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxs
ZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCiAtICh2
b2lkKV90ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3M7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdlLmgJKHJldmlzaW9uIDIw
Mjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNz
YWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIC8qISBBIFdLU2NyaXB0TWVzc2FnZSBvYmplY3QgY29udGFpbnMgaW5mb3JtYXRpb24g
YWJvdXQgYSBtZXNzYWdlIHNlbnQgZnJvbQogIGEgd2VicGFnZS4KICAqLwotV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCiBAaW50ZXJmYWNlIFdLU2NyaXB0TWVzc2FnZSA6IE5TT2JqZWN0CiAKIC8qISBAYWJz
dHJhY3QgVGhlIGJvZHkgb2YgdGhlIG1lc3NhZ2UuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNpb24g
MjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5
T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICAqLwogTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNlIFdLU2VjdXJp
dHlPcmlnaW4gOiBOU09iamVjdAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJM
RTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tUeXBlUmVmV3Jh
cHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tUeXBlUmVmV3JhcHBlci5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNyArMzAsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV0tCYXNlLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1R5
cGVSZWZXcmFwcGVyIDogTlNPYmplY3QKIAogLSAoaWQpaW5pdFdpdGhPYmplY3Q6KFdLVHlwZVJl
ZilvYmplY3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlE
ZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVSURlbGVnYXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcg
KzY1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICAgQGRpc2N1c3Npb24gWW91ciBhcHAg
c2hvdWxkIHJlbW92ZSB0aGUgd2ViIHZpZXcgZnJvbSB0aGUgdmlldyBoaWVyYXJjaHkgYW5kIHVw
ZGF0ZQogICB0aGUgVUkgYXMgbmVlZGVkLCBzdWNoIGFzIGJ5IGNsb3NpbmcgdGhlIGNvbnRhaW5p
bmcgYnJvd3NlciB0YWIgb3Igd2luZG93LgogICAqLwotLSAodm9pZCl3ZWJWaWV3RGlkQ2xvc2U6
KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAodm9pZCl3
ZWJWaWV3RGlkQ2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgRGlzcGxheXMgYSBKYXZhU2Ny
aXB0IGFsZXJ0IHBhbmVsLgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0
aGUgZGVsZWdhdGUgbWV0aG9kLgpAQCAtMTI5LDcgKzEyOSw3IEBAIE5TX0FTU1VNRV9OT05OVUxM
X0JFR0lOCiAgVGhpcyBtZXRob2Qgd2lsbCBvbmx5IGJlIGludm9rZWQgZm9yIGVsZW1lbnRzIHRo
YXQgaGF2ZSBkZWZhdWx0IHByZXZpZXcgaW4gV2ViS2l0LCB3aGljaCBpcwogIGxpbWl0ZWQgdG8g
bGlua3MuIEluIHRoZSBmdXR1cmUsIGl0IGNvdWxkIGJlIGludm9rZWQgZm9yIGFkZGl0aW9uYWwg
ZWxlbWVudHMuCiAgKi8KLS0gKEJPT0wpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91
bGRQcmV2aWV3RWxlbWVudDooV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19B
VkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworLSAoQk9PTCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHNob3VsZFByZXZpZXdFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1l
bnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogLyohIEBhYnN0cmFj
dCBBbGxvd3MgeW91ciBhcHAgdG8gcHJvdmlkZSBhIGN1c3RvbSB2aWV3IGNvbnRyb2xsZXIgdG8g
c2hvdyB3aGVuIHRoZSBnaXZlbiBlbGVtZW50IGlzIHBlZWtlZC4KICBAcGFyYW0gd2ViVmlldyBU
aGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KQEAgLTE0NCwxMyArMTQ0
LDEzIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgUmV0dXJuaW5nIG5pbCB3aWxsIHJlc3Vs
dCBpbiBXZWJLaXQncyBkZWZhdWx0IHByZXZpZXcgYmVoYXZpb3IuIHdlYlZpZXc6Y29tbWl0UHJl
dmlld2luZ1ZpZXdDb250cm9sbGVyOiB3aWxsIG9ubHkgYmUgaW52b2tlZAogIGlmIGEgbm9uLW5p
bCB2aWV3IGNvbnRyb2xsZXIgd2FzIHJldHVybmVkLgogICovCi0tIChudWxsYWJsZSBVSVZpZXdD
b250cm9sbGVyICopd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3aW5nVmlld0Nv
bnRyb2xsZXJGb3JFbGVtZW50OihXS1ByZXZpZXdFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGRl
ZmF1bHRBY3Rpb25zOihOU0FycmF5PGlkIDxXS1ByZXZpZXdBY3Rpb25JdGVtPj4gKilwcmV2aWV3
QWN0aW9ucyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworLSAobnVsbGFibGUgVUlWaWV3
Q29udHJvbGxlciAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld2luZ1ZpZXdD
b250cm9sbGVyRm9yRWxlbWVudDooV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBk
ZWZhdWx0QWN0aW9uczooTlNBcnJheTxpZCA8V0tQcmV2aWV3QWN0aW9uSXRlbT4+ICopcHJldmll
d0FjdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGFic3Ry
YWN0IEFsbG93cyB5b3VyIGFwcCB0byBwb3AgdG8gdGhlIHZpZXcgY29udHJvbGxlciBpdCBjcmVh
dGVkLgogIEBwYXJhbSB3ZWJWaWV3IFRoZSB3ZWIgdmlldyBpbnZva2luZyB0aGUgZGVsZWdhdGUg
bWV0aG9kLgogIEBwYXJhbSBwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgVGhlIHZpZXcgY29udHJv
bGxlciB0aGF0IGlzIGJlaW5nIHBvcHBlZC4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJv
bGxlciAqKXByZXZpZXdpbmdWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdp
bmdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdpbmdWaWV3Q29udHJv
bGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKICNlbmRpZiAvLyBUQVJH
RVRfT1NfSVBIT05FCiAKQEAgLTE2NCw3ICsxNjQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogCiAgSWYgeW91IGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBtZXRob2QsIHRoZSB3ZWIgdmlldyB3
aWxsIGJlaGF2ZSBhcyBpZiB0aGUgdXNlciBzZWxlY3RlZCB0aGUgQ2FuY2VsIGJ1dHRvbi4KICAq
LwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJ1bk9wZW5QYW5lbFdpdGhQ
YXJhbWV0ZXJzOihXS09wZW5QYW5lbFBhcmFtZXRlcnMgKilwYXJhbWV0ZXJzIGluaXRpYXRlZEJ5
RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5T
QXJyYXk8TlNVUkwgKj4gKiBfTnVsbGFibGUgVVJMcykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBydW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyczooV0tPcGVuUGFuZWxQYXJhbWV0ZXJzICop
cGFyYW1ldGVycyBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TVVJMICo+ICogX051bGxhYmxlIFVSTHMpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAog
I2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURl
bGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtNTMsMzMgKzUzLDMzIEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKIC0g
KHZvaWQpX3dlYlZpZXdDbG9zZTooV0tXZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZp
ZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6KFdLV2ViVmlldyAqKXdlYlZpZXc7Ci0tICh2
b2lkKV93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FW
QUlMQUJMRSgxMF8xMSwgOF8zKTsKLS0gKHZvaWQpX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoMTBfMTEsIDhfMyk7CistICh2b2lkKV93
ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDguMykpOworLSAodm9pZClfd2ViVmlld0RpZEV4aXRG
dWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjExKSwgaW9zKDguMykpOwogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQ6KENHU2l6ZSlzaXplIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKE5TRGljdGlvbmFyeSAqKV9kYXRhRGV0ZWN0
aW9uQ29udGV4dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkOihDR1NpemUpc2l6ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TRGlj
dGlvbmFyeSAqKV9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQotLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAoQk9PTClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNG
b3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlM
QUJMRShpb3MoOV8wKSk7CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgYWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBk
ZWZhdWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopZGVmYXVsdEFjdGlv
bnM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5vdEhhbmRsZVRh
cEFzQ2xpY2tBdFBvaW50OihDR1BvaW50KXBvaW50OwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBzaG91bGRSZXF1ZXN0R2VvbG9jYXRpb25BdXRob3JpemF0aW9uRm9yVVJM
OihOU1VSTCAqKXVybCBpc01haW5GcmFtZTooQk9PTClpc01haW5GcmFtZSBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1
cmwgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBjb21taXRQcmV2aWV3ZWRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAq
KXByZXZpZXdlZFZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6KE5T
VVJMICopaW1hZ2VVUkwgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdpdGhVUkw6KE5TVVJMICop
aW1hZ2VVUkwgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250
cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgY29tbWl0dGluZzooQk9PTCljb21taXR0
aW5nIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxl
ciAqKXByZXZpZXdlZFZpZXdDb250cm9sbGVyIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKEJP
T0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVu
dDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShOQSwgV0tf
SU9TX1RCQSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFsdGVybmF0
ZUFjdGlvbkZvclVSTDooTlNVUkwgKil1cmwgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsK
LS0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci0tIChOU1VJbnRlZ2VyKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluZGV4SW50b0F0dGFjaG1lbnRMaXN0Rm9yRWxlbWVudDoo
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9T
X1RCQSk7Ci0tIChVSUVkZ2VJbnNldHMpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZmlu
YWxPYnNjdXJlZEluc2V0c0ZvclNjcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcg
d2l0aFZlbG9jaXR5OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlub3V0
IENHUG9pbnQgKil0YXJnZXRDb250ZW50T2Zmc2V0IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0g
KFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3
Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5
PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKFVJVmll
d0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0Nv
bnRyb2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25z
OihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdl
U2l6ZSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3ByZXNl
bnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZB
SUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICop
dXJsIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJv
bGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkp
OworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsUHJldmlld0ltYWdl
V2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkSW1hZ2VX
aXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdD
b250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgY29t
bWl0dGluZzooQk9PTCljb21taXR0aW5nIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdD
b250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tf
QVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
ICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFsdGVybmF0ZUFjdGlvbkZvclVSTDooTlNVUkwg
Kil1cmwgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNBcnJheSAqKV9h
dHRhY2htZW50TGlzdEZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAoTlNVSW50ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBpbmRleEludG9BdHRhY2htZW50TGlzdEZvckVsZW1lbnQ6KF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7
CistIChVSUVkZ2VJbnNldHMpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZmluYWxPYnNj
dXJlZEluc2V0c0ZvclNjcm9sbFZpZXc6KFVJU2Nyb2xsVmlldyAqKXNjcm9sbFZpZXcgd2l0aFZl
bG9jaXR5OihDR1BvaW50KXZlbG9jaXR5IHRhcmdldENvbnRlbnRPZmZzZXQ6KGlub3V0IENHUG9p
bnQgKil0YXJnZXRDb250ZW50T2Zmc2V0IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAo
VUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdW
aWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8
X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistIChV
SVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1Zp
ZXdDb250cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0
aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVtZW50SW5mbzoo
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBpbWFnZVNpemU6KENHU2l6ZSlp
bWFnZVNpemUgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CistIChVSVZpZXdDb250cm9sbGVy
ICopX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2Vsc2UKLS0gKE5TTWVudSAq
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51
IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBOQSk7Ci0tIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0
TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1
c2VySW5mbyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOworLSAoTlNNZW51ICopX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxl
bWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSkpOworLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29udGV4
dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGluZz4p
dXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAK
IEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29u
dGVudENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIwMjc1OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogIFRoZSB1c2VyIGNvbnRlbnQgY29udHJvbGxlciBhc3NvY2lhdGVkIHdpdGggYSB3ZWIg
dmlldyBpcyBzcGVjaWZpZWQgYnkgaXRzCiAgd2ViIHZpZXcgY29uZmlndXJhdGlvbi4KICAqLwot
V0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLVXNlckNvbnRlbnRDb250cm9sbGVyIDog
TlNPYmplY3QgPE5TQ29kaW5nPgogCiAvKiEgQGFic3RyYWN0IFRoZSB1c2VyIHNjcmlwdHMgYXNz
b2NpYXRlZCB3aXRoIHRoaXMgdXNlciBjb250ZW50CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENv
bnRyb2xsZXJQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDE4ICszNCwxOCBAQAogCiBAaW50ZXJmYWNlIFdLVXNlckNvbnRlbnRD
b250cm9sbGVyIChXS1ByaXZhdGUpCiAKLS0gKHZvaWQpX3JlbW92ZVVzZXJTY3JpcHQ6KFdLVXNl
clNjcmlwdCAqKXVzZXJTY3JpcHQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OwotLSAodm9pZClfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50
V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3JlbW92ZVVzZXJTY3JpcHQ6KFdL
VXNlclNjcmlwdCAqKXVzZXJTY3JpcHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU2NyaXB0c0Fzc29j
aWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250
ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKLS0gKHZvaWQpX2FkZFVzZXJDb250ZW50RmlsdGVyOihfV0tVc2VyQ29udGVudEZp
bHRlciAqKXVzZXJDb250ZW50RmlsdGVyIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLS0gKHZv
aWQpX3JlbW92ZVVzZXJDb250ZW50RmlsdGVyOihOU1N0cmluZyAqKXVzZXJDb250ZW50RmlsdGVy
TmFtZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci0tICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29u
dGVudEZpbHRlcnMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotCi1AcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8X1dLVXNlclN0eWxlU2hlZXQgKj4gKl91c2Vy
U3R5bGVTaGVldHMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9p
ZClfYWRkVXNlclN0eWxlU2hlZXQ6KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQg
V0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfcmVtb3ZlVXNl
clN0eWxlU2hlZXQ6KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0eWxl
U2hlZXRzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX3Jl
bW92ZUFsbFVzZXJTdHlsZVNoZWV0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dL
VXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOworLSAodm9pZClfYWRkVXNlckNvbnRlbnRGaWx0ZXI6KF9XS1VzZXJD
b250ZW50RmlsdGVyICopdXNlckNvbnRlbnRGaWx0ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTEpLCBpb3MoOS4wKSk7CistICh2b2lkKV9yZW1vdmVVc2VyQ29udGVudEZpbHRlcjooTlNT
dHJpbmcgKil1c2VyQ29udGVudEZpbHRlck5hbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyQ29udGVudEZpbHRlcnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CisKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheTxfV0tVc2VyU3R5bGVTaGVldCAqPiAqX3Vz
ZXJTdHlsZVNoZWV0cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVl
dCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVtb3ZlVXNlclN0eWxlU2hlZXQ6KF9XS1VzZXJT
dHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVl
dHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250
ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lk
KV9hZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNj
cmlwdE1lc3NhZ2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2VyQ29udGVudFdvcmxk
OihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZDsKIC0gKHZvaWQpX3JlbW92
ZVNjcmlwdE1lc3NhZ2VIYW5kbGVyRm9yTmFtZTooTlNTdHJpbmcgKiluYW1lIHVzZXJDb250ZW50
V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5oCShy
ZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VXNlclNjcmlwdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxMSArMzksMTEgQEAgTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLVXNlclNjcmlwdElu
amVjdGlvblRpbWUpIHsKICAgICBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0
YXJ0LAogICAgIFdLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50RW5kCi19IFdLX0VO
VU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKTsKIAogLyohIEEgQGxpbmsgV0tVc2VyU2NyaXB0IEAvbGluayBvYmplY3Qg
cmVwcmVzZW50cyBhIHNjcmlwdCB0aGF0IGNhbiBiZSBpbmplY3RlZCBpbnRvIHdlYnBhZ2VzLgog
ICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tVc2VyU2NyaXB0IDogTlNPYmpl
Y3QgPE5TQ29weWluZz4KIAogLyogQGFic3RyYWN0IFRoZSBzY3JpcHQgc291cmNlIGNvZGUuICov
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdFBy
aXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVXNlclNjcmlwdFByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHRQcml2YXRlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDEwICszMywxMCBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBAaW50ZXJm
YWNlIFdLVXNlclNjcmlwdCAoV0tQcml2YXRlKQogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
U291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJh
bWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRl
bGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xp
c3QgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29y
bGQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAoaW5zdGFuY2V0eXBl
KV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wp
Zm9yTWFpbkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKils
ZWdhY3lXaGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVn
YWN5QmxhY2tsaXN0IGFzc29jaWF0ZWRVUkw6KE5TVVJMICopYXNzb2NpYXRlZFVSTCB1c2VyQ29u
dGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
U291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJh
bWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRl
bGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xp
c3QgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29y
bGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CistIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmpl
Y3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFp
bkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJh
eTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8
TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xpc3QgYXNzb2NpYXRlZFVSTDooTlNVUkwgKilhc3Nv
Y2lhdGVkVVJMIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29u
dGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1VzZXJDb250ZW50
V29ybGQgKl91c2VyQ29udGVudFdvcmxkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLVXNlckNvbnRlbnRXb3Js
ZCAqX3VzZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3IEBACiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFZpZXdTY2FsZTopIENHRmxvYXQgX3ZpZXdTY2FsZTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQg
X292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVZBSUxBQkxFKDEwXzExLCBOQSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOikg
Q0dGbG9hdCBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdXRvbWF0aWNh
bGx5QWRqdXN0c0NvbnRlbnRJbnNldHM6KSBCT09MIF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRl
bnRJbnNldHM7CiAKQEAgLTg0LDcgKzg0LDcgQEAKIEBwcm9wZXJ0eSAoY29weSwgbm9uYXRvbWlj
KSBOU0NvbG9yICp1bmRlcmxheUNvbG9yOwogCiAjaWYgV0tfQVBJX0VOQUJMRUQKLUBwcm9wZXJ0
eSAoc3Ryb25nLCBub25hdG9taWMsIHNldHRlcj1fc2V0SW5zcGVjdG9yQXR0YWNobWVudFZpZXc6
KSBOU1ZpZXcgKl9pbnNwZWN0b3JBdHRhY2htZW50VmlldyBXS19BVkFJTEFCTEUoMTBfMTEsIE5B
KTsKK0Bwcm9wZXJ0eSAoc3Ryb25nLCBub25hdG9taWMsIHNldHRlcj1fc2V0SW5zcGVjdG9yQXR0
YWNobWVudFZpZXc6KSBOU1ZpZXcgKl9pbnNwZWN0b3JBdHRhY2htZW50VmlldyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSkpOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkd3JpdGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xz
TWFuYWdlcjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFn
ZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDEwICs0OSwxMCBAQCBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogIFVzZWQgdG8gY29uZmlndXJlIEBsaW5rIFdLV2ViVmlldyBA
L2xpbmsgaW5zdGFuY2VzLgogICovCiAjaWYgVEFSR0VUX09TX0lQSE9ORQotV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViVmlldyA6IFVJVmlldwogI2Vsc2UKLVdLX0NMQVNTX0FW
QUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKQogQGludGVyZmFjZSBXS1dlYlZpZXcgOiBOU1ZpZXcKICNlbmRpZgogCkBAIC05OCw3
ICs5OCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIElmIHJlYWRBY2Nlc3NV
UkwgcmVmZXJlbmNlcyBhIGRpcmVjdG9yeSwgZmlsZXMgaW5zaWRlIHRoYXQgZmlsZSBtYXkgYmUg
bG9hZGVkIGJ5IFdlYktpdC4KICBAcmVzdWx0IEEgbmV3IG5hdmlnYXRpb24gZm9yIHRoZSBnaXZl
biBmaWxlIFVSTC4KICAqLwotLSAobnVsbGFibGUgV0tOYXZpZ2F0aW9uICopbG9hZEZpbGVVUkw6
KE5TVVJMICopVVJMIGFsbG93aW5nUmVhZEFjY2Vzc1RvVVJMOihOU1VSTCAqKXJlYWRBY2Nlc3NV
UkwgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAobnVsbGFibGUgV0tOYXZpZ2F0aW9uICop
bG9hZEZpbGVVUkw6KE5TVVJMICopVVJMIGFsbG93aW5nUmVhZEFjY2Vzc1RvVVJMOihOU1VSTCAq
KXJlYWRBY2Nlc3NVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CiAKIC8qISBAYWJzdHJhY3QgU2V0cyB0aGUgd2VicGFnZSBjb250ZW50cyBhbmQgYmFzZSBVUkwu
CiAgQHBhcmFtIHN0cmluZyBUaGUgc3RyaW5nIHRvIHVzZSBhcyB0aGUgY29udGVudHMgb2YgdGhl
IHdlYnBhZ2UuCkBAIC0xMTQsNyArMTE0LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCiAgQHBhcmFtIGJhc2VVUkwgQSBVUkwgdGhhdCBpcyB1c2VkIHRvIHJlc29sdmUgcmVsYXRp
dmUgVVJMcyB3aXRoaW4gdGhlIGRvY3VtZW50LgogIEByZXN1bHQgQSBuZXcgbmF2aWdhdGlvbi4K
ICAqLwotLSAobnVsbGFibGUgV0tOYXZpZ2F0aW9uICopbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEg
TUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOihOU1N0
cmluZyAqKWNoYXJhY3RlckVuY29kaW5nTmFtZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgV0tf
QVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAobnVsbGFibGUgV0tOYXZpZ2F0aW9uICopbG9hZERh
dGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgY2hhcmFjdGVy
RW5jb2RpbmdOYW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVuY29kaW5nTmFtZSBiYXNlVVJMOihO
U1VSTCAqKWJhc2VVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CiAKIC8qISBAYWJzdHJhY3QgTmF2aWdhdGVzIHRvIGFuIGl0ZW0gZnJvbSB0aGUgYmFjay1mb3J3
YXJkIGxpc3QgYW5kIHNldHMgaXQKICBhcyB0aGUgY3VycmVudCBpdGVtLgpAQCAtMTY4LDcgKzE2
OCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIEBkaXNjdXNzaW9uIEBsaW5r
IFdLV2ViVmlldyBAL2xpbmsgaXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQg
CiAgZm9yIHRoaXMgcHJvcGVydHkuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSwgbnVsbGFibGUpIFNlY1RydXN0UmVmIHNlcnZlclRydXN0IFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFi
bGUpIFNlY1RydXN0UmVmIHNlcnZlclRydXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1
ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlcmUgaXMgYSBiYWNrIGl0ZW0gaW4KICB0aGUgYmFjay1m
b3J3YXJkIGxpc3QgdGhhdCBjYW4gYmUgbmF2aWdhdGVkIHRvLgpAQCAtMjI4LDEzICsyMjgsMTMg
QEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIGN1
c3RvbSB1c2VyIGFnZW50IHN0cmluZyBvciBuaWwgaWYgbm8gY3VzdG9tIHVzZXIgYWdlbnQgc3Ry
aW5nIGhhcyBiZWVuIHNldC4KICovCi1AcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIGNv
cHkpIE5TU3RyaW5nICpjdXN0b21Vc2VyQWdlbnQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
QHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNl
ckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEg
QGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgbGluayBwcmV2aWV3
IGlzIGFsbG93ZWQgZm9yIGFueQogIGxpbmtzIGluc2lkZSB0aGlzIFdLV2ViVmlldy4KICBAZGlz
Y3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMgb24gTWFjIGFuZCBpT1MuCiAgKi8KLUBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0xpbmtQcmV2aWV3IFdLX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c0xpbmtQcmV2aWV3
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAjaWYgVEFSR0VU
X09TX0lQSE9ORQogLyohIEBhYnN0cmFjdCBUaGUgc2Nyb2xsIHZpZXcgYXNzb2NpYXRlZCB3aXRo
IHRoZSB3ZWIgdmlldy4KQEAgLTMwNiw3ICszMDYsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKIAogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLRGVwcmVjYXRlZCkKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5ICpjZXJ0aWZpY2F0ZUNoYWlu
IFdLX0RFUFJFQ0FURUQoMTBfMTEsIFdLX01BQ19UQkEsIDlfMCwgV0tfSU9TX1RCQSwgIlBsZWFz
ZSB1c2Ugc2VydmVyVHJ1c3QiKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29w
eSkgTlNBcnJheSAqY2VydGlmaWNhdGVDaGFpbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJzZXJ2ZXJUcnVzdCIsIG1hY29zeCgxMC4xMSwgV0tfTUFDX1RCQSksIGlvcyg5LjAs
IFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAgTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLU2VsZWN0
aW9uR3JhbnVsYXJpdHkpIHsKICAgICBXS1NlbGVjdGlvbkdyYW51bGFyaXR5RHluYW1pYywKICAg
ICBXS1NlbGVjdGlvbkdyYW51bGFyaXR5Q2hhcmFjdGVyLAotfSBXS19FTlVNX0FWQUlMQUJMRV9J
T1MoOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShpb3MoOC4wKSk7CiAKIC8qISBAZW51bSBXS0Rh
dGFEZXRlY3RvclR5cGVzCiAgQGFic3RyYWN0IFRoZSB0eXBlIG9mIGRhdGEgZGV0ZWN0ZWQuCkBA
IC03Miw4ICs3Miw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBXS0RhdGFEZXQK
ICAgICBXS0RhdGFEZXRlY3RvclR5cGVMb29rdXBTdWdnZXN0aW9uID0gMSA8PCA2LAogICAgIFdL
RGF0YURldGVjdG9yVHlwZUFsbCA9IE5TVUludGVnZXJNYXgsCiAKLSAgICBXS0RhdGFEZXRlY3Rv
clR5cGVTcG90bGlnaHRTdWdnZXN0aW9uIFdLX0VOVU1fREVQUkVDQVRFRChOQSwgTkEsIFdLX0lP
U19UQkEsIFdLX0lPU19UQkEsICJQbGVhc2UgdXNlIFdLRGF0YURldGVjdG9yVHlwZUxvb2t1cFN1
Z2dlc3Rpb24iKSA9IFdLRGF0YURldGVjdG9yVHlwZUxvb2t1cFN1Z2dlc3Rpb24sCi19IFdLX0VO
VU1fQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKyAgICBXS0RhdGFEZXRlY3RvclR5cGVTcG90
bGlnaHRTdWdnZXN0aW9uIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLRGF0
YURldGVjdG9yVHlwZUxvb2t1cFN1Z2dlc3Rpb24iLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RC
QSkpID0gV0tEYXRhRGV0ZWN0b3JUeXBlTG9va3VwU3VnZ2VzdGlvbiwKK30gV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAjZWxzZQogCkBAIC05MSw3ICs5MSw3IEBAIHR5cGVk
ZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBXS0RhdGFEZXQKIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIFdLVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSkgewogICAgIFdLVXNlckludGVy
ZmFjZURpcmVjdGlvblBvbGljeUNvbnRlbnQsCiAgICAgV0tVc2VySW50ZXJmYWNlRGlyZWN0aW9u
UG9saWN5U3lzdGVtLAotfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7Cit9IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAogI2VuZGlmCiAKQEAgLTEwNywx
MyArMTA3LDEzIEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBXS0F1ZGlvdmkKICAg
ICBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlQXVkaW8gPSAxIDw8IDAsCiAgICAgV0tBdWRpb3Zpc3Vh
bE1lZGlhVHlwZVZpZGVvID0gMSA8PCAxLAogICAgIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVBbGwg
PSBOU1VJbnRlZ2VyTWF4Ci19IFdLX0VOVU1fQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAogLyohIEEgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBvYmplY3QgaXMgYSBjb2xsZWN0
aW9uIG9mIHByb3BlcnRpZXMgd2l0aAogIHdoaWNoIHRvIGluaXRpYWxpemUgYSB3ZWIgdmlldy4K
ICBAaGVscHMgQ29udGFpbnMgcHJvcGVydGllcyB1c2VkIHRvIGNvbmZpZ3VyZSBhIEBsaW5rIFdL
V2ViVmlldyBAL2xpbmsuCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dl
YlZpZXdDb25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29kaW5nLCBOU0NvcHlpbmc+CiAKIC8q
ISBAYWJzdHJhY3QgVGhlIHByb2Nlc3MgcG9vbCBmcm9tIHdoaWNoIHRvIG9idGFpbiB0aGUgdmll
dydzIHdlYiBjb250ZW50CkBAIC0xMzQsNyArMTM0LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIHdlYnNpdGUgZGF0YSBzdG9yZSB0byBiZSB1
c2VkIGJ5IHRoZSB3ZWIgdmlldy4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykg
V0tXZWJzaXRlRGF0YVN0b3JlICp3ZWJzaXRlRGF0YVN0b3JlIFdLX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIFdLV2Vic2l0ZURhdGFTdG9yZSAq
d2Vic2l0ZURhdGFTdG9yZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjAp
KTsKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRo
ZSB3ZWIgdmlldyBzdXBwcmVzc2VzCiAgY29udGVudCByZW5kZXJpbmcgdW50aWwgaXQgaXMgZnVs
bHkgbG9hZGVkIGludG8gbWVtb3J5LgpAQCAtMTQ0LDE0ICsxNDQsMTQgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiAKIC8qISBAYWJzdHJhY3QgVGhlIG5hbWUgb2YgdGhlIGFwcGxp
Y2F0aW9uIGFzIHVzZWQgaW4gdGhlIHVzZXIgYWdlbnQgc3RyaW5nLgogKi8KLUBwcm9wZXJ0eSAo
bnVsbGFibGUsIG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZUZvclVz
ZXJBZ2VudCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG51bGxhYmxlLCBu
b25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJhY3Qg
QSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBBaXJQbGF5IGlzIGFsbG93ZWQuCiAg
QGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTLgogICovCi1AcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQbGF5YmFjayBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NBaXJQbGF5Rm9y
TWVkaWFQbGF5YmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsK
IAotQHByb3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVzIG1lZGlhVHlw
ZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5
cGVzIG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRf
T1NfSVBIT05FCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRo
ZXIgSFRNTDUgdmlkZW9zIHBsYXkgaW5saW5lCkBAIC0xNzEsNyArMTcxLDcgQEAgV0tfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzEwLCA4XzApCiAgcGljdHVyZS1pbi1waWN0dXJlLgogIEBkaXNjdXNzaW9u
IFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgYWxsb3dzUGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2sgV0tfQVZBSUxBQkxFKE5BLCA5
XzApOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzUGljdHVyZUluUGljdHVyZU1l
ZGlhUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAKIC8qISBAYWJzdHJhY3Qg
QW4gZW51bSB2YWx1ZSBpbmRpY2F0aW5nIHRoZSB0eXBlIG9mIGRhdGEgZGV0ZWN0aW9uIGRlc2ly
ZWQuCiAgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgV0tEYXRhRGV0ZWN0b3JUeXBl
Tm9uZS4KQEAgLTE4MCw3ICsxODAsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
ICBpZiB0aGUgZGF0YURldGVjdG9yVHlwZXMgcHJvcGVydHkgaXMgc2V0IHRvIFdLRGF0YURldGVj
dG9yVHlwZVBob25lTnVtYmVyIHwgV0tEYXRhRGV0ZWN0b3JUeXBlTGluayB8IFdLRGF0YURldGVj
dG9yVHlwZUNhbGVuZGFyRXZlbnQuCiAKICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIFdLRGF0
YURldGVjdG9yVHlwZXMgZGF0YURldGVjdG9yVHlwZXMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1Nf
VEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXS0RhdGFEZXRlY3RvclR5cGVzIGRhdGFEZXRl
Y3RvclR5cGVzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2Vsc2UKIApA
QCAtMTg4LDcgKzE4OCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIEBkaXNj
dXNzaW9uIFBvc3NpYmxlIHZhbHVlcyBhcmUgZGVzY3JpYmVkIGluIFdLVXNlckludGVyZmFjZURp
cmVjdGlvblBvbGljeS4KICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBXS1VzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3lDb250ZW50LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgV0tVc2VySW50
ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXS1VzZXJJbnRl
cmZhY2VEaXJlY3Rpb25Qb2xpY3kgdXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKICNlbmRpZgogCkBAIC0xOTcsOSArMTk3
LDkgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiBAaW50ZXJmYWNlIFdLV2ViVmll
d0NvbmZpZ3VyYXRpb24gKFdLRGVwcmVjYXRlZCkKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKLUBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJBY3Rpb24g
V0tfREVQUkVDQVRFRChOQSwgTkEsIDhfMCwgOV8wLCAiUGxlYXNlIHVzZSByZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JNZWRpYVBsYXliYWNrIik7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBtZWRp
YVBsYXliYWNrQWxsb3dzQWlyUGxheSBXS19ERVBSRUNBVEVEKE5BLCBOQSwgOF8wLCA5XzAsICJQ
bGVhc2UgdXNlIGFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIik7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCByZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrIFdLX0RFUFJF
Q0FURUQoTkEsIE5BLCA5XzAsIDEwXzAsICJQbGVhc2UgdXNlIG1lZGlhVHlwZXNSZXF1aXJpbmdV
c2VyQWN0aW9uRm9yUGxheWJhY2siKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlh
UGxheWJhY2tSZXF1aXJlc1VzZXJBY3Rpb24gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgicmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayIsIGlvcyg4LjAsIDkuMCkp
OworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgbWVkaWFQbGF5YmFja0FsbG93c0FpclBsYXkg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiYWxsb3dzQWlyUGxheUZvck1lZGlh
UGxheWJhY2siLCBpb3MoOC4wLCA5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHJl
cXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2sgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgibWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIsIGlv
cyg5LjAsIFdLX0lPU19UQkEpKTsKICNlbmRpZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDM4ICs0MSwzOCBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
d2Vhaywgc2V0dGVyPV9zZXRBbHRlcm5hdGVXZWJWaWV3Rm9yTmF2aWdhdGlvbkdlc3R1cmVzOikg
V0tXZWJWaWV3ICpfYWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJlczsKIAotQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRl
c0FzSW5zZWN1cmU6KSBCT09MIF90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3Vy
ZSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRUcmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZTopIEJPT0wgX3RyZWF0c1NI
QTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNwZWN0c0ltYWdlT3JpZW50
YXRpb246KSBCT09MIF9yZXNwZWN0c0ltYWdlT3JpZW50YXRpb24gV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJp
bnRzQmFja2dyb3VuZHM6KSBCT09MIF9wcmludHNCYWNrZ3JvdW5kcyBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJ
bmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dDopIENHRmxvYXQgX2luY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0phdmFT
Y3JpcHRNYXJrdXA6KSBCT09MIF9hbGxvd3NKYXZhU2NyaXB0TWFya3VwIFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dENvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29weTopIEJPT0wgX2NvbnZlcnRzUG9zaXRpb25TdHls
ZU9uQ29weSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NNZXRhUmVmcmVzaDopIEJPT0wgX2FsbG93c01l
dGFSZWZyZXNoIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
OikgQk9PTCBfYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMgV0tfQVZBSUxBQkxFKFdL
X01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
TWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50
VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW52aXNpYmxlQXV0b3Bs
YXlOb3RQZXJtaXR0ZWQ6KSBCT09MIF9pbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZCBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk6KSBCT09MIF9tZWRpYURhdGFM
b2Fkc0F1dG9tYXRpY2FsbHkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXR0YWNobWVudEVsZW1lbnRFbmFibGVk
OikgQk9PTCBfYXR0YWNobWVudEVsZW1lbnRFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluaXRpYWxD
YXBpdGFsaXphdGlvbkVuYWJsZWQ6KSBCT09MIF9pbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVk
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEFwcGxlUGF5RW5hYmxlZDopIEJPT0wgX2FwcGxlUGF5RW5hYmxlZCBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRSZXNwZWN0c0ltYWdlT3JpZW50YXRpb246KSBCT09MIF9yZXNwZWN0c0lt
YWdlT3JpZW50YXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcmludHNCYWNr
Z3JvdW5kczopIEJPT0wgX3ByaW50c0JhY2tncm91bmRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXQ6KSBDR0Zsb2F0
IF9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEFsbG93c0phdmFTY3JpcHRNYXJrdXA6KSBCT09MIF9hbGxvd3NKYXZh
U2NyaXB0TWFya3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29udmVydHNQb3Np
dGlvblN0eWxlT25Db3B5OikgQk9PTCBfY29udmVydHNQb3NpdGlvblN0eWxlT25Db3B5IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzTWV0YVJlZnJlc2g6KSBCT09MIF9hbGxv
d3NNZXRhUmVmcmVzaCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93VW5pdmVy
c2FsQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNYWluQ29udGVudFVzZXJHZXN0
dXJlT3ZlcnJpZGVFbmFibGVkOikgQk9PTCBfbWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRl
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEludmlzaWJsZUF1dG9wbGF5
Tm90UGVybWl0dGVkOikgQk9PTCBfaW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHk6KSBC
T09MIF9tZWRpYURhdGFMb2Fkc0F1dG9tYXRpY2FsbHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWQ6KSBCT09MIF9hdHRhY2htZW50RWxlbWVu
dEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbml0aWFsQ2FwaXRhbGl6
YXRpb25FbmFibGVkOikgQk9PTCBfaW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFwcGxlUGF5RW5hYmxlZDopIEJPT0wgX2FwcGxlUGF5
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEFsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eTopIEJPT0wgX2Fsd2F5c1J1bnNB
dEZvcmVncm91bmRQcmlvcml0eSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lubGlu
ZUF0dHJpYnV0ZTopIEJPT0wgX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5l
QXR0cmlidXRlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRBbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVu
OikgQk9PTCBfYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNjcmVlbiAgV0tfQVZB
SUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEFsd2F5c1J1bnNBdEZvcmVncm91bmRQcmlvcml0eTopIEJPT0wgX2Fsd2F5c1J1bnNBdEZvcmVn
cm91bmRQcmlvcml0eSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldElubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5saW5l
QXR0cmlidXRlOikgQk9PTCBfaW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJbmxpbmVB
dHRyaWJ1dGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNj
cmVlbjopIEJPT0wgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4gIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbHNlCi1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRTaG93c1VSTHNJblRvb2xUaXBzOikgQk9PTCBfc2hvd3NVUkxzSW5U
b29sVGlwcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0U2VydmljZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX3NlcnZpY2VDb250
cm9sc0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfaW1hZ2VDb250
cm9sc0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGlu
Z0NvbnRyb2xzTWFuYWdlcjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250
cm9sc01hbmFnZXIgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFNob3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJ
blRvb2xUaXBzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9z
ZXJ2aWNlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEltYWdlQ29udHJvbHNFbmFibGVk
OikgQk9PTCBfaW1hZ2VDb250cm9sc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRS
ZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyOikgQk9PTCBfcmVxdWly
ZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSk7CiAjZW5kaWYKIAotQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9u
Zywgc2V0dGVyPV9zZXRWaXNpdGVkTGlua1Byb3ZpZGVyOikgX1dLVmlzaXRlZExpbmtQcm92aWRl
ciAqX3Zpc2l0ZWRMaW5rUHJvdmlkZXIgV0tfREVQUkVDQVRFRCgxMF8xMCwgV0tfTUFDX1RCQSwg
OF8wLCBXS19JT1NfVEJBLCAiUGxlYXNlIHVzZSBfdmlzaXRlZExpbmtTdG9yZSBpbnN0ZWFkIik7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFZpc2l0ZWRMaW5rUHJv
dmlkZXI6KSBfV0tWaXNpdGVkTGlua1Byb3ZpZGVyICpfdmlzaXRlZExpbmtQcm92aWRlciBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfdmlzaXRlZExpbmtTdG9yZSIsIG1hY29z
eCgxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5
IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRXZWJzaXRlRGF0YVN0b3JlOikgX1dLV2Vi
c2l0ZURhdGFTdG9yZSAqX3dlYnNpdGVEYXRhU3RvcmUgV0tfREVQUkVDQVRFRCgxMF8xMCwgMTBf
MTEsIDhfMCwgOV8wLCAiUGxlYXNlIHVzZSB3ZWJzaXRlRGF0YVN0b3JlIGluc3RlYWQiKTsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlv
UGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNrIFdLX0RF
UFJFQ0FURUQoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSwg
IlBsZWFzZSB1c2UgbWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlk
ZW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2sgV0tf
REVQUkVDQVRFRChXS19NQUNfVEJBLCBXS19NQUNfVEJBLCBXS19JT1NfVEJBLCBXS19JT1NfVEJB
LCAiUGxlYXNlIHVzZSBtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIik7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nLCBzZXR0ZXI9X3NldFdlYnNpdGVEYXRhU3Rv
cmU6KSBfV0tXZWJzaXRlRGF0YVN0b3JlICpfd2Vic2l0ZURhdGFTdG9yZSBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJzaXRlRGF0YVN0b3JlIiwgbWFjb3N4KDEwLjEwLCAx
MC4xMSksIGlvcyg4LjAsIDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
UmVxdWlyZXNVc2VyQWN0aW9uRm9yQXVkaW9QbGF5YmFjazopIEJPT0wgX3JlcXVpcmVzVXNlckFj
dGlvbkZvckF1ZGlvUGxheWJhY2sgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
bWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFjayIsIG1hY29zeChXS19NQUNf
VEJBLCBXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJh
Y2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXliYWNrIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9y
UGxheWJhY2siLCBtYWNvc3goV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
LCBXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS1BhZ2luYXRpb24KICAgICBfV0tQYWdpbmF0aW9uTW9kZVJpZ2h0VG9MZWZ0LAog
ICAgIF9XS1BhZ2luYXRpb25Nb2RlVG9wVG9Cb3R0b20sCiAgICAgX1dLUGFnaW5hdGlvbk1vZGVC
b3R0b21Ub1RvcCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7Cit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAgICAgX1dLSW1tZWRpYXRlQWN0aW9u
Tm9uZSwKQEAgLTQ2LDcgKzQ2LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1t
ZWRpYXRlQQogICAgIF9XS0ltbWVkaWF0ZUFjdGlvbkxvb2t1cFRleHQsCiAgICAgX1dLSW1tZWRp
YXRlQWN0aW9uTWFpbHRvTGluaywKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25UZWxMaW5rCi19IFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKIAogQGNsYXNzIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlOwogQGNsYXNzIF9X
S0ZyYW1lSGFuZGxlOwpAQCAtNzQsMjEgKzc0LDIxIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS0ltbWVkaWF0ZUEKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwg
Kl91bnJlYWNoYWJsZVVSTDsKIAogLSAodm9pZClfbG9hZEFsdGVybmF0ZUhUTUxTdHJpbmc6KE5T
U3RyaW5nICopc3RyaW5nIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBmb3JVbnJlYWNoYWJsZVVS
TDooTlNVUkwgKil1bnJlYWNoYWJsZVVSTDsKLS0gKFdLTmF2aWdhdGlvbiAqKV9sb2FkRGF0YToo
TlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNv
ZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJM
ICopYmFzZVVSTCB1c2VyRGF0YTooaWQpdXNlckRhdGEgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOworLSAoV0tOYXZpZ2F0aW9uICopX2xvYWREYXRhOihOU0RhdGEgKilkYXRh
IE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFtZTooTlNT
dHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIHVz
ZXJEYXRhOihpZCl1c2VyRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0Fy
cmF5ICpfY2VydGlmaWNhdGVDaGFpbiBXS19ERVBSRUNBVEVEKDEwXzEwLCAxMF8xMSwgOF8wLCA5
XzAsICJ1c2UgLWNlcnRpZmljYXRlQ2hhaW4iKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNBcnJheSAqX2NlcnRpZmljYXRlQ2hhaW4gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgiY2VydGlmaWNhdGVDaGFpbiIsIG1hY29zeCgxMC4xMCwgMTAuMTEpLCBpb3Mo
OC4wLCA5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKl9jb21t
aXR0ZWRVUkw7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfTUlN
RVR5cGU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfdXNlckFn
ZW50IFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNTdHJpbmcgKl91c2VyQWdlbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOS4wKSk7CiAKIEBwcm9wZXJ0eSAoY29weSwgc2V0dGVyPV9zZXRBcHBsaWNhdGlvbk5h
bWVGb3JVc2VyQWdlbnQ6KSBOU1N0cmluZyAqX2FwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudDsK
IEBwcm9wZXJ0eSAoY29weSwgc2V0dGVyPV9zZXRDdXN0b21Vc2VyQWdlbnQ6KSBOU1N0cmluZyAq
X2N1c3RvbVVzZXJBZ2VudDsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VXNl
ckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZDopIEJPT0wgX3VzZXJDb250ZW50RXh0ZW5zaW9uc0Vu
YWJsZWQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0VXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZDopIEJPT0wgX3VzZXJDb250ZW50
RXh0ZW5zaW9uc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgcGlkX3QgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0VkaXRhYmxlLCBz
ZXR0ZXI9X3NldEVkaXRhYmxlOikgQk9PTCBfZWRpdGFibGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNFZGl0YWJsZSwgc2V0dGVyPV9z
ZXRFZGl0YWJsZTopIEJPT0wgX2VkaXRhYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEx
KSwgaW9zKDkuMCkpOwogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9uY2Ugbm9ib2R5IGlzIHVz
aW5nIHRoZW0uCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqX3Nlc3Np
b25TdGF0ZURhdGE7CkBAIC05OCw3ICs5OCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0ltbWVkaWF0ZUEKIC0gKFdLTmF2aWdhdGlvbiAqKV9yZXN0b3JlU2Vzc2lvblN0YXRlOihf
V0tTZXNzaW9uU3RhdGUgKilzZXNzaW9uU3RhdGUgYW5kTmF2aWdhdGU6KEJPT0wpbmF2aWdhdGU7
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c1JlbW90ZUluc3BlY3Rp
b246KSBCT09MIF9hbGxvd3NSZW1vdGVJbnNwZWN0aW9uOwotQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0UmVtb3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZTopIE5TU3RyaW5n
ICpfcmVtb3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
V0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRSZW1v
dGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNTdHJpbmcgKl9yZW1vdGVJbnNwZWN0aW9uTmFt
ZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBZGRzVmlzaXRlZExp
bmtzOikgQk9PTCBfYWRkc1Zpc2l0ZWRMaW5rczsKIApAQCAtMTUyLDkgKzE1Miw5IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIAogLy8gRGVwcmVjYXRlZDogVXNl
IFtfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOm1heGltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlOl0gaW5zdGVhZC4KIC8vIFRoaXMgZnVuY3Rpb24gaXMga2Vw
dCBmb3IgYmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCBpT1MgOC4wLCBpdCBjYW4gYmUgcmVtb3Zl
ZCBhZnRlciB0aGUgYmluY29tcGF0IHdpbmRvdy4KLS0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFy
YW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1p
bmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJOihDR1NpemUpbWluaW11bUxheW91dFNpemVGb3JN
aW5pbWFsVUkgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5v
YnNjdXJlZFNpemVPdmVycmlkZSBXS19ERVBSRUNBVEVEKE5BLCBOQSwgOF8wLCA5XzAsICJ1c2Ug
LV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGU6Iik7CistICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRl
cnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtaW5pbXVt
TGF5b3V0U2l6ZUZvck1pbmltYWxVSTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXplRm9yTWluaW1h
bFVJIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLV9vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6bWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGU6IiwgaW9zKDguMCwgOS4wKSk7CiAKLS0gKHZvaWQpX292ZXJyaWRlTGF5
b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1MYXlvdXRT
aXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVub2JzY3Vy
ZWRTaXplT3ZlcnJpZGUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAodm9pZClfb3ZlcnJpZGVM
YXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91
dFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6KENHU2l6ZSltYXhpbXVtVW5vYnNj
dXJlZFNpemVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKIAogLSAoVUlWaWV3
ICopX3ZpZXdGb3JGaW5kVUk7CiAKQEAgLTE2NSwxMSArMTY1LDExIEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIAogLy8gUHV0cyB0aGUgdmlldyBpbnRvIGEgc3Rh
dGUgd2hlcmUgYmVpbmcgdGFrZW4gb3V0IG9mIHRoZSB2aWV3IGhpZXJhcmNoeSBhbmQgcmVzaWdu
aW5nIGZpcnN0IHJlc3BvbmRlcgogLy8gd2lsbCBub3QgY291bnQgYXMgYmVjb21pbmcgaW5hY3Rp
dmUgYW5kIHVuZm9jdXNlZC4gVGhlIHJldHVybmVkIGJsb2NrIG11c3QgYmUgY2FsbGVkIHRvIGV4
aXQgdGhlIHN0YXRlLgotLSAodm9pZCAoXikodm9pZCkpX3JldGFpbkFjdGl2ZUZvY3VzZWRTdGF0
ZSBXS19BVkFJTEFCTEUoTkEsIDlfMCk7CistICh2b2lkICheKSh2b2lkKSlfcmV0YWluQWN0aXZl
Rm9jdXNlZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCi0tICh2b2lkKV9iZWNv
bWVGaXJzdFJlc3BvbmRlcldpdGhTZWxlY3Rpb25Nb3ZpbmdGb3J3YXJkOihCT09MKXNlbGVjdGlu
Z0ZvcndhcmQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgZGlkQmVjb21lRmlyc3RS
ZXNwb25kZXIpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKKy0gKHZv
aWQpX2JlY29tZUZpcnN0UmVzcG9uZGVyV2l0aFNlbGVjdGlvbk1vdmluZ0ZvcndhcmQ6KEJPT0wp
c2VsZWN0aW5nRm9yd2FyZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBkaWRCZWNv
bWVGaXJzdFJlc3BvbmRlcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3Mo
OV8wKSk7CiAKLS0gKGlkKV9zbmFwc2hvdExheWVyQ29udGVudHNGb3JCYWNrRm9yd2FyZExpc3RJ
dGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsK
Ky0gKGlkKV9zbmFwc2hvdExheWVyQ29udGVudHNGb3JCYWNrRm9yd2FyZExpc3RJdGVtOihXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogLSAo
TlNBcnJheSAqKV9kYXRhRGV0ZWN0aW9uUmVzdWx0czsKIAogI2Vsc2UKQEAgLTE4MCw3ICsxODAs
NyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM6
KSBCT09MIF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM7CiAKIC8vIERlZmF1bHQg
dmFsdWUgaXMgMC4gQSB2YWx1ZSBvZiAwIG1lYW5zIHRoZSB3aW5kb3cncyBiYWNraW5nIHNjYWxl
IGZhY3RvciB3aWxsIGJlIHVzZWQgYW5kIGF1dG9tYXRpY2FsbHkgdXBkYXRlIHdoZW4gdGhlIHdp
bmRvdyBtb3ZlcyBzY3JlZW5zLgotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0T3Zl
cnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQgX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0
b3IgV0tfQVZBSUxBQkxFKDEwXzExLCBOQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOikgQ0dGbG9hdCBfb3ZlcnJpZGVEZXZpY2VT
Y2FsZUZhY3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSkpOwogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOikg
Qk9PTCBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsKIApAQCAtMTg4LDE4ICsxODgs
MTggQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogLy8gZG8gc29t
ZXRoaW5nIGN1c3RvbSwgcmV0dXJuIGFuIG9iamVjdCB0aGF0IGNvbmZvcm1zIHRvIHRoZSBOU0lt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXIgcHJvdG9jb2wuCiAtIChpZClfaW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KF9XS0hpdFRlc3RS
ZXN1bHQgKiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOihfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5
cGUgdXNlckRhdGE6KGlkPE5TU2VjdXJlQ29kaW5nPil1c2VyRGF0YTsKIAotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0TWluaW11bUxheW91dFdpZHRoOikgQ0dGbG9hdCBfbWluaW11
bUxheW91dFdpZHRoIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVt
TGF5b3V0V2lkdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiAvLyBX
aGVuIHVzaW5nIF9taW5pbXVtTGF5b3V0V2lkdGgsIHRoZSB3ZWIgY29udGVudCB3aWxsIGxheSBv
dXQgdG8gdGhlIGludHJpbnNpYyBoZWlnaHQKIC8vIG9mIHRoZSBjb250ZW50OyB1c2UgdGhpcyBw
cm9wZXJ0eSB0byBmb3JjZSBpdCB0byBsYXkgb3V0IHRvIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXcg
aW5zdGVhZC4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZEV4cGFuZENv
bnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0OikgQk9PTCBfc2hvdWxkRXhwYW5kQ29udGVu
dFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZEV4cGFuZENvbnRlbnRUb1Zp
ZXdIZWlnaHRGb3JBdXRvTGF5b3V0OikgQk9PTCBfc2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hl
aWdodEZvckF1dG9MYXlvdXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwog
CiAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQ
cmludEluZm8gKilwcmludEluZm87Ci0tIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0
aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0Zy
YW1lSGFuZGxlICopZnJhbWVIYW5kbGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOworLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86
KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1l
SGFuZGxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiAjZW5kaWYKIAotLSAoV0tOYXZpZ2F0aW9uICopX3JlbG9hZFdpdGhvdXRDb250ZW50
QmxvY2tlcnMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAoV0tOYXZp
Z2F0aW9uICopX3JlbG9hZFdpdGhvdXRDb250ZW50QmxvY2tlcnMgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2tpbGxXZWJD
b250ZW50UHJvY2Vzc0FuZFJlc2V0U3RhdGU7CiAKQEAgLTIyMCwyNiArMjIwLDI2IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFRleHRab29tRmFjdG9yOikgZG91YmxlIF90ZXh0Wm9vbUZhY3RvcjsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBhZ2Vab29tRmFjdG9yOikgZG91YmxlIF9w
YWdlWm9vbUZhY3RvcjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0
RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTopIGlkIDxfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVn
YXRlPiBfZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlOikgaWQgPF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU+IF9kaWFnbm9zdGlj
TG9nZ2luZ0RlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0RmluZERlbGVnYXRlOikg
aWQgPF9XS0ZpbmREZWxlZ2F0ZT4gX2ZpbmREZWxlZ2F0ZTsKIC0gKHZvaWQpX2ZpbmRTdHJpbmc6
KE5TU3RyaW5nICopc3RyaW5nIG9wdGlvbnM6KF9XS0ZpbmRPcHRpb25zKW9wdGlvbnMgbWF4Q291
bnQ6KE5TVUludGVnZXIpbWF4Q291bnQ7CiAtICh2b2lkKV9jb3VudFN0cmluZ01hdGNoZXM6KE5T
U3RyaW5nICopc3RyaW5nIG9wdGlvbnM6KF9XS0ZpbmRPcHRpb25zKW9wdGlvbnMgbWF4Q291bnQ6
KE5TVUludGVnZXIpbWF4Q291bnQ7CiAtICh2b2lkKV9oaWRlRmluZFVJOwogCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRGb3JtRGVsZWdhdGU6KSBpZCA8X1dLRm9ybURl
bGVnYXRlPiBfZm9ybURlbGVnYXRlIFdLX0RFUFJFQ0FURUQoMTBfMTAsIFdLX01BQ19UQkEsIDhf
MCwgV0tfSU9TX1RCQSwgInVzZSBfaW5wdXREZWxlZ2F0ZSIpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHdlYWssIHNldHRlcj1fc2V0SW5wdXREZWxlZ2F0ZTopIGlkIDxfV0tJbnB1dERlbGVnYXRl
PiBfaW5wdXREZWxlZ2F0ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRGb3JtRGVsZWdhdGU6KSBpZCA8
X1dLRm9ybURlbGVnYXRlPiBfZm9ybURlbGVnYXRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIl9pbnB1dERlbGVnYXRlIiwgbWFjb3N4KDEwLjEwLCBXS19NQUNfVEJBKSwgaW9z
KDguMCwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1f
c2V0SW5wdXREZWxlZ2F0ZTopIGlkIDxfV0tJbnB1dERlbGVnYXRlPiBfaW5wdXREZWxlZ2F0ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X2lzRGlzcGxheWluZ1N0YW5k
YWxvbmVJbWFnZURvY3VtZW50KSBCT09MIF9kaXNwbGF5aW5nU3RhbmRhbG9uZUltYWdlRG9jdW1l
bnQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faXNEaXNwbGF5aW5n
U3RhbmRhbG9uZU1lZGlhRG9jdW1lbnQpIEJPT0wgX2Rpc3BsYXlpbmdTdGFuZGFsb25lTWVkaWFE
b2N1bWVudDsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Nyb2xsUGVyZm9y
bWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQ6KSBCT09MIF9zY3JvbGxQZXJmb3JtYW5jZURhdGFD
b2xsZWN0aW9uRW5hYmxlZCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKl9zY3JvbGxQZXJmb3JtYW5jZURhdGEgV0tfQVZB
SUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2Ny
b2xsUGVyZm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQ6KSBCT09MIF9zY3JvbGxQZXJmb3Jt
YW5jZURhdGFDb2xsZWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheSAqX3Nj
cm9sbFBlcmZvcm1hbmNlRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKTsKIAotLSAodm9pZClfc2F2ZUJhY2tGb3J3YXJkU25hcHNob3RGb3JJdGVtOihXS0JhY2tG
b3J3YXJkTGlzdEl0ZW0gKilpdGVtIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKHZvaWQp
X3NhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICop
aXRlbSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQHByb3Bl
cnR5IChub25hdG9taWMsIGdldHRlcj1fYWxsb3dzTWVkaWFEb2N1bWVudElubGluZVBsYXliYWNr
LCBzZXR0ZXI9X3NldEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazopIEJPT0wgX2Fs
bG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjazsKIAotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBCT09MIF93ZWJQcm9jZXNzSXNSZXNwb25zaXZlIFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9P
TCBfd2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkBAIC0yNTEsMjEgKzI1MSwyMSBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBAaW50ZXJmYWNlIFdLV2Vi
VmlldyAoV0tUZXN0aW5nKQogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX2NvbnRlbnRWaXNpYmxlUmVjdCBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tIChDR1BvaW50KV9jb252ZXJ0UG9pbnRGcm9tQ29u
dGVudHNUb1ZpZXc6KENHUG9pbnQpcG9pbnQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwotLSAoQ0dQb2ludClfY29udmVydFBvaW50RnJvbVZpZXdUb0NvbnRlbnRzOihDR1Bv
aW50KXBvaW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IF9jb250ZW50VmlzaWJsZVJlY3QgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChDR1Bv
aW50KV9jb252ZXJ0UG9pbnRGcm9tQ29udGVudHNUb1ZpZXc6KENHUG9pbnQpcG9pbnQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChDR1Bv
aW50KV9jb252ZXJ0UG9pbnRGcm9tVmlld1RvQ29udGVudHM6KENHUG9pbnQpcG9pbnQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLS0gKHZv
aWQpa2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7
Ci0tICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyUHJldmlvdXMgV0tfQVZBSUxBQkxFKE5BLCBX
S19JT1NfVEJBKTsKKy0gKHZvaWQpa2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0IFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpa2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2
aW91cyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9u
YXRvbWljKSBCT09MIGZvcmNlSVBhZFN0eWxlWm9vbU9uSW5wdXRGb2N1cyBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgZm9yY2VJUGFkU3R5
bGVab29tT25JbnB1dEZvY3VzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNl
bmRpZgogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgQk9PTCBfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIE5BKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBf
aGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKLS0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2VudGF0aW9u
VXBkYXRlOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jayBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7CistICh2b2lkKV9kb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZToo
dm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkLmgJ
KHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVJlY29yZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwzMSArMzIsMzEgQEAK
IE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5
cGVEaXNrQ2FjaGUgT24tZGlzayBjYWNoZXMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBXS1dlYnNpdGVEYXRhVHlwZURpc2tDYWNoZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitX
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZURpc2tDYWNoZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBX
S1dlYnNpdGVEYXRhVHlwZU1lbW9yeUNhY2hlIEluLW1lbW9yeSBjYWNoZXMuICovCi1XS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZU1lbW9yeUNhY2hlIFdLX0FWQUlM
QUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURh
dGFUeXBlTWVtb3J5Q2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVPZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZSBIVE1MIG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9uIGNhY2hlcy4gKi8KLVdLX0VYVEVS
TiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9u
Q2FjaGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29u
c3QgV0tXZWJzaXRlRGF0YVR5cGVPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNp
dGVEYXRhVHlwZUNvb2tpZXMgQ29va2llcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IFdLV2Vic2l0ZURhdGFUeXBlQ29va2llcyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUNvb2tpZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJz
aXRlRGF0YVR5cGVTZXNzaW9uU3RvcmFnZSBIVE1MIHNlc3Npb24gc3RvcmFnZS4gKi8KLVdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2UgV0tf
QVZBSUxBQkxFKDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJz
aXRlRGF0YVR5cGVTZXNzaW9uU3RvcmFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBXS1dlYnNpdGVEYXRhVHlwZUxvY2FsU3RvcmFn
ZSBIVE1MIGxvY2FsIHN0b3JhZ2UuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dl
YnNpdGVEYXRhVHlwZUxvY2FsU3RvcmFnZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUxvY2FsU3RvcmFnZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEBjb25zdGFudCBX
S1dlYnNpdGVEYXRhVHlwZVdlYlNRTERhdGFiYXNlcyBXZWJTUUwgZGF0YWJhc2VzLiAqLwotV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMg
V0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tX
ZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVJbmRleGVk
REJEYXRhYmFzZXMgSW5kZXhlZERCIGRhdGFiYXNlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlSW5kZXhlZERCRGF0YWJhc2VzIFdLX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBl
SW5kZXhlZERCRGF0YWJhc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwogCiAvKiEgQSBXS1dlYnNpdGVEYXRhUmVjb3JkIHJlcHJlc2VudHMgd2Vic2l0ZSBkYXRh
LCBncm91cGVkIGJ5IGRvbWFpbiBuYW1lIHVzaW5nIHRoZSBwdWJsaWMgc3VmZml4IGxpc3QuICov
Ci1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTEsIDlfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
c3goMTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVJlY29yZCA6IE5T
T2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgVGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGRhdGEgcmVj
b3JkLiBUaGlzIGlzIHVzdWFsbHkgdGhlIGRvbWFpbiBuYW1lLiAqLwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVJlY29yZFByaXZhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSwxNCArMzEsMTQgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGNs
YXNzIF9XS1dlYnNpdGVEYXRhU2l6ZTsKIAotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dL
V2Vic2l0ZURhdGFUeXBlSFNUU0NhY2hlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLVdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZU1lZGlhS2V5cyBXS19BVkFJ
TEFCTEUoMTBfMTEsIDlfMCk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRl
RGF0YVR5cGVTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRh
VHlwZVJlc291cmNlTG9hZFN0YXRpc3RpY3MgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlSFNU
U0NhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlTWVkaWFLZXlzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYVEVS
TiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBf
V0tXZWJzaXRlRGF0YVR5cGVQbHVnSW5EYXRhIFdLX0FWQUlMQUJMRSgxMF8xMSwgTkEpOworV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSkpOwogI2VuZGlmCiAKIEBpbnRlcmZhY2UgV0tXZWJz
aXRlRGF0YVJlY29yZCAoV0tQcml2YXRlKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAgbWFrZSB1c2Ugb2YuIFRoaXMgaW5jbHVkZXMgY29va2llcywgZGlzayBhbmQg
bWVtb3J5IGNhY2hlcywgYW5kIHBlcnNpc3RlbnQgZGF0YSBzdWNoIGFzIFdlYlNRTCwKICBJbmRl
eGVkREIgZGF0YWJhc2VzLCBhbmQgbG9jYWwgc3RvcmFnZS4KICAqLwotV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzExLCA5XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpCiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFTdG9yZSA6IE5TT2JqZWN0IDxOU0NvZGluZz4K
IAogLyogQGFic3RyYWN0IFJldHVybnMgdGhlIGRlZmF1bHQgZGF0YSBzdG9yZS4gKi8KSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJp
dmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0
Y2hPcHRpb25zKSB7CiAgICAgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9uQ29tcHV0ZVNp
emVzID0gMSA8PCAwLAotfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAKIEBpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVN0b3JlIChXS1ByaXZhdGUpCiAKIC0gKHZv
aWQpX2ZldGNoRGF0YVJlY29yZHNPZlR5cGVzOihOU1NldDxOU1N0cmluZyAqPiAqKWRhdGFUeXBl
cyB3aXRoT3B0aW9uczooX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucylvcHRpb25zIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PFdLV2Vic2l0ZURhdGFSZWNvcmQgKj4g
KikpY29tcGxldGlvbkhhbmRsZXI7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkOikgQk9PTCBfcmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQ6
KSBCT09MIF9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVyZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2luZG93RmVhdHVy
ZXMuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAK
ICAqLwogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEw
LCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50
ZXJmYWNlIFdLV2luZG93RmVhdHVyZXMgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IEJPT0wu
IFdoZXRoZXIgdGhlIG1lbnUgYmFyIHNob3VsZCBiZSB2aXNpYmxlLiBuaWwgaWYgbWVudSBiYXIg
dmlzaWJpbGl0eSB3YXMgbm90IHNwZWNpZmllZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTcgKzM2
LDE3IEBACiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tBY3RpdmF0ZWRFbGVtZW50VHlw
ZSkgewogICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlTGluaywKICAgICBfV0tBY3RpdmF0ZWRF
bGVtZW50VHlwZUltYWdlLAotICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNobWVudCBX
S19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKSwKLX0gV0tfRU5VTV9BVkFJ
TEFCTEUoMTBfMTAsIDhfMCk7CisgICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVBdHRhY2htZW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwg
aW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIDogTlNPYmplY3QK
IAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqVVJMOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqdGl0bGU7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlIHR5cGU7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBib3VuZGluZ1JlY3Q7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpJRCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
V0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpJ
RCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
ICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNv
cHkpIFVJSW1hZ2UgKmltYWdlOwogI2Vsc2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgJKHJldmlz
aW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
b21hdGlvblNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogCiBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLQXV0b21hdGlvblNlc3Npb24gOiBOU09iamVjdAogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKnNlc3Npb25JZGVudGlmaWVyOwpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5m
by5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxM
X0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpCiBAaW50ZXJmYWNlIF9XS0NvbnRleHRNZW51RWxl
bWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdu
b3N0aWNMb2dnaW5nRGVsZWdhdGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
X1dLRGlhZ25vc3RpYwogICAgIF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywKICAgICBf
V0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsCiAgICAgX1dLRGlhZ25vc3RpY0xvZ2dpbmdS
ZXN1bHROb29wLAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBwcm90b2NvbCBfV0tEaWFnbm9z
dGljTG9nZ2luZ0RlbGVnYXRlIDxOU09iamVjdD4KIEBvcHRpb25hbApJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaAkocmV2aXNpb24g
MjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9h
ZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBjbGFzcyBXS1dlYlZpZXc7
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tEb3dubG9hZCA6IE5TT2JqZWN0
CiAKIC0gKHZvaWQpY2FuY2VsOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFbGVtZW50QWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgJKHJldmlzaW9uIDIwMjc1OSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MSwxMyArNDEsMTMgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLRWxlbWVudEFjdAogICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlU2F2ZUltYWdlLAogI2lm
ICFkZWZpbmVkKFRBUkdFVF9PU19JT1MpIHx8IFRBUkdFVF9PU19JT1MKICAgICBfV0tFbGVtZW50
QWN0aW9uVHlwZUFkZFRvUmVhZGluZ0xpc3QsCi0gICAgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVu
SW5EZWZhdWx0QnJvd3NlciBXS19FTlVNX0FWQUlMQUJMRShOQSwgOV8wKSwKLSAgICBfV0tFbGVt
ZW50QWN0aW9uVHlwZU9wZW5JbkV4dGVybmFsQXBwbGljYXRpb24gV0tfRU5VTV9BVkFJTEFCTEUo
TkEsIDlfMCksCisgICAgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5EZWZhdWx0QnJvd3NlciBX
S19BUElfQVZBSUxBQkxFKGlvcyg5XzApKSwKKyAgICBfV0tFbGVtZW50QWN0aW9uVHlwZU9wZW5J
bkV4dGVybmFsQXBwbGljYXRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSksCiAjZW5kaWYK
LSAgICBfV0tFbGVtZW50QWN0aW9uVHlwZVNoYXJlIFdLX0VOVU1fQVZBSUxBQkxFKE5BLCBXS19J
T1NfVEJBKSwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7CisgICAgX1dLRWxlbWVu
dEFjdGlvblR5cGVTaGFyZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSksCit9IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCi1XS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSkKIEBpbnRlcmZhY2UgX1dLRWxlbWVudEFjdGlvbiA6IE5TT2JqZWN0CiAKICsgKGluc3Rh
bmNldHlwZSllbGVtZW50QWN0aW9uV2l0aFR5cGU6KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGU7
CkBAIC01NSw3ICs1NSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiArIChp
bnN0YW5jZXR5cGUpZWxlbWVudEFjdGlvbldpdGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSBhY3Rp
b25IYW5kbGVyOihXS0VsZW1lbnRBY3Rpb25IYW5kbGVyKWhhbmRsZXI7CiAKLS0gKHZvaWQpcnVu
QWN0aW9uV2l0aEVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWluZm8gV0tf
QVZBSUxBQkxFKE5BLCA5XzApOworLSAodm9pZClydW5BY3Rpb25XaXRoRWxlbWVudEluZm86KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopaW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsK
IAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tFbGVtZW50QWN0aW9uVHlwZSB0
eXBlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyogdGl0bGU7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0V4cGVyaW1lbnRhbEZl
YXR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGlu
dGVyZmFjZSBfV0tFeHBlcmltZW50YWxGZWF0dXJlIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqa2V5OwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGaW5kT3B0aW9ucy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlvbnMuaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tG
aW5kT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw2IEBAIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tGaW5kT3AKICAgICBfV0tGaW5kT3B0aW9uc0lycmVsZXZh
bnRGb3JJbmNyZW1lbnRhbFJlc3VsdHMgPSBfV0tGaW5kT3B0aW9uc1Nob3dPdmVybGF5IHwgX1dL
RmluZE9wdGlvbnNTaG93RmluZEluZGljYXRvciB8IF9XS0ZpbmRPcHRpb25zU2hvd0hpZ2hsaWdo
dCB8IF9XS0ZpbmRPcHRpb25zRGV0ZXJtaW5lTWF0Y2hJbmRleCwKICAgICBfV0tGaW5kT3B0aW9u
c0lycmVsZXZhbnRGb3JCYXRjaFJlc3VsdHMgPSBfV0tGaW5kT3B0aW9uc0JhY2t3YXJkcyB8IF9X
S0ZpbmRPcHRpb25zV3JhcEFyb3VuZCB8IF9XS0ZpbmRPcHRpb25zSXJyZWxldmFudEZvckluY3Jl
bWVudGFsUmVzdWx0cwogCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1J
bnB1dFNlc3Npb24uaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDE0ICszNiwxNCBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1p
c1ZhbGlkKSBCT09MIHZhbGlkOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU09i
amVjdCA8TlNTZWN1cmVDb2Rpbmc+ICp1c2VyT2JqZWN0OwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPiBmb2N1c2VkRWxlbWVudEluZm8g
V0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPiBmb2N1c2VkRWxlbWVudElu
Zm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNT
dHJpbmcgKmFjY2Vzc29yeVZpZXdDdXN0b21CdXR0b25UaXRsZTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIFVJVmlldyAqY3VzdG9tSW5wdXRWaWV3IFdLX0FWQUlMQUJMRShOQSwgV0tf
SU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxVSVRleHRTdWdn
ZXN0aW9uICo+ICpzdWdnZXN0aW9ucyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgYWNjZXNzb3J5Vmlld1Nob3VsZE5vdFNob3cgV0tfQVZB
SUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0
cmluZyAqdGV4dENvbnRlbnRUeXBlIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSVZpZXcgKmN1c3RvbUlucHV0VmlldyBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
TlNBcnJheTxVSVRleHRTdWdnZXN0aW9uICo+ICpzdWdnZXN0aW9ucyBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhY2Nlc3NvcnlW
aWV3U2hvdWxkTm90U2hvdyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZSBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAjZW5kaWYKIAogQGVuZApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnB1dERlbGVnYXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnB1dERlbGVnYXRl
LmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5wdXREZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBACiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjY2Vzc29yeVZpZXdDdXN0b21C
dXR0b25UYXBwZWRJbkZvcm1JbnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9uPilp
bnB1dFNlc3Npb247CiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGhhc1N1
Z2dlc3Rpb25zRm9yQ3VycmVudFN0cmluZ0luSW5wdXRTZXNzaW9uOihpZCA8X1dLRm9ybUlucHV0
U2Vzc2lvbj4paW5wdXRTZXNzaW9uOwogLSAoTlNBcnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHN1Z2dlc3Rpb25zRm9yU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBpbklucHV0
U2Vzc2lvbjooaWQgPF9XS0Zvcm1JbnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbjsKLS0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5zZXJ0VGV4dFN1Z2dlc3Rpb246KFVJVGV4
dFN1Z2dlc3Rpb24gKilzdWdnZXN0aW9uIGluSW5wdXRTZXNzaW9uOihpZCA8X1dLRm9ybUlucHV0
U2Vzc2lvbj4paW5wdXRTZXNzaW9uIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluc2VydFRleHRTdWdnZXN0aW9uOihV
SVRleHRTdWdnZXN0aW9uICopc3VnZ2VzdGlvbiBpbklucHV0U2Vzc2lvbjooaWQgPF9XS0Zvcm1J
bnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJB
KSk7CiAjZW5kaWYKIAogQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tMYXlvdXRNb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tMYXlvdXRNb2RlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTGF5b3V0TW9kZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw2ICszNyw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tMYXlv
dXRNb2QKICAgICAvLyBMYXkgb3V0IHRoZSB2aWV3IGF0IGEgaGV1cmlzdGljYWxseS1kZXRlcm1p
bmVkIHNpemUgYmFzZWQgb24gdGhlIG1pbmltdW0gc2l6ZSBvZiB0aGUgZG9jdW1lbnQuCiAgICAg
X1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZSA9
IDQsCiAKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tPdmVybGF5U2Ny
b2xsYmFyU3R5bGUuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMzQsNCArMzQsNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLT3ZlcmxheVNj
CiAgICAgLy8gaGV1cmlzdGljIHRvIGNob29zZSBhbiBhcHByb3ByaWF0ZSBjb2xvci4KICAgICBf
V0tPdmVybGF5U2Nyb2xsYmFyU3R5bGVBdXRvbWF0aWMKIAotfSBXS19FTlVNX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDIwMjc1OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxNSBAQAogCiAjaWYgV0tf
QVBJX0VOQUJMRUQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSBOU1VSTCAqaW5qZWN0ZWRCdW5kbGVVUkw7CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgTlNVSW50ZWdlciBtYXhpbXVtUHJvY2Vzc0NvdW50OwotQHByb3BlcnR5IChub25hdG9t
aWMpIE5TSW50ZWdlciBkaXNrQ2FjaGVTaXplT3ZlcnJpZGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOworQHByb3BlcnR5IChub25hdG9taWMpIE5TSW50ZWdlciBkaXNrQ2FjaGVTaXplT3ZlcnJp
ZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgTlNBcnJheSAqY2FjaGVQYXJ0aXRpb25lZFVSTFNjaGVtZXM7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNBcnJheTxOU1N0cmluZyAqPiAqYWx3YXlzUmV2
YWxpZGF0ZWRVUkxTY2hlbWVzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGRpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlv
bkVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFsd2F5c1JldmFsaWRhdGVk
VVJMU2NoZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGRpc2tDYWNoZVNwZWN1bGF0aXZl
VmFsaWRhdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tTZXNzaW9uU3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Nlc3Npb25TdGF0ZS5oCShyZXZpc2lvbiAyMDI3NTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Nlc3Npb25TdGF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24v
Rm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLU2Vzc2lv
blN0YXRlIDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRGF0YTooTlNEYXRh
ICopZGF0YTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1
bWJuYWlsVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLVGh1bWJuYWlsVmlldy5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcuaAkod29ya2luZyBjb3B5
KQpAQCAtMzMsNyArMzMsNyBAQAogCiBAY2xhc3MgV0tWaWV3OwogCi1XS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4w
KSkKIEBpbnRlcmZhY2UgX1dLVGh1bWJuYWlsVmlldyA6IE5TVmlldwogCiAtIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGZyb21XS1ZpZXc6KFdLVmlldyAqKXdrVmll
dzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiBAY2xh
c3MgX1dLVXNlckNvbnRlbnRGaWx0ZXI7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMSwgOV8w
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKQogQGludGVyZmFj
ZSBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0
eXBlKWRlZmF1bHRTdG9yZTsKQEAgLTQxLDEzICs0MSwxMyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
MTBfMTEsIDlfMCkKIAogQGVuZAogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tVc2Vy
Q29udGVudEV4dGVuc2lvbnNEb21haW4gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25z
RG9tYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlRXJyb3JDb2RlKSB7CiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9y
TG9va3VwRmFpbGVkID0gMSwKICAgICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JW
ZXJzaW9uTWlzbWF0Y2gsCiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29t
cGlsZUZhaWxlZCwKICAgICBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlRXJyb3JSZW1vdmVG
YWlsZWQsCi19IFdLX0VOVU1fQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworfSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAog
I2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5oCShyZXZpc2lv
biAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJD
b250ZW50RmlsdGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIFdL
X0FQSV9FTkFCTEVECiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMSwgOV8wKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKQogQGludGVyZmFjZSBfV0tVc2VyQ29u
dGVudEZpbHRlciA6IE5TT2JqZWN0CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRXb3JsZC5oCShyZXZp
c2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Vz
ZXJDb250ZW50V29ybGQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLVXNlckNvbnRlbnRXb3JsZCA6IE5TT2JqZWN0CiAKICsg
KF9XS1VzZXJDb250ZW50V29ybGQgKil3b3JsZFdpdGhOYW1lOihOU1N0cmluZyAqKW5hbWU7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tV
c2VyU3R5bGVTaGVldC5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDcgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGNsYXNzIF9XS1VzZXJDb250
ZW50V29ybGQ7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQog
QGludGVyZmFjZSBfV0tVc2VyU3R5bGVTaGVldCA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnNvdXJjZTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtQcm92
aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVmlzaXRlZExpbmtQcm92aWRlci5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotV0tfQ0xB
U1NfREVQUkVDQVRFRCgxMF8xMCwgV0tfTUFDX1RCQSwgOF8wLCBXS19JT1NfVEJBLCAiUGxlYXNl
IHVzZSBfV0tWaXNpdGVkTGlua1N0b3JlIGluc3RlYWQiKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJfV0tWaXNpdGVkTGlua1N0b3JlIiwgbWFjb3N4KDEwLjEwLCBXS19N
QUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS1Zpc2l0ZWRMaW5r
UHJvdmlkZXIgOiBfV0tWaXNpdGVkTGlua1N0b3JlCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9yZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRlZExpbmtTdG9y
ZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Zpc2l0ZWRMaW5rU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBA
QAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNl
IF9XS1Zpc2l0ZWRMaW5rU3RvcmUgOiBOU09iamVjdAogCiAtICh2b2lkKWFkZFZpc2l0ZWRMaW5r
V2l0aFVSTDooTlNVUkwgKilVUkw7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYnNpdGVEYXRhUmVjb3JkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVJlY29yZC5oCShyZXZpc2lvbiAy
MDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVE
YXRhUmVjb3JkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8
V2ViS2l0L1dLV2Vic2l0ZURhdGFSZWNvcmQuaD4KIAotV0tfQ0xBU1NfREVQUkVDQVRFRCgxMF8x
MSwgMTBfMTEsIDlfMCwgOV8wLCAiUGxlYXNlIHVzZSBXS1dlYnNpdGVEYXRhUmVjb3JkIGluc3Rl
YWQiKQorV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnNpdGVEYXRh
UmVjb3JkIiwgbWFjb3N4KDEwLjExLCAxMC4xMSksIGlvcyg5LjAsIDkuMCkpCiBAaW50ZXJmYWNl
IF9XS1dlYnNpdGVEYXRhUmVjb3JkIDogV0tXZWJzaXRlRGF0YVJlY29yZAogQGVuZAogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
c2l0ZURhdGFTaXplLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDcgKzMxLDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU2l6
ZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgdW5zaWduZWQg
bG9uZyBsb25nIHRvdGFsU2l6ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyMDI3
NTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTAgKzMxLDEwIEBACiAKIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBXS1dlYnNpdGVEYXRhVHlwZXMpIHsKICAgICBXS1dlYnNpdGVE
YXRhVHlwZUFsbCA9IE5TVUludGVnZXJNYXgsCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5
XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogCi1X
S19DTEFTU19ERVBSRUNBVEVEKDEwXzEwLCAxMF8xMSwgOF8wLCA5XzAsICJQbGVhc2UgdXNlIFdL
V2Vic2l0ZURhdGFTdG9yZSBpbnN0ZWFkIikKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgiV0tXZWJzaXRlRGF0YVN0b3JlIiwgbWFjb3N4KDEwLjEwLCAxMC4xMSksIGlvcyg4
LjAsIDkuMCkpCiBAaW50ZXJmYWNlIF9XS1dlYnNpdGVEYXRhU3RvcmUgOiBOU09iamVjdAogCiAr
IChfV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Gb3Jt
RGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc1OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZvcm1E
ZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiAvLyBU
aGUgcmV0dXJuIHZhbHVlIGlzIGV4cG9zZWQgaW4gdGhlIFVJIHByb2Nlc3MgdmlhIHRoZSB1c2Vy
T2JqZWN0IHByb3BlcnR5IG9mIHRoZSBfV0tGb3JtSW5wdXRTZXNzaW9uIG9iamVjdC4KIC0gKE5T
T2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKilfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICop
Y29udHJvbGxlciB3aWxsQmVnaW5JbnB1dFNlc3Npb25Gb3JFbGVtZW50OihXS1dlYlByb2Nlc3NQ
bHVnSW5Ob2RlSGFuZGxlICopbm9kZSBpbkZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAq
KWZyYW1lOwotLSAoTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKV93ZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXIgKiljb250cm9sbGVyIHdpbGxCZWdpbklucHV0U2Vzc2lvbkZvckVsZW1lbnQ6
KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlIGluRnJhbWU6KFdLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lICopZnJhbWUgdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJh
Y3RpbmcgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKE5TT2JqZWN0IDxOU1NlY3Vy
ZUNvZGluZz4gKilfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlciB3aWxs
QmVnaW5JbnB1dFNlc3Npb25Gb3JFbGVtZW50OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxl
ICopbm9kZSBpbkZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWZyYW1lIHVzZXJJc0lu
dGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdL
X0lPU19UQkEpKTsKIAogLSAoQk9PTClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlclNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXM6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXI7CiAtICh2b2lkKV93ZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sczooTlNB
cnJheSAqKWVsZW1lbnRzOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5GcmFtZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiBAY2xhc3MgV0tXZWJQcm9j
ZXNzUGx1Z0luTm9kZUhhbmRsZTsKIEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3Js
ZDsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAq
VVJMOwpAQCAtNDcsOCArNDcsOCBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAog
Ly8gUmV0dXJucyBVUkxzIG9yZGVyZWQgYnkgcmVzb2x1dGlvbiBpbiBkZXNjZW5kaW5nIG9yZGVy
LgogLy8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSB0YWdnZWQgbm9ubnVsbC4KLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxOU1VSTCAqPiAqYXBwbGVUb3VjaEljb25VUkxz
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNBcnJheTxOU1VSTCAqPiAqZmF2aWNvblVSTHMgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU0FycmF5PE5TVVJMICo+ICphcHBsZVRvdWNoSWNvblVSTHMgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TQXJyYXk8TlNVUkwgKj4gKmZhdmljb25VUkxzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtIChKU0NvbnRleHQg
Kilqc0NvbnRleHRGb3JXb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgKil3b3Js
ZDsKIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKiloaXRUZXN0OihDR1BvaW50
KXBvaW50OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luSGl0VGVzdFJlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAK
IEBjbGFzcyBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlOwogCi1XS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4w
KSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCA6IE5TT2JqZWN0
CiAKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKm5v
ZGVIYW5kbGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVn
SW5Ob2RlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE2ICszNywxNiBAQAogCiBAY2xh
c3MgV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwg
OF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVy
ZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIDogTlNPYmplY3QKIAogKyAoV0tXZWJQ
cm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGVIYW5kbGVXaXRoSlNWYWx1ZTooSlNWYWx1ZSAq
KXZhbHVlIGluQ29udGV4dDooSlNDb250ZXh0ICopY29udGV4dDsKIC0gKFdLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lICopaHRtbElGcmFtZUVsZW1lbnRDb250ZW50RnJhbWU7CiAKICNpZiBUQVJHRVRf
T1NfSVBIT05FCi0tIChVSUltYWdlICopcmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zOihXS1NuYXBz
aG90T3B0aW9ucylvcHRpb25zIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKFVJSW1hZ2Ug
KilyZW5kZXJlZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNob3RPcHRpb25zKW9wdGlvbnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAjZWxzZQotLSAoTlNJbWFn
ZSAqKXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyBX
S19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CistIChOU0ltYWdlICopcmVuZGVyZWRJbWFnZVdpdGhP
cHRpb25zOihXS1NuYXBzaG90T3B0aW9ucylvcHRpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgQ0dSZWN0IGVsZW1lbnRCb3VuZHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAuaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5
LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FW
QUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKQogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgOiBOU09iamVj
dAogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJblNjcmlwdFdvcmxkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0
V29ybGQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vz
c1BsdWdJblNjcmlwdFdvcmxkIDogTlNPYmplY3QKIAogKyAoV0tXZWJQcm9jZXNzUGx1Z0luU2Ny
aXB0V29ybGQgKil3b3JsZDsKQEAgLTM4LDcgKzM4LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5n
ICpuYW1lOwogCiAtICh2b2lkKWNsZWFyV3JhcHBlcnM7Ci0tICh2b2lkKW1ha2VBbGxTaGFkb3dS
b290c09wZW4gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAodm9pZClt
YWtlQWxsU2hhZG93Um9vdHNPcGVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9N
RG9jdW1lbnQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNyBAQAogQGNsYXNzIFdLRE9NRWxlbWVudDsKIEBjbGFzcyBXS0RPTVRleHQ7
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTURvY3VtZW50IDogV0tET01O
b2RlCiAKIC0gKFdLRE9NRWxlbWVudCAqKWNyZWF0ZUVsZW1lbnQ6KE5TU3RyaW5nICopdGFnTmFt
ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50LmgJKHJldmlzaW9uIDIwMjc1OSkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RP
TUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxX
ZWJLaXQvV0tET01Ob2RlLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RP
TUVsZW1lbnQgOiBXS0RPTU5vZGUKIAogLSAoQk9PTCloYXNBdHRyaWJ1dGU6KE5TU3RyaW5nICop
YXR0cmlidXRlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUuaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
RE9NTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBjbGFzcyBXS0RP
TURvY3VtZW50OwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tET01Ob2RlIDog
TlNPYmplY3QKIAogLSAodm9pZClpbnNlcnROb2RlOihXS0RPTU5vZGUgKilub2RlIGJlZm9yZToo
V0tET01Ob2RlICopcmVmTm9kZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaAkocmV2
aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0RPTVJhbmdlRGlyCiB9OwogCiAKLVdLX0NMQVNT
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTVJhbmdlIDogTlNPYmplY3QKIAogLSAoaWQpaW5p
dFdpdGhEb2N1bWVudDooV0tET01Eb2N1bWVudCAqKWRvY3VtZW50OwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTVRleHQuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0RPTU5vZGUuaD4KIAotV0tfQ0xB
U1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEw
KSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NVGV4dCA6IFdLRE9NTm9kZQogCiBAcHJvcGVy
dHkobm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqZGF0YTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHRJdGVyYXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS0RPTVRleHRJdGVyYXRvci5oCShyZXZpc2lvbiAyMDI3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0SXRlcmF0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBAY2xhc3MgV0tET01SYW5nZTsK
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NVGV4dEl0ZXJhdG9yIDogTlNP
YmplY3QKIAogLSAoaWQpaW5pdFdpdGhSYW5nZTooV0tET01SYW5nZSAqKXJhbmdlOwpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJv
Y2Vzc1BsdWdJbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4uaAkocmV2aXNpb24gMjAyNzU5
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
V2ViUHJvY2Vzc1BsdWdJbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBACiAtICh2
b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVn
SW5Db250cm9sbGVyIHdpbGxEZXN0cm95QnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKilicm93c2VyQ29udGV4dENvbnRy
b2xsZXI7CiBAZW5kCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlByb2Nl
c3NQbHVnSW5Db250cm9sbGVyIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChyZWFkb25seSkgV0tD
b25uZWN0aW9uICpjb25uZWN0aW9uOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIuaAkocmV2aXNpb24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiBAY2xhc3MgV0tXZWJQcm9j
ZXNzUGx1Z0luUGFnZUdyb3VwOwogQHByb3RvY29sIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxl
Z2F0ZTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAocmVhZG9u
bHkpIFdLRE9NRG9jdW1lbnQgKm1haW5GcmFtZURvY3VtZW50OwpJbmRleDogU291cmNlL1dlYktp
dDIvbWFjL3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaAkocmV2aXNp
b24gMjAyNzU5KQorKysgU291cmNlL1dlYktpdDIvbWFjL3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1o
ZWFkZXJzLnNoCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxMCArNTAsMTAgQEAgZnVuY3Rpb24gcHJv
Y2Vzc19kZWZpbml0aW9ucyAoKSB7CiAKIGZ1bmN0aW9uIHJld3JpdGVfaGVhZGVycyAoKSB7CiAg
ICAgaWYgW1sgIiR7UExBVEZPUk1fTkFNRX0iID09ICJtYWNvc3giIF1dOyB0aGVuCi0gICAgICAg
IFtbIC1uICR7T1NYX1ZFUlNJT059IF1dIHx8IE9TWF9WRVJTSU9OPSR7TUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUL1wuL199CisgICAgICAgIFtbIC1uICR7T1NYX1ZFUlNJT059IF1dIHx8IE9TWF9W
RVJTSU9OPSR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUfQogICAgICAgICBbWyAtbiAke0lPU19W
RVJTSU9OfSBdXSB8fCBJT1NfVkVSU0lPTj0iTkEiCiAgICAgZWxpZiBbWyAiJHtQTEFURk9STV9O
QU1FfSIgPX4gImlwaG9uZSIgXV07IHRoZW4KLSAgICAgICAgW1sgLW4gJHtJT1NfVkVSU0lPTn0g
XV0gfHwgSU9TX1ZFUlNJT049JHtJUEhPTkVPU19ERVBMT1lNRU5UX1RBUkdFVC9cLi9ffQorICAg
ICAgICBbWyAtbiAke0lPU19WRVJTSU9OfSBdXSB8fCBJT1NfVkVSU0lPTj0ke0lQSE9ORU9TX0RF
UExPWU1FTlRfVEFSR0VUfQogICAgICAgICBbWyAtbiAke09TWF9WRVJTSU9OfSBdXSB8fCBPU1hf
VkVSU0lPTj0iTkEiCiAgICAgZmkKIApAQCAtNjQsMTUgKzY0LDEzIEBAIGZ1bmN0aW9uIHJld3Jp
dGVfaGVhZGVycyAoKSB7CiAgICAgICAgIFNFRF9PUFRJT05TKz0oCiAgICAgICAgICAgICAtZSBz
L1dLX01BQ19UQkEvJHtPU1hfVkVSU0lPTn0vZwogICAgICAgICAgICAgLWUgcy9XS19JT1NfVEJB
LyR7SU9TX1ZFUlNJT059L2cKLSAgICAgICAgICAgIC1lIHMvV0tfQVZBSUxBQkxFL05TX0FWQUlM
QUJMRS8KLSAgICAgICAgICAgIC1lIHMvV0tfREVQUkVDQVRFRC9OU19ERVBSRUNBVEVELwotICAg
ICAgICAgICAgLWUgcy9XS19FTlVNX0FWQUlMQUJMRS9OU19FTlVNX0FWQUlMQUJMRS8KLSAgICAg
ICAgICAgIC1lIHMvV0tfRU5VTV9ERVBSRUNBVEVEL05TX0VOVU1fREVQUkVDQVRFRC8KLSAgICAg
ICAgICAgIC1lIHMvXldLX0NMQVNTX0FWQUlMQUJMRS9OU19DTEFTU19BVkFJTEFCTEUvCi0gICAg
ICAgICAgICAtZSBzL15XS19DTEFTU19ERVBSRUNBVEVEL05TX0NMQVNTX0RFUFJFQ0FURUQvCisg
ICAgICAgICAgICAtZSBzL1dLX0FQSV9BVkFJTEFCTEUvQVBJX0FWQUlMQUJMRS8KKyAgICAgICAg
ICAgIC1lIHMvV0tfQVBJX0RFUFJFQ0FURUQvQVBJX0RFUFJFQ0FURUQvCisgICAgICAgICAgICAt
ZSAicy9eV0tfQ0xBU1NfQVZBSUxBQkxFL1dLX0VYVEVSTiBBUElfQVZBSUxBQkxFLyIKKyAgICAg
ICAgICAgIC1lICJzL15XS19DTEFTU19ERVBSRUNBVEVEL1dLX0VYVEVSTiBBUElfREVQUkVDQVRF
RC8iCiAgICAgICAgICkKICAgICBlbHNlCi0gICAgICAgIFNFRF9PUFRJT05TKz0oLWUgJ3MvV0tf
KENMQVNTX3xFTlVNXyk/QVZBSUxBQkxFKF9JT1N8X01BQyk/XChbXlwpXStcKS8vZycgLWUgJ3Mv
V0tfKENMQVNTX3xFTlVNXyk/REVQUkVDQVRFRFwoW15cKV0rXCkvL2cnKQorICAgICAgICBTRURf
T1BUSU9OUys9KC1lICdzL1dLXyhBUElffENMQVNTXylBVkFJTEFCTEVcKC4qXClccypcKS8vZycg
LWUgJ3MvV0tfKEFQSV98Q0xBU1NfKURFUFJFQ0FURUQoX1dJVEhfUkVQTEFDRU1FTlQpP1woLipc
KVxzKlwpLy9nJykKICAgICBmaQogCiAgICAgU0VEX09QVElPTlMrPSgke09USEVSX1NFRF9PUFRJ
T05TWypdfSkKQEAgLTgwLDcgKzc4LDcgQEAgZnVuY3Rpb24gcmV3cml0ZV9oZWFkZXJzICgpIHsK
ICAgICBmb3IgSEVBREVSX1BBVEggaW4gIiR7MX0vIiouaDsgZG8KICAgICAgICAgaWYgW1sgIiRI
RUFERVJfUEFUSCIgLW50ICRUSU1FU1RBTVBfUEFUSCBdXTsgdGhlbgogICAgICAgICAgICAgZGl0
dG8gIiR7SEVBREVSX1BBVEh9IiAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyov
fSIKLSAgICAgICAgICAgIHNlZCAtaSAudG1wIC1FICR7U0VEX09QVElPTlNbKl19ICIke1RBUkdF
VF9URU1QX0RJUn0vJHtIRUFERVJfUEFUSCMjKi99IiB8fCBleGl0ICQ/CisgICAgICAgICAgICBz
ZWQgLWkgLnRtcCAtRSAiJHtTRURfT1BUSU9OU1tAXX0iICIke1RBUkdFVF9URU1QX0RJUn0vJHtI
RUFERVJfUEFUSCMjKi99IiB8fCBleGl0ICQ/CiAgICAgICAgICAgICBtdiAiJHtUQVJHRVRfVEVN
UF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIgIiRIRUFERVJfUEFUSCIKICAgICAgICAgZmkKICAg
ICBkb25lCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282658</attachid>
            <date>2016-07-03 08:51:32 -0700</date>
            <delta_ts>2016-07-03 10:00:09 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>modern-api-macros.diff</filename>
            <type>text/plain</type>
            <size>130043</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcJ
KHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktp
dC54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNTksMyArNTksNiBAQCBJTlNUQUxMSERSU19T
Q1JJUFRfUEhBU0UgPSBZRVM7CiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJ
U0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lO
R19ESVNBQkxFRF9tYWNvc3hfJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBXS19GUkFNRVdP
UktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDEwMDAgPSBZRVM7CiBX
S19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDExMDAg
PSBZRVM7CisKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2Rr
PWlwaG9uZW9zOSpdID0gWUVTOworV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19E
SVNBQkxFRFtzZGs9aXBob25lc2ltdWxhdG9yOSpdID0gWUVTOwpJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5k
bGUuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3
IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZh
Y2UgV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CiBA
ZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5k
YXRpb24uaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9D
b2NvYS9XS0ZvdW5kYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTIgKzQyLDEwIEBACiAK
ICNpZm5kZWYgV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19FTkFCTEVECiAKLSNk
ZWZpbmUgV0tfQVZBSUxBQkxFKF9tYWMsIF9pb3MpCi0jZGVmaW5lIFdLX0NMQVNTX0FWQUlMQUJM
RShfbWFjLCBfaW9zKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5ICgiZGVmYXVsdCIpKSkKLSNk
ZWZpbmUgV0tfREVQUkVDQVRFRChfbWFjSW50cm8sIF9tYWNEZXAsIF9pb3NJbnRybywgX2lvc0Rl
cCwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9fVkFfQVJHU19fKSkpCi0jZGVmaW5l
IFdLX0NMQVNTX0RFUFJFQ0FURUQoX21hY0ludHJvLCBfbWFjRGVwLCBfaW9zSW50cm8sIF9pb3NE
ZXAsIC4uLikgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkgX19hdHRyaWJ1
dGVfXygoZGVwcmVjYXRlZChfX1ZBX0FSR1NfXykpKQotI2RlZmluZSBXS19FTlVNX0FWQUlMQUJM
RShfbWFjLCBfaW9zKQotI2RlZmluZSBXS19FTlVNX0FWQUlMQUJMRV9JT1MoX2lvcykKLSNkZWZp
bmUgV0tfRU5VTV9ERVBSRUNBVEVEKF9tYWNJbnRybywgX21hY0RlcCwgX2lvc0ludHJvLCBfaW9z
RGVwLCAuLi4pIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoX19WQV9BUkdTX18pKSkKKyNkZWZp
bmUgV0tfQVBJX0FWQUlMQUJMRSguLi4pCisjZGVmaW5lIFdLX0NMQVNTX0FWQUlMQUJMRSguLi4p
IF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpIFdLX0FQSV9BVkFJTEFCTEUo
X19WQV9BUkdTX18pCisjZGVmaW5lIFdLX0FQSV9ERVBSRUNBVEVEKF9tZXNzYWdlLCAuLi4pIF9f
YXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoX21lc3NhZ2UpKSkKKyNkZWZpbmUgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVChfcmVwbGFjZW1lbnQsIC4uLikgX19hdHRyaWJ1dGVfXygo
ZGVwcmVjYXRlZCgidXNlICIgI19yZXBsYWNlbWVudCkpKQorI2RlZmluZSBXS19DTEFTU19ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoX3JlcGxhY2VtZW50LCAuLi4pIF9fYXR0cmlidXRlX18o
KHZpc2liaWxpdHkoImRlZmF1bHQiKSkpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSAi
ICNfcmVwbGFjZW1lbnQpKSkKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9u
Lmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tGcmFtZUhhbmRsZSA6IE5T
T2JqZWN0IDxOU0NvcHlpbmcsIE5TU2VjdXJlQ29kaW5nPgogCiBAZW5kCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaAkocmV2
aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRU
ZXN0UmVzdWx0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBOQSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpCiBAaW50ZXJmYWNl
IF9XS0hpdFRlc3RSZXN1bHQgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TVVJMICphYnNvbHV0ZUltYWdlVVJMOwpJbmRleDog
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90
ZU9iamVjdEludGVyZmFjZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgog
Ci1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
c3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNl
IDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKXJlbW90ZU9iamVjdEludGVyZmFjZVdpdGhQ
cm90b2NvbDooUHJvdG9jb2wgKilwcm90b2NvbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgJKHJl
dmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBA
Y2xhc3MgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlOwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBp
bnRlcmZhY2UgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgOiBOU09iamVjdAogCiAtICh2b2lkKXJl
Z2lzdGVyRXhwb3J0ZWRPYmplY3Q6KGlkKW9iamVjdCBpbnRlcmZhY2U6KF9XS1JlbW90ZU9iamVj
dEludGVyZmFjZSAqKWludGVyZmFjZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Q29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgJKHJl
dmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDEyIEBA
CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50cykgewogICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dCA9IDEgPDwg
MCwKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApID0gMSA8PCAxLAorICAgIF9XS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkgPSAxIDw8IDEsCiAgICAgX1dLUmVuZGVyaW5n
UHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnRXaXRoU2lnbmlmaWNhbnRBcmVhID0gMSA8PCAyLAotICAg
IF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRSZWFjaGVkU2Vzc2lvblJlc3RvcmF0aW9uUmVuZGVy
VHJlZVNpemVUaHJlc2hvbGQgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCkgPSAxIDw8IDMs
Ci0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0QWZ0ZXJTdXBwcmVzc2Vk
SW5jcmVtZW50YWxSZW5kZXJpbmcgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCkgPSAxIDw8
IDQsCi0gICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnRBZnRlclN1cHByZXNz
ZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEg
PDwgNSwKLSAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludCBXS19FTlVNX0FW
QUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEgPDwgNiwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAs
IDhfMCk7CisgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudFJlYWNoZWRTZXNzaW9uUmVzdG9y
YXRpb25SZW5kZXJUcmVlU2l6ZVRocmVzaG9sZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKSA9IDEgPDwgMywKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmly
c3RMYXlvdXRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSA9IDEgPDwgNCwKKyAgICBfV0tSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50Rmlyc3RQYWludEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5n
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCA1LAorICAg
IF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdFBhaW50IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCA2LAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMCksIGlvcyg4LjApKTsKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0NvY29hL19XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDYgKzMyLDYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLU2FtZURvY3VtZQog
ICAgIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlU2Vzc2lvblN0YXRlUHVzaCwKICAgICBf
V0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZVNlc3Npb25TdGF0ZVJlcGxhY2UsCiAgICAgX1dL
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGVTZXNzaW9uU3RhdGVQb3AsCi19IFdLX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4w
KSk7CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0JhY2tGb3J3YXJkTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0JhY2tGb3J3YXJkTGlzdCA6IE5T
T2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgVGhlIGN1cnJlbnQgaXRlbS4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJk
TGlzdEl0ZW0uaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NyArMzMsNyBAQAogICovCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSkKIEBpbnRlcmZhY2UgV0tCYWNrRm9yd2FyZExpc3RJdGVtIDogTlNPYmplY3QKIAogLSAo
aW5zdGFuY2V0eXBlKWluaXQgTlNfVU5BVkFJTEFCTEU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxl
Z2F0ZTsKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRlOwogCi1XS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIDog
TlNPYmplY3QKIAogI3ByYWdtYSBtYXJrIERlbGVnYXRlcwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tCcm93c2luZ0NvbnRleHRHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICsz
MCw3IEBACiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktp
dC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwIDogTlNPYmplY3QKIAogLSAoaWQpaW5pdFdp
dGhJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLmgJKHJldmlzaW9uIDIw
Mjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9u
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKIAogQGVuZAogCi1XS19DTEFTU19B
VkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBp
b3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tDb25uZWN0aW9uIDogTlNPYmplY3QKIAogLSAodm9pZClz
ZW5kTWVzc2FnZVdpdGhOYW1lOihOU1N0cmluZyAqKW1lc3NhZ2VOYW1lIGJvZHk6KGlkKW1lc3Nh
Z2VCb2R5OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogCiAvKiEgQGNvbnN0YW50IFdLRXJyb3JEb21haW4gSW5kaWNhdGVz
IGEgV2ViS2l0IGVycm9yLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tFcnJvckRv
bWFpbiBXS19BVkFJTEFCTEUoMTBfMTAsIDhfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBXS0Vycm9yRG9tYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
OwogCiAvKiEgQGVudW0gV0tFcnJvckNvZGUKICBAYWJzdHJhY3QgQ29uc3RhbnRzIHVzZWQgYnkg
TlNFcnJvciB0byBpbmRpY2F0ZSBlcnJvcnMgaW4gdGhlIFdlYktpdCBkb21haW4uCkBAIC00Nyw4
ICs0Nyw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLRXJyb3JDb2RlKSAKICAgICBX
S0Vycm9yV2ViQ29udGVudFByb2Nlc3NUZXJtaW5hdGVkLAogICAgIFdLRXJyb3JXZWJWaWV3SW52
YWxpZGF0ZWQsCiAgICAgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCwKLSAgICBX
S0Vycm9ySmF2YVNjcmlwdFJlc3VsdFR5cGVJc1Vuc3VwcG9ydGVkIFdLX0VOVU1fQVZBSUxBQkxF
KDEwXzExLCA5XzApLAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKKyAgICBXS0Vy
cm9ySmF2YVNjcmlwdFJlc3VsdFR5cGVJc1Vuc3VwcG9ydGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKTsKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JQcml2YXRlLmgJKHJldmlz
aW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJv
clByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMjcgKzI3LDI3IEBACiAKICNpZiBXS19B
UElfRU5BQkxFRAogCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tMZWdhY3lFcnJvckRv
bWFpbiBXS19BVkFJTEFCTEUoMTBfMTEsIDhfMyk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBfV0tMZWdhY3lFcnJvckRvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg4LjMpKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLTGVnYWN5RXJyb3JDb2Rl
KSB7Ci0gICAgX1dLRXJyb3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBX
S19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEwMiwKKyAgICBfV0tFcnJvckNvZGVGcmFt
ZUxvYWRJbnRlcnJ1cHRlZEJ5UG9saWN5Q2hhbmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjExKSwgaW9zKDkuMCkpID0gMTAyLAogICAgIF9XS0xlZ2FjeUVycm9yUGx1Z0luV2lsbEhhbmRs
ZUxvYWQgPSAyMDQsCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA4XzMpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg4LjMpKTsKIAogLyohIEBjb25zdGFudCBfV0tK
YXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNl
bnRpbmcKICB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgKGFzIGFuIE5TU3RyaW5nKSBmb3IgV0tFcnJv
ckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5IFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IF9XS0phdmFTY3JpcHRFeGNlcHRpb25NZXNzYWdlRXJyb3JLZXkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qISBAY29uc3RhbnQgX1dL
SmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJFcnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVw
cmVzZW50aW5nCiAgdGhlIGV4Y2VwdGlvbiBsaW5lIG51bWJlciAoYXMgYW4gTlNOdW1iZXIpIGZv
ciBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIGVycm9ycy4gKi8KLVdLX0VYVEVS
TiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25MaW5lTnVtYmVyRXJyb3JL
ZXkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJFcnJvcktleSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLyoh
IEBjb25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JLZXkgS2V5
IGluIHVzZXJJbmZvIHJlcHJlc2VudGluZwogIHRoZSBleGNlcHRpb24gY29sdW1uIG51bWJlciAo
YXMgYW4gTlNOdW1iZXIpIGZvciBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIGVy
cm9ycy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRp
b25Db2x1bW5OdW1iZXJFcnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29s
dW1uTnVtYmVyRXJyb3JLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvblNv
dXJjZVVSTEVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcKICB0aGUgZXhjZXB0
aW9uIHNvdXJjZSBVUkwgKGFzIGFuIE5TVVJMKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRp
b25PY2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZh
U2NyaXB0RXhjZXB0aW9uU291cmNlVVJMRXJyb3JLZXkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4
Y2VwdGlvblNvdXJjZVVSTEVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLmgJKHJldmlzaW9uIDIwMjc4MSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQAogICovCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRSht
YWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tGcmFtZUluZm8gOiBOU09iamVj
dCA8TlNDb3B5aW5nPgogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5n
IHdoZXRoZXIgdGhlIGZyYW1lIGlzIHRoZSBtYWluIGZyYW1lCkBAIC01MSw3ICs1MSw3IEBAIFdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRoZSBmcmFtZSdz
IGN1cnJlbnQgc2VjdXJpdHkgb3JpZ2luLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIFdLU2VjdXJpdHlPcmlnaW4gKnNlY3VyaXR5T3JpZ2luIFdLX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tTZWN1cml0eU9yaWdp
biAqc2VjdXJpdHlPcmlnaW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0ZyYW1lSW5mb1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIEBpbnRlcmZhY2UgV0tGcmFtZUluZm8g
KFdLUHJpdmF0ZSkKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBzdHJvbmcpIF9X
S0ZyYW1lSGFuZGxlICpfaGFuZGxlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgc3Ryb25nKSBfV0tGcmFtZUhhbmRs
ZSAqX2hhbmRsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUu
aAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDI2
ICszMCwyNiBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaD4KIAotV0tfRVhQT1JUIGV4dGVybiBOU1N0
cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckNvcHkgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9X
S01lbnVJdGVtSWRlbnRpZmllckNvcHlJbWFnZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyQ29weUxpbmsgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwot
V0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckRv
d25sb2FkSW1hZ2UgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckRvd25sb2Fk
TGlua2VkRmlsZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyR29CYWNrIFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNT
dHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJHb0ZvcndhcmQgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNv
bnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckluc3BlY3RFbGVtZW50IFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBf
V0tNZW51SXRlbUlkZW50aWZpZXJMb29rVXAgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllck9wZW5GcmFtZUluTmV3V2luZG93IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJPcGVuSW1hZ2VJbk5ld1dpbmRvdyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyT3BlbkxpbmsgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwot
V0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9w
ZW5MaW5rSW5OZXdXaW5kb3cgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwot
V0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclBh
c3RlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNlYXJjaFdlYiBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dL
TWVudUl0ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xzIFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBf
V0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVGdWxsU2NyZWVuIFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJDb3B5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9X
S01lbnVJdGVtSWRlbnRpZmllckNvcHlJbWFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJDb3B5TGluayBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJp
bmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJEb3dubG9hZEltYWdlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4
dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckRvd25sb2FkTGlua2Vk
RmlsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJHb0JhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVu
dGlmaWVyR29Gb3J3YXJkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJ
dGVtSWRlbnRpZmllckluc3BlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNv
bnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckxvb2tVcCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuRnJhbWVJbk5ld1dpbmRvdyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuSW1hZ2VJ
bk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJPcGVuTGluayBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51
SXRlbUlkZW50aWZpZXJPcGVuTGlua0luTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclBhc3RlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0
cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRp
YUNvbnRyb2xzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllclRvZ2dsZUZ1bGxTY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBfV0tNZW51SXRlbUlkZW50aWZpZXJTaGFyZU1lbnUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJ
dGVtSWRlbnRpZmllclNwZWVjaE1lbnUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
ZmllclNoYXJlTWVudSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJTcGVlY2hNZW51IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb24uaAkocmV2aXNpb24gMjAyNzgxKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogIGFsc28gcGFzc2VkIHRvIHRoZSBuYXZpZ2F0
aW9uIGRlbGVnYXRlIG1ldGhvZHMsIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEgd2VicGFnZQogIGxv
YWQgZnJvbSBzdGFydCB0byBmaW5pc2guCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwg
OF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVy
ZmFjZSBXS05hdmlnYXRpb24gOiBOU09iamVjdAogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgJ
KHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uQWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDEyICs1MywxMiBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25UCiAgICAgV0tOYXZpZ2F0aW9u
VHlwZVJlbG9hZCwKICAgICBXS05hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkLAogICAgIFdL
TmF2aWdhdGlvblR5cGVPdGhlciA9IC0xLAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8w
KTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISAK
IEEgV0tOYXZpZ2F0aW9uQWN0aW9uIG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBh
biBhY3Rpb24gdGhhdCBtYXkgY2F1c2UgYSBuYXZpZ2F0aW9uLCB1c2VkIGZvciBtYWtpbmcgcG9s
aWN5IGRlY2lzaW9ucy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLTmF2
aWdhdGlvbkFjdGlvbiA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgVGhlIGZyYW1lIHJlcXVl
c3RpbmcgdGhlIG5hdmlnYXRpb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAko
cmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwx
MCBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX29yaWdpbmFsVVJM
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X2lzVXNlckluaXRpYXRl
ZCkgQk9PTCBfdXNlckluaXRpYXRlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfY2FuSGFuZGxlUmVxdWVzdDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5BcHBMaW5r
cyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX3Nob3VsZE9wZW5BcHBMaW5rcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRP
cGVuRXh0ZXJuYWxVUkxzIFdLX0RFUFJFQ0FURUQoMTBfMTEsIDEwXzExLCA5XzAsIDlfMCwgInVz
ZSBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBhbmQgX3Nob3VsZE9wZW5BcHBMaW5rcyIpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJuYWxV
UkxzIFdLX0FQSV9ERVBSRUNBVEVEKCJ1c2UgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgYW5k
IF9zaG91bGRPcGVuQXBwTGlua3MiLCBtYWNvc3goMTAuMTEsIDEwLjExKSwgaW9zKDkuMCwgOS4w
KSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05hdmlnYXRpb25EYXRhLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uRGF0YSA6
IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TU3RyaW5nICp0aXRsZTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2
aWdhdGlvbkRlbGVnYXRlLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNDUsNyArNDUsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSB7CiAgICAgV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5Q2FuY2VsLAogICAgIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LAot
fSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBAZW51bSBXS05hdmlnYXRpb25SZXNwb25zZVBv
bGljeQogIEBhYnN0cmFjdCBUaGUgcG9saWN5IHRvIHBhc3MgYmFjayB0byB0aGUgZGVjaXNpb24g
aGFuZGxlciBmcm9tIHRoZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25z
ZTpkZWNpc2lvbkhhbmRsZXI6IG1ldGhvZC4KQEAgLTU1LDcgKzU1LDcgQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uQQogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
V0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpIHsKICAgICBXS05hdmlnYXRpb25SZXNwb25zZVBv
bGljeUNhbmNlbCwKICAgICBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93LAotfSBXS19F
TlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSk7CiAKIC8qISBBIGNsYXNzIGNvbmZvcm1pbmcgdG8gdGhlIFdLTmF2aWdh
dGlvbkRlbGVnYXRlIHByb3RvY29sIGNhbiBwcm92aWRlCiAgbWV0aG9kcyBmb3IgdHJhY2tpbmcg
cHJvZ3Jlc3MgZm9yIG1haW4gZnJhbWUgbmF2aWdhdGlvbnMgYW5kIGZvciBkZWNpZGluZwpAQCAt
MTQyLDcgKzE0Miw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblIK
IC8qISBAYWJzdHJhY3QgSW52b2tlZCB3aGVuIHRoZSB3ZWIgdmlldydzIHdlYiBjb250ZW50IHBy
b2Nlc3MgaXMgdGVybWluYXRlZC4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgd2hvc2Ug
dW5kZXJseWluZyB3ZWIgY29udGVudCBwcm9jZXNzIHdhcyB0ZXJtaW5hdGVkLgogICovCi0tICh2
b2lkKXdlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZTooV0tXZWJWaWV3ICopd2Vi
VmlldyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CistICh2b2lkKXdlYlZpZXdXZWJDb250ZW50
UHJvY2Vzc0RpZFRlcm1pbmF0ZTooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
RGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICNpZiBXS19BUElfRU5BQkxFRAogCiBzdGF0aWMgY29u
c3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3du
bG9hZCA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eUFsbG93ICsgMSk7Ci1zdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FW
QUlMQUJMRSgxMF8xMSwgOV8wKSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0
VHJ5aW5nQXBwTGluayA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUFsbG93ICsgMik7CitzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpIF9XS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rID0gKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSkoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cgKyAyKTsKIAogc3RhdGlj
IGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBv
bGljeUJlY29tZURvd25sb2FkID0gKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KShXS05hdmln
YXRpb25SZXNwb25zZVBvbGljeUFsbG93ICsgMSk7CiAKQEAgLTYyLDcgKzYyLDcgQEAgc3RhdGlj
IGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IAogLy8gT25seSBjYWxsZWQgaWYgaG93
IHRoZSBnZXN0dXJlIHdpbGwgZW5kICh3aXRoIG9yIHdpdGhvdXQgbmF2aWdhdGlvbikgaXMga25v
d24gYmVmb3JlIGl0IGVuZHMuCiAtICh2b2lkKV93ZWJWaWV3V2lsbEVuZE5hdmlnYXRpb25HZXN0
dXJlOihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpdGhOYXZpZ2F0aW9uVG9CYWNrRm9yd2FyZExpc3RJ
dGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyB3aWxsU25hcHNob3RCYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tG
b3J3YXJkTGlzdEl0ZW0gKilpdGVtOwotLSAodm9pZClfd2ViVmlld0RpZFJlbW92ZU5hdmlnYXRp
b25HZXN0dXJlU25hcHNob3Q6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOworLSAodm9pZClfd2ViVmlld0RpZFJlbW92ZU5hdmlnYXRpb25H
ZXN0dXJlU25hcHNob3Q6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05F
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0TG9hZEZvclF1
aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVXaXRoRmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZU5h
bWUgdXRpOihOU1N0cmluZyAqKXV0aTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgJKHJldmlzaW9u
IDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0
aW9uUmVzcG9uc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogCiAvKiEgQ29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBuYXZpZ2F0
aW9uIHJlc3BvbnNlLCB1c2VkIGZvciBtYWtpbmcgcG9saWN5IGRlY2lzaW9ucy4KICAqLwotV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEw
LjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvblJlc3BvbnNlIDogTlNPYmpl
Y3QKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRo
ZSBmcmFtZSBiZWluZyBuYXZpZ2F0ZWQgaXMgdGhlIG1haW4gZnJhbWUuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQ
YXJhbWV0ZXJzLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDcgKzMzLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogLyohIFdLT3BlblBhbmVsUGFy
YW1ldGVycyBjb250YWlucyBwYXJhbWV0ZXJzIHRoYXQgYSBmaWxlIHVwbG9hZCBjb250cm9sIGhh
cyBzcGVjaWZpZWQuCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpCiBAaW50ZXJmYWNlIFdLT3BlblBh
bmVsUGFyYW1ldGVycyA6IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgV2hldGhlciB0aGUgZmls
ZSB1cGxvYWQgY29udHJvbCBzdXBwb3J0cyBtdWx0aXBsZSBmaWxlcy4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCShyZXZp
c2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogIHZpZXcuIFRoZSBw
cmVmZXJlbmNlcyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgd2ViIHZpZXcgaXMgc3BlY2lmaWVk
IGJ5CiAgaXRzIHdlYiB2aWV3IGNvbmZpZ3VyYXRpb24uCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KQogQGludGVyZmFjZSBXS1ByZWZlcmVuY2VzIDogTlNPYmplY3QgPE5TQ29kaW5nPgogCiAvKiEg
QGFic3RyYWN0IFRoZSBtaW5pbXVtIGZvbnQgc2l6ZSBpbiBwb2ludHMuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE2
ICszNSwxNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tTdG9yYWdlQmxvCiAgICAg
X1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QWxsb3dBbGwsCiAgICAgX1dLU3RvcmFnZUJsb2NraW5n
UG9saWN5QmxvY2tUaGlyZFBhcnR5LAogICAgIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2Nr
QWxsLAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRl
Z2VyLCBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zKSB7CiAgICAgX1dLTm9uRmFzdFNjcm9sbGFibGVS
ZWdpb24gPSAxIDw8IDAsCiAgICAgX1dLV2hlZWxFdmVudEhhbmRsZXJSZWdpb24gPSAxIDw8IDEK
LX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwg
X1dLSmF2YVNjcmlwdFJ1bnRpbWVGbGFncykgewogICAgIF9XS0phdmFTY3JpcHRSdW50aW1lRmxh
Z3NBbGxFbmFibGVkID0gMAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK30gV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBjbGFzcyBfV0tFeHBl
cmltZW50YWxGZWF0dXJlOwogCkBAIC01Nyw0MCArNTcsNDAgQEAgdHlwZWRlZiBOU19PUFRJT05T
KE5TVUludGVnZXIsIF9XS0phdmFTYwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
Q29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZTopIEJPT0wgX2NvbXBvc2l0aW5nQm9yZGVyc1Zpc2li
bGU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb21wb3NpdGluZ1JlcGFpbnRD
b3VudGVyc1Zpc2libGU6KSBCT09MIF9jb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUaWxlZFNjcm9sbGluZ0luZGljYXRv
clZpc2libGU6KSBCT09MIF90aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU7Ci1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGU6KSBC
T09MIF9yZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VmlzaWJsZURl
YnVnT3ZlcmxheVJlZ2lvbnM6KSBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zIF92aXNpYmxlRGVidWdP
dmVybGF5UmVnaW9ucyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZDopIEJP
T0wgX3NpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWQ6KSBCT09MIF9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldERpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQ6KSBCT09MIF9kaXNwbGF5TGlzdERyYXdpbmdF
bmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRBdXRvc2l6aW5nRW5hYmxlZDopIEJPT0wgX3RleHRB
dXRvc2l6aW5nRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2li
bGU6KSBCT09MIF9yZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRWaXNpYmxlRGVidWdPdmVybGF5UmVnaW9uczopIF9XS0RlYnVnT3Zlcmxh
eVJlZ2lvbnMgX3Zpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
U2ltcGxlTGluZUxheW91dERlYnVnQm9yZGVyc0VuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5
b3V0RGVidWdCb3JkZXJzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWQ6KSBCT09MIF9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZDopIEJPT0wgX2Rp
c3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRU
ZXh0QXV0b3NpemluZ0VuYWJsZWQ6KSBCT09MIF90ZXh0QXV0b3NpemluZ0VuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERldmVsb3BlckV4dHJhc0VuYWJsZWQ6KSBCT09M
IF9kZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERldmVsb3BlckV4dHJhc0VuYWJsZWQ6KSBCT09M
IF9kZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwg
aW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2dzUGFnZU1l
c3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZDopIEJPT0wgX2xvZ3NQYWdlTWVzc2FnZXNUb1N5
c3RlbUNvbnNvbGVFbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFi
bGVkOikgQk9PTCBfbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkOikgQk9P
TCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SGlk
ZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXM6KSBCT09MIF9oaWRkZW5QYWdl
RE9NVGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
V0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQYWdlVmlzaWJp
bGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZDopIEJPT0wgX3BhZ2VWaXNpYmlsaXR5
QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdFbmFibGVkOikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0
bGluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRIaWRkZW5QYWdlRE9N
VGltZXJUaHJvdHRsaW5nQXV0b0luY3JlYXNlczopIEJPT0wgX2hpZGRlblBhZ2VET01UaW1lclRo
cm90dGxpbmdBdXRvSW5jcmVhc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UGFn
ZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQ6KSBCT09MIF9wYWdlVmlz
aWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEphdmFTY3JpcHRSdW50aW1lRmxhZ3M6KSBfV0tKYXZh
U2NyaXB0UnVudGltZUZsYWdzIF9qYXZhU2NyaXB0UnVudGltZUZsYWdzIFdLX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93RmlsZUFj
Y2Vzc0Zyb21GaWxlVVJMczopIEJPT0wgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEphdmFTY3JpcHRSdW50aW1lRmxhZ3M6KSBfV0tKYXZhU2NyaXB0UnVu
dGltZUZsYWdzIF9qYXZhU2NyaXB0UnVudGltZUZsYWdzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRT
dGFuZGFsb25lOiwgZ2V0dGVyPV9pc1N0YW5kYWxvbmUpIEJPT0wgX3N0YW5kYWxvbmUgV0tfQVZB
SUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3Rh
bmRhbG9uZTosIGdldHRlcj1faXNTdGFuZGFsb25lKSBCT09MIF9zdGFuZGFsb25lIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ6KSBCT09MIF9kaWFnbm9zdGlj
TG9nZ2luZ0VuYWJsZWQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkOikgQk9PTCBfZGlhZ25v
c3RpY0xvZ2dpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0Rm9udFNpemU6
KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rm9udFNpemUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdL
X0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVmYXVsdEZpeGVk
UGl0Y2hGb250U2l6ZTopIE5TVUludGVnZXIgX2RlZmF1bHRGaXhlZFBpdGNoRm9udFNpemUgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMs
IGNvcHksIHNldHRlcj1fc2V0Rml4ZWRQaXRjaEZvbnRGYW1pbHk6KSBOU1N0cmluZyAqX2ZpeGVk
UGl0Y2hGb250RmFtaWx5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmF1bHRGb250U2l6ZTopIE5TVUludGVn
ZXIgX2RlZmF1bHRGb250U2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmF1
bHRGaXhlZFBpdGNoRm9udFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rml4ZWRQaXRjaEZvbnRT
aXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Rml4ZWRQaXRjaEZvbnRG
YW1pbHk6KSBOU1N0cmluZyAqX2ZpeGVkUGl0Y2hGb250RmFtaWx5IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgY29uZmlndXJlZCBvbiB0aGUgV0tXZWJzaXRlRGF0YVN0b3JlLgogLy8gRklYTUU6
IFRoaXMgcHJvcGVydHkgc2hvdWxkIG5vdCBoYXZlIHRoZSB2ZXJiICJpcyIgaW4gaXQuCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRPZmZsaW5lQXBwbGljYXRpb25DYWNoZUlzRW5h
YmxlZDopIEJPT0wgX29mZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbFNjcmVlbkVuYWJsZWQ6KSBCT09MIF9mdWxsU2Ny
ZWVuRW5hYmxlZCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRGdWxsU2NyZWVuRW5hYmxlZDopIEJPT0wgX2Z1bGxTY3JlZW5FbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi0rIChOU0FycmF5
PF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKilfZXhwZXJpbWVudGFsRmVhdHVyZXMgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAoQk9PTClfaXNFbmFibGVkRm9yRmVh
dHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JG
ZWF0dXJlOihfV0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7CisrIChOU0FycmF5PF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUg
Kj4gKilfZXhwZXJpbWVudGFsRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChCT09MKV9pc0VuYWJsZWRGb3JGZWF0dXJlOihf
V0tFeHBlcmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldEVuYWJsZWQ6KEJPT0wp
dmFsdWUgZm9yRmVhdHVyZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQK
IApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JdGVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPFVJS2l0L1VJVmlld0NvbnRyb2xsZXIu
aD4KIAotV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKQorV0tfQVBJX0FWQUlMQUJMRShpb3Mo
V0tfSU9TX1RCQSkpCiBAcHJvdG9jb2wgV0tQcmV2aWV3QWN0aW9uSXRlbSA8VUlQcmV2aWV3QWN0
aW9uSXRlbT4KIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmlu
ZyAqaWRlbnRpZmllcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMu
aAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
OSArMzAsOSBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuIFdL
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBX
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgV0tfQVZBSUxBQkxF
KE5BLCBXS19JT1NfVEJBKTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVyQ29weSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFy
ZSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29u
c3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KFdLX0lPU19UQkEpKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlv
bkl0ZW1JZGVudGlmaWVyQWRkVG9SZWFkaW5nTGlzdCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19J
T1NfVEJBKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVt
SWRlbnRpZmllckNvcHkgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSBX
S19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKICNlbmRpZgpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxl
bWVudEluZm8uaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3
ICsyOSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJM
RShOQSwgV0tfSU9TX1RCQSkKK1dLX0NMQVNTX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpCiBA
aW50ZXJmYWNlIFdLUHJldmlld0VsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgTlNVUkwgKmxpbmtVUkw7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3Vw
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NHcm91cC5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQz
LDcgQEAKIAogQGVuZAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tQcm9jZXNz
R3JvdXAgOiBOU09iamVjdAogCiAtIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VS
TCAqKWJ1bmRsZVVSTDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNyArMzUsNyBAQAogIGltcGxlbWVudGF0aW9uLWRlZmluZWQgcHJvY2VzcyBsaW1pdCBp
cyByZWFjaGVkOyBhZnRlciB0aGF0LCB3ZWIgdmlld3MKICB3aXRoIHRoZSBzYW1lIHByb2Nlc3Mg
cG9vbCBlbmQgdXAgc2hhcmluZyB3ZWIgY29udGVudCBwcm9jZXNzZXMuCiAgKi8KLVdLX0NMQVNT
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQogQGludGVyZmFjZSBXS1Byb2Nlc3NQb29sIDogTlNPYmplY3QgPE5TQ29kaW5n
PgogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2xQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQzLDIzICs0MywyMyBAQAogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gKl9jb25maWd1cmF0aW9uOwog
CiAtICh2b2lkKV9zZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKilj
ZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdDsKLS0gKHZvaWQpX3NldENh
bkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlIFdLX0FWQUlMQUJM
RSgxMF8xMSwgOV8wKTsKKy0gKHZvaWQpX3NldENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFs
dWF0aW9uOihCT09MKXZhbHVlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwogLSAodm9pZClfc2V0Q29va2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kpcG9saWN5OwogCiAtIChpZClfb2JqZWN0Rm9yQnVuZGxlUGFyYW1ldGVyOihOU1N0cmlu
ZyAqKXBhcmFtZXRlcjsKIC0gKHZvaWQpX3NldE9iamVjdDooaWQgPE5TQ29weWluZywgTlNTZWN1
cmVDb2Rpbmc+KW9iamVjdCBmb3JCdW5kbGVQYXJhbWV0ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVy
OwogLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZCA8
TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4+Ci0tICh2b2lkKV9zZXRPYmplY3RzRm9yQnVuZGxl
UGFyYW1ldGVyc1dpdGhEaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0aW9uYXJ5IFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3NldE9iamVjdHNGb3JC
dW5kbGVQYXJhbWV0ZXJzV2l0aERpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnkg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldERvd25sb2FkRGVsZWdhdGU6
KSBpZCA8X1dLRG93bmxvYWREZWxlZ2F0ZT4gX2Rvd25sb2FkRGVsZWdhdGU7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRBdXRvbWF0aW9uRGVsZWdhdGU6KSBpZCA8X1dL
QXV0b21hdGlvbkRlbGVnYXRlPiBfYXV0b21hdGlvbkRlbGVnYXRlIFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9
X3NldEF1dG9tYXRpb25EZWxlZ2F0ZTopIGlkIDxfV0tBdXRvbWF0aW9uRGVsZWdhdGU+IF9hdXRv
bWF0aW9uRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CiAKICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0
aFVSTDooTlNVUkwgKiljb250YWluZXJVUkw7CiArIChOU1VSTCAqKV93ZWJzaXRlRGF0YVVSTEZv
ckNvbnRhaW5lcldpdGhVUkw6KE5TVVJMICopY29udGFpbmVyVVJMIGJ1bmRsZUlkZW50aWZpZXJJ
Zk5vdEluQ29udGFpbmVyOihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZpZXI7CiAKLS0gKHZvaWQp
X3dhcm1Jbml0aWFsUHJvY2VzcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci0tICh2b2lkKV9hdXRvbWF0aW9uQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlIFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX3NldEF1dG9tYXRpb25TZXNzaW9uOihf
V0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3dhcm1Jbml0aWFsUHJvY2VzcyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X2F1dG9tYXRpb25DYXBhYmlsaXRpZXNEaWRDaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRBdXRvbWF0aW9uU2Vz
c2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBv
bmx5LiBTaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2Vz
IGFyZSBydW5uaW5nLgogLSAodm9pZClfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzOwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVz
c2FnZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBA
IE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAvKiEgQSBXS1NjcmlwdE1lc3NhZ2Ugb2JqZWN0IGNv
bnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGEgbWVzc2FnZSBzZW50IGZyb20KICBhIHdlYnBhZ2Uu
CiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1NjcmlwdE1lc3NhZ2UgOiBO
U09iamVjdAogCiAvKiEgQGFic3RyYWN0IFRoZSBib2R5IG9mIHRoZSBtZXNzYWdlLgpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2luLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5
T3JpZ2luLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tTZWN1cml0eU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3
IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgx
MF8xMSwgOV8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKQog
QGludGVyZmFjZSBXS1NlY3VyaXR5T3JpZ2luIDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBl
KWluaXQgTlNfVU5BVkFJTEFCTEU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVHlwZVJlZldyYXBwZXIuaAkocmV2aXNpb24gMjAyNzgxKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQmFzZS5oPgogCi1XS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4w
KSkKIEBpbnRlcmZhY2UgV0tUeXBlUmVmV3JhcHBlciA6IE5TT2JqZWN0CiAKIC0gKGlkKWluaXRX
aXRoT2JqZWN0OihXS1R5cGVSZWYpb2JqZWN0OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgIEBk
aXNjdXNzaW9uIFlvdXIgYXBwIHNob3VsZCByZW1vdmUgdGhlIHdlYiB2aWV3IGZyb20gdGhlIHZp
ZXcgaGllcmFyY2h5IGFuZCB1cGRhdGUKICAgdGhlIFVJIGFzIG5lZWRlZCwgc3VjaCBhcyBieSBj
bG9zaW5nIHRoZSBjb250YWluaW5nIGJyb3dzZXIgdGFiIG9yIHdpbmRvdy4KICAgKi8KLS0gKHZv
aWQpd2ViVmlld0RpZENsb3NlOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKTsKKy0gKHZvaWQpd2ViVmlld0RpZENsb3NlOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3RyYWN0
IERpc3BsYXlzIGEgSmF2YVNjcmlwdCBhbGVydCBwYW5lbC4KICBAcGFyYW0gd2ViVmlldyBUaGUg
d2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KQEAgLTEyOSw3ICsxMjksNyBA
QCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogIFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBpbnZv
a2VkIGZvciBlbGVtZW50cyB0aGF0IGhhdmUgZGVmYXVsdCBwcmV2aWV3IGluIFdlYktpdCwgd2hp
Y2ggaXMKICBsaW1pdGVkIHRvIGxpbmtzLiBJbiB0aGUgZnV0dXJlLCBpdCBjb3VsZCBiZSBpbnZv
a2VkIGZvciBhZGRpdGlvbmFsIGVsZW1lbnRzLgogICovCi0tIChCT09MKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgc2hvdWxkUHJldmlld0VsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZv
ICopZWxlbWVudEluZm8gV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKEJPT0wpd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVudDooV0tQcmV2aWV3
RWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJB
KSk7CiAKIC8qISBAYWJzdHJhY3QgQWxsb3dzIHlvdXIgYXBwIHRvIHByb3ZpZGUgYSBjdXN0b20g
dmlldyBjb250cm9sbGVyIHRvIHNob3cgd2hlbiB0aGUgZ2l2ZW4gZWxlbWVudCBpcyBwZWVrZWQu
CiAgQHBhcmFtIHdlYlZpZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRo
b2QuCkBAIC0xNDQsMTMgKzE0NCwxMyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogIFJldHVy
bmluZyBuaWwgd2lsbCByZXN1bHQgaW4gV2ViS2l0J3MgZGVmYXVsdCBwcmV2aWV3IGJlaGF2aW9y
LiB3ZWJWaWV3OmNvbW1pdFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjogd2lsbCBvbmx5IGJlIGlu
dm9rZWQKICBpZiBhIG5vbi1uaWwgdmlldyBjb250cm9sbGVyIHdhcyByZXR1cm5lZC4KICAqLwot
LSAobnVsbGFibGUgVUlWaWV3Q29udHJvbGxlciAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgcHJldmlld2luZ1ZpZXdDb250cm9sbGVyRm9yRWxlbWVudDooV0tQcmV2aWV3RWxlbWVudElu
Zm8gKillbGVtZW50SW5mbyBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxpZCA8V0tQcmV2aWV3QWN0
aW9uSXRlbT4+ICopcHJldmlld0FjdGlvbnMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsK
Ky0gKG51bGxhYmxlIFVJVmlld0NvbnRyb2xsZXIgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHByZXZpZXdpbmdWaWV3Q29udHJvbGxlckZvckVsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJ
bmZvICopZWxlbWVudEluZm8gZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8aWQgPFdLUHJldmlld0Fj
dGlvbkl0ZW0+PiAqKXByZXZpZXdBY3Rpb25zIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKIAogLyohIEBhYnN0cmFjdCBBbGxvd3MgeW91ciBhcHAgdG8gcG9wIHRvIHRoZSB2aWV3
IGNvbnRyb2xsZXIgaXQgY3JlYXRlZC4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52
b2tpbmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KICBAcGFyYW0gcHJldmlld2luZ1ZpZXdDb250cm9s
bGVyIFRoZSB2aWV3IGNvbnRyb2xsZXIgdGhhdCBpcyBiZWluZyBwb3BwZWQuCiAgKi8KLS0gKHZv
aWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3aW5nVmlld0NvbnRy
b2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgV0tfQVZB
SUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilw
cmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkp
OwogCiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCkBAIC0xNjQsNyArMTY0LDcgQEAgTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAogIElmIHlvdSBkbyBub3QgaW1wbGVtZW50IHRoaXMgbWV0
aG9kLCB0aGUgd2ViIHZpZXcgd2lsbCBiZWhhdmUgYXMgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgdGhl
IENhbmNlbCBidXR0b24uCiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBydW5PcGVuUGFuZWxXaXRoUGFyYW1ldGVyczooV0tPcGVuUGFuZWxQYXJhbWV0ZXJzICopcGFy
YW1ldGVycyBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TVVJMICo+ICogX051bGxhYmxlIFVSTHMpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CistICh2b2lkKXdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnM6KFdLT3Bl
blBhbmVsUGFyYW1ldGVycyAqKXBhcmFtZXRlcnMgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUlu
Zm8gKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1VSTCAqPiAq
IF9OdWxsYWJsZSBVUkxzKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSk7CiAKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNp
b24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDMzICs1MywzMyBAQCBzdHJ1Y3Qg
VUlFZGdlSW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3Q2xvc2U6KFdLV2ViVmlldyAqKXdlYlZp
ZXc7CiAtICh2b2lkKV93ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lOihXS1dlYlZp
ZXcgKil3ZWJWaWV3OwotLSAodm9pZClfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbjooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoMTBfMTEsIDhfMyk7Ci0tICh2b2lkKV93ZWJWaWV3
RGlkRXhpdEZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKDEwXzEx
LCA4XzMpOworLSAodm9pZClfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbjooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg4LjMpKTsKKy0gKHZv
aWQpX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg4LjMpKTsKIAotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkOihDR1Np
emUpc2l6ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tIChOU0RpY3Rp
b25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZDoo
Q0dTaXplKXNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistIChOU0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogI2lmIFRBUkdFVF9PU19JUEhPTkUKLS0gKEJPT0wpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9y
RWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShO
QSwgOV8wKTsKKy0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkSW5j
bHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKill
bGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogLSAoTlNBcnJheSAqKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlv
biAqPiAqKWRlZmF1bHRBY3Rpb25zOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDooQ0dQb2ludClwb2ludDsKIC0gKEJP
T0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkUmVxdWVzdEdlb2xvY2F0aW9u
QXV0aG9yaXphdGlvbkZvclVSTDooTlNVUkwgKil1cmwgaXNNYWluRnJhbWU6KEJPT0wpaXNNYWlu
RnJhbWUgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTDsKLS0gKFVJVmlld0NvbnRy
b2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xs
ZXJGb3JVUkw6KE5TVVJMICopdXJsIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkVmlld0NvbnRyb2xsZXI6
KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUo
TkEsIDlfMCk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2
aWV3SW1hZ2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsK
LS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkSW1h
Z2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29u
dHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9sbGVyIGNvbW1p
dHRpbmc6KEJPT0wpY29tbWl0dGluZyBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0tICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xs
ZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BVkFJTEFC
TEUoTkEsIDlfMCk7Ci0tIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3dD
dXN0b21TaGVldEZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBX
S19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBhbHRlcm5hdGVBY3Rpb25Gb3JVUkw6KE5TVVJMICopdXJsIFdLX0FWQUlMQUJM
RShOQSwgV0tfSU9TX1RCQSk7Ci0tIChOU0FycmF5ICopX2F0dGFjaG1lbnRMaXN0Rm9yV2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotLSAo
TlNVSW50ZWdlcilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbmRleEludG9BdHRhY2ht
ZW50TGlzdEZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19B
VkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotLSAoVUlFZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNldHNGb3JTY3JvbGxWaWV3OihVSVNjcm9s
bFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRD
b250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9mZnNldCBXS19BVkFJ
TEFCTEUoTkEsIDlfMCk7Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBkZWZh
dWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVtZW50
SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BVkFJTEFCTEUo
TkEsIDlfMCk7Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJMOihOU1VSTCAq
KXVybCBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9u
cyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBpbWFn
ZVNpemU6KENHU2l6ZSlpbWFnZVNpemUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAoVUlWaWV3
Q29udHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistIChVSVZpZXdDb250
cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9s
bGVyRm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkVmlld0NvbnRy
b2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElf
QVZBSUxBQkxFKGlvcyg5XzApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgd2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0FWQUlM
QUJMRShpb3MoOV8wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNv
bW1pdFByZXZpZXdlZEltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19BUElfQVZBSUxB
QkxFKGlvcyg5XzApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
RGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdl
ZFZpZXdDb250cm9sbGVyIGNvbW1pdHRpbmc6KEJPT0wpY29tbWl0dGluZyBXS19BUElfQVZBSUxB
QkxFKGlvcyg5XzApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlk
RGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdl
ZFZpZXdDb250cm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAoQk9PTClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OihfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhbHRlcm5hdGVB
Y3Rpb25Gb3JVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KTsKKy0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TVUludGVnZXIp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JF
bGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJM
RShpb3MoV0tfSU9TX1RCQSkpOworLSAoVUlFZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNldHNGb3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50
T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9mZnNldCBXS19BUElfQVZBSUxB
QkxFKGlvcyg5XzApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1
bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJ
bmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDlfMCkpOworLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNV
UkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFj
dGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8g
aW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXplIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwor
LSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
ICNlbHNlCi0tIChOU01lbnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0
TWVudTooTlNNZW51ICopbWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
ICopZWxlbWVudCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwotLSAoTlNNZW51ICopX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9y
RWxlbWVudDooX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlk
IDxOU1NlY3VyZUNvZGluZz4pdXNlckluZm8gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsK
Ky0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihO
U01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVt
ZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKE5TTWVudSAqKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZv
ckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihp
ZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpKTsKICNlbmRpZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCShy
ZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VXNlckNvbnRlbnRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICBUaGUgdXNlciBjb250ZW50IGNvbnRyb2xsZXIgYXNz
b2NpYXRlZCB3aXRoIGEgd2ViIHZpZXcgaXMgc3BlY2lmaWVkIGJ5IGl0cwogIHdlYiB2aWV3IGNv
bmZpZ3VyYXRpb24uCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1VzZXJD
b250ZW50Q29udHJvbGxlciA6IE5TT2JqZWN0IDxOU0NvZGluZz4KIAogLyohIEBhYnN0cmFjdCBU
aGUgdXNlciBzY3JpcHRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHVzZXIgY29udGVudApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxl
clByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9s
bGVyUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxOCArMzQsMTggQEAKIAogQGludGVy
ZmFjZSBXS1VzZXJDb250ZW50Q29udHJvbGxlciAoV0tQcml2YXRlKQogCi0tICh2b2lkKV9yZW1v
dmVVc2VyU2NyaXB0OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2Np
YXRlZFdpdGhVc2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRl
bnRXb3JsZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKV9y
ZW1vdmVVc2VyU2NyaXB0OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVtb3Zl
QWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250
ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi0tICh2b2lkKV9hZGRVc2VyQ29udGVudEZpbHRl
cjooX1dLVXNlckNvbnRlbnRGaWx0ZXIgKil1c2VyQ29udGVudEZpbHRlciBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7Ci0tICh2b2lkKV9yZW1vdmVVc2VyQ29udGVudEZpbHRlcjooTlNTdHJpbmcg
Kil1c2VyQ29udGVudEZpbHRlck5hbWUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotLSAodm9p
ZClfcmVtb3ZlQWxsVXNlckNvbnRlbnRGaWx0ZXJzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsK
LQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PF9XS1VzZXJT
dHlsZVNoZWV0ICo+ICpfdXNlclN0eWxlU2hlZXRzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKLS0gKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVl
dCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
LS0gKHZvaWQpX3JlbW92ZVVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAqKXVzZXJT
dHlsZVNoZWV0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQp
X3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7Ci0tICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVz
ZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX2FkZFVzZXJDb250
ZW50RmlsdGVyOihfV0tVc2VyQ29udGVudEZpbHRlciAqKXVzZXJDb250ZW50RmlsdGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworLSAodm9pZClfcmVtb3ZlVXNl
ckNvbnRlbnRGaWx0ZXI6KE5TU3RyaW5nICopdXNlckNvbnRlbnRGaWx0ZXJOYW1lIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworLSAodm9pZClfcmVtb3ZlQWxsVXNl
ckNvbnRlbnRGaWx0ZXJzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkp
OworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8X1dLVXNl
clN0eWxlU2hlZXQgKj4gKl91c2VyU3R5bGVTaGVldHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9hZGRVc2VyU3R5bGVTaGVl
dDooX1dLVXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlbW92ZVVzZXJT
dHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVt
b3ZlQWxsVXNlclN0eWxlU2hlZXRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNz
b2NpYXRlZFdpdGhVc2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNv
bnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogLSAodm9pZClfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1Njcmlw
dE1lc3NhZ2VIYW5kbGVyPilzY3JpcHRNZXNzYWdlSGFuZGxlciBuYW1lOihOU1N0cmluZyAqKW5h
bWUgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29y
bGQ7CiAtICh2b2lkKV9yZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6KE5TU3RyaW5n
ICopbmFtZSB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRl
bnRXb3JsZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2Vy
U2NyaXB0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VzZXJTY3JpcHQuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTEg
KzM5LDExIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lKSB7CiAgICAgV0tVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZUF0RG9jdW1lbnRTdGFydCwKICAgICBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXRE
b2N1bWVudEVuZAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBBIEBsaW5rIFdLVXNlclNj
cmlwdCBAL2xpbmsgb2JqZWN0IHJlcHJlc2VudHMgYSBzY3JpcHQgdGhhdCBjYW4gYmUgaW5qZWN0
ZWQgaW50byB3ZWJwYWdlcy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitX
S19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdL
VXNlclNjcmlwdCA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKIC8qIEBhYnN0cmFjdCBUaGUgc2Ny
aXB0IHNvdXJjZSBjb2RlLiAqLwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VzZXJTY3JpcHRQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHRQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc4
MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJp
dmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsMTAgQEAgTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KIAogQGludGVyZmFjZSBXS1VzZXJTY3JpcHQgKFdLUHJpdmF0ZSkKIAotLSAoaW5z
dGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGlt
ZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9u
bHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilsZWdhY3lXaGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5n
ICo+ICopbGVnYWN5QmxhY2tsaXN0IHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29y
bGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKLS0gKGluc3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGlu
amVjdGlvblRpbWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JN
YWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0Fy
cmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJh
eTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCBhc3NvY2lhdGVkVVJMOihOU1VSTCAqKWFz
c29jaWF0ZWRVUkwgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJD
b250ZW50V29ybGQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAoaW5z
dGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGlt
ZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9u
bHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilsZWdhY3lXaGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5n
ICo+ICopbGVnYWN5QmxhY2tsaXN0IHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29y
bGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNT
dHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlp
bmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBsZWdh
Y3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lXaGl0ZWxpc3QgbGVnYWN5
QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5QmxhY2tsaXN0IGFzc29jaWF0
ZWRVUkw6KE5TVVJMICopYXNzb2NpYXRlZFVSTCB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29u
dGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBfV0tVc2VyQ29udGVudFdvcmxkICpfdXNlckNvbnRlbnRXb3JsZCBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IF9XS1VzZXJDb250ZW50V29ybGQgKl91c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5o
CShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQAogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2Nh
bGU7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlRGV2aWNlU2Nh
bGVGYWN0b3I6KSBDR0Zsb2F0IF9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yIFdLX0FWQUlMQUJM
RSgxMF8xMSwgTkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVE
ZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQgX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOikgQk9PTCBfYXV0b21h
dGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOwogCkBAIC04NCw3ICs4NCw3IEBACiBAcHJvcGVy
dHkgKGNvcHksIG5vbmF0b21pYykgTlNDb2xvciAqdW5kZXJsYXlDb2xvcjsKIAogI2lmIFdLX0FQ
SV9FTkFCTEVECi1AcHJvcGVydHkgKHN0cm9uZywgbm9uYXRvbWljLCBzZXR0ZXI9X3NldEluc3Bl
Y3RvckF0dGFjaG1lbnRWaWV3OikgTlNWaWV3ICpfaW5zcGVjdG9yQXR0YWNobWVudFZpZXcgV0tf
QVZBSUxBQkxFKDEwXzExLCBOQSk7CitAcHJvcGVydHkgKHN0cm9uZywgbm9uYXRvbWljLCBzZXR0
ZXI9X3NldEluc3BlY3RvckF0dGFjaG1lbnRWaWV3OikgTlNWaWV3ICpfaW5zcGVjdG9yQXR0YWNo
bWVudFZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpKTsKICNlbmRpZgogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlv
bkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JF
ZGl0aW5nQ29udHJvbHNNYW5hZ2VyOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00
OSwxMCArNDksMTAgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICBVc2VkIHRvIGNvbmZpZ3Vy
ZSBAbGluayBXS1dlYlZpZXcgQC9saW5rIGluc3RhbmNlcy4KICAqLwogI2lmIFRBUkdFVF9PU19J
UEhPTkUKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlZpZXcgOiBVSVZpZXcK
ICNlbHNlCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IDogTlNWaWV3
CiAjZW5kaWYKIApAQCAtOTgsNyArOTgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKICBJZiByZWFkQWNjZXNzVVJMIHJlZmVyZW5jZXMgYSBkaXJlY3RvcnksIGZpbGVzIGluc2lk
ZSB0aGF0IGZpbGUgbWF5IGJlIGxvYWRlZCBieSBXZWJLaXQuCiAgQHJlc3VsdCBBIG5ldyBuYXZp
Z2F0aW9uIGZvciB0aGUgZ2l2ZW4gZmlsZSBVUkwuCiAgKi8KLS0gKG51bGxhYmxlIFdLTmF2aWdh
dGlvbiAqKWxvYWRGaWxlVVJMOihOU1VSTCAqKVVSTCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDoo
TlNVUkwgKilyZWFkQWNjZXNzVVJMIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKG51bGxh
YmxlIFdLTmF2aWdhdGlvbiAqKWxvYWRGaWxlVVJMOihOU1VSTCAqKVVSTCBhbGxvd2luZ1JlYWRB
Y2Nlc3NUb1VSTDooTlNVUkwgKilyZWFkQWNjZXNzVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3RyYWN0IFNldHMgdGhlIHdlYnBhZ2UgY29u
dGVudHMgYW5kIGJhc2UgVVJMLgogIEBwYXJhbSBzdHJpbmcgVGhlIHN0cmluZyB0byB1c2UgYXMg
dGhlIGNvbnRlbnRzIG9mIHRoZSB3ZWJwYWdlLgpAQCAtMTE0LDcgKzExNCw3IEBAIFdLX0NMQVNT
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIEBwYXJhbSBiYXNlVVJMIEEgVVJMIHRoYXQgaXMgdXNl
ZCB0byByZXNvbHZlIHJlbGF0aXZlIFVSTHMgd2l0aGluIHRoZSBkb2N1bWVudC4KICBAcmVzdWx0
IEEgbmV3IG5hdmlnYXRpb24uCiAgKi8KLS0gKG51bGxhYmxlIFdLTmF2aWdhdGlvbiAqKWxvYWRE
YXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3Rl
ckVuY29kaW5nTmFtZTooTlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDoo
TlNVUkwgKiliYXNlVVJMIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKG51bGxhYmxlIFdL
TmF2aWdhdGlvbiAqKWxvYWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAq
KU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFtZTooTlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNv
ZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3RyYWN0IE5hdmlnYXRlcyB0byBhbiBpdGVt
IGZyb20gdGhlIGJhY2stZm9yd2FyZCBsaXN0IGFuZCBzZXRzIGl0CiAgYXMgdGhlIGN1cnJlbnQg
aXRlbS4KQEAgLTE2OCw3ICsxNjgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
ICBAZGlzY3Vzc2lvbiBAbGluayBXS1dlYlZpZXcgQC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZp
bmcgKEtWTykgY29tcGxpYW50IAogIGZvciB0aGlzIHByb3BlcnR5LgogICovCi1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBTZWNUcnVzdFJlZiBzZXJ2ZXJUcnVzdCBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIG51bGxhYmxlKSBTZWNUcnVzdFJlZiBzZXJ2ZXJUcnVzdCBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLyohIEBhYnN0
cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZXJlIGlzIGEgYmFjayBp
dGVtIGluCiAgdGhlIGJhY2stZm9yd2FyZCBsaXN0IHRoYXQgY2FuIGJlIG5hdmlnYXRlZCB0by4K
QEAgLTIyOCwxMyArMjI4LDEzIEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiAv
KiEgQGFic3RyYWN0IFRoZSBjdXN0b20gdXNlciBhZ2VudCBzdHJpbmcgb3IgbmlsIGlmIG5vIGN1
c3RvbSB1c2VyIGFnZW50IHN0cmluZyBoYXMgYmVlbiBzZXQuCiAqLwotQHByb3BlcnR5IChudWxs
YWJsZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FWQUlM
QUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgY29weSkg
TlNTdHJpbmcgKmN1c3RvbVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKTsKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3
aGV0aGVyIGxpbmsgcHJldmlldyBpcyBhbGxvd2VkIGZvciBhbnkKICBsaW5rcyBpbnNpZGUgdGhp
cyBXS1dlYlZpZXcuCiAgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTIG9uIE1h
YyBhbmQgaU9TLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NMaW5rUHJl
dmlldyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBhbGxvd3NMaW5rUHJldmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIC8qISBAYWJzdHJhY3QgVGhlIHNjcm9sbCB2
aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGUgd2ViIHZpZXcuCkBAIC0zMDYsNyArMzA2LDcgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS0Rl
cHJlY2F0ZWQpCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJh
eSAqY2VydGlmaWNhdGVDaGFpbiBXS19ERVBSRUNBVEVEKDEwXzExLCBXS19NQUNfVEJBLCA5XzAs
IFdLX0lPU19UQkEsICJQbGVhc2UgdXNlIHNlcnZlclRydXN0Iik7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXkgKmNlcnRpZmljYXRlQ2hhaW4gV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgic2VydmVyVHJ1c3QiLCBtYWNvc3goMTAuMTEsIFdL
X01BQ19UQkEpLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC00OSw3ICs0OSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBXS1NlbGVjdGlvbkdyYW51bGFyaXR5KSB7CiAgICAgV0tTZWxlY3Rpb25HcmFu
dWxhcml0eUR5bmFtaWMsCiAgICAgV0tTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKLX0g
V0tfRU5VTV9BVkFJTEFCTEVfSU9TKDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDguMCkp
OwogCiAvKiEgQGVudW0gV0tEYXRhRGV0ZWN0b3JUeXBlcwogIEBhYnN0cmFjdCBUaGUgdHlwZSBv
ZiBkYXRhIGRldGVjdGVkLgpAQCAtNzIsOCArNzIsOCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNV
SW50ZWdlciwgV0tEYXRhRGV0CiAgICAgV0tEYXRhRGV0ZWN0b3JUeXBlTG9va3VwU3VnZ2VzdGlv
biA9IDEgPDwgNiwKICAgICBXS0RhdGFEZXRlY3RvclR5cGVBbGwgPSBOU1VJbnRlZ2VyTWF4LAog
Ci0gICAgV0tEYXRhRGV0ZWN0b3JUeXBlU3BvdGxpZ2h0U3VnZ2VzdGlvbiBXS19FTlVNX0RFUFJF
Q0FURUQoTkEsIE5BLCBXS19JT1NfVEJBLCBXS19JT1NfVEJBLCAiUGxlYXNlIHVzZSBXS0RhdGFE
ZXRlY3RvclR5cGVMb29rdXBTdWdnZXN0aW9uIikgPSBXS0RhdGFEZXRlY3RvclR5cGVMb29rdXBT
dWdnZXN0aW9uLAotfSBXS19FTlVNX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CisgICAgV0tE
YXRhRGV0ZWN0b3JUeXBlU3BvdGxpZ2h0U3VnZ2VzdGlvbiBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJXS0RhdGFEZXRlY3RvclR5cGVMb29rdXBTdWdnZXN0aW9uIiwgaW9zKFdL
X0lPU19UQkEsIFdLX0lPU19UQkEpKSA9IFdLRGF0YURldGVjdG9yVHlwZUxvb2t1cFN1Z2dlc3Rp
b24sCit9IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2Vsc2UKIApAQCAt
OTEsNyArOTEsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tEYXRhRGV0CiB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kp
IHsKICAgICBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3lDb250ZW50LAogICAgIFdLVXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeVN5c3RlbSwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgTkEpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAK
ICNlbmRpZgogCkBAIC0xMDcsMTMgKzEwNywxMyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgV0tBdWRpb3ZpCiAgICAgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUF1ZGlvID0gMSA8PCAw
LAogICAgIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVWaWRlbyA9IDEgPDwgMSwKICAgICBXS0F1ZGlv
dmlzdWFsTWVkaWFUeXBlQWxsID0gTlNVSW50ZWdlck1heAotfSBXS19FTlVNX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qISBBIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
b2JqZWN0IGlzIGEgY29sbGVjdGlvbiBvZiBwcm9wZXJ0aWVzIHdpdGgKICB3aGljaCB0byBpbml0
aWFsaXplIGEgd2ViIHZpZXcuCiAgQGhlbHBzIENvbnRhaW5zIHByb3BlcnRpZXMgdXNlZCB0byBj
b25maWd1cmUgYSBAbGluayBXS1dlYlZpZXcgQC9saW5rLgogICovCi1XS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4w
KSkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxOU0NvZGlu
ZywgTlNDb3B5aW5nPgogCiAvKiEgQGFic3RyYWN0IFRoZSBwcm9jZXNzIHBvb2wgZnJvbSB3aGlj
aCB0byBvYnRhaW4gdGhlIHZpZXcncyB3ZWIgY29udGVudApAQCAtMTM0LDcgKzEzNCw3IEBAIFdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRoZSB3ZWJzaXRl
IGRhdGEgc3RvcmUgdG8gYmUgdXNlZCBieSB0aGUgd2ViIHZpZXcuCiAgKi8KLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzdHJvbmcpIFdLV2Vic2l0ZURhdGFTdG9yZSAqd2Vic2l0ZURhdGFTdG9yZSBX
S19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBX
S1dlYnNpdGVEYXRhU3RvcmUgKndlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGlu
ZGljYXRpbmcgd2hldGhlciB0aGUgd2ViIHZpZXcgc3VwcHJlc3NlcwogIGNvbnRlbnQgcmVuZGVy
aW5nIHVudGlsIGl0IGlzIGZ1bGx5IGxvYWRlZCBpbnRvIG1lbW9yeS4KQEAgLTE0NCwxNCArMTQ0
LDE0IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRo
ZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiBhcyB1c2VkIGluIHRoZSB1c2VyIGFnZW50IHN0cmlu
Zy4KICovCi1AcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICph
cHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHBy
b3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRpb25O
YW1lRm9yVXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkp
OwogCiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgQWly
UGxheSBpcyBhbGxvd2VkLgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4K
ICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzQWlyUGxheUZvck1lZGlhUGxh
eWJhY2sgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgYWxsb3dzQWlyUGxheUZvck1lZGlhUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBXS0F1ZGlvdmlzdWFs
TWVkaWFUeXBlcyBtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBX
S0F1ZGlvdmlzdWFsTWVkaWFUeXBlcyBtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBs
YXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFs
dWUgaW5kaWNhdGluZyB3aGV0aGVyIEhUTUw1IHZpZGVvcyBwbGF5IGlubGluZQpAQCAtMTcxLDcg
KzE3MSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIHBpY3R1cmUtaW4tcGlj
dHVyZS4KICBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAgKi8KLUBwcm9w
ZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNr
IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93
c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkp
OwogCiAvKiEgQGFic3RyYWN0IEFuIGVudW0gdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBk
YXRhIGRldGVjdGlvbiBkZXNpcmVkLgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlz
IFdLRGF0YURldGVjdG9yVHlwZU5vbmUuCkBAIC0xODAsNyArMTgwLDcgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCiAgaWYgdGhlIGRhdGFEZXRlY3RvclR5cGVzIHByb3BlcnR5IGlz
IHNldCB0byBXS0RhdGFEZXRlY3RvclR5cGVQaG9uZU51bWJlciB8IFdLRGF0YURldGVjdG9yVHlw
ZUxpbmsgfCBXS0RhdGFEZXRlY3RvclR5cGVDYWxlbmRhckV2ZW50LgogCiAgKi8KLUBwcm9wZXJ0
eSAobm9uYXRvbWljKSBXS0RhdGFEZXRlY3RvclR5cGVzIGRhdGFEZXRlY3RvclR5cGVzIFdLX0FW
QUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgV0tEYXRhRGV0
ZWN0b3JUeXBlcyBkYXRhRGV0ZWN0b3JUeXBlcyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CiAKICNlbHNlCiAKQEAgLTE4OCw3ICsxODgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKICBAZGlzY3Vzc2lvbiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGRlc2NyaWJlZCBp
biBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kuCiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMg
V0tVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5Q29udGVudC4KICAqLwotQHByb3BlcnR5IChu
b25hdG9taWMpIFdLVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSB1c2VySW50ZXJmYWNlRGly
ZWN0aW9uUG9saWN5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYykgV0tVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHVzZXJJbnRlcmZhY2VEaXJl
Y3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiAjZW5k
aWYKIApAQCAtMTk3LDkgKzE5Nyw5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQog
QGludGVyZmFjZSBXS1dlYlZpZXdDb25maWd1cmF0aW9uIChXS0RlcHJlY2F0ZWQpCiAKICNpZiBU
QVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBtZWRpYVBsYXliYWNr
UmVxdWlyZXNVc2VyQWN0aW9uIFdLX0RFUFJFQ0FURUQoTkEsIE5BLCA4XzAsIDlfMCwgIlBsZWFz
ZSB1c2UgcmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayIpOwotQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgbWVkaWFQbGF5YmFja0FsbG93c0FpclBsYXkgV0tfREVQUkVDQVRFRChO
QSwgTkEsIDhfMCwgOV8wLCAiUGxlYXNlIHVzZSBhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQbGF5YmFj
ayIpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVk
aWFQbGF5YmFjayBXS19ERVBSRUNBVEVEKE5BLCBOQSwgOV8wLCAxMF8wLCAiUGxlYXNlIHVzZSBt
ZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIik7CitAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyQWN0aW9uIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoInJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJh
Y2siLCBpb3MoOC4wLCA5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlhUGxh
eWJhY2tBbGxvd3NBaXJQbGF5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImFs
bG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIiwgaW9zKDguMCwgOS4wKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCByZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrIFdLX0FQ
SV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0
aW9uRm9yUGxheWJhY2siLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CiAjZW5kaWYKIAogQGVuZApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAkocmV2aXNpb24gMjAyNzgx
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwzOCArNDEsMzggQEAKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0QWx0ZXJuYXRlV2ViVmlld0Zvck5h
dmlnYXRpb25HZXN0dXJlczopIFdLV2ViVmlldyAqX2FsdGVybmF0ZVdlYlZpZXdGb3JOYXZpZ2F0
aW9uR2VzdHVyZXM7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRyZWF0c1NI
QTFTaWduZWRDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlOikgQk9PTCBfdHJlYXRzU0hBMVNpZ25lZENl
cnRpZmljYXRlc0FzSW5zZWN1cmUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0VHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1
cmU6KSBCT09MIF90cmVhdHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSBXS19BUElf
QVZBSUxBQkxFKGlvcyg5XzApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
UmVzcGVjdHNJbWFnZU9yaWVudGF0aW9uOikgQk9PTCBfcmVzcGVjdHNJbWFnZU9yaWVudGF0aW9u
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFByaW50c0JhY2tncm91bmRzOikgQk9PTCBfcHJpbnRzQmFja2dyb3Vu
ZHMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXQ6
KSBDR0Zsb2F0IF9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBbGxvd3NKYXZhU2NyaXB0TWFya3VwOikgQk9PTCBfYWxsb3dzSmF2YVNjcmlwdE1h
cmt1cCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRDb252ZXJ0c1Bvc2l0aW9uU3R5bGVPbkNvcHk6KSBCT09MIF9j
b252ZXJ0c1Bvc2l0aW9uU3R5bGVPbkNvcHkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzTWV0YVJlZnJl
c2g6KSBCT09MIF9hbGxvd3NNZXRhUmVmcmVzaCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd1VuaXZlcnNh
bEFjY2Vzc0Zyb21GaWxlVVJMczopIEJPT0wgX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ6
KSBCT09MIF9tYWluQ29udGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkOikgQk9PTCBfaW52aXNpYmxlQXV0b3Bs
YXlOb3RQZXJtaXR0ZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
OikgQk9PTCBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5IFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF0dGFj
aG1lbnRFbGVtZW50RW5hYmxlZDopIEJPT0wgX2F0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRJbml0aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkOikgQk9PTCBfaW5pdGlhbENh
cGl0YWxpemF0aW9uRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcHBsZVBheUVuYWJsZWQ6KSBCT09M
IF9hcHBsZVBheUVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzcGVjdHNJbWFnZU9yaWVudGF0aW9u
OikgQk9PTCBfcmVzcGVjdHNJbWFnZU9yaWVudGF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0UHJpbnRzQmFja2dyb3VuZHM6KSBCT09MIF9wcmludHNCYWNrZ3JvdW5kcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Np
b25UaW1lb3V0OikgQ0dGbG9hdCBfaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVv
dXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NKYXZhU2NyaXB0TWFya3Vw
OikgQk9PTCBfYWxsb3dzSmF2YVNjcmlwdE1hcmt1cCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldENvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29weTopIEJPT0wgX2NvbnZlcnRzUG9zaXRp
b25TdHlsZU9uQ29weSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c01ldGFS
ZWZyZXNoOikgQk9PTCBfYWxsb3dzTWV0YVJlZnJlc2ggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczopIEJPT0wgX2FsbG93VW5p
dmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
TWFpbkNvbnRlbnRVc2VyR2VzdHVyZU92ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50
VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJbnZpc2libGVBdXRvcGxheU5vdFBlcm1pdHRlZDopIEJPT0wgX2ludmlzaWJsZUF1dG9wbGF5
Tm90UGVybWl0dGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEYXRhTG9h
ZHNBdXRvbWF0aWNhbGx5OikgQk9PTCBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkOikgQk9P
TCBfYXR0YWNobWVudEVsZW1lbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0SW5pdGlhbENhcGl0YWxpemF0aW9uRW5hYmxlZDopIEJPT0wgX2luaXRpYWxDYXBpdGFsaXph
dGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcHBsZVBheUVuYWJs
ZWQ6KSBCT09MIF9hcHBsZVBheUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHk6
KSBCT09MIF9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkgV0tfQVZBSUxBQkxFKE5BLCA5
XzApOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5saW5lTWVkaWFQbGF5YmFj
a1JlcXVpcmVzUGxheXNJbmxpbmVBdHRyaWJ1dGU6KSBCT09MIF9pbmxpbmVNZWRpYVBsYXliYWNr
UmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEp
OwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5
YmFja0FmdGVyRnVsbHNjcmVlbjopIEJPT0wgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRl
ckZ1bGxzY3JlZW4gIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHk6KSBCT09M
IF9hbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbmxpbmVNZWRpYVBsYXliYWNr
UmVxdWlyZXNQbGF5c0lubGluZUF0dHJpYnV0ZTopIEJPT0wgX2lubGluZU1lZGlhUGxheWJhY2tS
ZXF1aXJlc1BsYXlzSW5saW5lQXR0cmlidXRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0lubGluZU1lZGlh
UGxheWJhY2tBZnRlckZ1bGxzY3JlZW46KSBCT09MIF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNr
QWZ0ZXJGdWxsc2NyZWVuICBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAjZWxz
ZQotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvd3NVUkxzSW5Ub29sVGlwczop
IEJPT0wgX3Nob3dzVVJMc0luVG9vbFRpcHMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6
KSBCT09MIF9zZXJ2aWNlQ29udHJvbHNFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBO
QSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbWFnZUNvbnRyb2xzRW5hYmxl
ZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBO
QSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVz
VXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBO
QSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG93c1VSTHNJblRvb2xUaXBz
OikgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlwcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNlQ29udHJv
bHNFbmFibGVkOikgQk9PTCBfc2VydmljZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJ
bWFnZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
d3JpdGUsIHNldHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFu
YWdlcjopIEJPT0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0VmlzaXRlZExpbmtQcm92aWRlcjopIF9X
S1Zpc2l0ZWRMaW5rUHJvdmlkZXIgKl92aXNpdGVkTGlua1Byb3ZpZGVyIFdLX0RFUFJFQ0FURUQo
MTBfMTAsIFdLX01BQ19UQkEsIDhfMCwgV0tfSU9TX1RCQSwgIlBsZWFzZSB1c2UgX3Zpc2l0ZWRM
aW5rU3RvcmUgaW5zdGVhZCIpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVy
PV9zZXRWaXNpdGVkTGlua1Byb3ZpZGVyOikgX1dLVmlzaXRlZExpbmtQcm92aWRlciAqX3Zpc2l0
ZWRMaW5rUHJvdmlkZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3Zpc2l0
ZWRMaW5rU3RvcmUiLCBtYWNvc3goMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1Nf
VEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0V2Vic2l0
ZURhdGFTdG9yZTopIF9XS1dlYnNpdGVEYXRhU3RvcmUgKl93ZWJzaXRlRGF0YVN0b3JlIFdLX0RF
UFJFQ0FURUQoMTBfMTAsIDEwXzExLCA4XzAsIDlfMCwgIlBsZWFzZSB1c2Ugd2Vic2l0ZURhdGFT
dG9yZSBpbnN0ZWFkIik7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJl
c1VzZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9y
QXVkaW9QbGF5YmFjayBXS19ERVBSRUNBVEVEKFdLX01BQ19UQkEsIFdLX01BQ19UQkEsIFdLX0lP
U19UQkEsIFdLX0lPU19UQkEsICJQbGVhc2UgdXNlIG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0
aW9uRm9yUGxheWJhY2siKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVp
cmVzVXNlckFjdGlvbkZvclZpZGVvUGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25G
b3JWaWRlb1BsYXliYWNrIFdLX0RFUFJFQ0FURUQoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSwgV0tfSU9TX1RCQSwgIlBsZWFzZSB1c2UgbWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJB
Y3Rpb25Gb3JQbGF5YmFjayIpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVy
PV9zZXRXZWJzaXRlRGF0YVN0b3JlOikgX1dLV2Vic2l0ZURhdGFTdG9yZSAqX3dlYnNpdGVEYXRh
U3RvcmUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2Vic2l0ZURhdGFTdG9y
ZSIsIG1hY29zeCgxMC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5LjApKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxheWJhY2s6KSBC
T09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNrIFdLX0FQSV9ERVBSRUNBVEVE
X1dJVEhfUkVQTEFDRU1FTlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJh
Y2siLCBtYWNvc3goV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBLCBXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJB
Y3Rpb25Gb3JWaWRlb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9Q
bGF5YmFjayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5cGVzUmVx
dWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIiwgbWFjb3N4KFdLX01BQ19UQkEsIFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tQYWdpbmF0aW9uCiAgICAgX1dLUGFnaW5hdGlv
bk1vZGVSaWdodFRvTGVmdCwKICAgICBfV0tQYWdpbmF0aW9uTW9kZVRvcFRvQm90dG9tLAogICAg
IF9XS1BhZ2luYXRpb25Nb2RlQm90dG9tVG9Ub3AsCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEw
LCA4XzApOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAog
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogICAg
IF9XS0ltbWVkaWF0ZUFjdGlvbk5vbmUsCkBAIC00Niw3ICs0Niw3IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25Mb29rdXBU
ZXh0LAogICAgIF9XS0ltbWVkaWF0ZUFjdGlvbk1haWx0b0xpbmssCiAgICAgX1dLSW1tZWRpYXRl
QWN0aW9uVGVsTGluawotfSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKIEBjbGFzcyBXS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZTsKIEBjbGFzcyBfV0tGcmFtZUhhbmRsZTsKQEAgLTc0LDIxICs3NCwyMSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TVVJMICpfdW5yZWFjaGFibGVVUkw7CiAKIC0gKHZvaWQpX2xvYWRBbHRl
cm5hdGVIVE1MU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBiYXNlVVJMOihOU1VSTCAqKWJhc2VV
UkwgZm9yVW5yZWFjaGFibGVVUkw6KE5TVVJMICopdW5yZWFjaGFibGVVUkw7Ci0tIChXS05hdmln
YXRpb24gKilfbG9hZERhdGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlN
RVR5cGUgY2hhcmFjdGVyRW5jb2RpbmdOYW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVuY29kaW5n
TmFtZSBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgdXNlckRhdGE6KGlkKXVzZXJEYXRhIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKFdLTmF2aWdhdGlvbiAqKV9sb2Fk
RGF0YTooTlNEYXRhICopZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0
ZXJFbmNvZGluZ05hbWU6KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6
KE5TVVJMICopYmFzZVVSTCB1c2VyRGF0YTooaWQpdXNlckRhdGEgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNBcnJheSAqX2NlcnRpZmljYXRlQ2hhaW4gV0tfREVQUkVDQVRFRCgx
MF8xMCwgMTBfMTEsIDhfMCwgOV8wLCAidXNlIC1jZXJ0aWZpY2F0ZUNoYWluIik7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkgKl9jZXJ0aWZpY2F0ZUNoYWluIFdLX0FQ
SV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImNlcnRpZmljYXRlQ2hhaW4iLCBtYWNvc3go
MTAuMTAsIDEwLjExKSwgaW9zKDguMCwgOS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TVVJMICpfY29tbWl0dGVkVVJMOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU1N0cmluZyAqX01JTUVUeXBlOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU1N0cmluZyAqX3VzZXJBZ2VudCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpfdXNlckFnZW50IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJvcGVydHkgKGNvcHksIHNldHRl
cj1fc2V0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50OikgTlNTdHJpbmcgKl9hcHBsaWNhdGlv
bk5hbWVGb3JVc2VyQWdlbnQ7CiBAcHJvcGVydHkgKGNvcHksIHNldHRlcj1fc2V0Q3VzdG9tVXNl
ckFnZW50OikgTlNTdHJpbmcgKl9jdXN0b21Vc2VyQWdlbnQ7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFVzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQ6KSBCT09MIF91c2Vy
Q29udGVudEV4dGVuc2lvbnNFbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFVzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQ6
KSBCT09MIF91c2VyQ29udGVudEV4dGVuc2lvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IHBpZF90IF93ZWJQcm9jZXNzSWRlbnRpZmllcjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIGdl
dHRlcj1faXNFZGl0YWJsZSwgc2V0dGVyPV9zZXRFZGl0YWJsZTopIEJPT0wgX2VkaXRhYmxlIFdL
X0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lz
RWRpdGFibGUsIHNldHRlcj1fc2V0RWRpdGFibGU6KSBCT09MIF9lZGl0YWJsZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLy8gRklYTUU6IFJlbW92ZSB0aGVz
ZSBvbmNlIG5vYm9keSBpcyB1c2luZyB0aGVtLgogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU0RhdGEgKl9zZXNzaW9uU3RhdGVEYXRhOwpAQCAtOTgsNyArOTgsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAtIChXS05hdmlnYXRpb24gKilfcmVz
dG9yZVNlc3Npb25TdGF0ZTooX1dLU2Vzc2lvblN0YXRlICopc2Vzc2lvblN0YXRlIGFuZE5hdmln
YXRlOihCT09MKW5hdmlnYXRlOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRB
bGxvd3NSZW1vdGVJbnNwZWN0aW9uOikgQk9PTCBfYWxsb3dzUmVtb3RlSW5zcGVjdGlvbjsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlbW90ZUluc3BlY3Rpb25OYW1l
T3ZlcnJpZGU6KSBOU1N0cmluZyAqX3JlbW90ZUluc3BlY3Rpb25OYW1lT3ZlcnJpZGUgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHksIHNldHRlcj1fc2V0UmVtb3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZTopIE5TU3RyaW5nICpf
cmVtb3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0QWRkc1Zpc2l0ZWRMaW5rczopIEJPT0wgX2FkZHNWaXNpdGVkTGlua3M7CiAKQEAgLTE1
Miw5ICsxNTIsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAK
IC8vIERlcHJlY2F0ZWQ6IFVzZSBbX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVt
TGF5b3V0U2l6ZTptYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpdIGluc3RlYWQuCiAvLyBU
aGlzIGZ1bmN0aW9uIGlzIGtlcHQgZm9yIGJpbmFyeSBjb21wYXRpYmlsaXR5IHdpdGggaU9TIDgu
MCwgaXQgY2FuIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIGJpbmNvbXBhdCB3aW5kb3cuCi0tICh2b2lk
KV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSlt
aW5pbXVtTGF5b3V0U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSTooQ0dTaXplKW1p
bmltdW1MYXlvdXRTaXplRm9yTWluaW1hbFVJIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
OihDR1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgV0tfREVQUkVDQVRFRChOQSwg
TkEsIDhfMCwgOV8wLCAidXNlIC1fb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1M
YXlvdXRTaXplOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIpOworLSAodm9pZClfb3Zl
cnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11
bUxheW91dFNpemUgbWluaW11bUxheW91dFNpemVGb3JNaW5pbWFsVUk6KENHU2l6ZSltaW5pbXVt
TGF5b3V0U2l6ZUZvck1pbmltYWxVSSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dT
aXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIi1fb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRT
aXplOm1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIsIGlvcyg4LjAsIDkuMCkpOwogCi0t
ICh2b2lkKV9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENH
U2l6ZSltaW5pbXVtTGF5b3V0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dT
aXplKW1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsK
Ky0gKHZvaWQpX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZToo
Q0dTaXplKW1pbmltdW1MYXlvdXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihD
R1NpemUpbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgV0tfQVBJX0FWQUlMQUJMRShpb3Mo
OV8wKSk7CiAKIC0gKFVJVmlldyAqKV92aWV3Rm9yRmluZFVJOwogCkBAIC0xNjUsMTEgKzE2NSwx
MSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAKIC8vIFB1dHMg
dGhlIHZpZXcgaW50byBhIHN0YXRlIHdoZXJlIGJlaW5nIHRha2VuIG91dCBvZiB0aGUgdmlldyBo
aWVyYXJjaHkgYW5kIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXIKIC8vIHdpbGwgbm90IGNvdW50
IGFzIGJlY29taW5nIGluYWN0aXZlIGFuZCB1bmZvY3VzZWQuIFRoZSByZXR1cm5lZCBibG9jayBt
dXN0IGJlIGNhbGxlZCB0byBleGl0IHRoZSBzdGF0ZS4KLS0gKHZvaWQgKF4pKHZvaWQpKV9yZXRh
aW5BY3RpdmVGb2N1c2VkU3RhdGUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAodm9pZCAoXiko
dm9pZCkpX3JldGFpbkFjdGl2ZUZvY3VzZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzAp
KTsKIAotLSAodm9pZClfYmVjb21lRmlyc3RSZXNwb25kZXJXaXRoU2VsZWN0aW9uTW92aW5nRm9y
d2FyZDooQk9PTClzZWxlY3RpbmdGb3J3YXJkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShC
T09MIGRpZEJlY29tZUZpcnN0UmVzcG9uZGVyKSljb21wbGV0aW9uSGFuZGxlciBXS19BVkFJTEFC
TEUoTkEsIDlfMCk7CistICh2b2lkKV9iZWNvbWVGaXJzdFJlc3BvbmRlcldpdGhTZWxlY3Rpb25N
b3ZpbmdGb3J3YXJkOihCT09MKXNlbGVjdGluZ0ZvcndhcmQgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wgZGlkQmVjb21lRmlyc3RSZXNwb25kZXIpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCi0tIChpZClfc25hcHNob3RMYXllckNvbnRlbnRz
Rm9yQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBXS19B
VkFJTEFCTEUoTkEsIDlfMCk7CistIChpZClfc25hcHNob3RMYXllckNvbnRlbnRzRm9yQmFja0Zv
cndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBXS19BUElfQVZBSUxB
QkxFKGlvcyg5XzApKTsKIC0gKE5TQXJyYXkgKilfZGF0YURldGVjdGlvblJlc3VsdHM7CiAKICNl
bHNlCkBAIC0xODAsNyArMTgwLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1t
ZWRpYXRlQQogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXV0b21hdGljYWxseUFk
anVzdHNDb250ZW50SW5zZXRzOikgQk9PTCBfYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5z
ZXRzOwogCiAvLyBEZWZhdWx0IHZhbHVlIGlzIDAuIEEgdmFsdWUgb2YgMCBtZWFucyB0aGUgd2lu
ZG93J3MgYmFja2luZyBzY2FsZSBmYWN0b3Igd2lsbCBiZSB1c2VkIGFuZCBhdXRvbWF0aWNhbGx5
IHVwZGF0ZSB3aGVuIHRoZSB3aW5kb3cgbW92ZXMgc2NyZWVucy4KLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KSBDR0Zsb2F0IF9vdmVy
cmlkZURldmljZVNjYWxlRmFjdG9yIFdLX0FWQUlMQUJMRSgxMF8xMSwgTkEpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxv
YXQgX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2luZG93T2NjbHVzaW9u
RGV0ZWN0aW9uRW5hYmxlZDopIEJPT0wgX3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ7
CiAKQEAgLTE4OCwxOCArMTg4LDE4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0lt
bWVkaWF0ZUEKIC8vIGRvIHNvbWV0aGluZyBjdXN0b20sIHJldHVybiBhbiBvYmplY3QgdGhhdCBj
b25mb3JtcyB0byB0aGUgTlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyIHByb3Rv
Y29sLgogLSAoaWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0
UmVzdWx0OihfV0tIaXRUZXN0UmVzdWx0ICopaGl0VGVzdFJlc3VsdCB3aXRoVHlwZTooX1dLSW1t
ZWRpYXRlQWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihpZDxOU1NlY3VyZUNvZGluZz4pdXNlckRh
dGE7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0
aDopIENHRmxvYXQgX21pbmltdW1MYXlvdXRXaWR0aCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
TkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWluaW11bUxheW91dFdpZHRo
OikgQ0dGbG9hdCBfbWluaW11bUxheW91dFdpZHRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpKTsKIAogLy8gV2hlbiB1c2luZyBfbWluaW11bUxheW91dFdpZHRoLCB0aGUgd2Vi
IGNvbnRlbnQgd2lsbCBsYXkgb3V0IHRvIHRoZSBpbnRyaW5zaWMgaGVpZ2h0CiAvLyBvZiB0aGUg
Y29udGVudDsgdXNlIHRoaXMgcHJvcGVydHkgdG8gZm9yY2UgaXQgdG8gbGF5IG91dCB0byB0aGUg
aGVpZ2h0IG9mIHRoZSB2aWV3IGluc3RlYWQuCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRTaG91bGRFeHBhbmRDb250ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dDopIEJPT0wg
X3Nob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0IFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBOQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91
bGRFeHBhbmRDb250ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dDopIEJPT0wgX3Nob3VsZEV4
cGFuZENvbnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKIAogLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlv
bldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvOwotLSAoTlNQcmludE9wZXJh
dGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJ
bmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlIFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVy
YXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5mbyBmb3JGcmFtZTooX1dL
RnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogI2VuZGlmCiAKLS0gKFdLTmF2aWdhdGlvbiAqKV9y
ZWxvYWRXaXRob3V0Q29udGVudEJsb2NrZXJzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKKy0gKFdLTmF2aWdhdGlvbiAqKV9yZWxvYWRXaXRob3V0Q29udGVudEJsb2NrZXJz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAtICh2b2lkKV9raWxsV2ViQ29udGVudFByb2Nlc3NBbmRSZXNldFN0YXRlOwogCkBAIC0yMjAs
MjYgKzIyMCwyNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0Wm9vbUZhY3RvcjopIGRvdWJsZSBf
dGV4dFpvb21GYWN0b3I7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQYWdlWm9v
bUZhY3RvcjopIGRvdWJsZSBfcGFnZVpvb21GYWN0b3I7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCB3ZWFrLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU6KSBpZCA8X1dLRGlh
Z25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZT4gX2RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUgV0tfQVZB
SUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1f
c2V0RGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZTopIGlkIDxfV0tEaWFnbm9zdGljTG9nZ2luZ0Rl
bGVnYXRlPiBfZGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9
X3NldEZpbmREZWxlZ2F0ZTopIGlkIDxfV0tGaW5kRGVsZWdhdGU+IF9maW5kRGVsZWdhdGU7CiAt
ICh2b2lkKV9maW5kU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBvcHRpb25zOihfV0tGaW5kT3B0
aW9ucylvcHRpb25zIG1heENvdW50OihOU1VJbnRlZ2VyKW1heENvdW50OwogLSAodm9pZClfY291
bnRTdHJpbmdNYXRjaGVzOihOU1N0cmluZyAqKXN0cmluZyBvcHRpb25zOihfV0tGaW5kT3B0aW9u
cylvcHRpb25zIG1heENvdW50OihOU1VJbnRlZ2VyKW1heENvdW50OwogLSAodm9pZClfaGlkZUZp
bmRVSTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0Rm9ybURlbGVn
YXRlOikgaWQgPF9XS0Zvcm1EZWxlZ2F0ZT4gX2Zvcm1EZWxlZ2F0ZSBXS19ERVBSRUNBVEVEKDEw
XzEwLCBXS19NQUNfVEJBLCA4XzAsIFdLX0lPU19UQkEsICJ1c2UgX2lucHV0RGVsZWdhdGUiKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldElucHV0RGVsZWdhdGU6KSBp
ZCA8X1dLSW5wdXREZWxlZ2F0ZT4gX2lucHV0RGVsZWdhdGUgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0
Rm9ybURlbGVnYXRlOikgaWQgPF9XS0Zvcm1EZWxlZ2F0ZT4gX2Zvcm1EZWxlZ2F0ZSBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfaW5wdXREZWxlZ2F0ZSIsIG1hY29zeCgxMC4x
MCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCB3ZWFrLCBzZXR0ZXI9X3NldElucHV0RGVsZWdhdGU6KSBpZCA8X1dLSW5wdXREZWxlZ2F0
ZT4gX2lucHV0RGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVy
PV9pc0Rpc3BsYXlpbmdTdGFuZGFsb25lSW1hZ2VEb2N1bWVudCkgQk9PTCBfZGlzcGxheWluZ1N0
YW5kYWxvbmVJbWFnZURvY3VtZW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBn
ZXR0ZXI9X2lzRGlzcGxheWluZ1N0YW5kYWxvbmVNZWRpYURvY3VtZW50KSBCT09MIF9kaXNwbGF5
aW5nU3RhbmRhbG9uZU1lZGlhRG9jdW1lbnQ7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFNjcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkOikgQk9PTCBfc2Ny
b2xsUGVyZm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpfc2Nyb2xsUGVy
Zm9ybWFuY2VEYXRhIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNjcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkOikg
Qk9PTCBfc2Nyb2xsUGVyZm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIE5TQXJyYXkgKl9zY3JvbGxQZXJmb3JtYW5jZURhdGEgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLS0gKHZvaWQpX3NhdmVCYWNrRm9yd2FyZFNuYXBz
aG90Rm9ySXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBXS19BVkFJTEFCTEUoMTBf
MTEsIDlfMCk7CistICh2b2lkKV9zYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW06KFdLQmFj
a0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2FsbG93c01lZGlhRG9j
dW1lbnRJbmxpbmVQbGF5YmFjaywgc2V0dGVyPV9zZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5l
UGxheWJhY2s6KSBCT09MIF9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s7CiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfd2ViUHJvY2Vzc0lzUmVzcG9uc2l2
ZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgX3dlYlByb2Nlc3NJc1Jlc3BvbnNpdmUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApAQCAt
MjUxLDIxICsyNTEsMjEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRl
QQogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLVGVzdGluZykKIAogI2lmIFRBUkdFVF9PU19JUEhP
TkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IF9jb250ZW50VmlzaWJs
ZVJlY3QgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAoQ0dQb2ludClf
Y29udmVydFBvaW50RnJvbUNvbnRlbnRzVG9WaWV3OihDR1BvaW50KXBvaW50IFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKENHUG9pbnQpX2NvbnZlcnRQb2ludEZyb21W
aWV3VG9Db250ZW50czooQ0dQb2ludClwb2ludCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBfY29udGVu
dFZpc2libGVSZWN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAoQ0dQb2ludClfY29udmVydFBvaW50RnJvbUNvbnRlbnRzVG9WaWV3OihD
R1BvaW50KXBvaW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworLSAoQ0dQb2ludClfY29udmVydFBvaW50RnJvbVZpZXdUb0NvbnRlbnRzOihD
R1BvaW50KXBvaW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCi0tICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dCBXS19BVkFJTEFC
TEUoTkEsIFdLX0lPU19UQkEpOwotLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhclByZXZpb3Vz
IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5
QmFyTmV4dCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKWtleWJv
YXJkQWNjZXNzb3J5QmFyUHJldmlvdXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkp
OwogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBmb3JjZUlQYWRTdHlsZVpvb21PbklucHV0
Rm9jdXMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGZvcmNlSVBhZFN0eWxlWm9vbU9uSW5wdXRGb2N1cyBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CiAjZW5kaWYKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNN
YW5hZ2VyIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKICNlbmRpZgogCi0tICh2b2lkKV9kb0Fm
dGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAodm9pZClfZG9BZnRlck5leHRQ
cmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29y
ZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVJlY29yZC5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsMzEgKzMyLDMxIEBACiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiAvKiEgQGNvbnN0
YW50IFdLV2Vic2l0ZURhdGFUeXBlRGlza0NhY2hlIE9uLWRpc2sgY2FjaGVzLiAqLwotV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUgV0tfQVZBSUxB
QkxFKDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0
YVR5cGVEaXNrQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVNZW1vcnlDYWNoZSBJbi1tZW1vcnkg
Y2FjaGVzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVN
ZW1vcnlDYWNoZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcg
KiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZU1lbW9yeUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBl
T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUgSFRNTCBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbiBj
YWNoZXMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZU9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0
aW9uQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8q
ISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVDb29raWVzIENvb2tpZXMuICovCi1XS19FWFRF
Uk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUNvb2tpZXMgV0tfQVZBSUxBQkxF
KDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5
cGVDb29raWVzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAv
KiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2UgSFRNTCBzZXNzaW9u
IHN0b3JhZ2UuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlw
ZVNlc3Npb25TdG9yYWdlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2UgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRl
RGF0YVR5cGVMb2NhbFN0b3JhZ2UgSFRNTCBsb2NhbCBzdG9yYWdlLiAqLwotV0tfRVhURVJOIE5T
U3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVMb2NhbFN0b3JhZ2UgV0tfQVZBSUxBQkxF
KDEwXzExLCA5XzApOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5
cGVMb2NhbFN0b3JhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7
CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgV2ViU1FM
IGRhdGFiYXNlcy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFU
eXBlV2ViU1FMRGF0YWJhc2VzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vi
c2l0ZURhdGFUeXBlSW5kZXhlZERCRGF0YWJhc2VzIEluZGV4ZWREQiBkYXRhYmFzZXMuICovCi1X
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFi
YXNlcyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25z
dCBXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogLyohIEEgV0tXZWJzaXRlRGF0YVJlY29yZCByZXBy
ZXNlbnRzIHdlYnNpdGUgZGF0YSwgZ3JvdXBlZCBieSBkb21haW4gbmFtZSB1c2luZyB0aGUgcHVi
bGljIHN1ZmZpeCBsaXN0LiAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNlIFdLV2Vi
c2l0ZURhdGFSZWNvcmQgOiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IFRoZSBkaXNwbGF5IG5h
bWUgZm9yIHRoZSBkYXRhIHJlY29yZC4gVGhpcyBpcyB1c3VhbGx5IHRoZSBkb21haW4gbmFtZS4g
Ki8KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVJlY29yZFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc4MSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29y
ZFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDE0IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiAKIEBjbGFzcyBfV0tXZWJzaXRlRGF0YVNpemU7CiAKLVdLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUhTVFNDYWNoZSBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5
cGVNZWRpYUtleXMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9X
S1dlYnNpdGVEYXRhVHlwZUhTVFNDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlw
ZU1lZGlhS2V5cyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK1dL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVj
ZW50U2VhcmNoZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQotV0tfRVhURVJO
IE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YSBXS19BVkFJTEFC
TEUoMTBfMTEsIE5BKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRh
VHlwZVBsdWdJbkRhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpKTsKICNlbmRpZgog
CiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFSZWNvcmQgKFdLUHJpdmF0ZSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
NyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogIG1ha2UgdXNlIG9mLiBUaGlzIGluY2x1ZGVz
IGNvb2tpZXMsIGRpc2sgYW5kIG1lbW9yeSBjYWNoZXMsIGFuZCBwZXJzaXN0ZW50IGRhdGEgc3Vj
aCBhcyBXZWJTUUwsCiAgSW5kZXhlZERCIGRhdGFiYXNlcywgYW5kIGxvY2FsIHN0b3JhZ2UuCiAg
Ki8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMSwgOV8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMSksIGlvcyg5LjApKQogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhU3RvcmUgOiBO
U09iamVjdCA8TlNDb2Rpbmc+CiAKIC8qIEBhYnN0cmFjdCBSZXR1cm5zIHRoZSBkZWZhdWx0IGRh
dGEgc3RvcmUuICovCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAkocmV2aXNpb24g
MjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwxMyBAQCBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dL
V2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVG
ZXRjaE9wdGlvbkNvbXB1dGVTaXplcyA9IDEgPDwgMCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFTdG9yZSAo
V0tQcml2YXRlKQogCiAtICh2b2lkKV9mZXRjaERhdGFSZWNvcmRzT2ZUeXBlczooTlNTZXQ8TlNT
dHJpbmcgKj4gKilkYXRhVHlwZXMgd2l0aE9wdGlvbnM6KF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRj
aE9wdGlvbnMpb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxXS1dl
YnNpdGVEYXRhUmVjb3JkICo+ICopKWNvbXBsZXRpb25IYW5kbGVyOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDopIEJPT0wg
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkOikgQk9PTCBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
IEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRv
d0ZlYXR1cmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw3ICszMyw3IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NM
QVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dpbmRvd0ZlYXR1cmVzIDogTlNPYmplY3QKIAog
LyohIEBhYnN0cmFjdCBCT09MLiBXaGV0aGVyIHRoZSBtZW51IGJhciBzaG91bGQgYmUgdmlzaWJs
ZS4gbmlsIGlmIG1lbnUgYmFyIHZpc2liaWxpdHkgd2FzIG5vdCBzcGVjaWZpZWQuCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mby5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDE3ICszNiwxNyBAQAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
QWN0aXZhdGVkRWxlbWVudFR5cGUpIHsKICAgICBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmss
CiAgICAgX1dLQWN0aXZhdGVkRWxlbWVudFR5cGVJbWFnZSwKLSAgICBfV0tBY3RpdmF0ZWRFbGVt
ZW50VHlwZUF0dGFjaG1lbnQgV0tfRU5VTV9BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSksCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworICAgIF9XS0FjdGl2YXRlZEVs
ZW1lbnRUeXBlQXR0YWNobWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKSwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSk7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNV
UkwgKlVSTDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnRpdGxl
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tBY3RpdmF0ZWRFbGVtZW50VHlw
ZSB0eXBlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgYm91bmRpbmdS
ZWN0OwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqSUQgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBOU1N0cmluZyAqSUQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5LCBjb3B5KSBVSUltYWdlICppbWFnZTsKICNlbHNlCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0
aW9uU2Vzc2lvbi5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDcgKzMzLDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS0F1dG9tYXRpb25TZXNz
aW9uIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpz
ZXNzaW9uSWRlbnRpZmllcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCShyZXZp
c2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Nv
bnRleHRNZW51RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAog
CiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgTkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKQogQGludGVyZmFj
ZSBfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQGVu
ZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGlj
TG9nZ2luZ0RlbGVnYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgJKHJldmlzaW9uIDIwMjc4
MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xv
Z2dpbmdEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS0RpYWdub3N0aWMKICAgICBfV0tEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdFBhc3MsCiAgICAgX1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLAogICAgIF9X
S0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0Tm9vcCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEs
IDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiBA
cHJvdG9jb2wgX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9u
YWwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rv
d25sb2FkLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAog
CiBAY2xhc3MgV0tXZWJWaWV3OwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dL
RG93bmxvYWQgOiBOU09iamVjdAogCiAtICh2b2lkKWNhbmNlbDsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCShy
ZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0VsZW1lbnRBY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTMgKzQxLDEzIEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VsZW1lbnRBY3QKICAgICBfV0tFbGVtZW50QWN0aW9u
VHlwZVNhdmVJbWFnZSwKICNpZiAhZGVmaW5lZChUQVJHRVRfT1NfSU9TKSB8fCBUQVJHRVRfT1Nf
SU9TCiAgICAgX1dLRWxlbWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0LAotICAgIF9XS0Vs
ZW1lbnRBY3Rpb25UeXBlT3BlbkluRGVmYXVsdEJyb3dzZXIgV0tfRU5VTV9BVkFJTEFCTEUoTkEs
IDlfMCksCi0gICAgX1dLRWxlbWVudEFjdGlvblR5cGVPcGVuSW5FeHRlcm5hbEFwcGxpY2F0aW9u
IFdLX0VOVU1fQVZBSUxBQkxFKE5BLCA5XzApLAorICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3Bl
bkluRGVmYXVsdEJyb3dzZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSksCisgICAgX1dLRWxl
bWVudEFjdGlvblR5cGVPcGVuSW5FeHRlcm5hbEFwcGxpY2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDlfMCkpLAogI2VuZGlmCi0gICAgX1dLRWxlbWVudEFjdGlvblR5cGVTaGFyZSBXS19FTlVN
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSksCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4
XzApOworICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlU2hhcmUgV0tfQVBJX0FWQUlMQUJMRShpb3Mo
V0tfSU9TX1RCQSkpLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjAp
KTsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS0VsZW1lbnRBY3Rpb24gOiBO
U09iamVjdAogCiArIChpbnN0YW5jZXR5cGUpZWxlbWVudEFjdGlvbldpdGhUeXBlOihfV0tFbGVt
ZW50QWN0aW9uVHlwZSl0eXBlOwpAQCAtNTUsNyArNTUsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKIAogKyAoaW5zdGFuY2V0eXBlKWVsZW1lbnRBY3Rpb25XaXRoVGl0bGU6KE5T
U3RyaW5nICopdGl0bGUgYWN0aW9uSGFuZGxlcjooV0tFbGVtZW50QWN0aW9uSGFuZGxlciloYW5k
bGVyOwogCi0tICh2b2lkKXJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxl
bWVudEluZm8gKilpbmZvIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKKy0gKHZvaWQpcnVuQWN0aW9u
V2l0aEVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWluZm8gV0tfQVBJX0FW
QUlMQUJMRShpb3MoOV8wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
RWxlbWVudEFjdGlvblR5cGUgdHlwZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNTdHJpbmcqIHRpdGxlOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmgJKHJldmlzaW9uIDIw
Mjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVu
dGFsRmVhdHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSA6IE5TT2Jq
ZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmtl
eTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlv
bnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0ZpbmRPcHRpb25zLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiAr
NDEsNiBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLRmluZE9wCiAgICAgX1dL
RmluZE9wdGlvbnNJcnJlbGV2YW50Rm9ySW5jcmVtZW50YWxSZXN1bHRzID0gX1dLRmluZE9wdGlv
bnNTaG93T3ZlcmxheSB8IF9XS0ZpbmRPcHRpb25zU2hvd0ZpbmRJbmRpY2F0b3IgfCBfV0tGaW5k
T3B0aW9uc1Nob3dIaWdobGlnaHQgfCBfV0tGaW5kT3B0aW9uc0RldGVybWluZU1hdGNoSW5kZXgs
CiAgICAgX1dLRmluZE9wdGlvbnNJcnJlbGV2YW50Rm9yQmF0Y2hSZXN1bHRzID0gX1dLRmluZE9w
dGlvbnNCYWNrd2FyZHMgfCBfV0tGaW5kT3B0aW9uc1dyYXBBcm91bmQgfCBfV0tGaW5kT3B0aW9u
c0lycmVsZXZhbnRGb3JJbmNyZW1lbnRhbFJlc3VsdHMKIAotfSBXS19FTlVNX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7
CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tG
b3JtSW5wdXRTZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9uLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiwxNCArMzYsMTQgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBnZXR0ZXI9aXNWYWxpZCkgQk9PTCB2YWxpZDsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqdXNlck9iamVjdDsKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4g
Zm9jdXNlZEVsZW1lbnRJbmZvIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5m
bz4gZm9jdXNlZEVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICphY2Nlc3NvcnlWaWV3Q3VzdG9tQnV0dG9uVGl0bGU7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSVZpZXcgKmN1c3RvbUlucHV0VmlldyBX
S19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlvbiAqPiAqc3VnZ2VzdGlvbnMgV0tfQVZBSUxBQkxFKE5B
LCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFjY2Vzc29yeVZpZXdT
aG91bGROb3RTaG93IFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgTlNTdHJpbmcgKnRleHRDb250ZW50VHlwZSBXS19BVkFJTEFCTEUoTkEs
IFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3ICpjdXN0
b21JbnB1dFZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlvbiAqPiAqc3VnZ2VzdGlv
bnMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgYWNjZXNzb3J5Vmlld1Nob3VsZE5vdFNob3cgV0tfQVBJX0FWQUlMQUJMRShpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICp0ZXh0
Q29udGVudFR5cGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2VuZGlmCiAK
IEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5wdXRE
ZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5wdXREZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lucHV0RGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNyArNDYsNyBAQAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBh
Y2Nlc3NvcnlWaWV3Q3VzdG9tQnV0dG9uVGFwcGVkSW5Gb3JtSW5wdXRTZXNzaW9uOihpZCA8X1dL
Rm9ybUlucHV0U2Vzc2lvbj4paW5wdXRTZXNzaW9uOwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBoYXNTdWdnZXN0aW9uc0ZvckN1cnJlbnRTdHJpbmdJbklucHV0U2Vzc2lv
bjooaWQgPF9XS0Zvcm1JbnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbjsKIC0gKE5TQXJyYXkgKilf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdWdnZXN0aW9uc0ZvclN0cmluZzooTlNTdHJp
bmcgKilzdHJpbmcgaW5JbnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9uPilpbnB1
dFNlc3Npb247Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluc2VydFRl
eHRTdWdnZXN0aW9uOihVSVRleHRTdWdnZXN0aW9uICopc3VnZ2VzdGlvbiBpbklucHV0U2Vzc2lv
bjooaWQgPF9XS0Zvcm1JbnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbiBXS19BVkFJTEFCTEUoTkEs
IFdLX0lPU19UQkEpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbnNl
cnRUZXh0U3VnZ2VzdGlvbjooVUlUZXh0U3VnZ2VzdGlvbiAqKXN1Z2dlc3Rpb24gaW5JbnB1dFNl
c3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9uPilpbnB1dFNlc3Npb24gV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2VuZGlmCiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTGF5b3V0TW9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLTGF5b3V0TW9kZS5oCShyZXZpc2lv
biAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xheW91
dE1vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNiBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNVSW50ZWdlciwgX1dLTGF5b3V0TW9kCiAgICAgLy8gTGF5IG91dCB0aGUgdmlldyBhdCBhIGhl
dXJpc3RpY2FsbHktZGV0ZXJtaW5lZCBzaXplIGJhc2VkIG9uIHRoZSBtaW5pbXVtIHNpemUgb2Yg
dGhlIGRvY3VtZW50LgogICAgIF9XS0xheW91dE1vZGVEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1p
bmltdW1Eb2N1bWVudFNpemUgPSA0LAogCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzAp
OworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogI2VuZGlm
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS092ZXJsYXlTY3Jv
bGxiYXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDQgKzM0LDQgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUlu
dGVnZXIsIF9XS092ZXJsYXlTYwogICAgIC8vIGhldXJpc3RpYyB0byBjaG9vc2UgYW4gYXBwcm9w
cmlhdGUgY29sb3IuCiAgICAgX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlQXV0b21hdGljCiAKLX0g
V0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5o
CShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNSAr
MjgsMTUgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5n
PgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNVUkwgKmluamVjdGVkQnVuZGxlVVJM
OwogQHByb3BlcnR5IChub25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByb2Nlc3NDb3VudDsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgZGlza0NhY2hlU2l6ZU92ZXJyaWRlIFdL
X0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIg
ZGlza0NhY2hlU2l6ZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXkgKmNhY2hlUGFydGl0
aW9uZWRVUkxTY2hlbWVzOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNT
dHJpbmcgKj4gKmFsd2F5c1JldmFsaWRhdGVkVVJMU2NoZW1lcyBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkaXNrQ2FjaGVT
cGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PE5TU3RyaW5nICo+
ICphbHdheXNSZXZhbGlkYXRlZFVSTFNjaGVtZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBk
aXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLU2Vzc2lvblN0YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tTZXNzaW9uU3RhdGUu
aAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tTZXNzaW9uU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEw
XzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBA
aW50ZXJmYWNlIF9XS1Nlc3Npb25TdGF0ZSA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNldHlwZSlp
bml0V2l0aERhdGE6KE5TRGF0YSAqKWRhdGE7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcuaAkocmV2aXNpb24gMjAy
NzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxW
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogQGNsYXNzIFdLVmlldzsK
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1RodW1ibmFpbFZpZXcgOiBOU1Zp
ZXcKIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBmcm9tV0tW
aWV3OihXS1ZpZXcgKil3a1ZpZXc7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3Rv
cmUuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDcgKzI5LDcgQEAKIAogQGNsYXNzIF9XS1VzZXJDb250ZW50RmlsdGVyOwogCi1XS19DTEFTU19B
VkFJTEFCTEUoMTBfMTEsIDlfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSkKIEBpbnRlcmZhY2UgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSA6IE5TT2Jq
ZWN0CiAKICsgKGluc3RhbmNldHlwZSlkZWZhdWx0U3RvcmU7CkBAIC00MSwxMyArNDEsMTMgQEAg
V0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCiAKIEBlbmQKIAotV0tfRVhURVJOIE5TU3Ry
aW5nICogY29uc3QgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25zRG9tYWluIFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uc0RvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dL
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yQ29kZSkgewogICAgIF9XS1VzZXJDb250ZW50
RXh0ZW5zaW9uU3RvcmVFcnJvckxvb2t1cEZhaWxlZCA9IDEsCiAgICAgX1dLVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZUVycm9yVmVyc2lvbk1pc21hdGNoLAogICAgIF9XS1VzZXJDb250ZW50RXh0
ZW5zaW9uU3RvcmVFcnJvckNvbXBpbGVGYWlsZWQsCiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZUVycm9yUmVtb3ZlRmFpbGVkLAotfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRl
bnRGaWx0ZXIuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3
ICsyNyw3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTEsIDlfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkKIEBp
bnRlcmZhY2UgX1dLVXNlckNvbnRlbnRGaWx0ZXIgOiBOU09iamVjdAogCiBAZW5kCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50V29ybGQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJD
b250ZW50V29ybGQuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudFdvcmxkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDcgKzI5LDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50V29y
bGQgOiBOU09iamVjdAogCiArIChfV0tVc2VyQ29udGVudFdvcmxkICopd29ybGRXaXRoTmFtZToo
TlNTdHJpbmcgKiluYW1lOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tVc2VyU3R5bGVTaGVldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hlZXQuaAkocmV2aXNpb24gMjAyNzgxKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IEBjbGFzcyBfV0tVc2VyQ29udGVudFdvcmxkOwogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgX1dLVXNlclN0eWxlU2hlZXQgOiBOU09iamVj
dCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5T
U3RyaW5nICpzb3VyY2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAkocmV2aXNpb24gMjAy
NzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlu
a1Byb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIFdLX0FQ
SV9FTkFCTEVECiAKLVdLX0NMQVNTX0RFUFJFQ0FURUQoMTBfMTAsIFdLX01BQ19UQkEsIDhfMCwg
V0tfSU9TX1RCQSwgIlBsZWFzZSB1c2UgX1dLVmlzaXRlZExpbmtTdG9yZSBpbnN0ZWFkIikKK1dL
X0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLVmlzaXRlZExpbmtTdG9yZSIs
IG1hY29zeCgxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQogQGludGVy
ZmFjZSBfV0tWaXNpdGVkTGlua1Byb3ZpZGVyIDogX1dLVmlzaXRlZExpbmtTdG9yZQogQGVuZAog
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5r
U3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Zpc2l0ZWRMaW5rU3RvcmUuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLVdLX0NMQVNTX0FW
QUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKQogQGludGVyZmFjZSBfV0tWaXNpdGVkTGlua1N0b3JlIDogTlNPYmplY3QKIAogLSAo
dm9pZClhZGRWaXNpdGVkTGlua1dpdGhVUkw6KE5TVVJMICopVVJMOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVJlY29yZC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFS
ZWNvcmQuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJzaXRlRGF0YVJlY29yZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhUmVjb3JkLmg+CiAKLVdLX0NM
QVNTX0RFUFJFQ0FURUQoMTBfMTEsIDEwXzExLCA5XzAsIDlfMCwgIlBsZWFzZSB1c2UgV0tXZWJz
aXRlRGF0YVJlY29yZCBpbnN0ZWFkIikKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgiV0tXZWJzaXRlRGF0YVJlY29yZCIsIG1hY29zeCgxMC4xMSwgMTAuMTEpLCBpb3MoOS4w
LCA5LjApKQogQGludGVyZmFjZSBfV0tXZWJzaXRlRGF0YVJlY29yZCA6IFdLV2Vic2l0ZURhdGFS
ZWNvcmQKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJzaXRlRGF0YVNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFj
ZSBfV0tXZWJzaXRlRGF0YVNpemUgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbFNpemU7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmUuaAkocmV2aXNpb24gMjAyNzgxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEwICszMSwx
MCBAQAogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tXZWJzaXRlRGF0YVR5cGVz
KSB7CiAgICAgV0tXZWJzaXRlRGF0YVR5cGVBbGwgPSBOU1VJbnRlZ2VyTWF4LAotfSBXS19FTlVN
X0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEp
LCBpb3MoOS4wKSk7CiAKIAotV0tfQ0xBU1NfREVQUkVDQVRFRCgxMF8xMCwgMTBfMTEsIDhfMCwg
OV8wLCAiUGxlYXNlIHVzZSBXS1dlYnNpdGVEYXRhU3RvcmUgaW5zdGVhZCIpCitXS19DTEFTU19E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vic2l0ZURhdGFTdG9yZSIsIG1hY29zeCgx
MC4xMCwgMTAuMTEpLCBpb3MoOC4wLCA5LjApKQogQGludGVyZmFjZSBfV0tXZWJzaXRlRGF0YVN0
b3JlIDogTlNPYmplY3QKIAogKyAoX1dLV2Vic2l0ZURhdGFTdG9yZSAqKWRlZmF1bHREYXRhU3Rv
cmU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDcgKzQ0LDcgQEAKIAogLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBleHBvc2VkIGluIHRoZSBVSSBw
cm9jZXNzIHZpYSB0aGUgdXNlck9iamVjdCBwcm9wZXJ0eSBvZiB0aGUgX1dLRm9ybUlucHV0U2Vz
c2lvbiBvYmplY3QuCiAtIChOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopX3dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgd2lsbEJlZ2luSW5wdXRTZXNzaW9uRm9yRWxl
bWVudDooV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGUgaW5GcmFtZTooV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWUgKilmcmFtZTsKLS0gKE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4g
Kilfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlciB3aWxsQmVnaW5JbnB1
dFNlc3Npb25Gb3JFbGVtZW50OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopbm9kZSBp
bkZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWZyYW1lIHVzZXJJc0ludGVyYWN0aW5n
OihCT09MKXVzZXJJc0ludGVyYWN0aW5nIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Cist
IChOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciAqKWNvbnRyb2xsZXIgd2lsbEJlZ2luSW5wdXRTZXNzaW9uRm9yRWxlbWVudDooV0tXZWJQcm9j
ZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGUgaW5GcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUgKilmcmFtZSB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBXS19B
UElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKEJPT0wpX3dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJTaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzOihXS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyOwogLSAo
dm9pZClfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlciBkaWRBc3NvY2lh
dGVGb3JtQ29udHJvbHM6KE5TQXJyYXkgKillbGVtZW50czsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAkocmV2aXNpb24gMjAyNzgx
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBA
QAogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGU7CiBAY2xhc3MgV0tXZWJQcm9j
ZXNzUGx1Z0luU2NyaXB0V29ybGQ7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNVUkwgKlVSTDsKQEAgLTQ3LDggKzQ3LDggQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzEwLCA4XzApCiAKIC8vIFJldHVybnMgVVJMcyBvcmRlcmVkIGJ5IHJlc29sdXRpb24g
aW4gZGVzY2VuZGluZyBvcmRlci4KIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgdGFnZ2VkIG5v
bm51bGwuCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8TlNVUkwgKj4g
KmFwcGxlVG91Y2hJY29uVVJMcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8TlNVUkwgKj4gKmZhdmlj
b25VUkxzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxOU1VSTCAqPiAqYXBwbGVUb3VjaEljb25VUkxz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PE5TVVJMICo+ICpmYXZpY29u
VVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogLSAoSlNDb250ZXh0ICopanNDb250ZXh0Rm9yV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJ
blNjcmlwdFdvcmxkICopd29ybGQ7CiAtIChXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0
ICopaGl0VGVzdDooQ0dQb2ludClwb2ludDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1
bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0LmgJKHJldmlzaW9u
IDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsNyBAQAogCiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZTsK
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFj
b3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRl
c3RSZXN1bHQgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBXS1dlYlByb2Nlc3NQ
bHVnSW5Ob2RlSGFuZGxlICpub2RlSGFuZGxlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRs
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAkocmV2aXNpb24gMjAy
NzgxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywx
NiArMzcsMTYgQEAKIAogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lOwogCi1XS19DTEFT
U19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSA6IE5T
T2JqZWN0CiAKICsgKFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlSGFuZGxlV2l0
aEpTVmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7
CiAtIChXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWh0bWxJRnJhbWVFbGVtZW50Q29udGVudEZy
YW1lOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQotLSAoVUlJbWFnZSAqKXJlbmRlcmVkSW1hZ2VX
aXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyBXS19BVkFJTEFCTEUoMTBfMTEs
IDlfMCk7CistIChVSUltYWdlICopcmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zOihXS1NuYXBzaG90
T3B0aW9ucylvcHRpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkp
OwogI2Vsc2UKLS0gKE5TSW1hZ2UgKilyZW5kZXJlZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNo
b3RPcHRpb25zKW9wdGlvbnMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAoTlNJbWFnZSAq
KXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKICNlbmRpZgogCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBlbGVtZW50Qm91bmRzOwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luUGFnZUdyb3VwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3Vw
LmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0lu
UGFnZUdyb3VwIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlk
ZW50aWZpZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJblNjcmlwdFdvcmxkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCA6IE5TT2JqZWN0CiAKICsgKFdL
V2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQ7CkBAIC0zOCw3ICszOCw3IEBAIFdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBjb3B5KSBOU1N0cmluZyAqbmFtZTsKIAogLSAodm9pZCljbGVhcldyYXBwZXJzOwotLSAo
dm9pZCltYWtlQWxsU2hhZG93Um9vdHNPcGVuIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKKy0gKHZvaWQpbWFrZUFsbFNoYWRvd1Jvb3RzT3BlbiBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50LmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKIEBjbGFzcyBXS0RPTUVsZW1lbnQ7
CiBAY2xhc3MgV0tET01UZXh0OwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tE
T01Eb2N1bWVudCA6IFdLRE9NTm9kZQogCiAtIChXS0RPTUVsZW1lbnQgKiljcmVhdGVFbGVtZW50
OihOU1N0cmluZyAqKXRhZ05hbWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5o
CShyZXZpc2lvbiAyMDI3ODEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5
LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRE9NTm9kZS5oPgogCi1XS19DTEFTU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4w
KSkKIEBpbnRlcmZhY2UgV0tET01FbGVtZW50IDogV0tET01Ob2RlCiAKIC0gKEJPT0wpaGFzQXR0
cmlidXRlOihOU1N0cmluZyAqKWF0dHJpYnV0ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2Rl
LmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS0RPTU5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEs
NyBAQAogCiBAY2xhc3MgV0tET01Eb2N1bWVudDsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEw
LCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50
ZXJmYWNlIFdLRE9NTm9kZSA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpaW5zZXJ0Tm9kZTooV0tET01O
b2RlICopbm9kZSBiZWZvcmU6KFdLRE9NTm9kZSAqKXJlZk5vZGU7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01SYW5nZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTVJhbmdlLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDcgKzM3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tET01SYW5nZURp
cgogfTsKIAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlM
QUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tET01SYW5nZSA6IE5T
T2JqZWN0CiAKIC0gKGlkKWluaXRXaXRoRG9jdW1lbnQ6KFdLRE9NRG9jdW1lbnQgKilkb2N1bWVu
dDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTVRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0LmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tE
T01Ob2RlLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTVRleHQgOiBX
S0RPTU5vZGUKIAogQHByb3BlcnR5KG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmRhdGE7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tE
T01UZXh0SXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0SXRlcmF0b3IuaAkocmV2aXNpb24gMjAy
NzgxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLRE9NVGV4dEl0ZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAog
QGNsYXNzIFdLRE9NUmFuZ2U7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RP
TVRleHRJdGVyYXRvciA6IE5TT2JqZWN0CiAKIC0gKGlkKWluaXRXaXRoUmFuZ2U6KFdLRE9NUmFu
Z2UgKilyYW5nZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0lu
LmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW4uaAkod29ya2luZyBjb3B5KQpAQCAt
NDEsNyArNDEsNyBAQAogLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQbHVn
SW5Db250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciB3aWxsRGVzdHJveUJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICop
YnJvd3NlckNvbnRleHRDb250cm9sbGVyOwogQGVuZAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBp
bnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciA6IE5TT2JqZWN0CiAKIEBwcm9w
ZXJ0eSAocmVhZG9ubHkpIFdLQ29ubmVjdGlvbiAqY29ubmVjdGlvbjsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBA
QAogQGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cDsKIEBwcm90b2NvbCBXS1dlYlBy
b2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8w
KQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFj
ZSBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgOiBOU09iamVjdAog
CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBXS0RPTURvY3VtZW50ICptYWluRnJhbWVEb2N1bWVudDsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5z
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3Jr
LWhlYWRlcnMuc2gJKHJldmlzaW9uIDIwMjc4MSkKKysrIFNvdXJjZS9XZWJLaXQyL21hYy9wb3N0
cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTAgKzUw
LDEwIEBAIGZ1bmN0aW9uIHByb2Nlc3NfZGVmaW5pdGlvbnMgKCkgewogCiBmdW5jdGlvbiByZXdy
aXRlX2hlYWRlcnMgKCkgewogICAgIGlmIFtbICIke1BMQVRGT1JNX05BTUV9IiA9PSAibWFjb3N4
IiBdXTsgdGhlbgotICAgICAgICBbWyAtbiAke09TWF9WRVJTSU9OfSBdXSB8fCBPU1hfVkVSU0lP
Tj0ke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVC9cLi9ffQorICAgICAgICBbWyAtbiAke09TWF9W
RVJTSU9OfSBdXSB8fCBPU1hfVkVSU0lPTj0ke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH0KICAg
ICAgICAgW1sgLW4gJHtJT1NfVkVSU0lPTn0gXV0gfHwgSU9TX1ZFUlNJT049Ik5BIgogICAgIGVs
aWYgW1sgIiR7UExBVEZPUk1fTkFNRX0iID1+ICJpcGhvbmUiIF1dOyB0aGVuCi0gICAgICAgIFtb
IC1uICR7SU9TX1ZFUlNJT059IF1dIHx8IElPU19WRVJTSU9OPSR7SVBIT05FT1NfREVQTE9ZTUVO
VF9UQVJHRVQvXC4vX30KKyAgICAgICAgW1sgLW4gJHtJT1NfVkVSU0lPTn0gXV0gfHwgSU9TX1ZF
UlNJT049JHtJUEhPTkVPU19ERVBMT1lNRU5UX1RBUkdFVH0KICAgICAgICAgW1sgLW4gJHtPU1hf
VkVSU0lPTn0gXV0gfHwgT1NYX1ZFUlNJT049Ik5BIgogICAgIGZpCiAKQEAgLTY0LDE1ICs2NCwx
MyBAQCBmdW5jdGlvbiByZXdyaXRlX2hlYWRlcnMgKCkgewogICAgICAgICBTRURfT1BUSU9OUys9
KAogICAgICAgICAgICAgLWUgcy9XS19NQUNfVEJBLyR7T1NYX1ZFUlNJT059L2cKICAgICAgICAg
ICAgIC1lIHMvV0tfSU9TX1RCQS8ke0lPU19WRVJTSU9OfS9nCi0gICAgICAgICAgICAtZSBzL1dL
X0FWQUlMQUJMRS9OU19BVkFJTEFCTEUvCi0gICAgICAgICAgICAtZSBzL1dLX0RFUFJFQ0FURUQv
TlNfREVQUkVDQVRFRC8KLSAgICAgICAgICAgIC1lIHMvV0tfRU5VTV9BVkFJTEFCTEUvTlNfRU5V
TV9BVkFJTEFCTEUvCi0gICAgICAgICAgICAtZSBzL1dLX0VOVU1fREVQUkVDQVRFRC9OU19FTlVN
X0RFUFJFQ0FURUQvCi0gICAgICAgICAgICAtZSBzL15XS19DTEFTU19BVkFJTEFCTEUvTlNfQ0xB
U1NfQVZBSUxBQkxFLwotICAgICAgICAgICAgLWUgcy9eV0tfQ0xBU1NfREVQUkVDQVRFRC9OU19D
TEFTU19ERVBSRUNBVEVELworICAgICAgICAgICAgLWUgcy9XS19BUElfQVZBSUxBQkxFL0FQSV9B
VkFJTEFCTEUvCisgICAgICAgICAgICAtZSBzL1dLX0FQSV9ERVBSRUNBVEVEL0FQSV9ERVBSRUNB
VEVELworICAgICAgICAgICAgLWUgInMvXldLX0NMQVNTX0FWQUlMQUJMRS9XS19FWFRFUk4gQVBJ
X0FWQUlMQUJMRS8iCisgICAgICAgICAgICAtZSAicy9eV0tfQ0xBU1NfREVQUkVDQVRFRC9XS19F
WFRFUk4gQVBJX0RFUFJFQ0FURUQvIgogICAgICAgICApCiAgICAgZWxzZQotICAgICAgICBTRURf
T1BUSU9OUys9KC1lICdzL1dLXyhDTEFTU198RU5VTV8pP0FWQUlMQUJMRShfSU9TfF9NQUMpP1wo
W15cKV0rXCkvL2cnIC1lICdzL1dLXyhDTEFTU198RU5VTV8pP0RFUFJFQ0FURURcKFteXCldK1wp
Ly9nJykKKyAgICAgICAgU0VEX09QVElPTlMrPSgtZSAncy9XS18oQVBJX3xDTEFTU18pQVZBSUxB
QkxFXCguKlwpXHMqXCkvL2cnIC1lICdzL1dLXyhBUElffENMQVNTXylERVBSRUNBVEVEKF9XSVRI
X1JFUExBQ0VNRU5UKT9cKC4qXClccypcKS8vZycpCiAgICAgZmkKIAogICAgIFNFRF9PUFRJT05T
Kz0oJHtPVEhFUl9TRURfT1BUSU9OU1sqXX0pCkBAIC04MCw3ICs3OCw3IEBAIGZ1bmN0aW9uIHJl
d3JpdGVfaGVhZGVycyAoKSB7CiAgICAgZm9yIEhFQURFUl9QQVRIIGluICIkezF9LyIqLmg7IGRv
CiAgICAgICAgIGlmIFtbICIkSEVBREVSX1BBVEgiIC1udCAkVElNRVNUQU1QX1BBVEggXV07IHRo
ZW4KICAgICAgICAgICAgIGRpdHRvICIke0hFQURFUl9QQVRIfSIgIiR7VEFSR0VUX1RFTVBfRElS
fS8ke0hFQURFUl9QQVRIIyMqL30iCi0gICAgICAgICAgICBzZWQgLWkgLnRtcCAtRSAke1NFRF9P
UFRJT05TWypdfSAiJHtUQVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIgfHwgZXhp
dCAkPworICAgICAgICAgICAgc2VkIC1pIC50bXAgLUUgIiR7U0VEX09QVElPTlNbQF19IiAiJHtU
QVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIgfHwgZXhpdCAkPwogICAgICAgICAg
ICAgbXYgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30iICIkSEVBREVSX1BB
VEgiCiAgICAgICAgIGZpCiAgICAgZG9uZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282660</attachid>
            <date>2016-07-03 10:00:15 -0700</date>
            <delta_ts>2016-07-03 10:04:31 -0700</delta_ts>
            <desc>Use modern availability macros</desc>
            <filename>bug-159378-20160703095949.patch</filename>
            <type>text/plain</type>
            <size>138179</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAorMjAxNi0wNy0wMyAgRGFuIEJl
cm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRvcHQgbW9kZXJu
IEFQSSBhdmFpbGFiaWxpdHkgbWFjcm9zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTkzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBpT1MgMTAgYW5kIG1hY09TIFNpZXJyYSBpbnRyb2R1Y2UgbmV3IG1h
Y3JvcyBmb3IgZGVjbGFyaW5nIEFQSSBhdmFpbGFiaWxpdHksIGRlZmluZWQgaW4KKyAgICAgICAg
Q0ZBdmFpbGFiaWxpdHkuaCwgaW5jbHVkaW5nIEFQSV9BVkFJTEFCTEUsIEFQSV9ERVBSRUNBVEVE
LCBhbmQKKyAgICAgICAgQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVC4gUmF0aGVyIHRo
YW4gaGF2aW5nIHBvc2l0aW9uYWwgcGFyYW1ldGVycyBmb3IgbWFjT1MgYW5kIGlPUworICAgICAg
ICB2ZXJzaW9ucywgdGhlIG5ldyBtYWNyb3MgdGFrZSBhIHZhcmlhYmxlIG51bWJlciBvZiBmdW5j
dGlvbi1saWtlIHBhcmFtZXRlcnMsIHdoZXJlIHRoZQorICAgICAgICBmdW5jdGlvbiBzcGVjaWZp
ZXMgdGhlIHBsYXRmb3JtIHRvIHdoaWNoIGl0IGFwcGxpZXMuCisKKyAgICAgICAgVG8gaGF2ZSBX
ZWJLaXQy4oCZcyBwb3N0cHJvY2Vzc2VkIGhlYWRlcnMgdXNlIHRoZSBuZXcgbWFjcm9zLCB3ZSBt
YWtlIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKKworICAgICAgICAtIFJlcGxhY2UgaW5zdGFuY2Vz
IG9mIFdLX0FWQUlMQUJMRShfbWFjLCBfaW9zKSB3aXRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KF9tYWMpLCBpb3MoX2lvcykpLAorICAgICAgICAgIGVsaWRpbmcgYSBwbGF0Zm9ybSBpZiBpdHMg
Y3VycmVudCBhdmFpbGFiaWxpdHkgaXMgTkEuCisgICAgICAgIC0gQ2hhbmdlIGluc3RhbmNlcyBv
ZiBXS19DTEFTU19BVkFJTEFCTEUoX21hYywgX2lvcykgdG8KKyAgICAgICAgICBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3N4KF9tYWMpLCBpb3MoX2lvcykpLCBlbGlkaW5nIGEgcGxhdGZvcm0gaWYg
aXRzIGN1cnJlbnQKKyAgICAgICAgICBhdmFpbGFiaWxpdHkgaXMgTkEuCisgICAgICAgIC0gUmVw
bGFjZSBpbnN0YW5jZXMgb2YgV0tfREVQUkVDQVRFRChfbWFjSW50cm8sIF9tYWNEZXAsIF9pb3NJ
bnRybywgX2lvc0RlcCwgLi4uKSB3aXRoCisgICAgICAgICAgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVChfcmVwbGFjZW1lbnQsIG1hY29zeChfbWFjSW50cm8sIF9tYWNEZXApLCBp
b3MoX2lvc0ludHJvLCBfaW9zRGVwKSkKKyAgICAgICAgICB3aGVuIHRoZXJlIGlzIGEgb25lLWZv
ci1vbmUgcmVwbGFjZW1lbnQsIGFuZCB3aXRoCisgICAgICAgICAgV0tfQVBJX0RFUFJFQ0FURUQo
X21lc3NhZ2UsIG1hY29zeChfbWFjSW50cm8sIF9tYWNEZXApLCBpb3MoX2lvc0ludHJvLCBfaW9z
RGVwKSkgd2hlbiB0aGUKKyAgICAgICAgICByZXBsYWNlbWVudCBpc27igJl0IG9uZS1mb3Itb25l
LiBBZ2FpbiwgaWYgdGhlIEFQSSBkb2VzbuKAmXQgYXBwbHkgdG8gYSBwbGF0Zm9ybSwgdGhlbiBp
dOKAmXMKKyAgICAgICAgICBlbGlkZWQuCisgICAgICAgIC0gUmVwbGFjZSBpbnN0YW5jZXMgb2Yg
V0tfQ0xBU1NfREVQUkVDQVRFRCB3aXRoIFdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCwKKyAgICAgICAgICBmb2xsb3dpbmcgdGhlIHNhbWUgcnVsZXMuCisgICAgICAgIC0gUmVw
bGFjZSBpbnN0YW5jZXMgb2YgdGhlIFdLX0VOVU1fKiBtYWNyb3Mgd2l0aCBjb3JyZXNwb25kaW5n
IFdLX0FQSV8qIG1hY3Jvcywgbm93IHRoYXQKKyAgICAgICAgICBhbGwgc3VwcG9ydGVkIGNvbXBp
bGVycyBzdXBwb3J0IGF2YWlsYWJpbGl0eSBhdHRyaWJ1dGVzIG9uIGVudW0gdmFsdWVzLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOiBEaXNhYmxlIGhlYWRlciBw
b3N0cHJvY2Vzc2luZyB3aGVuIGJ1aWxkaW5nIGZvciBpT1MgOS54LAorICAgICAgICAgIHdoaWNo
IGRvZXNu4oCZdCBoYXZlIHRoZSBuZXcgbWFjcm9zLgorCisgICAgICAgICogbWFjL3Bvc3Rwcm9j
ZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoOiBIYW5kbGUgdGhlIG5ldyBXS18qIG1hY3JvczogV0tf
QVBJX0FWQUlMQUJMRSBiZWNvbWVzCisgICAgICAgICAgQVBJX0FWQUlMQUJMRTsgV0tfQVBJX0RF
UFJFQ0FURUQoX1dJVEhfUkVQTEFDRU1FTlQpIGJlY29tZSBBUElfREVQUkVDQVRFRChfV0lUSF9S
RVBMQUNFTUVOVCk7CisgICAgICAgICAgV0tfQ0xBU1NfQVZBSUxBQkxFIGFuZCBXS19DTEFTU19E
RVBSRUNBVEVEKF9XSVRIX1JFUExBQ0VNRU5UKSBjaGFuZ2UgdG8gdGhlIGNvcnJlc3BvbmRpbmcK
KyAgICAgICAgICBBUElfIG1hY3JvcywgcHJlZml4ZWQgd2l0aCBXS19FWFRFUk4uCisgICAgICAg
ICogU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRpb24uaDogV2hlbiBoZWFkZXIgcG9zdHByb2Nl
c3NpbmcgaXMgZGlzYWJsZWQsIHByb3ZpZGUKKyAgICAgICAgICBkZWZpbml0aW9ucyBvZiB0aGUg
bmV3IFdLXyogbWFjcm9zIHdlIHVzZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oOiBJbiBhZGRpdGlvbiB0byB0aGUgYWJvdmUsIGNoYW5n
ZWQgb25lCisgICAgICAgICAgaW5zdGFuY2Ugb2YgKGlPUykgMTBfMCB0byBXS19JT1NfVEJBLgor
CisgICAgICAgIE1hZGUgdGhlIGFib3ZlIGNoYW5nZXMgaW4gdGhlIGZvbGxvd2luZyBoZWFkZXJz
OgorCisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5o
OgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUuaDoKKyAgICAgICAg
KiBTaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaDoKKyAgICAgICAgKiBTaGFyZWQv
QVBJL0NvY29hL19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oOgorICAgICAgICAqIFNoYXJlZC9B
UEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmg6CisgICAgICAgICogU2hhcmVkL0FQ
SS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRXJyb3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JQcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mby5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm9Qcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb24uaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJldmlld0FjdGlvbkl0ZW0uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJvY2Vzc0dyb3VwLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTY3JpcHRNZXNzYWdl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2luLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJl
Y29yZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29y
ZFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJl
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9u
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2lu
Z0RlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlvbnMuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0Zvcm1JbnB1dFNlc3Npb24uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0lucHV0RGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0xheW91dE1vZGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tTZXNzaW9uU3RhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1RodW1ibmFpbFZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1VzZXJDb250ZW50RmlsdGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tVc2VyQ29udGVudFdvcmxkLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tV
c2VyU3R5bGVTaGVldC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRl
ZExpbmtQcm92aWRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVmlzaXRl
ZExpbmtTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFSZWNvcmQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRh
U2l6ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9y
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkhpdFRlc3RSZXN1bHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdy
b3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2RlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NUmFuZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dEl0ZXJhdG9yLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJ
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaDoKKwogMjAxNi0wNy0wMSAgSHVu
c2VvcCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gTWFu
eSBsYXlvdXQgdGVzdHMgYXJlIHRpbWVvdXQgYWZ0ZXIgcjIwMjUzMi4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcJKHJldmlzaW9uIDIwMjc4
OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwkod29y
a2luZyBjb3B5KQpAQCAtNTksMyArNTksNiBAQCBJTlNUQUxMSERSU19TQ1JJUFRfUEhBU0UgPSBZ
RVM7CiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEW3Nkaz1tYWNv
c3gqXSA9ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9tYWNv
c3hfJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQ
Uk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDEwMDAgPSBZRVM7CiBXS19GUkFNRVdPUktfSEVB
REVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX21hY29zeF8xMDExMDAgPSBZRVM7CisKK1dLX0ZS
QU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2RrPWlwaG9uZW9zOSpdID0g
WUVTOworV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9aXBo
b25lc2ltdWxhdG9yOSpdID0gWUVTOwpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaAkocmV2aXNpb24g
MjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dEhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBXS19B
UElfRU5BQkxFRAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tCcm93c2luZ0Nv
bnRleHRIYW5kbGUgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CiBAZW5kCiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRpb24uaAkocmV2aXNp
b24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTIgKzQyLDEwIEBACiAKICNpZm5kZWYgV0tfRlJB
TUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19FTkFCTEVECiAKLSNkZWZpbmUgV0tfQVZBSUxB
QkxFKF9tYWMsIF9pb3MpCi0jZGVmaW5lIFdLX0NMQVNTX0FWQUlMQUJMRShfbWFjLCBfaW9zKSBf
X2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5ICgiZGVmYXVsdCIpKSkKLSNkZWZpbmUgV0tfREVQUkVD
QVRFRChfbWFjSW50cm8sIF9tYWNEZXAsIF9pb3NJbnRybywgX2lvc0RlcCwgLi4uKSBfX2F0dHJp
YnV0ZV9fKChkZXByZWNhdGVkKF9fVkFfQVJHU19fKSkpCi0jZGVmaW5lIFdLX0NMQVNTX0RFUFJF
Q0FURUQoX21hY0ludHJvLCBfbWFjRGVwLCBfaW9zSW50cm8sIF9pb3NEZXAsIC4uLikgX19hdHRy
aWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRl
ZChfX1ZBX0FSR1NfXykpKQotI2RlZmluZSBXS19FTlVNX0FWQUlMQUJMRShfbWFjLCBfaW9zKQot
I2RlZmluZSBXS19FTlVNX0FWQUlMQUJMRV9JT1MoX2lvcykKLSNkZWZpbmUgV0tfRU5VTV9ERVBS
RUNBVEVEKF9tYWNJbnRybywgX21hY0RlcCwgX2lvc0ludHJvLCBfaW9zRGVwLCAuLi4pIF9fYXR0
cmlidXRlX18oKGRlcHJlY2F0ZWQoX19WQV9BUkdTX18pKSkKKyNkZWZpbmUgV0tfQVBJX0FWQUlM
QUJMRSguLi4pCisjZGVmaW5lIFdLX0NMQVNTX0FWQUlMQUJMRSguLi4pIF9fYXR0cmlidXRlX18o
KHZpc2liaWxpdHkoImRlZmF1bHQiKSkpIFdLX0FQSV9BVkFJTEFCTEUoX19WQV9BUkdTX18pCisj
ZGVmaW5lIFdLX0FQSV9ERVBSRUNBVEVEKF9tZXNzYWdlLCAuLi4pIF9fYXR0cmlidXRlX18oKGRl
cHJlY2F0ZWQoX21lc3NhZ2UpKSkKKyNkZWZpbmUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVChfcmVwbGFjZW1lbnQsIC4uLikgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCgidXNl
ICIgI19yZXBsYWNlbWVudCkpKQorI2RlZmluZSBXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoX3JlcGxhY2VtZW50LCAuLi4pIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRl
ZmF1bHQiKSkpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSAiICNfcmVwbGFjZW1lbnQp
KSkKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0Zy
YW1lSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tGcmFtZUhhbmRsZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcg
KzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNT
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tGcmFtZUhhbmRsZSA6IE5TT2JqZWN0IDxOU0NvcHlp
bmcsIE5TU2VjdXJlQ29kaW5nPgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaAkocmV2aXNpb24gMjAyNzg4KQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3Vu
ZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSkKK1dLX0NMQVNT
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpCiBAaW50ZXJmYWNlIF9XS0hpdFRlc3RSZXN1
bHQgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHksIGNvcHkpIE5TVVJMICphYnNvbHV0ZUltYWdlVVJMOwpJbmRleDogU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdEludGVyZmFj
ZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29h
L19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3
IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJ
TEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSkKIEBpbnRlcmZhY2UgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIDogTlNPYmplY3QKIAog
KyAoaW5zdGFuY2V0eXBlKXJlbW90ZU9iamVjdEludGVyZmFjZVdpdGhQcm90b2NvbDooUHJvdG9j
b2wgKilwcm90b2NvbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dL
UmVtb3RlT2JqZWN0UmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgJKHJldmlzaW9uIDIwMjc4OCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBAY2xhc3MgX1dLUmVtb3Rl
T2JqZWN0SW50ZXJmYWNlOwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkgOiBOU09iamVjdAogCiAtICh2b2lkKXJlZ2lzdGVyRXhwb3J0ZWRP
YmplY3Q6KGlkKW9iamVjdCBpbnRlcmZhY2U6KF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqKWlu
dGVyZmFjZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL19XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgJKHJldmlzaW9uIDIwMjc4OCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVuZGVyaW5nUHJvZ3Jlc3NF
dmVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDEyIEBACiAKIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cykgewogICAgIF9X
S1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRGaXJzdExheW91dCA9IDEgPDwgMCwKLSAgICBfV0tSZW5k
ZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0IFdLX0VOVU1fQVZB
SUxBQkxFKDEwXzExLCA5XzApID0gMSA8PCAxLAorICAgIF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZl
bnRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSkgPSAxIDw8IDEsCiAgICAgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZp
cnN0UGFpbnRXaXRoU2lnbmlmaWNhbnRBcmVhID0gMSA8PCAyLAotICAgIF9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRSZWFjaGVkU2Vzc2lvblJlc3RvcmF0aW9uUmVuZGVyVHJlZVNpemVUaHJlc2hv
bGQgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCkgPSAxIDw8IDMsCi0gICAgX1dLUmVuZGVy
aW5nUHJvZ3Jlc3NFdmVudEZpcnN0TGF5b3V0QWZ0ZXJTdXBwcmVzc2VkSW5jcmVtZW50YWxSZW5k
ZXJpbmcgV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCkgPSAxIDw8IDQsCi0gICAgX1dLUmVu
ZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0UGFpbnRBZnRlclN1cHByZXNzZWRJbmNyZW1lbnRhbFJl
bmRlcmluZyBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKSA9IDEgPDwgNSwKLSAgICBfV0tS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludCBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKSA9IDEgPDwgNiwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTAsIDhfMCk7CisgICAgX1dL
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudFJlYWNoZWRTZXNzaW9uUmVzdG9yYXRpb25SZW5kZXJUcmVl
U2l6ZVRocmVzaG9sZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKSA9
IDEgPDwgMywKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RMYXlvdXRBZnRlclN1
cHByZXNzZWRJbmNyZW1lbnRhbFJlbmRlcmluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MSksIGlvcyg5LjApKSA9IDEgPDwgNCwKKyAgICBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmly
c3RQYWludEFmdGVyU3VwcHJlc3NlZEluY3JlbWVudGFsUmVuZGVyaW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpID0gMSA8PCA1LAorICAgIF9XS1JlbmRlcmluZ1By
b2dyZXNzRXZlbnRGaXJzdFBhaW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpID0gMSA8PCA2LAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4
LjApKTsKIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19X
S1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oCShyZXZp
c2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS1NhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDYgQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLU2FtZURvY3VtZQogICAgIF9XS1NhbWVEb2N1
bWVudE5hdmlnYXRpb25UeXBlU2Vzc2lvblN0YXRlUHVzaCwKICAgICBfV0tTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVHlwZVNlc3Npb25TdGF0ZVJlcGxhY2UsCiAgICAgX1dLU2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGVTZXNzaW9uU3RhdGVQb3AsCi19IFdLX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsK
K30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
YWNrRm9yd2FyZExpc3QuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw3ICszNCw3IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FW
QUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKQogQGludGVyZmFjZSBXS0JhY2tGb3J3YXJkTGlzdCA6IE5TT2JqZWN0CiAKIC8qISBA
YWJzdHJhY3QgVGhlIGN1cnJlbnQgaXRlbS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaAkocmV2
aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogICov
CiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhf
MCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZh
Y2UgV0tCYWNrRm9yd2FyZExpc3RJdGVtIDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWlu
aXQgTlNfVU5BVkFJTEFCTEU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgJ
KHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2
LDcgQEAKIEBwcm90b2NvbCBXS0Jyb3dzaW5nQ29udGV4dExvYWREZWxlZ2F0ZTsKIEBwcm90b2Nv
bCBXS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRlOwogCi1XS19DTEFTU19BVkFJTEFCTEUo
MTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkK
IEBpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIDogTlNPYmplY3QKIAogI3By
YWdtYSBtYXJrIERlbGVnYXRlcwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgJKHJldmlzaW9u
IDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS1VzZXJTY3JpcHRJ
bmplY3Rpb25UaW1lLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0Jyb3dz
aW5nQ29udGV4dEdyb3VwIDogTlNPYmplY3QKIAogLSAoaWQpaW5pdFdpdGhJZGVudGlmaWVyOihO
U1N0cmluZyAqKWlkZW50aWZpZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQ29ubmVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDcgKzM4LDcgQEAKIAogQGVuZAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAs
IDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRl
cmZhY2UgV0tDb25uZWN0aW9uIDogTlNPYmplY3QKIAogLSAodm9pZClzZW5kTWVzc2FnZVdpdGhO
YW1lOihOU1N0cmluZyAqKW1lc3NhZ2VOYW1lIGJvZHk6KGlkKW1lc3NhZ2VCb2R5OwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgJKHJldmlzaW9u
IDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJ
TgogCiAvKiEgQGNvbnN0YW50IFdLRXJyb3JEb21haW4gSW5kaWNhdGVzIGEgV2ViS2l0IGVycm9y
LiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tFcnJvckRvbWFpbiBXS19BVkFJTEFC
TEUoMTBfMTAsIDhfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS0Vycm9yRG9tYWlu
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgQGVudW0g
V0tFcnJvckNvZGUKICBAYWJzdHJhY3QgQ29uc3RhbnRzIHVzZWQgYnkgTlNFcnJvciB0byBpbmRp
Y2F0ZSBlcnJvcnMgaW4gdGhlIFdlYktpdCBkb21haW4uCkBAIC00Nyw4ICs0Nyw4IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLRXJyb3JDb2RlKSAKICAgICBXS0Vycm9yV2ViQ29udGVu
dFByb2Nlc3NUZXJtaW5hdGVkLAogICAgIFdLRXJyb3JXZWJWaWV3SW52YWxpZGF0ZWQsCiAgICAg
V0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCwKLSAgICBXS0Vycm9ySmF2YVNjcmlw
dFJlc3VsdFR5cGVJc1Vuc3VwcG9ydGVkIFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApLAot
fSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKKyAgICBXS0Vycm9ySmF2YVNjcmlwdFJl
c3VsdFR5cGVJc1Vuc3VwcG9ydGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAog
TlNfQVNTVU1FX05PTk5VTExfRU5ECiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc4OCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvclByaXZhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMjcsMjcgKzI3LDI3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAogCi1X
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tMZWdhY3lFcnJvckRvbWFpbiBXS19BVkFJTEFC
TEUoMTBfMTEsIDhfMyk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tMZWdhY3lFcnJv
ckRvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg4LjMpKTsKIAogdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLTGVnYWN5RXJyb3JDb2RlKSB7Ci0gICAgX1dLRXJy
b3JDb2RlRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSBXS19FTlVNX0FWQUlMQUJM
RSgxMF8xMSwgOV8wKSA9IDEwMiwKKyAgICBfV0tFcnJvckNvZGVGcmFtZUxvYWRJbnRlcnJ1cHRl
ZEJ5UG9saWN5Q2hhbmdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkp
ID0gMTAyLAogICAgIF9XS0xlZ2FjeUVycm9yUGx1Z0luV2lsbEhhbmRsZUxvYWQgPSAyMDQsCi19
IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA4XzMpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg4LjMpKTsKIAogLyohIEBjb25zdGFudCBfV0tKYXZhU2NyaXB0RXhjZXB0
aW9uTWVzc2FnZUVycm9yS2V5IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcKICB0aGUgZXhj
ZXB0aW9uIG1lc3NhZ2UgKGFzIGFuIE5TU3RyaW5nKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNl
cHRpb25PY2N1cnJlZCBlcnJvcnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tK
YXZhU2NyaXB0RXhjZXB0aW9uTWVzc2FnZUVycm9yS2V5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJB
LCBXS19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRF
eGNlcHRpb25NZXNzYWdlRXJyb3JLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2Vw
dGlvbkxpbmVOdW1iZXJFcnJvcktleSBLZXkgaW4gdXNlckluZm8gcmVwcmVzZW50aW5nCiAgdGhl
IGV4Y2VwdGlvbiBsaW5lIG51bWJlciAoYXMgYW4gTlNOdW1iZXIpIGZvciBXS0Vycm9ySmF2YVNj
cmlwdEV4Y2VwdGlvbk9jY3VycmVkIGVycm9ycy4gKi8KLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNv
bnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25MaW5lTnVtYmVyRXJyb3JLZXkgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dL
SmF2YVNjcmlwdEV4Y2VwdGlvbkxpbmVOdW1iZXJFcnJvcktleSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLyohIEBjb25zdGFudCBfV0tK
YXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JLZXkgS2V5IGluIHVzZXJJbmZvIHJl
cHJlc2VudGluZwogIHRoZSBleGNlcHRpb24gY29sdW1uIG51bWJlciAoYXMgYW4gTlNOdW1iZXIp
IGZvciBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkIGVycm9ycy4gKi8KLVdLX0VY
VEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS0phdmFTY3JpcHRFeGNlcHRpb25Db2x1bW5OdW1iZXJF
cnJvcktleSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitXS19FWFRFUk4g
TlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9uQ29sdW1uTnVtYmVyRXJyb3JL
ZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKIC8qISBAY29uc3RhbnQgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvblNvdXJjZVVSTEVycm9yS2V5
IEtleSBpbiB1c2VySW5mbyByZXByZXNlbnRpbmcKICB0aGUgZXhjZXB0aW9uIHNvdXJjZSBVUkwg
KGFzIGFuIE5TVVJMKSBmb3IgV0tFcnJvckphdmFTY3JpcHRFeGNlcHRpb25PY2N1cnJlZCBlcnJv
cnMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tKYXZhU2NyaXB0RXhjZXB0aW9u
U291cmNlVVJMRXJyb3JLZXkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwor
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLSmF2YVNjcmlwdEV4Y2VwdGlvblNvdXJjZVVS
TEVycm9yS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tGcmFtZUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLRnJhbWVJbmZvLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tGcmFtZUluZm8uaAkod29ya2luZyBjb3B5KQpAQCAt
MzcsNyArMzcsNyBAQAogICovCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19B
VkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBp
b3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tGcmFtZUluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgog
CiAvKiEgQGFic3RyYWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZy
YW1lIGlzIHRoZSBtYWluIGZyYW1lCkBAIC01MSw3ICs1MSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRoZSBmcmFtZSdzIGN1cnJlbnQgc2VjdXJp
dHkgb3JpZ2luLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLU2VjdXJp
dHlPcmlnaW4gKnNlY3VyaXR5T3JpZ2luIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tTZWN1cml0eU9yaWdpbiAqc2VjdXJpdHlPcmln
aW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBlbmQKIApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0ZyYW1lSW5mb1ByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
RnJhbWVJbmZvUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw3ICszMSw3IEBACiAKIEBpbnRlcmZhY2UgV0tGcmFtZUluZm8gKFdLUHJpdmF0ZSkKIAot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBzdHJvbmcpIF9XS0ZyYW1lSGFuZGxlICpf
aGFuZGxlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSwgc3Ryb25nKSBfV0tGcmFtZUhhbmRsZSAqX2hhbmRsZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVu
ZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1J
ZGVudGlmaWVyc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaAkocmV2aXNpb24gMjAy
Nzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRl
bnRpZmllcnNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDI2ICszMCwyNiBAQAogI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tEZWNsYXJh
dGlvblNwZWNpZmllcnMuaD4KIAotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9X
S01lbnVJdGVtSWRlbnRpZmllckNvcHkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
ZmllckNvcHlJbWFnZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQ29weUxp
bmsgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckRvd25sb2FkSW1hZ2UgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0
cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckRvd25sb2FkTGlua2VkRmlsZSBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3Ry
aW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyR29CYWNrIFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBf
V0tNZW51SXRlbUlkZW50aWZpZXJHb0ZvcndhcmQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdL
X0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVt
SWRlbnRpZmllckluc3BlY3RFbGVtZW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJMb29rVXAgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5GcmFt
ZUluTmV3V2luZG93IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuSW1h
Z2VJbk5ld1dpbmRvdyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3Blbkxp
bmsgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5MaW5rSW5OZXdXaW5k
b3cgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclBhc3RlIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBj
b25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZWxvYWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJ
dGVtSWRlbnRpZmllclNlYXJjaFdlYiBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJUb2dnbGVGdWxsU2NyZWVuIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZp
ZXJDb3B5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRp
ZmllckNvcHlJbWFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRl
bUlkZW50aWZpZXJDb3B5TGluayBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJEb3dubG9hZEltYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAq
IGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckRvd25sb2FkTGlua2VkRmlsZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJHb0JhY2sgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBP
UlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyR29Gb3J3YXJk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
V0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllcklu
c3BlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVt
SWRlbnRpZmllckxvb2tVcCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51
SXRlbUlkZW50aWZpZXJPcGVuRnJhbWVJbk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJp
bmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuSW1hZ2VJbk5ld1dpbmRvdyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VY
UE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuTGlu
ayBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJP
cGVuTGlua0luTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01l
bnVJdGVtSWRlbnRpZmllclBhc3RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9X
S01lbnVJdGVtSWRlbnRpZmllclJlbG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25z
dCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRpYUNvbnRyb2xzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclRvZ2dsZUZ1
bGxTY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlk
ZW50aWZpZXJTaGFyZU1lbnUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwot
V0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNw
ZWVjaE1lbnUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworV0tfRVhQT1JU
IGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNoYXJlTWVudSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dL
X0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTcGVl
Y2hNZW51IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOYXZpZ2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb24uaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsNyBAQAogIGFsc28gcGFzc2VkIHRvIHRoZSBuYXZpZ2F0aW9uIGRlbGVnYXRlIG1l
dGhvZHMsIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGEgd2VicGFnZQogIGxvYWQgZnJvbSBzdGFydCB0
byBmaW5pc2guCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS05hdmlnYXRp
b24gOiBOU09iamVjdAogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgJKHJldmlzaW9uIDIwMjc4
OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDEyICs1MywxMiBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBXS05hdmlnYXRpb25UCiAgICAgV0tOYXZpZ2F0aW9uVHlwZVJlbG9hZCwKICAg
ICBXS05hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkLAogICAgIFdLTmF2aWdhdGlvblR5cGVP
dGhlciA9IC0xLAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISAKIEEgV0tOYXZpZ2F0aW9u
QWN0aW9uIG9iamVjdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhbiBhY3Rpb24gdGhhdCBt
YXkgY2F1c2UgYSBuYXZpZ2F0aW9uLCB1c2VkIGZvciBtYWtpbmcgcG9saWN5IGRlY2lzaW9ucy4K
ICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvbkFjdGlvbiA6
IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgVGhlIGZyYW1lIHJlcXVlc3RpbmcgdGhlIG5hdmln
YXRpb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkFjdGlvblByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAkocmV2aXNpb24gMjAyNzg4
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rp
b25Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxMCBAQAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1VSTCAqX29yaWdpbmFsVVJMOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X2lzVXNlckluaXRpYXRlZCkgQk9PTCBfdXNlcklu
aXRpYXRlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfY2FuSGFuZGxl
UmVxdWVzdDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3Bl
bkV4dGVybmFsU2NoZW1lcyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5BcHBMaW5rcyBXS19BVkFJTEFCTEUo
MTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3Vs
ZE9wZW5FeHRlcm5hbFNjaGVtZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3Mo
OS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5B
cHBMaW5rcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
IFdLX0RFUFJFQ0FURUQoMTBfMTEsIDEwXzExLCA5XzAsIDlfMCwgInVzZSBfc2hvdWxkT3BlbkV4
dGVybmFsU2NoZW1lcyBhbmQgX3Nob3VsZE9wZW5BcHBMaW5rcyIpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRPcGVuRXh0ZXJuYWxVUkxzIFdLX0FQSV9ERVBS
RUNBVEVEKCJ1c2UgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgYW5kIF9zaG91bGRPcGVuQXBw
TGlua3MiLCBtYWNvc3goMTAuMTEsIDEwLjExKSwgaW9zKDkuMCwgOS4wKSk7CiAKIEBlbmQKIApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EYXRh
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05h
dmlnYXRpb25EYXRhLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFT
U19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tOYXZpZ2F0aW9uRGF0YSA6IE5TT2JqZWN0CiAKIEBw
cm9wZXJ0eSAocmVhZG9ubHkpIE5TU3RyaW5nICp0aXRsZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRl
LmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBA
QCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5KSB7CiAgICAgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5Q2Fu
Y2VsLAogICAgIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93LAotfSBXS19FTlVNX0FWQUlM
QUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3Mo
OC4wKSk7CiAKIC8qISBAZW51bSBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeQogIEBhYnN0cmFj
dCBUaGUgcG9saWN5IHRvIHBhc3MgYmFjayB0byB0aGUgZGVjaXNpb24gaGFuZGxlciBmcm9tIHRo
ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRs
ZXI6IG1ldGhvZC4KQEAgLTU1LDcgKzU1LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
V0tOYXZpZ2F0aW9uQQogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3kpIHsKICAgICBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUNhbmNlbCwKICAg
ICBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93LAotfSBXS19FTlVNX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7
CiAKIC8qISBBIGNsYXNzIGNvbmZvcm1pbmcgdG8gdGhlIFdLTmF2aWdhdGlvbkRlbGVnYXRlIHBy
b3RvY29sIGNhbiBwcm92aWRlCiAgbWV0aG9kcyBmb3IgdHJhY2tpbmcgcHJvZ3Jlc3MgZm9yIG1h
aW4gZnJhbWUgbmF2aWdhdGlvbnMgYW5kIGZvciBkZWNpZGluZwpAQCAtMTQyLDcgKzE0Miw3IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblIKIC8qISBAYWJzdHJhY3Qg
SW52b2tlZCB3aGVuIHRoZSB3ZWIgdmlldydzIHdlYiBjb250ZW50IHByb2Nlc3MgaXMgdGVybWlu
YXRlZC4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgd2hvc2UgdW5kZXJseWluZyB3ZWIg
Y29udGVudCBwcm9jZXNzIHdhcyB0ZXJtaW5hdGVkLgogICovCi0tICh2b2lkKXdlYlZpZXdXZWJD
b250ZW50UHJvY2Vzc0RpZFRlcm1pbmF0ZTooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BVkFJTEFC
TEUoMTBfMTEsIDlfMCk7CistICh2b2lkKXdlYlZpZXdXZWJDb250ZW50UHJvY2Vzc0RpZFRlcm1p
bmF0ZTooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSks
IGlvcyg5LjApKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRl
LmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcg
KzMyLDcgQEAKICNpZiBXS19BUElfRU5BQkxFRAogCiBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5IF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZCA9IChXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93ICsgMSk7Ci1z
dGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FWQUlMQUJMRSgxMF8xMSwg
OV8wKSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayA9
IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93
ICsgMik7CitzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpIF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lB
bGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cgKyAyKTsKIAogc3RhdGljIGNvbnN0IFdLTmF2aWdh
dGlvblJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25s
b2FkID0gKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KShXS05hdmlnYXRpb25SZXNwb25zZVBv
bGljeUFsbG93ICsgMSk7CiAKQEAgLTYyLDcgKzYyLDcgQEAgc3RhdGljIGNvbnN0IFdLTmF2aWdh
dGlvblJlc3BvbnNlUG9saWN5IAogLy8gT25seSBjYWxsZWQgaWYgaG93IHRoZSBnZXN0dXJlIHdp
bGwgZW5kICh3aXRoIG9yIHdpdGhvdXQgbmF2aWdhdGlvbikgaXMga25vd24gYmVmb3JlIGl0IGVu
ZHMuCiAtICh2b2lkKV93ZWJWaWV3V2lsbEVuZE5hdmlnYXRpb25HZXN0dXJlOihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHdpdGhOYXZpZ2F0aW9uVG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3
YXJkTGlzdEl0ZW0gKilpdGVtOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyB3aWxsU25hcHNob3RCYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0g
KilpdGVtOwotLSAodm9pZClfd2ViVmlld0RpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNo
b3Q6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOworLSAodm9pZClfd2ViVmlld0RpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3Q6
KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0TG9hZEZvclF1aWNrTG9va0RvY3VtZW50
SW5NYWluRnJhbWVXaXRoRmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZU5hbWUgdXRpOihOU1N0cmlu
ZyAqKXV0aTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uUmVzcG9uc2UuaAko
d29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
CiAvKiEgQ29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBuYXZpZ2F0aW9uIHJlc3BvbnNlLCB1
c2VkIGZvciBtYWtpbmcgcG9saWN5IGRlY2lzaW9ucy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkp
CiBAaW50ZXJmYWNlIFdLTmF2aWdhdGlvblJlc3BvbnNlIDogTlNPYmplY3QKIAogLyohIEBhYnN0
cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmcmFtZSBiZWluZyBu
YXZpZ2F0ZWQgaXMgdGhlIG1haW4gZnJhbWUuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmgJKHJl
dmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tP
cGVuUGFuZWxQYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAgTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAogLyohIFdLT3BlblBhbmVsUGFyYW1ldGVycyBjb250YWlu
cyBwYXJhbWV0ZXJzIHRoYXQgYSBmaWxlIHVwbG9hZCBjb250cm9sIGhhcyBzcGVjaWZpZWQuCiAg
Ki8KLVdLX0NMQVNTX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSkpCiBAaW50ZXJmYWNlIFdLT3BlblBhbmVsUGFyYW1ldGVycyA6
IE5TT2JqZWN0CiAKIC8qISBAYWJzdHJhY3QgV2hldGhlciB0aGUgZmlsZSB1cGxvYWQgY29udHJv
bCBzdXBwb3J0cyBtdWx0aXBsZSBmaWxlcy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCShyZXZpc2lvbiAyMDI3ODgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogIHZpZXcuIFRoZSBwcmVmZXJlbmNlcyBvYmpl
Y3QgYXNzb2NpYXRlZCB3aXRoIGEgd2ViIHZpZXcgaXMgc3BlY2lmaWVkIGJ5CiAgaXRzIHdlYiB2
aWV3IGNvbmZpZ3VyYXRpb24uCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBX
S1ByZWZlcmVuY2VzIDogTlNPYmplY3QgPE5TQ29kaW5nPgogCiAvKiEgQGFic3RyYWN0IFRoZSBt
aW5pbXVtIGZvbnQgc2l6ZSBpbiBwb2ludHMuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCShyZXZp
c2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE2ICszNSwxNiBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tTdG9yYWdlQmxvCiAgICAgX1dLU3RvcmFnZUJsb2Nr
aW5nUG9saWN5QWxsb3dBbGwsCiAgICAgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QmxvY2tUaGly
ZFBhcnR5LAogICAgIF9XS1N0b3JhZ2VCbG9ja2luZ1BvbGljeUJsb2NrQWxsLAotfSBXS19FTlVN
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tEZWJ1Z092
ZXJsYXlSZWdpb25zKSB7CiAgICAgX1dLTm9uRmFzdFNjcm9sbGFibGVSZWdpb24gPSAxIDw8IDAs
CiAgICAgX1dLV2hlZWxFdmVudEhhbmRsZXJSZWdpb24gPSAxIDw8IDEKLX0gV0tfRU5VTV9BVkFJ
TEFCTEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLSmF2YVNjcmlwdFJ1
bnRpbWVGbGFncykgewogICAgIF9XS0phdmFTY3JpcHRSdW50aW1lRmxhZ3NBbGxFbmFibGVkID0g
MAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBjbGFzcyBfV0tFeHBlcmltZW50YWxGZWF0dXJl
OwogCkBAIC01Nyw0MCArNTcsNDAgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S0phdmFTYwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q29tcG9zaXRpbmdCb3Jk
ZXJzVmlzaWJsZTopIEJPT0wgX2NvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGU7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRDb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU6
KSBCT09MIF9jb21wb3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGU7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU6KSBCT09M
IF90aWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGU6KSBCT09MIF9yZXNvdXJjZVVz
YWdlT3ZlcmxheVZpc2libGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lv
bnM6KSBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zIF92aXNpYmxlRGVidWdPdmVybGF5UmVnaW9ucyBX
S19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZDopIEJPT0wgX3NpbXBsZUxpbmVM
YXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6KSBC
T09MIF9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERpc3BsYXlMaXN0
RHJhd2luZ0VuYWJsZWQ6KSBCT09MIF9kaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFRleHRBdXRvc2l6aW5nRW5hYmxlZDopIEJPT0wgX3RleHRBdXRvc2l6aW5nRW5hYmxl
ZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGU6KSBCT09MIF9yZXNv
dXJjZVVzYWdlT3ZlcmxheVZpc2libGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRW
aXNpYmxlRGVidWdPdmVybGF5UmVnaW9uczopIF9XS0RlYnVnT3ZlcmxheVJlZ2lvbnMgX3Zpc2li
bGVEZWJ1Z092ZXJsYXlSZWdpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2ltcGxlTGluZUxheW91
dERlYnVnQm9yZGVyc0VuYWJsZWQ6KSBCT09MIF9zaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJz
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6KSBC
T09MIF9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0RGlzcGxheUxpc3REcmF3aW5nRW5hYmxlZDopIEJPT0wgX2Rpc3BsYXlMaXN0RHJhd2lu
Z0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0QXV0b3NpemluZ0Vu
YWJsZWQ6KSBCT09MIF90ZXh0QXV0b3NpemluZ0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldERldmVsb3BlckV4dHJhc0VuYWJsZWQ6KSBCT09MIF9kZXZlbG9wZXJFeHRy
YXNFbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldERldmVsb3BlckV4dHJhc0VuYWJsZWQ6KSBCT09MIF9kZXZlbG9wZXJFeHRy
YXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1D
b25zb2xlRW5hYmxlZDopIEJPT0wgX2xvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFi
bGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkOikgQk9PTCBfbG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkOikgQk9PTCBfaGlkZGVuUGFnZURP
TVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SGlkZGVuUGFnZURPTVRpbWVy
VGhyb3R0bGluZ0F1dG9JbmNyZWFzZXM6KSBCT09MIF9oaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRs
aW5nQXV0b0luY3JlYXNlcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZDopIEJPT0wgX3BhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEhpZGRlblBhZ2VET01UaW1lclRocm90dGxp
bmdFbmFibGVkOikgQk9PTCBfaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5n
QXV0b0luY3JlYXNlczopIEJPT0wgX2hpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdBdXRvSW5j
cmVhc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UGFnZVZpc2liaWxpdHlCYXNl
ZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQ6KSBCT09MIF9wYWdlVmlzaWJpbGl0eUJhc2VkUHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldEphdmFTY3JpcHRSdW50aW1lRmxhZ3M6KSBfV0tKYXZhU2NyaXB0UnVudGltZUZs
YWdzIF9qYXZhU2NyaXB0UnVudGltZUZsYWdzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJM
czopIEJPT0wgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMSksIGlvcyg5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dEphdmFTY3JpcHRSdW50aW1lRmxhZ3M6KSBfV0tKYXZhU2NyaXB0UnVudGltZUZsYWdzIF9qYXZh
U2NyaXB0UnVudGltZUZsYWdzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTdGFuZGFsb25lOiwgZ2V0
dGVyPV9pc1N0YW5kYWxvbmUpIEJPT0wgX3N0YW5kYWxvbmUgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3RhbmRhbG9uZTosIGdldHRl
cj1faXNTdGFuZGFsb25lKSBCT09MIF9zdGFuZGFsb25lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRE
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ6KSBCT09MIF9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQg
V0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0RGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkOikgQk9PTCBfZGlhZ25vc3RpY0xvZ2dpbmdFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZhdWx0Rm9udFNpemU6KSBOU1VJbnRlZ2VyIF9k
ZWZhdWx0Rm9udFNpemUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVmYXVsdEZpeGVkUGl0Y2hGb250U2l6ZTop
IE5TVUludGVnZXIgX2RlZmF1bHRGaXhlZFBpdGNoRm9udFNpemUgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0Rml4ZWRQaXRjaEZvbnRGYW1pbHk6KSBOU1N0cmluZyAqX2ZpeGVkUGl0Y2hGb250RmFtaWx5
IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldERlZmF1bHRGb250U2l6ZTopIE5TVUludGVnZXIgX2RlZmF1bHRGb250
U2l6ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmF1bHRGaXhlZFBpdGNoRm9u
dFNpemU6KSBOU1VJbnRlZ2VyIF9kZWZhdWx0Rml4ZWRQaXRjaEZvbnRTaXplIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0Rml4ZWRQaXRjaEZvbnRGYW1pbHk6KSBOU1N0cmlu
ZyAqX2ZpeGVkUGl0Y2hGb250RmFtaWx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgY29uZmln
dXJlZCBvbiB0aGUgV0tXZWJzaXRlRGF0YVN0b3JlLgogLy8gRklYTUU6IFRoaXMgcHJvcGVydHkg
c2hvdWxkIG5vdCBoYXZlIHRoZSB2ZXJiICJpcyIgaW4gaXQuCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRPZmZsaW5lQXBwbGljYXRpb25DYWNoZUlzRW5hYmxlZDopIEJPT0wgX29m
ZmxpbmVBcHBsaWNhdGlvbkNhY2hlSXNFbmFibGVkOwotQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RnVsbFNjcmVlbkVuYWJsZWQ6KSBCT09MIF9mdWxsU2NyZWVuRW5hYmxlZCBXS19B
VkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRG
dWxsU2NyZWVuRW5hYmxlZDopIEJPT0wgX2Z1bGxTY3JlZW5FbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCi0rIChOU0FycmF5PF9XS0V4cGVyaW1lbnRh
bEZlYXR1cmUgKj4gKilfZXhwZXJpbWVudGFsRmVhdHVyZXMgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOwotLSAoQk9PTClfaXNFbmFibGVkRm9yRmVhdHVyZTooX1dLRXhwZXJp
bWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwotLSAodm9pZClfc2V0RW5hYmxlZDooQk9PTCl2YWx1ZSBmb3JGZWF0dXJlOihfV0tFeHBl
cmltZW50YWxGZWF0dXJlICopZmVhdHVyZSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7CisrIChOU0FycmF5PF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKj4gKilfZXhwZXJpbWVu
dGFsRmVhdHVyZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistIChCT09MKV9pc0VuYWJsZWRGb3JGZWF0dXJlOihfV0tFeHBlcmltZW50YWxG
ZWF0dXJlICopZmVhdHVyZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldEVuYWJsZWQ6KEJPT0wpdmFsdWUgZm9yRmVhdHVy
ZTooX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqKWZlYXR1cmUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JdGVtLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw3IEBACiAKICNpbXBvcnQgPFVJS2l0L1VJVmlld0NvbnRyb2xsZXIuaD4KIAotV0tfQVZBSUxB
QkxFKE5BLCBXS19JT1NfVEJBKQorV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpCiBA
cHJvdG9jb2wgV0tQcmV2aWV3QWN0aW9uSXRlbSA8VUlQcmV2aWV3QWN0aW9uSXRlbT4KIAogQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHksIHJlYWRvbmx5KSBOU1N0cmluZyAqaWRlbnRpZmllcjsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9u
SXRlbUlkZW50aWZpZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaAkocmV2aXNpb24gMjAy
Nzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JdGVtSWRlbnRpZmllcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsOSArMzAsOSBAQAogCiAj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuIFdLX0FWQUlMQUJMRShOQSwg
V0tfSU9TX1RCQSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25J
dGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJB
KTsKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlm
aWVyQ29weSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSBXS19BVkFJTEFCTEUo
TkEsIFdLX0lPU19UQkEpOworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0
aW9uSXRlbUlkZW50aWZpZXJPcGVuIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
K1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVy
QWRkVG9SZWFkaW5nTGlzdCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckNvcHkg
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJTaGFyZSBXS19BUElfQVZBSUxBQkxF
KGlvcyhXS19JT1NfVEJBKSk7CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAkocmV2
aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
ZXZpZXdFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RC
QSkKK1dLX0NMQVNTX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIFdLUHJl
dmlld0VsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgTlNVUkwgKmxpbmtVUkw7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NHcm91cC5oCShy
ZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc0dyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKIAogQGVuZAog
Ci1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
c3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tQcm9jZXNzR3JvdXAgOiBOU09iamVj
dAogCiAtIChpZClpbml0V2l0aEluamVjdGVkQnVuZGxlVVJMOihOU1VSTCAqKWJ1bmRsZVVSTDsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBA
QAogIGltcGxlbWVudGF0aW9uLWRlZmluZWQgcHJvY2VzcyBsaW1pdCBpcyByZWFjaGVkOyBhZnRl
ciB0aGF0LCB3ZWIgdmlld3MKICB3aXRoIHRoZSBzYW1lIHByb2Nlc3MgcG9vbCBlbmQgdXAgc2hh
cmluZyB3ZWIgY29udGVudCBwcm9jZXNzZXMuCiAgKi8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGlu
dGVyZmFjZSBXS1Byb2Nlc3NQb29sIDogTlNPYmplY3QgPE5TQ29kaW5nPgogQGVuZAogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDIzICs0MywyMyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gKl9jb25maWd1cmF0aW9uOwogCiAtICh2b2lkKV9zZXRB
bGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWlu
IGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdDsKLS0gKHZvaWQpX3NldENhbkhhbmRsZUhUVFBTU2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsK
Ky0gKHZvaWQpX3NldENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZh
bHVlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogLSAodm9pZClf
c2V0Q29va2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kpcG9saWN5Owog
CiAtIChpZClfb2JqZWN0Rm9yQnVuZGxlUGFyYW1ldGVyOihOU1N0cmluZyAqKXBhcmFtZXRlcjsK
IC0gKHZvaWQpX3NldE9iamVjdDooaWQgPE5TQ29weWluZywgTlNTZWN1cmVDb2Rpbmc+KW9iamVj
dCBmb3JCdW5kbGVQYXJhbWV0ZXI6KE5TU3RyaW5nICopcGFyYW1ldGVyOwogLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGJlIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZCA8TlNDb3B5aW5nLCBOU1Nl
Y3VyZUNvZGluZz4+Ci0tICh2b2lkKV9zZXRPYmplY3RzRm9yQnVuZGxlUGFyYW1ldGVyc1dpdGhE
aWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0aW9uYXJ5IFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3NldE9iamVjdHNGb3JCdW5kbGVQYXJhbWV0ZXJz
V2l0aERpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldERvd25sb2FkRGVsZWdhdGU6KSBpZCA8X1dLRG93bmxv
YWREZWxlZ2F0ZT4gX2Rvd25sb2FkRGVsZWdhdGU7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgd2Vh
aywgc2V0dGVyPV9zZXRBdXRvbWF0aW9uRGVsZWdhdGU6KSBpZCA8X1dLQXV0b21hdGlvbkRlbGVn
YXRlPiBfYXV0b21hdGlvbkRlbGVnYXRlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEF1dG9tYXRpb25E
ZWxlZ2F0ZTopIGlkIDxfV0tBdXRvbWF0aW9uRGVsZWdhdGU+IF9hdXRvbWF0aW9uRGVsZWdhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAK
ICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVSTDooTlNVUkwgKilj
b250YWluZXJVUkw7CiArIChOU1VSTCAqKV93ZWJzaXRlRGF0YVVSTEZvckNvbnRhaW5lcldpdGhV
Ukw6KE5TVVJMICopY29udGFpbmVyVVJMIGJ1bmRsZUlkZW50aWZpZXJJZk5vdEluQ29udGFpbmVy
OihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZpZXI7CiAKLS0gKHZvaWQpX3dhcm1Jbml0aWFsUHJv
Y2VzcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lkKV9hdXRv
bWF0aW9uQ2FwYWJpbGl0aWVzRGlkQ2hhbmdlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKLS0gKHZvaWQpX3NldEF1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vz
c2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKKy0gKHZvaWQpX3dhcm1Jbml0aWFsUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2F1dG9tYXRpb25DYXBh
YmlsaXRpZXNEaWRDaGFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRBdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21h
dGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUg
Y2FsbGVkIG9ubHkgd2hpbGUgbm8gd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBydW5uaW5nLgog
LSAodm9pZClfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzOwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NjcmlwdE1lc3NhZ2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0TWVzc2FnZS5oCShyZXZpc2lv
biAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLU2NyaXB0
TWVzc2FnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAvKiEgQSBXS1NjcmlwdE1lc3NhZ2Ugb2JqZWN0IGNvbnRhaW5zIGluZm9ybWF0
aW9uIGFib3V0IGEgbWVzc2FnZSBzZW50IGZyb20KICBhIHdlYnBhZ2UuCiAgKi8KLVdLX0NMQVNT
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQogQGludGVyZmFjZSBXS1NjcmlwdE1lc3NhZ2UgOiBOU09iamVjdAogCiAvKiEg
QGFic3RyYWN0IFRoZSBib2R5IG9mIHRoZSBtZXNzYWdlLgpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1NlY3VyaXR5T3JpZ2luLmgJKHJldmlz
aW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tTZWN1
cml0eU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAgKi8KIE5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMSwgOV8wKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKQogQGludGVyZmFjZSBXS1Nl
Y3VyaXR5T3JpZ2luIDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWluaXQgTlNfVU5BVkFJ
TEFCTEU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVHlwZVJl
ZldyYXBwZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVHlwZVJlZldyYXBwZXIuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1R5cGVSZWZXcmFwcGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2lt
cG9ydCA8V2ViS2l0L1dLQmFzZS5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2Ug
V0tUeXBlUmVmV3JhcHBlciA6IE5TT2JqZWN0CiAKIC0gKGlkKWluaXRXaXRoT2JqZWN0OihXS1R5
cGVSZWYpb2JqZWN0OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVUlEZWxlZ2F0ZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw3ICs2NSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAgIEBkaXNjdXNzaW9uIFlvdXIg
YXBwIHNob3VsZCByZW1vdmUgdGhlIHdlYiB2aWV3IGZyb20gdGhlIHZpZXcgaGllcmFyY2h5IGFu
ZCB1cGRhdGUKICAgdGhlIFVJIGFzIG5lZWRlZCwgc3VjaCBhcyBieSBjbG9zaW5nIHRoZSBjb250
YWluaW5nIGJyb3dzZXIgdGFiIG9yIHdpbmRvdy4KICAgKi8KLS0gKHZvaWQpd2ViVmlld0RpZENs
b3NlOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKHZv
aWQpd2ViVmlld0RpZENsb3NlOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3RyYWN0IERpc3BsYXlzIGEgSmF2
YVNjcmlwdCBhbGVydCBwYW5lbC4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tp
bmcgdGhlIGRlbGVnYXRlIG1ldGhvZC4KQEAgLTEyOSw3ICsxMjksNyBAQCBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogIFRoaXMgbWV0aG9kIHdpbGwgb25seSBiZSBpbnZva2VkIGZvciBlbGVtZW50
cyB0aGF0IGhhdmUgZGVmYXVsdCBwcmV2aWV3IGluIFdlYktpdCwgd2hpY2ggaXMKICBsaW1pdGVk
IHRvIGxpbmtzLiBJbiB0aGUgZnV0dXJlLCBpdCBjb3VsZCBiZSBpbnZva2VkIGZvciBhZGRpdGlv
bmFsIGVsZW1lbnRzLgogICovCi0tIChCT09MKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
c2hvdWxkUHJldmlld0VsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudEluZm8g
V0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKEJPT0wpd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBzaG91bGRQcmV2aWV3RWxlbWVudDooV0tQcmV2aWV3RWxlbWVudEluZm8gKill
bGVtZW50SW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKIC8qISBAYWJz
dHJhY3QgQWxsb3dzIHlvdXIgYXBwIHRvIHByb3ZpZGUgYSBjdXN0b20gdmlldyBjb250cm9sbGVy
IHRvIHNob3cgd2hlbiB0aGUgZ2l2ZW4gZWxlbWVudCBpcyBwZWVrZWQuCiAgQHBhcmFtIHdlYlZp
ZXcgVGhlIHdlYiB2aWV3IGludm9raW5nIHRoZSBkZWxlZ2F0ZSBtZXRob2QuCkBAIC0xNDQsMTMg
KzE0NCwxMyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogIFJldHVybmluZyBuaWwgd2lsbCBy
ZXN1bHQgaW4gV2ViS2l0J3MgZGVmYXVsdCBwcmV2aWV3IGJlaGF2aW9yLiB3ZWJWaWV3OmNvbW1p
dFByZXZpZXdpbmdWaWV3Q29udHJvbGxlcjogd2lsbCBvbmx5IGJlIGludm9rZWQKICBpZiBhIG5v
bi1uaWwgdmlldyBjb250cm9sbGVyIHdhcyByZXR1cm5lZC4KICAqLwotLSAobnVsbGFibGUgVUlW
aWV3Q29udHJvbGxlciAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld2luZ1Zp
ZXdDb250cm9sbGVyRm9yRWxlbWVudDooV0tQcmV2aWV3RWxlbWVudEluZm8gKillbGVtZW50SW5m
byBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxpZCA8V0tQcmV2aWV3QWN0aW9uSXRlbT4+ICopcHJl
dmlld0FjdGlvbnMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsKKy0gKG51bGxhYmxlIFVJ
Vmlld0NvbnRyb2xsZXIgKil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdpbmdW
aWV3Q29udHJvbGxlckZvckVsZW1lbnQ6KFdLUHJldmlld0VsZW1lbnRJbmZvICopZWxlbWVudElu
Zm8gZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8aWQgPFdLUHJldmlld0FjdGlvbkl0ZW0+PiAqKXBy
ZXZpZXdBY3Rpb25zIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogLyohIEBh
YnN0cmFjdCBBbGxvd3MgeW91ciBhcHAgdG8gcG9wIHRvIHRoZSB2aWV3IGNvbnRyb2xsZXIgaXQg
Y3JlYXRlZC4KICBAcGFyYW0gd2ViVmlldyBUaGUgd2ViIHZpZXcgaW52b2tpbmcgdGhlIGRlbGVn
YXRlIG1ldGhvZC4KICBAcGFyYW0gcHJldmlld2luZ1ZpZXdDb250cm9sbGVyIFRoZSB2aWV3IGNv
bnRyb2xsZXIgdGhhdCBpcyBiZWluZyBwb3BwZWQuCiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3aW5nVmlld0NvbnRyb2xsZXI6KFVJVmlld0Nv
bnRyb2xsZXIgKilwcmV2aWV3aW5nVmlld0NvbnRyb2xsZXIgV0tfQVZBSUxBQkxFKE5BLCBXS19J
T1NfVEJBKTsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2
aWV3aW5nVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3aW5nVmlld0Nv
bnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCiAjZW5kaWYgLy8g
VEFSR0VUX09TX0lQSE9ORQogCkBAIC0xNjQsNyArMTY0LDcgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIAogIElmIHlvdSBkbyBub3QgaW1wbGVtZW50IHRoaXMgbWV0aG9kLCB0aGUgd2ViIHZp
ZXcgd2lsbCBiZWhhdmUgYXMgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgdGhlIENhbmNlbCBidXR0b24u
CiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBydW5PcGVuUGFuZWxX
aXRoUGFyYW1ldGVyczooV0tPcGVuUGFuZWxQYXJhbWV0ZXJzICopcGFyYW1ldGVycyBpbml0aWF0
ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShOU0FycmF5PE5TVVJMICo+ICogX051bGxhYmxlIFVSTHMpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgcnVuT3BlblBhbmVsV2l0aFBhcmFtZXRlcnM6KFdLT3BlblBhbmVsUGFyYW1ldGVy
cyAqKXBhcmFtZXRlcnMgaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1VSTCAqPiAqIF9OdWxsYWJsZSBVUkxz
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7
CiAKICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkocmV2aXNpb24gMjAyNzg4KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUzLDMzICs1MywzMyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwog
CiAtICh2b2lkKV93ZWJWaWV3Q2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKV93
ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lOihXS1dlYlZpZXcgKil3ZWJWaWV3Owot
LSAodm9pZClfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldyBX
S19BVkFJTEFCTEUoMTBfMTEsIDhfMyk7Ci0tICh2b2lkKV93ZWJWaWV3RGlkRXhpdEZ1bGxzY3Jl
ZW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVZBSUxBQkxFKDEwXzExLCA4XzMpOworLSAodm9p
ZClfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg4LjMpKTsKKy0gKHZvaWQpX3dlYlZpZXdEaWRF
eGl0RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29z
eCgxMC4xMSksIGlvcyg4LjMpKTsKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkOihDR1NpemUpc2l6ZSBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tIChOU0RpY3Rpb25hcnkgKilfZGF0YURl
dGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZDooQ0dTaXplKXNpemUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChO
U0RpY3Rpb25hcnkgKilfZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogI2lmIFRBUkdFVF9PU19JUEhPTkUKLS0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKKy0gKEJP
T0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rp
b25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDlfMCkpOwogLSAoTlNBcnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnQgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWRlZmF1bHRB
Y3Rpb25zOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWROb3RIYW5k
bGVUYXBBc0NsaWNrQXRQb2ludDooQ0dQb2ludClwb2ludDsKIC0gKEJPT0wpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkUmVxdWVzdEdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkZv
clVSTDooTlNVUkwgKil1cmwgaXNNYWluRnJhbWU6KEJPT0wpaXNNYWluRnJhbWUgbWFpbkZyYW1l
VVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTDsKLS0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJM
ICopdXJsIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xs
ZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1hZ2VXaXRoVVJM
OihOU1VSTCAqKWltYWdlVVJMIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkSW1hZ2VXaXRoVVJMOihOU1VS
TCAqKWltYWdlVVJMIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3
Q29udHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9sbGVyIGNvbW1pdHRpbmc6KEJPT0wpY29t
bWl0dGluZyBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRy
b2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0t
IChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3dDdXN0b21TaGVldEZvckVs
ZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BVkFJTEFCTEUoTkEs
IFdLX0lPU19UQkEpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhbHRl
cm5hdGVBY3Rpb25Gb3JVUkw6KE5TVVJMICopdXJsIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RC
QSk7Ci0tIChOU0FycmF5ICopX2F0dGFjaG1lbnRMaXN0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotLSAoTlNVSW50ZWdlcilfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbmRleEludG9BdHRhY2htZW50TGlzdEZvckVsZW1l
bnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BVkFJTEFCTEUoTkEsIFdL
X0lPU19UQkEpOwotLSAoVUlFZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGZpbmFsT2JzY3VyZWRJbnNldHNGb3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxW
aWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihp
bm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9mZnNldCBXS19BVkFJTEFCTEUoTkEsIDlfMCk7
Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJl
dmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczooTlNB
cnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Ci0tIChV
SVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1Zp
ZXdDb250cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0
aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVtZW50SW5mbzoo
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBpbWFnZVNpemU6KENHU2l6ZSlp
bWFnZVNpemUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV9w
cmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdL
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VS
TCAqKXVybCBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkVmlld0NvbnRyb2xsZXI6KFVJVmlld0Nv
bnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyg5
XzApKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFByZXZpZXdJ
bWFnZVdpdGhVUkw6KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdlZElt
YWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRGlzbWlzc1ByZXZpZXdW
aWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9sbGVy
IGNvbW1pdHRpbmc6KEJPT0wpY29tbWl0dGluZyBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRGlzbWlzc1ByZXZpZXdW
aWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9sbGVy
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhbHRlcm5hdGVBY3Rpb25Gb3JVUkw6KE5T
VVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TQXJyYXkg
KilfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RC
QSkpOworLSAoVUlFZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZpbmFs
T2JzY3VyZWRJbnNldHNGb3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdp
dGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBD
R1BvaW50ICopdGFyZ2V0Q29udGVudE9mZnNldCBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsK
Ky0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2
aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0Fy
cmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwor
LSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZp
ZXdWaWV3Q29udHJvbGxlckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVs
dEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudElu
Zm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1Np
emUpaW1hZ2VTaXplIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOworLSAoVUlWaWV3Q29udHJv
bGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNlbHNlCi0tIChOU01l
bnUgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudTooTlNNZW51ICop
bWVudSBmb3JFbGVtZW50OihfV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudCBXS19B
VkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwotLSAoTlNNZW51ICopX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgY29udGV4dE1lbnU6KE5TTWVudSAqKW1lbnUgZm9yRWxlbWVudDooX1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnQgdXNlckluZm86KGlkIDxOU1NlY3VyZUNvZGlu
Zz4pdXNlckluZm8gV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKKy0gKE5TTWVudSAqKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZv
ckVsZW1lbnQ6KF9XS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKKy0gKE5TTWVudSAqKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51OihOU01lbnUgKiltZW51IGZvckVsZW1lbnQ6KF9XS0Nv
bnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50IHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rp
bmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKICNlbmRp
ZgogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNl
ckNvbnRlbnRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCShyZXZpc2lvbiAyMDI3ODgp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250
cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KICBUaGUgdXNlciBjb250ZW50IGNvbnRyb2xsZXIgYXNzb2NpYXRlZCB3aXRoIGEg
d2ViIHZpZXcgaXMgc3BlY2lmaWVkIGJ5IGl0cwogIHdlYiB2aWV3IGNvbmZpZ3VyYXRpb24uCiAg
Ki8KLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1VzZXJDb250ZW50Q29udHJvbGxl
ciA6IE5TT2JqZWN0IDxOU0NvZGluZz4KIAogLyohIEBhYnN0cmFjdCBUaGUgdXNlciBzY3JpcHRz
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHVzZXIgY29udGVudApJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRl
bnRDb250cm9sbGVyUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCwxOCArMzQsMTggQEAKIAogQGludGVyZmFjZSBXS1VzZXJDb250
ZW50Q29udHJvbGxlciAoV0tQcml2YXRlKQogCi0tICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0OihX
S1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1Nf
VEJBKTsKLS0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2NpYXRlZFdpdGhVc2VyQ29u
dGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BVkFJ
TEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CistICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0
OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVtb3ZlQWxsVXNlclNjcmlwdHNB
c3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2Vy
Q29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwogCi0tICh2b2lkKV9hZGRVc2VyQ29udGVudEZpbHRlcjooX1dLVXNlckNvbnRl
bnRGaWx0ZXIgKil1c2VyQ29udGVudEZpbHRlciBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci0t
ICh2b2lkKV9yZW1vdmVVc2VyQ29udGVudEZpbHRlcjooTlNTdHJpbmcgKil1c2VyQ29udGVudEZp
bHRlck5hbWUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotLSAodm9pZClfcmVtb3ZlQWxsVXNl
ckNvbnRlbnRGaWx0ZXJzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKLQotQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PF9XS1VzZXJTdHlsZVNoZWV0ICo+ICpf
dXNlclN0eWxlU2hlZXRzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0g
KHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNo
ZWV0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX3JlbW92
ZVVzZXJTdHlsZVNoZWV0OihfV0tVc2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKHZvaWQpX3JlbW92ZUFsbFVzZXJT
dHlsZVNoZWV0cyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci0tICh2b2lk
KV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6
KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FWQUlMQUJMRShXS19N
QUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZvaWQpX2FkZFVzZXJDb250ZW50RmlsdGVyOihfV0tV
c2VyQ29udGVudEZpbHRlciAqKXVzZXJDb250ZW50RmlsdGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KDEwLjExKSwgaW9zKDkuMCkpOworLSAodm9pZClfcmVtb3ZlVXNlckNvbnRlbnRGaWx0ZXI6
KE5TU3RyaW5nICopdXNlckNvbnRlbnRGaWx0ZXJOYW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOworLSAodm9pZClfcmVtb3ZlQWxsVXNlckNvbnRlbnRGaWx0ZXJz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOworCitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8X1dLVXNlclN0eWxlU2hlZXQgKj4g
Kl91c2VyU3R5bGVTaGVldHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9hZGRVc2VyU3R5bGVTaGVldDooX1dLVXNlclN0eWxl
U2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlbW92ZVVzZXJTdHlsZVNoZWV0OihfV0tV
c2VyU3R5bGVTaGVldCAqKXVzZXJTdHlsZVNoZWV0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0eWxl
U2hlZXRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdpdGhVc2Vy
Q29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAo
dm9pZClfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVy
PilzY3JpcHRNZXNzYWdlSGFuZGxlciBuYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNvbnRlbnRX
b3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CiAtICh2b2lkKV9y
ZW1vdmVTY3JpcHRNZXNzYWdlSGFuZGxlckZvck5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2VyQ29u
dGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZDsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQu
aAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VzZXJTY3JpcHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTEgKzM5LDExIEBAIE5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1VzZXJTY3Jp
cHRJbmplY3Rpb25UaW1lKSB7CiAgICAgV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1l
bnRTdGFydCwKICAgICBXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudEVuZAotfSBX
S19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBBIEBsaW5rIFdLVXNlclNjcmlwdCBAL2xpbmsgb2Jq
ZWN0IHJlcHJlc2VudHMgYSBzY3JpcHQgdGhhdCBjYW4gYmUgaW5qZWN0ZWQgaW50byB3ZWJwYWdl
cy4KICAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFC
TEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLVXNlclNjcmlwdCA6IE5T
T2JqZWN0IDxOU0NvcHlpbmc+CiAKIC8qIEBhYnN0cmFjdCBUaGUgc2NyaXB0IHNvdXJjZSBjb2Rl
LiAqLwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3Jp
cHRQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VzZXJTY3JpcHRQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMywxMCArMzMsMTAgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAogQGlu
dGVyZmFjZSBXS1VzZXJTY3JpcHQgKFdLUHJpdmF0ZSkKIAotLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFp
bkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lX
aGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5Qmxh
Y2tsaXN0IHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVu
dFdvcmxkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLS0gKGluc3RhbmNl
dHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRpbWU6KFdL
VXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVPbmx5OihC
T09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+
ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAq
KWxlZ2FjeUJsYWNrbGlzdCBhc3NvY2lhdGVkVVJMOihOU1VSTCAqKWFzc29jaWF0ZWRVUkwgdXNl
ckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tf
QVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworLSAoaW5zdGFuY2V0eXBlKV9pbml0
V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFp
bkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lX
aGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5Qmxh
Y2tsaXN0IHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVu
dFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2Ug
aW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGZv
ck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5T
QXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lXaGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0Fy
cmF5PE5TU3RyaW5nICo+ICopbGVnYWN5QmxhY2tsaXN0IGFzc29jaWF0ZWRVUkw6KE5TVVJMICop
YXNzb2NpYXRlZFVSTCB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNl
ckNvbnRlbnRXb3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tVc2VyQ29u
dGVudFdvcmxkICpfdXNlckNvbnRlbnRXb3JsZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tf
SU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1VzZXJDb250ZW50
V29ybGQgKl91c2VyQ29udGVudFdvcmxkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3
ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUu
aAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNyBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGU7CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KSBDR0Zs
b2F0IF9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yIFdLX0FWQUlMQUJMRSgxMF8xMSwgTkEpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rv
cjopIENHRmxvYXQgX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXV0b21h
dGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOikgQk9PTCBfYXV0b21hdGljYWxseUFkanVzdHND
b250ZW50SW5zZXRzOwogCkBAIC04NCw3ICs4NCw3IEBACiBAcHJvcGVydHkgKGNvcHksIG5vbmF0
b21pYykgTlNDb2xvciAqdW5kZXJsYXlDb2xvcjsKIAogI2lmIFdLX0FQSV9FTkFCTEVECi1AcHJv
cGVydHkgKHN0cm9uZywgbm9uYXRvbWljLCBzZXR0ZXI9X3NldEluc3BlY3RvckF0dGFjaG1lbnRW
aWV3OikgTlNWaWV3ICpfaW5zcGVjdG9yQXR0YWNobWVudFZpZXcgV0tfQVZBSUxBQkxFKDEwXzEx
LCBOQSk7CitAcHJvcGVydHkgKHN0cm9uZywgbm9uYXRvbWljLCBzZXR0ZXI9X3NldEluc3BlY3Rv
ckF0dGFjaG1lbnRWaWV3OikgTlNWaWV3ICpfaW5zcGVjdG9yQXR0YWNobWVudFZpZXcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpKTsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250
cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNN
YW5hZ2VyOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMCArNDksMTAgQEAg
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICBVc2VkIHRvIGNvbmZpZ3VyZSBAbGluayBXS1dlYlZp
ZXcgQC9saW5rIGluc3RhbmNlcy4KICAqLwogI2lmIFRBUkdFVF9PU19JUEhPTkUKLVdLX0NMQVNT
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlZpZXcgOiBVSVZpZXcKICNlbHNlCi1XS19DTEFT
U19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IDogTlNWaWV3CiAjZW5kaWYKIApAQCAt
OTgsNyArOTgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBJZiByZWFkQWNj
ZXNzVVJMIHJlZmVyZW5jZXMgYSBkaXJlY3RvcnksIGZpbGVzIGluc2lkZSB0aGF0IGZpbGUgbWF5
IGJlIGxvYWRlZCBieSBXZWJLaXQuCiAgQHJlc3VsdCBBIG5ldyBuYXZpZ2F0aW9uIGZvciB0aGUg
Z2l2ZW4gZmlsZSBVUkwuCiAgKi8KLS0gKG51bGxhYmxlIFdLTmF2aWdhdGlvbiAqKWxvYWRGaWxl
VVJMOihOU1VSTCAqKVVSTCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDooTlNVUkwgKilyZWFkQWNj
ZXNzVVJMIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKG51bGxhYmxlIFdLTmF2aWdhdGlv
biAqKWxvYWRGaWxlVVJMOihOU1VSTCAqKVVSTCBhbGxvd2luZ1JlYWRBY2Nlc3NUb1VSTDooTlNV
UkwgKilyZWFkQWNjZXNzVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwogCiAvKiEgQGFic3RyYWN0IFNldHMgdGhlIHdlYnBhZ2UgY29udGVudHMgYW5kIGJhc2Ug
VVJMLgogIEBwYXJhbSBzdHJpbmcgVGhlIHN0cmluZyB0byB1c2UgYXMgdGhlIGNvbnRlbnRzIG9m
IHRoZSB3ZWJwYWdlLgpAQCAtMTE0LDcgKzExNCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8x
MCwgOF8wKQogIEBwYXJhbSBiYXNlVVJMIEEgVVJMIHRoYXQgaXMgdXNlZCB0byByZXNvbHZlIHJl
bGF0aXZlIFVSTHMgd2l0aGluIHRoZSBkb2N1bWVudC4KICBAcmVzdWx0IEEgbmV3IG5hdmlnYXRp
b24uCiAgKi8KLS0gKG51bGxhYmxlIFdLTmF2aWdhdGlvbiAqKWxvYWREYXRhOihOU0RhdGEgKilk
YXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFtZToo
TlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJM
IFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKKy0gKG51bGxhYmxlIFdLTmF2aWdhdGlvbiAqKWxv
YWREYXRhOihOU0RhdGEgKilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJh
Y3RlckVuY29kaW5nTmFtZTooTlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVS
TDooTlNVUkwgKiliYXNlVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwogCiAvKiEgQGFic3RyYWN0IE5hdmlnYXRlcyB0byBhbiBpdGVtIGZyb20gdGhlIGJhY2st
Zm9yd2FyZCBsaXN0IGFuZCBzZXRzIGl0CiAgYXMgdGhlIGN1cnJlbnQgaXRlbS4KQEAgLTE2OCw3
ICsxNjgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBAZGlzY3Vzc2lvbiBA
bGluayBXS1dlYlZpZXcgQC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxp
YW50IAogIGZvciB0aGlzIHByb3BlcnR5LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIG51bGxhYmxlKSBTZWNUcnVzdFJlZiBzZXJ2ZXJUcnVzdCBXS19BVkFJTEFCTEUoV0tf
TUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51
bGxhYmxlKSBTZWNUcnVzdFJlZiBzZXJ2ZXJUcnVzdCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4g
dmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZXJlIGlzIGEgYmFjayBpdGVtIGluCiAgdGhlIGJh
Y2stZm9yd2FyZCBsaXN0IHRoYXQgY2FuIGJlIG5hdmlnYXRlZCB0by4KQEAgLTIyOCwxMyArMjI4
LDEzIEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRo
ZSBjdXN0b20gdXNlciBhZ2VudCBzdHJpbmcgb3IgbmlsIGlmIG5vIGN1c3RvbSB1c2VyIGFnZW50
IHN0cmluZyBoYXMgYmVlbiBzZXQuCiAqLwotQHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqY3VzdG9tVXNlckFnZW50IFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8w
KTsKK0Bwcm9wZXJ0eSAobnVsbGFibGUsIG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmN1c3Rv
bVVzZXJBZ2VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAog
LyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIGxpbmsgcHJl
dmlldyBpcyBhbGxvd2VkIGZvciBhbnkKICBsaW5rcyBpbnNpZGUgdGhpcyBXS1dlYlZpZXcuCiAg
QGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFsdWUgaXMgWUVTIG9uIE1hYyBhbmQgaU9TLgogICov
Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NMaW5rUHJldmlldyBXS19BVkFJTEFC
TEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbGxvd3NMaW5rUHJl
dmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogI2lmIFRB
UkdFVF9PU19JUEhPTkUKIC8qISBAYWJzdHJhY3QgVGhlIHNjcm9sbCB2aWV3IGFzc29jaWF0ZWQg
d2l0aCB0aGUgd2ViIHZpZXcuCkBAIC0zMDYsNyArMzA2LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KDEwXzEwLCA4XzApCiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS0RlcHJlY2F0ZWQpCiAKLUBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNBcnJheSAqY2VydGlmaWNhdGVD
aGFpbiBXS19ERVBSRUNBVEVEKDEwXzExLCBXS19NQUNfVEJBLCA5XzAsIFdLX0lPU19UQkEsICJQ
bGVhc2UgdXNlIHNlcnZlclRydXN0Iik7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IGNvcHkpIE5TQXJyYXkgKmNlcnRpZmljYXRlQ2hhaW4gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgic2VydmVyVHJ1c3QiLCBtYWNvc3goMTAuMTEsIFdLX01BQ19UQkEpLCBpb3Mo
OS4wLCBXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgJ
KHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBA
IE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS1Nl
bGVjdGlvbkdyYW51bGFyaXR5KSB7CiAgICAgV0tTZWxlY3Rpb25HcmFudWxhcml0eUR5bmFtaWMs
CiAgICAgV0tTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3RlciwKLX0gV0tfRU5VTV9BVkFJTEFC
TEVfSU9TKDhfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDguMCkpOwogCiAvKiEgQGVudW0g
V0tEYXRhRGV0ZWN0b3JUeXBlcwogIEBhYnN0cmFjdCBUaGUgdHlwZSBvZiBkYXRhIGRldGVjdGVk
LgpAQCAtNzIsOCArNzIsOCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tEYXRh
RGV0CiAgICAgV0tEYXRhRGV0ZWN0b3JUeXBlTG9va3VwU3VnZ2VzdGlvbiA9IDEgPDwgNiwKICAg
ICBXS0RhdGFEZXRlY3RvclR5cGVBbGwgPSBOU1VJbnRlZ2VyTWF4LAogCi0gICAgV0tEYXRhRGV0
ZWN0b3JUeXBlU3BvdGxpZ2h0U3VnZ2VzdGlvbiBXS19FTlVNX0RFUFJFQ0FURUQoTkEsIE5BLCBX
S19JT1NfVEJBLCBXS19JT1NfVEJBLCAiUGxlYXNlIHVzZSBXS0RhdGFEZXRlY3RvclR5cGVMb29r
dXBTdWdnZXN0aW9uIikgPSBXS0RhdGFEZXRlY3RvclR5cGVMb29rdXBTdWdnZXN0aW9uLAotfSBX
S19FTlVNX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CisgICAgV0tEYXRhRGV0ZWN0b3JUeXBl
U3BvdGxpZ2h0U3VnZ2VzdGlvbiBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJX
S0RhdGFEZXRlY3RvclR5cGVMb29rdXBTdWdnZXN0aW9uIiwgaW9zKFdLX0lPU19UQkEsIFdLX0lP
U19UQkEpKSA9IFdLRGF0YURldGVjdG9yVHlwZUxvb2t1cFN1Z2dlc3Rpb24sCit9IFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAogI2Vsc2UKIApAQCAtOTEsNyArOTEsNyBAQCB0
eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tEYXRhRGV0CiB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBXS1VzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kpIHsKICAgICBXS1VzZXJJ
bnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3lDb250ZW50LAogICAgIFdLVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeVN5c3RlbSwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOwor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CiAKICNlbmRpZgogCkBAIC0x
MDcsMTMgKzEwNywxMyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tBdWRpb3Zp
CiAgICAgV0tBdWRpb3Zpc3VhbE1lZGlhVHlwZUF1ZGlvID0gMSA8PCAwLAogICAgIFdLQXVkaW92
aXN1YWxNZWRpYVR5cGVWaWRlbyA9IDEgPDwgMSwKICAgICBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBl
QWxsID0gTlNVSW50ZWdlck1heAotfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKIC8qISBBIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gb2JqZWN0IGlzIGEgY29s
bGVjdGlvbiBvZiBwcm9wZXJ0aWVzIHdpdGgKICB3aGljaCB0byBpbml0aWFsaXplIGEgd2ViIHZp
ZXcuCiAgQGhlbHBzIENvbnRhaW5zIHByb3BlcnRpZXMgdXNlZCB0byBjb25maWd1cmUgYSBAbGlu
ayBXS1dlYlZpZXcgQC9saW5rLgogICovCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2Ug
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxOU0NvZGluZywgTlNDb3B5aW5nPgog
CiAvKiEgQGFic3RyYWN0IFRoZSBwcm9jZXNzIHBvb2wgZnJvbSB3aGljaCB0byBvYnRhaW4gdGhl
IHZpZXcncyB3ZWIgY29udGVudApAQCAtMTM0LDcgKzEzNCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRoZSB3ZWJzaXRlIGRhdGEgc3RvcmUgdG8g
YmUgdXNlZCBieSB0aGUgd2ViIHZpZXcuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJv
bmcpIFdLV2Vic2l0ZURhdGFTdG9yZSAqd2Vic2l0ZURhdGFTdG9yZSBXS19BVkFJTEFCTEUoMTBf
MTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBXS1dlYnNpdGVEYXRhU3Rv
cmUgKndlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3Mo
OS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhl
ciB0aGUgd2ViIHZpZXcgc3VwcHJlc3NlcwogIGNvbnRlbnQgcmVuZGVyaW5nIHVudGlsIGl0IGlz
IGZ1bGx5IGxvYWRlZCBpbnRvIG1lbW9yeS4KQEAgLTE0NCwxNCArMTQ0LDE0IEBAIFdLX0NMQVNT
X0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogCiAvKiEgQGFic3RyYWN0IFRoZSBuYW1lIG9mIHRoZSBh
cHBsaWNhdGlvbiBhcyB1c2VkIGluIHRoZSB1c2VyIGFnZW50IHN0cmluZy4KICovCi1AcHJvcGVy
dHkgKG51bGxhYmxlLCBub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWVG
b3JVc2VyQWdlbnQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChudWxsYWJs
ZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGFic3Ry
YWN0IEEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgQWlyUGxheSBpcyBhbGxvd2Vk
LgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFlFUy4KICAqLwotQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgYWxsb3dzQWlyUGxheUZvck1lZGlhUGxheWJhY2sgV0tfQVZBSUxB
QkxFKDEwXzExLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWxsb3dzQWlyUGxh
eUZvck1lZGlhUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4w
KSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlcyBtZWRp
YVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBXS0F1ZGlvdmlzdWFsTWVk
aWFUeXBlcyBtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAjaWYgVEFS
R0VUX09TX0lQSE9ORQogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3
aGV0aGVyIEhUTUw1IHZpZGVvcyBwbGF5IGlubGluZQpAQCAtMTcxLDcgKzE3MSw3IEBAIFdLX0NM
QVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogIHBpY3R1cmUtaW4tcGljdHVyZS4KICBAZGlzY3Vz
c2lvbiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBZRVMuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWlj
KSBCT09MIGFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrIFdLX0FWQUlMQUJMRShO
QSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFsbG93c1BpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpOwogCiAvKiEgQGFic3Ry
YWN0IEFuIGVudW0gdmFsdWUgaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBkYXRhIGRldGVjdGlvbiBk
ZXNpcmVkLgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIFdLRGF0YURldGVjdG9y
VHlwZU5vbmUuCkBAIC0xODAsNyArMTgwLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4
XzApCiAgaWYgdGhlIGRhdGFEZXRlY3RvclR5cGVzIHByb3BlcnR5IGlzIHNldCB0byBXS0RhdGFE
ZXRlY3RvclR5cGVQaG9uZU51bWJlciB8IFdLRGF0YURldGVjdG9yVHlwZUxpbmsgfCBXS0RhdGFE
ZXRlY3RvclR5cGVDYWxlbmRhckV2ZW50LgogCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBX
S0RhdGFEZXRlY3RvclR5cGVzIGRhdGFEZXRlY3RvclR5cGVzIFdLX0FWQUlMQUJMRShOQSwgV0tf
SU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgV0tEYXRhRGV0ZWN0b3JUeXBlcyBkYXRh
RGV0ZWN0b3JUeXBlcyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKICNlbHNl
CiAKQEAgLTE4OCw3ICsxODgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKICBA
ZGlzY3Vzc2lvbiBQb3NzaWJsZSB2YWx1ZXMgYXJlIGRlc2NyaWJlZCBpbiBXS1VzZXJJbnRlcmZh
Y2VEaXJlY3Rpb25Qb2xpY3kuCiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgV0tVc2VySW50ZXJmYWNl
RGlyZWN0aW9uUG9saWN5Q29udGVudC4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIFdLVXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeSB1c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IFdL
X0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgV0tVc2Vy
SW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOwogCiAjZW5kaWYKIApAQCAtMTk3LDkg
KzE5Nyw5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQogQGludGVyZmFjZSBXS1dl
YlZpZXdDb25maWd1cmF0aW9uIChXS0RlcHJlY2F0ZWQpCiAKICNpZiBUQVJHRVRfT1NfSVBIT05F
Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyQWN0
aW9uIFdLX0RFUFJFQ0FURUQoTkEsIE5BLCA4XzAsIDlfMCwgIlBsZWFzZSB1c2UgcmVxdWlyZXNV
c2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayIpOwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
bWVkaWFQbGF5YmFja0FsbG93c0FpclBsYXkgV0tfREVQUkVDQVRFRChOQSwgTkEsIDhfMCwgOV8w
LCAiUGxlYXNlIHVzZSBhbGxvd3NBaXJQbGF5Rm9yTWVkaWFQbGF5YmFjayIpOwotQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgcmVxdWlyZXNVc2VyQWN0aW9uRm9yTWVkaWFQbGF5YmFjayBXS19E
RVBSRUNBVEVEKE5BLCBOQSwgOV8wLCAxMF8wLCAiUGxlYXNlIHVzZSBtZWRpYVR5cGVzUmVxdWly
aW5nVXNlckFjdGlvbkZvclBsYXliYWNrIik7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBt
ZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyQWN0aW9uIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoInJlcXVpcmVzVXNlckFjdGlvbkZvck1lZGlhUGxheWJhY2siLCBpb3MoOC4wLCA5
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIG1lZGlhUGxheWJhY2tBbGxvd3NBaXJQ
bGF5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImFsbG93c0FpclBsYXlGb3JN
ZWRpYVBsYXliYWNrIiwgaW9zKDguMCwgOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCByZXF1aXJlc1VzZXJBY3Rpb25Gb3JNZWRpYVBsYXliYWNrIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2si
LCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CiAjZW5kaWYKIAogQGVuZApJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MSwzOCArNDEsMzggQEAKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHdlYWssIHNldHRlcj1fc2V0QWx0ZXJuYXRlV2ViVmlld0Zvck5hdmlnYXRpb25HZXN0dXJl
czopIFdLV2ViVmlldyAqX2FsdGVybmF0ZVdlYlZpZXdGb3JOYXZpZ2F0aW9uR2VzdHVyZXM7CiAK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRyZWF0c1NIQTFTaWduZWRDZXJ0aWZp
Y2F0ZXNBc0luc2VjdXJlOikgQk9PTCBfdHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5z
ZWN1cmUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0VHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmU6KSBCT09MIF90cmVh
dHNTSEExU2lnbmVkQ2VydGlmaWNhdGVzQXNJbnNlY3VyZSBXS19BUElfQVZBSUxBQkxFKGlvcyg5
XzApKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UmVzcGVjdHNJbWFnZU9y
aWVudGF0aW9uOikgQk9PTCBfcmVzcGVjdHNJbWFnZU9yaWVudGF0aW9uIFdLX0FWQUlMQUJMRShX
S19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFByaW50c0JhY2tncm91bmRzOikgQk9PTCBfcHJpbnRzQmFja2dyb3VuZHMgV0tfQVZBSUxBQkxF
KFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXQ6KSBDR0Zsb2F0IF9pbmNy
ZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dCBXS19BVkFJTEFCTEUoV0tfTUFDX1RC
QSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NK
YXZhU2NyaXB0TWFya3VwOikgQk9PTCBfYWxsb3dzSmF2YVNjcmlwdE1hcmt1cCBXS19BVkFJTEFC
TEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRDb252ZXJ0c1Bvc2l0aW9uU3R5bGVPbkNvcHk6KSBCT09MIF9jb252ZXJ0c1Bvc2l0aW9u
U3R5bGVPbkNvcHkgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzTWV0YVJlZnJlc2g6KSBCT09MIF9hbGxv
d3NNZXRhUmVmcmVzaCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMczopIEJPT0wgX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FWQUlMQUJM
RShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldE1haW5Db250ZW50VXNlckdlc3R1cmVPdmVycmlkZUVuYWJsZWQ6KSBCT09MIF9tYWluQ29u
dGVudFVzZXJHZXN0dXJlT3ZlcnJpZGVFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEludmlzaWJsZUF1
dG9wbGF5Tm90UGVybWl0dGVkOikgQk9PTCBfaW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQg
V0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5OikgQk9PTCBfbWVkaWFE
YXRhTG9hZHNBdXRvbWF0aWNhbGx5IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJB
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEF0dGFjaG1lbnRFbGVtZW50RW5h
YmxlZDopIEJPT0wgX2F0dGFjaG1lbnRFbGVtZW50RW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbml0
aWFsQ2FwaXRhbGl6YXRpb25FbmFibGVkOikgQk9PTCBfaW5pdGlhbENhcGl0YWxpemF0aW9uRW5h
YmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBcHBsZVBheUVuYWJsZWQ6KSBCT09MIF9hcHBsZVBheUVuYWJs
ZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UmVzcGVjdHNJbWFnZU9yaWVudGF0aW9uOikgQk9PTCBfcmVzcGVj
dHNJbWFnZU9yaWVudGF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJpbnRz
QmFja2dyb3VuZHM6KSBCT09MIF9wcmludHNCYWNrZ3JvdW5kcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0OikgQ0dG
bG9hdCBfaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NKYXZhU2NyaXB0TWFya3VwOikgQk9PTCBfYWxsb3dz
SmF2YVNjcmlwdE1hcmt1cCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENvbnZlcnRz
UG9zaXRpb25TdHlsZU9uQ29weTopIEJPT0wgX2NvbnZlcnRzUG9zaXRpb25TdHlsZU9uQ29weSBX
S19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c01ldGFSZWZyZXNoOikgQk9PTCBf
YWxsb3dzTWV0YVJlZnJlc2ggV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd1Vu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczopIEJPT0wgX2FsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWFpbkNvbnRlbnRVc2Vy
R2VzdHVyZU92ZXJyaWRlRW5hYmxlZDopIEJPT0wgX21haW5Db250ZW50VXNlckdlc3R1cmVPdmVy
cmlkZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbnZpc2libGVBdXRv
cGxheU5vdFBlcm1pdHRlZDopIEJPT0wgX2ludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
OikgQk9PTCBfbWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkOikgQk9PTCBfYXR0YWNobWVudEVs
ZW1lbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5pdGlhbENhcGl0
YWxpemF0aW9uRW5hYmxlZDopIEJPT0wgX2luaXRpYWxDYXBpdGFsaXphdGlvbkVuYWJsZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcHBsZVBheUVuYWJsZWQ6KSBCT09MIF9hcHBs
ZVBheUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRBbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHk6KSBCT09MIF9hbHdheXNS
dW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHkgV0tfQVZBSUxBQkxFKE5BLCA5XzApOwotQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0SW5saW5lTWVkaWFQbGF5YmFja1JlcXVpcmVzUGxheXNJ
bmxpbmVBdHRyaWJ1dGU6KSBCT09MIF9pbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lu
bGluZUF0dHJpYnV0ZSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFja0FmdGVyRnVsbHNj
cmVlbjopIEJPT0wgX2FsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4gIFdL
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRBbHdheXNSdW5zQXRGb3JlZ3JvdW5kUHJpb3JpdHk6KSBCT09MIF9hbHdheXNSdW5zQXRG
b3JlZ3JvdW5kUHJpb3JpdHkgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lu
bGluZUF0dHJpYnV0ZTopIEJPT0wgX2lubGluZU1lZGlhUGxheWJhY2tSZXF1aXJlc1BsYXlzSW5s
aW5lQXR0cmlidXRlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93c0lubGluZU1lZGlhUGxheWJhY2tBZnRlckZ1
bGxzY3JlZW46KSBCT09MIF9hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrQWZ0ZXJGdWxsc2NyZWVu
ICBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAjZWxzZQotQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0U2hvd3NVUkxzSW5Ub29sVGlwczopIEJPT0wgX3Nob3dzVVJM
c0luVG9vbFRpcHMgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIE5BKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNl
Q29udHJvbHNFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2ltYWdl
Q29udHJvbHNFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7Ci1AcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckVk
aXRpbmdDb250cm9sc01hbmFnZXI6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5n
Q29udHJvbHNNYW5hZ2VyIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBOQSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG93c1VSTHNJblRvb2xUaXBzOikgQk9PTCBfc2hvd3NV
UkxzSW5Ub29sVGlwcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkOikgQk9P
TCBfc2VydmljZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJbWFnZUNvbnRyb2xzRW5h
YmxlZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNldHRlcj1f
c2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjopIEJPT0wgX3Jl
cXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcsIHNldHRlcj1fc2V0VmlzaXRlZExpbmtQcm92aWRlcjopIF9XS1Zpc2l0ZWRMaW5rUHJv
dmlkZXIgKl92aXNpdGVkTGlua1Byb3ZpZGVyIFdLX0RFUFJFQ0FURUQoMTBfMTAsIFdLX01BQ19U
QkEsIDhfMCwgV0tfSU9TX1RCQSwgIlBsZWFzZSB1c2UgX3Zpc2l0ZWRMaW5rU3RvcmUgaW5zdGVh
ZCIpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRWaXNpdGVkTGlu
a1Byb3ZpZGVyOikgX1dLVmlzaXRlZExpbmtQcm92aWRlciAqX3Zpc2l0ZWRMaW5rUHJvdmlkZXIg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX3Zpc2l0ZWRMaW5rU3RvcmUiLCBt
YWNvc3goMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CiAKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0V2Vic2l0ZURhdGFTdG9yZTopIF9X
S1dlYnNpdGVEYXRhU3RvcmUgKl93ZWJzaXRlRGF0YVN0b3JlIFdLX0RFUFJFQ0FURUQoMTBfMTAs
IDEwXzExLCA4XzAsIDlfMCwgIlBsZWFzZSB1c2Ugd2Vic2l0ZURhdGFTdG9yZSBpbnN0ZWFkIik7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JB
dWRpb1BsYXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yQXVkaW9QbGF5YmFjayBX
S19ERVBSRUNBVEVEKFdLX01BQ19UQkEsIFdLX01BQ19UQkEsIFdLX0lPU19UQkEsIFdLX0lPU19U
QkEsICJQbGVhc2UgdXNlIG1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2si
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZv
clZpZGVvUGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1BsYXliYWNr
IFdLX0RFUFJFQ0FURUQoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSwgV0tfSU9T
X1RCQSwgIlBsZWFzZSB1c2UgbWVkaWFUeXBlc1JlcXVpcmluZ1VzZXJBY3Rpb25Gb3JQbGF5YmFj
ayIpOworQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRXZWJzaXRlRGF0
YVN0b3JlOikgX1dLV2Vic2l0ZURhdGFTdG9yZSAqX3dlYnNpdGVEYXRhU3RvcmUgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2Vic2l0ZURhdGFTdG9yZSIsIG1hY29zeCgxMC4x
MCwgMTAuMTEpLCBpb3MoOC4wLCA5LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckF1ZGlvUGxheWJhY2s6KSBCT09MIF9yZXF1aXJlc1Vz
ZXJBY3Rpb25Gb3JBdWRpb1BsYXliYWNrIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1F
TlQoIm1lZGlhVHlwZXNSZXF1aXJpbmdVc2VyQWN0aW9uRm9yUGxheWJhY2siLCBtYWNvc3goV0tf
TUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBLCBXS19JT1NfVEJBKSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JWaWRlb1Bs
YXliYWNrOikgQk9PTCBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yVmlkZW9QbGF5YmFjayBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckFjdGlv
bkZvclBsYXliYWNrIiwgbWFjb3N4KFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSwgV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCShyZXZpc2lvbiAy
MDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBfV0tQYWdpbmF0aW9uCiAgICAgX1dLUGFnaW5hdGlvbk1vZGVSaWdodFRvTGVm
dCwKICAgICBfV0tQYWdpbmF0aW9uTW9kZVRvcFRvQm90dG9tLAogICAgIF9XS1BhZ2luYXRpb25N
b2RlQm90dG9tVG9Ub3AsCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogICAgIF9XS0ltbWVkaWF0ZUFj
dGlvbk5vbmUsCkBAIC00Niw3ICs0Niw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9X
S0ltbWVkaWF0ZUEKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25Mb29rdXBUZXh0LAogICAgIF9XS0lt
bWVkaWF0ZUFjdGlvbk1haWx0b0xpbmssCiAgICAgX1dLSW1tZWRpYXRlQWN0aW9uVGVsTGluawot
fSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSk7CiAKIEBjbGFzcyBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZTsKIEBjbGFz
cyBfV0tGcmFtZUhhbmRsZTsKQEAgLTc0LDIxICs3NCwyMSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
VVJMICpfdW5yZWFjaGFibGVVUkw7CiAKIC0gKHZvaWQpX2xvYWRBbHRlcm5hdGVIVE1MU3RyaW5n
OihOU1N0cmluZyAqKXN0cmluZyBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgZm9yVW5yZWFjaGFi
bGVVUkw6KE5TVVJMICopdW5yZWFjaGFibGVVUkw7Ci0tIChXS05hdmlnYXRpb24gKilfbG9hZERh
dGE6KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgY2hhcmFjdGVy
RW5jb2RpbmdOYW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVuY29kaW5nTmFtZSBiYXNlVVJMOihO
U1VSTCAqKWJhc2VVUkwgdXNlckRhdGE6KGlkKXVzZXJEYXRhIFdLX0FWQUlMQUJMRShXS19NQUNf
VEJBLCBXS19JT1NfVEJBKTsKKy0gKFdLTmF2aWdhdGlvbiAqKV9sb2FkRGF0YTooTlNEYXRhICop
ZGF0YSBNSU1FVHlwZTooTlNTdHJpbmcgKilNSU1FVHlwZSBjaGFyYWN0ZXJFbmNvZGluZ05hbWU6
KE5TU3RyaW5nICopY2hhcmFjdGVyRW5jb2RpbmdOYW1lIGJhc2VVUkw6KE5TVVJMICopYmFzZVVS
TCB1c2VyRGF0YTooaWQpdXNlckRhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNBcnJheSAqX2NlcnRpZmljYXRlQ2hhaW4gV0tfREVQUkVDQVRFRCgxMF8xMCwgMTBfMTEsIDhf
MCwgOV8wLCAidXNlIC1jZXJ0aWZpY2F0ZUNoYWluIik7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TQXJyYXkgKl9jZXJ0aWZpY2F0ZUNoYWluIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoImNlcnRpZmljYXRlQ2hhaW4iLCBtYWNvc3goMTAuMTAsIDEwLjExKSwg
aW9zKDguMCwgOS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TVVJMICpf
Y29tbWl0dGVkVVJMOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAq
X01JTUVUeXBlOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqX3Vz
ZXJBZ2VudCBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIE5TU3RyaW5nICpfdXNlckFnZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjExKSwgaW9zKDkuMCkpOwogCiBAcHJvcGVydHkgKGNvcHksIHNldHRlcj1fc2V0QXBwbGljYXRp
b25OYW1lRm9yVXNlckFnZW50OikgTlNTdHJpbmcgKl9hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdl
bnQ7CiBAcHJvcGVydHkgKGNvcHksIHNldHRlcj1fc2V0Q3VzdG9tVXNlckFnZW50OikgTlNTdHJp
bmcgKl9jdXN0b21Vc2VyQWdlbnQ7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFVzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQ6KSBCT09MIF91c2VyQ29udGVudEV4dGVuc2lv
bnNFbmFibGVkIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldFVzZXJDb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQ6KSBCT09MIF91c2VyQ29u
dGVudEV4dGVuc2lvbnNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIHBpZF90IF93ZWJQcm9j
ZXNzSWRlbnRpZmllcjsKIAotQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1faXNFZGl0YWJs
ZSwgc2V0dGVyPV9zZXRFZGl0YWJsZTopIEJPT0wgX2VkaXRhYmxlIFdLX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzRWRpdGFibGUsIHNldHRl
cj1fc2V0RWRpdGFibGU6KSBCT09MIF9lZGl0YWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMSksIGlvcyg5LjApKTsKIAogLy8gRklYTUU6IFJlbW92ZSB0aGVzZSBvbmNlIG5vYm9keSBp
cyB1c2luZyB0aGVtLgogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0RhdGEgKl9z
ZXNzaW9uU3RhdGVEYXRhOwpAQCAtOTgsNyArOTgsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tJbW1lZGlhdGVBCiAtIChXS05hdmlnYXRpb24gKilfcmVzdG9yZVNlc3Npb25TdGF0
ZTooX1dLU2Vzc2lvblN0YXRlICopc2Vzc2lvblN0YXRlIGFuZE5hdmlnYXRlOihCT09MKW5hdmln
YXRlOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NSZW1vdGVJbnNw
ZWN0aW9uOikgQk9PTCBfYWxsb3dzUmVtb3RlSW5zcGVjdGlvbjsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlbW90ZUluc3BlY3Rpb25OYW1lT3ZlcnJpZGU6KSBOU1N0
cmluZyAqX3JlbW90ZUluc3BlY3Rpb25OYW1lT3ZlcnJpZGUgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0
UmVtb3RlSW5zcGVjdGlvbk5hbWVPdmVycmlkZTopIE5TU3RyaW5nICpfcmVtb3RlSW5zcGVjdGlv
bk5hbWVPdmVycmlkZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWRkc1Zpc2l0
ZWRMaW5rczopIEJPT0wgX2FkZHNWaXNpdGVkTGlua3M7CiAKQEAgLTE1Miw5ICsxNTIsOSBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAKIC8vIERlcHJlY2F0ZWQ6
IFVzZSBbX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTptYXhp
bXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpdIGluc3RlYWQuCiAvLyBUaGlzIGZ1bmN0aW9uIGlz
IGtlcHQgZm9yIGJpbmFyeSBjb21wYXRpYmlsaXR5IHdpdGggaU9TIDguMCwgaXQgY2FuIGJlIHJl
bW92ZWQgYWZ0ZXIgdGhlIGJpbmNvbXBhdCB3aW5kb3cuCi0tICh2b2lkKV9vdmVycmlkZUxheW91
dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6
ZSBtaW5pbXVtTGF5b3V0U2l6ZUZvck1pbmltYWxVSTooQ0dTaXplKW1pbmltdW1MYXlvdXRTaXpl
Rm9yTWluaW1hbFVJIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11
bVVub2JzY3VyZWRTaXplT3ZlcnJpZGUgV0tfREVQUkVDQVRFRChOQSwgTkEsIDhfMCwgOV8wLCAi
dXNlIC1fb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOm1heGlt
dW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOiIpOworLSAodm9pZClfb3ZlcnJpZGVMYXlvdXRQYXJh
bWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpbWluaW11bUxheW91dFNpemUgbWlu
aW11bUxheW91dFNpemVGb3JNaW5pbWFsVUk6KENHU2l6ZSltaW5pbXVtTGF5b3V0U2l6ZUZvck1p
bmltYWxVSSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1f
b3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOm1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlOiIsIGlvcyg4LjAsIDkuMCkpOwogCi0tICh2b2lkKV9vdmVycmlk
ZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6KENHU2l6ZSltaW5pbXVtTGF5
b3V0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTooQ0dTaXplKW1heGltdW1Vbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlIFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKKy0gKHZvaWQpX292ZXJy
aWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTooQ0dTaXplKW1pbmltdW1M
YXlvdXRTaXplIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOihDR1NpemUpbWF4aW11bVVu
b2JzY3VyZWRTaXplT3ZlcnJpZGUgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSk7CiAKIC0gKFVJ
VmlldyAqKV92aWV3Rm9yRmluZFVJOwogCkBAIC0xNjUsMTEgKzE2NSwxMSBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAKIC8vIFB1dHMgdGhlIHZpZXcgaW50byBh
IHN0YXRlIHdoZXJlIGJlaW5nIHRha2VuIG91dCBvZiB0aGUgdmlldyBoaWVyYXJjaHkgYW5kIHJl
c2lnbmluZyBmaXJzdCByZXNwb25kZXIKIC8vIHdpbGwgbm90IGNvdW50IGFzIGJlY29taW5nIGlu
YWN0aXZlIGFuZCB1bmZvY3VzZWQuIFRoZSByZXR1cm5lZCBibG9jayBtdXN0IGJlIGNhbGxlZCB0
byBleGl0IHRoZSBzdGF0ZS4KLS0gKHZvaWQgKF4pKHZvaWQpKV9yZXRhaW5BY3RpdmVGb2N1c2Vk
U3RhdGUgV0tfQVZBSUxBQkxFKE5BLCA5XzApOworLSAodm9pZCAoXikodm9pZCkpX3JldGFpbkFj
dGl2ZUZvY3VzZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsKIAotLSAodm9pZClf
YmVjb21lRmlyc3RSZXNwb25kZXJXaXRoU2VsZWN0aW9uTW92aW5nRm9yd2FyZDooQk9PTClzZWxl
Y3RpbmdGb3J3YXJkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIGRpZEJlY29tZUZp
cnN0UmVzcG9uZGVyKSljb21wbGV0aW9uSGFuZGxlciBXS19BVkFJTEFCTEUoTkEsIDlfMCk7Cist
ICh2b2lkKV9iZWNvbWVGaXJzdFJlc3BvbmRlcldpdGhTZWxlY3Rpb25Nb3ZpbmdGb3J3YXJkOihC
T09MKXNlbGVjdGluZ0ZvcndhcmQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgZGlk
QmVjb21lRmlyc3RSZXNwb25kZXIpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDlfMCkpOwogCi0tIChpZClfc25hcHNob3RMYXllckNvbnRlbnRzRm9yQmFja0ZvcndhcmRM
aXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBXS19BVkFJTEFCTEUoTkEsIDlf
MCk7CistIChpZClfc25hcHNob3RMYXllckNvbnRlbnRzRm9yQmFja0ZvcndhcmRMaXN0SXRlbToo
V0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBXS19BUElfQVZBSUxBQkxFKGlvcyg5XzApKTsK
IC0gKE5TQXJyYXkgKilfZGF0YURldGVjdGlvblJlc3VsdHM7CiAKICNlbHNlCkBAIC0xODAsNyAr
MTgwLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5z
ZXRzOikgQk9PTCBfYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOwogCiAvLyBEZWZh
dWx0IHZhbHVlIGlzIDAuIEEgdmFsdWUgb2YgMCBtZWFucyB0aGUgd2luZG93J3MgYmFja2luZyBz
Y2FsZSBmYWN0b3Igd2lsbCBiZSB1c2VkIGFuZCBhdXRvbWF0aWNhbGx5IHVwZGF0ZSB3aGVuIHRo
ZSB3aW5kb3cgbW92ZXMgc2NyZWVucy4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KSBDR0Zsb2F0IF9vdmVycmlkZURldmljZVNjYWxl
RmFjdG9yIFdLX0FWQUlMQUJMRSgxMF8xMSwgTkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjopIENHRmxvYXQgX292ZXJyaWRlRGV2
aWNlU2NhbGVGYWN0b3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpKTsKIAogQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxl
ZDopIEJPT0wgX3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ7CiAKQEAgLTE4OCwxOCAr
MTg4LDE4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIC8vIGRv
IHNvbWV0aGluZyBjdXN0b20sIHJldHVybiBhbiBvYmplY3QgdGhhdCBjb25mb3JtcyB0byB0aGUg
TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyIHByb3RvY29sLgogLSAoaWQpX2lt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OihfV0tIaXRU
ZXN0UmVzdWx0ICopaGl0VGVzdFJlc3VsdCB3aXRoVHlwZTooX1dLSW1tZWRpYXRlQWN0aW9uVHlw
ZSl0eXBlIHVzZXJEYXRhOihpZDxOU1NlY3VyZUNvZGluZz4pdXNlckRhdGE7CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0aDopIENHRmxvYXQgX21p
bmltdW1MYXlvdXRXaWR0aCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpOworQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0TWluaW11bUxheW91dFdpZHRoOikgQ0dGbG9hdCBfbWlu
aW11bUxheW91dFdpZHRoIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKTsKIAog
Ly8gV2hlbiB1c2luZyBfbWluaW11bUxheW91dFdpZHRoLCB0aGUgd2ViIGNvbnRlbnQgd2lsbCBs
YXkgb3V0IHRvIHRoZSBpbnRyaW5zaWMgaGVpZ2h0CiAvLyBvZiB0aGUgY29udGVudDsgdXNlIHRo
aXMgcHJvcGVydHkgdG8gZm9yY2UgaXQgdG8gbGF5IG91dCB0byB0aGUgaGVpZ2h0IG9mIHRoZSB2
aWV3IGluc3RlYWQuCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRFeHBh
bmRDb250ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dDopIEJPT0wgX3Nob3VsZEV4cGFuZENv
bnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBO
QSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRFeHBhbmRDb250ZW50
VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dDopIEJPT0wgX3Nob3VsZEV4cGFuZENvbnRlbnRUb1Zp
ZXdIZWlnaHRGb3JBdXRvTGF5b3V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
KTsKIAogLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86
KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvOwotLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9w
ZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKKy0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJ
bmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5mbyBmb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilm
cmFtZUhhbmRsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogI2VuZGlmCiAKLS0gKFdLTmF2aWdhdGlvbiAqKV9yZWxvYWRXaXRob3V0Q29u
dGVudEJsb2NrZXJzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKFdL
TmF2aWdhdGlvbiAqKV9yZWxvYWRXaXRob3V0Q29udGVudEJsb2NrZXJzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV9raWxs
V2ViQ29udGVudFByb2Nlc3NBbmRSZXNldFN0YXRlOwogCkBAIC0yMjAsMjYgKzIyMCwyNiBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRUZXh0Wm9vbUZhY3RvcjopIGRvdWJsZSBfdGV4dFpvb21GYWN0b3I7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQYWdlWm9vbUZhY3RvcjopIGRvdWJs
ZSBfcGFnZVpvb21GYWN0b3I7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9
X3NldERpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU6KSBpZCA8X1dLRGlhZ25vc3RpY0xvZ2dpbmdE
ZWxlZ2F0ZT4gX2RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5
XzApOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0RGlhZ25vc3RpY0xv
Z2dpbmdEZWxlZ2F0ZTopIGlkIDxfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlPiBfZGlhZ25v
c3RpY0xvZ2dpbmdEZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5
LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEZpbmREZWxlZ2F0
ZTopIGlkIDxfV0tGaW5kRGVsZWdhdGU+IF9maW5kRGVsZWdhdGU7CiAtICh2b2lkKV9maW5kU3Ry
aW5nOihOU1N0cmluZyAqKXN0cmluZyBvcHRpb25zOihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1h
eENvdW50OihOU1VJbnRlZ2VyKW1heENvdW50OwogLSAodm9pZClfY291bnRTdHJpbmdNYXRjaGVz
OihOU1N0cmluZyAqKXN0cmluZyBvcHRpb25zOihfV0tGaW5kT3B0aW9ucylvcHRpb25zIG1heENv
dW50OihOU1VJbnRlZ2VyKW1heENvdW50OwogLSAodm9pZClfaGlkZUZpbmRVSTsKIAotQHByb3Bl
cnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0Rm9ybURlbGVnYXRlOikgaWQgPF9XS0Zv
cm1EZWxlZ2F0ZT4gX2Zvcm1EZWxlZ2F0ZSBXS19ERVBSRUNBVEVEKDEwXzEwLCBXS19NQUNfVEJB
LCA4XzAsIFdLX0lPU19UQkEsICJ1c2UgX2lucHV0RGVsZWdhdGUiKTsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldElucHV0RGVsZWdhdGU6KSBpZCA8X1dLSW5wdXREZWxl
Z2F0ZT4gX2lucHV0RGVsZWdhdGUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEp
OworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0Rm9ybURlbGVnYXRlOikg
aWQgPF9XS0Zvcm1EZWxlZ2F0ZT4gX2Zvcm1EZWxlZ2F0ZSBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJfaW5wdXREZWxlZ2F0ZSIsIG1hY29zeCgxMC4xMCwgV0tfTUFDX1RCQSks
IGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0
ZXI9X3NldElucHV0RGVsZWdhdGU6KSBpZCA8X1dLSW5wdXREZWxlZ2F0ZT4gX2lucHV0RGVsZWdh
dGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9pc0Rpc3BsYXlpbmdT
dGFuZGFsb25lSW1hZ2VEb2N1bWVudCkgQk9PTCBfZGlzcGxheWluZ1N0YW5kYWxvbmVJbWFnZURv
Y3VtZW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X2lzRGlzcGxh
eWluZ1N0YW5kYWxvbmVNZWRpYURvY3VtZW50KSBCT09MIF9kaXNwbGF5aW5nU3RhbmRhbG9uZU1l
ZGlhRG9jdW1lbnQ7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcm9sbFBl
cmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkOikgQk9PTCBfc2Nyb2xsUGVyZm9ybWFuY2VE
YXRhQ29sbGVjdGlvbkVuYWJsZWQgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwotQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpfc2Nyb2xsUGVyZm9ybWFuY2VEYXRhIFdL
X0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFNjcm9sbFBlcmZvcm1hbmNlRGF0YUNvbGxlY3Rpb25FbmFibGVkOikgQk9PTCBfc2Nyb2xsUGVy
Zm9ybWFuY2VEYXRhQ29sbGVjdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXkg
Kl9zY3JvbGxQZXJmb3JtYW5jZURhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBp
b3MoOS4wKSk7CiAKLS0gKHZvaWQpX3NhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbTooV0tC
YWNrRm9yd2FyZExpc3RJdGVtICopaXRlbSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CistICh2
b2lkKV9zYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRl
bSAqKWl0ZW0gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2FsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5
YmFjaywgc2V0dGVyPV9zZXRBbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s6KSBCT09M
IF9hbGxvd3NNZWRpYURvY3VtZW50SW5saW5lUGxheWJhY2s7CiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBfd2ViUHJvY2Vzc0lzUmVzcG9uc2l2ZSBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IEJPT0wgX3dlYlByb2Nlc3NJc1Jlc3BvbnNpdmUgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApAQCAtMjUxLDIxICsyNTEsMjEg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogQGludGVyZmFjZSBX
S1dlYlZpZXcgKFdLVGVzdGluZykKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IF9jb250ZW50VmlzaWJsZVJlY3QgV0tfQVZBSUxB
QkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwotLSAoQ0dQb2ludClfY29udmVydFBvaW50RnJv
bUNvbnRlbnRzVG9WaWV3OihDR1BvaW50KXBvaW50IFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKLS0gKENHUG9pbnQpX2NvbnZlcnRQb2ludEZyb21WaWV3VG9Db250ZW50czoo
Q0dQb2ludClwb2ludCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBfY29udGVudFZpc2libGVSZWN0IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
Q0dQb2ludClfY29udmVydFBvaW50RnJvbUNvbnRlbnRzVG9WaWV3OihDR1BvaW50KXBvaW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
Q0dQb2ludClfY29udmVydFBvaW50RnJvbVZpZXdUb0NvbnRlbnRzOihDR1BvaW50KXBvaW50IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCi0t
ICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dCBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19U
QkEpOwotLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhclByZXZpb3VzIFdLX0FWQUlMQUJMRShO
QSwgV0tfSU9TX1RCQSk7CistICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dCBXS19BUElf
QVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFy
UHJldmlvdXMgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCi1AcHJvcGVydHkg
KG5vbmF0b21pYykgQk9PTCBmb3JjZUlQYWRTdHlsZVpvb21PbklucHV0Rm9jdXMgV0tfQVZBSUxB
QkxFKE5BLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGZvcmNlSVBh
ZFN0eWxlWm9vbU9uSW5wdXRGb2N1cyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7
CiAjZW5kaWYKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBOQSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3N4KFdLX01BQ19UQkEpKTsKICNlbmRpZgogCi0tICh2b2lkKV9kb0FmdGVyTmV4dFByZXNlbnRh
dGlvblVwZGF0ZToodm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sgV0tfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpOworLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRh
dGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29y
ZC5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFSZWNvcmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMzEgKzMyLDMx
IEBACiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURh
dGFUeXBlRGlza0NhY2hlIE9uLWRpc2sgY2FjaGVzLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICog
Y29uc3QgV0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzAp
OworV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3Rh
bnQgV0tXZWJzaXRlRGF0YVR5cGVNZW1vcnlDYWNoZSBJbi1tZW1vcnkgY2FjaGVzLiAqLwotV0tf
RVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVNZW1vcnlDYWNoZSBXS19B
VkFJTEFCTEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNp
dGVEYXRhVHlwZU1lbW9yeUNhY2hlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9z
KDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGUgSFRNTCBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbiBjYWNoZXMuICovCi1XS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZU9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAq
IGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tX
ZWJzaXRlRGF0YVR5cGVDb29raWVzIENvb2tpZXMuICovCi1XS19FWFRFUk4gTlNTdHJpbmcgKiBj
b25zdCBXS1dlYnNpdGVEYXRhVHlwZUNvb2tpZXMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVDb29raWVzIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdL
V2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2UgSFRNTCBzZXNzaW9uIHN0b3JhZ2UuICovCi1X
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZVNlc3Npb25TdG9yYWdl
IFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdL
V2Vic2l0ZURhdGFUeXBlU2Vzc2lvblN0b3JhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3RhbnQgV0tXZWJzaXRlRGF0YVR5cGVMb2NhbFN0
b3JhZ2UgSFRNTCBsb2NhbCBzdG9yYWdlLiAqLwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3Qg
V0tXZWJzaXRlRGF0YVR5cGVMb2NhbFN0b3JhZ2UgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOwor
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVMb2NhbFN0b3JhZ2Ug
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIC8qISBAY29uc3Rh
bnQgV0tXZWJzaXRlRGF0YVR5cGVXZWJTUUxEYXRhYmFzZXMgV2ViU1FMIGRhdGFiYXNlcy4gKi8K
LVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJh
c2VzIFdLX0FWQUlMQUJMRSgxMF8xMSwgOV8wKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IFdLV2Vic2l0ZURhdGFUeXBlV2ViU1FMRGF0YWJhc2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpOwogCiAvKiEgQGNvbnN0YW50IFdLV2Vic2l0ZURhdGFUeXBlSW5k
ZXhlZERCRGF0YWJhc2VzIEluZGV4ZWREQiBkYXRhYmFzZXMuICovCi1XS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBXS1dlYnNpdGVEYXRhVHlwZUluZGV4ZWREQkRhdGFiYXNlcyBXS19BVkFJTEFC
TEUoMTBfMTEsIDlfMCk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRh
VHlwZUluZGV4ZWREQkRhdGFiYXNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKTsKIAogLyohIEEgV0tXZWJzaXRlRGF0YVJlY29yZCByZXByZXNlbnRzIHdlYnNpdGUg
ZGF0YSwgZ3JvdXBlZCBieSBkb21haW4gbmFtZSB1c2luZyB0aGUgcHVibGljIHN1ZmZpeCBsaXN0
LiAqLwotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzExLCA5XzApCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpCiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFSZWNvcmQg
OiBOU09iamVjdAogCiAvKiEgQGFic3RyYWN0IFRoZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBkYXRh
IHJlY29yZC4gVGhpcyBpcyB1c3VhbGx5IHRoZSBkb21haW4gbmFtZS4gKi8KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFSZWNvcmRQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDE0IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IEBjbGFzcyBfV0tXZWJzaXRlRGF0YVNpemU7CiAKLVdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0
IF9XS1dlYnNpdGVEYXRhVHlwZUhTVFNDYWNoZSBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Ci1X
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVNZWRpYUtleXMgV0tf
QVZBSUxBQkxFKDEwXzExLCA5XzApOwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vi
c2l0ZURhdGFUeXBlU2VhcmNoRmllbGRSZWNlbnRTZWFyY2hlcyBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRl
RGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlw
ZUhTVFNDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK1dL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZU1lZGlhS2V5cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKK1dLX0VYVEVSTiBOU1N0cmlu
ZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVjZW50U2VhcmNoZXMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQotV0tfRVhURVJOIE5TU3RyaW5nICogY29u
c3QgX1dLV2Vic2l0ZURhdGFUeXBlUGx1Z0luRGF0YSBXS19BVkFJTEFCTEUoMTBfMTEsIE5BKTsK
K1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVBsdWdJbkRhdGEg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpKTsKICNlbmRpZgogCiBAaW50ZXJmYWNlIFdL
V2Vic2l0ZURhdGFSZWNvcmQgKFdLUHJpdmF0ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUuaAkocmV2aXNp
b24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgogIG1ha2UgdXNlIG9mLiBUaGlzIGluY2x1ZGVzIGNvb2tpZXMsIGRpc2sg
YW5kIG1lbW9yeSBjYWNoZXMsIGFuZCBwZXJzaXN0ZW50IGRhdGEgc3VjaCBhcyBXZWJTUUwsCiAg
SW5kZXhlZERCIGRhdGFiYXNlcywgYW5kIGxvY2FsIHN0b3JhZ2UuCiAgKi8KLVdLX0NMQVNTX0FW
QUlMQUJMRSgxMF8xMSwgOV8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlv
cyg5LjApKQogQGludGVyZmFjZSBXS1dlYnNpdGVEYXRhU3RvcmUgOiBOU09iamVjdCA8TlNDb2Rp
bmc+CiAKIC8qIEBhYnN0cmFjdCBSZXR1cm5zIHRoZSBkZWZhdWx0IGRhdGEgc3RvcmUuICovCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEzICszMSwxMyBAQCBOU19BU1NVTUVfTk9OTlVMTF9C
RUdJTgogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9y
ZUZldGNoT3B0aW9ucykgewogICAgIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbkNvbXB1
dGVTaXplcyA9IDEgPDwgMCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9T
X1RCQSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwogCiBAaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFTdG9yZSAoV0tQcml2YXRlKQogCiAt
ICh2b2lkKV9mZXRjaERhdGFSZWNvcmRzT2ZUeXBlczooTlNTZXQ8TlNTdHJpbmcgKj4gKilkYXRh
VHlwZXMgd2l0aE9wdGlvbnM6KF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpb3B0aW9u
cyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxXS1dlYnNpdGVEYXRhUmVjb3Jk
ICo+ICopKWNvbXBsZXRpb25IYW5kbGVyOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDopIEJPT0wgX3Jlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkOikgQk9PTCBfcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0ZlYXR1cmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dpbmRvd0Zl
YXR1cmVzLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXaW5kb3dGZWF0dXJlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3
IEBACiAgKi8KIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgx
MF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQog
QGludGVyZmFjZSBXS1dpbmRvd0ZlYXR1cmVzIDogTlNPYmplY3QKIAogLyohIEBhYnN0cmFjdCBC
T09MLiBXaGV0aGVyIHRoZSBtZW51IGJhciBzaG91bGQgYmUgdmlzaWJsZS4gbmlsIGlmIG1lbnUg
YmFyIHZpc2liaWxpdHkgd2FzIG5vdCBzcGVjaWZpZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50
SW5mby5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDE3
ICszNiwxNyBAQAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLQWN0aXZhdGVkRWxlbWVu
dFR5cGUpIHsKICAgICBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxpbmssCiAgICAgX1dLQWN0aXZh
dGVkRWxlbWVudFR5cGVJbWFnZSwKLSAgICBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUF0dGFjaG1l
bnQgV0tfRU5VTV9BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSksCi19IFdLX0VOVU1f
QVZBSUxBQkxFKDEwXzEwLCA4XzApOworICAgIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlQXR0YWNo
bWVudCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KSwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKLVdLX0NM
QVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyA6IE5TT2Jq
ZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNVUkwgKlVSTDsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKnRpdGxlOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZSB0eXBlOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgYm91bmRpbmdSZWN0OwotQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqSUQgV0tfQVZBSUxBQkxFKFdLX01BQ19U
QkEsIFdLX0lPU19UQkEpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmlu
ZyAqSUQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBjb3B5KSBVSUltYWdlICppbWFnZTsKICNlbHNlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbi5oCShy
ZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0F1dG9tYXRpb25TZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAog
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS0F1dG9tYXRpb25TZXNzaW9uIDogTlNPYmplY3QK
IAogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICpzZXNzaW9uSWRlbnRpZmll
cjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQ29udGV4dE1l
bnVFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCShyZXZpc2lvbiAyMDI3ODgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0NvbnRleHRNZW51RWxlbWVu
dEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgTkEpCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpKQogQGludGVyZmFjZSBfV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQGVuZApJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tE
aWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS0RpYWdub3N0aWMKICAgICBfV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MsCiAg
ICAgX1dLRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLAogICAgIF9XS0RpYWdub3N0aWNMb2dn
aW5nUmVzdWx0Tm9vcCwKLX0gV0tfRU5VTV9BVkFJTEFCTEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogCiBAcHJvdG9jb2wgX1dLRGlh
Z25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmgJKHJldmlz
aW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93
bmxvYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBAY2xhc3MgV0tXZWJW
aWV3OwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLRG93bmxvYWQgOiBOU09i
amVjdAogCiAtICh2b2lkKWNhbmNlbDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCShyZXZpc2lvbiAyMDI3ODgp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTMgKzQxLDEzIEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS0VsZW1lbnRBY3QKICAgICBfV0tFbGVtZW50QWN0aW9uVHlwZVNhdmVJbWFnZSwK
ICNpZiAhZGVmaW5lZChUQVJHRVRfT1NfSU9TKSB8fCBUQVJHRVRfT1NfSU9TCiAgICAgX1dLRWxl
bWVudEFjdGlvblR5cGVBZGRUb1JlYWRpbmdMaXN0LAotICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBl
T3BlbkluRGVmYXVsdEJyb3dzZXIgV0tfRU5VTV9BVkFJTEFCTEUoTkEsIDlfMCksCi0gICAgX1dL
RWxlbWVudEFjdGlvblR5cGVPcGVuSW5FeHRlcm5hbEFwcGxpY2F0aW9uIFdLX0VOVU1fQVZBSUxB
QkxFKE5BLCA5XzApLAorICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlT3BlbkluRGVmYXVsdEJyb3dz
ZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8wKSksCisgICAgX1dLRWxlbWVudEFjdGlvblR5cGVP
cGVuSW5FeHRlcm5hbEFwcGxpY2F0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDlfMCkpLAogI2Vu
ZGlmCi0gICAgX1dLRWxlbWVudEFjdGlvblR5cGVTaGFyZSBXS19FTlVNX0FWQUlMQUJMRShOQSwg
V0tfSU9TX1RCQSksCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzEwLCA4XzApOworICAgIF9XS0Vs
ZW1lbnRBY3Rpb25UeXBlU2hhcmUgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpLAor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAotV0tfQ0xBU1Nf
QVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwg
aW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS0VsZW1lbnRBY3Rpb24gOiBOU09iamVjdAogCiArIChp
bnN0YW5jZXR5cGUpZWxlbWVudEFjdGlvbldpdGhUeXBlOihfV0tFbGVtZW50QWN0aW9uVHlwZSl0
eXBlOwpAQCAtNTUsNyArNTUsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKIAog
KyAoaW5zdGFuY2V0eXBlKWVsZW1lbnRBY3Rpb25XaXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUg
YWN0aW9uSGFuZGxlcjooV0tFbGVtZW50QWN0aW9uSGFuZGxlciloYW5kbGVyOwogCi0tICh2b2lk
KXJ1bkFjdGlvbldpdGhFbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKilpbmZv
IFdLX0FWQUlMQUJMRShOQSwgOV8wKTsKKy0gKHZvaWQpcnVuQWN0aW9uV2l0aEVsZW1lbnRJbmZv
OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoOV8w
KSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLRWxlbWVudEFjdGlvblR5
cGUgdHlwZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcqIHRpdGxl
OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50
YWxGZWF0dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkK
IEBpbnRlcmZhY2UgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmtleTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRmluZE9wdGlvbnMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0ZpbmRPcHRpb25zLmgJ
KHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRmluZE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNiBAQCB0eXBlZGVm
IE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLRmluZE9wCiAgICAgX1dLRmluZE9wdGlvbnNJcnJl
bGV2YW50Rm9ySW5jcmVtZW50YWxSZXN1bHRzID0gX1dLRmluZE9wdGlvbnNTaG93T3ZlcmxheSB8
IF9XS0ZpbmRPcHRpb25zU2hvd0ZpbmRJbmRpY2F0b3IgfCBfV0tGaW5kT3B0aW9uc1Nob3dIaWdo
bGlnaHQgfCBfV0tGaW5kT3B0aW9uc0RldGVybWluZU1hdGNoSW5kZXgsCiAgICAgX1dLRmluZE9w
dGlvbnNJcnJlbGV2YW50Rm9yQmF0Y2hSZXN1bHRzID0gX1dLRmluZE9wdGlvbnNCYWNrd2FyZHMg
fCBfV0tGaW5kT3B0aW9uc1dyYXBBcm91bmQgfCBfV0tGaW5kT3B0aW9uc0lycmVsZXZhbnRGb3JJ
bmNyZW1lbnRhbFJlc3VsdHMKIAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKK30g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSk7CiAKICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGb3JtSW5wdXRTZXNzaW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tG
b3JtSW5wdXRTZXNzaW9uLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9ybUlucHV0U2Vzc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiwxNCArMzYsMTQgQEAKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0
ZXI9aXNWYWxpZCkgQk9PTCB2YWxpZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqdXNlck9iamVjdDsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4gZm9jdXNlZEVsZW1lbnRJ
bmZvIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4gZm9jdXNlZEVsZW1l
bnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkp
IE5TU3RyaW5nICphY2Nlc3NvcnlWaWV3Q3VzdG9tQnV0dG9uVGl0bGU7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgc3Ryb25nKSBVSVZpZXcgKmN1c3RvbUlucHV0VmlldyBXS19BVkFJTEFCTEUoTkEs
IFdLX0lPU19UQkEpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8VUlUZXh0
U3VnZ2VzdGlvbiAqPiAqc3VnZ2VzdGlvbnMgV0tfQVZBSUxBQkxFKE5BLCBXS19JT1NfVEJBKTsK
LUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFjY2Vzc29yeVZpZXdTaG91bGROb3RTaG93IFdL
X0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
TlNTdHJpbmcgKnRleHRDb250ZW50VHlwZSBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgVUlWaWV3ICpjdXN0b21JbnB1dFZpZXcgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHkpIE5TQXJyYXk8VUlUZXh0U3VnZ2VzdGlvbiAqPiAqc3VnZ2VzdGlvbnMgV0tfQVBJX0FWQUlM
QUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYWNjZXNz
b3J5Vmlld1Nob3VsZE5vdFNob3cgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TU3RyaW5nICp0ZXh0Q29udGVudFR5cGUgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogI2VuZGlmCiAKIEBlbmQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5wdXREZWxlZ2F0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5wdXREZWxl
Z2F0ZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0lucHV0RGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBA
QAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY2Nlc3NvcnlWaWV3Q3Vz
dG9tQnV0dG9uVGFwcGVkSW5Gb3JtSW5wdXRTZXNzaW9uOihpZCA8X1dLRm9ybUlucHV0U2Vzc2lv
bj4paW5wdXRTZXNzaW9uOwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBo
YXNTdWdnZXN0aW9uc0ZvckN1cnJlbnRTdHJpbmdJbklucHV0U2Vzc2lvbjooaWQgPF9XS0Zvcm1J
bnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbjsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBzdWdnZXN0aW9uc0ZvclN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgaW5J
bnB1dFNlc3Npb246KGlkIDxfV0tGb3JtSW5wdXRTZXNzaW9uPilpbnB1dFNlc3Npb247Ci0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluc2VydFRleHRTdWdnZXN0aW9uOihV
SVRleHRTdWdnZXN0aW9uICopc3VnZ2VzdGlvbiBpbklucHV0U2Vzc2lvbjooaWQgPF9XS0Zvcm1J
bnB1dFNlc3Npb24+KWlucHV0U2Vzc2lvbiBXS19BVkFJTEFCTEUoTkEsIFdLX0lPU19UQkEpOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbnNlcnRUZXh0U3VnZ2VzdGlv
bjooVUlUZXh0U3VnZ2VzdGlvbiAqKXN1Z2dlc3Rpb24gaW5JbnB1dFNlc3Npb246KGlkIDxfV0tG
b3JtSW5wdXRTZXNzaW9uPilpbnB1dFNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOwogI2VuZGlmCiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLTGF5b3V0TW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLTGF5b3V0TW9kZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0xheW91dE1vZGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNiArMzcsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dL
TGF5b3V0TW9kCiAgICAgLy8gTGF5IG91dCB0aGUgdmlldyBhdCBhIGhldXJpc3RpY2FsbHktZGV0
ZXJtaW5lZCBzaXplIGJhc2VkIG9uIHRoZSBtaW5pbXVtIHNpemUgb2YgdGhlIGRvY3VtZW50Lgog
ICAgIF9XS0xheW91dE1vZGVEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNp
emUgPSA0LAogCi19IFdLX0VOVU1fQVZBSUxBQkxFKDEwXzExLCA5XzApOworfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS092ZXJsYXlTY3JvbGxiYXJTdHlsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLT3Zlcmxh
eVNjcm9sbGJhclN0eWxlLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDQgKzM0LDQgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS092ZXJs
YXlTYwogICAgIC8vIGhldXJpc3RpYyB0byBjaG9vc2UgYW4gYXBwcm9wcmlhdGUgY29sb3IuCiAg
ICAgX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlQXV0b21hdGljCiAKLX0gV0tfRU5VTV9BVkFJTEFC
TEUoMTBfMTEsIDlfMCk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDku
MCkpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyMDI3
ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNSArMjgsMTUgQEAKIAogI2lm
IFdLX0FQSV9FTkFCTEVECiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgY29weSkgTlNVUkwgKmluamVjdGVkQnVuZGxlVVJMOwogQHByb3BlcnR5IChu
b25hdG9taWMpIE5TVUludGVnZXIgbWF4aW11bVByb2Nlc3NDb3VudDsKLUBwcm9wZXJ0eSAobm9u
YXRvbWljKSBOU0ludGVnZXIgZGlza0NhY2hlU2l6ZU92ZXJyaWRlIFdLX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU0ludGVnZXIgZGlza0NhY2hlU2l6ZU92
ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXkgKmNhY2hlUGFydGl0aW9uZWRVUkxTY2hlbWVz
OwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFsd2F5
c1JldmFsaWRhdGVkVVJMU2NoZW1lcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkaXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlk
YXRpb25FbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU0FycmF5PE5TU3RyaW5nICo+ICphbHdheXNSZXZhbGlk
YXRlZFVSTFNjaGVtZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBkaXNrQ2FjaGVTcGVjdWxh
dGl2ZVZhbGlkYXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLU2Vzc2lvblN0YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tTZXNzaW9uU3RhdGUuaAkocmV2aXNpb24gMjAy
Nzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tTZXNzaW9uU3Rh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0
aW9uL0ZvdW5kYXRpb24uaD4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS1Nl
c3Npb25TdGF0ZSA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aERhdGE6KE5T
RGF0YSAqKWRhdGE7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1RodW1ibmFpbFZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDcgKzMzLDcgQEAKIAogQGNsYXNzIFdLVmlldzsKIAotV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCiBAaW50ZXJmYWNlIF9XS1RodW1ibmFpbFZpZXcgOiBOU1ZpZXcKIAogLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBmcm9tV0tWaWV3OihXS1ZpZXcgKil3
a1ZpZXc7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaAkocmV2aXNpb24g
MjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAog
QGNsYXNzIF9XS1VzZXJDb250ZW50RmlsdGVyOwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTEs
IDlfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRl
cmZhY2UgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSA6IE5TT2JqZWN0CiAKICsgKGluc3Rh
bmNldHlwZSlkZWZhdWx0U3RvcmU7CkBAIC00MSwxMyArNDEsMTMgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKDEwXzExLCA5XzApCiAKIEBlbmQKIAotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dL
VXNlckNvbnRlbnRFeHRlbnNpb25zRG9tYWluIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19J
T1NfVEJBKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1VzZXJDb250ZW50RXh0ZW5z
aW9uc0RvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZUVycm9yQ29kZSkgewogICAgIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVF
cnJvckxvb2t1cEZhaWxlZCA9IDEsCiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVy
cm9yVmVyc2lvbk1pc21hdGNoLAogICAgIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJv
ckNvbXBpbGVGYWlsZWQsCiAgICAgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yUmVt
b3ZlRmFpbGVkLAotfSBXS19FTlVNX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
K30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaAkocmV2
aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tV
c2VyQ29udGVudEZpbHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAKICNp
ZiBXS19BUElfRU5BQkxFRAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTEsIDlfMCkKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSkKIEBpbnRlcmZhY2UgX1dLVXNl
ckNvbnRlbnRGaWx0ZXIgOiBOU09iamVjdAogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50V29ybGQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50V29ybGQuaAko
cmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tVc2VyQ29udGVudFdvcmxkLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAog
TlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01BQ19UQkEs
IFdLX0lPU19UQkEpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50V29ybGQgOiBOU09iamVjdAog
CiArIChfV0tVc2VyQ29udGVudFdvcmxkICopd29ybGRXaXRoTmFtZTooTlNTdHJpbmcgKiluYW1l
OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVT
aGVldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVXNlclN0eWxlU2hlZXQuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw3ICszMyw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIEBjbGFzcyBfV0tVc2Vy
Q29udGVudFdvcmxkOwogCi1XS19DTEFTU19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RC
QSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSkKIEBpbnRlcmZhY2UgX1dLVXNlclN0eWxlU2hlZXQgOiBOU09iamVjdCA8TlNDb3B5aW5nPgog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpzb3VyY2U7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5r
UHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tWaXNpdGVkTGlua1Byb3ZpZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLVdL
X0NMQVNTX0RFUFJFQ0FURUQoMTBfMTAsIFdLX01BQ19UQkEsIDhfMCwgV0tfSU9TX1RCQSwgIlBs
ZWFzZSB1c2UgX1dLVmlzaXRlZExpbmtTdG9yZSBpbnN0ZWFkIikKK1dLX0NMQVNTX0RFUFJFQ0FU
RURfV0lUSF9SRVBMQUNFTUVOVCgiX1dLVmlzaXRlZExpbmtTdG9yZSIsIG1hY29zeCgxMC4xMCwg
V0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQogQGludGVyZmFjZSBfV0tWaXNpdGVk
TGlua1Byb3ZpZGVyIDogX1dLVmlzaXRlZExpbmtTdG9yZQogQGVuZAogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5rU3RvcmUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Zpc2l0ZWRMaW5r
U3RvcmUuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tWaXNpdGVkTGlua1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4
LDcgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwg
OF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVy
ZmFjZSBfV0tWaXNpdGVkTGlua1N0b3JlIDogTlNPYmplY3QKIAogLSAodm9pZClhZGRWaXNpdGVk
TGlua1dpdGhVUkw6KE5TVVJMICopVVJMOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVJlY29yZC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFSZWNvcmQuaAkocmV2aXNp
b24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJz
aXRlRGF0YVJlY29yZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbXBv
cnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhUmVjb3JkLmg+CiAKLVdLX0NMQVNTX0RFUFJFQ0FURUQo
MTBfMTEsIDEwXzExLCA5XzAsIDlfMCwgIlBsZWFzZSB1c2UgV0tXZWJzaXRlRGF0YVJlY29yZCBp
bnN0ZWFkIikKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJzaXRl
RGF0YVJlY29yZCIsIG1hY29zeCgxMC4xMSwgMTAuMTEpLCBpb3MoOS4wLCA5LjApKQogQGludGVy
ZmFjZSBfV0tXZWJzaXRlRGF0YVJlY29yZCA6IFdLV2Vic2l0ZURhdGFSZWNvcmQKIEBlbmQKIApJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVNp
emUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYnNpdGVEYXRhU2l6ZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw3ICszMSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
eChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQogQGludGVyZmFjZSBfV0tXZWJzaXRlRGF0
YVNpemUgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIHVuc2ln
bmVkIGxvbmcgbG9uZyB0b3RhbFNpemU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmUuaAkocmV2aXNpb24g
MjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRl
RGF0YVN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEwICszMSwxMCBAQAogCiB0eXBlZGVm
IE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tXZWJzaXRlRGF0YVR5cGVzKSB7CiAgICAgV0tXZWJz
aXRlRGF0YVR5cGVBbGwgPSBOU1VJbnRlZ2VyTWF4LAotfSBXS19FTlVNX0FWQUlMQUJMRSgxMF8x
MSwgOV8wKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAK
IAotV0tfQ0xBU1NfREVQUkVDQVRFRCgxMF8xMCwgMTBfMTEsIDhfMCwgOV8wLCAiUGxlYXNlIHVz
ZSBXS1dlYnNpdGVEYXRhU3RvcmUgaW5zdGVhZCIpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIldLV2Vic2l0ZURhdGFTdG9yZSIsIG1hY29zeCgxMC4xMCwgMTAuMTEpLCBp
b3MoOC4wLCA5LjApKQogQGludGVyZmFjZSBfV0tXZWJzaXRlRGF0YVN0b3JlIDogTlNPYmplY3QK
IAogKyAoX1dLV2Vic2l0ZURhdGFTdG9yZSAqKWRlZmF1bHREYXRhU3RvcmU7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
Rm9ybURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5G
b3JtRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAKIAog
Ly8gVGhlIHJldHVybiB2YWx1ZSBpcyBleHBvc2VkIGluIHRoZSBVSSBwcm9jZXNzIHZpYSB0aGUg
dXNlck9iamVjdCBwcm9wZXJ0eSBvZiB0aGUgX1dLRm9ybUlucHV0U2Vzc2lvbiBvYmplY3QuCiAt
IChOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ciAqKWNvbnRyb2xsZXIgd2lsbEJlZ2luSW5wdXRTZXNzaW9uRm9yRWxlbWVudDooV0tXZWJQcm9j
ZXNzUGx1Z0luTm9kZUhhbmRsZSAqKW5vZGUgaW5GcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUgKilmcmFtZTsKLS0gKE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKilfd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyICopY29udHJvbGxlciB3aWxsQmVnaW5JbnB1dFNlc3Npb25Gb3JFbGVt
ZW50OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopbm9kZSBpbkZyYW1lOihXS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZSAqKWZyYW1lIHVzZXJJc0ludGVyYWN0aW5nOihCT09MKXVzZXJJc0lu
dGVyYWN0aW5nIFdLX0FWQUlMQUJMRShOQSwgV0tfSU9TX1RCQSk7CistIChOU09iamVjdCA8TlNT
ZWN1cmVDb2Rpbmc+ICopX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6
KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIg
d2lsbEJlZ2luSW5wdXRTZXNzaW9uRm9yRWxlbWVudDooV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhh
bmRsZSAqKW5vZGUgaW5GcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgKilmcmFtZSB1c2Vy
SXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRlcmFjdGluZyBXS19BUElfQVZBSUxBQkxFKGlv
cyhXS19JT1NfVEJBKSk7CiAKIC0gKEJPT0wpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXJTaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzOihXS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIgKiljb250cm9sbGVyOwogLSAodm9pZClfd2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlciBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHM6
KE5TQXJyYXkgKillbGVtZW50czsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQAogQGNsYXNzIFdLV2Vi
UHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGU7CiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0
V29ybGQ7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVn
SW5GcmFtZSA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNV
UkwgKlVSTDsKQEAgLTQ3LDggKzQ3LDggQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzAp
CiAKIC8vIFJldHVybnMgVVJMcyBvcmRlcmVkIGJ5IHJlc29sdXRpb24gaW4gZGVzY2VuZGluZyBv
cmRlci4KIC8vIEZJWE1FOiBUaGVzZSBzaG91bGQgYmUgdGFnZ2VkIG5vbm51bGwuCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8TlNVUkwgKj4gKmFwcGxlVG91Y2hJY29u
VVJMcyBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8TlNVUkwgKj4gKmZhdmljb25VUkxzIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgTlNBcnJheTxOU1VSTCAqPiAqYXBwbGVUb3VjaEljb25VUkxzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PE5TVVJMICo+ICpmYXZpY29uVVJMcyBXS19BUElfQVZB
SUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAoSlNDb250
ZXh0ICopanNDb250ZXh0Rm9yV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICop
d29ybGQ7CiAtIChXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0ICopaGl0VGVzdDooQ0dQ
b2ludClwb2ludDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0LmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBA
QAogCiBAY2xhc3MgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZTsKIAotV0tfQ0xBU1NfQVZB
SUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9z
KDguMCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgOiBOU09i
amVjdAogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxl
ICpub2RlSGFuZGxlOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luTm9kZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxNiArMzcsMTYgQEAKIAog
QGNsYXNzIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lOwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBf
MTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBp
bnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSA6IE5TT2JqZWN0CiAKICsgKFdL
V2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlSGFuZGxlV2l0aEpTVmFsdWU6KEpTVmFs
dWUgKil2YWx1ZSBpbkNvbnRleHQ6KEpTQ29udGV4dCAqKWNvbnRleHQ7CiAtIChXS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZSAqKWh0bWxJRnJhbWVFbGVtZW50Q29udGVudEZyYW1lOwogCiAjaWYgVEFS
R0VUX09TX0lQSE9ORQotLSAoVUlJbWFnZSAqKXJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uczooV0tT
bmFwc2hvdE9wdGlvbnMpb3B0aW9ucyBXS19BVkFJTEFCTEUoMTBfMTEsIDlfMCk7CistIChVSUlt
YWdlICopcmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zOihXS1NuYXBzaG90T3B0aW9ucylvcHRpb25z
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjExKSwgaW9zKDkuMCkpOwogI2Vsc2UKLS0gKE5T
SW1hZ2UgKilyZW5kZXJlZEltYWdlV2l0aE9wdGlvbnM6KFdLU25hcHNob3RPcHRpb25zKW9wdGlv
bnMgV0tfQVZBSUxBQkxFKDEwXzExLCA5XzApOworLSAoTlNJbWFnZSAqKXJlbmRlcmVkSW1hZ2VX
aXRoT3B0aW9uczooV0tTbmFwc2hvdE9wdGlvbnMpb3B0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMSksIGlvcyg5LjApKTsKICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIENHUmVjdCBlbGVtZW50Qm91bmRzOwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdy
b3VwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgJKHJldmlzaW9uIDIw
Mjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3
ICsyOSw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCi1XS19DTEFT
U19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwIDogTlNP
YmplY3QKIAogQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNj
cmlwdFdvcmxkLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxk
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlBy
b2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCA6IE5TT2JqZWN0CiAKICsgKFdLV2ViUHJvY2Vzc1BsdWdJ
blNjcmlwdFdvcmxkICopd29ybGQ7CkBAIC0zOCw3ICszOCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJM
RSgxMF8xMCwgOF8wKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU1N0
cmluZyAqbmFtZTsKIAogLSAodm9pZCljbGVhcldyYXBwZXJzOwotLSAodm9pZCltYWtlQWxsU2hh
ZG93Um9vdHNPcGVuIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKy0gKHZv
aWQpbWFrZUFsbFNoYWRvd1Jvb3RzT3BlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9X
S0RPTURvY3VtZW50LmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDcgKzMyLDcgQEAKIEBjbGFzcyBXS0RPTUVsZW1lbnQ7CiBAY2xhc3MgV0tET01U
ZXh0OwogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tET01Eb2N1bWVudCA6IFdL
RE9NTm9kZQogCiAtIChXS0RPTUVsZW1lbnQgKiljcmVhdGVFbGVtZW50OihOU1N0cmluZyAqKXRh
Z05hbWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tET01FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRWxlbWVudC5oCShyZXZpc2lvbiAyMDI3
ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2ltcG9y
dCA8V2ViS2l0L1dLRE9NTm9kZS5oPgogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkK
K1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2Ug
V0tET01FbGVtZW50IDogV0tET01Ob2RlCiAKIC0gKEJPT0wpaGFzQXR0cmlidXRlOihOU1N0cmlu
ZyAqKWF0dHJpYnV0ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTU5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Ob2RlLmgJKHJldmlzaW9uIDIw
Mjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS0RPTU5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBAY2xhc3Mg
V0tET01Eb2N1bWVudDsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKDEwXzEwLCA4XzApCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIFdLRE9NTm9k
ZSA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpaW5zZXJ0Tm9kZTooV0tET01Ob2RlICopbm9kZSBiZWZv
cmU6KFdLRE9NTm9kZSAqKXJlZk5vZGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01SYW5nZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmgJ
KHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTVJhbmdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tET01SYW5nZURpcgogfTsKIAogCi1XS19D
TEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAu
MTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tET01SYW5nZSA6IE5TT2JqZWN0CiAKIC0gKGlk
KWluaXRXaXRoRG9jdW1lbnQ6KFdLRE9NRG9jdW1lbnQgKilkb2N1bWVudDsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tET01UZXh0LmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTVRleHQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW1wb3J0IDxXZWJLaXQvV0tET01Ob2RlLmg+CiAKLVdL
X0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgx
MC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTVRleHQgOiBXS0RPTU5vZGUKIAogQHBy
b3BlcnR5KG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmRhdGE7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01UZXh0SXRlcmF0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9tYWMvV0tET01UZXh0SXRlcmF0b3IuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NVGV4dEl0ZXJh
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogQGNsYXNzIFdLRE9NUmFu
Z2U7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS0RPTVRleHRJdGVyYXRvciA6
IE5TT2JqZWN0CiAKIC0gKGlkKWluaXRXaXRoUmFuZ2U6KFdLRE9NUmFuZ2UgKilyYW5nZTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dl
YlByb2Nlc3NQbHVnSW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luLmgJKHJldmlzaW9uIDIw
Mjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21h
Yy9XS1dlYlByb2Nlc3NQbHVnSW4uaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAog
LSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5Db250cm9sbGVyICop
cGx1Z0luQ29udHJvbGxlciB3aWxsRGVzdHJveUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopYnJvd3NlckNvbnRleHRD
b250cm9sbGVyOwogQGVuZAogCi1XS19DTEFTU19BVkFJTEFCTEUoMTBfMTAsIDhfMCkKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQ
cm9jZXNzUGx1Z0luQ29udHJvbGxlciA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAocmVhZG9ubHkp
IFdLQ29ubmVjdGlvbiAqY29ubmVjdGlvbjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENv
bnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogQGNsYXNzIFdLV2Vi
UHJvY2Vzc1BsdWdJblBhZ2VHcm91cDsKIEBwcm90b2NvbCBXS1dlYlByb2Nlc3NQbHVnSW5Mb2Fk
RGVsZWdhdGU7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRSgxMF8xMCwgOF8wKQorV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKHJl
YWRvbmx5KSBXS0RPTURvY3VtZW50ICptYWluRnJhbWVEb2N1bWVudDsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2gJKHJl
dmlzaW9uIDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdv
cmstaGVhZGVycy5zaAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTAgKzUwLDEwIEBAIGZ1bmN0aW9u
IHByb2Nlc3NfZGVmaW5pdGlvbnMgKCkgewogCiBmdW5jdGlvbiByZXdyaXRlX2hlYWRlcnMgKCkg
ewogICAgIGlmIFtbICIke1BMQVRGT1JNX05BTUV9IiA9PSAibWFjb3N4IiBdXTsgdGhlbgotICAg
ICAgICBbWyAtbiAke09TWF9WRVJTSU9OfSBdXSB8fCBPU1hfVkVSU0lPTj0ke01BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVC9cLi9ffQorICAgICAgICBbWyAtbiAke09TWF9WRVJTSU9OfSBdXSB8fCBP
U1hfVkVSU0lPTj0ke01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVH0KICAgICAgICAgW1sgLW4gJHtJ
T1NfVkVSU0lPTn0gXV0gfHwgSU9TX1ZFUlNJT049Ik5BIgogICAgIGVsaWYgW1sgIiR7UExBVEZP
Uk1fTkFNRX0iID1+ICJpcGhvbmUiIF1dOyB0aGVuCi0gICAgICAgIFtbIC1uICR7SU9TX1ZFUlNJ
T059IF1dIHx8IElPU19WRVJTSU9OPSR7SVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVQvXC4vX30K
KyAgICAgICAgW1sgLW4gJHtJT1NfVkVSU0lPTn0gXV0gfHwgSU9TX1ZFUlNJT049JHtJUEhPTkVP
U19ERVBMT1lNRU5UX1RBUkdFVH0KICAgICAgICAgW1sgLW4gJHtPU1hfVkVSU0lPTn0gXV0gfHwg
T1NYX1ZFUlNJT049Ik5BIgogICAgIGZpCiAKQEAgLTY0LDE1ICs2NCwxMyBAQCBmdW5jdGlvbiBy
ZXdyaXRlX2hlYWRlcnMgKCkgewogICAgICAgICBTRURfT1BUSU9OUys9KAogICAgICAgICAgICAg
LWUgcy9XS19NQUNfVEJBLyR7T1NYX1ZFUlNJT059L2cKICAgICAgICAgICAgIC1lIHMvV0tfSU9T
X1RCQS8ke0lPU19WRVJTSU9OfS9nCi0gICAgICAgICAgICAtZSBzL1dLX0FWQUlMQUJMRS9OU19B
VkFJTEFCTEUvCi0gICAgICAgICAgICAtZSBzL1dLX0RFUFJFQ0FURUQvTlNfREVQUkVDQVRFRC8K
LSAgICAgICAgICAgIC1lIHMvV0tfRU5VTV9BVkFJTEFCTEUvTlNfRU5VTV9BVkFJTEFCTEUvCi0g
ICAgICAgICAgICAtZSBzL1dLX0VOVU1fREVQUkVDQVRFRC9OU19FTlVNX0RFUFJFQ0FURUQvCi0g
ICAgICAgICAgICAtZSBzL15XS19DTEFTU19BVkFJTEFCTEUvTlNfQ0xBU1NfQVZBSUxBQkxFLwot
ICAgICAgICAgICAgLWUgcy9eV0tfQ0xBU1NfREVQUkVDQVRFRC9OU19DTEFTU19ERVBSRUNBVEVE
LworICAgICAgICAgICAgLWUgcy9XS19BUElfQVZBSUxBQkxFL0FQSV9BVkFJTEFCTEUvCisgICAg
ICAgICAgICAtZSBzL1dLX0FQSV9ERVBSRUNBVEVEL0FQSV9ERVBSRUNBVEVELworICAgICAgICAg
ICAgLWUgInMvXldLX0NMQVNTX0FWQUlMQUJMRS9XS19FWFRFUk4gQVBJX0FWQUlMQUJMRS8iCisg
ICAgICAgICAgICAtZSAicy9eV0tfQ0xBU1NfREVQUkVDQVRFRC9XS19FWFRFUk4gQVBJX0RFUFJF
Q0FURUQvIgogICAgICAgICApCiAgICAgZWxzZQotICAgICAgICBTRURfT1BUSU9OUys9KC1lICdz
L1dLXyhDTEFTU198RU5VTV8pP0FWQUlMQUJMRShfSU9TfF9NQUMpP1woW15cKV0rXCkvL2cnIC1l
ICdzL1dLXyhDTEFTU198RU5VTV8pP0RFUFJFQ0FURURcKFteXCldK1wpLy9nJykKKyAgICAgICAg
U0VEX09QVElPTlMrPSgtZSAncy9XS18oQVBJX3xDTEFTU18pQVZBSUxBQkxFXCguKlwpXHMqXCkv
L2cnIC1lICdzL1dLXyhBUElffENMQVNTXylERVBSRUNBVEVEKF9XSVRIX1JFUExBQ0VNRU5UKT9c
KC4qXClccypcKS8vZycpCiAgICAgZmkKIAogICAgIFNFRF9PUFRJT05TKz0oJHtPVEhFUl9TRURf
T1BUSU9OU1sqXX0pCkBAIC04MCw3ICs3OCw3IEBAIGZ1bmN0aW9uIHJld3JpdGVfaGVhZGVycyAo
KSB7CiAgICAgZm9yIEhFQURFUl9QQVRIIGluICIkezF9LyIqLmg7IGRvCiAgICAgICAgIGlmIFtb
ICIkSEVBREVSX1BBVEgiIC1udCAkVElNRVNUQU1QX1BBVEggXV07IHRoZW4KICAgICAgICAgICAg
IGRpdHRvICIke0hFQURFUl9QQVRIfSIgIiR7VEFSR0VUX1RFTVBfRElSfS8ke0hFQURFUl9QQVRI
IyMqL30iCi0gICAgICAgICAgICBzZWQgLWkgLnRtcCAtRSAke1NFRF9PUFRJT05TWypdfSAiJHtU
QVJHRVRfVEVNUF9ESVJ9LyR7SEVBREVSX1BBVEgjIyovfSIgfHwgZXhpdCAkPworICAgICAgICAg
ICAgc2VkIC1pIC50bXAgLUUgIiR7U0VEX09QVElPTlNbQF19IiAiJHtUQVJHRVRfVEVNUF9ESVJ9
LyR7SEVBREVSX1BBVEgjIyovfSIgfHwgZXhpdCAkPwogICAgICAgICAgICAgbXYgIiR7VEFSR0VU
X1RFTVBfRElSfS8ke0hFQURFUl9QQVRIIyMqL30iICIkSEVBREVSX1BBVEgiCiAgICAgICAgIGZp
CiAgICAgZG9uZQo=
</data>
<flag name="review"
          id="306460"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282663</attachid>
            <date>2016-07-03 11:52:00 -0700</date>
            <delta_ts>2016-07-03 11:54:07 -0700</delta_ts>
            <desc>Add TARGET_OS_* guards</desc>
            <filename>bug-159378-20160703115135.patch</filename>
            <type>text/plain</type>
            <size>5743</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjc5MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgRm9sbG93LXVwIHRvIHIyMDI3ODku
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJl
IHRoYXQgQVBJIHRoYXQgaXNu4oCZdCBhdmFpbGFibGUgYXQgYWxsIG9uIGEgcGxhdGZvcm0gaXMg
ZGVjbGFyZWQgdW5kZXIgYW4gYXBwcm9wcmlhdGUKKyAgICAgICAgVEFSR0VUX09TXyogY29uZGl0
aW9uYWwuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaDoK
KyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQubW06CisgICAgICAg
ICogU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLm1tOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzSW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlk
ZW50aWZpZXJzLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oOgorCiAyMDE2LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBBZG9wdCBtb2Rlcm4gQVBJIGF2YWlsYWJpbGl0eSBtYWNyb3MKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLSGl0VGVzdFJlc3VsdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLSGl0VGVzdFJl
c3VsdC5oCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0Nv
Y29hL19XS0hpdFRlc3RSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAog
CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKLSNpZiBXS19BUElfRU5BQkxFRAor
I2lmIFdLX0FQSV9FTkFCTEVEICYmICFUQVJHRVRfT1NfSVBIT05FCiAKICNpbXBvcnQgPEZvdW5k
YXRpb24vRm91bmRhdGlvbi5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0Nv
Y29hL19XS0hpdFRlc3RSZXN1bHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0Lm1tCShyZXZpc2lvbiAyMDI3ODgpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
X1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAKLSNpZiBXS19BUElfRU5BQkxFRAorI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykKIAogQGltcGxlbWVudGF0aW9uIF9XS0hpdFRl
c3RSZXN1bHQKIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRU
ZXN0UmVzdWx0SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDI3ODgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgIl9XS0hpdFRl
c3RSZXN1bHQuaCIKIAotI2lmIFdLX0FQSV9FTkFCTEVECisjaWYgV0tfQVBJX0VOQUJMRUQgJiYg
UExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJBUElIaXRUZXN0UmVzdWx0LmgiCiAjaW1wb3J0ICJX
S09iamVjdC5oIgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09w
ZW5QYW5lbFBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyMDI3ODgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVy
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9X
S0ZvdW5kYXRpb24uaD4KIAotI2lmIFdLX0FQSV9FTkFCTEVECisjaWYgV0tfQVBJX0VOQUJMRUQg
JiYgIVRBUkdFVF9PU19JUEhPTkUKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQ
YXJhbWV0ZXJzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLm1tCShyZXZpc2lvbiAyMDI3ODgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0ICJXS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oIgogCi0jaWYgV0tfQVBJX0VOQUJM
RUQKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpCiAKIEBpbXBsZW1lbnRhdGlv
biBXS09wZW5QYW5lbFBhcmFtZXRlcnMKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJz
SW50ZXJuYWwuaAkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnNJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgIldLT3BlblBhbmVsUGFyYW1ldGVycy5oIgog
Ci0jaWYgV0tfQVBJX0VOQUJMRUQKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMp
CiAKICNpbXBvcnQgIkFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldLT2JqZWN0
LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0Fj
dGlvbkl0ZW1JZGVudGlmaWVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHJldmlzaW9u
IDIwMjc4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAK
IAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgogCi0jaWYgV0tfQVBJX0VOQUJMRUQK
KyNpZiBXS19BUElfRU5BQkxFRCAmJiBUQVJHRVRfT1NfSVBIT05FCiAKICNpbXBvcnQgPEZvdW5k
YXRpb24vRm91bmRhdGlvbi5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVu
dGlmaWVycy5tbQkocmV2aXNpb24gMjAyNzg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXS1By
ZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllcnMuaCIKIAotI2lmIFdLX0FQSV9FTkFCTEVECisjaWYg
V0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oSU9TKQogCiBOU1N0cmluZyAqIGNvbnN0IFdLUHJl
dmlld0FjdGlvbkl0ZW1JZGVudGlmaWVyT3BlbiA9IEAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50
aWZpZXJPcGVuIjsKIE5TU3RyaW5nICogY29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZp
ZXJBZGRUb1JlYWRpbmdMaXN0ID0gQCJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRv
UmVhZGluZ0xpc3QiOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDIwMjc4OCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSw2ICszOSw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1Bh
Z2luYXRpb24KICAgICBfV0tQYWdpbmF0aW9uTW9kZUJvdHRvbVRvVG9wLAogfSBXS19FTlVNX0FW
QUlMQUJMRSgxMF8xMCwgOF8wKTsKIAorI2lmICFUQVJHRVRfT1NfSVBIT05FCisKIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKICAgICBfV0tJbW1l
ZGlhdGVBY3Rpb25Ob25lLAogICAgIF9XS0ltbWVkaWF0ZUFjdGlvbkxpbmtQcmV2aWV3LApAQCAt
NDgsNiArNTAsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAg
ICAgX1dLSW1tZWRpYXRlQWN0aW9uVGVsTGluawogfSBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwg
TkEpOwogCisjZW5kaWYKKwogQGNsYXNzIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlOwogQGNsYXNz
IF9XS0ZyYW1lSGFuZGxlOwogQGNsYXNzIF9XS0hpdFRlc3RSZXN1bHQ7Cg==
</data>
<flag name="review"
          id="306463"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282666</attachid>
            <date>2016-07-03 12:13:03 -0700</date>
            <delta_ts>2016-07-03 12:13:03 -0700</delta_ts>
            <desc>Another one for EWS</desc>
            <filename>159378_2_r2.diff</filename>
            <type>text/plain</type>
            <size>6651</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjc5MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA3LTAzICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgRm9sbG93LXVwIHRvIHIyMDI3ODku
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJl
IHRoYXQgQVBJIHRoYXQgaXNu4oCZdCBhdmFpbGFibGUgYXQgYWxsIG9uIGEgcGxhdGZvcm0gaXMg
ZGVjbGFyZWQgdW5kZXIgYW4gYXBwcm9wcmlhdGUKKyAgICAgICAgVEFSR0VUX09TXyogY29uZGl0
aW9uYWwuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQuaDoK
KyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQubW06CisgICAgICAg
ICogU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLm1tOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzSW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlk
ZW50aWZpZXJzLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oOgorCiAyMDE2LTA3LTAzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXSBBZG9wdCBtb2Rlcm4gQVBJIGF2YWlsYWJpbGl0eSBtYWNyb3MKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLSGl0VGVzdFJlc3VsdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvX1dLSGl0VGVzdFJl
c3VsdC5oCShyZXZpc2lvbiAyMDI3OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0Nv
Y29hL19XS0hpdFRlc3RSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNyBAQAog
CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAKLSNpZiBXS19BUElfRU5BQkxFRAor
I2lmIFdLX0FQSV9FTkFCTEVEICYmICFUQVJHRVRfT1NfSVBIT05FCiAKICNpbXBvcnQgPEZvdW5k
YXRpb24vRm91bmRhdGlvbi5oPgogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0Nv
Y29hL19XS0hpdFRlc3RSZXN1bHQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9Db2NvYS9fV0tIaXRUZXN0UmVzdWx0Lm1tCShyZXZpc2lvbiAyMDI3OTEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHQubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAi
X1dLSGl0VGVzdFJlc3VsdEludGVybmFsLmgiCiAKLSNpZiBXS19BUElfRU5BQkxFRAorI2lmIFdL
X0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKE1BQykKIAogQGltcGxlbWVudGF0aW9uIF9XS0hpdFRl
c3RSZXN1bHQKIApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tIaXRU
ZXN0UmVzdWx0SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDI3OTEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL19XS0hpdFRlc3RSZXN1bHRJbnRlcm5h
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbXBvcnQgIl9XS0hpdFRl
c3RSZXN1bHQuaCIKIAotI2lmIFdLX0FQSV9FTkFCTEVECisjaWYgV0tfQVBJX0VOQUJMRUQgJiYg
UExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJBUElIaXRUZXN0UmVzdWx0LmgiCiAjaW1wb3J0ICJX
S09iamVjdC5oIgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJT2JqZWN0Lm1t
CShyZXZpc2lvbiAyMDI3OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvQVBJT2Jq
ZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcsOSArMTY3LDExIEBAIHZvaWQqIE9iamVjdDo6
bmV3T2JqZWN0KHNpemVfdCBzaXplLCBUeXAKICAgICAgICAgd3JhcHBlciA9IFtXS0ZyYW1lSW5m
byBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIGNhc2Ug
VHlwZTo6SGl0VGVzdFJlc3VsdDoKICAgICAgICAgd3JhcHBlciA9IFtfV0tIaXRUZXN0UmVzdWx0
IGFsbG9jXTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYKIAogICAgIGNhc2UgVHlwZTo6TmF2aWdh
dGlvbjoKICAgICAgICAgd3JhcHBlciA9IFtXS05hdmlnYXRpb24gYWxsb2NdOwpAQCAtMTg3LDkg
KzE4OSwxMSBAQCB2b2lkKiBPYmplY3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwCiAgICAg
ICAgIHdyYXBwZXIgPSBbV0tOYXZpZ2F0aW9uUmVzcG9uc2UgYWxsb2NdOwogICAgICAgICBicmVh
azsKIAorI2lmIFBMQVRGT1JNKE1BQykKICAgICBjYXNlIFR5cGU6Ok9wZW5QYW5lbFBhcmFtZXRl
cnM6CiAgICAgICAgIHdyYXBwZXIgPSBbV0tPcGVuUGFuZWxQYXJhbWV0ZXJzIGFsbG9jXTsKICAg
ICAgICAgYnJlYWs7CisjZW5kaWYKIAogICAgIGNhc2UgVHlwZTo6UGFnZUdyb3VwOgogICAgICAg
ICB3cmFwcGVyID0gW1dLQnJvd3NpbmdDb250ZXh0R3JvdXAgYWxsb2NdOwpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBhcmFtZXRlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLT3BlblBhbmVs
UGFyYW1ldGVycy5oCShyZXZpc2lvbiAyMDI3OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NSw3ICsyNSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KIAotI2lmIFdL
X0FQSV9FTkFCTEVECisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgIVRBUkdFVF9PU19JUEhPTkUKIAog
I2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0
ZXJzLm1tCShyZXZpc2lvbiAyMDI3OTEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLT3BlblBhbmVsUGFyYW1ldGVycy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsNyAr
MjYsNyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXS09wZW5QYW5lbFBhcmFtZXRl
cnNJbnRlcm5hbC5oIgogCi0jaWYgV0tfQVBJX0VOQUJMRUQKKyNpZiBXS19BUElfRU5BQkxFRCAm
JiBQTEFURk9STShNQUMpCiAKIEBpbXBsZW1lbnRhdGlvbiBXS09wZW5QYW5lbFBhcmFtZXRlcnMK
IApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBh
cmFtZXRlcnNJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tPcGVuUGFuZWxQYXJhbWV0ZXJzSW50ZXJuYWwuaAkocmV2aXNpb24gMjAy
NzkxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS09wZW5QYW5lbFBh
cmFtZXRlcnNJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw3IEBACiAKICNp
bXBvcnQgIldLT3BlblBhbmVsUGFyYW1ldGVycy5oIgogCi0jaWYgV0tfQVBJX0VOQUJMRUQKKyNp
ZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFQSU9wZW5QYW5l
bFBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldLT2JqZWN0LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJKHJldmlzaW9uIDIwMjc5MSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91
bmRhdGlvbi5oPgogCi0jaWYgV0tfQVBJX0VOQUJMRUQKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBU
QVJHRVRfT1NfSVBIT05FCiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0
ZW1JZGVudGlmaWVycy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbQkocmV2aXNpb24gMjAy
NzkxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdBY3Rp
b25JdGVtSWRlbnRpZmllcnMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXS1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmll
cnMuaCIKIAotI2lmIFdLX0FQSV9FTkFCTEVECisjaWYgV0tfQVBJX0VOQUJMRUQgJiYgUExBVEZP
Uk0oSU9TKQogCiBOU1N0cmluZyAqIGNvbnN0IFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVy
T3BlbiA9IEAiV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJPcGVuIjsKIE5TU3RyaW5nICog
Y29uc3QgV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJBZGRUb1JlYWRpbmdMaXN0ID0gQCJX
S1ByZXZpZXdBY3Rpb25JdGVtSWRlbnRpZmllckFkZFRvUmVhZGluZ0xpc3QiOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgJKHJldmlzaW9uIDIwMjc5MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw4IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1BhZ2luYXRpb24KICAgICBfV0tQYWdpbmF0
aW9uTW9kZUJvdHRvbVRvVG9wLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlv
cyg4LjApKTsKIAorI2lmICFUQVJHRVRfT1NfSVBIT05FCisKIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKICAgICBfV0tJbW1lZGlhdGVBY3Rpb25O
b25lLAogICAgIF9XS0ltbWVkaWF0ZUFjdGlvbkxpbmtQcmV2aWV3LApAQCAtNDgsNiArNTAsOCBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBCiAgICAgX1dLSW1tZWRp
YXRlQWN0aW9uVGVsTGluawogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSk7
CiAKKyNlbmRpZgorCiBAY2xhc3MgV0tCcm93c2luZ0NvbnRleHRIYW5kbGU7CiBAY2xhc3MgX1dL
RnJhbWVIYW5kbGU7CiBAY2xhc3MgX1dLSGl0VGVzdFJlc3VsdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>